A small script with customizable keys for 2 gamepads that translate to a keyboard, simply run it, enter the game and configure your joystick instead of keyboard in any game..
If you have more than 2 gamepads or joysticks simply change the numbers at the beginning of the code and test it until it works
Also you can change what keys are pressed although it does not matter if you set them in the game interface directly with the gamepad
and here is the code..
Code:
;created by jaxx0rr
;pov segment is by another author ( not sure who )
#Persistent
SetFormat, float, 03
SetTimer, WatchJoysticks, 5
return
WatchJoysticks:
;=======================================================================================
;=======================================================================================
;======== SETTINGS ===============================================================
;=======================================================================================
;=======================================================================================
;set your joystick %1 (type in different numbers and test joysticks to see whats what)
JoystickNumber1 = 1
;set the keys for the first joystick (this will be the pow)
JoystickNumber1KeyUp = Up
JoystickNumber1KeyDown = Down
JoystickNumber1KeyLeft = Left
JoystickNumber1KeyRight = Right
JoystickNumber1Btn1 = 1
JoystickNumber1Btn2 = 2
JoystickNumber1Btn3 = 3
JoystickNumber1Btn4 = 4
JoystickNumber1Btn5 = 5
JoystickNumber1Btn6 = 6
JoystickNumber1Btn7 = 7
JoystickNumber1Btn8 = 8
JoystickNumber1Btn9 = 9
JoystickNumber1Btn10 = 0
JoystickNumber1Btn11 = q
JoystickNumber1Btn12 = e
;set your joystick %2 (type in different numbers and test joysticks to see whats what)
JoystickNumber2 = 2
;set the keys for the second joystick (this will be the pow)
JoystickNumber2KeyUp = w
JoystickNumber2KeyDown = s
JoystickNumber2KeyLeft = a
JoystickNumber2KeyRight = d
JoystickNumber2Btn1 = z
JoystickNumber2Btn2 = x
JoystickNumber2Btn3 = c
JoystickNumber2Btn4 = v
JoystickNumber2Btn5 = b
JoystickNumber2Btn6 = n
JoystickNumber2Btn7 = m
JoystickNumber2Btn8 = f
JoystickNumber2Btn9 = g
JoystickNumber2Btn10 = h
JoystickNumber2Btn11 = j
JoystickNumber2Btn12 = k
;=======================================================================================
;=======================================================================================
;======== END OF SETTINGS ======= dont edit below this unless ur a pro ... =======
;=======================================================================================
;=======================================================================================
;===================================================================================
;==== JOYPAD 1 =====================================================================
;===================================================================================
;axis to direction
;=======================================================================================
GetKeyState, joyx, %JoystickNumber1%JoyX
GetKeyState, joyy, %JoystickNumber1%JoyY
AXY1Key1ToHoldDownPrev = %AXY1Key1ToHoldDown%
AXY1Key2ToHoldDownPrev = %AXY1Key2ToHoldDown%
if joyx < 20
{
if joyy < 20
{
AXY1Key1ToHoldDown = %JoystickNumber1KeyUp%
AXY1Key2ToHoldDown = %JoystickNumber1KeyLeft%
}
else if joyy between 40 and 60
{
AXY1Key1ToHoldDown =
AXY1Key2ToHoldDown = %JoystickNumber1KeyLeft%
}
else if joyy > 80
{
AXY1Key1ToHoldDown = %JoystickNumber1KeyDown%
AXY1Key2ToHoldDown = %JoystickNumber1KeyLeft%
}
}
else if joyx between 40 and 60
{
if joyy < 20
{
AXY1Key1ToHoldDown = %JoystickNumber1KeyUp%
AXY1Key2ToHoldDown =
}
else if joyy between 40 and 60
{
AXY1Key1ToHoldDown =
AXY1Key2ToHoldDown =
}
else if joyy > 80
{
AXY1Key1ToHoldDown = %JoystickNumber1KeyDown%
AXY1Key2ToHoldDown =
}
}
else if joyx > 80
{
if joyy < 20
{
AXY1Key1ToHoldDown = %JoystickNumber1KeyUp%
AXY1Key2ToHoldDown = %JoystickNumber1KeyRight%
}
else if joyy between 40 and 60
{
AXY1Key1ToHoldDown =
AXY1Key2ToHoldDown = %JoystickNumber1KeyRight%
}
else if joyy > 80
{
AXY1Key1ToHoldDown = %JoystickNumber1KeyDown%
AXY1Key2ToHoldDown = %JoystickNumber1KeyRight%
}
}
;ToolTip, %joyx% - %joyy% - %AXY1Key1ToHoldDown% - %AXY1Key2ToHoldDown%
SetKeyDelay -1
if AXY1Key1ToHoldDown <> %AXY1Key1ToHoldDownPrev%
{
if AXY1Key1ToHoldDownPrev <>
Send, {%AXY1Key1ToHoldDownPrev% up}
if AXY1Key1ToHoldDown <>
Send, {%AXY1Key1ToHoldDown% down}
}
if AXY1Key2ToHoldDown <> %AXY1Key2ToHoldDownPrev%
{
if AXY1Key2ToHoldDownPrev <>
Send, {%AXY1Key2ToHoldDownPrev% up}
if AXY1Key2ToHoldDown <>
Send, {%AXY1Key2ToHoldDown% down}
}
;buttons
;=======================================================================================
GetKeyState, joy_buttons, %JoystickNumber1%JoyButtons
Loop, %joy_buttons%
{
GetKeyState, joy%a_index%, %JoystickNumber1%joy%a_index%
if joy%a_index% = D
{
Value := JoystickNumber1Btn%a_index%
Send, {%Value% down}
JoystickNumber1BtnState%a_index% = dn
}
else
{
if JoystickNumber1BtnState%a_index% = dn
{
Value := JoystickNumber1Btn%a_index%
Send, {%Value% up}
}
JoystickNumber1BtnState%a_index% = up
}
}
;povs to direction
;=======================================================================================
GetKeyState, POV, %JoystickNumber1%JoyPOV
POV1Key1ToHoldDownPrev = %POV1Key1ToHoldDown%
POV1Key2ToHoldDownPrev = %POV1Key2ToHoldDown%
if POV < 0
{
POV1Key1ToHoldDown =
POV1Key2ToHoldDown =
}
else if POV > 33750
{
POV1Key1ToHoldDown = %JoystickNumber1KeyUp%
POV1Key2ToHoldDown =
}
else if POV between 0 and 2250
{
POV1Key1ToHoldDown = %JoystickNumber1KeyUp%
POV1Key2ToHoldDown =
}
else if POV between 2251 and 6750
{
POV1Key1ToHoldDown = %JoystickNumber1KeyUp%
POV1Key2ToHoldDown = %JoystickNumber1KeyRight%
}
else if POV between 6751 and 11250
{
POV1Key1ToHoldDown =
POV1Key2ToHoldDown = %JoystickNumber1KeyRight%
}
else if POV between 11251 and 15750
{
POV1Key1ToHoldDown = %JoystickNumber1KeyUp%
POV1Key2ToHoldDown = %JoystickNumber1KeyRight%
}
else if POV between 15751 and 20250
{
POV1Key1ToHoldDown = %JoystickNumber1KeyDown%
POV1Key2ToHoldDown =
}
else if POV between 20251 and 24750
{
POV1Key1ToHoldDown = %JoystickNumber1KeyDown%
POV1Key2ToHoldDown = %JoystickNumber1KeyLeft%
}
else if POV between 24751 and 29250
{
POV1Key1ToHoldDown =
POV1Key2ToHoldDown = %JoystickNumber1KeyLeft%
}
else if POV between 29251 and 33750
{
POV1Key1ToHoldDown = %JoystickNumber1KeyUp%
POV1Key2ToHoldDown = %JoystickNumber1KeyLeft%
}
SetKeyDelay -1
if POV1Key1ToHoldDown <> %POV1Key1ToHoldDownPrev%
{
if POV1Key1ToHoldDownPrev <>
Send, {%POV1Key1ToHoldDownPrev% up}
if POV1Key1ToHoldDown <>
Send, {%POV1Key1ToHoldDown% down}
}
if POV1Key2ToHoldDown <> %POV1Key2ToHoldDownPrev%
{
if POV1Key2ToHoldDownPrev <>
Send, {%POV1Key2ToHoldDownPrev% up}
if POV1Key2ToHoldDown <>
Send, {%POV1Key2ToHoldDown% down}
}
;===================================================================================
;==== JOYPAD 2 =====================================================================
;===================================================================================
;axis to direction
;=======================================================================================
GetKeyState, joyx, %JoystickNumber2%JoyX
GetKeyState, joyy, %JoystickNumber2%JoyY
AXY2Key1ToHoldDownPrev = %AXY2Key1ToHoldDown%
AXY2Key2ToHoldDownPrev = %AXY2Key2ToHoldDown%
if joyx < 20
{
if joyy < 20
{
AXY2Key1ToHoldDown = %JoystickNumber2KeyUp%
AXY2Key2ToHoldDown = %JoystickNumber2KeyLeft%
}
else if joyy between 40 and 60
{
AXY2Key1ToHoldDown =
AXY2Key2ToHoldDown = %JoystickNumber2KeyLeft%
}
else if joyy > 80
{
AXY2Key1ToHoldDown = %JoystickNumber2KeyDown%
AXY2Key2ToHoldDown = %JoystickNumber2KeyLeft%
}
}
else if joyx between 40 and 60
{
if joyy < 20
{
AXY2Key1ToHoldDown = %JoystickNumber2KeyUp%
AXY2Key2ToHoldDown =
}
else if joyy between 40 and 60
{
AXY2Key1ToHoldDown =
AXY2Key2ToHoldDown =
}
else if joyy > 80
{
AXY2Key1ToHoldDown = %JoystickNumber2KeyDown%
AXY2Key2ToHoldDown =
}
}
else if joyx > 80
{
if joyy < 20
{
AXY2Key1ToHoldDown = %JoystickNumber2KeyUp%
AXY2Key2ToHoldDown = %JoystickNumber2KeyRight%
}
else if joyy between 40 and 60
{
AXY2Key1ToHoldDown =
AXY2Key2ToHoldDown = %JoystickNumber2KeyRight%
}
else if joyy > 80
{
AXY2Key1ToHoldDown = %JoystickNumber2KeyDown%
AXY2Key2ToHoldDown = %JoystickNumber2KeyRight%
}
}
SetKeyDelay -1
if AXY2Key1ToHoldDown <> %AXY2Key1ToHoldDownPrev%
{
if AXY2Key1ToHoldDownPrev <>
Send, {%AXY2Key1ToHoldDownPrev% up}
if AXY2Key1ToHoldDown <>
Send, {%AXY2Key1ToHoldDown% down}
}
if AXY2Key2ToHoldDown <> %AXY2Key2ToHoldDownPrev%
{
if AXY2Key2ToHoldDownPrev <>
Send, {%AXY2Key2ToHoldDownPrev% up}
if AXY2Key2ToHoldDown <>
Send, {%AXY2Key2ToHoldDown% down}
}
;buttons
;=======================================================================================
GetKeyState, joy_buttons, %JoystickNumber2%JoyButtons
Loop, %joy_buttons%
{
GetKeyState, joy%a_index%, %JoystickNumber2%joy%a_index%
if joy%a_index% = D
{
Value := JoystickNumber2Btn%a_index%
Send, {%Value% down}
JoystickNumber2BtnState%a_index% = dn
}
else
{
if JoystickNumber2BtnState%a_index% = dn
{
Value := JoystickNumber2Btn%a_index%
Send, {%Value% up}
}
JoystickNumber2BtnState%a_index% = up
}
}
;povs to direction
;=======================================================================================
GetKeyState, POV, %JoystickNumber2%JoyPOV
POV2Key1ToHoldDownPrev = %POV2Key1ToHoldDown%
POV2Key2ToHoldDownPrev = %POV2Key2ToHoldDown%
if POV < 0
{
POV2Key1ToHoldDown =
POV2Key2ToHoldDown =
}
else if POV > 33750
{
POV2Key1ToHoldDown = %JoystickNumber2KeyUp%
POV2Key2ToHoldDown =
}
else if POV between 0 and 2250
{
POV2Key1ToHoldDown = %JoystickNumber2KeyUp%
POV2Key2ToHoldDown =
}
else if POV between 2251 and 6750
{
POV2Key1ToHoldDown = %JoystickNumber2KeyUp%
POV2Key2ToHoldDown = %JoystickNumber2KeyRight%
}
else if POV between 6751 and 11250
{
POV2Key1ToHoldDown =
POV2Key2ToHoldDown = %JoystickNumber2KeyRight%
}
else if POV between 11251 and 15750
{
POV2Key1ToHoldDown = %JoystickNumber2KeyUp%
POV2Key2ToHoldDown = %JoystickNumber2KeyRight%
}
else if POV between 15751 and 20250
{
POV2Key1ToHoldDown = %JoystickNumber2KeyDown%
POV2Key2ToHoldDown =
}
else if POV between 20251 and 24750
{
POV2Key1ToHoldDown = %JoystickNumber2KeyDown%
POV2Key2ToHoldDown = %JoystickNumber2KeyLeft%
}
else if POV between 24751 and 29250
{
POV2Key1ToHoldDown =
POV2Key2ToHoldDown = %JoystickNumber2KeyLeft%
}
else if POV between 29251 and 33750
{
POV2Key1ToHoldDown = %JoystickNumber2KeyUp%
POV2Key2ToHoldDown = %JoystickNumber2KeyLeft%
}
SetKeyDelay -1
if POV2Key1ToHoldDown <> %POV2Key1ToHoldDownPrev%
{
if POV2Key1ToHoldDownPrev <>
Send, {%POV2Key1ToHoldDownPrev% up}
if POV2Key1ToHoldDown <>
Send, {%POV2Key1ToHoldDown% down}
}
if POV2Key2ToHoldDown <> %POV2Key2ToHoldDownPrev%
{
if POV2Key2ToHoldDownPrev <>
Send, {%POV2Key2ToHoldDownPrev% up}
if POV2Key2ToHoldDown <>
Send, {%POV2Key2ToHoldDown% down}
}
return
cheers