VOGONS

Common searches


First post, by emodel

User metadata
Rank Member
Rank
Member

I just wonder, if Dosbox is slow, its mainly because it has to emulate the main processor (286/386 etc).
So i wonder if it would be possible to make a special version for windows/linux that uses host cpu without emulation. It would probably need to
emulate the memory part (protected mode etc) though, even if theres something for this in windows...

Reply 1 of 3, by collector

User metadata
Rank l33t
Rank
l33t

One of the main purposes of DOSBox is to emulate older, slower CPUs. Most use DOSBox to play games that will not run on fast machines because of speed bugs. These games will not run on Vitual PC, since it doesn't emulate the CPU - the speed bugs will still be there.

The Sierra Help Pages -- New Sierra Game Installers -- Sierra Game Patches -- New Non-Sierra Game Installers

Reply 2 of 3, by mirekluza

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

It is also not so easy to implement. This attitude is used by commerciall emulators (like Virtual PC), but I do not know any free project.
There used to be Plex86 (or some similar name like that) which was planning to do it, when I checked them a few days ago they scaled down to just running Linux (arguing that it is 10 times simpler then doing this in more general way).
DOSBOX speed solution on 80x86 is "dynamic" CPU core (using dynamic recompilation). This is already in 0.61 (although quite buggy), it has improved much since (although it is still less compatible than "normal" core).

Mirek

Reply 3 of 3, by jal

User metadata
Rank Oldbie
Rank
Oldbie
emodel wrote:

I just wonder, if Dosbox is slow, its mainly because it has to emulate the main processor (286/386 etc).
So i wonder if it would be possible to make a special version for windows/linux that uses host cpu without emulation. It would probably need to emulate the memory part (protected mode etc) though, even if theres something for this in windows...

There are many technical problems with doing this. It is not possible to just feed the opcodes to the processor - you'd be creating a Windows DOS-box, and that already exists. Idealy, the host-processor would allow 'trapping' of certain commands, i.e. all opcodes you'd need to emulate for one reason or the other could be emulated, and all the rest could be run natively. But unfortunatly, this is also not possible. What's left is dynamic compilation, i.e. analyze the code and produce native code for the processor it runs on. This is possible, but very complicated. Since DOSbox was mainly created for running really old games, this isn't really necessary (although the dynamic core may do something like that, I'm not sure).

JAL