summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Noga <Tempus@Spectrum-Song.local>2011-08-09 14:51:06 -0500
committerColin Noga <Tempus@Spectrum-Song.local>2011-08-09 14:51:06 -0500
commit16ddd9a408d1a02f99b9a9851d412dcebf2a8483 (patch)
tree0ac42790b776c211dd2c1efb5e58011c73467782
parent0602cf4a1cdf9d8692ad6ed5da301749f6fee0ea (diff)
downloadkamek-16ddd9a408d1a02f99b9a9851d412dcebf2a8483.tar.gz
kamek-16ddd9a408d1a02f99b9a9851d412dcebf2a8483.zip
Merged multiplayer hammer fixes in
-rw-r--r--poweruphax.yaml57
-rw-r--r--src/poweruphax.S39
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