...
- edition: 2021
- rustc version requirement was raised to 1.65.
- examples: simple_logger (audio examples) upgraded to 4.
- examples: updated for the cpal and audio API changes.
- spectrusty-audio: cpal upgraded to 0.15.2, changes to AudioHandle and AudioHandleAnyFormat API.
- spectrusty-audio: AyAmps and AyFuseAmps implemented for f64 and i32 SampleDelta types.
- spectrusty-audio: synth.ext: trait BandLimitedExt, enum BandLimitedAny, implemented Debug for BandLimited.
- spectrusty-audio: synth: removed mut from BandLimited::is_frame_ended.
- spectrusty-core: implement sample traits for more types.
- spectrusty-core: implement Blep for mutable references of unsized Blep, implemented Debug for BlepStereo and BlepAmpFilter.
- spectrusty-formats: Fix Header::with_name failing unless length is 10.
- spectrusty-peripherals: implement fmt::Display for MultiJoystickBusDevice.
- bitflags upgraded to 2.3.3, added missing flags
- upgraded minifb, winit and other example dependencies
- spectrusty-core: z80emu bumped to 0.9.
v0.4.0
- all workspace library crates versions leveled to 0.4.0.
- spectrusty-core: z80emu bumped to 0.8.
- spectrusty-core: memory serializer re-implemented internally using const generics, custom array (de)serializer added.
- spectrusty: breaking
ZxMemory
types re-implemented using const generics:SinglePageMemory
struct introduced instead of separateMemory16k
,Memory48k
,Memory64k
structs.Memory16k
,Memory48k
,Memory64k
are now type aliases ofSinglePageMemory
.MemPageableRomRamExRom
has a new signature.
- deps: arrayvec is not longer needed, bumped cpal and base64
- examples: simple_logger (audio examples) downgraded for Rust 1.59 compatibility.
- examples: web fixed: exported values are back to JSON compatible.
- examples: sdl2-zxspectrum: added build features.
- examples: web-zxspectrum: added build features.
v0.3.3
- spectrusty-core: z80emu bumped to 0.7.
- spectrusty-audio: cpal bumped to 0.14.1.
- spectrusty-audio, spectrusty-utils: sdl2 bumped to 0.35.
- spectrusty-utils: minifb bumped to 0.23, winit bumped to 0.27.
- bumped arrayvec, bitflags, bitvec, nom and others.
- examples: webassembly examples upgraded to use webpack 5, deps bumped of other examples.
- rustc version requirement was raised to 1.59.
v0.3.2
- feature: boxed_frame_cache places video frame cache on the heap to make the chipset struct sizes significantly smaller and stack friendly at the cost of a minimal performance penalty.
- implemented BusDevice and AyAudioBusDevice for boxed devices.
v0.3.1
- spectrusty-audio: cpal bumped to 0.13.1, fixes compilation on 32-bit machines.
- bumped nom, bitvec and rand.
- rustc version requirement was raised to 1.44.
v0.3.0
- RendererPlus: Added support for the hi-res modes with color and grayscale palette.
- spectrusty-formats: scr: Added format support for the hi-res screen with a color palette.
v0.2.1
- spectrusty-peripherals: Fixed deserializing of
JoystickSelect
from owned strings;TryFromStrJoystickSelectError
inner public property type changed toCow<str>
. - spectrusty-utils: Fixed compilation without default features.
v0.2.0
-
Decouple
BusDevice
timestamps fromControlUnit
implementations. Now timestamps must implementFrom<VFrameTs<_>>
instead of being exactly the same. This enables usage of a common timestamp type for devices shared between different chipset implementations. -
Removed unnecessary
Debug
andDefault
constraints on the timestamp type from definitions of NamedBusDevice, AyIoPort, NullDevice. -
ControlUnit
implementations, while executing single instructions invokeBusDevice::update_timestamp
. -
Removed unnecessary conditions on chipset implementations.
-
(BREAKING)
TimestampOps
trait now used in peripherals implementations replacesFrameTimestamp
. Former methods ofFrameTimestamp
moved toVFrameTs
struct implementation. A new constantVFrameTs<V>::EOF
. -
(BREAKING) Redefined an
eof_timestamp
argument to BusDevice::next_frame. -
(BREAKING)
UlaPlusInner::video_render_data_view
return type is nowVideoRenderDataView
. -
(BREAKING)
VFrameTs<V>
serializes to and deserializes fromFTs
. This enables compatibility of the snapshots between different timestamp implementations. Not backward compatible. -
(fix, BREAKING) peripherals: types definitions in bus::ay::serial128 do not expose invariant parameter
T
but properly bind it to theBusDevice
implementations ofD
. -
examples: zxspectrum-common: generic bus device timestamp types; Bus device timestamps are now
FTs
. -
examples: sdl2-zxspectrum, web-zxspectrum: adapted to changes in zxspectrum-common.
-
Changes suggested by Clippy.