From 896f4bd21c98ab294119a54bd22e6325261d1315 Mon Sep 17 00:00:00 2001 From: Happy Date: Thu, 21 Apr 2016 14:23:07 -0600 Subject: [PATCH] N64: Adjust SI timing . . . again. --- src/mame/machine/n64.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mame/machine/n64.cpp b/src/mame/machine/n64.cpp index b7968787d94..2b234497315 100644 --- a/src/mame/machine/n64.cpp +++ b/src/mame/machine/n64.cpp @@ -2089,6 +2089,11 @@ void n64_periphs::si_dma_tick() void n64_periphs::pif_dma(int direction) { + if(si_status & 1) + { + si_status |= 8; //DMA Error, overlapping request + return; // SI Busy, ignore request + } if (!DWORD_ALIGNED(si_dram_addr)) { fatalerror("pif_dma: si_dram_addr unaligned: %08X\n", si_dram_addr); @@ -2127,7 +2132,7 @@ void n64_periphs::pif_dma(int direction) } } si_status |= 1; - si_dma_timer->adjust(attotime::from_hz(10000)); + si_dma_timer->adjust(attotime::from_hz(50000)); } READ32_MEMBER( n64_periphs::si_reg_r )