diff --git a/UnleashedRecomp/apu/driver/xaudio_driver.cpp b/UnleashedRecomp/apu/driver/xaudio_driver.cpp index c305bf9..d1b1d52 100644 --- a/UnleashedRecomp/apu/driver/xaudio_driver.cpp +++ b/UnleashedRecomp/apu/driver/xaudio_driver.cpp @@ -1,16 +1,16 @@ #include #include "xaudio_driver.h" #include - #include #include #include #include +#include #define XAUDIO_DRIVER_KEY (uint32_t)('XAUD') PPCFunc* g_clientCallback{}; -DWORD g_clientCallbackParam{}; +DWORD g_clientCallbackParam{}; // pointer in guest memory DWORD g_driverThread{}; // TODO: Should use a counted ptr @@ -97,8 +97,12 @@ void XAudioInitializeSystem() void XAudioRegisterClient(PPCFunc* callback, uint32_t param) { + auto* pClientParam = static_cast(g_userHeap.Alloc(sizeof(param))); + ByteSwap(param); + *pClientParam = param; + g_clientCallbackParam = g_memory.MapVirtual(pClientParam); + g_clientCallback = callback; - g_clientCallbackParam = param; } void XAudioSubmitFrame(void* samples)