Maximum possible tape loading speed ?
Maximum possible tape loading speed ?
What's the the maximum theoretical tape loading speed ?
I know custom loaders achieved faster speeds, but the limiting factor was always tape playback quality.
But how about using a modern playback device connected to a Spectrum ?
Today's devices are capable of 48Khz (or higher) frequency response with precise timing.
So I guess today one could achieve must faster loading speeds, right ?
Would the limitation be CPU speed ?
I know custom loaders achieved faster speeds, but the limiting factor was always tape playback quality.
But how about using a modern playback device connected to a Spectrum ?
Today's devices are capable of 48Khz (or higher) frequency response with precise timing.
So I guess today one could achieve must faster loading speeds, right ?
Would the limitation be CPU speed ?
- Ast A. Moore
- Rick Dangerous
- Posts: 2643
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Maximum possible tape loading speed ?
About 19 kbaud or thereabouts.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Re: Maximum possible tape loading speed ?
So theoretically you could load a 48k game in a few seconds?
Re: Maximum possible tape loading speed ?
Would it be more correct to say kbps rather than kilobaud? Specifying loading rate in kilobaud implies the bitrate could differ depending on the encoding used.
Re: Maximum possible tape loading speed ?
Thanks for the feedback. Yes, if we consider 19kbps it would load in seconds! Interesting!
Does any modern custom loader support such speeds ?
Does any modern custom loader support such speeds ?
- Ast A. Moore
- Rick Dangerous
- Posts: 2643
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Maximum possible tape loading speed ?
OTLA does. It’s very buggy and has a major flaw—it uses an undocumented Z80 instruction to read from the port, and any keypress during a load will produce an error—but it’s the fastest method that I know of.
My own loading scheme is much more robust in this regard, but I haven’t pushed it beyond 6x the speed of the standard ROM loader. For practical considerations, I don’t push it beyond 3x, because I tried to tailor it to work reliably with actual Spectrums and actual tapes. If using a digital source, it’s trivial to up the speed to, say, 10x the standard ROM loader.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
- DouglasReynholm
- Manic Miner
- Posts: 351
- Joined: Wed Feb 20, 2019 8:38 pm
- Location: London
Re: Maximum possible tape loading speed ?
How quick were the CD based Codemasters games to load? I would have thought with the high quality of the media (compared to tape) and an increased dynamic range it was the optimal method..?
Re: Maximum possible tape loading speed ?
I think this is going to vary wildly depending on the source / quality of the audio erm 'data' supplied.
If you're using analogue or CD or digital .wav/.mp3 etc etc , compared to a wobbly tape. I guess what I am saying here is merely it will vary!
It will load (here) at 4000baud though. I have a modified ROM image with the timings set to this, merely for random curiosity. The idea being to 'save' via Basic if the program was unprotected.
I did about 2 years ago do an experiment with Stormbringer 128K, with compression and a turbo loader (I think it was about 3500) and the total loading time went down from about 12 to 4 minutes if I remember correctly. I don't have FB access to check this although I recall posting it and David Jones commenting on it as I had to make a bug-fix for a disc version of one game due to it wanting to use one of the +3 fdd workspace area's. Sorry this paragraph is a bit vague but working from memory here, I don't have the files to hand at this moment.
If you're using analogue or CD or digital .wav/.mp3 etc etc , compared to a wobbly tape. I guess what I am saying here is merely it will vary!
It will load (here) at 4000baud though. I have a modified ROM image with the timings set to this, merely for random curiosity. The idea being to 'save' via Basic if the program was unprotected.
I did about 2 years ago do an experiment with Stormbringer 128K, with compression and a turbo loader (I think it was about 3500) and the total loading time went down from about 12 to 4 minutes if I remember correctly. I don't have FB access to check this although I recall posting it and David Jones commenting on it as I had to make a bug-fix for a disc version of one game due to it wanting to use one of the +3 fdd workspace area's. Sorry this paragraph is a bit vague but working from memory here, I don't have the files to hand at this moment.
- Ast A. Moore
- Rick Dangerous
- Posts: 2643
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Maximum possible tape loading speed ?
The average load time was about a minute or so. Not particularly fast for a bunch of (mostly) 48K games. I’d say about 3–4 times the standard speed.DouglasReynholm wrote: ↑Fri Sep 20, 2019 1:55 pm How quick were the CD based Codemasters games to load? I would have thought with the high quality of the media (compared to tape) and an increased dynamic range it was the optimal method..?
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Re: Maximum possible tape loading speed ?
A few years ago someone experimented with streaming digitised video using turbo loading, no joke. I wish they had continued their experiments. It's true most of us like to go back to tape loading once in a while, but a large percentage of the Spectrum crowd has portable devices with audio out. Maybe we should explore more fast-loading options instead of just sticking to old school tape loading or instant (non-gratifying) loading.
k7zx and Otla were popular for a while, and then interest died out.
"Gentlemen, we can rebuild it*. We have the technology"
k7zx and Otla were popular for a while, and then interest died out.
"Gentlemen, we can rebuild it*. We have the technology"
- Ast A. Moore
- Rick Dangerous
- Posts: 2643
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Maximum possible tape loading speed ?
Like I said, my loader is capable of providing very high loading speeds (it’s quite trivial, actually). I’ve only kept it capped at 3x to maintain actual compatibility with tapes (and low-end tape players). Instant loading has never been my cup of tea, but I can completely understand the people who prefer it over the traditional loading methods.
When I feel like it, I update modern games with my loader, but for the most part, I sense there’s little to no demand for it—people just use DivMMC and the like to load games. Heck, the majority of people use emulators anyway.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Re: Maximum possible tape loading speed ?
Yes, it’s a pity, but custom loaders are downright incompatible with modern digital container files and instant loading hardware.
For example, tap files can only be used on hardware if they have standard loaders; tzx files can only be used with virtual tape players like tzxduinos, etc.
For that reason, I’m cheered by the Pi accelerator developments on the Next. We have proof of concept demonstrations of a general purpose lightweight linux supervisor that can run scriptable custom commands, and can talk over a fast wide bus to the Next hardware. The user can pick a tzx file from the browser, then the Next can autoinstall a Linux handler for tzx files, then upload a file, and go into tape loading mode. The handler converts this to a temporary WAV, and plays it through what it sees as a digital I2S soundcard, but what the Next sees as digital input on either the EAR socket or the stereo specdrum/soundrive DAC (switchable depending on how you want to use it). It’s basically like a TOSlink connection.
It’s all reasonably straightforward stuff, but there’s real magic in having it be seamless, dynamic and with an extensible mechanism - one that is open to end user HLL programmers rather than bare metal geniuses, at that. Fun times!
Ast’s uberfast loader should work fine on this, for example!
For example, tap files can only be used on hardware if they have standard loaders; tzx files can only be used with virtual tape players like tzxduinos, etc.
For that reason, I’m cheered by the Pi accelerator developments on the Next. We have proof of concept demonstrations of a general purpose lightweight linux supervisor that can run scriptable custom commands, and can talk over a fast wide bus to the Next hardware. The user can pick a tzx file from the browser, then the Next can autoinstall a Linux handler for tzx files, then upload a file, and go into tape loading mode. The handler converts this to a temporary WAV, and plays it through what it sees as a digital I2S soundcard, but what the Next sees as digital input on either the EAR socket or the stereo specdrum/soundrive DAC (switchable depending on how you want to use it). It’s basically like a TOSlink connection.
It’s all reasonably straightforward stuff, but there’s real magic in having it be seamless, dynamic and with an extensible mechanism - one that is open to end user HLL programmers rather than bare metal geniuses, at that. Fun times!
Ast’s uberfast loader should work fine on this, for example!
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel • NXTP • ESP Update • ESP Reset • CSpect Plugins
SevenFFF / Threetwosevensixseven / colonel32
NXtel • NXTP • ESP Update • ESP Reset • CSpect Plugins
Re: Maximum possible tape loading speed ?
Hi, Ast A. Moore. How you loader works ? It doesn't seem to be accelerated ROM load. Can you share some details ?Ast A. Moore wrote: ↑Fri Sep 20, 2019 5:15 pmLike I said, my loader is capable of providing very high loading speeds (it’s quite trivial, actually). I’ve only kept it capped at 3x to maintain actual compatibility with tapes (and low-end tape players). Instant loading has never been my cup of tea, but I can completely understand the people who prefer it over the traditional loading methods.
When I feel like it, I update modern games with my loader, but for the most part, I sense there’s little to no demand for it—people just use DivMMC and the like to load games. Heck, the majority of people use emulators anyway.
Also, I wonder if you tested it with real tape.
Sorry for necroposting.
Proud owner of Didaktik M
Re: Maximum possible tape loading speed ?
You can go even further with emulators and k7zx.
Its possible loading Manic Miner, under 10 seconds and over 30,000 bps.
https://gofile.io/d/SUiWJZ
Its possible loading Manic Miner, under 10 seconds and over 30,000 bps.
https://gofile.io/d/SUiWJZ
Re: Maximum possible tape loading speed ?
Yes I know. But I'm more interested in real tape examples. For example Speedlock offers just slight speed improvement over ROM. And I guess original ROM tape loader speed was choosen for some reason.Pegaz wrote: ↑Mon Nov 09, 2020 10:25 pm You can go even further with emulators and k7zx.
Its possible loading Manic Miner, under 10 seconds and over 30,000 bps.
https://gofile.io/d/SUiWJZ
Some people mention 6kHz as limit for cheapest tape deck. It sounds like quite reasonable estimation, as far I remember, tapes were not particulary good at heights (but not bad either, I remember listening Kate Bush from tape
So, with 6kHz limit, modified ROM loader could work 550T/1100T timing, that is about 150% of default speed.
When I was looking into original tapes tzx, ~ 550/1100 was the fastest loader I have found.
Proud owner of Didaktik M
- Ast A. Moore
- Rick Dangerous
- Posts: 2643
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Maximum possible tape loading speed ?
I have a few versions. One version uses a single edge method, as opposed to the ROM’s standard two edge. That alone can offer an up to 200 percent speed increase. There are quite a few other optimizations and tweaks there—both for speed and size. I also tag each block with a unique identifier, so if a loading error occurs, you can safely rewind the tape and only the failed block will load, ignoring anything else.
Not as such. I don’t have a high-quality tape deck to record the loader onto a cassette. I did, of course, test it on real Spectrums by feeding the audio directly from the phone and computer. It loaded okay. As I mentioned before, the Spectrum itself can easily accommodate much higher loading speeds; the bottlenecking occurs in the quality of the audio signal itself. A middle-of-the-road tape deck and a chrome or metal tape will have sufficient bandwidth for very high speed loads. A cheap tape player with a Type I tape will severely limit the higher frequency response, and very high speed loaders will fail.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
-
- Drutt
- Posts: 1
- Joined: Thu Feb 04, 2021 9:19 am
Re: Maximum possible tape loading speed ?
Does anyone know what is the maximum loading speed which can be achieved by connecting e.g. an Arduino-based device directly to the EAR port? I'm investigating the possibility to create an Arduino-based device+firmware for retro-computer museums which would allow to load snapshots to various ZX Spectrum clones (often lacking an Edge Connector or ZX Bus), which otherwise rest on shelves at most showing "(C) 1982...".
One spectrumist has offered me an idea of creating a bi-directional protocol using MIC and EAR, which could automatically choose the best reliable speed. Have anyone heard about such development, not to re-invent a bike?
Thanks for attention!
One spectrumist has offered me an idea of creating a bi-directional protocol using MIC and EAR, which could automatically choose the best reliable speed. Have anyone heard about such development, not to re-invent a bike?
Thanks for attention!
Last edited by mike-shevchenko on Thu Feb 04, 2021 10:08 am, edited 1 time in total.
Re: Maximum possible tape loading speed ?
I looked at turboloaders for a bit when I was developing my 48k speccy toolchain, but in the end figured that compressing the image and decompressing after load actually sped up the load time more than a turboloader would have =)
As a "bonus" my loading screens load up really fast, as they're also compressed. Some people feel that's a misfeature, though...
If I were to write a "turboloader", it would be for the same reason most commercial "turboloaders" were - to make the loading more interesting by, say, showing different colors or counters, or maybe even to play music. Less for the actual speeding up purpose.
As a "bonus" my loading screens load up really fast, as they're also compressed. Some people feel that's a misfeature, though...
If I were to write a "turboloader", it would be for the same reason most commercial "turboloaders" were - to make the loading more interesting by, say, showing different colors or counters, or maybe even to play music. Less for the actual speeding up purpose.
http://iki.fi/sol - my schtuphh
https://github.com/jarikomppa/speccy/ - 48k speccy dev
https://github.com/jarikomppa/specnext/ - specnext dev
https://github.com/jarikomppa/speccy/ - 48k speccy dev
https://github.com/jarikomppa/specnext/ - specnext dev
Re: Maximum possible tape loading speed ?
Loading times on the spectrum are not a limitation, they're a feature
They seemed to take forever as a kid, but these days I love the 'slow gaming' experience.
They seemed to take forever as a kid, but these days I love the 'slow gaming' experience.
Re: Maximum possible tape loading speed ?
https://api.zxinfo.dk/v3/ - ZXDB API for developers
zxinfo-file-browser - Cross platform app to manage your files
https://zxinfo.dk - another ZXDB frontend
zxinfo-file-browser - Cross platform app to manage your files
https://zxinfo.dk - another ZXDB frontend
Re: Maximum possible tape loading speed ?
Isn't that just the difference though?
Computers hide everything and it's frustrating.
The loading of a spectrum you can hear what's happening, and see it. The sound of a screen loading is very distinctive for example
Re: Maximum possible tape loading speed ?
I'm curious - does your loader work as a TZX file and have you got any examples? I have a TZXDuino so I'd be interested to experience just what could have been possible if tapes were better.Ast A. Moore wrote: ↑Fri Sep 20, 2019 5:15 pm Like I said, my loader is capable of providing very high loading speeds (it’s quite trivial, actually). I’ve only kept it capped at 3x to maintain actual compatibility with tapes (and low-end tape players).
- Ast A. Moore
- Rick Dangerous
- Posts: 2643
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Maximum possible tape loading speed ?
Yes, it’s a standard TZX file. You can try the latest version of Yankee to see it in action.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.