Grid tile content (image, text, or more ...)
-
@ectoone I removed the md_image metadata because it made no sens in a grid view to display the exact same image that is already in the grid on the side of the screen with other metadata, as a "md_name" metadata field wouldn't make sens in the detailed view, as you are already using the game name to choose the game you want.
But about image and thumbnail, I must admit I don't know much about it, I assumed the thumbnail was just a smaller version of the image, like it is usually. Until now I just scrapped my game images using ES scrapper and nothing else. Is customizing the images something common ? How do you do it ? What tool, software is the most commonly used ?
For the video there is nothing planned right now, as most of the video related stuff is already and only usable in the video view, I would need to duplicate a lot of code with current implementation. We would need to first refactor all the code related to game views, to create one, unique view, where the theme maker would choose one way for the user to choose its game (either the text list or the grid), and then add all the extra stuff he want. This is a big task and won't be done anytime soon.
-
@herb_fargus As I said in the message right above, I never tried to customize the images. Is this something common along the RetroPie user base ? How do you do that ? What tool/software should I look at ?
-
I just wanted to say thank you for taking on this project. I'm looking forward to it.
-
@a12c4 Ok, first off. I totally appreciate all the work you and everyone else is doing!
But here is the problem, often when a new thing gets implemented it is somewhat restricted. I can understand that it sometimes is not possible to do everything easy but I also believe that some things are easy to add. Like not having md_marquee in detailed view, or having md_name just in grid view. That makes it difficult for me to create certain effects in themes and the need to find workarounds for some things which often don't look good. I asked before if it would be possible to get the game name as variable, because I was working on a theme where it would look better, instead i had use a one line gamelist element, which was bad because of the scrolling and some other things.
As for the md_image in grid view, I could see the use of having a bigger image of the selected game on smaller displays.Anyways, for the customization of images: First thing is that we have three available tags now to display images:
<image>
which is used for boxart<marquee>
for the game logos- and the recently fixed
<thumbnail>
which will be displayed if a video has a set delay and the option to show an image is set. If no<thumbnail>
is available in the gamelist.xml it will show the<image>
instead.
For every tag you can show whatever you want, the build in scraper only scrapes boxart (unless that was updated) and adds the
-image
suffix.I assume there are multiple ways to select what image you want to appear in which tag. But I will only tell you how I did it before.
I used Universal XML Scraper, with a modified profile to scrape all media files i wanted (boxart, screenshot, marquee and video) on my PC. Sadly, UXS has no option to directly put the different medias into it's own subfolders, so i had to use suffixes, separated them afterwards and bulk removed the suffixes. I ended up with having 4 folders which contain the media, which have the same name as the Rom. Then I had to remove all suffixes from the new gamelist.xml and change the paths to contain the separate folders.
A basic entry for a game looks like this:<path>./Shinobi (USA, Europe).zip</path> <name>Shinobi</name> <image>./_boxart/Shinobi (USA, Europe).png</image> <marquee>./_marquee/Shinobi (USA, Europe).png</marquee> <video>./video/Shinobi (USA, Europe).mp4</video> <thumbnail>./_screenshot/Shinobi (USA, Europe).png</thumbnail>
If grid view gets released and for some reason I want to use screenshots as tile images, all I have to do, is to rename the folders. No messing around with the gamelist, no bulk renaming of the files.
Here is another example, why I hate being restricted as theme maker. Before
<thumbnail>
was fixed, I used<marquee>
to show screenshots along with the normal<image>
in my theme. Now I can have three images, but only if I either don't have<video>
in my gamelist (not really sure about this, never tried it) or i have all tags but use a different folder name for videos (I should mention that I don't use videos, but I want them scraped). Then I still have to manually set ES to use video view and if I don't set it also to parse gamelist only, the entry for the<video>
will be deleted from the gamelist because it can't find them. If I ever want to use videos, I can't just rename my video folder, i need to have a backup of my gamelist. Also with parse gamelist only, I can't use the lastplayed collection (not a problem, because for some other reason i have to use parse gamelist only anyways). Some of these steps seem so unnecessary to me.Edit: The theme from @chicuelo is a good example. It was designed to use screenshots as main image, but we can't just use md_thumbnail in detailed view, if we want the same look, we have to use the methods I mentioned. Either by using video view (easy to achieve for people who actually use videos) or by using screenshots as
<image>
. By using the last method we can't simply switch themes, because some don't look as great with screenshots. -
@ectoone I don't want to start an off-topic discussion, but since you mentioned your scraping problems, and in case you or others don't know already:
Steven Sselph's scraper from Retropie's optional packages has command line arguments to scrape into different directories, put custom paths for images or roms into the gamelist.xml, as well as define or omit suffixes. Those options are not available via the scraper's setup menu.
It doesn't scrape existing images again by default, so creating a new gamelist.xml with a different existing directory structure should take not very long when only mere text is being scraped (title, description etc.). Alas, there's no option to only update certain tags of existing gamelist entries, like "scrape only descriptions".
-
You can find my latest proposition regarding the theming syntax on GitHub. This is what the theming syntax which will be used in the V1 of the grid view, so it may be extended by the future, and small adjustments may still be done before.
Does it look good to you ?
Is the syntax explicit and easy to understand ?
Is the way the different elements are handled between default (unselected) tile and selected tile make sens ?https://github.com/RetroPie/EmulationStation/issues/206#issuecomment-379541647
-
@ectoone Thanks for the explanations, I will give it another look later on and try this scraper, along with taking a look to the code to see if I can do something about your issues. Basically just saying I'm not ignoring your nice answer, but right now all my focus is dedicated to finishing the first version the grid view.
-
Hi, looking good with what you've done so far! keep up the good work!
I was just wondering, like @EctoOne mentioned regarding the selection of image (image/marquee), is this going to be selectable when theming?
Also, can it be used vertically (one (single) column)?
And last of all....is it a separate element to everything else (video tag, marquee tag, image tag, gamelist tag etc)?Cheers! :)
-
@paffley Yes it can be used with one single column.
Technically you can also have one single row, but the behavior will be weird, as the grid can only scroll vertically right now, but I've planned to allow the theme to change the scroll orientation (vertical by default, horizontal as an alternative), if that doesn't add too much complexity to the code and/or many people can find a good usage to that.
About your second question : no the grid view doesn't support video as I said numerous times, but that may changes in the future if we merge all the views (basic, detailed, video and grid) into one single, modular game view. But that isn't for today nor tomorrow.
gamelist tag etc)?
Even if we do what I said, that won't be allowed, you can't select games using both the image grid and the text list, since they have different controls, you will have to make a choice in your theme regarding that point.
-
@ectoone Also wanted to say some changes you requested may look straight forward, but they are not.
For example, adding md_title to all the view will break all the available theme, because to be consistent with other metadata, the md_title will be shown if the theme don't specify it position to offscreen.
I just can't break all the available themes and ask them to update it every time I change a small thing like that.
On another hand, if I do a complete refactoring of the game list views, to merge all this mess into a single, modular game list view, then I will answer most of your concerns in one single time and may ask the theme makers to update their theme to this new, stable and easier to maintain theming syntax.
-
@clyde Thanks for the suggestion, I probably won't try/use it because I already have gamelists/media for all my games (and barely add anything new, and if I do it's a Romhack anyways) but maybe I just take a look for fun.
@A12C4 The proposition looks easy enough to me, although I have some questions: What are
<backgroundColorCenter>
and<backgroundColorEdge>
exactly doing? Is that some kind of gradient or is<backgroundColorEdge>
supposed to be some kind of tile border?And once again, I'm grateful of what you're doing and I know how important grid view is to you (at least I've seen on github that you wanted to get this out as soon as possible) don't ever feel pushed by me or anybody to add something just because they want it. ES does look good enough and it can run games. That's good enough for me.
PS: I remembered where I wanted
<md_name>
as element, it was for my Invaders Theme. I wanted to use the gamelist to be the Invaders, to have the option to move them up/down manually. Because the Invaders are a font, there was no way to see the selected game name and i had to use<md_description>
as the Invaders.
Point is, (no offense) just because something doesn't make sense to you, somebody might be able to make something nice out of it if he/she has the option to try it out. So don't take away (simple?) things. :) -
@a12c4 Looks good to me. But will there be a way to control the numbers of rows and columns?
-
@lilbud good question actually. i assumed that the numbers where defined by the grid size so that it adapts to various screen resolutions.
-
The proposition looks easy enough to me, although I have some questions: What are <backgroundColorCenter> and <backgroundColorEdge> exactly doing? Is that some kind of gradient or is <backgroundColorEdge> supposed to be some kind of tile border?
<backgroundColorEdge> is the tile border, not a gradiant, but you can still insert a gradiant manually in the image you use as the tile background. I need to try it out, but it shouldn't render badly due to the way the background is resized (the background image is splitted in 9 part so the corners don't get distorted and the borders are only distorted on one axis, only the center is completly distorted but should be hidden by the game image). As I said I need to try it out to be sure.
Point is, (no offense) just because something doesn't make sense to you, somebody might be able to make something nice out of it if he/she has the option to try it out. So don't take away (simple?) things. :)
I still have to make design choices somehow, and not supporting a feature which have no use case allow lighter and easier to maintain code. That's why I wanted to open the debate to more people and created this post on the forum, so I can have more feedback and maybe reconsider some design points due to new informations.
-
@lilbud This is where the fun begin, I hope you like maths :)
The number of rows and columns depend on the grid size, its margin, and the default grid tile max size.
The formula is the following :
GRID_SIZE = COLUMNS * TILE_SIZE + (COLUMNS - 1) * MARGIN
(same formula for the rows, note the "COLUMNS - 1" as we always have one less margin than column)Let's say you want a grid which take 80% of the screen, and 4 columns and rows.
The grid size will be 0.80 0.80 and we have 4 columns, this leave us with the following formula :
0.80 = 4 * TILE_SIZE + 3 * MARGINWe want to add small margin so the tiles are not too close to each others, let's say 0.03
So if I take back last formula and replace the margin with its value, this give us :
0.80 = 4 * TILE_SIZE + 3 * 0.03
<=> 4 * TILE_SIZE = 0.80 - 3 * 0.03
<=> 4 * TILE_SIZE = 0.71
<=> TILE_SIZE = 0.1775I hope you like it, this is @jdrassa idea :)
EDIT : Also note that this is just the tile size, the image will adapt to the tile size (minus the padding) but keep it aspect ratio, and the background fit the image size (plus the padding). I will post a screenshot of it later today so you can better see what I'm taking about.
-
@a12c4 said in The Grid View need your opinion:
For example, adding md_title to all the view will break all the available theme, because to be consistent with other metadata, the md_title will be shown if the theme don't specify it position to offscreen.
md_title could be added to other views without breaking any existing themes. The key to preventing it from effecting existing themes would be to specify a default position in the code that is already off screen.
-
@jdrassa said in The Grid View need your opinion:
md_title could be added to other views
Do it. Seriously a lot of themes could benefit from it.
-
@jdrassa Which would bring inconsistent behavior as it's the only metadata positioned offscreen by default.
Not that this is a big deal by itself, but the code related to the game views is already so fcked up, I would prefer not adding another thin layer of complexity to something that is already a giant mess.
While a unique and modular game view would solve both this problems (messy code and different metadata) at the same time.
EDIT : What about md_marquee ? What about md_image ? Should we really spend time duplicating code all around instead of refactoring as this should have been done a long time ago ? I don't think so and I don't want to do that, if you want to, then go ahead and do it, but I don't support that.
-
https://github.com/Koerty/es-theme-material
Wasn't the background color of the selected tile blue before ? Maybe it changed because I use different default values.
https://github.com/Koerty/es-theme-moderntv
This one look super bad because you set the path of the background to :
<path>/home/pi/RetroPie/splashscreens/modern/bg.png</path>
This is an absolute path and I don't have the image. Unless I missed something and the image is installed somehow with your theme, you should add the image to the git repository and set the image path with a relative path.
-
@a12c4 You gotta add your own image. I designed the theme so that any image can be used, but the user has to supply the image.
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.