Fix Team Rotation Bind; GCN [Vega] For GCN only. In the game, sometimes using the C stick (left/right) to select Teammates within the Match can accidentally cause you to activate your Emergency Blast Wave. This code disables the C stick from navigating Teammates, and allows you to select a new Button Combo. Don't be pressing any other buttons when using your new button combo to switch Teammates. XXXX = Button/Combo to replace C-stick Left YYYY = Button/Combo to replace C-stick Right X/Y Values: 0004 = Y 0008 = A 0002 = B 0001 = X 0200 = Z 0040 = Analog/Dpad left 0080 = Analog/Dpad right 0010 = Analog/Dpad Up 0020 = Analog/Dpad down 1000 = L 0800 = R You can combine buttons. For example Z + Dpad Up would be 0200 + 0010. The X/Y's value would be 0210. Use a Hex calculator for the addition(s). NTSC-U C20545B8 0000000C 38A00000 38C0XXXX A11D0846 7CA928F8 7D0A4838 388003F0 817D000C 556B083C 7D6B2214 7C0A3000 3D808000 38600000 41820010 38000000 7C0B61AE 4800001C 7C0B60AE 2C000001 41820010 38000001 7C0B61AE 38600001 60000000 00000000 C20545E0 00000008 38E0YYYY 396B0001 7C0A3800 38600000 41820010 38000000 7C0B61AE 4800001C 7C0B60AE 2C000001 41820010 38000001 7C0B61AE 38600001 60000000 00000000 Code creator: Vega 1st ASM Source #r10 thru r12 gets carried over to next ASM!!! they are preserved #Set User Mask li r5, 0x0000 #Null mask used for assembling, adjust this to your needs #Set User Button2 to replace C stick Left li r6, 0x0210 #Z+Up used for assembling, adjust this to y our needs #Load In-Game Custom Button Flags aka Real button (exclude C stick); also used in 2nd ASM and stays intact lhz r8, 0x846 (r29) #Flip User mask not r9, r5 #No need to clear junk upper bits as r8 will always be 0x0000zzzz #AND Real button value with Inverted mask Value and r10, r8, r9 #Set r11 offset li r4, 0x03F0 #Base lwz r11, 0xC (r29) #Use slot (0 v 1) slwi r11, r11, 1 #3F0, 3F1 = P1, #3F2, 3F3 = P2 add r11, r11, r4 #Add in mult'd slot #Compare AND result vs User button cmpw r10, r6 lis r12, 0x8000 li r3, 0 beq- pressed #mask not pressed, reset button status li r0, 0 stbx r0, r11, r12 b end #r3 still 0 #Button pressed check and adjust status pressed: lbzx r0, r11, r12 cmpwi r0, 1 beq- end #r3 still 0 #Set status, set r3 to 1 li r0, 1 stbx r0, r11, r12 li r3, 1 #End end: # ########################## 2nd ASM Source #NOTE this carries over info from nearby 1st ASM #r10 = AND result #r11 = offset #r12 = 0x80000000 #Set User Button2 to replace C stick Right, will be used in 2nd ASM (stays intact) li r7, 0x0220 #Z-down used for assembling, adjust this to your needs #Add 1 to offset, can't collide with Button 1 status addi r11, r11, 1 #Compare AND result vs User button cmpw r10, r7 li r3, 0 beq- pressed #mask not pressed, reset button status li r0, 0 stbx r0, r11, r12 b end #r3 still 0 #Button pressed check and adjust status pressed: lbzx r0, r11, r12 cmpwi r0, 1 beq- end #r3 still 0 #Set status, set r3 to 1 li r0, 1 stbx r0, r11, r12 li r3, 1 #End end: #