Hello, this is my first good TAS and my first submitted TAS to TASVideos. I’ve always wanted to improve the warpless TAS since I’m an RTA runner and we’ve known about numerous time saves for many years, it’s just none of us knew how to TAS. I decided to finally try learning it and came out of it with this.
Emulator and ROM info
The previous work by Soig used DeSmuME 0.9.9, which has faster loads than BizHawk’s melonDS core. The TAS that I have created is undoubtedly faster than Soig’s TAS when factoring in loading times despite the RTA time being slower. I converted Soig’s TAS to be viewable in BizHawk using a script(direct download)
from Suuper to compare them, which is also how I managed to build upon what Soig created in BizHawk as opposed to DeSmuME.
Don’t think most/any of this is needed info, but I wanted to provide it just in case.
Any properly dumped North American/Australian ROM (UROM as denoted by the crash debug screen
) should work with syncing.
Emulator used: BizHawk 2.8
- Initial Time: 7/27/2000 11:25:12 AM
- Use Real Time: False
- DSi Mode: False
- Use Real BIOS: False
- Skip Firmware: False
- Firmware Override: False
- Firmware Start-Up: Auto Boot
- Firmware Username: melonDS
- Firmware Language: English
- Firmware Birthday Month: November
- Firmware Birthday Day: 3
- Firmware Favorite Color: Red
- Firmware Message: Melons Taste Great!
|1B6A5C||4 Byte||Fixed point 20.12||X speed|
|1B6A60||4 Byte||Fixed point 20.12||Y speed|
|0CAB14||4 Byte||Unsigned||In-game Timer|
|1B75A1||1 Byte||Signed||Left pipe|
|1B75A2||1 Byte||Signed||Right pipe|
The Blue Shell is used throughout the TAS because it has many unique properties and glitches that save time overall, even if it’s technically slower in a select few levels.
While in the Blue Shell, Mario’s max speed is usually capped to 2.75 pixels per frame, whereas normal running speed without the Blue Shell is 3 pixels per frame. This can be exploited by simply letting go of the run button while in the air so Mario isn't in his Shell, and thus can get back to 3 p/f until he goes back into his Shell again(exceptions explained later).
When Shell Mario lands while out of the Blue Shell, there is a 2 frame window where he can do a double or triple jump. This is used to keep his speed at 3 p/f.
If Mario goes into the Blue Shell and jumps the frame afterwards without Left or Right being held after the initial 1 frame down press used to get into the Blue Shell, then his speed is (usually) capped at ~2.95 pixels per frame which is close enough to 3 p/f to not lose any time when done in moderation. This is useful because it’s possible to save frames with corner boosts on blocks.
Bunny Hopping (It doesn't have a name and I don’t know what to call it)
This works similarly to keeping Mario’s shell speed at ~2.95 p/f. If Mario is falling while out of his Shell onto the edge of a solid and Right is held at a specific point for one frame before he starts falling again, then his speed will be capped at 3 p/f as long as Left or Right aren't pressed and he continues to jump every frame that he lands. Jumping one frame late or holding Left or Right will cause him to decrease in speed slightly.
If a throwable object(Koopa shell, Spring, etc.) is thrown while Shell Mario is going down a slope, then the faster speed Mario has while going down the slope will be carried into his X speed if he jumps on the right frame without Left or Right being held. This is best seen in 5-B and 8-5, although it’s also used in more subtle places like 1-2 and 1-5.
While in the Blue Shell and doing frame perfect jumps without Left or Right being held or pressed, Mario will continue to build up speed on the conveyors seen here in 5-Castle.
Quick Slide Glitch (QSG)
If down is pressed on the very edge of a solid, Mario’s speed is <2.75 p/f, and the opposite direction to where Mario is facing is held while falling, then Mario will accelerate faster than running while in the Blue Shell. This also has the added benefit of Mario’s speed being 3 p/f while in the Blue Shell. This is done on many occasions. If Mario isn’t up to 3 p/f before he lands, then a jump the frame that he lands is required to continue the buildup, otherwise all that speed will go back down until 0 or until Mario unmorphs.
Star QSG/Star Hyperspeed
Under normal circumstances, Shell Mario cannot get Star speed because he’ll simply go back into the Shell once 2.75 p/f is reached. By doing QSG on the first possible frame that you can with Star, you can build up enough speed to reach 4.5 p/f(Star speed). This has two added benefits that you normally don’t have when you have a Star with any other powerup: you keep your Star speed while in the air and you keep your Star speed even when the Star runs out.
If Mario is in the Blue Shell and his y-velocity is at 0 while in the air, then when he unmorphs out of the Blue Shell he can do a jump in midair. This is very useful for vertical parts, mostly notably done in 5-Tower(although you can’t see it here, but Hartmann has a nice unlocked camera version
There’s many ways to directly manipulate the RNG which I sneakily used throughout the TAS. Actions such as: double jumping, wallkicking, and throwing an object will increment RNG by 1. A brick block breaking will increment RNG by 14. Some actions will continue to increment RNG every frame for a while, such as a screen shake from a Thwomp or the volcano in 8-8 erupting, both examples being things I took advantage of. One thing that uses RNG is the bounce an item in the bottom screen inventory does. I didn’t even know about this until Suuper brought it up one day, and it helped with 8-Tower, 8-3, and 8-4 by using the inventory item and regrabbing the Blue Shell so it couldn’t bounce.
- Suuper, for providing some Lua scripts, answering my questions, creating the NSMB_RNG program which I slightly modified to help with getting Soig’s RNG seed on BizHawk, and his 2-3 Hyperspeed and ending Space Jump.
- Soig, for his previous work which I built this TAS off of.
- Hartmann, for being who Soig built his TAS off of.
- clockwatcher, for 8-5 Hyperspeed and the faster 8-Tower2 acceleration at the end.
- GregLVK, for being the first person to figure out that 5-A is faster than 5-2 back in 2018.
- MoistenedWah, for being the person to find the faster 7-4 route.
Improvements and Non-Improvements
- 1-1: 1 frame lost to collect the first Star Coin.
- 2-1: 4 frames saved due to not doing QSG on exit pipe. Doing QSG off of pipes like this has been done for many years, but it’s actually slower.
- 2-3: 120 frames saved due to Hyperspeed at the start and a Space Jump at the end.
- 2-Castle: 60 frames saved due to spawning in the third spike ball sooner.
- 3-B: 11 frames lost to collect the last Star Coin.
- 3-Castle: 1 frame lost to collect the second Star Coin
- Map (5-1 to 5-2/5-A): 376 frames lost to unlock the Star Coin Gate.
- 5-A: 1047 frames saved due to going to 5-A instead of 5-2. Going to 5-A yielded a net gain of 658 frames.
- 5-Tower: 13 frames saved due to not needing to manipulate RNG. Soig said he only lost 11 frames here, so I don’t really have an explanation as to how I saved 2 more. Weird emulator difference perhaps, or his original comparison was inaccurate. Who knows? Not me!
- 5-B: 1 frame lost to manipulate RNG.
- 5-Castle: 16 frames saved due to a faster Hyperspeed from the conveyors to reach the roulette block at a sooner cycle. This lets Mario get the Mini Mushroom sooner.
- 7-4: 168 frames saved due to a better route through the level.
- 8-2: 2 frames lost due to Skeeter RNG.
- 8-5: 271 frames saved due to Hyperspeed.
- 8-7: 5 frames saved due to Space Jump over the wall after grabbing the Star.
- 8-Tower2: 21 frames saved due to a higher jump to the door. Jumping into the Blue Shell while crouched makes you jump higher than normal for whatever reason.
Total: 1333 frames (~22.217 seconds)
: Input file replaced with a 60 frame improvement.
: Hello, Glitchman24, and welcome to TASVideos!
This is a fantastic improvement to the old warpless run! While it may seem longer due to different loading times between emulators, the gameplay is definitely more optimized with smaller movement changes and larger routing improvements.
: Adding Soig as a coauthor, since glitchman borrowed a good amount on inputs the previous warpless movie. (This was confirmed to me in a discord chat with him)