Dolphin

 


  • 공식 홈페이지[1]
1. 개요
2. 상세
3. 기능
3.1. Ishiiruka 빌드
3.3. MMJ/MMJR 빌드


1. 개요


게임큐브Wii를 지원하는 오픈소스 에뮬레이터. 다운로드 페이지[2]
2003년에 게임큐브의 에뮬레이터로서 출발한 것이 시초이지만, 2008년에 오픈소스로 전환하고 Wii를 추가한 때에 본격적으로 유명해졌다.
PS2보다 성능이 약간 더 좋은 게임큐브임에도 어째선지 PCSX2보다 최적화가 잘 되어 있다는 평이었으나 시간이 지나 PCSX2도 스피드핵 및 다양한 명령어 지원으로 사정이 많이 달라졌다.[3] 대신(?) Dolphin은 윈도우 이외의 운영체제에서도 안정적인 구동을 보장한다.

2. 상세


Dolphin의 최소 사양은 다음과 같다. 공식 홈페이지 출처
OS
64비트 Windows (7 SP1 이상), Linux, 혹은 macOS (10.10 Yosemite 이상).[4]
프로세서
SSE2를 지원하는 CPU. "modern" (3GHz, 듀얼 코어 이상이며 2008년보다 오래되지 않은) CPU가 강력히 권장된다.
그래픽 카드
D3D10 / OpenGL 3.0을 지원하는 "reasonably modern" 그래픽 카드. D3D11 / OpenGL 4.4 이상 권장. [5][6]
만약 위의 사양을 만족하지 못하는 경우라면 4.0-157 이하의 버전은 DX9를 지원하며, 4.0-1609 이하의 버전은 32비트 시스템을 지원하므로 이용할 수 있다. 최신 버전에 비해 호환성은 떨어지고 속도도 느리다는 점은 감수해야 한다.
유명한 Ishiiruka 버전은 32비트 시스템, DX9, DX12 등 공식 버전에서 퇴출된 기능들을 지원해주고 있으니 이쪽을 찾아 이용해도 괜찮다.
7세대 콘솔 가운데 가장 처음으로 만들어진(그리고 2016년 중반까지는 사실상 유일하던)[7] 에뮬레이터다.
안드로이드를 지원한다. 롤리팝(5.0) 이상의 버전을 요구한다. 2018년 현재는 스마트폰 AP의 급격한 발전으로 인해 플래그쉽 스마트폰에서[8][9] 다수의 게임이 정상적으로 구동된다. 특히 Vulkan API로 구동하는 경우 훨씬 부드럽게 돌아간다고 한다. 안드로이드에 Dolphin을 설치할 때는 '''본인의 기기가 64비트를 지원하는지'''에 유의할 것.
iOS 또한 지원한다. A9이상의 기기라면 준수한 구동성능을 보여준다. 다만 iOS의 에뮬레이터들이 모두 그렇듯 탈옥이 필수적으로 요구된다. Cydia 소스
PCSX2와는 달리 바이오스를 구하는 등의 번거로운 일도 필요가 없다.[10] Wii 게임도 구동되는 건 당연히 Wii가 게임큐브를 오버클럭한 버전이기 때문이다. 물론 Wii 리모컨과 눈차크로의 블루투스 연결도 완벽히 지원한다. 블루투스 동글과 적외선 센서바를 별도 구매해야 구동되며, 둘을 합친 돌핀바라는 물건도 판매되고 있다. Wii U 용 게임큐브 컨트롤러 어댑터가 발매된 뒤에는 정식 게임큐브 컨트롤러도 지원한다. 기존에 지원하는 엑스박스 컨트롤러에서 스틱 범위가 어긋나는 문제가 없다는 게 장점이다.
4.0으로 업데이트 된 당시에 이전 버전의 Wii 세이브 데이터를 옮길 때 번거로움이 있었다.[11] 이전까지는 User 폴더를 옮기는(!) 꼼수로 옮길 수 있었으나 4.0 버전은 시궁창... 에뮬레이터 자체에서 bin 세이브 데이터를 가져오는 방법으로 일일이 로드해야 하는데, 이전 버전에 있는 세이브 데이터를 내보낸 뒤에 사용하려는 돌핀 버전에서 그 데이터를 가져와야 했다.
덤으로 이전에 사용하던 키 맵핑도 지원하지 않아 일일이 다시 맵핑해줘야 했다.
4.0 버전 이후로 설정 파일들이 내 문서 경로에 저장되는데, 이것이 거슬린다면 돌핀이 있는 경로에 portable.txt라는 0바이트짜리 파일을 만듬으로써 해결할 수 있다.
2015년 4월 23일, 돌핀 에뮬레이터의 개발 협력 프로그래머인 트랜스젠더 Rachel Byrk 씨가 악플을 견디지 못하고 투신자살했다.(관련기사/돌핀 홈페이지 내 추모 페이지)
2015년 6월 중순, 돌핀팀은 프로젝트를 2개로 분기했다. 4.0 이후에 그때까지의 호환성 문제 보완을 위해 동분서주하느라 기능 추가가 지연된 점을 해결하기 위함이다. 그 하나는 차후버전을 위해 추가 개발을 해 나가는 5.0-RC(Release Candidate) 버전이고, 다른 하나는 기존의 개발자 버전으로, 이쪽은 호환성 문제 해결만을 집중한다. 7월달의 보고서에 따르면 5.0버전의 발매일을 아직 기약할 수는 없고, 현재로서 이용자들에게 최선의 선택은 여전히 개발자 버전이라고 한다.
2016년 6월 24일, '''드디어''' 5.0가 공개되었다.

아래 영상은 각 버전별 재생 속도 비교영상이다. DX12는 이 영상이 공개된지 얼마 지나지 않아 지원 종료되었고, Vulkan이 빠른 속도를 제공하며 발전중이다.

수많은 버그 픽스, 그래픽 깨짐 현상 해결, 사운드 퀄리티 상향, OpenGL과의 3D 연동 등 게임플레이가 훨씬 부드러워졌다.
컨트롤 이슈도 많이 해결된 편.
2016년 9월, 버전 5.0-540에서 MMU(Memory Management Unit) 에뮬레이션 문제를 해결함에 따라, 부팅이 불가능하던 마지막 게임큐브 게임인 "스타워즈: 클론전쟁"이 부팅되었다. 이로써 돌핀은 모든 게임큐브 게임을 부팅할 수 있게 되었다.
5.0-748 빌드 부터 Vulkan을 지원한다. 돌핀 개발진들의 내부 테스트 결과에 따르면 DirectX 11/12와의 성능과는 큰 차이가 없고, 이는 AMD GPU리눅스를 쓰는 경우에 사용할 것을 권장하며, NVIDIA GPU리눅스를 쓰는 경우에는 Vulkan보다는 OpenGL을 쓸 것을 권장한다. Windows는 GPU의 지원 수준에 따라 DirectX 11/12를 권장하지만 슈퍼 마리오 선샤인 같은 일부 게임에는 Vulkan API쪽의 프레임 성능이 다른 것들에 비해 더 향상됐다고도 전한다.
2017년 7월 셰이더 컴파일링으로 인해 생기는 스터터링 문제를 해결할 Ubershader가 도입되었다. 이하 내용은 Dolphin 블로그 글을 요약한 것이고, 원문은 길지만 휠씬 이해하기 쉽게 잘 쓴 글이니 한 번 읽어보면 좋다.원문
Wii와 게임큐브의 GPU에는 TEV(Texture EnVironment) 유닛이라는, 제한적으로나마 프로그래밍이 가능한 장치가 들어 있다. TEV는 마치 현대 GPU가 셰이더를 불러오듯 다양한 설정이 가능한데, 이들 설정은 게임별로 다르다. 게임은 하고 싶은 작업이 있을 때마다 이들 설정을 불러오며, Dolphin은 이때마다 TEV를 에뮬레이트하기 위한 셰이더를 컴파일해 사용한다.

문제는 당연히 게임큐브용 게임은 게임큐브라는 하나의 디바이스만을 타겟으로 개발되기 때문에, TEV 유닛을 제어할 셰이더 코드를 소스 코드로 넣을 이유가 전혀 없고, 용량과 시간 절약을 위해 미리 컴파일해두고 아무 때나 읽으면 된다. 따라서 게임큐브 실기에서는 이 작업에 시간이 걸리지 않으나, PC 게임은 다양한 GPU 에 대응해야 하고 각 GPU 들은 내부적으로 다른 셰이더 인스트럭션을 사용하므로 실행하는 컴퓨터마다 셰이더 컴파일을 해주어야 한다. 따라서 TEV 를 현대의 셰이더로 에뮬레이션 할 경우 Dolphin에서는 PC의 GPU를 위한 '''셰이더를 컴파일하는 시간'''이 필요하다.[12] 셰이더를 컴파일하는 동안 Dolphin은 아무 것도 하지 못한 채 셰이더가 완성되어 GPU 에뮬레이션이 재개되기만을 기다려야 하고, 이 시간은 플레이어가 감지할 수 있는 '''스터터링'''이 된다.[13]
이 셰이더 컴필레이션 스터터링은 게임에 따라서는 플레이 도중 시시때때로 일어나 몰입을 방해할 정도의 문제로 남아 있었고, 이를 없애기 위해 다양한 안들이 제시되었다.
  • 셰이더를 컴파일하지 않은 채 다음 프레임을 렌더링하며 게임을 계속 진행한다. (비동기적 셰이더 컴파일링)
다양한 핵 기능으로 유명한 Ishiiruka 빌드가 채택한 해결책으로, 셰이더가 컴파일되기를 기다리지 않고 게임을 계속 실행하는 방법이다. 셰이더가 컴파일되는 동안에는 화면 요소들이 누락된 채로 렌더링되고, 이는 극심한 팝인 현상으로 나타난다. 상황에 따라서는 EFB(Embedded FrameBuffer) 관련 작업이 건너뛰어지는 바람에 화면상에 보여야 할 그래픽이 영원히 빠진 채로 남는 경우도 있다.
  • 공유 가능한 셰이더 캐시
기본적으로 게임이 컴파일한 셰이더는 지워지지 않고 "셰이더 캐시"로 남으며, 다음번에 필요할 때는 읽어들이기만 하면 된다. 공유 가능한 셰이더 캐시는 이 데이터를 서로 다른 컴퓨터 간에 호환 가능하도록 만드는 방법이다.
Cemu에서 제공하는 기능이며, Dolphin도 Vulkan 플러그인에 한해서 지원하는(이라기보다는 사용 가능한) 기능이다. 엔드 유저 입장에서는 문제를 해결해줄 수 있는 방법이지만, 개발자들은 문제를 회피하고 숨겨버리는 방법이라 여겨 받아들이지 않았다.
Ubershader의 개발자 phire가 셰이더 캐시 공유 기능에 대한 자신의 (부정적인) 생각을 밝힌 글#
...이 방안들은 모두 문제를 회피하는 것으로 여겨져 정식 빌드에서는 기각되었다.
그리고 마침내 phire가[14] 완벽한 해결책을 만들어냈다. '''셰이더로 그래픽 카드에서 실행할 Wii/GC 렌더링 파이프라인 대응 인터프리터를 만든다.''' 장점은 "셰이더 컴필레이션 스터터링이 사라진다". 단점은 여느 인터프리터가 그렇듯, "느리다". iGPU로는 감당하기 힘든 수준이고, 기존의 컴파일러로는 4K 해상도까지 받쳐줄 수 있던 GPU들이 Ubershader에서는 1080p도 감당해내지 못하는 광경이 펼쳐진다.[15] 이 문제를 해결하기 위해 제공되는 기능이 바로 하이브리드 모드. 평소에는 컴파일러를 이용하다가 컴파일링을 해야 할 때가 오면 잠시 Ubershader로 전환한다. 하이브리드 모드에서는 기존 컴파일러에 비해 큰 성능 타격이 없다고 한다.
Dolphin보다 복잡한 GPU를 탑재한 기기를 에뮬레이트하는 RPCS3, Cemu는 Dolphin보다 훨씬 심한 스터터링을 안고 있지만 그렇다고 Ubershader를 도입하는 것은 실질적으로 불가능한 상황이다. Cemu는 공유 가능한 셰이더 캐시를 도입해 문제를 해결(혹은 "회피")했고, RPCS3는 "아직 개발 초창기고, 업데이트에 따라 이전의 캐시는 금세 무효화되어 나갈 것"이라는 이유로 아직은 공유 기능을 넣지 않았지만[16] 장기적으로는 Cemu와 같은 방향으로 갈 듯하다.

3. 기능


지원하는 기능이 PS2 에뮬레이터 PCSX2드림캐스트 에뮬레이터 nullDC와 비교하면 상당히 다양한 편이다. 예를 들면,
  • 강제세이브와 리플레이 같은 기본적인 TAS 기능 지원.[17]
  • 3D 카메라 핵 지원. 이 기능을 이용해 스크린샷을 잘 찍을 수 있다.
  • 부드러운 배속 플레이 지원. 속도에 따라 음낮이가 변경되며 음질이 끊기지 않는다.
  • 그래픽 강화 기능
    • 고해상도 지원. 내부 해상도를 네이티브 해상도(640x528)의 정수배로 높일 수 있다.[18]
    • 안티 에일리어싱. SSAA와 MSAA 중에서 선택 가능하며,[19] OpenGL과 Vulkan 플러그인에서 제공되는 후처리 기능으로 FXAA도 추가적으로 선택 가능하다.
    • 와이드스크린 핵. 돌핀에서 자체적인 핵을 제공하긴 하지만[20] 그래픽에 말썽이 생기는 경우가 많아서 보통은 게임별로 설계된 치트를 사용하는 게 좋다. Dolphin Wiki에 나와있는 경우가 많다.[21]
    • 커스텀 텍스쳐. 텍스쳐를 덤프하는 기능과 외부 텍스쳐를 읽어들이는 기능을 제공한다. 유명 게임들은 대부분 완성도 높은 HD 텍스쳐 팩이 만들어져 있으므로 손쉽게 다운로드해 사용할 수 있다. 커스텀 텍스쳐 포럼 링크 [22]
    • 스테레오스코픽 3D. 3D 디스플레이가 있다면 대부분의 게임을 문제 없이 3D로 플레이할 수 있다. 3D 디스플레이가 없다면 적청 안경으로 3D 기능을 이용할 수도 있지만 그렇게 되면 색감은...... 색감보다 입체감이 소중하다면야.
    • 치트를 이용한 그래픽 강화. 에뮬레이터 자체 기능은 아니지만, 에뮬레이터의 우월한 성능을 이용해 30fps인 게임을 60fps로 작동하도록 패치하는 등의 일이 가능하다.[23] 이곳 포럼에서 60fps 패치나 와이드스크린 패치 등에 관해 많은 정보를 찾을 수 있다. 커스텀 텍스쳐와는 달리 엄밀히 Dolphin의 고유 기능은 아니므로 이 외의 웹사이트에서도 정보를 찾을 수 있다.
  • 한글화 메뉴 제공.
  • 블루투스로 위모컨과 눈차크를 연결해서 플레이 가능. 센서바가 필요하다. 유튜브 튜토리얼
5.0부터는 블루투스 동글을 패스 스루하여 Wii의 위모트 동작 매커니즘을 에뮬해 정밀도를 올릴 수도 있는데, 이 경우 위모컨 이외의 다른 블루투스 기기를 사용할 수 없으며 동글 제품에 따라 안 되기도 한다. 취소하고 싶으면 장치 관리자에서 해당 장치를 제거하고 동글을 뺐다가 끼우면 원상복구된다.
18년 5월 이전에는 하이브리드 위모컨 설정으로 키마나 일반 게임패드를 위모컨과 섞어 쓸 수 있게 하거나 센서바를 모션플러스+마우스포인팅으로 대체할 수 있었으나, 문제가 너무 많아 삭제한 대신 위모컨 입력 설정을 변경하는 기능을 추가했다.
마찬가지로 Wii 밸런스 보드나 클래식 컨트롤러도 연결할 수 있고, Wii U용으로 발매된 게임큐브 컨트롤러 USB 어댑터를 통해 게임큐브 컨트롤러를 연결할 수도 있다.
패치를 거듭해 기능들이 계속 추가되고 있다. 그래픽 수준을 높이는 기술도 발전해서 기존 콘솔로 즐기는 것보다 훨씬 높은 수준의 그래픽으로 게임을 즐길 수 있다. 하지만 버전 업을 하면서 삭제된 기능들도 있는데, 대표적으로 트라이포스 지원이 있다.[24] 오픈 소스 프로젝트이므로 잘 찾아보면 어딘가에 비공식적으로 이런 기능들을 유지하고 있는 빌드가 자주 있다.

3.1. Ishiiruka 빌드


개발자 Tino가 만드는 비공식 빌드로, 2013년 Dolphin 팀이 DirectX9의 지원을 중단해버린 것을 계기로 갈라져나갔다. 최대한 많은 사용자에게 유용한 기능들을 제공하는 것을 목표로 하고 있으며, 공식 버전이 멀리하는 핵을 적극적으로 사용해 엔드 유저에게 친화적인 기능을 제공함으로써 호응을 받고 있다.
저사양 PC라면 DX9, DX12 지원으로 속도면에서 혜택을 볼 수 있고, 고사양 PC라면 폭넓은 그래픽 강화 기능을 즐길 수 있다. 커스텀 텍스쳐 로딩 기능과 지금은 도태된 비동기적 셰이더 컴파일링은 모든 엔드 유저에게 도움이 될 수 있는 기능이다.
  • 비동기적 셰이더 컴파일링.
셰이더 컴파일링을 나머지 코어 에뮬레이션과 비동기적으로 수행해 팝인 현상을 일으키는 대신 컴파일 시간에서 오는 스터터링을 없애는 기능이었다. 심각한 스터터링을 겪는 메트로이드 프라임 3 등의 게임을 플레이할 때 유용한 기능으로 Ishiiruka 빌드의 최대 인기 요인 중 하나였지만 공식 빌드에 Ubershader가 추가된 이후로 경쟁력을 잃었다.
  • DirectX9, DirectX12 지원 유지
공식 버전에서 퇴출된 이후에도 몇몇 버그 수정을 하며 지원을 유지하고 있다.
  • 커스텀 텍스쳐 로딩 개선
공식 버전은 텍스쳐를 미리 램에 올려두거나 실시간으로 읽어오는 옵션을 주는데, 전자는 텍스쳐 팩의 압축을 해제한 용량만큼의 RAM이 필요하고 후자는 로딩으로 인해 스터터링이 발생한다. Ishiiruka 버전은 적은 RAM으로 스터터링 없이 커스텀 텍스쳐를 사용할 수 있다.
  • 그래픽 강화 기능
    • DolphinFX
SweetFX를 Dolphin과 호환 가능하게 고친 버전이다.
  • SSAO, DoF
  • 텍스처 스케일링
  • 테셀레이션
Android 버전은 MMJ, MOD빌드와 같이 Exynos 단말기에서도 빠르게 구동된다.

3.2. 트라이포스 빌드


Dolphin은 한때 트라이포스 아케이드 기판 에뮬레이션을 공식적으로 지원했지만 해당 기능이 핵으로 가득한 조잡한 상태이며, 그 상태를 개선할 사람이 없다는 이유로 제거되었다. 공식 빌드에서 지원이 종료된 이후에도 비공식 빌드에서 약간의 발전이 있었다.

3.3. MMJ/MMJR 빌드


Android용 빌드 중 끝판왕으로 Exynos계열 단말기에서도 원활한 구동률을 보여준다.[25]

4. 호환성


Dolphin/호환성 리스트 문서 참조.

[1] https://dolphin-emulator.com이라는 버려진 비공식 사이트도 있다. 헷갈리지 않도록 주의.[2] 페이지 상단의 "개발 버전"이 가장 최신으로 업데이트되는 버전이므로 권장된다. 아래쪽의 "안정된 버전"은 누락된 최신 기능들이 많다. 보통은 "개발 버전"도 충분히 안정적이니 걱정할 필요 없다.[3] 사람들 사이에 PCSX2가 Dolphin보다 심하게 무겁다는 인식이 널리 퍼져있는 것과 달리 실제로 요구 사양의 차이가 그렇게 크지는 않다. 이런 인식이 생긴 데에는 게임큐브/Wii의 인기작들인 닌텐도 퍼스트 파티 타이틀들이 대체로 Dolphin에서 요구사양이 낮은 편에 속한다는 점이 일조했다. 퍼스트 파티 중에서 가장 무거운 편에 드는 게 슈퍼 마리오 갤럭시 정도. 반면 PS2의 인기작들 중에는 갓 오브 워 시리즈, 라쳇 앤 클랭크 시리즈, 그리고 극악의 '''완다와 거상''' 등등 무겁기로 소문난 게임들이 포진해 있다. Dolphin도 제노블레이드나 '''라스트 스토리'''를 해보면 어지간한 PCSX2 게임들은 가뿐히 뛰어넘는 부담이 걸린다.[4] Windows Vista SP2와 리눅스 이외의 유닉스 계열 운영 체제는 공식적으로 미지원이나 작동할 수도 있다.[5] 그래픽 백엔드로 DX11, OpenGL, Vulkan과 2019년 새롭게 추가된 DX12를 지원한다.[6] 4.0-8933 버전부터 5.0-3774 버전 이전까지 DX12를 지원했던 적도 있다. 이 때는 개발자 한 명이 혼자 개발하다시피 했는데, 해당 개발자가 잠적하면서 자연스레 퇴출되었다. 이후 부활한 DX12는 거의 새로 만들다시피 한 것.[7] 2017년에 RPCS3의 호환성이 약진했다. 2018년 말부터는 Xenia도 몇몇 게임을 플레이할 만한 수준까지 치고 올라왔다.[8] 스냅드래곤 AP에서 퍼포먼스가 좋고, 엑시노스에서는 느리다. 덕분에 지역별로 탑재 AP가 다른 갤럭시 S8은 성능이 천지차이다.[9] 별도의 엑시노스 빌드도 있다.[10] 구하기만 한다면 사용할 수는 있다. 실용적인 쓸모는 없고, 부팅 화면을 감상하는 정도.[11] 게임큐브용 게임 세이브 데이터는 그냥 SD 카드에 저장되는데, 이 이미지만 가져오면 되기에 상당히 간단하다. [12] 이는 현대의 PC 게임들은 모두 동일하다. 게임을 배포할 때 미리 컴파일 된 셰이더 바이너리를 배포할 수가 없다. 단 소스 코드 상태로 배포할 필요는 없으며, 바이트 코드 형태로 만들어서 배포할 수는 있다. 물론 이건 눈으로 보기엔 그냥 바이너리 데이터 같지만 컴파일된 것이 아니며 결국 컴파일 과정을 거쳐야 한다.(어차피 바이트 코드 형태는 이론적으로 완벽에 가까운 디컴파일도 가능하다)[13] PC 게임의 경우 애초에 개발자가 가령 시작할 때 로딩하는 과정에서 필요한 셰이더를 미리 다 컴파일해둬도 되고, 중간 중간에 별도의 로딩 화면이 있을 때 컴파일 해도 되고 어떻게 해도 상관이 없다. 그러나 문제는 Dolphin 은 "에뮬레이터" 이기 때문에, 게임들이 어떤 셰이더를 어느 위치에 저장해놨고 언제 쓸지 원칙적으로 알 수 없다. 물론 억지로 현재까지 개발된 게임들에 대해서 일일이 핵(hack) 형태로 하는 건 이론적으로 문제가 없겠지만 에뮬레이터로써는 좋은 방식이라 할 수 없다.(셰이더 캐시와 별 차이도 없다)[14] 과거 Zfreeze 기능 구현 등 많은 공헌을 한 개발자.[15] 이정도 속도만 해도 예상보다 훨씬 빠른 것이라고 한다. 개발자들이 Ubershader에 보냈던 가장 큰 회의는 개발의 어려움보다도 "쓸만 한 속도가 나오겠느냐"였다. Ubershader를 처음 완성했을 때 플레이 가능한 속도로 작동한다는 사실은 phire 본인에게도 놀라웠다고 한다.[16] 셰이더 캐시를 옮기는 것 자체는 가능하지만 다른 컴퓨터에서 최적화된 형태로 작동하지 않기 때문에 좋은 행동은 아니다.[17] 다만 TAS 기능은 갈리는 경우가 많아서 좀 불안정한 편. 참고로 Rachel Bryk씨가 가장 크게 기여한 부분이 TAS 기능의 강화 및 안정화이다.[18] 5.0 버전 초기까지만 해도 성능이 낮은 사용자를 위해 1.5배와 2.5배 해상도를 지원했다. 하지만 원래부터 비정수배 해상도는 문제가 많아서 권장되지 않는 옵션이었고 결국은 삭제되었다. (지원되던 시절에도 720p 디스플레이에서는 1.5배 742p가 아닌 2배 1056p, 1080p 이용자는 2.5배 1320p가 아닌 3배 1584p를 사용하는 것이 공식적인 권고사항이었다.) 커스텀 빌드는 아직까지 지원하지만 BUG라고 표시되어있어 불안정 할수 있다.[19] 이들 기능들은 생각보다 무겁다. 내부 해상도를 높여 다운샘플링을 하는 편이 이득일 수도 있다.[20] "Forced 16:9"와 streched window로 설정후 Widescreen Hack을 활성화해야 한다.[21] PCSX2는 글로벌한 와이드스크린 핵은 없고, 아예 와이드스크린 치트 라이브러리를 통째로 에뮬레이터에 동봉해 배포한다... 사용자 입장에선 편리하긴 하다.[22] N64 에뮬레이터들과 PSP 에뮬레이터 중 PPSSPP가 동일한 기능을 제공하며, 다른 비슷한 기능으로 PCSX2는 텍스쳐에 바이리니어 필터링을 강제로 가하는 기능, PPSSPP는 xBRZ 필터링을 가하는 기능이 있다. Ishiiruka Dolphin도 텍스쳐 필터링을 지원한다.[23] 정반대로, 몇몇 게임은 저사양 기기에서의 구동을 쉽게 해 주는 30fps 패치가 있다. 마리오 카트 Wii의 경우, 1~2인 플레이 60fps, 3~4인 플레이 30fps 모드가 되는데, 이를 30fps 모드로 강제하면 싱글 플레이에서 더 높은 속도를 얻을 수 있다.[24] 3.0 버전대에서 지원하다 삭제 후 2019년에서야 새롭게 부활한 모션플러스 에뮬레이션, 5.0 버전 초기에 지원하다가 삭제 후 완전히 새로운 코드로 다시 돌아온 DX12 백엔드 같은 사례도 있다.[25] 적절한 세팅을 맞춰야 하며 안그러면 기본 빌드와 다를게 없다.