Files
skate-3-rust-engine/tools/world-stream-inspect
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
..

World stream inspection

Read the world districts' simulation streams (cSim_*.xsf, RW4 arenas) straight from your own disc's .big archives, without extracting anything to disk.

Script What it does
big_list.py Lists the entries of any .big archive (path and unpacked size), filtered by a regex, or extracts the matching entries with --out.
sim_types.py Per stream file of a district: the arena dictionary's entry types and counts. --find HEX64 searches every arena for a 64-bit value (both word orders) and names the entry that holds it; --dump TYPE hex-dumps the entries of one type.
volumes_dump.py Dumps every named volume (arena type 0x00EB0019, trigger / zone / teleport boxes): name, instance id, link id, bounds, base corners, plus each arena's collision meshes and other entry types. Writes JSON too.
arenas.py Shared helper: walks the arenas of a district (or any .big with *_Sim.xst + cSim_*.xsf, such as missions.big) and parses the arena dictionary.

The volume layout is documented at the top of volumes_dump.py.

Inputs

  • Your extracted disc: --disc DIR (the folder holding data/), default $SKATE3_DISC or .local/skate3-disc.
  • District ids with the prefix: DIST_SkateSchool, DIST_MegaPark, … (volumes_dump.py defaults to all ten).

Usage

py -3.13 tools/world-stream-inspect/big_list.py .local/skate3-disc/data/big/db.big skaterschema
py -3.13 tools/world-stream-inspect/big_list.py .local/skate3-disc/data/audio/audiofiles.big "\.bnk$" --out .local/bnk
py -3.13 tools/world-stream-inspect/sim_types.py DIST_SkateSchool
py -3.13 tools/world-stream-inspect/sim_types.py DIST_SkateSchool --dump 00eb0019
py -3.13 tools/world-stream-inspect/volumes_dump.py DIST_SkateSchool > volumes.txt

Example output

sim_types.py (made-up ids and counts):

cSim_0_0_high.xsf 0123456789abcdef 00080001:1 00080006:3 00eb000a:1
TOTAL 00080001:40 00080006:112 00eb000a:40 00eb0019:2

Requirements

Python 3.13 (standard library); the repository's tools/owned_game and the vendored map extraction tools (tools/vendor/university/.../skate3_streams.py, retail_collision_mesh.py).