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.

