The Great Sega SC-3000 / SC-3000H Tape Restoration Project


Index

Remastered / Released SC-3000 Tapes

Remastering Techniques


What is the Sega SC-3000 Tape Restoration Project?

Aerobat Part B, original tape waveform
Note background noise and variation in amplitude

The Sega SC-3000 was launched in 1983 by Sega in Japan and was distributed in several overseas countries. But its biggest success outside of Japan was in New Zealand and Australia where a good local community of user groups and developers supported the platform with locally produced software on tape and disk.

The SC-3000 Tape Restoration project has two purposes:

Aerobat Part B program name original waveform
Note background noise and variation in amplitude

We have a large stash of old original audio recordings of Sega SC-3000 tape software. Some of this audio is heavily degraded, but with a bit of maniuplation it can be made to load on a real SC-3000 or an emulator like MESS.

Unfortunately this software has never been widely distributed, largely due to the large size and condition of the audio recordings. (You do the math - one minute of 16-bit 44.1KHz mono audio takes up about 5MB of disk space).

The original 16-bit 44KHz audio is full of distortions and random noise, so it does not compress very well (perhaps 5% max). And you don't really want to use MP3 type formats for use with emulators. Check out the images to the right to see what we mean. You can see background noise even during 'silence', and there are amplitude and frequency variations right throughout the recording.

Aerobat Part B MESS waveform
Note no background noise or variation in amplitude

However, if you load the original audio into an emulator like MESS you can create a perfect waveform copy using a tool like SegaWAVWriter or the MESS tape recording emulation.

That is HIGHLY compressible. Like 50:1 to 100:1 compression.

eg. the 16-bit 44KHz audio for Bastow Manor is about 31.7MB in size. But if you compress it with WinRAR, that drops to 421KB. That is a compression ratio of 75:1.

We've always wanted to clean up and release the old Sega tape software. That is actually what led to the development of the SC-3000 Multicart. And that is a truly awesome way to experience tape software as it should be - with instant loading on original hardware.

Unfortunately this is a very time consuming hobby. And real life is very busy. So I'm going to try to do say 1-2 releases a month for the 2015. And I'll try to document some of the more interesting techniques used in the game copy-protection / loader techniques along the way.


What is the Sega SC-3000 Bitstream .bit tape format?

Back around 2009, Francesco, one of the founders of Sega SC-3000 Survivors came up with a simple tape format called Bitstream for representing recorded Sega SC-3000 tapes for playback and possible use in emulators. sc-3000.com has a very cool Flash based Bitstream tape player that will play these files back via your computer's headphone jack so you can load them on a real SC-3000.

Some time between 2012 and 2015, support for the Bitstream format has been added to MESS. v0160 of MESS will load SC-3000 tapes in the .bit Bitstream format. So by default that becomes the standard SC-3000 tape format and we will generate .bit files as well as remastered .wav files.

The bitstream format is VERY simple, because 99% of Sega audio recordings are very simple. All of the available commercial software used the Basic IIIB ROM tape routines, or at least parts of them. So the format only has to be able to represent three states ie. SILENCE, BIT VALUE = ONE, BIT VALUE = ZERO because the BasicIIIB ROM treats a single 1200Hz cycle as a zero, two 2400Hz cycles as a one, and anything else is effectively silence or bad data.

Note - this means that the Bitstream format is suitable for playback only, not for recording in MESS. The actual Sega SC-3000 hardware can read / write far more precisely than using 1200Hz / 2400Hz tones, so this tape format can't represent everything a real SC-3000 can do like using different tape encoding schemes (eg. Michael Hadrup's Load / Save / Verify extensions), or sampling 1-bit digital audio. But that's ok, because in practice there aren't any significant examples of that on the SC-3000, and you can still use a WAV file if you have something with a different encoding scheme.


Bitstream v1.0

This is Francesco's original Bitstream format and it is supported by MESS v0160 and later.

It is a binary file where each byte is used to represent a single data bit or 1 / 1200th second of silence:

Here is an example for the following simple Hello World Basic program:

10 REM Hello World Program

20 PRINT"Hello World"

Download the Hello World Bitstream v1.0 example here

That has 1 second of silence at the start and the end. Remember, a space char is 1/1200th of a second of silence, a '0' char is a single 1200Hz tone, and a '1' is two 2400Hz tones.

You can try loading it in Sega Basic IIIB with MESS v0160, or just look at it in a Hex Editor to see the content. You can also view it with a text editor, but everything appears on a single line so you will have to scroll waaaaaay over to the right to see anything.


Acknowledgements

The tape restoration project has been many many years in the making, and has built on the work of a lot of individuals.

We'd like to thank:

Aaron a.k.a. Holmes for spending countless hours collecting and archiving audio recordings, documentation, original hardware and software, and tape covers over the past 20 years.

Kerrjnr for the excellent SegaWAVWriter utility

Francesco for building sc-3000.com, kicking off the Bitstream format, and providing inspiration and passion

The crew at smspower.org for keeping the Sega 8-bit flame going and providing resources, help, and encouragement. Maxim, Bock, and Charles McDonald provided a lot of valuable insight early in the Multicart Project

Cheers,
Nick

SC-3000 Survivors Tape Restoration Project

Disclaimer

Titles released by the SC-3000 Survivors tape restoration project may contain copyrighted material. We do not hold any rights to any of this material. The purpose of the tape restoration project is to preserve old and forgotten software for the Sega SC-3000. If we don't, then these titles will likely disappear forever.

So drop your pitchforks, fire up the 1980s sweetest home computer, and enjoy :)


The Secret of Bastow Manor... 16 April 2015

The Secret of Bastow Manor Tape Cover

Title: The Secret of Bastow Manor (1984)

Author: Softgold / Gameworx / Darryll Reynolds (Australia)

Platform: Sega SC-3000 16K / 32K

Distributed by John Sands / Dotsoft

In some ways, Bastow Manor is an odd choice for the first release from the tape restoration project as I've never played it. You can thank Tycho from the SMS Power forums for that for pestering me to make the Softgold software available :) But is was also a good choice as it uses one of the simpler remastering techniques - using the MESS tape emulation to record a clean copy of the audio.

The Secret of Bastow Manor is a text / graphic adventure. This genre was popular back in the early days of home computers as they were easy to write and (if done well) surprisingly addictive. They can also be mind numbingly frustrating :)

SegaRetro have a good overview page on Bastow Manor here

Cassette cover text

The Secret of Bastow Manor

You stand on the misty moors outside the walls of the Bastow Manor.

Old man Bastow has disappeared, or so the story goes, leaving rumours of his great wealth hidden somewhere in the Manor.

The baying of the hounds from behind the walls brings to mind tales of wandering ghosts and hidden traps.

Can you find the Treasure, solve the mystery.

...... and live!

Overview

Some common commands:

G: List all obvious exits from current room

I: Inventory - list all items in pack

L: Look for anything interesting in current room

To move North, South, East, or West you just type the first letter. eg. to go North, type N

Use two word commands like GET LOOK GO CLIMB etc.

eg. GET BOOK

Loading Instructions

Bastow Manor has 5 parts. They were originally recorded in sequence on a single-tape, but we have broken these out into 5 seperate WAV files for you. These will work on an original Sega SC-3000 or in an emulator like MESS.

Type LOAD and press CR.

Part 1 is an auto loader. As soon as it loads, type RUN.

You can then immediately load Part 2.

Whenever the program is ready to load the next part you will be prompted to press play on the tape and load the next section. It is written this way to allow a reasonably large game to fit onto a 16K Basic IIIA cart.

Note - you can NOT load the parts out of sequence due to copy protection / code hiding to stop you from listing the basic program.

HACK!

Well... you kind of can actually if you use this little hack :) Only do this out of interest. If you want to play the game I suggest you do it normally as above.

Load any one of Parts 2-5 using the LOAD command. After it has loaded type:

POKE &H8160,&H01 (then press CR)

You can then list the basic program and run it. The code hiding works by putting a binary zero in front of the basic program. The initial loader in part 1 actually copies some machine code to the top of memory that calls the Basic IIIB load routines, then copies all of the Basic program one byte lower and adjusts the end of Basic pointer at $8162 so it is runnable. So you don't need to do any of this to play the game

Note - I don't know for sure if this will let you play the game correctly out of sequence. In particular I'm not certain if the game stores inventory between loading the sub-parts of the game. But it illustrates one technique for stopping people from easily listing the Basic program to cheat :)


Vortex Blaster... 16 April 2015

Vortex Blaster Cassette Inlay

Title: Vortex Blaster (1984)

Author: Trident Technological Systems (Sydney, Australia)

Platform: Sega SC-3000 32K only

Distributed by Poseidon Software in New Zealand

Vortex Blaster was an easy choice for the second release. It uses the MESS tape emulation to record a clean copy of the audio, so it was easy to remaster. It is a very playable shoot'em'up, and it is one of only two SC-3000 titles to use digitized voice. Oh, yeah :)

Note that Vortex Blaster is available on the SC-3000 Multicart.

Cassette Inlay Text

Mission Objective:

Penetrate 5000 Microns of the enemy's vortex field. Reach command centre and destroy it. How far can you penetrate?

Important points of play:

Enemy defences will try to eliminate you as you penetrate deeper into the field. You must keep an eye on your energy banks at all time. If your energy banks should become depleted then you will lose control of your craft. If however they are at a very low level, then your craft will become unstable and very hard to pilot. To recharge your energy banks you must destroy the enemy fuel depots. You will start the game with 1 ship and a shield level of 3. You will receive an extra shield at every 10,000 points. The game ends when your energy banks are depleted or when you have no shields left. Each time you are hit your shield level will drop by 1. When your shield level reaches zero your craft will be destroyed. Running into the vortex field will destroy your craft and end the game.

How to play:
Use the joystick to control your craft's direction and firing. OR use the keyboard controls:

D - move left
F - move right
UP - move forward
DOWN - move back
INS/DEL - fire lasers

Overview

Vortex Blaster is a good vertical scrolling shooter. It was also the first SC-3000 game to feature digitized speech, which was very exciting for a 10 year old kid :) This is a 32K only game.

Grab your joystick and start blasting. Just be aware that your lasers will overheat if you try to blast too much, so you may need to be prepared to dodge some of the enemies instead of shooting them.


The House... 19 July 2015

The House Cassette Inlay

Title: The House (1984)

Author: Michael Howard

Platform: Sega SC-3000 16K / 32K

Distributed by Grandstand Leisure Ltd in New Zealand

The House also uses the standard Basic IIIB load / save routines with a full tape header, so we used the MESS tape emulation remastering technique to record a clean copy of the audio.

It has simple copy protection built into the filename though. There is a hidden binary zero in the tape filename. So if you resave it without that hidden character, then Part 1 of The House loader will display a copyright statement instead of executing the loader.

Note that The House is available on the SC-3000 Multicart.

Fun Fact: This is a classic case of embedding machine code inside DATA statements in a Basic program. But because the initial Basic program is relatively slow to run, it takes 45 seconds or so to read the DATA statements and store the machine code at an address higher in memory. These are then available for use by part 2 when the second half of the game has loaded.

Cassette Inlay Text

Grandstand-Sega

The House

Graphic adventure game: Time is running out.

You've got to find the crucifix and hunt down Vanessa the Vampire then kill her (before she or the Purple People eaters kill you!).

Overview

Note - you will need a joystick to play this game.

This was Michael Howard's first major game for the Sega SC-3000 (the other being Help!).

Michael Howard was employed whilst studying at Auckland University by Grandstand Leisure Ltd as their Sega specialist doing programming work and providing tech support. He also wrote a number of articles and programs for Sega Computer Magazine, and wrote the books "Teach yourself Basic Games Programming" and "More than 50 Programs for the Sega SC-3000!!"

The House gameplay is pretty simple. Move 'Siddy Superspook' through the rooms of the house picking up gold, fighting Purple People Eaters, and trying to find the Crucifix before you find Vanessa ze Vampire.

(See inside the zip file for full instructions.)

You can see his distinctive sense of humour throughout the game, as well as (it must be said), his lack of spelling and grammar checking :)

As a side note, The House and Help were copied on the most god-awful high speed tape duplication machine by Grandstand Leisure Ltd. Consequently you would have to try about 10 to 15 times to get the tapes to load. I still have nightmares about that.

Finally, I'd just like to say this is one of the most awesome SC-3000 title screens :) I love the witch and the ghost.


Help (The Crazy Crypt)... 19 July 2015

Help Cassette Inlay

Title: Help (The Crazy Crypt) (1984)

Author: Michael Howard

Platform: Sega SC-3000 16K / 32K

Distributed by Grandstand Leisure Ltd in New Zealand

Help also uses the standard Basic IIIB load / save routines with a full tape header, so we used the MESS tape emulation remastering technique to record a clean copy of the audio.

It has simple copy protection built into the filename though. There is a hidden character in the tape filename. So if you resave it without that hidden character, then Part 1 of the Help loader will display a copyright statement and reboot the system instead of executing the loader.

Note that Help is available on the SC-3000 Multicart.

Fun Fact: This is a classic case of embedding machine code inside DATA statements in a Basic program. But because the initial Basic program is relatively slow to run, it takes 45 seconds or so to read the DATA statements and store the machine code at an address higher in memory. These are then available for use by part 2 when the second half of the game has loaded.

Cassette Inlay Text

Grandstand-Sega

Help

On a routine geological survey, you are abducted by a gang of purple people eaters, and sentenced to a journey through the crazy crypt.

If you can walk from one end of the crypt to the other and not die, you are set free!

An exciting, crazy family game that will keep you going for hours.

Overview

Help is an unusual combination of general knowledge, fast reactions, arithmetic, memory, geography, and luck.

This was Michael Howard's second (and final) major game for the Sega SC-3000.

Michael Howard was employed whilst studying at Auckland University by Grandstand Leisure Ltd as their Sega specialist doing programming work and providing tech support. He also wrote a number of articles and programs for Sega Computer Magazine, and wrote the books "Teach yourself Basic Games Programming" and "More than 50 Programs for the Sega SC-3000!!"

Help is an unrelated sequel to The House. The only real link is his use of Purple People Eaters (PPEs). You may get eaten by one occasionally.

You can see his distinctive sense of humour throughout the game, as well as (it must be said), his lack of spelling and grammar checking :) The title screen is suitably funky, and he uses simple little sprites and a lot of text mode in this game.

It actually quite playable for a simple game, and it is very hard to get through to the other side of the crazy crypt. The Grandstand tapes were also duplicated on a high speed tape duplication machine, and the audio quality was terrible. So it would usually take about a dozen attempts to get this tape to load. If you were lucky.

Every step you take through the crazy crypt gives you a chance of running into some of the weird and dangerous inhabitants of the crypt. Here are some of the residents you may meet.

Merlin the Cat
If you manage to move 6 steps without meeting anyone, Merlin sends you back to the beginning. (Note - Michael Howard's cat was named Merlin)

Mr Shaw the Crazy Chemist (multi-choice)
I'll give you the name of an element What's it's chemical symbol?

Maths Mad Nick
What is the answer to the following sum? You only have 10 seconds to answer (you have to add up a sum of approximately 6 to 8 numbers)

Bill the Bookworm (multi-choice)
I'll name a famous book and you tell me who wrote it

Charlie the Crusher
Guess his chosen letter or get squashed (By a size 13 boot!) (This one is luck - you have several chances to guess the letter before an animated boot drops down to squash you.)

Revenge of the Purple People Eaters (luck - 33% chance of dying)
Behind one of the doors is a PPE Choose the right one and get chomped!

Dastardly Dictionary Dick (multichoice)
I'll give you a word you tell me its meaning

Mary the Manic Memory Tester (memory)
Memorize her word to pacify her Or else!! (A random collection of letters appears on screen for a couple of seconds. You must memorize and repeat them.)

The Egotistical Gorilla
Tell him his name or he will rip you to bits!! (His name displays somewhere on the screen for a fraction of a second. You must type it in.)

A volley of poisoned arrows (luck)
sit tight and hope that none of them hit you! (A little picture of you sits in the middle of the screen as poisoned arrows rain down. If you are lucky they miss you).

Annie-with-the-Atlas (multi-choice Geography)
I'll name a country & you tell me what the capital city is

Ross the Racey Driver
Drive his Anglia through the flags without hitting any

This one is crazy hard and it always used to kill me as a kid. Use up / down cursor keys and the car drives from right to left on the screen. So look towards the left of the screen to see what is coming. Actually... I'm not certain that this one doesn't reverse direction occasionally. Anyway - good luck :)


Dungeons Beneath Cairo... 27 August 2015

Dungeons Beneath Cairo Cassette Inlay

Title: Dungeons Beneath Cairo (1984)

Author: Scorpion / Andrew Flexman and David Harvey

Platform: Sega SC-3000 32K Only

Distributed by Sega Software Support in New Zealand

Dungeons Beneath Cairo required some more advanced tape remastering techniques to record a clean copy of the audio and get around the copy protection.

Cassette Inlay Text

AN AMAZING ARCADE GRAPHIC ADVENTURE STRETCHING YOU AND YOUR SEGA TO ITS LIMITS. YOU PLAY THE ROLE OF MIGHTY THOR WHOS MISSION IS TO DELVE DEEP BENEATH THE MYSTICAL PYRAMID, DOWN INTO THE MIRKY DUNGEONS UNDER CAIRO WHERE YOU MUST RETRIEVE TUTANKHAMINS MAGIC STAFF. WHILST SEARCHING THE CATACOMBS YOU WILL DO BATTLE WITH GHOULS, VAMPIRES, SWORDSMEN, DRAGONS, DIRE WOLVES, DARK WARRIORS AND ASSASSINS (TO NAME A FEW !). WARD THEM OFF WITH MAGIC SWORDS, MAGIC SHIELDS, POTIONS AND NUMEROUS OTHER SPELLS

Overview

Dungeons Beneath Cairo is another classic example of 1980s NZ development. Who didn't want to play a bit of D & D, rack up some XP, and slay some monsters back in 1984?

Give the game a chance. Despite its simple looks, it will give you a good hour or two of game play to beat it even when you know what you are doing.

From memory, the best tactic I had as a kid was to avoid fighting just about everything from level 8 or 10 downward because the tougher monsters would kick your ass :)

Note - you will need a joystick to play this game.


Remastering Technique 1: Using MESS tape emulation to record

The MESS emulator has excellent emulation of the Sega SC-3000 tape hardware, and it is surprisingly good at accurately loading even quite badly damaged audio. Often original audio recordings can be loaded with no modification or just a 1 KHz High Pass filter passed over the audio (use Wavepad or Audacity for cleaning up your source recordings).

MESS also lets you create a new tape image, type SAVE in Sega Basic, then start recording to get a perfect audio copy of the data.

"Well, how easy!", I hear you say. End of the lesson. Not quite :)

MESS Tape Play / Record options (Devices menu)

Many SC-3000 tape titles have multi-part loaders with custom load routines, or they have copy protection built in that uses hidden characters in the tape file names which you can't easily reproduce with the SAVE command. But here is a trick that works for all tape software that uses the full Sega Basic Load routine (ie. the full program name header followed by tape data). It just so happens that Bastow Manor uses this technique, so it is easy to remaster this software with MESS. This technique won't work with something like Sir Roderick's Quest.

  • Use MESS to run Sega SC-3000 emulation with the BasicIIIB Rom
    Note, I use MESS v0136 with the MessUI. This should work with current versions of MESS, but the MessUI is now a seperate project so you have to find and download that seperately.
    In your SC-3000 properties, tick Display->Run in a Window, Miscellaneous -> Use New UI
  • Type LOAD (CR) and play your tape image to load the software (see MESSUI Devices menu)
  • Unmount your tape image (see MESSUI Devices menu). Create a new tape image to save to. This will create a new empty tape file ready for recording.
  • Saving back to Tape with MESS
    Paste the following into MESS. This copies the file name we just loaded from $82A3 across to the SAVE file name location at $83A3

    A=0:FOR X=0 TO 15:A=PEEK(&H83A3+X):POKE &H82A3+X,A:NEXT X
    (then press CR)
  • Paste the following into MESS
    CALL &H7A40
    * Saving start will appear, and press record on your tape image (see MESSUI Devices menu)
  • Wait for * Saving end to appear, then press Pause / Stop on your tape image (see MESSUI Devices menu)
  • Unmount your saved tape (see MESSUI Devices menu). You now have an exact clean copy of the program you just loaded, including the exact file name with any hidden special characters.

This technique works for

  • ALL single-load tapes
  • Any multi-load tapes that use a full basic header / data block for subsequent loads. The easiest way to recognize these is if you hear the beep for Loading start followed by beep beep for Loading End. You can then manually LOAD / SAVE the blocks.

You need more advanced techniques for remastering multi-part games that just load arbitrary blocks of data (like the Michael Boyd games). I will cover some of those next month. But the above technique will let you do a lot of your tapes if you want to.


Remastering Technique 2: MESS Debugger + SegaWavWriter - Dungeons Beneath Cairo

Dungeons Beneath Cairo has a two part loader. The first SC-3000 loader always uses the standard Basic IIIB tape format, but it has a hidden character inside the first filename which is checked when loading the second half of the tape. So I used MESS and Technique #1 above to remaster the first half.

Andy Flexman had used a partial loader for for Part II, so I used Andrew Kerr's Awesome SegaWavWriter v2.1 to create the audio for that. The second part of the loader expects a standard Basic IIIB data block without the filename header field on the front. So I just had to take the binary for the second part of the audio, stick a dummy filename header on it, create the audio, then remove the header block and splice it onto the remastered Part I with an audio editor.

If you're interested, this is how the Dungeons Beneath Cairo program code / copy protection works.

Dungeons Beneath Cairo Part I obscured Basic program listing

Andy had used a fairly standard code hiding technique. The start of the program (part I) when listed only shows a description rather than any program code.

DBC Memory Dump of start of Basic program listing

Here is a memory dump. At $99E1, Andy had embedded $00 which stops the rest of the program from being listed. Type POKE &H99E1, &H25 then you can list the program.

DBC listing the hidden Basic program line 1220

Then line 1220 is responsible for copying the second part loader to high memory. But that is also hidden because it has three $15 characters embedded at the end ($15 is something like clear line - I can't remember exactly what, but it wipes the listed line from the screen). You can list it like so:

POKE &H9D17,&H20
POKE &H9D18,&H20
POKE &H9D19,&H20
LIST 1220

This is the machine code that line 1220 copies to $FFC0 which loads part II from tape. You can see how it looks for a specific hidden byte from the filename in part I (that is still in memory because we skipped the header load when loading part II). But because we used that little basic script above part I will have the correct file name, so everything is good :)

/*
; here's the original code that line 1220 copied to FFC0 for reference
FFC0: F3 di
FFC1: 3E 9B ld a,$9B
FFC3: D3 DF out ($DF),a ; disable keyboard again
FFC5: 3E 00 ld a,$00
FFC7: 32 E2 97 ld ($97E2),a ; dunno...
FFCA: 11 EE 27 ld de,$27EE ; set the number of bytes to load because
; the part II loader does NOT have a header
FFCD: CD 82 79 call $7982 ; call load from tape
; skipping the header load
FFD0: 3A AB 83 ld a,($83AB)
FFD3: FE 1C cp $1C
FFD5: 00 nop ; copy protection - look for specific custom byte
; in file name
; cute - because we skipped the header load,
; the original file name from part A is still
; in memory here (hidden character in original filename)
FFD6: 20 FD jr nz,$FFD5 ; if byte is wrong, then loop forever
FFD8: CD 37 6C call $6C37 ; call the run basic program routine
*/

I used the MESS debugger to stop at $FFD0 after loading part II. You can then save the binary data down to disk in the MESS debugger like so:

save dbc_partII.bin, 9800, 27ee

Then you can use SegaWavWriter to generate clean audio for part II from the dbc_partII.bin file you just saved.

I can clean up all of the tapes using variations on those techniques provided I can get the audio to load in MESS.

I will run through the SegaWavWriter options in a later tutorial.