Skip to content

Virtual Boy and Pokémon mini ​

The Virtual Boy and the Pokémon mini are Nintendo handhelds outside the Game Boy line. The Virtual Boy's V810 needs a Ghidra extension. The Pokémon mini's S1C88 has no Ghidra module and no Unicorn backend, so take ground truth from PokeMini's trace.

The devices ​

DeviceYearsCPU and clockMedia and formatGhidra supportEmulator with a debugger
Virtual BoyJuly 1995 (JP)NEC V810 at 20 MHzCartridgeBuilt-in V850 differs; Ghidra_v810_v830Mednafen
Pokémon mini16 November 2001 (NA)Epson S1C88 at 4 MHzCartridge up to 2 MBNonePokeMini (development package)

Virtual Boy ​

Hardware ​

The NEC V810 runs at 20 MHz. It drives red LED displays with 384x224 pixels for each eye (Virtual Boy).

Tools ​

Ghidra's built-in V850 differs from the V810. Ghidra_v810_v830 adds the V810. The extension has few users, so test it on a known binary before trusting it. Mednafen has a debugger in its SDL front end (Mednafen docs).

Pokémon mini ​

Hardware ​

The Pokémon mini came out on 16 November 2001 in North America. It reached Japan on 14 December 2001 and Europe on 15 March 2002. Nintendo R&D3 designed it. Epson made it. The CPU is an Epson S1C88, an 8-bit core with 16-bit instructions, at 4 MHz. It has 4 KB of SRAM shared with video. A 4 KB BIOS handles start-up and power. Cartridges hold up to 2 MB. Every commercial game is under 500 KB. The monochrome 96 by 64 LCD runs at 30 fps.

Built in are a reed-switch shock sensor, an IR port (about 1 m, up to six players), a rumble motor and a battery-backed real-time clock (Wikipedia: Pokémon mini).

Tools ​

PokeMini by JustBurn is GPLv3. Its last version is 0.60 from 16 June 2015. Its debugger ships only in the development package. It keeps a 10,000-instruction trace history (PokeMini on SourceForge; libretro docs: PokeMini). No Ghidra module or Unicorn backend exists for the S1C88.

Projects to learn from ​

An official emulator inside the GameCube game Pokémon Channel (2003) ran demo versions of some games. Homebrew games appeared after people reverse engineered the system. The demo SHizZLE was shown at Breakpoint 2005 (Wikipedia: Pokémon mini).

For an exact reimplementation ​

Take ground truth from PokeMini's trace. The shock sensor, IR, rumble and RTC are outside inputs and state that a test records (Handheld practices). The S1C88 programs are small, so writing a SLEIGH module or a purpose-built core would take modest effort.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.