X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fdfsound%2Fspu.c;h=9f91b8b284ca8986172c81b2ad2594e16db6db78;hb=97e07db913cf94c05b338a86a0525476472fddb2;hp=45a788692c25e05b9789ebc2b592f192ea67be28;hpb=07c13dfd11cbd45e96a5c21cd88ccd44601678ea;p=pcsx_rearmed.git diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index 45a78869..9f91b8b2 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -25,6 +25,7 @@ #include "externals.h" #include "registers.h" #include "out.h" +#include "arm_features.h" #ifdef ENABLE_NLS #include @@ -615,7 +616,7 @@ static int do_samples_noise(int ch, int ns, int ns_to) return ret; } -#ifdef __arm__ +#ifdef HAVE_ARMV5 // asm code; lv and rv must be 0-3fff extern void mix_chan(int start, int count, int lv, int rv); extern void mix_chan_rvb(int start, int count, int lv, int rv); @@ -688,7 +689,7 @@ static int do_samples(int forced_updates) int ch,d,silentch; int bIRQReturn=0; - while(1) + while(!bIRQReturn) { // ok, at the beginning we are looking if there is // enuff free place in the dsound/oss buffer to @@ -862,6 +863,7 @@ static int do_samples(int forced_updates) { //printf("decoder irq %x\n", decode_pos); do_irq(); + bIRQReturn = 1; } } decode_pos = (decode_pos + NSSIZE) & 0x1ff;