Author Topic: [FF8][Steam] Custom key mapping and fixing 'NONE' labels (with a hex editor)  (Read 8173 times)

SignoVir

  • *
  • Posts: 2
    • View Profile
Unlike FF7, the FF8 keymapping in settings is a bit ... limited. It won't let you choose keys like Shift, Space, Tab, etc.

To get around this, go into Documents\Square Enix\FINAL FANTASY VIII Steam and edit ff8input.cfg.

First off, if you want to hide the controller/joystick button prompts in game, set all of those fields to 0.

My key layout looks like:

Code: [Select]
Keyboard
1. "Select"   15
2. "Exit"     57
3. "Misc"     19
4. "Menu"     42
5. "Toggle"   16
6. "Trigger"  18
7. "RotLt"    33
8. "RotRt"    34
9. "Start"    48
10. "Select"  44
11. "Up"      17
12. "Down"    31
13. "Left"    30
14. "Right"   32
Joystick
1. "Select"   0
2. "Exit"     0
3. "Misc"     0
4. "Menu"     0
5. "Toggle"   0
6. "Trigger"  0
7. "RotLt"    0
8. "RotRt"    0
9. "Start"    0
10. "Select"  0
11. "Up"      0
12. "Down"    0
13. "Left"    0
14. "Right"   0

The numbers for the associated keys are not ascii, but rather numerically assigned based on their position on the keyboard.

http://forums.qhimm.com/index.php?topic=12123.0 has an incomplete list, but should give you the idea.

My key setup is actually the following:

Code: [Select]
1. "Select"   15 Tab Menu
2. "Exit"     57 Space OK
3. "Misc"     19 R Card Game
4. "Menu"     42 Shift Cancel/Walk
5. "Toggle"   16 Q Rotate Left
6. "Trigger"  18 E Rotate Right/Trigger
7. "RotLt"    33 F Escape Battle (+G)
8. "RotRt"    34 G Switch POV
9. "Start"    48 B Pause
10. "Select"  44 Z Toggle Display/Map/Boost mode
11. "Up"      17 W
12. "Down"    31 S
13. "Left"    30 A
14. "Right"   32 D

It's worth noting that the label for the key in the config file does not match the in game usage.

Alright! So now you have working customized keys. They even appear properly in the settings page. BUT in-game, the Shift, Tab, and Space keys appear as NONE. Anything that isn't A-Z, 0-9, F1-F12 pretty much gets relabeled as NONE in-game.

To fix this you need a hex editor. XVI32 is free and is 100% capable of doing this. Open up FF8_en.exe and search for the text string NONE, and pretty soon you'll come across a ton of them. Those are the key labels. You'll have to count forwards/backwards from the known labeled keys, but you can write in the labels overwriting the NONE. In the case of TAB, this means writing TAB on the text side and then switching to the hex view an entering 00 where the letter E is held.

Anyways, this solves the problem of certain cases like Zell's limit break having keys show up as NONE + NONE.

I should also add that this same technique can be used for relabeling the joystick/controller labels so they don't just say B1, B2, etc.

The number of 00 bytes between labels varies from 1 to 4 bytes in general. Why this is the case, I have no idea. You can safely create labels that are longer than 4 characters, however. Be warned that in-game the label will often overlap other text, though.

Hope this helps.
« Last Edit: 2014-07-10 07:18:03 by SignoVir »

Aali

  • *
  • Posts: 1196
    • View Profile
Those "numbers" are just scancodes, a complete list can be found here: http://source.winehq.org/source/include/dinput.h#0470

SignoVir

  • *
  • Posts: 2
    • View Profile
Good to know, thanks.