
                                    Hatari
                                   --------
                                Release Notes


 Version 1.4.0 (2010-06-12):
 ---------------------------

Emulation:
- IDE improvements:
  - Support for second drive (IDE slave)
  - WIN_FORMAT command (allows HD Driver to format IDE drives)
- GEMDOS HDD emulation:
  - Minor fixes to Fseek(), Fopen(), Fdatime() (e.g. Pure debugger works)
  - On TOS v4 Fread() size arg is unsigned, on earlier TOS its signed
    (bad code can use -1L to read whole file instead getting fail on TOS4)
  - Prevent DTA and read/write functions accessing invalid memory areas
  - Programs can now change read-only files to be writable
- Falcon sound emulation:
  - Microphone (jack) emulation in Falcon mode (requires portaudio library)
  - SSI direct sound entrance ("Audio Fun Machine" and winrec are working)
  - DMA sound recording
  - Crossbar handshake mode transfers
- Max VDI rez increased to TT-hi size (1280x960)
- 68020+FPU changed to 68EC030+FPU (no MMU 030) for Falcon and TT modes
  (Some Falcon programs didn't work with 020)
- Video emulation on STF/STE:
  - correctly shift the screen 4 pixels to the left when left border is removed
  - add support for STE's 224 bytes overscan line without stabilizer
  - when reading $ff8205/07/09 on STE, take into account the value
    of horizontal scrolling/prefetch and linewidth
  - when writing to $ff8205/07/09 on STE, correctly handle the case
    where the write is made while display in ON
- LMC1992 emulation / STE sound filtering

Emulator:
- Host mouse is centered to Hatari window on Falcon resolution changes
  (helps in synchronizing host and emulated mouse positions)
- Toggling fullscreen doesn't unpause paused emulation
- Falcon/TT resolution zooming is now controlled by separate options for
  monitor aspect ratio correction and maximum zoomed Hatari window size.
  This can reduce Hatari window resolution size changes significantly and
  makes e.g. FUN's Alive demo viewable in fullscreen mode.  Limits for
  window size are also checked to see whether ST/STE low rez should be
  zoomed and how much of borders can be shown (when borders enabled)
- Split the Screen dialog into two separate dialogs, one for Atari
  monitor emulation setup and one for Hatari window setup
- GEMDOS drive emulation:
  - support long host directory names and much improved long filename support
  - convert host filename chars invalid in TOS to valid ones ('@')
  - use TOS filename matching instead of glob() (can match names with [])
- Options for preventing floppy image (--protect-floppy) and GEMDOS
  emulated drive directory (--protect-hd) modifications
- AVI file recording:
  - video can be stored as BMP or as PNG images
  - audio is stored as 16 bits stereo PCM
- Statusbar shows CPU type & speed
- Can create blank 2.88MB (ED) and 1.44MB (HD) floppy images
  from the GUI in addition to DD & SD images.  After creating
  new floppy image, one can directly insert it to A: or B:.
- Tracing for BIOS, XBIOS, GEMDOS and VDI traps gives in addition
  to the opcode, also the name of the corresponding OS function
- Major debugger improvements:
  - TAB-completion for debugger commands, command arguments and
    symbol names. Requires readline library
  - "parse" command and --parse Hatari command line option to
    execute debugger commands from a file
  - "stateload" and "statesave" commands for memory snapshots
  - "trace" command for tracing what the emulated code does
  - "symbols" command for loading and listing CPU & DSP code & data
    symbols/addresses.  Code symbols are shown on CPU & DSP disassembly
    and code & data symbols can be used in breakpoints
  - "evaluate" command for doing calculations. Register and symbol
    names in expressions are replaced by their values. '$' will be
    TAB-completed to last 'evaluate' command result
  - "cd" command to change Hatari work directory
  - "exec" command to execute shell commands (ENABLE_SYSTEM_DEBUG_CALL)
  - "info" command for showing Atari HW and OS information
  - "lock" command for setting what information is shown every time on
    entering the debugger, e.g. disassembly or memdump from given address.
    "regaddr" argument does that from address pointed by given register
  - improved register name handling + fixed DSP reg name matching
  - if both sides of conditional breakpoint condition are identical, replace
    right side with current value of given expression (e.g. if it's "d0",
    use current D0 value).  If the comparison is for inequality ("!"),
    output the value & break only when the value changes from the previous
    value (not original like with other comparisons).  Symbols support
  - ":trace" option to trace/output breakpoint hits without breaking
  - breakpoints count hits and can be optionally removed after first hit
    (":once" option) or triggered only on every Nth hit (":<count>" option)
  - dsp/address command is a shortcut for conditional breakpoints and its
    argument can be an expression (see "evaluate" above)
  - Display DSP instructions cycle timings in disasm mode (in cycles)
  - Configuration options for how many lines to disasm & memdump
- Fix VBLs/s counting to work also when --run-vbls isn't used

Other changes:
- Considerably expanded debugging and hard disk sections in manual
- CMake build support, this fixes OSX building and adds support
  for building Hatari in different directory from the sources
- Removed autotools usage/support, added CMake "configure" script
- Hatari remote control programs updates (see their own release notes
  for details)


 Version 1.3.1 (2009-09-05):
 ---------------------------

This is only a bug fix release:
- GEMDOS HD emulation works together with ACSI HD image again
- Fix incorrect use of DESTDIR in python-ui installation
- Fix memdump/disasm in python-ui


 Version 1.3.0 (2009-08-16):
 ---------------------------

Emulation:
- Hugely improved DSP emulation:
  - Many more DSP using games/demos/apps work now
  - Preliminary sound support (e.g. most DSP based .MOD-playback works)
  - Better cycle counting / accuracy
  - Many speed improvements
- Major rewrite of the internal work/structures of video.c :
  - Allow to mix 50/60 Hz lines of 508/512 cycles and to keep correct
    video/cpu sync (fixes TCB in SNY, DI in MindBomb, TEX in Syntax Terror).
    This also adds support for dynamic calculation of HBL/Timer B positions
    when freq/res are changed (fixes SHFORSTV by Paulo Simoes)
  - Improved Timer B accuracy when starting it in a rare case
  - Handle end of line as well as start of line for Timer B
    in event count mode (using MFP's AER) (fixes Seven Gates Of Jambala)
  - Add another 'O byte' line method (fixes No Buddies Land)
  - Some more color alignment with the shifter when using movem.w/movem.l
    (for spectrum512 like images)
- Improved Blitter timings / cycles counting
- GEMDOS emulation can emulate appropriately named host subdirectories
  as separate partitions
- Bug fixes for GEMDOS HD emulation Fopen and Fseek calls

Emulator:
- DSP changes:
  - DSP state saved to memory snapshots
  - Threading support removed from DSP emulation (for better synchronization)
- "keyDebug" configuration file setting was renamed to "keyPause"
- Major debugger improvements:
  - Invoked with AltGR+Pause. New "keyDebugger" configuration file setting can
    be used to change this
  - Show PC/HBL/VBL/cycles when entering debugger
  - Support multiple number bases. By default values are expected in
    decimals; $-prefix is needed for hexadecimal and %-prefix for binary
    values.  Default number base can be changed
  - Internal debugger can be used to debug also DSP code
  - Support for (PC) address breakpoints and conditional breakpoints
    (watchpoints), both on CPU and DSP. Watchpoints support multiple
    conditions, register & memory values and some internal Hatari
    variables like VBL, HBL, LineCycles, FrameCycles
  - Support for stepping CPU and DSP code
- Emulated programs can now change Hatari options like --fast-forward,
  --trace etc. by giving a suitable Hatari command line string to
  XBios call 255.  This is enabled when Hatari is started with
  the --bios-intercept enabled
- Support Videl horizontal fine scrolling for 16 bpp and 32 bpp host screens
- Process successive motion events before returning from event handler
  (to fix analog joystick jitter slowing Hatari input processing)
- FPS measurement shown when emulation is paused & --run-vbls option
- Mouse grab option (--grab)
- Some fixes for building Hatari with MS-VC6 and for the Wii
- Statusbar assert (bug #15512) fixed
- Reworked the main dialog of the GUI and split the disk dialog into two
  separate dialogs, one for floppy setup and one for hard disk setup

Utilities:
- New atari-hd-image.sh script for creating HD image files
- External Python GUI and CLI interfaces for Hatari in main repo

Documentation:
- Debugging and performance sections added to manual


 Version 1.2.0 (2009-01-24):
 ---------------------------

- The Hatari project has been moved from hatari.sourceforge.net to
  http://hatari.berlios.de. Please update all bookmarks!
- New zip2st.sh shell script for converting .ZIP files into .ST disk images
- Fixed a bug that could write data to the wrong disk image (resulting
  in data loss)

Emulation:
- MIDI input supported in addition to output; --midi option is now
  replaced with separate --midi-in and --midi-out options
- Support for STE hardware horizontal scrolling in medium res
- Make the FDC Read Address command always return success, even if
  we don't really return the correct bytes for now (fixes a few game loaders)
- Improved shadow register when writing to the YM2149 (fixes X-Out music)
- Cleaner blitter code with improved timings
- Emulation of interrupts jitter for HBL and VBL + improved timing accuracy
- Improve color alignment with the shifter (for spectrum512 like images)
- Fix to the fire button detection reported in some games
- Added IDE hard disk emulation

Emulator:
- Pause/unpause shortcut


 Version 1.1.0 (2008-11-29):
 ---------------------------

Emulation:
- Falcon DSP emulation good enough to improve some few games/demos, e.g.
  Virtual City. (most still work better with emulation disabled, though)
- New sound engine that fixes all problems with the old one
- 16-bit stereo sound (instead of 8-bit mono)
- Improved blitter emulation (blitter cycles emulation, blitter interrupt)
- Improved STE support for some video registers (hscroll, linewidth, ...)
- Improved printer emulation
- Improved STE microwire emulation
- Improved support for games & demos which are accessing IKBD directly
  (including a fake 6301 emulation for the known IKBD programs)
- ACSI emulation fix to get HDDriver working
- Some other minor bugfixes to ST/STe emulation (FDC, MFP, PSG, RS-232)
- Improved MFP emulation
- Improved 68k emulation (move.b Ax,(Ay) and extb.l)
- Fixed bugs in the GEMDOS HD emulation (Pexec() etc.)

Emulator:
- Statusbar and overlay led features
- Screenshots work also in VDI/TT/Falcon mode and are saved as PNGs
- Support for automatic frameskip and pausing emulation
- Support for embedding Hatari window (on X11) and control socket
- Improved memory snapshot function
- Improved the "trace" debug function


 Version 1.0.1 (2008-03-30):
 ---------------------------

- This is just a bug-fix release, without new features.
- Fixed some compile problems on non-unix-like systems (like MingW).
- Fixed crashes in Spec512 emulation code ("Dan Dare 3" and little endian ARM).
- Blitter source address is not incremented anymore in operation mode 0 and 15.
- STE small overscan video effect is now displayed on the left side instead
  of the right side (fixes "Just Musix 2" menu for example).
- Hatari now works on 256 color displays right again.
- Fixed PSG mirror register emulation (fixes e.g. sample sound in "Ooh Crikey
  Wot A Scorcher" demo).


 Version 1.0.0 (2008-03-17):
 ---------------------------

- The user's configuration files are now located in the directory ~/.hatari/
  instead of the $HOME directory itself.
- Improved VDI resolution mode (resolution can now be change in small steps).
- The 'Frame Skip 8' option can now be correctly selected, too.
- Fixed some bugs/problems in the GEMDOS HD emulation (with Fopen & Fcreate).
- Keyboard shortcuts for saving and restoring memory snapshots.
- Hatari can now be compiled with CeGCC, too.
- Fixed some problems with the FPU emulation. NeoN Grafix renders now right.
- Writing to floppy disk images works now also with TOS 4.0x.
- A lot of source code clean-up and beautification.
- Monochrome mode now runs in 71 Hz, and 60 Hz color mode now also really runs
  with 60 Hz refresh rate.
- Fixed memory snapshot files (some important data has not been saved before).
- It is now possible to automatically load/save memory snapshots at start/exit.
- Fixed some bugs in the file selection dialog.
- Some minor improvements in the GUI: Improved text edit fields, "Cancel"
  buttons can now be activated by pressing the ESC key, and Hatari asks the
  user before resetting and quitting the emulator.
- The Hatari executable is now relocatable (so the RPM can be relocated, too).
- It's now possible to enable special trace output with the "--trace" option.
- The size of the borders can now be specified in the hatari.cfg file.
- Fixed Spec512 screen plotting on big endian machines.
- Native screen conversion functions for 32 bpp host display mode.
- Reworked the command line options.
- Added missing read for "clr" in 68000 CPU mode.
- Cycle correct MULU/MULS/DIVU/DIVS in 68000 CPU mode.
- Support for 68000 instructions pairing
- Better emulation of exception stack frame (bus/address error), used in some
  protections.
- Don't change illegal 68000 opcodes $8, $a and $c if no cartridge is inserted.
- Ensure ACIA has consistent values when reset.
- More precise interrupt handling, allowing to mix CPU cycles and MFP cycles
  with greater precision.
- Various improvements in MFP emulation (stop/start timer without writing to
  data register, reading data register, handle pending cycles when timer
  "wraps" (i.e. data register reaches 0), ...). Supports programs using some
  very "fast" timers (Overscan Demos, ULM Demos) and requiring nearly cycle
  exact synchronisation with the 68000.
- Mostly correct wait states when accessing sound registers (add wait state for
  $ff8801/ff8803 when needed).
- Correct values of cycle counters read & write accesses for the most common
  cases used for fullscreen/hardscroll.
- Correct values for Video_CalculateAddress, taking into account frequency and
  left/right borders' state, needed for correct synchronisation between video
  and cpu.
- Improve top/bottom border removal, including 60 Hz bottom border, as well as
  "short" 50 Hz screen (171 lines)
- Support for all left/right border removal, including 0 byte lines.
- Support for hardscroll on STF, including the most recent ones using 4/5 lines.
- Support for 4 pixels horizontal hardscroll on STF (ST Connexion in Punish
  Your Machine)
- Small adjustements in cycle precise color handling (spec512.c)


 Version 0.95 (2007-05-12):
 --------------------------

- This release brings you basic Atari TT and Falcon emulation!
  Please note that both new emulation modes are still highly experiemental,
  some few games and demos work, but most still have more or less big
  problems.
- Basic emulation of Falcon video shifter (Videl), NVRAM and DMA sound is in
  place. The biggest drawback: There is no working Falcon DSP emulation yet.
- Screen/Shifter emulation timings have slightly been changed. Some things
  now work better, some others work worse...
- Some patches for compiling on RiscOS and AmigaOS have been included.
- Compiling Hatari for Windows now works better.
- Added Hatari icon (hatari-icon.bmp).
- Fixed "movec" bug in 68020 CPU mode.
- Keyboard shortcuts for loading & saving memory snapshots (AltGr+k & AltGr+l).
- The built-in debugger has been slightly improved to be more user-friendly.
- Added "hmsa" tool - a little program for converting .MSA files to .ST and
  vice versa.


 Version 0.90 (2006-08-22):
 --------------------------

- Better Spectrum 512 support (60Hz support, improved I/O memory waitstates).
- STE right border opening support (used in Obsession, Pacemaker).
- Blitter Smudge mode support (used in Pacemaker demo).
- Wheel-mouse simulates cursor up and down.
- Work-around to FDC handling, --slow-fdc option is not anymore needed.
- Bugfix to MFP, sound works now in more YMRockerz releases.
- Bugfix to GEMDOS path handling (Hatari SIGSEGV).
- Bugfix to emulated memory initialization (4MB was cleared earlier, now
  exactly the amount set up for Hatari.  Saves memory on embedded systems
  if less than 4MB is specified.)
- Re-written command-line option handling.
- (Again) lots of code const/static, type usage and indentation cleanup.
- Preliminary support for TOS 3.0x and 030 TT software that runs in ST
  resolutions and doesn't need PMMU.
- Native GUI for Mac OSX.
- ACSI emulation fixes to get HD formatting to work with AHDI 5. HD emulation
  now works quite fine with AHDI 5 (but other HD drivers are currently not
  supported).
- Joystick shortcut changed to toggle cursor emulation between ports 0 and 1.
- Keys for all Hatari shortcuts can now be configured from hatari.cfg.
- Added command line option for setting ST keyboard mapping.
- Joystick command line option requires now parameter for a port for which
  the joystick cursor emu is enabled.
- Fixed relative mouse event handling in zoomed low-rez.
- Hatari shows now more of the bottom borden (screen size is now 384x276
  instead of 384x267).
- Fixed sync delay timings - sound should now be better (e.g. on Mac OS X).
- Added basic support for compiling Hatari with MinGW.


 Version 0.80 (2005-10-12):
 --------------------------

- Support for STE hardware emulation: STE palette, STE shifter (horizontal fine
  scrolling, split screen effects), DMA sound and STE joypads.
  See the manual for a list of working STE applications/games/demos.
- Hatari can now emulate up to 14 MiB ST RAM instead of only 4 MiB.
- Support for parallel port joysticks.
- Improved GEMDOS HD emulation (added Fattrib() call).
- Adding and removing a GEMDOS or ACSI hard disk should now work correctly.
- Re-factoring of the screen conversion functions.
- Improved manual: Now with screenshots of the options dialogs.


 Version 0.70 (2005-06-05):
 --------------------------

- As always: Code cleanup and bug fixes.
- No more crashes when a program tries to access illegal sector numbers.
- Improved built-in ROM cartridge.
- Rewrote the IO memory emulation code -> Better compatibility.
- Support for TOS 1.06 and TOS 1.62
- Emulated CPU can now also be run at 16 MHz or 32 MHz.
- File selection dialog scrollable with mouse wheel or cursor keys, too.
- Hatari now works on 64-bit host CPUs, too.
- Floppy disk images can now be set writable/write-protected in the GUI.
- Hatari can now also load a global configuration file (e.g. /etc/hatari.cfg).
- Configurable logging functions.


 Version 0.60 (2004-12-19):
 --------------------------

- Again some code cleanup and bug fixes.
- Window/fullscreen mode is now correctly initialized from the configuration
  file.
- Added --window command line option to force a start in window mode.
- Added alert boxes to show warnings, errors and information messages.
- PC mouse pointer is now better in sync with the ST mouse pointer.
- It's now possible to load an alternative cartridge image file.


 Version 0.50 (2004-07-26):
 --------------------------

- A lot of internal code cleanup and bug fixes.
- Added a dialog for creating new blank floppy disk images.
- The source code has been optimized for better emulation speed.
- Added RS232 emulation (still very experimental and not very well tested! It
  seems not to work reliable yet. Help for debugging is very appreciated!).
- Some bugs in the 68000 emulation have been fixed.
- The emulator now checks for double bus errors and stops the emulation if
  necessary (instead of crashing the emulator).
- Timer-D is now patched correctly again.
- The old font has been replaced by two new fonts so that the GUI now looks
  better in high resolutions.
- The fonts are now linked into the executable.
- Added support for DIM floppy disk images.


 Version 0.45 (2003-10-30):
 --------------------------

- This is just a minor release on the way to version 0.50. It is not very
  well tested, so be warned!
- New build system (with a "configure" shell script).
- A disk image destroying bug in the MSA compression function has been fixed.
- It is now possible to redirect the printer output into a file.
- Experimental MIDI output support.
- Added the possibility to save memory snap shots.
- Pending HBL and VBL interrupts are now emulated correctly (I hope).
- Some speed improvements.
- GEMDOS HD emulation now also works with EmuTOS.


 Version 0.40 (2003-07-11):
 --------------------------

- Support for ZIP and GZIP compressed disk images!
- Configuration file support for loading and saving the emulator settings.
- Hatari now works on machines with Sparc CPUs, too.
- Fixed a problem that slowed down the emulator in monochrome mode when using
  TOS 2.06.
- Inverted monochrome mode is now supported, too (some games like Maniac
  Mansion use this).
- Added Mega-ST compatible real time clock (RTC) emulation.
- The GEMDOS HD emulation has been improved (it now also works with lower-case
  file names) and many bugs have been fixed there.
- Improved keyboard mapping (added mapping via PC keyboard scancode and via
  reloadable mapping files).
- The screen rendering routines have been generalized (less differences between
  windowed and fullscreen mode).
- Hatari can now be cross-compiled, too. You can even compile it for MiNT now.
  However, it does not run very well there yet.
- Support for RAM TOS images.
- Improved memory mapping (the different memory regions should now behave much
  more like on a real ST).
- Improved M68k exceptions (bus errors and exception cycle timings).
- Fixed some bugs in the extended VDI resolution mode (now it is working with
  EmuTOS, too).
- Some games that poll the write-protection signal of the FDC to check for
  disk changes should now be working, too.


 Version 0.30 (2003-03-12):
 --------------------------

- Some parts of the code accessed the SR directly to read the IPL -
  however the UAE CPU core only updates the SR when doing a MakeSR() first.
  So this is done in the affected code parts now, too.
- The IPL wasn't raised when a MFP interrupt occured - fixed now.
- Full screen resolution for ST-Low can now be selected from the screen setup
  dialog.
- The IKBD emulation does not longer duplicate joystick fire buttons when
  a game tries to use both, joystick and mouse
- Improved audio timer function - the code should now be a little bit faster.
- Resynced Hatari's UAE CPU core with UAE 0.8.22 - this fixes some bugs in 68k
  instructions like ABCD and SBCD.
- Added patches for TOS 2.05 so that this TOS version should now work, too.
- Rewrote TOS patching routine. It is much more flexible now.
- Removed 0xa0ff opcode for VDI resolutions; using GEMDOS_OPCODE now instead.
- Fixed MMU RAM size configuration bug.
- Rewrote some more screen conversion functions in C.
- When a bus or address error occurred, the PC was often not set to the
  right exception handler routine. This has been fixed now.


 Version 0.25 (2002-12-30):
 --------------------------

- Patches for big endian systems (Spectrum 512 pictures are now working there).
- Hatari now also compiles and runs under Mac OS X.
- Blitter emulation has been added.
- There is now the possibility to save YM or WAV sounds.
- Big VDI resolutions (e.g. 800x600) are now supported, too.


 Version 0.20 (2002-02-18):
 --------------------------

- Added graphical user interface for configuration of the emulator settings.
- Real joysticks can now also be used to simulate the ST joysticks.
- Yet another bugfix for BeOS (lseek again...)
- Support for hard disk images.


 Version 0.11 (2001-10-10):
 --------------------------

- High level (GEMDOS) harddisk emulation.
- ST-Med/ST-Low mixed mode now works.


 Version 0.10 (2001-08-16):
 --------------------------

- Improved CPU cycles emulation.
- Added Spec512 support.
- Some keyboard shortcuts.
- Added the possibility to switch between fullscreen and window mode.
- ST Medium resolution conversion routine.
- Built-in debugger.
- Added possibility to grab screenshots.
- Sound support (not working very well yet).


 Version 0.05 (2001-06-01):
 --------------------------

- Joystick emulation via cursor keys.
- ST-LOW resolution conversion routine is now working on big-endian machines.


 Version 0.04 (2001-05-27):
 --------------------------

- Added Stefan Berndtsson's patch for big-endian machines.
  Hatari now runs also with non-x86 Linux machines! Thanks Stefan!
- Rewrote the ST-LOW resolution conversion routines in C ==> ST-LOW now works!
- Added some of the WinSTon patches Paul Bates recently published
  at the WinSTon BBS (Thanks to Ladislav Adamec for the hint).
- Cleaned up the source tree a little bit.


 Version 0.03 (2001-04-03):
 --------------------------

- Rewrote some more assembler functions. FDC emulation now works!
- SDL Keyboard code finished and included a SDL-Key -> ST-Scancode table.
- Added mouse support.


 Version 0.02 (2001-03-28):
 --------------------------

- Added very simple SDL support.
- Rewrote a lot of assembler functions in C (e.g. intercept.c).
- Adapted the UAE CPU. Now Hatari is able to boot a TOS 1.0x ROM, the
  Desktop shows up, but no mouse and keyboard interaction yet.


 Version 0.01 (2001-03-21):
 --------------------------
- Made the WinSTon source code compilable with GNU-C.
- Added the UAE CPU sources.

