Skip to content

audit(message): make Oracle message edits durable across rebuilds #88

Description

@scawful

Goal

Define a durable Oracle of Secrets message-editor workflow instead of allowing edits that the next Asar build can overwrite.

Current ownership split

  • Per-room dungeon message IDs are metadata at SNES [07:F61D,07:F86D); PR fix(dungeon): preserve header and message save metadata #86 now fences/preflights those writes.
  • Expanded message bodies $18D-$1F9 live in bank $2F and are authored by Core/message.asm; direct ROM edits are not durable across rebuilds.
  • Vanilla message bodies $000-$18C use the normal yaze message regions, but Core/message.asm patches $0E:EE75, which falls inside a potential secondary message-data range and needs an explicit overlap audit.

Required design decision

Choose and document one durable mode for ASM-owned expanded messages:

  1. source-aware editing that updates Core/message.asm (or generated message source) and rebuilds; or
  2. a declared editor-owned ROM region plus an extraction/build synchronization step.

Do not broadly exempt bank $2F from manifest protection.

Acceptance criteria

  • Message editor clearly distinguishes room message-ID assignment from message body content.
  • Vanilla $000-$18C writes have exact predicted ranges and protect the $0E:EE75 hook.
  • Expanded $18D-$1F9 edits survive a normal Oracle build or fail closed with actionable guidance.
  • Save/rebuild/reopen integration covers at least one vanilla and one expanded message.
  • Canonical source ROMs are never modified by tests.

Related: #86 (room header/message-ID save stability), #87 (exact editor-managed manifest regions), scawful/Oracle-of-Secrets#110 (generator ownership fix).

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