tp/libs/dolphin/pad/Pad.cpp

421 lines
11 KiB
C++

//
// 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