!

[ATARI] ST/Falcon:Hatari 2.3.0 28/11/2020

[0] @ !!! Wtorek, 8 Grudnia 2020 20:43 CET [10-02-2019 21:37 CET]

[ATARI] ST/Falcon:Hatari 2.3.0 28/11/2020

Czas uzupełnić newsy, praca w okresie black friday i mikołaja w eCommerce kompletnie nie idzie w parze z hobby - stąd całkiem spore zaległości.

Na pierwszy ogień idzie hATARI! świetny emulatora dużych, 16-bitowych komputerów ATARI - począwszy od modeli ATARI ST/TT a skończywszy na ATARI FALCON. Biorąc pod uwagę, że ostatnia wersja pojawiła się prawie 2 lata temu, jest co odnotować.

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.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)
→ [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.1.0

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)

 

→ [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:

→ [ATARI] ST/Falcon:Hatari 1.9.0

 

ATARI Hatari:Menu Pompey#92
FDD Menu: Pompey#92

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
→ [ATARI] Hatari 1.8

Hatari Version 1.8.0 (2014-07-30)

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 "<" and ">" 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)
→ [ATARI] ST/Falcon:Hatari 1.7
Lotus Esprit Turbo Challenge (a.k.a. Lotus I)(Gremlin Graphics Software Ltd., 1990)

Hatari Version 1.7.0 (2013-06-24):

Emulation:

  • TT video emulation :
    • Extend the ST palette registers from 9bit to 12bit for ST modes
    • Duochrome mode instead of monochrome for ST High
    • Implementation of SampleHold in TT Hypermono video mode
    • Sound changes :
    • Better model of the YM2149 noise generation (no noticeable audible impact)
    • Slightly better volume table (measured by Paulo Simoes on a real ST)
    • CPU changes :
    • Added experimental MMU emulation for the 68030 mode
    • Handle the IACK cycles during an exception for HBL/VBL
  • ACIA/IKBD changes :
    • Full implementation of the MC6850 ACIA, giving much more robust IKBD emulation
    • Better timings for all IKBD commands (measured on a real STF)
    • Clock is handled internally in IKBD, host date/time is used only to initialize RTC at boot. I.e. pausing emulation doesn't cause time skips when unpausing
    • Fix slow mouse when absolute mode is used with scale values
  • MFP changes :
    • Fixed priority errors when simultaneous interrupts happened
    • MFP's IRQ should be delayed by 4 cycles before reaching the CPU
    • MFP's IRQ signal was not correctly updated in some cases
    • Handle the IACK cycles between CPU and MFP during an exception
  • FDC changes :
    • Better delays for all the GAPs inside a track
    • Emulate the disk's rotation and its angular position to get accurate delays when accessing a sector header
    • Internal timer for FDC was wrong and sometimes slower than expected
    • Correct delay for type I commands with "verify" bit=1
  • GEMDOS HD emulation changes :
    • Support Fforce() for GEMDOS HD emulated files and close at Pterm*() all internal handles to emulated files program had left open
    • Fix: cut file and dir names to 8+3 chars like all TOS versions do
    • Fix: GEMDOS HD emulation overwrote last 28 bytes of basepage space for the started process command line (with the program header)
    • Fix: Fwrite() content wasn't flushed to disk on each write, so later Fopen() + Fread()s calls on such files (if they were not closed in the meanwhile) could get data that was out of date.
    • Fix: Dfree() return value

Emulator:

  • Fix: problems with run-time CPU type changing
  • Fix: MIDI IRQs were not enabled if MIDI was enabled at run-time. MIDI toggling will now imply reset
  • Much improved console redirection functionality and a separate --conout option for it (--bios-intercept doesn't anymore imply console redirection)
  • Fixed a bug with the axes' mapping in the joystick's detection
  • Display handling:
    • Fix: max resolution limit wasn't handled properly for ST mode.
    • Don't change TOS-calculated font size for VDI mode.
    • Setup NVRAM video mode based on VDI mode, when in VDI mode.
    • This makes VDI mode work with EmuTOS also under Falcon emulation which is useful as EmuTOS doesn't support native VIDEL expanders
    • Limit VDI screen memory usage to 300kB, this allows upto 2048x1200 monochrome and 1024x600/800x768 16-color VDI screens
  • GEMDOS HD emulation:
    • Fix: to DTA host filename cutting to 8+3 chars when whole filename was < 12 chars (caused EmuTOS crash)
    • Give warning if GEMDOS dir/file path exceeds 8+3 characters (as those won't work with real TOS)
    • New --gemdos-case option to specify whether new dir/filenames are forced to be created in upper (default) or lower case
    • Giving empty string as GEMDOS HD dir disables GEMDOS HD emulation
  • SDL GUI:
    • Fileselector has "CWD" button for changing to Hatari's work directory
    • Fileselector remembers previous position which is nicer with large directories
    • Make the drive leds blink with a brighter green when the FDC is executing a command
  • Profiler:
    • Fix: profiler assert on invalid PC register values
    • Fix: profiler usage in debugger files invoked by breakpoints
    • Fix: profiler CPU & DSP cycles information is for previous instruction
    • Fix: WinUAE CPU requires cycles counter usage for getting current CPU instruction cycles
    • Profiler provides timing information, based on used cycles
    • Profiler provides CPU instruction cache misses information when using cycle-exact WinUAE CPU core (which is Falcon emu default)
    • Profiler top instruction count/cycles/misses lists show the related instructions
    • For DSP, profiler adds min/max cycle difference info to disassembly
    • New "addresses" subcommand can be used to see addresses through which code passed during profiling (e.g. while program seems frozen, this gives much better overview of code that is being run, than cpu trace)
    • New "callers" subcommand lists all addresses from which loaded symbols' addresses were "called" from. This way one can e.g. find in which contexts interrupt handlers were called and it can be used to construction program execution callgraph
    • New "save" subcommand saves profile address and caller information to given file, with extra information needed for post-processing
    • New "stack" subcommand that can be used to get backtraces during profiling with symbols, for ':noinit' backtraces
  • Debugger:
    • New ':noinit' and ':quiet' breakpoint options. Quiet option removes most of breakpoint matching "noise" and ':noinit' breakpoints can be used with "profile stack" command, to prevent profile data and related callstack information from being reseted on breakpoint match
    • "blitter" and "dsp" subcommand added to "info" command, to show blitter register values and DSP state (e.g. stack content)
    • "prg" subcommand added to "symbols" command, for loading debug symbols from DRI/GST symbol table in last started program
    • "step" and "next" commands added for single stepping CPU and DSP code
    • -> 's' shortcut is now for "step", not "save"
    • "--disasm" option for selecting between UAE core and external CPU code dissassembler and setting output option flags for latter
    • When -D option is used, also undefined/illegal DSP instructions and DSP stack under/overflows invoke debugger, not just CPU issues
    • Fix: when several breakpoints should have triggered on the same address, only first was handled
    • Fix: after breakpoint, 'c <n>' continues one instruction too little
    • Fix: tracking breakpoint values were updated only when all conditions matched, now they can be also used together with other conditions
    • Fix: info command crash (triggered on NetBSD)
    • Fix: disassember output bug on NetBSD (usigned char < -1 test)
    • Fix: info osheader and basebase subcommands under MiNT
    • Fix: debugger history duplicates removal
    • Fix: expression expanding CPU "pc" for DSP shortcut commands
    • Fix: expression expansion messing lines in command line history
    • Remote API debugger commands can also use expression expansion
    • Both single and double quotes can be used to mark expressions
    • In addition to text section offset, data and bss section offsets can be given when loading symbols (useful for Devpac symbols)
    • Output what value was set by options if it's not otherwise shown by UI
    • New 'cpu' and 'dsp' options to 'history' command for tracing just one of these processors on Falcon
    • Function arguments are shown in traces for all non-MiNT GEMDOS calls and subset of arguments are now shown also for AES calls (values in intin array and strings in addrin array)
    • Add NVRAM read & write tracing
    • Support for the basic Native Features and --natfeats option to control it: http://wiki.aranym.org/natfeats/proposal

Windows specific changes:

  • "-W" option added for opening a console window. Like on all other platforms,
  • "-D" will now just toggle CPU exception handling
  • Fix: console stderr redirection (used invalid "wr" mode)
  • Fix Windows localtime() not supporting dates before 1970:
  • TOS not being able to access files with such dates, or further files
  • causing IKBD emulation crashes (wasn't problem with Cygwin, just with Mingw builds)

Tool updates:

  • New hatari-profiler.py script for post-processing output from profiler's CPU and DSP profiling "save" commands:
    • profile save <filename>
    • dspprofile save <filename>
  • With symbol address information it can provide function level instruction, processor cycle & i-cache miss statistics
  • With callers information it can create function call callgraphs and create callgrind format files for Kcachegrind GUI
  • New gst2ascii tool to extract DRI/GST symbol table from Atari program, for use with the profile data post-processor
  • Added scripts for converting symbol tables in Devpac 3 listings and DSP LOD files to a format understood by Hatari debugger 'symbols' command, and to clean 'nm' output of GCC & VBCC built a.out binaries for it

Other changes:

  • HTML documentation indeces generated dynamically with JS
  • Debugger tests building fixed

Fixed Games:

  • Atomix (MFP, flickering bottom of the screen during samples)
  • BBC 52 Menu (Video/CPU, top border not removed)
  • Bolo (MFP, couldn't start a game)
  • Captain Blood (IKBD, fixed problem when setting the clock)
  • Fokker and Downfall (ACIA/IKBD, had regressed in Hatari v1.6.x)
  • Fuzion CD 77/78/84 Menu (MFP, random crash with digidrums in STF mode)
  • James Pond (Fuzion CD 25) (FDC, game stuck during the intro)
  • Microprose Golf (FDC, crash during the intro)
  • Spidertronic (Zuul CD 84) (crashed before 50/60 Hz screen)
  • Super Hang On and Super Monaco GP (MFP, flickering rasters)
  • The Final Conflict (MFP, locked during the sampled intro music)
  • The Sentinel (IKBD, mouse much too slow)
  • Zuul 100/101 Menu (MFP, flickering top border)

Fixed demos :

  • Anomaly Demo Main Menu by MJJ Prod (MFP, flickering top/bottom borders)
  • Audio Artistic Demo by Big Alec (MFP, bad sample speed at start)
  • Decade Demo - Reset (MFP, flickering bottom border)
  • High Fidelity Dreams by Aura (MFP, flickering left rasters)
  • ST-NICCC 2000 Demo by Oxygene (FDC, demo ran slower than expected)

Fixed apps:

  • Monst v1.x
  • Spectrum 512 (IKBD, mouse too slow)
  • Cubase (when MIDI was enabled after Hatari startup)
wstecz08/12/2020 20:43
Do ściągnięcia
hatari-2.3.0 windows64-t2e.pl.zip
hatari-2.3.0 windows-t2e.pl.zip
Dodatkowe informacje
Komentarze
... bez komentarza
Ostatnio dodane pliki
Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run

© Try2emu 1999 - 2024 | Krzysztof 'Faust' Karkosza Kontakt Polityka Prywatności OWU