Tape To Disc Conversion
Episode 17 contains a feature about transferring games from tape to disc the modern way.
This feature accompanies the episode and includes code snippets not shown in the video.
For those lucky enough to purchase the Spectrum +3, it would seem the days of slow tape
loading were over, with Amstrads decision to replace the cassettes deck, as seen in
the +2, with a 3 inch disk drive.
However, as with any new media format, and like its predecessor the Microdrive, the
hardware was only half of the story. To make it work you had to be able to get your
existing software collection onto those new fast discs.
Because of software piracy however, tapes had increasingly sophisticated protection
schemes on them making the task of transfer seemingly impossible. It was hard
enough to even just load the tapes sometimes!
Like the Microdrive, as the unit became available, a host of transfer
options began to open up, the best was the Multiface 3. A hardware plugin that
allowed users to freeze and save the game to disc quickly and easily. But for
those without this unit, the only option, at least in the 80’s, was a
software transfer utility.
There were several of these on the market, but after trying several with no success,
I had to turn to more modern methods of software transfer. After trying a few
options I found two to be satisfactory, however none are straight forward and I
think there is hole in the market for a nice Windows tool to do it all for you.
To transfer 48k games to disc you will need the following software;
- A spectrum emulator.
- Snap2Tap – a utility that converts SNA files into compressed, single loading TAP files. (look on the World Of Spectrum website for this.)
- TAP2WAV – A utility that converts TAP files into WAV files. Or a tool to directly play TAP files. (look on the World Of Spectrum website for this.)
- Something to play the WAV files and possibly to adjust it – like Audacity.
- A little knowledge of BASIC.
The process has a few steps, but once you get used to it, it can become very quick. Using this method I managed to get
about ten games on each side of disk plus a little loader program.
First choose your game. For this feature I am going to use Chuckie Egg.
Next load the game into the emulator. At a point in the game where the screen is cleared,
usually after dying or just before the main intro screen, pause the emulator and save the
game out as a SNA file.
Load up SNAP2TAP. Set it for a blank screen – this reduces the size of the overall finished
game and stops screen corruption when loading.
Drag the SNA file into it.
You will now have a TAP file containing a compressed, single load version of the game.
If you can play this TAP file and load it into your real Spectrum +3, you can jump ahead – if it
won’t load then you will need to convert it into a WAV so you can ramp up the volume a bit.
Using TAP2WAV, convert it and load it into your audio editor, ramp up the volume and either save it,
or try loading it from there. When you get it to load, you are ready for the next stage.
On the real Spectrum with a formatted disc, go into +3 basic… set the Spectrum to load from
TAPE by entering LOAD “t:” and pressing enter.
Merge the loader from the TAP file so you can see the listing.
It will look like the code below (the addresses will be different as these are based on the memory the
game uses, in this particular case it is for Chuckie egg.)
10 CLEAR VAL “54554”: LOAD “v2” CODE: RANDOMIZE USR VAL “54555”
Now we need to make a few changes. I usually set the colours, clear the screen, print a press any key
message and add a pause. This is to allow the drive motor to stop – otherwise the game will run and
the drive motor will keep going! It is also important to remove the randomize line, and change the
code load to the name of the game file. In this case PART2.
Your listing will now look like this.
10 BORDER 0: INK 4: PAPER 0: CLS
11 CLEAR VAL “54554”
12 LOAD “egg2” CODE
13 PRINT AT 10,8; “Press Any Key”
14 PAUSE 0
20 RANDOMIZE USR VAL “54555”
Notice the name of the code to be loaded – in this case egg2, but you use
whatever you need. Just make sure you remember it.
Now, set the Spectrum to use the disk drive (enter LOAD “a:”) and save this,
making it auto run by using SAVE “egg” LINE 0
Once saved go back to the code in the loader and remove all of the
code below line 12, leaving just lines 10,11 and 12.
Set the Spectrum to use the Tape again. (LOAD “t:”)
Run the program – this will now load the code.
Now, set back your Spectrum to use the disk drive again so we can save out the
second part of the game to disc. Before that though, we need to get the size and
address of the code. In the emulator, drag the TAP file into it and look at the tape
browser. Here you will see the second part of the game code, its loading address and its
size. Note these down. Use these settings to save the code to disc using the name you
entered into your loader. For example:
SAVE “egg2” CODE 54555,10981
Notice I saved the code as egg2, the same name used in the initial
loader – very important!
That’s it. Now have your first game converted to disc.
To test it, reboot your Spectrum and load part one.
Once you have a few games on disc, you can write a simple menu program that auto loads and
offers you a choice of games. To do this, write a small basic program like the one
below, that lists the games and gives a key to press for each one.
10 BORDER 0: PAPER 0: INK 4: CLS
12 PRINT AT 1,8; “GAME DISC”
14 PRINT AT 3,10; “1 - CHUCKIE EGG”
16 PRINT AT 5,10; “2 - SPACE RAIDERS”
18 PRINT AT 7,10; “3 - PLANETOIDS”
50 PAUSE 0
52 IF INKEY$=”1” THEN LOAD “EGG”
54 IF INKEY$=”2” THEN LOAD “SPACE”
56 IF INKEY$=”3” THEN LOAD “PLANET”
60 BEEP 0.5,1
62 GOTO 10
Of course you can change the colours and positioning for your own personal tastes.
Now save this to disc using SAVE “DISK” LINE 0
Now, reboot your Spectrum and just hit return.. there you have a game selector
that loads your games. As mentioned before, it’s a pity that SNAP2TAP only works
with 48k games, but at least it works.
This feature was taken from Episode 17.