공식 홈페이지 |
플레이 스토어 다운로드 페이지 |
1. 개요
Playstation Portable Simulator Suitable for Playing PortablyPSP 에뮬레이터. PSP 에뮬레이터로 유명한 JPCSP의 약점인 Java 대신 C++로 개발 중이며, 오픈 소스이다.
2. 특징
윈도우, 리눅스, OS X 뿐만 아니라 안드로이드, iOS[1] , 블랙베리도 지원한다. 즉, 다양한 스마트폰에서 플레이가 가능하다는 말. 콘솔 중 Wii U 및 스위치로도 홈브루로 이식되어 있다.Dolphin의 전 개발자가 만드는 에뮬레이터라는 점에서 일단 신뢰가 가능하다.
JPCSP와의 가장 큰 차이점은 역시 속도. 웬만한 PC에서는 비등방성필터링 16배와 풀해상도로 게임하는 것이 얼마든지 가능하다.
지원하는 기능
- 고해상도 렌더링. OpenGL, DirectX, Vulkan 플러그인을 통해 PSP의 네이티브 해상도(480x272)의 정수배로 렌더링한 후 화면 크기에 맞춰 출력한다. 기본 설정은 GPU의 지원 여부에 따라 Vulkan, OpenGL, DX11 순이다. OpenGL은 가장 오래됐고 안정적인 플러그인이며, 나중에 추가된 DirectX는 GPU에 따라 더 빠를 수도 있다. Vulkan은 상당히 빠르지만 1.5.3 버전 기준 최신 기능이라 버그가 제법 있다.하지만 OpenGL의 속도 업뎃으로 차이가 크진 않다.[2] 화면 출력의 위치와 크기, 영상 확대/축소시 샘플링 방식은 설정에서 변경 가능하다. 다운샘플링은 "버퍼드 렌더링"에서만 사용 가능하다. GPU 부담이 심한 기능이지만, 병목이 되는 쪽은 십중팔구 CPU기 때문에 별 걱정 없이 고해상도를 이용할 수 있다.
- 커스텀 텍스처. 2016년에 처음 도입된 기능이다. 이미 포럼에서는 페르소나 3 등의 몇몇 HD 텍스처 팩이 작업 중이고, 다운로드할 수 있다.
- 텍스처 스케일링. xBRZ 등의 필터를 텍스처에 적용해 선명하게 볼 수 있다. CPU 부담이 심한 기능. 처음에는 이 과정에서 텍스처를 불러오는 시간이 길어지면 그대로 랙이 걸리는 구조였지만 언젠가부터 시간 내로 처리하지 못한 텍스처는 일단 원본 화질로 사용한 뒤 천천히 처리하도록 바뀌었다. 특히, 2D 그래픽이 많은 게임의 경우 최선의 화질을 얻고 싶다면 디스플레이 해상도 이상으로 필터링을 가해야 하는데, 이렇게 되면 CPU 부담이 은근히 크다. 완전히 도트 게임이라면 후처리 셰이더를 이용하는 편이 낫다.
- 게임에 따라 프레임레이트를 높일 수 있다. 게임에 따라서는(주로 프레임 동기화를 걸어 놓은 게임) PSP의 CPU 클럭을 높이면 프레임레이트가 변하는 경우도 있다. 에뮬레이터 자체의 기능은 아니지만, 일부 게임은 에뮬레이터의 우월한 성능을 활용해 60fps로 구동할 수 있는 치트 코드가 있다. 다른 콘솔에도 이런 치트 코드는 제법 있지만 PSP는 가변 프레임레이트로 설계된 게임이 많은 덕에 아무 부작용 없이 원활하게 작동하는 코드들이 상당히 많다.
- 후처리 셰이더. FXAA같은 효과를 걸어 줄 수 있다. PPSSPP는 MSAA를 지원하지 않기 때문에 슈퍼샘플링을 사용하기가 힘들다면 FXAA에 의존할 수밖에 없다. GPU 제어판에서 강제로 걸어 줄 수는 있지만 그나마도 "버퍼 효과 생략" 설정에서만 먹힌다고 한다. 해당 설정은 호환성을 상당 부분 깎아먹는 대신 퍼포먼스를 눈에 띄게 향상시켜 주는 비권장 핵이다.
PPSSPP는 Playstation Portable Simulator Suited for Playing Portably라는 취지에 따라 개발 초기부터 윈도우뿐만이 아닌 리눅스, 안드로이드로도 동시 개발되고 있는데 기본적으로 동일한 성능을 가진다. 이 외에 비공식적으로 iOS에도 출시되어 있다. 스마트폰의 사양이 계속 높아져 가는 관계로 꽤 높은 확률로 게임을 쾌적하게 할 수 있다. 갤럭시 S8 스냅드래곤 모델은 Dolphin을 돌릴 수 있다. 게임별 요구 사양은 천차만별. 철권 5, 크라이시스 코어 파이널 판타지 7, 페르소나 3 등은 DeSmuME 게임 못지 않게 가볍지만 철권 6, 갓 오브 워 시리즈 등은 몇몇 Dolphin 게임보다도 무겁다. 구동이 어렵다면 PC로 시도해 보도록 하자.
구동 성능도 상당히 뛰어나지만 각종 그래픽 요소가 로드되는 과정을 볼 수 있거나 명령어가 아닌 데이터를 얻기 위한 메모리 접근에도 브레이크 포인트를 만들 수 있는 등 디버깅 기능도 부족하지 않다.
PSPKVM라는 플러그인을 쓰면 PPSSPP 내에서 자바로 개발된 게임을 실행할 수 있다.
컨트롤러의 버튼을 하나만 눌러도 PSP버튼 두 개 이상이 동시에 눌리는 것으로 인식되도록 설정하는 것도 가능하다. 예를 들어 디시디아 듀오데심 파이널 판타지의 구르기 회피(PSP의 R+X버튼)를 엑스박스 패드의 RT버튼 하나를 누르는 것만으로 발동하게끔 설정하고 싶다면, 컨트롤러 키 매핑에서 R버튼에 해당하는 키에 RT를, 그리고 X버튼에 해당하는 키에도 RT를 중복 세팅하자. 그러면 엑스박스 패드의 RT버튼을 눌렀을 때 PSP의 R과 X가 동시에 눌린 것으로 인식이 되어, 원 버튼 구르기가 가능해진다.[3] 게임 일시정지 중에 게임 설정파일 생성을 활성화하면, 게임 설정을 통해 이 키 매핑을 각 게임마다 전부 따로 지정해 줄 수 있다.
3. 버전별 특징
2012년 11월 2일에 거의 처음으로 공개되었으며 0.2 버전으로 나왔다. 영상에서 시험구동한 게임은 울트라 퍼즐버블 포켓이다. # 구동 영상[4]2013년 1월 27일 0.6.0 버전이 릴리즈되었다. ARM 기반 버전(당연히 안드로이드가 포함된다.)에서 JIT 컴파일러를 지원하게 되어 놀라울 정도로 빨라진 에뮬레이팅 속도를 자랑하게 되었다. 단 아직 퀄컴 스냅드래곤 SoC는 버그 때문에 해당 SoC를 탑재한 기기에서는 JIT 컴파일러를 지원하지 않았지만.. 바로 2일 후인 29일에 0.6.1 버전이 릴리즈되면서 JIT 컴파일러에 관한 스냅드래곤 SoC에서의 버그를 수정하여 거의 대부분의 ARM 기반 기기들이 JIT 컴파일러를 사용할 수 있게 되었다.
2013년 3월 11일에 0.7.0 버전이 릴리즈되었다. 최적화와 호환성이 나아졌다고 한다.
에뮬레이터 구현에서 가장 난관은 동영상(H.264)과 ATRAC3+ 디코더(음원)였다. ATRAC3+ 디코더는 법정 분쟁까지의 위험도 있을 수 있다고 했는데 0.7.6-1025 베타버전부터 동영상과 BGM 문제가 거의 해결되었다. 단 몇몇 게임은 BGM이 들리지 않는 경우도 있다. JPCSP 쪽에서는 여러 디코더가 등장했으나, PPSSPP 쪽에서는 JPCSP에서 제시된 ATRAC3+ 포맷 우회재생방법을 적용하는 방안에 대해서는 고려하고 있지 않다고 한다. 주된 이유가 DLL 파일을 이용하는 방법은 윈도 머신에서만 사용가능한데 반해 PPSSPP는 모든 기기에서 사용 가능한 범용성을 목적으로 하고 있기 때문이다. 따라서 JPCSP에서 사용한 방법은 PPSSPP에서 사용이 불가능하다. 그래서 PPSSPP는 한동안 자체 구현한 ATRAC3+ 디코더로 이 문제를 해결하였다가 결국 0.9.5 버전을 기점으로 리버스 엔지니어링에 성공해 ATRAC3+ 디코더가 필요 없게 되었다.
그 외로 플레이스토어에 올라오는 것이 아닌 홈페이지에 직접 올라오는 베타버전이 있는데 4월 20일자로 설정 언어 중 한국어가 추가되었으며 처음에는 설정을 해도 글자가 깨졌지만 이후 버전에서 완전하게 한국어로 설정을 할 수 있게 되었다. 롬파일을 찾을 때 쓰는 에뮬레이터 내장 탐색기에서는 여전히 한국어가 일부 깨져 보인다. 다만 동작에 지장은 없다.
2013년 6월 8일, 0.7.6-1448 버전부터 64비트 OS(윈도우 한정)를 지원한다.
스마트폰판은 터치 패널에 반투명한 키를 띄워서 이를 터치하는 식으로 조작하게 되는데, 이게 방향키에서 조금만 벗어나도 바로 대각선으로 이동하는 것으로 인식해 버린다. 뿌요뿌요같은 퍼즐 게임이나 다른 액션 게임처럼 방향 조작이 중요한 게임 플레이시에는 상당한 혈압 유발의 원인이 되므로 주의.[5] 다행히도 엑스페리아 플레이나 NVIDIA SHIELD Portable같은 패드가 달린 기기라든가, 그 외에 안드로이드 기기에 연결할 수 있는 게임패드를 지원한다. 하지만 엑스페리아 플레이는 기기 성능이 딸려서 PPSSPP로 PSP 게임을 하는 것은 정신건강에 좋지 않다. 지금은 어느정도 괜찮은 듯하다.(참고)
2014년 12월 25일 현재 최신 버전은 0.9.9.1 안드로이드 버전의 경우 광고가 추가. 0.9.5 버전은 설치 경로에 한글로 된 폴더가 존재하면 치트 및 스크린샷 저장 기능이 작동하지 않았다.
0.9.8 버전부터 VNR로 일부 게임은 텍스트 후킹이 가능하다.
수시로 업데이트되는 베타 버전은 여기서 받을 수 있다.
PSP 자체의 사양이 낮고 모바일과 PC 모두 개발하다 보니 좋은 최적화로 인해 7년 된 PC로도 철권 6를 풀프레임으로 플레이 가능할 만큼 최적화가 잘 되어 있다. 내장 그래픽 유저도 일정 수준의 AA와 랜더링 효과를 넣어도 프레임 드랍이 잘 발생하지 않는다.
2015년 2월 1일 대망의 1.0 버전이 나왔다.이 버전부터 게임별로 옵션 설정이 가능해졌다. 다만 1.xx대 버전에서 멀티 플레이 시 채널에 빈 자리가 있음에도 불구 하고 풀방 메시지가 출력 되며 접속이 불가능한 버그가 있으니 참고 하도록 하자.
2015년 2월 26일 1.0.1 버전이 나왔다. 스테이트 세이브 손상 스크롤과 함께 포함된 1.0버전과 기타 버그를 수정하였다. v0.9.5-959-g4998044 로 인한 PowerVR 장치 호환성이 개선되었다.
2015년 10월 4일 1.1 버전이 나왔다. 안드로이드에 ARM64 지원 및 기타 최적화를 하였다. GPU 에뮬레이션이 수정, sceAtrac 음악 호환성, SaveData 관리를 위한 UI 호환성 등이 개선되었다.
2015년 10월 12일 1.1.1 버전이 나왔다. 1.1.0 버전의 충돌 버그를 수정하였다. 갤럭시S6로 페르소나와 같은 게임등을 기동할 때의 ARM64 충돌을 고쳤다. 스테이트 세이브를 로드할 때 충돌을 수정하였다. 1.1 버전까지의 네트워크 풀방 관련 버그가 수정 되었다.
2016년 2월 14일에 1.2.0 버전이 나왔다. 일정 시간동안 사용하지 않을 시 터치 조작부가 숨겨지는 기능과, 몇 개의 키를 동시에 누를 수 있게 하는 콤보 키 기능 등이 추가되었다. 그 외에도 오디오 리버브 기능과 각 게임별 볼륨 조정이 가능하게 되었고, UI 부분이 일부 변경되었다. 그러나 안드로이드 버전은 패치 이후 일부 게임에서의 프레임 드랍, 실행 자체가 안되는 문제로 인해 유저들의 불만이 폭발하고 있다.
2016년 2월 17일에 1.2.1 버전이 나왔다. 안드로이드 기기에서 앱 전환 시 충돌 현상이 발생하던 것을 수정했다. 그리고 중국어와 한국어 폰트를 업데이트 하면서, 해당 언어에서 일부 보이지 않던 문자가 보이게 되었다. 다만, 완전히 보이는 것은 아니고, 일부 글자는 아직도 안 보인다. 아직 안드로이드 버전의 프레임 드랍 문제는 해결되지 않았다.
2016년 3월 19일에 1.2.2 버전이 나왔다. 안드로이드 기기에서의 그래픽 처리 방식을 기존 방식으로 되돌렸다. 이 외에도 버텍스 캐시 처리 성능 향상과 같은 그래픽 문제 수정과, ISO 파일 처리 속도 향상이 이루어졌다.
2016년 9월 17일에 1.3.0 버전이 나왔다. 게임 영상의 녹화 기능과 TAS 기능이 추가되었다. 그리고 앱 전환 시에 일어나는 문제들의 수정과, 갤럭시 S7과 iOS 9버전 이상의 기기에서 일어나는 JIT 문제가 수정되었다. 또한 커스텀 텍스처 로드가 가능해졌다.
2016년 9월 19일에 안드로이드에서만 1.3.0.1 버전이 긴급 업데이트로 나왔는데, 대기모드시에 강제종료되는 문제가 긴급수정되었다.
2017년 3월 31일에 1.4.0 버전이 나왔다. 다이렉트X 11의 추가 지원이 이루어졌다. 또한, 호환성 이슈와 관련된 버그가 수정되었다.
2017년 5월 23일에 1.4.1 버전이 나왔다. 이 버전에서는 UI 배경 이미지 지원이 추가되었고, 소프트웨어 렌더링 기능이 강화되었다.
2017년 5월 27일에 1.4.2 버전이 나왔다. 이 버전에서는 소프트웨어 렌더링 충돌과 ARM64에서 구동 시 충돌을 일으키게 만드는 버그의 수정이 이루어졌다.
2017년 11월 29일에 1.5 버전이 나왔다. 이 버전부터 Vulkan을 지원하며, 그래픽 관리 기능의 강화로 CPU 점유율이 줄어들었다. 또한, 이전에 지원하지 않던 아랍어와 기타 여러 언어가 추가되었다. 그러나 Vulkan 지원이 아직 불안정한 관계로 문제 수정이 된 버전업판이 며칠 간격으로 계속 올라오고 있다. 버전 1.5 출시 3시간만에 1.5.1 버전으로 버그픽스판이 올라왔으며, 2017년 11월 30일에 1.5.2 버전, 2017년 12월 2일에 1.5.3 버전, 그리고 1.5.4 버전이 2017년 12월 5일에 올라왔다.
2018년 5월 26일에 1.6 버전이 나왔다.이 버전에서는 OpenGL의 멀티스레드와 벌칸의 속도향상, 리눅스 지원 등이 있었다.
2018년 10월 27일에 1.7 버전이 나왔다.
2019년 3월 14일에 1.8 버전이 나왔다.
2019년 9월 25일에 1.9 버전이 나왔다.
2020년 6월 27일에 1.10 버전이 나왔다.
2021년 2월 7일에 1.11 버전이 나왔다.
2021년 10월 6일에 1.12 버전이 나왔다.
4. PPSSPP/호환성 리스트
PPSSPP/호환성 리스트 항목 참조.[1] 과거에는 탈옥을 해야만 JIT 컴파일러를 사용가능해서 정상적인 속도가 나왔었지만 2020년 기준 스마트폰의 AP가 준 데스크탑 클래스의 성능을 뽑아냄에 따라 인터프리터 방식으로도 프레임을 정상적으로 뽑고 배속까지 가능할정도로 성능이 좋아져서 AltStore나 Sideloadly같은 사이드로더 방식으로 설치해도 정상적으로 PPSSPP를 사용할수있게 되었다. 거기에 2024년 5월 15일엔 애플의 정책 변경으로 인해 정식으로 앱스토어에 출시되었다.[2] 그 후 OpenGL의 속도업뎃이 계속되어 이젠 OpenGL이 더 프레임이 높게 나온다.[3] 이 꼼수를 이용해 메탈기어 솔리드 피스 워커의 조작감을 사실상 PS3, Xbox 360버전과 동일해지게 개선하는 것이 가능하다. 엑스박스 패드 기준으로, RB를 PSP의 O와 R, LB를 O와 L에 중복 세팅하면 RB로 무기 교체, LB로 아이템 교체가 가능해지기 때문. 갓 오브 워: 체인 오브 올림푸스, 갓 오브 워: 고스트 오브 스파르타의 오른쪽 스틱 회피 조작도 마찬가지로 설정할 수 있다. 오른쪽 스틱 네 방향을 아날로그 패드 상하좌우에 세팅한 후, L버튼과 R버튼에도 중복 세팅하면 되기 때문. 이렇게 설정하면 예를 들어, 오른쪽 스틱을 위쪽으로 기울일 경우, 아날로그 패드 위쪽+L버튼+R버튼이 동시에 눌린 것으로 인식되어 바로 크레토스가 위로 구르기 회피를 한다.[4] 참고로 울트라 퍼즐버블 포켓외에도 구동 화면에 있는 게임 목록에 Blokus, 봄버맨, 뿌요뿌요 피버도 있다.[5] 다만, 설정에서 버튼 크기와 간격을 조절하면 해결이 가능하다