drc: something works on arm64
[pcsx_rearmed.git] / libpcsxcore / psxdma.c
index 03ee563..cb84fbc 100644 (file)
@@ -122,7 +122,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;
 }