Release History =============== This is an overview of the changes that were incorporated into past releases. openMSX 0.7.2 (2009-06-30) -------------------------- 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. openMSX 0.7.1 (2009-06-28) -------------------------- This release comes mostly with good news for Windows users: we have a brand new installer with binaries which have been created in a brand new way, using Microsoft Visual C++ 2008. This means smaller binaries and also support for 64-bit Windows operating systems. Also, several long standing problems have been fixed in the Windows release of openMSX. E.g., it now includes full support for unicode! For the rest we have mostly fixed smaller issues (see below) and added some cool demonstrations of what one can do with the combination of (Tcl) scripting, the debug command and the OSD. New or improved emulator features: - Removed buggy SDLGL renderer (instead use SDLGL-PP) - Debugging: - implemented step_out - implemented skip_instruction - implemented general debug conditions (not bound to addresses anymore, but note: this is very CPU intensive!) - Speed optimizations in the CPU emulation - Console now uses TrueType fonts, and can display localized text now (as long as the characters are in the used font), in other words: it supports unicode - Optimizations in ZMBV encoding cause openMSX video recordings to become smaller and the encoding to be faster - As is default in fMSX, it is now possible to automatically pause openMSX when the mouse pointer leaves the openMSX window (not enabled by default) - Added icons in the OSD for 'pause', 'full throttle', 'debug break' and 'mute' status - Added several improvements on the OSD, regarding features, bug fixes and speed - Fixed some long standing bugs on Windows: - ALT-SPACE no longer pops up a context window - Unicode is now fully supported (e.g, no more problems with localized versions of Windows). Note: this means openMSX requires Windows 2000 or higher as of this release. - socket communication (e.g. with the openMSX debugger) is secure now. This does mean that older builds of the openMSX debugger will not work anymore with this openMSX release, you need an updated build! - Added the possibility to include OSD elements in screenshots, which are now no longer included by default (e.g. typing screenshot in the console no longer shows the console in the screenshot) - Added some scripts that demonstrate the OSD framework: - vu_meters: shows graphical VU meters for each channel of each sound chip in the currently emulated MSX - scc_viewer: shows current waveform and volume of the SCC channels - mog_overlay: help and extra information when playing The Maze of Galious - info_panel: a general information panel, similar to the DIGIblue v2 theme of blueMSX MSX device support: - Several new machines were added, e.g. Sony HB-F700P, Panasonic CF-2700 (German), Talent DPC-200 (Argentinian), Yamaha CX5M, Sanyo PHC-28L, Sanyo PHC-28S, Yamaha YIS-503F, Sanyo MPC-25FD (thanks jltursan) - Added Sharp HB-3600 dual disk drive - Accuracy improvements: - Added difference between AY8910 and YM2149 PSG's when reading registers - Z80: added 'ld a,i' quirk - V99x8: - implemented sprite collision coordinate status registers - fixed detail of LINE command (fixing one problem in Syntax Infinity) - implemented VR bit (fixing another problem in Syntax Infinity) - Added a memory mirror device to properly emulate the Sony HB-10P - Fixed sound quality regression in YM2413 emulation - Fixed very long standing bug in vblank interrupt timing, resolving many problems like the Zanac title screen, Adonis music speed, Galaga slowdowns, Penguin Adventure start up, ... - Added emulation of Nowind (mostly useful for Nowind firmware developers) - Added emulation of the Arkanoid pad, using the mouse Build system, packaging, documentation: - Build support for Microsoft Visual C++ on Windows. As a result, we have smaller binaries for Win32 and we now also have support for 64-bit Windows. - New installer based on WiX on Windows - Added a super-opt flavour which does the most aggressive optimizations. This includes using "computed gotos" in the CPU code (which speeds it up by roughly 10%), but may need 1GB of RAM at compile time. - Added support for Hurd operating systems (tested on Debian GNU/Hurd) - Converted (most of) the build system to Python, so that it is a lot better maintainable and the Visual C++ build can also make use of it. Python (> 2.4 but < 3.0) is now required to compile openMSX. openMSX 0.7.0 (2009-01-07) -------------------------- 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. Before we give you the list with details, we want to thank hap, the author of meisei, for helping us out with some of the features below; you might recognize them from his recent meisei releases. New or improved emulator features: - Save states (keyboard short cuts: ALT-F7 or Cmd+R to quick-load and ALT-F8 or Cmd-S to quick-save your state): - Exchangeable between different host machines, OSes, platforms - Designed to be forwards-compatible, i.e. they will work with future openMSX releases - As a side effect it is now possible to have multiple emulated MSX machines in memory (comparable with tabbed browsing) - Fully automatic host-MSX keyboard mapping (enabled by default), support for MSX keyboards of type: de, es, fr, gb, int, jp_ansi, jp_jis, kr, proto_fr (e.g. French Philips VG 8010), proto_int (Philips VG 8010), ru - Fully transparent dir as disk (by default) - Debugging: - It's now possible to break on changes of the IRQ lines: the global Z80 IRQ input but also specific per-device IRQ outputs ("debug probe" command) - Made more devices 'debuggable' - Simplified usage of the 'debug device' - Recording movies in higher resolution: 640x480 using the "-doublesize" option - Major speed optimizations: - Z80 and R800 emulation - V99x8: command-engine, bitmap and sprite rendering - SCC, YM2413, AY8910 and sound mixing in general - rewrote some critical routines in x86 or ARM assembly As a result most MSX1 and MSX2 software now runs realtime on a ARM9 200MHz CPU, which you can find e.g. in a GP2X handheld console. - Screenshots can now be made of the MSX screen only (using the "-msxonly" option) - Added an On-Screen-Display (OSD) framework, which will be useful to control openMSX in full screen mode and especially on hand held machines like the GP2X. There is already a proof-of-concept OSD available, which can be accessed by pressing the MENU (or Cmd+O) key. Note that this is still an experimental feature! Feedback is most welcome, of course. - Amount of horizontal stretch can be tweaked by the user (horizontal_stretch setting) MSX device support: - Support for new mapper types: Nettou Yakyuu (with sample ROM, for Moero!! Nettou Yakyuu '88), MatraInk (for Ink), Manbow2 (for Manbow 2), MegaFlashRomScc (for new MegaFlashROM SCC extension) - Several new machines were added, e.g. Philips VG 8000, Philips VG 8010 (also French version), Philips VG 8020/19, Sony HB-10P, Sony HB-20P, Sony HB-55P - Added Brazilian OPL3 Cartridge - Major accuracy improvements: - turboR: extra wait cycle when accessing VDP - Z80: - more accurate IRQ timing - fixed some undocumented flag behaviour (not caught by zexall) - implemented differences between turboR-Z80 and normal Z80 (SCF and CCF) - R800: - more accurate timing (correct page break behaviour) - more accurate flags (rexall passes now) - SCC: - fixes in rotation mode - corrected power-on state - V99x8: - implemented VRAM remapping (register R#1, bit7) - implemented blink in bitmap mode - V9990: - much improved command timing - bug fixes in command handling - fixed vertical scroll details (in combination with screen splits) - MSX-AUDIO: various fixes for the different MSX-AUDIO variants - PSG: emulate joystick input pin 6/7 mask quirk - more accurate 'HarryFox' and 'CrossBlaim' mapper types Build system, packaging, documentation: - Mostly updated support for building a statically linked executable on Windows. openMSX 0.6.3 (2007-12-09) -------------------------- This release contains several new features and improvements related to sound. All sound chips are emulated at their native frequency and resampled using advanced resampling techniques to the desired output frequency (typically 44.1 kHz). The advanced resamplers improve the sound quality a lot, because they are free of aliasing distortions. There are three resamplers you can choose from: "fast", which produces approximately the same results as previous openMSX releases, "blip", which produces better sound and is still quite fast and "hq", which produces the best sound but takes a lot of CPU power. Since the quality difference between "blip" and "hq" is very small and the speed difference quite large, "blip" is the recommended resampler and the new default. Many thanks to Blargg, the author of Blip_Buffer, not only for the code but also for explaining the principles behind it. More sound related improvements include stereo balance settings for each sound chip and the ability to record individual channels of sound chips. For PSG we even introduced some sound effects: vibrato and detune can be enabled to get a fatter sound. Try this in Penguin Adventure! Thanks to the blueMSX Team, we were able to quickly bring some new features: emulation of the VLM5030, the sample chip used in the unreleased Konami game Keyboard Master and emulation of the synthesis part of the Yamaha SFG-05 sound module (keyboard and MIDI support is still missing). Also on the non-sound department, the code of the blueMSX Team enabled us to add some new features: Gouda SCSI, MEGA-SCSI, ESE RAM, ESE SCC and WAVE SCSI. Note that the SCSI emulation is still experimental, so make sure you don't use it to store data of which you don't have recent backups. Last but not least: a lock-up bug was removed from the Windows version, which could occur on dual core and hyperthreading CPU's. New or improved emulator features: - SDLGL-PP renderer (OpenGL 2.0) can now do RGBTriplet scaling in hardware. - Several resampling algorithms now available: hq, blip and fast; the first two eliminate aliasing. - Channels of sound chips can be individually recorded and muted. - Sound chips now have a stereo balance setting instead of a mode (left, right, mono). Because of this, the <sounddevice>_mode settings have been replaced by <sounddevice>_balance settings. - PSG sound effects: vibrato and detune. You can use the new "psg_profile" command to select known good combinations, or experiment wiht the PSG_vibrato_percent, PSG_vibrato_frequency, PSG_detune_percent and PSG_detune_frequency settings directly. Thanks to Wolf for the idea and his feedback on experiments. - Several small optimizations, mostly in SDLGL-PP renderer and CPU emulation. MSX device support: - Partial support for Yamaha SFG-05 (only the YM2151, no keyboard and MIDI). - Support for the VLM5030 in Konami's Keyboard Master. - Improved accuracy in SCC emulation. - Support for ESE devices: MEGA SCSI, ESE RAM, ESE SCC, WAVE-SCSI. - Support for Gouda/Novaxis SCSI. - Support for password cartridge. - Support for the Super Lode Runner mapper. - Real support for the Halnote mapper. Thanks to the blueMSX team. Build system, packaging, documentation: - Added support for building a statically linked executable on Windows. - Added support for building a backwards compatible executable on Mac OS X 10.5 (Leopard). Thanks to BouKiCHi. - Added support for DESTDIR, which should help packagers. openMSX 0.6.2 (2007-04-15) -------------------------- This release contains several new features and many bug fixes and optimizations. The main new feature is the addition of the video recorder. It enables you to record videos, including sound, of what you are doing with your emulated MSX. Thanks to the DosBox Team for their great ZMBV lossless video codec. The most noticeable speed optimizations are in the rendering: the SDLGL-PP renderer can be up to 50% faster and the SDL renderer is about 6% faster. If you were having problems with speed, give this release a try. The trainers that are shipped with openMSX are now a lot more user friendly. It is possible to enable or disable individual cheats of a trained game. Bug fixes in the PSG and SCC, as well as a new way of sample rate conversion, result in the PSG and SCC sounding very much like the real MSX now. New or improved emulator features: - Video recording and improved sound recording (stutterless). - SDLGL-PP renderer (OpenGL 2.0) can do hq and hqlite scaling in hardware. - More usable trainers. - Extended hot keys: you can now bind any host event to a 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. - Event recording and replaying (experimental for now: only available at command line, recorded session starts when openMSX starts). - Debugger now supports watchpoint regions. MSX device support: - V9990 enhancements: deinterlace, cursor Y position in overscan mode, huge speed optimizations for P modes. - SCC sound quality improvements (no more aliasing). - Support for the Playball mapper (and samples). - Fixed mirroring of some FDC registers and diskROMs. - Dot matrix graphical printer emulation added (thanks to the blueMSX Team). - Cassetteplayer recognizes end of tape and stops. - Small bug fixes in various devices: MSX-Audio, V9990, VDP, SCC, PSG, TC8566AF. - Various speed optimizations: VDP command engine, Z80, video rendering, V9990, debugger response time in break mode. - Added a few Arabic MSX machines, but note that they have not been verified to be correct. Build system, packaging, documentation: - Added support for building an application folder on Mac OS X. - Added support for building a universal binary for Mac OS X. - HTML-ized the Console Command Reference and the diskmanipulator documentation. There is now also linking to these new manuals, which improved the usefulness of them a lot. - Added a text document about how developers can control openMSX from their own application: doc/openmsx-control-xml.txt. openMSX 0.6.1 (2006-07-30) -------------------------- This release includes major internal changes, although many are not visible from the outside. It is now possible to switch from one MSX machine to another while openMSX is running. This will reset the MSX of course. Also, it is possible to insert or remove cartridges (extensions or game ROMs) while openMSX is running. This does not reset the MSX, but the MSX system was not designed to support insertion or removal of cartridges while the machine is on. Although doing so will not damage openMSX (unlike a real MSX), it is possible the MSX will hang if hardware is removed that was being used, or that newly inserted hardware will not function properly until you reset the MSX. A new advanced video renderer was added: SDLGL-PP. This renderer requires OpenGL 2.0 and uses pixel shaders to postprocess the image. For new video cards, this is a very efficient way of scaling the image. For old video cards, please stick to the SDL or SDLGL renderer. Not all scalers are implemented yet: "simple" and "ScaleNx" work, as well as the new "TV" scaler, which is exclusive to SDLGL-PP. New or improved emulator features: - Run-time switching of machines: change: set machine <machine name> query: set machine - Run-time switching of extensions: insert: ext <extension name> remove: remove_extension <extension name> query: list_extensions - Run-time switching of ROMs: insert/change: carta <file name> remove: carta -eject query: carta - New command "hda" to change the IDE harddisk ("hdb" for second drive etc). This is allowed only when the power is off, for the safety of your data. - SDLGL-PP renderer (OpenGL-2.0), with the following exclusive features: * scale factor 4 * TV scaler: brighter pixels are drawn bigger * 3D monitor effect: (arcade look) set display_deform 3D * horizontal stretch: (MSX aspect ratio) set display_deform horizontal_stretch - Monochrome monitor effect: monitor_type <name> - Video noise effect: set noise <amount> Low amounts of noise (for example 2.5) can make the video look better, high amounts are just a gimmick. - Brightness and contrast control: "set brightness <amount>" and "set contrast <amount>", where 0 is neutral. A small decrease in contrast will make the noise look better. - Preload disk image: avoids repeated spin-ups when loading from PC CD-ROM. - TCL procedures can now have a help text and TAB completion. We also added help and completion to the TCL scripts that ship with openMSX. - New console command "about" which searches for commands (built-in or TCL scripts) that seem to be about the given keyword. Useful if you forgot the exact name of a command. - Watchpoints for I/O port and memory access: debug set_watchpoint <type> <address> [<condition>] [<command>] debug remove_watchpoint <id> debug list_watchpoints Where type is one of "read_io", "write_io", "read_mem" or "write_mem". Address is in range 0..255 for I/O ports and 0..65535 for memory. Condition and command are the similar to the "set_bp" command. - Detection of DI/HALT (hanging MSX). - Detection of Undefined Memory Reads (UMRs). When memory is read that was never written to, a TCL procedure is called. You can make your own, or use the included procedure named "umrcallback": set umr_callback umrcallback This is "valgrind" for MSX ;) MSX device support: - IDE CD-ROM support: the "ide" extension now contains a CD-ROM drive in addition to a harddisk. You can insert ISO images with the "cda" command, or "cdb" for the second CD-ROM etc. There is no support yet for audio tracks. Note that you have to run IDECDEX in the emulated MSX before you can use CD-ROMs; you can download it from Sunrise (http://www.msx.ch/sunformsx/). - Support for V9938 with only 16 kB VRAM, as used in the SVI-738. - Major V9990 improvements. - Minor sound differences between two different PSG types (AY8910 and YM2149). - Added Ninja-tap, a joystick port expander. - Added DDX-3.0, a port-based external floppy interface. - Small bugfixes in various devices: VDP, RTC, FMPAC, MegaRAM, IDE. Build system, packaging, documentation: - OpenGL support now depends on GLEW (http://glew.sourceforge.net/). GLEW is a library which allows us to conveniently use of GL extensions. - Build fixes for Intel Macs. openMSX 0.6.0 (2006-01-21) -------------------------- After a long time, a fresh release which brings a lot of internal improvements and some long standing new features as well. The biggest change for the user is the fact that we removed the SDLLo renderer and that we split the scalers into a separate "scale_factor" (controls the zoom) and "scale_algorithm" (controls the look) setting. A factor of 1 replaces the SDLLo render and as a bonus we also added a factor of 3! The latter also makes more exotic scalers possible, like the new RGBTriplet one, which tries to emulate a low res Trinitron (Aperture Grille) monitor. Also, the existing scaler algorithms have been implemented for scale_factor 3. Note that currently the GL renderer only supports scale_factor 2; if you want the new scale factors, use the SDL renderer. Mac OS X Tiger users will be happy to know that this release will compile cleanly on their systems, because openMSX can be compiled with GCC 4.x now. Also some problems specific to big endian CPU's (like the Power PC in most Macs) were fixed. In the sound department we made big quality improvement for DAC devices, like the turboR PCM and the Konami DAC which can be found in the Hai no Majutsushi and Synthesizer products. Note that in this release several incompatible changes to openMSX commands were made. First of all, the cassetteplayer subcommands have changed, because we added the possibility to save to cassette now as well. To learn the new subcommands, use "help cassetteplayer". Also the keyjoystick settings are incompatibly changed, which means your old bindings will be lost. Finally the already mentioned renderer and scaler settings have changed, so you will have to re-select your favourite scaler. New or improved emulator features: - Printer logger and SRAM are flushed at regular intervals now, so if openMSX or your PC crashes, it is less likely you will lose data. - Settings that have their default value are not saved anymore, which will make future upgrades easier (new defaults are automatically picked up). - Added support for a second keyjoystick. - More extensive debugging, including conditional break points. - Apart from communication via stdio, communication via sockets is now enabled. This means you can connect to openMSX at run time! This will be used by a debugger that is in development. - V9990: speed improvements, enabled scalers, scanline and blur. - Reorganisation of renderers and scalers (including new ones), see above. - Screenshot command has a -prefix option, useful in combination with the new "guess_title" script: give meaningful names to your screenshot. - New "fullspeedwhenloading" setting. When enabled, openMSX automatically switches to maximum speed when the MSX is loading from disk or tape. - New "autoruncassettes" setting. When enabled and you specify a CAS image on the command line or in Catapult, openMSX will automatically type the required loading instruction in MSX-BASIC. - Finally implemented a work around for the CAPS LOCK problem. MSX device support: - Internal CAS to WAV conversion produces now 5520 baud WAVs, for faster loading. - Implemented saving to cassette (see above). - Implementation of SCREEN6 border and background stripes. - Implemented support for 192 kB VRAM (now default in the Boosted_MSX2_EN machine). - Implemented support for ADVRAM: use extension "advram-p" for machines in which slot 0 is not expanded (most MSXes) and use extension "advram-s" for machines in which slot 0 is expanded (such as turbo Rs). - Sound quality improvement of DAC devices (see above). - Implemented TurboR hardware pause and hardware PCM mute. - Implemented "magic key" joystickport dongle. Build system, packaging, documentation: - Compile fixes for GCC 4.x. - Support for FreeBSD 6. openMSX 0.5.2 (2005-06-09) -------------------------- This release is mainly a bug fix release with only a few new features, but a lot of quality improvements, mainly related to audio. We reworked the YM2413 engine by Okazaki, bringing the openMSX fork up to date with the latest release of MSXplug. We also fixed an bug in the SCC emulation, which screwed up some sound effects. Other fixes include MSX-AUDIO sample RAM access and the timer accuracy of OPL4 and MSX-AUDIO. Finally, we also added a DirectSound driver for Windows. A new sound related feature is the sound logger. It writes the sound played by openMSX to an uncompressed WAV file. The current version logs exactly what is sent to the sound driver, including any inaccuracies caused by realtime synchronization. We are planning a logger that is not timing sensitive to appear in a future openMSX release. For usage instructions, see section 7.3 of the openMSX User's Manual. A last new (but still a bit experimental) feature is the disk manipulator. This is a new built in toolkit to transfer files from the host OS to the MSX disks (disk images and hard disk images with partitions are all supported) and vice versa. You can also use it to create new (hard) disk images and format them. A complete description is in doc/using-diskmanipulator.txt. New or improved emulator features: - New scaler: HQ2xLite. This is a scaler that is almost as good as HQ2x, but uses a lot less CPU. - Added DirectSound driver for Windows, which solves the problems some people had with SDL on Windows. It also runs at a lower latency than the SDL driver. Many thanks to Daniel Vik for helping with DirectSound. To switch between the DirectSound and SDL sound drivers, use the new "sound_driver" setting. - Improved debugger, with some new (TCL based) commands like disasm, step_in, step_over and run_to. - Extended IPS patch support, it should now support all IPS files. - Updated ROM database. - Added trainers.tcl: hundreds of game trainers. Use trainer_[TAB] in the console to switch on the trainer for the game you want. - Added a cheat finder script: create your own game trainers. For an explanation how to use it, see this openMSX forum post: http://forum.openmsx.org/viewtopic.php?t=34 - Use revamped console background and font as default. If you're upgrading from an older openMSX version and want to use this new background and font, you can either remove your settings.xml file or type the following lines in the openMSX console: set consolebackground skins/ConsoleBackgroundGrey.png set consolefont skins/ConsoleFontRaveLShaded.png - New icon, made by Eric Boon. MSX device support: - Updated Okazaki YM2413 core (now the default). - Added pixel accurate rendering to V9990 emulation. Note that the timing may still be quite incorrect. - Improved timing on turbo R machines. For example, speed difference between R800-ROM and R800-DRAM mode is now emulated. - Various IDE fixes from Adriano Camargo Rodrigues da Cunha. Build system, packaging, documentation: - Compile fixes for GCC 4.x. - Added experimental build support for Sparc, DEC Alpha, ARM, HP PA-RISC, IA-64, Motorola 680x0, MIPS and IBM S/390. Except for Sparc these are all untested. - openMSX is now relocatable on Mac OS X, which means you can move the installation directory around. - Our Debian packages are now uploaded to the Debian archive, soon after release. - Updated C-BIOS to 0.21. openMSX 0.5.1 (2005-03-05) -------------------------- This release includes a redesign of the ROM database XML file. This new format is supported by both blueMSX and openMSX; other emulators are welcome to adopt it as well. The old "romdb.xml" file is still supported, but will disappear in the future. The new "softwaredb.xml" file is generated from a central SQL database, using information from the old blueMSX and openMSX ROM databases. The new database design is prepared to support disks in addition to ROMs. Another major new feature is emulation of the Sunrise GFX9000. We have been working on this for quite some time already, but in this release you can see the first usable results. Do note that the emulation is still far from complete, fast or bug free. But we thought you might appreciate it already in its current shape. To use it, start openMSX with the "gfx9000" extension selected. You can switch between the MSX VDP and the GFX9000 picture with the "videosource" setting. Note that right now, only the SDLHi and SDLLo renderers are able to render the GFX9000 picture. Also new are the OSD (on-screen display) LEDs. Catapult users have had LEDs for some time, but now if you use openMSX from the console or full screen you can also see the status of the LEDs. OSD LEDs are configurable via TCL scripts. New or improved emulator features: - A new mixer implementation improves the sound quality of PCM and PSG samples a lot. - The "samples" and "frequency" settings can now be changed at run time. - Various speed ups, especially for low end machines due to better frame skip. - You can now use IPS patches to modify disk and ROM images as openMSX loads them into memory, without changing the images files. - Extensions inside ZIP files are now used to guess the right file type. - Many improvements for Mac OS X, including bug fixes and more Mac-like key bindings. When upgrading from openMSX 0.5.0, you can remove your ~/.openMSX/share/settings.xml to get new the key bindings. - New "escape_grab" command: escapes from "grabinput" once. - Debugging: enabled "cputrace" setting for normal builds as well. MSX device support: - Fixed turboR DRAM support. Programs that use this, like TRCAS, work now. - Fixed booting of SVI-738 CP/M disks. - Timing improvements of the WD2793 FDC. Fixes a few games that rely on it. - The 13 bit MSX-AUDIO DAC actually works now (used in modplayer). - Added MegaRAM Disk, thanks to Adriano da Cunha. - Improved Sony HBI-55, thanks to Daniel Vik. - Fixes in Tetris II Special Edition dongle. - Added separate machine configuration for Philips VG 8020/20. - Added MSX-AUDIO 2 extension. This is an Y8910 on alternative I/O ports. - Added FM Stereo PAK extension. Build system, packaging, documentation: - We now provide Debian packages, shortly after the source release. - Added build support for OpenBSD and NetBSD. - Updated C-BIOS to 0.20. openMSX 0.5.0 (2004-10-18) -------------------------- This release includes a complete redesign of the hardware configuration XML files. Also many devices were renamed. I/O ports are now specified in the hardware configuration instead of hardcoded. Configurations in the old format are no longer supported. If you copied the configurations that came with openMSX 0.4.0 to a different location (for example, ~/.openMSX/share), replace them by the configurations shipped with 0.5.0. The Python script share/scripts/convert_hardwareconfig.py can be used to convert your custom-made configurations. It may not convert every detail correctly, but it will save you a lot of time compared to manually converting configurations. The new ROM pools feature makes installing system ROMs easier. A ROM pool is a directory where openMSX looks for system ROMs. The new hardware configuration XML files contain the SHA1 sums of the required system ROMs, so openMSX can find the right ROMs in the ROM pool automatically. The default ROM pool is the directory share/systemroms. Settings, including key bindings and user directories, can now be saved. By default, settings are automatically saved when openMSX exits. If you don't want that, do "set save_settings_on_exit false" and save manually with the new "save_settings" console command. It is also possible to save settings to separate files, so you can keep multiple, independent configurations. Old configuration options were converted to settings: - machine: the default machine (needs openMSX restart) - frequency: the sound mixer frequency (needs openMSX restart) - samples: the size of the sound mixing buffer (needs openMSX restart) - user_directories: directories that are searched for data files The new setting "save_settings_on_exit" controls auto-saving of settings. Finally, we renamed "frontswitch" to "firmwareswitch". Changes in the video system: - Use of MMX to speed up video scaling considerably (mainly simple scaler). - Big speed up of scanline effect. - Enabled blur effect in the SDLHi renderer (simple scaler). - Scale2x and hq2x scalers now also work in hi-res modes (screen 6 and 7). - Made pixel accuracy the default. - Removed 8bpp support (which never worked before). - Fixed crash when making screenshot in 16bpp. New or improved emulator features: - Added channel mode 'off' to mute individual sound devices. - Added meta data of machines in config files. Some of this information is shown in the window title bar. - New "iomap" command lists the I/O ports and the devices connected to them. - Added a debugger interface to all (S)RAM. - Improvements in the 'type' command, thanks to Albert Beevendorp and Arnold Metselaar (welcome to the club, Arnold!). - Release key presses when the console becomes active. - Improved geometry detection of disk images; MSX1Mania disks work now. - Fixed crash in Win32 when dir-as-disk is used with files with weird dates. MSX device support: - MoonSound fixes. - Added slotexpander extension: use it to change one primary slot into four secondary slots. - 8 kB BASIC ROMs now work correctly and are auto detected as well. - Added simple DC filter for cassette images. .wav files created by MicroWAVer should work now. - Fixes for TC8566AF FDC (used in turbo R), thanks to Daniel Vik: improved timing (fixes Gazzel intro) and added format command. - Force PSG portA to be input port. This fixes joystick and mouse reading in games that write illegal values to the PSG (Match Maniac and others). - Emulation of the Tetris II Special Edition dongle (plugs into joystick port). - Fixed high-frequency reads of low-frequency clocks (such as RTC). Thanks to Daniel Vik for spotting this problem. - Many bugs were fixed, including long-standing bugs such as a VDP bug causing glitches in Andorogynus and CPU bugs causing glitches in Pennant Race and Fony Demo Disk 1. Build system, packaging, documentation: - Separated OS and CPU in the build system. - Build support for x86-64 (Athlon64). - Fixed bug: new TCL was not detected by running "make probe" again. - Added openMSX FAQ to documentation. openMSX 0.4.0 (2004-05-28) -------------------------- - Finalised the control protocol, making a fully-featured Catapult possible. - Implemented TCL as central scripting language (including console). Consequences: * AutoCommands in settings.xml have been replaced by init.tcl file * "restoredefault" command replaced by TCL's "unset" * "alias" is deprecated, use TCL's "proc" * "decr" is deprecated, use TCL's native "incr" with negative argument * "quit" is replaced by TCL's "exit" * old "info" is replaced by "openmsx_info"; "info" is a TCL command * Some cool TCL scripts added, e.g. multi-screenshot (make 'movies'), save_debuggable, vramdump (replacing old console command) - New build system which replaces the GNU auto* tools. It is more efficient, has cleaner output and is easier to maintain. You can still use the traditional "configure ; make ; make install" steps. For details, read doc/manual/compile.html. - Added support for compiling on FreeBSD 4 and 5. Thanks to ag0ny, Jorito and Reikan. Also updated support for Mac OS X, thanks to Jalu. - New frameskip/sync algorithm: tries to skip as little frames as possible to keep the right speed; maximum and minimum number of skipped frames can be set with the minframeskip and maxframeskip settings. The new algorithm can deal much better with the situation where another process or the OS claims the CPU for a while. As a result, animation and music play more fluent and openMSX feels faster. - Better CPU timing (Z80 and R800), and also for R800 specifically: * implemented CAS/RAS optimization * implemented refresh delay * IO operations take 3 cycles - CPU frequency is not fixed anymore: * frequency can be unlocked and modified from the console * "6MHz mode" of Panasonic MSX2+ machines is now supported - Fixes in TurboR FDC: FDD LED, disk change signal, drive detection, empty drive behaviour ("Disk offline"). Thanks to Tetsuo Honda. - Finalized internal mapper for Panasonic FS-A1FM and added support for its "frontswitch" for the firmware. - RS232 interface in Sony_HB-G900P has 2kb RAM. - Sony HBI-55 datacartridge now fully implemented. - Added proper support for Koei and Wizardry mappers (with SRAM). Thanks to dvik (blueMSX author) for the info. - Added about 14 new machines. - Volumes are all in a 0-100 range now. - Added master_volume setting. - Several optimisations in rendering. - Fixed sprites in overscan. - Added basic frames-per-second indicator. - Scaled up icon to 32x32; fixes icon on Win32. - Using SHIFT and PageUp/PageDown you can scroll whole pages in the console - New "type" command: use to enter text into the MSX keyboard buffer (not finalized yet) - Added a debugger interface to more devices: SCC, MSX AUDIO, MSX AUDIO sampleRAM, MoonSound, MSX MUSIC, memory mapper, PSG. Also extended CPU debuggable: IM can now be read at position 26, IFF1 and IFF2 can be read as bit 0 and 1 on position 27 - New debug interface commands: "read_block", "write_block", "after break" and "after frame". openMSX 0.3.4 (2004-01-16) -------------------------- This new release brings you the following improvements: - Several fixes in VDP emulation; more games and demos work correctly. - Added scalers for SDLHi. A scaler is an image filter which enlarges the MSX screen to PC resolution. The following scalers are implemented: * simple (original) * 2xSaI * Scale2x * hq2x Use "set scaler <name>" to select a scaler. - Scanlines now work in SDLHi (previously, they only worked in SDLGL). - Per-pixel alpha blending for console on SDLHi/SDLLo. This makes anti-aliased console fonts look better. - Rendering fixes in Win32: * Fixed slowdowns in fullscreen mode. * Fixed console flickering. - Switched to Jarek Burczynski's YM2413 core (MSX-MUSIC). - Added high-pass IIR filter to mixer to avoid audio clipping. - Added I/O device multiplexing: you can now safely insert an FMPAC in an MSX turbo R, for example. - Added screenshot feature. Default key bindings changed to put this under PrtScr. F12 toggles full screen now, while Quit is not mapped anymore, by default. - Added Ren-Sha Turbo (autofire) emulation: "set renshaturbo <speed>". - Added emulation of the MSX turbo R pause key. - Added LED status of disk drives. - Fixed harddisk image creation: automatically create or enlarge hd-image when the specified file doesn't exist or is too small. - New console commands: * after: execute command after a certain time * alias/unalias: put long commands under a named alias * incr and decr: increase or decrease integer settings (useful when bound to a key, see "bind" command) - Added a 'boosted' MSX2 configuration: a fantasy machine with lots of internal hardware. More of these will be added in future releases. The current configuration is still experimental; feedback is welcome. - Added alternative build system ("alternative.mk"), which is more flexible and easier to maintain than the old system which uses GNU's auto* tools ("configure" and friends). The alternative system will replace the auto* system in the future, so please test it on your machine and report any problems. You can use it with "make -f alternative.mk" to compile and "make -f alternative.mk install" to install. - Added support for Intel's ICC 8.0 compiler (only in alternative.mk). - Added experimental support for Mac OS X (only in alternative.mk). Thanks to Jan Lukens (Jalu) for testing/debugging this. - Dropped support for GCC 2.95 (please upgrade to GCC 3.x). - Added the ability to control openMSX from an external process (launcher, debugger) using an XML-based control protocol. This is an experimental feature; the control protocol will change incompatibly in the next release. For an example client implementation, see Contrib/openmsx-control.cc. We're working on a new openMSX Catapult which uses this protocol. - New features for external control clients: * renderer "none", which displays nothing. * "power" setting: enable or disable power to the MSX machine. * "restoredefault" command: restores a setting to the value specified in settings.xml. * "info" command: gets info such as lists of pluggables, renderers etc. * "keymatrixup"/"keymatrixdown" commands: manipulate the keyboard matrix. - Added a debugger interface, accessible through the "debug" command. The following devices currently support this interface: CPU, I/O ports, memory, VDP and VRAM. Also it is possible to set breakpoints. - Small improvements in debug device. The debug device is very useful for people developing MSX software in openMSX; read the manual for details. - Added "vdpcmdtrace" setting: enable or disable VDP command tracing. openMSX 0.3.3 (2003-09-26) -------------------------- This new release brings you the following improvements: - Windows specific code was merged into the main branch. We have an "official" Win32 port that is part of this release. - New HTML manuals replace the HOWTO. These manuals will make it easier for you to find the information you need. Also, the HTML layout looks better. Due to time pressure, the manuals are a bit rough at places, we'll improve them in the future. - New MSX devices: * MSX-MIDI interface (turbo R). * MSX-RS-232 support (8255 UART). * PCM input (sampling) for turbo R via a .wav file. - Added a debug device: write data to special I/O ports and its get logged to stdout or a file in a format you specify. Very useful if you develop MSX assembly programs in openMSX. - Several improvements and fixes in the VDPCmdEngine; VDP emulation is even more accurate now. - All read-only input files (ROM images, disk images, background pictures, XML) can now be gzipped or zipped and will be transparently decompressed by openMSX. Note that some games require write access to their disk in order to run (for example, Seed of Dragon). - New dir-as-disk feature: a directory can be specified instead of a disk image and the contents (up to 720K) will show up as files on the MSX. There is no support for subdirectories (as used by DOS2) yet. This feature is still experimental, so please report problems if you encounter them. - Several cassette emulation updates and new features: * Automatic .cas to .wav conversion in CassettePlayer. (no patched ROM needed anymore to run .cas files) * Cassette sounds are now audible. * Tapes can be rewinded. * Tapes can be forced to play. (like unplugging the 'remote control' plug on a real machine) - A different keymap (e.g. for Japanese PC keyboards or to use Russian MSX keyboards on a US English PC keyboard) can be used now, via settings.xml. - Keys for the key joystick are now configurable in settings.xml. - Added joystick emulation for mouse (a feature that the Philips SBC-3810 and Sony MOS-1 and similar mice have). - Various console updates: * Tab completion behaves much more like the UNIX Bash shell now. * Clearer error messages. * More than one command is possible, use ';' to separate them. Especially useful for binding several commands to a single keypress. - User-configurable channel settings for mono sound devices. You can set them to left, right or mono mode at run time. - Many things are now user configurable via the console: * .wav input file for PCM sampler * log file for the printer logger * output file for the MIDI out logger * input file for the MIDI in reader * input and output file for the RS232-tester - ROM database now uses SHA1 sums in stead of MD5 sums. - The MSX turbo R machine description uses a single 4MB ROM image, plus the Kanji ROM. This is closer to how the real machine works. - Several machine and extension configurations added. - Fixed compilation on GCC 3.4-pre development version. openMSX 0.3.2 (2003-06-09) -------------------------- - New feature: MoonSound support. Original implementation taken from MAME, thanks to Jarek Burczynski (FM code), R. Belmont and O. Galibert (wave code) for allowing us to use their code in openMSX. Improvements and bug fixes were done by Arjan Bakker and our team. - New MSX devices: * MegaRAM * PAC (Panasonic SW-M001) * Support for 8 kB ROMs - New feature: grab input (try "set grabinput on"). When enabled, the native mouse cursor cannot escape from the openMSX window anymore; makes using the mouse a lot easier in windowed mode. - New timer using the Linux Real Time Clock (RTC), which is more accurate than the SDL timer. SDL timer is still available as a fallback. Instructions to configure your system for using the RTC are in the HOWTO. - New effect in the SDLGL renderer: afterglow (try "set glow N"). - User-configurable gamma correction (try "set gamma X"). Also the default value is less bright than the previous hard-coded value. - Screen accuracy works now (try "set accuracy screen"). It is fast, but very inaccurate. - Volume of sound devices can be adjusted at run time. - Various console updates: * Commands can be on multiple lines. * Search in command history. * Command history is saved. * Support in SDLHi/Lo for console font PNG images in indexed mode. Previously, only images in RGB mode were supported. * Console remains usable when openMSX is paused. - Several machine configurations added (thanks to Albert Beevendorp). - Several extension configurations added. - Cache coherency problem in SDLGL renderer fixed. This bug caused garbled graphics in for example Ark-a-Noah and Dr Archie. - Fixed compilation on GCC 2.95. openMSX 0.3.1 (2003-05-18) -------------------------- - Fixed compilation on GCC 3.3. - Fixed SDLGL renderer on XFree86 4.3. - New feature: configurable file-extentions. - Improved layout of help text (try "openmsx -h"). - Many improvements to the console, including: * Extended the console editing keys (left, right, del, bs, home, end etc). * Added key repeat. * Reset the scrollback when any key other than page up/down is used. * Added resizing and moving to the console. * SDL console characters are no longer blended (improved readability). * SDL backgroundimage can be scaled and can have any pixel format. * Fixed colour of font on GLConsole overlayed on Text1 mode. - Emulation and event handling are now done in a single thread. The previous multi-threaded solution was not very portable among platforms or even different versions of the same platform. As a bonus, the single thread model is simpler and more efficient. - Improved "make install". - Cleanups of the directory structure.