Skip to content

v1.2

Choose a tag to compare

@tallPete tallPete released this 15 May 02:48
· 17 commits to main since this release

Johnny Castaway native macOS screensaver — v1.2

Six bug fixes and one new feature since v1.1.

  1. INTRO.SCR title screen

    The original Sierra intro screen (INTRO.SCR) now displays on
    screensaver activation with a cycling wipe transition, matching
    the feel of the original Windows release. A black-screen hang
    that occurred when a resource failed to load mid-intro was also
    fixed.

  2. CPU spin after extended runtime

    After several hours of running, the onBackgroundTick
    wave-animation closure entered a Swift exclusivity spin, pegging
    one CPU core at 99% indefinitely. Fixed by eliminating the
    closure capture that triggered the exclusivity violation.

  3. Sprite clipping (SET_CLIP_ZONE not enforced)

    SET_CLIP_ZONE was stored on the thread but never applied to
    sprite or rect drawing. The symptom was sprites appearing above
    the palm canopy and above the island surface — e.g. Johnny
    sleeping above the tree, or fish visible outside the fishing-
    close-up frame. All draw primitives now honour the clip rect.

  4. Walk to Spot.A skipped

    When the next scene started at the leftmost anchor (Spot.A),
    the walk controller incorrectly detected a zero-distance walk
    and skipped it, leaving Johnny at his previous position.
    Fixed by checking the destination spot rather than the
    displacement vector.

  5. Scene-start flicker

    A one-frame flash of the previous scene appeared when a new
    scene began, because the outgoing thread's layer was composited
    one tick after the scene transition. Fixed.

  6. Cloud placement

    The cloud Y-position formula misread rand() % (135 - N) as
    a lower bound rather than a range size, placing all clouds too
    high on the screen. Fixed; clouds now distribute correctly
    across the sky.