fceux/web/help/ToolAssistedSpeedruns.html

319 lines
17 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="generator" content="HelpNDoc Personal Edition 7.0.0.199">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="favicon.ico"/>
<title>Tool Assisted Speedruns</title>
<meta name="description" content="" />
<meta name="keywords" content="Tool Assisted Speedruns">
<!-- Twitter Card data -->
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Tool Assisted Speedruns">
<meta name="twitter:description" content="">
<!-- Open Graph data -->
<meta property="og:title" content="Tool Assisted Speedruns" />
<meta property="og:type" content="article" />
<meta property="og:description" content="" />
<meta property="og:site_name" content="FCEUX Help" />
<!-- Bootstrap core CSS -->
<link href="vendors/bootstrap-3.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="vendors/bootstrap-3.4.1/css/ie10-viewport-bug-workaround.css" rel="stylesheet"/>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="vendors/html5shiv-3.7.3/html5shiv.min.js"></script>
<script src="vendors/respond-1.4.2/respond.min.js"></script>
<![endif]-->
<!-- JsTree styles -->
<link href="vendors/jstree-3.3.10/themes/default/style.min.css" rel="stylesheet"/>
<!-- Hnd styles -->
<link href="css/layout.min.css" rel="stylesheet" />
<link href="css/effects.min.css" rel="stylesheet" />
<link href="css/theme-light-blue.min.css" rel="stylesheet" />
<link href="css/print.min.css" rel="stylesheet" media="print" />
<style type="text/css">nav { width: 250px} @media screen and (min-width:769px) { body.md-nav-expanded div#main { margin-left: 250px} body.md-nav-expanded header { padding-left: 264px} }</style>
<!-- Content style -->
<link href="css/hnd.content.css" rel="stylesheet" />
</head>
<body class="md-nav-expanded">
<div id="skip-link">
<a href="#main-content" class="element-invisible">Skip to main content</a>
</div>
<header class="headroom">
<button class="hnd-toggle btn btn-default">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
</button>
<h1>FCEUX Help</h1>
</header>
<nav id="panel-left" class="md-nav-expanded">
<!-- Nav tabs -->
<ul class="tab-tabs nav nav-tabs" role="tablist">
<li id="nav-close">
<button class="hnd-toggle btn btn-default">
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</button>
</li>
<li role="presentation" class="tab active">
<a href="#contents" id="tab-contents" aria-controls="contents" role="tab" data-toggle="tab">
<i class="glyphicon glyphicon-list"></i>
Contents
</a>
</li>
<li role="presentation" class="tab">
<a href="#index" id="tab-index" aria-controls="index" role="tab" data-toggle="tab">
<i class="glyphicon glyphicon-asterisk"></i>
Index
</a>
</li>
<li role="presentation" class="tab">
<a href="#search" id="tab-search" aria-controls="search" role="tab" data-toggle="tab">
<i class="glyphicon glyphicon-search"></i>
Search
</a>
</li>
</ul> <!-- /Nav tabs -->
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="contents">
<div id="toc" class="tree-container unselectable"
data-url="_toc.json"
data-openlvl="1"
>
</div>
</div> <!-- /contents-->
<div role="tabpanel" class="tab-pane" id="index">
<div id="keywords" class="tree-container unselectable"
data-url="_keywords.json"
data-openlvl="1"
>
</div>
</div> <!-- /index-->
<div role="tabpanel" class="tab-pane" id="search">
<div class="search-content">
<div class="search-input">
<form id="search-form">
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control" id="input-search" name="input-search" placeholder="Search..." />
<span class="input-group-btn">
<button class="btn btn-default" type="submit">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</button>
</span>
</div>
</div>
</form>
</div> <!-- /search-input -->
<div class="search-result">
<div id="search-info"></div>
<div class="tree-container unselectable" id="search-tree"></div>
</div> <!-- /search-result -->
</div> <!-- /search-content -->
</div> <!-- /search-->
</div> <!-- /Tab panes -->
</nav>
<div id="main">
<article>
<div id="topic-content" class="container-fluid"
data-hnd-id="ToolAssistedSpeedruns"
data-hnd-context="20"
data-hnd-title="Tool Assisted Speedruns"
>
<div class="navigation">
<ol class="breadcrumb">
<li><a href="FAQGuides.html">FAQ / Guides</a></li>
</ol>
<div class="nav-arrows">
<div class="btn-group btn-group-xs" role="group"><a class="btn btn-default" href="FAQGuides.html" title="FAQ / Guides" role="button"><span class="glyphicon glyphicon-menu-up" aria-hidden="true"></span></a><a class="btn btn-default" href="Troubleshooting.html" title="Troubleshooting" role="button"><span class="glyphicon glyphicon-menu-left" aria-hidden="true"></span></a><a class="btn btn-default" href="ROMHacking.html" title="ROM Hacking" role="button"><span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span></a></div>
</div>
</div>
<a id="main-content"></a>
<h2>Tool Assisted Speedruns</h2>
<div class="main-content">
<p></p>
<p class="rvps2"><span class="rvts22">Tool Assisted Speedruns</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts21">What is Tool Assisted Speedrunning?</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">A tool-assisted speedrun (commonly abbreviated TAS) is a speedrun movie or performance produced with the use of tools such as slow motion and re-recording. The basic premise of these runs is that a "tool" (such as an emulator that provides the author with features that are unavailable in regular playing) is used in order to overcome human limitations such as skill and reflex.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">Creating a tool-assisted speed run is the process of finding the ideal set of inputs to complete a given criterion - usually completing a game as fast as possible. No limits are imposed on the tools used for this search, but the result has to be a set of timed key-presses that, when played back on the actual console, achieves the target criterion. Traditionally, the only available tool for this was an emulator with re-recording - the ability to use savestate while recording key-presses. However, due to advances in the field, it is now often expected that frame-advance, stepping through emulation one frame at a time, is used. A tool-assisted speed run done without this technique may be criticised as "sloppy play". Before Frame Advance became common, playing in slow motion was a common technique, but Frame Advance has displaced this.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">In essence, Tool Assistance allows one to overcome human limitations of skill and reflex in order to push a game to its limits. &nbsp;One important thing to remember is that TAS movies are not competing in terms of playing skill, nor do they claim to.&nbsp;</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">For more info on Tool Assisted Speedruns:</span></p>
<p class="rvps2"><a class="rvts23" href="http://tasvideos.org/">http://tasvideos.org/</a></p>
<p class="rvps2"><a class="rvts23" href="http://tasvideos.org/WhyAndHow.html">http://tasvideos.org/WhyAndHow.html</a></p>
<p class="rvps2"><a class="rvts23" href="http://en.wikipedia.org/wiki/Tool-assisted_speedrun">http://en.wikipedia.org/wiki/Tool-assisted_speedrun</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts21">FCEUX TAS features</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">FCEUX provides a wealth of tools and resources for creating TAS Movies for NES &amp; FDS games. &nbsp;It features the most current and cutting edge tools for optimizing movies and making the process of movie making quicker an easier.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Basic Recording features:</span></p>
<p class="rvps2"><a class="rvts23" href="MovieRecording.html">Frame advance, Slow-downs, "bullet-proof" rerecording</a><span class="rvts6">, </span><a class="rvts23" href="TASEditor.html">TAS Editor</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Advanced Recording features&nbsp;</span></p>
<p class="rvps2"><a class="rvts23" href="Input.html">Input presets</a><span class="rvts6">, </span><a class="rvts23" href="AutoFireConfigurations.html">Auto Hold &amp; Auto-Fire</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Automated Movie Making Processes</span></p>
<p class="rvps2"><span class="rvts23">Macros &amp; &nbsp;Multi-tracking</span><span class="rvts6">, </span><span class="rvts23">Lua scripting</span><span class="rvts6">, </span><span class="rvts23">Basic Bot</span><span class="rvts6">,&nbsp;</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Finding RAM values:</span></p>
<p class="rvps2"><a class="rvts23" href="CheatSearch.html">Cheat Search</a><span class="rvts6">, </span><span class="rvts23">RAM Filter</span><span class="rvts6">, </span><a class="rvts23" href="HexEditor.html">Hex Editor</a><span class="rvts6">, </span><a class="rvts23" href="Debugger.html">Debugger</a><span class="rvts6">, </span><a class="rvts23" href="NESRAMMappingFindingValues.html">NES RAM Guide</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">RAM Monitoring:</span></p>
<p class="rvps2"><a class="rvts23" href="MemoryWatch.html">Memory Watch</a><span class="rvts6">, </span><a class="rvts23" href="HexEditor.html">Hex Editor</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Movie Splicing Editing</span></p>
<p class="rvps2"><a class="rvts23" href="fm2.html">Text based file format</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Integrated development system</span></p>
<p class="rvps2"><a class="rvts23" href="TASEditor.html">TAS Editor</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts21">Movie making</span></p>
<p class="rvps2"><span class="rvts21"><br/></span></p>
<p class="rvps2"><span class="rvts6">To get started making a Tool Assisted Movie, simply begin recording a movie (see </span><a class="rvts23" href="MovieRecording.html">Movie Recording</a><span class="rvts6">). &nbsp;The basic premise of TASing, however, is to use re-records to optimize the execution of a decided upon goal (usually to complete the game as fast as possible). &nbsp;Re-recording is the act of replacing an already recorded part (of a movie) with something else; also called undo.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">In the making of emulator movies, re-recording is done by loading a savestate of earlier event in the movie and continuing playing from that point. &nbsp;The emulator will update the movie file to undo everything that was cancelled by the savestate loading, and continue recording from that point. &nbsp;The makers of tool-assisted speedruns use re-recording very extensively to reach perfection and to avoid mistakes.</span></p>
<p class="rvps2"><span class="rvts6"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="rvts6">* In single-segment non-assisted speedruns, re-recording is starting over from beginning. The recording of the failed playing is usually not preserved. &nbsp; &nbsp;</span></p>
<p class="rvps2"><span class="rvts6"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="rvts6">* In multi-segment non-assisted speedruns, re-recording is starting over from the beginning of current segment. The recording of the failed segment is not preserved. &nbsp; &nbsp;</span></p>
<p class="rvps2"><span class="rvts6"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="rvts6">* In tool-assisted speedruns, re-recording only undoes a small part of playing. The undone part will not be seen in the resulting movie. &nbsp;A tool-assisted movie may have been re-recorded anything between 50 and 200000 times, depending on the precision of the movie and the difficulty of the game. &nbsp;Often, the same small passage of the game (could be as small as fractions of second long) is attempted tens of times before continuing.&nbsp;</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">For more info on making TAS movies:</span></p>
<p class="rvps2"><a class="rvts23" href="http://tasvideos.org/CommonTricks.html">http://tasvideos.org/CommonTricks.html</a></p>
<p class="rvps2"><a class="rvts23" href="http://tasvideos.org/GenericTips.html">http://tasvideos.org/GenericTips.html</a></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p></p>
<p class="rvps4" style="clear: both;"><span class="rvts18">Created with the Personal Edition of HelpNDoc: </span><a class="rvts19" href="https://www.helpndoc.com">Free PDF documentation generator</a></p>
</div>
<div id="topic_footer"><div id="topic_footer_content">2020</div></div>
</div> <!-- /#topic-content -->
</article>
<footer></footer>
</div> <!-- /#main -->
<div class="mask" data-toggle="sm-nav-expanded"></div>
<!-- Modal -->
<div class="modal fade" id="hndModal" tabindex="-1" role="dialog" aria-labelledby="hndModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="hndModalLabel"></h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary modal-btn-close" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Splitter -->
<div id="hnd-splitter" style="left: 250px"></div>
<!-- Scripts -->
<script src="vendors/jquery-3.5.1/jquery.min.js"></script>
<script src="vendors/bootstrap-3.4.1/js/bootstrap.min.js"></script>
<script src="vendors/bootstrap-3.4.1/js/ie10-viewport-bug-workaround.js"></script>
<script src="vendors/markjs-8.11.1/jquery.mark.min.js"></script>
<script src="vendors/uri-1.19.2/uri.min.js"></script>
<script src="vendors/imageMapResizer-1.0.10/imageMapResizer.min.js"></script>
<script src="vendors/headroom-0.11.0/headroom.min.js"></script>
<script src="vendors/jstree-3.3.10/jstree.min.js"></script>
<script src="vendors/interactjs-1.9.22/interact.min.js"></script>
<!-- HelpNDoc scripts -->
<script src="js/polyfill.object.min.js"></script>
<script src="_translations.js"></script>
<script src="js/hndsd.min.js"></script>
<script src="js/hndse.min.js"></script>
<script src="js/app.min.js"></script>
<!-- Init script -->
<script>
$(function() {
// Create the app
var app = new Hnd.App();
// Update translations
hnd_ut(app);
// Instanciate imageMapResizer
imageMapResize();
// Custom JS
// Boot the app
app.Boot();
});
</script>
</body>
</html>