emulator: ArcadeDuck type: standalone core_classification: community_fork source: "https://github.com/StillJC/ArcadeDuck" upstream: "https://github.com/stenzek/duckstation" source_commit: "4a9313cacab2f396a87736a43907a70894e2c40f" prose_written_at: "4a9313cacab2f396a87736a43907a70894e2c40f" pin_frozen: "RetroBat, the only platform that ships it, packages this build: the ArcadeDuck.exe of its beta arcadeduck.7z (repo/win64/beta, 7 November 2026) reports 0.6.5-dev-buildD0014-g4a9313cac, the bump its changelog records (RetroBat CHANGELOG.md:7). The stable 8.3.1 package carries 0.5.3 build R0004 (26caf9cd). Later commits are not part of that package." upstream_commit: "526b4a128827ecaef037134095cd95f431b52d06" profiled_date: "2026-10-26" core_version: "0.6.5-dev" version_basis: kind: file path: "src/scmversion/arcadeduck_version.h" pattern: '#define\s+ARCADEDUCK_SEMANTIC_VERSION\s+"([^"]+)"' display_name: "Arcade - Sony ZN-1, Namco System 11, Konami GV/GQ (ArcadeDuck)" cores: - arcadeduck systems: - konami-gv - konami-gq - namco-system11 - capcom-zn1 - capcom-zn2 - videosystem-zn1 - atlus-zn1 - eighting-zn1 - atari-zn1 - acclaim-zn1 - tecmo-tps - taito-fx1 - taito-gnet mode: standalone notes: | DuckStation fork that runs the PlayStation based arcade boards. The RetroBat beta package is dev build D0014 of 4a9313c, whose tree is the one the 0.6.5 release R0006 builds from f74a43c, and its resources/arcadedb.yaml is byte for byte the one of the release archive arcadeduck-windows-x64-release.zip, the source file with CRLF line ends. The source names the version 0.6.5-dev. ref: source src/scmversion/arcadeduck_version.h:12 A game is a MAME style set identified by its archive name, .zip or .7z, through resources/arcadedb.yaml, read from the resources folder beside the executable. Without that file no archive is recognised and nothing boots. A clone reads the ROMs it lacks from the archives of its parents in the same folder, so split and merged sets load as well as non-merged ones. A Taito G-Net game also starts from its CHD image, identified through the same database. ref: source src/core/arcade/arcade_database.cpp:34, 1207-1224, 1404-1423, source src/core/arcade/arcade_database.cpp:1551-1596, source src/core/system.cpp:1624-1678 Arcade boots skip the PlayStation BIOS scan: each board handler loads and checks its own BIOS. The PS1 BIOS search inherited from DuckStation only runs for a standard boot, which the RetroBat launcher never requests since it refuses anything but a .zip set. ref: source src/core/system.cpp:1837-1838, emulatorLauncher Generators/ArcadeDuck.Generator.cs:46-48 Board firmware is read from the BIOS directory (EmuFolders::Bios, the [BIOS] SearchDirectory setting). RetroBat points it at the folder of the game when the firmware archive sits there, else at the RetroBat bios folder. ref: source src/core/settings.cpp:1794, source src/core/arcade/arcade_machine_handler.cpp:152-153, emulatorLauncher Generators/ArcadeDuck.Generator.cs:104-128 A member of a firmware archive is found by name, case insensitive, with the size listed in arcadedb.yaml and its CRC32, or by size and CRC32 under any name. Its data must then match the CRC32 and, when one is listed, the SHA-1. Any mismatch stops the boot. ref: source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, source src/core/arcade/systems/namco/system11/namco_system11.cpp:188-195, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444 Konami GV uses a fixed archive name and member, hardcoded in bios.cpp rather than read from the database: konamigv.zip, else konamigv.7z, in the BIOS directory. Konami GQ takes its BIOS member 420b03.27p from the game archive or the archive of a parent, so no separate file is read for it. ref: source src/core/bios.cpp:168-172, 221-263, 265-285, source src/core/arcade/arcade_machine_handler.cpp:36-44, 82-88 arcadedb.yaml also declares sys573.zip (Konami System 573) and gq863.zip (Konami Twinkle), but no machine handler exists for those boards at this revision, so their sets never get to the point of opening a firmware archive. ref: source src/core/arcade/arcade_machine_handler.cpp:1102-1132 Only the members a handler reads are listed under each archive: the 512 KiB main BIOS and the motherboard CAT702 security key for the ZN boards, c76.bin for Namco System 11. The Taito G-Net handler also reads the U30 flash and the second CAT702 key, and on COH-3002T the F35 EPROM, the COH-1002T socket being left empty and filled with FF. The uPD78081 MCU ROM of the ZN boards is undumped and emulated without it. ref: source src/core/arcade/systems/sony/zn/sony_zn.cpp:641 files: - name: "arcadedb.yaml" path: "resources/arcadedb.yaml" required: true bundled: true size: 1724290 sha1: "4156be079a54776c9c78c0255abda295b379121a" md5: "813692f1264f8bd86ca2cb7a642c5793" description: "Arcade set, board and firmware database" source_ref: "source src/core/arcade/arcade_database.cpp:34, 1207-1224, source src/arcadeduck-qt/qthost.cpp:2039-2046" note: "Hashes are those of the copy in the release archive, written with CRLF line endings. The repository copy at 80cdb6d holds the same text with LF endings." - name: "konamigv.zip" system: konami-gv required: true category: bios_zip description: "Konami GV BIOS" source_ref: "source src/core/bios.cpp:168-172, 221-263, source src/core/arcade/arcade_machine_handler.cpp:36-44" note: "konamigv.7z holding the same member is read when konamigv.zip is absent." contents: - name: "999a01.7e" size: 524288 crc32: "ad498d2d" sha1: "02a82a2fe1fba0404517c3602324bfa64e23e478" - name: "namcoc76.zip" system: namco-system11 required: true category: bios_zip description: "Namco System 11 C76 firmware" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:152-157, source src/core/arcade/systems/namco/system11/namco_system11.cpp:188-195, 437-445, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:70" note: "c76.bin is the internal ROM of the C76 sound and I/O MCU." contents: - name: "c76.bin" size: 16384 crc32: "399faac7" sha1: "ceb184ef0486caf715dd997101999785f67a40b8" - name: "coh1000c.zip" system: capcom-zn1 required: true category: bios_zip description: "Capcom ZN-1 (COH-1000C) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:239-245, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 3341-3349, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:111" note: "The handler always asks for BIOS variant j, the Japanese mask ROM m534002c-13.ic353. msm27c402zb.ic353, the e variant listed beside it, is never read." contents: - name: "m534002c-13.ic353" size: 524288 crc32: "50033af6" sha1: "486d92ff6c7f1e54f8e0ef41cd9116eca0e10e1a" - name: "cp01.ic652" size: 8 crc32: "bb7ba033" sha1: "966f3aee5d00e1312c455f855915d621e6cb0672" - name: "coh3002c.zip" system: capcom-zn2 required: true category: bios_zip description: "Capcom ZN-2 (COH-3002C) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:290-319, 1112-1113, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3270-3295, 3341-3349, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:144, 155-156" contents: - name: "m534002c-59.ic353" size: 524288 crc32: "e860ea8b" sha1: "66e7e1d4e426466b8f48a2ba055a91b475569504" - name: "cp10.ic652" size: 8 crc32: "7808fcef" sha1: "3c3fb8227b05dace042dc1429b9f2355b1a15638" - name: "coh1002v.zip" system: videosystem-zn1 required: true category: bios_zip description: "Video System ZN-1 (COH-1002V) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:450-453, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 3466-3474, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:360" contents: - name: "coh-1002v.ic353" size: 524288 crc32: "5ff165f3" sha1: "8f59314c1093446b9bcb06d232244da6df78e206" - name: "kn01.ic652" size: 8 crc32: "1ce271df" sha1: "b01479dc75a4a8a86bee7ac7cd10af2bda332544" - name: "coh1001l.zip" system: atlus-zn1 required: true category: bios_zip description: "Atlus ZN-1 (COH-1001L) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:517-520, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 3568, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:330" contents: - name: "m534002c-17.ic353" size: 524288 crc32: "6721146b" sha1: "9511d24bfe25eb180fb2db0835b131cb4a12730e" - name: "at01.ic652" size: 8 crc32: "181668b3" sha1: "8d2fe1facb4473cc20b4b477aaf881f9280939cf" - name: "coh1002e.zip" system: eighting-zn1 required: true category: bios_zip description: "Eighting/Raizing ZN-1 (COH-1002E) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:601-604, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 3724, 3857, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:390" contents: - name: "m27c402cz-54.ic353" size: 524288 crc32: "910f3a8b" sha1: "cd68532967a25f476a6d73473ec6b6f4df2e1689" - name: "et01.ic652" size: 8 crc32: "a7dd922e" sha1: "1069c1d9015028a51a1b314cfacb014ea90aa425" - name: "coh1000w.zip" system: atari-zn1 required: true category: bios_zip description: "Time Warner / Atari ZN-1 (COH-1000W) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:689-692, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 3940, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:301" contents: - name: "msm27c402zb.ic353" size: 524288 crc32: "45e8a4b4" sha1: "815488d8563c85f97fbc3384ff21f08e4c88b7b7" - name: "tw01.ic652" size: 8 crc32: "1cac067e" sha1: "8e87941bfb374172628c8a37647e3a66b7166aa8" - name: "coh1000a.zip" system: acclaim-zn1 required: true category: bios_zip description: "Acclaim ZN-1 (COH-1000A) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:764-767, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 4079, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:272" contents: - name: "m534002c-15.ic353" size: 524288 crc32: "8d8d0764" sha1: "7ee83d317190bb1cef2f8f01c81eaaae47150ebb" - name: "ac01.ic652" size: 8 crc32: "c425eaf5" sha1: "decf77ab50f7f58c641c3214a11647924f3a8998" - name: "coh1002m.zip" system: tecmo-tps required: true category: bios_zip description: "Tecmo TPS (COH-1002M) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:859-862, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 4410, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:421" contents: - name: "m534002c-61.ic353" size: 524288 crc32: "69ffbcb4" sha1: "03eb2febfab3fcde716defff291babd9392de965" - name: "mg01.ic652" size: 8 crc32: "50dc8322" sha1: "cef4011c6c06d6fce546e1db5d9fbae155eabf57" - name: "coh1000t.zip" system: taito-fx1 required: true category: bios_zip description: "Taito FX-1 (COH-1000T) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:986-989, source src/core/arcade/systems/sony/zn/sony_zn.cpp:1203-1210, 3274-3283, 4192, 4300, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:241" contents: - name: "m534002c-14.ic353" size: 524288 crc32: "e3f23b6e" sha1: "e18907cf8c6ba54d96edba0a9a00487a90219e0d" - name: "tt01.ic652" size: 8 crc32: "daac13e7" sha1: "96d94f2b06fb7ecd91454969f4959a583ffb9d5a" - name: "coh3002t.zip" system: taito-gnet required: true category: bios_zip description: "Taito G-Net (COH-3002T) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:363-390, 1114-1115, source src/core/arcade/systems/sony/zn/sony_zn.cpp:3270-3293, 4598-4632, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:176, 185-189" contents: - name: "m534002c-60.ic353" size: 524288 crc32: "03967fa7" sha1: "0e17fec2286e4e25deb23d40e41ce0986f373d49" - name: "tt10.ic652" size: 8 crc32: "235510b1" sha1: "2cc02113207a8f0b078152d31ce6503411750e70" - name: "flash.u30" size: 2097152 crc32: "c48c8236" sha1: "c6dad60266ce2ff635696bc0d91903c543273559" - name: "f35-01_m27c800.bin" size: 1048576 crc32: "6225ec11" sha1: "047852d456b6ff85f8e640887caa03cf3e63ffad" - name: "tt16.u17" size: 8 crc32: "6bb167b3" sha1: "9dcba08f10775a9adf2b1f382c947460edd3d239" - name: "coh1002t.zip" system: taito-gnet required: true category: bios_zip description: "Taito G-Net on a ZN-1 motherboard (COH-1002T) BIOS" source_ref: "source src/core/arcade/arcade_machine_handler.cpp:363-390, 1114-1115, source src/core/arcade/systems/sony/zn/sony_zn.cpp:3270-3293, 4598-4632, source src/core/arcade/arcade_rom_loader.cpp:258-293, 356-444, source data/resources/arcadedb.yaml:209, 218-221" contents: - name: "m534002c-14.ic353" size: 524288 crc32: "e3f23b6e" sha1: "e18907cf8c6ba54d96edba0a9a00487a90219e0d" - name: "tt01.ic652" size: 8 crc32: "daac13e7" sha1: "96d94f2b06fb7ecd91454969f4959a583ffb9d5a" - name: "flash.u30" size: 2097152 crc32: "9100dbf2" sha1: "9ce888bd2a7e575c8ca71d978cb85de22afb5660" - name: "tt99.u17" size: 8 crc32: "2989b6eb" sha1: "89981ec68d30729c27d31f820cbfd0c23ed14a03"