UberASM Tool is the latest incarnation of the old LevelASM patch. It allows for the insertion of special code that runs on specific levels or with specific timing, i.e. running constantly during Level106 only, once during any level load, while on the overworld, just before the title screen, etc.
How do I make an UberASM code run during every level?
Apply the code as Game Mode 14 in list.txt.
Can I make multiple UberASM codes run at the same time?
Yes. As an example, say you want to merge two level ASM files, fileA.asm and fileB.asm. Say the contents of these files are as follows:
Note the presence of the "init", "main", and "nmi" labels; there may also be a "load" label in level or overworld ASM codes. Not all UberASM codes will contain all four of these (as seen here, fileB contains the "nmi" label while fileA does not), but it's important you pay attention to which of the four are actually included in each file. Now make a new .asm file - its name is unimportant, we'll name our example file GM14.asm. This new file should contain the following code:
For each of those four labels mentioned earlier, we add a reference to that label preceded by the corresponding file name. Only do this for the labels that actually exist; note that there is no reference to a non-existant "fileA_nmi" label. Now, place this GM14.asm file in the gamemode folder, and place both fileA.asm and fileB.asm in the library folder. Configure list.txt to insert GM14.asm in Game Mode 14, then run UberASM Tool. All codes 1-5 will now execute as needed in Game Mode 14. This same process works for all other categories of code (Level, Overworld, etc.).
Why does Mario go crazy when I enter Yoshi's Island 1?
By default UberASM Tool includes test code that deliberately does this in Level105. Simply remove the call to this code from list.txt. You may freely delete test.asm and test2.asm in the level folder, the tool doesn't use them for anything.
The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.