Well, as some of you may know, I've been working on fixing Romi's addmusic for the past... While I guess. The objective of this is not to make a new tool that everyone will use, but to allow us to have non broken hacks until something better comes along *cough*addmusicm*caugh*.
What this allows:
1. Use of echo. This was completely broken before so... Well here you go.
2. Use of sound effects AND echo.
3. Your hack not killing anyone who uses an actual emulator (or SNES)'s ears.
4. Echo delay values up to 7 in levels (Depending on the music you use, explained farther down)
I also included my own flavor of more.bin (Required for this to work).
What this includes:
1. ADSR command (Handled by the normal $ED command).
2. Direct write to DSP command ($ED followed by $80, followed by the DSP register to write, then the value you want it to write)
3. Turns off echo whenever it loads a song (Should get rid of the stupid clicking you get when switching from a song with echo to one without)
4. SPC Data write. This is totally untested (So I won't even bother telling you how to activate it), but should theoretically allow you to insert data into ARAM.
5. SPC Code write. Also totally untested (And I also won't even bother telling you how to activate it). This will insert code into ARAM which will then be jumped to. This is my catch-all, if I didn't program it and you want it, program it yourself.
What this will include before final release:
1. A sample selection command, like in carol's more.bin
2. Well, that's probably it actually, maybe a re-tune sample function.
Caveats: (What, you didn't think you would get all this for free, right?):
1. Music insert size has been decreased to $1700 (5888) bytes for level music, but since it only uploads 1 song at a time, that means you can use any song in the music section right now.
2. OW music can only be $3B50 (15184) bytes. That shouldn't effect you in any way.
3. Echo on the OW is limited to 3. It was either that or not allow you to change songs one the OW... At all, I went with the latter.
4. On that subject, because only one song is uploaded at a time, no changing songs mid-level without re-uploading the song, sorry.
5. All your level songs should start with this:
That moves the echo buffer to $2B00 in ARAM, zero's out the size of the echo buffer, and turns off echo, respective to line numbers. OW songs should do this:
It's quite similar, except it moves the echo buffer to $6800 instead. This is why you can only have 3 delay. If this is too annoying for you to do by hand (I know it is for me), I included a little Python script that will add that header to every .txt in the folder with it. To run it, you just need to have Python 2.5+ installed and run it. There is one in the OW and in the Level folders.
6. The ADSR command. For the love of God people, and decay of 9 is the same as a decay of 1, there is absolutely no difference EVEN IN ZSNES. That didn't used to break anything (It was just useless and you all were clearly deluding yourselves), but now it does, because my more.bin uses values for $ED above 80 for new commands, so it will break if you do that. Dur. Go through and change all your songs with more than 7 decay ($ED $SomethingBiggerThan80 $XX) to it's equivilent less than 80 value (Subract 80 from it, that's in hex).
7. Actually... I think I'm out of caveats... Hurray!
To use:
1. Extract it where you want it
2. If your ROM has used any Addmusic besides Romi's or if you have used carol's more.bin, sorry, you are out of luck. Get a new ROM.
3. Run Addmusic with the -se command with more.bin in the folder with it (Even if you have no sound effects). That will install my more.bin into the game.
4. Fix your music so it will work (Described above)
5. Use like you normally would Romi's addmusic
And that should be it.
A note about echo:
I mentioned above that you can have echo delay of up to 7 in levels. To achieve this, it depends on how many bytes your song uses. A song of length $1700 would only be able to have 5 echo ($2B00-$52FF), but for every $800 bytes less you use, you can add 1 more delay. This means if your song is less than $F00 bytes, you could use 6 delay, if it was less than $700 bytes, you could use 7 delay. To achieve this, you have to edit the header I said earlier. For every 1 delay more you want, subtract $8 from $2B in "$ED $80 $6D $2B". It may also be possible to get higher values if you are good, but I'm too lazy to list how, for someone who wants to try, music data is uploaded to $13A8 in ARAM and you have up to $5570 for echo delay, each delay takes up $800 bytes of ARAM. Do the math to figure out how much delay you can have.
A PUBLIC SERVICE ANNOUNCEMENT:
If you are going to use echo, please, please let the echo buffer clear out before yo turn on the volume. If you don't, you will get a crashing sound every time you enter a level with echo and it's just freaking annoying. To do this, first enable your echo with 0 volume for the left and right speakers. Then set up your echo as normal. Then, wait a few notes (240ms), then turn on the echo volume. That will completely fix that problem. Thank you.
Now that I've bored the heck out of you with a huge freaking post:
Link removed, because it was an old version and people were getting confused.
A note:
This is a BETA, that means I want FEEDBACK on it. Please tell me any errors you find, anything you think that would make it better (No promises), or just anything pertaining to this. It wouldn't due to realease YET ANOTHER broken addmusic. That's all, have fun.
What this allows:
1. Use of echo. This was completely broken before so... Well here you go.
2. Use of sound effects AND echo.
3. Your hack not killing anyone who uses an actual emulator (or SNES)'s ears.
4. Echo delay values up to 7 in levels (Depending on the music you use, explained farther down)
I also included my own flavor of more.bin (Required for this to work).
What this includes:
1. ADSR command (Handled by the normal $ED command).
2. Direct write to DSP command ($ED followed by $80, followed by the DSP register to write, then the value you want it to write)
3. Turns off echo whenever it loads a song (Should get rid of the stupid clicking you get when switching from a song with echo to one without)
4. SPC Data write. This is totally untested (So I won't even bother telling you how to activate it), but should theoretically allow you to insert data into ARAM.
5. SPC Code write. Also totally untested (And I also won't even bother telling you how to activate it). This will insert code into ARAM which will then be jumped to. This is my catch-all, if I didn't program it and you want it, program it yourself.
What this will include before final release:
1. A sample selection command, like in carol's more.bin
2. Well, that's probably it actually, maybe a re-tune sample function.
Caveats: (What, you didn't think you would get all this for free, right?):
1. Music insert size has been decreased to $1700 (5888) bytes for level music, but since it only uploads 1 song at a time, that means you can use any song in the music section right now.
2. OW music can only be $3B50 (15184) bytes. That shouldn't effect you in any way.
3. Echo on the OW is limited to 3. It was either that or not allow you to change songs one the OW... At all, I went with the latter.
4. On that subject, because only one song is uploaded at a time, no changing songs mid-level without re-uploading the song, sorry.
5. All your level songs should start with this:
Code
$ED $80 $6D $2B $ED $80 $7D $00 $F0
That moves the echo buffer to $2B00 in ARAM, zero's out the size of the echo buffer, and turns off echo, respective to line numbers. OW songs should do this:
Code
$ED $80 $6D $68 $ED $80 $7D $00 $F0
It's quite similar, except it moves the echo buffer to $6800 instead. This is why you can only have 3 delay. If this is too annoying for you to do by hand (I know it is for me), I included a little Python script that will add that header to every .txt in the folder with it. To run it, you just need to have Python 2.5+ installed and run it. There is one in the OW and in the Level folders.
6. The ADSR command. For the love of God people, and decay of 9 is the same as a decay of 1, there is absolutely no difference EVEN IN ZSNES. That didn't used to break anything (It was just useless and you all were clearly deluding yourselves), but now it does, because my more.bin uses values for $ED above 80 for new commands, so it will break if you do that. Dur. Go through and change all your songs with more than 7 decay ($ED $SomethingBiggerThan80 $XX) to it's equivilent less than 80 value (Subract 80 from it, that's in hex).
7. Actually... I think I'm out of caveats... Hurray!
To use:
1. Extract it where you want it
2. If your ROM has used any Addmusic besides Romi's or if you have used carol's more.bin, sorry, you are out of luck. Get a new ROM.
3. Run Addmusic with the -se command with more.bin in the folder with it (Even if you have no sound effects). That will install my more.bin into the game.
4. Fix your music so it will work (Described above)
5. Use like you normally would Romi's addmusic
And that should be it.
A note about echo:
I mentioned above that you can have echo delay of up to 7 in levels. To achieve this, it depends on how many bytes your song uses. A song of length $1700 would only be able to have 5 echo ($2B00-$52FF), but for every $800 bytes less you use, you can add 1 more delay. This means if your song is less than $F00 bytes, you could use 6 delay, if it was less than $700 bytes, you could use 7 delay. To achieve this, you have to edit the header I said earlier. For every 1 delay more you want, subtract $8 from $2B in "$ED $80 $6D $2B". It may also be possible to get higher values if you are good, but I'm too lazy to list how, for someone who wants to try, music data is uploaded to $13A8 in ARAM and you have up to $5570 for echo delay, each delay takes up $800 bytes of ARAM. Do the math to figure out how much delay you can have.
A PUBLIC SERVICE ANNOUNCEMENT:
If you are going to use echo, please, please let the echo buffer clear out before yo turn on the volume. If you don't, you will get a crashing sound every time you enter a level with echo and it's just freaking annoying. To do this, first enable your echo with 0 volume for the left and right speakers. Then set up your echo as normal. Then, wait a few notes (240ms), then turn on the echo volume. That will completely fix that problem. Thank you.
Now that I've bored the heck out of you with a huge freaking post:
Link removed, because it was an old version and people were getting confused.
A note:
This is a BETA, that means I want FEEDBACK on it. Please tell me any errors you find, anything you think that would make it better (No promises), or just anything pertaining to this. It wouldn't due to realease YET ANOTHER broken addmusic. That's all, have fun.