Graphics
The graphics are generated by a custom Graphics Processing Unit called MARIA which is very different from other second and third generation consoles, and made it more difficult for game programmers to make the transition. Instead of a limited number of hardware sprites, the MARIA allows for a much larger number of sprites described in a list of display lists. Each display list contains sprite entries with pointers to graphics data, color information, and horizontal positioning. The same display list is used for multiple rasters with the pointers being automatically adjusted. However, managing and displaying a large number of sprites required much more CPU time (both directly and indirectly since the MARIA would halt the CPU when drawing sprites) than consoles with hardware sprites and backgrounds.
MARIA has a number of different graphics modes which are either 160 pixels wide or 320 pixels wide. While the 320 pixel modes theoretically enable the 7800 to create games at higher resolution than the 256 pixel wide graphics found in the Nintendo Entertainment System and Sega Master System, the intense processing demands of MARIA typically meant that programmers created their games using the lower 160 pixel modes.
The 7800 features a broad (for its time) palette of 256 colors. Depending on various parameters, each individual sprite can use from 1 to 12 colors, with 3 colors (plus a 4th "transparency" color) being the most common. In this format, the sprite is referenced to one of 8 palettes, where each palette holds 3 assignable colors. There is also an assignable background color, which will be visible wherever another object has not covered it up. In total the system can utilize 25 colors on a scanline at one time.[8]
The graphics resolution, color palette assignments, and background color can be adjusted in between scanlines. Although it is a more advanced programming technique, this isn't really a "trick". The designers deliberately included this feature, and documented its use in the original 1983 "Atari 3600 Software Guide".[8] Games often used this feature to render high resolution text in one area of the screen, while displaying more colorful graphics with less resolution in the gameplay area. Demos also exist which use this feature to place all 256 colors on the screen at the same time.
The MARIA’s approach had advantages and disadvantages when it came to generating graphics in software during the lifespan of the 7800. It excelled at moving around large numbers of sprites on a static screen without the screen flickering that plagued other 8-bit systems. Its flexible design enabled it to play games which used display list manipulation to generate a pseudo 3D appearance such as Ballblazer (1987) and F-18 Hornet (1988). While side-scrolling games in the vein of Super Mario Bros. are possible on the system (1990's Scrapyard Dog is the best example), it is significantly harder to develop such a title than on a tile-based system such as the Nintendo Entertainment System.
The graphics are generated by a custom Graphics Processing Unit called MARIA which is very different from other second and third generation consoles, and made it more difficult for game programmers to make the transition. Instead of a limited number of hardware sprites, the MARIA allows for a much larger number of sprites described in a list of display lists. Each display list contains sprite entries with pointers to graphics data, color information, and horizontal positioning. The same display list is used for multiple rasters with the pointers being automatically adjusted. However, managing and displaying a large number of sprites required much more CPU time (both directly and indirectly since the MARIA would halt the CPU when drawing sprites) than consoles with hardware sprites and backgrounds.
MARIA has a number of different graphics modes which are either 160 pixels wide or 320 pixels wide. While the 320 pixel modes theoretically enable the 7800 to create games at higher resolution than the 256 pixel wide graphics found in the Nintendo Entertainment System and Sega Master System, the intense processing demands of MARIA typically meant that programmers created their games using the lower 160 pixel modes.
The 7800 features a broad (for its time) palette of 256 colors. Depending on various parameters, each individual sprite can use from 1 to 12 colors, with 3 colors (plus a 4th "transparency" color) being the most common. In this format, the sprite is referenced to one of 8 palettes, where each palette holds 3 assignable colors. There is also an assignable background color, which will be visible wherever another object has not covered it up. In total the system can utilize 25 colors on a scanline at one time.[8]
The graphics resolution, color palette assignments, and background color can be adjusted in between scanlines. Although it is a more advanced programming technique, this isn't really a "trick". The designers deliberately included this feature, and documented its use in the original 1983 "Atari 3600 Software Guide".[8] Games often used this feature to render high resolution text in one area of the screen, while displaying more colorful graphics with less resolution in the gameplay area. Demos also exist which use this feature to place all 256 colors on the screen at the same time.
The MARIA’s approach had advantages and disadvantages when it came to generating graphics in software during the lifespan of the 7800. It excelled at moving around large numbers of sprites on a static screen without the screen flickering that plagued other 8-bit systems. Its flexible design enabled it to play games which used display list manipulation to generate a pseudo 3D appearance such as Ballblazer (1987) and F-18 Hornet (1988). While side-scrolling games in the vein of Super Mario Bros. are possible on the system (1990's Scrapyard Dog is the best example), it is significantly harder to develop such a title than on a tile-based system such as the Nintendo Entertainment System.