

   ACTION   REPLAY   DETECTION


        By Apache64 of KKI


I  don't  know  if anyone else has
realised  this  one  yet  but here
goes anyway.

For some reason when Action Replay
III  is  called  it pulls VPOSR to
$200x,  now, under normal usage of
an  Amiga  VPOSR is usually either
$a00x  or $400x so here's what you
do:

i)  Read  and  store  the value of
    VPOSR  VERY  early  on in your
    demo.

ii) Set  up an interrupt (or do it
    as   part   of   one  of  your
    interrupts)   to  continuously
    check your VPOSR

against the current one:

eg:

This way ------------------------>
**  Do  this  bit VERY early on in
    your demo!

Storevpos       move.w  $dff004,d0
                andi.w  #$fff0,d0
; Mask off LSB (always changes)
                move.w  d0,Store
; Store it away...
                rts

** Put this bit in an interrupt

Checkvpos     move.w  $dff004,d0              
; Get current VPOSR
              andi.w  #$fff0,d0               
; Mask of LSB
              move.w  Store(pc),d1
              cmpi.w  d0,d1                   
; Same?
              bne.s   Trapped                 
; If not, we got the fucker!
              rts                             
; Else return

** Trapped AR III usage.  Kill the
   code!!!

Trapped         reset
*--------------------------------

Store           dc.w    0

Obviously you can put whatever you
like  in the "trapped" section - I
usually  just  crash  the  machine
horribly   (forcing  the  user  to
switch  off).  But you can do what
you want.

Don't forget though!  This doesn't
stop  the user getting into AR III
once!   So  you'll have to protect
your  gfx and music seperately but
it's still a step further!
