RPCS3
1. 개요
2011년 5월에 개발 착수하여 2012년 6월부터 일반 공개된 C++ 기반의 플레이스테이션 3 오픈소스 에뮬레이터.
2. 상세
RPCS3는 2011년 5월에 최초 개발자 DH에 의해 만들어졌으며 동년 9월에 최초의 홈브류 구동에 성공 후 이듬해 6월 구글 코드에서 일반에 첫 공개되었다. 이후 2014년에 이르러 마침내 일부 상용 게임에서 2D 그래픽과 음성을 출력하는 데 성공했다.
현재는 최초 개발자인 DH는 탈퇴하고 프로젝트 리더는 2013년 합류한 코어 개발자인 Nekotekina가 맡고 있으며 그래픽 개발자인 kd-11와 함께 둘을 중심으로, 다수의 개발자들이 기여하고 있는 상태다. 2017년 Patreon에서 후원을 받기 시작해 Nekotekina와 kd-11이 풀 타임으로 RPCS3 개발에 뛰어들며 개발이 급속도로 빨라졌고 그 해 플레이 가능한 게임의 수가 급격히 늘어 불과 1년만에 20여 개에서 600여 개로 늘었다.
2017년 9월 중순 3000달러 모금을 달성해 Nekotekina에 이어 kd-11이 풀 타임으로 참여하게 되었다. 그리고 매달 블로그에 발표되는 진행 보고서 9월호에 따르면 "특정 사건으로 인한 많은 언론 노출 덕분에" 초과달성했다고 한다. 특정 사건이란 말할 것도 없이 아래의 ATLUS의 저작권 분쟁 건.
잘 알려지지 않은 사실이지만, RPCS3는 한때 PS Vita 지원을 고려했다. 2013년부터 비타 에뮬레이션 기능을 추가해 간단한 코드가 실행되는 수준까지 개발되었지만 장기간 방치되었다가 본격적인 비타 에뮬레이터인 Vita3K가 출범한 뒤인 2018년 2월에 완전히 삭제되었다.
3. 주요 업데이트
2017년 12월 2일 업데이트로 갓 오브 워 3, 언차티드 시리즈, 라쳇 앤 클랭크 시리즈, 인퍼머스를 포함한 여러 독점 AAA 게임들이 일제히 인게임 진입이 가능해졌고, 다른 수많은 게임들의 호환성이 개선되었다. 업데이트의 내용과 영향을 받은 것으로 확인된 일부 게임들의 목록은 블로그 참조.#
2018년 5월 SPU ASMJIT 최적화 업데이트로 SPU를 많이 사용하는 게임들[2] 의 속도가 대폭 빨라졌다. 실기에서 프레임 드롭이 심했던 데몬즈 소울이나,[3] RPCS3로 60FPS 모드 사용이 가능한[4] 페르소나 5의 경우 고성능 CPU에서 PS3 실기를 상회하는 프레임레이트를 보여준다. 물론 셰이더 컴파일링은 제외.[5]
2018년 6월 SPU LLVM이 추가되었다. 초기 단계로 불안정해 구동 가능한 타이틀은 극히 적지만 해당 타이틀들에서는 눈에 띄는 속도 향상이 이루어졌다. 일단 아직은 ASMJIT가 권장 옵션이다.
2018년 7월 비동기적 셰이더 컴파일링 지원이 추가되었다. Dolphin이 얼마 전에 추가했던 기능으로, 필요한 셰이더가 컴파일되기를 기다리지 않고 그냥 렌더링하는 옵션이다. 새로운 텍스쳐가 로드될 때마다 스터터링 대신 해당 텍스쳐에 순간적으로 깜빡임이 발생하게 된다.[6] 쾌적한 게임플레이에 많은 도움이 된다.
2018년 8월 RSX(PS3의 GPU) 에뮬레이션 최적화로 RSX 부담이 심한 상황에서의 프레임레이트가 크게 개선되었다. 주로 AAA급 게임들이 큰 이득을 보았으며 상황에 따라서는 100%에 달하는 향상이 이루어지기도 했다. 레드 데드 리뎀션, 갓 오브 워 3, 언차티드 등 일부 AAA급 게임은 고정 30FPS는 아니지만 플레이 가능한 속도에 이르렀다.
# 2019년 2월 갓 오브 워 3 등의 여러 게임에서 속도가 개선되었다. 기존에는 LLVM 사용시 속도를 크게 희생해서 정확성을 얻는 "Accurate Xfloat" 옵션이 필요했지만, xfloat를 근사하게 처리하는 업데이트로 많은 게임이 해당 옵션 없이도 정상 작동하게 되었다.
# 같은 달 TSX 미지원 CPU들의[7] 퍼포먼스를 크게 개선하는 업데이트가 이루어졌다.
2019년 7월 vblank 오버라이드 기능을 통해 많은 게임의 프레임레이트를 올릴 수 있게 되었다.# PS3 게임들 중 상당수는 기기의 vblank에 맞춰서 프레임을 업데이트하기 때문에 vblank를 기본값인 60Hz에서 120Hz로 올리면 프레임레이트가 두 배가 되는 식으로 변한다. 물론 핵 기능이므로 vblank를 건드리면 게임플레이 자체의 속도가 변하거나, 게임 시스템이 망가지거나, 혹은 vblank를 완전히 무시하는 게임들도 많이 있다.
불과 1~2년 전만 해도 30FPS 고정을 달성할 수 없던 게임들이 고정 60FPS로 작동하는 영상이 나오며 RPCS3가 그 사이에 얼마나 빨라졌는지를 보여주고 있다.
페르소나 5의 고정 60FPS 게임플레이
Nier의 고정 60FPS 게임플레이
데몬즈 소울의 가변 120FPS 게임플레이
2019년 8월 MSAA를 지원하기 시작했다.# PC용 GPU에서는 MSAA 기능이 추상화되어 있어 관련 변수들에 함부로 접근할 수 없는 관계로 우회적인 방법을 사용했다고 하며, 해당 방법의 한계로 인해 NVIDIA GPU에서는 AMD GPU에 비해 최대 5배까지 느리게 작동할 수 있다고 한다. MSAA는 CPU 부담이 상당한 기능이고, 내부 해상도에 비례해서 CPU 부담도 늘어나므로 적당히 조절할 필요가 있다.
동월 메탈기어 솔리드 4의 게임플레이 진입이 가능해졌다.# vblank 조작으로 30FPS 제한을 우회 가능한 것으로 확인되었다. 아직까지는 그래픽 버그가 심하며, 프레임레이트 또한 고정 30FPS도 달성하지 못할 정도로 낮다.
여담으로 호환성 리스트에서 GTA 5 구세대판이 인게임 진입이 일단 가능하다는 게 확인되었다. 하지만 실기로 돌리는 것만큼 제대로 돌아가지 않으므로 그냥 PC버전 사서 하는 게 낫다.
3.1. 최소 및 권장 사양
공식 홈페이지 출처
PS3 시스템 업데이트 파일 "PS3UPDAT.PUP"이 필요하며, 플레이스테이션 홈페이지에서 다운로드 가능하다. 한국어 펌웨어가 필요하면 여기에서 다운로드할 수 있다.
RPCS3는 아직 '''알파''' 상태의 프로그램으로, 대부분의 게임이 버그 혹은 심각하게 느린 속도로 인해 플레이 불가능하다. 향후 업데이트로 퍼포먼스는 크게 개선될 예정이며,[14] 개발자들은 에뮬레이터가 충분히 완성되면 위의 권장사양 정도의 CPU로 대부분 플레이 가능하리라고 기대하고 있다. 현재로써 보장은 없다.
PS3은 1개의 PPE와 7개의 SPE로 구성된[15][16] 당시 기준으로 고성능의 CELL-Broadband Engine CPU와Reality Synthesizer(RSX)라는 이름의 GPU를 탑재한 콘솔로, RPCS3는 이들 각각을 하나의 스레드로 처리해 주로 8개의 스레드에 의존한다.[17] 따라서 옥타 코어 이상의 CPU가 이상적이며, AMD의 라이젠은 TSX 명령어 미지원으로 인해 코어 수가 아무리 많아도 쿼드 코어 i7(-7700K)에도 못 미치는 성능을 발휘한다. 절대 성능만 따지면 2019년 시점에서 가장 높은 게이밍 성능을 보여주는 i9-9900K가 가장 좋지만, 50만원이 넘는 i9을 구하기가 부담스럽다면 30만원대 후반에 구할 수 있는 i7-9700이 그나마 최선의 선택이다.
단, 어느 에뮬레이터나 그렇듯 에뮬레이트할 게임에 따라 실질적인 CPU 요구사항은 천차만별인데 PS3의 막강한 SPE를 잘 활용한 게임들일수록[18] 요구 사양은 높아진다. 단순한 게임이라면 권장 사양에 한참 미달하는 CPU로도 돌아갈 수도 있다.[19]
RPCS3는 Vulkan과 OpenGL 4.3 그래픽 라이브러리를 지원하는데 권장 옵션은 Vulkan이므로[20] Vulkan을 지원하는 AMD 혹은 NVIDIA 카드가 권장된다. Intel 내장 그래픽은 성능이 너무 낮고 드라이버 업데이트를 신뢰하기 어려워 권장되지 않는다. GPU는 에뮬레이션으로 인한 오버헤드가 그리 크지 않은 부품인 관계로 Vulkan을 지원하는 외장 GPU라면 해상도를 비상식적으로[21] 높이지 않는 한 성능은 거의 틀림없이 만족한다.
RAM은 셰이더 캐시의 용량에 따라 많이 필요할 수도 있다. 게임에 따라 다르지만 개발자들은 셰이더 컴파일러가 충분히 완성되면 대부분의 게임은 8GB 이내에 충분히 들어갈 것으로 보고 있다.
3.2. 지원 기능
- 언패킹된 롬 파일을 실행하거나 pkg 파일을 설치 및 실행 가능.
BD 드라이브를 통한 디스크 직접 실행은 지원하지 않는다.
- 그래픽 강화 기능
2017년 10월 8일 첫 그래픽 강화 기능인 고해상도 렌더링과 비등방성 필터링이 발표되었다. 개발자들은 발표에서 향후 텍스쳐 스케일링과 같은 더 많은 그래픽 강화 기능을 제공할 것임을 밝혔다.
- 고해상도 렌더링
2017년 10월 8일 고해상도 렌더링 지원이 발표되었다. 옵션의 GPU 탭에서 Resolution과 Resolution Scale 기능을 통해 조절할 수 있다. 여느 에뮬레이터처럼, RPCS3는 GPU 부담이 그리 심하지 않으니 쉽게 해상도를 높일 수 있다.[22] 단, 이는 "핵"이므로 게임에 따라 부작용이 발생할 수 있음을 유의해야 한다.[23]
Resolution은 에뮬레이트된 PS3 기기의 시스템 해상도를 변경하는 설정이다. 대부분의 PS3 게임은 720p를 기준으로 설계되므로[24] 1280x720으로 맞춰놓는 게 권장된다.
Resolution Scale은 720p를 기준으로 RPCS3의 렌더링 해상도를 높이거나 낮추는 비율이다. 이 옵션을 100% 이외로 설정시 "Resolution" 옵션은 무시된다.
Resolution은 에뮬레이트된 PS3 기기의 시스템 해상도를 변경하는 설정이다. 대부분의 PS3 게임은 720p를 기준으로 설계되므로[24] 1280x720으로 맞춰놓는 게 권장된다.
Resolution Scale은 720p를 기준으로 RPCS3의 렌더링 해상도를 높이거나 낮추는 비율이다. 이 옵션을 100% 이외로 설정시 "Resolution" 옵션은 무시된다.
고해상도 렌더링과 같이 발표되었다. 게임의 본래 비등방성 필터링 설정을 오버라이드할 수 있다. 성능에 거의 타격을 주지 않으므로 부담 없이 높일 수 있다. 단, 이는 "핵"이므로 게임에 따라 부작용이 발생할 수 있음을 유의해야 한다.[25]
CPU에게 부담이 심한 기능. 특히 NVIDIA GPU를 사용할 때 부담이 심하다. 안티 에일리어싱 효과를 얻고 싶다면 MSAA를 끄고 렌더링 해상도를 높이는 편이 저렴하다. MSAA의 CPU 부담은 해상도에 비례해서 올라가기 때문.
단, 일부 게임은 MSAA를 꺼버리면 그래픽 버그가 생기니 주의.
단, 일부 게임은 MSAA를 꺼버리면 그래픽 버그가 생기니 주의.
- 프레임레이트 패치
RPCS3는 PS3에서 수직 동기화에 사용되는 vblank 신호의 빈도를 본래의 60Hz에서 정수배로 올리는 기능을 지원한다. vblank 빈도를 120Hz로 올리는 것 만으로도 30FPS로 작동하던 게임 중 상당수가 아무 문제 없이 60FPS로 작동하게 된다.
반면 vblank를 게임 시스템에 연결시켜놓은 게임들은 vblank를 건드리는 즉시 게임플레이가 망가지는데, 일부 게임들의 경우 이를 해결하는 패치가 만들어져 있다. 패치를 통해 60FPS로 작동하는 게임들에는 킹덤 하츠 HD 리믹스,[26] 페르소나 5, 니어, 데몬즈 소울 등이 있다.
반면 vblank를 게임 시스템에 연결시켜놓은 게임들은 vblank를 건드리는 즉시 게임플레이가 망가지는데, 일부 게임들의 경우 이를 해결하는 패치가 만들어져 있다. 패치를 통해 60FPS로 작동하는 게임들에는 킹덤 하츠 HD 리믹스,[26] 페르소나 5, 니어, 데몬즈 소울 등이 있다.
3.3. ATLUS와의 저작권 분쟁
2017년 9월 말, RPCS3 홈페이지에서 페르소나 5에 관한 모든 정보가 삭제되는 일이 벌어졌는데, 알려진 경위는 아래와 같다.
최초에, 페르소나의 제작사 ATLUS에서 Patreon측에 저작권 위반을 이유로 RPCS3의 개발자 Nekotekina와 kd-11의 후원 페이지의 삭제를 요구하였다. 해당 요구의 근거는 아래와 같다.
PS3 에뮬레이터의 제작 자체는 자사의 저작권을 침해하는 행위가 아니지만 페르소나 5는 해당 플랫폼(Windows)에서 플레이할 수 없도록 되어 있으며, (RPCS3의) 개발자들은 그런 행위를 가능케 함으로써 자사의 지적 재산권을 침해하고 있다는 것이다.
Patreon은 해당 후원 페이지 자체가 특별히 ATLUS의 저작권을 침해하는 것이 아니므로 페이지의 삭제는 부적절하다는 이유로 요구를 거부하고 개발자들에게 연락을 취해 홈페이지에서 페르소나 5에 관한 모든 내용을 삭제할 것을 권고했으며,[27] 개발자들은 그에 따랐다.[28]
이에 ATLUS는 요구를 재청하며 다음과 같은 근거를 들었다.
이 글과 함께 ATLUS는 RPCS3 블로그에 있던 (지금은 삭제된) PS3 디스크의 리핑 방법에 대한 설명문을 링크해 놓았다. 해당 글의 내용 중 페르소나 5의 디스크의 리핑 방법에 대한 대목은[30] 아래와 같다.
이에 개발자들은 자신들의 일은 법적 테두리 내에서만 이루어지고 있다고 믿으며, 변화 없이 RPCS3 개발을 진행해 나갈 것이라고 밝혔다.
ATLUS의 이와 같은 요구는 이전의 에뮬레이터 관련 법적 분쟁과는 전혀 다른 쟁점을 두고 있는데, 이전 Bleem!과 SCE(현 SIE) 사이의 법적 분쟁은 콘솔 하드웨어에 대한 권리를 놓고 '''콘솔 제작사'''가 제기한 분쟁이었던 반면 이번 ATLUS의 DMCA는 에뮬레이터가 '''소프트웨어'''에 대한 '''DRM 위반'''을 저지르고 있다는, 이전에 제기된 바 없는 새로운 주장이다.
ATLUS는 홈페이지에 글을 올리며 에뮬레이터를 통한 게임의 구동은 불법적이며, 자신들이 의도했던 게임플레이 경험과 품질을 전달하지 못한다는 입장을 밝혔다. 링크
이 사건 뒤로 페르소나 5가 PC로 출시될 지 모른다는 루머가 생겨났다. ATLUS의 성명문 중 "많은 페르소나 팬들이 PC 버전을 원한다는 것을 알고 있습니다. 지금 발표할 내용은 없지만 저희는 듣고 있습니다!"라는 대목이 있었기 때문. 더군다나 성명문의 요지는 "RPCS3를 통한 게임의 구동은 프레임 드롭과 크래쉬로 점철된 바람직하지 못한 게임플레이 경험"이라며 에뮬레이터를 까는 내용이고, RPCS3 측이 페르소나 5와 관련된 홍보를 중단하자 더이상의 공격 없이 문제를 조용히 덮어버린 것도 전부 RPCS3가 유명세를 타는 걸 막으려고 한다는 인상을 주기도 했다. 하지만 정작 페르소나 5는 페르소나 5 더 로열이라는 확장판 발매까지 발표되었느나 pc판 출시 이야기는 지금까지 나오지 않고 있다가 2020년이 되어서야 페르소나 4 더 골든을 스팀으로 출시했다.
한편 RPCS3는 이 사건으로 언론을 타면서 기부금이 제법 많이 모였다고 한다.
4. 한계
PS3는 태생적으로 CPU의 구조가 접근이 어렵게 되어 있는 특이한 구조를 가지고 있고, 다양한 코드를 가지고 있는 다양한 소프트가 존재한다. 따라서 한가지 설정으로 모든 소프트를 구동하는 것은 불가능하며 기존에 지원되던 게임이 버전업 이후 플레이가 불가능하게 되는 일도 발생할 수 있다. 또한 컴퓨터 성능에 따라 구동 가능 여부가 달라질 수 있다.
5. 버전 역사
※ RPCS3는 개발 초기의 에뮬레이터인 관계로 모든 빌드는 알파 버전이며, Dolphin, PCSX2 등과는 달리 '''안정 버전이 없다.''' 에뮬레이터를 다운로드할 때는 특별한 이유가 없는 한 언제나 '''최신 빌드를 다운로드'''할 것이 권장된다.
아래의 빌드들은 개발자들이 에뮬레이터가 어느 정도 발전했다고 판단할 때마다 마일스톤의 의미로 번호를 새롭게 올려 내놓은 버전들과 그 날짜다. (사용자가 특별히 이들 버전들을 이용할 이유는 없다.) 2017년 들어 거시적인 개발 속도가 빨라진 만큼 버전 숫자도 여러 차례 올라갔다.
- 0.0.0.2 (2012년 6월)
- 0.0.0.4 (2013년 8월)
- 0.0.0.5 (2014년 6월)
- 0.0.0.6 (2015년 10월)
- 0.0.0.9 (2016년 4월)
- 0.0.1 (2017년 2월)
- 0.0.2 (2017년 3월)
- 0.0.3 (2017년 7월)
- 0.0.4 (2017년 10월)
- 0.0.5 (2018년 2월)
- 0.0.6 (2019년 1월)
- 0.0.7 (2019년 8월)
- 0.0.8 (2019년 12월)
- 0.0.9 (2020년 3월)
- 0.0.10 (2020년 6월)
- 0.0.11 (2020년 7월)
- 0.0.12 (2020년 10월)
- 0.0.13 (2020년 11월)
- 0.0.14 (2020년 12월)
6. 호환성 리스트
홈페이지 참고
[1] 홈페이지의 블로그 등에서 "[redacted\]"라는 문구는 "Persona 5"라는 이름이 검열된 흔적이다. "ATLUS와의 저작권 분쟁" 문단 참조.[2] ~= 예전에 느렸던 게임들[3] 이후 2019년 30FPS 제한을 해제하는 패치가 등장하며 실기보다 압도적으로 쾌적한 플레이가 가능해졌다.[4] 모드가 등장했을 당시만 해도 일부 구간에서 30FPS 언저리로 떨어지며 60FPS 고정은 절대 불가능했지만 2019년에는 고성능의 CPU에서 60FPS 고정이 충분히 가능해졌다.#[5] 동년 7월 업데이트로 셰이더 컴파일링으로 인한 스터터링마저 없앨 수 있게 되었다.[6] CPU의 코어 수가 넉넉지 못하다면 컴파일링 때문에 일시적인 프레임 드롭이 일어날 수도 있다. 코어 수가 충분히 많은 CPU는 이 문제에서 자유롭다.[7] AMD CPU 및 인텔 6세대 이전 CPU (브로드웰 일부 지원), 그리고 6세대 이후라도 데스크탑 i3와 i5 하위 라인업에선 지원하지 않는 경우가 있다. (8400, 9400f 등)[8] 본래 데스크탑용 4세대 i5-45xx 이상부터 지원했으나 버그 때문에 실리콘 레벨의 패치로 비활성화되어서 현재 인텔 공식 홈페이지에서는 데스크탑용 5세대 i5-55xx 이상부터 지원한다. 하지만 데스크탑용 브로드웰 기반 CPU들은 물량이 별로 없고 가성비가 매우 나빴던 제품이었기 때문에 일반 사용자들에게는 사실상 스카이레이크 기반 CPU부터로 보면 된다.[9] 현세대 기준으로 4코어 이하 CPU는 내장 그래픽이 있는 APU 제품군에서만 주로 볼 수 있고, 내장 그래픽이 없는 CPU는 6코어 이상이며, 6코어가 주력이다.[10] NVIDIA는 페르미 마이크로아키텍처 이후 기반의 지포스 그래픽 카드, AMD는 TeraScale 2 이후 기반의 라데온 그래픽 카드[11] GCN 마이크로아키텍처 이후 기반의 라데온 그래픽 카드[12] 케플러 마이크로아키텍처 이후 기반의 지포스 그래픽 카드[13] Windows는 Visual C++ 2017 재배포 패키지와 DirectX End-User Runtime이 필요하다.[14] 현재까지 꾸준히 업데이트가 이루어져 왔다.[15] 본래 SPE가 8개였으나 수율 문제로 1개가 비활성화된 컷칩 구성이다.[16] PS3 실기 기준으로, SPE 7개 중에서도 1개는 OS용에 할당되어서 게임용으로 사용 가능한 SPE는 사실상 최대 6개이다. (그래픽 처리용 5개 + 사운드 처리용 1개)[17] 다른 자잘한 기능 여럿이 별개의 스레드로 작동하지만 큰 차이는 없다.[18] 주로 AAA급 게임들[19] RPCS3는 Dolphin, PCSX2와는 달리 고레벨 에뮬레이션을 하기 때문에 그런 경향이 더하다.[20] Vulkan은 저레벨 API인 특성상 에뮬레이터에서 CPU의 부하를 크게 줄여줄 수 있다.[21] 2018년 메인스트림급 GPU라면 4K는 무리 없다.[22] MSAA는 CPU에 큰 부담을 주는 기능이므로 안티 에일리어싱을 원한다면 렌더링 해상도를 높이는 편이 저렴하다.[23] 가령, 페르소나 5에서 캐릭터 포트레이트가 깨지는 현상이 일어나거나,(이는 Combined Bustups 모드로 해소 가능) 게임에 따라서는 후처리 과정 때문에 고해상도 렌더링이 전혀 먹히지 않기도 한다.[24] 1080p 지원을 표기하는 게임도 네이티브 1920x1080 해상도로 작동하는 경우는 많지 않다.[25] 가령, 니노쿠니에서 UI 그래픽이 망가지는 현상이 일어난다.[26] 일부 버그가 생긴다.[27] 2017년 들어 에뮬레이터는 최신 게임인 페르소나 5를 비교적 중대한 버그 없이 (프레임 드롭은 빈번하지만) 구동할 수 있는 상태였고, 그 점을 홍보 포인트로 내세웠다.[28] Kotaku[29] Polygon[30] 다른 방법도 소개되어 있지만, 해당 방법은 페르소나 5의 리핑에는 사용할 수 없다.