top of page

4.1 / 04-01-2023





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

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



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


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


  • 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


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


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