EmulationStation Carbon theme Controller art

Here is a 10 minute WIP on a Game Cube controller.

Obviously it needs buttons, sticks and a d-pad, but these things should be pretty quick work.

1 Like

Another 10 minutes.

And done in another 10.

The system graphic will be even quicker.

I can modify the theme xml files for drop-in convenience and add this to a folder in my repo for testing. (If you want. :upside_down_face:)

We would have to decide on a folder naming convention for the new systems if one doesn’t exist, (Something in line with the existing ones.) if there is any hope of doing a PR and getting these included in the theme permanently. (Which would be cool!)

I have added this one to my Front-End-Assets repo. (Including SVG system art and supporting xml.)

If this one works for you I will move forward on this project.

Thanks for the inspiration!

Edit: I usually include the source in my distribution but since the final output is vector, there is no need. :grin:


Wow, fast work, thanks. I was going to suggest that Gamecube would be best for a first choice. Unfortunately the SVG file doesn’t seem to work with my EmulationStation. If I can work out why it may explain why I’m having issues with other SVG files.

There is a Github for Carbon here: https://github.com/RetroPie/es-theme-carbon

Going through the newer systems these are the incomplete ones that I have identified. I’ll try to share what I have as well. Parenthesis indicate system names I have used. Scraping can be done successfully from Screenscraper and Thegamesdb using these.

It may be the SVG format.

Let me do some research. (It may have something to do with internal CSS etc.)

I have changed export options. Try it again please.

Here is a PS2 controller.

I will wait to add it to the repo until we figure these problems out.

If need be I will load the SVG into Inkscape and export it from there.

I can supply all the system art myself. (I usually work independently. :grin: Plus I have access to very high quality vector source.)

Edit: I did some research and exported the SVGs again. Here’s hoping.

Your folder naming scheme works for me with the exception of the Game Cube, which I think should be gamecube.

For the 3ds I think a simple modification of the nds will work.

1 Like

I was having a little trouble with it then I downloaded it again and it worked perfectly. I think I may have had some version cached.

I absolutely agree about gc/gamecube but I didn’t invent it, gc is the current Carbon theme name for Gamecube. if changing it won’t cause confusing then you have my support at least.

Happy for you to do the system art, I wasn’t happy with my custom work and I doubt anyone else would be.

1 Like

I think it may have more to do with the final change I made after R&D. ES seems to want everything grouped together.

If that the name Carbon is currently using then I will by all means change it.

So it seems we are good to go. :partying_face: What did you think of my system art?

Thanks again for the inspiration. This will be a fun little project, almost a mini vacation from my usual photo real work for the Mega Bezel.

If you are not familiar with that project then stop by the thread for a read.


1 Like

It looks fantastic, it fits perfectly with the existing theme.

I think this will get a lot of use going forward as the Raspberry Pi/Retropie community advances. People are already experimenting with Gamecube on the Pi.

1 Like

That is good. :grin: I am going to work on this for the next couple of days and see how quickly it goes. If all goes well I’ll do a PR (After I learn how.) and see if we can get them included in the theme.

1 Like

I look forward to it, Thanks.

Just in case people are interested, this is how I got the various systems working.

  • Nintendo Gamecube: Has an existing Libretro core, Dolphin.

  • Nintendo Wii: Also uses the Dolphin core. I couldn’t get the Wiimote to work with the Libretro core so I used the standalone Dolphin app with the following command [location of Dolphin executable] -b “%ROM_RAW%”.

  • Nintendo 3DS : Has an existing Libretro core, Citra.

  • Nintendo Wii U: I used the standalone Cemu app. My games are in Loadline format so I wrote small batch files to point to the executable game files. The batch file text follows this format [location of Cemu executable] -f -g [location of .rpx file] The .RPX file is usually in a subfolder of the game rom named CODE. Use “%ROM_RAW%” in es.systems.cfg to open the .BAT file.

  • Sony Playstation 2: Has an existing Libretro core, PCSX2.

  • Sony Playstation 3: I used the standalone RPCS3 app. Follow the instructions for Wii U batch files except the batch file text is just [location of RPCS3 executable] [location of EBOOT.BIN file]. With disk games the EBOOT.BIN file will usually be in the USRDIR subfolder of the game rom. With EPUB games it will be in the RPCS3 app folder, usually in RPCS3\DEV_HDD0\GAME[name of game]\USRDIR

  • Microsoft Xbox: I used the standalone XEMU app with the following command [location of Xemu executable] -full-screen -dvd_path “%ROM_RAW%”

  • Microsoft Xbox 360: I used the standalone XENIA app with the following command [location of Xenia executable] --fullscreen “%ROM_RAW%”

If anyone has a less clunky way to load Wii U and PS3 games please do let me know, Thanks

1 Like

I use Rocketlauncher as an abstraction layer to launch PS3 & Wii games. The front end calls Rocketlauncher in the traditional manner, like it would any emulator. The internal Rocketlauncher module takes care of the messy work.

Here is a PS3.

Almost identical to the PS2, I made what changes were needed.

The repo is updated.

Are they on the same repo? I can only see your Gamecube work.

1 Like

I probably forgot to commit. I’ll check when I get home.

OK, they are up now. :innocent:

1 Like

Here is an XBOX controller.

For authenticity I went with the original “Duke” controller.

It is in the repo. :grin:

Here’s the XBOX 360!

It’s in the repo. :crazy_face:

The forum won’t let me reply again without waiting for someone else to reply first, so I will just add this last one.

The 3DS. This completes the request! :grin:

This one is just a modification of the existing NDS controller graphic, so it may not exactly measure up to the others, but will of course fit right in.

I am thinking I may make a slight change to the XBOX controller. I like the solid “X” on the 360 so much that I may solidify the “X” on the XBOX and add the XBOX text below. I will make the change and get your opinion.

I felt the lines were too thick on the 3ds so I made them thinner. Not as easy as it sounds because the author converted all the paths to fills. (Maybe there is some SVG benefit?)

Here is a shot of what my XBOX change looks like.

Let me know what you think. :wink: (Personally, I think it looks unfinished the old way.)


They all look great. The new 3DS image does look that bit better with thinner lines.

I am having one small issue, the Xbox360 system logo is just solid black in Emulationstation. I had similar problems my Xbox logos I made and with a Switch logo I’m trying to create.

1 Like

It is the only logo with a gradient. I assume ES is having a hard time with the SVG.

I will simplify it and try again. First though, let me try to export it in a different way.

This would be much easier if I had ES set up on my box. :upside_down_face:

OK I have committed the new XBOX version and a new export on the XBOX360 system graphic. Instead of “exporting” the system graphic from Illustrator I “saved” it. This gave me the option of selecting SVG v1.0 format instead of the default v1.1.

Please try it and let me know.

As a backup alternative we can try this new system graphic that has no gradients.

Edit: It looked like part of the sphere was getting clipped, I fixed it in both.

BTW. Did you want something for the Wii, WiiU, or Switch?

Edit: I missed the Wii in your original request, I will get right on that. :grin: (I’m thinking the Wii remote will be a good choice for controller.)

Here is the Wii.

I am using the “save” method in Illustrator for getting the SVGs, if it causes problems we will go back to the known working method. :grin:

(There is a “<foreignObject requiredExtensions=” tag in the SVG code that gives me cause for concern.)

I tried the updated Xbox360 logo and got the same result (black image). Clearly EmulationStation doesn’t like gradients. The Wii art is acting oddly as well. The logo is coming out black and the controller does not show at all. The only controller art I require now is the Wii U.

Sadly EmulationStation on Windows 10 can be a bit of a pain to collate all the parts. I’ll write up a quick guide/send you anything I have if you want.

Switch (Yuzu) and PS Vita (Vita3K) are a slightly different issue. I’m experimenting with Switch at the moment and I’m not sure EmulationStation fully supports Switch. I can’t get it to scrape and it brings up an error in the log as ‘switch’. I’m trying to find the correct terminology to get it to work. I’ll add to the guide when I figure it out. I can’t get Vita3k to work at all. They are AFAIK the last two remaining systems that currently have emulators that have no art available in Carbon. I’m not sure if they’re worth doing at present.

My thanks for what you have done for us so far.

1 Like

Yeah, we’ll use the system art without gradients and I’ll go back to the old method of getting the final SVG.


I thought you might want the Wii U. I’ll get things sorted and you can test when you have time. I’ll let you know when the repo is updated.

Also, I am having a blast doing this. :partying_face:

Edit: Everything is updated. Let me know how it goes. (I noticed some inconsistencies in the Wii U graphic and also fixed those.)

Sure I’ll take some hints. Although I have 59 Systems emulated on my current HTPC using Kodi, Rocketlauncher, Retroarch and a slew of stand-alone emulators. (All with custom art and Splash/Pause screens.) so I can probably muddle through if I feel the need.

Unless I can find an EmulationStation launcher plugin for Kodi I will probably continue using the Kodi add-on I am currently using. I have considered using LaunchBox/BigBox since they provide a Kodi launcher plugin. Doing an Aeon MQ7 (Kodi skin) theme for BigBox is on my future projects list. :grin:


I wouldn’t describe installing it hard but it certainly isn’t straight out box. Anyhow, here’s a guide for any interested parties.

  1. First you’ll need to install EmulationStation. Here’s a link to the download page on their website: https://emulationstation.org/#download

  2. You’ll also need jrassa’s updated EmulationStation. This is a port of the Raspberry Pi/Retropie version. Copy this over your installation of Emulationstation.

  1. Next you’ll need to download a theme. Here’s the link to the Github for Carbon along with Duimon’s excellent additions.
  1. Finally you’ll need to populate your es_systems.cfg file using your text editor of choice. Repeat this process for each system and you’re done.
  • Name, Platform and Theme will all match the name that the theme uses for the system, note that it is case sensitive.

  • Fullname can be populated however you see fit.

  • Path is probably self explanatory. I would avoid names with spaces for your own sanity as " " don’t always work.

  • Extension: EmulationStation will pull any files with the given extensions from the place you specified in path. It will also search subfolders. IIRC this is not actually case sensitive but the example I followed was so I stuck with it.

  • Command: This is always the same text for Retroarch cores with the exception of the core you are using. See my earlier post in this thread for some of the standalone systems. Here’s my 3DO entry that uses the default installed location for Retroarch C:\RetroArch-Win64\retroarch.exe -L C:\RetroArch-Win64\cores\opera_libretro.dll “%ROM_RAW%”.

Hope this helps.

1 Like