The Compatibility folder of an Xbox 360 drive is what xenia-edge mounts
as Xenia-Edge/xefu/ (libretro) and xefu/ (standalone): the collection
files it under that tail so the directory entry resolves.
Compatibility folder of an Xbox 360 hard drive and the April 2018
backward compatibility title update (FFFE07D2, v2.0.5832.0).
xbox.xex and xefu.xex (v2.0.1884.0) and dash/fonts/xbox.xtf are equal in
archive.org items backwards-compatibility-files and
xbox-360-backwards-compatibility-partition-backup. Xbox Book.xtf is equal
in backwards-compatibility-files and a second upload of the folder.
The xefu1_1 to xefu7b builds and xefutitle5 to xefutitle7b come from the
title update package tu20075c00_00000000 (backwards-compatibility-files).
Every block of the package matches its hash tables up to the header top
hash, and every XEX verifies against the retail PIRS public key. The
package's xbox.xexp and xefu.xexp name the base files above by the SHA-1
of their signatures.
pak399.pk4 and pak399roe.pk4 as libretro/boom3 ships them at efe140c
(tools/vr_paks/compiled/, git blob 2f5c1ad6 and 18254709). VR builds
mount them over base/ and d3xp/.
Expansion, accelerator, controller, freezer, bridgeboard and CDTV/CD32
ROMs that Amiberry and WinUAE identify by SHA-1 (rommgr.cpp). Each file
is named after its rommgr label and matches the listed SHA-1.
All 178 are in archive.org item doc_2025-08-26_04-38-36 ("Amiga
roms/bin"), compared by the item's per-file SHA-1.
Independent copies that reproduce the same bytes:
- MAME archives already in bios/Arcade (a590.zip, amiga_a590.zip,
amiga_a2091.zip, buddha.zip, amiga_ar1.zip, amiga_oktagon2008.zip,
amiga_a570.zip): 13 ROMs, 7 of them by byte-interleaving the
even/odd chip halves (A590/A2091 v4.4 to v7.0)
- TOSEC Commodore Amiga - Firmware (archive.org commodore-amiga-firmware):
Action Replay Mk I v1.0/v1.5, Action Replay 1200, Action Cartridge
Super IV Pro v4.3, CDTV A570 v2.30, Nordic Power v1.5/v2.0/v3.0,
X-Power Professional 500 v1.2/v1.3
- archive.org a2091-6_6, a2091PDMA-07, commodore-amiga-a-2286-bios-v-3.6
(even/odd halves merged), bios-a-2088 (A2088 BIOS 3.4, 3.6.1)
hiscore.dat and artwork/dotron.zip as mame2003-plus ships them at
ffc68e3 (sha1 d41b1c32, c6d6579f, both as its profile declares), and
Plus.j2d from the JJ2+ installer of 2026-08-31 (get.jj2.plus, sha1
fcec91aa), which jazz2-native converts textured layers from.
The three committed samples sat under FBAlpha 2012 while the four
release assets and the profile use fba2012/samples. The folder check
now folds Alpha to A and also reads database paths, which list the
release assets the index never holds.
QEMU's 79 files go to QEMU/QEMU and Roland's four loose ROMs to MT-32
and CM-32L. The mt32-roms, soundcanvas-roms and sounddata trees stay as
the code addresses them. Chihiro joins Sega and the Oric joins
Tangerine, the names the site and libretro already use. No destination
held other bytes.
The three QEMU EDK2 images are release assets, and their .gitignore
lines follow them. Database and manifests are regenerated together.
verify --all and cross_reference give the same output once moved paths
are mapped.
DS and DSi split into Nintendo DS and Nintendo DSi. 64DD, Mega-CD,
ZXSpectrum, VSmile, BBC and Game Engines/DOOM merge into the folder
of the same console. Same-named dumps with other bytes are kept:
BBC Micro's earlier zips in .variants/, the vsmilem set in vsmilem/,
the Doom II 1.666 IWAD in v1.666/, BizHawk's DSi firmware in bizhawk/.
Galaksija and Vircon get a console folder, sdlpal's desc.dat joins
its tree, VICE's PET and CBM-II ROMs leave C128 with their vice/ tail.
Database and manifests regenerated together. Verify and cross
reference give the same result once moved paths are mapped.
level2/3/4/4P.rom are the TRS-80 Model I, III, 4 and 4P ROMs (groovymame names two by hash) and sat under Mattel/Intellivision. dedup.py removes ten byte-identical MAME archives and records them in the clone map.
EmuELEC declares 19 files of the Tyrian 2.1 distribution (setup.ini,
netterm.int, the net*.pcx screens...) that bios/ did not hold. They
resolved only at the data directory step, against data/opentyrian, the
cache refresh_data_dirs.py fills from the opentyrian-data.zip asset. verify
gave 544/572 in a checkout holding that cache and 525/572 in one without
it, for the same commit.
The 19 files are taken from the freeware tyrian21.zip (camanis.net, sha1
29827de9), each equal to the cached copy. netset.pcx and tyrset.pcx are
the same bytes under two names, so the folder joins NODEDUP_DIRS. A test
resolves every platform entry with the data directory caches present and
fails on any that only a cache answers.
The recipe check now fails on a single member outside every recipe of the
archive's name. 29 unpinned archives held one or two such members.
Device sets never have their sub-devices looked up in their own archive:
a device searches its own name, then the system's (device_t::searchpath,
src/emu/device.cpp:140-152). bbc_tube_a500, bbc_tube_a500d and sw1000xg are
rebuilt as TorrentZip from the mame profile recipe. The Arcade/ copies of
a2diskiing, a2mouse, coco_fdc_v11, hp82937, hp98034, pc8001 and mz80k go:
their recipe build already exists under the same name.
In a system set, a device ROM is found in the machine's archive: SAA5050
in bbcm, DragonDOS (default cartridge) in dragon32/64, PC-80S31 in
pc6001mk2sr and pc8001mk2sr. Those are listed as device ROMs in the test.
trs80.zip and trs80m3.zip are rebuilt from the mame recipe; level2.rom and
8041730.u12 stay held loose. The Arcade/ copies of trs80, dragon64 (with a
nested dragon32.zip), pcw9512 and tvc64, and the bk0010 variant, go: every
member is held elsewhere, the only bytes dropped being the empty tmctv
marker of a platform pack.
cvs.zip and aquarius_ar.zip become their recipe builds; the originals move
verbatim to .variants/ for cvs.txt (mame.dk banner) and TMCTV.png, held
nowhere else. The cvs build equals the old .variants/cvs.zip.95581230.
dc.zip (dc_boot.bin, dc_flash.bin) is not MAME's dc set and the bbcb
variant is MAME 0.150's
set; both stay, named in the test.
svg_bios.u49 is listed in svgpcbBIOSRomDesc (d_pgm.cpp:923-929), which only
STDROMPICKEXT(svgpcb, svgpcb, svgpcbBIOS) at line 7035 pulls in. The FBNeo
DAT likewise places it in svgpcb, and pgm's own list (pgmRomDesc, lines
879-892) has six members. The fbneo profile now files it under svgpcb.zip.
bios/Arcade/Arcade/pgm.zip is rebuilt as TorrentZip from the six members of
the FBNeo pgm recipe. The build is byte for byte the copy that was in
.variants/pgm.zip.6bbbce09, which goes. The two unpinned seven-member
copies (.variants/pgm.zip.931a4971 and MAME/.variants/pgm.zip.6ade4934)
go too: every member is still held, svg_bios.u49 as
bios/Arcade/FBNeo/svg_bios.u49. The pinned copies (87cc944e in MAME/,
68ef99a1 in .variants/) are untouched.
RetroDECK pins the container md5 of 170 of the archives 6ee162f8 imported, which carry the ROMs of every slot option reachable from the set. Those copies move verbatim to .variants/, where the md5 still resolves them, and the primary is rebuilt as TorrentZip from the recipe the profiles declare, each member checked by crc32 and sha1. Where a same-named copy in bios/Arcade/Arcade held the same pollution, it is rebuilt too.
Two members only these copies held stay in the older recipe that names them: pio_a72.bin in imds2ioc and presap2rb_123.rom in electron_romboxp (MAME 0.195 to 0.220), both under .variants/.
6ee162f8 imported MAME device and machine archives that each carried the ROMs of every slot option reachable from the set (H19 terminal ROMs in sys68k_cpu30.zip, 371 ISA card ROMs in slvrball.zip). MAME reads a slot card from the card's own archive, so those members were never read there.
Each archive is rebuilt as TorrentZip from the recipe its profiles declare (their union when profiles of several MAME versions differ), every member checked by crc32 and sha1. A copy whose recipe build already exists under the same name is removed, keeping the one filed under its manufacturer. 341-0057.bin, held only in these copies, stays in the MAME 0.220 a2pic recipe under .variants/. Every member removed is still held elsewhere in the collection.
Both pairs from the Real3D SDK disc (_SETUP.1): Bayou 0x64130009 at
Assets/, Orlando 0x64130005 in .variants/. The .pmem size check against
the .cmem header keeps a pair from mixing models.
chex.deh and french.deh come from idgames (themes/chex/chexdeh.zip, utils/exe_edit/patches/french.zip), both released with no restriction by their author.
The archive held 33 members of other sets (H19, Mockingboard...) next to its five CPU-30 ROMs. Every extra member is held elsewhere in the collection. Rebuilt as TorrentZip from the five members MAME 0.289's listxml names, checked by crc32 and sha1.
p1_p4.bin and p2.bin come from Group13 of the InstallShield archive on
the PRO-1000 SDK CD (archive.org item real3d, real3d.iso sha1
042fbf36). Both match the crc32 Config/Games.xml declares. Built as
TorrentZip.
EmuELEC pins bios/dc/naomi.zip at md5 e63d892c since its batocera-systems
of 2019-10-25 (8952db90), and AmberELEC inherits the entry. The archive is
an older MAME naomi set (20 members, dcnaodev.bios, epr-21578b) kept
verbatim from BatoceraPLUS/Batocera.PLUS-bios naomi.zip (602a91e9).
dinothawr.game is the content file or, without content, system_dir/dinothawr/dinothawr.game. The copy is the one at the pinned revision, which references bg.apng; the 2013 buildbot archive carries an older manifest.
A type 5 level event loads newsh<char>.shp through shapeFile[34] with dir_fopen_die. The 31 banks the Tyrian 2.1 levels name are listed, those of episode 1 required, and taken from the freeware tyrian21.zip. newsh1 and newsh6 load on every run and are required.
Each profile's contents list names one version of a MAME, AdvanceMAME,
FBA or MAME4droid set. MAME 0.278-0.289 sets come from the archive.org
non-merged romsets; the 0.37b5-0.139 sets are TorrentZip builds of the
listed members, taken from the 0.78 reference set, MAME 0.149 and the
MAME4droid 0.139 romset.
The archive held MAME's galgame set (sw97.lst), not the Galaxy Games
BIOS root galgames (src/mame/ces/galgames.cpp:1301). The new archive
holds the six v1.71/v1.80/v1.90 ROMs, TorrentZip, identical to the
MAME 0.289 romset on archive.org (item mame-0.289).
From archive.org msdos_DUKE2_shareware DUKE2.zip (md5 bc30f5520e452bac6866deb37ef918b2), the release RigelEngine points to. The archive holds neither LCR.MNI nor O1.MNI, the registered markers.
sf7000.rom is read only by the sega-sf7000 entries of blueMSX. It sat in bios/Microsoft/MSX because blueMSX keeps its machine folders together, which is a pack destination, not where the collection files a dump.
ROM_START(s8k_cpu) in src/devices/bus/zbi/s8k_cpu.cpp (mamedev f34f0250) names cpu_34-0715-03a.u76, cpu_34-0717-03a.u75 and cpu_34-0718-03a.u77 under two system BIOSes with the same CRC. The archive held them twice. Rebuilt with build_torrentzip from the 13 distinct members, each checked against the mame0289 recipe sha1.
Pin moves to 2de3bf8 (v8.4.2). roms/aros-ext.bin, roms/aros-rom.bin and whdboot/game-data/whdload_db.json changed upstream and are collected at that revision. The WHDLoad database is matched on the archive SHA1 first and refreshed from the bundled copy when newer. kick02019.AROS and its .ext are names the Recalbox launcher writes, so the profile now documents the kickstart_rom_file settings instead.
bios/Sharp/X68000/cgrom.tmp had cgrom.dat's sha1 (8d72c5b4). px68k reads cgrom.tmp only when cgrom.dat is absent (libretro.c:915-919, SDL/SDL2/winx68k.cpp:317-331), and a real cgrom.tmp is a font mkcgrom generates on the user's machine. No platform declares it.
21 device archives collected for MAME 0.289 are byte-identical to sets already held under another name: a set renamed in 0.289 (tms32030 to tms320c30, hardbox to gpib_hardbox) or one ROM set several devices share (sys68k_cpu21 family, voicebox). One copy stays and the other names go to the MAME clone map, through which each name still resolves.
40 files BizHawk 2.11.1's FirmwareDatabase.cs names that the collection lacked, each verified against the sha1 it states: Mega CD and Master System revisions, TI-83 and TI-83 Plus ROMs, Game Boy and Game Boy Color boot ROMs, Super Game Boy, NDS firmware, 64DD IPL, 3DO and LaserActive PAC-S10 v1.02 (No-Intro [BIOS] LaserActive (USA) (v1.02)). Sources: archive.org bizhawk-firmware-files_20250516 and pioneer-laseractive-bios-pack.
parallel.rom (slot 1, src/config.c:527) and lib/letgothl.ttf (default printer font, src/sim65816.c:166) taken from gsplus-legacy-archive at 48057205, the revision the profile pins.
coco.zip held only bas10.rom, the MAME 0.190 to 0.250 set, while 0.289's coco loads bas10, bas11, bas12, extbas10 and extbas11. The complete set is rebuilt with build_torrentzip from held ROMs plus extbas10.rom (crc32 6111a086) checked against the listxml sha1. The old archive goes to .variants, no platform pins its md5. RetroBat and RetroDECK pin scv.zip without upd1771c-017.s03, which 0.289 requires: the pinned copy stays and the complete set goes to .variants.
The primary (sha1 f7101b40) is named by no dump catalog and differs from the catalogued dump in 60 runs of 16 bytes. The variant (sha1 b3b1d880) is the dump No-Intro, TOSEC and MAME 0.289 (laseractj, v105) name and the only one BizHawk 2.11.1 accepts (FirmwareDatabase.cs:294). No platform pins either md5, so the catalogued dump becomes the primary.
55 device sets the collection lacked or held incomplete. 24 are rebuilt from ROMs already in bios/, 31 come from the archive.org item mame-roms-non-merged. Every member matches the 0.289 listxml size, crc32 and sha1, and each archive is built with build_torrentzip. The complete nss_tvinterface goes to .variants since RetroDECK pins the incomplete copy. The old at_keybc.zip held two of the three ROMs, its md5 is pinned by no platform, and is replaced by the complete set RetroDECK pins (63536a7d). Database and install manifests are regenerated with the files, including the vMac.ROM move.
Recalbox now resolves uae4all to its own libretro build, so only the bundled entries of the standalone uae4all2 reached these two AROS ROMs, which its release ships.
The libretro core passes system/mame/{hash,plugins,samples} (retro_init.cpp:111-155). Software lists are required in mamemess, where softlists are on by default. The trees and the 19 floppy samples are collected from libretro/mame at the pin.
Seven artwork zips from the core's metadata/artwork are read from mame2003-plus/artwork/ when Display Artwork is on, the default (artwork.c:2242-2258).
The libretro core copies whdboot from the system directory and uses a candidate only when WHDLoad, JST, AmiQuit, boot-data, the game database and the five RTB files are all there (amiberry.cpp:11510-11584). The core zip has none of them, so they are collected.