34

In the Swedish-language song "Nostalgi" by Markoolio from 2003, some of the lyrics go:

My first computer had 64 kB
you surfed on the water, and that's that
The computer games were loaded in from tapes
it took 25 minutes if everything went alright.

(Obviously, it doesn't rhyme when translated into English.)

He was likely referring to his Commodore 64. As far as I understand, that home computer/console came with a cartridge slot built in, but no floppy disk station or tape player. You had to buy the two latter separately. (But they had slots to connect them.)

I realize that piracy was absolutely rampant, so maybe people invested in separate tape players and then copied games easily onto cheap tapes and that's why it took so long to load them in? But even then, 25 minutes still sounds insane. Even if it was really just 1-2 minutes, that would still be significantly longer than the slow floppies that I remember impatiently waiting for. Imagine sitting down to play a game before lunch, only to realize that the game has not finished loading by the time the food is ready...

Did they actually sell commercial/legal software for Commodore 64 and other early home computers on tapes on shelves in stores? For full price? Surely those "genuine" copies must have come on the expensive-to-produce and impossible-to-reproduce-at-home cartridges with near-zero loading time? So if you had actually purchased a Commodore 64 game, it would not take "25 minutes" to load, but more like 25 milliseconds? You'd just slide in the cartridge and press "power on" and it's running right away?

Is the only reason that people talk about games taking so long to load in those days that they only experienced pirated/warez copies of games? They never bought any for money? It makes me wonder how anyone could make a living in those days...

Also, what's that part about "if everything went right"? It could also fail to load, even at that slow speed?

Is there something I'm fundamentally missing?

user3840170
  • 23,072
  • 4
  • 91
  • 150
Kommendåre 64
  • 349
  • 1
  • 3
  • 3
  • 25 minutes is plausible but intolerably long, especially in the USA where most C64 owners had disk drives. Was any software ever released on cassette that took 25 minutes to load? – snips-n-snails Oct 29 '20 at 05:38
  • 5
    Note that C64 was known for rather unusually low tape speed (for a machine with that much RAM; 300 baud was common in the era of ~1KB RAM machines, line ZX8[01]). For say ZX Spectrum, an average rate 1300 baud and a big game ~47KB with a loading screen meant something like 5 minutes waiting - quite tolerable (and many games were smaller). Also note that C64 had a floppy drive with the speed quite comparable to the ZX Spectrum tape (that is, without a fast loader installed...) – Radovan Garabík Oct 29 '20 at 09:42
  • 26
    Did they sell tapes? Where I grew up, they only sold tapes for the C64 as disk drives were crazy expensive. I also can confirm 100% that prior to the advent of fast tape loaders some games did indeed take 25 minutes or more to load from tape on the Commodore 64. It had a proprietary tape deck which was a piece of crap and the standard decoding was really slow. I waited 30 minutes on numerous occasions for Manic Miner to load and it didn't work about half the time. – Alan B Oct 29 '20 at 09:56
  • 2
    Indeed, IIRC the game "Impossible Mission" took 20 minutes to load. It sounds implausible now but 20-30 minutes was not uncommon. – Mick Oct 29 '20 at 14:26
  • 1
    Pirating a tape has no impact on speed - you would (presumably...) do a one-to-one copy via tape-to-tape and it would load at the same speed as the original. In some cases, you could speed it up by loading then saving at a higher baud rate (but slightly more error prone). – fdomn-m Oct 29 '20 at 15:05
  • Most pirated stuff on tape that I saw used 'TurboTape', so you'd get a C120 tape from someone, the first program on it would be TurboTape, so you load and run that, then use a new command that it added to load the games on the rest of the tape. You could get a lot of them onto a a C120 in TurboTape format. – Alan B Oct 29 '20 at 16:02
  • 7
    Unnecessary Anecdote: I just loaded up Buck Rogers on my Coleco Adam in my office and it took 16 minutes from turn on to game started. – CGCampbell Oct 29 '20 at 17:01
  • 3
    Until today, I didn't realise the C64 even had cartridges! All the commercial games my family purchased arrived on cassette tape. (My dad did eventually buy a 5-inch disk drive. I gather it was very expensive. I don't recall any games coming on disk.) – MathematicalOrchid Oct 29 '20 at 17:14
  • @MathematicalOrchid C64 is where I first played Ultima, Bards Tale, Star Control, and similar games (from disc). – Michael Richardson Oct 29 '20 at 17:51
  • Also, pedantically, the 1840 used such a slow connection that one or two minutes is actually what you'd expect it to take to load a game (if the developer hadn't provided a fast loader). – Tommy Oct 29 '20 at 21:23
  • Note that cassette players were ubiquitous, that's what people used in 80s for music (turntables and tape players notwithstanding). For copying you most probably just could borrow another cassette player from friend. Also later on, for pc there were games distributed on 6-10 floppies, took ages to copy to hard drive. – Gnudiff Oct 30 '20 at 08:44
  • 1
    I remember being really excited waiting 10-15 minutes for my Sinclair Spectrum to load a commercial game of Scrabble. Finally, it was time to start the first 2-player game (me against computer) I let the machine play first. It put the word FUCK right there in the middle of the board. Thinking it was just someone's idea of a joke, I just turned it off and never touched that cassette again for several weeks. A friend wanted to see it, so I repeated the whole process. But it never did it again - that was just a wild fluke! (Spectrums had no "retained memory" to avoid doing it every time!) – FumbleFingers Oct 30 '20 at 18:43
  • The only C64 cartridge I recall seeing regularly is Turtle Graphics II at my elementary school. The 1541 disk drive was no speed-demon either. – Schwern Oct 31 '20 at 01:37
  • The spectrum had cartridges as well (you needed to buy the joystick / cartridge interface). I recall there were very few games on cartridge as well - Jetpack I particularly remember. I also well remember playing games on my neighbours C64 and literally going off and doing something else until it was loaded - there was an isometric car game where you constructed your own car and dropped oil / mines which was particularly slow! – David Waterworth Oct 31 '20 at 02:33
  • 2
    On a Commodore Pet I used the cheapest tapes I could find. Worked absolutely fine. The recorded signal was so strong, you could never again use them for music. At least my tape recorder couldn’t wipe out the signal. – gnasher729 Oct 31 '20 at 15:58
  • You could actually stop it after 12.5 minutes. It verified the second half against the first half that was loaded. – cup Nov 27 '20 at 22:33
  • @gnasher729 I remember a kid at school asking whether he needed a good quality cassette. The teacher said: no, just buy a cheap one. The next day, the kid arrived with a head cleaner cassette. – badjohn Nov 01 '22 at 09:45

17 Answers17

74

Theoretically it could take 25 minutes (or more), in practice it never did.

Theoretically it could, because the C-64's built-in tape handling routines had a data rate of about 300 bit/s. That's 37.5 bytes per second, or almost 30 minutes for a full 64K.

In practice, it never did, because the tape handling / decoding was done almost entirely in software, Commodore's own tape handling routines were horribly inefficient*, and third party speeders managed data rates close to 5 kbit/s, reducing load times dramatically. Almost every bit of commercial software, and every quality crack released on tape ;-), had a two part loader, first loading a fast loader at normal speed, then loading the rest of the game at higher speed. I can't recall waiting more than a few minutes for any game to load.

As for cartridges: Hardly any game or application software for the C-64 was sold on cartridges. Tapes and disks were way cheaper to produce.

* One source claims that the inefficiency was a response to the quality of audio tapes typically used at the time the PET was designed (mid-70s), and that only improved tape quality in the mid-80s made fast loaders possible. I'm not convinced.

Michael Graf
  • 10,030
  • 2
  • 36
  • 54
  • 4
    Cartridges on the C64 definitely weren't the norm, but they did sort of happen both at the very beginning and very end of the C64 lifespan. At the beginning you had the simple arcade games available on 4KB carts. At the end of the lifespan (especially in Europe; early 90s) you had very late releases that would take an uncomfortable amount of disks instead issued on large capacity bank-switching carts like the C64 port of Shadow of the Beast that came on an 8 megabit (1MB) cartridge. – mnem Oct 29 '20 at 09:24
  • 9
    There was a long period before fastloaders where it could easily take nearly 30 mins. – Alan B Oct 29 '20 at 09:57
  • 5
    @AlanB Turbo Tape 64 came out in 1983, and managed approx. 3 kbit/s. It wasn't that long (as far as the C-64 is concerned). For other Commodore computers, yes. – Michael Graf Oct 29 '20 at 10:21
  • 2
    I'm guessing the Epyx Fast Load cartridge was the most popular C64 cartridge and was nearly ubiquitous in North America, where floppy drives were far more common than tape drives. – Brian H Oct 29 '20 at 13:34
  • And a game doesn’t truly load the entire 64k from tape. Every software needs some storage for dynamic data, i.e. the program’s state, including the screen buffer. Generally, whenever data can be calculated instead of being read from a slow tape, software would go that route. Another question is, whether loading a chunk of 64k is even possible with the default loader, given the complicated bank switching operations that would be necessary to use I/O registers and the writable RAM at the same address. – Holger Oct 30 '20 at 10:49
  • @Holger The default loader couldn't load 64K, but you could use it to load your own loader which still uses the Kernal routines for reading from tape, and just puts stuff into the right places. And of course you wouldn't load the whole 64K when loading original software -- but if you used a freezer cartridge to ... make a backup of your valuable game, it would, in effect, just write a memory dump with a custom loader to disk or tape. – Michael Graf Oct 30 '20 at 11:27
  • 2
    There were plenty of games, commercial and homebrew, that didn't use turbo loaders. – OrangeDog Oct 30 '20 at 14:06
  • 1
    According to Wikipedia, there were some 10,000 commercially released software titles for the Commodore 64. Not all of them were released on tape, but I'm sure there must have been quite a few without fastloaders, particularly early ones (1982-84). On the other hand, none of the commercial software titles I bought on tape (1986/87), and none of the compilations of cracks I received (same timeframe, made somewhat earlier) came without a fastloader, – Michael Graf Oct 30 '20 at 15:05
  • WOW, I forgot about fast loaders until just now – Ron Kyle Dec 05 '20 at 00:09
  • @MichaelGraf: Tape-only systems, and consequently tape software releases, remained commonplace in Europe longer than they did in the US, and I think disk drives became commonplace in the US before fast-loaders did. I suspect that if fast loaders had become available somewhat sooner in the US, tape-only systems might have remained more popular here, since a fast-load-equipped tape could load more than twice as fast as many copy-protected disks. – supercat Apr 01 '22 at 15:31
  • @MichaelGraf: BTW, I'm curious to what extent any companies used tape-mastering methods that were designed to resist duplication by conventional means? How common, and how effective, were copy-protected tapes? – supercat Apr 01 '22 at 15:42
  • 1
    According to The 8-Bit Guy's "Commodore History" series, the inefficiency was down to a "not enough time before the deadline to fix it properly" discovery of a hardware bug in the VIC-20's disk drive interface that got fixed by just omitting the shift register and slowly bit-banging the protocol, and the C64 inherited that flaw to retain compatibility with existing VIC-20 drives buyers may already have owned. – ssokolow Oct 21 '22 at 18:15
  • 1
    @ssokolow — I think you're conflating disk and tape loading here. The C-64's and VIC-20's slowness in loading from disk indeed comes from a bug in the 6522 VIA, which was fixed in the 6526 CIA, but the feature not used to remain compatible. However, the preceding discussion was about loading from tape, which, in the 64, is handled by the processor itself, using the $01 I/O-port. – Michael Graf Oct 22 '22 at 11:11
  • @MichaelGraf You're right. My bad for responding when I should have been asleep. – ssokolow Oct 22 '22 at 16:55
26

Yes, cassettes were common, they took ages, and they were error prone.

In Europe, disk drives for the ZX Spectrum and Commodore 64 were uncommon. It's the same for cartridge games for the C64. The market for the 8-bit micros in the 80s in the UK was driven by price, so the cassette interfaces were the majority here. (BBC Micros with floppy drives were common for education.)

As for 'did they actually sell' cassettes - yes, in fact They Sold A Million.

enter image description here

There's at least 3 of these compilations - each compilation's games were chosen as between them they sold at least a million copies.

In this answer, the C64 tape data rate is calculated at 55 bytes per second, giving approximately 15 minutes to load 48 kilobytes. On the Spectrum, a title screen alone (6912 bytes) would take just under a minute (like in this video of Jetpac) to load from tape. (Though to a kid it would feel like forever :) .)

The typical C64 tape interface was a first party Datasette with little user tweaking required. On the Spectrum using an off the shelf tape recorder you'd need to adjust the volume level using trial and error. On both, especially with pirate cassettes there might be an extra bit of calibration required - cassettes recorded on one recorder might not 'like' another.

A View To A Kill is a multiload C64 game (more like a sequence of minigames) and each section has a very lengthy loading time. I haven't measured it but I could accept AVTAK having a combined loading time of 25 minutes.

I suggest you read a magazine like Zzap64 to get an impression of what was available at the time.

user19766
  • 261
  • 2
  • 3
  • 9
    "In Europe, disk drives for the ZX Spectrum and Commodore 64 were uncommon. It's the same for cartridge games for the C64." — This depends very much on the where, and when. It's certainly true for the early years, but from my own memory, everyone who was still using a Commodore 8-bit in Germany in 1988 or 1989 had a disk drive. – Michael Graf Oct 29 '20 at 08:33
  • 4
    "On the Spectrum, a title screen alone (6912 bytes) would take several minutes to load from tape." - No. C64 was notorious for unusually slow (for the period) tape (and floppy!) loading, ZX Spectrum was tolerable - a big game (40KB) took several minutes, loading screen would be 40 seconds or so, – Radovan Garabík Oct 29 '20 at 09:31
  • I remember having ATARI 130XE and disk drive CALIFORNIA ACCESS CA-2001. Some of my friends also had it. It was quite popular in Poland. ATARI is not C64, of course. – dzieciou Oct 29 '20 at 15:07
  • 1
    One thing I find really odd with the C64 is that while programs were stored twice, the loader will often fail if either copy is damaged. Commodore probably didn't want to spent the ROM space for better routines, but it would have been possible to facilitate better error recovery of program files while using a lot less extra tape if programs were divided into blocks, each with its own header and checksum, and after writing the last block, the tape drive paused and then wrote a block with the xor of all the other blocks. If any block fails to load, the C64 could read the... – supercat Oct 29 '20 at 16:22
  • 1
    ...xor block into the space where the bad block should have gone, and then xor that block in memory with the contents of all the others. If the tape is divided into even and odd blocks, and ends with the xor of all the evens and the xor of all the odds, then at the expense of writing two extra blocks to the tape, it could recover completely from the loss or corruption of any two consecutive blocks (or a disruption event that extends between the end of one block and the start of the next). – supercat Oct 29 '20 at 16:25
  • 3
    I dislike this answer for how imprecise it is. E.g., 1 bit of data on ZX Spectrum tape is represented by 1 period of 1KHz or 2KHz square wave. 6912(bytes)*8(bits each)/1000(period of 1 bit, worst case scenario of all bytes equal to 255) gives 55 seconds to download the full screen. The theoretically fastest (full screen of zeros) would take less than 28 seconds. On average you'd expect about 40-45 seconds to load a single screen. – introspec Oct 29 '20 at 16:31
  • 1
    Some ZX Spectrum games also had their own high-speed loader. At least one of them even had a custom lead-in tone, which the regular loader code refused to recognise because of the extra clicks in it. I think it was called "They stole a Million"! – Neil Oct 29 '20 at 23:49
  • Seem to recall that most Ocean games were multi-load, one level at a time.. And if you ignored the "You died, rewind tape to start over" and just let it carry on, it would load the next level anyway – Caius Jard Oct 31 '20 at 13:15
  • Same Jet Pac loading, but using a Sprint cassette player (with the same tape), takes 1 minute. https://www.youtube.com/watch?v=ofBmvjuuIBg – mcleod_ideafix Oct 31 '20 at 13:39
  • @introspec: I wonder if any programs made an effort to minimize the number of "1" bits? If e.g. one were to expand each group of 8 bytes within a program to 9, inverting every byte within the first 8 that had 5 or more bits set, and then using the ninth byte to record which bytes were inverted, blocks that contained only zero bits would take 36ms instead of 32ms, but the worst-case time for 8 bytes would be for blocks containing 32 ones and 40 zeroes, which would take 52ms instead of 64. – supercat Nov 01 '20 at 17:45
  • @supercat, yes, I actually experimented with a simpler idea: I replaced the most common byte by 0, 8 less common bytes by bytes with just 1 non-zero bit, etc. It depends on the frequency distribution of bytes and in my tests resulted in slight reduction of the loading speed, but so slight that I did not even bother to release it. Using a decent compressor definitely seemed to be a more impactful way to reduce loading speed. Your idea seems more solid than mine, although I need to do my own estimates to see how much of a benefit it would give on average. – introspec Nov 04 '20 at 23:05
  • @introspec: Replacing bytes based on frequency is another approach, but that would require having a table of what bytes to substitute. Perhaps the table would be worthwhile; perhaps not. Another approach which may be useful depending upon the quality of the tape deck may be to use more than two pulse lengths, but I don't know how reliably that would be with actual tapes. – supercat Nov 04 '20 at 23:13
  • @supercat, yes, I heard of tape formats like this (I think Russian BK0010 had a format with 4 pulse lengths). In fact, I created a routine with 4 pulse lengths in the 1990s, but because I had not idea how to design it properly, I ended up with the routine that could not read data reliably, at least not with the tape recorder that was available to me at the time. – introspec Nov 05 '20 at 15:27
  • My VIC-20s are unfortunately flaky when use the tape drive; starting and stopping the motor frequently causes a glitch. My suspicion is that there might be a bad caps in the machines' power supply filtering, but I'm not sure. Were it not for that problem, I'd be interested in doing some experimentation. – supercat Nov 05 '20 at 16:11
  • " adjust the volume level using trial and error" - I also remember having to adjust the tape head alignment with a screwdriver whilst listening to the sound in order to get the level right to load many games (ZX Spectrum). – David Waterworth Dec 20 '20 at 02:31
13

TL;DR: Yes, it could take up to 25 minutes (from tape) and it could fail due to many reasons, like record dropout or bad adjusted head.

Long story: It was pretty common to distribute software and games on tape cassettes. Cartridges were rare, much rarer than the cassettes. And it was not only for Commodore - almost every home computer of the early 80s' has the tape deck to load and save software; floppy drives were a little bit uncommon, at least in Europe, especially behind the Iron Curtain.

Cartridges are pretty fast but remember: it is a solid piece of hardware, some ICs on the PCB, so they cannot beat the price of the more versatile cassettes and their manufacturing was much expensive. They were common for game consoles, because of its instant loading time. But in the home computer world (don't forget that all those Commodores, Ataris, Spectrums, etc. were computers, not only game consoles) you need a memory medium, not only the "game load medium". On the other side: it was slow and you have to face "Tape Loading Error" from time to time...

Martin Maly
  • 5,535
  • 18
  • 45
8

As other answers note, the basic tape and disk routines on the C64 were notoriously slow. Commercial game releases usually were on tape, but tended to use a "fastloader" routine to bring the loading times down to something vaguely sane. The loader routine also served as an excuse to display a loading screen and play music while you waited - and some of those loader tunes were works of art in themselves. Many games didn't need to load a full 64KB into RAM before starting. This also tended to speed up loading.

For concrete examples, I timed loading Cybernoid into an emulator, with the "warp load" feature of the emulator switched off so that it ran in simulated realtime. It took about 5m15s until the title screen and music started. This is a game that doesn't have a distinct loading screen and music; it takes about a minute to bootstrap the fastloader, and the rest of the time is spent loading the game proper.

Arkanoid is another famous example that does have a loading screen. The fastloader bootstraps in about 40 seconds, the loader music starts at the one minute mark, and about the next 45 seconds are spent loading the loader screen. In total it takes less than 5 minutes before the loader music changes to the title music, at which point loading is complete, despite the extra time taken by the loading screen.

The Last Ninja actually uses both sides of the tape - it is a comparatively big game for the machine. However, it is effectively several distinct games chained together, so there is a relatively normal loading time at the start, and subsequently after completing each level, each with its own set of loader music. The loader music begins at about 1m10s, and the first level completes loading in 7m30s total.

In short, there's a genuine reason why short 10 and 15 minute tapes - this rating counting both sides - were commonly produced for use with home computers.

Chromatix
  • 16,791
  • 1
  • 49
  • 69
6

Did they actually sell commercial/legal software for Commodore 64 and other early home computers on tapes on shelves in stores? For full price?

I remember that the Oric 1/Atmos had a fast and a slow mode.

Slow mode was 300 bauds. But it wasn't the default. Default was "fast" (2400 bauds). Both modes were built-in (there were slightly faster custom formats but I never saw them in any production)

However, some commercial programs (by Tansoft, mostly) put the fast loading version of the game on one side and the slow loading version on the other side. So it probably decreased the risk of not loading the tape with a bad tape player (there were a ton of them)

But it was dropped gradually. For instance there are 2 versions of Harrier Attack

The Oric-1 version had a tape with 2 fast recordings on side A, and a slow recording on side B, and was labelled "Oric".

The Oric-1/Atmos version only had one fast recording on both sides, and was labelled "Atmos / Oric 1".

I remember that Harrier Attack loaded in around 3 minutes in fast load mode, so more than 20 minutes on slow mode probably (who used that ? :))

Of course if the tape player chewed on the tape, it destroyed both sides so it was unlikely to be safer. The only proper safety was to record software on both sides (fast was okay) just if one side was erased by mistake (because someone disabled the read-only tape safety?)

Cracked copies were always spread in fast mode. And the Oric had no commerical software on disk or cartridge (note: there's an almost-cartridge system now with Erebus card which is able to read tape data from SD card and transfert data through parallel port at lightning speed)

Jean-François Fabre
  • 10,805
  • 1
  • 35
  • 62
5

Loading from cassette was very, very common and the default option for most 8-bit micro owners. The early micros like the C64 were reasonably affordable, and the fact you could hook them up to a regular television set as a monitor and an ordinary cassette deck to load data added to that affordability. Floppy drives were quite expensive and could double the cost of owning a system.

Games took various different lengths of time to load from cassette depending on a number of factors, but each individual game always took the same length of time to load because the cassette ran at a specific speed. Games loaded from the cassette into the computer's RAM so, broadly speaking, the more memory the game took up when loaded, the longer it took to load.

In the very early days of all 8-bit micros, games tended to be quite simple in concept and graphically. Some were designed to fit into far less RAM than your computer had because many micros came with memory options (for example, the Commodore had 16K and 64K models, and the ZX Spectrum 16K and 48K models). Games designed for 16K naturally loaded faster than later, more complex titles that took full advantage of the enhanced machines.

Part of the tape-loading experience was a 'loading screen' - usually a graphical display that you could look at while the game loaded. This had to load and show on the screen before the main game started loading, so this added to the loading time. A few games even had loading music that played while the main game loaded. These things loaded in a sequence, so the loading screen/music would load first and be cleared from RAM by the time the main program had loaded.

As development on 8-bit micros progressed, programmers found ways to make games load faster by coding their own tape loading systems which could receive data faster than the system's in-built method. To make use of this though, the fast-loading system had to load itself first using the system method, and then the rest of the data on the tape would be in the faster format. These systems often had a timer on the screen which counted down so you could see how long the game had left to load. As this later era of software coincided with bigger titles, games could still take some considerable time to load.

Finally, it is worth mentioning 'multi-load' games. These were games that were too big to fit into the memory in one go. Often these were arcade-conversions which had not been designed with small micros in mind. These would usually load the game engine first, then you were asked to stop the tape. Each level of the game would load separately and you were prompted to stop and start the tape in-between levels.

I'd say that 5-10 minutes is probably a more realistic average loading time for a decent game at the height of the 8-bit micro era, but to a child that wait could seem a lot longer which may account for the exaggeration in the song you quoted.

Having games on cassette did make piracy quite easy, but it also kept production costs quite low so arguably there was less temptation to pirate them when you could buy them at an affordable price. Because there was no internet, piracy was limited to copying games from other people you knew which was far more limiting than file-sharing today. The time it would take for a game to copy tape-to-tape didn't put us off. I'd buy 90-minute blank cassettes which I would append newly copied games to. If a friend brought round a new game we'd load it, and then then I'd copy it while we played it.

The line from your song which says "if everything went alright" seems to refer to the fact that tape-loading could sometimes fail. Tapes could get damaged or just degrade over time. Poor quality cassette players could "eat" cassettes - causing the tape to come off the spool and get tangled up inside the deck. Cassette player heads could also be slightly misaligned, and users with persistent loading difficulties were often advised to adjust the azimuth alignment screw which could improve the tone of playback in a way that would be condusive to successful loading. Copied (pirated) cassettes could also be of poorer quality. Some twin-cassette decks available at the time had a feature called 'high-speed dubbing' that copied cassettes at double-speed. I found their games copied this way didn't always load so reliably, possibly because the process left a slight high-pitched whine on the dubbed copy which could interfere with loading.

Astralbee
  • 551
  • 3
  • 12
  • Note that the Commodore 16 and 64 were actually entirely different machines, not just the same machine with different memory sizes. C16 games could not (usually) be used on the C64, or vice versa. – occipita Nov 07 '20 at 07:01
  • 1
    I remember that the ZX Spectrum took six minutes to load the 32 KB Jet Set Willy into a 48 KB machine. Six minutes for a big game loading kind of became an oft-said number in the Spectrum crowd around me. – TonyM Apr 03 '22 at 08:49
  • 1
    'Part of the tape-loading experience was a 'loading screen' - usually a graphical display that you could look at while the game loaded.' On Atari 8-bit systems, the data channel wasn't taking up all the information-carrying capacity of the tape, to the extent that one could have some music or marketing messages recorded on the same part of the tape as the data to listen to while loading. – Daniel Hatton Oct 21 '22 at 21:21
5

Can confirm, at least as a ballbark figure: I remember Impossible Mission taking 15 minutes to load. We just went out in the back yard and played in the meantime, being about 12 at the time.

How did we put up with it? That was just how long it took. We didn't know how fast it would load 30-odd years in the future, so we didn't have that point of reference. I don't remember knowing that cartridges were even available for the C64, though the Spectrum definitely had. Not everything made it all the way out to NZ, back then.

  • 1
    In Dunedin even games on cassette were hard to come by (legally). I recall hiring a lot of games through the mail, and my grandparents in the UK used to post me the odd game and Xmas. – David Waterworth Dec 20 '20 at 02:40
  • Exactly. How did we put up with it? It was the all there was. Floppy drives were unheard of or way out of your average teenager's income range. It's only in hindsight that we perceive that it took a long time. – The Betpet Jul 26 '23 at 13:30
5

The other answers cover the historic reality, but I also think it’s worthwhile to illustrate what were the technical reasons for tapes to be “slow”. Audio tape as a medium is not “slow” and is quite data-dense, compared to what one might think based on what the home micros did back then. Compared to C64’s default rate, the tape can do 4 orders of magnitude better at least!

Primarily, a lot of the information from signal recorded on tape was lost. It was passed to the CPU not as if you had a sound card, there wasn’t a parallel-output A/D converter that would sample the signal from the tape and feed 8-bit values to the CPU. The most popular tape interfaces had a simple analog signal shaper and a comparator for threshold detection. The CPU saw a serial bitstream on some input port. All the information you had left were zero crossings of the audio signal. Some micros probably did things a bit better, e.g. using a low resolution sigma-delta converter that would provide the equivalent of 2-4 bit sampling. It had to be cheap, even 8-bit A/D converters that could sample at kilohertz rates were expensive in the early 80s as well as power hungry, and usually were considered “glam” peripherals rather than something you could waste on tape duty.

8-bit microprocessors used in home micros had no multiplier, and to do the digital signal processing needed to demodulate high density tape data you definitely need lots of multiplications to implement the DSP algorithms. You could definitely hook an 8-bit ADC to a micro and implement a state-of-the-art demodulator system that could offer quite high data rates with error correction - think 1-5kbytes/s on a mono audio tape. Said demodulator would probably run at least 1000x slower than real time, though :( It couldn’t keep up with real-time tape data, and even if a large RAM buffer was available to sample the data, store, and process offline, you’d still get throughput much slower than the “naive” methods allow.

As far as what tapes are actually capable of: with a 16-bit sound card and processing throughput of a 486DX2, you could load 64 kilobytes from stereo tape in 15 seconds or so, with state of the art error correction and so on - that tape could be pretty well mangled, and the head azimuth a bit off, and it still worked. But this is the sort of stuff that even today requires specialist knowledge, and most people who designed I/O for micros of the era did not have that sort of a background. I did a class project very long ago on this and it was lots of work, especially that the access to literature was much harder in the late 90s, so collecting all the necessary bits of wisdom wasn’t easy - and I forgot like 99% of it since then, too :) This problem is harder than what the voice line modems had to cope with: they have a very limited adaptive ability for channel estimation, so if the channel changes too much, they must retrain to re-estimate the channel model, and while they do that, the data transmission is suspended. They also don’t tolerate any sort of timing slips - those usually force a full retraining. With tape you have a time-variable channel whose model you have to continuously estimate and adapt. Then the timing is not constant either, since the tape speed regulation is orders of magnitude worse than the phase stability needed for demodulation of dense data, so you have to do clock recovery and resample the data. All of this is computationally heavy, even in fixed point integer arithmetic. On a “fancy” CISC like the 486, you could run integer processing in parallel with floating point, but this had to be hand-coded in assembly at the time. Tedious stuff.

  • I think a major issue is that the people designing the cassette firmware had no idea about the timing accuracy (wow, flutter, or calibration) of future cassette drives, and thus designed their schemes to work even if tapes were recorded and played back on garbage-quality equipment. I wouldn't be surprised if they wanted to avoid precluding the use of any cheap cassette mechanisms that might become available on the surplus market, especially any that were on the surplus market because their audio performance was intolerably bad. – supercat Feb 06 '23 at 17:13
3

Commercial software was certainly released on cassette tapes. This was a very common practise in the days of early micro-computers since floppy disk drives were very expensive, and some micro-computers did not have floppy disk drive interfaces. For these computers, audio cassette was the only means of data storage.

I can remember having to wait for many minutes for games to load on my BBC Microcomputer (which only had 32 kilobytes of memory). However, I cannot remember the data format or the data speeds, so I cannot estimate the maximum time that you might have to wait for a game to load.

It is possible that on commercial tapes, each block of data may have been recorded more than once for redundancy purposes, and this would slow things down considerably. Also, to keep users amused, a smaller program might be loaded to play music while the main game was loading, and this would extend the overall loading time even more.

Mick
  • 2,829
  • 1
  • 17
  • 19
  • The BBC Micro stored data in 256-byte blocks at 300kbaud or 1200kbaud, though that excludes the block overhead and inter-block gaps, taking the overall speed to about 66 bytes/sec.⠀ Games (and more serious programs) often took several minutes to load (though would never use as much as 32KB, due to the memory needed for the OS, screen memory, &c).⠀ Along with most users I knew, we eventually persuaded our parents to shell out for a disk drive, which improved things tremendously. – gidds Oct 29 '20 at 22:28
  • Some of the later Electron games are possibly closer to 32kb, as they do a watered-dowm multiload; e.g. in Exile and Spellbinder the game is a separate load from the initial menus. Not common though. E-Type might have been a genuine multiloader, my memory fails me. – Tommy Oct 30 '20 at 12:25
3

I don't know if the Commodore 64 used the same tape loader as the Commodore PET. The Commodore PET saved the program twice on tape. On loading, it would load the first image into memory and then read the second image and verify it against what had been loaded into memory. If there was a discrepancy, then you would get a verify error.

So a 25 minute load actually took 12.5 minutes. The rest of it was verifying the image. If there was a verify error, the program would still be in memory with possibly at least one byte being corrupted or a read error or a corrupted verification image.

It was a lot of fun watching engineers look for the eject button for the cassette drives. One guy, possibly an apple user kept typing eject. It was just this look of amazement when you lifted the cover to take the tape out.

We used to use 30 or 60 minute tapes, never anything longer. The cassette motor used to struggle with 90 minute tapes.

Edit Sometimes, these tapes had built in security so they couldn't be copied on the Commodore machines. They would load in two parts - first the security bit and then the rest of the program. If you saved the image in memory, it only saved the second part. If you then tried to load it on another machine and run it, it would fail because the second part would look for the first part, which was missing.

A common way of getting round the security was to do a tape to tape copy on your hi-fi unit with the volume turned right down.

cup
  • 2,525
  • 1
  • 9
  • 21
  • Two variations on your described trick: Snakman included blank screen data as part of the load image, and would refuse to run if the screen contents contained anything other than the word "READY." at just the right spot followed by the word "RUN". The Exterminator checked to ensure that the fourth tape buffer, which held the most recently observed file name held a shifted space character (the file was named THE (shifted space) EXTERMINATOR. – supercat Feb 06 '23 at 17:05
  • What's ironic is that the CBM tape save routines would write out two copies, but almost anything being wrong with the first copy would make the load fail, and anything being wrong with the second copy would make the load fail with no indication of whether the first copy was okay. – supercat Jul 18 '23 at 16:31
2

Yes, although the disk releases here in North America weren't much faster. However with that said, awesome loader music made the waiting time far less painful. Cartridges may have been rare in the UK and most of Europe, however they were quite common in the early days of the computer here in North America. Most of the early Activision games for example were released in cartridge AND disk format. For the record cassette tapes kind of died out here in North America around late 1983-early 1984. I hardly know anyone who used a Datassete or a third party cassette deck here after the VIC-20 days.

Scott
  • 21
  • 2
2

The loading times were initially really long with the VC-20/VIC-20 and C-64, as described. The manufacturers also used special cassettes for this, which were intended for around 15 minutes audio (C15). From the mid-1980s, fast chargers were developed, which were available as hardware versions (chipsets and plug-in modules) or as software versions. A distinction must be made between programs that manipulate the hardware of the cassette and floppy devices (yes, there too!) and the programs that packed the data stream; in addition, several programs increased the data transfer rate. The basics of compressing data also come from this time, which was then called crunching/crushing or packing, called compressing. Many of these methods have been adopted by software vendors, making load times more tolerable, by using a pre-loader

The waiting time was really long at the beginning, but that changed quickly.

dirkp5826
  • 31
  • 2
1

in the very early days of owning commodore 64 (1981) there were hardly any games available and any games had to be typed in from a book and were written in BASIC. Next came games on tape. These were mainly written in the mysterious machine code. Longer running tapes (90 mins or more) could stretch a bit, for example we had a tape with lots of games on and the ones at the beginning of the tape usually loaded whereas the ones later on usually didn't load. Tapes of 60 min length were usually safer. Load screens sometimes with music were sort of slightly later in the tape game loading experience. We had one cartridge (a maze game with a mouse and some cheese) which loaded instantly, presumably it was expensive. Later on in the owning experience came the external disk drive which was of course far quicker and more reliable (mid to late 80s?). As to '25 minutes' I wouldn't say that was not the norm. The longest loading game for tape we had was entirely text based adventure game The Hobbit. This took 15 minutes to load and 'usually' loaded but not always. According to wikipedia, Hobbit was released for C64 in 1984.

0

Common tape formats in those days were c-30 c-60 c-90, where the number is the time in minutes it takes to play the tape. Most games fit on 1 side. Some games used up to 4 c-60 tapes. (The lord of the rings text adventure?) c-90 tapes were rarely used as the thinner tape was more likely to get caught on dust and grease in the mechanism and end up being "chewed" by the playback machine.

suntin
  • 1
  • 2
-1

Telengard was the one that did this for us.

We used to load Telegard on Fridays, and leave the machine powered on all weekend. This game sucked up every byte of RAM.

Will Hartung
  • 12,276
  • 1
  • 27
  • 53
-1

I recall working out my Vic 20 (and C64 I think) actually loaded the program twice, then ran it. I would load it properly, divide the counter by 2, and write that down on the cassette case so I would load just over half, stop the load, run the program (usually a game) and it always worked a treat. So the load time was cut in half. B.

user26681
  • 1
  • 1
-3

Some games, Gauntlet on Atari 800, Lord of the rings on BBC, for example where multiple 90 minute tapes.

suntin
  • 1
  • 2
  • 5
    The size of the tape used doesn’t determine how long the game takes to load. I don’t know about the BBC Micro LotR, but the Atari 8-bit port of Gauntlet fits on a single C60 tape (using both sides). – Stephen Kitt Oct 30 '20 at 13:22
  • 2
    These games loaded in stages, though -- you'd load one part, play through it, then load the next part, and so on. They were big games that didn't fit into memory, which explains why they needed longer tapes. – occipita Nov 07 '20 at 07:07
  • 2
    IIRC, loading Gauntlet from commercial cassette on my Atari 800XL had about a 5% success rate, and on the occasions when it did work, took about 25 minutes for the engine and the first 3 levels, then about another 15 minutes for each set of 3 levels thereafter. (And the RAM capacity of the 800XL was 64kiB as per Q). – Daniel Hatton Oct 21 '22 at 16:07
  • The size of the tape doesn't determine the load time, no. It determines the playback time of the cassette, if it took longer than 15 mins to stream the data then you had to turn the tape over. but yeah if it took 30s to stream the data you had a lot of empty tape.

    Don't really get why this needed elaborating on.

    – suntin Jul 18 '23 at 08:51
  • it's like saying a usb stick isn't 1TB because there's only 3 photos on it... – suntin Jul 18 '23 at 08:58