OpenMSX to crossplatformowy emulator całej rodziny mikomputerów MSX (dość interesującej konstrukcji, która powstała w wyniku mariażu Microsoftu z japońskim ASCII Corporation) z 1983 roku. Ciekawostką w nowej wersji jest dodanie obsługi SpectraVideo SVI738 - MSX'a, który był sprzedawany na polskim rynku i również czasami kupowany (chociaż osobiście SVI znam tylko dzięki recenzji w Komputerze, to widoczne były czasami ślady w działach kontaktowych magazynów komputerowych ich "szczęśliwych" posiadaczy).
Release Notes for openMSX 19.0 (2023-07-25)
More bug fixes and smaller improvements. Large improvements on the OSD menu and the diskmanipulator. Special thanks to all the contributors of this release who are not in the core team! Keep these pull requests coming!
This release will be the last one that supports systems without OpenGL 2 or higher.
Here's the list with all highlights and details:
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 unlike Z80
- 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 bits 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
and of course the usual various bug fixes and performance improvements.
→ NOWSZY [msx] openMSX v20.0 22/09/2024
openMSX 20.0 (2024-09-22)
This is a major release, in which we introduce the new Graphical User Interface, replacing the OSD menu. A faster and more powerful debugger is now included in openMSX itself. Configuration for MSX joystick/JoyMega has been improved drastically using the new GUI.
As of now, a system with OpenGL 2 support is required to run openMSX.
The GUI
We already had two separate GUI applications:
- openMSX Catapult, a tool to control common functionality of openMSX, in alimited way.
- openMSX Debugger, a great and helpful tool, but never officially released and packaged.
Keeping the GUI separate from the emulation core seemed like a good idea at first. Keeping the state of both applications in sync turned out to be a hard problem, however. Functions that seemed easy, were in fact very hard to implement in this structure.
In this release we integrated the GUI directly in openMSX itself. All information is now guaranteed in sync and updated real-time (which would have been very hard in the old structure).
As this is the first release with the new GUI, not everything will be perfect straight away. Feedback or help to improve things further will be highly appreciated. The Catapult and openMSX Debugger applications remain available for the time being. We will (try to) keep them working, but they won't receive any new development anymore - from us anyway. When keeping them working becomes too much of a burden, we will abandon these applications altogether.
Joystick emulation
Another big change is the joystick emulation. There are now fixed joystick and JoyMega (MegaDrive controller) pluggables (2 for each), which can also be configured via the GUI and also support keyboard inputs, so they also replace the old keyjoystick devices. This gives optimal flexibility for configuring how you want to control MSX controllers.
On top of that, it is now possible to plug and unplug host controllers at run-time.
Rendering
Rendering has also undergone a big change. We removed the "SDL" renderer, as the GUI requires an accelerated backend, for which we use OpenGL 2, which was already required for the (already default and now only) SDLGL-PP renderer. We also removed 1x scaling, so the minimum is now 2x. Video recording and screenshots on the 320x240 resolution are still possible, though. All of this allowed us to simplify the code a lot, making it easier to add new features and maintain the code.
Other important changes
As for any custom key bindings you might have: we renamed some keys to match the SDL library names instead of inventing our own. Old names are still recognized, but be careful if you also run older openMSX versions, as openMSX will use the new names and the old openMSX will not recognize them. Examples are: PRINT ->PrintScreen, META -> GUI.
Special thanks to all the contributors of this release who are not in the core team! Keep these pull requests coming!
Here's the list with all highlights and details:
MSX device support:
- OPL4: fixed detail in YMF262 register mirroring
- turboR PCM:
- fixed sample frequency to 15700Hz (not 15750Hz as found in some
- documentation)
- implement sample buffer (bit 0 on port 0xA5) to improve sound quality
- flash ROMs: added a lot of accuracy to its emulation
- WD2793 and TC8566AF FDC's: fixed several details
- Konami mapper: added missing mirroring
- improvements on I8254 mode 3 used in some RS-232C interfaces
- added support for the concept 16-bit NEO mappers, which may be used by someone in the future. If this doesn't happen, support will be dropped again
- added support for the ASCII16-X mapper which will be used by some upcoming games
- fixed mapper of Mitsubishi ML-TS2 modem software
- added support for Circuit Designer RD dongle (thanks Sandy Pleyte!)
- added new machines/extensions, thanks to:
- Peter Hanraets and Arjen Zeilemaker: Hitachi MPF-310H
- Peter Hanraets: Hitachi MB-H70
- bsittler: USA version of Yamaha CX5M
- Takamichi Suzukawa: National CF-SM003
- Tristan Zondag: German Spectravideo SVI-738
- Oliver Klink: French Canon V-20
- Patrick: Yeno DPC-64
- DamnedAngel: Hitachi MB-H21
- Peter Hanraets, Takamichi Suzukawa, Arjen Zeilemaker and Benoit Delvaux Sony HB-T600
- Others: Philips VU-0040, General Paxon PCT-55, Sanyo MPC-64, OPL3 Cartridge with Moonsound compatible port mapping
New or improved emulator features:
- removed SDL renderer
- added new GUI:
- main menu bar with these menu items:
- Machine
- Select MSX machine
- Firmware switch
- Pause emulator
- Reset MSX
- Power on/off
- Test MSX hardware (much faster than in Catapult)
- main menu bar with these menu items:
- Media
- Cartridge slots with ROM cartridges or extensions
- Disk drives
- Tape deck
- Hard disk
- CD-ROM
- Laserdisc
- Connectors
- joystick ports, printer ports, MIDI ports, etc.
- Save state
- Load/Save state
- Load/Save replay
- Reverse/replay settings
- Tools
- Virtual keyboard
- Copy/paste
- Capture audio/video/screenshot
- Disk Manipulator
- Trainer
- Cheat Finder
- SCC viewer
- Audio channel viewer
- OSD Toys
- Settings
- Video
- Sound
- Speed
- Input
- Configure MSX joysticks
- GUI
- Configure GUI shortcuts
- Misc
- Configure OSD icons, show status bar, ...
- Debugger
- Toolbar
- Disassembly view
- CPU registers
- CPU flags
- Slots
- Stack
- Breakpoints
- Symbol Manager
- Watch expressions
- Bitmap viewer
- Tile viewer
- Sprite viewer
- VDP register viewer
- Palette
- Hex editor
- Help
- Links to manuals
- About
- Reverse bar
- OSD icons
- Status bar
- Console
- Messages
- Drag and drop
- Shortcuts
- Separate pop-out windows
- Windows can be docked on other windows or in a tab widget
- 3 styles: Dark (default), Light, Classic
- configurable font and font size. Default: DejaVu
- OSD menu:
- removed in favour of new GUI
- only warn once for unsupported size in Konami mappers
- suppress warning messages during reversing
- fully configurable MSX controller mapping for joysticks (msxjoystick1/2 pluggables) and JoyMega devices (joymega1/2 pluggables) - see above
- low level debugger (scripting):
- added support for symbol management
- allow to set a breakpoint (or any Tcl callback) when the VDP dot clock direction is written "wrongly"
- added VGM recording for OPL3
- added minimal support for unplugging and replugging host controllers
- added support for RS232Net: connect MSX RS-232C interfaces to the local network
- removed several OSD scripts which have been replaced by the GUI, sometimes almost 1 to 1:
- reverse bar
- tile viewer
- sprite viewer
- palette editor
- VDP register viewer
- tabbed machine view
- display_message
- quit menu
- OSD keyboard
- load_icons
- removed support for savestates with .xml.gz extension
- do not save SRAM to file if unmodified
- added support to run openMSX fully in headless mode
- allow to specify the device name of IDE devices in their config XML file
- base the Boosted MSX2 EN on the Philips NMS 8245 instead of 8250
- fixed crash when multiple debug-devices were used at once
- fixed possible crash on specific combination of watchpoints and replay
- fixed possible crash on no longer supported savestates:
- we try to keep old savestates working. Nevertheless occasionally we do remove stuff. Loading an old savestate which contains such stuff used to crash, now we give a clean error message.
- fixes for load_settings command
Build system, packaging, documentation:
- added support for loongarch
- required GNU compiler is now at least g++-11
- required clang compiler is at least clang++-16
- required Visual Studio Compiler is at least 2022
- on macOS, at least Xcode 15.4 is required
- 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.30.1), SDL2_ttf (2.22.0), GLEW (2.2.0)
- added patch to add aarch64 support to libtheora 3rdparty build
- fixed link error in libvorbis for Xcode 15 on macOS
- avoid pkg-config build error with Clang 15 on macOS
- quite a large update of the manual (mostly to include the new GUI)
→ NOWSZY [msx] openMSX v19.1 30/08/2023
Release Notes for openMSX 19.1 (2023-08-30)
This is a bug fix release which fixes the following issues:
- broken LaserDisc support (OGV file format wasn't recognized)
- (potential) crash when using two V9990 devices in one machine
- saving of callback settings like invalid_psg_directions_callback
- outdated C-BIOS README file
As a bonus two other noteworthy changes were made:
- added Hitachi MPF-310H floppy disk drive + interface extension (thanks to
- Peter Hanraets and Arjen Zeilemaker)
- added proper mirroring of Konami mapper types in areas 0-3FFFH and
- C000H-FFFFH
As this is only a bug fix release, let's just list the changes for 19.0 again as well below.
More bug fixes and smaller improvements. Large improvements on the OSD menu and the diskmanipulator.
Special thanks to all the contributors of this release who are not in the core team! Keep these pull requests coming!
This release will be the last one that supports systems without OpenGL 2 or
higher.
Here's the list with all highlights and details:
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 unlike Z80
- 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 bits 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
→ [msx] openMSX v0.18 13/06/2022
Release Notes for openMSX 18.0 (2022-06-12)
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.
Special thanks to all the contributors of this release who are not in the core
team! Keep these pull requests coming!
Here's the list with all highlights and details:
MSX device support:
- V99x8:
- fixed ugly looking top line when displaying interlacing
- fixed rounding for 'blue' in YJK modes
- fixed bug in VRAM access timing, in cases where VDP and CPU are simultaneously accessing VRAM, like in Maze of Galious Enhanced. This was mostly noticable when replaying a recorded replay.
- V9990:
- fixed possible crash when switching display modes (seen in SymbOS)
- fixed BMXL and BMLX commands in P1 in 4bpp modes
- R800: fixed flag behavior of block I/O instructions (only affect Z and N)
- OPL4:
- fixed aliasing in high pitched notes introduced in 0.15.0
- fixed missing reset of sample position when wave is changed during release
- Apply Z80 CMOS behaviours to all MSX-ENGINE machines (not only turboR)
- Implemented the known differences between OPM (YM2151, as used in Yamaha SFG-01) and OPP (YM2164, as used in Yamaha SFG-05)
- Fixed YM2151/YM2164 timer
- YM2413/OPLL (MSX-Music):
- incorporated bug fixes in NukeYKT OPLL core from the upstream authors
- emulate effects of too fast access to YM2413/OPLL when using the (default) NukeYKT core. Note: this only works when the speed setting is set to 100%.
- Fixed Sony HBI-55 emulation
- Fixed swapped red/blue colors in laserdisc with SDLGL-PP
- Added disk-changed bit in Sony FDC interface, required for HB-F500P for
- instance
- Added support for Talent TDC-600 external floppy disk drive
- Added support for Canon FDC connectionstyle
- More accurate TC8566AF emulation (turboR FDC)
- Implemented proper emulation of Konami EC-701, thanks to Albert Beevendorp and Takamichi Suzukawa
- Added initial support for Sega SG-1000 (and some preparations for SC-3000)
- Carnivore 2:
- updated initial (out-of-the-box) flash content, with bootmenu 2.50
- added 2nd PSG feature with configurable I/O ports (new in 2.50 firmware)
- added user-defined ID and control port I/O (new in 2.50 firmware)
- report firmware as version 2.50
- fixed bug that prevented multiple Carnivore 2 cartridges inserted in a single machine
- Added 2nd PSG on I/O ports 0x10-0x12 for Boosted configs and also added an artificial 2nd PSG extension, for convenience, as alternative to using a MegaFlashROM SCC+ SD or Carnivore 2 cartridge for that feature.
- Use cleaned up disk ROMs in several configurations (without registers)
- Fixed several configs that had wrongly a memory mapper: Sony HB-F1XD, HB-F1XDmk2, Panasonic FS-A1mk2
- added new machines/extensions, thanks to:
- Peter Hanraets: Philips VG 8235/39, Panasonic CF-2700 (UK), Casio MX-15, Mitsubishi ML-G30 model 1, Mitsubishi ML-G30 model 2, Sanyo MPC-25FS, Mitsubishi ML-8000, Daewoo DPC-200 (French), Sony HB-F1XDmk2, Sony HBD-20W, Panasonic FS-PW1
- sergarbes: Sony HB-F700S
- Meits/Peter Hanraets: Philips VG 8235/20, several VG 8235 improvements.
- Ricardo Jurcyk Pinheiro: Yamaha AX200
- NYYRIKKI: Swedish/Finnish localized Spectravideo machines
- friguron: Spanish Philips NMS 8250
- Others: Canon V-30F
New or improved emulator features:
- Huge clean ups and fixes of the unicodemaps (using Rebecca Bettencourt's mapping tables, which were released as part of Unicode) and other keyboard fixes/improvements (e.g. a French/Arabic unicodemap)
- Added MSX character to unicode (and vice versa) mapping, which is used in the get_screen script
- Fixed several bugs in save_msx_screen script (as seen in Yupipati)
- Fixed bug in DirAsDSK which could lead to corruption
- Fixed DirAsDSK on MSX systems that require a disk-change signal to notice changes
- OSD menu:
- fixed tape deck OSD menu when there are spaces in the path
- added menu option to change host to MSX joystick mapping
- Added script that can show where the raster beam is on the screen
- Added script that shows sprite locations and information on the OSD
- Also display hours in the reverse bar
- Fixed crash when using "record_channels cassetteplayer" with resampler=blip
- Don't remove once-breakpoints if condition fails
- Added internal events on breakpoint/watchpoint/condition/probe add/remove (unused so far, but may help debugger development)
- Allow multiple errors/warnings to be displayed on OSD
- Large update of the ROM database
Build system, packaging, documentation:
- C++ code is based on C++20 and thus requires a compiler supporting it, e.g. g++ 9 or later (10 is recommended and will be necessary for the next release) or Visual Studio 2022 or later
- Updated catch2 to 2.13.7
- 3rd party updates of SDL (2.0.20), FreeType (2.11.1), Tcl (8.6.12), libogg (1.3.5) and libvorbis (1.3.7)
- Fixed FreeBSD run time crash at startup
→ [msx] openMSX v0.17 18/05/2021
Release Notes for openMSX 17.0 (2021-05-18)
A release with mostly bug fixes and smaller improvements. Most notable may be the usability improvements of the OSD menu.
Here's the list with all highlights and details:
- 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
- V99x8:
- 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 Hanrae ts: 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:
- better support for macOS < 10.13, using HFS+J DMG format
- target macOS 10.13
- 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)
→ [msx] openMSX v0.16
openMSX 16.0 (2020-08-25)
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.
Special thanks to all the contributors of this release who are not in the core team! Keep these pull requests coming!
Here's the list with all highlights and details:
MSX device support:
- V9990:
- added EOR feature in V9990 bitmap cursor rendering
- fixed crash in overscan modes with deflicker filter
- fixed YJK/YUV rendering (was broken 8 years ago...)
- fixed BMLX command
- fixed drawing of second cursor (in some cases)
- added synchronization for the CE IRQ
- fixed sprite rendering algorithm on P modes
- fixed background rendering in P2
- fixed crash when using V9990 B4 mode with SDL renderer and scale_factor 3
- - V99x8:
- fixed that set adjust has no influence on maximum horizontal interrupt line
- fixed right border on V9958 horizontal scroll
- implemented "Cadari" bit
- fixed sprite collision detection with color 0 sprites
- fixed behaviour of TP bit in sprite mode 1
- - PSG:
- fixed that PSG registers of turboR do not mirror
- fixed behaviour of wrong PSG port configuration (input ports output 0xFF)
- it is now possible to specify whether a machine ignores PSG port directions; this helps to only show the warning on machines that may actually get damaged by these PSG bits
- fixed noise level 0 ("sound6,0")
- fixed behaviour details of ADPCM of MSX-AUDIO
- fixed VDP I/O wait cycles of T9769: only apply to Z80
- fixed initial RAM pattern of ColecoVision to 0x00, which fixes The Heist
- fixed register mirroring of Yamaha SFG modules
- improved loading bad quality WAV cassette images using cubic interpolation
- added very accurate (but also slower) NukeYKT YM2413 core (now also the default)
- added emulation of 256kB hangul font ROM of the Daewoo CPC-400S
- added emulation of mappers Repro Cartridge mapper (v1 and v2) and Matra Compilation (e.g. Konami Compilation 1 and 2)
- fixed keyboard type of CIEL Expert Turbo
- fixed RAM size of Daewoo DPC-180
- added mapper type for RBSC Flash cartridges with KonamiSCC mapper
- added new machines: Yamaha AX500 (thanks Hashem Khalifa), Toshiba HX-20E(thanks Isaac Santaolalla), Yamaha YIS-503, YIS-503II, CX5F, YIS-604/128,Sony HB-G900D (thanks Peter Hanraets), Yamaha AX150 (thanks Pedro Gimeno),Olympia PHC-2 (thanks Patrick)
- added new extensions: Yamaha FD-03 (thanks Arjen) and FD-05 disk drive,Toshiba HX-F101PE disk drive, ROM Hunter Mk2 (thanks BiFi, Takamichi), SonyHBI-J1 (thanks Sandy), JVC MSX MIDI (thanks gflores)
New or improved emulator features:
- F11 now toggles fullscreen mode on PC, to be consistent with otherapplications such as web browsers; mute is now under F12
- fixed crash in ColecoVision when e.g. ALT+SPACE was pressed
- fixed crash when ejecting tape during cassette loading
- fixed MIDI-in/out support on Windows
- fixed possible crashes when using reverse
- added drag and drop support of files on the openMSX window. Supports ROM files, disk images (and folders), cassette images, LaserDisc images, savestates, replays, text files, Tcl scripts.
- added copy/paste functionality: with CTRL+Win+V (Cmd+V on Mac) or the middle mouse button, the clipboard text will be pasted into the MSX and with CTRL+Win+C (Cmd+C on Mac), the current MSX text screen will be copied to the clipboard
- added paste functionality to the console (CTRL+V/Cmd+V on Mac)
- several other small console improvements:
- for macOS: Home/End moves to top/end of history, Cmd+Left/Right moves cursor to start/end of the line
- move cursor per word with Alt+Left/Right
- clear console with Ctrl+L and Cmd+K on macOS
- Alt+BackSpace: delete backwards up to the start of the word
- Alt+D (Alt+Del on macOS): delete util the end of the word
- added new POSITIONAL keyboard mapping mode, which is a much improved version of the KEY mode. Use when CHARACTER mode isn't working properly for you
- added file extensions to OSD menu and command line (e.g..fd1/.fd2/.fd?/.1/.2)
- OSD menu:
- when browsing for a media (ROM, disk, etc.) the menu now starts with the currently selected item. Makes it much easier to set disk B of a game, for instance.
- implemented quick search in lists with alphanumeric keys. Type the name you expect and the cursor will find items starting with the typed characters.
- fixed filtering out symlinked configurations from the machine/extension lists
- go to the top of a list with HOME or CTRL+LEFT. Go to the end by pressing UP after that, as the lists wrap around :)
- now all cartridge slots and disk drives can be controlled from OSD
- show on/off instead of true/false for boolean settings
- added keyboard mapping mode setting to OSD menu
- added setting to control vsync. Default is now enabled
- added new settings 'fastforward' and 'fastforwardspeed' to offer a way to gofast for a while (e.g. with the F9 button, which has now its binding changed to this) without going insanely fast.
- With vsync enabled the maxframeskip will not have to be tweaked anymore to gofaster than the host monitor frame rate. Fast forward just works as you would expect it
- added new OSD icon set, which positions icons as far to the bottom aspossible (set3)
- use soft-fullscreen now, instead of changing display modes. This looks better on almost all modern monitors. As a consequence, a screenshot made on full screen will be larger and will probably show letter boxes at the sides.
- huge updates to the Software DB:
- many fixes
- countless new entries for many ROM files you can find on the web
- when using IPS patches, the patched ROM will be looked up in the Software DB
- support host system function keys up to F24 now
- improved error messages on console commands (e.g. wrong number of arguments,unknown options, wrong subcommands)
- fixed cursor grabbing when going to and coming back from fullscreen
- enable HighDPI support (at least fixes some issues on macOS)
- fixed (removed) influence of user pressing modifier keys (CTRL/SHIFT/...) when text is typed into the MSX (e.g. with type command, auto cassette run,text pasting)
- added -once flag to 'debug set_bp' (and related commands) to trigger once
- several fixes to the unicode map files, so that pasting and CHARACTER keyboard mode works better (especially on Spanish MSX machines)
- added a debug probe on the V99x8 command execution and with that made the vdp_busy script more accurate
- worked around bug/limitation of MSX-BIOS when typing MSX characters 00-1F, which now works reliably
- fixed crash when using a relative path with the -setting command line option
- fixed 'kbd_code_kana_host_key' setting (did (sometimes?) not work anymore)
- use Rebecca Bettencourt's officially proposed Unicode mapping of MSX characterset
- save_msx_screen script now also supports interlaced images
- added '-command' command line option to execute the given command after starting
- disable V99x8 specific debug writes on MSX1 VDP's
- added an optional <exit-code>-parameter to the exit command
- added script and MSX-DOS tool to give openMSX commands from within the emulated MSX (which is not enabled by default)
- when recording to video with throttle off, save time by displaying as few frames as possible on the screen
- now remember window position when the window is recreated (e.g. when changing renderers or coming back from full screen)
- make it easier to handle non-specific input events in Tcl scripts
- WARNING: backwards incompatible change to the 'machine_info device <device>' command. The result for ROM devices is now a dict (instead of a list) with at least one key-value pair, with key "type". For certain devices more key-value pairs are present, that were previously in list elements 1 to 3. Example to get the mapper type of device 'usas':
dict get [machine_info device usas] "mappertype"
And to get the device type (works for any device) of MyCoolDevice:
dict get [machine_info device MyCoolDevice] "type"
Build system, packaging, documentation:
- migrated to SDL2 (2.0.12)
- unfortunately, the Android port is for now broken, as we did not integrate it
- into our build system yet (and that's not easy). The C++ code does compile,
- and now requires NDK20 and API level 18 (Android 4.3)
- updated all other 3rdparty libraries as well, like upgrading to Tcl 8.6
- SDLGL-PP renderer now requires OpenGL 3.3, shaders are now in GLSL 3.30
- support for pkg-config in the build system, e.g. to build FreeType
- C++ code is based on C++17 and thus requires a compiler supporting it, e.g.
- g++ 7 or later or Visual Studio 2019 or later
- fixed endianness on ppc64le
- fixed compilation for big-endian CPUs with g++-9
- migrated build system and all other Python scripts to Python 3, as Python 2
- is now officially dead
- documentation is now in HTML5 instead of XHTML
→ [msx] openMSX Launcher v1.13 22/03/2020
Version 1.13 - released Mar 22, 2020
Enhancements:
- Added find related games
- Added sound quick filter
- Added system field (MSX or ColecoVision) to game properties
- Minor graphical changes to game properties
Version 1.12 - released Nov 3, 2019
Enhancements:
- Added quick filters
- Added tool tip showing current set filters when hovering over the filters box
- Added ability to filter by video source (if set manually in the profile)
- Added screenshot and sound and generation LED transition effects
Bug Fixes:
- Settings screen not closing when clicking OK while MSX News service was disabled
→ [msx] openMSX Launcher v1.11
Version 1.11 - released Aug 10, 2019
Enhancements:
- Added support for input devices and GFX9000 in game profiles
- Changed the look of the search and favorite lists
Version 1.10.6 - released Dec 16, 2018
Enhancements:
- Added number of disks or tapes in multi-disk/multi-tape games in the game properties window
- Added support for harddisk hdd extension
- Added JRE version to the About window
Bug Fixes:
- Disabled the delete button after deleting an entry in the list (after which no element is selected)
- Fixed JRE location via registry for version 9 and later
- Fixed the log filename to read when messages log is rotated
→ [msx] openMSX v0.15
Release Notes for openMSX 0.15.0 (2018-12-08)
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 PeterHanraets), 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)
Release Notes for openMSX 0.14.0 (2017-08-03)
This release is 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. Here's the list with all highlights and details:
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 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
- note the following limitations:
- only WAV images are supported for cassettes. The stereo feature (music/sound on the other channel) is not supported.
- only DMK disk images can be used
- nothing is done to prevent the user to mix MSX and SVI hardware/software. This will not work, of course. As we are not SVI enthusiasts ourselves, we rely on contributions from others for the SVI support.
- 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
New or improved emulator features:
- performance improvements:
- reverse feature
- 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
→ [msx] openMSX Launcher v1.10.5
Version Version 1.10.5 - released Mar 31, 2018
Enhancements:
- Provided an option to allow TCL scripts to override or be added to other profile fields when starting a game. The old behavior was to always override. This is useful when, for example, running games that require GFX9000
- Allow the Windows executable to take an optional parameter that points to the location of the JRE on the machine
- Removed rarely updated MSX sites from the news service and kept only MSX Launchers, MRC and MSX Blog
- Added 'col' extension to the list of acceptable ROM types
Enhancements:
- Added support for disk and tape XML databases (tape XML file is the one supplied by blueMSX). These will provide more info on known disk and tape dumps
- Added service to retrieve MSX news from common MSX websites