notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add cd swap functionality
[pcsx_rearmed.git]
/
plugins
/
dfsound
/
registers.c
diff --git
a/plugins/dfsound/registers.c
b/plugins/dfsound/registers.c
index
b684914
..
5ab519b
100644
(file)
--- a/
plugins/dfsound/registers.c
+++ b/
plugins/dfsound/registers.c
@@
-70,7
+70,8
@@
void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val)
break;
\r
//------------------------------------------------// start
\r
case 6:
\r
break;
\r
//------------------------------------------------// start
\r
case 6:
\r
- s_chan[ch].pStart=spuMemC+((unsigned long) val<<3);
\r
+ // Brain Dead 13 - align to 16 boundary
\r
+ s_chan[ch].pStart= spuMemC+(unsigned long)((val<<3)&~0xf);
\r
break;
\r
//------------------------------------------------// level with pre-calcs
\r
case 8:
\r
break;
\r
//------------------------------------------------// level with pre-calcs
\r
case 8:
\r
@@
-162,7
+163,7
@@
void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val)
//------------------------------------------------//
\r
case 14: // loop?
\r
//WaitForSingleObject(s_chan[ch].hMutex,2000); // -> no multithread fuckups
\r
//------------------------------------------------//
\r
case 14: // loop?
\r
//WaitForSingleObject(s_chan[ch].hMutex,2000); // -> no multithread fuckups
\r
- s_chan[ch].pLoop=spuMemC+((unsigned long)
val<<3
);
\r
+ s_chan[ch].pLoop=spuMemC+((unsigned long)
((val<<3)&~0xf)
);
\r
s_chan[ch].bIgnoreLoop=1;
\r
//ReleaseMutex(s_chan[ch].hMutex); // -> oki, on with the thread
\r
break;
\r
s_chan[ch].bIgnoreLoop=1;
\r
//ReleaseMutex(s_chan[ch].hMutex); // -> oki, on with the thread
\r
break;
\r
@@
-424,6
+425,13
@@
void SoundOn(int start,int end,unsigned short val) // SOUND ON PSX COMAND
{
\r
s_chan[ch].bIgnoreLoop=0;
\r
s_chan[ch].bNew=1;
\r
{
\r
s_chan[ch].bIgnoreLoop=0;
\r
s_chan[ch].bNew=1;
\r
+
\r
+ // do this here, not in StartSound
\r
+ // - fixes fussy timing issues
\r
+ s_chan[ch].bStop=0;
\r
+ s_chan[ch].bOn=1;
\r
+ s_chan[ch].pCurr=s_chan[ch].pStart;
\r
+
\r
dwNewChannel|=(1<<ch); // bitfield for faster testing
\r
}
\r
}
\r
dwNewChannel|=(1<<ch); // bitfield for faster testing
\r
}
\r
}
\r
@@
-441,6
+449,11
@@
void SoundOff(int start,int end,unsigned short val) // SOUND OFF PSX COMMAND
if(val&1) // && s_chan[i].bOn) mmm...
\r
{
\r
s_chan[ch].bStop=1;
\r
if(val&1) // && s_chan[i].bOn) mmm...
\r
{
\r
s_chan[ch].bStop=1;
\r
+
\r
+ // Jungle Book - Rhythm 'n Groove
\r
+ // - turns off buzzing sound (loop hangs)
\r
+ s_chan[ch].bNew=0;
\r
+ dwNewChannel &= ~(1<<ch);
\r
}
\r
}
\r
}
\r
}
\r
}
\r
}
\r