Sometimes I see code like "LDA.l" or "STA.w" or "LDX.b" - what do the extra letters at the end mean?
These letters are used to specify the size of an instruction to be used by Asar. Many instructions can take different sizes, such as LDA #$000F versus LDA #$0F. Normally, Asar tries to build the shortest logical code for maximum efficiency. Appending .b, .w, or .l will force Asar to load a specific size (2, 4 and 6 digits, respectively). This is commonly used when math is done on assembly in order to guarantee a properly-sized result (Ex. LDA.b #.Table>>16).
What is SA-1?
The SA-1 chip is a co-processor used in certain special SNES games to grant various performance improvements. In SMW hacking, SA-1 can be enabled with this patch, which reduces or eliminates slowdown and increases the number of sprites allowed on screen at once. Note that resources must specifically be made to be compatible with SA-1; luckily, increasingly many resources available for download come pre-configured to automatically detect and work with an SA-1 enhanced ROM. Look for resources tagged as sa-1 to ensure compatibility.
Most of the blocks, sprites, patches and UberASM I download have |!addr written all over the code - what does that mean?
|!addr is a standardized define used in SA-1 compatible resources. It is generally used to ensure that code is automatically converted to SA-1 format if an SA-1 ROM is detected, and leaves the code unaltered if not.
The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.