I've always been wondering, when compared to vga PC games that uses its 256 colours capacity at their most, consoles like the nes, sega genesis, pc engine and super nes had to use different palettes and were much more limited in how they could use their colours. Why is this so?
RAM (memory) for a start, the more colours a screen image uses, the more memory is needed. Plus more colourful graphics take up more storage space, and on consoles, the more storage space you needed meant larger capacity cartridges, which meant that making games for the cartridge would cost more, and that cost would either have to be paid for by the games company, or the game's buyers (you and me), and no one wanted that. Also, to display more colours well usually meant having more complicated video hardware in the console, which couldn't be done as consoles were not upgradeable, unlike PCs. Of course, and console could have better hardware in it than was originally planned, so for example, Nintendo could have originally released the SNES with 640x480 and 65,535 colours, with no limits at all, but that would have added more expense to the cost of a SNES (consoles have to be cheap enough for people to want to buy them), plus the rest of the console might have been too slow to use these graphics properly, unless Nintendo also upped the specifications of the rest of the SNES, which again would have made it more expensive.
Conker is right but the shortest answer is just cost. It's always about cost. Older game consoles use 2bpp and 4bpp graphics which save memory compared to 8bpp (256) graphics. And the reason you can't just use any color anywhere anytime is because the screen isn't a big bitmap. That would cost even more money and require faster hardware to actually draw fast enough. The Genesis can have 64 colors selected but they are divided into 4 sets of 16 colors. Every tile or sprite needs 2 bits of memory to select which of the 4 palettes to use. The SNES has 256 colors but they too get divided but are divided into 16 groups of 16 colors. That means SNES sprites and tiles need twice as many memory bits for selecting which palette to use. And memory costs money. One thing I always thought would have helped the Genesis without adding quite as much cost would have been to expand CRAM from 64 colors to two banks of 64 colors and rather than requiring an additional palette bit in every tile or sprite just use different banks for Background and Sprites. Or allow the program to select a bank for each layer (BG Plane A, B, and Sprites). If you went with assigning each layer its own bank of CRAM you could have has 192 color entries and had a bit more colorful games.
They are right, memory was the limitation back then. Today consoles and computers can easily do full screen at 24 or 32 bits color because memory needed to handle that is cheap. But back then memory wasn't as cheap. I can't recall the old price but I remember shelling out almost $100 for 16k RAM upgrade. So to keep the cost of consoles down, RAM were limited which limited the max color on screen. ROM were also expensive. Back then the chip fab weren't as small as today so that mean lower yield per wafer disc and that means more cost per chip. In the 80's chip fab technology allowed for 1 um while today's fab has it down to about 10nm (100x smaller) Also technology improved and they get better quality silicon wafer which means less dud chip, faster process too.