backend-infra-engineer: Post v0.3.9-hotfix7 snapshot (build cleanup)
This commit is contained in:
42
docs/internal/plans/hyrule-magic-support-plan.md
Normal file
42
docs/internal/plans/hyrule-magic-support-plan.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Implementation Plan - Hyrule Magic & Parallel Worlds Support
|
||||
|
||||
## Goal Description
|
||||
Add support for "doctoring" legacy Hyrule Magic (HM) ROMs and loading Parallel Worlds (PW) ROMs which use custom dungeon pointer tables.
|
||||
|
||||
## User Review Required
|
||||
- **Plan:** Review the proposed detection and compatibility logic.
|
||||
|
||||
## Proposed Changes
|
||||
|
||||
### 1. Hyrule Magic Doctor (`z3ed rom-doctor`)
|
||||
- **Detection:**
|
||||
- Detect HM header signatures (if any).
|
||||
- Detect "Bank 00 Erasure" (already implemented in Phase 1, confirmed working on `GoT-v040.smc`).
|
||||
- Detect Parallel Worlds by internal name or specific byte sequences.
|
||||
- **Fixes:**
|
||||
- **Checksum Fix:** Auto-calculate and update SNES checksum.
|
||||
- **Resize:** suggest resizing to 2MB/4MB if non-standard (e.g., 1.5MB PW ROMs).
|
||||
- **Bank 00 Restoration:** (Optional) If Bank 00 is erased, offer to restore from a vanilla ROM.
|
||||
|
||||
### 2. Parallel Worlds Compatibility Mode
|
||||
- **Problem:** PW uses a custom version of HM that moved dungeon pointer tables to support larger rooms/more data.
|
||||
- **Solution:**
|
||||
- Add `Rom::IsParallelWorlds()` check.
|
||||
- Implement `ParallelWorldsDungeonLoader` that uses the modified pointer tables.
|
||||
- **Offsets (To Be Verified):**
|
||||
- Vanilla Room Pointers: `0x21633` (PC)
|
||||
- PW Room Pointers: Need to locate these. Likely in expanded space.
|
||||
|
||||
### 3. Implementation Steps
|
||||
#### [NEW] [hm_support.cc](file:///Users/scawful/Code/yaze/src/rom/hm_support.cc)
|
||||
- Implement detection and fix logic.
|
||||
|
||||
#### [MODIFY] [rom_doctor_commands.cc](file:///Users/scawful/Code/yaze/src/cli/handlers/tools/rom_doctor_commands.cc)
|
||||
- Integrate HM/PW checks.
|
||||
|
||||
#### [MODIFY] [dungeon_loader.cc](file:///Users/scawful/Code/yaze/src/zelda3/dungeon/dungeon_loader.cc)
|
||||
- Add branching logic for PW ROMs to use alternate pointer tables.
|
||||
|
||||
## Verification Plan
|
||||
- **Doctor:** Run `z3ed rom-doctor` on `GoT-v040.smc` and `PW-V1349.SMC`.
|
||||
- **Load:** Attempt to load PW dungeon rooms in `yaze` (once loader is updated).
|
||||
Reference in New Issue
Block a user