| |
Wile Coyote Account closed
Registered: Mar 2004 Posts: 646 |
Limitations - Sprites in the Borders
hello,
I was thinking, has anyone drawn up a doc with (pictures :)explaining *all known* possibilities with placing sprites into the border areas of the screen.
I know:
8 sprites can be placed in the upper and lower borders.
7 sprites can be placed in the side borders.
I was thinking, what about the corner borders,is that classed as a sideborder or a top or bottom border (8 sprites).
Another question :) when 7 sprites are placed into the sideborders can the 8th free sprite be placed into the main (center) screen areas or by opening up the side borders, is the option for an 8th sprite not available.
I am asking these questions as i am thinking about designs that use the border areas :)
thanks
/wec
|
|
... 35 posts hidden. Click here to view all posts.... |
| |
Jetboy
Registered: Jul 2006 Posts: 299 |
Sorry for double posting.
At least now i finaly understand why opening sideborders works.
|
| |
Style
Registered: Jun 2004 Posts: 498 |
why was it so hard to understand? :)
|
| |
Smasher
Registered: Feb 2003 Posts: 519 |
oh yeah, 10 yrs later necro-posting! :)
so: sideborder sprites at badline, using no fld or similar tricks, no reu (hehe), etc... 4 is still the practical not theoretical max you can get, or? |
| |
Flavioweb
Registered: Nov 2011 Posts: 463 |
If i understand things correctly, is possible to have 7 sprites (from 0 to 6) using INC $D016 at cycle 10 of the line (because of last 2 Write cycles of INC) to open border:
./victimer -b -s 127
| 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 |
0 |1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 |
| |===========01020304050607080910111213141516171819202122232425262728293031323334 353637383940===========| |
--|----------------------------------------------------------------------------- -------------------------------------------------|
| x x x W W W W W w |
| r r r r rcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgc g |
ss|3sss4sss5sss6sss7 0sss1sss2sss|
| i i i |
--|----------------------------------------------------------------------------- -------------------------------------------------|
| ^(close sideborder) ^(open sideborder)
| ^---FLI-----------------> ^-----^(double line)
| ^---DMA Delay--------------------------------------------------------------^
badline sprenable=7f
CPU: 3 (+ 5= 8)
VIC: 54 (+ 1=55)
63
x - CPU regular cycles
W - CPU write cycles
w - CPU 3rd write cycle
c - VIC video ram
g - VIC color ram
0..7 - VIC sprite pointer fetches
s - VIC sprite data accesses
i - VIC idle accesses |
| |
Joe
Registered: Apr 2002 Posts: 227 |
You can do quite a lot with the restrictions. Here are two examples from last year, coded by Firehawk/Hoaxers.
Disconnect, October |
| |
soci
Registered: Sep 2003 Posts: 479 |
If i understand things correctly, is possible to have 7 sprites (from 0 to 6)
I assume PAL VIC-II here.
It's not sprites 0 to 6 but 1 to 7 and can be done with a SCPU for example. (Popel Premiere)
Once I've tried to write between the end of character DMA and sprite 0 DMA (using custom hardware) but it's futile. AEC is low in that "gap" so the write ends up in RAM and not in the VIC-II.
So it seems the maximum is 7 sprites on a bad line if you want to open the border with a PAL VIC-II.
No I haven't tried to route around the PLA to see if the VIC-II accepts the write or not. Went too far already ;)
However with a NTSC VIC-II it might work as there's a wider gap and even BA opens for a cycle.
Did anyone tried 8 sprites with open border and badlines on NTSC using a SCPU? In VICE it seems doable, but it does not mean it really can be done.
It could be a world-first! ;) |
| |
Oswald
Registered: Apr 2002 Posts: 5086 |
8 sprites without badlines is not possible? sprite 0 conflicts with the d016 write needed ? |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Nah. 8 sprites is very well possible without badlines. Just use any RMW instruction to avoid the sprite 0 DMA,ie DEC $D016: INC $D016. |
| |
Digger
Registered: Mar 2005 Posts: 427 |
Resurrecting this thread.
Any examples of:
8 sprites over no-badline bitmap (duplicated first charline color RAM attributes)
with side borders
no line-crunching
? |
| |
Mixer
Registered: Apr 2008 Posts: 447 |
>8 sprites over no-badline bitmap (duplicated first charline color RAM attributes)
I believe that the line repeat and side border opening cannot be done at the same time as the line repeat needs to be done around the cycles where the border is opened. At least not on stock c-64. Not sure about REU. |
Previous - 1 | 2 | 3 | 4 | 5 - Next |