Sunday, July 31, 2022

PPSSPP (PSP emulator) [DX11]










geo-11 fix for PPSSPP, the PlayStation Portable (PSP) emulator. Only for the Direct3D 11 backend.

Tested with PPSSPP 1.13.1 version and some surrounding builds.


What the fix does
- It sets "allow_create_device=0" in geo-11 to make it work.
- It stereoizes the necessary render targets to allow 3D. Shaders are stereoized by geo-11 automatically.
- Per game profiles (56 profiles for 64 games at this moment) that set my preferred default convergence, and in some cases with shader fixes included in those profiles. For example the heatwave in Castlevania Dracula X Chronicles, the HUD in Ape Escape, and shadows in the God of War games. Sometimes optional effects disabling is commented, like the noise in the Silent Hill games.
- By default, "include = ShaderFixes\mouse.ini" enabled in d3dx.ini to make proper use of the mouse cursor when using sbs or tab outputs.
- "swap_effect = 4" enabled in d3dx.ini to force flip model, which triggers 3D Vision in "nvidia_dx11" direct mode.


Installation
- Get the latest emulator version for Windows 64 bit from the PPSSPP downloads page.
geo-11 (with build v0.6.58): download this file and extract its contents in the "ppsspp" folder (or whatever you called it), where "PPSSPPWindows64.exe" is. Remember to edit "d3dxdm.ini" to change your "direct_mode" to the output you need. It's sbs by default. For 3D Vision monitors, only "direct_mode = nvidia_dx11" works (nvidia_dx9 gives a black right eye).
- Run the emulator and set the "Settings -> Graphics -> Rendering mode -> Backend" setting to "Direct3D 11".
- Preferably play in fullscreen.

Before you run any game, open "d3dx.ini" and check the lines below the one that says";------ List of game fixes. Uncomment only the one you are going to play. -----". Starting at line 37 currently.
Remove the ";" at the beginning of the line of the game profile you want to choose, and save the changes to the file.

You can do this while playing if you alt+tab out of the emulator. Press F10 ingame to reload the changes to the file, and it will work just fine.

Do not load more than one profile at the same time.


Hotkeys
- m: general convergence hotkey with lots of presets, because games with a profile have unpredictable convergence needs. shift+m to cycle backwards.
- n or XB_LEFT_THUMB: only active when you load a game profile, this is a hotkey that has only a few convergence presets relative to the default convergence I set for the game profile. x0.25, x0.5, x1 and x2. By default it will be x1.


Creating game profiles
Inside the "GameFixes" folder that comes with the fix, you will see many ".ini" files. They contain a "[Stereo]" section with the default "dm_convergence", a "[Constants]" section with x10 defined with the same value as "dm_convergence" (to be used by the convergence hotkey), and sometimes some ShaderOverride blocks for fixing or disabling shaders. Some are optional and commented.

If you want to create a profile of your own, make a copy of "template.ini" and put the name you want (preferably without spaces), set "dm_convergence" and "x10" to the default convergence value you need, and then in "d3dx.ini" add a line with "include = GameFixes\Your_Game_Name.ini" below the others. Comment it with a ";" at the beginning of the line when you don't want to use it.


Recommendations
- Check the list of 60fps patches for games that you may play. The usually require a specific game region.
- The emulator can be overclocked, usually with the result of better fps. Some games may not work with that.
- For better graphics quality, I recommend setting "Settings -> Graphics -> Postprocessing effects -> Postprocessing shader #1" to "Supersampling AA (Gauss)". Apparently it overrides the internal resolution you choose. For me it looks better than 10x PSP resolution for a 2560x1440 output.


If you liked the fix and want to contribute for more future fixes, you can donate to this PayPal account: masterotakusuko@gmail.com
Or you can join my Patreon: https://www.patreon.com/masterotaku

20 comments:

  1. wow thanks bro i was waiting for this fix since ages .

    ReplyDelete
  2. just one eye works on dx11 direct or dx9, 3d vision kicks in but only one eye is rendered and really dark.

    ReplyDelete
    Replies
    1. Please, give me more clues about what's going on. If you have:
      - 3D Vision monitor.
      - 452.06 Nvidia drivers.
      - Windows 10 or newer (in "d3dx.ini" I'm using "swap_effect = 4" to force flip model).
      - Emulator already configured for fullscreen and Direct3D 11.

      It should work with "direct_mode = nvidia_dx11". It works for me at least, and I didn't receive feedback from other people yet. "direct_mode = nvidia_dx9" gives one black eye to me.

      Delete
    2. I feel honored Masterotaku, I have 3dvision monitor and 3d vision 2 glasses with IR emitter, windows 10 2004 build, and nvidia driver 452.06.

      Delete
    3. I downloaded ppspp emulator installer not the zip file.

      Delete
    4. the emulator on direct mode has sbs as default, so I have to chose dx11, I also tried it on windows 10 21h2 with nvidia driver 516 and still gives me the same problem

      Delete
    5. i chose dx9 on windows 10 21h2 with nvidia driver 516

      Delete
    6. also when the emulator loads i get " Malformed line in d3dx.ini [device] nvidia dx11.

      Delete
    7. I get that error message

      Delete
    8. You could have written all that in just one message :p.
      Anyway, that "malformed" error is strange, and I don't get that. Does it happen in sbs mode too? There isn't anything weird in the "[Device]" section.
      Are you loading a game profile? Did you replace the files from the fix with something else by mistake?

      Delete
    9. sbs mode works fine, only in 3d vision i get left eye is good and clear and the right eye is dark, i have been trying every setting, i only uncomment the fix im gonna use, i have been doing it from scratch, cause i thought I changed something by accident. I have 2 bootable windows partitions, one with 452.06 with windows 10 2004 and the other one with 516.xx with windows 10 21h2 and I have a 2080 super and amd 5600x processor, and i cant get it to work with either or. i will keep you posted if anything changes.

      Delete
    10. this is how my settings look on d3dxdm
      [Device]

      ; direct_mode: choose stereo output option based on hardware
      ; tab - Top and Bottom
      ; tab_reversed
      ; sbs - Side by Side
      ; sbs_reversed
      ; interlaced
      ; interlaced_reversed
      ; checkerboard
      ; checkerboard_reversed
      ;
      ; katanga_vr - vr output to HelixVision.
      ; nvidia_dx9 - works on latest drivers. Requires 3D Vision Driver. Requires game in exclusive fullscreen.
      nvidia_dx11 - works up to driver 452.06. Requires 3D Vision Driver. Requires game in windowed mode.

      ;direct_mode = sbs

      Delete
    11. since i did not care for the other options i did not know that only the bottom one direct mode = sbs is the only one that works with no problem

      Delete
    12. You broke d3dxdm.ini. You sre not supposed to uncomment those like above "direct_mode". You have to change the value of direct_mode. For example "direct_mode = nvidia_dx11". Without the quotes.

      Delete
    13. thank you sir I got it working, but i had to switch it to dx9 on the ppsspp app, on dx11 doesnt want to kick in, it looks awesome

      Delete
  3. I downloaded ppspp emulator installer not the zip file.

    ReplyDelete
  4. the emulator on direct mode has sbs as default, so I have to chose dx11, I also tried it on windows 10 21h2 with nvidia driver 516 and still gives me the same problem

    ReplyDelete
  5. Legend as always 😁

    ReplyDelete
  6. Got directx9 working, doesn't use the game profle, instead used depth from Ncp. When dx11, it doesn't start up for me. running 1809, and the 3d vision - 452.06 Nvidia drivers, rtx 2060. Works pretty good I have to say. Directx11 no go for me.

    ReplyDelete
    Replies
    1. I got dx9 on the ppsspp app and dx_11 on direct mode and it can use the profile

      Delete