diff options
| author | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2011-02-09 01:25:31 +0000 |
|---|---|---|
| committer | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2011-02-09 01:25:31 +0000 |
| commit | 843f236012496b60280f0f969171c956f8c59eed (patch) | |
| tree | 7982fb3a0e4602d467a611d00483fdc40eb0f51f /plugins | |
| parent | 8b5919b78254ec9cfbf6ddb2de414fab6864c813 (diff) | |
| download | pcsxr-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.c | 4 | ||||
| -rw-r--r-- | plugins/dfsound/spu.c | 36 |
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 ) { |
