Virtualc64: VICE test sprite0move fails in V3.2 alpha 8

Created on 24 Nov 2018  路  7Comments  路  Source: dirkwhoffmann/virtualc64

VICE:
bildschirmfoto 2018-11-24 um 13 31 44
VirtualC64:
bildschirmfoto 2018-11-24 um 13 30 31
Might be related to #387

Priority-High bug

Most helpful comment

All 7 comments

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:

bildschirmfoto 2018-11-25 um 12 15 35

Broken with commit e32a43d142873379752ec5cb286f6a95d6248ae1

Ok, this works for me too

It's ok for me too

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cfwdman picture cfwdman  路  6Comments

mortinus picture mortinus  路  6Comments

tsupplis picture tsupplis  路  3Comments

rossimariolee picture rossimariolee  路  4Comments

bluecursor picture bluecursor  路  5Comments