Grid View EmulationStation Mod Ideas
-
@lilbud Sure I can upload it. I'll do it sometime this evening.
@mattrixk My linux box is back up and running. Just reinstalled xubuntu and rebuilt everything with the retropie setup script. I'll be pushing an x86 build in an hour or two.
Edit: Added x86 build to drive. It also has a slight modification to hopefully fix margin between tiles.
-
Pretty minor update tonight.
- Just changed how margin works between tiles. (margin of 0 0 will put tiles right next to each other)
- Tiles load slightly faster. (this is a simple number change, I slowly am able to increase this speed as things get more stable)
- The Dynamic Loader should not leave you "stranded." As in, if the user is hovering over an unloaded tile, it'll notice it's unloaded and force an update.
Both (rpi & x86) have already been pushed to my google drive.
@lilbud I also put my theme.xml in that folder as well. I had n64 set to gridsize 6p.
-
@jacobfk20 I was talking with another dev about the whole gridview thing: some exerpts our conversation:
in my opinion a good design would e to support custom grid resolutions (eg. fixed 5x3, or fixed 2 rows and "fill as much as possible horizontally" with some padding), and the box arts would then scale accordingly
in the code default and grid mode is a dcompletely different class, with their own variables and stuff
ideally, there'd be one view class, which'd just apply whatever theme you throw at itI'm not super familiar with the backend and everyone has their own way of implementing things and I like what you've come up with thus far. I liked the mockup of what @lilbud posted where there is the infobox with metadata per game kinda like kodi. In terms of the code, The metadata is already there for the detailed view so in terms of the view class for the grid view I think as you said it should be simple enough to include those in theming like they are for the detailed theme and then people can set up their themes accordingly (e.g. with the material theme I could make the left side system panel a right side metadata panel like kodi)
I'm going to have to play around some more with theming with all your changes and see what I can come up with.
-
@jacobfk20 said in Grid View EmulationStation Mod Ideas:
Both (rpi & x86) have already been pushed to my google drive.
How do I use the x86 file? Do I just swap it for the one /opt/retropie/supplementary/emulationstation/ ?
-
@herb_fargus This is what I have been brewing up. I can't get any of the metadata to show.
-
@herb_fargus One of my end goals is to remove the "UI settings" from the gamelist menu. So I do want to give the themer the power to use detailed view elements with grid view and have complete control over the grid layout. Giving detailed list elements could possibly be done by just having gridview inherent from Detailed List view instead of ISimple List view. This will keep it in two different classes, me sane, and gridview will then have all possible elements.
@mattrixk You can do that. I think you can just run it with, from terminal, while cd'd to its dir.
./emulationstation@lilbud Liking the look. Metadata is not added. I will try to do that this weekend.
-
@jacobfk20 well carry on my good sir.
@lilbud I like the look (also saves me the trouble of rotating all the logos even though I already did)
-
@jacobfk20 Okay, I thought it was something on my end.
-
@jacobfk20 also not sure if bug or feature but
<ninepatch name="gridtile_background"> <path></path> <color>FFFFFF00</color> </ninepatch>
The above will segfault if there is no path or if the path doesnt resolve to a real file.
Also the left align is cool and all but it makes the grid view seem off if the theme is centered and there is still a gap on the right but not on the left (not sure if thats due to the position defaulting at 0,0) but anyways I know you had mentioned the grid area as a whole is something you're still hashing out so I won't bug you too much about it right now
-
@herb_fargus I was able to reproduce that bug and it has been fixed. It'll be in the next build.
Yeah, I'm still trying to figure out the best way to have the grid build itself. It's pretty difficult when every system has a different tile size and aspect ratio.
A couple ways to make gridview be more uniform and look center is:
- Have themer define a set grid size, such as 5, 3 and have grid view create tile size or take defined size and set its own margin
- Take a themer's defined tile size and fit as many as it can in a grid and adjust margin accordingly.
But go ahead and bother me with that. I'd like to know other solutions I could try.
Also, thanks for reporting the bug :)
-
@jacobfk20 So in the theme.xml, we can manually set a grid size and ES will automatically fit the grid?
-
@jacobfk20 thanks for fixing that.
There are more or less two methods to build the grid as you said
-
define a max size for each boxart
-
define a grid of rows/columns and just have the boxart adapt accordingly
-
or a hybrid of both where you can define a grid and set a max size/ or dimension for each box art.
This is also assuming that the grid container can be defined and the grid configs will work within those constraints.
Eg if I've got a header/footer in my theme I should be able to define a 6x4 grid whether the container is the full screen or scaled down to fit within the header and footer
Then as an added theming option you could have a padding option between images in the grid so that they are touching or have a gap between each game (around all 4 edges) which i guess is sorta related to defining a max size/dimension for boxart
Also the dimension issue is why I use screenshots for my art with gridview
-
-
@lilbud It is only an idea right now. But it's one of my ultimate goals currently.
@herb_fargus If I go with setting the grid to a set row and column then I'd like to add different sizes the themer could set up. like:
<container name="grid_setCells_default"> 6 4 </container> // This would be the default size
<container name="grid_setCells_big"> 4 2</container> // This is if user selects a bigger size.Maybe have small, medium, and large instead of the current 0-15p option in UI settings.
-
@jacobfk20 yeah I like that idea a lot. The simpler the better I would think
To simplify the function couldn't you just have a size tag like <size>small/med/big</size>
-
I like this idea:
- set the size and position of the overall grid container.
- set the number of tiles in the grid (eg specify 6x4 for small tiles, 4x3 for medium tiles, 3x2 for large tiles).
- set the padding around the tiles for the background image.
- set the margin between the tiles.
- that let's the system set the size and placement of each tile within the set container, based on what you've specified.
-
@lilbud said in Grid View EmulationStation Mod Ideas:
@mattrixk First, I redid it. Second, I got the outline working.
Third, I updated the Material theme to have this change.
That screenshot is just so darn beautiful! I want to have it exactly like that! Please provide details how to switch layout when you guys are finished doing your magic...
-
@mattrixk Would this be possible?
-
@Arcuza I think I updated the theme to look like that.
-
@lilbud said in Grid View EmulationStation Mod Ideas:
@mattrixk Would this be possible?
I have no idea, but it sounds like it might be, given what @jacobfk20 and @herb_fargus were talking about. One can hope.
-
@lilbud It's what I'm currently working on. I am taking my time on it though...
I've noticed that if anyone uses <color> or <padding> with any ninepatch element then your theme will no longer work on the master branch of ES. I added in these theme options and are not available on upstream. I will change the tilegrid_background element to an Image instead of a ninepatch in the next build. It will take ninepatch still, but change Ninepatch to Image for compatibility with the master branch. Image does not do <padding>
I will also start adding MetaData elements to gridview slowly over updates.
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.