Files
skate-3-rust-engine/docs/hails-additions/README.md
T
Hails a6d9512f99 Audio: native by default, console cadence, optimisations, review fixes, world foundations
- Native AEMS runtime is the default (`SKATE_AEMS=0` or `"interim": true` for the interim tables, kept).
- MixMap, eEQChain clear and Jitter on the console's 30 Hz cadence, frame-rate independent.
- Optimisation pass (render p50 210 -> 130 us, 0 allocations per block, byte-identical) and hardware FMA
  dispatch in the new skate-audio-fma crate (p50 -> ~55 us, byte-identical; skate-audio stays forbid(unsafe)).
- World emitter banks decoded ahead on a worker thread (no game-thread decode spikes).
- Session-review fixes: push sounds at the foot plant, push-foot plant/lift, bail body impacts, grind on/off.
- Foundations, inert until the engine has the systems: traffic and ped sounds, ped speech rules, NPC skaters'
  board sounds.
- Docs: doc 11 sections, doc 13 (the recompilation research hooks, reference only), PR plan.
2026-10-03 09:08:06 -06:00

3.3 KiB

Hails' additions

Changes made in the Hailey-Ross fork of SK8-ENGINE/skate-3-rust-engine, documented so upstream maintainers have the full context when reviewing a pull request: what broke, why, what changed, how it was verified, and what is still open.

Each document stands alone. File paths are relative to the repository root.

# Change Area Status
1 ISO extraction argument order Setup (Python) Superseded: upstream fixed it the same way (713fe70, 7ae67f2, 2026-10-02); dropped from PR A
2 Windows long paths during setup Setup (Python) Done; UAC prompt and frozen relaunch tested end to end (2026-10-02)
3 SDL3 gamepad input Game (Rust), build scripts, vendored sdl3-sys Done, verified in play with an Xbox Elite Series 2
4 Authored map spawns Asset pipeline (Python) Done, all 10 maps confirmed in play
5 Invisible collision volumes Game data loader (Rust) Done, all four affected maps confirmed in play
9 Water Game physics, camera and rendering (Rust), setup, diagnostics Matched to retail footage (RPCS3): shallow water solid, deep water floats, board floats, water camera + vignette, entry splash, canal water look matched, small bodies calmer
10 Sky shader validation test Game tests (Rust) Done; all six shader validation tests pass
11 Game audio Setup (Python, vgmstream), game audio (Rust) Work in progress (draft #32). Player cues tuned against retail traces; retail world audio done: .ems emitters, location-set one-shots (sirens; 1,859/1,859 retail match over 15 locations), zone ambience beds. Native AEMS runtime (crates/skate-audio: evaluator + voice graph) implemented behind SKATE_AEMS=1 for the world emitters; 234/235 PoC-oracle scripts identical, DSP kernels bit-exact; MixMap + granular rolling bed; player MixMap inputs and the first native player components (grind, wind/rattle, foot drag; wind level within 0.5 dB of retail); needs a listening check.
12 Board solver: 50 constraint iterations Game physics (Rust) Done; maps identical, water traces as expected; one asset-gated customiser test fails (open question)
13 Research hooks for the recompilation Research tooling (external: skate3recomp research-hooks branch) Published; reference and information gathering only (the recompilation is not a perfect copy of the console game)

Environment used for verification

  • Windows 11, Intel i7-14700KF, NVIDIA RTX 4080 SUPER (Vulkan).
  • Rust 1.98.1 (MSVC), Visual Studio 2026 C++ tools, Windows SDK 10.0.26100, LLVM 23.1.2, Python 3.13.15.
  • Skate 3 Xbox 360 disc image (103 files, 6,404,940,920 bytes).
  • Xbox Elite Series 2 controller over Bluetooth LE.

Conventions

  • Upstream behaviour is preserved unless a document says otherwise; where a behaviour changes on purpose (for example, a map's default spawn), the document lists the old and new values.
  • Project choices that are not dictated by retail data are called out as such, so maintainers can overrule them.