summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kamek_pal.x3
-rw-r--r--poweruphax.yaml6
-rw-r--r--src/poweruphax.S14
3 files changed, 23 insertions, 0 deletions
diff --git a/kamek_pal.x b/kamek_pal.x
index 9d721ee..4a97bc6 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -1,6 +1,9 @@
SECTIONS {
/* Scrolling is annoying, clown car goes here! */
+ DrawTheFuckingHat = 0x800CA664;
+ DontDrawTheFuckingHat = 0x800CA698;
+
continueFromMpPauseFix1 = 0x8004E050;
continueFromMpPauseFix2 = 0x801415A0;
CheckIfSinglePlayer = 0x800FCAD0;
diff --git a/poweruphax.yaml b/poweruphax.yaml
index f6b6102..a9c8c97 100644
--- a/poweruphax.yaml
+++ b/poweruphax.yaml
@@ -163,6 +163,12 @@ hooks:
- name: DisableHat99Thing
type: nop_insn
area_pal: 0x80089D48
+
+ - name: DisableHatForHammer
+ type: branch_insn
+ branch_type: b
+ src_addr_pal: 0x800CA658
+ target_func: 'DisableHatForHammer'
- name: LetPlayerGetHammerItem
type: branch_insn
diff --git a/src/poweruphax.S b/src/poweruphax.S
index 34cca4b..7181b4d 100644
--- a/src/poweruphax.S
+++ b/src/poweruphax.S
@@ -29,6 +29,20 @@
.set f1,1; .set f30,30; .set f31,31
#endif
+.global DisableHatForHammer
+DisableHatForHammer:
+ lwz r0, 0x17C(r31)
+ clrlwi. r0, r0, 31
+ beq DontDrawTheFuckingHat_
+ lbz r0, 0x152(r31)
+ cmpwi r0, 7
+ beq DontDrawTheFuckingHat_
+ b DrawTheFuckingHat
+DontDrawTheFuckingHat_:
+ b DontDrawTheFuckingHat # this is a hack to avoid implementing R_PPC_REL14
+.extern DontDrawTheFuckingHat
+.extern DrawTheFuckingHat
+
.global GetInfoFromDumbTable
GetInfoFromDumbTable:
lis r3, SomeTable@h