Skip to content

Commit 29f4435

Browse files
authored
Merge pull request #1131 from hunterk/master
Overhaul ppsspp.md
2 parents 5cf3e6d + 9f9c9b9 commit 29f4435

1 file changed

Lines changed: 144 additions & 73 deletions

File tree

docs/library/ppsspp.md

Lines changed: 144 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
## Background
66

7-
A PSP emulator for Android, Windows, Mac and Linux, written in C++.
8-
9-
The PPSSPP core supports [OpenGL](#opengl), [Vulkan](#vulkan), and [Direct3D 11](#d3d11) rendering.
7+
A fast and portable PSP emulator written in C++. No BIOS file required to play, PPSSPP is an "HLE" emulator. Default settings balance good compatibility and speed.
108

119
The PPSSPP core has been authored by
1210

@@ -18,26 +16,18 @@ The PPSSPP core is licensed under
1816

1917
A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md).
2018

21-
## Requirements
22-
23-
- OpenGL/Open GL ES 2.0 or higher for the OpenGL renderer.
24-
- Vulkan for the Vulkan renderer.
25-
- Direct3D 11 for the Direct3D 11 renderer.
26-
27-
## BIOS
19+
## Setup (Required!!)
2820

29-
The PPSSPP core requires assets files to be fully functional.
21+
The PPSSPP core requires some helper files to be fully functional, including assets such as fonts and backgrounds that are required for memory card screens, and per-game settings that are loaded automatically for compatibility/bugfixing.
3022

31-
Assets such as fonts and backgrounds that are required for memory card screens.
32-
33-
In order to acquire PPSSPP's assets files and install them succcessfully, follow these steps.
23+
In order to acquire PPSSPP's assets files and install them succcessfully, follow these steps:
3424

3525
!!! info
3626
Lakka users do not need to follow these steps. Lakka image ships with the assets already included. Those assets are compatible with the version of the core provided in the Lakka image. Using not compatible assets may lead to unexpected results.
3727

3828
### Installing from the 'Core System Files Downloader'
3929

40-
If your frontend version has `Main Menu > Online Updater > Core System Files Downloader` then that's the easiest solution, just download 'PPSSPP.zip' from that menu and you're all done!
30+
If your frontend version has `Main Menu > Online Updater > Core System Files Downloader` then that's the easiest solution. Just download 'PPSSPP.zip' from that menu and you're all done!
4131

4232
### Installing from the GitHub repo
4333

@@ -77,6 +67,7 @@ Content that can be loaded by the PPSSPP core have the following file extensions
7767
- .cso
7868
- .prx
7969
- .pbp
70+
- .chd
8071

8172
RetroArch database(s) that are associated with the PPSSPP core:
8273

@@ -112,6 +103,14 @@ Frontend-level settings or features that the PPSSPP core respects.
112103
| Crop Overscan ||
113104
| LEDs ||
114105

106+
**Texture Replacement Packs**
107+
108+
High-resolution texture packs can be used by extracting any archives and placing the contents into the frontend's 'saves' directory, in a directory under PSP/TEXTURES, named for the [game's ID code](https://www.scribd.com/document/515954071/PSP-Game-IDs).
109+
110+
**Netplay**
111+
112+
PPSSPP-libretro can utilize the same netplay services provided by the standalone PPSSPP application by entering the desired network address in the core options, under the 'network' category. See [the upstream documentation](https://github.com/hrydgard/ppsspp/wiki/How-to-play-multiplayer-games-with-PPSSPP) for further details on setup.
113+
115114
## Directories
116115

117116
The PPSSPP core's library name is 'PPSSPP'
@@ -128,8 +127,10 @@ The PPSSPP core saves/loads to/from these directories.
128127
├── flash0/ (Font override for real fonts dumped from PSP system)
129128
├── Cheats/ (Internal Cheats directory, disabled by default)
130129
├── GAME/ (DLC directory)
131-
── SYSTEM/
130+
── SYSTEM/
132131
└── CACHE/ (Shader cache)
132+
└── TEXTURES/
133+
└── [GAME_ID] (Extracted textures; enabled via core option)
133134
```
134135

135136
**Frontend's State directory**
@@ -174,30 +175,30 @@ DLCs need to be installed in the GAME directory. Create the GAME directory in th
174175

175176
RetroArch\saves\PPSSPP\PSP\GAME\
176177

177-
## OpenGL
178-
179-
PPSSPP's OpenGL renderer can be used by setting RetroArch's video driver to gl.
178+
## Hardware Rendering
180179

181-
The common option for all operating systems is OpenGL, requiring hardware that supports OpenGL/Open GL ES 2.0 or higher. It is an older, pre-Vulkan API, slower than Vulkan but with better compatibility. If you encounter problems with other APIs, try this one.
180+
- **OpenGL**
182181

183-
## Vulkan
182+
PPSSPP's OpenGL renderer can be used by setting RetroArch's video driver to gl or glcore (where available).
184183

185-
PPSSPP's Vulkan renderer can be used by setting RetroArch's video driver to vulkan.
184+
This renderer requires hardware that supports OpenGL/Open GL ES 2.0 or higher. It is an older, pre-Vulkan API, which is slower but with better compatibility. If you encounter problems with other APIs, try this one.
186185

187-
This is the latest and fastest API currently. It is most recommended for demanding less of your CPU, thus being the fastest.
186+
- **Vulkan**
188187

189-
## D3D11
188+
PPSSPP's Vulkan renderer can be used by setting RetroArch's video driver to vulkan. This is the latest and fastest API currently. It is most recommended for demanding less of your CPU, thus being the fastest.
190189

191-
PPSSPP's Direct3D 11 renderer can be used by setting RetroArch's video driver to d3d11.
190+
- **D3D11**
192191

193-
In some cases Direct3D 11 may offer better performance than OpenGL, especially on integrated Intel graphics.
192+
PPSSPP's Direct3D 11 renderer can be used by setting RetroArch's video driver to d3d11. In some cases Direct3D 11 may offer better performance than OpenGL, especially on integrated Intel graphics.
194193

195194
## Core options
196195

197196
The PPSSPP core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.
198197

199198
Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.
200199

200+
### System
201+
201202
- **CPU Core** [ppsspp_cpu_core] (**jit**|IR jit|interpreter)
202203

203204
The jit setting enables the Dynamic Recomplier (Dynarec) for CPU emulation. The Dynarec is much faster than the interpreter setting and is the default, recommended mode for supported architectures.
@@ -206,6 +207,16 @@ Settings with (Restart) means that core has to be closed for the new setting to
206207

207208
The IR jit setting might be worth trying against games which are broken in the other two settings.
208209

210+
- **Fast Memory** [ppsspp_fast_memory] (**enabled**|disabled)
211+
212+
This option avoids some memory accesses by caching information, however a few games may have problems when this option is enabled, most run with no problem.
213+
214+
- **Ignore Bad Memory Accesses**
215+
216+
- **I/O Timing Method**
217+
218+
- **Force Real Clock Sync**
219+
209220
- **Locked CPU Speed** [ppsspp_locked_cpu_speed] (**off**|222MHz|266MHz|333MHz)
210221

211222
Allows you to lock the internal CPU clock of the emulator (of the emulated CPU).
@@ -218,111 +229,171 @@ Settings with (Restart) means that core has to be closed for the new setting to
218229

219230
In case of doubt, keep this on off.
220231

221-
- **Language** [ppsspp_language] (**automatic**|english|japanese|french|spanish|german|italian|dutch|portuguese|russian|korean|chinese_traditional|chinese_simplified)
232+
- **Memory Stick Inserted**
233+
234+
- **Cache Full ISO in RAM**
235+
236+
- **Internal Cheats Support** [ppsspp_cheats] (**disabled**|enabled)
237+
238+
Enables internal cheats. Look at the [Internal Cheats section](#internal-cheats) for more information.
239+
240+
- **Game Language** [ppsspp_language] (**automatic**|english|japanese|french|spanish|german|italian|dutch|portuguese|russian|korean|chinese_traditional|chinese_simplified)
222241

223242
Configure the PPSSPP's system language.
224243

225244
When set to automatic, the default PPSSPP language setting will be pulled from RetroArch's Language setting.
226245

227-
- **Rendering Mode** [ppsspp_rendering_mode] (**buffered**|nonbuffered)
246+
- **PSP Mode**
228247

229-
Buffered mode renders graphics close to what is in the actual PSP, with all the effects and with the least possible bugs.
248+
### Video
230249

231-
Nonbuffered mode skips most heavier graphics effects like blur, bloom, reflections, shadows, and more. It can be used as a speed hack if it is underperforming because of a weak GPU.
250+
- **Backend** [ppsspp_rendering_mode] (**Automatic**|OpenGL|Vulkan|D3D11|None)
232251

233-
- **True Color Depth** [ppsspp_true_color] (**enabled**|disabled)
252+
Sets the hardware rendering API. 'Automatic' uses whichever backend matches the frontend's current video driver.
234253

235-
Enhance the colors compared to the older models of PSPs which have lower quality screens.
254+
- **Software Rendering**
236255

237-
It's best to keep this enabled.
256+
- **Rendering Resolution** [ppsspp_internal_resolution] (**480x272**|960x544|1440x816|1920x1088|2400x1360|2880x1632|3360x1904|3840x2176|4320x2448|4800x2720)
238257

239-
- **Auto Frameskip** [ppsspp_auto_frameskip] (**disabled**|enabled)
258+
**The 'Software Rendering' core option must be set to OFF for this to have any effect.**
240259

241-
This option only selects the optimal number of frames to skip to not to compromise both gameplay. The max frames to be skipped can be limited in the Frameskip option.
260+
Controls the internal resolution of the graphics, significant performance impact if your GPU is not powerful enough for certain resolutions.
261+
262+
- **MSAA Antialiasing**
263+
264+
- **Crop to 16x9**
242265

243266
- **Frameskip** [ppsspp_frameskip] (**0**|1|2|3|4|5|6|7|8|9)
244267

245268
This option skips image frames to increase the emulation speed. They can be skipped between 1 and 8 frames every second. Using this option can give the impression of the game running faster but with stuttering, and this increases the amount of frames to be skipped you select. This option is only effective when your processor is powerful enough.
246269

247-
- **Force Max FPS** [ppsspp_force_max_fps] (**disabled**|enabled)
270+
- **Auto Frameskip** [ppsspp_auto_frameskip] (**disabled**|enabled)
271+
272+
This option only selects the optimal number of frames to skip to not to compromise both gameplay. The max frames to be skipped can be limited in the Frameskip option.
248273

249-
Prevents FPS form exceeding 60.
274+
- **Render Duplicate Frames to 60 Hz**
250275

251-
This option was created in order to help God of War games that used to have a performance problem because the FPS were higher than normal. This option locks the FPS to 60 to avoid this problem.
276+
- **Detect Frame Rate Changes**
252277

253-
- **Audio latency** [ppsspp_audio_latency] (**low**|medium|high)
278+
- **Buffer Graphics Commands**
254279

255-
Configure the audio latency.
280+
- **Software Skinning**
256281

257-
- **Internal Resolution** [ppsspp_internal_resolution] (**480x272**|960x544|1440x816|1920x1088|2400x1360|2880x1632|3360x1904|3840x2176|4320x2448|4800x2720)
282+
- **Hardware Tesselation**
258283

259-
**The 'Rendering Mode' core option must be set to buffered for this to have any effect.**
284+
- **Texture Upscale Type** [ppsspp_texture_scaling_type] (**xbrz**|hybrid|bicubic|hybrid_bicubic)
260285

261-
Controls the internal resolution of the graphics, significant performance impact if your GPU is not powerful enough for certain resolutions.
286+
Choose the Texture Upscale Type.
287+
288+
xBRZ is overall the best option while Hybrid is a slower version of xBRZ and doesn't offers much difference, Hybrid + Bicubic is the slowest one using two effects.
289+
290+
- **Texture Upscaling Level** [ppsspp_texture_scaling_level] (**1**|2|3|4|5|0)
291+
292+
With this option, you can make modifications to the texture scale level, which improves the visual at high resolutions.
293+
294+
All the scaling is made by CPU and results in a great performance impact. Use carefully.
295+
296+
- **Texture Deposterize** [ppsspp_texture_deposterize] (**disabled**|enabled)
297+
298+
Deposterize fixes small in-texture glitches that may happen when the texture is upscaled.
299+
300+
- **Texture Shader**
301+
302+
- **Anisotropic Filtering** [ppsspp_texture_anisotropic_filtering] (**off**|1x|2x|4x|8x|16x)
303+
304+
Modify the Anisotropic Filtering, which fixes the textures on the horizon that are drawn at angles resulting in a better look.
305+
306+
- **Texture Filtering** [ppsspp_texture_filtering] (**auto**|nearest|linear|linear(FMV))
307+
308+
Apply texture filtering.
309+
310+
Stick to auto in case of doubt.
311+
312+
- **Smart 2D Texture Filtering**
313+
314+
- **Texture Replacement**
315+
316+
### Input
262317

263318
- **Confirmation Button** [ppsspp_button_preference] (**cross**|circle)
264319

265320
Select whether the cross input or the circle input is the confirmation button.
266321

267-
- **Fast Memory (Speedhack)** [ppsspp_fast_memory] (**enabled**|disabled)
322+
- **Analog Circle vs Square Gate Compensation**
268323

269-
This option avoids some memory accesses by caching information, however a few games may have problems when this option is enabled, most run with no problem.
324+
- **Analog Deadzone**
325+
326+
Additional deadzone to apply after frontend input.
270327

271-
- **Block Transfer GPU** [ppsspp_block_transfer_gpu] (**enabled**|disabled)
328+
- **Analog Axis Scale**
329+
330+
Additional sensitivity to apply after frontend input.
272331

273-
This option simulates support for rendering effects not supported by current hardware, but supported by PSP hardware. Fixes multiple graphics problems in a number of games, but decreases performance on weaker GPUs (on smartphones). Disabling can greatly impact performance, and can be a great help in games that do not need this option enabled.
332+
### Hacks
274333

275-
- **Texture Scaling Level** [ppsspp_texture_scaling_level] (**1**|2|3|4|5|0)
334+
- **Skip Buffer Effects**
335+
336+
Faster, but nothing may draw in some games.
276337

277-
With this option, you can make modifications to the texture scale level, which improves the visual at high resolutions.
338+
- **Disable Culling**
278339

279-
All the scaling is made by CPU and results in a great performance impact. Use carefully.
340+
- **Skip GPU Readbacks**
341+
342+
Some games require GPU readbacks, so be careful.
280343

281-
- **Texture Scaling Type** [ppsspp_texture_scaling_type] (**xbrz**|hybrid|bicubic|hybrid_bicubic)
344+
- **Lazy Texture Caching (Speedup)**
345+
346+
Faster, but can cause text problems in a few games.
282347

283-
Choose the Texture Upscale Type.
348+
- **Spline/Bezier Curves Quality**
349+
350+
Only used by some games, controls smoothness of curves.
284351

285-
xBRZ is overall the best option while Hybrid is a slower version of xBRZ and doesn't offers much difference, Hybrid + Bicubic is the slowest one using two effects.
352+
- **Lower Resolution for Effects**
353+
354+
Reduces artifacts
286355

287-
- **Texture Filtering** [ppsspp_texture_filtering] (**auto**|nearest|linear|linear(FMV))
356+
### Network
288357

289-
Apply texture filtering.
358+
- **Enable Networking/WLAN (Beta, may break games)**
290359

291-
Stick to auto in case of doubt.
360+
- **MAC Address Pt 1: x-:--:--:--:--:--**
292361

293-
- **Anisotropic Filtering** [ppsspp_texture_anisotropic_filtering] (**off**|1x|2x|4x|8x|16x)
362+
- **MAC Address Pt 2: -x:--:--:--:--:--**
294363

295-
Modify the Anisotropic Filtering, which fixes the textures on the horizon that are drawn at angles resulting in a better look.
364+
- **MAC Address Pt 3: --:x-:--:--:--:--**
296365

297-
- **Texture Deposterize** [ppsspp_texture_deposterize] (**disabled**|enabled)
366+
- **MAC Address Pt 4: --:-x:--:--:--:--**
298367

299-
Deposterize fixes small in-texture glitches that may happen when the texture is upscaled.
368+
- **MAC Address Pt 5: --:--:x-:--:--:--**
300369

301-
- **GPU Hardware T&L** [ppsspp_gpu_hardware_transform] (**enabled**|disabled)
370+
- **MAC Address Pt 6: --:--:-x:--:--:--**
302371

303-
Uses the hardware to generate lighting and shading effects. With this option disabled performance may drop a lot on weak GPUs. Bugs are rare, but if found, can be disabled for testing.
372+
- **MAC Address Pt 7: --:--:--:x-:--:--**
304373

305-
- **Vertex Cache (Speedhack)** [ppsspp_vertex_cache] (**enabled**|disabled)
374+
- **MAC Address Pt 8: --:--:--:-x:--:--**
306375

307-
Uses vertex cache to improve performance in few games, in rare cases can cause glitches in geometry. Some games have reduced performance with this option enabled. This option mostly benefits OpenGL API, doesn't need to be enabled to other backends.
376+
- **MAC Address Pt 9: --:--:--:--:x-:--**
308377

309-
- **IO Threading** [ppsspp_separate_io_thread] (**disabled**|enabled)
378+
- **MAC Address Pt 10: --:--:--:--:-x:--**
310379

311-
Uses separate CPU thread for input/output of files (read data).
380+
- **MAC Address Pt 11: --:--:--:--:--:x-**
312381

313-
- **Unsafe FuncReplacements** [ppsspp_unsafe_func_replacements] (**enabled**|disabled)
382+
- **MAC Address Pt 12: --:--:--:--:--:-x**
314383

315-
Enable unsafe CPU function replacements.
384+
- **WLAN Channel**
316385

317-
May make games playable.
386+
- **Enable Built-in PRO Ad Hoc Server**
318387

319-
- **Sound Speedhack** [ppsspp_sound_speedhack] (**disabled**|enabled)
388+
- **Change PRO Ad Hoc Server IP Address ('localhost' = multiple instances)**
320389

321-
It helps in some games, like Dead or Alive, with problems in sound speed.
390+
- **Enable UPnP (Need a few seconds to detect)**
322391

323-
- **Internal Cheats Support** [ppsspp_cheats] (**disabled**|enabled)
392+
- **Port Offset ('0' = PSP Compatibility)**
324393

325-
Enables internal cheats. Look at the [Internal Cheats section](#internal-cheats) for more information.
394+
- **Minimum Timeout (Override in ms, '0' = default)**
395+
396+
- **Forced First Connect (Faster connect)**
326397

327398
## Joypad
328399

0 commit comments

Comments
 (0)