Next Generation Emulation banner

PCSXR-PGXP

660K views 1K replies 155 participants last post by  helpmesimba 
#1 · (Edited)
PGXP (Parallel/Precision Geometry Transform Pipeline) is an enhancement for PlayStation emulation that produces high precision fully 3D geometry data that was not available on the original console hardware.

It is currently integrated with PCSX-Reloaded via Pete's OpenGL v1.78 plugin and Tapeq's Tweak extension to Pete's OpenGL v2.9 plugin.

Note: This project is still very much a work in progress.

Features
  • High Precision Vertex Data (more stable geometry)
  • Reduced Triangle Culling (more detailed models)
  • Perspective Correct Texture Mapping (reduced texture distortion)

Chrono Cross: Distortion of model geometry is significantly reduced, especially at a distance.


Ridge Racer Type 4: Higher precision culling calculations mean that small triangles are no longer culled


Tomb Raider: 3D vertex coordinates mean affine texture mapping can be replaced by perspective correct mapping

Setup Instructions
Download the required files (links to these can be found below):
  • A WIP build of PCSXR-PGXP
  • A complete install of PCSX-Reloaded
  • Pete's OpenGL2 PSX GPU Plugin v2.9
Copy the PCSXR-PGXP.exe file from the WIP build to the root folder of the PCSX-Reloaded (the one with the PCSXR.exe file in it). Then copy the gpuPeopsOpenGL.dll and gpuPeteOpenGL2Tweak.dll files to the "Plugins" folder.

If you don't already have it copy the "gpuPeteOpenGL2.dll" file to the Plugins folder too (this is required for the Tweak plugin to work).

Note: If the plugins fail to appear in the "Graphics" menu of the "Plugins & Bios..." window then you may need to install the Visual C++ Redistributable 2015 (x86).

Debug Visualisations
Various shading modes are available by pressing F11 when using the OpenGL 1.78 plugin each of which show different information regarding vertices. There are currently three such modes that can be cycled through, the first shows the different states of each vertex:
  • Blue: Successfully tracked from transformation on the GTE to the GPU.
  • Cyan: Tracked but has lost its 'w' component.
  • Yellow: The vertices belong to a 2D sprite element.
  • Red: No valid value was found so it falls back on the native low precision values.
  • Green: A suitable high precision value has been found in the cache
  • Magenta: Multiple high precision values were found at the same position of the cache, making the result ambiguous, so the low precision value is used.
The other two modes display depth values as a spectrum through blue, green and red. The second mode being the 'w' components of the vertices (in older versions this was grey scale).

The last shows depth information taken from the Ordering Table used by the PlayStation to sort primitives so they can be rendered from furthest to nearest.

Links
Most Recent Builds:
WIP_PGXP_build_19_03_02.zip


Source Code:
PCSXR-PGXP: https://github.com/iCatButler/pcsxr
Tapeq's OpenGL Tweak Plugin with PGXP: https://github.com/iCatButler/PeteOpenGL2Tweak

Additional Links:
Official PCSX-Reloaded Home Page: https://pcsxr.codeplex.com/
Pete's OpenGL2 PSX GPU Plugin: http://www.pbernert.com/html/gpu.htm#OGL2
Visual C++ Redistributable 2015: https://www.microsoft.com/en-us/download/details.aspx?id=48145
Visual C++ Redistributable 2010 (may be needed for other plugins): https://www.microsoft.com/en-gb/download/details.aspx?id=5555
Tapeq's Tweak Plugin Thread: http://ngemu.com/threads/peteopengl2tweak-tweaker-for-peteopengl2-plugin-w-gte-accuracy-hack.160319/

Previous Builds:
WIP_PGXP_build_18_12_16.zip

WIP_PGXP_build_17_04_25.zip
WIP_PGXP_build_17_03_19.zip
WIP_PGXP_build_16_08_01.zip
WIP_PGXP_build_16_08_31.zip
WIP_PGXP_build_17_03_17.zip


Thanks to:
Tapeq
Pete Bernert
Edgbla
Simias
The PCSX-R team
And everyone who has provided feedback.
 
See less See more
5
#1,045 ·
Hey @iCatButler nice work with all this stuff!

I've been trying to work on PSX "z-buffer reprojection" myself and I know the pain it is...

So far, what I'm doing on the rtps code, is divding the screen-x and screen-y by the value of 1024 to get a normalized input, and dividing the screen-z by 65535 to get also a normalized depth.

But as you said, the z values are not linear and I haven't find some suitable formulas yet.

Did you came up with a similar approach to solve this problem?
 
#1,048 ·
Hello,

There is a video problem with Chronicles of the Sword (SLES-00166) and iCatButler/pcsxr 62467b86871aee3d70c7445f3cb79f0858ec566e (built on Linux kernel and x64 architecture).
Indeed, the background image is not loaded, so the background is black.
However, if a sprite is moving on the screen, as the in-game mouse cursor or a character, then it reveals the background image at its location.

As an example, see here in the main screen (the background is black):

However, if I move the in-game mouse cursor to the left, I will reveal a part of the background image:


Of course, this problem does not exist on an other emulator.
Here is an example with ePSXe v2.0.5 Linux x64 (no problem):


Is there a fix for that please?

Thank you.
Best regards.
 
#1,050 · (Edited)
CPU option? Where please? I don't find this option so I can't disable it.

Edit: Oh! I see what you mean. I am not using the Configuration>PGXP... feature. All the boxes are unchecked and PGXP mode is Disabled. So, I am not using the Memory + CPU option.
The issue is not a PGXP problem but a pcsxr problem that is present in the original pcsxr and that is still present in the iCatButler/pcsxr fork.
That's why I am reporting it.
I just have to find a way to refresh the whole screen so the background image will appear.
If you know how to fix that in the pcsxr code, please tell me so I can try.
 
#1,059 · (Edited)
@Zollex

dumping PSX games is not so easy task because not every CD/DVD-ROM can read such CD, check redump.org for checksums and info how to dump CDs correcly
For EU version you need subchanel data (SBI) file as it's LIBCRYPT protected: redump.org • Gekido: Urban Fighters
You can get CUE/SBI from that site^ (small links above game title), you need to rename it to match you .bin file name ie.:

Code:
Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It).cue
Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It).sbi
Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It).bin (you dumped CD, RAW format)
Then load the .cue file in RetroArch
You can also patch sectors manually with some hex editor, sectors you need to patch you have on redump site (this is not recommended)

like in most cases, US version is not copy-protected
 
#1,071 ·
Here are some friendly recommendations/suggestions based on my attempts at configuring PCSXR:

-The download link at the OP (WIP_PGXP_build_19_03_02.zip) does not come with pre-configured folders. From my experience, the pcsxr.exe does not automatically create working folders as opposed to many other emulators (not sure if others are having the same problem). I wasn't able to save, create memcards and take screenshots and ended up thinking PCSXR sucked.

-Then luckily I was able to obtain a fully-functioning pre-configured latest build from EmuCR (PCSX Reloaded Git (2019/03/07) - EmuCR) which I humbly suggest linking at the OP as an alternative.

-Unfortunately, though it already contains some plugins, the above build still requires certain specific plugins for decent optimal performance (from my experience).

-As for Graphics, the original "Pete's OpenGL2 Driver 2.9" (gpuPeteOpenGL2.dll) appears best performing. The OGL2Tweak comes with pre-configured xBRZ filter (which some may or may not like) and requires extra effort messing with ini file to obtain preferred results.

-As for Sound, "P.E.Op.S Sound Audio Driver 1.10" (spuPeopsSound_110b.dll) seems to be the best currently. I haven't encountered any problem with it yet.

-As for Controllers, "LilyPad 0.10" (LilyPad.dll) is working better than default plugin. Just don't forget to set Input API to "Raw input".

-Last, but not the least, since the developers were too lazy to put any indication of hotkeys (a simple txt won't kill I suppose), I was so close to dropping it. But finally I got them from a site and they are the same as ePSXe iirc.

F1: Save state
F2: Switch to next save slot
F3: Load state
F4: Display state screenshot
F5: Toggle SIO IRQ
F6: Toggle Black & White decoders
F7: Toggle XA
F8: Take a game screenshot (Windows Version only)
F9: Open the Disc tray
F10: Close the Disc tray
ESC: Return to the main window
Ctrl 1 to 5: Save state 1 to 5
Alt 1 to 5: Load state 1 to 5
Alt 0: Load state from last ESC quit
 
#1,073 ·
From what I've read, you have to switch the disc manually, press "Escape" to the menu and then continue the game by "Emulator > Run". I partially tried this with FFVII disc-1 to disc-2 and emulation kept running normally, whereas it simply hanged when I changed to a different game disc. I might well be wrong since I didn't have a save file to test properly.
 
#1,076 ·
@Polar-kun It is legend of dragoon.
I've converted all my games with PSX2PSP tool, and I've yet to get some problem with it, I'm guessing your file is just corrupted (or you are not using the right converter).
epsxe fully supports pbp (including choosing later discs), pcsxr seems to support only the first disc, but other than that its working. Never tried zebra (wasn't it xebra?!)
Also official psn pbp files might not work as they are encrypted, so there's that...
 
#1,077 ·
No, mine is not corrupt, it perfectly works on retroarch beetle hw. But I think I get what's happening.

It seems you are manually converting ps1 disc/iso into pbp format, right? Whereas the one I downloaded is the pre-converted one from the psn store. That would explain why my pbp won't work with standard emulators. I also encountered similar problem in the past when getting Lament of Innocence from psn store. It didn't work with pcsx2 even when I extracted the iso from the pkg file, so I thought my setup was wrong. Then I tried again with the non-psn iso rom and it perfectly worked despite practically identical with the psn iso down to the last bit (same size and date).

If you are using pbp files, I think you are better off with ppsspp since it has better compatibility with pbp files than standard ps1 emulators where standard iso format works better. That being said, since pcsxr is lacking full pbp support, I think you have no choice but to stick with epsxe unless you move on for retroarch :D (definitely better but a lot more sophisticated).
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top