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 8 [October 28, 2016]:
- Disk: Added support for full disk drive emulation of 810 and Happy 810 drives.
- UI: Copy/Save Frame now works for XEP-80 display.
- UI: Added variant of Copy/Save Frame which uses the true pixel aspect ratio with filtering.
- Additions: Colormap now restores palette properly on exit.
- AltirraOS: Fix short block flag not being handled by direct SIO calls for the cassette device.
- Debugger: Static trace (st) and dump disassembly (.dumpdsm) commands now work with coprocessor targets.
- Fixed a bug that caused the standard and full disk emulations to both go online when loading mounted images. Should fix some of the broken drives on startup issues you've been seeing.
- Removed the broken toggle all drives command.
- Several full drive emulation fixes, enough to get the Happy Diagnostic to pass. RIOT IRQs had to be fully implemented (including PA7 edge detection!), the RIOT timer now controls the fake index pulse seen by the FDC, and Write Track is now implemented. I still don't recommend formatting disks in full drive mode since weird things can happen if you format over a disk of a different size. You will have to toggle the write mode between VRW and R/O a couple of times for the disk change test to pass, since I don't have simulation in yet for the write protect sensor getting temporary obscured and unobscured when switching disks.
- Write Track requires formatting to be enabled (VRW or R/W mode, not VRWSafe). I had to add this after I tried booting Dimension X and suddenly started hearing the drive start stepping tack, tack, tack, tack... "that sounds suspiciously like the disk being formatted"....
- Some coprocessor debugger fixes -- breakpoints on the drive are now more precise. Note that stepping in the debugger during an SIO transfer still has a pretty high probability of screwing up the transfer, unfortunately.
Regarding the screwy sector number in Happy mode, that's because with full drive emulation the sector number display is determined by commands sent to the floppy drive controller (FDC) chip instead of the commands sent by the computer. The sequence and timing is strange because the Happy firmware is buffering tracks -- it reads the entire track in one revolution, then sends sectors to the computer from the buffer. That's why the sector readout shows a bunch of sectors being read out of order, then the indicator going idle while you hear the transfers to the computer. WIth a plain 810 being emulated, it's less strange because the sectors are read and transferred in order.
→ [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.