feat(map): add Ocarina of Time and 3DS runtime updates - #3
Draft
doodlewind wants to merge 3 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pocket Map can now select Ocarina of Time alongside OSM and Breath of the Wild. The Mac prepares the atlas, searches regions and dungeon rooms, and keeps each map's bookmarks separate. Installed Zelda atlases load through the existing native 3DS SD worker and can switch without a paired Mac, restoring each camera and pin.
Atlas validation before the runtime update: 30 tests / 1,075 assertions and TypeScript pass. Compiled guest + Wasm replays pass for actual OoT and Hyrule atlases and synthetic OSM, including search, source switching, continuous pan and bounded resource ownership. QuickJS passes with a 128 KiB stack; production 3DS and PSP builds pass. All 21,846 pack records were inflated and CRC-checked. The physical 3DS received the full OoT pack with matching SHA-256 readback; native Azahar confirms offline SD startup/rendering. Device interaction and a new performance benchmark are not claimed.
Scope: this is the Child Angled reference atlas, including dungeon layouts arranged around the overworld. Adult and top-down variants are not included. Search, bookmarks and dynamic labels still use the paired Mac.
Runtime update validation: the current 30 app tests / 1,075 assertions and TypeScript pass, and the production 3DS rebuild passes with the new runtime pin.
bun run update 127.0.0.1rebuilt and pushed a 443,752-byte guest into native Azahar, received acceptance for543577abc6daaadf, and left the native.3dsxhash unchanged. The generic runtime E2E covers continued rendering during upload, package rejection, guest failure recovery and two-screen screenshots.The console received
/3DS/pocketmap-main.3dsx(1,833,728 bytes), with complete FTP readback SHA-256cb8b8f9badc66cd2cc3ab4a9144e05b58607d9ede99f3b9a3ec33220ace2b901. Existing offload/development keys and both terrain packs were preserved. Physical in-process update validation still needs ftpd to exit and Pocket Map to launch.The README documents one-time native installation/pairing,
bun run update [3ds-ip], probing and the native menu. Guest-only builds copy only.pocket, preventing an old cached native artifact from replacingdist. JS and UI assets can update within the embedded native plan; changing native capabilities/configuration requires a new.3dsx. Guest replacement restarts in-memory UI state.