From d3aad1d6d527a06166806d38bd065ab1d7484d50 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sat, 26 Oct 2019 15:35:29 -0700 Subject: [PATCH] DIMAR only ignores bits 0-4, not the upper bits Based on a hardware test on a Wii. The alignment code was originally added in 743641965a2. --- Source/Core/Core/HW/DVD/DVDInterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index 5a797d0dd5..41ba2a8660 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -594,7 +594,7 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) // handle things like address alignment) and complex write on the DMA // control register that will trigger the DMA. mmio->Register(base | DI_DMA_ADDRESS_REGISTER, MMIO::DirectRead(&s_DIMAR), - MMIO::DirectWrite(&s_DIMAR, ~0xFC00001F)); + MMIO::DirectWrite(&s_DIMAR, ~0x1F)); mmio->Register(base | DI_DMA_LENGTH_REGISTER, MMIO::DirectRead(&s_DILENGTH), MMIO::DirectWrite(&s_DILENGTH, ~0x1F)); mmio->Register(base | DI_DMA_CONTROL_REGISTER, MMIO::DirectRead(&s_DICR.Hex),