User Tools

Site Tools


game:trac_ball

This is an old revision of the document!


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)
game/trac_ball.1769719471.txt.gz · Last modified: by mlivolsi