| |
tlr
Registered: Sep 2003 Posts: 1791 |
Release id #161259 : Superfluid V0.5
I tried to make a freeze function with a little less stack corruption than usual for this but it seems it didn't work well on 1541u2. Thanks to insane for reporting this!
In the original (old) freezer implementation I more or less acknowledge the freeze immediately to allow switching in cart ram. This way timing critical stuff can be preserved directly to cart ram instead of pushing it to stack. This works _sometimes_ on 1541u2.
In the revised implementation (0.5) I do the regular, push to stack, then wait ~250 ms, then ack freeze. This works fairly reliably on 1541u2.
I guess the problem arises from some double trigging of the NMI but I'm not 100% sure. Looking at the 1541u2 source there doesn't seem to be any debouncing of the button in the FPGA at least. The specification for RR/NR states that the freeze button is digitally debounced so I was hoping that would be the same in all implementations.
REQUEST:
I don't have an actual RR or NR to test on but I did build one 0.5 variant with the original freezer and was hoping someone would be willing to test both that and the original one on RR and/or NR. Any takers?
original (old): superfluid-0.5x.zip
revised (current): Superfluid V0.5 |
|
... 20 posts hidden. Click here to view all posts.... |
| |
Mr.Ammo Account closed
Registered: Oct 2002 Posts: 228 |
Quote: Would be super! If it works on RR/NR, maybe I can convince Gideon to add debouncing in 1541u2 and friends. :)
I have flashed it on a retro replay (revised revision october 2004). The current version that is. I can also flash the old version to it.
Any specifics you would like me to test and you want to know? |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Fantastic!
I'd like to know if freezing and then unfreezing (X in the freeze monitor) is stable with the two versions (this needs to be repeated several times). On 0.5x it fails on 1541u2 most of the time. 0.5 works. The theory is that both 0.5 and 0.5x work on RR.
It should be sufficient to freeze the ready prompt but you could try something else. Note that some timer aspects have known problems (TOD and CIA2 interrupts). |
| |
AlexC
Registered: Jan 2008 Posts: 299 |
I'm happy to report that 0.5 current works so far on both of my MMC Replay and RR (red board edition). |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Great! Meanwhile I've gotten a mail stating both versions work on EasyFlash3 (CLPD Version 1.1.1). (thnx HTH!) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11391 |
on chameleon it freaks out in interesting ways, looks like in the reset screen (extended basic) it keeps resetting over and over. when i press run/stop i get the menu. kinda weird, what feature are you using there that no other existing RR rom uses? =) (v0.4 worked fine btw) |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
I guess the problem could be that I'm trying to do something Atomic Power like in the bank switching code. I switch in ram temporarily to preserve the state of $de00 and $01. (RAM contains more or less the same code as the ROM at $de00)
Something like this was introduced in 0.5:.C:de5f 08 PHP
.C:de60 48 PHA
.C:de61 A9 10 LDA #$10
.C:de63 48 PHA
.C:de64 A9 22 LDA #$22
.C:de66 78 SEI
.C:de67 8D 00 DE STA $DE00
.C:de6a A5 01 LDA $01
.C:de6c 8D 86 DE STA $DE86
.C:de6f 09 07 ORA #$07
.C:de71 85 01 STA $01
.C:de73 68 PLA
.C:de74 8D FC DE STA $DEFC
.C:de77 8D 00 DE STA $DE00
.C:de7a 68 PLA
.C:de7b 28 PLP
.C:de7c 60 RTS Maybe worth to check rr-freeze on it if you haven't.
The $22 mode above might confuse things if NR is emulated instead of RR. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11391 |
wouldnt that mean it does the same also on nordic replay? (chameleon implements nordic replay) |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Probably but I thought the $22 mode would be fine on both RR and NR as I only rely on the $de00 mapping part of the mode. Maybe I missed something? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11391 |
well technically the $22 mode doesnt exist on RR nor AR... anything could happen, if you want this ROM to work on all of them, you shouldnt use that mode - its nordic power (or NR) specific |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Maybe not in the sw, but it _is_ documented in that inside replay document from Jens and does work on most of the implementations tried. I'd love an rr-freeze dump for the chameleon, at least for de01=40. It might be something else I trigger.
Please? :) |
Previous - 1 | 2 | 3 - Next |