Skip to content

v0.4.0 — bridge-free product: the workbench is now a detachable plug-in

Latest

Choose a tag to compare

@missingno7 missingno7 released this 12 Jul 21:08
· 226 commits to main since this release

Prehistorik 2 native port — v0.4.0

The bridge-free product milestone: the shipped game now carries none of the verification/snapshot/VM machinery — the workbench is a detachable plug-in used only for recording, snapshots, and byte-exact verification. On top of v0.3.2.

🏗️ The detachable workbench (the milestone)

  • The boundary is machine-enforced: shipped code (recovered/views/native/enhanced/codecs + the entry scripts) may never import pre2.bridge or dos_re — not even lazily; scripts/lint.py fails the build otherwise. The workbench imports the product, never the reverse.
  • Demo replay is a product feature: play_native.py --play-demo replays recorded runs (front-end presentation + byte-exact tick replay) with zero workbench code.
  • The deployed tree ships no bridge, no VM, no game data — verified per release.

📖 Human-readable, field-backed state

  • All gameplay code reads/writes named state (player.xvel, g.energy, enemy_slots[3].state) through the evidence-annotated view layer — ~260 raw-offset sites eliminated.
  • Every mutable byte of the game's data segment is named (fields, indexed records, or declared arenas): the cartography proof counts zero written-unnamed bytes over the demo corpus.
  • The machine-readable offset map generates into the bridge (field_registry.py, drift-guarded); the bridge serializer converts a live game state to/from a human-readable named snapshot and diffs two states by field name.
  • The whole seam is corpus-proven: per-tick round-trip identity, mutation coverage, and backend equivalence over all 4,146 fields across every recorded demo (919/207/187/68/15 ticks — all byte-identical to the original ASM oracle).

📦 Downloads

file platform
pre2native-v0.4.0-win64.zip Windows x64 (standalone, no Python needed)
pre2-v0.4.0-arm64-v8a.apk Android (arm64)

Both need the original game files (*.SQZ, *.TRK) next to the executable / picked at first launch — no game data is distributed.

🤖 Generated with Claude Code