======= TRACK BALL ======= **THIS WAS THE HARDEST PART OF GETTING EVERYTHING RUNNING AND I SPENT 3+ DAYS WORKING THE ISSUE** **YOU WILL NEED A KEYBOARD** * NOTE 1: we're going to do everything command line, but if you need retroarch menu, * it's * NOTE 2: We need these instructions because by default, Missile Command and Tempest are looking for LIGHTGUN, not mouse, so we need to enable the mouse. Score 1 for Gemini.. ChatGPT just fell apart. Before we start, and before firing up the game, * we bring up the game in our MAME menu, * then long press Button 1 to bring up a menu. * Move down to "Advanced Game Options". * Emulator will be LIBRETRO:MAME for Phoenix and Missle Command, * and LIBRETRO: MAME078PLUS for Centipede. ==== Step 1: Identifying the Hardware ==== The system sees every USB device (Keyboard, PS3 controller, Xinmotec, Trackball) and gives it a "Mouse Index" number. * Command: cat /proc/bus/input/devices * Discovery: You found the Cypress Semiconductor (the trackball) and saw Handlers=mouse0. * Result: This told us your magic number is Index 0. ==== Step 2: Enabling the "Engine" (.opt file) ==== The Emulator Core (MAME) has to be told that it is allowed to use a mouse at all. * Location: /userdata/system/configs/retroarch/config/MAME/missile.opt * Key Setting: mame_mouse_enable = "enabled" * Result: This turned on the "ears" of the emulator so it could hear mouse signals. [root@BATOCERA /userdata/…troarch/config/MAME]# tail missile.opt mame_media_type = "rom" mame_mouse_enable = "enabled" mame_read_config = "enabled" ==== Step 3: Mapping the "Plumbing" (.cfg file) ==== Because the menu wasn't saving, we manually created a "Game Override" file. This tells RetroArch exactly which hardware to plug into the "Player 1" slot. * Creation: We created a new text file at: /userdata/system/configs/retroarch/config/MAME/missile.cfg * The Code: You added these two critical lines: * input_player1_mouse_index = "0" (Points to the Trackball) * input_libretro_device_p1 = "3" (Tells MAME to treat Player 1 as a "Mouse" device) [root@BATOCERA ~]# tail /userdata/system/configs/retroarch/config/MAME/missile.cfg input_player1_mouse_index = "0" input_libretro_device_p1 = "3" ==== Step 4: Applying this to Tempest (The Spinner) ==== Tempest uses a spinner, but in MAME, a spinner is just the X-axis (left/right) of a mouse. To fix Tempest without doing all that work again: * Navigate to the same folder: /userdata/system/configs/retroarch/config/MAME/ * Copy missile.cfg and Paste it as tempest.cfg. * Copy missile.opt and Paste it as tempest.opt. Launch Tempest. It will now use the same "Index 0" logic. Summary Table for Future Reference |File Type |Purpose |Key Setting | |.opt | Core Options | mame_mouse_enable = "enabled" | |.cfg | Input Mapping | input_player1_mouse_index = "0" | |.cfg | Device Type | input_libretro_device_p1 = "3" | [root@BATOCERA /userdata/…troarch/config/MAME]# ls -al total 36 drwxr-xr-x 2 root root 4096 Jan 29 14:01 . drwxr-xr-x 4 root root 4096 Jan 28 18:01 .. -rw-r--r-- 1 root root 11402 Jan 29 13:42 MAME.cfg -rw-r--r-- 1 root root 63 Jan 29 13:50 missile.cfg -rw-r--r-- 1 root root 817 Jan 29 09:15 missile.opt -rw-r--r-- 1 root root 63 Jan 29 14:01 tempest.cfg -rw-r--r-- 1 root root 817 Jan 29 14:01 tempest.opt ==== Step 5: Map the keys in the game ==== * Using the keyboard, press "Tab" and a menu will pop up. * You will use the arrow keys to navigate * Press 'Z' to choose a menu item, in this case, "Input Assignments (this system)" * "Del" anything for P1 Button 1,2,3 and P2 Button 1,2,3 and TrackBall Analog * Press 'Z' for Button 1. When presented with '< >' press the button on your console that you want * Repeat for buttons 2 and 3 * Move down to "Trackball X Analog" and press 'Z' * Move your trackball in the X axis * Repeat for "Trackball Y Analog" moving along the Y axis * Move down to "Return to Previous Menu" and choose "Analog Input Adjustments" * Currently (subject to change or change as needed), all values are 30. Only "Trackball X Reverse" is set to off. * Back out of each menu when you're done. The settings will automatically save. Do the above for each game using LIBRETRO (in my case, Missile Command and Tempest)