Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@ function(add_mmx_variant TARGET GEN_DIR CFG_DIR)
endfunction()
set_property(SOURCE src/main.c APPEND PROPERTY COMPILE_DEFINITIONS
SNESRECOMP_BUILD_VERSION="${SNESRECOMP_BUILD_VERSION}")
add_mmx_variant(MegaManXSNESRecomp "${CMAKE_CURRENT_SOURCE_DIR}/src/gen"
set(MMX_GEN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/gen" CACHE PATH
"Generated USA program directory (allows isolated coverage comparisons)")
add_mmx_variant(MegaManXSNESRecomp "${MMX_GEN_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/recomp")
add_mmx_variant(RockmanXSNESRecomp "${CMAKE_CURRENT_SOURCE_DIR}/variants/jp/gen"
"${CMAKE_CURRENT_SOURCE_DIR}/variants/jp/config"
Expand Down
46 changes: 46 additions & 0 deletions docs/validation/coverage-2026-09-28.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Mega Man X coverage checkpoint

Study base: `b3210a6` (current origin/main, 1.6.6). Engine: snesrecomp `3e73b07`
on `feat/coverage-feedback`. The owner passed the initial and extended stage
playtests; integration is in progress.

Two 12,000-frame routes (attract and controller Highway gameplay/fuzz) match the
existing-root control's CPU/WRAM traces and final three full WRAM/video/resource
snapshots. Capture on/off also matches. Checkpoint plus journal imports remain
identical when duplicated, and program/executable identities match. No runtime
or ingest warnings occurred. Audio waveforms were not compared.

The corrected reconciliation retains all 243 original roots and adds four,
but they were already in the analysis closure. Static variants remain 4,708;
interpreted instructions remain 10,985,081 (attract) and 13,985,348 (Highway).
No coverage or performance gain is claimed. An earlier apparent increase to
5,309 entries was entirely duplicate mirrors and was rejected. The shared
discovery fix canonicalizes only proven mapper aliases; raw logs and live PBR
are retained. Existing title hook checks remain strict and pass unchanged.

`MMX_GEN_DIR` selects isolated generated trees. Approved three-title work from
the preceding study remains in separate checkpoints. This MMX commit changes
build selection and records evidence. The integration below installs the
dependency pins and profile migration. Regenerate complete
output: the current balanced fallback API requires explicit entry semantics.

Conversion/reconciliation and full commands are documented in the engine's
`docs/COVERAGE_FEEDBACK.md` and `docs/validation/mmx-2026-09-28.md` / `.json`.
V1 input `recomp/tier2_coverage.json` must be explicitly associated with the
verified headerless USA v1.1 ROM SHA-256
`b8f70a6e7fb93819f79693578887e2c11e196bdf1ac6ddc7cb924b1ad0be2d32`.
Use it as `--historical-profile-manifest`, alongside new same-build JSON/journal
`--profile-manifest` inputs. Old evidence supplies analysis seeds, not a claim
that the new generated build is correct. Fresh replay remains required.

Local artifacts: engine `build/authority-study/mmx/`; interactive profile:
`build-coverage-playtest/`. No ROMs, generated C or player saves are committed.
Beads: `beads-8wg.1.27`.

Integration: the engine is pinned to `8867499d28543e74cd31134abae9468a88675847`, and the UI to
`01bff9477e6847b2281260f0a9526a85e45b8ba2`, matching the validated build dependency.
The regeneration script explicitly binds each regional v1 profile to its
known ROM hash and treats it as historical seed evidence. USA generation
retains the same analyzed nodes/exit facts and 4,708 static entry variants;
both final 12,000-frame replays match the owner-approved candidate.
Japan profile migration is wired; the gameplay qualification here is USA.
2 changes: 1 addition & 1 deletion snesrecomp
Submodule snesrecomp updated 203 files
6 changes: 4 additions & 2 deletions tools/regen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ regen_variant() {
cfg_dir="recomp"
out_dir="src/gen"
funcs_h="recomp/funcs.h"
emit_extra=(--profile-manifest recomp/tier2_coverage.json)
emit_extra=(--historical-profile-manifest recomp/tier2_coverage.json
--legacy-profile-rom-sha256 b8f70a6e7fb93819f79693578887e2c11e196bdf1ac6ddc7cb924b1ad0be2d32)
;;
jp)
rom="variants/jp/roms/rockmanx.sfc"
Expand All @@ -92,7 +93,8 @@ regen_variant() {
# optional HLE scheduler contains region-specific addresses. Its own
# clean LLE observations are the authoritative AOT optimization profile.
emit_extra=(--no-host-root-scan
--profile-manifest variants/jp/tier2_coverage.json)
--historical-profile-manifest variants/jp/tier2_coverage.json
--legacy-profile-rom-sha256 76f80cdf704a0e1daf1af5bbf564e427b425a5ee42329417de6f29219fe63e5f)
;;
esac

Expand Down
Loading