Main > Driving & Racing Cabinets
Moza R3 buttons in MAME
(1/1)
connormmii:
I recently purchased a Mazda A3 bundle for my main cabinet when I go to allocate the start button on the wheel to the start command in MAME it doesn’t recognise the button. The majority of buttons on the R3 can be used but there are a few that cannot. My question is is there a limit to how many buttons MAME can handle from controllers and if so is there a work around to select which buttons can be used. Thanks in advance
nugarp:
Since nobody has replied: it probably cuts off at 32. I noticed the same on an old build of supermodel. Haven't tried a newer build yet.
nugarp:
It has come to my attention that some folks are using Wheel2XInput only for inputs, and not force feedback or rumble, and that gave me an idea: just map the buttons that are after button 32 as an xinput controller. I just tried with Supermodel and it took care of my issue of button numbers > 32 (input mode -dinput). Since I'm still using the axes from the directinput interface of the wheel directly, force feedback still works as expected through supermodel, completely skipping w2x. The below code will work for the ES wheel on the R5. I don't know if it will work for the ES Lite wheel on the R3, but if not, probably all you need to do is change the GUID per Wheel2XInput's readme. Maybe you have found a solution already, but hopefully this helps those who haven't found one.
As far as supermodel sees, the virtual xinput controller is JOY1, and my Moza wheel is JOY2. So now all Moza buttons > 32 are mapped to buttons in JOY1, and I can use all of the buttons on the wheel (although I only really cared to make Start work).
Edit: verified that this also works in MAME.
32button-limit.json:
--- Code: ---{
"guid": "00000003-346e-0000-0400-000000000000",
"enableForceFeedback": 0,
"enableRumble": 0,
"disabled": 0,
"pollInterval": 8,
"detectControllerReconnects": 1,
"blockKeys": 0,
"buttons": [
{
"button": 32,
"targetButtons": [ { "button": "A" } ]
},
{
"button": 33,
"targetButtons": [ { "button": "B" } ]
},
{
"button": 34,
"targetButtons": [ { "button": "X" } ]
},
{
"button": 35,
"targetButtons": [ { "button": "Start" } ]
},
{
"button": 36,
"targetButtons": [ { "button": "Y" } ]
},
{
"button": 37,
"targetButtons": [ { "button": "Back" } ]
}
]
}
--- End code ---
buttersoft:
Sounds good. Something i'm sure will crop up more in future as well!
How does it work? How do i make the json file, just paste into a txt file and rename it? And where do i put the file?
nugarp:
--- Quote from: buttersoft on January 26, 2026, 07:17:55 pm ---How does it work? How do i make the json file, just paste into a txt file and rename it? And where do i put the file?
--- End quote ---
Install the VigEm drivers, download wheel2xinput.exe, copy the post above as something like 32button.json (maybe in a subfolder called config in wheel2xinput), and run wheel2xinput as follows:
--- Code: ---wheel2xinput.exe config\32button.json
--- End code ---
and it will spin up a new xinput controller mapping additional buttons from your wheel as an xinput input.
I do expect either it will be required more in the future or (better), the emulators will have updates that allow them to see buttons beyond #32.
Wheel2XInput thread is in my signature - https://forum.arcadecontrols.com/index.php/topic,166939.0.html
Navigation
[0] Message Index
Go to full version