MAME development: lr-mame2003 Updates
-
@caver01 said in MAME development: lr-mame2003 Updates:
@caver01 Ok, I have tested a few games and here's what I have found:
For all non-vector, single-player spinner games and trackball games lr-mame2003 will become the standard. For two-player games (dual spinners) player 2 can't participate. Player one works fine using the x-axis of a spinner interface, but where I would expect player 2 to use the y-axis, no inputs register. It's as if the Player 2 Dial isn't mapped to anything.
This affects any head-to-head games like Blasteroids, Off The Wall (Sente) as well as driving games like Championship Sprint and Ironman Stewart's Super Off-Road and probably many others.
I expect there is a default mapping coded that maps Player2 DIAL to another axis of a non-existent input.
thanks for testing! ok, i was hoping to fix this by duplicating the mouse input to player one and 2. however, i did this and tested blasteroids and it just duplicated player1's x axis for both players. i need to have a deeper look to try and see if i make it possible to use the X axis for player 1, and Y for player 2. it seems this is how advmame handles this?
@mediamogul i will look into artwork :) apparently it works but i've not tried it, so i'll investigate and then put some full instructions on the wiki, assuming it works still!
-
@dankcushions said in MAME development: lr-mame2003 Updates:
so i'll investigate and then put some full instructions on the wiki, assuming it works still!
Fantastic! Thanks.
-
@dankcushions After going to stock 3.8.1, samples worked. After updating distro and binaries, samples still work. Don't know what happened with the prior build but I can confirm it all works. Thanks!
-
@dankcushions said in MAME development: lr-mame2003 Updates:
i need to have a deeper look to try and see if i make it possible to use the X axis for player 1, and Y for player 2. it seems this is how advmame handles this?
AdvanceMAME provides very flexible control over mouse input mapping. Using the config file, you can essentially matrix any input (or combination of inputs) to any player control for any ROM (specified ROM, group of ROMs or a default setting overall). This is an ideal situation in principle, as I can assign a specific axis of a specific USB mouse to to a specific player control (i.e. assign the inverted y-axis of mouse2 to the DIAL input of Player 2 for otwalls). It allows for some complex (and expensive) builds. For instance, I could build a three trackball panel for Rampart, or setup three different spinners for Super Off-Road. However, in practice (at least for DIY arcade system builders) this level of flexibility, although convenient, is probably overkill. I've never seen a build that includes more than one trackball. Two spinners is admittedly indulgent, but it makes sense because the interface boards are often built to support a trackball OR two spinners—so if you have one, you are already setup to use two, and if you add a second, it will be on the other axis of the same mouse.
I'm sure someone out there has their spinners on separate interfaces (different mice). Or, how about this use case: Player 1 uses a trackball to steer on the x-axis (no spinners) so Player 2 needs to use the P2 Joystick. However, the Player 2 car keeps crashing because it is tied to the Y-axis of the trackball being used by Player 1!
If you had to pick a default mapping for Player 2, given the way most people would leverage a single interface for two spinners, you would probably satisfy most cabinet builders with X and Y. And making this a configurable option per ROM might add just enough flexibility for the situations when a trackball makes it inconvenient.
-
@caver01 I have a fix that seems to work :) https://github.com/libretro/mame2003-libretro/pull/49
hopefully this will be accepted soon.windows support is now working, which is probably pointless to most people here but yeah :)
-
@dankcushions said in MAME development: lr-mame2003 Updates:
@caver01 I have a fix that seems to work :) https://github.com/libretro/mame2003-libretro/pull/49
hopefully this will be accepted soon.Wow. That's beautiful!
Seriously, @dankcushions your efforts are MUCH appreciated. One by one, the seemingly small reasons for using anything other than lr-mame2003 when selecting a MAME emulator are stacking up! Nice work.
-
agreed - excellent stuff - cheers.
-
Thanks Dank for all you've done to whip lr-mame2003 into shape and thanks for an "official" thread to post in. We're going to have to name it lrdc-mame2003 or something! ;)
A quick question. Is it a lot of tweaking to get the left/right analog sticks and the silver center button on a XBOX 360 to work in the TAB setup? It's not a show stopper at all from migrating but it sure is handy for extra configuration flexibility. They do work in mame4all-pi and AdvMAME and I'm so used to using them. Great job with lr-mame2003 your efforts are regal good sir! :)
-
thanks all! honestly i'm having fun messing about with this stuff :)
@mediamogul i had a look into artwork. i'm fairly sure no-one could have gotten it working before as I had to do a code change, but when it was working there was some kind of corruption going on with the image. almost like the image bpp or image format wasn't working properly. i will look into this more but it's not looking great :(
@Riverstorm thanks :) centre button is probably not possible as it's a libretro limitation. libretro sees all controllers as basically a 360 controller, but that doesn't include the centre xbox button. what you could do is rebind your controller through emulation station, and map the centre button to a button it DOES see that you don't otherwise use (eg, the R3/L3 buttons, used when you click in the sticks?). after that, press TAB and change the general inputs so that 'show UI' (or whatever it's called) is your xbox button (which will show up as R3/L3) in addition to TAB. it's a bit of a hack but i'm not sure of any other way :(
-
@dankcushions said in MAME development: lr-mame2003 Updates:
i will look into this more but it's not looking great
Hey, do what you can. I'm just glad you're looking into it.
Thanks!
-
@dankcushions said in MAME development: lr-mame2003 Updates:
@Riverstorm thanks :) centre button is probably not possible as it's a libretro limitation. libretro sees all controllers as basically a 360 controller, but that doesn't include the centre xbox button. what you could do is rebind your controller through emulation station, and map the centre button to a button it DOES see that you don't otherwise use (eg, the R3/L3 buttons, used when you click in the sticks?). after that, press TAB and change the general inputs so that 'show UI' (or whatever it's called) is your xbox button (which will show up as R3/L3) in addition to TAB. it's a bit of a hack but i'm not sure of any other way :(
Thanks Dank that's actually really clever and would have never though of doing it that way. I am not sure what others do but I use the silver button to pull up my MAME TAB menu.
The other key you need to take in account for joysticks is the Escape key (UI Cancel). If you're in Input (General) the TAB key will only enter and exit the specific menu you're on and you can never get back to the "root" TAB menu to the other options until you exit the game and start it again.
Basically the Escape key (UI Cancel) acts as the back key as well as the exit menu key.
-
@Riverstorm said in MAME development: lr-mame2003 Updates:
The other key you need to take in account for joysticks is the Escape key (UI Cancel). If you're in Input (General) the TAB key will only enter and exit the specific menu you're on and you can never get back to the "root" TAB menu to the other options until you exit the game and start it again.
Basically the Escape key (UI Cancel) acts as the back key as well as the exit menu key.I was thinking about this too, but I have just been navigating using the last menu items "return to previous menu" or what ever they say. It's easy to navigate up and down with this, but not as convenient as the UI Cancel.
Here's an idea: I haven't tried this, but couldn't you map the EXIT function in RetroArch to "nul" and allow the ESC key to behave is it normally does in MAME? That way, UI Cancel would work as well as exit, depending on where you are in the emulator. It's the same kind of conflict we see with the PAUSE key.
This, of course, couldn't be a system-wide config. It would have to be per-core and just for lr-mame2003. You could do a test with a per-rom cfg or drop the nul mapping into the appropriate retroarch.cfg, but it would cause a conflict inside the Arcade config folder where you might still need the RetroArch EXIT function for other cores that use it (i.e. lr-fba-next).
-
@caver01 said in MAME development: lr-mame2003 Updates:
Here's an idea: I haven't tried this, but couldn't you map the EXIT function in RetroArch to "nul" and allow the ESC key to behave is it normally does in MAME? That way, UI Cancel would work as well as exit, depending on where you are in the emulator. It's the same kind of conflict we see with the PAUSE key.
I can try it just let me know but I am not quite sure I understand. The Escape key goes back one menu at a time until it gets to the main menu and then it exits the main menu back to the game fine. The keyboard works ok like it should. The challenge I was referring to is getting the joystick to work the same as the keyboard but there's a lot fewer buttons to work with. :)
Thanks for the Return Menu tip that will ease things for sure! I never paid attention to the Return Menu at the bottom as I am usually in the massive (general) list.
Speaking of pause is it by design the screen goes black on pause on lr-mame2003? I think I prefer to see where it's paused like in mame4all-pi. If you leave for a bit you have to guess where you're paused at. It can be a bit confusing coming back to a completely blank TV.
-
@Riverstorm Look Here for the discussion about pause.
I don't see why you couldn't map a joypad key to the UI Cancel function inside the MAME GUI. It just defaults to ESC I think, which is also MAME's EXIT key. On my setup, RetroArch overrides and kills the emulator when I press ESC, so there's no chance to use it in menu navigation. But, if I disable RetroArch EXIT key binding, I can send the ESC to MAME direct (instead of also through the virtual retropad) and it might allow menu nav. Of course, you need EXIT for other emulators--that was my point--so you would need to be selective about where you unbind EXIT in retroarch (per rom or per emu).
-
@caver01 said in MAME development: lr-mame2003 Updates:
On my setup, RetroArch overrides and kills the emulator when I press ESC
Ok, this might be the confusion for me. When I press Escape in lr-mame2003 it works like it should. To exit the emulator I press keyboard keys 1+2 or on the joystick start+select. Pressing Escape in my current setup only backs up one menu or exits the menu when at the main menu but does not kill the emulator. I didn't mean to be confusing. I was just looking for a handy joystick button to go back/exit the TAB menu.
-
@Riverstorm Actually, it's probably my configuration that is unusual because I have hotkeys disabled and I use a keyboard controller (older IPAC4). Your setup with joypad controllers is probably more common.
-
2 players on one dial device is added :) https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#2-player-dialspinner-devices
-
@dankcushions said in MAME development: lr-mame2003 Updates:
2 players on one dial device is added :) https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#2-player-dialspinner-devices
Nice work Dank, you're really banging out the updates. Thank you! :)
I'm not sure if this this is a good place to mention a few games that don't work in lr-mame2003. A few that I think would be great additions maybe some day down the road. :)
- Xenophobe which seems to work exclusively in AdvMAME no other emulators has this distinction.
- Skull & Crossbones which works in all emulators but extremely flattened vertically in all emulators. Only AdvMAME seems to get the proper proportions. I use the video setting (672x 480s 1.00x2.00).
- Puzzle Bobble (Bust-A-Move in North America) just drops back to the menu. It's the same in AdvMAME but for some reason mame4all-pi it does work.
-
@Riverstorm Most of the ones that don't work for me (add Rampage and Sarge to the list) have the same symptom: launches, but directly Service Mode and stuck there. I expect that's what others are seeing. It probably warrants another thread.
-
@dankcushions said in MAME development: lr-mame2003 Updates:
2 players on one dial device is added :) https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#2-player-dialspinner-devices
Nice work!
I can't wait to try this. Over the weekend I'll make some adjustments to the TrackBall/Spinners wiki page I wrote and extoll the virtues (again) of using lr-mame2003 for most games. At this point, only the most complicated spinner/TB setups require AdvanceMAME to map the inputs (and any vector games).
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.