Commit Graph
12 Commits
Author SHA1 Message Date
Abdessamad Derraz a6716796a9 feat: write config_reads into the profiles
Where each shipped build finds the config a platform installs and reads
every key it opens a file from, read at the build the platform ships:
duckstation (EmuELEC, ROCKNIX, RetroBat), xemu, armsx2, hatari, melonDS,
dsperate, NanoBoyAdvance, mednafen (ROCKNIX's sydarn fork) and ares,
gzdoom, xroar, lrps2 and the amiberry builds at their pins. pin_build
names the builds ROCKNIX, EmuELEC and AmberELEC compile, revision the
ones RetroBat and Flathub install unpinned.

tests/test_launcher_evidence.py covers the rule, the extractor helpers,
the invariants and the chains that move placements.
2026-11-11 11:11:50 +01:00
Abdessamad Derraz b5c517b07a feat: add dsi boot blobs cut from the dsi nands
Each blob is TWLCFG 0x88-0x1AF, HWINFO_N 0x88-0x9B and HWINFO_S 0x88-0x9F, read from a retail NAND dump by DSperate's own nand_boot_blobs at ddf2910e. The primary comes from dsi_nand.bin, the seven others from the regional dumps and the dsi_nand.bin variant.
2026-11-09 17:35:05 +01:00
Abdessamad Derraz a22d9fd499 docs: add the dsperate-headless dsi boot blob
dsperate-headless reads a 0x154-byte console data blob through --dsi-boot and stops on any other size. The flag has no default, so the name is a label. Without it the bytes come from the NAND's TWLCFG and HWINFO files, are generated for DSiWare run without a NAND, or stay zero in card mode.
2026-11-09 17:27:48 +01:00
Abdessamad Derraz 2377985df7 docs: read the dsperate font check from code
prepare_dsi_hle refuses a TWLFontTable.dat under 256 bytes and reads its layout from bytes 0x84 and 0x86, warning on a mismatch. No hash is checked, so the three retail NAND sha1s go, and one entry states the size floor and the three layouts.
2026-11-09 17:16:29 +01:00
Abdessamad Derraz 4ae7576116 docs: read dsperate bios names as labels 2026-11-09 16:45:43 +01:00
Abdessamad Derraz 68c6c5b0c4 chore: move dsperate to the v3.0.5 rocknix ships 2026-11-09 07:52:08 +01:00
Abdessamad Derraz 3011ee498e feat: record the build file behind a held pin
pin_frozen was prose, and no tool read the build file it cites, so a platform building another revision left the profile holding one nobody ships. pin_build records the platform, its repository, the revision read, the file, the variable and its value. check_freshness reads the file again where the platform's YAML now stands and reports STALE when the value moved. 36 of the 46 held profiles carry it, each value read from the build file at the platform's scraped revision. The other ten name no build file and are counted on one row: six RetroBat binary packages and four holds not tied to a platform build.
2026-11-05 19:54:48 +01:00
Abdessamad Derraz 3199bc2a55 fix: state standalone versions from their code
Each standalone profile records where its version is read: the source
at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden
v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package),
or, where no reading can be made, kind unverified with the reason: a
host the tools cannot read, a forge gone or not answering, no build
recorded as read, a pin on another branch. Those keep their value,
unconfirmed.
2026-10-27 19:21:40 +01:00
Abdessamad Derraz ee078331e0 docs: add data_root to dsperate 2026-10-23 19:10:43 +02:00
Abdessamad Derraz 63ded27336 feat: extract the DSi font tables from held NANDs
DSperate reads TWLFontTable.dat for DSiWare run without a NAND. The file sits in nand:/sys/ of the DSi NAND dumps the collection holds. Decrypted with the console ID and CID in each dump's nocash footer, as DSperate's own NAND reader does, the four western and Japanese consoles give one table, the Chinese and Korean ones their own: 863296, 581664 and 162688 bytes, the sizes and sha1 already known for them.
2026-10-20 03:17:57 +02:00
Abdessamad Derraz 4231902a6c docs: write prose without dashes or semicolons
Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms.

validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.
2026-10-19 06:47:31 +02:00
Abdessamad Derraz d9c74888e8 feat: list rocknix cores per device
ROCKNIX builds a different emulator set per SoC, and without a target
list an H700 handheld received the PS2, PS3 and GameCube firmware of
emulators its image lacks. The new target scraper reads the emulators
metapackage per device; seven cores ROCKNIX ships get profiles and the
Super Famicom Box ROMs one of them needs are collected.
2026-10-17 15:38:07 +02:00