| |
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.... |
| |
Raistlin
Registered: Mar 2007 Posts: 575 |
Quote: Still don’t know what is going on. Is it black masking of the second pixel row with black ones ?
The ghostbyte is a single byte in memory that “fills” the area uncovered by opening top/bottom border.. as well as various other areas all the way down the screen depending on D011 condition etc. That byte can be changed on each raster line of the screen and is used to “mask” all 40 chars across the screen on each line.
The ghostbyte can -only- be drawn as black.. hence why most demos using it will only have black screen/border so that the ghost byte is, umm, a ghost. |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
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: 11147 |
Ah yes, idle-gfx. I only recall the VIC-Article using that term :) |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting Krill(or $3bff with further ECM masking) *$39ff. =) |
| |
Oswald
Registered: Apr 2002 Posts: 5028 |
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: 5028 |
@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: 11147 |
"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: 1381 |
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: 77 |
@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. |
Previous - 1 | 2 | 3 | 4 - Next |