Picodrive (standalone and libretro core) Mega Drive emulator


Standalone emulator


To install on GameShell (OS v0.2), ssh to it and issue:

First of all create a new directory called “Emulators” (assuming more standalone emulators would install there)

mkdir ~/apps/Menu/25_Emulators

There are 2 versions available, OpenGL and Software Renderer. Choose the desired one through the following commands:


curl -sL | tar -xvz --directory ~/apps/Menu/25_Emulators

Software render only:

curl -sL | tar -xvz --directory ~/apps/Menu/25_Emulators

Reload UI and a new menu option “Emulators” should appear in the main GameShell menu, choosing it the PicoDrive menu item(s) should appear.

OpenGL version (PicoDriveGLES):

Should work with the latest ClockworkPi OS which adds the lima driver. One can change the rendering mode via the menu:
Change options->[Display options]->Video output mode and choose by LEFT or RIGHT buttons either “OpenGL” or “SDL Window”
Should note here that it is just a build supporting OpenGL and it renders on a smaller window than the software rendering does.

Key mappings

In emulator menus

UP, DOWN, LEFT, RIGHT: navigate
A: select
B: cancel

when playing a rom

MENU: open up the emulator menu
START: Start button
UP, DOWN, LEFT, RIGHT: as per game’s functionality
A: A button
B: B button
X: C button

libretro core

  1. To install on GameShell (OS v0.2), ssh to it and issue:
curl -sL | tar -xvz --directory ~/.config/retroarch/cores/
  1. Launch the Retroarch from the menu,
  2. “Load core”: choose “picodrive_libretro_gameshell_v1.92”
  3. “Load content”: browse to your sega roms directory and pick a rom to play

Picodrive was always my go to emulator, so I’m definitely interested in your releasing a working stand alone version.

I’m possibly wrong about this, but I think stand alone versions of the emulators, optimised for gameshell, will give the community better performance than using the Retroarch versions.

Here is a quick video demonstrating Virtua Racing for 32X and Sonic for MD showing also the FPS


Oh hell yeah id love a standalone emu that does Sega better

1 Like

I think this would be great. I think having the emu’s outside of retroarch would be great especially if they can be better optimized for gameshell.

1 Like

I think that this would be a great improvement to the system, thank you!

If you have a .so for it, I wouldn’t mind keeping it all within retroarch so I can use the hotkeys.

Send it my way!

Currently I am configuring the build for GameShell, I hope in the next days I will upload a standalone executable. It seems that it is possible to also build a libretro core so I will also try it and post the results here

Why Picodrive instead of Genesis Plus GX? I thought the later was the most accurate (it doesn’t have 32x support though).

Isn’t Genesis Plus GX provided as core through the RetroArch? I think the respective picodrive core crashes immediately. I am trying to provide some pluralism since there are comments about the poor emulation of Mega Drive on GameShell.

Maybe Genesis Plus GX will be the next in line to provide a standalone binary. For now I will focus on PicoDrive.


For anyone interested in the libretro core of PicoDrive, I have updated the original post of this thread

Quick Instructions:

  1. ssh to GS and issue:
curl -sL | tar -xvz --directory ~/.config/retroarch/cores/
  1. Launch the Retroarch from the menu,
  2. “Load core”: choose “picodrive_libretro_gameshell_v1.92”
  3. “Load content”: browse to your sega roms directory and pick a rom to play

All I did today was eat Doritos and play Sega.

Thanks, man.


Let’s put things where they belong…

mv .config/retroarch/cores/ /home/cpi/apps/emulators/

Then fix the Sega launcher by editing /home/cpi/launcher/Menu/GameShell/20_Retro Games/SEGA/action.config:

ROM=/home/cpi/games/SEGA #ROM_SO=/home/cpi/apps/emulators/ ROM_SO=/home/cpi/apps/emulators/ EXT=bin,zip LAUNCHER=retroarch -L TITLE=SEGA SO_URL=$


Thanks @lasvegas, I was too lazy last night to write instructions about it. Just some corrections

there is a space missing in the mv command (between the .so and the /home/cpi:

mv .config/retroarch/cores/

should be:

mv .config/retroarch/cores/ /home/cpi/apps/emulators/

Add some more extensions not just bin, zip in the action.config. The SO_URL is obviously wrong but I guess we don’t mind.

LAUNCHER=retroarch -L 

Thanks @elefas… Corrected in my post. Cool that more formats are supported!

1 Like

Great work!
I have create a menu!
Thanks @lasvegas @elefas

1 Like

Updated original post with standalone version coming in two flavors in rendering: software and opengl!

How could I install this emulator to appear in the “Retro Games” folder? So I would have it with other emulators such as PCSX.
PS: Can you tell me how to change the icons for ones in which the system appears? Any post with those icons, if it’s not too much trouble?
Thank you!

Hi! The Retro Games folder contains RetroArch emulators (cores). There exist a PicoDrive RetroArch core so you can either create a similar menu for this core following the instructions a few posts above: Picodrive (standalone and libretro core) Mega Drive emulator

If you still want the PicoDrive standalone emulator to appear in the Retro Games menu ssh to GameShell and do:

 curl -sL | tar -xvz --directory ~/launcher/Menu/GameShell/20_Retro\ Games/

And here are icons for most consoles:


Hi. A question. Does the Core “picodrive_libretro_gameshell_v1.92” also work on OS 0.3 with Lima?