| |
sailor
Registered: Jan 2002 Posts: 90 |
How to detect a cartridge..?
Hello all!
I was testing an old game(original), and i noticed that if i had an Action Replay it would reset during load(due to cartridge protection check), but a Retro Replay was undiscovered.
To get this title to bypass, you need to detach the AR-cart physically.. RR can stay in.
Before booting, i select "F3 - normal reset" in the cartridge menu for both carts.
The routine checks $de00-/$df00- and compares the data in the next loop (or so..).
if i make a routine like:
again ldx #$00
getmore lda $de00,x
sta $0400,x
lda $df00,x
sta $0500,x
inx
bne getmore
jmp again
...It shows that an AR has some code visible (static data) at $df00-, but a RR shows the same as a clean c64 (data changing on both $de00/$df00).
My question is, is there a way to detect Retro Replay carts or enable it somehow so it can be detected?
Regards
Jani
|
|
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
once the retroreplay is disabled ("normal reset" in RR rom) it should be impossible to detect |
| |
sailor
Registered: Jan 2002 Posts: 90 |
ok... well, i was just curious..
thanks for your answer :)
|
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
@sailor:
AR has it's banking register in IO1 which is $DE00-$DEFF. Reading that range will crash the C64.
RR has different possibilities. It may run in AR compability mode (but without the read crash) or in RR mode.
And then there is FC3 too... |
| |
sailor
Registered: Jan 2002 Posts: 90 |
@Graham
Yes, good point, i have seen some cart protection where they trash $de00/$df00-areas to freak (some)carts out.
I noticed that FC3 and some other carts can also be detected from the $de00/$df00 areas too.. and of course some "old" carts have something going on at $8000-..
..but if RR shuts itself off totally, it can be still in the background and pass undetected.
and thanks for the help :)
/Jani
|
| |
polonus Account closed
Registered: Aug 2007 Posts: 9 |
Since it was quite hard to detect cartridge presence, I found a way to check if actual working software was freezed and continued. It worked well when check was performed in IRQ. AFAIR I used to put some values in some 'unused' VIC registers and, after freeze/defreeze those values were never intact. Unfortunately, I don't have any code example of this - just remember what I did. You can easily check it yourself, I suppose. |
| |
CenTraX Account closed
Registered: Jan 2002 Posts: 117 |
Examine code of Happy Bug at $4003-$xxxx :) |
| |
polonus Account closed
Registered: Aug 2007 Posts: 9 |
Quote: Examine code of Happy Bug at $4003-$xxxx :)
well - yes :D |