Nowe wersja testowa Altirry, emulatora ATARI XE/XL/5200. Rozwiązano problem sporadycznego złego zapisu snapshotów
Ostatnia pełna wersja tego emulatora, jaka publicznie została udostępniona to Alirra 3.20 z 23 czerwca 2019 r.
Satan's Hollow (Bally Midway Mfg Co., 1984)
Altirra 3.90 Beta XXI 15/12/2019
- Devices: XEP80 can now be switched to different controller ports.
- XEP80 can now be configured for any joystick port.
- Fixed save state issue with certain memory patterns (not Windows 10 related).
- Regarding the Swedish keyboard issue, it looks like there are a couple of bugs: cooked (character) mappings aren't working for extended characters, and changes to the custom keymap don't take effect immediately. Until those are fixed, bind Shift+4 as a virtual key and then toggle the current keymap to natural/direct and then back to custom to make it work.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXXI 14/04/2020
The Pharaoh's Curse (a.k.a. Pharaohs Curse) (Synapse Software Corporation, 1983)
Altirra 3.90 Beta XXXI 14/04/2020
- Disk: Indus GT ignores ready status to match hardware.
- Percom AT-88 V1.2 ROM added to firmware autodetect list.
- Fixed a bug with script threads in custom devices where the scheduler would screw up with multiple ready threads.
- 6809 disassembler no longer prints branch targets >$10000.
- rawdiskhs.atdevice is now one of the samples.
- Fixed a bug in the FDC where the force immediate interrupt ($D8) command was not triggering an interrupt when interrupting another command, which was causing the Indus GT firmware to hang on a Read Address command with no disk in the drive.
Indus GT should have still worked if a disk was in the drive on cold reset; LMK if you're still seeing the hang. The drive should also still do the power-up seek regardless. I have seen cases where the Indus GT might not init quickly enough if you have an OS that boots too fast, so if it's just missing the boot then increase the power-up delay.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXX 20/03/2020
Pitstop II (Epyx, Inc., Mar, 1985), emulowany zielony monitor i... tak to pamiętam na NEPTUNIE 156;)
Altirra 3.90 Beta XXX 20/03/2020
- Debugger: .caslogdata command superceded by updated CASDATA/CASDATA2 logging channels
- Firmware: Fall back to next available firmware if default firmware for a type is removed.
- Firmware loader now falls back to next available firmware if the default firmware for a type has been removed.
- Removed .caslogdata debugger command and improved the CASDATA and CASDATA2 logging channels to compensate.
Altirra 3.90 Beta XXIX 19/03/2020
- AltirraOS updated to 3.26 with a fix for end character corruption when drawing lines in GR.0 (which was fallout from another fix for drawing lines in GR.0)
Altirra 3.90 Beta XXVIII 11/03/2020
- Disk: Fixed bogus FDC interrupts from Force Interrupt commands.
- AltirraOS updated to 3.25 with a fix for screen memory corruption above RAMTOP.
- Percom AT-88 emulation support. (This will not work for AT88-S1PD or AT88-SPD firmware... but if you have one of those I am keenly interested.)
- 6809 emulation fixes for TST direct and CWAI instructions and with interrupt nesting in history traces.
- Fixed a bug with bogus FDC interrupts from Force Interrupt commands that was breaking the AT-88.
- Custom device updates:
- .atdevice format rewritten because I couldn't stand JSON anymore. It is now completely script format based, which means no more goofy workarounds for quoting and hex constants and being able to write inline scripts naturally. Any existing .atdevice scripts will have to be rewritten. Spec and samples have been updated.
- Added support for conditional script compilation, which allows debug read and non debug read handlers to use the same script with annotations.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXVII 22/02/2020
Chuckie Egg (A&F Software Ltd., 1985)
Altirra 3.90 Beta XXVII 22/02/2020
- AltirraOS: Improved native mode compatibility of 816 version.
- 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.
- Devices: 65C816 emulation fixes for Veronica.
- VFS: Fixed zip/gz paths with non-ASCII characters not being encoded properly and getting dropped on restart.
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.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXVI 13/02/2020
Altirra 3.90 Beta XXVI 13/02/2020
- Audio: Individual channels on the secondary POKEY can now be muted.
- Disk: FD1771 FDC now properly times out in two revolutions instead of five in 810 full drive mode.
- Secondary POKEY channels can now be muted.
- Fixed a bug in the co6502 trace cache that caused some bogus execution histories for 810 full drive emulators.
- Fixed 810 full drives improperly taking too long when attempting to boot with no disk in the drive, causing boot commands to time out. This started happening due to the fixes to RIOT emulation; the additional bug here was not emulating the FD1771's behavior of failing after only two revolutions instead of five like newer FDCs.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXV 9/02/2020
Beach Head (Access Software, Inc., 1983)
Altirra 3.90 Beta XXV 9/02/2020
- Fixed a couple of crashes in the video recording path in the 32-bit build and for CPUs without SSE4.1 support.
- Launch help file in dark theme if the emulator is configured for it.
- Screenshots now have software effects applied when hardware effects are enabled.
- Fixed SAP type R recorder checking the wrong registers for initial silence detection: it was using AUDFx bits 0-3 instead of AUDCx.
- Fixed a rare crash when ejecting a disk at a specific time during an unaccelerated disk read.
- Custom device support updates:
- Local variables are now supported in script.
- Fixed broken ! operator in script.
- Added loop statement.
- Added support for script cooperative threading.
- Added support for custom PBI devices.
- Added support for raw (byte-level) SIO.
- Added support for asynchronous events between the emulator and network server.
- Device cold reset is now forced after hot-reload.
- Added new sample custom devices: R-Verter and raw SIO based disk drive.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXIV 21/01/2020
Altirra 3.90 Beta XXIII 21/01/2020
- Rewrote JSON parsing code for tighter validation -- unexpected object members are now an error to catch typos.
- Cart_mode for memory layers can now be "auto" based on address range.
- Offset is now optional for SIO auto_transfers.
- Added "vblank" script event.
- Added controller port support.
Check circlepaddles.atdevice for a controller port example -- you can now drive the controller inputs rather than trying to fudge the memory accesses. Again, not really an intended use, but if you were crazy enough you could try to write a TASBot with this.
It's correct that you can't overlay hardware registers -- the memory layer priority is hardcoded at cartridge right now. I'll probably add support for relative priority between layers, but I haven't decided whether to allow the full freedom for changing layer priorities yet. Some of the priority stacks in the emulator can get pretty complex when you have a bunch of devices installed (130XE + Rapidus + U1MB + BlackBox + SDX + R-Time 8).
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXIII 18/01/2020
Altirra 3.90 Beta XXIII 18/01/2020
- Debugger: Input byte (ib) now correctly issues read cycles with side effects in the main CPU address space.
- Fixes regression where images mounted from within a zip file weren't being remounted after an emulator restart.
- Debugger 'ib' command wasn't actually issuing intended reads with side effects in non-coprocessor targets.
- Debugger now recognizes the 6809 RTI instruction as a subroutine ender in the .dumpdsm command.
- Percom RFD ROM revisions are now recognized by the firmware scan (with thanks to Nezgar for the endless disk drive research).
- Support for switching to dark theme in the help file.
- Now for what I've actually been working on for a while: initial support for custom devices. It is now possible to implement some types of devices, including cartridges and SIO devices, with just a text editor without having to modify the emulator. There's a built-in small scripting language for behavior like bank-switching, and the ability to connect to an external server to do more complex logic or external interactions.
The full specification is in the help file. There are also samples included for an R-Time 8, a RespeQt-compatible SIO clock, a 64K SpartaDOS X cartridge, a SuperCharger 3D cartridge, and an 820 printer which prints the output to a Python-based server. Fair warning, my Python is pretty bad, and the deviceserver could use some more refactoring (its API predates the scripting engine).
This is intended to help with prototyping or one-off devices where it doesn't make sense to integrate into the emulator yet. For instance, a while ago someone wanted help with implementing an SIO protocol for a device being made so that a flasher could be tested. I couldn't help out with this because it would have had to be written in C++ and it wasn't something I could ship. With this, the protocol could be implemented in a quick .atdevice file for a one-off. Similarly, if we end up with a mystery cartridge, this'll make it possible to quickly try a bunch of banking methods that may not be implemented yet.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXII 30/12/20
Altirra 3.90 Beta XXII 30/12/2019
- Debugger: Verifier supports detecting access to non-canonical hardware addresses.
- Input: The keyboard layout editor now warns if the key mapping being added conflicts with a keyboard shortcut.
- 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.
- Major work on compatibility database support. Custom checksums replaced with SHA256, added 50Hz/60Hz tags, tapes can now be matched, fixed a bug where some tags didn't apply properly if a profile switch was involved, fixed broken delete title and quick search in the compat editor, warn on invalid aliases, UI auto-loads the external database on open if source is present, and editor window is resizable.
- Keyboard fixes: binding to non-ASCII cooked keys, such as those in Latin-1, now works; fixed an issue where changes to a custom keyboard layout didn't necessarily take effect immediately. The keyboard customization UI also warns you if you are assigning a key that conflicts with a keyboard shortcut.
- Verifier can now flag code accessing non-canonical hardware addresses.
- Fixed some bugs in the Amdek AMDC configuration UI.
→ [ATARI] Altirra x86 i x64 3.90 test XX 08/12/19
Far Away Demo (2019, Agenda)
Altirra 3.90 Beta XX 08/12/2019
- UI: Added audio scope for viewing raw POKEY output.
- UI: Audio monitor positioning can now be customized.
- CPU: Fixed extra instruction being run occasionally for a DLI delayed by WSYNC.
- Fixed a bug with high-pass optimization at volume level 0 that was causing some PDM glitches.
- Fixed an issue with denormals since the split filter changes that was using a bit of CPU time when everything went quiet. This was previously handled, but the mitigation code was bypassed in the new code.
- Fixed an issue where sometimes UI wouldn't display in full-screen mode in DirectX 11 mode while the emulator was paused. (This doesn't apply to modal UI that forced an exit from full-screen mode.)
- Fixed enhanced text mode sometimes not drawing its first frame properly.
- Started on HUD customization, available from View menu -- you can now move and resize HUD elements. Currently this is only supported for a few of the audio graphs. Note that there was some major UI system rework under the hood, so there may be some bugs with indicators.
- Added audio scope that shows the waveform coming out of POKEY, with all four channels. This is tapped between the two amplifier stages, so it uses a 64KHz source and shows the short time constant high-pass effect.
- Fixed a bug in the CPU emulation where an NMI was being improperly held off for one instruction if it had been delayed due to RDY cycles from WSYNC. Those RDY cycles now count against the timing check.