You are here: The Oldskool PC/Oldskool PC Software/The Oldskool PC Benchmark

TOPBENCH: The Oldskool PC Benchmark

A new benchmark for oldskool PC gaming, retrocomputing, and emulator tuning

The Oldskool PC Benchmark (TOPBENCH) is a benchmarking and profiling utility designed to help the vintage PC gaming enthusiast find the best machine speed for a particular game, whether running in an emulator or on real hardware. Because it performs short measurements continuously, it is also ideal for "dialing" the speed of your favorite emulator, such as DOSBox, in realtime to more accurately match the speed of a particular system.

TOPBENCH works by profiling your system and recording a synthetic benchmark score into its database.  It then compares your system's score to the other systems in the database, and shows you what systems are closest to yours.  It can also compare any two systems in the database against each other, to illustrate the speed difference between them.  This database, coupled with published source code, can help emulator authors check their emulation against data collected from the real hardware itself.

TOPBENCH is still in development, but you can help seed the database right now by running the profiling stub.  The stub will calculate the benchmark score for your system, record microsecond timings of various metric suites, and detect what hardware you have.  It then writes this to a file that you can email to me for inclusion in both the first release of TOPBENCH as well as regular benchmark database releases.  The stub runs on any PC with 128K RAM or higher, running DOS 2.x or higher (DOS 3.3 preferred), and you can download the stub here:
Run the stub from a freshly-booted machine and it will print instructions and start profiling your system.

Site index:

Why another benchmarking utility?

TOPBENCH was born out of a love/hate relationship with PC emulators.  For example, I love DOSBOX's ability to run old PC games on modern hardware, but I hate how its emulation speed is wildly inconsistent with how the real hardware behaves.  It is  impossible to know what you're getting when you set a particular speed.  I also like how MESS and other emulators attempt to be cycle-exact, but am frustrated than none of them truly are.

If emulators were the fathers of TOPBENCH, then older benchmarks themselves were the mothers.  Of all the early PC DOS benchmarks (Landmark Speed Test, Norton SI, C&T MIPS), not a single one got everything "right":

...and so on.  The worst problem with all DOS-era benchmarks is that their metric code was completely unknown.  You had no idea what the benchmark score you got was based on, and whether or not it applied to your situation.

To address these issues, I designed TOPBENCH.

Feature List

For retrogaming emulator users:

For emulator authors:

For retrocomputing enthusiasts:

The Performance Metric

There are three test suites that measure individual performance of certain areas of a machine (CPU, system memory, and video adapter memory), and a fourth suite that combines the first three. This fourth suite creates what is considered a system's DOS gaming performance "fingerprint", and is the primary basis of comparision between machines in TOPBENCH's database (although the individual suites can also be used if specified by the user).

The three individual test suites are:

All suites are run in a loop for a certain length of time (currently 55ms, the maximum period allowed by interrupt-on-terminal-count), and the number of iterations counted. All results are measured by the 8253 timer, then the results are combined into a meaningful "fingerprint" in differentiating systems from each other. The formula for creating the fingerprint is the combination of:

This allows for better/worse video adapters to affect the "fingerprint" without completely dominating it.

When comparing your machine's performance to other systems, the fingerprint is used by default, but the individual test suites are also selectable as a comparision in case you don't agree with the methodology behind the fingerprint.


None yet, sorry. Need to write the benchmark first ;-)

Questions and Answers

My vintage PC only has 128KB RAM, I can't run the TOPBENCH program.  How can I profile my machine and get it into the database?  The TOPBENCH "stub" (TOPBSTUB.EXE) can run (barely) on a 128K machine booted with DOS 3.3.  When it runs, it dumps information into a text file called output.ini which you can then import into TOPBENCH running on a different computer, or you can email me the file (see contact information above) to include into the next database release.

Why is it important to run games at the proper emulation speed? The earlier a game was written, the more susceptible it was to machine speed.  Most PC games made before 1985 will only run properly on one single speed!  So for maximum enjoyment, speed needs to match what the developer of the game expected when they wrote it.

It's also important to get speed right when doing historical research.  It's not fair to judge a work if that work is not being represented properly.

Will I be able to run TOPBENCH on any machine, even current ones? Yes, but doing so is somewhat pointless since the performance metric was designed for a single-core 16-bit processor, which won't really help you if you're trying to compare apples to apples. 

But it does work, and the resulting score is comically high; I get over 5000 on my Core i7 running in a VM.

Known Bugs


I would like to thank:

Development History

20111111: Released v0.91 of the profiling stub for testing.

[Oldskool Home] [Copyright and Usage] [Disclaimer] [Contact Me]

This page's content was last modified on Dec 21, 2015 4:31 pm.
If anything here has helped you, please consider donating to help keep this site alive.