| |
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.... |
| |
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 :) |
| |
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. |
| |
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.) |
| |
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. |
| |
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. |
| |
Frantic
Registered: Mar 2003 Posts: 1629 |
great! |
| |
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 ;) |
| |
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.
|
| |
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. |
| |
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 |