Closed dirkwhoffmann closed 5 years ago
Was broken with commit f5b416a85e8f644ea8013b7396a46cfedfc86b8b
Had to roll back one of the VICII speed optimizations. In the optimized version, the zBuffer and the pixelSource were not reset after each cycle, but only after those cycles that access these variables. Unfortunately this leads to less robust, error-prone code. To fix the issue, I replaced
#define END_CYCLE \
dataBusPhi2 = 0xFF; \
xCounter += 8; \
if (unlikely(delay)) { processDelayedActions(); }
by the previous implementation:
#define END_CYCLE \
dataBusPhi2 = 0xFF; \
xCounter += 8; \
for (unsigned i = 0; i < 8; i++) { zBuffer[i] = pixelSource[i] = 0; } \
if (unlikely(delay)) { processDelayedActions(); }
Bug was not related to #387
There is another bug in this test case: Move sprite to the right until X coord reaches 014E:
Broken with commit e32a43d142873379752ec5cb286f6a95d6248ae1
3.2 alpha 10 seems to fix the issue:
http://www.dirkwhoffmann.de/virtualc64/VirtualC64_3.2alpha10.zip
Ok, this works for me too
It's ok for me too
VICE:
VirtualC64:
Might be related to #387