Sunday, June 26, 2005

Battlefield 2: The Video Card Controversy

As a PC Gamer you expect to upgrade, you expect that at some point your hardware will not run the latest games acceptably. Battlefield 2 does not even give you that option. It attempts to make all non DirectX 9 compatible video cards obsolete. Which means all GeForce 4 and older video cards will not run Battlefield 2. You cannot even start up the menu. Neither Electronic Arts nor the game's developer DICE have any plans to fix this. Even though the GeForce 4 line of video cards has enough horsepower to render the game it is not compatible with Pixel Shader 1.4. Emulation to Pixel Shader 1.3 would easily make the game playable on these cards but redundant texture checks make this difficult to implement.

The response from Electronic Arts on the Issue was:

"We've been talking to Benjamin Smith on the development team about this. There are no plans to implement GeForce 4 support in a patch. The engine was not built to run acceptably (performance or appearance-wise) on the GeForce 4 series of cards."

Then why does it run on slower cards such as the ATi Radeon 8500? The performance of this card is no better then the GeForce 4 line except for the inclusion of Pixel Shader 1.4 support.

Pixel Shader (Defined) - a program used to determine the final surface properties of an object or image that run on a graphics card, executed once for every pixel in a specified 3D mesh. They operate in the context of interactively rendering a 3D scene, usually using either the Direct3D or OpenGL API.

DirectX 8.1 or DirectX 9?
All GeForce 4 cards are DirectX 8.0 compatible and support up to Pixel Shader 1.3. Dice claims only DirectX 9 support but clearly shows support for a DirectX 8.1 video card, the ATi Radeon 8500. The major difference between DirectX 8.1 and 8.0 is Pixel Shader 1.4 support. When ATi introduced Pixel Shader 1.4 back in 2003, nVidia argued against it and failed to add it to the GeForce 4 line. Yet, here they did nothing to argue for support of video cards still capable of running the game? Even more insulting is the nVidia seal of approval on the box: "The Way It's Meant To Be Played" - I'm sure this is reassuring to all the nVidia GeForce 4 card owners who cannot play Battlefield 2.

Pixel Shader 1.3 vs. 1.4
The main difference is that Pixel Shader 1.4 lets graphics chips render up to six textures in a single pass instead of four. This is a performance difference. When Pixel Shader 1.4 is used, the ATi Radeon 8500 would take only one pass to render, as opposed to 2-3 on the GeForce 3/4 graphics chips. The performance argument is lost because in real world situations the GeForce 4 line easily beat out the Radeon 8500. Proving that (performance wise) the GeForce 4 line would be more then capable to run this game.

Other Games
Doom 3 supports at least a 64MB GeForce 3 and Half-Life 2 supports at least a 64MB GeForce 2. These are graphically superior to Battlefield 2 yet support older hardware. These are forward thinking developers who understand PC Gamers and the upgrade cycle. Valve's Half-Life 2 survey clearly shows over 20% of PC Gamers would not be able to run Battlefield 2. Where are the similar statistics from Electronic Arts or DICE?

PC Gamers expect older cards to run slower and at lower detail levels with newer titles. They clearly understand newer video cards will make games look and run better. But this is not the point. When games support older but capable hardware it gives the PC Gamer an incentive to upgrade because they can see the difference with their own eyes. That decision however should be up to the game buyer to make; it should not be forced upon them by the developer. No matter how innocent the developers intentions turn out to be, this comes off as a way to try and sell more video cards for nVidia.

If you can't count on the game developers, you can count on the community. Some faithful programmers have created a work in progress shader modification that gets the older cards to work. Download it and give it a try but remember this is far from finished and currently looks poor because all the shaders have not been converted yet. But it does give owners of "obsolete" video cards some hope.


Andrew said...

Yes your system will work. These are the official Requirements:

Windows XP (32-bit) with Admin rights
1.7 GHz Pentium 4 / Athlon XP or greater
512 MB or more
460MB of HD Space
DirectX 9.0c compatible (*video)
DirectX 9.0c compatible (sound)

Video card must have 128 MB or more memory and one of the following chipsets:
NVIDIA GeForce FX 5700 or greater
ATI Radeon 8500 or greater

Keep in mind it should also run with a slower CPU or a 64MB Video Card so long as it is one of the compatible types (DX 9.0c).

Andrew said...

IMO the games are more laggy due to sloppy unoptimized code. I've seen the code for BF1942 and it was pure crap, filled with tons of redundant lines and useless entries.

Andrew said...

The GeForce 4 was produced in this millenium, 2002 to be exact. If you ever used the card (which you obviously have not) and are able to play EVERY other game perfectly fine and most on high detail you would understand.

Andrew said...

The GeForce 4 MX line does not support pixel shaders at all, which means the Shader Mod will not work. Nothing can get BF2 to work on your card. MX cards are really glorified GF2 graphics cards. If it was a regular GeForce 4 card the shader mod would work.

Andrew said...

GeForce 4 MX cards do not have any shader support so it is impossible for them to play BF2. GeForce 4 Ti cards can play the game as evidence using the shader mod. Obviously they would not be able to play at high detail levels but they should be able to play at medium to low settings. This is all I and anyone who owns a Ti card is asking for.

I own a Ti 4600 card and it can play Doom 3 on medium detail fine. This is acceptable. Being able to play at high resolutions and being able to play at all are two very different things.

You do realize that a one year old game. Battlefield Vietnam is played at high resolution on my Ti 4600?

Unknown said...

hmm why is everyone having soo many problems.. i have a laptop with an ati mobility radeon 9200 64mb and battlefield 2 works. i get decent framerates round 30 at low detail and 1024x768 resolution.

computer specs:
pentium 4 HT 3.20ghz processor
512mb ram
80gig hardrive
ati mobility radeon 9200 64mb with omega drivers 4.12

Andrew said...


That is because everyone complaining has a more powerful card that does NOT work.

iir0 said...

Will bf2 work on my computer?¨
I have:
Windows Vista
Intel V pro
Intel Q965/Q963 Express Chipset Family
16g of free space on hard drive