mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-07-09 17:25:18 -06:00
cellAudio: fix _mxr000 surmixer event-queue key constant
The "Dirty hack for sound" in AudioSetNotifyEventQueue() is gated on a named constant c_mxr000 that is supposed to equal the IPC key of the _mxr000 event queue created by the game's _cellsurMixerMain thread (0x8000cafe02460300, e.g. Virtua Fighter 5 FS / SEGA AM2 CRI titles). When the inline literal was refactored into the named constant in730badd37("cellAudio: Move and partially fix _mxr000 hack", 2023) a trailing hex digit was dropped: 0x8000cafe0246030 instead of 0x8000cafe02460300 (the value used by the original 2018 hack incc0d7c598). As a result `key == c_mxr000` never matches and lv2_event_queue::find(c_mxr000) looks up the wrong key, so the surmixer-queue serialization path is effectively dead for every _mxr000 CRI game. Restore the correct 16-digit key so the gate and lookup match the queue the game actually creates. Note: this corrects a real latent bug but does not by itself resolve the cellSurMixer null-deref in VF5FS (#17066), which is a separate, flaky CRI channel-strip init divergence. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2d1be09180
commit
9e2c41bd48
@ -1662,7 +1662,7 @@ error_code AudioSetNotifyEventQueue(ppu_thread& ppu, u64 key, u32 iFlags)
|
||||
lv2_sleep(20, &ppu);
|
||||
|
||||
// Dirty hack for sound: confirm the creation of _mxr000 event queue by _cellsurMixerMain thread
|
||||
constexpr u64 c_mxr000 = 0x8000cafe0246030;
|
||||
constexpr u64 c_mxr000 = 0x8000cafe02460300;
|
||||
|
||||
if (key == c_mxr000 || key == 0)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user