Añado lo que faltaba.
No es necesario que al hacer la configuración inicial estén todos los joysticks/gamepad/volantes/trackball/spinners/etc conectados. El programa no trabaja con número de dispositivo sino con IDENTIFICADOR.
Por ejemplo al hacer un controllerremap /list obtengo lo siguiente:
CODE
C:\Hyperspin1.0\emulators\Mame>controllerremap /list
ControllerRemap Utility v0.0.11.0 - For Mame
(c) 2011 drventure Enterprises
Joystick Device List (Devices are in enumeration order) ...
1. 'Controller (XBOX 360 For Windows)', ID=2
2. 'Xin-Mo Dual Arcade', ID=1
3. 'Xin-Mo Dual Arcade', ID=0
Mouse Device List (Devices are in enumeration order) ...
1. 'HID#VID_062A_PID_0102_MI_01_Col01#7_278e38f_0_0000#'
End of list
y vemos como he dejado el archivo myarcade.cfg dentro de mame/ctrlr
CODE
<!-- Configuration Remap file
-->
<mameconfig version="10">
<!-- ############################################################
Define controller aliases, This just makes the controller names
a little easier to deal with for the rest of the file.
############################################################
-->
<controlleralias>
<id>Xin-Mo Dual Arcade:0</id>
<alias>JOY1</alias>
</controlleralias>
<controlleralias>
<id>Xin-Mo Dual Arcade:1</id>
<alias>JOY2</alias>
</controlleralias>
<!-- ############################################################
This is the System Default section
It generally should be the FIRST system section in the cfg file
############################################################
-->
<system name="default">
<!-- put a controller element here to have it copied into ONLY this particular
system element
-->
<controller id="JOY2">
<input>
<port type="COIN1">
<newseq type="standard">
JOYCODE_BUTTON10
</newseq>
</port>
</input>
</controller>
<!-- this keyboard section provides a way to specify keyboard input
mappings that should ALSO be made for the specific port types. -->
<!-- ###################################################
ACTUAL INPUT MAPPING STARTS HERE
DO NOT actually put anything in this section.
It is completely cleared and regenerated!
###################################################
-->
<input>
<port type="COIN1">
<newseq type="standard">
JOYCODE_2_BUTTON10
</newseq>
</port>
</input>
</system>
</mameconfig>
El archivo de config de ejemplo es mucho más completo pero he quitado el remapeo de teclado y otros elementos para que sea más sencillo.
Vamos por partes.
Hemos visto que tengos un usb2joy que me da dos puertos con el mismo nombre con el ID 0 e ID 1. Esto no es problema ya que en el config lo dejamos así:
CODE
<id>Xin-Mo Dual Arcade:0</id>
o así
CODE
<id>Xin-Mo Dual Arcade:1</id>
una vez aclarado esto le pongo un alias para que sea más sencillo entender:
CODE
<controlleralias>
<id>Xin-Mo Dual Arcade:0</id>
<alias><b>JOY1</b></alias>
</controlleralias>
luego hago un remapeo igual que hace mame pero con la diferencia que no hay que poner número de joystick. Ejemplo en mame seria JOYCODE_1_BUTTON10 o JOYCODE_2_BUTTON10 y en este archivo JOYCODE_BUTTON10
CODE
<controller id="JOY2">
<input>
<port type="COIN1">
<newseq type="standard">
<b>JOYCODE_BUTTON10</b>
</newseq>
</port>
</input>
</controller>
A partir de aquí ya tengo la tecla de monedas del jugador 1 mapeada. La última parte del archivo myarcade.cfg no hay que tocar nada ya que la rellena el programa cada vez que se hace un controllerremap /remap:ruta_a_myarcade.cfg
(repito, esta última parte la cambia sola el programa, no hay que rellenar nada inicialmente)
Si tengo activado el gamepad quedaría así
CODE
<input>
<port type="COIN1">
<newseq type="standard">
JOYCODE_2_BUTTON10
</newseq>
</port>
</input>
</system>
y si no lo tengo activado:
CODE
<input>
<port type="COIN1">
<newseq type="standard">
JOYCODE_1_BUTTON10
</newseq>
</port>
</input>
</system>