Re: App database, libsynth

Ryan Underwood
2003-07-11T22:03:39Z

Hi Bart,

On Fri, Jul 11, 2003 at 09:23:32PM +0100, Bart Oldeman wrote:

> I was wondering btw:
>
> http://www.happypenguin.org/show?DOSbox
> http://www.happypenguin.org/show?DOSbox&start=10

"A DOS emulator that has exceeded dosemu."
I'm sorry but I disagree with that comment. Maybe if playing games is
ALL you care about. dosemu's ability to use terminal I/O, to handle
network locking, to run BBS software and door games, as well as use
whatever DOS your application requires, these are all features that go
missing in the other DOS emulators (besides doscmd). I *love* being
able to do such things as run a dos program and deal with its output
by piping it through things.

Perhaps dosemu needs a bit of work to make it more friendly to the
gaming-crowd, but it is certainly a long way ahead in the overall
picture of what a modern VDM needs to do.

> In any case whatever works better in DOSBOX (e.g. parts of VGAEMU still I
> think) can be looked up in the source code; they thank DOSEMU too.

I'm glad they do too! :) Too many people seem to think GPL == free code
for the taking and replacing names & copyrights with my own is ok.

Another side project I work on is a perl config generator for dosemu --
you simply go to a web page, specify the version of dosemu you like to
generate a config for, and the options you want, and it spits out a
dosemu.conf for you. Perhaps something similar can be made into a nice
perl/gtk app for the point & click crowd.

With the web page config generator cross referencing with a
compatibility database, you could have such things as telling the user
any bad things about the options he/she selects, such as "don't use
these options together with this dosemu version or you won't be able to
use program X".

> agreed. And QEMU will probably stand a better chance now than Alberto's
> simx86 since some very capable people work at it and Alberto doesn't seem
> to have time for simx86 anymore. Right now QEMU also emulates DOSEMU
> itself which is a little strange however.

Haha! That does present a hall of mirrors effect to dosemu. (DOSEMU
uses qemu to emulate DOSEMU which uses qemu to emulate DOSEMU which uses
qemu...)

> One interesting platform is AMD's x86-64 (hammer, opteron, or whatever
> it's called today). Linux for x86-64 does have modify_ldt but no v86.
> That means that a potential future DOSEMU for it has to run "real
> mode" 16bit apps emulated but can execute DPMI apps natively.

Are you certain about emulation necessary for 16bit apps? I look at the
developer's overview for hammer, and it starts out with:

"The x86-64 architecture supports legacy 16-bit and 32-bit applications
and operating systems without modification."

It goes on to say:
"compatibility mode is enabled by the operating system on an individual
code-segment basis. From the application's viewpoint, compatibility
mode looks like a legacy x86 protected-mode environment."

Which means to me, that vm86() will have different semantics on x86-64,
probably setting up a 1MB v86 window but also turning on the
"compatibility mode" flag for that process. Of course, I don't know
what I'm talking about, but take a look at the pdf here:

http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/x86-64_overview.pdf

> rough translation:
> Result: Even if DOSBox already really accomplishes something, it cannot
> really replace DOSEMU for games. Both have adavantages and disadvantages.
> With DOSEMU it's most annoying that it is restricted to Linux/x86. With
> Dosbox one misses protected mode a lot. It is certainly best to try both
> and to decide which one to use on a case by case basis.

To be honest, I think we can do everything Dosbox does as well. It is
good to have both projects around though, because Dosbox presents more
of a "zero-configuration" environment to the user, where DOSEMU has many
more features that interact in various ways, so the user has to do some
tweaking most of the time to get it working the way they want.

--