diff options
Diffstat (limited to '')
-rw-r--r-- | poweruphax.yaml | 57 | ||||
-rw-r--r-- | src/poweruphax.S | 39 |
2 files changed, 57 insertions, 39 deletions
diff --git a/poweruphax.yaml b/poweruphax.yaml index 281c9ea..1eb53af 100644 --- a/poweruphax.yaml +++ b/poweruphax.yaml @@ -4,205 +4,192 @@ hooks: - name: GetInfoFromDumbTable type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80142650 target_func: 'GetInfoFromDumbTable' - name: FukidashiFix type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x800B1A50 target_func: 'FukidashiFix' - name: PlayerGetHeightFix type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80132670 target_func: 'PlayerGetHeight' # - name: EnItem_BindAnimation_Fix # type: branch_insn # branch_type: b -# src_addr_ntsc: 0xdeadbeef # src_addr_pal: 0x80A291E0 # target_func: 'EnItem_BindAnimation_Fix' - name: DealWithBlahTable type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80141F70 target_func: 'DealWithBlahTable' - name: GetAsdfTable type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x801466C0 target_func: 'GetAsdfTable' - name: GetBlahTableOffset type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x801421AC target_func: 'GetBlahTableOffset' - name: GetWeirdScaleTable type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8014676C target_func: 'GetWeirdScaleTable' - name: WtfEver type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80133E48 target_func: 'WtfEver' - name: YetAnother type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80138840 target_func: 'YetAnother' - name: ExtendHammerStruct type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x807FCBA8 data: '3860 045C' - name: ThrowHammer type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8013BEE4 target_func: 'ThrowHammer' - name: MoreProjectileStuff_Fix type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8013C3A0 target_func: 'MoreProjectileStuff_Fix' - name: ProjectileShootCheck_Fix1 type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x8013BB7C data: '4181003C' - name: ProjectileShootCheck_Fix2 type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8013BBB8 target_func: 'ProjectileShootCheck_Fix' - name: QBlockItemChange type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x802ee628 data: '00000006' - name: QBlockItemFix type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x8002288c data: '60000000' + + - name: QBlockMPItemFix + type: patch + addr_pal: 0x80022B90 + data: '60000000' - name: FixMushroomIfSmallBlock type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x800221ac data: '2800 0003' - name: SomeEnItemFix type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x80A2BE98 data: '2800 0003' - name: MushroomEnItemFix type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x80A28598 data: '2800 0003' - name: DisablePowerupValidityCheck type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x800611C4 data: '60000000' - name: TinyTableFix type: patch - addr_ntsc: 0xdeadbeef addr_pal: 0x802F5AEC data: '00000001' #It's not actually a function but who cares? - name: AlwaysLoadBrosArc type: add_func_pointer - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8098C488 target_func: 'BrosArcFileName' - name: AlwaysLoadBrosArc type: add_func_pointer - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8098C490 target_func: 'I_hammerArcFilename' - name: ChangeHammerBrres type: add_func_pointer - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80AF0FA8 target_func: 'I_hammerResFile' - name: ChangeHammerArc type: add_func_pointer - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80AF0ECC target_func: 'I_hammerArcFilename' - name: ChangeHammerModel type: add_func_pointer - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80AF1000 target_func: 'I_hammerModelName' - name: LetPlayerGetHammerItem type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80A285FC target_func: 'TryToGiveMarioHammerSuit' - name: WeirdAnimLoadHack type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80A27CE4 target_func: 'WeirdAnimLoadHack' - name: SetHammerToEnItemDCA type: add_func_pointer - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80AF117C target_func: 'SetHammerToEnItemDCA' + + - name: SetHammerToEnItemDCASpecial + type: branch_insn + branch_type: b + src_addr_pal: 0x80A2C0B4 + target_func: 'SetHammerToEnItemDCASpecial' - name: PlumberSetPowerupFix type: branch_insn branch_type: b src_addr_pal: 0x800D47D4 target_func: 'PlumberSetPowerupFix' - + + - name: FixPowerupSound + type: branch_insn + branch_type: bl + src_addr_pal: 0x80141334 + target_func: 'FixPowerupSound' + - name: PlumberSetPowerupFix2 type: branch_insn branch_type: b @@ -224,56 +211,48 @@ hooks: - name: FixPowerupScale_First type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x800d6fdc target_func: 'GetPowerupScaleFloatAddr_r6_trash_r0_valshl2_r4_dest' - name: FixPowerupScale_Second type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8004cc80 target_func: 'GetPowerupScaleFloatAddr_r6_trash_r0_valshl2_r3_dest' - name: FixPowerupScale_Third type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x800d7064 target_func: 'GetPowerupScaleFloatAddr_r8_trash_r0_valshl2_r7_dest' - name: FixPowerupScale_Fourth type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x801293D0 target_func: 'GetPowerupScaleFloatAddr_r6_trash_r0_valshl2_r3_dest' - name: FixPowerupScale_Fifth type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80137CDC target_func: 'GetPowerupScaleFloatAddr_r6_trash_r0_valshl2_r3_dest' - name: FixPowerupScale_Sixth type: branch_insn branch_type: b - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80141FF4 target_func: 'GetPowerupScaleFloatAddr_fixForSixth' - name: FixPowerupScale_Seventh type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x8014378C target_func: 'GetPowerupScaleFloatAddr_r6_trash_r0_valshl2_r3_dest' - name: FixPowerupScale_Eighth type: branch_insn branch_type: bl - src_addr_ntsc: 0xdeadbeef src_addr_pal: 0x80143884 target_func: 'GetPowerupScaleFloatAddr_r8_trash_r0_valshl2_r7_dest' diff --git a/src/poweruphax.S b/src/poweruphax.S index 3db06c7..9274b78 100644 --- a/src/poweruphax.S +++ b/src/poweruphax.S @@ -366,6 +366,19 @@ DontSetHammer: addi sp, sp, 0x10 blr +.global SetHammerToEnItemDCASpecial +SetHammerToEnItemDCASpecial: + cmplwi r4, 0x19 + b _not19 + li r0, 0xD + sth r0, 0xDCA(r3) +_not19: + cmplwi r4, 6 + bnelr + li r0, 5 + sth r0, 0xDCA(r3) + blr + #.global EnItem_BindAnimation_Fix #EnItem_BindAnimation_Fix: @@ -376,6 +389,28 @@ DontSetHammer: # b EnItem_BindAnimation_Continued +.global FixPowerupSound +FixPowerupSound: + # WARNING! This is a bad, bad, bad hack. + # I was too lazy to add anything to the linker script, so... + + # We branch at 80141334, so our LR is 80141338 + # We need to jump to 80141384 + mflr r3 + addi r3, r3, 0x4C + mtlr r3 + + lwz r0, 0x1090(r29) + lis r3, PowerupSounds@h + ori r3, r3, PowerupSounds@l + slwi r4, r0, 2 + lwzx r4, r3, r4 + mr r3, r29 + li r5, 0 + + blr + + .global WeirdAnimLoadHack WeirdAnimLoadHack: cmplwi r4, 5 #hammersuit @@ -598,6 +633,10 @@ gotHammerStatus: .data +PowerupSounds: + .long 273, 274, 274, 275, 276, 277, 274, 274 + + SomeTable: .long SomeTable_802F5580 .long SomeTable_802F56C0 |