top of page
loading_reduced.jpg

4.1 / 04-01-2023

Altirra

Accuracy

Performance

Features

average rating is 4.1 out of 5
average rating is 4.1 out of 5
average rating is 4.6 out of 5
competition

Altirra is a full cycle-exact emulation of all documented hardware features for the Atari 400/800, 1200XL, 600/800XL, 130XE, XEGS, and 5200 systems and is particularly notable for having a very well equipped debugger tool.

--

Windows: XP SP3+ for x86/x64

                     Qualcomm Snapdragon 835+ for ARM64

Most Recent Changes

--4.10--

Changes

  • Display: Direct3D 11 and borderless mode are now enabled by default for new installs.

  • Input: Light pens and light guns have been split for 4.10+. Input presets may need to be updated and offsets readjusted.

  • UI: ANTIC/GTIA visualization options have been moved to the Debug menu.
     

Features Added

  • Audio: Added option downmixing stereo POKEY output to mono.

  • Audio: Added 800 console speaker acoustics simulation.

  • Cartridge: Added support for CAR types 71-75 (5200 Super Cart, bank 0 init version of MaxFlash 8Mbit).

  • Cartridge: Added support for the XE Multicart.

  • Cartridge: Added support for SIC+.

  • Cassette: Added config variable to manually tweak balance between mark/space bit detectors.

  • Cassette: Added support for PWM encoded turbo data in CAS files.

  • Cassette: Added support for SIO data out controlled turbo (Turbo Blizzard).

  • Custom Devices: The priority of memory layers can now be customized.

  • Debugger: Memory locations can now be edited in the Memory pane.

  • Debugger: Memory pane now has an option to display 8bpp graphics.

  • Debugger: Randomize Memory on EXE Load option now logs when randomization occurs and uses the global randomization seed.

  • Debugger: .loadobj and .loadmem now take VFS paths.

  • Debugger: Added .error command to decode various error codes.

  • Debugger: Added Breakpoints pane and Ctrl+B as a shortcut for a new breakpoint.

  • Debugger: Added initial support for DWARF5 debugging information from LLVM-MOS .elf files.

  • Debugger: Disassembly window now supports address expressions and mixed source/disassembly view.

  • Devices: Improved selection behavior when adding or removing devices.

  • Devices: NVRAM can now be isolated per profile and follows the temporary profile state.

  • Devices: Added SimCovox support.

  • Devices: Added shortcut command to temporarily mount VHD images in Windows to access FAT32 partitions.

  • Devices: APT partitions on hard disks can now be opened in Disk Explorer.

  • Disk: Added emulation of buffered track reads for Happy 1050 and Speedy 1050 devices in standard emulation mode.

  • Disk: 810/1050 full drive emulations now warn on attempts to use double-sided disks that can’t be read in those drives.

  • Display: SDR/HDR balance in HDR mode can now use the system-wide SDR intensity setting.

  • Display: Added support for DXGI 1.3 seamless custom refresh rate support on integrated display panels.

  • Display: Reduced buffered frame latency in display paths.

  • Display: Added adaptive speed option to lock to refresh rate for reduced latency.

  • Firmware: Added detection of several XF551 firmware ROMs.

  • HDevice: Added full long filename mode.

  • HLE: Program loader now simulates SDFS disk in Disk Boot mode to auto-trigger EXE load under SDX.

  • Input: Extended immediate pots option to allow support immediate light pen/gun inputs.

  • Input: Added interactive tool to recalibrate light pen/gun offset.

  • Input: Improved accuracy of light pen/gun trigger pulse timing.

  • Input: Added an option for light pen/gun noise.

  • PerfAnalyzer: Added support for exporting to Chrome tracing format.

  • Tape Editor: Bit position is now marked purple if a single bit flip is identified that would fix a bad checksum in a standard block.

  • UI: The Check for Updates dialog now has a link to the internal RSS feed used to deliver the new update info.

  • UI: Added support for copying and pasting characters from the interactional character set.

  • UI: Keyboard shortcut dialog now has better support for binding Alt+keys and is more keyboard accessible.

  • UI: Added dark mode support for checkboxes and radio buttons.

  • UI: Alt+click decode can now decode MyDOS error messages.

  • UI: Paste can now paste visible control characters from Unicode.

  • UI: Improved clarity of screenshots captured with true aspect ratio by changing image filter.


Bugs Fixed

  • Additions: Fixed BRK instruction in LOADEXE.COM.

  • AltirraOS: Improved compatibility of TIMFLG usage and initial register values on tape boot.

  • Cartridge: Fixed banking issues with SIC! during flashing and when loading save states.

  • Cassette: Accelerated C: loads now handle block reads with timeouts longer than 30 seconds.

  • Cassette: Accelerated C: loads now set TIMFLG.

  • Cassette: Fixed FLAC decoder errors with some files.

  • Custom Devices: Blocked ++/– increment operators to avoid confusion (they were parsed as pairs of unary operators, which was usually not intended).

  • Debugger: Fixed memory window horizontal scrollbar not updating after some changes.

  • Debugger: Fixed long pauses or broken history listings when toggling the collapse options in the History window.

  • Debugger: Fixed .printf command outputting a garbled character with %d/i format.

  • Debugger: Improved load speed of source windows.

  • Debugger: Fixed symbol-related crash when opening source windows with deferred symbol loads.

  • Debugger: Fixed Step Out/Into commands not using source mode in an undocked source window.

  • Debugger: Fast boot hook now marks memory as preset to avoid tripping false uninitialized memory errors when heat map trapping is enabled.

  • Debugger: Source window was keeping stale source line data when reloading symbols.

  • Debugger: Fixed ##BANK annotations in MADS listings not being parsed properly with decimal bank numbers.

  • Debugger: Fixed bug where memory access breakpoints would stop working after clearing other access breakpoints at the same address.

  • Devices: Fixed SD card multiple-block write command.

  • Devices: Fixed SD card state not being reset on SD power toggle.

  • Devices: Fixed bug with virtual FAT16/FAT32 hard drives returning bad sector data when re-reading final partial data sectors of a file.

  • Disk: Fixed too short timeout for Record Not Found (RNF) errors.

  • Disk: Improved sound of recalibrations in 810-based standard emulation modes.

  • Disk: Retuned receive rates for Happy 810 and Happy 1050 standard emulation modes.

  • Disk: Fixed idle motor-off timeout occurring too quickly after long commands with retries.

  • Disk: XF551 full emulator now supports IN A,BUS instruction used by some modified firmware.

  • Disk Explorer: Fix incorrect Unicode mappings for control characters in viewer.

  • Display: Reduced frame jitter in D3D11 windowed mode on Windows 8.1+.

  • Display: Fixed monochrome modes with VBXE or high artifacting.

  • Display: Fixed low quality text rendering in D3D11 mode after a change in HDR mode.

  • Display: Fixed crash when forced out of D3D11 exclusive full screen mode by OS due to an overlapping window.

  • HDevice: Fixed append mode not working for files on H6-H9:.

  • Input: Fixed vertical offset on light pen/gun position in PAL.

  • Input: Add Ctrl+Shift+Alt+0 as an alias for Ctrl+Shift+0 to work around Windows stealing this key for a keyboard layout switching shortcut.

  • PerfAnalyzer: Tape channels now show proper jumps when accelerated loads occur.

  • PerfAnalyzer: Fixed NMI showing as IRQ when NMI preempts IRQ.

  • PCLink: Directory enumerations now report if a directory is the root or a subdirectory.

  • PCLink: Improved path compatibility with standard SpartaDOS X path parser.

  • POKEY: Fixed glitches in low linked timer 3 audio output when updating linked timer 3+4 state.

  • POKEY: Improved accuracy of serial port clock timing.

  • POKEY: Serial output bit state is no longer reset by initialization mode.

  • POKEY: Improved accuracy of timer reloads.

  • Profiler: Fixed negative unhalted cycle counts showing up around STA WSYNC instructions.

  • SaveStates: Fixed bug where sprite engine could get desynced after loading a save state.

  • Tape Editor: Fixed draw tool using wrong threshold for bit polarity with waveform display enabled.

  • Tape Editor: Fixed SIO capture option not showing enable state on menu.

  • Tape Editor: Captured accelerated C: loads now show sync bytes.

  • Tape Editor: Block checksum status is more reliably shown during live SIO data capture.

  • Tape Editor: Fixed extraneous bit data being added when saving a new CAS file after editing.

  • UI: Reduced glitches when toggling the debugger or full screen mode.

  • UI: /startuplog can now exclude log channels with ‘-‘ and ignores Ctrl+C.

  • UI: Removed delay when switching from very slow speed (1%) to t.

  • UI: Progress dialogs are now suppressed in exclusive full screen mode to avoid popping out of full screen when loading tapes.

  • UI: Fixed non-native file browser not working with UNC paths.

  • UI: Fixed focus glitching when selecting a docked tab with an undocked pane selected.

  • UI: Fixed an issue where Unicode text would sometimes be read out of the clipboard as ANSI text.



--4.01--

Bugs fixed

  • Additions: Fixed LOADEXE.XEX using old $FD device SIO code for the program loader instead of $7D.

  • AltirraOS: Fixed math pack compatibility issue with FDIV modifying FLPTR (fixes B-Graph pie chart routine).

  • AltirraOS: Fixed a cursor position checking bug with split screen Gr.0 (fixes the BASIC game House of Usher).

  • AltirraOS: Fixed compatibility issue with KEYDEL handling (fixes cursor movement in BrushupV40).

  • ATBasic: IOCB#7 is now automatically closed on I/O errors to avoid SAVE files being kept open for write.

  • Cassette: Fixed FLAC decoder crash with some block sizes.

  • Cassette: Fixed regression with FSK blocks in CAS files being read as turbo pulses instead of FSK pulses.

  • Disk: Retuned XF551 high-speed C/E to data frame delay.

  • Display: Workaround for D3D11 minimum precision crash on Intel Iris Xe 30.0.101.1069 driver.

  • Serial: Pad out 850 relocator to match length of original firmware relocator (fixes compatibility with loaders that hardcode the relocator length).

  • VFS: Fixed wrong file being accessed when using atfs:// paths to access files inside a DOS 2 disk image.



--4.00--

  • Tape: New turbo support, tape editor, and support for loading raw tapes directly from .flac files.

  • Disk: Atari 815 emulation, 8" disk geometry support, Disk Explorer can now access files in Indus CP/M images, many full disk drive emulation fixes.

  • Display: Palette solver, monochrome mode, HDR display support, ANTIC fixes.

  • Sound: Improved audio filtering, automatic output switching when using WASAPI output, POKEY fixes.

  • Input: Preset template generator for making input maps, low-latency paddle option, retuned trackball speeds, 5200 fixes.

  • Devices: Percom AT88-SPD, SIDE 3, 1090 80-column board, Bit 3, virtual FAT16/FAT32/SDFS hard disk; modem, XEP80 and Rapidus fixes.

  • UI: Improved dark mode theme support.

  • Debugger: Memory window upgraded with variable width, type, and graphics decoding support; improved speed, more banked cartridge debugging support, improved 65C816 native mode support, more timestamped logging options, and more verifier options.

Show Previous Changes

--3.91--

bug fix release for the 3.x line containing critical bug fixes



--3.90--

features added
  * AltirraOS: The boot screen in the XL/XE version now continues boot on disk insertion rather than forcing a reboot.
  * AltirraOS: Extended memory scan limit for 800 version to $D000 to support 52K expanded configurations.
  * Audio: Individual channels on the secondary POKEY can now be muted.
  * Cartridge: Added JRC 64K + RAM cartridge type.
  * Cassette: Optimized cassette tape emulation routines.
  * Cassette: Added option for high-pass prefiltering before the turbo tape decoder.
  * Debugger: Improved loop detector in history view to more precisely capture loop.
  * Debugger: Added @tapepos pseudovariable.
  * Debugger: Specifying ? for a path argument now opens a file dialog to select the path.
  * Debugger: The disassembly window now has support for showing procedure dividers, previewing called procedures, and jumping to call targets.
  * Debugger: Disassembly and History views now save their disassembly settings.
  * Debugger: Added option to disable automatic system symbols.
  * Debugger: Alt+Shift+click on the display jumps to History at the corresponding beam position.
  * Debugger: Verifier supports detecting access to non-canonical hardware addresses.
  * Debugger: .caslogdata command superceded by updated CASDATA/CASDATA2 logging channels.
  * Devices: XEP80 can now be switched to different controller ports.
  * Disk: Added full emulation for 810 Turbo, Amdek AMDC-I/II, and Percom AT-88 disk drives.
  * Disk: A warning is now displayed when attempting to insert a disk into a drive that doesn't support it (e.g. double-density disk into an 810).
  * Disk: Detailed errors are displayed when a disk image write fails on the host and is remounted virtual read/write.
  * Disk Explorer: Added Import File and Export File commands so that drag and drop is not needed to copy files.
  * Display: Added option for frame blending in linear color space for better accuracy.
  * Display: Color settings can be saved and loaded from external files.
  * Display: Added new default preset for PAL.
  * Display: The Hue Start slider in color settings now has the same I-Q angle definition in PAL quirks mode and works in PAL high artifacting mode.
  * Firmware: Add Firmware now detects OS ROM images even if the specific image is not recognized.
  * Firmware: Added detection for more MIO firmware images and support for auto-trimming padded 16K images down to 8K.
  * Input: The keyboard layout editor now warns if the key mapping being added conflicts with a keyboard shortcut.
  * Recorder: Added options for pixel aspect ratio and frame scaling.
  * Recorder: Added support for recording to WMV and H.264 through Media Foundation on Windows 7 and later.
  * SaveStates: Save state format rewritten to v2 (*.atstate2), now based on JSON within a .zip file for better accessibility and versioning.
  * SaveStates: CPU state can now be saved mid-instruction.
  * Simulator: Reordered frame wait and device poll timing around VBLANK to reduce input and output latency.
  * UI: Added experimental dark theme support.
  * UI: Added /reset command-line switch to selectively reset settings.
  * UI: Audio monitor now shows modified frequencies for two-tone mode, indicators for two-tone mode and asynchronous receive mode, and better shows ultrasonic effects.
  * UI: Added audio scope for viewing raw POKEY output.
  * UI: Added options for controlling mouse pointer visibility.
  * UI: Audio monitor positioning can now be customized.
  * Video: Added PERITEL adapter and monochrome monitor emulation.

bugs fixed
  * AltirraOS: Audio configuration is reset more often on tape reads to produce familiar sounds.
  * AltirraOS: Disk boot can now occur after cassette boot and right cartridge non-boot.
  * AltirraOS: OLDADR usage adjusted for compatibility with SDX QUICKED.SYS.
  * AltirraOS: SIO transmit operations can now be interrupted by User Break.
  * AltirraOS: The Display Handler now properly sets the default background color (COLOR4) to $06 when opening a GR.11 screen.
  * AltirraOS: KRPDEL is now set and keyboard repeat rates are NTSC/PAL adjusted on the XL/XE/XEGS version.
  * AltirraOS: Fixed an SIO issue with an out-of-spec short delay from asserting the command line to first command byte.
  * AltirraOS: Fixed disk boot issues if a PBI device or cartridge init routine issued an SIO request with DAUX2 > 0 before the disk boot.
  * AltirraOS: The boot screen now resets the Break key state properly after a boot is interrupted by the Break key.
  * AltirraOS: Improved native mode compatibility of 816 version.
  * ANTIC: RNMI (400/800 System Reset) is now always synchronized to VBI.
  * Audio: Fixed stereo mixing being twice as loud as mono mixing.
  * CPU: Fixed cycle timing for indexed illegal read-modify-write instructions and ARR #imm ($6B).
  * CPU: Fixed extra instruction being run occasionally for a DLI delayed by WSYNC.
  * CPU: 65C816 (dp,X) addressing mode now always wraps in emulation mode when accessing high byte regardless of DP.
  * CPU: 65C816 (dp) addressing mode properly wraps in emulation mode with DP aligned, except for PEI (dp).
  * CPU: 65C816 WDM instruction now properly fetches two bytes.
  * Debugger: .dumpdsm -s option now interprets 6809 instructions.
  * Debugger: Line number information is now updated properly when using cartridge bank mapping in MADS listings.
  * Debugger: Disassembly window now accepts cartridge bank addresses.
  * Debugger: Fixed broken option to auto-load kernel ROM symbols.
  * Debugger: Reduced frequency of stale memory in the disassembly window.
  * Debugger: Fixed incorrect call nesting in history window in Z80 mode.
  * Debugger: Fixed some disassembly errors in 6809 mode.
  * Debugger: Input byte (ib) now correctly issues read cycles with side effects in the main CPU address space.
  * Devices: Fixed crash on ANTIC reading from SoundBoard hardware registers.
  * Devices: 65C816 emulation fixes for Veronica.
  * Disk: Fixed some illegal indexed RMW instructions taking too few cycles for 6502 coprocessors in full disk emulators.
  * Disk: Full drive emulation FDC now allows Write Track commands to proceed immediately when the index signal is already active.
  * Disk: Improved accuracy of RIOT interval timer.
  * Disk: Corrected FDC head load and initial DRQ timings for Write Track command.
  * Disk: Implemented FDC Write Track quirk for back-to-back CRC ($F7) tokens.
  * Disk: Fixed some 6809 coprocessor emulation bugs.
  * Disk: Corrected side 2 sector mappings for ATR8000, Percom, and XF551 full drive emulators.
  * Disk: Fixed case where drive timing could be disrupted after hitting a drive coprocessor breakpoint.
  * Disk: Seek sounds no longer overlap when disk access is accelerated.
  * Disk: Fixed crash when ejecting disk at specific point during disk read command.
  * Disk: FD1771 FDC now properly times out in two revolutions instead of five in 810 full drive mode.
  * Disk: Fixed bogus FDC interrupts from Force Interrupt commands.
  * Disk: Indus GT ignores ready status to match hardware.
  * Disk Explorer: Fixed a filename validation bug with DOS 2 disks where duplicate files could be written if the original filename had extra characters after the extension.
  * Disk Explorer: Modifying a mounted disk image now forces a disk change to flush caches on emulated full drives that do track buffering.
  * Display: Fixed an issue with color profiles having the wrong color matching setting when initially established.
  * Display: Fixed crash when pasting into enhanced text display in CIO mode.
  * Display: Typing in enhanced text display (CIO mode) now clears the attract mode counter.
  * Firmware: Fall back to next available firmware if default firmware for a type is removed.
  * Input: Character mappings in custom keyboard layouts didn't work for non-ASCII extended characters.
  * Input: Changes to custom keyboard layouts didn't take effect immediately.
  * PerfAnalyzer: Joystick state (PIA port A) is now captured in traces.
  * POKEY: Improved accuracy of two-tone mode timing at 1.79MHz.
  * Recorder: Fixed SAP type R initial silence detector checking AUDFx registers instead of AUDCx registers.
  * SaveStates: POKEY serial input state is now saved.
  * SCSI: Fixed BSY being asserted in selection phase even for non-existent devices.
  * Simulator: Improved accuracy of power-up values for POKEY and GTIA registers.
  * Simulator: Display message via placeholder ROM if kernel ROM file could not be loaded.
  * VBXE: Fixed a crash when toggling shared memory option.
  * VBXE: Fixed double correction of display with gamma or color correction options enabled.
  * VFS: Fixed zip/gz paths with non-ASCII characters not being encoded properly and getting dropped on restart.



--

On their next update, this section will be refreshed.

bottom of page