libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
189 stars 108 forks source link

Multi-Mouse support issue on linux #1086

Closed B0RGS closed 3 years ago

B0RGS commented 3 years ago

Followed the instructions as shown here https://forums.libretro.com/t/configuring-ra-for-multi-mouse-spinners-lightguns-tackballs/12619 , but I'm not getting the results I expected.

What is the expected behavior in MAME once each player’s input binds have been mapped to a proper mouse index?

I expected it to detect the separate mice when I configure the inputs via the MAME UI, but it only seems to detect whatever mouse I’ve bound to player 1 in retroarch. I know that the indices are correct, as I tested each of them on Player 1 and they worked. Input driver is udev as specified.

ghost commented 3 years ago

The only driver that has multi mouse support is udev. If your using wayland its driver is hard coded so you cant change the input driver to udev as is but it can be changed to allow this you would need to request it on the retroarch github page if your using wayland.

B0RGS commented 3 years ago

I'm not familiar with Wayland. Are you suggesting that Ubuntu using it as an input driver and thereby disregarding my retroarch settings where I specified udev?

ghost commented 3 years ago

I dont use ubuntu So i have no idea what the default display server is on it. If its supports both you should be able to toggle between them anyway. enable logging and start retroarch and post the log it created that will let you know if its connecting to a wayland server or not

B0RGS commented 3 years ago

[INFO] RetroArch 1.9.4 (Git c226bd8) [INFO] === Build ======================================= [INFO] CPU Model Name: Intel(R) Core(TM) i5-4690K CPU @ 3.50GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX [INFO] Built: Jun 5 2021 [INFO] Version: 1.9.4 [INFO] Git: c226bd8 [INFO] ================================================= [INFO] [Input]: Found input driver: "udev". [INFO] [Core]: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-mame2003-plus/mame2003_plus_libretro.so" [INFO] [Overrides]: No core-specific overrides found at "/home/borgs/.config/retroarch/config/MAME 2003-Plus/MAME 2003-Plus.cfg". [INFO] [Overrides]: No content-dir-specific overrides found at "/home/borgs/.config/retroarch/config/MAME 2003-Plus/arcade.cfg". [INFO] [Overrides]: No game-specific overrides found at "/home/borgs/.config/retroarch/config/MAME 2003-Plus/centiped.cfg". [INFO] [Remaps]: Remap directory: "/opt/retropie/configs/arcade/". [INFO] [Overrides]: Redirecting save file to "/home/borgs/RetroPie/roms/arcade/centiped.srm". [INFO] [Overrides]: Redirecting save state to "/home/borgs/RetroPie/roms/arcade/centiped.state".

[INFO] [Environ]: PERFORMANCE_LEVEL: 10. [INFO] [CONTENT LOAD]: Content loading skipped. Implementation will load it on its own. [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/borgs/RetroPie/BIOS".

[libretro ERROR] cpunum_get_localtime() called for invalid cpu num! [INFO] [Environ]: SET_ROTATION: 0 [INFO] [Environ]: SET_ROTATION: 1 [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565. [INFO] [SRAM]: Skipping SRAM load.. [INFO] Version of libretro API: 1 [INFO] Compiled against API: 1 [INFO] [Audio]: Set audio input rate to: 48000.00 Hz. [INFO] [Video]: Video @ 2560x1440 [ERROR] [Wayland]: Failed to connect to Wayland server. [INFO] [Vulkan]: Vulkan dynamic library loaded. [INFO] [Vulkan]: Found vulkan context: vk_x [INFO] [Vulkan]: Detecting screen resolution 2560x1440. [INFO] [GLX]: Window manager is GNOME Shell. [INFO] [XINERAMA]: Xinerama version: 1.1. [INFO] [XINERAMA]: Xinerama screens: 1. [INFO] [GLX]: Using Xinerama on screen #0. [INFO] [GLX]: X = 0, Y = 0, W = 2560, H = 1440. [INFO] [GLX]: Using true fullscreen. [INFO] [Vulkan]: Found GPU at index 0: GeForce GTX 970 [INFO] [Vulkan]: Using GPU index 0. [INFO] [Vulkan]: Using fences for WSI acquire. [INFO] [Vulkan]: Using GPU: GeForce GTX 970 [INFO] [Vulkan]: Queue family 0 supports 16 sub-queues. [INFO] [Vulkan]: Using resolution 2560x1440 [INFO] [Vulkan]: Using RGB565 format. [INFO] [Shaders]: Specific shader preset found at /home/borgs/.config/retroarch/config/global.slangp. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #0. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #1. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #2. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/blurs/blur9fast-vertical.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #3. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/blurs/blur9fast-horizontal.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #4. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang". [INFO] [slang]: Using render target format R8G8B8A8_UNORM for pass output #5. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang". [INFO] [slang]: Using render target format R8G8B8A8_UNORM for pass output #6. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #7. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-brightpass.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #8. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #9. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #10. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang". [INFO] [slang]: Using render target format R8G8B8A8_UNORM for pass output #11. [INFO] [Vulkan filter chain]: Creating framebuffer 256 x 256 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 256 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 320 x 240 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 320 x 240 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 320 x 240 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 64 x 68 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 90 x 68 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 4294967295 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [udev]: Pad #0 (/dev/input/event18) supports 0 force feedback effects. [INFO] [udev]: Pad #1 (/dev/input/event15) supports 0 force feedback effects. [INFO] [udev]: Pad #2 (/dev/input/event23) supports 0 force feedback effects. [INFO] [udev]: Pad #3 (/dev/input/event6) supports 0 force feedback effects. [INFO] [Joypad]: Found joypad driver: "udev". [INFO] [Font]: Using font rendering backend: freetype. [INFO] [X11]: Suspending screensaver (X11, xdg-screensaver). [INFO] [Video]: Found display server: x11 [INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.

B0RGS commented 3 years ago

It does not appear to be connecting to a Wayland server and is indeed using udev

ghost commented 3 years ago

Well the good nesws is your are using xorg. The udev drivers are working but they dont log the indexes. This was recently fixed a few days again so you would need to update your retroarch to the latest and it will show your mouse indexes. There was a bug before this update that added mice twice the mouse we needed and a legacy one we didnt. Just co go.good tompile the lastest and youll be good to go

B0RGS commented 3 years ago

Not sure how to update RetroArch to 1.9.6 via retropie (only got me to 1.9.5 where the issue still exists). Will see if I can find a manual way to do it. Guess I'll just have to wait till its available if I can't. Thanks for the advice btw!

ghost commented 3 years ago

no problems at all you change you mouse index in 2s until you fin your mouse 0 2 4 6 ect until you get the update.

B0RGS commented 3 years ago

I'll fiddle with the indices, but I don't think that's the issue. I already know I've got the right ones, because I've tested them individually on player 1. MAME just does not seem to detect them when bound to any of retroarch's other player inputs.

B0RGS commented 3 years ago

I haven't been unplugging anything, so I don't think they would have changed. Or would retroarch itself throw off the indices when I update the inputs?

ghost commented 3 years ago

Well The problem was fixed here https://github.com/libretro/RetroArch/pull/12536 https://github.com/libretro/RetroArch/pull/12557 https://github.com/libretro/RetroArch/pull/11388

best waiting for the official update.

the core itself has a xy device option as well not sure what the default is set to either if your index are right try checking what that option is set too in the quick menu. I dont wanto confuse you here just wait for the updates and see how it goes from there

mahoneyt944 commented 3 years ago

1.9.6 was delayed. Should be released officially in the next week or so. The retroarch webpage has more details.

mahoneyt944 commented 3 years ago

1.9.6 is now available

B0RGS commented 3 years ago

Still no dice here. don't know if it was coincidental, but after I installed 1.9.6, all my indices changed. I tried to remap my inputs in accordance with the event# as I did before, but that wasn't working anymore, so I tried the mouse# instead.

When doing that, I tested all the relevant indices on player 1's input binds and each device was detected in MAME as Mouse 1 as before, but MAME still won't detect any of them when bound to the other player input's.

I can get it to detect multiple mice inputs if I use the new feature where you can redirect input binds to another player, but that doesn't solve my problem. I want to play games like pong using two spinners which both use a mouse X-axis, so I need MAME to actually see them as separate mice. They'll all show as "Mouse 1" doing it this way

Here is log since the update:

[INFO] RetroArch 1.9.6 (Git 4a6dc36) [INFO] === Build ======================================= [INFO] CPU Model Name: Intel(R) Core(TM) i5-4690K CPU @ 3.50GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX [INFO] Built: Jul 8 2021 [INFO] Version: 1.9.6 [INFO] Git: 4a6dc36 [INFO] ================================================= [INFO] [Input]: Found input driver: "udev". [INFO] [Core]: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-mame2003-plus/mame2003_plus_libretro.so" [INFO] [Overrides]: No core-specific overrides found at "/home/borgs/.config/retroarch/config/MAME 2003-Plus/MAME 2003-Plus.cfg". [INFO] [Overrides]: No content-dir-specific overrides found at "/home/borgs/.config/retroarch/config/MAME 2003-Plus/mame-libretro.cfg". [INFO] [Overrides]: No game-specific overrides found at "/home/borgs/.config/retroarch/config/MAME 2003-Plus/centiped.cfg". [INFO] [Remaps]: Remap directory: "/opt/retropie/configs/mame-libretro/". [INFO] [Overrides]: Redirecting save file to "/home/borgs/RetroPie/roms/mame-libretro/centiped.srm". [INFO] [Overrides]: Redirecting save state to "/home/borgs/RetroPie/roms/mame-libretro/centiped.state".

[INFO] [Environ]: PERFORMANCE_LEVEL: 10. [INFO] [CONTENT LOAD]: Content loading skipped. Implementation will load it on its own. [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/borgs/RetroPie/BIOS".

[libretro ERROR] cpunum_get_localtime() called for invalid cpu num! [INFO] [Environ]: SET_ROTATION: 0 [INFO] [Environ]: SET_ROTATION: 1 [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565. [INFO] [SRAM]: Skipping SRAM load.. [INFO] Version of libretro API: 1 [INFO] Compiled against API: 1 [INFO] [Audio]: Set audio input rate to: 48000.00 Hz. [INFO] [Video]: Video @ 2560x1440 [ERROR] [Wayland]: Failed to connect to Wayland server. [INFO] [Vulkan]: Vulkan dynamic library loaded. [INFO] [Vulkan]: Found vulkan context: vk_x [INFO] [Vulkan]: Detecting screen resolution 2560x1440. [INFO] [X/Vulkan]: Window manager is GNOME Shell. [INFO] [XINERAMA]: Xinerama version: 1.1. [INFO] [XINERAMA]: Xinerama screens: 1. [INFO] [X/Vulkan]: Using Xinerama on screen #0. [INFO] [X/Vulkan]: X = 0, Y = 0, W = 2560, H = 1440. [INFO] [X/Vulkan]: Using true fullscreen. [INFO] [Vulkan]: Found GPU at index 0: GeForce GTX 970 [INFO] [Vulkan]: Using GPU index 0. [INFO] [Vulkan]: Using fences for WSI acquire. [INFO] [Vulkan]: Using GPU: GeForce GTX 970 [INFO] [Vulkan]: Queue family 0 supports 16 sub-queues. [INFO] [Vulkan]: Using resolution 2560x1440 [INFO] [Vulkan]: Using RGB565 format. [INFO] [Shaders]: Specific shader preset found at /home/borgs/.config/retroarch/config/global.slangp. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #0. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #1. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #2. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/blurs/blur9fast-vertical.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #3. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/blurs/blur9fast-horizontal.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #4. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang". [INFO] [slang]: Using render target format R8G8B8A8_UNORM for pass output #5. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang". [INFO] [slang]: Using render target format R8G8B8A8_UNORM for pass output #6. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #7. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-brightpass.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #8. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #9. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang". [INFO] [slang]: Using render target format R8G8B8A8_SRGB for pass output #10. [INFO] [slang]: Compiling shader "/home/borgs/.config/retroarch/shaders/slang-shaders-master/crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang". [INFO] [slang]: Using render target format R8G8B8A8_UNORM for pass output #11. [INFO] [Vulkan filter chain]: Creating framebuffer 256 x 256 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 256 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 320 x 240 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 320 x 240 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 320 x 240 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 64 x 68 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 90 x 68 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 4294967295 level(s)). [INFO] [Vulkan filter chain]: Creating framebuffer 1440 x 1080 (max 1 level(s)). [INFO] [udev]: Added Device Keyboard#0 Telink Wireless Receiver (/dev/input/event5) . [INFO] [udev]: Added Device Keyboard#1 Ultimarc I-PAC 4 (/dev/input/event9) . [INFO] [udev]: Added Device mouse#0 Telink Wireless Receiver Mouse (/dev/input/event2) . [INFO] [udev]: Added Device mouse#1 Ultimarc UltraStik Ultimarc Ultra-Stik Player 1 (/dev/input/event19) . [INFO] [udev]: Added Device mouse#2 Ultimarc UltraStik Ultimarc Ultra-Stik Player 1 (/dev/input/event20) . [INFO] [udev]: Added Device mouse#3 Ultimarc SpinTrak (/dev/input/event22) . [INFO] [udev]: Added Device mouse#4 Ultimarc U-Trak (/dev/input/event26) . [INFO] [udev]: Added Device mouse#5 Ultimarc UltraStik Ultimarc Ultra-Stik Player 2 (/dev/input/event16) . [INFO] [udev]: Added Device mouse#6 Ultimarc UltraStik Ultimarc Ultra-Stik Player 2 (/dev/input/event17) . [INFO] [udev]: Added Device mouse#7 Ultimarc SpinTrak (/dev/input/event21) . [INFO] [udev]: Added Device mouse#8 Ultimarc UltraStik Ultimarc Ultra-Stik Player 3 (/dev/input/event24) . [INFO] [udev]: Added Device mouse#9 Ultimarc UltraStik Ultimarc Ultra-Stik Player 3 (/dev/input/event25) . [INFO] [udev]: Added Device mouse#10 Ultimarc UltraStik Ultimarc Ultra-Stik Player 4 (/dev/input/event7) . [INFO] [udev]: Added Device mouse#11 Ultimarc UltraStik Ultimarc Ultra-Stik Player 4 (/dev/input/event8) . [INFO] [udev]: Added Device mouse#12 Ultimarc I-PAC 4 (/dev/input/event12) . [INFO] [udev]: Pad #0 (/dev/input/event18) supports 0 force feedback effects. [INFO] [udev]: Pad #1 (/dev/input/event15) supports 0 force feedback effects. [INFO] [udev]: Pad #2 (/dev/input/event23) supports 0 force feedback effects. [INFO] [udev]: Pad #3 (/dev/input/event6) supports 0 force feedback effects. [INFO] [Joypad]: Found joypad driver: "udev".

ghost commented 3 years ago

what game are you using ill try go through this with you.

B0RGS commented 3 years ago

I'd appreciate that! Lets try Blasteroids. Its a 2 player / multi dial game where I'm trying to use two spinners.

ghost commented 3 years ago

Ok i have managed to get it working no issues. here is what to do.

quickmenu core options set xy device to mouse

Now go to settings -> input->port1 controls-> mouse index set it to spinner player 1 device number Now go to settings -> input->port2 controls-> mouse index set it to spinner player 2 device number

ghost commented 3 years ago

you can also test with midres and ikari for dial games tested with blstroid.zip above

B0RGS commented 3 years ago

I already had XY set to mouse. Were you not using legacy controls? Maybe that's where the issue was; I had been trying to map everything in MAME's UI. Detection seems to work when I disable it.

ghost commented 3 years ago

I only use legacy controls. The dial is automatically mapped to mouse. You cant map it in the ui even in the original mame2003. What mame does is let you use other inputs but the mouse will always over ride for dial games if it has data from the mouse. as long as your ports are set your good to go.

ps. Sorry i never seen your question about indexing yes it has changed /dev/mouse[n] was removed this is a legacy ps2 for compatibility. I also added the device friendly names to the index for people with multiple mice the old way had no logging sorry if it caused you issues the changes where needed.

B0RGS commented 3 years ago

So you're saying that I should not have expected to see any response in the MAME UI when I tried to map the Dials to the spinner? It will just work automatically? I was assuming it would have said Mouse1 X and Mouse2 X etc. in accordance with the retropad number.

ghost commented 3 years ago

later mame versions do this and suport half axis this particular version doesnt its hard codes mouse to player even in the original mame078 the ui wont responde to mouse movement. That why you have have to set the mouse device like you do a retropad as there all set to the same value for mouse though 0 default. Its worth noting you would have to set these ports even if it did work as all player mouse devices will point to the same device unless changed

B0RGS commented 3 years ago

I see. I'll have to see if I can get this working in later versions of MAME, but as far as 2003-plus, this appears resolved. Thank you for your help!

ghost commented 3 years ago

no problems at all