Modifying original source
-
Hey guys,
Before I jumped head long into doing it, I wanted to see what the retropie community though, even though it's more-so related to emulationstation.
I am building a custom console called xcade. I am building it for personal use, but wanted to do as much custom work as I could to it. I was looking at the source code for emulationstation today, and noticed that the emulation station theme itself (the menus, windows, etc) is all hard-coded into the source.
Would the community, and contributor, have a problem with me modifying the source to use my own graphical elements, and recompiling for use personally? Of course, I would clone the repository and share my work with everybody, but wanted to know if it were possible, or against the terms of use or anything.
Basically just want to change the white/greyish backgrounds to match my theme I am building, and also to change the UI elements to match better, too for a more seamless look.
-
@masteryoer here is the licence for emulationstation:
https://github.com/RetroPie/EmulationStation/blob/master/LICENSE.md
I don't see any issue with what you describe, looking forward to seeing your build!
-
Nice! Now I just need to find out how to tell retropie-setup.sh to use my git repository, instead of the actual emulationstation one. Then, I can change all my stuff locally, rebuild and test. I should do it on my windows machine first though to get the process down as it takes a long time to build ES on my pi1b.
-
@masteryoer you should be able to use this file as a guide. It will add an additional option in the experimental menu.
-
@jdrassa I am not sure what the 'expiremental' menu is. Is that the menu that installs the emulationstation ?
-
@masteryoer when you run retropie-setup.sh, the normal process to install/update emulationstation would be to select 'Manage packages' -> 'Manage core packages' -> 'emulationstation'.
The file I linked to is currently included in retropie-setup.sh and can be used to install a different fork of emulationstation. You should be able to copy the file, rename it, and updated it to point toward your fork on github. To access the option, in retropie-setup.sh, you would select 'Manage packages' -> 'Manage experimental packages' -> 'emulationstation-kids' ( this last option would change to whatever you choose to name it)
-
Would I be able to add another one to that list, instead of overwriting emulationstation-kids ? I looked at emulationstation-kiosk and kids, and both of them do some things I had planned to do with the UI. (Removing scraping, changing the UI, etc), so I wouldn't think it would be very hard to duplicate it. I could probably start with just forking the kid version and changing that.
So when you change the UI mode in the config, does it actually recompile the right version and then load it up, or does it install each one in a different location, and change the config to point to whatever location?
-
@masteryoer that script will install a fork of emulation station that has been modified to specifically add the different UI modes (kids / kiosk). I believe, once installed, you can switch between modes using the menus. I haven't actually used it.
-
Right I'm just trying to figure out if it's actually just modified source it loads up with the elements missing or if it's special code that's ran inside the original source.
-
@masteryoer my understanding is that the source was modified to selectively disable certain things when a UI mode is activated.
-
@masteryoer look at this line:
https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/supplementary/emulationstation-kids.sh#L22as you can see, it points to a different repo (a fork of emulationstation).
-
Hey, I made the Kid-modes fork, AMA!
-
@Zigurana When will it be updated/included in the offical ES build?
-
@dankcushions Right, I saw that. My question was related to how the emulationstation-kids fork actually works. Is it just another full emulationstation source with the selective things removed out of it, or is it an addition/module for the emulationstation source?
-
@masteryoer said in Modifying original source:
@dankcushions Right, I saw that. My question was related to how the emulationstation-kids fork actually works. Is it just another full emulationstation source with the selective things removed out of it, or is it an addition/module for the emulationstation source?
it's a full source. i mean it has to be if it's a fork and is the only source when building.
-
That was what I was after :) Since the 'kid' version is the most lightweight, and more what I am looking for, it's what I will base mine off of. I'll just reverse the changes to only show 'kid friendly' games in the game lists, so that all games show up instead, as well as doing some more custom work, like changing the UI elements to match my theme (black and lime green ftw).
In looking at the source code, I noticed there's an option for a horizontal or 'vertical' carousel on the main systems view. I don't recall ever seeing a config option anywhere for changing this. Is this a WIP option?
-
@masteryoer that's a pending PR for a vertical carousel. It's still being tested
-
Hmm, so I guess I don't understand how the modules work after all. I created a new script called emulationstation-xcade.sh and changed the stuff around, and it shows up in the retropie experimental builds list, but once I try building from source I get a unable to build, cannot locate /tmp/build/emulationstation-xcade/emulationstation). I copied the .sh script from emulationstation-kids and changed all the stuff referencing -kids over to xcade, so I am not sure why that one builds but mine doesn't.
-
@masteryoer Can't advise without any information - Post the module and build log.
-
Nevermind, I am a dummy. The log was misinformative. It ended up being my source repository didnt have my latest changes, in which I was using an undefined definition.
I updated the repository and it's fixed now.
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.