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
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