Input needed: ES theming improvements
-
-
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!
-
@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.
-
@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..)
-
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.
-
@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!
-
@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.
-
@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.
-
-
@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. -
@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-helperI have been using the above to build create themes on windows and its been awesome.
-
@alphatoanant Thanks, I appreciate it.
-
@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.
-
-
@herb_fargus Of course! Mega props to @jdrassa for the Windows build.
-
Is anyone working on making the menu themeable? Also is anyone working on making the rest of metadata images usable?
-
Is it possible to define a background image to use for the carousel bar or if not could it be added? I realise you could just make it part of the system background but then it will either scroll or fade depending on transition style. Ideally it would remain visible and stationary at all times as a background to the carousel itself. It would perhaps also be useful for it to have it's own size/pos independent of the carousel to allow exact positioning of logos in relation to the graphic.
-
@ruckage You could always just add an extra image
<image name="carousel_background" extra="true">
, then you can style it independently. Granted it will still fade/slide with the background image, but it's the closest you'll get to what you want. -
@mattrixk said in Input needed: ES theming improvements:
@ruckage You could always just add an extra image
<image name="carousel_background" extra="true">
, then you can style it independently. Granted it will still fade/slide with the background image, but it's the closest you'll get to what you want.Yeah, I know I can do that, that's what I'm currently doing (it's what I perhaps badly described as 'make it part of the system background' - should have said 'system view' maybe) but that doesn't help with sliding/fading.
Since it's not supported consider it a request, I think it would be a worthwhile addition.
-
@Zigurana Would a left align carousel be possible?
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.