게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
양덕의 위엄: CGA를 이용하여 1024 컬러 표현하기
게시물ID : humorbest_1134102짧은주소 복사하기
작성자 : 바부팅팅이
추천 : 104
조회수 : 11543회
댓글수 : 73개
베스트 등록시간 : 2015/10/15 20:16:15
원본글 작성시간 : 2015/10/15 19:37:15
옵션
  • 창작글
20151015175839_24NRHF3U_1k16_flowergirl_cga_1024_colors.png

이 이미지가 CGA 영상입니다. 믿겨지나요?
(CGA가 뭔지 아는 분이라면 "말도 안돼!!"라고 외칠겁니다. CGA가 뭔지 모른다고요? 아래를 읽어보시면 알게 될겁니다. 후후)
그런데 양덕이 이런 짓을 하고 있었더군요.



이야기를 꺼내기에 앞서,
CGA가 무지 옛날 그래픽카드라서 모르는 분이 있을테니 약간의 사전 설명을 하겠습니다.

CGA는 Color Graphic Adapter (컬러 그래픽 어댑터)의 줄임말로
1981년 IBM-PC의 출시와 함께 나온 녀석입니다.
(참고로 당신이 쓰고 있는 바로 그 컴퓨터가 IBM-PC 호환입니다. 아, 맥 쓰는 분은 빼고요. 제가 이 글을 맥으로 쓰고 있는건 안 자랑)
그래픽 카드가 엄청 길죠?
ibm_cga.jpg
(참고로 그래픽 카드는 IBM 기준으로 CGA/MDA -> EGA -> VGA -> XGA 순으로 나오게 됩니다.)



16KB의 비디오 메모리를 장착하여 (MB명박 아니고 KB국민 입니다!)

- 160x100 @ 동시발색수 16색
Cga_150x100.png

- 320x200 @ 동시발색수 4색
(0번 팔레트를 쓸 경우)
Cga_p0.png

(1번 팔레트를 쓸 경우)
Cga_p1.png

(3번 팔레트를 쓸 경우)
Cga_p3.png


- 640x200 @ 동시발색수 2색 (흑백 또는 다른 두 색)
Cga_640x200.png

를 나타낼 수 있습니다.
엄청 옛날꺼이다보니 딱 봐도 영상이 조악하죠.



감이 잘 안 올거 같아서, 얘 용으로 만든 게임 화면을 걸어봅니다.
대충 이런 느낌이에요.

페르시아의 왕자
prince_cga.png

고양이 (Alley cat)
t2D2h.png

레밍즈
cgalemmi_001.png

위험한 데이브 (Dangerous dave)
108517-dangerous-dave-in-the-deserted-pirate-s-hideout-dos-screenshot.png

피자배달 (Avoid the noid)
Screenshot-7.png

고인돌 (Prehistorik)
CGOIN.png

황금도끼
CGOLD.png

커맨더 킨 (Commander keen)
keen4cga3.png

등등...
CGA에 대해 더 자세히 알고 싶으면 여길 읽어보세요 (한국어 위키피디아) :
https://ko.wikipedia.org/wiki/%EC%BB%AC%EB%9F%AC_%EA%B7%B8%EB%9E%98%ED%94%BD%EC%8A%A4_%EC%96%B4%EB%8C%91%ED%84%B0



위에 이미지를 보시다시피 동시에 표현할 수 있는 컬러는 끽해야 320x200 @ 4색까지입니다.
(실은 160x100 @ 16색은 후대에 발견되어 쓰이기 시작한 변태 모드입니다. 자세한건 아래에...)
그런데 CGA는 좀 특이한 점이 있던게,
값비싼 전용모니터 (CGA모니터라고 부름) 뿐만 아니라 TV에 화면을 출력할 수 있게 composite 포트를 제공했습니다.

COMPAQPT.GIF
t1000_12.jpg



이 composite 포트를 TV에 연결하면 TV에 화면이 나오는 거 까진 좋은데,
TV 출력을 구현하기 위해 값싼 칩을 써서 화면이 번져나오는 문제가 있습니다.

값비싼 전용모니터(CGA모니터)에 꽂으면 이렇게 말끔하게 나오는데요.
CGA_CompVsRGB_Text.png

TV에 꽂으면 이런 꼬라지가 됩니다.
CGA_CompVsRGB_Text-1.png



이건 TV에서 어떻게 번지는지를 보여주는 이미지입니다.
위에가 전용모니터, 아래가 TV 출력입니다.
1k06_cga_composite_fringing_artifacts.png



분명 흰 픽셀인데도 위치에 따라서 색이 다르죠?
이러한 번짐 특성을 이용하면 640x200 @ 흑백 모드에서 이런 짓이 가능합니다.
좌측이 전용모니터, 우측이 TV 출력입니다.
1k07_cga_composite_solid_colors_1.png

640x200은 동시 발색수가 2색인데, 반드시 흑백만 가능한건 아녜요.
흑적의 경우는 이렇게 됩니다.
1k08_cga_composite_solid_colors_2 2.png



2색만으로도 이렇게 다채로운데,
320x200 @ 4색을 이용하면 어떤 일이 벌어질지 대충 예상이 되죠?
자세한 설명은 생략하고 결과만 걸어볼게요. (0번 팔레트의 경우입니다.)
1k08_cga_composite_solid_colors_2.png



위에서 160x100 @ 16색 모드가 있다고 했었죠? (변태 모드라고 적었죠.)
이제 그 얘기를 해볼게요.

원래 CGA의 표준 그래픽 모드는
- 320x200 @ 4색
- 620x200 @ 2색
이 전부예요.

그리고 표준 텍스트 모드는
- 40x25 문자 @ 16색 (글자 하나 크기는 8x8 픽셀)
- 80x25 문자 @ 16색 (글자 하나 크기는 8x8 픽셀)
이랍니다.

얘가 딱 80x25 문자 @ 16색 모드 화면입니다.
CGA_CompVsRGB_Text.png



그런데 CGA의 어떤 특징을 이용하면 80x25 문자 @ 16색 모드에서 8x8 픽셀의 글자를 위에 두 줄만 표시할 수 있어요.
아래 이미지에서 노란 부분만 화면에 표시됩니다.
1k11_ascii_0x55.png



여기에 80x25 문자 모드를 세로로 잡아 늘리면 80x100 문자로 표시가 가능합니다.
그런데 가로 80문자는 CGA의 어떤 특징을 이용하면 160으로 뻥튀기 할 수 있어요.
이게 바로 변태 모드인 160x100 @ 16색 모드의 진실입니다.
(한줄 요약 : 그래픽 모드가 아니라 텍스트 모드에 얍삽이를 쓴 거!)



이제 변태 모드를 TV 출력시의 번짐효과에 이용할 차례입니다.
위치에 따라서 색이 달랐던거 기억하시죠?
문자 U와 !!를 확대해 보면 한 픽셀 오른쪽으로 이동해 있는걸 볼 수 있는데 덕분에 색도 다르게 나옵니다.
왼쪽이 전용모니터, 오른쪽이 TV 출력입니다.
1k12_cga_artifact_colors_ascii_0x55.png
1k13_cga_artifact_colors_ascii_0x13.png

1바이트 아스키 문자 중에는 이런 놈도 있는거 다들 아실겁니다(정말?) : ░ , █ (브라우저에선 아마 제대로 표시 안될거에요...)
1k14_ascii_0xb0_0xb1.png

이걸 위의 2픽셀만 이용하면 요래 됩니다.
1k15_cga_artifact_colors_ascii_0xb0_0xb1.png



이런 얍삽이를 최대한 동원해서 나온 결과물이 바로 이겁니다.
출처에서 이야기하길 총 1024가지 색이라고 합니다.
위는 TV출력, 아래는 전용모니터 출력입니다.
1k16_flowergirl_cga_1024_colors.png



어으... 양덕 아주 소름돋네요.
TV 출력시의 번짐현상은 싸구려 칩을 쓰는 바람에 발생한, 실은 버그에 가까운 특성인데
이걸 이용해서 저런 짓을 할 줄이야!
출처 http://8088mph.blogspot.kr/2015/04/cga-in-1024-colors-new-mode-illustrated.html
https://en.wikipedia.org/wiki/Color_Graphics_Adapter
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호