Not sure how to post this, but the program "Border Polizei" shows up as a black background and a centipede like screen.
This happens on x64 but not on x64sc.
The real problem is not that, but Border Polizei shows up in the same way on my C64 (original breadbin).
I am curious about the reason.
Sure it's something about timing, and I know that timing in x64 is not pricise, but timing on my C64 is ok.. so I don't understand what is going on.
wtf.
hm... why is this invalid?
It works on C64. It works in x64sc. x64 is deprecated and shouldn't be used. I don't know the code of that program either, and i am not going to debug someones C64 setup, should it not run a certain program not written by me.
Last edit: gpz 2025-02-09
i do not have a real c64, soi canot do any testing.
zibri was saying x64and x64sc are acting differently, but then:
so my impression was that on his (original breadbin) it looks the same as on x64 but NOT x64sc.
Super rarely this may happen on "real" hardware - the only reports i have seen were non original C64s or somehow modified ones. In any case, this may warrant a bug report for that program - not for VICE.
I don't have a breadbin to test but there's a report from a source potentially more reliable than Zibri about problems on a real C64:
VICE v3.1 x64 is stuck in this loop:
SHX $FF82,Ylooks to be the primary suspect.Deekay was using his Matthias-infested portable C64 that was somehow not 100% compatible with real C64s. The same problem exists with all programs using that timer stabilization method. (One of Krills latest 4k Intros comes to mind). It was apparently fixed in a later version of that Hardware.
And sure - its those illegal opcodes which simply do not work correctly in x64. Do not use x64.
Last edit: gpz 2025-02-09
I think I can get what the OP is talking about
on dtv in standard settings and on c64 ntsc
x64sc NTSC getting stuck in the loop is quite interesting. It should escape as soon as RDY goes low during the 4th cycle of
SHX $FF82,Y, why would it never happen?Find the thread on csdb (i dont have a link handy, sorry), there might be some details.
Does it hang on a real NTSC machine too? Then all is fine :) (The program wont work on NTSC anyway, of course)
I dont have an NTSC C64 unfortunately. The success condition for the loop escape on PAL x64sc is:
break 94d if ((RL & 7) == 3) && (CY == 8). I checked it on NTSC x64sc and due to timing of the loop (20 cycles if I count correctly) it was satisfied only on lines $b, $13, $103 where no bad lines occur . To see if there's any variation in that behavior I modified the breakpoint tobreak 94d if ((RL & 7) == 3) && (RL != $b) && (RL != $13) && (RL != $103) && (CY == 8)and ran the program a few times. After a few attempts the breakpoint was hit:This time
SHX $FF82,Ywas executed on line $2b proving that there's some randomness, probably related to what line/cycle the loop starts with. After many more attempts I managed to run the program withSHX $FF82,Ytriggered at line $3b causing the program to escape the loop and fail later. I wondered if that initial randomness could cause variable behavior on a PAL C64 but I couldn't ever get it to hang on the Centipede screen. If Zibri is serious about this problem he should write a test case where the loop is run starting with a configurable line/cycle and check the result.won't happen