Skip to content

PCEE2 needs one Sony PlayStation 2 BIOS file, any region.

  1. Get one from the Sony PlayStation 2 files.
  2. Put it in pcsx2/bios/, inside your BIOS folder.

Any file name works. The emulator reads what the file holds.

About this profile
Detail Value
Type libretro
Classification Community fork
Source https://github.com/WizzardSK/pcee2-libretro
Upstream https://github.com/PCSX2/pcsx2
Version v2.9.138, the tag at this revision
Revision WizzardSK/pcee2-libretro@f52b5a6fe432, PCSX2/pcsx2@ab0b401f9972
Profiled 2026-09-03
Profile YAML, JSON
Cores pcee2
Systems Sony PlayStation 2
BIOS directory pcsx2/bios/
Resources directory pcsx2/resources/
Install this emulator's files

The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.

Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.

PowerShell
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator pcee2
Technical notes

libretro port of current PCSX2, merged up to upstream ab0b401f (v2.9.138, pcee2-libretro/upstream.version). The build reports that version as library_version. Everything the port adds lives in pcee2-libretro/ and in the libretro renderer bridges, while the BIOS, CDVD, patch and database code is upstream PCSX2.

InitializeConfig maps the PCSX2 folder layout under <system>/pcsx2: AppRoot and DataRoot are that directory, Resources and UserResources are pcsx2/resources, Settings is pcsx2/inis, and EmuFolders::LoadConfig derives bios, memcards, cheats, patches, textures, gamesettings, cache, snaps, sstates, logs, covers, inputprofiles and videos from DataRoot (pcee2-libretro/Libretro.cpp:543-557, pcsx2/Pcsx2Config.cpp:2348-2365). A standalone PCSX2.ini dropped in pcsx2/inis contributes nine emulation sections as the baseline (pcee2-libretro/Libretro.cpp:633-664), and the core options and the port overrides apply on top.

BIOS detection is filename-agnostic. The core option pcsx2_bios lists every file of pcsx2/bios that IsBIOS accepts: a romdir whose RESET entry is followed by a readable ROMVER, whose fifth character gives the zone (Japan, USA, Europe, Asia, China, T10K, COH-H, Test, Free). With the option on auto, SettingsOverride selects the first accepted file (pcee2-libretro/Libretro.cpp:707-747, pcsx2/ps2/BiosTools.cpp:80-197, 284-294). When no BIOS is configured or the configured name is missing, LoadBIOS falls back to FindBiosImage, which also filters on size between 4 and 8 MB (pcsx2/ps2/BiosTools.cpp:258-282, 317-369). The image is read into the 4 MB ROM region, and a file shorter than 2465792 bytes turns off the OSDSys parameter HLE. No hash is matched. Booting with no content starts the BIOS (pcee2-libretro/Libretro.cpp:2286-2296).

Companions derive from the selected image: rom1 and rom2 are tried as the full name plus extension, then with the extension replaced, and are skipped when absent. The nvm is read at the replaced extension and rebuilt with region and language defaults when missing or blank, and the mec is written back as 0x00020603 when it cannot be read (pcsx2/ps2/BiosTools.cpp:214-241, 366-367, pcsx2/CDVD/CDVD.cpp:136-205).

The shaders, four interface fonts, GameIndex.yaml and patches.zip are built into the core (cmake/EmbedResources.cmake:19-31, 46-62, pcsx2/CMakeLists.txt:1170-1219) and win over the copies on disk unless PCEE2_EXTERNAL_RESOURCES is set in the environment (pcsx2/EmbeddedResources.cpp:8-12, pcsx2/GS/Renderers/Common/GSDevice.cpp:441-465, pcsx2/ImGui/ImGuiManager.cpp:473-495, pcsx2/GameDatabase.cpp:1037-1066, pcsx2/Patch.cpp:292-331, pcee2-libretro/Libretro.cpp:580-602). A missing resources directory is a warning, not a failure (pcee2-libretro/Libretro.cpp:562-571). patches.zip is packed at build time from the 3rdparty/pcsx2_patches submodule, so the build carries the patches of the commit it points at, and the directory supplies nothing this build reads by default. RedumpDatabase.yaml is read only by the Qt game summary (pcsx2/GameDatabase.cpp:1213-1226 has no caller in the core), game_controller_db.txt only by the SDL input source the port disables (pcee2-libretro/Libretro.cpp:690-691, pcsx2/Input/SDLInputSource.cpp:701-706), the achievement sounds only with achievements enabled, which no core option or adopted ini section does (pcsx2/Achievements.cpp:944-952), and fullscreenui/no-save.png only by the save state selector, whose hotkeys the port clears (pcee2-libretro/Libretro.cpp:693, pcsx2/ImGui/ImGuiOverlays.cpp:1441-1442). The port supplies Roboto alone to ImGui, so no emoji font is read.

Per-game user files keep their PCSX2 locations under <system>/pcsx2: cheats and patches as <serial><crc>.pnach (pcsx2/Patch.cpp:333-368), gamesettings/<serial><crc>.ini (pcsx2/VMManager.cpp:842-845), textures/<serial>/replacements (pcsx2/GS/Renderers/HW/GSTextureReplacements.cpp:269-271), memcards/*.ps2, which the core creates and lists in the memory card options (pcee2-libretro/Libretro.cpp:749-769). The DEV9 HDD image is named in the ini and created on demand.

7 files: 1 required, 6 optional. 3 have an HLE fallback.

By kind: 6 BIOS and 1 game data.

In this collection: 2 in repo and 5 missing.

FileStatus

a Sony PlayStation 2 BIOS, any file name

PS2 BIOS image

  • Path: pcsx2/bios/<bios>.bin
  • 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.
  • Size: min 4.0 MB, max 8.0 MB
Validation and source
missing
FileStatus

<bios>.rom1

DVD player ROM

  • Path: pcsx2/bios/<bios>.rom1
  • Tried as <bios>.bin.rom1 then <bios>.rom1, opened case-insensitively, skipped with a console line when absent.
  • Size: max 4.0 MB
Source
missing

<bios>.rom2

Chinese ROM extension

  • Path: pcsx2/bios/<bios>.rom2
  • Same lookup as rom1. Present on Chinese region consoles only.
  • Size: max 4.0 MB
Source
missing

<bios>.nvm

Console NVRAM (region parameters, language, iLink ID, OSD settings)

  • Path: pcsx2/bios/<bios>.nvm
  • 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.
  • Size: 1.0 KB
Source
missing HLE fallback

<bios>.mec

Mechacon version, one u32

  • Path: pcsx2/bios/<bios>.mec
  • Read at <bios>.mec, written as 0x00020603 when it cannot be read.
  • Size: 4 B
Source
missing HLE fallback

eeprom.dat

DEV9 network adapter EEPROM

  • Opened read-write and mapped from the process working directory by DEV9init. The built-in eeprom table is used when it cannot be opened.
Source
in repo HLE fallback
FileStatus

patches.zip

Built-in game patch archive (pnach per serial and CRC)

  • Path: pcsx2/resources/patches.zip
  • 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.
Source
optional in repo game data
.