
Nouvelle mouture pour Hatari, émulateur Atari ST sous Windows, Linux et Mac OS X, qui passe en version 2.1.0 avec de nombreuses améliorations.
Principales nouveautés :
Citation
Major highlights of this new version :
- 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, ...)
See release-notes.txt for the full changelog.
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
- 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, ...)
See release-notes.txt for the full changelog.
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
Changelog :
Citation
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 <atari/host>" 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)
Fixed 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)
---------------------------
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 <atari/host>" 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)
Fixed 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)
Site officiel : http://hatari.tuxfamily.org/
Section Atari ST