Generating older lr-mame builds
-
Older binaries of lr-mame run games that the bleeding edge version cannot run. This topic is created while trying to build a 64-bit version of lr-mame version 0.222 (which was locked down in 2020 -- so to speak).
The 0.222 build was important in part because it's the last lr-mame build that did not include netlist discrete audio, which had adverse impact to several games on lower CPU systems such as the Raspberry Pi 3B+ and 4B. There are also some games like freezeat (Freeze prototype by Atari) that run too slow with modern lr-mame -- even on the new Pi 5.
It's known at this time that you can't simply take the existing lr-mame script and reference the older 0.222 commit, so focus here is to see if we can find a solution to build this 3-year old version.
Discussion started here in a Raspberry Pi 5 related thread.
Will continue discussion here.
-
@roslof This script from November
20212020 doesn't work for me either:This would be the first change to the RetroPie installation script for lr-mame after the commit you linked for 0.222. I will try the version of the script immediately before that too (May 2020).
The latest script + the one linked above both failed while compiling
rendlay.cpp
for me. I'm not sure if that has any significance.I did notice that my RetroPie installation on Pi 5 includes diff patches for installing lr-mame2015 and lr-mame2016.
-
@ChaosEffect said in Generating older lr-mame builds:
I will try the version of the script immediately before that too (May 2020).
I tried it. Same problem, so save yourself some time.
I did find this older lr-mame issue from July 2020 which matches what we're seeing. Related to gcc10 10.1.0 (older/works) vs. gcc 10.2.0 and later, which contains this commit that broke things for lr-mame back in July 2020.
So... I suppose there would be a way to build gcc 10.10.1.0 and try again? Or...
This is the changelist that the lr-mame team used to resolve the issue around the time of lr-mame 0.224. It simply changes
push
topush_specific
to multiple files in3rdparty/sol2/sol
. Should be a straightforward way to incorporate these changes and try to rebuild lr-mame. -
@roslof Great find!
Here you go if you want to test it:
https://github.com/StormedBubbles/mame/tree/mame-0.222
I'm trying to compile using the older of the two scripts from around that time (including the
CFLAGS="-fsigned-char"
flag that will hopefully allow Time Crisis to work). I will squash those commits a little later. -
@ChaosEffect said in Generating older lr-mame builds:
I'm trying to compile using the older of the two scripts from around that time (including the CFLAGS="-fsigned-char" flag that will hopefully allow Time Crisis to work). I will squash those commits a little later.
Sounds good. In parallel, I'm building using the modern script, manually altered the 7 sol-related files.
-
@roslof The compile with the 7 changed files using the May 2020 script + that extra flag worked. In terms of % speed given by pressing F11, Time Crisis was at about 80-81% during the heavy smoke in this version of MAME while current MAME has it dipping down to the 70-76% range (early game submarine explosion). Rail Chase 2 was hovering around 50% speed during the opening gameplay part where the train busts through when it's more in the 30-40% range in current MAME. This was with all default core options. I have some testing to do with some other games I'm curious about!
-
@ChaosEffect same success here. The existing script worked and I only needed to modify the
rp_module_repo
value by pointing it to your repo. Cheers!EDIT: Ah, "that extra flag worked". I forgot that the flag was not part of the lr-mame.sh script and was fixed upstream, so of course Time Crisis did not work for me without the flag. But still, great to know the issue with older lr-mame builds is solved.
-
There does seem to be some benefit to Pi 5 users here other than "totally unplayable game becomes slightly less unplayable." Tekken Tag Tournament and Mortal Kombat 4 both had some dips when watching the speed counter in current MAME, but they both appear to be running at full speed in 0.222 without any overclocking.
MK4 would drop down to the 90% range in current MAME.
Tekken Tag was less obvious (maybe dropping down to 95% in current MAME).
This MAME version unfortunately predates the various mouse and lightgun changes I submitted to lr-mame in the last couple of years (expanding player count to 8, fixing the mouse buttons, allowing for multiple mice and lightguns). I can add those changes to this older version in the next couple of weeks if it seems like this will get used.
-
@roslof I have another couple for you.
One is MAME 0.209, which includes the Time Crisis helicopter fix from 0.203 and is the first Libretro version to include lightgun support. I am hopeful that this will give some improved performance for the game on my Pi 5 over 0.222 using the perhaps misguided "older = faster on pi" mantra. Unfortunately, the compile failed catastrophically almost immediately after downloading the source without an error that made it obvious to me what to do. Here is the source if you want to try:
https://github.com/StormedBubbles/mame/tree/mame-0.209
I tried with the current lr-mame install script as well as one from that time period with the same result.
Something I am more hopeful about is this:
https://github.com/libretro/beetle-saturn-libretro/issues/29
Tangentially related to MAME, but I noticed that your compatibility list mentions
advmame
as a candidate for running Sega Titan games. At least Die Hard is still problematic on a Pi 5 with 0.222 and current lr-mame, but Beetle Saturn runs Saturn games at full speed for me on Pi 5 without any overclocking. Perhaps someone will take a look at this in the near future and port over the necessary code. -
@ChaosEffect said in Generating older lr-mame builds:
s ago
@roslof I have another couple for you.
Thanks for this. Will check this out.
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.