aboutsummaryrefslogtreecommitdiff
path: root/src/SPU.cpp
diff options
context:
space:
mode:
authorNadia Holmquist Pedersen <nadia@nhp.sh>2020-06-03 13:54:28 +0200
committerNadia Holmquist Pedersen <nadia@nhp.sh>2020-06-03 13:54:28 +0200
commitf9f366e296a68be0aa2eb7bfd0552da31896a18c (patch)
treef52760d5505b84074a9c1b50b4fe16e40035ba06 /src/SPU.cpp
parentb746c0b7279d1f5b4bcfd02c115b09d583e9df4f (diff)
parentd6332f96f162849ad0dde2738cacd3fae6e76e5d (diff)
Merge remote-tracking branch 'remotes/upstream/master' into feature/qt-platform
# Conflicts: # src/frontend/qt_sdl/CMakeLists.txt # src/frontend/qt_sdl/Platform.cpp # src/frontend/qt_sdl/main.cpp
Diffstat (limited to 'src/SPU.cpp')
-rw-r--r--src/SPU.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/SPU.cpp b/src/SPU.cpp
index 710533e..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"
@@ -116,6 +117,9 @@ void Reset()
void Stop()
{
memset(OutputBuffer, 0, 2*OutputBufferSize*2);
+
+ OutputReadOffset = 0;
+ OutputWriteOffset = 0;
}
void DoSavestate(Savestate* file)
@@ -151,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;
@@ -213,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;
@@ -461,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;
@@ -496,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;