mirror of
				https://github.com/PrimeDecomp/prime.git
				synced 2025-10-25 22:50:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			726 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			726 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .include "macros.inc"
 | |
| 
 | |
| .section .data
 | |
| .balign 8
 | |
| 
 | |
| .global mButtonMapping
 | |
| mButtonMapping:
 | |
| 	# ROM: 0x3EC6A0
 | |
| 	.4byte 0x01000200
 | |
| 	.4byte 0x04000800
 | |
| 	.4byte 0x10000010
 | |
| 	.4byte 0x00080002
 | |
| 	.4byte 0x00040001
 | |
| 	.4byte 0x00400020
 | |
| 
 | |
| .global __vt__18CDolphinController
 | |
| __vt__18CDolphinController:
 | |
| 	# ROM: 0x3EC6B8
 | |
| 	.4byte 0
 | |
| 	.4byte 0
 | |
| 	.4byte __dt__18CDolphinControllerFv
 | |
| 	.4byte Poll__18CDolphinControllerFv
 | |
| 	.4byte GetDeviceCount__18CDolphinControllerCFv
 | |
| 	.4byte GetGamepadData__18CDolphinControllerFi
 | |
| 	.4byte GetControllerType__18CDolphinControllerCFi
 | |
| 	.4byte SetMotorState__18CDolphinControllerF7EIOPort11EMotorState
 | |
| 
 | |
| .section .sbss, "wa"
 | |
| .balign 8
 | |
| 
 | |
| .global lbl_805A95C8
 | |
| lbl_805A95C8:
 | |
| 	.skip 0x1
 | |
| .global lbl_805A95C9
 | |
| lbl_805A95C9:
 | |
| 	.skip 0x7
 | |
| 
 | |
| .section .text, "ax"
 | |
| 
 | |
| .global GetAnalogStickMaxValue__18CDolphinControllerCF8EJoyAxis
 | |
| GetAnalogStickMaxValue__18CDolphinControllerCF8EJoyAxis:
 | |
| /* 8034F060 0034BFC0  2C 04 00 02 */	cmpwi r4, 2
 | |
| /* 8034F064 0034BFC4  40 80 00 10 */	bge lbl_8034F074
 | |
| /* 8034F068 0034BFC8  2C 04 00 00 */	cmpwi r4, 0
 | |
| /* 8034F06C 0034BFCC  40 80 00 14 */	bge lbl_8034F080
 | |
| /* 8034F070 0034BFD0  48 00 00 20 */	b lbl_8034F090
 | |
| lbl_8034F074:
 | |
| /* 8034F074 0034BFD4  2C 04 00 04 */	cmpwi r4, 4
 | |
| /* 8034F078 0034BFD8  40 80 00 18 */	bge lbl_8034F090
 | |
| /* 8034F07C 0034BFDC  48 00 00 0C */	b lbl_8034F088
 | |
| lbl_8034F080:
 | |
| /* 8034F080 0034BFE0  C0 22 CC 70 */	lfs f1, lbl_805AE990@sda21(r2)
 | |
| /* 8034F084 0034BFE4  4E 80 00 20 */	blr
 | |
| lbl_8034F088:
 | |
| /* 8034F088 0034BFE8  C0 22 CC 74 */	lfs f1, lbl_805AE994@sda21(r2)
 | |
| /* 8034F08C 0034BFEC  4E 80 00 20 */	blr
 | |
| lbl_8034F090:
 | |
| /* 8034F090 0034BFF0  C0 22 CC 78 */	lfs f1, lbl_805AE998@sda21(r2)
 | |
| /* 8034F094 0034BFF4  4E 80 00 20 */	blr
 | |
| 
 | |
| .global SetMotorState__18CDolphinControllerF7EIOPort11EMotorState
 | |
| SetMotorState__18CDolphinControllerF7EIOPort11EMotorState:
 | |
| /* 8034F098 0034BFF8  94 21 FF F0 */	stwu r1, -0x10(r1)
 | |
| /* 8034F09C 0034BFFC  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F0A0 0034C000  90 01 00 14 */	stw r0, 0x14(r1)
 | |
| /* 8034F0A4 0034C004  54 80 10 3A */	slwi r0, r4, 2
 | |
| /* 8034F0A8 0034C008  7C 83 02 14 */	add r4, r3, r0
 | |
| /* 8034F0AC 0034C00C  38 63 01 94 */	addi r3, r3, 0x194
 | |
| /* 8034F0B0 0034C010  90 A4 01 94 */	stw r5, 0x194(r4)
 | |
| /* 8034F0B4 0034C014  48 03 7A 71 */	bl PADControlAllMotors
 | |
| /* 8034F0B8 0034C018  80 01 00 14 */	lwz r0, 0x14(r1)
 | |
| /* 8034F0BC 0034C01C  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F0C0 0034C020  38 21 00 10 */	addi r1, r1, 0x10
 | |
| /* 8034F0C4 0034C024  4E 80 00 20 */	blr
 | |
| 
 | |
| .global GetControllerType__18CDolphinControllerCFi
 | |
| GetControllerType__18CDolphinControllerCFi:
 | |
| /* 8034F0C8 0034C028  54 80 10 3A */	slwi r0, r4, 2
 | |
| /* 8034F0CC 0034C02C  7C 63 02 14 */	add r3, r3, r0
 | |
| /* 8034F0D0 0034C030  80 63 01 A4 */	lwz r3, 0x1a4(r3)
 | |
| /* 8034F0D4 0034C034  4E 80 00 20 */	blr
 | |
| 
 | |
| .global GetGamepadData__18CDolphinControllerFi
 | |
| GetGamepadData__18CDolphinControllerFi:
 | |
| /* 8034F0D8 0034C038  1C 84 00 58 */	mulli r4, r4, 0x58
 | |
| /* 8034F0DC 0034C03C  7C 60 1B 78 */	mr r0, r3
 | |
| /* 8034F0E0 0034C040  38 64 00 34 */	addi r3, r4, 0x34
 | |
| /* 8034F0E4 0034C044  7C 60 1A 14 */	add r3, r0, r3
 | |
| /* 8034F0E8 0034C048  4E 80 00 20 */	blr
 | |
| 
 | |
| .global GetDeviceCount__18CDolphinControllerCFv
 | |
| GetDeviceCount__18CDolphinControllerCFv:
 | |
| /* 8034F0EC 0034C04C  38 60 00 04 */	li r3, 4
 | |
| /* 8034F0F0 0034C050  4E 80 00 20 */	blr
 | |
| 
 | |
| .global ProcessAnalogButton__18CDolphinControllerFfR15CControllerAxis
 | |
| ProcessAnalogButton__18CDolphinControllerFfR15CControllerAxis:
 | |
| /* 8034F0F4 0034C054  C0 02 CC 7C */	lfs f0, lbl_805AE99C@sda21(r2)
 | |
| /* 8034F0F8 0034C058  C0 42 CC 54 */	lfs f2, kAbsoluteMaximum__11IController@sda21(r2)
 | |
| /* 8034F0FC 0034C05C  EC 61 00 32 */	fmuls f3, f1, f0
 | |
| /* 8034F100 0034C060  FC 03 10 40 */	fcmpo cr0, f3, f2
 | |
| /* 8034F104 0034C064  40 81 00 08 */	ble lbl_8034F10C
 | |
| /* 8034F108 0034C068  FC 60 10 90 */	fmr f3, f2
 | |
| lbl_8034F10C:
 | |
| /* 8034F10C 0034C06C  C0 04 00 04 */	lfs f0, 4(r4)
 | |
| /* 8034F110 0034C070  C0 22 CC 5C */	lfs f1, kRelativeMaximum__11IController@sda21(r2)
 | |
| /* 8034F114 0034C074  EC 03 00 28 */	fsubs f0, f3, f0
 | |
| /* 8034F118 0034C078  FC 00 08 40 */	fcmpo cr0, f0, f1
 | |
| /* 8034F11C 0034C07C  40 81 00 08 */	ble lbl_8034F124
 | |
| /* 8034F120 0034C080  FC 00 08 90 */	fmr f0, f1
 | |
| lbl_8034F124:
 | |
| /* 8034F124 0034C084  D0 04 00 00 */	stfs f0, 0(r4)
 | |
| /* 8034F128 0034C088  D0 64 00 04 */	stfs f3, 4(r4)
 | |
| /* 8034F12C 0034C08C  4E 80 00 20 */	blr
 | |
| 
 | |
| .global ProcessDigitalButton__18CDolphinControllerFiR17CControllerButtonUs
 | |
| ProcessDigitalButton__18CDolphinControllerFiR17CControllerButtonUs:
 | |
| /* 8034F130 0034C090  1C E4 00 0C */	mulli r7, r4, 0xc
 | |
| /* 8034F134 0034C094  54 C4 04 3E */	clrlwi r4, r6, 0x10
 | |
| /* 8034F138 0034C098  88 05 00 00 */	lbz r0, 0(r5)
 | |
| /* 8034F13C 0034C09C  7C 63 3A 14 */	add r3, r3, r7
 | |
| /* 8034F140 0034C0A0  A0 63 00 04 */	lhz r3, 4(r3)
 | |
| /* 8034F144 0034C0A4  7C 64 20 38 */	and r4, r3, r4
 | |
| /* 8034F148 0034C0A8  7C 64 00 D0 */	neg r3, r4
 | |
| /* 8034F14C 0034C0AC  7C 63 23 78 */	or r3, r3, r4
 | |
| /* 8034F150 0034C0B0  54 63 0F FE */	srwi r3, r3, 0x1f
 | |
| /* 8034F154 0034C0B4  7C 60 02 78 */	xor r0, r3, r0
 | |
| /* 8034F158 0034C0B8  7C 60 00 38 */	and r0, r3, r0
 | |
| /* 8034F15C 0034C0BC  7C 00 00 34 */	cntlzw r0, r0
 | |
| /* 8034F160 0034C0C0  54 00 DE 3E */	rlwinm r0, r0, 0x1b, 0x18, 0x1f
 | |
| /* 8034F164 0034C0C4  7C 00 00 34 */	cntlzw r0, r0
 | |
| /* 8034F168 0034C0C8  54 00 DE 3E */	rlwinm r0, r0, 0x1b, 0x18, 0x1f
 | |
| /* 8034F16C 0034C0CC  98 05 00 01 */	stb r0, 1(r5)
 | |
| /* 8034F170 0034C0D0  88 85 00 00 */	lbz r4, 0(r5)
 | |
| /* 8034F174 0034C0D4  7C 60 22 78 */	xor r0, r3, r4
 | |
| /* 8034F178 0034C0D8  7C 80 00 38 */	and r0, r4, r0
 | |
| /* 8034F17C 0034C0DC  7C 00 00 34 */	cntlzw r0, r0
 | |
| /* 8034F180 0034C0E0  54 00 DE 3E */	rlwinm r0, r0, 0x1b, 0x18, 0x1f
 | |
| /* 8034F184 0034C0E4  7C 00 00 34 */	cntlzw r0, r0
 | |
| /* 8034F188 0034C0E8  54 00 DE 3E */	rlwinm r0, r0, 0x1b, 0x18, 0x1f
 | |
| /* 8034F18C 0034C0EC  98 05 00 02 */	stb r0, 2(r5)
 | |
| /* 8034F190 0034C0F0  98 65 00 00 */	stb r3, 0(r5)
 | |
| /* 8034F194 0034C0F4  4E 80 00 20 */	blr
 | |
| 
 | |
| .global ProcessButtons__18CDolphinControllerFi
 | |
| ProcessButtons__18CDolphinControllerFi:
 | |
| /* 8034F198 0034C0F8  94 21 FF D0 */	stwu r1, -0x30(r1)
 | |
| /* 8034F19C 0034C0FC  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F1A0 0034C100  3C A0 80 3F */	lis r5, mButtonMapping@ha
 | |
| /* 8034F1A4 0034C104  90 01 00 34 */	stw r0, 0x34(r1)
 | |
| /* 8034F1A8 0034C108  BF 41 00 18 */	stmw r26, 0x18(r1)
 | |
| /* 8034F1AC 0034C10C  7C 9B 23 78 */	mr r27, r4
 | |
| /* 8034F1B0 0034C110  1C 9B 00 58 */	mulli r4, r27, 0x58
 | |
| /* 8034F1B4 0034C114  7C 7A 1B 78 */	mr r26, r3
 | |
| /* 8034F1B8 0034C118  3B C5 F6 A0 */	addi r30, r5, mButtonMapping@l
 | |
| /* 8034F1BC 0034C11C  3B 80 00 00 */	li r28, 0
 | |
| /* 8034F1C0 0034C120  3B A4 00 34 */	addi r29, r4, 0x34
 | |
| /* 8034F1C4 0034C124  3B E0 00 00 */	li r31, 0
 | |
| /* 8034F1C8 0034C128  7F BA EA 14 */	add r29, r26, r29
 | |
| lbl_8034F1CC:
 | |
| /* 8034F1CC 0034C12C  38 BF 00 34 */	addi r5, r31, 0x34
 | |
| /* 8034F1D0 0034C130  A0 DE 00 00 */	lhz r6, 0(r30)
 | |
| /* 8034F1D4 0034C134  7F 43 D3 78 */	mr r3, r26
 | |
| /* 8034F1D8 0034C138  7F 64 DB 78 */	mr r4, r27
 | |
| /* 8034F1DC 0034C13C  7C BD 2A 14 */	add r5, r29, r5
 | |
| /* 8034F1E0 0034C140  4B FF FF 51 */	bl ProcessDigitalButton__18CDolphinControllerFiR17CControllerButtonUs
 | |
| /* 8034F1E4 0034C144  3B 9C 00 01 */	addi r28, r28, 1
 | |
| /* 8034F1E8 0034C148  3B FF 00 03 */	addi r31, r31, 3
 | |
| /* 8034F1EC 0034C14C  2C 1C 00 0C */	cmpwi r28, 0xc
 | |
| /* 8034F1F0 0034C150  3B DE 00 02 */	addi r30, r30, 2
 | |
| /* 8034F1F4 0034C154  41 80 FF D8 */	blt lbl_8034F1CC
 | |
| /* 8034F1F8 0034C158  1F DB 00 0C */	mulli r30, r27, 0xc
 | |
| /* 8034F1FC 0034C15C  3C 00 43 30 */	lis r0, 0x4330
 | |
| /* 8034F200 0034C160  90 01 00 08 */	stw r0, 8(r1)
 | |
| /* 8034F204 0034C164  7F 43 D3 78 */	mr r3, r26
 | |
| /* 8034F208 0034C168  C8 22 CC 80 */	lfd f1, lbl_805AE9A0@sda21(r2)
 | |
| /* 8034F20C 0034C16C  38 9D 00 24 */	addi r4, r29, 0x24
 | |
| /* 8034F210 0034C170  7C BA F2 14 */	add r5, r26, r30
 | |
| /* 8034F214 0034C174  88 05 00 0A */	lbz r0, 0xa(r5)
 | |
| /* 8034F218 0034C178  90 01 00 0C */	stw r0, 0xc(r1)
 | |
| /* 8034F21C 0034C17C  C8 01 00 08 */	lfd f0, 8(r1)
 | |
| /* 8034F220 0034C180  EC 20 08 28 */	fsubs f1, f0, f1
 | |
| /* 8034F224 0034C184  4B FF FE D1 */	bl ProcessAnalogButton__18CDolphinControllerFfR15CControllerAxis
 | |
| /* 8034F228 0034C188  7C 7A F2 14 */	add r3, r26, r30
 | |
| /* 8034F22C 0034C18C  3C 00 43 30 */	lis r0, 0x4330
 | |
| /* 8034F230 0034C190  88 A3 00 0B */	lbz r5, 0xb(r3)
 | |
| /* 8034F234 0034C194  7F 43 D3 78 */	mr r3, r26
 | |
| /* 8034F238 0034C198  90 01 00 10 */	stw r0, 0x10(r1)
 | |
| /* 8034F23C 0034C19C  38 9D 00 2C */	addi r4, r29, 0x2c
 | |
| /* 8034F240 0034C1A0  C8 22 CC 80 */	lfd f1, lbl_805AE9A0@sda21(r2)
 | |
| /* 8034F244 0034C1A4  90 A1 00 14 */	stw r5, 0x14(r1)
 | |
| /* 8034F248 0034C1A8  C8 01 00 10 */	lfd f0, 0x10(r1)
 | |
| /* 8034F24C 0034C1AC  EC 20 08 28 */	fsubs f1, f0, f1
 | |
| /* 8034F250 0034C1B0  4B FF FE A5 */	bl ProcessAnalogButton__18CDolphinControllerFfR15CControllerAxis
 | |
| /* 8034F254 0034C1B4  BB 41 00 18 */	lmw r26, 0x18(r1)
 | |
| /* 8034F258 0034C1B8  80 01 00 34 */	lwz r0, 0x34(r1)
 | |
| /* 8034F25C 0034C1BC  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F260 0034C1C0  38 21 00 30 */	addi r1, r1, 0x30
 | |
| /* 8034F264 0034C1C4  4E 80 00 20 */	blr
 | |
| 
 | |
| .global ProcessAxis__18CDolphinControllerFi8EJoyAxis
 | |
| ProcessAxis__18CDolphinControllerFi8EJoyAxis:
 | |
| /* 8034F268 0034C1C8  94 21 FF E0 */	stwu r1, -0x20(r1)
 | |
| /* 8034F26C 0034C1CC  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F270 0034C1D0  90 01 00 24 */	stw r0, 0x24(r1)
 | |
| /* 8034F274 0034C1D4  93 E1 00 1C */	stw r31, 0x1c(r1)
 | |
| /* 8034F278 0034C1D8  7C BF 2B 78 */	mr r31, r5
 | |
| /* 8034F27C 0034C1DC  93 C1 00 18 */	stw r30, 0x18(r1)
 | |
| /* 8034F280 0034C1E0  7C 9E 23 78 */	mr r30, r4
 | |
| /* 8034F284 0034C1E4  7F E4 FB 78 */	mr r4, r31
 | |
| /* 8034F288 0034C1E8  93 A1 00 14 */	stw r29, 0x14(r1)
 | |
| /* 8034F28C 0034C1EC  7C 7D 1B 78 */	mr r29, r3
 | |
| /* 8034F290 0034C1F0  4B FF FD D1 */	bl GetAnalogStickMaxValue__18CDolphinControllerCF8EJoyAxis
 | |
| /* 8034F294 0034C1F4  C0 02 CC 88 */	lfs f0, lbl_805AE9A8@sda21(r2)
 | |
| /* 8034F298 0034C1F8  1C 7E 00 58 */	mulli r3, r30, 0x58
 | |
| /* 8034F29C 0034C1FC  57 E0 18 38 */	slwi r0, r31, 3
 | |
| /* 8034F2A0 0034C200  C0 62 CC 78 */	lfs f3, lbl_805AE998@sda21(r2)
 | |
| /* 8034F2A4 0034C204  EC 40 08 24 */	fdivs f2, f0, f1
 | |
| /* 8034F2A8 0034C208  2C 1F 00 02 */	cmpwi r31, 2
 | |
| /* 8034F2AC 0034C20C  38 63 00 34 */	addi r3, r3, 0x34
 | |
| /* 8034F2B0 0034C210  7C 63 02 14 */	add r3, r3, r0
 | |
| /* 8034F2B4 0034C214  38 83 00 04 */	addi r4, r3, 4
 | |
| /* 8034F2B8 0034C218  7C 9D 22 14 */	add r4, r29, r4
 | |
| /* 8034F2BC 0034C21C  41 82 00 84 */	beq lbl_8034F340
 | |
| /* 8034F2C0 0034C220  40 80 00 14 */	bge lbl_8034F2D4
 | |
| /* 8034F2C4 0034C224  2C 1F 00 00 */	cmpwi r31, 0
 | |
| /* 8034F2C8 0034C228  41 82 00 18 */	beq lbl_8034F2E0
 | |
| /* 8034F2CC 0034C22C  40 80 00 44 */	bge lbl_8034F310
 | |
| /* 8034F2D0 0034C230  48 00 00 CC */	b lbl_8034F39C
 | |
| lbl_8034F2D4:
 | |
| /* 8034F2D4 0034C234  2C 1F 00 04 */	cmpwi r31, 4
 | |
| /* 8034F2D8 0034C238  40 80 00 C4 */	bge lbl_8034F39C
 | |
| /* 8034F2DC 0034C23C  48 00 00 94 */	b lbl_8034F370
 | |
| lbl_8034F2E0:
 | |
| /* 8034F2E0 0034C240  1C 7E 00 0C */	mulli r3, r30, 0xc
 | |
| /* 8034F2E4 0034C244  3C 00 43 30 */	lis r0, 0x4330
 | |
| /* 8034F2E8 0034C248  90 01 00 08 */	stw r0, 8(r1)
 | |
| /* 8034F2EC 0034C24C  C8 22 CC 90 */	lfd f1, lbl_805AE9B0@sda21(r2)
 | |
| /* 8034F2F0 0034C250  7C 7D 1A 14 */	add r3, r29, r3
 | |
| /* 8034F2F4 0034C254  88 03 00 06 */	lbz r0, 6(r3)
 | |
| /* 8034F2F8 0034C258  7C 00 07 74 */	extsb r0, r0
 | |
| /* 8034F2FC 0034C25C  6C 00 80 00 */	xoris r0, r0, 0x8000
 | |
| /* 8034F300 0034C260  90 01 00 0C */	stw r0, 0xc(r1)
 | |
| /* 8034F304 0034C264  C8 01 00 08 */	lfd f0, 8(r1)
 | |
| /* 8034F308 0034C268  EC 60 08 28 */	fsubs f3, f0, f1
 | |
| /* 8034F30C 0034C26C  48 00 00 90 */	b lbl_8034F39C
 | |
| lbl_8034F310:
 | |
| /* 8034F310 0034C270  1C 7E 00 0C */	mulli r3, r30, 0xc
 | |
| /* 8034F314 0034C274  3C 00 43 30 */	lis r0, 0x4330
 | |
| /* 8034F318 0034C278  90 01 00 08 */	stw r0, 8(r1)
 | |
| /* 8034F31C 0034C27C  C8 22 CC 90 */	lfd f1, lbl_805AE9B0@sda21(r2)
 | |
| /* 8034F320 0034C280  7C 7D 1A 14 */	add r3, r29, r3
 | |
| /* 8034F324 0034C284  88 03 00 07 */	lbz r0, 7(r3)
 | |
| /* 8034F328 0034C288  7C 00 07 74 */	extsb r0, r0
 | |
| /* 8034F32C 0034C28C  6C 00 80 00 */	xoris r0, r0, 0x8000
 | |
| /* 8034F330 0034C290  90 01 00 0C */	stw r0, 0xc(r1)
 | |
| /* 8034F334 0034C294  C8 01 00 08 */	lfd f0, 8(r1)
 | |
| /* 8034F338 0034C298  EC 60 08 28 */	fsubs f3, f0, f1
 | |
| /* 8034F33C 0034C29C  48 00 00 60 */	b lbl_8034F39C
 | |
| lbl_8034F340:
 | |
| /* 8034F340 0034C2A0  1C 7E 00 0C */	mulli r3, r30, 0xc
 | |
| /* 8034F344 0034C2A4  3C 00 43 30 */	lis r0, 0x4330
 | |
| /* 8034F348 0034C2A8  90 01 00 08 */	stw r0, 8(r1)
 | |
| /* 8034F34C 0034C2AC  C8 22 CC 90 */	lfd f1, lbl_805AE9B0@sda21(r2)
 | |
| /* 8034F350 0034C2B0  7C 7D 1A 14 */	add r3, r29, r3
 | |
| /* 8034F354 0034C2B4  88 03 00 08 */	lbz r0, 8(r3)
 | |
| /* 8034F358 0034C2B8  7C 00 07 74 */	extsb r0, r0
 | |
| /* 8034F35C 0034C2BC  6C 00 80 00 */	xoris r0, r0, 0x8000
 | |
| /* 8034F360 0034C2C0  90 01 00 0C */	stw r0, 0xc(r1)
 | |
| /* 8034F364 0034C2C4  C8 01 00 08 */	lfd f0, 8(r1)
 | |
| /* 8034F368 0034C2C8  EC 60 08 28 */	fsubs f3, f0, f1
 | |
| /* 8034F36C 0034C2CC  48 00 00 30 */	b lbl_8034F39C
 | |
| lbl_8034F370:
 | |
| /* 8034F370 0034C2D0  1C 7E 00 0C */	mulli r3, r30, 0xc
 | |
| /* 8034F374 0034C2D4  3C 00 43 30 */	lis r0, 0x4330
 | |
| /* 8034F378 0034C2D8  90 01 00 08 */	stw r0, 8(r1)
 | |
| /* 8034F37C 0034C2DC  C8 22 CC 90 */	lfd f1, lbl_805AE9B0@sda21(r2)
 | |
| /* 8034F380 0034C2E0  7C 7D 1A 14 */	add r3, r29, r3
 | |
| /* 8034F384 0034C2E4  88 03 00 09 */	lbz r0, 9(r3)
 | |
| /* 8034F388 0034C2E8  7C 00 07 74 */	extsb r0, r0
 | |
| /* 8034F38C 0034C2EC  6C 00 80 00 */	xoris r0, r0, 0x8000
 | |
| /* 8034F390 0034C2F0  90 01 00 0C */	stw r0, 0xc(r1)
 | |
| /* 8034F394 0034C2F4  C8 01 00 08 */	lfd f0, 8(r1)
 | |
| /* 8034F398 0034C2F8  EC 60 08 28 */	fsubs f3, f0, f1
 | |
| lbl_8034F39C:
 | |
| /* 8034F39C 0034C2FC  EC 43 00 B2 */	fmuls f2, f3, f2
 | |
| /* 8034F3A0 0034C300  C0 02 CC 50 */	lfs f0, kAbsoluteMinimum__11IController@sda21(r2)
 | |
| /* 8034F3A4 0034C304  FC 02 00 40 */	fcmpo cr0, f2, f0
 | |
| /* 8034F3A8 0034C308  40 80 00 0C */	bge lbl_8034F3B4
 | |
| /* 8034F3AC 0034C30C  FC 40 00 90 */	fmr f2, f0
 | |
| /* 8034F3B0 0034C310  48 00 00 14 */	b lbl_8034F3C4
 | |
| lbl_8034F3B4:
 | |
| /* 8034F3B4 0034C314  C0 02 CC 54 */	lfs f0, kAbsoluteMaximum__11IController@sda21(r2)
 | |
| /* 8034F3B8 0034C318  FC 02 00 40 */	fcmpo cr0, f2, f0
 | |
| /* 8034F3BC 0034C31C  40 81 00 08 */	ble lbl_8034F3C4
 | |
| /* 8034F3C0 0034C320  FC 40 00 90 */	fmr f2, f0
 | |
| lbl_8034F3C4:
 | |
| /* 8034F3C4 0034C324  C0 04 00 04 */	lfs f0, 4(r4)
 | |
| /* 8034F3C8 0034C328  C0 22 CC 58 */	lfs f1, kRelativeMinimum__11IController@sda21(r2)
 | |
| /* 8034F3CC 0034C32C  EC 62 00 28 */	fsubs f3, f2, f0
 | |
| /* 8034F3D0 0034C330  FC 03 08 40 */	fcmpo cr0, f3, f1
 | |
| /* 8034F3D4 0034C334  40 80 00 0C */	bge lbl_8034F3E0
 | |
| /* 8034F3D8 0034C338  FC 60 08 90 */	fmr f3, f1
 | |
| /* 8034F3DC 0034C33C  48 00 00 14 */	b lbl_8034F3F0
 | |
| lbl_8034F3E0:
 | |
| /* 8034F3E0 0034C340  C0 02 CC 5C */	lfs f0, kRelativeMaximum__11IController@sda21(r2)
 | |
| /* 8034F3E4 0034C344  FC 03 00 40 */	fcmpo cr0, f3, f0
 | |
| /* 8034F3E8 0034C348  40 81 00 08 */	ble lbl_8034F3F0
 | |
| /* 8034F3EC 0034C34C  FC 60 00 90 */	fmr f3, f0
 | |
| lbl_8034F3F0:
 | |
| /* 8034F3F0 0034C350  D0 64 00 00 */	stfs f3, 0(r4)
 | |
| /* 8034F3F4 0034C354  D0 44 00 04 */	stfs f2, 4(r4)
 | |
| /* 8034F3F8 0034C358  80 01 00 24 */	lwz r0, 0x24(r1)
 | |
| /* 8034F3FC 0034C35C  83 E1 00 1C */	lwz r31, 0x1c(r1)
 | |
| /* 8034F400 0034C360  83 C1 00 18 */	lwz r30, 0x18(r1)
 | |
| /* 8034F404 0034C364  83 A1 00 14 */	lwz r29, 0x14(r1)
 | |
| /* 8034F408 0034C368  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F40C 0034C36C  38 21 00 20 */	addi r1, r1, 0x20
 | |
| /* 8034F410 0034C370  4E 80 00 20 */	blr
 | |
| 
 | |
| .global ProcessInputData__18CDolphinControllerFv
 | |
| ProcessInputData__18CDolphinControllerFv:
 | |
| /* 8034F414 0034C374  94 21 FF E0 */	stwu r1, -0x20(r1)
 | |
| /* 8034F418 0034C378  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F41C 0034C37C  90 01 00 24 */	stw r0, 0x24(r1)
 | |
| /* 8034F420 0034C380  93 E1 00 1C */	stw r31, 0x1c(r1)
 | |
| /* 8034F424 0034C384  93 C1 00 18 */	stw r30, 0x18(r1)
 | |
| /* 8034F428 0034C388  3B C0 00 00 */	li r30, 0
 | |
| /* 8034F42C 0034C38C  93 A1 00 14 */	stw r29, 0x14(r1)
 | |
| /* 8034F430 0034C390  7C 7D 1B 78 */	mr r29, r3
 | |
| /* 8034F434 0034C394  7F BF EB 78 */	mr r31, r29
 | |
| lbl_8034F438:
 | |
| /* 8034F438 0034C398  88 1F 00 34 */	lbz r0, 0x34(r31)
 | |
| /* 8034F43C 0034C39C  28 00 00 00 */	cmplwi r0, 0
 | |
| /* 8034F440 0034C3A0  41 82 00 50 */	beq lbl_8034F490
 | |
| /* 8034F444 0034C3A4  7F A3 EB 78 */	mr r3, r29
 | |
| /* 8034F448 0034C3A8  7F C4 F3 78 */	mr r4, r30
 | |
| /* 8034F44C 0034C3AC  38 A0 00 00 */	li r5, 0
 | |
| /* 8034F450 0034C3B0  4B FF FE 19 */	bl ProcessAxis__18CDolphinControllerFi8EJoyAxis
 | |
| /* 8034F454 0034C3B4  7F A3 EB 78 */	mr r3, r29
 | |
| /* 8034F458 0034C3B8  7F C4 F3 78 */	mr r4, r30
 | |
| /* 8034F45C 0034C3BC  38 A0 00 01 */	li r5, 1
 | |
| /* 8034F460 0034C3C0  4B FF FE 09 */	bl ProcessAxis__18CDolphinControllerFi8EJoyAxis
 | |
| /* 8034F464 0034C3C4  7F A3 EB 78 */	mr r3, r29
 | |
| /* 8034F468 0034C3C8  7F C4 F3 78 */	mr r4, r30
 | |
| /* 8034F46C 0034C3CC  38 A0 00 02 */	li r5, 2
 | |
| /* 8034F470 0034C3D0  4B FF FD F9 */	bl ProcessAxis__18CDolphinControllerFi8EJoyAxis
 | |
| /* 8034F474 0034C3D4  7F A3 EB 78 */	mr r3, r29
 | |
| /* 8034F478 0034C3D8  7F C4 F3 78 */	mr r4, r30
 | |
| /* 8034F47C 0034C3DC  38 A0 00 03 */	li r5, 3
 | |
| /* 8034F480 0034C3E0  4B FF FD E9 */	bl ProcessAxis__18CDolphinControllerFi8EJoyAxis
 | |
| /* 8034F484 0034C3E4  7F A3 EB 78 */	mr r3, r29
 | |
| /* 8034F488 0034C3E8  7F C4 F3 78 */	mr r4, r30
 | |
| /* 8034F48C 0034C3EC  4B FF FD 0D */	bl ProcessButtons__18CDolphinControllerFi
 | |
| lbl_8034F490:
 | |
| /* 8034F490 0034C3F0  3B DE 00 01 */	addi r30, r30, 1
 | |
| /* 8034F494 0034C3F4  3B FF 00 58 */	addi r31, r31, 0x58
 | |
| /* 8034F498 0034C3F8  2C 1E 00 04 */	cmpwi r30, 4
 | |
| /* 8034F49C 0034C3FC  41 80 FF 9C */	blt lbl_8034F438
 | |
| /* 8034F4A0 0034C400  80 01 00 24 */	lwz r0, 0x24(r1)
 | |
| /* 8034F4A4 0034C404  83 E1 00 1C */	lwz r31, 0x1c(r1)
 | |
| /* 8034F4A8 0034C408  83 C1 00 18 */	lwz r30, 0x18(r1)
 | |
| /* 8034F4AC 0034C40C  83 A1 00 14 */	lwz r29, 0x14(r1)
 | |
| /* 8034F4B0 0034C410  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F4B4 0034C414  38 21 00 20 */	addi r1, r1, 0x20
 | |
| /* 8034F4B8 0034C418  4E 80 00 20 */	blr
 | |
| 
 | |
| .global ReadDevices__18CDolphinControllerFv
 | |
| ReadDevices__18CDolphinControllerFv:
 | |
| /* 8034F4BC 0034C41C  94 21 FF B0 */	stwu r1, -0x50(r1)
 | |
| /* 8034F4C0 0034C420  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F4C4 0034C424  90 01 00 54 */	stw r0, 0x54(r1)
 | |
| /* 8034F4C8 0034C428  BF 41 00 38 */	stmw r26, 0x38(r1)
 | |
| /* 8034F4CC 0034C42C  7C 7A 1B 78 */	mr r26, r3
 | |
| /* 8034F4D0 0034C430  38 61 00 08 */	addi r3, r1, 8
 | |
| /* 8034F4D4 0034C434  48 03 72 A5 */	bl PADRead
 | |
| /* 8034F4D8 0034C438  88 61 00 12 */	lbz r3, 0x12(r1)
 | |
| /* 8034F4DC 0034C43C  7C 60 07 75 */	extsb. r0, r3
 | |
| /* 8034F4E0 0034C440  40 82 00 20 */	bne lbl_8034F500
 | |
| /* 8034F4E4 0034C444  38 61 00 08 */	addi r3, r1, 8
 | |
| /* 8034F4E8 0034C448  48 03 65 01 */	bl PADClamp
 | |
| /* 8034F4EC 0034C44C  38 7A 00 04 */	addi r3, r26, 4
 | |
| /* 8034F4F0 0034C450  38 81 00 08 */	addi r4, r1, 8
 | |
| /* 8034F4F4 0034C454  38 A0 00 30 */	li r5, 0x30
 | |
| /* 8034F4F8 0034C458  4B CB 3F 99 */	bl memcpy
 | |
| /* 8034F4FC 0034C45C  48 00 00 20 */	b lbl_8034F51C
 | |
| lbl_8034F500:
 | |
| /* 8034F500 0034C460  98 7A 00 0E */	stb r3, 0xe(r26)
 | |
| /* 8034F504 0034C464  88 01 00 1E */	lbz r0, 0x1e(r1)
 | |
| /* 8034F508 0034C468  98 1A 00 1A */	stb r0, 0x1a(r26)
 | |
| /* 8034F50C 0034C46C  88 01 00 2A */	lbz r0, 0x2a(r1)
 | |
| /* 8034F510 0034C470  98 1A 00 26 */	stb r0, 0x26(r26)
 | |
| /* 8034F514 0034C474  88 01 00 36 */	lbz r0, 0x36(r1)
 | |
| /* 8034F518 0034C478  98 1A 00 32 */	stb r0, 0x32(r26)
 | |
| lbl_8034F51C:
 | |
| /* 8034F51C 0034C47C  7F 5E D3 78 */	mr r30, r26
 | |
| /* 8034F520 0034C480  7F 5D D3 78 */	mr r29, r26
 | |
| /* 8034F524 0034C484  7F 5C D3 78 */	mr r28, r26
 | |
| /* 8034F528 0034C488  3B 60 00 00 */	li r27, 0
 | |
| /* 8034F52C 0034C48C  3F E0 80 00 */	lis r31, 0x8000
 | |
| lbl_8034F530:
 | |
| /* 8034F530 0034C490  88 1E 00 0E */	lbz r0, 0xe(r30)
 | |
| /* 8034F534 0034C494  7F E4 DC 30 */	srw r4, r31, r27
 | |
| /* 8034F538 0034C498  7C 03 07 74 */	extsb r3, r0
 | |
| /* 8034F53C 0034C49C  2C 03 FF FE */	cmpwi r3, -2
 | |
| /* 8034F540 0034C4A0  41 82 00 34 */	beq lbl_8034F574
 | |
| /* 8034F544 0034C4A4  7C 00 07 75 */	extsb. r0, r0
 | |
| /* 8034F548 0034C4A8  40 82 00 10 */	bne lbl_8034F558
 | |
| /* 8034F54C 0034C4AC  38 00 00 01 */	li r0, 1
 | |
| /* 8034F550 0034C4B0  98 1D 00 34 */	stb r0, 0x34(r29)
 | |
| /* 8034F554 0034C4B4  48 00 00 20 */	b lbl_8034F574
 | |
| lbl_8034F558:
 | |
| /* 8034F558 0034C4B8  2C 03 FF FF */	cmpwi r3, -1
 | |
| /* 8034F55C 0034C4BC  40 82 00 18 */	bne lbl_8034F574
 | |
| /* 8034F560 0034C4C0  80 7A 01 C8 */	lwz r3, 0x1c8(r26)
 | |
| /* 8034F564 0034C4C4  38 00 00 00 */	li r0, 0
 | |
| /* 8034F568 0034C4C8  7C 63 23 78 */	or r3, r3, r4
 | |
| /* 8034F56C 0034C4CC  90 7A 01 C8 */	stw r3, 0x1c8(r26)
 | |
| /* 8034F570 0034C4D0  98 1D 00 34 */	stb r0, 0x34(r29)
 | |
| lbl_8034F574:
 | |
| /* 8034F574 0034C4D4  80 7C 01 B4 */	lwz r3, 0x1b4(r28)
 | |
| /* 8034F578 0034C4D8  28 03 00 00 */	cmplwi r3, 0
 | |
| /* 8034F57C 0034C4DC  41 82 00 10 */	beq lbl_8034F58C
 | |
| /* 8034F580 0034C4E0  38 03 FF FF */	addi r0, r3, -1
 | |
| /* 8034F584 0034C4E4  90 1C 01 B4 */	stw r0, 0x1b4(r28)
 | |
| /* 8034F588 0034C4E8  48 00 00 78 */	b lbl_8034F600
 | |
| lbl_8034F58C:
 | |
| /* 8034F58C 0034C4EC  7F 63 DB 78 */	mr r3, r27
 | |
| /* 8034F590 0034C4F0  48 07 09 59 */	bl SIProbe
 | |
| /* 8034F594 0034C4F4  70 60 00 C8 */	andi. r0, r3, 0xc8
 | |
| /* 8034F598 0034C4F8  41 82 00 1C */	beq lbl_8034F5B4
 | |
| /* 8034F59C 0034C4FC  80 1C 01 B4 */	lwz r0, 0x1b4(r28)
 | |
| /* 8034F5A0 0034C500  28 00 00 00 */	cmplwi r0, 0
 | |
| /* 8034F5A4 0034C504  40 82 00 5C */	bne lbl_8034F600
 | |
| /* 8034F5A8 0034C508  80 02 CC 60 */	lwz r0, skTypeUnknown__18CDolphinController@sda21(r2)
 | |
| /* 8034F5AC 0034C50C  90 1C 01 A4 */	stw r0, 0x1a4(r28)
 | |
| /* 8034F5B0 0034C510  48 00 00 50 */	b lbl_8034F600
 | |
| lbl_8034F5B4:
 | |
| /* 8034F5B4 0034C514  3C 03 74 F0 */	addis r0, r3, 0x74f0
 | |
| /* 8034F5B8 0034C518  38 80 00 3C */	li r4, 0x3c
 | |
| /* 8034F5BC 0034C51C  28 00 00 00 */	cmplwi r0, 0
 | |
| /* 8034F5C0 0034C520  90 9C 01 B4 */	stw r4, 0x1b4(r28)
 | |
| /* 8034F5C4 0034C524  40 82 00 10 */	bne lbl_8034F5D4
 | |
| /* 8034F5C8 0034C528  80 02 CC 6C */	lwz r0, skTypeWavebird__18CDolphinController@sda21(r2)
 | |
| /* 8034F5CC 0034C52C  90 1C 01 A4 */	stw r0, 0x1a4(r28)
 | |
| /* 8034F5D0 0034C530  48 00 00 30 */	b lbl_8034F600
 | |
| lbl_8034F5D4:
 | |
| /* 8034F5D4 0034C534  3C 03 FF FC */	addis r0, r3, 0xfffc
 | |
| /* 8034F5D8 0034C538  28 00 00 00 */	cmplwi r0, 0
 | |
| /* 8034F5DC 0034C53C  40 82 00 10 */	bne lbl_8034F5EC
 | |
| /* 8034F5E0 0034C540  80 02 CC 68 */	lwz r0, skTypeGBA__18CDolphinController@sda21(r2)
 | |
| /* 8034F5E4 0034C544  90 1C 01 A4 */	stw r0, 0x1a4(r28)
 | |
| /* 8034F5E8 0034C548  48 00 00 18 */	b lbl_8034F600
 | |
| lbl_8034F5EC:
 | |
| /* 8034F5EC 0034C54C  3C 03 F7 00 */	addis r0, r3, 0xf700
 | |
| /* 8034F5F0 0034C550  28 00 00 00 */	cmplwi r0, 0
 | |
| /* 8034F5F4 0034C554  40 82 00 0C */	bne lbl_8034F600
 | |
| /* 8034F5F8 0034C558  80 02 CC 64 */	lwz r0, skTypeStandard__18CDolphinController@sda21(r2)
 | |
| /* 8034F5FC 0034C55C  90 1C 01 A4 */	stw r0, 0x1a4(r28)
 | |
| lbl_8034F600:
 | |
| /* 8034F600 0034C560  3B 7B 00 01 */	addi r27, r27, 1
 | |
| /* 8034F604 0034C564  3B BD 00 58 */	addi r29, r29, 0x58
 | |
| /* 8034F608 0034C568  2C 1B 00 04 */	cmpwi r27, 4
 | |
| /* 8034F60C 0034C56C  3B 9C 00 04 */	addi r28, r28, 4
 | |
| /* 8034F610 0034C570  3B DE 00 0C */	addi r30, r30, 0xc
 | |
| /* 8034F614 0034C574  41 80 FF 1C */	blt lbl_8034F530
 | |
| /* 8034F618 0034C578  80 7A 01 C8 */	lwz r3, 0x1c8(r26)
 | |
| /* 8034F61C 0034C57C  28 03 00 00 */	cmplwi r3, 0
 | |
| /* 8034F620 0034C580  41 82 00 18 */	beq lbl_8034F638
 | |
| /* 8034F624 0034C584  48 03 6D 39 */	bl PADReset
 | |
| /* 8034F628 0034C588  2C 03 00 00 */	cmpwi r3, 0
 | |
| /* 8034F62C 0034C58C  41 82 00 0C */	beq lbl_8034F638
 | |
| /* 8034F630 0034C590  38 00 00 00 */	li r0, 0
 | |
| /* 8034F634 0034C594  90 1A 01 C8 */	stw r0, 0x1c8(r26)
 | |
| lbl_8034F638:
 | |
| /* 8034F638 0034C598  BB 41 00 38 */	lmw r26, 0x38(r1)
 | |
| /* 8034F63C 0034C59C  80 01 00 54 */	lwz r0, 0x54(r1)
 | |
| /* 8034F640 0034C5A0  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F644 0034C5A4  38 21 00 50 */	addi r1, r1, 0x50
 | |
| /* 8034F648 0034C5A8  4E 80 00 20 */	blr
 | |
| 
 | |
| .global Poll__18CDolphinControllerFv
 | |
| Poll__18CDolphinControllerFv:
 | |
| /* 8034F64C 0034C5AC  94 21 FF F0 */	stwu r1, -0x10(r1)
 | |
| /* 8034F650 0034C5B0  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F654 0034C5B4  90 01 00 14 */	stw r0, 0x14(r1)
 | |
| /* 8034F658 0034C5B8  93 E1 00 0C */	stw r31, 0xc(r1)
 | |
| /* 8034F65C 0034C5BC  7C 7F 1B 78 */	mr r31, r3
 | |
| /* 8034F660 0034C5C0  4B FF FE 5D */	bl ReadDevices__18CDolphinControllerFv
 | |
| /* 8034F664 0034C5C4  7F E3 FB 78 */	mr r3, r31
 | |
| /* 8034F668 0034C5C8  4B FF FD AD */	bl ProcessInputData__18CDolphinControllerFv
 | |
| /* 8034F66C 0034C5CC  80 01 00 14 */	lwz r0, 0x14(r1)
 | |
| /* 8034F670 0034C5D0  83 E1 00 0C */	lwz r31, 0xc(r1)
 | |
| /* 8034F674 0034C5D4  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F678 0034C5D8  38 21 00 10 */	addi r1, r1, 0x10
 | |
| /* 8034F67C 0034C5DC  4E 80 00 20 */	blr
 | |
| 
 | |
| .global Initialize__18CDolphinControllerFv
 | |
| Initialize__18CDolphinControllerFv:
 | |
| /* 8034F680 0034C5E0  94 21 FF F0 */	stwu r1, -0x10(r1)
 | |
| /* 8034F684 0034C5E4  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F688 0034C5E8  90 01 00 14 */	stw r0, 0x14(r1)
 | |
| /* 8034F68C 0034C5EC  93 E1 00 0C */	stw r31, 0xc(r1)
 | |
| /* 8034F690 0034C5F0  7C 7F 1B 78 */	mr r31, r3
 | |
| /* 8034F694 0034C5F4  48 07 9F B9 */	bl GBAInit
 | |
| /* 8034F698 0034C5F8  38 7F 00 04 */	addi r3, r31, 4
 | |
| /* 8034F69C 0034C5FC  38 80 00 00 */	li r4, 0
 | |
| /* 8034F6A0 0034C600  38 A0 00 30 */	li r5, 0x30
 | |
| /* 8034F6A4 0034C604  4B CB 3D 05 */	bl memset
 | |
| /* 8034F6A8 0034C608  38 A0 00 00 */	li r5, 0
 | |
| /* 8034F6AC 0034C60C  38 80 00 02 */	li r4, 2
 | |
| /* 8034F6B0 0034C610  98 BF 00 34 */	stb r5, 0x34(r31)
 | |
| /* 8034F6B4 0034C614  38 7F 01 94 */	addi r3, r31, 0x194
 | |
| /* 8034F6B8 0034C618  80 02 CC 60 */	lwz r0, skTypeUnknown__18CDolphinController@sda21(r2)
 | |
| /* 8034F6BC 0034C61C  90 9F 01 94 */	stw r4, 0x194(r31)
 | |
| /* 8034F6C0 0034C620  90 BF 01 B4 */	stw r5, 0x1b4(r31)
 | |
| /* 8034F6C4 0034C624  90 1F 01 A4 */	stw r0, 0x1a4(r31)
 | |
| /* 8034F6C8 0034C628  98 BF 00 8C */	stb r5, 0x8c(r31)
 | |
| /* 8034F6CC 0034C62C  90 9F 01 98 */	stw r4, 0x198(r31)
 | |
| /* 8034F6D0 0034C630  90 BF 01 B8 */	stw r5, 0x1b8(r31)
 | |
| /* 8034F6D4 0034C634  90 1F 01 A8 */	stw r0, 0x1a8(r31)
 | |
| /* 8034F6D8 0034C638  98 BF 00 E4 */	stb r5, 0xe4(r31)
 | |
| /* 8034F6DC 0034C63C  90 9F 01 9C */	stw r4, 0x19c(r31)
 | |
| /* 8034F6E0 0034C640  90 BF 01 BC */	stw r5, 0x1bc(r31)
 | |
| /* 8034F6E4 0034C644  90 1F 01 AC */	stw r0, 0x1ac(r31)
 | |
| /* 8034F6E8 0034C648  98 BF 01 3C */	stb r5, 0x13c(r31)
 | |
| /* 8034F6EC 0034C64C  90 9F 01 A0 */	stw r4, 0x1a0(r31)
 | |
| /* 8034F6F0 0034C650  90 BF 01 C0 */	stw r5, 0x1c0(r31)
 | |
| /* 8034F6F4 0034C654  90 1F 01 B0 */	stw r0, 0x1b0(r31)
 | |
| /* 8034F6F8 0034C658  48 03 74 2D */	bl PADControlAllMotors
 | |
| /* 8034F6FC 0034C65C  7F E3 FB 78 */	mr r3, r31
 | |
| /* 8034F700 0034C660  81 9F 00 00 */	lwz r12, 0(r31)
 | |
| /* 8034F704 0034C664  81 8C 00 0C */	lwz r12, 0xc(r12)
 | |
| /* 8034F708 0034C668  7D 89 03 A6 */	mtctr r12
 | |
| /* 8034F70C 0034C66C  4E 80 04 21 */	bctrl
 | |
| /* 8034F710 0034C670  80 01 00 14 */	lwz r0, 0x14(r1)
 | |
| /* 8034F714 0034C674  38 60 00 01 */	li r3, 1
 | |
| /* 8034F718 0034C678  83 E1 00 0C */	lwz r31, 0xc(r1)
 | |
| /* 8034F71C 0034C67C  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F720 0034C680  38 21 00 10 */	addi r1, r1, 0x10
 | |
| /* 8034F724 0034C684  4E 80 00 20 */	blr
 | |
| 
 | |
| .global __dt__18CDolphinControllerFv
 | |
| __dt__18CDolphinControllerFv:
 | |
| /* 8034F728 0034C688  94 21 FF F0 */	stwu r1, -0x10(r1)
 | |
| /* 8034F72C 0034C68C  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F730 0034C690  90 01 00 14 */	stw r0, 0x14(r1)
 | |
| /* 8034F734 0034C694  93 E1 00 0C */	stw r31, 0xc(r1)
 | |
| /* 8034F738 0034C698  7C 9F 23 78 */	mr r31, r4
 | |
| /* 8034F73C 0034C69C  93 C1 00 08 */	stw r30, 8(r1)
 | |
| /* 8034F740 0034C6A0  7C 7E 1B 79 */	or. r30, r3, r3
 | |
| /* 8034F744 0034C6A4  41 82 00 28 */	beq lbl_8034F76C
 | |
| /* 8034F748 0034C6A8  3C A0 80 3F */	lis r5, __vt__18CDolphinController@ha
 | |
| /* 8034F74C 0034C6AC  38 80 00 00 */	li r4, 0
 | |
| /* 8034F750 0034C6B0  38 05 F6 B8 */	addi r0, r5, __vt__18CDolphinController@l
 | |
| /* 8034F754 0034C6B4  90 1E 00 00 */	stw r0, 0(r30)
 | |
| /* 8034F758 0034C6B8  4B FF F8 B1 */	bl __dt__11IControllerFv
 | |
| /* 8034F75C 0034C6BC  7F E0 07 35 */	extsh. r0, r31
 | |
| /* 8034F760 0034C6C0  40 81 00 0C */	ble lbl_8034F76C
 | |
| /* 8034F764 0034C6C4  7F C3 F3 78 */	mr r3, r30
 | |
| /* 8034F768 0034C6C8  4B FC 61 C9 */	bl Free__7CMemoryFPCv
 | |
| lbl_8034F76C:
 | |
| /* 8034F76C 0034C6CC  80 01 00 14 */	lwz r0, 0x14(r1)
 | |
| /* 8034F770 0034C6D0  7F C3 F3 78 */	mr r3, r30
 | |
| /* 8034F774 0034C6D4  83 E1 00 0C */	lwz r31, 0xc(r1)
 | |
| /* 8034F778 0034C6D8  83 C1 00 08 */	lwz r30, 8(r1)
 | |
| /* 8034F77C 0034C6DC  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F780 0034C6E0  38 21 00 10 */	addi r1, r1, 0x10
 | |
| /* 8034F784 0034C6E4  4E 80 00 20 */	blr
 | |
| 
 | |
| .global __ct__18CDolphinControllerFv
 | |
| __ct__18CDolphinControllerFv:
 | |
| /* 8034F788 0034C6E8  94 21 FF F0 */	stwu r1, -0x10(r1)
 | |
| /* 8034F78C 0034C6EC  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F790 0034C6F0  90 01 00 14 */	stw r0, 0x14(r1)
 | |
| /* 8034F794 0034C6F4  93 E1 00 0C */	stw r31, 0xc(r1)
 | |
| /* 8034F798 0034C6F8  7C 7F 1B 78 */	mr r31, r3
 | |
| /* 8034F79C 0034C6FC  4B FF F8 B5 */	bl __ct__11IControllerFv
 | |
| /* 8034F7A0 0034C700  3C 60 80 3F */	lis r3, __vt__18CDolphinController@ha
 | |
| /* 8034F7A4 0034C704  3C 80 80 35 */	lis r4, __ct__22CControllerGamepadDataFv@ha
 | |
| /* 8034F7A8 0034C708  38 03 F6 B8 */	addi r0, r3, __vt__18CDolphinController@l
 | |
| /* 8034F7AC 0034C70C  38 A0 00 00 */	li r5, 0
 | |
| /* 8034F7B0 0034C710  90 1F 00 00 */	stw r0, 0(r31)
 | |
| /* 8034F7B4 0034C714  38 7F 00 34 */	addi r3, r31, 0x34
 | |
| /* 8034F7B8 0034C718  38 84 F8 2C */	addi r4, r4, __ct__22CControllerGamepadDataFv@l
 | |
| /* 8034F7BC 0034C71C  38 C0 00 58 */	li r6, 0x58
 | |
| /* 8034F7C0 0034C720  38 E0 00 04 */	li r7, 4
 | |
| /* 8034F7C4 0034C724  48 03 9F 89 */	bl __construct_array
 | |
| /* 8034F7C8 0034C728  3C 00 F0 00 */	lis r0, 0xf000
 | |
| /* 8034F7CC 0034C72C  38 60 00 00 */	li r3, 0
 | |
| /* 8034F7D0 0034C730  90 1F 01 C4 */	stw r0, 0x1c4(r31)
 | |
| /* 8034F7D4 0034C734  90 7F 01 C8 */	stw r3, 0x1c8(r31)
 | |
| /* 8034F7D8 0034C738  90 7F 01 CC */	stw r3, 0x1cc(r31)
 | |
| /* 8034F7DC 0034C73C  88 0D AA 09 */	lbz r0, lbl_805A95C9@sda21(r13)
 | |
| /* 8034F7E0 0034C740  7C 00 07 75 */	extsb. r0, r0
 | |
| /* 8034F7E4 0034C744  40 82 00 10 */	bne lbl_8034F7F4
 | |
| /* 8034F7E8 0034C748  38 00 00 01 */	li r0, 1
 | |
| /* 8034F7EC 0034C74C  98 6D AA 08 */	stb r3, lbl_805A95C8@sda21(r13)
 | |
| /* 8034F7F0 0034C750  98 0D AA 09 */	stb r0, lbl_805A95C9@sda21(r13)
 | |
| lbl_8034F7F4:
 | |
| /* 8034F7F4 0034C754  88 0D AA 08 */	lbz r0, lbl_805A95C8@sda21(r13)
 | |
| /* 8034F7F8 0034C758  28 00 00 00 */	cmplwi r0, 0
 | |
| /* 8034F7FC 0034C75C  40 82 00 18 */	bne lbl_8034F814
 | |
| /* 8034F800 0034C760  38 60 00 05 */	li r3, 5
 | |
| /* 8034F804 0034C764  48 03 74 7D */	bl PADSetSpec
 | |
| /* 8034F808 0034C768  48 03 6D 59 */	bl PADInit
 | |
| /* 8034F80C 0034C76C  38 00 00 01 */	li r0, 1
 | |
| /* 8034F810 0034C770  98 0D AA 08 */	stb r0, lbl_805A95C8@sda21(r13)
 | |
| lbl_8034F814:
 | |
| /* 8034F814 0034C774  80 01 00 14 */	lwz r0, 0x14(r1)
 | |
| /* 8034F818 0034C778  7F E3 FB 78 */	mr r3, r31
 | |
| /* 8034F81C 0034C77C  83 E1 00 0C */	lwz r31, 0xc(r1)
 | |
| /* 8034F820 0034C780  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F824 0034C784  38 21 00 10 */	addi r1, r1, 0x10
 | |
| /* 8034F828 0034C788  4E 80 00 20 */	blr
 | |
| 
 | |
| .global __ct__22CControllerGamepadDataFv
 | |
| __ct__22CControllerGamepadDataFv:
 | |
| /* 8034F82C 0034C78C  94 21 FF F0 */	stwu r1, -0x10(r1)
 | |
| /* 8034F830 0034C790  7C 08 02 A6 */	mflr r0
 | |
| /* 8034F834 0034C794  3C 80 80 35 */	lis r4, __ct__15CControllerAxisFv@ha
 | |
| /* 8034F838 0034C798  38 A0 00 00 */	li r5, 0
 | |
| /* 8034F83C 0034C79C  90 01 00 14 */	stw r0, 0x14(r1)
 | |
| /* 8034F840 0034C7A0  38 84 F8 C0 */	addi r4, r4, __ct__15CControllerAxisFv@l
 | |
| /* 8034F844 0034C7A4  38 C0 00 08 */	li r6, 8
 | |
| /* 8034F848 0034C7A8  38 E0 00 04 */	li r7, 4
 | |
| /* 8034F84C 0034C7AC  93 E1 00 0C */	stw r31, 0xc(r1)
 | |
| /* 8034F850 0034C7B0  7C 7F 1B 78 */	mr r31, r3
 | |
| /* 8034F854 0034C7B4  38 7F 00 04 */	addi r3, r31, 4
 | |
| /* 8034F858 0034C7B8  48 03 9E F5 */	bl __construct_array
 | |
| /* 8034F85C 0034C7BC  3C 80 80 35 */	lis r4, __ct__15CControllerAxisFv@ha
 | |
| /* 8034F860 0034C7C0  38 7F 00 24 */	addi r3, r31, 0x24
 | |
| /* 8034F864 0034C7C4  38 84 F8 C0 */	addi r4, r4, __ct__15CControllerAxisFv@l
 | |
| /* 8034F868 0034C7C8  38 A0 00 00 */	li r5, 0
 | |
| /* 8034F86C 0034C7CC  38 C0 00 08 */	li r6, 8
 | |
| /* 8034F870 0034C7D0  38 E0 00 02 */	li r7, 2
 | |
| /* 8034F874 0034C7D4  48 03 9E D9 */	bl __construct_array
 | |
| /* 8034F878 0034C7D8  3C 80 80 35 */	lis r4, __ct__17CControllerButtonFv@ha
 | |
| /* 8034F87C 0034C7DC  38 7F 00 34 */	addi r3, r31, 0x34
 | |
| /* 8034F880 0034C7E0  38 84 F8 AC */	addi r4, r4, __ct__17CControllerButtonFv@l
 | |
| /* 8034F884 0034C7E4  38 A0 00 00 */	li r5, 0
 | |
| /* 8034F888 0034C7E8  38 C0 00 03 */	li r6, 3
 | |
| /* 8034F88C 0034C7EC  38 E0 00 0C */	li r7, 0xc
 | |
| /* 8034F890 0034C7F0  48 03 9E BD */	bl __construct_array
 | |
| /* 8034F894 0034C7F4  80 01 00 14 */	lwz r0, 0x14(r1)
 | |
| /* 8034F898 0034C7F8  7F E3 FB 78 */	mr r3, r31
 | |
| /* 8034F89C 0034C7FC  83 E1 00 0C */	lwz r31, 0xc(r1)
 | |
| /* 8034F8A0 0034C800  7C 08 03 A6 */	mtlr r0
 | |
| /* 8034F8A4 0034C804  38 21 00 10 */	addi r1, r1, 0x10
 | |
| /* 8034F8A8 0034C808  4E 80 00 20 */	blr
 | |
| 
 | |
| .global __ct__17CControllerButtonFv
 | |
| __ct__17CControllerButtonFv:
 | |
| /* 8034F8AC 0034C80C  38 00 00 00 */	li r0, 0
 | |
| /* 8034F8B0 0034C810  98 03 00 00 */	stb r0, 0(r3)
 | |
| /* 8034F8B4 0034C814  98 03 00 01 */	stb r0, 1(r3)
 | |
| /* 8034F8B8 0034C818  98 03 00 02 */	stb r0, 2(r3)
 | |
| /* 8034F8BC 0034C81C  4E 80 00 20 */	blr
 | |
| 
 | |
| .global __ct__15CControllerAxisFv
 | |
| __ct__15CControllerAxisFv:
 | |
| /* 8034F8C0 0034C820  C0 02 CC 78 */	lfs f0, lbl_805AE998@sda21(r2)
 | |
| /* 8034F8C4 0034C824  D0 03 00 00 */	stfs f0, 0(r3)
 | |
| /* 8034F8C8 0034C828  D0 03 00 04 */	stfs f0, 4(r3)
 | |
| /* 8034F8CC 0034C82C  4E 80 00 20 */	blr
 | |
| 
 | |
| .section .sdata2, "a"
 | |
| .balign 8
 | |
| 
 | |
| .global skTypeUnknown__18CDolphinController
 | |
| skTypeUnknown__18CDolphinController:
 | |
| 	# ROM: 0x3FB220
 | |
| 	.byte 'U', 'N', 'K', 'N'
 | |
| 
 | |
| .global skTypeStandard__18CDolphinController
 | |
| skTypeStandard__18CDolphinController:
 | |
| 	# ROM: 0x3FB224
 | |
| 	.byte 'S', 'T', 'N', 'D'
 | |
| 
 | |
| .global skTypeGBA__18CDolphinController
 | |
| skTypeGBA__18CDolphinController:
 | |
| 	# ROM: 0x3FB228
 | |
| 	.byte 'G', 'B', 'A', '_'
 | |
| 
 | |
| .global skTypeWavebird__18CDolphinController
 | |
| skTypeWavebird__18CDolphinController:
 | |
| 	# ROM: 0x3FB22C
 | |
| 	.byte 'W', 'A', 'V', 'E'
 | |
| 
 | |
| .global lbl_805AE990
 | |
| lbl_805AE990:
 | |
| 	# ROM: 0x3FB230
 | |
| 	.float 72.0
 | |
| 
 | |
| .global lbl_805AE994
 | |
| lbl_805AE994:
 | |
| 	# ROM: 0x3FB234
 | |
| 	.float 59.0
 | |
| 
 | |
| .global lbl_805AE998
 | |
| lbl_805AE998:
 | |
| 	# ROM: 0x3FB238
 | |
| 	.float 0.0
 | |
| 
 | |
| .global lbl_805AE99C
 | |
| lbl_805AE99C:
 | |
| 	# ROM: 0x3FB23C
 | |
| 	.float 0.006666667
 | |
| 
 | |
| .global lbl_805AE9A0
 | |
| lbl_805AE9A0:
 | |
| 	# ROM: 0x3FB240
 | |
| 	.double 4.503599627370496E15
 | |
| 
 | |
| .global lbl_805AE9A8
 | |
| lbl_805AE9A8:
 | |
| 	# ROM: 0x3FB248
 | |
| 	.float 1.0
 | |
| 	.4byte 0
 | |
| 
 | |
| .global lbl_805AE9B0
 | |
| lbl_805AE9B0:
 | |
| 	# ROM: 0x3FB250
 | |
| 	.double 4.503601774854144E15
 | |
| 
 |