| ▲ | magicalhippo 2 hours ago | |
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. | ||