Posted May 07, 2014
Before any of you go any further and start modifying files, do note that a tool called autohotkey will probably provide an easier and safer solution for modifying the controls. [url=]http://www.gog.com/forum/tex_murphy_series/tex_murphy_tesla_effect_change_controls_mod/post11[/url] describes a setup that worked for that person and hopefully should work for you too. I'll keep the below instructions for anyone out there who would rather not use 3rd party applications.
When playing Tesla Effect I noticed that there were no options for changing the controls scheme of the game. Since I use dvorak as my default control scheme I figured I'd go and try and see if I could fix this nagging issue. Thankfully, since the game is built upon Unity, the process wasn't all too hard . If the control scheme bothers you as much as it did me and you don't mind using a hex editor, here are the locations and values you need to modify to change the control scheme.
(NOTE: MAKE SURE YOU MAKE A BACKUP OF THESE FILES!!!)
(Additional note: as the game gets patched the locations may change. I'll update this list as I have time. If the hex strings don't match what I posted here it's probably best to back away slowly. For the time being the hex strings appear only once in the file so a find and replace may work but do at your own peril)
(I included the dvorak control scheme since that what I used)
(UPDATED: May 16, 2014)
Tesla Effect\TeslaEffect_Data\Managed\Assembly-CSharp.dll:
w - 119(0x77): , - 44 (0x2c) @ 0x369C8 = 1F 77 80 D1 07 00 04
s - 115(0x73): o - 111(0x6f) @ 0x369CF = 1F 73 80 D2 07 00 04
d - 100(0x64): e - 101(0x65) @ 0x369D6 = 1F 64 80 D3 07 00 04
a - 97 (0x61): a - 97 (0x61) @ 0x369DD = 1F 61 80 D4 07 00 04
f - 102(0x66): u - 117(0x75) @ 0x369E4 = 1F 66 80 D5 07 00 04
e - 113(0x65): . - 46 (0x2E) @ 0x369EB = 1F 65 80 D6 07 00 04
The second value in these strings of hex characters is the keycode so in my case the values are changes as below:
@ 0x369C8 = 1F 2C 80 D1 07 00 04
@ 0x369CF = 1F 6F 80 D2 07 00 04
@ 0x369D6 = 1F 65 80 D3 07 00 04
@ 0x369DD = 1F 61 80 D4 07 00 04
@ 0x369E4 = 1F 75 80 D5 07 00 04
@ 0x369EB = 1F 2E 80 D6 07 00 04
And just to bring up a key binding from a lower post:
Esc - 27 (0x1B) @ 0x3698B = 1F 1B 80 CA 07 00 04
As jcasetnl pointed out the original keys are still mapped in addition to the ones we just remapped. This is due to the wasd keys being mapped to directions twice in the game so we need to change both occurrences. There is another file that needs to be modified in order to properly remap the keys.
Tesla Effect\TeslaEffect_Data\mainData
Search in the file for the string "Joystick Left Horizontal" and a bit further down will be the letters 'a' and 'd'. Change these to whatever key bindings you have setup in the Assembly-CSharp.dll
The next part should be pretty obvious at this point. Search for "Joystick Left Vertical" and behold there is our w and s. Match these to what you have set in the dll file and you should have no more overlapping key mappings.
Happy Gaming!
PS. if you want a different control scheme just replace the characters with the lower case ascii equivalent. Windows Character map or google can help you look up these values.
P.S. Here is a list of all the potential keycodes usable by this remapping method
None = 0x00
Backspace = 0x08
Tab = 0x09
Clear = 0x0C
Return = 0x0D
Pause = 0x13
Escape = 0x1B
Space = 0x20
Exclaim = 0x21
DoubleQuote = 0x22
Hash = 0x23
Dollar = 0x24
Ampersand = 0x26
Quote = 0x27
LeftParen = 0x28
RightParen = 0x29
Asterisk = 0x2A
Plus = 0x2B
Comma = 0x2C
Minus = 0x2D
Period = 0x2E
Slash = 0x2F
Alpha0 = 0x30
Alpha1 = 0x31
Alpha2 = 0x32
Alpha3 = 0x33
Alpha4 = 0x34
Alpha5 = 0x35
Alpha6 = 0x36
Alpha7 = 0x37
Alpha8 = 0x38
Alpha9 = 0x39
Colon = 0x3A
Semicolon = 0x3B
Less = 0x3C
Equals = 0x3D
Greater = 0x3E
Question = 0x3F
At = 0x40
LeftBracket = 0x5B
Backslash = 0x5C
RightBracket = 0x5D
Caret = 0x5E
Underscore = 0x5F
BackQuote = 0x60
A = 0x61
B = 0x62
C = 0x63
D = 0x64
E = 0x65
F = 0x66
G = 0x67
H = 0x68
I = 0x69
J = 0x6A
K = 0x6B
L = 0x6C
M = 0x6D
N = 0x6E
O = 0x6F
P = 0x70
Q = 0x71
R = 0x72
S = 0x73
T = 0x74
U = 0x75
V = 0x76
W = 0x77
X = 0x78
Y = 0x79
Z = 0x7A
Delete = 0x7F
When playing Tesla Effect I noticed that there were no options for changing the controls scheme of the game. Since I use dvorak as my default control scheme I figured I'd go and try and see if I could fix this nagging issue. Thankfully, since the game is built upon Unity, the process wasn't all too hard . If the control scheme bothers you as much as it did me and you don't mind using a hex editor, here are the locations and values you need to modify to change the control scheme.
(NOTE: MAKE SURE YOU MAKE A BACKUP OF THESE FILES!!!)
(Additional note: as the game gets patched the locations may change. I'll update this list as I have time. If the hex strings don't match what I posted here it's probably best to back away slowly. For the time being the hex strings appear only once in the file so a find and replace may work but do at your own peril)
(I included the dvorak control scheme since that what I used)
(UPDATED: May 16, 2014)
Tesla Effect\TeslaEffect_Data\Managed\Assembly-CSharp.dll:
w - 119(0x77): , - 44 (0x2c) @ 0x369C8 = 1F 77 80 D1 07 00 04
s - 115(0x73): o - 111(0x6f) @ 0x369CF = 1F 73 80 D2 07 00 04
d - 100(0x64): e - 101(0x65) @ 0x369D6 = 1F 64 80 D3 07 00 04
a - 97 (0x61): a - 97 (0x61) @ 0x369DD = 1F 61 80 D4 07 00 04
f - 102(0x66): u - 117(0x75) @ 0x369E4 = 1F 66 80 D5 07 00 04
e - 113(0x65): . - 46 (0x2E) @ 0x369EB = 1F 65 80 D6 07 00 04
The second value in these strings of hex characters is the keycode so in my case the values are changes as below:
@ 0x369C8 = 1F 2C 80 D1 07 00 04
@ 0x369CF = 1F 6F 80 D2 07 00 04
@ 0x369D6 = 1F 65 80 D3 07 00 04
@ 0x369DD = 1F 61 80 D4 07 00 04
@ 0x369E4 = 1F 75 80 D5 07 00 04
@ 0x369EB = 1F 2E 80 D6 07 00 04
And just to bring up a key binding from a lower post:
Esc - 27 (0x1B) @ 0x3698B = 1F 1B 80 CA 07 00 04
As jcasetnl pointed out the original keys are still mapped in addition to the ones we just remapped. This is due to the wasd keys being mapped to directions twice in the game so we need to change both occurrences. There is another file that needs to be modified in order to properly remap the keys.
Tesla Effect\TeslaEffect_Data\mainData
Search in the file for the string "Joystick Left Horizontal" and a bit further down will be the letters 'a' and 'd'. Change these to whatever key bindings you have setup in the Assembly-CSharp.dll
The next part should be pretty obvious at this point. Search for "Joystick Left Vertical" and behold there is our w and s. Match these to what you have set in the dll file and you should have no more overlapping key mappings.
Happy Gaming!
PS. if you want a different control scheme just replace the characters with the lower case ascii equivalent. Windows Character map or google can help you look up these values.
P.S. Here is a list of all the potential keycodes usable by this remapping method
None = 0x00
Backspace = 0x08
Tab = 0x09
Clear = 0x0C
Return = 0x0D
Pause = 0x13
Escape = 0x1B
Space = 0x20
Exclaim = 0x21
DoubleQuote = 0x22
Hash = 0x23
Dollar = 0x24
Ampersand = 0x26
Quote = 0x27
LeftParen = 0x28
RightParen = 0x29
Asterisk = 0x2A
Plus = 0x2B
Comma = 0x2C
Minus = 0x2D
Period = 0x2E
Slash = 0x2F
Alpha0 = 0x30
Alpha1 = 0x31
Alpha2 = 0x32
Alpha3 = 0x33
Alpha4 = 0x34
Alpha5 = 0x35
Alpha6 = 0x36
Alpha7 = 0x37
Alpha8 = 0x38
Alpha9 = 0x39
Colon = 0x3A
Semicolon = 0x3B
Less = 0x3C
Equals = 0x3D
Greater = 0x3E
Question = 0x3F
At = 0x40
LeftBracket = 0x5B
Backslash = 0x5C
RightBracket = 0x5D
Caret = 0x5E
Underscore = 0x5F
BackQuote = 0x60
A = 0x61
B = 0x62
C = 0x63
D = 0x64
E = 0x65
F = 0x66
G = 0x67
H = 0x68
I = 0x69
J = 0x6A
K = 0x6B
L = 0x6C
M = 0x6D
N = 0x6E
O = 0x6F
P = 0x70
Q = 0x71
R = 0x72
S = 0x73
T = 0x74
U = 0x75
V = 0x76
W = 0x77
X = 0x78
Y = 0x79
Z = 0x7A
Delete = 0x7F
Post edited May 16, 2014 by pb1866