Change the SEGA Sound
From Sonic Retro
This guide targets the Hivebrain 2005 disassembly.
Changing the SEGA sound isn't like a simple rename .mp3 to .pcm. Instead, it's a lot more. But, I will show you how to change the SEGA chant in Sonic 1. You can replace it. There's a way.
The tools you will need is as follows:
An emulator (GENS, Kega Fusion, BlastEm)
Make the SEGA sound as high quality as possible
We need to make the SEGA sound as high quality as possible to continue with this tutorial, otherwise there'll be some Z80 format editing, and that's as complicated as can be. We don't want to get into that. Now, to make the SEGA chant slightly higher quality, follow this tutorial. Now open up your sonic1.asm file, and go to PlayPCM_Loop:. You should find this line:
move.w #$14,d0 ; Write the pitch ($14 in this case) to d0
Change the $14 in the line to be $01. Now our SEGA sound will play at 27,025 Hz. The line should now look like this:
move.w #$01,d0 ; Write the pitch ($14 in this case) to d0
Head over to Audacity and grab a sound you like. For me, I'm using the Sonic CD extra life voice clip of Sonic saying "Yes!" Now, make sure these are specifications that are active: The project sample rate should be 27,025 Hz. The actual audio sample should be converted to 27,025 Hz, and then converted back to 41K or 48K Hz after you've made your changes. You have to convert it back, otherwise your audio will be very slow. Make sure that the audio is monophonic.
Now, save the file as follows: Set the file type to "Other uncompressed files" and set the file format as .RAW. Make sure the header is RAW and that it's header-less. Make sure that the encoding is an unsigned 8-bit PCM.
Save the file into the sound folder of the disassembly. Now to change the code to actually play your custom sound.
Making Sonic 1 play the sound
Head to the end of "sonic1.asm" and you should find this somewhere:
SegaPCM: incbin sound\segapcm.bin
Replace segapcm.bin with whatever your file name is. And bravo! You should have your new SEGA sound. Ciao!
Written by XPointZPoint