Altirra v2.80 test 3 [21.12.2015]
- UI: Added option to control whether simulation is paused while menus are open.
Test 2: First, it has a fix for the CLI+SEI interrupt timing issue in high-speed '816 mode. Special thanks to drac030 for running tests on his accelerator hardware. tl;dr, the 65C816 acts the same as the 6502 with regard to when IRQs can actually fire around instructions that enable or disable the I flag.
Second, fast pot scan emulation is now improved. It is no longer possible to read paddles normally in fast pot scan mode, since the faster scan means that only 1/114th of the normal range is read. Also, the POTn values read back during the scan are now adjusted to reflect carry timing issues seen on the actual hardware. This means that fast pot scan mode unfortunately cannot be used for cycle-level timing. If you are writing code to read paddles directly, always use slow pot scan mode and always make sure that the previous pot scan has completed fully before starting the next one (>228 scanlines, regardless of ALLPOT).
Test 3: Fixed... had a bug where the settings loader wasn't clearing old devices before loading new ones. Since clearing an exponential growth of devices one at a time isn't fun, I also added a Remove All button to the Devices dialog
→ NOWSZY [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)..
→ NOWSZY [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.
→ NOWSZY [ATARI] Altirra x86 i x64 2.80 test 47
→ NOWSZY [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.
→ NOWSZY [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).
→ NOWSZY [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.
→ NOWSZY [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.
→ NOWSZY [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.
→ NOWSZY [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.
→ NOWSZY [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.