emulator: RACE (Neo Geo Pocket) type: libretro core_classification: community_fork source: "https://github.com/libretro/RACE" upstream: "https://github.com/8bitpsp/race" profiled_date: "2026-03-25" core_version: "v2.16" display_name: "SNK - Neo Geo Pocket / Color (RACE)" cores: [race] systems: [snk-ngp, snk-ngpc] 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. files: [] analysis: npbios: filename: NPBIOS.BIN size: 65536 # 64 KB (0x10000) 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)" note: | 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 found.