All, I've succeded in making appmake generate the audio version of the data files.
At compile command line there will be two new options available for ZX81 and Spectrum -Cz--audio and -Cz--fast, the latter tweaks the file to squeeze the maximun possible speed with the standard ROM loaders. The sound encoding logic is totally different between zx81 and Spectrums and so are the speed limits reached.
Feedback is welcome
New WAV format
With the Spectrum it is not much faster, to be honest, I think it saves a bit more than 10 seconds every minute, but I haven't measured it very well yet.
Best results are with the ZX81 wich saves about 1/3 of the loading time but it is still very slow and I'm afraid I'm generating very high frequiencies in this case.
I think there is still space for a real turbo loader option
Best results are with the ZX81 wich saves about 1/3 of the loading time but it is still very slow and I'm afraid I'm generating very high frequiencies in this case.
I think there is still space for a real turbo loader option
ZX Spectrum speed measurements on 'Planet of Death', which is big enough for a good comparison.
Note that the WAV file, being generated digitally, can be compressed very well:
Resulting '.tap' size: 13.846
Normal speed wave size: 3.784.679 (85,81 sec, gzipped size 53.125)
Fast mode wave size 2.899.047: (65,73 sec, gzipped size 47.047)
Maketzx output log in fast mode:
■ Checking input file... ok!
■ RIFF Wave PCM (WAV), 2898940 samples.
■ Sampling rate: 44100 Hz (playing time: 01:05.735)
Block 1 => Program: Loader - Header: Length= 17, Pause=5ms.
Block 2 => F:255 - Speed: 117% - Line= 10, Length= 32, Pause=5ms.
Block 3 => Bytes: a.bin - Header: Length= 17, Pause=5ms.
Block 4 => F:255 - Speed: 117% - Start=32768, Length=13768, Pause=93ms.
Note that the WAV file, being generated digitally, can be compressed very well:
Resulting '.tap' size: 13.846
Normal speed wave size: 3.784.679 (85,81 sec, gzipped size 53.125)
Fast mode wave size 2.899.047: (65,73 sec, gzipped size 47.047)
Maketzx output log in fast mode:
■ Checking input file... ok!
■ RIFF Wave PCM (WAV), 2898940 samples.
■ Sampling rate: 44100 Hz (playing time: 01:05.735)
Block 1 => Program: Loader - Header: Length= 17, Pause=5ms.
Block 2 => F:255 - Speed: 117% - Line= 10, Length= 32, Pause=5ms.
Block 3 => Bytes: a.bin - Header: Length= 17, Pause=5ms.
Block 4 => F:255 - Speed: 117% - Start=32768, Length=13768, Pause=93ms.
Short update.. the test on a real ZX 81 in speed mode was unsuccesful !
I'm trying to fix it, at the moment I'm tuning the gap between the single bits.
I updated appmake for the Jupiter ACE to support the "new" tap format used in EightyOne (different from the old one) and added the same WAV features of the Spectrum.
I also built a non-ansi lib, it was missing and the ACE has a small memory !
I'm trying to fix it, at the moment I'm tuning the gap between the single bits.
I updated appmake for the Jupiter ACE to support the "new" tap format used in EightyOne (different from the old one) and added the same WAV features of the Spectrum.
I also built a non-ansi lib, it was missing and the ACE has a small memory !