Releases: LichP/rtzx
v0.5.0
This release adds support for Spectrum payloads and .tap files, and adds support for MSX .tsx files.
Waveforms
- Kansas City Standard waveform support
Blocks
- Added Kansis City Standard Data Block
- Change display for Custom Info block to show data as string, move hex presentation to extended display
- Various refactoring for write support and changes to
DataPayload - Change Standard Speed Data Block to use
DataPayloaddirectly
Data / tap
- Support for Spectrum and MSX header payloads
- B/C: Removed
lengthfromDataPayload, delegated to BinRead parsing on parent objects - B/C: Replaced
read_payloadmathod withas_payloadandtry_as_payloadonDataPayload - Replaced
TzxData::parse_fromwith BinRead trait read - Added
TapeDataFilestruct with support for reading TZX or TAP data
UI
- Support for reading / playing
.tapand.tsxfiles - Ensure inspect command correctly detects platform
- Improved presentation of Custom Info blocks
v0.4.0
This release brings experimental support for Generalized Data Blocks, and makes some improvements to the playback. It is also the first version to be published to crates.io, with code refactored and documented to facilitate library usage.
Waveforms
- Generalized waveform initial implementation (experimental).
- Data waveform now uses a pulse iterator in similar fashion to generalized waveform.
- Added
.current_baudto trait and implemented for data and generalized waveforms. - B/C:
Pulse::get_next_samplemethod renamed tonext_sample.
Blocks
- Generalized Data Blocks parsing and initial implementation (experimental).
Code
- Many standard trait implementations and constructors added throughout to facilitate library usage.
- Add
lib.rsfor library usage, adjusted imports inmain.rsto use.
UI
- Display pulse widths as number of samples with rounding for data and pilot waveforms (useful for figuring out potential adjustments to playback duration)
- Show current baud for data and generalized waveforms
Edit 18/01
Added aarch64 Linux build.
v0.3.1
v0.3.0
This release makes some big efficiency improvements to improve playback reliability, and adds a fine-grained playback duration option, which can help when loading CDTs that fail at standard playback speed.
Waveforms
- Generalised pause with different variants, with pause blocks using zero variant rather than start low variant.
- Pulses now use an external index from the parent waveform rather than implementing their own iterator index, allowing reuse.
- Pulse length / duration no longer affected by platform selection for playback.
- Pulse length / duration now controllable via new
playback_duration_percentconfig option (--playback-duration-percent/-dcli arg). - Waveforms now reuse a single pulse updated from data payload rather than building massive vectors of pulses (improves playback performance).
Blocks
- Blocks refactored to use data payloads structure.
- Data payload parsing for standard CPC header and data blocks.
Audio
- Refactored player to facilitate block seeking.
- Default buffer size increased to 200ms and made configurable via
--buffer-lenth-ms/-bcli arg.
UI
- Added
--waveforms/-woption toinspectcommand. convertcommand--output/-oarg now optional, output filename defaults to same as input wilename with extension changed to.wavif not supplied.- Added
--buffer-lenth-ms/-band--playback-duration-percent/-dargs forplayandconvert. play: Played blocks list now shows CPC header / data payload details as extended information for data blocks where the payload parses.play: Current waveform visualisation now rendered double-width on separate line, along with byte data for current row when data waveform is playing.play: Added controls to seek backwards / forwards through blocks.
v0.2.0
This release brings improvements to parsing, audio playback at 44.1k sample rate for improved compatibility, and a bug fix for space toggle on Windows.
There is one breaking change: the --machine / -m command line option has been replaced with --platform / -p.
Blocks
- Added parsing implementations for all missing block types except CSW Recording, Generalized Data Block, and the deprecated C64 block types.
- Bug: Fixed parsing bugs in
StopTapeIf48K,SetSignalLevel, andMessageBlock. - Connected all missing block types with parsing implementations in
read_block, including for block types with implementations in 0.1.0 which were erroneously left out. - Improved robustness of parsing to ensure all valid TZX / CDT files can be parsed.
Audio
- Changed hard coding of sample rate to be configurable, using 44.1k as default instead of 48k.
- Initial support for configurable output buffer when playing back on an audio device.
UI
- Bug: Fix double-toggle of pause on Windows caused by event firing on both key press and release.
- Display extended block information in
inspectand inplaybackcomplete blocks output. - B/C: Replace
--machine/-marg with--platform/-p. - Add
--sample-rate/-sarg.