summaryrefslogtreecommitdiff
path: root/src/music.S
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/music.S53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/music.S b/src/music.S
new file mode 100644
index 0000000..59c86a0
--- /dev/null
+++ b/src/music.S
@@ -0,0 +1,53 @@
+.text
+
+# An Epic Music Hack
+
+.extern SoundRelatedClass
+.extern sprintf
+.global HaxMusic
+
+HaxMusic:
+ cmpwi r3, 100
+ bltlr
+
+ stwu r1, -0x10(r1)
+ mflr r0
+ stw r0, 0x14(r1)
+ stw r31, 0xC(r1)
+ stw r30, 0x8(r1)
+
+ mr r31, r3
+
+ lis r3, SoundRelatedClass@h
+ ori r3, r3, SoundRelatedClass@l
+ lwz r3, 0(r3)
+ lwz r30, 0x5CC(r3)
+ addis r30, r30, 3
+
+ subi r3, r30, 0x6A84
+ lis r4, RegularMusic@h
+ ori r4, r4, RegularMusic@l
+ mr r5, r31
+ bl sprintf
+
+ subi r3, r30, 0x6A0C
+ lis r4, FastMusic@h
+ ori r4, r4, FastMusic@l
+ mr r5, r31
+ bl sprintf
+
+ li r3, 1
+
+ lwz r0, 0x14(r1)
+ lwz r31, 0xC(r1)
+ lwz r30, 0x8(r1)
+ mtlr r0
+ addi r1, r1, 0x10
+ blr
+
+
+.data
+RegularMusic: .string "stream/theme%03d.brstm"
+FastMusic: .string "stream/theme%03d_fast.brstm"
+
+