Jump to content
IGNORED

7800 Graphics Mode Overview


EricBall

Recommended Posts

The 7800 has 6 different graphics modes selected by three bits: bits 0 & 1 of the CTRL register (read mode) and bit 7 of the second byte in a five byte graphics header (write mode).

 


WM RM1 RM0 mode details

0  0   0   160A 4 color, 2 bits/pixel

1  0   0   160B

0  1   1   320A 2 color, 1 bit/pixel

1  1   0   320B 4 color, 2 bits/pixel

1  1   1   320C

0  1   0   320D

 

Modes 160A, 320A and 320B are straightforward - the palette is given in the display list and the bits in the graphics data select one of the colors. Modes 160B, 320C and 320D are more difficult to understand (and use) because they mix the graphics and palette bits. See the 7800 Software Guide for a description of these modes.

 

Because the Write Mode bit is contained in a graphics header, it could (theoretically) be changed "on the fly" to allow some graphics (e.g. backgrounds) to be more colorful than the rest. It would be interesting to know whether this was ever done in practice. However, this does mean that you will need to stick a 5 byte header into one of the display lists to set the Write Mode bit. (It doesn't have to be on the visible screen, so it could be part of one of the hardcoded null display lists.)

 

160A is a standard 7800 graphics mode used by many games. The graphics header selects one of the 8 palettes and each pair of bits (76,54,32,10) selects a color, with 00 being transparent. 320A is also simple to understand - again, the palette is given in the graphics header and each bit determines whether a pixel is on (color #2) or off (background or background). 320B is the same as 160 except it has double the resolution and the bits are in a different order (73,62,51,40).

 

It should be noted that all of the 320 modes have some limitations. First, the 320 modes are more like doubleres 160 modes. Although the color resolution is 320 pixels per line, the sprites are still positioned the same (effectively 160 pixel resolution).

 

The 320 modes are have a quirk when it comes to transparency. Both halves of the singleres pixel have to be 0 for transparency to work. If only one half is 0, then that half will be the background color instead. With a little care, this can almost be used as an additional color. (Setting bit 1 of the CTRL register (kangaroo mode) causes color 0 to be background instead of transparent in all cases.)

 

Finally, the 320 modes can cause color artifacts because the pixel frequency is the same as the color modulation frequency. The 7800 game Tower Toppler uses this intentionally and with great effect. An alternative is to set bit 7 of the CTRL register (colorkill) which suppresses the colorburst causing the graphics to be black & white.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...