openMSX Portable Changelog

What's new in openMSX Portable 0.19.1

Sep 3, 2023
  • OpenMSX 19.1—Reflection—is a bug fix release for openMSX 19.0, as we found some rather nasty issues after releasing, mostly that LaserDisc support was broken. No new Catapult will be released, as it has no changes. Please read the release notes for details of the openMSX changes.
  • Thanks for those who gave us the feedback so that we found out about these issues.
  • Please note that this will be the last openMSX release that supports systems without OpenGL 2 or higher.

New in openMSX Portable 0.19.0 (Jul 26, 2023)

  • MSX device support:
  • SCC+: clear RAM when powering off/on
  • WD2793: fixed very rare corner case when writing CRC bytes
  • V9990:
  • fixed corner case in interlaced screen rendering
  • fixed Bx mode cursor drawing
  • R800: fixed behaviour with double prefix, as it acts like double NOP unlikeZ80
  • Carnivore 2: updated initial (out-of-the-box) flash content, with bootmenu 2.52
  • fixed NinjaTap emulation (at the cost of the PSG pin 6/7 behaviour)
  • fixed formatting on Philips VY-0010 disk drives
  • implemented (more) I/O port mirroring for S-1985 and S-3527 based machines for PSG, VDP, PPI, RTC, printer)
  • implemented some weird behaviour of the printer port (implemented unused bit specification and status showing on all ports for some machines)
  • added mapper for RetroHard MultiCart 31 in 1 cartridges
  • added mapper for Al Alamiah 30-in-1 cartridges, thanks to a.o. hashem and tsjakoe
  • added new machines/extensions, thanks to:
  • Peter Hanraets: Sony HB-11 and Sony HB-F701xx
  • alwro07: Polish Spectravideo SVI-738
  • Daniel Padilla: Victor HC-90A (WIP)
  • Takamichi Suzukawa: Nikko PC-70100 (hidden MSX) and Sanyo MPC-10mkII
  • Others: Sunrise IDE with Nextor ROM, Swedish Spectravideo SVI-738, Yamaha SKW-01 Word Processor
  • New or improved emulator features:
  • VDP: fixed assertion failure when cmdtiming=broken
  • many improvements on machine and extension descriptions
  • OSD menu:
  • show machine type and region info in list of machines
  • show current machine in main menu title (as most actions operate on it)
  • show machine and extension information/details whilst selecting them, including whether it will work when selected
  • allow user to add/remove IPS patches for ROMs
  • fixed location of selection bar (was too high)
  • scroll menu items that do not fit horizontally to be able to read them
  • for long paths, only show the last part (instead of clipping after the first part)
  • minor aesthetic tweaks
  • don't show add/remove dialog for extensions if none are present and show the amount inserted in the menu
  • always show menu on top
  • disk manipulator (many thanks to Laurens Holst!)
  • fixed import command
  • fixed newline issue in dir command
  • fixed possibly illegal date/time stamps when importing
  • fixed crash when exporting/listing by proper detection of end-of-directory
  • many other/smaller robustness fixes
  • added FAT16 support for dir, chdir, mkdir, import, export, create and format
  • both DOS1 and DOS2 bootsectors can be generated
  • added support for Nextor partitions
  • added support for Nextor FAT12 formatting
  • skip hidden directories when exporting
  • improved filtering on unsupported file name characters
  • convert MSX file names to UTF-8 both when reading from and writing to the host file system
  • added partition command to partition an existing disk
  • added support for Beer IDE 1.9 partitions
  • cassetteplayer 'getpos' command now also works in recording mode
  • fixed desyncs in replays when using mouse input
  • make it possible for some devices to find out which ROM file they use
  • make it possible to query the VDP type in Tcl
  • fixed calculation of hash for e.g. hard disk images (unfortunately making it slower again)
  • fixed SaI3xScaler
  • fixed parsing of XML entities in e.g. replays, config files, etc. For example fixes replays that include a load command like BLOAD"CAS:",R
  • fixed crash when video system cannot be initialized, show an error instead
  • fixed crash when using the Dooly mapper with a too small ROM image
  • added MIDI input support to ALSA (thanks to Cacodemon345!)
  • callback procs can now be persistenty changed to a custom implementation (ivalid PSG direcitons, invalid PPI mode, di-halt, generic messages)
  • added a way to cancel the type command (with -cancel option)
  • added warnings on reads/writes to writeonly/readly registers (thanks to Pedro de Medeiros)
  • fixed crash when toggling the 'VR' bit in the VDP
  • fixed crash when making screenshot with SDL renderer
  • added debuggables for VDP register and palette latch status (thanks to Pedro de Medeiros)
  • expose VRAM write access status to Tcl (thanks to Pedro de Medeiros)
  • added YM2151 recording to VGM recorder (thanks to sneep)
  • fixed crash when required OpenGL version was not found
  • added small delay to fix automatic typing of loading instruction for games like Elite
  • fixed ar_fr keyboard mapping (ignoring right-to-left characters)
  • Build system, packaging, documentation:
  • fixed compilation on some platforms (missing ctime include)
  • required GNU compiler is now at least g++-10. Android build is totally broken, as its libc++ is missing a lot of things. Will probably be better with NDK 26.
  • update build process for macOS, automatically sign code when Apple Developers ID is available
  • 3rd party updates of SDL (2.26.4), Tcl (8.6.13) and libpng (1.6.39)
  • added patch to add aarch64 support to libtheora 3rdparty build

New in openMSX Portable 0.18.0 (Jun 13, 2022)

  • openMSX 18.0—Lucky Number—is again a release with mostly bug fixes and smaller improvements. And of course a little more blasphemy out there adding support for Sega SG-1000. Together with openMSX an updated version of Catapult, our user-friendly GUI, was released, but there were no functional changes this time.

New in openMSX Portable 0.17.0 (May 24, 2021)

  • MSX device support:
  • V99x8:
  • Fixed timing of VDP settings getting applied. This fixes the screensplit in Psycho World, Hydefos, Space Manbow and the Woei demo, and probably more. Many thanks to Grauw for figuring out the real problem.
  • Fixed that sprites are not disabled instantly, but on the next line
  • Carnivore 2:
  • Updated initial (out-of-the-box) flash content, with bootmenu 2.40
  • Added support for firmware version readout (now hardcoded on 2.30)
  • Added support for SLM_cfg register
  • Added reading from SCC, which also works on real hardware
  • V9990:
  • Fix location of bitmap cursor
  • Fixed OPL4 12-bit sample decoding
  • Fixed stereo settings of Daewoo CPC-400(S)
  • Fixed loading/saving of flash content for ReproCartridgeV1/V2 mappers
  • Fixed bugs in RTC (thanks to KdL and HRA!) regarding leap-year and days-in-the-month
  • Added support for proper mapper registers readout on S1985 systems without mapper and with an external mapper that is larger than 512kB
  • Added support for Zemina 25-in-1 mapper (thanks to BiFi and Hashem)
  • Added new machines, thanks to:
  • Peter Hanraets: Victor HC-7, (partial) Hitachi MB-H2, Sanyo PHC-23J, Sanyo PHC-23 (old), Sanyo PHC-SPC, Sanyo PHC-30N, Sanyo PHC-33 (without built in tape drive features), Sanyo PHC-77, Sony HB-75, Sony HB-F700F, Sony HB-F500 (v1 and v2), AVT DPC-200, Mitsubishi ML-G10, Hitachi MB-H50 (without LEDs), Yamaha SX-100, Philips NMS 8250/19
  • Arjen Zeilemaker and others: Toshiba HX-33 and HX-34 (except for the COPY button and special hardware for that)
  • Danilo Angel: Sanyo MPC-3
  • Others: Sony HB-75D, Sanyo PHC-28P Added new extensions: Popolon Sound Cartridge (with configurable size)
  • New or improved emulator features:
  • By default also map the D-pad of a controller to the MSX joystick directions
  • Fixed artifacts on 3x scaling with 512 wide MSX modes on SDLGL-PP
  • Optimized file pool more, especially when alternative ROMs are to be found
  • More accurate resampling, without rounding errors
  • Fixed possible crash when Tcl callbacks switch the active machine, e.g. using step_back in watchpoints
  • Fixed autorun of tapes/laserdiscs interrupting the replay
  • Fixed OMR replays with ato-run type command
  • Faster switching to/from fullscreen, without changing the videosource
  • Fixed laserdiscplayer eject command still showing the file inserted
  • Make number of columns for showdebuggable configurable
  • Fixed broken color_matrix setting (a.k.a. monitor_type)
  • Fixed drawing of OSD progress info (e.g. while calculating hashes)
  • Improved performance of calculating hashes of HDD images, especially when they're on a network drive
  • On Windows, make openmsx.exe a GUI application to avoid the separate extra text output window
  • Added support for automatic internal conversion of SVI CAS files to WAV
  • Added support for autoruncassettes for SVI CAS files
  • Fixed autoruncassettes on some models like Yamaha AX150
  • OSD menu:
  • - menu button is now easy to disable with new osd_menu_button setting
  • - removed useless frameskip controls
  • - added full speed when loading control
  • - tweaked special options in lists like [eject]
  • - fixed navigating to file pools for disks
  • - show media slot content the same way for all media
  • - represent all media slots as slots, more similar to real hardware. You can now put both ROM cartridges and extensions in cartridge slots via the same menu
  • - show I/O only extensions as such, as they will not take a physical slot in openMSX
  • - allow searching also on _ and - characters in lists
  • - show display names of what is in a media slot
  • - show ROM info of just inserted ROM, not of the most likely running ROM
  • - show also MSX slot number in list of cartridge slots
  • - fixed handling of multiple identical extensions
  • - display a message if a cartridge is removed
  • - display the slot behind extensions in the Extension -> Remove menu
  • - added Monitor type setting to the Video Settings menu
  • - added OSD icon set setting to the Misc Settings menu
  • Build system, packaging, documentation:
  • Build support for 64-bit RISC-V
  • SDLGL-PP renderer requirements are now relaxed to only OpenGL 2.1 again (was 3.3 in openMSX 16.0)
  • Fixed building without SDL joystick support
  • C++ code is based on C++17 and thus requires a compiler supporting it, e.g.g++ 8 or later or Visual Studio 2019 or later
  • - 3rd party updates of Tcl (8.6.10) and libpng (1.6.37)

New in openMSX Portable 0.16.0 (Oct 27, 2020)

  • A major release in which we finally migrated to SDL2 and Tcl 8.6. And we moved
  • To a simpler versioning scheme, stripping off that 0. prefix now :) Other than
  • That, there are loads and loads of improvements. Some often requested ones are
  • Copy/paste functionality and drag and drop support. But we also added a super
  • Accurate YM2413 emulation (originally written by NukeYKT), fixed MIDI-in/out
  • Support on Windows, a new keyboard mode, much improved OSD menu, etc. See below
  • For the details.

New in openMSX Portable 0.15.0 (Dec 10, 2018)

  • Again a release, because we did quite a lot, so it's due! Major new stuff is
  • support for ColecoVision (including Super Game Module and MegaCart mapper),
  • Musical Memory Mapper and Carnivore 2. And we have fixed a lot of long-standing
  • OPL4 emulation issues, thanks to Valley Bell. Furthermore, we overhauled the
  • Android port, but you'll mostly notice the scale factor 2 there. And several
  • other (sometimes very long standing) issues were fixed.
  • Here's the list with all highlights and details:
  • MSX device support:
  • fixed 16 year old bug regarding sprites behaviour as shown in Ash Guine 3
  • fixed National CF-3300: it has a 2DD disk drive, not 1DD
  • fixed V9958 commands in non-bitmap modes
  • allow non-standard cartridge slots to be used as normal cartridge slots,
  • consistently
  • fixed VDP type of National FS-1300
  • fixed a bug in the turboR mapper
  • fixed a bug regarding VIBrato in the YM2413 (Okazaki core)
  • fixed CAPS lock on SVI 318/328
  • fixed Canon V-20 configurations
  • fixed Sanyo MPC-25FD configuration
  • added support for 2 mapper read back bits, used in Panasonic MSX2+ machines
  • added emulation of the SN76489 DCSG sound chip
  • added emulation of the Musical Memory Mapper
  • added emulation of ColecoVision, ColecoVision Super Game Module
  • added emulation of the MegaCart mapper, used in some new homebrew
  • ColecoVision games (mostly MSX ports)
  • added emulation of the Carnivore 2 cartridge
  • improved emulation of OPL4 (wave part) considerably, thanks to Valley Bell
  • added emulation of bizarre I/O port mirroring of Philips Music Module (thanks
  • to Grauw and L. Oliveira for doing the research)
  • implemented Y8910 status register bit 0
  • fixed exact formula for noise generation on AY8910 (PSG)
  • made memory mapper ports readable on MegaFlashROM SCC+ SD, conforming to the
  • latest version of this cartridge
  • added new machines: Sony HB-G900AP (thanks to Louthrax), Eurohard/Radofin
  • Dragon MSX (thanks to MAME), Yamaha CX7/128 and CX7M/128 (thanks to Peter
  • Hanraets), Al Alamiah Sakhr AX230, Sanyo MPC-2, Yamaha CX11 (thanks to
  • Tabajara Labs) and Toshiba HX-32 (thanks to Jorge Janaite Neto)
  • added new extensions: Musical Memory Mapper, Carnivore 2 and SN76489 (on the
  • same I/O port as PlaySoniq)
  • New or improved emulator features:
  • fixed some crashes when using very high Z80 frequencies
  • improved tab-completion to initially hide internal procs, until you specify
  • the namespace
  • many updates to the software database
  • many updates to the VGM recorder script, thanks to Niek. Use 'help vgm_rec'
  • to find out about the new subcommands. Sample RAM content is now logged even
  • when starting recording after the sample kit is loaded, actual data recording
  • starts automatically when data is sent to the chip, the proper OPL4 init data
  • is automatically written to the VGM file, and many more things.
  • changed default machine symlinks to JP machines (for applicable systems)
  • many robustness fixes against bad XML config files
  • added videosource setting to OSD menu, GFX9000 is getting more popular
  • fixed reverse bug in GFX9000
  • performance improvements: several fixes to improve start-up time
  • added support for DCSG in the music keyboard and vu meters script
  • changed events about unplugging to an empty plug-event
  • changed fixed scale factor from 1 to 2 on Android
  • added OSD menu button to open the main menu for Android, as (most?) modern
  • Android devices do not have a menu button anymore
  • OSD menu: fixed issue of getting stuck in an unreadable directory when
  • browsing for a file (e.g. on Android)
  • added scrollbar when showing lists in OSD menu, as a visual cue on the length
  • of a list; the scrollbar cannot be dragged
  • fixed crash in hq/hqlite scalers in interlace modes
  • fixed frame skipping when doing 'debug continue'
  • fixed function keys not working anymore when console is open on macOS
  • exposed tile viewer widget to the console (try "about tile")
  • Build system, packaging, documentation:
  • upgraded C-BIOS to release 0.29a: default to 60Hz generic international
  • config
  • to load older savestates, added all C-BIOS ROMs shipped with openMSX 0.7.0
  • and later for your convenience
  • put several pieces of code under unit-test with the Catch2 framework
  • added svicpm2dmk utility so disk images from the web can be converted to a
  • suitable DMK file for use with the SVI-707 drive with CP/M ROM
  • reworked complete Android port build. Now uses NDK 18b and recent version of
  • commandergenius Android SDL port and all other 3rd party libraries are built
  • by the openMSX build system. Minimum required Android version is now 4.1.
  • removed all hand-made ARM and 32-bit x86 assembly code
  • fixed version information of application on macOS
  • added workaround for FreeType no longer installing its config script
  • enabled retina support on macOS
  • advise people to compile with Xcode 9.4.1 on macOS, not Xcode 10 (see issue
  • 1126)
  • And of course the usual various bug fixes and performance improvements.
  • In "doc/manual/index.html" you can find a set of HTML manuals for openMSX.
  • Make sure you read this if you haven't used openMSX before, but also to learn
  • more about the new and changed features.
  • CPU and graphics performance varies a lot, depending on the openMSX settings
  • and the MSX hardware and software you're emulating. Some things run fine on a
  • 200 MHz machine, others are slow on a 2 GHz machine. For performance tuning
  • tips, see the Setup Guide.
  • openMSX is confirmed to run on the following operating systems: Linux, Windows,
  • macOS, FreeBSD, OpenBSD and NetBSD; on x86, x86-64, PPC, ARM, MIPS and Sparc
  • CPU's. Running on other operating systems (wherever SDL runs) or CPU's should
  • be possible, but may require some modifications to the build system. If you are
  • compiling on a new platform, please share your experiences (see below for
  • contact info), so we can make openMSX more portable.

New in openMSX Portable 0.9.1 (Dec 4, 2012)

  • MSX device support:
  • Accuracy improvements:
  • improved some details on the laserdisc emulation
  • improved timing of the VDP LINE command
  • 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
  • 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:
  • Added build support for DragonFly BSD