Quake is a very famous game and for many reasons, first of all because it’s a good game, then because it started a successful serie; it was also one of the first games using a true 3D engine and it had a revolutionary look, at least for 1996.
The look in fact is the trigger that motivated me to do this benchmark “challenge”, because despite being available in many “sauces”, such as the famous 3D accelerated version “GLQuake” or various porting for other platforms, none of these versions preserves all the characteristics of the original, software rendered one.
In fact many think that visually the original version is also the best Quake version, and I tend to agree, but nobody seems to have truly explored what does it take (in terms of hardware requirements) to play it in software mode at higher resolutions and when exactly this became possible?
So, what I decided to do is test the game with the most common video resolutions to establish what are the hardware requirements to to play it at 30 and 60 frames per second.
Also, this will not be exactly the usual benchmark where you pick a set of CPUs and put the fastest on top of the chart; instead, what I decided to do is to structure the results based on the processor release date, so the challenge is not (only) who gets more fps but who has succeeded first to get the established amount.
Quake has been released on June 22, 1996 and I decided to start from what was the best consumer CPU available at that moment and this means the Pentium i200, released just 12 days before the game, on June 10, 1996.
Having established a starting point, I then checked all the release dates of the various CPU models from 1996 all the way up until the latest Windows 98 compatible ones and then matched them with my CPU collection to see if I could cover all of them. Fortunately the answer was mostly yes. I do miss a specific model here and there, so in the chart you may see that some targets have been reached with a slightly faster CPU than required but other than that I think I covered pretty much all the major (and most significant) releases.
Here is a table with the details of all the used platforms
|Socket 7||ASUS P5A-B||PC100 CL2||Matrox G400DH 32MB|
|Slot 1||ASUS P2B/P3B-F||PC133 CL2||Matrox G400DH 32MB|
|Slot A||ASUS K7V||PC133 CL2||Matrox G400DH 32MB|
|Socket 370||ASUS TUSL2-C||PC133 CL2||Matrox G400DH 32MB|
|Socket A||ASROCK K7NF2-RAID||PC3200 CL2 DC||Matrox G400DH 32MB|
|Socket 478||ASUS P4C800 DLX||PC3200 CL2 DC||Matrox G400DH 32MB|
|Socket 754||ASUS K8N||PC3200 CL2 SC||Matrox G400DH 32MB|
For every system I have disabled all the unnecessary devices, including USB controllers.
The used operating system was a clean install (each time) of Windows 98SE on a 8G SLC-CF card on CF to IDE PCB adapter.
Although I avoided the use of tweaks like FASTVID or MTRRLFBE, because they may not work properly/equally on all the platforms, when I compared my results with others where FASTVID was used I found that they were pretty much aligned, so I guess that the G400 is already using the WCB or whatever else these utilities enable.
Regarding the benchmarks itself, I always started the game from a fresh “Restart in MS-DOS mode” and pre run the demos in order to avoid possible frame drops due to loading.
I run both demo01 and demo03. My initial idea was to run only demo03 because it was a little heavier but then I decide to include also the most commonly used demo01 in order to allow more direct compares. For this reason I consider the target completed if the 30/60 fps are reached in demo01 and not necessarily in both.
I decided to start with the lowest resolution available, 320x200, which is also the one that most people used to play the game before the release of GLQuake.
Considering that I started the benchmarks from the Pentium 200, which is already good enough to allow more than 40FPS, the 30FPS target is therefore missing in this chart (I guess a Pentium 133 or 166 was the sweet point to get 30FPS in 320x200)
The 60FPS target instead has been reached by the Pentium II 266, on May 1997, almost one year after the relase of the game.
It’s also interesting to note that the Pentium 200MMX allowed a little boost over the original 200, not sure if Quake is using something of the new instructions or is intel that slightly optimized the architecture in the process.
VGA resolution is already starting to show that things will not be so easy from now on.
The Pentium II 300, released along with the 266, was able to get 30 FPS but we had to wait the Pentium III 800EB until December 1999 to hit the 60 FPS mark, although here I’m pretty sure that a Pentium 3 700/733 (released a couple months before) was already plenty for that but unfortunately I had no one in my possession to include it in the test.
The poor K6-2 450, despite being released along with the other in 1999 is already out of he’s comfort zone here.
SVGA at 30FPS was already possible in 1998 with the Pentium II 450 but to hit that 60 FPS mark we had to wait the release of the Pentium III 1133EB in mid 2000.
Not much more to note here, except how good was the new K7 architecture from AMD, managing to be 10% faster than the Pentium III Katmai in a clock-to-clock comparison.
Here things started to get complicated and improvements were made in smaller and smaller steps
The 30FPS mark was achieved in December 1999 by the Pentium III 800EB (Coppermine 800/133), which even managed to beat (slightly) the K7 800 (K75, to be precise).
For 60FPS instead, we had to step one year into the new millennium to finally see it in May of 2002 with the second revision of the Pentium 4 (aka Northwood) running at 2.40GHz (512K/533)
In this chart is also possible to glimpse the confusion of the intel transition from Pentium III to Pentium 4 in 2001 along with the poor performances of the early Pentium 4 based on Willamette.
A note of merit goes to the Athlon 1333, which got pretty close to the 60FPS target already in March of 2001!
As predictable, in SXGA things were even more difficult than XGA, and I believe that this is in large part also due to the Matrox G400DH which started to be a bottleneck for all those pixels.
Well, 30FPS was not such a big deal and the good Athlon 1200 was already enough in October 2000 to achieve it, but 60 was completely another story.
As you can see, despite all my attempts I was not able to find a CPU capable to get the 60FPS objective and the one that got closer was the Athlon64 3400+ (released in January 2004), with 51.6FPS in demo01 and 52.1 in demo03 (yes, for some reason, starting from Pentium 4 2.40 and AthlonXP 2400+, CPUs became faster in demo03).
Other than the platforms listed in the table above, I also tested two more platforms: socket 939 with AGP amd Socket 775 with AGP.
For the first one I used a MSI K8T Neo2-F based on VIA K8T800 chipset; although this mainboard was on paper fully compatible with Windows98 and had all the drivers for it, in practice it was almost unusable because of issues to properly install the video card drivers; when I eventually managed to install them, even if I was using an Athlon 64 3700+ I was getting around 20FPS in 1280x1024, so clearly something was still not working properly.
I then switched to my last option, the ASUS P5PE-VM with LGA775 Socket, based on i865G chipset with support up to Core2Duo E6xxx CPUs.
Installation was straight forward and there were no issues with drivers but every CPU I tried scored exactly 49.8FPS and I was not able, at least in a reasonable time, to figure out exactly why.
At this point I was benchmarking CPUs with Quake for over a month and I decided to conclude the project with what I had and postpone everything else I may find for a follow up.
I started this “benchkmark challange” because I was simply curious about the answer and at the same time lucky (or crazy) enough to have all the required hardware around to get it (almost) but in fact it turned out to be much more interesting than I thought and also made me think about the reason(s) that Romero, Carmack and the other developers decided to include such high video resolutions in a 1996 videogame. When they developed and released Quake, 640x480 was already considered “Hi-Res” and almost inusable in most configurations, so I wonder how they imagined the hardware evolution to be confident enough to allow the users to select 1024x768 and more. Anyway I found this challenge very fun to execute and test almost 10 years of platforms evolution was incredible, it also was a good excuse to use some mainboards and CPUs I have since years but never really used. As said before, there are still some open points which I would like to go through and possibly get that 60FPS mark in 1280x1024, will see if I’m gonna make it!