X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Fdma.c;h=7c164ac61e999ed572a7dd52ff64547be4a88ce1;hp=f92d06662422ae97e0a9eedff9f8e2af57d547df;hb=fb552464f06137102fd9ca69a05492265bbdcea7;hpb=f8edb5bc279ba09aa7bc762da51236fd368827b0 diff --git a/plugins/dfsound/dma.c b/plugins/dfsound/dma.c index f92d0666..7c164ac6 100644 --- a/plugins/dfsound/dma.c +++ b/plugins/dfsound/dma.c @@ -31,8 +31,6 @@ unsigned short CALLBACK SPUreadDMA(void) spuAddr+=2; if(spuAddr>0x7ffff) spuAddr=0; - iSpuAsyncWait=0; - return s; } @@ -50,8 +48,6 @@ void CALLBACK SPUreadDMAMem(unsigned short * pusPSXMem,int iSize) spuAddr+=2; // inc spu addr if(spuAddr>0x7ffff) spuAddr=0; // wrap } - - iSpuAsyncWait=0; } //////////////////////////////////////////////////////////////////////// @@ -72,8 +68,6 @@ void CALLBACK SPUwriteDMA(unsigned short val) spuAddr+=2; // inc spu addr if(spuAddr>0x7ffff) spuAddr=0; // wrap - - iSpuAsyncWait=0; } //////////////////////////////////////////////////////////////////////// @@ -83,15 +77,22 @@ void CALLBACK SPUwriteDMA(unsigned short val) void CALLBACK SPUwriteDMAMem(unsigned short * pusPSXMem,int iSize) { int i; + + had_dma = 1; + + if(spuAddr + iSize*2 < 0x80000) + { + memcpy(&spuMem[spuAddr>>1], pusPSXMem, iSize*2); + spuAddr += iSize*2; + return; + } for(i=0;i>1] = *pusPSXMem++; // spu addr got by writeregister spuAddr+=2; // inc spu addr - if(spuAddr>0x7ffff) spuAddr=0; // wrap + spuAddr&=0x7ffff; // wrap } - - iSpuAsyncWait=0; } ////////////////////////////////////////////////////////////////////////