Development of module-script generator for lr-mess, lr-mame and mame standalone
-
Post 1799 has been reserved for describing and solving the problems/issues when using RPI4/RPI5 in combination with Bookworm/Debian12 and using RetroArch 1.16.x or newer.
A very small instruction on how to use this :
This project has evolved in such a way that it's now possible to use a front-end module-script and this is also recommended now.
Before you begin, you should know that backups are important.
If you have a good working image then you should not mess with that.
My advice is to start with a fresh image, if something goes wrong then it doesn't hurt that much and you can start all over again ;-)I stopped updating the generate-systems-lr-mess_mame*.sh and the add-mamedev-systems.sh scripts, my advice is not to use them anymore !
The default script is now mamedev.sh.
If you are able to paste a file into your /home/pi/RetroPie-Setup/scriptmodules/supplementary then you can simply copy the front-end script into the RetroPie-Setup.
Just do these few steps :
-
Download this file and extract it :
https://github.com/FollyMaddy/RetroPie-Share/archive/refs/heads/main.zip -
Copy
00-scriptmodules-00/supplementary/mamedev.sh
to
~/RetroPie-Setup/scriptmodules/supplementary/mamedev.sh
or if you want to separate 3rd party scripts from the original scripts then copy to
~/RetroPie-Setup/ext/RetroPie-Share/scriptmodules/supplementary/mamedev.sh
a quick command to download the file, without even downloading the repository, is to do :
wget --backups=1 https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-scriptmodules-00/supplementary/mamedev.sh -x -nd -np -P ~/RetroPie-Setup/ext/RetroPie-Share/scriptmodules/supplementary
-
Be sure there are
no
other versions ofmamedev.sh
or the olderadd-mamedev-systems.sh
in the same directory or in the ext directory, remove them ! -
Be sure you don't make this mistake : see link
(You can skip this part when you never used theext
directory) -
Run RetroPie-Setup and go to :
- Configuration / tools
- mamedev
Now you can install :
- lr-mess/mame/lr-mame <-- make sure you do this first, otherwise you can't add systems !
- lr-mess/mame/lr-mame systems
- the handhelds by @DTEAM
link to the handheld and plug & play systems of @DTEAM
link to the summarise of @bbilford83
(after installing : go to the download section for the mame-artwork and the lr-mess overlays !)- Drivers (needs updating) All in one
- Drivers (needs updating) Classic (Bambino,Bandai,Coleco,Elektronika,Entex,Epoch,Gakken,Mattel,Tomy,Vtech)
- Drivers (needs updating) Game and Watch
- Drivers (needs updating) JAKKS Pacific TV Games
- Drivers (needs updating) Konami
- Drivers (needs updating) Tiger
- Drivers (up to date) Tiger R-Zone
- special systems with added slot-devices
(for example : nes_datach,famicom_disksys,famicom_famibs3) - Drivers for other systems that are mentioned in the forum
- download predefined gamelists with added pictures and videos or scrape with scrape gamelists with pictures and videos with RetroScraper-remote
(used by Emulationstation for displaying the full game names, game pictures and game videos) - download mame-artwork
(to display the emulated screen inside a picture of the handheld/computer you are emulating) - create lr-mess overlays from mame-artwork
(for running the handhelds with the original background pictures in lr-mess)
Make sure you put the BIOS files in -->>
~/RetroPie/BIOS/mame
<<--Optionally :
It's recommended to use the cygnus-blue-flames emulationstation theme.
This theme supports most mame systems and many categories.
Once in a while it's updated by @DTEAM and me ( @folly ).
It can be installed from the original RetroPie-Setup.
( configuration -> esthemes -> install DTEAM-1/cygnus-blue-flames and make sure you de-install the default carbon theme )EXTRA OPTION (by @DTEAM):
With the mame BASENAME loader options you will be able to use the hash table
preset from MAMEdev.org and also the cheats when using a ROM with the appropriate SOFTLIST naming.WIP : As a reference, @dmmarti is making a google-sheet with useful information on the tested systems.
So after you have installed a system you can find the useful notes here :
https://docs.google.com/spreadsheets/d/1AQ28J9OUKg55R3d-TZkWO3GH50KjC2hHteCP1Bx59Ns/edit?usp=sharing
And perhaps also over here :
https://docs.google.com/spreadsheets/d/1mwIjk7TFWoD--7hfiPHCYUxFtIz1yhD8BLtWdQQWwKw/edit?usp=sharing12-11-2022 @dmmarti took all of the work done here and in the other related posts and migrated this same logic to a Windows PC based setup.
So windows users can have a look here for using his project on windows :
https://github.com/dmmarti/Retroarch_Launcher13-12-2022 @eberhab tested the Olivetti m20 and made a thread about this system over here :
Olivetti M20 threadThis is a OLD DEMO on how to use the script and install "electron" without extra hardware and with extra hardware :
Once an install is done you can choose from different runcommands when running a game.
But what is the difference.
The lr-runmess runcommand will work but is an en-heritage of the Valerino fork.
It will create a temporary .cmd file and then load that file with lr-mess and after that it will the erase the .cmd file again.
If not needed I would not recommend using this runcommand.
From script version 258.00 creating this runcommand is off by default and can be enabled by installing the run_mess.sh script as a PATCH.
If your software is in the mame hash table you can use :
- mame-<driver>-basename (softload with mame standalone)
- lr-mess-<driver>-basename (softload with lr-mess retroarch libretro core)
- lr-mame-<driver>-basename (softload with lr-mame retroarch libretro core)
Make sure your rom file is in
roms/<driver_or_category>/<romfile>
.
You can find supported and non-supported software in the hash tables online :
https://github.com/mamedev/mame/tree/master/hash
Or on your image :- /opt/retropie/emulators/mame/hash (mame)
- /home/pi/RetroPie/BIOS/mame/hash (lr-mess)
If your software isn't in the mame hash table you can use, for example :
(used for non-arcade drivers)- mame-<driver>-cart (load cartridge rom-file with mame standalone without sotfloading)
- lr-mess-<driver>-cart (load cartridge rom-file with lr-mess retroarch libretro core without sotfloading)
Your rom file can be placed in
roms/<driver_or_category>/<romfile>
or in a subdirectoryroms/<driver_or_category>/<subdir>/<romfile>
.For some drivers, mostly non-arcade (mess), you can also run different media like :
- cass (cassette)
- flop (floppy)
- cdrm (cd-rom)
etc.
Depending on the mame roms and your computer some drivers are slower than others therefor you can select the runcommands with :
- autoframeskip (skip some display frames automatically to improve the emulation speed)
- frameskip_10 (skip the maximum 10 display frames to improve the emulation speed)
Game specific will make separate driver configs for the individual games loaded in lr-mess or mame.
So you can change controls or video settings for each game individually.
Mostly used by advanced users or when you learn more about how it works.About this project :
This is the link to my project .
(beware: the README can be somewhat outdated from time to time !)
I have created this project while I was busy with the RetroPie-Setup fork from @valerino.
@valerino made modulescripts for systems running with lr-mess.
Some systems were not created by @valerino so i created 2 myself.
While doing that, creating such a script was basically the same everytime.
This is why I made this script to automate this process.
In later versions I also added mame and lr-mame.
It is also possible to create the handhelds used in the handheld tutorial thread of @DTEAM.Above is basically the the short explanation of the script.
This thread is created to share ideas, discuss and improve the script.
This first post is used to summarize the discovery's and add more information about the project.
CREDITS :
This project contains work of :- @folly (https://github.com/FollyMaddy)
( this script / predefined gamelists / testing ) - @DTEAM (https://github.com/DTEAM-1)
( help / handhelds / predefined gamelists / testing ) - @kiro (https://github.com/zayamatias)
( retroscraper-remote ) - @valerino (https://github.com/valerino)
( initial idea using lr-mess in a better way ) - @RussellB
( improving the Valerino run_mess script ) - @dmmarti (https://github.com/dmmarti)
( useful notes ) - @JimmyFromTheBay
- @jamrom2
- @bbilford83
- @Orionsangel (Realistic-arcade-overlays)
- Matt Huisman (https://github.com/matthuisman)
( gdrivedl ) - DarthMarino (handheld artwork : design and layout ) mamedev-forum-link / tigerh-link / konamih-link
- hap (handheld artwork : design and layout ) mamedev-forum-link
- Henrik Algestam (handheld artwork : background and case scans )
- Lee Robson (hydef) (handheld artwork : used elements )
Global discoveries / issues / fixes / ideas :
π closed : Discovered by @DTEAM / Fixed by @folly / (game roms directory is not changed in this fix !) :
Amiga CD32 system name in mame commandlines are not correct. 96
The problem should be solved now foramiga
andother systems
. [97](/forum/post/254869π closed : Discovered by @folly / Fixed by @folly :
In the script generator I used the path/home/pi
many times.
But if you use RetroPie with a different user this will conflict.
So I converted/home/pi/
into$HOME/
.π closed : Tested by @DTEAM / Fixed by @folly / Fix tested by @DTEAM ( it should work with a good mess game rom set ):
(I hope this is a good solution and that there are no conflicts )
Cheats forlr-mess
in MAME UI (with hash files) work with mame_cheats_enable = "enabled" incustom-core-options.cfg
. 22 etc.
I have updated the script so the `install-<system>-cmd module-script will add mame_cheats_enable = "enabled" in retroarch-core-options.cfg when installing in RetroPie-setup.
(09-12-2021) Fix/Restore : downloading the cheats to the correct cheatpath 917π closed : Noted by @DTEAM / Fixed by @folly / tested by @folly, @DTEAM :
Get cheats working forMAME
in MAME UI (with hash files).
Added : 51 52
(09-12-2021) Fix : downloading the cheats to the correct cheatpath 913 917π closed : Discovered by @DTEAM / Fixed by @folly :
(early fix, not perfect as it uses the wrong variable) This command will work for gamate, so added these addEmulator lines in generate-systems-lr-mess_mame-1v8-alpha.sh and renamed the old ones to*-test
:
addEmulator 0 "mame-basename" "$_system" "/opt/retropie/emulators/mame/mame -v -c ${newsystems[$index]} %BASENAME%"
addEmulator 0 "mame-basename-autoframeskip" "$_system" "/opt/retropie/emulators/mame/mame -v -c -autoframeskip ${newsystems[$index]} %BASENAME%"
(22-02-2021) Turned off the *-test commands. 33
(28-05-2021) Removed the test lines in version 2v2
π closed : Discovered by @DTEAM :
(not really solved, some tests were done) C64 and Atari Jaguar not working with mame basename (Hash file). 12
Basically this comes down to the mame-basename commands.
I Think we can only use mame basename lines for systems without media and where we have added the rompath in the commandline.
If other lines work also, like mame-cmd, we could consider to remove the mame-baseline commands. I did some tests. 108
Second test with mame and supracan works 317
(solved, very good improvement) (09-12-20121) Here we found, implemented and tested a universal solution, basically adding multiple rompaths in the mame runcommands 901 - 916
(solved, almost perfect) (12-12-20121) add system-name to the basename runcommand description lines in version 0238.
For example, coleco and adam are both installed as coleco.
With adding the system-name, more systems can benefit from the basename line, when installed under the same RetroPie-name. 920
(only problem is that the games have to be in the root of the systems rompath in order to work)
π open : Discovered by @folly :
(12-12-20121) When using the the last basename options of above fix we still have one issue to solve.
The problem is that the games have to be in the root of the systems rompath in order to work with the basename options.
If using more systems we are not be able to separate the specific files from each other when placing them in different subdirectories.
A solution could be to add %DIRNAME% to the runcommand-line but that solution doesn't exist. 920π closed : Discovered by @folly :
Coleco wants the bios in/home/pi/RetroPie/roms/coleco/coleco.zip
, test again. 60
(12-12-2021) Issue was probably due to not having both rompaths in mame.ini or a combination with a not having a perfect basename loader option.
You can read these posts to understand the issue. 901 - 916
Tested this again with the latest basename loader option in 0237, should be ok nowπ open : Discovered by @folly :
Someone else is also busy with handhelds.
Something to check, I think :
https://retropie.org.uk/forum/topic/30155/lcd-handhelds-mame-0-229-datπ/π wip : by @folly :
Improving recognition of mame descriptions and conversion of mamedev system naming to RetroPie naming, adding :
Amiga CD32 -> cd32
Archimedes -> archimedes
Acorn A -> archimedes
Bally Professional Arcade -> astrocde
BBC A -> archimedes
BBC Micro -> bbcmicro
BBC Master -> bbcmicro
Dragon 64 -> dragon64
Dragon 64 -> dragon64
MSX2 -> msx2
MSX2+ -> msx2+
MSX Turbo-R -> msxturbor
ST (xx) -> atarist
STE (xx) -> atarist
MEGA STE (xx) -> ataristπ closed : Discovered by @DTEAM /
Fixed by @folly/ (UI button does not always work, depending on the system !) :
It would be nice if we could always use the UI-button/TAB when we are in mame / lr-mess.
We can do this by adding -ui_active to the mame / lr-mess lines.
That way it's always on.π wip : Idea by @dmmarti
Create a reference sheet with useful information on tested systems 471The idea of making a frond-end script :
π wip : By @valerino (initial idea) / @folly (ideas/creating script) / @DTEAM (ideas/googledrive_media/testing) :
Create a front-end module-script in RetroPie-setup for our scripts.- (used) Structure/plan 129 --> 136
- (used) Schematic menu structure something like this 207
- (done) Add a menu in RetroPie-setup using the dialog api 120
- (done, using or creating a csv structure for every menu page) Try to use 1 existing array for the menu 125
- (not added, but you can install mame and lr-mess from the menu) Dependencies check
- (ok) Possibility to push the generated scripts in the normal /home/pi/RetroPie-Setup/scriptmodules/ directory ?
- (ok) Push the generated scripts in /home/pi/RetroPie-Setup/ext/RetroPie-Share/scriptmodules/ ?
- (ok) What about refreshing RetroPie-setup ?
We want to install the generated module-script directly after generation ?
We could use retropie_packages.sh for this purpose.136 - (ok) Add download part to download, for example, gamelists, images and videos etc.
- (possible to do manually or with a curl line or using module-script
add-ext-repos.sh
, but noting is included in the script though)
Download the repository in /home/pi/RetroPie-Setup/ext/RetroPie-Share or try to run the scripts online 140 ? - (now that we can be copy the updated generator-script into the frond-end as a function this part is not relevant here anymore)
Try to keep multiple emulator/lr-cores in 1 generated script module 125 - (done) Show correctly sorted systems and descriptions in the sub-menus 290(issue) 470(fix)
- (re-done in version test7 and version test8) Adding a submenu to install our selection of systems, described from here 524 and here link_xls_@dmmarti
- (done in version test8) Adding a submenu to install systems with slotdevices.
In the links you can find some examples 547,548,diff_thread_2 - (done in version 0237) Add help-button in the menu 884
- (wip from version 0238) Add help text for help-menu (shows up when the help-button is pressed) 897 914 -919 923
- (done in version 0240) link_to_commit
- (done) Separate Arcade from the rest 411
- (--) Update mess doc when front-end module-script works 161
Issues regarding front-end :
-
We discovered an issue with mame 430
Temporary fix : the front-end script makes now use of our own database -
We discovered an issue with downloading updated artwork files from google-drive. 588
First fix : the fix is added in Matt's gdrivedl script => issue_19_fix
and the option-m
is added to our script. -> commit
Second fix : the fix is added in Matt's gdrivedl script => issue_22_fix
The ideas of downloading stuff and creating overlays :
π closed : By @DTEAM @folly /
get-cheats-artwork-overlays.sh does this trick for now / tested ok by @folly and @DTEAM:
( Implemented in the front-end module script )
It would be nice if we could find a good way of automatically installing cheats, artwork, retroarch-overlays, gamelists and themes from within the module-scripts or some other way. 37 etc ---->41
It doesn't work properly with above solutions.
Edit : The first solution can be tested again, Matt has altered his code with my suggestions. (tested ok @folly) 63
It seems we have a solution now. 46=>Add cheat file to the get script :
=>Add artwork to the get script :
- @DTEAM shared the link
- @folly added the download part
- @folly added the background extraction part for lr-mess overlays 50
- @DTEAM converted some artwork so the background extraction works 53
- @folly added the config creation part for lr-mess overlays
=>Add gamelists files to the get script :
- @DTEAM shared the link
- @folly added .7z an .zip compatibility in the gamelists 81 (link used script)
- @folly added the download part
=>Add theme files to the get script :
Not done yet.The ideas in generate-systems-lr-mess_mame.sh version 2v1 or earlier :
π closed : By @folly / fixed by @folly in 2v0 (see commit) / tested ok @folly :
Instead of downloading the scripts, running bash scripts online could be a nice solution for the future and/or to add into the menu.
Here it is used with the get-cheats-artwork-overlays.sh script. 66
For the generator script I also tried this, including a solution to add the option string :
Note : it sees the option string but the program has a grep failure, perhaps this can be solved in the future.
Edit : OK after commitcurl https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-scripts-00/backup/generate-systems-lr-mess_mame-2v0-alpha.sh | bash -s kgradius
π closed : By @folly / fixed by @folly in 2v0 (see commit) / tested ok @folly :
When you run the generate-systems-lr-mess_mame-2v0-alpha.sh it will install the @valerino run_mess.sh script if not detected.π closed : By @RussellB / Improve the run_mess.sh script / added by @folly / tested by @folly, @DTEAM and @RussellB :
This allows us to specify custom configs, including bezels and screen locations, etc. per rom.
Here you can read what the run_mess.sh script does 273 .- @RussellB added the idea 246
- @folly tested this idea 250
- @folly added it to github and in the scripts 267
- @folly and @DTEAM tested the generator scripts on general issues
- @RussellB tested it with configs and bezels 280
The ideas in generate-systems-lr-mess_mame.sh version 2v2 or above :
π closed : By @folly / added by @folly in 2v2 / tested by @folly :
Add translation "ai" lines to retroarch.cfg when installing a module-script :- Using hotkey "t" will translate the picture and pause the screen and translate
- Press "t" again to resume the game.
- You might want to make a save-state before translating, if you experience a crash while translating.
π closed : By @folly / added by @folly in 2v2 / tested by @folly :
Add cheats to the correct mame.ini when installing a module-script :- version 2v1 added this in the wrong mame.ini
- version 2v2 should be ok now
π closed : Idea by @JimmyFromTheBay / added by @folly in 2v2 / tested by @folly :
Create game specific lr-mess and mame config files so we have input configs per game thread
This is done by adding game-specific-config runcommand lines in the emulators.cfg when installing a module-script :- if you load a game with the line containing "game-specific" then game-unique sub-directories are made with mame/lr-mess config files
- now it's possible to change the input per game in the mame-UI or lr-mess-UI
- to prevent conflicts between mame and lr-mess each get their own sub-directory , that way they don't use the same config files
- config files for mame are save in /opt/retropie/configs/<RETROPIE-SYSTEM>/mame/<GAME>/<MAME-SYSTEM>.cfg
- config files for lr-mess are save in /opt/retropie/configs/<RETROPIE-SYSTEM>/lr-mess/<GAME>/<MAME-SYSTEM>.cfg
π closed : By @folly / added by @folly in 2v2 / tested by @folly :
Because more starter lines are being added in the emulators.cfg's it can get bit of a mess.
Therefor it would be nice if the starter lines in the emulators.cfg's could be sorted.
Sorting the content of an emulators.cfg should be done after new lines have been added.
The generator script will add the sorting part in the generated module-scripts.
When these module-scripts are installed, sorting of the specific emulators.cfg will then take place. 332The ideas in generate-systems-lr-mess_mame.sh version 2v3 or above :
π closed : By @folly / added by @folly in 2v3 / tested by @folly :
Add the possibility to install systems with slotdevices and manual detected slotdevice configurations.
In the links you can find some examples of systems 547 548 diff_thread_2
If you want to install similar systems with this script then you have to make your own command.
The structure is as follows :
$1=system $2=RPsystemName $3=ExtraPredefinedDevice(s) $4=mediadescription $5=media $6=extension(s)
$3 and $6 can take multiple options seperated by a *
Look for example lines in generate-desired-systems.sh .π closed : By @folly / added by @folly in 2v3 / tested by @folly :
Prevent creating the same cmd module-scripts every time.
If a system has more media then it has more values of the same system in the array.
That is why it normally would create more cmd module-scripts.
To prevent this from happening, we have to use an if function to be sure it is only generated and installed once per system.
The if function will check if the last created system is not equal to the next system in the array.
It will speed up increasingly, now that it doesn't do the same multiple times.
*installing only happens from within the front-end module-script
link_to_commit_=>_lines_591-597π closed : (low priority) :** By @folly :
The help in the created module-scripts are automatically created and not always correct.
It would be nice if we could add a database file that can be read during generating.
So when good information is available it could use that instead of the automatically created help.
Edit :
Perhaps this mame command can help to improve the help sections :
/opt/retropie/emulators/mame/mame -listroms <system>
Solution:
Most people, who are using this, know which bios files they have to use.
Therefor I didn't add more info to the help but I removed specific bios information from the help in 2v3.
This way no incorrect information is given anymore.
To get solutions, users can always check the/dev/runcommand.log
if something isn't working.β
closed (low priority) : By @DTEAM / @folly :
(Closed because of too much effort versus gain, I am quite happy how it works in 2v3)
Join all media/cmd command lines of 1 system into 1 generated script 101 102 107π open : By @folly :
Improving the naming of the runcommand-lines to a more understandable standard.π closed : By @hhtien1408 / @folly :
Add support for lr-mame 327 --> 329
( Has been added )Good to know :
By @folly :
Because mame is also added as emulator and because mame is using a different BIOS directory, $HOME/RetroPie/BIOS/mame ,
the lr-mess command is changed to use the same BIOS directory.By @folly :
lr-mess doesn't load roms if mame artwork is present in :
/home/pi/RetroPie/BIOS/mame/artwork
By @folly / @DTEAM :
When there are multiple config/ini which one is used ? :- mame.ini --> opt/retropie/configs/mame/mame.ini 364
By @folly :
Here we can find autoboot lines :
https://forums.launchbox-app.com/topic/54987-autoboot-command-script-for-mame-swl-computer-systems/
More load commands for a few systems :
http://www.ankman.de/load_cassette_tape_8bit_computers.htmlBy @folly :
Create mame artwork without tearing lines 1963MAME links :
- whats new in mame
- commandline options
- default keys
- cheats (mamecheat)
- mame binaries (my gdrive)
- lr-mame binaries (my drive)
- lr-mess binaries (my drive)
- mame binaries (stickfreaks) and how to install manually
Other topics here and on other websites :
Electron : load a predefined bios with plus3 slotdevice -> link
MSX2 : basename load problem -> link
90 degrees orientated games -> link
Atari Portfolio -> link
Cashflow-126 coin acceptor to RPI gpio pins guide -> link
Syncing button leds with gameplay -> link -
-
It took me quite some time but it seems I have a working generator script.
I tried to improve the file names and the names given to the commands.
I also added quite some explaining in the script on how the script works.
I still have to look out for some mistakes and I hope it still works on a fresh install.What it should do now is :
- create module-scripts that work with an original RetroPie-setup (for lr-mess only the run_mess.sh from valerino is needed)
- add all mame commands
- add the rompaths in the commandlines (for now it was too difficult to add them in mame.ini)
- use this BIOS directory for both lr-mess and mame : /home/pi/RetroPie/BIOS/mame
- fix description in generated cmd module-script
- saving generated files directly in RetroPie-setup
This is the script so feel free to experiment :
https://github.com/FollyMaddy/RetroPie-Share/blob/main/00-scripts-00/generate-systems-lr-mess_mame-1v8-alpha.sh -
@dteam said in Tutorial: Handheld and Plug & Play systems with MAME:
@folly said in Tutorial: Handheld and Plug & Play systems with MAME:
EDIT :
There still seems to be an issue with artwork.
lr-mess doesn't load roms if mame artwork is present in :
/home/pi/RetroPie/BIOS/mame/artwork
Both emulators seem to share the same directory structure.Normally, games run and lr-Mess loads Artworks if you are able to go in the MAME UI menu with lr-mame and select Artwork. For some reason, I'm able to go in MAME UI when I press (select and Y) and in Retroarch UI with (select and X). With Lr-mess, you have access to Retroarch artwork and mess artwork. Maybe the problem is there?
I'm gonna try generate-systems-lr-mess_mame-1v8-alpha.sh tomorrow. What do you prefer that I test. Handheld games above, lr-Mess systems like Vectrex, NES, Artworks?
Yes, it would be nice if you could test handhelds with mame and artwork.
Can you then try if the handheld games also run with lr-mess ?Also testing some lr-mess systems using media would be great.
As you said vextrex and nes will do for now.I like to hear what you think of the file/module naming and the commands that are being added in the emulators.cfg.
Perhaps we can improve it somehow if we have better ideas.I added the version in the desired script and above systems are uncommented.
So if you run the desired script it will generate those directly.The goal is to get it running with an original RetroPie-setup and that it is backwards compatible with the Valerino fork. (edit)
Can you try with the original setup ?
With the next command you only download the valerinorun_mess.sh
in the correct place :wget -nv -O /home/pi/RetroPie-Setup/scriptmodules/run_mess.sh https://raw.githubusercontent.com/valerino/RetroPie-Setup/master/scriptmodules/run_mess.sh
run_mess.sh
is only used if running games with lr-mess that use the -<media> option. -
@folly
To do that, I'm gonna start from a fresh build. -
@dteam said in Development of module-script generator for lr-mess and mame standalone:
@folly
To do that, I'm gonna start from a fresh build.I will do the same.
I just did some fixes (16-02-2021 17:00) :
- fix description in generated cmd module-script
- saving generated files directly in RetroPie-setup
- it doesn't matter where you run it from
-
This is what I have done so far :
- used updated fresh raspberry pi os buster on rpi-4
- installed original RetroPie-setup
- version 4.7.8
- installed the valerino run_mess.sh script
- used the generate-desired-systems.sh to generate the modulescripts directly in the RetroPie-setup
- generate-systems-lr-mess_mame-1v8-alpha.sh is used in the desired script
- installed all scripts in the RetroPie-setup
- tested 2
all_in1
games they worked with bothlr-mess-cmd
andmame-cmd
- tested 1
konamih
game and it worked with bothlr-mess-cmd
andmame-cmd-autoframeskipping
- the standard mame directory's for artwork, cheat, etc. are in :
/home/pi/RetroPie/roms/mame
, so I used this artwork directory and placed the kgradius.zip (artwork file) in/home/pi/RetroPie/roms/mame/artwork
- I used my script generate-overlay-configs.sh to generate overlay config files and placed the background.png as kgradius.png in
/home/pi/RetroPie/overlays/konamih/
- I could switch between mame+artwork and lr-mess+overlay with no problem.
- the standard mame directory's for artwork, cheat, etc. are in :
mame (+artwork+) vs lr-mess (+fullscreen+)
(a while ago we tested artwork with lr-mess, lr-mess becomes really slow with artwork, autoframeskipping seems to work but the effect is not optimal) (adding autoframeskipping in the lr-mess command seems to be not working)(every emulator has it's own quality)- copied the mame/mess BIOS files in
/home/pi/RetroPie/BIOS/mame
- tested a
nes
game and it worked with bothlr-mess-system-nes-cart
andmame-system-nes-cart
(used no artwork for mame)
mame vs lr-mess (lr-mess is sharper)
- tested a
vectrex
game and tested if the overlay would work with lr-mess just like it does withlr-vecx
using mame hash naming for the game spike worked withlr-mess-cmd
and overlay.lr-mess-system-vectrex-cart
worked but without overlay.lr-mess-system-vectrex-cart
runs trough the valerino run_mess.sh that is why I think the overlay is not added !lr-mess-system-vectrex-cart
works but I did not test with artwork/overlay, but I think this can work !
lr-vecx vs lr-mess-cmd vs lr-mess-system-vectrex-cart
(lr-vecx looks great and has bright vector lines but speech synthesizer doesn't work yet)
(speech synthesizer works with lr-mess and display is ok but vector lines flicker a bit)
-
@folly
I'm setting up a new SD card on a old Pi3 b+(not that old !!). I'll do tests on a Pi3. -
@dteam
In the new 4.7.8, they install Lr-mess for all systems by default if you install lr-mess. It's the setup for Hash files. Am I right? -
@dteam said in Development of module-script generator for lr-mess and mame standalone:
@dteam
In the new 4.7.8, they install Lr-mess for all systems by default if you install lr-mess. It's the setup for Hash files. Am I right?I checked some logs, the hash files are installed with mame and not with lr-mess.
But I think lr-mess uses the hash files when mame is installed.In the install log of lr-mess I found this error :
cp: cannot stat '/home/pi/RetroPie-Setup/tmp/build/lr-mess/hash': No such file or directory
Here it tries to copy the hash files but there are no files to copy.I checked the module-script lr-mess.
It will only add for these systems (adding a similar command just like the lr-mess-cmd) :
nes gb coleco arcadia crvision -
@folly
I agree, I saw the same thing. It's for some systems only. It's a step forward ! -
@folly
This is what I gonna try todaybash $version vectrex
bash $version nes
bash $version coleco
bash $version jaguar
bash $version gamate
bash $version cdimono1
bash $version fmtmarty
bash $version scv
bash $versionc64_cartc64bash $version ablmini # creates cmd script for all_in1 # bootable
bash $version alnattck # creates cmd script for classich # bootable
bash $version gnw_ball # creates cmd script for gameandwatch # bootable
bash $version jak_batm # creates cmd script for jakks # bootable
bash $version kgradius # creates cmd script for konamih # bootable
bash $version taddams # creates cmd script for tigerh # bootable
bash $version rzbatfor # creates cmd script for tigerrz # bootablebash $version hbf700p # bootable # HB-F700P / Sony (MSX2)
-
@folly said in Development of module-script generator for lr-mess and mame standalone:
I used my script generate-overlay-configs.sh to generate overlay config files and placed the background.png as kgradius.png in /home/pi/RetroPie/overlays/konamih/
Have you created a subfolder per games? Did you unzip the mame artwork file to extract the backgroud? For me, the easiest way to manage Artwork is with MAME UI (Select+Y), but It's great to have both options, especialy with your overlay configs generator. Good way to convert MAME artworks to retroarch.
Every systems working fine excepted C64. For system like FM Marty, you have 15 choices. It's realy nice to see all that.
The MAME Basename option never worked for me as it currently is.
It works if I replace (ex.: gamate) :
mame-basename = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/roms/gamate -v -c %BASENAME%"
By
mame-basename = "/opt/retropie/emulators/mame/mame -v -c gamate %BASENAME%"
The hash file folder for the lr-mess should be the same as the one for MAME, but I don't know if you can do that.
/opt/retropie/emulators/mame/hash
It's because MAME generates it automatically during installation and updates. I am aware that if the user is only using lr-mess then there might be some issues but it avoids file duplication and the Hash files will be always updated.
Some MAME Basenames will never worked (like Jaguar), because we are using the names from Retropie (atarijaguar) , but I think It's a good choice to keep Retropie naming .... nothing is perfect!
Great job !!
-
@dteam said in Development of module-script generator for lr-mess and mame standalone:
@folly said in Development of module-script generator for lr-mess and mame standalone:
I used my script generate-overlay-configs.sh to generate overlay config files and placed the background.png as kgradius.png in /home/pi/RetroPie/overlays/konamih/
Have you created a subfolder per games?
The script creates the overlays directory and subfolders in ovelays directory (konamih, tigerh, etc).
There are no subfolders per game created in, for example, directory konamih.Did you unzip the mame artwork file to extract the backgroud?
Yes I did, this background is then renamed and used as retroarch overlay with lr-mess.
For MAME standalone I left the artwork zipped in/home/pi/RetroPie/roms/mame/artwork/<artwork>.zip
.For me, the easiest way to manage Artwork is with MAME UI (Select+Y)
What do you manage ?, In this way artwork is automatically loaded with MAME standalone.
but It's great to have both options, especialy with your overlay configs generator. Good way to convert MAME artworks to retroarch.
Indeed, I think so too, but it can have some improvement.
And it would be nice if the picture were automatically installed too.
I have to think about that.Every systems working fine excepted C64. For system like FM Marty, you have 15 choices. It's realy nice to see all that.
The MAME Basename option never worked for me as it currently is.
It works if I replace (ex.: gamate) :
mame-basename = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/roms/gamate -v -c %BASENAME%"
By
mame-basename = "/opt/retropie/emulators/mame/mame -v -c gamate %BASENAME%"
We can try to change that to improve, agree ?
The hash file folder for the lr-mess should be the same as the one for MAME, but I don't know if you can do that.
/opt/retropie/emulators/mame/hash
It's because MAME generates it automatically during installation and updates. I am aware that if the user is only using lr-mess then there might be some issues but it avoids file duplication and the Hash files will be always updated.
I am not sure yet how the hash tables are used by lr-mess.
On my old install there was a mess.ini somewhere.
On my new install I couldn't find one.
So it will have to wait until we discover how this works.Some MAME Basenames will never worked (like Jaguar), because we are using the names from Retropie (atarijaguar) , but I think It's a good choice to keep Retropie naming .... nothing is perfect!
Can you try adding a subdirectory jaguar inside atarijaguar like this :
/home/pi/RetroPie/roms/atarijaguar/ jaguarGreat job !!
Thanks !
BTW. Did you try cheats ?
Don't know if it works. -
I'm not able to run lr-mess-basename (doesn't work with coleco and gamate). But with coleco, lr-mess from Retropie works with BIOS in
/home/pi/RetroPie/romsand hash files in /home/pi/RetroPie/BIOS/mame/hash
working
lr-mess = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so --config /opt/retropie/configs/coleco/retroarch.cfg %ROM%"
not working
lr-mess-basename = "/opt/retropie/emulators/retroarch/bin/retroarch --config /opt/retropie/configs/coleco/retroarch.cfg -v -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so %BASENAME%"
For MAME cheat code, you need to run the games with the Hash files and follow the procedure here: (SOLVED) MAME "standalone" Cheats for systems like Coleco, Arcade and more.
Re-edit
In Retroarch (lr-mess), cheatcodes from retroarch load but not working for now
/opt/retropie/configs/all/retroarch/cheats -
I added your suggestion about :
mame-basename = "/opt/retropie/emulators/mame/mame -v -c gamate %BASENAME%"
I have updated the script so this can/will be generated.
Kept the old commands also in for testing, perhaps they have to be deleted. -
So I understand it works oob in lr-mess if you add the cheats in :
/opt/retropie/configs/all/retroarch/cheats
About the cheats in MAME standalone.
I was aware of the thread and that it can work.
But does it work out of the box with my module-script or do we still have to add something in the mame.ini ? -
@folly
Not for now, cheats from retroarch load but not working for now. I'm gonna do some tests. For your script with MAME, I have to do some test for cheatcodes before. -
For the
lr-mess-basename
command.
I don't have an idea about this yet.
Future work I presume. -
@folly said in Development of module-script generator for lr-mess and mame standalone:
By @DTEAM, C64 and Atari Jaguar not working ( https://retropie.org.uk/forum/topic/29682/development-of-module-script-generator-for-lr-mess-and-mame-standalone/12 )
Only for basename (Hash file)
-
@folly said in Development of module-script generator for lr-mess and mame standalone:
Every systems working fine excepted C64. For system like FM Marty, you have 15 choices. It's realy nice to see all that.
The MAME Basename option never worked for me as it currently is.
It works if I replace (ex.: gamate) :
mame-basename = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/roms/gamate -v -c %BASENAME%"By
mame-basename = "/opt/retropie/emulators/mame/mame -v -c gamate %BASENAME%"We can try to change that to improve, agree ?
yes
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.