My Retro PC Build
I built this machine to dual boot between an OS from 25 years ago and OS from 5 years ago, so that I could simply switch between hobby and chores, and also to listen to the real sound of authentic Yamaha OPL chip.
- GA-G41M-Combo G41/ICH7/rev2.0
- Core 2 Quad Q9550 2.83GHz
- 8Gb DDR3 1033
- Radeon RX570 8Gb
- Yamaha YMF744B-R PCI (the "Cobra" board)
- X3MB Buran MPU-401
- WDC 80Gb IDE ~ FreeDOS & Win 98 SE
- TOSHIBA 3Tb SATA ~ Win 10 Pro 64bit
- Pioneer SATA BD-ROM/DVD+RW
But now I am happily exploring modern emulation options with Anbernic handheld device and DOSBox Pure, and hoping that in two to three years Mister would be a pocket size handheld device.
Who would have though?
Well, in fact any PC is a retro PC in 2025 - as long as it can still boot in CSM mode. And to underscore this, here is the comparison of selected Doom engine variants, all running in DOS, on several generations of computers.
Meet the contenders!
Celeron (Coppermine)
566Mzh quasi-integrated commercial computer intended for POS and cashier applications. Has a fully functioning ISA slot occupied by a soundcard and integrated Intel video chip, which is connected to an LCD diplay via a VGA/DSUB port. MS DOS 6.2 is installed on an IDE drive and was used for tesing.
Unlike other computers used, this computer's video chip offered a VESA 320x200 mode, which was preferred by MBF (see notes on MBF below).
PI computation: 167.71 sec
Quasi-integrated here means that peripherals are mostly provided as optional extension cards which are proprietary and are made for the specific motherboard series, and motherboard is in turn made for the specific casing. The computer still has standard PCI and ISA slots.
Core 2 Quad (Yorkfield)
The 2.8Ghz machine with specs listed at the start of the page. Has FreeDOS installed on an IDE drive, and it was used for testing.
PI computation: 14.82 sec
Core i5 (Haswell)
1.7GHz transformer laptop from Asus. Is equipped with both integrated Intel video chip and a mobile GeForce card. When booting from USB stick in FreeDOS is using the Intel chip for graphics.
PI computation: 22.81 sec
Core i7 (Alder Lake)
3.6GHz desktop computer with DDR4 memory and a PCI-E GeForce card connected to a widescreen desktop via DisplayPort. As with the i5 laptop, FreeDOS was loaded from the USB stick (it was actually the same stick). This PC behaved a little unpredictably, with long read operations (e.g. loading Doom WAD) sometimes resulting in program hanging. After a few reboots, however, the test runs became more reliable.
PI computation: 6.51 sec
Doom engines
Vanilla Doom
id Software own Watcom-built DOOM.EXE.
Included into the list as the baseliner.
MBF 2.04 - HDPMI Edition
Latest and greatest in Marine's Best Friend engineering, the update originally developed by @Gerwin, and then facelifted, cleaned up and rebuilt using the then modern compiler version by @CRVS. Unmodified binaries were used that were published by @Gerwin in the forum boards.
Included into the list as the headliner for the combination of original MBF performance improvements and modern complier optimized code.
Notes:
- MBF would stick with VESA 320x200 mode whenever it is available, so did not always run in VGA Mode X.
Krapfen Doom
Another Doom house port, this time a straight fork of MBF aiming for compact footprint, lightweight execution, and inclusion of some of community patches from the recent years. Compiled with period correct version of GCC (one from 1997).
Included into the list for personal reasons. And for personal reasons again was tested with two profiles.
Notes:
- Profile 1 with VGA Mode X and assembly drawing functions for fairer comparison with vanilla Doom
- Profile 2 with VESA modes (when available) and drawing functions coded in C for fairer comparison with MBF
RealDoom
An in-development port of the original Doom to lower generation PCs, aiming at running the game with agreable performance, but staying true to the original experience and not straying too much into exotic experiments territory.
Included into the list as an aggressively specialized engine tailored to tightly controlled execution environments. It uses only a subset of machine instructions, forgoes compiler optimization in favor of compact size assembly language code and emphasises performimng with limited resources, yet is still expected to run on x86-compatible PCs.
How the tests were run
OS was loaded with no drivers.
The classic Ultimate Doom 1.9 IWAD from 1995-05-25
was used with all the engines,
and the same set of 4 built-in demos (DEMO1
, DEMO2
, DEMO3
and DEMO4
) was run.
Engines were configured with the following options:
- Screen size - biggest where both border and status bar were still visible
- Messages - Off
- High resolution - Off (where applicable)
- Page flipping - On
- VESA mode - Off (where applicable, but see also notes on Krapfen Doom)
- Sound channels - 8 (but tests were run with sound disabled)
Each demo was run with -nosound
and -timedemo
command line arguments.
DEMO1
was run 3 times to pick up any warm up effects, then third run timings were recorded.
After that DEMO2
, DEMO3
and DEMO4
were all run in sequence once.
With each engine, before running DEMO1
for the first time, computer was soft restarted with Ctrl+Alt+Del
.
Laptop was connected to power supply all the time and no external display was used with it.
Test results
Real tics
Less is better
DEMO1
(1710 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 737 | 550 | 425 | 385 |
MBF | 340 | 329 | 242 | 130 |
KrapfenP1 | 533 | 329 | 243 | 131 |
KrapfenP2 | 328 | 273 | 192 | 119 |
DEMO2
(2347 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 962 | 730 | 558 | 466 |
MBF | 434 | 436 | 319 | 162 |
KrapfenP1 | 702 | 437 | 319 | 163 |
KrapfenP2 | 421 | 355 | 246 | 145 |
DEMO3
(3863 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 1590 | 1215 | 936 | 761 |
MBF | 663 | 690 | 496 | 241 |
KrapfenP1 | 1104 | 692 | 497 | 242 |
KrapfenP2 | 650 | 557 | 376 | 211 |
DEMO4
(818 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 434 | 312 | 247 | 225 |
MBF | 207 | 181 | 139 | 85 |
KrapfenP1 | 300 | 182 | 140 | 85 |
KrapfenP2 | 206 | 155 | 115 | 79 |
Frames per second
Vanilla Doom does not report FPS, so these were calculated with the assumption of 35 real tics per second.
More is better.
DEMO1
(1710 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 81.2 | 108.8 | 140.8 | 155.4 |
MBF | 176.0 | 181.9 | 247.3 | 460.4 |
KrapfenP1 | 112.3 | 181.9 | 246.3 | 456.9 |
KrapfenP2 | 182.5 | 219.2 | 311.7 | 502.9 |
DEMO2
(2347 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 85.3 | 112.5 | 147.2 | 176.2 |
MBF | 189.3 | 188.4 | 257.5 | 507.1 |
KrapfenP1 | 117.0 | 188.0 | 257.5 | 504.0 |
KrapfenP2 | 195.1 | 231.4 | 333.9 | 566.5 |
DEMO3
(3863 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 85.0 | 111.2 | 144.4 | 177.6 |
MBF | 203.9 | 195.9 | 272.6 | 561.0 |
KrapfenP1 | 122.5 | 195.4 | 272.0 | 558.7 |
KrapfenP2 | 208.0 | 242.7 | 359.6 | 640.8 |
DEMO4
(818 tics)
Computer | Celeron 566Mzh | i5 1.7GHz | Core 2 Quad 2.8GHz | i7 3.6GHz |
---|---|---|---|---|
Doom | 65.9 | 83.3 | 115.9 | 127.2 |
MBF | 138.3 | 158.2 | 206.0 | 336.8 |
KrapfenP1 | 95.4 | 157.3 | 204.5 | 336.8 |
KrapfenP2 | 139.0 | 184.7 | 249.0 | 362.4 |