How to add new emulators (Gameboy, SNES, etc.)

Hi there,

because of my lacking experience with SSH, Linux, and much more, I was able to get emulators working by several snippets of guidance of you guys here at the forums.

Due to maaaaany people here that don’t know how to setup a new emulator on Gameshell like Gameboy or SNES, here is a (hopefully) complete guide with credits (sorry for copying your tips, but I think a complete guide will help most).

The ‘What we do here’ spoilers tell you, what technically goes on in the specific guidance section. If you just wanna get it run and don’t, what exactly what are you doing, ignore it.

So… i guess we should start:

RetroArch covers (mostly) your consoles

So, set up RetroArch well.

A very good setup for that comes from @fr500: RetroArch Megathread

What we do here

You update and optimize RetroArch to run smoothly on your GameShell. RetroArch covers most of the ROMs you wanna play on this handheld.

  • Just start cmd.exe (on windows) or terminal (on mac) and type in the ssh login given from GameShell itself in the TinyCloud app. For example: ssh@192.168.178.1. The password is (big drumroll) cpi.

  • Follow this guide: RetroArch Megathread

  • Come back to this guide, when you’re done.

Next: These cores fit to your ROMs

You’re pretty far (away), it only takes a few steps until your childhood games run on GameShell: Enter RetroArch on GS and enter ‘Load Core’, then ‘Download Core’ and then download the necessary cores.

What we do here

The cores you download function easy speaken as the game engine. This is the part, which makes the ROMs runable.

These are the cores, you’re looking for

  • Gambatte does a pretty good job for Gameboy and Gameboy Color
  • snes9x does it for SNES
  • picodrive (crashes in some cases) or genesis_plus_gx works for Sega Mega Drive/Genesis

And now: Folders (EVERYWHERE!)

This is the trickiest part. To access your ROMs (where did these come from? Don’t know!) you will need folders. I recommend to create ‘subfolders’ under ‘Retro Games’, that you could easily access from the GS menu.

What we do here

The following steps create a folder at the gameshell Retro Games directory. Folders function as shortcuts (there will be no other files to add as the action.config. The action.config file you create at these steps tells the launcher what to do with this shortcut.

Attention
Maybe your folder name ‘20_Retro\ Games/’ differs. If your terminal refuses to change directory and can’t find it: Try ‘20_Retro Games/’ or ‘20_Retro\Games/’ Remember this at further steps, where you have to open or work with this directory.

cd /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/

mkdir [name you wanna give the folder - for example SNES]

Now we tell the launcher what to do if you hit the created shortcut

cd

cd /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/[Name of the folder created at first step - for example SNES]

nano action.config

  • Put the following text in it (with a right mouse click, that’s for the shortcut)

ROM=/home/cpi/games/[name of the folder you will create in the next step, which is accessible via tinycloud as network folder on your pc]
ROM_SO=/home/cpi/apps/emulators/[Name of the core you have downloaded in RetroArch - for example snes9x_libretro.so or gambatte_libretro.so]
EXT=[extensions of the ROMs (SNES is sfc,zip,smc, Gameboy gb,gbc,zip] LAUNCHER=retroarch -L
TITLE=[Title to display by Launcher]
SO_URL=index - powered by h5ai v0.29.0 (https://larsjung.de/h5ai/)[NAME_OF_EMULATOR - search your core here: index - powered by h5ai v0.29.0 (https://larsjung.de/h5ai/) and copy the name with extensians - for example snes9x_libretro.so.zip].so.zip

A complete config file should look like this:

ROM=/home/cpi/games/SNES
ROM_SO=/home/cpi/apps/emulators/snes9x_libretro.so
EXT=sfc,zip,smc
LAUNCHER=retroarch -L
TITLE=SNES
SO_URL=http://buildbot.libretro.com/nightly/linux/armv7-neon-hf/latest/snes9x_libretro.so.zip

  • Press STRG/Control/Command + X to quit and save it
  • Type in Y and hit return

Last step: Make it awesome

The last thing, which is now missing, is an awesome icon, so your GameShell menu rocks! An awesome icon pack (@Metalcory has done a great job!) you’re looking for: Makin’ Dope your GameShell! (Get in for Download some ICON Sets).

What we do here

This is not necessary, it’s for beauty only. With the given icons GameShell will not only show the folder names with a text shortcut thumbnail ‘SN’ for SNES or ‘GB’ for Gameboy. It will show the shortcut we created here with a beatiful icon. In the last step, we transfer ist to the thumbnail directory.

  • Download it and upload the extracted .png files you need in the games directory over to the Gameshell folder (which you can access over the given data from TinyCloud (where you upload your ROMs wirelessly. You don’t know how? Here you are: How to transfer files with TinyCloud through SSH).

  • Rename the needed icons after the folder names you created at step And now: Folders (EVERYWHERE!).

  • Type in the following (terminal time, again, thanks @Sammie):

cd /home/cpi/games
mv [Name of the icon - for example SNES.png] /home/cpi/apps/launcher/skin/default/Menu/GameShell/20_Retro\ Games/

  • Now we have moved the icons to the right place and GameShell know’s how to display them. Just restart your GameShell (if you’re done with ssh work), enter Retro Games and (hopefully) have a great feeling of success!

How to remove emulators

If you wanna get rid of some shortcuts and/or emulators, do the following (and be aware - if you delete the main folder or anything wrong, you have to re setup your GS):

cd /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/

dir

  • Now you see all folders in there - search for yours

rm -rf [Name of the folder you wanna delete - for example snes/ → don’t forget the ‘/’ at the end of the folder name]

  • Now, if you want, enter the TinyCloud via your PC and delete the folder of the emulator, where you put the ROMs in.

  • Success

Disclosure

So, guys, that’s it. Hope, this guide will help some newbies to get it done properly. :slight_smile:

If you have any problems, I can’t help you. Just kidding - ask me (or the community) for further assistance.

And if you have any tips to simplify the guide or process: Please contact me.

WHERE DO I GET MY ROMs?!?!

Just search for it, in the interwebs, we can’t help you with that here.

Changelog

  • 26th July '18: Created guide late at night and added some failures and misspellings.
  • 27th July '18: Corrected guide, added tips and got rid of the misspellings. (YAY!) Also, I added ‘What we do here’ spoilers, that, if you wanna know, tell you what’s going on.
  • 29th July '19: Simplified guide and added guide how to remove created shortcuts and emulators.
  • 2nd August '19: Changed core directory to recommended one, added emulator recommendations.

Greetings
Nouty

45 Likes

Great tutorial ! Tnx!

1 Like

(please be careful when choosing a category, there is a #tutorials one, it is not there for nothing! :sweat_smile: )

1 Like

Sorry. Missed it. Thanks for moving it!

You are very welcome!

I think you could also create your action.config file via ssh by navigating to the directory:

cd /home/cpi/apps/launcher/Menu/GameShell/20_Retro/Games/

and then use nano:

nano action.config

nano (like vi or vim) in the linux terminal will either open a file or create one if it doesn’t exist. The benefit of this is that you can avoid the possibility of your text editor messing up some of the formatting which some users here have already seen happen.

Great job @nouty! Just correct the places where it says /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/ it looks like there is a \ instead of a / and maybe even a space. Just in case someone tries to copy that.

Happy hacking nerds!

2 Likes

Great, will add that later! Thanks.

Huh… my cmd.exe told me (with the command ‘dir’) that it’s named so - otherwise I have had no chance to get to this direction. Is something wrong with my directory or is it a windows command thing? :thinking:

Ah ok yeah it would be a windows thing. I guess it depends what tool you are using to ssh.

MyGosh budy, you rocks! Epic all-in-one threat <3

1 Like

Done for now!

Corrected some late night errors of mine and added some tips!

Guide is now pretty complete, hope it helps! :slight_smile:

How do i uninstall/remove one emulator? (Incl. Icons)

All my Emulators work fine, except the snes.

Hi Marc,

just change at the terminal to the right location:

cd /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/

Maybe your folder name ‘20_Retro\ Games/’ differs. If your terminal refuses to change directory and can’t find it: Try ‘20_Retro Games/’ or ‘20_Retro\Games/'.

The command ‘dir’ now shows you, which folders (and so shortcuts) are there.

That deletes it:

rm /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/[Name of the folder/shortcut you wanna delete]

Example:

rm /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/SNES/

Be careful and make sure, you don’t delete the 20 Retro Games folder itself. Otherwise, you have to setup it completely from scratch or even reset GameShell.

After that, I would enter the game folders via TinyCloud and delete it also, so you free your space and getting rid of unnecessary roms if you like.

Hi there.
Great tutorial!
Thanks to you, I’ve set up my GC in no time.
Snes9x didn’t work for me. Content was not loading as core was staying on black screen.
I used Sn9x2005_plus instead and it works fine.
Thanks again.
Charly

1 Like

Hey.
I tried this, but when i want to remove it, i got the error message:“cannot remove. /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/snes/ is a directory.”

:frowning:

Oh sorry, forgot, that this command just works for files. :smile:

try

cd /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/

rm -rf snes/

So I finally got my SNES games to work in Retroarch but no matter what I do, I can’t get any of them to run from the customized menu setup like this. I followed everything here to the letter and have tried switching out different cores in the action.config file and still it won’t load any game I try. It just goes to a black screen for a few seconds and goes right back into the menu.

Had the same issue… But mine stops with the black screen… Nothing happens till i restart.
I reinstall everything, but still SNES is not working. :frowning:
Always starts with a blackscreen.

@Marc_Borgert, @Rene_Rosa:

Seems like GameShell doesn’t know what to do.

  • Have you named the folders everywhere exactly (for example SNES or snes?)
  • Have you downloaded the cores in RetroArch? (shouldn’t be an issue, but just to get sure.)

If that helps: Could you please provide your action.config and /dir the folders /home/cpi/apps/launcher/Menu/GameShell/20_Retro\ Games/ and /home/cpi/games and provide the results here, so I can look in.

Greetings
Nouty

Here is everything: (keep in mind i’ve tried this with every SNES liberetro available)

ROM=/home/cpi/games/SNES/
ROM_SO=/home/cpi/apps/emulators/snes9x_libretro.so.zip
EXT=sfc,zip,smc
LAUNCHER=retroarch -L
TITLE=SNES
SO_URL=http://buildbot.libretro.com/nightly/linux/armv7-neon-hf/latest/snes9x_libretro.so.zip

image

image