Key Remapper; Classic [Vega] Classic Controller only. This code allows you to select a Button (Button 1) that will activate another Button (Button 2). Button 1's original function is disabled. Button 2 still behaves normally. XXXX = Button 1 YYYY = Button 2 X/Y Values: 0001 = Up 0002 = Left 0004 = Z (Right) 0008 = X 0010 = A 0020 = Y 0040 = B 0080 = Z (Left) 0200 = R 0400 = + 0800 = Home 1000 = - 2000 = L 4000 = Down 8000 = Right PAL C225AD74 00000007 881F005C 2C000002 4182000C 2C000007 4C820020 3960XXXX 819F0060 7D805839 4DA20020 7D8C5A78 618CYYYY 919F0060 4E800020 00000000 Code creator: Vega #C2 Hooked Address (blr of KPadRead) #NTSC-U Launch 802596A8 #NTSC-U Rev1 8025A278 #PAL 8025AD74 #Symbols .set ExtTypeOffset, 0x5C .set ChuckDumpOffset, 0x0 .set ClassicDumpOffset, 0x60 .set A, 0x10 .set Y, 0x20 .set B, 0x40 .set Chuck, 0x1 .set Classic, 0x2 .set ChuckMPlus, 0x6 .set ClassicMPlus, 0x7 #Make sure classic controller is being used #If not, SKIP code (blr) #r31 = Ptr to KPADStatus Struct check_kpad: lbz r0, ExtTypeOffset (r31) cmpwi r0, Classic beq- set_button_1 cmpwi r0, ClassicMPlus bnelr- #Set Button 1 set_button_1: li r11, 0x0040 #B used for assembling, adjust this to your needs #Load current buttons lwz r12, ClassicDumpOffset (r31) #Was Button 1 pressed? and. r0, r12, r11 beqlr+ #End code #Button 1 was pressed. Remove Button 1's value. xor r12, r12, r11 #Place in Button 2's value ori r12, r12, 0x0020 #Y used for assembling, adjust this to your needs #Write new buttons, end code write_new_buttons: stw r12, ClassicDumpOffset (r31) blr