Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Bright pixels beside sprite in lower border
2023-01-11 20:33
dyme

Registered: Nov 2018
Posts: 14
Bright pixels beside sprite in lower border

Hi all!

I dug out my real C64 to test a new PSU and revisited my demo Hello World. In the transition screen a bug showed up: on the left side of the sprites containing the READY.-prompt, just as they enter the lower border, a bright line appears.

This only happens on real hardware, VICE and Ultimate64 do not emulate this behaviour. It also showed up on the party hardware, which I now remember irked me no end (lesson learned: always test on the real thing...)
I've seen it on two other machines as well, so it's reproducible.

What is that effect, and how to counteract it?

I probably could move the sprites 1 pixel left and even have the first pixel column set to mask that line... but if it is so common it feels strange that this bug doesn't come up more often in discussion about border sprites.
2023-01-11 20:39
tlr

Registered: Sep 2003
Posts: 1714
Quote: Hi all!

I dug out my real C64 to test a new PSU and revisited my demo Hello World. In the transition screen a bug showed up: on the left side of the sprites containing the READY.-prompt, just as they enter the lower border, a bright line appears.

This only happens on real hardware, VICE and Ultimate64 do not emulate this behaviour. It also showed up on the party hardware, which I now remember irked me no end (lesson learned: always test on the real thing...)
I've seen it on two other machines as well, so it's reproducible.

What is that effect, and how to counteract it?

I probably could move the sprites 1 pixel left and even have the first pixel column set to mask that line... but if it is so common it feels strange that this bug doesn't come up more often in discussion about border sprites.


Cool! Can we have a clip of it happening?
2023-01-11 20:54
trident

Registered: May 2002
Posts: 74
It looks like the VIC gray dot bug, which is triggered by writing to a visible color register on the new VIC chip. In this case, I would assume that you are writing to $d021 at the exact same cycle that the border ends, which results in a color $f pixel at that location.

In newer Vice versions it is possible to enable emulation of this bug by enabling the 8565 VIC chip in Settings -> Machine -> Model. It is visible when I run the demo in Vice 3.7 here.
2023-01-11 21:02
tlr

Registered: Sep 2003
Posts: 1714
Quoting trident
It looks like the VIC gray dot bug, which is triggered by writing to a visible color register on the new VIC chip. In this case, I would assume that you are writing to $d021 at the exact same cycle that the border ends, which results in a color $f pixel at that location.

In newer Vice versions it is possible to enable emulation of this bug by enabling the 8565 VIC chip in Settings -> Machine -> Model. It is visible when I run the demo in Vice 3.7 here.

Didn't see that at first, good eye! Was looking for a white horizontal line. :) There is also an occasional grey dot in the right border.

If you run the demo with 6569 emulation you will one extra pixel in the top left corner at the same point in the demo instead. This is because color changes are 1 pixel delayed on the 6569 compared to the 8565.
2023-01-11 21:20
dyme

Registered: Nov 2018
Posts: 14
Thanks trident, you're of course right, it's easily seen on newer VICE versions, I'll have to get used to the "new" GTK-gui after all.

Puh, this really shows how much there is to know about all the different machine versions out there.

So the solution would be to ensure the screen color change is either a few cycles earlier in the border or adjust the end of the screen via $D011 to be on a different line than any color change?

Screengrab of a relevant frame from scenesat: https://imgur.com/a/kxGai0C
2023-01-11 21:33
tlr

Registered: Sep 2003
Posts: 1714
Quoting dyme
So the solution would be to ensure the screen color change is either a few cycles earlier in the border or adjust the end of the screen via $D011 to be on a different line than any color change?

Like trident writes, as long as the color register being written isn't currently being displayed you'll be fine. Note that when stepping through the frames, sometimes a line appears in the right border instead. This suggests you are writing $d020 when it is displayed.

Not sure what you mean by the $d011 part.
2023-01-11 21:46
dyme

Registered: Nov 2018
Posts: 14
I got confused by "exact same cycle the border ends", I thought it had something to do with the horizontal borders...

I think now I got the gist of the problem, already discussed here: Controlling that colour change bug thing

TLDR: It seems whenever you write to a VIC-II color register, that register behaves as if it contains $f for the duration of the first pixel of that cycle.
Although the magnitude of the effect is reported to vary even within different VIC-II models and temperatures

I wonder how all these raster-splits were done that I remember, because they sure must have run into the same problem. But maybe I had a different VIC model back then.
2023-01-11 21:53
tlr

Registered: Sep 2003
Posts: 1714
Quoting dyme
I wonder how all these raster-splits were done that I remember, because they sure must have run into the same problem. But maybe I had a different VIC model back then.

As I hinted above, on the 6569 the color change will appear one pixel late instead of producing a grey dot. Emulating 8565 vs 6569 can be switched on the fly in vice.
2023-01-11 22:07
trident

Registered: May 2002
Posts: 74
@tlr: very cool, I didn't know that the 6569 would delay the color change by one pixel - very visible, now that you mention it!
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Apollyon/ALD
Smasher/F4CG
mutetus/Ald ^ Ons
ϵʟʞ/ₐтₐ
Krill/Plush
Guests online: 89
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Bromance  (9.6)
10 Memento Mori  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.8)
4 Acidchild  (9.7)
5 Starlight  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.049 sec.