Mildanner
Newcomer
In the original game, the developers have made something in mind to make Sonic speed higher. And decided to make the flag to accelerate the music, when the speed shoes is over. It also slow down the music, with no Speed Shoes jingle.
In this guide, you will go simply on the _incobj/01 Sonic.asm (In older disassemblies, it was part of Sonic Display.asm) and find these lines
Replace it with this (Code taken from invincibility)
Also, go to the 26, 2E Monitors and Power-Ups.asm file (For older disassemblies, this was still called 2E Monitor Content Power-Up.asm but in current versions. This was merged with Monitors.)
Go to the label Pow_ChkShoes and find this line
Simply replace the bgm_Speedup music with any music you put in Constants.asm (Example: bgm_SpeedShoes).
Notice: If you want to do the same thing when you have implemented the different song per acts guide by Selbi (og. by Nineko), just simply replace the lines mentioned with these:
I hope you enjoy this tutorial, happy hacking and enjoy the vastly customized music for speed shoes (Like how Sonic CD did.)
In this guide, you will go simply on the _incobj/01 Sonic.asm (In older disassemblies, it was part of Sonic Display.asm) and find these lines
Code:
move.w #bgm_Slowdown,d0 ; resume music...
jmp (QueueSound1).l ; ...at normal speed
Code:
moveq #0,d0 ; clear d0
move.b (v_zone).w,d0 ; get current zone ID
cmpi.w #id_LZ_act4,(v_zone_act).w ; check if level is SBZ3 (LZ4)
bne.s .music_speedshoes ; if not, branch
moveq #5,d0 ; play SBZ music instead of LZ
; Obj01_PlayMusic:
.music_speedshoes:
lea (MusicList2).l,a1 ; load music list for post-speed shoes
move.b (a1,d0.w),d0 ; get entry for current zone
jsr (QueueSound1).l ; resume normal level music
Go to the label Pow_ChkShoes and find this line
Code:
move.w #bgm_Speedup,d0 ; set music speed-up command
jmp (QueueSound1).l ; play it
Notice: If you want to do the same thing when you have implemented the different song per acts guide by Selbi (og. by Nineko), just simply replace the lines mentioned with these:
Code:
moveq #0,d0
move.b (v_zone).w,d0
cmpi.w #id_LZ_act4,(v_zone_act).w ; check if level is SBZ3 (LZ4)
bne.s .music_speedshoes
moveq #5,d0 ; play SBZ music
; Obj01_PlayMusic:
.music_speedshoes:
jsr (PlayCurrentActMusic).l ; resume level music after speed shoes has worn off
Last edited: