hdma with repcount 0 should disable hdma.

This commit is contained in:
Snesrev
2023-03-14 02:49:23 +01:00
parent d265a76f05
commit 907b38010c

View File

@@ -239,6 +239,10 @@ void dma_initHdma(Dma* dma) {
// load address, repCount, and indirect address if needed
dma->channel[i].tableAdr = dma->channel[i].aAdr;
dma->channel[i].repCount = snes_read(dma->snes, (dma->channel[i].aBank << 16) | dma->channel[i].tableAdr++);
if (dma->channel[i].repCount == 0) {
dma->channel[i].terminated = true;
continue;
}
dma->hdmaTimer += 8; // 8 cycle overhead for each active channel
if(dma->channel[i].indirect) {
dma->channel[i].size = snes_read(dma->snes, (dma->channel[i].aBank << 16) | dma->channel[i].tableAdr++);