This software is a port of Peanut-GB, a DMG and Game Boy Color emulator for RP2350 based microcontroller boards like the RaspberryPi 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 DMG Game Boy (.gb) or Game Boy Color (.gbc) rom files and optional metadata on a FAT32 or exFAT formatted SD card. You can organize the roms in directories. A menu is displayed on which you can select the rom to play.
Note
The emulator runs well on the Raspberry Pi Pico 2, but is too slow on the original Raspberry Pi Pico or other RP2040 based boards. Only releases for Pico 2 (RP2350) are available. Some Game Boy Color games have image and sound glitches.
Note
For detailed instructions and specific configurations, see the Pico-InfonesPlus sister project.
A Raspberry Pi Pico 2 on a Pimoroni Pico DV Deno Base, or a Raspberry Pi Pico 2 on a breadboard or PCB. The emulator is too slow on the original Pico or other RP2040 based boards.
Other boards that can be used:
- Adafruit Fruit Jam
- Adafruit Metro RP2350 or Adafruit Metro RP2350 with PSRAM
- Pimoroni Pico Plus 2 Use the breadboard config or Pimoroni Pico DV Demo base. This board does not fit the PCB because of the SP/CE connector on back of the board. The PSRAM on the board is used in stead of flash to load the roms from SD.
The binary specific for your config and optional PCB gerber files can be downloaded from the releases page.
TODO
Below the button mapping for different controllers. You can also use a USB-keyboard.
| (S)NES | Genesis | XInput | Dual Shock/Sense | |
|---|---|---|---|---|
| Button1 | B (*) | A | A | X |
| Button2 | A | B | B | Circle |
| Select | select | Mode or C | Select | Select |
It is not advised to use a NES controller because it lacks enough buttons.
(*) On SNES USB-controller press Y once to activate the B-button.
- UP/DOWN: Next/previous item in the menu.
- LEFT/RIGHT: next/previous page.
- Button2 : Open folder/flash and start game.
- Button1 : Back to parent folder.
- START: Show metadata and box art (when available).
- SELECT: Opens a setting menu. Here you can change settings like screen mode, scanlines, framerate display, menu colors and other board specific settings. Settings can also be changed in-game by pressing some button combinations as explained below. The settings menu can also be opened in-game.
- SELECT + START, Xbox button: opens the settings menu. From there, you can:
- Quit the game and return to the SD card menu
- Adjust settings and resume your game.
- SELECT + UP/SELECT + DOWN: switches screen modes.
- SELECT + Button1: When metadata pack is installed on SDcard: Toggle between default bezel, random bezel or themed bezel. (according to the selected rom)
- START + Button1: When playing a DMG Game, toggle between green, color and greyscale palette.
- START + Button2 : Toggle framerate display
- Pimoroni Pico DV Demo Base only: SELECT + LEFT: Switch audio output to the connected speakers on the line-out jack of the Pimoroni Pico DV Demo Base. The speaker setting will be remembered when the emulator is restarted.
- Fruit Jam Only
- pushbutton 1 (on board): Mute audio of built-in speaker. Audio is still outputted to the audio jack.
- SELECT + UP: Toggle scanlines.
- pushbutton 2 (on board) or SELECT + RIGHT: Toggles the VU meter on or off. (NeoPixel LEDs light up in sync with the music rhythm)
- Genesis Mini Controller: When using a Genesis Mini 3 button controller, press C for SELECT. On the 8-button Genesis controllers, MODE acts as SELECT.
- USB-keyboard: When using an USB-Keyboard
- Cursor keys: up, down, left, right
- A: Select
- S: Start
- Z: Button1
- X: Button2
Download the metadata pack from the releases page It contains box art, game info and themed borders/bezels for many games. The metadata is used in the menu to show box art and game info when a rom is selected. When the screensaver is started, random box art is shown. When in-game, themed borders/bezels are shown around the game screen.
- Download pack here.
- Extract the zip contents to the root of the SD card.
- In the menu:
- Highlight a game and press START → show cover art and metadata.
- Press SELECT → show full game description.
- Press Button1 → return to menu.
- Press START or Button2 → start the game.
- In-game toggle between different border modes: SELECT + Button1
| Super Gameboy Default | Super Gameboy Random | Game-Specific |
|---|---|---|
![]() |
![]() |
![]() |
- In-game playing a DMG Game Boy game only. (Not Gameboy color). Toggle between Green, Color and greyscale palette: START + Button1
| green | color | grayscale |
|---|---|---|
![]() |
![]() |
![]() |
Use the bld.sh script to build the project. Build using Ubuntu Linux or WSL on Windows. See the Pico SDK installation instructions on how to set up the build environment.
Use ./bld.sh --h for options.
The resulting .uf2 file will be in the releases/ folder. Copy it to the Pico when in bootloader mode.





