No i mamy kolejną wersje tego świetnego emulatora dużych, 16-bitowych komputerów ATARI - począwszy od modeli ATARI ST/TT a skończywszy na ATARI FALCON. Hatari 2.1.0. Jak zwykle z pokaźną ilością zmian i poprawek.
Hatari Version 2.1.0 2018-02-07
- Major rewrite of the YM2149 with a new cycle accurate emulation
- Major rewrite of the blitter to allow cycle exact bus accesses and correct bus sharing with the CPU
- Improved video emulation: bottom border at 60 Hz and number of displayed lines, video counter reloading, timer B in mono mode
- Add full support for MMU/MCU RAM configuration at $FF8001, support more RAM combinations (256 KB and 2.5 MB)
- Some STX floppy images were not correctly emulated when verify bit was set in the FDC
- Support for undocumented STOP behaviour on 68000
- Fix some rare bus accesses order and stack frames
- Fix some flags after DIV and BCD instructions
- Improved memory timing for 68030 depending on RAM type
- 68030 instruction cache was not correctly disabled when EI=0 in CACR
- Improve caches accuracy for 68020/30/40/60, with optional MMU support
- Large improvements to FPU emulation, including a new softfloat method
- MIDI support for Windows and macOS (with PortMidi library)
- Add support for AVI files > 4GB (up to 256 GB)
- SDL UI shows refresh rate and blitter usage
- Several improvements/fixes when using VDI
- Improvements/more options for autostart using virtual INF file
- Many improvements to debugger, especially for symbols handling
- Fix compilation for more targets (ARM64, MIPS, ...)
- Fixed demos: Sprite32 by Leonard, Jam-Cols by ICE, 4getful, Beams, many Falcon demos should run better
- Fixed programs: Hextracker for Falcon, Protracker 2.1 and Neochrome Master 2.8 at 60 Hz, Audio Sculpture
Revision Hatari Version 2.1.0 (2018-02-07)
Emulation:
- Video:
- Fix correct number of displayed lines when removing bottom border
- Improve bottom border removal on 60 Hz screen
- More accurate position for reloading video counter on line 310/260
- Fix STE video counter regression at start of VBL (off by 4 cycles)
- Fix Timer B counting when screen is in Mono mode and video resolution is set to low/medium
- Fix bug preventing screen to be drawn when video address = 0x0
- Add (dumb) Videl address and vertical frequency counters emulation
- Videl unused bits at $FF820E are read as zero
- Sound:
- New cycle exact emulation of the YM2149, all counters are incremented using a simulated freq of 250 kHz, giving a 250 kHz audio stream which is downsampled to the desired output frequency. Some undocumented cases were also measured on real STF Result should be much more accurate, clearer and emulate complex effects (phase cancelling on 2 voices for example)
- Fix bad sound during YM sample playing on Falcon/TT
- CPU:
- Support undocumented behaviour for STOP on 68000 when new SR has bit S=0
- Fix some cases where bus/address error stack had a wrong PC
- Correctly store the 32 bit address in the stack in case of a bus error
- Better memory timings for RAM accesses in 68030 mode (for Falcon)
- Accurate DIV overflow undocumented flags
- Correct V flag for BCD instructions for 68020/30
- 68030 instr cache was not correctly disabled when writing EI=0 in CACR
- Improve caches for 68020/30, add cache support when using MMU
- Add 68040/60 data cache emulation, with optional MMU support
- FPU:
- Large improvements in FPU emulation and related instructions/exceptions
- Support for undocumented 68882/68881 FPU constants
- Support for softfloat FPU emulation (slower but more accurate)
- Memory / MMU / MCU:
- Add full support for STF/STE MMU/MCU at $FF8001 and address translation (emulate the RAS/CAS signal depending on the size of the memory banks, TOS memory routines don't need to be patched anymore)
- Better results when reading "void" region between end of RAM and 4MB (return latest data seen on the bus on STF/STE)
- Add support for more RAM combinations (256 KB and 2.5 MB)
- Blitter:
- Add cycle exact bus handling for the blitter (correct bus count for CPU and blitter, suspend/resume blitter after any memory access, run part of next CPU instruction in parallel when starting the blitter)
- When writing busy bit=0, update interrupt line and don't clear hog bit
- Floppy:
- Emulate ripple carry adder "bug" for STF DMA address at $FF8609/0B/0D
- For STX images, add support for the verify bit in Type I commands
- Fix a rare case when looking for the next sector header of an STX image
- IKBD:
- Support for Audio Sculpture's custom IKBD program
- Emulator:
- MIDI support for Windows and macOS (with PortMidi library)
- Add support for AVI files > 4GB (up to 256 GB)
- Miscellaneous:
- Initial patching for ST-Book ROM
- Add keyboard shortcut for toggling borders
- Fix: rate-limit DSP illegal instruction warnings output
- Disk handling:
- Add "--gemdos-time " option so that user can specify whether emulation or host timestamps are used with GEMDOS HD files
- Fix: off-by-one error in ACSI image file name handling
- Memory handling:
- Support memory check skipping also on TOS v3 & v4
- Allow RAM size values in KiB instead of MiB
- SDL UI:
- Add a 'blitter-meter' to the status bar, depending on the blitter's usage
- Add refresh rate in the status bar (50, 60 or 71 Hz)
- Disable alt+F4 under Windows so that it doesn't close Hatari (in case alt+F4 is also used in the emulated program)
- Display handling:
- Add --resizable option to control whether Hatari SDL2 window can be resized (= turn it off to prevent accidental resizes)
- Support scaling AVI recording (PNG/BMP) frames
- Extended VDI mode font selected based on VDI height
- Fix: Handle window expose events with SDL 2.0
- Fix: don't switch bitdepth when recording AVI
- Fix: X11 window embedding (to Python GUI) with SDL2
- Fix: TOS v2 & v3 Atari logo display in extended VDI resolutions
- Fix: Limit Videl widths for GLES2 SDL2 backends
- Virtual INF file handling:
- Add "--auto" option to autostart programs also from somewhere else than C: root, and to enable required GEMDOS interception without full GEMDOS HD emulation
- Add --tos-res option to specify TOS ST/STE/TT resolution for color monitors, with or without autostart. Also enables blitter for machines & TOS versions supporting it
*Uses existing INF file as base, if one exists If not, specifies open window for boot drive - Fix: Use separate INF files for TOS v1 and v2+ autostarting
- Fix: Normal users cannot use tmpfile() directly under Windows
- Debugger improvements:
- Fix: '>>' bit-shift parsing
- Fix: CPU prefetch when changing PC address
- Add "CycleCounter" variable
- Add "info dta [addr]" command
- Add "cpu_regs" trace option to show register values after each executed instruction
- Add support for reading GNU-style a.out symbol table format (which is GCC default) in addition to DRI/GST symbols
- Add absolute symbols support in addition to BSS/DATA/TEXT ones
- Use terminal size for paging (disassembly, memdump, symbols) commands. NOTE: remove old dDisasmLines & nMemdumpLines options from Hatari config file, or set them to -1, to enable this!
- Add 'nSymbolLines' configuration option to specify how many lines 'symbols' command pages
- 'symbols resident' command and 'bSymbolsResident' config option toggle whether program symbols are removed when program terminates, or only when the next program starts
- 'symbols match" command and 'bMatchAllSymbols' config option toggle whether TAB completes all symbols or just symbol types relevant for given command
- 'symbols addr' is split into 'symbols code' & 'symbols data'
- TEXTEnd value is now TEXT+TextSize, instead of TEXT+TextSize-1
- Add "-f" option to 'cd' so that setup scripts can specify what directory is used after currently invoked script(s) have finished
- Move exception mask setting from config file "Log" section to "Debugger" section where it belongs
- Compilation:
- Fix compilation when using ARM 64 target
- Allow compilation on untested host architectures (e.g. MIPS & s390x)
- Search for local headers first, then system's one (eg zip.h)
- Don't redefine bswap_16/_32 macros if they already exist
- Other changes:
- Add French keyboard mapping that works also with SDL2
- All symbols output by gst2ascii are now TEXT relative and it supports also a.out format symbol tables
- Fix: Python GUI updated for Hatari v2.0
- Fix: Python GUI explicitly uses Python v2 (Arch Linux)
- Fix: Python tools made compatible both to Python v2 & v3 (Arch Linux)
- Fix: icon symlink generation (rpmbuild chroot)
- Fix: DESTDIR support for RPM packaging
- Fixed Falcon games:
- Ishar 1, 2 & 3, Lasers and Hommes, Moonspeeder preview 2 (Videl video counter)
- Boom preview, Lasers and Hommes, Tank Blaster (68030 instr-cache)
- Aazohm Krypth, Men at War, Push It, Running, Sky Fall, Sworm (autostarting)
- Fixed Falcon demos:
- Bound 2, E.K.O system (memory access timings)
- Bound 3 (Videl video counter)
- Agony & Chaos A.D. don't freeze anymore (vertical frequency counter)
- Mahabharata (Videl widths with SDL2)
- 2x1287, A Rh positive, Are you experienced, Autowaschen Verboten, Bound, Bound 42, Codein, Cycedelic knockout, Dan's Lustiges Kinderfest, Derealization, Dream Dimension, Echos, E.X. Illusion, Geranium, Hex Pistols, Hmmm, Oergs, Polygon Discount, Terrorize your soul, Warum, Virtual City (68030 instr-cache)
- Terrorize your soul (DSP warnings 100x slowdown)
- Firestarter, Virtual City, Whirlpool (autostarting with packed demos)
- Fixed TT versions of demos:
- 4getful, Beams (68030 instr-cache, undocumented FPU constants)
- programs for Falcon:
- Hextracker (Videl video counter, when not auto-started)
- Fixed games:
- Le Necromancien' STX image (verify bit in type I commands)
- Fixed ST/STE demos:
- Sprite32 by Leonard (RESTART_VIDEO_COUNTER on line 310/260)
- Jam-Cols by ICE (STE video counter timings broken in v2.0)
- Fixed ST/STE programs:
- Protracker 2.1 and Neochrome Master 2.8 (shifter, bottom border at 60 Hz)
- Audio Sculpture 1.3 and 1.5 beta (timer B in mono mode, bit S=0 in STOP, IKBD)
- True RAM's size detection under TOS/EmuTOS (memory config at $FF8001)
→ NOWSZY [Atari.Area] hatari 2.5.0
→ NOWSZY [ATARI] ST/Falcon:Hatari 2.5.0 19/04/2024
HATARI Version 2.5.0 (2024-04-18)
Removed features:
- The "--bpp" command line option and related code (i.e. the rendering functions for 16 bits-per-pixel host screens) have been removed since almost all recent hardware should support 32 bpp nowadays
Configuration changes:
- In hatari.cfg, section [RS232], rename:
- sSccBOutFileName => SccBOutFileName
- bEnableSccB => EnableSccB
Emulation improvements:
- MFP:
- When IRQ is cleared on one of the 2 ACIAs, do not clear IRQ on the MFP side if the IRQ is still set on the other ACIA
- Blitter:
- Ignore byte accesses to blitter registers defined as word only
- TT/DMA:
- Update sound FIFO on each HBL (like on STE)
- CPU:
- Sync CPU core with WinUAE CPU core 5.2 beta
- Improved 68000 cycle accuracy (IPL, STOP, TRACE)
- Fix IACK timings
- Return vector=24 if a spurious interrupt happens during the IACK sequence
- 68010 DIV overflow undefined flags update
- NMI handling
- MMU/generic CPU mode autovectored interrupt support
- Fix 68060 MMU MOVEM.L (An)+,<regs> if regs contain An
- 68040/060 MMU fault handler bug fix for MOVEM
- Fix FSINCOS and FMOVE.L/FMOVEM.L register in disasm
- Some softfloat fixes
- Fix stacked PC for branch/jump instructions doing a bus error
- DSP:
- Fix: effective address with modifier=modulo
- Add host interface initialisation
- Add host received data interrupt
- Improve bootstrap support
- Video:
- Add support for 4 pixel hardscroll on STF by stopping shifter with $FF8260=3 (new technique by Troed/Sync)
- In monochrome mode correctly mask the video address to 22 or 24 bit space depending on the machine type. Prevent crash in some cases when Hatari is compiled with "small mem" option
- Fix VBLANK location, should be line 308 on 50 Hz (was 307 before)
- SCC 85C30 (for MegaSTE, TT and Falcon)
- Major rewrite of most of the code, should support all modes used by TOS and EmuTOS or when accessing SCC's registers directly
- Support all serial ports as well as LAN port for MegaSTE and TT
- Joypads:
- STE joypad emulation now supports analog / paddle input, too
- FDC:
- For IPF/CTR support, caps library has a bug that resets FDC's TR and DR on warm reset (68000's reset command). We keep/restore the value ourselves
- IDE:
- Fixed emulation of the HOB (High Order Byte) of the last LBA48 valueLBA28 capacity announcement is now correctly limited to 2^28-1
- Falcon:
- DMA sound: fix SNDINT/SOUNDINT values (0=playing, 1=idle) and interrupts on TAI / GPIP7 for start of frame / end of frame
- Preliminary support for more vertical refresh rates (50,60 or 71 Hz) based on Videl's registers $FF82C0 (VCO) and $FF82A2 (VFT) (was only 50 Hz before)
Emulator improvements:
- TOS:
- Fix: set TOS country code from CountryCode setting, not Language one
- Add "pl" (Poland) & "ro" (Romania) language options for EmuTOS
- RTC:
- CLI/config option to override NVRAM/RTC year, useful with applications that do not handle current dates
- Joystick/Joypad support:
- Fix: joystick button 2 space key emulation "autofiring"
- Keyboard emulation support for all STE joypad buttons/keys
- Support for re-mapping joystick buttons
- GEMDOS HD:
- Fix: Fread/Fwrite combination on Windows
- Fix: Frename() should fail when target exists
- Support up to 64 simultaneously open files (earlier limit was 32)
- Similarly to TOS, allow programs to write to a file they have opened as read-only (by opening all writable files as read/write). As this could fail with real HW under MiNT/MagiC, show warning about it
- Screen:
- Support for screenshot using .NEO or .XIMG format
- Add option "--screenshot-format <x>" (<x> = png or bmp or neo or ximg)
- Memory Snapshot:
- Add some missing variables to the savestate
- Logging/tracing:
- "os_base" trace option outputs now also dir create/delete + file delete calls (in addition to earlier pexec/pterm & file create/open calls)
- Separate CPU video cycles under its own "cpu_video_cycles" trace flag
- Suppress repeats of identical log & trace messages by default (show only their count) and add "--msg-repeat" option to toggle that
- Debug symbol handling:
- Fix: invalid free on freeing loaded GNU debug symbols
- Fix: Do not limit "A" type (constant) symbol values to 24-bit
- Add support for reading symbols from new MINT+ELF binaries
- Add support for demangled C++/a.out symbols (which can be very long and contain almost any characters)
- "<name>.sym" file beside program file acts as its symbols override
- Add optional argument for "symbols <name|code|data>" commands, to limit listed symbols to ones with the given substring Improved support for weak symbols (important for C++ code)
- Symbols with duplicate addresses are skipped on symbols loading
- Disassembler:
- Fix: CPU core disassembler crashes with longer symbol names
- When entering debugger with 'history' enabled, disassembly address
- defaults to an address in history preceding the PC register value (to give more context than disassembling directly from PC)
- Support for disassembly output options working also for CPU core disassembler, in addition to external disassember output
- More flags to change the disassembly output for CPU core (upper/lower case, show memory content, show EA, ...)
- The built-in "external" disassembler has been replaced by a disassembler provided by the Capstone library (version >= 4.0)
- Debugger:
- Fix: free all debugger allocations before exit
- Fix: memdump command always outputs only requested number of items
- Add address width (addr).[bwl] support to expression evaluation History skips address repeats (e.g. with "stop" instruction)
- Breakpoint ":quiet" option inhibits also extra output when ":file" option debugger command file is parsed
- Line-A and line-F exceptions can be caught with "--debug-except" option (in addition to breakpoints)
- Add "echo" command with escape handling, so that one can e.g. use "echo ec" to clear (ANSI) terminal before breakpoint output from a debugger command file
GUI improvements:
- SDL GUI:
- Fix: mouse not visible in floppy disk dialog when it is invoked from a keyboard shortcut in fullscreen mode
- Fix: fileselector scrollbar works with mouse also in SDL2 scaled / fullscreen window
- Support for joystick button mapping + space key vs. jump option
- Mac GUI:
- Accept all file names as Mac file selector does not show a list of the accepted file name extensions any more
Tools:
- - gst2ascii:
- Support for new MINT+ELF symbols
- "-o" option is split to "-f" and "-g" options
- "-s" option to skip symbols with duplicate addresses
- By default filters same symbols out as Hatari debugger
- This can be reverted with new '+' option variants (+l +g +s)
- More concise listing of the duplicate symbols
- Support for new MINT+ELF symbols
- - Profile data post-processor:
- Does not show (most) of symbol conflict messages any more (unless '--verbose' option is given)
- When address has multiple symbols which names are thought as C/C++ symbols, prefer shortest one
- Support for symbol files + Hatari profile data containing demangled C++ symbols
- Support weak symbols (used for C++ template methods)
- Overtly long C++ symbol names are shortened in callgraphs (unless '--full-symbols' option is given)
- Symbols given for "--only", "--ignore" and "--ignore-from" are interpreted as match patterns (with '*?[]' wildcards)
- Only single arrow shown between callgraph nodes when "--compact" option is used
- - m68k-instructions: (new)
- Tool for printing m68k instruction breakpoints & opcode info
Build improvements:
- Fix: CPU core compile warnings (WinUAE upstream)
- Fix: groff/troff warnings for manual pages
- Use cmake config file provided by the SDL2 library instead of trying to detect the SDL2 library ourselves (fixes compilation on macOS)
- Removed unused sources for HD6301 emulation
- Hatari can now be compiled with emscripten, too
Fixed demos:
- Chaos A.D.: bad sound (Falcon DMA sound interrupts)
- Little -ME- Demo end part by Overlanders: black screen after a while (IACK timing)
- Monscape: bad sound (TT/DMA FIFO update)
- Time Slice by Defence Force: monochrome demo (crash when Hatari is compiled with "small mem" option)
- What If by Troed/Sync: 4 pixel hardscroll on STF by stopping shifter
- Oergs, Terrorize your soul, Zero Three Zero demos work now also when MMU is enabled
Fixed programs:
- FlaySID (DSP host handling)
- AFM sound with equalizer enabled (DSP modulo)
- FreeMiNT (use SCC counter at start to detect the SCC clock freq)
- Spectre 3.0 Macintosh emulator (stacked PC in case of bus error)
- m68k-Linux works (again) with 040/060 emulation (MMU)
- m68k-NetBSD does not crash on boot any more (MMU)
Fixed games:
- F29 Retaliator using CTR/IPF format (handle FDC's TR reset bug in caps library)
- MIDI (MFP IRQ clear) handling:
- Bad Mood
- Midi Maze
- Midi Maze II
- Oxyd 2
- Work now also when MMU is enabled:
- Gravon (demo)
- Killing Impact
- Moongame
→ NOWSZY [ATARI] ST/Falcon:Hatari 2.4.1 3/08/2022
HATARI Version 2.4.1 (2020-08-03)
Emulation improvements:
- Sound:
- Much more precise function to convert CPU clocks to YM2149 clocks in the case where YM2149 doesn't use the same source clock as the CPU (fixes e.g. some STE sound glitches in BLSPLAY.TTP)
- Video:
- Fix regression in TT mode: Update video counter again on each HBL (fixes e.g. Hextracker when run in TT mode)
Emulator improvements:
- DSP:
- Avoid small extra overhead on non-Falcon machines when DSP config option is set
- Misc:
- Fix memory leaks on PNG save and GEMDOS HD program load
- All Hatari output (outside of debugger) uses now appropriate logging and trace functions so that they can be controlled
- VDI mode:
- Fix: VDI width needs to be aligned to (at least) 16-pixels
- Fix: a possible crash with (default) SMALL_MEM build config (when ST program sets a bad video base address)
- Statusbar:
- Show "Linux" when running Linux directly with --lilo
- Debugger:
- Fix: to duplicate symbol name removal
- Fix: all IDE trace output did not go to trace file
- Like with rest of debugger, profiler responses go now to stderr (not stdout)
Documentation:
- Document Hatari outputs and their controls in debugger manual
→ NOWSZY [ATARI] ST/Falcon:Hatari 2.4.0 9/07/2022
HATARI Version 2.4.0 (2020-07-09)
Following features are deprecated and will be removed in a future release:
- SDL 2.x "bUseSdlRenderer" config and "GPU scaling" GUI options (after HW support for SDL2 is available widely enough)
- The "external" disassembler (i.e. use "--disasm uae" instead)
- Hatari XBios(255) API enabled with the "--bios-intercept" option (i.e. use "--natfeats" & "--cmd-fifo" options and "hconsole" instead)
- The old ~/.hatari configuration file location (use ~/.config/hatari instead)
- The rendering functions for 16 bits-per-pixel host screens (almost all recent hardware should have 32 bpp nowadays)
Removed features (that were marked as deprecated in earlier releases):
- Support for the SDL 1.2 library (i.e. SDL 2.x should be used instead)
- Support for building Hatari for Windows CE has been removed, too, since this was relying on version 1.2 of the SDL library.
- The old UAE CPU core (i.e. the new WinUAE CPU core is now always used)
- Python v2 support in Python scripts (Python 2 was end of life in 2020)
Emulation improvements:
- Internal timers:
- Rewrite the internal timers used to emulate delays/events/mfp timers (gain ~10% on average, up to 60% in very specific cases)
- CPU:
- Improve FPU emulation (exceptions, unimplemeted instructions, fsincos)
- Improve FPU emulation in softfloat mode
- Improve IPL timing update in various opcodes
- Faster emulation of 68000 in cycle exact mode (gain ~7%)
- MFP:
- Use the new internal timers for MFP timers
- Improve accuracy when reading MFP's Timer Data Register
- More accurate emulation by processing all internal timers first before reading/writing any MFP register (was previously delayed after processing the current CPU instruction, which was too late in some cases)
- Video:
- - Fix position for detecting when VBLANK should be disabled in 50 Hz and 60 Hz
- DSP:
- Improved interrupts handling and SSI (from Previous NeXT emulator)
- Sound:
- Improve accuracy of YM2149's sample generation by using the main CPU clock as a reference for all timings (syncsquare effect as used in recent maxYMiser v1.53)
- Use specific memory functions when doing DMA for STE and Falcon sound (don't generate bus error when pointed memory is not present)
- Improve value of MFP GPIP bit 7 for DMA sound in the case of STE/TT (video mono XOR dma sound xsint)
- Use 2 different signals SOUNDINT and SNDINT for Falcon (connected to MFP GPIP7 and MFP Timer A input)
- FDC:
- Stall the CPU during 32 cycles when DMA FIFO is filled/transferred
- SCSI:
- Improve MODE SENSE, add REPORT LUNS support
- IKBD:
- support deltax/deltay in command $A (set mouse keycode mode) and threshold x/y in command $B (set mouse threshold)
Emulator improvements:
- TOS support:
- Support 1024k EmuTOS images also on TT & Falcon
- Add country code option to select EmuTOS language, keyboard layout and screen refresh rate on Mega/ST/STe machines (ones lacking NVRAM)
- MIDI support:
- Fix: PortMidi rejects Hatari MIDI events
- Fix: MIDI IRQ needs to be re-enabled on MIDI device change even when there's no reset
- Support for matching PortMidi device name by prefix when there's no exact full match
- RS232:
- The RS232 receiver code has been rewritten to use polling instead of using a thread. This should avoid deadlocks on BSD/macOS systems when shutting down or reconfiguring the RS232 settings.
- TT/Falcon:
- Increase max TT-RAM amount to 1024 MiB
- Separate config + CLI options to override NVRAM language and keyboard layout settings
- NVRAM language default is taken from the LANG env variable
- Falcon:
- Fix: restore zoom mode correctly when loading snapshots
- Correct also smaller specified memory amounts to valid ones
- Microphone emulation now uses SDL2 instead of PortAudio
- MegaSTE/TT:
- Add VME/SCU registers "--vme <none|dummy>" access option (Linux needs "none" option and TOS v2 / v3 need "dummy" one until Hatari implements real VME/SCU register emulation)
- VDI mode:
- Relax VDI mode width alignment from 128/planes to 16/planes, and height alignment from 16 to 8 pixels
- SDL GUI:
- Fix: ignore unrecognized events in file selector (buttons could be incorrectly shown as selected)
- Fix: avoid key release event from SDL GUI closing leaking to emulationDo VDI mode size changes in (faster) 16 pix increments, and prevent user seeing invalid VDI mode sizesFine-tune CPU dialog texts and keyboard shortcuts
- GEMDOS HD:
- Fix: clear GEMDOS Fread / Fwrite errors
- Fix: Allow GEMDOS tasks to use other tasks' file handles
- Command line:
- Support "off" as alias for "none" when disabling DSP, FPU,
- Joysticks and VME, for consistency with HW on/off options
- NatFeats:
- Fix: freeze with NF_STDERR when string is empty or unterminated
- Debugger:
- Fix: profile header so that profile data post-processor knows how to parse built-in WinAUE CPU core ("uae") disassembly output, not just "ext" disassembler output
- Repeat CPU & DSP "step" and "next" commands on Enter
- Output PC location in CPU & DSP disassembly
- More readable "variables" command output
- Add "PConSymbol" variable for breaking on symbol addresses
- Add "mmu" and "vme" options for "info" command
- Add "scc" and "vme" (VME/SCU reg access) tracing support
- Setting trace to "none" disables also xconout console output enabled by "os_base" trace option
- "next subreturn" will run until current function returns, even if function calls other functions before that
- Symbol loadind code is now shared between debugger "symbols" command & "gst2ascii" tool, and it can now read also long symbol names from Pure-C debug information
- Auto-detection for whether section offsets should be used when loading symbol information
- MIDI trace options are split to "midi" (device & MIDI events) and "midi_raw" (IRQ and register read/write access). Trace logging added also for MIDI byte writes, not just readsTrace options are listed in alphabetical order
- Windows:
- Next/prev drive change buttons added to SDL GUI file select dialog
Build/configure:
- SMALL_MEM option is enabled by default
Tools:
- Add (SDL2 specific) "listkeys" key mapping helper back
- TOS boot tester: support 1024k EmuTOS images, misc fixes
Documentation:
- Compatibility updates, especially for 060 programs that need FPSP060.PRG for missing instructions emulation
Fixed demos:
- Hackabonds Demo (wrong vblank detection)
- We Were @ HD version under GEMDOS HD (file handle access)
Fixed programs:
- maxYMiser FM v1.53 by gwEn (support for syncsquare effect)
Fixed games:
- Chambers of Shaolin: DMA sound was wrong in STE mode with 1 MB RAM (mfp gpip bit 7)
- Super Hang On: fix flickering raster colors (bclr #0,$fffffa0f sometimes happened at the same time timer C expired)
→ NOWSZY [ATARI] ST/Falcon:Hatari 2.3.1 27/12/2020
HATARI Version 2.3.1 (2020-12-27)
Main changes since Hatari 2.3.0:
- Hatari could crash when switching to Falcon mode and no IDE drive was used
- Fix unneeded extra prefetch for movem in 68020/30 CPU
- Fix master clock use for crossbar/DSP Handshake mode
- Fix hostport PORTB interrupt handling for DSP
- FPU setting did not work in macOS version for french language
- Fix Hatari window disappearing in the python UI when changing resolution
Following features are deprecated and will be removed in a future release:
- Support for the SDL 1.2 library (i.e. SDL 2.x should be used instead)
- SDL 2.x "bUseSdlRenderer" config and "GPU scaling" GUI options (after HW support for SDL2 is available widely enough)
- The old UAE CPU core (i.e. the new WinUAE CPU core should be used instead)
- Python v2 support in Python scripts (Python 2 was end of life in 2020)
- The "external" disassembler (i.e. use "--disasm uae" instead)
- Hatari XBios(255) API enabled with the "--bios-intercept" option (i.e. use "--natfeats" & "--cmd-fifo" options and "hconsole" instead)
- The old ~/.hatari configuration file location (use ~/.config/hatari instead)
Emulation:
- CPU:
- Fix: unneeded extra prefetch for movem in 68020/30 cpu (regression in v2.3)
- DSP:
- Fix: master clock use for crossbar/DSP Handshake mode (partial regression in v1.6)
- Fix: hostport PORTB interrupt handling
Emulator:
- ACSI/IDE/SCSI handling:
- Fix: IDE crash when switching to Falcon mode at run-time (regression in v2.3)
- Fix: No error dialog on IDE image mount errors
- Fix: Duplicate disk image mount failure handling
- TOS support:
- Fix: TOS 2.07 (Sparrow TOS) support (regression in v2.3)
- Hatari window handling:
- Fix: Hatari window disappearing from Python UI when Hatari changes its framebuffer size (SDL2 specific)
- macOS GUI:
- Fix: FPU setting doesn't work when GUI runs in French
Python UI:
- Several fixes (see its own release-notes.txt)
- Requires now Gtk v3.22 or newer
Tools:
- Fix: assert in hatari_profile (profile post-processor) with relative symbols
Documentation:
- Add PortMidi info to devices dialog section in manual
- Updated compatibility documentation
Fixed Falcon programs:
- Music missing in H2O game, in Running game main screen, Stocasto demo and Epidemic music disk (crossbar/DSP handshake mode)
- Lockup demo freezing at startup (DSP hostport PORTB interrupt handling)
- Several demos (Cruor 96k, Hmmm..., Keff, Payback 2015) and games (Beats of Rage, Capy, Confusion preview 2, Men at War preview, Moonspeeder preview 2, Neurobot, Pacmania X68000, Slippery Sam and Sokoban by Fun) not starting with TOS4 or EmuTOS unless MMU was enabled (unneeded extra prefetch in movem)
- Built-in Obsolescence demo, Delmpaint app and Sidetracked GFA musicdisk had other issues also with MMU under TOS4 or EmuTOS (unneeded extra prefetch in movem)
→ NOWSZY [ATARI] ST/Falcon:Hatari 2.3.0 28/11/2020
HATARI Version 2.3.0 (2020-11-28)
Following features are deprecated and will be removed in a future release:
- Support for the SDL 1.2 library (i.e. SDL 2.x should be used instead)
- SDL 2.x "bUseSdlRenderer" config and "GPU scaling" GUI options (after HW support for SDL2 is available widely enough)
- The old UAE CPU core (i.e. the new WinUAE CPU core should be used instead)
- Python v2 support in Python scripts (Python 2 was end of life in 2020)
- The "external" disassembler (i.e. use "--disasm uae" instead)
- Hatari XBios(255) API enabled with the "--bios-intercept" option (i.e. use "--natfeats" & "--cmd-fifo" options and "hconsole" instead)
- The old ~/.hatari configuration file location (use ~/.config/hatari instead)
Emulation:
- FDC / Disk:
- Support for MegaSTE DIP switch register $FF9200 (set floppy drive to HD by default on MegaSTE/TT/Falcon)
- support for DD/HD mode on MegaSTE at $FF860E (when FDC is set to HD mode, reading DD floppies will fail)
- Support for the 'Disk Change' (DC) signal on TT machines on TT's MFP GPIP4
- Fix: IDE disks with sector size > 512 bytes
- Fix: IDE controller is now always available in Falcon mode, even if no hard disks have been configured.
- CPU:
- Update CPU core to latest WinUAE 4.4.0 beta: full support for undocument fields in 68000 bus/address error stack frames, as well as CCR flags for most of the 680x0 instructions (using a cpu tester program on the real hardware that checks all possible opcodes' combinations)
- 68030 MMU hardware bus error support + various fixes
- FPU fixes
- Video:
- Improved timing when setting Vsync signal (same place where video counter is reloaded)
- Handle screen where vertical DE signal is completely disabled
- Better start/end position for the VBlank signal at 50Hz and 60Hz
- Sound:
- Add a better filter for downsampling the internal 250 kHz signal, should give better results when the YM2149 outputs high frequency sounds
- Fix microwire mask shifting when CPU runs > 8 MHz
- MFP:
- Rewrite MFP code to handle several MFP objects and add support for the TT's 2nd MFP (not all TT's MFP signals are emulated yet)
- Improved Falcon's DMA sound interrupt on GPIP7 and AER
- Blitter:
- Large rewrite of the blitter's core, improving cycle accuracy and handling the complex cases where xcount=1 and nfsr=1. Code is slighlty smaller and closer to the logic of the real hardware
- Handle restart in non HOG mode when the CPU uses a RMW instruction (eg TAS)
- Improve access to memory regions that would generate a bus error for the CPU
- Emulate additional RTC/NVRAM registers
- megaSTE should start at 8 MHz, not 16 MHz
Emulator:
- Miscellaneous:
- Fix: freeze at Hatari exit and RS-232 device file changes, when device file(s) are FIFO(s)
- Fix: when autostarting programs without pre-existing INF file, enable blitter also with EmuTOS
- Use floppy track's size in bytes to detect DD/HD/ED (instead of counting sectors)
- Add --lilo debug option for more convenient m68k Linux loading
- Config file handling:
- Support config file values with '=' in them
- Skip reading global config file if HATARI_TEST environment variable is set
- Memory handling:
- Memory snapshot version increase due to FDC changes (i.e. old snapshots won't work with new version)
- Accept 10MB as valid ST-RAM amount (max on real MegaSTE/TT machines) and correct invalid Falcon ST-RAM amounts
- Fix: 24-bit address mode change while emulation is running (triggered e.g. when TT-RAM is enabled for TT)
- HD images:
- Fix: run-time IDE byte swap change requires IDE re-init
- Fix: TOS booting from A: although SCSI drive was enabled
- Support read-only HD image files, and show error dialogs for image file open/lock issues
- GEMDOS HD emulation:
- Support FASTLOAD program flag with GEMDOS HD
- GEMDOS HD emulation cartridge assembly functionality is moved almost completely to emulator side. Fixes Atari side error handling when program file is not readable, and TOS stack overflows in some rare cases
- Detect DTA re-use to reduce DTA cache usage, grow cache on demand and give warning if its entries need to be re-cycled (= cache max size is reached)
- Invalid DTA in Fsnext() return -ENMFIL, like TOS does
- Fix: skip non-existing host files on FSnext() instead of returning an error (latter broke directory listings)
- Fix: Dsetpath/Dgetpath empty path handling
- Hatari graphics support:
- Low/med-rez line doubling uses less CPU and doubled lines in "TV" display mode are now drawn at half intensity, not as black (fixes TV mode being too dark)
- SDL2: "--zoom" option accepts any values between 1.0.8.0
- SDL2: "--zoom" option is changed to always enable low resolution doubling before SDL framebuffer is scaled up (or down) by the zoom factor. This way Hatari output window is approximately same sized regardless of emulated Atari resolution, like on a real CRT monitor
- SDL2: scale quality is selected automatically; nearest pixel for sharp output with integer scaling factors, and linear scaling to smooth out issues with non-integer scaling and window resizes
- SDL2: Now redundant "nRenderScaleQuality" config option is removed and "Linear scaling" option in GUI is replaced with the "GPU scaling" option (=bUseSdlRenderer config option)
- Added new "--screenshot-dir" option to select the folder for screenshots
- Fix: [ffmpeg/video] Invalid PNG signature 0x89504E470D0A1A
- Fix: garbage graphics (by clearing the whole render area)
- Fix: Spec512_StoreCyclePalette when using 16 or 32 MHz
- Input handling:
- Support SDL "Hat" events in addition to "Axes" events (= support 80's game controllers, also in SDL GUI)
- Map a turbofire button independent of the fire button if the game controller is capable
- Show mouse grab toggle shortcut key in startup statusbar message
- Center host mouse to Hatari window on Atari resets and resolution changes only when window is focused and mouse pointer is within it
- Fix: keypad emulation with SDL2
- Fix: simulated (socket API) key input with SDL2
- Profiler:
- Profiler backtrace shows now real caller addresses and their offsets from the function entry points (slows profiling of addresses with symbols)
- All profiler outputs have now reasonable limits (so that they don't flood console)
- Fix: exception in profile post-processor script (with symbol address aliases)
- Tracing:
- Fix: CPU disassembly trace output doesn't go to specified trace file
- Trace flags can be added and removed instead of needing to always specify all the relevant ones, both with "--trace" command line option and debugger "trace" command: --trace os_base,aes, trace +xbios,bios, trace -bios,-aes
- VDI trace shows names also for NVDI/Speedo/GDOS functions
- VDI & AES trace function numbers are shown in hexadecimals with 0x prefix like rest of the OS calls
- Debugger:
- New "screenshot" command for saving screen dump to a PNG/BMP file
- "symbols resident" option replaced with "symbols autoload" option which can be used to completely disable automatic symbol loading and unloading for programs run through the GEMDOS HD (helps debugging resident programs started from GEMDOS HD)
- Improvements to UAE and external disassembler disassembly
- UAE disassembler is now default instead of external one (latter doesn't decode all instructions correctly)
- New "info" subcommands: "acia", "dmasnd", "ikbd", "mfp", "nvram", "rtc" and "scc"
- Also UAE disassembler can now show the profile info
- "info" command can show AES & VDI information on on their respective traps without VDI mode/tracing being enabled
- Breakpoint ":info" option to call specified info function on tracing breakpoint hits (one can now use e.g. ":info vdi" on VdiOpcode breakpoints)
- Improved symbols info output
- Native features:
- Support for missing NF_SHUTDOWN (reset) sub commands
- Test code for rest of features (except for NF_SCSIDRV)
- When Hatari resets or exits due to emulated program NF_SHUTDOWN / NF_EXIT call, output user a note about that
Tools and Hatari Python/Gtk UI:
- Python scripts use now "python3" because most current distros don't anymore install Python v2 by default. To use a script with v2, change "python3" in its first line to "python2"
Building and unit tests:
- Source repository moved from Mercurial to Git
- Fix: issue with multilib capable cross-compilers
- Only Caps library v5.1 is supported (support for old v4.2 is dropped)
- Obsolete Mudflap option replaced with AddressSanitizer support
- Add tests for GEMDOS HD, fullscreen/overscan display, blitter and Hatari command FIFO + improve CPU/MMU variant coverage in earlier tests
Documentation:
- Up to date documentation provided at: https://hatari.tuxfamily.org/doc/
- New m68k-linux.txt and m68k-netbsd.txt documents on how to test m68k Linux and NetBSD under Hatari
- Debugging and profiling information is split from manual.html to a separate debugger.html file
- Minor improvements
Fixed demos:
- Pacemaker STE demo (end part), when it's run from GEMDOS HD
- Multi scrolls part in Closure by Sync (regression since Hatari 2.2, vsync in bottom border)
- Fullscreen part in Hard As Ice STE demo by I.C.E. (screen with no vertical DE signal)
- Fullast Vinner by Troed/Sync (improved vblank position, partial fix for now)
- Electric Night Falcon demo by Dune (MFP DMA sound interrupt on timer A using AER)
- Oompa by No Extra (after greetings part) (blitter access to bus error regions)
- E.K.O System (music should now play in the racing scene)
Fixed programs:
- MS Write (crash), when it's run from GEMDOS HD
- Akaisex program reading AKAI S1000 HD floppies converted to STX
- EmuTos drawing vertical lines with blitter and leaving some trails (blitter in non HOG mode using TAS intruction to restart)
- Cecile v2.22, now also works if no IDE drive has been configured
- Trans D-Bug Express by PHF (lock when running in megaSTE mode at 16 MHz)
→ NOWSZY [ATARI] ST/Falcon:Hatari 2.2.0
hAtari Version 2.2.0 (2019-01-31)
Compiling with SDL 1.2 is considered as deprecated now. The support for SDL 1.2 will be dropped in a future release. Hatari now requires a C compiler compatible with c99/gnu99
Emulation:
- CPU:
- CPU core updated to WinUAE 4.1.0
- Fix 68030 MMU PTEST/FSAVE/FRESTORE
- Improve 68030 bus error handling and retrying faulty instruction
- Fix: only enable cache emulation when relevant
- Improve softfloat FPU emulation
- FPU emulation mode (softfloat or not) can be changed on the fly
- Ensure HW registers region is not cachable for 68030 without MMU when write allocate mode is enabled
- DSP:
- Fix DSP ROM tables (sin, mulaw & a-law)
- Some waitstate cycles were not correctly counted when accessing DSP IO regs in CE mode
- Blitter:
- Fix: a rare case in cycle exact mode when bus is shared between CPU and blitter: the last word of a transfer could be wrong if bus was owned by CPU just before processing this last word and a read-modify-write is made
- State of current blitter operation was sometimes not correctly restored when CPU temporarily stopped the blitter and resumed it later
- DSP emulation was not updated in parallel when blitter was running
- Video:
- Handle VBlank signal and mask the 2 last lines when bottom border is removed
- Hard disks:
- Experimental support for the NCR5380 SCSI chip in Falcon and TT mode
- Serial ports:
- Very experimental support for the SCC chip of the Mega-STE, TT and Falcon (only channel B for now, and output only, use the "--scc-b-out" command line switch)
- Misc:
- Correctly emulate bus error handling for STE lightpen registers
- Experimental support for TOS 2.07 (the "Sparrow" TOS)
Emulator:
- Misc:
- "patch TOS timer-D" speedup option is now disabled by default
- Allow up to 512MB of TT-RAM (increased from 256 MB)
- Additional ROM patches applied to TOS v4.x for 040 & 060
- Improved info and warning output for Hatari constraints and issues
- Memory snapshot save/restore:
- Fix: Include GEMDOS HD file handles so apps with open files work
- Improve memory snapshot save/restore reliability (e.g. for pending interrupts)
- Save/restore TT RAM content into memory snapshots
- SDL GUI:
- Show warning dialog when cartridge file is disabled due to conflict with other features
- Fix halt dialog crash on double bus error before SDL init
- Add FPU softfloat option
- Move joystick info to second statusbar line
- Few additional special keys can be remapped
- Fix: broken CPU dialog with old UAE CPU core
- Display 'SF' in status bar if FPU emulation is using softfloat library
- Display 'CE' or 'PF' in status if using 'cycle exact' or 'prefetch' modes
- It is now possible to configure more than one ACSI hard disk images
- MacOS / GUI:
- Minor GUI updates for v2.1 changes
- Fix: "reset" and "don't reset" UI buttons inverted
- Update MIDI panel for French version
- Save screenshots in user defined location or ~/Desktop
- Windows:
- Fix: buffer overflow in relative Hatari datapath handling
- Disk handling:
- IDE byte-swap option added to config file & GUI
- Fix: NF SCSI driver didn't invalidate cache for changed memory area
- Fix: *.INF file in disk image being overridden even when neither VDI mode or autostart program wasn't specified (v2.1 regression)
- Fix: GEMDOS HD Fwrite() can be done from ROM area (for ROM saving)
- Media handling:
- Fix: AVI recording with PNG codec could be wrongly limited to 4GB with some OSes
- Screen handling:
- Fix: TOS <= v2.x crashes when mouse is moved in 16x16 area at the bottom right corner in VDI mode (Hatari v1.0 regression)
- Fix: "--tos-res high" setting
- Debugging:
- Fix: DSP/CPU profile "addresses" commands output line count when paging. Tell also when it wraps to start
- Each log message has a log level prefix
- (Almost) all Hatari output goes now through logging framework so that Hatari verbosity can be controlled
- Output at default log level is reduced significantly
- Add support for ISP & USP and 020+ special registers like VBR
- Add "OsCallParam" variable which gives first (word sized) parameter for OS calls, for use with OS call "*Opcode" breakpoints
- Add virtual V0..V7 registers to "register" command for calculations
- "memdump" and "memwrite" commands output & input can now be also word or long sized instead of bytes
- Show arguments in DSP XBios call traces
- FPU and PMMU opcodes are now also disassembled in 68040/060 mode
- Options:
- Fix: "--memsize 0" legacy option
- Disable "--timer-d" option by default. Increases CPU usage (noticeably for ST/e emulation), but some rare (badly written) programs need it for correct color raster & sample handling
- The "--bios-intercept" option requires now a boolean parameter to determine whether the option should be enabled or disabled
- Add "--cmd-fifo" option to control Hatari at run-time just by echoing commands to a FIFO file (created by Hatari)
- Add "--tos none" option to run test programs without any TOS. Real Atari programs cannot be run with this, as it doesn't implement the necessary Atari OS calls
- Halt dialog is skipped if --run-vbls is used (for automation)
- Support hex values for --disasm, increase --slowdown max value to 30
Building:
- Fix: Large File Support detection (64 bits off_t)
- Fix: new compile warnings with GCC v8 (+ code cleanup)
- Fix: building when DSP or tracing is disabled
- Improve CMake library finding for recent macOS
- Change Hatari compilation C standard to gnu99
- Add gitlab continuous integration Yaml file
- Many -fsanitize fixes
Tools:
- Hatari Python UI migrated from PyGtk v2 to Gtk v3
- Add Python v3 support to rest of the scripts (required by Arch Linux & Clear Linux)
- hatari-prg-args script:
- Installed by default
- Fix program argument setting for recent EmuTOS versions
- Support argument setting also for programs that are run from disk images
- zip2st: handle also directories with spaces in their names
- Fixes to hatari_profiler Callgrind output symbol handling
- Fix TOS bootup tester test output verification
- Few additional tests for validating Hatari functionality. Almost all tests are now integrated with CTest framework. Use e.g. "ctest -j4" command to run them
Documentation:
- Tag commits for Hatari releases before v1 in Mercurial repo
- Add notes about (new default) PortMidi support to MIDI usage
- More details on GEMDOS HD and VDI mode emulation limits
- Large updates to compatibility documents and to performance section in the manual
- Add release checklist document
Fixed demos:
- B.I.G. Demo screen 2 (regression in Hatari 2.1, vblank in bottom border)
Fixed falcon demos:
- 4musiK by Dune & Sector One (don't cache HW register regions in write allocate mode)
Fixed games:
- Lethal Xcess in STE mode (stopping/resuming blitter and saving/restoring memory snapshots)
- Lethal Xcess in STF mode (add jitter to MFP, temporary fix)
Fixed programs:
- Many TT/Falcon programs relying on 68030 MMU / bus error retrying are now working correctly (eg 'memwatch' by Uwe Seimet)
→ [ATARI] ST/Falcon:Hatari 2.0.0
Hatari Version 2.0.0 (2016-11-04) Release Notes
Emulation:
- Machine:
- Support for MegaST & MegaSTE machines added (this also replaces the Real Time Clock / RTC option, since this chip is only available on the Mega machines)
- The general purpose registers of the TT SCU are now correctly emulated (this fixes the problem with AHDI not finding any partitions during boot)
- HD:
- Fix: Disable GEMDOS opcodes after GEMDOS drive is disabled
- Fix: GEMDOS HD can now be initialized multiple times, e.g. when running EmuTOS RAM image from a normal TOS
- Fix: WORD access to IDE data register at 0xf00002
- Fix: '*.*' pattern with GEMDOS HD should match also files without extension
- Video:
- Full rewrite of the GLUE state machine, including support for the 4 wakeup states in STF mode, as well as more accurate video timings(hbl, timer b, top/bottom and left/right removal, mixing 50/60/71 Hz lines)
- Correctly shows the last 8 pixels for STE 224 byte overscan
- Fix: reading video counter $FF8205/07/09 after modifying it while display is ON
- Fix: location of the video counter's restart when screen runs at 60 Hz
- TT: sync ST & TT color registers immediately on write, handle palette bank setting correctly, fix duochrome colors
- Falcon: handle byte access special case for ST color registers
- Falcon: border color support also in HiColor
- better hbl/timer b interrupts when CPU runs at 16/32 MHz
- Sound:
- Special cases for STE DMA sound when start address = end address
- Increase STE DMA volume when compared to the YM2149 volume
- Greatly improve Falcon DMA sound
- CPU:
- use WinUAE CPU for STF/STE mode too, not just Falcon (old CPU core is considered deprecated)
- improved IACK and simultaneous interrupts
- access IO regs on 2 cycle boundaries when possible
- More accurate 68060 mode (instructions from previous CPU versions removed in 68060 aren't accepted/emulated anymore)
- Misc bus error / IO mem register handling fixes for TT & Falcon (e.g. add TT DIP switch register handler)
- Blitter:
- Better bus arbitration when blitter is started
- Don't cause bus error when accessing regions causing CPU bus error
- Fixes to DSP addressing
- Floppy:
- Fix the value of the WPT bit when inserting/ejecting a write protected floppy
Emulator:
- Generic fixes:
- Autosave to already existing file works first time after v1.4(dialog for file overwrite got automatically canceled on exit)
- SDL GUI:
- MegaST/MegaSTe support
- Shortcuts can be configured in the keyboard dialog
- User can provide volume label when creating a floppy image
- Show dialog on HD image size issues
- Better SDL2 support:
- SDL2 is now enabled by default
- Resizable windows, including ST/STE screen scaling
- "--desktop" option is used also for ST/STe instead of "--desktop-st"
- Command line:
- Renamed --fpu-type option to --fpu
- Configuration:
- Hatari defaults to ST both with oldUAE & WinUAE CPU core
- Preferred private configuration directory is now ~/.config/hatari on Linux/Unix (the legacy location ~/.hatari is still used if the other one does not exist yet)
- Windows config location is now: AppDataLocalHatari
- Support SDL key names in keymap files in addition to key codes
- Comment characters (#, ;) can also be mapped in keymap file
- Added NatFeats SCSI (NF_SCSI) driver for Linux version of Hatari
- Debugger:
- Fix: close debugger log file only when explicitly requested, not when continuing emulation from debugger
- Fix: direct DSP register, disasm and memdumps to debugger log file, similarly to CPU
- Fix: direct CPU and DSP symbol traces to trace file, not stderr
- Fix: ':once' option when there's only one breakpoint (v1.9 regression)
- Fix: NatFeats NF_DEBUGGER command now actually drops to debugger
- 'n' (next) command run until (dbcc backwards branch) loop exits (in addition to running until subroutine and exception calls return)
- Support Atari debugger XBios(11) / Dbmsg() API
- 'variables' / 'v' command to list Hatari debugger's builtin symbols
- Also trace exception can be caught
- Removed features:
- Support for rendering to 8-bit host screens
- Support for (buggy) RsConf() interception with --bios-intercept
Other:
- Allow building without Zlib
- zip2st tool can convert directories to .st image files, not just .zip files.
Fixed games:
- Chainz and Jewelz by Paradize (blitter, bus errors)
Fixed demos:
- spec512 image in the Intro of the Place To Be Again (video, restart counter)
- Menu screen in the Place To Be Again (video, writing/reading video counter during active display)
- A Little Bit Insane by Lazer (no DMA sound during the demo)
- LoSTE and Closure by Sync (video, wakeup states and glue timings)
- Death of the left border by TNT (video, stabilizer)
- Gen4 Demo by Ziggy / Overlanders (video)
- Suretrip 49% by Checkpoint (cpu, exceptions stacking)
- Tymewarp by YM Rockerz (megaste mode, cpu control at $ff8e21)
- overscan plasma in Graphics Sound 2 in Relapse by Cybernetic (blitter)
- RGBeast by Agression (blitter)
- Drone by DHS, PhotoChrome Viewer by DML (video, last 8 pixels)
Notes:
- TOS NF_SCSI driver is available from: http://hddriver.seimet.de/en/downloads.html
→ [ATARI] ST/Falcon:Hatari 1.9.0
Hatari Version 1.9.0 (2015-09-10):
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
- 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 <ea> 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,<ea>", 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 emulatio n (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
- Emulator:
- Support for compiling with libSDL2 (experimental)
- SDL2 supports other than 2x scaling factors for ST/e emulation
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<1-4> keyboard shortcuts to switch mode/type for emulate 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 IDEtrace 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 <hard|soft>" 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