Skip to content

PCSX2x6 - RetroBIOS

Type standalone
Classification Enhanced forks
Source https://github.com/PS2Homebrew-arcade/pcsx2x6
Upstream https://github.com/PCSX2/pcsx2
Version v0.2.20
Profiled 2026-08-08
Cores pcsx2x6, PCSX2X6
Systems namco-system246, namco-system256
Technical notes

Namco System 246 and 256 arcade boards, which are Sony COH-H PlayStation 2 motherboards. The Namco hardware sits on the DEV9 bus: ATA and ATAPI media, the ACCORE interrupt controller, JVS input, the expansion RAM board and the settings SRAM. Super 256 is the 256 with a higher bus clock, selected by platform=super256 in the game config. ref: pcsx2/DEV9/ACATA.cpp, pcsx2/DEV9/ACCORE.cpp, pcsx2/DEV9/ACJV.cpp, pcsx2/DEV9/ACRAM.cpp, pcsx2/DEV9/ACSRAM.cpp, pcsx2/VMManager.cpp:1382-1418

The BIOS must come from a COH-H board. A romver whose region letter is T followed by Z is read as zone COH-H, region 11, and the EXTINFO serial names the board: 20040519-145634 for System 256, 20021119-163841 for System 246 Rack C, 20000901-114731 for the COH-H A-000-010. Boot aborts when no image loads. ref: pcsx2/ps2/BiosTools.cpp:149-153, pcsx2/ps2/BiosTools.cpp:178-181, pcsx2/VMManager.cpp:1657-1667

Detection is by content. The scan lists the BIOS folder with a * mask, keeps files between 4 and 8 MB, and accepts the ones whose romdir carries a RESET entry followed by a readable ROMVER; EXTINFO supplies the serial. The picker in the settings window runs the same romdir test without the size filter, so a manually selected image of any length is accepted. No name and no hash is matched anywhere. ref: pcsx2/ps2/BiosTools.cpp:16-17, pcsx2/ps2/BiosTools.cpp:80-207, pcsx2/ps2/BiosTools.cpp:268-292, pcsx2-qt/Settings/BIOSSettingsWidget.cpp:65-73

Companions derive from the selected BIOS path. Each extension is appended to the full name first, then substituted for the existing one, so an image at COH-H31100.rom0 is followed by COH-H31100.rom0.rom1 then COH-H31100.rom1. The project's dumper writes that exact set from a live board: .rom0 of 0x400000, .rom1 of 0x400000, .rom2 of 0x80000, .nvm of 1024 bytes and .mec of 4 bytes, all named after the board model. ref: pcsx2/ps2/BiosTools.cpp:224-251, pcsx2/CDVD/CDVD.cpp:164-167, biosdrain dump.c:32-36, biosdrain dump.c:70-120

A game is launched from an .acgame config in INI form. It names the boot elf, the security dongle image in the memcards folder, an optional save card, the CD/DVD/HDD image and the settings SRAM, and everything but the seven character NM gameid can be resolved from the shipped database. Those files are the game itself, one set per title. ref: pcsx2/VMManager.cpp:1345-1490, pcsx2/VMManager.cpp:2667-2670, pcsx2/DEV9/ACSRAM.cpp:17-40

The 256 regional signature normally comes from the iLinkId held in the nvm. A 256Region entry in the .acgame feeds ASIA4, ASIA5 or JAPAN into the mechacon read instead, which the Taiko games use to pick their region. ref: pcsx2/CDVD/CDVD.cpp:2595-2608, pcsx2/VMManager.cpp:1371-1378

Read from the distribution tree and versioned with the build: the shader sources every GS backend compiles at startup, the OSD fonts and fullscreen UI textures, and the achievement notification sounds. ref: pcsx2/GS/Renderers/Common/GSDevice.cpp:363-366, pcsx2/ImGui/ImGuiFullscreen.cpp:300, pcsx2/ImGui/ImGuiFullscreen.cpp:396, pcsx2/Achievements.cpp:1158, pcsx2/Achievements.cpp:1214, pcsx2/Achievements.cpp:1339

11 files | 1 required, 10 optional | 5 in repo, 6 missing | 4 with HLE fallback

COH-H31100.rom0 required missing
COH-H arcade board BIOS

  • System: namco-system246
  • Size: min 4.0 MB, max 8.0 MB
  • Aliases: COH-H31000.BIN, 246C.bin, 256.BIN
  • Validation: size
  • Source: pcsx2/ps2/BiosTools.cpp:268-292, pcsx2/ps2/BiosTools.cpp:80-207, pcsx2/ps2/BiosTools.cpp:327-379
  • Any image whose romdir holds RESET and ROMVER is accepted, whatever its name. The 4 to 8 MB range gates the folder scan; a manually selected image skips it. Named after the board model by the dumper, extension rom0. The aliases are the three board dumps held here, COH-H31000, System 246C and System 256; each carries its romdir at 0x2740 and answers the same test.

COH-H31100.rom1 optional missing
ROM1 board region

COH-H31100.rom2 optional missing
ROM2 board region

COH-H31100.nvm optional missing HLE fallback
Board NVRAM

  • System: namco-system246
  • Size: 1.0 KB
  • Aliases: COH-H31000.NVM, 246C.nvm, 256.NVM
  • Source: pcsx2/CDVD/CDVD.cpp:47, pcsx2/CDVD/CDVD.cpp:140-178, pcsx2/CDVD/CDVD.cpp:2608
  • Read from the BIOS path with the extension replaced by nvm. Carries the iLinkId the 256 games read as a regional signature; a hardcoded id stands in when the file is missing or blank there. A default image is built when the file cannot be read.

COH-H31100.mec optional missing HLE fallback
Mechacon version

  • System: namco-system246
  • Size: 4 B
  • Aliases: COH-H31000.MEC, 246C.mec, 256.MEC
  • Source: pcsx2/CDVD/CDVD.cpp:51-52, pcsx2/CDVD/CDVD.cpp:196-209
  • Read from the BIOS path with the extension replaced by mec. Written with 0x0104020A, the version of a COH-H31100, when absent.

eeprom.dat optional in repo HLE fallback
DEV9 EEPROM

flash.dat optional missing HLE fallback
DEV9 SmartMedia flash image

GameIndex.yaml optional in repo
Arcade game database

RedumpDatabase.yaml optional in repo
Disc hash database

patches.zip optional in repo
Bundled patch archive

  • Path: bin/resources/patches.zip
  • System: namco-system246
  • Source: pcsx2/Patch.cpp:117, pcsx2/Patch.cpp:289-315, .github/workflows/linux_build_qt.yml:129
  • Opened read-only from the resources folder. Built-in patches are unavailable and an on-screen error is shown when it cannot be opened. Fetched from the patches repository at build time, not committed.

game_controller_db.txt optional in repo
SDL controller mapping database

Generated on 2026-08-23T16:12:06Z