Record a useful baseline
Keep the exact repository commit, disc revision, build platform, browser version, GPU and internal resolution. Copy the relevant error lines from the local runner. Test one change at a time and return to native resolution before comparing scene performance. A build that compiles has only passed compilation; it has not verified playback.
WebGPU missing, unavailable or slow
Run the browser check. Separate an absent WebGPU API from an API that cannot return an adapter. In the first case, consult current browser and platform support. In the second, inspect GPU drivers, browser GPU diagnostics and the execution environment. The upstream notes dual-GPU presentation problems and its adapter/2D-copy fallback.
A visible menu using software rendering is not proof that a demanding 3D scene will run acceptably. If the GPU renderer is working but frame rate drops at higher resolution, compare native resolution first. The maintainer’s frame rates refer to particular scenes on one laptop.
SharedArrayBuffer or thread errors
Serve the actual build through scripts/serve.py. Inspect response headers for COOP same-origin and COEP require-corp, then inspect crossOriginIsolated in the game page. A plain file URL or a generic development server may load the initial document while failing the shared-memory prerequisites.
Isolation on this guide’s ordinary content pages is intentionally inactive. Diagnose the document that runs the game, rather than treating the guide’s result as the local server’s headers.
HTML opens, but game data fails to load
Check that the disc path given to the local server points to the expected ISO. The project streams the disc with HTTP Range requests instead of loading all assets upfront. A host that returns only whole files, rewrites requests to an HTML fallback or omits the disc endpoint can fail after the page itself has appeared. The supplied Python server is the reference behavior.
Unhandled syscall or missing IOP library
| Log family | Interpretation and next step |
|---|---|
| [sys] unhandled syscall | An OS service reached by this game is not implemented. Preserve the exact syscall and stopping scene for an upstream report. |
| [iop] missing <library> #<n> | A library function needed by a game-supplied IOP module is absent. Record the library and index; renaming the ISO will not implement it. |
| Missing guest function / entry address | Exploration may not have reached all indirect-call targets. Inspect exploration logs and screenshots, then adjust input timing or run length. |
| Unexpected geometry or crashes | Check whether the current upstream already fixes the behavior. The God of War II account demonstrates that control-flow and vector timing defects can appear as rendering problems. |
No sound
Interact with the game page and inspect the browser’s mute, output device and audio-context state. If those are correct, compare native and browser behavior without claiming the comparison proves a cause. The God of War II development history includes an unimplemented IOP hardware timer that prevented its driver from mixing audio. Browser autoplay is only one possible layer.
The memory card looks empty
Return to the same hostname, port, browser and profile used for the save. Check whether ?nocard was added. Verify that an actual in-game save completed. Use an exported .ps2 backup to restore only after preserving any current card. The save guide explains origin-specific storage and import risks.
What to include in an upstream issue
Give the commit, platform, disc revision, exact commands, stopping point and a minimal relevant log excerpt. Remove personal file paths if they are unnecessary. Do not attach an ISO, game executable or generated WebAssembly. This guide has not executed your game and cannot certify the diagnosis from a generic symptom alone.
Source: Upstream project documentation · reviewed 15 October 2026.
Source: Upstream project documentation · reviewed 15 October 2026.