VOGONS


First post, by Razor

User metadata
Rank Newbie
Rank
Newbie

I was thinking and wondering if anybody ever thought about making
another DOSBox project if possible to make completely native to the
x86 platform (or Windows) so that it executes code natively insted of
just emulating it?

I havent had the chance to look at DOSBox source myself and it does
sound like a HUGE job but I was thinking about looking into this idea
some more or just think about it some more... or just forget it. Whatever
works 😀

There are 10 types of people in the world ...
Those who know binary and those who don't

Reply 2 of 6, by mirekluza

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

What you want is a combination of native execution and emulation. It is done usually in commerciall emulators (e.g. Microsoft (Connectix) Virtual PC) and others). The only open source PC emulator using this is DOSEMU (only in Unix/Linux - depends on some API available only there, but not in Windows).
There was an open source project Plex86 aiming to provide this universally (basically making something like Bochs, but much more quicker). The last time I checked they gave up 🙁 arguing by it being too complex and decided to do only a limited version which will support running Linux ...
A lot of people would be happy if there was a DOSBOX like program using this attitude (because of speed), but I guess it is not so easy. People like Harekiet could probably tell you more. You can also search the forum - periodically somebody comes and asks why we are not doing it in DOSBOX - there are some explanations.
In any case you are welcomed to try... Good luck.

Mirek

Reply 3 of 6, by Darkfalz

User metadata
Rank Member
Rank
Member

You can't do that, because then if the game you're running does some dodgy code, BOOM, Windows crashes too... in a completely emulated system it doesn't matter, because it's only an emulated CPU that's crashing.

Reply 4 of 6, by mirekluza

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

@DARKFALZ: It is possible to get around this (DOSEMU does it partially - not supporting some nasty extenders (but most of extenders are ok), Virtual PC completely).
It is possible to program such an emulator but it is not easy. I doubt that it will done. Additionaly, the complete processor emulation is better for future (sooner or later the 80x86 compatibility will be broken).

Mirek

Reply 5 of 6, by nl255

User metadata
Rank Newbie
Rank
Newbie

Such a system would be incompatible with many DOS games which use dirty tricks to run. As an example, I tried running Dungeon Master 2 in Virtual PC for Windows, and it ran slower than in bochs. So for that game, even unoptimized interprative emulation was faster than the virtualization used by Virtual PC for Windows (VPC for Macs is an emulator, VPC for Windows is a virtualizer just like Vmware, only an actual video card and soundblaster sound card are emulated, unlike vmware which emulates a custom video card requiring their driver). I am sure there are many more games that use ugly hacks that are completely incompatible with virtualization software, and would require emulation to run. Heck, I bet there are a few tricks used by DOS game developers that are incompatible with any form of dynamic recompilation (self modifying code is merely difficult).

Reply 6 of 6, by canadacow

User metadata
Rank Member
Rank
Member

Heck, I bet there are a few tricks used by DOS game developers that are incompatible with any form of dynamic recompilation (self modifying code is merely difficult).

You are correct. The encryption scheme used by 2nd Reality works with the interpreter, but not the dynamic compiler. Getting 2nd Reality to work with the dynamic compiler would be very, very difficuly.