mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
62 lines
2.6 KiB
YAML
62 lines
2.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-09-17"
|
|
source_commit: "c7810dd7f172827bfa2004813bc000b13786636b"
|
|
upstream_commit: "065db2eb614d4414ed49a1a9e241022450bb844d"
|
|
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) load
|
|
NPBIOS.BIN optionally; the libretro port's loadBIOS() returns 0
|
|
unconditionally, and the disabled file-reading body it once carried under
|
|
#if 0 was removed in June 2026, so the port no longer names the file. The
|
|
core never queries the system directory: the only files it opens are the
|
|
ROM and the .ngf flash save in the save directory.
|
|
|
|
The core boots through a software HLE path: a compiled-in koyote_bin RAM
|
|
snapshot (12 KB of main RAM captured after a real BIOS has booted) is copied
|
|
into mainram, a fake SWI jump table is built at cpurom[0xE000], doBios() in
|
|
tlcs900h.c answers 14 BIOS call numbers in software, and the system font
|
|
is an embedded table in ngpBios.c. 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:330-340, race-memory.c:354-357"
|
|
upstream_status: optional
|
|
upstream_ref: "memory.cpp:346-366 (8bitpsp/race)"
|
|
note: |
|
|
loadBIOS() returns 0 unconditionally in the libretro port, so mem_init()
|
|
always takes the HLE branch. The #if 0 body that opened NPBIOS.BIN with
|
|
filestream_open() was dropped by commit 0e4783a on 2026-06-15; the
|
|
libretro tree no longer contains the name. In upstream, loadBIOS() opens
|
|
NPBIOS.BIN from the working directory with fopen(), requires exactly
|
|
0x10000 bytes, and falls back to HLE when the file is absent or short.
|
|
hle:
|
|
ram_snapshot: "koyote_bin.h:1-6"
|
|
ram_snapshot_size: 12288
|
|
ram_snapshot_copy: "race-memory.c:406-407"
|
|
jump_table: "race-memory.c:360-369"
|
|
interrupt_vectors: "race-memory.c:318-328"
|
|
bios_calls: "tlcs900h.c:5837-5921"
|
|
bios_call_count: 14
|
|
system_font: "ngpBios.c:15"
|
|
filesystem_access: "ROM at main.c:266-268, .ngf flash save at flash.c:231-233 and flash.c:344-346"
|
|
system_directory_used: false
|