Skip to content

Stop stale race sound events from looping ​

The user confirmed that the effects preview contains the same screech heard during a race. The captured Rust race trace showed car sound slots 8 and 10 firing event numbers 21 and 22. Those records are absent from POD's FIX.MEG; the event table leaves them zero-filled. The original dispatcher starts sound 0 for either number. The sound bank identifies sound 0 as the looped tyre squeal (Criss2.RRR), while slots 9 and 11 fire events 23 and 24, whose stop records cannot stop a sound started by an event with no stop flag. These facts are recorded in docs/versions.md and checked against the player's POD files by pod-sound::tests::fix_meg_lacks_events_21_and_22.

The sound loader now remembers which event numbers have actual records. apps/unpod skips a car sound slot if its event record is missing. POD's engine group event 36 continues to follow each car's engine value. This is an intentional difference from the original's handling of the two empty entries; docs/DEVIATIONS.md records it.

cargo test --release --workspace, cargo fmt --all -- --check, and the deviations check pass. A fresh one lap autopilot race on Beltane reaches results and writes an effects stream. The new eight second preview is derived/sound/pod-no-squeal/effects-preview.wav. The full effects stream has the same duration as the earlier capture and differs in 97.87% of sample words after the stale loop is suppressed.

The next sound check is a fresh separated recording from POD, to compare the complete race mix and confirm the new preview by ear.

Prose CC0 1.0, code Apache 2.0. POD: Planet of Death is © Ubi Soft; none of its files are on this site.