Damaged Cassettes

In 2020 a fellow HX-20 enthusiast managed to get in contact with Simon Taylor, a developer from the early days of the microcomputer era. While Simon has achieved much in his career, of particular interest to us is that he is the creator of the video game Blitz.

Blitz was originally released for the Commodore VIC-20, however, it was also ported to a number of other systems including the Epson HX-20. This is what my fellow enthusiast and I were looking for and after a period of email correspondence with Simon, he happily agreed to give my fellow enthusiast a copy of the game.

Unfortunately, Simon’s HX-20 was no longer in a suitable condition to use his microcassette backup, so he posted it to my fellow enthusiast to give it a try with his machine. At this point another problem presented itself, the program would not load. We suspected that the age of the tape may have somehow faded the signal to a level that the HX-20 could no longer read.

Luckily I had access to a microcassette player so the cassette was posted to me. We theorised that if we connect the player to a computer and record its output, we would then be able to boost the signal using Audacity.

When it arrived I recorded several copies of Blitz at different volumes for each copy. The microcassette player appeared to introduce a lot of extra noise, but, the real issue was with the 1khz and 2khz frequencies used for the binary code. When recording a program to Audacity directly from the HX-20 you will see perfect square waves of both frequencies at the same height (Figure 1), however, what we saw when recording Simon’s tape from the microcassette player was a bit of a mess (Figure 2).

Program Saved from HX-20, 1kHz and 2kHz square waves
Figure 1
Copy of Blitz saved to Audacity from microcassette player
Figure 2

In Figure 2 the square waves are gone, the 2khz signals are significantly shorter than the 1khz, and some of the 1khz signals have an odd extra noise added to them. Luckily though, when Simon made this tape many years ago he saved the program in triplicate and the third copy of Blitz appeared to be in a bit better shape. Figure 3 is a comparison of the first copy of Blitz vs the third copy, in it the oddly shaped 1khz signals reveal themselves to be a 1khz wave followed by a very small 2khz wave.

Comparison of 1st and 3rd copy of Blitz
Figure 3

In order to fix the recording, I needed to see what a working program should look like when played from the microcassette player. I therefore saved a program from my HX onto a known working tape and recorded that tape to Audacity. Below is the result.

Working copy of program on cassette saved to Audacity from microcassette player
Figure 4

Figure 4 shows a clear distinction between the frequencies. The 2khz waves are still shorter in height (not as much though), but are clearly separate from the 1khz signals. Consulting with my fellow enthusiast overseas, we realised that if we want this program to load we are going to need to alter the 1khz and 2khz waves of the third copy of Blitz so that they are clearly distinguishable from one another. The height of the 2khz waves would also need to be increased.

Since I’m only a casual user of Audacity it took many hours of playing around before working out the best way to achieve what we wanted. Eventually though, I succeeded in achieving our goals (Figure 5 shows the result).

Recovered copy of Blitz from microcassette backup
Figure 5

So I hooked my HX-20 up to my desktop, Entered the LOAD"CAS1:" command and played the recording. It worked! One more part of Epson HX-20 history saved from the dustbin.

Blitz (By Simon N Taylor) – Download

Now, being that this page is meant to be an instruction for anyone else who finds themselves in a similar situation (and not just a happy story) the following steps outline what I did to recover the program from start to finish.

How to Recover Program from Damaged Cassette

  1. Ensure that you have the following equipment. Microcassette player with audio-out jack, audio cable of appropriate size (usually 3.5mm), computer with appropriate audio-in port and installation of Audacity.
  2. Press the record button on Audacity and then play the tape. When you can see the program start playing on screen, adjust the volume on the microcassette player till it is at the 0.5 – 0.75 level on the Y-axis in Audacity.
  3. Stop the tape and the recording on Audacity. Rewind the tape and record the whole program this time without changing the volume.
  4. You may want to record several copies. Maybe while also changing the volume a little each time. Some of the copies might be better than others when it comes to repairing them in Audacity.
  5. With the program now recorded in Audacity, the repair process can begin. zoom in until you can see the individual 1khz and 2khz waves.
  6. Now select the “Effect” menu and then “Amplify..”. Make sure that the “allow clipping” checkbox is checked and that the “Amplification (dB)” is set to a positive value (+5 is a good start point).
  7. After the amplification, the 2khz waves should have become taller and it’s possible that the 1khz waves have grown so large that they have been clipped. The goal of this amplification is to increase the 2khz waves to a point that they are visibly discernible from the 1khz waves.
  8. If it looks like the 2khz waves are still too small you can repeat the amplification again. I kept repeating until the smallest 2khz wave I could find was tall enough to be at about 0.8 on Audacity’s Y-axis. By this point all of the 1khz waves had been clipped and even some of the 1khz.
  9. With all the amplification the recording will now be too loud for the HX-20, it will need to be reduced down to the 0.5 Y-axis level. To do this, select the “Effect” menu and then “Limiter..”. Set the drop down box to “hard clip” and the “Limit to dB” to -6.5.
  10. The record should now be around the 0.5 level and will have a square wave look to it.
  11. You can try loading the program onto your HX-20 directly from Audacity or it can be exported as sound file of your choice. If it doesn’t work the first time adjust the volume of your computer’s audio output to different levels. If it still doesn’t work it is likely to be a different issue than the one I had and therefore this process will be ineffective at recovering your program.