docs: describe other projects by facts only

Profile notes and wiki pages called .info entries phantom or incorrect, and labelled an upstream list a known defect. They now state what each file declares and what the code reads. The wiki claimed Batocera prefix-matches truncated md5s; its script compares the full string (batocera-systems:1088), which the page now says. The gaps column reads "Not read by profiles" and notes that a profile may be incomplete.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 13:33:53 +02:00
1 parent e9e56f545d
commit 7a3cbc657d
9 files changed
+20 -19

No files matched your search

+1 -1
View File
@@ -209,7 +209,7 @@ System ID consistency matters for cross-platform operations. The same console mu
- Batocera uses 29-character truncated MD5 hashes in some entries. The resolution
layer handles prefix matching, but the scraper should store the hash as-is.
Scraped data reflects what the upstream declares, which may not match reality. The scraper's job is faithful transcription of upstream data, not correction. Corrections happen in the emulator profiles (source-verified) and in `_shared.yml` (curated). If a scraper detects an obviously wrong hash or filename, log a warning but still include the upstream value. The divergence will surface during truth diffing.
Scraped data reflects what the upstream declares, which may not match reality. The scraper's job is faithful transcription of upstream data, not correction. Corrections happen in the emulator profiles (source-verified) and in `_shared.yml` (curated). If a scraper meets a hash or filename that differs from the emulator source, log a warning and still include the upstream value. The divergence will surface during truth diffing.
## Creating a target scraper
+8 -7
View File
@@ -47,12 +47,13 @@ hashed with MD5, and compared case-insensitively against the expected value.
If the `resolve_local_file` step already confirmed the MD5 match (status `md5_exact`),
`verify.py` skips re-hashing and returns OK directly.
### Truncated MD5 (Batocera bug)
### Truncated MD5 (Batocera)
Some entries in Batocera's system data contain 29-character MD5 strings instead of
the standard 32. This is a known upstream bug. `verify.py` handles it by prefix matching:
if the expected hash is shorter than 32 characters, the actual hash is compared against
only its first N characters.
Some entries in Batocera's system data carry 29-character MD5 strings instead of
the usual 32. Batocera's script compares the full string (`batocera-systems:1088`), so
those entries report the file as untested. `verify.py` compares the prefix instead, to
find the file the entry designates: if the expected hash is shorter than 32 characters,
the actual hash is compared against only its first N characters.
### md5_composite (Recalbox ZIP verification)
@@ -255,8 +256,8 @@ What the pack does with a `hash_mismatch` follows the platform's own mode. An
MD5 or SHA1 platform would reject those bytes, so the file is left out and
counted as an unsafe exclusion, distinct from a file the collection does not
have. An existence platform reads no bytes at all, so the file is packed and
the divergence is printed as a discrepancy: an error in an upstream BIOS list
must not remove a file the frontend would have loaded.
the divergence is printed as a discrepancy: a value in an upstream BIOS list that
differs from the emulator source must not remove a file the frontend would load.
## Discrepancy detection