A
animehacker
Guest
This is a script I wrote that will allow any USB gamepad such as a Playstation controller to work with any PC game regardless of driver support in the game.
I just bought FF7 again (Steam version) since I hadn't played it for years. I noticed that my x360 Controller Emulator software wouldn't work with it.
After some searching online I noticed there's other people who had the same problem. I'm not sure if a similar script/tool has been posted here but here is my solution.
1) Install AutoHotKey
2) Run my AHK script which should map your controller controls to the correct keyboard controls. I'm using a PS2 controller and it worked for me. You may need to replace '2Joy' with 'Joy' or '3Joy' in the script depending what your controller number is. If the script is working you can optionally compile it and run it as an executable if you don't want to keep AutoHotKey installed and it should still work fine.
3) (optional) To help you find your controller number or make other changes to my script you can debug using this great tool which runs as an AHK script.
https://autohotkey.com/docs/scripts/JoystickTest.ahk
Here is the script. Just copy paste into notepad and save it with the ahk extension e.g. 'FF7joy2key.ahk'. The key mappings are currently set to work with FF7 but can be modified for any game. This also allows you to move using the analogue stick on a dual shock controller.
Code: [Select]
I just bought FF7 again (Steam version) since I hadn't played it for years. I noticed that my x360 Controller Emulator software wouldn't work with it.
After some searching online I noticed there's other people who had the same problem. I'm not sure if a similar script/tool has been posted here but here is my solution.
1) Install AutoHotKey
2) Run my AHK script which should map your controller controls to the correct keyboard controls. I'm using a PS2 controller and it worked for me. You may need to replace '2Joy' with 'Joy' or '3Joy' in the script depending what your controller number is. If the script is working you can optionally compile it and run it as an executable if you don't want to keep AutoHotKey installed and it should still work fine.
3) (optional) To help you find your controller number or make other changes to my script you can debug using this great tool which runs as an AHK script.
https://autohotkey.com/docs/scripts/JoystickTest.ahk
Here is the script. Just copy paste into notepad and save it with the ahk extension e.g. 'FF7joy2key.ahk'. The key mappings are currently set to work with FF7 but can be modified for any game. This also allows you to move using the analogue stick on a dual shock controller.
Code: [Select]
Code:
#Persistent ; Keep this script running until the user explicitly exits it.SetTimer, WatchAxis, 5returnWatchAxis:GetKeyState, 2JoyX, 2JoyX ; Get position of X axis.GetKeyState, 2JoyY, 2JoyY ; Get position of Y axis.KeyToHoldDownPrev = %KeyToHoldDown% ; Prev now holds the key that was down before (if any).if 2JoyX > 70 KeyToHoldDown = Rightelse if 2JoyX < 30 KeyToHoldDown = Leftelse if 2JoyY > 70 KeyToHoldDown = Downelse if 2JoyY < 30 KeyToHoldDown = Upelse KeyToHoldDown =if KeyToHoldDown = %KeyToHoldDownPrev% ; The correct key is already down (or no key is needed). return ; Do nothing.; Otherwise, release the previous key and press down the new key:SetKeyDelay -1 ; Avoid delays between keystrokes.if KeyToHoldDownPrev ; There is a previous key to release. Send, {%KeyToHoldDownPrev% up} ; Release it.if KeyToHoldDown ; There is a key to press down. Send, {%KeyToHoldDown% down} ; Press it down.return2Joy3::Send {NUMPADENTER down} KeyWait 2Joy3Send {NUMPADENTER up} return2Joy2::Send {NUMPADINS down} KeyWait 2Joy2 Send {NUMPADINS up} return 2Joy1::Send {NUMPADADD down} KeyWait 2Joy1 Send {NUMPADADD up} return 2Joy4::Send {NUMPADDEL down} KeyWait 2Joy1 Send {NUMPADDEL up} return2Joy9::Send {NUMPADSUB down} KeyWait 2Joy9Send {NUMPADSUB up} return2Joy10::Send {NUMPAD5 down} KeyWait 2Joy10 Send {NUMPAD5 up} return2Joy6::Send {NUMPAD1 down} KeyWait 2Joy6 Send {NUMPAD1 up} return2Joy5::Send {NUMPAD7 down} KeyWait 2Joy5 Send {NUMPAD7 up} return2Joy7::Send {NUMPAD9 down} KeyWait 2Joy7 Send {NUMPAD9 up} return2Joy8::Send {NUMPAD3 down} KeyWait 2Joy8 Send {NUMPAD3 up} return
Last edited: