Joy2key no funciona con juegos PC

Buenas!
Lo primero Feliz año nuevo
Segundo venía a preguntar cuál podría ser el motivo x el q en algunos juegos de pc no me funciona el joy2key (entre ellos. : Pinball3fx, dragón ballet z fighter, nba2 playgrounds...) Pues resulta que en otros juegos me detecta sin problema las teclas del joy2key, pero en estos nada, no me los reconoce , cual puede ser el motivo???
rubeneros89 escribió:Buenas!
Lo primero Feliz año nuevo
Segundo venía a preguntar cuál podría ser el motivo x el q en algunos juegos de pc no me funciona el joy2key (entre ellos. : Pinball3fx, dragón ballet z fighter, nba2 playgrounds...) Pues resulta que en otros juegos me detecta sin problema las teclas del joy2key, pero en estos nada, no me los reconoce , cual puede ser el motivo???


Joy2key se basa en input raw y esos juegos es posible que usen otro tipo como direct input.

Tendrás que hacer un script para autohotkey.

Por ejemplo yo tengo este en DEMUL:

#NoEnv
#SingleInstance force
#Persistent
#NoTrayIcon

SetBatchLines -1


   Gui +AlwaysOnTop -Caption +ToolWindow  ; No title, No taskbar icon
   Gui Color, 0                           ; Color Black
   Gui Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
  ;WinSet Transparent, 200, A             ; Can be semi-transparent
   MouseGetPos X, Y                       ; Remember pos to return
   MouseMove %A_ScreenWidth%,%A_ScreenHeight% ; Move pointer off screen

Run, demul.exe -run=naomi -rom=%1%
Sleep, 10000
Blockinput off ; Allows user to send inputs so games can be played
Send !{Enter}
sleep 4000
Gui Destroy                            ; Remove blinds from desktop

LCtrl::z
LAlt::x
space::c
LShift::a
z::s
x::d
a::b
s::n

return

ESC::
Send !{Enter}
Process, Close, demul.exe
ExitAPP


Dos opciones, o usas

Joy1:: TECLA
Joy2:: TECLA

O inicias GetKeyState(a) para que el programa identifique el estado lógico de la tecla (si no espera a un estado físico).


#NoEnv
#SingleInstance force
#Persistent
#NoTrayIcon

SetBatchLines -1

Gui +AlwaysOnTop -Caption +ToolWindow  ; No title, No taskbar icon
Gui Color, 0                           ; Color Black
Gui Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
;WinSet Transparent, 200, A             ; Can be semi-transparent
MouseGetPos X, Y                       ; Remember pos to return
MouseMove %A_ScreenWidth%,%A_ScreenHeight% ; Move pointer off screen

Run, RED-Win64-Shipping.exe

Sleep, 10000
Blockinput off ; Allows user to send inputs so games can be played
sleep 4000
Gui Destroy                            ; Remove blinds from desktop

GetKeyState(a)

z::z
x::x
c::c
a::a
s::s
d::d
b::b
n::n

return

ESC::
Process, Close, RED-Win64-Shipping.exe
ExitAPP
josete2k escribió:
rubeneros89 escribió:Buenas!
Lo primero Feliz año nuevo
Segundo venía a preguntar cuál podría ser el motivo x el q en algunos juegos de pc no me funciona el joy2key (entre ellos. : Pinball3fx, dragón ballet z fighter, nba2 playgrounds...) Pues resulta que en otros juegos me detecta sin problema las teclas del joy2key, pero en estos nada, no me los reconoce , cual puede ser el motivo???


Joy2key se basa en input raw y esos juegos es posible que usen otro tipo como direct input.

Tendrás que hacer un script para autohotkey.

Por ejemplo yo tengo este en DEMUL:

#NoEnv
#SingleInstance force
#Persistent
#NoTrayIcon

SetBatchLines -1


   Gui +AlwaysOnTop -Caption +ToolWindow  ; No title, No taskbar icon
   Gui Color, 0                           ; Color Black
   Gui Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
  ;WinSet Transparent, 200, A             ; Can be semi-transparent
   MouseGetPos X, Y                       ; Remember pos to return
   MouseMove %A_ScreenWidth%,%A_ScreenHeight% ; Move pointer off screen

Run, demul.exe -run=naomi -rom=%1%
Sleep, 10000
Blockinput off ; Allows user to send inputs so games can be played
Send !{Enter}
sleep 4000
Gui Destroy                            ; Remove blinds from desktop

LCtrl::z
LAlt::x
space::c
LShift::a
z::s
x::d
a::b
s::n

return

ESC::
Send !{Enter}
Process, Close, demul.exe
ExitAPP


Dos opciones, o usas

Joy1:: TECLA
Joy2:: TECLA

O inicias GetKeyState(a) para que el programa identifique el estado lógico de la tecla (si no espera a un estado físico).


#NoEnv
#SingleInstance force
#Persistent
#NoTrayIcon

SetBatchLines -1

Gui +AlwaysOnTop -Caption +ToolWindow  ; No title, No taskbar icon
Gui Color, 0                           ; Color Black
Gui Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
;WinSet Transparent, 200, A             ; Can be semi-transparent
MouseGetPos X, Y                       ; Remember pos to return
MouseMove %A_ScreenWidth%,%A_ScreenHeight% ; Move pointer off screen

Run, RED-Win64-Shipping.exe

GetKeyState(a)

z::z
x::x
c::c
a::a
s::s
d::d
b::b
n::n

return

ESC::
Process, Close, RED-Win64-Shipping.exe
ExitAPP




Gracias por la respuesta!

Pero si te soy sincero no entiendo ni papa de lo que me has puesto ajjajaj
Dónde tendría que poner eso? Y como?
@rubeneros89

Te descargas e instalas autohotkey.

Luego abres un notepad y pegas lo que he puesto en mi segundo CODE (ojo que lo he editado).

Cambia el ejecutable del juego que quieras abrir en "RED-Win64-Shipping.exe"

Configura el juego para usar con teclado y redefine las teclas...



Luego se guarda como .AHK

Las teclas se redefinen en autohotkey con dos puntos dobles, o sea

a::b

significa que al pulsar "a" en el teclado, se tomará como una "b".

Yo suelo probar esto abriendo el bloc de notas con el script activo.

Si pones "GetKeyState(a)" creo que tomará la situación lógica de esa tecla y la redefine.

Así que si pones:


GetKeyState(a)
a::a


Y en joy2key aplicas "Joy1" a la tecla "a" CREO que debería tomarte el valor en el juego.



Otra opción es poner el valor del joystick directamente

Joy1::a


Cuando tengas el script AHK funcionando lo puedes convertir a EXE con el botón derecho del ratón para no tener que instalar autohotkey en el pc donde vayas a usar el script..


Así tengo yo por ejemplo configurados DEMUL y todos los taito TYPEX en mi recreativa ya que además de redefinir teclas puedes usar acciones para las mismas.

Por ejemplo:


ESC::
Send !{Enter}
Process, Close, demul.exe
ExitAPP


Esto sinifica que al pulsar ESC se ejecutan los siguientes comandos:

se pulsa Alt+ENTER par salir de la pantalla completa
cierra de forma instantánea el proceso "demul.exe"
cierra el sript


OJO, si no cierras el script el ordenador se te vuelve majareta.
madree me acabads despejar loco , no sabia que se podía hacer todo esto.

muchas gracias lo pruebo y te digo ok?
4 respuestas