robbomanParticipant03/25/2016 at 23:26Post count: 8
Copy of my long post elsewhere with more searchable keywords in the title. I hope this info is easy to find in future and helps others over time.
I’ve been struggling for a while to get trackball and spinner to both work. They now both work perfectly, just the way I want, and they work in Mame4All, as well as AdvMame.
For starters, Mame4All is coded to prevent mouse from working at all when there is a js (gamepad, joypad, etc) connected to the system. I don’t use any gamepads (this is an arcade cab). I expected my Ipac2 to appear as a keyboard and mouse ONLY, but for some reason it was causing a js0 device to appear in /dev/input, along with mouse0 and mouse1. When js* is present, there is NO way to get a Mame4All mouse device working.
AdvMame doesn’t care if there’s a js0 present, so that’s one workaround.
But Andy Warne from Ultimarc was quick to respond to my emails, and today he emailed me a different firmware for my IPac2 that completely removes the js0. I flashed it with Winipac utility. Now my Ipac appears as just a keyboard and 2 mouse like I want, no js0. Mame4All FINALLY works with my trackball and spinner without changing anything else!
I found right away that Mame4All just sums together both mouse0 (trackball) and mouse1 (spinner).. I loaded up Arkanoid and both controls work at the same time, which might be OK but is is not exactly what I want.
I noticed that in AdvMame 0.94, Arkanoid worked only with my trackball, the spinner did nothing. I wanted the opposite. I was able to make that work by editing the advmame .rc file
sudo nano /opt/retropie/configs/mame-advmame/(filename).rc
device_raw_mousedev /dev/input/mouse0 device_raw_mousedev /dev/input/mouse1
device_raw_mousetype ps2 device_raw_mousetype ps2
… then down in the input_map section…
input_map[p1_dialx] mouse[1,x] input_map[p1_dialy] mouse[1,y]
… dial = spinner of course. Arkanoid, Tempest, etc use the ‘dial’ control. This specifies p1 dial to be mouse1 (because mouse0 is my trackball)
… I also changed these to specify mouse0 (trackball) where needed:
input_map[p1_mousex] mouse[0,x] input_map[p1_mousey] mouse[0,y]
input_map[p1_trackballx] mouse[0,x] input_map[p1_trackbally] mouse[0,y]
Now, if I load up Centipede or Missile Command the trackball works and the spinner does nothing. Vice\Versa when I load Ark or Tempest.
1). Mame4All: If you are using gamepads, no trackball/spinner for you. Keyboard and multiple mice works fine. If you have no gamepad and still don’t have any mouse, check to see if you have a mystery js0 or js1 entry in /dev/input. If you do,
sudo rm js*
But if the js0 comes right back when you reboot, and you happen to have an Ultimarc interface.. check with Ultimarc, this can be fixed in firmware.
2). Confirm all your mouses, tballs, spinners actually work on your PI, and figure out which is mouse0, which is mouse1, etc.
…then move the control you think is mouse0 to confirm, it should generate characters onscreen until you ctl-c to quit. Repeat for mouse1, etc.
You can also try this command:
ls -l /dev/input/by-id
This will show you the device IDs and which mouse each one relates to.
3). AdvMame: edit your /opt/retropie/configs/mame-advmame/(filename).rc to specify which controls are default for each function (as per above).
A note about editing the .rc file for newbies:
Make a backup file first (save with a new name). If you have even one character out of place it will prevent AdvMame from running at all.nosedeathParticipant03/26/2016 at 22:31Post count: 75
O……M…….G!! SO AWESOME!
funny thing. I have the same thing you have and I emailed Andy, but he really didn’t have an answer. I’m so happy your fixed this. I’m ecstatic actually!
So…can you link the new firm ware for others to use or is it just for you???
Thanks millions for figuring this out.
- The forum ‘Controller Configuration in RetroPie’ is closed to new topics and replies.