Entry-state corpus: capture routine entry states once, validate ports from it in seconds #61

Closed
opened 2026-11-05 13:36:45 +00:00 by Gatchan · 1 comment
Owner

User decision 2026-11-05 (decisions.md). Replay each chapter 1 route once (US+JP) and save a sample of machine states at the entry of every reached routine (a few hundred varied states per routine, deduplicated on what the routine reads; frame-crossing and NMI-interrupted calls marked). Then port_check <routine> replays original vs port from each saved state and compares as shadow does (RAM, registers, PPU/DMA/math where flagged), in seconds. Route replays with shadow become a nightly safety net, not the per-batch validation. Corpus regenerated only when LakeSnes or the movies change; stored under others/, never in the repository. Proof: the 46+ ported routines pass from the corpus; a broken port is caught; time per batch before/after.

User decision 2026-11-05 (decisions.md). Replay each chapter 1 route once (US+JP) and save a sample of machine states at the entry of every reached routine (a few hundred varied states per routine, deduplicated on what the routine reads; frame-crossing and NMI-interrupted calls marked). Then `port_check <routine>` replays original vs port from each saved state and compares as shadow does (RAM, registers, PPU/DMA/math where flagged), in seconds. Route replays with shadow become a nightly safety net, not the per-batch validation. Corpus regenerated only when LakeSnes or the movies change; stored under others/, never in the repository. Proof: the 46+ ported routines pass from the corpus; a broken port is caught; time per batch before/after.
Author
Owner

Done in PR 63: corpus (chapter 1, 4 routes, US+JP) under others/corpus, 66 ports pass in 54 s (vs ~2 h shadow), broken port caught, others/scripts/ff6-portcheck.sh, docs/validation.md.

Done in PR 63: corpus (chapter 1, 4 routes, US+JP) under others/corpus, 66 ports pass in 54 s (vs ~2 h shadow), broken port caught, others/scripts/ff6-portcheck.sh, docs/validation.md.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Gatchan/FF6Portage#61
No description provided.