You are here: The Oldskool PC/Oldskool PC Software/The Oldskool PC Benchmark |
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: ftp://ftp.oldskool.org/pub/misc/stub91.zip
Run the stub from a freshly-booted machine and it will print
instructions and start profiling your system.
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.
IN, OUT, HLT
, etc.) or
are unsafe to run on any machine (ie, LOCK, WAIT, ESC
,
etc.) are skipped.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 ;-)
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.
I would like to thank:
20111111: Released v0.91 of the profiling stub for testing.