← Blog
0.6.0 · RetroPie system #45

WonderSwan: System #45 — NEC V30MZ + 2bpp Tile Render

June 22, 2026 · sigil-retropie · Sigil-Docs
retropie wonderswan emulation 0.6.0

sigilOS RetroPie ships system #45: the NEC WonderSwan. V30MZ CPU (NEC's 8086 pin-compatible variant), 224×144 2bpp tile renderer, screendump harness with PNG evidence, EL0 app, and launcher card. (1403195, d52461e)

WonderSwan system #45 — 224×144 2bpp tile render
WonderSwan (system #45) — 224×144 2bpp tile render, V30MZ PASS

The NEC V30MZ CPU

The V30MZ is NEC's x86 variant: 8086 pin-compatible instruction set with NEC proprietary extensions. It runs at 3.072 MHz in the WonderSwan and drives the system's portrait-orientation 224×144 display. NEC selected it for the WonderSwan over the 65xx family used by Nintendo's handhelds — the x86 instruction density was favorable for the battery-life constraints of the handheld market in 1999.

The sigilOS emulator models the V30MZ as a restricted x86 subset: the full 8086 instruction set plus NEC's string acceleration extensions. The CPU is cap-isolated — ROM access is via Cap<ROM>, preventing the emulator EL0 process from touching memory outside the cartridge image.


2bpp tile renderer

The WonderSwan renders at 2 bits per pixel: 4 colors per tile, 8×8-pixel tiles. The screen is 224×144 pixels — 28×18 tiles. The tile renderer pipeline:

The screendump shows the 224×144 checkerboard tile test PASS — all 28×18 tiles rendered with correct 2bpp color decode. The screendump harness generates a PNG file for every test frame as evidence.


EL0 app + launcher

el0/ws_app.sg is the EL0 emulator shell. It requests a Cap<ROM> slot from the broker, loads /roms/game.ws, and hands the ROM buffer to the V30MZ core. The launcher card registers the system:

rp_count  → 45
rp_title(44) → "wonderswan"

The screendump harness runs inside the EL0 app — it captures the framebuffer at frame N and writes a PNG to /tmp/ws_frame_N.png without EL0 ever holding a raw filesystem capability.


RetroPie fleet at 45 systems

The WonderSwan is system #45, completing a cluster of late-1990s/early-2000s systems that required custom CPU cores rather than off-the-shelf 6502/Z80 emulation. The preceding systems in the cluster:

SlotSystemCPU
#43Sega SaturnSH-2 (dual) + SH-1
#44Sega 32XSH-2 (dual)
#45NEC WonderSwanV30MZ (NEC x86)

Also landing in this batch: the i8080/Space Invaders EL0 binary at slot #11 (apps/i8080, 34648B binary). The i8080 is the Intel 8080 — a separate CPU core from the V30MZ, used here to run the original Space Invaders arcade ROM under the cap model.