(Link to video)
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!

Former player
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
You are free to create whatever TAS you want. But you can't expect every TAS to be publishable. I know that there is this attitude around this submission that the goal of the community now is to find a way to publish this. I disagree with that, I don't think any TAS just has to be published no matter what. I see integrity as the most important aspect of this site, the idea that all published TASes have been verified by the community and anyone visiting the site could theoretically verify them as well, should they be willing to go through the required technical setup. TASing is hard to explain to people unfamiliar with it, there are so many misconceptions around it ("It's cheating!", "It's a robot playing the game!"), that's why demonstrating the integrity of the published TASes is so essential. It could be that a majority of the community wishes to change the movie rules or just create some new tier that bypasses them. I'm skeptical if that's a good idea, but it also wouldn't be the end of the world. Also, I'd still be interested to know if runs that don't sync for anybody but the author could then find a home on the site. The situation would essentially be the same as here, as long as those runs are popular enough.
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.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
andypanther wrote:
I disagree with that, I don't think any TAS just has to be published no matter what.
Our goal is not having any TAS published no matter what.
andypanther wrote:
I see integrity as the most important aspect of this site, the idea that all published TASes have been verified by the community and anyone visiting the site could theoretically verify them as well, should they be willing to go through the required technical setup.
Why is it the most important aspect in your opinion? What about all kinds of subjective joy, from how entertaining something looks, to how it can inspire new incredible works? What about things that actually make people TAS at all? I've never heard of someone making a TAS because they love integrity so much, more so than puzzle solving, doing research, playing around, and other things involved in TAS creation.
andypanther wrote:
TASing is hard to explain to people unfamiliar with it, there are so many misconceptions around it ("It's cheating!", "It's a robot playing the game!"), that's why demonstrating the integrity of the published TASes is so essential.
I'm sure people who managed to understand what TAS is, technically, will be able to understand what a TAS-bot-like presentation is.
andypanther wrote:
Also, I'd still be interested to know if runs that don't sync for anybody but the author could then find a home on the site. The situation would essentially be the same as here, as long as those runs are popular enough.
I don't see the similarities.
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.
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1126
Location: Ukraine
I can just shrug of all those descriptions and strange game goals. I'm not interested in the fate of this submission as well as any "showcase" of this kind. So, does it beat the game in the fastest time? Judging by the video, it makes sense to just beat the actual game, not recreating/unlocking unused content, which used to be in beta version of the game. Why was this video provided anyway? To show ACE potential? I can summarize that ACE can basically do anything to the game as long as such a gap is discovered and it (or console) has enough memory to store the code. But in terms of speedrunning, no matter human or predefined input does that, ACE goes way, way beyond that. It's like hacking the game without modifying the ROM is not considered hacking. Sorry, maybe I'm wrong, but that's how I see this.
TASing is like making a film: only the best takes are shown in the final movie.
Memory
She/Her
Site Admin, Skilled player (1523)
Joined: 3/20/2014
Posts: 1762
Location: Dumpster
So the main issues are "cannot sync on an emulator" and "contains material that we cannot release for various reasons" from my understanding. It runs on an unmodified OOT cartridge so it's a traditional TAS by any reasonable definition. Personally I don't see an issue with a different sort of hosting of this sort of run where we can't really provide a traditional input file provided there's some form of notability.
Dimon12321 wrote:
I can just shrug of all those descriptions and strange game goals. I'm not interested in the fate of this submission as well as any "showcase" of this kind. So, does it beat the game in the fastest time? Judging by the video, it makes sense to just beat the actual game, not recreating/unlocking unused content, which used to be in beta version of the game. Why was this video provided anyway? To show ACE potential? I can summarize that ACE can basically do anything to the game as long as such a gap is discovered and it (or console) has enough memory to store the code. But in terms of speedrunning, no matter human or predefined input does that, ACE goes way, way beyond that. It's like hacking the game without modifying the ROM is not considered hacking. Sorry, maybe I'm wrong, but that's how I see this.
It's a playaround that doesn't aim for speed. Those have existed on this site for a long time.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Fortranm
He/Him
Editor, Experienced player (780)
Joined: 10/19/2013
Posts: 1115
Not being reproducible on an emulator doesn't sound like an issue IMO if there is a input file of some sort that can be used for playing back on a console, but I guess this is a moot point if there won't be an input file of any sort for this submission for other reasons.
Noxxa wrote:
That's trying to force a square peg into a round hole.
This is exactly what I'm thinking when I see the notion of this being "published", assuming it refers to the last step of the established Submission -> Judgement -> Publication workflow. Why make it an end goal to fit it into this workflow that starts with Submission when it is guaranteed to lack the core component of it? I definitely agree it's a good idea to feature presentations like this in some form on site, but it's probably better to not use this workflow for it altogether. IMO the best solution might be to have a wiki page (with subpages if necessary) that documents TAS presentations at major events with a tab at the top navigation bar of the site that leads to it. Probably would make sense to limit the editing privileges to involved members for each subpage if each presentation ends up getting one.
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Fortranm wrote:
This is exactly what I'm thinking when I see the notion of this being "published", assuming it refers to the last step of the established Submission -> Judgement -> Publication workflow. Why make it an end goal to fit it into this workflow that starts with Submission when it is guaranteed to lack the core component of it? I definitely agree it's a good idea to feature presentations like this in some form on site, but it's probably better to not use this workflow for it altogether. IMO the best solution might be to have a wiki page (with subpages if necessary) that documents TAS presentations at major events with a tab at the top navigation bar of the site that leads to it. Probably would make sense to limit the editing privileges to involved members for each subpage if each presentation ends up getting one.
This is similar to what I used to think about this for a long time - it makes sense, but at this point I don't think it does the presentations enough justice like that. Being an actual site publication has a lot of perks in terms of findability (being attachable to game pages, user profiles, tags, system pages, and whatnot), easy ways to maintain documentation and necessary files for every such presentation, and also some other benefits. I don't think we need to stray away from our system of publication, when the aimed goal for these sorts of submissions is exactly that - to be published in a proper form on this website.
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.
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
Fortranm wrote:
I guess this is a moot point if there won't be an input file of any sort for this submission for other reasons.
We've provided everything except Nintendo assets in a form that anyone can reproduce given enough human skill (or by using the ACE shortcut patch which changes 271 bytes), and others have independently built the romhack version and reported their results. Because of the size, it's currently stored in the GitHub repo linked in the description. We could in theory make a polyglot file and put the compressed ~82 MB of data (or 1.2 MB of what's injected over the controller ports) into it but it would require allowing submission files to be that large (it currently claims it's limited to 500k). Still, we *have* released everything we possibly can. Even the actual submission file is the ACE portion but for an emulator (it will not work on a real console due to accuracy and other issues).
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Bigbass
He/Him
Moderator
Joined: 2/2/2021
Posts: 157
Location: Midwest
I've followed this topic over the past couple weeks. I see myself in a situation where I don't know for certain what should be done, but I still want to share my thoughts. It's obvious to me that there are many different ideas and points of view involved in this discussion. On one hand, I understand those who are concerned about the idea of putting aside community-accepted rules in order to allow this submission, and others like it, to be published (in some form) on this site. This includes the concerns regarding reproducibility/verifiability. But on the other hand, I also understand the desire to bring this kind of content into light, as I see it as yet another form of TAS art. Over the past year, TASVideos has undergone many changes, both in the site itself, but also in the content that has been submitted and published. Every step of the way, community members have weighed in, bringing their own unique perspectives to the table. There may very well have been some decisions/changes that not everyone was satisfied with, which I think is inevitable given how we are all different in one way or another. However, the spirit of TASVideos remains strong in all of us: to curate Tool Assisted Speed/Superruns. One of those recent changes was the introduction of the Playground class. While Playground is still in its early stages, I think it is an important idea to think about in the context of this submission. Despite long standing site rules, this class was created with significant community backing so that the many creative TASes normally disallowed due to said rules, could be accepted onto TASVideos in some form. While it's true that some rules still apply to Playground, they exist so that the movies accepted for this class must still be of good quality and integrity (which, as I recall, were two major concerns that were discussed by the community.) Given the addition of that class, I believe the acceptance of this submission should not solely focus around whether or not it adheres to site rules. Just as Playground movies are made for different goals than the typical publication, so too this content was made with a different goal in mind. Again, I don't know what how precisely this situation should be handled. But, I do see this submission as an expression of art, in the same vein as every other movie that exists on this site. Yes, it certainly differs in content and goal compared to the typical idea of a TAS movie, but that doesn't necessarily mean it is less important or less deserving of attention or curation.
TAS Verifications | Mastodon | Github | Discord: @bigbass
Arc
Editor, Experienced player (768)
Joined: 3/8/2004
Posts: 534
Location: Arizona
I had not yet seen the Triforce% presentation at SGDQ when I commented in the Pokemon Plays Twitch thread:
Arc wrote:
The issue comes down to the basic philosophy of the site. The original idea is to play games so beautifully that the result can be considered a work of art. The rules emphasize the manner of playing the game. But over 20 years, speedrunning has become more stale, and the rules are limiting artistic potential. And that is how you end up getting submissions like #7390: Arc's NES The Legend of Zelda "Kino" in 04:14.51, which does not complete the game or even really "play" it, but it pushes the concept of "video games as art" in a new direction. For something "beyond input" like #4947: dwangoAC, Ilari & p4plus2's SGB Pokémon: Red/Green/Blue/Yellow Version "Pokemon Plays Twitch" in 08:11.42, the closest real-life analogy is avant-garde or experimental films. The best example that I know of is Mothlight (1963), which is a short film that was created without using a camera. If a film can be made outside of standard methods, then a TAS can be as well. Publish it as an entirely separate class from other movies, and hold it to a high standard of artistic and technical merits for publication. I don't think we need 1000+ word arguments about breaking rules or whatever. If the sentiment favors including more experimental art, then create a new experimental class (not playground) and publish. Bada bing bada boom.
This Triforce% presentation adds more context to those comments. I've been around since the very beginning in November 2003 and have seen basically everything. This Triforce% presentation is the first thing that really made me feel the way I did when I first saw Morimoto's Super Mario Bros. 3 video. It is the spark of an artistic revolution. When an idea like this one is released to the world, it can't be stopped. There will be a movement in the new direction. And the reason is that this Triforce% presentation has restored the soul to TASing. Back in 2003, the concept of achieving 'a perfect run' of a game was full of the best of the human spirit because there was seemingly unlimited potential to dream up ingenious ways to save time. And a lot of amazing movies have been made. But now the big games have been seemingly exhausted of potential after so much effort has gone into them. And the human creative element has faded because now it is often bots that make millions of rerecords to find the fastest method. I'm burned out on the pursuit of technical, numerical perfection. Conceptually, I think that my NES The Legend of Zelda "Kino" movie very much aligns with this Triforce% presentation. Of course mine did little more than demonstrate an idea; this Triforce% presentation is truly "kino," the pièce de résistance. Earlier in this thread, Noxxa mirrored my earlier comment—create a new experimental class to publish exceptional artistic works like this one where normal rules don't apply. But perhaps as a compromise with the traditional purists, we could call the official presence of these experimental movies on the site something other than 'publication,' so that we (i.e., the people supporting this artistic revolution) could technically claim that they weren't 'published' since they violated site rules, but in reality this would just be lexical trickery. I've been using the word 'presentation' throughout this post, which is maybe the best option. ('Special presentation' is commonly used in cinema.) It could also be called a 'showing,' 'creation,' 'production,' or perhaps 'performance.' So the traditionalists could say, without contradicting their principles, that they don't want to see this submission 'published' on the site, but they accept seeing this submission 'presented' on the site (so technically it's not published but in reality it is exactly like a publication). But I am also fine with outright calling them publications in a new class.
Sauraen
He/Him
Joined: 10/10/2022
Posts: 4
Arc wrote:
'presentation' throughout this post, which is maybe the best option. ('Special presentation' is commonly used in cinema.) It could also be called a 'showing,' 'creation,' 'production,' or perhaps 'performance.'
We have been calling it a performance. It involved heavily rehearsed actions, memorized speeches, taking the audience into and through an alternate reality and then lifting the curtain at the end, cues for off-screen tech folks (the person SSH'd into TASBot's eyes, and the GDQ staff member controlling the Twitch overlay, to change them at key moments), Staff Roll and bows at the end, costume choices, we even discussed makeup (like TV makeup, not for beauty reasons) but ended up not doing it. This thread is not about whether Triforce% is accepted to TASVideos or not, but how it will be accepted. The admins have already decided that it will be accepted. Again I will emphasize that I don't have any personal stake in this decision: I'm not in the TASVideos community, our project was already successful, it will have basically no impact on my life whether there is a page on this site about it or not. And in fact, having the project banned because it was too outside-the-box might be a tempting badge of honor. It seems there are two main objections from the community: that Triforce% breaks a bunch of rules, or that it's not really about the rules but that the site's principles of integrity must be maintained, meaning reproducibility. Maybe we can figure out a way to recruit some speedrunner, get them to learn the setup, send them a TAStm32, and have them independently reproduce most/all of the run. For those who raised this objection, would this be good enough? Or would it have to be reproducible by any person on the internet, with no speedrunning skill and no hardware replay device (which is not possible, meaning the requirement of reproducibility actually means Triforce% should never be accepted)?
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Is data input through control inputs seriously a copyright concern? It's an unmodified ROM, right, so the payload is input through controls. A) Nintendo would likely never figure this out let alone act on it However, okay, we'll run with that: B) It doesn't run on emulator anyways so 99% of people wouldn't download the movie file C) Let a site admin run the movie on a different TASBot and call it a day? Verified, but not publicly downloadable. This is a playaround anyhow with massive time losses doing other activities, so it's not like it's a race anyhow. Man, just found this - and what a discussion. I'm moreso on team "if there ain't a file, it's a denial". I also think it is worth noting not everything needs to be accepted to TASVideos. It's already been seen by a bazillion people... is there really a benefit to having it on the site, let alone performing massive site changes to accomodate one movie out of thousands? Additionally, will those changes potentionally compromise future standards of REAL runs? Honestly, deny it and move on. It's a cool piece and it's on YouTube. Good enough. Also, with the other performances, why not just dump the input properly to a file? Is it because it's running on console? Then run on emulator or don't submit. Doesn't seem that hard.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Sauraen wrote:
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.
This is the way.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
OtakuTAS wrote:
I also think it is worth noting not everything needs to be accepted to TASVideos. It's already been seen by a bazillion people... is there really a benefit to having it on the site, let alone performing massive site changes to accomodate one movie out of thousands? Additionally, will those changes potentionally compromise future standards of REAL runs? Honestly, deny it and move on. It's a cool piece and it's on YouTube. Good enough..
I've sat on whether or not to respond to you and I'll admit I was pretty annoyed. Let's get a few things out of the way upfront: - This is a high profile example, but it's not the only one by a longshot - I'm not the only example here; just this week at GDQ there's an amazing Celeste TAS presentation by an independent community - Presentations and displays of TAS content with commentary are their own unique form of entertainment that can absolutely stand shoulder-to-shoulder with straight TAS's with no commentary - We have a long history of TAS content with commentary, albeit usually with just text in certain emulator movie file formats but also including some YouTube encodes with commentary; this type of presentation is very much adjacent to that - Excluding content that is very much Tool-Assisted Speedrun and Superplay content from a site dedicated to that is not in the best interests of the site and only serves to box the site into a corner where only very specific sterile content is allowed and the site is prevented from growing I realize I have some pretty biased and very strong opinions on this topic but at the same time you brought up a specific concern, so let's address the fear you brought up. I'm not in favor of any changes that compromise standards on what could be described as traditional TAS content which is why I've consistently pushed to clearly label this type of presentation / commentary content all the way out to using a different URL letter instead of M at some point, preferably with filtering options on the site so folks who only want to be exposed to the "pure" content they prefer don't have to be worried about seeing it. Change is scary but I believe we can work together to meet the needs of everyone here and despite my pushback to your points I do value your perspective and desire to ensure this doesn't take anything away from what you enjoy about the site. The thread at Thread #23412: Let's figure out how to publish TASBot's GDQ showcases is almost certainly the right place to continue this discussion and I'm looking forward to seeing this submission move forward at some point. Thanks again to everyone who has worked on solutions for all this!
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
CoolHandMike
He/Him
Editor, Reviewer, Experienced player (636)
Joined: 3/9/2019
Posts: 582
Impressed at the entertainment value of this. Not a fan of the whole event with all the distractions of people talking, clapping, etc and video elements changing all over, but what they did was very cool. I also remember being intrigued by that one a while back Twitch plays Pokemon. I remember putting in my commands, but it was such a confused mess it was a miracle that thing actually finished.
discord: CoolHandMike#0352
Joined: 8/4/2023
Posts: 1
Hi! I’m an ocarina of time speedrunner that was not part of the team that made this but I can say that everything released by them works on original console. Sauraen sent me a TAStm32 v2 board and helped me set up the run files, if there’s anything I can do to hopefully get this run a little closer to verification I’d be glad to help out :)
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
dwango, I would like to apologize for my tone in the earlier posts now that this has bumped up again. I was shocked to read my own comments and the tone they were written in. Unfortunately I was in a very bad place from February to April in life, and it clearly also affected my attitude on the site. Apologies. I do think this should be accepted, hopefully (again) without major site changes.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Player (50)
Joined: 4/1/2016
Posts: 285
Location: Cornelia Castle
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.
If you can't link to roms, and a payload in itself is not a rom, it doesn't make sense that the full payload can't be released. Same for this submission.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Bigbass
He/Him
Moderator
Joined: 2/2/2021
Posts: 157
Location: Midwest
DJ_Incendration 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.
If you can't link to roms, and a payload in itself is not a rom, it doesn't make sense that the full payload can't be released. Same for this submission.
The payload is indeed not strictly a rom, but it does contain copyright protected materials. As such, it still falls under the same rule.
TAS Verifications | Mastodon | Github | Discord: @bigbass