// // Generated By: dol2asm // Translation Unit: Pad // #include "dolphin/pad/Pad.h" #include "dol2asm.h" #include "dolphin/types.h" // // Forward References: // extern "C" static void UpdateOrigin(); extern "C" static void PADOriginCallback(); extern "C" static void PADOriginUpdateCallback(); extern "C" static void PADProbeCallback(); extern "C" static void PADTypeAndStatusCallback(); extern "C" static void PADReceiveCheckCallback(); extern "C" static void SPEC0_MakeStatus(); extern "C" static void SPEC1_MakeStatus(); extern "C" static void SPEC2_MakeStatus(); extern "C" static void OnReset(); extern "C" static void SamplingHandler(); extern "C" static void PADSetSamplingCallback(); extern "C" void __PADDisableRecalibration(); // // External References: // SECTION_INIT void memset(); extern "C" void OSRegisterVersion(); extern "C" void OSSetCurrentContext(); extern "C" void OSClearContext(); extern "C" void OSDisableInterrupts(); extern "C" void OSRestoreInterrupts(); extern "C" void OSRegisterResetFunction(); extern "C" void OSSetWirelessID(); extern "C" void OSGetTime(); extern "C" void SIBusy(); extern "C" void SIIsChanBusy(); extern "C" void SIRegisterPollingHandler(); extern "C" void SIUnregisterPollingHandler(); extern "C" void SIGetStatus(); extern "C" void SISetCommand(); extern "C" void SITransferCommands(); extern "C" void SIEnablePolling(); extern "C" void SIDisablePolling(); extern "C" void SIGetResponse(); extern "C" void SITransfer(); extern "C" void SIGetType(); extern "C" void SIGetTypeAsync(); extern "C" void SIRefreshSamplingRate(); extern "C" void __shr2i(); extern "C" extern u8 __PADFixBits[4 + 4 /* padding */]; // // Declarations: // /* ############################################################################################## */ /* 803D1B48-803D1B90 02EC68 0045+03 1/0 0/0 0/0 .data @1 */ SECTION_DATA static u8 lit_1[69 + 3 /* padding */] = { 0x3C, 0x3C, 0x20, 0x44, 0x6F, 0x6C, 0x70, 0x68, 0x69, 0x6E, 0x20, 0x53, 0x44, 0x4B, 0x20, 0x2D, 0x20, 0x50, 0x41, 0x44, 0x09, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x20, 0x62, 0x75, 0x69, 0x6C, 0x64, 0x3A, 0x20, 0x41, 0x70, 0x72, 0x20, 0x20, 0x35, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x30, 0x34, 0x3A, 0x31, 0x34, 0x3A, 0x34, 0x39, 0x20, 0x28, 0x30, 0x78, 0x32, 0x33, 0x30, 0x31, 0x29, 0x20, 0x3E, 0x3E, 0x00, /* padding */ 0x00, 0x00, 0x00, }; /* 8044CB70-8044CB80 079890 0010+00 3/3 0/0 0/0 .bss Type */ static u8 Type[16]; /* 8044CB80-8044CBB0 0798A0 0030+00 8/8 0/0 0/0 .bss Origin */ static u8 Origin[48]; /* 80450A20-80450A24 -00001 0004+00 1/1 0/0 0/0 .sdata __PADVersion */ SECTION_SDATA static void* __PADVersion = (void*)&lit_1; /* 80450A24-80450A28 0004A4 0004+00 7/7 0/0 0/0 .sdata ResettingChan */ SECTION_SDATA static u32 ResettingChan = 0x00000020; /* 80450A28-80450A2C 0004A8 0004+00 1/1 0/0 0/0 .sdata XPatchBits */ SECTION_SDATA static u32 XPatchBits = 0xF0000000; /* 80450A2C-80450A30 0004AC 0004+00 7/7 0/0 0/0 .sdata AnalogMode */ SECTION_SDATA static u32 AnalogMode = 0x00000300; /* 8034E2B4-8034E458 348BF4 01A4+00 2/2 0/0 0/0 .text UpdateOrigin */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void UpdateOrigin() { nofralloc #include "asm/dolphin/pad/Pad/UpdateOrigin.s" } #pragma pop /* ############################################################################################## */ /* 80451848-8045184C 000D48 0004+00 1/1 0/0 0/0 .sbss Initialized */ static u8 Initialized[4]; /* 8045184C-80451850 000D4C 0004+00 10/10 0/0 0/0 .sbss EnabledBits */ static u8 EnabledBits[4]; /* 80451850-80451854 000D50 0004+00 7/7 0/0 0/0 .sbss ResettingBits */ static u8 ResettingBits[4]; /* 8034E458-8034E51C 348D98 00C4+00 1/1 0/0 0/0 .text PADOriginCallback */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void PADOriginCallback() { nofralloc #include "asm/dolphin/pad/Pad/PADOriginCallback.s" } #pragma pop /* ############################################################################################## */ /* 80451854-80451858 000D54 0004+00 4/4 0/0 0/0 .sbss RecalibrateBits */ static u8 RecalibrateBits[4]; /* 80451858-8045185C 000D58 0004+00 7/7 0/0 0/0 .sbss WaitingBits */ static u8 WaitingBits[4]; /* 8045185C-80451860 000D5C 0004+00 6/6 0/0 0/0 .sbss CheckingBits */ static u8 CheckingBits[4]; /* 80451860-80451864 000D60 0004+00 6/6 0/0 0/0 .sbss PendingBits */ static u8 PendingBits[4]; /* 80451864-80451868 000D64 0004+00 6/6 0/0 0/0 .sbss BarrelBits */ static u8 BarrelBits[4]; /* 8034E51C-8034E5E8 348E5C 00CC+00 2/2 0/0 0/0 .text PADOriginUpdateCallback */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void PADOriginUpdateCallback() { nofralloc #include "asm/dolphin/pad/Pad/PADOriginUpdateCallback.s" } #pragma pop /* 8034E5E8-8034E6C0 348F28 00D8+00 1/1 0/0 0/0 .text PADProbeCallback */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void PADProbeCallback() { nofralloc #include "asm/dolphin/pad/Pad/PADProbeCallback.s" } #pragma pop /* ############################################################################################## */ /* 80450A30-80450A34 0004B0 0004+00 4/4 0/0 0/0 .sdata Spec */ SECTION_SDATA static u32 Spec = 0x00000005; /* 80450A34-80450A38 -00001 0004+00 2/2 0/0 0/0 .sdata MakeStatus */ SECTION_SDATA static void* MakeStatus = (void*)SPEC2_MakeStatus; /* 80450A38-80450A3C 0004B8 0004+00 3/3 0/0 0/0 .sdata CmdReadOrigin */ SECTION_SDATA static f32 CmdReadOrigin = 8.0f; /* 80450A3C-80450A40 0004BC 0004+00 1/1 0/0 0/0 .sdata CmdCalibrate */ SECTION_SDATA static f32 CmdCalibrate = 32.0f; /* 8034E6C0-8034E9EC 349000 032C+00 4/4 0/0 0/0 .text PADTypeAndStatusCallback */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void PADTypeAndStatusCallback() { nofralloc #include "asm/dolphin/pad/Pad/PADTypeAndStatusCallback.s" } #pragma pop /* 8034E9EC-8034EB2C 34932C 0140+00 1/1 0/0 0/0 .text PADReceiveCheckCallback */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void PADReceiveCheckCallback() { nofralloc #include "asm/dolphin/pad/Pad/PADReceiveCheckCallback.s" } #pragma pop /* 8034EB2C-8034EC3C 34946C 0110+00 2/2 1/1 0/0 .text PADReset */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm s32 PADReset(PADMask mask) { nofralloc #include "asm/dolphin/pad/Pad/PADReset.s" } #pragma pop /* 8034EC3C-8034ED50 34957C 0114+00 1/1 1/1 0/0 .text PADRecalibrate */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm s32 PADRecalibrate(PADMask mask) { nofralloc #include "asm/dolphin/pad/Pad/PADRecalibrate.s" } #pragma pop /* ############################################################################################## */ /* 803D1B90-803D1BA0 -00001 0010+00 1/1 0/0 0/0 .data ResetFunctionInfo */ SECTION_DATA static void* ResetFunctionInfo[4] = { (void*)OnReset, (void*)0x0000007F, (void*)NULL, (void*)NULL, }; /* 8044CBB0-8044CBC0 0798D0 0010+00 0/1 0/0 0/0 .bss CmdProbeDevice */ #pragma push #pragma force_active on static u8 CmdProbeDevice[16]; #pragma pop /* 80451868-8045186C 000D68 0004+00 3/3 0/0 0/0 .sbss SamplingCallback */ static u8 SamplingCallback[4]; /* 8045186C-80451870 000D6C 0004+00 1/1 0/0 0/0 .sbss recalibrated$388 */ static u8 recalibrated[4]; /* 80451870-80451878 000D70 0004+04 2/2 1/1 0/0 .sbss __PADSpec */ extern u8 __PADSpec[4 + 4 /* padding */]; u8 __PADSpec[4 + 4 /* padding */]; /* 8034ED50-8034EEA0 349690 0150+00 0/0 1/1 0/0 .text PADInit */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 PADInit() { nofralloc #include "asm/dolphin/pad/Pad/PADInit.s" } #pragma pop /* 8034EEA0-8034F1A0 3497E0 0300+00 0/0 1/1 0/0 .text PADRead */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 PADRead(PADStatus*) { nofralloc #include "asm/dolphin/pad/Pad/PADRead.s" } #pragma pop /* 8034F1A0-8034F258 349AE0 00B8+00 0/0 2/2 0/0 .text PADControlMotor */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void PADControlMotor(s32 channel, u32 command) { nofralloc #include "asm/dolphin/pad/Pad/PADControlMotor.s" } #pragma pop /* 8034F258-8034F2B8 349B98 0060+00 1/1 1/1 0/0 .text PADSetSpec */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void PADSetSpec(int spec) { nofralloc #include "asm/dolphin/pad/Pad/PADSetSpec.s" } #pragma pop /* 8034F2B8-8034F42C 349BF8 0174+00 1/1 0/0 0/0 .text SPEC0_MakeStatus */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void SPEC0_MakeStatus() { nofralloc #include "asm/dolphin/pad/Pad/SPEC0_MakeStatus.s" } #pragma pop /* 8034F42C-8034F5A0 349D6C 0174+00 1/1 0/0 0/0 .text SPEC1_MakeStatus */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void SPEC1_MakeStatus() { nofralloc #include "asm/dolphin/pad/Pad/SPEC1_MakeStatus.s" } #pragma pop /* 8034F5A0-8034FA10 349EE0 0470+00 2/1 0/0 0/0 .text SPEC2_MakeStatus */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void SPEC2_MakeStatus() { nofralloc #include "asm/dolphin/pad/Pad/SPEC2_MakeStatus.s" } #pragma pop /* 8034FA10-8034FA84 34A350 0074+00 0/0 2/2 0/0 .text PADSetAnalogMode */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void PADSetAnalogMode(u32 mode) { nofralloc #include "asm/dolphin/pad/Pad/PADSetAnalogMode.s" } #pragma pop /* 8034FA84-8034FB40 34A3C4 00BC+00 1/0 0/0 0/0 .text OnReset */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void OnReset() { nofralloc #include "asm/dolphin/pad/Pad/OnReset.s" } #pragma pop /* 8034FB40-8034FBA0 34A480 0060+00 1/1 0/0 0/0 .text SamplingHandler */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void SamplingHandler() { nofralloc #include "asm/dolphin/pad/Pad/SamplingHandler.s" } #pragma pop /* 8034FBA0-8034FBF4 34A4E0 0054+00 1/1 0/0 0/0 .text PADSetSamplingCallback */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void PADSetSamplingCallback() { nofralloc #include "asm/dolphin/pad/Pad/PADSetSamplingCallback.s" } #pragma pop /* 8034FBF4-8034FC70 34A534 007C+00 0/0 1/1 0/0 .text __PADDisableRecalibration */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void __PADDisableRecalibration() { nofralloc #include "asm/dolphin/pad/Pad/__PADDisableRecalibration.s" } #pragma pop