Skip navigation
NintendoAge
Welcome, Guest! Please Login or Join
Loading...

Questions about NES display limitations for new pixel art blog I'm cooking up

Dec 20, 2012 at 11:02:07 PM
AceEbb (186)
avatar
(Jeff T) < El Ripper >
Posts: 1265 - Joined: 03/02/2010
New Jersey
Profile
I've been getting more and more into pixel art lately and I like to generate images that could actually be displayed on a NES. I have a few questions to ensure I understand what the exact limitations were/are in regard to size and number of colors displayed:
- I understand that the sprite size limit is 8x16 or 16x16. Could the 8x16 sprites be oriented in any way (long side horizontal vs. vertical)?
- The color pallette limitations are 3 colors plus 1 background color, and the background tiles had a similar 4 color limitation. Can background tiles be arranged to create an image which overall consists of more than 4 colors? For instance, could my avatar work on a real NES?
- There are sixteen 3+1 color pallettes allowed at once, correct?
- I recognize that many games have sprites that are larger than 16x16, and this is acheived by a programming trick of combining two sprites. Could 8x16 sprites be combined 16x16, any limitations there?
- Also, what is a reasonable limit on how many sprites to combine in this fashion? Would more than 2 be unrealistic for a real game?
- What is a realistic limit on sprite frame animation? i.e how many frames is feasible in a real game?

Thanks in advance for any input y'all homebrewers can provide!

Dec 20, 2012 at 11:10:45 PM
jarrodparkes (0)
avatar
(Jarrod Parkes) < Little Mac >
Posts: 62 - Joined: 09/13/2012
Alabama
Profile
Here are my understandings on the items I think I know (please correct me if I'm wrong):

- The color pallette limitations are 3 colors plus 1 background color, and the background tiles had a similar 4 color limitation. Can background tiles be arranged to create an image which overall consists of more than 4 colors? For instance, could my avatar work on a real NES?

Both background tiles and sprites have this four color limitation. However, by overlapping sprites you could achieve more than 4 colors in a certain area on screen. Background tiles are essentially locked to their positions on screen, they cannot move, hence why they are not considered sprites.

- There are sixteen 3+1 color pallettes allowed at once, correct?

I believe there are only eight 3+1 color palettes allowed at once. Four for background tiles and four for sprites. However, during gameplay, the values of the palettes could be changed.

- I recognize that many games have sprites that are larger than 16x16, and this is acheived by a programming trick of combining two sprites. Could 8x16 sprites be combined 16x16, any limitations there?

I think choosing to use 8x8 sprites or 8x16 sprites is a setting configured on a per game basis (you only choose one). I'm not sure if games change the dimensions used for sprites during gameplay. Maybe that is possible, but I think it might be unnecessary.

- Also, what is a reasonable limit on how many sprites to combine in this fashion? Would more than 2 be unrealistic for a real game?

There are total of 64 sprites that can be used on the NES. Depending on how many other things are on screen would determine your limit. A design call.

Those are the ones I think I can answer to. Good luck with your pixel art!
Jarrod


Edited: 12/20/2012 at 11:12 PM by jarrodparkes

Dec 20, 2012 at 11:13:34 PM
Firebrandx (7)
avatar
(Wolff Morrow) < Meka Chicken >
Posts: 906 - Joined: 10/31/2012
United States
Profile
I'm not much of an expert on the sprite and background limitations, but there are the MMC chips to consider. Just look at Castlevania 3 for example. It was able to have backgrounds with a full 16 colors, with each 8x8 tile able to handle its own color assignments. Some of the more impressive graphics I've seen in an NES game.

Dec 20, 2012 at 11:42:38 PM
thefox (0)
avatar
(Kalle Immonen) < Meka Chicken >
Posts: 533 - Joined: 07/08/2008
Finland
Profile
Originally posted by: AceEbb

- I understand that the sprite size limit is 8x16 or 16x16. Could the 8x16 sprites be oriented in any way (long side horizontal vs. vertical)?
The sprite size can be 8x8 or 8x16 (NOT 16x16). 8x16 sprites can only be oriented vertically (8 being the width, 16 being the height).

Originally posted by: AceEbb

- The color pallette limitations are 3 colors plus 1 background color, and the background tiles had a similar 4 color limitation. Can background tiles be arranged to create an image which overall consists of more than 4 colors? For instance, could my avatar work on a real NES?
For sprites the color limitation is 3 colors per each 8x8 or 8x16 sprite plus transparent (background layer will show through). For background tiles the limitation is 3 colors plus a global background color.  Your avatar uses 5 colors so it can't be used as is.

Originally posted by: AceEbb

- There are sixteen 3+1 color pallettes allowed at once, correct?
There are only eight 3 color palettes, plus the global background color. Four of the palettes are for background, and four are for sprites.

Originally posted by: AceEbb

- I recognize that many games have sprites that are larger than 16x16, and this is acheived by a programming trick of combining two sprites. Could 8x16 sprites be combined 16x16, any limitations there?
Yes, it's not so much of a trick, but more just placing two smaller sprites next to each other, producing a bigger sprite. The main limitation is that there cannot be more than 8 sprites on single scanline (the rest will not be shown), so the maximum width of a big sprite like that would be 64 pixels. But in practice you'd almost never want to make such a big sprite, because there would be little to no space left for other sprites.

There's also the global limit of 64 sprites maximum on the screen at any on time.

Originally posted by: AceEbb

- Also, what is a reasonable limit on how many sprites to combine in this fashion? Would more than 2 be unrealistic for a real game?
Many games combine more than 2 sprites. I would say over 10 starts to be unpractical.

Originally posted by: AceEbb

- What is a realistic limit on sprite frame animation? i.e how many frames is feasible in a real game?
It depends, but I'd say the sprites are usually animated at around 10-20 Hz rate (3-5 frames per second). But there's no technical reason why NES couldn't handle 60 Hz animation for sprites, it would just use more CHR-ROM space. There are some games with really fluid animation.

Originally posted by: Firebrandx

I'm not much of an expert on the sprite and background limitations, but there are the MMC chips to consider. Just look at Castlevania 3 for example. It was able to have backgrounds with a full 16 colors, with each 8x8 tile able to handle its own color assignments. Some of the more impressive graphics I've seen in an NES game.
This rumor actually isn't true. Castlevania 3 uses the normal 16x16 color attribute blocks like any other game. MMC5 could handle 8x8 attribute blocks like you said, but CV3 doesn't use that feature (because it was ported from the Japanese version, which used the VRC6 mapper, which doesn't support that feature).



-------------------------
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi

Dec 20, 2012 at 11:43:04 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Universal limits:

8 sprite per scanline. Lowest priority in OAM get displayed.

3 colors per sprite pallete, up to 4 palettes. Background has 3 colors, 4 palettes. One background color universal.

256 eight by eight tiles for the background AND sprites. Sprites can either be 8x8 or 8x16. 8x16 sprites use the 256 sprites on page 0 to make 128 sprites, plus can use the background tiles too.

Tiles can be swapped out by a few different means. Status bars usually swap in 256 new tiles for display, look at SMB3 for example. You can view the graphics per scanline in FCEUX.

Background tiles can only be assigned one of the four palettes in 16x16 tile blocks. The NES screen is 256x240 pixels, or 32x30 tiles.

Dec 21, 2012 at 12:19:16 AM
Firebrandx (7)
avatar
(Wolff Morrow) < Meka Chicken >
Posts: 906 - Joined: 10/31/2012
United States
Profile
Originally posted by: thefox


Originally posted by: Firebrandx

I'm not much of an expert on the sprite and background limitations, but there are the MMC chips to consider. Just look at Castlevania 3 for example. It was able to have backgrounds with a full 16 colors, with each 8x8 tile able to handle its own color assignments. Some of the more impressive graphics I've seen in an NES game.
This rumor actually isn't true. Castlevania 3 uses the normal 16x16 color attribute blocks like any other game. MMC5 could handle 8x8 attribute blocks like you said, but CV3 doesn't use that feature (because it was ported from the Japanese version, which used the VRC6 mapper, which doesn't support that feature).

 


And yet for some reason, it looked like it had more complex backgrounds than most NES games. Why is that?


Dec 21, 2012 at 1:04:28 AM
thefox (0)
avatar
(Kalle Immonen) < Meka Chicken >
Posts: 533 - Joined: 07/08/2008
Finland
Profile
Originally posted by: 3GenGames

8 sprite per scanline. Lowest priority in OAM get displayed.
Probably better to say highest priority, lowest OAM index.

Originally posted by: Firebrandx

And yet for some reason, it looked like it had more complex backgrounds than most NES games. Why is that?
Good use of the available resources, I guess. All I can say that it doesn't do anything that couldn't be achieved with simpler mappers.

-------------------------
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi

Dec 21, 2012 at 1:45:55 AM
Luigi_Master (29)
avatar
(Kevin McConnell) < Kraid Killer >
Posts: 2043 - Joined: 09/15/2011
United States
Profile
The color yellow cannot, under any circumstance, be replicated on the NES. That's why Pacman was orange.

Also, this cannot be stressed enough.  NES sprite graphics are only limted to 3 colors, not 4 like some people seem to misunderstand.  They use 2 x 3 color palettes for that effect, but the people still believe that sprites had 4 colors instead of 3, look at that Great Gatsby game, that Left 4 Dead "NES port" (the creator of said game even INSISTS it's 4 colors), or the webcomic Kid Radd.

-------------------------
I got some goodies on eBay.  Wanna see more, read the news, etc?  Check below:

http://nintendoage.com/forum/mess...


Edited: 12/21/2012 at 01:49 AM by Luigi_Master

Dec 21, 2012 at 9:37:43 AM
AceEbb (186)
avatar
(Jeff T) < El Ripper >
Posts: 1265 - Joined: 03/02/2010
New Jersey
Profile
Wow, cool! Thanks for all the info guys - this helps a lot b/c I'd like to put together 256x224 pixel art "scenes" that are realistic. I actually just redid my avatar to be 4 colors now: I'm using #02 as bg, along with 26,36, and 08.

ETA: I've been using The_NES_Pallette by erik red, and indeed I've noticed that distinct lack of yellow... you only really get orange and yellow-green, don't you? To make things look more yellow, did any games ever utilize that bit for "detensify greens"?


Edited: 12/21/2012 at 09:41 AM by AceEbb

Dec 22, 2012 at 10:42:42 PM
Luigi_Master (29)
avatar
(Kevin McConnell) < Kraid Killer >
Posts: 2043 - Joined: 09/15/2011
United States
Profile
Well, I'm pretty sure you could use that detensify thing, but it would screw with the other 55 colors or so. Essentially, you are doing that tint/hue thing that we used to do on our TV's in the game's code. Alternatively, you could use a trick that would rapidly switch orange and yellow green, possibly 60 times per second, but I'm not sure if it would be fast enough so that it would appear yellow to the untrained eye. But either case, that's what improvisation is about. I also see you're in NJ as well, huh? I wonder if there are any programmers in NJ, maybe we could get a game together.

-------------------------
I got some goodies on eBay.  Wanna see more, read the news, etc?  Check below:

http://nintendoage.com/forum/mess...