This instructions are for Batocera 5.24 or later, they are dedicated to Ultimarc's line of control interfaces and X-Arcade USB Controllers.

TL;DR: If your encoder is any model of I-PAC or Mini-PAC, press and hold the buttons corresponding to Start1+P1SW2 for ten seconds. If you're lucky, your controller is now a plug 'n play USB controller you can configure like any other controller in batocera. That's it. You're done. Go play some games 8-)

If nothing happens or you want to know more, keep reading.

The above will only work with Ultimarc's encoders (they call them control interfaces) made from 2015 on and equipped with Firmware version 50 or higher. You can check what you have with the software they offer on their website. This is important as flashing your pre-2015 encoder with the new firmware will brick it! If your board is new enough, but your firmware isn't, you can update with the same tool. Read the information on their page under “Multi-Mode” to learn about the different modes and what you can do with them. The instructions above will make your controller run in Mode 2, which should be fine for most users. What this means is that instead or being recognised as a USB keyboard, your controller will now be recognised as a Directinput game controller and you won't need to do any of the steps below.

If you're Ultimarc encoder doesn't offer this functionality, you don't want to upgrade the firmware, or you are using an X-Arcade controller, read on.

Xarcade2jstick has been patched to support keyboard encoders. You may have to reconfigure a few keys of your encoder as, sadly, x-gaming X-Arcade devices didn't map as usual mame controllers.

Do not change the key mappings of your I-PAC or Mini-PAC as it is unnecessary, but the following procedure only applies if your encoder is in keyboard mode, which is the default mode when they leave the factory.

Configuring your keyboard encoder

Follow these steps :

  • login to your Batocera box locally or through SSH
  • find your encoder's device name with ls /dev/input/by-id. Usually, there is a trailing kbd in the event name. For example : usb-Ultimarc_IPAC_2_Ultimarc_IPAC_2_9-if01-event-kbd

PLEASE NOTE: a single encoder can have multiple possible names, so try all of them
For exemple: usb-Cypress_I-PAC_Arcade_Control_Interface-event-kbd → works
usb-Cypress_I-PAC_Arcade_Control_Interface-if01-event-kbd → doesn't work

  • Now remount / as read-write mount -o remount,rw /
  • Create an empty file that has the same name of your keyboard device found 2 steps above touch /usr/share/batocera/datainit/system/configs/xarcade2jstick/devicename. With the previous example : touch /usr/share/batocera/datainit/system/configs/xarcade2jstick/usb-Ultimarc_IPAC_2_Ultimarc_IPAC_2_9-if01-event-kbd
  • Edit batocera.conf and set controllers.xarcade.enabled=1 (it should already be set by default but check it)
  • Save your modifications through SSH batocera-save-overlay
  • Reboot by typing reboot

Now all your keys should be usable, that is for each player : 4 directions joystick, select, start, hotkey, A, B, X, Y, L1 and R1.
For now it is not possible to attribute more buttons like L2, R2, L3 or R3

You must now configure both the controllers in the Controller Configuration menu and also associate the right controller to player 1 and 2.

  • ipac2_usb_controllers.txt
  • Last modified: 9 months ago
  • by yeppo