summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2011-02-09 01:25:31 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2011-02-09 01:25:31 +0000
commit843f236012496b60280f0f969171c956f8c59eed (patch)
tree7982fb3a0e4602d467a611d00483fdc40eb0f51f /plugins
parent8b5919b78254ec9cfbf6ddb2de414fab6864c813 (diff)
downloadpcsxr-843f236012496b60280f0f969171c956f8c59eed.tar.gz
dfsound
-spu.c, registers.c- fix Xenogears anima relic dungeons (exp gain) Disabled git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@63123 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dfsound/registers.c4
-rw-r--r--plugins/dfsound/spu.c36
2 files changed, 26 insertions, 14 deletions
diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c
index 8ca150f2..66cff9a2 100644
--- a/plugins/dfsound/registers.c
+++ b/plugins/dfsound/registers.c
@@ -424,7 +424,11 @@ void SoundOn(int start,int end,unsigned short val) // SOUND ON PSX COMAND
{
if((val&1) && s_chan[ch].pStart) // mmm... start has to be set before key on !?!
{
+#if 0
+ s_chan[ch].bLoopJump = 0;
+#else
s_chan[ch].bIgnoreLoop=0;
+#endif
s_chan[ch].bNew=1;
// do this here, not in StartSound
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c
index bfe78c95..9650f45c 100644
--- a/plugins/dfsound/spu.c
+++ b/plugins/dfsound/spu.c
@@ -620,8 +620,17 @@ static void *MAINThread(void *arg)
while(s_chan[ch].spos>=0x10000L)
{
if(s_chan[ch].iSBPos==28) // 28 reached?
- {
- start=s_chan[ch].pCurr; // set up the current pos
+ {
+#if 0
+ // Xenogears - Anima Relic dungeon (exp gain)
+ if( s_chan[ch].bLoopJump == 1 )
+ s_chan[ch].pCurr = s_chan[ch].pLoop;
+
+ s_chan[ch].bLoopJump = 0;
+#endif
+
+
+ start=s_chan[ch].pCurr; // set up the current pos
if (s_chan[ch].iSilent==1 || start == (unsigned char*)-1) // special "stop" sign
{
@@ -644,15 +653,6 @@ static void *MAINThread(void *arg)
shift_factor=predict_nr&0xf;
predict_nr >>= 4;
flags=(int)*start;start++;
-
-
-#if 0
- // Jungle Book - Rhythm 'n Groove - use external loop address
- // - fixes music player (+IRQ generate)
- if( flags&4 )
- s_chan[ch].pLoop=start-2;
-#endif
-
// -------------------------------------- //
@@ -709,7 +709,10 @@ static void *MAINThread(void *arg)
silence means no volume (ADSR keeps playing!!)
*/
-#if 1
+#if 0
+ if(flags&4)
+ s_chan[ch].pLoop=start-16;
+#else
// Jungle Book - Rhythm 'n Groove - use external loop address
// - fixes music player (+IRQ generate)
if((flags&4) && (s_chan[ch].bIgnoreLoop == 0))
@@ -726,8 +729,13 @@ static void *MAINThread(void *arg)
// ...?
//s_chan[ch].bIgnoreLoop = 0;
- // Xenogears - 7 = play missing sounds
- start = s_chan[ch].pLoop;
+ // Xenogears - 7 = play missing sounds
+#if 0
+ // set jump flag
+ pChannel->bLoopJump = 1;
+#else
+ start = s_chan[ch].pLoop;
+#endif
// silence = keep playing..?
if( (flags&2) == 0 ) {