Introduction to Mednafen

Mednafen is a portable, utilizing OpenGL and SDL, argument(command-line)-driven multi-system emulator. Mednafen has the ability to remap hotkey functions and virtual system inputs to a keyboard, a joystick, or both simultaneously. Save states are supported, as is real-time game rewinding. Screen snapshots may be taken, in the PNG file format, at the press of a button. Mednafen can record audiovisual movies in the QuickTime file format, with several different lossless codecs supported.

The following systems are supported(refer to the emulation module documentation for more details):

Mednafen is distributed under the terms of the GNU GPLv2.

Due to the threaded model of emulation used in Mednafen, and limitations of SDL, a joystick is preferred over a keyboard to play games, as the joystick will have slightly less latency, although the latency differences may not be perceptible to most people.


Mednafen 1.22.2April 24, 2019 - 00:31 PDT

Notable changes since 1.22.1:
  • Apple2: Added basic support for WOZ 2.0 floppy disk images.
  • Lynx: Fixed a potential security vulnerability.
  • PCE: Fixed an an old regression(from around 0.9.0) that degraded DDA sample playback when playing a HES file.
  • PS1: Fixed a regression introduced in 1.22.0-UNSTABLE that broke a few PS1 games(e.g. "SimCity 2000" and "Rise 2").
  • SS: Added the European release of "Theme Park" to the internal database of games to use the data cache read bypass kludge with, to fix infinite boredom during the intro FMV.

SHA-256: fad433ac694696d69ea38f6f4be1d0a6c1aa3609ec7f46ce75412be2f2df2f95
SHA-256: d0674f6e498f612c6ceb7dff95dfa3b5a8eda051a8e98a2843da4b91898f6895
SHA-256: 97229dad50e05483f85ecd9f3dc718c3d22aa3040a525d00231828197bb47090

Mednafen 1.22.1January 28, 2019 - 09:22 PST

Minor bugfix release.


SHA-256: f5b502e9f2f615c8b69fa1e151da20ab387377c72748cd8e19deb75a432ecfd2
SHA-256: 78b20b5b165476a5481cea81e13ae43e1dd387d53bbefeee92128addb67af637
SHA-256: 25184915f52bbbcad29ae4b98ce63de6e2a2847632900cdce37058845a30e8ad

Mednafen 1.22.0-UNSTABLEDecember 22, 2018 - 07:14 PST

Oregon Trail

Notable changes since 1.21.3:
  • Added basic Apple II/II+ emulation(no IIe/IIc, sound card, mouse, nor tape support now, maybe later).
  • gzip-compressed ROM/disk image files are now recognized by file extension instead of header magic.
  • Dropped support for "game set" hashes used to change the naming of save state and save game files. The feature was mostly broken by changes made years ago, and is redundant now with M3U support. Save game files for multi-disc PC-FX games created in previous versions of Mednafen will need to be renamed to be seen by this and newer versions of Mednafen. Other files, including save states, should generally be unaffected, unless the user has changed filesys.fname_* settings to use the %F specifier where they wouldn't by default.
  • Added "blend" and "blend_rg" deinterlacers.
  • PCE: Fixed ADPCM voice playback issues in "Downtown Nekketsu Monogatari" when text speed is set to fast.
  • PS1: Fixed a startup crash that could occur with a malformed or corrupted SYSTEM.CNF file.
  • PS1: Fixed missing music in "Grind Session", "Pitball", and "Roswell Conspiracies - Aliens, Myths & Legends".
  • PS1: Fixed hangs in "Army Men - Air Attack (Europe)", "Ballerburg - Castle Chaos", "Colony Wars - Vengeance (Europe)", "Grind Session", "Goryuujin Electro", "Simple 1500 Series Vol. 057 - The Maze", and "Transformers - Beast Wars Transmetals".
  • PS1: Fixed broken disc switching in "Arc the Lad III".
  • SNES-Faust: Fixed missing sprites in the water stage of "Mario's Time Machine".
  • SS: Added setting "ss.cart.auto_default".
  • SS: Added "Fighting Vipers" to the internal database of games to use the data cache read bypass kludge with, to fix the problem of the computer-controlled opponent sometimes losing the will to not be a statue.
  • VB: Added the ability to toggle the state of the low battery sensor bit; configure the device on virtual input port 2(e.g. ALT+SHIFT+2) to assign a key/button to this function.


SHA-256: 0dfd49ec534db1841346a8a2c1b483df6123d7178825374a2ce01ca27315a9d0
SHA-256: 8dfb80c9a5bfcd49699743a6c1e62df7031cf7f7bca78887d10333f9c2049d9e
SHA-256: bdc84a48f6f7516b1f72abe9fcc7ae5ad4ad972c96fce3529637431622857c25

Mednafen 1.21.3April 29, 2018 - 15:27 PDT

This release fixes a regression introduced in 1.21.0-UNSTABLE that forced the user to manually create ~/.mednafen on UN*X systems if the directory didn't already exist, fixes broken 2xSaI-family scaler support(also a 1.21.0-UNSTABLE regression), and fixes problems with a handful of Sega Saturn games.


SHA-256: 2e761e8834b098b7f1ab35dccaa6d2be715ee9106cf40af4919f6ca4b99ee3c6
SHA-256: 5b6e7b017c0b0741f375d0803f54dcb417d9e4d926864f2b039c694aac10a362
SHA-256: 6fc62a7a3cb42a3bef1de9856aa2bf00701e4b64fcdc2b6c76e7135a127840d4

Mednafen 1.21.2April 3, 2018 - 16:46 PDT

This minor release updates Tremor to address a security vulnerability with Vorbis-encoded CD image audio tracks, and fixes graphical glitches in the Sega Saturn game "Shining Force III - Scenario 2".


SHA-256: 528b7ad6976182c451f7e7852f79fcc8e81e29005823f9c9bed816914bfd6da2
SHA-256: e4a1765fe9ee994fe3041772b698e4a26e3021e17ce981fc6179e9de61ecbc19
SHA-256: c291a2cbb9c3e3b78ebe58d9b8efb09c09abb33e47f52855784dbeea644bbfd8

Mednafen 1.21.1March 13, 2018 - 01:41 PDT

Minor bugfix release.


SHA-256: 848136e4b98d5a949d7691f6596564b20d5720e7d766e93deedc7832bbee2a40
SHA-256: b9db8d4d6bd2f3e9eafc55d2db26e8d00d1ccf43c51ff373bc68a742e930dc53
SHA-256: a4a7f9ec0e0c965e4c7e04bdf1965fb286be3c9fcae4df01980feaab4bec468b

Mednafen 1.21.0-UNSTABLEFebruary 20, 2018 - 21:01 PST

Notable changes since 0.9.48:
  • 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.


SHA-256: ee7c633641206c336d72b6f92b2db2d9088604a12fc509342b1c312608d34213
SHA-256: 3458c0c0f3ab54760e08814340dbef37f4e9c32684bbc73e1395e9f517bea1ba
SHA-256: 9f53d534ae67d3834cd1ca9cd92c866b63d7a55fed9585a8c57089f2c7a3235c

Mednafen 0.9.48September 18, 2017 - 18:05 PDT

Notable changes since 0.9.47:
  • SS: Fixed graphics corruption in the intro of "Batman Forever".
  • SS: Fixed hang in "Jung Rhythm" when trying to retry a failed stage.
  • SS: Fixed crash in "Tenchi Muyou! Ryououki Gokuraku" when it tries to play an opening movie.
  • SS: Fixed messed-up colors in "Discworld 2".
  • SS: Fixed hang when trying to resume a suspended game in "Tactics Ogre".
  • SS: Fixed the periodic loud popping noise during FMV playback in "Grandia"(an emulation bugfix; sound may still pop/click if you have a slower CPU of course).
  • SS: Added a hack/kludge to allow bypassing of data cache on reads(such that the timing benefits of partial cache emulation are preserved, without cache coherency problems that partial cache emulation sometimes leads to with poorly programmed games), and added an internal database to enable it on select games; fixes graphical glitches and/or hangs in "Area 51 (USA and Europe)", "Clockwork Knight 2 (USA)", "DeJig - Lassen Art Collection", "Father Christmas", "Golden Axe The Duel", "Sega Saturn Choice Cuts", "Spot Goes to Hollywood (USA and Japan)", "Street Fighter Zero", "Street Fighter Zero 3", "Super Puzzle Fighter II Turbo", and "Virtual Volleyball".
  • SS: Full cache emulation is now enabled for "Whizz"(by using an internal database), to resolve(or at least reduce) quasi-random hanging issues during startup.


SHA-256: d3cc0c838f496511946d6ea18fda5965d2b71577c610acc811835cc87d152102
SHA-256: c3ccb78325bae8cbbf7d9101317a61e364c4dcd21c59004225a7307866599fa5
SHA-256: ed40023c66bc545a724f4190e6e18fb54bb97cc4249a445120f2b70a825f43e7

Mednafen 0.9.47August 26, 2017 - 02:36 PDT

Notable changes since 0.9.46:
  • SS: Added save state support(read the first section of the Saturn module's documentation before loading save states from external sources).
  • SS: Fixed startup hangs in "Device Reign", "Real Sound", "Resident Evil", "SD Gundam G Century S", "Super Tempo", "Tennis Arena", "Tilk", "Yuukyuu Gensoukyoku", "Yuukyuu Gensoukyoku 2nd Album", "Yuukyuu Gensoukyoku ensemble", "Yuukyuu Gensoukyoku ensemble 2", "Yuukyuu no Kobako Official Collection", and "Zero4 Champ".


SHA-256: 51137e60aeab070af8aba8ddc305834d2cf233be8ce82112cf38e93fe5329f3a
SHA-256: 68686760456feeb615a2279474b9c78fcd5927f91de285ba7b545b23d9900836
SHA-256: 6ad4bbf1b53508c4d1caee392516501cf5e4ce8e6b2053633f00a610e632c4af

Mednafen 0.9.46August 10, 2017 - 22:50 PDT

A small update, primarily to fix a few bugs.

-- 0.9.46: --

August 10, 2017:
	Compile with explicit -fstrict-aliasing, for distributions/OSes that have configured gcc to
	not enable strict aliasing at -O2(and possibly other levels).

	Fixed a bug that could, under certain conditions, cause emulator OSD elements to not be updated in the time
	after entering frame advance mode and before a frame advance.

August 7, 2017:
	Use a sorted std::vector instead of std::multimap to store current settings, to reduce memory usage.

August 6, 2017:
	SS: Added ss.input.port*.3dpad.mode.defpos settings to control the default position of the digital/analog mode switch.

August 5, 2017:
	Allow addresses above FFFF to be entered as the logical watch address in the debugger.

August 4, 2017:
	SS: Added kludge to fix layer offset problem in "Daytona USA CCE".

	NES: The functionality controlled by setting "nes.fnscan" now recognizes "(F)" and "(France)" as PAL.

	NES: Added support for iNES mapper 40.

July 11, 2017:
	Utilize _byteswap_*() functions in endian.h when compiling with Microsoft's C++ compiler.

June 22, 2017:
	Fixed a couple of minor issues(log header formatting, and skipped logging of first instruction in step mode) with the debugger's
	undocumented trace log feature.

	NES: Corrected the period of PAL noise channel frequency setting 0x1.

June 21, 2017:
	NES: Fixed a few square wave sound channel emulation bugs(wrong phase for duty setting 3, and failing to clock the period counter
	when the channel is silenced).

SHA-256: 674faf42bdb0ad5649aea65da266b0be3428995caaa7be183fc6d3ed7732467a
SHA-256: e869db3dac14d020471055d81bc8d21d6cf63cf3d9806ea14879cf9eff8eab4d
SHA-256: 282ef3d6b383978976bedb991b9df57b846713028fcca48c2e1be966a66be41e

Page design and original content copyright © 2005-2017 Mednafen Team. The Mednafen Beetle is copyright © 2005 Camille Young. Nintendo, Nintendo Entertainment System, GameBoy, GameBoy Color, and GameBoy Advance are registered trademarks of Nintendo. Mednafen is not an official Nintendo product, and Mednafen is in no way affiliated with the Nintendo corporation.