Repository navigation
Project Status
Last consolidated: 2026-09-24.
Scope: This page is the current-state dashboard for MKMSZR. It owns production/proof/pending maturity, current blockers, and priority order. It does not own full 1.0 requirements or long proof chronology.
Canonical release requirements and acceptance gates: 1.0 requirements and roadmap. Detailed runtime evidence: Runtime validation status. Detailed mechanisms and proof histories remain on their owning domain pages.
Evidence labels are listed concisely on Home and applied under the methodology in Research workflow: Runtime-confirmed, Static-confirmed, Implementation/CI-confirmed, Hypothesis / strong inference, Rejected / failed, and Pending.
| System | Product state | Current evidence / limit |
|---|---|---|
| Clean-ROM validation, guarded patching, separate output, N64 checksum update | Production | Implementation/CI-confirmed for the supported USA Rev. 0 ROM; output is separate from the clean input |
| Compact eight-stage selector | Production | Runtime-confirmed A-button route across all eight safe stages; unsafe stock entries are excluded |
| 16 KiB runtime reservation and native payload | Production | Runtime-confirmed 16 KiB arena floor on the bounded all-stage profiler proof and no regressions reported on the tested full-production TEST 16KB + rainbow composition. The established Runtime V2 layout remains in the first 1 KiB; the remaining 15 KiB is an unassigned build-time expansion pool with CI-enforced bounds. |
| Ordinary-pickup persistence | Production beta | Representative Runtime-confirmed collection/restoration in all eight main stages; all 84 ordinary records are statically cataloged, not individually runtime-exhausted |
| Stage-local seeded pickup randomization | Production beta | All 84 ordinary records implemented; deterministic generation/access checks are Implementation/CI-confirmed; this is an interim stage-local mode, not the 1.0 global model |
| Pickup-driven XP progression | Production beta | Diagnostic B behavior is Runtime-confirmed through XP 85/258, Temple -> Wind, and title -> Fire. Stage entry restores XP but does not call the tier evaluator; full nine-tier runtime coverage remains Pending. See XP and progression |
| Four inventory boxes and foreign-key masking | Production beta | Runtime-confirmed switching, transition preservation, and stage-local masking on documented routes; Game Over/new-run reset remains Pending |
| GAME SETTINGS controls | TURN production; future rows Pending. |
TURN: TOGGLE / LOCK is Runtime-confirmed in the shared patch core and defaults to TOGGLE. The accepted next menu row is COMBOS: CLASSIC / ASSIST, followed by SPECIALS: CLASSIC / MODERN; conditional JUMP: DPAD / BUTTON appears only when COMBOS or SPECIALS is non-classic. Future rows are design-approved but gameplay semantics remain Pending. Earth boss detection for TURN remains Pending. See Native HUD and UI. |
| Native box indicator | Production | Runtime-confirmed BOX n OF 4 through the native text path; the broader 1.0 randomizer HUD remains Pending. See Native HUD and UI
|
| Boot branding and seeded phrase | Production | Redesigned legal-screen presentation is Runtime-confirmed; seeded phrase uses a separate deterministic namespace |
| Rebranded title screen | Production beta | Candidate-B art plus configurable uppercase <NAME> EDITION are Runtime-confirmed through the normal production composition. The accepted implementation is data-only; the earlier executable-wrapper allocation is Rejected / failed. See Presentation and branding
|
| Post-legal logo bypass and selector-only save bypass | Production | Runtime-confirmed bounded routes; legal text and later/manual saves remain intact |
| Outfit recoloring | Production | Static modes remain guarded source-TLUT transforms. rainbow is now a normal browser/CLI option using the Runtime-confirmed 64-phase native palette path; seed RAINBOW64 production output is byte-identical to the manually validated proof v01. See Palette and recoloring
|
| Browser/CLI shared patch core | Production beta | Both surfaces use the same patch core. Every generated ROM now includes the Runtime-confirmed in-game GAME SETTINGS -> TURN: TOGGLE / LOCK control option; this is configured in-game, not by a separate browser toggle. The web requires only the MKMSZ N64 target and presents MKT Rev. 2 N64 as an optional donor for supported donor-backed features. CI covers donor extraction/build composition; gameplay claims remain bounded to documented runtime routes. |
These results are important feasibility evidence but are not normal browser/CLI product features unless stated above.
| Workstream | Current conclusion | Remaining gate / owner |
|---|---|---|
| Cross-stage ordinary-item materialization | Runtime-confirmed in bounded proofs. Prison renders and awards five simultaneous imported item visuals while an untouched Herbs control remains correct. External-to-embedded ordinary resource conversion is also Runtime-confirmed. | The pure planner is implemented but pipeline-disconnected. Fortress stress validation and destination-safe key/crystal award handling remain Pending before a guarded production integration proof. See Global item materialization and solvability |
| Cross-stage enemy import | Runtime-confirmed proof. A Temple monk can be imported into Fire and function in combat; a simpler Fire ordinary-enemy substitution also works. | Arbitrary roster/resource compatibility, death/despawn presentation, allocation policy, and deterministic product integration remain Pending. See Enemy randomization |
| MKT fighter / Sektor takeover |
Runtime-confirmed proof line through v88; v89 is Implementation/static-confirmed and Runtime Pending; v85 remains built but untested and statically rejected for the ordinary straight branch. v62 remains the stable combo baseline; v75 remains the stable missile-flight baseline. v87 Runtime-confirms the donor-faithful ROCKETD1 + ROCKET_P asset/palette pair for the flying missile. v88 keeps that correct rocket but still shows one frame of stale Sektor-like texture before it, disproving the earlier interpretation that v84 had established synchronous first-frame texture readiness. Static render tracing now separates descriptor binding from texture-slot publication: 0x8001BDA0/0x800304C0 mark +0xFA dirty, 0x800185B8 later queues the slot upload through 0x8001D6EC, and the upload is drained separately. v89 tests the missing pre-publication texture-slot preparation with native synchronous 0x8001BF70 before stock actor-list insertion. Helpers, strike/effects/audio, balanced palette/texture release and final integration remain pending. |
Proof-only, including bootstrap allocation overlap. Preserve the generic donor→MKMSZ adapter; see Sektor takeover proof history, MKT adapter primitives, and Player actions and special moves. |
| Toasty audio | Runtime-confirmed production composition. v46 confirms the dedicated MKT Toasty voice route with ordinary pickup audio restored to stock; v47 confirms that same route in the full current production composition. | Production keeps stock pickup 524 -> 681 -> 524 -> 133 untouched and uses dedicated Toasty event 52 -> 68 -> 608 -> 533. The product probability is 80/1000 (8%). See Toasty audio research. |
| Toasty visual | Runtime-confirmed production composition. v38 is perfect across all eight safe stages; v40 validates compact uncached execution; v42 is the accepted lower-right 3/16/8 presentation baseline; v44 confirms the successful-reaction trigger; v46 confirms dedicated audio with stock pickup sound; v47 confirms the complete effect in the full current production composition. | Production uses the reconciled 08/0E/12/13/14/15/17 successful/unblocked reaction family and 80/1000 (8%). The donor-aware patch module is on the shared patch core; browser extraction from the user-supplied MKT Rev. 2 ROM and optional CLI --mkt-rom wiring are Implementation/CI-confirmed. See Toasty visual research and Toasty audio research. |
| Reverse Elbow / donor move adapter research | Proof/research only. Earlier host-action work established useful MKMSZ action primitives; the accepted direction is genuine donor-to-MKMSZ semantic translation rather than behavioral approximation. | Not a 1.0 blocker. Current donor translation work belongs to MKT to MKMSZ compatibility layer and Player actions and special moves |
1.0 requirements and roadmap is the canonical owner of the complete requirement text, acceptance criteria, ambiguities, and final release gate. The current blocker summary is:
| Blocker | Current state |
|---|---|
| Production-safe global cross-stage item materialization | Pending. Finish the composed planner gate, destination-safe key/crystal award path, guarded allocation/composition, and a disposable integration proof before enabling it in the product pipeline |
| Deterministic global shuffle and retry model | Pending. Replace the interim eight stage-local pools with one deterministic global logical run and explicit deterministic retry attempts |
| Whole-run solvability validation | Pending. Finalize current access rules, completion predicate, and seed-specific required-Power-Upgrades policy |
| Native randomizer HUD | Partial. Native text and box state are proven; checks/progression/key/pickup run-state display is still required |
| Temple Map and run lifecycle invariants | Pending. Resolve Map inclusion/trigger separation/persistence, then HP/lives/continues preservation, Game Over/new-run reset, and Very Hard enforcement |
| Final production-composition runtime gate | Pending. Run a representative full global seed after the above are integrated, including all nine progression tiers and the major lifecycle boundaries |
- Finish the cross-stage resource/materialization production gate: complete the pending composed stress validation, add destination-safe key/crystal award handling, then build and manually validate the smallest guarded integration proof.
- Replace stage-local generation with deterministic global shuffle plus whole-run solver, including explicit deterministic retry attempts and a deterministic per-seed required-Power-Upgrades target.
- Build the native randomizer HUD around the finalized global-run state.
- Resolve Temple Map behavior, then HP/lives/continues lifecycle, Game Over/new-run reset, and the Very Hard invariant.
- Run the final representative full-seed 1.0 validation.
- Post-1.0: ordinary-enemy randomization/resource compatibility, imported-enemy death/despawn work, and donor-move/Sektor expansion.
This order mirrors the current release dependency chain; it is not permission to treat later proof work as production before its own validation gate.
- XP: the first V2 productionization attempt is Rejected / failed because stage initialization called the native tier evaluator too early. Diagnostic B isolated that timing error and is the current production behavior: restore persistent XP at stage entry, evaluate tiers only when a progression pickup is collected. Detailed Diagnostics A/B remain in XP and progression.
- Title: current production uses the Runtime-confirmed data-only Candidate-B composition. The old executable wrapper that overlapped pickup-persistence ownership remains Rejected / failed; proof hashes and integration history remain in Presentation and branding.
- Sektor: v62 remains the tested combo baseline; v75 the last stable tested straight-missile flight. v76–v79 remain negative/failed controls; v85 is statically rejected and untested. v87 Runtime-confirms exact retail rocket pixels/colors. v88 preserves the good rocket but still exposes a one-frame corrupted Sektor-like texture, showing that early descriptor/cursor binding alone does not synchronously replace the finalized projectile texture slot before publication. v84's earlier apparent first-frame suppression is therefore reinterpreted as a selector-zero presentation artifact, not proof of ready rocket texture. v89 is the pending synchronous pre-publication slot-load proof.
-
Sektor Run — accepted integration directive (2026-09-25): replace the v58 twelve-physical-pose Run with the six retail N64 MKT poses
RBRUN1,3,5,7,9,11, each held for two MKMSZ visual ticks:1,1,3,3,5,5,7,7,9,9,11,11. Branch proofMKMSZR_sektor-run-six-pose_common-proof_v01.z64(SHA-2567f8dc72a…) was manually preferred over the tested double-loop alternative1,3,5,7,9,11,1,3,5,7,9,11; do not adopt the double-loop variant. The accepted integration should physically omit the six supplemental WIMP even poses and remove the inherited PS1 Run input/decoder path, which is dead on the current v58 line. A full repack analysis is Implementation/static-confirmed at file-0x87 = 0x4CD68, saving0x1694/ 5,780 bytes versus0x4E3FCand increasing v49-bound headroom from0x148to0x17DC; the physical-removal composition still needs bounded runtime regression before becoming the new Sektor baseline. -
Toasty: v47 is Runtime-confirmed in the full current production composition. It preserves the accepted v42 3/16/8 lower-right presentation, the v44 successful-reaction family, and the v46 dedicated-audio route with stock pickup sound unchanged. Production packs the Toasty module at
0x801B0000..0x801B331F, leaving0x100bytes before the reserved-pool boundary; the selected product probability is 80/1000 (8%). Browser donor-asset extraction is wired through the optional MKT Rev. 2 input, while ordinary builds remain valid without that donor. Detailed evidence is canonical in Toasty visual research and Toasty audio research. - Cross-stage items: a logical selector is not proof of free physical storage. Production integration must preserve explicit resource ownership, bounded allocation, deduplication, and destination-safe award semantics.
- Enemy randomization and Reverse Elbow / foreign-move completion are not 1.0 blockers.
- Bosses and scripted encounters are not ordinary-enemy entries.
- The Temple Map is not one of the 84 ordinary pickup records; its 1.0 inclusion policy is still explicit Pending work.
- Zero/unused-looking resource selectors are not automatically free physical storage.
- PS1 addresses and platform behavior do not transfer to N64 without demonstrated compatibility.
- Disposable proof ROM patches, proof caves, and archive handoffs are not silently part of the production pipeline.
- Runtime confirmation is always limited to the documented route; CI/static success does not imply exhaustive gameplay validation.
MKMSZR current documentation · Wiki source: wiki/ · Evidence/archive: ChatGPT Library MKMSZR Research · Product source: smeagol44/MKMSZ-Randomizer
Orientation / Project
- Home
- Contributor start here
- Project status
- 1.0 requirements and roadmap
- Runtime validation status
- Architecture overview
- Research methodology and evidence
- Glossary
Core Technical Reference
- Core runtime and native payload
- Memory and allocation map
- Function registry
- Address and patch-site registry
- Data structures and encodings
- Resource and overlay system
- Address quick reference
- Testing and CI
Randomizer / Product Systems
- Stage flow and selector
- Pickups and stage-local randomization
- Global item materialization and solvability
- Persistence, inventory and lifecycle
- Lifecycle static closure / unbuilt v05
- XP and progression
- Native HUD and UI
- Presentation and branding
- Audio system
- Palette and recoloring
- Web patcher and product
Stage Reference
Gameplay / Enemy / Donor Research
- Enemy randomization
- Player actions and special moves
- MKT compatibility overview
- MKT adapter primitives
- MKT fighter asset translation
- Sub-Zero ↔ Sektor animation mapping
- Sektor takeover proof history
- Toasty audio research
- Toasty visual research
- PS1 research
- N64–PS1 comparison
- N64 -> PS1 port planning and strategy
History / Failures / Superseded Material