X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fpsxdma.c;h=d7c4caecece9d5ecd3ffade8bb58146d0b3da729;hb=f02c57eacd43b7a27111181dabc97b2c5ead78c4;hp=df02b00f775e70a192bd21ebedad6a086911e1a3;hpb=7b68d92c6224ba23a3250688afbf55c35ab106e4;p=pcsx_rearmed.git diff --git a/libpcsxcore/psxdma.c b/libpcsxcore/psxdma.c index df02b00f..d7c4caec 100644 --- a/libpcsxcore/psxdma.c +++ b/libpcsxcore/psxdma.c @@ -76,11 +76,9 @@ void psxDma4(u32 madr, u32 bcr, u32 chcr) { // SPU SPUDMA_INT(words * 4); return; -#ifdef PSXDMA_LOG default: - PSXDMA_LOG("*** DMA4 SPU - unknown *** %x addr = %x size = %x\n", chcr, madr, bcr); + log_unhandled("*** DMA4 SPU - unknown *** %x addr = %x size = %x\n", chcr, madr, bcr); break; -#endif } HW_DMA4_CHCR &= SWAP32(~0x01000000); @@ -122,7 +120,8 @@ static u32 gpuDmaChainSize(u32 addr) { // next 32-bit pointer addr = psxMu32( addr & ~0x3 ) & 0xffffff; size += 1; - } while (addr != 0xffffff); + } while (!(addr & 0x800000)); // contrary to some documentation, the end-of-linked-list marker is not actually 0xFF'FFFF + // any pointer with bit 23 set will do. return size; } @@ -199,11 +198,9 @@ void psxDma2(u32 madr, u32 bcr, u32 chcr) { // GPU GPUDMA_INT(size); return; -#ifdef PSXDMA_LOG default: - PSXDMA_LOG("*** DMA 2 - GPU unknown *** %lx addr = %lx size = %lx\n", chcr, madr, bcr); + log_unhandled("*** DMA 2 - GPU unknown *** %x addr = %x size = %x\n", chcr, madr, bcr); break; -#endif } HW_DMA2_CHCR &= SWAP32(~0x01000000); @@ -252,12 +249,10 @@ void psxDma6(u32 madr, u32 bcr, u32 chcr) { GPUOTCDMA_INT(16); return; } -#ifdef PSXDMA_LOG else { // Unknown option - PSXDMA_LOG("*** DMA6 OT - unknown *** %x addr = %x size = %x\n", chcr, madr, bcr); + log_unhandled("*** DMA6 OT - unknown *** %x addr = %x size = %x\n", chcr, madr, bcr); } -#endif HW_DMA6_CHCR &= SWAP32(~0x01000000); DMA_INTERRUPT(6);