Skip to content

v0.4.20260304

Pre-release
Pre-release

Choose a tag to compare

@jamesj999 jamesj999 released this 04 Mar 20:04
· 964 commits to master since this release

A release-sized update focused on expanding playable coverage, ending sequences, and engine maturity.

  • Package rename from uk.co.jamesj999.sonic to com.openggf across the entire codebase.
  • Master title screen implemented: engine-wide PNG-based title screen with animated clouds, game
    selection, and pixel font renderer. Displayed on startup before entering game-specific title flow.
  • Sonic 1 has moved from initial support to feature complete: title screen flow, special
    stages, major per-zone event scripting, extensive object and badnik additions, multiple boss
    implementations (GHZ, MZ, SYZ, LZ, SLZ, FZ), Labyrinth water/drowning/splash behaviour,
    ending/credits work, SBZ post-level-end sequence, demo playback, edge balance and push block
    collision corrections, and slope crest sensor guard. Expect minor bugs, but the game should be playable
    from beginning to end.
  • Sonic 2 adds title screen support, major object passes for MTZ/SCZ/WFZ/OOZ, 9 boss fights
    (MCZ, MTZ, WFZ, and both DEZ bosses — Mecha Sonic and Death Egg Robot, plus Robotnik escape),
    a complete credits and ending cutscene system with ROM-accurate visuals, expanded per-zone event
    architecture, demo playback, signpost/badnik palette/stair block art fixes, and a systematic
    TODO resolution pass with disassembly validation.
  • Sonic 3&K sees major AIZ progress including intro cutscene systems, hollow tree and vine
    traversal parity work, miniboss object set bring-up, initial badnik implementations, shield/PLC
    integration fixes, a full water system with provider architecture and underwater palettes,
    seamless AIZ fire transition flow, and related regressions/tests.
  • Cross-game feature donation implemented: a donor game (S2 or S3K) can provide player sprites,
    spindash dust, physics, palettes, and SFX while the base game handles levels, collision, objects,
    and music. Now includes cross-game Super Sonic delegation.
  • Per-game physics and Super Sonic state/control flow (implemented for S2, with cross-game
    delegation to S1 and S2 game modules).
  • Profile-driven level loading: declarative LevelInitProfile system with 13 ROM-aligned
    steps per game, replacing the monolithic loadLevel() path.
  • Testability refactor: GameContext, SharedLevel, HeadlessTestFixture builder, and
    profile-driven test teardown. Test grouping by level and 8-JVM parallel execution.
  • Engine fixes: solid object edge jitter fix, S1 slope crest sensor guard, jump-while-airborne
    guard, fade transition flash fix, results screen rendering fix, HTZ earthquake fixes, SFX
    channel replacement fix.
  • PLC/art-loader refactors, RomOffsetFinder/ObjectDiscoveryTool enhancements, configuration
    documentation, and broad audio/stability/performance hardening.

See CHANGELOG.md for full details.

Full Changelog: v0.3.20260206...v0.4.20260304