Altirra Change Log

Version 1.6:
   [features added]
   * Debugger: Added profiler.
   * Debugger: Added support for loading CA65 labels.
   * Debugger: Added verifier to catch possible coding errors.
   * Debugger: Added support to view extended memory to some commands and panes.
   * UI: Added option for controlling vertical sync lock.
   * UI: Added /opengl command line switch.
   * UI: BASIC ROM is now noted on window caption.
   * UI: Window position is saved on exit.
   * UI: Added /debug switch to launch in debugger mode.
   * UI: Added /f switch for full-screen mode.
   * UI: Added .car extension to Open Image dialog.
   * UI: Input maps can now be cloned.
   * UI: Input maps can now be bound to a specific game controller index.
   * UI: Create disk dialog now has entries for standard disk formats.
   * UI: Added ability to paste text from clipboard.
   * UI: Moved warm reset to F5, bound Help to F6 and Break to F7, and merged Run into F8 to match other emulators.
   * UI: Added program icon.
   * Simulator: Added option to fill memory with a psuedorandom pattern on cold boot instead of zeroes.
   * Simulator: Added support for 65C816 high memory at banks $01-03.
   * POKEY: Increased playback sampling rate to 44KHz.
   * POKEY: Added option to toggle non-linear mixing.
   * POKEY: Added option to toggle individual sound channels.
   * POKEY: Implemented keyboard overrun bit.
   * VBXE: Register window can now be switched between $D6xx and $D7xx.
   * Disk: Added support for 1050 drive dual density format.
   * Disk: Added support for XF551 drive high speed commands.
   * GTIA: Added a stronger level of NTSC artifact emulation.

   [bugs fixed]
   * Fixed command line parsing and added several new switches.
   * HLE: Fixed math pack issues preventing Atari Basic ATN(), INT(), and SQR() from working.
   * HLE: Fixed handling of BASIC enable/disable on warm reset.
   * LLE: Improved math pack implementation.
   * ANTIC: Playfield DMA wasn't properly shut off on cold reset.
   * ANTIC: Improved emulation of mid scan line DMACTL changes.
   * ANTIC: Reset line now resets position counters.
   * ANTIC: Emulated single cycle glitch in VCOUNT at the end of a frame.
   * ANTIC: Implemented delay for changes to CHBASE to take effect.
   * POKEY: Adjusted timing of STIMER and timer rollovers.
   * POKEY: Retuned filters and non-linear mixing curve.
   * POKEY: Fixed behavior of SKSTAT serial overrun bit.
   * GTIA: Added option for displaying full PAL height when extending display past scan line 239.
   * GTIA: Fixed display of beam position when single stepping with VBXE enabled.
   * Debugger: Fixed bug where history window didn't allow scrolling to the bottom via the slider.
   * Debugger: History window now always shows last executed instruction.
   * Debugger: History window now flushes and rebuilds the tree when the history window rolls over.
   * Debugger: "Toggle read/write breakpoint" in the memory window was using the wrong address.
   * Debugger: Disassembly window now tracks 65C816 M/X/E state.
   * Debugger: .history command was using wrong register state for decoding indexed effective addresses.
   * Debugger: Fixed incorrect index register values in Registers pane in 65C816 emulation mode.
   * Debugger: Fixed disassembly of JMP (abs,X) and JSR (abs,X) instructions.
   * CPU: XCE instruction no longer sets M/X bits when staying in native mode.
   * CPU: Fixed bank used by JML, JMP (abs), and JMP (abs,X) instructions in 65C816 mode.
   * Disk: Added support for reading broken DD disks that have full 256 byte boot sectors.
   * Disk: SIO acceleration hook now sets SKCTL correctly.
   * UI: Fixed issue where full-screen mode didn't always cover the entire screen.
   * Simulator: Shortened delay to releasing OPTION on startup.

Version 1.5 [January 31, 2010]:
   [features added]
   * Added option to redirect P: to a text pane.
   * UI: Added handing for gamepads being added or pulled during execution.
   * UI: Rewrote input system and added general input mapper.
   * UI: Added options for controlling display stretching and aspect ratio.
   * UI: Added better handling for cases in which a requested firmware ROM is not available.
   * UI: Added option to control overscan display.
   * UI: Mounted disks and cartridges are saved and restored across runs.
   * UI: FPS display in window caption is now optional.
   * UI: System configuration is now shown on the window caption.
   * POKEY: Added volume control.
   * Simulator: Added "Other" firmware option to load an otheros.rom custom kernel (16K XL).
   * Cassette: Added seek UI.
   * Cassette: Reworked playback indicator.
   * GTIA: Added option to blend adjacent frames to reduce flicker.
   * GTIA: Added System > Video > Adjust Colors.
   * GTIA: Added support for interlaced output.
   * Disk: Added sector counter option.
   * Disk: Increased max drive count to 8.
   * Disk: Added burst transfer mode compatible with SpartaDOS X.
   * Disk: Get Status and Read PERCOM Block commands are now accelerated.
   * Disk: Lazy writes are now incremental.
   * VBXE: Initial emulation support.
   * Misc: Added R-Time 8 support.
   * Debugger: Added list nearest symbol (ln) command.
   * Debugger: "Go to Source" command now asks for source file location if it cannot be found.

   [bugs fixed]
   * HLE: Improved compatibility of screen editor.
   * HLE: Fixed bug in emulated math pack that broke Atari Basic.
   * Debugger: Fixed crash when a source file couldn't be found.
   * Debugger: Auto-loading of symbols for executable files works again.
   * Debugger: Source windows no longer recenter when toggling breakpoints.
   * Debugger: Fixed misspelled SKRES symbol.
   * ANTIC: Fixed incorrect CPU timing for STA WSYNC + PHA combination.
   * ANTIC: Vertical scroll bit is now kept across VBLANK if display list is too long.
   * ANTIC: Fixed timing of display list DMA enable changes (DMACTL bit 5).
   * ANTIC: Internal line buffer is no longer cleared when repeating mode lines with display list DMA disabled.
   * ANTIC: Mode lines can now repeat across VBLANK with display list DMA disabled.
   * ANTIC: Added emulation of bug where VBLANK can fail to occur if scan line 247 is a hires line.
   * POKEY: Fixed reading of POT timers before pot counters have stabilized.
   * CPU: Implemented SBX instruction ($CB).
   * Disk: Increased reliability of lazy flush mechanism.
   * Disk: Fixed PERCOM block for large disk images.
   * Disk: Fixed boot sector count for 512 byte/sector images.
   * Disk: Hard disk (H:) no longer goes away on a warm reset.
   * Disk: Reverted change to raise RTCLOK on SIO acceleration to fix bugs with programs that monitor RTCLOK from a VBI handler.
   * UI: Mouse capture is automatically released when the simulator stops.
   * UI: Fixed USER handle leaks.
   * Simulator: 1088K memory mode no longer disables self-test bit when extended RAM is disabled.
   * LLE: Fixed cartridge initialization.
   * LLE: Fixed BASIC ROM switching.
   * LLE: K: open/close calls are now implemented.
   * LLE: Added initial math pack implementation.
   * LLE: SIO now shuts off all audio channels.

Version 1.4 [November 8, 2009]:
   [features added]
   * Debugger: Added .diskorder command to force phantom sector load order.
   * Debugger: Added .dma command to dump current ANTIC DMA pattern.
   * Debugger: Added .caslogdata to diagnose cassette data read failures.
   * Debugger: Added .pia command to dump PIA state.
   * Disk: Added support for command $4E (Read PERCOM Block).
   * Disk: Added support for reading Diskcomm (DCM) images.
   * Cassette: CAS images and mono WAV files now play data as audio.
   * Cassette: The SIO acceleration engine now reports diagnostics about damaged blocks to the console window.
   * Cassette: Made accelerated read routine more robust against interpreting garbage as the start of block sync.
   * Cassette: Optimized WAV processing routine.
   * Cassette: Added command to unload tape.
   * Cassette: Added emulation of feedback from SIO motor control line into audio input.
   * UI: Added command to reset window layout.
   * UI: Drag-and-drop is now a synonym for the Open Image command.
   * UI: Added more key mappings.
   * UI: Added Boot Image command to unload all existing cartridges/disks/tapes and cold reset after loading an image.
   * UI: Added debugging option to dump raw audio to disk (32-bit float @ 63920.4 NTSC / 63337.4Hz PAL).
   * UI: Added .com to list of file filters for the Open Image/Boot Image commands.
   * UI: Added enhanced text display mode.
   * Simulator: Added support for loading OS-A kernel ROM.
   * GTIA: Added support for PAL artifacting.

   [bugs fixed]
   * UI: Mapped Ctrl+alpha/num and Ctrl+Shift+alpha/num keys.
   * UI: Arrow-keys now auto-repeat.
   * UI: View > Display works when the debugger is disabled.
   * UI: Fixed window activation and sizing problems when toggling full screen mode.
   * UI: This simulation is now throttled in full-screen mode.
   * CPU: Implemented TDC instruction in 65C816 mode.
   * CPU: Implemented undocumented $93 (SHA) and $BB (LAS) opcodes.
   * CPU: Fixed flags on $9C (SHY) opcode.
   * CPU: Removed bogus 65C816 opcode ($DC) in 6502 decoder.
   * Cassette: Fixed desync between audio and data after accelerated load.
   * Cassette: Audio/data channels are no longer swapped when processing stereo input.
   * Cassette: Raised cutoff on control line low-pass filter to fix reliability problems at turbo baud rates.
   * Cassette: Fixed incorrect SIO return code for accelerated cassette reads.
   * Cartridge: Fixed MMU mapper so that the cartridge ROM now overrides BASIC at $A000-BFFF.
   * Cartridge: TRIG3 is now deasserted when $A000-BFFF is unmapped.
   * Cartridge: The second bank setting for Bounty Bob Strikes Back! cartridges is now saved in save states.
   * Disk: Added support for weak bit emulation in VAPI images.
   * Disk: Fixed VAPI image read errors when missing sectors are present.
   * Disk: Fixed incorrect FDC status when loading long sectors that set the "lost data" status bit.
   * Disk: SIOV/DSKINV acceleration handlers set more kernel variables for better compatibility.
   * Disk: Abort acceleration attempt when disk buffer contains SIO timeout flag (TIMFLG).
   * Disk: Adjusted sector read delay to increase VAPI image compatibility.
   * Disk: Fixed cases where the virtual read/write setting was not obeyed properly.
   * GTIA: Changes to GRAFPx/GRAFM are latched and no longer affect a sprite image that is already shifting out.
   * GTIA: Increased timing precision of console speaker from 28 cycles to single cycle.
   * GTIA: Fixed bug that caused some apps to misdetect the video mode as SECAM.
   * GTIA: Adjusted timing for mid-screen changes to P/M graphics and color registers.
   * GTIA: CONSOL output bit 3 wasn't affecting input bit 3.
   * GTIA: VDELAY now masks DMA fetches rather than actually delaying loads.
   * POKEY: Fixed random crash in stereo mode.
   * POKEY: 15KHz and 64KHz clocks are no longer joined between the left and right channel chips.
   * POKEY: The channels now have the correct 0-3 clock skew for reading the noise generators.
   * POKEY: Implemented channel 1/2 inversion when not in volume-only mode.
   * POKEY: Implemented non-linear mixing.
   * POKEY: Audio plays again when initialization mode is active.
   * POKEY: Implemented serial force break bit (SKCTL bit 7) affecting two-tone mode.
   * POKEY: STIMER now resets output channel states properly.
   * POKEY: Asynchronous serial input mode now holds down timers 3 and 4 again when a byte is not shifting in.
   * HLE: The math pack is now emulated even if the acceleration option is disabled.
   * HLE: POTGO is now strobed during vertical blank stage 2 processing.
   * HLE: STRIG2/3 are now updated from TRIG0/1 instead of TRIG2/3 for XL/XE hardware compatibility.
   * HLE: Fixed bug where POKEY was put into initialization mode after an unaccelerated SIO transfer.
   * HLE: POKEY audio channels are now shut off after an SIO operation.
   * HLE: Added keyboard click.
   * ANTIC: Two-line resolution mode now reloads GTIA every scan line.
   * ANTIC: Fixed timing when using read-modify-write instructions to trigger WSYNC.
   * Simulator: Memory banking wasn't updated properly on changes to the port B data direction register.

Version 1.3 [September 4, 2009]:
   [features added]
   * Debugger: Register pane now shows 65C816 state.
   * Debugger: Added context menu to disassembly pane.
   * Debugger: *.lst and *.lab symbols are automatically detected and loaded for direct-run EXEs and cartridges.
   * Debugger: Improved source-level debugging capability.
   * Debugger: Opcodes are now cached so that they show correctly in the history log even with bank switching.
   * UI: Filter mode is now saved on exit.
   * UI: Added command to copy current frame to the clipboard.
   * UI: Added paddle support.
   * GTIA: Optimized artifacting code.
   * GTIA: Added the ability to disable collisions for cheating.
   * Cartridge: Added support for 64K XEGS and 512K MegaCart cartridge types.
   * Cartridge: Added support for SuperCharger 3D cartridge.
   * Cassette: Added support for non-standard baud rates.
   * Cassette: Added auto-boot option.
   * Cassette: Device open commands are now accelerated.

   [bugs fixed]
   * Simulator: More fixes to executable loader.
   * Simulator: 320K memory mode now banks ANTIC along with the CPU.
   * Simulator: Joystick and bank switch masking via the PIA data direction register is now supported.
   * Simulator: Rewrote BASIC handling to use the OPTION switch rather than masking PORTB bit 1.
   * Simulator: Reset PIA, ANTIC, and CPU on warm reset for XL hardware.
   * Simulator: Self-test ROM no longer appears if kernel ROM is disabled.
   * Simulator: Adjusted PAL frame rate.
   * Simulator: Disk boot flag is now set when loading EXEs to accommodate programs that warm start through DOSINI vector.
   * Simulator: EXE loader is more tolerant of broken files.
   * CPU: Fixed many 65C02/65C816 bugs.
   * CPU: Fixed emulation of NMOS 6502 decimal mode.
   * CPU: Fixed bugs in undocumented instructions.
   * CPU: Fixed emulation crash when switching to 65C816 on the fly.
   * CPU: Fixed handling of break flag.
   * CPU: Now allow one instruction to pass before taking IRQ interrupt after clearing I flag.
   * Debugger: Improved handling of 65C816 modes in disassembler.
   * Debugger: Debug memory reads no longer see $FF in the page where a read memory breakpoint is set.
   * Debugger: Fixed bugs in symbol parser when loading MADS listings.
   * Debugger: Fixed line highlighting in source windows.
   * Debugger: Disassembly recomputes on 65C816 mode changes.
   * Disk: Fixed bug in loading of ATR files that have non-standard boot sector counts.
   * Disk: Additional compatibility fixes to DSKINV acceleration.
   * Disk: Status commands are no longer delayed by the accurate disk timing option.
   * Disk: Applied slight adjustment to SIO transfer rate.
   * Disk: POKEY timers are now shut off after SIO/DSKINV acceleration.
   * Disk: Strengthened disk image format validation and made XFD loading more tolerant.
   * UI: Fixed bug in CPU mode dialog that prevented selection of 65C02 mode.
   * UI: Fixed crash when accessing menu with display pane closed.
   * UI: Keyboard-as-joystick logic no longer allows simultaneous up+down and left+right.
   * UI: Added support for controlling joystick port 2.
   * UI: Blocked invalid machine configurations with XL kernel and 800 hardware or less than 64K of memory.
   * ANTIC: Fixed broken mode 9.
   * ANTIC: Vertical reflect now works on modes 4-7.
   * ANTIC: Player/missile DMA no longer occurs during vertical blank.
   * ANTIC: Fixed behavior of vertical scrolling on blank lines.
   * ANTIC: Changes in playfield width are now supported later in a scan line.
   * ANTIC: Moved VCOUNT advance forward by one cycle.
   * ANTIC: NMIs are now suppressed if enabled too close to trigger point.
   * ANTIC: NMIs are now delayed by one cycle if enabled exactly on cycle 8.
   * GTIA: Bogus missile-player collisions were reported if a register change occurred in the middle of a missile.
   * GTIA: Fixed CONSOL I/O interactions on switch lines.
   * GTIA: Save states now restore player/missile widths.
   * HLE: DSKINV now supports double-density disks.
   * HLE: Improved compatibility of post-init PORTB state.
   * POKEY: Rewrote resampling filter to better block high frequencies.
   * POKEY: Fixed 17-bit noise register polynomial and shift direction.
   * POKEY: Initialization mode (SKCTL[1:0] == 0) now resets the low-speed clocks and polynomial shift registers.
   * POKEY: Asynchronous serial receive mode no longer suspends channels 3 and 4.

Version 1.2 [July 5, 2009]:
   [features added]
   * Debugger: Added memory pane.
   * Debugger: Shift+F11 is now a shortcut for Step Out.
   * Debugger: History window now supports the mouse wheel.
   * GTIA: Added artifacting support.
   * UI: Cursor auto-hides when over display pane.
   * UI: Added window pane layout saving.
   * UI: Basic support for an Atari ST mouse in port 2.
   * UI: Added more keyboard mappings.
   * Simulator: Added initial save state support.
   * Simulator: Added option to pause when not the active application.
   * CPU: Initial 65C02 and 65C816 support.

   [bugs fixed]
   * Simulator: Fixed RUNAD handling in executable loader.
   * Simulator: Fixed incorrect TRIG3 cartridge sense on launch.
   * UI: Tweaked aspect ratio constants.
   * UI: Fixed some bugs with pane undocking.
   * ANTIC: Added missing address wrapping (fixes hang loading Bounty Bob).
   * ANTIC: Fixed VSCROL timing to acccommodate more mode line extension tricks.
   * ANTIC: Fixed low bits in NMIST register.
   * POKEY: Tweaked hi-pass to sound better.
   * POKEY: Implemented fast pot scan mode.
   * POKEY: Two-tone serial mode now affects timer 1/2 sound output.
   * Debugger: Breakpoints can now be seen on the active line.
   * Debugger: Fixed early stop when trying to Step Out across a PLA or PLP instruction.
   * Debugger: CPU status traces on single-step use the instruction PC rather than the raw PC.
   * HLE: Fixed black status pane in Pole Position due to incorrect attract mode handling.
   * HLE: Fixed startup path problems that prevented SpartaDOS X from starting.
   * HLE: Screen handler now adjusts user memory limit.
   * HLE: Fixed length return value bug in CIO put characters command.
   * HLE: Control codes now work with S:.
   * Disk: Fixed CIO return codes for H: handler.
   * Cartridge: Cart bank is now reset on cold reset.
   * Cartridge: Fixed banking and recognition problems with MaxFlash 1M cartridge format.
   * CPU: Added option to halt on BRK instructions.
   * GTIA: Fixed nasty bug where P/M collisions got messed up whenever the simulator dropped a frame.
   * GTIA: Fixed behavior of sprites when repositioned during active region.
   * GTIA: Implemented text blink and vertical reflect bits.
   * GTIA: Fixed low bit in PAL register in NTSC mode.

Version 1.1 [May 12, 2009]:
   [features added]
   * CPU: Added an option to disable illegal opcode support.
   * Disk: Added .XFD support.
   * Disk: Added rudimentary hard disk (H:) support.
   * UI: Added exception handler to write crash information.
   * UI: F8 now also breaks into the debugger.
   * UI: Fixed some window activation issues in the docking system.
   * UI: Display is now locked to correct aspect ratio.
   * UI: Dockable panes are now based on percentage rather than absolute width.
   * UI: Changed location of Registry key to work around antivirus false positives.
   * Cartridge: Added support for cartridge images that have headers.
   * Cartridge: Added support for MaxFlash 128K and 1M cartridge formats.
   * Debugger: F5/F8/F9/F10/Shift+F10 now work.
   * Debugger: Frames are now double-clickable in the call stack window.
   * Debugger: F10 now works in the console command line.
   * Debugger: Added history window.
   * HLE: Rewrote HLE kernel mode to be based off the LLE kernel for better compatibility.

   [bugs fixed]
   * Simulator: Init and run vectors are now implemented properly -- fixes New Year's Miracle demo.
   * Simulator: $FFFF optional headers in executables no longer produce load errors.
   * Kernel: DRKMSK was not set -- fixes missing status bar in The Last Word.
   * Debugger: The start of instruction PC is now reported instead of the CPU raw internal PC.
   * Debugger: Fixed infinite loop when viewing disassembly beyond $FFFF.
   * Debugger: Disassembly view edit window now works.
   * Debugger: Fixed a cycle being lost by the CPU on each step or breakpoint hit.
   * Debugger: Console window now scrolls to bottom when updating.
   * UI: Implemented some Ctrl+Key combinations.
   * UI: Fixed jittering problems in full-screen mode.
   * UI: Fixed some focus problems when docking and undocking panes.
   * UI: Full-screen mode no longer shows window borders when using GDI or DirectDraw for display.
   * UI: Removed horizontal and vertical blank regions from display window.
   * UI: Caps Lock now works.
   * UI: Mouse pointer is now hidden in full-screen mode.
   * Disk: Improved disk emulation compatibility with SpartaDOS X.
   * Disk: Fixed corruption of first byte on sector writes.
   * Pokey: Added missing channel 2+4 high pass filter.
   * Pokey: Fixed off-by-one in 1.79MHz 16-bit timing that screwed up some demos using 4-bit polynomial beats.
   * Pokey: Pot scanning is now implemented.
   * GTIA: Color mixing with PRIOR D0-D3=0 now works.
   * GTIA: Fixed incorrect luminance for background in 16 color mode.
   * GTIA: Fixed player/playfield priorities in 9 color mode.
   * GTIA: Fifth player now mixes in PF3 color properly in 16 color/luma modes.
   * GTIA: Color registers no longer have four luma bits.
   * GTIA: ANTIC modes other than 2, 3, and F now work with GTIA modes.
   * GTIA: Implemented psuedo-mode-E caused by resetting the GTIA mode mid-scanline.
   * GTIA: Collisions now register in 9 color mode.
   * GTIA: Implemented one color clock shift in 9 color mode.
   * GTIA: Changing HSCROL in the middle of a mode line now works.
   * ANTIC: Corrected WSYNC, DLI, and VBI timing.
   * CPU: Fixed instruction timing for read-modify-write opcodes using abs,X addressing.

Version 1.0:
   * Initial release.
