Módulos IRX en PlayStation2

Los módulos IRX están presentes en todos los títulos de PS2 y contienen código para la interfaz de hardware. Estos son cargados como un driver o controlador para cada uno de los periféricos de entrada o salida, aquí nos enfocaremos en la función que realizan sobre los controles. Principalmente podemos encontrar 4 tipos y cada uno ofrece una determinada compatibilidad:

IRX PS1 (DIGITAL) PS1 (DS1) PS2 (DS2)
ds1u.irx
ds1o.irx No
ds2u.irx
ds2o.irx No No

En los títulos singleplayer puede aparecer la letra s1 añadida para asignar el primer mando: ds1u_s1.irx, ds2u_s1.irx, ds1o_s1.irx ó ds2o_s1.irx.

Mientras en los títulos multijugador puede aparecer la letra "d" añadida para asignar el segundo mando: ds1u_d.irx, ds2u_d.irx, ds1o_d.irx ó ds2o_d.irx.


📊 Censura dependiendo del título

Según nuestra investigación:
- En ds2u_ funcionan todos los mandos (ps1 y ps2).
- En ds2o_ se bloquean los mandos ps1 (de forma intencionada).

En consecuencia, otra observación que hemos podido realizar es que si reemplazamos (ver tutorial) aún puede existir un "bloqueo secundario" adicional que deba vencerse. Este "segundo bloqueo" por llamarlo de alguna forma, según hemos debatido con otros usuarios de la comunidad PS2 debe estar presente en el SLUS/SLES al cual se realiza una llamada que verifica el tipo de control.

Al igual que con la actualización a libpad2, abandonaron PADMAN y en su lugar comenzaron a usar este módulo DS2O. Me limitaría a simplemente invertir el ejecutable principal e intentar localizar las funciones del SDK responsables de identificar un DS2. Técnicamente es posible hacer esto en los módulos IOP, pero básicamente necesitarás modificar el módulo para que siempre responda con las cargas útiles que haría un DS2, incluso si el control es solo de PS1. Intentar parchear el módulo IOP para alterar los datos del pad, pretendiendo que siempre es un DS2 sería la solución, sin embargo en realidad puede ser la ruta más complicada.

Una alternativa sería parchear el ejecutable principal en el EE para que deje de leer los valores de presión si es que lo hace y no ordenarle al pad que entre en el modo de presión, no verificar si el pad admite el modo de presión y no bloquear el progreso del juego. https://github.com/chaoticgd/ghidra-emotionengine-reloaded/releases


(c) Creative Commons Internacional.✍ Redactado por 𝓙𝓸𝓼𝓮 y 𝓙𝓪𝓲𝓻𝓸

Publicar un comentario

3 Comentarios

  1. can the ds2o.irx module be modified to change the deadzone and sensitivity, if possible please give a tutorial, it is very difficult to play the txrd2 game because the deadzone may also be too high sensitivity, this is if I play it on the original ps2 console and it is not a problem on the pcsx2 emulator. thank you very much in advance

    ResponderEliminar
    Respuestas
    1. PlayStationJoysticks24/2/25 19:39

      Hi, what control do you use in Tokyo Xtreme Racer Drift 2? I dont speak fluent english but I try to explain it, please translate me.
      Los mandos DS2 tienen un sistema automático para corregir las zonas muertas conforme se van desgastando con el uso los sticks. Este sistema se activa la primera vez que enciendes la consola o conectas el mando y haces un giro completo 360° grados.
      Puede influir en la sensibilidad pero evitaba los drifts de mandos mas nuevos, yo si fuera tú probaría a usar como alternativa un mando DS1. Sin embargo si esto solo te sucede en este título, puedes probar a cargarlo con OPL 1.2 última versión y activar la emulación DS3/DS4.
      Puedes conectar un mando PS3 o PS4 y comprobar si obtienes una mejor sensibilidad. Editar el IRX es una vía mas dificil puesto que la documentación es escasa y fuera de discord es dificil encontrar soporte. Y yo lamentablemente no te lo puedo parchear ya que desconzco como hacerlo. Aquí tratamos de publicar todo lo que conocemos pero otros desarrolladores prefieren no compartir públicamente lo que saben.

      Eliminar
  2. Thank you very much for replying to my comment. I use a 3rd-party DS2 controller because it is now difficult to find an original one. I have tested it with padtest.elf, and the pressure sensitivity works well. I use OPL as my game loader. In other Genki games, my controller works fine. I have completed Racing Battle: C1 Grand Prix and played Kaido Racer, and in both games, the pressure sensitivity works correctly.

    I also experimented by covering part of the velostat layer with tape. As a result, it now requires more pressure for the button to reach full sensitivity (255 when displayed in padtest.elf). The pressure sensitivity issue only occurs in TXRD2. I also tried replacing the ds2o.irx file with one from other Genki games, following the tutorial you explained, but the result was the same.

    Hopefully, the dead zone calibration will also work on my 3rd-party controller. If not, I will try your other suggestions.

    Thank you very much!

    ResponderEliminar

Puedes publicar un comentario sin necesidad de registro.