Features
Here are some highlights of the features of the latest release (20.0).
Legend
- New! New feature since last release
- Unique! Unique feature for an MSX emulator
- 1st! openMSX was the first MSX emulator to have this feature and we're proud of it
- Cool! Particularly cool feature
General
- New! Built in graphical user interface, that works the same for all supported operating systems
- Unique! Command interface via pipes or a (UNIX domain) socket: control openMSX with any external application
- Unique! Tcl scripting: enhance openMSX with powerful scripts. There are dozens of scripts included with various purposes: VGM recorder, audio channel recorder, VU-meters, FPS display, game HUDs/overlays, info panel, music keyboard display of sound being played, TAS tools, debugging tools, session management, etc. etc.
- Unique! System ROMs are specified and found with their SHA1 sums or file names as a fall back
- 1st! Timestamped on-demand sync timing: maximum accuracy at the best performance
- Unique! Cycle accurate VDP command engine timing
- Unique! Accurate VDP VRAM access timing: like on real hardware, accessing the VDP too fast will result in VRAM corruption. Includes a Tcl callback to debug your programs on this phenomenon
- Emulation of most differences between the different MSX1 VDP's
- 1st! Pixel accurate rendering: horizontal screen splits are rendered (almost) correctly (Unknown Reality, Verti-demo)
- Cool! On-Screen (but detachable) display of LEDs for e.g. power, FDD, capsLock and Rensha Turbo and icons showing openMSX state.
- Cool! Programmable On-Screen-Display, enabling graphics shown by auxiliary scripts.
- Unique! Fully automatic host to MSX keyboard mapping. You can type on any machine with any keyboard layout with any PC keyboard layout. Very easy on a Japanese machine, for example!
- Save states, which are designed to be fully backwards compatible in future releases and interchangeable between platforms/OS/machines
- Cool! Reverse: go back in time to correct mistakes, replay your actions, or step back in time with the debugger to find the cause of a crash. Optionally save the full event history to a file. Also with quite complete support for TAS
- Unique! Possibility to run multiple machines in one openMSX instance ("tabbed" MSXing!)
- For Linux, Windows (7+), macOS, (Android 4.1+ up to openMSX 0.15.0), FreeBSD, NetBSD and OpenBSD systems. (And OpenDingux (GCW Zero) up to openMSX 19.1.)
- Installer for Windows
- Advanced build system
- Manuals online and in distribution
- Over 220 MSX machine (and similar) hardware configurations included
- Over 100 MSX (and similar) extension hardware configurations included
- SSE2 optimisations for rendering and resampling
MSX hardware emulated
- Almost all MSX systems: MSX, MSX2, MSX2+ and turboR generation
- Experimental emulation of the ColecoVision video game system. Includes support for the Super Game Module and the MegaCart mapper, used by many modern homebrew games. Note that we are no ColecoVision enthusiasts ourselves, so we rely on others to support these systems properly.
- Experimental emulation of the MSX-precursor system Spectravideo SVI-318 and SVI-328. Note that we are no SVI enthusiasts ourselves, so we rely on others to support these systems properly.
- Experimental emulation of the Sega SG-1000 console. Note that we are no Sega enthusiasts ourselves, so we rely on others to support these systems properly.
- 1st! Sunrise GFX9000 and part of Video 9000
- Unique! Pioneer Palcom Laserdisc system
- Different CPU clock speeds, including those for the Panasonic MSX2+ machines
-
Almost all known cartridge mapper types via auto detection or the
included ROM database, including:
- 1st! Panasonic FS-CA1 MSX Audio
- 1st! National mapper type used for internal software
- Panasonic FS-A1FM internal mapper, with firmware switch
- Panasonic mapper type used for internal software (e.g. MSX-View)
- ROMs with special headers or which start from basic, like Nausicaa, Pairs, etc.
- All (?) ROMs with SRAM (Hydlide 2, Xanadu, Wizardry, many Koei games, Daisenryaku, etc.)
- Cross Blaim
- R-Type
- Harry Fox Yuki No Maou-Hen
- Korean multi-game ROMs: Zemmix 126, Game's 80, Zemmix 64, Zemina 25-in-1 and MSX90-collection
- Playball and Moero!! Nettou Yakyuu '88 with sample replay
- Super Lode Runner
- Halnote
- Ink (Matra)
- Manbow 2 (also 2nd release)
- Unique! Arc
- Unique! Super Swangi (a.k.a. Super Altered Beast)
- Unique! MSXtra (a debugging tool released by PTC which has its own RAM)
- Unique! Collection ROMs like MultiROM Collection, Al Alamiah 30-in-1, RetroHard MultiCart 31 in 1
- ASCII Japanese MSX-Write and MSX-Write II
- &nbps; Konami EC-701
- New! Support for "16-bit" mappers that will be used in upcoming new games (ASCII16-X, Neo-8/16)
-
(Almost) all MSX sound devices:
- Unique! Philips NMS1205 Music Module, including MIDI in/out
- 1st! MSX-MIDI (turboR)
- Unique! mu-PACK (MIDI module to upgrade turboR ST)
- Unique! PCM input (sampling) for turbo R via a .wav file
- 1st! PCM output and hardware PCM mute (turboR)
- 1st! SIMPL/Covox (sound via the printer port)
- Cool! Moonsound (and the Brazilian OPL3 cartridge)
- Cool! "Moonblaster Stereo": MSX Music on one channel, MSX Audio on the other
- Konami's Majutsushi and Synthesizer DAC
- SCC and SCC+
- Checkmark FM Stereo PAK, including stereo effect
- VLM5030, the chip used in the unreleased Konami game Keyboard Master
- Yamaha SFG-01/05, which has an YM2151 OPM/YM2164 OPP and YM2148 for MIDI
- Unique! FAC MIDI Interface
- Unique! JVC MSX MIDI
- Unique! Musical Memory Mapper (with SN76489 DCSG sound chip)
- Unique! Popolon Sound Cartridge (with configurable size)
-
Many MSX storage (disk/SRAM) systems:
- 1st! Sunrise IDE interface with harddisk and CD-ROM (audio tracks not supported yet), also a version with Nextor ROM
- Unique! MegaRAM Disk
- 1st! PAC (Panasonic SW-M001)
- 1st! Sony HBI-55 datacartridge
- MegaRAM (512kB and 2MB versions)
- MSX-DOS2
- Floppy disk controller (WD2793 and compatibles, TC8566AF, ) fully supported, including formatting); also support several ways the FDC's are connected to the MSX (Microsol, National, Sanyo, AVT, Spectravideo, Canon and Victor styles). The WD2793 emulation is highly accurate: all copy protections (stored in a DMK disk image) we know are supported.
- Experimental: Gouda SCSI (Novaxis), MEGA-SCSI, ESE-SCC, WAVE-SCSI and ESE RAMdisk
- Unique! MegaFlashROM SCC / MegaFlashROM SCC+ / MegaFlashROM SCC+ SD
- Unique! Carnivore 2
- Unique! Konami Ultimate Collection
- BeerIDE interface with harddisk (experimental)
- Nowind (mostly useful for developers)
- Unique! Tecall TM220 MSX-RAMFILE
- Mouse, joystick (including JoyMega more than 2 button support, also supporting keyboard input to map on joystick inputs), the Arkanoid pad, ASCII paddle (1 and 2), trackball and additionally the ninja-tap multiplayer controller, so that you can use up to 4 joysticks for software that supports it
- Tape via CAS and WAV files (real recorded tape image); CAS files can be converted to WAV on the fly, cassette sounds are audible, cassettes can be rewinded and one can record to a new WAV cassette image
- Unique! Slot expander
- 1st! Tetris II Special Edition dongle
- 1st! MSX Bunsetsu Henkan Jisyo ROM (National FS-SR021/FS-4000/FS-4500/4700F)
- 1st! 12×12 dot kanji (National FS-4600)
- Cool! Interlacing, real or deinterlaced
- 192kB VRAM (extended VRAM)
- ADVRAM
- Magic key dongle
- Unique! RS232Net: connect MSX RS-232C interfaces to the local network
- Overscan
- Kanji JIS ROM 1 and 2
- MSX RS-232 (8255 UART)
- MSX printer support for characters by logging them to a file
- Dot-matrix graphical printer emulation
- Joystick emulation for mouse (a feature that the Philips SBC-3810 and Sony MOS-1 and similar mice have)
- Rensha turbo auto fire support
- turboR pause (button and hardware) support
- run time insertion and removal of cartridges and other extensions
- support to emulate any non-colour monitor, like monochrome-green, amber or white
- Unique! Neos MA-20 Version-Up Adapter (cartridge to adapt MSX1 to MSX2 with separate video output)
- Unique! Sharp/Epcom HB-4000 80 column cartridge extension
- Sony/Dempa's Sensor Kid cartridge
- Epson's Chakkari Copy cartridge
- Unique! ROM Hunter Mk2 cartridge
Emulator Extras
- New! Built-in debugger, with watchpoints, breakpoints, tile-mode viewer, bitmap-mode viewer, sprite-viewer, rasterbeam display, generic binary viewers of all debuggable devices, symbol manager, etc. All data is shown in real time!
- Optional automatical speed up during disk, cassette and laserdisc (load) action
- Unique! Optional automatical loading of cassettes in CAS format
- First! XML files to specify the hardware to be emulated, so you actually emulate specific MSX machines
- Unique! Debug device: write data to special I/O ports and it gets logged to stdout or a file in a format you specify. Very useful if you develop MSX assembly programs in openMSX
- Unique! Console with alpha-blended background, true type fonts and file and command completion and built in help for (almost) all commands
- Unique! Support for .dmk diskimages, making it possible to run any MSX disk based software, without removing copy protections
- Unique! Support for .xsa (compressed) diskimages
- Unique! Keymatrixdown/up commands to automatically push keys (like pressing CTRL at boot automatically)
- Unique! Console commands to enable demo play with timers
- 1st! Dir-as-disk feature: Use a directory on your hard disk as disk image in openMSX (with full read and write transparency), including support for sub directories
- Cool! Debug command (including conditional break points, watch points, an UMR detector and even a way to step one instruction back): read/write many parts of the MSX system; mainly useful to be used in external debug applications via the stdin/socket command interface
- Cool! Disk manipulator toolkit; transfer files from the host OS to the MSX disks (disk images and hard disk images with partitions are all supported) and vice versa, create new (hard) disk images and format them, etc.
- Cool! OpenGL 2.1 based renderer that makes advantage of the processor of advanced modern graphics cards, with special features: TV scaler, afterglow and a 3D monitor effect and support for 3 different scaling factors (2×=640×480, 3×=960×720 and 4×=1280×960) and several other scaling algorithms like: hq, hqlite, and scaleNx.
- Horizontal stretch (to get the correct aspect ratio)
- Scanlines, blur and noise for TV emulation
- Cool! Gamma, brightness and contrast adjustment setting
- Deflicker filter, for removing flickering in cases like the dvik demos where 105 colors are simulated on MSX1 by alternating different native colors.
- Option to run at maximum possible speed
- Full screen rendering
- (Auto) Frameskip
- Speed setting (in percent)
- Mouse cursor grabbing, for windowed mode
- Tunable volumes and stereo balance for the individual sound chips
- All read-only input files (ROM images, disk images, background pictures, XML) can be gzipped or zipped and will be transparently decompressed by openMSX
- Screen shot feature (with or without OSD)
- Support for IPS patches for ROMs and disks
- Recording a video (with sound) of your openMSX actions
- All channels of all sound chips can be recorded separately
- Vibrato and detune sound effects (for PSG only)
- Cool! Extended hot keys: you can bind any host event to any Tcl command, which means you can e.g. let openMSX push the MSX F1 key if you press a certain button on your PC game pad
- Unique! Interleaving with black frame for monitors with LightBoost support
- Configurable host-to-MSX joystick mapping (e.g. bind the crawl command (button A+B) in Metal Gear 2 to a single PC joystick button)
- MIDI connectivity to host frameworks for Windows, Mac and Linux (ALSA): connect to the MIDI of your emulated MSX device with applications running on your host
- Copy from the MSX screen and paste to the MSX (and paste to console)
- Drag and drop support (drop files on openMSX window)
Coming Up …
Here are some highlights of features and improvements that are already in our source code and are likely to be in the next release (see our commit log for details and history):
- (nothing added here yet, perhaps we just released 20.0? Either that or we were too lazy to add stuff here; just check that commit log instead!)