xeron wrote:
Hmmm, what reason was there to shift the code off by one byte? I don't understand how that would have "copy protected" it... :-?
Its so that crackers can't step over the code in action replay. An even cleverer trick is to put the code offsetted by one byte, then encrypt it. Your exception handler then not only compensates for the offset, but decrypts the code WHILE its being executed. In action replay, all you see in RAM is junk!
If the exception handler also re-encrypts the last executed instruction, there is NEVER a complete decrypted copy of the code in RAM.
Of course, on 68020+ it will just crash horribly.
Yeah I realised after I posted that It was probably to stop system monitors watching what's going on.
Another trick is to put the stack at an odd address and not use it so that the action replay can't be activated. (press the button on the action replay, NMI occurs, which causes a stack access, which causes a processor exception, so your machine gurus instead of going into action replay)
Hahahaha, yeah I figured that little trick out myself, somewhat accidentally ;-)