2014. 2. 27. 10:44ㆍ콘솔게임의 역사
:: 아타리의 신형 게임기 프로젝트 코드명이었던 스텔라(Stella)는 당시 아타리의 엔지니어 Joe Decuir가 붙인 이름으로, 자신이 타고 다니던 자전거 브랜드명이었다. 예상대로 그는 소위 말하는 '자덕'으로 자전거 광이었고 오늘날 링크드인 프로필 사진에서까지 그의 자전거 사랑을 쉽게 엿볼 수 있다. ::
워너 커뮤니케이션 산하에서 안정적인 투자를 받으며 신형 게임기 스텔라 프로젝트 개발에 박차를 가하던 아타리. 하지만 생각처럼 개발 과정은 수월하지 않았던 것 같습니다. 일정도 급박했고, 하드웨어 부품 단가 절감과 수율 문제 등 여러가지 고충을 겪어야만 했습니다. 스텔라의 하드웨어 개발 과정을 조금만 깊이 살펴보면 아타리의 고군분투를 쉽게 엿볼 수 있습니다.
새로운 프로세서, MOS 6507
:: MOS 6507 ::
앞서 아타리는 스텔라 프로젝트를 시작할 당시 MOS와 6502 프로세서 계약을 체결했다고 소개한 바 있습니다. 하지만 결과물은 6502가 아니라 스텔라의 가격 효율성을 맞추기 위해 새롭게 고안한 소형 MOS 6507 이었습니다. 6507은 1.19Mhz 클럭으로 동작하며 메모리 어드레스 라인을 16핀에서 3핀을 줄인 13핀만으로 최대 8KB의 메모리에 접근합니다. 그리고 8핀는 데이터 용으로, 나머지 7핀은 전원과 대기 표시 등으로 사용되어 40핀에서 28핀으로 축소된 버전이었습니다. 결과적으로 아타리는 이 축소형 프로세서를 통해 개당 $1 원가 절감에 성공하게 됩니다.
6507이 최대 8KB의 메모리를 수용할 수 있었지만, 아타리는 13핀의 메모리 어드레스 라인 중 1핀을 칩 셀렉트 용도로 사용하고 나머지 12핀의 4KB만을 게임 저장용으로 사용하도록 설계하는 실수아닌 실수(?)를 저지릅니다. 당시 하드웨어를 개발하던 엔지니어 Joe Decuir는 프로세서 개발에 대해 아래와 같이 회상합니다.
"스텔라를 개발하던 당시 하나의 게임을 구동하는데 2KB의 메모리 정도면 충분했습니다. 그래서 최초 모델은 4KB 까지 지원하도록 설계했죠. 하지만 몇 년 지나지 않아 메모리 부족 문제를 겪어야만 했습니다. 결국 우리는 추가로 32KB 메모리를 확장하는 뱅크 스위칭(Bank Switching) 기법을 통해 이 문제를 해결할 수 있었습니다. 이 게임기가 이렇게 오랜 기간 이용되고 게임 하나에 훨씬 많은 메모리가 필요할 날이 빨리 올 줄은 예상하지 못했던 겁니다." - Joe Decuir
아타리의 독자적인 비디오/오디오 칩셋 TIA
아타리는 스텔라에 사용할 독자적인 비디오와 오디오 기능을 통합한 TIA(Television Interface Adaptor) 칩을 개발하게 됩니다. 앞서 소개한 MOS사와 같은 반도체 회사에서 아웃소싱하지 않고 독자적으로 개발해야 했던 이유는 당시 반도체 메모리 가격이 너무나 비쌌기 때문입니다. 게다가 MOS의 RAM은 불량률이 굉장히 높았다는 점도 앞서 1페어차일드 채널 F 이야기에서 소개한 바 있습니다. 스텔라는 가능하면 모든 부분에서 RAM 사용을 최소화 하는 방향으로 하드웨어를 설계 해야만 했고, 상황이 이렇다보니 스텔라 프로젝트 성공의 열쇠는 TIA 칩 설계를 맡고 있던 제이 마이너(Jay Miner)가 손에 쥐고 있었다고 해도 과언이 아니었습니다.
TIA는 디스플레이 출력과 제어에 있어 RAM 사용을 최소화 하는데 집중한 노력의 결정체였습니다. 예로 192x160 해상도에서 1픽셀당 1bit의 메모리가 필요하다고 한다면 프레임버퍼(framebuffer)를 저장하기 위해 3,840Bytes의 메모리로 관리해야만 했습니다. 이런 방식은 결국 스텔라 플렛폼이 목표로하는 $100 후반대의 가격에 맞출 수 없고 해상도를 줄인다고 해결될 문제도 아니었습니다. 2
결국 아타리는 기존 방식을 대체 할 새로운 방법을 고안해냅니다. 바로 라인(Line) 입니다. 전체 화면으로 구성하는 프레임버퍼 매핑 방식으로 디스플레이를 출력하는게 아니라, 2개의 스프라이트(8 픽셀 라인), 볼(픽셀 1개), 2개의 미사일(2개의 픽셀 라인) 5가지 단색 오브젝트들을 겹쳐서 하나의 라인(Line)에 그려내는 방식으로 구현 합니다. 스텔라의 해상도는 192x160 픽셀 이었기 때문에 총 160개의 수평 라인에 개별적으로 등록된 레지스터들을 제어하여 게임을 즐기는 플레이어가 한 화면에서 구동되듯이 느끼도록 프로그래밍하는 기술을 요구하게 됩니다.
:: 스텔라의 핵심 부품 3가지. 위에서 부터 순서대로 Ram-I/O-Timer (RIOT) 칩셋, MOS 6507 프로세서, 그리고 가장 아래가 비디오/오디오 통합 칩셋인 TIA로, 차세대 게임기 시장에서 독보적인 위치를 만드는데 결정적인 역할을 하게 된다. :: ⓒ iFixit (License by Creative Commons BY-NC-SA)
결과적으로 TIA의 구현 방식은 메모리 효율성을 높이는데 성공하지만, 반대로 악명높은 프로그래밍 난이도를 자랑하게 되었습니다. 방금 설명대로 한 라인에 동시 표현 가능한 오브젝트는 최대 5가지, 그리고 4 컬러 까지 동시 표현이 가능했는데요, 이 160개 라인을 한 화면에 자연스럽게 보이도록 실시간으로 제어하면서 사용자의 컨트롤과 AI 까지 고려하고 거기에 동시 표현 가능한 4가지 색상 배치까지... 출시 이후 스텔라의 개발 가이드를 처음 접하는 프로그래머들이 얼마나 스트레스를 받았을 지는 어렵지 않게 짐작할 수 있을 겁니다. 3
그럼에도 불구하고 TIA의 구현 방식은 극악의 난이도를 넘어 하드웨어의 유연한 확장성과 개방성 덕분에 호기심 넘치는 수많은 컴퓨터 광들의 참여를 일으켰고, 비디오게임 시장에도 누구나 공개 소스로 게임을 직접 만들고 가지고 노는 Homebrew 시대를 열게되어 30여년이 지난 오늘날 까지도 사랑받는 결정적인 계기가 됩니다. 4
:: 최근 아타리 2600 에뮬레이터로 만들어진 Homebrew 게임 "Duck Attack" (2010) ::
조이스틱(Joystick)과 다양한 컨트롤러
스텔라의 가장 기본이 되는 게임 컨트롤러는 앞서 프로토타입 모델에서도 언급했던 아케이드 게임 'Tank'의 조종석 컨트롤러를 본 따 만든 버튼 하나짜리 조이스틱(Joystick) 입니다. 포트는 9핀(DE-9)짜리 D-Sub 단자로 되어는데요, 재밌는 사실은 향후 출시되는 9핀 단자의 게임 컨트롤러로도 구동이 됩니다. 아무튼 이 조이스틱은 겉보기엔 원형으로 부드럽게 돌아갈 것 같이 생겼지만 실제는 상하좌우 4방향(十자)으로만 움직이기 때문에 상당히 뻑뻑했습니다. 이 밖에도 기존의 퐁(Pong) 게임에서 사용하던 페들, 트랙볼, 12키 키보드 등 훗날 이 게임기가 인기를 얻게 되면서 아타리에서 제작한 컨트롤러 외에도 다양한 써드파티(Third-Party) 컨트롤러가 전용 게임들과 출시되기도 합니다.
:: 향후 써드파티를 통해 출시되는 아타리 2600의 다양한 컨트롤러들 © The Video Game Critic. ::
모든 준비를 끝 마치며
TIA 칩 개발과 디버깅이 순조롭게 마무리 되면서 아타리는 스텔라 출시를 코 앞에 두게 됩니다. 70년대 초반부터 진행해온 프로젝트 였지만 개발에 난항을 겪은데다 심각한 자금난을 맞아 결국 워너 커뮤니케이션에 회사를 매각하기에 이르렀고, 당시 너무 비싼 RAM 가격 때문에 1bit 라도 메모리 사용을 최소화 하기 위해 고군분투해야만 했습니다. 이런 배경 아래 1977년 9월, 아타리 VCS(Video Computer System)는 기출시된 페어차일드 VES와 전면전을 앞에 두면서 2세대 콘솔 시장에 진입합니다. 차세대 게임기 개발에 들어간 비용은 총 1억 달러. 아타리는 이 기계 하나에 기업의 사활을 걸게 됩니다. 5
[참고 자료]
High score!: the illustrated history of electronic games
http://en.wikipedia.org/wiki/Atari_2600#cite_note-2
http://en.wikipedia.org/wiki/Atari_2600_hardware
http://www.ifixit.com/Teardown/Atari+2600+Teardown/3541
- 1976~77년 당시 RAM 1MB 당 가격은 3만달러(한화 3500만원)가 넘었다. http://jcmit.com/memoryprice.htm [본문으로]
- 컴퓨터 그래픽에서 한 화면 분량의 화상 정보의 일시적 저장에 쓰이는 기억 장치. 디스플레이 해상도가 높아질 수록 많은 메모리 용량을 요구한다. [본문으로]
- TIA가 지원하는 색상 팔레트는 TV 방식에 따라 달랐는데 NTSC는 최대 128컬러, PAL은 104컬러, SECAM은 8컬러 팔레트였다. [본문으로]
- 여러 컴퓨터 괴물들이 참여해서 한 라인에 최대 15컬러 까지 표현하는데 성공하는 등 하드웨어의 한계를 초월하는 모습을 보여주기도 했다. (http://youtu.be/fRr4kxZetYA) [본문으로]
- 초창기 모델명은 아타리 VCS 다. 오늘날 우리가 알고 있는 아타리 2600은 80년대에 이르러 변경된 모델명이다. [본문으로]