A lot of people want to make 8-bit games, but not many people know the exact limitations and it can be hard to find them. Not only will I go into the limitations of 8-bit consoles, but also some ways of coping with the limitations so that your game doesn't come out looking like an Atari 2600 game and sounding like a dying cat.

Limitations/ specs (Note: these are the limitations/specs for the NES)

Screen size: 256x240
Active Limit: 64
Backdrop Limit: 960
Color Limit: 56
COlors per sprite: 4 (including transparent color)
Backdrop size:8x8 or 16x16
Sprite Size: 16x16 or 24x24
No more than 16 colors can be on-screen at once
Nes Palette: http://fc01.deviantart.net/fs31/f/2008/221/3/c/the_NES_palette_by_erik_red.png

Uses .nsf files
No more than 5 channels
Mono sound only
Not sure about the Instrument max...

Memory/ Storage/ CPU (not that important when making fan-games, but I thought I would put them in anyway...)
2kb onboard work RAM
2kb video RAM
256 bytes of OAM (56 color palette)
32kb Program ROM
Can have internal battery-backed memory, but early games usually uses passwords

And here are the Master System's limitations

Up to 32 colors at a time (16 for sprites, 16 for background)
resolution: 256 x 192 or 256 x 224
Max background size: 8x8
Max background tiles at a time: 463
Sprite size: 8x8 or 8x16
Max sprites at a time: 64
Master System Palette: http://segaretro.org/images/1/11/Master_System_Palette.png

4 channel mono sound
3 Tone generators (10 octave each) and a White Noise Generator

Memory/ Storage/ CPU (not that important when making fan-games, but I thought I would put them in anyway...)
64 kbit Boot ROM
64 kbit Main RAM
128 kbit Video RAM
Supports internal battery backed memory

So with what you can and can't do out of the way, I would like to share some tricks many of the programmers from the 8-bit era used to get around certain limitations for making graphics. The main obstacle pixel artists run into with these 8-bit games is the 4-color limit. There are, however, two very clevel ways of overcoming this. The more common of these methods is a process called dithering, which though I'm sure many people already know about, I will still go into it. Dithering is the use of a checker pattern ingraphics to not only give the effect of more colors, but also give texture to an otherwise bland sprite. One somewhat famous example is that of bricks. Observe:


Considerable difference, right? Dithering give a depth to backgrounds that would otherwize be unreachable. The other method does not use illusion to give the sense of more color, but ACTUALLY give more color. Seems impossible? While it is impossible to have more than four colors, there is no problem with having overlapping sprites. This other method is using a sprite that is always set to a different sprite's (0,0) which has transparent sections to show the original sprite's colors. This picture says it all. (Please excuse how bad the sprite is,I made itin literally 5 seconds)


I do not think I need to go into audio TOO much, since there is no real instrument limit, 5 channels is more than enough (for those who I asked, at least), and I'm not that great a musician. Sadly, all I can do for you as far as music goes is post these links:

Music Software: http://famitracker.shoodot.net/
Sound Effect Software: http://www.drpetter.se/project_sfxr.html
Old-school Sound Font: http://www.1001freefonts.com/ArcadeClassic.php