Graphics Modes

From C64-Wiki
(Redirected from Graphic mode)
Jump to: navigation, search

The Commodore 64 was designed to deliver a number of official graphics modes which provide for combinations of character graphics, bitmap graphics and sprites in single and multicolour. All of which can be mixed. The various modes were implemented using the VIC-II. As familiarity with the VIC-II grew, users developed non-official techniques which delivered graphical improvements.

Example of LoRes- /PETSCII picture: Gary by Mermaid

Implementation[edit]

The selection of graphics modes is determined by the combined setting (or clearing) of three bits in the two VIC-II control registers. In Control Register 1 ($D011) the flags are Bit 5 (BMM (Bitmap Mode)) and Bit 6 (ECM (Extended Color Mode)). In Control Register 2 ($D016) the flag is Bit 4 (MCM (Multicolor Mode)). Table 1 highlights the bits in the two control registers.

Table 1 - VIC-II Control Registers
Hex Address Dec Address Type Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Contents
$D011 53265 Register RST8 ECM BMM DEN RSEL YSCROLL Control Register 1
$D016 53270 Register - - RES MCM CSEL XSCROLL Control Register 2

Official Modes[edit]

As there are only 3 bits (ECM, BMM, and MCM) which define the graphics mode, there can be only 8 (2^3) possible bit combinations. Of these, only 5 were officially supported graphics modes. Table 2 displays the bit combinations and results.

Table 2 - Graphics Modes VIC-II Bit Combinations
Mode ECM BMM MCM Result
0 0 0 0 Standard Character Mode
1 0 0 1 Multicolor Character Mode
2 0 1 0 Standard Bitmap Mode
3 0 1 1 Multicolor Bitmap Mode
4 1 0 0 Extended Background Color Mode
5 1 0 1 Extended Background Color Multicolor Character Mode (invalid)
6 1 1 0 Extended Background Color Standard Bitmap Mode (invalid)
7 1 1 1 Extended Background Color Multicolor Bitmap Mode (invalid)

Modes 0-4 are documented, and were therefore supported, by Commodore. Modes 5-7 are technically feasible, but considered illegal. Although the features expected of modes 5-7 are present (such as collision detection), there is no visible screen output for the user. It is for this reason that they are not utilised.

Unofficial Modes[edit]

There are a number of user, or unofficial, modes which have been developed to improve the quality of graphics from the VIC-II. However, rather than being true “modes”, they are actually programming techniques which exploit flaws in the VIC-II; sometimes in combination with raster interrupts, interlacing and sprites. The various effects create graphics which appear to create a larger display area and/or an increased palette; although, notably, never increasing the maximum VIC-II pixel density. Essentially these improvements are achieved through software, as opposed to the official modes which are achieved through hardware. The known techniques are:

High Resolution Display Techniques[edit]

High Resolution Display Techniques
Acronym Technique Name Date Created
AFLI Advanced Flexible Line Interpretation April 1990
AH Advanced HiRes December 1996
AIFLI Advanced Interlaced Flexible Line Interpretation
ASSLACE April 2004
ECI Extended Colors with Interlace June 1988
IAFLI Advanced Flexible Line Interpretation April 1990
IH Interlaced HiRes
MRFLI Multi Resolution Flexible Line Interpretation February 2010
MUCSUFLI Multicolor Sprite Underlay Flexible Line Interpretation May 2011
MUCSUH Multicolor Sprite Underlay HiRes February 2009
MUFLI Multicolor Underlayed Flexible Line Interpretation July 2006
MUIFLI Multicolor Underlayed Interlaced Flexible Line Interpretation July 2009
NUFLI New Underlayed Flexible Line Interpretation July 2009
NUIFLI New Underlayed Interlaced Flexible Line Interpretation July 2009
SH Super HiRes January 1991
SHFLI Super HiRes Flexible Line Interpretation April 1996
SHI Super HiRes Interlace
SHIFLI Super HiRes Interlaced Flexible Line Interpretation April 1996
SHIFXL Super HiRes Interlaced Flexible Line Interpretation eXtra Large April 1997
UFLI Underlayed Flexible Line Interpretation April 1996
UIFLI Underlayed Interlaced Flexible Line Interpretation December 1997
TRIFLI Tri Interlaced Flexible Line Interpretation January 2010
XFLI eXtended Flexible Line Interpretation August 2002
XIFLI eXtended Interlaced Flexible Line Interpretation August 2002

Medium Resolution Display Techniques[edit]

Medium Resolution Display Techniques
Acronym Technique Name Date Created
FLI Flexible Line Interpretation July 1989
HCB Half Char Bitmap October 2008
IFLI Interlaced Flexible Line Interpretation Unknown 1991
MUCSU Multicolor Sprite Underlay
MCI Multicolor Interlace

Low Resolution Display Techniques[edit]

Low Resolution Display Techniques
Acronym Technique Name Date Created
Megatext July 2004
PRS Permanent Raster Split February 2011

Links[edit]

About C64 graphics modes[edit]

Crest demos with X-FLI-/XFLI[edit]

Another infos about C64/C128 graphics modes[edit]