2.10-rc1 / 15-09-2024
Bizhawk
Accuracy
Performance
Features
BizHawk is a multi-platform emulator written in C# which focuses on core accuracy and power user tools. Its main features are TASVideo (Tool-Assisted Speedrunners) for full recording and debugging tools as well as Lua scripting. The consoles covered include but are not limited to Apple II, Atari 2600/7800, ColecoVision, DOS, Game Boy/Game Boy Color/Super Game Boy, MSX, Nintendo Entertainement System, Super Nintendo, Gameboy/Color, Sega Master, Sega Genesis, Sega 32X, Sega Saturn, Sega GameGear, ZX Spectrum, Atari 2600/7800, Commodore 64 and a few more!
--
Windows: 7+
.NET Framework 4.6.1, Visual C++ Redists (2010 SP1, 2012, 2015) & Direct3D 9 required.
They provide a pre-requisite package
Linux: As stated by the authors, support is a work-in-progress
Most Recent Changes
--2.10 RC1--
This includes a fully-functional Encore (Citra) and ChannelFHawk. We also have 2 new WIP cores, PUAE and Stella, as well as updated Genplus-gx and QuickNES, and regular updates for several other cores.
edit: quickerNES won't work on most Windows PCs. You should be able to drop this copy into the dll folder.
A changelog listing all the bugfixes and improvements will come later, but for now you can check the resolved issues and commit history.
--2.9.1--
Linux
portfixed 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 usingk001006_device
(e.g. windheat)
NES
Hawkfix 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
--2.9--
Lots of updates and fixes to existing cores and to EmuHawk.
New Cores
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)
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
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 apossible 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)
--2.8--
This release sees BSNESv115+ and MSXHawk graduate from experimental, and the addition of 5(!) new cores emulating GB/C, N64, PSX, and TI-83.
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 hotkeys triggering accidentally when typing in Virtual Pad fields (#3087)
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 duratin (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
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
Atari2600Hawkfixed audio issues, affected ms pac man
Gambatteupdated 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
GBHawkupdated GBA startup state, affected Konami collection vol. 4
fixed link play, affected perfect dark
Genplus-gxadded support for SRAM larger than 8MB (#3073)
prevented crash when loading Debugger (#2769, #2958)
Handyfixed 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
MAMEstopped treating warnings as errors
set System Bus correctly
melonDSupdated core, adding experimental DSiWare support
enabled memory callbacks
fixed empty strings in firmware settings preventing roms from loading (#3030)
Mupen64Plusfixed haptic feedback causing movie playback to crash
enabled GLideN64's texture wildcard support (#3104)
NesHawkadded 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
VectrexHawkimplemented 64K bank switching
--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)
EmuHawkGroup SGB in with GB/C in PathConfig (#2992)
Encode screenshot as JPEG when it has the extension (#2982)TAStudioFix 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)Luaimplement 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()
--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
Addedsa1_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
, 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
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 forforms.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 themmf
Lua library to be used without passing--mmf
on the command-line, and add some helper functions to it
fixed #2940 - madeclient.openrom
behave likeclient.reboot_core
Debugger
fixed #2760 - prevent crashes when minimizing and other cases
--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)
--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)
Vectrex
HawkReport 50fps in the Play Movie dialog
GPGX
Fix VDP Viewer screenshot feature (#2596)
NesHawk
Fix Wagyan Land 2 Graphical Bugs
FIx mapper 90
--2.6.0--
New Core! Odyssey2 core is offically released
Update nyma cores to Mednafen 1.26.1
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)
NES
HawkChange NES framerates (#2460)
GPG
XAllow 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
LuaImplement joypad.getwithmovie()
Deprecate emu.getluacore in favour of new func client.get_lua_engine
Fix reverting current directory
Fix client.reboot_core() (#2571)
Fix MovieClock.lua ui, also use current frame count instead of movie length
TAStudioSupport 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)
MoviesPass 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)
CDLFix crash on GPGX
Gambatte - fix 1st opcode byte. (#2551)
GBHawk - Fix domain names (#2552)