This is an old revision of the document!
Table of Contents
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 <SCROLL + F1>
- 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.
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)
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” |
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)
