diff options
Diffstat (limited to '')
-rw-r--r-- | src/music.S | 53 |
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" + + |