fhoedemakers / pico-smsplus

Sega Master System & Game Gear Emulator with SD card and menu support for the Raspberry PI Pico/Adafruit Feather RP2040 DVI. Play your games from SD card on a HDMI display.
GNU General Public License v3.0
12 stars 2 forks source link
adafruit adafruit-feather-dvi emulator game-gear master-system pimoroni-pico-dv raspberry-pi-pico rp2040 sega sega-game-gear sega-master-system waveshare waveshare-rp2040-pizero

pico-smsplus

This software is a port of SmsPlus, a Sega Master System and Game Gear emulator for RP2040/RP2350 based microcontroller boards like the RaspberryPi Pico and Pico 2. Sound and video are ouput over HDMI. The code for HDMI output is based on Shuichi Takano's Pico-InfoNes project which in turn is based on PicoDVI.

Put your Master System (.sms) and Game Gear (.gg) rom files on a FAT32 formatted SD card. You can organize the roms in directories. A menu is displayed on which you can select the rom to play.

Supports two controllers for two player Master System games. See "about two player games" below for specifics and limitations


Video

Click on image below to see a demo video.

Video


Not perfect

There are still some issues to be fixed. The emulator runs decently well, especially on the Pico 2/RP2350. On the Pico/RP2040, Some games may not run at full speed or at all. (afterburner).

[!WARNING] On Pico/RP2040, some games show red flashing between screens. This can be occasionally or severe depending on the game. If you are sensitive for this, or experience health issues while playing those games, please stop playing immediately. Runs much better on Pico 2/RP2350.


System requirements and setup - What do yo need?

The binary specific for your config can be downloaded from the releases page.

You need a FAT32 formatted SD card to put your .sms and .gg roms on.

[!NOTE] For detailed instructions how to setup specific configurations, see the Pico-InfonesPlus sister project.


For Raspberry Pi Pico / Pico W / Pico 2


Other RP2040 based boards

These boards already contain an RP2040 cpu, a separate Raspberry Pi Pico is not needed.


Supported USB controller

The following controllers are supported.

Also original NES and WII-classic controllers are supported in some configurations. See the Pico-InfonesPlus sister project for more info.


About two player games

The emulator supports two player games using two NES controllers or an USB gamecontroller and a NES controller.

[!NOTE] You cannot use two USB controllers for two player games. At the moment only one USB controller is recognized by the driver. In this case the USB controller is always player 1. Player 2 must be a NES controller.

Player 1 Player 2
USB controller connected USB NES port 1 or NES port 2
No usb controller connected NES port 1 NES port 2

Menu Usage

Gamepad buttons:


Emulator (in game)

Gamepad buttons:


Building from source

When using Visual Studio code, make sure to build in Release or RelWithDbinfo mode, as the emulator is too slow in the other modes.

Build shell scripts are available:

Make sure they are executable by running chmod +x build*.sh in the terminal.

The _debug.sh scripts can be use to create a debug build for each system.


Things to do (if possible):