|File Name: ||Cutscene Mode |
|Submitted: ||2017-03-22 02:04:04 AM by Blind Devil |
|Authors: ||Blind Devil |
|Type: || |
|Includes GFX: ||No |
|Includes Hijack: ||No |
|Featured: ||No |
|Description: ||An uberASM code that freezes Mario in place and locks most controller inputs to prevent pausing/LR scrolling/item dropping, which allows the creation of simple custom cutscenes, so you should either press a button or wait a certain amount of time to advance/end it. It's meant to be the best alternative over sprites that do similar function, because it will prevent wasting sprite slots, is more customizable, optimized, SA-1 compatible, and comes with even more functionalities. The ZIP file also includes an optional ASM file that should fix a certain issue related to OW level setting flags in case you're using a certain OW teleporting action in the cutscene code. |
Be sure to read the Readme and the ASM files for more detailed information.
I like this code a lot. However, there is one small thing keeping me from accepting it, which is that, due to the way you freeze the player and the location of level ASM code in the game flow, it is impossible to use Y or X during the cutscenes. The relevant part is here:
ORA.w $1493 ;$00A202 |
BEQ CODE_00A211 ;$00A205 |
LDA.b #$04 ;$00A207 |
TRB $15 ;$00A209 |
LDA.b #$40 ;$00A20B |
TRB $16 ;$00A20D |
TRB $18 ;$00A20F |
Either fix that, or remove Y as an option in the documentation and explicitly state that it doesn't work.
Also, this isn't necessary, but it would be nice to add "is_midway" to the skip option that teleports you to a specific level, just for the sake of completeness.
Other than that, I've tested all this and it all seems to work, so after fixing that, I'd be glad to accept this.