X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fspu.c;h=90d2f4dbdc51f0cace3d14d0aadc18e4041e71a8;hb=HEAD;hp=a60c0478c57e63ddf5725f682998d6df79b13ab4;hpb=ef79bbde537d6b9c745a7d86cb9df1d04c35590d;p=pcsx_rearmed.git diff --git a/libpcsxcore/spu.c b/libpcsxcore/spu.c index a60c0478..56a1de3b 100644 --- a/libpcsxcore/spu.c +++ b/libpcsxcore/spu.c @@ -22,7 +22,26 @@ */ #include "spu.h" +#include "psxevents.h" -void CALLBACK SPUirq(void) { +void CALLBACK SPUirq(int cycles_after) { + if (cycles_after > 0) { + set_event(PSXINT_SPU_IRQ, cycles_after); + return; + } + + psxHu32ref(0x1070) |= SWAPu32(0x200); +} + +void spuDelayedIrq() { psxHu32ref(0x1070) |= SWAPu32(0x200); } + +// spuUpdate +void CALLBACK SPUschedule(unsigned int cycles_after) { + set_event(PSXINT_SPU_UPDATE, cycles_after); +} + +void spuUpdate() { + SPU_async(psxRegs.cycle, 0); +}