{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "race",
      "profile": {
        "analysis": {
          "filesystem_access": "ROM at main.c:266-268, .ngf flash save at flash.c:231-233 and flash.c:344-346",
          "hle": {
            "bios_call_count": 14,
            "bios_calls": "tlcs900h.c:5837-5921",
            "interrupt_vectors": "race-memory.c:318-328",
            "jump_table": "race-memory.c:360-369",
            "ram_snapshot": "koyote_bin.h:1-6",
            "ram_snapshot_copy": "race-memory.c:406-407",
            "ram_snapshot_size": 12288,
            "system_font": "ngpBios.c:15"
          },
          "npbios": {
            "filename": "NPBIOS.BIN",
            "loaded_by": "race-memory.c:loadBIOS()",
            "note": "loadBIOS() returns 0 unconditionally in the libretro port, so mem_init()\nalways takes the HLE branch. The #if 0 body that opened NPBIOS.BIN with\nfilestream_open() was dropped by commit 0e4783a on 2026-06-15, and the\nlibretro tree no longer contains the name. In upstream, loadBIOS() opens\nNPBIOS.BIN from the working directory with fopen(), requires exactly\n0x10000 bytes, and falls back to HLE when the file is absent or short.\n",
            "size": 65536,
            "source_ref": "race-memory.c:330-340, race-memory.c:354-357",
            "status": "disabled",
            "upstream_ref": "memory.cpp:346-366 (8bitpsp/race)",
            "upstream_status": "optional"
          },
          "system_directory_used": false
        },
        "core_classification": "community_fork",
        "core_version": "v2.16",
        "cores": [
          "race"
        ],
        "display_name": "SNK - Neo Geo Pocket / Color (RACE)",
        "emulator": "RACE (Neo Geo Pocket)",
        "files": [],
        "notes": "RACE is a Neo Geo Pocket and Neo Geo Pocket Color emulator originally by\nJudge_ (MHE), ported to GP2X by Flavor, to PSP by Akop Karapetyan, modified\nby theelf, then adapted for libretro.\n\nNo external BIOS files are required. The upstream versions (GP2X, PSP) load\nNPBIOS.BIN optionally, but the libretro port's loadBIOS() returns 0\nunconditionally, and the disabled file-reading body it once carried under\n#if 0 was removed in June 2026, so the port no longer names the file. The\ncore never queries the system directory: the only files it opens are the\nROM and the .ngf flash save in the save directory.\n\nThe core boots through a software HLE path: a compiled-in koyote_bin RAM\nsnapshot (12 KB of main RAM captured after a real BIOS has booted) is copied\ninto mainram, a fake SWI jump table is built at cpurom[0xE000], doBios() in\ntlcs900h.c answers 14 BIOS call numbers in software, and the system font\nis an embedded table in ngpBios.c. The Z80 sound CPU is emulated via cz80\nor DrZ80.\n",
        "profiled_date": "2026-09-17",
        "source": "https://github.com/libretro/RACE",
        "source_commit": "c7810dd7f172827bfa2004813bc000b13786636b",
        "systems": [
          "snk-ngp",
          "snk-ngpc"
        ],
        "type": "libretro",
        "upstream": "https://github.com/8bitpsp/race",
        "upstream_commit": "065db2eb614d4414ed49a1a9e241022450bb844d",
        "version_basis": {
          "kind": "file",
          "path": "libretro/libretro.c",
          "pattern": "#define\\s+RACE_VERSION\\s+\"([^\"]+)"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
