mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 18:59:07 -05:00
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:
1 parent
e9e56f545d
commit
7a3cbc657d
9 files changed
+20
-19
No files matched your search
@@ -26,9 +26,9 @@ notes: |
|
||||
database (ananke/database/). All DSP1 games use DSP1B filenames via
|
||||
heuristic fallback. The database dsp1.program.rom / dsp1.data.rom names
|
||||
are only in the standalone build (target-ethos via ananke).
|
||||
.info accuracy/balanced: firmware_count=18 (overcounts by 2, includes
|
||||
phantom dsp1.* from unused database). Performance .info: firmware_count=17
|
||||
(also missing cx4.data.rom).
|
||||
.info accuracy/balanced: firmware_count=18, which counts the two dsp1.*
|
||||
names of the database this build does not use. Performance .info:
|
||||
firmware_count=17, without cx4.data.rom.
|
||||
Upstream v094 source is contained within the libretro repo (sfc/, ananke/).
|
||||
bsnes-emu/bsnes is the modern rewrite (v115+).
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ notes: |
|
||||
|
||||
Y-ZOOM ROM (ng-lo.rom / 000-lo.lo) listed in .info but generated
|
||||
algorithmically, never loaded from file (src/memory.cpp:223-253
|
||||
generateYZoomData, CRC32 E09E253C). These are phantom .info entries.
|
||||
generateYZoomData, CRC32 E09E253C), so the core never opens these files.
|
||||
|
||||
.info firmware_count=12 but 2 are phantoms (Y-ZOOM), effective count=10.
|
||||
.info lists uni-bioscd.rom as "Universe BIOS 3.2" but SHA1 matches
|
||||
|
||||
@@ -40,7 +40,7 @@ systems:
|
||||
#
|
||||
# font.rom divergence: libretro.c:566-571 loads 0x1000 bytes then
|
||||
# overwrites the buffer with kanji ROM + built-in graph. The font.rom
|
||||
# data is not actually used (bug). Upstream memory.c:427 loads FONT_SZ
|
||||
# data ends up unused. Upstream memory.c:427 loads FONT_SZ
|
||||
# (2048) and keeps the font data in the first half.
|
||||
#
|
||||
# OPNA rhythm samples (2608_BD.WAV etc.): loaded by upstream via
|
||||
|
||||
@@ -19,7 +19,7 @@ notes: >
|
||||
"Boot to BIOS menu" core option allows booting without a disc.
|
||||
Database contains 24 entries (22 good, 2 known-bad rejected)
|
||||
covering BIOS versions 1.0 through 4.5.
|
||||
.info declares firmware_count=0, which is incorrect.
|
||||
.info declares firmware_count=0, while the core reads the BIOS images this profile lists.
|
||||
Project abandoned, superseded by rustation-ng.
|
||||
|
||||
files:
|
||||
|
||||
@@ -9,8 +9,8 @@ cores:
|
||||
systems: []
|
||||
|
||||
notes: |
|
||||
Phantom .info: declared in libretro-core-info since 2017 but no source code,
|
||||
build recipe, or compiled binary exists anywhere in the libretro organization.
|
||||
Declared in libretro-core-info since 2017. No source code, build recipe or
|
||||
compiled binary for it could be found in the libretro organization.
|
||||
Not on the buildbot. The .info has empty authors, license, and extensions.
|
||||
|
||||
No system files required.
|
||||
|
||||
@@ -14,7 +14,7 @@ notes: >
|
||||
Separate codebase from the newer vice-libretro port. Marked experimental and
|
||||
superseded. Unlike the newer port, this core does NOT embed system ROMs: all ROMs
|
||||
must be on disk in <system_dir>/data/C64/ and <system_dir>/data/DRIVES/.
|
||||
The .info declares firmware_count=0 which is incorrect. No JiffyDOS support.
|
||||
The .info declares firmware_count=0, while the core reads the ROMs this profile lists. No JiffyDOS support.
|
||||
No save states, no netplay, no cheats.
|
||||
|
||||
files:
|
||||
|
||||
@@ -3789,12 +3789,12 @@ def generate_gap_analysis(
|
||||
"platform contract, and these numbers show where that contract diverges "
|
||||
"from what the code loads.",
|
||||
"",
|
||||
"| Platform | Missing from list | Phantom | Hash conflict | Required status |",
|
||||
"| Platform | Missing from list | Not read by profiles | Hash conflict | Required status |",
|
||||
"|----------|------------------:|--------:|--------------:|----------------:|",
|
||||
*div_rows,
|
||||
"",
|
||||
"- **Missing from list**: a profiled emulator loads the file, the platform list does not mention it",
|
||||
"- **Phantom**: on the platform list, loaded by no profiled emulator",
|
||||
"- **Not read by profiles**: on the platform list, loaded by no emulator profiled so far (a profile may still be incomplete)",
|
||||
"- **Hash conflict**: the platform list and the emulator source expect different hashes",
|
||||
"- **Required status**: required/optional differs between list and code",
|
||||
"",
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user