Files
libretro/emulators/race.yml
Abdessamad Derraz ebb55a445b feat: re-profile 40 emulators, harden CI workflows
profile emulators pd777 through tic80, add frozen snapshots
(puae2021, snes9x2002/2005/2010, stella2014/2023).

CI: replace github-script with gh CLI, add test execution,
job-level permissions, propagate changed output, pin jsonschema.
2026-03-25 07:00:17 +01:00

42 lines
1.6 KiB
YAML

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)"
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 found.