- Removed a couple apparently unused, leftover lines relating to the P-balloon that could have caused confusion and even a problem if someone tried to change values
- Two of the read3()s in the unpatch file were missing the needed +1, which has been corrected
Modulo the couple small fixes above, everything seems to work as intended, so this is accepted. I'll note however, that some of the timer values may not behave as expected or may be of limited use. In particular:
- The value for bullet bill generator is ANDed with the frame counter, so it should be set to one less than a power of 2 ($01, $03, $07, $0f, $1f, $3f, $7f, or $ff) to avoid odd timing effects. For example, a value of $1f (decimal 31) would fire every 32 frames.
- The value for the Yoshi swallow is ANDed with the frame counter in order to determine when to decrement. So it should also be one less than a power of 2. It defaults to $03, so it can only be halved, doubled, quadrupled, etc.
- The timer for bullet bill shooter shooter only decrements every other frame, so the total time between shots is double what's set here.
- The timer for the P-balloon decrements every fourth frame, and since the default is already $ff, you can only lower it, not raise it.
- The value for the throw block decrements every other frame, and since the default is already $ff.
- The value for the P-switches decrements every fourth frame.
- The value for the keyhole causes it to pause for that many frames while at maximum size. This seems of pretty limited use, and if used, it would likely be done ROM-wide, rather than per-level. As such, it would be simpler to implement with a simple hex edit, and I'd simply recommend removing it here.
To actually use this, I'd recommend using the supplied UberASM file as gamemode 14 along with any desired ROM-wide default values (you can use $00 for the vanilla defaults). Then, make individual level UberASM files to override these global defaults as desired. Also take note of the supplied default values, many of which are probably not what you want to actually use.