| |
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: 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).
The superfluid-0.5x version's freezer is very unstable. Almost every time I freeze and return from freeze back to the c64 screen, it fucks up what was happening there. This even happens just with the C64 basic screen.
The Superfluid V0.5 version seems to work flawless (and thus stable).
I tested both on the Retro Replay revised edition October 2004.
A strange thing I noticed is that when I enter i*1000 or I*0800 in monitor, it will always start scrolling from address $A100 and for the other from $A080, etc. I must say I didn't read the manual, so I don't know if this is correct behaviour ;-) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11391 |
http://www116.zippyshare.com/v/TtZt1n0A/file.html (plain binary/no load addr)
its likely hitting something that isnt fully implemented... i remember at least some of the ram banking stuff isnt (no software using it...). but could be some other bug ofcourse =)
reminds me we still need to try this program on real AR and Nordic Power..... |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Quote: The superfluid-0.5x version's freezer is very unstable. Almost every time I freeze and return from freeze back to the c64 screen, it fucks up what was happening there. This even happens just with the C64 basic screen.
The Superfluid V0.5 version seems to work flawless (and thus stable).
I tested both on the Retro Replay revised edition October 2004.
A strange thing I noticed is that when I enter i*1000 or I*0800 in monitor, it will always start scrolling from address $A100 and for the other from $A080, etc. I must say I didn't read the manual, so I don't know if this is correct behaviour ;-)
So my "trash less stack" approach is not very good in practice then. Will stick with the safe appoach until I get a better idea. Thanks for testing and reporting!
The monitor isn't based on the action replay one so no "I*" command. The "A" is from obviously not doing error checking of parameters very well. Noted. |
| |
Mr.Ammo Account closed
Registered: Oct 2002 Posts: 228 |
Quote: So my "trash less stack" approach is not very good in practice then. Will stick with the safe appoach until I get a better idea. Thanks for testing and reporting!
The monitor isn't based on the action replay one so no "I*" command. The "A" is from obviously not doing error checking of parameters very well. Noted.
I also tested both versions of the carts on my MMC Replay. Same behaviour as on the Retro Replay. The .5X version shows the same behaviour and the current .5 version works stable/flawlessly.
Ah, see? I should have read the manual. Although, now you know there's some missing error checking. |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Quote: http://www116.zippyshare.com/v/TtZt1n0A/file.html (plain binary/no load addr)
its likely hitting something that isnt fully implemented... i remember at least some of the ram banking stuff isnt (no software using it...). but could be some other bug ofcourse =)
reminds me we still need to try this program on real AR and Nordic Power.....
Thanks!
It does have some strangeness with the $22 mode, see below, but nothing that is obvious to cause the problems you are seeing. Maybe it is something completely different...
I've built a variant that is identical to 0.5x, but uses $20 instead of $22 in the banking code. If you want you can try that and see if it changes anything: superfluid-0.5y.zip
x01xx000 -> $DE00 (RAM) x00xx000 -> $DE00 (ROM)
9E: 0 1 2 3 0 1 2 3 A* B* C* D* E* F* G* H*
BE: - - - - - - - - - - - - - - - -
DE: 0 0 0 0 0 0 0 0 A* B* C* D* E* F* G* H*
DF: - - - - - - - - - - - - - - - -
FE: - - - - - - - - - - - - - - - -
x01xx001 -> $DE00 (RAM) x00xx001 -> $DE00 (ROM)
9E: 0 1 2 3 0 1 2 3 A* B* C* D* E* F* G* H*
BE: A* B* C* D* E* F* G* H* A* B* C* D* E* F* G* H*
DE: 0 0 0 0 0 0 0 0 - - - - - - - -
DF: - - - - - - - - - - - - - - - -
FE: - - - - - - - - - - - - - - - -
x01xx010 -> $DE00 (RAM) x00xx010 -> $DE00 (ROM)
9E: A* B* C* D* 0 - - - - - - - - - - -
BE: 0 0 0 0 E* - - - - - - - - - - -
DE: 0 0 0 0 0 0 0 0 A* B* C* D* E* F* G* H*
DF: - - - - - - - - - - - - - - - -
FE: - - - - - - - - - - - - - - - -
x01xx011 -> $DE00 (RAM) x00xx011 -> $DE00 (ROM)
9E: 0 1 2 3 0 1 2 3 A* B* C* D* E* F* G* H*
BE: - - - - - - - - - - - - - - - -
DE: 0 0 0 0 0 0 0 0 - - - - - - - -
DF: - - - - - - - - - - - - - - - -
FE: A* B* C* D* E* F* G* H* A* B* C* D* E* F* G* H* |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Quote: I also tested both versions of the carts on my MMC Replay. Same behaviour as on the Retro Replay. The .5X version shows the same behaviour and the current .5 version works stable/flawlessly.
Ah, see? I should have read the manual. Although, now you know there's some missing error checking.
Again thanks for testing! I really hoped the .5X would work out but that settles it. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11391 |
0.5y indeed works on chameleon, so its that $22 mode. interesting :) i added the nordic power compatibility just recently, so perhaps its just a bit broken =P |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
Quote: 0.5y indeed works on chameleon, so its that $22 mode. interesting :) i added the nordic power compatibility just recently, so perhaps its just a bit broken =P
Brilliant! I believe we have a winning setup then! :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11391 |
i'd prefer to fix the emulation, of course =D |
| |
tlr
Registered: Sep 2003 Posts: 1791 |
A new release is out: Superfluid V0.6
It includes three different variants: Retro Replay, Nordic Replay and Retro Replay experimental.
The Retro Replay variant should work on all hardware variants and clones.
I've also included a small document detailing the expected cart mappings, derived from the actual Retro Replay and Nordic Replay hardware from iComp. |
Previous - 1 | 2 | 3 - Next |