What's New:
1.32.1:
March 15, 2024:
Apple2: Fixed erroneous parsing of WOZ file padding bytes and unknown chunks' data as 8-byte chunk headers.
Fixed broken handling of the end-of-stream condition when reading from non-compressed files stored in ZIP archives;
fixes loading of such Apple II WOZ disk images and CloneCD CD images.
January 17, 2024:
SS: Implemented workaround for gcc bug #113255 in the VDP1 rasterization code.
January 14, 2024:
Apple2: Fixed typos/brainfart that broke language card and ROM card control accesses via $C08F.
1.32.0-UNSTABLE:
December 29, 2023:
Silently disable keyboard grabbing temporarily while the netplay text input, debugger, or cheat interface is active, to
avoid complicated text input problems with AltGr and low-level keyboard hooks on Windows.
December 25, 2023:
Fixed directory creation error(s) when trying to run Mednafen in the root directory of a (non-subst'd) drive on Windows,
a regression introduced in 1.22.0-UNSTABLE.
December 24, 2023:
PSX: Added support for Konami's "Pop'n Music" controller.
December 22, 2023:
Added setting "input.grab.strategy" to control when the system keyboard and mouse are grabbed while input grabbing is
toggled on in Mednafen. Note that SDL2 2.0.16 or later is required for the non-default "auto" option to fully work.
December 18, 2023:
Fixed excessive CPU usage when sound is disabled or fast-forwarding is active while in frame advance/pause or in the
cheat interface.
December 17, 2023:
No longer set environment variable "__GL_SYNC_TO_VBLANK", instead relying only on SDL_GL_SetSwapInterval(),
as it seems to work fine nowadays with Nvidia's binary Linux driver, to avoid thread safety issues with
environment modifications.
Renamed configuration macro "PSS_STYLE" to "MDFN_PSS_STYLE", and path-separator string macro from "PSS" to "MDFN_PSS".
December 15, 2023:
PSX: Renamed setting "psx.dbg_level" to "psx.dbg_mask", and changed its type to a multi-enum, to allow for more granular
enabling of debug messages.
Added SettingsManager::GetMultiM() and MDFN_GetSettingMultiM() functions, which will return the setting's enum
values OR'd together.
abort() when SettingsManager::GetUI(), SettingsManager::GetI(), or SettingsManager::GetF() is called for
a MDFNST_MULTI_ENUM-type setting.
PSX: Snoop additional BIOS tty stdout functions when setting "psx.dbg_level" is 2 or higher.
December 2, 2023:
Patched SDL2 in the Windows build toolchain to ignore synthetic Left CTRL key events generated by AltGr,
when keyboard input grabbing is active.
Demo: Added an interactive graphical keyboard test mode to check input grabbing and SDL2 keyboard support,
among other things, activated by changing the value of new setting "demo.mode" to "keyboard".
November 29, 2023:
PCE, NES: Fixed broken rendering in the graphics debugger when the OSD pixel format is not the same as the emulation
video pixel format.
November 28, 2023:
Changed the OpenGL RGB555 support(e.g. via the "video.glformat" setting) to use a pixel format and type of
GL_RGBA and GL_UNSIGNED_SHORT_5_5_5_1(instead of GL_BGRA and GL_UNSIGNED_SHORT_1_5_5_5_REV as before).
Set emulation video texture parameters GL_TEXTURE_WRAP_* to GL_CLAMP before trying to set them to GL_CLAMP_TO_BORDER,
to avoid texture wrapping on pre-1.2 OpenGL.
November 26, 2023:
Added support for 16bpp video/framebuffer modes, dependent on specific emulation module support, when OpenGL is
disabled.
Blocked the graphics debugger from being selected when it's not implemented for the current emulation module.
Fixed hang when a post-startup error occurred during video reinitialization or blitting, due to erroneously unlocking
a mutex twice.
November 23, 2023:
Updated toolchain for official Windows builds(non-Win9x):
binutils 2.28 -> 2.28.1
flac 1.3.2 -> 1.3.4
mingw-w64 5.0.3 -> 5.0.5
SDL2 2.0.8-11835 -> 2.28.5
zlib 1.2.8 -> 1.2.13
Additionally, the 32-bit build of SDL2 has been patched to restore support for Windows 2000, broken since the migration
to SDL2 in Mednafen 1.x.
November 21, 2023:
Apple2: Delay Disk II processing of normal flux pulses vs. random noise pulses, and disable the 500ns delay
pseudorandomly(50% probability) added to normal pulse detection, as it breaks WOZ dumps of "Test Drive" and "Wizardry".
November 19, 2023:
Fixed design flaw in MDFN_strargssplit() that broke handling of an escaped backslash immediately preceding a closing
double quote character.
November 18, 2023:
Documentation: Added support for hyperlinks to settings in the description text for settings, custom palettes, and
internal databases, by enclosing the setting name in double quotes and prefixing the name with ASCII control
character 5.
Fixed broken handling of octal along with a few edge case issues in MDFN_strunescape().
In MDFN_strescape(), escape control characters in 3-digit octal instead of 2-digit hex or 1-digit octal to avoid
potential conflicts with subsequent characters.
October 21, 2023:
Align QTRecord CSCD video codec line data to 4-byte boundaries, as is correct, to fix broken recorded video in some
circumstances.
October 20, 2023:
SS: Parse the 32-byte region area data in addition to the 1-byte region characters when determining the region to emulate.
October 18, 2023:
SS: Extend previously-undocumented bootable ROM cart support from 1MiB to 48MiB, with support for 512KiB backup memory if
32MiB or smaller, and force full cache emulation to be enabled when running with a bootable ROM cart image.
SS: When loading a save state, mark internal and cart backup memories as dirty only if loading the state actually
changed them, to try to avoid excessive disk writes when using state rewinding.
SS: Added support for routing SCSP MIDI output to stdout, activated by changing the value of the new "ss.midi" setting to
"stdout". Note that byte values of 0x1B will be filtered from the output, and timing synchronization issues limit
its uses outside debug text output.
October 12, 2023:
SS: Corrected behavior of VDP2 color calculation blending when in both hires mode and a non-zero color RAM mode.
October 11, 2023:
SS: Prevent VDP2 color calculation blending with a transparent sprite shadow pixel beneath the topmost layer;
fixes erroneous opaque red shadows under units during the last episode's first battle in "Sakura Taisen".
October 2, 2023:
SS: Added "Gambler Jiko Chuushinha: Tokyo Mahjongland" to the internal database of games to use full cache emulation with,
to fix octopus screen flickering.
September 22, 2023:
Apple2: Error out when loading WOZ 2.1-format images with FLUX chunks, as they're not currently supported.
September 21, 2023:
Apple2: Added "rgb_video7" video rendering mode, which supports the additional graphics modes offered by the Apple IIe
Video 7 RGB interface, one of which is used by Sierra's AGI games, and provides two distinct grays in all graphics modes.
September 14, 2023:
Apple2: Added "apple2.input.kb.auto_repeat" setting.
Debugger: In the memory editor, the Escape key will now exit text entry prompts and editing mode.
Debugger: Don't set a register's value to 0 when the register edit text entry string is empty or completely invalid.
September 13, 2023:
Fixed bug that could cause nearly all hotkey/command key functions to trigger spontaneously when Mednafen has been running
for around 49.7 days
Changed the default mapping for exit to just F12 instead of ESC and/or F12.
Added a new hotkey for closing the netplay popup, by default mapped to "ESC", controlled by setting "command.close_popup".
September 10, 2023:
Apple2: Added "rgb_qd" and "rgb_qd_tfr" video rendering modes, which will render DHGR at quarter-resolution, and provide
two distinct grays in all graphics modes.
September 9, 2023:
Apple2: Renamed keyboard input mapping settings to reduce their lengths, and documented the caps lock default position setting.
Apple2: Changed how HGR is handled with the "rgb_alt" and "rgb_alt_tfr" video rendering modes, for consistency with DHGR
and to correct a few glitches.
August 31, 2023:
Apple2: Added an adjustable composite color video sharpening filter, controlled by the new setting "apple2.video.postsharp".
May 7, 2023:
SNES-Faust: CPU writes to VRAM during active display are now blocked. Fixes missing dialog box and text in
"Mazinger Z", title screen corruption in "NBA Pro Basketball: Bulls vs Blazers" and
"Shin Nihon Pro Wrestling: Chou Senshi in Tokyo Dome", and graphical garbage during startup in "Zen-Nihon Pro Wres".
May break ancient ROM hacks and fan translations.
April 17, 2023:
Include general mode(read, write, read+write) in file open error messages.
April 12, 2023:
Added command-line option "-ovconfig", to load global override settings from the specified file. The global override settings
will override any settings loaded from "mednafen.cfg" or set via command-line arguments, but will be overridden in turn by
more-specific per-module and per-game override configuration files.
April 4, 2023:
Apple2: Added high-level(no seek delay) ProDOS-compatible hard disk drive emulation, usable by loading a raw hard
disk drive image with an "hdv" file extension, and through the "hdd" directive in a MAI file.
March 28, 2023:
Apple2: Added support for Apple IIe and Enhanced IIe, selectable via changing the new "apple2.model" setting, or
by utilizing the new "model" directive in a MAI file.
Apple2: When loading a floppy disk image from a ZIP archive without a MAI file, all other floppy disk images with the same
extension in the same directory in the ZIP archive will now also be loaded automatically. If desired, this feature can be
disabled by setting the new "apple2.multiload" setting to "0".
March 26, 2023:
Apple2: Added setting "apple2.input.kb.ghosting", default value of "1", that can be set to "0" to disable emulation
of spurious ghost keypresses.
March 25, 2023:
Apple2: Increased the maximum value of the "apple2.video.color_smooth" setting to "2", which will enable more-aggressive
composite video color smoothing.
March 6, 2023:
Use AX_APPEND_COMPILE_FLAGS() instead of AX_CFLAGS_GCC_OPTION() in the configure script.
February 24, 2023:
SS: Enable data cache bypass kludge for "Kanzen Chuukei Pro Yakyuu Greatest Nine (Japan)", to fix game hangs.
SS: Enable full cache emulation for "Gal Jan (Japan)", to fix a hang after a game ends.
SS: Enable data cache bypass kludge for "Creature Shock: Special Edition (USA)", "Magic Carpet (Europe)", and
"Manx TT SuperBike (Europe)", to fix hangs/crashes.
SS: Enable full cache emulation for the Europe and Germany releases of "Revolution X", to fix hangs.
February 7, 2023:
SNES-Faust: Implemented a minor SA1 CPU emulation optimization.
January 29, 2023:
Fix potential stack corruption due to insufficiently large array in the Win32-utilizing version of Time::LocalTime().
October 20, 2022:
SNES-Faust: When a write to INIDISP changes the force blank bit from 1->0, only trigger OAM address reset if the write
occurred during the first line of vblank(semantics might not be totally correct); fixes disappearing graphics glitches
in "Wordtris".
September 4, 2022:
SNES-Faust: Fixed distorted graphics in "Marvelous" and "Bishoujo Janshi Suchie-Pai" due to hires color math emulation
inaccuracies.
1.31.0-UNSTABLE:
August 22, 2022:
SNES-Faust: Fixed garbage MSU1 audio on big-endian platforms.
August 15, 2022:
SS: Added "Real Bout Garou Densetsu" to the internal database of games to enable full cache emulation with, to fix startup hang after skipping the BIOS
bootup animation, a regression introduced in 1.26.0-UNSTABLE.
August 11, 2022:
VB: Don't flip framebuffers at the first start of drawing to the framebuffer after power-on, and (always) flip framebuffers when XPRST is triggered, per
tip from blitter.
August 6, 2022:
When running the configure script with --with-external-trio, pkg-config information is now used preferentially if available.
July 28, 2022:
SNES-Faust: Added mouse emulation.
July 25, 2022:
SNES: Fixed #if/#ifdef typo in libco PPC code that reportedly broke libco on PPC when compiling with clang.
July 16, 2022:
MD: Fixed bad values in the PAL V28 VCounter table(though normal resolution interlace VCounter stuff still needs to be fixed). Fixes glitches and
hang in the Europe release of "Donald in Maui Mallard".
Fixed some M68K instruction and exception execution time inaccuracies.
Implemented emulation of M68K instruction Scc's dummy read.
July 4, 2022:
SS: Added basic ST-V support.
SS: In SMPC INTBACK command processing, when starting controller reading after returning SMPC status, wait for Continue/Break *before* waiting for the end
of VBlank, prioritize Continue over Break, and don't allow the wait for end of VBlank to be interrupted by setting the Break bit, per tests on a SS.
June 30, 2022:
Extended support for configuring buttons on virtual ports from port 12 to port 13, using new key combo ALT+SHIFT+Keypad 3, and switching devices
by CTRL+SHIFT+Keypad 3, for future use.
June 25, 2022:
Added std::string variants of MDFN_strazicmp().
Adjusted minimum file extension search priority(e.g. for ".bin" and ".exe" extensions) from -80 to -1000.
June 20, 2022:
Added initial value argument to crc16_ccitt().
June 14, 2022:
Added support for returning CRC32 values in VirtualFS::finfo(), for entries in a ZIP archive.
June 12, 2022:
SS: Trigger mid-frame synchronization when going into vblank if not already triggered by SMPC INTBACK command processing.
March 26, 2022:
SS: When VDP2 per-dot RBG0 coefficient reading is enabled, and a per-dot coefficient read is attempted from a memory region not configured for that purpose
via RDBS, force the coefficient data to 0, instead of using the per-line coefficient data. Fixes graphical glitches in "Radiant Silvergun" when starting
a new game after interrupting the attract mode during the AKA-O battle.
March 23, 2022:
SS: Forcibly disable NBG1-3 only if both RBG0 and RBG1 are enabled via BGON, instead of only checking if RBG1 is enabled; fixes missing/glitchy graphics
in "Houkago Ren'ai Club: Koi no Etude".
March 9, 2022:
SNES-Faust: Fixed broken ExLoROM support.
PCE, PCE-Fast, PC-FX: Update channel 1 frequency cache upon LFO frequency register writes(the way the channel 1 frequency and LFO frequency are combined
is still inaccurate, however, causing frequency update timing granularity to be too high).
February 4, 2022:
SNES-Faust: Fixed PPU window emulation bug that caused graphical glitches with a white circle at a few places in "Final Fantasy 5".
February 2, 2022:
PC-FX: Expanded external backup memory to 128KiB, and changed it so that internal backup memory and external backup memory are saved to/loaded from separate files.
January 22, 2022:
SASPlay: Added support for "Air Walkers".