{
  "commit": "fbe5ba4e3e790ab07eddc5b57e0f45a02cbcd60e",
  "count": 1,
  "generated_at": "2026-10-24T00:06:47Z",
  "items": [
    {
      "id": "pdark",
      "profile": {
        "core_classification": "game_engine",
        "core_version": "port 2025-06-14",
        "cores": [
          "pdark"
        ],
        "display_name": "Perfect Dark (PC port)",
        "emulator": "Perfect Dark (PC port)",
        "files": [
          {
            "category": "game_data",
            "description": "Perfect Dark (USA) (Rev 1) N64 ROM, game code NPDE",
            "name": "pd.ntsc-final.z64",
            "note": "Read by pd.x86_64.exe, the NTSC v1.1 build.",
            "path": "data/pd.ntsc-final.z64",
            "required": true,
            "size": 33554432,
            "source_ref": "port/src/romdata.c:26-33, 191-209, 382-391",
            "system": "pdark",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "Perfect Dark (Europe) N64 ROM, game code NPDP",
            "name": "pd.pal-final.z64",
            "note": "Read only by pd.pal.x86_64.exe.",
            "path": "data/pd.pal-final.z64",
            "required": false,
            "size": 33554432,
            "source_ref": "port/src/romdata.c:26-27, 34-39, 191-209, 382-391",
            "system": "pdark",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "Perfect Dark (Japan) N64 ROM, game code NPDJ",
            "name": "pd.jpn-final.z64",
            "note": "Read only by pd.jpn.x86_64.exe.",
            "path": "data/pd.jpn-final.z64",
            "required": false,
            "size": 33554432,
            "source_ref": "port/src/romdata.c:26-27, 40-45, 191-209, 382-391",
            "system": "pdark",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "Perfect Dark (Game Boy Color) ROM",
            "name": "pd.gbc",
            "note": "Optional. Its presence unlocks the Transfer Pak cheats.",
            "path": "data/pd.gbc",
            "required": false,
            "size": 4194304,
            "source_ref": "port/src/romdata.c:53-54, 404-448",
            "system": "pdark",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          }
        ],
        "notes": "PC port of Perfect Dark built on the decompilation, by fgsfds. Each build\nplays one ROM revision, chosen at configure time (CMakeLists.txt:35,\n86-97): pd.x86_64.exe for ntsc-final, pd.pal.x86_64.exe for pal-final and\npd.jpn.x86_64.exe for jpn-final. Game data is read out of that ROM at\nrun time, nothing is extracted ahead.\n\nRetroBat installs the three executables, built on 2025-06-14 at 10:06, a\nfew minutes after the last commit of the port branch that day, which is\nthe pin. Its launcher picks the executable from the pdark_region option or\nfrom the ROM file name, and copies the ROM to data/pd.<romid>.z64 in the\ninstall folder when that file is missing.\nref: emulatorLauncher Generators/PortsLauncher.Generator.cs:107-130,\n     emulatorLauncher Generators/PortsLauncher.Configuration.cs:1257-1290\n\nFiles are read from the base directory: --basedir, else data beside the\nexecutable in portable mode, else ./data when it exists, else data under\nthe home path when it exists, else data beside the executable\n(port/src/fs.c:18, 96-121). RetroBat starts the port from its\ninstall folder, where ./data exists. The ROM is pd.<romid>.z64 there unless\n--rom-file names another path. A missing ROM, an archive, a size other\nthan 33554432 bytes, or a header whose game code and title do not match\nthe build ends the program with an error. No hash is checked.\nref: port/src/romdata.c:26-50, 186-209, 382-401\n\npd.gbc, the Game Boy Color Perfect Dark, is checked at startup for its\nsize, title, licensee and checksum bytes. When it passes, the game acts\nas if the cartridge sat in a Transfer Pak, which unlocks the cheats tied\nto it (port/src/romdata.c:53-54, 404-448, port/src/main.c:112,\nsrc/game/pak.c:5992-6007, src/game/cheats.c:430, 460).\n",
        "profiled_date": "2026-10-20",
        "source": "https://github.com/perfect-dark-pc-port/perfect_dark",
        "source_branch": "port",
        "source_commit": "32a1cb9f268dd3ac73016801025c6bbbfa20130f",
        "systems": [
          "pdark"
        ],
        "type": "standalone",
        "upstream": "https://github.com/perfect-dark-pc-port/perfect_dark"
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
