| |
chriz74
Registered: Apr 2009 Posts: 33 |
What is going on with those ghost bytes in the Ghost demo?
Can anyone explain what’s the catch? |
|
... 29 posts hidden. Click here to view all posts.... |
| |
Krill
Registered: Apr 2002 Posts: 2856 |
Quoting chriz74Still don’t know what is going on. Is it black masking of the second pixel row with black ones ? What Gpz and Raistlin said.
The pattern of black/transparent pixels is read by VIC when it's idle but still needs to display char row data (just POKE 53265,24 and look at the bottom of the display window within the borders).
VIC falls back to read data from an all-1s address within its bank, so $3fff (or $3bff with further ECM masking) and reads the byte to display from there.
Quoting chatGPZNow? It was commonly used since the 80s really :) I wouldnt even be able to name another term for it right now *shrug* I used to call it just "idle byte (pattern)". =)
But yeah, "ghostbyte" has been used "informally" and is a lot catchier (and sillier). :D |
| |
chatGPZ
Registered: Dec 2001 Posts: 11154 |
Ah yes, idle-gfx. I only recall the VIC-Article using that term :) |
| |
Krill
Registered: Apr 2002 Posts: 2856 |
Quoting Krill(or $3bff with further ECM masking) *$39ff. =) |
| |
Oswald
Registered: Apr 2002 Posts: 5031 |
Quote: Still don’t know what is going on. Is it black masking of the second pixel row with black ones ?
yes and if you are very clever you can even use the sprite priority to select if a sprite pixel is behind or infront of the ghost byte.
sprites can be put behind background pixels, but they will only show up behind '10' and '11' bitpais, they will show infront of '00' and '01'. put ghostbyte into multicolor mode, offset sprites and ghostbyte 1 hires pixel, and now you can fake hires looking scroller with sprites and ghostbyte.
(if I'm not wrong, I just recently read this trick who has that nice blog about demo effects) |
| |
Oswald
Registered: Apr 2002 Posts: 5031 |
@Krill its not really an idle byte either, ghotbyte happens because VICII reading and displaying memory is hardwired so much that it cant just idle and not do it :P :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11154 |
"read from precharged address byte" :) |
| |
Frostbyte
Registered: Aug 2003 Posts: 174 |
I personally absolutely love the name "ghostbyte". It sounds something mythical and magical, rather than just-another-mundane-hardware-bug. :) In fact when I heard about it in early 90s I did think the 1337 coders were doing something that is simply impossible. Magical, even. |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1382 |
Yes, I always liked the name too.
but also9:29 PM <cjam> Geisterbyte!
9:41 PM <Krill> cjam: Geistbyte :) it's but one ghost! :D
Works for me!
(and indeed, I was wondering if there was some sprite priority inversion/cookie cutter stuff going on in some of those parts) |
| |
trident
Registered: May 2002 Posts: 80 |
@frostbyte: if the ghostbyte would have been white instead of black, then "the frostbyte" would have been a pretty cool name for it :)
as to the op's question: this article has an explanation of the various ghostbyte techniques used in the demo: https://github.com/trident64/c64/blob/main/unexpanded-border-sc..
and a presentation on the topic from last year's fjälldata here: https://scenesat.com/videoarchive/93fbf2f3-aab5-11ed-931f-00505..
The Ghost actually uses a range of different ghostbyte techniques in the different parts, some use masking, some use a shine-through approach. |
| |
Oswald
Registered: Apr 2002 Posts: 5031 |
Quote: "read from precharged address byte" :)
dont think its precharged in c64 if address line or data line (fli!) is not driven it goes to high level, VICII probably doesnt drive the address bus for the ghost byte, tho that would defeat some of the hardwrited behaviour. |
Previous - 1 | 2 | 3 | 4 - Next |