xsistor

Insane Frame Rates on Low-End Hardware in Company of Heroes & Other Games

In Computer Hardware, Gaming, Overclocking & Tweaking, RPG, RTS on July 17, 2009 at 6:19 pm

Bookmark and Share


add to del.icio.us :: Add to Blinkslist :: add to furl :: Digg it :: add to ma.gnolia :: Stumble It! :: add to simpy :: seed the vine :: :: :: TailRank :: post to facebook

Necessity and Desperation

If necessity is the mother of invention then desperation is its great grandmother. I remember my first computer very well: an 80386 DX @ 40 Mhz with a 170MB Hard Disk, 2MB of RAM and a whopping 1MB SVGA Trident graphics card. We didn’t know it at the time but ‘Prof Computers’, the retailer who sold us the system, had loaded up the PC with old unreliable parts. What a bunch of charlatans and thieves! So naturally that computer would constantly break down and we’d have to take it in for service regularly.

Insane FPS! This is on an 8600M GT with High Models, Quality and Textures

Insane FPS! This is on an 8600M GT with High Models, Quality and Textures

They barely kept the system running through its warranty and as soon as that was over the system just decided to quit for good. And so my brother and I would often joke about what we believed ought to be their motto – “Prof – We keep it running.” All things considered I loved that computer to bits. It had a 7-segment LED display on the front of the case  with a Turbo button. At the default setting the 7-segment display would read 40 in bright green, but pressing the turbo button would slow down the system to 20Mhz. There was a massive Power button marked 1 and 0, a hard reset button and, get this – a lock for a computer key. Yup, as many who’ve used old systems would rememeber, most of them came with a key that you could use to lock the system. Booting up with the system locked would lead to an error message during the POST.

Growing up, I wasn’t much for gaming. Most of my time was spent programming in BASIC, Pascal and running innovative MS DOS scripts. Some of my favourites were processing command-line parameters in the form of “%1”, “%2”, … “%n”, and of course the ultimate single line command which would typically read something like:

for %t in (file1.ex1 file2.ex2 file3.ex4 somefile.exe another.dat makeEmUp.bat gorilla.bas nibbles.bas autoexec.bat config.sys)  do if not exist a:\somedir\%t copy %t ..\

As some of you may guess, this command would first check to see if the files listed in brackets (file1.ex1, file2.ex2, file3.ex4, etc) exist in the specified directory in the floppy drive, and if the file does not exist it will copy it to the parent of the current directory. However, if the file does exist on the floppy it will do nothing. Quite a mouthful! To a nine year old boy over fifteen years ago It was quite an impressive feat because it trivialised an otherwise laborious and repetitive copy process. In fact, even now for some highly specialised copy operations it is a lot more efficient to use a commands such as these at the DOS prompt than it is to use the Windows explorer GUI. An year or two later I had occasion to use this command to great effect when Windows 95 (on a Cyrix 5×86) would fail miserably and I had to recover hundreds of accounts files without access to a GUI or any advanced MS-DOS commands like xcopy. But I digress, so let me get back on the topic about computer games, for that’s what this article is about.

Running Doom… or Trying

There were quite a few games that I ran on it. Some of the more memorable ones such as Wolfenstein 3D, California Games 2, Test Drive 3, Grand Prix, Dangerous Dave, F14 Tomcat, Chaos Engine … and several others, and they’d all run very well on my system. Sadly however, there were some games that just wouldn’t run – the fabled ‘4MB+ RAM Games’ as we’d call them. Some games simply would not and could not run on systems with 2MB of RAM. These included, notably, Doom, Doom 2, Lion King and Wing Commander II. We didn’t even try Wing Commander. But we did try with Doom 2. Operating systems at the time – MS DOS – ran in ‘real mode’ with only 1 MB of addressable memory. Some programs entered protected mode themselves and had access to XMS and EMS memory allowing the use of 2MB or more. Without getting into details about the memory organisation of the original IBM PC, let me just say: the 386 added a special mode of operation called 32-bit protected mode (something we’ve all relied on to this day, until 64 bit systems started becoming mainstream), which allowed a theoretical addressable limit of 4GB! Having 2MB of RAM and a 170MB HDD this 4GB limit was highly theoretical indeed (what with some mainframes of the day boasting a whopping 32MB of RAM). Sadly, no operating systems existed that could run in protected mode and provide virtual memory to processes.

Doom a.k.a. carrot on a stick. Just one of many the games I could not run with 2MB RAM

Doom a.k.a. carrot on a stick. Just one of many the games I could not run with 2MB RAM

Enter Windows 3.1 – the fake OS. Back in the day MS DOS was the OS. Windows was just a program that run under MS DOS and was referred to as an ‘Operating Environment’ as Windows 95 was the first true Windows operating System. However, Windows 3.1 did have the capability to run in what was called ‘386 enchanced mode’. In 386 enhanced mode Windows 3.1 could theoretically supply huge amounts of virtual memoy to processes.

And so with my good friend and fellow geek we set out on our quest to untold amounts of virtual memory in 386 enchanced mode. And it took quite a lot of work to get it to do that – we lacked some core DLLs and ran into various other problems that I can hardly remember anymore. After managing to run in 386 enchanced mode it all came down to editing PIF files for Doom 2, trying hard to allocate the right amounts of the various types of memory it needed (conventional, XMS, EMS, virtual). At the end of our endeavors Doom 2 would start up and give us the message, ‘malloc () 3,7xx KB,‘ and fail to load as 3.5 MB or there abouts did not quite cut it. We had fought valiantly, but decided to concede defeat. Yet, why did it taste like some small victory? We had convinced Doom 2 that we had 1.5MB more than we actually, physically, literally did.  So we let things go…

The King Has Returned

Until much later when we stumbled on Lion King, and decided to try again. After quite a bit of work we managed to allocate the full 4MB of memory and Lion King loaded. You can imagine our jubilance! We were ecstatic! We did not care that it ran at something like 1 frame per second! We did not care that it was completely and utterly unplayable! We didn’t give a rat’s ass! What mattered was that we had fought, man against machine, and man had triumphed: Mankind score ONE, Superior-Future-AI-with-Aspirations-for-World-Domination zero. We had achieved what was said to be impossible (by our friends at least) – i.e. running a 4MB game with a paltry 2MB system! There you have it. Invention and discovery driven by complete and utter desperation.

Lion King we did manage to run!

Lion King we did manage to run!

It is the same sort of desperation that drove me to maximising frame rates on Company of Heroes with mid-range laptop hardware a.k.a. low-end PC hardware. While nothing that in this feels nearly as awesome as what we managed over 15 years ago on a measley 386 DX, I think that in spirit at least, under all that flesh there is some small quietly throbbing vein that is more alike than different.

GPU Facts

8600M GT under moderate load running clocks at 633/885/1350

8600M GT under moderate load running clocks at 633/885/1350

As you may know from my previous post, I did manage to overclock my 8600M to beyond the levels of NVidia’s high-end 8700M GT. That’s shaping up quite nicely. The system is running as cool as it ever did – granted, Dell shortchanged me by handing me a GPU that runs hotter than some of the other stock – but all things considered, I’m rather happy, at least until I build my next system which should be soon!

This overclock game me a pretty stable 58 FPS average on the ‘Performance Test’ in Company of Heroes where I used to have 50. An 8 fps increase isn’t bad at all, especially considering the boost it gave to minimum FPS. That’s the key – not letting FPS drop too low. I’d be happy with a minimum FPS of 20 even, though 30 would be more like it. Under these settings 1v1 and 2v2 became fully playable again despite moderately high graphics settings. The performance test does tend to give higher FPS than an actual multiplayer game, so I also tested the gameplay on Fraps by monitoring the overall frame rate with the overlay counter. Intense battles with several units onscreen still did result from quite an FPS drop.

So I set about tweaking my graphics device settings. The point was to try to balance looks vs performance. What I discovered was that turning off some GPU intensive settings could result in dramatic increase in frame rate without compromising overall quality. The biggest FPS killers, as we know, are Anti-Aliasing (AA), and Vertical Sync (VSync). Compared to the cost, on low-end hardware, the benefits from enabling these options is not very significant. I can live with the occasional screen-tearing (I am yet to see that happen in CoH or Age of Conan), but what I could not live with was 10 FPS when I’m trying to desperately out micro my Ranger-spamming opponent with my Puma Armored Cars opponent in an intense 2v2 AT or 1v1 rated match.

NVidia Control Panel, 3D Graphics Settings

So with that in mind, I found optimal settings as displayed on the screenshots that folllow. This gave me a massive boost in performance: 235 max FPS as opposed to 60fps; 100 average FPS vs 58; 39 mininum FPS vs 1.9. And in fact, I got these results after turning up textures, turning on shadows, cranking up the Building quality to maximum and  turning on NVidia’s new Ambient Occlusion driver setting (some of the shadow effects look just amazing with this setting). I also turned-off GPU PhysX because I do not play any NVidia PhysX accelerated games. Company of Heroes uses Havok physics.

NVidia Control Panel Settings I

NVidia Control Panel Settings I

If these settings could give me such a significant performance boost, then it should dramatically improve performance for anyone with similar hardware. It has really made CoH and AoC very playable. While I didn’t notice quite as massive a boost from Age of Conan, I did find that these settings seemed to suit Company of Heroes best. For Age of Conan, the default settings seem to do somewhat similarly, but with the tweaking I’m running it with 30-50 FPS on DX9 HIGH with Ambient Occlusion, Bloom and Parallax Mapping enabled. Furthermore, I did manage to play DirectX 10 mode in Age of Conan and it was quite smooth! Incredible, when you stop to think it’s running on Vista 32-bit and a mere 8600M GT. Imagine what you can do with 9600M GT or even a 9800M GT!  Age of Conan is a treat for the eyes with DX10.

NVidia Control Panel Settings II

NVidia Control Panel Settings II

Company of Heroes

The game still looks simply amazing with these settings. Take a look at the screenshots. I’ve included the FRAPS overlay on some of the pictures so you get an impression as to how real in game performance looks. These are all playbacks, but I find that on my system, the performance difference between playbacks and actual gameplay is minor. This probably has to do with my system being GPU-bound for CoH rather than CPU-bound. The settings I used was DX9 with Model/Shader/Textures/Building/etc set to High. Physics and Trees set to Medium. It seems the FPS drop is large in areas with trees or when you raise Tree quality to High. So My advice is to not go crazy on Tree settings – Trees are a real GPU killer!

This is Panther Panzer! Krupp steel on Porsche Engine, who can defeat us!?

This is Panther Panzer! Krupp steel on Porsche Engine, who can defeat us!?

Some of you may feel tempted to enable AA but I really wouldn’t do it unless I had oodles of Graphics RAM. With only 256MB of GDDR3 it may look like your system is handling AA just fine, but when there are lots of units on screen and the GPU is working on AA you can experience massive frame rate drops caused by the memory bottleneck. Even the legendary GTX 285 really wins out against the GTX 275 only when AA is cranked up. Most of the time performance is quite similar between the two but can grow to over 10 FPS difference on most benchmarks which include AA, thanks to the higher memory bandwidth (512-bit) and higher framebuffer (1GB) on the GTX 285. The GTX 275 inherits the same 240 stream processors as the GTX 285, but it also borrows the 448-bit memory bus and the 896MB framebuffer from the GTX260. Multiple inheritance FTL!

Benchmark Results at 1280×720

Without much ado, I’ll direct you to the results of this benchmark:

1280x720 benchmark settings

1280x720 benchmark settings

1280x720 benchmark settings

1280x720 performance settings

Benchmark Results 1440×900

Now we crank it up a notch – 1440×900 is a pretty high resolution for a laptop Video card with its characteristic low wattage power supply, a mere 32 stream processors and only 256MB of GDDR3. But we did it anyway, and here are the results:

1440x900 benchmark settings

1440x900 benchmark settings

1440x900 performance test results

1440x900 performance test results

As you can see, even at this high resolution, the system delivers! … That 1.9 FPS is something that crops up occasionally. With the Company of Heroes performance test there is a glitch at some point which, on some settings causes a ridiculously low minimum frame rate for about a second. However, as the average FPS shows, the system is still performing admirably.

That concludes this rather lengthy article. I’ll leave you to browse the gallery which includes both 1440×900 and 1280×720 screenshots of Company of Heroes with a FRAPS screen overlay reporting FPS on most of them. The first 7 shots  of the 1v1 game were taken at 1280×720 while the rest were at 1440×900. I’ve also included a few Age of Conan (1440×900 again) screenshots just to show that the game looks great while running smoothly after all the work that went into overclocking and tweaking.

Bookmark and Share


add to del.icio.us :: Add to Blinkslist :: add to furl :: Digg it :: add to ma.gnolia :: Stumble It! :: add to simpy :: seed the vine :: :: :: TailRank :: post to facebook

Gallery:

Advertisements
  1. Thank-you, I a new to gaming, I appreciate this information about the nvidia display drivers vs others, thanking you kindly.

  2. i would say that Lion King is one of the best animated films that i have ever watched .,;

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: