ControllerInterfaceFix by Danny Warren
Skyrim » Bug fixes
Added: 10/12/2011 - 12:44AM
Updated: 10/12/2011 - 01:41AM

55 Endorsements

1.01 Latest version

1,531 Unique D/Ls

2,771 Total D/Ls

20,056 Total Views

Uploaded by dwarren


Last updated at 1:41, 10 Dec 2011 Uploaded at 0:44, 10 Dec 2011


Allows you to remap controller buttons without breaking the interface menus

version: 1.01
author: Danny Warren



In the patch, bethesda introduced a change to the way the control
mappings worked.

In the original release, the buttons you use to interact with the user
interface menus were hardcoded. This allowed you to remap your in-game actions
(such as jump, sheath, interact, etc) while still leaving the user interface
buttons consistent (a is always accept, b is always cancel, etc).

Now, the mappings are set up such that changing the button used for an in-game
action will also swap the buttons used in the user interface menus.

Not only do the user interface buttons get swapped around, but several actions
in the menus stop working when remapped. There are several cases where you are
unable to accept or cancel menus. You must unplug your controller and take
over with the mouse or force quit skyrim.

This fix restores the hardcoded button mappings found in the original skyrim
release, allowing you to once again remap the in-game actions without breaking
the user interface menus.

I posted a quick fix for this in the bethesda forums when the patch
came out. Unfortunately, the same behavior is present in as well so it
looks like bethesda is sticking with this behavior. Might as well make the fix
official, too.

Please note that this fix does not change any of the keyboard mappings, it only
applies to the controller. If there is interest in doing a similar fix for the
keyboard, please let me know. I play with a controller so I have no idea which
new mapping tweaks work better and which would need restored to the original
release settings.



To install this mod, extract it to your skyrim data folder.

You should end up with:


Since a lot of people who don't normally mod bethesda games have been applying
this fix and having trouble, please note that the data folder is *not* located
in the same location as your save games and configuration files.

It is located in the skyrim application directory, which on windows xp would
be found here:

C:\Program Files\steam\steamapps\common\skyrim\Data

Also, please make sure that the above files are copied in to your data folder
instead of overwriting it. Several people have had this issue, and I'm not
sure which archiver they are using that is doing this.



Not really related to this mod, but handy if your controller configuration is
stuck or not behaving correctly.

The button mappings for skyrim are not stored in the configuration files, but
instead are located in a file called ControlMap_Custom.txt that lives in the
skyrim application directory.

So, on windows xp the file would be located here:

C:\Program Files\steam\steamapps\common\skyrim\ControlMap_Custom.txt

If you delete this file, you button mappings will be reset and you can remap
them again as you see fit.

Also note, for anyone that attempts to open the controlmap.txt file and edit
it themselves, that the tab stops in the file *must* remain in place or else
skyrim will crash when launched. It looks like the parser that reads in the
controlmap.txt file doesn't have any fallback for tabs as spaces, etc.



Here is a diff of the changes made to controlmap.txt from the stock file found
in "Skyrim - Interfaces.bsa" as of version

< Accept !0,Activate !0,Activate !0,Activate 0 0 0 0x8
< Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause !0,Tween Menu 0 0 0 0x8
> Accept !0,Activate !0,Activate 0x1000 0 0 0 0x8
> Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause 0x2000 0 0 0 0x8

< XButton !0,Ready Weapon !0,Ready Weapon !0,Ready Weapon 0 0 0 0x8
< YButton !0,Toggle POV !0,Toggle POV !0,Jump 0 0 0 0x8
> XButton !0,Ready Weapon !0,Ready Weapon 0x4000 0 0 0 0x8
> YButton !0,Toggle POV !0,Toggle POV 0x8000 0 0 0 0x8

< Accept !0,Activate !0,Activate !0,Activate 0 0 0 0x8
< Cancel !0,Favorites,!0,Tween Menu,!0,Pause !0,Favorites,!0,Tween Menu,!0,Pause !0,Tween Menu 0 0 0 0x8
> Accept !0,Activate !0,Activate 0x1000 0 0 0 0x8
> Cancel !0,Favorites,!0,Tween Menu,!0,Pause !0,Favorites,!0,Tween Menu,!0,Pause 0x2000 0 0 0 0x8

< Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause !0,Tween Menu 0 0 0 0x8
> Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause 0x2000 0 0 0 0x8

< Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause !0,Tween Menu 0 0 0 0x8
> Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause 0x2000 0 0 0 0x8

< Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause !0,Tween Menu 0 0 0 0x108
> Cancel !0,Tween Menu,!0,Pause !0,Tween Menu,!0,Pause 0x2000 0 0 0 0x108

The gamepad.txt file, also in "Skyrim - Interfaces.bsa", explains which hex
codes correspond to which buttons. I'll include the contents of that file here
to help explain the above diff and in case you wish to tweak controlmap.txt

// 1st field: Gamepad button name. DO NOT ALTER! This field is used to ID events in the code
// 2nd: Key hardware value. Matches XINPUT_GAMEPAD_* enum values on 360
Up 0x0001
Down 0x0002
Left 0x0004
Right 0x0008
360_Start 0x0010
360_Back 0x0020
360_L3 0x0040
360_R3 0x0080
360_LB 0x0100
360_RB 0x0200
360_A 0x1000
360_B 0x2000
360_X 0x4000
360_Y 0x8000

// NOTE: The below hardware values are arbitrary, since there are no XINPUT_GAMEPAD values for them
360_LT 0x0009
360_RT 0x000a
360_LS 0x000b
360_RS 0x000c



1.00 2011.12.09

* initial release

1.01 2011.12.09

* fixed typos in readme