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.5m 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 Folly

      @dteam

      To scroll faster you can use the home,page-up, page down and end keys too.

      In the future it should become more easy when we filter it.
      And we could also add a choice menu of systems that are already tested and working like we did with the desired-script.

      But for now I an focusing on the basic structure things before I add more.
      That way I can improve some stuff an reduce the size a bit so it becomes more easy to add stuff later. (I hope)

      Do you understand the changes I made ?

      A site like Arcade Database is able to connect systems descriptions and the systems names. They have a Mame Dat Editor

      A database probably exist to match that. I'll try to found It.

      Perhaps, we can use your suggested site.
      Let me know what you find.
      But first I want to try and get the most information out of mame standalone.

      Here you can see, there is already a lot of info in mame already :

      /opt/retropie/emulators/mame/mame -listdevices svision      
      Driver svision (Super Vision):
         <root>                         Super Vision
           cart_list                    Software List
           cartslot                     Generic Cartridge Slot
           custom                       Super Vision Custom Sound @ 4.00 MHz
           lspeaker                     Speaker
           maincpu                      WDC W65C02 @ 4.00 MHz
           palette                      palette
           rspeaker                     Speaker
           screen                       Video Screen
      
      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:

        But for now I an focusing on the basic structure things before I add more.
        That way I can improve some stuff an reduce the size a bit so it becomes more >easy to add stuff later. (I hope)

        Do you understand the changes I made ?

        Yes, I know. I understand your process.

        Perhaps, we can use your suggested site.
        But first I want to try and get the most information out of mame standalone.

        👍🏻

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

          @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:

          Perhaps, we can use your suggested site.
          But first I want to try and get the most information out of mame standalone.

          👍🏻

          Did I interpret something wrong ?

          I really don't know much about these .dat files.
          Perhaps you can explain a bit more on how we should use them.

          Edit :
          I think you mean we can use this site to filter in such a way that we know what systems are of the handheld genre. Am I correct ?

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

            @Folly

            Question unrelated to the thread, do you know if there is a dump of taito_type_x_bios.bin. I'm looking for Raiden 3. I don't think so from what I've read on the internet, but it's from 2020. We never know!

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

              @folly

              Did I interpret something wrong ?

              No, I like what you proposed with MAME file

              /opt/retropie/emulators/mame/mame -listdevices svision      
              Driver svision (Super Vision):
                 <root>                         Super Vision
                   cart_list                    Software List
                   cartslot                     Generic Cartridge Slot
                   custom                       Super Vision Custom Sound @ 4.00 MHz
                   lspeaker                     Speaker
                   maincpu                      WDC W65C02 @ 4.00 MHz
                   palette                      palette
                   rspeaker                     Speaker
                   screen                       Video Screen
              
              F 1 Reply Last reply Reply Quote 0
              • F
                Folly @DTEAM
                last edited by Folly

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

                @folly

                Did I interpret something wrong ?

                No, I like what you proposed

                Ok.
                I go on with this.
                I we get stuck, or if we want to extract more info somehow,
                we can always use this site.
                But you have to know that extracting information from .dat (i think these are .xml) can be a pain in the ass.

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

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

                  @Folly

                  Question unrelated to the thread, do you know if there is a dump of taito_type_x_bios.bin. I'm looking for Raiden 3. I don't think so from what I've read on the internet, but it's from 2020. We never know!

                  Do you know what the system is ?

                  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:

                    taito_type_x_bios.bin

                    taitotx.cpp with MAME

                    https://github.com/mamedev/mame/blob/master/src/mame/drivers/taitotx.cpp

                    ROM_START( raiden3 )
                    	ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
                    	ROM_LOAD("taito_type_x_bios.bin", 0x00, 0x10000, NO_DUMP ) // size unknown.
                    	/* bios, video bios etc. not dumped */
                    

                    I found my answer !!

                    It's sad

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

                      @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:

                      taito_type_x_bios.bin

                      taitotx.cpp with MAME

                      https://github.com/mamedev/mame/blob/master/src/mame/drivers/taitotx.cpp

                      I can only find taitotz in 0.229

                      Search for "motherload-of-dumps"

                      Don't know but perhaps you have some luck.
                      Let me know.

                      Yes, I see you have the answer " not dumped".
                      But who knows perhaps it will pup up within some months !

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

                        I fixed the empty system lines and it now uses the retropie user string.

                        https://github.com/FollyMaddy/RetroPie-Share/commit/3fec0af846554ccd37d0d54bc41f2d1c98d347ff

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

                          @DTEAM @valerino

                          As a test-3, I added the option to install handhelds.

                          It's not directly the structure on how we want it in the future.
                          But I did this to see how the array's have to look if I want to make a choice on a description.
                          I also wanted to see if, perhaps, I could make things simpler.

                          It is not going very fast.
                          I will take a large amount of small steps to get it how we want it.

                          wget -q -nv -O /home/$(ls /home)/RetroPie-Setup/scriptmodules/supplementary/add-mamedev-systems.sh https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-workdir-00/add-mamedev-systems-test3.sh
                          
                          

                          Here you can see most changes of test-2 vs test-3 :
                          https://github.com/FollyMaddy/RetroPie-Share/commit/d48643325fc39c3bf808dadc0d5eeea9e5682740

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

                            @valerino

                            While making things in test3 i learned a bit more on how the array's are structured.
                            As you can see, it isn't a nice structure.
                            In the function choose_system_add() you will also see that all info read into $system_read will be inserted in both systems_read() and options().
                            So in this example, basically doubling the info, which will, presumably, take more time to execute.
                            Also injecting the numbers seems to be a bit odd, we already have the cell numbers in the array.
                            So it would also be nice if we could use those cell numbers, without injecting them again.
                            So I am trying to find a solution to this problem ( you can see how it is structured in this manual approach in function choose_dteam_add() ) :

                            local systems_read=( "ablmini" "alnattck" "gnw_ball" "jak_batm" "kbilly" "taddams" "rzbatfor" )
                            local options=( "0" "All in One Handheld and Plug and Play" "1" "Classic Handheld Systems" "2" "Game and Watch" "3" "JAKKS Pacific TV Games" "4" "Konami Handheld" "5" "Tiger Handheld Electronics" "6" "Tiger R-Zone" )
                            .
                            .
                            local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
                            

                            I want the arrays to be arranged like this :
                            (representation : converting it into a csv)
                            ROW1,ROW2
                            All in One Handheld and Plug and Play,ablmini
                            Classic Handheld Systems,alnattck

                            As you can see it's, right now it is arranged like this, so info doesn't match :
                            ROW1|ROW2
                            All in One Handheld and Plug and Play,1
                            Classic Handheld Systems,ablmini
                            Game and Watch,2

                            Perhaps too difficult, but it would be nice if we could extract into 2 dimensional array's or make fixed 2 dimensional array's.
                            Something like this :
                            https://stackoverflow.com/questions/16487258/how-to-declare-2d-array-in-bash
                            Then we would be able to link the information better, put all the extracted info into one 2-dimensional-array and have a better overview.

                            Hopefully you understand what I am talking about.

                            Do you have an idea ?

                            @DTEAM , Ofcourse, you are welcome to look at it too.
                            If you want some explanation about how basic array's work, just let me know.

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

                              @folly

                              Hi Folly,

                              From now on, it will be difficult for me to help you on this project. I will continue to test and read what you are doing, but I am not a programmer. I understand most of what you do, but I cannot contribute more than what I have done. Hope for you that some programmers ( @valerino , @2Play, and other ) will dive into this project with you because it has huge potential to add new working systems on RetroPie and add MESS / MAME for existing systems in Retropie.

                              Regards

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

                                @dteam

                                Hi,

                                You are already doing a lot, that is much appreciated.
                                I understand it when you say that the programming part becomes more difficult for you now.
                                That is no problem, I hope too that others can help.
                                I must admit I also have some trouble understanding it all, sometimes.
                                And if you asked me 3 years ago, I didn't understand it either.
                                But in these situations I experience every-time a learning boost when I find a solution for a problem like described in my last post.
                                Then it becomes more clear to me, so I hope I get the aha so we can program this script faster.

                                Regards

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

                                  EDIT : If there are spaces in the descriptions then this doesn't work, I will have to find a better solution

                                  @DTEAM @valerino ,

                                  I think I found a better way of dealing with the dialog api.
                                  The dialog api wants 2 options added in the commandline.
                                  (choice and what to choose from)
                                  Just did a small test with 2 arrays :
                                  (you will see it will output the data of both arrays in sequence)

                                  a=()
                                  b=()
                                  a=( "1" "2" "3" )
                                  b=( "z" "c" "e" )
                                  for i in ${!a[@]}; do echo "${a[$i]} ${b[$i]}";done
                                  
                                  

                                  Then I did a line with the dialog api to test :
                                  (now you will see it will display in the same sequence)

                                  dialog --backtitle "test" --menu "RetroPie-Setup Mamedev Systems Adder" 22 76 16 $(for i in ${!a[@]}; do echo "${a[$i]} ${b[$i]}";done)
                                  
                                  

                                  I hope this solution will work in the script.
                                  It should make the script far better.😊

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

                                    EDIT : If there are spaces in the descriptions then this doesn't work, I will have to find a better solution

                                    @DTEAM @valerino

                                    This does the same as the commands from the last post.
                                    I reduced the method, extracting the number from the for loop instead of a separate array :

                                    b=()
                                    b=( "z" "c" "e" )
                                    dialog --backtitle "test" --menu "RetroPie-Setup Mamedev Systems Adder" 22 76 16 $(for i in ${!b[@]}; do echo "$i" "${b[$i]}";done)
                                    
                                    

                                    Much better, this way

                                    Edit : With spaces in the example it will not work because it will present this as one option or as too many options depending on the situation, no idea how to fix this. ☹️

                                    b=()
                                    b=( "choice one" "choice two" "choice three" )
                                    dialog --backtitle "test" --menu "RetroPie-Setup Mamedev Systems Adder" 22 76 16 $(for i in ${!b[@]}; do echo "$i" "${b[$i]}";done)
                                    
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      Folly
                                      last edited by Folly

                                      @DTEAM @valerino

                                      I have found a solution that makes adding fixed arrays simpler and in that way it's also possible to "connect" between multiple arrays.

                                      The for loop creates a separate options array, setting the choice number and the choice behind each other in the array.
                                      This is how dialog wants it.
                                      For now, there is no way around this.

                                      local systems_read=( "ablmini" "alnattck" "gnw_ball" "jak_batm" "kbilly" "taddams" "rzbatfor" ) 
                                      local descriptions_read=( "All in One Handheld and Plug and Play" "Classic Handheld Systems" "Game and Watch" "JAKKS Pacific TV Games" "Konami Handheld" "Tiger Handheld Electronics" "Tiger R-Zone" )  
                                      for i in ${!descriptions_read[@]}; do options+=("$i" "${descriptions_read[$i]}");done
                                      

                                      Test4 is ready :

                                      wget -q -nv -O /home/$(ls /home)/RetroPie-Setup/scriptmodules/supplementary/add-mamedev-systems.sh https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-workdir-00/add-mamedev-systems-test4.sh
                                      
                                      

                                      Perhaps it doesn't seem much, but it's a huge update !
                                      Still turned off, but I also added some basic test lines for importing faster from text files.
                                      Not usable for now because you have to have the data in a text file, but if I can implement this, it's 3 or 4 times faster.

                                      Changes test3 vs test4 :
                                      https://github.com/FollyMaddy/RetroPie-Share/commit/da8b4eeff83328df94e00fa1d7bb02606e22f4b4
                                      https://github.com/FollyMaddy/RetroPie-Share/commit/e871c35399aa72af95de2a7f843334949dc49ffa#diff-23cb2bcf9c8990a5889800ad28f7bbd66c91a0fad95249958916aaa10b629c15
                                      https://github.com/FollyMaddy/RetroPie-Share/commit/285b8aa6b18cfa67f5c7bd3c4ca9302fd32b1f3e#diff-23cb2bcf9c8990a5889800ad28f7bbd66c91a0fad95249958916aaa10b629c15

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

                                        @folly

                                        Wow!!! and wow again
                                        Capture.PNG
                                        Capture.PNG

                                        I like your download menu and I like the way you presented All systems with real system names and with MAMEsystem names .

                                        You are not far from the ultimate goal.
                                        Really nice what you have done Folly

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

                                          @dteam

                                          I boosted this weekend.
                                          Quite happy, for now. 😉

                                          I just had a look at your schematics.
                                          I will try to work towards the schematics if I can.

                                          We will see how it goes.

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

                                            Edit :
                                            This part is removed -> will be added to a new script !

                                            Just an idea that I wanted to add :
                                            I added a submenu in test4 for downloading module-scripts from different external repositories.
                                            It will only download if the file doesn't exist in the normal path.
                                            It will put them in the appropriate directories in the ext path.
                                            After downloading, just go to the normal things in RetroPie-Setup.

                                            Script is restored to the original state.

                                            DTEAMD 1 Reply 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.