From 87b1b43e2827bf45f57fe6463cfbfb6b64c485a0 Mon Sep 17 00:00:00 2001 From: "SND\\shalma_cp" Date: Mon, 6 Dec 2010 23:17:10 +0000 Subject: dfsound - registers.c, spu.c - VAG flag fixes - fixes missing Xenogears sounds (menu, Franz library, doors, etc.) - fixes Jungle Book - Rhythm 'n Groove (music + play) - SoundOff prevents new channel from starting - fixes Jungle Book (buzzing loop hangs) git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@60742 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- plugins/dfsound/registers.c | 12 ++++++++++- plugins/dfsound/spu.c | 49 ++++++++++++++++++++++++++++++--------------- 2 files changed, 44 insertions(+), 17 deletions(-) (limited to 'plugins') diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c index 0a9485e2..a6d2869f 100644 --- a/plugins/dfsound/registers.c +++ b/plugins/dfsound/registers.c @@ -428,6 +428,11 @@ void SoundOn(int start,int end,unsigned short val) // SOUND ON PSX COMAND { s_chan[ch].bIgnoreLoop=0; s_chan[ch].bNew=1; + + // ..? + //s_chan[ch].bStop=0; + //s_chan[ch].pLoop=0; + dwNewChannel|=(1<bIgnoreLoop == 0)) + pChannel->pLoop=start-16; + + // Jungle Book - Rhythm 'n Groove - don't reset ignore status + // - fixes gameplay speed (IRQ hits) + //pChannel->bIgnoreLoop = 0; + + + if(flags&1) + { + start = pChannel->pLoop; + + // Xenogears - 7 = menu sound + other missing sounds + // TODO: SILENCE flag + DQ4 check (loop hangs?) + if( (flags&2) == 0 ) + start = (unsigned char *) -1; + + // stop check? + if( pChannel->pLoop == 0 ) + start = (unsigned char *) -1; + } + s_chan[ch].pCurr=start; // store values for next cycle s_chan[ch].s_1=s_1; -- cgit v1.2.3