Thanks, I also figured it out a few hours ago that you needed to defeat Mom Pirahna in order to unlock the #1 Trousers, but yours is way more helpful. We planned to do Mom Pirahna, Birdo & Trunkle early on anyway.
This is how the route looks so far for All Bosses:
1. Tolstar
2. Hoohooros
3. Dragohoho
4. Queen Bean
5. Popple & Rookie (I)
6. Mom Pirahna
7. Birdo
8. Trunkle
9. Popple (Solo)
10. Wiggler
11. Chuckolator
12. Cackletta
13. Popple & Rookie (II)
14. Hermie III
15. Chucklissa
And now we're trying to figure out the optimal boss order for Bowser's Castle.
We have 2 ways to look at it; the first would be to play through the castle as "normal" (meaning, no Castle Skip to reach Bowletta and doing Iggy first and Fawful last). The first thought we had was to do them in this order:
*Note: Since we're going to do Bowletta and Cackletta last no matter what they are not going to be in the list below.
- Iggy
- Roy (using teleports to reach him early)
- Ludwig
- Lemmy
- Morton
- Wendy
- Larry
- Fawful
The other way we could do it is to just do them in the intended order. This would mean, Iggy, Morton, Lemmy, Ludwig, Roy, Wendy. Larry, Fawful, but I think that may be slower than the previous order.
Finally, there is also the possibility to do the bosses in the reversed order; this would imply doing Castle Skip to reach Fawful and fight him first, then work your way backwards to Iggy and then perform Castle Skip again to fight Bowletta.
We're not sure if you can defeat the Koopalings after you defeat Bowletta and Cackletta by skipping Prince Peasly's cutscene with a teleport. That will have to be tested in the near future.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
How do you exactly know when entities go offscreen? This information would be very helpful for future TASes.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
It is probably possible to visualize it by luascript.
For my own projects I've only relied on trial and error.
RNG values aren't advancing if the entity has gone offscreen too far (= it has gone inactive).
For future reference, a list of battle backgrounds by ID.
When entering battle, $24BA (IWRAM) will tell which background to use and $4204 (IWRAM) and $654E (IWRAM) will be set to the same value subsequently. You can poke a different value to $24BA to get a different background.
Also see here.
0 - Test (unused)
1 - Peach Castle
2 - On Koopa Cruiser
3 - Stardust Fields
4 - Hoohoo Mountain
5 - Hoohoo Mountain Top
6 - Beanbean Outskirts cave
7 - Inside Koopa Cruiser
8 - Beanbean Outskirts (same as 11)
9 - Beanbean Outskirts South
10 - Beanbean Beach
11 - Beanbean Outskirts (same as 8)
12 - Beanbean Castle Sewers
13 - Beanbean International Airport
14 - Chateau de Chucklehuck
15 - Chucklehuck Woods
16 - Chucklehuck Woods South (Towards Snail Game)
17 - Chuckolator room
18 - Gwarhar Lagoons
19 - Seabed
20 - Woohoo Hooniversity
21 - Woohoo Hooniversity Library
22 - Woohoo Hooniversity Green Floor
23 - Woohoo Hooniversity Cackletta room
24 - Woohoo Hooniversity Purple Floor with stars (unused)
25 - Woohoo Hooniversity Basement
26 - Beanbean Castle
27 - Teehee Valley Underground
28 - Guffawha Ruins
29 - Teehee Valley
30 - Oho Oasis Fire Temple
31 - Oho Oasis Thunder Temple
32 - Joke's End Inside
33 - Joke's End Outside
34 - Woohoo Hooniversity Barrel Section
35 - Bowser's Castle
36 - Bowser's Castle Lava
37 - vs. Final Cackletta
38 - vs. Final Fawful
39 - vs. Bowletta
40 - (crash)
41 ...
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
This is for documentation. Useful if anyone or I wants to make a video fighting enemies in unusual places. I'm really only trying to improve upon that atlas script you gave me, though.
Okay, so I've been trying to do teleports in different places on English just to see if we're able to skip cutscenes or reach loading zones that were not doable without the usage of teleports. Here are my results:
• With 2 precise teleports you can actually reach the Popple (Solo) fight in Chucklehuckle Woods early; one to get past the big koopa blocking the door to the cave section, and one to get past the NPC to skip having to do the minigame for 500 coins to reach Popple's room. You then need to do another teleport to get past the NPC on your way back as well. With some careful Follow Path positioning I was able to get all 3 teleports. This enables us to do Popple early if we want to for All Bosses, and we thought about it carefully, since he gives lots of coins and EXP. We'll see if we want to forgo doing him as early as possible over doing him later when you have more mush damage.
• Also in the Chucklehuckle Woods, you can do a 136 warp to go past Chuckroot without getting into his cutscene at all. Even though we are forced to switch more often since 136 gets overwritten very quickly, those switches obviously pay off if we can reach Chuckolator early. RTA used to do something similar on the Japanese version; they'd warp into a wall and then jumped with Luigi high in the air to make Mario clip past Chuckroot, and then they emerged with Luigi to enter the loading zone. What we do for TAS is obviously faster than what RTA does. We have been trying to come up with a way to 1 cycle Chuckolator, without letting him do any attacks using #1 Trousers, but that involves getting Mario to 59 speed, and that requires a LOT of level ups. We are going to further investigate if it's worth doing.
• The door in University that gets us to Cackletta can be barely teleported into. It seems like at Z 57344 there is actually another loading zone for this door that we can enter by letting the walls push us into it. But how do you even get to Z 57344? Well, you teleport into a wall, then use emerge. While emerging, the walls will launch Luigi in the air 57344 units upwards in a single frame. This skips having to hit the last switch to open the door which saves a lot of time.
• If you don't defeat Chuckolator, there is a door inside Beanbean Castle that doesn't unlock unless you defeat him and play the cutscene of resurrecting Queen Bean. But at this point I wouldn't have talked about it if it wasn't possible to skip it. So, yes, you can skip it, but not in the same way the University door was skipped. You will need to do a 136 warp instead of a 256 one by teleporting from the ledge where the door is standing on. If your Follow Path Y is perfectly set up to be the exact Y coordinate of the loading zone behind the door, and if your Follow Path X is also between certain coordinates, you can barely manage to get inside. This means we don't have to do Chuckolator early, but we will still probably do it, mainly to skip having to teleport past the guards to get to Cackletta and to teleport past the rocks that block us from reaching the East side of Beanbean Town, which are also unlocked after you defeat Chuckolator.
I will test some more areas of the game, probably Joke's End and Bowser's Castle, to see how much more can be skipped.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
I'm sorry I just disappeared for half a year without saying anything. Surely you are disappointed that I didn't help you out with your WIPs or with the overlay.
I'm too burned out. There are countless projects that I had left over the years, abandoned, that I really wished I could finish but I never could. It pains me. Somehow after all these years of TASing and glitch hunting and documenting, it felt like I had to do a hard break. At this point I lost all fun and it felt like the "reward" for putting work in is not enough, or not worth my life time anymore. I have certainly hit a stage where I can say I have done what I could. And I have done a lot for this community.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
So a few weeks ago Sjorec found out that the PAL version doesn't lag as much when using Void Barrel, and most importantly (for RTA at least) it also lets you change Mario's action command so you can hammer out of the Void Barrel. It's estimated to save about 10 seconds in Any% for RTA, and perhaps it could be slightly faster than the English version for TAS as well, but I'm wondering if there's anything else that's different in the PAL version.
Link to video
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
I am proud to present to you my newest TAS of this game: the All Bosses TAS.
Reveal will be once again on my YouTube channel and this time I will try my best to also release the commentary for it. Don't know the date though.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
Glitchless TAS will be premiered today at 1:30PM EST on my YouTube channel.
Link to video
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
So, it was just a normal day yesterday when I suddenly got the idea to try and mess around in Peach escort room 4, the infamous room where Mugg got the credits warp back in 2014 that was deemed impossible to replicate outside of the VBA emulator. But back in 2022, RETIRE figured out that it's possible to do it on mGBA, although it requires memory editing to change the byte at $2336 in IWRAM to 10 in order for the game to load the credits sequence. Up until now, based on the attempts that were made to pull off the credits warp legit, the result always ended up being one of the scripts being played, and the script loaded stayed mostly consistent every time it was loaded, so it was pretty much assumed that this game only had Arbitrary Script Execution to work with. Below is a list with all the scripts that could be played by changing the byte at $2336.
Byte value
Outcome
05
Mario turns into his form when he ingests water
07
Warp to room ??? (room ID: 128)
08
Warp to room ??? (room ID: 128)
09
Start minecart minigame
0A
Star amimation from when entering a battle (softlocks the game)
0B
Open suitcase menu
0C
Open save menu
0D
Open map (area selection screen)
0E
Open shop selling items menu
0F
Trigger death warp (respawn screen)
10
Trigger credits sequence
11
Warp to test room (room ID: 0, unused)
12+
No effect, game simply softlocks
The byte at $2416 is responsible if the game crashes when Luigi breaks out or hops off a barrel. Throughout the game, this byte is set to 0 most of the time but a few rooms, like room 4 of Peach escort or Chuckroot's room, change it to 22 instead if Luigi is in a barrel which triggers the crash to happen. However, when Luigi breaks out of the barrel (or when Mario hops off the barrel), as soon as both bros are on the ground, the game always sets the byte at $2336 to 0A which corresponds to the star animation being played. This caused the progress to stop dead in its tracks, since we realised this value is most likely not useful for us if we want to make credits warp a reality in real time.
It was already established for years that the bros' position in the room and what action command Mario had in the back could lead to different scripts being played, but yesterday I decided that I wanted to try to trigger as many of these scripts as I could and make input files for them in order to maybe analyze them and potentially figure out why they happen when they happen. I was able to trigger some of these events, as well as some other events that couldn't be achieved by editing $2336. But probably the most interesting result that I got during my testing session was this:
This is the shop selling menu, a script that is by no means a rare script to trigger, in fact I managed to trigger it dozens of times before. However, this instance of the script was special because it had this glitched badge at the bottom (which I was able to actually sell and not softlock the game), something which never appeared in any of my other instances of triggering the shop menu. I am not sure why this badge was generated but my assumption is that it had to have read some garbage parameters from somewhere when it was loading the items, which got my hopes up a bit that actual Arbitrary Code Execution might be possible to do in this game. I have yet to figure out how it happened but this might a good step in the path to discovering ACE.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
This is an update to the post I made yesterday, because we have made a lot of progress during the last 24 hours.
In the previous post I mentioned that trying to modify $2336 in IWRAM was established to not actually be useful for pulling it off legit, however we discovered that $2336 is not the only value that handles what scripts are being run or what events are being triggered. The memory address $2337 handles which minigame you are currently into; when you are not inside of a minigame, the game simply sets this byte to FF, and when you are inside the game changes this byte to one of these values, depending on which minigame you are in.
Byte value
Minigame entered
00
Minecart minigame (Hoohoo Mountain)
01
Geno minigame (Little Fungitown)
02
Border jump (Stardust Fields)
03
Barrel minigame (Cruise Ship)
04
Winkle minigame (Chucklehuck Woods)
05+
All entities disappear, game softlocks
This value is also not very useful for us since it stays as FF while doing the crash, but it was something to work with. What is useful to us, however, is that there is another address that changes what script you trigger, located at $2339. This byte is responsible for the shop menu and which one you open (the menu for buying items, the menu for selling items, and the menu for buying clothing gear & badges). It is usually set to 02 for the EU version and 00 for the US version, and after you talk to a shop NPC the game sets it to one of these values, depending on which shop you enter and if you want to buy/sell.
Byte value
Shop menu entered
01
Item shop (selling menu)
03
Item shop (buying menu)
07
Badge shop (Beanbean Town)
0F
Badge shop (Little Fungitown)
One reason why this byte is useful for us is that we can actually enter all of these menus from room 4 in Teehee Valley, but the main reason that makes it especially useful is because of this line inside of the game's code, which looks like this after being simplified:
03002339 = 03002339 & 0xee;
The game takes the value at $2339 and ands it with 0xEE, and this process is looped however many times you close out of a script. Then, the game runs this code with the result:
The first check is for the shop menu script, whether or not it's the script that is active. After this check is done it sets bit 0 if it is active, then it ands it with 0xEE once you close out of the shop and then bit 0 is removed. The second check is for whether or not this script is active, and if it is, it sets bit 4.
The third check is for whether or not the script for the credits sequence is active. If it is, it sets bit 5. Past 0x20, the majority of values will yield us a credits warp, and since bit 0 is always removed no matter what script you close, this means that the conditions for a credits warp to happen would be to set any value that has bit 5 set but not bit 4. So now, all we have left to do is figure out which process is writing to here.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)
This document contains all the useful information that we have found so far.
"Questioning his life decisions for 18 years straight."
• MLSS Any% TAS out! (link)
• MLSS All Bosses TAS out! (link)
• MLSS Glitchless TAS out! (link)