Files
skate-3-rust-engine/tools/setup-equivalence
Hails 418dcecd41 Audio: interim cue tables retired, native water splash, published tools
- The interim cue tables and their opt-outs are gone; the native runtime is the only audio path. Old
  settings/audio.json files still load ("interim" / "native" ignored). Missing native data logs an error
  instead of falling back.
- Water splash from retail's mechanism (SFXObj_OffBoard start / update): Skate_Collisions 1187 / 1197 once
  per water stay, 1198 when the board is in water.
- The random interim riding bed is removed; riding collision and cloth sounds compared with the recomp
  (doc 11). Native output otherwise byte-identical (13 scenarios + 5 sessions).
- Published tools under tools/ (one folder per tool with a README; the recomp ones labelled for use with the
  research hooks), doc 14 and PR plan bucket L.
- Docs: doc 11 (retirement, bail density measured against the recomp, collision posts), doc 13 (usage guide).
2026-10-03 10:20:08 -06:00
..

Setup equivalence checks

Prove that a faster setup path produces exactly the same bytes as the code it replaces. Both were written to verify setup speed-ups (see docs/hails-additions/08-setup-performance.md).

Script What it proves
compare_streams.py A changed district stream loader (tools/vendor/university/.../skate3_streams.py) returns exactly what a reference copy returns: every asset's record, source path, offset, stored size and decoded bytes, per district and stream (Pres, Sim, Tex). Also times both.
compare_refpack.py The native RefPack DLL (target/native/refpack.dll, built by scripts\Build.ps1) decodes exactly like the pure-Python decoder: every entry of createacharacter.big and marquee.big, and with --streams every extracted district stream asset.

Inputs

  • Your extracted disc: --disc DIR (the folder holding data/), default $SKATE3_DISC or .local/skate3-disc.
  • Extracted districts under --work (default .local/collision), made by tools/collision-inspect/map_collision.py or scan_surfaceless.py.
  • For compare_streams.py, a reference copy of the loader: git show <commit>:tools/vendor/university/tools/vanilla_map_extraction/tools/skate3_streams.py > .local/ref.py

Usage

py -3.13 tools/setup-equivalence/compare_streams.py .local/ref.py MegaPark StartPark
py -3.13 tools/setup-equivalence/compare_refpack.py --streams

Both exit 1 on any difference.

Example output

(made-up timings)

MegaPark             Pres assets   812  old    1.90s  new    0.85s  IDENTICAL
MegaPark             Sim  assets   405  old    0.70s  new    0.31s  IDENTICAL
TOTAL old 2.6s new 1.2s

Requirements

Python 3.13 (standard library); the repository's setup modules (tools/asset_pipeline, tools/owned_game, the vendored map tools). compare_refpack.py needs the DLL from scripts\Build.ps1.