Tool-assisted speedrunning var siteUrl = 'https://www.cold-takes.com'; var localTheme = localStorage.getItem('dawn\_theme'); switch (localTheme) { case 'dark': document.documentElement.classList.add('theme-dark'); break; case 'light': document.documentElement.classList.add('theme-light'); break; default: break; } { "@context": "https://schema.org", "@type": "Article", "publisher": { "@type": "Organization", "name": "Cold Takes", "url": "https://www.cold-takes.com/", "logo": { "@type": "ImageObject", "url": "https://www.cold-takes.com/favicon.ico", "width": 48, "height": 48 } }, "author": { "@type": "Person", "name": "Holden Karnofsky", "image": { "@type": "ImageObject", "url": "https://www.cold-takes.com/content/images/2021/07/HK-headshot-current---compressed-1.jpg", "width": 1600, "height": 1067 }, "url": "https://www.cold-takes.com/author/holden/", "sameAs": [ "https://www.cold-takes.com/about/" ] }, "headline": "Tool-assisted speedrunning", "url": "https://www.cold-takes.com/tool-assisted-speedrunning/", "datePublished": "2021-11-19T21:20:43.000Z", "dateModified": "2021-12-07T19:04:00.000Z", "image": { "@type": "ImageObject", "url": "https://www.cold-takes.com/content/images/2021/06/rockman1-1-1.png", "width": 1437, "height": 1080 }, "description": "I'm going to try an even harder sell than sports here.

A tool-assisted speedrun [https://en.wikipedia.org/wiki/Tool-assisted\_speedrun],
or TAS, is the theoretically fastest-known possible playthrough of a video game.
A TAS is not performed by an actual person with a controller. Rather, it is
assembled mostly using a video game emulator that moves at extreme slowness
(frame by frame) so that perfect precision can be achieved. Glitches are
exploited, intentional deaths are taken to save time, etc", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://www.cold-takes.com/" } } .gh-post-upgrade-cta-content, .gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px; } .gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw; } .gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0; } .gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0; } .gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px; } .gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600; } .gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92; } .shaded-table { color: #000000; border: 1px solid; vertical-align: top; } .shaded-table a { color: #0000dd; } .sticky-subscribe-div { z-index: 1000; position: fixed; bottom: 25px; right: 25px; max-width: 500px; overflow: hidden; opacity: 1; } .sticky-subscribe-button { cursor: pointer; padding: 20px; background: var(--brand-color); color: var(--white-color); border-radius: 50px; border-style: none; } .subscribe-overlay { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2000; display: flex; justify-content: center; align-items: center; background: var(--white-color); opacity: 0; transition: opacity 0.3s ease-in; pointer-events: none; } .subscribe-overlay:target { z-index: 2001; opacity: 0.95; pointer-events: auto; } .subscribe-form { margin: 1.5em 0; padding: 6.5vh 7vw 8vh; border-style: solid !important; border: var(--mid-gray-color); border-radius: 10px; text-align: center; } .subscribe-overlay-title { display: inline-block; margin: 0 0 10px 0; font-size: 3rem; line-height: 1.15em; color: var(--darker-gray-color); } .subscribe-overlay-description { margin: 0 auto 50px; max-width: 500px; color: var(--darker-gray-color); font-size: 2rem; line-height: 1.3em; opacity: 0.8; } .subscribe-form .form-group { align-self: stretch; display: flex; } .subscribe-email { padding: 10px; border: 1px solid; border-color: var(--darker-gray-color); font-size: 1.8rem; line-height: 1em; font-weight: normal; user-select: text; transition: border-color 0.15s linear; -webkit-appearance: none; } .subscribe-form .subscribe-overlay-button { word-break: normal; position: relative; display: inline-block; margin: 0 0 0 10px; padding: 0 20px; height: 43px; outline: none; font-size: 1.5rem; line-height: 39px; font-weight: 400; background: var(--brand-color); border-radius: 5px; color: var(--white-color); } .subscribe-form .button-loader, .subscribe-form .message-success, .subscribe-form .message-error { display: none; } .subscribe-form .loading .button-content { visibility: hidden; } .subscribe-form .loading .button-loader { position: absolute; top: 0; left: 50%; display: inline-block; margin-left: -19px; transform: scale(0.7); } .subscribe-overlay .loading .button-loader { top: 5px; } .subscribe-form .button-loader svg path, .subscribe-form .button-loader svg rect { fill: var(--white-color); } .subscribe-form .success .message-success, .subscribe-form .invalid .message-error, .subscribe-form .error .message-error { display: block; margin: 1em auto 0; max-width: 400px; color: var(--red-color); font-size: 1.6rem; line-height: 1.5em; text-align: center; } .subscribe-form .success .message-success { display: block; color: var(--darker-gray-color); } .subscribe-form .invalid .message-error, .subscribe-form .error .message-error { display: block; } @media (max-width: 650px) { .subscribe-form-title { font-size: 2.4rem; } .subscribe-form-description { font-size: 1.6rem; } } @media (max-width: 500px) { .subscribe-form form { display: flex; flex-direction: column; } .subscribe-form .subscribe-overlay-button { margin: 0 0 0 0; } .subscribe-form .form-group { display: flex; flex-direction: column; width: 100%; } .subscribe-form button { display: flex; margin: 0 0 0 0; width: 100%; } } .subscribe-close-button { position: absolute; top: 16px; right: 20px; z-index: 2000; display: block; width: 40px; height: 40px; } .subscribe-close-button:before { content: ""; position: absolute; top: 20px; right: 4px; display: block; width: 32px; height: 1px; background: var(--darker-gray-color); opacity: 0.8; transform: rotate(45deg); } .subscribe-close-button:after { content: ""; position: absolute; top: 20px; right: 4px; display: block; width: 32px; height: 1px; background: var(--darker-gray-color); opacity: 0.8; transform: rotate(-45deg); } .subscribe-close-button:hover { cursor: default; } /\*.message-success, .message-error, .message-loading { display: none; }\*/ /\*.message-success .success { visibility: visible; display: block; opacity: 1; } .message-error.error { visibility: visible; display: block; opacity: 1; }\*/ /\*.success .message-success, .error .message-error, .loading .message-loading { visibility: visible; display: block; opacity: 1; }\*/ /\*For TOC\*/ @media (min-width: 1200px) { .sticky-visible .sticky-toc { visibility: visible; opacity: 1; transform: translateY(0); } .toc-opened .sticky-toc { visibility: hidden; } } /\*.gh-portal-triggerbtn-iframe { } .gh-portal-triggerbtn-wrapper { background: #0000ff !important; } .gh-portal-triggerbtn-container { background: #0000ff !important; height: 10px !important; } \*/ .theme-dark:root { \--green-color: #66ff33 !important; \--orange-color: #ff5c33 !important; \--red-color: #ff3333 !important; \--purple-color: #ff00ff !important; \--brand-color: #5ceaff !important; \--white-color: #18141f !important; \--primary-text-color: #fff !important; \--secondary-text-color: #fff !important; } .feed-visibility-false { display: none; } /\*.feed-visibility-true { display: none; }\*/ :root { \--brand-color:#0000dd; \--white-color:#ffffff; \--primary-text-color:#1a1a1a; \--secondary-text-color:#1a1a1a; \--orange-color: #ff6600; \--purple-color: #cc33ff; } blockquote { font-weight: unset; letter-spacing: normal; font-style: normal; text-align: inherit; } table { border: 1px solid; border-collapse: collapse; white-space: unset !important; width=200px !important; } table td { border: 1px solid; border-collapse: collapse; } .theme-dark .CT-thumb { transform: translate(20px,0px); } .theme-light .CT-thumb { transform: translate(0px,0px); } /\*.u-text-format h3 { color: var(--darker-gray-color) ; }\*/ //Detect theme var existingTheme = localStorage.getItem('dawn\_theme'); if (!existingTheme) { if(navigator.platform.indexOf('Win') > -1) { existingTheme = "light"; } else if(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { existingTheme = "dark"; } else if(window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) { existingTheme = "light"; } } //Implement light/dark theme if(existingTheme == "dark") { ctdark(); } else if(existingTheme == 'light') { ctlight(); } window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TZK0WDB1DH'); var clicky\_site\_ids = clicky\_site\_ids || []; clicky\_site\_ids.push(101323562); ![Clicky](//in.getclicky.com/101323562ns.gif) :root {--ghost-accent-color: #888888;} [Cold Takes](https://www.cold-takes.com) [About (+highlights)](https://www.cold-takes.com/about/) [Most Important Century](https://www.cold-takes.com/most-important-century/) [About (+highlights)](https://www.cold-takes.com/about/) [Most Important Century](https://www.cold-takes.com/most-important-century/) [Subscribe (free)](#subscribe) [Subscribe (free)](#subscribe) [Subscribe (free)](#subscribe) [Cold Takes](https://www.cold-takes.com) - Tool-assisted speedrunning By [Holden Karnofsky](https://www.cold-takes.com/about/ "Holden Karnofsky") Nov 19, 2021 6 min read Tool-assisted speedrunning ========================== ![Tool-assisted speedrunning](/content/images/size/w960/2021/06/rockman1-1-1.png) I'm going to try an even harder sell than sports here. A [tool-assisted speedrun](https://en.wikipedia.org/wiki/Tool-assisted_speedrun), or TAS, is the *theoretically* fastest-known possible playthrough of a video game. A TAS is not performed by an actual person with a controller. Rather, it is assembled mostly using a video game emulator that moves at extreme slowness (frame by frame) so that perfect precision can be achieved. Glitches are exploited, intentional deaths are taken to save time, etc. As Wikipedia says, "rather than being a branch of e-sports focused on practical achievements, tool-assisted speedrunning concerns itself with research into the theoretical limits of the games." Watching one can be fun if you know the game (particularly if it's one you struggled through as a kid or adult). But what's even more fun IMO is reading about them - seeing the incredible amount of work, dedication, problem-solving, teamwork, even brilliance and heroism that goes into ... taking a fraction of a second off of the best-known completion time for some crappy ancient video game. I'd guess that in some cases, a single speedrun takes more time investment than it took to create the video game in the first place. It really says ... something? ... about the world we live in. TASes haven't been written about much, so I'm going to give a pretty random example, which is from [this Mega Man (Rockman) 2 run](http://tasvideos.org/2162S.html) that I read up on when I first discovered the phenomenon. The specifics won't make any sense (they don't to me), and I've gone ahead and bolded a few parts to get the picture of just how much effort went in. > > This time around Rockman 2 has been maximized to it's end, so far that only few people can imagine. Making this movie **required many years of work and hundreads of different investigations, plannings and trendemous amount of time and copypastings.** After doing the previous run I heard news about the other techniques ... About a year after I was able to perform Crashman's scrolling by 3xItem1s and I got excited about it and I contacted Bisqwit after my great success. Not so long after Bisqwit said that he was able to bot it to work with 2xItem1s so I began to continue my progress further and further. Somewhere around the progress I spotted some improvements I wasn't even seen before and I had to many stages behind to the Flashman's stage because I found a possibility to break something that affected to your waiting time after boss was beaten (This was found by playaround when I was bored and used different subpixel positionings) ... After that Japanese player called cstrakm found a technique to Airman's stage to get flying air devils to disappear just by pressing (left and then right) in the first possible frame. This was something special because I haven't ever seen that it works on any enemy ... About month or two later in december **FinalFighter contacted me if I would agree if he puts my movie in the public in Japan to search for persons that haves much experience with FCEUX and botting.** Not for so long after FinalFighter contacted me and said that TaoTao have been trying to solve the mystery and he did. TaoTao was able to make Bubbleman's downscroll ... and that version was **12 frames [less than 1 second] faster.** About or over a week later I got a message from FinalFighter that Japanese player pirohiko solved the scrolling with 2xItem1s, 2xCrabs and it was 112 frames faster! and after that with four metal blades! ...and so on my progress continued and continued along with other players and I finished it.\_ > > > (This timeline "may not be 100%" correct because this is everything I can remember, there were **countless of days between anything and sometimes I was stuck for many months, like Crashman for a year, Bubbleman almost a year or so. So my memory got a bit rust**)\_ > > > This is not the original Mega Man 2 TAS; it is the 6th one posted to the site. **All of this work was done to beat the previous Mega Man 2 runthrough by 28.21 seconds.** (Since then, it's been improved by [about another minute](http://tasvideos.org/4410M.html).) A better-known example, though not technically a TAS (it's an attempt to minimize button presses rather than minimizing time), is this video on [how to get through a particular Super Mario 64 level while pressing the A button only "0.5 times](https://www.youtube.com/watch?v=kpk2tdsPh0A&ab;_channel=pannenkoek2012)." Known for the line, around 10:30: "Now you're probably wondering what I'm going to need all this speed for. After all, I do build up speed for 12 hours. But to answer that, we need to talk about parallel universes." And some videos of actual TASes, though you're probably best off looking through their [list of "starred" runs](http://tasvideos.org/Movies-Stars.html) for a game you personally have played: * [Super Mario 64](http://tasvideos.org/3264M.html), an extremely long game that has been cut down to under 5 minutes. "As with many other runs on this site, the goal of pure speed has resulted in the complete breaking of the game. Very little of the game's normal play remains." Unlike most TASes, there is a helpful [history of the run](http://tasvideos.org/SM64TASHistory.html) with explanations of different breakthroughs (usually explanations of what's going on are extremely esoteric, harder for me than following academic papers). * [Super Mario 3](http://tasvideos.org/3922M.html) in 10:24.34, another relatively well-known one. * [Mega Man 2](http://tasvideos.org/4410M.html) is a solid example of the genre, discussed above. * [Mega Man 1](http://tasvideos.org/4131M.html) is a horrifying glitchfest that may make your eyes bleed. If Mega Man 2 is Superman, Mega Man 1 is Neo. From the author's comments: "Of course, upon watching this movie, one does have to question something... is it Mega Man saving the world? Or Dr. Wily [the villain] trying to save it from absolute destruction?" * [Mega Man 3, 4, 5 and 6 beaten simultaneously with the same sequence of button presses in 39:06.92](http://tasvideos.org/Game/nes-mega-man-3-4-5--6.html). As in, when the (superhuman) "player" presses "A" or "down" or whatever, it gets pressed in all four games at the same time. They still beat all four games faster than a normal person can beat any of them. I've only watched random parts of this, but check it out if you like viewing things you know you will never comprehend. The TAS community has developed a bunch of science-type norms: "authors" make "submissions," which are judged by [extensive guidelines](http://tasvideos.org/JudgeGuidelines.html) and "published" only if they are validated, better than the previous state-of-the-art, *and* (usually) not clearly improvable. I think TASes are a great metaphor for science, and give a much better feel for how I imagine science progresses than most stories about actual science. They demonstrate how a subculture can arise that consists of obsessives doggedly working (and collaborating) to push the frontier of understanding and performance on ... absolutely anything, for no reason other than "Hey, I think I might be able to do/understand this random thing 0.1% better than anyone else has before (and it's OK that someone else will take my place the following week)." They also demonstrate how that dogged work includes obsessively looking for weird edge cases one can exploit toward the goal, leading to "magical" seeming results. In speedrunning, this means finding ways to clip through walls and otherwise glitch the game in ways clearly not intended by the game designer; in science, this means stuff like nuclear power and space exploration. I think the analogy's pretty much perfect. I think that's part of why I find TASes kind of breathtaking, simultaneously inspiring and terrifying. If we can complete Mario 64 without even collecting a star, we can probably someday [abandon our physical bodies entirely](https://www.cold-takes.com/how-digital-people-could-change-the-world/). [![Twitter](https://www.cold-takes.com/content/images/2021/06/ct-twitter-square.png)](https://api.addthis.com/oexchange/0.8/forward/twitter/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [![Facebook](https://www.cold-takes.com/content/images/2021/06/ct-facebook-square.png)](https://api.addthis.com/oexchange/0.8/forward/facebook/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [![Reddit](https://www.cold-takes.com/content/images/2021/06/ct-reddit-square.png)](https://api.addthis.com/oexchange/0.8/forward/reddit/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [![More](https://www.cold-takes.com/content/images/2021/06/ct-addthis-square.png)](https://api.addthis.com/oexchange/0.8/forward/menu/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [Subscribe](www.cold-takes.com/tool-assisted-speedrunning//#/portal/signup/free) [Feedback](https://www.guidedtrack.com/programs/4kal2ue/run?posttitle=Tool-assisted%20speedrunning) Powered by [Ghost](https://ghost.org/) #### Popular tags [sports](/tag/sports/) [innovationstagnation](/tag/innovationstagnation/) [2star](/tag/2star/) [utopia](/tag/utopia/) Subscribe to Cold Takes ======================= For audio version, search for "Cold Takes Audio" in your podcast app Subscribe **Great!** Check your inbox and click the link to confirm your subscription. **If you don't see it, check your spam!** Please enter a valid email address! $("#lower-right-subscribe").click(function(f) { clicky.goal('1458'); /\*LO.events.track('Subscribe-LR');\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#upper-right-subscribe-1").click(function(f) { clicky.goal('1471'); /\*LO.events.track('Subscribe-LR');\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#upper-right-subscribe-2").click(function(f) { clicky.goal('1471'); /\*LO.events.track('Subscribe-LR');\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#cover-subscribe").click(function(f) { clicky.goal('1472'); /\*LO.events.track('Subscribe-LR');\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#footer-subscribe").click(function(f) { clicky.goal('1473'); /\*LO.events.track('Subscribe-LR');\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#final-subscribe").click(function(f) { clicky.goal('1474'); }); //When someone clicks an anchor link, I want the sticky nav to go away. $("a").click(function(f) { body.removeClass('sticky-visible'); lastSt = 9999999999999}); function ctlight() { html.removeClass('theme-dark').addClass('theme-light'); localStorage.setItem('dawn\_theme', 'light'); //$(".gh-portal-triggerbtn-container").css("background","#0000dd"); /\* document.documentElement.style.setProperty('--brand-color', '#0000dd'); document.documentElement.style.setProperty('--white-color', '#ffffff'); document.documentElement.style.setProperty('--primary-text-color', '#1a1a1a'); document.documentElement.style.setProperty('--secondary-text-color', '#1a1a1a');\*/ // $("#CT-thumbID").css("transform","translate(0px,0)"); // $(".single-content").css("font-weight","400"); existingTheme = "light"; } function ctdark() { html.removeClass('theme-light').addClass('theme-dark'); localStorage.setItem('dawn\_theme', 'dark'); /\*document.documentElement.style.setProperty('--brand-color', '#5ceaff'); document.documentElement.style.setProperty('--white-color', '#18141f'); document.documentElement.style.setProperty('--primary-text-color', '#fff'); document.documentElement.style.setProperty('--secondary-text-color', '#fff');\*/ //document.documentElement.style.setProperty('--white-color', '#14101b'); //document.documentElement.style.setProperty('--white-color', '#121212'); //document.documentElement.style.setProperty('--white-color', '#282c35'); //$(".single-content").css("font-weight","300"); // $("#CT-thumbID").css("transform","translate(19px,0)"); existingTheme = "dark"; } //For light/dark toggle $(".CT-toggle").click(function(g) { g.preventDefault(); if(existingTheme == "dark") { ctlight(); } else if(existingTheme == 'light') { ctdark(); } } ); // Parse the URL parameter, then log goal if it is a completed subscription. Weird that it takes this much code to do this. function getParameterByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]\*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } // Give the parameter a variable name var action = getParameterByName('action'); var success = getParameterByName('success'); $(document).ready(function () { // Success === null is here for backwards compatibility if (action == 'subscribe' && (success === null || success == 'true')) { clicky.goal('1476'); } });

Tool-assisted speedrunning var siteUrl = 'https://www.cold-takes.com'; var localTheme = localStorage.getItem('dawn\\_theme'); switch (localTheme) { case 'dark': document.documentElement.classList.add('theme-dark'); break; case 'light': document.documentElement.classList.add('theme-light'); break; default: break; } { "@context": "https://schema.org", "@type": "Article", "publisher": { "@type": "Organization", "name": "Cold Takes", "url": "https://www.cold-takes.com/", "logo": { "@type": "ImageObject", "url": "https://www.cold-takes.com/favicon.ico", "width": 48, "height": 48 } }, "author": { "@type": "Person", "name": "Holden Karnofsky", "image": { "@type": "ImageObject", "url": "https://www.cold-takes.com/content/images/2021/07/HK-headshot-current---compressed-1.jpg", "width": 1600, "height": 1067 }, "url": "https://www.cold-takes.com/author/holden/", "sameAs": [ "https://www.cold-takes.com/about/" ] }, "headline": "Tool-assisted speedrunning", "url": "https://www.cold-takes.com/tool-assisted-speedrunning/", "datePublished": "2021-11-19T21:20:43.000Z", "dateModified": "2021-12-07T19:04:00.000Z", "image": { "@type": "ImageObject", "url": "https://www.cold-takes.com/content/images/2021/06/rockman1-1-1.png", "width": 1437, "height": 1080 }, "description": "I'm going to try an even harder sell than sports here.\n\nA tool-assisted speedrun [https://en.wikipedia.org/wiki/Tool-assisted\\_speedrun],\nor TAS, is the theoretically fastest-known possible playthrough of a video game.\nA TAS is not performed by an actual person with a controller. Rather, it is\nassembled mostly using a video game emulator that moves at extreme slowness\n(frame by frame) so that perfect precision can be achieved. Glitches are\nexploited, intentional deaths are taken to save time, etc", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://www.cold-takes.com/" } } .gh-post-upgrade-cta-content, .gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px; } .gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw; } .gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0; } .gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0; } .gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px; } .gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600; } .gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92; } .shaded-table { color: #000000; border: 1px solid; vertical-align: top; } .shaded-table a { color: #0000dd; } .sticky-subscribe-div { z-index: 1000; position: fixed; bottom: 25px; right: 25px; max-width: 500px; overflow: hidden; opacity: 1; } .sticky-subscribe-button { cursor: pointer; padding: 20px; background: var(--brand-color); color: var(--white-color); border-radius: 50px; border-style: none; } .subscribe-overlay { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2000; display: flex; justify-content: center; align-items: center; background: var(--white-color); opacity: 0; transition: opacity 0.3s ease-in; pointer-events: none; } .subscribe-overlay:target { z-index: 2001; opacity: 0.95; pointer-events: auto; } .subscribe-form { margin: 1.5em 0; padding: 6.5vh 7vw 8vh; border-style: solid !important; border: var(--mid-gray-color); border-radius: 10px; text-align: center; } .subscribe-overlay-title { display: inline-block; margin: 0 0 10px 0; font-size: 3rem; line-height: 1.15em; color: var(--darker-gray-color); } .subscribe-overlay-description { margin: 0 auto 50px; max-width: 500px; color: var(--darker-gray-color); font-size: 2rem; line-height: 1.3em; opacity: 0.8; } .subscribe-form .form-group { align-self: stretch; display: flex; } .subscribe-email { padding: 10px; border: 1px solid; border-color: var(--darker-gray-color); font-size: 1.8rem; line-height: 1em; font-weight: normal; user-select: text; transition: border-color 0.15s linear; -webkit-appearance: none; } .subscribe-form .subscribe-overlay-button { word-break: normal; position: relative; display: inline-block; margin: 0 0 0 10px; padding: 0 20px; height: 43px; outline: none; font-size: 1.5rem; line-height: 39px; font-weight: 400; background: var(--brand-color); border-radius: 5px; color: var(--white-color); } .subscribe-form .button-loader, .subscribe-form .message-success, .subscribe-form .message-error { display: none; } .subscribe-form .loading .button-content { visibility: hidden; } .subscribe-form .loading .button-loader { position: absolute; top: 0; left: 50%; display: inline-block; margin-left: -19px; transform: scale(0.7); } .subscribe-overlay .loading .button-loader { top: 5px; } .subscribe-form .button-loader svg path, .subscribe-form .button-loader svg rect { fill: var(--white-color); } .subscribe-form .success .message-success, .subscribe-form .invalid .message-error, .subscribe-form .error .message-error { display: block; margin: 1em auto 0; max-width: 400px; color: var(--red-color); font-size: 1.6rem; line-height: 1.5em; text-align: center; } .subscribe-form .success .message-success { display: block; color: var(--darker-gray-color); } .subscribe-form .invalid .message-error, .subscribe-form .error .message-error { display: block; } @media (max-width: 650px) { .subscribe-form-title { font-size: 2.4rem; } .subscribe-form-description { font-size: 1.6rem; } } @media (max-width: 500px) { .subscribe-form form { display: flex; flex-direction: column; } .subscribe-form .subscribe-overlay-button { margin: 0 0 0 0; } .subscribe-form .form-group { display: flex; flex-direction: column; width: 100%; } .subscribe-form button { display: flex; margin: 0 0 0 0; width: 100%; } } .subscribe-close-button { position: absolute; top: 16px; right: 20px; z-index: 2000; display: block; width: 40px; height: 40px; } .subscribe-close-button:before { content: ""; position: absolute; top: 20px; right: 4px; display: block; width: 32px; height: 1px; background: var(--darker-gray-color); opacity: 0.8; transform: rotate(45deg); } .subscribe-close-button:after { content: ""; position: absolute; top: 20px; right: 4px; display: block; width: 32px; height: 1px; background: var(--darker-gray-color); opacity: 0.8; transform: rotate(-45deg); } .subscribe-close-button:hover { cursor: default; } /\\*.message-success, .message-error, .message-loading { display: none; }\\*/ /\\*.message-success .success { visibility: visible; display: block; opacity: 1; } .message-error.error { visibility: visible; display: block; opacity: 1; }\\*/ /\\*.success .message-success, .error .message-error, .loading .message-loading { visibility: visible; display: block; opacity: 1; }\\*/ /\\*For TOC\\*/ @media (min-width: 1200px) { .sticky-visible .sticky-toc { visibility: visible; opacity: 1; transform: translateY(0); } .toc-opened .sticky-toc { visibility: hidden; } } /\\*.gh-portal-triggerbtn-iframe { } .gh-portal-triggerbtn-wrapper { background: #0000ff !important; } .gh-portal-triggerbtn-container { background: #0000ff !important; height: 10px !important; } \\*/ .theme-dark:root { \--green-color: #66ff33 !important; \--orange-color: #ff5c33 !important; \--red-color: #ff3333 !important; \--purple-color: #ff00ff !important; \--brand-color: #5ceaff !important; \--white-color: #18141f !important; \--primary-text-color: #fff !important; \--secondary-text-color: #fff !important; } .feed-visibility-false { display: none; } /\\*.feed-visibility-true { display: none; }\\*/ :root { \--brand-color:#0000dd; \--white-color:#ffffff; \--primary-text-color:#1a1a1a; \--secondary-text-color:#1a1a1a; \--orange-color: #ff6600; \--purple-color: #cc33ff; } blockquote { font-weight: unset; letter-spacing: normal; font-style: normal; text-align: inherit; } table { border: 1px solid; border-collapse: collapse; white-space: unset !important; width=200px !important; } table td { border: 1px solid; border-collapse: collapse; } .theme-dark .CT-thumb { transform: translate(20px,0px); } .theme-light .CT-thumb { transform: translate(0px,0px); } /\\*.u-text-format h3 { color: var(--darker-gray-color) ; }\\*/ //Detect theme var existingTheme = localStorage.getItem('dawn\\_theme'); if (!existingTheme) { if(navigator.platform.indexOf('Win') > -1) { existingTheme = "light"; } else if(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { existingTheme = "dark"; } else if(window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) { existingTheme = "light"; } } //Implement light/dark theme if(existingTheme == "dark") { ctdark(); } else if(existingTheme == 'light') { ctlight(); } window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TZK0WDB1DH'); var clicky\\_site\\_ids = clicky\\_site\\_ids || []; clicky\\_site\\_ids.push(101323562); ![Clicky](//in.getclicky.com/101323562ns.gif) :root {--ghost-accent-color: #888888;} [Cold Takes](https://www.cold-takes.com) [About (+highlights)](https://www.cold-takes.com/about/) [Most Important Century](https://www.cold-takes.com/most-important-century/) [About (+highlights)](https://www.cold-takes.com/about/) [Most Important Century](https://www.cold-takes.com/most-important-century/) [Subscribe (free)](#subscribe) [Subscribe (free)](#subscribe) [Subscribe (free)](#subscribe) [Cold Takes](https://www.cold-takes.com) - Tool-assisted speedrunning By [Holden Karnofsky](https://www.cold-takes.com/about/ "Holden Karnofsky") Nov 19, 2021 6 min read Tool-assisted speedrunning ========================== ![Tool-assisted speedrunning](/content/images/size/w960/2021/06/rockman1-1-1.png) I'm going to try an even harder sell than sports here. A [tool-assisted speedrun](https://en.wikipedia.org/wiki/Tool-assisted_speedrun), or TAS, is the *theoretically* fastest-known possible playthrough of a video game. A TAS is not performed by an actual person with a controller. Rather, it is assembled mostly using a video game emulator that moves at extreme slowness (frame by frame) so that perfect precision can be achieved. Glitches are exploited, intentional deaths are taken to save time, etc. As Wikipedia says, "rather than being a branch of e-sports focused on practical achievements, tool-assisted speedrunning concerns itself with research into the theoretical limits of the games." Watching one can be fun if you know the game (particularly if it's one you struggled through as a kid or adult). But what's even more fun IMO is reading about them - seeing the incredible amount of work, dedication, problem-solving, teamwork, even brilliance and heroism that goes into ... taking a fraction of a second off of the best-known completion time for some crappy ancient video game. I'd guess that in some cases, a single speedrun takes more time investment than it took to create the video game in the first place. It really says ... something? ... about the world we live in. TASes haven't been written about much, so I'm going to give a pretty random example, which is from [this Mega Man (Rockman) 2 run](http://tasvideos.org/2162S.html) that I read up on when I first discovered the phenomenon. The specifics won't make any sense (they don't to me), and I've gone ahead and bolded a few parts to get the picture of just how much effort went in. > > This time around Rockman 2 has been maximized to it's end, so far that only few people can imagine. Making this movie **required many years of work and hundreads of different investigations, plannings and trendemous amount of time and copypastings.** After doing the previous run I heard news about the other techniques ... About a year after I was able to perform Crashman's scrolling by 3xItem1s and I got excited about it and I contacted Bisqwit after my great success. Not so long after Bisqwit said that he was able to bot it to work with 2xItem1s so I began to continue my progress further and further. Somewhere around the progress I spotted some improvements I wasn't even seen before and I had to many stages behind to the Flashman's stage because I found a possibility to break something that affected to your waiting time after boss was beaten (This was found by playaround when I was bored and used different subpixel positionings) ... After that Japanese player called cstrakm found a technique to Airman's stage to get flying air devils to disappear just by pressing (left and then right) in the first possible frame. This was something special because I haven't ever seen that it works on any enemy ... About month or two later in december **FinalFighter contacted me if I would agree if he puts my movie in the public in Japan to search for persons that haves much experience with FCEUX and botting.** Not for so long after FinalFighter contacted me and said that TaoTao have been trying to solve the mystery and he did. TaoTao was able to make Bubbleman's downscroll ... and that version was **12 frames [less than 1 second] faster.** About or over a week later I got a message from FinalFighter that Japanese player pirohiko solved the scrolling with 2xItem1s, 2xCrabs and it was 112 frames faster! and after that with four metal blades! ...and so on my progress continued and continued along with other players and I finished it.\\_ > > > (This timeline "may not be 100%" correct because this is everything I can remember, there were **countless of days between anything and sometimes I was stuck for many months, like Crashman for a year, Bubbleman almost a year or so. So my memory got a bit rust**)\\_ > > > This is not the original Mega Man 2 TAS; it is the 6th one posted to the site. **All of this work was done to beat the previous Mega Man 2 runthrough by 28.21 seconds.** (Since then, it's been improved by [about another minute](http://tasvideos.org/4410M.html).) A better-known example, though not technically a TAS (it's an attempt to minimize button presses rather than minimizing time), is this video on [how to get through a particular Super Mario 64 level while pressing the A button only "0.5 times](https://www.youtube.com/watch?v=kpk2tdsPh0A&ab;_channel=pannenkoek2012)." Known for the line, around 10:30: "Now you're probably wondering what I'm going to need all this speed for. After all, I do build up speed for 12 hours. But to answer that, we need to talk about parallel universes." And some videos of actual TASes, though you're probably best off looking through their [list of "starred" runs](http://tasvideos.org/Movies-Stars.html) for a game you personally have played: * [Super Mario 64](http://tasvideos.org/3264M.html), an extremely long game that has been cut down to under 5 minutes. "As with many other runs on this site, the goal of pure speed has resulted in the complete breaking of the game. Very little of the game's normal play remains." Unlike most TASes, there is a helpful [history of the run](http://tasvideos.org/SM64TASHistory.html) with explanations of different breakthroughs (usually explanations of what's going on are extremely esoteric, harder for me than following academic papers). * [Super Mario 3](http://tasvideos.org/3922M.html) in 10:24.34, another relatively well-known one. * [Mega Man 2](http://tasvideos.org/4410M.html) is a solid example of the genre, discussed above. * [Mega Man 1](http://tasvideos.org/4131M.html) is a horrifying glitchfest that may make your eyes bleed. If Mega Man 2 is Superman, Mega Man 1 is Neo. From the author's comments: "Of course, upon watching this movie, one does have to question something... is it Mega Man saving the world? Or Dr. Wily [the villain] trying to save it from absolute destruction?" * [Mega Man 3, 4, 5 and 6 beaten simultaneously with the same sequence of button presses in 39:06.92](http://tasvideos.org/Game/nes-mega-man-3-4-5--6.html). As in, when the (superhuman) "player" presses "A" or "down" or whatever, it gets pressed in all four games at the same time. They still beat all four games faster than a normal person can beat any of them. I've only watched random parts of this, but check it out if you like viewing things you know you will never comprehend. The TAS community has developed a bunch of science-type norms: "authors" make "submissions," which are judged by [extensive guidelines](http://tasvideos.org/JudgeGuidelines.html) and "published" only if they are validated, better than the previous state-of-the-art, *and* (usually) not clearly improvable. I think TASes are a great metaphor for science, and give a much better feel for how I imagine science progresses than most stories about actual science. They demonstrate how a subculture can arise that consists of obsessives doggedly working (and collaborating) to push the frontier of understanding and performance on ... absolutely anything, for no reason other than "Hey, I think I might be able to do/understand this random thing 0.1% better than anyone else has before (and it's OK that someone else will take my place the following week)." They also demonstrate how that dogged work includes obsessively looking for weird edge cases one can exploit toward the goal, leading to "magical" seeming results. In speedrunning, this means finding ways to clip through walls and otherwise glitch the game in ways clearly not intended by the game designer; in science, this means stuff like nuclear power and space exploration. I think the analogy's pretty much perfect. I think that's part of why I find TASes kind of breathtaking, simultaneously inspiring and terrifying. If we can complete Mario 64 without even collecting a star, we can probably someday [abandon our physical bodies entirely](https://www.cold-takes.com/how-digital-people-could-change-the-world/). [![Twitter](https://www.cold-takes.com/content/images/2021/06/ct-twitter-square.png)](https://api.addthis.com/oexchange/0.8/forward/twitter/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [![Facebook](https://www.cold-takes.com/content/images/2021/06/ct-facebook-square.png)](https://api.addthis.com/oexchange/0.8/forward/facebook/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [![Reddit](https://www.cold-takes.com/content/images/2021/06/ct-reddit-square.png)](https://api.addthis.com/oexchange/0.8/forward/reddit/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [![More](https://www.cold-takes.com/content/images/2021/06/ct-addthis-square.png)](https://api.addthis.com/oexchange/0.8/forward/menu/offer?url=www.cold-takes.com%2Ftool-assisted-speedrunning%2F&pubid;=ra-60a178324cffc42e&title;=Cold%20Takes%20-%20Tool-assisted%20speedrunning&ct;=1) [Subscribe](www.cold-takes.com/tool-assisted-speedrunning//#/portal/signup/free) [Feedback](https://www.guidedtrack.com/programs/4kal2ue/run?posttitle=Tool-assisted%20speedrunning) Powered by [Ghost](https://ghost.org/) #### Popular tags [sports](/tag/sports/) [innovationstagnation](/tag/innovationstagnation/) [2star](/tag/2star/) [utopia](/tag/utopia/) Subscribe to Cold Takes ======================= For audio version, search for "Cold Takes Audio" in your podcast app Subscribe **Great!** Check your inbox and click the link to confirm your subscription. **If you don't see it, check your spam!** Please enter a valid email address! $("#lower-right-subscribe").click(function(f) { clicky.goal('1458'); /\\*LO.events.track('Subscribe-LR');\\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#upper-right-subscribe-1").click(function(f) { clicky.goal('1471'); /\\*LO.events.track('Subscribe-LR');\\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#upper-right-subscribe-2").click(function(f) { clicky.goal('1471'); /\\*LO.events.track('Subscribe-LR');\\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#cover-subscribe").click(function(f) { clicky.goal('1472'); /\\*LO.events.track('Subscribe-LR');\\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#footer-subscribe").click(function(f) { clicky.goal('1473'); /\\*LO.events.track('Subscribe-LR');\\*/ setTimeout(function(){$("#subscribe-input").focus();},500); }); $("#final-subscribe").click(function(f) { clicky.goal('1474'); }); //When someone clicks an anchor link, I want the sticky nav to go away. $("a").click(function(f) { body.removeClass('sticky-visible'); lastSt = 9999999999999}); function ctlight() { html.removeClass('theme-dark').addClass('theme-light'); localStorage.setItem('dawn\\_theme', 'light'); //$(".gh-portal-triggerbtn-container").css("background","#0000dd"); /\\* document.documentElement.style.setProperty('--brand-color', '#0000dd'); document.documentElement.style.setProperty('--white-color', '#ffffff'); document.documentElement.style.setProperty('--primary-text-color', '#1a1a1a'); document.documentElement.style.setProperty('--secondary-text-color', '#1a1a1a');\\*/ // $("#CT-thumbID").css("transform","translate(0px,0)"); // $(".single-content").css("font-weight","400"); existingTheme = "light"; } function ctdark() { html.removeClass('theme-light').addClass('theme-dark'); localStorage.setItem('dawn\\_theme', 'dark'); /\\*document.documentElement.style.setProperty('--brand-color', '#5ceaff'); document.documentElement.style.setProperty('--white-color', '#18141f'); document.documentElement.style.setProperty('--primary-text-color', '#fff'); document.documentElement.style.setProperty('--secondary-text-color', '#fff');\\*/ //document.documentElement.style.setProperty('--white-color', '#14101b'); //document.documentElement.style.setProperty('--white-color', '#121212'); //document.documentElement.style.setProperty('--white-color', '#282c35'); //$(".single-content").css("font-weight","300"); // $("#CT-thumbID").css("transform","translate(19px,0)"); existingTheme = "dark"; } //For light/dark toggle $(".CT-toggle").click(function(g) { g.preventDefault(); if(existingTheme == "dark") { ctlight(); } else if(existingTheme == 'light') { ctdark(); } } ); // Parse the URL parameter, then log goal if it is a completed subscription. Weird that it takes this much code to do this. function getParameterByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\\[\\]]/g, "\\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]\\*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\\+/g, " ")); } // Give the parameter a variable name var action = getParameterByName('action'); var success = getParameterByName('success'); $(document).ready(function () { // Success === null is here for backwards compatibility if (action == 'subscribe' && (success === null || success == 'true')) { clicky.goal('1476'); } });