1P by GN⁺ 17시간전 | ★ favorite | 댓글 1개
  • SnowMotorola 680x0 기반 Macintosh의 하드웨어 동작을 최대한 실제와 가깝게 재현하는 오픈 소스 에뮬레이터임
  • 그래픽 사용자 인터페이스(GUI)강력한 디버깅 기능을 제공함
  • 기존 에뮬레이터와 달리 ROM 패치나 시스템 콜 가로채기를 최소화하는 방식임
  • Macintosh 128K/512K/Plus/SE/Classic/II 모델을 지원함
  • Rust 기반으로 개발되었으며, 다양한 운영체제에서 빌드 및 다운로드가 가능함

프로젝트 개요

  • Snow는 클래식 Macintosh(680x0 계열) 컴퓨터를 소프트웨어적으로 재현하는 에뮬레이터임
  • 사용자는 그래픽 인터페이스를 통해 실제 Mac을 조작하듯 사용할 수 있음
  • 디버깅 기능이 풍부해 개발용이나 분석에 유리함

동작 방식 및 특징

  • Snow는 가능한 하드웨어 수준(로우 레벨)에서의 완전한 에뮬레이션을 지향함
    • 이는 ROM을 패치하거나 시스템 콜을 우회하는 일반적인 방법 대신, 실제 하드웨어처럼 동작하게 함
  • 공식적으로 지원되는 모델:
    • Macintosh 128K
    • Macintosh 512K
    • Macintosh Plus
    • Macintosh SE
    • Macintosh Classic
    • Macintosh II
  • Rust 언어로 구현되어 효율성과 안전성을 강조함
  • 오픈 소스로 MIT 라이선스로 공개됨

체험 및 문서

  • 웹 브라우저에서 실행할 수 있는 제한적 데모 버전을 제공함
    • 단, 전체 소프트웨어의 모든 기능(특히 GUI 등)은 제공하지 않음
  • 자세한 설치 및 이용 방법은 온라인 문서를 통해 참고 가능함

다운로드 안내

  • 현재는 최신 개발 버전(bleeding edge build) 만 자동으로 제공됨
    • Windows 10 이상(x86 64비트)
    • macOS 11.7(Big Sur) 이상(유니버설)
    • Linux(Ubuntu 24.04, x86 64비트 및 ARM64)
  • 운영체제별로 즉시 다운로드 가능한 빌드 파일 배포 중임

문의 및 참여

  • GitHub 저장소를 통해 이슈 제기 및 기여 가능함
Hacker News 의견
  • 클래식 Mac 시스템용 휴대 가능하고 사용자 친화적인 하드웨어 레벨 에뮬레이터가 큰 의미를 갖게 된 맥락에 대해, 2020년 블로그 글 공유 참고 https://invisibleup.com/articles/30/ 게임 콘솔은 Nestopia, bsnes, Dolphin, Duckstation 등 훌륭한 에뮬레이터가 오래전부터 존재해 온 반면, PC는 VMWare, VirtualBox와 같은 가상화 시스템이 대중적인 필요를 충족시켜 왔고, 최근에는 86Box, MartyPC 등 고정밀 에뮬레이터 등장 소개 Commodore 64는 VICE, Amiga는 WinUAE, Apple II는 KEGS와 AppleWin처럼 질 높은 에뮬레이터가 있지만, Mac 쪽은 Basilisk II처럼 고수준 추상화에 가까운, 다소 대충 비슷하게만 재현하는 정도의 에뮬레이터 위주였다고 생각

    • 호환성 면에서는 많이 부족하지만, Executor라는 대안도 존재 언급 https://en.wikipedia.org/wiki/Executor_(software) 브라우저가 MS-DOS를 에뮬레이션해, 그 위에서 Executor/DOS로 매킨토시용 솔리테어 게임 실행 가능한 데모 https://archive.org/details/executor Executor/DOS 외에도, 680x0 프로세서를 썼던 Sun 3 워크스테이션용 비공개 버전, NEXTSTEP 환경을 위한 Executor/NEXTSTEP도 있음 Executor는 Apple의 지적재산권을 일절 사용하지 않아 가장 호환성이 낮은 점 지적, ROM과 시스템 소프트웨어 대체물이 모두 클린룸 방식으로 새로 작성됨 구 버전의 Executor는 gcc 전용 확장자를 써서 오늘날 리눅스 빌드는 어렵거나 불가능할 수도 있음 Executor 프로젝트의 초기 버전을 직접 개발했으며, 성능 좋은 68k 에뮬레이터와 컬러 서브시스템 등은 훨씬 뛰어난 프로그래머가 개발했음

    • 해당 글 내용이 사실이지만, 세간의 무료 기여 커뮤니티 노력 자체를 지나치게 폄하하는 느낌 동의

    • MAME도 하드웨어 레벨로 Macintosh와 Apple II를 에뮬레이션한다는 점 강조, KEGS와 AppleWin보다 더 정확하고 주변기기 지원은 많지만, 사용자 친화성 면에서는 떨어짐

    • Macintosh II FDHD 에뮬레이터를 실행해 봤는데, 메뉴상에서는 400K/800K 플로피만 로딩하라는 메시지만 뜸, Snow 설명서에는 SuperDrive 2개를 지원한다고 명시됨 https://docs.snowemu.com/manual/media/floppies 그래서인지 지금까지 줬던 플로피 이미지를 전부 바로 꺼내버림, Mac II 호환 시스템용 800K System 7.1.1 디스크조차 인식 못함 Snow 자체는 잠재력이 많다고 보며 노고에 경의 표하지만, Mac 에뮬레이션 판은 여전히 여러 에뮬레이터들이 각자 지원하는 하드웨어와 기능이 들쭉날쭉한 상태, 각종 꼼수와 예전 맥 내부 구조 관련 선행 지식도 여전히 필요, 미래 지향적 약속만 가득한 느낌

    • MAME가 68k 기반 매킨토시도 어느 정도 지원한다는 정보 공유 https://wiki.mamedev.org/index.php/Driver:Mac_68K

  • 에뮬레이터 정확성 때문에, 아마 BasiliskII가 가진 결정적 기능 몇 가지는 빠져 있을 것 같음 BasiliskII는 OS와 ROM 패치로 초고해상도 지원, 호스트 파일 시스템 및 네트워크와의(대체로) 매끄러운 통합 등 다양한 기능 제공 하지만 이게 허술하거나 정확하지 않아서인지, 유저 경험 자체는 특유의 무결함은 없지만 제대로 동작할 때는 정말 쾌적한 사용성 보장

    • 정확한 에뮬레이터이면서 코드 베이스가 깔끔하면 이런 패치나 기능은 추가로 얹기 좋아 보임 Basilisk의 패치 코드도 직접 살펴봤을 때 실제로 복잡하지 않고, Executor(이 스레드에 저자 등장), MACE 등 부분적 Toolbox 재구현 예시도 있어 포팅하려면 분량이 꽤 되겠지만 원 코드 거의 그대로 옮기고 테스트 인프라 넣는 작업이면 충분해 보임
  • 맥용 ROM 파일 구하는 방법 조언 필요 구글에서 발견한 사이트에서 여러 개 다운받았지만, 에뮬레이터가 계속 "알 수 없거나 지원하지 않는 ROM 파일" 오류만 냄 쓸만한 ROM 찾기 방법 문의

  • 대학 졸업 초창기 작업물이 맥 포맷의 버누이(Bernoulli) 디스크들에 보관 중 해당 소프트웨어를 구동하려면 반드시 ADB 동글이 필요한데, 그래서 물리적 하드웨어 필수 궁금한 점은 ADB-USB 어댑터 중에서 에뮬레이터에 연결 가능하게 맵핑할 수 있는 게 있을지 여부

    • 지금까지 아는 ADB-USB 어댑터는 마우스와 키보드만 지원, 내부 펌웨어가 USB HID로만 매핑 가능 완전 패스스루 하려면 커스텀 펌웨어가 필요, 오히려 그 소프트웨어 복제방지 기술을 해킹하는 쪽이 더 쉬울 수도 있다는 의견

    • 아직 백업하지 않았다면 데이터 유실 위험, 소중하다면 최대한 빨리 확인 권장

    • 작동하는 Bernoulli 드라이브 가진 사람은 대체로 맞는 구형 맥 하드웨어도 같이 갖추는 경우 많다는 의견

    • 아래 제품이 도움 될지도 모름 https://www.bigmessowires.com/usb-wombat/

  • Rust로 재구현된 68K 에뮬레이터로, Musashi나 UAE처럼 널리 알려진 C언어 기반 CPU 코드를 전혀 사용하지 않은 점 강조

  • 일반적으로 쉽게 구할 수 있는 Mac OS 7.1 설치 디스크와 Mac Plus ROM 파일로 부팅 시도, 드라이브 0이 디스크를 계속 꺼내버림 Mini vMac은 잘 동작, 아직은 개선 필요 느낌

  • Mac SE나 II 등에서 HD20 지원이 "비해당"으로 표기된 게 의아 모든 모델(II 제외)에서 ROM단에서 HD20 부팅 지원 있음 직접 Mac SE에서 HD20 에뮬레이터 사용 중, 여러 형태의 디스크 이미지를 Mac용, 플로피 에뮬레이터 양쪽 모두에 손쉽게 적용해 넣을 수 있는 매우 좋은 방법이라고 생각

  • Lisa처럼 Mac도 하드웨어의 "사이클 정확성(cycle accuracy)"이 필요한지 궁금 Lisa의 경우 OS가 하드웨어 타이밍을 가정해, Qemu 같은 에뮬레이터로는 충족되지 않는 문제 언급

    • 초기 Mac은 IWM(디스크 II 컨트롤러를 집약한 칩) 사용, Apple II와 동일하게 사이클 일치하는 코드를 활용 커서 움직임이 갑자기 멈추는 현상은 60Hz 인터럽트 타이머가 디스크 쓰기 중에는 꺼져야 하기 때문 Andy Hertzfeld가 해당 이슈를 Folklore.org에서 언급한 일화 공유 https://www.folklore.org/Nybbles.html Apple II에서 있었던 특이한 디스크 복사방지 기법(나선 트랙, 다양한 크기 섹터, 다양한 nibbilization 방식)이 이론적으로는 Mac에서도 가능, 실제로 쓰인 사례가 있는지 호기심 표출
  • 정말 실감 나는 구현이라는 개인적 인상 공유 Atari ST 에뮬레이션도 가능할 희망 여부 질문

    • 이미 매우 수준 높은 Atari ST 에뮬레이터 Hatari 프로젝트 소개 https://github.com/hatari/hatari 그리고 Clock Signal(CLK)이라는 저지연 추구 에뮬레이터에서 Acorn, Amstrad, Apple II/II+/IIe, Atari ST와 2600 등 각종 고전기기까지 폭넓게 다룸 https://github.com/TomHarte/CLK