Maximum possible tape loading speed ?

For experts to discuss very technical stuff and newbies to ask why the Spectrum they bought off ebay doesn't work.
Post Reply
User avatar
4thRock
Manic Miner
Posts: 415
Joined: Thu Nov 09, 2017 9:35 am
Location: Portugal

Maximum possible tape loading speed ?

Post by 4thRock »

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 ?
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Maximum possible tape loading speed ?

Post by Ast A. Moore »

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.
User avatar
stupidget
Dynamite Dan
Posts: 1611
Joined: Wed Jan 24, 2018 2:09 pm
Location: Sunny Wolverhampton

Re: Maximum possible tape loading speed ?

Post by stupidget »

Ast A. Moore wrote: Fri Sep 20, 2019 10:51 am About 19 kbaud or thereabouts.
So theoretically you could load a 48k game in a few seconds?
User avatar
djnzx48
Manic Miner
Posts: 729
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: Maximum possible tape loading speed ?

Post by djnzx48 »

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.
User avatar
4thRock
Manic Miner
Posts: 415
Joined: Thu Nov 09, 2017 9:35 am
Location: Portugal

Re: Maximum possible tape loading speed ?

Post by 4thRock »

Thanks for the feedback. Yes, if we consider 19kbps it would load in seconds! Interesting!
Does any modern custom loader support such speeds ?
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Maximum possible tape loading speed ?

Post by Ast A. Moore »

4thRock wrote: Fri Sep 20, 2019 12:12 pm Does any modern custom loader support such speeds ?
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.
User avatar
DouglasReynholm
Manic Miner
Posts: 347
Joined: Wed Feb 20, 2019 8:38 pm

Re: Maximum possible tape loading speed ?

Post by DouglasReynholm »

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..?
User avatar
spider
Dynamite Dan
Posts: 1081
Joined: Wed May 01, 2019 10:59 am
Location: UK
Contact:

Re: Maximum possible tape loading speed ?

Post by spider »

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.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Maximum possible tape loading speed ?

Post by Ast A. Moore »

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..?
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.
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.
User avatar
zxbruno
Manic Miner
Posts: 213
Joined: Sun Mar 04, 2018 6:13 am

Re: Maximum possible tape loading speed ?

Post by zxbruno »

A few years ago someone experimented with streaming digitised video using turbo loading, no joke. :mrgreen: 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"
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Maximum possible tape loading speed ?

Post by Ast A. Moore »

zxbruno wrote: Fri Sep 20, 2019 4:05 pm Maybe we should explore more fast-loading options instead of just sticking to old school tape loading or instant (non-gratifying) loading.
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. :D
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.
User avatar
Seven.FFF
Manic Miner
Posts: 735
Joined: Sat Nov 25, 2017 10:50 pm
Location: USA

Re: Maximum possible tape loading speed ?

Post by Seven.FFF »

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!
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel NXTP ESP Update ESP Reset CSpect Plugins
catmeows
Manic Miner
Posts: 711
Joined: Tue May 28, 2019 12:02 pm
Location: Prague

Re: Maximum possible tape loading speed ?

Post by catmeows »

Ast A. Moore wrote: Fri Sep 20, 2019 5:15 pm
zxbruno wrote: Fri Sep 20, 2019 4:05 pm Maybe we should explore more fast-loading options instead of just sticking to old school tape loading or instant (non-gratifying) loading.
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. :D
Hi, Ast A. Moore. How you loader works ? It doesn't seem to be accelerated ROM load. Can you share some details ?
Also, I wonder if you tested it with real tape.

Sorry for necroposting.
Proud owner of Didaktik M
User avatar
Pegaz
Dynamite Dan
Posts: 1209
Joined: Mon Nov 13, 2017 1:44 pm

Re: Maximum possible tape loading speed ?

Post by Pegaz »

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
catmeows
Manic Miner
Posts: 711
Joined: Tue May 28, 2019 12:02 pm
Location: Prague

Re: Maximum possible tape loading speed ?

Post by catmeows »

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
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.
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
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Maximum possible tape loading speed ?

Post by Ast A. Moore »

catmeows wrote: Mon Nov 09, 2020 8:36 pm Hi, Ast A. Moore. How you loader works ? It doesn't seem to be accelerated ROM load. Can you share some details?
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.
catmeows wrote: Mon Nov 09, 2020 8:36 pmAlso, I wonder if you tested it with real tape.
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.
mike-shevchenko
Drutt
Posts: 1
Joined: Thu Feb 04, 2021 9:19 am

Re: Maximum possible tape loading speed ?

Post by mike-shevchenko »

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!
Last edited by mike-shevchenko on Thu Feb 04, 2021 10:08 am, edited 1 time in total.
User avatar
Sol_HSA
Microbot
Posts: 161
Joined: Thu Feb 04, 2021 11:03 am
Location: .fi
Contact:

Re: Maximum possible tape loading speed ?

Post by Sol_HSA »

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.
User avatar
Jbizzel
Dynamite Dan
Posts: 1529
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Maximum possible tape loading speed ?

Post by Jbizzel »

Loading times on the spectrum are not a limitation, they're a feature :D :D

They seemed to take forever as a kid, but these days I love the 'slow gaming' experience.
User avatar
kolbeck
Manic Miner
Posts: 309
Joined: Mon Nov 13, 2017 9:04 pm

Re: Maximum possible tape loading speed ?

Post by kolbeck »

Jbizzel wrote: Sun Feb 07, 2021 7:44 am Loading times on the spectrum are not a limitation, they're a feature :D :D

They seemed to take forever as a kid, but these days I love the 'slow gaming' experience.
Image
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
User avatar
Jbizzel
Dynamite Dan
Posts: 1529
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Maximum possible tape loading speed ?

Post by Jbizzel »

kolbeck wrote: Sun Feb 07, 2021 8:43 am
Jbizzel wrote: Sun Feb 07, 2021 7:44 am Loading times on the spectrum are not a limitation, they're a feature :D :D

They seemed to take forever as a kid, but these days I love the 'slow gaming' experience.
Image
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
User avatar
patters
Manic Miner
Posts: 467
Joined: Thu Apr 11, 2019 1:06 am

Re: Maximum possible tape loading speed ?

Post by patters »

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).
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.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Maximum possible tape loading speed ?

Post by Ast A. Moore »

patters wrote: Mon Feb 08, 2021 12:42 pm
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.
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.
Post Reply