// // Generated By: dol2asm // Translation Unit: JASAramStream // #include "JSystem/JAudio2/JASAramStream.h" #include "dol2asm.h" #include "dolphin/types.h" // // Types: // struct JKRHeap {}; struct JKRExpandSwitch {}; struct JKRAram { /* 802D233C */ void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); }; struct JASTaskThread { /* 8028FB5C */ void sendCmdMsg(void (*)(void*), void const*, u32); /* 8028FC54 */ void sendCmdMsg(void (*)(void*), void*); }; struct JASOscillator { struct Data {}; }; template struct JASMemPool_MultiThreaded {}; /* JASMemPool_MultiThreaded */ struct JASMemPool_MultiThreaded__template2 { /* 802978DC */ void func_802978DC(void* _this); }; struct JASGenericMemPool { /* 80290848 */ JASGenericMemPool(); /* 80290860 */ ~JASGenericMemPool(); /* 80290948 */ void alloc(u32); }; struct JASDsp { struct TChannel {}; }; struct JASDriver { /* 8029C9E8 */ void getDacRate(); /* 8029E1C4 */ void rejectCallback(s32 (*)(void*), void*); /* 8029E274 */ void registerSubFrameCallback(s32 (*)(void*), void*); }; struct JASChannel { /* 8029A800 */ JASChannel(void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*); /* 8029AA60 */ void playForce(); /* 8029AAD0 */ void release(u16); /* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*); /* 8029AB98 */ void setMixConfig(u32, u16); }; struct JASAramStream { /* 8029631C */ void initSystem(u32, u32); /* 802963A8 */ JASAramStream(); /* 8029649C */ void init(u32, u32, void (*)(u32, JASAramStream*, void*), void*); /* 8029655C */ void prepare(s32, int); /* 80296618 */ void start(); /* 8029664C */ void stop(u16); /* 80296684 */ void pause(bool); /* 802966CC */ void cancel(); /* 80296710 */ void getBlockSamples() const; /* 8029673C */ void headerLoadTask(void*); /* 8029676C */ void firstLoadTask(void*); /* 80296848 */ void loadToAramTask(void*); /* 80296868 */ void finishTask(void*); /* 802968C8 */ void prepareFinishTask(void*); /* 80296920 */ void headerLoad(u32, int); /* 80296AE8 */ void load(); /* 80296D74 */ void channelProcCallback(void*); /* 80296D94 */ void dvdErrorCheck(void*); /* 80296DF0 */ void channelCallback(u32, JASChannel*, JASDsp::TChannel*, void*); /* 80296E2C */ void updateChannel(u32, JASChannel*, JASDsp::TChannel*); /* 802974AC */ void channelProc(); /* 80297658 */ void channelStart(); /* 80297870 */ void channelStop(u16); static u8 sLoadThread[4]; static u8 sReadBuffer[4]; static u8 sBlockSize[4]; static u8 sChannelMax[4]; }; // // Forward References: // extern "C" void initSystem__13JASAramStreamFUlUl(); extern "C" void __ct__13JASAramStreamFv(); extern "C" void init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv(); extern "C" void prepare__13JASAramStreamFli(); extern "C" void start__13JASAramStreamFv(); extern "C" void stop__13JASAramStreamFUs(); extern "C" void pause__13JASAramStreamFb(); extern "C" void cancel__13JASAramStreamFv(); extern "C" void getBlockSamples__13JASAramStreamCFv(); extern "C" void headerLoadTask__13JASAramStreamFPv(); extern "C" void firstLoadTask__13JASAramStreamFPv(); extern "C" void loadToAramTask__13JASAramStreamFPv(); extern "C" void finishTask__13JASAramStreamFPv(); extern "C" void prepareFinishTask__13JASAramStreamFPv(); extern "C" void headerLoad__13JASAramStreamFUli(); extern "C" void load__13JASAramStreamFv(); extern "C" void channelProcCallback__13JASAramStreamFPv(); extern "C" void dvdErrorCheck__13JASAramStreamFPv(); extern "C" void channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv(); extern "C" void updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel(); extern "C" void channelProc__13JASAramStreamFv(); extern "C" void channelStart__13JASAramStreamFv(); extern "C" void channelStop__13JASAramStreamFUs(); extern "C" void func_802978DC(void* _this); extern "C" u8 sLoadThread__13JASAramStream[4]; extern "C" u8 sReadBuffer__13JASAramStream[4]; extern "C" u8 sBlockSize__13JASAramStream[4]; extern "C" u8 sChannelMax__13JASAramStream[4]; // // External References: // extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl(); extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPv(); extern "C" void getThreadPointer__6JASDvdFv(); extern "C" void __ct__17JASGenericMemPoolFv(); extern "C" void __dt__17JASGenericMemPoolFv(); extern "C" void alloc__17JASGenericMemPoolFUl(); extern "C" void __ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv(); extern "C" void playForce__10JASChannelFv(); extern "C" void release__10JASChannelFUs(); extern "C" void setOscInit__10JASChannelFUlPCQ213JASOscillator4Data(); extern "C" void setMixConfig__10JASChannelFUlUs(); extern "C" void getDacRate__9JASDriverFv(); extern "C" void rejectCallback__9JASDriverFPFPv_lPv(); extern "C" void registerSubFrameCallback__9JASDriverFPFPv_lPv(); extern "C" void* __nwa__FUlP7JKRHeapi(); extern "C" void __dl__FPv(); extern "C" void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl(); extern "C" void OSDisableInterrupts(); extern "C" void OSRestoreInterrupts(); extern "C" void OSInitMessageQueue(); extern "C" void OSSendMessage(); extern "C" void OSReceiveMessage(); extern "C" void DVDFastOpen(); extern "C" void DVDReadPrio(); extern "C" void DVDGetDriveStatus(); extern "C" void __register_global_object(); extern "C" void _savegpr_19(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_19(); extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern u8 JASDram[4]; // // Declarations: // /* ############################################################################################## */ /* 80451250-80451254 000750 0004+00 6/6 0/0 0/0 .sbss sLoadThread__13JASAramStream */ u8 JASAramStream::sLoadThread[4]; /* 80451254-80451258 000754 0004+00 3/3 0/0 0/0 .sbss sReadBuffer__13JASAramStream */ u8 JASAramStream::sReadBuffer[4]; /* 80451258-8045125C 000758 0004+00 6/6 1/1 0/0 .sbss sBlockSize__13JASAramStream */ u8 JASAramStream::sBlockSize[4]; /* 8045125C-80451260 00075C 0004+00 1/1 0/0 0/0 .sbss sChannelMax__13JASAramStream */ u8 JASAramStream::sChannelMax[4]; /* 80451260-80451268 -00001 0008+00 8/8 4/4 0/0 .sbss None */ /* 80451260 0001+00 data_80451260 None */ /* 80451261 0001+00 data_80451261 None */ /* 80451262 0006+00 data_80451262 None */ extern u8 struct_80451260[8]; u8 struct_80451260[8]; /* 8029631C-802963A8 290C5C 008C+00 0/0 1/1 0/0 .text initSystem__13JASAramStreamFUlUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::initSystem(u32 param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/initSystem__13JASAramStreamFUlUl.s" } #pragma pop /* ############################################################################################## */ /* 80455610-80455614 003C10 0004+00 3/3 0/0 0/0 .sdata2 @390 */ SECTION_SDATA2 static u8 lit_390[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80455614-80455618 003C14 0004+00 2/2 0/0 0/0 .sdata2 @391 */ SECTION_SDATA2 static f32 lit_391 = 1.0f; /* 80455618-8045561C 003C18 0004+00 2/2 0/0 0/0 .sdata2 @392 */ SECTION_SDATA2 static f32 lit_392 = 0.5f; /* 802963A8-8029649C 290CE8 00F4+00 0/0 1/1 0/0 .text __ct__13JASAramStreamFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm JASAramStream::JASAramStream() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/__ct__13JASAramStreamFv.s" } #pragma pop /* 8029649C-8029655C 290DDC 00C0+00 0/0 1/1 0/0 .text * init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::init(u32 param_0, u32 param_1, void (*param_2)(u32, JASAramStream*, void*), void* param_3) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv.s" } #pragma pop /* 8029655C-80296618 290E9C 00BC+00 0/0 1/1 0/0 .text prepare__13JASAramStreamFli */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::prepare(s32 param_0, int param_1) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/prepare__13JASAramStreamFli.s" } #pragma pop /* 80296618-8029664C 290F58 0034+00 0/0 1/1 0/0 .text start__13JASAramStreamFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::start() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/start__13JASAramStreamFv.s" } #pragma pop /* 8029664C-80296684 290F8C 0038+00 0/0 1/1 0/0 .text stop__13JASAramStreamFUs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::stop(u16 param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/stop__13JASAramStreamFUs.s" } #pragma pop /* 80296684-802966CC 290FC4 0048+00 0/0 1/1 0/0 .text pause__13JASAramStreamFb */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::pause(bool param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/pause__13JASAramStreamFb.s" } #pragma pop /* 802966CC-80296710 29100C 0044+00 0/0 1/1 0/0 .text cancel__13JASAramStreamFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::cancel() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/cancel__13JASAramStreamFv.s" } #pragma pop /* 80296710-8029673C 291050 002C+00 4/4 0/0 0/0 .text getBlockSamples__13JASAramStreamCFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::getBlockSamples() const { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/getBlockSamples__13JASAramStreamCFv.s" } #pragma pop /* 8029673C-8029676C 29107C 0030+00 1/1 0/0 0/0 .text headerLoadTask__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::headerLoadTask(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/headerLoadTask__13JASAramStreamFPv.s" } #pragma pop /* 8029676C-80296848 2910AC 00DC+00 1/1 0/0 0/0 .text firstLoadTask__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::firstLoadTask(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/firstLoadTask__13JASAramStreamFPv.s" } #pragma pop /* 80296848-80296868 291188 0020+00 1/1 0/0 0/0 .text loadToAramTask__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::loadToAramTask(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/loadToAramTask__13JASAramStreamFPv.s" } #pragma pop /* 80296868-802968C8 2911A8 0060+00 2/2 0/0 0/0 .text finishTask__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::finishTask(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/finishTask__13JASAramStreamFPv.s" } #pragma pop /* 802968C8-80296920 291208 0058+00 1/1 0/0 0/0 .text prepareFinishTask__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::prepareFinishTask(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/prepareFinishTask__13JASAramStreamFPv.s" } #pragma pop /* ############################################################################################## */ /* 8045561C-80455620 003C1C 0004+00 1/1 0/0 0/0 .sdata2 @531 */ SECTION_SDATA2 static f32 lit_531 = 127.0f; /* 80455620-80455628 003C20 0008+00 3/3 0/0 0/0 .sdata2 @533 */ SECTION_SDATA2 static f64 lit_533 = 4503599627370496.0 /* cast u32 to float */; /* 80296920-80296AE8 291260 01C8+00 1/1 0/0 0/0 .text headerLoad__13JASAramStreamFUli */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::headerLoad(u32 param_0, int param_1) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/headerLoad__13JASAramStreamFUli.s" } #pragma pop /* 80296AE8-80296D74 291428 028C+00 2/2 0/0 0/0 .text load__13JASAramStreamFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::load() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/load__13JASAramStreamFv.s" } #pragma pop /* 80296D74-80296D94 2916B4 0020+00 2/2 0/0 0/0 .text channelProcCallback__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::channelProcCallback(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/channelProcCallback__13JASAramStreamFPv.s" } #pragma pop /* ############################################################################################## */ /* 803C7670-803C76A8 -00001 0034+04 1/1 0/0 0/0 .data @613 */ SECTION_DATA static void* lit_613[13 + 1 /* padding */] = { (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x34), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x48), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), (void*)(((char*)dvdErrorCheck__13JASAramStreamFPv) + 0x40), /* padding */ NULL, }; /* 80296D94-80296DF0 2916D4 005C+00 2/1 0/0 0/0 .text dvdErrorCheck__13JASAramStreamFPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::dvdErrorCheck(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/dvdErrorCheck__13JASAramStreamFPv.s" } #pragma pop /* 80296DF0-80296E2C 291730 003C+00 1/1 0/0 0/0 .text * channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::channelCallback(u32 param_0, JASChannel* param_1, JASDsp::TChannel* param_2, void* param_3) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv.s" } #pragma pop /* 80296E2C-802974AC 29176C 0680+00 1/1 0/0 0/0 .text * updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::updateChannel(u32 param_0, JASChannel* param_1, JASDsp::TChannel* param_2) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel.s" } #pragma pop /* 802974AC-80297658 291DEC 01AC+00 1/1 0/0 0/0 .text channelProc__13JASAramStreamFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::channelProc() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/channelProc__13JASAramStreamFv.s" } #pragma pop /* ############################################################################################## */ /* 8039B168-8039B174 0277C8 000C+00 1/0 0/0 0/0 .rodata OSC_RELEASE_TABLE */ SECTION_RODATA static u8 const OSC_RELEASE_TABLE[12] = { 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x8039B168, &OSC_RELEASE_TABLE); /* 8039B174-8039B190 -00001 0018+04 1/1 0/0 0/0 .rodata OSC_ENV */ SECTION_RODATA static void* const OSC_ENV[6 + 1 /* padding */] = { (void*)NULL, (void*)0x3F800000, (void*)NULL, (void*)&OSC_RELEASE_TABLE, (void*)0x3F800000, (void*)NULL, /* padding */ NULL, }; COMPILER_STRIP_GATE(0x8039B174, &OSC_ENV); /* 80431B28-80431B34 05E848 000C+00 1/1 0/0 0/0 .bss @792 */ static u8 lit_792[12]; /* 80431B34-80431B48 05E854 0010+04 1/1 4/4 0/0 .bss * memPool_$localstatic3$getMemPool___46JASPoolAllocObject_MultiThreaded<10JASChannel>Fv */ extern u8 data_80431B34[16 + 4 /* padding */]; u8 data_80431B34[16 + 4 /* padding */]; /* 80455628-80455630 003C28 0004+04 1/1 0/0 0/0 .sdata2 one$776 */ SECTION_SDATA2 static u8 one[4 + 4 /* padding */] = { 0x00, 0x00, 0x00, 0x01, /* padding */ 0x00, 0x00, 0x00, 0x00, }; /* 80297658-80297870 291F98 0218+00 1/1 0/0 0/0 .text channelStart__13JASAramStreamFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::channelStart() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/channelStart__13JASAramStreamFv.s" } #pragma pop /* 80297870-802978DC 2921B0 006C+00 1/1 0/0 0/0 .text channelStop__13JASAramStreamFUs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JASAramStream::channelStop(u16 param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/channelStop__13JASAramStreamFUs.s" } #pragma pop /* 802978DC-80297930 29221C 0054+00 1/1 5/5 0/0 .text * __dt__38JASMemPool_MultiThreaded<10JASChannel>Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off extern "C" asm void func_802978DC(void* _this) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/func_802978DC.s" } #pragma pop