Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

When talking about retro games, terms like "8-bit music" or "16-bit graphics" often come up. I myself often use these terms, but I'm not exactly sure what they refer to. What do they mean?

share|improve this question
    
I realize that the examples I have given are two different contexts; I'd like to know both. :) –  Kevin Y Sep 25 '10 at 22:37
20  
It's funny that your 8 bit question is Arqade post number 8008, honouring the legendary 8 bit Intel 8008 processor –  Zommuter Sep 17 '11 at 10:43
    
woah 1k views in 5min –  ProSay Sep 17 '11 at 10:47
7  
@ProSay that would be awesome, but the question is almost 1 year old –  Zommuter Sep 17 '11 at 10:55
    
oh damm i thought it was 5 minutes old some guy went to bump it –  ProSay Sep 17 '11 at 12:22
show 1 more comment

5 Answers

up vote 43 down vote accepted

8-bit and 16-bit, for video games, specifically refers to the processors used in the console. The number references the size of the words of data used by each processor. The 8-bit generation of consoles (starting with the Japan's Famicom, the equivalent of the US Nintendo Entertainment System) used 8-bit processors; the 16-bit generation (starting with Japan's Turbografix-16) used 16-bit processors. This affects the quality and variety in the graphics and the music by affecting how much data can be stored; Oak's answer details the specifics of graphics.

If you don't know about a computer bit, then here is the Wikipedia article on bits: http://en.wikipedia.org/wiki/Bit, which I'll quote the first sentence that is all one really needs to know.

A bit or binary digit is the basic unit of information in computing and telecommunications; it is the amount of information that can be stored by a digital device or other physical system that can usually exist in only two distinct states.

Now, note that in modern times, things like "8-bit music" and "16-bit graphics" don't necessarily have anything to do with processors or data size, as most machinery doesn't run that small anymore. They may instead refer specifically to the style of music or graphics used in games during those generations, done as a homage to nostalgia. 8-bit music is the standard chiptune fare, the graphics were simplistic in terms of colour. 16-bit music is higher quality but often still has a distinct electronic feel, while the graphics got much more complex.

share|improve this answer
    
An example of such "intentional retro": megaman.capcom.com/10 –  Raven Dreamer Sep 25 '10 at 22:49
    
To give an idea of where we stand today, gaming consoles have used 64-bit processors since the Atari Jaguar and Nintendo 64. The XBox 360 sports 3 64-bit processors. 64-bit PC processors are finally popular (you will see Windows Seven 64-bit version, for example). –  Wikwocket Sep 26 '10 at 2:00
4  
Specifically, it's the size of the accumulator register. However, don't rely on this number to tell you much - 90% of programs will see little-to-no benefit jumping from a 32- to a 64-bit processor. The exceptions are programs which must do complex calculations on large sets of data, such as video encoding. –  BlueRaja - Danny Pflughoeft Sep 26 '10 at 4:18
2  
Yet another amazing answer by Grace Note. :) –  Kevin Y Sep 26 '10 at 5:43
5  
@kirk For one reason or another, the "8-bit generation" doesn't start with the intro of 8-bit processors. It probably was a retro-active name: the 16-bit generation was defined by it, but the previous generation heralded by the Famicom was typically considered separate from the Atari 5200 generation. So in the 16-bit generation was named the 16-bit, they simply called the previous one 8-bit at the cost of accuracy. –  Grace Note Nov 8 '10 at 1:07
show 2 more comments

The term "8-bit graphics" literally means that every pixel uses 8 bits for storing the color value - so only 256 options. Modern systems use 8 bits to store each color channel, so every pixel typically uses 24 bits.

There's nothing preventing modern games from limiting themselves to a stricter, 8-bit color palette; but the term is often used to describe old games in which using 8 bits per pixel was necessary.

share|improve this answer
4  
Specifically, 8-bit color yields a 256-color palette, 16-bit color would be 64k colors, and the modern 24-bit palette supports 16 million colors. –  Wikwocket Sep 26 '10 at 1:55
2  
@Wikwocket: Sometimes, you'll hear reference to 32-bit graphics, which are just 24-bit graphics with an 8-bit transparency setting. –  user2974 Sep 26 '10 at 16:11
4  
But the kind of graphics generally called "8-bit" are those associated with games of the NES era, where each tile used only four (or three+transparent for sprites) colors selected from a larger palette - the graphics themselves weren't "8-bit" in any sense. –  Random832 May 30 '11 at 17:52
2  
@Random832 well those games may have been called 8-bit, but my answer explains what 8-bit graphics literally means. Maybe those games were called 8-bit on account of the processor, as Grace Note mentioned in the other answer. –  Oak May 30 '11 at 18:49
    
You should also consider the (to me easier to spot) limitation to the screen resolution - Erm. My comment somehow 8-bit-exploded into a separate answer... –  Zommuter Sep 17 '11 at 10:42
show 2 more comments

In addition to Oak's answer, the 8 bits for graphic not only limit1 the color palette, but also the screen resolution to a maximum of 256 in each direction (e.g. the NES has 256x224 pixels). For sprite graphics you need to split these 8 bit, e.g. to obtain 32 = 2⁵ different x-positions and 16 = 2⁴ different y-positions, you have 8x16 (2³x2⁴) pixels left for a sprite's resolution. That is why you get that typical pixel look.

The same applies for music, 8 bit means a maximum of 256 levels of your sound output level (per sample, the temporal resolution is another issue), which is to coarse to provide sounds that do not sound Chiptune (or noisy, if still trying PCM sound) to the human ear. 16 bits per sample is what the CD standard uses, by the way. But 16 bit music more refers to Tracker music, where I can't tell you much about the implications of 16 bit limitations though.

Another interesting point is that 8 bit limits1 the state of of your input device to 8 boolean button states split up into the four directions of the D-pad plus four buttons. Or a 2 button joystick with 3 bits (a mere 8 levels, including the sign!) remaining for both the x- and y-axis.

So, for originally old games, 8 bit / 16 bit might be considered referring to the system's capabilities (but consider Grace's point about the incosistency in the label "8 bit"). For a retro game, consider the question whether it would be theoretically possible to obey the mentioned constraints (neglecting shader effects like Bloom), although you might have to allow some "cheating" - I'd consider a sprite based game using 8x16 squares sprites still 8 bit even if sprites could be floating at any position in HD resolution and the squares were 16x16 pixels each...


1) well obviously you can use 2 times 8 bit to circumvent that limit, but as BlueRaja points out in a comment on Grace's answer, considering the accumulator register to be 8 bit only as well, that would cause a performance loss. Also, it would be cheating your way to 16 bit IMHO

share|improve this answer
add comment

8-bit, 16-bit, 32-bit and 64-bit all refer to a processor's word size. A "word" in processor parlance means the native size of information it can place into a register and process without special instructions. It also refers to the size of the memory address space. The word size of any chip is the most defining aspect of it's design. There are several reasons why it is so important:

  • First off, the maximum value you can hold. An 8-bit integer can hold a value up to 255. A 16-bit int can be up to 65,535.
  • Memory addressing: With bigger numbers, you can track more address space (a gross oversimplification, but it holds true).
  • Double-words and quad-words. There are cases when you want to use a larger word for a variable. A double word is just 2 words, so a 32-bit variable on a 16-bit machine or a 16-bit variable on an 8-bit machine.
  • Instructions. Again, with a larger number you can have more opcodes (the actual machine instructions). Even though adding 2 integers looks simple, on the hardware level even that is quite complicated. For instance a machine may have separate MOV instructions for loading a nibble (half-byte), byte, word, double word or quad word into a register. From there you would need to add it to another register or add from a variable in memory, and that's another set of possible instructions. Floating point instructions are also a completely separate set of instructions.
    • Aside from not having the memory, an 8-bit machine usually has a separate processor for handling floating point math on the hardware. 16-bit machines usually have an integrated floating point unit to handle that.
    • With a larger word size you can put in more specialized instructions, like specialized direct hardware access, built-in functions (hardware graphics processing for example), hardware memory management, etc.
  • Memory management: With a bigger word comes the possibility of being able to address more memory. Many 8 and 16-bit machines used a variety of schemes to be able to address as much memory as possible, often exceeding the limitations of their word size. Your typical 32 & 64-bit personal computer CPUs use memory registers that are equal to their word size giving them access to 4,294,967,296 and 18,446,744,073,709,551,616 bytes, respectively.

TL;DR

The difference in word size has a dramatic impact on the capabilities and performance of a given chip. Once you get up to 32-bits, the differences mainly become those of refinement (unless you are running a really big application, like genetic analysis or counting all the stars in the galaxy big).

I hope this ramble of an answer is of some help.

Further Reading

share|improve this answer
1  
Regarding the first bullet point: An 8-bit integer can hold values up to 255 if it is unsigned. Same for 16-bit, except not 65,536, but 65,535. It's 65,536 different values (including zero, so 65,535 is the max). –  Victor Zamanian Oct 25 '12 at 22:31
    
@VictorZamanian I always get the 16-bit int max off by 1. I'm also not going to get into signed versus unsigned in this statement. –  CyberSkull Nov 1 '12 at 16:28
    
This, incidentally, is why you can only get as many as 255 rupees in Legend of Zelda, and why 255/254 is often the (seemingly random) hard cap on values in 8-bit games. –  Zibbobz Mar 13 at 16:58
add comment

Way back in the day the bit size of a CPU was a reference to how wide the processors registers where. A CPU typically has several registers in which you can move data around and do operations on it. For example add 2 numbers together then store the results in another register. In the 8 bit era the registers were 8 bits wide and of you had a big number like 4000 it wouldn't fit in a single register so your would have to do two operations to simulate a 16 bit operation. For example if you have got 10,000 gold coins you would need to use to add instructions to add them together. One to handle the lower 8bits and another to add the upper 8bits(With carrying taken into account). Where as a 16bit system could have just done it in one operation. You may remember in the legend of Zelda you would max out at 255 rupees as its the largest unsigned 8bit number possible.

Nowadays registers in a CPU come in all different sizes so this isn't really good measure anymore. For example the SSE Registers in the amd64 processors of today are 256 bits wide(For real) but the processors are still considered 64 bit. Lately these days most people are thinking of the addressing size the CPU is capable of supporting. It seems the bit size of a machine is really based on the current trends of hardware of the time. But for me I still consider the size of a native integer register which seems correct even today and still matches the addressing size of the CPU as well. Which makes since since the native integer size of a register is typically the same size as a memory pointer.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.