github akratch/goldenballoon v1.0.3
Golden Balloon 1.0.3

5 hours ago

Golden Balloon 1.0.3

Golden Balloon 1.0.3 closes a family of texture, glyph, and Remastered
composition defects found after 1.0.2. Restored remains the default and gameplay
timing is unchanged. No game data is included.

Released 2026-08-02.

What changed

  • Texture cache entries now describe the complete uploaded image. Source
    row pitch and span, palette, format, dimensions, LOADBLOCK row layout, SDF
    derivation, mip policy, and cutout policy all participate in cache identity.
    Recycled GPU texture IDs also invalidate their sampler memo before upload.
    This removes first-use-wins behavior that could bind old pixels or filtering
    after menu/level asset churn.
  • WebGPU cache eviction cannot inherit a stale material or pipeline. The
    redundant-bind trackers are cleared before releasing a cached bind group or
    pipeline. A native implementation may recycle opaque handle addresses; the
    old ordering could mistake a replacement for the object already bound and
    skip a required bind.
  • Remastered never applies world finishing to the HUD. At 1× render scale,
    or when the render-pixel budget clamps supersampling to 1×, terminal HUD and
    text are now composed after grading and tonemapping just as they are at 2×.
    The maintained GL/WebGPU gate proves 8,350 opaque HUD pixels are byte-exact
    across the finish A/B at both scales while the world changes materially.
  • Cutout mipmaps preserve the silhouette the GPU actually draws. Mip
    coverage previously used alpha 128 while GL, WebGPU, and Metal discarded at
    a strict 0.19 boundary (RGBA8 alpha 49). One shared contract now drives every
    shader and the CPU mip reducer, preventing masked foliage, fences, decals,
    and similar details from changing thickness or disappearing with distance.
  • Restored is consistently the safe default. Native defaults, CLI help,
    launcher copy, browser copy, README, and tests now identify Remastered as an
    opt-in work-in-progress mode. The reserved TexturePack setting remains
    parseable for forward compatibility but is hidden until a loader exists.
  • The 1.0.2 door-numeral fix is now structurally guarded as an ownership
    rule.
    Per-door and racer material choices remain draw-local; native code
    cannot reintroduce the shared-model mutation. The real Adventure GL/WebGPU
    oracle still proves stable 1/2/3/5 requirements and distinct final glyphs.
  • The corruption gates are fail-red and backend-complete. Odd-row texture
    decode now runs from isolated configuration/save directories on both GL and
    WebGPU, with deliberately broken decode controls. Runtime SDF, door glyph,
    moving mip, cache-ownership, and 1×/2× HUD composition checks cover the
    associated failure modes rather than one screenshot.

What did not change

  • WebGPU remains the proven native and browser default. OpenGL remains an
    explicit compatibility/diagnostic backend.
  • Original remains Recommended / Proven. Every non-Original frame limit is
    still Experimental — Under Construction and changes host pacing/input
    opportunities only; it does not increase unique visual FPS.
  • The macOS artifact remains intentionally unsigned by a Developer ID. It is
    still sealed inside-out and the finished DMG must pass the read-only-mounted
    LaunchServices/WebGPU, dependency, deployment-target, and capture checks.
  • Existing saves, ROM support, controls, simulation, input, events, and audio
    timing are unchanged.
  • Windows still lets wgpu-native choose Vulkan or Direct3D 12 automatically,
    and still requires reasonably short, ASCII-only app/ROM paths. Explicit API
    selection, richer adapter diagnostics, wide-character filesystem APIs, and
    a reviewed application manifest remain deferred to a future portability
    release.

Don't miss a new goldenballoon release

NewReleases is sending notifications on new releases.