| |
6R6
Registered: Feb 2002 Posts: 245 |
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.... |
| |
AlexC
Registered: Jan 2008 Posts: 299 |
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. |
| |
Martin Piper
Registered: Nov 2007 Posts: 722 |
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.
|
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
@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 |
| |
AlexC
Registered: Jan 2008 Posts: 299 |
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. |
| |
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. |
| |
WVL
Registered: Mar 2002 Posts: 902 |
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. |
| |
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... :(
|
| |
WVL
Registered: Mar 2002 Posts: 902 |
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. |
| |
Count Zero
Registered: Jan 2003 Posts: 1932 |
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 |
| |
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 |