나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-01-02 20:26:18

PCem


1. 개요2. 특징3. 지원 상황4. 고전게임을 위한 설치 TIP5. 기타

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(제품명 알라딘 286), 현대전자의 슈퍼-286, 금성사의 GDC-212M(제품명 마이티 286), 삼보컴퓨터의 트라이젬 286 같은 국산 기종들도 에뮬레이션해주는 점이 흥미롭다. 실제로 개발에 기여하는 한국 유저들도 있다.[1]

에뮬레이션 정확도가 높은 것으로 평판이 높으며 여타 가상 머신들과는 달리 PC의 바이오스 롬 파일까지 사용하는 에뮬레이터이기 때문에 가상구현에 따른 게임 내 인공지능 오작동 같은 오류가 거의 없다고 한다. 실기 재현 수준이 높은 덕에 MS-DOS는 물론이고 윈도우 95, 윈도우 98, 심지어 OS/2도 설치할 수 있으며 매우 버벅거리긴 하지만 윈도우 XP(!)도 설치에 성공한 사례가 있다. # 다만 에뮬레이션하는 하드웨어가 너무 느려 XP는 설치부터 토나올 정도로 느리다고. 어떻게든 실제로 사용할 수준으로 쓸만한 건 윈도우 NT 4.0이나 윈도우 2000 정도가 한계이다. NT 커널 운영 체제들도 돌아가긴 하지만 실제로 사용할 목적이라면 VMware가 훨씬 낫다. 반대로 MS-DOS용 게임을 하겠다면 간단하게 호스트 PC의 디렉토리를 마운트해서 쓰는 DOSBox에 비해 하드 디스크 이미지 세팅이 매우 귀찮으므로 대부분의 경우에는 DOSBox가 편리하고 좋다. 그렇다고 한대도 PCem이 다른 에뮬레이터에 비해서 강점을 보일 수 있는 영역은 아무래도 게임 목적의 윈도우 9x 구동. 물론 과거 기종을 보다 정확하게 에뮬레이션하고 싶은 목적이 있다고 하면 MS-DOS 게임에서도 몇 가지 귀찮은 점이 있더라도 DOSBox보다 장점이 많기는 하다.

비슷한 가상 머신인 VMware, VirtualBox가 PCem과 다르게 성능 손실을 최대한 줄이면서 PC 환경을 가상화하는데 중점을 두고 있는 하이퍼바이저인 이들과 다르게 특정한 머신을 그대로 흉내내는 에뮬레이터이며, 그런 면에서는 DOSBox와도 비슷한 측면이 있지만 DOSBox보다는 Bochs에 가까운 에뮬레이터이다. 가상화는 아니라 과거의 CPU를 100% 소프트웨어로 에뮬레이션하며 이 때문에 속도는 VMWare 같은 하이퍼바이저보다 느리고 자원도 많이 먹는다. 당연히 VT-D나 AMD-V 같은 가상화 기술도 사용하지 않는다. x86 아키텍처의 최대 장점이 오래 누적된 레거시 호환성이라 하는 점을 생각하면 최신 x86-64 CPU로 인텔 8086이나 인텔 80286 같은 구닥다리 x86 CPU를 소프트웨어로 에뮬레이션하는 조금 이상한 모습이지만 오랜 세월 흐름의 변화에 따라 x86 아키텍처의 레거시 호환성도 완벽하다고는 할 수 없는 상황이 되었고 주변 기기의 호환성 역시 그렇기 때문에[2] 이러한 에뮬레이션은 비효율적이지만 필요하다.

3. 지원 상황

인텔의 x86 말고도 AMDCyrix의 x86 호환 CPU 에뮬레이션도 지원하며 x87 FPU 에뮬레이션도 지원한다. 인텔은 8086/8088 4.77MHz부터 펜티엄 II 450MHz까지, AMD는 Am386SX 16MHz부터 K6-III+ 500MHz까지, 사이릭스는 Cx486SLC 20MHz부터 Cyrix III 500MHz까지 지원한다. [3] 주변기기 역시 다양하게 에뮬레이션하는데, 다양한 종류의 그래픽 카드, 사운드 카드를 지원하며 조이스틱이나 네트워크 카드 에뮬레이션도 지원한다.

그래픽 카드는 MDA부터 VGA까지의 IBM 순정 그래픽 카드[4]를 비롯하여 일세를 풍미한 S3 Trio 시리즈, ATI VGA Wonder, Tseng ET4000등 다양한 서드파티 SVGA를 에뮬레이션하며 3dfx Voodoo, Voodoo 2, Voodoo Banshee, Voodoo 3 에뮬레이션을 지원하여 윈도우 95/98 시절의 3D 게임도 원활하게 구동이 가능하다. OpenGL이나 DirectX도 일단 지원은 되는데 v16까지는 OpenGL/DirectX 지원을 받기 위해 설정할 수 있는 카드가 S3 Virge/DX나 다이아몬드 스텔스 3D(이것도 칩셋은 S3 Virge다.) 정도 뿐이었다. 문제는 S3 Virge가 당대에도 2D 성능만 호평받고 3D 가속 성능은 '3D 감속기' 소리를 들을 정도로 악평이었던 카드였다. # 그 덕에 DirectX 지원은 쓸게 못되었고[5] 당시 게임 환경도 글라이드 중심이었으므로 윈도우용 3D 게임은 S3 Virge/DX + Voodoo 2 조합으로 돌리는 것이 추천되었다. v17부터는 부두 밴시부두 3를 지원하기 시작하였으므로 이것으로 DirectX와 글라이드 가속을 모두 만족스러운 성능으로 즐길 수 있게 되었다. 그밖에 허큘리스 그래픽 카드는 물론이고 허큘리스 인 컬러, Wyse 700[6], MDSI Genius Display[7]같이 그다지 알려지지 않은 서드파티 비디오 카드들도 지원하고 가산 한글마당같은 하드웨어 기반 한글 카드도 지원한다.[8]

사운드는 PC 스피커는 물론이고 AdLib부터 사운드 블라스터 1.0~AWE32를 지원하여 게임에서의 사운드 지원은 어지간하면 무리가 없고 Gravis UltraSound[9]나 CMS/게임 블라스터[10], 이노베이션 SSI-2001[11]처럼 좀 알려지지 않은 카드들도 에뮬레이션한다. 병렬 포트에 장착하는 일종의 간이 DAC인 Covox Speech Thing이나 디즈니 사운드 소스도 지원하며 윈도우 95/98 머신에 많이 달렸던 엔소닉 PCI, 사운드 블라스터 PCI 128까지 에뮬레이션 되므로 어지간한 클래식 PC 구성은 거의 다 설정할 수 있다고 봐도 좋을 정도.

4. 고전게임을 위한 설치 TIP

2022년 4월 기준 최신 버전인 v17을 기준으로 서술한다.

5. 기타

프로그램이 위치한 경로에 한글이 있으면 안 된다. 각종 오류 메시지를 뿜으며 종료된다. 일본산 야겜 좀 해본 사람이라면 많이 겪어본 케이스일 것이다.

[1] 네이버MS-DOS 박물관 카페에서 활동한다.[2] 예를 들면 오늘날의 PC에는 여러가지 이유로 윈도우 95윈도우 98을 설치할 수 없다.[3] 2020년 12월 발표된 PCem v17 기준.[4] v17 현재 PGC, 8514/A, XGA와 XGA2는 지원하지 않는다.[5] S3D라고 해서 S3 Graphics 전용 3D API를 지원했는데 이게 지원되는 게임은 OpenGL이나 DirectX로 돌릴 때보다 좀 나아진다. 문제는 지원 게임이 몇 개 안되고 지원돼 봤자 글라이드로 돌아가는 Voodoo에는 상대가 안된다...[6] 1987년에 CGA마개조해서 단색이지만 1280×800(!) 해상도를 지원했던 시스템 및 해당 시스템에 포함된 그래픽 카드.[7] Micro Display Systems, Inc.에서 개발한 DTP(DeskTop Publishing)용 디스플레이 장치. A4용지와 같은 비율(1:1.414)의 720×990 해상도의 단색 디스플레이를 사용했다. 즉, 오늘날 LCD 모니터를 피벗으로 세워놓은 것처럼 세로로 긴 형태의 디스플레이.[8] 한글카드 지원은 버전 14에서 ATI 한글 VGA[17], 버전 15에서 삼보 한글 VGA, 버전 16에서 삼성 알라딘 내장 한글 VGA, 버전 17에서 가산 한글마당-16이 추가되었다. 아직까지 하드웨어 기반 한글 지원은 KS C 1987 버전의 완성형만 지원한다.[9] 매우 이른 시기였던 1992년부터 샘플 기반 사운드를 지원했던 선구적인 사운드 카드. 사운드 블라스터의 OPL2/OPL3를 압도하는 품질의 사운드를 선보였지만 시장에서는 사운드 블라스터 및 그 호환 사운드 카드들에게 패배했다.[10] 사운드 블라스터 이전에 Creative가 제작했던 사운드 카드. PSG 사운드 칩셋인 필립스 SA-1099칩을 채용했다.[11] 코모도어 64에 들어갔던 SID칩을 PC용 카드에 달아놓은 제품. AdLib과 비슷한 시기에 나왔던 관계로 AdLib에 완벽하게 밀려버렸다. 앞의 두 사운드 카드에 비해 많이 알려지지 않았다.[12] 이건 똑같이 소프트웨어로 CPU를 에뮬레이션하는 Bochs도 같다.[13] 나름 최신+고사양이라고 할 수 있는 라이젠7 3700x에서 펜티엄 II 350MHz로 3DMARK 99 데모를 구동했을때 특정 구간에서 구동 속도가 85%까지 떨어지며 약간의 버벅임이 발생하는 것을 확인할 수 있다. 233MHz로 클럭을 낮췄을 때는 속도저하가 없는 것은 아니지만 훨씬 매끄럽게 돌아간다.[14] 에뮬레이터 전체가 단일 스레드인 것은 아니고 3dfx Voodoo 렌더 스레드는 별도의 스레드로 돌아간다. 설정에서 최대 4스레드까지 할당 가능하다.[15] 사실 실기의 바이오스를 필요로 하는 다른 에뮬레이터들도 비슷한 경우가 많다. 예를 들면 비슷한 목적(특정 규격을 만족하는 추상적인 기기의 에뮬레이션이 아닌 과거에 나온 구체적인 실제 기종들을 에뮬레이션)을 지닌 에뮬레이터인 openMSX도 비슷한 이유로 저작권 문제가 없는 제네릭 클론 바이오스인 C-BIOS만을 배포하고 실기에서 추출한 바이오스는 알아서 구하던지 실기에서 직접 추출하여 사용하도록 하고 있다.[16] Bochs나 QEMU는 자체 BIOS를 이용하며 원한다면 별도로 추출된 바이오스를 불러오는게 가능하다.