Checksums that crash the game are generally easier to find. When the Amiga crashes, the last address that it was executing or the memory address of the routine it was in can normally be found in the stack memory area (a7).
checksums that remove features of a game are harder, but that all depends on how they are implemented.
For instance, many checksums in Anco games are stupidly coded and are glaringly obvious when you are scanning through the game code.
Checksums are there to protect certain routines, so that also makes it easier to search. If the game has a Copylock routine, then more than likely if a checksum is going to be used, its going to be checking the integrity of that routine to detect for changes.
Sometimes the way a checksum routine is written just looks out of place compared to the rest of the game code. Anco games uses lots of movem.l instructions for the checksums, despite the game code itself hardly using any.
In the abscence of an MMU, sometimes you simply have to scroll through game code to spot the checksums.
|