Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Ultimarc U360 with MAME 182 and USB Mapping  (Read 6871 times)

0 Members and 1 Guest are viewing this topic.

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Ultimarc U360 with MAME 182 and USB Mapping
« on: February 17, 2017, 02:17:52 pm »
Hi all,

Does anyone have a CFG file for MAME post version 178, that supposedly has the new code to help map USB devices and make them stay put for Player1 and Player2 directly?

The 'example' that is posted on the mame site isn't quite complete (nor is is it specifically for u360) and whatever I produce, mame just spits back and says it can't read the cfg file.

I have a two player cabinet with two u360s and 6 buttons a piece, and would love to have these things stay put, and jump from p1 and p2...especially since there are other function buttons that break when things slide around. 

(I'm trying to get this part to work on its own, next step is to try and get it working properly through Rocketlauncher...)

Thanks
Pete 

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #1 on: February 20, 2017, 09:36:12 am »
Hope this helps. I had trouble understanding it at first, but once I got it,. it hasn't failed on me yet.

I saved this in my CFG folder, made sure Mame directory was pointed to the cfg folder, and type in this to start Mame in a command window
mame64 -ctrlr <filename of cfg>


To make it work with RocketLauncher, easy enough. In the MAME Modules Tab, Global Module Settings, Mame Tab, add the -ctrlr <filename>
 in the Parameters section.

Code: [Select]
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
    <system name="default">
        <input>
<!--Steering Wheel-->
<mapdevice device="FGT Rumble 3-in-1 product_b655044f-0000-0000-0000-504944564944 instance_6842f6c0-0aa8-11e4-8001-444553540000" controller="JOYCODE_1" />
<!--U360 P1-->
<mapdevice device="Ultimarc Ultra-Stik Player 1 product_0511d209-0000-0000-0000-504944564944 instance_f9ab30c0-0eba-11e5-8001-444553540000" controller="JOYCODE_2" />
<!--U360 P2-->
<mapdevice device="Ultimarc Ultra-Stik Player 2 product_0512d209-0000-0000-0000-504944564944 instance_baff0a80-21b2-11e5-8001-444553540000" controller="JOYCODE_3" />
<!--U360 P3-->
<mapdevice device="Ultimarc Ultra-Stik Player 3 product_0513d209-0000-0000-0000-504944564944 instance_23801d20-0ebb-11e5-8001-444553540000" controller="JOYCODE_4" />
<!--U360 P4-->
<mapdevice device="Ultimarc Ultra-Stik Player 4 product_0514d209-0000-0000-0000-504944564944 instance_6d89e5f0-21b1-11e5-8001-444553540000" controller="JOYCODE_5" />
<!--Aimtrak 1-->
<mapdevice device="ATRAK Device #1 product_1601d209-0000-0000-0000-504944564944 instance_d656eff0-0921-11e4-8002-444553540000" controller="GUNCODE_9" />
<!--Aimtrak 2-->
<mapdevice device="ATRAK Device #2 product_1602d209-0000-0000-0000-504944564944 instance_effc7d00-08fc-11e4-8002-444553540000" controller="GUNCODE_10" />
<!--Spinner-->
<mapdevice device="HID#VID_FAFA&amp;PID_0060" controller="MOUSECODE_11" />
<!--Trackball-->
<mapdevice device="HID#VID_D209&amp;PID_15A1" controller="MOUSECODE_8" />



            <!--PLAYER ONE CONTROLS-->
<port type="P1_JOYSTICK_UP">
                <newseq type="standard">
                    JOYCODE_2_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICK_DOWN">
                <newseq type="standard">
                    JOYCODE_2_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICK_LEFT">
                <newseq type="standard">
                    JOYCODE_2_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICK_RIGHT">
                <newseq type="standard">
                    JOYCODE_2_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKRIGHT_UP">
                <newseq type="standard">
                    JOYCODE_2_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKRIGHT_DOWN">
                <newseq type="standard">
                    JOYCODE_2_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKRIGHT_LEFT">
                <newseq type="standard">
                    JOYCODE_2_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKRIGHT_RIGHT">
                <newseq type="standard">
                    JOYCODE_2_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKLEFT_UP">
                <newseq type="standard">
                    JOYCODE_4_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKLEFT_DOWN">
                <newseq type="standard">
                    JOYCODE_4_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKLEFT_LEFT">
                <newseq type="standard">
                    JOYCODE_4_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P1_JOYSTICKLEFT_RIGHT">
                <newseq type="standard">
                    JOYCODE_4_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P1_BUTTON1">
                <newseq type="standard">
                    GUNCODE_9_BUTTON1 OR KEYCODE_A
                </newseq>
            </port>
            <port type="P1_BUTTON2">
                <newseq type="standard">
                    GUNCODE_9_BUTTON3 OR KEYCODE_B
                </newseq>
            </port>
            <port type="P1_BUTTON3">
                <newseq type="standard">
                    KEYCODE_C
                </newseq>
            </port>
            <port type="P1_BUTTON4">
                <newseq type="standard">
                    KEYCODE_D
                </newseq>
            </port>
            <port type="P1_BUTTON5">
                <newseq type="standard">
                    KEYCODE_E
                </newseq>
            </port>
            <port type="P1_BUTTON6">
                <newseq type="standard">
                    KEYCODE_F
                </newseq>
            </port>
            <port type="P1_PEDAL">
                <newseq type="standard">
                    JOYCODE_1_YAXIS
                </newseq>
            </port>
            <port type="P1_PEDAL2">
                <newseq type="standard">
                    JOYCODE_1_ZAXIS
                </newseq>
            </port>
            <port type="P1_PADDLE">
                <newseq type="standard">
                    JOYCODE_1_XAXIS
                </newseq>
                <newseq type="increment">
                    JOYCODE_1_XAXIS_RIGHT_SWITCH
                </newseq>
                <newseq type="decrement">
                    JOYCODE_1_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P1_DIAL">
                <newseq type="standard">
                    MOUSECODE_11_XAXIS
                </newseq>
            </port>
            <port type="P1_TRACKBALL_X">
                <newseq type="standard">
                    MOUSECODE_8_XAXIS
                </newseq>
            </port>
            <port type="P1_TRACKBALL_Y">
                <newseq type="standard">
                    MOUSECODE_8_YAXIS
                </newseq>
            </port>
            <port type="P1_AD_STICK_X">
                <newseq type="standard">
                    GUNCODE_9_XAXIS OR JOYCODE_2_XAXIS
                </newseq>
            </port>
            <port type="P1_AD_STICK_Y">
                <newseq type="standard">
                    JOYCODE_2_YAXIS OR GUNCODE_9_YAXIS
                </newseq>
            </port>
            <port type="P1_LIGHTGUN_X">
                <newseq type="standard">
                    GUNCODE_9_XAXIS
                </newseq>
            </port>
            <port type="P1_LIGHTGUN_Y">
                <newseq type="standard">
                    GUNCODE_9_YAXIS
                </newseq>
            </port>
<!--PLAYER TWO CONTROLS-->
            <port type="P2_JOYSTICK_UP">
                <newseq type="standard">
                    JOYCODE_3_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICK_DOWN">
                <newseq type="standard">
                    JOYCODE_3_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICK_LEFT">
                <newseq type="standard">
                    JOYCODE_3_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICK_RIGHT">
                <newseq type="standard">
                    JOYCODE_3_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKRIGHT_UP">
                <newseq type="standard">
                    JOYCODE_5_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKRIGHT_DOWN">
                <newseq type="standard">
                    JOYCODE_5_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKRIGHT_LEFT">
                <newseq type="standard">
                    JOYCODE_5_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKRIGHT_RIGHT">
                <newseq type="standard">
                    JOYCODE_5_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKLEFT_UP">
                <newseq type="standard">
                    JOYCODE_3_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKLEFT_DOWN">
                <newseq type="standard">
                    JOYCODE_3_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKLEFT_LEFT">
                <newseq type="standard">
                    JOYCODE_3_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P2_JOYSTICKLEFT_RIGHT">
                <newseq type="standard">
                    JOYCODE_3_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P2_BUTTON1">
                <newseq type="standard">
                    GUNCODE_10_BUTTON1 OR KEYCODE_G
                </newseq>
            </port>
            <port type="P2_BUTTON2">
                <newseq type="standard">
                    KEYCODE_H OR GUNCODE_10_BUTTON3
                </newseq>
            </port>
            <port type="P2_BUTTON3">
                <newseq type="standard">
                    KEYCODE_I
                </newseq>
            </port>
            <port type="P2_BUTTON4">
                <newseq type="standard">
                    KEYCODE_J
                </newseq>
            </port>
            <port type="P2_BUTTON5">
                <newseq type="standard">
                    KEYCODE_K
                </newseq>
            </port>
            <port type="P2_BUTTON6">
                <newseq type="standard">
                    KEYCODE_L
                </newseq>
            </port>
            <port type="P3_JOYSTICK_UP">
                <newseq type="standard">
                    JOYCODE_4_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P3_JOYSTICK_DOWN">
                <newseq type="standard">
                    JOYCODE_4_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P3_JOYSTICK_LEFT">
                <newseq type="standard">
                    JOYCODE_4_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P3_JOYSTICK_RIGHT">
                <newseq type="standard">
                    JOYCODE_4_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P3_BUTTON1">
                <newseq type="standard">
                    KEYCODE_M
                </newseq>
            </port>
            <port type="P3_BUTTON2">
                <newseq type="standard">
                    KEYCODE_N
                </newseq>
            </port>
            <port type="P3_BUTTON3">
                <newseq type="standard">
                    KEYCODE_O
                </newseq>
            </port>
            <port type="P3_BUTTON4">
                <newseq type="standard">
                    KEYCODE_Q
                </newseq>
            </port>
            <port type="P4_JOYSTICK_UP">
                <newseq type="standard">
                    JOYCODE_5_YAXIS_UP_SWITCH
                </newseq>
            </port>
            <port type="P4_JOYSTICK_DOWN">
                <newseq type="standard">
                    JOYCODE_5_YAXIS_DOWN_SWITCH
                </newseq>
            </port>
            <port type="P4_JOYSTICK_LEFT">
                <newseq type="standard">
                    JOYCODE_5_XAXIS_LEFT_SWITCH
                </newseq>
            </port>
            <port type="P4_JOYSTICK_RIGHT">
                <newseq type="standard">
                    JOYCODE_5_XAXIS_RIGHT_SWITCH
                </newseq>
            </port>
            <port type="P4_BUTTON1">
                <newseq type="standard">
                    KEYCODE_R
                </newseq>
            </port>
            <port type="P4_BUTTON2">
                <newseq type="standard">
                    KEYCODE_S
                </newseq>
            </port>
            <port type="P4_BUTTON3">
                <newseq type="standard">
                    KEYCODE_T
                </newseq>
            </port>
            <port type="P4_BUTTON4">
                <newseq type="standard">
                    KEYCODE_U
                </newseq>
            </port>
            <port type="P2_DIAL">
                <newseq type="standard">
                    MOUSECODE_11_XAXIS
                </newseq>
                <newseq type="increment">
                    NONE
                </newseq>
                <newseq type="decrement">
                    NONE
                </newseq>
            </port>
            <port type="P3_DIAL">
                <newseq type="standard">
                    MOUSECODE_6_XAXIS
                </newseq>
            </port>
            <port type="P4_DIAL">
                <newseq type="standard">
                    MOUSECODE_7_XAXIS
                </newseq>
            </port>
            <port type="P2_TRACKBALL_X">
                <newseq type="standard">
                    MOUSECODE_8_XAXIS
                </newseq>
                <newseq type="increment">
                    NONE
                </newseq>
                <newseq type="decrement">
                    NONE
                </newseq>
            </port>
            <port type="P2_TRACKBALL_Y">
                <newseq type="standard">
                    MOUSECODE_8_YAXIS
                </newseq>
                <newseq type="increment">
                    NONE
                </newseq>
                <newseq type="decrement">
                    NONE
                </newseq>
            </port>
            <port type="P2_AD_STICK_X">
                <newseq type="standard">
                    GUNCODE_10_XAXIS OR JOYCODE_3_XAXIS
                </newseq>
                <newseq type="increment">
                    NONE
                </newseq>
                <newseq type="decrement">
                    NONE
                </newseq>
            </port>
            <port type="P2_AD_STICK_Y">
                <newseq type="standard">
                    GUNCODE_10_YAXIS OR JOYCODE_3_YAXIS
                </newseq>
                <newseq type="increment">
                    NONE
                </newseq>
                <newseq type="decrement">
                    NONE
                </newseq>
            </port>
            <port type="P2_LIGHTGUN_X">
                <newseq type="standard">
                    GUNCODE_10_XAXIS
                </newseq>
            </port>
            <port type="P2_LIGHTGUN_Y">
                <newseq type="standard">
                    GUNCODE_10_YAXIS
                </newseq>
            </port>
            <port type="UI_UP">
                <newseq type="standard">
                    KEYCODE_UP
                </newseq>
            </port>
            <port type="UI_DOWN">
                <newseq type="standard">
                    KEYCODE_DOWN
                </newseq>
            </port>
            <port type="UI_LEFT">
                <newseq type="standard">
                    KEYCODE_LEFT
                </newseq>
            </port>
            <port type="UI_RIGHT">
                <newseq type="standard">
                    KEYCODE_RIGHT
                </newseq>
            </port>
            <port type="UI_SELECT">
                <newseq type="standard">
                    KEYCODE_ENTER
                </newseq>
            </port>
        </input>
    </system>
</mameconfig>

« Last Edit: February 20, 2017, 09:39:31 am by MydknyteStyrm »

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #2 on: February 21, 2017, 05:22:00 pm »
A big 'thank you' for posting that!  Very helpful - one question, though... how do you pull the instance detail below:

" instance_6d89e5f0-21b1-11e5-8001-444553540000"

...for the u360's?  I think I found the part that changes on the productID and matched that up, but didn't find a clean instance output.  I tried mame64 -v to show the verbose output, but get control characters mixed in with the product and instance detail, in the one area i actually need.

This is what I'm getting back from the verbose output...
Input: Adding joystick #0: Ultimarc Ultra-Stik Player 2 (device id: Ultimarc Ultra-Stik Player 2 product_xαh
 instance_α7)
α79k
Input: Adding joystick #1: Ultimarc Ultra-Stik Player 1 (device id: Ultimarc Ultra-Stik Player 1 product_9k
 instance_α7)
R

So close, yet so far...
Pete

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #3 on: February 21, 2017, 05:26:25 pm »
I used ControllerRemap before mapdevice was implemented, so I think you might have better chance finding your controller IDs using ControllerRemap or ControllerRemapGUI. I will do a test on my cab with Mame -v to see if it gives me the full ID instance. Don't know why you didn't get the full deal though. Check out ControllerRemap by Dr Venture. Could really help.


Sent from my iPhone using Tapatalk

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #4 on: February 21, 2017, 07:38:26 pm »
I'm not quite sure either.  I tried ControllerRemap and the GUI, even a USB Device diagnostic utility which gives everything under the sun...however all I seem to get with ControllerRemapGUi is the name "Ultimarc Ultra-Stik Player 1" or Player 2.  That's sort of how I got down this road to begin with, as the mame documentation notes this should work:

...
<mameconfig version=”10”>
<system name=”default”>
<input>
<mapdevice device=”VID_D209&amp;PID_1601” controller=”GUNCODE_1” />
<mapdevice device=”VID_D209&amp;PID_1602” controller=”GUNCODE_2” />
<mapdevice device=”XInput Player 1” controller=”JOYCODE_1” />
<mapdevice device=”XInput Player 2” controller=”JOYCODE_2” />

<port type=”P1_JOYSTICK_UP”>
<newseq type=”standard”>
JOYCODE_1_YAXIS_UP_SWITCH OR KEYCODE_8PAD
...

..so that 'XInput Player 1" in the example, would essentially be where "Ultimarc Ultra-Stik Player 1" would go...and that I wouldn't need the hieroglyphs..but then again, yours works and the one above doesn't...so I can't really put too much faith in the text above, but just odd that they would use this as the example. 

Maybe there's a way I have to invoke the command line shell to keep the control characters from being produced when i do the mame64 -v report...

Pete

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #5 on: February 21, 2017, 08:01:15 pm »

 Here's a couple screenshots

 


MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #6 on: February 22, 2017, 05:17:23 am »
That is strange. Have you ever updated your U360 firmware since you purchased them? Maybe that has something to do with it


Sent from my iPhone using Tapatalk

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #7 on: February 23, 2017, 04:38:32 am »
I tried mame64 -v to show the verbose output, but get control characters mixed in with the product and instance detail

I've examined the MAME source and tracked down the issue. It's now reported to MAMEDev so it should hopefully be fixed in the next release.
« Last Edit: February 23, 2017, 05:04:53 am by headkaze »

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #8 on: February 23, 2017, 09:34:35 am »
I would try an earlier Mame to get the code. Maybe 181 or 180


Sent from my iPhone using Tapatalk

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #9 on: February 23, 2017, 09:56:23 am »
I would try an earlier Mame to get the code. Maybe 181 or 180

He must have a custom compiled version of MAME as the official releases don't have this problem.

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Ultimarc U360 with MAME 182 and USB Mapping
« Reply #10 on: February 23, 2017, 11:38:40 am »
Yeah I suppose. I didn't have any trouble with this on 182. If anything just download a raw build of Mame from the mamedev.org site and try the -v


Sent from my iPhone using Tapatalk

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #11 on: February 23, 2017, 05:16:04 pm »
Thanks for the replies...I actually was on this same path (using a different mame config and also going to check the firmware version on the USB sticks).

In the end i just downloaded mame 32bit 182 (just picked 32 bit in case it was a 64 bit thing), copied my ini file over from the 'live' directory and ran a -v, and it showed the USB details properly.  Yes the version i was using was GroovyMame 182.  Just got the info extracted a couple minutes ago, so i'll check to see how far I can get with the mapping now.

Thanks everyone!

Pete 

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #12 on: February 23, 2017, 05:19:34 pm »
Well glad that was sorted out. Good luck


Sent from my iPhone using Tapatalk

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #13 on: February 23, 2017, 06:04:23 pm »
It still isn't happy... and doing a mame -v takes me to a black screen, to which exiting makes the logging info disappear.  Fun times :)  Hmm...wondering if that issue with the Groovymame exe reading the usb detail is causing an issue with the controllers loading...they still are reversed when I get the game going...

Pete
« Last Edit: February 23, 2017, 06:06:49 pm by pbarcade »

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #14 on: February 23, 2017, 06:11:45 pm »
Try a fresh install of Mame 64bit.


Sent from my iPhone using Tapatalk

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #15 on: February 23, 2017, 06:27:02 pm »
Try a fresh install of Mame 64bit.


Sent from my iPhone using Tapatalk

After spending much of the month of December and January messing around with video card drivers, third party utilities and and Groovymame setup, modifying ini files and such, that idea sends a chill down my spine.  :)  Let me absorb this idea for a bit...

MydknyteStyrm

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 331
  • Last login:March 20, 2024, 12:19:41 pm
  • Makeup FX Gamer
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #16 on: February 23, 2017, 06:32:28 pm »
lol I feel ya. I never messed with any form of Mame other than the original installs, so I wouldn't be able to tell you if GM would be able to use Mapdevice. What's the draw to using GM?


Sent from my iPhone using Tapatalk

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #17 on: February 23, 2017, 08:05:21 pm »
lol I feel ya. I never messed with any form of Mame other than the original installs, so I wouldn't be able to tell you if GM would be able to use Mapdevice. What's the draw to using GM?


Sent from my iPhone using Tapatalk
I'm running my cab with an original arcade monitor and trying to keep those original resolutions intact through Groovymame and the crt emudrivers applied to an ATI Radeon.  After years of the controls being fine and the resolutions all wonky, now I've reversed my predicament after hours of OS upgrades, conversions to new mame versions and rocket launchers and cards and everything... it's like a every 3 year project-redo that I finally decided to stay on until it was finally on track.   Getting close..

Pete

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #18 on: February 23, 2017, 11:20:19 pm »
As I said in my previous post there is a bug in MAME and any version of MAME that is custom compiled with GCC. This may also prevent the gamepad order feature working at all. This may also effect derivative MAME builds such as GroovyMAME depending on how they are compiled.

My guess is the official MAME releases for Windows are compiled in Visual Studio and therefore do not contain this bug.

I have reported this bug to MAMEDev and expect it will be fixed in the next release.

If you want to fix it yourself for now; the problem is specifically in the guid_to_string() method located in the file src\osd\modules\input\input_dinput.h

Open input_dinput.h in a text editor and do a search for "sprintf_s" replacing it with "snprintf". Now compile it again and the bug is fixed.

There is a wider implication of this bug that is most likely beyond a simple console output issue. My guess is this corrupted GUID, which is used to identify gamepads, most likely breaks the order id feature completely.

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #19 on: February 24, 2017, 07:01:13 pm »
Thank you! That's about as complete of an answer as I can ever imagine! :)  Also helps my sanity a bit...as I can't think of too many more ways to try this thing...heh

Thanks,
Pete

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #20 on: February 25, 2017, 07:17:54 am »
I just tried compiling MAME using the latest compile tools (GCC 6.3.0) and it doesn't seem to have this issue either.

pbarcade

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 30
  • Last login:December 11, 2023, 08:03:19 am
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #21 on: February 25, 2017, 09:16:39 am »
I just tried compiling MAME using the latest compile tools (GCC 6.3.0) and it doesn't seem to have this issue either.

Not quite following - are you saying with the manual fix you mentioned, it's ok?  Or that you can't reproduce it with a certain mame build and GCC 6.3.0?

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Ultimarc U360 with MAME 182 and USB Mapping
« Reply #22 on: February 25, 2017, 09:38:24 am »
Not quite following - are you saying with the manual fix you mentioned, it's ok?  Or that you can't reproduce it with a certain mame build and GCC 6.3.0?

Compiling MAME using the latest MAME tools does not exhibit the corruption. So you can either update your compile tools or patch the function. Either way MAMEDev will probably change the use of "sprintf_s" to "snprintf" as it's the only time in the entire MAME source it's used.

Based on these findings I can only assume that GroovyMAME is being compiled using an older version of GCC.