Była pełna wersja?... Była, więc czas na nowe wersje testowe Altirry, emulatora ATARI XE/XL/5200.
Ostatnia pełna wersja tego emulatora, jaka publicznie została udostępniona to Alirra 3.20 z 23 czerwca 2019 r.
Syn Boga Wiatru (1993, L.K. Avalon)
Altirra 3.90 Beta II 24/06/2019
- Display: Fixed an issue with color profiles having the wrong color matching setting when initially established.
- Fixes non-command SIO writes. This was a regression from some surgery I did for save states.
- Fix for the color matching setting not being set properly on initial start. (Candidate fix for a 3.21 release, if I do one.)
Altirra 3.90 Beta I 23/06/2019
- AltirraOS: The boot screen in the XL/XE version now continues boot on disk insertion rather than forcing a reboot.
- 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.
- Firmware: Add Firmware now detects OS ROM images even if the specific image is not recognized.
- 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.
- 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.
- ANTIC: RNMI (400/800 System Reset) is now always synchronized to VBI.
- Debugger: .dumpdsm -s option now interprets 6809 instructions.
- SaveStates: POKEY serial input state is now saved.
- Simulator: Improved accuracy of power-up values for POKEY and GTIA registers.
- Experimental support for dark theme. This is hidden behind a /dark command line switch because it is incomplete due to a ton of really annoying restrictions in the OS (basically a total lack of actual dark support in the Win32 API), so I'm not sure if it's feasible to get it to a polished state, but it works well enough that I've left it on for my own development. Some UI elements like buttons and menus are not reskinned due to insufficient OS support (short of going ham on owner draw).
- Improvements to the debugger's Disassembly window. As seen above, it now has an option to infer and visually separate procedures, as well as hyperlinking and previewing JSR/JMP targets. This makes it possible to peek at the called procedure without losing your place. There are also go back/forward buttons.
- The history loop detector has been updated to more tightly identify loops, reducing the number of loose instructions in the trace.
- Disassembly options in the disassembly and history windows are now saved.
- Several debugger commands that take paths now accept "?" as the path, which causes the debugger to open a file dialog to browse to the desired file: .loadsym ?
- Accuracy improvements based on research into power-up state on actual hardware. Several registers have been tweaked to have more representative values, and the reset NMI on 400/800 models is now properly synchronized to vertical blank.
- WIP on new save state system. The format has been changed to a zip file with mixed JSON and named memory block files, which makes it much easier to pull out data with tools. The internals have been rewritten as well to better support in-memory saves and extensibility, the CPU save code can now save in the middle of an instruction, and standard disk drives can now save and restore a pending disk read operation. The plan is to gradually increase the amount of state saved, including device state that previously hasn't been saved. Note that saving to the v1 *.altstate format is no longer supported, although loading it still is, and this is still very new so I really don't recommend keeping your valuables in save states.
- Tape decoding and emulation code has been partially rewritten. The emulation-side of the tape decoder has been rewritten to be edge-based with much less host CPU load during tape operations, especially with acceleration on. There is also a prefilter option now to reduce phase shifts from high-frequency attenuation, which improves the reliability of turbo decoding of tapes archived using non-Atari tape recorders.
- The Add Firmware UI now has heuristics to detect 10K and 16K OS ROMs other than the specific Atari ROMs in the signature list, including custom OS ROMs. This helps detect when a ROM image appears to be another 16K ROM type is actually an OS ROM.
- AltirraOS updated to 3.20: XL/XE mode boot screen now continues boot instead of restarting when a disk is inserted for faster boot and preserving Option suppress-BASIC state, POKEY configuration changed to give more familiar sound during tape loads, QUICKED.SYS and SIDE Loader compatibility fixes, fixed background color in GR.11, fixed combined disk+rightcart and disk+tape boots. This ROM export package is attached for people testing this outside of the emulator.
Also, deprecation notice: 3.20 will be the last major version of the emulator to support Windows XP/Vista. The plan is to release the next version as 4.00 with Windows 7 as the minimum OS. 3.90-test1 still currently builds with XP targeting but I will be changing over to the newer non-XP toolchain in the future.
→ 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.
→ NOWSZY [ATARI] Altirra x86 i x64 3.90 test XXI 15/12/19
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 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.