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

How To Create Favorites System in Retropie (yes system, not folder!)

Scheduled Pinned Locked Moved Ideas and Development
favoritessystememulationstaion
57 Posts 10 Posters 16.7k 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.
  • T
    TMNTturtlguy @Syhles
    last edited by 3 Jun 2017, 13:01

    @Syhles like we established yesterday, it's not always easy, but someone needs to do it! And @lilbud let's keep this post on topic! Nice Mario setup!

    0_1496494878217_876215FC-EB59-43B0-979C-51A77542F1A2-17037-0000120BA772B838.jpeg

    L 1 Reply Last reply 3 Jun 2017, 13:12 Reply Quote 1
    • L
      lilbud @TMNTturtlguy
      last edited by 3 Jun 2017, 13:12

      @TMNTturtlguy

      0_1496495546545_482e283b-1ddd-4271-a8b1-8debad77d17f-image.png

      Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

      Backlog: http://backloggery.com/lilbud

      T 1 Reply Last reply 3 Jun 2017, 13:42 Reply Quote 0
      • T
        TMNTturtlguy @lilbud
        last edited by 3 Jun 2017, 13:42

        @lilbud did you have any issues setting up your MARIO System? Were the instructions pretty easy to follow?

        L 1 Reply Last reply 3 Jun 2017, 13:54 Reply Quote 0
        • H
          HoolyHoo
          last edited by 3 Jun 2017, 13:49

          @TMNTturtlguy Thanks for posting. I did this quite a while ago and decided to organize the "Favorites" into subfolders by consoles. (See this thread:https://retropie.org.uk/forum/topic/4233/sub-folders-default-emulators). All worked well but never really found a way to automate the emulator per rom used which can be a pain if you add lots of favorite roms. It would be great to somehow automate this with a script from the run command that would copy the rom to the "Favorites" console and set the emulator per rom automatically per rom.

          T 1 Reply Last reply 3 Jun 2017, 14:17 Reply Quote 1
          • L
            lilbud @TMNTturtlguy
            last edited by 3 Jun 2017, 13:54

            @TMNTturtlguy Only having to manually select the emulator for each rom. I tried to create a batch script to automatically select the emulator for the rom extension. But it never worked... probably cause I don't know how to code.

            Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

            Backlog: http://backloggery.com/lilbud

            T 1 Reply Last reply 3 Jun 2017, 14:08 Reply Quote 1
            • T
              TMNTturtlguy @lilbud
              last edited by 3 Jun 2017, 14:08

              @lilbud yeah, that is the downside. I tried to read through the runcommand file to see if I could figure it out, but it is still over my head and it was about 3am when input this post together. I am going to keep looking at this, but I just don't see how it will be possible. The one idea I have would be to write instructions that all .nes files always default to a certain emulator. That way we are not trying to match settings from another file/folder, but just generally stating that a certain file is always run by a certain emulator. Downside to this is that .zip files probably wouldn't work, the roms would have to be unzipped, for just this folder anyways.

              Next issue at hand, gamelists. Since this is a new roms folder, it will need a new gamelist. My first thought is to manually create it by copying out each game entry from their original list and pasting into a new file. Then manually changing the image and video snap locations to add in the path to their original location so you don't have to have art on your system twice for the same rom.

              Future wish idea, can I create a shortcut file in the favorites rom folder so it shows on the favorites game list and have the runcommand Follow the shortcut path and actually open the original rom from its original folder. Now this idea solves all issue! It would use the original emulator and artwork by default.

              Problem is i am better at art and idea generation than writing code!

              1 Reply Last reply Reply Quote 0
              • T
                TMNTturtlguy @HoolyHoo
                last edited by 3 Jun 2017, 14:17

                @HoolyHoo said in How To Create Favorites System in Retropie (yes system, not folder!):

                I did this quite a while ago and decided to organize the "Favorites" into subfolders by consoles. (See this thread:https://retropie.org.uk/forum/topic/4233/sub-folders-default-emulators).

                Like I said in the top post, I assumed that this has been done before, I just didn't find anyone who shared how to actually accomplish it. See my reply to @lilbud about launching emulators. I think that the main benefit to setting up this type of folder is to have 20-30 roms in it, not hundreds....otherwise it defeats the purpose of favorites. I am also interested in the all MARIO and all TMNT possibilities, it won't be the end of the world to launch 15-20 roms and set the emulator one time. Any additional thought you have learned would be a huge plus. Thanks

                1 Reply Last reply Reply Quote 1
                • S
                  Sano
                  last edited by 3 Jun 2017, 15:36

                  Very nice tweak.

                  Juste thinking of something similar, but that would unfortunately require huge modifications on ES :
                  Being able to modify the carrousel to switch components between Systems/Game Genres/Editors/Custom keyword (Mario, Sonic, ...)

                  This would probably require to replace the gamelist.xml files with a global DB, but could be so nice, and would easily allow to implement game search too...

                  My 2 cents.

                  1 Reply Last reply Reply Quote 0
                  • T
                    TMNTturtlguy
                    last edited by TMNTturtlguy 6 Mar 2017, 17:45 3 Jun 2017, 16:11

                    Update: I am currently trying to figure out all the runcommand code and how we can get the emulator to autoselect so we don't have to manually set it up. Here is what i think i have determined so far:

                    /opt/retropie/supplementary/runcommand/runcommand.sh tells us that if "sys" is called out then we use argument 3 = which says to look to the favorites folder we created in /opt/retropie/configs/. Nothing earth shattering figured out here. If we keep looking down in the file we find the function default_emulator() { Again, i don't know what i am doing here, but it looks that this is telling us to go to the folder we created in /opt/retropie/configs/ for favorites and look at the emulators.cfg

                    In emulators.cfg we list out all the emulators that can run in our system. We can also call out ONE single emulator to run as the default launch emulator. the runcommand.sh file says we can do this by stating default = "emulatorname" for example default = "lr-mame2003"

                    So now what i need to try to understand is if we can create code in the runcommand.sh that allows us to do an ifstatement that says "if rom = .nes " Then:

                    local key
                    local config="$EMU_SYS_CONF"
                    case "$type" in
                    emu_sys)
                    key="default NES"
                    ;;

                    Then we can go into our favorites/emulators.cfg and add the following: default NES = lr-fceumm

                    I am probably waisting a lot of peoples time here, so i apologize. I am sure this is much more complex than what I am thinking, my hope is that this might jump start a few ideas that others can expand upon or point me in the right direction. OR tell me I am way off base! Thanks for your time.

                    L 1 Reply Last reply 3 Jun 2017, 16:29 Reply Quote 0
                    • L
                      lilbud @TMNTturtlguy
                      last edited by 3 Jun 2017, 16:29

                      @TMNTturtlguy Here is the script I tried to write

                      #!/usr/bin/env bash
                      for file in /tmp/*; do
                      if echo "$file" | grep -q '.gb$'; then
                      /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-
                      gambatte/gambatte_libretro.so --config /opt/retropie/configs/mario/retroarch.cfg "$file"
                      elif echo "$file" | grep -q '.nes$'; then
                      /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-
                      fceumm/fceumm_libretro.so --config /opt/retropie/configs/mario/retroarch.cfg "$file"
                      elif echo "$file" | grep -q '.sfc$'; then
                      /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-
                      snes9x2010/snes9x2010_libretro.so --config /opt/retropie/configs/snes/retroarch.cfg
                      "$file"
                      fi
                      done

                      If anyone is good with bash, tell me what i did wrong.

                      Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                      Backlog: http://backloggery.com/lilbud

                      T 1 Reply Last reply 3 Jun 2017, 17:19 Reply Quote 0
                      • T
                        TMNTturtlguy @lilbud
                        last edited by 3 Jun 2017, 17:19

                        @lilbud I think i might have it for you, right now you are telling the script to write the launch for the .gb files to emulator list, that list does not actually run/startup the emulator. The emulator set as default is what will launch unless the rom itself has directions save to /opt/retropie/configs/all/emulators.cfg

                        What we could do is create the script to add the following output for each rom in your mario folder. Here is what the required output is:

                        mario_romname = "emulator"
                        for example my turtles system - TMNT
                        TMNT_tmnt22p = "mame4all"

                        So all the script needs to do is look in your mario folder for file types .nes and then output mario_supermario = "lr-fceumm" to /opt/retropie/configs/all/emulators.cfg

                        I am not good with scripts, but maybe you can test writing this and report back?

                        L 1 Reply Last reply 3 Jun 2017, 19:29 Reply Quote 0
                        • M
                          meleu
                          last edited by meleu 6 Mar 2017, 20:40 3 Jun 2017, 19:29

                          Hey guys, I didn't read all the thread, sorry. But as far as I understood the OP is about creating a theme for favourites, not implementing a way to manage its contents.

                          If the user is supposed to manage files/gamelist.xml manually I would suggest to use symbolic links (or full path in gamelist.xml).

                          But why don't we test the branch of this PR?: https://github.com/RetroPie/EmulationStation/pull/131

                          • Useful topics
                          • joystick-selection tool
                          • rpie-art tool
                          • achievements I made
                          L T 2 Replies Last reply 3 Jun 2017, 19:30 Reply Quote 2
                          • L
                            lilbud @TMNTturtlguy
                            last edited by 3 Jun 2017, 19:29

                            @TMNTturtlguy said in How To Create Favorites System in Retropie (yes system, not folder!):

                            mario_supermario = "lr-fceumm

                            Shouldn't that say:

                            mario_nes = "lr-fceumm" ?

                            Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                            Backlog: http://backloggery.com/lilbud

                            T 1 Reply Last reply 3 Jun 2017, 20:16 Reply Quote 0
                            • L
                              lilbud @meleu
                              last edited by lilbud 6 Mar 2017, 20:31 3 Jun 2017, 19:30

                              @meleu yeah, but we get sidetracked easily. Could you look at the code above and see what's wrong?

                              Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                              Backlog: http://backloggery.com/lilbud

                              M 1 Reply Last reply 3 Jun 2017, 19:41 Reply Quote 0
                              • M
                                meleu @lilbud
                                last edited by 3 Jun 2017, 19:41

                                @lilbud sure. Will do as soon as I get home.

                                • Useful topics
                                • joystick-selection tool
                                • rpie-art tool
                                • achievements I made
                                1 Reply Last reply Reply Quote 1
                                • T
                                  TMNTturtlguy @lilbud
                                  last edited by 3 Jun 2017, 20:16

                                  @lilbud said in How To Create Favorites System in Retropie (yes system, not folder!):

                                  Shouldn't that say:
                                  mario_nes = "lr-fceumm" ?

                                  no, it should say the name of your system folder: mario then then name of the rom: supermario = emulator

                                  I am just using supermario as the name of your rom

                                  L 1 Reply Last reply 3 Jun 2017, 20:18 Reply Quote 0
                                  • L
                                    lilbud @TMNTturtlguy
                                    last edited by 3 Jun 2017, 20:18

                                    @TMNTturtlguy So, like this:

                                    mario_supermariorpg="lr-snes9x-2010"

                                    Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                                    Backlog: http://backloggery.com/lilbud

                                    T 2 Replies Last reply 3 Jun 2017, 20:20 Reply Quote 0
                                    • T
                                      TMNTturtlguy @meleu
                                      last edited by 3 Jun 2017, 20:19

                                      @meleu i just read the PR branch, not sure it is doing the same thing?

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        TMNTturtlguy @lilbud
                                        last edited by TMNTturtlguy 6 Mar 2017, 21:20 3 Jun 2017, 20:20

                                        @lilbud yes, but you need a spaces between (either side of the =)

                                        mario_supermariorpg = "lr-snes9x-2010"

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          TMNTturtlguy
                                          last edited by 3 Jun 2017, 20:24

                                          SO i am still working on the runcommand.sh file from above.....i am making progress with the default idea, but now it reads both defaults as launch. I need a way to tell the runcommand which defualt to use. Can someone tell me what "$type" is signalling? Here is what i am trying to do:

                                          function default_emulator() {
                                          local mode="$1"
                                          local type="$2"
                                          local value="$3"
                                          local key
                                          local config="$EMU_SYS_CONF"
                                          case "$type" in
                                          emu_sys)
                                          key="default"
                                          ;;
                                          emu_cmd)
                                          key="$EMULATOR"
                                          ;;
                                          emu_rom_old)
                                          key="$SYS_SAVE_ROM_OLD"
                                          config="$EMU_CONF"
                                          ;;
                                          emu_rom)
                                          key="$SYS_SAVE_ROM"
                                          config="$EMU_CONF"
                                          ;;
                                          esac
                                          default_process "$config" "$mode" "$key" "$value"
                                          case "$type" in
                                          emu_sys)
                                          key="default NES"
                                          ;;
                                          emu_cmd)
                                          key="$EMULATOR"
                                          ;;
                                          emu_rom_old)
                                          key="$SYS_SAVE_ROM_OLD"
                                          config="$EMU_CONF"
                                          ;;
                                          emu_rom)
                                          key="$SYS_SAVE_ROM"
                                          config="$EMU_CONF"
                                          ;;
                                          esac
                                          default_process "$config" "$mode" "$key" "$value"

                                          }

                                          I added the second case and when i launch it is picking it up. But now it says it is launching from both emulators. So i need to tell it to launch default NES for only .nes files. Thanks for any help or thoughts you might have.

                                          1 Reply Last reply Reply Quote 0
                                          25 out of 57
                                          • First post
                                            25/57
                                            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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received