Just a Blog

'Apple II 에뮬레이터'들을 살펴 보다 본문

Game

'Apple II 에뮬레이터'들을 살펴 보다

wehong 2021. 5. 3. 13:44

검색하다가 우연히, 과거 가정용 게임기 '재믹스'의 새로운 복각판이 발표되었다는 기사를 보게 되었다. 재믹스의 기반인 MSX 플랫폼으로는 '재믹스 미니', '재믹스 슈퍼 미니' 뿐 아니라 'One Chip MSX' 등 수많은 복각품들이 현 세대에 출시되었다. 그런데 MSX 컴퓨터와 게임기가 국내 인기를 얻던 때와 동일한 시기에, 다른 쪽에서 사람들의 관심을 끌었던 'Apple II'는 왜 복각품이 나오지 않는 것일까? 비슷한 사양의 'Commodore 64'도 'TheC64', 'TheC64 mini' 같은 복각기가 해외에서 선보였음을 생각해 보면 Apple II 팬의 입장에서 여러모로 아쉽다.

 

가지고 있는 실기 기기를 꺼내기 너무 번거롭고 그렇다고 복각기가 있는 것도 아니기 때문에, 과거에 플레이 했던 Apple II 게임이 생각나면 에뮬레이터에 대한 생각이 저절로 나게 된다. 물론 비교적 많은 대중이 함께 공유하고 있는 FPGA 구현물인 MiSTer FPGA 코어도 켜 보게 된다. 과연 Apple II 플랫폼으로는 복각기나 팬 메이드 제품이 나올 수 환경이 안되어서 그런지 궁금해서 그렇다.

 

이제까지 사용해 본 Apple II 에뮬레이터들과 MiSTer의 Apple II 코어에 대해 잠깐 소개하고 느낀점을 언급해 보고자 한다. 여기서 고려한 Apple II 플랫폼은 'Apple II, II+, IIe, IIc'로서 'Apple II gs'는 고려하지 않았다.

 

 

1. 살펴 본 대상들

 

(1) Windows 용

가장 퀄리티 좋은 에뮬레이터들이 존재하는 플랫폼이지만, Windows OS의 특성에 따라 소형 기기이나 공개형 아키텍처 하드웨어에 적용하기는 어렵다는 아쉬움이 존재한다. 

 

AppleWin

가장 널리 사용되고 있는 Apple II 에뮬레이터이지 않을까 싶다. 에뮬레이션이 정교하다는 평이 많고 사용자 인터페이스도 친절한 편이다. 디버깅 기능 등도 지원해 실기보다 훨씬 더 편리한 분석 작업을 할 수도 있으며, NTSC 화면 효과 등으로 CRT 화면에서 보는 것과 비슷한 화면 출력도 기대할 수 있다.

오픈소스이지만 Windows 운영체제에 종속성이 커서 다른 플랫폼에 적용하기 어렵다(AppleWin을 Linux에 적용하려던 시도인 LinApple은 결국 별도 포팅의 방식을 선택했다). 버전 별로 전체화면 표시가 좀 이상하게 되는 것(어떤 버전은 확대가 안되고 어떤 버전은 16:9 비율로 확대)은 단점으로 보였다.

 

-  Apple in PC

국내 개발자분께서 개발하신 놀라운 Apple II 에뮬레이터이다. 편의 기능에 있어서 불만이 적고 독특한 화면 표시 방식도 인상적이다.

소스코드가 공개되어 있지만 소스나 개발환경이 Windows 운영체제와 Visual Studio에 종속적이어서 AppleWin과 비슷하게 다른 플랫폼에 적용하기는 어렵다. 개인적으로는 게임 구동 중 AppleWin에 비해 키보드 입력 지연을 느끼게 되어 아쉬웠다.

 

 

(2) Mac 용

 

- Virtual ][

상용 에뮬레이터인데 미구매 시에도 'evaluation version'으로 제약점을 가지고 사용할 수는 있다. 실제 기기 사운드와 실장비 이미지로 된 아이콘으로 마치 실기를 사용하는 느낌을 주도록 설계되어 있다. 디버깅 지원이나 시스템 모니터링도 지원한다. 해외에서 많이 사용되는 것으로 보인다.

가격이 비교적 저렴하지 않다(이 글의 작성 시점에 full license 버전이 51,746원)는 점과 CRT 처럼 표시하는 효과 기능이 없다는 점이 아쉽다.

 

- OpenEmulator

오픈 소스 에뮬레이터로서, GitHub 페이지를 보면 이 글의 작성 시점으로부터 2년 전에 마지막 커밋이 있었다. macOS 10.9 이상에서 구동한다고 되어 있다.

몇몇 종류의 Apple II 모델의 에뮬레이션을 지원하고 컴포지트 모니터 효과를 가진 디스플레이 컴포넌트도 제공한다. 추가할 수 있는 라이브러리에는 CFFA, Apple Language Card, S.A.M 등 생각보다 다양한 하드웨어 컴포넌트를 지원하는데, 목록에 Mockingboard가 없는 것이 아쉽다. Nox Archaist 구동 시 타이틀 화면에서 PWM 재생도 잘 안될 정도로 느린 성능은 부정적인 느낌을 줬다. 

 

- Ample

멀티플랫폼용 MAME를 근간으로 MAME에 macOS에 맞는 프론트엔드가 더 해진 형태이다. GitHub 해당 페이지에 소스가 공개되어 있다. 여러 설정을 GUI로 설정하면 MAME의 실행 파라미터가 자동으로 입력되는 형식이다.

다양한 Apple II 모델을 지원하고 거기에 맞는 하드웨어 컴포넌트를 지원한다. 화면도 CRT의 색감이나 Geometry 효과를 지원한다. 다만 에뮬레이션 모델을 변경 할 수 있는 요소가 제한적인데, Apple IIe 모델에서 메모리를 64KB 이상 추가할 수 없는 것이 그 예이다.

 

- Mariani

아래 Comment 글의 hexley님께서 알려주셔서 사용해 보게된 에뮬레이터이다. AppleWin의 Linux 포팅인 'AppleWin on Linux'를 macOS로 가져와서 UI를 더한 형태이다.

'AppleWin on Linux'를 사용해 보지 않은 입장에서 막연히 LinApple과 비슷할 것 같다고 예상했는데, 화면의 품질이 Windows에서의 AppleWin과 비슷해서 처음에 놀랬다. 설정에서 각 슬롯에 미리 준비된 다양한 장치 모듈을 연결할 수 있고, 플로피 디스크 이미지와 하드 디스크 이미지 모두 사용 가능하며, UI에서 실행 시간에 디버거나 메모리 뷰어를 참고할 수 있다는 장점이 있다. 오래된 macOS 환경에 설치나 빌드가 어렵다는 점은 아쉽다. 관련 리뷰는 여기에 작성했다.

 

 

(3) Linux 용

 

LinApple

Linux 플랫폼에서 많이 사용되는 Apple II 에뮬레이터이다. AppleWin을 Linux에서 사용하기 위해 SDL 기반으로 포팅(따라서 SDL을 사용하는 다른 Unix 기반 플랫폼에서도 빌드가 될 것 같은데, 확실히 모르겠다)한 것이 프로젝트의 기원으로 알고 있다.

기본적으로 Linux를 기반으로 사용하기 때문에 RetroPie 등 Linux 기반 레트로 에뮬레이터에서도 자주 포팅된다. Apple II 복각 기기를 Raspberry Pi 같은 임베디드 기기로 제작한다면 가장 적용성이 높은 에뮬레이터라고 생각한다.

하지만 사용자 인터페이스가 대단히 불편하며 기본적으로 CRT 효과 등 화면 이펙트가 제공되지 않는다는 점이 아쉽다. 더욱 안타까운 것은 소스코드가 sourceforge에서 꽤 장시간 동안 관리되지 않고 있었다는 것인데, 최근 몇몇 개발자가 해당 소스를 GitHub으로 fork 해서 관리하기 시작한 것으로 보이고 라즈베리파이에도 적용 가능한 버전인 linapple-pie도 소개되었다.

 

- Apple2ix

안드로이드용 에뮬레이터 a2ix의 유닉스 포팅 소스를 Linux에서 빌드할 수 있다. 화면 표시가 매우 뛰어나며 Mockingboard와 플로피 디스크 드라이드를 지원하는 점은 a2ix와 동일하다. 화면 표시 성능 때문에 개인적으로 매우 만족스러운 에뮬레이터인데 Windows 환경에서의 AppleWin 보다도 더 낫다고 생각한다.

하지만 하드 디스크 드라이브를 지원하지 않는 점이 아쉽고, 플로피 디스크 읽기 속도가 느린 것을 개선하기 위해서는 빌드 시 옵션을 바꿔 주어야 하는 불편함이 있다.

빌드 및 사용에 대한 내용은 여기에 작성했었다.

 

- ApplePi

이 글의 작성 시점에 버전(v0.2.3)이 아직 낮은 'work in progress' 상태의 오픈소스 에뮬레이터이다. 이름에서 느껴지듯이 원래 Raspberry Pi를 위해 만들어 진 것으로 보이지만, 별도 빌드 시 개발자가 개발에 사용한 Ubuntu 20.04 환경에서도 구동된다고 한다. Linux 환경에서 GUI로 조작할 수 있는 보기 드문 Apple II 에뮬레이터이다. 

Ubuntu 22.04에서 빌드해 보았는데, 속도도 느리고 아직은 불안한 지점이 많이 보인다('unimplemented opcode...' 같은 에러메시지도 보인다). Qt를 사용하기 때문에 GTK 기반 Gnome 환경에서 빌드 시 설치해야 하는 추가 라이브러리가 많을 수 있다.

 

- MII Apple //e Emulator

LinApple의 거부감에 의해 시작된 프로젝트로 보인다. 화면 출력 모습이나 에뮬레이터 구조 등에서 독특함이 느껴졌다. 특히 Disk II 모듈에서 디스크 이미지 파일을 돌릴 때 디스크가 돌아가면서 트랙과 섹터가 표시되는 연출은 다소 과도해 보이면서도 신기하다는 느낌도 받았다.

UI의 동작 방식이 올드맥 OS의 스타일이어서 사용 경험이 없는 사용자에게는 답답할 수 있을 것 같다. Mockingboard 기능이 아직 포함되어 있지 않아서 아쉬움이 있다. 개인적으로는, libasound2-dev 라이브러리 등을 포함해 안내된 라이브러리를 모두 설치했으나 이상하게도 사운드가 이상하게 출력되었다.

개선의 여지도 보이지만 개발자의 의욕도 느껴지는 프로젝트라고 생각한다.

 

- AppleWin on Linux

또 다른 AppleWin의 Linux 구현 결과이다. 소스코드는 libapple이라는 에뮬레이션 코어를 기반와 ncurses, Qt, SDL2 기반의 프론트엔드로 구성되어 있다고 한다.

AppleWin을 타겟으로 삼아서 그런지 기본기가 튼튼한 에뮬레이터로 보인다. 화면도 AppleWin과 유사하고 여러가지 장치와 부가 기능이 지원되는 것 같다.

빌드 및 사용에 대한 내용은 여기에 작성했다.

 

 

(4) 멀티플랫폼 용

 

MicroM8

Windows, Linux, macOS에서 사용할 수 있는 멀티 플랫폼 Apple II 에뮬레이터이다. 무료이지만 공개 소프트웨어는 아니다. GUI 프론트엔드는 오픈소스로 존재하는 듯 하다.

여러 OS 환경에서 무료로 사용할 수 있다는 점이 큰 장점인 듯 한데, 최근에 제작된 'Nox Archaist'의 Steam/GOG 판매본에도 커스터마이즈된 이 에뮬레이터가 포함되어 있다. 'Nox Archaist' 개발자 'Mark Lemmert'는 AppleWin과 이 에뮬레이터의 디버깅 기능을 사용해 개발했다고 한다.

제공되는 기능의 수에 비해 핵심적이라고 느낀 기능은 적다고 느꼈고, 화면 표시의 품질도 아쉬웠다. 에뮬레이터가 여러 플랫폼에서 사용할 수 있게 제작되다 보니 통합 GUI가 각각의 플랫폼 규격에 딱 맞지 않는다는 느낌도 든다.

 

- JACE

Java로 구현된 Apple II 에뮬레이터이다. 과거 sourceforge에서 관리되던 예전 버전은 jar 파일로 구성되어 있어 Java 환경만 갖추어져 있으면 'java -jar jace.jar' 커맨드로 어디든 간편하게 실행이 되었는데, GitHub에서 관리되는 최근 3.0 버전은 별도로 빌드할 때는 Maven 등의 요구 조건이 있다. 64비트 Intel 프로세서용의 Windows와 macOS 버전은 바로 실행할 수 있도록 미리 구성되어진 것을 제공한다.

프로젝트 페이지 설명에 따르면 cycle-accurate하다고 한다. Mockingboard를 포함해 여러가지 장치 연결이 지원되며, 이론적으로는 특정 Java 환경이 갖추어진 어떤 곳에서도 실행이 된다는 것이 장점으로 보인다. 아쉬운 것은 UI 접근성이 좋지 못하다는 점과 화면 출력이 다소 뿌옇게 보인다는 점이다.

 

- Apple2TS

TypeScript로 구현된 Apple II 에뮬레이터이다. 제작자 Chris Torrence의 Youtube 채널에서 제작 과정을 확인할 수 있다. 시스템에 직접 설치하기 위해서는 node.js와 npm 등이 필요하겠지만, 이 에뮬레이터의 특징은 WebMSX처럼 웹브라우져에서 실행할 수 있으며 심지어 웹 상에서 바로 이용할 수 있는 전용 웹사이트도 존재한다는 점이다.

MIDI 출력, 프린터 출력, Savestate 저장/복구, Debugger 같은 부가 기능을 다채롭게 지원하고 Mockingboard의 경우 파형까지도 설정할 수 있다는 점에서 매우 인상적이었다.

아쉬운 점은 CRT 화면 효과가 없다는 점과 웹 브라우저에서 실행되는 만큼 cycle-accurate한 것 같지는 않게 느껴진다는 점이다.

 

 

(5) 안드로이드 용

안드로이드 플랫폼에도 다행히 무료 에뮬레이터 앱들이 있다. Apple II 사용에는 키보드가 필수이므로 안드로이드 환경에서 복각기를 구현한다면 기기에 물리 키보드가 반드시 있어야 할 것 같다.

 

- a2ix

기존에 많이 사용되던 안드로이드용 Apple II 에뮬레이터 cAndy보다 성능이나 기능 면에서 더 나은 것 같다. 화면 효과도 좋고, 액션 게임의 엔딩을 볼 수 있었을 정도로 조작성도 괜찮았다.

하지만 아름답지도 않고 사용도 쉽지 않은 '화면용 키보드' 인터페이스가 불만스럽고, 실기 만큼 느린 디스크 에뮬레이션도 아쉽다(속도를 향상 할 수 있는 실험적 옵션이 있기는 하다).

(업데이트: 구글 플레이 스토어에서 내려갔다)

 

 

(6) MiSTer 용

실기와 특성이 비슷한 복각기를 만든다면 FPGA 기반 시스템이 가장 적합할 것이다. 하지만 Apple II 본체 시스템에 대한 구현이 집중되어 있어, 교묘한 트릭으로 색상을 사용하는 Apple 그래픽의 특성까지 잘 반영한 것을 찾아보기 어렵다.

 

- MiSTer Apple II 코어

Apple II에 대한 FPGA 구현은 개인 차원이나 대학교 랩 수준에서 많은 작업들이 있는 것으로 알고 있다. 그 중에서 가장 유명한 것을 꼽으라면 'Stephen A. Edwards' 교수의 DE-2 보드 구현일텐데, MiSTer 프로젝트의 Apple II 코어 구현은 그것을 기반으로 하고 있다.

Apple IIe가 구현되어 있으며, Mockingboard 및 하드 디스크 처리까지 지원한다. 하지만 MiSTer의 여러 화면 효과를 적용해 봐도 일반 Apple 에뮬레이터들 보다 부족하며 플로피 디스크 이미지 인식이 불안정하다. 특히 플로피 디스크 쓰기를 지원하지 못한다는 점이 매우 치명적으로 보인다.

('23년 업데이트: NIB 포맷의 플로피 디스 이미지에 대해서는 쓰기가 지원되도록 업데이트 되었다)

 

 

(7) PSP 용

 

- Apple II Portable

이제는 PSP가 구시대 콘솔이 되었고 특히 PSP를 개조해야 구동할 수 있기 때문에 고려할 대상은 아니지만, 포터블 환경에서 이렇게 잘 되는 에뮬레이터를 본 적이 없기 때문에 다시 한번 언급한다. 그래픽도 Apple II 특성에 맞게 준수하게 나오고 컨트롤도 나쁘지 않다. NDS용 Apple II 에뮬레이터(pomDS)도 있지만 이만큼 만족스럽지 않았다.

 

 

 

2. 생각

 

Windows 에뮬레이터들은 타 환경의 에뮬레이터들에 비해 성능이나 정확도가 훌륭하다고 생각한다. 또한 Windows 운영체제는 컨트롤러 연결성이나 키보드 사용성 측면에서도 훨씬 좋은 환경이다. 하지만 Windows OS 자체가 무겁고 저렴하지 않은 상용이기에 여러 환경에 이식하기 쉽지 않다. 만약 오래된 PC나 노트북 등이 있다면, 예전에 했던 넷북을 활용하는 스타일의 작업을 해 볼 수는 있을 것이다.

macOS용 에뮬레이터는 macOS용 다른 레트로 컴퓨터(MSX 등) 에뮬레이터들 처럼 기본적으로 괜찮은 UI를 가지고 있지만, 확장성이나 타 플랫폼 적용성에 있어 모자람이 많다.

Linux용 에뮬레이터는 Linux라는 무한한 적용 가능성을 지닌 플랫폼을 기반으로 하는데, 레트로파이가 구동될 수 있는 하드웨어에 오픈소스 에뮬레이터를 사용할 수 있기 때문이다. 하지만 강력한 에뮬레이터가 다양하게 갖추어져 있지 않다는 점이 아쉬우며, 사용자 인터페이스에 대한 보강이 필요해 보인다.

안드로이드 플랫폼도 복각 기기를 구현하기 좋은 환경이라고 생각한다. 다양하지는 않지만 무료 에뮬레이터가 존재하고, 저사양의 안드로이드 기기는 가격이 저렴한 편이며, 키보드나 컨트롤러를 연결하기도 좋기 때문이다. 하지만 스마트폰이나 태블릿 같은 일반적인 안드로이드 디바이스에 Apple II 사용에 필수적인 키보드와 컨트롤러가 기본적으로 갖추어져 있지 않다는 점을 생각해 보면, 입력 장치가 추가된 디바이스가 더 좋을 것이다. 더불어 안드로이드 앱 구동의 특성 상 입력 지연이 발생할 수도 있을 것으로 예상한다. 혹시 여분의 안드로이드 디바이스가 있다면 사용성을 실험해 봐도 좋을 것이다.

MiSTer FPGA 프로젝트의 Apple II 코어는 이 글을 작성하는 시점에 사용성이 낮아 보인다. 화면 효과의 아쉬움은 차치하고라도 디스크 이미지 인식이 불안하고 플로피 디스크의 쓰기(write)가 지원되지 않기 때문이다(이 글의 작성 시점에 하드디스크가 지원되는데 하드디스크 쓰기는 지원되는 모양이다). 최근 반도체 부족 현상 때문인지 핵심부품인 DE10-nano의 가격이 높아진 것도 이를 이용하는 접근을 어렵게 한다.

 

이런저런 환경들을 살펴보았지만 Apple II 복각기의 상업적 제작이 어려울 것이라고 생각되는 결정인 이유는, Apple II에 관여된 모든 권리가 이제는 거대 기업이 된 Apple사에 있을 것이기 때문이다. 기술 표준인 MSX나, 작은 기업에 권리를 넘기도 역사의 뒤안길로 사라진 Commodore와는 차원이 다른 것이다.

하지만 패미컴 보다 열악했던 게임환경을 가졌던 재믹스의 복각기를 2~30만원에 구입하는 팬들이 많듯이, 그럴듯한 Apple II 복각기가 출시된다면 기꺼이 비용을 지불할 팬들도 많을 것이다.

 

 

 

 

 

 

 

Comments