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.pycBinary files differ index 84b5c26..a8c227c 100644 --- a/tools/hooks.pyc +++ b/tools/hooks.pyc | 
