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 35 Posters 6.0m 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.
    • B
      bbilford83 @Folly
      last edited by

      @Folly it seems I am full of super-niche questions but I am trying to fully flush out my build with everything possible and hoping you could tell me if something I'm trying to do is possible.

      I don't put on any systems that would require a keyboard to be practically playable, but when I discovered the Amiga CD32 I thought that was perfect as I could use it to (accurately) only play Amiga games that it could play since they were all bound to only use the joystick controller. Well, today I discovered the Commodore64 Games System which appears to be basically the same thing, but I have spent an unreasonable amount of time trying to figure out exactly which games/cartridges it could play, as I understand they were specifically released for the system and not just identical to the regular c64 cartridges. I looked at the software list roms and while I see a bunch of c64-variant systems, I don't see "c64gs" as a software list romset. But when I went to your script and looked at the "Commodore upon system names" subset of system names, there is a c64gs there!

      So my question is: is there some way to identify the romset that should go with c64gs? I'm not asking where to find it, but rather how to figure out what it should have in it, since there isn't a c64gs software list subset as part of mame.

      And while I think it's even more of a stretch, I was also looking into the same thing in the form of the "Zemmix," which I gather was a consolized version of the MSX computer that also controlled without a keyboard. That I can't find any sort of list for though, in the roms or in your script, so I think it might be a lost cause.

      I realize it is particularly weird of me to work so hard to get obscure console versions of really-easy-to-emulate pcs working, but it makes sense to me if it's a consoles-only build.

      Also, @duglor, I suspect @Folly will give you better help than I could but just be aware after all my recent efforts that there really isn't good artwork for all games to make them playable as they should be for the Microvision. You'll see in above exchanges that I created background artwork for each game (with Folly's help) but it's pretty amateurish and for several games it doesn't work really at all. Until someone comes along who is better in Gimp than me I wouldn't really consider the system fully playable without that art.

      duglorD F 5 Replies Last reply Reply Quote 1
      • duglorD
        duglor @bbilford83
        last edited by

        @bbilford83 Ok. Thank you. I can hold off for now on Microvision :D

        1 Reply Last reply Reply Quote 0
        • duglorD
          duglor @Folly
          last edited by

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

          @duglor

          Do you use my latest script now ?

          Yes

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

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

            @DTEAM Can someone walk me through how i get lr-mess-microvision working after an install or do i need lr-mess-2016?

            I would not go for the lr-mess2016 it's old and not supported by my script.
            So you would need to configure everything by yourself with lr-mess2016.

            What @bbilford83 says, pretty much says it all :

            Also, @duglor, I suspect @Folly will give you better help than I could but just be aware after all my recent efforts that there really isn't good artwork for all games to make them playable as they should be for the Microvision. You'll see in above exchanges that I created background artwork for each game (with Folly's help) but it's pretty amateurish and for several games it doesn't work really at all. Until someone comes along who is better in Gimp than me I wouldn't really consider the system fully playable without that art.

            To add something about lr-mess, there are no overlays at all for RetroArch.

            Anyway, there are no instructions on the retropie sites.

            You can install microvsn like any other driver.
            Just search for microvsn in the DEFAULT section and install it.

            What i need to know is if there is a bios file needed?

            Indeed, it's not always obvious if a bios file is needed.
            After installing a driver and placing the game-roms in a roms folder you can try some of the roms.
            If they do not work it's probably because you need a bios file for the driver.
            Most of the time the bios file is just named like the driver.
            Just search for that name in mame-merged rom set to find that bios file.
            If you can't find a solution then check, after trying a game, the /dev/shm/runcommand.log if a bios file is "NOT FOUND" .
            You can also use my script and use the "NOT FOUND" option in the "restricted downloads". (look at the search option)
            Then you will know what file to search for.
            An other manual method to is to see if a driver needs bios files, like this :

            pi@raspberrypi:~ $ /opt/retropie/emulators/mame/mame -listbios microvsn
            No BIOS options for system Microvision (microvsn)
            

            You will see that the driver microvsn doesn't need a bios file.

            A certain dimension for the visual settings?

            I will not explain this as it basically means you should make overlays or artwork.
            That would be the best way.

            how to load and run it?

            Get the microvision.zip file from the mame-sl rom-set and extract them into the microvsn roms folder.
            Then you will be able to run the games from emulationstation.

            duglorD 2 Replies Last reply Reply Quote 1
            • F
              Folly @bbilford83
              last edited by Folly

              @bbilford83

              Interesting questions about amiga32,c64gs and zemmix.
              I will have a look later.

              1 Reply Last reply Reply Quote 2
              • F
                Folly @bbilford83
                last edited by Folly

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

                I don't put on any systems that would require a keyboard to be practically playable, but when I discovered the Amiga CD32 I thought that was perfect as I could use it to (accurately) only play Amiga games that it could play since they were all bound to only use the joystick controller. Well, today I discovered the Commodore64 Games System which appears to be basically the same thing, but I have spent an unreasonable amount of time trying to figure out exactly which games/cartridges it could play, as I understand they were specifically released for the system and not just identical to the regular c64 cartridges. I looked at the software list roms and while I see a bunch of c64-variant systems, I don't see "c64gs" as a software list romset. But when I went to your script and looked at the "Commodore upon system names" subset of system names, there is a c64gs there!

                So my question is: is there some way to identify the romset that should go with c64gs? I'm not asking where to find it, but rather how to figure out what it should have in it, since there isn't a c64gs software list subset as part of mame.

                And while I think it's even more of a stretch, I was also looking into the same thing in the form of the "Zemmix," which I gather was a consolized version of the MSX computer that also controlled without a keyboard. That I can't find any sort of list for though, in the roms or in your script, so I think it might be a lost cause.

                I realize it is particularly weird of me to work so hard to get obscure console versions of really-easy-to-emulate pcs working, but it makes sense to me if it's a consoles-only build.

                I haven't yet looked much at c64gs, though I will assume it will only use some of the c64_cart.
                Mame can output the software list for that system but not sure if it will be 100% correct.
                Did it with this command :

                pi@raspberrypi:~ $ /opt/retropie/emulators/mame/mame -listsoftware c64gs|grep "software name="
                

                For Zemmix it could be the same thing, using :

                pi@raspberrypi:~ $ /opt/retropie/emulators/mame/mame -listsoftware cpg120|grep "software name="
                

                For more info about Zemmix I found these 2 links :

                • https://bootleggames.fandom.com/wiki/Daewoo_Zemmix
                • https://bootleggames.fandom.com/wiki/Zemina

                The Zemmix will of-course play games that weren't made especially for it but these ones should not be in the list I recon.
                Above command will probably list all, not only the ones especially for Zemmix.

                Both hash tables msx1_cart and msx2_cart have info about Korean cartridges.
                I think these are basically the cartridges you are looking for.
                Somehow the xml's have to be filtered so only the Korean ones are in a list.

                The is also a Zemmix-romset-ZUUL romset.
                Looking at the list I have doubts if the list of games is 100% accurate.
                It is also not a mame romset but can be played with the -cart1 runcommands.

                I used the driver cpg120 to install from my script and is installed as "msx2".
                In my script I could try to split them up from msx/msx2 to zemmix/zemmix2.
                Though I am not sure if this is a good thing.

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

                  @bbilford83

                  It looks like I can extract the full gamelist from msx1_cart for Zemmix like this :

                  cat /opt/retropie/emulators/mame/hash/msx1_cart.xml|grep -v "feature name="|grep -B 2 Korea|grep "software name="|cut -d'"' -f2|tr '\n' ' '
                  1942k advenkid aliensk aroidk amtruckk antarctk arkanoidk bankpk blockhol bombmank1 bombmank2 brosadv brosadva bbobblek csok cabbagepk wrldopenk castlek cloderunk1 cloderunk2 choroqk crusaderk cyborgz ddayk ddayka david2k dokidokik ddragon drhello eagle5 exerionk exoidez5k f1spiritk fatetris fatetrisa fatetrisb fantzonek fzonek fpoint fpointa galagak gw126 gw126a gw30 gw64 gw64a gw80 gw80a gw90 gw90a gangrobo gangroboa gangrobob gomokunak gberetk gulkavek gyrodinek heavyboxk highwayk hydlide2k hydlide3k hyperol1k hypersp2k theseusk jpwinklek kinnikumk knightmrk knightm2k knucklej koedoli pingpongk kontennk kungfutk l3w legendk legendka loveplus moaihihok gundamk mpatrolk mopirangk mrchink mrdok msxrugbyk msxsoccrk sokobank sokobankz valisk newbogle newboglea newbogleb ninja2 ninjajajk nnprowrsk pacmank pachicomk pengadvk1 pengadvk2 penguinwk poppaqk rallyxk risedungk salamandk scrameggk seikachok skicommk1 skicommk2 skyjagk stepupk strtmast sbioman1 sbioman1a sbioman4 sboy3 sboy3a sboy1 sboy2 sbw1 suprbubl supercol supgam25 slaydockk takameijk1 takameijk2 tetris tetris2 3dragon titipang turmoilk vigilant warpwarpk wonsiin xanaduk yieark yiear2k chimak zaiderk baduk zoom909k zk
                  

                  And the full gamelist from msx2_cart for Zemmix like this :

                  cat /opt/retropie/emulators/mame/hash/msx2_cart.xml|grep -v "feature name="|grep -B 2 Korea|grep "software name="|cut -d'"' -f2|tr '\n' ' '
                  1942k arknoid2k kingkon2k quarthk srambospk
                  

                  You can just remove tr '\n' ' ' from the commands to display each game on one line.

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

                    @bbilford83

                    Seemed like a good idea to separate c64gs from the c64 install and just install it as c64gs :
                    https://github.com/FollyMaddy/RetroPie-Share/commit/46d5966e9de009bae61faea51ddc99199d8ecd00

                    Created also a separate theme as pull request for @DTEAM :
                    https://github.com/DTEAM-1/cygnus-blue-flames/pull/11

                    1 Reply Last reply Reply Quote 0
                    • B
                      bbilford83
                      last edited by

                      @folly this is all amazing, thank you! I am confused though about 2 things:

                      1. What are you putting the commands into? It looks like command line stuff you'd enter straight into linux but I doubt that's what you're doing here? Sorry, I'm quite an amateur here.

                      2. What I don't really understand about the c64gs is I wouldn't think it would use any of the c64_cart roms, because it seems like the games made for it were not standard c64 cartridges, right? I think the games were modified from the c64 versions to not require the keyboard. Unless somehow the emulator modifies the cartridge roms, I don't really get how that would work.

                      FYI, the Zemmix list you came up with seems right, though I do wonder if there were Korean-released MSX cartridges before/separate from the Zemmix that might be included but not actually work properly (if they required the keyboard). But it is a good start and I could test the games. The Zuul list doesn't match up so probably you are right that something is iffy there.

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

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

                        @folly this is all amazing, thank you! I am confused though about 2 things:

                        1. What are you putting the commands into? It looks like command line stuff you'd enter straight into linux but I doubt that's what you're doing here? Sorry, I'm quite an amateur here.

                        Correct, no doubts, I am putting the commands into the CLI/Terminal of linux.
                        It can also be done on the RetroPie image as it is just linux-lite without desktop environment with using the RetroPie bash scripts on top of it.
                        You can enter the CLI by :

                        • exiting emulationstation with F4
                        • opening a new CLI with ctrl+alt+F2 (or F3 etc) (going back with ctrl+alt+F1)
                        • or connecting with ssh to the raspberry pi

                        I use Debian11 with desktop environment with using the RetroPie bash scripts on top of it.
                        So I open the CLI with ease.

                        1. What I don't really understand about the c64gs is I wouldn't think it would use any of the c64_cart roms, because it seems like the games made for it were not standard c64 cartridges, right? I think the games were modified from the c64 versions to not require the keyboard. Unless somehow the emulator modifies the cartridge roms, I don't really get how that would work.

                        Here are some wiki's :
                        https://en.wikipedia.org/wiki/Commodore_64_Games_System
                        https://videogameconsolelibrary.com/pg90-64gs.htm#page=reviews

                        They explain that the hardware is quite similar.
                        Although the c64gs will only accept a cartridge and has no keyboard.
                        That is why some games had to be converted from cassette, and other conversions had to be done because of the keyboard not being there.
                        It also explains that it was not a popular sale but its creation did help bring Commodore users (particularly in Europe) more cartridge titles to enjoy.
                        So the cartridges are compatible with the regular c64.
                        Seems some games can only be played when using a Cheetah Annihilator joystick with 2 separate buttons.
                        I tested Robocop2 and was not able to jump, perhaps the reason.
                        Amazing, 60.000 not sold !, very curious what the did with them.

                        FYI, the Zemmix list you came up with seems right, though I do wonder if there were Korean-released MSX cartridges before/separate from the Zemmix that might be included but not actually work properly (if they required the keyboard). But it is a good start and I could test the games. The Zuul list doesn't match up so probably you are right that something is iffy there.

                        I think it's a pretty good list.

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          bbilford83 @Folly
                          last edited by

                          @Folly Thanks for all the info! I watched a video where a guy said (though who knows where he got the info) that the ones they didn't sell commodore cannibalized to turn back into normal c64s, and that's why they're so expensive/rarer. I will try out what you suggest - I do use putty for ssh so it should be possible. If I do create a gamelist for either c64gs or Zemmix I will share them to the google drive so others don't have to do the figuring out of which games are appropriate from scratch.

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

                            @bbilford83

                            Aha, great info.

                            I have used lists only for categorising multiple drivers into one catagory, not for sharing parts of some softwarelists.
                            I will think about it how a proper list can be implemented one way or another.
                            Really not sure yet ;-)

                            What do you think, should I separate the zemmix types from the msx ones ?

                            If you manage to do some CLI commands then I would suggest to try some simple things first like ls (the msdos dir equivalent) or cd.
                            Or use echo or cat for starters.
                            After that you can try to "pipe" with | exchanging output from one command to another.
                            Look on the internet, there are many tutorials.

                            B 1 Reply Last reply Reply Quote 0
                            • duglorD
                              duglor @Folly
                              last edited by

                              @Folly Thanks much!!

                              1 Reply Last reply Reply Quote 0
                              • B
                                bbilford83 @Folly
                                last edited by

                                @Folly sorry for the delay in responding. For the Zemmix ones, I think whether it makes sense probably depends on whether the Korean subset actually works if run through that emulator. I was on solo parenting duty this weekend so I haven't had much time to mess around with it but sometime in the next week I will definitely test out both that and the c64gs sets!

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

                                  @bbilford83

                                  No problem.

                                  In the meantime I will have a look at the joystick settings of the c64gs if I can manage to add slot options to add "joybstr".
                                  Because I found that with robocop2 you have to select "c64 joystick" in the game with the default joystick settings of mame.
                                  In order to use the "c64gs joystick", with which you can use 3 buttons,
                                  you have to use the other slot joystick setting in mame but you will only be able to use that after a reset and sadly the setting it's not being saved.

                                  Reminds me when playing oilswell, switching joysticks is also a problem.
                                  Many games start with joy2 instead of joy1 but for some games it's the other way around.
                                  Perhaps the solution is to add 2 joysticks by default so that joysticks can be configured by game with the game-specific runcommands.

                                  Edit 1 :
                                  Able to implement extra options for default driver installs.
                                  However adding 2 joysticks confuses robocop2, 1 could probably do in port 2 but other games still need in port1.
                                  Will look at it tomorrow again.

                                  Edit 2 :
                                  I added stuff in my script version 260.03 / 260.04 so I have the possibility to add options when a default driver is installed.
                                  As first test I added the 3 button joystick on port2 for c64gs.
                                  For robocob2 this will work directly and hope it will for more standard c64gs games.

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

                                    Both versions 260.03 and 260.04 didn't correctly configure mame after a binary install, so skip these versions.

                                    In version 260.05 this problem should be fixed now.

                                    DarksaviorD 1 Reply Last reply Reply Quote 0
                                    • DarksaviorD
                                      Darksavior @Folly
                                      last edited by Darksavior

                                      @Folly lr-mame fails to build on my pi5 using your script. I am overclocking to 2.8Ghz so I'll try again at stock. Edit: I tried with stock settings and building also failed. https://pastebin.com/N6eJEZTS

                                      B F 2 Replies Last reply Reply Quote 0
                                      • B
                                        bbilford83 @Darksavior
                                        last edited by bbilford83

                                        @Folly I am finally giving Zemmix a shot now but so far no luck - I think it is acting like I have no bios but as far as I can tell the system should use standard MSX 2 bios, right?

                                        Edit: I actually installed lr-fmsx to see if that would work and it does (though obviously it's not really playing it "as a Zemmix"). But I think that means probably something is wrong with the install, or at least something wrong with how I installed it? I must have OK bios.

                                        Edit 2: Actually, a lot of games don't work, some not at all (blue screen) and some loading to awful noises or no controls working. I think it is maybe because it is emulating as a regular MSX2? So I think I have to try to get it to work via mess/your script if I want it to work properly :).

                                        Is it maybe that the bios has to be in a zip named something different? I tried all the options I could think of but nothing fixed it.

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

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

                                          @Folly lr-mame fails to build on my pi5 using your script. I am overclocking to 2.8Ghz so I'll try again at stock. Edit: I tried with stock settings and building also failed. https://pastebin.com/N6eJEZTS

                                          My script is not the problem it links to the stock lr-mame module-script.

                                          Looking at your log I would expect that the swap space is set too low in the module-script.
                                          How much memory does your pi5 have, 4GB ?
                                          Try to increase the swap space, in the lr-mame module-script, from 4096 to 8192.
                                          Or if you really want to be safe to 12288.
                                          Make sure you have much more space free on your SD or HD.

                                          If above doesn't work then it's best to open up a new topic for it.

                                          Edit :
                                          I am testing on my Apple M1 with VMware and Bookworm installed, using :

                                          • VM with 4 cpu cores and 4096M ram using 4096 swap : failed
                                          • VM with 4 cpu cores and 4096M ram using 8192 swap : failed
                                          • VM with 4 cpu cores and 4096M ram using 12288 swap : my vm doesn't have enough space for this.
                                          • VM with 3 cpu cores and 4096M ram using 8192 swap : ok

                                          So you have 2 options :

                                          • try to compile with 12288 swap and make sure you have enough space on your SD
                                          • try to compile with 8192 swap and edit make to make -j3

                                          I will make my binary available here :

                                          • lr-mame binaries (my drive)

                                          If you like to test and use my binary then do the following.
                                          Extract the content and copy it to the libretrocores directory as super user / root.
                                          Then use the retropie_packages script to install dependancies and configure lr-mame like this :

                                          cd RetroPie-Setup
                                          sudo ./retropie_packages.sh lr-mame depends
                                          sudo ./retropie_packages.sh lr-mame configure
                                          
                                          DarksaviorD 1 Reply Last reply Reply Quote 2
                                          • F
                                            Folly @bbilford83
                                            last edited by Folly

                                            @bbilford83

                                            You probably installed the Zemmix cpg120, right.
                                            You need the cpg120.zip bios file.
                                            Read this post for all drivers it's the same procedure.

                                            B 1 Reply Last reply Reply Quote 1
                                            • 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.