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 > Weird ghostbyte glitch (8 sprites+borders open)
2024-07-04 21:11
Starfox

Registered: Jul 2014
Posts: 42
Weird ghostbyte glitch (8 sprites+borders open)

Hello

I'm fiddling with some border sprites and ghostbyte patterns/colors.

I'm alternating the bit pattern $aa (10101010) and $55 (01010101) on each rasterline, but at two points there's like a glitch where the same pixel is repeated twice.

Ohh and, I have 8 sprites displayed on each rasterline,and the borders are all open (the sprites are blank to show the problem).

Here's a screenshot:

https://www.dropbox.com/scl/fi/g6nt8giewsfp2rdw5g4tl/weird-ghos..

EDIT: It's not a VICE bug. I suspect its because of the timing of the writes or something sinister?

Cheers!
 
... 22 posts hidden. Click here to view all posts....
 
2024-07-06 13:35
chatGPZ

Registered: Dec 2001
Posts: 11194
Quote:
To me it seems like an oversight of whoever did the die shrink.

My guess would be they simply didn't care - or even knew about the "problem" :)
2024-07-06 15:01
Martin Piper

Registered: Nov 2007
Posts: 658
I'm really surprised they apparently didn't run a set of recorded signals through the old and new VIC chips and test the outputs for identical (or even roughly close) video. Even a simple test of repeatedly writing black to the border register would have shown important differences.
2024-07-06 15:28
chatGPZ

Registered: Dec 2001
Posts: 11194
I'm not - mid-line register changes would probably be simply considered "wrong".
2024-07-06 16:11
Starfox

Registered: Jul 2014
Posts: 42
Quote: It's probably the $d016 change with the fine pixel scroll mid scan line. C64DebugGUI is clearly showing the d016 updates happen around those positions on the screen.

Although a thought comes to mind, you know how when writing the same value to $d020 we get single pixel grey dots on new VIC and old VIC doesn't show grey dots? This is due to the written latch internally showing the wrong value for a tiny portion of time and this gets displayed for a pixel.

I was wondering if this "written latch showing the wrong value for a small amount of time" also happens with the other internal registers like X scroll for a pixel?

Unfortunately I don't have a real new VIC C64 working at home to test this anymore.


I didn,y (lol i've been coding too much) know about C64DebugGUI for c64debugger. Cool! 😎

BTW, thing happening was already suggested by HCL and Trident in the first 3 replies, so I'm happy with that 😉
2024-07-06 17:54
tlr

Registered: Sep 2003
Posts: 1744
Quote: I'm not - mid-line register changes would probably be simply considered "wrong".

Probably, but it is still occasionally visible even from basic.

Assuming it relies on the external clocks it might not even have shown up in initial testing. Could have been only noticed after the full redesign of the c64 was done, and then it would have been far to expensive to correct.

For the 6569 there were quite a few die revisions. For the 8565 most of them are R2 IIRC.
2024-07-06 19:45
ws

Registered: Apr 2012
Posts: 240
does anybody know what causes the halting of the system mentioned in post #12 when #$c0 is used?
2024-07-06 19:49
chatGPZ

Registered: Dec 2001
Posts: 11194
I'm sure that was caused by something else, not the value in $d016
2024-07-07 12:21
Starfox

Registered: Jul 2014
Posts: 42
Quote: I'm sure that was caused by something else, not the value in $d016

It seemed like it was frozen. I has testing using $d016,x not noticing I was using x in the loop as well, so everything from d016+ got set to $c0.

But in the debugger, none of the code in the irq was running. Only the jmp outside the irq.

ws:

Here's the prg:
https://www.dropbox.com/scl/fi/9bm26wubyz2c8lssei3nv/whatsgoing..
2024-07-07 18:24
tlr

Registered: Sep 2003
Posts: 1744
Quoting Starfox
It seemed like it was frozen. I has testing using $d016,x not noticing I was using x in the loop as well, so everything from d016+ got set to $c0.

But in the debugger, none of the code in the irq was running. Only the jmp outside the irq.

Yeah, well writing $c0 to $d01a will kill further raster irqs.
2024-07-07 19:23
ws

Registered: Apr 2012
Posts: 240
ah. i see. thanks!
Previous - 1 | 2 | 3 | 4 - Next
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
dlee
The Human Co../Maste..
krissz
Tchad/Jam
Krill/Plush
cadaver/covertbitops
Scrap/Genesis Project
grass/LETHARGY
Guests online: 84
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.7)
6 Uncensored  (9.6)
7 Comaland 100%  (9.6)
8 No Bounds  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 It's More Fun to Com..  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Nostalgia  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Offence  (9.3)
Top Fullscreen Graphicians
1 Joe  (9.7)
2 Veto  (9.6)
3 Facet  (9.6)
4 The Sarge  (9.6)
5 Carrion  (9.5)

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