Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user Sepa ! (Registered 2024-05-13) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Disabling AR freeze button
2003-02-20 22:19
6R6

Registered: Feb 2002
Posts: 244
Disabling AR freeze button

Is it possible to disable the Action
Replay freeze function 100% ?

In that case, please enlighten me... :)

 
... 83 posts hidden. Click here to view all posts....
 
2008-01-30 21:50
Frantic

Registered: Mar 2003
Posts: 1629
Somebody write a short article on the mechanisms of common c64 freezers and put up on http://codebase64.org :)
2008-01-31 10:34
AlexC

Registered: Jan 2008
Posts: 293
On original hardware you can actually crash system with well know de00 read bug. However in case of Retro Replay you can use it's extended register de01 bit 2 to disable freeze button. Remember that this is write-once register so next write to it will succeed only after system restart.

The following code will hang the system with RR and disable freeze button (however reset button will still work due to obvious reasons):

SEI
LDA #$04
STA $DE01
CLI
RTS

So in case of RR it is possible to disable Freeze button in 100% until next reset.

As a side note: Actually disabling NMI can cause interesting effects on some carts. For example Expert when is on will break on code that mask NMI (due to trigger). Disabling NMI will cause ESM led to be lit and need for ESM button to be pressed to re-enable NMI again (ESM button in connected to NMI line). You can't observe this behavior in Vice.
2008-01-31 13:20
TNT
Account closed

Registered: Oct 2004
Posts: 189
Doesn't RR ROM write $de01 during boot?

(I use the freeze button for disk swapping in MMC64 disk image mounter, that works because RR ROM doesn't get run before the plugin.)
2008-02-01 16:10
Oswald

Registered: Apr 2002
Posts: 5025
Quote: Somebody write a short article on the mechanisms of common c64 freezers and put up on http://codebase64.org :)

I second that.
2008-02-01 20:47
AlexC

Registered: Jan 2008
Posts: 293
Quote: I second that.

I'll have a short write up on different bugs and features not mentioned in codebase. I'll try to clean it up during weekend and post it here for review first. I need to recheck $de01 access by different roms too.
2008-02-01 21:01
Frantic

Registered: Mar 2003
Posts: 1629
great!
2008-02-04 01:08
AlexC

Registered: Jan 2008
Posts: 293
Quote: Doesn't RR ROM write $de01 during boot?

(I use the freeze button for disk swapping in MMC64 disk image mounter, that works because RR ROM doesn't get run before the plugin.)


You are right. I've took a peek at 3.8 and at $817F there is the following code:

LDA #$40
STA $DE01

which enables REU comaptybility and Freeze button as well. So my code will not work if run after RR setup however it stills hangs the system so one can say it is disabling freeze option ;)
2008-02-04 02:24
titan_ae
Account closed

Registered: Jun 2002
Posts: 46
best "protection" against freezing i saw in an german adventure game called "mit jeans und hellebarde" from markt und technik verlag.it checked he exp. port, if something was conected there, game didnt start and ofcourse freeze button didnt werk.

2008-02-04 04:41
chatGPZ

Registered: Dec 2001
Posts: 11140
uhm but...both FC3 and AR5 can switch off themselves completely (and will be switched on again when you press freeze) so its pretty much impossible to detect them programatically.
2008-02-04 09:25
AlexC

Registered: Jan 2008
Posts: 293
Quote: uhm but...both FC3 and AR5 can switch off themselves completely (and will be switched on again when you press freeze) so its pretty much impossible to detect them programatically.

Most of those methods will also fail against Trilogic Expert. It can also be switched to off and than re-enabled after PC register passes protection code. In some games you will also lack time in IRQ to recheck again.

Some older version - if memory serves me well - of AR were leaving certain values on stack during freeze.

In case of AR you can also enable it's memory and store your code there which will get overwritten due to freeze.


IMHO the best option is to use VIC, SID and timer registers to detect freeze has been triggered. Also synchronization issues can screw up code execution so that return after freeze will not be possible. Those methods are also very flexible as they work against different carts not just AR.

You can also play with disk drive memory in order to detect any writes (but today it's real use is rather limited unless you are afraid of piracy).
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Sander/Focus
Biz Kid/Camelot - Ox..
t0m3000/BOOM!^IBX
HBH.ZTH/Abnormal
SoNiC/Onslaught/tOM
Soya/Fairlight
Honcho
PopMilo/TempesT
zscs
Flexman
iceout/Avatar/HF
Guests online: 153
Top Demos
1 Next Level  (9.8)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 No Bounds  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 Party Elk 2  (9.7)
2 It's More Fun to Com..  (9.6)
3 Layers  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Rainbow Connection  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Graphicians
1 Sulevi  (10)
2 Mirage  (9.8)
3 Mikael  (9.7)
4 Lobo  (9.7)
5 Archmage  (9.7)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.072 sec.