(Moved from my previous AMD guide)
(Updated to account for the official release of v0.9.9.1, which you should be using if you're on Windows and Android as it contains some new features. Also helps for diagnostic reasons, i.e. when you report an issue to us, the first thing we'll ask is if you're on the latest dev build anyway, since many fixes would've been pushed since the official release.)
(Buildbot's working fine for all builds at the moment.)
Background:-
We've all heard it asked so many times in the forums.
Quote:Why PPSSPP so slow on my phone/PC/device?PPSSPP IS LAGGING MAH PHONE, HALP PLZZZ!
I can't get full speed in game X, SOMEONE HELP ME PLZ?
I hope that the next time a drive-by junior with only 1 post asks the question, we can easily direct them to this thread, to filter them out.
If their issues with performance aren't resolved, even after following every single step listed out in this guide, we can then decide to probe deeper, with some follow up questions.
The guide:-
If you're really desperate for some extra speed (remember, Speed and FPS are 2 different metrics for measurement in PPSSPP), you can do the following:-
1. Turn ON Frameskipping and set it to Auto, 1, 2 or 3 (Odd numbers (1,3,5) work best, Even numbers (2,4,6) may cause flickering in games. YMMV, major performance boost on mobile devices, depends on the game's internal framerate, 60 FPS games work best with odd numbers, 30 FPS games work best with even numbers, but the opposite holds true if using Non Buffered Rendering mode.)
(Auto is best if you're not really sure what to decide on, as it will make the emulator skip an increasingly higher amount of frames until you hit 100% Speed)
(As of v0.9.6-613-g289729f, Auto frameskip has been seperated out of the Frameskip options. You can now manually decide on range of frames for Auto frameskip to skip to, and then tick the Auto Frameskip option.)
Remember, you can determine the FPS of a game by heading to the FPS counter option and changing it to Both in the Graphics option menu, under Overlay Information:-
2. Set Rendering Mode to Non Buffered Rendering (May break games that need Buffered Rendering. A lot of games don't require it to work. Minor speed boost), OR alternatively,
3. Ensure that Rendering Mode is set to just Buffered Rendering and NOT Read Framebuffers to Memory (CPU) OR Read Framebufers to Memory (GPU) (the latter two are speed killing options that should only be used with games that need them to work properly, e.g. Danganronpa)
(OP Edit:- Actually, Danganronpa does NOT require any of the Read Framebuffers to Memory options anymore since v0.9.8-829-g7dfad9c. Plain Buffered Rendering is sufficient.)
(There is a rather fantastic post by [Unknown] on the github explaining the crucial differences bettween the Non Buffered and Buffered Rendering Mode on Android here.)
4. Make sure any form of Texture Scaling (speed killer and causes hitches on lower end machines when on) is OFF. Anisotropic Texture filtering, however, is fine and nearly free on any modern PC.
(Note:- Anti Aliasing option has been taken out of the emulator since v0.9.1-752-g2745744 )
5. Ensure that Hardware Transform (massive speed boost) and Vertex Cache are ON. (They should be on by default, there are exceptions to this tip, some games work better with it off, your mileage may vary.)
6. *NEW* Enable Low quality spline/bezier curves. This option will significantly reduce the quality of rendered splines and bezier curves, and the subsequent performance gains will only be noticeable in games that use them. Examples include LocoRoco, Gods Eater Burst (the skyline) and Final Fantasy IV (spell effects).
(Note:- Option only available from v0.9.1-1201-g2b66a85 onwards.)
(Note 2:- Option has been changed to include Low, Medium and High settings since v0.9.8-611-gfcaaede. Low still provides the best performance, but Medium offers a balance between the performance of low and the fidelity of High.)
Using Final Fantasy IV as an example, Low Quality on the left and High Quality on the right hand side:-
Further details available on the github here.
7. Play at only 1x or 2x rendering resolution.
(Note:- Applies to both Android and Windows now since v0.9.1-752-g2745744 which seperated Window Size and Rendering Resolution.)
(Note 2:- Changing the rendering resolution will only work if Rendering Mode is set to Buffered Rendering. Non Buffered Rendering Mode will just lead to the image being displayed in your device's/window's native resolution. E.g. If your device can output 1080p, and you set it to Non-Buffered Rendering, the game will render in 1080p no matter the rendering resolution set in the options. You'll have to set it back to Buffered Rendering, and then, change the Rendering Resolution to whatever you desire.)
(TL: DR, Choose either a low rendering resolution (1xPSP or 2xPSP) coupled with Buffered Rendering Mode OR just Non-Buffered Rendering mode, and compare the performance for yourself. You can't have both Non-Buffered Rendering Mode AND the choice of your rendering resolution at the moment.)
8. Use the "Change CPU Clock" option in the System Settings menu, and set it to something lower (default:-222MHz), like 111MHz or even 60-80 MHz. People with lower end Android devices have reported some success in gaining more speed with that function. Warning: Lowering the CPU Clock too much will cause unpredictable behaviour within games like SPS (Spiky Polygon Syndrome), jerkiness and flickering. Experiment at your own risk. Also, there is a trade off between increased Speed, as you reduce the frequency, but lower internal FPS. Find a balance you can be comfortable with.
NOTE:- Tekken 6 will NOT boot up if you have the clock changed from the default frequency. Do NOT change the CPU clock if you wish to run Tekken 6.
9. Turn OFF all other background applications while playing games on PPSSPP. (Add exceptions to your virus/malware scanners for this program if you have to)
10. Update your drivers. (this may not always be a good idea since newer AMD drivers have conflicts with the program as reported in the forum)
11. Also ensure that the emulator is running in JIT (Dynarec) mode, which has been moved to Developer Tools in 0.9.5. (major, major performance boost, should be ON by default)
12. Turn ON Fast Memory. (minor performance boost on x86, major performance boost on Android, not always recommended since it is quite unstable and can cause crashes. If your games start crashing, turn FastMem OFF.)
13. You cannot disable Atrac3+ Audio anymore since 0.9.5, but you can still disable Audio completely for a minor performance boost.
14. Turn OFF Vsync. (Will cause tearing in the image, but gives a performance boost) -Windows only, since Android devices have Vsync always on-
(Update:- Vsync functionality on Windows has been restored with v0.9.1-76-g955ad2. It should be working properly again in both Windowed and Full Screen mode. Thanks Henrik.)
15. *NEW* Turn OFF Enable Debug Logging. (this option is located under Developer Tools in the System Menu, very minor to major performance boost in games that have excessive error log spam. e.g. Monster Hunter Portable 3rd HD (+35%) and the rest of the Monster Hunter Series (+10%). Developer support is not guaranteed with this option off however, since logfiles cannot be produced unless logging is enabled.)
16. Turn ON the Force 60 FPS or less option. (option is located in page 3 of Graphics Settings. This really gives a major performance boost to certain games with GE Timing issues. Examples include the God of War games which perform horribly with this option turned off. Some games hate this option however, so turn it back off when you're done with the God of War games.)
17. Turn ON Multithreaded(MT). That's right folks, with this highly experimental function enabled, PPSSPP will finally use more than one core of your CPU. Performance gains will vary from game to game (minor to greatly increased Speed), and since this is still being tested, not every game will be happy with it for now. If a game isn't happy with it, just make a note and disable MT for it for now.
Noted side effects from enabling this option include:-
a. An intermittent black flickering in certain games that happens very, very occcasionally.
b. Certain games may exhibit lowered internal FPS, leading to sluggish gameplay. This is already being ironed out at the moment.
c. Certain games may crash with it on, especially when unthrottling the framerate. Also being looked into by the developers.
It is recommended that you have a look at this github thread here, for a list of games that behave well with this option enabled:-
https://github.com/hrydgard/ppsspp/pull/3120
18. *NEW* Turn OFF Postprocessing Shaders (formerly known as FXAA). (only a minor performance increase on Windows, moderate increase on Android.)
(Note:- Only applies to Windows at the moment from v0.9.1-1239-gb10e2bc onwards, option is currently unavailable on Android.)
(Note 2:- Android support for FXAA added since v0.9.1-1319-ga5d30d2)
(Note 3:- Option has been relocated to Postprocessing Shader under Graphics options since v0.9.1-1694-ge0b19de)
19. *NEW* Turn ON Texture Coord Speedhack. (located under Graphics --> Hack Settings, moderate speedup and highly recommended if Software Skinning is enabled (synergistic boost), may cause graphical glitches in games, disable it if you find any that makes games unplayable)
20. *NEW* Turn ON Disable Alpha Test. (located under Graphics --> Hack Settings, only for PowerVR devices, option is hidden for other devices, will cause graphical glitches in games, disable it if you find any that makes games unplayable)
(If you're using v0.9.8-115-gff498ed onwards on a PowerVR device this hack is no longer necessary for performance as Alpha Testing has now been disabled wherever possible. The hack will be removed soon in future revisions.)
(Due to popular demand by PowerVR users, the Disable Alpha Test option has been restored in v0.9.8-1136-g3e97713 and above.)
21. *NEW* Turn ON Software Skinning. (located under Graphics --> Performance, this feature offers rather mixed results; it provides an incredible performance boost to certain games, but can also reduce performance in others.)
(Here's a handy chart of the impact of the setting in many games. Refer to it to determine whether or not you should enable it in your selected game.)
(only available from v0.9.5-373-ga6ee264 onwards)
22. *NEW* Turn ON Lazy Texture Caching. (located under Graphics --> Performance, this feature provides a consistent performance boost to nearly every single game, with almost no downside, except in a few cases, e.g. A delay in displaying/refreshing text in certain games and shifting textures. Games affected include Danganronpa and Growlanser so disable it in those games.)
(only available from v0.9.6-289-g9281fcc onwards, previous revisions had this option enabled by default, but was not exposed to the user.)
23. *NEW* Turn ON Retain Changed Textures.(located under Graphics --> Performance, provides almost little to no performance benefits in most cases. Enable it only if you're absolutely desperate for every FPS you can get.)
(Only available from v0.9.6-289-g9281fcc onwards, previous revisions had this option enabled by default on Desktop, but was not exposed to the user.)
(Not recommended for mobile devices with low VRAM since it is quite VRAM hungry.)
24. *NEW* Turn OFF Simulate Block Transfer. (an unfinished feature located under Graphics --> Rendering Mode, disable it unless you have games that require it, e.g. Ys Seven for proper minimap functionality.)
(Once the SBT feature is perfected (hopefully by the official 0.9.9 release), it will be removed from this performance guide, since the performance hit will be close to nil in games that do not use the feature.)
25. *NEW* Turn ON Disable Slower Effects. (this feature provides a significant performance boost in every game, but at the cost of major graphical glitches and inaccurate graphical emulation. This is not to be used unless you are absolutely desperate for extra speed and couldn't care less about the picture on the screen. It is considered a last ditch option.)
26. *NEW* (Android ONLY) Change the Display Resolution (HW scaler) setting to 1x PSP. (located under Graphics, this feature enables PPSSPP to utilize your Android device's own hardware scaler to scale the output to a lower resolution instead of doing it itself, which provides a significant performance boost for every game at the cost of an obviously blurry looking and pixelated output. Highly recommended for users desperate for additional performance.)
(Only available from v0.9.8-1658-gc61c116 onwards.)
(This functionality is analoguous to the Window Size function on Windows builds, so Windows users aren't missing out here.)
More will be added as we discover them in future revisions. Stay tuned. Future images will be hyperlinked since I've hit the image limit for this forum per post.