| |||
| {{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all" | <colbgcolor=#e60012><colcolor=#ffffff> 별도 문서가 있는 에뮬레이터 | ||
| 가정용 | 패밀리컴퓨터 | 파이널번 네오 · higan | |
| 슈퍼 패미컴 | ares · bsnes · higan · | ||
| 게임큐브 · Wii | Dolphin | ||
| Wii U | Cemu | ||
| 휴대용 | 게임보이 · 게임보이 컬러 | Virtual GameBoy · VisualBoyAdvance · higan | |
| 게임보이 어드밴스 | VisualBoyAdvance · NO$GBA · higan | ||
| 닌텐도 DS | DeSmuME · NO$GBA · melonDS · DraStic · iNDS · Delta | ||
| 닌텐도 3DS | |||
| 하이브리드 | Nintendo Switch | ||
| 비고 | [1] : 단, 비공식 버전의 업데이트는 계속되고 있다. [2] : 사용 편의성 업데이트는 다른 개발자에 의해 유지되고 있다. | ||
ZSNES v1.51 초기 화면[1]
1. 개요
zsKnight[2], _Demo_ 등이 개발한 슈퍼 패미컴 에뮬레이터.1997년 10월에 첫 버전이 공개되었고 2001년 4월에 오픈 소스가 되었다. 이후 2007년 1월에 공개된 1.51버전을 마지막으로 사실상 개발이 중단된 상태이다. 코드의 대부분이 x86 어셈블리로 작성되었고,[a] 일부분이 C와 C++로 작성되었다. 초기에는 DOS 버전으로 개발되었으나 나중에 Windows, Linux 등으로 포팅되었다.
빠른 속도[4]와 높은 호환성[5], 그리고 독특한 유저 인터페이스 등으로 한동안 찬사를 받는 에뮬레이터였으나, 현재는 정확성(accuracy)이 떨어지는 에뮬레이터로 평가받고 있으며 아래의 보안상 취약점도 있어 사용을 추천하지 않는다.[6]
2. 역사
주개발자인 zsKnight는 16살 때부터 어셈블리를 공부하기 시작했는데, 특히 최적화(optimization)에 관심이 많았다. 그는 17살이던 어느 날 친구에게 슈퍼 패미컴 에뮬레이터인 슈퍼 파소파미(Super Pasofami/スーパーパソファミ)[7]에 대해 듣게 되었다. 그는 슈퍼 패미컴 에뮬레이터는 말도 안된다고 생각했다. 당시는 패미컴 에뮬레이터도 이제 막 개발되기 시작한 때였기 때문이다. 그런데 집에 와서 검색해 보니 진짜로 슈퍼 파소파미가 있어서 슈퍼 마리오 월드를 실행해 보았는데, 사운드도 없고 속도도 느렸다. 그럼에도 그는 무엇인가 된다는 것에 매료되었다.마침 zsKnight는 어셈블리에 푹 빠져 있었고, 또 닌텐도 게임의 열렬한 팬[8]이었기에 온라인에서 자료를 찾아 읽으며 공부하기 시작했고, 마침내 순수하게 어셈블리만 사용해 슈퍼 패미컴 에뮬레이터를 만들기 시작했다.[a] 그는 개발 도중에 _Demo_를 만나게 되는데, 그가 슈퍼 패미컴 에뮬레이터를 만들고 있다고 하자 _Demo_도 같이 하기를 원했다. _Demo_가 참여한 후 둘은 개발을 계속해 드디어 1997년 10월 14일에 ZSNES의 첫번째 버전인 ZSNES v0.150을 내놓게 되었다.[10]
3. 취약점
2015년에 알려진 보안상 취약점이 있다. 사용자가 해킹된 롬 파일을 ZSNES에서 로드할 시 해커가 롬 파일에 숨겨놓은 코드가 사용자의 컴퓨터에서 실행될 수 있다. 참고영상(ZSNES exploit demonstration) 앞의 참고영상을 보면 롬 파일을 로드했을 뿐인데 웹 브라우저에서 특정 웹사이트가 열리는 것을 볼 수 있다. 여기서는 특정 웹사이트가 열리는 것을 예시로 보여주었으나 어떤 코드를 실행하느냐에 따라 파괴적인 결과를 일으킬 수도 있으므로 주의를 요한다. ZSNES가 개발이 사실상 중단되어 수정될 여지도 없으므로, 믿을 수 없는 롬 파일은 절대로 ZSNES에서 로드해서는 안 된다.4. 여담
- 1.50버전부터는 넷플레이(netplay)가 비활성화되어 있다. 넷플레이 기능을 이용하기 위해서는 1.42나 1.36 등 옛 버전을 사용해야 한다.
- 주개발자인 zsKnight가 Zophar's Domain의 운영자인 Zophar와 가진 화상 인터뷰 영상(How ZSNES Changed SNES Emulation Forever | Interview with the Creator)이 2025년 10월 23일 유튜브에 공개되었다. zsKnight는 과거 2000년경에도 Emulation Zone과 인터뷰(Interview with zsKnight)를 가진 적이 있으나 얼굴을 드러내고 인터뷰에 응한 것은 이번이 처음이다. 이 인터뷰를 다룬 PC Gamer 기사(#)가 ZSNES를 'legendary emulator'(전설적인 에뮬레이터)라고 부르고 있고, GamesRadar+ 기사(#)가 zsKnight를 'Legendary programmer'(전설적인 프로그래머)라고 부르고 있는 것만 봐도 과거 이 에뮬레이터의 위상을 짐작할 만할 것이다.
- 상기 인터뷰에서 zsKnight는 가장 좋아하는 슈퍼 패미컴 게임 세 개가 무엇이냐는 질문에 크로노 트리거, 슈퍼 메트로이드, 파이널 판타지 VI를 꼽았다.
- zsKnight가 만든 인디 게임 Retro Endurance 8bit가 2025년 1월 23일자로 앞서 해보기(Early Access)로 Steam에 올라와 있다.
- 판타지 소설 탐그루에서 세기말에 게임기 에뮬레이터를 만들어서 유명했던 한 프로그래머 노인이 등장하는데, 그 노인이 과거에 사용했던 아이디가 zknight이다. 왠지 20세기 말인 1990년대에 슈퍼 패미컴 에뮬레이터 ZSNES를 만들어서 유명했던 zsKnight를 떠올리게 하는 설정이다.
5. 참고 자료
6. 외부 링크
- https://zsnes.com/ - ZSNES Home Page
[1] 화면의 흰 점들은 스노우 이펙트(snow effect)이다. 실제 화면에서는 눈이 내리는 것 같은 스노우 이펙트를 볼 수 있다.[2] 캐나다인으로 z를 미국식인 '지(ziː)'가 아닌 영국식인 '제드(zed)'로 읽어 '제드에스나이트'라고 읽는다. 마찬가지로 ZSNES도 개발자인 zsKnight 본인은 '제드에스엔이에스'라고 읽는다. 인터뷰에 의하면 ZSNES라는 이름은 단순히 Z라는 글자를 좋아해서 붙인 이름이라고 한다(SNES는 슈퍼 패미컴의 북미 출시 이름인 Super Nintendo Entertainment System의 약자). 또, zsKnight라는 별명은 원래 스스로를 knight라고 부르길 좋아했는데, knight는 일반적인 단어라 별명으로 삼을 수 없어서, 당시 작업중이던 ZSNES의 앞 두 글자 zs를 붙여 zsKnight가 되었다고 한다. 출처:How ZSNES Changed SNES Emulation Forever | Interview with the Creator[a] Windows로 포팅되기 전까지는 단 한 줄의 C 코드도 없는 100% 어셈블리로만 작성되었다고 한다.[4] 어셈블리로 개발돼서 속도가 빨랐다. ZSNES는 속도가 빨라 과거 컴퓨터 성능이 좋지 않던 시절에도 슈퍼 패미컴 게임을 풀 스피드(full speed)로 실행시킬 수 있었다. 이 덕분에 당시 저사양 컴퓨터를 쓰는 유저들에게 매우 좋은 평을 받았다.[5] 대부분의 게임이 문제없이 잘 실행되었다.[6] 시간이 지나면서 가정용 컴퓨터의 성능이 상향 평준화된 데다가, 당시에 비교대상이었던 Snes9x가 업데이트를 멈추지 않아서 정확성과 신뢰성을 확보한 덕분도 있다.[7] 초기 슈퍼 패미컴 에뮬레이터 중 하나로 개발자는 안도 노부아키(安藤信明)이다.[8] 그때까지 100개가 넘는 슈퍼 패미컴 게임을 끝까지 플레이 해봤다고 한다.[a] [10] 1996년 무렵 zsKnight가 17살이었다고 하므로, ZSNES의 첫 버전이 나왔을 때 그는 18살 정도였던 셈이다.