Retro Game & PC/Emulator

Apple ][ 에뮬레이터 - 들어가는 글

smores 2014. 9. 13. 03:30
반응형

스티브잡스와 스티브워즈니악이 컴퓨터 역사에 남긴 8비트 컴퓨터인 애플은 그 인기와 더불어 아직까지도 세계에서 가장 잘나가는 컴퓨터/IT 업체인 애플을 탄생시킨 걸출한 물건이었습니다. 

 

스티브워즈니악의 천재성이 녹아들어가서 저가의 부품만으로도 탄생되던 당시의 경쟁제품을 압도하는 뛰어난 기능과 (컬러 그래픽 등...) 뛰어난 개방성으로 수많은 명작 게임을 낳는 플랫폼이 되었었습니다. 하지만 너무도 대단한 워즈의 천재성으로 구현된 독특한 그래픽 구현 방식은 타사의 제품들과 비교했을때 소프트웨어 에뮬레이션으로 정확하게 구현하기가 무척 까다로운 부분인 것 같습니다. 덕분에 아직까지도 애플2 에뮬레이터 중에 본인의 욕구(PC 모니터상에서 실기에 가까운 화질을 보는것)를 충족시켜주는 에뮬레이터를 만나질 못하고 있었습니다. 즉, 에뮬레이터 별로 구현된 화질의 차이가 천차만별입니다. 물론 코모도어64의 경우도 독특한 그래픽 기능을 갖고 있습니다만, 그래도 에뮬레이터별 화질의 편차가 애플2의 것만큼 크지는 않은 것 같습니다. 

 

특히 애플2의 경우는 실기 자체에서도 NTSC 아나로그 모니터의 하드웨어적인 타이밍을 특이하게 사용하는 트릭으로 컬러를 구현하였고, 이는 타 기종에서는 보기 드문 방식이기에 에뮬레이트된 화면에서 이러한 아나로그의 특징을 보여주기가 매우 까다롭습니다. 아마도 필터 보정 없는 에뮬레이션 이미지가 에뮬레이터별로 그처럼 다양하게 구현되는 기종은 애플2가 유일무이하지 않을까 싶습니다.

 

애플2의 에뮬레이션 역사를 살펴보면, PC 시절의 소프트웨어 에뮬레이션 훨씬 이전에 애플2의 후속기종에서 (그 인기가 죽지를 않았기에 필요로 했던) 애플2의 소프트웨어 실행을 위한 하드웨어 에뮬레이터 부터 시작되었다고 할 수 있을 것 같습니다. 일종의 애플2 애드온 보드인 셈입니다. 예를 들면 old Mac에 장착되었던 AppleIIe card 같은 것이 있습니다.

 

http://en.wikipedia.org/wiki/Apple_IIe_Card

 

하지만 본 블로그에서는 이러한 하드웨어에 대해서는 더이상 자세한 언급은 하지 않고, 본격적으로 소프트웨어 에뮬레이터 쪽을 파 보려 합니다.

 

다음은 본인이 가지고 있던 천리안 애플동호회의 자료실 리스트입니다. 리스트를 살펴보면 91년도에도 이미 PC용 애플2 에뮬레이터가 있음을 알 수 있습니다.

 

 

apple.txt
다운로드

 

 

사실 인터넷을 뒤져보면 다양한 애플 에뮬레이터에 대해 잘 정리된 곳들이 많이 있습니다.

 

http://www.zophar.net/apple2.html

http://www.applearchives.com/apple-ii-emulation/

http://mirrors.apple2.org.za/ftp.apple.asimov.net/emulators/

 

과거 애플2의 인기만큼 포팅된 기종도 데스크탑 컴퓨터 뿐만이 아니라 다양한 모바일 기기에도 있습니다. 다만 그래픽 화질이 워낙 초기 PC의 것인지라 이제는 게임조차 상당한 마니아가 아니라면 타 인기있던 8비트 콘솔 게임(예를 들어 NES, SMS 등)에 비해 에뮬레이터로 즐기려는 사람이 적은 듯 하고, 에뮬레이터의 완성도도 떨어지는 것들이 대다수입니다.

 

그러던 중 PC DOS 시절 AppleIIc 에뮬레이션을 목표로 1995년도에 첫 버전이 나온 ApplePC 라는 에뮬레이터가 있었습니다. 전체 코드가 어셈블리로 작성되었다는데 오늘날 그 소스를 구할수가 없습니다. 최종 버전인 2.52 버전에 이르러서는 완성도에 있어서는 타 습작수준의 에뮬레이터와는 비교가 안되는 수준에 이르렀습니다. 비록 텍스트 기반의 UI 이긴 하지만 조금만 익숙하면 사용이 오히려 마우스로 여러번 눌러가며 사용해야 하는 타 윈도우 기반의 에뮬레이터보다 더 편합니다. 게다가 모킹보드 에뮬레이션까지 포함함으로써 어렸을 때 직접 경험해 보지 못하고 지나간 모킹보드를 통한 UltimaV의 환상적인 배경음악까지 즐겨볼 수 있습니다. 이것을 한번 경험해 보면 왜 Ultima가 그처럼 대단한 게임이었는지, 그리고 그러한 위대한 게임이 탄생한 시스템인 애플2가 왜 그렇게 대단한 컴퓨터였는지 느낄수 있습니다. ApplePC의 한가지 더 대단한 점은 수많은 애플2 에뮬레이터가 나온 오늘날까지도 제 생각에는 가장 실기에 가까운 화면 구현을 해 내었다는 사실입니다. 

 

윈도우즈 시절로 넘어오면서 더이상 개발이 안 되어 처음부터 윈도우용으로 C 언어로 개발된, 아직까지도 꾸준이 버전업 되고 있는 AppleWin에게 리더쉽을 양보했겠지만 AppleWin 조차도 렌더링 된 에뮬레이터 화상을 비교해 보면 ApplePC의 것에 비하여 실기와의 격차가 한참 큽니다. AppleWin의 경우 비 공식적인 NTSC 버전이 있습니다. NTSC 버전은 비공식 버전인 만큼 오리지널 AppleWin에 비해 제한된 기능이 많다는 아쉬움이 있습니다. 예를 들어 monochrome monitor 구현이 빠져있다거나 모킹보드가 제대로 작동하지 않는 등의 문제들입니다. 이 버전은 화질에 있어서는 많은 분들의 평으로는 가장 실기에 근접했다고들도 합니다. 다만, 본인은 개인적으로 이 버전의 그래픽에서 조금 지나친 color bleeding 처리에 따른 ghost 같은 trailing image가 눈에 거슬립니다. 

 

ApplePC의 경우는 약간 도가 지나치게 blurry한 점이 조금 걸리고요. 둘을 섞은 정도면 좋겠다는 생각이 듭니다. 개인적으로 ApplePC의 딱 한가지 아쉬운 점으로는 CP/M을 지원하지 않는다는 점 정도일 것 같습니다 (도스용이라는 점은 일단 논외로 하겠습니다). 하지만 CP/M 이나 텍스트 기반의 프로그램은 어짜피 그래픽 화질을 따질 것이 아니므로 AppleWin이던 여타 에뮬레이터건 지원만 하면 이것으로 대신 써도 상관이 없기에 본 블로그에서 주 논점으로 따지는 그래픽 화질과 관련해서는 AppleWin NTSC와 함께 가장 높은 점수를 주고 싶습니다.

 

최근까지 가장 집중적으로 테스트해 본 에뮬레이터 들로는 (본인은 PC Windows 7을 주력으로 Linux-데비안,우분투-도 간혹 씁니다. 맥은 사용할 기회가 적어서 가끔 테스트해 보기는 합니다만 크게 언급할 정도는 아닙니다) AppleWin, AppleWin NTSC, ApplePC, JACE, MESS apple2e emulation 정도입니다. AppleIIgs 에뮬레이터까지 포함하자면 KEGS, ActiveGS 등이 있기는 합니다만, 일단 본 강좌에서는 논외입니다. 

 

본 글이 포스팅된 카테고리인 MESS의 경우는 그 자체의 apple2e 에뮬레이션 기능으로도 유용했을 뿐 아니라 ApplePC를 돌리는 도스 가상머신을 구축하는데도 사용했음을 먼저 언급해 둡니다. 도스용 소프트웨어인 ApplePC를 윈도우즈 환경에서 돌리려면 필연적으로 도스 가상머신이 필요한데 일반적으로 도스 가상머신으로 가장 인기있는 Dosbox에 비해 MESS에서 486 PC 가상머신하에서 돌린 ApplePC에서 어찌보면 최상의 화질을 얻었다고 생각해서 본 카테고리를 만들고 글을 올리기 시작합니다.

 

다음은 본인이 다른 카페에 올린 글입니다. 이 글을 보면 본인이 왜 이런 짓을 하고 있는지 어느정도 설명이 될 것 같아서 함께 올려둡니다.

 

.....

 

아직도 에뮬레이터를 고르는 뻘짓을 하고 있는 공돌이입니다. 

 

드디어 어느정도 종착점에 와 가는 느낌입니다. 일전의 MESS apple2e 에뮬레이션 결과를 공유한데 이어서 조금 더 실험한 내용들이 있어서 정보 공유차원에서 글을 올립니다.

 

일단 제가 왜 그렇게 에뮬레이터를 이것 저것 따지는지를 곰곰이 생각해 본 결과 다음과 같은 비교표를 얻었습니다.

 

 

 

 

여러 기능들이 있으며 가능한 다 만족하는 것을 쓰고 싶지만 역시 완벽한 것은 없습니다. 그래서 나름대로 우선순위도 정하고 필요시에는 다른 에뮬레이터를 쓰는 식의 타협도 하는 방향으로 가게 될 것 같습니다.

 

에뮬레이터 선택에서 저에게 가장 중요한 점은 LCD 모니터 상에서 얼마나 아나로그 CRT 같은 (실기에 근접한) 화질을 얻느냐입니다. 여기서 실기 같다는 의미는 저에게 있어서는 도트가 보이되 너무 심한 LCD 사각 깍두기 같은 도트는 싫다는 점입니다. 그리고 애플 NTSC 화면에서의 컬러 분리가 어느정도 실기처럼 보이게 구현했는가 여부도 신경이 많이 쓰였습니다. 이러한 점에 있어서 많은 분들의 의견을 어느정도 종합해 보면 AppleWin NTSC와 ApplePC (AIPC) 정도가 가장 실기에 비슷한 화면을 주는 것이 아닌가 싶더군요. 개인적으로는 AppleWin NTSC의 경우 너무 지나친 color bleeding 효과로 우측으로 고스트 현상처럼 끌리는 이미지가 매우 눈에 거슬리더군요. 결과적으로 ApplePC (AIPC) 가 개인적으로는 조금 낫게 느껴집니다.

 

다음으로 시스템 상태 저장 기능이 꼭 있기를 원했습니다. AppleWin, ApplePC, MESS 등은 자체적으로 기능이 있습니다. AppleWin NTSC는 정식으로 지원하지는 않지만 (F11/F12 키를 막아 놓았더군요) 조금 불편하기는 해도 (절차도 조금 애매하게 뒤틀어 놓았더군요) 익숙해 지면 사용은 가능합니다.

 

 

세번째로, 저만의 취향(?)인 듯 합니다만 저는 윈도우상에서 구현된 화면의 사이즈를 자유롭게 조절하고 싶었습니다. (특히 작은 쪽으로...) MESS와 JACE를 만나기 전까지는 애플 에뮬레이터에서 이것이 되는 에뮬레이터가 있는지 조차 모르고 있었습니다.

 

네번째로는 컬러 및 모노크롬을 하나의 에뮬레이터에서 쓰고 싶습니다. AppleWin은 모노크롬 녹색이 되는데 하필 AppleWin NTSC는 이것을 빼 놓았네요. T_T

 

UI 측면에서는 조이스틱 키보드 에뮬레이션 및 디스크 엑세스 속도 관련한 부분이 있습니다. 디스크 엑세스는 느린 것 자체를 실기 같은 느낌으로 즐기는 분들도 있을 것 같기에 우선순위 리스트에서 빼도 무방할 것 같습니다. 조이스틱 에뮬레이션의 경우는 애플 에뮬레이션으로 가급적이면 아케이드성 게임 보다는 RPG 쪽을 해 보고 싶었기에 그리 중요하지는 않습니다. 다행히 대부분의 에뮬레이터가 이는 지원을 합니다만, 노트북에서 숫자패드가 없는 경우 간혹  아쉬운 에뮬레이터들이 있습니다. 

 

CP/M 지원도 중요합니다만, 이 부분과 텍스트 관련 소프트웨어 실행은 화질이 중요한 것이 아니기에 그냥 AppleWin 오리지널로 쓰는 것으로 타협을 보았습니다. 

 

사운드와 관련해서는 모킹보드 에뮬레이션을 꼭 하고 싶습니다. 사실 애플 에뮬레이터로 즐겨보고 싶은 게임 중 1순위가 Ultima 4, 5 이기 때문입니다. PC DOS 상에서 업그레이드 버전으로 하면 여러 편의 및 미디 사운드의 질 등이 애플보다 훨씬 높기는 하지만, 그래픽 자체가 왠지 너무 컬러풀하고 해서 본인의 추억에 있는 Ultima 와는 거리가 멀어보입니다. AppleWin NTSC는 정식버전이 아니어서인지 아쉽게도 모킹보드 에뮬이 잘 안되더군요. 사실 이 부분만 놓고 보면 JACE 의 passport midi 지원이 크게 끌립니다. 간혹 이상한 배경 노이즈 - 틱, 틱 하는 소리 - 가 계속 안 없어지는 경우도 있어서 좀 문제이긴 하지만요. 화질도 개인적으로 좋아하는 수직방향 스캔라인(?) 같은 효과가 들어가 있고요. 어짜피 울티마는 자체 저장 기능도 있으니 에뮬레이터의 상태 저장이 없어도 할 만 할 것 같습니다. 어쩌면 게임별로 에뮬레이터를 선택적으로 골라서 해야 할런지도 모르겠습니다 (얼마전 우연히 테스트해 보다 안 것인데 Xyphus의 경우 프로텍트 된 NIB 파일을 시나리오 디스크로 사용해서 게임 디스크를 만드는데 AppleWin은 잘 해 주는데 ApplePC는 아예 읽지도 못하더군요.)

 

이상의 선택 기준으로 위의 도표에 있는 에뮬레이터들을 비교해 보면 대부분의 게임을 위한 에뮬레이터의 경우 AIPC와 JACE는 상태저장 기능이 없어서 우선 탈락시켰습니다. AppleWin 오리지널의 경우 그래픽의 깍두기 현상이 도저히 참기 힘들어서 탈락... ApplePC의 경우 도스 프로그램이어서 여태까지는 Dosbox에서 돌리고 있지만 약간 아쉬움이 있었습니다. 

 

MESS apple2e 드라이버는 그래픽 렌더링이 많이 번져 보여서(ApplePC 보다 더 심합니다) 왠지 타 에뮬레이터 보다 개인적으로는 호감이 덜 가는 화면을 만들어 냅니다. 이것 저것 aperture effect (수평, 수직 스캔라인), bilinear filter 등을 써 보아도 기본 렌더링 품질이 다르면 결과를 좋게 얻기가 쉽지 않아 보입니다. 게다가 HGR 모드의 하단 4줄의 텍스트가 컬러분리가 안되는 점이 (별것도 아닌 것 같지만) 저에게는 크게 감점 요인으로 보였습니다.

 

돌고 돌아서 결국 AppleWin NTSC와 ApplePC로 되돌아왔는데 MESS에서의 여러 효과들이 너무도 아쉽더군요. 특히 화면 사이즈 조절 기능이요.

 

갑자기 머리에 떠오른 생각이 ApplePC를 "Dosbox가 아닌 다른 가상머신에서 돌려보자" 라는 것이었습니다. MESS의 경우 PC 486, 펜티엄 까지 에뮬레이트 하기는 하지만 불완전한 것으로 보고하고 있습니다. 그래서 일단은 QEMU 0.11 버전에 MS-DOS 6.22 머신을 가상으로 만들고 ApplePC를 돌려 보았습니다. 황당한 결과를 얻었는데 애플2가 거의 펜티엄 수준의 속도입니다 !!! 속도 줄이기가 더 힘든 판입니다. CPU를 펜티엄으로 골라도 그렇습니다. 그리고 모킹보드를 끝내 작동시키지 못했습니다. 

 

MESS로 돌아와서 at486 관련 롬바이오스 다 모아놓고 도스머신을 구현해 보았습니다. 결과부터 말하자면 MESS 0.149에서는 성공적이었고 MESS 0.154b 에서는 아주 약간 문제가 있는 것 같았습니다. 

 

결론은 MESS at486 MSDOS 6.22 머신 (120MB 하드 이미지 만들어서 사용했습니다) 상에서 ApplePC가 완벽하게 (Dosbox 보다 나은것도 같습니다) 돌아가면서 화면 사이즈, aspect ratio 완전 자유 조절 가능, 수직 수평 스캔라인 aperture effect 적용 가능, 컬러 (셀로판지 같은) 필터 적용해서 ApplePC의 흰색 monochrome 화면의 컬러화 (엠버, 그린 등) 가능 등등, 화질과 관련한 저의 욕구는 거의 다 만족시켜 주었습니다. 덤으로 Ultima5 의 모킹보드 음악도 잘 나오고요. 다만 ApplePC의 경우 호스트 시스템의 속도에 따른 에뮬레이션 속도 차이가 있는데 (속도 줄이는 옵션이 있지만 세밀하지 못합니다) MESS에서는 시스템 에뮬레이션 속도를 최고 3배속 이내에서 실수값으로 조절 가능합니다 !!!  이 기능과 간단한 테스트를 거쳐서 at486 (이것 자체는 아마도 거의 정확한 실기의 속도를 구현하도록 만들어 놓았을 것 같습니다) 의 speed를 약 0.8~0.85 수준으로 낮추었을 때 Ultima 5 의 음악의 속도나 다른 게임 (Spy's Demis를 사용해서 AppleWin과 비교해 보았습니다) 에서의 속도를 어느정도 authentic speed에 가깝게 맞출 수 있었습니다. ApplePC의 다소 어두워 보이는 색감은 MESS의 brightness, contrast, gamma 를 조절해서 어느정도 보완이 됩니다. 

 

CP/M 지원이 안된다는 아쉬움 빼고는 (그리고 현재까지 알게 된 점으로는 Xyphus에서 2번 디스크를 제대로 읽지 못해서 게임 디스크를 AppleWin에서 만들어 와야 한다는 점 빼고는) 저의 욕심을 거의 다 충족시켜주는 에뮬레이션 환경이 구축되었기에 여러분에게 정보를 공유하고자 합니다.

 

 

 

반응형