This is yet another SEGA 8 bit and 16 bit console emulator.
It can run games developed for most consumer hardware released by SEGA, up to and including the 32X:
- 16 bit systems: Mega Drive/Genesis, Sega/Mega CD, 32X, Pico
- 8 bit systems: SG-1000, SC-3000, Master System/Mark III, Game Gear
PicoDrive was originally created with ARM-based handheld devices in mind, but later received various cross-platform improvements such as SH2 recompilers for MIPS (mips32r2), ARM64 (armv8), RISC-V (RV64IM) and PowerPC (G4/2.03).
PicoDrive was the first software to properly emulate Virtua Racing and its SVP chip.
At present, most development activity occurs in irixxxx's fork; notaz's repo is updated less frequently.
PicoDrive supports using CD audio enhanced cartridge games in all 3 formats.
To start an enhanced cartridge, load the .cue or .chd file. The cartridge
file should have the same base name and be placed in the same directory.
Further instructions can be found in platform/base_readme.txt
.
PicoDrive can use Storyware pages and pad overlays in png format in the same
directory as the cartridge image. The selected page is displayed automatically
if the pen is used on the storyware or pad. Details about how to correctly name
the pages can be found in the How to run Sega Pico games section in
platform/base_readme.txt
.
PicoDrive provides support for the Pico and SC-3000 keyboards. This can be
enabled in the Controls
configuration menu. Once enabled, keyboard input may
be activated via the Keyboard
emulator hotkey.
Both physical keyboard support and a virtual keyboard overlay are available.
Physical keyboards are assigned a default key mapping corresponding to an
American PC layout, but the mapping can be redefined in the Controls
configuration menu. Note that only 'unmodified' physical key presses can be
mapped to emulated keyboard input; special characters entered via 'shift'
key combinations may not match the emulated keyboard layout.
In addition to keyboard support, PicoDrive emulates the SC-3000 cassette tape drive which may be used in conjunction with BASIC cartridges. Tape emulation includes an automatic start/stop feature, where the tape is only advanced when it is accessed by the SC-3000; manual pausing of the tape is unnecessary for multi-part loading or saving.
PicoDrive supports tape files in WAV
and bitstream
format.
Some images of demos and homebrew software:
![]() |
![]() |
![]() |
---|---|---|
MegaDrive: Titan Overdrive 2 | MegaCD: RaycastDemo | 32X: OpenLara |
![]() |
![]() |
![]() |
MegaDrive: Titan Overdrive 2 | MegaDrive: DMA David | 32X: Doom Resurrection |
![]() |
![]() |
![]() |
---|---|---|
SG-1000: Cheril Perils Classic | MasterSystem: Stygian Quest | GameGear: The Sword of Stone |
![]() |
![]() |
![]() |
SG-1000: Nyan Cat | MS: Anguna the Prison Dungeon | GameGear: Turrican |
For platforms where release builds are provided, the simplest method is to
use the release script tools/release.sh
. See the script itself for details.
To create platform builds run the command:
tools/release.sh [version] [platforms...]
This will generate a file for each platform in the release-[version]
directory.
A list of supported platforms can be found in the release script.
These commands should create an executable for a unixoid platform not included in the list:
configure --platform=generic
make
To compile PicoDrive as a libretro core, use this command:
make -f Makefile.libretro
For 32 bit ARM platforms, the optimized helix MP3 decoder can be used to play
MP3 audio files with CD games. Due to licensing issues, the helix source files
cannot be provided here; if you have obtained the sources legally, place them in
the platform/common/helix
directory.
To compile the helix sources:
- Set the environment variable
CROSS_COMPILE
to your cross compiler prefix (e.g.arm-linux-gnueabi-
) - Set the environment variable
LIBGCC
to your cross compiler'slibgcc.a
(e.g./usr/lib/gcc-cross/arm-linux-gnueabi/4.7/libgcc.a
) - Run the command:
make -C platform/common/helix CROSS_COMPILE=$CROSS_COMPILE LIBGCC=$LIBGCC
- Copy the resulting shared library named
${CROSS_COMPILE}helix_mp3.so
aslibhelix.so
to the directory containing the PicoDrive binary on the target device.
In addition, helix support must be enabled in PicoDrive itself by compiling with:
make PLATFORM_MP3=1
This switch is enabled automatically for Gamepark Holdings devices (gp2x
,
caanoo
and wiz
). Without installing libhelix.so
, these devices will not play
MP3 audio.
The release script produces packages or zip archives which have to be installed manually on the target device. Usually this involves unpacking the archive or copying the package to a directory on either the internal device storage or an SD card. Device-specific instructions can be found on the internet.
Send bug reports, fixes etc. to derkub@gmail.com