VOGONS


Why DOSBox is SO GOOD?

Topic actions

First post, by jaelanicu

User metadata
Rank Newbie
Rank
Newbie

Why DOSBox is so good at running DOS games?
I mean...
There are severals games that won't run under Virtual PC, VMware, Parallels nor VirtualBox. I haven't tried running them under Qemu since VirtualBox is based on Qemu.

As far as I know, it's because DOSBox "emulates" rather than "virtualize". But aren't nowadays x86 CPUs backward compatible down to even the ancient Intel 8086? Or are they?

So what's the key point that allows DOSBox to run the old DOS games? Or which part(s) of nowadays systems that cause the "incompatibility" for the games?

Frankly, I'm suprisingly amazed that DOSBox can be better than Virtual PC and VMware when I found out it can run the "unrunnable" games.

Thanks in advance and thanks for the absolutely great DOS game "player".

PS) I'm quite familiar in assembly coding since IBM PC/XT. Is there any way I could help?

Reply 1 of 14, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

But aren't nowadays x86 CPUs backward compatible down to even the ancient Intel 8086?

Yes, but the OS doesn't allow full hardware/cpu access (speaking no realmode).

Reply 2 of 14, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

1. DOSBox focus is on DOS games and nothing else. All other PC emulators never exclusively focused on DOS games. The developers of Virtual PC (Connectix) and DOSEmu did do a little bit of work on supporting games but nowhere near the level of DOSBox.

2. LOTS and lots of testing. Thousands of games have been tested in DosBox and there are alot of testers. Without these games and testers DOSBox would not be anywhere near as compatible as it is.

3. DOSBox emulates the processor where almost all other emulators virtualize the processor. DOS games can run on today's modern processors without emulation but the problem is that the speed of modern processors is too fast. (Not factoring in the OS here) Old games do not run well with faster processors.

4. Experienced developers who only add what is needed to DOSBox to get games to work. No unreleated code or extra features that would make things more complicated or bog things down.

5. DOSBox uses SDL which allow DOSBox to run on multiple operating systems thereby increasing the number of users willing to use DOSBox which increases the number of users submitting problems with games. Most emulators do not have as much host OS compatibility as DOSBox does.

6. DOSBox is GPL and can use other GPL code. Since all code is open anyone can submit a patch and it will be approved if it improved DOSBox for game compatibility.

7. VOGONS forums. Provides an easily readable meeting place to discuss DOSBox issues and to remove unwanted elements that could interfere with DOSBox development. (Sourceforge DosBox forums were a mess and old DOSBox beta forum was on a seperate forum). Also the other forums here discussing DOS issues on real hardware and the people with that hardware has improved DOSBox compatibility.

Virtual PC/Vmware are okay for Windows 95+ games for GDI/DirectDraw but they are nowhere near perfect and I'm sure in the future as 9x is dropped from VPC/Vmware other better emulators will take their place. For instance the preliminary DX 8.1 support in Vmware is only offered for 2K/XP guests. Not 9x guests. Even if VPC/Vmware do improve their DX support there is no way they will offer it for 9x guests but since the demand is high it's very likely an opensource emulator like Qemu/Mabye a DosBox fork, etc will offer these features to 9x Windows.

How To Ask Questions The Smart Way
Make your games work offline

Reply 3 of 14, by jaelanicu

User metadata
Rank Newbie
Rank
Newbie

@wd:

Yes, but the OS doesn't allow full hardware/cpu access (speaking no realmode).

IMO... A virtualizator should have no problem on direct port access or privileged CPU instructions since they trap all hardware exception events to translate memory addresses or simulate a port access without the need for accessing the physical hardware (for performance and/or security reasons). Anyhow, I feared that it's not the hardware nor the OS to blame.

@DosFreak:

...The developers of Virtual PC (Connectix) and DOSEmu did do a little bit of work on supporting games but nowhere near the level of DOSBox.

Does that mean those softwares have minimal real-mode virtualization? And only focus on protected-mode since it's mandatory for modern OSes.

...DOS games can run on today's modern processors without emulation but the problem is that the speed of modern processors is too fast. (Not factoring in the OS here) Old games do not run well with faster processors.

Are you saying that the majority of "unrunnable" games are caused by programming/compiler bugs? eg. timing issue - causing calculation to overflow. Similar to Borland's famous random generator bug when run under fast CPUs (Runtime error 200 - or something like that).

One last question...
If somehow (and assuming) I'm able to make my Pentium IV 1.6GHz to unbelievably crawl at 50MHz - the same clock speed as the early 80486DX model, will I be able to run those unrunnable games under pure DOS? Please disregard audio/sound output - assume as PC speaker.

Reply 4 of 14, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The part of your posting i cited was indicating that due to backwards
compatibility you would not need any emulation/virtualization layer at
all which is wrong because of what i said.

Reply 5 of 14, by Neville

User metadata
Rank Oldbie
Rank
Oldbie
jaelanicu wrote:

One last question...
If somehow (and assuming) I'm able to make my Pentium IV 1.6GHz to unbelievably crawl at 50MHz - the same clock speed as the early 80486DX model, will I be able to run those unrunnable games under pure DOS? Please disregard audio/sound output - assume as PC speaker.

Theoretically, yes you can. Back in the days of Windows 9X people were starting to have speed issued with older DOS games, and a few slowdown utilities were created, such as Mo'Slo. Personally I never liked them, it was tricky to find the right slowdown ratio, and animnations and sound would also slow down.

But with Windows 9X still offering good support for MS-DOS games, there was no need for a full-fledged MS-DOS emulator like DOSBox.

Reply 6 of 14, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Neville wrote:

But with Windows 9X still offering good support for MS-DOS games, there was no need for a full-fledged MS-DOS emulator like DOSBox.

I have a need for it for my Pentium boxes

hercules/tandy/booter games 😁

apsosig.png
long live PCem
FUCK "AI"

Reply 7 of 14, by Neville

User metadata
Rank Oldbie
Rank
Oldbie

But does DOSBox perform well under Pentium 1 computers?

Reply 9 of 14, by Neville

User metadata
Rank Oldbie
Rank
Oldbie

Mmm... Right, I use DOSBox for late, high-end games, but a first generation Pentium should be able to run 286-386 era games, shouldn't it?

Anything demanding 3000 cycles or less, I mean. That kind of stuff.

Reply 10 of 14, by Kreshna Aryaguna Nurzaman

User metadata
Rank l33t
Rank
l33t
Neville wrote:

But does DOSBox perform well under Pentium 1 computers?

DOSBox is an emulator so of course there is always performance penalty (there's no such thing as free lunch and it's particularly true in computing). Late (1996 and above) DOS games like Jane's ATF, running in 640x480 with all textures on, are already choppy even in real DOS on Pentium 100 system, so if you wanna' run such games smoothly in DOSBox, you better invest in some really kickass processor --or build a DOS-legacy system with Pentium II and above.

Never thought this thread would be that long, but now, for something different.....
Kreshna Aryaguna Nurzaman.

Reply 11 of 14, by Snover

User metadata
Rank l33t++
Rank
l33t++

You won't get any reasonable performance running anything in DOSBox with a system less than at least 400MHz, and even that is going to likely be painful. So, no, an original Pentium won't do it for you. See also System Requirements. (Though I don't have older systems to test with, I think that even this data might be a little too optimistic.)

The fact of the matter is that you can't even run anything over Windows 98 on an original Pentium, so why bother with an emulator when you've got real DOS available?

Yes, it’s my fault.

Reply 12 of 14, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Snover wrote:

You won't get any reasonable performance running anything in DOSBox with a system less than at least 400MHz, and even that is going to likely be painful. So, no, an original Pentium won't do it for you.

I beg to differ. I can play XT-era games and Roguelikes on it just fine. On a Pentium II starting from 233mhz you get to even play Doom. Bump that up to 300ish and you're ready for Terminal Velocity and Stunt Island.

Snover wrote:

The fact of the matter is that you can't even run anything over Windows 98 on an original Pentium

I've installed Windows 2000 on a Pentium 150 before. With above 64mb of RAM it's usable, so yeah nice fact there.

apsosig.png
long live PCem
FUCK "AI"

Reply 13 of 14, by Snover

User metadata
Rank l33t++
Rank
l33t++
leileilol wrote:

I can play XT-era games and Roguelikes on it just fine. On a Pentium II starting from 233mhz you get to even play Doom. Bump that up to 300ish and you're ready for Terminal Velocity and Stunt Island.

Your experience sounds better than mine. Text-based games I tried to run in the past didn't work smoothly, even with an Athlon XP 1800+, because the video code was only really optimised for VGA-games. I'm sure many improvements have been made since then (a couple years ago), but I would still expect that a high frameskip would be needed to keep an original-Pentium from bogging down with video updates for any game. So, what DO you set your frameskip to?

leileilol wrote:

I've installed Windows 2000 on a Pentium 150 before. With above 64mb of RAM it's usable, so yeah nice fact there.

I suppose it depends on your definition of 'usable'. I do like to run more than one application at a time and not have to wait 20 minutes for the system to boot, and a cursory Google search seems to indicate I'm not alone in thinking that a 133MHz computer (Microsoft's stated minimum) is way too slow. (This should be no news to anybody, since Microsoft has been documented as understating system requirements since at least Windows 95. Vista Home Basic anyone?) One university recommends at least a PPro 200MHz; another recommends at least a P2 350MHz, both with at least 128MB RAM. Having spent 3 years working on computers running Windows 2000 on a regular basis, I would never recommend less than 384MB of RAM and a 350-400MHz processor, ever. But who knows. Maybe I'm just impatient.

Yes, it’s my fault.

Reply 14 of 14, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Snover wrote:

So, what DO you set your frameskip to?

0

Snover wrote:

I do like to run more than one application at a time and not have to wait 20 minutes for the system to boot,

It takes roughly a minute and a half here

apsosig.png
long live PCem
FUCK "AI"