Submission Text Full Submission Page

Triforce% OoT ACE Showcase - abstract

Triforce% OoT ACE Showcase was presented by Sauraen, Savestate, and dwangoAC with the help of TASBot under the title Ocarina of Time Beta Showcase during the SGDQ 2022 TAS block after helping raise more than $228k for Doctors Without Borders. Triforce% was performed using an original, unmodified US 1.0 release cartridge of The Legend of Zelda: Ocarina of Time on a real, original N64 (the Nintendo 64 had a passive RGB mod for a clean video signal that did not affect gameplay in any way). Everything in this run was done live in front of an audience using only button presses on controllers, ultimately achieving ACE (Arbitrary Code Execution) using Stale Reference Manipulation (SRM, a form of Use-After-Free exploit).

Showcase submission notes

This run is (finally) being submitted by dwangoAC on behalf of the director of the project (Sauraen), the human speedrunner (Savestate), and the rest of the 25+ strong team who worked on it. This is being submitted with a stub file as a showcase submission following discussions in the forum thread "Let's figure out how to publish TASBot's GDQ showcases". The submission file itself is a placeholder movie file prepared by BruceShankle (used with permission - thanks!) which does not accurately represent the 53.05.3 runtime and 1 hour of content that the Triforce% team presented. Instead of attempting to watch the movie file in BizHawk, please watch the official Triforce% video or the 10-minute Triforce% Highlights video.
Over two dozen people put immense effort into creating and documenting this run, almost entirely in secret due to the nature of the content. The team developed a website at https://GetTriforce.link complementing the full source code of everything the team created to document the project and I've opted to take the excellent documentation from there and supply it here mostly unchanged as it covers most aspects of the run. The sections below contain substantial spoilers, so please pause reading now and watch the run if you haven't already before coming back to the description and FAQ below. One other note: I (dwangoAC) would like to specifically call out Sauraen for the heart he put into this as Triforce% would not exist without his passion over two and a half years of effort as well as to Savestate for how amazing they were in their performance in front of a live audience.
Triforce% is a unique type of artistic work: a “speedrun” performance of a video game which uses glitches to modify the console’s memory on-the-fly to create a new story and a new experience within the game. The game cartridge and ROM are completely unmodified; the changes to the game content are accomplished entirely through glitches and controller input. TASBot with a replay device is used to stream controller inputs extremely quickly into the console, but in principle, a version of this could be accomplished by a perfect human player, just much slower.
The storyline created through ACE ties together beta content from Ocarina of Time–some content actually left in the cartridge, some shown in pre-release screenshots and videos and recreated by the Triforce% team–with urban legends about OoT from the early days of the internet, creating a plot leading to the Triforce. Then, Link uses the power of the Triforce to warp to the future, becoming his Breath of the Wild self and bringing in messages of unity from the live Twitch chat, all in real time on a Nintendo 64 console via controller input.

FAQ

What is Triforce% OoT ACE Showcase?

Triforce% is a hybrid RTA/TAS superplay (“speedrun”) of The Legend of Zelda: Ocarina of Time (1.0) (U) (Nintendo 64) which uses Arbitrary Code Execution (ACE) to install a set of data loaders in the console’s memory, enabling arbitrary assets (scenes, objects, music, etc.) in the game ROM to be seamlessly live-patched via the TAS replay device. By modifying the game programming and assets, beta content cut from the final version of OoT is restored and brought to life on screen. A new plot is constructed based on this beta content and on urban legends from the late ’90s, culminating in Link obtaining the Triforce, all within the vanilla game.
Then, Link uses the power of the Goddesses–and we use the power to make the game whatever we can imagine–to go far beyond what would have been possible in 1998, and bring together the community in a meaningful way.

Okay, explain that to me like I’m five?

A human speedrunner and a robot sit down in front of a completely unmodified copy of Ocarina of Time on N64. They press buttons on the controllers very quickly and very precisely, and activate complicated glitches in the game. These glitches let them hack into the game and start changing the plot, but this is still all done just by pressing buttons on the controllers.

How does Triforce% relate to OoT Beta Showcase?

OoT Beta Showcase is the name we were using for Triforce% in order to avoid spoiling that we were going to get the Triforce. They are the same project. The idea was to tie some elements of real beta content together with a plot made up by the Triforce% team, and create a plausible “alternate ending” to OoT involving the Triforce, all through ACE and controller input.

How much/which parts of this were already on the cart?

Here is a complete list of all the debug / beta content left on the cartridge which we showed off:
   * Inventory editor
   * Arwing
   * Part of text patching system is for the N64DD expansion (URA Zelda)
   * Beta Kokiri head and body
   * Butterfly get item model and entry in one of the item tables
   * Arguable (i.e. hints of it, but not full thing): full Ocarina system
   * Arguable (i.e. hints of it, but not full thing): ability to change between child and adult without pulling the Master Sword
   * Giant magenta rupee (including its behavior of exploding when you touch it)
   * Arguable (i.e. hints of it, but not full thing): melting the ice in Zora’s Domain
   * Beta Great Fairy
   * Pedestal of the Ocarina
   * Triforce wipe animation before entering Triforce room
   * Beta Staff Roll cutscene flying through Kokiri Forest
Here is a complete list of all the alpha / beta content which was shown in official prerelease footage / screenshots / etc. So this is real alpha / beta content, but it was recreated by our team, not left on the cartridge.
   * Equipping Medallions to C-buttons
   * Unicorn Fountain scene
   * Beta Great Fairy behavior
   * Triforce room scene
   * Triforce pieces model / behavior
   * Triforce light model
   * Triforce chest model / behavior
Here is a list of the “urban legends” which we brought to life in game. These are concepts which are not actually in OoT in any way, but which were made up by other people over the years.
   * Beating the Running Man in the race
   * Overture of Sages
Everything else we showed was made up by the Triforce% team, including:
   * All the dialogue
   * Lost Woods exit code
   * The concept of the Gerudo having created the Song of Time / Nabooru teaching it to child Link
   * Running Man boss battle
   * Sages’ Charm
   * Chamber of Sages sequence
   * All the content after obtaining the Triforce

Why did the team make Triforce%?

The short answer is, to finally get the Triforce in OoT and make the dreams of millions of players come true. Other answers include:
   * to raise hundreds of thousands of dollars for MSF (Doctors Without Borders)
   * to explore the relationship between beta content and urban legends in OoT
   * to create a new type of video game related creative work, which has almost never been seen before (prior example was MrCheeze putting Mew under the truck with ACE)
   * to show off what can be technically achieved on a real N64 console

So is the Triforce actually obtainable in Ocarina of Time?

The answer to this question depends on your philosophy. Some good answers to this question would be:
   * “It is now!”
   * “If you are a superhuman with 12 arms who can accurately press buttons on four controllers 480 times per second, then yes, you can get the Triforce!”
The scene where Link gets the Triforce shown during Triforce% was created by our team and injected into the game via controller input. None of the data comprising this scene (room model, cutscene, music, custom Link animation, etc.) is in the cartridge ROM.
However, the glitches which can be used to get arbitrary code execution ARE in Ocarina of Time. They were not put there intentionally by the developers of course, but they are as much a part of the game as any other part of the game’s programming. Since the player can use those glitches to get the Triforce, there is a sense in which getting the Triforce is indeed now part of the game. Of course this also means that anything else the player is able to create, program, and inject via controller input–in our case, Breath of the Wild Link and Zelda and all of the people in the Twitch chat–also become a part of the “““““canon””””” of Ocarina of Time.

Why does Breath of the Wild Link speak Japanese?

The primary reason is that the Japanese version of BotW gets closer to having Link speak than the English version does. Some have conjectured that the Japanese audience is more willing to accept Link speaking–being more of his own character rather than just an avatar–than the Western audience. And, after all, Link has had Japanese voice actors for his vocalizations since OoT, even though these have not included actual speech. So, it seemed more appropriate to give Link a Japanese voice than an English voice.

What was the significance of X element (e.g. Unicorn Fountain, Overture of Sages, etc.) shown in the run?

See SwankyBox’s video and Hard4Games’ video for more information on the lore.

Surely this is a romhack playing off of a flashcart?

No. The cartridge is a completely unmodified, original OoT V1.0 (US) cart. The N64 used during the SGDQ marathon has an RGB mod, but this is a passive mod to the video output circuit to get better video quality and does not affect the game contents in any way. All of the custom content shown during the project was injected into the game live through controller input.

I saw some references to a “shortcut” Triforce% ROM and a “romhack” Triforce% ROM. What are these?

Shortcut: This is a copy of OoT which has one modified actor, which gives arbitrary code execution (ACE) “for free” without needing any complicated setup. From there, the rest of the data is injected through controller input just like in the real run. This was used by the development team to test most of the contents of Triforce%, because no one on the team besides Savestate is actually skilled enough to do the ACE setup by hand. You can build this mod with our toolchain from an original 1.0 ROM. This was NOT used during the live event at SGDQ.
Romhack: The Triforce% build toolchain also outputs a romhack version of Triforce%, which is a modified ROM which contains all the custom contents built-in instead of being injected through controller inputs. This was used by the development team for testing purposes. You can build a smaller, partial version of this with our toolchain from an original 1.0 ROM. This was NOT used during the live event at SGDQ.

Where can I get a copy of the ROM / all the data injected?

For legal reasons, we cannot distribute any ROMs, and we also cannot distribute any data files which contain any copyrighted code or assets. All of the tools, code, and assets created by the Triforce% team are released here. Because this release does not include any copyrighted content, it is not possible to reproduce the full Triforce% run from this data. Besides, Triforce% was not created to be a fully playable “game”; if the player were to go outside the plot shown in the live performance, at best they would simply find the vanilla game, and at worst they would encounter crashes and other issues.

Was any of the beta content shown copied from the Gigaleak or the Spaceworld ‘97 overdump?

No. In fact, Triforce% was in progress before the Gigaleak was released and was mostly done before the Spaceworld ‘97 overdump was released. All of the content which was not already in the OoT cartridge was created by the Triforce% team based on the beta trailers and such.

What is TAS (in the context of this run)?

A TAS is a Tool-Assisted Speedrun. The tools used vary by game but often consist of using an emulator with features to help record inputs and retry things. Sometimes letting the player see game values, create savestates to go back to and retry a section, slow down the game, or even go frame by frame so specific inputs can be entered for every individual frame.
However, in Triforce%, the inputs TASBot plays into the game were not created this way at all. They were generated by scripts which convert various programs the team wrote into controller input. Emulators were only used when initially debugging these programs, but most of Triforce% was developed on a real N64, not using emulators at all.

What is TASBot doing?

TASBot the cute robot is a mascot for a team of people working towards getting TASs to actually run correctly on real consoles through the use of a TAS replay device. You can find this team at https://discord.tas.bot/

What is a TAS replay device then?

A TAS replay device is basically a controller adapter but better. It takes the TAS input file and actually feeds the necessary inputs to the console when the console needs it. This is the little box which TASBot holds on stage, which connects between a host computer and the game console’s controller ports. (See Shop.TAS.Bot for pre-built TAStm32 replay devices when they are in stock, although all replay devices made by the TASBot community are open hardware designs available for anyone to build for free.)

Where could I learn to make something like this?

Can I still contribute to N64 / OoT / TAS development if this all seems over my head right now?

You sure can! Hop into any community that seems interesting and ask around. Do consider trying to read into things if you can find things to read, but most speedrunning and adjacent communities are quite helpful to those seeking to give things a try. If you’re not sure where to head first any of the linked communities may be a good start.

How did you do all of this?

21 years of reverse engineering effort by the OoT community, and then an additional 2 and a half years of development effort by the Triforce% team. Over a thousand hours by more than 25 people: programmers, artists, musicians, voice actors…
For a technical explanation of how we use glitches to obtain ACE and then use ACE to get Total Control over the game, see the Retro Game Mechanics Explained video on Triforce%.

How did you get the Twitch messages in the game? Were they actual messages from the live chat?

Yes, during the SGDQ 2022 showcase they were real live chat messages. In any of the videos created in advance, you’ll see fake messages with usernames made of random characters which were generated by a script to simulate the Twitch chat.
As far as how it was done, some scripts on the computer controlling TASBot connect to the Twitch API and read the chat. Chat messages are filtered and metadata about them is encoded and sent to TASBot. TASBot injects them into the game via the controller ports, in a similar way to how all the other custom content was injected. A custom actor in the finale scene renders the messages in the sky, in a vaguely similar way to how they are rendered in a web browser.

How did you do the cel shading?

We hope to eventually make some sort of video explaining this, but the short answer is that it is using alpha compare and drawing each triangle once per cel level. A patch to the F3DZEX RSP microcode moves the lighting information from the shade color channels to the shade alpha channel. This was initially conceived by Sauraen, first implemented and tested by glank, and then integrated into fast64 by Sauraen. The fast64 display list generation code is here. Two other, completely different, implementations of cel shading on the N64 were created in January 2022, one by James Lambert and one by Wiseguy (no public video). Our implementation was made in October 2021 but was not made public and is different from both of these.

How did you make the Running Man boss fight?

Generally, the same way we made all the other custom content. As far as the Running Man boss himself, the original 3D model and skeleton was imported into Blender, IK rigged, and animated by rankaisija. rankaisija also wrote his AI and most of his other code, and Sauraen wrote a few small parts. The Running Man boss is a separate actor from the custom Running Man who meets us at the end of the race in the Lost Woods, which is also separate from the Running Man actors in the vanilla game.

How did you make the voice acting?

Again, generally, the same way as we made all the other custom content. Audio is just more data which was injected through controller input. But to spell it out in more detail:
   * Our voice actors recorded the lines in their home studios and sent us the WAV files. (They are not the official voice actors from BotW / Nintendo, but they do both have professional voice acting experience.)
   * We used a tool to encode the audio files into N64 format.
   * The scripts on the computer converted this data to commands to the TAStm32 replay device (the box TASBot was holding) over USB.
   * The TAStm32 converted this into individual controller inputs and sent them to the console.
   * The hyperspeed loader converted the controller inputs back into data and placed it in the Expansion Pak RAM.
   * Patches to the game’s OS audio code (which is itself stored in RAM) allowed it to read samples from RAM instead of cartridge ROM.
   * Other patches replaced entries in the game’s lists of SFX for Ganon and other boss voice sound effects with pointers to our new SFX.
   * The BotW Link and Zelda actors’ custom code triggered playback of the Ganon / boss SFX like any other SFX, which caused the voice lines to be played in game.

The ROM is, by definition, read-only. So how did you change content within existing parts of OoT which were loaded from the cartridge?

There are three overall techniques which were used for patching the game.
   * After the game loads anyfile from the cartridge, it checks a list of patches which have been loaded into memory via controller input. If this is a file we want to patch, it then applies our patch to that data, in the form of a list of differences (e.g. move to byte 100, write 2 bytes: 00 01, etc.). This happens before that data is “returned” to whatever code requested to load it. This method is used for making relatively small changes to things like scene files or actor overlays (code).
   * We can replace a whole file which is normally on the cartridge with a copy we uploaded into RAM. That is, we change the file list (which is stored in RAM) and overwrite the entry for that file from the ROM with a special entry telling it to load from our injected RAM data instead. This is used for things like fully custom scenes, or actors which needed larger changes like the Gerudo guards and Zora’s Domain ice/waterfall.
   * We can patch the code (stored in RAM) which asks to load the data from ROM, so that it doesn’t try to load from a ROM file at all in cases we want. This is used for types of data which are normally streamed in uncompressed format from the ROM, including music sequences, sound effects, and Link animations, and types of data which have tables separate from the file list, like completely custom actors and objects.

Credits

In-game credits

Director
  • SAURAEN
RTA Speedrunner
  • SAVESTATE
Scenario
  • SAURAEN
  • REBECCAETRIPP
  • TERUSTHEBIRD
  • DWANGOAC
Scene Design
  • CDI-FAILS
  • ZEL
  • SAURAEN
Music
  • SAURAEN
  • REBECCAETRIPP
Screen Text
  • KIM-SUKLEY
  • SAURAEN
Cinema Scenes
  • SAURAEN
  • DWANGOAC
  • DEFENESAM
BotW Model Conversion
  • ALI1234
  • SAURAEN
Animation
  • UNESAG
  • SAURAEN
  • RANKAISIJA
  • AEROARTWORK
Zelda (English Voice)
  • SAOIRSE
Link (Japanese Voice)
  • ZERO
Translator
  • YUKLOJ
Textures
  • CDI-FAILS
  • KIM-SUKLEY
  • ZEL
  • SAURAEN
Actor Program
  • SAURAEN
  • RANKAISIJA
  • Z64ME
  • MNGOLDENEAGLE
  • ZEL
Game / Actor Patches
  • SAURAEN
  • MNGOLDENEAGLE
System Patches
  • SAURAEN
  • ZEL
Cel Shading
  • SAURAEN
  • GLANK
Bootstrapper Chain
  • SAURAEN
Hyperspeed Loader
  • TERUSTHEBIRD
  • SAURAEN
Host Frontend
  • SAURAEN
  • THEMAS3212
TAStm32 Firmware
  • OWNASAURUS
  • SAURAEN
SRM / ACE Setup
  • MRCHEEZE
  • SAVESTATE
Build Toolchain
  • SAURAEN
  • Z64ME
Video Editing
  • MUSKET012
  • GRAVATOS
  • SAVESTATE
  • SAURAEN
Technical Support
  • ZEL
  • Z64ME
  • MZXRULES
  • THARO
  • WISEGUY
  • JACK WALKER
Special Thanks
  • KAZE EMANUAR
  • XDANIEL
  • ARIANA ALMANDOZ
Executive Producer
  • DWANGOAC
PRESENTED AT
  • Summer Games Done Quick 2022
  • Assets, Toolchain, and Performance Copyright (C) 2019-2022 The Triforce% Team
  • The Legend of ZELDA: Ocarina of Time Copyright (C) 1998 Nintendo

Partner credits

Partner Creators:
Partner Reactors:
OST Published By SiIvaGunner:

Press coverage


Samsara: I would say "judging" here, but that's not accurate to what I'll be doing. Instead, let's call it "figuring out how to accept this, and not stopping until I find a way".
Samsara: This is going to require some internal discussion and new site infrastructure, so I'm setting to Delayed until we can work it all out. We have a lot going on, so it may take some time, but it will happen.
Samsara: Hey, hi, it's me, Samsara. Just wanted to provide a quick update on this run that definitely hasn't been on the workbench for 8 months please don't remind me.
In short, the delay is 100% on me. The stuff we need is all drafted, the infrastructure stuff just needs to be properly condensed and passed off to the site devs, and I have admittedly been slacking on that. There's been a lot of pressing site matters to attend to and they've unfortunately all been pushing back what we need to be able to accept this. Again, it will happen, and it will remain on the workbench until it does, and I apologize for taking so long to be able to do so. Hopefully it'll happen before the one year anniversary of submission, at least!

Samsara: Pretend I said "two year anniversary" in that last note. This was a long time in the making, as evidenced by the fact that we are indeed fast approaching the two year anniversary of this submission. I think a proper explanation is overdue.
Before that, though, let's start with the run itself: This definitely is a TASBot showcase. That might sound dismissive, so let me explain. To me, "TASBot showcase" is a synonym for "masterpiece of technical execution". Not many TASes come close to reaching the level that these showcase runs hit year after year. They're not only created for live events, but they are events in and of themselves.
I'll fully and shamefully admit that I hadn't watched this run until right before writing this judgement. I'd always intended to watch it once we were able to accept it, just so I'd be able to watch it for the first time without the shadow of TASVideos dread looming overhead. It may have taken much longer than I had anticipated, but I'm glad I did that. This run hits just right. I loved the framing of it being a showcase of interesting beta/unused content, gradually transforming into its own story, culminating in actually receiving and using the Triforce to bring everyone here together. In a way, and I'm well aware of how sappy this is going to sound, the run itself mimics its objective. It brings power in the form of the ACE, wisdom in the form of the beta showcases, and courage in the form of creating its own unique story using one of the most beloved games of all time, and I think it was all pulled off beautifully.
The actual beta showcase parts were interesting and very well implemented, and I honestly found myself getting immersed in the created content as if it was just part of the game. All the custom dialogue scanned as if it was written by the original writers, all of the new lore fit perfectly into the actual lore of the game, even the Running Man boss fight looked like it was actually made for the game. It's really telling when the only things that looked out of place were the Arwing that's actually in the game code and the explicit 4th wall breaks after the veil of the framing device had already dropped.
At the end of the run, I had one major, overwhelming thought, and I'm sure it's not any of the thoughts you'd expect:
TASVideos messed up, big time.
As it turns out, the shadow of TASVideos dread was still looming in the back of my mind. I mentioned this at the very start of the judgement, but Triforce% has been sitting Delayed on the workbench for almost two years now. It was submitted knowing that we didn't have a system to accept it, but also knowing that we would be working to create that system. The fact that it took almost two years to do so was us messing up, of course, but if I were to leave it at just that, it would undermine the real issue at hand. It didn't take us two years to be able to accept this. It took ten.
Given the popularity of this run, I'm expecting this to be read by people who may not understand how TASVideos works, so I should explain why we weren't accepting these runs in the first place. Truth is, there's a short answer and a long answer to that, and the short answer is also pretty long.
TASVideos has operated on the same verification policy since the very beginning of the site, 20 years ago. We require an input file for each submission. Just providing a video is not enough, as there is no way of truly proving legitimacy. A video can very easily be faked, whether it be in obvious ways like editing and splicing, or in more subtle ways like undetectable modifications to the game. The input file always gives us the full run as-is, and we can easily see whether or not it actually works with a clean ROM of the game. Cheating is pretty much impossible.
This, however, presents a problem with the TASBot showcases. They inherently cannot be sync-verified in a way that is consistent with what is shown at the event. They often rely on live input, whether it be a human player interacting with what was set up (such as this very run), or replaying text, sound, and video that can never be perfectly replicated. In short, where every single one of our other publications is confirmed to be legitimate and consistent under our verification standards, it would be impossible for us to do so with a TASBot run, as the input file will never reflect what was shown on stream.
You might be thinking this is reasonable, and you're half right. This is why the precedent was set ten years ago, with Pokemon Plays Twitch. At the time, we thought it was the right thing to do, and I wouldn't blame anyone who thought the same. That brings us to the long answer, and the long answer starts off rough. Why was that precedent set? Why haven't we been showcasing these runs for the last 10 years?
I genuinely don't know. The reason the answer is so long is because after nearly a full decade of us having this precedent, I'm no closer to figuring out why we ever had it or why we all followed it so vehemently.
As reasonable as it sounds to say "We can't accept this because you can't provide the exact input file for us to verify", there's two glaring holes in that logic. First, ironically, much in the same way that TASBot runs are inherently unverifiable, they are also inherently verified by virtue of being created specifically to be played back on the original console. Tens of thousands of people sat there and watched these runs be console verified live. They saw the run, they saw the hardware, they even saw the setup of that hardware. You could argue that these are the most scrutinized TASes in history because of that, so why did we ever think they needed to be judged again on top of that? What would a "proper input file" prove that "literally watching the run being played back perfectly on a console" doesn't?
The second, and even bigger, glaring hole is much simpler to state while also being ten times harder to explain: We didn't have to KEEP that precedent. At any point, we could have sat down and asked ourselves if there was an alternate solution, but we never did. I don't even think anyone even floated the idea of doing so at the time.
To be honest, that's just how the site used to be for the longest time. There wasn't a whole lot of solid staff communication back then, we just kinda did our own thing and quietly dreaded moments where we needed to actually discuss something big. We never really thought about removing rules or making them less lenient, we were mainly just concerned with strengthening them and ensuring every single movie follows them to the letter. A lot of that has changed over the past few years, but in all honesty we still have a long way to go still.
That's not to say we're the same way we used to be, but the results of all of our changes sometimes end up acting similarly to how they were before, but for entirely different reasons. Where we used to not seek alternate solutions to problems because it was easier to keep things how they were, now we actually seek that alternate solution but we tend to hyperfocus on the first thing we agree on. That definitely applies to these live event runs in a major way: We found a solution we all liked at first, and over time it slowly became more and more of an unreasonable demand for us, but we didn't want to stray from the original vision.
At least on my part, that decision to stay stubborn was partially informed by the Playground system. We drafted it with the community, found a solution people liked, began to implement it on the site, and then it all fell through for various reasons. While we had a clear vision for what we wanted it to be, there was never a clear vision for how it was meant to be coded, and progress fell flat. Our developers can't work without good communication, and our communication wasn't good. Events ended up being the exact same way, just without any sort of site implementation. Playground's small implementation was a half-measure intended to be fixed later and never was, I didn't want the Events system to end up the same way, and then I wasn't able to be involved in any of the discussions due to my personal life taking over. Communication was, once again, not good.
This is us now, though, where even though there are still communication breakdowns from time to time, they're for legitimate reasons, and the worst thing that comes out of them is just that the community has to wait longer for something they know we will eventually do. Granted, we shouldn't be giving ANY uncertainty over anything, but in cases where real lives get in the way of this fun hobby, I'll gladly take the hit of people not knowing when the positive change we promised is coming instead of not knowing if we'll ever promise any positive change at all.
While that may answer the question of why it took two years from submission to acceptance, it's still just part of the ever-growing long answer to why it took 10 years from Pokemon Plays Twitch to acceptance. A lot of outside communities think we're still that old TASVideos, the one that policed the art of TASing to an insane degree and tried to make everyone conform to what we thought was "correct" at the time. We made a lot of awful decisions that drove a lot of great people away, and a site that could have been and SHOULD have been the true home of TASing just turned into an overcurated museum of what the few people who were left wanted to see.
Ever since the decision on Pokemon Plays Twitch, TASBot has effectively been its own separate community with its own separate members, and that schism was entirely our fault. Rejecting that run sent a very clear message of "We don't want you", and shockingly, it worked. TASBot grew and thrived without our input (well, non-controller input at least), and it took until very recently for more crossover to start happening. It's far from the only time we've made decisions that only benefit ourselves and come at the cost of alienating entire communities of people. We did it with Super Mario 64 TASers, and I think we still need to do more work to fully heal that relationship. We did it with Celeste TASers, and I'm sorry that we still don't have a parser for CelesteTAS, that's absolutely one of the "real life is getting in the way of something we promised" things. Hell, we did it with nearly every TASer in the old days where you'd be turned away at the door if the community thought your game was boring, regardless of the effort you put into TASing it.
As public as I've been about taking accountability for our past mistakes, I don't think I've ever done it as formally as I have here. With the scope of this run and the gravity of finally figuring out how to host it, I honestly hope that this is both a worthy explanation of how we messed up over the last decade, and a wide-reaching one that helps to mend the wounds we caused in so many other communities. On behalf of TASVideos, I apologize for not only causing those wounds, but deepening them over time. As long as I'm a staff member, let alone my current position as an Admin, I will continue to do everything in my power to fix all of these wrongs, even if it takes two years from this submission, or ten years from another submission, or 20 years and counting from the birth of the site itself.
With all that said, I'm happy to finally accept this to our new Events class.
fsvgm777: Processing!
Also replacing the movie file with a dummy file by DrD2k9 in order to properly display the total run time.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15629
Location: 127.0.0.1
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3828)
Joined: 11/30/2014
Posts: 2834
Location: US
A masterpiece, certainly the most impressive thing ever done with controller inputs. I also really enjoyed reading through the explanations and watching the videos about all the tech involved. The amount talent and tech that went into making this is amazing, really inspiring stuff. Unfortunately not entirely reproducible, which i guess is fine for a demonstration, but really too bad emulation couldn't do much to help things along here, and thus doesn't leave much afterwards either. Oh well. I'm also fascinated by the combination of real time runners and tool assistance. I think this would be an interesting direction for TASing to go in for more modern games, to still get super human results in moderate amount of time compared to doing everything frame advance for endless hours. Anyway, all around amazing, great project!
Moderator, Senior Ambassador, Experienced player (908)
Joined: 9/14/2008
Posts: 1014
Alyosha wrote:
Unfortunately not entirely reproducible, which i guess is fine for a demonstration, but really too bad emulation couldn't do much to help things along here, and thus doesn't leave much afterwards either.
Unfortunately, no current emulator can accurately reproduce some of the effects (there's also some microcode changes). However, this *has* been reproduced - we were able to perform the run during ESA and I look forward to posting that video soon. :)
I was laid off in May 2023 and became too ill to work this year and could use support via Patreon or onetime donations as work on TASBot Re: and TASBot HD is stalled. I'm dwangoAC, TASVideos Senior Ambassador and BDFL of the TASBot community; when healthy, I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Player (13)
Joined: 6/17/2006
Posts: 510
OK, so if I understand the situation correctly: - A traditional movie file cannot be submitted due to emulation issues, hence the placeholder file in this submission. - The run cannot be reproduced by an independent 3rd party because some of the data needed to do so has never been released publicly due to copyright concerns. - The only evidence of the run working is through various live demonstrations by the authors, which means there is a possibility for it to be fake in some manner somehow. (While I personally trust dwangoAC and the rest of the team, I also believe that trust is insufficient as a standard of proof.) As such, I believe TASVideos should never publish this submission as it cannot be verified. As least. as long as all of these statements are true. On a related note, it's not clear to me from the released materials how to setup the controllers' I/O between the Linux machine and the N64. This is a potential additional hurdle for independent verification.
Samsara
She/They
Senior Judge, Site Admin, Expert player (2241)
Joined: 11/13/2006
Posts: 2823
Location: Northern California
SmashManiac wrote:
As such, I believe TASVideos should never publish this submission as it cannot be verified.
Unfortunately, I have no intention of rejecting this. If there's no way to publish it, we will create a way, which we have been exploring in an open - albeit inactive - discussion thread. Your concerns are valid, however I don't feel like they should be applying to this submission, or any other GDQ/event showcase submission:
A traditional movie file cannot be submitted due to emulation issues, hence the placeholder file in this submission.
The fact that runs must have input files is a limitation of the site itself. Assuming we end up going with a separate method of "publication", there may not be a need to even submit an input file at all, and honestly I don't think there should be a need to do so.
The run cannot be reproduced by an independent 3rd party because some of the data needed to do so has never been released publicly due to copyright concerns.
I honestly can't think of a justifiable reason for why one of these runs should be reproducible in order to be showcased on the site. Verification and legitimacy don't make sense as these runs are inherently created for console playback in front of both a live audience and tens of thousands of viewers watching from home, so there's no need for them to go through a Judge or a Publisher in order to verify that they work universally. Would it be nice to have reproducible runs? Sure, of course, but there are - and will continue to be - cases where this is strictly impossible. A lot of these showcases use live input and/or read from live sources, so they can't be reproduced exactly anyway, not to mention the aforementioned occasional issue with copyright or the fact that some of the runs need additional consoles or tech. It's silly to me to keep this up as a requirement just to be able to put these runs somewhere on the site. It's been silly to me since all the way back when Pokemon Plays Twitch was rejected (and yes, I am re-judging and accepting that one once we're able to accept this one).
The only evidence of the run working is through various live demonstrations by the authors, which means there is a possibility for it to be fake in some manner somehow.
I said this in the thread I linked earlier, but as far as I'm concerned, the fact that these runs are specifically created to work on console means they're more legitimate than a large number of our currently published runs. While we will never require console verification for any run to be published, I think in this case the console verification does everything it needs to in order to prove these runs legitimate enough.
On top of all of that, I have a few more words. These runs are created with nothing but showcasing in mind, they're made to entertain an audience and are not made to compete with anything else, RTA or TAS or otherwise. They're grand showcases of technical achievement, literally the best possible definitions of "tool-assisted" out there. They are very strictly created for live events, not meant to be reproduced by others and often not even repeated by the same team. We've recently opened the site to runs that may actually be explicitly illegitimate, so why shouldn't we be able to expand our definition of publication to include the ability to host and showcase these live events? If we're meant to be a centralized source of all things TASing, isn't it ridiculous that we have been actively turning away one of, if not the, most widespread, notable, and popular sets of TASes ever created? In a way, it's true that we shouldn't be accepting and publishing these runs according to our usual standards of judgement, but these runs are such special cases that we need to make exceptions specifically for them and no other kind of submission. I don't think it wrecks the integrity of the site or the judgement system by doing so, as every single other submission is still going to be judged to the same standards as before. Our integrity is probably being more harmed by the fact that we haven't been making special cases for these, honestly, since doing so just feels arbitrary when the only thing we've ever needed to do is throw a video on a page and provide some links with it. My claim message is my final answer here: This will be showcased on the site, no matter how long it takes to find and create a way to do so.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
Joined: 1/14/2016
Posts: 100
I liked the video, it's a good Tool-Assisted Showcase. It would be cool to have it somewhere suitable on the site. It's not really a good fit for the site as currently setup of course, even under the current more relaxed rules of the Playground linked above, as even those require the run to be reproducible by anyone. (Is there more required than an N64, the ROM, a TASbot, an input file, and the Triforce% github resources?) I think that means that the Showcase category should have a bit more relaxed stance about the verifyability of a run, and that's fine. Maybe even collect runs that you want to have in it, and then figure out what the rules tieing them together actually are.
Former player
Joined: 6/30/2010
Posts: 1107
Location: Zurich, Switzerland
If I understand this correctly, all this TAS does is create a romhack and then stop for a human player to take over. And in this case, it doesn't even work on an unmodified ROM, making it impossible to reproduce. So you can't just download the movie file, play it back and then play the romhack, all you can do is watch the one live showcase. Then how would I answer the question "Did you like watching this movie", with emphasis on "movie"? The movie is nothing but a setup for Arbitrary Code Execution, just like the published any% TAS, but instead of reaching the credits, it creates a romhack. That setup is the only thing I can judge here, since everything else in the almost one hour long video has nothing to do with the actual TAS. Based on just these TAS inputs, no matter if I judge them from power-on or just the short script used during the live demonstration, I have to answer this question with a "no". No, the TAS was not entertaining. Samsara seems to want this submission and similar ones to be published on the site no matter what. It's popular, it's interesting, but it is also completely incompatible with the entire idea of TASVideos. This site is intended to: - Host entertaining TASes - Host TAS world records aiming for speedrun goals Since this submission is not aiming for any speedrun goal and is also not entertaining purely as a TAS, for the reasons stated above, it does not fit on this site. Now if the site staff wishes to radically chance the basic concept of TASVideos, they should be open and honest about it. A publication of this submission would mean that TASVideos would no longer be a site about hosting fast and/or entertaining TASes, but a site about hosting videos related to TASing that may or may not qualify as actual TASes. It would also mean that any TAS that was ever rejected due to being impossible to sync (Metroid Prime being the most famous example) would immediately have to be re-judged and possibly accepted, since reproducibility no longer matters, the only thing the site now requires is a video related to TASing that is entertaining for enough people.
Samsara wrote:
In a way, it's true that we shouldn't be accepting and publishing these runs according to our usual standards of judgement, but these runs are such special cases that we need to make exceptions specifically for them and no other kind of submission. I don't think it wrecks the integrity of the site or the judgement system by doing so, as every single other submission is still going to be judged to the same standards as before.
Yes, it does very much hurt the integrity of the site if we just completely throw away the basic idea of what TASVideos is, every time we happen to like a video that is fundamentally incompatible with the current concept of the site. Not even the playground class solves the issue here, since we are still judging actual TASes, not the state of the game after the TAS inputs have already ended. Either we change the site completely to allow for this type of content to be published or we don't. The current site rules are the result of years of hard work by this community and can't just be ignored whenever we like a GDQ showcase. The direction of the site is something that needs to be discussed, that much has become clear now.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Player (13)
Joined: 6/17/2006
Posts: 510
Samsara, I think you also brought some very good points. I believe you are describing the crux of the issue here:
Samsara wrote:
I honestly can't think of a justifiable reason for why one of these runs should be reproducible in order to be showcased on the site. Verification and legitimacy don't make sense as these runs are inherently created for console playback in front of both a live audience and tens of thousands of viewers watching from home, so there's no need for them to go through a Judge or a Publisher in order to verify that they work universally. Would it be nice to have reproducible runs? Sure, of course, but there are - and will continue to be - cases where this is strictly impossible. A lot of these showcases use live input and/or read from live sources, so they can't be reproduced exactly anyway, not to mention the aforementioned occasional issue with copyright or the fact that some of the runs need additional consoles or tech.
If TASVideos wants to make completely separate publications on their website showcasing live demonstrations, I'm all fine with that personally. I too find it kind of a shame that there is currently no space for human-assisted TASes or non-emulator TASes on TASVideos, and wholeheartedly agree with your sentiment to want to publish this submission at all costs. However, it should be made very clear that TASVideos cannot fully verify their legitimacy or integrity when such verification is impossible, and that they are presented for historical and/or entertainment purposes only. There has been multiple instances in the past where people claimed to have created a TAS which turned out to be video splicing. There also has been multiple instances in the past where people claimed to have completed a run during offline live events, which turned out to be fake or cheated. There has been at least one instance in the past where a claimed TAS verification movie on real hardware used a modded console (the green power LED NES incident). Heck, we've even had multiple live demonstrations by dwangoAC during GDQ events with deceptive commentary, willingly or not: the Super Mario Bros. 3 DPCM bug run from SGDQ 2016 incorrectly claiming game completion (more details in #6466: Masterjun & ais523's NES Super Mario Bros. 3 "game end glitch" in 00:00.78), and... this very run which by design appeared to be simply showcasing unused content already on the cartridge instead of being full-blown content injection up until the final part. Right now, the Movie Rules clearly states that submissions must be reproducible, and wrote my previous comment accordingly. This is currently the only rule that prevents cheating issues plaguing other gaming communities, and this is the situation I personally want to prevent. In my opinion, this constitutes a valid justification to keep this rule unless a different solution can be found to deal with this problem.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
The goal is showcasing live events that are strongly relevant to TASing. Events don't happen according to rules we have for replay files, they can't be judged by them, and putting them on the site in some form (which is not a usual full-blown replay file publication) can't affect how we will be judging movies that get regularly published. Adding a certain section to the site is not going to magically change how we approach existing sections. Nobody is planning to change the current rules so much that the file submitted here becomes a normal xxxxM publication (because it doesn't really play the game). We just know that we will more actively work on implementing something if it's already submitted in some form.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Moderator, Senior Ambassador, Experienced player (908)
Joined: 9/14/2008
Posts: 1014
SmashManiac wrote:
The run cannot be reproduced by an independent 3rd party because some of the data needed to do so has never been released publicly due to copyright concerns.
As was the case with SMB on SMW, site rules dictate we cannot link to ROMs and as such we also can't release the full payload for the same reason, we'd be in violation of the site's rules if we did. Instead, we've released the open source portions, and those have been independently verified.
I was laid off in May 2023 and became too ill to work this year and could use support via Patreon or onetime donations as work on TASBot Re: and TASBot HD is stalled. I'm dwangoAC, TASVideos Senior Ambassador and BDFL of the TASBot community; when healthy, I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Sauraen
He/Him
Joined: 10/10/2022
Posts: 4
Here is a list of all the TASVideos rules I believe Triforce% violates:
  • "Use an official release of an approved emulator" / "Judges and Publishers will attempt to verify that your input file syncs on an officially released build of an accepted emulator. If your run fails to sync on an official release, it cannot be verified, and thus cannot be accepted." Triforce% does not work on emulators (see below), and if a hacked emulator was developed which could support it, this would still not be an official release. Note that there is no carve-out for console verification; TASes which work on console but not on emulator are not allowed on the site.
  • "Always record new movies from power-on or SaveRAM". The TAS aspect of Triforce% starts from a state set up by a human speedrunner. Furthermore, none of the TAS parts of Triforce% were ever "recorded" in the traditional sense--they were all generated by scripts. I think this rule probably means "movies must start from power-on (etc.)", but technically, any TAS run which was generated rather than recorded violates the rule as written.
  • Goal choice: "Standard" is out of the question, among the reasons being "Arbitrary Code Execution (ACE) is only allowed in Standard as an any% speedrun". For "Moons", we have a few issues:
    • "Your goal choice should be clearly defined and sensible, especially to those who do not know your chosen game" is questionable, especially for the finale sequence.
    • "Your movie must beat the game" / "Playarounds and freeruns must still beat the game"--well, we reached a Staff Roll and a "The End" screen, but not by traditional definitions.
    • "the spirit of the original game should be maintained"--we are proud of our work, and if anything, it was an issue that much of our content was TOO believable. However, it could easily be argued that Twitch chat etc. was not in the spirit of a '90s game.
    • "copyright should not be infringed. Fair use applies here"--we believe that our SGDQ performance was well within fair use due to its overwhelmingly transformative nature and other factors, but we also believe TASVideos is not going to want to host movie files which contain copyrighted assets encoded as button presses.
  • "Your TAS must be reasonably optimized"--the RTA portion was not optimized by TAS standards, as it was by a human and using "marathon strats". The rules of course don't have any allowance for a TAS containing an RTA segment.
  • "Your submission must be reproducible"--Triforce%, minus certain copyrighted content, is reproducible on console, but it requires a human leaderboard-quality speedrunner and a TAStm32 V2 or V3 board. Both the fact that certain content would be omitted compared to the live run and the human+hardware requirements are impediments to counting this as following the rule.
Regarding why Triforce% does not work on emulators--there are three issues.
  1. As part of the ACE bootstrappers, code is modified to poll the controllers 8 times per frame (VI) instead of once. To our knowledge, no N64 emulator with TAS playback tools supports this.
  2. Once this mode is activated, a set of scripts on the computer and the custom firmware on the TAStm32 encode data into controller inputs on controllers 2-4. The actual set of controller inputs is generated on-the-fly--it isn't in some file on our computer. Other scripts could be written to generate this set of controller inputs on the computer, but even if this was done, TAS tools would have to be developed to allow TASing the gameplay on controller 1 while the other controller inputs were being streamed in. This would also require custom changes to an emulator.
  3. We use certain graphical effects, including via patches to microcode, which are not supported by most N64 emulators (including BizHawk). Also, emulators using a recompiler core may crash, as Triforce% uses self-modifying code.
Keep in mind though: these issues are in relation to whether a hypothetical TAS movie file containing all the inputs which were actually made to the console at SGDQ 2022, given that a hypothetical perfect emulator (which is another can of worms) existed and was an official/accepted emulator, should be accepted. The question here is whether Triforce%, the showcase performed at SGDQ 2022, should be accepted. One other thing to mention:
it doesn't even work on an unmodified ROM, making it impossible to reproduce
The Triforce% runs shown at SGDQ and ESA were performed on unmodified ROMs. Our other showcases of the project not involving Savestate used a mod to get ACE quickly, because neither dwangoAC nor myself have the speedrunning skill to do it. Unlike dwangoAC, I'm an outsider to the TASVideos community and I don't have a vested interest in whether the project is accepted here or not. I think it is obvious that Triforce% cannot be accepted under the current set of rules. In particular, the site seems to be all about letting people download a TAS movie file and watch it on their own emulator, which is not possible for many reasons described above. If the site wants to make some new category for things like this, great! If the community feels that it's too fundamentally contradictory to the site's purpose, no hard feelings from me.
DrD2k9
He/Him
Editor, Judge, Expert player (2222)
Joined: 8/21/2016
Posts: 1091
Location: US
TASBot showcases at various live events has been a major, if not the biggest (YouTube itself may be bigger), contributing factor of exposure for both 1) the hobby of TASing and 2) our site to the general public as well as to other speedrunning communities. I find it absurd that one of our greatest exposures has been effectively prevented from having some aspect of inclusion on the site directly. I, myself, would likely have never gotten into TASing without having seen dwangoAC and TASBot promoting both the hobby and the site. Can such showcases exist within our current publication model? Obviously, no. The reasons have already been well explained. And I agree in that they shouldn't be housed simply mixed in amongst the normal movies/publications on the site. But this doesn't mean we can't create a special space for these showcases (gruefood delight is not adequate). If we do create a special part of the site to house such runs/events, it could/should be CLEARLY noted on that page that these runs don't follow normal site rules and aren't judged as normal submissions are. That note should further include that these runs inclusion on the site is due to the awareness that such runs bring to the TASing community as a whole and to the extents of what TASing is capable of accomplishing. These showcases are TASes. They are Tool Assisted Superplays. Even when human interaction is also required, the results still require TAS inputs. Are they speedruns? Not always. Are they superplays? Typically. Do they promote TASing as a hobby? ABSOLUTELY! And they often promote our site directly. At bare minimum, i feel we should have a highlighted wiki page that at least links to the videos of the original runs/events. As a response to the idea that our site is solely for hosting entertaining TASes and world record TASes: if this is truly the case, then we should eliminate things like player profiles, player points, or anything else that's not strictly necessary to host entertaining TASes and world records. These live TASing showcases are no less valuable than player profiles. On the contrary, they are arguably more valuable to the site as a whole than player profiles or player points. Adding these showcases (with the appropriate notes mentioned above) doesn't take away from the site's goals of hosting input files for world records and entertaining TASes, nor does it lessen the value of those goals and the accomplishments of the movies that we publish through our normal publication methods. Having these showcases wouldn't suddenly make our site NOT the site that houses TASing records and entertaining TASes, nor would they suddenly become the major purpose for visiting our site. Adding these showcases does, however, allow our site to officially recognize the promotion these TASes provide for our hobby.
Noxxa
They/Them
Moderator, Expert player (4128)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
So, let's break down the intents here. • This movie does not fit in our current ruleset for any class, because all of them are beholden to several global movie rules that this submission blatantly violates, such as emulator reproducibility, dependency on human input, and not all content being included in the submitted file itself (and not even being possible to be submitted as such). Other posts already go in depth about this. • There is demand, including from TASVideos staff and the TASBot group, for TAS showcases such as this one (and previous TASBot entries for GDQs) to be published, regardless of above point. The sheer lack of compatibility with conventional movie rules (which all of our current nearly 5000 published TASes adhere to) means that the site can't even begin to try to change the rules to accomodate this movie. Anything the site would want to do here, would have to be done in complete disregard of our movie rules, because any attempt to tie those together is doomed to fail. So how would TASVideos be able to publish this movie, if it doesn't suit the movie rules for any class? Here's my proposal: Create a new "Showcase" class. Nix every movie rule for this showcase class. The only requirements would be to have something for a movie file (perhaps it doesn't even need to be a movie file; just some sort of publication file, for technical purposes), and a video file it can be published with. The only acceptance criteria is that the product is endorsed by TASVideos or an affiliated organisation (e.g. TASBot). Give Showcase publications the same rights and values as regular publications, and also add some highly promoted page somewhere that lists and details all TASVideos-affiliated showcase movies/publications and write something nice about them. I think that's the sort of attention that submissions like this deserve - and nothing less. We have a site now that we as staff should be able to do anything with. I don't think we need to be stuck thinking inside the box of movie rules. If we want to give this a place on the site, nothing should be stopping us from giving it a place on the site - especially not a set of movie rules that runs on an entirely different scope for what we normally expect out of a tool-assisted movie submission. That's trying to force a square peg into a round hole. There is no reason anymore for us to be doing that.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
nymx
He/Him
Editor, Judge, Expert player (2255)
Joined: 11/14/2014
Posts: 933
Location: South Pole, True Land Down Under
I've been debating on reviewing this or not. So, let me see if this adds to the conversation. Reviewing...(with trepidation) DwangoAC asked if I would take a look at the technical video stream with Sauraen, on the deep technical side of how Triforce% was approached. Because of that, I decided to use some of that experience to review this submission. This is one of the very few documentaries that kept me watching all the way through. Why? My background is in Electrical Engineering and Computer Science. I program for a living, while dabbling with electronics as a hobby. Additionally, I use both backgrounds to work with such devices as Micro-controllers, where both worlds give me the lowest level of control over hardware. The only other area that I wish to bring up, is my focus on the 6502/6510 microprocessor computers where I am still actively trying to write ML/ASM games that take existing concepts and add a touch of uniqueness to give revival to older and common games. Now that you know a bit about my background, it will be evident as to why I am bringing up points that interests me about this submission. First off, this work is among the best ACE I've ever seen. Even though I understand the concepts behind all the moving parts, there is no way that I could have ever discovered or performed any of this work. It is evident, that the 25+ people working on this and the 21 years to figure a way to inject and execute this code, in obviously a major accomplishment and worthy of high recognition. Second...the creation of these inputs, in regards to matching a human having super capabilities, was a great approach to making this even more authentic. I can't understand the alternate method (which I believe was using injected code to self modify itself), but being able to perform everything directly via the controllers, is a point that I wish to emphasize as having priority for acceptance. I've known for sometime that our N64 emulators are not up to the challenge of faithfully reproducing emulation that matches the console's behavior. So, being done directly on a console is absolutely more important and should absolutely override any emulation that exists. After-all, emulation should match the system. Not being able to reproduce this via a file, isn't enough when we see the proof from a GDQ demonstration on real hardware. Third...the content presented is among the highest demonstration of skill and entertainment...at least it does so for me and my technical side. I am completely blown away by the brilliance of each member, who fought to figure out such a feat. Because I've been given the honor of posting reviews, I think it would be alright for me to give my opinion on the expectations of its classification of entertainment. Basically, any acceptance of this should earn the highest level of entertainment we have to offer. So...I'm not sure that I can say enough about this submission, but I'm going to try and close this out with my points for consideration. *Acceptance: This is a touchy situation. Obviously, the rules don't allow for it. It certainly isn't re-producible in most capacities (IE Emulation, Twitch API interface for custom entries. etc..), and most of us are not going to create a set up at home to replay what we've all seen. In regards to the GDQ demonstration, there is certainly value in having this for the site. I like the fact that Samsara is going to fight for giving this a home...but what will that home look like? *Verification: In this case, emulation is not going to provide proof that something will work. As we have read/seen, N64 emulation is currently incapable of performing the actions needed to have a full movie file for verification. Because this run was done publicly on real hardware, it should stand as a reproducible item...after-all the console is the real application here. :) *Classification: For me, and confirmation from DrD2k9's post, the front end of our community is represented well by our Ambassadors, where the best of the best is showcased where ever they go. Because of that, they give TAS Videos a look of excellence that draws new members in and for people to participate. So, as Noxxa stated...we certainly could use a new category for housing these types of submissions. I know the staff will certainly figure something out soon, but as it stands...we don't have the ability to apply proper attribution for every aspect of a publication. Mind you, that this is a "Work of Art" and among a few entries that should be treated in a special way. Sorry...I don't have any suggestions on how that should be. *Technical: In the Dwango/Sauraen presentation stream...the information was mind-blowing. By the end, it was clear that the way it works (at a high-level), makes a lot of sense. But I'll re-state once again...I would have never been able to discover or recreate any of this myself; however, their approach did remind me of how I have worked, in the past with employeement. With me...when i was given a task, I would watch how things respond and eventually I would figure out its operation so that I could do the work requested of me. With this Triforce% team, they did the same thing...only more extensively. Their analysis was deep enough to recognize how the "Heap" was built for the interaction of any object in the play field. Because of this, the journey to coding that area became the starting point for pushing out the "Bootstrap" injections to eventually produce what we saw. Very fascinating stuff and extremely technical. I could certainly learn many things from this team.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
Player (13)
Joined: 6/17/2006
Posts: 510
I just remembered an incident from 2007 where cen, a prominent Zelda hacker, published an article on The Hylia claiming they have found along with JayTheHam a way to spawn arwings from ice trap chests in Ocarina of Time, along with a partial technical explanation, and even pointing out the relevant piece of code where this is possible, but without fully revealing the secret and instead leaving a cryptic clue for the readers to find the easter egg. (Unfortunately the original article appears to have been lost to time, but you can read about it in an old post of mine on the BS Zelda forums.) It turned out that this article was completely bogus; the provided disassembly of the code had incorrect comments on it, and the branch which would cause the swap to occur in the chest contents cannot be reached under normal conditions. And yet, this unverifiable claim was published on a respected gaming news website at the time. (Nowadays we know that the founder of that website, Michael "TSA" Damiani, was not yet revealed to be the notorious Zelda speedrun cheater that we know he is now, which may have played a part in the editorial process, but that's besides the point.) The point is, it doesn't matter how great the technical explanations are about something or who contributed to it if they cannot be verified independently. Again, I don't personally doubt the work by the team here, but as long as reasonable doubt remains I believe it should not be considered valid for publication on the site without a disclaimer at the very least, especially on a site like TASVideos where integrity is everything.
dwangoAC wrote:
SmashManiac wrote:
The run cannot be reproduced by an independent 3rd party because some of the data needed to do so has never been released publicly due to copyright concerns.
As was the case with SMB on SMW, site rules dictate we cannot link to ROMs and as such we also can't release the full payload for the same reason, we'd be in violation of the site's rules if we did. Instead, we've released the open source portions, and those have been independently verified.
Current site rules aside, may I suggest adding said copyrighted materials as input for the corresponding open source build toolchains? It would resolve that issue.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
SmashManiac wrote:
The point is, it doesn't matter how great the technical explanations are about something or who contributed to it if they cannot be verified independently. Again, I don't personally doubt the work by the team here, but as long as reasonable doubt remains I believe it should not be considered valid for publication on the site without a disclaimer at the very least, especially on a site like TASVideos where integrity is everything.
How do you want us to verify and reproduce a live event? Do we need to provide a proof that it has indeed happened? Do we need to create a way for that live event to happen again for other people every time they replay it?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Moderator, Senior Ambassador, Experienced player (908)
Joined: 9/14/2008
Posts: 1014
SmashManiac wrote:
The point is, it doesn't matter how great the technical explanations are about something or who contributed to it if they cannot be verified independently. Again, I don't personally doubt the work by the team here, but as long as reasonable doubt remains I believe it should not be considered valid for publication on the site without a disclaimer at the very least, especially on a site like TASVideos where integrity is everything.
I touched on this above, but this has been done twice in front of a live audience on two different consoles at two different events with different commentators (SGDQ 2022 and ESA Summer 2022). The human ACE portion will also likely be done by someone other than Savestate (we tried to have Blastermak do it but the angles are very difficult; it's likely we'll have a different human runner do that part live during MAGFest, however). Absolutely everything past that initial ACE has been done repeatedly by a number of people, although again, without the assets that Nintendo would come after us for distributing (see more below). Even then, what you're asking for is entirely unreasonable for live content; almost everything done for a live event is effectively a oneshot effort. It either works or it fails, but there's generally only one chance to show that content. Many times it's not possible to recreate what we did after that live event because the efforts usually involve multiple people coming together from around the world. A good example of this would be when we had Funkmastermp bring his mashbot creation to play Super Scribblenauts. Having said that, I'm in no way trying to shirk off verifiability or create some kind of weird Todd Rogers situation so I openly invite you to challenge anything done at a live event by talking to people who were there and saw it live or were involved in the production on the GDQ side. It won't always be possible to reach someone easily but this is all content done openly, on stage, with no trickery when it comes to really truly doing these things on real hardware. We're also extremely vocal and open about any changes that were made such as improvements for video quality, as evidenced by talking plainly about the passive analog RGB tap for better video. If you have any questions about the validity of something, just ask.
SmashManiac wrote:
dwangoAC wrote:
SmashManiac wrote:
The run cannot be reproduced by an independent 3rd party because some of the data needed to do so has never been released publicly due to copyright concerns.
As was the case with SMB on SMW, site rules dictate we cannot link to ROMs and as such we also can't release the full payload for the same reason, we'd be in violation of the site's rules if we did. Instead, we've released the open source portions, and those have been independently verified.
Current site rules aside, may I suggest adding said copyrighted materials as input for the corresponding open source build toolchains? It would resolve that issue.
Hi! You appear to again be asking me to take a significant legal risk. I will not do so. Everything I did directly with OoT during the development of the Triforce% project was, at least in the US, legal; I even did a stream where I showed my own US version 1.0 cartridge and dumped a backup copy of the ROM that I then used to do further work, demonstrating that I owned the assets in question and demonstrating through the dumping process that no encryption that would trigger DMCA was in play. To ask me to distribute those assets, even encoded as button presses, is literally asking for me to personally both violate the rules of the site and violate the law of the land. As a public face I very much attempt to live above reproach and what you're asking is at odds with that. I kindly request that you do not ask me to break the law again, and thank you for your understanding on that matter. Bringing things back to a more general reply, I'd like to redirect folks back to the Let's figure out how to publish TASBot's GDQ showcases thread; that was the place and time to discuss the type/class/category/process questions that Samsara raised back in July and I waited a very long time before submitting this run to see if anyone else had thoughts there. That thread was all about "how" to handle the general questions around event content and while I wanted to allow this thread to be more focused on conversations about Triforce% we've certainly had a lot of that chatter here as well. These are all things that have been discussed at length for years and this submission is merely the catalyst to bring the conversation back to the forefront. For my part, I would point back to my continued belief over the last many years that event content needs to be its own type of fully represented content on the site; not gruefood delight, not at stars level, definitely not competing with other rigorously vetted in-emulator content, but something at the same level of visibility as normal content with a unique earmarking. No matter how you parse it, Triforce% absolutely used Tools to Assist in a Superplay, something this site was founded on, and the fact we have narrow minded rules that are emulator bound has resulted in this on-console TAS content becoming so marginalized that it birthed the entire independent TASBot community through what amounted to forced segregation at the time, but I digress. Let's find a path forward that allows this type of TAS content to be represented, I know we can find a solution that satisfies the needs and desires of most everyone.
I was laid off in May 2023 and became too ill to work this year and could use support via Patreon or onetime donations as work on TASBot Re: and TASBot HD is stalled. I'm dwangoAC, TASVideos Senior Ambassador and BDFL of the TASBot community; when healthy, I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
dwangoAC wrote:
For my part, I would point back to my continued belief over the last many years that event content needs to be its own type of fully represented content on the site; not gruefood delight, not at stars level, definitely not competing with other rigorously vetted in-emulator content, but something at the same level of visibility as normal content with a unique earmarking. No matter how you parse it, Triforce% absolutely used Tools to Assist in a Superplay, something this site was founded on, and the fact we have narrow minded rules that are emulator bound has resulted in this on-console TAS content becoming so marginalized that it birthed the entire independent TASBot community through what amounted to forced segregation at the time, but I digress. Let's find a path forward that allows this type of TAS content to be represented, I know we can find a solution that satisfies the needs and desires of most everyone.
Back when it became a dilemma, I was for hosting this stuff on the site, but didn't realize how important it was to host it. It's not very often that something unique and good begs to join you in your journey and become a part of it. We treated it as something "too unique", even though it clearly spawned from the same curiosity that makes us tick, and it clearly existed as a part of our tool-assisted hobby. It needed to be embraced but it was rejected. Did our site become better as a result of that rejection? No. It didn't become worse than it was before (aside from creative people getting sad but when did that stop us, right?), but it also didn't become as good as it could if we have embraced this tas child initially. In my opinion, such rejections should only happen as a way to say "what you're doing is bad, keep it away from us", or at least "it's unrelated to our hobby and our community, keep it elsewhere". TASBot kinda content was good and related. We just weren't open-minded enough to invent a new site entity for it, above manually edited wiki pages, but without the need to host an emulator replay file. Thankfully we can now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Former player
Joined: 6/30/2010
Posts: 1107
Location: Zurich, Switzerland
If the copyrighted material wasn't required, this submission would be much easier to deal with for the site. Would it really be too much to ask if we required these types of submissions to work with nothing more than the unmodified game, even if we were to create an entirely new publication tier? We would already move away from the idea of only judging the TAS input itself by creating that proposed new tier, but we would at least uphold the requirement of reproducibility.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
DrD2k9
He/Him
Editor, Judge, Expert player (2222)
Joined: 8/21/2016
Posts: 1091
Location: US
andypanther wrote:
Would it really be too much to ask if we required these types of submissions to work with nothing more than the unmodified game,...
If the primary purpose of these types of runs were to be submissions on the site, then that would be a restriction worth considering (though we already allow runs of ROM hacks, which are essentially modified games). It would also make sense to require full adherence to the current site rules, IF the primary intent was submission. But, while this run has now been submitted, the primary purpose of its creation wasn't to submit to tasvideos.org. It was first and foremost created to be presented live as a form of entertainment, art, and TAS showcase. The perspectives against having these kind of runs allowable on the site seem, to me, to center around the issue of treating them as if they were any other typical submission that was created for the primary purpose of being submitted to the site. We must realize that these aren't typical submissions. They shouldn't be judged via the typical judging process. Nor should they get a typical publication as with the main runs on our site. But none of this means that we can't/shouldn't somehow acknowledge these runs and the awareness/promotion they provide to the TASing community. They need a place somewhere on our site.
Sauraen
He/Him
Joined: 10/10/2022
Posts: 4
SmashManiac wrote:
Current site rules aside, may I suggest adding said copyrighted materials as input for the corresponding open source build toolchains? It would resolve that issue.
I'm interpreting this to mean, "can you set up the build toolchain so that the user adds the copyrighted content themselves", rather than "please distribute the copyrighted content" as dwangoAC interpreted it. The answer is still no though, for a few reasons.
  • For some content, such as textures from OoT used in our custom scenes, this would be very much possible, the work just hasn't been done yet. It would be a matter of adding to a few Makefiles to extract certain textures from the input ROM in certain formats and add them to Blender scenes and C scene files. Note that contents from the user-provided input ROM are used in many places in the build toolchain already.
  • For some content, such as the Running Man boss, it could have been created in a fashion where we could have distributed all of our work without any copyrighted content, but the person who made it unfortunately did not make it that way. For the Running Man in particular, the contributor gave him an IK skeleton to make animating him easier, but this makes the custom animations incompatible with the vanilla skeleton. Therefore, in order for him to be usable, the model must be exported with the new skeleton. Since we can't distribute the model and the existing skeleton is incompatible, he can't be distributed in a usable form.
  • For some content, modifications which can't be scripted were made to copyrighted content. The primary example of this is the BotW models, where dozens of hours of work was done by another contributor and myself to simplify their meshes and convert them to the needed formats for the N64. This obviously can't be done by a script, and the "derivative work" models are still copyrighted.
With that said, the content that we're distributing is maybe 85% or so of all the content shown at GDQ, and nearly everything up to the Running Man is distributed and usable. Is there really an integrity concern that, a third party can reproduce the first half of the run and use ACE to add custom actors, cutscenes, game mechanics, and so on, but then someone thinks we might have cheated and modded the ROM in the second half? What if we replaced all the copyrighted textures with public domain ones, and the BotW models with some generic Creative Commons person models, and so on--would that still mean the run was not reproducible because we didn't inject the exact same data as we did at SGDQ?
Skilled player (1673)
Joined: 7/1/2013
Posts: 453
SmashManiac wrote:
TASVideos where integrity is everything.
Truly!
Player (13)
Joined: 6/17/2006
Posts: 510
feos wrote:
How do you want us to verify and reproduce a live event? Do we need to provide a proof that it has indeed happened? Do we need to create a way for that live event to happen again for other people every time they replay it?
I don't expect TASVideos to validate live events at all, since that's practically impossible. The tools that made those live events possible can be validated for reproducibility however. That could be something TASVideos could do if they want to go in that direction. Speaking of which...
dwangoAC wrote:
Having said that, I'm in no way trying to shirk off verifiability or create some kind of weird Todd Rogers situation so I openly invite you to challenge anything done at a live event by talking to people who were there and saw it live or were involved in the production on the GDQ side. It won't always be possible to reach someone easily but this is all content done openly, on stage, with no trickery when it comes to really truly doing these things on real hardware. We're also extremely vocal and open about any changes that were made such as improvements for video quality, as evidenced by talking plainly about the passive analog RGB tap for better video. If you have any questions about the validity of something, just ask.
...the integrity of the tools is what I'm challenging. Witness testimonies aren't sufficient for that. A good chunk of said tools has been released which is awesome, but with missing parts, some reasonable doubt will always remain related to these parts. Just to give one last example, I remember that after the Pokémon Plays Twitch event, there was a set up during a break where chat could move the camera around by posting directions, but you later revealed that it was a human operator moving the camera since the tech wasn't working that day. I'm grateful for your honesty since probably not many people would have questioned it otherwise, and it does make me trust you more in regards to your work here! However, it does prove that stage trickery can and has occurred on the GDQ stage, so it is reasonable to consider the possibility of such trickery at other times as well.
dwangoAC wrote:
Bringing things back to a more general reply, I'd like to redirect folks back to the Let's figure out how to publish TASBot's GDQ showcases thread; that was the place and time to discuss the type/class/category/process questions that Samsara raised back in July and I waited a very long time before submitting this run to see if anyone else had thoughts there.
It's kinda hard to comment on something without knowing of its existence. I generally only look at official announcements and the submission feed.
Sauraen wrote:
SmashManiac wrote:
Current site rules aside, may I suggest adding said copyrighted materials as input for the corresponding open source build toolchains? It would resolve that issue.
I'm interpreting this to mean, "can you set up the build toolchain so that the user adds the copyrighted content themselves", rather than "please distribute the copyrighted content" as dwangoAC interpreted it.
That was the interpretation that I indeed meant. Thanks for the insights on the matter!
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
SmashManiac wrote:
I don't expect TASVideos to validate live events at all, since that's practically impossible. The tools that made those live events possible can be validated for reproducibility however. That could be something TASVideos could do if they want to go in that direction. ...the integrity of the tools is what I'm challenging. Witness testimonies aren't sufficient for that. A good chunk of said tools has been released which is awesome, but with missing parts, some reasonable doubt will always remain related to these parts.
It's pointless to evaluate the tools, because it would require knowing in advance infinite arbitrary potential and inventing rules that can handle it. If we judge the tools, verifiability is not the only thing we might want to be judging. Legality, authorship, how well it suits the task, how much research was put into it, how incredible of a technical achievement it is. And all of that is pointless to evaluate if all we want to host is a record that a TAS related live event has happened, and a video of what was shown on it. It's for archival purposes, and to give those recordings some exposure and recognition. We're not a technical guru site, so we don't have to judge the technology itself. We even have little to no judges who can understand how this stuff works! Authors sharing whatever is legal to share about their work is enough to celebrate the technical miracle itself.
SmashManiac wrote:
Just to give one last example, I remember that after the Pokémon Plays Twitch event, there was a set up during a break where chat could move the camera around by posting directions, but you later revealed that it was a human operator moving the camera since the tech wasn't working that day. I'm grateful for your honesty since probably not many people would have questioned it otherwise, and it does make me trust you more in regards to your work here! However, it does prove that stage trickery can and has occurred on the GDQ stage, so it is reasonable to consider the possibility of such trickery at other times as well.
Since real hardware is involved, it's impossible for us to verity that it's actually working, and how.
SmashManiac wrote:
It's kinda hard to comment on something without knowing of its existence. I generally only look at official announcements and the submission feed.
Kinda hard to productively discuss a technical submission without looking at the very first link in its text.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Sauraen
He/Him
Joined: 10/10/2022
Posts: 4
SmashManiac wrote:
...the integrity of the tools is what I'm challenging. Witness testimonies aren't sufficient for that. A good chunk of said tools has been released which is awesome, but with missing parts, some reasonable doubt will always remain related to these parts.
100% of the tools are publicly released. What is not released is certain copyrighted data which was injected. If you would like to review our tools, you are more than welcome to; if you have any questions about where things are (the TAStm32 custom firmware and the scripts for the host computer are in other public repos separate from the triforce-percent Github), feel free to reach out. I think the only way to verify the integrity of a live event would be to have a TASVideos.org representative present and examining hardware and software at the live event. They would need to check for things like, that we didn't put a flashcart PCB into the OoT cart shell, or a Raspberry Pi into the N64 shell. They would also have to independently verify GDQ's extremely complex signal chain, to ensure the game video and audio were actually coming from the console rather than from some recording. Realistically, either this person is dwangoAC and the verification is already done, or the verification is impossible for past events and very likely infeasible for future events, meaning live TAS content would continue to be excluded from the site.
andypanther wrote:
Would it really be too much to ask if we required these types of submissions to work with nothing more than the unmodified game
What aspect specifically are you referring to? Triforce% uses the unmodified game; it was played on real, original OoT 1.0 US carts at SGDQ and ESA. Is the "nothing more than" you're referring to the requirement of the TAS replay device with custom firmware (i.e. not emulator compatible)? Is it the fact that a human speedrunner is needed to set up the initial state? Is it the fact that some of the injected data is not released due to copyright? In any case, "would it really be too much to ask if we required these types of submissions to [do anything]" makes complete sense if the site is making rules which are guiding what people do and don't do in TASes being created for submission to the site. It does not make sense if there is an existing, already completed project which was not created with the site in mind. Rules established now can't put constraints on our design decisions starting the project almost three years ago--all they can do is accept or reject the submission as of now. Furthermore, the need for a human speedrunner is a reality of the console/game which we could not work around. If the TASVideos.org movie rules had been somehow unavoidably imposed on us in 2019-2020, Triforce% would have never existed.