Page 1 of 4

Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 2:46 pm
by Alegend45
OK, I'd better back up that statement real quick, or else fanboys will start trolling me.

All the PC emulators I've encountered thus far have some sort of semi-fatal flaw. They either have unnecessary HLE (nearly all of them), they virtualize (VirtualBox, QEMU, Virtual PC, VMWare), they have code that's ugly as all fuck (Bochs), or they only focus on popular shit (DOSBox). In other words, there are currently no good PC emulators, except for (maybe) MESS, and it's still not up to spec entirely (e.g. VGA emulation). I don't know why PC emulation is like this... Another thing that bothers me is that the 8086 microcode is out there in die shots now, but nobody has dared to dump it... I tried, but I couldn't bring myself to finish it. Anyways, I hope that I find answers to these questions soon.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 2:56 pm
by blargg
A: Because existing PC emulators satisfy the wants of most users.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 2:58 pm
by Alegend45
Hmm... Good point. Somebody still needs to make everything actually work better, and I guess that has to be me as nobody else who has a remote clue of the PC hardware cares.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 3:18 pm
by blargg
nobody else who has a remote clue of the PC hardware cares
more about preserving this particular PC hardware as compared to all the other things they care about in their lives.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 3:38 pm
by Movax12
:?: What features are you looking for that you can't find?

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 3:52 pm
by Alegend45
I am looking for accuracy, and clean code.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 4:32 pm
by Movax12
Still not sure what you are missing, (Do you feel better about using an emu if you know it is coded properly even if the results are the same as a emu coded in a way you don't approve of ?) but perhaps you'd find this project interesting: http://fake86.rubbermallet.org/

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 5:11 pm
by Alegend45
No. Sorry, but it does HLE, and I don't approve of that, unless absolutely necessary.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 5:54 pm
by lidnariq
Alegend45 wrote:All the PC emulators I've encountered thus far have some sort of semi-fatal flaw. They either have unnecessary HLE (nearly all of them), they virtualize (VirtualBox, QEMU, Virtual PC, VMWare), they have code that's ugly as all fuck (Bochs), or they only focus on popular shit (DOSBox).
... So what, you want someone to take the original 8086, 80286, 80386, EGA, VGA, &c microcode and rebuild you a cycle-accurate PC simulator despite the huge variety of different other hardware (chipsets, sound cards, all their knock-offs...) that needs to be supported? And the code has to be pretty? That makes bsnes look trivial by comparison.

The only problems I've had with DOSbox have been raster effects on pre-VGA machines. Oh, and trying to emulate tran's Luminati and Ambience demos, which require accurate emulation of a multisync monitor and perceptual frame merging. Even MESS's CGA-NTSC composite color emulation is lacking.

For DOSBox, I have no idea by what you mean by "only the popular shit", because it certainly looks to me like they've got perfect compatibility with more than 85% of all games known to them. Is this the equivalent of bitching about how no famicom emulator accurately handles X random Waixing game?

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 6:35 pm
by tepples
How about starting with just the PC (5150), PC XT (5160), PCjr (4860), and PC AT (5170), with the most common floppy, serial, and parallel adapter cards made by IBM (MDA, CGA, EGA)? Once the 386 and cache come into the picture, cycle accuracy becomes less necessary, as games have to adapt to a multitude of clock speeds and video cards available on the market.

ObNES: For extra geek points, emulate a PC connected to an NES through a CopyNES.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 6:55 pm
by Alegend45
I never said anything about cycle-accuracy.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 7:06 pm
by cpow
Alegend45 wrote:I never said anything about cycle-accuracy.
Alegend45 wrote:Another thing that bothers me is that the 8086 microcode is out there in die shots now, but nobody has dared to dump it...
Alegend45 wrote:I am looking for accuracy
I think its safe to assume you mean cycle accuracy when you seem to be asking for accurately emulated microcode... ?

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 7:08 pm
by cpow
tepples wrote:How about starting with just the PC (5150), PC XT (5160), PCjr (4860), and PC AT (5170), with the most common floppy, serial, and parallel adapter cards made by IBM (MDA, CGA, EGA)? Once the 386 and cache come into the picture, cycle accuracy becomes less necessary, as games have to adapt to a multitude of clock speeds and video cards available on the market.

ObNES: For extra geek points, emulate a PC connected to an NES through a CopyNES.
How about emulating a PC emulating a Commodore Amiga emulating an Atari ST emulating a NES? :lol:

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 7:09 pm
by Movax12
Low level versus high level is a very arbitrary and subjective ...subject. I don't feel you are being specific enough about what it is you are looking for.

Re: Why do existing PC emulators suck so bad?

Posted: Fri Jan 04, 2013 7:17 pm
by blargg
This thread has revealed another impediment to PC emulation as compare to game consoles: the multitude of hardware. Harder to focus lots of people on the same goal when there are so many differing configurations interest might be in. Sort of like how consoles are easier to develop for due to the generally singular hardware configuration (tepples will fill us in on deviances from this in the next post).