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)
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:
- Fetch tile index from the background map (VRAM)
- Look up tile data (16 bytes per tile at 2bpp)
- Apply palette (4-color lookup from the WonderSwan's 8-color palette registers)
- Write scanline to the framebuffer
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:
| Slot | System | CPU |
|---|---|---|
| #43 | Sega Saturn | SH-2 (dual) + SH-1 |
| #44 | Sega 32X | SH-2 (dual) |
| #45 | NEC WonderSwan | V30MZ (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.