pcem
- 공식 사이트 : https://pcem-emulator.co.uk/
- Github : https://github.com/sarah-walker-pcem/pcem/
1. 개요
2007년부터 영국의 개발자 Sarah Walker가 중심이 되어 개발하고 있는 오픈 소스 IBM PC 호환기종 에뮬레이터. Microsoft Windows와 리눅스용으로 릴리즈되고 있다. 에뮬레이터의 이름인 'PCem'은 한눈에 알 수 있듯이 'PC Emulator'를 줄여 만든 이름.
2. 특징
기본적으로 IBM PC Model 5150(8088)부터 인텔 펜티엄II 시리즈까지를 포괄하는 IBM PC 및 그 호환기종을 에뮬레이션하는 에뮬레이터이다. DOSBox 같은 에뮬레이터처럼 추상적인 'IBM PC 호환 규격의 아키텍처'를 에뮬레이션하는 것이 아니라 과거 실존했던 특정 PC 모델의 하드웨어 구성을 그대로 에뮬레이션하며 이를 위해 해당 기종의 바이오스 이미지 파일을 필요로 한다. 꽤 다양한 기기의 설정을 지원하고 있어서 IBM의 오리지널 PC는 5150부터 IBM PS/2 Model 70까지 거의 다 에뮬레이션 해주며 호환기들도 다양하게 에뮬레이션한다. Tandy나 컴팩, DELL 같은 해외 PC 호환기들은 물론이고 삼성전자의 SPC-4200[1] , 현대전자의 슈퍼-286, 금성사의 GDC-212M[2] , 삼보컴퓨터의 트라이젬 286 같은 국산 기종들도 에뮬레이션해주고 있다는 점이 재미있는 점. 실제로 개발에 기여하고 있는 한국 유저들도 있다[3] .
에뮬레이션 정확도가 높은 것으로 평판이 높으며 여타 가상머신들과는 달리 PC의 오리지널 ROM BIOS 파일까지 사용하는 에뮬레이터이기 때문에 가상구현에 따른 게임 내 인공지능 오작동 같은 오류가 거의 없다고 한다. 실기 재현율이 높은 덕에 MS-DOS는 물론이고 윈도우 95, 윈도우 98, 심지어 OS/2도 설치 가능하며 하드웨어 성능상 매우 타이트하긴 하지만 윈도우 XP(!)도 설치에 성공한 사례가 있다. # 다만 에뮬레이션하는 하드웨어가 하드웨어라 XP는 설치부터 토나올정도로 느리다고. 어떻게든 실사용 수준으로 쓸만한 건 윈도우 NT 4.0이나 윈도우 2000 정도가 한계인 모양이다. 어쨌거나 NT커널도 잘 돌아간다는 이야기긴 하지만 NT계 OS를 뭔가의 실사용 목적으로 굴릴 생각이라면 VMware가 훨씬 낫다. 반대로 MS-DOS용 게임을 하겠다면 간단하게 호스트 PC의 디렉토리를 마운트해서 쓰는 DOSBox에 비해 하드 디스크 이미지 세팅이 매우 귀찮으므로 대부분의 경우에는 DOSBox가 편리하고 좋다. 그렇다고 한다면 PCem이 다른 에뮬레이터에 비해서 강점을 보일 수 있는 영역은 아무래도 게이밍 목적의 윈도우 9x 구동. 물론 과거 기종을 보다 정확하게 에뮬레이션하고 싶은 목적이 있다면 DOS 게이밍에서도 몇 가지 귀찮은 점이 있더라도 DOSBox에 비해 장점이 많기는 하다.
비슷하게 PC를 가상화하는 가상머신인 VMware, VirtualBox와 다른 점은 성능 손실을 최대한 줄이면서 PC 환경을 가상화하는데 중점을 두고 있는 하이퍼바이저인 이들과 다르게 특정한 머신의 구성을 그대로 흉내내는 에뮬레이터이며, 그런 면에서는 DOSBox와도 비슷한 측면이 있지만 DOSBox보다는 Bochs에 가까운 에뮬레이터이다. CPU 레벨부터 소프트웨어적으로 에뮬레이션하며 이 때문에 속도는 VMWare 같은 하이퍼바이저보다 느리고 자원도 많이 먹는다. 어찌보면 2020년대의 최신 x86-64 CPU로 인텔 8086이나 인텔 80286을 소프트웨어 에뮬레이션 하는 우스운 꼴이긴 하지만 오랜 세월의 흐름과 변화의 누적에 따라 x86 아키텍처의 레거시 호환성도 완벽하다고는 할 수 없는 상황이 되었고 주변기기의 호환성 역시 마찬가지기 때문에[4] 이러한 에뮬레이션은 비효율적이지만 필요하다.
3. 지원상황
인텔의 정품 x86 말고도 AMD나 Cyrix의 x86 호환 CPU 에뮬레이션도 지원하며 x87 FPU 에뮬레이션까지 지원한다. 인텔은 8086/8088 4.77MHz부터 펜티엄 II 450MHz까지, AMD는 Am386SX 16MHz부터 K6-III 450MHz까지, 사이릭스는 Cx486SLC 20MHz부터 Cyrix III 500MHz까지 지원한다. [5] 주변기기 역시 다양하게 에뮬레이션하는데, 다양한 종류의 그래픽 카드, 사운드 카드를 지원하며 조이스틱이나 네트워크 카드 에뮬레이션도 지원한다.
그래픽 카드는 MDA부터 VGA까지의 IBM 순정 그래픽 카드[6] 를 비롯하여 일세를 풍미한 S3 Trio 시리즈, ATI VGA Wonder, Tseng ET4000등 다양한 서드파티 SVGA를 에뮬레이션하며 3dfx Voodoo 1, 2 에뮬레이션을 지원하여 윈도우 95/98 시절의 3D 게임도 원활하게 구동이 가능하다. openGL이나 DirectX도 일단 지원은 되는데 v16까지는 openGL/DirectX 지원을 받기 위해 설정할 수 있는 카드가 S3 Virge/DX나 다이아몬드 스텔스 3D(이것도 칩셋은 S3 Virge다) 정도 뿐이었다. 문제는 S3 Virge가 당대에도 2D 성능만 호평받고 3D 가속성능은 '3D 감속기' 소리를 들을 정도로(참고로 얘가 원조 감속기다) 악평 일색이었던 카드였다는 것. #참고영상 그 덕에 DirectX 지원은 쓸게 못되었고[7] 어차피 당시 게임계 환경도 글라이드 중심이었으므로 윈도우용 3D 게임은 S3 Virge/DX + Voodoo 2 조합으로 돌리는 것이 추천되었다. v17부터는 '''부두 밴시'''와 '''부두 3'''를 지원하기 시작하였으므로 이것으로 DirectX와 글라이드 가속을 모두 만족스러운 성능으로 커버할 수 있게 되었으며 차후 버전에서는 RIVA TNT나 G400 같은 동시대의 고성능 그래픽 카드의 지원도 기대해볼 법 하다. 그밖에 허큘리스 그래픽 카드는 물론이고 허큘리스 인 컬러, Wyse 700[8] , MDSI Genius Display[9] 같이 제법 마이너한 서드파티 비디오 카드들도 지원하고 가산 한글마당같은 한글 카드도 지원한다.
사운드는 PC 스피커는 물론이고 AdLib부터 사운드 블라스터 1.0~AWE32를 지원하여 게임에서의 사운드 지원은 어지간하면 무리가 없고 그라비스 울트라 사운드[10] 나 CMS/게임 블라스터[11] , 이노베이션 SSI-2001[12] 처럼 좀 마이너한 카드들도 에뮬레이션해준다. 패러럴포트에 장착하는 일종의 간이 DAC인 Covox Speech Thing이나 디즈니 사운드 소스도 지원해주며 윈도우 95/98 머신에 많이 달렸던 엔소닉 PCI, 사운드 블라스터 PCI 128까지 에뮬레이션 되므로 어지간한 클래식 PC 구성은 거의 다 세팅이 가능하다고 봐도 좋을 정도.
4. 고전게임을 위한 설치 TIP
- 에뮬레이션하는 CPU 클럭이 높으면 높을수록 요구성능이 똑같이 높아진다(...)[13] 화면과 소리의 버벅임 같은 에뮬레이션의 성능저하가 발생한다. 예로 AMD K6-III 같은 아주 높은(?) 클럭의 CPU를 사용하면 오류까지 발생해 윈도우 설치도 힘들다. 그렇다고 너무 구형의 CPU를 사용하면 해당 아키텍처에 의한 성능한계 때문에 또 느려진다. 486 보드의 펜티엄 오버드라이브.[14] 또는 모바일 펜티엄[15] 정도가 최적의 성능을 발휘한다. 본인의 PC가 고성능이라면 펜티엄 MMX 166MHz 이상도 크게 문제없다.
- 네트워크는 PCAP를 사용하면 외부 통신이 안되는것 같다.
- 리눅스에서 구동할 때 롬파일을 찾을 수 없다며 실행이 안되면 롬의 이름을 대문자 파일과 소문자 파일로 2개 유지하면 읽어들인다.
- 3dfx Vodoo는 1, 2를 지원하며 Voodoo 2의 경우 SLI로 구성하여 최대 16MB까지 확장할 수 있다. v17부터는 Voodoo Banshee와 Voodoo 3 2000/3000을 추가로 지원한다. 이쪽은 Voodoo Graphics 설정이 아닌 Device에서 찾아야 한다. Voodoo 1, 2와 달리 3D 가속 애드온이 아닌 VGA+3D 가속의 일체형 제품이었기 때문.
- v16까지의 Direct3D 에뮬레이션은 PCem이 지원하는 카드인 S3 Virge/DX의 성능이 처참하여 3D 게이밍은 그냥 Voodoo 2를 붙여서 Glide 에뮬레이션을 사용하는 것이 일반적이었으나 v17부터는 Voodoo Banshee와 Voodoo3를 지원하게 되어 Direct3D와 Glide 양쪽 모두를 충분한 성능을 얻을 수 있다. 게이밍 용도라면 이것으로 거의 커버가 가능하다. v17의 Voodoo 3 에뮬레이션
5. 기타
구동을 위해 에뮬레이션하고자 하는 기종의 바이오스 이미지 파일이 필요하나 저작권 문제로 인해 공식 사이트에서는 배포시 저작권 문제가 없는 제네릭 XT 클론 바이오스만을 제공한다.[16] 다른 기종을 구동하기 위해서는 해당 기종의 바이오스 파일을 구해야 하고 일부 주변기기(주로 비디오 카드) 역시 바이오스 파일이 필요한데 이들은 저작권 문제 때문에 공식 사이트에서는 배포하지 않는다. 제작자도 버전업 때마다 자기가 입수한 부품 무엇무엇의 바이오스들이 추가되었다는 업데이트 알림만 남기기 때문에, 관련 포럼에서도 제작자에게 제보한 바이오스 덤퍼들과 수소문해서 주섬주섬 파일들을 드래곤볼처럼 모으거나, PCem의 포크 버전 포럼들을 헤메고 다니는 식으로 설정을 구성한다. 이들 역시 원래 기계의 바이오스 파일을 이용해 동작하기 때문.
[1] '''알라딘 286'''이라는 제품명으로 더 잘 알려져있다.[2] 당시 마이티 286이라는 제품명으로 판매되던 기종.[3] 네이버의 도스 박물관 카페에서 활동하고 있다.[4] 예를 들면 오늘날의 PC에는 여러가지 이유로 윈도우 95나 윈도우 98을 네이티브로 설치할 수 없다.[5] 2020년 12월 발표된 PCem v17 기준.[6] v17 현재 PGC, 8514/A, XGA와 XGA2는 지원하지 않는다.[7] S3D라고 해서 S3 Graphics 전용 3D API를 지원했는데 이게 지원되는 게임은 openGL이나 DirectX로 돌릴 때보다 좀 나아진다. 문제는 지원 게임이 몇 개 안되고 지원돼봤자 글라이드로 돌아가는 Voodoo에는 상대가 안된다...[8] CGA를 마개조해서 1980년대에 흑백이지만 1280*800(!) 해상도를 지원하게 했던 시스템 및 해당 시스템에 포함된 그래픽 카드.[9] Micro Display Systems, Inc.에서 개발한 DTP(DeskTop Publishing)용 디스플레이 시스템. A4용지와 같은 비율(1:1.414)의 720*990 해상도의 흑백 디스플레이를 사용했다. 즉, 오늘날 LCD 모니터를 피벗으로 세워놓은 것처럼 세로로 긴 형태의 디스플레이.[10] 매우 이른 시기였던 1992년부터 웨이브테이블 사운드를 지원했던 선구적인 사운드 카드. 사운드 블라스터의 OPL2/OPL3 FM 사운드를 압도하는 퀄리티의 사운드를 선보였지만 시장에서는 사운드 블라스터 및 그 호환 사운드 카드들에게 패배했다. 사블도 AWE32부터는 웨이브테이블을 지원한 것도 있고.[11] 사운드 블라스터 이전에 Creative가 제작했던 사운드 카드. PSG와 비슷한 설계인 필립스 SA-1099칩을 채용했다.[12] 코모도어 64에 들어갔던 SID칩을 PC용 카드에 달아놓은 제품. AdLib과 비슷한 시기에 나왔던 관계로 AdLib에 완벽하게 밀려버렸다. 이쯤되면 앞의 두 사운드카드에 비해 많이 마이너하다.[13] 이건 똑같이 소프트웨어로 CPU를 에뮬레이션하는 Bochs도 동일하게 생기는 문제다.[14] 60MHz ~ 75MHz, MMX 미지원.[15] 75 ~ 150MHz/MMX 미지원, 120 ~ 300MHz/MMX 지원[16] 사실 실기의 바이오스를 필요로 하는 다른 에뮬레이터들도 비슷한 경우가 많다. 예를 들면 비슷한 목적(특정 규격을 만족하는 추상적인 기기의 에뮬레이션이 아닌 과거 존재했던 구체적인 실제 기종들을 에뮬레이션)을 지닌 에뮬레이터인 openMSX도 비슷한 이유로 저작권 문제가 없는 제네릭 클론 바이오스인 C-BIOS만을 배포하고 실기에서 추출한 바이오스는 알아서 구하던지 실기에서 직접 추출하여 사용하도록 하고 있다.