65

Why does the Game Boy specifically support four shades of grey, why not three or five? Is there something about the hardware that made four colours optimal?

Was there a precedent to using four shades of grey in computer graphics before the Game Boy, or was this an invention of the system?

Robotnik
  • 37,764
  • 47
  • 176
  • 304
Polyducks
  • 749
  • 1
  • 5
  • 11
  • 1
    See also, http://meta.gaming.stackexchange.com/questions/11370/are-questions-about-hardware-design-decisions-classified-as-developer-intent-q – badp Mar 12 '16 at 17:42

3 Answers3

112

The first computers were monochrome; they only knew 2 colors, as for each pixel, you only had 1 bit:

0
1

As for the Gameboy, it supported 2 bits per pixel, which gives us 4 possible colors to choose from:

00
01
10
11

How did the makers decide on four and why not three

Because they already had 4 colors to choose from. When people have 10 fingers, why not count up to 10?

or five?

Because that would've required they increase the screen's bit depth to 3 bits per pixel, which would have given us 8 colors to choose from. Why didn't they do it? Probably for performance reasons. As you increase the amount of bits per pixel, you increase the amount of data to process, which in turn requires more powerful hardware to process.


Was there a precedent to using four shades of grey in computing graphics before the Gameboy, or was this an invention of the system?

Of course there were precedents.

CGA, gray-scale early NeXTstation, color Macintoshes, Atari ST.

Nolonar
  • 44,741
  • 32
  • 165
  • 225
  • 84
    3 bit per pixel also causes byte alignment issues. The game boy used an 8 bit CPU, so with 2 bit per color it could store 4 pixels in a cpu-word. With 3 bits per pixel it would either have been restricted to 2 pixels per cpu-word with 2 unused bits or use some fiendishly complex arithmetics to process 8 pixels with 3 cpu-words. That means 2 bpp or 4bpp would have been reasonable choices, but 4bpp displays didn't seem feasible at that time for handheld gaming systems. – Philipp Mar 09 '16 at 14:27
  • I imagine you just made up the mapping between colors and numbers, but it looks odd that you have 0 as black in the first one and 11 as black in the second. – DCShannon Mar 09 '16 at 14:33
  • 11
    @DCShannon. I made them up, but based on the fact that a regular PC screen is black when turned off, while a Gameboy's is white. I don't think the actual mapping is very important, though. – Nolonar Mar 09 '16 at 14:37
  • 6
    Thanks so much for this. Of course it's due to bit values. I wondered if it had something to do with the screen hardware. In hindsight asking about odd numbers seems a bit silly. – Polyducks Mar 09 '16 at 14:55
  • With the precedent of having four colour displays it's not a great leap to focus on wiring that into your hardware. – Polyducks Mar 09 '16 at 14:57
  • It probably had as much to do with cost as with performance. – Steve S Mar 09 '16 at 15:10
  • 38
    And for 50 shades of gray, you need 6 bits per pixel. – Marc Dingena Mar 09 '16 at 16:36
  • 7
    @SteveS I'd say it was almost entirely due to cost. Adding a third bit of colour would require 50% more RAM and ROM to store graphics. It would also require significantly more die area on the CPU chip for graphics. –  Mar 09 '16 at 16:43
  • 1
    Tangent on processing power needed: Is there anything that MUST be done on a multi-core CPU?: "One strong example I know of is the Nintendo DS, which includes an 67MHz ARM9 CPU and a 33MHz ARM7 CPU (also used for back-compat when playing GBA games). For DS games, the ARM7 handles playing audio & Wi-Fi communication because the ARM9 can't process & draw anything of note to the screen while keeping up with feeding audio to the sound chip directly." –  Mar 09 '16 at 20:55
  • @Nolonar technically, the original Game Boy's screen is pea green, not white. – Dan Henderson Mar 09 '16 at 21:00
  • 1
    @Polyducks "Odd" is not the problem (though all odd numbers will exhibit the same issue). The main thing is you want a power of two (which allows 100% utilization of the bits of data) and alignment (which makes everything easier to work with, and often faster). You could have a memory layout for five colours, but you'd need some complex rules. Remember, we're talking about a time where multiplying (by anything not a power of two :P) was a prohibitively slow operation. Still, I don't think sub-bit "addressing" is used today either - memory is cheap enough, it doesn't give enough of a benefit. – Luaan Mar 10 '16 at 11:49
  • 2
    @Philipp The alignment issue is not as severe for the gameboy hardware as you seem to point out. The gameboy does not use a "packed pixel" layout in which you collect the bits of a pixel (e.g. four pixels into one byte), but uses a "planar" layout. The high bit of 8 pixels is collected into one byte and after that the low bit of the same pixels (or the other way around). Adding a third bit per pixel would just add a third byte after the first two bytes. On the other hand, this just shifts the issue. Calculating tile addresses is way easier if the number of planes is a power of two. – Michael Karcher Mar 10 '16 at 18:03
  • 1
    ... You do have the byte alignment issue for the palette registers, though. As there are just 3 of them, wasting some space there is not really an issue, especially as registers might have some "missing bits" that are not implemented. – Michael Karcher Mar 10 '16 at 18:04
  • Might be worth noting that the performance requirements would increase exponentially. Two colors can be represented by a single bit (2^1). Adding one more bit would expand the pool to 4 (2^2). However expanding further would make it so you'd not only need more capacity to process 8 colors (2^3) but you'd also have to actually be able to display them because if you didn't you would have a redundancy problem causing possible glitches. That and the fact it would make batteries last even less. – Oak Mar 10 '16 at 18:12
  • This doesn't address the question of why the hardware was using 2 bits per pixel. "They already had 4 colors" is coming from an after-the-fact perspective and isn't useful. – Matthew Read Mar 10 '16 at 18:12
  • @MatthewRead. This doesn't address the question of why the hardware was using 2 bits per pixel. That's because that wasn't the question. The question was "Why specifically 4 colors, and not 3 or 5?" – Nolonar Mar 10 '16 at 18:43
  • 2
    @MatthewRead. The question is analogous to "Why do computers come with 4, 8, or 16 GB RAM, and not 7, 8, or 9 GB?". It's different from "Why do computers come with 8 GB RAM, and not 4 or 16?". – Nolonar Mar 10 '16 at 18:47
  • 1
    @MarcDingena: I heard the original title for that book was 5.64385 bpp but the publisher insisted on changing it. – Nate Eldredge Mar 10 '16 at 22:38
  • Surely you mean on or off not black or white. Watch some old movies for proof that usually they were black and green. – rom016 Mar 12 '16 at 11:17
77

While Nolonar's answer is true from a technical perspective, it's not the actual reason why the developers chose to go with a monochrome system. Gunpei Yokoi, the creator of the Game Boy, intentionally designed the system monochrome to force games to be more abstract, thus preventing players from getting too caught up in details. As he put in in a 1997 interview:

The technology was there to do color. But I wanted us to do black and white anyway. If you draw two circles on a blackboard, and say “that’s a snowman”, everyone who sees it will sense the white color of the snow, and everyone will intuitively recognize it’s a snowman. That’s because we live in a world of information, and when you see that drawing of the snowman, the mind knows this color has to be white. I became confident of this after I tried playing some Famicom games on a black and white TV. Once you start playing the game, the colors aren’t important. You get drawn, mentally, into the world of the game.

The full interview can be read here: http://www.techspot.com/news/61318-console-gaming-now-fascinating-1997-interview-nintendo-legendary.html

Chumblechops
  • 717
  • 5
  • 8
  • 25
    That sounds like an explanation of why the four colors are monochromatic, not why the number of colors is four. – DCShannon Mar 09 '16 at 15:59
  • 2
    This is also partially answering my question, @DCShannon. I've upvoted it because it adds another facet to understanding the choices made between design and hardware. – Polyducks Mar 09 '16 at 16:50
  • 2
    I think both answers are two parts to the same answer, to be honest. Yokoi wanted to keep the system simple, so they selected a 2 bit system which gave them 4 colors. This afforded them the simplicity and performance, while keeping with the overarching design ideals. – Chumblechops Mar 09 '16 at 17:11
  • 8
    Well, I think there were some huge marketing incentives at the time also. Building a colour device would have meant building a very different device, different market. "The technology was there to do color." - the technology was brand new, expensive, bulky and required a lot more power. There were no colour devices on the market at the time. The Atari Lynx (released later the same year) was the first colour device. But the Lynx was twice the price, much larger and ate batteries for breakfast! A monochrome LCD screen enabled them to hit the target market. – MrWhite Mar 09 '16 at 17:57
  • Yah, for the reasons w3d gave this "official" explanation sounds like a retroactive justification for something that were pretty much forced into by their target market and price. –  Mar 10 '16 at 02:12
  • 6
    I used computers with 4-colour displays at that time (PCs with CGA and others) They were ugly. Ugggghly! 4-level grayscale is much better. – Stig Hemmer Mar 10 '16 at 08:19
  • @StigHemmer That's mostly because you couldn't choose the four colours. There were only two palettes to choose from, and both were just awful (for many, many reasons - don't think the people were just retarded :D). EGA brought custom palettes (you picked the actual colour using 24 bits per colour), so you'd have a better choice of colours, and a way to change them dynamically. Also, note that "monochromatic" doesn't mean "grayscale" - you could e.g. have screen tint. Of course, once you got an EGA card, there was little reason to go below 16-colour graphics anyway - time has moved on. – Luaan Mar 10 '16 at 11:54
  • @Luaan Like the "monochrome" VT220, available with white, green, or amber phosphors. – T.J.L. Mar 10 '16 at 13:21
  • @Luaan EGA has 6 bits per pixel (2 bits per color component), transmitted digitally and parallel to the monitor. It's VGA that upped it to 18 bits per pixel (6 bits per color component) transmitted as three analog voltages. Finally some years later, super VGAs included vendor-specific non-standard options to get 24 bits per pixel. (all the numbers are numbers of possible colors, not number of simultaneously displayed colors, except for 24-bit true color) – Michael Karcher Mar 10 '16 at 18:10
  • 2
    Funny that Yokoi believes that people will recognize two circles as a snowman. A two-ball snowman is normal in Japan, whereas in North America snowmen are recognized as being made of three balls -- his explanation contradicted exactly what he was trying to explain! – Graham Mar 10 '16 at 18:19
  • 2
    @Graham: If you do a Google image search of "snowman" and select the clipart option you will see plenty of two-ball snowmen. Frosty the Snowman is a two-ball snowman. So I strongly disagree that North Americans wouldn't recognize that configuration. – Dennis Williamson Mar 10 '16 at 18:44
  • @DennisWilliamson Which Frosty are you looking at? I see one walking around with arms and legs, and a 3-ball one. Even on the clipart option, the vast majority have three balls. Some have two, but those are recognizable because of a hat and carrot and so on. Just two circles probably wouldn't register as strongly as just three circles. – DCShannon Mar 10 '16 at 21:12
  • @StigHemmer: I used a computer with a 4-color display from a 4096-color palette (Amiga) at that time. Gorgeous, I tell you, gooooorgeous... ;-) – DevSolar Mar 11 '16 at 12:52
  • To be frank, this sounds like PR speak and not the actual reason. – Andrew Whatever Mar 11 '16 at 16:22
  • Seems plausible. I remember playing NES games on my friend's B&W TV, and then having vivid memories of having played them in color. – Kevin Krumwiede Mar 12 '16 at 03:33
  • Based on the reasoning in this answer, they should be still making them black and white. He was right that at the time they didn't need color, but this is just a justification, not the real reason. – Aaron Hall Mar 12 '16 at 12:56
1

While I haven't studied the internal workings of the Game Boy, I have designed and built a controller for a four-gray-level LCD, for use with display panels that were designed for on/off control only. To get four-level grayscale from a panel that's designed for on-off control, one must be able to do the following:

  1. Switch instantly between two display buffers.

  2. Time the display switching so that the first buffer will be shown for one scan, the second for two, the first for one, the second for two, etc.

  3. Set the refresh rate about 3x as fast as would otherwise be needed to avoid flicker [in practice, it can be a bit less than 3x as fast; I used 100Hz].

Adding the ability to switch between two display buffers at the proper times and boosting the refresh rate are both things that can be done quite cheaply. While the same approach might in theory be used to achieve an eight-level or sixteen-level grayscale, doing those things would require significantly increasing display refresh rates. While pushing things to eight gray levels or even sixteen might be feasible, the comparative benefit obtained by doing so would be slight compared with the benefits of going from on-off control to four-level control.

[BTW, some common controllers have the ability to automatically flip between two buffers, but show each one for two scans rather than doing a 1-2-1-2 pattern; I don't know why they don't have 1-2-1-2 since it provides four gray levels rather than three, doesn't require quite as high a refresh rate, and is at least as effective if not moreso at preventing display polarization].

supercat
  • 619
  • 4
  • 6