// This should be much slower, like 12+ cycles/byte, it's like
// that because the CPU runs too fast and fifo is not emulated.
// See also set_dma_end().
// This should be much slower, like 12+ cycles/byte, it's like
// that because the CPU runs too fast and fifo is not emulated.
// See also set_dma_end().
psxCpu->Clear(madr, words_copy);
HW_DMA4_MADR = SWAPu32(madr + words_copy * 4);
psxCpu->Clear(madr, words_copy);
HW_DMA4_MADR = SWAPu32(madr + words_copy * 4);
// already 32-bit word size ((size * 4) / 4)
set_event(PSXINT_GPUDMA, words / 4);
return;
// already 32-bit word size ((size * 4) / 4)
set_event(PSXINT_GPUDMA, words / 4);
return;
// already 32-bit word size ((size * 4) / 4)
set_event(PSXINT_GPUDMA, words / 4);
return;
// already 32-bit word size ((size * 4) / 4)
set_event(PSXINT_GPUDMA, words / 4);
return;
HW_DMA2_MADR = SWAPu32(madr_next);
// Tekken 3 = use 1.0 only (not 1.5x)
// Einhander = parse linked list in pieces (todo)
// Rebel Assault 2 = parse linked list in pieces (todo)
HW_DMA2_MADR = SWAPu32(madr_next);
// Tekken 3 = use 1.0 only (not 1.5x)
// Einhander = parse linked list in pieces (todo)
// Rebel Assault 2 = parse linked list in pieces (todo)
- u32 size, madr_next = 0xffffff;
- size = GPU_dmaChain((u32 *)psxM, HW_DMA2_MADR & 0x1fffff, &madr_next);
+ u32 size, madr_next = 0xffffff, madr = SWAPu32(HW_DMA2_MADR);
+ size = GPU_dmaChain((u32 *)psxM, madr & 0x1fffff, &madr_next);