Creating a DOS Gaming PC - Part 3
In Part 2 I reviewed my system's performance range, installed the OS and tested a few games. In Part 3 I'll look at some older titles (1989-1992) to see if I can use this PC to play some early 3D titles.
More Games!
In order to ensure my gaming PC is throttled on the graphics side for the era, I'm swapping out the nVidia RIVA 128-based STB Velocity 128 graphics card in there at present with the much slower Tseng Labs ET4000AX-based 16-bit ISA card. This should bring the graphics capabilities back to around 1989-1991. On the DOS gaming front at the time we saw such seminal titles as Prince of Persia, Sim City, Their Finest Hour: Battle of Britain, and Indianapolis 500: The Simulation. We were also entering the period of early 3D graphics where CPU clock speeds were rising (25 MHz in 1989, 33 MHz in 1990 and 40 MHz in 1991), and with it, the ability of our PCs to be pushed with more complex games.
A 3D game in 1989 would typically draw objects as a collection of polygons without textures. Here are some of them:
Clockwise from top-left: Test Drive III: The Passion, F-15 Strike Eagle II, Indianapolis 500, Midwinter, 4D Sports Driving, and Their Finest Hour: Battle of Britain
All good examples of early 3D. I'm picking on 3D games here because they will really stress that old 16-bit graphics card's throughput better than, say, 2D action adventure titles. What might be interesting to look at is each of these games' official minimum system requirements. Games these days were also more CPU-dependent than GPU-dependent (we weren't quite in the era of "graphics accelerators" yet).
Test Drive III: The Passion (1990) required very little: 8088/8086 CPU, 640 KB of RAM, and still supported Tandy/PCjr and EGA in addition to VGA/MCGA. Ad Lib, Game Blaster and MT-32 were also used.
F-15 Strike Eagle II (1989) was almost the same, except it went further to support Hercules and CGA.
Indianapolis 500 (1989) also similar but supported CGA, EGA and VGA graphics, and recommended a 286 CPU.
Mindwinter (1990) also required an XT machine as a minimum, and supported CGA, EGA and VGA graphics, Ad Lib, Creative CMS and Roland MT-32.
4D Sports Driving (1990) was the same as F-15 Strike Eagle.
Their Finest Hour (1989) only required an XT, and supported Hercules, CGA and better.
The reality is somewhat different, with most of these titles almost unplayable on an XT, exhibiting extremely poor frame rates. This was the norm back then - set the minimum system requirements to a PC that could technically run the game but not be an enjoyable experience. Only Test Drive III stands out from this bunch in being very speed-sensitive, so much so that while being unplayable on an XT running at 10 MHz, a 386DX-33 that arrived the year before it came out made it too fast to play. All the others will happily lap up the faster processing power of a 386 without issue.
But enough about the minimum spec... what about when our ET4000 is the one that is holding back the rest of the system? I'd like to find out the point at which it is *not* the bottleneck. To do so, I test out the frames per second the games can achieve at the fastest setting, then using the 'setmul' utility to disable caches and other settings, and re-test to see the point at which an impact in frame rate occurs, thus giving us the true 'recommended system requirements' where each game runs at its most fluid. The 'setmul' options I will use are:
- Fastest - 'setmul' not used - L1 and L2 cache on (though shadow RAM in the BIOS is only on the video area) - SpeedSys returns 149.9 with L2 cache on, meaning performance is like a Pentium MMX 200.
- Fast - L2 cache off - performance is like a Pentium MMX 166 (Speedsys = 124.38).
- Slow - L1 cache off, but branch prediction and V pipeline enabled. Performance is ~486DX-33 with L2 cache off (SpeedSys = 13.92), or like a 486DX4-100 with L2 cache on.
- Slowest - Disabled branch prediction, V pipeline and L1 cache. Performance is ~386DX-33 with L2 cache off (SpeedSys = 12.02), ~486DX2-66 with L2 cache on.
In all cases, to record the game's footage and determine frames per second, I am using a Gefen VGA to DVI Plus video converter box and recording using OBS 27.1.3 software. The Gefen is able to accept up to 70 Hz (70 fps), and OBS is set to record at 60 fps, so we won't miss any frames. Please note I'm not playing the games for hours on end here, just capturing a short bit of in-game footage to determine fps. This means you could find fps numbers drop lower than I report here in particularly busy bits of a game - take it all with a pinch of salt.
F-15 Strike Eagle II
First up is F-15 Strike Eagle II which came out the same year as the ET4000.
From left: Fastest (23 fps), Slow (16 fps), Slowest (13 fps)
The game is probably throttling frames per second to a maximum of 25 or so, regardless of how fast a computer you are running, but what's interesting is that it drops even when playing on the equivalent of a 486DX4-100. I would have expected it to remain at its very best until we were down into 386 territory. I will need to try this with a PCI graphics card for true comparison to see if throttling is really occurring in software. Some games have an internal check of what CPU you have, and use that to determine how fast the game should run or if frames are to be dropped.
Indianapolis 500
Next we enter the cockpit of our Indycar in Indianapolis 500, which also came out the same year as the ET4000 (1989). For some reason I get light blue-coloured fills on the track at frequent intervals - not sure what's causing this.
From left: Fastest (14 fps), Slow (14 fps), Slowest (14 fps)
So just like F-15, Indy 500 appears to be throttling the fps, given there is no difference in fps when I change the CPU speed.
Test Drive III: The Passion
As mentioned, Test Drive III is very speed-sensitive, making it run way too fast on anything faster than a 386. It came out in 1990.
From left (L2 cache enabled): Fastest (25 fps), Slow (25 fps), Slowest (23 fps)
From left (L2 cache disabled): Fastest (25 fps),
Slow (14 fps),
Slowest (13 fps)
So here the Pentium MMX 166 or 200 are far too fast to play on. A much better example is evident in the bottom-right, which is around a 386DX-25 or 386DX-33. Don't even bother on a 486 or higher. The ET4000 handles the game really well, though. No oddities to mention. A good guide to whether you're running on a system that's too fast is, ironically, the failed copy protection. It is supposed to give you 2 minutes of game time, but on faster systems this goes by much sooner than 2 minutes. My time was up after just 1 minute running on a 386DX-33. Perhaps something like a 386SX-25? I'm sure my fast 80286-20 would be ideal for this game.
Midwinter
Midwinter was released in 1990 by Microprose. On startup you are given the option of choosing your CPU type, which is either 8086 or 80286/386.
With L2 cache enabled, from left: Fastest (25 fps), Slow (25 fps), Slowest (22 fps)
And with L2 cache disabled, from left: Fastest (24 fps), Slow (16 fps), Slowest (14 fps)
From this we can see that you still get top [probably locked] frame rates of 25 fps on a 486DX4-100. Dropping slightly on a 486DX2-66, then with the last two with L2 cache disabled (bottom-centre and bottom-right) we see approximate performance from a 386DX-33 and 386DX-25. In my opinion, either of these last two is ideal - with this game it's not all about frames per second, it's also how fast the game runs (no doubt it's dropping frames to keep the game's pace up), and anything faster than this seems to be too fast and impacts the game's playability. Therefore, my vote is that the ideal CPU to be running Midwinter on is a 386DX-25 or 386DX-33.
Conclusion
Perhaps my 137-in-1 retro DOS gaming PC isn't ideally suited to these games, though if you install a graphics card that is more "of the time", such as one based on the Tseng Labs ET4000AX, it can be slowed down sufficiently to be able to play these games.
I still need to test the system on more early 3D games that use textured graphics, though I'm sure it will cope much better with these, since there are no 'black spots' in the CPU range for this era.