Advanced Use



Global vs. Local Music

Open up "Addmusic_list.txt". In it you should see two sections: One named "Globals" and another named "Locals". Any song listed under the Globals section can be used at any time in the game with no delay. Song loading is a normally an incredibly slow process, taking several seconds to complete at times. Any song listed under Globals, however, will always be available; they never need to be transferred. Note, however, that this comes at a slight cost. Space in ARAM (audio RAM) is very limited. It is shared between the music program, the music itself, the sound effects, the sound samples, and the echo data. The more global music you put in, the less space you have for all those other things. Only put a song here if you are sure that this is something that could spontaneously play at any given time in the game, such as the P-Switch music or the Starman music. Be warned: Just because a global song is loaded does not mean its correct samples are also loaded. You are responsible for ensuring that the correct samples are loaded.

Adding more music here may result in more "Echo buffer exceeded total space in ARAM" messages.

Command Line Arguments

There are 12 command line arguments that you may pass to this program. To do this, run the program using cmd.exe and use any of these options along with your ROM name. Note that using these when the program asks for your ROM name will not work!

Be aware that turning off hex command validation implicitly turns off echo buffer bounds checking (-e) as well as some Addmusic 4/AddmusicM conversion (-c).



Finally, if the file "Addmusic_options.txt" exists, then the contents of that file will be used instead of any arguments passed to the program. Plain text, one line per argument.

Sample Groups

A "sample group" is just what it sounds like: a group of samples. Whenever a song is loaded, so is its sample group and any auxilary samples it uses (which, in a song, is defined by the #samples command). There are two sample groups included by default, #default, and #optimized. The first contains all the samples the normal SMW ROM contains, so any song that uses #default will also use all those samples. The second is #optimized, which only contains the samples necessary for the game's sound effects and global music (which saves space in ARAM). You may add your own sample groups as well, or modify the default ones. You may use these in your own songs if you wish.

If a sample name has an ! after it, then it marks the sample it succeeds as being used in a sound effect or global song. If you are using different sound effects/global songs, then you may change which samples are marked as "important", which may free some space in ARAM.

If a song does not define which samples it uses, then the program will assume that the song uses the group "default." If this group does not exist, you will get an error.



Other



As a final note, consider this to be the "golden rule" of porting with this tool: If you ever find any bugs, please do not exploit them, even if they have useful side effects--just report them. While I will always do my best to keep compatibility between songs that use different versions of Addmusic, I will not do the same for songs that abuse glitches. In a similar vein, if there are any features that you believe this tool should have, please do not try to find some glitchy way to implement it (the old way of creating custom instruments by abusing the $ED $81 command is a perfect example). Rather, contact me (or, in the future, if I am not available, someone capable) and request it to be implemented; it makes keeping compatibility so much easier when it's not necessary to take into account every way that some feature was abused.


Thank you.



Return to the main page