- Enabling the automatic save state loading/saving feature will no longer cause an error to be outputted on game load if the save state does not exist
- Added support for compiling and linking with external LZO instead of the bundled miniLZO
- A CD image loading hint will now be appended to the ROM image too large error message in certain circumstances
- PC-FX: Added a missing variable to save states
- (Re)Added backwards-compatibility "video.driver" setting value aliases
- NES: Misc minor fixes for a few bootleg mappers
- NES: Added missing data to VS Unisystem save states
- NES: Added missing variable to mapper 64 save states
- NES: Added missing save state support to the mapper 22 code
- NES: Fixed improper handling of an MMC1 variable in save states
- Fixed handling of the "osd.state_display_time" setting to allow a value of "0" to work as expected

- Prevent crash when we try to disassemble an instruction with many DD or FD prefixes
- Fix crash when setting debugger variables
- Prevent crash when we try to profile an instruction with many DD or FD prefixes
- GTK+ UI: Improve behaviour of default button on dialogs
- GTK+ and win32 UIs: Support hex numbers in load/save binary and pokefinder dialogs
- SDL UI: Allow to select the video mode used in full-screen

- Migrated to SDL2(building from source requires 2.0.5+)
- An attempt to run an instance of Mednafen while another instance is already running with the same base directory is now blocked during startup, via a lock file; note that this check occurs after stdout and stderr are potentially redirected to stdout.txt and stderr.txt on Windows
- Removed the "overlay" video driver
- Changed the default value of setting "video.driver" from "opengl" to "default", removed the old "0" and "1" backwards-compatibility value aliases, renamed the "sdl" driver to "softfb"(without backwards-compat aliases), and made it so the setting's value will be reset to "default" after automatically importing settings from "mednafen-09x.cfg"
- Added setting "video.fs.display"
- Added settings "fps.autoenable", "fps.position", "fps.scale", "fps.font", "fps.textcolor", and "fps.bgcolor"
- Added support for pasting text into the cheat and netplay consoles
- On Windows, Mednafen will now output text to a console if it's started from a console(e.g. cmd.exe or Cygwin), and if not, write to stdout.txt and stderr.txt like before
- On Windows, error messages during startup will now be displayed in a popup message box
- On Windows, Mednafen now uses Unicode variants of CRT and Win32 functions; this may require the user to update path settings and convert their CUE sheets to UTF-8 if filenames use exotic(e.g. not directly typable on a standard US-layout keyboard) characters
- For key bindings relating to the debugger and cheat management interface, the Right ALT key modifier will no longer be respected(only the Left ALT has any effect now), for internationalization reasons
- Configuration file is now named "mednafen.cfg" again, instead of "mednafen-09x.cfg"; if "mednafen.cfg" doesn't exist or is for an old version(earlier than 0.9.0) of Mednafen, the settings will be loaded from "mednafen-09x.cfg" on startup, but still saved to "mednafen.cfg" on exit
- Reworked the input mapping setting format to be more human-readable(and editable). Details are in the documentation, in the "Advanced Usage" section. Old input mappings will be translated internally, except for keyboard mappings, due to incompatibilities between how SDL 1.2 and 2 handle keyboards
- Added support for mapping joystick axes and buttons, mouse buttons, and keyboard keys to emulated mouse device relative motion for testing purposes(via manually editing the configuration file, as the in-emulator configuration process currently won't create such mappings)
- Added support for digital button input mappings that mix AND, ANDNOT, and OR-style operations together(previously it was either just AND or OR); refer to the documentation for more details. Note that the in-emulator configuration process won't create complex mappings that mix different boolean operations, but you can map combinations using simpler logic in-emulator, and then edit the configuration file to adjust the boolean operations used
- Altered calculations involving *.xscale(fs)/*.yscale(fs) settings to be more predictable given floating point nuances; any user using non-integer scaling values for these settings may need to adjust them to get the same result as in previous versions of Mednafen, however
- Fixed broken cheat file saving on MS Windows
- PCE_FAST: Fixed fubared mouse emulation
- PC-FX: Fixed integer overflows that caused fatal division by zero when Mednafen's cheat functionality was used(a regression introduced around 0.9.39)
- SS: Fixed a logic error in the BIOS sanity check code that caused it to throw a less helpful error message than intended in certain circumstances, and made the error messages related to BIOS file misconfiguration more verbose(and hopefully more helpful...)
- SS: Fixed at least one background layer graphical glitch in "Radiant Silvergun"(at the start of stage 2C)
- SS: Fixed the graphical glitch near the end of the intro in "Snatcher"
- SS: Added Japanese keyboard(HSS-0129) emulation

Bug fixes:
- Wav Loader window did not contain all of the waveform after saving
- Saving of wav files for the ZX80 now works
- The T-states breakpoint counter no longer wraps back to 0 after 65535 but continues until 999999, making it easier to see if a ZX80 frame is taking too long
- Changed the default value present on the data bus for the ZX80
- The ‘ROM file not found’ dialog would appear after selecting a ROM file from a folder outside the default ROM folder
- Read breakpoint conditions were not working correctly
- Corrected disassembly display of SBC instructions
- Fixed Spectrum border corruption when Spectra mode enabled and full frame displayed
- Fixed Spectrum border during vsync period when full frame displayed
Enhancements:
- Wav Loader now shows the end of the waveform after saving from a ZX80 or ZX81 when auto stop/start is enabled (previously it would show beyond the end of the waveform)
- Wav Loader now displays the waveform while saving (previously it was always showing beyond the end of the waveform)
- When saving to the Wav Loader from a ZX80, ZX81 or TS1500, the output now drops back to the zero level when there is no activity to better represent the waveform that would get saved to a cassette
- Support for ZXC ROM cartridges provided by the Chroma 80 interface
- Added a ‘range’ option to breakpoints (by SirMorris)
- Added a ‘mask’ option to breakpoints
- Added a ‘not equal’ condition to breakpoints
- Added support for binary input for memory edits
- Removed support for octal entry on memory edit and breakpoint dialogs
- TV emulation display artifacts are now disabled by default
- Added Keyboard layout image for the Spectrum 128
- All windows gathered at start up to ensure they are visible if an existing ini file could not be found
- Added recursive support for the Step Over debugging facility

- Fixed some bugs regarding drag and drop, loading d64 files and key recording
- VIC timing is now very close to VICE
- Cartridge handler has been rewritten. VirtualC64 now supports several non standard cartridges such as Simons Basic, Final Cartridge III and Comal 80. The Epxy Fast Loader also seems to work, but does not deliver the expected speed increase. This is probably due to the current VC1541 emulation which needs to be improved
- Peeking CIA1 register $DC00 sometimes returned a wrong value in case of keyboard events. This prevented some games (Pitfall II) to detect pressed keys. As a side effect, the $DC00 fix causes a lot of interference between joystick and keyboard events. Therefore, joystick emulation keys are disconnected from thekeyboard by default. This behavior can be changed in the emulator setup window
- All mount dialogs have been redesigned and simplified. A new mount dialog for cartridges has been added
- The media dialog has been replaced by a new disk inspector that lets you observe the GCR encoded data of each track. The functionality of the old media dialog has been moved to three new top level menus
- Large portions of the GUI code are now implemented in Swift

- Major rewrite of the YM2149 with a new cycle accurate emulation
- Major rewrite of the blitter to allow cycle exact bus accesses and correct bus sharing with the CPU
- Improved video emulation : bottom border at 60 Hz and number of displayed lines, video counter reloading, timer B in mono mode
- Add full support for MMU/MCU RAM configuration at $FF8001, support more RAM combinations (256 KB and 2.5 MB)
- Some STX floppy images were not correctly emulated when verify bit was set in the FDC
- Support for undocumented STOP behaviour on 68000
- Fix some rare bus accesses order and stack frames
- Fix some flags after DIV and BCD instructions
- Improved memory timing for 68030 depending on RAM type
- 68030 instruction cache was not correctly disabled when EI=0 in CACR
- Improve caches accuracy for 68020/30/40/60, with optional MMU support
- Large improvements to FPU emulation, including a new softfloat method
- MIDI support for Windows and macOS (with PortMidi library)
- Add support for AVI files > 4GB (up to 256 GB)
- SDL UI shows refresh rate and blitter usage
- Several improvements/fixes when using VDI
- Improvements/more options for autostart using virtual INF file
- Many improvements to debugger, especially for symbols handling
- Fix compilation for more targets (ARM64, MIPS, ...)

- Added "Time Machine" mode, which automatically creates save states in user-defined intervals. The user can navigate back and forth within these states inside the emulator and the debugger
- Huge improvements to the disassembly view in the debugger and disassembly files created:
- reformatting in debugger for better space utilization
- much improved code and data detection
- access tracking and indicators for TIA/IO/RAM adresses in disassembly
- break vector is tracked (if used)
- improved cycle count (page penalties, sums created in disassembly)
- improved handling of instruction masking opcodes (e.g. BIT)
- Fixed change tracking bug during rewind; changes were accumulated instead of being displayed only for the last rewind step
- Extended 'rewind' to take a second parameter which allows rewinding multiple states
- Added 'unwind' command, which undoes the latest rewind(s)
- Added '

- Fix graphical issues for accurate renderer (e.g.: some Super Street Fighter II backgrouds)
- 4:3 screen size option for Master System games (probably in the future, the emulator will decide the parameters as the game)

- Metal code has been ported to Swift and internal texture size bumped up to 2048x2048 texels
- Texture post-processing has been separated into two phases which can be controlled independently in the emulator preferences window. It is now possible to combine a pixel upscaling algorithm with a texture filtering algorithm which are both run as seperate compute kernels on the GPU. With EXP and xBR two commonly known pixel scaling algorithms have been implemented
- VIC-II compatibility has been improved further by Fabio Ritrovato
- The VICE color palette has been updated with new RGB values. It is now the default palette
- Text snippets can now be dragged and dropped into the emulator window

- CIA old timer B bug timing fixes for Wilfred Bos's alternate version of the dd0dtest.
- Updated 8580 SID combined wave with slightly improved samples from a real C64C CSG 8580R5.
- Added a new joystick setting to enable the use all fire buttons.
- Added separate VBL sync or line sync options for both Direct X full screen and windowed mode.
- Fixed the "Stretch with border clip" in some resolutions to provide a more optimal zoom.