From f4ab79a007fd87efe78d32785caaa0e806715d9b Mon Sep 17 00:00:00 2001 From: Nekokabu Date: Sun, 21 Jun 2015 23:51:37 +0900 Subject: [PATCH] Fix Jangou Simulation Mahjong Dou 64 freeze Fixed a read from over than ROM file. --- Source/Project64/N64 System/Mips/Dma.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Source/Project64/N64 System/Mips/Dma.cpp b/Source/Project64/N64 System/Mips/Dma.cpp index 9ab9ea30d..c82b1a6df 100644 --- a/Source/Project64/N64 System/Mips/Dma.cpp +++ b/Source/Project64/N64 System/Mips/Dma.cpp @@ -213,6 +213,18 @@ void CDMA::PI_DMA_WRITE() *(RDRAM+((g_Reg->PI_DRAM_ADDR_REG + i) ^ 3)) = *(ROM+((g_Reg->PI_CART_ADDR_REG + i) ^ 3)); } } + else if (g_Reg->PI_CART_ADDR_REG >= g_Rom->GetRomSize()) + { + DWORD cart = g_Reg->PI_CART_ADDR_REG - g_Rom->GetRomSize(); + while (cart >= g_Rom->GetRomSize()) + { + cart -= g_Rom->GetRomSize(); + } + for (i = 0; i < PI_WR_LEN_REG; i++) + { + *(RDRAM + ((g_Reg->PI_DRAM_ADDR_REG + i) ^ 3)) = *(ROM + ((cart + i) ^ 3)); + } + } else { DWORD Len;