TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 22 READS

사이클 단위까지 재현하는 IBM PC 에뮬레이터 MartyPC가 던지는 질문

사이클 단위까지 재현하는 IBM PC 에뮬레이터 MartyPC가 던지는 질문
SOURCE IMAGE · HACKER NEWS

에뮬레이터라고 하면 흔히 '옛날 게임을 요즘 PC에서 돌리는 도구' 정도로 이해된다. 하지만 MartyPC는 그 통념과 결이 다르다. 개발자 dbalsom이 Rust 언어를 배우기 위한 취미 프로젝트로 2022년 4월 시작한 이 오픈소스 프로젝트는, IBM PC와 XT, PCjr, Tandy 같은 1980년대 초반 8088 기반 시스템을 '사이클 단위(cycle-accurate)'로 재현하는 것을 목표로 한다. 단순히 프로그램이 돌아가느냐가 아니라, 실제 하드웨어가 클록 한 틱마다 어떤 상태를 거치는지를 그대로 맞춰내는 것이 핵심이다. Windows, Linux, macOS를 모두 지원하며 소스 빌드도 가능하다.

정확도를 어떻게 '증명'했나

에뮬레이터의 정확도는 보통 '이 게임이 잘 돌아간다'는 식으로 간접 검증된다. MartyPC의 접근은 여기서 한 발 더 나아간다. 개발자는 2022년 11월부터 CPU 재현의 사이클 정확도를 높이기 시작하면서, 실제 8088 CPU를 Arduino MEGA 마이크로컨트롤러에 연결해 별도의 검증 장치(Arduino8088)를 만들었다. 같은 명령어를 에뮬레이터와 실제 칩에서 동시에 실행하고, 그 결과를 클록 사이클 단위로 비교하는 방식이다. 소프트웨어의 동작을 소프트웨어끼리 대조하는 것이 아니라, 물리적 실리콘을 기준점으로 삼았다는 점이 특징이다.

검증은 한 번으로 끝나지 않았다. 2024년 6월에는 8088의 프리페치 큐(prefetch queue) 동작까지 시험하도록 테스트 스위트를 갱신했고, 이 과정에서 이전에 놓쳤던 여러 사이클 오차가 추가로 발견되어 수정됐다. 현재 MartyPC는 8088 V2 테스트 스위트를 99.9997%의 사이클 정확도로 통과한다고 밝히고 있다. CPU뿐 아니라 주변장치 재현을 위한 하드웨어 조사도 병행됐는데, 8253 타이머 칩을 Arduino로 분석하고, DMA 타이밍을 오실로스코프로 측정했으며, 결국 로직 애널라이저로 버스 스니퍼까지 제작했다고 한다.

왜 이렇게까지 정확해야 하는가

이 수준의 집착이 실질적으로 의미를 갖는 지점은 데모신(demoscene)이다. 초기 PC는 하드웨어의 타이밍을 극한까지 이용해 겉보기에 불가능해 보이는 화면 효과를 만들어냈고, 이런 데모는 사이클이 조금만 어긋나도 재현되지 않는다. MartyPC는 2023년 4월에 악명 높은 데모 '8088 MPH'를 구동할 만큼 정확해졌고, 2023년 5월에는 데모 'Area 5150'의 모든 효과를 재현한 최초의 PC 에뮬레이터가 됐다. 이는 정확도가 마케팅 문구가 아니라 실제 동작으로 뒷받침된다는 방증이다.

다만 개발자 스스로 밝히듯 MartyPC가 겨냥하는 자리는 '편하게 옛 게임을 즐기는 도구'가 아니다. 이 프로젝트의 의도된 틈새는 레트로 PC 개발의 보조 도구다. 명령어 디스어셈블리, CPU 상태, 메모리 뷰어, 주변장치 상태를 보여주는 광범위한 디버깅 GUI를 갖췄고, 코드·메모리 브레이크포인트와 명령어·사이클 단위 로깅을 지원한다. Intel 8088용 소프트웨어를 작성하는 프로그래머라면 자기 코드가 사이클 단위로 정확히 어떻게 실행되는지 직접 보고 측정할 수 있다. 다시 말해 실제 하드웨어를 구하기 어려운 환경에서 일종의 계측 장비 역할을 하도록 설계됐다.

구성 면에서도 실용적인 유연성이 있다. 기본 머신 프로파일에 '오버레이'라 부르는 확장을 얹어 커스텀 구성을 만들 수 있는데, 이는 확장 카드나 업그레이드를 꽂는 것에 비유된다. 듀얼 비디오 카드와 멀티 모니터 구성도 지원해, MDA나 Hercules 어댑터로 구동되는 보조 모니터를 같은 창 안에서 함께 띄울 수 있고, 각 디스플레이 뷰포트에 독립적인 셰이더 설정을 적용할 수 있다. 기본 CRT 셰이더가 포함돼 있으며 LibraShader 지원이 예정돼 있다.

실무자가 눈여겨볼 지점과 한계

한국의 IT 실무자 입장에서 MartyPC가 흥미로운 이유는 에뮬레이터 자체보다 그 검증 방법론에 있다. '실제 하드웨어를 골든 레퍼런스로 삼아 소프트웨어 구현을 자동 대조한다'는 발상은 임베디드 개발이나 하드웨어 재현 검증 전반에 응용할 수 있는 사고 틀이다. 정확도를 주장으로 남기지 않고 물리적 기준과 테스트 스위트로 수치화한 방식은 재현성 있는 검증이 필요한 어떤 영역에서든 참고할 만하다.

반면 분명한 한계도 있다. 개발자 본인이 다른 에뮬레이터만큼 설치가 친절하지 않다고 인정하고 있으며, 설정 파일 편집에 익숙하지 않은 사용자에게는 진입 장벽이 될 수 있다. 정식 릴리스는 주기적으로 제공되지만 최신 빌드는 GitHub Actions의 아티팩트에서 로그인 후 받아야 하고, 비Windows 환경이거나 최신 버전을 원한다면 소스에서 직접 빌드해야 한다. 또한 이 프로젝트는 reenigne의 8088 마이크로코드 리버스 엔지니어링과 Ken Shirriff의 실리콘 로직 분석 같은 선행 연구 위에 서 있다는 점을 개발자가 명확히 밝히고 있다. 즉 MartyPC의 성취는 개인의 노력이자 동시에 레트로 컴퓨팅 커뮤니티가 축적해 온 하드웨어 지식의 결과물이며, 그 점이 이 프로젝트를 단순한 도구 이상으로 읽게 만든다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/dbalsom/martypc
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...