How to add icons on the homescreen that link to emulators?


Check it out!!

(file upload limits are crazy, sorry)


I have done this, but it keeps asking me download cores again and again.

Can you show me your command line AND your exact location of the core you’re directing too?


Could you please put the original lines for SNES folder? No matter if you folder structure are different from us! But I want to see what Im doing wrong hahahahaha

Thank you man!

LAUNCHER=retroarch -L

Go to: and make sure the core your using is actually on that list and spelled correctly. And after the download that directory should have the emulator in it.


What the script does is it checks to see if you have the emulator (snes9x2010 in this example) in the cpi/apps/emulators/ directory. If you don’t it will use the SO_URL you provided to download the core/emulator from buildbot.libretro. If your ROM_SO info and your SO_URL info doesn’t match then it will check to see if you have the emulator, see that you dont, download a different emulator and then loop forever.

What it should do at the end of the script is probably update the ROM_SO value to reflect the name of the file it just downloaded regardless of what you had before. Just a thought.

Thanks for the write-up @DisruptItYourself I came to the same conclusion (creating the folder, adding the action.config file, etc). But even after adding a custom system like SNES, and verifying everything was correct in the action.config file, the launcher still wanted to download the core every time (even though it was already downloaded, and matched the location defined in action.config), and would never actually launch the game.

Then I noticed something, cores downloaded via a custom folder (like the SNES example) were extracted to the dest directory with 0644 permissions. Once the core permissions were chanted to 0775 (like the other cores), the launcher actually launched the game, and worked as expected.

Anyways, hope this helps! Probably a little bug in the launcher code.

Can you put that in as a bug on github? I think you’re right

Yea, I’ll get it submitted. In case anyone runs into this issue:

Can I use config.action folder interface, or something like it, for things that aren’t emulation related? For example I have a directory of love2D games. And make the action file like this:

  • ROM=/home/cpi/games/LOVE
  • EXT=love
  • LAUNCHER=love
  • TITLE=LOVE Games

Actually tried this and worked around the ROM_SO/SO_URL installation by putting a blank in a zip on a url, but can’t get around the fact that the file I’m trying to load comes after the core file, which just loads Love blank. Is there a better way?

Got it to work. Took /user/bin/love file and put it in zip. Put that zip on the web. And blanked the Launcher.

  • ROM=/home/cpi/games/LOVE
  • ROM_SO=/usr/bin/love
  • EXT=love
  • TITLE=LOVE Games
  • SO_URL=

Is it important to put the SO_URL= part? What does it do?

Instead of using /20_Retro Games folder why don´t you use the menu one?

Create a .sh and dont forget to chmod +x it here:

Then add the icon with the same name ( for example if your script is named your icon should be MyScript.png)


This is a example on how would it look afterwards:

If you don’t have a core in the ROM_SO directory as specified it uses SO_URL to download one. I guess now that I think about it any emulators we have in that directory won’t be updated. Seems like we should point everything to the .config/retroarch/ location instead so they stay up to date.

I want to use NW.js for launch JS games:

  • ROM=~/games/NW
  • EXT=nw
  • LAUNCHER=/usr/bin/nw
  • TITLE=NW Games

Could we have a second action.config file without ROM_SO and SO_URL?

what i do after 2. ? do i paste this

LAUNCHER=retroarch -L
TITLE=[Title to display by Launcher]

on a text document and add it to the file?

Maybe you are confusing the words File and Folder. A file is a document. A folder is a directory.
You should have a document/file named action.config with that text in it (with the changes made based on your emulator, etc) in the Retro Games folder. Technically it could be in the GameShell folder too if you want it outside of that folder.

Just know that depending on how you create you action.config file you might cause problems. I prefer using terminal commands on the CPI to make sure it is unformulated. You don’t want to end up with an action.config file that is actually a .txt file.

1 Like

thanks! i prefer using terminal too, i actually use putty. could you send me or tell me where i can find the commands? thank you

For some reason, Galaga isn’t working for me. I’m using MAME to run the game. So far, I only managed to get a couple pacman titles to work.

thanks! i prefer using terminal too, i actually use putty. could you send me or tell me where i can find the commands? thank you

Refer to this (scroll down to the second part about folders) and let me know if you run into any issues:!

1 Like