mirror of
https://github.com/yuzu-mirror/yuzu-mirror.github.io.git
synced 2025-12-06 07:12:21 +01:00
281 lines
13 KiB
HTML
281 lines
13 KiB
HTML
<!DOCTYPE html>
|
|
<html lang=" en-us "class="has-navbar-fixed-top">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
|
|
<meta name="theme-color" content="#404040">
|
|
|
|
<meta property="og:title" content="TAS · yuzu" />
|
|
<meta property="og:site_name" content="yuzu" />
|
|
<meta property="og:url" content="https://yuzu-mirror.github.io/help/feature/tas/" />
|
|
<meta property="og:description" content="Tool Assisted Speedrun" />
|
|
<meta name="description" content="Tool Assisted Speedrun" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:image" content="https://yuzu-mirror.github.io/logo.png" />
|
|
|
|
<link rel="icon" href="https://yuzu-mirror.github.io/favicon.ico" />
|
|
<link rel="shortcut icon" href="https://yuzu-mirror.github.io/favicon.ico" type="image/x-icon" />
|
|
<link rel="canonical" href="https://yuzu-mirror.github.io/help/feature/tas/">
|
|
|
|
<title>TAS - yuzu</title>
|
|
<link href="https://fonts.googleapis.com/css?family=Ubuntu|Dosis" rel="stylesheet">
|
|
<link href="https://use.fontawesome.com/releases/v6.4.0/css/all.css" rel="stylesheet">
|
|
|
|
<link rel="stylesheet" href="https://yuzu-mirror.github.io/scss/style.min.css" />
|
|
|
|
|
|
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-112443698-1"></script>
|
|
|
|
|
|
<script type="text/javascript">
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag() { dataLayer.push(arguments); }
|
|
gtag('js', new Date());
|
|
gtag('config', 'UA-112443698-1');
|
|
</script>
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<nav class="navbar is-dark is-size-6 is-fixed-top" role="navigation" aria-label="main navigation">
|
|
<div class="container">
|
|
<div class="navbar-brand">
|
|
<a class="navbar-item" href="https://yuzu-mirror.github.io">
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="navbar-logo" viewBox="0 0 515.83 163.11"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#ff3c28;}.cls-3{fill:#0ab9e6;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M515.83,23.23v73c0,14.5-2.24,25.24-6.84,32.82-5.92,10.15-16.2,15.32-30.53,15.32s-24.62-5.23-30.58-15.57c-4.56-7.64-6.79-18.42-6.79-32.92V23.23a4.51,4.51,0,0,1,4.51-4.51h2.28a4.51,4.51,0,0,1,4.51,4.51v72.5c0,33.53,14.88,37.4,26.07,37.4,12.14,0,26.08-4.17,26.08-36.71V23.23a4.51,4.51,0,0,1,4.51-4.51h2.27A4.51,4.51,0,0,1,515.83,23.23Z"/><path class="cls-1" d="M421.34,144.4H353.45c-2.35,0-4.72-1.88-4.72-6.08a8.32,8.32,0,0,1,1.33-4.49L410.39,29.36H360.8a4.51,4.51,0,0,1-4.51-4.5V23.28a4.51,4.51,0,0,1,4.48-4.51h.81c58.68-.11,59.11,0,59.66.07a5.19,5.19,0,0,1,4,5.8,8.74,8.74,0,0,1-1.32,3.75L363.33,133.17h58a4.51,4.51,0,0,1,4.51,4.51v2.21A4.51,4.51,0,0,1,421.34,144.4Z"/><path class="cls-1" d="M248.45,23.23v82.06c0,26-11.8,38.44-37.12,39.09h-.12a4.51,4.51,0,0,1-4.51-4.51V137.5a4.51,4.51,0,0,1,4.48-4.5c18.49-.15,26-8.23,26-27.9v-2.37a32.34,32.34,0,0,1-3.34,3.28c-6.39,5.5-14.5,8.29-24.07,8.29-22.86,0-35-12.41-35-35.89V23.23a4.52,4.52,0,0,1,4.51-4.51h2.22a4.52,4.52,0,0,1,4.5,4.51v55c0,7.6,1.82,14.22,5,18.18,3.57,4.56,9.17,6.49,18.75,6.49,10.13,0,17.32-3.76,22-11.5,3.61-5.92,5.43-13.66,5.43-23V23.23a4.52,4.52,0,0,1,4.51-4.51h2.22A4.52,4.52,0,0,1,248.45,23.23Z"/><path class="cls-1" d="M338.12,23.23v73c0,14.5-2.24,25.24-6.84,32.82-5.92,10.15-16.2,15.32-30.53,15.32s-24.62-5.23-30.58-15.57c-4.56-7.64-6.79-18.42-6.79-32.92V23.23a4.51,4.51,0,0,1,4.51-4.51h2.28a4.51,4.51,0,0,1,4.51,4.51v72.5c0,33.53,14.88,37.4,26.07,37.4,12.14,0,26.08-4.17,26.08-36.71V23.23a4.51,4.51,0,0,1,4.51-4.51h2.27A4.51,4.51,0,0,1,338.12,23.23Z"/><g id="g823"><g id="right"><g id="g827"><g id="g833"><path id="path835" class="cls-2" d="M81.56,32.62V163.11a65.25,65.25,0,0,0,0-130.49M94.3,46.91a52.54,52.54,0,0,1,0,101.91V46.91"/></g></g></g><g id="left"><g id="g839"><g id="g845"><path id="path847" class="cls-3" d="M65.24,0a65.25,65.25,0,0,0,0,130.49ZM52.5,14.29V116.2A52.52,52.52,0,0,1,28.12,28.12,52.16,52.16,0,0,1,52.5,14.29"/></g></g></g></g></g></g></svg>
|
|
</a>
|
|
|
|
<div class="burger navbar-burger is-dark" data-target="navMenu">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="navbar-menu" id="navMenu">
|
|
<div class="navbar-start">
|
|
|
|
<a class="navbar-item px-lg" href="/entry">
|
|
Blog
|
|
</a>
|
|
|
|
<a class="navbar-item px-lg" href="/downloads">
|
|
Download
|
|
</a>
|
|
|
|
<a class="navbar-item px-lg" href="/wiki/faq">
|
|
FAQs
|
|
</a>
|
|
|
|
<a class="navbar-item px-lg" href="/game">
|
|
Compatibility
|
|
</a>
|
|
|
|
<a class="navbar-item px-lg" href="/screenshots">
|
|
Screenshots
|
|
</a>
|
|
|
|
<a class="navbar-item px-lg" href="https://www.patreon.com/yuzuteam">
|
|
Patreon
|
|
</a>
|
|
|
|
<a class="navbar-item px-lg" href="https://profile.yuzu-mirror.github.io">
|
|
Profile
|
|
</a>
|
|
|
|
|
|
<a class="navbar-item px-lg is-hidden-desktop" href="https://discord.gg/u77vRWY" target="_blank">
|
|
<i class="fab fa-discord mr-sm"></i> Discord
|
|
</a>
|
|
<a class="navbar-item px-lg is-hidden-desktop" href="https://twitter.com/yuzuemu" target="_blank">
|
|
<i class="fab fa-twitter mr-sm"></i> Twitter
|
|
</a>
|
|
<a class="navbar-item px-lg is-hidden-desktop" href="https://github.com/yuzu-mirror/yuzu" target="_blank">
|
|
<i class="fab fa-github mr-sm"></i> GitHub
|
|
</a>
|
|
</div>
|
|
|
|
<div class="navbar-end">
|
|
|
|
<a class="navbar-item px-lg is-hidden-touch" href="https://discord.gg/u77vRWY" target="_blank">
|
|
<span class="icon">
|
|
<i class="fab fa-2x fa-discord"></i>
|
|
</span>
|
|
</a>
|
|
<a class="navbar-item px-lg is-hidden-touch" href="https://twitter.com/yuzuemu" target="_blank">
|
|
<span class="icon">
|
|
<i class="fab fa-2x fa-twitter"></i>
|
|
</span>
|
|
</a>
|
|
<a class="navbar-item px-lg is-hidden-touch" href="https://github.com/yuzu-mirror/yuzu" target="_blank">
|
|
<span class="icon">
|
|
<i class="fab fa-2x fa-github"></i>
|
|
</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
<section class="section" style="padding-bottom: 0px;">
|
|
<div class="container">
|
|
<a href="/help/">
|
|
<article class="message">
|
|
<div class="message-body">
|
|
<span class="icon">
|
|
<i class="fas fa-arrow-circle-left"></i>
|
|
</span>
|
|
Return to the previous page.
|
|
</div>
|
|
</article>
|
|
</a>
|
|
</div>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="container">
|
|
<div class="columns is-centered">
|
|
<div class="column is-four-fifths">
|
|
|
|
<section class="section">
|
|
<h1 class="title">TAS</h1>
|
|
<div class="content">
|
|
<p>This tool allows you to send perfectly timed, precise controller inputs to a game with what would be a near-impossible degree of accuracy for a human.
|
|
You can set and lock the different analog sticks to certain positions, as well as specify what buttons are to be pressed or released.</p>
|
|
<h1 id="how-to-use">How to use</h1>
|
|
<p>To play back TAS scripts in yuzu, first select the folder with scripts in the configuration menu below
|
|
<code>Tools -> Configure TAS</code>. The file itself has to be in plain text format, and it must be named <code>script0-1.txt</code>
|
|
for controller 1, <code>script0-2.txt</code> for controller 2, and so forth (with max. 8 players).</p>
|
|
<p>After placing the file at the correct location, it can be read into yuzu with the (default) hotkey
|
|
<code>CTRL+F6</code> (refresh). The amount of frames contained in the the script file will be displayed at the bottom left corner of the window.
|
|
Playback can be started or stopped by using <code>CTRL+F5</code>.</p>
|
|
<p>However, in order for playback to work, the correct input device must be selected. This is done automatically if <code>controller profile swapping</code> is enabled,
|
|
if disabled this can be done by going to <code>Emulation > Configure > Controls</code> menu and selecting <code>TAS</code> from the device list for the controller that the script should be played on.</p>
|
|
<p>If you decide to run the script over and over again, <code>Loop script</code> will do just that. The tool will not stop until you specifically send the stop hotkey <code>CTRL+F5</code>.</p>
|
|
<p><code>Pause execution during loads</code> is a feature that stops the tool until the loading screen is done. This feature is currently disabled but left as a placeholder until a
|
|
proper solution can be implemented.</p>
|
|
<h2 id="recording">Recording</h2>
|
|
<p>Recording a new script file is also simple: Just make sure that the proper controller device (not <code>TAS</code>) is
|
|
connected on P1, and press <code>CTRL+F7</code> to start recording your input. When you’re done, press the same keys
|
|
again (<code>CTRL+F7</code>). The new script will be saved at the folder location previously selected, with
|
|
<code>record.txt</code> as the filename, optionally an overwrite dialog window will pop up that will replace the contents
|
|
of <code>script0-1.txt</code> with the script that you just recorded allowing you to play back the script right away.</p>
|
|
|
|
<div class="columns is-img-preview">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="column has-text-centered">
|
|
|
|
<a href="./control_debugger.png" title="For debugging purposes, the controller debugger can be used">
|
|
|
|
|
|
<img src="https://yuzu-mirror.github.io/help/feature/tas/control_debugger_hue7c37a2ade714d8ed0f7170ef684f833_26520_501x0_resize_q90_bgffffff_box_3.jpg" alt="For debugging purposes, the controller debugger can be used"></a>
|
|
|
|
|
|
<p class="has-text-centered is-italic has-text-grey-light">For debugging purposes, the controller debugger can be used</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="column has-text-centered">
|
|
|
|
<a href="./control_debugger_pressed.png" title="View -> Debugging -> Controller P1">
|
|
|
|
|
|
<img src="https://yuzu-mirror.github.io/help/feature/tas/control_debugger_pressed_hu90a1ba69be0525c68aa948a80d194b06_27354_500x0_resize_q90_bgffffff_box_3.jpg" alt="View -> Debugging -> Controller P1"></a>
|
|
|
|
|
|
<p class="has-text-centered is-italic has-text-grey-light">View -> Debugging -> Controller P1</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<h2 id="example-script">Example script</h2>
|
|
<p>A script file has the same format that <a href="https://github.com/hamhub7/tas-script">TAS-nx</a> uses.</p>
|
|
<article class="message"><div class="message-header">Example</div><div class="message-body">
|
|
1 KEY_B 0;0 0;0<br>
|
|
6 KEY_ZL 0;0 0;0<br>
|
|
41 KEY_ZL;KEY_Y 0;0 0;0<br>
|
|
43 KEY_X;KEY_A 32767;0 0;0<br>
|
|
44 KEY_A 32767;0 0;0<br>
|
|
45 NONE 32767;0 0;0<br>
|
|
46 NONE 0;0 0;32767<br>
|
|
47 KEY_A -32767;0 0;0<br>
|
|
</div></article>
|
|
<p>For more advanced scripts you can take a look at this Super Mario Odyssey <a href="./script0-1.txt">TAS script</a> made by matthewpugs24.
|
|
|
|
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
|
|
<iframe src="https://www.youtube.com/embed/Gh2aCXdnZRk" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="YouTube Video"></iframe>
|
|
</div>
|
|
</p>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
</div>
|
|
<div class="column">
|
|
|
|
|
|
<div class="px-md">
|
|
|
|
<ins class="adsbygoogle"
|
|
style="display:block; margin-left:25px;"
|
|
data-ad-client="ca-pub-4126545610079023"
|
|
data-ad-slot="6276099127"
|
|
data-ad-format="auto"></ins>
|
|
<br>
|
|
<p class="is-size-6 has-text-centered">Advertisement</p>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
|
|
|
|
<div class="px-md has-text-centered">
|
|
<p class="is-size-6 has-text-centered">Advertisement</p>
|
|
<br>
|
|
<ins class="adsbygoogle" style="display:inline-block;width:728px;height:100px" data-ad-client="ca-pub-4126545610079023" data-ad-slot="1038554045"></ins>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="container">
|
|
<footer class="footer">
|
|
<div class="content has-text-centered">
|
|
copyright © 2025 yuzu emulator team
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
|
|
|
|
<script src="https://yuzu-mirror.github.io/js/script.min.js"></script>
|
|
<script type="text/javascript">
|
|
for (var i = 0; i < document.getElementsByClassName('adsbygoogle').length; i++) {
|
|
(adsbygoogle = window.adsbygoogle || []).push({});
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|