guide · static export
Emulation

Set Up BizHawk for Tool-Assisted Runs and Lua Scripts

BizHawk is built for determinism: save states, frame advance and Lua scripts. It is the wrong emulator for casual play and the right one for a TAS.

by@guidox updated:10/31/26 time:35 min level:Advanced tested on:BizHawk 2.9 works on:Windows 10, Windows 11 tools:BizHawk
TL;DR

Install **BizHawk**, pick a **core** per console, then use **frame advance** and **save states** as the basic workflow. Determinism only holds if the same core and the same ROM are used.

Before you start

Requirements

  • BizHawk
  • A ROM
  • Thirty minutes
Step by step

Instructions

01

Choose the core, not only the system

Each supported console has several cores with different accuracy. A TAS movie is tied to the core it was recorded on and may desync on another.

Config > Cores
02

Learn the three keys that matter

Frame advance, pause and save state are the tools a TAS is built from. Everything else in the interface is secondary to these three.

Space pause, frame advance, F5 save state
tipSave a state before every experiment. A state is instantaneous and can be reloaded in a second.
03

Enable the input display

The input display shows every button per frame. It is what makes a recorded run reviewable by someone else.

View > Input display
04

Add a Lua script

The Lua console runs scripts that read memory and draw information on screen. That is how a run shows its own timing or a hit counter.

Tools > Lua Console
⚠ warningA script runs with full access to the emulator process. Only run scripts you have read.
05

Keep the movie and the ROM together

A recorded movie file does not contain the ROM. Store the movie next to the exact file it was made with, or the playback desyncs for everyone else.

06

Verify by replaying

Play the movie back from the start and confirm the same result. A run that only works live is not verified.

Troubleshooting

Common issues

The movie desyncs

Different core, different ROM revision or a changed setting. Restore the exact setup.

Frame advance does nothing

The emulator is running, not paused. Pause first.

A Lua script errors

A version mismatch against the emulator API. Use a script for the same release.

Sound crackles at high speed

Fast-forward without audio, or raise the buffer.

FAQ

Frequently asked

Is BizHawk good for normal play?

It works, but RetroArch is smoother for casual use.

Can I submit a run from it?

Yes. The community publishes its verification rules and the exact core list.

How to undo this

Delete the movie and state files to remove the work. The emulator configuration lives in its own folder and can be reset from the config menu.

Changelog · 1 entry
  1. 2026-10-31
    First version
Interactive version: checklist, feedback, related guides →

Free · no account needed · tracks your progress