Release History
===============

This is an overview of the changes that were incorporated into past releases.

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.
- 8kB 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 FM-PAC 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 8kB 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.

