- Emulates the Atari 400/800, 1200XL, 600/800XL, 130XE, XEGS, and 5200 systems.
- Full, cycle-exact emulation of all documented hardware features.
- Best-in-class emulation accuracy of undocumented hardware behavior, including undocumented 6502 instructions, precise DMA timing, mid-screen register changes, hardware bugs, and cycle-precise timer IRQs.
- Support for most popular 8-bit image file formats: ATR, ATX, ATZ, DCM, XFD, PRO, ARC, BAS, ROM, BIN, A52, CAS, SAP.
- Contains reimplemented versions of OS, BASIC, and handler ROMs to run 8-bit software with high compatibility without needing Atari ROMs.
- Emulation of over three decades of hardware expansions, including memory expansions, cartridge expansions, Parallel Bus Interface (PBI) devices, modems, and 65C02/65C816 accelerators.
- Accurate emulation of multiple disk drive types with options for accelerated disk loads, realistic disk timing, and drive sounds.
- Flexible display with Direct3D/OpenGL acceleration, aspect ratio options, easy resizing, and artifacting support.
- Audio and video recording, cheat trainer, DOS disk explorer with drag-and-drop, and text mode copy/paste.
- Powerful debugger with label decoding, source-level stepping, conditional breakpoints/tracepoints, watchpoints, execution history with loop/call/interrupt folding, and profiling.
- Native Windows UI with theme support, per-monitor high DPI support, file associations, and DirectInput/XInput controllers.
- Both 32-bit (x86) and 64-bit (x64) versions available.
Fixes a bug with the emulator not persisting mounted disks across runs when they come from a .zip file with non-ASCII characters in the filename.
AltirraOS bumped to 3.14, fixes only in the 65C816 version. Sysdev device (@:) no longer returns bogus data, fixed a crashing issue in the screen editor, and added a workaround for slow boot with SpartaDOS X 4.48 (it expects to be able to read mainline A/X/Y registers from the stack from the VBI handler in native mode).
A few 65C816 fixes to both the main '816 emulator and to Veronica, mostly corner case direct page wrapping bugs but also a bug with WDM being a 1-byte instead of 2-byte instruction. To give you an idea of how bizarrely inconsistent the '816 is:
- (dp) wraps within the direct page when reading the high address byte in emulation mode, except if DL > 0, except for PEI (dp) which always crosses pages.
- (dp,X) in emulation mode wraps within the direct page when reading the low address byte, except when DL > 0, but always wraps in emulation mode when reading the high byte. Which means that if D=$0001 and X=$FF, LDA ($FF,X) reads the address from $01FF and $0100.
- (dp),Y in emulation mode wraps within the direct page when DL = 0 and crosses pages for DL > 0, for both low and high address bytes. Which means that (dp,X) with X=0 and (dp),Y with Y=0 can read different addresses.
- [dp] and [dp],Y always cross pages, period.
Fortunately, none of this crazy affects 6502/65C02 code executing with default D=0 or in native mode.
Commentsblog comments powered by Disqus