RACE (Neo Geo Pocket) - RetroBIOS¶
| Type | libretro |
| Classification | community_fork |
| Source | https://github.com/libretro/RACE |
| Upstream | https://github.com/8bitpsp/race |
| Version | v2.16 |
| Profiled | 2026-03-25 |
| Cores | race |
| Systems | snk-ngp, snk-ngpc |
Source analysis
npbios:
- **filename:** NPBIOS.BIN
- **size:** 65536
- **loaded_by:** race-memory.c:loadBIOS()
- **status:** disabled
- **source_ref:** race-memory.c:337-361
- **upstream_status:** optional
- **upstream_ref:** memory.cpp:346-365 (8bitpsp/race)
- **notes:** loadBIOS() is wrapped in #if 0 and always returns 0 in the libretro port.
In upstream (8bitpsp/race, alekmaul/race), the function is live and loads NPBIOS.BIN optionally, falling back to HLE if not fo...
Technical notes
RACE is a Neo Geo Pocket and Neo Geo Pocket Color emulator originally by Judge_ (MHE), ported to GP2X by Flavor, to PSP by Akop Karapetyan, modified by theelf, then adapted for libretro.
No external BIOS files are required. The upstream versions (GP2X, PSP) support optional loading of NPBIOS.BIN, but the libretro port disabled it entirely with #if 0 in race-memory.c:loadBIOS(). The comment explains: "Using a real bios file causes nothing but issues."
The core uses a software HLE approach: a compiled-in koyote_bin RAM dump (post-boot console state) is copied into mainram at startup, a fake SWI jump table is built at cpurom[0xE000], and doBios() in tlcs900h.c handles 33 BIOS functions in software. The Z80 sound CPU is emulated via cz80 or DrZ80.
No BIOS or firmware files required. Generated on 2026-03-25T14:56:43Z