mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
freeintv_ts_overlay (same BIOS as FreeIntv), bnes (NES, no BIOS), clownmdemu (Mega Drive, open-source MCD boot ROM embedded), m2000 (Philips P2000T, all embedded), mesen (NES, FDS + StudyBox BIOS), race (NGP, HLE with disabled BIOS loader), vemulator (VMU, HLE only), gw (Game & Watch, Lua simulator), pd777 (Cassette Vision, no BIOS), play (PS2, full HLE, LoadBIOS commented out) 115 total profiles.
53 lines
2.0 KiB
YAML
53 lines
2.0 KiB
YAML
emulator: RACE (Neo Geo Pocket)
|
|
type: libretro
|
|
source: "https://github.com/libretro/RACE"
|
|
systems: [snk-ngp, snk-ngpc]
|
|
|
|
notes: |
|
|
RACE is a Neo Geo Pocket and Neo Geo Pocket Color emulator, originally
|
|
developed for PSP (forked from Akop Karapetyan's port), adapted for
|
|
libretro.
|
|
|
|
No external BIOS files are required. The core contains dead code in
|
|
race-memory.c that would load "NPBIOS.BIN" (64KB, loaded into cpurom
|
|
via filestream_open), but it is compiled out with #if 0 and loadBIOS()
|
|
unconditionally returns 0. The comment explains: "Using a real bios
|
|
file causes nothing but issues" and references Card Fighters' Clash
|
|
Test Mode as a known failure.
|
|
|
|
Instead, the core uses a software HLE approach:
|
|
- A built-in koyote_bin memory dump (RAM state from a real console
|
|
post-boot) is copied into mainram at startup
|
|
- A fake SWI jump table is constructed at cpurom[0xE000] using the
|
|
TLCS-900H 0x1A (reg) dummy opcode to trap BIOS calls
|
|
- doBios() in tlcs900h.c handles 33 BIOS functions in software:
|
|
shutdown, clock speed, RTC, screen mode, font rendering, flash
|
|
read/write, communication, and sound control
|
|
- Interrupt vectors are set up at cpurom[0xFF00] and interrupt
|
|
handler code at cpurom[0xF800]
|
|
- CPU RAM defaults (interrupt priorities, timers) are loaded from
|
|
the ngpcpuram[256] table
|
|
|
|
The Z80 sound CPU is emulated in software (cz80 or DrZ80 backend).
|
|
Flash memory for game saves is handled internally by flash.c.
|
|
|
|
The only core option affecting system behavior is ngp_language
|
|
(english/japanese), which sets a RAM flag at 0x6F87.
|
|
|
|
ROM extensions: .ngp, .ngc, .ngpc, .npc
|
|
|
|
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"
|
|
notes: |
|
|
loadBIOS() is wrapped in #if 0 and always returns 0.
|
|
Even if re-enabled, the realBIOSloaded=1 path has known
|
|
compatibility issues (e.g. Puzzle Bobble fails to boot).
|
|
The HLE path is the only functional code path.
|