X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fpsxdma.c;h=df79b6d3f953a953266bae8ca880d8494f6e6468;hp=b7d6d6a07c6634eb5189dc30983f3834a6ea2abc;hb=b03e0caf5e153551cb71065ffaa4361b7f7e492b;hpb=57a757cedcc7928894aaf957565adfa95f1caab5 diff --git a/libpcsxcore/psxdma.c b/libpcsxcore/psxdma.c index b7d6d6a0..df79b6d3 100644 --- a/libpcsxcore/psxdma.c +++ b/libpcsxcore/psxdma.c @@ -140,7 +140,7 @@ void psxDma2(u32 madr, u32 bcr, u32 chcr) { // GPU psxCpu->Clear(madr, size); // already 32-bit word size ((size * 4) / 4) - GPUDMA_INT(size); + GPUDMA_INT(size / 4); return; case 0x01000201: // mem2vram @@ -159,7 +159,7 @@ void psxDma2(u32 madr, u32 bcr, u32 chcr) { // GPU GPU_writeDataMem(ptr, size); // already 32-bit word size ((size * 4) / 4) - GPUDMA_INT(size); + GPUDMA_INT(size / 4); return; case 0x01000401: // dma chain @@ -167,8 +167,9 @@ void psxDma2(u32 madr, u32 bcr, u32 chcr) { // GPU PSXDMA_LOG("*** DMA 2 - GPU dma chain *** %lx addr = %lx size = %lx\n", chcr, madr, bcr); #endif - size = gpuDmaChainSize(madr); - GPU_dmaChain((u32 *)psxM, madr & 0x1fffff); + size = GPU_dmaChain((u32 *)psxM, madr & 0x1fffff); + if ((int)size <= 0) + size = gpuDmaChainSize(madr); // Tekken 3 = use 1.0 only (not 1.5x)