So I've been a long term Battlefield 2142 player and recently switched over to Bad Company 2. It is well nice but there are quite a few things that are different than 2142, I'm talking in both a game play sense and a game engine sense. I made a post about migrating from BF2142 to BFBC2 as it might save someone from a lot of mistakes that I made. Anyhow, todays post is about how to get Bad Company 2 running awesomely with an Ati 4870 X2 graphics card.
I updated to the latest Catalyst Control panel earlier this morning and it reports my Catalyst version as 10.9, on the download site it said it was 11.1 of the suite though.
One problem I have been getting with BC2 that has really spoilt my game a few times has been that the screen keeps flickering black. So imagine you're in a fixed gun taking out hordes of bad guys, then the screen goes blank. You have no idea where you're aiming, where the enemy is or who is about to knife you. Totally lame. It starts and stops randomly. Not sure if what I've done today has sorted it but time will tell. [edit: nope, didn't fix that problem at all]
So my observations are:
- The game ignores the AA and AF sliders in the Catalyst control panels 3D section. I set AA and AF in the game options to 1x and tried the Ati panel options at max and nothing hapened. The game looked all jagardy. I had the AA filter set to Box.
- The game totally hates the AA Edge Detect filter. To use that you must have the Ati AA slider set to either 4x or 8x. Above or below and it will not show in the drop down. At any rate, it kills the game. Lots of little black blocks appeared over everything and kept popping in and out. Seems the game and Ati systems start fighting. So never ever use the Edge Detect AA filter with BC2. I did read that is supposed to be the holy grail for performance and quality for games that do support it so will defintely try it with other games.
- V-Sync sucks. I told the Ati panel to let the application decide about vsync and then ingame I had it enabled. That's how I've been playing so far. With it turned off in game I have terrible screen tearing going on. My monitor is a Samsung SyncMaster 245B running at 1920x1200 at 60 hertz. So why do I say vsync sucks? Well it makes the game seem a bit sluggish sometimes, like you will be trying to aim but it just wont scroll over fast enough. Like moving through sand, there you go, a great analogy ^_^
- V-Sync problem is solvable thanks to D3DOverrider utility.
How do you use D3DOverrider?
- Head on over to the Guru 3D RivaTuner page and download the latest version. Don't install it.
- I use 7-zip as my daily zip tool. That let me right click on the rivatuner installer exe and unzip it (RivaTuner224c-[Guru3D.com].exe). Then I went into the setup directory and again, right click and unzipped the second installer exe (RivaTuner224MSIMOA2009Edition.exe).
- Inside the Tools directory is one called D3DOverrider. Copy that to a location of your choosing. I install my games into a "Games" directory so I just moved the D3DOverrider one there.
- You can delete all the rivatuner stuff now as you're done with it.
- Now load up D3DOverrider.exe, tick start with windows if that's what you want to do or make sure to have a link to it in a handy location i.e. next to your BC2 icon. That's what I do.
- Click the big + symbol at the bottom left of the list of applications. Navigate to the BFBC2Game.exe in your Bad Company 2 install directory.
- Now select that exe in the application list and set the right hand options to:
- Application detection level: High, not sure if there's a difference in game vs Medium but it doesn't seem to do any harm.
- Force triple buffering: ON
- Force VSync: OFF
- That's it, just minimise it now and make sure to run it whilst you're playing BC2.
That now allows me to play the game with ingame graphics options set to maximum quality 8x MSAA and 16x AF with vsync off and all along I get no screen tearing. It's great because at some points the game is running at over 80 FPS. During intense combat it does dive to about 45 FPS but then it eases off again. The best part is that it no longer feels like I'm playing under water with the slow screen reaction time.
Here's my final setup so there's no confusion:
- In Game Settings
- Detail and quality levels: High
- AA: 8x MSAA
- AF: 16x
- VSync: Off
- HBAO: Off
- CCC 3D App Settings
- AA: Use application settings ticked
- Filter: Box
- AF: Use application settings ticked.
- AI: Advanced.
- Mipmap Detail Level: High Quality.
- Wait for vertical refresh (VSYNC): Off, unless application specfies.
- Adapative Anti-Aliasing: Enabled and set to Quality.
- OpenGL Triple Buffering: Ticked.
- D3DOverrider Settings
- Application detection level: High.
- Force triple buffering: On.
- Force VSync: Off.
Hope this helps someone else out there as it took me quite a few hours of testing to get to this point
p.s. here are my 2142:
Edit: I just found Gossamer's Bad Company 2 Launcher v3.00 which lets you tweak a bunch of things. Most of them you can do in the in game settings screen but a few you can't. The website says it is version 3.00 but when you unzip and run it you can see it states version 1.3. Just thought I'd mention that in case anyone was confused.
I thought it would be something I use each time I load the game but it actually seems more like something you run once, tweak and then save and then don't run again until you actually want to change something. Prior to this I thought maybe it was adding commmand line arguments but it's not, it just changes the games ini files.
- For testing I'm using a game check point in "No one gets left behind" where you are in a small wooden hut and your AI squad mate hands you a sniper rifle. There are a bunch of enemies running across fields to get you both. The nice thing about this scene is that as soon as it starts you can test out the AA and AF quality by just looking around. The cans scattered on the floor to the right of you are clearly affected by the AA setting whilst the actual window frames are not, until you move closer to them. Then for testing out some action I just sniper a few people, blow up the two explosive crates and then run out and charge them for some grenade testing action.
- In the tool it gives you the Anti-aliasing scale using the NVidia range.
- Since I have an Ati 4870 the 16x and 16xQ settings do nothing. In game it works but the settings page reports both as 8xMSAA.
- Using 8x actually seems to create artifacts on the screen. Like screen tearing weapon ghosts. 8xQ works fine however and in game is reported as 8xMSAA.
- At 8xQ AA with 16x AF I get about 60 FPS during a heavy gun fight. Drops to 45-50 when a grenade goes off close and dust is kicked up. 4x AA and 16x AF meant it averaged around 75 FPS in the same scenario.
- Setting the AA to 4x is the Goldilocks selection for me. That extra 10-20 FPS it gives over 8xQ is just to nice to miss out on.
- Sticking with an AA of 8xQ (or 8xMSAA in-game) I tried lower AF values and found that the AF seemed to make no noticable difference to the FPS.
- I tried setting the DX version to 9 which forces an AA of 1x and got around 55 FPS which is no better than my normal DX10 setup. Changing the AF made no noticable performance difference.
- So lessons learned, AA of 1x or 2x looks pants. DX9 setting runs terribly since it's both slow and you can't use AA. In DX10 mode 8xQ looks best but 4x runs the best. 8xQ looks nicer for long distance things but at close range it seems very hard to notice a difference. Changing the AF value made no difference so might as well leave it at 16x.
I also changed my FOV using a value I obtained from the Battlefield: BC2 FOV Calculator. For my 1920x1200 res with a desired horizontal FOV of 90 my final vertical FOV is 65. The game had it set to 55 as default.
I changed the Sound Quality to high and haven't noticed a performance difference. I haven't played enough to really tell if it sounds any better. You would assume it would. I set my speaker count to 6 since I have a 5.1 system. 0 means it has to auto-detect your sound setup.
That's it as far as the launcher tool goes for me. Now I've set all of that I'm just going to launch the game normally with the desktop link I have directly to the game i.e. not via the launcher.
I did tweak my BC2 desktop shortcut a bit though to add the multi CPU switch +fullproc as explained here. I have an Intel Core 2 Quad Core Q6600 CPU.