DEV Community

Nivando Soares
Nivando Soares

Posted on

TD2 Port Checkpoint: Native SDL Archaeology Demo Timeline

TD2 Port Checkpoint: Native SDL Archaeology Demo Timeline

The SDL demo path for the TD2 port is now a real native timeline instead of a
single near-static gameplay seed.

This checkpoint promotes the default launcher into an archaeology-driven demo
tour built from the raw-state artifacts already solved in the repo:

  • credits
  • attract / Mode 7 windows
  • menu anchors
  • gameplay anchors

The important constraint is what it does not do:

  • it does not use compare mode
  • it does not write PPM or PNG dumps
  • it does not render from screenshot playback
  • it does not run a ROM/CPU emulation path

The default entry point is still:

./port/run_demo.sh
Enter fullscreen mode Exit fullscreen mode

But now that launcher boots a manifest-driven native timeline from:

port/assets/native_demo_archaeology_timeline.txt
Enter fullscreen mode Exit fullscreen mode

Each step loads a design_pack or design_pack_range frame and renders it
through the port's SDL-native SNES-mimetic pipeline from:

  • raw/vram.bin
  • raw/cgram.bin
  • raw/oam.bin
  • raw/ppu_state.json

Where archaeology already has contiguous frame coverage, the timeline stays
exact. Where the repo only has sparse anchors, the launcher now uses explicit
infer_hold stretches instead of hiding that gap behind screenshot playback.

That makes the current capability demo honest:

  • exact frames stay exact
  • missing spans are labeled as inferred holds
  • the demo still moves across the best proven path in the repo

Another useful cleanup landed under the hood: in demo mode the launcher now
skips optional layers/main_visible.ppm loading entirely. That means the demo
window is no longer just "compare off" in principle; the reference surface is
out of the runtime path altogether.

The on-screen overlay now states the proof directly on top of the SDL frame:

  • MESEN OFF
  • ROM CPU EMU OFF
  • REFERENCE PPM OFF
  • PPM PNG DUMP OFF
  • active mode / source / callbacks / output resolution

The dedicated launcher smoke also changed accordingly. It now verifies that the
default demo:

  • enters timeline mode
  • reports the raw-only launcher contract
  • advances beyond the first clip under SDL_VIDEODRIVER=dummy

The full port suite still passes after the change:

make -C port test
Enter fullscreen mode Exit fullscreen mode

What this checkpoint proves

It proves the current archaeology set is already strong enough to present a
moving SDL-native capability demo without falling back to PPM/PNG playback.

What it does not prove yet

It does not prove continuous runtime-owned gameplay or a full native
no-input attract loop. The next content-side job is to replace the remaining
inferred holds and sparse gameplay snapshots with denser raw-state captures or
true runtime-owned frame progression.

Top comments (0)