Repository navigation
Port Pikmin 2 1.0.0 (0100D680194B2000) - #548
Open
ale-villani wants to merge 1 commit into
Open
ale-villani wants to merge 1 commit into
ale-villani wants to merge 1 commit into
Conversation
ale-villani
force-pushed
the
add-pikmin-2
branch
4 times, most recently
from
October 29, 2026 15:02
4a65316 to
5e61595
Compare
ale-villani
force-pushed
the
add-pikmin-2
branch
2 times, most recently
from
November 12, 2026 20:07
7ffa009 to
eb29bed
Compare
Add game profile, memory layout, cuts and port notes for Pikmin 2 (0100D680194B2000, 1.0.0) on NERD's Hagi GameCube layer over Vulkan/Metal. Hagi maps the 4.002 GB 32-bit GameCube address space (0x100200000 bytes) via nn::os::AllocateAddressRegion during Memory::Initialize. Sized mem_alias to 0x150000000 (5.25 GB) and mem_reserve to 0x240000000 (9 GB) to accommodate both the AddressRegionManager node area and GameCube AS. Add SDK 14.3.0 cuts (2aef2cffb104ee7c9e212fd2f4c731e9): node area compaction (1 GB -> 62 MB) and null-guard on uninitialized heap_base in CentralHeap::Free (cbz x8, #0x11df44). Add main cut (b23a43495191e7ad33d1d0effcbb1d84) NOPing out the movie player destructor's unconditional AbortImpl call at main+0x2ba5b4. Validation: 26/26 Python test_docs and test_patches checks passing, verified 60 fps gameplay through the prologue cutscene, file save creation, and Day 1 Valley of Repose.
ale-villani
force-pushed
the
add-pikmin-2
branch
from
November 14, 2026 14:01
eb29bed to
656a4e3
Compare
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.
Summary
Adds the game profile, memory layout, cuts and port notes for Pikmin 2 (
0100D680194B2000, 1.0.0), running on Nintendo European Research & Development's (NERD) proprietary GameCube layer (Hagi) over Vulkan on Apple Metal.Changes
dm/games/0100D680194B2000/game.tsv):mem_aliasto0x150000000(5.25 GB) andmem_reserveto0x240000000(9 GB). DuringMemory::Initialize(main+0x2a3154), Hagi callsnn::os::AllocateAddressRegionfor0x100200000bytes (4.002 GB) to map the entire 32-bit GameCube address space; default compact profiles starve this region with0x1803.main subsdk0 sdk(subsdk1–subsdk4bypassed by the host's Vulkan layer). Handheld mode.dm/games/0100D680194B2000/patches.py):b23a43495191e7ad33d1d0effcbb1d84at0x2ba5b4:_ZN5moviedestructor unconditionally callsAbortImplduring video teardown; replacedbl #0x2bacd8(c9010094) withnop(1f2003d5).dm/tools/sdk_patches.py):2aef2cffb104ee7c9e212fd2f4c731e9): AddressRegionManager node area compaction from 1 GB to 62 MB, and an early-return null guard on uninitializedheap_baseinCentralHeap::Free(0x11de60:bf3903d5->280700b4,cbz x8, #0x11df44).dm/games/0100D680194B2000/README.md.dm/games/README.mdalphabetically.docs/agents/game-patches.mdviadm/tools/docs_patches.py.Validation
python3 dm/tools/tests/test_docs.py(11/11 passed),python3 dm/tools/tests/test_patches.py(15/15 passed).