Hatari Changelog

What's new in Hatari 1.9.0-2

Nov 8, 2015
  • EMULATION:
  • STE Joypads:
  • Fix: Joypad A Option button
  • Fix: Joypad B extended buttons
  • ACSI / IDE:
  • Fix: image file attribute check when using device files
  • Fix: v1.8 ACSI regression with A1=0 case
  • GEMDOS HD:
  • Fix: matching exactly 8 chars long file names containing '.'
  • Better mapping of host errors to GEMDOS error codes
  • Support for mapping file names with 8-bit characters between host and Atari encodings (umlauted chars etc)
  • Program header (TT-RAM) allocate flags support
  • CPU:
  • update WinUAE CPU core version from 2.3 -> 2.8.1 -> 3.0 -> 3.1 MMU emulation fixed instruction/data cache emulation better 68020/30 prefetch pipeline cycle accuracy, etc.
  • in 68000 mode, remove some un-allowed for CMPI, BTST and TST
  • check for address error when new PC is set at the end of RTE, RTS and RTR
  • fix "move.b an,", it's not allowed and should give illegal instruction
  • improve stack frame for bus error and address error
  • allow bus control only for 030 (i.e. prevent TOS forcing 16Mhz at boot with higher CPU levels)
  • Memory:
  • TT-RAM / 32-bit addressing support both for TT & Falcon emulation (when using EmuTOS, this requires version 0.9.4 or later)
  • FDC changes:
  • for STX disks, fix type I commands with verify bit on tracks with no sector
  • for ST/MSA, check read address and read track are not beyond max track
  • MFP:
  • better emulation of GPIP, AER and DDR
  • MIDI:
  • some RX/TX interrupt conditions were not correctly handled
  • TDRE bit is status register more accurately handled
  • Video:
  • fix value when reading video counter $FF8205/07/09 in high res
  • Blitter:
  • when transfer ends, hog bit should be cleared in control register
  • DSP:
  • better emulation of the HREQ signal
  • EMULATOR:
  • Support for compiling with libSDL2 (experimental)
  • SDL2 supports other than 2x scaling factors for ST/e emulation
  • Misc fixes:
  • Fix: WinUAE CPU core (FPU) memory state restore
  • Fix: chrash with VDI extended resolution emulation when C: isn't GEMDOS HD emulated drive
  • Fix: invalid defaults for real joysticks
  • Fix: compilation when zlib is missing
  • Additional TOS run-time patching:
  • Support fast boot also with TOS v3 & v4
  • Support 32-bit addressing also with TOS v4
  • Replace TOS v4 instructions unsupported on 060
  • HW specific phystop value in VDI mode
  • Options:
  • Fast boot (warm boot / memory check bypass) is disabled by default
  • 68060 CPU level and --ttram support with new WinUAE CPU core
  • New --png-level option to decrease AVI compression CPU load
  • Mouse warping on reset & resolution change can be controlled with new --mousewarp option
  • Hard drive emulation:
  • BUS ID for ACSI drive can be specified with --acsi
  • GUI and command line options to enable 8-bit file name Atari host charset conversion for GEMDOS HD
  • GUI and command line options to specify GEMDOS HD emulation drive (default = C:), or to skip recognized drives used by partitions on ACSI & IDE images Partition count parsed by Hatari might not match count used by Atari HD driver due to driver differences in interpreting disk MBR
  • Refuse to mount same HD image from multiple Hatari instances (on platforms supporting BSD flock()), to avoid corrupting them
  • SDL GUI:
  • joystick navigation in options GUI
  • keyboard navigation & shortcuts in options GUI
  • sort file selector items case-insensitively with folders first
  • Partial support for showing Latin1 chars from UTF-8 file names
  • AltGr+F keyboard shortcuts to switch mode/type for emulated joysticks and joypads
  • User can reset or quit emulation from CPU halt dialog
  • Fix: sync joystick changes with statusbar
  • Fix: update default max window size for 2-line statusbar NOTE: size would need to be updated in Hatari config files too!
  • Fix: statusbar assert when FPU/MMU/TT-RAM are enabled in WinUAE CPU core
  • When cpu enters 'halt' state in case of double bus/address errors, show a dialog window to reset or call the debugger
  • Fix bug in the filesector dialog that could create bug in other dialogs used in Hatari
  • Debugger:
  • Fix: crash when GEMDOS tracing is used without GEMDOS HD emulation
  • Fix: update external disassembler's CPU mask when CPU type is changed (it wasn't restricted to opcodes valid for given CPU type)
  • Fix: breakpoint addition/removal within chained breakpoints
  • Fix: Atari program detection on Windows for "symbols" command
  • Profiler support for TT-RAM (uses *ton* of memory)
  • Profiler support for (030) data cache and new "profile caches" command to show i/d-cache hit/miss histograms
  • Add trace support for IDE, MIDI and keymaps. ACSI (SCSI) and IDE trace output shows primary partition tables for ACSI & IDE images (both Atari and DOS MBRs are supported)
  • Add "os_base" trace option to trace Fopen/Fclose/Pexec/Pterm*. That and "os_all" will now enable also xconout console redirection
  • Output from --conout goes now to stdout instead of stderr
  • Add "reset " command
  • Add "save" subcommand to "history" command
  • Add "basepage" address variable
  • OTHER CHANGES:
  • Add script to convert long host file names to Atari file names, use that in atari-hd-image script
  • Add hatari-prg-args script for providing arguments to autostarted programs
  • Fix Atari program detection on Windows in "gst2ascii" tool
  • Hatari & disk image icons in SVG & PNG formats (multiple sizes)
  • Remaining Hatari OSX UI changes for Hatari v1.8.0 (localization)
  • Add video-recording.txt doc on video recording/uploading best practices
  • FIXED DEMOS:
  • Graphix Sound 2 in Relapse by Cybernetics (blitter+cpu, bus arbitration)
  • RGBeast by Aggression (video, writing to video counter during active display)
  • My Socks Are Weapons by Legacy (video, reading video counter in high res)
  • FIXED GAMES:
  • Superior 65 Blood Money (cpu, exception stack and bus error) (note that this version is bugged and will crash with TOS 1.04 or 1.62)
  • Obitus (STX version) (fdc, seek+verify on a track with no sector)
  • The Teller (STX/CTR version) (cpu, exception stack and address error)
  • War Heli (cpu, exception stack for address error and prefetch)
  • FIXED PROGRAMS:
  • Realtime and M by Eric Ameres (midi + mfp, toggle bit 0 of AER)
  • Notator (midi, more precise TDRE bit in status register)
  • KNOWN REGRESSIONS (SEE COMPATIBILITY LIST):
  • Suretrip demo by Checkpoint
  • Golden Island game demo with WinUAE CPU core

New in Hatari 1.8.0-2 (Aug 14, 2014)

  • The archive hatari_1.8.0-2_OSX_x86.zip contains 2 versions of Hatari compiled
  • for Intel x86 (32 and 64 bits), one for each core. It should work with OS X 10.5 to 10.9.
  • For better STF/STE emulation, use Hatari.app.
  • For Falcon emulation, use Hatari_Falcon.app.
  • These versions also use the capslibrary v5.1 by SPS, allowing to access IPF and CTR files
  • made with the Kryoflux board.

New in Hatari 1.8.0 (Jul 30, 2014)

  • EMULATION:
  • ST video changes :
  • Handle 0 byte line by switching freq in STE mode
  • Use high res when ff8260 is set to 3
  • Randomly return 0 or 1 when reading unused bits 3,7 and 11 of color registers (except when running from ROM)
  • Better detection of bottom border removal on a 60 Hz screen
  • support for color change during only 4 cycles
  • better bitmap/color alignment for STE med res overscan at 60 Hz
  • Set default value of nSpec512Threshold to "1" instead of "16"
  • Update the position of the next VBL when 50Hz and 60Hz lines are mixed
  • When video address is set into IO region, keep the video pointer on 24 bits
  • Videl changes :
  • correct masking of the true color palette registers
  • CPU changes :
  • Fix a case when MFP's interrupt happens during the IACK sequence for HBL/VBL
  • Many prefetch changes required by some game's protection
  • Sound changes :
  • Fix STE sound mixing using LMC when mixer=0 (DMA sound only)
  • Fix some crossbar's sound errors for Falcon
  • Fix Microwire's decoding of mask/data (based on official LMC1992's doc)
  • FDC changes :
  • Add configurable RPM speed for each floppy drive, the possibility to turn each drive ON/OFF and the choice between single or double sided drive
  • Correct timings, behaviour and status register for all commands when a drive is OFF or empty.
  • Rewrite the index pulse part and all the delays expressed as disk's revolution
  • Add support for the "Force Int on Index Pulse" command
  • Rewrite the DMA functions for better accuracy
  • Add support for IPF/CTR files by using the capsimage library
  • Add open source support for Pasti STX files, including random/fuzzy bits and variable length bits. Also allow to save writes to a .stx file into an additional .wd1772 file (store 'write sector' and 'write track' data)
  • Don't force drives A and B at $4c2, keep the values detected by TOS
  • Many other timing / status register improvements
  • GEMDOS HD emulation:
  • Fix: clip filenames given through GEMDOS calls to 8+3 length using first '.'
  • Fix: autostarting programs with GEMDOS-illegal host characters in their names
  • ACSI hard disk changes:
  • Fixed/improved READ CAPACITY and INQUIRY commands
  • Unsupported commands are now handled correctly
  • Now using fseeko() instead of fseek() for supporting large images
  • Other changes:
  • Don't enable MegaST's real time clock by default, it can cause some crashes in STF/STE mode
  • Improve ACIA's wait state with E clock
  • Add support for IKBD commands 0x11 and 0x13 (resume/pause output) and 0x17 (joystick monitoring)
  • EMULATOR:
  • SDL GUI:
  • Update clock speed in the status bar when changing bus speed in Falcon mode
  • In the floppy dialog, use a checkbox to enable/disable drives A and B and another checkbox to choose single/double sided drive
  • In the screen dialog, add checkbox for --desktop-st option
  • Add a 2nd line in the status bar, with infos on FDC, joysticks, monitor
  • Fix OSX performance issue caused by statusbar and overlay LED doing their own SDL_UpdateRects() calls
  • New command line options:
  • Options --drive-a and --drive-b to enable/disable drives A and B
  • Options --drive-a-heads and --drive-b-heads to select single or double sided drives A and B
  • --slowdown option to increase (multiply) VBL wait times
  • New Native Features commands:
  • NF_EXIT exits emulator with given exit code
  • NF_DEBUGGER invokes Hatari debugger from native program
  • NF_FASTFORWARD sets fast forward on/off
  • Tracing improvements:
  • Add option for tracing NatFeats calls
  • Fix: Xbios(255) modified the given argument string
  • Allow BIOS, XBIOS, GEMDOS, VDI and AES tracing to be enabled without enabling also X/BIOS interception, GEMDOS HD emulation or extended VDI mode
  • Show PC value for traced Bios/XBios/GemDOS calls
  • Debugger:
  • Fix: release mouse in all cases where debugger can be invoked
  • Fix: DSP disassembler didn't in all cases show illegal opcodes correctly
  • Fix: "symbols" command crash when it was used during TOS bootup
  • Fix: TOS and cartridge addresses weren't (with all TOS versions) in address order which asserted in profile data post-processor
  • Fix: "next" command didn't work correctly in "hex" number base
  • Fix: depending on compiler/linker/assembler, DATA/BSS debug symbol offsets can in programs be either relative to their own, or to TEXT section start. If former fails, try latter when loading symbols.
  • New "ym" info subcommand to show YM register values
  • "quit" command by-passes exit confirmation dialog and takes an optional Hatari exit code value
  • removed limits on breakpoints and their conditions
  • when entering debugger, current program's DRI/GST format debug symbols are automatically read from it, if such are available
  • new --debug-except option to specify which exceptions invoke the debugger, and WinUAE CPU core support for -D toggle option
  • "next"/"dspnext" commands work like in other debuggers, they skip subroutine/exception calls, for all other instructions they works like "step" command (earlier they always moved to next instruction in memory)
  • "next" and "dspnext" commands support optional "instruction type" argument, which can be used (for example) to continue emulation until subroutine returns
  • "history" command takes optional parameter specifying how many instructions of history will be tracked
  • CPU & DSP profile commands have now subcommand for profiling loops
  • "CpuInstr" and "DspInstr" variables for count of instructions executed since emulation was last continued from debugger
  • In addition to "!" condition, also "" conditions can store the checked value (when both sides of conditions are identical). With above change, this can be e.g. used to detect and profile what are worst frames in games and why
  • New "rename" command to rename files. Useful for scripted worst frame and spinloop profiling
  • Address space in 'dm' command can be given like in DSP disassembly, "dm x:$100", in addition to earlier "dm x $100" syntax
  • Fix out of bounds memory access that could result in bad disassembly output when using the external disassembler (only "dc.w" were printed)
  • TOOLS:
  • Increased max partition size in atari-hd-image script to 512MB.
  • New hatari_spinloop.py script for post-processing loop profile data.
  • It can tell how many times loops were executed, how many times they
  • spinned at minimum and maximum, at which VBL those happened, and what
  • was the standard deviation of that.
  • gst2ascii supports now both section relative and TEXT section relative
  • DATA/BSS symbol offsets
  • hconsole.Main() takes now Hatari command line options as argument
  • AHCC/GCC/VBCC examples on using (all) Native Features APIs
  • Improved mingw cross-compilation support
  • FIXED DEMOS :
  • 4-pixel plasma screen by TOS Crew (video, color change during only 4 cycles)
  • HighResMode by Paradox (video, color changes in overscan med res at 60 Hz)
  • It's A Girl 2 by Paradox (video, bottom border removal on a 60 Hz screen)
  • Pacemaker by Paradox (microwire, YM sound was muted)
  • Panic by Paulo Simoes (video, was broken since Hatari 1.7)
  • Shforstv.exe by Paulo Simoes (video, did not work in STE mode)
  • Sommarhack 2011 Invitro by DHS (CPU/MFP, top border not removed)
  • Stax Compilation #65 (conflict with Mega ST's RTC)
  • The Union Demo (cpu, memory access, ikbd, protection)
  • The World Is My Oyster Convention Report Part by Aura (video, res=3)
  • Tymewarp (cpu, bus error)
  • UMD 8730 by PHF (video, unused bits in STF color registers)
  • IKBD no jitter by Nyh (acia/video, use a VBL of 160240 cycles)
  • FIXED GAMES :
  • Batman The Movie (cpu, exception stack)
  • Chart Attack Compilation (cpu, prefetch)
  • Darkman (cpu, prefetch)
  • Dragon Flight (cpu, illegal instruction)
  • International 3D Tennis (cpu, prefetch)
  • Leavin' Teramis loader text (video address at $ffe100)
  • Lethal Xcess Beta (cpu, bus error, code running at $ff8800)
  • Lethal Xcess (mfp, top border not removed sometimes)
  • Maze (by Martin Dennett & John Parker)
  • Parasol Stars (cpu, prefetch)
  • Reeking Rubber (by Nature), Falcon game
  • Titan (cpu, prefetch)
  • To Be On Top (cpu, memory access, ikbd, protection)
  • Warp (ikbd, interrupt used for decoding sectors)
  • Xenon 2 (cpu, prefetch)

New in Hatari 1.7.0 (Aug 2, 2013)

  • Experimental MMU for the 68030 mode
  • Improved IKBD/ACIA : full ACIA emulation (timings, serial link, registers)
  • Much more accurate MFP : simultaneous interrupts, delayed IRQ, IACK cycles
  • IACK cycles for CPU's exceptions (HBL and VBL)
  • FDC : better GAPs' timings, angular speed/position used when accessing data
  • TT video emulation, with better video modes
  • Bug fixes for Gemdos HD emulation
  • Some changes to the SDL UI (fileselector, drive LED)
  • Lot of improvements to the debugger and to the profiler (CPU and DSP)

New in Hatari 1.3.1 (Sep 14, 2009)

  • 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

New in Hatari 1.3.0 (Aug 17, 2009)

  • Improved DSP emulation - Many DSP based games/demos/apps work now.
  • Major rewrite of the ST shifter emulation (better overscan & sync-scrolling).
  • More precise Blitter timings.
  • Multiple partitions support for GEMDOS hard disk emulation.
  • Bug fixes for GEMDOS HD emulation Fopen and Fseek calls.
  • The built-in debugger has been greatly extended.
  • 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.
  • New atari-hd-image.sh script for creating HD image files.
  • Added Python GUI and CLI interfaces for Hatari to the main repository.

New in Hatari 1.2.0 (Jan 26, 2009)

  • 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

New in Hatari 1.1.0 (Dec 1, 2008)

  • 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

New in Hatari 1.0.1 (Apr 1, 2008)

  • 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).