Hacking Centauri Aliance

Backstory

I played a lot of adventure games on my old Commodore 64. I grew up during the golden age of Infocom, and played Zork 1, 2, & 3, Planetfall, Deadline, The Leather Goddesses of Phobos, Lurking Horror, and the all-time classic: The Hitchhikerʼs Guide to the Galaxy. There were a few attempts at marrying text adventure games with pictures, like Fahrenheit 451, but, most successfully, there was the whole The Bardʼs Tale series, Wasteland, and Centauri Alliance, which at least looked like they all shared the same “engine,” back before game “engines” were a thing to talk about.

I donʼt usually like to cheat at video games. Obviously, it takes almost all of the challenge out of it, and I always lose a lot of interest in actually finishing the game when I do. But sometimes… I just get frustrated. With The Bardʼs Tale, I got to a point in the adventure where I just kept dying. I had progressed through the story too quickly, and my characters had not accumulated enough experience to get through the whatever dungeon I was trying to get through. Either it never occurred to me to simply “grind” until I got a few more levels, or it did occur, and the idea bored me. So rather than do that, I opened the save disk with a hex editor, and looked to see how my characters were stored. I could see the stats, but I couldn’t figure out how the leveling system worked. I finally settled on just increasing their experience points (and gold pieces), then going to the guild, and putting a weight on the key that “interviewed” for a higher level, and watching TV for awhile. Lather, rinse, and repeat for each character. When I was done, everyone in the party was around level 900.

BTII was glitched for me. My save disk had an infinite supply of all the weapons in the game available at the stores, which made hacking my characters irrelevant. It even included one each of the 7 parts of the magical rod you had to put together, and they were cheap! I guess the game makers figured you could never buy them, so they didn’t set some astronomical price on them to reflect their rarity. So I had them from the first levels of the game, and their powers made things much easier. I always wondered if this were the case for other people, or if a fortuitous disk error caused this to happen just for me…

My 1541 disk drive had died a long, long time ago. I thought about selling the whole kit on eBay, but C64ʼs — even with all the stuff to go with them — are hardly even worth boxing up. You might get $30, at least when I last looked. Because of this, a friend gave me his old C64, with all the accoutrements. He even had the monitor I had always wanted! Anyway, his floppy drive got me back up and running, so I got all of my stuff out and had some fun.

I played some old games, the way they were meant to be played: not through an emulator. I resurrected the programs I had written. Of course, nothing was useful any more, but it was great looking over the aborted AD&D character generator I had written, which is what got Dad to upgrade me from a Vic-20 to a C64. It was still interesting to see the D&D character sheets I had designed via control codes to a dot-matrix printer. Then there was the almost-complete, level-18+ AD&D (2e) adventure I had written. I looked over it, thought it was really cool, started to reformat it in a word processor, then trashed it. However, there was also the entirely-new, post-apocalyptic RPG I was writing. That one I cleaned up and saved…

Screen Shots

Disk Corruption

One of the significant things about this diversion was Centauri Alliance. I had bought the game back when it came out, but I screwed up the master save disk. I wrote the company, got a replacement, and… then screwed up the new disk. So it sat for, like, 15 years. When I was playing around with everything again, I wanted to finish the game, so I downloaded disk images on the internet, and tried to play on an emulator under Linux. Lo and behold, they were screwed up too, but in a different way. So I created disk images of my good disks, and combined that with the cracked boot disk and blank generic save disk from the Moby Games site, and played through the game.

Here are the Centauri Alliance Scenario Disks, which are the good ones.

I also finally actually finished the game, though I used a walkthrough. Heavily. I wanted to see how the game ended. I didnʼt want to spend all the time mapping the levels.

Hack

Of course, things started to get tough — as they definitely will, in this game, especially if youʼre speeding through it with a walkthrough — so I decided to try hacking my characters, like with Bard’s Tale. I found a page on someoneʼs web site about how they thought it should be done, but it didnʼt add up. (I canʼt find that page any more.) If I recall, he was saying something about adding 0xD to the stats. That didn’t work, but it gave me the hint I needed to figure it out on my own.

Characters are stored on the Roster disk starting at even offsets, like 0x1600, 0x1500, 0x1700, etc. I couldnʼt find a rhyme or reason to their ordering, and their names are obfuscated. I figured out who was who by hacking where their names should be, and seeing whose name was nerfed when I reloaded my last save.

My notes were all really sketchy by the time I made this page, and itʼs been several years since I did this. If I understand my scribbles, the experience points bytes are offset 30-35 inside the character.

Each stat is XORʼed with a different byte:

STATXOR Byte
LIFE0xF9
PSI0x3B
STR0x0C
IQ0x20
VIT0x5A
AG0x6A

Each skill is similarly encoded:

SKILLXOR Byte
Melee0xCC
Thrown0x26
Sidearm0xC3
Master0xC4
Hardware0x41
Weaponry0x06
Bio0x9B
Ancient0x4D
Mind0xFC
Body0xD2
Matter0x49
Energy0x63
Metamorph0x75
Shape0x42

I donʼt even quite know why Iʼm bothering to put this up. Thereʼs probably not another living person who will ever care about this by now. But, hey, this is why the internet was created, so why not?