It would be a nice thread on here, to see what people's first hacks were, especially from that era when people were usually just alone and stumbling on these things.

While not the first hack by a long shot and not even mine but I always loved the idea of how it worked.

There used to be program called Gamehack or something like that. Essentially you would start the game and point this application at said game in RAM, then take note of something like the score being "187" or whatever. Jump into 'Gamehack' and it would search for everything in memory with that value. You would then play for a little bit longer and once the score had changed, you could then jump into game hack and find which of those memory addresses had changed to the new score. Usually you would only have one, you could then change this number to what ever you wanted.

It was such a simple concept but it worked so well. Wouldn't be able to do something like that anymore due to all manner of sandboxing in action. Lost a tool, gained security.

Only other hack was messing with the vehicle stats in Vice City. Ended up with the firetruck that could jump the entire map. Good fun.

> It was such a simple concept but it worked so well. Wouldn't be able to do something like that anymore due to all manner of sandboxing in action. Lost a tool, gained security.

This class of programs absolutely still exists (see: every debugger, scanmem, GameConqueror, etc.).

Sandboxing doesn't prevent processes from inspecting the memory of other processes, it just prevents the sandboxed process from doing things it shouldn't.

This reminds me of Game Genie:

https://en.wikipedia.org/wiki/Game_Genie

They really markted that well has having to enter codes, but of course, they were just ROM addresses + values to pretend to be at those addresses.

Obfuscated, however, because they didn't really want people being able to properly make their own codes.

Sounds like a precursor to CheatEngine

https://cheatengine.org/

I used a tool called ArtMoney; apparently still actively developed and sold from an .ru domain.

Playing Omega (roguelike) on ATARI ST, there were food shops that you could buy stacks of fried lizard bites if I remember correctly? Anyways, I found out that if you bought the max amount 99999999, it would actually give you money. Baby's first buffer overflow. The only issue is that it would also put that amount in your inventory, so you were basically too slow to move and had to drop each stack so my towns were littered with stacks of lizard bites. I'm not sure where the bug was introduced and I never found it in the PC versions later on when I looked.

Opening Eye of the Beholder II save files and moving items in your inventory to detect the hex code.

Then trying other random codes and finding stuff in your inventory like animal carcass

This might make a nice top-level Ask HN.

Saving a game in Bard’s Tale (for Amiga). Buying an item in a store. Saving the game again. Comparing the save files with a hand-rolled AmigaBASIC hex dumper to find the bytes that changed. Working out from there how it stored money balances in the file. Tweak a little… and voila, everyone in my party’s getting mithril plate and frost horns.

I had a Loki software demo of Heroes of Might and Magic 3 for Linux. Couldn't find the full game anywhere, certainly not legally. You could only play one scenario with one town. But from saving and comparing save files in a hex editor, I figured out how to play as the other towns, change heroes and skills etc. The key discovery was finding out that the saves were compressed with something very like gzip. The game complained that checksums didn't match when I loaded a decompressed->modified->recompressed save file, but it still worked just fine.

My first was almost kinda similar to GP: me and my cousin played a game called ReVolt, and found that you could make the cars go faster by changing their speed attribute in some text file we found just poking around the game files.

Man we had some good fun with that! It always ended with us boosting our cars so much they flew out of the map

Mine was very simple, just finding and playing with values in config.ini for Red Alert 2 so that I could have infinite Tanyas and such.

Next step was trying to get the boot screen to display a MS-branded Borg cube but instead bricking the machine. Parents were not thrilled about that.

Ooh the Dungeon Keeper demo actually had all of the characters, just not the art assets. So when I was 11 I modified the ini file and had invisible giants and vampire lords doing my bidding in my dungeon. I was very proud of myself.

Did anyone manage to cheat in Oregon Trail?

I imagine you could change the chances of mishaps, or start with $1M, or remove the limit of how many buffalo steaks you could bring back from a hunt.

Starting off as a banker is probably the easiest way to "cheat". :)

Me as a kid realizing that the rate of fire on the shotgun was directly tied to the number of animation frames in the original Doom. Cue mecha super-extreme gatling shotgun and also mecha super-extreme choppy frame rate.

Hitscan weapons for the win.

Adding money to a CIV 1 save game file with the PCTOOLS hex editor.

Bypassed the anti-piracy manual check in the second Championship Manager[1] game for my buddy. It was a typical check at the time which in this case asked you to reference a table of soccer matches in the manual and enter the correct game results for one of the games, ie 1-3 or similar.

I had been teaching myself programming for a few of years and had recently gotten my hands on Turbo Pascal. I had just started dabbling in assembly as well. So I launched the game through the debugger and by stepping through functions, in assembly obviously since I didn't have source, I finally got to the place where it waited for me to input the game results.

It encoded the game result in a single register, and compared the value in that register to a value in another register which it had loaded the correct value into.

Using the surrounding code, I located the byte in the executable and replaced that one comparison instruction with one which compared one of the registers with itself, which of course was the same all day err day. Wrote a small program to apply the one-byte patch.

Took a lot of time, especially tracing to find the right place since I wasn't very good at using the debugger nor that proficient with assembly. But very satisfying when my buddy could just enter whatever result he wanted and enjoy the game.

After that I dropped cracking games and focused on save-game cheats which I did for a while until games added sanity checks or just had very dynamic save-game formats.

[1]: https://en.wikipedia.org/wiki/Championship_Manager_2

The whole cracking scene was where a lot us cut our teeth learning to use machine code debuggers.

Very much so. Fixing software so that they correctly recognized my preferred serial number of #12345 was valid. Using soft-ice to register itself was always a deeply ironic.

But to be honest I started before then, on the ZX Spectrum. First of all it was patching games to get infinite lives, or time. But later it became necessary to patch the loaders before you could even access the game-code - speedlock, bleeplock, etc.

I remember saving a lot of allowance so i could buy the Multiface One for the ZX Spectrum. Instant hacking and saving possibilities.

https://en.wikipedia.org/wiki/Multiface

I never had one, and often lamented it!

Being able to pause a running game and peek/poke at the RAM would have been very useful for hacking games, though of course I'd still need to crack the loader to share the POKEs with other people.

Oh it was. It had its own handy interface where you could alot of things live in the memory. I remember hacking for infinite lives/credits and finding out secret passwords. It was a very fun and very expensive ( for me ) device. I did not need it for copying games. There were some local hobby clubs which had almost every game and software.