CGA

IBM PC그래픽 카드
MDACGAEGAVGAXGA

Screen_color_test_CGA_4colors_Mode4_Palette1_HighIntensity.png

Color Graphics Adaptor

1 개요

1981년에 IBM이 개발한 그래픽 카드. MDA와 함께 최초의 IBM PC인 Model 5150에 탑재하기 위해 개발된 제품이다. 말하자면 최초의 그래픽 카드이기도 하다. 당시에 IBM PC는 구입시 MDA와 CGA 중에서 기본 옵션으로 선택이 가능했고 이 사양은 IBM PC AT까지 이어졌다.

PC의 기본 그래픽카드였기 때문에 북미 쪽에서는 상당기간 동안 사용되었으나 대한민국을 포함한 아시아권에서는 저해상도라는 점 때문에 한글이나 한자 등의 글자를 표현하기가 어렵다는 이유로 보급이 저조했다. 오히려 흑백이지만 고해상도라는 이유로 서드파티 제품인 허큘리스의 보급률이 압도적이었다. 텍스트 모드에서 CGA 폰트는 국내는 물론이고 북미에서까지 악명이 드높았다.

cga.png
과연 악명이 높을 만하다.(...)

그러나 허큘리스는 IBM의 표준장비가 아니었기 때문에 IBM PC의 바이오스 콜에서 지원을 받지 못했고 북미권에서는 CGA가 널리 쓰였기 때문에 게임은 CGA를 바탕으로 만들어진 것이 많았다. 이 때문에 국내에서는 허큘리스 카드에서 CGA를 에뮬레이션해주는 SIMCGA같은 프로그램이 널리 쓰였다. 다만 교육용 PC 사업 이후에 대량으로 보급된 국내 대기업 컴퓨터들 중에는 한글 표시를 위해 해상도를 늘려 표준 흑백모드인 640x200을 640x400까지 표시할 수 있는 변형 CGA카드(일명 MCGA. 단 IBM PS/2에 내장되었던 MCGA와는 다른 물건이다)를 탑재한 모델도 있어 아주 사용되지 않았던 것은 아니다. [1]

북미쪽에서도 기본 사양이기 때문에 많이 사용은 했지만 기본 해상도에서 4색밖에 안되는 부족한 컬러는 경쟁업체의 컴퓨터들과 비교당하며 까이는 원인이 되기도 했다. 하지만 이후 IBM이 EGA, VGA등 발전된 그래픽 카드를 제작하는데에 초석이 되었다는 점에서는 중요한 그래픽 카드이기도 하다.

2 성능

비디오 제네레이터로 모토로라의 MC6845를 채용했다. 이 칩은 당시 북미권에서는 대단히 광범위하게 쓰였던 칩으로 애플 II나 Amstrad CPC등의 당대의 경쟁기종도 이 칩을 채용했고 MDA허큘리스도 동일한 칩을 사용하고 있다. 상세한 그래픽 성능의 차이는 비디오 제네레이터 이외의 다른 설계에서 오는 것이다. 비디오 메모리는 16KB였고 IBM 5153 모니터와 연결할 수 있는 4비트 디지털 RGB 단자 외에 TV와 연결이 가능한 RCA 단자를 가지고 있었다. [2]

CGA에서 출력 가능한 화면 모드는 다음과 같다.

  • 320 x 200 (픽셀 종횡비 1:1.2) / 16컬러 중 동시 4컬러 출력
  • 640 x 200 (픽셀 종횡비 1:2.4) / 동시 2컬러 출력 (흑백)
  • 160 x 100 (픽셀 종횡비 1:1.2) / 16컬러 동시 출력
  • 40자 x 25행 텍스트 모드 / 8 x 8 픽셀 폰트 사용 (실효 해상도 320 x 200)
  • 80자 x 25행 텍스트 모드 / 8 x 8 픽셀 폰트 사용 (실효 해상도 640 x 200)

PC에서 최초로 컬러를 지원한 그래픽 카드라는 의의가 있지만 최초라는 이름에 걸맞게 성능상 치명적인 단점을 가지고 있었다. 우선 컬러 그래픽 이용시에 해상도는 320x200에 불과하며 동시 표현가능한 색도 4색에 뿐이라 빛의 삼원색과 흰색 모두를 동시에 표현이 불가능한 것이다(검은색이 반드시 들어가니 남는 것은 3개 뿐이다). 모드를 선택하여 이용할 색을 선택할 수는 있지만 워낙 색 수가 적어 색을 보는 것 이외에는 별 의미가 없었다. 흑백 모드도 해상도가 640x200였다. 다만 320x200이라는 해상도는 당대의 경쟁 컴퓨터들 중에서 낮은 해상도는 아니었다. 애플 II의 경우 280x192/6컬러, 코모도어 64는 320x200/16컬러가 표현 가능했다. 문제는 4색이라는 충격과 공포의 컬러 수였던 것. '적어도 흑백+3원색은 표현할 수 있어야 하지 않냐'는 불평은 당시에도 있었던 모양이다. 덕분에 CGA 컬러를 보면 3원색 계통 중 1색은 꼭 빠지게 되거나 흰색이 없어서(검정바탕은 꼭 필요하니 필수적으로 검정은 들어간다) 뭔가 허전한 느낌의 컬러를 보게 된다.

이곳에서 CGA 게임들의 스크린샷을 볼 수 있다. 확실히 흑백은 아니지만 그렇다고 해서 컬러라고 하기도 뭣할 만큼 색상이 극히 제한적이다.

다만 텍스트 모드에서는 16색(우선 검은색, 흰색[3] 2종류에 파란색, 초록색, 청록색, 빨간색, 보라색, 황갈색[4] 그리고 앞의 색들을 명도를 높여 8색(회색[5], 밝은 파랑, 연두, 하늘색, 밝은 빨강, 밝은 자홍, 노랑, 밝은 흰색□)을 더 만들었다)을 지원한다. 이 16색은 EGA, VGA의 텍스트 모드에서도 기본 색상으로 지정되어있으며 해상도를 심각하게 포기한 160x100 모드에서는 16색을 모두 표현할 수 있다.

Paku-paku5-dos.png
이렇게.

640x200 흑백 모드는 삼국지1 PC판이나 초창기 아래아 한글 등에서도 지원한 적이 있는데, 이 경우 화면이 가로본능을 따라 주지 않기 때문에 도트 하나가 세로로 길쭉해진다. 픽셀 종횡비가 무려 1:2.4에 이르기 때문. 픽셀 종횡비가 1:1이 당연한 요즘에는 상상하기 힘든 화면모드지만 예전 컴퓨터에서는 저런 화면모드가 흔했다. 애플 II나 MSX2의 고해상도 모드도 대부분 Y축 방향으로는 해상도가 그대로다. 세로 400라인이 넘어가는 고해상도 화면은 TV나 그 비슷한 설계로 만든 모니터로 출력하면 인터레이스 모드로 표현해야하기 때문에 화면이 깜빡이는 플리커 현상이 있기 때문인 것도 있지만 당시 하드웨어 스펙이 후달렸기 때문(...)이라는 게 좀 더 큰 이유일 것이다.

덕분에 현재는 'IBM PC 최초의 컬러 그래픽 카드'라는 이상도 이하도 아닌 물건이 되었다. 1984년에 EGA, 87년에 VGA가 나오면서 좀 더 나은 색상을 원하는 사용자들은 EGA, VGA로 옮겨타기 시작했고 VGA가 대중화되기 시작하는 1990년 무렵부터는 많은 소프트웨어들이 CGA 지원을 중단하며 그 수명을 다하기에 이른다.

2.1 컴포지트 아티팩트 컬러

TV출력 모드를 PC모니터에서 볼 경우TV출력 모드의 실제 화면 에뮬레이트

CGA는 당대의 컴퓨터들과 마찬가지로 RCA 단자를 통해 컴포지트 TV 출력이 가능하였으나, 컴포지트 신호의 한계가 있어 영상 출력 품질은 그리 좋지 않아 단색 모드를 TV에서 보면 색번짐이 심하였다. 하지만 개발자들은 이 점을 역이용하여 16색을 표현하는 꼼수를 사용했는데 이를 '컴포지트 아티팩트 컬러'라고 일컫는다. 이 역시 애플 II나 TRS-80 같은 당대의 경쟁기종에서도 사용되던 테크닉이다. 몇몇 게임은 CGA 이용시에 TV 출력을 선택하여 TV에서 보면 CGA의 한계를 초월한 화면이 나온다. 이를 CGA Composite Mode라고 부르는데, 물론 일반 모니터에서 보면 뭐가 뭔지 거의 알아볼 수 없지만 도스박스에 이 화면을 에뮬레이트 해주는 기능이 있다.

컴포지트 아티팩트 컬러의 예시

2015년에 CGA의 성능을 극한까지 밀어붙인 데모가 나왔는데 CGA 그래픽 이라고 믿기지 않을만큼 엄청난 그래픽을 보여준다. 소리도PC 스피커에서 화음을 구현하는 등 클래식 PC의 성능을 끝까지 쥐어짜내서 만들었다고 할만한 데모.

이런짓도 할수있는 모양(...)

3 개량버전

kq1_2_16.gif

IBM PCjr에서는 'VGA'(Video Gate Array)[6]라는 이름으로 CGA의 기능을 확장하여 320x200 해상도에서 16색, 640x200 해상도에서 4색을 표현할 수 있는 회로를 메인보드에 내장하고 있었다. CGA에선 160x100에서만 가능했던 16컬러가 기본해상도인 320x200에서도 사용 가능하게 되어 PCjr는 동시대의 경쟁기종(대부분 8비트 컴퓨터였다)과 동급의 그래픽 성능을 확보할 수 있었으나 PCjr의 설계상 메인 메모리의 일부를 비디오 메모리로 전용하는 구조로 되어있어서 128KB로 메모리를 확장해야 이 확장된 CGA 성능을 이용할 수 있었고 기본 세팅인 64KB에서는 그냥 CGA랑 똑같이 동작했다.

후대의 VGA(Video Graphics Array)와의 혼동을 막기 위해 'CGA Plus'라는 호칭으로 부르기도 하는데, CGA Plus는 후대의 VGA와 달리 PCjr 자체가 캐망하고 EGA도 곧 나와서 묻혔다. 그렇다보니 별도로 카드 형태로 발매되지도 못한 모양. 후대의 VGA도 선대의 VGA(=CGA Plus)처럼 원래는 그래픽 카드 형태가 아니라 PS/2의 메인보드에 내장된 회로였기 때문에 'Adaptor'가 아닌 'Array'라는 표현을 썼지만 이쪽은 인기를 끌어 리버스 엔지니어링을 통해 호환 카드가 나오고 업계를 통일하다 못해 VGA라는 단어가 일반명사가 되어 '그래픽 카드'와 동의어가 된 것이 비하면 비하면 매우 안습한 최후가 아닐 수 없다. 다만 Tandy에서 만든 Tandy-1000이 PCjr를 베이스로 만든 호환기종이었고 이게 그나마 좀 팔렸기 때문에 이 CGA Plus를 'Tandy'나 'TGA'와 같은 이름으로 지원한 경우가 좀 있어서 소프트웨어 지원이 아주 보기 드물지는 않다.

  1. 1990년대 초까지 이러한 제품이 채용되다 XGA호환 카드로 옮겨갔다. CGA,EGA는 가격과 해상도 문제로 허큘리스카드에 밀렸고, VGA,XGA는 가격과 함께 국내 컴퓨터 대중화 시기가 서드파티 SVGA카드의 상용화시기와 겹쳐 널리 사용되지 못했다.
  2. 당시에는 컬러 모니터의 가격이 부담스러울 정도로 비쌌기 때문에 게임기처럼 가정의 컬러TV와 연결할 수 있도록 TV 출력을 지원하는 컴퓨터가 매우 많았다. 일례로 애플 II, 코모도어 64, MSX 등에도 모두 RF나 RCA TV Out이 달려있었다.
  3. 여기서 말하는 흰색은 은회색(밝은 회색)이며, 그 흰색에서 명도를 높인 '밝은 흰색'이 진짜 흰색이다.
  4. 의외로 이 색이 아니라 이 색이다.
  5. 검정색과 (어두운) 흰색의 중간색으로, 간단히 말해서 암회색.
  6. 우리가 보통 VGA라고 부르는 물건의 약자는 Video Graphics Array다.