A Sprite Posted September 6, 2008 Share Posted September 6, 2008 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? Quote Link to comment Share on other sites More sharing options...
kenfused Posted September 6, 2008 Share Posted September 6, 2008 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. Quote Link to comment Share on other sites More sharing options...
DanBoris Posted September 7, 2008 Share Posted September 7, 2008 (edited) 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 September 8, 2008 by DanBoris Quote Link to comment Share on other sites More sharing options...
Gorf Posted September 7, 2008 Share Posted September 7, 2008 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 Quote Link to comment Share on other sites More sharing options...
malducci Posted September 7, 2008 Share Posted September 7, 2008 252 8x8x4 color sprites on one screen Bullet Hell shooter! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.