2.6.3 / 01-10-2021






BizHawk is a multi-platform emulator written in C# which focuses on core accuracy and power user tools. Its main features are TASVideo (Tool-Assisted Speedrunners) for full recording and debugging tools as well as Lua scripting. The consoles covered include but are not limited to Apple II, Atari 2600/7800, ColecoVision, DOS, Game Boy/Game Boy Color/Super Game Boy, MSX, Nintendo Entertainement System, Super Nintendo, Gameboy/Color, Sega Master, Sega Genesis, Sega 32X, Sega Saturn, Sega GameGear,  ZX Spectrum, Atari 2600/7800, Commodore 64 and a few more!


Windows: 7+ 

  • .NET Framework 4.6.1, Visual C++ Redists (2010 SP1, 2012, 2015) & Direct3D 9 required.

  • They provide a pre-requisite package

Linux: As stated by the authors, support is a work-in-progress

Most Recent Changes


  • Updated nyma cores to Mednafen 1.27.1


  • fixed #2873 - Mnemonic display for PCECD shows ! instead of the II, III, IV and VI buttons as well as the mode "buttons"


  • Fixed #2856 - SNES Super Scope gives an exeption error
    Added sa1_iram memory domain for new bsnes
    Fixed #2942 - Adaptating the bsnes gamma ramp shader


  • Added haptic feedback passthrough (with rumble pak enabled in controller settings, look in keybinds after analog)
    Fixed #2808 - Support null (any) address for N64 breakpoints
    Updated GLideN64
    Added new GLideN64 settings: BackgroundsMode, txEnhancedTextureFileStorage, and txHiresTextureFileStorage
    fixed #2864 - N64 PAL roms in .n64 format are treated as NTSC


  • Fix fast forwarding


  • Fix mapper 88 mirroring. Closes #2847
    Improve power on state accuracy


  • Fixed #2805 - memory hooks (event.onmemorywrite) not being removed properly
    Fixed #1112 and #1870 - Add Game Overrides as a Sync Setting (including rtcEnabled)


  • Overhaul datacorder and cassette loading code. This should now be more accurate and fixes a number of loading isues with particular games and loading schemes. Fixes #1446


  • BizHawk changes mainlined into upstream gambatte-core, which is now split from gambatte-speedrun
    Linux support added
    full HLE SGB mode implemented in Gambatte, better than SameBoy
    no BIOS accuracy improvements and HLE of CGB-DMG colors (restoring to original Gambatte behavior of hacking in the post BIOS state)
    Expose isCgbDmg + add isCGBDMGMode instead of isCGBMode to movie headers if active
    Tracelogger fixes #2710 #2701 #2902
    Open Bus Emulation
    Use dumped uninitalized AGB WRAM for AGB instead of CGB initial RAM layout
    fix rare crash when changing window when the LCD is disabled and an hdma was requested within that lcd disabled period, #2919
    initialize controller once on core construction and require core reboot to change it, #2921
    automatically create missing BIOS files by patching files you already have (GBC<->GBA, DMG<->MGB, and SGB2<->SGB1)
    various other improvements to accuracy, savestate consistency, and stability


  • Update to Mednafen 1.27.1
    Added options for virtualboy to only show left or right screen


  • fixed Virtual Pad schemata


  • Add to Linux port


  • Fixed #2747 and #2077 - improper handling of file paths
    fixed #2787 - unable to open roms in EmuHawk via File Explorer on Windows
    fixed #2759 - strange behaviour of minimised windows on Windows
    fixed #2435 - tab labyrinth in `Config` > `Paths...`
    fixed #2643 - include frame numbers when copying rows in TAStudio
    fixed #2784 - xbone or gamepads pretending to be xbone are detected as two gamepads
    prevent crashing when unplugging gamepads using DirectInput+XInput method
    rewrote most of the OpenTK gamepad code and some of the DirectInput+XInput gamepad code, probably fixing obscure bugs
    respect system chosen for file ext. (i.e. `Config` > `File Extensions...`) when loading an archive containing a single file
    Fixed Basic Bot

RAM Watch

  • Added HandleWatchSizeSelected() to allow user-initiated watch size changes to be ignored if they reset the setting to the same value. fixes #2857


  • fixed #2463 - config option for rewinds every fixed number of frames
    Fixed #2826 - bad interaction between rewind+movie+savestates when using delta state rewinder
    Fixed #2877 - rewinds sometimes drifting 1 frame forward when loaded


  • allow loaded ext. tools to be queried via client Lua library / IToolApi
    Make sorting optional for forms.setdropdownitems
    fixed #2844 - new lua functions for memory and mainmemory: read_bytes_as_array / write_bytes_as_array / read_bytes_as_dict / write_bytes_as_dict
    added event.onconsoleclose to Lua API
    allow most of the mmf Lua library to be used without passing --mmf on the command-line, and add some helper functions to it
    fixed #2940 - made client.openrom behave like client.reboot_core


  • fixed #2760 - prevent crashes when minimizing and other cases


Set all cores to update Frame counter post-emulation. NOTE: This is a sync breaking change for MGBA movies using RTC, as the time sent to the core was the pre-incremented time.


  • update to 0.9.1


  • Fix RTC on Hard Reset
    MBC3 Fixes
    Support setting inital RTC state during a movie recording
    Fix layer masking
    Move layer masking to sync settings (these settings affect sync)
    Block toggle layer hotkeys when movie recording
    Update GBA modeswitch timing and testROM accuracy
    Fix autodetection of console mode
    Add wisdom tree mapper suport
    clarify sync settings (#2688)


  • Fix OAM DMA Bus Conflict emulation (#2709)
    #2715 , still needs vram open bus fix but that's seperate


  • Add missing mapper variable to state for some pirate games


  • Fix PAL time calculation (#2684)


  • Fix default PCE gamepad bindings (fixes #2720)
    Fix crashes in PCE debugger


  • Add N64 plugin categories (#2729)
    Fix memory.read to allow addresses 0x80000000..0xFFFFFFFF (#1734)


  • Add missing menacer keys (#2718)


  • Fix aspect ratio (#2670)


  • Fix system Id (#2650)


  • Implement memory hooks (#2726)


  • Fix FormatException on startup on certain locales (#2716)
    Fix GB Layers not toggling (#2491)
    Add utvideo to ffmpeg dumper
    Movies - respect LogKey of loaded movie
    Firmware Config - don't treat known-but-bad as good (#2224)


  • Fix bug where nothing happens on the first press when frame interval is 1 (#2667)
    Add delta compression option (Good size reduction for some cores, less useful for others)
    Ram Watch - fix autoload
    Hex Editor - .tbl file loading - clear table before loading a new one, ignore empty lines in file
    Debugger - Add rgbds syntax for GB/C disassembly (#2706)
    CDL - Fix SNES core crash on load (#2662)
    Fix Log Window (#2694)


  • Accept all 4 colour formats in all Lua functions (#2602)
    Support swapping input using joypad.set() and joypad.get()
    client.seekframe - Prevent hangs from trying to go backwards
    lua socket fixes (#2194, #2671)
    MovieClock.lua - use cycle based time for Gambatte/SubGBHawk (#2708)


  • Fix auto-restore bug where auto-restore position was not set correctly the first time using it after auto-restore usage earlier in the movie
    Fix broken tastudio when selecting "New from the File" menu item and saving changes when asked
    Fix autoload
    Fix Converting to bk2 resulting in unsaved changes never asterisk appearing (#2583)


  • Fix branch loading (#2640)
    Fix hotkeys
    Fix right-clicking a branch when the contextmenu was already open would throw an exception
    Branch view will now scroll to the updated branch when using hotkeys to update a branch
    Fix exception, scroll to branch on updating branch and fix #2645
    Make load branch hotkey deselect all but one branch
    Add initial marker in frame 0 when loading older tasprojs (#2693)



  • Fix trying to use DIrectInput (2607)


  • Fix single instance mode (#2577)

  • Update default hotkey bindings to use new names (#2576)

  • Limit attempts to dearchive to files with extension .zip, .7z, .rar. (#2587)

  • Rename and clarify Alternate Sync (#1398)

  • Fix clock throttle being 60fps for all systems (#2580)

  • Fix multi-disk bundler

  • Fix resizing controller config dialog


  • Fix savestate corruption bug introduced in 2.6. This bug causes desync issues on most cores!

  • Refresh view when pausing with middle-click


  • Fix client.reboot_core()

  • Fix drawing during onframeend() event handler (#2595)


  • HawkReport 50fps in the Play Movie dialog


  • Fix VDP Viewer screenshot feature (#2596)


  • Fix Wagyan Land 2 Graphical Bugs

  • FIx mapper 90


New Core! Odyssey2 core is offically released

Update nyma cores to Mednafen 1.26.1


  • Fix cart detection (#2513)

  • Fix independence Day soft lock (Fixes #2162)

  • Fix .xml loading Fixes #2557.


  • Update to 0.9


  • Update libgambatte to r729+

  • Support GB layer toggling

  • Add GB object viewer

  • Various updates from gambatte-speedrun


  • Add System Bus memory domain

  • Fix debugger window crashes when adding a breakpoint

  • Use Octoshock's built-in disassembler

  • Support memory execute callbacks

  • Have memcbs include actual values

  • Fix can't accept PSX rom converted from DiscoHawk (#2478)


  • Accuracy improvements

  • HDMA fixes

  • Implement reads for GBC visualizer

  • Change initial ram state

  • Double Speed mode fixes

  • Properly fade to white in GBC mode

  • Mode 1 overhaul, fixes several bugs

  • Update bad SRAM access emulation

  • Open bus behaviour on locked SRAM

  • Multi-cart check for bomberman selection

  • Window timing bug fixes

  • Sprite timing bug fix

  • Add Game DB entry for Litti's Summer Sports

  • Fix debugger disassembler

  • Implement LCDC write glitch for gbc-acid-hell


  • Save audio cycles in SubGBHawk where it's needed, fixes state integrity checker in TAStudio


  • Make ROM memory domain writeable (Use at your own risk)

  • add CARTROM-DB and CARTROM-D blocks to CDL

  • Fix PAL detection (#2503)


  • HawkChange NES framerates (#2460)


  • XAllow writing to rom memory domains



  • Fix Xbox one controller stops working, (#2429)

  • Fix overlapping/duplicate controls in FirmwaresConfig's

  • menu

  • Fix crash when clicking on column headers in

  • FirmwaresConfig

  • Support Oem102 keyboards

  • Fix alt-keyboard-layout mode crashes

  • Add an option to capture the Lua without capturing the full OSD, when AV recording

  • Don't clear input when changing ROM (#2453)

  • Fix GBA Game Shark code conversion (#2545)

  • Cheats - Fix Changing selected row with arrow keys doesn't update side pane (#2550)

  • GB GPU Viewer - Bounds check tile drawing for OBJ window, seems to resolve random crashing

  • Fix SyncSettings type cast error during Rom load

  • Ram Search - fix crash when deleting addresses


  • Implement joypad.getwithmovie()

  • Deprecate emu.getluacore in favour of new func client.get_lua_engine

  • Fix reverting current directory

  • Fix client.reboot_core() (#2571)

  • Fix MovieClock.lua ui, also use current frame count instead of movie length


  • Support drive states

  • Fix state gap when frame advancing and painting input

  • StateManager fixes

  • Do not attempt to report >100% seek progress (This could happen if the user starts a seek which results in loading a savestate past the frame previously being seeked)

  • Fix scrollbar behavior

  • Cell selection fixes

  • Fix opening TAStudio after starting a .tasproj

  • Undo history fixes

  • Debugger: Fix scrolling in disassembly view

  • Virtual Pad analog stick: Fix changing x axis name (#2467)


  • Pass SRAM to emulator before state is made

  • Fix playing a movie when core is not specified and core is not one we support switching of (#2466)


  • Fix crash on GPGX

  • Gambatte - fix 1st opcode byte. (#2551)

  • GBHawk - Fix domain names (#2552)