mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 00:27:20 -05:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
66 lines
2.7 KiB
YAML
66 lines
2.7 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"
|
|
version_basis:
|
|
kind: file
|
|
path: "libretro/libretro.c"
|
|
pattern: '#define\s+RACE_VERSION\s+"([^"]+)'
|
|
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, but 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, and 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
|