Jump to content
IGNORED

Realistic Sprite Limits?


A Sprite

Recommended Posts

It's said the 7800 can draw unlimited sprites to the screen without flicker or slowdown, but how far can it go before it uses up the cart's memory or requires to computer to do too many calculations to update the visuals before the player notices the delay?

 

What's keeping someone from creating say, a low resolution port of Mortal Kombat 2 with nearly full screen 16 color characters made of stacked 3 color sprites?

Link to comment
Share on other sites

It's said the 7800 can draw unlimited sprites to the screen without flicker or slowdown, but how far can it go before it uses up the cart's memory or requires to computer to do too many calculations to update the visuals before the player notices the delay?

 

What's keeping someone from creating say, a low resolution port of Mortal Kombat 2 with nearly full screen 16 color characters made of stacked 3 color sprites?

It's less resource intensive to display a 12 color sprite vs. two stacked 3 color sprites. Also the number of sprites you can display are not really unlimited. If you exceed the number of objects in a zone which the system can handle things will start disappearing (it will stop processing objects in the list for the zone when it runs out of time so only the first objects listed will display). Also, as you said, the more objects uses more cpu to build the display lists.

Link to comment
Share on other sites

It's said the 7800 can draw unlimited sprites to the screen without flicker or slowdown, but how far can it go before it uses up the cart's memory or requires to computer to do too many calculations to update the visuals before the player notices the delay?

 

What's keeping someone from creating say, a low resolution port of Mortal Kombat 2 with nearly full screen 16 color characters made of stacked 3 color sprites?

 

The biggest limiting factor is how many clock cycles the Maria graphics chip has to work with on each line. Doing some quick calculations it appear that if you did 4 pixel wide, 4 color sprites you would have enough time to display 27 sprites on each line. If you did 2 bytes of graphics data to get an 8 pixel wide sprite you could get 21 sprites per line. Of course it's a little trickier then this since the 7800 display is usually broken up into 8 or 16 line high zones, so these limits would actually be per zone not per region.

 

So if you did 8 line high regions, you could actually get up to 252 8x8x4 color sprites on one screen.

 

For a more realistic example you can look at Robotron which on some screens has over 50, 8 pixel wide by 4 color sprites on the screen at once.

 

Dan

Edited by DanBoris
Link to comment
Share on other sites

It's said the 7800 can draw unlimited sprites to the screen without flicker or slowdown, but how far can it go before it uses up the cart's memory or requires to computer to do too many calculations to update the visuals before the player notices the delay?

 

What's keeping someone from creating say, a low resolution port of Mortal Kombat 2 with nearly full screen 16 color characters made of stacked 3 color sprites?

 

The biggest limiting factor is how many clock cycles the Maria graphics chip has to worth with on each line. Doing some quick calculations it appear that if you did 4 pixel wide, 4 color sprites you would have enough time to display 27 sprites on each line. If you did 2 bytes of graphics data to get an 8 pixel wide sprite you could get 21 sprites per line. Of course it's a little trickier then this since the 7800 display is usually broken up into 8 or 16 line high zones, so these limits would actually be per zone not per region.

 

So if you did 8 line high regions, you could actually get up to 252 8x8x4 color sprites on one screen.

 

For a more realistic example you can look at Robotron which on some screens has over 50, 8 pixel wide by 4 color sprites on the screen at once.

 

Dan

 

 

 

I just finally got to PacManPluses example code this week end and Im quite blown away

by the ability of the machine to throw some sprites around. I have 32 sprites dancing all

around and these are 12 by 8 pixels.

 

I did notice something funny.....I am using a vectoring system for animation.

16 bits for the posistions and 16 bits for the deltas. Its pretty much fixed point

math movement. I did notice however that if the sprites are moving left to right,

they are bright and crisp but as they move right to left they look transparent and

flicker.

 

The movement is smooth and the delta code moves the sprites as I expected it.

It's just that the images foring right to left. All I am doing is typical 16 bit additon

and subtraction. The 8 high bits are the actual ordinate or delta and the lower 8

are the 'fractional' ordinate or delta

 

 

;Inputs: X = index to sprite
;Out: NONE

AddXDelta:
clc		; clear carry 
lda XPOSL,x	 	;
adc XDLTL,x	;'X'pos = delta + pos LSBs	
sta XPOSL,x		  ; 
		;
lda XPOSH,x	   	;'X'pos = delta + pos MSBs	
adc XDLTH,x	;
sta XPOSH,x	;
rts		;

 

 

The subtract delta from x position.

 

 

 

 

;Inputs: X = index to sprite
;Out: NONE

SubXDelta:
sec		; clear carry 
lda XPOSL,x	 	;
sbc XDLTL,x	;'X'pos = pos - delta LSBs	
sta XPOSL,x		  ; 
		;
lda XPOSH,x	   	;'X'pos = pos - delta MSBs	
sbc XDLTH,x	;
sta XPOSH,x	;
rts		;

 

 

I dont think it is cycle use because if that were the case why only during right

to left movement?

 

BTW...this is how Im seeing it on MESS....I dont have anyway to upload to a real 7800.

Could it be MESS?

 

Thanks

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...