{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "pcee2",
      "profile": {
        "bios_directory": "pcsx2/bios/",
        "bios_mode": "agnostic",
        "core_classification": "community_fork",
        "core_version": "v2.9.138",
        "cores": [
          "pcee2"
        ],
        "data_directories": [
          {
            "destination": "pcsx2/resources",
            "ref": "pcsx2-resources",
            "source_ref": "pcee2-libretro/Libretro.cpp:543-571, pcsx2/Pcsx2Config.cpp:2417-2429"
          }
        ],
        "display_name": "Sony - PlayStation 2 (PCEE2)",
        "emulator": "PCEE2",
        "files": [
          {
            "description": "PS2 BIOS image",
            "max_size": 8388608,
            "min_size": 4194304,
            "name": "<bios>.bin",
            "note": "Any file of pcsx2/bios whose romdir carries RESET and ROMVER. The 4 to 8 MB filter applies in FindBiosImage only. The core option scan and the auto selection accept any size that passes the romdir check.\n",
            "path": "pcsx2/bios/<bios>.bin",
            "required": true,
            "source_ref": "source pcee2-libretro/Libretro.cpp:707-747, source pcsx2/ps2/BiosTools.cpp:16-17, source pcsx2/ps2/BiosTools.cpp:80-197, source pcsx2/ps2/BiosTools.cpp:258-294, source pcsx2/ps2/BiosTools.cpp:317-369",
            "validation": [
              "size"
            ]
          },
          {
            "description": "DVD player ROM",
            "max_size": 4194304,
            "name": "<bios>.rom1",
            "note": "Tried as <bios>.bin.rom1 then <bios>.rom1, opened case-insensitively, skipped with a console line when absent.\n",
            "path": "pcsx2/bios/<bios>.rom1",
            "required": false,
            "source_ref": "source pcsx2/ps2/BiosTools.cpp:214-241, source pcsx2/ps2/BiosTools.cpp:366, source pcsx2/MemoryTypes.h:13"
          },
          {
            "description": "Chinese ROM extension",
            "max_size": 4194304,
            "name": "<bios>.rom2",
            "note": "Same lookup as rom1. Present on Chinese region consoles only.\n",
            "path": "pcsx2/bios/<bios>.rom2",
            "required": false,
            "source_ref": "source pcsx2/ps2/BiosTools.cpp:214-241, source pcsx2/ps2/BiosTools.cpp:367, source pcsx2/MemoryTypes.h:14"
          },
          {
            "description": "Console NVRAM (region parameters, language, iLink ID, OSD settings)",
            "hle_fallback": true,
            "name": "<bios>.nvm",
            "note": "Read at <bios>.nvm, rebuilt in memory with region and language defaults when it is missing, short, or has a blank config block, and written back on save.\n",
            "path": "pcsx2/bios/<bios>.nvm",
            "required": false,
            "size": 1024,
            "source_ref": "source pcsx2/CDVD/CDVD.cpp:47, source pcsx2/CDVD/CDVD.cpp:136-188, source pcsx2/CDVD/CDVD.cpp:207-238"
          },
          {
            "description": "Mechacon version, one u32",
            "hle_fallback": true,
            "name": "<bios>.mec",
            "note": "Read at <bios>.mec, written as 0x00020603 when it cannot be read.\n",
            "path": "pcsx2/bios/<bios>.mec",
            "required": false,
            "size": 4,
            "source_ref": "source pcsx2/CDVD/CDVD.cpp:49, source pcsx2/CDVD/CDVD.cpp:190-204"
          },
          {
            "category": "game_data",
            "description": "Built-in game patch archive (pnach per serial and CRC)",
            "name": "patches.zip",
            "note": "Embedded in the core, packed from the 3rdparty/pcsx2_patches submodule. The copy in the resources directory is opened only when PCEE2_EXTERNAL_RESOURCES is set or the build carries no embedded copy. Searched for <serial>_<crc>.pnach, then <crc>.pnach, when a game's patches are enumerated. Files in the patches folder take precedence. A failure to open is reported once on screen.\n",
            "path": "pcsx2/resources/patches.zip",
            "required": false,
            "source_ref": "upstream pcsx2/Patch.cpp:117, source pcsx2/Patch.cpp:292-331, source pcsx2/Patch.cpp:379-419, source pcsx2/CMakeLists.txt:1183-1205"
          },
          {
            "description": "DEV9 network adapter EEPROM",
            "hle_fallback": true,
            "name": "eeprom.dat",
            "note": "Opened read-write and mapped from the process working directory by DEV9init. The built-in eeprom table is used when it cannot be opened.\n",
            "required": false,
            "size": 64,
            "source_ref": "upstream pcsx2/DEV9/DEV9.cpp:60-73, source pcsx2/DEV9/DEV9.cpp:97-158"
          }
        ],
        "notes": "libretro port of current PCSX2, merged up to upstream ab0b401f (v2.9.138,\npcee2-libretro/upstream.version). The build reports that version as\nlibrary_version. Everything the port adds lives in pcee2-libretro/ and in\nthe libretro renderer bridges, while the BIOS, CDVD, patch and database code is\nupstream PCSX2.\n\nInitializeConfig maps the PCSX2 folder layout under <system>/pcsx2:\nAppRoot and DataRoot are that directory, Resources and UserResources are\npcsx2/resources, Settings is pcsx2/inis, and EmuFolders::LoadConfig\nderives bios, memcards, cheats, patches, textures, gamesettings, cache,\nsnaps, sstates, logs, covers, inputprofiles and videos from DataRoot\n(pcee2-libretro/Libretro.cpp:543-557, pcsx2/Pcsx2Config.cpp:2348-2365).\nA standalone PCSX2.ini dropped in pcsx2/inis contributes nine emulation\nsections as the baseline (pcee2-libretro/Libretro.cpp:633-664), and the core options and the\nport overrides apply on top.\n\nBIOS detection is filename-agnostic. The core option pcsx2_bios lists every\nfile of pcsx2/bios that IsBIOS accepts: a romdir whose RESET entry is\nfollowed by a readable ROMVER, whose fifth character gives the zone (Japan,\nUSA, Europe, Asia, China, T10K, COH-H, Test, Free). With the option on\nauto, SettingsOverride selects the first accepted file (pcee2-libretro/Libretro.cpp:707-747,\npcsx2/ps2/BiosTools.cpp:80-197, 284-294). When no BIOS is configured or the\nconfigured name is missing, LoadBIOS falls back to FindBiosImage, which\nalso filters on size between 4 and 8 MB (pcsx2/ps2/BiosTools.cpp:258-282, 317-369).\nThe image is read into the 4 MB ROM region, and a file shorter than 2465792\nbytes turns off the OSDSys parameter HLE. No hash is matched. Booting with\nno content starts the BIOS (pcee2-libretro/Libretro.cpp:2286-2296).\n\nCompanions derive from the selected image: rom1 and rom2 are tried as the\nfull name plus extension, then with the extension replaced, and are skipped\nwhen absent. The nvm is read at the replaced extension and rebuilt with\nregion and language defaults when missing or blank, and the mec is written back\nas 0x00020603 when it cannot be read (pcsx2/ps2/BiosTools.cpp:214-241, 366-367,\npcsx2/CDVD/CDVD.cpp:136-205).\n\nThe shaders, four interface fonts, GameIndex.yaml and patches.zip are built\ninto the core (cmake/EmbedResources.cmake:19-31, 46-62,\npcsx2/CMakeLists.txt:1170-1219)\nand win over the copies on disk unless PCEE2_EXTERNAL_RESOURCES is set in\nthe environment (pcsx2/EmbeddedResources.cpp:8-12, pcsx2/GS/Renderers/Common/GSDevice.cpp:441-465,\npcsx2/ImGui/ImGuiManager.cpp:473-495, pcsx2/GameDatabase.cpp:1037-1066, pcsx2/Patch.cpp:292-331,\npcee2-libretro/Libretro.cpp:580-602). A missing resources directory is a warning, not a\nfailure (pcee2-libretro/Libretro.cpp:562-571). patches.zip is packed at build time from the\n3rdparty/pcsx2_patches submodule, so the build carries the patches of the\ncommit it points at, and the directory supplies nothing this build reads\nby default. RedumpDatabase.yaml is read only by the Qt game\nsummary (pcsx2/GameDatabase.cpp:1213-1226 has no caller in the core),\ngame_controller_db.txt only by the SDL input source the port disables\n(pcee2-libretro/Libretro.cpp:690-691, pcsx2/Input/SDLInputSource.cpp:701-706), the\nachievement sounds only with achievements enabled, which no core option or\nadopted ini section does (pcsx2/Achievements.cpp:944-952), and\nfullscreenui/no-save.png only by the save state selector, whose hotkeys the\nport clears (pcee2-libretro/Libretro.cpp:693, pcsx2/ImGui/ImGuiOverlays.cpp:1441-1442).\nThe port supplies Roboto alone to ImGui, so no emoji font is read.\n\nPer-game user files keep their PCSX2 locations under <system>/pcsx2:\ncheats and patches as <serial>_<crc>.pnach (pcsx2/Patch.cpp:333-368),\ngamesettings/<serial>_<crc>.ini (pcsx2/VMManager.cpp:842-845),\ntextures/<serial>/replacements (pcsx2/GS/Renderers/HW/GSTextureReplacements.cpp:269-271),\nmemcards/*.ps2, which the core creates and lists in the memory card\noptions (pcee2-libretro/Libretro.cpp:749-769). The DEV9 HDD image is named in the ini and\ncreated on demand.\n",
        "profiled_date": "2026-09-03",
        "resources_directory": "pcsx2/resources/",
        "source": "https://github.com/WizzardSK/pcee2-libretro",
        "source_commit": "f52b5a6fe43278dcfc827b85b09fced5a82f863f",
        "systems": [
          "sony-playstation-2"
        ],
        "type": "libretro",
        "upstream": "https://github.com/PCSX2/pcsx2",
        "upstream_commit": "ab0b401f99729ef8da3009f9af28d8ee96e0e7ba",
        "version_basis": {
          "distance": 0,
          "kind": "tag",
          "repo": "upstream",
          "tag": "v2.9.138"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
