aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfsound/dma.c
diff options
context:
space:
mode:
authornotaz2014-12-18 23:43:08 +0200
committernotaz2014-12-20 02:57:25 +0200
commit650adfd2da779ba8855623362c2900583e22931e (patch)
treea21fcff316db41dc8661e02748a51bd4430f48f8 /plugins/dfsound/dma.c
parent2b30c1291db9d9801d51cf85f71f40fe54958898 (diff)
downloadpcsx_rearmed-650adfd2da779ba8855623362c2900583e22931e.tar.gz
pcsx_rearmed-650adfd2da779ba8855623362c2900583e22931e.tar.bz2
pcsx_rearmed-650adfd2da779ba8855623362c2900583e22931e.zip
spu: rework synchronization
Diffstat (limited to 'plugins/dfsound/dma.c')
-rw-r--r--plugins/dfsound/dma.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/dfsound/dma.c b/plugins/dfsound/dma.c
index 7c164ac..85b746c 100644
--- a/plugins/dfsound/dma.c
+++ b/plugins/dfsound/dma.c
@@ -38,10 +38,13 @@ unsigned short CALLBACK SPUreadDMA(void)
// READ DMA (many values)
////////////////////////////////////////////////////////////////////////
-void CALLBACK SPUreadDMAMem(unsigned short * pusPSXMem,int iSize)
+void CALLBACK SPUreadDMAMem(unsigned short *pusPSXMem, int iSize,
+ unsigned int cycles)
{
int i;
+ do_samples_if_needed(cycles);
+
for(i=0;i<iSize;i++)
{
*pusPSXMem++=spuMem[spuAddr>>1]; // spu addr got by writeregister
@@ -74,11 +77,12 @@ void CALLBACK SPUwriteDMA(unsigned short val)
// WRITE DMA (many values)
////////////////////////////////////////////////////////////////////////
-void CALLBACK SPUwriteDMAMem(unsigned short * pusPSXMem,int iSize)
+void CALLBACK SPUwriteDMAMem(unsigned short *pusPSXMem, int iSize,
+ unsigned int cycles)
{
int i;
- had_dma = 1;
+ do_samples_if_needed(cycles);
if(spuAddr + iSize*2 < 0x80000)
{