diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-27 17:46:02 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-27 17:46:02 -0400 |
| commit | 06cc8292f85e507d6456532550a95016785a6695 (patch) | |
| tree | 6d6e1e63226d8d81440f5ccc450b6e1aec8bd10c /NX2_NOTES.md | |
| parent | 4af363d798adf3b906fcfa5cba37ec9304f27dab (diff) | |
Switch 2 (title 1): syncpt handshake, gpu user/gsv partitions
Newer SDKs open the syncpt session with TIPC 0(u64) and need it echoed, and
query the GPU address space partitions with gpu 201/202 instead of 203. With
these and the larger memory budget, title 1 reaches its main loop and the same
empty-command-buffer stop as title 4.
Diffstat (limited to 'NX2_NOTES.md')
| -rw-r--r-- | NX2_NOTES.md | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/NX2_NOTES.md b/NX2_NOTES.md index 034e185d24..ee9cc8dd8f 100644 --- a/NX2_NOTES.md +++ b/NX2_NOTES.md @@ -97,6 +97,8 @@ With the patched decoder, games 1/3/4 only leave ~60-110 rare SIMD encodings in | 39 | every audio `RequestUpdate` fails | updates tagged `REv?` (lowercase v), renderer opened with `REV?` | compare revision numbers (2e6c39c) | | 40 | main thread parked in `ExecuteVirtualMachineMapBufferEx` | gpu sub 211's job slot is request word 17, not word 2 | signal word 17's event (2e6c39c) | | 41 | "too many files open" reading RomFS | eden-cli never raised the CRT stdio limit | `_setmaxstdio(8192)` (2e6c39c) | +| 43 | (title 1) `nn::syncpt::sdk::Initialize` abort | newer SDK opens syncpt with TIPC 0(u64 token) and aborts unless it is echoed | handshake echo | +| 44 | (title 1) NVN closes the GPU device after GetVARegions | newer SDK asks gpu 201/202(id) for the user/gsv partitions (two u64s each, stored as min/max) instead of using 203 | 201 = [0x8000000, 0xC000000000), 202 empty | | 42 | GPU memory model | gpu sub 101 = `CreateGpuAccessibleMemory` (reply word 3 = GpuMemoryHandle); 211 = `NormalMapGpuMemory4K` (words 3-4 first VA, 5-6 last, 7 handle, 8-9 offset, 17 slot), also into sparse regions at 0x81_xxxx_xxxx; 102/213 (`NormalUnmapGpuMemory4K`)/214 (`CreateSparseRegion`) complete through slot events (words 3/8/11) | real handles, `Nx2GpuMemoryRegistry::MapAt` with SMMU range reuse, slot signals | Run settings used (in `build/bin/user/config/sdl2-config.ini`): `memory_layout_mode=4` @@ -125,10 +127,11 @@ audio renderer -> Gyml sequence files -> main loop. **Title 3**: last checked before the graphics work; should now track title 4. -**Title 1** (`first switch game\exefs`, 0400C3F00006E000, `Drive.nss`): stops earlier, inside -`nnMain` (`nnMain+0x40 .. +0xb74`): it builds an SDK allocator object at address 0 and calls -through its null function pointer (`main+0xF04E8`). Worth retrying now that Switch 2 processes -get the larger memory budget (it sets a fixed 0x1BD600000 budget at `main+0xCF25A8`). +**Title 1** (`first switch game\exefs`, 0400C3F00006E000, `Drive.nss`) now gets as far as +title 4: the larger memory budget (it sees ~9.5 GB) cleared the old null-allocator stop, then +blockers 43-44. It boots graphics, NVN and several GPU channels, polls input every frame, and +hits the same empty NVN command buffer at ~14 s (identical writes to address 0), so that stop is +shared, not title-specific. **Title 2**: main/sdk/subsdk0 fail LZ4 and SHA-256 checks; can't be run from these files. |
