JASDSPInterface OK, minor work on JASAiCtrl (#1908)

This commit is contained in:
hatal175
2023-09-04 16:41:17 +03:00
committed by GitHub
parent 0b6d8883c5
commit 081a557384
7 changed files with 394 additions and 697 deletions
@@ -1,94 +0,0 @@
lbl_8029C568:
/* 8029C568 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029C56C 7C 08 02 A6 */ mflr r0
/* 8029C570 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029C574 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8029C578 88 0D 8D 4C */ lbz r0, data_804512CC(r13)
/* 8029C57C 7C 00 07 75 */ extsb. r0, r0
/* 8029C580 40 82 00 14 */ bne lbl_8029C594
/* 8029C584 38 00 00 00 */ li r0, 0
/* 8029C588 90 0D 8D 48 */ stw r0, dacp(r13)
/* 8029C58C 38 00 00 01 */ li r0, 1
/* 8029C590 98 0D 8D 4C */ stb r0, data_804512CC(r13)
lbl_8029C594:
/* 8029C594 83 ED 8D 34 */ lwz r31, lastRspMadep__9JASDriver(r13)
/* 8029C598 38 00 00 00 */ li r0, 0
/* 8029C59C 90 0D 8D 34 */ stw r0, lastRspMadep__9JASDriver(r13)
/* 8029C5A0 28 1F 00 00 */ cmplwi r31, 0
/* 8029C5A4 41 82 00 14 */ beq lbl_8029C5B8
/* 8029C5A8 48 00 04 51 */ bl getDacSize__9JASDriverFv
/* 8029C5AC 54 64 08 3C */ slwi r4, r3, 1
/* 8029C5B0 7F E3 FB 78 */ mr r3, r31
/* 8029C5B4 48 0B 37 01 */ bl AIInitDMA
lbl_8029C5B8:
/* 8029C5B8 48 00 04 4D */ bl getFrameSamples__9JASDriverFv
/* 8029C5BC 7C 64 1B 78 */ mr r4, r3
/* 8029C5C0 80 0D 8D 48 */ lwz r0, dacp(r13)
/* 8029C5C4 54 00 10 3A */ slwi r0, r0, 2
/* 8029C5C8 3C 60 80 43 */ lis r3, sDmaDacBuffer__9JASDriver@ha /* 0x80431C58@ha */
/* 8029C5CC 38 63 1C 58 */ addi r3, r3, sDmaDacBuffer__9JASDriver@l /* 0x80431C58@l */
/* 8029C5D0 7C 63 00 2E */ lwzx r3, r3, r0
/* 8029C5D4 7C 9F 23 78 */ mr r31, r4
/* 8029C5D8 48 00 02 09 */ bl readDspBuffer__9JASDriverFPsUl
/* 8029C5DC 80 0D 8D 2C */ lwz r0, sDspStatus__9JASDriver(r13)
/* 8029C5E0 2C 00 00 00 */ cmpwi r0, 0
/* 8029C5E4 40 82 00 08 */ bne lbl_8029C5EC
/* 8029C5E8 48 00 03 19 */ bl finishDSPFrame__9JASDriverFv
lbl_8029C5EC:
/* 8029C5EC 80 AD 8D 3C */ lwz r5, extMixCallback__9JASDriver(r13)
/* 8029C5F0 28 05 00 00 */ cmplwi r5, 0
/* 8029C5F4 41 82 00 38 */ beq lbl_8029C62C
/* 8029C5F8 80 0D 8D 48 */ lwz r0, dacp(r13)
/* 8029C5FC 54 00 10 3A */ slwi r0, r0, 2
/* 8029C600 3C 60 80 43 */ lis r3, sDmaDacBuffer__9JASDriver@ha /* 0x80431C58@ha */
/* 8029C604 38 63 1C 58 */ addi r3, r3, sDmaDacBuffer__9JASDriver@l /* 0x80431C58@l */
/* 8029C608 7C 63 00 2E */ lwzx r3, r3, r0
/* 8029C60C 7F E4 FB 78 */ mr r4, r31
/* 8029C610 80 0D 82 2C */ lwz r0, sMixMode__9JASDriver(r13)
/* 8029C614 54 00 10 3A */ slwi r0, r0, 2
/* 8029C618 3C C0 80 3A */ lis r6, sMixFuncs__9JASDriver@ha /* 0x8039B2E0@ha */
/* 8029C61C 38 C6 B2 E0 */ addi r6, r6, sMixFuncs__9JASDriver@l /* 0x8039B2E0@l */
/* 8029C620 7D 86 00 2E */ lwzx r12, r6, r0
/* 8029C624 7D 89 03 A6 */ mtctr r12
/* 8029C628 4E 80 04 21 */ bctrl
lbl_8029C62C:
/* 8029C62C 48 0A 10 C9 */ bl OSDisableInterrupts
/* 8029C630 90 61 00 08 */ stw r3, 8(r1)
/* 8029C634 48 00 03 C5 */ bl getDacSize__9JASDriverFv
/* 8029C638 54 64 08 3C */ slwi r4, r3, 1
/* 8029C63C 80 0D 8D 48 */ lwz r0, dacp(r13)
/* 8029C640 54 00 10 3A */ slwi r0, r0, 2
/* 8029C644 3C 60 80 43 */ lis r3, sDmaDacBuffer__9JASDriver@ha /* 0x80431C58@ha */
/* 8029C648 38 63 1C 58 */ addi r3, r3, sDmaDacBuffer__9JASDriver@l /* 0x80431C58@l */
/* 8029C64C 7C 63 00 2E */ lwzx r3, r3, r0
/* 8029C650 48 09 EF 8D */ bl DCStoreRange
/* 8029C654 80 61 00 08 */ lwz r3, 8(r1)
/* 8029C658 48 0A 10 C5 */ bl OSRestoreInterrupts
/* 8029C65C 80 8D 8D 48 */ lwz r4, dacp(r13)
/* 8029C660 54 80 10 3A */ slwi r0, r4, 2
/* 8029C664 3C 60 80 43 */ lis r3, sDmaDacBuffer__9JASDriver@ha /* 0x80431C58@ha */
/* 8029C668 38 63 1C 58 */ addi r3, r3, sDmaDacBuffer__9JASDriver@l /* 0x80431C58@l */
/* 8029C66C 7C 03 00 2E */ lwzx r0, r3, r0
/* 8029C670 90 0D 8D 34 */ stw r0, lastRspMadep__9JASDriver(r13)
/* 8029C674 38 04 00 01 */ addi r0, r4, 1
/* 8029C678 90 0D 8D 48 */ stw r0, dacp(r13)
/* 8029C67C 28 00 00 03 */ cmplwi r0, 3
/* 8029C680 41 80 00 0C */ blt lbl_8029C68C
/* 8029C684 38 00 00 00 */ li r0, 0
/* 8029C688 90 0D 8D 48 */ stw r0, dacp(r13)
lbl_8029C68C:
/* 8029C68C 80 0D 8D 38 */ lwz r0, dacCallbackFunc__9JASDriver(r13)
/* 8029C690 28 00 00 00 */ cmplwi r0, 0
/* 8029C694 41 82 00 1C */ beq lbl_8029C6B0
/* 8029C698 48 00 03 6D */ bl getFrameSamples__9JASDriverFv
/* 8029C69C 7C 64 1B 78 */ mr r4, r3
/* 8029C6A0 80 6D 8D 34 */ lwz r3, lastRspMadep__9JASDriver(r13)
/* 8029C6A4 81 8D 8D 38 */ lwz r12, dacCallbackFunc__9JASDriver(r13)
/* 8029C6A8 7D 89 03 A6 */ mtctr r12
/* 8029C6AC 4E 80 04 21 */ bctrl
lbl_8029C6B0:
/* 8029C6B0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8029C6B4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029C6B8 7C 08 03 A6 */ mtlr r0
/* 8029C6BC 38 21 00 20 */ addi r1, r1, 0x20
/* 8029C6C0 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_8029DFB0:
/* 8029DFB0 38 80 00 00 */ li r4, 0
/* 8029DFB4 7C 85 23 78 */ mr r5, r4
/* 8029DFB8 38 00 00 08 */ li r0, 8
/* 8029DFBC 7C 09 03 A6 */ mtctr r0
lbl_8029DFC0:
/* 8029DFC0 38 04 01 20 */ addi r0, r4, 0x120
/* 8029DFC4 7C A3 03 2E */ sthx r5, r3, r0
/* 8029DFC8 38 84 00 02 */ addi r4, r4, 2
/* 8029DFCC 42 00 FF F4 */ bdnz lbl_8029DFC0
/* 8029DFD0 38 00 7F FF */ li r0, 0x7fff
/* 8029DFD4 B0 03 01 20 */ sth r0, 0x120(r3)
/* 8029DFD8 38 A0 00 00 */ li r5, 0
/* 8029DFDC 38 80 00 00 */ li r4, 0
/* 8029DFE0 38 00 00 08 */ li r0, 8
/* 8029DFE4 7C 09 03 A6 */ mtctr r0
lbl_8029DFE8:
/* 8029DFE8 38 04 01 48 */ addi r0, r4, 0x148
/* 8029DFEC 7C A3 03 2E */ sthx r5, r3, r0
/* 8029DFF0 38 84 00 02 */ addi r4, r4, 2
/* 8029DFF4 42 00 FF F4 */ bdnz lbl_8029DFE8
/* 8029DFF8 38 00 7F FF */ li r0, 0x7fff
/* 8029DFFC B0 03 01 48 */ sth r0, 0x148(r3)
/* 8029E000 38 00 00 00 */ li r0, 0
/* 8029E004 B0 03 01 50 */ sth r0, 0x150(r3)
/* 8029E008 4E 80 00 20 */ blr
@@ -1,28 +0,0 @@
lbl_8029DCE0:
/* 8029DCE0 38 A0 00 00 */ li r5, 0
/* 8029DCE4 90 A3 01 0C */ stw r5, 0x10c(r3)
/* 8029DCE8 B0 A3 00 60 */ sth r5, 0x60(r3)
/* 8029DCEC 38 00 00 01 */ li r0, 1
/* 8029DCF0 B0 03 00 08 */ sth r0, 8(r3)
/* 8029DCF4 B0 A3 00 66 */ sth r5, 0x66(r3)
/* 8029DCF8 7C A4 2B 78 */ mr r4, r5
/* 8029DCFC 38 00 00 04 */ li r0, 4
/* 8029DD00 7C 09 03 A6 */ mtctr r0
lbl_8029DD04:
/* 8029DD04 7C C3 22 14 */ add r6, r3, r4
/* 8029DD08 B0 A6 00 78 */ sth r5, 0x78(r6)
/* 8029DD0C B0 A6 00 A8 */ sth r5, 0xa8(r6)
/* 8029DD10 38 84 00 02 */ addi r4, r4, 2
/* 8029DD14 42 00 FF F0 */ bdnz lbl_8029DD04
/* 8029DD18 38 A0 00 00 */ li r5, 0
/* 8029DD1C 38 80 00 00 */ li r4, 0
/* 8029DD20 38 00 00 14 */ li r0, 0x14
/* 8029DD24 7C 09 03 A6 */ mtctr r0
lbl_8029DD28:
/* 8029DD28 38 04 00 80 */ addi r0, r4, 0x80
/* 8029DD2C 7C A3 03 2E */ sthx r5, r3, r0
/* 8029DD30 38 84 00 02 */ addi r4, r4, 2
/* 8029DD34 42 00 FF F4 */ bdnz lbl_8029DD28
/* 8029DD38 38 00 00 01 */ li r0, 1
/* 8029DD3C B0 03 00 00 */ sth r0, 0(r3)
/* 8029DD40 4E 80 00 20 */ blr
@@ -1,82 +0,0 @@
lbl_8029DB78:
/* 8029DB78 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029DB7C 7C 08 02 A6 */ mflr r0
/* 8029DB80 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029DB84 39 61 00 20 */ addi r11, r1, 0x20
/* 8029DB88 48 0C 46 51 */ bl _savegpr_28
/* 8029DB8C 7C 9D 23 78 */ mr r29, r4
/* 8029DB90 7C BE 2B 78 */ mr r30, r5
/* 8029DB94 80 8D 8D 6C */ lwz r4, FX_BUF__6JASDsp(r13)
/* 8029DB98 54 60 2C F4 */ rlwinm r0, r3, 5, 0x13, 0x1a
/* 8029DB9C 7F E4 02 14 */ add r31, r4, r0
/* 8029DBA0 48 09 FB 55 */ bl OSDisableInterrupts
/* 8029DBA4 90 61 00 08 */ stw r3, 8(r1)
/* 8029DBA8 38 00 00 00 */ li r0, 0
/* 8029DBAC B0 1F 00 00 */ sth r0, 0(r31)
/* 8029DBB0 28 1E 00 00 */ cmplwi r30, 0
/* 8029DBB4 41 82 00 54 */ beq lbl_8029DC08
/* 8029DBB8 A8 1E 00 04 */ lha r0, 4(r30)
/* 8029DBBC B0 1F 00 0A */ sth r0, 0xa(r31)
/* 8029DBC0 A0 1E 00 02 */ lhz r0, 2(r30)
/* 8029DBC4 54 00 08 3C */ slwi r0, r0, 1
/* 8029DBC8 3C 60 80 3C */ lis r3, SEND_TABLE__6JASDsp@ha /* 0x803C78F0@ha */
/* 8029DBCC 38 63 78 F0 */ addi r3, r3, SEND_TABLE__6JASDsp@l /* 0x803C78F0@l */
/* 8029DBD0 7C 03 02 2E */ lhzx r0, r3, r0
/* 8029DBD4 B0 1F 00 08 */ sth r0, 8(r31)
/* 8029DBD8 A8 1E 00 08 */ lha r0, 8(r30)
/* 8029DBDC B0 1F 00 0E */ sth r0, 0xe(r31)
/* 8029DBE0 A0 1E 00 06 */ lhz r0, 6(r30)
/* 8029DBE4 54 00 08 3C */ slwi r0, r0, 1
/* 8029DBE8 7C 03 02 2E */ lhzx r0, r3, r0
/* 8029DBEC B0 1F 00 0C */ sth r0, 0xc(r31)
/* 8029DBF0 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 8029DBF4 B0 1F 00 02 */ sth r0, 2(r31)
/* 8029DBF8 38 7F 00 10 */ addi r3, r31, 0x10
/* 8029DBFC 38 9E 00 10 */ addi r4, r30, 0x10
/* 8029DC00 38 A0 00 08 */ li r5, 8
/* 8029DC04 4B FF FE 45 */ bl setFilterTable__6JASDspFPsPsUl
lbl_8029DC08:
/* 8029DC08 28 1D 00 00 */ cmplwi r29, 0
/* 8029DC0C 41 82 00 34 */ beq lbl_8029DC40
/* 8029DC10 28 1E 00 00 */ cmplwi r30, 0
/* 8029DC14 41 82 00 2C */ beq lbl_8029DC40
/* 8029DC18 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 8029DC1C 1F 80 00 A0 */ mulli r28, r0, 0xa0
/* 8029DC20 93 BF 00 04 */ stw r29, 4(r31)
/* 8029DC24 7F A3 EB 78 */ mr r3, r29
/* 8029DC28 7F 84 E3 78 */ mr r4, r28
/* 8029DC2C 4B FF 18 55 */ bl bzero__7JASCalcFPvUl
/* 8029DC30 7F A3 EB 78 */ mr r3, r29
/* 8029DC34 7F 84 E3 78 */ mr r4, r28
/* 8029DC38 48 09 D9 75 */ bl DCFlushRange
/* 8029DC3C 48 00 00 18 */ b lbl_8029DC54
lbl_8029DC40:
/* 8029DC40 28 1E 00 00 */ cmplwi r30, 0
/* 8029DC44 41 82 00 0C */ beq lbl_8029DC50
/* 8029DC48 28 1D 00 00 */ cmplwi r29, 0
/* 8029DC4C 41 82 00 08 */ beq lbl_8029DC54
lbl_8029DC50:
/* 8029DC50 93 BF 00 04 */ stw r29, 4(r31)
lbl_8029DC54:
/* 8029DC54 80 1F 00 04 */ lwz r0, 4(r31)
/* 8029DC58 28 00 00 00 */ cmplwi r0, 0
/* 8029DC5C 41 82 00 10 */ beq lbl_8029DC6C
/* 8029DC60 88 1E 00 00 */ lbz r0, 0(r30)
/* 8029DC64 B0 1F 00 00 */ sth r0, 0(r31)
/* 8029DC68 48 00 00 0C */ b lbl_8029DC74
lbl_8029DC6C:
/* 8029DC6C 38 00 00 00 */ li r0, 0
/* 8029DC70 B0 1F 00 00 */ sth r0, 0(r31)
lbl_8029DC74:
/* 8029DC74 7F E3 FB 78 */ mr r3, r31
/* 8029DC78 38 80 00 20 */ li r4, 0x20
/* 8029DC7C 48 09 D9 31 */ bl DCFlushRange
/* 8029DC80 80 61 00 08 */ lwz r3, 8(r1)
/* 8029DC84 48 09 FA 99 */ bl OSRestoreInterrupts
/* 8029DC88 38 60 00 01 */ li r3, 1
/* 8029DC8C 39 61 00 20 */ addi r11, r1, 0x20
/* 8029DC90 48 0C 45 95 */ bl _restgpr_28
/* 8029DC94 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029DC98 7C 08 03 A6 */ mtlr r0
/* 8029DC9C 38 21 00 20 */ addi r1, r1, 0x20
/* 8029DCA0 4E 80 00 20 */ blr
+25 -4
View File
@@ -6,7 +6,28 @@
struct JASWaveInfo;
namespace JASDsp {
struct FxlineConfig_ {};
struct FxlineConfig_ {
u8 field_0x0;
u8 field_0x1;
u16 field_0x2;
s16 field_0x4;
u16 field_0x6;
s16 field_0x8;
u16 field_0xa;
u32 field_0xc;
s16 field_0x10[8];
};
typedef struct {
s16 field_0x0;
s16 field_0x2;
s16* field_0x4;
s16 field_0x8;
s16 field_0xa;
s16 field_0xc;
s16 field_0xe;
s16 field_0x10[8];
} FxBuf;
struct TChannel {
/* 8029DCA4 */ void init();
@@ -89,13 +110,13 @@ namespace JASDsp {
/* 8029DA6C */ void flushBuffer();
/* 8029DAA0 */ void invalChannelAll();
/* 8029DAC8 */ void initBuffer();
/* 8029DB78 */ void setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
/* 8029DB78 */ int setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
extern u8 const DSPADPCM_FILTER[64];
extern void* const DSPRES_FILTER[320];
extern u32 const DSPRES_FILTER[320];
extern u16 SEND_TABLE[12 + 12 /* padding */];
extern TChannel* CH_BUF;
extern void* FX_BUF;
extern FxBuf* FX_BUF;
extern f32 sDSPVolume;
};
+3 -21
View File
@@ -156,7 +156,7 @@ void JASDriver::initAI(void (*param_0)(void)) {
JASCalc::bzero(sDmaDacBuffer[i], size);
DCStoreRange(sDmaDacBuffer[i], size);
}
sDspDacBuffer = new(JASDram, 0) void*[data_804507A8];
sDspDacBuffer = new(JASDram, 0) s16*[data_804507A8];
for (int i = 0; i < data_804507A8; i++) {
sDspDacBuffer[i] = new(JASDram, 0x20) s16[getDacSize()];
JASCalc::bzero(sDspDacBuffer[i], size);
@@ -250,15 +250,7 @@ COMPILER_STRIP_GATE(0x8039B2E0, &JASDriver::sMixFuncs);
/* 804512C4-804512C8 0007C4 0004+00 2/1 0/0 0/0 .sbss sSubFrameCounter__9JASDriver */
u32 JASDriver::sSubFrameCounter;
/* 804512C8-804512CC 0007C8 0004+00 1/1 0/0 0/0 .sbss dacp$239 */
static u32 dacp;
/* 804512CC-804512D0 0007CC 0004+00 1/1 0/0 0/0 .sbss None */
static u8 data_804512CC[4];
/* 8029C568-8029C6C4 296EA8 015C+00 0/0 1/1 0/0 .text updateDac__9JASDriverFv */
// regswap
#ifdef NONMATCHING
void JASDriver::updateDac() {
static u32 dacp = 0;
s16* r30 = lastRspMadep;
@@ -266,7 +258,7 @@ void JASDriver::updateDac() {
if (r30) {
AIInitDMA((u32)r30, getDacSize() * 2);
}
u32 frameSamples = getFrameSamples();
s32 frameSamples = getFrameSamples();
readDspBuffer(sDmaDacBuffer[dacp], frameSamples);
if (sDspStatus == 0) {
finishDSPFrame();
@@ -287,16 +279,6 @@ void JASDriver::updateDac() {
dacCallbackFunc(lastRspMadep, getFrameSamples());
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDriver::updateDac() {
nofralloc
#include "asm/JSystem/JAudio2/JASAiCtrl/updateDac__9JASDriverFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -471,7 +453,7 @@ SECTION_DEAD static char const* const stringBase_8039B315 = "MONO-MIX";
void JASDriver::mixMonoTrack(s16* param_0, u32 param_1, MixCallback param_2) {
JASProbe::start(5, "MONO-MIX");
s16* r31 = param_2(param_1);
if (r31) {
if (r31 == NULL) {
return;
}
JASProbe::stop(5);
+366 -442
View File
@@ -9,8 +9,8 @@
#include "JSystem/JAudio2/JASWaveInfo.h"
#include "JSystem/JAudio2/dsptask.h"
#include "JSystem/JAudio2/osdsp_task.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dol2asm.h"
#include "dolphin/dsp/dsp.h"
#include "dolphin/os/OSCache.h"
@@ -18,67 +18,10 @@
// Forward References:
//
extern "C" void boot__6JASDspFPFPv_v();
extern "C" void releaseHalt__6JASDspFUl();
extern "C" void finishWork__6JASDspFUs();
extern "C" void syncFrame__6JASDspFUlUlUl();
extern "C" void setDSPMixerLevel__6JASDspFf();
extern "C" void getDSPMixerLevel__6JASDspFv();
extern "C" void getDSPHandle__6JASDspFi();
extern "C" void setFilterTable__6JASDspFPsPsUl();
extern "C" void flushBuffer__6JASDspFv();
extern "C" void invalChannelAll__6JASDspFv();
extern "C" void initBuffer__6JASDspFv();
extern "C" void setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_();
extern "C" void init__Q26JASDsp8TChannelFv();
extern "C" void playStart__Q26JASDsp8TChannelFv();
extern "C" void playStop__Q26JASDsp8TChannelFv();
extern "C" void replyFinishRequest__Q26JASDsp8TChannelFv();
extern "C" void forceStop__Q26JASDsp8TChannelFv();
extern "C" void isActive__Q26JASDsp8TChannelCFv();
extern "C" void isFinish__Q26JASDsp8TChannelCFv();
extern "C" void setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl();
extern "C" void setOscInfo__Q26JASDsp8TChannelFUl();
extern "C" void initAutoMixer__Q26JASDsp8TChannelFv();
extern "C" void setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc();
extern "C" void setPitch__Q26JASDsp8TChannelFUs();
extern "C" void setMixerInitVolume__Q26JASDsp8TChannelFUcs();
extern "C" void setMixerVolume__Q26JASDsp8TChannelFUcs();
extern "C" void setPauseFlag__Q26JASDsp8TChannelFUc();
extern "C" void flush__Q26JASDsp8TChannelFv();
extern "C" void initFilter__Q26JASDsp8TChannelFv();
extern "C" void setFilterMode__Q26JASDsp8TChannelFUs();
extern "C" void setIIRFilterParam__Q26JASDsp8TChannelFPs();
extern "C" void setFIR8FilterParam__Q26JASDsp8TChannelFPs();
extern "C" void setDistFilter__Q26JASDsp8TChannelFs();
extern "C" void setBusConnect__Q26JASDsp8TChannelFUcUc();
extern "C" void DSP_CreateMap2__FUl();
extern "C" u8 const DSPADPCM_FILTER__6JASDsp[64];
extern "C" void* const DSPRES_FILTER__6JASDsp[320];
extern "C" u8 SEND_TABLE__6JASDsp[24 + 24 /* padding */];
extern "C" u32 one__11JASWaveInfo[1 + 1 /* padding */];
extern "C" u8 CH_BUF__6JASDsp[4];
extern "C" u8 FX_BUF__6JASDsp[4];
extern "C" f32 sDSPVolume__6JASDsp;
//
// External References:
//
extern "C" void cDyl_InitAsyncIsDone__Fv();
extern "C" void bzero__7JASCalcFPvUl();
extern "C" void DSPReleaseHalt2__FUl();
extern "C" void DsetupTable__FUlUlUlUlUl();
extern "C" void DsetMixerLevel__Ff();
extern "C" void DspBoot__FPFPv_v();
extern "C" void DspFinishWork__FUs();
extern "C" void DsyncFrame2__FUlUlUl();
extern "C" void* __nwa__FUlP7JKRHeapi();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
@@ -88,7 +31,7 @@ extern "C" void _restgpr_29();
JASDsp::TChannel* JASDsp::CH_BUF;
/* 804512EC-804512F0 0007EC 0004+00 3/3 0/0 0/0 .sbss FX_BUF__6JASDsp */
void* JASDsp::FX_BUF;
JASDsp::FxBuf* JASDsp::FX_BUF;
/* 804512F0-804512F4 0007F0 0004+00 2/2 0/0 0/0 .sbss sDSPVolume__6JASDsp */
f32 JASDsp::sDSPVolume;
@@ -117,10 +60,6 @@ void JASDsp::syncFrame(u32 param_0, u32 param_1, u32 param_2) {
DsyncFrame2(param_0, param_1, param_2);
}
/* ############################################################################################## */
/* 80455748-8045574C 003D48 0004+00 1/1 0/0 0/0 .sdata2 @176 */
SECTION_SDATA2 static f32 lit_176 = 4.0f;
/* 8029DA04-8029DA30 298344 002C+00 0/0 1/1 0/0 .text setDSPMixerLevel__6JASDspFf */
void JASDsp::setDSPMixerLevel(f32 dsp_level) {
sDSPVolume = dsp_level;
@@ -148,7 +87,7 @@ void JASDsp::setFilterTable(s16* param_0, s16* param_1, u32 param_2) {
/* 8029DA6C-8029DAA0 2983AC 0034+00 1/1 0/0 0/0 .text flushBuffer__6JASDspFv */
void JASDsp::flushBuffer() {
DCFlushRange(CH_BUF, sizeof(TChannel) * 64);
DCFlushRange(FX_BUF, 0x80);
DCFlushRange(FX_BUF, sizeof(FxBuf) * 4);
}
/* 8029DAA0-8029DAC8 2983E0 0028+00 0/0 1/1 0/0 .text invalChannelAll__6JASDspFv */
@@ -158,345 +97,343 @@ void JASDsp::invalChannelAll() {
/* ############################################################################################## */
/* 8039B360-8039B3A0 0279C0 0040+00 1/1 0/0 0/0 .rodata DSPADPCM_FILTER__6JASDsp */
SECTION_RODATA u8 const JASDsp::DSPADPCM_FILTER[64] = {
u8 const JASDsp::DSPADPCM_FILTER[64] = {
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00,
0x10, 0x00, 0xF8, 0x00, 0x0E, 0x00, 0xFA, 0x00, 0x0C, 0x00, 0xFC, 0x00, 0x12, 0x00, 0xF6, 0x00,
0x10, 0x68, 0xF7, 0x38, 0x12, 0xC0, 0xF7, 0x04, 0x14, 0x00, 0xF4, 0x00, 0x08, 0x00, 0xF8, 0x00,
0x04, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x04, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x8039B360, &JASDsp::DSPADPCM_FILTER);
/* 8039B3A0-8039B8A0 -00001 0500+00 1/1 0/0 0/0 .rodata DSPRES_FILTER__6JASDsp */
SECTION_RODATA void* const JASDsp::DSPRES_FILTER[320] = {
(void*)0x0C3966AD,
(void*)0x0D46FFDF,
(void*)0x0B396696,
(void*)0x0E5FFFD8,
(void*)0x0A446669,
(void*)0x0F83FFD0,
(void*)0x095A6626,
(void*)0x10B4FFC8,
(void*)0x087D65CD,
(void*)0x11F0FFBF,
(void*)0x07AB655E,
(void*)0x1338FFB6,
(void*)0x06E464D9,
(void*)0x148CFFAC,
(void*)0x0628643F,
(void*)0x15EBFFA1,
(void*)0x0577638F,
(void*)0x1756FF96,
(void*)0x04D162CB,
(void*)0x18CBFF8A,
(void*)0x043561F3,
(void*)0x1A4CFF7E,
(void*)0x03A46106,
(void*)0x1BD7FF71,
(void*)0x031C6007,
(void*)0x1D6CFF64,
(void*)0x029F5EF5,
(void*)0x1F0BFF56,
(void*)0x022A5DD0,
(void*)0x20B3FF48,
(void*)0x01BE5C9A,
(void*)0x2264FF3A,
(void*)0x015B5B53,
(void*)0x241EFF2C,
(void*)0x010159FC,
(void*)0x25E0FF1E,
(void*)0x00AE5896,
(void*)0x27A9FF10,
(void*)0x00635720,
(void*)0x297AFF02,
(void*)0x001F559D,
(void*)0x2B50FEF4,
(void*)0xFFE2540D,
(void*)0x2D2CFEE8,
(void*)0xFFAC5270,
(void*)0x2F0DFEDB,
(void*)0xFF7C50C7,
(void*)0x30F3FED0,
(void*)0xFF534F14,
(void*)0x32DCFEC6,
(void*)0xFF2E4D57,
(void*)0x34C8FEBD,
(void*)0xFF0F4B91,
(void*)0x36B6FEB6,
(void*)0xFEF549C2,
(void*)0x38A5FEB0,
(void*)0xFEDF47ED,
(void*)0x3A95FEAC,
(void*)0xFECE4611,
(void*)0x3C85FEAB,
(void*)0xFEC04430,
(void*)0x3E74FEAC,
(void*)0xFEB6424A,
(void*)0x4060FEAF,
(void*)0xFEAF4060,
(void*)0x424AFEB6,
(void*)0xFEAC3E74,
(void*)0x4430FEC0,
(void*)0xFEAB3C85,
(void*)0x4611FECE,
(void*)0xFEAC3A95,
(void*)0x47EDFEDF,
(void*)0xFEB038A5,
(void*)0x49C2FEF5,
(void*)0xFEB636B6,
(void*)0x4B91FF0F,
(void*)0xFEBD34C8,
(void*)0x4D57FF2E,
(void*)0xFEC632DC,
(void*)0x4F14FF53,
(void*)0xFED030F3,
(void*)0x50C7FF7C,
(void*)0xFEDB2F0D,
(void*)0x5270FFAC,
(void*)0xFEE82D2C,
(void*)0x540DFFE2,
(void*)0xFEF42B50,
(void*)0x559D001F,
(void*)0xFF02297A,
(void*)0x57200063,
(void*)0xFF1027A9,
(void*)0x589600AE,
(void*)0xFF1E25E0,
(void*)0x59FC0101,
(void*)0xFF2C241E,
(void*)0x5B53015B,
(void*)0xFF3A2264,
(void*)0x5C9A01BE,
(void*)0xFF4820B3,
(void*)0x5DD0022A,
(void*)0xFF561F0B,
(void*)0x5EF5029F,
(void*)0xFF641D6C,
(void*)0x6007031C,
(void*)0xFF711BD7,
(void*)0x610603A4,
(void*)0xFF7E1A4C,
(void*)0x61F30435,
(void*)0xFF8A18CB,
(void*)0x62CB04D1,
(void*)0xFF961756,
(void*)0x638F0577,
(void*)0xFFA115EB,
(void*)0x643F0628,
(void*)0xFFAC148C,
(void*)0x64D906E4,
(void*)0xFFB61338,
(void*)0x655E07AB,
(void*)0xFFBF11F0,
(void*)0x65CD087D,
(void*)0xFFC810B4,
(void*)0x6626095A,
(void*)0xFFD00F83,
(void*)0x66690A44,
(void*)0xFFD80E5F,
(void*)0x66960B39,
(void*)0xFFDF0D46,
(void*)0x66AD0C39,
(void*)0x00000C8B,
(void*)0x18F82527,
(void*)0x30FB3C56,
(void*)0x471C5133,
(void*)0x5A8262F1,
(void*)0x6A6D70E2,
(void*)0x76417A7C,
(void*)0x7D897F61,
(void*)0x7FFF7F61,
(void*)0x7D897A7C,
(void*)0x764170E2,
(void*)0x6A6D62F1,
(void*)0x5A825133,
(void*)0x471C3C56,
(void*)0x30FB2527,
(void*)0x18F80C8B,
(void*)0x0000F375,
(void*)0xE708DAD9,
(void*)0xCF05C3AA,
(void*)0xB8E4AECD,
(void*)0xA57E9D0F,
(void*)0x95938F1E,
(void*)0x89BF8584,
(void*)0x8277809F,
(void*)0x8001809F,
(void*)0x82778584,
(void*)0x89BF8F1E,
(void*)0x95939D0F,
(void*)0xA57EAECD,
(void*)0xB8E4C3AA,
(void*)0xCF05DAD9,
(void*)0xE708F375,
(void*)0x000007FF,
(void*)0x0FFF17FF,
(void*)0x1FFF27FF,
(void*)0x2FFF37FF,
(void*)0x3FFF47FF,
(void*)0x4FFF57FF,
(void*)0x5FFF67FF,
(void*)0x6FFF77FF,
(void*)0x7FFF7800,
(void*)0x70006800,
(void*)0x60005800,
(void*)0x50004800,
(void*)0x40003800,
(void*)0x30002800,
(void*)0x20001800,
(void*)0x10000800,
(void*)0x0000F801,
(void*)0xF001E801,
(void*)0xE001D801,
(void*)0xD001C801,
(void*)0xC001B801,
(void*)0xB001A801,
(void*)0xA0019801,
(void*)0x90018801,
(void*)(((char*)cDyl_InitAsyncIsDone__Fv) + 0x68),
(void*)0x90009800,
(void*)0xA000A800,
(void*)0xB000B800,
(void*)0xC000C800,
(void*)0xD000D800,
(void*)0xE000E800,
(void*)0xF000F800,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)0x1FFF3FFF,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)0x1FFFC001,
(void*)0x00000192,
(void*)0x032404B6,
(void*)0x064707D9,
(void*)0x096A0AFB,
(void*)0x0C8B0E1B,
(void*)0x0FAB1139,
(void*)0x12C71455,
(void*)0x15E1176D,
(void*)0x18F81A82,
(void*)0x1C0B1D93,
(void*)0x1F19209F,
(void*)0x222323A6,
(void*)0x252726A7,
(void*)0x282629A3,
(void*)0x2B1F2C98,
(void*)0x2E102F87,
(void*)0x30FB326E,
(void*)0x33DE354D,
(void*)0x36B93824,
(void*)0x398C3AF2,
(void*)0x3C563DB7,
(void*)0x3F174073,
(void*)0x41CD4325,
(void*)0x447A45CC,
(void*)0x471C4869,
(void*)0x49B34AFB,
(void*)0x4C3F4D81,
(void*)0x4EBF4FFB,
(void*)0x51335268,
(void*)0x539A54C9,
(void*)0x55F5571D,
(void*)0x58425964,
(void*)0x5A825B9C,
(void*)0x5CB35DC7,
(void*)0x5ED75FE3,
(void*)0x60EB61F0,
(void*)0x62F163EE,
(void*)0x64E865DD,
(void*)0x66CF67BC,
(void*)0x68A6698B,
(void*)0x6A6D6B4A,
(void*)0x6C236CF8,
(void*)0x6DC96E96,
(void*)0x6F5E7022,
(void*)0x70E2719D,
(void*)0x72547307,
(void*)0x73B5745F,
(void*)0x750475A5,
(void*)0x764176D8,
(void*)0x776B77FA,
(void*)0x78847909,
(void*)0x79897A05,
(void*)0x7A7C7AEE,
(void*)0x7B5C7BC5,
(void*)0x7C297C88,
(void*)0x7CE37D39,
(void*)0x7D897DD5,
(void*)0x7E1D7E5F,
(void*)0x7E9C7ED5,
(void*)0x7F097F37,
(void*)0x7F617F86,
(void*)0x7FA67FC1,
(void*)0x7FD87FE9,
(void*)0x7FF57FFD,
u32 const JASDsp::DSPRES_FILTER[320] = {
0x0C3966AD,
0x0D46FFDF,
0x0B396696,
0x0E5FFFD8,
0x0A446669,
0x0F83FFD0,
0x095A6626,
0x10B4FFC8,
0x087D65CD,
0x11F0FFBF,
0x07AB655E,
0x1338FFB6,
0x06E464D9,
0x148CFFAC,
0x0628643F,
0x15EBFFA1,
0x0577638F,
0x1756FF96,
0x04D162CB,
0x18CBFF8A,
0x043561F3,
0x1A4CFF7E,
0x03A46106,
0x1BD7FF71,
0x031C6007,
0x1D6CFF64,
0x029F5EF5,
0x1F0BFF56,
0x022A5DD0,
0x20B3FF48,
0x01BE5C9A,
0x2264FF3A,
0x015B5B53,
0x241EFF2C,
0x010159FC,
0x25E0FF1E,
0x00AE5896,
0x27A9FF10,
0x00635720,
0x297AFF02,
0x001F559D,
0x2B50FEF4,
0xFFE2540D,
0x2D2CFEE8,
0xFFAC5270,
0x2F0DFEDB,
0xFF7C50C7,
0x30F3FED0,
0xFF534F14,
0x32DCFEC6,
0xFF2E4D57,
0x34C8FEBD,
0xFF0F4B91,
0x36B6FEB6,
0xFEF549C2,
0x38A5FEB0,
0xFEDF47ED,
0x3A95FEAC,
0xFECE4611,
0x3C85FEAB,
0xFEC04430,
0x3E74FEAC,
0xFEB6424A,
0x4060FEAF,
0xFEAF4060,
0x424AFEB6,
0xFEAC3E74,
0x4430FEC0,
0xFEAB3C85,
0x4611FECE,
0xFEAC3A95,
0x47EDFEDF,
0xFEB038A5,
0x49C2FEF5,
0xFEB636B6,
0x4B91FF0F,
0xFEBD34C8,
0x4D57FF2E,
0xFEC632DC,
0x4F14FF53,
0xFED030F3,
0x50C7FF7C,
0xFEDB2F0D,
0x5270FFAC,
0xFEE82D2C,
0x540DFFE2,
0xFEF42B50,
0x559D001F,
0xFF02297A,
0x57200063,
0xFF1027A9,
0x589600AE,
0xFF1E25E0,
0x59FC0101,
0xFF2C241E,
0x5B53015B,
0xFF3A2264,
0x5C9A01BE,
0xFF4820B3,
0x5DD0022A,
0xFF561F0B,
0x5EF5029F,
0xFF641D6C,
0x6007031C,
0xFF711BD7,
0x610603A4,
0xFF7E1A4C,
0x61F30435,
0xFF8A18CB,
0x62CB04D1,
0xFF961756,
0x638F0577,
0xFFA115EB,
0x643F0628,
0xFFAC148C,
0x64D906E4,
0xFFB61338,
0x655E07AB,
0xFFBF11F0,
0x65CD087D,
0xFFC810B4,
0x6626095A,
0xFFD00F83,
0x66690A44,
0xFFD80E5F,
0x66960B39,
0xFFDF0D46,
0x66AD0C39,
0x00000C8B,
0x18F82527,
0x30FB3C56,
0x471C5133,
0x5A8262F1,
0x6A6D70E2,
0x76417A7C,
0x7D897F61,
0x7FFF7F61,
0x7D897A7C,
0x764170E2,
0x6A6D62F1,
0x5A825133,
0x471C3C56,
0x30FB2527,
0x18F80C8B,
0x0000F375,
0xE708DAD9,
0xCF05C3AA,
0xB8E4AECD,
0xA57E9D0F,
0x95938F1E,
0x89BF8584,
0x8277809F,
0x8001809F,
0x82778584,
0x89BF8F1E,
0x95939D0F,
0xA57EAECD,
0xB8E4C3AA,
0xCF05DAD9,
0xE708F375,
0x000007FF,
0x0FFF17FF,
0x1FFF27FF,
0x2FFF37FF,
0x3FFF47FF,
0x4FFF57FF,
0x5FFF67FF,
0x6FFF77FF,
0x7FFF7800,
0x70006800,
0x60005800,
0x50004800,
0x40003800,
0x30002800,
0x20001800,
0x10000800,
0x0000F801,
0xF001E801,
0xE001D801,
0xD001C801,
0xC001B801,
0xB001A801,
0xA0019801,
0x90018801,
0x80018800,
0x90009800,
0xA000A800,
0xB000B800,
0xC000C800,
0xD000D800,
0xE000E800,
0xF000F800,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0x1FFF3FFF,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0x1FFFC001,
0x00000192,
0x032404B6,
0x064707D9,
0x096A0AFB,
0x0C8B0E1B,
0x0FAB1139,
0x12C71455,
0x15E1176D,
0x18F81A82,
0x1C0B1D93,
0x1F19209F,
0x222323A6,
0x252726A7,
0x282629A3,
0x2B1F2C98,
0x2E102F87,
0x30FB326E,
0x33DE354D,
0x36B93824,
0x398C3AF2,
0x3C563DB7,
0x3F174073,
0x41CD4325,
0x447A45CC,
0x471C4869,
0x49B34AFB,
0x4C3F4D81,
0x4EBF4FFB,
0x51335268,
0x539A54C9,
0x55F5571D,
0x58425964,
0x5A825B9C,
0x5CB35DC7,
0x5ED75FE3,
0x60EB61F0,
0x62F163EE,
0x64E865DD,
0x66CF67BC,
0x68A6698B,
0x6A6D6B4A,
0x6C236CF8,
0x6DC96E96,
0x6F5E7022,
0x70E2719D,
0x72547307,
0x73B5745F,
0x750475A5,
0x764176D8,
0x776B77FA,
0x78847909,
0x79897A05,
0x7A7C7AEE,
0x7B5C7BC5,
0x7C297C88,
0x7CE37D39,
0x7D897DD5,
0x7E1D7E5F,
0x7E9C7ED5,
0x7F097F37,
0x7F617F86,
0x7FA67FC1,
0x7FD87FE9,
0x7FF57FFD,
};
COMPILER_STRIP_GATE(0x8039B3A0, &JASDsp::DSPRES_FILTER);
/* 8029DAC8-8029DB78 298408 00B0+00 0/0 1/1 0/0 .text initBuffer__6JASDspFv */
void JASDsp::initBuffer() {
CH_BUF = new(JASDram, 0x20) TChannel[64];
FX_BUF = new(JASDram, 0x20) u8[0x80];
FX_BUF = new(JASDram, 0x20) FxBuf[4];
JASCalc::bzero(CH_BUF, 0x6000);
JASCalc::bzero(FX_BUF, 0x80);
JASCalc::bzero(FX_BUF, sizeof(FxBuf) * 4);
for (u8 i = 0; i < 4; i++) {
setFXLine(i, NULL, NULL);
}
@@ -506,7 +443,7 @@ void JASDsp::initBuffer() {
/* ############################################################################################## */
/* 803C78F0-803C7920 024A10 0018+18 1/1 0/0 0/0 .data SEND_TABLE__6JASDsp */
SECTION_DATA u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = {
u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = {
0x0D00,
0x0D60,
0x0DC8,
@@ -536,14 +473,35 @@ SECTION_DATA u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = {
/* 8029DB78-8029DCA4 2984B8 012C+00 1/1 1/1 0/0 .text
* setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_ */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDsp::setFXLine(u8 param_0, s16* param_1, JASDsp::FxlineConfig_* param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JASDSPInterface/setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_.s"
int JASDsp::setFXLine(u8 param_0, s16* param_1, JASDsp::FxlineConfig_* param_2) {
FxBuf* puVar3 = FX_BUF + param_0;
JASCriticalSection aJStack_20;
puVar3->field_0x0 = 0;
if (param_2 != NULL) {
puVar3->field_0xa = param_2->field_0x4;
puVar3->field_0x8 = SEND_TABLE[param_2->field_0x2];
puVar3->field_0xe = param_2->field_0x8;
puVar3->field_0xc = SEND_TABLE[param_2->field_0x6];
puVar3->field_0x2 = param_2->field_0xc;
setFilterTable(puVar3->field_0x10, param_2->field_0x10, 8);
}
if (param_1 != NULL && param_2 != NULL) {
u32 iVar1 = param_2->field_0xc * 0xa0;
puVar3->field_0x4 = param_1;
JASCalc::bzero(param_1, iVar1);
DCFlushRange(param_1, iVar1);
} else if (param_2 == NULL || param_1 != NULL) {
puVar3->field_0x4 = param_1;
}
if (puVar3->field_0x4 != NULL) {
puVar3->field_0x0 = param_2->field_0x0;
} else {
puVar3->field_0x0 = 0;
}
DCFlushRange(puVar3, sizeof(FxBuf));
return 1;
}
#pragma pop
/* 8029DCA4-8029DCE0 2985E4 003C+00 0/0 1/1 0/0 .text init__Q26JASDsp8TChannelFv */
void JASDsp::TChannel::init() {
@@ -557,32 +515,21 @@ void JASDsp::TChannel::init() {
}
/* 8029DCE0-8029DD44 298620 0064+00 0/0 1/1 0/0 .text playStart__Q26JASDsp8TChannelFv */
// regswap
#ifdef NONMATCHING
void JASDsp::TChannel::playStart() {
field_0x10c = 0;
field_0x060 = 0;
field_0x008 = 1;
field_0x066 = 0;
for (int i = 0; i < 4; i++) {
int i;
for (i = 0; i < 4; i++) {
field_0x078[i] = 0;
field_0x0a8[i] = 0;
}
for (int i = 0; i < 20; i++) {
for (i = 0; i < 20; i++) {
field_0x080[i] = 0;
}
mIsActive = 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDsp::TChannel::playStart() {
nofralloc
#include "asm/JSystem/JAudio2/JASDSPInterface/playStart__Q26JASDsp8TChannelFv.s"
}
#pragma pop
#endif
/* 8029DD44-8029DD50 298684 000C+00 0/0 1/1 0/0 .text playStop__Q26JASDsp8TChannelFv */
void JASDsp::TChannel::playStop() {
@@ -612,12 +559,12 @@ bool JASDsp::TChannel::isFinish() const {
/* ############################################################################################## */
/* 8045574C-80455754 003D4C 0008+00 1/1 0/0 0/0 .sdata2 COMP_BLOCKSAMPLES$331 */
SECTION_SDATA2 static u8 COMP_BLOCKSAMPLES[8] = {
static const u8 COMP_BLOCKSAMPLES[8] = {
0x10, 0x10, 0x01, 0x01, 0x01, 0x10, 0x10, 0x01,
};
/* 80455754-8045575C 003D54 0008+00 1/1 0/0 0/0 .sdata2 COMP_BLOCKBYTES$332 */
SECTION_SDATA2 static u8 COMP_BLOCKBYTES[8] = {
static const u8 COMP_BLOCKBYTES[8] = {
0x09, 0x05, 0x08, 0x10, 0x01, 0x01, 0x01, 0x01,
};
@@ -730,29 +677,18 @@ void JASDsp::TChannel::flush() {
}
/* 8029DFB0-8029E00C 2988F0 005C+00 1/1 0/0 0/0 .text initFilter__Q26JASDsp8TChannelFv */
// regswap
#ifdef NONMATCHING
void JASDsp::TChannel::initFilter() {
for (int i = 0; i < 8; i++) {
int i;
for (i = 0; i < 8; i++) {
fir_filter_params[i] = 0;
}
fir_filter_params[0] = 0x7fff;
for (int i = 0; i < 8; i++) {
for (i = 0; i < 8; i++) {
iir_filter_params[i] = 0;
}
iir_filter_params[0] = 0x7fff;
iir_filter_params[4] = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDsp::TChannel::initFilter() {
nofralloc
#include "asm/JSystem/JAudio2/JASDSPInterface/initFilter__Q26JASDsp8TChannelFv.s"
}
#pragma pop
#endif
/* 8029E00C-8029E044 29894C 0038+00 0/0 1/1 0/0 .text setFilterMode__Q26JASDsp8TChannelFUs */
void JASDsp::TChannel::setFilterMode(u16 param_0) {
@@ -788,11 +724,10 @@ void JASDsp::TChannel::setDistFilter(s16 param_0) {
/* ############################################################################################## */
/* 8039B8A0-8039B8B8 027F00 0018+00 1/1 0/0 0/0 .rodata connect_table$463 */
SECTION_RODATA static u16 const connect_table[12] = {
static u16 const connect_table[12] = {
0x0000, 0x0D00, 0x0D60, 0x0DC0, 0x0E20, 0x0E80,
0x0EE0, 0x0CA0, 0x0F40, 0x0FA0, 0x0B00, 0x09A0,
};
COMPILER_STRIP_GATE(0x8039B8A0, &connect_table);
/* 8029E09C-8029E0BC 2989DC 0020+00 0/0 1/1 0/0 .text setBusConnect__Q26JASDsp8TChannelFUcUc */
void JASDsp::TChannel::setBusConnect(u8 param_0, u8 param_1) {
@@ -816,19 +751,8 @@ u16 DSP_CreateMap2(u32 param_0) {
/* ############################################################################################## */
/* 804507B8-804507C0 000238 0004+04 0/0 5/5 0/0 .sdata one__11JASWaveInfo */
SECTION_SDATA u32 JASWaveInfo::one[1 + 1 /* padding */] = {
u32 JASWaveInfo::one[1 + 1 /* padding */] = {
0x00000001,
/* padding */
0x00000000,
};
/* 8045575C-80455760 -00001 0004+00 0/0 0/0 0/0 .sdata2 None */
#pragma push
#pragma force_active on
SECTION_SDATA2 static u8 pad_8045575C[4] = {
0x00,
0x00,
0x00,
0x00,
};
#pragma pop