SolarOS

SolarOS 4.17.7 manual · app

Game Boy

Game Boy is an external foreground app for ESP32-S3 devices with PSRAM, graphics, and native-module support. It runs original Game Boy (DMG) ROMs up to 4 MiB. Game Boy Color-only ROMs and unsupported cartridge controllers are rejected. No ROM images are bundled.

Quick reference

pkg install gameboy
gameboy /sdcard/roms/game.gb
session create gameboy display0 /sdcard/roms/game.gb

Installation and launch

Install from a compatible module catalog with pkg install gameboy, or copy solaros_native_gameboy.app.elf to modules/apps/gameboy.elf in the preferred storage volume. The app appears in the installed app registry and handles .gb files opened from Files. ROM paths can be relative to the launching shell's current directory.

You can also launch an ELF directly:

load /sdcard/gameboy.app.elf /sdcard/roms/game.gb

Video uses a four-shade 160x144 image, scaled to the display. The guest runs at its native frame frequency; presentation is bounded to 25 frames per second. Audio uses the shared synth service at 16 kHz stereo when available. Emulation continues without audio if the firmware omits synth support or no compatible speaker output is available.

Controls

Held-key input supports combinations such as diagonals and direction plus A/B. Character-only input uses short button pulses. Analog joystick axes do not become Game Boy keys.

Sessions and saves

Session switching retains guest CPU, RAM, cartridge RAM, pause state, and audio synthesizer state. Display and audio are released while suspended. Resume clears held inputs and rebases guest timing. Closing writes modified cartridge RAM to a .sav file beside the ROM using atomic replacement. Existing saves are loaded on launch; a size mismatch is reported. Reset preserves cartridge RAM.

See the foreground app contract and the module build instructions.