자, 설 연휴도 끝났는데 다들 설 연휴의 후유증은 없으셨는지요? 어차피 오늘만 지나면 다시 주말이 오니 힘내시길 바라며, 오늘의 주제는 좀 레트로한 이야기입니다. 바로 PC에서 DOS를 실행해 DOS 게임을 실행하는 것입니다. DOSBox 이야기냐구요? VMWare나 VirtualBox로 하는 것 아니냐구요? 아닙니다. 그 보다 더 원초적인(?) 방법을 사용합니다. 바로 86Box라는 에뮬레이터를 사용해서입니다.
VMWare나 VirtualBox는 버전이 올라갈수록 구형 운영체제 호환성이 떨어지고 있고 원래부터 DOS쪽은 '실행이 된다'에 가깝지 제대로 구현하지 못하는 기능도 많고 호환성도 그렇게 좋지는 않습니다. 아예 DOS용 게임 실행을 위한 DOSBox라는 물건도 나왔고 이것도 역사는 꽤 길지만 DOSBox는 아무래도 순수하게 DOS 실행을 전제로 하고 쓰기 편하고 성능을 따지는 것이라 자유도는 떨어집니다. 그렇지만 86Box는 그야말로 그 당시의 레트로 PC를 정말 '조립'하는 느낌으로 높은 자유도를 갖고 이런 저런 하드웨어를 소프트웨어적으로 조합하여 한 대의 PC를 꾸며 재현도가 높은 당시 레트로 PC를 구현합니다.
물론 높은 자유도에는 쓰기가 좀 불편하다는 문제는 있지만 한 번 그 세팅을 익혀두면 정말 재미있게 가지고 놀 수 있는 DOS 및 윈도우 9x용 장난감(?)을 만들 수 있습니다. 이번 강좌는 총 3부로 기획하며 매주 금요일에 포스팅을 진행합니다. 먼저 1부는 86Box의 개념과 설치 방법에 대해, 2부에서 실제 가장 PC를 조립하는 것인 설정에 대한 내용, 마지막 3부로 추천 구성에 대한 내용과 함께 실제 DOS를 설치하고 게임을 구동하는 과정을 적습니다.

■ 86Box가 도대체 뭐임?
86Box는 PCem이라는 소프트웨어를 포크(오픈소스 프로젝트를 분리하여 별도 프로젝트로 만든 것)하여 만든 'IBM 호환 PC의 에뮬레이터'입니다. 그런데 여기서 문제. 이게 무슨 ARM 아키텍처 CPU를 쓰는 macOS나 안드로이드/iOS면 몰라도 지금 우리가 쓰는 PC의 거의 대부분은 'IBM 호환 PC'인데 왜 이걸 에뮬레이션하냐구요? 그 전에 에뮬레이터가 뭐냐는 질문이 나올법 합니다.
에뮬레이터(Emulator)의 의미 자체는 사실 어느 정도 다들 알고 있는 것입니다. 특정 하드웨어를 다른 하드웨어 또는 다른 하드웨어 기반에서 돌아가는 소프트웨어적인 형태로 모방하는 것을 말합니다. 흔히 에뮬레이터 하면 떠올리는 게임기의 에뮬레이터, PC에서 안드로이드 게임을 하기 위한 에뮬레이터가 딱 이 정의에 맞는 것이죠. 굳이 게임기가 아니더라도 과거에 나왔던 컴퓨터나 네트워크 장치 등을 소프트웨어로 구현하는 것도 에뮬레이터입니다.
자, 그런데 86Box는 기본적으로 IBM 호환 PC를 IBM 호환 PC에서 에뮬레이션하는 것인데, 이러면 VMWare나 VirtualBox같은 일명 '가상 PC'와 무엇이 다른지 헷갈릴법 합니다. 하지만 이런 것들은 에뮬레이터가 아닙니다. 이런 것들은 '하이퍼바이저(Hyperviser)'라 하며, 하드웨어를 아예 완전히 소프트웨어로 구현하는 에뮬레이터와 다르게 하드웨어 전체를 가상으로 구현하는 것이 아니며, 그냥 하나의 하드웨어에서 여러 개의 운영체제를 실행할 목적으로 최소한만 가상의 컴퓨터를 구현하는 것이라 CPU 등의 정보는 원래 하드웨어의 것이 전달되며, 아예 하이퍼바이저 안에서 실행되는 운영체제와 실제 하드웨어를 그냥 직접 잇는 것(Pass-Through)도 가능합니다. 대신 이러한 하이퍼바이저는 원래 하드웨어의 제한을 어느 정도 이어받는 만큼 호환성 면에서는 떨어지는 면이 있고, 구형 운영체제 및 소프트웨어일수록 이러한 문제 가능성은 높아집니다.
이 때문에 같은 IBM 호환 PC라고 해도 아예 오래된 운영체제와 소프트웨어 실행에 특화되어 그 시절의 하드웨어를 소프트웨어적으로 구현한 것이 86Box와 그 모태가 되는 PCem입니다. DOSBox라는 소프트웨어가 이 분야에서는 가장 유명하지만 DOSBox와 86Box/PCem은 그 방향성에서 좀 다릅니다. DOSBox는 상대적으로 쉬운 사용법과 성능을 위해 아예 에뮬레이션으로 구현하는 하드웨어의 종류를 딱 정해놓고 있어 자유도가 떨어지며, 성능에 더 초점을 맞추고 있어 하이퍼바이저들보다는 훨씬 낫지만 그래도 호환성이 좀 낮은 면이 있습니다.
그에 비해 86Box는 CPU부터 메인보드, 그래픽카드, 사운드카드, 모뎀과 LAN 어댑터, SCSI 컨트롤러 등 다양한 하드웨어를 정말 소프트웨어로 구현하고 이들을 실제 PC를 조립하는 것 처럼 짜맞출 수 있어 훨씬 자유도가 높습니다. CPU도 인텔 8088같은 것 부터 펜티엄 II/AMD K6-III+까지 다양한 모델과 속도를 설정할 수 있고, 그래픽카드도 MDA부터 Voodoo 3까지 상당히 많은 옵션을 제공합니다. 메인보드는 아예 특정 모델의 BIOS까지 그대로 구현합니다. 물론 조합에 따라서는 제대로 안 되는 경우도 없지는 않으나 입맛에 맞춰서 PC를 만드는 맛이 있고, 특히 86Box는 PCem보다 더 보수적으로 해당 하드웨어 재현에 집중하고 있어 성능 효율은 낮아도 당시 운영체제나 소프트웨어 호환성은 더 뛰어납니다.
그냥 쉽게 86Box의 특징을 몇 줄로 요약하면 이렇습니다.
- DOS/윈도우 9x 시절 하드웨어를 소프트웨어적으로 구현(하이퍼바이저가 아닌 에뮬레이터)
- 특정 모델의 부품을 그대로 구현하여 조합하여 한 대의 구형 PC를 소프트웨어적으로 조립할 수 있음
- 하드웨어 성능보다는 최대한의 호환성 구현에 초점을 맞춤
■ 일단은 깔아보자
86Box의 실행을 위해서는 크게 세 가지의 준비물이 필요합니다. 바로 86Box 본체, 실제로 구현되는 하드웨어의 ROM 정보, 그리고 여기에서 설치할 운영체제와 드라이버입니다.


일단 86Box 본체는 공식 사이트(www.86box.net)에서 구할 수 있습니다. 최신 버전은 5.3이며, 'Download Stable'을 골라 Github 사이트로 넘어가면 가장 아래에 다운로드 링크가 있습니다. 윈도우(x64 전용), macOS, 리눅스용이 있고, 여기서는 윈도우용을 다운로드합니다. 설치 프로그램은 별도로 없고, 그냥 원하는 곳에 압축을 풀면 됩니다. 다만 한글이나 한자, 일본어 등 알파벳 이외의 문제 또는 특수문자가 들어간 경로에 두면 안 되기에 이것만 주의를 당부드리며... 아래 링크가 공식 페이지 되겠습니다.
Emulator of retro x86-based machines
86box.net


두 번째 준비물이 바로 ROM 데이터입니다. MAME같은 게임기 에뮬레이터에서는 ROM = 게임이지만, 여기서는 ROM이라 함은 CPU, 메인보드, 그래픽카드 등 각종 하드웨어를 소프트웨어적으로 구현한 내용을 말합니다. 사실 이러한 하드웨어는 다 저작권 보호를 받는 것이라 원래는 각각의 하드웨어 ROM을 알음알음 구해야 했지만(PCem은 정말 그랬습니다.), 86Box는 그냥 배를 째버리고(?) Github에 이 ROM들을 올려 버렸습니다. 해당 Github를 방문한 뒤 오른쪽의 Release 항목에서 현재의 86Box와 같은 ROM 버전을 고른 뒤 하단의 Assets 항목에서 그냥 Source Code를 눌러 다운로드하면 됩니다. 이름은 Source Code지만 따로 컴파일/빌드할 필요는 없습니다. 이걸 86Box를 설치한 곳에서 압축을 풀면 되는데, 반드시 압축을 풀어 나온 폴더(여기서는 roms-5.3)의 이름을 'roms'로 바꿔줘야 합니다.
GitHub - 86Box/roms: ROMs for the 86Box emulator. For development versions of 86Box, the recommended way to use this repository
ROMs for the 86Box emulator. For development versions of 86Box, the recommended way to use this repository is to clone it instead of downloading the tagged releases. - 86Box/roms
github.com
마지막으로 운영체제와 드라이버인데, 운영체제는 MS-DOS조차 아직 저작권 만료가 이뤄지지 않은 만큼 구하는 것은 나름 '알음알음' 하셔야 합니다. OpenDOS같은 공개 운영체제도 있지만 구형 소프트웨어 실행에 호환성이 떨어지는 저 OpenDOS를 쓰려 하는 분은 웬만하면 없을 것으로 믿습니다. 드라이버의 경우 그 시절 하드웨어의 것을 당연히 그대로 구해야 하는데, 다행이 이것만 모아 놓은 사이트가 있어서 여기에서 해당 운영체제의 것을 구해 준비해 놓으면 됩니다. 메인보드용 드라이버는 칩셋 이름으로 보시면 되겠고, 그래픽카드나 사운드카드도 거기에 쓰인 칩 이름의 드라이버를 쓰셔도 됩니다.
VOGONS Vintage Driver Library
VOGONS Vintage Driver Library This is a collection of drivers for vintage hardware, as collected and contributed by the upstanding members of the VOGONS Forums.
vogonsdrivers.com
일단 1부는 여기에서 마치고, 이제 2부에서 본격적으로 가상 머신을 만드는 과정, 즉 나만의 레트로 PC를 만드는 과정을 설명합니다. 이 2부가 가장 길고 중요한 부분이 될 것입니다.^^
'Electrosphere(컴퓨터)' 카테고리의 다른 글
| 레노버 ThinkPad X1 Yoga Gen3 배터리를 교체해보자~ (2) | 2024.12.11 |
|---|---|
| 구구레, 너는 너무 많은 것을 알고 있다 (6) | 2024.09.19 |
| AMD Ryzen 9000 시리즈 리뷰 요약... (0) | 2024.08.09 |
| 커스텀 수냉 EKWB의 몰락, 내 이럴 줄 알았지... (1) | 2024.04.26 |
| 오월동주(吳越同舟)... (1) | 2023.11.24 |