Nowa testowa wersja emulatora Altirra autorstwa Avery (Phaeron) Lee - udającego mikrokomputery serii ATARI XE/XL. Ostatnia pełna wersja tego emulatora, jaka publicznie została udostępniona to Alirra 2.81 z 16 października 2016 r.
Altirra Version 2.90 test 5 [October 17, 2016]:
- Cartridge: Added /nocartchecksum command line switch for loading .CAR files without an initialized checksum field for development.
- Cassette: Motor restarts and individual sample timings are now randomized when the randomize option is enabled.
- Debugger: Added .tracesio command.
- Disk: Initial Happy 810 support (memory read/write commands only).
- Firmware: Added option to export the internal ROM set.
- AltirraOS: Modified values of PALNTS for better compatibility with XL/XE OS.
- Cassette: Improved stability of modified bit decoding algorithm.
- Cassette: Fixed sporadic crash when re-recording in the middle of an existing tape.
- Cassette: Fixed "randomize" setting not saving properly.
- Debugger: Disk write from .diskwritesec was not always auto-flushed to disk.
- Disk: Added workaround to SDFS formatter and virtual disk handler for unusual disk format check in IDE+2 executable loader.
- Disk Explorer: Fixed failures when trying to drag a zero byte file from Explorer into a disk image.
- Display: Added workaround for display issues on Intel graphics in Direct3D 11 mode.
- Workaround for Intel graphics driver bug causing XEP-80 rendering issues in D3D 11 mode. Direct3D 11 constant buffer updating is such a mess....
- Added /nocartchecksum flag to allow .CAR files to be loaded from the command line while ignoring the checksum in the header. This allows the .CAR format to be used during development without having to run a separate program during the build to set the checksum.
- Experimental rework of cassette tape handling. The bit decoding algorithm now uses a sliding DFT, the byte decoding PLL has been rewritten to be more standard (reset on start bit transition instead of every bit transition), the data sampling rate has been increased from 4KHz to 16KHz, and the bit timing has sub-sample jitter added to it. This should help break up patterns that were causing deterministic failures due to the cassette baud rate bug in the OS.
- Fixed the cassette tape randomize start position setting not saving and not actually being random....
- Fixed a crash in the cassette tape code that sometimes occurred when re-recording over a part of an existing tape.
- The tape loader no longer enforces a 20 second leader in front of FSK data, only in front of decoded data. This avoids issues with decoded noise in the leader.
- Added .tracesio command to the debugger. This is like .tracecio, except it logs SIOV calls instead of CIOV calls.
- Modified the boot block for SDFS formatted and virtual disks to be recognized by the IDE+2 loader.
- Fixed PALNTS in AltirraOS.
- Fixed Disk Explorer sometimes not allowing zero-byte files to be dragged into a disk image.
- Fixed writes from the .diskwritesec debugger command sometimes not being flushed to the disk image.
- Added command in the Tools menu to export the internal ROM set for use with other emulators or actual hardware.
- Added very basic support for Happy 810 emulation. Currently this is just memory read/write commands until we can get more info on it.
→ [ATARI] Altirra x86 i x64 2.80 test 51
Altirra v2.80 test 51 [18.08.2016]
Solved Problem (Eq): With enabled SIO patch, Altirra 2.8 can't read sectors with $303 = 0 (error 143). With an original ATARI and Altirra 2.6 this works: The received data frame and $304/5 and $308/9 are ignored, if bit 6 of $303 is not set.
Examples: Boot a 180 KB DD image with QMEG+OS 4.04. Or boot XDOS 2.4 and enter the command "TES" (in both cases a sector is read with $303 = 0 to check the density - some older drives and the XF551 needs this)..
→ [ATARI] Altirra x86 i x64 2.80 test 50
Altirra v2.80 test 50 [29.07.2016]
- Covox: Variable base address and mono/4ch. settings added.
- Covox: Volume is now adjustable (Audio Options).
- Debugger: Added .kmkjzide command.
- Disk: Added command to expand all .ARC files on a SpartaDOS disk.
- Disk Explorer: SDFS filesystem handler now validates the full directory tree and allocation bitmap.
- IDE: MyIDE, KMK/JZ IDE, and IDE Plus 2.0 now support slave devices.
- IDE: IDE Plus 2.0 SDX, write protect, and partition switch buttons are now supported.
- IDE: IDE Plus 2.0 revision and ID switch are now controllable.
- Cartridge: Fixed flash indicator not always appearing while programming The!Cart cartridges.
- Display: Fixed excessive CPU usage with enhanced text mode with debugger open.
- IDE: IDEPlus 2.0 now supports external cartridge control.
The fix kinda started snowballing:
- IDEPlus 2.0 revision is now selectable. Current versions supported are rev. C, rev. D, and rev. E. Rev. D adds write protect and IRQ switches; rev. DS/S is rev. D with Covox at $D1FB. Rev. E has slightly different registers and isn't really complete yet.
- IDEPlus 2.0 PBI ID is now selectable.
- IDEPlus 2.0 rev D/E write protect switch and IRQ button (swap partitions) are implemented under System > Console.
- While implementing the above... I discovered that Covox volume was fubared. It's now renormalized and the Covox emulator has been overhauled. Addressing is now selectable between $D1xx, $D280-D2FF, $D5xx, $D6xx, and $D7xx, and it can now also be switched between mono and 4-channel (Amiga style). The volume is also adjustable in Audio Options.
- Fixed a bug with the flashing indicator (F) not appearing consistently when writing to The!Cart cartridges, and a potential issue in memory mapping that may have caused native mapping mode to sometimes malfunction.
→ [ATARI] Altirra x86 i x64 2.80 test 47
→ [ATARI] Altirra x86 i x64 2.80 test 45
Altirra v2.80 test 45 [02.07.2016]
- Debugger: Fixed disassembly of 65C02 RMBn/SMBn/BBRn/BBSn instructions.
- Debugger: Fixed disassembly of 65C02 RMBn, SMBn, BBRn, and BBSn instructions.
- Network: Fix inability to write some CS8900A control registers through PacketPage ports.
- Fixes an emulation issue in DragonCart and bad disassembly of 65C02 bit manipulation opcodes.
→ [ATARI] Altirra x86 i x64 2.80 test 44
Altirra v2.80 test 44 [18.06.2016]
- Audio: Added emulation of serial I/O noise with audio channels silent.
- Fix for FDC status bits with returning deleted sector status in 810 emulation mode.
- Adds emulation of serial bus noise effects (toggle in System > Audio > Serial Noise).
→ [ATARI] Altirra x86 i x64 2.80 test 43
Altirra v2.80 test 43 [13.06.2016]
- Disk: Partial emulation of built-in Happy drive commands.
- Disk Explorer: File viewer mode and window position is now persisted.
- Disk: Fixed handling of sectors with bad address field CRCs.
Turns out the IDE removed flag wasn't ever forced on a cold reset, so I added that. Not 100% sure about powerup state on actual hardware since it's tough for me to test, but you can probably verify that quickly. Interestingly, I do see the LED on the SIDE 2 cartridge blinking on and off for about a split second, so it's possible this is ensured by the hardware. Also, I threw in the saving of the file viewer state.
→ [ATARI] Altirra x86 i x64 2.80 test 41
Altirra v2.80 test 41 [1.06.2016]
PROBLEM: I can run it fine in a window, but it stop updating the screen if I go full screen. So, I can hear the music of the game or sound effects and I can actually still play it, but I can't see anything because the screen stops updating when it comes to full screen. Obviously full screen is what you would want.
Altirra v2.80 test 40 [31.05.2016]
Question: According to the Mapping the Atari, I can determine a PAL vs. NTSC computer by reading the value at address 53268 (below). However, in Altirra, I'm not seeing these values. Am I missing something or is there a better way to tell between a PAL vs. NTSC computer
Answer: This is correct, and is supported by Altirra. The catch is in the "bits 1-3" part. It's often ignored that Atari only documented bits 1-3 of the byte read from the PAL register as being significant, with bits 0 and 4-7 supposed to be ignored. This documentation is misleading in that it gives the value 14, but that's only for bits 1-3. In practice, bit 0 is always set and bits 4-7 are clear, giving 1 for PAL/SECAM and 15 for NTSC. I haven't heard of any computer giving different values. There was a rumor that SECAM systems would give 0 instead of 1, but I believe this has been discredited.
There is an additional caveat, which is that this register reports whether GTIA is NTSC or PAL. It doesn't tell you whether ANTIC is NTSC or PAL. On the vast majority of computers these will be matched, but people have created mixed-mode computers that have a PAL ANTIC with an NTSC GTIA. This means that the PAL register only actually indicates the color encoding and not the frame rate (50/60Hz). If you really want to handle all computers correctly including mixed-mode computers, you need to poll VCOUNT in order to determine the ANTIC type. You can emulate this configuration in recent versions of Altirra by choosing the PAL-60 or NTSC-50 video modes.
→ [ATARI] Altirra x86 i x64 2.80 test 39
Altirra v2.80 test 39 [29.05.2016]
- Debugger: PC breakpoints and step execution are now supported for Veronica.
- Debugger: Added eb (enter byte) and ew (enter word) commands.
- AltirraOS: Fixed race condition in SETVBV.
- Adds execution stepping and PC breakpoint support for coprocessors (Veronica). Source-level and memory breakpoints are still not supported. Due to limitations in the way that coprocessors are run, breakpoints are currently imprecise, which can result in some execution skid after a breakpoint is hit. However, it's still better than having no execution control at all.
- Fixed TRIG3 regression with Veronica that caused some of the original demos to hang.
- Added enter word (ew) command to debugger.
- Removed PBI disk patch from regular devices list and added a specific option for it. The patch mode can now be set to SIOV-only, PBI-only, or both. Previously it was not possible to enable the PBI disk patch without also having the SIOV patch also enabled, which was an issue in some scenarios where the PBI patch works better. "Both" seems to be pretty safe, but I'm still going to leave the default as SIOV-only for now.
- Some updates to help file for profiles and options.
→ [ATARI] Altirra x86 i x64 2.80 test 38
Altirra v2.80 test 38 [21.05.2016]
- UI: Error message help has been moved from Shift+hover to Alt+click.
- Display: Added DXGI-based windowed vsync support to D3D9 display driver for reduced CPU usage with DWM composition.
- Fixes the (many) bugs in custom keyboard layout import/export. Try it again.
- .bas files are now recognized when booting a .zip file.
- Added DXGI-based vsync support for the D3D9 display path. This should reduce CPU usage when running vsync on systems with the DWM enabled.
→ [ATARI] Altirra x86 i x64 2.80 test 37
Altirra v2.80 test 37 [14.05.2016]
- HLE: Added PBIDisk device for PBI-based acceleration of disk and serial bus requests.
Fixes some odd behavior with overlapping SIO commands and has a bunch of fixes and improvements to the custom shader support:
- Fixed some parsing bugs.
- Precompiled shaders are now used by default if present.
- Shaders can be precompiled with option shader_precompile=true.
- Shader profile can be forced above 2.0 with shader_profile_d3d9=2_0, 2_a, 2_b, or 3_0.
- Profiling is now supported (shader_profiling=true)
- Includes are now supported when compiling.
- FP16/FP32 framebuffers are now supported.
- Border texture addressing is now used when available.
- Added shader validation.
Attached is a port of a TV shader that you can try. I didn't write it; a link to the original source is in the archive. I removed a couple of components that didn't work well, especially the flicker. Just a warning, it's not that well optimized -- it requires shader model 3.0 and runs at about 7ms/frame on my Quadro K2100. This means that even if you do get it to run you may run into frame rate or vsync problems depending on how fast your graphics card is. However, it looks pretty neat. Unfortunately, running .cg shaders verbatim is not going to be possible since there is simply too great of a difference between Cg and HLSL and the shaders often have a lot of constructs that are not valid in the ps_3_0 profile, even if not actually used.
Adds support for a Parallel Bus Interface (PBI) based acceleration hook. Add it from Devices, and it'll add a PBI device on ID 7 that will try to accelerate anything that the regular SIO patch is enabled for. Seems to work for both disks and PCLink on SDX 4.47 without needing to MAP to OS mode.