Dodo's aiming fix.
As a few of you have probably heard me complain, this game suffers from a nasty thing that the developers are referring to as "Negative Mouse Acceleration." Negative Mouse Acceleration (NMA, for brevity's sake) is present in pretty much everything, even just moving the mouse around over the desktop. This isn't something DICE made up and added, but they appear to have significantly increased its effect in the game.
EDIT: If you want to skip the explanation of what mouse acceleration is and go straight to the fix, go ahead. I'll put the first line of the paragraph you want to pay attention to in bold so you know where to stop.
EDIT2: In addition, this fix makes it possible for you to edit the mouse sensitivity for infantry, land vehicles (including sea vehicles, turrets, and UAVs), and air vehicles (ONLY piloting helicopters) individually.
What is it? I guess it's easier to start with what mouse acceleration is. Actually, I'll begin with 1:1 scalar movement. With normal movement, moving the mouse from point A to point B on your mousepad/desk results in the cursor moving from position 1 to position 2, regardless of the path taken. Moving the mouse four inches to the right will always produce the same result with the cursor. Moving the mouse six inches to the right, then two inches left will also produce the same result, because the net change in position is the same.
Mouse acceleration factors in how quickly you're moving the mouse to determine how quickly the cursor moves. The faster you move your mouse, the faster the cursor moves. "But wait", you say, "my cursor already moves faster when I move my mouse faster, how is this any different?" With 1:1 scalar movement, the ratio of the distance moved by the cursor compared to that moved by the mouse is constant. This is true for all linear models. If the sensitivity was set to 2:1, then the proportion would be constant, but the cursor would move twice as fast, because the computer would skip a pixel (which is very bad for accurate aiming).
What mouse acceleration does is modify the ratio based on how quickly the mouse is moving. I'm going to pull numbers out of my butt for a second, so don't take these exact numbers as fact, but hopefully it will get the general idea across. If moving your mouse at 3 inches-per-second ("in/s") over a distance of 3 inches results in the cursor moving 1000 pixels, moving it at 6in/s over that same distance could result in the cursor moving 4000 pixels. Moving it at 1.5in/s over those same 3 inches could result in the cursor moving only 250 pixels.
Negative mouse acceleration is similar, but instead of a positive correlation between how quickly the mouse moves and how quickly the cursor moves, it's a negative one. Moving the mouse faster actually slows it down. Using the 3in, 1000px example from before: moving at a rate of 3in/s could result in moving the mouse 1000px, but moving at a rate of 6in/s could result in only moving 250px, while moving at 1.5in/s could result in a change of 4000px. While this seems counter-intuitive, it does have a point. It smooths out the extremes, making everything
Mouse acceleration does have advantages in a shooter. If someone comes up behind you, moving the mouse faster could result in you facing your enemy quicker, which may be the difference between life and death. However, this comes at the expense of consistency. To repeat a result, you'd have to have the same path with the same exact velocity along that path at any, nay, every, given point in time.
Want to see it in action, even if you don't feel that it's hurting your play? Hop into a turret on an empty server, or pretty much anything that turns slowly. Anti-air (i.e., VADS) works best. Find a visual landmark to center your view on. Move your mouse, quickly, four inches (or any distance, really, so long as it's the same distance both ways. For example, you can put your mouse on a piece of loose-leaf paper and move it a certain number of lines) to the right. Then move it back very slowly. You'll see that you aren't back where you started.
I, personally, am sensitive to changes like this. I attribute that to a long time spent around Unreal- and Quake-style games that depended on excellent control. I know many players don't feel what I'm talking about, and don't think that there's anything going on behind the scenes that's hindering them, but it is there and I'd just like to share a workaround until DICE decides to remove NMA from the game. It may make no difference for you. It may improve things significantly. I don't know, but I'd like to give you the chance to experience it.
First thing is first. Make a backup of the BFBC2 folder in your My Documents. Not the one the game is in, the one in My Documents. Example filepath (Vista x32): C:\Users\[[NAME]]\Documents\BFBC2 . This folder stores personalized data - control schemes, video settings, audio settings, last person logged in, their password (if you so choose to have it store your password), your last-used kit for each class. That kind of stuff. When you open the folder, there should be five objects - an "Input" folder (which has four files in it, infantry.dbx, land.dbx, air.dbx, and shared.dbx), a "crashreport" file, two files called "GameSettings" (one is a .bin, the other is a .ini), and one file called "seettings". If any of these files are missing, then the game can automatically create them. To add the "input" folder, just edit the controls. Any single change will do. I, personally, added a physical key to trigger the melee attack ("V"), and moved the crouch key around. I don't know what triggers the creation of "crashreport", though I'd expect that crashing would create it. If it's not there, don't worry, you won't need it for what we're doing. To configure GameSettings.ini and Settings.ini, just adjust the graphical settings to something other than the default ones, and move the sensitivity bars around. To anything, it doesn't matter. We're changing that by hand later, anyway.
Once you have your backup safely stored away, make sure the game isn't running. Nothing will work if the game is on.
First, open GameSettings.ini. You should be able to open it with notepad and not face any sort of encryption. Search for the following lines:
- Sensitivity0=
- Sensitivity1=
- Sensitivity2=
- Sensitivity3=
You should see a seven-digit number. #.######. Change the number for all four values to 0.000000. Yes, we're setting the sensitivity to zero. If you were to open the game right now (after saving the file), you wouldn't be able to look around at all. Don't do it. We're not done here. Also, don't worry, we'll fix that next.
Now search for the line:
This value is effectively your regular infantry sensitivity. You can change this at will, and you'll probably be doing it a lot as you tweak to get the sensitivity just right. Set that number anywhere between 0.0001 and 200+ (not sure where the upper limit is). I've seen many people suggest 95.
Now search for the line:
Set it equal to zero. Save and close the file.
Navigate to the input folder and open infantry.dbx. You can use notepad for this, too.
Search for the line:
- <field name="ConceptIdentifier">ConceptPitch</field>
You'll see a few blocks of code that look similar. Look for the two blocks that have
type="GameSharedResources.MouseInputActionData"> on the right hand side of the one long line that leads each block. Make the following changes:
Below this, you can find a similar block of code.
Search for the line:
- <field name="ConceptIdentifier">ConceptYaw</field>
Find the similar blocks of data and make the changes below:
Save and close infantry.dbx.
Congratulations, you now have an infantryman that aims something much closer to correctly. However, vehicles, turrets, and the like will still be inoperable, because their sensitivities are still pretty much at zero. We're going to fix that now. Please follow the remaining steps.
Still in the input folder, open land.dbx. Should work with notepad.
Search for the line:
- <field name="ConceptIdentifier">ConceptPitch</field>
Same deal as the last time. Make these changes:
We're changing the scale to over 100 times its previous value because we set the sensitivity so low. This should bring it back up to speed. Change the scale as necessary. This is only a suggestion, and should be tweaked to preference.
But we've only done one axis! So now you should be able to look up and down normally, but you can't look side-to-side at all. Not much use, eh? Similar course of action.
Search for the line:
- <field name="ConceptIdentifier">ConceptRoll</field>
Make these changes:
There! Vehicles, including turrets and the UAV now work as desired. Note: this last part only affects piloting Helicopters (not UAVs, not turrets, etc., mounted in helicopters. Those seem to follow the "land" control guidelines). Not sure if it works with joystick/keyboard controls.
Anyway, still in the input folder, open air.dbx. Should work with notepad.
Same game plan as before. Search for:
- <field name="ConceptIdentifier">ConceptPitch</field>
Make these changes:
200.0 is only a suggestion, tweak as necessary. Choppers seem to need much more to compensate for setting the sensitivity to zero.
Search for:
- <field name="ConceptIdentifier">ConceptRoll</field>
Make these changes:
Save and close air.dbx. You should be fine now. Test the controls out in SP. You may need to tweak Scheme0Sensitivity (in GameSettings.ini) quite a bit until you find what you like. I made a few changes to this, and I'm currently running with Scheme0Sensitivity (GameSettings.ini) at 0.050000, but I set ScaleValue (under ConceptPitch and ConceptYaw in Infantry.dbx) to 0.037 so make up for that. Tweak until the sensitivity seems right, then go out and play. See if it makes a difference. It made a huge one for me. The night before, I was mostly struggling with a 1:4 ratio. This morning, after the fix, I had a 4:1. After that, when not delegated to support roles (i.e., Anti-Air and chopper repairs, or replenishing ammo on the roof of Charlie, or something like that, I'd been doing well with a 2+:1 in mostly every map I've played.
This guide has been adopted from the one found
here in the PA forums, which I found via the ea official forums for BC2. I believe I reproduced the steps faithfully, but feel free to double check. The formatting on the link I provided is much better, anyway. Credit where Credit is due, CarbonFire did this, improving upon an already-existing community fix; I just found it and shared it.
I hope this helps somebody as much as it helped me. If it doesn't, oh, well, no harm done. Thank you for bearing with me.