Post count: 8

To all.. THANKS! I found all my remaining answers in this thread.

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 btw.. they work in Mame4All too, 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 with my trackball.. the spinner did nothing. I wanted the spinner for Arkanoid, and the tball to do nothing. I was able to make this happen by editing the advmame .rc file:

device_mouse raw

device_raw_mousedev[0] /dev/input/mouse0
device_raw_mousedev[1] /dev/input/mouse1
device_raw_mousetype[0] ps2
device_raw_mousetype[1] 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.

cat /dev/input/mouse0

…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.