Dead Space controls This used to be a pipe dream

I've recently started playing Dead Space again and while I still consider that game to be a masterful title and probably the best in that series, the PC post did suffer one rather major, and incomprehensible, flaw:

You could not remap the WASD default directions to the regular directional key. You could remap them to almost any other key. Just not the actual arrow keys..

When I played this game originally, I resorted to using a third party program to map the keyboard directional keys to a "Virtual Gamepad" and use that gamepad in the game controls. THe urual Autohotkey didn't work for some reason. I was younger back then and was slightly more willing to put up with some inconvenience. Now that I am older and less tolerant of other people's crap (seriously, this came out in 2008 and there has been patches since then and nobody thought of fixing this) I figured I'd try to see if I could forcefully remap those keys in game.

After some investigation, I found that the game generates a file %USERPROFILE%/AppData/Local/Electronic Arts/Dead Space/controls.rmp. That's C:Users<Your Name>AppData/Local/Electronic Arts/Dead Space/controls.rmp if you don't know what %USERPROFILE% expands to. The name suggests controls remap and is generated only if you remap a key in the game controls. I tried deleting it to see if the game would regenerate it after I over edited it but the game was like nope.

The process simply involved:

  1. Generate an instance of the controls.rmp file by modifying any other binding than WASD.
  2. Make a backup copy of controls.rmp. e.g. controle.rmp.default
  3. Remap the WASD keys to something else in game to update controls.rmp
    • for example WASD -> IJKL
  4. Compare controls.rmp and controle.rmp.default using a hex editor (most of them have some kind of 'compare' tool)
  5. Replace the hex values with the correct ones for the regular directional keys
  6. ????
  7. Profit

I wonder how many of you kids will get the ???? Profit reference.

Anyway, using the Direct Input (because this is a windows games using Direct X and therefore Direct Input) hex key values from here:

I was able co easily identify and remap the directional key and came up with the following offsets and values:

Offset Old Value New Value Control
0x005C 1F CD right
0x00AC 1E D0 down
0x014C 11 C8 up
0x023C 20 CB left