RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Development of module-script generator for lr-mess, lr-mame and mame standalone

    Scheduled Pinned Locked Moved Ideas and Development
    developmentlr-messmamelr-mamescripts
    2.2k Posts 36 Posters 6.6m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Folly @DTEAM
      last edited by

      @dteam said in Development of module-script generator for lr-mess and mame standalone:

      @folly

      On Retropie we go with the rom folder, but on Google Drive, can I keep the same structure/folder or I change also that?

      The structure of the gamelists on google-drive can stay the same.
      Only changing the destination path in our script will do the trick.
      If I do the same with the media then this will not work.
      I will have a second look, if I can do it with the original structure.
      I'll be back with the results.

      1 Reply Last reply Reply Quote 0
      • F
        Folly @DTEAM
        last edited by Folly

        @dteam

        I had a second look.

        For the game-lists, I have no issues with changing the path to the rom directory.
        If I do this with the downloaded_images, it puts all .png files inside all the systems directory's.
        I don't want to move those files after downloading, so we should change the google-drive folder structure.
        Moving the files would also conflict with the lr-mess atwork_overlay .png's that can already be in the same directory.

        I think we have to bind both folders on google-drive,
        just like we want in our rom directory adding the gamelist.xml and media folder in all system directory's.
        Then we can simply use 1 download line in the front-end script.
        And if all goes well everything goes to the rom directory in one go.
        So we can do a test here.
        Can you add the media of konamih into the gamelist folder ?
        So you will have a media directory containing the .png's inside this link :
        https://drive.google.com/drive/folders/1-HxU0y61KE3d30RUXBki0vwP2tVQh6uo

        If you put it there, I will run the script and see if all goes well.
        Good idea ?

        Edit :
        I realized that we can also make the directory structure like this (taking konamih as example) :
        -roms
        __-konamih (containing the gamelist)
        ____-media
        _______-emulationstation (containing the theme png's)
        _______-overlays_lr-mess (containing the overlay png's)

        That way we are far more flexible for the future.
        Adding things later on and just have 1 media folder inside the rom directory.
        Good idea ?

        DTEAMD 1 Reply Last reply Reply Quote 0
        • DTEAMD
          DTEAM @Folly
          last edited by DTEAM

          @folly said in Development of module-script generator for lr-mess and mame standalone:

          Can you add the media of konamih into the gamelist folder ?

          Yes

          Good idea ?

          Yes, good idea. I'll do that

          <?xml version="1.0"?>
          <gameList>
          	<game>
          		<path>./bittboy.7z</path>
          		<name>BittBoy Mini FC 300 in 1</name>
          		<desc>nes_vt369_vtunknown.cpp</desc>
          		<image>./media/emulationstation/bittboy.png</image>
          		<marquee />
          		<video />
          		<thumbnail />
          		<rating>0.8</rating>
          		<releasedate>20170101T000000</releasedate>
          		<developer>BittBoy</developer>
          		<publisher>BittBoy</publisher>
          		<genre>All in one Handheld console</genre>
          		<players>1</players>
          	</game>
          
          DTEAMD 1 Reply Last reply Reply Quote 1
          • DTEAMD
            DTEAM @DTEAM
            last edited by DTEAM

            @folly

            I did It for konamih and all_in1

            You can test It now with those two. I'll try to find time to do the others.

            F 1 Reply Last reply Reply Quote 0
            • F
              Folly @DTEAM
              last edited by

              @dteam said in Development of module-script generator for lr-mess and mame standalone:

              @folly

              I did It for konamih and all_in1

              You can test It now with those two. I'll try to find time to do the others.

              I did a test, but I saw all files are in the same directory.
              Is it possible to make the sub-directory's inside all_in1 and konamih so it will look like this ? :
              gamelist.xml
              media/emulationstation/*.png

              DTEAMD 1 Reply Last reply Reply Quote 0
              • DTEAMD
                DTEAM @Folly
                last edited by

                @folly
                Done. Told me if It's like you wanted.

                F 2 Replies Last reply Reply Quote 0
                • F
                  Folly @DTEAM
                  last edited by Folly

                  @dteam

                  Perfect.
                  All files are downloaded in the correct path.
                  Looks all good !

                  Can you add .zip also in the gamelist of all_in1, it seems to be missing.
                  The gamelist of konamih didn't work because of the old entry's, but I think you know that it still has to be edited.

                  1 Reply Last reply Reply Quote 0
                  • F
                    Folly @DTEAM
                    last edited by Folly

                    @dteam

                    To ease your workload I have changed all gamelists in about 15 minutes.
                    I hope/think they are all good.
                    Perhaps you can do some checks too.
                    I have put them on github.
                    You can check the diffs here :
                    https://github.com/FollyMaddy/RetroPie-Share/commit/a542b7399c66b1d9a9e8e1dc6b77048d5b9efb2b

                    I added the new location in the scripts :
                    https://github.com/FollyMaddy/RetroPie-Share/commit/bff28b1d898dd254a27c11478b5c6bef99b7979e

                    1 Reply Last reply Reply Quote 1
                    • F
                      Folly
                      last edited by Folly

                      (Moved this reply from an other thread, seems to be more relevant to this thread)

                      @hhtien1408 said in Request for artists working on themes - needs for (lr-mess/MAME) additions:

                      @folly @DTEAM
                      Hi, could you share me how to use lr-mess/MAME Standalone in retropie step by step for

                      • Supracan
                      • NES-Datach

                      How to build runcommand in emulator.cfg with software list enable? (How to enable?)

                      I knew how to add system but cannot make it work like official mame 0.231 (in mame supracan -cart <rom>

                      Noted that I am using lastest lr-mame/mess (default) built from source on Ubuntu 21.04 Gnome40.

                      Hope to here from you asap!
                      Thanks for million times!

                      Hi,

                      I will try to answer your question.

                      I dug into this a bit.
                      Also we have sometimes trouble with using the software lists.
                      Basically "using the software list" and how this has to be structured is not always clear.
                      We have actually 3 different types of computers in mame:

                      • bios system games
                      • arcade systems with media
                      • regular computer systems with media

                      All these systems do not always work the same way, I think, so one solution for one system isn't always one for the other.
                      That's why, I think, it's sometimes so hard to make a solution for every system.
                      That is why we run it most of the times without using the software list.
                      In post 1 of this thread this issue is still open, seems the same problem :
                      👉 open : Discovered by @DTEAM :
                      C64 and Atari Jaguar not working with basename
                      ........

                      That is why I did have a look, because I also want to have lines working in my generated scripts that will work for more systems "using the software list".

                      For "supracan" you can use my script to generate the module scripts in the ext directory :

                      curl "https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-scripts-00/generate-systems-lr-mess_mame-2v1-ext.sh" | bash -s supracan
                      
                      

                      Then install them from the experimental packages (scroll to the end, and you will find them(the "cmd" and the "-cart" one).

                      This is the line for using the softwarelist with mame that I created and tested :

                      mame-basename = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/roms/supracan -v -c supracan %BASENAME%"
                      
                      

                      The one installed by the generated module-script is different.

                      For now you can change it manually in :
                      /opt/retropie/configs/supracan/emulators.cfg

                      Try this first.

                      For lr-mess I don't have a solution yet.
                      With the "-cart" line it boots to the info but then stops working.
                      Not on my priority list now, but if I have some time I will look at it.

                      BTW.
                      Do you have a system name for : NES-Datach
                      I can't find it.

                      H 2 Replies Last reply Reply Quote 0
                      • H
                        hhtien1408 @Folly
                        last edited by hhtien1408

                        @folly I will try your solution for MAME standalone.

                        With Super Acan, no need to put bios (no bios) into bios/MAME?
                        Where to put ROM? Bios? Hash xmls?
                        Does your script setup all?

                        I asked more for confirmation:

                        1. Should I build MAME from source (Retropie-setup script)? Or your script do this step?
                        2. Run your script
                        3. Put roms into folder (but which folder)
                        4. Do you need to create config mame.ini?
                        5. Without libretro, could I use overlays and shaders?
                          Or use fallback artwork like I use in mame 0.231?

                        About NES Datach info, if I would to play Datach Dragon ball, I will load Datach rom in NES system and use Datach to insert game Dragon Ball
                        Command line in MAME to run on my laptop with mame 0.231 seperately

                        ./mame64 nes -cart datach -cart2 /Users/H2T/Games/mame/roms/nes_datach/dtc_dbz.zip
                        

                        Please check link below for Datach
                        Datach - Scan bar code for MESS
                        Could you generate script for nes-datach? Just a subsystem nes-datach.

                        Both supracan and nes_datach run well on official MAME

                        Hope to hear from you asap.

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          Folly @hhtien1408
                          last edited by Folly

                          @hhtien1408 It's not allowed to share rom links!
                          You should remove them, asap !

                          @hhtien1408 said in Development of module-script generator for lr-mess and mame standalone:

                          @folly I will try your solution for MAME standalone.

                          With Super Acan, no need to put bios (no bios) into bios/MAME?
                          You can check with :

                          /opt/retropie/emulators/mame/mame -listroms supracan
                          
                          

                          It will output : No ROMs required for driver "supracan".

                          Where to put ROM? Bios?

                          Game roms for <system> :
                          /home/pi/RetroPie/roms/<system> (<system> is here supracan)
                          BIOS roms :
                          If needed, BIOS files, depending on what has to be used, go to :
                          /home/pi/RetroPie/BIOS/mame/<system>.zip

                          Hash xmls?:
                          Hash tables are in :
                          /opt/retropie/emulators/mame/hash/<system>.xml

                          Does your script setup all?

                          Indeed, the generated module-script does.
                          Read the first post of this thread and learn how it's done !

                          I asked more for confirmation:

                          1. Should I Build MAME from source (Retropie-setup script)? Or your script do this step?

                          You have to install from source in the RetroPie-Setup, if you are on an x86/x86-64 computer.
                          edit : If you are able to use the binary then I recommend you use that.
                          You also need to install lr-mess to be able to install the module-scripts.

                          The module-scripts that are generated with my "curl line" does will only do the configurations when installed in the RetroPie-Setup.

                          1. Run your script

                          Go into the terminal and paste the "curl line" into the command prompt.
                          This will generate module-scripts that have to be installed in the RetroPie-Setup.

                          • install-supracan-cmd
                          • install-supracan-from-mamedev-system-supracan-cart
                          1. Put roms into folder (but which folder)

                          /home/pi/RetroPie/roms/supracan/<game>.zip

                          1. Do you need to create config mame.ini?

                          Not needed.

                          1. Without libretro, could I use overlays and shaders?

                          Not my expertise but, you can use Artwork, no shaders, I think.

                          Or use fallback artwork like I use in mame 0.231?

                          Could work I think.

                          About NES Datach info, if I would to play Datach Dragon ball, I will load Datach rom in NES system and use Datach to insert game Dragon Ball

                          Will look at this later

                          1 Reply Last reply Reply Quote 0
                          • H
                            hhtien1408 @Folly
                            last edited by hhtien1408

                            @folly
                            You mean your method for lr-mame or MAME standalone? Or work for both?

                            I would like to ask about this (I changed the path for myself to suitable for Retropie on Ubuntu)

                            mame-basename = "/opt/retropie/emulators/mame/mame -rompath /home/RetroPie/roms/supracan -v -c supracan %BASENAME%"
                            

                            It means I will put this line in my /opt/retropie/configs/supracan/emulators.cfg
                            exactly as the same code above and make it default emulator? Right?

                            Should I need change a little bit in script before executing for my suitable locations (remove "/pi/)? My current default location is "/home/RetroPie" on Ubuntu.

                            For normal neogeo roms, Running with lr-mame (mamearcade-libretro.so show the “initializing” and freeze. Wrong bios or romset? Do you face this error yet?

                            F 1 Reply Last reply Reply Quote 0
                            • F
                              Folly @hhtien1408
                              last edited by Folly

                              @hhtien1408 said in Development of module-script generator for lr-mess and mame standalone:

                              @folly
                              You mean your method for lr-mame or MAME standalone? Or work for both?

                              For MAME standalone.
                              In this thread we only use mame standalone and lr-mess.
                              lr-mame is not implemented !

                              I would like to ask about this (I changed the path for myself to suitable for Retropie on Ubuntu)

                              mame-basename = "/opt/retropie/emulators/mame/mame -rompath /home/RetroPie/roms/supracan -v -c supracan %BASENAME%"
                              

                              Indeed, you should do that because you are an other user !

                              It means I will put this line in my /opt/retropie/configs/supracan/emulators.cfg
                              exactly as the same code above and make it default emulator? Right?

                              Yes, indeed.
                              For making it the default you can also press a key when the RetroPie boot-screen comes, press a key, and select your default runcommand line.

                              Should I need change a little bit in script before executing for my suitable locations (remove "/pi/)? My current default location is "/home/RetroPie" on Ubuntu.

                              No, not needed.
                              The module-script will find your user name and use that.
                              Check those other lines in emulators.cfg, it should already have user RetroPie not pi.

                              For normal neogeo roms, Running with lr-mame (mamearcade-libretro.so show the “initializing” and freeze. Wrong bios or romset? Do you face this error yet?

                              You have to press a key when the RetroPie boot-screen comes, then select launch with verbose.
                              For the mame standalone and lr-mess lines created by my module-scripts you don't need to do this, our lines have always verbose on.
                              Then run your rom.
                              After the failed boot, initializing, check your runcommand log in :
                              /dev/shm/runcommand.log
                              This will tell you where things go wrong, if you understand it.
                              With a Bios rom failure you will find something like :
                              tried in this and that

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                hhtien1408 @Folly
                                last edited by hhtien1408

                                @folly I manage to run neogeo under lr-mame by putting bios in neogeo rom folder also (not in /BIOS/mame.).
                                But how to make command line to run supracan run? (enable softlist, boot from CLI, cart, automatic type )
                                When I check with lr-mame for supracan, it shows error:

                                '/opt/retropie/libretrocores/lr-mame/mamearcade_libretro.so' -listroms supracan
                                
                                Segmentation fault (core dumped)
                                
                                

                                If I try to run supracan from terminal with command verbose to check error

                                /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame/mamearcade_libretro.so --config /opt/retropie/configs/supracan/retroarch.cfg '/home/h2t/Downloads/supracan.zip' --verbose
                                
                                [INFO] [MIDI]: Initializing ...
                                [INFO] [MIDI]: Input disabled.
                                [INFO] [MIDI]: Output disabled.
                                [INFO] [MIDI]: Initialized "alsa" driver.
                                [INFO] Loading history file: [/opt/retropie/configs/supracan/content_history.lpl].
                                [INFO] Loading history file: [/opt/retropie/configs/supracan/content_music_history.lpl].
                                [INFO] Loading history file: [/opt/retropie/configs/supracan/content_video_history.lpl].
                                [INFO] Loading history file: [/opt/retropie/configs/supracan/content_image_history.lpl].
                                [INFO] Loading favorites file: [/opt/retropie/configs/supracan/content_favorites.lpl].
                                [INFO] [GL]: VSync => on
                                [INFO] [GLX]: glXSwapInterval(1)
                                [libretro INFO] Starting game from command line:/home/h2t/Downloads/supracan.zip
                                [libretro INFO] ARGUV[0]=/home/h2t/Downloads/supracan.zip
                                [libretro WARN] Driver supracan not found -1
                                [libretro WARN] Game not found: supracan
                                [libretro WARN] Driver Downloads not found -1
                                [libretro ERROR] Driver not found: Downloads
                                [libretro INFO] RES:-2
                                

                                It seemed lr-mame does not recognize supracan softlist even softlist is enabled. Weird.

                                P.S. P.S. Why I sticked with lr-mame because I cannot builr lr-mess and MAME standalone (qt5 error) successfully on my Ubuntu.
                                I run lr-mame with software list perfectly on Retrobat on Windows 10, but no luck with Retropie.

                                H 1 Reply Last reply Reply Quote 0
                                • H
                                  hhtien1408 @hhtien1408
                                  last edited by hhtien1408

                                  [deleted]

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    Folly @hhtien1408
                                    last edited by Folly

                                    @hhtien1408

                                    We don't want to mix up many things here.
                                    This thread is only for discussions about improving our script and about discussing the issues related to that.
                                    Successfully running supracan with mame standalone or lr-mess is part of this discussion and can be discussed over here.
                                    You should stick with that first !

                                    If you want to discuss lr-mame it's better to make your own thread or look for an lr-mame thread and post your problem over there.
                                    I am happy to help you over there, if I can.
                                    You should look also at the retropie-docs first.

                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      hhtien1408 @Folly
                                      last edited by hhtien1408

                                      [deleted]

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        Folly @hhtien1408
                                        last edited by Folly

                                        @hhtien1408 said in Development of module-script generator for lr-mess and mame standalone:

                                        @folly could you give me binary files for lr-mess and MAME standalone ubuntu? I cannot build from source from rpi-script? Thanks again!

                                        I can't help you with that because I don't have a computer with ubuntu 21.04 running.
                                        If I could, chances are, it won't even work if I shared them.

                                        You have to ask for advice somewhere else in the forum.
                                        If you have found a solution, you can come back here to discuss supracan.

                                        BTW.
                                        Depending on your computer, it can take 24 hours to build both packages !

                                        H 1 Reply Last reply Reply Quote 0
                                        • H
                                          hhtien1408 @Folly
                                          last edited by hhtien1408

                                          @folly I manually got it working with mame-libretro downloaded from buildbot (nightly lastest). Runcommand in emulator.cfg. Thanks for all your support.
                                          My command line in emulators.cfg

                                          supracan= "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame/mame_libretro.so --config /opt/retropie/configs/supracan/retroarch.cfg %ROM%"
                                          default = "supracan"
                                          
                                          F 1 Reply Last reply Reply Quote 0
                                          • F
                                            Folly @hhtien1408
                                            last edited by Folly

                                            @hhtien1408

                                            Great to hear you have found the solution !
                                            I will test your line.
                                            (edit : no luck on trying this oob, using mamearcade_libretro.so on pi4)
                                            Perhaps something to implement for the future if it can be "cracked".

                                            H 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.