Files
Shipwright/soh
David Racine eb4142835e Fix custom music corruption past 256 sequences (#5989) (#6736)
The resolved replacement id (which can exceed 255) rode a single
per-player seqToPlay slot, written at enqueue but consumed
asynchronously on the audio thread; back-to-back starts and
priority-queue promotions clobbered it. sSeqFlags[0x6F] was also indexed
by raw id, reading out of bounds past the authentic range.

- func_800F9280 resolves the replacement and packs the full 16-bit id
  into the 0x82/0x85 play command; the handler reads opArgs & 0xFFFF.
  Audio_QueueSeqCmd no longer pre-writes the shared slot.
- SyncInitSeqPlayerInternal uses the command-carried id and bounds-checks
  it against the calloc'd sequence map (+0xF headroom for reserved-range
  skips).
- Route sSeqFlags reads through a bounded Audio_GetSeqFlags helper.
- Warn and skip gracefully past the 16-bit id limit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 03:36:25 +00:00
..
2024-02-01 23:11:31 -06:00
2026-06-04 02:34:50 +00:00
2025-02-04 10:48:41 +01:00
2024-10-31 07:42:27 -07:00
2022-07-14 20:47:48 -04:00
2022-07-25 21:11:53 -04:00
2025-04-01 22:33:38 -04:00