VOGONS


First post, by DeepestBlueDragon

User metadata
Rank Newbie
Rank
Newbie

Hello folks,

I'm seeking some assistance with understanding differences in performance between 86Box and PCem.

Some basic information. My host PC is an i7-8086K, 64GB RAM, SSD boot and VM storage drives, 3060Ti, W10.

I have tried to set up both 86Box and PCem to emulate a PII-400, 256MB RAM, 16GB IDE HDD, S3 Virge DX 4MB, SB or compatible, no parallel/serial, Realtek NIC, running Windows 98 SE. OS installed the same way using the same media. No updates, just the base OS with built in drivers.

I've noticed that despite setting the two emulators to be as similar as possible, they are performing very differently. 86Box takes a LONG time to get into Windows (several minutes), whereas PCem boots in within a minute or two. However disc access in 86Box is significantly faster. I downloaded the DOSBENCH suite and ran it on both emulators. The results are attached in the screenshot and are also below.

It would seem that the way the emulators work seem to mean certain tests perform better on one than the other.

86Box performs faster in these tests:
- Landmark's CPU test (33% faster)
- Speedsys (15% faster)

PCem performs faster in these tests:
- Topbench (217% faster)
- Landmark Video test (231% faster)
- PC Player (26%)
- Chris's 3D Bench (24%)
- 3D Bench Superscape (23%)

On top of these, I booted up MHDD and did a read test. 86Box reported 914.8Mb/s, vs 62.2Mb/s in PCem. I suspect the difference here is because 86Box has an option for "Generic RAM Disk (Max Speed)" option in its HDD settings, whereas PCem doesn't.

So my questions here are:

1. Am I right in thinking the differences in performance are just down to how the two emulators work?
I love the customisations in 86Box, but PCem seems to perform better overall. Is there any way to
2. ...boost PCem's HDD speed?
3. ... increase 86Box's overall performance?

Thanks for the questions, and apologies if they're rather n00b-like; this kind of emulation is new to me. I'm more used to Proxmox and VirtualBox!

Reply 1 of 7, by DeepestBlueDragon

User metadata
Rank Newbie
Rank
Newbie

(Just noticed the MHDD line shows KB/S, should be Mb/s)

Reply 2 of 7, by jh80

User metadata
Rank Member
Rank
Member

What versions of 86Box and PCem? And more importantly, which dynamic recompiler (or interpreter?) in 86Box? I think the new dynarec is similar to (or same as) PCem's, while the old dynarec is retained from before PCem updated.

Because (by default) both emulators have the dynamic recompiler enabled, what those CPU benchmarks are measuring is more about how efficient the dynarecs are in processing certain code. One emulator might be better in one context but worse in another depending on the code that is being processed by the dynarec. That's also why those CPU benchmarks also don't reflect necessarily how each emulator will handle a specific game. Essentially, each and every game will likely have slightly different performance.

Reply 3 of 7, by Battler

User metadata
Rank Member
Rank
Member

Also, 86Box and PCem have entirely different Pentium II timings - 86Box's were written by Plant based on the K6 timings and tweaks using real Pentium II benchmarks as a reference.

PCem also defaults its video timings to 8-bit ISA, which may yield increased % at the expense of much slower video memory affected - setting them to the option named Default (yes, it's confusing!) should bring them on par.

Reply 4 of 7, by dosmax

User metadata
Rank Member
Rank
Member

My practical approach to the matter is: stick to the latest PCEm when performance counts and it doesn't hurt, i.e. for playing demanding games.

IIRC 86box said they favor correctness over speed, which is a valid choice. PCEm though is still faster in almost every demanding game. So unless you don't need anything only 86box offers, and your app/game runs with PCem, there isn't really a good reason not use it whenever performance counts.

A shame that the PCEm dev got alienated away by some fights/events over the 86box fork a few years back. A wizard (or sorceress IIRC) like that is hard to replace.

Reply 5 of 7, by DeepestBlueDragon

User metadata
Rank Newbie
Rank
Newbie

Appreciate the explanations, thanks. So it looks like I need to choose which one I use will depend on application. That's a shame, I was so hoping to have just one that does it all!

I'm using 86Box v6.0 (build 9001) with "old dynarec", and PCEm v17 with "Dynamic recompiler enabled" (check box, which is enabled and greyed out). If there's a way of getting more detailed info that's needed, do let me know and I'll get it!

Reply 6 of 7, by jh80

User metadata
Rank Member
Rank
Member
DeepestBlueDragon wrote on Today, 05:39:

Appreciate the explanations, thanks. So it looks like I need to choose which one I use will depend on application. That's a shame, I was so hoping to have just one that does it all!

I'm using 86Box v6.0 (build 9001) with "old dynarec", and PCEm v17 with "Dynamic recompiler enabled" (check box, which is enabled and greyed out). If there's a way of getting more detailed info that's needed, do let me know and I'll get it!

It probably only matters if you're trying to maximize which CPU you can emulate. I just go for a more modest approach that covers my needs.

You can try the 86box new dynamic recompiler ("NDR" version on Github, also here: https://86box.net/builds). It should run faster.

As I recall, anything Pentium or higher will require the dynarec.

Reply 7 of 7, by dosmax

User metadata
Rank Member
Rank
Member

Just don't expect too much from 86box's NDR version.

In terms of what is possble to safely run on my rig (Ryzen 9 7950X) it's still a ~100 MHz gap, i.e. a 300MHz CPU on 86box vs. 400MHz CPU on PCem. That's enough to keep PCem around for demanding stuff. Maybe one day 86box find someone capable enough to get their correctness first approach up to PCem's speed, but that day has not come yet.

You mileage may vary depending on your host rig, what you actually run etc, but I don't think 86box is a valid replacement yet at the upper end of the performance spectrum. It's way ahead by now in terms of features and user-friendlyness, but with performance in mind it's still no match to PCEm.