Newer Releases


BizHawk 2.9.1

  • Linux port
    • fixed last issue in #2951 properly
  • AppleII / C64
    • fixed states sometimes crashing when a disk change actually happens
  • BSNESv115+
    • fixed #3638 (snes_get_board returns empty string)
    • fixed #3643 ("No PPU sprite limit" option doesn't seem to work)
  • Gambatte
    • fixed #3648 ([GameBoy Link] Buzzing noise when one of the Players is muted)
  • MAME
    • fixed BIOS selection menu
    • added emulation issues and ROM info to RomDetails dialog
    • report emulation status via ROM info icon and text
    • fixed #3631 (bgaregga locks up the process)
    • hide settings for optional dip switches (for now)
    • use 0x3ffffffc as framerate numerator, like actual MAME does since 0.254 (fixes MP4 processing on YouTube)
    • fixed #3565 (kinst + kinst2 = crash)
    • fixed #3615 (rom loading regression)
    • fixed crash with games using k001006_device (e.g. windheat)
  • NESHawk
    • fix open bus execution following write instructions (#3633)
  • Octoshock
    • fixed exe load crash
  • SMSHawk
    • fix noise audio channel on SMS VDP (LFSR is 16 bit wide) (#3602)
  • EmuHawk
    • fixed #3268 ("Unthrottled" setting burns cpu when paused)
    • If a PSX .bin is loaded, try synthesising a .cue
    • don't keep multidisk flag on after it was set once
    • speedup the PlayMovie dialog
    • Prevent annoying waits when using firmware manager with DSi NANDs present
    • Lua
      • fixed #3616 (error loading module in lua (socket.dll))
    • TAStudio
      • speedup column drawing
      • fixed bugs with entries in patternsform (#3649)
    • RetroAchievements
      • fixed RetroAchievements rich presence not working
      • fixed Jaguar CD homebrew hashing wrt retroachievements
      • disabled leaderboard list form
      • fixed various crashes and deadlocks

BizHawk 2.9

  • Linux port
    • fixed various file pickers using case-sensitive file extensions
    • added short-circuit to Mupen64Plus loading to avoid error messages and any strange failure state
    • enabled menu mnemonics (Alt+X) for MainForm
    • fixed inconsistent application of colours from GTK theme when Mono is able to use it
    • added Gentoo to Linux run script
  • New cores
    • MAME
      • Arcade-only build of MAME 0.252
    • Ares64
      • Interim version after v130.1
      • Angrylion-rdp for RDP and VI emulation
      • Transfer Pak support and N64 Mouse support
      • Debugging features: disassembler, get registers, System Bus domain
      • SIMD RSP implementation
      • N64DD support
    • VirtualJaguar
      • Jaguar and Jaguar CD emulation
    • TIC-80
      • core for the TIC-80 fantasy computer, using nesbox's own reference implementation
    • SubBSNESv115+
      • subframe capable variant of the BSNESv115+ core (#3281)
  • A2600Hawk
    • fixed crash when pushing Select on Karate title screen
  • BSNESv115+
    • made this core default in places where the old BSNES core was
    • reworked Payload peripheral and fixed Virtual Pads
    • improved peripheral selection for P1
    • reimplemented MSU1 properly
    • added fast DSP and fast coprocessor settings
    • fixed crash when loading a savestate after a reset (#3173)
    • added region override setting
    • added overscan and aspect ratio correction settings
    • implemented an ExtendedGamepad controller which acts like a normal gamepad with 4 extra buttons
    • fixed justifier controller
    • added option to disable ppu sprite limit (#3440)
    • implemented SNES graphics debugger
    • updated internal sameboy version for SGB by linking it to the standalone sameboy core, fix SGB saveRAM
    • fixed CARTROM and CARTRAM memory domain names (#3405), provide SGB memory domains, set MainMemory and SystemBus domains properly
    • fixed lag detection in certain games
    • implemented bsx + bs memory loading (#3457)
    • added RTC support (#3577)
  • (old) BSNES
    • fixed graphics debugger exception when freezing a tile (#3195)
    • fixed a possible IndexOutOfRangeException in the graphics debugger (#3399)
    • also fixed a potential DivideByZeroException (#3398)
  • C64Hawk
    • various savestate fixes
    • added SaveRAM support
  • CPCHawk
    • removed redundant AmstradCpcPokeMemory tool
    • renamed some bundled firmware files (#3494)
  • Cygne
    • allowed .pc2 (Pocket Challenge v2) files to be loaded
  • Faust
    • updated to Mednafen 1.29.0
  • Gambatte
    • improved MBC1/MBC1M emulation
    • improved HuC1 emulation and implement HuC1 IR support
    • improved HuC3 emulation and implement support for mapper sound (HuC3 is currently the only use case)
    • implemented MMM01 emulation
    • implemented M161 emulation
    • improved heuristics for various multicart mappers and remove the multicart detection setting (now effectively always true)
    • implemented remote control controls, expanded remote control emulation for HuC1 IR and CGB IR (previously only HuC3 IR had this implemented, using a hardcoded value)
    • cleaned up the mapper internals, IR, and RTC code
    • made various optimizations to the CPU loop and read/write code (around 10-15% performance increase)
    • trimmed down initial time settings to a single setting, using total number of seconds
    • implemented quirk with bit 4 of rLCDC, fixes cgb-acid-hell testrom compliance
    • fixed sprite priority in CGB-DMG mode
    • prevent crashes due to "negative" numbers being added to the sound buffer pointer (#3425)
    • fixed audio output being too quiet (#3338)
    • added a CGB color correction option using the same formula as SameBoy, and made that the default
    • time fixes (long periods of pausing causing rtc overflows in real time mode; time incorrectly advancing when loading in a save file)
  • GBHawk
    • fixed Code-Data Logger crashing due to typo'd mem domain name (#3497)
    • fixed wrong MBC5 mapper being given a battery
  • Genplus-gx
    • stopped byteswapping Z80 domains (#3290)
    • changed default peripheral to 3-button Genesis gamepad (#2775, #3262)
    • added option to disable ppu sprite limit (#3440)
    • prevent svp dereferences when not using an svp cart (#3297)
    • give NHL 96 (Genesis) SRAM (#3300)
    • fixed disc swapping, re-enabled the disc buttons
    • fixed disabled layers being wrongly re-enabled on a load state (#3388)
    • fixed pattern cache invalidation (#3363)
  • HyperNyma
    • updated to Mednafen 1.29.0
  • Libretro
    • rewrote Libretro host implementation, fixing some crashes, adding memory domains, and slightly improving performance (#3211, #3216)
    • fixed input display (#3360)
    • implemented needed environment functions for resolution changes
    • added reset support (#3482)
  • melonDS
    • updated to interim version after 0.9.5
    • fixed SaveRAM not getting written to disk when unloading/reloading core (#3165)
    • implemented threaded renderer support
    • replaced darm with a new DS centric disassembler, fixing various issues with tracing/disassembly
    • r13/r14/r15 reported as sp/lr/pc for tracelogs
    • split ARM7/touch screen polls to an "alt lag" variable and added a setting for whether to consider this "alt lag" (#3278)
    • reduced state size a bit
    • improve audio resampling; get rid of libspeex dependency
    • added missing TMD for Zombie Skape, improved error message when TMD cannot be found
    • ensured firmware settings match up with sync settings if real firmware is not used (#3377)
    • did various internal cleanups
    • add TCM memory areas for melonDS core (#3420)
    • added Clear NAND setting
    • added dsiware saveram support
  • mGBA
    • updated to interim version after 0.10.0
    • fixed a softlock in Hamtaro: Ham Ham Heartbreak (#2541)
    • implemented save override support with EEPROM512 and SRAM512
    • correctly account for multiboot GBA ROMs (#3421)
  • Mupen64Plus
    • always savestate expansion pak regardless of settings, resolves some desyncs/crashes due to shoddy no expansion pak implementation (#3092, #3328)
    • fixed changing expansion pack setting
    • added angrylion as yet another graphics plugin
    • fixed mistake in angrylion implementation (#3372)
  • NeoPop
    • updated to Mednafen 1.29.0
  • NesHawk
    • relaxed restriction on VRC1 PRG registers, so they can be larger than the original VRC1 chip allows (for rom-expanding hacks)
    • fixed PGR writes for VRC1 not using mask for address
    • fixed SXROM detection (#3168)
    • fixed crash for Namco 163 mapper (#3192)
    • "un-implemented" ICycleTiming so that NesHawk no longer tries to use the cycle timing intended for SubNesHawk
  • Nymashock
    • updated to Mednafen 1.29.0
    • fixed disc switching
    • fixed light guns (#3359)
    • wired up rumble support
    • improve analog input range (#3528)
  • SameBoy
    • updated to interim version after 0.15.7, fixing some bugs (#3185)
    • added GB palette customiser (#3239)
    • wired up rumble support
    • exposed audio channel enable/disabling
    • .GBS support
  • Saturnus
    • updated to Mednafen 1.29.0
    • fixed disc switching
    • fixed light guns (#3359)
  • SMSHawk
    • fixed InvalidOperationException when using SMS peripherals (#3282)
    • fixed screechy/static audio during Sega logo in Ys (Japan) (#3160)
  • Snes9x
    • fixed typo in sound settings bitfield (#1208)
  • T. S. T.
    • updated to Mednafen 1.29.0
  • TurboNyma
    • updated to Mednafen 1.29.0
  • Virtu
    • fixed some internal state not being overwritten by savestates
    • changed RTC to use deterministic time when recording instead of (host) system time
    • changed up AppleII's "main ram" domain, added aux ram domain
    • added SaveRAM support
  • VirtualBoyee
    • refactored core to use the same Nyma system as the other Mednafen ports
    • updated to Mednafen 1.29.0
  • ZXHawk
    • removed redundant ZXSpectrumPokeMemory tool
    • renamed some bundled firmware files (#3494)
  • EmuHawk
    • fixed keybinds not working after waking from lock screen on Windows (#3161)
    • added warning when current firmware customization does not match the one specified in the movie header (#2498)
    • refactored memory poking, allowing negative values for fixed-point watches and fixing other bugs (#3175)
    • fixed .gmv importer not setting the core name in the .bk2 header
    • fixed regression where screenshots from some cores were transparent (#3166)
    • fixed Lua referencing a core after it's unloaded, making scripts crash (#3226)
    • made DirectX optional on Windows (it's still in the prereq installer because it's usually faster)
    • fixed opening roms from "jump list" in Windows shell / file manager (#3224)
    • improved UX of loading a savestate from an older (or newer) version
    • fixed shaders' height being used for width
    • finished UX for merging/unmerging LShift+RShift and other modifier keys (#3184, #3257)
    • fixed .dsm importer which relied on non-deterministic Dictionary (hashmap) ordering for axis names, also parse RTC in DsmImport
    • stopped offering to remove missing file from recent roms when it's not actually missing, just failed to load (#3006)
    • fixed hotkeys triggering accidentally in Virtual Pad on Windows (#3087)
    • increased precision when tweaking axis sensitivity/deadzone (#3038)
    • fixed category radio buttons being cut off in Messages config
    • restored "priority" option for U+D/L+R policy, and made it the default again (#2752)
    • refactored firmware config so the acceptability status icons make sense (#3157)
    • fixed Screenshot (raw) -> Clipboard not showing keybind hint
    • added UI for editing any* core's settings/syncsettings without it being loaded
    • fixed strange behaviour when trying to extract archive which contains folders
    • bumped FFmpeg to 4.4.1, added auto-download to Linux port (#3259)
    • reordered Config -> Preferred Cores submenu
    • removed some unnecessary prompts to reboot core
    • moved "Save Window Position" for main window to Config -> Display... -> Window and added a "Stay on Top"
    • fixed Windows version detection and enabled warning for unsupported versions (#2972, #3194)
    • fixed some systems not having a name to display in the window title
    • fixed MSX rom loading
    • made file extension check for disc images case-insensitive
    • added warning dialog when running as Superuser/Administrator
    • fixed overlapping UI elements in Config -> Controllers... when Windows UI scale is not 100% (#2605)
    • fixed overlapping UI elements in Record Movie dialog when Windows UI scale is not 100% and on Linux (#2605)
    • fixed the autoselection of a movie when opening the Play Movie dialog
    • fixed %recent% being expanded to the wrong path
    • fixed window title being blank when chromeless mode is enabled
    • improved handling of host sound init failure
    • added prompt for if you start movie playback while cheats are enabled (#3389)
    • improved cheat editing UX
    • removed default bindings for virtual keyboards
    • updated virtualpads immediately when the movie status changes between read-only and record mode
    • fix key releases not getting handled correctly when modifier keys are pressed (#3327)
    • fix a crash when selecting user shaders (#3495)
    • fix gamedb loading not blocking when loading a rom, potentially causing a miss with a slow hdd (#3489)
    • fix crashes when setting absurdly large padding values (#3321)
    • make DisplayConfig defaults button set padding back to 0
    • add auto save state on close (#1861)
    • zstd compression is used instead of deflate compression where possible (rewind, .wbx cores, internal resource files, binary blobs in movies, savestates, etc)
    • hardware accelerated CRC32 and SHA1 algorithms are used if the user's hardware allows it
    • add hash for newly discovered GBC-GBA bootrom
    • removed gongshell, added "simple" code for opening win32 context menu (gongshell's only actual use) (#2261)
    • fixed firmware fields with a dummy checksum using the wrong firmware info (#3159)
    • fixed "Toggle All Cheats" hotkey behaviour
    • did minor refactors to byteswapping (N64 rom loading and Lua bit library)
    • implemented RetroAchievements support (#3407)
    • fixed pause at end of movie when playing a tasproj without tastudio
    • fixed NaN values displaying in RewindConfig, use system's canonical framerate for rewind duration estimate
    • various NES PPU viewer fixes
    • updated Windows version check to reflect 8.1 EOL
    • fix audio not getting muted when opening modal dialogs (see #3545)
    • added hotkey for toggling on-screen messages
    • renamed quicksave slot 0 to 10
    • strip "SHA1:" and "MD5:" when copying lines in the log window
    • have TAS profile also enable NDS BIOS
    • improved DisplaySurface performance (#3517)
    • fix malformed PC Engine gamedb entry ("Sounds" was interpreted as the sysID)
    • add N64 to multidisk bundler list
    • add some sort of documentation for B/V gamedb flags
    • hide debug tools from Tool Box and add ext. tools
    • added Magnum (FBX) and Wavebeam NES palettes
    • added --userdata CLI flag
    • added .cdi support
    • fixed window title after loading rom via FW config (#3581)
    • clear MovieSession._queuedMovie if rom load fails (#3582)
    • .bin file Mode2/2336 support (#3387)
    • added keybind (hardcoded) for MainForm context menu
    • persist A/V settings to disk properly (#1226)
    • fixes and improvements to SNES lightguns
    • RAM Watch
      • fix CTRL+A not working properly
    • RAM Search
      • added Select All/None
      • switch _watchList from a List to an Array (faster)
      • fix hang with "Go to Address" dialog in RamSearch (#3384)
    • Hex Editor
      • fixed incorrect handling of big / little endian (#3516)
      • disabled "Save [to rom file]" when not looking at rom
    • TAStudio
      • fixed "Select between Markers" hotkey not working
      • fixed .tasproj headers being written differently based on locale (i.e. ',' instead of '.')
      • don't autorestore if current frame remained valid
      • refactors for selection in InputRoll, standardising behaviour of Select All and Insert Separator buttons
      • resolve some inputs showing ! in Nymashock and hide some columns by default
      • when starting new .tasproj from SaveRAM, don't clone SaveRAM twice
      • fixed modifier key check in TAStudio.TasView_MouseDown
      • added 'Edit marker frame' feature
      • fixed ArgumentOutOfRangeException when loading TAStudio with cheats
      • improved input copy/paste behavior (#3506)
      • fixed incorrect behavior when switching systems and improve handling of default.tasproj (#3462)
      • improved clarity of label texts in custom color dialog (#2119)
      • fix KeyLog not being respected in TAStudio and custom LogKey getting discarded (#2843)
    • Lua
      • replace the two lua engines with an updated version of NLua, backed internally by native lua 5.4.4
      • update lua documentation in reflection of new lua features
      • rely on a system provided lua 5.4 .so (or lua 5.3 if needed) when on Linux, resolving issues due to providing our own lua
      • various changes due to real integer support in new lua
      • deprecate bit library functions which have direct operator counterparts in new lua
      • add in a migration helper for lua bitwise ops (put bit = (require "migration_helpers").EmuHawk_pre_2_9_bit(); at top of file)
      • added arguments to memory callback functions (cb will be called with addr, val, flags)—check event.can_use_callback_params("memory") when writing polyfills
      • fixed setting size of Lua Forms (#3034)
      • fixed encoding bug which caused e.g. Japanese text to become mojibake/garbled (#190, #2041)
      • fixed the forms.* functions for LuaPictureBoxes erroneously affecting every form instead of the one specified (#3395)
      • renamed (deprecated) event.onmemory{read,write,exec,execany} to event.on_bus_{read,write,exec,exec_any} (#759)
      • added bizstring.pad_{start,end} convenience functions
      • changed Lua Console to trigger a clear of drawing surfaces and the OSD when removing a Lua script, and to reset padding when removing the last script
      • fixed require not looking in Lua dir on Linux
      • added "Clear Output" button to Lua Console
      • fix documentation error in client.gettool
      • set Form.Owner to MainForm for Lua-made forms
      • fixed wiki export, add more notes to fill in some of the holes
      • documented frameadvance loop
      • documented socket response format
      • fixed possible crash in print (#3513)
      • fixed mainmemory lib keeping reference to unloaded core's memdomain
      • suppress updates while rebooting core (#3424)
      • fixed various things in the LuaConsole (#3476)
      • fixed unwrapped lua exceptions not being correctly thrown
      • properly handle errors when running a lua script, using Resume/Yield methods added to the LuaThread class (see https://github.com/TASEmulators/NLua/commit/f904fa0d53b06c67dd8e9b409dcbb9fa8aa721f2)
      • fix mainmemory.write_bytes_as_dict
      • Pass through input/hotkeys while Lua form is focused (to restore previous behaviour, call forms.setproperty(form_handle, "BlocksInputWhenFocused", true);)
      • fix PictureBox when width or height is null
      • use LuaPictureBox' custom resize in all cases
      • CloseRom acts like rebooting the core, so make it just reset Lua libs (fixes #3226)
      • fix detaching registered functions
      • support marshalling arrays of length 0 through BizInvoker, fixing a crash with lua
      • fixed event.onmemoryread behaviour under mGBA (#3230)
      • improved how removing callbacks from within a callback is processed (#1823)
      • have MemoryDomain inherit IMonitor, which can be used to avoid waterbox overhead for many nonsequential memory accesses (already used internally to speedup RAM Search and some lua functions; no-op for non-waterbox cores) (#3296)
    • ApiHawk
      • improve error message for IToolFormAutoConfig ext. tool missing menu
      • merged IGameInfoApi into IEmulationApi, and some other minor API method signature changes
      • changed injector to include non-public properties when looking for ApiContainer
      • deprecated some ExternalToolApplicability.* attributes
      • added IMovieApi.PlayFromStart/movie.play_from_start (#384)
      • added saveChanges parameter to IMovieApi.Stop/movie.stop
      • fixed edge cases for MemoryApi.{Read,Write}ByteRange/{memory,mainmemory}.read_bytes_as_{array,dict}/{memory,mainmemory}.write_bytes_as_array
      • added IUserDataApi.Keys/userdata.get_keys
      • fixed trying to load tool Forms when services aren't satisfied, causing NREs (#3329)
      • fixed HTTP and sockets not being initialised in time for tools autoloaded on startup
      • added "memory" of which ext. tools the user has vetted so the prompt does not appear when restarting EmuHawk
      • added length prefix to ICommApi.Sockets.SendScreenshot/comm.socketServerScreenShot to match SendString/socketServerSend
      • return success bool from OpenRom APIs (#3514)
      • have IMovieApi.Stop implementation use MainForm.StopMovie
      • fix --open-ext-tool-dll
      • made ext. tool build and run scripts pass args through to dotnet
      • deprecated `IGuiApi.DrawText` in favour of new method `PixelText` to match Lua
      • made `ApiContainer` props `MemoryEvents` and `MemorySaveState` return `null` if req. services unavailable
      • Use bulk peek in IMemoryApi.{ReadByteRange,HashRegion}
    • Basic Bot
      • added warning when loading a .bot into the Basic Bot which was made on a different game or system, or on an older version
      • increased max frames from 999 to 9999
      • added NOT operator
      • fixed anchor points and a misaligned label
      • fixed code logic error for 3 way tie breakers
      • refactor BasicBot.IsBetter
      • fixed issue where the Copy button was not toggled on/off properly
      • change addresses to ulong? (fixes empty address fields being saved as 0x0)
    • Debugger
      • fixed the "To PC" button not updating the disassembler view
      • fixed breakpoint crash with mGBA (#3287)

BizHawk 2.8

  • Misc. changes to EmuHawk:
    • fixed various bugs with the Paths config dialog
    • fixed "Close and reload ROM" in Firmware Manager crashing if it was opened from missing FW dialog (#3054)
    • fixed typos which broke INTV, NES, and PSX gamedb lookups
    • fixed known good Saturn BIOS choices marked as unknown (#3095)
    • updated list of Sega CD / Mega CD BIOSes in firmware database
    • many gamedb additions and updates
    • fixed RAM Search difference fields can't fit all possible values (#3117)
    • fixed File > Load State > Auto-load Last Slot breaking movie recording/playback (#2384)
    • fixed .dsm importer
    • fixed .smv importer nagging about core choice thousands of times (#3022)
    • fixed .vbm importer
    • made OSD message duration (time to fade) configurable in UI, and allow API calls to override it
    • added option to split RAM Watch entries (#1024)
    • fixed drag+drop bug (#1483)
    • made Config > Customize... > Pause when menu activated behave consistently
    • fixed overlapping UI elements in Debugger (#3026)
    • tidied up numbering of save slots and TAStudio branches (#3112)
    • fixed ObjectDisposedException when triggering single-instance passthrough
    • fixed throttle edge cases
    • fixed edge cases where post-frame tool updates would run twice after a frame advance
    • added more logging and warning dialogs for edge cases
    • many smaller fixes and even some frontend speed optimisations (not sarcasm, this is a first)
  • Linux port:
    • added support for PSX (see Nymashock below) and technically N64 and TI-83 (see Ares64 and Emu83 below)
    • fixed various problems w/ alignment and size under Mono
    • fixed hotkeys triggering accidentally when typing in Virtual Pad fields (#3087)
    • added Nix expression for reproducible EmuHawk (and DiscoHawk) builds without dependency issues
  • TAStudio:
    • re-enabled editing of movie comments (#3063)
    • added an edit dialog for TAStudio palette (#2119)
    • fixed branch screenshots (#1513)
    • fixed weird edge case putting TAStudio in an unaccounted-for state (#3066)
    • fixed error when autoloading a rom and TAStudio AND a .tasproj for a different rom
    • fixed incorrect behaviour when jumping to frame 0
  • Lua/ApiHawk:
    • added support for "#RRGGBB" format when parsing colours ("luacolor" in docs) in Lua API
    • fixed joypad.setfrommnemonicstr not working without reinitialising MovieSession (#2525)
  • DiscoHawk:
    • fixed deadlocks (#3128)
  • New and graduating cores:
    • Nymashock:
      • new PSX core ported from Mednafen (like Octoshock, though this is newer and more easily updated, which also means it has more peripherals)
    • SameBoy:
      • new ported GB/C core with comparable accuracy to Gambatte and GBHawk (not to be confused with the SameBoy SGB core in older releases)
    • Emu83:
      • new TI-83 core
    • BSNESv115+:
      • BSNESv115+ (the "new BSNES port") is no longer experimental
      • fixed Hex Editor and others using read instead of peek (#3060)
      • implemented memory callbacks
      • fixed ram and rom memory domains
      • increased MmapHeapSize to prevent crashes, affected Star Ocean
      • refactored latching to improve dumping/verification
      • reduced savestate size (increased frequency for TAStudio/rewind)
      • improved speed of fast ppu check
    • MSXHawk:
      • MSXHawk is no longer experimental
      • implemented more hardware/mappers
      • added Linux port
    • Ares64:
      • 2 new experimental cores ported from Ares: one for casual play which is slow and desync-prone ("Performance"), and one for TASing which is even slower but will sync ("Accuracy")
  • Other cores:
    • A7800Hawk:
      • fixed nondeterminism caused by incorrect savestate code
      • fixed Basketbrawl and summer games
      • fixed off pixel detection in write mode, affected baby pac man
    • Atari2600Hawk:
      • fixed audio issues, affected ms pac man
    • Gambatte:
      • updated core
      • fixed error when attempting to write to some registers e.g. with the Debugger (#3028)
      • fixed crash on Linux
      • refactored GambatteLink to be more modular and add support for 3x/4x
      • added proper memory callback scopes for link play
      • enabled disassembly in link play
      • allowed linking w/ GBC cart IR
      • stopped using fine-grained timing for link play when the link is disconnected
      • added more scopes for memory callbacks
    • GBHawk:
      • updated GBA startup state, affected Konami collection vol. 4
      • fixed link play, affected perfect dark
    • Genplus-gx:
      • added support for SRAM larger than 8MB (#3073)
      • prevented crash when loading Debugger (#2769, #2958)
    • Handy:
      • fixed crash on Linux (#2425)
    • IntelliHawk:
      • adjusted sme timings and fixed accesses to registers, affected motocross
      • cleaned up CPU, fix trace logger and throw less exceptions
      • fixed intellicart, affected various homebrew roms
      • fixed MOBs with x-coord 0 being visible, affected bowling
      • fixed overflow flag calculation, affected checkers and reversi
      • more compatibility work
    • MAME:
      • stopped treating warnings as errors
      • set System Bus correctly
    • melonDS:
      • updated core, adding experimental DSiWare support
      • enabled memory callbacks
      • fixed empty strings in firmware settings preventing roms from loading (#3030)
    • Mupen64Plus:
      • fixed haptic feedback causing movie playback to crash
      • enabled GLideN64's texture wildcard support (#3104)
    • NesHawk:
      • added mapper for Pokemon bootlegs
      • fixed not parsing iNES v2 headers (#3082)
      • other small accuracy improvements and bugfixes
    • O2Hawk:
      • fixed blobbers and Popeye
    • PCEHawk:
      • fixed crash related to framebuffer resizing (#3018)
    • SMSHawk:
      • fixed sprite collision inaccuracy (#1611), affected Ecco the Dolphin
      • fixed Fray (vert lock update)
      • fixed SMS backdrop colors
      • fixed ys (JPN) by emulating VRAM masking bit
      • improved SG-1000 8kb ram adapter emulation
    • VectrexHawk:
      • implemented 64K bank switching

BizHawk 2.7

  • New Core: melonDS!
  • Linux
    • Lua support!
  • Fix Basic Bot
  • SGB
    • Sameboy is removed; Gambatte is the new default SGB core
  • Gambatte
    • fix Cart Bus Pullup setting
    • update gambatte upstream
  • GBHawk
    • Set bk2 movie CGB flag properly
    • Fix GBHawk settings dialog not appearing
  • NesHawk
    • Increase IRQ delay in mapper 48 to fix graphics glitch in Jetsons
    • Fix Zelda SaveRAM (#1623)
    • Give Jump II initial SRAM of 0xFF
    • Fix Tsuri Kichi Blue Marlin Hen
  • Atari7800Hawk
    • Fix nondeterminism issues (reported for Choplifter)
  • Atari2600Hawk
    • game db updates
  • SMS
    • Balance audio better (#2814)
    • Add SRAM to Terminator (#2966)
    • fix pop breaker
  • PCEHawk
    • Improve memory domains
  • PSX
    • Update octoshock to Mednafen 1.27.1 (#2989)
  • Bsnes-v115
    • Fix snes graphics debugger getting permanently hidden (til app is restarted) (#2950)
  • EmuHawk
    • Group SGB in with GB/C in PathConfig (#2992)
    • Encode screenshot as JPEG when it has the extension (#2982)
    • TAStudio
      • Fix TAStudio not loading saved branches (#2640)
      • Add confirmation modal when launching TAStudio during casual play
      • Do not seek when needing to load greenzone on paint
      • Fix Frame Number Hover (#2811)
    • Lua
      • implement client.get_approx_framerate()
      • implement save_image_to_disk() to Lua canvas (#2744)
  • Discohawk
    • Fix HAWK Commandline option (#2947)
    • Fix freezing when extracting music (#2952)
    • Multi-thread audio extracting
  • ApiHawk
    • Implement client api GetApproxFramerate()

BizHawk 2.6.3

  • Updated nyma cores to Mednafen 1.27.1
  • TurboNyma
    • fixed #2873 - Mnemonic display for PCECD shows ! instead of the II, III, IV and VI buttons as well as the mode "buttons"
  • BSNES
    • 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
  • Mupen64Plus
    • 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
  • Octoshock
    • Fix fast forwarding
  • NESHawk
    • Fix mapper 88 mirroring. Closes #2847
    • Improve power on state accuracy
  • mGBA
    • Fixed #2805 - memory hooks (event.onmemorywrite) not being removed properly
    • Fixed #1112 and #1870 - Add Game Overrides as a Sync Setting (including rtcEnabled)
  • ZXHawk
    • 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
  • Gambatte
    • 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
  • VirtualBoyee
    • Update to Mednafen 1.27.1
    • Added options for virtualboy to only show left or right screen
  • ColecoHawk
    • fixed Virtual Pad schemata
  • Libretro
    • Add to Linux port
  • EmuHawk
    • 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
    • Rewinder
      • 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
    • Lua
      • 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
    • Debugger
      • fixed #2760 - prevent crashes when minimizing and other cases

BizHawk 2.6.2

  • 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.
  • mGBA
    • update to 0.9.1
  • Gambatte
    • 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)
  • GBHawk
    • Fix OAM DMA Bus Conflict emulation (#2709)
    • #2715 , still needs vram open bus fix but that's seperate
  • NesHawk
    • Add missing mapper variable to state for some pirate games
  • O2Hawk
    • Fix PAL time calculation (#2684)
  • PCE
    • Fix default PCE gamepad bindings (fixes #2720)
    • Fix crashes in PCE debugger
  • N64
    • Add N64 plugin categories (#2729)
    • Fix memory.read to allow addresses 0x80000000..0xFFFFFFFF (#1734)
  • GPGX
    • Add missing menacer keys (#2718)
  • Intellivision
    • Fix aspect ratio (#2670)
  • SMS
    • Fix system Id (#2650)
  • C64
    • Implement memory hooks (#2726)
  • EmuHawk
    • 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)
    • Rewinder
      • 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)
    • Lua
      • 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)
    • TAStudio
      • 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)
      • Branches
        • 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)

BizHawk 2.6.1

  • Linux
    • Fix trying to use DIrectInput (2607)
  • EmuHawk
    • 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
    • Tastudio
      • Fix savestate corruption bug introduced in 2.6. This bug causes desync issues on most cores!
      • Refresh view when pausing with middle-click
    • Lua
      • Fix client.reboot_core()
      • Fix drawing during onframeend() event handler (#2595)
  • VectrexHawk
    • Report 50fps in the Play Movie dialog
  • GPGX
    • Fix VDP Viewer screenshot feature (#2596)
  • NesHawk
    • Fix Wagyan Land 2 Graphical Bugs
    • FIx mapper 90

BizHawk 2.6

  • New Core! Odyssey2 core is officially released
  • Update nyma cores to Mednafen 1.26.1
    • See Mednafen release notes for full changes. (Mostly just Sega Saturn)
  • Saturnus
    • Fix cart detection (#2513)
    • Fix independence Day soft lock (Fixes #2162)
    • Fix .xml loading Fixes #2557.
  • mGBA
    • Update to 0.9
  • Gambatte
    • Update libgambatte to r729+
    • Support GB layer toggling
    • Add GB object viewer
    • Various updates from gambatte-speedrun
  • PSX
    • 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)
  • GBHawk
    • 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
  • SubGBHawk
    • Save audio cycles in SubGBHawk where it's needed, fixes state integrity checker in TAStudio
  • bsnes
    • Make ROM memory domain writeable (Use at your own risk)
    • add CARTROM-DB and CARTROM-D blocks to CDL
    • Fix PAL detection (#2503)
  • NESHawk
    • Change NES framerates (#2460)
  • GPGX
    • Allow writing to rom memory domains
  • EmuHawk
    • Linux
      • 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
    • Lua
      • Implement joypad.getwithmovie()
      • Deprecate emu.getluacore in favour of new func client.get_lua_engine
      • Fix reverting current directory
      • Change how drawing to non-default surface works, changing many gui.* functions and adding gui.use_surface (#2575)
      • Fix MovieClock.lua ui, also use current frame count instead of movie length
    • TAStudio
      • 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)
    • Movies
      • 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)
    • CDL
      • Fix crash on GPGX
      • Gambatte - fix 1st opcode byte. (#2551)
      • GBHawk - Fix domain names (#2552)

BizHawk 2.5.2

  • Breaking Changes
    • Gambatte sync settings (for GBC in GBA)
  • Faust
    • Fix loading
  • GBHawk
    • Fix missing variables in savestates (desync fixes)
    • Fix color displayed when BG is off
    • Rework interrupt and scroll/sprite handling to pass more tests related to Gensan 2
  • SGB
    • Fix Core Picker (#2422)
  • mGBA
    • Fix Debugger on Linux
    • Fixes to disassembly output
  • Dual GB
    • Fix XML generation and core preference selection
  • NESHawk
    • Initialize with a single controller instead of two (for consistency with other cores)
  • PSX
    • Initialize with a single controller + memcard instead of two (to be consistent with other cores)
    • Refine savestates to hopefully address desync issues
  • EmuHawk
    • Fix OBS Dialog Detection (#1996)
    • Fix ffmpeg
    • Change default input method on Windows to DirectInput
    • Minor GB/C and PCFX firmware detection revisions (#2430)
    • Profiles - Tas Profile - default to bsnes for SNES, turn off GBC in GBA setting
    • Add advanced config option that will remove the "mixed" key priority when clicking the statubar icon or pressing the hotkey
    • Remove default joypad bindings for fast-forward/rewind. (#2297)
    • Re-add M3U capabilities for optical disks (#2390)
    • TAStudio
      • Fix loading of .bk2 files
      • Fix drag-drop of .tasproj files onto main window while TAStudio is open (#2386)
      • Fix slowdown when there are many savestates in history (#2433)
      • Fix multi-select of branches and markers (#2409)
      • Fix Emulation doesn't pause when clicking menus (#2281)
      • Fix .tasproj backup files getting saved with savestates (#2416)
      • StateManager - Fix ArgumentOutOfRangeException when buffer is full requested (#2392)
      • Markers - scroll to newly added marker instead of assuming it is the last in the list and scrolling to bottom (#2350)
    • Lua
      • Re-enable multi-select (#2401)
      • Fix session saving saving the session filename instead of the script filename, (#2400)
      • Fix "Can't have lua running in two host threads at a time" when using certain TAStudio Lua methods
      • Fix event.onexit()
    • Macro tool
      • fix NRE on File -> Load Macro (#2375)
    • Ram Search
      • Persist Use Undo History setting, and turn on by default (#2413)

BizHawk 2.5.1

  • EmuHawk
    • Linux
      • Disable "Stay on Top" tool setting
      • Fix trying to load VB.NET assembly
    • Ram Watch
      • Fix crash when using Ram Watch with waterbox cores
      • Fix slowdown when using on screen watches when Turboing (shift+tab) (#2365)
    • TAStudio
      • Fix runaway sync issues when painting during auto-restore
      • Fix loading of .tasproj movie headers on non-american PCs (#2377)
      • Fix crashes when drawing selected row
    • Lua
      • Fix joypad.setanalog setting analog indefinitely (#2310)
  • TurboNyma
    • Fix No sound unless frame 0 is emulated (#2365)
  • ZX Spectrum
    • Fix NRE when attempting to load a game
  • NGP
    • Fix Language selection
  • Faust
    • Change from experimental to release (an oversight in previous release)
  • GBHawk
    • Improve documentation of Use Existing SaveRAM sync setting
    • Fix start up screen color

BizHawk 2.5

  • Installation notes / Breaking changes
    • Upgraded to .net 4.8, and c++ runtime deps have changed
      • Run the new prereqs installer
    • config.ini files from previous versions will no longer work
    • .tasproj format updated, previous versions no longer work (export/import .bk2 to convert)
    • Default savestate naming convention now always puts core name into states, will mean old slots won't show up on cores that did not already have core name
    • Gambatte BIOS sync setting change results in older .bk2 movies being broken (sync settings can be hand edited to import)
    • GPGX sync settings have changed, results in older .bk2 movies being broken (sync settings can be hand edited to import)
    • For cores that have a "Use Sram" settings, set to false by default (true is what end users would expect most of the time, false is only for advanced use cases)
      • Affected cores: GBHawk, GBHawkLink, GGHawkLink
  • New Cores!
    • TurboNyma - the ported PCE core from Mednafen, more accurate than PCEHawk
    • HyperNyma - the less accurate but more performant core ported from Mednafen
    • Faust - SNES core ported from mednafen, faster than bsnes, more accurate than snes9x
  • General
    • New Rewinder, much faster and more performant
    • Don't package ffmpeg, add a downloader to A/V dialog instead, significant reduction in release download size
    • add Cyorter's Input display lua script, that gives a graphic based (FCEUX style) input display for most non-analog peripherals
  • mGBA
    • update mGBA to 0.9
    • Fix SRAM-anchored movie forgetting its savegame on loadstate (#1593)
    • Fix exception when viewing an empty SRAM memory domain (#1620)
    • Support TotalExecutedCycles
    • Allow poking of ROM memory domain
    • Always show SaveRAM domain and set to max size the domain can be
  • bsnes
    • Add Randomized Initial State option (Bizhawk vs lsnes style startup) (#1701, #1285)
    • Fix layout of CPU Registers (#2040)
    • Reverse Mouse
  • gambatte
    • Ports from Upstream GSR for Babs' Big Break and Robopon (#2091)
    • Support playing without official BIOS
    • Support loading more accurate official BIOSes through the firmware utility
    • Fix VRAM end of line testROM in single/doublespeed modes and a desync in GB Wario Land II
  • GBHawk
    • Numerous accuracy and performance improvements
    • Update Kirby tilt n- tumble controls
    • Double speed mode timing fix
    • Fix mickey's chase damage audio
    • Window bug fix, fixes Zen
  • GPGX
    • Migrate to latest GPGX MD Cart mapper support
    • Support Cart + CD Games via MultidiskBundler (Pier Solar)
    • Support independently setting the two controller ports (#1750)
    • Fix Madden NFL and NHL 98 (#1041)
    • Fix Streets of Rage (5 in 1) (#1390)
  • WonderSwan
    • Update Cygne with upstream fixes
  • PCFX
    • Fix rom loading (#2022)
    • Update with upstream fixes
  • NGP
    • Update with upstream fixes
  • Uzebox
    • Fix rom loading (#2022)
    • Add uzebox path entries (#2043)
  • PSX
    • change PSX framerates to follow mednafen instead of nocash (#2138)
  • Atari 2600
  • Atari 7800
    • Support Serpentine
    • Fix pokey 0x450 detection
  • NesHawk
    • Make game genie compare cheats work
  • ZX Spectrum
    • Fix lag detection on kemston joystick. (#1993)
  • Vectrex
    • Fix controls for Hyperchase
  • Snes9x
    • Fix special chip games
  • 32x
    • Fix crash on kolibri (#1826)
  • EmuHawk
    • Threaded DB loading (fixes #2113)
    • Fix RW/FF Volume Config (fixes #2061)
    • Fix GIF recording (#1962)
    • Fix ffmpeg (#2101)
    • Sync controls when loading a config file (#1965)
    • Fix hq2x shaders (#2196, #2160)
    • Message config - support setting LastInputColor
    • Catch and retry when DirectSound crashes (#1212)
    • Fix "use 1:1 pixel size" aspect ratio (#2159)
    • Add Reset Speed hotkey (#2154)
    • Fix crash when GL retroshaders failed compiling
    • Fix FCEUX font (#2313)
    • Add command-line switch --open-ext-tool-dll
    • Movies
      • Subtitle Editor - add a color picker for subtitle color (#1554)
    • Fix GameName and SHA1 not being saved in movies (#1966)
    • Input display: At movie end, show both last movie inputs and current inputs (#2295)
    • .fm2 Importer - Warn about ignoring the famicom port, instead of a full error, movies such as #6739: DJ_Incendration & McHazard's NES Mike Tyson's Punch-Out!! "clock stop glitch" in 19:09.17 can still be successful (#1989)
    • Play Movie dialog
      • Greatly improve scanning performance
      • Properly show tooltips for detail values, also show expected vs actual (only works on the key column though, because winforms is poo), fixes #1888
    • Tastudio
      • Fix crash when attempting to load a .tasproj from a different core
      • Fix crash when clicking Reboot core on the main menu
      • Standardize new filename creation behavior to avoid .bk2.tasproj.bk2.tasproj
      • Don't disable lua scripts while seeking
      • Don't show inaccurate core nag, if a movie is already loaded
      • Allow multiple marker and branch selection (#2212)
      • Rewrite TasStateManager (Improves memory usage and performance) (#2274)
      • Ability to Clone input X number of times (#2242)
      • Fix PageUp/Down behavior (#2074)
      • Gracefully fallback to a new tasproj when attempting to load a .tasproj from another core
      • Fix loading a different ROM while tastudio is open
      • Fix RebootCore when TAStudio is open (#2201)
      • Allow insertion of multiple frames at end of movie (#2169)
      • Don't jump to greenzone on single mouse click of analog cell
      • Ensure that Tastudio is fully updated when doing cut/paste operations (#1956)
      • Improve frame insertion/deletion efficiency, particularly for undos (#2017)
      • Properly resume playback after painting (#2340)
      • On .bk2 import: ask before saving the bk2
      • Only save cycle count at movie end (#2203)
      • Rework the movie end cycle count warning.
    • Lua
      • Fix several memory leak issues when using events (#1920, #1983)
      • Registered Lua Functions dialog - fix updating in several scenarios
      • Implement tastudio.submitclearframes() (#2170)
      • Improve performance of console logging, fix max log count, and warn when maximum calls have been reached
      • Add client.addcheat() and client.removecheat() that match the functionality of the gameshark tool.
        • Deprecate the nes.addgamegenie() and nes.removegamegenie() methods in favor of these
      • Fix Lua forms button click exception (#1957)
    • Hex Editor - Fix multi-byte reads (#2012)
    • Cheats - When a cheat is auto-removed, also remove it from the recent cheats list
    • Tracelogger - Fix NRE of Trace Logger close, if the Trace Logger was not used before closing
    • Virtualpads
      • Flip the read-only flag when a movie changes from read-only to another mode
      • C64 - fix a few keyboard buttons that were not mapped to a key
      • GBA - adjust size so light sensor shows
    • Ram Watch
      • Allow duplicate identical watches
      • Fix binary display on 32 bit watches
      • Fix exception when changing a watch's size to one with an incompatible display type(e.g. 32 bit float -> 8 bit unsigned)
    • Ram Search
      • Fix loading of .wch files
    • CDL
    • Fix CDL that was broken on a number of systems
  • ApiHawk
    • ClientApi.SetSoundOn(false) causes sound looping from external tool (#1817)
    • Fix crashing when SGB is loaded
  • Dropped feature support (these were considered legacy features)
    • Multitrack movie record (TAStudio accomplishes this much better)
    • Movie - Poke input hotkey (TAStudio accomplishes this much better)
    • Movie - Scrub input hotkey (TAStudio accomplishes this much better)
    • Infinite movie feature (it was a gimmick that has run its course)
    • Vba-Next (mGBA is more accurate and has feature parity)
    • Ram Watch Pause button, it was only a hack for when ram watch was too slow, it's plenty fast now

BizHawk 2.4.2

  • Fix custom AR/size (#1975)
  • Basic Bot - fix not restoring previous InvisibleEmulation and DisplayMessages settings
  • Virtual Pad support for GBLink 3x/4x
  • NesHawk - Fix poking WRAM
  • mGBA - fix register setting (#1982)
  • GPGX - improve rewind and tastudio savestate performance
  • ApiHawk - fix crash on SetExtraPadding calls
  • Lua
    • fix bizstring.split() (#2004)
    • fix client.getavailabletools() (#1977)
    • fix client library being null when no rom is loaded

BizHawk 2.4.1

  • Installation notes
    • Upgraded to .net 4.8, and c++ runtime deps have changed
      • Run the new prereqs installer
    • config.ini files from previous versions will no longer work
  • New Core!
    • SubGBHawk - similar to SubNesHawk, allows for sub-frame movie recording support
  • mGBA
    • update mgba to 0.8.1
    • Add memory callback support (debugger and lua)
    • Add trace logging support
    • Add input callback support
    • Support cpu register setting
  • Gambatte
    • Many updates ported from upstream Gambatte through Gambatte-Speedrun to support the following:
      • Console accuracy for Pokemon TCG 1 and 2, now matching Game Boy Player when played as GBCinGBA mode
      • GBP console accuracy for Mickey's Dangerous Chase and other plain GB games that use LCDC interrupts when played as GBCinGBA mode
      • Maintain sync for all existing GBP console verified TASes
      • Pokemon Crystal (JP)
    • Ignore GBCinGBA setting unless console mode is GBC. GBCinGBA mode causes an edit to the GBC BIOS so that it matches GBA/GBP/GBI timings. If in GB mode this option is irrelevant.
    • A new palette mapping option "Libretro". The shader is an option in Extrems' GBI and in RetroArch. It accounts for non-linear colorspaces while doing the color mixing documented in Gambatte and in Libretro's shaders for the GBC LCD. See this thread for visual comparisons.
  • GBHawk
    • 4 player link support
    • Accuracy improvements
    • Performance improvements (10-15%)
    • Make memory domains consistent with gambatte
    • Implement power button
    • Implement cpu register getting/setting
    • Implement Camera mapper
    • Fix Cart RAM domain
  • N64
    • Update GlideN64
    • Fix memory callbacks
  • Saturn
    • Virtualpad - add previous/next disc buttons to console buttons, fixes #1703
  • PSX
    • Update to Mednafen 1.24.2
    • Fix crashes when dumping a movie that's being replayed (fixes #1787) (may affect movie sync compatibility)
    • Fix controller config layout problem (fixes #1814)
    • Fix Incredible Crisis (#1304)
  • Vectrex
    • Improved display method
    • Add default controls
    • Add game database entries
    • Fix mono output to output to both speakers
  • SMS
    • Move settings from menu items to a dedicated dialog
  • bsnes
    • Code/Data Logger
      • Add SGB support (fixes #1344)
      • Add CARTROM logging for many more cases, including superfx (should fix #1597)
      • Set DMAData flag for dma reading rather than leaving nonsense flags (fixes #1409)
      • Add CPU X and M flags for ExecFirst (fixes #1410)
  • Apple II
    • Refactor savestates, breaks compatibility with old savestates, but they are 10x smaller and over 10x faster
  • Atari 2600
    • Finish keyboard controller
    • Expose CartRam memory domain for mCM and mFA mappers
  • Atari 7800
    • Small performance improvements (about 5%)
    • Virtualpads - support unplugged and lightgun options
  • SubNESHawk
    • Add support for missing services (compared to NesHawk) such as disassembler
  • PCE
    • Significant performance improvements (about 20% faster)
    • Support cpu register setting
  • NESHawk
    • Small performance improvements (about 10% faster)
  • ZX Spectrum
    • Small bugfix in reset behaviour
  • EmuHawk
    • Fix Analog Y axis is flipped between various cores depending on input method (#1200)
    • Fix ffmpeg race condition. (#1841)
    • Fix audio buffer looping on drag-and-drop
    • Fix controllers not taking effect on load config (#1965)
    • Movies
      • Input Display - fix previous frame display while recording
      • Input Display - fix display not updating on loadstate while a movie is in playback mode
      • Properly store which gb/gbc core in movies and load it (#1805)
      • Add GBC flag to GBHawk movies
      • Gambatte - Support cycle based timing
    • Movie Importers
      • .vbm import - parse GBC into movie header
      • .vbm import - import gambatte movie if gambatte is the loaded core
    • Lua
      • Fix bit.arshift() (fixes #1825)
      • Fix crash on the controller number version of joypad.setanalog()
      • Fix joypad.set() (#1898)
      • Fix lua text drawing hiding On-screen Ram watches (#1831)
      • Immediatley update on screen graphics when disabling a lua script or closing the console
      • Update script icon on script error
      • Add client.transformPoint(), remove client.transformPointX/Y
      • Clear registered funcitons when closing the lua console
      • Remember splitter position
      • Fix column sorting
    • Tastudio
      • Speedup drawing (about a 10% performance boost)
      • Remember the "Bind Markers to input" setting
      • Hide N64 "fake analog" controls by default
      • Fixes to column calculations in horizontal orientation
    • BasicBot
      • Don't display messages while botting
      • Fix Run not enablign when changing max value
      • Add checkbox for invisible emulation for (possible) faster botting
      • If bot is unable to run and a message box is shown, show a specific error as to why it can't, instead of a generic error
      • Default to >= operator for main value
    • Ram Search
      • Fix searching for negative values (#1819)
  • ApiHawk
    • ClientApi.SetSoundOn(false) causes sound looping from external tool (#1817)

BizHawk 2.4

  • New Core: Vetrex!
    • GCE Vectrex emulator, ready for TASing.
  • EmuHawk
    • Tastudio - fix bug with improper invalidating after painting, causing potential desyncs (#1790)
    • Fix crash when alt+dragging after autoloading a .tasproj file
    • Lua
      • Fix bug where core doesn't update when changing ROMs (#1791)
      • Fix tastudio-submitinputchange() not updating tastudio immediately (#1799)

BizHawk 2.3.3

  • NESHawk
    • Scanline timing and audio fix
    • Change '&amp;' to '&' in gamedb_goodnes.txt. Fixes #1667.
    • MMC3: Mapper test indicates IRQ was happening one ppu tick too late.
    • Fix dendy mode
  • SubNesHawk
    • Support settings dialog, and VS menu items
    • Dump subframe length into movies
    • Fix get and set regiesters
    • Fix memorydomain callbacks i think
  • Atari2600Hawk
    • Bug fixes and Improvements
    • Fix audio in commando raid
    • Fix haunted house
    • Fix princess resuce.
    • Fix audio bug in Space Jockey
    • Add HMCLR delay
    • Update ball emulation
    • Mapper FA - Fix ram buffer
    • Fix Journey Escape (#1614)
  • A7800Hawk
    • Only use proper bios
    • Update m6532 to match 2600
  • Game Gear
    • Fix Pro yakyuu, needed EEPROM
    • Fix World Derby
  • mGBA
    • Update to mGBA 0.8
  • Gambatte
    • Dump cycle count into movies
  • GBHawk
    • 2 and 3 player link support!
    • Fix spirou scrolling
    • Minor bug fixes
    • Color regs writable
    • Add RTC offset setting
  • AppleIIHawk
    • Make savestates smaller
  • N64
    • Reduce "pause lag" on Paper Mario (#558) by using CopyColorToRDRAM = 1
    • Improve audio throttle behaviorN64
    • Memory domains need to be byteswapped, not only rdram/rom
    • Added SRAM and FlashRAM memory domain support
    • Implement remaining R4300 trap instructions
  • SNES
    • Fix exception when loading SNES MSU-1 XML file
    • Fix TM and TS checkboxes for OBJ in SNES Graphics Debugger
    • Fix an issue that caused the TM and TS checkboxes for the OBJ layer to always be the opposite of what is correct.
  • C64
    • Various emulation improvements/fixes
    • D64 fixes
    • Implement soft and hard reset
  • EmuHawk
    • Note: Breaking changes to config file backwards compatibility
    • Convert various Tools to use InputRoll from Tastudio instead of standard ListView, huge speed ups in these dilaogs (Ram Watch, Ram Search, Trace Logger, Debugger, etc)
    • Drop native .bkm support, .bkm must be imported via Movie Import
    • Trace Logger - Fix exception when scrolling
    • Fix DPI scaling
    • Fix prerequisites dialog
    • Option to accept background input only from controller (#1396)
    • Fix tool icon showing on top of EmuHawk in taskbar when autoloading tools (#334)
    • Improve logging in shader compilation (#1748)
    • Allow getting the version from the command line
    • allow suppressing more OSD savestate reports from lua
    • Hotkey/controller config: Fix issue where input events get queued and processed by the main form after the dialog is closed
    • Option to handle alternate keyboard layouts (e.g. Dvorak) (#1584)
    • Hotkey Config: Fix when binding key combination if the modifier is released first (e.g. Ctrl+C with Ctrl released first)
    • Fix FFmpeg crash (#1714)
    • Fix Cheat saving (#1696)
    • Add 32x to the platform picker (resolves #1507)
    • Fix decoding of special characters in game names (#1698)
    • BasicBot
      • Added Help MenuItem
      • Copy Best Input to Clipboard
    • Lua
      • Default to using luainterface over nlua, memory leaks are resolved and luainterface is faster
      • CamHack script for Sonic Advance
      • New functions
        • tastudio.loadbranch()
        • client.invisibleemulation()
        • client.seekframe()
        • event.availableScopes()
        • onmemoryexecuteany()
      • Allow disabling frame skip from Lua (#1655)
      • Improve docs (#1649, #1675)
      • movie.save() - fix optional filename parameter not being used
      • implement controller number parameter for joypad.getimmediate() and movie.getinput()
      • memorycallbacks - rename domain param to scope to avoid confusion, otherwise it looks like any memory domain will do, log error if a scope is passed in that is not available
      • fix memory callback functions on cores with no system bus such as PSX
      • joypad.getimmediate() now returns float controls as well as bools
      • emu.setrenderplanes() add support for bsnes and gpgx
    • Lua Console
      • don't throw exception when opening a .lua file if the user has not associated a .lua file with an application. Fixes #1683
      • Remember column widths
      • fix bugs when using separators
      • change Refresh toolbar icon tooltip from "Reload script" to "Refresh" to match the menu item (they do the same action but with different names)
      • When turning on lua scripts, first clear registered functions for that scripts (they would still exist if the script exited on its own),
      • Don't close the registered functions dialog when a script is toggled and no registered functions are left
      • Better detection of script when removing registered functions
      • Add Clear all registered function context
      • fix crash when toggling scripts while the registered fucntions list dialog is open
      • prevent removing of script when a script is highlighted and press delete is pressed the auto-complete box
      • Fix reloading a script if it is not enabled
      • Fix "reload scripts on load" flag not being check in some scenarios
      • Lua functions list - fix copy to clipboard
      • Put a cap on number of messages that can hit the console window in a given pass through lua scripts, fixes #376
    • Tastudio
      • Note: breaking changes in .tasproj compatibility due to converting some files to .json format, a .tasproj file will load but will lose lag history and silently fallback to default settings
      • Huge performance improvements (2-3x speed increase)!
      • Don't draw on turbo (shift+Tab), huge speedup
      • New feature - Horizontal Orientation, allows sideways drawing
      • Remove out option to do autorestore on mouse up vs down, make it on up only, and fix autorestore logic errors
      • Add a font picker option, fixes #952
      • Improve control alignment and fix branches/markers not showing due to DPI scaling. Fixes #1151.
      • Fix inflated rerecord count bug
      • Allow customizing of many more built in hotkeys
      • Show binded hotkey for various menu items instead of the original default value
      • Integrate branches with the statusbar slot icons
      • Better handling of tastudio interaction with select slot, previous slot, and next slot functions
      • Consolidate the two restore defaults menu items. Restore splitter positions when restoring defaults
      • Don't nag about inaccurate cores if autoloading a file
      • Fix NRE when running a .tasproj through the normal movie system, making changes, then opening tastudio
      • Markers - auto-expand column to fix user text
      • Branches - fix width calculation when expanding to fix user text
      • don't allow resizing columns to a negative width
      • Implement shift+up/down to highlight rows
      • Don't autosave if default project name (#1599)
      • Smarter invalidate log on cut/copy/paste type methods
      • Fix crash when ctrl+clicking with no previous row selected
      • Disable [Ctrl+]Home/End hotkeys that are very destructive and easy to click on accident (#1600)
    • Hex Editor
      • Slight speed improvements
      • Fix Delete hotkey not unfreezing secondary highlighted addresses,
      • Restore funcionality to show typing in progress
      • Fix crash when typing values into the hex editor with no address highlighted
    • Ram Watch
      • Fix column sorting when list has separators. Fixes #1713
      • Flag changes when doing column sort
      • Fix some situations where adding ram watches would ask to save changes
      • Deselect watches when removing them with the delete key
    • Movie importers
      • Fix .pjm, .pxm importers (#1723)
      • Import the core header key on systems that we check for core when loading the movie
      • .mmv - properly import game gear flag
      • .smv - convert to using bsnes instead of snes9x
      • fix .ymv importer
      • .mc2 - properly import pcecd flag, and number of controller ports
  • ApiHawk
    • Fix bug in GB/GBC detection
    • Fix typo: TotalExecutedycles -> TotalExecutedCycles (note: this is a breaking api change)

BizHawk 2.3.2

  • mGBA
    • Update to 0.7.2
  • Gambatte
  • N64:
    • Update GLideN64 to release 4.0
    • Fix GLideN64 defaults (#1478)
    • Support GLideN64 halo removal option
    • Virtual pad no longer crashes with standard controller
    • Fix Custom resolution
  • NESHawk
    • SubNESHawk - experimental version of NESHawk with poll-based input and PPU-cyle level reset support (not meant for casual play) (#1439)
    • Update VRC7 (#1527)
    • Add PPU cycle to tracelog
  • QuickNES
    • Fix QuickNES Crashes in Latest Dev Build (#1423)
  • Genesis
    • Disassembler fixes, (#1458)
    • Fix VDP viewer exception when right-clicking, (#1449)
  • GBHawk
    • GBHawkLink
  • A2600Hawk
    • Add support for boost grip controller
    • gamedb updates
    • fix HMove
    • Bang! Demo -correct mapper
  • EmuHawk
    • Call memory callbacks with addr, value (#1462)
    • Fix OpenAdvanced Open ROM
    • Link icon
      • Update link text to match link status
      • Allow toggling Link status from Status bar button (#321)
    • FFMPEG writer
      • Change all uses of -c:a libvo_aac to -c:a aac because the ffmpeg we're packaging now no longer supports the former
      • Fix ffmpeg webm support (fixes #1477)
    • APIHawk
      • Extend with a Lua-like system of API libraries (#1419)
      • External tools no longer crash on loading new ROM
      • Rebuild HelloWorld external tool, include its zipfile sources
    • Ram Search
      • Fix go to address
    • Debugger
      • Fix mouse wheel scrolling
      • Set PageUp/Pagedown keys to increment/decrement
    • Hex Editor
      • Fix misalignment when bytes contain 7F (#1503)
    • Movies
      • When Pause on Movie End is chosen, go to finished mode instead of stopping
      • Fix exception when statrting from saveram multple times
    • TAStudio
      • Allow gaps in lag log (#1461)
      • Fix autorestore triggering while drawing on future frames
      • Fix seek progressbar not to disappear on (every other) middle-click and || button
      • Fix some more state removal bugs
      • Fix mainform pause icon when pausing while seeking (#1456)
      • Fix low res framebuffer on branch load (#1513)
      • Fix exception on Auto Hold/Fire Set Customs (#1553)
      • Fix exception on max undo levels causes an exception (#1555)
      • Fix exception on double right-click branches (#1551)
      • Fix Saving a tasproj in TAStudio does not update EmuHawk save name (#1444)
      • Fix recording joystick movement in read-only mode (#1447)
      • Ask to override existing bk2 file when exporting
      • Don't tell about clipboard if it's empty
    • Lua
      • Make the emulator automatically reset ExtraPadding after stopping Lua script (#1509)
      • Fix Lua sockets erroring out (#1174)
      • Add ability to set socket host and port via Lua API (#1495)
      • Add sleep functions (#1177)

BizHawk 2.3.1

  • N64
    • Update gliden64
    • gliden64: disable texture cache option, since internally it's set to 8000
    • Fix crash issues, #1214, #1362
    • 4k Support
    • Support fxaa
    • Support Resolution Display
  • mGBA
    • Update to latest 0.6 (as of 10 Sep 2018)
    • Fix #1195 - Audio Keeps Playing Notes after Rewind
    • Fix savestates created at frame 0 when BIOS is enabled
  • NesHawk
    • Fix VRC IRQ timing
    • VRAM write timing glitch
  • GenesisPlus-GX
    • Tracer fixes
  • GBHawk
    • Pass many more tests
    • CDL Support
    • Add default bindings
    • Fix autosaving saveram
    • Fix Virtual Pad
    • Fix DMG sprite evaluation (fixes Oh! Demo bug)
    • Audio fixes/crash
    • Wisdom tree Mapper
    • HuC1 support
    • Fix firmware load crash
    • Fix Lego Racers, Slugfest, Ken Griffy Jr., 3-D Pool
    • HuC3 Support
    • MBC2 proper Bank masking
  • Z80
    • Performance Optimizations (affects many z80 based cores)
  • ZXHawk
    • DCFilter implementation
    • Ability to distinguish *.dsk for ZX or AppleII
    • Do not fire tape/disk inserted OSD messages on LoadState, #1250
    • Added non-sync setting to change core background color - #1263
    • Fix input display for some keys
    • Support Code/Data Logger
    • +3/+2a writes to 0x1ffd and 0x7ffd decoded more faithfully
    • DeterministicEmulation to be overridden (TRUE) when recording a movie -#1290
    • Support double-sided *.dsk images and throw an exception if the images are not 42 track disks
    • Starting on UDI and IPF disk image support (although neither are fully working or hooked up yet)
    • Added GameDb
    • Fix Tape and Disk media submenus opening at 0,0
    • Pentagon initialisation
    • Fix exception thrown randomly by tape player subsystem
  • Gambatte
    • Savestate GB rgb palettes, fixes #1337
    • CDL - dont log anything while the bios runs (fixes #1349)
    • Make Z80 memory domain little endian (fixes #1256)
  • A7800
    • Change 'trigger' to 'button'
    • Audio Overhaul
    • Fix unplugged controller
    • Fix Pokey sound
    • Pokey support for SGE mapper
    • Fix Sirius
    • Expand cart size for some demos
  • C64Hawk
    • Greatly reduce savestate size
    • Fix border issues - #1272, #1341
  • ColecoHawk:
    • Add SGM memory domain,
    • Fix super action controller
  • SMSHawk
    • Fix PowerOn Z80 SP init - stops some games from crashing/not loading
    • Fix pause button, fixes #1236
  • GG
    • Fix double dragon missing background (#1157 and #1320)
    • Fix various games (#1157)
  • NGP
    • Added GameDb and homebrew detection
  • A2600
    • MegaBoy special frame setting
  • EmuHawk
    • Multi-disk Bundler - handle archive files properly (#764)
    • Fix minimized emulator causes speedup, #1279
    • Messages config - change label "Last Frame Input" to "Previous Frame Input" to avoid confusion
    • Fix Snes9x Code Converter #1293
    • Commandline support for config location (#1404)
    • Ram Watch - Move to Top option, ability to add notes to Separators (#1257)
    • Cheats - Toggle shortcut key
    • Hex Editor - Remember Memory domain choice - #1345, #508
    • Code/Data Logger - Fix auto-load (#1346)
    • Basic Bot - fix failure to fully use selected memory domain (fixes #1305)
    • Movies
      • Warn when recording a quicknes movie (but allow the user to continue), #1353
      • Allow snes9x movies to be recorded (still warn, but allow the user to continue)
      • Ensure DeterministicEmulation is enforced whenever a movie is queued - #1290
      • Fix System ID for SG1000 and GG - #1246
      • Better anchor items in Play Movie dialog
      • Show last movie frame input in the HUD
    • Lua
      • Add client.getconfig()
      • Add client.getversion(), #1271
      • Add optional position parameters to gui.drawPolygon()
      • Add context menu to Lua console: copy and select all, #1284
      • Fix forms.drawText() horizontal alignment "right" fix
      • Fix cleartype on canvas drawText, fixes #1411
    • Video dumping
      • Fix #1244 - Dumping Issues
      • ffmpeg updates
        • Update to ffmpeg-20181118-529debc-win64-static
        • Make all formats editable (only custom is saved tho)
        • Deduce extension (since -f is required)
        • Make segment numeration the same as VfW has
    • Firmwares config
      • Stop indiscriminate importing
      • Added 'allow unknown import' checkbox
      • Set customization file chooser now incorporates ArchiveChooser - if an inside file is selected this is copied to the global firmwares folder
    • TAStudio
      • Fix major crash issues and exceptions
      • Branch loading now can behave as it does for regular rerecording (Old Control Scheme For Branches menu item, details here)
      • States decay - fix logic for last edited frame
      • Select newly created branch (makes button action experience smoother)
      • Fix #1221 - TAStudio.OnQueryItemBg transparency color problem
      • Make current branch track its new pos upon reordering
      • Fix performance bug from 2.2.2 (#1310)
      • Prevent exceptions with small window size
      • Show branch screenshot on the right if it's offscreen, #1311
      • Keys menu
      • Hide a few computer columns by default
      • Don't create player menus if we don't have players
      • Make state-save hotkeys usable if the slot is empty, just add a branch
      • Allow to disable Load Branch On Doubleclick
      • Fix rec mode dying when appending movie frames
      • Fixes inability to use '<'to get to frame 0
      • Allow to actually unbind markers from input, and unbind by default
      • Don't use branch greenzone after loading it. It's useless because we invalidate it needed anyway.
        • WARNING: If you load a branch that's inside the invalid greenzone area, FrameAdvance or ">" button won't recreate greenzone. Rewind or use Right Mouse Button + Wheel.
      • Fix crashes during seeking
      • Capture greenzone state after loading a branch

BizHawk 2.3

  • New Core: ZX Spectrum
  • New Core: GBHawk (Gameboy and Gameboy Color)
  • EmuHawk
    • Fix #1159 - memory callbacks - active changed only invoked on first add
    • Fix #1088 - Filter out forward slashes game names to fix games such as "Super Mario Bros. / Duck Hunt"
    • Fix #1075 - Fix Rom Status Icon not loading on Saturn
    • Fix xpad triggers to be full rigger instead of half trigger
    • Multidisk Bundler - fix exception when file is in an archive
    • Fix bug where autodump and lua-instructed client exits would vanish the window but linger the process
    • Fix #1168 - Rebooting some cores with Hex Editor open can cause crashes
    • Fix #1156 - Ram Watch - Clear Changes does not refresh changes counter
    • Hex Editor - Speedup FindPrev/FindNext
    • Update to newer 7z
    • TAStudio
      • Make current branch track its new position upon reordering
      • Select newly created branch
      • Makes button action experience smoother
      • Don't drop state above last edited frame
      • Fix greenzone decay failing to drop states
      • Increase Subtitle Maker frame limit
    • Lua
      • Fix #1221 - TAStudio.OnQueryItemBg transparency color problem
      • Fix #1138 - Lua scripts don't draw on the first frame
  • PCEHawk
    • Fix #1175 - Akumajou Dracula X (PCE-CD bug)
    • Fix #70 - PCE-CD - (USA) 4-in-1 Disc - Gate of Thunder - Sound error
    • Fix #771 - Final Soldier (J) screen jumping
    • Fix #554 - PCE-CD Mugen Senshi Valis black screen
  • mGBA
    • Update to latest 0.6 (past 0.6.3 release)
    • Fix #1144 - GBA Lego Bionicle does not have sound
    • Fix #1181 - Fix tilt sensor throwing exceptions
    • Fix #1195 - Audio Keeps Playing Notes after Rewind
  • N64
    • Update to latest GLideN64
    • Update to the latest RSP-HLE plugin
    • Disable Cache Size option in GLideN64, but display the value it forces internally
  • NESHawk
    • Fix mapper 219
  • SMS/GG
    • Implement SMS compatibility mode for Game Gear games
    • Add Port5 variable (link cable) - Fixes Pac Attack
    • GG Terminator needs SRAM for background display
  • Gambatte
    • Fix some mising data in savestates, WARNING - This breaks compatibility with previous savestates!
    • Implement new IRQ behaviors
    • Timing fixes
    • Make initial colors grey scale
    • Make equal length frames false by default, #1176
    • Implement TotalExecutedCycles
  • bsnes
    • Add H and V registers to register lists
  • A2600Hawk
    • Fix special reset cases
    • Add special cases for games that turn off screen to do calculations
  • GPGX
    • Fix #1167 - Move some settings into sync settings
  • Z80 Cpu Core
    • Fix Reset behavior (fixes Aerial Assault)
    • Many accuracy and timing improvements
      • Many cores affected - SMS/GG/SG-1000/Coleco/TI-83

BizHawk 2.2.2

  • EmuHawk
    • Fix Reboot Core crashing after Close ROM
    • Cheats - Fix 2 byte return values. Fixes #1060
    • Allow binding xpad triggers as analog controls. Fixes #1054
    • Fix movie backup saving path
    • Hex Editor - ability to swap bytes on multi-byte
    • Core Config - dynamically resize description field to fit text
    • ffmpeg writer - lossless avi command (ffv1, dolphin style)
    • Hotkeys dialog - move autofire closer to autohold
    • Fix #1126 (Autofire Hotkey broken)
    • Improve 6502 trace logging
    • Fix PXM converter #1109
    • Ram Watch
      • Add display type column (#683)
      • Fix column settings, fixes #1137
    • Lua
      • When capturing OSD in A/V, capture gui.text() messages. Fixes #799
      • Fix lua sockets, #1077
      • Fix for #1094 lua mainmemory.readbyterange() issue
      • Implement client.isturbo() and client.isseeking()
      • Implement tastudio input functions and branch callbacks
      • Fix multiline gui.text()
      • Implement emu.getluacore()
      • Fix #1119 (Lua with TAStudio (two host threads bug))
      • Add context menus to Lua Functions window 1122
      • New libraries for communicating with other programs #1080
      • Fix client.openrom()
    • TAStudio
      • Smart greenzone decay algorithm
      • Smart initial state gap for greenzone. Fixes #915
      • Update input every new frame we capture greenzone
      • Stop shrinking branch screenshot popup
      • Fix #1072 (TAStudio savestate history settings error)
      • Fix #1090 (Annoyance with follow cursor)
      • Scroll to new marker and new branch
      • Don't kill selection per marker removal
      • Stop supporting branch greenzone
      • Fix #916 (A last edited frame Greenzone)
      • Fix #913 (Don't save Greenzone in backup files or when auto-saving)
      • Add tooltips to playback control buttons
      • Enable paste menu items when clipboard is available
      • Fix analog values getting stuck in input port for new frames
      • Macros: don't die from colons in paths when saving to file
      • Fix greenzone not being created after you insert right on current frame
      • Allow scrolling/jumping to marker 0
      • TASEditor style controls
        • Alt + column click draws pattern
        • Alt + drawing pattern
        • Selection - taseditor logic
        • Shift/Ctrl keys restructure to taseditor
        • Shift + PageUp/PageDown - move frame courser to next/previous marker
        • Ctrl + Left/Right - add/remove selection at last selected row
        • Ctrl + Shift + Left/Right - add/remove selection at first selected row
        • Shift + clicking draws input from first selected row to clicked cell
        • Lua columns
        • Don't update float edit stuff or cell changes when its not needed
  • N64Hawk
    • Update GLideN64 video plugin to release 3.0, fixes #1053
  • NESHawk
    • FDS - IRQ timing fixes
    • APU IRQ fixes
    • APU Fix Triangle Channel
    • FDS - Fix Behaviour of disk status bit
    • Silva Saga to not think there are existing save games
    • Implement Mapper 63
    • Implement Mapper 43 and UNIF_UNL-SMB2j
    • Fix Mapper 114
    • Fix Kart Fighter (Mapper 116)
    • Fix Pocahontus and Super Donkey Kong (Mapper 182)
    • Various fixes to some unlicensed games
    • Raise cap on cheats to include entire bus size. Fix #1127
  • SMSHawk
    • Add Korea BIOS support
    • Disassembler fixes
    • Fix SP display in debugger/lua hooks
    • Savestate fixes
  • QuickNES
    • Blacklist Joe and Mac (#993)
    • Fix mapper selection
  • C64
    • Fix Scanline IRQs
    • Fixes 4-in-1
    • Fix leaderboard Golf, but Serial Port interrupts need to be done correctly
    • Fix mapper F
    • Updated colour palette values to use the new (Feb 2017) Pepto Colodore values
    • Explain sync settings in the C64 config dialog. Fixes #1091
  • GBA
    • Update mGBA to 0.6.1
    • Support palette settings in mgba, fixes #1042
  • SG-1000
    • Keyboard support for Mark III
  • ColecoVision
    • Add Super Game Module Support
    • Add Mega Cart Support
    • Implement graphics mode 1
    • Fix Turbo Controller
    • Fix noise channel audio
    • Fix audio quality
  • PC Engine
    • Add Cropping Option
    • Fix Display Offset Register Function
  • Gambatte
    • Restore GPU Viewer Functionality
    • Improve emulation and BIOS support
  • A2600
    • Add Driving Controller
  • A7800
    • Fix cart parsing for RAM bank, fixes #1129
    • Fix High score SaveRAM. Fixes #1130

BizHawk 2.2.1

  • SMS
    • Use the new Z80 core
    • Support EEPROM (93c46) for SMS
    • Add perhipherals Support for Paddle, Light Phaser, Sports Pad
  • Colecovision
    • Use the new Z80 core
    • Add support for the reset button #992
  • SG-1000
    • Use the new Z80 core
    • Overscan support
  • NesHawk
    • Core improvements and speedups
    • Fix Action 52
    • Support mapper 114 (Aladdin Super Game)
    • FDS Timer IRQ's
    • Update FCEUX palette to FCEUX 2.2.0
    • Fix Mapper 36, (Strike Wolf) #953
  • PSX
    • Fix bug where saving the state cleared the memcard dirty flags, Fixes #1031
  • TI-83
    • Use the new Z80 core
    • Fix power on Behaviour
    • Fix cycle timing
    • Fix timer interrupt frequency
  • PC-FX
    • Improved detection of PC-FX discs
  • bsnes
    • fix SGB mode creates two entries for the WRAM domain (#1012)
  • N64
    • Tracelog now includes delay slot execution. Fixes #789
    • Straighten out building of glide64mk2 dll. Fixes #1003
    • Fix minAnalogX and minAnalogY values (D and L inputs for the analog stick were one unit short of full range)
  • GB/SGB
    • Printer support
  • Gambatte
    • Always update half carry flag
  • Atari 2600
    • Always end frames on vsync boundary
  • Atari7800Hawk
    • Implement POKEY support
    • Remove Emu7800
  • Saturn
    • Port fix from Mednafen to fix Super Tempo
    • Fix savestate hash match issue
    • Fix exception when auto-loading a Saturn game
  • Genesis
    • Display lowpass filter range and backdrop color in hexadecimal
    • Finetune lowpass value to 40%, which is what MegaDrive1 has
  • EmuHawk
    • MDS/MDF Disc format support
    • Add an Auto SaveRAM feature (in Config -> Customize)
    • Lua - Implement memory.hash_region()
    • Hex Editor - Fix Cheat display, fixes #1026
    • Cheats - Fix endianess display #1025
    • Fix broken Jump List (#1015)
    • Tastudio
      • Don't trigger right button up events if left button is still held down
      • Don't break if user cancels movie conversion on file open
      • Fixes failure to color greenzone if a branch without input diff was loaded
      • Do normal seeking while recording

BizHawk 2.2

  • New Core: A7800Hawk
    • Intended to replace the EMU7800 core for Atari 7800 emulation (though EMU7800 is still available as an option)
  • EmuHawk
    • Fix d3d dispmethod crash #947
    • Fix libretro loading
    • TAStudio - remove ability to edit the platform id when editing the header
    • Lua
      • Implement tastudio.getbranches() and tastudio.getbranchinput() (#843)
      • tastudio.getselection() - make key of the lua table an index
      • read("*number") (#940)
  • SMS (various cores)
    • Fix Andre Agassi Tennis (fix Z80 interrupts)
  • NesHawk
    • Fixes hard Drivin'
    • Implement $2004 write glitch
    • PPU: Fix OAMADDR
    • Fix Warioland 2 (unl)
    • Fix Don Doko Don 2
  • PSX
    • Add some more PSX bioses in firmware manager (#941)
  • N64
    • Fix crash in axis constraints application when not connecting any n64 controllers (fixes #946)
  • Snes9x
    • Fix crash when rebooting while paused
    • Add CARTROM memory domain (#943)
  • 32X
    • Fix file chooser opening on unknown .32x files
    • Fix auto-picking a .32x file when it is the only one in an archive
  • Atari2600
    • Fix bitmap demo atext.bin
  • SGB
    • Allow hiding of borders (#938)
  • Saturn
    • Fix Y axis of the 3D controller virtual pad

BizHawk 2.1.1

  • SGB
    • Switch from Pizza Boy to Sameboy for the GB emulations parts, fixes a number of sound bugs and other things
  • mGBA
    • Update to 0.6
  • Saturn
    • Add the Ultraman Cartridge Hash/Checksum.
  • 32X
    • Add region select. fixes #929
  • Vboy
    • allow loading savestates made with different non-sync settings
  • PC-FX
    • Implement Pro Pixel mode
  • EmuHawk
    • add 64bit openal .dlls to release packages
    • Tastudio - fix recent menu - fixes #920
    • Fix custom highlighting in listview dialogs (fixes #932)
  • Lua
    • fix #931
    • fix memory leaks in LuaInterface (fully fixes #867)
    • fix io.open with mode "a"

BizHawk 2.1.0

  • New Cores:
    • 32X (using PicoDrive)
    • PC-FX (using Mednafen)
    • Uzebox (using Uzem)
  • SGB
    • Improved support
  • Atari 2600
    • Paddle support
  • Saturn
    • Multi-disc support
    • Better error message when user tries to load a .bin file directly
  • SNES
    • bsnes - Ignore the "crop SGB frame" setting if SGB is not active
    • Fix some games that require extra bios files by routing them to the bsnes core, fixes Megaman X2 & X3
  • Lua
    • Convert to NLua, fix memory leaks and corruption
    • Allow LuaInterface as an option (Customize -> Advanced) and revert its behavior to what 1.12.2 had
    • Add support for Lua scripts via the command line
    • implement forms.pictureBox()
    • Lua canvas
      • add setLocation()
      • implement getMouseX & Y functions
      • createcanvas now takes additional parameters that specify where the window should be created
  • EmuHawk
    • TraceLogger - Turn off trace logging when closing the tool, fixes #911
    • Fix crash in SNES virtualpad when mouse is used
    • Capture Game Gear flag in movies (fixes tasvideos submisison parser detection)
  • GB
    • Make DualGB run again (been broken since GB bios files were added)
    • Fix pocket monsters

BizHawk 2.0.1

  • Saturn
    • Fix aspect ratio correction logic
  • SNES
    • snes9x - port byuu's s-cpu fix
    • Make it clear that Game Genie codes are not currently supported
  • SMS
    • Fix various graphical issues in some games, fixes #893
  • Genesis
    • Fix memory domains
    • Fix Sega-CD
  • Virtual Boy
    • Fix frame 0 size
  • Neo-Geo Pocket
    • Correct mark this core as released
  • EmuHawk
    • Fix NES and GBA core picker menus
    • TAStudio - Fix crash loading bitmap thumbnails
    • Lua - add new SQL lua library see documentation for details

BizHawk 2.0

  • Upgrade to .Net 4.6.1, You must run the new 2.0 prereq installer!
  • Upgrade to 64-bit only
  • Windows OS pre-Windows 7 no longer supported
  • New Core: Neo Geo Pocket
  • New Core: VirtualBoy
  • Saturn
    • Replace Yabause with the Mednafen saturn core
    • Peripheral support
  • SNES
    • Replace performance profile with Snes9x 1.54 (Same nags as before, bsnes is preferred for movie recording!)
    • Deterministic hacks removed, (compatibilty profile is no longer slower than native bsnes, emulation bugs gone)
    • Reliable savestates
  • Genesis/Sega-CD
    • Savestate instability fixed
  • N64
    • GLideN64 update
    • Jabo dropped (unfortunate consequence of going 64-bit)
    • Cxd64-rsp-lle plugin support dropped (possibly temporarily)

BizHawk 1.13.2

  • EmuHawk
    • Account for linebreaks when measuring the OSD message string
    • Fix single-line OSD messages
    • Fix crashes when dumping AVI with OSD captured
  • Lua
    • Fix crashes caused by lua
    • Capture Lua messages to AVI
    • Add client.isturbo() and client.isseeking()
  • N64
    • Update GLideN64 to latest master
    • Disable Cache Size option in GLideN64, but display the value it forces internally
  • GBA
    • mGBA - Update to the latest 0.6 branch (past 0.6.3 release)
  • SNES
    • bsnes - Send vcounter and hcounter among registers
    • bsnes - Use hdot instead of hcounter in regs output. Fixes #1183 - List SNES scanline position registers in lua
  • TAStudio
    • Do normal seeking while recording. If you go to a frame while recording and unpaused, it will seek to that frame (not touching input since rec mode is suspended), and after it reaches it, it will unpause and restore Rec mode
    • Always assign branch's LagLog when it's loaded. Fixes failure to color GreenZone if a branch without input diff was loaded
    • Unbreak things if user cancels movie conversion on File Open
    • Don't trigger Right Button Up events if Left Button is still held down
    • Update input every new frame we capture. Fixes input recording
    • Stop shrinking branch screenshot popup
    • Smart state gap for GreenZone. Fix #915
    • Disable disk capacity setting
    • Fix #1072 - TAStudio Savestate History Settings Error
    • Fix crash when loading .tasproj with bitmap thumbnails
    • Fix Recent menu #920
    • Remove ability to edit the platform ID when editing the header
    • Scroll to new marker and new branch
    • Don't kill selection per marker removal
    • MarkerView.ShrinkSelection()
    • Fix #1090 - annoyance with follow cursor

BizHawk 1.13.1

  • EmuHawk
    • Fix exception when A/V capturing at custom sizes
    • Fix exception when selecting Reboot core with no rom loaded, Fixes #865
    • Lua - add more drawing methods for Lua canvas
    • Update statusbar on Loadstate Slot 7
    • Hotkeys for toggling Gameboy Obj and Bg layers
  • NESHawk
    • Fix numerous unlicensed games
    • Improve loading headerless ROMs
    • Fix APU triangle channel (passes APU mixer tests)
    • Fix APU Length counter (passes test_apu_2 tests)
    • Fix a PPU timing bug
    • Code cleanup (~5% faster)
  • SNES
    • Add 'crop SGB frame' option, #871
  • C64
    • Fix mnemonics for previous and next disk buttons
  • Dual GB
    • Fix input

BizHawk 1.13.0

  • Commodore 64 core officially released!
  • EmuHawk
    • Hex editor - Find box - remember Hex vs Text radio selection
    • Fix problems where keybindings arent automatically applied when loading a configfile. Fixes #851
    • When key priority is Hotkey over input, account for special hotkeys such as frame advance, turbo, fast forward, rewind
    • Add Toggle Key Priority hotkey
    • Drag & drop - default unknown file extensions to ROM
    • Fix rewind crash when cancelling out of archive file picker dialog
    • Check if save ram exists before writing it (Fixes TAStudio Ctrl+S crash)
    • Lua
      • Fix memory leak causing crash after a few dozen script loads/resets
      • Implement emu.getboardname
      • Add lua canvas methods to documentation
    • TAStudio
      • Fully replicate taseditor behavior when editing input by clicking column header
      • Don't draw column reordering icon when clicking column header (happened when several rows were selected)
      • Don't record marker edits to history when branch backup is created
  • NesHawk
    • Support some headerless Roms
    • Fix Tagin Dragon
    • Fix Faimly Basic
    • Fix Armadillo (J) graphics Fixes #848
    • UNIF_BMC_FK23C - Dipswitch support
  • SNES
    • Fix frame 0 loadstating
    • Support Trace logging GB and SMP cores
    • Disable trace logger on the Performance profile
    • Code-Data Logger support for SGB
  • PSX
    • Fix multitap flaking out after reboot core
  • Atari 2600
    • Fix Ram tools not updating after Hard Reset Fixes #838
  • Apple II
    • Add default binding for the Return key
    • Remove default bindings for keys that don't exist
  • Genesis
    • Disassembler fix
    • Add missing buttons on the menacer
  • Colecovision
    • Virtualpad support for peripherals
    • Mnemonic names for peripheral buttons
  • SMS
    • Fixes to Korean boards
    • Fix Xyzolog
  • PCE
    • Fix frame 0 loadstate window size bug

BizHawk 1.12.2

  • mGBA
    • Update mgba to latest 0.5.2 (71ee4a64b36b1256dbf6193b1087ff60a4656369)
    • Virtual Pad - support tilt controls (Fix #830)
    • Fix broken GB sound channels
    • Limited debugger support
  • Intellihawk
    • Sound emulation improvements
    • Debugger support
    • Capture mapper info into movie headers
  • SNESHawk
    • fix bug savestating SA1 hung in STP or WAI. fixes panic bomber.
    • Multitap support
    • Peripheral support
  • PSXHawk
    • Multitap support
    • NeGcon support
  • GPGX
    • Fix Game genie codes (#830)
    • More Accurate SVP Chip Emulation (#650)
    • Fix reset not reseting properly (#253)
    • Correctly emulate SRAM register in SSFII mapper. (#695)
    • Fix Might and Magic games give RAM errors (#548)
  • Atari 7800
    • Fix savestates made on frame 0 (fix #815)
  • EmuHawk
    • Allow rewinding during movie recording
    • Stop hotkeys from getting sucked up by absent tool windows when hotkey-over-game priority is enabled
    • Fix flickering when toggling vsync on/off (e.g. while fast forwarding).
    • Flush saveram hotkey
    • TAStudio - Tweak editing selection by clicking column header instead of reverting every button state, apply the reverted state of the first selected frame to all the selection
    • Lua
      • Add horizalign and vertalign parameters to gui.drawText()
      • Implement tastudio.getselection(), tastudio.insertframes(), tastudio.deleteframes()
      • Implement client.saveram() (flushes save ram to disk)

BizHawk 1.12.1

  • IntelliHawk
    • Major sound emulation improvements
    • General emulation improvements
    • Add Power/Reset buttons
    • Fix aspect ratio
  • NESHawk
    • Timing and audio emulation improvements
    • Fix Micro Machines
    • Fix Huge Insect
  • QuickNES
    • Fix Ms. Pac Man (Tengen)
  • ColecoHawk
    • Turbo controller support
  • N64Hawk
    • Use mupen64plus built-in debugger to avoid major slowdowns when breakpoints are set
    • Fix audio in AVI recording
  • Genesis+GX
    • Add options for "Always double size"
  • EmuHawk
    • hex editor: add import binary tool (quick and dirty way to effect .sav importing in many cases)
    • add a toggle all cheats hotkey
    • Cheats - Set default compare type to "equal" not NOTHING, fixes NES game genie codes generated through the cheat converter
    • fix Tools -> External Tools menu item throwing an exception
    • TAStudio
      • Add branch undo feature
      • Add jump to branch frame
      • Fix autohold not being latched when recording frames
      • Fix #534 (Disabling autohold is halfworking)
      • Dynamically resize usertext column
      • Make branch screenshot popup fade in and out
      • Allow exporting a named state
      • Branch text edit popup follows mouse pointer
      • When reopening tastudio and restoring its position, tolerate slight offscreen by resetting to 0 instead of ignoring the saved pos
      • Fix input being erased when frames are added
      • Fix rewinding that was turning rec mode off
    • Lua
      • tastudio.getrecording()
      • tastudio.setrecording()
      • tastudio.togglerecording()

BizHawk 1.12.0

  • New Core: Intellivision!
  • NesHawk
    • When a Game Genie code is turned off, remove the effects immediately, fixes #770
    • PPU timing fixes
    • Improve DPCM glitch emulation
    • Fix more the "8 sprites per scanline" option
    • Implement Mapper 190
    • Force Cybernoid to run in NesHawk
    • Fix Kaiketsu Yanchamaru 3 - Taiketsu! Zouringen (J)
    • Fix Aladdin SuperGame
    • Support mapper 002-00 submapper with WRAM if the header specifies it
    • Lightgun emulation improvements
    • disable VS settings menu item if current NES rom is not a VS rom
  • ColecoHawk
    • Fix controller 2
    • Fix controls for Alcazar - The Forgotten Fortress (USA), fixes #754
    • Add no skip flag to some games, fixes #752
  • GBA
    • mGBA - Fix some of the audio channel disables not working, fix audio channel disables not being restored on reboot core
    • GPU Viewer - Don't draw a sprite if its size + tile index combined make it go past the end of VRAM
  • Game Gear
    • Fix Shining Force Gaiden II (J) and Shining Force II (J)
  • Emu7800
    • compile in release mode, fixes #795
    • Pick Palette correctly, fixes #757 (Mat Mania Challenge PAL)
  • Gameboy
    • Fix System Bus memory domain when game uses CartRAM, fixes #760
  • Genesis
    • Display interlaced mode as 480i (weaved), stretch width as well
    • Put more of VDP context to savestates, fixes interlaced mode
  • EmuHawk
    • TAStudio
      • Recording mode doesn't erase input during seeking anymore
      • Fix recording mode disabling itself (#806)
      • Stop crashing upon movie platform mismatch
      • Smoother rewind
      • Stop latching user input in playback mode if new frames are generated
      • Fix #800 (row count cap)
      • make ToggleReadOnly() toggle read-only (allows movie.getreadonly() return valid value)
      • Hide columns starting with "Key " by default
      • Fix #788 (bsnes rerecording performance mode warning not in front of tastudio)
      • Fix #785 (ArgumentOutOfRangeException in StateToRemove) and branch loads wiping greenzone states
      • Prevent cropping of branch screenshot popups if they are wider than TasView
      • Fix .bk2 import
      • List all available file extensions on File Open
      • Show maker text popup when double-clicking existing marker in tasview, at cursor position, if called from tasview
      • Fix and tweak clipboard and selection display
      • Only load branch markers if they are bound to input
      • Move Greenzone (State History) saving to the end of .tasproj saving. Hopefully it won't erase other elements anymore if it crashes during saving.
      • Fix a crash caused by adding a marker
      • Fix columns setup on regular movie conversion
      • Fix double-click on the empty area throwing an exception
      • Reload the tasmovie if it was loaded outside tastudio and then tastudio was opened, also go to current emulator frame
    • Lua
      • Fix luasockets support
      • When toggling a script on, immediately run, and immediately update on-screen drawing
      • Fix the edit button to account for relative vs absolute paths
      • gui.text() - "new line" support
      • add emu.totalexecutedcycles()
      • add tastudio.setplayback()
      • add forms.setdropdownitems()
      • input.getMouse() - add scroll wheel, fixes #790
      • gui.clearGraphics() - immediately update the screen
      • tastudio.setmarker() - make marker message optional
      • Fix client.bufferwidth() and client.bufferheight()
      • Open File Dialog improvements
      • Fix emu.getdisplaytype() that has been broken for a long time
      • Fix movie.getinput() to correctly return float values instead of passing "False" no matter what
    • Ram Search
      • Update Size and Display type dropdowns on restart, fixes #762
      • Show restored/removed messages when undoing/redoing, fixes #749
    • Ram watch - fix rebooting core with a current watch listthe core, the check was always failing
    • Hotkey to toggle the "Frame Advance Skips Lag Frames" option
    • Hex Editor - Fix #761, exception when using "Find..." before selecting an address
    • Apply FF&RW volume when unthrottled.
    • D3D display method: fix 2nd ctrl alt del
    • Fix fast-forward when using audio throttle and XAudio2 or OpenAL.
    • Improve FPS smoothing
    • Multi-disk Bundler - Fix DPI scaling issues and improve control positioning.
    • Fix exception when loading a file that has no extension
    • Fix exception when hovering over Config -> Cores -> Snes when the user has never opened a SNES game

BizHawk 1.11.9.1

  • mGBA
    • Fix memory domain crashes
  • NesHawk
    • Add support for VS
    • Fix Seicross (J) (PRG1)
    • Support U-Force Power Games (U)
    • Implement mappers 106, 162, 170, 220
    • Fix mapper 176
    • Various obscure game support and fixes
  • N64
    • Fix crash when picking 1440p or higher resolutions with glide64mk2 and glide64 plugins
    • Use traditional GPR names for debugger
    • Fix disassembler output for Goldeneye 007 (#717)
  • SNES
    • hook up SGB saveram
    • When importing SNES .lsmv movies, add an extra input frame (fixes #721)
    • Add a bsnes profile picker to the Core menu (#179)
  • Atari 2600/7800
    • Add console buttons for toggling difficulty switches
  • PCE
    • Fix PCECD Lemmings audio (fixes #665)
  • SMS
    • z80 accuracy improvements
    • Fix Shining Force games ( #600 and #335 )
  • EMU7800
    • Added a few ROM Hacks into the Database.
  • EmuHawk
    • Input Display - hide neutral analog values for cores with neutral position other than 0 too
    • Cheats - when editing a cheat's domain, if the address is out of range, don't update, rather than create a separator (fixes #539)
    • Ram Search - when reseting an empty box to a default value, select the value (fixes #685)
    • Fix the Mute Frame Advance option
    • Lua
      • Fix endless locked emu surface errors when re-opening the lua console
      • Default the memory library to System Bus, if available (warning: change your scripts to use whatever domain was default before)
      • forms library - Run the checkbox click callback after the event not before (fixes #545)
    • TAStudio
      • Improvements to analog editing
        • Autorestore after every drag edited change
        • Increase the mouse move step to 3 from 4
        • Mouse dragging during analog edit mode updates the displayed value
        • Enter key exits analog edit mode after applying the resulting value, while Escape cancels all changes
        • Typing past max digits overwrites existing value
        • Adding selection (Ctrl/Shift+LeftClick) while in analog editing mode spreads the mode to selected rows (that change simultaneously)
        • Move functionality of arrows to hotkeys
      • Stop displaying neutral analog values
      • Fix loading/autoloading projects to properly set up columns and scrollbars
      • Fix crashes when
        • Setting 0 space for disk states
        • Rightclicking on selection if a bunch of selected frames contains the last frame
        • Cutting the last frame
      • Paste: Fix clipboard input having an extra empty line after splicing
      • Fix crash caused by seek progressbar
      • Fix < button while seeking is paused

BizHawk 1.11.8.2

  • N64
    • GLideN64 video plugin support
    • Added cxd4 to the RSP options
    • Fix Donkey Kong 64 bone displacement issues
    • Perfect Dark fixed
    • Fix trace callback
  • NesHawk
    • Accuracy Improvements
    • Fix and implement numerous obscure boards and games
    • Fix bug in NES BG evaluation - fixes a long standing bug in micro machines
    • Option to override initial WRAM pattern
    • Fix path exception when loading Ironman Stwart's Super Off-Road
    • Fixes to FDS audio, fixes damage sounds in kid icarus and Zelda II, and sword sounds in Zelda 1
  • GBA
    • Upgrade to mGBA 0.5
  • SMS
    • Fix Micro Machines
  • EmuHawk
    • Smoother FPS Counter calcuations
    • Fix filename generation when there are colons in the game name, fixes #661
    • Cheats - Fix behavior when loading a new rom when a cheat is loaded, fixes #550
    • Virtual Pads - Analog Sticks - check min and max range before setting the value. Fixes #686
    • Lua
      • Close a lua instance before creating a new one, fixes #455
      • Clear the OSD before doing loadstate callbacks, fixes #635
    • Ram Search
      • Don't throw excpetions when Diff column displayed, fixes #637
      • Fix toolbar enabling disabling when selecting rows, fixes #629
      • Fix Slow Select All (Ctrl+A), fixes #630
    • TAStudio
      • Preserve branch text per update (unless default text has changed)
      • Add a show cursor hotkey
      • Paste from OS clipboard
      • Fixed TAStudio crash when deselecting "Show Player X"
      • Fixed bug with selected rows drawing hidden columns.
      • Fixed bug with right click selection.
      • Crash fixes
      • Refresh when seeking is done
      • Don't pause on green arrow if seeking past it
      • Removed ability to keep drawing while the view is scrolling, fixes scrolling recursion
      • ClearLeftMouseStates() before Save dialog pops up
      • Pasting input beyond movie length extends it
      • History - properly fix recording
      • Display invalidated color consistently
      • Fix removal of states near lag frames
    • Hex Editor
      • When switching to a domain where highlighted addresses are out of range, clear the highlighted addresses, #710
      • Fix exception when pasting beyond the range of the domain, #708
      • Fix a minor bug with displaying the selected address, fixes #709
    • Basic Bot
      • Fix logic for determining the best attempt, no longer thinks every new attempt is better, fixes #603
      • Prevent empty Change dropdown style to DropdownList to avoid empty and invalid choices. Fixes #602
      • Update Run button status when loading a bot file

BizHawk 1.11.7

  • NesHawk
    • Numerous accuracy improvements, passes many more accuracy tests now
    • Fix Micro Machines
    • Fix Time Lord
    • Fix Saint Seiya
    • Correctly boot all the HVC-SNROM Board ROMs now.
    • Support UNIF DripGame http://www.qmtpro.com/~nes/drip/
    • Fix shaking in Little Ninja Bros (E)
    • Support SNES controllers
    • VRC2 - only support V\H mirroring - fixes Wai Wai World issue
    • Mapper 011 - fix mirroring on some boards
  • Atari 2600
    • Major core overhaul that includes many accuracy improvements, bug fixes, sound improvmeents, timing improvements, and game compatibility
    • Fixes compumate mapper
    • implement mapper m4A50
    • Add sega mapper mod
    • Pick the correct mapper for Tapper and Congo Bongo based off SHA1 hash
  • Saturn
    • Trace Logger support
  • PSX
    • Trace Logger support
    • Patch for "Fantastic Pinball Kyutenkai" lockup (not likely to affect sync but could in principle)
  • N64
    • Trace Logger support (Interpreter/Pure Interpreter core type only)
    • Implement memory execute callbacks (Interpreter/Pure Interpreter core type only)
    • Fix crash & memory leak when opening hex editor with the N64 core loaded
  • SNES
    • Fix crash when advancing after tracer was disabled
    • System Bus map has been extended to read mapped ROM space
    • Fix SNES trace logging to not lose information
  • SMSHawk
    • Overscan display option
  • Genesis
    • Improve disassembler
    • Fix bug in genesis z80 CDL that made addresses in mirrored z80 ram region crash
    • Output and input hex values in Settings
  • GBA
    • Add SRAM memdomain to both VBANext and mGBA
    • mGBA - fix bug where hard reset caused memorydomains to get permanently wrecked
  • Coleco
    • Add Venture to list of no skips
  • PCEHawk
    • Don't crash when loading PCE-CD and SGX games
    • Fix PCE-CD virtual pads
  • Wonderswan
    • Support settings to change colors
  • EmuHawk
    • Make direct3d9 prereq check non-fatal and make d3d display method initialization fail non-fatal, falling back to gdi+
    • D3D display method - survive ctrl+alt+del (fix #522)
    • Fix flashes of garbage while changing vsync toggle (includes when fast-forwarding) on D3D display method
    • Fix crashes when sending fullscreen windows to other monitors sometimes
    • Fix deleting recent roms when missing
    • Fix #615 - Garbage on the screen when starting paused with d3d
    • Don't allow user to add more then 2 GB/GBC ROMs into the Bundler (#472)
    • Fix the Apple IIe being labeled as PlayStation in the title
    • Ram Tools - fix usability issues with negative numbers (#669)
    • Ram Search - fix for unhandled exception when entering . in to the specific address box
    • Allow independent sound volume control during Fast-Forward and Rewind
    • Lua
      • Fix #595 - movie.getinput() exception, and movie.mode() confusion
      • Remove background color parameter from gui.text() function
      • Lua text - display trailing spaces
      • Fix regressions in lua's support for UTF-8 strings
      • Add gui.DrawFinish() which will let you choose when to finish drawing; and add optional argument to gui.DrawNew which when set to false lets you keep it from being cleared
    • Movie subtitles
      • Trim trailing spaces
      • Sort by frame and then by Y pos (to properly order multiline subs)
      • Concat multilines (optionally) on export
      • Option to skip color tag on export
    • Tastudio
      • Recording mode (works with TAStudio checkbox and global ReadOnly hotkey)
      • Autosave and backup features
      • Option to set the gap between states to be saved to .tasproj
      • Overhaul of seek and restore logic: navigation seeking no longer resets Restore frame
      • Make < and > PlaybackBox buttons act identically to FrameAdvance and Rewind hotkeys
      • Properly set input while unpaused
      • Fix all errors related to doing actions while seeking and saving
      • Replace Saving progressbar with hourglass cursor and status bar report
      • Fix N64 crash that happened when capturing states
      • Fix #515 again - TAStudio ignores ClientSettings.json
      • Allow 2 more digits for FramesPrompt
      • Fix #597 - Selecting a lot of frames + Copying throws an error
      • Fix crash when pasting input beyond movie length
      • Set SeekingCutoffInterval to VisibleRows
      • Set ScrollSpeed to 6
      • Fix rerecord counting
      • Ability to load .tasproj with corrupted GreenZone
      • Hide more columns by default (GBA, PSX)
      • Optimize column width
      • Ignore InputRoll hotkeys and numeric branch hotkeys during float editing mode
      • bk2 export: stop endlessly appending extensions
      • Stop recording marker history edits to history
      • Unpausing with the Pause hotkey ignores seek frame
      • Make Rewind hotkey work the same as outside TAStudio (step'n'run)
      • "Esc" key cancels seeking
      • Global hotkeys for AutoRestore, TurboSeek, FollowCursor, Insert/Delete/Clone/Clear
      • Option to trigger AutoRestore on MouseDown
      • Show user text instead of timestamp in BranchView
      • Fix #672 - Not Showing Analog Up, Down, Left, Right for N64
      • Don't pass Ctrl+C hotkey to MainForm
      • Stop copying nothing on Cut command
      • Stop seeking when movie stops
      • Fix to how Undo/Redo works with recording frames
    • Trace Logger
      • Log file segmentation
      • Spacing unification for all cores
      • Fix GB trace logger
      • Fix logging to window and saving to file
      • File->Save Log menu item in Trace Logger window
      • Fix an unhandled exception when saving a log from the window
      • Fixed the bug where if a tracelog line contains more than one [, everything after the second [ will be mistakenly thrown out
    • Debugger
      • Add address mask setting for breakpoints
      • Indicate breakpoint hit
    • Code-Data Logger
      • Add auto-start and auto-save to CDL
      • Fix copypaste bug in GB for some games with large cartram
      • support GB link
    • VirtualPads
      • Fix polar coord when center is non-zero
      • Fix automation of virtualpad analogsticks from movie playback

BizHawk 1.11.6

  • Genesis
    • Disassembler support
    • Trace Logger support
    • Sprite Layer toggles, and custom backdrop color
    • Add "M68K BUS" and "S68K BUS" domains
    • Capture Sega CD flag in movie files
    • Enable low-pass filter
  • Atari2600
    • Double and quad size players are now correctly delayed an extra pixel.
    • Added an R to the State output to indicate when the RDY signal is false.
    • Use the RDY flag to halt the CPU instead of a loop in the TIA.
  • mGBA
    • Capture SRAM in savestates, ALL PREVIOUS SAVESTATES are now incompatible
    • Update to the latest mGBA
    • Layer toggle
  • Saturn
    • fix bug in GLManager causing yabause in opengl mode to not work unless frameadvancing
  • TI-83
    • Implement Trace Logger
  • Colecovision
    • Implement Trace Logger
  • EmuHawk
    • Fix ramwatch crashing bug involving core reboots and watchlist hanging on to stale emulator instances
    • Hex Editor - fix exception when pressing "Ok" on the "Go to Address" input prompt in the Hex Editor with an empty string
    • GameShark tool - layout improvements
    • Make Screenshot Raw to Clipboard and Screenshot Client to Clipboard into configurable hotkeys instead of hardcoded shortcut keys in the menu items
    • Cheats - comparison type column
    • Lua
      • add emu.disassemble(uint pc, string name)
      • Set file watchers on lua session autoload
      • Better auto-complete for Sublime Text 2
      • Call the lua loadstate callback before redrawing the screen and other updates
    • Trace Logger
      • Capture headers in log files
      • Separate Disassmbly and Registers in separate columns
      • Remember column widths
      • Add an Open button
      • Use .log extention (allows extension based user syntax highlight)
    • Debugger
      • Don't update when unpaused. only update PC when we really need it.
      • Add a Run button
      • Registers - format reg names on launch, smarter spacing.
      • Return address in hex when copying.
      • Fix how Seek To determines the PC register
      • Update when maximized
    • Multi-disk bundler
      • Fix ROM path generation
      • Add a remove button
    • TAStudio
      • Fix some savestate bugs
      • Don't allow saving while saving.

BizHawk 1.11.5

  • GBA
    • Update mGBA to 0.4.0
    • Fix #563 - mGBA Combined WRAM not working
  • Nes
    • QuickNes - trace logger support
    • NesHawk - properly emulate JAM/KIL
    • Support the unif board UNIF_BMC-42in1ResetSwitch
    • NSF player - limit track number to legal range and print current track number to console
  • PSX
    • Add "determine lag from GPU frames" option
    • Support memory callbacks
  • N64
    • Fix per game settings for DK64 + Glide64mk2
    • VirtualPad - Add polar coordinates to Analog stick
  • GB
    • Add GB layer toggles
  • EmuHawk
    • Try catching some missing prereqs in emuhawk startup and print a report about it
    • Better error handling in shader compiling, fixes some startup issues
    • Cheats - New Feature - cheat comparison types
    • Game Shark tool - Added Multiline Cheat Code handling for all supported cores. Added GBA Slide code handling.
    • Make current windows size a per system setting
    • Fix #561 - can't set the xpad right stick
    • Ability to save/load specific config files
    • External Tools - Allow several tools running simultaneously
    • Fix selections in HexEditor text columns
    • Lua
      • Add emu.setislagged()
      • Add movie.save()
      • Add client.displaymessages()
      • Add gui.defaultpixelfont()
      • Add memory.getmemorydomainsize()
      • Fix #565 - bugs in lua's memorysavestate APIs
      • Make fceux font monospace
      • Fix #57 - Allow "#aarrggbb" as Color parameter to forms.setproperty()
      • forms.textbox() - Added a scrollbars argument
    • Lua Console
      • Add option to detect changes in scripts and automatically reload them. Have this option off by default for now
      • Fix exception when reloading a lua script with registered functions while the registered functions dialog is open
      • Remember column widths
      • Refresh the lua console when a script exits
      • When a lua exception occurs, also want to update the script status icons
      • Fix current directory bugs
    • Tastudio
      • Fix upward drawing.
      • Fix null reference errors with the splitter controls
      • Don't clear selection on Cut
      • Don't mindlessly unpause the emulator if autorestore is off and we're editing input via menu
      • Account for loading files with "All Files" filter.
      • Implement SeekingCutoffInterval
      • Seek progress bar, ignore if seeking closer than 2 frames ahead
      • History form - report marker operations, canonical colors, show the current item better
      • Markers - adding markers updates dialog
      • Don't ever remove marker 0
    • Ram Watch
      • Ram Watch - fix "Display watches on Screen" feature
      • Ram Watch - fixed saving of separators
    • Movies
      • Save to Disk option (intended for large movies)
      • Fix OutOfMemory when saving states
      • When automatic movie backups are enabled, take a backup when the movie is closed without saving
      • Save as menu item
      • Flag for SG-1000 movies, fixes TASVideos submission parser
    • Ram Search
      • Fix "Exclude Ram Watch" option
      • Fix leadings zeros in the Difference and Differnet By boxes
    • Basic Bot
      • Compare To feature
      • Clear button clears out the attempts and frames values

BizHawk 1.11.4

  • EmuHawk
    • Add libretro player, compatible with selected cores (check wiki)
    • Add External Tool system for c#-based tool plugins
    • Support Code-Data Logger for GB/GBC, SMS/GG, SNES, and Genesis
    • Cheat Dialog: Fix flakiness in value-editing
    • Add custom exception display box, so exception info can be clipboarded out
    • Improve main OSD font
    • Validate user shaders at selection time
    • Support user custom AR selection
    • Add --load-state commandline
    • Fix --fullscreen and fullscreenOnLoad options
    • Streamline editing RAM Watches
    • Tidy main form context menu
    • Add more options for U+D/L+R forbid/mutex
    • Fix Ram Search, Ram Watch, Cheats recent file lists
    • Fix ffmpeg path for AV writer broken a couple of releases ago
    • Add menu command to record avi skipping av writer selection
    • Remember codec selection between program sessions
    • Fix toolbox
    • Improvements to Retro shader compatibility
    • DispMethod D3D: Stop FP precision conflicts with lua scripts
    • DispMethod D3D: More leniency in compilation of optional shaders (so it's able to run on more low spec systems)
    • Fix #525 - Memorywatch hex textbox now remembers values across memdomain switches
    • Fix #526 - Hex editor repainting fails and garbage rendering
    • Fix #535 - domain list does not update when changing cores
    • Fix #537 - Annoyance with "always on top"
    • Fix #541 - Heavy CPU usage when emulation is paused
    • Fix #546 - Incorrect Lua Documentation
    • Cheats
      • Add GameShark converter for N64, GB/GBC, Saturn, GBA, PSX
      • Add Action Replay converter for SMS, SNES, Genesis, GBA
      • Add Game Genie converter for Genesis, SNES, GG, NES
    • Tastudio
      • Color stated frames on WasLag too
      • Don't truncate LagLog if the branch's one is shorter, but input is the same
      • Clean up garbage lua text and drawings in branches
      • Default scroll speed to 3
      • Put branch states to a separate greenzone file
      • Save/load TasSession variables (current frame and branch) in .tasproj
      • Fix scrolling when loading a branch
      • Account for mouse speed when advancing/rewinding
      • Fix ALT+ hotkeys
      • Update columns on every file load
      • ScreenshotControl tweaks and fixes
      • UserText in branches, available from lua and menu, is printed in ScreenshotControl
      • Add GUI buttons to branch view and marker view
      • Rightclick selects rows in branch and marker views
      • Hotkeys and shortcuts for input view and branch view
      • Add seeking progressbar
      • Saving progressbar reports progress gradually
      • Allow going to frame 0 for savestate-anchored movies
      • Fix #515 - Save and load column settings in projects
      • Fix #520 - An item with the same key has already been added
      • Fix #504 - TAStudio opened several thousand Set Markers dialogs
    • Basic Bot
      • Monospaced input display
      • Get smarter
    • Lua
      • Add two new fonts (gens/snes9x and fceux) and text rendering options
      • Fix gameExtraPadding coordinate translation
      • Fix (or at least temporarily banish) floating point math errors when running n64
      • Add CloseEmulatorWithCode (for returning exe process return code from script)
      • Clarify script pause/stop state in UI and logic
      • Autoload recent scripts (unless there's a recent session to autoload)
      • Fix forms.destroyall() and call it when lua console closes
      • Fix error in sizing of lua draw buffers with SetGameExtraPadding (and probably ClientExtraPadding) use
      • Fix #538 - Ability to pass memory domain to memory read/write functions
  • PSX
    • Fix #530 "AV Resizing shows black screen with PSX"
  • SNES
    • Fix crashes in GFX debugger (including fix #529)
    • Recommend proper SNES PAR
    • Build dlls without msvcrt14 dependencies (to run on more systems)
    • Option to turn off savestate-every-frame (desyncs can happen!)
  • Genesis
    • Add missing scrollbars in VDP viewer
    • Fix #543 (support up to 32MB roms)

BizHawk 1.11.3

  • PSX
    • Repair lag counter
    • Fix massively broken controller config dialog which was making controllers seem effectively disconnected or malfunctiony
  • EmuHawk
    • Fix Direct3D display method sleep/ctrl+alt+del crashes
    • Fix built-in shaders
    • Reduce shader level requirements for basic d3d display method functionality
    • Fix Ram Search/Ram Watch recent files menu
    • Import PJM and PXM movies
    • Sequentially number screenshots taken in the same second without crashing after the 3rd one
    • Lua
      • Add client.SetClientExtraPadding; fix client.SetGameExtraPadding window scaling
      • Add client.GetSoundOn and client.SetSoundOn

BizHawk 1.11.2

  • PSXHawk
    • Update to mednafen 0.9.38.7
    • Support 0-2 pads/shocks and 0-2 memcards
    • Fix loading of some .psf files
    • Add overscan clipping and deinterlacer options
    • Fix resolution management and PAR stuff for some PAL modes
    • Support .xml disc bundling tool as alternative to .m3u
    • Save PAL information in movies, and fix reported PAL movie times
    • Fix #460 - overlapping OSD elements
    • Support mednafen's emulation of disc error correction (optionally) and graceful sector-out-of-bounds reading
  • N64
    • Compatibility hack for Jabo vs some Intel GPUs on Windows8+
  • SNES
    • Handle interlarced modes differently
  • mGBA
    • Fix #507 - Add "Combined WRAM" memory domain
  • GBHawk
    • Add LY to trace log
  • NESHawk
    • Improve .unf loading (header parsing, Open ROM dialog, vram inference logic) and support more UNIF boards
    • Add ines mappers: 6, 51, 53, 90, 136, 147, 202, 204, 209, 211, 212, 213, 214, 216, 235, 244, 17; fix mappers 31, 60, 79, 91, 164, 243, 245, 119, 90, 197
    • Support many misc ROMs that are bad/over dumps, wrong/unusual header info, having trainers
    • Auto-select region from iNESv2 header
    • Fix some graphical corruptions in the PPU for Dragon Warrior 4 and others
    • Support 512-entry palettes (QuickNES too)
  • GPGX
    • Handle AR/resolution-changing more correctly and add option to pad screen out to prevent window resizes
    • Fix #494 - cheat decoder unhooked
  • EmuHawk
    • Direct3D Display Method support
    • New Tool: Basic Bot
    • Make throttle vs unthrottled vs frame advance behaviour better and add 400% speedlevel
    • Add toggles for screen and hud display for true maximum turbo performance
    • Add option to suppress double-click fullscreen toggling behaviour
    • Don't reorder cheats list when editing cheats
    • Fix some crashes on Play Movie dialog
    • Support IPCKeyInput (for automation from external program)
    • Support xbox pad guide button
    • Sequentially number screenshots taken in the same second
    • Finetune hotkey config dialog
    • Leniency fixes to cue loading
    • Make on-screen watches position editable
    • Fix crash when minimizing window in gdi+ display method
    • Fix some bugs in gdi+ display method with screenshots and prescaling
    • Aboutbox more gitified
    • Fix #461 - Repair autofire patterns
    • Fix #477 - Support key input over IPC for automation
    • Fix #490 - Ampersands in hex editor flakeout
    • Fix #493 - Add option to hide OSD messages
    • Fix #491 - Tool window sizes get whacked out sometimes
    • Movies
      • Ability to create/load SaveRam-anchored movies
      • Ability to import movies from commandline
      • Fix out of memory when using the Play Movie dialog
    • Tastudio
      • Add Branches feature
      • Fix rerecord counting
      • Various UI improvements and bug fixes
      • Ability to move markers by alt+click dragging them
      • Fix various out of memory and other greenzone crashes
      • Hide Power and Reset columns by default.
      • Optional icons for states and markers.
      • Support creating a savestate anchored movie from another savestate anchored movie
      • Support creating a new movie from current saveram
    • Lua
      • Fix graphics rendering in GDI+ mode
      • Add client.exit() and client.SetGameExtraPadding
      • Add movie.startsfromsavestate() and movie.startsfromsaveram(), movie.getheader(), movie.getcomments(), and movie.getsubtitles()
      • Add memorysavestate library for making and loading savestates in memory, with save, load, remove, and clearall methods
      • Fix bizstring.split() (make 1-based)
      • Fix crashes removing callbacks
      • Fix #469 - forms.newform() : add an onclosed callback optional parameter
      • Fix #463 - memory.readbyterange off-by-one
      • Fix #498 - fix quicknes lua rendering being offset incorrectly sometimes
    • Hex Editor
      • When saving memory domains to file, account for roms in archives
      • Fix some UI scrambling on memory domain change / data size changing
      • Fix ampersand escaping output
      • Change copy/paste behaviour and add 'export' option to all generally make more sense.
      • Fix #481 - keep scroll bar position when resetting the current rom as opposed to changing to a new one
    • Cheats
      • Refresh list when toggling the status of a cheat
      • Fix up open and save file dialog file/directory logic

BizHawk 1.11.1

  • EmuHawk
    • Hide Mouse Cursor on Full Screen
    • Allow Creating movies from a Savestate
    • RAM Watch
      • Only show the Read/Write Breakpoints context menu if they are on the System Bus
    • Lua
      • Now Case Insenstive
      • Added Spatterhouse 2 Lua Collision Viewer
    • Virtual Pad's analog sticks now properly behaves for N64 and PSX.
    • Added support for .img.ecm files
    • Show PSX Path options
  • NESHawk
    • Music Ripper added
  • PSX
    • Fixed loading of the pirate version of Looney Tunes Sheep Raiders (PAL)
    • PSF Support
  • Saturn
    • Fix disc booting
  • TAStudio
    • Added an option for faster mouse wheel scrolling on the TASView
    • Fixed bugs

BizHawk 1.11.0

  • New Core: PSX
    • Ported from mednafen
  • Genesis
    • fix some missing data in savestates
  • GBA
    • When loading a movie, load it in the core it was recorded on
  • GB
    • core update from gambatte
  • Apple II
    • Debugger - Breakpoints, Ability to set CPU registers and stepping ability
    • Fix default path being the lynx folder
    • Support monochrome option
    • Don't warn about sync settings when loading a movie
    • Add Trace logging support
    • Add support for lua event.oninputpoll()
  • EmuHawk
    • Play Movie dialog - fix exceptions on load
    • Debugger - fix duplicate breakpoints and clear Breakpoints properly when removed
    • Multi-Disk bundler - fix various issues with the form, most significantly the wrong system Id for AppleII
    • fix failing importing firmwares when target directory doesn't exist
    • When adding to ram watch from another tool, don't ask to save changes
    • Ram Watch - Fix moving up and down separators and identical watches
    • Virtual pads - fix issue #422 - When sticky option is off, don't reset the pad back to 0 until the mouse button is released
    • Lua
      • run lua scripts when turboing, add an option in customize to revert this behavior
      • Add a split container to Lua console window
      • Implement emu.setlag()
      • fix a small issue where any callback generating an exception would crash the emulator
      • fix issue #405 - relative path changes from form click events
      • tastudio library
        • implement events: onqueryitemtext, onqueryitembg, onqueryitemicon, ongreenzoneinvalidated
        • implement tastudio.setlag()
      • implement the userdata library, a place to store dynamic data that will be saved and loaded into savestates
      • implement gui.drawAxis
    • TAStudio
      • fix issue #446 - don't greenzone between the mouse down and mouse up events when editing input
      • fix autoload
      • account for a button name of "P" rather than assume it is a player number indicator, fixes issue #431
      • fix right-click mousewheel rewinding on platforms with larger savestates
      • Count rerecords
      • markers: fix input roll context menu command removing Markers
      • fix crash when loading a .tasproj file with a different controller configuration that what is currently loaded
      • scroll to frame appended by offscreen dragging
      • apply autohold to appended frames

BizHawk 1.10.0

  • New Core and Platform
    • Apple II (ported from the virtu)
  • New Core
    • mGBA
    • provided as an alternative to vba-next
  • SNESHawk
    • fix XML loading
    • Fix RAM Leak when Load states
  • GBHawk
    • fix behavior for MBC5 when bank == 0 is written. Thanks Dabomstew for pointing this out.
    • fix infinite recursion in loadrom for unsupported GB games
  • PCEHawk
    • tweak VDC register commit logic
  • NES
    • fallback from quicknes to neshawk for Bill and Ted's Excellent adventure since quicknes is not able to run it
  • ColecoHawk
    • fix sound which had gotten unhooked
  • EmuHawk
    • Movies
      • fix crash when loading a state on the last frame of a movie in read-only (issue #429)
      • fix importing of GBC .bkm files
      • Compress movies regardless of savestate compression level
    • Platform picker - don't ask twice for the users choice twice
    • Fix SNES Game Genie Add button (issue #420)
    • On startup, respect the show status bar flag, fixes issue #421
  • New Tool - Multi-Disk Bundler
    • (Replaces the DualGB tool)
    • Used to bind multiple disks for Apple II and Dual Gameboy
    • Lua
      • add client.CreateInstance() which receives a type name available to EmuHawk and will construct and return the given object (currently limited to objects with parameterless constructors)
      • add client.getavailabletools() which returns a list of tools available to the currently loaded core
      • add client.gettool() - returns a currently available tool, if the tool isn't open, it loads it

BizHawk 1.9.4

  • NESHawk
    • Added a nsf player
    • FDS - Fix showing "Good dump" all of the time
  • N64Hawk
    • Fix immediate desync if using a savestate made on frame 0
    • Fix Excitebike 64 (Rev A)
  • EmuHawk
    • Lua
      • Fix randomly crashing on startup
      • add gui.drawImageRegion()
      • Don't crash on lua script errors in savestate and frame events
      • Add a genesis library with the ability to toggle bg layers
      • memory.readbyterange() - pass a table of ints instead of strings
      • Fix some lua documentation
      • Some misc small bug fixes in some lua functions
    • Hex Editor - fix text search in the find box
    • Fix Trace Logger not restarting properly.
    • Ram Search
      • Fix equal/not equal for float searches
      • Fix searching for a specific value >= 0x80000000
    • TAStudio
      • Implemented Added AutoFire patterns and applying them to painted input
      • Implemented Auto-adjust Input according to Lag;
      • Performance improvements
      • Numerous bug fixes
      • Fix - Autorestore frame was lost when making rapid changes
      • Fix - Canceling conversion of movie to TasProj stopped movie.
      • Editing while in playback won't mess up the LagLog (states still do)
      • Fixes to rotated display and HBar scrolling
      • Page up/down now scrolls by one page
      • Scrolling via dragging bar and via wheel now both have the same max value.
      • Lag History is no longer completely cleared on making an edit.
      • Grouped column display options by player, added mass toggle by player.
      • Added AutoFire support in TAStudio, fixed/improved patterns.
      • Undo History UI, some history bugfixes
      • Painting input past the movie no longer moves markers
      • Bugfix: Painted input after the movie was recorded over.

BizHawk 1.9.3

  • Fix Issue 403 - misaligned highlighting in Hex Editor at non-default DPI settings.
  • Fix FME-7 IRQ ACK logic in quicknes and neshawk
  • Fix the coleco core from crashing on start up
  • Fix cheat dialog from blowing up on a cores with no System Bus defined
  • Flip around one of the 'if' statements. Changes the output enough to avoid false positives with some virus scanners.

BizHawk 1.9.2

  • Nes
    • FDS - fix load behavior based on real world observations. Most games will load about 4 seconds faster now
    • Quicknes - Clip top and bottom by default
    • Fix Soft reset in Ki no Bouken
    • Support Cool Boy 400 in 1
  • N64
    • Updated save type of Donkey Kong 64
    • Fix cheats
    • Better support of the System Bus across Ram related tools
    • Added Excitebike 64 (USA) (Rev A) and Turok - Rage Wars (USA) (Rev A) to gamedb
  • GB
    • add ability to load VBA saves with RTC (although the clock time itself is invariably trashed)
    • Fix reporting incorrect PC and A register values, note: this is a breaking change to text savestates
  • SNES
    • IPCRingBuffer - greatly improve performance on dual and single core machines
  • PCE
    • Improve performance
  • Atari 7800
    • Combine Ram1 and Ram2 into a single Ram domain
    • Make some memory domains read-only instead of silently failing to write
  • EmuHawk
    • A Debugger tool (with varying support among cores)
    • GDI+ display method as a fallback for lack of opengl 2.0 support
    • Improve Rewind performance
    • Improvements to sound, less prone to audible glitches and reduces latency
    • Reduce CPU usage when idling
    • Fix dialog issues with alternate DPI sizes
    • AV Dumping - add ImageSequenceWriter
    • Add options for display of various window components (menu,frame,caption,statusbar)
    • Add --chromeless commandline argument
    • Make rewind speed proportional to rewind frequency
    • Single frame rewinds when short pressing rewind key while paused
    • Allow clock throttle to take over for audio / vsync throttles during fast forward or rewind for proper speed control
    • Option to automatically check for and notify of new versions.
    • Add a menu item for Save RAM and bold it if it is dirty; allow it to be manually flushed, instead of having to wait for the client or core to close
    • Trace Logger - Clean up newline handling in Copy
    • Add --dump-frames commandline to control which frames get dumped by the auto-dumping feature
    • Recent Menus - add ability to configure their own recent size
    • Platform Chooser - show game hash
    • Fix cancelling out of the core picker causes exception (issue #316)
    • Fix crash trying to use snes bg hotkeys when snes is not loaded
    • Fix missing movie extension for game names that have a . at Length-4
    • Fix out of range exception when importing firmware from an archive
    • Fixes to Single Instance mode
    • Log Window - fix Copy All button line formatting
    • Lua
      • Fixed memory leaks
      • Memory library - default to main memory if user did not specify a domain
      • Fixed a bug with analog controls not being cleared
      • Don't crash emulator when lua scripts error during event callbacks
      • Fix fill behavior in drawBox, drawRectangle, drawEllipse, and drawPie
      • Fix event.oninputpoll() to return a GUID like every other event
      • Gui library - make all colors optional parameters and use defaults if not provided
      • Add gui.defaultForeground(color) and gui.defaultBackground(color)
      • Recover from a locked drawing surface exception and log to the console, rather than crash the emulator
      • Lua Console
        • Add a command window for on-the-fly lua commands
        • Functions list - fix laggy scrolling and searching
        • Don't nag to save a session, unless a session exists
        • Make scripts relative to the lua session instead of relative to the .exe, this breaks existing .luases files
        • Use Fixed width font for console window
    • Movies
      • Fix duplicated input after a movie ends
      • Multitrack recording - support analog input
      • Store firmware information in movie headers
      • When the "Pause" movie end option is selected, fix bug where unpausing keeps repausing the emulator
      • Don't disable movie play/record options when a movie is active
      • Fix movie recording on Genesis Team Player
    • Hex Editor
      • If a domain is not writable, switch to a "read only" mode
      • Default to memory domain byte size
      • Fix Load .tbl file menu item when rom is in an archive
      • Fixes to the Poke dialog
      • Find box - focus and highlight on load
    • Ram Search/Watch
      • Better memory usage
      • Fix issues with signed values. Resolves issue 340.
      • Implement previous type "last change". Fixes issue 331.
      • Auto-search - Account for lag, add option to turn this feature off
      • 16.16 Fixed point support
      • Fixed go-to using index instead of address
      • Support Copy/Paste
      • Ram Watch - Default to memory domain byte size
      • Ram Watch - Added read/write breakpoint setting to context menu.
    • Cheats
      • Fixed cheats not working
      • Fix cheats on large memory domains
      • Never ask to save changes, since it intelligently handles the situation anyway
    • Virtual Pads
      • Fix max X/Y value of target being off by 1
      • Fix NES Zapper target being 210 pixels tall instead of 240
      • Buttons - when right-clicking for autofire, respect the frame that autofire started on and take lag frames into account
      • Buttons - disable special command keys (space, tab, and shift+tab)
    • TAStudio
      • Various improvements, but still beta

BizHawk 1.9.1

  • EmuHawk
    • Corrected Lynx Framerate
    • For real fix the Savestate speed
    • Lua Console
      • Don't care about extension's case when doing Drag and Drop
    • RAM Watch
      • Fix loading with seperators
      • Fix Freezing values
    • Movie
      • Fix Drag and Drop breaking things during playback

BizHawk 1.9.0

  • New core: LynxHawk
    • The Handy emulator, ported from mednafen
  • N64Hawk
    • Savestate speed improvements
    • Fix Issue #292 - Bizhawk still emulating N64 after "Exit" hotkey had been pressed
  • GBAHawk
    • All inputs are no longer delayed by one frame. Existing movies will need one blank frame inserted at the beginning to resync.
  • Quicknes
    • Support ability to unplug controllers
    • Fallback to NesHawk for any known PAL ROMs (as determined by the bootgod database)
    • Virtual Pad will now properly reflect the number of controllers connected
  • NesHawk
    • Datach support, including barcode reader (not movie recordable)
  • BSNES
    • Force Mega Man X2 and X3 to use the Compatibility Core due to the Performance Core being unable to run the games properly. This does not change the user's default preference.
  • Dual GB
    • Option to mute each gameboy instance individually
  • WonderHawk
    • Merge with mednafen 0.9.36.5, includes sound and sram changes
      • Note: Possible sync compatibatility loss
    • Added game database of known good ROMs
  • ColecoHawk
    • Corrected ColecoHawk from adding .Col to the title of EmuHawk
    • Corrected ColecoHawk from setting the extension of ColecoVision movies to .col It is now .bk2 which is the proper extension.
  • EmuHawk
    • Movies
      • Fix bug where loading a state not in the movie in playback mode would report an error but send the movie into record mode
      • Fix bug where rerecord counter was incremented when playing a movie
      • When loading a movie that specified quicknes or neshawk don't permanently override the user's core preference
      • When importing snes movies, set the movie sync settings to Compatibility profile
      • Add framebuffer in movie anchor states
      • Fix bug where movie was being saved when loaded (generally harmless other than make loading a bit slower)
      • Edit Subtitles - Added rows now have default values
    • Lua
      • Add a duplicate script menu and toolbar item, functions similarly to new script except it starts with the text from the highlighted script
      • Restore ability for many lua functions to report errors to the console window
      • LoadState through Lua isn't counted for movie RerecordCount
      • Added movie.setrerecordcount and movie.getrerecordcount
      • Add client.borderheight(), client.borderwidth(), client.bufferwidth(), client.bufferheight(), client.transformPointX(), client.transformPointY()
    • VirtualPad
      • Unsticky analog controls when right-clicking the circle visualizer
      • Fix bug that made virtualpad permanently override actual physical analog control
    • Firmware manager
      • Tracks filesizes, and filesizes of known firmwares are used to restrict scope of scanning, fixing issues when the firmware folder is set to a folder with large files or a lot of files
      • Add firmware import option (copies firmwares into firmware directory through toolbar or drag & drop)
    • TAStudio
      • Now in Beta
    • Improvements to remembering window positioning
    • Don't malfunction when compiling retro shaders on systems with bad opengl support, fixes some system's ability to run BizHawk
    • Don't give an ugly error message when attempting to load an unknown ROM and not selecting a core to run the ROM file
    • Fix Trace logger crash, seemingly a race condition between a create, a flush, and a subsequent open for tracing (for issue #299)
    • Ram Watch - fix issues during rom loads for other platforms, fixes issue #285.
    • Hoktey/Controlller config - make input binding limitless (instead of limited to 4), at the same time, fix bugs caused by index accounting related to the limit.
    • Volume up/down - much bigger dynamic contrast in volume range
    • Sound will be turned off if volume is set to zero Fixes issue #310
    • EmuHawk will no long keep the (X,Y) on the title bar when resizing is complete

BizHawk 1.8.4

  • EmuHawk
    • Ram Tools - support poking frozen values, fixes issue 266
    • Ram Tools - Fix stale memory domain issues in Ram Watch and Ram Search when restarting a ROM (affected platforms such as Atari 2600)
    • Hotkey/controller dialog fix ups
    • Exit program hotkey
    • Lua - remove cleartype from DrawText
    • Fix bug in recent roms explore option for paths with commas
    • Right-click options on recent items in recent menus
    • Fix replay dialog "stop at frame" field to allow 10 digits instead of 3
    • Fix always getting a "movie was written to disk" message when stopping a movie, will now only say so if it actually was saved to disk
    • When loading a movie, gracefully handle a movie/rom system id mismatch
    • Recent Movie autoload - don't crash if movie file couldn't be found, fix logic that opens the Open Rom dialog if Autoload rom is not picked
  • Genesishawk
    • Fix crash when end of cd is reached
    • Fix Seeking when playing audio tracks. Gotta seek fast!
  • Gbahawk
    • Add GBA tab to path config
  • N64hawk
    • Make jabo the default plugin
    • Fix Gui freezes while a game still runs in the background on minimizing then maximizing
    • Change the expansion slot override notion. If a game in the gamdb has the expansion slot override, override the user's choice, but don't change the sync setting (otherwise all games they load afterward will be set to this). In the N64 menu item, show the checked status based on if the core is actively using the expansion slot, not whether the sync setting is set. If the gamedb is overriding the user's choice make it clear by disabling the menu item. This commit message is longer than the changeset itself.

BizHawk 1.8.2 (1.8.3)

  • EmuHawk
    • Custom AR Support
    • Display client size while resizing
    • Fix U+D/L+R behavior when disabled
    • Fixed the core detection when playing back a NES/SNES movie.
    • Profile config - add a N64 Tool-Assisted Speedruns profile
    • Speedup/Slowdown hotkeys - add 300% and 6400% increments
    • Play movie - stop on frame textbox - change max length from 3 to 8
    • Lua - forms.label - add an optional fixedwidth font param
    • Cheats dialog - default to System Bus domain
    • Ram Search - fixes to 4 byte searches
    • Hex Editor
      • Fix highlighting logic on some systems
      • Fix stale memory domains when loading a new ROM with the hex editor still open
  • GBAHawk
    • Wave channel fix - fixes the broken BGM of Hachiemon and Mario & Luigi: Superstar Saga.
  • Atari2600Hawk
    • Fixed PlayField Score flag not being set. Fixes the tachometer in Dragster
  • GenesisHawk
    • make the vram memory domain properly invalidate the tile cache and the vdp viewer properly regenerate the tile cache
    • 68k and vram memory domains - account for the fact that rom and ram are emulated with 16 bit swaps
  • N64Hawk
    • Include the jabo plugin in releases (with special permission from jabo)
    • Expansion pak toggle support, off by default
    • Added a System Bus domain, allows support for certain gameshark cheat codes
    • Added a ROM memory domain
    • Change memory domains so that rdram is big endian
    • Fix bug with core inventory launching n64 core with data that romgame had mangled in cases. Fixes the loading of rom hacks such as Legend of Zelda Zeldas Birthday
    • Performance improvements in savestates
  • SNESHawk
    • System bus domain for "deterministic mode" (recording a movie)
    • Fix lag counter when using the performance profile
    • Improve rewind performance

BizHawk 1.8.1

  • EmuHawk
    • Corrected a bug relating to missing firmware and null emulator
    • Open ROM now allows you to select .GBA files
    • Changed Muppen Style Lag to Non-VI Lag Frames
  • GBAHawk
    • BIOS can be skipped for movie recording. BIOS is still required to play games.

BizHawk 1.8.0

  • New Core! GBAHawk
  • EmuHawk
    • Add a Freeze/Unfreeze option to recent menus
    • Firmware Config - dont crash when organizing firmware
    • Unified Firmware error messages. No more cryptic messages.
    • Hex Editor - fix wrapping logic when incrementing/decrementing frozen addresses
    • On loadstate clear "button start" values in autofire logic
    • Movies
      • Fix Savestate-anchored movies
      • Fix multitrack rerecording
      • Play Movie - fix fps and timing calculations for genesis movies
      • Added "Export to SubRip" button to the subtitle edit dialog.
      • Fix crash when attempting to load a movie for a different platform than the current
      • Added extensions to all files inside BK2
    • Lua
      • Add bit.arshift for arithmetic right-shift.
      • Changed the timing of merging Lua input to controllers, now joypad.set stops altering autohold/autofire buttons
      • When closing the lua console - clear the lua surface
      • Fix the color param in lua drawing methods when using hex values
  • Quicknes
    • simplify blitting logic, giving a 15% overall speedup in some cases
  • Neshawk
    • (MMC5) - fix uchuu keibitai SDF
    • FDS - fix divide by zero error when a game uses FDS audio without ever having written to a particular register
  • GBHawk
    • Option to set the frame timing (pre 1.7.x vs 1.7.x)
  • DualGameboy
    • A Connection Status toggle option
    • NOTE: this change breaks support for previous savestates!
  • PCEHawk
    • Fix multi-player support

BizHawk 1.7.4

  • EmuHawk
    • Check for existence of xinput1_3.dll before calling on the slimdx code to attempt using it, fixes crashes on start up for some computers
    • AVOUT: FFMPEG and Nut writers: reduce memory thrashing issues substantially. Should have no problem keeping up with extraordinarily large sizes now.
    • Fix Autoload last savestate - if this is set, load the state after loading a rom too, instead of only on emulator load
    • Add Screenshot menu item and Ctrl+Shift+C hotkey to copy current client area as a screenshot (as opposed to the ctrl+c raw copy) so you can get scaling and filters too
    • More informative error message during Rom Loading errors such as missing firmware and invalid situations
    • Display Config scanline intensity maximum was meant to be 256
    • Movies
      • Fix savestate-anchored movies
      • Fix replaying a movie from a game that uses sram
      • Fix importing of 3-button .gmv movies
      • Play Movie dialog - A stop on frame feature including a "last frame" shorthand option, and turbo seeking
    • Virtualpads
    • Huge speed boost
    • Fix PCE virtualpad I, II, and Run buttons, also fix input display for the Run button
    • Fix the N64 controller pad to better resemble a real N64 controller
    • Add an option "Clear clears analog input"
    • Fix analog input being still held when closing a Rom with the virtualpad open
    • Properly clear analog input when right-clicking
    • Ram Watch/Search
      • Performance improvements for the Ram Watch and Ram Search dialogs
      • Fix freezing of float values
      • When using turbo (shift+tab) still increment change counters and other necessary things even though drawing is being skipped
    • Path Config
      • Better ordering and logic of global path entries
      • Remove global base from top since it is in the global folder
      • Fix Global Rom logic
    • Hex Editor
      • Fix exception when displaying a cheat value in a byte size not equal to the cheat itself
      • When opening the hex editor from another dialog, open it in the same byte size
  • N64Hawk
    • Fix a problem that would cause emuhawk to crash for some video cards when a N64 game is loaded
    • Removing debug text from Glide64mk2
    • Fix stale frames showing after Loadstate for some games (OoT, MM)
    • Added a "Mupen style lag" option to the N64 menu. This will change the lag counter to count non-VI frames as lag (instead of non-input frames). When combined with Config -> Customize -> Advanced -> Frame advance button skips non-input frames, frame advance will now skip over non-VI frames mimicing how Mupen64-rr works.
  • NESHawk/Quicknes
    • Disable quicknes mmc5 support, as only CV3 runs at all on it. Instead, fall back to neshawk
    • Fix crash when "NES with QuickNes" is selected, and the user attempts to load a FDS game without a proper FDS BIOS.
    • Fix credits sequence in metal slader glory
    • Quicknes - use bootgod db to display helpful information about roms similarly to neshawk

BizHawk 1.7.3

  • Fix exception thrown randomly when opening the Play Movie dialog
  • Fix N64 VirtualPad
  • Fix "Null" window text bug when first loading EmuHawk
  • Fix creation of mupen64plus.cfg in the user's root folder
  • SnesHawk
    • Prevent movie recording using the performance profile and never run this profile in "deterministic" mode
    • Always run compatibility profile in "deterministic" mode, fixes numerous problems documented here.

BizHawk 1.7.2a

  • Fix error when attempting to replay a GBC movie regarding mismatching System Id
  • Fix missing Profile Config dialog menu item
  • Fix Client Sizing / AR correction

BizHawk 1.7.2

  • EmuHawk
    • Profile Config dialog, allows you configure EmuHawk for specific tasks such as casual gaming longplays, and tool-assisted speedruns
    • Text savestates are now in the archive format, just like binary ones. Old text savestates are now invalid!
    • Fix Number boxes in various tools to prevent user from pasting invalid input from the clipboard
    • Fix the "-32000" window position bug when closing the dialog while a tool is minimized
    • Fix Record Dialog crash when movie folder does not already exist
    • Add option to disable fullscreen hacks (may increase latency)
    • Savestate config options including compression level
    • Ram Search - fix freezing when manually deleting from long lists
    • Lua
      • joypad.setfrommnemonicstr() - catch errors and log to the lua console the error instead of killing the script
      • memory library - populate the default memory with the MainMemory defined for that core, as opposed to null, which results in silent crashes
    • Config Options
      • Gui option to start in full screen
      • Add Savestate config options including compression level
    • Movies
      • New movie format: .bk2 (see documentation for more details)
        • Supports Multi-controller configurations
        • Supports peripheral recording (such as zappers, mouse, and light gun)
      • Mutlitrack - support the number of configured controllers rather than a hard coded 5 controllers
      • Config options for different ways to handle movie playback ending
    • VirtualPads
      • Complete rewrite
        • Dynamically creates pads based on controller configurations
        • Supports Mouse and Light guns using the new Targeting Screen widget
        • Supports right-click autofire for buttons
        • Overhaul of Analog Stick widget
        • Supports read-only mode
    • Ram Watch
      • Add a pause button (dialog does not update when paused)
      • Hide/Show option for the address column
  • SNESHawk
    • Fix MAJOR movie desync bug introduced in the 1.7.1 release
  • N64Hawk
    • Fixed freezing when soft reseting Legend of Zelda: Majora's Mask (and possibly others)
    • Default to one connected controller with no pak
    • Controller config - fix enabling/disabling of Pak dropdown when the connected checkbox is checked
  • GenesisHawk
    • Multitap support
    • Mouse and Light Gun, and Activator support
    • Emulation fixes ported from Genplus-GX
      • r859 - Team Player emulation fix
      • r872 - Fix ROM padding for Sonic & KNuckles
      • r874 - [Core/VDP] improved Mode 5 sprite parsing accuracy (verified on real hardware)
    • Layer toggling options
  • PCEHawk
    • New Tool: Sound Debugger
    • Support connecting/unconnecting controllers (with a default of 1 connected)
  • SMSHawk
    • Fix Game Gear to have its own controls (and a start button instead of run being start)
  • Atari7800Hawk
    • Peripheral support

BizHawk 1.7.1

  • SnesHawk
    • Close bsnes process when frontend terminates unexpectedly
    • Add a warning nag before attempting to record movies on the Performance core, and give an option to switch to Compatibility
  • GenesisHawk
    • Support lua memory events
  • WonderHawk
    • Support lua memory events
  • N64Hawk
    • Fix flickering on games that do not render on every VI frame, fixes Paper Mario
    • Fix bugs in the game specific plugin settings in the game db
  • NesHawk
    • Support lua emu.setrenderplanes() for quicknes core
  • SaturnHawk
    • Fix support for opengl rendering mode
  • EmuHawk
    • Fix bug where input display during movie playback was showing the previous frame instead of the current
    • Support filter_linear retroshader
    • Fix freeze if user specifies a crashing retroshader
    • Fix remembering of column order in Ram Watch, Search, and Cheat dialogs
    • Fix play movie dialog
    • Support .ws extension in the Open Rom dialog
    • Improved ffmpeg detection

BizHawk 1.7.0

  • New Core: Wonderswan (and WS Color), cygne (ported from mednafen)
  • New Core: Add quicknes as an alternative to neshawk, by default for supported boards, quicknes will load instead of neshawk. Note: advanced features such as lua hooks are not supported on quicknes
  • Emuhawk
    • Open GL Rendering, and dropped support for directx and GDI+
    • New Display options, including Aspect Ratio correction
    • Support mapping hotkeys and input to mouse input and escape key
    • Toggle sound hotkey
    • Fix - Don't pass deterministic emulation flag when not in movie mode
    • Numerous fixes to default joypad buttons
    • Fix some bugs in ffmpeg handling which seemed to be depending on an older version of ffmpeg
    • Clarify some rom loading error handling, especially in PCE-CD
    • Save Screenshot in savestates toggle - add a "big" savestates option off by default and set to 128kb as a somewhat arbitruary value (only reached on n64 at 640x480 or higher most likely, TASers should enable this if using high resolutions while TASing!)
    • Show currently loaded core in the status bar (including profile information for bsnes)
    • Improved input dislay - show immediate input, show previus frame when movie loaded, and different color for auto-hold buttons
    • Fix weird sticky input bug
    • Extension preferences dialog for ambiguous rom types such as .bin, also if loading one of these without being set, a dialog will pop up allowing you to pick the core
    • Trace Logger - Fix blank lines in saving to file or clipboard on some platforms
    • Cheats - Save cheats even if the cheat dialog was never opened (for instance, if the cheat were added via a game genie dialog or lua)
    • Log Window - support Ctrl+C for Copy Selection
    • Hex Editor - fix exceptions thrown when freezing multi-byte addresses
    • Controller Config - add a Clear button
    • Added .YMV importer.
    • Movies
      • Fix savestate anchored movies (was broken for N64 and SNES, and unknown other scenarios)
      • Store all sync related settings in movies, and load them automatically when loading a movie
      • Fix loop offset feature
      • Save the core name into the header
    • Play Movie dialog
      • Faster preloading of movie data
      • Match current game hash not current game name
      • Add an Edit context menu item
      • Don't crash on headers with duplicate keys, don't throw an exception when movie fails to parse
    • Lua Console
      • Refresh button
      • Lua Functions List - add search filter
      • Add a New Script button
      • Don't ask to save changes when user only toggles lua scripts
    • Lua Library
      • Add event.onexit()
      • Add joypad.setfrommnemonicstr()
      • Add memory.readbyterange(), memory.writebyterange() (previously only implemented in mainmemory library)
      • Add movie.getinputasmnemonic()
      • Add bizstring.split()
      • memory/mainmemory libraries - add range checking and warnings when attempting out of range read/writes
      • Change memory.getmemorydomainlist() to return a lua table instead of a string
      • gui.text() - remove hacks that attempt use window size. Better logic is to be pure client space, and let gui.drawText() do anything else
      • Fix typo, memory.write_u8 instead of a duplicate memory.write_s8
      • Fix event.onframebefore/after being bypassed when turboing (shift+TAB)
      • Fix event.framestart() - ability to set buttons
      • console.log() - support multiple parameters, and don't add an extra blank line
      • Make print() an alias of console.log()
      • Add console.write() and console.writeline()
      • Fix joypad.Set() when using the controller number parameter, also strongly type that parameter to nullable int instead of object
      • Add movie.fps()
      • Add movie timer lua script that will display the clock time of a movie
      • fix client.frameskip(), client.setwindowsize(), client.speedmode()
      • Add a gameinfo library with getromname(), getromhash(), getdisplaytype(), getindatabase(), getstatus(), getisstatusbad(), getboardtype(), and getoptions()
      • Fix joypad.set()
      • Remove gui.alert()
      • Add emu.setregister() - implemented in Atari 2600, 7800, Ti-83, sms/sg-1000/gg
      • Lua Functions list - strongly type parameters, and show optional paramters and default values
    • Virtual Pad
    • Analog sticks - when a movie is active show the previous frame's line
    • Analog sticks - add max value boxes
    • Support single vs multi-player mode toggling, and put single as the default
    • Support Dual Gameboy
    • Make clear button also clear the analog control
    • Ram Search
      • Fix float searches and float display
      • Show warnings about attempted reading outside a memory domain's size
    • Ram Watch
      • Set the CurrentFileName property during LoadFile, fixes some subtle bugs that resulted from a loaded watch with an empty name
      • Show warnings about attempted reading outside a memory domain's size
      • Fix Poke parsing error
      • Fix Ram Watch to update after instead of before, to be consistent with Hex Editor and Ram Search
      • Fix Duplicate watch bug
    • Dual GB XML Creator
      • "Use Current Rom for all" button (If rom is not inside an archive) for easy XML creation
      • Ask before overwriting an existing file
      • Automatically load file after saving
  • N64Hawk
    • Fix movie playback (was busted in the 1.6.1 release)
    • Controller settings for enabling/disabling controllers and setting Pak type (or set to no Pak)
    • Add support for Cpu Type (default is still DynaRec, movie makers should be setting this to Pure Interpetter when recording movies!)
    • Add support for the Z64 Rsp Plugin
    • Add circular range constraint option, and set by default (better mimics real N64 analog stick range)
    • Fix 0 x 0 video size on startup
  • SNESHawk
    • Make performance core the default (movie makers should switch to compatibility mode!)
    • Add Accuracy core profile option
  • NesHawk
    • Add Peripheral support (Zapper, Fourscore, Arkanoid Paddle, and Famicom peripherals)
      • WARNING: peripherals are not yet supported in movie recordings!
    • Add Region override
    • Add Board Properties settings dialog (for tweaking the default startup values of mapper variables)
    • Make full_nes_palette.nes test work
    • Change defalt palette to a "more accurate" one rather than legacy supporting the FCEUX palette
    • Support Mappers 30 and 31
    • Tracelogger - fix nondeterminism problems
    • NES PPU Viewer - Update labels without requiring mouse movement while processing periodical graphical update (hover over a sprite and watch the parameters change in realtime)
    • Speed up new controller routines, significant overall speedup in occasional (bad) games that constantly poll the controllers
    • fix desync bug when using reset or power and frame precise save/loadstate
  • PceHawk
    • Note: Previous savestates have become invalid
    • Tiler Viewer tool
    • Code/Data Logger tool
    • Support lua - event.onmemoryexecute/read/write methods
    • Add Cart Battery Ram memory domain
  • SmsHawk
    • Note: Previous savestates have become invalid, and sync changes have occured!
    • VDP Viewer tool
    • Support SMS Bios
    • Implement option for Auto Region (export/japan) and Auto Display type (NTSC/PAL)
    • Implement Export/Japan, NTSC/PAL, BIOS Enable, and US/JP Bios selection
    • Add Region to GameInfo
    • Improved TMS-mode sprite render, fixes Bank Panic (SG1000) intro screen
    • Improve rendering accuracy of left-column blanking.
    • Fix issue with when Sprite Overflow fires.
    • rework sprite render code, passing several additional VDP tests, and also fixing Fantastic Dizzy.
    • implement VDP/PSG IO port mirroring. passes some additional VDP tests
    • Fix Ernie Els Golf GG (has on-cart volatile ram)
    • Support "External Cart Ram" mapper for SG1000 (Castle and Othello)
    • Support Super Boy 3
    • Support terebi oekaki mapper emulation
    • Support Korean mappers, fixes Cyborg Z, Dodgeball King, F1 Spirit, Jang Pang III, Knightmare II, Nemesis, Nemesis 2, Penguin Adventure, Sangokushi 3, Street Master, Wonsiin
    • Add option to make 3d games playable. some are actually interesting. sega does what nintendont
  • Atari2600Hawk
    • Fix frame timing infrastructure, all frames are now the same length. This is a SYNC BREAKING change, movies for earlier releases will no longer sync
    • PAL support (including PAL detection heuristics)
    • Secam support
    • Mapper heuristics (now correctly determines mapper on games not in the game database)
    • Implement the DPC mapper (Pitfall II), add DPC memory domain
    • Implement mappers FE, SB, FA2, EFSC, F8SC, F6SC, F4SC, 0840
    • Implement Super Charger (AR mapper)
    • Implement multi-cart mappers (togglign games is done via Hard Reset)
    • Fix mappers 3E, E7, 3F
    • Support Hard Reset (and ability to record in movies)
    • Support memory poke on the System Bus memory domain, and ensure safe memory poke on all domains
    • Fix aspect ratio (no longer using a 320x262 hack)
    • Implement Cart Ram memory domain
    • Support setting top line, bottom line, and background color
    • In Rom Details dialog, ability to mark an unknown ROM and have it automatically put in the game db
  • GBHawk
    • New frame timing that makes all frames equal in length, and movie times accurate. THIS IS A SYNC BREAKING CHANGE
    • Support setting the initial RTC time in movies
    • Support chaining the RTC to user system clock, when not in movie mode.
    • Make RTC run at the correct 59.7fps (instead of 60fps)
    • Fix crash on input display for dual gameboy
  • GenesisHawk
    • VDP Viewer tool
    • Support lua emu.getregister(s)
    • Gmv importer - support 6-Button controller
  • Atari7800Hawk
    • Record Pal flag into movies
  • TI83Hawk
    • Note: Previous savestates have become invalid
    • Palette Config and new default palette

BizHawk 1.6.1

  • Fix bug in rewind buffer
  • Add a Floating Window toggle option to all tool dialogs
  • Fix so all tool dialogs having autoload, save window position, and Always on Top options
  • Fix "Unfreeze All" option on many tools to remove cheats not simply disable them.
  • Eliminate some out of memory problems with hashing large files
  • Ram/Cheat Tools - speed up many situations that are slow when freezing/unfreezing addresses with multiple tools open
  • Fix tracelogger for first instruction of NMI or IRQ. also make it obviously indicate that an NMI or IRQ has occurred
  • Input config - When autotab is off, fix bug where pressing esc was not updating the textbox
  • Show slightly informative message if mainform tries to load saveram for a game that has none
  • Fix Status bar saveslot colors
  • Lua
    • Fix gui.drawText() (and gui.drawString)
    • Fix joypad.set()
      • no longer keeps false set permanetly
      • null clears out values as expected
      • effects now only last for one frame
    • Fix forms.newForm()
    • Bit library - fix support for uint values
    • Rename string library to bizstring, prevents bizhawk from overriding the built in lua string methods
    • Fix M64_reader.lua
    • Fix buttoncount.lua
    • Use relative paths when saving a lua session
  • Hex Editor
    • Add support for loading .tbl text translation files
    • Properly highlight mis-aligned values caused by highligting an odd value and switching data size
    • Properly show only the part of the byte affected when showing frozen addresses of a size smaller than the selected data size
    • Fix bug in highlighting when using the File on Disk domain
    • Fix weird losing of focus bug when using the Find box
    • Close find window when Prev or Next is clicked
    • Fix bug that allowed user to highlight past the end of a domain
    • When freezing/unfreezing, update highlighter colors
    • Make freezing a range of addresses not slow
    • Fix the Find dialog box behavior, now correctly allows all characters and casings when switching to text mode
    • Change the name of the "Rom File" domain to "File on disk" to clarify it better
  • Ram Watch
    • Fix bug where it asks you to save changes but fails to save
    • Fix bug where adding to Ram Watch from another dialog while it has changes and autoload is on was asking you to save changes before adding an address
  • Record Movie Dialog
    • Fix bug where user selection in the SaveFileDialog was not being used
  • Play Movie
    • Fix bug where dialog was not respecting the read-only checkbox
  • Cheats
    • Fix issue 148, instead of throwing an exception on out or range address, present an error message
  • NESHawk
    • Fix FDS movie recording
    • Region override
    • Slight fix to default controls for NES controllers
    • Add Mapper 158
    • AxROM - support 512K oversize
    • MMC5 - implement NT fill mode, fixes "Flying Through Clouds" level intro to laser invasion
    • MMC5 - fix exram extended attribute mode for CHR ROMs larger than 256KiB
    • Fix some CNROM games
    • Fix bug with loading UNIF files with no chr rom.
    • Fix Uncharted Waters, and presumably some other 16K WRAM games
    • Support mapper "FS304" (UNIF only)
    • Fix major league
    • Fix Shanghai (J)
    • Add internal SRAM to Taito X1-017
    • Add proper WRAM to Taito X1-005. Should fix saveram on Kyonshiizu 2, Kyuukyoku Harikiri Stadium, Minelvaton Saga: Ragon no Fukkatsu, and others
    • Speedups to the Nametable viewer
    • PPU Viewer
      • Add CHR ROM tile view to the PPU viewer
      • Correct tile number display bug (was always wrong)
      • Show more informative data for 8x16 sprite tile number
      • Support MMC5 ExAttr mode
  • GenesisHawk
    • Warn and abort when a too-big file tries to be loaded as a ROM (probably was actually a .bin cd image without the correct .cue)
    • Properly save "PAL" flag in movie files
  • GBHawk
    • Stereo audio
    • Support reading\writing IER through the HRAM memory domain
  • PCEHawk
    • Major speedups to overall emulation (as much as 50% depending on game)
    • Sprite Limit no longer requires Core Reboot
    • Selecting Equalize Volumes no longer makes it impossible to load a HuCard
    • Disassembler enhancements
  • SMSHawk
    • Sprite Limit and Force Stereo Separation no longer require core reboot
  • SNESHawk
    • Don't malfunction CARTROM memdomain when having a npow2 romsize
    • Fix trace logging
  • SaturnHawk
    • Support 8mbit/32mbit dram cart in movies
  • Atari2600Hawk
    • When unable to find a ROM in the game database, try 2K or 4K mappers where applicable
  • Atari7800Hawk
    • Fix PAL color display
  • N64Hawk
    • Fix showing of the N64 menu when no ROM is loaded

BizHawk 1.6.0a

  • New Core - Genesis Hawk!
    • Uses GenesisPlusGX (r850)
  • SMSHawk
    • Fix desync issues on SMS and Game Gear
  • TI83Hawk
    • Fixed loading of files
  • SaturnHawk
    • Suppor the drive light.
  • N64Hawk
    • Fix rewind.
  • GBHawk
    • Add editor for dual gameboy settings
    • Fix problems with STOP opcode
    • Implement the undefined opcodes, which lock up the system.
    • MBC3: correct behavior when bank value of 0 is written
  • SNESHawk
    • Make CARTROM memorydomain writes work
  • PCEHawk
    • Greatly decrease memory usage when rewinding with big savestates (arcade card)
  • NESHawk
    • Numerous new boards and mapper related fixes
    • Show preview of palette to be selected in palette config
    • Support some rogue FDS disk format
    • Remove botched emulation of special color generation in PPUOFF state (which isnt emulated correctly anyway) that was getting applied in inapplicable circumstances
    • Fix MMC1 PRGmode %00 bug
    • FDS audio improvmeents
    • Fix crippling bugs in SUROM games (Dragon Warrior 3 and 4) introduced in 1.5.3
    • Fix off by one in the video Clip left and right setting
    • Add Mapper 29, 188, 196
    • Fix mappers 76, 78, 87, 101, 113
    • Fix CNROM problems (fixes bird week and panesian games), note: all CNROM savestates are invalidated
    • Support some mmc1 prototype carts
    • Support NAMCOT-3405 (testing confirms Side Pocket and Super Xevious work well)
    • Support HVC-TBROM (Super Sprint (J))
    • Support R.B.I Baseball (Tengen) [!]
    • Support Pro Yakyuu - Family Stadium '87 (J)
    • Support HVC-TLSROM (Armadillo J)
    • Support Ys English translation hacks
    • Support more Sachen boards
    • Should support 100% of NROM boards now.
    • Support more mapper 118 roms without hash.
    • Fix some translations of SUROM games.
    • Truncate if a iNES file's supposed VROM size is longer than the leftover length of the iNES file. Seems to fix some hacks\translations
    • Correctly treat audio ram on Namco 163 as battery backed when the board has a battery and there's no WRAM. Fixes Hydlide 3 and others
    • Support Rockman 4 Minus Infinity (MMC5 version)
    • Fix no wram battery on a common (bad) Lagrange Point dump.
    • Improved VRC 2,4,7 support, especially for games not in DB.
    • Rework bandai FCG a bit, to add support for some games not in DB. (mapper 16, 159).
  • EmuHawk
    • Major fixups to Toolbox Dialog
    • For Windows 7 and 8 - Jump Lists
    • Add --fullscreen commandline option
    • Controller Config - Analog Config- add flip axis button
    • Fix an AV desync bug with video dumping
    • Fix slow loading of the Path config dialog
    • Add Scanlines display filter
    • Trace Logger - some code clean up, some tiny speedups, and implement a few small tweaks like Always on Top, and Select All
    • AV out: add option to pad (instead of stretch) with the video resize output
    • Lua
      • New functions:
        • forms.dropdown()
        • forms.checkbox()
        • forms.ischecked()
        • client.getdisplayfilter()
        • client.setdisplayfilter()
        • client.getscanlineintensity()
        • client.setscanlineintensity()
        • client.clearautohold()
        • bit.check()
        • bit.byteswap_16()
        • bit.byteswap_32()
        • bit.byteswap_64()
      • Added new string library with many string manipulating helper functions (see lua documentation for details)
      • Render to a null image when the lua script manager Resume process hasnt begun (setting up a render target) but lua scripts run (due to loadstate, for example)
      • forms.textbox() - add a fixed width option
      • forms.textbox() - for numeric boxes, add ability to increment/decrement value with up/down
      • forms.textbox() - add multiline parameter
      • Add support for dropdowns in forms.gettext() (returns the string value of the selected item)
    • Lua Console
      • Fix behavior of removing registered functions
      • When disabling lua scripts, remove their registered functions
      • Lua functions list now shows function descriptions, and improved parameter documentation including showing strong types
      • Fixes to refresh logic
      • Don't stop scripts on restart
      • Column sort
    • Play Movie Dialog
      • Fix exception when a "Starts from Now" movie is made with the record movie dialog when the folder selected does not already exist
      • Column sort
    • Archive Chooser
      • Add filtering
    • Ram Search
      • Fix behavior of the Memory Domain label
      • Fix change count logic and previous value as previous frame
      • Fixes exceptions thrown when using column click.
      • Make manual removal of addresses undo-able
    • Ram Watch
      • Fix "Freeze Address" feature
      • Fix Domain not loaded when loading a .wch file
      • Fix bug where signed and unsigned are saved backwards
    • Cheats
      • Fix numerous odd behaviors
      • Fix bug where when editing a cheat, changing the address or domain was causing it to insert not update,
      • Fix behavior of asking to save changes
      • Better updating of cheat status in various situations
      • Add "View in Hex Editor" to the context menu
    • Hex Editor
      • Fix Hex Editor to show cheat value on frozen addresses
      • Better scrollbar logic for really small domains that don't need a scrollbar
      • Fix an exception thrown when unfreezing an address
      • Add support poking of 4-byte addresses
      • Refine hex editor keyboard handling a bit (fix Ctrl+C copy)

BizHawk 1.5.3

  • Lua
    • Events library
      • integrate all events into the registered function System
      • Allow all events to have multiple functions registered
      • Remove all legacy register events in favor of the events library (for more info see the Lua documentation for more information)
      • Add event.onmemoryexecute() for some cores (for more info see the Lua documentation for more information)
      • Add more core support for event.onmemoryread() and event.onmemorywrite()
      • emu.oninputpoll() - Support all cores
    • Function reorg - move many client specific function out of the emu library, other misc changes (for more info see the Lua documentation for more information)
    • Add emu.getregister() and emu.getregisters()
  • EmuHawk
    • Fix black screen on AV capture when OSD is turned on
    • Fix exception thrown in Path Config on various browse folder buttons
    • Fix scrub input hotkey, on trunk a slight refactoring now that more things are in client.common
    • If throwing a fatal exception, EmuHawk will detect if a movie is loaded, ask if you want to save and attempt to save it.
    • Turn off rewind for "medium" states, as SNES problems still occur with default settings and it isn't worth it
      • also change the default rewind frequency to 4 (if the user does turn it on, this frequency still gives a smooth rewind experience
    • Fix the encoding mode of the NES Game Genie Encoder/Decoder dialog
    • FirmwaresConfigInfo dialog to show you more information about a firmware (such as which options the DB is allowing)
    • VirtualPads
      • Fix numeric box updating on Analog forms
      • Fix bug where numeric boxes could not be typed into
      • Fix bug where analog control panel was not updating on mouse movie
      • Add clear button
      • Allow smaller minimum size
    • Lua Console - Autoscroll the output window as text gets added
    • Registered Function dialog
      • Change hotkey to F12
      • Fix bug where Call and Remove were affecting the wrong scripts
      • Allow multi-highlight to call and remove methods
      • Add Remove All button
    • Misc dialog fixes
    • Ram Search
      • Fix defaulting to fast mode
      • Fix defauling to float for N64 and GBA, now defaults to unsigned
      • Misc other fixes
    • Play Movie
      • Fix exception thrown in Play movie dialog when opening a file with board properties set
      • Add Fps and Frame count to the Details grid
    • Cheats
      • Numerous fixes to the cheat system that were causing it to misbehave, not freeze addresses, throw exceptions and not be able to edit cheats
  • N64Hawk
    • Capture PAL flag into movies
    • SRAM is now saved into Bizhawk's saveram file instead of m64p's own .sra file
    • Flashram is now saved into Bizhawk's saveram file instead of m64p's own .fla file
  • TI83Hawk
    • Unhide the load TI file menu item
    • Keypad - fix tooltips that were broken in a past release
    • use newer firmware hashes
  • GBHawk
    • Fix to sound processing - huge speed boost
    • Fix RTC in movies

BizHawk 1.5.2

  • Rewrite of Cheats, Ram Watch and Ram search
    • adds support for float, and fixed point types
    • more performance and less ram consumption
    • multi-byte cheat support
    • more features, and better design
  • NESHawk
    • Add ability to set initial register states from movies
      • Currently supported by mapper 228 (Action52)
    • Support more FDS bios files
  • SGBHawk
    • New memory domains
  • TI83Hawk
    • Added the ability to load programs into a TI-83 calculator. Also reworked the TI-83 link interface to more accurately represent hardware specs.
    • Added support for TI83 group files
  • Multiclient
    • Movies -fix multitrack recording
    • N64 Virtual Pad - add reset and power buttons
    • refactor to not repaint more than necessary (helps idling cpu power, and performance)
    • fix turbo hotkey behavior
    • add a "Close and Clear SRAM" context menu option that is visible when the game has an existing sram file
    • tighten up RomGame file loading and in particular for n64 to avoid some buffer copies and re-dearchiving operations
    • Path Config - fix folder browse behavior
    • Default controls - XBox defaults - nintendo A = xbox B, and vice versa
    • Fix saveram to have the .SaveRAM extension
    • solve an apparent threading datastructure conflict bug in input binding vs input poll thread, fixes non-working gamepads on some computers
    • fix the --dump-close commandline option
  • Hex Editor
    • fix increment/decrement logic with frozen addresses.
    • support increment/decrement on all highlighted addresses at once
    • support poking of multiple addresses
  • Lua
    • New functions
      • memory.readfloat(), mainmemory.readfloat()
      • memory.writefloat(), mainmemory.writefloat()
      • mainmemory.getname()
      • client.opentracelogger()
      • client.reboot_core()

BizHawk 1.5.1

  • Fix exception when attempting to record a movie from a SNES ROM in an archive
  • Fix crashing when attempting to load a GBC, SGB, or Saturn Game
  • Fix bug in firmware resolution when firmware isn't present in the default firmwares folder or when the user's selection is missing altogether
  • Support additional FDS BIOS files
  • Fix Screenshot and SaveRam paths being in the base path instead of system path
  • Add separate path options for Dual Gameboy (and fix dual Gameboy paths)
  • Dual Gameboy - fix screenshots (probably)
  • DiscoHawk - cue-fix error in parsing empty lines
  • Fix Atari 7800 from crashing on load ROM
  • Fix Coleco and Atari 7800 BIOS detection
  • Fix Rewind setting aside memory for a buffer even when not enabled (fixes Out of memory exceptions in N64Hawk)
  • Fix possible exceptions regarding cheats being thrown when using Ram Watch and some other tools
  • Fix bug that was preventing binding joypad buttons on some machines
  • N64 - Fix default setting in Glide64mk2 which can result in blank video
  • Allow Virtualpad to control the main form's hotkeys
  • Single Instance Mode - Fix exception thrown on close
  • SGB - Fix Memory Domains
  • N64 VirtualPad - right-click enables autofire
  • VirtualPads - Always on Top feature
  • Paths - fix bug where GB files could be saved to SNES paths
  • Fix resgression where SRAM files had no file extension

BizHawk 1.5.0

  • New Cores
    • N64Hawk released! Uses the Mupen64Plus v2.0 core. See here: BizHawk/N64
    • SaturnHawk released! Uses the Yabause 9.2 core. See here: BizHawk/Saturn
  • SNES
    • fix a bug which caused false positives in lagframe detection (frames marked as lag where input was actually used). this is purely a display issue and did not affect emulation at all. the bug was not caused by r4206, but r4206 causes
    • fix wrong default memory domain in ramsearch
    • support bsnes xml files and super road blaster MSU-1 game
    • add "always doublesize framebuffer" option which makes the logical output of the snes core always sized appropriately for sudden hires-width or interlacing
  • GB/GBC
    • Serial cable emulation including movie recording
    • rtc is pegged to emulated elapsed time. maybe. don't know what to test it with. time at core restart is always 1970, or something like that, which isn't as bad as it sounds, because the GB rtc doesn't keep track of anything past days
  • NES
    • ExROM: fix crash in CV3
    • support SMB3(j) and fix likely new bugs in MMC1
    • speed ups for MMC1 games
    • support HVC-SJROM for Zombie Hunter(J)
    • TxROM: add 256K chr option to ACCLAIM-MC-ACC. fixes crash dummies, amongst others
    • Made NES sound channel update instantly when changed, easier to fine tune what you want from it.
    • volume control on each channel
    • Missing mapper for Ms. Pac-Man (Tengen)
    • support yoshi's cookie
    • separate first/last scanline settings for NTSC vs PAL (default of 8,231 NTSC and 0,239 for PAL)
  • SGB
    • fix SGB to actually work (was broken in 1.4.1)
  • Atari 7800
    • update to Emu7800 from v1.3 to v1.5
  • Multiclient
    • New firmwares config dialog
    • New Rewind config dialog - includes disk vs memory options, buffer size, delta compression, rewind frequency for different savestate sizes, and rewind stats
    • Fix issue some people would have where Bizhawk wouldn't load unless the dll files were moved to the root folder
    • Added 'Always On Top' option to settings in hex editor/tas studio/ram search
  • Lua
    • event.onframestart, event.onframeend, event.onsavestatesave, event.onsavestateload - allow multiple functions to be registered, also ability to name them, and function returns a guid pointing to the registered function
    • Registered Function dialog with ability to Call and Remove functions
    • new functions - event.unregisterbyid(), event.unregisterbyname(), joypad.setanalog, forms.openfile(), client.xpos(), client.ypos(), memory.getcurrentmemorydomainsize
    • add snes library getlayer_set_bg_1(), setlayer_set_bg_1(), etc to toggle/get all layer options
    • improve console.log() to print out lua tables
    • M64 reader lua script
    • Lua Function List dialog - Ctrl+C copies the function to clipboard concatenated, ex: "emu.frameadvance()
  • Hotkeys
    • new Analog hotkeys
    • defaults button
  • Ram Search
    • introduce "Fast Mode" in order to support large domains such as for N64. In fast mode, the previous value will be defined as last search (or original value), and change counts will not be incremented but the previous value/change counts will not be processed saving huge amounts of processing.
    • clear undo history when starting a new search, and add a Clear Undo History menu item

BizHawk 1.4.1

  • SNESHawk
    • Add gui option for ring buffer mode. its unclear whether it speeds things up, but its possible that it might, and it was a lot of work, so here it is as a user option.
    • Dont churn through memory so fast when loadstating/rewinding. i think its fragmenting the OS heap pretty badly because it kept reallocating shared memory blocks
    • Fix bug where you cant load games lacking save ram
    • Fix timing calculations in aviout and movieplay dialog
    • Fix SGB core which had got a little broken while trying to setup memory domains
    • Add a bunch of complicated libsnes communication code that may improve performance
    • Make hex editor faster
    • Add Performance Core option
    • Fix rewind issue with tales of phantasia.
  • NESHawk
    • Fix savestate loading on mappers 115 and 248
    • Initial values for mmc3 registers.. not clear on whether theyre real or not, but folks seem to be depending on them, and fceux does it
    • Make memoryRand track fceux latest
    • Implement mapper 117
    • Savestates now function properly for "SUNSOFT-5B" board, only affects Gimmick (J)?
    • Sound: fix so that PAL NES with clock throttle no longer sounds horrible
  • Atari7800Hawk
    • Path Config - filename select for Atari 7800 bios files
    • Atari 7800 - don't require all 3 bios files to run. But do nag them that they are missing them.
  • Atari2600Hawk
    • Implement System Bus, TIA, and PIA Memory Domains
  • Multiclient
    • Added missing.sgb in Open File dialog
    • Play Movie Dialog - fix time display of seconds, fix calculation of movie lengths for pal games, support ctrl+C on play movie list
    • RamSearch - unlimited undo/redo levels
    • fix bug in loading roms with no extension
    • Messages - oops, use the Multitrack position settings for multitrack instead of fps, also set better defaults for multi-track message positioning (to not clash with other defaults)
  • Movies
    • Added a Movie Poke mode, in which input pressed during Movie Playback will be added to the movie, if anything is pressed
    • Added a Scrub Input hotkey, when pressed during playback, will remove input
    • Added hotkey for assigning Autofire to controller keys
    • Added Full Savestate Load option - enables a "VBA style" loadstate for movies in which the entire movie is loaded during recording, and input is truncated after the next frame (instead of immediately)
    • Fix "Record from Now" option in the GB and SNES cores
  • Lua
    • Implemented gui.drawText() which draws text in the "emulation space" with font, size, and color options
    • Implement client.pause_av() and client.unpause_av()
    • Fix a crash bug in input.set()
    • Fix an exception thrown in the Lua console when auto-loading a Lua session
    • joypad.set - implement false, and inverse options

BizHawk 1.4.0

  • New Core: Atari 7800
  • Fix broken Game Gear support, as well as savestates for NES and Atari 2600
  • NESHawk
    • support "ACCLAIM-AOROM" (wizards and warriors 3)
    • Improve VRC6 audio
    • FDS Audio - fix a few bugs; opening of Metroid (FDS) sounds correct now
    • Implement Sunsoft 5b Audio (Gimmick (J))
    • Fix Shin 4 Nin Uchi Mahjong: Yakuman Tengoku
    • Implement HVC-EKROM board - (fixes Just Breed, Royal Blood, Shin 4 Nin Uchi Mahjong)
    • MMC5: Audio now works.
    • implement NROM-368. (Homebrew mapper)
    • fix PAL DMC and Noise channel frequencies.
    • JALECO_JF_19: change behavior so that "Moero!! Pro Yakyuu '88: Kettei Ban" now runs
    • MMC1: fix Bases Loaded II
    • BANDAI-FGC: Support saveram (serial EEPROM).
  • Multiclient
    • Implemented a system for controller vs hotkey conflicts. There is now a key priority option in the config menu and status bar, either controller input can override hotkeys, hotkeys can override input, or both can happen.
    • Condense all BIOS and Firmware paths into a single global Firmware folder
    • Controller Config
      • Show conflicts with in a particular controller itself
      • Add a Restore Defaults context menu item that sets up a default mapping for a given controller type.
      • Input Config - add context menu - Clear option, for each controller
    • Virtual Pad
      • Implement sticky toggle checkbox
      • Fix - smarter clear function, only clears the sticky buttons pressed by the VirtualPad tool instead of also clearing stickies set by autohold hotkeys
    • Hex editor
      • fix crash with odd-sized memory domains and 2/4 byte value sizes, fix display bug with odd-sized memory domains, fix display bugs with >64KB memory domains.
      • fix exception when Hex Editor is loaded when no Game is loaded
    • SNES GFX Debugger
      • make clipboard image copying less flaky. natt may be interested in this.
      • add BG scroll regs
      • add in-place sprite viewing mode
      • obj properties display
    • TAStudio - Main form hotkey/controller input works while focused on TAStudio
    • Path Config - implement a Base ROM path, determines what folder will be defaulted to when Opening a ROM when no ROM is currently loaded
    • Lua
      • gui.text() behaves more consistently with different window sizes
      • implement client.getwindowsize
      • input.getmouse() - button fields are now bools. position fields are now in emulated screen coordinates

BizHawk 1.3.0

  • New Core: ColecoVision!
  • Multiclient
    • New input config dialog
    • Ability to map meny console buttons such as reset and power as controller keys
    • Fix cases where Statusbar pause icon didn't appear when paused
    • Tracelogger - fix bug that was pausing some NES games
    • Move virtualpads from TAStudio to its own tool dialog
    • Move all remaining .dll files to dll folder
    • Fix - Force stop a\v capture on loading a new rom \ core, to avoid crashes.
    • Fix - Fixes weird input behavior in frame advance when using things like joypad.set()
    • Input/Hotkeys - Support mapping to Ctrl/Alt/Shift
    • Make the rom open filter remember its last option used in this bizhawk session
    • Fix crash on Joypad unplug
    • Tracelogger: copy to clipboard
    • AV dump - support resizing everything to a single resolution.
  • Lua
    • Fix savestate.loadslot()
    • Implement client.screenshot(), client.setscreenshotosd(), client.screenshottoclipboard()
    • Fix Lua scripts to use their folder as the default folder for that script
    • Fix movie.setrerecordcounting()
  • Movies
    • Fix recording from savestate
    • Fix loading of sync depending GB menu items.
    • Sync dependent movie header items now force the emulator settings when the movie is loaded
    • When switching from record to play, write movie to disk
    • Add Save Movie hotkey and menu item
  • TAStudio
    • Only go to Movie 'Finished' mode if Tastudio is not engaged.
    • Make sure Movie log and savestates are updated correctly so that tastudio still works correctly when you play through the end of the movie in read-only mode.
    • Fix Rewind To Frame
    • Fix - Minor tweaks to make tasstudio not run out of memory so easily
    • Fixed ListView double-click to run forward to the selected frame.
    • Fixed the ListView highlighting for the current frame.
  • NESHawk
    • 20% Faster!
    • FDS Emulation
    • PAL Support
    • Implmented Power Cycle (Hard reset) emulation, including in movie recording
    • Implemented mappers 19, 20, 28, 36, 103, 171, 249, 250
    • Fix Robocop 3 scroll glitches
    • Mapper "TENGEN-800008". support Tetris (Tengen)
    • Add identifier for TENGEN-800030. fixes bootgod identified dumps of various tengen (U) games
    • VRC 2 - fix Contra (J), Ganbare Goemon 2 (J)
    • Fix Nametable Viewer in some games
    • Fix Dragon Ball - Dai Maou Jukkatsu, Rokudenashi Blues, Dragon Ball Z - Kyoushuu! Saiya Jin, SD Gundam Gaiden, Magical Taruruuto Kun 1, 2
    • Namco163 Audio
    • MMC5 - add ExRAM memory domain
    • Gxrom board - fix possible crash on 64K prg carts
    • Add 256K prg option for ACCLAIM-MC-ACC. fixes "Simpsons, The: Bart vs. The World" and "Simpsons, The: Bartman Meets Radioactive Man"
    • Fix Mapper 27 based on new understandings from fceumm - fixes World Hero
    • Change memory initialization pattern, fixes Huang Di.
    • NESPPU view: implement ctrl+C copy on mouseover
    • Fix Mappers 74 and 192
  • GBHawk
    • Added a GPU Viewer tool
    • System Bus memory domain - fixed to read deterministically
    • Tracelogging support
    • implement GBC palette selection
  • AtariHawk
    • a CPU timing fix - breaks movie sync! (Most movies will need 2 less frames at the beginning of the movie to sync)
    • Implement mapper E7
    • Fix glitches with Frostbite.
    • Add Graphics Layer toggling
    • Fixed graphics on games including Enduro and Activision Boxing
    • Fixed issue with vsync which caused flashing in Pleaides and Enduro
  • SNESHawk
    • Fix potential desyncs with some games (like Super Star Wars)
    • Log core firmware requests to console
    • SNES GFX Debugger
      • preliminary sprite visualizing
      • display OBJ tiles
      • add ctrl+c to clipboard capability, and reflect user choice of backdrop color in debugger window
      • support rightclick freezing
      • hookup UI for color palette selection
  • SMSHawk
    • put islag variable into savestates
  • PCEHawk
    • Fix dumb error in display-off background color calculation, fixes soldier blade flashing wrong color
  • DiscoHawk
    • ECM support

BizHawk 1.2.0

  • Multiclient
    • AVIwriter: attempt 32 bit compression if the selected encoder rejects 24 bit
    • fix archive chooser keyboard behaviour, and add a feature to deduct 16Bytes from the size if it looks like iNES
    • fix dependency on vc8 introduced with the 1.1.0 release
    • ffmpegwriter and nutwriter: fix pathname select
    • Hex Editor - fix so that you can only highlight using left click (fixes the ability to highlight multiple addresses and use the context menu)
    • flush rewind buffer on CloseROM()
    • MainForm: fix sound-related crashes on CloseROM()
    • Update Statusbar slots when the emulator is loaded
    • sound throttle now respects forced throttle off
    • Cleanup root folder - Move some dlls to a dll folder, move gamedb files to gamedb folder
    • Never skip frames during av capture
    • Fix Record from Now
  • NESHawk
    • Unif Support
    • Implement mappers: 18, 37, 38, 40, 41, 42, 54, 77, 101, 108, 116, 132, 133, 143, 144, 145, 146, 148, 149, 156, 160, 165, 168, 177, 218
    • Fix Mapper 164
    • AxROM - force VRAM to 8kb
    • Fix some obscure versions of Gauntlet (U)
    • Support TENGEN-800004 board, fixes Gauntlet (Unl)
    • mapper218: force vram_size to 0 (ignore whatever is in the broken header)
    • PPU Viewer - fix bug where ppu viewer sometimes wouldnt refresh pattern display when the user changed selected palette
  • SNESHawk
    • Support user override backdrop color
    • Path Config, fix SNES save ram folder button
    • Open ROM, add smc and sfc to "Rom Files"
  • Lua
    • Implement events library
    • Lua drawing functions - make color param optional (defaulting to white if not specified)
      • event.onsavestate(), event.onloadstate(), event.oninputpoll (aliases of registersave/load, on_snoop)
      • Implement event.onframestart(), event.onframeend (aliases of the emulua's emu.registerread() and emu.registerwrite()
      • Implement event.onmemoryread(), event.onmemorywrite()
    • fix savestate.load()
    • More hitbox viewer scripts

BizHawk 1.1.1b


BizHawk 1.1.1a


BizHawk 1.1.1

  • New Platform support: Super Gameboy!
  • Multiclient
    • Trace Logger Tool, for NES, SMS/GG/SG, and PCE cores
    • Bilinear Filtering option
    • XInput support, LT/RT are possible inputs now
    • Joystick suppert - Fix "hardcoding" of left & right analog sticks being mapped to the arrow buttons
    • Reboot core notification system (since many settings on various cores don't take effect until rebooted)
    • Add Saveram backup feature, similar to savestate backup feature, defaults to On
    • Support custom resizing
    • Support Windows 7 shortcuts: Win+L \ Win+R \ Win+U
    • Fix memory leak when using OSD Capture
    • Fix the bug where choosing a small size from the menu (typically 1x) would cause unexpected black bars
    • Fix status bar icons to really hide when not necessary, fix tool tips displayed, and positioning
    • Fix behavior of the folder browser dialog of the path config dialog
    • Fix d3d devicelost errors
    • Fix "Hex" boxes in various dialogs to allow Ctrl+C/V/A, such as Game Genie, Cheats, Ram watch/search, etc
    • Fix Tools/Lua to update after a frame instead of before
    • Add slightly informative error message to certain rom load exceptions
    • Path Config - add an info icon that opens a popup for the special path options (., .., %recent%, %exe%)
  • Movies
    • Imported movie files are now automatically copied over to .\Movies directory
    • Add PAL flag to movie (if recording in pal mode!)
    • Add "FirmwareSHA1" to movie header for SGB and PCECD
  • Cheats
    • Add "Values as Hex" menu item, when turned off, allows value and compare to be decimal instead of hex
    • Fixed column display, on and domain were reversed (domain names were being displayed in the on column). Also centered the On column text
  • Ram Watch
    • Fix bug where display value was actually the previous frame value
  • Input Config
    • Auto-focus the first control option when loaded
    • Better controller images
  • Message Config
    • Fix X/Y values not updating when typing directly into the numeric boxes
    • Fix positioning of icon on drawing area to not be partially "off screen"
    • Fix logic for dragging when using anchoring
    • Fix drawing of the x,y coordinates to respect the anchoring
    • Ability to configure autohold display
    • Ability to toggle the "stacking" effect on general OSD messages
    • Allow configuring of the position and anchoring of General OSD messages
    • Fix the saving of the multitrack x,y variables
    • Fix restore defaults for Multitrack settings
  • Hex Editor
    • Allow drag highlighting with the mouse
    • Fix typing values with the numberpad
    • Fix copy/pasting multiple highlighted addresses
    • Don't show 0 length Memory domains (prevents showing SNES CARTRAM in situations it doesn't exist and thus crashing the hex editor)
    • Pressing enter in the find box = click the find next button
  • TAStudio
    • middle clicking pauses/unpauses the emulator
  • Lua
    • fix so that multiple scripts can draw at once
    • Add new functions: emu.onsnoop(), mainmemory.readbyterange(), mainmemory.writebyterange(),
    • nes.addgamegenie(), nes.removegamegenie(), nes.getallowmorethaneightsprites(), **nes.setallowmorethaneightsprites(),
    • nes.getdispbackground(), nes.setdispbackground(), nes.getdispsprites(), **nes.setdispsprites(), nes.gettopscanline(), nes.settopscanline()
  • New Hitbox scripts
  • Updated RBIBaseball script that demonstrates the use of the forms library
  • Move lua to after the frame instead of before
  • Make the Lua Function List dialog modeless
  • SNESHawk
    • Hook up autofire controllers
    • Hooked up controller 3 & 4
    • Add System Bus memory domain (except when recording movies due to determinicy issues)
    • Determincy fixes
    • Graphics Debugger - numerous new features, fixes
    • Fixes for audio popping/hiccups
    • Read region, so 50fps live viewing and video dumping now works (PAL).
    • Lag Counter fix, remove many false positives
    • Change the initial bootup frame size (on frame zero) to 256x224, it's the most common game resolution, and also the smallest (so can avoid some instances of window size snapping down because too big)
    • Add SNES Graphics config to the Toolbox dialog
    • Add firmware support
    • Fix recording of soft and hard resets into movies
    • .lsmv and .zmv movie importing
    • SNES game database
  • NESHawk
    • Big improvements to sound
    • Fix Bill & Ted's Excellent Video Game adventure
    • Fix bad Cobra Triangle sound
    • DMC fix, Fire Hawk (USA) no longer has graphical glitches on the intro screen.
    • Fix dmc sfx bug in Battletoads & Double Dragon making nonexistent sfx
    • Add emulation of empty databus, fixes freeze bug in bt&dd
    • Implement Mapper 163
    • Fix default patch set for VRC7
    • Game Genie Encoder/Decoder - pressing enter in the code box will add the cheat
    • Fix for frame buffer being generated before the ppu runs on a frame instead of after
  • GBHawk
    • Memory domains now work correctly immediately after a loadstate
    • .lsmv movie importing
    • Gameboy/GBC game databases
    • Some rom annotation status details
    • Add more intelligible error messages on bad mapper number load attempt
    • Fix loading of .gbc files from archives
  • GGHawk
    • Add Show Clipped Regions, and Highlight Active Display options
    • Show a GG menu to allow for Sprite Limit, and Graphics options menu items while the core is loaded

BizHawk 1.1.0a

  • SNESHawk, GBHawk: Fix how the frame counter is saved in savestates, fixes a number of potential issues with rerecording
  • SNESHawk
    • Lag counter now works
  • Ram Search/Ram Watch - Unfreeze All context menu item, show Unfreeze if selecting multiple frozen addresses
  • Ram Watch - show shortcut keys on context menu items
  • If changing the status of a cheat in Cheats,Hex Editor, Ram Watch, Ram Search, update the other dialogs too if they are open
  • New lua functions
    • gui.addmessage(), nes.setscanlines(), nes.getbottomscaneline(), nes.gettopscanline(), nes.getclipleftandright(), nes.setclipleftandright()

BizHawk 1.1.0

  • New Cores
    • SNESHawk Released! Using BSNES v87
    • GBHawk and GBCHawk Released! Using the Gambatte r344 core
  • Multiclient
    • Autohold and Autohold Clear hotkeys (Same functionality as FCEUX)
    • Support ability to autohold autofire keys
    • Implement Hard Reset as an option (for cores that implement it) and a separate menu item for Reboot Core (formerly called Hard Reset). For cores that support it, it is now recordable.
    • Don't reset frame counter on Soft or Hard Reset
    • Hotkeys for SNES layers
    • Re-add Frame Adv. - Skip Lag Frames option
    • Turbo hotkey (default mapping of Shift+TAB) - Like fastforward but also does maximum frame skip, bypasses auto-minimize skipping, ramps up frame skip to 20', and doesn't update tool dialogs
    • Archive Chooser - sort entries by region, add hotkeys 1-9 that select items 1-9 respectively
    • Archive Chooser - automatically highlight the first entry on load
    • Message Config - single click on color pickers
    • Option to put the OSD into AVI and Screenshot Capture
  • Movies
    • Fix error where loading a post-movie savestate (a state made in movie finished mode) during read+write would not set to movie finish, causing potential desyncs
    • Fix a potential timeline change when loading a post-movie savestate from another timeline while in read-only mode
    • Fix a regression that happened at some point where the movie is not truncated on a loadstate that triggers record mode (instead it would keep the entire movie in the savestate and record over each frame, this would leave garbage data that could lead to potential desyncs)
    • SNES9x and LSNES movie importing.
    • VMV importing now supports resets.
    • Add a backup movie path in path config (defaults to Movies\backup)
    • Play Movie Dialog - fix duplicate movie bug
    • Record Dialog - do not prompt to overwrite on save file dialog (otherwise the user is asked twice when the main dialog asks)
    • Fixes to logic that determines when to go into and out of Movie finished mode (especially when in TAStudio)
    • Don't allow Soft/Hard Reset menu item/hotkeys to be pressed while a movie is in playback mode
    • When starting a new movie, save the old one
  • TASTudio
    • Show lag frames in Red
    • Fix some out of bounds exceptions when scrolling the movie list and rewinding
    • Fix exceptions when rewinding in movie finished mode
    • Fix exception when loading states in record mode
    • On Rewind button - fix logic when movie is finished or inactive
    • Implement editing functions: Clear, Delete, Clone, Insert, Insert # Frames, Copy, **Past, Paste Insert, Cut, Select All, Truncate Movie
    • Re-hook up double click event on frame list
    • Pause emulator on TAStudio load
    • Hook up Ctrl+Mousewheel to frame advance and rewind events
  • Hex Editor
    • Implement the ROM File domain across any core (opens up the ROM file itself)
    • Implement text area highlighting
    • Fix domain resetting to the default on restart
    • Hook up Poke dialog
    • Addresses now update on restart
    • Pass domain to Ram Watch on the "Add to Ram Watch" feature
    • Fix inability to paste into find box when in hex mode
    • Display number of addresses in Hex
    • Text option in Find Box, this feature converts text to its byte codes and searches that byte array
    • Implement Save, and Save ROM file menu options
  • Ram Watch
    • Multiple Memory Domain support within the same watch
    • Domain Column and ability to toggle it
    • On Screen Drawing - fix updating on loadstate, no longer shows a garble of the old and new values
    • Fix bug where values are not updating after a power cycle/rom load/movie load
    • If both auto-load and display on screen are set, don't load the dialog when loading the emulator (just load the watches on screen)
    • Fix endless exceptions when loading different ram watch files
  • Ram Search
    • Major speed improvements!
  • Ram Poke
    • Fix poking of signed and hex values
    • Set signed value on load (based on the address being poked)
    • On load and signed type change, display the value in the value box accordingly
    • Make the Value textbox the default highlighted value
  • Lua
    • Move lua events to the end of the frame loop
    • Fix lua drawing from disappearing while paused, only have it update once per frame (performance boost), and have it draw before frame advance
    • Various hitbox lua scripts
    • Faster drawing
    • Implement lua bitwise functions: bit.band(), bit.lshift(), bit.rshift(), bit.rol(), bit.ror(), bit.bor(), bit.bxor(), bit.bnot()
    • New functions:
      • emu.registerbefore()
      • emu.registerafter()
      • gui.drawBox()
      • client.screenwidth()
      • client.screenheight()
      • forms.setproperty()
      • forms.getproperty()
  • Cheats
    • Implement the compare value
    • Fix emulator freeze with bad config files
    • Game Genie button when an NES game is loaded
    • Fix losing of values on restart
    • Editing of a cheat now flags changes
    • On Emulator load - if it loads an empty dont show "Cheats file loaded" message
  • Input Config
    • Show mapping conflicts with hotkeys (but still allow them)
    • Allow mapping of a single key to both hotkey and input (and any combinations of both)
  • Lua Console
    • Update number of scripts(and active count) when deleting a script
  • GBHawk
    • Support Cheats
    • Palette config dialog
  • SNESHawk
    • Layer Toggles
    • Graphics Debugger dialog
  • NESHawk
    • Implement mappers 50, 91, 197, 219
    • AxROM (Mapper 7) - make all AOROM games not emulate bus conflicts, fixes various **Wheel of Fortune games, Double Dare, and Jeopardy
    • Support Game Genie codes!
    • Game Genie Encoder/Decoder - fix inability to paste into Code box
    • Fix display on domains with more than 4 digits
    • Speedups! About a 10fps increase in speed (on an i7)
    • Don't record lag frame status into movies, it is not necessary for TAStudio anymore
    • Implement address poking on the system bus domain
    • Nametable Viewer - major speedups (about 10fps faster)
    • PPU Viewer - improved speed
  • SMSHawk
    • Add Gun.Smoke (KR) to database
    • add CJ Elephant Fugitive dump to GameGear DB [CodeMasters mapper]
  • DiscoHawk
    • Fix iso handling

BizHawk 1.0.5

  • Multiclient
    • Input Config - fix bug where auto-tab setting was not being respected when changing controllers or consoles
    • Play Movie - fix movie time calculation
    • Fix lag counter display where lag frame drawing did not use the anchoring property
    • Fix bug when Run in Background is Disabled, emulator will now remember if the emulator was paused before losing focus, if it was, it will not unpause when activated.
    • Add command-line option for automated dumping. command line example: bizhawk.multiclient --dump-type=ffmpeg --dump-name=foobar.avi --dump-length=1000
    • Added Display filters: 2xSAI, Super 2xSAI, Super Eagle
    • Add Hotkey for toggling background input1
    • Lag frame "alert" status updates on loadstate
    • Add Increase/Decrease Speed hotkeys
    • Add a bunch of on screen messages for various menu item toggles
    • "Never be asked to save changes" config menu item
  • TAStudio
    • Fix bug on load where dialog assumes a movie is loaded
    • Fix issue where mario bros 3. gets auxilary files created as mario bros.
  • Lua
    • Lua console - fix to autoload lua session, if there is no recent session, it will open nothing, rather than cause an exception
    • Lua console - Improved Lua Function List dialog, including parameters and return values, and column sorting
    • Lua - fix crash when scripts terminate
    • New Lua Functions (for details see BizHawk/LuaFunctions)
      • input.getmouse()
      • client.getwindowsize()
      • emu.enablerewind()
      • emu.displayvsync()
      • emu.limitframerate()
      • emu.minimizeframeskip()
      • emu.speedmode()
      • emu.frameskip()
    • A new library: forms, for creating custom dialog boxes through Lua
      • forms.create(), forms.destroy(), and forms.destroyall()
      • forms.textbox(), forms.label(), forms.button()
      • forms.addclick(), forms.clearclicks(), forms.settext(), forms.setlocation(), forms.setsize(),
  • NESHawk
    • Fix "Strange "White noise" sound during 1943 (USA) intro" as well as a boatload of aesthetic improvements to make the sound output not so embarassing.
    • Implement mappers 45, 52, 57, 58, 60, 61, 62, 74, 88, 96, 112, 154, 164, 192, 193, 194, 200, 201, 205, 207, 225, 226, 228 (Action 52), 230, 231, 233, 234, 243, 245, 246
    • Implement a Sound Config Dialog to toggle individual sound channels
    • Nametable Viewer - draw immediately when loading the dialog
    • Nametable Viewer - Show address block in tooltip on nametable selection radios
    • Better handling of bus conflict emulation on AOROM boards, fixes Wheel of Fortune
    • Fix Xing Ji Wu Shi (Ch)
  • SMSHawk
    • Fix a PAL bug
  • PCEHawk
    • Add a BG Viewer dialog

BizHawk 1.0.4b

NESHawk:
  • If potential desyncs in savestates on MMC3 mappers. Note, this breaks NES savestates made on prior versions of BizHawk.
  • Sort out some bus conflict flags for CNROM games to fix colorful dragon (unl) sachen.
  • Implement mappers 15, 116, 178, 241
  • Removed speed hack on sound off; bypassing APU has caused desyncs.
Hex Editor:
  • Dialog is now faster
  • Implement mult-highlighting
  • Find Next/Previous option (including hotkeys)
  • Aility to increment/decrement frozen addresses.
  • Increment/Decrement fix big endian, and wrapping logic for 2 byte values
Record Movie Dialog:
  • Use filesystem safe name of game when choosing a default name.
  • Fix regression that made default filename not populate in the savefile dialog
FM2 import:
  • Fixed subtitle importing when extra spaces were provided
  • Case insensitive on movie header importing (fixes GUID import)
Ram Watch:
  • "Display Watches On Screen" now restored by "Restore Default Settings" in Ram Watch
  • Implement an optional Diff column
  • Ability to define Prev & Diff columns as last frame or last change

BizHawk 1.0.4a


BizHawk 1.0.4

Multiclient:
  • Archive Chooser - put (U) [!] roms at the top of the list
  • Fix Controller config exceptions
  • Fix blurry presentation on ATI cards
  • Fix a rare ROM loading crash ??
  • Cheats, Lua, Ram Search/Watch - flag changes when adding a separator, default to Save As if saving a new file, allow Save in menu item in this scenario
  • Ram Watch/Search, Hex Editor - set endian based on the endianness of the memory domain by default
  • Fix so that the Save Config menu item does not close tool dialogs
  • Fix Load/Save Named State to default to the correct savestate path rather than the most recently used path. Fix so that these functions can not be accessed during Null emulator via hotkey
  • Fix Drag & Drop of movie files
  • Fix crash when user loads a state that is not from a movie while a movie is loaded
  • Rerecording
    • Movies - Fix System ID header when recording a new movie
    • Record Movie Dialog - make filename text box default to the game name, and change save file dialog to populate from this text box not game name
    • Movie subtitles - implement ability to display multiple subtitles at once
    • Play Movie - show warnings on mismatches for sha1, system, movie version, and emu version
    • Fix browse button and Drag & Drop to work when set to match game
  • AVI/WAV Capture
    • Added WAV capture
    • Add sound output to sound card while dumping is occurring
    • Threaded AVI capture
  • Ram Search:
    • New Previous Value defintion: Last Change
    • New Search clears change count (prevent all non-zero items from starting out with 1 change)
    • Can change data size, endian, and misaligned address in mid search
    • Fix sorting of the Prev column
    • Fix searching of signed values
    • Fix Ram Poke
    • Add "View In Hex Editor" to the context menu
  • Ram Watch
    • Immediately Set initial watch values when adding a new watch or loading a file (instead of the next frame)
    • Fix updating of watch count when adding/removing addresses
    • Make watch count not count separators
    • Fix Ram Poke
    • Moved "Change Counts" and "Previous Value" from "Options" to a new "View" submenu.
  • Lua:
    • Fix a variety of crash bugs
    • Fix Lua Scripts Don't Disable If You Record A New Movie Nor When You Reset The Game. However, It Does When You Load A Different Rom.
    • Allow use of lua plug-in dlls
    • Drag & Drop for script and session files on Main window, allow multiple scripts to be dropped on main window or console
    • Fix bug that was causing lua functions to duplicate each time a lua script was toggled or opened, eventually causing crashes and duplicating functions in the lua functions list
    • gui.text() and gui.alert() - added anchoring, color, and background parameters
    • Implemented joypad.get() and joypad.set()
    • Lua Drawing added:
      • gui.alert()
      • gui.cleartext()
      • gui.drawBezier()
      • gui.drawEllipse()
      • gui.drawIcon()
      • gui.drawImage()
      • gui.drawLine()
      • gui.drawPie()
      • gui.drawPixel()
      • gui.drawPolygon()
      • gui.drawRectangle()
  • Hex Editor:
    • Find option
    • Option to save as binary
    • Ability to copy/paste data
    • Ability to customize colors
    • Add "Go to Address" to the context menu
    • Remove poke context menu item, since there is no need for it, just type in the values!
  • TASTudio:
    • Small fixes to the input list
    • Green-zoning (experimenetal)
    • Hooked up Fast Forward, Fast Forward to End
    • Made a placeholder for Turbo Fast Forward.
    • Fixed rewind to not stomp on the previous frame with new input.
    • Fixed rewind to stop at the beginning of the movie instead of freaking out.
    • TAStudio now shows data from the most recent frame.
    • CommitFrame is called even if not recording so played back frames also show up in TAStudio.
    • Play mode only stops at the end of the movie if you tell it to. Your emulator normally continues to play with no input after the end of the movie.
    • TAStudio is now updated after a rewind (even though the rewind doesn't play a new frame).
    • Going into read-only mode adjusts the movie mode.
    • Implemented New, Open, Save, and Save As for TAStudio.
    • Fixed an issue where frames past the end of the log would default to the input from the last frame of the log.
    • Fixed a problem where you couldn't rewind to frame 0.
    • Fixed a scrolling issue in the TAStudio list view.
    • Fixed an issue with the TAStudio virtual NES controller not matching up with the log.
    • Fixed an issue where the NES reset button would get held in when rewinding.
    • "Clear Holds" menu item & context menu item, clears all buttons pressed on the virtual pads
    • Open TASTudio Hotkey
NESHawk:
  • Many more Accuracy Tests passed. Now passes more than Nintendulator.
  • Implement mappers 12, 67, 72, 76, 92, 176, 227, 248
  • Pass all mmc3 tests
  • Support TENGEN-80004 (just bookkeeping; uses already existing mapper 068)
  • Fix mapper 64, 115, 242
  • Fix savestate of mapper 164
  • Fix lagrange point, including sound
  • Fix a potentially desyncable bug in mmc3 savestate
  • Add konami collection games to gamedb so they show as good dumps
  • Fix some minor details of ppu data bus management; fixes klax and chu chu rocket
  • Fix bug in base board class wram functionality
  • Don't crash when VRC mapper asks for unusual irq mode
  • 6502 - implement undocumented opcodes. pass all instruction tests
  • 6502 - add some opcodes not handled by the instruction tests, but which are cursorily covered by the instr_timing test, which now passes
  • Graphics Config Dialog - limit last line to 239 instead of 240 (prevents crash)
  • APU - clear sequencer_irq, and 0x4015 on reset
PCEHawk:
  • Fix Aldynes (SGX) intro freeze
  • Update ROM header detection algorithm. Fixes some homebrew roms which have no header and aren't padded to a multiple of 1024 bytes.
  • PCE-CD - fix CD Set Audio End Position command Mode 2 bug - not ending audio playback!
  • Crash in PCE Coryoon when attempting to access disabled TurboCD ports
  • Update gamedb entries for Neutopia 1 & 2
SMSHawk:
  • Add 2 SMS homebrew and a GG prototype to gamedb
TI83Hawk:
  • Added many ROM versions to gamedb
  • Mark bad dumps accordingly
  • Display the version number when displaying the rom name
Discohawk
  • This restores the ability to load cues that reference .raw files while supplying .mp3 tracks

BizHawk 1.0.3

Multiclient:
  • Uses much less CPU power when paused
  • Change default movie extension to .bkm
  • Handle # in paths
  • Fix how anchoring works in the message config dialog
  • Cheat Window, Ram Watc, Lua Console - fix exception when clicking Move Up on the first item in the list.
  • Lua:
    • Multiple scripts at once support
    • Fix random crashing/closing of emulator when using emu.frameadvance()
    • Show lua script errors in output window instead of crashing the emulator
    • Added:
      • savestate.save()
      • savestate.registersave()
      • savestate.registerload()
      • movie.isloaded()
      • movie.length()
      • movie.filename()
      • movie.getreadonly()
      • movie.setreadonly()
      • movie.getinput()
      • moviegetrerecordingcounting()
      • moviesetrerecordingcounting()
      • input.get()
      • joypad.getimmediate()
      • joypad.set()
      • emu.yield(), allows a script to run while emulation is paused and interact with the gui/main window in realtime
    • overhauled:
      • joypad.get() - now returns lua table of buttons pressed (not mneomnic string)
      • gui.text()/gui.alert() now have optional anchor property, fix not displaying when paused, fix y coordinate bug
    • console GUI:
      • add a *.txt option in the openfile dialog, allow drag & drop of .txt files
      • track session changes
      • menu options:
        • disable lua scripts on load
        • autoload session
        • Added Pause Property To Scripts, Menu Option To Pause/Resume Scripts, Shows number of paused scripts
        • If User Opens A Script That Is Currently On The Session, It Will Toggle It On.
        • If User Deletes The Script From The Session, It Will Stop.
        • Script Counter Now Updates On More Circumstances.
        • Fix saving/loading of sessions
        • Fix so session saves seperators, can't edit separators
        • Edit opens all selected scripts instead of the first one
        • Drag & Drop for lua sessions
        • Save Session Menu Option now Enable/Disable correctly
  • Increase/Decrease Window Size hotkeys (mapped to Alt+Up/Alt+Down by default)
  • Add options in record dialog for the system ID to be added to file
  • Removed .fm2 / .mc2 from the Play Movie dialog.
  • TAStudio
    • Fix ArgumentOutOfRangeException at read-only movie end
    • Fix default frame column size is too small
    • Record movie dialog - if file already exists, confirm overwrite
    • Small GUI Fixes to play movie dialog
NESHawk:
  • 92/153 Accuracy Tests passed (vs 83 of FCEUX)
  • pass 10-even_odd_timing and 05-nmi_timing accuracy tests
  • pass more apu_test 4-jitter and 6-irq_flag_timing (necessary for timing on other tests)
  • pass all cpu interrupt tests
  • pass all sprite hit tests
  • make fake boards for almost every mapper
  • fix nametable viewer screenshots garbage pixels off by one bug
  • nametable viewer - add shortcut buttons for common display area sizes
TI-83Hawk:
  • Fix ( and ) hotkeys being switched

BizHawk 1.0.2

Multiclient:
  • Lua/Lua Console:
    • Fixed loading of lua script files
    • Fixed various crash bugs related to emu.frameadvance() should be a lot more stable now
    • Saving/Loading of Lua Session files
    • Fix lua script toggle errror
    • Fix exception when selecting Turn off all Lua scripts
    • Fix exception when double-clicking a Lua script to toggle it
    • Implemented Recent menus
    • Added setrenderplanes() - works for NES, SMS and PCE (not SGX)
    • Added gui.alert() - same as gui.text but uses the alert font
    • Clear output window on new session, add Clear function to output window right-click menu
    • A real Lua Function List dialog
    • GUI Cleanup - Hiding/Disabling menu items logic, tracking changes, asking to save changes
    • Implemented writebyte() and fixed readbyte()
    • Implemented new memory access functions, can specify datasize and endianness.
  • TAStudio - Fix frame advance button
  • Frame advance - Skip Lag frames option added (under the Config -> GUI menu)
  • Ram Watch - when drawing watches on screen, use alert font for frozen addresses
  • Movie imports:
    • ImportMCM - added importing of non-PCE platforms
    • Import NMV (Nintendulator)
    • Import VMV (VirtualNES)
    • Import FCM - Fixed handling of Fourscore and soft-reset
    • Import FM2 - Fix handling of soft-reset
    • Import FMV - Fixed handling of movie title
    • Made filename behavior append .tas instead of replacing the extension (easier to tell the origin of the file)
    • Fixed the file types list in the Import Movies dialog
    • Fix display of Loadstate hotkeys in loadstate menu
Context menu - add Screenshot -> clipboard
NESHawk:
  • Revamped 6502 core (passes more accuracy tests)
  • Added some catch-all mappers
  • Fix an error in chr rom size for a CNROM game
  • Implement board AVE-74*161
  • NES Graphics Settings bugfix
  • Debugger - implement disassembler
  • Fix a recently created ppu bug affecting some vertical scrolling
  • Straighten out mappers 232 and 71
  • Fixed inability to load some accuracy test roms
  • Fixed bug in mmc5 (fixes mmc5exram test) and add support for ex1 mode (fixes gemfire)
PCEHawk:
  • Fixes to savestates, rerecording is now sync stable!
  • Fix SystemBus memory domain size (fixes display and possible crashes in tool dialogs with a memory domain option)
  • Added Graphics Settings dialog
  • PCE: added settings to show/hide BG/OBJ for TurboGrafx (not for SuperGrafx)
Portability:
  • Many fixes to conditionally compile Windows code, portable path references, case sensitivity fixes, enough to start the emulator on Linux/Mono, load a ROM and watch the demo (input and audio don't work yet).

BizHawk 1.0.1a


BizHawk 1.0.1

Multiclient:
  • Fixed reported 'sound jitter' when using the "Loadstate As" hotkey.
  • Implemented feature: Frame Advance - Skip Lag frames option (Under config -> GUI menu)
  • Lua Console:
    • Fix an exception when attempting to close a lua script
    • Don't write to output window in gui.text()!
    • Implement Open Script toolstrip icon
  • Movie importing:
    • movie importers - fix populating of the emuOrigin header
    • added .mcm movie importer
    • added .gmv movie importer
    • .fm2 movie importer - interpret "romChecksum" entry
    • added .fcm movie importer
    • add GUID to .vbm importer
  • Hex Editor:
    • Dynamically add unfreeze option to menu items
    • New hotkeys: A for Add to Ram Watch, Del for unfreeze, Shift+Del for unfreeze all, Space for freeze/unfreeze toggle
    • New features: Increment/Decrement (increases/decreases actual value of selected address by 1), added menu items and Numpad +/- for hotkeys
    • Add "escape clears mapping" message on controller config dialog
    • Fix bug in RAM Watch/Search signed value printing, and probably unsigned 32bit value printing as well
    • Ram Search - fix scrolling exception and duplicating of addresses when using the Open Watch file feature
    • Added an Animated GIF feature, included settings dialog
    • Fix rather annoying typo in online help link
    • Refine screenshot code, and add screenshot->clipboard menuitem
    • Make pce cd bios use path configuration
    • Fix saving of window position and other settings in tool dialogs
NESHawk:
  • Implemented mappers 44, 46, 49, 80, 82, 115, 182, 189, 191, 192
  • 6502: partially implemented unofficial NOPs for "Puzznic (U)", "Puzznic (J)"
  • fix a scroll timing bug that grew while PPU was getting ported from FCEUX's new PPU
  • Change OAM DMA cycles to 513
  • fix bug in xml parsing which made games with multiple carts (unusual) not detect subsequent carts
  • improve NES ROM dectection log
  • Fix $2007 access while rendering (fixes Young Indiana Jones)
  • Fix Four Screen Mirroring (fixes Gauntlet)
  • Support for 8kb PRG ROMs
  • Fix chu chu related things
  • Straighten out rendering range off by one issues
  • Nametable Viewer - Screenshot to Clipboard option
  • PPU Viewer - Clipboard option for Palette, Pattern, and Sprite Viewers
PCEHawk:
  • Fix a crash when a HuCard accessing invalid addresses would venture into TurboCD ports (namely, Rastan Saga)

BizHawk 1.0.0


Old Version Tags

Notes on reverse-engineering git revisions for tagging old releases based on release notes and SVN log:
Notes about release vs Release branches
  1. commit 99b84e0 deleted the old svn release branch. "Release" was created in its place. The commits were later restored and tagged as releasebranch-svn-end
  2. commit 5761b6b renamed the branch from "Release" to "release". No data was lost.

Bizhawk/PreviousReleaseHistory last edited by RetroEdit 7 days ago
Page History Latest diff List referrers View Source