Posted Thu Jan 3, 2013 7:07 AM
a new release of Atari++, the portable atari emulator for Linux and windows has been released here in the download section - as usual, you find there the Linux sources and a compiled version for 32-bit Windows. There are so many changes this time that it's hard to start, most of them address defects in the emulation core and not so much in the user interface. There were quite some changes I would love to add, but my vacation is about to end in a couple of days and I was wrapping up to get this release out.
So what's new this time: (long list):
- Priority engine for the "fifth player" generated by missles was redesigned and should now reproduce all possible cases, including the priority conflicts correctly.
- Color mixing of the fifth player on top of GTIA modes C0 and 40 should now work correctly.
- Timing of the GTIA "strange mode" where PF0 to PF3 are used for a HIRES generated playfield was made more precise.
- Color lookup for GTIA modes C0 and 40 on top of non-HIRES ANTIC modes was fixed.
- Player-playfield color mixing for GTIA mode 80 was fixed.
- Experimental support for on-line player and missile resizing was added.
- ANTIC display generation was re-designed yet again and was rewritten.
- ANTIC DLI and NMI timing was made a lot more precise and should now work to the cycle.
- ANTIC VSCROLL support should now work to the cycle.
- ANTIC DMA cycle allocation should now be finally correct for all modes.
- Added emulation for ANTIC forgetting the sync signal if the last line on the screen is HIRES.
- Added emulation of carrying the DLI and VSCROLL information across vertical blanks from the last displayed scan-line.
- The jump on vertical blank ANTIC instruction did not generate a DLI on each line if DLI was enabled. Fixed
- The rather ugly re-generation of ANTIC modelines for character-based modes was removed. This simplified the design, but might impact the emulation quality in some corner cases. A new ANTIC design would be required to fix this. More careful timing in display build-up should make this unnecessary anyhow.
- DMA border computation is now much more canonical and cleaned up.
- Since a lot of the internal timing should now work "on the cycle", there is no longer a need to configure some of the ANTIC variables, thus parts of the ANTIC preferences have been removed.
- CPU emulation includes now parts of the unstable opcode family xB (opcodes whose lower nibble is B).
- The CPU emulation includes now the emulation of most (if not all) 6502 bugs: Forgetting conflicting NMIs, IRQs and BRKs (!).
- Wait-cycle allocation was partially wrong and created conflicts between memory-refresh cycle allocation and WSYNC requests. This was fixed.
- As a side effect, the special "double WSYNC" check was no longer necessary and was removed. The emulation is correct anyhow.
- Some CPU preferences were removed because the emulation is considered to be precise anyhow.
- PIA DDR register reads were not emulated correctly.
- PIA emulation includes now flank-detection on CA2 and CB2 plus interrupt generation, and thus should be complete.
- POKEY 9 and 17 bit random generators are now emulated precisely, and the generated "random" numbers should be now identical to those on the real hardware.
- POKEY two-tone mode should now be emulated correctly, including the cycle timing for the linked channels.
- Some race conditions for the serial control mode should now be emulated correctly.
- POKEY direct serial input should now work fine with the SIO emulation, though direct serial output does not yet work.
- Handling of the POKEY keyboard generation was wrong and should now work correctly.
- The SIO patch resets now also the audio registers and the IRQ control of POKEY to work around some software bugs.
- OS++ did not check properly for the RESET bit in the Antic NMI register and could have triggered false resets under some race conditions.
- The legacy return value for the write-byte bus access was removed as it was no longer required since a long time.
Greetings and a Happy New Year,