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

    Input needed: ES theming improvements

    Scheduled Pinned Locked Moved Projects and Themes
    themethemingemustationimprovementsbrainstorm
    255 Posts 32 Posters 163.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.
    • S
      Syhles @pjft
      last edited by Syhles

      @pjft
      Where was the theme.xml located, in the carbon folder or in a game system folder like snes?

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

        @Syhles in the root folder. Maybe it's being overridden later and I didn't notice. That's a possibility.

        J mattrixkM 3 Replies Last reply Reply Quote 0
        • J
          jdrassa @pjft
          last edited by

          @pjft I think you need to add it to carbon.xml. I don't think the theme.xml file in the root folder is actual used.

          Get latest build of EmulationStation for Windows here

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

            @pjft The Indent theme is still a major work in progress and I haven't touched the xml in a while (I'm working on the graphics at the moment).

            The BaseVid theme from the ES Toolkit is the one you want to look at.

            My ES themes: MetaPixel | Spare | Io | Indent

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

              @pjft: @jdrassa is correct. The theme.xml in root is not used. You need to make the change to carbon.xml.

              My ES themes: MetaPixel | Spare | Io | Indent

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

                @mattrixk @jdrassa

                Thanks both. I figured out the problem - which can be useful for future reference (particularly for @jdrassa ).

                The carousel is only correctly initialized if the first theme you have roms for has a corresponding theme folder. If not, it'll use the default.

                As I have an arcade folder, that's where it was trying to get carousel info from, which was incorrect.

                I suspect you may benefit from adding some more checks in the code on SystemView's::getViewElements .

                All is good then - thanks all!

                Z 1 Reply Last reply Reply Quote 0
                • Z
                  Zigurana @pjft
                  last edited by

                  @pjft said in Input needed: ES theming improvements:

                  The carousel is only correctly initialized if the first theme you have roms for has a corresponding theme folder. If not, it'll use the default.

                  I can comment on that one. Your observation is correct, but let me rephrase it :
                  ES will only populate the systemview theme elements carousel and systeminfo once, and applies those for all themes. If the first system has no explicit carousel or system info elements, it will fall back to the default ones.
                  In my tests, the theme had a central xml file placed in root, taking care of the common elements, as well as a separate xml files for each separate system. That would be the preferred location for the carousel element.

                  Now, if there really is a clear use case, we could consider extending the current implementation of carousels to allow multiple instances, one for each system. However other than varying the color for each system, I cannot justify the added complexity for that, at the moment at least.

                  If tetris has thought me anything, it's that errors pile up and that accomplishments dissappear.

                  pjftP 1 Reply Last reply Reply Quote 2
                  • W
                    Wulf @mattrixk
                    last edited by

                    @mattrixk I like your idea of filtering by genre. I'm probably joining in this brainstorming late, but another idea similar to this is color coding game text by some factor (genre, players, ranking, etc..)

                    1 Reply Last reply Reply Quote 0
                    • S
                      Syhles
                      last edited by

                      I'd like the choice of having a horizontal gamelist (basically how the carousel is Default) and options to load x-amount of md_images to go with it.

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

                        @Zigurana Thanks for the reply.

                        Let me begin by saying that I am not a themer, so I will certainly not produce any valid use case here :) That being said, at least allow me to explain what I expected the behavior to be, so that it may be clearer whether there's a mishandling of the element or not. But no, I'm not advocating for multiple instances by any stretch of the imagination.

                        Let me give you the following example to illustrate what happened here:

                        Theme "bla":
                        . bla.xml (with carousel definition)
                        + gb folder
                          . theme.xml (no carousel definition)
                          . logo.png
                        

                        If I only have the "GB" system here, this will load fine. If, however, I have "arcade" as the first system, this will not load the carousel.

                        If I create an arcade folder with its right content, the carousel will now load fine.

                        That is what I fail to understand. I would get that if the carousel was being defined in the individual systems' xml files (though I fail to see why that would be the case, though as I said, I am not a themer), but given that there's a central XML file that defines the carousel, why would the lack of a particular system XML file and folder, with no relation to the carousel, be messing those up? It should have no bearing on it whatsoever, I believe.

                        That was just my thought. If you feel that this scenario I describe should be working, then there is something we may need to look into (perhaps we're loading the systems' XML files before the main one? I haven't checked).

                        If you feel that it is working as intended, then it's fine by me - ultimately I just struggled to get a running example of it, but I'm now sorted :)

                        And just to make it clear, I don't expect people to use an incomplete theme or for it to work correctly. But in this case, this particular element I fail to see why it doesn't, so thought I'd bring it up.

                        Thanks for the great work here!

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          jdrassa @pjft
                          last edited by

                          @pjft As far as EmulationStation is concerned, there isn't really a central XML file. The use of a central XML file is more of an unofficial best practice. Each individual theme xml file imports the central XML file. When there is no theme XML file for a particular system, EmulationStation does not know to import the central file.

                          @Zigurana I don't think we need to support multiple carousel configs, but I iterate over the themes until one is found that has a carousel element, or maybe more generically, one that has a system view defined. I would need to test, but I suspect that in this case the loaded theme is completely empty. I added a hasView type method as part of a video fix a little while back. We could just check that to see if the current system theme has system view and if not check the next one. I will try and put together a quick fix tonight to test it out.

                          Get latest build of EmulationStation for Windows here

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

                            @jdrassa Got it, thanks for the clarification.

                            Indeed, if that's the case (and I had no idea that there usually wouldn't be a central file, and only existed as an import!), then yes, definitely iterating until you find one would be ideal.

                            Certainly I'd see no need to support multiple carousel configs, but other than that I think you're spot in.

                            Thanks.

                            1 Reply Last reply Reply Quote 0
                            • J
                              jdrassa
                              last edited by

                              @pjft @Zigurana Fix was pretty simple. I just submitted a pull request.

                              Get latest build of EmulationStation for Windows here

                              1 Reply Last reply Reply Quote 4
                              • ruckageR
                                ruckage
                                last edited by

                                @Zigurana
                                Hi. Is there a still a Windows version of ES with these improvements available? I saw a link earlier in the thread but it was dead. Thanks in advance for your help.

                                SNES mini/Nes mini/Famicom mini theme developer.

                                If you'd like to support my work you can donate here: Donate

                                alphatoanantA 1 Reply Last reply Reply Quote 0
                                • alphatoanantA
                                  alphatoanant @ruckage
                                  last edited by

                                  @ruckage check out @mattrixk's ES theme Toolkit.

                                  This release includes a windows binary with carousel and video support:
                                  https://github.com/mattrixk/es-toolkit/releases/tag/v1.1
                                  (also includes sample gamelists already populated with videos and images to get things setup quicker)

                                  There are more details in this thread:
                                  https://retropie.org.uk/forum/topic/9047/emulationstation-toolkit-theme-making-helper

                                  I have been using the above to build create themes on windows and its been awesome.

                                  My RetroPie Themes:
                                  Art Book https://github.com/anthonycaccese/es-theme-art-book
                                  Art Book Next https://github.com/anthonycaccese/art-book-next-retropie
                                  TFT https://github.com/anthonycaccese/es-theme-tft

                                  ruckageR mattrixkM 2 Replies Last reply Reply Quote 2
                                  • ruckageR
                                    ruckage @alphatoanant
                                    last edited by

                                    @alphatoanant Thanks, I appreciate it.

                                    SNES mini/Nes mini/Famicom mini theme developer.

                                    If you'd like to support my work you can donate here: Donate

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

                                      @alphatoanant said in Input needed: ES theming improvements:

                                      I have been using the above to build create themes on windows and its been awesome.

                                      Thanks @alphatoanant, that's great to hear! @herb_fargus had a big hand in putting the Toolkit together too.

                                      My ES themes: MetaPixel | Spare | Io | Indent

                                      herb_fargusH 1 Reply Last reply Reply Quote 2
                                      • herb_fargusH
                                        herb_fargus administrators @mattrixk
                                        last edited by herb_fargus

                                        @mattrixk team effort ;) thanks to @jdrassa for the ES builds of course

                                        If you read the documentation it will answer 99% of your questions: https://retropie.org.uk/docs/

                                        Also if you want a solution to your problems read this first: https://retropie.org.uk/forum/topic/3/read-this-first

                                        mattrixkM 1 Reply Last reply Reply Quote 2
                                        • mattrixkM
                                          mattrixk @herb_fargus
                                          last edited by

                                          @herb_fargus Of course! Mega props to @jdrassa for the Windows build.

                                          My ES themes: MetaPixel | Spare | Io | Indent

                                          1 Reply Last reply Reply Quote 2
                                          • S
                                            Syhles
                                            last edited by

                                            Is anyone working on making the menu themeable? Also is anyone working on making the rest of metadata images usable?

                                            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.