What helped for me with the micro-stutters in Metro 2033 was this guide in a GameFAQs forum post (which I found through PC Gaming Wiki):
I discovered that the user.cfg
inside the game directory actually has
many commands that slows down frame rates considerably. The
configuration inside this directory is never used if not when the game
is firstly started or when the user.cfg
inside the Appdata is removed.
As I said it contains many commands that greatly reduce frame rates.
Problem is that if you just remove the user.cfg
that it's used by the
game all these commands will be recreated back and the performance of the
game will be greatly reduced.
So I discovered that if you rename the user.cfg
that recreates these
commands (the one inside the game dir) and you delete the user.cfg
used by the game you have an HUGE increase in FPS. However you
cannot simply delete the user.cfg
inside the game dir because it
contains some keybindings that are not recreated by default by the
game.
To cirumvent the trouble do this:
A) Under the game directory you will find the user.cfg
I'm speaking
about. Rename it to user.txt
. We are doing this because on the next
step we are going to delete the user.cfg
actually used by the game,
and if you don't rename the user.cfg
inside the game directory the
commands in it will be copied in the user.cfg
recreated. However you
cannot delete the file because it contains some keyboard binding nots
recreated automatically by the game, you have topaste them manually.
B) Go under \Users\Username\Appdata\Local\4A Games\Metro2033\
directory. Be sure to have the ability to look hidden
files or you will not see the "Local" directory and its content.
Inside you will find the user.cfg
used by the game. Delete it (yes,
delete it, don't worry).
C) Start the game. You will notice that the settings will be reverted
back. Just put all the settings as they were before. Now exit the
game.
D) Return under the \Users\Username\Appdata\Local\4A Games\Metro2033\
directory.
You will see that the file user.cfg
has being recreated. This is fine.
Now open another window and go inside the game directory. Open the
user.txt
(that it was user.cfg
that you renamed). Now you have to past
all "bind ..." keyboard commands (the one with "kX" as "kESCAPE" for
example)inside the user.cfg
file. You must do this because there are
somebindings that as I said are not recreated by default. If you don't
do this step for example the ESC key will not work to go to the menu
while you are playing.
E) After you have finished pasting the bindings (it should begin with
"bind changemenumap kESCAPE" and end with "bind wpn_aim mouse1", the
rest you don't need since they are keypads bindings) save the file.
You are done.