| |
ZIG
Registered: Feb 2004 Posts: 37 |
How do you get chars in top and bottom border?
I have seen some demos, starting with One Year Camelot (One Year Camelot 3) and again in the Camelot entry of DOTY2013 (Demo of the Year 2013) where there is text or logos in the top and bottom border - and it's not sprites as it covers the full area in high-res. How is this possible if you can only use one byte in $3FFF? I get that you could change $3fff on every line, like in the first screen of Science 451 demo Splended! (Splended!) but One Year Camelot and others I am referring to are not doing this afaik.
Any ideas? |
|
| |
Raistlin
Registered: Mar 2007 Posts: 680 |
You should immediately go hunt out a tool called “C64 Debugger”. It’s fantastic - and will allow you to see exactly how various things are done.
Just as a quick answer, as i’m on holiday and can’t check the particular demo you mention, I suspect that the “chars” will be a combination of expanded sprites (2x1 pixels) and $3fff (to mask out some pixels). |
| |
Rastah Bar Account closed
Registered: Oct 2012 Posts: 336 |
Here's two more great examples:
https://youtu.be/Ha0SYfMF0Pw?t=472
https://youtu.be/A0PygkgfuIQ?t=1798 |
| |
T.M.R Account closed
Registered: Dec 2001 Posts: 749 |
Quoting ZIGI have seen some demos, starting with One Year Camelot (One Year Camelot 3)
There's two different routines in play; the scroller is interlaced (so the sprites are standard 2:1 ratio pixels, pause VICE then single frame advance to see the two sets of sprite definitions) and the flicker is partially hidden by the dark sprite colour.
The arrows are using the ghostbyte, writing to it and then $d021 as the next command; if the horizontal smooth scroll is all the way over to the right and those two stores are right next to each other (as in STA $3FFF / STY $D021) they will look to have happened one cycle apart. Panoramic's Mentalic does the same thing in the last part to get the I in the lower border and the first part of Krestage uses it for the upscrollers I think?
Quoting ZIGHow is this possible if you can only use one byte in $3FFF? I get that you could change $3fff on every line, like in the first screen of Science 451 demo Splended!
The ghostbyte isn't limited to one change per line so there's quite a few things it can be used for; have a look at Irrational by Chorus for the lower border logo in the first part, there are writes to the ghostbyte one cycle after the screen starts and one cycle before it ends to draw the first I and last L. |
| |
WVL
Registered: Mar 2002 Posts: 902 |
I remember that the OYCiii method uses $d016 to 'cut holes' in the $3fff Ghostbyte. That way you can only make solid characters,so no 'O' or 'A'. |
| |
Digger
Registered: Mar 2005 Posts: 437 |
There's also a trick that Crossbow had invented (also used by Cruzer in GULBdata). It uses multicolour x-expanded sprites (where 1 color set to black), and sprite priority combined with $xfff. |
| |
T.M.R Account closed
Registered: Dec 2001 Posts: 749 |
TL;DR version: the ghostbyte, got to love it. =-) |
| |
Rastah Bar Account closed
Registered: Oct 2012 Posts: 336 |
Quoting WVLI remember that the OYCiii method uses $d016 to 'cut holes' in the $3fff Ghostbyte. That way you can only make solid characters,so no 'O' or 'A'.
I think the vertical border scrollers in Krestage use that method as well. |
| |
Knight Rider
Registered: Mar 2005 Posts: 131 |
Also the border scroller in More than you Deserve uses the ghostbyte |
| |
Digger
Registered: Mar 2005 Posts: 437 |
@Rastah Bar: Ghostbyte border scroll in Krestage uses ECM and $39ff. But I have no idea how Crossbow is doing it though. |
| |
ZIG
Registered: Feb 2004 Posts: 37 |
Awesome read. Will check some of the examples provided.
J |