Altirra 4.00 Beta XXXVII 14/07/2021
- Audio: Improved aliasing rejection of output audio filter.
- Fixed a rounding problem in the PAL high artifacting engine that was causing excessive banding.
- Fixed an issue with the windowing on the audio low pass filter and added kernel interpolation to the resampler, for reduced aliasing from ultrasonic audio (which causes you to hear sounds that should be inaudible).
- The disk drives dialog now asks for a save path if saving a disk that doesn't have a image path set yet, and blocks saving of dynamic disks.
- Improved the performance of the raw turbo tape decoder.
- Turbo tape modes have a bit better descriptions.
The Tape Editor now has the ability to view and edit the turbo decoder side of the tape, as well as to show the waveform input to the decoder (if waveform caching is enabled on load, which is off by default). For the turbo signal, this shows the post-filter output. The analysis tool now also has rudimentary Turbo 2000 decoding capabilities:
You can also see the distortion in the source waveform due to high frequency attenuation, which is what the compensating HPF is for:
Altirra 4.00 Beta XXXVI 07/07/2021
- Cassette: Added FLAC decoding support.
- Cassette: Motor and play/record/pause state is no longer reset when switching tapes.
- Builds are now hosted over HTTPS, so the links should work directly again. Older builds are also available over HTTPS, but they won't redirect due to annoying behavior in some browsers. I can't edit the old posts, but you can edit the links manually to https.
- Debugger: 65C816 BRL instruction is now treated as ending a block in the disassembly.
- Raw tape audio can now be loaded in FLAC format.
- Fixed regression in loading CAS format tapes with FSK blocks, and fixed the read error message also always reporting position 0.
Tape editor has also received a few upgrades. It now has commands to convert selected ranges between standard (decoded bytes) and raw FSK, and also to extract files stored in standard C: format.
It also has two analysis features. The first is an Analyze tool that, when dragged over a selection, decodes and displays bytes in that selection. The second is an option to capture bytes as decoded dynamically through POKEY. Together, these can be used to diagnose boot errors:
In this case, the problem is a poorly encoded CAS file containing a transition from a standard 'data' block (green) to an 'fsk ' block (blue). The gap in between (gray) is of the wrong polarity, causing a framing error from the start bit being shortened (red byte).
We can fix this by using the Draw tool to repair the start bit:
...only to run into a problem later in the tape:
Here the analyzer is able to successfully decode the block with a valid checksum (blue bytes), but the boot fails with a framing error. The cause is a slight difference in estimated baud rate that causes the analyzer to just barely squeak by, whereas the OS boot is just slightly off enough for the stop bit sampling position to spill over into the next start bit (gray ticks). This is caused by another data/fsk split within the block, which causes timing problems since 'data' blocks can only specify baud rates to the nearest integer:
...but since the analyzer can decode the block, we can have it rewrite the entire block as clean standard data to avoid the mid-block change in baud rate and the marginal bit sampling timing:
...and now that the tape boots properly, resave a repaired .cas file.