Advanced Mac Substitute
(v68k.org)- 1980년대 Mac OS를 API 단위로 재구현해 Apple의 ROM이나 시스템 소프트웨어 없이 68K Mac 애플리케이션을 직접 실행할 수 있음
- 전체 하드웨어를 에뮬레이션하지 않고 운영체제 자체를 대체하는 구조로, 부팅 과정 없이 즉시 앱 실행이 가능함
- 백엔드 68K 에뮬레이터와 SDL2 기반 프런트엔드로 구성되어 macOS, X11, Linux framebuffer 등 다양한 플랫폼에서 동일 환경 제공
- MacPaint, Lode Runner, The Fool’s Errand 등 고전 매킨토시 소프트웨어를 1비트 그래픽 환경에서 실행 가능함
- GitHub 공개 소스로 배포되며, POSIX 계열 시스템과 VNC 클라이언트에서도 실행 가능한 오픈 재구현 프로젝트임
Advanced Mac Substitute 개요
- Advanced Mac Substitute(AMS) 는 1980년대 Mac OS를 API 수준에서 재구현한 프로젝트로, Apple의 ROM이나 시스템 소프트웨어 없이 68K Mac 애플리케이션을 실행할 수 있음
- 전통적인 에뮬레이터와 달리 하드웨어 전체를 에뮬레이션하지 않고, 680x0 프로세서만을 모사하며 운영체제 자체를 대체함
- 이 구조를 통해 부팅 과정 없이 바로 애플리케이션을 실행할 수 있음
구조와 구성 요소
- AMS는 팩터드(factored) 애플리케이션 형태로 구성됨
- 백엔드(backend) 는 68K 에뮬레이터로, POSIX 계열 시스템 어디서나 빌드 및 실행 가능
- 프런트엔드(frontend) 는 비트맵 터미널 추상화 계층으로, SDL2를 기반으로 하며 macOS, X11, Linux framebuffer(fbdev)용 구현을 포함
- 이러한 구조를 통해 다양한 플랫폼에서 동일한 68K Mac 애플리케이션 실행 환경을 제공함
실행 가능한 애플리케이션과 데모
- AMS는 오리지널 매킨토시용 애플리케이션 여러 개를 실행할 수 있음
- 예시로 1984년 출시된 Amazing, Solitaire, Missile, IAGO 등의 게임이 포함
- 또한 MacPaint, System’s Twilight, Lode Runner, The Fool’s Errand 등의 프로그램도 실행 가능
- 각 애플리케이션은 AMS 내에서 1비트 그래픽 환경으로 구동되며, 실제 동작 영상이 제공됨
지원 기능
- AMS는 다음과 같은 Mac OS 그래픽 및 UI 요소를 지원함
- 1비트 깊이 그래픽, 영역(regions), 원 및 둥근 사각형, 선(line), 커서, GrafPorts, 텍스트, 윈도우, 컨트롤, 메뉴, 다이얼로그 등
- 이를 통해 1980년대 매킨토시 소프트웨어의 시각적·기능적 특성을 충실히 재현함
소스 코드 및 실행 환경
- AMS의 소스 코드는 GitHub의 metamage_1 저장소에 공개되어 있음
- macOS / OS X, X Window System, Linux framebuffer 콘솔, 또는 VNC 클라이언트에서 직접 실행 가능
- 프로젝트의 이전 문서(legacy documentation) 는 별도 페이지로 이동되었으며, 현재 개정 작업이 진행 중임
시연 예시
- 공식 사이트에는 여러 데모 영상이 포함되어 있으며, MacPaint, Amazing, Nyanochrome Cat 등의 실행 장면을 확인 가능
- “Welcome to Advanced Mac Substitute” 화면은 실제 부팅 화면이 아닌 애플리케이션 형태의 인터페이스임
기타 정보
- 프로젝트는 v68k.org에서 관리되며, 최신 업데이트는 2025년 11월 29일에 이루어짐
- 개발자는 GitHub와 Twitter 계정을 통해 활동 중임
Hacker News 의견들
-
정말 멋진 프로젝트임. 흑백 클래식 MacOS의 느낌이 주는 ‘대체 타임라인’ 같은 미학이 신뢰감과 안정감을 주는 것 같음
초등학교 컴퓨터실에 줄지어 있던 Macintosh SE나 Plus의 기억이 떠오름
내가 만든 MacOS System 7 웹 데스크톱 UI를 소개함. 실제 웹 브라우징이 가능한 재해석 버전임- 웃는 맥 아이콘과 빈 진행 막대를 보자마자 바로 NoScript에서 도메인을 허용했음. 정말 매력적이었음
스크린세이버를 보고 크게 웃었음. 익숙하면서도 낯선, 마치 평행우주를 보는 느낌이었음
나도 예전에 웹 기반 Mac 시뮬레이터를 만든 적이 있음. CSS와 JS를 익히려는 목적이었지만, 웹은 복잡한 구조를 쌓기에 적합하지 않다는 걸 깨달았고, 그 경험이 Advanced Mac Substitute를 만들게 된 계기가 되었음
- 웃는 맥 아이콘과 빈 진행 막대를 보자마자 바로 NoScript에서 도메인을 허용했음. 정말 매력적이었음
-
최근 몇 달 동안 Basilisk II에 ARM64 JIT을 추가하고 있었음
지금은 Quadra ROM을 패치해서 NuBus 하드웨어 감지를 우회하는 중임
이 프로젝트를 꼭 써보고 싶음. 클래식 Mac 환경에 파일 공유 같은 현대적 기능이 들어간다면, 작은 기기에서도 완벽할 것 같음 -
1980년대 소프트웨어가 API 호환성만으로 동작한다는 게 놀라움
타이밍이나 메모리 정렬 같은 구현 세부사항에 의존하지 않는다는 건 대단한 일임
단 하나의 세부 구현에 의존해도 다른 OS에서는 실행이 안 될 수 있음- Mac Classic은 구조적으로 거의 완벽한 순수함을 가진 시스템이었음
1비트 프레임버퍼와 CPU만으로 대부분의 기능을 수행했음
8비트 머신의 해킹은 대부분 제한된 기능을 우회하기 위한 것이었음
Apple이 미래 세대를 염두에 두고 이런 결정을 했는지는 모르겠지만, 단순한 구조 덕분에 이후 세대의 확장이 쉬웠을 것임 - 물론 구현상의 특이점(quirk) 에 의존한 앱들도 많았음
- Mac Classic은 구조적으로 거의 완벽한 순수함을 가진 시스템이었음
-
정말 멋진 프로젝트임. 예전에 1990년에 출시된 상용 소프트웨어 ARDI Executor가 떠오름
당시 PC 하드웨어에서 API 수준 재구현으로 놀라운 속도를 냈음
어린 시절 Windows PC에서 Mac 게임을 돌리며 ‘이게 가능하구나’ 하고 감탄했던 기억이 있음
Executor 위키와 GitHub 코드도 참고할 만함
ARDI의 엔지니어가 1996년 다큐 Triumph of the Nerds에도 잠깐 등장했었음- Executor를 알고는 있었지만 실제로 본 적은 없었음
당시엔 에뮬레이션 성능이 중요했지만, 지금은 하드웨어가 빨라져서 큰 문제가 아님
이제 중요한 건 이식성과 유지보수, 그리고 CPU 독점 설계된 프로그램을 현대 환경에 맞게 패치하는 일임
- Executor를 알고는 있었지만 실제로 본 적은 없었음
-
원래의 Mac 512k 하드웨어와 비교하면 얼마나 빠를지 상상이 안 됨
플로피 하나로 시스템을 돌리던 시절, 디스크를 계속 갈아끼우던 기계적 경험이 떠오름
‘느리게 돌리기’ 기능이 있어서 플로피 읽기/쓰기 소리까지 재현된다면 정말 재미있을 것 같음- 최근 HN에 올라온 레트로 하드웨어 프로젝트 중 사운드 에뮬레이션이 포함된 게 있었음. 그 소리가 가장 인상적이었음
- Virtual II라는 Apple II 에뮬레이터를 써봤는데, 플로피 소리와 속도 조절 기능이 있어서 비슷한 느낌이었음
- 어릴 때 Apple IIe에서 King’s Quest IV를 하던 기억이 남. 화면 하나 이동할 때마다 플로피를 바꿔야 했음. 정말 디스크 교체의 고통이었음
-
Executor와 비교하면 어떤지 궁금함
-
오래된 앱들이 현대 윈도우 프레임에서 실행되고 파일 저장도 가능한 Carbon 같은 호환 계층이 있으면 좋겠음
-
Advanced Mac Substitute는 문서와 설정 파일을 샌드박스된 호스트 디렉토리에 저장함
예를 들어 MacPaint 데모에서 Hello 문서를 더블클릭하면 macOS Finder에서 MacPaint.app으로 열림 - 이런 프로젝트가 바로 그런 시스템의 기반이 될 수 있을 것 같음
-
Advanced Mac Substitute는 문서와 설정 파일을 샌드박스된 호스트 디렉토리에 저장함
-
MACE보다 먼저 완성된 건지, 아니면 목표가 다른 건지 궁금함
-
“Dark Castle”이 돌아갈까? 그 게임에 정말 많은 시간을 쏟았음
- 주인공이 왜 Scooby Doo의 Shaggy처럼 생겼는지 아직도 궁금함
그리고 이 커밋을 보면 실제로 실행 가능함 - 나는 Beyond Dark Castle부터 바로 갈 것 같음. 시리즈의 완성도가 확실히 달라졌음
- 주인공이 왜 Scooby Doo의 Shaggy처럼 생겼는지 아직도 궁금함
-
정말 대단한 성취임. 제작 과정, 동기, 소요 시간 등이 궁금함
- 아마 당시 대부분의 MacOS 호출이 68K TRAP 명령어를 통해 접근되었기 때문에, 하드웨어 에뮬레이션 대신 ROM을 직접 재구현했을 것 같음
내 친구도 예전에 Toolbox를 C 라이브러리로 다시 써서 Mac 앱을 PC로 포팅한 적이 있었음
QuickDraw, Event Manager, Memory Manager 등 거의 전부를 새로 구현했음. OpenLook UI를 사용해서 완전히 다른 느낌이었음 - 내가 이 프로젝트를 시작한 가장 초기 동기는 The Fool’s Errand를 다시 살리고 싶다는 열망이었음. 아이러니하지만 그게 출발점이었음
- 아마 당시 대부분의 MacOS 호출이 68K TRAP 명령어를 통해 접근되었기 때문에, 하드웨어 에뮬레이션 대신 ROM을 직접 재구현했을 것 같음