Widescreen rendering and stability fixes, plus additional regional gameplay
corrections. Includes all fixes shipped in 0.9.1 and 0.9.2.
Widescreen
- Sprites and backdrop colors remain visible across the original 240-pixel
boundary, including transparent backgrounds and window effects. - Negative screen shake no longer opens a seam at the widescreen boundary.
- Digging-cave iris transitions temporarily use the native viewport, then
restore the wider camera and tilemap together when the effect finishes. - Dampe's scripted visibility checks respect the active viewport width.
- Dialogue centering follows the frame actually drawn, including moving,
opening and closing windows. - Console-Parity mode explains why widescreen is unavailable instead of
reporting that it was enabled.
Stability
- Audio scratch buffers survive shutdown until the audio thread has stopped.
- Malformed sprite assets and out-of-range numeric configuration values are
rejected without unsafe reads or conversions. - Graphics allocation safely handles full and fragmented slots; NPC dialogue
tolerates unavailable graphics instead of dereferencing a missing allocation.
Regional gameplay and widescreen fixes (#191, #193)
- EU and JP ROMs now use their own collision-matrix addresses for enemy
contact and damage, including the cached settings used by collision handlers. - Japanese sound effects retain their ROM offset when
sounds.jsonupdates
only the EU offset. - Location-name banners stay together and centered in widescreen instead of
having their final glyphs moved to the HUD's right edge. - The Deepwood Shrine barrel hole again requires the original rotation angle
before Link can fall through it.
Regional gameplay audit fixes
- EU cannonballs, Vaati attacks/eyes, and HUD graphics use native sprite
indices, including the HUD frame/tile tables. - Additional room entity lists and moving lily-pad rails load from verified
USA, EU, and JP addresses. Copied lists retain native script addresses. - EU tile collision shapes, tile properties, and wall-fusion records use
the active ROM's tables instead of compiled USA pointers. Invalid saved
fusion cursors are rejected before reading beyond the offer list. - Large chests remain available when reward allocation fails and commit
collection only after the item grant. Enemy death effects tolerate a full
entity pool.
Verification
- Added focused widescreen rendering, camera, dialogue and NPC regressions.
- GPU parity builds now include widescreen scenes at the configured width,
with independent expected-pixel checks for the compositor regression.
Downloads include Windows, Linux and macOS builds for x86_64 and ARM64, plus Android. Supply your own supported ROM.
Full changelog: v0.9.2...v0.9.3