Error compiling EmulationStation with custom icons
-
So I was reading this page and trying to compile the icons into emulationstation but I am having some trouble.
I tried to use res2h as per:
@jacobfk20 said in How to change button icons? [DONE]:
@masteryoer Use the Beta release 0.3.2. It outputs the headers and source identical to the original ES resources. This is the exact command I used as well.
res2h resources converted -h Resources.h -u ResourceUtil.cpp -s
*This was done in windows.It matched ES's original resource.h and resourceUtil.cpp exactly, though some files were in different orders.
I used the oldest version, the newest version, and the reccommended 0.3.2 version but none of them worked.
Here is a link to a .cpp file that was generated (help__button_a_svg.cpp)
Here is ResourceUtil.cpp
Here is Resrouces.h
I am able to compile it no problem without making any changes.
I get this error when i attempt to "make" emulationstation after copying everything in the data folder to the Pi:pi@retropie:~/Emulationstation $ make [ 1%] Built target nanosvg [ 3%] Built target pugixml [ 72%] Built target es-core [ 73%] Linking CXX executable ../emulationstation ../libes-core.a(ResourceUtil.cpp.o): In function `__static_initialization_and_destruction_0(int, int) [clone .constprop.24]': ResourceUtil.cpp:(.text.startup+0x11a0): undefined reference to `help_analog_down_svg_size' ResourceUtil.cpp:(.text.startup+0x11a4): undefined reference to `help_analog_down_svg_data' ResourceUtil.cpp:(.text.startup+0x11b0): undefined reference to `help_analog_left_svg_size' ResourceUtil.cpp:(.text.startup+0x11b4): undefined reference to `help_analog_left_svg_data' ResourceUtil.cpp:(.text.startup+0x11c0): undefined reference to `help_analog_right_svg_size' ResourceUtil.cpp:(.text.startup+0x11c4): undefined reference to `help_analog_right_svg_data' ResourceUtil.cpp:(.text.startup+0x11d0): undefined reference to `help_analog_thumb_svg_size' ResourceUtil.cpp:(.text.startup+0x11d4): undefined reference to `help_analog_thumb_svg_data' ResourceUtil.cpp:(.text.startup+0x11e0): undefined reference to `help_analog_up_svg_size' ResourceUtil.cpp:(.text.startup+0x11e4): undefined reference to `help_analog_up_svg_data' ResourceUtil.cpp:(.text.startup+0x11f0): undefined reference to `help_button_a_svg_size' ResourceUtil.cpp:(.text.startup+0x11f4): undefined reference to `help_button_a_svg_data' ResourceUtil.cpp:(.text.startup+0x1200): undefined reference to `help_button_b_svg_size' ResourceUtil.cpp:(.text.startup+0x1204): undefined reference to `help_button_b_svg_data' ResourceUtil.cpp:(.text.startup+0x1210): undefined reference to `help_button_hotkey_svg_size' ResourceUtil.cpp:(.text.startup+0x1214): undefined reference to `help_button_hotkey_svg_data' ResourceUtil.cpp:(.text.startup+0x1220): undefined reference to `help_button_l_svg_size' ResourceUtil.cpp:(.text.startup+0x1224): undefined reference to `help_button_l_svg_data' ResourceUtil.cpp:(.text.startup+0x1230): undefined reference to `help_button_r_svg_size' ResourceUtil.cpp:(.text.startup+0x1234): undefined reference to `help_button_r_svg_data' ResourceUtil.cpp:(.text.startup+0x1240): undefined reference to `help_button_select_svg_size' ResourceUtil.cpp:(.text.startup+0x1244): undefined reference to `help_button_select_svg_data' ResourceUtil.cpp:(.text.startup+0x1250): undefined reference to `help_button_start_svg_size' ResourceUtil.cpp:(.text.startup+0x1254): undefined reference to `help_button_start_svg_data' ResourceUtil.cpp:(.text.startup+0x1258): undefined reference to `help_button_x_svg_size' ResourceUtil.cpp:(.text.startup+0x125c): undefined reference to `help_button_x_svg_data' ResourceUtil.cpp:(.text.startup+0x1260): undefined reference to `help_button_y_svg_size' ResourceUtil.cpp:(.text.startup+0x1264): undefined reference to `help_button_y_svg_data' ResourceUtil.cpp:(.text.startup+0x1268): undefined reference to `help_dpad_all_svg_size' ResourceUtil.cpp:(.text.startup+0x126c): undefined reference to `help_dpad_all_svg_data' ResourceUtil.cpp:(.text.startup+0x1270): undefined reference to `help_dpad_down_svg_size' ResourceUtil.cpp:(.text.startup+0x1274): undefined reference to `help_dpad_down_svg_data' ResourceUtil.cpp:(.text.startup+0x1278): undefined reference to `help_dpad_left_svg_size' ResourceUtil.cpp:(.text.startup+0x127c): undefined reference to `help_dpad_left_svg_data' ResourceUtil.cpp:(.text.startup+0x1280): undefined reference to `help_dpad_leftright_svg_size' ResourceUtil.cpp:(.text.startup+0x1284): undefined reference to `help_dpad_leftright_svg_data' ResourceUtil.cpp:(.text.startup+0x1288): undefined reference to `help_dpad_right_svg_size' ResourceUtil.cpp:(.text.startup+0x128c): undefined reference to `help_dpad_right_svg_data' ResourceUtil.cpp:(.text.startup+0x1290): undefined reference to `help_dpad_up_svg_size' ResourceUtil.cpp:(.text.startup+0x1294): undefined reference to `help_dpad_up_svg_data' ResourceUtil.cpp:(.text.startup+0x1298): undefined reference to `help_dpad_updown_svg_size' ResourceUtil.cpp:(.text.startup+0x129c): undefined reference to `help_dpad_updown_svg_data' collect2: error: ld returned 1 exit status es-app/CMakeFiles/emulationstation.dir/build.make:1167: recipe for target 'emulationstation' failed make[2]: *** [emulationstation] Error 1 CMakeFiles/Makefile2:274: recipe for target 'es-app/CMakeFiles/emulationstation.dir/all' failed make[1]: *** [es-app/CMakeFiles/emulationstation.dir/all] Error 2 Makefile:149: recipe for target 'all' failed make: *** [all] Error 2
Hoping that @masteryoer @frgn @jacobfk20 or @herb_fargus can chime in :)
-
@madmodder123 Yay!, I was finally able to figure it out.
I had to make it so the Resources.h and ResourceUtil.cpp and the /converted/*.cpp files so they match the same format as the original fileschanging
size_t
to
uint16_t
&
unsigned char
to
uint8_t
With an exception or two!
Then changing the "help_button_a_svg" files/references to the files (in the files listed above) to "help__button_a_svg"
Hope someone finds this helpful!
-
@madmodder123
Hey. Will it be possible to change the font and PNG resources in this way? I have long wanted to modify the ES by changing the built-in font to a pixel one, and some graphics elements (background, switches, selector, etc.)If you understand and you can compile this, please try to change these resources. Thank you for your work.
-
@frgn So I just replaced opensans_hebrew_condensed_light.ttf and opensans_hebrew_condensed_regular.ttf with some font i downloaded from the interne (i renamed them to the same names) and then used res2h to convert them, after editing the converted files with the method listed above I was able to compile ES and it worked fine.
I recommend trying this out for yourself so you can compile future versions of ES :)
Also I am having trouble editing the .SVG files, when I make my own they are completely translucent, ill update if I find out how to fix them. Editing PNGs should work just fine
-
@madmodder123 many thanks! I will try.
-
@frgn http://www.1001fonts.com/search.html?search=pixel&x=0&y=0 this is a good site for free fonts
also .SVG files made with Photoshop CC 2017 did not work correctly for me so I used Inkscape 0.91 to edit .SVG files. I'm not sure if newer versions of Inkscape work but 0.91 does for sure. -
@madmodder123 I changed the vector images of buttons to symbolic (playstation). I converted them from a raster to a vector in an inscape.
In this thread, @jacobfk20 helped me with the compilation, and everything worked.
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.