Files
skate-3-rust-engine/docs/hails-additions
Hails b1d26230a8 Water rendering: extract the ocean animation table from default.xex
Water and ocean shaders need assets/private/ocean-pca.json, which setup
never created, so 52 water/ocean materials rendered static (or black).

- skate_data::xex: XEX2 unpacker (retail AES file key + CBC payload, LZX
  or basic decompression), no new dependencies
- skate_data::ocean_pca: locates cPCAWaterAnimationData's table in any
  build by its code addressing (disc build: 0x82FC3978; TU3: 0x830118D8)
- skate3rust --extract-ocean-pca <default.xex> <out.json>
- Setup environment group runs it (optional content); refreshes that group

In-play check of the rendered water still pending.
See docs/hails-additions/09-water.md.
2026-10-01 01:55:40 -06:00
..

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) Done, verified with a real ISO
2 Windows long paths during setup Setup (Python) Done; UAC path not exercised end to end
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 (Rust), diagnostics Water flag wired up (DownTown, University); awaiting in-play test

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.