BizHawk Wiki
Welcome to the BizHawk documentation hub. This page is a practical guide for installing BizHawk, running games, fixing common issues, recording movies, using TAStudio, and finding the right advanced documentation.
BizHawk is the emulator project; EmuHawk is the main application you launch. On Windows, this is usually EmuHawk.exe. On Linux, launch BizHawk through the provided shell script, usually EmuHawkMono.sh, depending on the release package.
Start with the Quick Start section below, then check the troubleshooting table.
Quick Start
- Download the latest stable BizHawk release.
- On Windows, run the prerequisites installer before launching EmuHawk.
- Extract each BizHawk version into its own folder. Do not merge files from different versions.
- Launch
EmuHawk.exe(Windows) orEmuHawkMono.sh(Linux). - Open a ROM or disc image from File > Open ROM.
- If BizHawk reports missing firmware, open Config > Firmware... and add the required BIOS/firmware files.
- Configure controls from Config > Controllers....
- For TAS work, use Tools > TAStudio.
Do not mix versions. Keep separate folders for separate BizHawk versions. Mixing files from different releases can cause crashes, missing dependencies, broken cores, or movie sync problems. Windows users should also run the prerequisites installer; Linux users should follow the distro-specific instructions from the README.
What Should I Read First?
Use this page as a map:
- • New user: read Quick Start, Firmware and BIOS, and Common Troubleshooting.
- • TAS creator: read TAStudio and Movie Recording, BK2 Movie Format, and Rerecording.
- • Lua user: read Lua Scripting Basics.
- • Disc-based systems: read Disc Images and Multi-Disc Games.
- • PSX, NDS, N64, DOSBox, Libretro, or MAME users: read Platform-Specific Notes.
- • Developers and automation users: read Command Line and Lua Scripting Basics.
Some systems require BIOS or firmware files. BizHawk does not include these files, and they cannot be legally distributed with the emulator.
Open Config > Firmware... to see the firmware manager. BizHawk will show which files are missing, optional, or already configured. Right-click an entry and choose Info to view hashes and verify whether your file matches the expected dump.
Many games run without extra firmware, but for TAS submissions and maximum compatibility you should use correct firmware whenever possible.
Common systems that may require or benefit from firmware include PlayStation, Sega Saturn, Sega CD, Famicom Disk System, Game Boy Advance, Nintendo DS/DSi, PC Engine CD, Atari 7800, ColecoVision, Commodore 64, Apple II, and others.
BizHawk is running below 100% speed
First check that you did not accidentally change the speed setting. Use Config > Speed/Skip > Speed 100%, or reset speed with the default hotkey.
If the game is still slow:
- • Try OpenGL or Direct3D instead of GDI+.
- • Disable sound when using heavy turbo.
- • Use a dedicated GPU if your system has one.
- • Remember that some BizHawk cores are slower than standalone emulators because they are constrained for deterministic rerecording.
BizHawk has several throttle modes: Clock, Audio, VSync, and None. Clock keeps the game synced to real time; Audio syncs to audio output; VSync syncs to display refresh; None removes throttling. Fast-forward uses the Alternate Speed setting.
I get "missing firmware files"
Open Config > Firmware... and check the required file. BizHawk does not provide BIOS files. You must dump them from your own hardware or otherwise acquire legally dumped files yourself. After adding a file, verify its hash from the firmware manager.
I get out-of-memory errors while recording
Use:
Config > Customize > Store movie working data on disk instead of RAMThis avoids most memory-related movie recording problems by storing working movie data on disk rather than in memory.
My TAStudio project is corrupted
A .tasproj file is a ZIP archive. Open it with 7-Zip and remove the GreenZone file. If that fails, extract the project, remove GreenZone, re-compress the contents as ZIP, and rename the file back to .tasproj.
If the project still fails to load, create a new TAStudio project, extract both projects, copy the old Input Log.txt into the new project, and re-compress it.
TAStudio shows an empty frame at the end
That is normally not an extra input frame. TAStudio shows the point at which the last input is sent to the game. If you inspect the underlying movie input log, the visual "empty" end row is not usually stored as an extra input frame.
AVI recording splits near 2 GB
Use:
File > AVI/WAV > Config and Record AVI/WAV > FFmpeg writer > AVI Lossless FFV1To avoid splitting on resolution changes, use:
File > AVI/WAV > Config and Record AVI/WAV > Resize VideoFor higher-resolution output, set a custom display size and record the client area with OSD capture if needed.
BizHawk is built for rerecording and TAS creation. The main workflow is:
- Load the game.
- Open Tools > TAStudio.
- Record or edit input frame by frame.
- Use savestates and branches to test alternate paths.
- Export or save the project/movie.
- Verify sync by replaying the movie from the beginning.
TAStudio works like a piano roll for inputs. It lets you edit inputs across frames, branch from earlier states, compare timelines, and build a movie without relying only on live play.
For older-style recording without TAStudio, BizHawk records controller input frame by frame into a movie file.
.bk2 is BizHawk's movie format. It replaced the older .bkm format used through BizHawk 1.7.2.
A .bk2 file is a ZIP archive. You can open it with 7-Zip or another archive tool.
Typical contents:
- Header - movie metadata such as author, emulator version, platform, game name, core, and game hash.
- Input Log - frame-by-frame input data.
- Comments - author notes.
- Subtitles - optional on-screen subtitle events.
- SyncSettings - core settings required for deterministic playback.
- CoreState - present when the movie starts from a savestate.
Do not casually edit .bk2 files unless you understand the format. Changing sync settings, firmware, core choice, or input structure can desync the movie.
BizHawk movies depend on deterministic playback. The same game, same firmware, same core, same sync settings, and same input should produce the same result.
Common rerecording errors:
- GUID mismatch - a savestate belongs to a different movie.
- Timeline error - a savestate branches away from the current movie timeline.
- Future event error - a savestate refers to a movie event that has not occurred yet in the current playback.
When working on a TAS, keep your movie files, savestates, firmware, and emulator version organized. If you change BizHawk versions mid-project, replay from the beginning and verify sync before continuing.
Open Lua scripts from the Lua Console. The built-in function list is available from the Lua Console through Help > Lua Functions List or by pressing F1.
Important: Lua scripts run from top to bottom. If you want a script to run every frame, use a loop or register callbacks. Always call emu.frameadvance() or emu.yield() inside long-running loops; otherwise the script can hang or crash EmuHawk.
Starting with BizHawk 2.9, Lua supports integer arithmetic. Older scripts that rely on the previous bit helper behavior may need migration.
Common Lua use cases:
- • Drawing overlays.
- • Reading and writing memory.
- • Logging game state.
- • Automating repetitive tests.
- • Creating bots.
- • Debugging RNG, position, velocity, timers, and hitboxes.
BizHawk supports cheats and memory tools, but cheats are generally not appropriate for RTA runs or TAS movie submissions. For analysis, however, the cheat and RAM tools are useful.
Use RAM Watch to monitor values such as position, speed, health, timers, RNG state, and score. Use the Cheat dialog when you need to write values back into memory.
Important concepts:
- • RAM stores temporary game state.
- • SaveRAM stores battery-backed or persistent save data.
- • ROM is the game data itself.
- • Memory domains represent different address spaces exposed by the core.
- • System Bus is often the most useful domain, but not every core exposes the same domains.
If a frozen value keeps changing, the game may update it multiple times per frame. In that case, simple freezing may not be enough; you may need Lua memory callbacks or a different memory domain.
BizHawk's display pipeline includes prescaling, filters, aspect-ratio handling, Lua drawing surfaces, OSD, screenshots, and AVI capture.
Useful settings:
- • Use OpenGL or Direct3D when possible.
- • Avoid GDI+ unless you need a fallback.
- • Use integer scaling for sharp pixels.
- • Use custom size if you need exact capture dimensions.
- • Restart EmuHawk after changing display method.
- • Use client-area capture if you want OSD or Lua overlays included in video output.
Display options can affect screenshots, video capture, filters, Lua overlays, and perceived aspect ratio. If a recording has the wrong size, check both display configuration and AVI/WAV capture settings.
Sound On controls playback, but audio is still emulated internally. Mute Frame Advance prevents short audio pops during frame advance. Output method and buffer size can affect latency and stutter.
If you need maximum turbo speed, disabling sound can help.
For PlayStation and other disc-based systems, prefer clean, well-dumped disc images. BizHawk can load .cue files directly, but images using compressed audio formats may need conversion through DiscoHawk.
For PSX:
- •
.ccdis often preferable when available. - •
.cue+.binis common, especially for redump-style dumps. - •
.cue+.sbimay be required for some copy-protected games. - • For multi-disc games, use an
.m3uplaylist or Tools > Multi-disk Bundler. - • Disc swapping is done through PSX > Disc Controls.
Disc swapping cannot happen instantly in the same frame. Eject the disc, advance at least one frame, then insert the next disc. Some games may need more than one frame to detect the swap.
Nintendo DS and DSi
The NDS core uses melonDS. NDS emulation may use two BIOS files and one firmware file. If real BIOS files are not provided, melonDS can use freebios, but real BIOS files are recommended where possible because free replacements may cause bugs in some games.
For DSi mode, real NDS BIOS files, real DSi BIOS files, and DSi firmware may be required. For new DSi movies, use BizHawk 2.11 or later because it handles NAND formatting in a deterministic way.
PlayStation
PSX emulation supports saveram, savestates, input, memory domains, Lua register access, disc detection, audio/video, disc swapping, SBI files, lag detection, and virtual pad features.
If a PSX issue appears to be core-related, test the same case in Mednafen when relevant. Some PSX patching problems come from disc images where data was changed but error-correction data was not updated.
Nintendo 64
BizHawk accepts .z64, .n64, and .v64 ROM formats. Controller Pak is emulated; Rumble and Transfer Pak support may be incomplete depending on the core and version. Old Mupen64 .m64 movies are not directly supported as BizHawk movies.
DOSBox-X
BizHawk supports DOS and some Windows systems through DOSBox-X. Use the DOSBox-X-specific documentation for media support, configuration, boot flow, and movie submission details.
Libretro
Libretro cores can expand compatibility, but they are not all equally stable, accurate, or TAS-suitable. If a Libretro core behaves incorrectly, compare against RetroArch before reporting it as a BizHawk-specific issue.
Run EmuHawk.exe --help or EmuHawkMono.sh --help to list available flags.
Note: --help has been available since 2.10 on Linux; on Windows it works starting with 2.11.1.
Use command-line options for automation, scripted workflows, testing, launching specific files, or integrating BizHawk into external tooling.
Before asking for help:
- • Confirm your BizHawk version.
- • Keep the version in its own clean folder.
- • Check whether firmware is missing.
- • Test whether the issue happens with a clean config.
- • Test whether the issue happens in the latest release or dev build.
- • For platform-specific issues, check the relevant platform page.
For GitHub issues, include the game, core, host OS, BizHawk version, exact steps, expected result, actual result, and any logs or screenshots.
Support channels include the BizHawk GitHub issue tracker, the TASVideos forum, and the TASVideos Discord.
Contributing
BizHawk is maintained by volunteers. If you want to improve this documentation or the emulator itself, visit the GitHub repository.