How to change button icons? [DONE]
Hi guys! I'm doing my theme, and faced such problem.
I use dualshock 2 controller (from PSOne). As is known, its buttons are different from those displayed in the GUI.
I tried to look for them in PNG and SVG images, but found nothing. Most likely they are hidden somewhere in the depths of the system. But, even if I could find the files with icons - is there a way to replace icons of the buttons?
Any help would be useful.
Picture in order to understand what I want to get.
with the help of @jacobfk20 my idea is implemented. thanks to him!
lilbud last edited by
@frgn I believe they are hardcoded into ES
@lilbud I found out that the icon files are stored in emulationstation file (/opt/retropie/supplementary/emulationstation). Extension this file is potentially to ELF.
I read Wikipedia, it says that this file is used in UNIX operating systems, and can contain a variety of resources (such as dll in windows).
Further, I found the source code retropie.
On this page you can see it files of icons have SVG format.
I do not know how to open and edit this file (emulationstation). but it is a solution to my problem. Probably need disassembling skills. Unfortunately, I do not have such skills. Maybe you have any ideas on this?
My quest complicated by the fact that I am from Russia and do not know much English.
@frgn you don't need any disassembly, you just need to edit the source code to include your svgs and recompile it.
@herb_fargus what tools are needed for this?
Capeman last edited by
It would be cool if the retropie team would change the ES version source code to make things like button icons and ES splash screen load from outside files (same as game artwork) so re-compiling wouldn't need to be done to update these sort of things.
@Capeman I agree with you!
And related - the source code and svg's of the file 'emulationstation' are is on githab.
I tried to follow the instructions and assemble them again (after changing some images), but after compiling a file does not start because of an error in the code. Unfortunately, I know nothing about C ++.
Maybe someone more skilled in C ++ will see this message, and try to do it.
For that I leave a link to the file with modified icons and a link to githab.
We will do better together emulationstation! :)
source code: https://github.com/RetroPie/EmulationStation
upgrade icons (svg): https://mega.nz/#!gdRjHTQB!I-cbX15YRBcvYgyDGNxeJPHoQdoz8au_OfTMBY4WBQo
@frgn it's not as simple as swapping out svgs, they have to be converted to binary code with res2h first
@herb_fargus res2h.exe easy to use on windows. I can add a link to ready .cpp files
Except images, I re-generated the cpp files. Error occurs just after the compilation. Even if collect original source files - file "emulationstation" still runs with an error.
I think the problem is in the description for the assembly of a binary file.
But more likely a problem with me. I'm a lamer. :c
If I'm wrong - sorry to trouble you.
Be sure to give it permission to execute with
I compiled with the latest Retropie branch.
Oh no, I made a mistake with the scale of the two buttons (select and start) - it can be fixed?
I have changed the svg Images, it remains only to collect them again. help me again?
Embarrassing happened... uncomfortable to ask you again about this :c
@jacobfk20 ok. thank you, man :)
I have one more question - whether the possible change font gui? for him too need to generate cpp?
@frgn No problem, glad to help :)
ES font for MAIN MENU and other Gui menus are hard coded. At a quick glance I think the quick way would be to change es-core/resources/font.cpp Font::get() to pull from a different path if path is empty, or change the default path to the new font you want. I'm not too familiar with how ES handles fonts so someone else may have a better answer than me.
OK, I understand you.
if you will do it - please let me know about it.
@frgn I would do this for you but if you ever update to the newest ES build it will overwrite any change done unless you cherry pick. Actually, updating even now will overwrite the changes to the button icons you have done.
With that said-- you may like one of the next updates I'm about to release for my mod.
enderandrew last edited by enderandrew
@jacobfk20 That was really awesome of you to do a one-time compile and host it, but future ES updates on the RetroPie will revert this. We really need an upstream fix in the ES repository that allows for loading these files remotely, or perhaps just selecting from a menu that you want to see SNES button layout, XBox button layout, PS button layout, etc.
@enderandrew I said this in the post above yours that's why I do not want to do the second request, especially since I'm working on a branch for my fork that does exactly that.
Also, thanks for creating the issue. I may do a pr after I test it in my fork for awhile.
@jacobfk20 I'm not going to do the update ES, since I do not see the point.
you could replace the font (including the last modifications)? in the archive are two types of font, as in the original ES. as well as button icons.
you are my hero! :)