-
Hi! I discovered this amazing treasure of Amiga disk formats and especially the Copylock decoder while researching tools to participate in a small Crack Challenge on Twitch for cracking "Archer MacLean presents Billiard Americain". This is the French (?) release of "Archer MacLean's Pool" and the protections look the same. I managed to crack the game using WinUAE's debugger, but when trying to run the Copylock code through your "copylock" tool, a specific part of customized, game-specific protection code inside the Copylock does not decode and I wonder why. IPF is here. If I'm not mistaken, "copylock" will not read IPF images so I first converted the IPF to DSK:
The Copylock code in Billard Americain is located at 32a8c:
In the game, the Copylock runs in Supervisor mode with the stack pointing to 3f0. I added a bit of startup to set this up for "copylock" and added $4afa at 33392 after the Copylock to make m68k exit.
Running copylock:
There are two custom instructions in the Copylock. One instruction is correctly decoded:
The other is at 32fee and is not decoded:
I don't know the reason why the custom code at 32fee is not executed. Does this game have changes in the Copylock protection track that is not converted correctly in disk-analyse? Thanks for taking a look. ;-) Thomas |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 11 replies
-
I will say that it's normal for If you are certain that the offending instruction must be executed on a normal correct execution then yes, there must be a problem. |
Beta Was this translation helpful? Give feedback.
-
This is now fixed by 2b35477. Incidentally, I found the copylock at 32a96. Some of my disassembled instructions are at your reported addresses, while others are +0xa. If I change my start address to 32a8c then I end up with all my addresses -0xa from where they were (unsurprisingly). So it seems you reported copylock decodes relative to two slightly different base addresses? Not that this matters, just interesting to report it. Or perhaps I decoded a different Copylock from the game (eg. a different payload based on memory size)? |
Beta Was this translation helpful? Give feedback.
This is now fixed by 2b35477.
Incidentally, I found the copylock at 32a96. Some of my disassembled instructions are at your reported addresses, while others are +0xa. If I change my start address to 32a8c then I end up with all my addresses -0xa from where they were (unsurprisingly). So it seems you reported copylock decodes relative to two slightly different base addresses? Not that this matters, just interesting to report it. Or perhaps I decoded a different Copylock from the game (eg. a different payload based on memory size)?