- [Synth Voice] Ghostbusters!
(synth laughing)
- It's ghost, not toast.
Oh, hello, Chip Dippers.
Welcome to another Quick Bytes,
a portion-controlled Retro Recipe
without the usual bells and whistles.
Not that you could eat a whistle, but...
("Ghostbusters") (whistle tweeting)
Thank you.
Now, one of my enduring memories from childhood
was how on Earth the game "Ghostbusters"
was able to remember your name and account balance
from any computer anywhere in the world.
I mean, this was pre-internet.
So what was this witchcraft?
Or ghost craft, I guess you could call it.
Now, the game was released in 1984 by Activision
and coded by the legendary David Crane.
He made the whole game in just six weeks,
which is just mind blowing.
- [Synth Voice] Busters!
(synth laughing)
- The game begins with a screen which has no playability.
It's the title page, and if you watch for a little bit,
we'll find a little bouncing ball comes along the screen,
and you can sing along with the game.
If you don't feel like singing along,
or if you don't have a crowd in your living room
to yell "Ghostbusters" at the appropriate time,
the machine will do that for you.
- [Synth Voice] Ghostbusters!
- So who am I gonna call?
Yep, I spoke to the legend himself
for the making of this very video.
(serene piano music)
Here's what he told me.
"I was already well into production
on an original game 'Car Wars.'
In that game, you customised your car with weaponry,
and it had an account system
to let you preserve your balance
from one game session to the next.
I read the 'Ghostbusters' script
and decided to see if it might be possible
to put 'Car Wars' into the 'Ghostbusters' universe.
The best strategy for designing a licenced game
is to design an original game that would stand alone.
I re-tasked the customization
and driving aspects of 'Car Wars.'
Instead of machine guns, you added vacuums and traps.
And the top down battle view changed
to driving around vacuuming up ghosts.
The film was an instant hit,
so I ended up looking like a genius."
We'll see just how that account system works in a second.
And I told David that, when I was 11,
I actually got the game for Christmas,
although I knew I was gonna get it
'cause I had very naughtily felt my presents.
Obligatory "Star Wars" reference.
(lips kissing) Thank you.
And actually, here's a funny story that I relayed
in one of our lockdown live streams
about, well, the longest 48 hours of my life.
I really wanted this for Christmas. I think I was 11 or 12.
I think I have a picture of a baby Fractic there.
I was so excited. I never wanted anything more.
I opened it up on Christmas Day,
ran upstairs after we finished the presents,
tried to load it, and of course,
the good old Datasette, which I have here,
and it kept getting stuck at the final flashing,
you know, decompression stripes.
I was trying to align the head, so I cleaned the heads.
Instead, I played with my bike,
'cause I couldn't get it to work.
Of course, Boxing Day, Smith's was closed,
so I had to wait two whole days.
I know this is a bit of a white whine.
Finally took it back to Smith's.
Turned out there was a faulty batch that'd been produced.
Shame on you, Activision.
Finally came home with this working copy,
and it loaded the first time.
So, those loading stripes,
they are indelibly burned in my brain,
the sequence, the exact sequence, 'cause I watched that
probably a hundred times on Christmas Day
And I actually asked David Crane
if he knew about that quality control issue.
Here's what he said.
(funky vaporwave music)
But yeah, when I finally got a working copy,
I was amazed when I completed the game.
She was amazed too.
It actually gave me an account number
that would restore my bank balance,
even after the computer was reset.
- [Interviewer] So what are we doing?
- Well, I have just told it
that I don't have an account number.
If I had an account number, I could start
with the same amount of money
I ended the game with last time,
which is a nice feature.
It allows you to build upon your account.
- I mean, how did this work?
It wasn't even saving anything to tape.
In my naivety, I actually considered that somehow
the data was being transmitted
to Activision's headquarters or something
and maybe stored in their filing cabinets there.
The mind of an 11-year-old.
But, I mean, how else could I load my bank balance
on a friend's Commodore 64 miles away?
And actually what's going on here
is one of, if not the first ever uses,
of passcodes as a pseudo-save-game feature.
You wanna see how it works?
Okay.
I should just quickly warn you though
that PCBWay are absolutely terrible at catching ghosts,
but otherwise, I recommend PCBWay!
Check out their sixth anniversary deals right now,
'cause as we all know,
PCB stands for Perifractic's Car Bait.
Doesn't it?
(chirping chiptune music)
So here's what ghostly magic's going on.
So let's assume that we have a bank balance of $575,000
at the end of the game.
To make things simple,
the code ignores the last two figures,
which are always zero anyway,
leaving us with five, seven, five, zero,
but then stores the 57 in memory address 25
and the 50 in memory address 27.
So, what about memory address 26 in between the two?
Well, here's where things get clever.
First, it takes your name and converts it
into an eight-bit one-byte checksum.
Here's what that means.
Let's say we entered the name Frantic,Pedro.
First, it looks at the PETSCII value of each character.
Then it adds all those values together,
giving an eight-bit result.
And we can see here that the eight-bit results
for poor Frantic,Pedro's name is AD,
which is the hexadecimal value for 173.
Now, I mention 173 because, next,
the programme essentially shifts and loops AD 173 times,
changing it to become 2C.
So, 2C is what gets stored at memory address 26.
So, how does that give us a worldwide account number
that we can use, well, worldwide?
Well next, it converts that 57 2C 50
from hexadecimal to binary,
which gives us this with a leading zero to start.
Then, yep, there's more,
it converts that binary into decimal pairs
for humans to understand, giving this.
And finally, it reverses those pairs, again for security,
to give us an account number that is uniquely based
off our name and our bank balance.
This means that when we load up the game again
from anywhere in the world
and enter our name and that account number,
it simply reverses the process
and ends up again at 57 2C 50.
it can then simply check that the name we typed
matches the check byte in memory address 26,
which should be 2C, and then only if the name matches,
it uses those two other memory addresses
to restore our bank balance to its rightful owner.
So, the 57 50 becomes 575,000.
Congratulations, you just accessed
your "Ghostbusters" franchise bank account
from anywhere on Earth or beyond.
Ooh.
So why was it so complex?
Well, simply, to stop kids using random jumber nen-
number generators
to generate account numbers.
(bright electronic music)
Oh, and a fun Peri-fact.
David told me that the famous digitised
"Ghostbusters" voice...
- [Synth Voice] Ghostbusters!
(synth laughing)
- Thank you.
Was his protege, rookie Activision programmer,
Adam Bannon, pictured here on the left.
There it is.
So now let's try a ghoulishly fun little experiment.
John Scarfone developed this Python script
account number generator.
We can just run it from the command line,
choose a name and a dollar amount,
and out pops our account number.
Let's test it in the game.
(bright vaporwave music)
Look, Pedro is rich.
At least he won't be frantic anymore.
And we've also worked with Lars The 18th
to resurrect his online generator, and host it at my site,
with some spooky but definitely not sucky little additions.
Just visit perifractic.com/slimed.
- [Synth Voice] He slimed me.
- (sighs) I guess Mr. Crane couldn't stop the kids forever.
Sorry, sir.
It's pretty interesting, huh?
So there you have it.
"Ghostbusters" wasn't transmitting your name
and account balance through the ether
into their filing cabinets, you silly goose.
They were just using some clever code behind the scenes
to make the whole process as invisible as a ghost.
I'll be back soon with another full-size Retro Recipe.
And until then, thanks for watching.
Subscribe and join below. And cheerio.
Cheerio. Oh, you're not going, you'll stay here.
("Ghostbusters") (whistle tweeting)
- [Synth Voice] Ghostbusters!
Ghostbusters!
(whistle tweets) - Thank you.