E D R , A S I H C RSS

에뮬레이터

last modified: 2015-04-07 19:34:25 by Contributors


1. 개요

Emulator. 원래 의미는 '경쟁자', '모방자','흉내내다.'라는 뜻의 영단어이다.

2. 컴퓨터 프로그램

다른 프로그램이나 장치를 모방하는 컴퓨터 프로그램, 혹은 전자기기의 능력을 뜻하는 말.

예를 들어 대부분의 프린터는 HP 레이저젯 프린터의 시스템 규격을 모방한다(대부분의 소프트웨어가 HP 프린터에 맞춰서 제작되기 때문에). HP 프린터를 지원하는 소프트웨어에서 제대로 작동할 수 있도록 프로그램을 속이는 것이다.

다른 예로는 DOSBox나 Windows 7의 버추얼 PC가 있다. 이 경우 특정한 오퍼레이팅 시스템의 환경을 따라하여 소프트웨어가 가상으로 구현된 환경에서 돌아갈 수 있도록 프로그램을 속이는 것이다. 리눅스 상에서 MS 윈도우 가상환경을 지원하는 Wine기능적인 면만 보자면 에뮬레이터의 일종이라고 볼 수 있다. 단, Wine은 정확히 말하면 에뮬레이터가 아니다.. 이름 자체가 Wine is not an emulator의 준말.[1]

Java 같은 플랫폼 독립적인 프로그램들은 에뮬레이터와 비슷한 추얼 머신으로 실행되는 방식으로 호환성을 확보한다. 안드로이드 역시 OS자체가 버추얼 머신으로 돌리고 있다.

과거 한글 폰트를 메인보드에 꽂는 한글 카드를 통해 하드웨어적으로 지원하던 DOS 시절에는 비싼 한글 카드를 소프트웨어적으로 에뮬레이션하는 한글 폰트 프로그램들이 많이 쓰였다.

PC통신 시절에 사용된 PC통신 프로그램의 본래 명칭은 터미널 에뮬레이터(Terminal Emulator). 이것은 PC통신 자체가 유닉스 터미널에서 돌아가던 환경이었고, PC통신 프로그램이 돌아가던 환경은 유닉스가 아닌 도스나 윈도우였기 때문에 프로그램에서 유닉스 터미널 규격을 모방했기 때문이다.

또한 허큘리스 그래픽 카드에서 CGA 지원 게임을 실행할 수 있도록 그래픽 카드 에뮬레이션을 수행하는 SIMCGA라는 프로그램도 있다.

3. 콘솔 에뮬레이터

흔히 특정한 게임기의 환경을 컴퓨터나 다른 기종 상에서 구현해 주는 프로그램을 뜻한다. 이 경우 정확히는 콘솔 에뮬레이터(Console Emulator)라고 부른다. 흔히 '에뮬'이라고 줄여 부르기도 한다. 그 범위는 아케이드 머신부터 휴대용 기기에 이르기까지 다양하며, 지금까지 나왔던 게임기 중 거의 대부분이 이미 에뮬레이터로 존재한다. 제작은 대부분 리버스 엔지니어링(역설계)을 통해 이루어진다. 이를 통해 하드웨어의 구조를 파악한 후, CPU의 처리 과정이나 메모리 등을 전부 소프트웨어적으로 구현하고,[2] 컨트롤러의 입력이나 그래픽/사운드 처리를 DirectX 등을 사용하여 구현하는 방식이 주를 이룬다.

저작권이 있는 바이오스나 다른 소스를 도용하지 않는 이상 에뮬레이터 개발 및 이용은 합법이며, 이는 미국에 있었던 플레이스테이션 에뮬레이터 Bleem!과 SCE 사이의 법적 공방에서 확인받은 바 있다.[3] 해당 게임의 원본을 소유하고 있을 때는 아무 문제없이 이용할 수 있다. 다만 마이크로소프트제 게임기들의 경우 예외적으로 매우 관리를 철저히 하는지 다이렉트 기반인데도 발전속도가 더디다. 입막음을 했을 것이 유력할 정도로 압박을 받는 모양이다.

기기의 성능이 향상되고 통신망이 발달하면서 쉽고 빠르게 데이터를 주고받을 수 있는 환경이 되자 점차 자체적인 에뮬레이터를 제작해서 DLC 형태로 재발매되는 게임들이 늘어났다. 닌텐도의 버추얼 콘솔이 그 대표적인 예시이고, PSNXBLA에서 서비스되는 플레이스테이션 및 구 엑스박스 게임들도 소프트웨어로 에뮬레이팅한 것들이다.

에뮬레이팅이 환장하게 어려운 게임기로는 시스템 구조상의 어려움으로 인해 경쟁 기종보다 훨씬 늦게 개발이 이루어졌던 세가 새턴이 있다.[4] 그 외에도 CPS-2의 경우 복제방지 기술 탓에 롬 추출이 어려웠고, 결과적으로 에뮬레이터의 개발을 할 수가 없었다. 라줄라가 복제방지 회피책을 통해 덤프한 롬을 통해 결국 뚫리고 말았지만.

콘솔 게임기의 경우, PSPPMPV43, Dingoo A320, 옵티머스Q 등 에뮬레이터를 구동시키는 데 적합한 환경을 지니고 있다면 '에뮬머신'이라는 이명이 붙기도 한다.

PS3을 위시한 차세대기의 경우 에뮬레이터가 쉽게 개발되지 않는다. 사양 문제라든가, 게임기의 구조 분석에 어려움이 있는 경우라든가, 이미지 데이터 자체도 과거에 비해 엄청나게 커졌기 때문에...

예를 들어, PC로 에뮬레이터를 원활하게 구동하기 위해서는, 에뮬레이팅의 대상이 되는 프로세서의 적어도 10배 이상, 많으면 100배 이상의 성능을 가진 PC가 필요하다. 직접 프로세서를 이용하여 구동하는 것과, 그 프로세서를 프로그래밍을 통하여 '흉내'내어서 컴퓨터의 메모리 상에 띄워 놓은 후 메모리를 왔다 갔다 하며 구동하는것의 속도 차이는 그야말로 넘사벽. 사람으로 예를 들자면 같은 원서(게임)를 현지인(게임기)이 읽는 것과 외국인(에뮬레이터)이 그 언어를 익혀(에뮬레이팅) 읽는 것의 차이를 생각하면 된다. 90년대 후반 수준의 하드웨어 성능을 가진 PS2 게임 중 일부가 현재 최신 사양급의 PC에서도 버벅거리는 것도 이 때문. 다만 현재는 PC의 스펙도 대폭으로 발전했고 에뮬레이터 역시 버전업을 통해 많이 향상되어 게임구동이 원활한지 정도의 문제만 남았다.

사실 게임기의 구조가 변태적인 경우 에뮬레이터로 구현하기도 힘들고 요구사양도 다른 게임기보다 훨씬 많이 필요해진다. 슈퍼패미컴의 경우 자체 연산속도가 하도 구려서 그나마 예전에 에뮬레이팅이 가능했지만...[5]

3.1. 에뮬레이터 목록

PC 이외의 기종일 경우에는 따로 표기.
iOS는 애플 정책상 에뮬레이터 자체가 앱스토어에 등록이 안 되기 때문에 탈옥해서 설치해야 한다. 순정 상태에서는 직접 iOS로 이식된 게임을 즐기는 수밖에 없다.

3.1.2. MSX

3.1.3. 패미컴

3.1.4. 메가드라이브

3.1.5. 슈퍼 패미컴

  • ZSNES - 오픈소스. DOS, 윈도우, 리눅스
  • Z-Net I - 상대방 PC의 IP를 입력하거나 또는 카일레라 서버를 이용해야 하는 기존의 에뮬레이터들보다 넷플레이 방법이 좀 더 간편하다.#
  • Snes9x - 오픈소스. 윈도우
  • Higan (구 bsnes)
    패미컴, 게임보이, 슈퍼 게임보이, 게임보이 컬러, 게임보이 어드밴스, 닌텐도 DS, BS-X 사테라뷰, 스파미 터보도 지원한다. 그리고 유일하게 MSU-1 SNES 홈브류 칩도 지원한다. 디게 많네 구동 성능도 뛰어나며 accuracy 모드로 SFC 구동 시 매우 높은 구현도를 볼 수 있다. 7z로 압축된 롬파일도 지원한다. Higan의 한 가지 흠이라면 롬파일을 불러오는 방식이 번거롭다는 점.
  • SNesoid - 안드로이드(OS).
  • SNes9x EX - 안드로이드(OS) / iOS
  • SuperGNES - 안드로이드(OS).
  • Animaonline SNES - 안드로이드(OS).
  • Snes8x - 윈도우폰 8용. 순정으로 구동 가능하다.

3.1.6. PC엔진

  • Turbo Engine
  • YAME
  • Magic Engine
    몇 안되는 유료 에뮬레이터. 다만 이쪽은 PC-FX 버전도 개발하고 있다.
  • Ootake
  • PCE.emu - 안드로이드(OS), iOS

3.1.8. 3DO

  • 3DOplay
  • 4DO

3.1.9. 닌텐도 64

  • Project64 - 아직까지도 개발되고 있는 N64 에뮬레이터. 2.1버전부터는 공식 설치파일에 애드웨어가 포함되어 있으므로 무설치본을 구해서 사용하는 것을 권장한다.
  • Nemu64
  • 1964
  • Mupen64
  • N64oid - 안드로이드(OS).
  • Mupen64 Puls, AE - 안드로이드(OS).

3.1.10. 세가 새턴

  • Girigiri
  • SSF
    세가 새턴 에뮬레이터 중 가장 안정적인 구동력을 보여주는 에뮬레이터. 또한 몇 안되는 일본제 에뮬레이터이기도 하다. 대신 별도 가상 이미지 프로그램을 굴려야하는 것을 비롯해 불편한 인터페이스가 단점. Windows 8.1에서는 구동은 가능하나 키가 입력되지 않는다!! DirectInput관련 문제인 모양.
  • Yabause
    인터페이스는 확실히 직관적이고 편한데, 게임 구동, 특히 소리에 있어 안정성이 좀 뒤쳐진다. 자체적으로 이미지 파일을 구동시킬 수 있지만 ISO 포맷 한정이며, 이외의 가상 이미지는 SSF처럼 별도 프로그램으로 마운팅을 해줘야 한다.

3.1.11. 플레이스테이션

3.1.12. 드림캐스트

  • Chankast
    본격적인 드림캐스트 에뮬레이션의 시대를 열어제꼈지만 nullDC의 입지에 밀리면서 사실상 단종.
  • nullDC - 오픈소스.
    사실상 개발 중단이라는 이야기가 있으며 에뮬레이션의 완성도 자체는 처음 나올 때와 크게 달라진게 없다. 현재 오픈소스팀에서 나오미 지원 버전도 내놓고 있지만 demul에 비해 구동이 엄청나게 까다롭기 때문에 쓰는 이는 몇 없다.
  • Makaron
    타 에뮬레이터에서는 제대로 돌아가지 않는 WinCE 기반의 게임이 잘 구동된다는 이야기가 있다. 하지만 타 에뮬레이터들과는 달리 설치식이고, 이전 버전을 제대로 언인스톨하지 않고 덮어씌우기를 한다던가하면 아무 게임도 구동할 수 없게 되는 등 이래저래 까탈스럽다.
  • demul
    호환 기판인 나오미는 물론이고 아토미스웨이브까지 지원하는데다가 넷플 기능까지 지원. 일단 사양만 된다면 나오미 게임은 원활하게 넷플되는 경지에 와있다. 업뎃이 엄청나게 느리다는 것이 단점.
  • reicast - 안드로이드(OS).
    안드로이드버전 치고는 매우 잘 돌아가는 편이다. 듀얼코어정도의 기기에서도 60프레임을 뽑는 놀라움을 보인다.

3.1.13. 플레이스테이션2

  • PCSX2 - 오픈소스.
  • Play!
    새롭게 등장한 에뮬레이터. 바이오스가 필요없는 것이 특징. pcsx2와 비교할 때 아직 많이 부족한 초기 단계다. 홈페이지

3.1.14. XBOX(엑스박스)

  • cxbx - 오픈소스.
  • dxbx
    2011년 4월부로 돌연 업데이트 중단을 선언했다. 아마도 마소측과 모종의 무언가가 있었을 것으로 추측.
  • XQEMU - 오픈소스.
현재 개발단계에 있다. 개발 초기단계라 더 기다려야 할듯.

3.1.15. 게임큐브, Wii

  • Dolphin - 오픈소스. 게임큐브용 에뮬이었으나 Wii 에뮬레이션도 지원.

3.1.16. 게임보이, 게임보이 컬러

3.1.17. 게임보이 어드밴스

  • VisualBoyAdvance - 오픈소스. GB,GBC 에뮬레이션도 지원.
  • No$GBA - NDS 에뮬레이션도 지원.
  • GameBoid - 안드로이드(OS)
    한때 마켓에 무료버젼와 유료버전이 올라왔으나, 지금은 잘려버려서 아예 apk로 다운받아야하는 판.
  • John GBA - 안드로이드(OS)
  • My Boy! - 안드로이드(OS)
    이것도 무료버전과 유료버전으로 나뉘어져있으며, 특히 유료버전은 블루투스와이파이로 이용해 넷플레이가 가능(!) 단, 다른 게임끼리 연결[8]은 같은 기종끼리만 가능한 것을 보여 아쉽다.
  • GBA.emu - 안드로이드(OS), iOS
  • gbaemu4DS - 닌텐도 DS에서 게임보이 어드밴스를 실행하는 홈브류.

3.1.18. 닌텐도 DS

  • No$GBA
  • DeSmuME - 오픈소스.
  • iDeaS
  • nds4droid - 안드로이드(OS)
    계속 업데이트 중이며, 아직 실사용하기에는 스마트폰의 사양에 비해 요구사양이 넘사벽급으로 높기 때문에 언젠간 즐길 수 있을 것이란 기대만 갖자. 갤스에서 1~5프레임 정도의 스피드를 보여준다 카더라. 확인해 본 결과 듀얼코어인 베가레이서에서도 같은 결과가 나왔다. 구동은 가능하지만 진행이 불가능하다. 2012년 9월 기준, 최고급 스펙의 스마트폰인 갤럭시 S3에서 뉴 슈퍼 마리오 브라더스를 구동한 결과, 14~18프레임이라는 수치가 나와, 아직 갈 길이 멀다는 것을 보여줬다. 이 프레임도 CPU 절전 해제, 사운드 OFF로 해야 겨우겨우 뽑아진다.
  • Dsoid - 안드로이드(OS)
    역시 계속 업데이트 중이다. 위의 nds4droid에 비해 기능이 빈약하고 묘하게 화질이 뭉게지는 현상이 있지만 속도는 nds4droid에 비하면 제법 빠르다. nds4droid보다 당장은 차라리 이걸 쓰는게 낫다. 물론 어디까지나 상대적으로 빠르다는 거지 역시 원활한 플레이를 기대하지는 말 것.
  • DraStic - 안드로이드(OS)
    안드로이드 NDS 에뮬 중에서는 가장 빠른 속도를 자랑한다. 자세한 것은 항목참조.

3.1.19. PSP

  • jpcsp
    괴악하게도 Java 기반이다. 즉 윈도우-자바 가상머신-PSP 가상머신-PSP 게임이라는 것. 미친 것 같아요상당수 게임이 구동되긴 하지만 태생적 한계로 인해 사양을 심하게 타며, 영상이나 음악은 별도로 소닉스테이지를 설치하면 음악이나 영상 등을 디코딩해서 임시 폴더에 저장시켜두는 식인데 그 용량이 2기가에 육박한다. 외국 에뮬 정보 사이트 등에서는 제발 C++로 갈아타라는 리플이 줄을 잇고 있다.
  • pcsp
    그토록 염원하던 C++ 기반의 에뮬레이터. 하지만 jpcsp에 비해 완성도도 떨어질뿐더러 업뎃이 없다시피하다.
  • PPSSPP
    또다른 C++기반 에뮬레이터. Dolphin의 공동 개발자가 만든다는 점, 안드로이드도 지원한다는 점이 화제가 되고 있다.

3.1.20. GP32

  • GeePee32

3.1.21. 아케이드

3.1.22. 그 외

3.1.23. 다기종 에뮬레이터

  • MESS
  • mednafen - 오픈소스. Atari Lynx, GBA, GBC, 네오지오 포켓 컬러, NES, PC 엔진, PC-FX, 원더스완 컬러, 세가 마스터 시스템, 게임기어 에뮬레이션 지원.
  • DroidEmuLite - SNES, NES, GBC, GBA, 세가 제네시스, 게임기어 에뮬레이션 지원. - 안드로이드(OS)
  • MorphGear - SNES, NES, GBC, GBA, 세가 제네시스, 게임기어, 그 외 추가바람 - 윈도우 모바일, Microsoft Windows
  • RetroArch - 아케이드, 아타리 2600, NES, SNES, 버추얼 보이, GB(GBC), GBA, 세가 마스터 시스템, 세가 제네시스, 메가 CD, 슈퍼 32X, 게임기어, 플레이스테이션, PC 엔진, PC 엔진 CD, 원더스완, 원더스완 컬러, 네오지오 포켓, 네오지오 포켓 컬러 에뮬레이션 지원.

3.2. (아직) 에뮬레이터가 없거나 불완전한 게임기/기판


  • 휴대용
    • 닌텐도 3DS
      3DS 에뮬레이터를 자처하는 프로그램들은 모두 가짜이며, 개중에는 악성코드도 있다고 한다. 3DS의 해킹이 거의 완성에 가까워지고 있다는 뉴스가 나왔다. 조만간 에뮬레이터를 볼 수 있을지도? 그리고 현재 홈브류 구동이 가능한 에뮬레이터가 나왔다. 그러나 3DS 에뮬레이터가 나온다면 아래 문제점을 해결해야만 할 것이다.
      • 슈퍼 마리오 3D 랜드나 젤다 시간의 오카리나 3D같은 줌인이나 회전이 필요한 게임에서의 줌인, 회전 등은 어떻게 할 것인가? 안하면 되거나 처음부터 스마트폰 에뮬레이터로 가거나 모니터를 돌리거나
      • 3D는 지원을 안 할 가능성이 100%일 것이다. 애초에 대부분의 컴퓨터가 3D는 지원조차 안하는데 될 리가 없다. 문제는 3DS를 가진 사람들도 안 쓰는 기능이라는 것이지만. 아마 이 경우는 3D 미지원으로 어떻게 넘기겠지만 일부 게임에선 무조건 3D 기능이 필요한 구간이 있는 경우가 있어서 곤란할 것이다.
      • 2015년 1월 1일에 아직은 개발중이라 느리지만 일단은 구동이 가능한 에뮬레이터가 공개 되었다. Citra 오픈소스 기반이라 제작팀의 홈페이지에서 소스를 받을수 있으며 제작팀 스스로도 몇년은 더 걸려야 완전해질거라 말하는중.
    • PS VITA

  • 가정용
    • XBOX
      이쪽은 부품 자체가 완전히 PC이고, 드림캐스트처럼 윈도우 기반 시스템이라 개발이 쉬워보이는 듯 하지만, 의외로 개발 이 늦어지고 있다. 공식 홈페이지에서 개발자가 단지 X86-윈도우기반(우리가 쓰고 있는 PC형태)이라고 에뮬레이션이 쉬울 거라는 소리는 집어치우라며 기술적으로 온갖 어려움이 있음을 예를 들어가며 토로한 바 있다.
    • Wii를 제외한 7세대 콘솔[10]
      • 플레이스테이션3
        rpcs3라는 에뮬레이터가 몇몇 상용 소프트(주로 2d) 구동에 성공했다. 다만 말그대로 구동만 성공이고 제대로 된 플레이는 불가능한 수준. 아직 걸음마 단계이다.#
      • XBOX360
        아직 XBOX 에뮬도 완성되지 않은 상태에서 XBOX360 에뮬을 기대하는 건 무리다. Xenia라는 에뮬레이터가 있기는 하나 당연히 게임은 안 돌아가며 rpcs3보다 더 뒤쳐져 있는 상태.
    • 8세대 콘솔
  • PGM2(IGS사 기판
    삼국전기2 개세영웅, KOF 98 UM, 서유전기2 등이 이 기판으로 출시되었다. 68000에 Z80 등 스펙이 낱낱이 밝혀져 있었던 오리지널 PGM 기판과 달리 스펙조차 오리무중. 원판인 PGM은 Nebula에서 최초로 뚫렸다. Nebula 제작자가 MAME 제작에도 참여해서인지 2010년에는 MAME에서도 PGM 게임을 제대로 지원하기 시작했다. 이 덕에 도돈파치 대왕생(흑판 포함), 케츠이가 마메에서 돌아간다.
  • 세이부계열 기판
    특이한 기판 성질 때문에 롬 자체는 전부 덤프가 되었으나 구동이 불가능하다.(라이덴 2[11], 제로 팀, 세이부 컵 축구[12])
  • 그 외 마이너한 기판 몇몇(기판 정보 참고)
----
  • [1] 문서에서 볼 수 있듯 Wine은 CPU 에뮬레이터가 아니다. 넓은 의미에서 윈도 API를 에뮬레이션하니 에뮬레이터라고도 할 수 있겠지만 아래 목록에 있는 대부분의 에뮬레이터와는 컨셉이 완전 다르다.
  • [2] 예를 들어, MAME의 경우에는 에뮬레이트 하고자 하는 아케이드 기기의 CPU용 프로그램을 롬파일에서 불러들여와 역어셈블한 후 해당 명령어를 현재 사용자가 사용하고 있는 CPU의 명령어로 변환시켜서 구동하는 방식을 사용하고 있다.
  • [3] Bleem!의 경우 회사를 차려서 에뮬레이터를 시장에 판매하려는 상업적인 목적을 가지고 있었다. 소니측에서 이를 두고 자신들의 권리를 침해하는 행위라며 소송을 여러 번 걸었지만, 법원은 모두 Bleem!의 손을 들어주었다. 하지만 법정에서 싸우는 동안 비용을 너무 많이 쓴 탓에 결국 회사는 파산했고 에뮬레이터 개발도 백지화됐다.
  • [4] 이쪽은 정말 구조가 환장할 정도로 복잡하다. 게임 개발마저 엄청 어려웠다고 하니 말 다했다.
  • [5] 그외에도 메가드라이브는 부품이 매우 정석적이여서 에뮬레이터 개발이 빨리 이루어진 경우다.
  • [6] 탈옥 필요
  • [7] 후술할 My boy!의 게임보이 버전.
  • [8] 특히, 포켓몬스터 시리즈.
  • [9] 윈도우용은 Callus95
  • [10] Wii가 뚤린 것도 사실상 게임큐브의 구조를 그대로 계승한 채 내놨기 때문이다.
  • [11] MAME 0.155 부터 정식 지원한다!!
  • [12] 뚫린건 해적판이다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2015-04-07 19:34:25
Processing time 0.2934 sec