[DSP] Stubbing events (vol 1)

This commit is contained in:
wheremyfoodat 2023-04-24 23:42:49 +03:00
parent 0eeff3535f
commit 7f32c3860c
4 changed files with 15 additions and 0 deletions

View file

@ -191,4 +191,5 @@ public:
}
void sendGPUInterrupt(GPUInterrupt type) { serviceManager.requestGPUInterrupt(type); }
void signalDSPEvents() { serviceManager.signalDSPEvents(); }
};

View file

@ -93,4 +93,6 @@ public:
Stereo = 1,
Surround = 2
};
void signalEvents();
};

View file

@ -80,4 +80,6 @@ public:
void requestGPUInterrupt(GPUInterrupt type) { gsp_gpu.requestInterrupt(type); }
void setGSPSharedMem(u8* ptr) { gsp_gpu.setSharedMem(ptr); }
void setHIDSharedMem(u8* ptr) { hid.setSharedMem(ptr); }
void signalDSPEvents() { dsp.signalEvents(); }
};

View file

@ -215,4 +215,14 @@ void DSPService::invalidateDCache(u32 messagePointer) {
log("DSP::InvalidateDataCache (addr = %08X, size = %08X, process = %X)\n", address, size, process);
mem.write32(messagePointer, IPC::responseHeader(0x14, 1, 0));
mem.write32(messagePointer + 4, Result::Success);
}
void DSPService::signalEvents() {
for (const DSPEvent& e : pipeEvents) {
if (e.has_value()) { kernel.signalEvent(e.value()); }
}
if (semaphoreEvent.has_value()) { kernel.signalEvent(semaphoreEvent.value()); }
if (interrupt0.has_value()) { kernel.signalEvent(interrupt0.value()); }
if (interrupt1.has_value()) { kernel.signalEvent(interrupt1.value()); }
}