Case study

Open Scrantic: reconstructing the Johnny Castaway screensaver engine

Reconstructs the Johnny Castaway screensaver engine in Rust, with author-disclosed REA and Claude Code use. It reads original files to run recovered animation scripts and calendar-based story state on modern desktops; documented deviations and limited tests stop short of complete behavioral equivalence.

Requirements and limitations

  • Reviewed at v0.3.0: this is a Windows 3.1 screensaver-engine reconstruction, not a game port. The author reports recovering formats and TTM/ADS script semantics from disassembly, with human-directed REA/Claude Code work and comparisons against the original. Those reports do not establish exhaustive parity or an independent agent-performance result.
  • Builds pin Rust 1.99.1; Cargo declares minimum Rust 1.99 and edition 2024. The project targets Windows, macOS and Linux using winit, softbuffer and rodio. Linux builds also require ALSA development headers and pkg-config.
  • Runtime requires separately obtained SCRANTIC.SCR, RESOURCE.MAP and RESOURCE.001 beside the executable. README sizes and SHA-256 values identify the expected original files; the loader instead checks known executable strings/layout, not whole-file hashes. Arbitrary original builds are unsupported. Options and story state use SCRANTIC.INI, saved on normal exit.
  • Deliberate differences include full-frame redraw, potentially one-pixel line/ellipse differences, bounded final-scene selection and a fixed two-second title display. Optional dedithering and softened audio default off. The original settings dialog and password feature are absent, as are unused animated-palette, 256-color and ADS-variable features.
  • The headless test runs 6,000 steps and requires three completed scenes, without original-frame comparison. Data-dependent tests silently return when OPEN_SCRANTIC_DATA is unset; other tests cover parsing and arithmetic. CI checks formatting, lint, three-platform builds and --version, not cargo test or original-data playback. Snapshot output supports inspection, not an automated original-output oracle.
  • MIT covers project source, not original executable content, art, scripts or sounds, which users must supply with appropriate authorization. The author describes independent, non-commercial interoperability without Sierra/Dynamix endorsement. This collection reviewed sources and test definitions; it did not reproduce the implementation or results.

About this entry

Type
Case study
Category
Community REA investigations
Relationship
Author-reported mixed workflow
Targets
App

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · glauberlima/open-scrantic · Revision 2db7500
  2. docs/ENGINE.md GitHub · glauberlima/open-scrantic · Revision 2db7500
  3. docs/ARCHITECTURE.md GitHub · glauberlima/open-scrantic · Revision 2db7500
  4. Cargo.toml GitHub · glauberlima/open-scrantic · Revision 2db7500
  5. rust-toolchain.toml GitHub · glauberlima/open-scrantic · Revision 2db7500
  6. LICENSE GitHub · glauberlima/open-scrantic · Revision 2db7500
  7. src/assets/exe.rs GitHub · glauberlima/open-scrantic · Revision 2db7500
  8. src/assets/mod.rs GitHub · glauberlima/open-scrantic · Revision 2db7500
  9. src/engine/mod.rs GitHub · glauberlima/open-scrantic · Revision 2db7500
  10. src/engine/config.rs GitHub · glauberlima/open-scrantic · Revision 2db7500
  11. src/engine/rng.rs GitHub · glauberlima/open-scrantic · Revision 2db7500
  12. examples/snapshot.rs GitHub · glauberlima/open-scrantic · Revision 2db7500
  13. .github/workflows/ci.yml GitHub · glauberlima/open-scrantic · Revision 2db7500
  14. CHANGELOG.md GitHub · glauberlima/open-scrantic · Revision 2db7500