Do you want to know how to use Legacy ports? Do you have a bunch of old ports lying around on your hard drive that you don’t know how to use? Well look no further! This tutorial will teach you just about everything you need to know about converting a song ported for Addmusic 4.05 or AddmusicM to be compatible with AddmusicK.
The first and easiest step is by adding either “#am4” or “#amm” to the beginning of your text file. This will let AddmusicK recognize that this port was designed for either Addmusic 4.05 or AddmusicM. For most unsampled ports they can be used interchangeably, but sometimes the port you’re trying to fix will be incompatible with AddmusicK if you use a certain tag. If this occurs, use the other tag instead and it should work fine.
For unsampled ports, just adding those tags should be enough. However, there are two other issues you may encounter while fixing unsampled ports (Sampled ports too).
For starters, sometimes you may get an error that says
Fixing this issue is very easy. Open your text file and look for “$F1” (CTRL+F will get you there the fastest). When you get there, you will be given a string of bytes that will look something like "$F1 $0B $20 $01". Lower the byte that comes after $F1 (in this case it would be $0B) by the amount provided by AMK (usually I just set it to $00), and the song should be working again.
The song might not sound as good with the echo reduced, but it rarely ever screws up the song entirely.
Another issue you may run into are label redefinition errors. This is due to the fact that unlike AddmusicM, AddmusicK won’t redefine labels for you, so you have to change them manually.
The error itself will look something like this:
“XX” represents the line where the error occurs. Keep in mind that when these errors show up, if you’re using the #amm tag, they likely won’t be on the line that AddmusicK specifies. In order to fix the error, use the #am4 tag (Switching back to #amm afterwards usually works).
Open the text file and press CTRL+G to jump to the specified line. For the purposes of this tutorial, let’s say the label that needs to be redefined is “(35).” All you need to do to fix this is change (35) to any number you want as long as no other label shares that number. So say you changed it to “(200),” if there are no other labels with the number 200 then you’ve done this correctly.
This should do it for unsampled ports. Now onto fixing sampled ports!
Sampled ports are a little bit more tricky given that samples are involved. One thing to keep in mind is that samples may break when you convert them, so not all songs will be perfect.
Now, let’s say you’re trying to fix a port that uses .bnk samples. In order to convert this song, add the following:
One important thing to note is that when bnk samples are involved, typically the song is in Addmusic 4.05 format.
This should make the song compatible with AddmusicK, however in some cases the notes will all be delayed and the song will sound awful. If this happens, it’s likely that the song you’re trying to fix is in $E5 format.
To fix this, open your text file and look for $E5 (Again, CTRL+F). The string of bytes that follow should look something like “$E5 $A5 $05.” To fix the song, change $E5 to $F3, subtract 80 from $A5 (use a hex calculator to do this unless you can do mental hex math in your head), but DON’T modify the last byte (in this case its $05).
This should make the song sound less delayed, however this won’t affect broken pitches, so if a note is too high or too low then you’re out of luck.
Songs that use brr samples aren’t harder to fix, but they’re a little bit tedious. Unlike songs that use bnk samples, songs that use brr samples typically work best when you use the #amm tag.
Songs that use brr files usually have something at the beginning of the text file that looks like “s02 21_22_23_AA_FF.” Delete this, its unnecessary.
In order to convert your song, add the following:
The amount of samples vary depending on the song you fix (typically there are more than four), but this is what your opening tags should look like in general.
EDIT 3/15/17:
One other tip that may come in handy: Adding transpose commands.
If you're trying to convert a song made for AddmusicM to AddmusicK, there's always the possibility that the song may have broken notes. The fix to this actually isn't that difficult, however it can be tedious depending on the port. Much like how AddmusicK doesn't redefine labels like AddmusicM does, if there's no transpose command after every $F3 command, AddmusicM automatically puts a transpose command there, which is always set to zero, whereas AddmusicK assumes it doesn't need to be there.
All you have to do is place a transpose command (i.e. h commands) that's automatically set to zero after an $F3 command. Should look something like this:
Try putting them after every $F3 command in the text file. There should be a noticeable change. If things still sound off, just try to remove h0's after certain $F3 commands. Again, its tedious, but it works.
This is all I know when it comes to fixing old ports. If you are having any other issues then please take them to the Custom Music subforum in General SMW Hacking Help. I hope this tutorial was helpful!
The first and easiest step is by adding either “#am4” or “#amm” to the beginning of your text file. This will let AddmusicK recognize that this port was designed for either Addmusic 4.05 or AddmusicM. For most unsampled ports they can be used interchangeably, but sometimes the port you’re trying to fix will be incompatible with AddmusicK if you use a certain tag. If this occurs, use the other tag instead and it should work fine.
For unsampled ports, just adding those tags should be enough. However, there are two other issues you may encounter while fixing unsampled ports (Sampled ports too).
For starters, sometimes you may get an error that says
Originally posted by AddmusicK
echo buffer exceeded total space in ARAM by 0x5C00 bytes.
Fixing this issue is very easy. Open your text file and look for “$F1” (CTRL+F will get you there the fastest). When you get there, you will be given a string of bytes that will look something like "$F1 $0B $20 $01". Lower the byte that comes after $F1 (in this case it would be $0B) by the amount provided by AMK (usually I just set it to $00), and the song should be working again.
The song might not sound as good with the echo reduced, but it rarely ever screws up the song entirely.
Another issue you may run into are label redefinition errors. This is due to the fact that unlike AddmusicM, AddmusicK won’t redefine labels for you, so you have to change them manually.
The error itself will look something like this:
Originally posted by AddmusicK
File: Old Port.txt Line: XX: Label redefinition.
“XX” represents the line where the error occurs. Keep in mind that when these errors show up, if you’re using the #amm tag, they likely won’t be on the line that AddmusicK specifies. In order to fix the error, use the #am4 tag (Switching back to #amm afterwards usually works).
Open the text file and press CTRL+G to jump to the specified line. For the purposes of this tutorial, let’s say the label that needs to be redefined is “(35).” All you need to do to fix this is change (35) to any number you want as long as no other label shares that number. So say you changed it to “(200),” if there are no other labels with the number 200 then you’ve done this correctly.
This should do it for unsampled ports. Now onto fixing sampled ports!
Sampled ports are a little bit more tricky given that samples are involved. One thing to keep in mind is that samples may break when you convert them, so not all songs will be perfect.
Now, let’s say you’re trying to fix a port that uses .bnk samples. In order to convert this song, add the following:
Code
#am4 #samples { “Bnkfilename.bnk” }
One important thing to note is that when bnk samples are involved, typically the song is in Addmusic 4.05 format.
This should make the song compatible with AddmusicK, however in some cases the notes will all be delayed and the song will sound awful. If this happens, it’s likely that the song you’re trying to fix is in $E5 format.
To fix this, open your text file and look for $E5 (Again, CTRL+F). The string of bytes that follow should look something like “$E5 $A5 $05.” To fix the song, change $E5 to $F3, subtract 80 from $A5 (use a hex calculator to do this unless you can do mental hex math in your head), but DON’T modify the last byte (in this case its $05).
This should make the song sound less delayed, however this won’t affect broken pitches, so if a note is too high or too low then you’re out of luck.
Songs that use brr samples aren’t harder to fix, but they’re a little bit tedious. Unlike songs that use bnk samples, songs that use brr samples typically work best when you use the #amm tag.
Songs that use brr files usually have something at the beginning of the text file that looks like “s02 21_22_23_AA_FF.” Delete this, its unnecessary.
In order to convert your song, add the following:
Code
#amm #samples { #optimized #AMM “samplename1.brr” “samplename2.brr” “samplename3.brr” “samplename4.brr” }
The amount of samples vary depending on the song you fix (typically there are more than four), but this is what your opening tags should look like in general.
EDIT 3/15/17:
One other tip that may come in handy: Adding transpose commands.
If you're trying to convert a song made for AddmusicM to AddmusicK, there's always the possibility that the song may have broken notes. The fix to this actually isn't that difficult, however it can be tedious depending on the port. Much like how AddmusicK doesn't redefine labels like AddmusicM does, if there's no transpose command after every $F3 command, AddmusicM automatically puts a transpose command there, which is always set to zero, whereas AddmusicK assumes it doesn't need to be there.
All you have to do is place a transpose command (i.e. h commands) that's automatically set to zero after an $F3 command. Should look something like this:
Code
$F3 $VV $WW $XX $YY $ZZ h0
Try putting them after every $F3 command in the text file. There should be a noticeable change. If things still sound off, just try to remove h0's after certain $F3 commands. Again, its tedious, but it works.
This is all I know when it comes to fixing old ports. If you are having any other issues then please take them to the Custom Music subforum in General SMW Hacking Help. I hope this tutorial was helpful!