From f956048bc52c82459d3f1c3831abc4874fca02ad Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Sun, 18 Oct 2026 20:32:41 +0200 Subject: [PATCH] docs: list the new test modules, refresh README --- README.md | 26 +++++++++++++------------- database.json | 5 +---- wiki/testing-guide.md | 4 ++-- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index ce6d8d52..7edb4e9b 100644 --- a/README.md +++ b/README.md @@ -72,8 +72,8 @@ Each file is checked the way your platform checks it. Most compare a checksum, t - **12 platforms** supported with platform-specific verification - **530 emulators** profiled from source (RetroArch cores + standalone) - **513 systems** handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...) -- **19,079 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,337 system files, 2,813 arcade ROM sets, 10,929 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table -- **562 of 5,337 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index +- **19,081 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,339 system files, 2,813 arcade ROM sets, 10,929 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table +- **563 of 5,339 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index - **16755 MB** total collection size ## Supported systems @@ -86,18 +86,18 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/ | Platform | On its BIOS list | Files its emulators load | Checked by | |----------|-----------------:|-------------------------:|------------| -| Batocera | 353/353 | 12,353/12,787 | MD5 hash | -| BizHawk | 118/118 | 754/755 | SHA1 hash | +| Batocera | 353/353 | 12,354/12,788 | MD5 hash | +| BizHawk | 118/118 | 755/756 | SHA1 hash | | EmuDeck | 168/168 | 451/453 | MD5 hash | -| Lakka | 532/532 | 5,266/5,296 | file presence | +| Lakka | 532/532 | 5,267/5,297 | file presence | | MiSTer FPGA | 81/81 | - | MD5 hash | -| ROCKNIX | 38/38 | 5,925/6,002 | MD5 hash | -| Recalbox | 351/351 | 2,787/2,805 | MD5 hash | -| RetroArch | 526/526 | 5,278/5,308 | file presence | -| RetroBat | 348/348 | 7,260/7,419 | MD5 hash | -| RetroDECK | 2,008/2,008 | 5,326/5,376 | MD5 hash | -| RetroPie * | 532/532 | 9,196/9,338 | file presence | -| RomM | 383/383 | 773/780 | MD5 hash | +| ROCKNIX | 38/38 | 5,926/6,003 | MD5 hash | +| Recalbox | 351/351 | 2,788/2,806 | MD5 hash | +| RetroArch | 526/526 | 5,279/5,309 | file presence | +| RetroBat | 348/348 | 7,261/7,420 | MD5 hash | +| RetroDECK | 2,008/2,008 | 5,327/5,377 | MD5 hash | +| RetroPie * | 532/532 | 9,197/9,339 | file presence | +| RomM | 383/383 | 774/781 | MD5 hash | Each fraction is what the pack has over what is needed, counting required and optional files alike since both ship. The first column is the BIOS list the platform publishes. The second counts files its emulators load that this list never mentions, found by reading their source code, and it is routinely several times larger. A short fraction means files are still missing, and they are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/). That second number is a floor, not a ceiling: an emulator that accepts any file handed to it names none in its code, so nothing there can be counted. @@ -180,4 +180,4 @@ The scripts and tooling are released under the [MIT License](LICENSE). The BIOS and firmware files are not covered by that license: they are third-party system software, preserved and provided for personal backup, archival, and interoperability with emulation software. [NOTICE](NOTICE) sets out their status and how to ask for a file to be removed. The reasoning, and where it is weakest, is in the [FAQ](https://abdess.github.io/retrobios/wiki/faq/#is-this-legal). -*Auto-generated on 2026-10-18T14:10:55Z* +*Auto-generated on 2026-10-18T18:31:56Z* diff --git a/database.json b/database.json index 8664158d..a60a5aed 100644 --- a/database.json +++ b/database.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "generated_at": "2026-10-18T17:35:31Z", + "generated_at": "2026-10-18T18:08:38Z", "total_files": 19081, "total_size": 17568664571, "bios_dir": "bios", @@ -271912,9 +271912,6 @@ "jagboot_m.rom": [ "af643900fea84234e08b616a6d27f03f0a61db96" ], - "pc1000.fls": [ - "e8e418fc92d8846111719cb12a0584703c3bdd0b" - ], "IPLROM.DAT": [ "0ed038ed2133b9f78c6e37256807424e0d927560" ], diff --git a/wiki/testing-guide.md b/wiki/testing-guide.md index 142d344a..e4bb61b3 100644 --- a/wiki/testing-guide.md +++ b/wiki/testing-guide.md @@ -38,10 +38,10 @@ Every module in `tests/`, by the area it guards. | Area | Fixtures | Modules | |------|----------|---------| | Core regression suites | synthetic | `test_e2e`, `test_audit_regressions` | -| File resolution and identity | synthetic + collection | `test_adler32_resolution`, `test_agnostic_scan`, `test_agnostic_scan_mode`, `test_agnostic_scope`, `test_agnostic_substitute`, `test_archive_choice`, `test_bios_companions`, `test_bundled_identity`, `test_casefold_cache`, `test_db_aliases`, `test_declared_names`, `test_derivations`, `test_directory_entries`, `test_extra_identity`, `test_foreign_tree`, `test_frontend_digest`, `test_game_data_homonyms`, `test_hashing`, `test_identity`, `test_md5_pack_context`, `test_name_tiebreak`, `test_nec_filing`, `test_owner_resolution`, `test_path_suffix`, `test_resolution_evidence`, `test_shipped_content`, `test_twin_declarations`, `test_validated_choice`, `test_variant_choice`, `test_zipped_member` | +| File resolution and identity | synthetic + collection | `test_adler32_resolution`, `test_agnostic_scan`, `test_agnostic_scan_mode`, `test_agnostic_scope`, `test_agnostic_substitute`, `test_archive_choice`, `test_bios_companions`, `test_bundled_identity`, `test_casefold_cache`, `test_db_aliases`, `test_declared_names`, `test_derivations`, `test_directory_entries`, `test_extra_identity`, `test_foreign_tree`, `test_foreign_tree_names`, `test_frontend_digest`, `test_game_data_homonyms`, `test_hashing`, `test_identity`, `test_md5_pack_context`, `test_name_tiebreak`, `test_nec_filing`, `test_owner_resolution`, `test_path_suffix`, `test_resolution_evidence`, `test_shipped_content`, `test_twin_declarations`, `test_validated_choice`, `test_variant_choice`, `test_variant_identity`, `test_zipped_member` | | Verification, cross-reference and profile checks | synthetic + profiles | `test_crypto_aes`, `test_crypto_unique_data`, `test_crypto_verify`, `test_case_insensitive_platforms`, `test_checks_have_values`, `test_core_file_fills_declaration`, `test_cross_reference_sources`, `test_file_consumers`, `test_fileless_audit`, `test_gap_settlement`, `test_hidden_extras`, `test_native_mode`, `test_no_case_collisions`, `test_path_conflict_status`, `test_path_null_copies`, `test_profile_checks`, `test_romm_hash_rule`, `test_shared_groups`, `test_standalone_mode`, `test_undeclared_dedup`, `test_unplaced_extras`, `test_validation_scope`, `test_verify_all_dir`, `test_verify_emulator_evidence`, `test_verify_listing`, `test_verify_pack_choice` | | Packs and manifests | synthetic + real packs | `test_artifact_lock`, `test_atomic_artifacts`, `test_batocera_cores`, `test_deterministic_zip`, `test_emulator_pack_counts`, `test_finalize_pack_names`, `test_large_file_cache`, `test_libretro_layout`, `test_manifest_entry`, `test_pack_conformance_dirs`, `test_pack_counts`, `test_pack_failures`, `test_pack_file_names`, `test_pack_grouping`, `test_pack_integrity`, `test_pack_member_identity`, `test_pack_readme`, `test_platform_inheritance`, `test_platform_keys`, `test_required_only_archives`, `test_required_only_twins`, `test_split_extras`, `test_split_names`, `test_split_pack`, `test_system_pack_extras`, `test_system_pack_parity`, `test_torrentzip`, `test_which_pack` | -| Slots and regions | synthetic + profiles | `test_region`, `test_region_agnostic_scan`, `test_region_groups`, `test_region_platform_index`, `test_region_required_only`, `test_slot`, `test_slots`, `test_slots_shipped_file` | +| Slots and regions | synthetic + profiles | `test_region`, `test_region_agnostic_scan`, `test_region_groups`, `test_region_held`, `test_region_platform_index`, `test_region_required_only`, `test_slot`, `test_slots`, `test_slots_shipped_file` | | Hardware targets and systems | synthetic + target files | `test_extract_targets`, `test_lakka_targets`, `test_libretro_slugs`, `test_system_ids`, `test_system_selection`, `test_target_names`, `test_target_scrapers`, `test_target_systems`, `test_target_verify` | | Installer and downloads | loopback server | `test_check_release`, `test_download`, `test_install`, `test_install_cores`, `test_install_experience`, `test_install_selection` | | Truth and native export | synthetic + cached originals | `test_export_counts`, `test_export_native_layer`, `test_exporters`, `test_truth_diff`, `test_truth_layout` |