From 856aaf44403aacad87045dbc4e5e3bdcbc43cf7e Mon Sep 17 00:00:00 2001 From: wheremyfoodat Date: Fri, 28 Apr 2023 01:53:43 +0300 Subject: [PATCH] [DSP] More event hax --- src/core/services/dsp.cpp | 1 + src/core/services/gsp_gpu.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/core/services/dsp.cpp b/src/core/services/dsp.cpp index f672dde2..e94fc92d 100644 --- a/src/core/services/dsp.cpp +++ b/src/core/services/dsp.cpp @@ -169,6 +169,7 @@ void DSPService::getSemaphoreEventHandle(u32 messagePointer) { mem.write32(messagePointer + 4, Result::Success); // TODO: Translation descriptor here? mem.write32(messagePointer + 12, semaphoreEvent.value()); // Semaphore event handle + kernel.signalEvent(semaphoreEvent.value()); } void DSPService::setSemaphore(u32 messagePointer) { diff --git a/src/core/services/gsp_gpu.cpp b/src/core/services/gsp_gpu.cpp index 44d6cfee..a9d38bd7 100644 --- a/src/core/services/gsp_gpu.cpp +++ b/src/core/services/gsp_gpu.cpp @@ -123,6 +123,10 @@ void GPUService::requestInterrupt(GPUInterrupt type) { if (interruptEvent.has_value()) { kernel.signalEvent(interruptEvent.value()); } + + // HACK: Signal DSP events on GPU interrupt for now until we have the DSP since games need DSP events + // Maybe there's a better alternative? + kernel.signalDSPEvents(); } void GPUService::writeHwRegs(u32 messagePointer) {