TASVideos

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

Submission #6613: BrunoVisnadi's SNES Super Mario World "warps" in 09:54.35

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:54.35
FrameCount: 35720
Re-record count: 73444
Author's real name:
Author's nickname: BrunoVisnadi
Submitter: BrunoVisnadi
Submitted at: 2020-02-01 07:59:26
Text last edited at: 2020-02-04 13:09:26
Text last edited by: Nach
Download: Download (109294 bytes)
Status: judging underway
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
ALERTS POSSIBLY COMPROMISING MOVIE INTEGRITY:

LSMV begins from dirty SRAM

Author's comments and explanations:
(The claim this starts from dirty SRAM appears to be a bug. I'll look into it tomorrow when I wake up.)

Hello, TASVideos! This run is a project I've been working on a lot along December and January. It includes some long pieces of input from years ago and a couple sections I took from my 96 exit WIP. The result is an improvement of 165 frames, or ~2.745 seconds over the previous run of this category. I hope you enjoy it!


(Link to video)

Game objectives

  • Emulator used: lsnes-rr2-beta23
  • Aims for fastest completion
  • Forgoes arbitrary code execution
  • Forgoes game-end glitches

A note on the cloud glitch

The SMW speedrun community uses a glitch known as the cloud glitch, which allows beating Bowser much faster. However, that particular glitch is prohibited in this category because the manipulations required to resume gameplay after getting the cloud are considered arbitrary code execution. The orb glitch, although looks similar, happens entirely inside the game's ROM and is thus allowed.

Comparison Video

Amaraticando made a comparison video with ghosts of the previous runs of this category:

(Link to video)

Stage by stage comments

Yoshi's Island 2 (1)

It was fine to end this stage one frame later, because the previous run ended with bad frame parity. So, I refrained from performing some of this stage's corner boosts, because they require hitting a few '?' blocks. Hitting these blocks is very problematic because each gives the player exactly 10 points, and there aren't many ways of changing the score digit of the tens (which is relevant, because lag in SMW heavily depends of the sum of the score digits). For the score plan of this particular run, I couldn't get these point in YI2. I slowed down a bit at the end, too, in order to finish with a better setup which allowed me to avoid the lag frame from the goal tape spawn. One frame saved overall.

Yoshi's Island 3 (74)

The duplication section was polished, hopefully, to its best. The first few duplications were improved, and the position and speed of the red shell were carefully chosen in order to optimize all of its bumps (shells interact with blocks in a very counter-intuitive way). It turned out it was faster to duplicate into the upper half of the dragon coin, and not into the bottom one. So, in the same jump, I collected the dragon coin and performed a technique (which is only possible in specific circumstances, if the shell had x-speed to the opposite side of the desired duplication last time Mario grabbed it) to duplicate from the opposite side of the block and get the wings. This is much faster because I never need to move left to the final duplication. Additionally, instead of touching or eating the wings, I dropped the mushroom from the item box and used it to eat-swap them, which is also significantly faster. Overall, 73 frames were saved.

This stage was done way before the rest of the run, and taken from my 96 exit WIP. I'd say it was by far the hardest level to optimize in this TAS, and probably took dozens of thousands of re-records by its own.

Yoshi's Island 4 (148)

There were some very important facts for this stage I was unaware of back in 2015. First one is that when a P-Switch's stun timer is non 0, throwing it (and not dropping it) makes the fish to appear instantly. That means the goal here is to take the recycled P-Switch to the water as soon as possible, and not to recycle the P-Switch as soon as possible (since it's irrelevant how big the stun timer is). The setup was changed and a good amount of time was saved. I did a way better job at controlling lag, managing to remove every lag frame in the double tongue section. Second important fact is that if you move upwards on water fast enough and pass by a specific Y position, it's possible to 'clip' the surface of the water and get a high enough Y position in which Small Mario is able to remount Yoshi after being hurt. Thus, I don't need to re-grab a Mushroom, saving a lot from the animation. This means I enter YI1 small, which presumably would be a problem, but turned out to work well. 74 frames saved here.

Yoshi's Island 1 (161)

The third YI4 relevant fact I was unaware of actually takes place in YI1: it is perfectly fine to enter this level as Small Mario. At first it sounds a big liability because it'd be impossible to fill every slot with powerups, and you can't even go for the old strat with the red shell (because you need Yoshi's tongue to get the Flower later on). However, you can go for the simplest of the item swaps: burning a sprite with Fire Mario and eat-swapping with the coin. I was very surprised it worked so well and that it turned out to be faster than most of the previous strats, and as fast as the best one we had so far (which involved entering YI1 with big Mario and a Mushroom in the item box). The pros of this method are that there is no need to slow down for the Flower in the flying ? block (getting the Flower from a normal ? block doesn't require slowing down), nor to double eat the invisible mushroom, Mario grows in the mid-way point (so, no animation!) and screen scrolling to the left is 8 frames shorter than to the right. The cons are that you need to 6/5 the whole way instead of hoping 49 (mitigated by the extra corner clips), and some slowing down is required for the corner clip. Overall, 12 frames saved on stage and 1 from transition lag.

#1 Iggy's Castle (160)

One frame was lost from transition lag. Delaying entrance to remove it would be worse.

Donut Plains 1 (163)

I went for a different strat at the beginning - I jumped very early to set the takeoff meter to 80 ASAP, and after it decreased to 0 I jumped again on the first ledge to set it back to 80. With heavy P-Meter manipulation, not too much time was lost (only a few pixels) but the higher takeoff meter allowed me to pick a much better Y-Position for the Camera. There is a small window for the Camera's Y position where the keyhole's animation doesn't loop but most of it is of-screen, which heavily reduces keyhole lag. 5 frames of lag were saved, and with an improved 'keyhole trick' I pulled off, no real frames at all would be lost. It was better, though, to sacrifice 2 real frames at the keyhole to avoid losing one frame to transition lag. Thus, 3 frames saved overall.

You might have noticed I collected tons of coins in this stage (and in other previous stages as well). That's because it will be important later on to have 0 as the digit of the tens of the coins. This digit impacts on lag, and I was careful in the other stages to not have it too high.

Donut Secret 1 (164)

Two frames of lag saved by delaying keyhole activation in 1 frame, as an adaptation for the inconvenient Star Warp frame rule.

Donut Secret House (163)

The frame rule for the Big Boo Boss was still 1 frame off, and there was no place in the run to sacrifice it in exchange for lag, so it was inevitable to end the fight with some time loss.

Blame Dotsarecool for the Big Boo fight idea :)

Star World 1 (163)

No change.

Star World 2 (165)

I didn't need to delay keyhole activation in 1 frame (which was needed last time). Not that this was relevant, because this frame doesn't help to beat any frame rules and can't be exchanged for lag anywhere. Another frame was saved in the transition lag.

You might have noticed 100 points are obtained in this stage, which is unusual. They don't cause extra lag and have a purpose later on (it was honestly the easiest place to edit them in, could've done in SW4 as well).

Star World 3 (165)

No change.

Star World 4 (164)

No change. Despite I ended this level with extra 100 points, everything lined up well enough so that no extra lag happened. The real frame saved in SW2 was lost back due to the Star Warp.

Front Door (165)

One frame was lost to transition lag, at the start. In this level, coin count and score were extremely relevant.

I understand way better now how lag in the dark room works, and basically, in order to optimally reduce lag Mario needs to have such an x position that makes it impossible for him to kill the first Ninji with the feather. The 100 points from that Ninji are essential, though, and that's why SW5 was ended with a different score. These 100 extra points would have caused an extra lag in the door transition out of Room 2, and the only way to prevent that was to have < 10 coins, which is why many coins were collected in the early levels to loop the count. Two lag frames were, finally, shaved off in the dark room, increasing the total amount of frames saved in this run to 165 – exactly the same amount the previous TAS saved over the older one!

Special Thanks

  • Amaraticando for his collaboration in the previous run and for the best lua script you'll find for any game.


Nach: Judging.

Similar submissions (by title and categories where applicable):