diff options
author | twinaphex | 2013-01-04 19:03:21 +0100 |
---|---|---|
committer | twinaphex | 2013-01-04 19:03:21 +0100 |
commit | ac7b2a33ddb2392582c50d29c772e9e99cd762c9 (patch) | |
tree | ab7b9fb3383c1f135b43abd62262b74fd838fe88 /plugins | |
parent | a9a3be15b649c633521b5a0143715d4ae901b790 (diff) | |
parent | 7ba3e79c025dfd41ba88bcbe7b330a1a7fd68551 (diff) | |
download | pcsx_rearmed-ac7b2a33ddb2392582c50d29c772e9e99cd762c9.tar.gz pcsx_rearmed-ac7b2a33ddb2392582c50d29c772e9e99cd762c9.tar.bz2 pcsx_rearmed-ac7b2a33ddb2392582c50d29c772e9e99cd762c9.zip |
Merge git://github.com/notaz/pcsx_rearmed
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/dfsound/spu.c | 3 | ||||
-rw-r--r-- | plugins/dfsound/xa.c | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index 2466569..9f91b8b 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -689,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 @@ -863,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; diff --git a/plugins/dfsound/xa.c b/plugins/dfsound/xa.c index 1c5425e..e58bca2 100644 --- a/plugins/dfsound/xa.c +++ b/plugins/dfsound/xa.c @@ -78,8 +78,9 @@ INLINE void MixXA(void) r = ((int)(short)(v >> 16) * iLeftXAVol) >> 15; SSumLR[ns++] += l; SSumLR[ns++] += r; - spuMem[cursor] = l; - spuMem[cursor + 0x400/2] = r; + + spuMem[cursor] = v; + spuMem[cursor + 0x400/2] = v >> 16; cursor = (cursor + 1) & 0x1ff; } XALastVal = v; @@ -94,8 +95,9 @@ INLINE void MixXA(void) r = ((int)(short)(v >> 16) * iLeftXAVol) >> 15; SSumLR[ns++] += l; SSumLR[ns++] += r; - spuMem[cursor] = l; - spuMem[cursor + 0x400/2] = r; + + spuMem[cursor] = v; + spuMem[cursor + 0x400/2] = v >> 16; cursor = (cursor + 1) & 0x1ff; } } |