(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.

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.

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 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:-

(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.

(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:-

(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)

(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.)

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.)

(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.

I have and Android device and have had luck increasing framerate in the ppsspp.ini from 0 to 80. I'm not sure how or why this affects the speed or how it relates to the other settings but it definitely provided more speed.

(08-02-2013 12:00 AM)theonyxphoenix Wrote: I have and Android device and have had luck increasing framerate in the ppsspp.ini from 0 to 80. I'm not sure how or why this affects the speed or how it relates to the other settings but it definitely provided more speed.

You also mentioned in another thread that you lowered the default CPU speed of the emulator as well, from 222 MHz to a lower number.

That is the key to attaining the faster speed, as stated in the guide.

Increasing the framerate in the in the ppsspp.ini file (from 0 to 80 for example) will only increase the fixed speed that you've chosen when toggling to it from the default of 60 (100% speed in the latest revisions) to 80 VPS.

0 is the default option (means that if you toggle it to fixed, the Speed will remain steady at 60)

As an experiment to prove the hypothesis try the following:-

1. Increase the framerate in ppsspp.ini to something ridiculous like 2000

2. Make sure PPSSPP is set to display the Speed on the top right hand corner of the screen.

3. Toggle the mode to Fixed Speed.

4. Notice that its only increased the speed to as much as your device can handle. You won't actually get 2000 VPS by setting it to 2000 in the ppsspp.ini on your Android device. What you've actually done is to remove the upper limiter on your device, much like the unthrottling function that PPSSPP already has.

(08-02-2013 12:00 AM)theonyxphoenix Wrote: I have and Android device and have had luck increasing framerate in the ppsspp.ini from 0 to 80. I'm not sure how or why this affects the speed or how it relates to the other settings but it definitely provided more speed.

You also mentioned in another thread that you lowered the default CPU speed of the emulator as well, from 222 MHz to a lower number.

That is the key to attaining the faster speed, as stated in the guide.

Increasing the framerate in the in the ppsspp.ini file (from 0 to 80 for example) will only increase the fixed speed that you've chosen when toggling to it from the default of 60 (100% speed in the latest revisions) to 80 VPS.

0 is the default option (means that if you toggle it to fixed, the Speed will remain steady at 60)

As an experiment to prove the hypothesis try the following:-

1. Increase the framerate in ppsspp.ini to something ridiculous like 2000

2. Make sure PPSSPP is set to display the Speed on the top right hand corner of the screen.

3. Toggle the mode to Fixed Speed.

4. Notice that its only increased the speed to as much as your device can handle. You won't actually get 2000 VPS by setting it to 2000 in the ppsspp.ini on your Android device. What you've actually done is to remove the upper limiter on your device, much like the unthrottling function that PPSSPP already has.

Thanks for the reply. How do you change it to "fixed"? I show the toggled speed limit option but how do I know if it is running on the fixed setting?

Only if you're forced to use Read Framebuffers to Memory option at ALL.

1. If a game needs it (like Danganronpa)

Read Framebufers to Memory (GPU) > Read Framebuffers to Memory (CPU)

2. If a game DOESN'T need it (like most other games), the performance hierarchy is as follows (from fastest to slowest)

1. Non Buffered Rendering

2. Buffered Rendering

3. Read Framebufers to Memory (GPU) (very slow)

4. Read Framebuffers to Memory (CPU) (even slower)

The speed difference between Buffered Rendering and Read Framebuffers to Memory (GPU/CPU) is very, very massive.

On my listed rig in sig, a particular scene in Danganronpa benches at 385 VPS with Buffered Rendering. It benches at only 282 VPS with Read Framebuffers to Memory (CPU), losing 100 VPS in the process. However, since the game requires Read Framebuffers to Memory (CPU) to be ON, I have to eat the loss of performance, and it is still acceptable for me since it is way above 60 VPS anyway.

What about mobile devices?

My guide is meant for maximum performance, which means that you SHOULD NOT be using ANY Read Framebufers to Memory option if you are desperate for speed. At all. Unless absolutely necessary.