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 Productions > Is 120 the max number of full height sprites that can be displayed?
2002-11-17 17:59
Shadow
Account closed

Registered: Apr 2002
Posts: 355
Is 120 the max number of full height sprites that can be displayed?

I've been on a nostalgia trip and checking out some demos from the real oldschool, record-breaking times. So I started thinking a bit about the world record for most sprites in a multiplexer. I started calculating, and got the following:

8 sprites can be displayed per 21 lines (since a sprite is 21 pixels high). Now you have 256 y-positions available to place sprites on. That should give us 96 or maybe 104 (I wasn't quite sure on this).
Since I saw demos with 112 and even 120 sprites (think it was in Ice Cream Castle/Crest), this couldn't be the limit.
Anyway, I started coding on a little test program and discovered that sprites placed on position $01 to $1e was displayed twice (both in the upper and lower border. I guess this is common knowledge, but I've been out of the loop for a while!)
Now, those $1e lines gives us the possibility to display two batches of 8 sprites that essentially gets doubled, thus we have 104+116 = 120 sprites as the absolute maximum.
Is this correct reasoning? Any oldtimer hardware specialits who can shed some light on this?
 
... 67 posts hidden. Click here to view all posts....
 
2011-11-13 19:54
WVL

Registered: Mar 2002
Posts: 886
Quote: i'd probably try something with overlapping sprite data in a game... 2 screens quickly get very annoying when scrolling comes into play :)

What groepaz says. You have sprites with overlapping sprite data, f.e. :

last 5 pixelrows of spriterow 1 is the same as last 5 pixelrows of spriterow 2 (you dont use the last 5 pixelrows of spriterow 2, they're only there to make multiplexing easy).

Next pixelrows 12-16 of spriterow 2 is the same as pixelrows 6-11 of spriterow 3 (you dont use.. bla bla, see above).

Same as above, except you the overlap moves around, blabla
2011-11-13 21:10
Slammer

Registered: Feb 2004
Posts: 416
Quote: Imo a sprite has been displayed when the internal offset has reached 62 and the current 24-bit shift register being exhausted => xbow is currently king of the hill.

I think Jackassers definition is appealing. It's a precise definition that allows spritechrunching.

The nine sprite argument doesn't bother me. I think of it as 'There have still only been showed 8 sprites on one 'spriteline'. Crossbow just exploids that spritelines
aren't perfectly aligned with the screenlines.
2011-11-13 22:02
Digger

Registered: Mar 2005
Posts: 421
@WVL: hmmm OK, but did you mean first 5 pixelrows of spriterow 2 rather than last 5? Like:

spriterow 1:
1 AAA
...
21 AAA

spriterow 2:
1 AAA
2 AAA
3 AAA
4 AAA
5 AAA
6 BBB
...
21 BBB
2011-11-14 06:04
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: I think Jackassers definition is appealing. It's a precise definition that allows spritechrunching.

The nine sprite argument doesn't bother me. I think of it as 'There have still only been showed 8 sprites on one 'spriteline'. Crossbow just exploids that spritelines
aren't perfectly aligned with the screenlines.


Indeed, and addition to my definition is that:

When offset 62 is reached AND the 24-bit shift register is empty, then the sprite is finished. And this is _the_ definition the VIC itself use. After this the VIC will start comparing y-positions to the raster beam again etc. not before.

Regarding the 9th sprite I'm completely with you there.
2011-11-14 06:06
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: @WVL: hmmm OK, but did you mean first 5 pixelrows of spriterow 2 rather than last 5? Like:

spriterow 1:
1 AAA
...
21 AAA

spriterow 2:
1 AAA
2 AAA
3 AAA
4 AAA
5 AAA
6 BBB
...
21 BBB


No, because when you switch pointers you do that at the end of sprite 1, and independent of raster line (within those last 5) is doesn't matter if you're showing row 1 or 2, it's still just AAA. After a while the sprites will multiplex and start showing the top of sprite row 2 which will be the BBB lines automatically and perfectly aligned.
2011-11-14 06:20
tlr

Registered: Sep 2003
Posts: 1714
Quoting JackAsser
When offset 62 is reached AND the 24-bit shift register is empty, then the sprite is finished. And this is _the_ definition the VIC itself use. After this the VIC will start comparing y-positions to the raster beam again etc. not before.

AFAIK the contents of the shift register doesn't really affect the y-compare.
2011-11-14 07:38
HCL

Registered: Feb 2003
Posts: 716
@Skate: 112 or 120 *does* matter since we have the same situation whatever we do. if we count 120 sprites instead of 112, we could also have 152 instead of 144. If you count displaying one single rasterline of a sprite as valid, then we're into deep waters.
2011-11-14 07:54
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: Quoting JackAsser
When offset 62 is reached AND the 24-bit shift register is empty, then the sprite is finished. And this is _the_ definition the VIC itself use. After this the VIC will start comparing y-positions to the raster beam again etc. not before.

AFAIK the contents of the shift register doesn't really affect the y-compare.


True, but that was easier to write than saying that: "when fetching the 3rd byte into the shift register and that offset is 62, then we're done". :)
2011-11-14 07:55
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: @Skate: 112 or 120 *does* matter since we have the same situation whatever we do. if we count 120 sprites instead of 112, we could also have 152 instead of 144. If you count displaying one single rasterline of a sprite as valid, then we're into deep waters.

Imo, any part of a sprite (see my definition of a sprite) visible should be counted.

Also, since showing just a bit of a sprite will still eat cycles for the whole sprite it's just fair imo.
2011-11-14 08:05
HCL

Registered: Feb 2003
Posts: 716
Ok, then expect HCL breaking some world records soon with no more sprites than before, but just counting them more "cleverly".

No, seriously. The problem here is also that.. If you count a small part of a sprite at the bottom of the screen, that sprite will also be displayed at the top of the next screen. You can not count the same sprite twice just because it occupies two different screens, can you!? *THAT* i would definitely call a cheat.

..and that's also why i question Crossbows 120 sprites. Either he only has 112 sprites on each screen (i think so), or he counts the same sprite twice here and there -> cheat.
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 - 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
tlr
Martin Piper
kbs/Pht/Lxt
hedning/G★P
AlexC
St0rmfr0nt/Quantum
Macs/Powerzone
Guests online: 73
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.8)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Logo Graphicians
1 Sander  (10)
2 Facet  (9.7)
3 Mermaid  (9.4)
4 Pal  (9.4)
5 Shine  (9.3)

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