Tuesday, December 16, 2008

Pentium 4 Architecture Becoming Obsolete for Modern Games

A friend of mine recently got me "Left 4 Dead" for my birthday which did a great job of demonstrating how slow my older system really was. After some tweaks the game is running fast enough to be playable, but I found some interesting things out along the way.


System specs:
Pentium 4 Northwood 2.8Ghz (533mhz FSB)
Gigabyte Motherboard
Nvidia 6600GT
1GB Patriot PC3200 RAM

Timedemo commands:
HL2 and L4D have similar commands as they use the same engine. I made my own demos for each game to make sure they were compatible with the version I had.

All games were run 1024 x 768 with everything set to low or off.

1. Start a game
2. Enable the console from the keyboard setup
3. record
4. stop
5. timedemo

Nvidia driver:
I started my testing in Half Life 2. I was surprised that a driver upgrade was able to get me about 16FPS. (v6.14.10.8185 -> v6.14.11.7824)

Testing:
Nvidia now offers some free system monitoring tools (and overclocking tools) that allowed me to track system metrics like CPU utilization, GPU utilization and Memory utilization while the demos were running. The GPU was often running 80-90%, Memory pegged at 98%, and the CPU pegged at 100%. Given the high GPU and CPU utilization, I thought some overclocking would help. The results show that overclocking didn't help that much. I also tried bumping the res down to 800x600 on L4D and found that didn't help much either.

CPU overclock: 3.23Ghz (154mhz FSB, no voltage changes)
GPU overclock: Core 560mhz, Memory1070mhz

HL2 Baseline: 23.80 FPS
HL2 Driver Upgrade: 39.26 FPS
HL2 GPU Overclock: 41.00 FPS

L4D Baseline: 30.46 FPS
L4D CPU Overclock: 33.16 FPS

Heat:

I got a new power supply a few weeks ago and didn't pay attention to the fact that it had a fan on the inside that my old power supply didn't have. This fan sits very close to the CPU fan, and spins in the opposite direction. I checked the Gigabyte health monitors and it showed the CPU idling at around 56 deg C and the fan was spinning at 1700RPM. Luckily the heatsink allowed me to easily unscrew the fan and put it on backwards to reverse the flow. Now the CPU idles at about 32 deg C, and the fan spins at 4000RPM.

While I had my PC open, I decided to do some other heat management mods. I drilled some larger holes in the front near the front fan to let it breath easier and I sealed all the random air holes with clear packaging tape. Now air can only enter through the front of the case and can only exit through the power supply (back of the case) or through some holes near the processor (back of the case).

Now even while overclocking the CPU rarely gets above 52 deg C. In fact, the whole system runs cooler, even the disk drives. The only thing that still ran hot was the GPU at 70 deg C. It seems the pretty copper heatsink with fan looks nicer than it performs.

The future:

I suppose I could max the system out with 2GB of RAM and an ATi 3850 AGP video card, but the most cost effective long-term solution in my opinion would be to save my money and get a newer multi-core system with PCI Express. This is because the Pentium 4 architecture with AGP has pretty much retired and will no longer be able to receive upgrades to support newer games.

I'll be re-using my case though.. :-)

Updates:

1. I thought L4D was missing the ability to find specific games and choose a server with the lowest ping, but it's actually just hidden. To use the HL2-like game finding tool, open the console and type: openserverbrowser

2. You can change the language to German from the steam games menu by right clicking the game and choosing properties.

3. bind k "vocalize PlayerLaugh" ;-)