summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--spritetex.yaml15
-rwxr-xr-xsrc/spritetex.S41
2 files changed, 56 insertions, 0 deletions
diff --git a/spritetex.yaml b/spritetex.yaml
index a2139f2..c4d7e0d 100644
--- a/spritetex.yaml
+++ b/spritetex.yaml
@@ -1,6 +1,21 @@
---
source_files: [../src/spritetex.S]
hooks:
+ - name: BigBlockSound1
+ type: branch_insn
+ branch_type: bl
+ src_addr_pal: 0x809B8EBC
+ target_func: 'BigBlockSound'
+ - name: BigBlockSound2
+ type: branch_insn
+ branch_type: bl
+ src_addr_pal: 0x809B9040
+ target_func: 'BigBlockSound'
+ - name: BigBlockLeapingItem
+ type: branch_insn
+ branch_type: bl
+ src_addr_pal: 0x809B91A4
+ target_func: 'BigBlockLeapingItem'
# - name: BlackClouds
# type: patch
diff --git a/src/spritetex.S b/src/spritetex.S
index f5d5ee5..7c342d8 100755
--- a/src/spritetex.S
+++ b/src/spritetex.S
@@ -21,6 +21,47 @@
.set sp, 1
+.global BigBlockSound
+.extern Delete__7fBase_cFv
+.extern PlaySoundWithFunctionB4
+.extern SoundRelatedClass
+.extern DetachSound__Q34nw4r3snd11SoundHandleFv
+BigBlockSound:
+ stwu r1, -0x10(r1)
+ mflr r0
+ stw r0, 0x14(r1)
+ stw r31, 8(r1)
+ mr r31, r3
+
+ # create a SoundHandle
+ li r3, 0
+ stw r3, 0xC(r1)
+
+ # call PSWFB4
+ lis r3, SoundRelatedClass@h
+ ori r3, r3, SoundRelatedClass@l
+ lwz r3, 0(r3)
+ addi r4, r1, 0xC
+ li r5, 510
+ li r6, 1
+ bl PlaySoundWithFunctionB4
+
+ # destroy SoundHandle
+ addi r3, r1, 0xC
+ bl DetachSound__Q34nw4r3snd11SoundHandleFv
+
+ mr r3, r31
+ lwz r31, 8(r1)
+ lwz r0, 0x14(r1)
+ mtlr r0
+ addi r1, r1, 0x10
+ b Delete__7fBase_cFv
+
+.global BigBlockLeapingItem
+BigBlockLeapingItem:
+ oris r0, r0, 0xD00
+ blr
+
.global BooZOrder
BooZOrder:
mr r3, r30