English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Coders. Asm / Hardware (https://eab.abime.net/forumdisplay.php?f=112)
-   -   Shadow Of The Beast 2 - Anti Action-Replay Code (https://eab.abime.net/showthread.php?t=103532)

Giants 12 August 2020 18:33

Shadow Of The Beast 2 - Anti Action-Replay Code
 
Hi !


Actually, I working on this game (IPF ID 1359)
and I think this game has a anti-Action-replay code.
I tested this on a Real Amiga 500 and WinUAE
/!\ see my last message at the bottom of this thread : More test....


Start the game to level1
Enter in AR
Exit to AR
(no problem)
Enter in AR (again so)
Exit to AR
and... now it's no longer possible to use F1->F10 Key and another Key like 'A' to enter a 'communication'.
I searched a little and I find an exeption 2 is produced when When use keyboard.
And go to the address shown in ($68) : 9A70


Code:

============================

9A70    MOVEM.L    D0-D2/A0,-(A7)
9A74    LEA $00BFED01, A0
9A7A    MOVEQ #$00, D0
9A7C    MOVE.B -$0100(A0), D0
9A80    TST.B (A0)
...
<A lot of TST and CMP on D0>
...
9B16    MOVE.W #$4008, $DFF09C
9B1E    MOVEM.L (A7)+, D0/D1/D2/A0pile
9B22    RTE
============================

And
1E2C MOVE.L #9A70,68.S



A see this also in the cracked version SR (2 disks) for info.

Question :


Is they are any body who could tell me more about this subject ?
I don't know how it's work and I would like to know.





Thks a lot :bowdown

StingRay 12 August 2020 18:47

This is normal level 2 interrupt code. The game will most probably check CIA timers to detect the cartridge.

Galahad/FLT 12 August 2020 18:58

I doubt this is action replay code, probably just badly written interrupt acknowlege code that lead to to failure of so many keyboard routines on faster processors.

Usually an illegal copperlist move.l #$ffffffff,$dff080 is the usual culprit.

Giants 12 August 2020 19:29

Hi !
StingRay : Do you have a example of this code ?
'check CIA timers '

Galahad/FLT : maybe but i don't find : move.l #$ffffffff,$dff080 in memory
I going to look deeper and into copper list, maybe they are a tips...

#..on faster processors
Tested on origina Amiga500 with no accelerator, so 7Mhz ?
and into Winuae with 'cycle-exact'.

If they are a badly code, why it's always done with this workflow ?
Strange no ?

Giants 12 August 2020 22:36

OK !

More tests here :

No Bug :
Windows XP 32b + WinUAE 4.1.0 // A500 OCS noExtMemory + Cycle Full + MKIII image v3.17 + IPF 1359
Windows 10 64b + WinUAE 4.1.0 // A500 OCS noExtMemory + Cycle Full + MKIII image v3.17 + Cracked Version
Windows 10 64b + WinUAE 4.1.0 // A500 OCS noExtMemory + Cycle Full + MKIII image v3.17 + IPF 1359
Amiga 500 + MKIII + IP1359 re-created on real Disk (with kryoflux)
Amiga 500 + MKIII + Cracked Version on real DisK (re-created with adf-copy)


No more keyboard after enter 2 time on ActionReplay :

Windows 10 + WinUAE 4.4.0 (2020.04.01) 64-bit // A500 OCS noExtMemory + Cycle Full + MKIII image v3.17 + Cracked Version
Windows 10 + WinUAE 4.4.0 (2020.04.01) 64-bit // A500 OCS noExtMemory + Cycle Full + MKIII image v3.17 + IPF 1359
Windows XP 32b + WinUAE 4.4.0 // A500 OCS noExtMemory + Cycle Full + MKIII image v3.17 + IPF 1359
Amiga 500 + MKIII + Cracked version saved with SA command on WinUae on level1 into Real Disk played on real Amiga (with command LA)

So... it's seem's a problem on WinUae.
Strange...

I going to write to Tony

Galahad/FLT 12 August 2020 22:56

Quote:

Originally Posted by Giants (Post 1420255)
Hi !
StingRay : Do you have a example of this code ?
'check CIA timers '

Galahad/FLT : maybe but i don't find : move.l #$ffffffff,$dff080 in memory
I going to look deeper and into copper list, maybe they are a tips...

#..on faster processors
Tested on origina Amiga500 with no accelerator, so 7Mhz ?
and into Winuae with 'cycle-exact'.

If they are a badly code, why it's always done with this workflow ?
Strange no ?

The example I gave you is to show the typical AR protection that was used, that wasn't a hint that Beast 2 used it.

An AR protection that stops the keyboard working during the game isn't much of a protection, because it doesn't stop you cracking the game, hence why I suspect its not an AR protection but the keyboard interrupt losing its acknowlegement.

There are literally HUNDREDS of poorly programmed keyboard interrupts in Amiga games, and Beast 2 is still early enough to probably still have a problem like that.

Giants 12 August 2020 23:13

Ok.
Thks a lot :)

jotd 13 August 2020 09:42

I don't care about anti AR code now that I exclusively use WinUAE debugger. Once you're used to it, it's super powerful.

Dan 13 August 2020 10:12

Quote:

Originally Posted by Giants (Post 1420286)
OK !

I going to write to Tony

See this thread: http://eab.abime.net/showthread.php?t=103107

Giants 13 August 2020 10:26

Dan : It's exactly that :)

jotd : Ce n'est pas le sujet ;)


All times are GMT +2. The time now is 12:55.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04495 seconds with 11 queries