diff options
author | Arisotura <thetotalworm@gmail.com> | 2020-06-02 00:39:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-02 00:39:09 +0200 |
commit | d6332f96f162849ad0dde2738cacd3fae6e76e5d (patch) | |
tree | 649c101a956cb3640140a95c1f380e5a2f89d51d /src/SPU.cpp | |
parent | 993048dd241b59747a7b30edfc861eedd4c005c9 (diff) | |
parent | 6c0ec5ebd8f991b6f8778afd98dc7a22f2b77d4d (diff) |
Merge pull request #638 from Arisotura/melonDSi
merge melonDSi
Diffstat (limited to 'src/SPU.cpp')
-rw-r--r-- | src/SPU.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/SPU.cpp b/src/SPU.cpp index 1ebfd4c..9f6b107 100644 --- a/src/SPU.cpp +++ b/src/SPU.cpp @@ -19,6 +19,7 @@ #include <stdio.h> #include <string.h> #include "NDS.h" +#include "DSi.h" #include "SPU.h" @@ -154,6 +155,11 @@ Channel::~Channel() void Channel::Reset() { + if (NDS::ConsoleType == 1) + BusRead32 = DSi::ARM7Read32; + else + BusRead32 = NDS::ARM7Read32; + SetCnt(0); SrcAddr = 0; TimerReload = 0; @@ -216,7 +222,7 @@ void Channel::FIFO_BufferData() for (u32 i = 0; i < burstlen; i += 4) { - FIFO[FIFOWritePos] = NDS::ARM7Read32(SrcAddr + FIFOReadOffset); + FIFO[FIFOWritePos] = BusRead32(SrcAddr + FIFOReadOffset); FIFOReadOffset += 4; FIFOWritePos++; FIFOWritePos &= 0x7; @@ -464,6 +470,11 @@ CaptureUnit::~CaptureUnit() void CaptureUnit::Reset() { + if (NDS::ConsoleType == 1) + BusWrite32 = DSi::ARM7Write32; + else + BusWrite32 = NDS::ARM7Write32; + SetCnt(0); DstAddr = 0; TimerReload = 0; @@ -499,7 +510,7 @@ void CaptureUnit::FIFO_FlushData() { for (u32 i = 0; i < 4; i++) { - NDS::ARM7Write32(DstAddr + FIFOWriteOffset, FIFO[FIFOReadPos]); + BusWrite32(DstAddr + FIFOWriteOffset, FIFO[FIFOReadPos]); FIFOReadPos++; FIFOReadPos &= 0x3; |