Amiga.org
Amiga computer related discussion => General chat about Amiga topics => Topic started by: Skippy on December 11, 2009, 10:30:57 AM
-
Does anyone recall who "GREMLIN of MAYHEM" is?
Basically this interesting article regarding the Action Replay Amiga Cartridge:
http://www.mways.co.uk/amiga/howtocode/text/actionreplay.php
was written by the named individual and is hosted on Mysterious Ways website formed by Jolyon Ralph, author of ZAP V1.41 (C)1990 and The Zowee Demo - Amiga Computing 1989 amongst others.
I was wondering if it was Mr Richard Aplin as the article quotes "see the Double Dragon ][/Shinobi protection that I coded a while back) ". As he was the coder of those games but whether its his protection I don't know, although here:
http://www.whdload.de/games/DoubleDragon2.html
it states "I remember Richard Aplin bragging about how tricky this protection was..".
The article only covers the Mk I and II releases but not Mk III. As the Mk III used a completely revised approach and was not detectable using previous methods I've always wanted to know what the technique was used in DDII.
If I recall correctly the methods from MKII didn't work for MKIII but instead test for the 24 bit event timer addresses as I once did in this old example.
****************************************************
* ACTION REPLAY 3. ©1991 PAUL ANDREWS *
****************************************************
SECTION PUBLIC,CODE_C
OPT O+,D+,C-
STALLSYSTEM EQU 0 Kill system dead
RAMFLASH EQU 0 Clear RAM fast!
TRASHCOPPER EQU 1 Trash the copperlist
***************************************************************************
EVENTLOW EQU $BFE801 24 bit event timer
EVENTMED EQU $BFE901 addresses
EVENTHIGH EQU $BFEA01
PROT: SUBQ.B #1,WAIT(A6)
BNE.S .EXIT
MOVE.B #20,WAIT(A6)
MOVEQ.L #0,D0
MOVE.B EVENTHIGH,D0
LSL.L #8,D0
MOVE.B EVENTMED,D0
LSL.L #8,D0
MOVE.B EVENTLOW,D0
CMP.L LASTTIME(A6),D0 Same as last value saved
BNE.S .OK
.LOP IFNE STALLSYSTEM
MOVE.L #-1,$A00000
ENDC
IFNE RAMFLASH
LEA $0,A0
.ALLR MOVE.L #0,(A0)+
BRA.S .ALLR
ENDC
IFNE TRASHCOPPER
LEA COPPER,A0
.TRCO MOVE.L #-1,(A0)+
BRA.S .TRCO
ENDC
RTS
.OK MOVE.L D0,LASTTIME(A6)
.EXIT RTS
RSRESET
WAIT: RS.B 1
LASTTIME: RS.L 1
ARIIIDATA: DS.W __RS
---------
****************************************************
* QUICK ARA PRESENCES TESTER. ©1991 PAUL ANDREWS *
****************************************************
SECTION SKIPPY,CODE_C
; ====================
MOVEM.L D0-D7/A0-A6,-(SP) SAVE REG$ TO SP
MOVE.L $4.W,A6 Get Execbase
LEA DOS,A1 Get library name
MOVEQ #0,D0 Universal Version
JSR -552(A6) Open library
MOVE.L D0,A6 Dos library
BEQ END Error? end!
CARTTST:CMP.L #$C5F00006,$7C.W
BNE.S .TST1
BSR CARTI ;ACTION REPLAY I FOUND
RTS
.TST1: CMP.L #$390000,$80.W
BNE.S .TST2
BSR CARTII ;ACTION REPLAY II FOUND
BRA.S END
.TST2: CMP.L #$BFD100,$84.W
BNE.S .TST3
BSR CARTII ;ACTION REPLAY II FOUND
BRA.S END
.TST3: CMP.L #$60F660F4,$88.W
BNE.S END
BSR CARTII ;ACTION REPLAY I FOUND
END MOVEM.L (SP)+,D0-D7/A0-A6
RTS
CARTI JSR -60(A6) Get output address
MOVE.L D0,D1
MOVE.L #TXT1,D2
MOVE.L #TXT1L,D3
JSR -48(A6)
PAL1 BTST #6,$BFE001
BNE.S PAL1
RTS
CARTII JSR -60(A6) Get output address
MOVE.L D0,D1
MOVE.L #TXT2,D2
MOVE.L #TXT2L,D3
JSR -48(A6)
PAL BTST #6,$BFE001
BNE.S PAL
RTS
DOS DC.B "dos.library",0
EVEN
TXT1 DC.B $9b,"1;33;40",$6D,$0A,"* ACTION_REPLAY_AMIGA I HAS BEEN FOUND! (LEFT MOUSE TO CONTINUE!)",$0A
EVEN
TXT1L EQU *-(TXT1)
EVEN
TXT2 DC.B $9b,"1;33;40",$6D,$0A,"* ACTION REPLAY AMIGA II HAS BEEN FOUND! (LEFT MOUSE TO CONTINUE!)",$0A
EVEN
TXT2L EQU *-(TXT2)
EVEN
Thanks in advance for any enlightenment.
Skipster.