openMSX Changelog

What's new in openMSX 0.14.0

Mar 2, 2018
  • Another mix of some new features and additions and a lot of smaller fixes and improvements. This release adds support for Konami Ultimate Collection and basic emulation for the Spectravideo SVI-318 and SVI-328 pre-MSX computers, increases FDC accuracy in such a way that we think all copy protections (captured in a DMK file) should now run in openMSX. Moreover, we now put the SDLGL-PP renderer as the default, so let us know how that works for you. You can of course always set the old default setting for your system if you don't like SDLGL-PP. But then we would really like to know why... We also removed the Windows DirectX sound driver, as it was buggy and caused a lot of complaints. And finally, we added a button in the top left corner to easily invoke the OSD menu.Together with openMSX an updated version of Catapult, our user-friendly GUI, was released. We again made a small amount of improvements: added noise control to Video Control Page, fixed the browse extension for the openMSX executable and some build support improvements.
  • MSX device support:
  • fixed VDP type of Sony HB-501P
  • fixed a bug that caused hangups on some machines when resetting during the logo animation
  • fixed ROM block debuggable for Sunrise IDE
  • improved accuracy of WD2793 FDC and disk drive emulation
  • added accurate M1 cycle emulation
  • added support for ASCII8 mapper with 32kB SRAM
  • added initial support for the ASCII paddle input device (paddle 1 and 2 only)
  • added new machines: Bawareth Perfect MSX1, Al Alamiah AX370 (thanks to alshamaa), and as already mentioned: Spectravideo SVI-318, SVI-328 and a superexpanded SVI-328.
  • added new extensions: Konami Ultimate Collection, ASCII Japanese MSX-Write, ASCII Japanese MSX-Write II and Tecall TM220 MSX-RAMFILE
  • added support for Spectravideo SVI-318 and SVI-328 pre-MSX computers:
  • most SVI support was implemented by Tomas Karlsson. With NYYRIKKI's help we fixed most last details
  • added in Contrib a tool to convert SVI disk images to DMK so they can be used in openMSX
  • added SVI support to several scripts (thanks to NYYRIKKI): cashandler, type_via_keybuf, listing
  • New or improved emulator features:
  • performance improvements: reverse feature and hq resampler
  • fixed issue with remote connections on Mac OS X/FreeBSD
  • changed default sound driver on Windows to SDL, because the DirectX sound driver has been removed
  • fixed creation of new HD images
  • changed the default renderer to SDLGL-PP
  • (probably!) fixed stability of MIDI-in on Windows. Unfortunately we didn't find someone to help us test this properly
  • also improved stability on external connections in general
  • allow to specify initial content for flash ROMs. This way it is possible to use MegaFlashROMSCC+SD like how the actual hardware is also shipped: preflashed.
  • several improvements on the listing command (thanks to NYYRIKKI)
  • added automatic file numbering for record_channels
  • added a tron script (thanks to NYYRIKKI)
  • added script that records to a new AVI file if the framerate changes (thanks to BiFi and FiXato for their initial version)
  • added mapper selection to OSD menu for unknown ROMs
  • automatically pad ROM files if they are not a multiple of the block size, instead of refusing to run that ROM
  • added OSD button to invoke OSD menu in the top left corner
  • added VGM recorder script (by Niek Vlessert) to help you record MSX songs into VGM files, supporting PSG, MSX-MUSIC, MSX-AUDIO, OPL4 and SCC
  • Build system, packaging, documentation:
  • migrated from SDL threads to C++11 threads
  • removed support for Maemo5
  • moved Windows build to Visual Studio 2017
  • upgraded C-BIOS to release 0.28

New in openMSX 0.10.1 (May 2, 2014)

  • MSX device support:
  • fixed bug in YM2413 (FMPAC), that was audible in BPS Tetris
  • added Sharp/Epcom HB-4000 80 column cartridge extension
  • New or improved emulator features:
  • extended save_msx_screen script to take VDP(24) into acount
  • fixed crash on Visual Studio build when using wav files (e.g. in the cassetteplayer)
  • fixed crash on 32-bit Visual Studio build when recording videos without the -doublesize option
  • fixed crash on 32-bit Visual Studio build when using scale_factor 3 and SDL renderer
  • fixed waves shown upside-down in the SCC Viewer OSD widget
  • fixed crash when loading a savestate that has JoyTap plugged in
  • performance improvements: several improvements that result in shorter start up time fixed reverse-performance when using hard disks
  • fixed handling of corrupt hardware configuration XML file
  • fixed crash when MSX with TC8566AF FDC (e.g. turboR) crashed
  • fixed possible hang up when reversing with harddisks
  • fixed Tcl error when changing horizontal stretch in OSD menu
  • fixed displaying of error messages on OSD
  • Mac OS X MIDI support: fixed MIDI output on Mac OS X (was not working for some applications) added support for running status added support for system realtime messages added support for MIDI in
  • fixed issues with on-screen-keyboard on Android 4.4
  • added default keybindings for controllers targeted at gaming
  • added mapping of B-control button to press CTRL or SHIFT in OSD keyboard
  • added fine grained control in which slots carts and extensions will end up
  • added support for single sided disk drives for dir-as-disk
  • added support for hard disk images to the OSD menu
  • added warning if ROM images with larger size than supported on real Konami and Konami SCC mappers are used
  • Build system, packaging, documentation:
  • updated Windows build to Visual Studio 2013
  • made compilation faster by removing more than 250 unnecessary includes
  • even more use of C++11 features
  • upgraded Tcl to 8.5.15
  • added build support for 64-bit ARM
  • added 256x256 pixel openMSX logo image and use it e.g. for Mac OS X icon
  • fixed staticbindist build with more recent clang releases and for Mac OS 10.9 SDK
  • do not link against libraries in /usr/lib anymore on Mac OS X, only link against frameworks. This enables to compile against the default SDK.
  • And of course the usual various bug fixes.

New in openMSX 0.10.0 (Apr 29, 2014)

  • MSX device support:
  • accuracy improvements:
  • improved TMS99X8/TMS9929 color palette
  • improved V9990/GFX9000:
  • VRAM reads go via 1-byte buffer
  • VRAM read/write pointers only get updated when R#2 and R#5 get written
  • fixed initial content of VRAM of GFX9000
  • V9990 P1/P2 sprites that are disabled still count for the 16 sprite limit
  • fixed roll behaviour of layer B in P1 mode
  • turboR TC8566AF has other register memory mapping than other machines
  • use correct Kanji font ROM for Victor HC-95A and removed S1985
  • added cycle accurate VDP command engine timing (can be disabled with the new too_fast_vram_access setting)
  • fixes in YM2413 emulation (FMPAC)
  • added mapper support:
  • MSXtra cartridge (a debugging tool released by PTC which has its own RAM)
  • MultiROM Collection, designed by Manuel Pazos in 2006
  • ASCII8 mapper with 2kB SRAM
  • ASCII16 mapper with 8kB SRAM
  • Super Swangi (a.k.a. Super Altered Beast)
  • added support for MSX touch pad
  • added mu-PACK extension, a MIDI module to upgrade a turboR ST to GT
  • added support for large hard disk images and LaserDisc images (>4GB)
  • added initial RAM patterns for Sony HB-F1XDJ and Sanyo PHC-23J
  • added support for Neos MA-20 Version Up Adapter (MSX1 to MSX2 converter), insert both Neos_MA-20R and Neos_MA-20V extensions for this
  • fixed Toshiba MSX-AUDIO with no sample RAM
  • fixes in joystick, mouse and track ball emulation
  • minor fixes in Y8950 (MSX-AUDIO) and YMF262 (MoonSound)
  • added OPL3Cartridge2_mono and OPL3Cartridge2_stereo extensions
  • added Yamaha SFG-01 extension and replaced the SFG-05 with the SFG-01 in the CX5M machine
  • added an experimental Boosted_MSXturboR with IDE machine config
  • added Casio PV-16, Casio P-7, Casio MX-10, Goldstar FC-80U and Sony HB-F1XV machines and an experimental Zemmix Super V (Daewoo CPC-61) machine config
  • New or improved emulator features:
  • added subdirectory support for dir-as-disk
  • added configurable host to MSX joystick mapping, e.g. useful to bind the crawl command (button A+B) in Metal Gear 2 to a single PC joystick button
  • added support for bash completion (useful for using openMSX on the bash command line)
  • performance improvements:
  • improved start-up performance (on Dingoo openMSX starts over 20% faster)
  • reduced CPU overhead when enabling reverse
  • further optimized CPU emulation
  • sped up CAS loading (use 3744 baud instead of 2760 baud)
  • reduce input latency (poll host events more often and remove delays)
  • speed up reverse in combination with harddisk by using incremental hashing
  • reverse/TAS:
  • added reverse subcommand to truncate the current replay
  • show two decimals in the reverse bar time
  • added setting to prevent the reversebar from fading out and made that the behaviour in TAS mode
  • added bookmarks feature to reverse bar
  • added possibility to customize TAS key bindings in an external script
  • added setting to auto save replays at intervals
  • added command to reset the lag counter
  • added commands to go to frame boundaries and advance/reverse to frame boundaries
  • show values of TAS widgets also in the middle of a frame
  • several improvements on the OSD menu:
  • several improvements on the file browser
  • better error handling
  • only show media menu options that are relevant for the current machine (e.g. do not show disk drives when the machine has none)
  • added support for LaserDisc
  • added a quit menu with confirmation
  • added limitsprites setting
  • added basic mouse/touch support, including:
  • right click to close current menu
  • support for scrollwheel of mouse to scroll in lists
  • only show video options if they actually make sense
  • added option to make current machine default (started when launching openMSX)
  • added resampler setting (for performance tuning)
  • added detailed sound chip control (balance, volume, per channel mute)
  • added possibility to browse to other drives on Windows
  • added possibility to insert a new tape in the cassette player and made it easy to browse to your newly created tapes
  • added short cuts to browse to your file pools (if they contain stuff)
  • added confirmation dialog before overwriting existing save states
  • added feedback when executing actions like inserting disk, saving state
  • remove SSE and MMX assembly routines, only keep rewritten SSE2 routines
  • added interleaving with black frame for monitors with LightBoost support
  • added OSD widget that displays how busy the VDP is
  • enable grab on fullscreen (workaround for Mac issue)
  • added Cmd+I hotkey to press Insert key on Mac
  • Build system, packaging, documentation:
  • created Android port (available via Google Play)
  • migrated to git
  • updated Windows build to Visual Studio 2012 update 3
  • prepare for Visual Studio 2013 (next release will be built with it)
  • now a compiler which supports C++11 is required to compile openMSX, like g++ 4.6, clang 3.0 or Microsoft Visual Studio 2012
  • integrated Dingoo packaging in the build system
  • better support for 64 bit systems (sizes, memory, etc.)
  • added document about details on VDP command engine timing
  • changed machine configurations from specific directories to just an XML file
  • removed the GP2X port
  • Mac support is now limited to Mac OS X 10.7 (so 64-bit only) and higher
  • And of course the usual various bug fixes.

New in openMSX 0.9.1 (Oct 1, 2012)

  • MSX device support:
  • Accuracy improvements:
  • improved some details on the laserdisc emulation
  • improved timing of the VDP LINE command (thanks to NYYRIKKI for the ideas)
  • added Toshiba HX-21, Toshiba HX-22 and Toshiba HX-22I. The latter two have a switchable RS-232C interface (use the new toshiba_rs232c_switch setting)
  • New or improved emulator features:
  • fixed crash with fast resampler and 8192 samples
  • dir-As-Disk:
  • dir-as-disk works properly again and is now a lot more robust
  • improve error reporting when something goes wrong
  • console support/scripts:
  • added script to save current screen to file in MSX loadable format, thanks to NYYRIKKI
  • performance improvements:
  • improved console rendering speed (uses less CPU)
  • improved Tcl integration
  • speed up low level disk emulation
  • optimized rendering of superimposed modes (Video9000, laserdisc)
  • several other performance improvements Build system, packaging, documentation

New in openMSX 0.9.0 (Aug 13, 2012)

  • MSX device support:
  • Bug fixes:
  • overscan: 512x512 demo by NYYRIKKI and Don't Cock It Up by Matra now work
  • cursor order in B-modes of GFX9000
  • several small issues in existing MSX machine configurations
  • broken border rendering on ARM CPU's
  • 2nd drive detection on National machines
  • detail in MSX-AUDIO that prevented proper detection in MSX-AUDIO BIOS 1.3
  • Accuracy improvements:
  • much improved accuracy for Floppy Drive Controllers (mostly WD2793 and
  • alike)
  • added support for delayed motor off for disk drives, as in real machines
  • implemented by the CXD1032 chip
  • disk drive rotation is now correct
  • added support for persistency of S1985 back-up RAM
  • added support for specifying the initial content of RAM and VRAM. Fixing
  • this for the Philips MSX2's shows why Cas Cremers never noticed a bug in
  • Akin, causing white pixels on the screen
  • Added initial support for Video9000:
  • new extension, which gives a new Video9000 videosource
  • the Video9000 can display the GFX9000 output superimposed over the normal
  • VDP. Software which writes to I/O port 0x6F when a Video9000 is connected
  • will make sure the right video signal is displayed. This is now emulated.
  • So, use the video9000 extension instead of the gfx9000 extension to benefit
  • from Video 9000 aware MSX software!
  • added video recording for Video9000 videosource
  • Added support for the FDC connection style of the Victor HC-9x
  • Added support for several floppy drive extensions: Sanyo MFD-001, Mitsubishi
  • ML-30DC/ML-30FD, Talent DPF-550, AVT DPF-550, Philips NMS 1200
  • Added Spanish Mitsubishi ML-G1, Spanish Mitsubishi ML-G3, Japanese Sony HB-10
  • and Talent TPC-310 machines
  • New or improved emulator features:
  • MSX developer features:
  • more mappers now have a romblocks debuggable
  • added several new procs for break point conditions: address_in_slot,
  • watch_in_slot
  • you can now have breakpoints and watchpoints anywhere in a MegaROM
  • previously hardcoded warnings for invalid PSG directions and di;halt
  • detection are now a Tcl callback, which means you can e.g. let openMSX go
  • into a break point when they occur, or disable them altogether
  • save_debuggable can now also save part of a debuggable
  • Console support/scripts:
  • added type command that can type from file and a special version with
  • offset to type passwords)
  • added syntax highlighting for Tcl in the console
  • show errors in the console in red
  • implemented tab-completion for nested Tcl commands
  • OSD menu improvements:
  • list of machines and extensions are now sorted alphabetically
  • file lists are now filtered on extension case insensitively
  • Performance improvements:
  • OSD
  • start-up time
  • several scripts (reverse bar a.o.)
  • Miscellaneous:
  • guess_title script is now a lot better and is used to generate file names
  • if no file name was given (e.g. to screenshots)
  • reverse bar has now even clearer colors to reflect recording (red) and
  • replaying state
  • don't print an error when an initial CMOS/SRAM file isn't found
  • enable auto-run for cassettes by default
  • show an error message when using harddisk images larger than 2GB, because
  • that is currently not properly supported
  • show progress on calculating SHA1 sum of large harddisk images
  • additional files for ROMs (like samples for Playball) can now also be in
  • the same directory as the ROM file

New in openMSX 0.8.2 (Jan 26, 2012)

  • (regression) sprite colors in screen 7/8 (visible in Ikari for instance)
  • VDP emulation bug, which was visible in Psycho World's 3x3 power up matrix
  • Y8950 (MSX-AUDIO) when using NOP Real Motion
  • MoonSound FM 4op mode
  • crash in YM2151 (in Yamaha CX5M)
  • sample playing in Nettou Yakyuu
  • several small issues in existing MSX machine configurations
  • Accuracy improvements:
  • MSX-MUSIC (YM2413 (Okazaki)): implemented SETTLE (or DUMP) phase
  • MoonSound (YMF278): fixed x-tal frequency and some other details
  • GFX9000: added basic support for set adjust registers
  • Added support for several laserdisc features to be able to run the Lascommate
  • Junior High School Mathematics LD's, including a dummy Lascom Kanji cartridge
  • implementation
  • Added emulation of the following mapper types:
  • Baby Dinosaur Dooly
  • Manbow 2 2nd release
  • Best of Hamaraja Night
  • Added emulation of memory based I/O for MSX RS-232C, making emulation of Sony
  • HBI-232 possible
  • Added Sony HB-F9S and Sony HB-G900P machine
  • Added support for JoyMega: Mega Drive joy pad with 6 buttons
  • New or improved emulator features:
  • Video output:
  • Faster laserdisc rendering
  • Added horizontal stretch for SDL renderer (useful for Dingoo for instance).
  • As horizontal stretching is enabled by default, the CPU usage of openMSX
  • when using the SDL renderer will now be higher than before. Set
  • horizontal_stretch to 320 to disable it and gain some performance (but have
  • a less accurate aspect ratio of the screen).
  • Sound generation:
  • Sync sound to EmuTime (greatly improves sample playback in e.g. Real Motion
  • and TRAX Player
  • Added new sound driver based on libao
  • Fixed sound quality of blip resampler
  • MSX developer features:
  • Added vdpcmdinprogress_callback setting, which can be used to trigger a
  • script when a write to the VDP command engine registers is detected while
  • there is still a VDP command in progress.
  • Fixed memory usage issue when using step_back (e.g. via debugger)
  • Greatly improved performance for step_back
  • Fixed bug with watchpoints that triggered too late sometimes
  • Command line options/support:
  • Added recognition of .tcl extension as extra start up scripts
  • Fixed recognition of OMR/OMS files which were re-gzipped
  • Added command line option -replay to load and view a replay and also
  • support dropping replays (OMR files) on openMSX to view them
  • Added command line option -savestate to load a savestate and also support
  • dropping savestates (OMS files) on openMSX to view them
  • OSD menu improvements (mostly useful for hand held users):
  • added connector submenu
  • added support for running tapes
  • added support for horizontal stretch setting
  • Joystick support:
  • Allow joystick axis motion events to be bound, as the manual promises
  • Made real joystick support a bit more flexible: read all axes
  • Channel recorder:
  • Fixed record_channels command to record to the soundlogs directory
  • Added option to record all channels of all sound chips with record_channels
  • Platform specific improvements:
  • Fix Caps lock behaviour on Mac OS X
  • Add support for MIDI output to a virtual endpoint for Mac OS X
  • Comfortable machine configurations:
  • Added new fantasy machine: Boosted MSX2+ JP, based on Panasonic FS-A1WSX
  • Added basic compiler to Boosted MSX2 EN
  • Miscellaneous:
  • Updated all scripts to make full use of Tcl 8.5 (and clean them up in the
  • process) to improve performance
  • Support in the hardware config XML format for using a single ROM image (i.e.
  • a physical (EP)ROM dump) which is used by several devices
  • Make PgUp/PgDn reverse step depend on the speed setting
  • Reverse bar now indicates recording (red) and replaying state
  • The 'about' console command can now also be used to find settings
  • Fixed 64k ROM mapper detection

New in openMSX 0.8.1 (Apr 20, 2011)

  • New or improved emulator features:
  • Quite complete support for TAS (see http://www.tasvideos.org/)
  • TAS mode with many TAS widgets activated automatically extended tools: keyboard view per frame, frame reverse/advance, robust frame counter, save slot mechanism, RAM watch, etc.
  • Updates on reverse (and related features):
  • enabled by default now (except on Dingoo)
  • changed (default) extensions of replays and savestates to OMR and OMS respectively
  • added a view only mode to the reverse feature (watch replays without interrupting them)
  • replays now usually contain multiple snapshots, so you can quickly jump around in a just loaded replay (e.g. to the end!)
  • huge performance improvements when loading replays/savestates
  • added filepools to put your software files in; when loading a replay with a file which is not available, openMSX will scan the filepools: default location is share/software
  • added hover with time indicator on reverse bar
  • fixed bug when using DirAsDisk in combination with reverse
  • added step_back function: while debugging step back one instruction
  • Added info topic to query VDP timing information
  • Fixed saving of replays, screenshots, etc., when the directory wasn't available yet
  • Fixed bug in per-soundchip-channel audio recording
  • Fixed auto stereo recording for mbstereo-like configurations (was done in mono)
  • OSD:
  • Show warning/error messages that were previously only shown on standard-output in an OSD text box
  • Added gradients for rectangles to make the OSD look more polished
  • Added border property to OSD rectangle
  • Added script to find cases of too fast VDP access (of which the consequences are not emulated)
  • Added setting to disable sprites and option to make screenshot without sprites (especially useful for map makers!)
  • Added script to record movies in multiple files, especially useful for YouTube (record_chunks)
  • Replaced automatic printing of ROM info (from the software database) with a command to get the info on demand (rom_info)
  • Automatically plug in real joysticks into the MSX
  • Several performance improvements to several toys scripts
  • MSX device support:
  • Fixed accuracy of mouse emulation
  • Fixed bug in sprite collision detection (sprites can't collide in the border)
  • Better support for keyboard of Brazilian MSX machines
  • Don't emulate Yes/No keys on machines that don't have them
  • Accuracy improvements:
  • (minor) fixes in MSX-AUDIO, YM2413 (Okazaki) and R800 emulation
  • Added emulation of the Mega Flash ROM SCC+ and ASCII Japanese MSX-DOS2
  • Added emulation of seek delay, head-load and rotational delay on TC8566AF based disk drives
  • Added Sony HB-F5 and CIEL Expert Turbo machine
  • Build system, packaging, documentation:
  • Updates of libraries used in the static builds
  • Windows binary built with Visual Studio 2010
  • Basic (experimental) support for cross compilation of Windows 32 bit binaries from Linux (using MinGW)
  • Updated C-BIOS to 0.25, with support for various localized machines
  • And of course the usual various bug fixes.

New in openMSX 0.8.0 (Jun 7, 2010)

  • Catapult is now a stand-alone binary, statically linked with wxWidgets 2.8.9
  • and libxml2 2.7.3.
  • Unicode is now fully supported (no more problems with localized versions of
  • Windows e.g.). Note: this means Catapult requires Windows 2000 or higher as
  • of this release.

New in openMSX 0.7.2 (Jun 30, 2009)

  • This is a quick fix for the 0.7.1 release.
  • Due to a small bug in a Tcl script, openMSX wasn't able to load savestates with paths that contain spaces, which is the most common case on standard Windows installations. 0.7.2 fixes that.

New in openMSX 0.7.0 (Jan 8, 2009)

  • This release contains several exciting new features, clearing some long standing feature requests! The most important one of all is that we have implemented save states! It took us a while to think of a way to implement it without having some disadvantages you could have with some other emulators. The biggest one is backwards compatibility. Our system is designed in such way that it is able to cope with older save states in future releases. So, you don't have to be afraid to upgrade to a new version of openMSX: your save states will remain usable!
  • Another big feature is the heavily improved keyboard support. In previous releases it was always a bit of an annoyance to work with emulated MSX machines which have a different keyboard layout than your host computer. E.g. using an MSX turboR, which has a Japanese keyboard, on a PC with a US-English keyboard was very annoying, as the characters that appear on the screen do not match the ones you typed on your PC keyboard. This problem has now been solved and you can use any combination of host computer keyboard and emulated MSX machine, without getting the wrong characters on the MSX screen.
  • Full transparent dir-as-disk support has also been a long standing feature request. Well, it's here! Dir-as-disk now behaves as you might expect: any change on either the host or the MSX side is reflected on the other side immediately. This could help a lot for cross-platform development.