diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-12 13:09:27 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-12 13:09:27 +0000 |
| commit | d9504fef70f8c9f371fdd210b1c38502aee6e097 (patch) | |
| tree | fe58e3ea21aeaf829e8d5bb2a208cb81a4ee4a54 /plugins | |
| parent | 720d4be596d3aa7529d9e97eacb744e90b4a8e3f (diff) | |
| download | pcsxr-d9504fef70f8c9f371fdd210b1c38502aee6e097.tar.gz | |
Patch 13831, Castlevania Chronicles fix (ckain);
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82818 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins')
| -rwxr-xr-x | plugins/dfsound/registers.c | 4 | ||||
| -rwxr-xr-x | plugins/dfsound/spu.c | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c index f8943cf2..f9051c4a 100755 --- a/plugins/dfsound/registers.c +++ b/plugins/dfsound/registers.c @@ -215,8 +215,8 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val) break; //-------------------------------------------------// case H_SPUdata: - // BIOS - allow dma 00 - Check_IRQ( spuAddr, 0 ); + // BIOS - allow dma 00 + Check_IRQ( spuAddr, 0 ); spuMem[spuAddr>>1] = val; spuAddr+=2; diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index 6d2564e4..5a28dafe 100755 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -732,9 +732,10 @@ static void *MAINThread(void *arg) //////////////////////////////////////////// irq check #if 1 - // ?? (-8) - if( Check_IRQ( (start-spuMemC)-8, 0 ) || - Check_IRQ( (start-spuMemC)-0, 0 ) ) + // Check channel/loop IRQs (e.g. Castlevania Chronicles) and at pos-8 for unknown reason + if( Check_IRQ( (s_chan[ch].pCurr)-spuMemC, 0 ) || + Check_IRQ( (start-spuMemC)-0, 0 ) || + Check_IRQ( (start-spuMemC)-8, 0 ) ) { #else if(irqCallback && (spuCtrl&0x40)) // some callback and irq active? @@ -747,7 +748,7 @@ static void *MAINThread(void *arg) #endif { s_chan[ch].iIrqDone=1; // -> debug flag - irqCallback(); // -> call main emu + //irqCallback(); // -> call main emu (checked & called on Check_IRQ) if(iSPUIRQWait) // -> option: wait after irq for main emu { |
