Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
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-02-15 21:05
AlexC

Registered: Jan 2008
Posts: 293
Quote: Yes in VICE the NMI can only trigger once, which is a bug :) It also seems to always trigger from the restore key near the top of the screen raster. Unless it is triggered by a timer of course.


That's interesting - I've never done much research on Vice after I've discovered that handling NMI is broken. Thanks for the tip Martin.
2008-02-16 10:01
Martin Piper

Registered: Nov 2007
Posts: 636
You are very welcome. :) Like most things it was discovered by accident. I was testing my screen split and noticed the border colour change would trigger at the top of the screen raster time (viewable with full debug borders) when holding down the "restore" key. On the real C64 the restore key NMI is triggered on a logic edge, not logic state.
2008-02-20 12:17
Frantic

Registered: Mar 2003
Posts: 1627
@AlexC: Thanks for the article! Sorry that I didn't notice that you posted it until now. It is available here:

http://codebase64.org/doku.php?id=base:cartridge_detection
2008-02-20 15:31
AlexC

Registered: Jan 2008
Posts: 293
Quote: @AlexC: Thanks for the article! Sorry that I didn't notice that you posted it until now. It is available here:

http://codebase64.org/doku.php?id=base:cartridge_detection


You're welcome - new version of it is in production ;) I want to add some more things and info about Expert.
2008-06-10 19:26
MikeD
Account closed

Registered: Jan 2006
Posts: 19
In dem old days, we used to kill carts by using NMI timer interrups (which never got restarted due to the CART taking over the NMI), and by placing the stack near $100 rather than $1ff.

If you leave just enough space on the stack for your game, and use (say) $1030 onwards, then whtn the stack wraps, it kills your data and a restart is again messed up.

I had to jumpo through hoops and write a little bit of restart code to get some frozen games to work again.

"Some" later carts might have fixed the stack one... but Im not sure.
2008-06-11 10:47
WVL

Registered: Mar 2002
Posts: 886
For the people who are desperate to defeat carts, I think nowadays the 1541-ultimate is the newest toughest enemy :)

I talked a bit with Gideon about how the freezing works, and it is pretty nifty! ;)

According to Gideon, there are 2 modes, the first mode freezes when the cpu is being stalled due to badlines or sprites, and just keeps the cpu frozen by keeping BA low (or is it high?)

Then it does all its stuff, and when it's ready to let go of the c64 it will wait for a badline/sprite on the same line again and let go. (It immediately occured to me that this might lead to problems f.e. with multiplexers -> the sprite might not be in the same lines! or the badlines may not be there.. etc!)

In the 2nd mode (it will try this if it does not detect badlines) the cart keeps checking the bus for a RWR from the cpu, since then it's sure the next will be a R also, at which point it takes over. (i'm not exactly sure why the cart cannot take control during a write, but according to gideon the bus would become a total mess).

Anyhow, in mode 2, there's no need for IRQs,NMIs or whatnot, so it will be impossible to stop the freeze. The only possibility is to detect the freeze afterwards.. f.e. by checking the position of sprites, or if the screen is still "open" if you have one of those open-border-no-badlines-screens.
2008-06-11 12:20
MikeD
Account closed

Registered: Jan 2006
Posts: 19
LOL I did that back in '89! :)
(kind of)

I downloaded a little program to the 1541, and the game "ticked" it several times a frame, then when someone pressed a cart button the comms would stop and the disk would crash. This meant that when the game restarts, the game locks up (or something) as it gets no comms back from the disk.

I wasn't allowed to use it though... :(
2008-06-11 12:51
WVL

Registered: Mar 2002
Posts: 886
Quote: LOL I did that back in '89! :)
(kind of)

I downloaded a little program to the 1541, and the game "ticked" it several times a frame, then when someone pressed a cart button the comms would stop and the disk would crash. This meant that when the game restarts, the game locks up (or something) as it gets no comms back from the disk.

I wasn't allowed to use it though... :(


but 1541u freezes the drive aswell ;)

Only thing it can't freeze is the Vic-II, SID and CIA.
2008-06-11 22:24
Count Zero

Registered: Jan 2003
Posts: 1825
Nice revival of the thread :)

@AlexC: very nice article on codebase - didn't read it completely but thought you'd like this:

"Freezepoint is using however JSR $DFD3. [this needs further explenation]"

Using a freezepoint requires the $DExx/$DFxx area to be active and CLI - otherwise it will fail (hope I am correct on the CLI :) ) -- DFD3 is AR specific to V5 and V6 only - DExx to 64k ROMs on RR and DFsumthing on AR V4 and even on some V5.2 versions.

Basically what happens on SF in monitor freeze mode is that the 3 bytes which are going to be trashed by the JSR $DFD3 are stored, the 20 d3 df inserted and on entering the freezer the bytes are restored --- there was some interesting small difference between using JMP and JSR - you might want to experiment. :)

Otherwise there is no real difference nor a way to detect whether the program was frozen using a freezepoint or the button.

Defeating the button is senseless anyhow - take it as the debugger it is supposed to be. :)

(Some nice posts and some interesting assumptions as well here - keep it up :))) )


l8r

Count Zero/CyberpunX/SCS*TRC
2008-06-12 07:09
MikeD
Account closed

Registered: Jan 2006
Posts: 19
I'd have to agree. Rather than just the fun of trying to "disable the button", there probably isn't a real reason anymore. In the past you used to try to stop people from copying you game or seeing some cool tech you'd worked for months on. Now.... I suspect not.

Still - its good fun trying! :)

I still remember the 1st time I saw a Plus4 game diable the reset into the montior. I didn't know anything back then (some might say not much has change..), and it was just so impressive. Course.... My plus4 was fab, you could actually turn the power off/on and the data would still be there!
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 - 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
Higgie/Kraze/Onslaught
Epyx
Mibri/ATL^MSL^PRX
Board Rider/Commodor..
csabanw
Krill/Plush
CA$H/TRiAD
Exile/Anubis
Guests online: 156
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (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 Lobo  (9.7)
4 Mikael  (9.7)
5 Archmage  (9.7)

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