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

    Please Test: Adding support for "All", "Favorites" and "Last Played" systems

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatiofavouritescustom system
    226 Posts 19 Posters 96.3k 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.
    • lilbudL
      lilbud
      last edited by lilbud

      My switch logos are already done

      0_1498503435002_d2ccb760-4c26-4ff4-8489-b69a4ec13f1b-image.png

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

      Backlog: http://backloggery.com/lilbud

      cyperghostC 1 Reply Last reply Reply Quote 2
      • cyperghostC
        cyperghost @lilbud
        last edited by

        @lilbud Nice work ;)
        I've created favs buttons for IO only maybe @mattrixk can design a set of new one

        mattrixkM 1 Reply Last reply Reply Quote 0
        • lilbudL
          lilbud
          last edited by

          What would the es_system.cfg look like for favorite, all games and last played?

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

          Backlog: http://backloggery.com/lilbud

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

            @lilbud

            There's nothing on es_system.cfg, as they're not hardcoded systems.

            If you're looking for the theme folders, they're supposed to be auto-allgames, auto-lastplayed, and auto-favorites.

            I've fixed the bug you ran into (thank you!). After launching a game and coming back to ES the application timer starts from zero, which meant that the fade animation would pretty much run until the application got to the same "time" as it had taken for you to get that particular popup to show the first time around. Funny one.

            Will update the PR shortly.

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

              @UDb23 No pressure, please - it was more to reassure people :)

              1 Reply Last reply Reply Quote 0
              • mattrixkM
                mattrixk @cyperghost
                last edited by

                @cyperghost The logos on IO are just the Carbon SVGs, recoloured to be bi-colour, I didn't actually make them.

                My ES themes: MetaPixel | Spare | Io | Indent

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

                  I have updated the PR and my branch with a fix for @lilbud 's reported bug! Thanks for sending it over. :)

                  1 Reply Last reply Reply Quote 0
                  • lilbudL
                    lilbud
                    last edited by

                    @pjft I have updated the dark theme to support this custom build. There are 2 extra backgrounds which add the screensaver prompt (bg-pjft.png) and Options + Favorite prompts (systembg-pjft.png) Both have been added to the Switch-Dark repository

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

                    Backlog: http://backloggery.com/lilbud

                    1 Reply Last reply Reply Quote 0
                    • ohmycommodoreO
                      ohmycommodore
                      last edited by

                      A great, functional idea! Looking forward to using this!

                      1 Reply Last reply Reply Quote 0
                      • cyperghostC
                        cyperghost
                        last edited by

                        IO theme was pushed to Virtual Systems runlevel :)
                        https://retropie.org.uk/forum/topic/3853/io-new-theme/41
                        also available on Github

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

                          @cyperghost Sorry, I missed answering this earlier! Thanks for the work here and for the suggestions.

                          Don't take any of what I'm saying the wrong way, as the internet can lead to wrong interpretations, so bear that in mind when reading this :)

                          I briefly considered it but I decided not to translate the code to C++. It's not because it isn't good code, but because I don't think it's the right approach here, as well as that porting code is in my opinion a lot more effort than writing it from scratch. :) That's also the same reason I don't think I'll be implementing the "Y-button" to call a bash-file either.

                          My belief is that ES should be kept simple and accessible for all users, and most of these developments, while great for the community, realistically are only accessible to people who are a bit more advanced in their technical abilities than needed to enjoy RetroPie.

                          • In the current case, we don't need a FAV file as ES knows how to execute any game it has loaded. We only need to store a ROM path, and rely on es_systems.cfg to know, based on the file's path, how to execute it.
                          • The user should also be able to create collections of games without having to resort to manually creating text files in the command-line or an editor, or creating symbolic links in separate folders, or duplicating ROMs in their system.

                          I know we do it because we enjoy the challenge and tinkering :) But in doing so we are restricting the appeal and openness of RetroPie as a platform to a smaller audience.

                          My goal - after this is eventually merged - is to continue developing it to allow users to manage game collections (that's likely the external final name for "virtual systems" :) ) inside ES.

                          They will be based on unused existing folders in the user's theme, as ES has a 1:1 relationship to "system-level entries" and "theme folders". And I don't want users to shoot themselves in the foot by creating collections that will not be themed and look ugly as hell. This will address most of the use cases people have been playing with, when creating a "megaman" theme folder or something, and then packing it with megaman games, or "fighting", "sports" or whatever.

                          Creating custom collections (without an existing theme folder) is out of scope, as there are too many sub-optimally defined user flows, and the end user experience will always be less than desirable.

                          Hope this clarifies the roadmap and scope I have in mind for these developments in general.

                          If there's any critical use case I'm missing, please anyone let me know, and I'll take it into consideration!

                          Thanks.

                          cyperghostC J 2 Replies Last reply Reply Quote 3
                          • cyperghostC
                            cyperghost @pjft
                            last edited by cyperghost

                            @pjft I totally agree with you.
                            One usecase is left - if you use no XML file and disabled parsing of them ;)
                            That's an easy option to speed up the whole ES booting and shutdown process....

                            But as you said and I already understand... The usecase of the usual user and the user who wants to look what all can be done stands in no relation. Maybe 99:1 and if in future version it is possible to just add new system the relation changes maybe from 99:1 to 999:1.

                            So thanks for your and @meleu words.

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

                              @cyperghost

                              What I said earlier is that if you don't use gamelists, you can't really benefit from Favorites (as favorites relies on the metadata) and last played (as it relies on the "last played" date).

                              That being said, you'll be able to add any game to any custom system, and nobody forbids from creating your own custom collection of "favorites", based on a separate theme folder.

                              That will not be in any way related to gamelist data - we'll store those separately, in files with only the file paths.

                              Sorry that that wasn't clear :)

                              cyperghostC 1 Reply Last reply Reply Quote 1
                              • cyperghostC
                                cyperghost @pjft
                                last edited by cyperghost

                                @pjft Take it easy.... it's clear enough for me
                                So how does this files look like (filename) and what is the content of these? Just the file path? How can runcommand to be used to load the correct system?
                                As you see I was in the same situation ;)

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

                                  @cyperghost Just the file path.

                                  As I stated, ES has the system settings in es_systems.cfg for the respective folders where the source roms are. No new folders need to be created. No files need to be moved around.

                                  I don't plan on creating yet another file type that's redundant.

                                  cyperghostC 1 Reply Last reply Reply Quote 1
                                  • cyperghostC
                                    cyperghost @pjft
                                    last edited by cyperghost

                                    @pjft Man it's so easy... you are so genious ;)
                                    Shame on me..... The solution is so brilliant!

                                    You just compare the file path related to the rom ;)

                                    So a Gameboy file is stored to ~/RetroPie/roms/gb/
                                    You save the ROM Tetris (UE) 1.1.gb into a annother file Tetris (UE) 1.1.gb for ex. as gamelist???
                                    In the Tetris (UE) 1.1.gbis just the filepath+romname stored ~/RetroPie/roms/gb/Tetris (UE) 1.1.gb

                                    We "launch" that file and now you compare the filestring after the last / with the es_system.cfg credentials ... Voila you know that must be a GBfile

                                    Ahhhhhhhhhhhhhhhh... Easy, effictive, brilliant
                                    Congrats @pjft

                                    Hope I got that now ;)

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

                                      That is indeed the gist of it, but since it all happens inside ES, it's all much simpler - no need for string parsing and all that.

                                      The changes I've made in this PR make the system execution data (i.e. knowing it's a GB rom) be tied to the actual game entry in ES, rather than to the "system" entry. As such, regardless of how many collections a game it belongs to, it always knows what to run it in.

                                      For the case you're describing, it will run it as if you had clicked the Tetris entry in the GB list - which is what currently happens, regardless of whether you're clicking it in "All Games", "Favorites" or "Last Played".

                                      We'll store

                                      /home/pi/RetroPie/roms/arcade/ffight.zip
                                      /home/pi/RetroPie/roms/gb/gargoylesquest.zip
                                      /home/pi/RetroPie/roms/nes/ducktales.zip
                                      /home/pi/RetroPie/roms/fba/sf2.zip
                                      

                                      for a Capcom system, for instance.

                                      At least that's how I envision it. Whether that will work - and whether I have the ability to pull it off - remains to be seen. But I'm confident - the hardest part seems to have been done.

                                      cyperghostC 1 Reply Last reply Reply Quote 0
                                      • cyperghostC
                                        cyperghost @pjft
                                        last edited by cyperghost

                                        @pjft Whatever ... But I agree that those system hacks may be abolished in future or are just useable in a rare rare cases.
                                        The FAV description got one advantage :) You can use it for system calls like the retropie menu :)
                                        Thanks for the long and deep solid explanation

                                        cyperghostC 1 Reply Last reply Reply Quote 0
                                        • cyperghostC
                                          cyperghost @cyperghost
                                          last edited by cyperghost

                                          @pjft
                                          About coding style ... nice description of crap

                                          It's not because it isn't good code, but because I don't think it's the right approach here, as well as that porting code is in my opinion a lot more effort than writing it from scratch. :)

                                          1. There are the same routines used for 4 or 5 times in that code. That would be better outsourced by an easy include or function call to strip down that source code.
                                          2. The variables are not well definated and missused for other values (not good coding style)
                                          3. I oversized the include by making file access compatible to VB an INCLUDE of only file.bi would be better and reduce footprint size.
                                          4. The comments ... are there but ... rare - better than nothing ;)
                                          5. Who needs taps and spaces? It looks like a mess

                                          The only good style (imho) is the use of while-loops with definated ends and case selections! And no goto :) A good goto is allowed!


                                          But back to topic. I'm looking forward that is branch is the next breakthrough in RetroPie. It's really a pitty that it tooks several years to include a milestone like this. Thank you very much :)

                                          btw. Hope that the PR of IO will be accepted

                                          mattrixkM 1 Reply Last reply Reply Quote 0
                                          • mattrixkM
                                            mattrixk @cyperghost
                                            last edited by

                                            @cyperghost said in Please Test: Adding support for "All", "Favorites" and "Last Played" systems:

                                            Hope that the PR of IO will be accepted

                                            Your wish has been granted.

                                            Seriously though, I'm looking forward to this all being finalised. I've been trying to follow meleu's and TMNTturtlguy's virtual systems stuff, but I've been getting confused. I've been getting confused reading this thread too, but maybe that's just because it's too early in the morning for my brain to work properly. I'm just going to wait until it becomes part of core so I don't have to resort to hacks.

                                            My ES themes: MetaPixel | Spare | Io | Indent

                                            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.