Release Notes for openMSX 22.0 (2026-xx-xx) =========================================== Thanks to many contributors (who make well use of modern AI facilities), we have a very long list of changes again. Major features are found in the debugger GUI, with a new Raster Beam Viewer and Tracer functionality. We also have the Quick Setup Editor, for a one-window access to all major setup settings. Regarding emulation, we now have plotter emulation and many VDP accuracy improvements. There's now also a synthetic TCP/IP UNAPI device to be able to try out network programs in openMSX. And many, many more things... Special thanks to all the contributors of this release who are not in the core team! Keep those pull requests coming! Here's the list with all highlights and details: MSX device support: - fixed Yamanooto SCC register visibility - add emulation of the Sony PRN-C41 (like) plotters, including a viewer in the GUI - fixed VDP I/O delay to 1 cycle for T9769 engines - fixed details on the turboR's FDC emulation, so that now FastCopy 3.0 properly detects it, including the correct number of drives - added Korean 128-in-1 mapper type - added Namco mapper type (A13-not-connected 16kB cartridges) - added ASCII8-R (reversed) mapper type - fixed details of MSX kanji ROM emulation, adding specific behaviour in many machines and devices - assume that no PSG implementation mirrors its registers (no evidence found they do) - added new machines/extensions, thanks to: - bsittler: Yamaha YIS-805/256 - VDP: - added implementation of the TEXT2-mode per line blink (bit 2 in VDP R#2) - improved timing correctness of the YMMM and LMMM command - several other VDP command timing improvements details (including start delays) - improved VDP-VRAM timing even further - fixed display line counter latch (fixes Sex Bomb Bunny shaking screen) - fixed border color changes at the wrong position (last part of Utopia) - updated machine/extension configurations of: - Yamaha YIS-503 - Yamaha FD-03, Sony HB-701FD: add missing singlesided tag New or improved emulator features: - GUI: - added Quick Setup Editor window, that allows you to quickly create or change your setup - added a "color blind" theme - added a pitch estimate column to the audio viewer (hidden by default) - sort mappert types in the GUI alphabetically - added "recent machines" to the Machine menu - added slot map viewer - added I/O map viewer - in the Cartridge Slot window: add a link to Generation MSX where known - debugger (including its GUI): - allow to double-click a symbol in the Symbol Manager to jump to it in the disassembly view - allow to double-click an instruction with address to jump to that address in the disassembly view - fixed unstable layout of bitmap viewer when screenmodes change (split) - allow to specify a segment number for symbol files - tile viewer: allow override of the color table - added Raster Beam Viewer, which shows the currently in-progress raster based screen, with coordinates, CRT fade, and position of the beam - with command engine busy overlay - added debug Tracer (console and GUI), with timeline plotting of events in Trace Viewer - integration of Raster Beam Viewer and Tracer: show trace events on raster - rewrote `vdpcmdtrace` in Tcl now using the Raster Beam Viewer - added `cpu_trace` Tcl command which sets up traces that can be viewed in the Trace Viewer - bitmap viewer: show y=[0..1023] again - sprite viewer: fix sprite attributes section height when zoomed - added a profiler that uses the new Trace Viewer, see the `symboltracer` Tcl command - added option to export the ASCII view of the generic debuggable editor/viewer - instead of showing corrupted video, a problem with shaders will now be a fatal error - fixed issues with non-ASCII paths by forcing UTF-8 paths on Windows - improved support for .ttc font files for the GUI - fixed bug where full-width characters could not be displayed correctly in the console input line - added pop-up menus for tab completion, making it easier to complete items like paths with non-ASCII characters - fixed bug with loading savestates with devices containing spaces in the name - fixed bug in CPU loadstate code (showed on Spectravideo SVI-328 for instance) - release cursor grab when openMSX is paused - fixed illegal slot specification as was in the CIEL Expert-Turbo machine for years - fixed crash in HQ resampler when running at very low speeds - improved UI responsiveness when paused/breaked - fixed the pause_on_lost_focus setting which broke since openMSX 20.0 - fixed crash when having built against sdl2-compat - added UnapiNet: an MSX-UNAPI TCP/IP bridge device. A synthetic device on I/O ports 0x28/0x29 that implements the MSX-UNAPI TCP/IP UNAPI functions (DNS, TCP, UDP, ICMP echo) by bridging to the host's BSD sockets. Needs a specific UNAPINET.ROM driver on the MSX-side - keyboard fixes: - fixed the kbd_numkeypad_enter_key setting and add POSITIONAL mode support - fixed wrong auto-toggle CODE/KANA lock when the key is manually pressed - ignore the Grave key event for Japanese host keyboard layouts to avoid hanging keys - fixed mouse speed scaling, depending on the host display size (including HighDPI) and MSX screen resolution - allow SD cards and SCSI disks also to be manipulated by disk manipulator - fixed several bugs in the cashandler script (to use CAS files directly) - added 'rs232-raw' pluggable that connects to host RS-232C port - added emulation of the MSXPi device - restored functionality to query which host joysticks are connected from Tcl - fixed saving a setup with a '/' in the (machine) name, like "Philips VG 8235/39" and similar issues with saving a screenshot/savestate/replay - added a Maze of Galious password extractor, to easily save passwords in text files and type them in later with type_from_file - dir-as-disk: - added support for 40-track 180kB disk drives (e.g. Talent/AVT DPF-550) - fixed writing files back to host filesystem on no-op data-sector writes - huge updates on the ROM database, including a simplified file format and support for Sega SG-1000 and ColecoVision ROMs Build system, packaging, documentation: - required GNU compiler is now at least g++-13 - at least macOS 13.3 is required to run openMSX - Android build is totally broken, and will require a lot of effort and help to get back up, which is not planned by us. - 3rd party updates of SDL (2.32.10), Dear ImGui (1.92.9WIP) - macOS builds are now "notarized" - several fixes on the manual, e.g. debug subcommands and stale examples ...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 to 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 CPUs. Running on other operating systems (wherever SDL and OpenGL 2 runs) or CPUs 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. openMSX Home Page: https://openmsx.org/ Project page on GitHub: https://github.com/openMSX Contact options: - Talk to us on #openmsx on libera.chat or via Discord using the invite https://discord.gg/JV56gzh2qG. - Use the forum on https://www.msx.org/forum/semi-msx-talk/openmsx - File a ticket on https://github.com/openMSX/openMSX/issues Thanks to all contributors for their feedback, support, bug reports, testing, coding and other help! Have fun with your emulated MSX! the openMSX developers