Skip to content

track(dungeon): close Oracle daily-driver parity and save-proof gaps #115

Description

@scawful

Goal

Make yaze a practical daily driver for finishing the already-developed Oracle of Secrets dungeons, using a flexible beta bar rather than waiting for every general-purpose editor feature.

Landed foundation

The July object/rendering stack is now on master, including the remaining known F92/FC7/F98/stateful draw cases, state-matrix validation, room-event diagnostics, stream payload checks, and an independent Mesen room-0x012 wall ROI.

Current live validation on vanilla ALTTP and canonical OOS reports:

  • 440 objects
  • 6,780 size/state cases
  • 0 mismatches
  • 34 explicitly expected-empty traces

The committed 48x64 Mesen ROI compares all 3,072 RGBA pixels exactly. Message safety PRs #95 and #96 are also merged: clean domains are skipped, writes are preflighted, retry state is preserved, and ASM-owned Oracle expanded messages fail closed.

Landed save/session durability

  • Land PR fix(editor): make project and palette sessions durable #114 after exact-head CI and review (exact head f6dec6fca93d3b05214173a9ff8e559ea82a6d0c, merged as 634729c04d717a1d6c7ce31fb633a9cf455cf5d6; 19 success / 3 intentional skips).
    • atomic/no-clobber native and WASM .yaze saves
    • transactional project creation/adoption and rollback
    • stable multi-session ownership/backing files
    • palette dirty/undo/write-range state isolated per GameData
    • lazy ROM reload/rollback palette-session rebinding
    • project-first autosave before ROM mutation

Project/session/palette durability is now on master; the native/WASM no-clobber, transactional creation/adoption, per-session palette state, lazy-reload rebinding, and project-first autosave contracts are landed.

Active dungeon palette slice

  • Capture an independent Sanctuary carpet diagnostic from Mesen alongside the existing wall ROI.
  • Diagnose the discrepancy as reversed destination-block versus runtime $0F Left/Right 3bpp expansion-slot selection.
  • Land PR Fix dungeon graphics palette slot mapping #116 after exact-head CI and review.

PR #116 exact head 4e2b074b4dc17bfa04ef2e0dcc5ea4db8020c4cb mapped destination blocks back to runtime slots, passed the wall ROI and independent carpet pixel plus its updated custom-object render goldens, cleared 19 hosted checks with 3 intentional skips, and merged as ae766ddfa498a15c2a0d5f072702c05b83810ba2.

Daily-driver proof still required

  • Land PR feat(dungeon): add safe spawn point persistence #117 for test(dungeon): fence and soak Oracle entrance saves #90: dedicated seven-record spawn-point persistence is strictly audited and merged as 589d2c69a1974e169f2914fc4f5214a179367fd2; the legacy UI view remains read-only/fail-closed until it binds to the dedicated model.
  • Land PR fix(editor): harden ROM backup restoration #119 (exact head 5e82013b220ea58742cf7be9626deaee85b21385, merged as 30635c5d2ebbad7376180c0b0d291de29ba523f9; 19 success / 3 intentional skips): backup restoration stages transactionally, rejects dirty/unrelated inputs, remains dirty until explicit Save ROM / Save As, refreshes lazy/active/inactive dungeon state in place, and has a reversible disposable proof.
  • Complete a multi-hour GUI editing session.
  • Run representative edit/save/reopen/build cycles on OOS rooms, including the D6 set.
  • Traverse the edited rooms in Mesen and verify doors, objects, sprites, pots, palettes, and room loads.
  • Finish the durable editor-to-Core/message.asm handoff tracked by audit(message): make Oracle message edits durable across rebuilds #88 for expanded Oracle message bodies.

Maintenance and conditional follow-ups

Beta exit criteria

  • Project/session/palette durability is merged and green across required platforms.
  • The confirmed Sanctuary palette discrepancy has an independent passing regression.
  • Failed saves leave ROM bytes and retry state intact.
  • Backup restore plus sustained GUI use succeeds on disposable Oracle copies.
  • Mesen traversal confirms representative edited rooms behave in-game.
  • Canonical source ROMs remain unchanged during automated validation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions