TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #4928: BrunoVisnadi & Amaraticando's SNES Super Mario World "warps" in 09:57.1

Console: Super NES
Game name: Super Mario World
Game version: USA
ROM filename: Super Mario World (U) [!].smc
Branch: warps
Emulator: lsnes rr2-β23
Movie length: 09:57.1
FrameCount: 35885
Re-record count: 262699
Author's real name: Bruno Visnadi & Rodrigo A. do Amaral
Author's nickname: BrunoVisnadi & Amaraticando
Submitter: BrunoVisnadi
Submitted at: 2015-12-06 00:17:32
Text last edited at: 2018-07-06 07:34:10
Text last edited by: BrunoVisnadi
Download: Download (23088 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
Hello, TASVideos! This is our improvement of 165 frames, or ~2.745 seconds over the previous run.


(Link to video)

Game objectives

  • Emulator used: lsnes-rr2-beta23
  • Aims for fastest time
  • Forgoes arbitrary code execution
  • Abuses programming errors
  • Takes damage to save time
  • Uses death to save time

Comments

We started this run as soon as the previous one came out. Initially, we managed to find only minor improvements. Then, we found some noticeable improvements, including one that was tried without success in the past and a pretty unexpected one that hadn't been thought about before. We suggest that you watch the video before reading past here!

BizHawk movie:

We've ported this TAS to BizHawk's format. If you wanna run this alternative movie, you can download it here.

A note on the cloud glitch

The SMW speedrun community uses a glitch known as the cloud glitch, that allows to beat Bowser much faster. However, that particular glitch is prohibited in this category because it's considered arbitrary code execution.

Eating Chargin' Chuck as small Mario: gives the cloud and immediately makes the code jump to unmapped memory, where A.C.E. happens, even if the player manages to get back to the normal routine.

Eating Clappin' Chuck as Fire Mario: gives the orb and doesn't crash the game. Everything executed is in game's ROM.

New Tricks

Stunning a fish

This glitch was discovered by Bruno Visnadi. It was already used in the Super Demo World any% TAS, and it was actually already known before the submission of the current published SMW warps TAS. The glitch consists in stunning a fish or a para-bomb. When stunned, these sprites will spawn a Reznor. If Reznor spawns into slot 7, the level can be finished: the following RAM memory addresses values - $7E:1520, $7E:1521, $7E:1522 and $7E:1523 - must sum up to 4. Each sprite use these addresses in a different way, many of them for 'vertical directions'. The 4 cited addresses are used by sprites between slots 4 and 7.

Lateral corner clip

This minor glitch was discovered by Amaraticando, but wasn't used in a Super Mario World TAS yet. It is only possible if Mario is big and with Yoshi.

Corner boost downward

This trick was found by Amaratcando. It is only possible in water levels, and with high Y speeds.

Stage by stage comments

To facilitate visualization, we made a comparison video with ghosts of all the previous runs.

(Link to video)

Yoshi's Island 2 (0)

In this level, we've optimized the very ending in order to do the item swap and finish the level one frame sooner. We lost back this frame due to lag, but it is still worth to do this because being one real frame ahead is useful in the next stage.

Yoshi's Island 3 (104)

Here happens the biggest improvement in the whole run. Firstly, due to factors as performing a better corner clip, having the opposite real frame parity and ditching Yoshi further to the right, we could do the first duplication 5 frames sooner. The way turn blocks work in this game is: When a turn block is hit by the first time in a level, it starts spinning and a block sprite, which takes slot 3, is set to it. If you hit more turn blocks before the first stops spinning, they will spin as well and their block sprites will take slot 2, then 1, then 0. When none of the 4 slots is slots available, and you hit a new turn block, the block that is on slot 3 will stop spinning, and the block you just hit will start spinning, taking slot 3. If you keep doing this, then slot 2 will be taken, then 1, then 0, then 3 again. So, it is impossible to 5 blocks to spin at the same time. What was done in the previous run was to, after duplicating each block, double hit (hitting with Mario and with a item at the same time) 2 blocks quickly, so that 4 sprite blocks are spawned and the block you duplicated stops spinning, so that you can duplicate it again. We did something completely different: we duplicated some blocks upwards in an specific position and order, and then we threw the red shell on them. So, while Mario was hitting blocks around the duplications, the shell was contributing hitting blocks much faster than Mario could do by himself. After many attempts, we could find a sequence of duplications in which Mario almost never needs to wait to duplicate a new block, which saved a lot of time. We also save about 10 frames by going under the wings block instead of going above it after collecting the dragon coin, which allows us to reach Yoshi sooner, and consequently, he can interact with the wings earlier. We also save a frame by releasing the mushroom from the item box, which changes the slot the wings is spawned in and improves Yoshi's interaction with it. Overall, 104 frames are saved.

Yoshi's Island 4 (288)

Here, we perform stun glitch to spawn a Reznor and finish the level! Initially we manipulated Mario's relative position to the screen by turning left at the right frame, intending to minimize the duration of a screen scroll. So we used the scroll to spawn a floating spike ball, and used it, a fish, and the p-switch to perform the stun glitch. In order to freeze the screen and do the double tongue glitch, we had to take damage, immediately mounting Yoshi again (which is only possible if Mario is big, so that's why we release the mushroom before and collect it immediately). Yoshi's tongue can set to 3 the value of the address $7E:1522, and that's enough to 'kill' Reznor and finish the level. Yoshi is 'vaporized', but since we didn't dismount him, he is back in the next level. The usage of this glich in this level was attempted many times in the past, but it was never useful because it was necessary to save significantly more than 135 frames, because of overworld and YI1 troubles. Since we saved 184 frames, we could apply it to the TAS. In this level, score was really important. Having any score with an higher sum of the digits would cause extra lag.

Yoshi's Island 4 > Yoshi's Island 1 (153)

We had to do YI4 before YI1 in order to have a Yoshi there. So, we have to walk more in the overworld, losing 135 frames.

Yoshi's Island 1 (139)

Since we didn't have the mushroom in the item box, we had to slow down to double eat a mushroom, losing 13 frames. One frame was also lost in Mario's death frame rule. In comparison to the older TAS, however, that also didn't have the mushroom, we saved 2 frames: one when double eating the mushroom, and other by lateral clipping a block, which boosts Mario forward.

#1 Iggy's Castle (139)

No change.

Donut Plains 1 (139)

No change. We finish this level with an apparently horrible score, but it doesn't cause any extra lag.

Donut Secret 1 (142)

One frame was saved in the first room, by corner boosting downwards. In the second room, we save another frame, by optimizing the shell grab. And in the transition to the overworld, another frame is saved. Again, having a better score wouldn't change anything here. We could delay the keyhole entrance in 1 frame in order to save 2 frames of lag, which would put us momentarily another frame ahead. However, it would stop us from beating a frame rule in the future, and so, we don't do it.

Donut Secret House (146)

Here, we pick up p-meter in the first room, in order to start the second room flying. Normally, it is impossible to get p-meter in a stair, but since we had flying speed, we got p-meter while Mario was decelerating in the stairs, and when his speed was about to get lower than 35, which is the minimum speed to gain p-meter, Mario reached the plain floor. We had to pass by a specific position in the stairs, otherwise it would push Mario too high, and we would lose p-meter. Overall, this saved 2 frames. In the second room, we performed an extra corner clip when going back to the door, saving another frame. This was just enough to beat the Big Boo Boss frame rule, which saved 1 more frame. Score at the ending has a huge sum of the digits, but it doesn't cause any lag. Lag works in a different way in the fadeout of the Big Boo Boss fight.

Star Warp (150)

We beat the Star Warp frame rule, saving 4 frames.

Star World 1 (151)

Since we have the opposite parity of the real frame, we don't need to delay in 1 frame the entrance of this level.

Star World 2 (153)

In the ending of this level, we did the keyhole trick: instead of throwing away the baby Yoshi, we released it close to the key, threw the key in the keyhole, then we grabbed the baby Yoshi again, released it and grabbed the key, which was already in the keyhole hitbox area. This would save one frame, since it allows us to activate the keyhole a bit further to the right. However, it was better to delay in one frame the keyhole entrance and save this way 2 frames of lag, due to the better Mario position.

Star World 3 (161)

We grabbed and threw away a throw block intending to manipulate the slot of the second one. Then, instead of throwing it normally in the key block, we threw it upwards inside a wall, using a glitch that doesn't allow a sprite to interact with a wall if its X speed is to the opposite side. So, we hit the throw block while it is already moving upwards, and it hits the key block 8 frames earlier. Thus, 8 frames are saved in this level.

Star World 4 (161)

No change. Score is this level is absolutely restrict. Any different amount with a higher sum of the digits would cause extra lag.

Front Door (165)

In room 5, we could squeeze under the spikes before, saving one frame; and in the dark room, we sacrifice one real frame avoiding the corner clip, which saved 2 frames of lag, and thus, another frame. In Bowser's fight, as we entered it with a different real frame parity, he throws the mechakoopas 1 frame earlier. Also, we could fly better in the ending and end input 1 frame earlier. So, overall, 4 frames were saved in this level.

Special Thanks

  • PangaeaPanga, bahamete and Masterjun, for the previous run.
  • Ilari, for always being helpful in IRC and lsnes support.
  • dnnzao, for showing interest in this run.
  • Shia LaBeouf, for his motivational speech! And BrunoValads, for actually suggesting 'DO IT' in the Big Boo Boss!

Improvements

I've recently found the ending of YI3 can be slightly improved, so I'm making the note here. I'll update this after we work on the improvement and find exactly how big it is.


Samsara: why didn't you use cloud glitch, rejected forever Judging.

Samsara: Squeezing almost 3 seconds out of a game as hyper-optimized as SMW is an incredibly impressive feat, and the new tricks serve to set the run apart from its predecessors. The new strat in YI3 was brilliant, something that almost seems obvious in retrospect but still requires a lot of thinking outside the box, and it's just hilarious to realize that every single stage in Yoshi's Island comes to an abrupt end... all in different ways. I love this game.

Accepted as an improvement to the published run, and also recommending this inherit the Star tier. I was told how to handle this situation properly and I completely forgot over the last month and a half, because I'm smart and great at my job, so hopefully what I did before is acceptable!

fsvgm777: Processing.


Similar submissions (by title and categories where applicable):