An evil witch has replaced Princess Peach's fair speech with explosives! Mario and Luigi must once again come to her rescue, but this time they employ the help of Bowser, their sworn enemy. Mario and Luigi must learn new moves and combine powers to fight off enemies and move closer to the witch's castle. Guide this unlikely bunch through an abundance of minigames such as Border Jump and Mystery Carts. Combine the powers of Mario and Luigi to pull off special tag-team moves, saving the Princess in a record time.

The Category

As the name of the category suggests, this run completes the game while not being using any sort of glitch or sequence break in order to skip further ahead into the game's progression, instead it plays the game more or less as intended by the developers and follows the main plot and storyline of the game. While the run doesn't feature any glitches, it still features plenty of tricks in order to save lots of time throughout the run.

Version Choice

The run was performed on the EU version of the game, which has all the features of the US version. However, at the end of last year it was discovered by RTA runners that the Spanish language in particular has faster textboxes which, throughout the run, save close to 30 seconds over US. One of the major reasons as to why I chose US/EU is because, in the Japanese version, the attack multipliers for the Bros. Attacks, the POW damage calculations and the max bonus points that you can get from the level up roulette in the Japanese version have all been changed in such a way that you can only finish each boss after Tolstar 1 turn slower compared to the US/EU version, making up for a total of 3 turns lost which is over 30 seconds slower. This becomes even more relevant in the first fight against Popple & Rookie. On the US/EU version it’s possible to skip Rookie’s animation of unlocking the flame attack that he can do against the bros, which he unlocks once he is at or below 40 HP. However, on the Japanese version it’s impossible to deal enough damage to kill him before unlocking this animation, which loses another 35 seconds on top of needing an extra turn to finish the fight.
The second and biggest reason for choosing the US/EU version is because of 2 particularly overpowered items, those being the Mush Badge and the #1 Trousers.

Mush Badge

The Mush Badge gives an attack bonus based on how many mushrooms (including super, ultra, and max mushrooms) you have. This bonus is added on to the base damage. On the US/EU version, each Mushroom and Super Mushroom increases the bonus by 51/256 points, and the total is rounded down to an integer. Ultra and Max Mushrooms do increase the bonus slightly more but are rarely ever picked up in the run. The reason why Mush Badge is essential to the route is due to its synergy with the Chopper Bros. move. This move is supposed to do many hits that do a small amount of damage, quickly decaying to 1 damage per hit. But the Mush Badge bonus damage is added to every hit, so the total damage is effectively multiplied by the Mush damage bonus. TAS can do a maximum of 27 hits per Chopper Bros. using autofire, which can add up to insane amounts of damage the more Mushrooms I have.

#1 Trousers

The #1 Trousers gives the wearer the ability to always attack first, no matter the speed of the enemy they're fighting. These trousers are especially broken on the US/EU version not only because of the Mush Badge being significantly stronger than on Japanese, but because they only cost 250 coins and both bros can wear it. On the Japanese version, they raised the cost of the #1 Trousers, from 250 coins, to 1290 coins, while also only making them wearable by Mario. This, in combination with the Mush Badge, enables me to essentially kill every boss after the solo fight against Popple in 1 turn except for Cackletta at the very end of the game.

The Route

The first 12 bosses of the game are defeated normally. I collect extra mushrooms, as well as other items to sell and get more mushrooms along the way to power up the Mush Badge. On Mario’s last turn in the Dragohoho fight I unlock the Advanced version for Splash Bros. which enables me to use it on Queen Bean and kill her a lot faster than intended. I also go out of my way to unlock Pipe 1 in Stardust Fields, Pipe 4 in Beanbean Town and Pipe 5 in Chucklehuckle Woods for later use. I defeat Wiggler first and get the Red Chuckola fruit, then head for the Purple fruit since it’s in my way, before finally collecting the White fruit last.
The run continues pretty normally until I get back to Beanbean Town after defeating Popple & Rookie for the second time; before getting to Hooniversity though, I collect a Bean Fruit on the way. Once I arrive in East Beanbean, instead of traveling all the way to the Air Port, I go out of my way to use Pipe 6 to warp to Pipe 4 which I will also need for later in the run. After defeating Mom Piranha the #1 Trousers are unlocked, so after starting the Peach escort quest, I go to the Badge & Clothing shop inside the town to buy the #1 Trousers and equip them on Mario. I then proceed to unlock Super Hammers and enter Teehee Valley to start the Peach escort quest.
The Peach escort quest is done normally, with the exception of the third room, where I am forced, due to an emulator inaccuracy (see below), to have Peach captured by the spiked Goomba. In RTA speedruns there is a strategy to not get her captured in this room, however that doesn’t work for TAS for reasons I will explain at the end.
After defeating Trunkle, I arrive in Little Fungitown which is the place you can buy the Mush Badge from. In this run I actually buy 2 Mush Badges; one for Mario, since he will be doing all of the damage to the enemies, and one for Luigi for a particular fight later on in the run. I get through Fungitown and Guffawha Ruins and I arrive back in the castle. On the way to the Ship in the desert, instead of taking the normal path to Teehee Valley, I go to the item shop to buy 32 mushrooms which is enough to get my Mush damage up to 15. Even though I have a lot more coins left, I need to keep a lot of coins for later in the run. I then go back to take Pipe 3 and warp to Pipe 6, because it is slightly faster than the normal route, picking up the second Bean Fruit along the way.
The run continues pretty normally. I spend 200 coins in order to unlock the last action commands of the run and I make my way to Hermie III. Once he is defeated, I take Pipe 8 to Pipe 5 in order to beat Popple and unlock the second Beanstar piece. Before I can get to Popple though, I have to spend 500 coins to complete a minigame to unlock the Winkle Card that is needed to enter Popple’s room. I then make my way back to Pipe 5 to take Pipe 4 that I unlocked and I collect 2 more Beanfruits while I make my way to collect the third Beanstar piece. I continue collecting 2 more Beanfruits after I get the piece, I go to Yoshi’s Theatre and talk to Boddle to spawn Piranha Bean, which has the last Beanfruit I need to unlock the fourth and final Beanstar piece. I go back to unlock Pipe 2 and use it to warp to Pipe 6 to get to Piranha Bean faster, which I will also use on the way back.
After I revive the Beanstar, I go to the item shop to buy more Mushrooms to reach 19 mush damage. I unlock the Ultra hammers before heading to the surfing spot to go to Joke’s End. After Joke’s End, I go through the broken cruiser, defeat Popple & Birdo and head back to the castle for one last time. I do the last shopping trip to buy more Mushrooms, and after I max out on normal Mushrooms I get my mush damage up to 22 which will be enough to get a 1 turn kill on all the Koopalings and on Fawful. After watching the final cutscenes before entering Bowser's Castle, I take pipe 3 to pipe 1 to reach Blablanadon and enter Bowser's Castle, where the run will continue like normal until the end of the game.

Battle By Battle Comments

Bowser

The fight always ends after 5 hits no matter how much damage I do. The only way I can speed up the fight is by dodging every counterattack on the first possible frame and avoiding the tutorials.

Goomba #1 (Tutorial)

Lucky hits are disabled here. I can again speed up the fight by hitting every counterattack on the first possible frame.

Goomba #2 (Tutorial)

Before entering the battle I manipulated RNG to get a +3 on POW as soon as possible in the roulette level up. I will be only upgrading POW and Stache (for the most part) throughout this run since I need to do as much damage to the bosses as possible.

Fawful

Fawful’s helmet has 18 HP, Fawful himself has 12 HP. It’s faster for Fawful to attack Mario as much as possible since he is a few pixels closer to Fawful than Luigi, but I couldn’t manipulate that to occur every time without losing time overall.

Fighter Fly #1

You might have noticed that I wasted some frames before entering the battle, but this was done on purpose. In the Fighter Fly battles that I take there are always 4 enemies: 2 flies and 2 cannons. A fly has a 9.68% chance of dropping a mushroom at the end of the fight, while a cannon has a 16.13% chance of dropping one. It is possible for all 4 enemies to drop a mushroom each though, which is what I ended up manipulating while only losing 7 frames. A 4 mushroom drop only has a 1/4101 of occurring.

Fighter Fly (Tutorial)

This tutorial conveniently refills the bros’ HP and BP after finishing it and lets me keep our total uses of Splash Bros. The reason why that is important is because I need to use Splash Bros. 20 times in order to unlock Splash Bros. Advanced. On the Japanese version, the total uses for Splash Bros. is reset to 0, meaning that I would have to do three battles after the tutorial rather than one before and two after, which is another reason why the US/EU version is faster. The Splash Bros. in this tutorial counts towards our total uses, so that brings our total to 4 uses after this fight.

Fighter Fly #2

I only have to waste a few frames for this battle as well to get the RNG seed that I need. This time I don’t get the same 4 mushroom drop as in the previous battle, instead I manipulated only a 2 mushroom drop at the end as well as a Lucky hit for Mario (which has a 5% chance with his current Stache) to kill the cannon in 1 jump, since manipulating another 4 mushrooms would have lost too much time. I take damage on every counterattack because it’s 1 frame faster.

Fighter Fly #3

In this fight I don’t need a Lucky hit anymore since I have enough BP for 2 Splash Bros, instead I want to manipulate a 3 mushroom drop at the end, but because I have to wait a long time until I get the RNG seed that I want, I get the 10 coins required from the nearby coin block now instead of after the battle is over.

Tolstar

If you paid close attention you might have noticed that I waited for a few frames while inside the suitcase. This was actually on purpose. I delayed giving Mario the Syrup because, while inside the Item menu in the suitcase, RNG advances once every 4 frames. It would be a very efficient method to manipulate RNG, but since it takes 3 seconds to open and close it, it's not used throughout the run. But since I have to open it here anyway, it was a lot faster to lose 8 frames there than to waste over a second on the last textbox before entering the battle. I do that in order to manipulate a Tolstar fight with only 1 additional textbox as well as a Lucky hit in order to finish the battle 1 turn faster. The reason why I go for 1 textbox this time and not 0 is because, even though I only had to lose 4 more frames to get a 0 textbox fight, at the end of that fight I was unable to get a +3 on POW for Mario, which is required for this route to work.

Hoohooros

Now that we are out of Stardust Fields I will only be fighting bosses. I managed to get a good RNG seed for this battle without wasting much time at all, since it’s about 30 frames faster for Hoohooros to go inside the top pillar instead of the bottom one at the start of the battle. I also manipulated him into targeting Mario more often, which saves a few frames each time since Mario is a little bit closer to the boss than Luigi is.

Dragohoho

This is the first bossfight where the POW stat of Mario really starts to matter, because if it’s any lower than 27, I would have had to spend an additional turn killing Dragohoho, as well as sit through his attack and combined they lose close to 15 seconds. I manage to get Splash Bros. Advanced right at the end of the battle. I need to get Advanced before the Queen Bean boss fight so that we can significantly speed up the fight. Also, in order to kill Dragohoho in 3 turns, I have to use Bounce Bros. as well. Throughout this run I try to avoid using it because you unlock Bounce Bros. Advanced after only 8 uses. The animation loses time and I don’t need its Advanced version so I try to use it as rarely as possible. In this fight we start giving Luigi stache, because having a higher stache gives a higher discount for when buying items later.

Queen Bean

Normally to defeat this boss you have to take down her 2 arms and then you can use splash bros on her head. However, since I got Splash Bros Advanced, I am able to do damage to the head without taking down her arms because the Advanced version of the attack can damage spiky enemies, which saves a lot of time. POW also matters for this battle; since she has 120 HP, I’m able to defeat her in only 3 turns.

Popple & Rookie

If you kill Rookie first, Popple will run away from the battle. Thus, I aim only for Rookie. Luigi intentionally takes damage so that he dies on the last counterattack because we don’t need a level up from him and it loses a bunch of time. Getting Rookie to below 40 HP will trigger a very slow cutscene of him showing his fire attack, but by dealing enough damage to leave him in 40 HP exactly, we skip that, so that’s why we intentionally miss the second Bounce Bros.

Wiggler

This boss only has 34 HP, so after we make him weak 5 hits of Chopper Bros. are enough to finish him off.

Chuckolator

Chuckolator has 300HP as well as a shield that has 30 HP which blocks the first attack. I get rid of his shield with a Chopper Bros. by hitting it 6 times, after that Luigi uses Knockback Bros to deal more damage. I repeat this pattern of attacks for 2 more turns; by the end of the third turn I’m careful to leave him in exactly 65HP because if he has any lower, he will go into his small form which loses a lot of time. I then finish him off with one more Chopper Bros which does just enough damage to kill him. In this fight it’s a lot slower to kill Luigi so we don’t do that. Fun fact: In this fight Chuckolator can do an attack on Mario that is undodgeable, one of only 2 attacks in the game that cannot be dodged under any conditions.

Cackletta

Unfortunately I had to waste about a second waiting on the textbox to get a fast kill on this boss. Cackletta has 2 attacks that she can do after her first turn is over: she can either spawn thunderbolts from the sky, or she can clone herself. The cloning attack is fastest, so I manage to manipulate Cackletta into cloning herself 4 out of the 5 turns while being in the middle 2 out of the 4 times she cloned, which is the most optimal placement for her, because if she had been on the top or bottom positions she would’ve had to walk to the middle which loses 41 frames if she was up and 53 frames if she was down, but sadly I couldn’t manipulate her to be always in the middle without losing even more time overall. On the fifth turn she gets down to 10 HP after using the Chopper Bros., which is when she starts her long attack, and I finish her with one last Knockback Bros. I switch back to upgrading POW for Luigi, because he needs to have at least 67 POW by the time he gets to level 17 for a much later fight. Also, the rewards for this fight are bugged; normally Cackletta only drops 300 EXP after she’s defeated but the game also treats the clones as the real Cackletta, hence why I get 900 EXP instead.

Popple & Rookie 2

This fight only takes 3 turns, which gives Rookie 4 opportunities to attack before doing his special attack with Popple. Thus I manipulate him into doing 3 fire attacks since they are his fastest attack; throwing a hammer at Mario is his second fastest attack and is only a few frames slower. I take damage with Luigi so that Popple can kill him on the last turn. This is the last fight in which I kill Luigi since he wouldn’t be able to get to 67 POW if I killed him more often.

Mom Piranha

I manipulate her into doing as many swing attacks as possible since that’s her fastest attack. I intentionally fail the Bros. attacks on the Piranha plants because it’s faster and I don’t need to deal more damage anyway.

Trunkle

Now that Mario has #1 Trousers I can save a turn in this fight. After this fight I switch to upgrading Stache for Mario as well, since he will be getting the Mush Badge right after this fight and the main damage source is gonna come from the mush damage, not from his POW. The reason why I didn’t switch earlier is because both Mom Piranha and this boss would have taken 1 extra turn to kill.

Hermie III

Now that Mario has both the #1 Trousers and the Mush Badge the remaining fights are gonna become a lot quicker. Hermie has 400HP, but since I was able to get the exact amount of mushrooms needed for 15 mush damage from the shopping trip after Fungitown I am able to kill him in a single turn.

Popple (solo)

Before entering I wait a few frames to manipulate him into doing his fast attack against Mario, and also for him to drop a Super Mushroom at the end which has a 32.26% chance, making him the only boss in the game that doesn’t have a guaranteed drop. Unlike Hermie, this is a 2 turn fight because Popple has 500HP. After this fight Luigi gets to 68 POW which is just enough to speed up the next fight significantly.

Piranha Bean

This enemy has 180 HP and he can only be defeated by solo Luigi, so without Mario this fight will take a lot longer. This is the fight where it was very important for Luigi to have at least 67 POW. Another side effect that I glossed over when I talked about the Mush Badge is that the Mush Badge also gives the wearer +20 POW, which is stacked on top of the bonus damage from the Mush damage that you have. So with 15 Mush damage and 87 POW, Luigi is able to do exactly 30 damage using his Thunder attack (which is the most effective way to kill Piranha Bean since Thunder does critical damage to him), which turns it into a 6 turn fight. Switching to POW for Luigi even earlier would have messed up the mushroom route and it would’ve made it impossible for me to get 15 mush damage before Hermie.

Chucklissa

Before heading for Joke’s End, I bought enough mushrooms to get to 19 mush damage which is just enough to kill her in a single turn using Chopper Bros. At the end of this fight I switch to Stache for Luigi but I go for the fastest stat rolls for both bros instead of the highest stat rolls because they only need a few more Stache points for the last shopping trip, which they get just from their default level-up bonuses.

Popple & Birdo

Just like the fight against Chucklissa, I can also kill Birdo with a single Chopper Bros. Popple attacks Luigi before entering the fight while wasting no frames at all, but Luigi is high enough level that he actually survives Popple’s attack, which is unfortunate since killing him here would have been faster had he died in 1 hit.

Koopalings

On the last shopping trip I got enough Mushrooms to reach 22 mush damage, which is enough to 1 turn kill all of the Koopalings. Stats don’t matter anymore so I constantly switch upgrading HP, BP and Stache since they are the fastest ones to select. Not much else to say about them.

Fawful

The first Chopper Bros. is used to get him out of his dome, then once he’s airborne I use another one to kill him.

Bowletta

Just like the Koopalings, Bowletta is also a 1 turn kill. I intentionally wait on the textbox at the end in order to manipulate the fight against Cackletta’s Soul.

Cackletta’s Soul

This fight becomes a lot easier now that I have an overpowered Mario. #1 Trousers enable me to kill the head before it can attack. After the hands do their arm flick attack, I use a failed jump with Luigi to get rid of the right hand, and a Hammer attack with Mario to get rid of the left hand. The reason why I do these attacks in this order instead of simply jumping is because I need to manipulate RNG for a specific attack from the head after the heart revives all the body parts. Almost every single attack that the head can do is very slow but it has one attack where it powers up or heals one of the body parts, either one of the 2 hands or the head itself, which is by far its fastest attack. I also manipulate both hands into doing the arm flick attack at the same time. After these attacks are over, because Mario has the #1 Trousers I use a Chopper Bros on the heart and get it to under half HP, after which Cackletta attacks again. I manipulated another power-up attack from the head and 2 more arm flick attacks from the hands and I finish the fight with one more Chopper Bros on the heart. It is actually possible to attack the heart before it respawns the body parts which has a 50% chance of if you kill the last body part during a counterattack, but because Luigi does so much damage and because the hands only have 80 HP he cannot leave one of the hands alive for Mario to kill on a counterattack.

Tricks

Corner Boosting

In Toad’s House I walk into the corner of walls which pushes us faster to the left than walking, saving a few frames. This is because Toad walks at a speed of 0x100 units per frame, or 0x50 units per frame in each direction when walking diagonally, but by walking perpendicularly into the corner of a wall he gets pushed to the left with a speed of 0x200 units per frame for 4 frames, and that is called Corner Boosting. This is only practical when moving at halved speed though, since the bros' walking speed is already 0x200 units per frame, and only certain corners in the game can actually boost by 0x200 units.

NPC Boosting

By jumping into an NPC’s hitbox, the game tries to eject you out of its hitbox, giving you more speed the closer you jump into its hitbox which saves a few frames per application. This is called NPC boosting and it’s used all throughout the run.

Ledge Boosting

We can use ledges that end in a corner in order to boost Mario or Luigi forward, if you walk off the ledge diagonally and then move towards the corner. The speed that you get from the ledge boost is influenced by the angle of movement relative to the angle of the ledge and the distance to the ledge the frame before walking off it.

Instant Switching

The closer the bros are to each other the less time it will take to switch places. If the bros are on the same pixel, the switching will finish instantly which saves a few frames each time.

Stair Jumping

Walking on stairs causes you to move at half speed until you’re no longer on them, however by facing perpendicularly to the stair the frame before jumping you keep normal speed in your desired direction before landing on the stair again. While this works for most stairs, some stairs like the ones in the badge shop from Fungitown, the ones in Beanbean Town and the ones in Joke’s End don't let you keep normal speed for long even while stair jumping normally, so you have to move diagonally for a few frames for the first jump in order for the back bro to keep getting zipped to front bro’s position.

Instant Reuniting

When the bros get separated either by dunking Luigi under a gate or by flattening Mario and walking through a hole, the time it takes for them to reunite is based on the distance between them on the frame of reuniting. If we position the separated bro such that the non-separated bro can jump and land exactly 0x1000 units in front of him the reuniting animation will happen instantly.

Glitches

This is Glitchless, obviously there aren’t gonna be glitches done in this run. Why are you reading this?..

Minigames

Border Jump (Stardust Fields)

During this minigame I intentionally take damage with Mario and Luigi. The reason why is because, at the end of the minigame, fireworks spawn in the mini castle in the background. How many fireworks spawn is based on how many lives the bros have in total. So, by taking damage twice with each bro, I’m able to only spawn 2 fireworks than 6 if I were not to take any damage throughout the minigame, which saves a few seconds.

Pillar minigame (Hoohooros)

You’re supposed to spin jump across the 4 pillars in order to collect the 10 spirit orbs, however with a pretty precise jump it’s possible to simply jump and make it back to the platform if the spirit orb spawns next to you, which saves about 80 frames compared to spin jumping across. Before this minigame I manipulated RNG such that only 2 of the 10 spirits spawned 2 spaces away and required a spin jump to get.

Minecart (Hoohoo Mountain)

This minigame has no tricks to it that could speed it up, so I tried to entertain throughout the minigame.

Block minigame #1 (Hooniversity)

In this minigame you’re forced to hit 30 moving blocks in under 25 seconds in order to complete it, and the speed that they move at is governed by RNG. However, there is a neat little trick that was discovered at the beginning of this year that greatly speeds up this minigame and the next one found in Joke’s End. When creating this minigame, the developers forgot to make the blocks intangible after you hit them once, so during their animation of moving upwards and then disappearing it is possible to actually hit the block again with Mario with a jump on the second frame after he lands while the block is at its lowest point. This jump has a 2 frame window and Mario is the only one that can do it twice, since the moving blocks from Luigi’s side are placed a little too high up for him to hit them again. This saves a bit over 5 seconds over normally completing the minigame while hitting the blocks once each time with Mario.

Geno minigame (Fungitown)

You might have noticed that I avoided getting points from every single star and this is not only done for entertainment, it’s actually also done for speeding up the minigame. The stars next to the timer will flash for 50 frames for every star that enters, which essentially freezes the timer for 50 frames, so I avoid them altogether.

Statues minigame (Guffawha Ruins)

This is the minigame located before the entrance to Guffawha Ruins. The only way to save time during this minigame is by manipulating RNG for the last statue to spawn the blue orb after the first bounce, which is the earliest it can spawn. This saves 122 frames over the worst possible outcome where it spawns after the third bounce. It’s the only one that is RNG dependent, the other statues are always consistent.

Barrel puzzle (Teehee Valley Ship)

This minigame also doesn’t have anything going for it that would speed it up, so I try to go for the highest score while not delaying the ending.

Winkle minigame (Chucklehuckle Woods)

This is the minigame with the most potential for optimisation by far. When you take damage during the minigame, the snail takes a short speed boost towards the end time which saves almost a second for each fireball that hits you, so after getting to 15 score I try to take damage as often as possible. Note that every time the bros take damage, they have an invincibility period of about 2-3 seconds before they can take damage again, and depending on which bro is hit and what angle he’s hit from, the platform will tilt in the opposite direction while having no control of its tilting for that invincibility period. So, I get the last 6 points by knocking the energy orbs back while both bros already have i-frames. Taking damage as often as possible saves over a full minute over not taking any damage and going for the highest score.

Block minigame #2 (Joke’s End)

Just like in the last block minigame from the Hooniversity, I’m able to hit the blocks more than once in this minigame as well. In Hooniversity, you’re only able to hit the blocks a maximum of 2 times before they despawn due to a much tighter window and you’re only able to hit them with Mario, however in Joke’s End this window is a lot more generous (4 frames instead of 2) and the developers placed the blocks from Luigi’s side low enough for him to also be able to hit them more than once. Because of this, I am able to hit the first 2 blocks that appear 15 times with each bro, finishing the minigame in just under 5 seconds, saving close to 15 seconds versus the intended way to complete the minigame.

Potential Timesaves

There have been some improvements pointed out to me during the course of this run, however most of them were very far back and because I wanted to keep my motivation sane, I decided not to implement them. There is, however, 1 big timesave that’s worth mentioning that I was aware of from the very beginning which I could not get due to an emulator inaccuracy (see explanation below).

Emulator Inaccuracy

I have already reported this issue to Endrift and the mGBA staff, however I didn’t want to delay the release of this TAS both because I wanted to stay motivated and because it would have probably taken months for the next update to be released as the last one was released just over a month ago.
During the Peach escort quest, Peach can get captured by the spiked Goomba enemies that are present inside of Teehee Valley. There are 2 ways in which she can get captured. The first way is if the spiked Goomba is loaded too early, it will target the Princess and capture her. To rescue her after she gets captured, you must go down the pipe that’s present in each of the 4 rooms and go through a small hallway, which is very slow. Once she is rescued, she will go back to the beginning of the room and the spiked Goomba that captured her will no longer spawn in that room. There is an alternative way in which she can get captured though and this is where this inaccuracy lies in. If you go too far away from her, she will go off-screen and get unloaded, which will cause her to immediately get captured, even if there are no enemies near her.
This becomes a big problem in the third room of Teehee Valley. The RTA strategy for this room involves walking up to the end of the first step of the staircase and waiting there for about 5 seconds, which sets up the camera perfectly to barely not have Peach get captured by a Goomba and also to not have her unload. The problem is that on emulator, this strategy does not work, as she gets unloaded as soon as she is off-screen (9 frames after she becomes completely invisible), whereas on original hardware she gets unloaded about 2 seconds after she is no longer on-screen. After spending over 6 hours trying to come up with a different method to not load the Goomba too early but also not unload Peach, I couldn’t find any results, so unfortunately the only path forward was to get her captured on purpose and lose over 15 seconds compared to RTA. This was one of the most disappointing timelosses, but it was entirely out of my control.
Potato: I prefer frame 537342 as the thumbnail, although frame 363021 works just as well.
Potato: Huge shoutouts to Snodeca for coming up with most of the routing part of the run (such as the mushroom route but also the boss route in general), as well as for helping me make a complete overhaul of the level-up route and for pointing those huge timesaves out to me. The run wouldn't have been possible to make without his massive contributions.

ThunderAxe31: Claiming for judging.
ThunderAxe31: File replaced for a corrected rerecord value.
ThunderAxe31: This is another popular RTA category for this game. It features the whole story and requires a lot of route planning.
It was mentioned that there are some known techs that were not included, but that's because those were discovered while this movie was already in the making. Also, the biggest time loss has been estimated by the author to be 15 seconds, which isn't that bad for a 3 hours of movie.
Accepting as a new Alternative branch.

Spikestuff: Processing...


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15619
Location: 127.0.0.1
Potato
He/Him
Editor, Player (191)
Joined: 3/7/2020
Posts: 62
Location: Mars
After making the submission I realised I sent the .bk2 file with the outdated rerecord count, so if any staff could replace it with this file it would be much appreciated. Hopefully you guys will enjoy the run.
MLSS Any% TAS out! (link)MLSS All Bosses TAS out! (link)MLSS Glitchless TAS out! (link)
Pixiuchu
She/Her
Player (147)
Joined: 9/27/2015
Posts: 106
Having helped with some of the routing but not actually having seen the entire TAS from start to finish before, the TAS did have quite a few impressive moments that blew my mind (Popple & Rookie 2 for example). Too bad I didn't have the motivation to watch the previous TAS (2:59:3x) before he started the new EU TAS that ended up being 2 minutes faster, I only did lazily and spotted a few major timesaves that he was missing out on + level up routes, but having watched the TAS in its' entirety now I was able to spot several small timesaves that, had I been able to help like I wanted to, could have been implemented. But I understand why he doesn't want to redo the TAS a fourth time at the moment, lol. I would implement them myself but my computer is genuinely absolutely TERRIBLE so that will not happen (I tried TASing the game, this is definitely not doable in the long run). Regardless, the TAS is still very good and I was entertained watching it through, even after having helped with the routing and whatnot. Therefore, a yes vote. Glad to see this TAS happen, a TAS I had always wanted to watch.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15619
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [5394] GBA Mario & Luigi: Superstar Saga "glitchless" by Potato in 2:57:49.71
Editor, Expert player (2331)
Joined: 5/15/2007
Posts: 3940
Location: Germany
Submission text wrote:
Emulator Inaccuracy I have already reported this issue to Endrift and the mGBA staff, however I didn’t want to delay the release of this TAS both because I wanted to stay motivated and because it would have probably taken months for the next update to be released as the last one was released just over a month ago. During the Peach escort quest, Peach can get captured by the spiked Goomba enemies that are present inside of Teehee Valley. There are 2 ways in which she can get captured. The first way is if the spiked Goomba is loaded too early, it will target the Princess and capture her. To rescue her after she gets captured, you must go down the pipe that’s present in each of the 4 rooms and go through a small hallway, which is very slow. Once she is rescued, she will go back to the beginning of the room and the spiked Goomba that captured her will no longer spawn in that room. There is an alternative way in which she can get captured though and this is where this inaccuracy lies in. If you go too far away from her, she will go off-screen and get unloaded, which will cause her to immediately get captured, even if there are no enemies near her. This becomes a big problem in the third room of Teehee Valley. The RTA strategy for this room involves walking up to the end of the first step of the staircase and waiting there for about 5 seconds, which sets up the camera perfectly to barely not have Peach get captured by a Goomba and also to not have her unload. The problem is that on emulator, this strategy does not work, as she gets unloaded as soon as she is off-screen (9 frames after she becomes completely invisible), whereas on original hardware she gets unloaded about 2 seconds after she is no longer on-screen. After spending over 6 hours trying to come up with a different method to not load the Goomba too early but also not unload Peach, I couldn’t find any results, so unfortunately the only path forward was to get her captured on purpose and lose over 15 seconds compared to RTA. This was one of the most disappointing timelosses, but it was entirely out of my control.
I vaguely remember this was reported back in the early days of M&L TASing. I assumed if there was any emulation inaccuracy related to the Peach escorting, it must have been fixed by now. So since you have brought this up, I wanted to investigate this thoroughly. And here is what I found: EWRAM address $4815 will tell how many frames Peach has been offscreen and this value is checked every 3rd frame or so. (The address will usually increment up to 3 and then reset back to 0.) When entering the first room, Peach is not allowed any offscreen time so she is captured as soon as she is offscreen, which is expected to happen during Toadworth's intervention in normal gameplay. After that, Peach is allowed to be offscreen up to 3 seconds (180 frames, 0xB4 in hex) - assuming she doesn't touch any active enemy. When Peach comes back onscreen, the timer is reset to 0 and she can go offscreen up to 3 seconds again. Since TAS skips the capture in the first room, the check for Peach being offscreen doesn't change. So she cannot go offscreen at all from that point onwards. However, despite the above I managed to skip the goomba in the 3rd room during testing, by having the goomba become active and start walking as soon as possible and then going back to Peach and blocking her from walking upwards in a specific way. It should be possible to save a few seconds with this knowledge. It looks like there wasn't an inaccuracy.
Potato
He/Him
Editor, Player (191)
Joined: 3/7/2020
Posts: 62
Location: Mars
MUGG wrote:
I vaguely remember this was reported back in the early days of M&L TASing. I assumed if there was any emulation inaccuracy related to the Peach escorting, it must have been fixed by now. So since you have brought this up, I wanted to investigate this thoroughly. And here is what I found: EWRAM address $4815 will tell how many frames Peach has been offscreen and this value is checked every 3rd frame or so. (The address will usually increment up to 3 and then reset back to 0.) When entering the first room, Peach is not allowed any offscreen time so she is captured as soon as she is offscreen, which is expected to happen during Toadworth's intervention in normal gameplay. After that, Peach is allowed to be offscreen up to 3 seconds (180 frames, 0xB4 in hex) - assuming she doesn't touch any active enemy. When Peach comes back onscreen, the timer is reset to 0 and she can go offscreen up to 3 seconds again. Since TAS skips the capture in the first room, the check for Peach being offscreen doesn't change. So she cannot go offscreen at all from that point onwards. However, despite the above I managed to skip the goomba in the 3rd room during testing, by having the goomba become active and start walking as soon as possible and then going back to Peach and blocking her from walking upwards in a specific way. It should be possible to save a few seconds with this knowledge. It looks like there wasn't an inaccuracy.
Can you send the input file please? Or at least a recording? I remember I tried for like 3 hours to make the goomba active earlier and I couldn't do it. Maybe now with your hitboxes function built inside of the Lua script it might be easier to figure out (btw thanks a lot for that, that will make manipulating RNG easier in the future).
MLSS Any% TAS out! (link)MLSS All Bosses TAS out! (link)MLSS Glitchless TAS out! (link)
Skilled player (1673)
Joined: 7/1/2013
Posts: 452
Good stuff, MUGG!
Editor, Expert player (2331)
Joined: 5/15/2007
Posts: 3940
Location: Germany
Potato wrote:
Can you send the input file please? Or at least a recording? I remember I tried for like 3 hours to make the goomba active earlier and I couldn't do it. Maybe now with your hitboxes function built inside of the Lua script it might be easier to figure out (btw thanks a lot for that, that will make manipulating RNG easier in the future).
I hadn't really looked at the whole room but I still figured out a solution. Here is the input file and video: https://tasvideos.org/UserFiles/Info/638695116215262432 Link to video

1734497913