C64 Copy Protection

commodoregames.net

46 points by snvzz 3 days ago


kenjackson - 2 hours ago

So interesting! There was a level of creativity back in those days that we seem to not have as much nowaydays. Now things seem to be based more on math and things like signing.

As a C64 user a kid one thing I didn't realize was this:

"The serial bus connecting the 1541 to the C64 has a famous bug. Commodore designed it to run at ~16,000 bytes/second, but a timing error in the Kernal ROM's ATN (Attention) line handling caused it to insert extra delays between every single byte — dropping the real-world speed to around 400 bytes/second. That's roughly one-fortieth the intended speed. Commodore never fixed it in the C64's lifetime. (A workaround was eventually added for the 1571 drive, but the 1541 remained slow throughout its production run.)

Fast loaders worked around this by downloading replacement code into both the drive's RAM and the C64's RAM, then communicating over the C64's User Port parallel pins instead — bypassing the serial bus completely. This gave transfer rates around 10,000 bytes/second (25× faster). "

I recall the "fast loaders" and always wondered how they could get data off a disk any faster. It seemed like magic. But now I know.

classichasclass - 4 hours ago

Ah, duplicate sector IDs. Ran into that not too long ago: https://oldvcr.blogspot.com/2023/08/cracking-designwares-gra...

V-MAX! and Rapidlok were like deep magic, though. I never successfully cracked a title with that by hand myself.

altitudinous - 2 hours ago

Interesting to see this stuff. I really enjoyed cracking this back in the day, just for friends, but took a different approach of using sector editors to read the code on the disk to find where the checks wer done to see if the protections were present and replacing it with NOPs ($EA), or changing BNEs to BEQs. What was more interesting was how the code that did the check was also moved about the disk, I remember seeing for a particular piece of code it did a B-E (Block Execute) on Track 5 Sector 5. I could plainly see the protection check on that spot on the disk. My young self was very excited about working it out. The puzzle of copy protection was more fun than playing the actual games. Very frequently the directory tracks (18?? I think) were overwritten but it was obvious looking over the disk to see the headers for various programs and the load start address so it was easy to rebuild. Golden times. I've coded since then, and only recently have stopped as AI has finally got better than me!!

- 21 minutes ago
[deleted]