You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Freeze and System Error when opening the boss door to fight Gohma (Dragon Roost Cavern) #37
The game froze and the console showed a System Error when opening the boss door to fight Gohma (Dragon Roost Cavern).
SwitchwakerHD: just froze / System Error when opening the boss door to fight Gohma (0.4.6)
Steps to reproduce
Play through Dragon Roost Cavern up to the boss door.
Open the boss door: the game freezes and a System Error appears.
Not known yet whether it happens every time.
Version
v0.4.6
Console and setup
Unknown: console model, mode (handheld/docked), launch method (forwarder or hbmenu) and firmware
Logs
None yet. Useful to check: switch/wwhd/logs/ (the newest log, which should end at the freeze) and atmosphere/crash_reports/ (the report written with the System Error).
Thanks a lot for the logs, @LFranco1213! Here is what they show. There are two different crashes in them, and neither one is the Gohma door itself.
wwhd_2026-10-13_10-18-35: Prepare graphics, no problem
The "Prepare graphics" sweep (63 places in 10 min). It finished normally and put the Quest Log files back.
wwhd_2026-10-13_10-31-44: ends abruptly after ~1 minute
The log just stops: there's no [crash] block and no error before it. That is what a hang, or a System Error that kills the game, would leave behind, so this may be the door freeze. There's nothing in it that shows the cause, though.
wwhd_2026-10-13_10-32-58: out of memory after ~4 hours (bug on our side)
Crash at frame 426002 (~4 h of play): FATAL: uncaught exception: std::bad_alloc in OliveOperationMgrThread, with heap never used: 0 MiB. Just before it there are draw skipped: std::bad_alloc and failed shader lines, because memory had already run out.
Free memory drops steadily over the whole session, from ~790 MiB to 0. It drops in step with the new shader variants the game needs:
frame
free heap (MiB)
new shader variants this session
29k
689
1.5k
119k
384
19.6k
284k–359k
138 → 124
38.2k (none new: memory almost flat)
419k
11
51.1k
That's about 9 KB kept in RAM for each new shader variant, and it's never freed: the deko3d renderer keeps every translated variant together with the decompiler's data. The session made ~52,000 new variants on top of the ones already cached, so a long session eventually fills the Switch's memory. Anyone playing for many hours straight can hit this, wherever they are in the game. We'll fix it (free what isn't needed once a shader is built, and drop variants that haven't been used for a long time).
wwhd_2026-10-13_14-30-35: assertion inside the game after ~30 min
Source File: c_xyz.cpp
Line Number: 285
Description: isNearZeroSquare() == 0
This is the game's own check: it tried to normalize a vector of length zero and stopped. We can't tell yet which object did it. One thing worth noting: during this session the CPU/GPU clocks were changed several times (CPU 1224 and 1785 MHz, GPU 768 MHz), so it wasn't running at stock clocks the whole time.
What would help
For the Gohma door: if you can, reach the door again with stock clocks (CPU 1020 MHz, GPU default in the Switch tab) and the latest version. Please attach that session's log and, ideally, a save state from just before the door (Minus → Debug).
Update on the c_xyz.cpp:285 crash in wwhd_2026-10-13_14-30-35: we rebuilt v0.4.6 and decoded the crash addresses. It comes from a door:
cXyz::normalize (c_xyz.cpp:285, assert)
dDoor_info_c::checkArea
daDoor10_c::setEventPrm
daDoor10_c actionWait / actionInit / Execute
fopAc_Execute -> fpcM_Management (the game's per-frame actor update)
daDoor10 is the dungeon shutter / boss door actor. Every frame, while it waits for Link, it measures the direction from the door to Link and normalizes it. If Link stands exactly on the door's origin, that direction has length zero, and the game's own assertion stops it. So this crash is most likely the boss door problem this issue is about.
We've hit this same assertion before, but only when Link was moved straight onto a spot by a warp during a place's arrival event (our "Prepare graphics" sweep works around it). In normal play Link shouldn't end up on the door's origin, so we'd like to know how you got there:
Did you use the Warp tab, load a save state, or reload a Quest Log right next to that door?
Or did you just walk up to the door (or come back to the room through it)?
Either way, a log from reaching the door again (stock clocks, latest version) would help us confirm it.
v0.4.7 fixes the memory part of this: the game kept tens of thousands of copies of graphics shader variants and ran out of memory after a few hours. The boss door crash is still open; I'm keeping this issue for it.
Even though I processed the entire over 127 shaders/graphics (minus, switch), there is still some issues like graphics load, stuttering. However, this just last for over 1-5 secs.
PictoBox pictographs keeps blank/black. Selfies are working fine (B&W).
Thanks for testing, and great to hear the Gohma door is fixed!
About the black pictographs: we can reproduce it. If a shader the picture needs hasn't loaded yet when you take the first picture in a place, that picture comes out black, and the following ones stay black too, even after the shaders have loaded. Going back to the title screen and loading your save again fixes it. Could you confirm that's what you see? We're looking into it.
The stutters of 1–5 s are shaders that weren't in the prepared list being compiled the first time they're needed. They go away once each one is compiled.
A correction to my last comment: going back to the title screen is not enough, the pictographs stay black until the game is closed and opened again.
We found the cause: the Picto Box draws a small color table only once per session, at the first picture. If that shader was still loading at that moment, the table stayed empty and every picture after it came out black. This is fixed on main and will be in the next release. Until then, closing and reopening the game fixes it.
Thanks for the report and the log, they helped a lot!
Status: the Gohma door freeze was confirmed fixed in v0.4.7 (thanks @LFranco1213), and the black pictographs reported here are fixed on main. Both will be in the next release (v0.4.8); this issue closes then.
Activity
l0nkDev commentedon Oct 13, 2026
I had no issues with Gohma in my own playthrough so it may be either coincidental or a bug recently introduced. Logs are a must.
Pulpparty commentedon Oct 13, 2026
Me neither, trying to collect logs from redditor who report it
LFranco1213 commentedon Oct 13, 2026
Switch V1, No OC, SwitchWaker HD 0.4.6
wwhd_2026-10-13_10-18-35[1].log
wwhd_2026-10-13_10-31-44[1].log
wwhd_2026-10-13_10-32-58[1].log
wwhd_2026-10-13_14-30-35[1].log
Pulpparty commentedon Oct 14, 2026
Thanks a lot for the logs, @LFranco1213! Here is what they show. There are two different crashes in them, and neither one is the Gohma door itself.
wwhd_2026-10-13_10-18-35: Prepare graphics, no problemThe "Prepare graphics" sweep (63 places in 10 min). It finished normally and put the Quest Log files back.
wwhd_2026-10-13_10-31-44: ends abruptly after ~1 minuteThe log just stops: there's no
[crash]block and no error before it. That is what a hang, or a System Error that kills the game, would leave behind, so this may be the door freeze. There's nothing in it that shows the cause, though.wwhd_2026-10-13_10-32-58: out of memory after ~4 hours (bug on our side)Crash at frame 426002 (~4 h of play):
FATAL: uncaught exception: std::bad_allocinOliveOperationMgrThread, withheap never used: 0 MiB. Just before it there aredraw skipped: std::bad_allocand failed shader lines, because memory had already run out.Free memory drops steadily over the whole session, from ~790 MiB to 0. It drops in step with the new shader variants the game needs:
That's about 9 KB kept in RAM for each new shader variant, and it's never freed: the deko3d renderer keeps every translated variant together with the decompiler's data. The session made ~52,000 new variants on top of the ones already cached, so a long session eventually fills the Switch's memory. Anyone playing for many hours straight can hit this, wherever they are in the game. We'll fix it (free what isn't needed once a shader is built, and drop variants that haven't been used for a long time).
wwhd_2026-10-13_14-30-35: assertion inside the game after ~30 minThis is the game's own check: it tried to normalize a vector of length zero and stopped. We can't tell yet which object did it. One thing worth noting: during this session the CPU/GPU clocks were changed several times (CPU 1224 and 1785 MHz, GPU 768 MHz), so it wasn't running at stock clocks the whole time.
What would help
For the Gohma door: if you can, reach the door again with stock clocks (CPU 1020 MHz, GPU default in the Switch tab) and the latest version. Please attach that session's log and, ideally, a save state from just before the door (Minus → Debug).
Pulpparty commentedon Oct 14, 2026
Update on the
c_xyz.cpp:285crash inwwhd_2026-10-13_14-30-35: we rebuilt v0.4.6 and decoded the crash addresses. It comes from a door:daDoor10is the dungeon shutter / boss door actor. Every frame, while it waits for Link, it measures the direction from the door to Link and normalizes it. If Link stands exactly on the door's origin, that direction has length zero, and the game's own assertion stops it. So this crash is most likely the boss door problem this issue is about.We've hit this same assertion before, but only when Link was moved straight onto a spot by a warp during a place's arrival event (our "Prepare graphics" sweep works around it). In normal play Link shouldn't end up on the door's origin, so we'd like to know how you got there:
Either way, a log from reaching the door again (stock clocks, latest version) would help us confirm it.
docs: shader variant memory plan (#37)
deko3d: a [mem] line every 5 s (malloc in use, shader variants, GLSL,…
deko3d: exact shader variant keys: the semantic slots each fetch attr…
deko3d: only the valid translation records stay in memory (a file of …
Merge fix/shader-variant-memory: exact shader variant keys and a [mem…
Pulpparty commentedon Oct 14, 2026
v0.4.7 fixes the memory part of this: the game kept tens of thousands of copies of graphics shader variants and ran out of memory after a few hours. The boss door crash is still open; I'm keeping this issue for it.
LFranco1213 commentedon Oct 15, 2026
Switch V1, Erista, No OC, 0.4.7
wwhd_2026-10-14_17-11-35.log
*Tried to load savestate but page prevented me to do so.
deko3d patch 2: CmdBuf::clear returns every used control chunk
Pulpparty commentedon Oct 15, 2026
Thanks for testing, and great to hear the Gohma door is fixed!
About the black pictographs: we can reproduce it. If a shader the picture needs hasn't loaded yet when you take the first picture in a place, that picture comes out black, and the following ones stay black too, even after the shaders have loaded. Going back to the title screen and loading your save again fixes it. Could you confirm that's what you see? We're looking into it.
The stutters of 1–5 s are shaders that weren't in the prepared list being compiled the first time they're needed. They go away once each one is compiled.
Picto Box: a draw into a 3D color target waits for its shaders
Merge fix/picto-black: Picto Box pictures no longer stay black after …
Pulpparty commentedon Oct 15, 2026
A correction to my last comment: going back to the title screen is not enough, the pictographs stay black until the game is closed and opened again.
We found the cause: the Picto Box draws a small color table only once per session, at the first picture. If that shader was still loading at that moment, the table stayed empty and every picture after it came out black. This is fixed on main and will be in the next release. Until then, closing and reopening the game fixes it.
Thanks for the report and the log, they helped a lot!
LFranco1213 commentedon Oct 22, 2026
Switchwaker HD - A quick update: finished the game all the way up to Ganon's Tower and everything ran smoothly!
Pulpparty commentedon Oct 22, 2026
Status: the Gohma door freeze was confirmed fixed in v0.4.7 (thanks @LFranco1213), and the black pictographs reported here are fixed on
main. Both will be in the next release (v0.4.8); this issue closes then.Pulpparty commentedon Oct 24, 2026
Note: the next release will be v1.0.0 instead of v0.4.8 (milestone renamed). This fix ships in it.