Table of contents
Upgrade Notes and Prerequisites
- The readme on GitHub has more instructions, and is usually more up-to-date than this page.
- Never mix different versions of BizHawk. Keep each version in its own folder.
- Windows users: Don't forget to run the prereq installer first!
- Due to how BizHawk has evolved, earlier releases (1.x and 2.x before 2.4) might not work unless you also run an older version of the prereq installer.
- BizHawk versions starting from 2.0 require a 64-bit OS. A "backport" release, 1.13.2, is available for users of Windows XP, 7, or 8.1 32-bit.
- Linux users: Distro-specific build instructions / packages are linked from the readme. A list of known bugs affecting the latest release can be found in issue #1430.
BizHawk 2.9.1
- Windows download
- Linux download
- Released May 3, 2023
- Linux port
- fixed last issue in #2951 properly
- AppleII / C64
- fixed states sometimes crashing when a disk change actually happens
- BSNESv115+
- 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
- Windows download
- SHA256 checksum: 9c456b7ccadc8b8859879343444d7284cd42c7268f9d7db5100ce08bd3ab3c54
- Linux download
- SHA256 checksum: eabd9ab68fa0636fad8e62e75bb8b10b7f75b2ba3218c7132da1cf6cf95a46d9
- Released April 7, 2023
- 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)
- MAME
- 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
- C64Hawk
- various savestate fixes
- added SaveRAM support
- CPCHawk
- removed redundant
AmstradCpcPokeMemory
tool - renamed some bundled firmware files (#3494)
- removed redundant
- 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
- 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
- Mupen64Plus
- 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
- SameBoy
- Saturnus
- updated to Mednafen 1.29.0
- fixed disc switching
- fixed light guns (#3359)
- SMSHawk
- 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)
- removed redundant
- 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-deterministicDictionary
(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 forLuaPictureBox
es erroneously affecting every form instead of the one specified (#3395) - renamed (deprecated)
event.onmemory{read,write,exec,execany
} toevent.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
inheritIMonitor
, 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
intoIEmulationApi
, 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 toIMovieApi.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 matchSendString
/socketServerSend
- return success bool from
OpenRom
APIs (#3514) - have
IMovieApi.Stop
implementation useMainForm.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
}
- improve error message for
- 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 as0x0
)
- added warning when loading a
- Debugger
- fixed the "To PC" button not updating the disassembler view
- fixed breakpoint crash with mGBA (#3287)
BizHawk 2.8
- Windows binary
- Linux binary
- Released February 19th, 2022
- 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)
- added support for
- 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")
- Nymashock:
- 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:
- 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
- A7800Hawk:
BizHawk 2.7
- Windows binary
- Linux binary
- Released November 12th, 2021
- 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
- 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
- Discohawk
- ApiHawk
- Implement client api GetApproxFramerate()
BizHawk 2.6.3
- Windows binary
- Linux binary
- Released October 1st, 2021
- 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
- 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
, andtxHiresTextureFileStorage
- 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
- 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
- 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
andmainmemory
: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 likeclient.reboot_core
- allow loaded ext. tools to be queried via
- Debugger
- fixed #2760 - prevent crashes when minimizing and other cases
BizHawk 2.6.2
- Windows binary
- Linux binary
- Released May 25th, 2021
- 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
- Windows binary
- Linux binary
- Released February 21st, 2021
- 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
- Windows binary
- Linux binary
- Released January 17th, 2021
- New Core! Odyssey2 core is offically released
- Update nyma cores to Mednafen 1.26.1
- See Mednafen release notes for full changes. (Mostly just Sega Saturn)
- Saturnus
- 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
- Linux
BizHawk 2.5.2
- Windows binary
- Released October 7, 2020
- 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
- Windows binary
- Released September 13, 2020
- 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)
- Linux
- 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
- Released August 30, 2020
- 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
- Upgraded to .net 4.8, and c++ runtime deps have changed
- New Cores!
- TurboNyma - the ported PCE core from Mednafen, more accurate than PCEHawk
- HyperNuma - 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
- bsnes
- 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
- WonderSwan
- Update Cygne with upstream fixes
- PCFX
- Fix rom loading (#2022)
- Update with upstream fixes
- NGP
- Update with upstream fixes
- PSX
- change PSX framerates to follow mednafen instead of nocash (#2138)
- Atari 2600
- Fix Quadrun (#2127)
- 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
- Windows binary
- Released May 17, 2020
- 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
BizHawk 2.4.1
- Windows binary
- Released May 2, 2020
- 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
- Upgraded to .net 4.8, and c++ runtime deps have changed
- 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.
- Many updates ported from upstream Gambatte through Gambatte-Speedrun to support the following:
- 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
- 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
- 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
- Released January 18, 2020
- Windows binary
- New Core: Vetrex!
- GCE Vectrex emulator, ready for TASing.
- EmuHawk
BizHawk 2.3.3
- Released January 12, 2020
- Windows binary
- Warning: This release has synchronization problems in TAStudio, use newer release instead.
- NESHawk
- Scanline timing and audio fix
- Change '&' 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 1.13.2
- Released June 9, 2018
- Windows binary
- It is a maintenance release of an old BizHawk version, compatible with Windows XP 32-bit
- 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