I'm fairly sure this is equally good as a visual example of why Arbitrary Code Execution is such a dangerous thing to find in software. It shows off how such a simple and small point of access can completely take over a system and make it do anything. If I was teaching software engineering I would definitely use this to show off the risk.
Pretty much. It was actually discovered _during_ the N64 era that the first version of the system keeps a bunch of RAM around for about 10 Seconds, and could be used to transfer information between titles. The initial intent was gladly non-malicious, but it ended up being an unused feature in both Banjo Kazooie titles and DK64. Somewhat recently, OoT ACE has been used to write code into the RAM of the N64 to be executed in Paper Mario as a Credits Warp. It’s also not the last time people have taken advantage of coding oversights in games to bust into a system, although it usually isn’t malicious in intent. During the 3DS era it was found a game called Cubic Ninja had a different vulnerability that allowed for Homebrew.
@@FrostGlader using ACE in ocarina of time DOESN'T crash paper mario also stop n swap! and i remember the cubic ninja thing, i watched tech rules' video on it
@@FrostGlader I remember using the Cubic Ninja hack to mod my 2DS a while back! I was super lucky that my library had a copy of the game at the time lol
Every TASBot block at GDQ leaves me thinking "this is it, they've peaked, there's no way they can ever top this" - and then every single time after that, they do. It's just absolutely mind-blowing what they're able to achieve.
I often think we need to sacrifice something like a robotic goat every time I see a TAS block... We must not let the bot hate us... Because he (and his programmers) will wipe the floor with us in gaming
Dwango and team said they probably won't have anything this spectacular again for a while, it took several years and thousands, if not hundreds of thousands, of man-hours to create this showcase. Of course I'd love to be proven wrong but I think they may keep it simple for a little bit (I don't think AGDQ2023 even had a TASBlock).
I love that ACE is always described as the most powerful exploit in the context of, 'you could completely reprogram the game if you wanted to'. And here we finally have an example on a 3D game, not just SMB3.
Technically it's used in Super Smash Bros Melee to run homebrew on a GameCube, but that's achieved using a modified save file instead of controller input, and isn't as impressive to watch. It's just, you start Melee, go to a menu, and now some other program is running.
@@Logan-tz1ry RGME is run by IseFrieze, who's going to be running "Super Mario All-Stars + Super Mario World (All Five Games w/ACE)" with SethBling in... two hours from the point that I write this, I think.
As someone who was on the early internet during the time of OoTs release and all the insanity of the very early bug discoveries and relentless triforce hoaxes, it absolutely blows my mind that this has finally come to pass.
- ACE - TASBot 1.0 - Beta Content - New Story - Obtaining the Triforce - Twitch Integration - RGME video tying it all together Probably one of the best GDQ runs out there. So glad I stuck around after the P2 TAS.
The most impressive thing here is that you had this locked and loaded and ready to go basically immediately after the run. The number of people and work that went into all of this is just incredible.
i am actually kinda impressed with how i expected that the TASbot was hooking the other controllers into the system for reading data before handing the first controller back to the player. What i was not expecting was so many bootloaders and exactly how often the controllers were being read. its actually incredibly impressive to get just over 5 kilobytes per second of data into the system with 3 controller inputs alone. What the TASbot team did is really a work of art
And yet, I'm sure we will find anti-speed runners spouting, "That's not how the game was meant to be played!!!!" haha. They suck the fun out of everything. The big wrinkled brains behind this type of work is insane.
@@thebootknifer ive seen so many people being like "well this modded stuff how is this special" ... .no.. no... shut up... you have a pea brain... shush ... they have no appreciation for the art behind this...
They way you show visuals for what's loaded in memory where in real time to the video is so incredibly helpful to understanding this, and it can't have been easy to do. Keep up the amazing work making such informative, high-effort, wonderfully well-explained videos!
I absolutely love how your visuals make crazy complicated concepts like these understandable! Thanks for everything, and man I gotta catch this live run.
The funny thing is, that developers could release mods as a series of controller inputs to perform when doing ACE (assuming they have some equivalent of TASBot to perform them) and there's legally nothing Nintendo could do about it.
@@BitcrushedMozart "ok, so to download the mod, what you need to do is jump past the first pipe, go into the warp zone, jump 27 times frame perfectly, play ddr inside of the game, press every button 192 times at the speed of light, and press start. the mod will load up, and you can play it"
I do this stuff for a living and it never fails to amaze me just how in depth your videos are while still simplifying it for the layman. Incredible work, as always.
I just watched the showcase and as it went on, I became more and more emotional. At the end, I was crying almost like a baby. That was truly astounding work
Even as someone who's never played a Zelda game and thus doesn't know what a normal OoT run looks like, that run was one of the coolest things I've ever seen. I'm so glad we made that donation goal.
I can't help but feel that if Shigeru Miyamoto and his team have seen these glitches and tricks pulled off in the game, they would be very impressed with what the speedrunning community was able to pull off with this.
It's a different game and set of programmers but the teams behind Pokémon have expressed how impressed they are with what people have managed to do with those games. Especially he glitch to acquire Mew in the original games.
Well, we know that the OoT3D devs have seen an OoT speedrun, because they patched out glitches used in speedruns. In fact, we know which one they saw because everything they patched was used in it.
Zelda: OoT Beta showcase was super impressive but what's even more impressive is this video done just minutes after that. If that isn't speed running I dont know what is.
@@gorkskoal9315 it was cool that they injected code in realtime as the game was being played, and not just a simple rom hack. The twitch chat stuff in realtime blew my mind and took a few seconds to realize what was happening.
It's interesting that Nintendo's engineers chose to copy executable code to the heap and execute it there, that's a very unusual way to do things on modern systems. Typically, you would just store a function pointer with each loaded entity and have the code in read-only memory. I wonder what is the reason behind this choice.
As kaze explained it. The n64 is bottlenecked between transfers of CPU having control, and the RDP (reality display processor) Essentially (from my memory check his video) the cpu and rdp switch between having ram access to memory per cycle? With CPU eventually giving commands to the rdp, and then having to wait for the rdp to finish. So if you read only memory (I'm assuming your referencing the ROM) You would be loosing valuable CPU time needed to upload the next RDP instruction. As while carts are fast, it's not exactly fast enough for that. And as a result hurt the framerate more (granted OOT only runs at 20fps but still)
The N64 can't really run code directly from ROM. It's too modern for that. What OoT does is a primitive form of dynamic linking, where code is not only loaded but there's a sort of address space translation done on the fly. However, there's no security separation between code and data like there is in modern systems.
Holy crap. I have seen so many explanations on SRM and this is the only one that actually made sense to me. Most videos just said "they load and then unload an object and then perform actions that inject code" without actually explaining how any of that works. So the second you mentioned that the controller has bytes that execute basic code; it began to make perfect sense. And I'm basically a technical moron so this was a brilliant way of explaining the concept to idiots like me. Thank you.
I always love the depth you go into, as well as the fact you have captions on all your videos. Your graphics are always great, too. While I don't think there's been a single video I've fully understood after one viewing, your explanations make it possible for me to understand in the first place. Top tier channel.
None of the words in this video are in the instruction manual. That said I was absolutely floored by this run. I was in tears at the end of it that was absolutely incredible
I watched this before the GDQ Run, then just finished the GDQ Run, and am watching this again. All of this is simply incredible. It is unbelievable this is possible, and how much work everyone put it to make this happen. What a freakin masterpiece
I hadn't watched it prior, but after just finishing it, my thoughts can basically be summed up by this line from Xenoblade 2: "We will make your dreams a reality." _This_ is what I define as "magic;" not the unexplained or unexplainable, but the ability to manifest one's imagination into reality. That's the main reason why I started studying computing. "Truly awesome."
used you to fall asleep when i woke up on the middle of the night. good job explaining exactally what happened. bad thing for me when the more on the ball a tas explination is, the better sleap aid lol
You explained all of this so much better than some of the other people who covered this Triforce% tas. I always love your technical and well-illustrated videos and this one did not disappoint!
@Ben Smith Oh absolutely agreed. The injection bootstrapping is so fascinating. (Also I think you may be thinking of SwankyBox's video on it... I didn't even finish his full video because it seemed too enraptured on interpreting the faked plot and not enough de-masking of the real workings)
I was on the internet in the early 2000's and i remember following the Overture of Sages rumors and seeing the old photoshopped pics and everything. seeing this come together now all of these years later leaves me speechless tbh. 10yo me would have went insane seeing this. great job by the team
Thank you for this very in-depth explanation! When I saw the Trirforce% Run I roughly understood what was going on under the hood of the game, but this video really helped to grasp way more information about the actual processes. Also, even for people who have a very good understanding of computer science, this video points out the immense amount of work and knowledge that must have been put into the making of the Triforce% Run. This is something that completely blows my mind and it's very difficult to even wrap your head around it.
Good lord this must've taken forever to put together! This is easily the most thorough and approachable explanation of these concepts for the layman I've ever seen. The only unexplained thing is what a branch delay slot is, but thankfully it's not really important for a conceptual understanding, and I already knew anyway. ;) Bloody well done!
people seem to be annoyed about how "it wasn't all REAL content!" or "it couldn't ACTUALLY have been done so what's the point"! when the point is that the aim of the creation was to make a surreal and incredible experience for the audience members both in-person and in chat at GDQ, and to show the creators' love and respect for the zelda community, the GDQ community, and the speedrunning community. it gave me goosebumps all the way through and i'm elated that they partnered with RGME to make this video!
Glad you got it! And also, the fact that it actually can be done in a certain sense, because we did it through controller input without modifying the cart. ACE blurs the line between what's in the game and what's not. The Triforce scene has not actually been in OoT all along, but the ability to create the Triforce scene HAS actually been in OoT all along.
@@Sauraen exactly! the artistry and perfection you all displayed, without even doing any modification just shows what's truly possible when you know how to use (or exploit) an engine to its fullest. i thank you and all the triforce% team for all your hard work to bring us a truly stunning and beautiful experience.
the consolation prize the f boots actually can be done by a human. and that IS coding or modualting an item. though sad there never really was a way to get the triforce you had to make it user content basically
@@zmyr88 With some changes to how we went from the initial ACE to Total Control, the rest of Triforce% could theoretically be done by a human. It would just take days for them to type in all the data for all the custom content.
Well I'm not an expert, but the Arwing, butterfly in a bottle model, the Kokiri Head (Not the body I believe), the giant Rupee that is the Running Man's "reward," the ability to equip Medallions as items (Not the Sage's Charm, nor its doubling of the magic meter, just the ability to equip Medallions), and the Unicorn Fountain + Beta Great Fairy is all the legit beta content that was shown that I can count off the top of my head. As for the masks that got buffed with the Magic Powder, I don't believe it was ever planned to have the Bunny Hood work like it does in MM for OoT (During development). Edit: Forgot some beta elements.
@@BBSplat Correct. It's a pretty common thing. Why make a new model to test something when you can just drop in something from a game you already made?
This episode fascinated me, start to end. I was so confused after watching the run, but now I actually have a good understanding of what went on. Thanks for making such an easy-to-follow explanation!
In bootstrap 1, is R on the controller 1 always held down or something? And Z not held down either? Otherwise the rotations of Link could change, right? If so, wow, that's even less freedom there, but I suppose you only need a load and store instruction at this stage that happen to fit the right patterns of the R and Z bits for controller 1. If it's not this, then how is Link prevented from rotating? It's really amazing what people can do with these games and how well they can explain it so well to someone not familiar. :)
Yes, R and Z are held the entire time during that section for that exact reason! Thankfully the addi and sh instructions using the $gp register require those two bits to be set.
The fact that I was able to understand most of what was happening means your video is really full of understandable but complex information. Great video!
As someone who never played OoT as a kid, and thus did not have the nostalgia to appreciate what was done, BUT is a computer programmer who appreciates the ACE that was displayed, I deeply appreciate this video. The actual TAS was very cool, but did not resonate the same way with me. But this? The behind scenes? This resonates with me, and huge props to the team behind it. I remember my Assembly classes, so once I saw MIPS instructions, the lights came on. Thank you again for this video!
This is just incredible! Think of all the possibilities we could do! Regardless, while I wasn’t there for the initial run, I did end up watching the VOD, and it was amazing. Shoutouts to all those involved in that project, you made several of Zelda fans dreams come true!
this is a good explanation and rundown of the speed run. Other channels that I have watched don't do a good job of explaining the speed-up or try to pass the entire run off as if everything shown was already in the game.
Amazing in-depth video. Setups, values, addresses, payloads... Simply amazing work. I'll have to watch that last part again, kinda lost me where the payload's rate gets cranked up but wow, what a team of brilliant people ! Props to everybody !
Thank you for this explanation! After watching Triforce% I could not wrap my head around how pressing a billion buttons could actually transfer data into the game, and now I do.
Honestly, your videos are amazing. Even though it's not what I usually watch, the explanations are easy to understand, and very precise, I absolutely love them. Kudos to you !
After 20 years, we took revenge on the Running Man, travelled through time as was once intended, walked in the Temple of Light and, to finally quell the struggles of everyone's inner child, raised the Triforce above our heads to make a wish for the sake of Hyrule.
Great video! One thing, though: I believe when you went from discussing bootstrapper #2 in abstract terms to showing the code, you accidentally renamed it as bootstrapper #3...so, just 3 bootstrappers overall!
Assuming the Hyperspeed Loader was used for 40 minutes (about the amount of time from when Savestate started moving again to when Twitch chat showed up in-game), then there was potentially over 12mb of data put in - a bit less than half of the size of the game itself.
ugh still confusing to me but more makes sense. but i do know the intellect that was behind this. now i know was even more. you figured out 10000 lines of mips code. you figured out how to get the stale values you needed and how to move them. write the bootstraps. and then excute it live. true talent was here. if i could truly understand it and maybe do it or part of it i would be able to code great things i imagine because it meant i would have a very deep understanding of code structures. both you and the triforce% teams are phenomenal. keep up the good work.
ACE runs aren't always TAS. Sethbling once performed a fully manual ACE on Super Mario World, that turned the game into a Flappy Bird clone. So with the right setup, a human can input code through the controllers without the TAS-only timing requirements. Thing is, the bandwidth is tiny with a real human handling the transfer of data, and the likelihood of error is much higher (in other words, we're slow and messy at typing the code in with the controllers), so the payloads can't be that big, or you'll be there for days.
We are considering possibly doing that sometime in the future. MrCheeze has already created a way to use ACE to be able to type in limited code with the file select screen. We could use that and code in a hex editor, and then spend hours manually writing a payload into RAM. Just the Triforce scene (no plot) is probably doable in a few hours. It would be extremely boring after the beginning though.
This was an absolutely incredible showcase and an excellent in-depth explanation. Extremely impressive work from everyone involved!
Hey Bismuth! We are all waiting for your next video!
One of the legends himself!
You're one to talk! Your videos usually explain things better than anyone else I've seen on the subject
release more of your piano music pls
MisButh, orangutan, orange, erratic, mystery, unlocked
I'm fairly sure this is equally good as a visual example of why Arbitrary Code Execution is such a dangerous thing to find in software.
It shows off how such a simple and small point of access can completely take over a system and make it do anything. If I was teaching software engineering I would definitely use this to show off the risk.
This is really complicated. I'd just recommend anything where folks have ruj doom on it.
Pretty much. It was actually discovered _during_ the N64 era that the first version of the system keeps a bunch of RAM around for about 10 Seconds, and could be used to transfer information between titles. The initial intent was gladly non-malicious, but it ended up being an unused feature in both Banjo Kazooie titles and DK64.
Somewhat recently, OoT ACE has been used to write code into the RAM of the N64 to be executed in Paper Mario as a Credits Warp.
It’s also not the last time people have taken advantage of coding oversights in games to bust into a system, although it usually isn’t malicious in intent. During the 3DS era it was found a game called Cubic Ninja had a different vulnerability that allowed for Homebrew.
Rust ftw
@@FrostGlader using ACE in ocarina of time DOESN'T crash paper mario
also stop n swap! and i remember the cubic ninja thing, i watched tech rules' video on it
@@FrostGlader I remember using the Cubic Ninja hack to mod my 2DS a while back! I was super lucky that my library had a copy of the game at the time lol
Every TASBot block at GDQ leaves me thinking "this is it, they've peaked, there's no way they can ever top this" - and then every single time after that, they do. It's just absolutely mind-blowing what they're able to achieve.
That only raises the question, what can possibly be next?
@@huevonesunltd ace in doom but Zelda. Literally this opens up any possibility. This is like a meta verse type of possibilities
I often think we need to sacrifice something like a robotic goat every time I see a TAS block... We must not let the bot hate us... Because he (and his programmers) will wipe the floor with us in gaming
Dwango and team said they probably won't have anything this spectacular again for a while, it took several years and thousands, if not hundreds of thousands, of man-hours to create this showcase. Of course I'd love to be proven wrong but I think they may keep it simple for a little bit (I don't think AGDQ2023 even had a TASBlock).
I love that ACE is always described as the most powerful exploit in the context of, 'you could completely reprogram the game if you wanted to'. And here we finally have an example on a 3D game, not just SMB3.
I remember seeing ACE used to program Breakout and Snake into Super Mario World and thinking it was magic. We've come a long way.
I wonder when we’ll be able to do ACE on Xbox games, that’ll truly be wild
what about in Pokemon?
@@WinVisten that’s already been done. Look at the Tetris in Pokémon crystal video, and the coin case glitch
Technically it's used in Super Smash Bros Melee to run homebrew on a GameCube, but that's achieved using a modified save file instead of controller input, and isn't as impressive to watch. It's just, you start Melee, go to a menu, and now some other program is running.
Casually dropping a new high effort video hours before your own SGDQ run is such a badass move. Good luck tomorrow!
Thank you!
wait hours before wHA
@@RGMechEx Which game do you run?
@@Logan-tz1ry RGME is run by IseFrieze, who's going to be running "Super Mario All-Stars + Super Mario World (All Five Games w/ACE)" with SethBling in... two hours from the point that I write this, I think.
Thanks doc
As someone who was on the early internet during the time of OoTs release and all the insanity of the very early bug discoveries and relentless triforce hoaxes, it absolutely blows my mind that this has finally come to pass.
Zelda community basically said "fine, i'll do it myself"
Same. I still remember the Video Gamer X rumor site. I'd check that place daily for new glitches.
- ACE
- TASBot 1.0
- Beta Content
- New Story
- Obtaining the Triforce
- Twitch Integration
- RGME video tying it all together
Probably one of the best GDQ runs out there. So glad I stuck around after the P2 TAS.
The most impressive thing here is that you had this locked and loaded and ready to go basically immediately after the run. The number of people and work that went into all of this is just incredible.
i am actually kinda impressed with how i expected that the TASbot was hooking the other controllers into the system for reading data before handing the first controller back to the player. What i was not expecting was so many bootloaders and exactly how often the controllers were being read. its actually incredibly impressive to get just over 5 kilobytes per second of data into the system with 3 controller inputs alone. What the TASbot team did is really a work of art
Impressive and perfect analysis. No useless stuff, 0% history chatter. And pc jumping to controller data is a brilliant idea.
My favorite part was being able to see Zora's Domain back to it's unfrozen state. Emotions were high!
this taking more than 2 decades shows how dedicated fans and gamers alike are passionate about zelda! great super detailed video awesome job!
Two decades to find the exploit, and two and a half years to make the whole project using the exploit.
I'm a fan 😀
@@AlexB-W33gee happy you are a fan ❤️
And yet, I'm sure we will find anti-speed runners spouting, "That's not how the game was meant to be played!!!!" haha. They suck the fun out of everything. The big wrinkled brains behind this type of work is insane.
@@thebootknifer ive seen so many people being like "well this modded stuff how is this special" ... .no.. no... shut up... you have a pea brain... shush ... they have no appreciation for the art behind this...
They way you show visuals for what's loaded in memory where in real time to the video is so incredibly helpful to understanding this, and it can't have been easy to do. Keep up the amazing work making such informative, high-effort, wonderfully well-explained videos!
I absolutely love how your visuals make crazy complicated concepts like these understandable! Thanks for everything, and man I gotta catch this live run.
I'm really glad there is a video explaining all this in depth. Thank you, I was so curious!
Nintendo: “I will sue you if you exctract the rom and modify it”
TasBot: *Starts pressing buttons*
tasbot played a video game and "accidentally" got the triforce
The funny thing is, that developers could release mods as a series of controller inputs to perform when doing ACE (assuming they have some equivalent of TASBot to perform them) and there's legally nothing Nintendo could do about it.
@@BitcrushedMozart "ok, so to download the mod, what you need to do is jump past the first pipe, go into the warp zone, jump 27 times frame perfectly, play ddr inside of the game, press every button 192 times at the speed of light, and press start. the mod will load up, and you can play it"
I do this stuff for a living and it never fails to amaze me just how in depth your videos are while still simplifying it for the layman. Incredible work, as always.
11:05 dead beef in red and green. Amazing video once again!
I just watched the showcase and as it went on, I became more and more emotional. At the end, I was crying almost like a baby. That was truly astounding work
Truly shows how much games touch our hearts. Gaming brings people together and stuff like this is just truly amazing as well as beautiful
Even as someone who's never played a Zelda game and thus doesn't know what a normal OoT run looks like, that run was one of the coolest things I've ever seen. I'm so glad we made that donation goal.
I can't help but feel that if Shigeru Miyamoto and his team have seen these glitches and tricks pulled off in the game, they would be very impressed with what the speedrunning community was able to pull off with this.
QA dream teams
It's a different game and set of programmers but the teams behind Pokémon have expressed how impressed they are with what people have managed to do with those games. Especially he glitch to acquire Mew in the original games.
I think they'd rather be afraid of ever making a new game be this exploitable
Well, we know that the OoT3D devs have seen an OoT speedrun, because they patched out glitches used in speedruns. In fact, we know which one they saw because everything they patched was used in it.
They would be impressively PISSED.
Zelda: OoT Beta showcase was super impressive but what's even more impressive is this video done just minutes after that. If that isn't speed running I dont know what is.
He used ACE to go back in time and write and produce a 35 minute video within five minutes of the run ending in our timeline.
@@Narokkurai [ANGRY RUNNING MAN NOISES]
(and how much they lied? sorry DirpAC. but coppin that the cart RoM is clean and oh wait. no. sigh. Not. the. Spirit. of beta stuff!!!!
@@gorkskoal9315 it was cool that they injected code in realtime as the game was being played, and not just a simple rom hack. The twitch chat stuff in realtime blew my mind and took a few seconds to realize what was happening.
You are also an absolute wizard for getting live graphics like the on at 12:10 to function
It's interesting that Nintendo's engineers chose to copy executable code to the heap and execute it there, that's a very unusual way to do things on modern systems. Typically, you would just store a function pointer with each loaded entity and have the code in read-only memory. I wonder what is the reason behind this choice.
As kaze explained it. The n64 is bottlenecked between transfers of CPU having control, and the RDP (reality display processor)
Essentially (from my memory check his video) the cpu and rdp switch between having ram access to memory per cycle? With CPU eventually giving commands to the rdp, and then having to wait for the rdp to finish. So if you read only memory (I'm assuming your referencing the ROM)
You would be loosing valuable CPU time needed to upload the next RDP instruction. As while carts are fast, it's not exactly fast enough for that.
And as a result hurt the framerate more (granted OOT only runs at 20fps but still)
That's my guess using another persons explanation and applying it hefe. I can easily be wrong
The N64 can't really run code directly from ROM. It's too modern for that. What OoT does is a primitive form of dynamic linking, where code is not only loaded but there's a sort of address space translation done on the fly. However, there's no security separation between code and data like there is in modern systems.
@@Sauraen From a major member of the Triforce% showcase. You heard 'im! Hahaha.
This is all so excellent. Bravo.
Executing directly from ROM is too slow.
Holy crap.
I have seen so many explanations on SRM and this is the only one that actually made sense to me.
Most videos just said "they load and then unload an object and then perform actions that inject code" without actually explaining how any of that works.
So the second you mentioned that the controller has bytes that execute basic code; it began to make perfect sense. And I'm basically a technical moron so this was a brilliant way of explaining the concept to idiots like me.
Thank you.
I always love the depth you go into, as well as the fact you have captions on all your videos. Your graphics are always great, too. While I don't think there's been a single video I've fully understood after one viewing, your explanations make it possible for me to understand in the first place. Top tier channel.
None of the words in this video are in the instruction manual.
That said I was absolutely floored by this run. I was in tears at the end of it that was absolutely incredible
This was absolutely fantastic! The TAS stream was a thrill and this breakdown provided so much additional detail. Thank you!
"Are there 32 bits somewhere else in the heap that are easy to manipulate that we can use?"
dora the explorer, extreme edition
Dora the tool assisted explorer
The BEST visualization of the SRM glitch! An impressive achievement on its own even as part of such a monumental project.
I watched this before the GDQ Run, then just finished the GDQ Run, and am watching this again. All of this is simply incredible. It is unbelievable this is possible, and how much work everyone put it to make this happen. What a freakin masterpiece
I watched this at the gym so now I feel slightly fitter and slightly more educated. Thank you.
I was a huge computer programming geek all through high school, took BASIC, C++, and HTML... and this still goes over my head.
This was one of the best things I've ever seen at GDQ
I hadn't watched it prior, but after just finishing it, my thoughts can basically be summed up by this line from Xenoblade 2: "We will make your dreams a reality."
_This_ is what I define as "magic;" not the unexplained or unexplainable, but the ability to manifest one's imagination into reality. That's the main reason why I started studying computing.
"Truly awesome."
That's why we did it!
This comment is getting screenshot and printed for my board of quotes to apply to life. Thank you. ✌️🍍
used you to fall asleep when i woke up on the middle of the night. good job explaining exactally what happened. bad thing for me when the more on the ball a tas explination is, the better sleap aid lol
Fun fact: the controllers are serial ports. You can do anything you want with them if you control both sides.
Technically, yes, but limiting the run to being "Legitimate inputs" constrains what you can send.
You explained all of this so much better than some of the other people who covered this Triforce% tas. I always love your technical and well-illustrated videos and this one did not disappoint!
@Ben Smith Oh absolutely agreed. The injection bootstrapping is so fascinating.
(Also I think you may be thinking of SwankyBox's video on it... I didn't even finish his full video because it seemed too enraptured on interpreting the faked plot and not enough de-masking of the real workings)
Watching live, this felt like some lost religious text was rediscovered and being shown for the first time
Seeing your name in the credits just made me go "oh thank goodness, someone who can explain what's going on"
I was on the internet in the early 2000's and i remember following the Overture of Sages rumors and seeing the old photoshopped pics and everything. seeing this come together now all of these years later leaves me speechless tbh. 10yo me would have went insane seeing this. great job by the team
I watched this live at GDQ and was blown away!! So neat!!
This is so far above any ACE-related things I've seen so far. Really creative!
This is unbelievably cool and an amazing series of discoveries and hard work. Imagine showing this to the developers right after release in 98.
Thank you for this very in-depth explanation! When I saw the Trirforce% Run I roughly understood what was going on under the hood of the game, but this video really helped to grasp way more information about the actual processes.
Also, even for people who have a very good understanding of computer science, this video points out the immense amount of work and knowledge that must have been put into the making of the Triforce% Run. This is something that completely blows my mind and it's very difficult to even wrap your head around it.
Your ability to distill complicated processes down to layman-friendly explanations is astounding! Thank you for your work!
This video was EXACTLY what I needed, thank you so much. One of the top channels, unquestionably.
Good lord this must've taken forever to put together! This is easily the most thorough and approachable explanation of these concepts for the layman I've ever seen. The only unexplained thing is what a branch delay slot is, but thankfully it's not really important for a conceptual understanding, and I already knew anyway. ;)
Bloody well done!
This clearly gives the Water Temple a run for its money!
This has to be one of the most amazing achievements and events to have witnessed in video game history! Unbelievable
people seem to be annoyed about how "it wasn't all REAL content!" or "it couldn't ACTUALLY have been done so what's the point"! when the point is that the aim of the creation was to make a surreal and incredible experience for the audience members both in-person and in chat at GDQ, and to show the creators' love and respect for the zelda community, the GDQ community, and the speedrunning community. it gave me goosebumps all the way through and i'm elated that they partnered with RGME to make this video!
Glad you got it! And also, the fact that it actually can be done in a certain sense, because we did it through controller input without modifying the cart. ACE blurs the line between what's in the game and what's not. The Triforce scene has not actually been in OoT all along, but the ability to create the Triforce scene HAS actually been in OoT all along.
@@Sauraen Y'all didn't _find_ the triforce, y'all _made_ it. And that's far more impressive.
@@Sauraen exactly! the artistry and perfection you all displayed, without even doing any modification just shows what's truly possible when you know how to use (or exploit) an engine to its fullest. i thank you and all the triforce% team for all your hard work to bring us a truly stunning and beautiful experience.
the consolation prize the f boots actually can be done by a human. and that IS coding or modualting an item. though sad there never really was a way to get the triforce you had to make it user content basically
@@zmyr88 With some changes to how we went from the initial ACE to Total Control, the rest of Triforce% could theoretically be done by a human. It would just take days for them to type in all the data for all the custom content.
Your explanations are always so clean and easy to understand it's unreal!
The explanations and infographics are amazingly clear for such a complex topic ! Congratulations !
I was absolutely blown away by this run on SGDQ. OoT holds a special place in my heart. 💕 here together 💕
I'd still love to know what, exactly, was actual beta content, and what was newly created via ACE.
Well I'm not an expert, but the Arwing, butterfly in a bottle model, the Kokiri Head (Not the body I believe), the giant Rupee that is the Running Man's "reward," the ability to equip Medallions as items (Not the Sage's Charm, nor its doubling of the magic meter, just the ability to equip Medallions), and the Unicorn Fountain + Beta Great Fairy is all the legit beta content that was shown that I can count off the top of my head. As for the masks that got buffed with the Magic Powder, I don't believe it was ever planned to have the Bunny Hood work like it does in MM for OoT (During development).
Edit: Forgot some beta elements.
@@SSDARKPIT so... why is there an Arwing in the files for OoT?
@@deneb_tm apparently it was used to test z-targeting and volvagia's flight patterns
@@BBSplat Correct. It's a pretty common thing. Why make a new model to test something when you can just drop in something from a game you already made?
@@BBSplat that makes a lot of sense actually, thanks!
This episode fascinated me, start to end. I was so confused after watching the run, but now I actually have a good understanding of what went on. Thanks for making such an easy-to-follow explanation!
As soon as I saw the run, I was desperately hoping you'd do a rundown of how the hell this all works on the backend. This is fascinating.
In bootstrap 1, is R on the controller 1 always held down or something? And Z not held down either? Otherwise the rotations of Link could change, right? If so, wow, that's even less freedom there, but I suppose you only need a load and store instruction at this stage that happen to fit the right patterns of the R and Z bits for controller 1. If it's not this, then how is Link prevented from rotating?
It's really amazing what people can do with these games and how well they can explain it so well to someone not familiar. :)
Yes, R and Z are held the entire time during that section for that exact reason! Thankfully the addi and sh instructions using the $gp register require those two bits to be set.
The fact that I was able to understand most of what was happening means your video is really full of understandable but complex information. Great video!
I can't believe you figured out how they did it and made this video so fast in response
I personally invited IsoFrieze onto the team ahead of time and am extremely thankful for his tireless work
I like how the fonts were changed from the 8/16bit videos to match the game. Nice touch.
I have seen many videos about SRM and memory heaps in this game but nothing has explained it this well. Very well done.
As someone who never played OoT as a kid, and thus did not have the nostalgia to appreciate what was done, BUT is a computer programmer who appreciates the ACE that was displayed, I deeply appreciate this video. The actual TAS was very cool, but did not resonate the same way with me. But this? The behind scenes? This resonates with me, and huge props to the team behind it. I remember my Assembly classes, so once I saw MIPS instructions, the lights came on. Thank you again for this video!
This is just incredible! Think of all the possibilities we could do! Regardless, while I wasn’t there for the initial run, I did end up watching the VOD, and it was amazing. Shoutouts to all those involved in that project, you made several of Zelda fans dreams come true!
Finally, that ending made me cheerful n tears not gunna lie. I love GDQ & tasbot
Watched this live and then read linked this, posted just after the run completed. This was so awesome!
this is a good explanation and rundown of the speed run. Other channels that I have watched don't do a good job of explaining the speed-up or try to pass the entire run off as if everything shown was already in the game.
Nothing better than waking up to a new RGME video!
That was EASILY the best thing I've ever seen at GDQ
you ever see brain training? seriously, thats amazing too.
Them putting Mew under the truck in 2016 was pretty dope too, but that doesn’t really compare in scope to Triforce%
Great video! Thanks! It shows how passionate the Zelda OOT speedrun community is to find out all of this, absolutely incredible!
I felt like a kid again discovering new things about this game. I was pleasantly jebaited.
I’ve been curious about ace for awhile now this is by far the best explanation
This won GDQ. FANTASTIC job on the part of the squad!
This is a great video, thanks! Love all the in-depth info.
Here together!
Amazing in-depth video. Setups, values, addresses, payloads... Simply amazing work. I'll have to watch that last part again, kinda lost me where the payload's rate gets cranked up but wow, what a team of brilliant people ! Props to everybody !
Thank you for this explanation! After watching Triforce% I could not wrap my head around how pressing a billion buttons could actually transfer data into the game, and now I do.
I'm amazed you were able to create a video this fast!
Honestly, your videos are amazing. Even though it's not what I usually watch, the explanations are easy to understand, and very precise, I absolutely love them. Kudos to you !
After 20 years, we took revenge on the Running Man, travelled through time as was once intended, walked in the Temple of Light and, to finally quell the struggles of everyone's inner child, raised the Triforce above our heads to make a wish for the sake of Hyrule.
Great video! One thing, though: I believe when you went from discussing bootstrapper #2 in abstract terms to showing the code, you accidentally renamed it as bootstrapper #3...so, just 3 bootstrappers overall!
Assuming the Hyperspeed Loader was used for 40 minutes (about the amount of time from when Savestate started moving again to when Twitch chat showed up in-game), then there was potentially over 12mb of data put in - a bit less than half of the size of the game itself.
It's about 1.5MB actually
actually only about 5 minutes (until twitch chat at the end)
Super glad this exists - I have SO MANY questions
I literally understood nothing but yet here i was watching this 34 minute video in full 😵💫
It's amazing how thsi was all done without a modified copy of the game or console
Every time amazed how you can explain and visualize such complicated topics. Great work!
When I saw this Triforce % it blew my mind. Thank you for explaining it
10/10 video. such a perfect explanation and great visual representation
Hell yeah, I saw you in the credits and was hoping you'd post something
I can’t believe I was there for this legendary moment
just watched this live i need this explanation desperately
very cool that you worked on this project!
This is the single greatest explanation for ACE I have ever seen.
ugh still confusing to me but more makes sense. but i do know the intellect that was behind this. now i know was even more. you figured out 10000 lines of mips code. you figured out how to get the stale values you needed and how to move them. write the bootstraps. and then excute it live.
true talent was here. if i could truly understand it and maybe do it or part of it i would be able to code great things i imagine because it meant i would have a very deep understanding of code structures.
both you and the triforce% teams are phenomenal. keep up the good work.
The people that figured this out are beyond brilliant. I can't even wrap my mind around it.
Amazing....You and SwankyBox uploading the exact same explanation vid within min of each other...both entertaining in there own way.
ACE runs aren't always TAS. Sethbling once performed a fully manual ACE on Super Mario World, that turned the game into a Flappy Bird clone. So with the right setup, a human can input code through the controllers without the TAS-only timing requirements.
Thing is, the bandwidth is tiny with a real human handling the transfer of data, and the likelihood of error is much higher (in other words, we're slow and messy at typing the code in with the controllers), so the payloads can't be that big, or you'll be there for days.
We are considering possibly doing that sometime in the future. MrCheeze has already created a way to use ACE to be able to type in limited code with the file select screen. We could use that and code in a hex editor, and then spend hours manually writing a payload into RAM. Just the Triforce scene (no plot) is probably doable in a few hours. It would be extremely boring after the beginning though.
All of this was just amazing
Great work from all the community
Thanks!
I swear this is how the Enterprise gets hacked from inside the holodeck
Dammit Geordi.
This is absolutely insane, how do people figure this stuff out?? Fantastic presentation!