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

    Create a custom ES system able to launch games for many systems

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatiocustomisationscustom theme
    157 Posts 15 Posters 66.8k 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.
    • meleuM
      meleu @Howitzer99
      last edited by meleu

      @Howitzer99 said in Create a custom ES system able to launch games for many systems:

      Are the files in the ~/.emulationstation intended to be only for overrides, so essentially empty except for and local changes?

      Well, I thought it was the first place ES looks for es_systems.cfg ans, if not found, look in /etc/emulationstation. But if it's working as you're saying, one file complementing the other, it's great. I'll update the OP when I have a chance.

      By the way, Did you use the script to create the custom system's gamelist.xml? I'm curious to see if it's being useful to someone else. :-)

      Edit: post a screenshot of your custom ES system. ;-)

      • Useful topics
      • joystick-selection tool
      • rpie-art tool
      • achievements I made
      1 Reply Last reply Reply Quote 0
      • Howitzer99H
        Howitzer99
        last edited by

        meleu, I did run your "custom-system-autoscraper.sh", but when the Konami directory didn't showup in ES, I ended up running sscraper on the listed konami directory from the retropie-setup script. I'm seeing metadata listed, but probably from the sscraper.

        Sure, now that I know that it's working for creating a custom system, I'll start working on some custom ES system designs this week.

        meleuM 1 Reply Last reply Reply Quote 1
        • meleuM
          meleu @Howitzer99
          last edited by meleu

          @Howitzer99 I intentionally made it doesn't change any existing entry in the custom system's gamelist.xml. So, if you run it after sselph it won't do anything. (According to what you said this is not your case, I've putting this just for info ;-) ).

          I'm planning to write a script to simplify the symbolic link creation. This step can be pretty tedious and a script can help. Stay tuned!

          Cheers!

          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          cyperghostC Howitzer99H 2 Replies Last reply Reply Quote 1
          • cyperghostC
            cyperghost @meleu
            last edited by

            @meleu I have boosted the fav launcher a bit now we can create FAV files via runcommand :)
            https://retropie.org.uk/forum/topic/10971/dev-little-favorite-launcher-second-attempt-ready-for-testers

            1 Reply Last reply Reply Quote 2
            • Howitzer99H
              Howitzer99 @meleu
              last edited by Howitzer99

              @meleu I had some time to checkout your script for creating the gamelist.xml based on existing roms, and yes, it does work, and is pretty slick! Nice that its only reading existing metadata to create the list. I've never seen 'xmlstarlet' before, more reading to do.

              How is the symbolic link program going? Please let me know if you want me to run some tests.

              One thing I'm discovering is that I don't have the video previews setup for ES (working fine for Attract Mode). I have a bunch of video snaps and marquees, so I don't need to scrape my games again, only point to the existing files that Attract Mode is using. Do you know if anyone has created a script to embed the video and marquee data into an existing gamelist.xml file? I went through one post with almost 600 replies (somewhat fast), and didn't see a script to add these.

              pjftP E meleuM 3 Replies Last reply Reply Quote 1
              • pjftP
                pjft @Howitzer99
                last edited by

                @Howitzer99 There was a script by @Nismo, I think, using Powershell, I believe, that does that. If you search the forums for something like that, you'll get the gist of it. If you can't, do let me know (on the go at the moment). The script just adds the proper "video" tags to the gamelists, based on the rom name, and to a folder that you can change in the script. It does assume that the video name will be the same as the rom name. Oh, and it had some minor issues with game names that had "." in the middle, but you can fix those as one-offs.

                1 Reply Last reply Reply Quote 0
                • E
                  EctoOne @Howitzer99
                  last edited by

                  @Howitzer99 Someone posted a tutorial on adding videos and marquees with regular expressions a few days ago but i can't find it for whatever reason.
                  But there is also a windows tool that can do what you want.
                  https://retropie.org.uk/forum/topic/9486/gengal-gamelist-xml-generator

                  Howitzer99H 1 Reply Last reply Reply Quote 0
                  • Howitzer99H
                    Howitzer99 @EctoOne
                    last edited by

                    @EctoOne Thanks, I did see the Windows version, I should have prefaced the request that I'm looking for a linux script not windows.

                    pjftP 1 Reply Last reply Reply Quote 0
                    • pjftP
                      pjft @Howitzer99
                      last edited by

                      @Howitzer99 Check my post. I ran it on a Mac, and it's a terminal script. You just need to install PowerShell for Linux.

                      Howitzer99H 1 Reply Last reply Reply Quote 0
                      • Howitzer99H
                        Howitzer99 @pjft
                        last edited by

                        @pjft Awesome, thanks, will checkout PowerShell as well.

                        GenGal definitely hits the request, thanks for the fast replies!

                        1 Reply Last reply Reply Quote 0
                        • meleuM
                          meleu @Howitzer99
                          last edited by meleu

                          @Howitzer99 said in Create a custom ES system able to launch games for many systems:

                          How is the symbolic link program going? Please let me know if you want me to run some tests.

                          Almost done. I had to be away from my computers in the last few days but now I'm back. I'm going to post about it here in a couple of days. ;-)

                          I'm making it create the link and the respective gamelist.xml entry at the same time. So, you will just have to run this tool to accomplish these two tasks.

                          • Useful topics
                          • joystick-selection tool
                          • rpie-art tool
                          • achievements I made
                          Howitzer99H 1 Reply Last reply Reply Quote 0
                          • E
                            EctoOne @meleu
                            last edited by

                            Is there a way to expand the script @meleu made for batch linking to have maybe the original system added as suffix in the link? I finally had some time to try this out and i ran into a problem when i tried to made just a SEGA system. Since i have all my Roms zipped, i ran into an issue with having the same filename inside my GameGear and MasterSystem folder. IDK if it is possible on linux but it would be great if i could links like gamename (europe)-gamegear.zip

                            # in this example I'm creating links for every file in gameboy directory
                            original_system="/home/pi/RetroPie/roms/gb"
                            destination_system="/home/pi/RetroPie/roms/nintendo"
                            while read -r file; do
                              ln -s "$original_system/$file" "$destination_system/$file"
                            done < <(ls "$original_system")
                            
                            meleuM 1 Reply Last reply Reply Quote 0
                            • meleuM
                              meleu @EctoOne
                              last edited by

                              @EctoOne the link can have any name you want. You can batch all, and then manually create those with the same name.

                              Or maybe wait a day or two and see the script I'm planning to release. ;-)

                              • Useful topics
                              • joystick-selection tool
                              • rpie-art tool
                              • achievements I made
                              TMNTturtlguyT 1 Reply Last reply Reply Quote 2
                              • TMNTturtlguyT
                                TMNTturtlguy @meleu
                                last edited by

                                @meleu oh my! I can't wait! This must be an impressive script! Can you confirm that it will link the rom and gamelist info all in one script command? I was going to use your script to populate all of my new systems in the theme today, but now I will have to wait to see what you have in store for us!

                                meleuM 2 Replies Last reply Reply Quote 0
                                • meleuM
                                  meleu @TMNTturtlguy
                                  last edited by meleu

                                  @TMNTturtlguy said in Create a custom ES system able to launch games for many systems:

                                  Can you confirm that it will link the rom and gamelist info all in one script command?

                                  Confirmed!

                                  Wait a little, I'm at work now and planning to finish the script this evening. ;-)

                                  edit: I mean evening in Brazil.

                                  • Useful topics
                                  • joystick-selection tool
                                  • rpie-art tool
                                  • achievements I made
                                  1 Reply Last reply Reply Quote 1
                                  • Howitzer99H
                                    Howitzer99 @meleu
                                    last edited by

                                    @meleu,@pjft I just tried running GenGal, and yes it's working to add the missing video and marquees attributes to my gamelists. One problem is that it's completely overwriting the existing metadata, so how are people adding (back) the extra information that GenGal doesn't provide (game information, rating, plays, etc)?

                                    Between GenGal and FatMatch, looks like I'm sorted for now dealing with naming issues and creating the missing metadata attributes, just need to be able to merge and it should be good.

                                    pjftP 1 Reply Last reply Reply Quote 0
                                    • pjftP
                                      pjft @Howitzer99
                                      last edited by

                                      @Howitzer99 as said, I don't use GenGal but a separate PowerShell script that adds those to the existing gamelists without deleting anything.

                                      Here's the thread:

                                      https://retropie.org.uk/forum/topic/6589/easy-way-to-add-video-and-marquees-tags-in-your-gamelist-for-video-support

                                      1 Reply Last reply Reply Quote 0
                                      • meleuM
                                        meleu @TMNTturtlguy
                                        last edited by meleu

                                        @TMNTturtlguy @EctoOne @Howitzer99 @mattrixk @pjft and everyone else interested in an easier way to create the symbolic links and updating the custom system gamelist.xml: I've created a "fancier" script :-)

                                        You can see it here: https://github.com/meleu/share/blob/master/add-game-to-custom-system.sh

                                        And get it with this command:

                                        wget https://raw.githubusercontent.com/meleu/share/master/add-game-to-custom-system.sh
                                        chmod a+x add-game-to-custom-system.sh
                                        

                                        Here is the --help output:

                                        $ ./add-game-to-custom-system.sh --help
                                        This script creates symbolic links for a custom ES system and tries to create
                                        a gamelist.xml based on already existent metadata, boxart, marquee, and video.
                                        
                                        More info here: https://retropie.org.uk/forum/post/84125
                                        
                                        Usage:
                                        ./add-game-to-custom-system.sh -d /path/to/custom/system/directory rom1 [rom2 [romN...]]
                                        

                                        As it gets the rom file names from command line you can use the shell wildcards, as you can see in the examples below.

                                        adding Contra (NES) to konami custom system

                                        $ ./add-game-to-custom-system.sh -d ~/RetroPie/roms/konami ~/RetroPie/roms/nes/Contra\ \(USA\).zip
                                        

                                        all gameboy games to nintendo custom system (as @EctoOne wants)

                                        $ ./add-game-to-custom-system.sh -d ~/RetroPie/roms/nintendo ~/RetroPie/roms/gb/*.zip
                                        

                                        all Mega Man games to megaman custom system (as @meleu wants)

                                        $ ./add-game-to-custom-system.sh -d ~/RetroPie/roms/megaman ~/RetroPie/roms/{gb,gba,gbc,nes,snes,megadrive}/Mega\ Man*.zip
                                        
                                        • Useful topics
                                        • joystick-selection tool
                                        • rpie-art tool
                                        • achievements I made
                                        Howitzer99H cyperghostC UDb23U 3 Replies Last reply Reply Quote 4
                                        • Howitzer99H
                                          Howitzer99 @meleu
                                          last edited by

                                          @meleu Awesome, congrats with finishing the script, and thanks for posting!

                                          1 Reply Last reply Reply Quote 0
                                          • E
                                            EctoOne @meleu
                                            last edited by

                                            Once again, awesome job! Now my system looks so much cleaner without having systems that only had 1-5 games. The only thing i want to mention is that I had to edit /opt/retropie/configs/all/emulationstation/es_systems.cfg and NOT/etc/emulationstation/es_systems.cfgto change what system i wanted to show up.

                                            meleuM 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.