MAME development: lr-mame2003 Updates
-
for my sins, i've been doing some small updates lr-mame2003, trying to learn C programming. fun! i'll keep this thread updated with features as they are accepted.
you can read about the emulator here: https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003
-
August 5th 2017
Killer Instinct 1/2 now work on x86 and pi! thanks to @markwkidd - kinst loads, and runs at about 2 FPS on pi3. very unplayable, so be careful what you wish for ;) however x86 users can at least run it, and it should be playable. -
August 2nd 2017
Mortal Kombat 2/3 (and others?) sound distortion fixed! these games are now fully playable on pi3. this fix was also funded by @GreenHawk84 and @vince-geekcore - thanks both!
25th February 2017
- Fixed frameskip caused by B button
Thanks to @RumblinBuffalo for spotting!
See https://retropie.org.uk/forum/topic/8331/lr-mame2003-speeding-up-with-b-button-press
24th February 2017
- Backported a few refresh rate fixes from current mame
By default these won't be visible, but you can read about the fix and how to see it here, if you care! https://github.com/libretro/mame2003-libretro/issues/75
10th December 2016
- TATE mode
For users with rotatable displays to show vertical games in their native 90 degree rotation, using the full length of the display. See https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#tate-mode
17th October 2016
- Fix default controls in American Speedway
As spotted in the MAME ROW #4 thread
7th September 2016
- Fix default controls in Cloak & Dagger
Idea by @mediamogul in https://retropie.org.uk/forum/topic/2889/mame-development-lr-mame2003-updates/63 - Fix bug where you couldn't rebind Retropad B button
Idea/bug reported by @silentq in https://retropie.org.uk/forum/topic/3854/cannot-remap-b-button-to-any-other-button-other-than-button-1-in-mame2003
5th September 2016
- Second stick support
For games like robotron that have a second stick to fire, you can now use the second analog stick to do this.
See https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#dual-stick-games - Better control defaults for CPS1 (Street Fighter 2, etc)
2nd September 2016
- pointer support
not a huge lot of use for most here, but i added support for trackpads/touchscreens, or any other absolute pointer device. it might work with the PS4 controller's touchpad, actually!
see https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#pointertrackpadtouchscreen-support
1st September 2016
- core input remapping added
see https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration#core-input-remapping
(although, i still favour https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#mame-menu)
14th August 2016
- aspect ratios corrected
previously some games would appear at the wrong ratio (eg blasteroids stretched, street fighter 2/alpha stretched). now corrected.
5th August 2016
- 2 player dial support
for users with 2 player dial/spinner devices, it treats the X axis as player 1, Y as player 2. https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#2-player-dialspinner-devices
30th July 2016
- windows support
now compiles and runs on windows platforms.
29th July 2016
- mouse, trackball, analog support!
finally been accepted! now users with trackball setups should find that that centipede, etc, work properly. also, games with analog sticks (eg, Afterburner) now also work with gamepad analog sticks. lightgun games should work with either. i'm not sure about other controls (spinners, etc), but maybe.. you can read more about this here: https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#mousetrackballanalog-controller-support - samples work
hopefully no-one noticed this, but a few months ago i accidentally broke sample support :) it's back working now: https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#samples
25th April 2016
- sample rate
an older fix, but not sure i mentioned it anywhere. now the sample rate can be lowered from the default of 48000KHz. this is possibly useful for Raspberry Pi 2 and 1 owners if they have any performance issues. see https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#sample-rate for instructions. let me know your findings!
please test these and let me know! If all seems good, we can get this added to binaries, and the next RetroPie release :)
To get these updates you need to update main package lr-mame2003 to the latest version via SOURCE - see https://github.com/retropie/retropie-setup/wiki/updating-retropie#updatinginstalling-individual-packages
next, i hope to get the following working:
windows support- NOT binding the MAME menu to a controller button by default (annoying!)
fixing MK2/3 sound issues (could do with some help here! - see https://github.com/libretro/mame2003-libretro/issues/43)fixing killer instinct support (see https://github.com/libretro/mame2003-libretro/issues/38 - although i suspect the pi3 won't be able to run it well, even if it worked)- artwork support: https://github.com/libretro/mame2003-libretro/issues/50
corrected aspect ratios for CPS2 games: https://github.com/libretro/mame2003-libretro/issues/51
-
-
Thanks! I have updated the binaries.
-
@dankcushions I just recompiled and I am going through my spinner/trackball games. So far so good! I am just getting started, but Cameltry, Centipede, Millipede all working nicely. The trickier titles like Off The Wall (sente) and Blasteroids should be interesting. There are some vector titles the will have to remain with AdvanceMAME (Tempest, Star Trek, Omega Race), but this is FANTASTIC to see many of these finally playable in 2003!
-
@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.
-
I know it's not listed above, but not too long ago there was talk that artwork was possibly enabled in this update as well. I currently have version appropriate artwork files located at
~/RetroPie/BIOS/mame2003/artwork/
and they are not being loaded. Before I start to troubleshoot the issue, is it known whether or not artwork is a possibility yet? Most of my experience with Mame is with the later versions and the option to enable artwork hadn't been yet added to the tab menu in 2003, so if it simply needs to be enabled, how would this be done?Edit: I've emphasized my appreciation on your work here before, but a whole-hearted thanks is always worth repeating. So, thanks again!
-
Hey, really appreciate all the hard work! I am following up on sample sounds, I still cannot get them working. All the zip files are located in /home/pi/RetroPie/BIOS/mame2003/samples, and these are the same sample files I used for mame4all, previously.. meaning I took a working setup for mame4all and then loaded 0.78 romset and simply moved these samples over for mame2003. I updated from source, and testing with Donkey Kong, the sample sounds do not work, for example. I have seen some debate over exactly where these samples should go, but I used the path that the documentation had.
This may not be your area either but.. In my troubleshooting, I tried to remove and re-add mame2003 in retropie_setup.sh and when you do that, it only lets you install from source, not from binary anymore, and install from source errors out, leaving me without mame2003 and having to start over again.
Any suggestions? I'm going to rebuild latest RetroPie from scratch I guess.. but I'd love to be able to come out of this with working sample sounds on mame2003
-
@Ender519 I'm not sure about your reinstall issue, but installing by binary should fix your samples problem. can you try again? also, what what error do you get when you install via source? the full log is kept in
/home/pi/RetroPie-Setup/logs/
(then look for the latest date) -
@dankcushions For various reasons I'm rebuilding to stock RetroPie 3.8.1, so I've lost those logs figuring it was an issue with my build. But in the menu, I no longer had an option for Install from binary, it was gone and the only install option was from source, but that would error out and complain about a missing .so file. If I run into it again I'll get the output verbatim and steps to reproduce.
Back to sample sound issues, assuming that my information about where to put the samples is correct, I will go about it as follows: without updating anything I am going to load mame2003 rom's and samples and see what I get. Then I'll freeze the pi so I can go right back to it and gingerly update the components (distro, and then all packages by binary using latest retropie script), and if I get to a point where it was working and now it's not, I will report back with some better information.
-
@Ender519 said in MAME development: lr-mame2003 Updates:
@dankcushions For various reasons I'm rebuilding to stock RetroPie 3.8.1, so I've lost those logs figuring it was an issue with my build. But in the menu, I no longer had an option for Install from binary, it was gone and the only install option was from source, but that would error out and complain about a missing .so file. If I run into it again I'll get the output verbatim and steps to reproduce.
Back to sample sound issues, assuming that my information about where to put the samples is correct, I will go about it as follows: without updating anything I am going to load mame2003 rom's and samples and see what I get. Then I'll freeze the pi so I can go right back to it and gingerly update the components (distro, and then all packages by binary using latest retropie script), and if I get to a point where it was working and now it's not, I will report back with some better information.
cool, thanks :) you'll still have to update lr-mame2003 after installing 3.8.1, fyi. there is a known bug with samples with the current version (the one fixed by my updates in the first post), which will per part of later retropie versions, but until then you'll have to do the update. after that i'd expect them to work fine as per the instructions here: https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003#samples
-
@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.
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.