Tangled Tales
Sep. 23rd, 2024 05:28 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
As a sort of last hurrah before my work schedule gets intense again, I played my way through Tangled Tales, an RPG from the 80's that I'd never checked out before. It was developed simultaneously for the Apple II, the Commodore 64, and MS-DOS computers, but I chose the Apple II version to indulge my ancient obsession with the fuzzy six-color graphics of that machine.
Tangled Tales delivers on that front: The art is adorable. I followed a walkthrough, and along the way I meticulously collected all the animated character portraits and place drawings, which I integrated with a revised walkthrough and posted here. Why? Because that's the sort of thing you do when you're obsessed, that's why!!
I've done this sort of thing before, so I won't repost the walkthrough here, but I will mention a detour I had to make while playing the game:
There's a side-quest where the player encounters Medusa in a dungeon, and if they've collected a mirror from the beginning of the game, they can use it to kill her. Well, I saw the mirror but I didn't pick it up, and when I went back to the beginning to find it, the game had glitched and erased it from the map. I really wanted to defeat Medusa though, because maybe she would drop some fantastic treasure! So what could I do?
Hack the game, obviously.
Usually, I would hack a saved game. That is, I would save my game in the emulator so my progress gets written to a virtual disk file, shut down the emulator, and then open up the disk file in a hex editor and go looking around. But in this case, I was dealing with disk files that were much more sophisticated representations of the media that Tangled Tales was originally sold on, because using anything less would render the game inoperable. These disk files were big chunks of magnetic signal data, like a wicked version of morse code.
The interior of a 5.25-inch floppy disk, like the kind Tangled Tales used, is a round shape that's made to spin, much like a vinyl record but about 1/5 the size. It's made of thin flexible plastic and coated with magnetic particles. The graphic below shows the data on side 1, disk 1 of the original Tangled Tales media. The dark areas are the equivalent of positive magnetic charge, and the light areas are negative magnetic charge. So, if you could look at a disk and "see" magnetic charge like it was a color, you would see something like this.

The virtual disk files I'm using to run Tangled Tales in the emulator are essentially this. Just a huge collection of wiggly variations between positive and negative charge, drawn in the shape of a disk.
Instead of looking at letters and numbers of a message, I was looking at the equivalent of dots and dashes used to transmit the message, with complicated variations in the signal thrown in to make eavesdropping harder. On the original media, those signal variations made the disks harder to copy by conventional means, and formed the front line of the war against software piracy.

Unfortunately for me, searching through data represented this way, and making meaningful changes, would be very hard. I mean, I'm good at what I do and could probably find a way eventually, but killing Medusa isn't worth that kind of time.
So if the virtual disks are off limits, what do I have to work with? The contents of the virtual computer's memory. Luckily, openEmulator lets you flash-freeze the state of the computer to a series of files, and it doesn't do anything tricky like compress or encrypt them. Somewhere in those files is the current state of my adventure. I could edit the data there, then reload the emulator with the changes I want.
Tangled Tales tried to defy me by using awkward formats for their character names and stats, but with a little trial and error in the hex editor, I found what I needed:

I started a new game, saved a copy of the emulator state, then picked up the mirror in my room and saved another copy of the state. By comparing the two, I found one change in the data that looked clean enough to represent an item being added to my character's inventory. Exploring around in that area of memory, I found the rest of my character's stats. So of course I maxed them out...

Thusly equipped with a hand mirror by divine intervention, I defeated medusa.

My reward: Nothing. Not even any gold. Hah!!
Well, I had a good time anyway.