Thanks to HelloFresh for sponsoring today's video. Go to strms.net/hellofresh_lunaticj, use my code LUNATICSEP10, and receive 10 free meals + free breakfast for life! One breakfast item per box while subscription is active if you’re in the US. The link and code are valid in all countries and the respective local discount will apply.
ACE pisses me off too, it’s cool and all, impressive and proof of a community or community member’s technical knowledge, but it’s so uninteresting versus the spectacle of high level gameplay. I don’t really get excited when coders and TASers start shaking hands.
@@jaysonata3211 This is a reason why every single time ACE has been discovered in a game, it's created a new speedrunning category. The old non-ACE records haven't gone anywhere, and tbh are still more competitive and prestigious. FWIW though, from what I've seen about SMS ACE it also requires a really high level of execution, with frame-perfect inputs all over the place. It's definitely still "high level gameplay" even if it is a bit weird to actually watch a runner seemingly goofing around in Delfino Plaza for fifteen minutes.
True though. I’ve been making it a case to upload glitch and secret vids while keeping them as short as possible. The content isn’t new, but atleast I cut out the filler. Though I’m also glad vids like these exist, to explain every details of the glitch for whoever wants the background info
I feel like you're slightly misusing the map analogy - The pointer doesn't change, what changes is the data at the location of that pointer is pointing to. It's more akin to someone digging up the treasure and replacing it with something else, but you're still using the map expecting to find the treasure.
yeah, my go to analogy for pointers is that they're like street adresses - when the pointer gets freed, whatever lived there moves out and when you go to that adress again later, you don't know who or what is currently living there
Maybe I'm going crazy - isn't calling it a pointer already a perfectly good analogy? It points at a location in memory, much like I can point a location in real life. Putting a different thing in the location being pointed to means you're pointing at a different thing.
What? The pointer isn't pointing to the same place in memory that now has new data in it, it's pointing to a different place in memory - saying the map is now pointing to a different X is completely correct. You're thinking of the pointer as its own object. It is in programming terms, but not in this analogy. It's simply directions, and you get a new set of directions, hence a new pointer.
@@McMuffins42 It's an explanation created by a mario 1 speedrunner that was made even more famous by Summoning Salt. The concept that even if you finished a level a few frames sooner, you'd still have to wait for the next level to load the same amount of frames as if you didn't, making that time saved meaningless. The only way to save time is by going faster and making it to an earlier "bus"
Especially with how many weird ghost object exploits and broken pointers SM64 has. It has like, all the pieces you'd usually search for to create ACE but for some reason it just hasn't been done.
Wide open? It's the most closed off shit because you inject code to skip99% of the game and speed runs devolve to who can do the exact same input the fastest b
Kinda reminds me of that one Pokemon Any% run that requires a *_millisecond-perfect_* system reboot to create a Bad Clone, combined with TrainerID manip and going full Hackerman on box names, to get a credits warp (ScottFalco's "Totally Legit Speedruns" animation for it is chef's kiss).
Some of the shit that people have figured out to do with ACE exploits in Pokemon games is absolutely insane. Programming your game to run full on ARM GBA code using the box names, gene editing using Glitzer Popping to get perfect event Pokemon that fool even PKHex's legitimacy and seed checks, creating your own glitched Pokemon that executes box name codes ON COMMAND simply by opening its summary whenever and wherever you like, changing your own Trainer ID on the fly, setting event flags to whatever state you want no matter your progress, literally programming your own Pokemon with its own custom event and location into the game on the fly...it's like watching school playground rumors come to life, all on vanilla hardware (and sometimes with preprogrammed controller inputs but still)
Great vid - I almost have the concept of an understanding of this now 😂 Would be cool to explain how RTA is done when that gets further developed (I'm even more shocked at how people figured that out)
Awesome video, cool to see sms ACE get a good video explaining the general concepts for viewers to understand! One small correction though, the turbo gate that's used to point to the spin buffer in the modern ACE routes is actually the one next to the beach pipe on the other side of the map, and that shine grabbed in the TAS to trigger ace is generally referred to as underbell. For anyone curious, the current RTA record uses the 100 coin shine instead to execute cutscene underflow because it was generally easier to execute, but new route developments have allowed for us to grab the underbell shine to execute the glitch instead just like the TAS, so the record will likely be lowered to around the 15-18 minute mark soon.
@@NokiDoki Right! I was gonna say it's only garbage if you can't do anything with it and it crashes the game. Otherwise it's _manipulated_ or _curated_ data...
@@jarrod752 no games actually have padding files with junk data in them. alot of smaller wii games have padding files(now what they used for this junk data isa wide range of things from content on other games, to just actual junk data, like the kind you would cycle through a hard drive to clear it) on the inside of the disk, so the game data was on the outside of the disk for faster reading speeds.
Even with all the amazing speedrunning achievements that were accomplished over the years, no speedrunner has ever cemented their legacy as much as Darbian when he came up with the bus analogy. It will live on forever.
4:20 at first when you said the cutscene stuff I thought "oh, he's going to play a cutscene from another level to get a later star much earlier" but then you said "arbitrary code execution" and now im just flabbergasted
Love how every programming concept is almost entirely misunderstood in this video lmao. Still watched to see the story, but I can’t wait to see someone else actually describe the ACE part correctly
@@SusieUndertale Ok so let’s start with understanding what a pointer is. Memory is basically a bunch of bits which can be flipped on or off. If you want to store, for example, Mario’s x position in memory, let’s assume for simplicity that it is a 4-bit integer (in reality it’s more likely a 32-bit double). You would need to find some spot in memory that isn’t being used for anything else, and then you can set those 4 bits to Mario’s position, which we’ll say for now is 7. Now that you’ve done that, you need to remember where you’ve stored this value, and to do that, you’ll use a pointer. Each bit in memory has an address, which looks something like this: 0x73F832. A pointer will store only the value 0x73F832, not the value 7. So if some other part of the program doesn’t realize that address is currently in use, perhaps the number of coins, let’s say 2, could be stored in the same address. And now the code that updates Mario’s position will just say “hey where’s Mario’s position?” and the pointer will say “0x78F832” and the code will say “ok the data stored there is 2, so Mario should be at x = 2.” So how do you keep track of which bits of memory are free and which are in use? Allocation and Deallocation. If a bit of memory is deallocated, it is said to no longer be in use, and some other data can be written onto that bit. This does not change the pointer in any way, so a pointer that points to a deallocated bit of memory is called a dangling pointer and is very dangerous. In the video, they used a treasure map analogy, which I feel is a bad analogy in the first place, but they also somehow got the analogy backwards. Watch that segment again now that you know what a pointer is, and you should be able to see how obvious it is that this guy has no idea what he’s talking about. It’s harder for me to conclusively say that he explained the cutscene logic incorrectly because I don’t actually know how it works, but I get the same feeling, and I think an actual explanation would actually be really cool, which is why I was disappointed. Hope this helps :-)
@lunarscapes6016 I like to describe ace and memory in general like filing cabinets and the things you'd find in them (y'know... like why they're called files) because it's the most accurate visualization of the process of finding info (it's better than fishing lines and maps to be sure)
@@mrhalfsaid1389 I always used the apartment analogy when I tutored the freshmen in college. An apartment is where you live. If someone wants to find you, they write your address down. The piece of paper they're holding is the pointer- a variable that has the value of the address. That address has the value of you. The memory is the Apartment Complex
@secureb00t39 that's also a good analogy, I just think what the original analogy leading to the name of something is easier to think of, especially when you think about it being information storage in both and how filing cabinets are a much more condensed idea in terms of the physical space they take up, meaning it's easier to scale in my mind. Just different ways at the end of the day
I do genuinely feel bad for the people who dont get excited about ACE discoveries. Every time a new strat is found it tickles some weird part of me. It's like I'm watching wizards or something unravel the fabric of reality to bend to their whims, it's legit so cool every time.
Because all the easier glitches have already been discovered (mostly by accident or trial and error). Finding ACE requires reverse engineering to understand how the game works internally and diving deep into its code, the same exact skills that a computer hacker uses to find vulnerabilities in a piece of software.
That’s not what an underflow is in data representation / coding; what’s happening there is just an unintentional “integer desynchronizing” or “phase-shift.”
It is a ring buffer underrun, also known as an underflow or underwrite. You can hear it sometimes when a computer crashes while playing music and you hear it start looping the snippet that was playing at the moment it crashed, like a broken record but usually much shorter.
The repeating audio is normally caused by failing to load the audio buffer with new data. The sound chip keeps reading the contents of that buffer and playing it, and it's up to the software on the CPU to keep filling it with new data.
@@pikachuchujelly4119 yep, and that's exactly what a buffer underrun is - when a buffer is being fed with data slower than it's being read. From the Wiki page: "The buffer in an audio controller is a ring buffer. If an underrun occurs and the audio controller is not stopped, it will either keep repeating the sound contained in the buffer, or output silence depending on the implementation."
The glitch isn't patched but due to the way the Switch version works, you most likely can't get it to actually run arbitrary code. There's still hope to run arbitrary functions that already exist in the game tho, which could lead to a faster completion.
What prevents it from running arbitrary code? Does it have no-execute memory protection? There's always the possibility of ROP (return oriented programming) if that's the case.
@@pikachuchujelly4119 Basically it's running in an emulator but unlike Dolphin, that emulator can't interpret GameCube (PowerPC) code, instead it has a predetermined translation table with Switch (ARM) code for every function in the game. So if you tried to feed it arbitrary PPC code, it would crash trying to find the ARM translation, and if you gave it arbitrary ARM code it would still see it as PPC, try to find a translation, and fail.
I've been hearing about ACE stuff in Sunshine for a little while now but never knew how it worked, I had always thought finding exploits for ACE setups wasn't really a thing from the n64 era and on. This was a super cool one to learn about!
Basically, many of these glitches are found not by literally just randomly pushing buttons, but though reverse compiling the game code, combing the game code, and looking for errors, and/or loopholes. Then, experimentation based on what appears to be possible.
I know you said at the end that no other subcategories will allow ACE, but I still want to see how it affects Max% Pre-Peach, which is one of my favorite "silly" subcategories in all of speedrunning. :P
Well for now we haven't found a setup to do ACE before Peach is kidnapped, but if that becomes possible then you can just give yourself all Shines and blue coins and still be on the first plaza. That's why we're banning ACE from other categories: once you get ACE, you just win, so any category becomes a slight variant of any%
Every damn time XD I remember when ACE was found in Super Mario World (or at least when Sethbling first did it on console in 2015). Feels like a lifetime since then, given how many games it's been found in.
I think there was a TAS about ACE in 2021 or 2022 when 360Chrism reacted to a new any percent TAS. It’s interesting how humans can replicate ACE now after discovering ACE for the longest time.
"These action overwrite these slots with garbage data, which when replayed, is likely to crash the game" Me: oh, it's ACE, they'll make that garbage data valid instructions. and then it was exactly that.
Ah yes, use-after-free - such a lovely entrypoint for all shenanigans! I never paid Sunshine much mind, but really liked the visuals and how cool the gameplay looked. Now that it has ACE, I will undoubtedly be asked about it by my peers because im the local tech and infra guy lol. Oh well, I better go and rip some UAF examples in C (because it's easy to explain it better with C since there is no abstraction happening) x) Thanks for the vid, was super entertaining and actually kinda got me interested in Sunshine!
Words of someone i know: "Any glitch was intentionally implemented. If not, then its an unfinished brokenngame and should be removed from speedruning and world records for future runs." Words from me: The player/fan base of WR and SR has to be one of the best conunity for being both competitive on the art and filled with positive sportsmanship. Good glitches helps find new and wacky ways to help the runs and bad glitches are just unintentional extra obsicles.
I always belived that any game complex enough will be found an Ace exploit, and I was soooo right, now there are many many games with ace exploits and I love it
Ive been watching sunshine speedruns on and off for a few years now, so i thought that i had seen the time get to its lowest. As soon as i saw the title i said "oh no"
I've seen other people say in the comments that there's not really a point (ie. a lack of motivation) to discovering ACE in Mario 64. 0 star is already so fast that ACE would likely end up a slower way of beating the game, makes sense to me
This makes me wonder if the TAS didn’t fool around for the first seven minutes that we could theoretically get a speedrun under a way, WAY shorter time.
The year is 20XX. Arbitrary Code Execution has been discovered in every game. Any percent now consist of speed runners frantically mashing their controllers, and warping to the credits upon game start. Programmers have managed to get DOOM running inside the code of Super Mario World.
The problem is, arbitrary code execution will always be extremely unpopular due to its inhuman (or at least, inhumane lol) difficulty. Very few people ever enjoy such extremely tight speedrun execution in which one spends thousands of attempts just for one successful run. So no ACE runs are going to remain predominant. But it is truly unfathomable how much work went into producing human-viable ACE routes! Wow, now that takes ridiculous skill!
I'm glad they don't skip to the credits. It doesn't really feel like "beating the game" if you don't even fight a boss. The only exception is the demo Zelda game inside of Smash bros, as getting to the credits before the timer is up DOES feel like you've won.. against Nintendo lmao.
I gotta say the fact that they're not gonna do ACE subcategories for other categories than any% is pretty dumb. They're needlessly disincentivizing people from trying new things by giving them no recognition if they manage them.
now cant wait for some tasser to program pong in sunshine with ace like they did with super mario world back in the day and then making a botw inspired demo in oot from just ace~
Yeah, that's because they very quickly figured out that issue and patched future versions of Mario's moveset to not allow BLJ. In fact, the Shindou version of Mario 64 released in Japan a year later actually had BLJ patched! Also Super Mario Sunshine doesn't have a long-jump.
Thanks to HelloFresh for sponsoring today's video. Go to strms.net/hellofresh_lunaticj, use my code LUNATICSEP10, and receive 10 free meals + free breakfast for life! One breakfast item per box while subscription is active if you’re in the US. The link and code are valid in all countries and the respective local discount will apply.
@@LunaticJ 37
are you unaware of the controversies surrounding HelloFresh, or do you not have the option to vet sponsorships?
Oh boy! A video about a massive new game-breaking glitch found in a retro Nintendo game, how cool! Surely it won’t be arbitrary code execution!
still cooler than anything you've ever done
ACE pisses me off too, it’s cool and all, impressive and proof of a community or community member’s technical knowledge, but it’s so uninteresting versus the spectacle of high level gameplay. I don’t really get excited when coders and TASers start shaking hands.
I mean there's plenty of other categories @@jaysonata3211
@@jaysonata3211 This is a reason why every single time ACE has been discovered in a game, it's created a new speedrunning category. The old non-ACE records haven't gone anywhere, and tbh are still more competitive and prestigious.
FWIW though, from what I've seen about SMS ACE it also requires a really high level of execution, with frame-perfect inputs all over the place. It's definitely still "high level gameplay" even if it is a bit weird to actually watch a runner seemingly goofing around in Delfino Plaza for fifteen minutes.
@@jaysonata3211i agree-- i want to see someone Beat The Game, not just Roll The Credits...
The shorter the speedrun the longer the explanation video!
honestly this isnt very long
@@asher3311 That's what she said! ;)
This is actually very true in most cases
True though. I’ve been making it a case to upload glitch and secret vids while keeping them as short as possible. The content isn’t new, but atleast I cut out the filler. Though I’m also glad vids like these exist, to explain every details of the glitch for whoever wants the background info
Not for Clue
I feel like you're slightly misusing the map analogy - The pointer doesn't change, what changes is the data at the location of that pointer is pointing to.
It's more akin to someone digging up the treasure and replacing it with something else, but you're still using the map expecting to find the treasure.
I think it's more like the directions a local gives you to their favorite restaurant, but you drove to a different city before trying to follow them.
yeah, my go to analogy for pointers is that they're like street adresses - when the pointer gets freed, whatever lived there moves out and when you go to that adress again later, you don't know who or what is currently living there
Maybe I'm going crazy - isn't calling it a pointer already a perfectly good analogy? It points at a location in memory, much like I can point a location in real life. Putting a different thing in the location being pointed to means you're pointing at a different thing.
What about using a treasure map of an island but being on the wrong island and finding something else instead?
What? The pointer isn't pointing to the same place in memory that now has new data in it, it's pointing to a different place in memory - saying the map is now pointing to a different X is completely correct.
You're thinking of the pointer as its own object. It is in programming terms, but not in this analogy. It's simply directions, and you get a new set of directions, hence a new pointer.
THE BUS ANALOGY I CAN'T
Peak moment😂 had to like the video after that one
got me rolling lmao
XD
What's that from?
@@McMuffins42 It's an explanation created by a mario 1 speedrunner that was made even more famous by Summoning Salt. The concept that even if you finished a level a few frames sooner, you'd still have to wait for the next level to load the same amount of frames as if you didn't, making that time saved meaningless. The only way to save time is by going faster and making it to an earlier "bus"
I'm surprised Super Mario Sunshine got its own ACE route before Super Mario 64 now that I think about how much wide open that game is in comparison.
Mario 64 was clearly just programmed better :^)
@@moth.monster Somehow I doubt that...
Especially with how many weird ghost object exploits and broken pointers SM64 has. It has like, all the pieces you'd usually search for to create ACE but for some reason it just hasn't been done.
Wide open? It's the most closed off shit because you inject code to skip99% of the game and speed runs devolve to who can do the exact same input the fastest b
Blj 0 stars is an impressive execution of skill and Is fast af, ace would skip to end credits and be the most boring shit to watch.
Kinda reminds me of that one Pokemon Any% run that requires a *_millisecond-perfect_* system reboot to create a Bad Clone, combined with TrainerID manip and going full Hackerman on box names, to get a credits warp (ScottFalco's "Totally Legit Speedruns" animation for it is chef's kiss).
Some of the shit that people have figured out to do with ACE exploits in Pokemon games is absolutely insane. Programming your game to run full on ARM GBA code using the box names, gene editing using Glitzer Popping to get perfect event Pokemon that fool even PKHex's legitimacy and seed checks, creating your own glitched Pokemon that executes box name codes ON COMMAND simply by opening its summary whenever and wherever you like, changing your own Trainer ID on the fly, setting event flags to whatever state you want no matter your progress, literally programming your own Pokemon with its own custom event and location into the game on the fly...it's like watching school playground rumors come to life, all on vanilla hardware (and sometimes with preprogrammed controller inputs but still)
@@QueenofTNT ccrazy stuff
Great vid - I almost have the concept of an understanding of this now 😂
Would be cool to explain how RTA is done when that gets further developed (I'm even more shocked at how people figured that out)
Hey it's the yoin guy
I love your content man. I hope you upload another video soon!
This discovery deserves its own progression video Trey
Until next time PEACE
NEW VIDEO WHEN?
Awesome video, cool to see sms ACE get a good video explaining the general concepts for viewers to understand!
One small correction though, the turbo gate that's used to point to the spin buffer in the modern ACE routes is actually the one next to the beach pipe on the other side of the map, and that shine grabbed in the TAS to trigger ace is generally referred to as underbell.
For anyone curious, the current RTA record uses the 100 coin shine instead to execute cutscene underflow because it was generally easier to execute, but new route developments have allowed for us to grab the underbell shine to execute the glitch instead just like the TAS, so the record will likely be lowered to around the 15-18 minute mark soon.
and this legend gets a 17 min wr like the same day
The moment you said "This overwrites the cutscene slots with garbage data" I knew we were headed to ACEland. There's no such thing as garbage data.
Actually the garbage data really is garbage, what leads to ACE is actual Shine spawn cutscene data, just from a different area
@@NokiDoki Right! I was gonna say it's only garbage if you can't do anything with it and it crashes the game. Otherwise it's _manipulated_ or _curated_ data...
Some video games use useless padding files that you can actually just junk, that are full of garbage data.
@@Raspberrypiuser-fg6ss _useless padding files_ = _All the stuff they cut and didn't finish to meet the deadline._
@@jarrod752 no games actually have padding files with junk data in them.
alot of smaller wii games have padding files(now what they used for this junk data isa wide range of things from content on other games, to just actual junk data, like the kind you would cycle through a hard drive to clear it) on the inside of the disk, so the game data was on the outside of the disk for faster reading speeds.
Totally expected Noki Doki before the video even started
10:50 A grass/water type pokemon that grows up to wear a sombrero and abuse swift swim?!
Mario sunshine content in 2024, fuck yeah!
I can't believe Matt Turk discovered this speedrunning glitch.
Lmao
Somehow, Zallard1 returned, dropped the time by 1/3rd, and vanished again, without a word.
Bro these guys are aliens
Can't wait to see how low we can get the RTA WR with this!
The fun part that's arbitrary code execution is possible means you could literally reprogramm tge entire game like they did for triforce percent
I gotta say, i would have never expected this from a speed game I've been loosely following for about three years. great video!
Give the game a play!
@@phattjohnson I’ve played the game, and I have actually held the 3das 10 shines wr, and it was pretty fun.
Even with all the amazing speedrunning achievements that were accomplished over the years, no speedrunner has ever cemented their legacy as much as Darbian when he came up with the bus analogy. It will live on forever.
Of course. Of COURSE this originated from some shenanigans made by NokiDoki.
4:20 at first when you said the cutscene stuff I thought "oh, he's going to play a cutscene from another level to get a later star much earlier" but then you said "arbitrary code execution" and now im just flabbergasted
Love how every programming concept is almost entirely misunderstood in this video lmao. Still watched to see the story, but I can’t wait to see someone else actually describe the ACE part correctly
explain it yourself then genius
@@SusieUndertale Ok so let’s start with understanding what a pointer is. Memory is basically a bunch of bits which can be flipped on or off. If you want to store, for example, Mario’s x position in memory, let’s assume for simplicity that it is a 4-bit integer (in reality it’s more likely a 32-bit double). You would need to find some spot in memory that isn’t being used for anything else, and then you can set those 4 bits to Mario’s position, which we’ll say for now is 7. Now that you’ve done that, you need to remember where you’ve stored this value, and to do that, you’ll use a pointer. Each bit in memory has an address, which looks something like this: 0x73F832. A pointer will store only the value 0x73F832, not the value 7. So if some other part of the program doesn’t realize that address is currently in use, perhaps the number of coins, let’s say 2, could be stored in the same address. And now the code that updates Mario’s position will just say “hey where’s Mario’s position?” and the pointer will say “0x78F832” and the code will say “ok the data stored there is 2, so Mario should be at x = 2.” So how do you keep track of which bits of memory are free and which are in use? Allocation and Deallocation. If a bit of memory is deallocated, it is said to no longer be in use, and some other data can be written onto that bit. This does not change the pointer in any way, so a pointer that points to a deallocated bit of memory is called a dangling pointer and is very dangerous. In the video, they used a treasure map analogy, which I feel is a bad analogy in the first place, but they also somehow got the analogy backwards. Watch that segment again now that you know what a pointer is, and you should be able to see how obvious it is that this guy has no idea what he’s talking about. It’s harder for me to conclusively say that he explained the cutscene logic incorrectly because I don’t actually know how it works, but I get the same feeling, and I think an actual explanation would actually be really cool, which is why I was disappointed. Hope this helps :-)
@lunarscapes6016 I like to describe ace and memory in general like filing cabinets and the things you'd find in them (y'know... like why they're called files) because it's the most accurate visualization of the process of finding info (it's better than fishing lines and maps to be sure)
@@mrhalfsaid1389 I always used the apartment analogy when I tutored the freshmen in college. An apartment is where you live. If someone wants to find you, they write your address down. The piece of paper they're holding is the pointer- a variable that has the value of the address. That address has the value of you. The memory is the Apartment Complex
@secureb00t39 that's also a good analogy, I just think what the original analogy leading to the name of something is easier to think of, especially when you think about it being information storage in both and how filing cabinets are a much more condensed idea in terms of the physical space they take up, meaning it's easier to scale in my mind. Just different ways at the end of the day
as soon as you said "Imagine a bus.." i immediately laughed.
please tell me this is about ACE because i havent been able to find ANYTHING on it aside from some run vods where things werent really explained well.
You not gonna believe this
It might seem crazy what I'm bout to say
:clueless:
How about watching the goddamn video?
Ace stands for Arbitrary Code Execution. If you search for THAT you'll probably get a lot more useful results.
took a shot every time you said "cutscene" . I'm hospitalized now.
crazy how they've broken this game so badly
I do genuinely feel bad for the people who dont get excited about ACE discoveries. Every time a new strat is found it tickles some weird part of me. It's like I'm watching wizards or something unravel the fabric of reality to bend to their whims, it's legit so cool every time.
The AverageTrey video about all this is gonna be so good🔥🔥🔥
Yesss I was thinking the same thing
why do i feel like that every old game when it gets a new glitch discovered it always seems to be ACE
Because all the easier glitches have already been discovered (mostly by accident or trial and error). Finding ACE requires reverse engineering to understand how the game works internally and diving deep into its code, the same exact skills that a computer hacker uses to find vulnerabilities in a piece of software.
'Mario Sunshine is a game' - truer words have never been spoken
That’s not what an underflow is in data representation / coding; what’s happening there is just an unintentional “integer desynchronizing” or “phase-shift.”
it's an underflow of a queue data structure
It is a ring buffer underrun, also known as an underflow or underwrite. You can hear it sometimes when a computer crashes while playing music and you hear it start looping the snippet that was playing at the moment it crashed, like a broken record but usually much shorter.
I like your funny words, magic man.
The repeating audio is normally caused by failing to load the audio buffer with new data. The sound chip keeps reading the contents of that buffer and playing it, and it's up to the software on the CPU to keep filling it with new data.
@@pikachuchujelly4119 yep, and that's exactly what a buffer underrun is - when a buffer is being fed with data slower than it's being read. From the Wiki page: "The buffer in an audio controller is a ring buffer. If an underrun occurs and the audio controller is not stopped, it will either keep repeating the sound contained in the buffer, or output silence depending on the implementation."
When you said "it executes data that's probably overwritten by garbage" I instantly knew where this was going lmao
Niki Doki riding the edge of reality for us.
Sick video! Love seeing classic games find such massive discoveries even this long after release.
I was jokingly thinking "imagine a bus" when you said a classic analogy and the bus appeared and I died
my FAVORITE mario game getting recognized is always awesome! love the content :3
:3
3:06 has said "Cutscene" 22 times
Fun Fuct: ACE is possible in the Switch Version
The glitch isn't patched but due to the way the Switch version works, you most likely can't get it to actually run arbitrary code. There's still hope to run arbitrary functions that already exist in the game tho, which could lead to a faster completion.
What prevents it from running arbitrary code? Does it have no-execute memory protection? There's always the possibility of ROP (return oriented programming) if that's the case.
@@pikachuchujelly4119 Basically it's running in an emulator but unlike Dolphin, that emulator can't interpret GameCube (PowerPC) code, instead it has a predetermined translation table with Switch (ARM) code for every function in the game. So if you tried to feed it arbitrary PPC code, it would crash trying to find the ARM translation, and if you gave it arbitrary ARM code it would still see it as PPC, try to find a translation, and fail.
take a shot everytime he says "cutscene"
Having to watch the whole opening cut scene for every attempt will really take a toll on speedrunners and competition
I’ve been following sunshine’s speed running community for years how am I just hearing about this?
because Trey hasn't made a video about it lol.
@@disfiguringthegoddess1102 you mean hasn’t made a video on it I didn’t see nothing from trey
@@gamingwithahandicapreviews right. my b on that. typeo.
@@disfiguringthegoddess1102 s”all good man
@@disfiguringthegoddess1102baseddddd. Me looking out for the trey record history video update
I've been hearing about ACE stuff in Sunshine for a little while now but never knew how it worked, I had always thought finding exploits for ACE setups wasn't really a thing from the n64 era and on. This was a super cool one to learn about!
Basically, many of these glitches are found not by literally just randomly pushing buttons, but though reverse compiling the game code, combing the game code, and looking for errors, and/or loopholes. Then, experimentation based on what appears to be possible.
Congrats to 100K
Love how 2/3 of the run is the intro cutscenes.
ユーチューブ登録者数十万人達成おめでとうございます!
I do concur that without Noki Doki's help, this video might not have been possible
I know you said at the end that no other subcategories will allow ACE, but I still want to see how it affects Max% Pre-Peach, which is one of my favorite "silly" subcategories in all of speedrunning. :P
Well for now we haven't found a setup to do ACE before Peach is kidnapped, but if that becomes possible then you can just give yourself all Shines and blue coins and still be on the first plaza. That's why we're banning ACE from other categories: once you get ACE, you just win, so any category becomes a slight variant of any%
ACE is one of the coolest things to me. If I ever make a game myself, I wanna be sure that ACE is possible one way or another 🤣
The Mario Party 3 music near the end put me in MAJOR nostalgia! ❤❤
awwwww
your description of TASing was like very good and then you dropped "theoretically perfect speedrun" lol
(still a great video!)
Every damn time XD
I remember when ACE was found in Super Mario World (or at least when Sethbling first did it on console in 2015).
Feels like a lifetime since then, given how many games it's been found in.
Time for bed. I heard you say ACE and thought All You Can Eat.
All You Can Execute 😎
I really want to see ACE used for fancier and more creative stuff. Triforce% was incredible, and I hope it becomes a genre.
I think there was a TAS about ACE in 2021 or 2022 when 360Chrism reacted to a new any percent TAS. It’s interesting how humans can replicate ACE now after discovering ACE for the longest time.
"These action overwrite these slots with garbage data, which when replayed, is likely to crash the game"
Me: oh, it's ACE, they'll make that garbage data valid instructions.
and then it was exactly that.
"this is going to get pretty technical"
me, having been subscribed to pannenkoek for years: *bring it on*
Ah yes, use-after-free - such a lovely entrypoint for all shenanigans! I never paid Sunshine much mind, but really liked the visuals and how cool the gameplay looked. Now that it has ACE, I will undoubtedly be asked about it by my peers because im the local tech and infra guy lol. Oh well, I better go and rip some UAF examples in C (because it's easy to explain it better with C since there is no abstraction happening) x)
Thanks for the vid, was super entertaining and actually kinda got me interested in Sunshine!
Never did i expect to ever see mario sunshine any% get anywhere below an hour, but 23mins? 10mins? That's really something else, very very cool!
This is insane I love stuff like this
6:39 JimmyHere viewers, you know what to do 😏
No I don’t.
@@Legend_0O1231 One piece
@@mrrfyW THE ONE PIECE IS REAL!
@@Legend_0O1231 there you go :)
Lmao i thought of the exact same thing at that part
Words of someone i know:
"Any glitch was intentionally implemented. If not, then its an unfinished brokenngame and should be removed from speedruning and world records for future runs."
Words from me:
The player/fan base of WR and SR has to be one of the best conunity for being both competitive on the art and filled with positive sportsmanship. Good glitches helps find new and wacky ways to help the runs and bad glitches are just unintentional extra obsicles.
"10 minutes?? This should be good!"
>It's a TAS
"Okay nevermind."
ACE is cool as hell, ive never heard of it until quite recently and its really cool how its being utilized in runs in so many different games
I can’t believe this game is already 22 years old, it still feels modern,fresh and certainly not outdated😁
I always belived that any game complex enough will be found an Ace exploit, and I was soooo right, now there are many many games with ace exploits and I love it
i love that the LOTAD acronym exists
Ive been watching sunshine speedruns on and off for a few years now, so i thought that i had seen the time get to its lowest. As soon as i saw the title i said "oh no"
Crazy that Sunshine has ACE now, but Mario 64 has absolutely no sign of it despite people literally being able to look at the source code.
I've seen other people say in the comments that there's not really a point (ie. a lack of motivation) to discovering ACE in Mario 64. 0 star is already so fast that ACE would likely end up a slower way of beating the game, makes sense to me
With ace, does this mean that theoretically, you could get 120 shines hoverless now if so that would be a cool tas or lotad to watch
ACE in a gamecube game, thats crazy
aaaaaand it's SRM into ACE. classic nintendo
This makes me wonder if the TAS didn’t fool around for the first seven minutes that we could theoretically get a speedrun under a way, WAY shorter time.
Today I learned that Lotad is also a speedrunning term.
The year is 20XX. Arbitrary Code Execution has been discovered in every game. Any percent now consist of speed runners frantically mashing their controllers, and warping to the credits upon game start. Programmers have managed to get DOOM running inside the code of Super Mario World.
The problem is, arbitrary code execution will always be extremely unpopular due to its inhuman (or at least, inhumane lol) difficulty. Very few people ever enjoy such extremely tight speedrun execution in which one spends thousands of attempts just for one successful run. So no ACE runs are going to remain predominant.
But it is truly unfathomable how much work went into producing human-viable ACE routes! Wow, now that takes ridiculous skill!
5:55 to skip sponsorship ad. im really beginning to hate it when RUclipsrs put these in the middle of the video
Grow up
@@Eira_99God forbid someone doesn't want to sit through ads
@@haunted_pixel skipping ads is fine, I skipped thru it. Complaining about it in the comments is immature behaviour.
@@Eira_99 Yeah alright fair enough
Sponsorblock my beloved ❤
Speedrunning documentary with ACE and bus analogy? What a callback episode
RUclips randomly gave me another free month of premium, it shows, where the sponsored segment ends lol.
"Imagine a bus-" golden. absolutely golden.
I love when the video is longer than the speedrun
The bus analogy has me *ROLLING ON THE FLOOR*
Thanks for this video! Glad to see an English explanation of this amazing glitch discovered for SMS.
Anyone know where the song at 0:28 is from?
Pretty sure it’s something from super paper mario
I'm almost sure it's Darude - Sandstorm
A Powerful Enemy Emerges - Super Paper Mario
It’s from Super Paper Mario when you’re fighting Bowser’s minions in W3
Oh boy! A video about a new game-breaking glitch found in Mario Sunshine, how cool!
I can't get away from the damn bus! Even in a video not about SMB1!!! AAARRRRGGGGHHHHHH
Bismuth's french version of the smb1 perfect speedrun video doesn't make the bus analogy.
I'm glad they don't skip to the credits. It doesn't really feel like "beating the game" if you don't even fight a boss. The only exception is the demo Zelda game inside of Smash bros, as getting to the credits before the timer is up DOES feel like you've won.. against Nintendo lmao.
This is a fantastic achievement.
This is insanely impressive, a game 20 years on still getting broken beyond repair.
I gotta say the fact that they're not gonna do ACE subcategories for other categories than any% is pretty dumb. They're needlessly disincentivizing people from trying new things by giving them no recognition if they manage them.
8:06 Dangling pointers, yay!
now cant wait for some tasser to program pong in sunshine with ace like they did with super mario world back in the day and then making a botw inspired demo in oot from just ace~
as soon as u mentioned how it was crashing i immediately jumped to ace
Thank you for reporting this bug. Someone should patch out this mistake from future releases.
I thought it was never going to fall under an hour...
Can't wait to see AverageTrey's updated speedrun history videos
Summoning salt video on the making for sure! Love the explanation!
Yes! a RUclipsr says that this is Use After Free! rather than just the term used by runners
1 minute in and Noki Doki already mentioned, gonna be a good video.
Every Mario game about to 5 min to beat with TAS. The meme lives on!
What's the "Failure: Can't apply to a single clip" at 12:03 about?
A small render error from my end when applying an editing effect it seems :P
Mario sunshine blj is probably a thing we haven't seen yet
Yeah, that's because they very quickly figured out that issue and patched future versions of Mario's moveset to not allow BLJ. In fact, the Shindou version of Mario 64 released in Japan a year later actually had BLJ patched!
Also Super Mario Sunshine doesn't have a long-jump.
@@1mariomaniacI think autocorrect changed your last 'BLJ'. Unless Mario was actually able to do Brazilian Jiu-Jitsu until they patched it in Japan.
@@geneericname7138 LMAO edited, but now I wanna see N64 Mario doing Brazilian Jiu-Jitsu 😆
12:45 honami mochizuki jumpscare in my mario speedrunning video⁉️