Submission #9589: IgorOliveira666's SNES Super Mario World "96-exit, arbitrary code execution" in 56:44.01

Super Nintendo Entertainment System
Super Mario World
96-exit, arbitrary code execution
BizHawk 2.6.3
204577
60.0988138974405
18987
PowerOn
Super Mario World.smc
USA
6b47bb75d16514b6a476aa0c73a683a2a4c18765
Submitted by IgorOliveira666 on 3/19/2025 1:06 PM
Submission Comments
Have you ever imagined Mario going through all the levels at Sonic's speed? Well, you don't have to imagine anymore, you'll see it with your own eyes!
  • Emulator used: BizHawk 2.6.3
  • Allow Left+Right / Up+Down
  • Core BSNES
  • Abuses programming errors
  • Heavy glitch abuse
  • Corrupts memory
  • Complete all exits

The Run 🟢

This is a TAS that completes all 96 exits in Super Mario World using arbitrary code execution. I wrote some code in the game's memory that allowed me to give Mario maximum speed, both left and right.
The process of how the code was written in memory is the same as my glitchfest with arbitrary code execution, so I won't go into details here.
The code was very simple: pressing L on controller 1 sets Mario's speed to 7F and pressing R sets the speed to 80. The address responsible for Mario's speed is $7B and the maximum values ​​that we can have are those mentioned (7F is the maximum to the right and 80 is the maximum to the left). In short, Mario travels to the right at a speed of 127 pixels per frame and to the left at 128 pixels per frame.
The code is this:
LDA $18
AND #$10     ;|check if R (controller 1) is pressed
BNE ace1
LDA $18
AND #$20     ;|check if L (controller 1) is pressed
BNE ace2
RTL
ace1:
LDA #$80      ;|set 80 in $7B if $18 equals 10
STA $7B
RTL
ace2:
LDA #$7F      ;|set 7F in $7B if $18 equals 20
STA $7B
RTL
In short, that's it. No addresses other than the code have been changed.
Important things:
  • Mario jumps very high when his speed is between 110 and 119 (decimal). I used this to my advantage;
  • At high speeds, Mario can pass through walls without dying. You will see this several times in this TAS.
This may be a bit of a controversial category because of the use of arbitrary code execution, but I find it fun to watch Mario blast through every level like a lightning bolt! I also believe that there are several improvements in this TAS and it could be faster, but I didn't have much free time to think about the best possible strategies for each level.
My thanks to the great Noise de Gole for teaching me a lot about arbitrary code execution and you for watching :)
Last Edited by IgorOliveira666 9 hours ago
Page History Latest diff List referrers