Altirra 2.50 test 16 [30.12.2013]
- Debugger: .printf now supports string output and variable width/precision.
- CPU: Reverted unintentional change to IRQ timing (affected PM 2.0).
- HLE: Program loader now detects and rejects SpartaDOS X executables.
- LLE: CIO now checks permissions on get/put operations.
- the P-M 2.0 issue was due to an unintentional change in IRQ timing incurred when I added accelerated '816 support. It didn't get caught in autotests because the timing was still within realistic bounds (matches my 130XE at cold temp). Fixed version.
→ [ATARI] Altirra 2.50 Test XL
Altirra 2.50 test 40 [21.07.2014]
- Alright, I have everything about set to release 2.50, except for a small problem... namely that the compiler I've been using to build it is running very flakily on this new system. I've been able to generate a build by forcing off precompiled headers, which is a bit wonky. Please give this test build a check and see if you spot anything awry. It's basically the same as 2.50-test39 except for a small fix for slow startup. If all's good after a short check then I can release 2.50 final. To fix this problem, the next version (2.60) will be built with Visual Studio 2010, so I'll be dropping support for Windows 2000 and XP pre-SP2. I doubt anyone actually runs it on these, but if you do, fair warning....
→ [ATARI] Altirra 2.50 Test XXXVIII
Altirra 2.50 test 38 [30.04.2014]
- The Atarimax flasher does a read from $D530 to disable the 1MB+myIDE cart before it does the 1MB detection. Cart.txt's a little incomplete here -- should say access, not write.Also, I got the MaxFlash emulation moved over to the common flash module and switched the 1MB+Flash cart over to the M29F010B. The Am29F010 device ID was also wrong, was $21, now $20, and it was allowing too long for multiple sector erase commands (was 80us, now 50us). Still need to switch over the 8MB cart... have one on order, so we'll see if I get a different one. Seems like flash chips commonly get changed on different runs of devices... fine for whole reprogram, bad if you're trying to do sector erase.
→ [ATARI] Altirra 2.50 Test XXXVII
Altirra 2.50 test 37 [27.04.2014]
- Cartridge: Fixed incorrect flash device ID for MaxFlash 1MB+MyIDE cartridge..
- Was reporting the wrong flash device ID for the MaxFlash 1MB+MyIDE cart (Am29F040B instead of Am29F010B) - fixed. And yes, the cartridge banking registers start at $D520 for that cartridge type. The cart emulation is split in Altirra - the flash cart portion is set up from the cartridge side, and the IDE emulation from the hard disk side. It's set up this way because I don't have an internal infrastructure that can support combined devices cleanly. Therefore, to get proper emulation, you need to set up both the MF1MB+MyIDE cartridge and the IDE emulation in MyIDE External ($D500) mode. However, the flasher doesn't care about the MyIDE portio
→ [ATARI] Altirra 2.50 Test XXXVI
Altirra 2.50 test 36 [20.04.2014]
- UI: Added direct keyboard layout mode.
- Ultimate1MB: Added SST39SF040, Am29F040B, and BM29F040 as alternate flash chip options.
- Cartridge: Fixed some cases where flash writes would stop working with emulated MaxFlash cartridge.
- Found an issue with the MaxFlash code that cause the flash write layer to sometimes drop out when U1MB was enabled... this should be a bit more reliable. Also adds more flash chip options for U1MB (U1MB must be disabled and re-enabled to take effect).
→ [ATARI] Altirra 2.50 Test XXXV
Altirra 2.50 test 35 [15.04.2014]
- UI: Shift modifier is allowed again for Start/Select/Option.
→ [ATARI] Altirra 2.50 Test XXXIV
Altirra 2.50 test 34 [14.04.2014]
- CIO and math pack fixes to LLE OS so that DOS 3 and BASIC XE work. (The latter is a bit naughty and relies on some math pack routines not modifying $DE-DF).
- ATBasic's line number search routine now optimizes forward searches to start from the current line.
→ [ATARI] Altirra 2.50 Test XXXIII
Altirra 2.50 test 33 [1.04.2014]
- Messed up the audio integral tables for the linear case. (I moved the high-pass filter farther up, so it needs identity tables for when this filter is supposed to be disabled.)
→ [ATARI] Altirra 2.50 Test XXXII
Altirra 2.50 test 32 [30.03.2014]
- Accidentally disconnected the speaker... fixed:
→ [ATARI] Altirra 2.50 Test XXXI
Altirra 2.50 test 31 [29.03.2014]
- Debugger: Added partial CC65 dbgfile support.
- POKEY: Audio output path now emulates analog decay effects.
- Debugger: CC65 label parser now strips the first leading period from label names.
- Debugger: Fixed truncated call stack when encountering reused function epilog code paths.
- A couple of major changes in this version. First, I've redone the audio output path to try to improve sound accuracy. There is now a second high-pass filter to better replicate the exponential decay from real hardware and I've adjusted the volume curve based on measurements. The result is that the sound will be a bit clearer at typical volume levels due to less compression, but overall louder due to the stiffer knee on the volume curve. You can adjust the overall sound level in System > Audio > Options. It's still a bit off from the real thing, but I can't emulate that without doing a lot more reverse engineering of exactly why and how POKEY's output is saturating -- the technique I've used here is only an approximation because the effective volume curve varies by frequency.
2.50-test31 is also a little bit faster when no audio is playing due to a problem I found and fixed in the high-pass filter. Stupid denormals.
The second major change is that I've added partial support for CC65 source-level debugging. Version 2 dbgfile symbols are now supported with the .dbg extension. You must be using a newer version of CC65 to generate the necessary version 2 info -- 2.13.3-1 is too old. Also, cl65 doesn't expose this directly and so a little-command line trickery is needed:
cl65 -t atari -g hello.c -o hello.xex -Wl "--dbgfile hello.dbg"
The .lbl (VICE symbols) file is no longer needed when a dbgfile is used. Line number handling is a bit rough but somewhat works now (I had to add support for multiple disjoint ranges). The call stack tracer can now more reliably find its way out of the XL/XE OS display handler code and source windows are now dockable.
→ [ATARI] Altirra 2.50 Test XXX
Altirra 2.50 test 30 [17.03.2014]
- Debugger: .dumpsnap command now applies compression.
- Disk Explorer: DOS2 filesystem validator no longer checks directory entries after end of directory.
- CPU: Fix hang when saving state with heat map activated.
- GTIA: Fixed 2cclk transitions from modes 9/10/11 to mode 8.
- Simulation: Fixed some issues with GTIA and POKEY state desyncing across save states.
- Fixes glitch in Extract demo. This was an interesting one -- this demo relies on the playfield being blanked for 2 cclks when exiting GTIA mode 9. The behavior on real hardware is that you get 2 cclks of blanking when exiting mode 9 or 11 and no blanking at all when exiting mode 10.
I looked into the disk issue. There was a bug in the validator that I fixed where it wasn't properly watching for end of directory, but that wasn't it. The real problem is that the disk has files marked as both in-use ($40) and deleted ($80). This is an ambiguous case where DOS 2.0S and VTOCFIX see these files as deleted, whereas SpartaDOS X sees these files as normal. Altirra was also seeing these files, so it was flagging the disk as broken due to a VTOC bitmap mismatch. I'll need to do some more research to see if I can figure out what DOS might be doing this.