diff options
Diffstat (limited to '')
-rw-r--r-- | classic_controller.yaml | 20 | ||||
-rw-r--r-- | kamek_ntsc.x | 2 | ||||
-rw-r--r-- | kamek_ntsc2.x | 2 | ||||
-rw-r--r-- | kamek_pal2.x | 2 | ||||
-rw-r--r-- | src/classic_controller.S | 39 | ||||
-rw-r--r-- | tools/hooks.pyc | bin | 5873 -> 6006 bytes |
6 files changed, 52 insertions, 13 deletions
diff --git a/classic_controller.yaml b/classic_controller.yaml index eb02398..08354c2 100644 --- a/classic_controller.yaml +++ b/classic_controller.yaml @@ -4,31 +4,37 @@ hooks: - name: AddClassicController type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef + src_addr_pal: 0x801eb6f8 + #src_addr_ntsc: 0x801eb5b8 target_func: '_switch_buttons' - name: Patch1 type: patch - addr_ntsc: 0x801EAE30 + addr_pal: 0x801EAF70 + #addr_ntsc: 0x801EAE30 data: '39800000 91840000' - name: PatchExtensionScall type: patch - addr_ntsc: 0x80019EE0 + addr_pal: 0x80019EE0 + #addr_ntsc: 0x80019EE0 data: '38000000' - name: Patch3 type: patch - addr_ntsc: 0x800B3B30 + addr_pal: 0x800B3B30 + #addr_ntsc: 0x800B3B30 data: '38000000' - name: Patch4 type: patch - addr_ntsc: 0x8076DBA8 - data: '38000000' + addr_pal: 0x8076DB98 + #addr_ntsc: 0x8076DBA8 + data: '38000004' - name: Patch5 type: patch - addr_ntsc: 0x8076DBE8 + addr_pal: 0x8076DBd8 + #addr_ntsc: 0x8076DBE8 data: '38000000' diff --git a/kamek_ntsc.x b/kamek_ntsc.x index f8c9a41..802aba3 100644 --- a/kamek_ntsc.x +++ b/kamek_ntsc.x @@ -29,7 +29,7 @@ SECTIONS { HandleYSpeed = 0x8006CDE0; UpdateObjectPosBasedOnSpeedValues_real = 0x8006CD40; dSprite_c__getXDirectionOfFurthestPlayerRelativeToVEC3 = 0x80096240; - + CalculateDistanceFromActorsNextPosToFurthestPlayer = 0x80064740; diff --git a/kamek_ntsc2.x b/kamek_ntsc2.x index 42d9898..730ff74 100644 --- a/kamek_ntsc2.x +++ b/kamek_ntsc2.x @@ -29,7 +29,7 @@ SECTIONS { HandleYSpeed = 0x8006CDE0; UpdateObjectPosBasedOnSpeedValues_real = 0x8006CD40; dSprite_c__getXDirectionOfFurthestPlayerRelativeToVEC3 = 0x80096240; - + CalculateDistanceFromActorsNextPosToFurthestPlayer = 0x80064740; diff --git a/kamek_pal2.x b/kamek_pal2.x index 6e3d6fa..1c25357 100644 --- a/kamek_pal2.x +++ b/kamek_pal2.x @@ -29,7 +29,7 @@ SECTIONS { HandleYSpeed = 0xDEADBEEF; UpdateObjectPosBasedOnSpeedValues_real = 0xDEADBEEF; dSprite_c__getXDirectionOfFurthestPlayerRelativeToVEC3 = 0xDEADBEEF; - + CalculateDistanceFromActorsNextPosToFurthestPlayer = 0xDEADBEEF; diff --git a/src/classic_controller.S b/src/classic_controller.S index 2ae5ed7..86be34f 100644 --- a/src/classic_controller.S +++ b/src/classic_controller.S @@ -1,14 +1,18 @@ #ifndef __MWERKS__ -.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 +.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 .set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 .set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 .set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 .set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 .set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 -.set r30,30; .set r31,31; .set f0,0; .set f2,2; .set f3,3 -.set f1,1; .set f30,30; .set f31,31 +.set r30,30; .set r31,31; .set f0,0; .set f2,2; .set f3,3 +.set f1,1; .set f8,8; .set f9,9; .set f10,10; .set f11,11; +.set f30,30; .set f31,31 #endif +.text +.align 4 + .global _switch_buttons _switch_buttons: addi r1,r1,0x50 # replaced instruction @@ -79,6 +83,35 @@ skip_plus: beq- skip_minus ori r6,r6,0x1000 // WPAD_BUTTON_MINUS skip_minus: + lfs f8,0x6c(r26) // left analog x + lfs f9,0x70(r26) // left analog y + lis r5,float_one@h + lfs f10,float_one@l(r5) + lfs f11,float_neg_one@l(r5) + fcmpu cr1,f8,f10 + bne cr1,skip_right_analog + ori r6,r6,4 // WPAD_BUTTON_DOWN +skip_right_analog: + fcmpu cr1,f9,f10 + bne cr1,skip_right_analog + ori r6,r6,2 // WPAD_BUTTON_RIGHT +skip_up_analog: + fcmpu cr1,f9,f11 + bne cr1,skip_right_analog + ori r6,r6,1 // WPAD_BUTTON_LEFT +skip_down_analog: + fcmpu cr1,f8,f11 + bne cr1,skip_right_analog + ori r6,r6,8 // WPAD_BUTTON_UP +skip_left_analog: mr r5,r6 blr +.data + +float_one: +.float 1.0 +float_neg_one: +.float -1.0 +float_zero: +.float 0.0 diff --git a/tools/hooks.pyc b/tools/hooks.pyc Binary files differindex 84b5c26..a8c227c 100644 --- a/tools/hooks.pyc +++ b/tools/hooks.pyc |