Nowe wersja testowa Altirry, emulatora ATARI XE/XL/5200. Phaeron pochylił się tym razem nad predefiniowalnymi ustawieniami dla osób, które zostały pozbawione radości gry w kolorach - posiadaczy czarnobiałych, bursztynowych lub zielonych monitorów (Neptun 156b roolez:P). Niektóre gry zyskują i to sporo;)
Ostatnia pełna wersja tego emulatora, jaka publicznie została udostępniona to Alirra 3.20 z 23 czerwca 2019 r.
[Broken] Altirra 3.90 Beta XVIII 07/11/2019
features added
bugs fixed
Author's Comment:
- Fixes the stereo right channel visualizer, and also fixes an issue I found where some periodic cleanup wasn't occurring on the secondary POKEY which might cause issues after a long period of time.
[Broken] Altirra 3.90 Beta XV 03/11/2019
BUG: Synopsis: Altirra-3.90-test15 crashes just after loading. No response. No error message. Once loaded it stays on screen for few seconds. The mouse pointer changes to blue circle. Then it vanishes. Edit: Both of Altirra.exe and the 64 version act the same."
features added
bugs fixed
Author's Comment:
- POKEY accuracy fix for two-tone mode -- 1.79MHz timers now properly reflect the additional two cycle delay in their period.
- Some internal rework of the POKEY rendering path to support more efficient sound processing, and possibly better filtering in the future to improve suppression of ultrasonics.
- PIA motor control audio noise volume reduced to not be quite as loud.
- Audio monitor improved. The audio monitor now reflects the slightly different frequency for two-tone mode and displays indicators for two-tone mode and asynchronous receive mode (2 and A). The way that the audio monitor samples the audio output has also been rewritten so that it can do better filtering on the output to produce the waveform. This means that it can now show some high-frequency effects that were previously either invisible or looked like noise (sawtooth, scanline-aligned PWM). This also fixes the bug that caused the audio monitor to blank out on redraws. The time base for the audio monitor is slightly different now, with vertical blank now at the front of the graph.
- R/W disk flush errors now print an error message to the screen indicating the OS level error (typically Access Denied). Not very happy about all the various sync programs causing file locking conflicts in this regard (that's what oplocks are for), but I'll have to figure out a workaround at some point.
This fixes a couple of the reported two-tone bugs, though there is still a third one I'm pursuing:
POKEY Bug Report 2 with clock
Thanks to the new toy, I know what's going on and just need to figure out the exact rules for it (the 5-bit noise generator is being sampled with an irregular period, which now that I know the period cycle counts does match the known LFSR).
→ 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
features added
bugs fixed
- Disk: Indus GT ignores ready status to match hardware.
Author's Comment:
- 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
features added
- Debugger: .caslogdata command superceded by updated CASDATA/CASDATA2 logging channels
bugs fixed
- Firmware: Fall back to next available firmware if default firmware for a type is removed.
Author's Comment:
- 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
features added
bugs fixed
Author's Comment:
- 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
features added
bugs fixed
- Disk: Fixed bogus FDC interrupts from Force Interrupt commands.
Author's Comment:
- 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
features added
bugs fixed
- 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.
Author's Comment:
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
features added
- Audio: Individual channels on the secondary POKEY can now be muted.
bugs fixed
- Disk: FD1771 FDC now properly times out in two revolutions instead of five in 810 full drive mode.
Author's Comment:
- 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
features added
bugs fixed
Author's Comment:
- 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
features added
bugs fixed
Author's Comment:
- 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
features added
bugs fixed
- Debugger: Input byte (ib) now correctly issues read cycles with side effects in the main CPU address space.
Author's Comment:
- 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
features added
- 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.
bugs fixed
- 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.
Author's Comment:
- 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
features added
- Devices: XEP80 can now be switched to different controller ports.
bugs fixed
Author's Comment:
- 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
features added
- UI: Added audio scope for viewing raw POKEY output.
- UI: Audio monitor positioning can now be customized.
bugs fixed
- CPU: Fixed extra instruction being run occasionally for a DLI delayed by WSYNC.
Author's Comment:
- 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.