############################################################################ # Project+ RSBE01.txt # # # # Requires GCTRealMate and the source folder provided to assemble the GCT! # # # # GCTconvert codes are compatible, if you want to add your own codes, go # # into Source/Extra/More.asm to add additional codes! # # If you wish to keep your new codes organized, you can also summon # # separate text files by using .include Source/ within more.asm, # # or simply add them to there, directly. To disable one, simply place an # # exclamation point in front of the name of that code! Enjoy Project+!! # # # # NOTE: This file is very close to its limit! Adding codes to BOOST.txt is # # recommended to not have the build fail to load on console! # # # ############################################################################ ############################################################################# ###################### Backend Codes ###################### ############################################################################# .include Source/Community/Hooktype.asm ###################################################### BA and BLA are usable instructions v1.3 [Eon, taukhan] ###################################################### .po<-flag 32000000 00000001 #if flag != 1 14000000 00000001 #set flag to 1 .goto->code flag: word 0; code: PULSE #80568100 { li r3, 0x2 #virtual address space = 0x00000000 word 0x7C7383A6 #mtibatl 1, r3 #sets instruction bat lower half li r3, 0x1FF #physical address space = 0x00000000 word 0x7C7283A6 #mtibatu 1, r3 #sets instruction bat upper half isync blr } * E2000001 80008000 ################################################## Memory Extention for FighterXResource2 [Dantarion] ################################################## int 0x91E80 @ $80421B54 int 0x91E80 @ $80421B74 int 0x91E80 @ $80421B94 int 0x91E80 @ $80421BB4 int 0x91E80 @ $80421E1C int 0x91E80 @ $80421E3C int 0x91E80 @ $80421EBC int 0x91E80 @ $80421EDC ############################################################### Memory Extension for CSS/SSS MenuResource (+0.88MB) [DukeItOut] ############################################################### int 0x73EA00 @ $80422384 ############################################ STGRESULT.PAC expansion (+3.5MB) [DukeItOut] ############################################ int 0x64CE00 @ $80422334 #.include Source/Project+/MemoryLayout.asm # Disabled due to incompatibility with the current Code Menu. Included for referential purposes. # When re-enabled, remove the two memory extension codes right above this .include line! # asm file will be fine-tuned when fully implemented to fix oversights within it. ############################################################################# Reset multipac stage lock status between Classic & All-Star matches [wiiztec] ############################################################################# HOOK @ $80044A34 { lwz r4, 0x8(r3) cmpwi r8, 0x1 bne- %END% lis r12, 0x8059 stw r15, -0x7D08(r12) } ########################################################### Stock/Frame Control not disabled in 300% Mode 1.1 [wiiztec] ########################################################### op li r0, 0 @ $806A5C94 op NOP @ $806844DC #################################### Special Mode flags clear [wiiztec] #################################### * 2156369C 41517A00 * 42000000 90000000 * 0217F378 00030000 * E0000000 80008000 ############################### Reflect is Bunny 1.1d [wiiztec] ############################### HOOK @ $806DF23C { lbz r8, 0x1C(r26) cmpwi r8, 0x2 bne- %END% li r8, 0x0 } HOOK @ $80946954 { lbz r0, 28(r31) lis r12, 0x9017 ori r12, r12, 0xF37C lbz r12, 0(r12) cmpwi r12, 0x2 bne- %END% mr r11, r0 addi r11, r11, 0x8 mr r0, r11 } ############################################### Explodey Items Use Normal Item Limit [Kapedani] ############################################### op li r3, 1 @ $809b0ec8 ############################################ Party Balls Use Normal Item Limit [Kapedani] ############################################ op li r3, 1 @ $809b0e5c ############################################ Bunny Hoods Use Normal Item Limit [Kapedani] ############################################ op li r3, 1 @ $809b0e2c ###################################################### mtRand::randi behaves as mtRand->randi(max) [Kapedani] ###################################################### op lwz r12, 0xc(r12) @ $8003fb08 # call mtRand->generate() instead of mtRand->randi() in mtRand::randf HOOK @ $8003fae8 # mtRand::randi { stwu r1, -0x40(r1) mflr r0 stw r0, 0x44(r1) stw r31, 0x3c(r1) mr r31, r4 lwz r12, 0x0(r3) lwz r12, 0xc(r12) mtctr r12 bctrl rlwinm r0, r3, 24, 8, 31 lis r3, 0x4330 stw r0, 0x1C(r1) xoris r0, r31, 0x8000 stw r3, 0x18(r1) lfd f2, -0x7BC8(r2) lfd f1, 0x18(r1) lfs f0, -0x7BC0(r2) fsubs f2,f1,f2 stw r0, 0x24(r1) stw r3, 0x20(r1) fdivs f2,f2,f0 lfd f1, -0x7BD0(r2) lfd f0, 0x20(r1) fsubs f0,f0,f1 fmuls f0,f0,f2 fctiwz f0,f0 stfd f0, 0x28(r1) lwz r3, 0x2C(r1) lwz r31, 0x3c(r1) lwz r0, 0x44(r1) mtlr r0 addi r1, r1, 64 blr } ####################################### Ragequit Accelerator [InternetExplorer] ####################################### op NOP @ $800F15D8 ########################################################################################################### Sudden Death Port Fix (Requires Analog C-Stick, L R, & Light-Shield Button Stored as Variables v2.1) [ds22] ########################################################################################################### op lwz r0, 0x44(r3) @ $8081AD08 op cmplwi r0, 0 @ $8081AD0C op beq- 0x30 @ $8081AD10 ###################################################### 1 Player Matches in Time Mode only [InternetExplorer] ###################################################### * C268D420 00000007 * 2C060000 4181000C * 39000001 48000020 * 2C060002 40800014 * 3D009017 6108F360 * 89080002 48000008 * 39000000 2C080000 * 60000000 00000000 * 0468D424 41820024 ############################ 1 Team Matches [spunit262] ############################ op li r3, 0 @ $8068D534 ##################################### Online Handicap Disable [spunit262] ##################################### op nop @ $806F3DA4 ##################################### Training Room Item Fix [ds22] ##################################### op nop @ $806D1704 ################ Infinite Replays ################ op nop @ $800E5DE8 op nop @ $80953184 op nop @ $80953224 ################################################### Allow Pausing When Set to Off v3 [standardtoaster] ################################################### HOOK @ $800505C8 { mfcr r12 lis r4, 0x8058; ori r4, r4, 0x4084 cmpwi r3, 0x0; bne- loc_0x18 li r3, 0x2 loc_0x18: stw r3, 0(r4) li r4, 0x8 mtcr r12 } ################################################## Match Loss Clears Pause Address [standardtoaster] ################################################## HOOK @ $808363AC { lis r4, 0x8058 ori r4, r4, 0x4084 li r12, 0x0 stw r12, 0(r4) li r4, 0x110 } ################################################# Match Win Clears Pause Address [standardtoaster] ################################################# HOOK @ $8083634C { lis r10, 0x8058 ori r10, r10, 0x4084 li r4, 0x0 stw r4, 0(r10) mr r5, r31 } ####################################################################### Pause Set to Off -> Hold Start to Pause v3 [standardtoaster, DukeItOut] # # v3: Made hold pause more stable by checking the pause status directly ####################################################################### HOOK @ $801E6D24 { lis r11, 0x8058 ori r11, r11, 0x4080 lwz r12, 4(r11) cmpwi r12, 0x2 # Todo: Find custom code setting 80584084 and make it just read menu settings bne- Finish lwz r12, -0x4350(r13)# \ lwz r12, 0x18(r12) # | Get pause status lwz r12, 0x3C(r12) # / cmpwi r12, 1 # If paused, do not rely on hold status. We want to unpause normally! beq- Clear # rlwinm. r12, r0, 0, 3, 3 beq- Clear lwzx r12, r11, r4 # \ cmpwi r12, 50 # | Pause hold timer is 50 frames. If held for that much, bge- Finish # / THEN act like a normal pause. addi r12, r12, 0x1 # \ Increment hold timer stwx r12, r11, r4 # / lis r12, 0x1000 # \ Filter out Start/Pause button sub r0, r0, r12 # / Kind of a risky way to do it but probably safe in this context. b Finish Clear: li r12, 0x0 # Clear hold timer stwx r12, r11, r4 # Finish: stw r0, 0(r30) # Original operation } ############################################# Allow 2x Speed Setting in Training [Magus] ############################################# * 041058C8 2C1E0006 * 041058E4 3BC00005 * 049629E8 40800008 * C29629F4 00000002 * 3860005A 41820008 * 38600078 00000000 ######################### Unrestricted Pause Camera ######################### op blr @ $800A7D60 op li r4, 1 @ $80109D88 ########################## Unrestricted Replay Camera ########################## op NOP @ $8009E934 op NOP @ $8009E93C op fmr f1, f3 @ $8009E9AC op fmr f3, f0 @ $8009E9B8 op fmr f0, f1 @ $8009E9BC op fmr f0, f3 @ $8009E9C8 ######################################################## Default Settings Modifier [Igglyboo, Brkirch, and FMK] ######################################################## * 24494A98 80000000 * 20523300 00000000 * 04523300 DEADBEEF * 42000000 90000000 * 0417F360 00000100 * 0417F364 04000A00 * 0417F368 08010100 * 0417F36C 00000000 * E0000000 80008000 ################################### Usage Storage Engine [Dantarion] ################################### * 060AF160 0000000C * 3C808058 38000012 * 388457F0 00000000 * 060AF180 0000000C * 3C608058 54A0083C * 386357F0 00000000 * 065857F0 00000024 * 04030F0D 110E120E * 1D1B1F1B 211B1E1B * 201B221B 2C0B2D11 * 321D331C 34133522 * 37203800 00000000 ################################################# [Legacy TE] Disable Challenger Approaches [ds22] ################################################# op stw r24, 8(r15) @ $806F5D58 ################################################################### [Legacy TE] CPUs can attack each other in Training Mode [Fracture] ################################################################### HOOK @ $806F1984 { lbz r3, 0xA(r29); ori r3, r3, 1 stb r3, 0xA(r29); } ################################################################ [Legacy TE] Set the number of CPUs to 0 in Training Mode [Sarrg] ################################################################ op li r31, 0 @ $80105AC8 op cmpwi r31, 0 @ $80105AD8 ############################################### [Legacy TE] Target Smash levels fix [DukeItOut] ############################################### HOOK @ $8010F984 { cmplwi r3, 0x33 ble+ multiplayer cmplwi r3, 0x39 blt- singleplayer multiplayer: li r29, 0x0 //only forces reset of stages for stable endless friendlies stw r29, 0(r4) //if actually a multiplayer-stage by design singleplayer: cmpwi r6, 0x0 } ############################################################ [Legacy TE] Always use PACs instead of PCS files [DukeItOut] ############################################################ op NOP @ $8084CB40 ########################################################################################################################## [Legacy TE] Display Stack Trace, Instruction, and Address Upon Crashing [UnclePunch, Fracture] (internal crash fix by Eon) ########################################################################################################################## HOOK @ $801D84C8 { mflr r0 stw r0, 4(r1) stwu r1, -1280(r1) addi r29, r1, 0x8 mr r3, r29 addi r4, r28, 0x174 crclr 6, 6 lis r12, 0x803F ori r12, r12, 0x89FC mtctr r12 bctrl add r29, r29, r3 lwz r25, 4(r30) li r26, 0x0 b checkValidPointer printStackTrace: loc_0x3C: lwz r6, 0(r25) mr r5, r25 lwz r7, 4(r25) addi r4, r28, 0x19C mr r3, r29 crclr 6, 6 lis r12, 0x803F ori r12, r12, 0x89FC mtctr r12 bctrl add r29, r29, r3 lwz r25, 0(r25) checkValidPointer: lis r0, 0x8000 cmplw r25, r0 blt printInstructionCrash lis r0, 0x8180 cmplw r25, r0 blt cont lis r0, 0x9000 cmplw r25, r0 blt printInstructionCrash lis r0, 0x9400 cmplw r25, r0 bge printInstructionCrash cont: #check Has Printed 6 lines cmplwi r26, 6 addi r26, r26, 0x1 blt+ printStackTrace printInstructionCrash: mr r3, r29 lis r4, 0x8046 ori r4, r4, 0x77D8 lwz r5, 408(r30) word 0x7CD302A6 #`mfdar r6` not supported by gctrm lis r12, 0x803F ori r12, r12, 0x89FC mtctr r12 bctrl subi r3, r13, 0x592C subi r4, r13, 0x5924 addi r5, r1, 0x8 lis r12, 0x801D ori r12, r12, 0xB7E8 mtctr r12 bctrl } op li r7, 0 @ $801dbf60 op li r8, 0 @ $801dbf68 .include Source/Community/TrailEffects.asm ###################################### Bone Visibility Stabilizer [DukeItOut] ###################################### # # Prevents a potential hang related # to trying to set up visibility of # model parts that do not exist. ##################################### HOOK @ $80043DD8 { lwz r0, 0xE8(r27) # \ addi r3, r1, 8 # | Retrieve bone info stw r0, 8(r1) # / bla 0x18EE4C # Will return bone count lwz r5, 0(r31) # Original operation: The bone switch's bone ID to check for. # It can be a problem if it is higher than the bone count! cmplw r3, r5 # Compare the bone to modify with the amount of bones this model has bgt+ %END% # Behave normally if the bone to be modified is present ba 0x043DF4 # Skip process for this check. This model doesn't have the bone to modify! } ####################################################################### [Project+] Turbo item does not fire curry shots in any mode [DukeItOut] ####################################################################### half 0x4800 @ $8083A0A0 #################################################################################################################################### [Project+] Item Frequency None if all items turned off and Items spoofed off if item frequency None (ItemEx Edition) [Eon, Kapedani] #################################################################################################################################### .macro lwi(, ) { .alias temp_Hi = / 0x10000 .alias temp_Lo = & 0xFFFF lis , temp_Hi ori , , temp_Lo } #If all items turned off, save Item frequency as None HOOK @ $806aa9bc { cmpwi r27, 0 bne end rlwinm. r12,r28,0,13,31 # 0x0007FFFF bne end li r29, 0 end: stb r29, 0(r3) } #If Item Frequency None, pretend all items are turned off #sqVsMelee HOOK @ $806dcf58 { lbz r0, 0x0(r25) cmpwi r0, 0 bne %end% stw r0, 0x34(r31) stw r0, 0x30(r31) } #sqSpMelee HOOK @ $806def74 { lbz r0, 0x0(r29) cmpwi r0, 0 bne %end% stw r0, 0x34(r27) stw r0, 0x30(r27) } ##################################################### Subspace uses same Internal Constants as Versus [Eon] ##################################################### word 0x0 @ $80B868D8 ############################################## Preloaded Texture memory leak band-aid [Eon] ############################################## HOOK @ $801f2f40 { subi r4, r13, 0x5970 cmpwi r3, 0 bne %end% lis r12, 0x801f ori r12, r12, 0x2f60 mtctr r12 bctr } HOOK @ $801f3058 { mr r31, r3 cmpwi r3, 0 bne %end% lis r12, 0x801f ori r12, r12, 0x30a8 mtctr r12 bctr } .include Source/ProjectM/CloneEngine.asm .include Source/CodeMenu/CodeMenu.asm .include Source/CodeMenu/BigHeadMode.asm .include Source/CodeMenu/RandomAngleMode.asm .include Source/Project+/TripRate.asm .include Source/Project+/CompressPAC.asm .include Source/Project+/FilePatchCode.asm .include Source/Project+/Memory.asm ############################################################################# ###################### Engine Codes ####################### ############################################################################# ############################################# Shorthop Footstool Multiplier (0.75x) [Magus] ############################################# HOOK @ $8086B830 { stfd f0, 24(r2) lis r5, 0x3F40 stw r5, 16(r2) lfs f0, 16(r2) fmuls f1, f1, f0 stfs f1, 36(r1) lfd f0, 24(r2) } ########################################## Meteor Cancel Delay Subtractor (-4) [ds22] ########################################## HOOK @ $80856238 { lis r10, 0x4080 stw r10, 0x70(r25) lfs f1, 0x70(r25) fsubs f0, f0, f1 stfs f0, 0x6C(r25) } ########################################################## Custom Requirements v1.3 (ProjectM) [Magus, Sammi-Husky] ########################################################## * C27854B0 0000003B * DBC20010 DBE20018 * 38600001 2C040053 * 408001BC 815C0068 * 812A0074 810A0078 * 80FC0070 80E70020 * 80E7000C 80E70134 * 2C04004D 41820030 * 2C04004E 41820070 * 2C04004F 41820080 * 2C040050 4182008C * 2C040051 41820094 * 2C040052 41820098 * 48000168 88EA00AE * 88CA00B0 2C070002 * 4180000C 2C060002 * 40A00150 C3CA0038 * C3EA003C EFDE07B2 * EFFF07F2 EFDEF82A * 3CE080B8 60E78350 * C3E70000 EFFF07F2 * FC1EF840 40800128 * 48000120 7D264078 * 54C60739 40820118 * 2C070001 41820110 * 48000108 55260739 * 40820104 2C070001 * 408000FC 480000F4 * 7D274078 54E604EB * 408200EC 480000E4 * 552604EB 408200E0 * 480000D8 806600D8 * 8063001C 81830000 * 818C00F8 7D8903A6 * 4E800421 7C7C1B78 * 2C1C0000 418200B4 * 7F64DB78 38610450 * 3D808078 618C2320 * 7D8903A6 4E800421 * 81810450 38610450 * 818C0014 7D8903A6 * 4E800421 2C030001 * 40820080 81810450 * 38610450 38800000 * 818C0010 7D8903A6 * 4E800421 38000000 * 90610038 9801003C * 8001003C 90610320 * 90010324 88010324 * 28000001 4082000C * 38000000 48000008 * A0030006 7F830038 * 7C0300D0 7C001B78 * 54030FFE 2C030001 * 40820020 A005000C * 80C10524 80C600D8 * 80C60070 88C600A5 * 7C003000 41820008 * 38600000 CBC20010 * CBE20018 60000000 #SDI Input (4D), Any Shield Input (4E-4F), Any Taunt Input (50-51), Specific Hitbox Connects (52) #Syntax is XXXXYYYY #X = HitboxID #Y = Hit Requirement ############################################################# Bit Variables Beyond 255 and Negative Offset Variables [Magus] ############################################################# * C27AC9E4 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27ACA04 00000003 * 54AC0211 54A5027E * 41A20008 7CA500D0 * 60000000 00000000 * C27ACB78 00000003 * 54AC0211 54A5027E * 41A20008 7CA500D0 * 60000000 00000000 * C27ACB98 00000003 * 54AC0211 54A5027E * 41A20008 7CA500D0 * 60000000 00000000 * C27ACAA0 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27ACAC0 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27AD114 00000003 * 57CC0211 57C5027E * 41A20008 7CA500D0 * 60000000 00000000 * C27AD15C 00000003 * 57CC0211 57C5027E * 41A20008 7CA500D0 * 60000000 00000000 * C27ACBB8 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27ACBD8 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27ACCA0 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27ACCC0 00000003 * 548C0211 5484027E * 41A20008 7C8400D0 * 60000000 00000000 * C27AD528 00000003 * 57CC0211 57C4027E * 41A20008 7C8400D0 * 60000000 00000000 * C27AD570 00000003 * 57CC0211 57C4027E * 41A20008 7C8400D0 * 60000000 00000000 * C27ACCEC 00000003 * 5480027E 7C002E70 * 548C0211 41A20008 * 7C0000D0 00000000 * 047ACCF8 60000000 * C27ACD20 00000003 * 5480027E 7C002E70 * 548C0211 41A20008 * 7C0000D0 00000000 * 047ACD2C 60000000 * C27ACD54 00000003 * 5480027E 7C002E70 * 548C0211 41A20008 * 7C0000D0 00000000 * 047ACD60 60000000 ############################################# Multiply Frame Speed Modifier Command [Magus] ############################################# HOOK @ $80724820 { cmpwi r31, 0x2 bne+ loc_0x10 lfs f1, 76(r24) fmuls f30, f1, f30 loc_0x10: fmr f1, f30 } ###################################### Shieldstun Modifier v2.0 [Magus, ds22] ###################################### HOOK @ $808753FC { stfd f31, 0x10(r2) fsubs f31, f31, f1 lis r4, 0x4036; ori r4, r4, 0xDB70; stw r4, 0x20(r2) //0x4036D870 = 2.8571434 lfs f0, 0x20(r2); fmuls f31, f31, f0 lis r4, 0x408E; ori r4, r4, 0x6666; stw r4, 0x20(r2) //0x408E6666 = 4.45 lfs f0, 0x20(r2); fadds f31, f31, f0 lis r4, 0x3EE5; ori r4, r4, 0x1531; stw r4, 0x20(r2) //0x3EE51531 = 0.4474273 lfs f0, 0x20(r2); fmuls f31, f31, f0 lis r4, 0x4000; stw r4, 0x20(r2) //0x40000000 = 2.0 lfs f0, 0x20(r2); fadds f31, f31, f0 fctiwz f0, f31 stfd f0, 0x20(r2) lwz r28, 0x24(r2) lfd f31, 0x10(r2) } ################################ Defender Shield Pushback [Magus] ################################ HOOK @ $808755AC { stfd f2, 0x10(r2) stfd f3, 0x18(r2) lis r10, 0x80B8 ori r10, r10, 0x8464 lfs f3, 8(r10); fdivs f2, f30, f3 lfs f3, 4(r10); fsubs f2, f2, f3 lfs f3, 0(r10); fdivs f2, f2, f3 lis r12, 0x3E8A; ori r12, r12, 0x3D71; stw r12, 32(r2) lfs f3, 32(r2); fmuls f2, f2, f3 lis r12, 0x3F99; ori r12, r12, 0x999A; stw r12, 32(r2) lfs f3, 32(r2); fadds f2, f2, f3 lfs f3, 8(r10); fmuls f2, f2, f3 lfs f3, -23460(r2); fcmpo cr0, f2, f3; ble+ loc_0x68 fmr f2, f3 loc_0x68: fmuls f1, f2, f1 lfd f2, 0x10(r2) lfd f3, 0x18(r2) } ########################################################################## Powershield Window Doesn't Decrement in Hitlag or 2x Rate in Guard [Magus] ########################################################################## op b 0x20 @ $80875164 int 0x20000 @ $80FC2230 ############################################################## Disable Footstool During Paralyze [Dantarion, standardtoaster] ############################################################## HOOK @ $8083D134 { lwz r29, 20(r28) lhz r29, 90(r29) cmpwi r29, 0xA9 # If in the paralyzer subaction bne+ fsOkay # li r3, 0x1 # don't allow footstool. fsOkay: stb r0, 4(r27) } ########################################################################## No Autosweetspot Ledges v1.3&K [spunit262, Dantarion, Magus, DukeItOut] # # v1.2: Cleaned up code # v1.3: Made an exception for Knuckles' wall climb so it could grab ledges ########################################################################## HOOK @ $807812B0 { cmpwi r4, 0xA; bne+ normal lwz r12, 0x28(r1) # cmplwi r12, 0x100 # \ Sometimes input buffer goes through here. blt+ normal # / It's not doing what we expect so this makes it skip that! lwz r11, 0x110(r12) # Get the instance ID lwz r12, 0x3C(r1) cmpwi r11, 0x2D # Is it Knuckles? bne+ notEchidna lwz r11, 0x7C(r12) lhz r7, 0x3A(r11) cmpwi r7, 0x117 # Is Knuckles climbing a wall? beq normal # Let them grab the ledge! notEchidna: notWallClimb: lwz r11, 0x18(r12) lfs f0, 0x10(r11) lfs f1, 0x1C(r11); fcmpo cr0, f0, f1; bge+ noSweetspot fsubs f0, f1, f0 lfs f1, -0x6A04(r2); fcmpo cr0, f0, f1; bge+ normal noSweetspot: li r0, 0x0 normal: rlwinm. r0, r0, 25, 31, 31 } #################################################### No Air Dodge in tumble [spunit262, Phantom Wings] #################################################### * C2781310 00000006 * 80980000 2C040021 * 40A20020 8097007C * 80840034 2C040042 * 41A00010 2C040049 * 41A10008 38600000 * 39610040 00000000 ###################################### Tech Window v0.10 [spunit262, Magus] ###################################### * C277F190 00000011 * 80810010 2C040046 * 41A00078 2C04004C * 41A10070 80BF0068 * 88C5008F 2C060014 * 40A00060 88E5008E * 2C070028 41800054 * 2C040049 4182004C * 41A00008 3884FFFC * 3884FFBA 5484083C * 38840060 2C040062 * 4181002C 41820010 * 80C50038 54C66D3E * 48000010 80C5003C * 7CC69E70 38C6FFEC * 2C0607D0 41A00008 * 60840001 90810010 * 60000000 00000000 ####################################### Melee Air Dodge Angle & Scaling [Magus] ####################################### HOOK @ $8077F77C { cmpwi r28, 0x21 bne+ loc_0xA4 lwz r10, 0x70(r31) lwz r10, 0x20(r10) lwz r9, 0x18(r10) cmpwi r9, 0x4A blt- loc_0xA4 lwz r9, 20(r10) lwz r8, 104(r31) lfs f1, 56(r8) lfs f2, 60(r8) lis r7, 0x3FA3 ori r7, r7, 0xD70A stw r7, 16(r2) lfs f3, 16(r2) fmuls f1, f1, f3 fmuls f2, f2, f3 fmuls f3, f1, f1 fmuls f4, f2, f2 fadds f3, f3, f4 word 0xFC601834 # fsqrte f3, f3 # TODO: fix fsqrte f3, f3 in GCTRM lfs f4, -23464(r2) fcmpo cr0, f3, f4 bge- loc_0x9C fmuls f1, f1, f3 fmuls f2, f2, f3 fcmpo cr0, f1, f4 ble+ loc_0x74 fmr f1, f4 loc_0x74: fcmpo cr0, f2, f4 ble+ loc_0x80 fmr f2, f4 loc_0x80: lfs f4, -23452(r2) fcmpo cr0, f1, f4 bge+ loc_0x90 fmr f1, f4 loc_0x90: fcmpo cr0, f2, f4 bge+ loc_0x9C fmr f2, f4 loc_0x9C: stfs f1, 0xB0(r9) stfs f2, 0xB4(r9) loc_0xA4: lwz r3, 0x44(r30) } ################################################ Momentum Capture v4.4 [Phantom wings, spunit262] ################################################ HOOK @ $808669D8 { lwz r4, 0x70(r29) lwz r4, 0x20(r4) lwz r4, 0x0C(r4) lwz r4, 0x2D0(r4) lwz r4, 0x4(r4) lwz r4, 0x30(r4) b loc_0x20 loc_0x1C: li r4, 0xFFFF loc_0x20: lwz r3, 124(r29) lhz r7, 6(r3) lwz r3, 56(r3) cmpwi r3, 0xB bne+ loc_0x74 lis r0, 0x4540 stw r0, 12(r27) lfs f2, 12(r27) subi r5, r2, 0x1554 loc_0x44: lwzu r6, 4(r5) srawi. r0, r6, 24 blt- loc_0x58 cmpw r0, r4 bne+ loc_0x44 loc_0x58: rlwinm r0, r6, 0, 9, 31 xoris r0, r0, 17728 stw r0, 12(r27) lfs f0, 12(r27) fsub f0, f0, f2 lfs f1, 8(r27) fmul f1, f1, f0 loc_0x74: cmpwi r3, 0x22 blt- loc_0x8C cmpwi r4, 0x2F bne+ loc_0x90 cmpwi r7, 0x112 blt+ loc_0x90 loc_0x8C: stfs f1, 8(r27) loc_0x90: } HOOK @ $8077F794 { lwz r0, 0x34(r30) sth r0, 6(r30) lwz r0, 0x48(r30) } ###################################################################### DamageFlyRoll Animation is Based on KB Instead of Total Damage [Magus] ###################################################################### HOOK @ $8076E0F0 { lis r12, 0x4387 stw r12, 0x10(r2) lfs f0, 0x10(r2) fcmpo cr0, f28, f0 } ################################################ Electric Element Uses Normal Hitlag Type [Magus] ################################################ op nop @ $8076D254 op nop @ $808761C8 ############################################################### Attacker Never has Electric Hitlag [Dantarion, Standardtoaster] ############################################################### op b 0x6C @ $8076E228 ###################################################### Disable Vertical Boost on Tumble KB [Dantarion, Magus] ###################################################### op lfs f2, -0x72C0 (r30) @ $8086DBDC ################################################################################################# Reset Variables on Action Changes & RCO Lag Fix v2 [standardtoaster, ds22, Magus, DukeItOut, Eon] ################################################################################################# .alias action = 28 .alias situation = 29 HOOK @ $8077F780 { #isFighter() lwz r3, 0x8(r31) lwz r12, 0x3C(r3) lwz r12, 0xA4(r12) mtctr r12 bctrl cmpwi r3, 0 bne end #not 0 = not a fighter checkOne: #getSituationKind = getGrounded state, 0 = grounded, 1 = air lwz r3, 0xD8(r31) lwz r3, 0x14(r3) lwz r12, 0x0(r3) lwz r12, 0x14(r12) mtctr r12 bctrl mr situation, r3 cmpwi action, 0x19; beq checkTwo cmpwi action, 0xE; blt checkGrounded cmpwi action, 0x10; ble checkTwo cmpwi action, 0x112; blt checkGrounded cmpwi action, 0x115; ble saveOne checkGrounded: cmpwi situation, 0; bne checkTwo #if not grounded saveOne: lwz r3, 0xD8(r31) lwz r3, 0x64(r3) lis r4, 0x1100 fsubs f1, f1, f1 lwz r12, 0x0(r3) lwz r12, 0x3C(r12) mtctr r12 bctrl #set LA-Float[0] = 0.0 #landing lag count checkTwo: cmpwi situation, 0x0; beq setLedgeGrab #if grounded cmpwi action, 0xBD; bne notDead #if not in death animation death: lwz r3, 0xD8(r31) lwz r3, 0x64(r3) li r4, 0 lis r5, 0x1000 addi r5, r5, 81 lwz r12, 0x0(r3) lwz r12, 0x1C(r12) mtctr r12 bctrl #set LA-Basic[81] = 0 #agt count b setLedgeGrab notDead: cmpwi action, 0x44; bne end #if not GroundedHitstun end setLedgeGrab: lwz r3, 0xD8(r31) lwz r3, 0x64(r3) li r4, 0 lis r5, 0x1000 addi r5, r5, 79 lwz r12, 0x0(r3) lwz r12, 0x1C(r12) mtctr r12 bctrl #set LA-Basic[79] = 0, ledgegrab count end: stw r28, 0x38(r30) li r29, 1 lwz r3, 0x44(r30) } ################################################################## Tether Limit is 1 for Zair and 2 for others V1.2 [standardtoaster] ################################################################## HOOK @ $808E9470 { lwz r7, 96(r25) lwz r7, 124(r7) lhz r7, 6(r7) cmpwi r7, 0x82 ble- loc_0x1C cmpwi r3, 0x2 b %END% loc_0x1C: cmpwi r3, 0x1 } ####################### Melee 361 Angle [Magus] ####################### float 44.0 @ $80B87ABC float 32.0 @ $80B87AC0 float 32.1 @ $80B87AC4 ################################################################## Weight Independent Knockback and Forced Tumble on Throws [Magus] ################################################################## HOOK @ $80769EA0 { lbzx r0, r3, r0 lwz r10, 52(r24) cmpw r10, r27 bgt+ 0x2C li r0, 0x0 lbz r10, 36(r27) cmpwi r10, 0xBF bne+ 0x1C lwz r10, 60(r23) lwz r9, 112(r10) lwz r9, 36(r9) lwz r9, 12(r9) li r8, 0x2329 stw r8, 4(r9) } ########################################################## [Project+] Can Grab Characters Slightly Behind [DukeItOut] ########################################################## HOOK @ $80756984 { fmuls f0, f1, f0 # original operation lis r3, 0xC0D0 # \ stw r3, -0x4(r1) # | -6.5 units maximum behind lfs f31, -0x4(r1) # / } ################################################ Shield Break Minimum Disabled Time Fix [Magus] ################################################ HOOK @ $80875D40 { fcmpo cr0, f31, f1 bge+ 0x8 fmr f31, f1 fcmpo cr0, f1, f1 } ####################################################### Outside Damage Grab Break Uses Current Hit Only [Magus] ####################################################### op stfs f1, 0x0028 (r29) @ $807712C8 ################################################# Item Throw XY Velocity are Scaled Equally [Magus] ################################################# HOOK @ $809C1868 { lfs f3, 224(r28) fmuls f3, f3, f1 stfs f3, 224(r28) lfs f3, 4(r31) } ############################################# Slopes do not Affect Landing Velocity [Magus] ############################################# op fneg f2,f2 @ $80794634 op fmr f0,f2 @ $8079463C ###################################################################### Traction 2x on Non-Dash Character Momentum > Max Walking Speed [Magus] ###################################################################### * C2794D3C 00000010 * 3C808100 60840000 * 7C1A2000 41800060 * 3C808170 60840000 * 7C1A2000 41810050 * 809A004C 7C04F000 * 40820044 809A001C * 808400D0 C0040024 * FC201A10 FC000840 * 4082002C C0240020 * C01E0008 FC000210 * FC000840 40810018 * C01E0008 EC23182A * EC00082A C03E000C * 48000010 C01E0008 * C03E000C EC00182A * 60000000 00000000 ################################################################ Dash Exit into Wait, Dash, and Taunt Keep Full Velocity [Magus] ################################################################ * C284FFA4 0000000D * 9421FFF0 BFC10008 * 7FE802A6 3FC08085 * 63DE5C9C 7C1FF000 * 40820040 3FC080B8 * 63DEB33C 7C03F000 * 40A20030 2C1C0000 * 41820018 2C1C0003 * 41820010 2C1C010C * 41820008 48000014 * 3FE03F80 93E20010 * C0220010 48000008 * C023CF54 BBC10008 * 38210010 00000000 #################################################### Guard On Momentum Limit Attribute is Ignored [Magus] #################################################### HOOK @ $8086CF44 { lfs f2, 8(r1) fmr f1, f2 fabs f1, f1 fneg f3, f1 } ########################################### Powershield Reflect Sets Variable [Magus] ########################################### * C2840820 0000000D * 3D808180 80830060 * 7C046000 40800050 * 80A4007C 7C056000 * 40800044 A0A50036 * 2C05001A 41800038 * 2C05001D 41810030 * 80C40070 7C066000 * 40800024 80C60024 * 7C066000 40800018 * 80C6001C 7C066000 * 4080000C 38E00004 * 98E60002 80630060 * 60000000 00000000 ################################################ GuardOn Animations Allow In Transition [Magus] ################################################ * C2874B34 00000006 * 819B007C A18C0036 * 2C0C001A 40A20018 * 819B0014 818C0040 * 3D604080 7C0C5800 * 41800008 4E800421 * 60000000 00000000 ############################################################# Jump Direction Determined Last Frame of Jump Squat [Magus] ############################################################# * C286BBB8 00000008 * 3CA09019 60A5A158 * DBE50000 C0230010 * 809E0018 C3E40040 * EC2107F2 FC200850 * 809E0070 80840020 * 80840014 D0240018 * C0230010 CBE50000 * EFFF0072 00000000 * 04FADD18 11000006 ######################################### Melee Character Pushing Mechanics [Magus] ######################################### float 0.3 @ $80F9FF0C float 0.0 @ $80F9FF10 ############################################################# Dream Land Wind Uses TopN-X for Collision Detection [Magus] ############################################################# * C2041D68 00000007 * C0040000 3D208001 * 61291044 7D4802A6 * 7C095000 40A2001C * 3CE03D8F 60E75C29 * 810309FC 7C074000 * 40A20008 C004FFF4 * 60000000 00000000 * C2041D98 00000004 * C0040008 7C095000 * 40A20010 7C074000 * 40A20008 C004FFF4 * 60000000 00000000 ############################################################# KO Ownership Timer doesn't Trigger on Certain Actions [Magus] ############################################################# HOOK @ $8083C320 { cmpwi r25, 0x4A; beq- 0x14 # Hitting the ground in tumble cmpwi r25, 0x60; beq- 0xC # Teching the ground cmpwi r25, 0x61; bne+ 0x10 # Tech roll li r3, 0xFFFF cmpwi r3, 0xFFFF; b 0x8 cmpwi r0, 0xFFFF } ##################### Momentum Capture Data ##################### CODE @ $805A7DD0 { fcmpu cr6,f0,f2 } ############################################ Hitstun Modifier [Phantom Wings, spunit262] ############################################ * 02B88F48 00030001 #* 04B87AA8 3ECCCCCD # Hitstun mult written by code menu, so disabled here ########################################## Tripping Rate is 0 V3.1 [Kapedani] ########################################## * op stfs f1, 0x04D0(r3) @ $8081bd54 * op lfs f1, -0x4BBC(r31) @ $809a9a44 ################################################## Triple Jump Glitch Fix [Phantom Wings, spunit262] ################################################## op addi r4, r3, 3 @ $80858DCC ###################################################################### [Project+] Wiggle out of Tumble Window extended to 2 frames [Fracture] ###################################################################### int 2 @ $80B88F64 ####################################################### [Project+] Left-Facing Crawl Momentum Fix [Sammi Husky] ####################################################### op fdivs f1, f0, f31 @ $80873B54 ####################################################### [Project+] Glancing Blow Threshold is Zero [Magus, Eon] ####################################################### float 0.0 @ $80AD7204 ###################################################### Don't drop fighter generated items when hit [Kapedani] ###################################################### .alias BaseItem__getCreaterItem = 0x8099302c .alias g_ftEntryManager = 0x80B87c48 .alias ftEntryManager__getEntryIdFromTaskId = 0x80823f90 .macro lwd(, ) { .alias temp_Lo = & 0xFFFF .alias temp_Hi_ = / 0x10000 .alias temp_r = temp_Lo / 0x8000 .alias temp_Hi = temp_Hi_ + temp_r lis , temp_Hi lwz , temp_Lo() } .macro lwi(, ) { .alias temp_Hi = / 0x10000 .alias temp_Lo = & 0xFFFF lis , temp_Hi ori , , temp_Lo } .macro call() { %lwi(r12, ) mtctr r12 bctrl } .macro branch() { %lwi(r12, ) mtctr r12 bctr } HOOK @ $808411ac ## Fighter::dropItemCheck { addi r4, r1, 0x34 # \ li r5, 0 # | lwz r3, 0xd8(r30) # | lwz r3, 0xa8(r3) # | moduleAccesser->enumerationStart->itemManageModule->getHaveItem(&soItemInfo, 0) lwz r12, 0x0(r3) # | lwz r12, 0x5C(r12) # | mtctr r12 # | bctrl # / lwz r3, 0x38(r1) # itemInfo.baseItem isItem: stw r3, 0x38(r1) # itemInfo.baseItem = item %call (BaseItem__getCreaterItem) cmpwi r3, 0x0 bne+ isItem lwz r3, 0x38(r1) # \ lwz r4, 0x8C8(r3) # / itemInfo.baseItem->emitterTaskId %lwd (r3, g_ftEntryManager) # \ li r5, 0 # | %call (ftEntryManager__getEntryIdFromTaskId) # | Check if emitterTaskId belongs to a fighter cmpwi r3, 0 # | blt+ dropItem # / noDropItem: %branch (0x808412f4) dropItem: lwz r3, 0x00D8 (r30) # Original operation } ################################################## [Project+] Rolls Don't Cancel Knockback [Fracture] ################################################## op NOP @ $80885020 ################################################ [Project+] Character Ledge Unsnap fix [Fracture] ################################################ int 0x20000 @ $80FC2AB0 int 0x20000 @ $80FC2AB8 ########################################################## [Project+] Angle 365 negative y speed capped at -0.5 [Eon] ########################################################## HOOK @ $80869AB0 { lis r19, 0xBF00 # \ stw r19, 0xC(r29) # | load a value of -0.5 lfs f1, 0xC(r29) # / fcmpo cr0, f0, f1 # \ bgt- notTooFast # | if f0 is more negative than -0.5, then force it to be -0.5 fmr f0, f1 # / notTooFast: stfs f2, 0x190(r1) # original operation } ################################################## [Project+] Disable Screen-KOs in teams [ds22, Eon] ################################################## HOOK @ $8087C310 { lis r15, 0x80b8 lwz r15, 0x7C28(r15) lwz r15, 0x6E(r15) andi. r15, r15, 0x8 beq normalCheck #if items enabled = casuals, dont enable lis r15, 0x805A lwz r15, 0xE0(r15) lwz r15, 0x08(r15) lbz r15, 0x16(r15) cmpwi r15, 0 bne normalCheck lis r15, 0x9018 addi r15, r15, 0xB73 lbz r15, 0(r15) cmpwi r15, 0x1; beq- forceStarKO normalCheck: cmpw r3, r26; b %END% forceStarKO: li r15, 0x0 cmpwi r15, 0x1 } ###################################### [Project+] Melee Tech Rolls [Fracture] ###################################### float 1.0 @ $80B883B8 #tech roll knockback multiplier (default of 0.1) HOOK @ $8089DBD0 { lwz r3, 0xD8(r30) lwz r3, 0x70(r3) lwz r3, 0x34(r3) cmpwi r3, 0x61; beq dontSlideoff #techRoll cmpwi r3, 0x1E; beq dontSlideOffLater #spotdodge cmpwi r3, 0x1F; beq dontSlideOffLater #rollF cmpwi r3, 0x20; beq dontSlideOffLater #rollB slideoff: li r3, 1 b %end% dontSlideOffLater: lwz r3, 0xD8(r30) lwz r3, 0x8(r3) addi r3, r3, 60 lwz r3, 0x4(r3) lis r4, 0x3F80 cmpw r3, r4 beq slideoff dontSlideoff: li r3, 0x0 } ############################################################# [Project+] Player Can Drift if Hitstun Ends Prematurely [Eon] ############################################################# HOOK @ $808674f4 { _start: lwz r8, 8(r5) cmpwi r8, 0xA1 blt _AllowDrift #if action less than any hitstun action, allow drift cmpwi r8, 0xA9 bgt _AllowDrift #if action greater than any hitstun action, allow drift b _end _AllowDrift: li r3, 0 #result of comparison is ble'd, so 0 is loaded in to force result to be true _end: cmpwi r3, 0 } ############################################################################################################### [Project+] Customizable Attacker Hitlag Modifier [DukeItOut] # # Place value 48495421 into RA-Basic[10] to eliminate hitlag for the attacker # Place value 48495478 into RA-Basic[10] to make the scalar in RA-Basic[12] be an additional multiplier # for the attacker's hitlag # Place value 6869743A into RA-Basic[10] to make the value in RA-Basic[12] be the attacker's hitlag ############################################################################################################### HOOK @ $8083FFBC { lwz r3, 0x60(r3) # Original operation lwz r6, 0x70(r3) # \ lwz r6, 0x24(r6) # | Access RA-Basics lwz r6, 0xC(r6) # / lwz r5, 40(r6) # We want RA-Basic[10] (10*4 = 40) lis r12, 0x4849 # \ "HIT!" (48495421) ori r12, r12, 0x5421 # / cmpw r5, r12 # If that's what the ASCII in RA-Basic[10] says . . . . beq- NoHitlag # Then there will be no hitlag! lis r12, 0x4849 # \ "HITx" (48495478) ori r12, r12, 0x5478 # / cmpw r5, r12 beq- MultiplyHitlag lis r12, 0x6869 # \ "hit:" (6869743A) ori r12, r12, 0x743A # / cmpw r5, r12 bne+ %END% SetHitlag: lwz r4, 48(r6) # Access RA-Basic[12] (12*4 = 48) b ModifiedHitlag MultiplyHitlag: lwz r5, 48(r6) # \ Access RA-Basic[12] (12*4 = 48) mullw r4, r4, r5 # / and multiply the current hitlag by it li r5, 0 # \ ori r5, r5, 60000 # | Scalars are really just ints * 60000 divw r4, r4, r5 # / Convert back into an int! ModifiedHitlag: cmpwi r4, 0 # \ bge- %END% # / Safety to prevent people trying to force negative hitlag NoHitlag: li r4, 0 # No frames of hitlag! } ############################################################ Defender Electric Hitlag disabled by 2.0x trip chance [Eon] ############################################################ HOOK @ $8076E410 { lwz r3, 0x60(r4) #load hitbox triprate lis r4, 0x4000 #load 2.0 into r26 cmpw r3,r4 #compare beq _force #if equal, pretend not electric hitlag cmplwi r0,3 #original compare, check for electric type b _end _force: cmpwi r4,0 #always not equal _end: } ######################################################### Knockback during Timer Slo-mo is also slowed down v2.0 [Eon] ######################################################### #Multiply Knockback Decay Rate by current Timer-speed HOOK @ $80869c10 { fmr f30, f1 #this.slowModule.getRate() lwz r3, 0xD8(r30) lwz r3, 0xB8(r3) lwz r12, 0x8(r3) lwz r12, 0x3C(r12) mtctr r12 bctrl fmuls f1, f1, f30 lfs f2, 0x4(r31) } #moves knockback to be multiplied by timer, instead of excluded from the calculation #knockback is movement ID 2, so changing bitmasks appropriately adds it to normal movement types op li r29, 3 @ $8070f0ac #was 1, added 2 to the bitmask op li r30, -12 @ $8070f0d8 #was -10, added 2 to the bitmask #if isSkip, dont decrement hitstun HOOK @ $80838960 { #this.slowModule.isSkip() lwz r3, 0xD8(r31) lwz r3, 0xB8(r3) lwz r12, 0x8(r3) lwz r12, 0x40(r12) mtctr r12 bctrl cmpwi r3, 1 bne cont lis r12, 0x8083 ori r12, r12, 0x8A14 mtctr r12 bctr cont: lwz r3, 0xD8(r31) } ############################################## Slow-mo timer Continues even when Linked [Eon] ############################################## HOOK @ $80766B80 { bctrl lwz r3, 0x28(r31) cmpwi r3, 0 ble skip subic. r0, r3, 1 stw r0, 0x28(r31) bgt skip li r4, 1 stw r0, 0x34(r31) stw r0, 0x24(r31) skip: li r3, 1 } ############################################################## [Project+] DK Cargo Uses default Grab Hold time reduction per frame [Eon] ############################################################## HOOK @ $8089156c { lis r12, 0x80B8 ori r12, r12, 0x84A8 lfs f2, 0(r12) } ################################################################### [Project+] Grabbed Opponents face opposite way from grabber [Eon] ################################################################### HOOK @ $8077161c { #getParentLr lwz r3, 0xD8(r30) lwz r3, 0x54(r3) lwz r12, 0(r3) li r4, 0 lwz r12, 0xA8(r12) mtctr r12 bctrl #invert direction fneg f1,f1 #setLr lwz r3, 0x10(r31) lwz r3, 0xD8(r3) lwz r3, 0xC(r3) lwz r12, 0(r3) lwz r12, 0x30(r12) mtctr r12 bctrl lwz r4, 0x10(r31) } ######################################################### [Project+] Throws Don't Trip on Grounded Banana 2.0 [Eon] ######################################################### HOOK @ $8076CEB0 { li r24, 9 lwz r3, 0x7C(r18) lhz r3, 0x3A(r3) cmpwi r3, 0x3C bne %end% lis r3, 0x8076 ori r3, r3, 0xd61c mtctr r3 bctr } ################################################################################## [Project+] Floating Point Imprecision compensation for Collision tests v1.1 [Eon] ################################################################################## #ECB-Model split at Edge Fix for stationary plats op ble 0x280 @ $80125430 ######################################################### [Project+] Faux Super Armour Port Priority Fix v1.1 [Eon] ######################################################### HOOK @ $80710840 { lwz r4, 0x70(r3) lwz r4, 0x38(r4) cmpwi r4, 0x40 beq getHit cmpwi r4, 0x3b beq getHit armour: #grab armour/what faux super armour did li r4, 1 b %end% getHit: #clear release damage lwz r3, 0x38(r3) lwz r3, 0x40(r3) li r4, 0 lwz r12, 0(r3) lwz r12, 0xC(r12) mtctr r12 bctrl li r4, 0 stw r4, 0x94(r3) lwz r3, 0xD8(r31) li r4, 0 } op mr r0, r5 @ $80772238 #in hitlag bit toggle removed op nop @ $807722a4 #hitlag frames removal removed ####################################################################### [Project+] Zair Requires Z press instead of A press while holding shield [Eon] ####################################################################### word 0x30 @ $80faa730 ################################################ [Project+] Moving Platform Landing Fixes [Eon] ################################################ HOOK @ $80129A34 { addi r3, r1, 0x198 #prevPlatLocation mr r4, r29 #prevECB addi r5, r1, 0xE8 #result #projectionX/[clSegment2D](prevPlat, prevECB, projectionResult) lis r12, 0x8004 ori r12, r12, 0x08C4 mtctr r12 bctrl cmpwi r3, 0 beq dontLand #projection didnt encounter previous frame, dont land lfs f1, 0xEC(r1) #ypos of encounter lfs f0, 0x4(r29) #prev ypos of fighter lfs f2, -0x6930(r2) # 0.0 fsubs f1, f1, f0 fcmpo cr0, f1, f2 blt moveECB #if previous ecb was above previous platform position, then do ecb shit dontLand: lis r12, 0x8012 ori r12, r12, 0x9ADC mtctr r12 bctr moveECB: mr r3, r31 } ######################################## ![Project+] Spinning Turnaround fix [Eon] ######################################## #Note that this code breaks multi-jump character ledgejump bairs and is therefore disabled until further developments are made float 0.0 @ $80AD76B4 #set turn to occur first frame of rotation HOOK @ $80884250 #cancel turn if entering grab { bctrl lwz r3, 0xD8(r31) lwz r3, 0x48(r3) li r0, 0x18 stb r0, 0x34(r3) } #################################################### Expand Classic mode horde battle costume array [Eon] #################################################### #increase stack op stwu r1, -0x100(r1) @ $806e0bc8 op stw r0, 0x104(r1) @ $806E0BD0 op lwz r0, 0x104(r1) @ $806e13e4 op addi r1, r1, 0x100 @ $806e13ec #move array from offset 0x8 to offset 0xA0, changing size from 16 costumes to 96 costumes op addi r5, r1, 0xA0 @ $806e0ef0 op addi r4, r1, 0xA0 @ $806e0f34 op addi r15, r1, 0xA0 @ $806E0F5C op addi r5, r1, 0xA0 @ $806E0FCC ############################################# Spring Props don't set X position [DukeitOut] ############################################# CODE @ $80882AC8 { lfs f1, 4(r4) # \ Only Y needs to be set stfs f1, 0x10(r3) # / } CODE @ $80882C84 { lfs f1, 4(r4) # \ Only Y needs to be set stfs f1, 0x10(r3) # / } ######################################################## Change Subaction Pass Frame also Passes FSM v 1.1 [Eon] ######################################################## HOOK @ $80724224 { fmr f31, f1 #getRate lwz r12, 0x0(r24) mr r3, r24 lwz r12, 0x20(r12) mtctr r12 bctrl fsubs f0, f1, f1 fcmpo cr0, f1, f0 ble %end% #if new speed <= 0, don't pass it #set as passed frame speed fmr f30, f1 } ################################################## adjustCeil uses correct offset calculation [Eon] ################################################## op lfs f0, 0x18(r1) @ $8089E6E4 #previously used bottom of ecb in calculation, now uses y position from getPosition ################################################## Melee Invince Mechanics [Eon] ################################################## op b 0x60 @ $80741744 # makes it so you can't "rehit" an opponent if they change from invincible to vulnerable .include Source/ProjectM/Damage.asm .include Source/ProjectM/DirectionalInfluence.asm .include Source/ProjectM/DirectionalInput.asm .include Source/ProjectM/Elements.asm .include Source/ProjectM/Grab.asm .include Source/ProjectM/Knockback.asm .include Source/ProjectM/Ledge.asm .include Source/ProjectM/Modifier/Hitlag.asm .include Source/ProjectM/Modifier/Physics.asm .include Source/ProjectM/Modifier/Reflect.asm .include Source/ProjectM/Modifier/ThrowRelease.asm .include Source/ProjectM/Modifier/VariableSet.asm ############################################################################# ######################## UI Codes ######################### ############################################################################# ####################### Tags in replays [Y.S] ####################### op li r5, 0 @ $8004B140 ###################################### Timer Always Displays 6th Digit [ds22] ###################################### op nop @ $800DE17C ######################################################################## Individual Stock Icons (info.pac) v2.6 50CC [ds22, wiiztec, DukeItOut] ######################################################################## * C20E2168 0000002C * 818100E8 3D609018 * 896BF37F 2C0B0002 * 4082007C 392000A5 * 3D408058 614A8000 * 897F0002 1D6B00A0 * 7D4A5A14 896A009E * 80BF0020 2C050006 * 41810020 2C050000 * 40820030 3CA08128 * 60A5AE64 80A50000 * 2C050006 4081001C * 7D8A58AE 2C0C00CC * 4082000C 39600003 * 48000008 396B0003 * 7D8A58AE 2C0C00CC * 40820014 2C0B0000 * 4182000C 39600000 * 4BFFFFE8 3FA08045 * 38C0003D 3BBD56D8 * 7CC903A6 88DD0002 * 7C0C3000 41820020 * 88DD0003 7C0C3000 * 41820014 3BBD0010 * 4200FFE4 3FA08045 * 3BBD56D8 7D876378 * 899D0000 2C0C0042 * 40A20008 39800025 * 88C100ED 2C0900A5 * 4082002C 7CCA582E * 54C6801E 54C6463E * 396B0003 996A009E * 2C1B0004 40820010 * 892A009C 39290003 * 992A009E 1D8C0032 * 2C07002D 40A20008 * 39802328 7D8C3214 * 38EC0001 2C1B0000 * 4082000C 7C882378 * 7FFCFB78 3D8080C2 * A18C4314 3BA05F65 * 7C0CE800 4182000C * 6D1E8000 48000008 * 6CFE8000 83BC008C * 60000000 00000000 * 040E215C 60000000 * 040E2160 60000000 * C203D8B4 00000005 * 2C09000B 40820018 * 3C600006 38631C00 * 3C800002 38847180 * 7C641A14 881B001C * 60000000 00000000 * 044218EC 00095F00 * 0442190C 00180000 * 04494990 00095F00 * 044949EC 80C23A60 * 044949F0 00180000 ################################################################### KO Star Count Is Number of Match Wins v1.4 [standardtoaster, Eon] ################################################################### op NOP @ $80053AC0 op NOP @ $80053A7C HOOK @ $80836350 { lwz r8, 0x8(r28) lis r9, 0x8180 cmpw r8, r9 blt _end lwz r10, 0x1C(r31); lwz r10, 0x28(r10) lwz r10, 0x10(r10); lbz r10, 0x55(r10) lis r9, 0x9018; ori r9, r9, 0xB4C mulli r10, r10, 0x4 lhzx r8, r9, r10 addi r8, r8, 0x1 sthx r8, r9, r10 _end: li r4, 0x10F } HOOK @ $80693A48 { rlwinm r3, r25, 2, 0, 29 addi r3, r3, 0xC lhzx r3, r29, r3 } ################################### Lagless Character Selection [Magus] ################################### op fcmpo cr0, f0, f0 @ $8069D424 ###################################### Menu Camera Rotation Modifier [Magus] ###################################### float 24.0 @ $805A2034 ##################################### Menu Scroll Speeds Modifier [Magus] ##################################### * 065A2240 00000008 * 00000E01 041402FF ######################################## Name Scroll Transition Modifier [Magus] ######################################## float[2] 0.5, 3.5 @ $806A1ED8 # Related to upwards scrolling animation pauses float[2] 5.5, 8.5 @ $806A1EEC # Related to downwards scrolling animation pauses (+5.0) ################################################################## Faster Name Scrolling with Shoulder Buttons v1.2 [wiiztec, Magus] # # 1.2: Modified to account for the custom control menu revamp ################################################################## HOOK @ $806A021C { rlwinm. r8, r23, 0, 25, 26; bne- Fast # L/R on a GC/CC rlwinm. r8, r23, 0, 13, 13; beq+ Normal # C on a Nunchuk Fast: subi r5, r5, 0x4 cmpwi r5, -1; bge+ Normal li r5, -1 lbz r8, 0x60(r26); cmpwi r8, 1; beq+ Normal li r5, 0 # Don't scroll up to "Name Entry" if in a custom control Normal: stw r5, 0x44(r26) # Original operation } HOOK @ $806A039C { rlwinm. r8, r23, 0, 25, 26; bne- Fast # L/R on a GC/CC rlwinm. r8, r23, 0, 13, 13; beq+ Normal # C on a Nunchuk Fast: addi r5, r5, 0x4 lbz r8, 0x60(r26); cmpwi r8, 1; bne+ CustomControl cmpw r5, r29; blt+ Normal subi r5, r29, 0x1 b Normal CustomControl: lwz r8, 0x6C(r26) # Get the highest scroll option cmpw r5, r8; ble+ Normal mr r5, r8 # Use that if it tried to go higher Normal: stw r5, 0x44(r26) # Original operation } ############################## Reverse Name Sort [Dantarion] ############################## op sub. r0, r4, r0 @ $8069F600 ########################################### Reset Tag when Unplugged [standardtoaster] ########################################### HOOK @ $80695264 { stw r0, 0x1C8(r28) lwz r3, 0x1E4(r28) } ###################################################################### Japanese character support in name maker [Dantarion, standardtoaster] ###################################################################### CODE @ $80674534 { addi r4, r28, 0 li r5, 0x14 bl -0x670204 li r0, 0x5 } int[6] 2, 4, 0, 1, 3, 0 @ $8067B790 ####################################### Allow disabled names [standardtoaster] ####################################### op b 0xC @ $8069B82C op NOP @ $806781E4 ##################################### Existing Tag Usage [standardtoaster] ##################################### op mr r19, r3 @ $8069B868 ############################# CSS Cursor Speed [Dantarion] ############################# float 1.0 @ $806A1014 ######################################### Use Custom CLR ID on Anchored GFX [Magus] ######################################### HOOK @ $807A3E20 { lwz r30, 0xD8(r1) cmpwi r14, 0x2329 bne+ %END% lwz r30, 0x10(r2) } ################################################################# [Legacy TE] Transforming Characters Switch Stocks [PyotrLuzhin] ################################################################# * C20E2090 00000013 * 38E00000 81810094 * 7C0802A6 90020000 * 9421FF80 BC610010 * 3F608098 637B8E8C * 7C0CD800 4082005C * 3F609018 8B7BF37F * 2C1B0002 4082000C * 3B600001 48000008 * 3B600005 6F5A8000 * 93820004 93420008 * 7FBCEB78 807C008C * C8220004 EC21E028 * 3D80800B 618C7900 * 7D8903A6 4E800421 * 3B9C0004 3B7BFFFF * 2C1B0000 41A1FFD8 * 80020000 B8610010 * 80210000 7C0803A6 * 60000000 00000000 #################################################################################### [Legacy TE] CSS keeps character choice for inactive ports between matches [Fracture] #################################################################################### HOOK @ $80689B18 { stw r0, -4(r1); mflr r0 stw r0, 4(r1); mfctr r0 stw r0, -8(r1) stwu r1, -0x84(r1) stmw r3, 8(r1) lwz r5, 0x1B8(r26) andi. r5, r5, 0xFFFE cmpwi r5, 0x28; beq- skip lwz r3, 160(r30) li r4, 0x0 lis r0, 0x8069; ori r0, r0, 0xECAC; mtctr r0; bctrl mr r3, r30 lis r0, 0x8069; ori r0, r0, 0xD1E8; mtctr r0; bctrl mr r3, r26 lwz r4, 440(r26) li r5, 0xC0DE; andi. r5, r5, 0xFFFF lis r0, 0x8069; ori r0, r0, 0x6F60; mtctr r0; bctrl skip: lmw r3, 8(r1) addi r1, r1, 0x84 lwz r0, -8(r1); mtctr r0 lwz r0, 4(r1); mtlr r0 lwz r0, -4(r1); mr r3, r24 } HOOK @ $80696F8C { cmplwi r5, 0xC0DE bne- skip lwz r29, 0x1BC(r3) bc 20, 20, %END% skip: li r29, 0x0 } ########################################################## [Legacy TE] Melee Random v2 (Custom Random) [Sammi Husky] ########################################################## * 0468AE20 60000000 * C268AE24 00000040 * 2C1B0028 408201F4 * 9421FFE0 7C0802A6 * 90010024 3D80803F * 618C130C 7D8903A6 * 4E800421 3C60805A * 38630420 3D808003 * 618CFAF8 7D8903A6 * 4E800421 3C808068 * A06457F2 4800012D * 3C808068 7C841A14 * 88840E80 7F83E378 * 3D808069 618C48D4 * 7D8903A6 4E800421 * 7C641B78 7F83E378 * 3D808069 618C3D18 * 7D8903A6 4E800421 * 3C60805A 38630420 * 3D808003 618CFAF8 * 7D8903A6 4E800421 * 807C01B8 3D80800A * 618CF8D0 7D8903A6 * 4E800421 480000C5 * 907C01BC 3D80803F * 618C1358 7D8903A6 * 4E800421 80010024 * 7C0803A6 38210020 * 7F83E378 809C01B8 * 80BC01B4 80DC01BC * 80FC01F4 88E705C8 * 811C01C0 893C01C4 * 3D808069 618C742C * 7D8903A6 4E800421 * 807C01B8 3D80800A * 618CF82C 7D8903A6 * 4E800421 3D80800A * 618CF6F0 7D8903A6 * 4E800421 38630001 * 48000095 807C00B8 * 3D80800B 618C7900 * 7D8903A6 4E800421 * 801F03DC 2C000000 * 837C01B8 418200AC * 809C01B8 7FE3FB78 * 80BC01BC 3D808069 * 618C2498 7D8903A6 * 4E800421 4800008C * 9421FFE0 7C0802A6 * 90010024 6C608000 * 9001000C 3F40806A * C85A0838 3C004330 * 90010008 C8010008 * EC001028 EC000072 * FC00001E D8010010 * 80610014 80010024 * 7C0803A6 38210020 * 4E800020 9421FFE0 * 7C0802A6 90010024 * 3C004330 6C638000 * 3C80806A 9061000C * C8240EB8 90010008 * C8010008 EC200828 * 80010024 7C0803A6 * 38210020 4E800020 * 7FA3EB78 60000000 ################################################################################ [Legacy TE] sc_selmap.pac can be 3 times larger because I said so V2 [DukeItOut] # # V2: Altered code to be more flexible and stable ################################################################################ HOOK @ $806BF22C { sub r5, r0, r3 lis r12, 0x12; ori r12, r12, 0x8760; cmplw r3, r12; bne- finish # Expected file size checkIfMenuResource: lwz r12, 0x20(r27); lwz r0, 0xC(r12) # Get the memory size of the heap being used lis r12, 0x8042; lwz r12, 0x2384(r12) # Get the memory size of MenuResource cmpw r0, r12; bne finish # Check if they match subis r5, r5, 0x20 # Shift back 0x200000 finish: lbz r0, 0x1C(r27); rlwinm. r0, r0, 26, 31, 31 # Reset cache condition check } ######################################################################################### [Legacy TE] Hold L/R to inc/dec 1/4 of a character's costume count on the CSS [DukeItOut] ######################################################################################### op sub r26, r26, r3 @ $8069A274 op add r26, r26, r3 @ $8069A384 op b 0x8 @ $8069BE34 HOOK @ $8069BE30 { lis r27, 0x8069 ori r27, r27, 0xBE38 lwz r29, 8(r1) andi. r3, r29, 0x60 // if either L (40) or R (20) are held li r3, 0x0 beq- notSoFast li r3, 0x1 // initiate the status to allow rapid scrolling notSoFast: stw r3, 0(r27) // which is stored at 8069BE38 lwz r29, 20(r1) and r3, r29, r0 lwz r27, 12(r1) neg r0, r3 } HOOK @ $8069A37C { lis r6, 0x8069 ori r6, r6, 0xBE38 lwz r6, 0(r6) cmplwi r6, 1 beq- hastyScroll subic. r26, r26, 0x1 b %END% hastyScroll: li r6, 0x4 divw r6, r3, r6 // jump rate = 1/r6 * total subc. r26, r26, r6 } HOOK @ $8069A268 { lis r6, 0x8069 ori r6, r6, 0xBE38 lwz r6, 0(r6) cmplwi r6, 1 beq- hastyScroll addi r26, r26, 0x1 b %END% hastyScroll: li r6, 0x4 divw r6, r3, r6 // jump rate = 1/r6 * total add r26, r26, r6 } ################################################ [Project+] Disable CSS Hand resizing v1.1 [Eon] ################################################ //Hand lifted size/Hand Speed (vanilla value 1.0) float 1.0 @ $806A0FC8 //Hand placed size (vanilla value 0.75) float 1.0 @ $806A0FD0 //another hand in air size (vanilla value 0.75) float 1.0 @ $806A086C ############################################################## [Project+] Timer Displays frames instead of centiseconds [Eon] ############################################################## op fsubs f1, f0, f3 @ $800ddfb0 op mulli r0, r3, 60 @ $80692874 op mulli r0, r4, 60 @ $80692a70 op nop @ $8010c880 op fmr f0, f3 @ $8010c888 .include Source/ProjectM/CSS.asm .include Source/ProjectM/SSS.asm .include Source/ProjectM/SSSButtons.asm .include Source/LegacyTE/AltCostume.asm .include Source/LegacyTE/Masquerade.asm .include Source/LegacyTE/TagsControls.asm .include Source/LegacyTE/CSSCustomControls.asm ############################################################################# ################### Visual/Audio Codes #################### ############################################################################# ############################################### Franklin Badge SFX Modifier V2 [Magus, ds22] ############################################### * C2840824 00000004 * 2C05001A 41800014 * 2C05001D 4181000C * 38801F86 48000008 * 3880000B 00000000 ################################## Team Coloured Shields V2 [ds22] ################################## * C281DEEC 00000003 * 2C170002 4182000C * 7EE4BB78 48000008 * 38800003 00000000 * 0481DEF4 7EE4BB78 ################################### Team Colour Shade Check Fix [ds22] ################################### * C26D5BE0 00000002 * 7C7F1B78 7D6C5B78 * 60000000 00000000 * C26D5C08 00000003 * 2C03000D 4082000C * 2C1F000D 41820008 * 7C0C5800 00000000 * C2952B00 00000002 * 7C6B1B78 3C8080B3 * 60000000 00000000 ################################## Team Colour Shade Modifier [ds22] ################################## * 06F9FF64 0000000C * 00000080 80808080 * FFFFFF80 00000000 ####################################### Phantom Hit SFX & GFX Modifier [ds22] ####################################### op li r4, 21 @ $8076205C op li r4, 0 @ $8076BCCC ############################### Wall Jump GFX Modifier [ds22] ############################### op li r4, 0 @ $80879CBC ######################################################## SFX Survival -> Choose Your Character [Standardtoaster] ######################################################## op li r4, 0x2046 @ $80683998 op li r4, 0x2046 @ $8068E590 ############################################################################ No Audience SFX on Stage Selection v2 [Standardtoaster, DukeItOut, Kapedani] ############################################################################ op NOP @ $806b46d0 op NOP @ $806b53b8 ################################################################### No Swoosh SFX on Character Selection v2 [standardtoaster, Kapedani] ################################################################### op NOP @ $8068ae54 op li r4, -1 @ $8068D18C ############################################ Random has Announcer Call [standardtoaster] ############################################ op NOP @ $8068AFC0 int 0x1EEC @ $80455980 HOOK @ $800AF898 { cmpwi r29, 0x29; bne- loc_0x10 lis r3, 0x8045; ori r3, r3, 0x5978 loc_0x10: lwz r3, 8(r3) } #################### SFX Fade Fix [ds22] #################### HOOK @ $801C7574 { cmpwi r26, 0x25AF; blt- loc_0xC li r0, 0x5 loc_0xC: stw r0, 0(r31) } ########################### On-hit SFX Modifier [ds22] ########################### int 0x3D @ $80AD72F4 int 0x40 @ $80AD7304 int 0x4E @ $80AD7364 ############################################# All Music Available without Unlocking [Magus] ############################################# op li r0, -1 @ $8004FA64 ############################## Locked Stage Music Fix [Magus] ############################## op li r0, 0xFFF @ $8004FAE4 .include Source/Project+/CSE.asm .include Source/Project+/ResultsMusic.asm .include Source/Project+/SFXExpand.asm ############################################################################# ################ Character-Specific Codes ################# ############################################################################# ############################################### Cape Reversed Control Time [standardtoaster] ############################################### op li r4, 20 @ $8085B814 ############################################################### [Legacy TE] Peach costumes no longer use a FitEntry [DukeItOut] ############################################################### uint8_t 0x0 @ $80AD803C .include Source/Project+/YoshiEggs.asm ############################################################### [Project+] Diddy Kong Flip Base Hold Time 70 > Infinite [Boiko] ############################################################### float Infinite @ $80B88738 ######################################### Spacies Up-B Air Friction Fix [Magus] ######################################### op fneg f0,f1 @ $80A1B848 ########################### Falco Low Laser Fix [Eon] ########################### HOOK @ $80a5d1b4 { lwz r3, 0xD8(r29) lwz r3, 0x14(r3) lwz r12, 0x0(r3) lwz r12, 0x18(r12) mtctr r12 bctrl cmpwi r3, 2 bne orig #getPos addi r3, r1, 0x20 lwz r4, 0xD8(r29) lwz r4, 0xC(r4) lwz r12, 0x0(r4) lwz r12, 0x18(r12) mtctr r12 bctrl #getPrevPos addi r3, r1, 0x2C lwz r4, 0xD8(r29) lwz r4, 0xC(r4) lwz r12, 0x0(r4) lwz r12, 0x20(r12) mtctr r12 bctrl lfs f1, 0x24(r1) #currY lfs f2, 0x30(r1) #prevY fsubs f1, f1, f2 #currY - prevY lfs f2, 0xC(r1) fsubs f1,f2,f1 #position - changeInPos = newPosition stfs f1, 0xC(r1) orig: lfs f0, -0x1930(r27) } ######################### Fox Low Lasers Fix [Eon] ######################### HOOK @ $80A297B4 { lwz r3, 0xD8(r29) lwz r3, 0x14(r3) lwz r12, 0x0(r3) lwz r12, 0x18(r12) mtctr r12 bctrl cmpwi r3, 2 bne orig #getPos addi r3, r1, 0x20 lwz r4, 0xD8(r29) lwz r4, 0xC(r4) lwz r12, 0x0(r4) lwz r12, 0x18(r12) mtctr r12 bctrl #getPrevPos addi r3, r1, 0x2C lwz r4, 0xD8(r29) lwz r4, 0xC(r4) lwz r12, 0x0(r4) lwz r12, 0x20(r12) mtctr r12 bctrl lfs f1, 0x24(r1) #currY lfs f2, 0x30(r1) #prevY fsubs f1, f1, f2 #currY - prevY lfs f2, 0xC(r1) fsubs f1,f2,f1 #position - changeInPos = newPosition stfs f1, 0xC(r1) orig: lfs f0, -0x1D40(r27) } ####################################################### Ignore Ganon Neutral-B Air Mobility Coding [Magus] ####################################################### * 04A60CF8 4E800020 ################################################################## Squirtle Side-B Footstool Uses Normal Requirement 0x2713 [Magus] ################################################################## * 048590C8 48000024 * 0489F010 48000090 ############################################################# Pokemon Trainer Infinite Stamina [Phantom Wings, spunit262] ############################################################# op nop @ $80A8BDAC ############################################################ PT Pokemon Have Final Smashes & FS Characters Don't [ds22] ############################################################ * 04B060DC 8081DF8C * 04B060E4 8081DF8C * 04B060EC 8081DF8C * 04B06114 8081DF84 * 0481DF14 809D0008 * 0481DF18 3804FFFD * 0481DF84 380000EC * 04AD8BB4 17171717 * C281DF6C 00000003 * 3800005C 2C04002D * 40A20008 3800007C * 60000000 00000000 ####################################################### Independent Pokemon Engine HTP, Classic & MMS [ds22] ####################################################### * C26DDDF4 00000006 * 2C03001D 40A20008 * 3860001E 2C03001F * 40A20008 38600020 * 2C030021 40A20008 * 38600022 987D0098 * 60000000 00000000 * C26E1178 00000006 * 2C12001D 40A20008 * 3A40001E 2C12001F * 40A20008 3A400020 * 2C120021 40A20008 * 3A400022 9A550098 * 60000000 00000000 * C295E184 00000006 * 2C1F001D 40A20008 * 3BE0001E 2C1F001F * 40A20008 3BE00020 * 2C1F0021 40A20008 * 3BE00022 9BE30000 * 60000000 00000000 ####################################################################### Independent Pokemon Save Data Engine + no wreck My Music v2 [spunit262] ####################################################################### * 06407BD0 0000000E * 04030F0D 1E1B1F1B * 201B211B 221B0000 ##################### Unload PT Data [ds22] ##################### word[24] 0x1D, 0x1E, 0x1F, 0x1C, 0x1D, -1, -1, -1, | 0x1E, 0x1F, 0x1D, 0x1C, 0x1E, -1, -1, -1, | 0x1F, 0x1D, 0x1E, 0x1C, 0x1F, -1, -1, -1, | @ $80AD8428 ############################ Aura Sphere Cancel [ds22] ############################ * C2AA658C 00000007 * 2C1A001A 41820030 * 2C1A001F 41820028 * 2C1A0020 41820020 * 2C1A0021 41820018 * 2C1A0118 41820010 * 2C1A011E 41820008 * 40820004 00000000 * 04AA6590 40820040 ####################################################################### [Project+] Aura Sphere Only Pulsates Horizontally v1.2 [DukeItOut, Eon] # # 1.1: Fixes issue where Kirby's Shadow Ball wouldn't match Mewtwo's # 1.2: Improves Kirby check to no longer require LA-Basic[8] to be set ####################################################################### HOOK @ $80AABBA0 { lis r4, 0x1000 # \ LA-Basic[9] of the projectile, which contains the character ID of who spawned it addi r4, r4, 0x9 # / lwz r3, 0xD8(r28) lwz r3, 0x64(r3) lwz r12, 0(r3) lwz r12, 0x18(r12) mtctr r12 bctrl cmplwi r3, 0x26 # \ Mewtwo's ID beq- ShadowBall # / cmplwi r3, 0x21 # \ Lucario's ID beq+ AuraSphere # / cmplwi r3, 0x05 # \ Kirby's ID beq+ Kirb # / b AuraSphere Kirb: #get link parent[3] (aka shooter) lwz r3, 0xD8(r28) lwz r3, 0x54(r3) li r4, 3 lwz r12, 0x0(r3) lwz r12, 0x34(r12) mtctr r12 bctrl #get Kirby LA-Basic[72] (hat id) lwz r3, 0x60(r3) lwz r3, 0xD8(r3) lwz r3, 0x64(r3) lis r4, 0x1000 addi r4, r4, 72 lwz r12, 0x0(r3) lwz r12, 0x18(r12) mtctr r12 bctrl cmplwi r3, 0x26 # \ Mewtwo's ID beq- ShadowBall # / cmplwi r3, 0x21 # \ Lucario's ID beq+ AuraSphere # / ShadowBall: fmuls f0, f31, f29 # Waver in both vertical and horizontal directions if Mewtwo's Shadow Ball! b finish AuraSphere: fsubs f0, f0, f0 # Eliminate vertical wiggle for Aura Sphere! finish: mr r3, r30 } ######################################## [Project+] Lucario Charge Glow Fix [Eon] ######################################## op cmpwi r26, 0x112 @ $80aa66c0 op blt 0x20 @ $80aa66c4 ######################################## Samus Aerial Charge Shot Charging [ds22] ######################################## op b -0x230 @ $80A06348 op b -0x230 @ $80A06210 op b 0x40 @ $80A07050 op nop @ $80A06580 op nop @ $80A065C4 op nop @ $80A068C0 op nop @ $80A068C4 op bge- 0x9C @ $80A06160 ######################################## Samus Bombs account for Shields [DukeItOut] ######################################## op rlwinm. r0, r30, 0, 29, 31 @ $809F4B7C ################################ ZSS Jumbo Screen Name Fix [ds22] ################################ op li r23, 0x17 @ $80985F44 //0x17 is ZSS ID, instead of the normal 0x3 for Samus op li r30, 0x17 @ $8098652C ######################################################## [Project+] Kirby Momentum isnt reset by Peanut Gun [Eon] ######################################################## #port of a module edit in ft_diddy op b 0x90 @ $80A6F11C #################################################### [Project+] Mach Tornado Doesn't Ricochet [DukeItOut] #################################################### op NOP @ $80A6467C op NOP @ $80A64614 ############################################################## [Project+] Dedede's Inhale Base Timer Reduction [Boiko] ############################################################## float 200.0 @ $80B88708 ################################ DDD Result Name Modifier [ds22] ################################ * 064564D0 0000000C * 44656465 64650000 * 00000000 00000000 ################################# [Project+] Roy Counter Fix [ds22] ################################# HOOK @ $808A1058 { cmpwi r3, 0x27; beq- loc_0x10 li r3, 0x0; b %END% loc_0x10: li r3, 0x1 } ############################################################## Ice Climber within Range Stores Variable V2 [Magus, DukeItOut] ############################################################## HOOK @ $80903670 { cror 2, 0, 2 lwz r12, 0x1BC(r24) lwz r12, 0x70(r12) # \ lwz r12, 0x20(r12) # | Access LA-Bit for Leader IC lwz r12, 0x1C(r12) # / addi r3, r12, 0x2D4 # Simple way to get to it with assumption of LA variable expansion size lis r7, 0x2 lwz r5, 0xC(r12) lwz r6, 0xC(r3) bne- loc_0x50 or r5, r5, r7 or r6, r6, r7 b loc_0x58 loc_0x50: andc r5, r5, r7 andc r6, r6, r7 loc_0x58: stw r5, 0xC(r12) # \ Store to both Climbers at LA-Bit 113 stw r6, 0xC(r3) # / } ########################################################### Olimar Antenna Light Changes with Pikmin Color V1.1 [Magus] ########################################################### HOOK @ $80913198 { lwz r12, 0x70(r21) # \ lwz r12, 0x20(r12) # | lwz r12, 0x0C(r12) # | Access character ID lwz r12, 0x2D0(r12) # | lwz r12, 0x08(r12) # | lis r3, 0x9200 # | \ Safety check for Nana cmpw r12, r3 # | | bge- loc_0x12C # | | lis r3, 0x8120 # | | cmpw r12, r3 # | | blt- loc_0x12C # | / lwz r12, 0x110(r12) # / cmpwi r12, 0x19 # \ bne+ loc_0x12C # / Only do the below for Olimar lwz r12, 32(r20) lwz r12, 12(r12) lwz r11, 212(r21) addi r11, r11, 0x1D00 lwz r3, -8(r11) li r0, 0xFFFF rlwinm r3, r3, 10, 27, 31 cmpwi r3, 0x6 bge- loc_0x44 mulli r3, r3, 0xC lwzx r11, r11, r3 lwz r0, 9468(r11) loc_0x44: lwz r11, 372(r12) lwz r3, 376(r12) stw r0, 376(r12) cmpw r11, r0; beq+ loc_0x12C cmpw r3, r0; bne- loc_0x12C stw r0, 372(r12) stwu r1, -124(r1) stmw r3, 8(r1) mflr r31 mr r30, r0 lwz r29, 148(r21) li r28, 0xE loc_0x7C: lis r3, 0x805A lwz r3, 328(r3) lwz r4, 72(r29) lis r5, 0x100 subi r5, r5, 0x100 li r6, 0x0 li r7, 0x0 lis r8, 0x1A or r8, r8, r28 lis r12, 0x8006 ori r12, r12, 0xE20 mtctr r12 bctrl addi r28, r28, 0x1 cmpwi r28, 0x14 bne+ loc_0x7C addi r30, r30, 0xF li r22, 0xFFFF lis r12, 0x3FC0 ori r12, r12, 0x0 stw r12, 20(r2) li r11, 0x0 stw r11, 24(r2) stw r11, 28(r2) stw r11, 32(r2) li r14, 0x2329 mr r3, r29 lis r4, 0x1A or r4, r4, r30 li r5, 0x1E addi r6, r2, 0x18 mr r7, r6 li r8, 0x0 li r9, 0x2 li r10, 0x0 lfs f1, 20(r2) stw r22, 16(r2) lis r12, 0x807A ori r12, r12, 0x3DC0 mtctr r12 bctrl mtlr r31 lmw r3, 8(r1) addi r1, r1, 0x7C loc_0x12C: mr r3, r20 } ############################################################################## [Project+] All ground types but HRC act as basic for Pikmin pull chances [Eon] ############################################################################## HOOK @ $80a6bbdc { cmpwi r3, 29 beq end li r3, 0 end: mr r29, r3 } ####################################################### Snake's U-Smash can Have Horizontal Velocity [Magus] ####################################################### * C28E6FA0 00000004 * 81830068 2C0C2329 * 4082000C C003006C * 48000008 C0049560 * 60000000 00000000 ########################################################## [Project+] Sonic/Knuckles Spin Dash Bucket Brake Fix [Eon] ########################################################## op nop @ $80ac7d2c ################################ Wario-Man has no FitResult [ds22] ################################ int 0 @ $80AD8098 ############################ Wario-Man Cosmetics [ds22] ############################ * 04455818 250117FF * 04455A28 42012DFF * 04455A2C 0B000000 * 04455A30 00002016 ############################## Giga Bowser Cosmetics [ds22] ############################## * 04408AF4 00002039 * 04455788 0B010CFF * 0445578C 14000000 * 044559D8 2C012CFF * 044559DC 14000000 * 044559E0 00002039 ############################################# Alloys Can Shield, Dodge & Grab Ledges [ds22] ############################################# op b 0x88 @ $808A082C op b 0x78 @ $808A083C op b 0x38 @ $808A087C .include Source/LegacyTE/CPU.asm # Don't move this to BOOST, it will fail to function for some reason .include Source/ProjectM/ButtonPresses.asm .include Source/Project+/Debug/modifiedDebug.asm .include Source/Project+/CStick.asm # Don't move this to BOOST, it will cause aerial drift for some reason .include Source/Project+/Items.asm .include Source/Community/ItemEx.asm .include Source/Community/Syringe.asm .include Source/Project+/MultiGCT.asm # MAKE SURE THIS IS AT THE VERY BOTTOM OF THIS CODESET!!!