One lame scheme I ran into was a basic try to load deliberately bad sector check.
If bad, run game.
If good, fail.
But, they did not check for any specific error! Any error would do to start the game, which was ULTIMA 2.
Because of that, anyone could copy the game disk and cause a disk read error to happen at the right time to play the game.
The easiest thing to do was open the drive door, wait a bit, then close it to see the game load normally.
It was, essentially a:
bool IsGenuineDisk() { return DiskHasSecretStuff(); }
That was my first "crack." I happened to run the game on an Atari computer, which makes sounds during disk I/O. I could hear the sectors, hear the fail, retry, then remaining sectors load.
So, count em up, open the door, listen for fail, close, go!
Didn't even need a single hex value to accomplish.
After that, I got into it on an Apple. Reading this brings back memories. That particular machine is a lot of fun, and it is fun because almost everything is software. Totally open.
Much of the disk protection was laughable, Ocean games been an example.
They had a routine that would return 1 in the A register so the crack was to load the accumulator with 1, do a nop to fill the gap and continue
I could crack their games in about a minute with a disk sector editor I wrote that would disassemble the game on disk by reading the sectors for the game.
The hardest crack I did was EA’s Skate or Die. It had self modifying code in the copy protection which took quite a while to unwind loops.
I also cracked Ghosts and Goblins, or maybe it was Ghosts and Ghouls, on the Amiga. The chumps who made the disk left the source code to the boot loader on the disk as a deleted file. I undeleted it and “fixed” the boot loader.
Oddly, I worked in copy protection many years later.