Sprite erroneously stretches all the way to the right in x64sc
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
Bug in VIC-II emulation in x64sc, works properly in x64.
When disabling x-expansion of a sprite while the sprite is being displayed, and the sprite x-coordinate is an odd number, x64sc stretches the rightmost pixel all the way across the screen.
Attached is a small program that behaves differently in x64sc and on a real C64.
funny bug =) could you provide the source for the testprogram, so we can put it into the testprograms repository?
Sure! It's in xa65 format.
Interesting bug. I though my split test verified this particular case. Will have a look when I get the dev environment back up.
I think I know the problem and have added a few test cases that shows it. (ss-exp-unexp-hires.prg and ss-exp-unexp-mc.prg here -> https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/VICII/spritesplit/) I will however need test runs on different machine configurations to make sure I don't intruduce anomalies on 6569 vs 8565. (=photos)
Will try to get some people at csdb to run it.
Resolved by r28578 "Correctly reset x expansion flop when x expansion is disabled. Fixes bug 445."
https://sourceforge.net/p/vice-emu/code/28578/tree//trunk/vice/src/viciisc/vicii-draw-cycle.c?diff=51af4689e88f3d01589f7c22:28577
The fix was verified against two different C64C's (8565) and one breadbox (6569) and seems to work like intended.
added testprog to repo, i think we can consider this fixed now :)