diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-12-09 16:52:31 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-09 14:52:31 -0700 |
| commit | 26f4c5a0fe3f55e4e3d8c49e304342c346e1b5bb (patch) | |
| tree | 5f4a06195642f811be19b9e436ee24447b00892f /src | |
| parent | cfded01caa7d70978e4d9e6806cd348755fc465a (diff) | |
JASAramStream OK (#2937)
Diffstat (limited to 'src')
| -rw-r--r-- | src/JSystem/JAudio2/JASAramStream.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/JSystem/JAudio2/JASAramStream.cpp b/src/JSystem/JAudio2/JASAramStream.cpp index 32cbf21603..878962671e 100644 --- a/src/JSystem/JAudio2/JASAramStream.cpp +++ b/src/JSystem/JAudio2/JASAramStream.cpp @@ -38,7 +38,6 @@ void JASAramStream::initSystem(u32 i_blockSize, u32 i_channelMax) { } } -// NONMATCHING missing load JASAramStream::JASAramStream() { field_0x0a8 = NULL; field_0x0ac = false; @@ -85,7 +84,6 @@ JASAramStream::JASAramStream() { } } -// NONMATCHING missing load void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, void* i_callbackData) { field_0x148 = param_0; field_0x14c = param_1; @@ -258,7 +256,6 @@ bool JASAramStream::headerLoad(u32 param_0, int param_1) { } -// NONMATCHING regalloc and one instruction swap bool JASAramStream::load() { { JASCriticalSection cs; @@ -293,7 +290,9 @@ bool JASAramStream::load() { u32 sp08 = field_0x148 + field_0x10c * sBlockSize; for (int i = 0; i < mChannelNum; i++) { (void)i; - if (!JKRMainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader), + // Fakematch? It seems the only way to get the bhead->field_0x4 load in the right order is + // with a pointer cast on its address in one of the two places it is read, but not both. + if (!JKRMainRamToAram(sReadBuffer + *(u32*)&bhead->field_0x4 * i + sizeof(BlockHeader), sp08 + sBlockSize * field_0x160 * i, bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) { JUT_WARN(522, "%s", "JKRMainRamToAram Failed"); @@ -363,7 +362,6 @@ void JASAramStream::channelCallback(u32 i_callbackType, JASChannel* i_channel, ((JASAramStream*)i_this)->updateChannel(i_callbackType, i_channel, i_dspChannel); } -// NONMATCHING missing extra loads of field_0x0c4 void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, JASDsp::TChannel* i_dspChannel) { u32 block_samples = getBlockSamples(); |
