Next Generation Emulation banner
941 - 960 of 1628 Posts

·
Registered
Joined
·
128 Posts
@TheDimensioner
I suppose when the artists and designers created their work for these games it would have been in packages like 3D Studio Max and Lightwave, which wouldn't have used fixed point arithmetic or affine texture mapping. You're probably seeing these games, if not as intended, at least as they were seen by their creators :)

I've not followed PSX emulation very closely either, the CRT TVs of the day were much more forgiving to the Playstation than time and HD displays have been. I've tried out various PSX emulators for almost a decade now but the unstable vertices have always made games difficult to get into. Seeing edgbla's GTE accuracy technique was a real revelation.

I've integrated a fairly simple form of overclocking that someone else had implemented.
https://github.com/SonofUgly/PCSX-Reloaded/commit/3f11d29f31ca02575aeedf073e87ffee933effb0

It seems to be functionally similar to the implementation in epsxe, at least as far as my quick tests go. There are some interesting relationships between CPU clockspeed, music playback and GPU frame limiting that could probably do with some investigation.

@superjupi
I found the cause of the hangs in the OpenGL 1.78, at least in Chrono Cross. It was a change submitted to the PCSXR subversion in November 2013, just goes to show how long ago the last build was :p
I've reverted it in this build so you can see if it will fix the issues you've had with other games.

@curryking3
That sounds like the same clipping issue that others were noticing on racing games with polygons near the camera collapsing.

I really didn't expect to spend so much time on this either :p
At the moment my aim is to get something working for games like Spyro and maybe improving animations before making a 1.0 release. After that I've got some other things to do that I should stop avoiding, so I'll probably slow down updates considerably.


Build with simple overclocking and fix to GL 1.78 plugin.
WIP_PGXP_build_16_05_08.zip
 

·
Registered
Joined
·
138 Posts
@superjupi
I found the cause of the hangs in the OpenGL 1.78, at least in Chrono Cross. It was a change submitted to the PCSXR subversion in November 2013, just goes to show how long ago the last build was :p
I've reverted it in this build so you can see if it will fix the issues you've had with other games.
So far, that seems to have fixed every instance of black screen hang on start, though I still noticed an in-game hang testing Gran Turismo - demonstrations hang like GT4's do in PCSX2, which struck me as darkly amusing. The funny thing is, I reported that exact regression in the OpenGL plugin (many games failing to start, though the bug wasn't quite as prevalent at the time) in 2013, and it pretty much died with edgbla saying he couldn't reproduce the error in Linux. It took over a year for it to be sussed out that it was r87829 that broke the plugin in Windows, and I'm guessing now that it was never actually fixed in the source. Ouch.

Loving your work, thank you!
 

·
Registered
Joined
·
161 Posts
I think Simias and @tapeq deserve a lot of credit too. It was Simias' early implementation of the basic technique in the Beetle fork of Mednafen and Tapeq's adaptation to PCSXR that provided.
Your work is very important for psx emulation. Congrats. But I have a question:

Have you ever thought about working in an open source psx emulator?

I think your work would Be more future-proof if you worked for an emu like beetle-mednafen core for Retroarch, for example. Simias is working on it to bring 3D acceleration. I think your work on perspective correction would provide a real valor to The open source efforts.
 

·
Registered
Joined
·
308 Posts
It works!... well, for most games XD. First, I setted CPU overclock to 2.0x, and I got garbled sound. Then, I changed the audio plugin settings (spuPeopsSound 1.10 XAudio2 fix from initial post) to "1:Timer (system real-time clock)" and it really worked! The slowdown I had in Crash Team Racing (possible to "hear" in my videos, when getting fruit boxes) and Bushido Blade 2 (the level in the video is the slowest) are gone, FRAPS acuses a steady 30FPS in those games, with the 59.9FPS from the plugin UI. Tomba! 2 is also good. It works better with the video plugin framerate settings set to manual as well, because the auto setting seems to "fluctuate" more. Framerate disabled doubles the speed of most games.

In other games though, it's weird how they work with the overclock. Need for Speed: Porsche Unleashed works in 60FPS in the menus, and in-game is supposed to be 30FPS, but overclocked the FPS seems to get uncapped in-game and goes to 40 or even 50 FPS sometimes, but the video plugins FPS counter is lower, 39 to 49 FPS, and the sound is garbled regardless of settings. Using 1.5x though, fixes the sound issue and the plugin's FPS, but the game still goes fast, but not going beyond 40FPS. Physics goes crazy as well, the flickering textures and clipping gets worse, and sometimes car's polygons start to stretch slightly, mainly the rearview mirrors and rear bumber. If going too fast, it's possible to go through walls, and get stuck there forever XD. Raising the resolution to stress the GPU more (I guess) helps to keep the FPS on 30. But it's still cool to play like that! Sadly when I start to record a video with FRAPS, FPS goes down and garbled sound is back, so I can't show the fun. Final Fantasy IX has a similar issue, gets fixed with 1.5x, but the music continues to go fast. Silent Hill seems to "raise" the FPS cap to 60 during cutscenes, and it seems to be "true" 60 FPS (unlike the double speed of other games), because the subtitles follow the dialogues timing correctly. Some background music also goes faster though, and the camera starts shaking on long cutscenes. Those are the games that I mostly had slowdown, so I didn't test others that were "good" before the overclock setting.

Issues that I found with the setting other than game specific, is going beyond 2.0x CPU clock. Things actually get slower, with 5.0x being almost unplayable. But I guess that's because of my weak CPU (Athlon II x2 2.8Ghz) and the fact that the emulator is enhanced for single core (maybe?). 0.5x and 0.75x work as expected, slowing the speed of most games, some still play normally on menus. But that's a great thing that got included, so, thank you very much (again XD) @iCatButler for improving this (even more XD).
 

·
Registered
Joined
·
5 Posts
Your work is very important for psx emulation. Congrats. But I have a question:

Have you ever thought about working in an open source psx emulator?

I think your work would Be more future-proof if you worked for an emu like beetle-mednafen core for Retroarch, for example. Simias is working on it to bring 3D acceleration. I think your work on perspective correction would provide a real valor to The open source efforts.
My sentiments exactly.

@iCatButler: it would be a shame if your achievements were limited to a specific os platform and / or emulator

One question: With all these incredible things (widescreen, xBRZ and now perspective correction) is it theoretically possible to go even further and hack away draw distance limitations? :)
 

·
Registered
Joined
·
174 Posts
My sentiments exactly.

@iCatButler: it would be a shame if your achievements were limited to a specific os platform and / or emulator

One question: With all these incredible things (widescreen, xBRZ and now perspective correction) is it theoretically possible to go even further and hack away draw distance limitations? :)
Yeah draw distance hacks are also possible and so is real Z buffer.
 

·
Registered
Joined
·
202 Posts
@iCatButler
I tested PGXP now for the first time and it's really great. The Crash games are now as smooth as Dreamcast games, it's insane. It really adds an extra bit of smoothness compared to the previous hack. Too bad it's more glitchy, though.

I tried the Overclock hack on some games that were running slowly previously and I can report that Tekken 3 now runs at 60fps all the time, using 2.0x speed. Too bad some characters have holes, like in the Spyro games. Hogs Of War also runs in fullspeed using the overclock (it needs the DirectSound Driver for the sound to work). In some games the overclock hack causes odd behaviour, such as Crash 3 where it will run at double the speed, but that's not very critical since it runs well without the overclock. In Tobal No.2 it causes the menu music to speed up, the gameplay has correct speed though. Some other games I tried had menus running too fast as well.

One thing I noticed is that the hack seems be to ignored if you play Pandemonium (you can easily tell by the wobbling), it works in Pandemonium 2, though.
 

·
Registered
Joined
·
308 Posts
I tried to record some videos with the CPU overclock setting on x2.0, but since it uses the CPU more, it's harder to keep steady frames per second with FRAPS. Setting the resolution to 854x480 makes it easier, and since the ResHack is high enough, the game doesn't look so bad. Now that I replayed the game without looking so much at the FPS counter, I could notice other games "shaking" more, sometimes just the camera, other times the level. But that's only when the FPS is over 30, because on the heavier levels (first and second videos) where it's hard to keep 30 FPS, PGXP do it's work greatly, on the lighter levels, the slight shaking is noticeable. Tested Crash Team Racing only, this time.

 

·
Registered
Joined
·
128 Posts
Your work is very important for psx emulation. Congrats. But I have a question:

Have you ever thought about working in an open source psx emulator?

I think your work would Be more future-proof if you worked for an emu like beetle-mednafen core for Retroarch, for example. Simias is working on it to bring 3D acceleration. I think your work on perspective correction would provide a real valor to The open source efforts.
PGXP is entirely open source, being forked from PCSX-R with a compatible version of Tapeq's plugin, it relies on hooking into key function calls regarding memory transfers so wouldn't be possible for me to implement with something like ePSXe.
https://github.com/iCatButler/pcsxr
https://github.com/iCatButler/PeteOpenGL2Tweak

I can see that Mednafen might be a better target though, with greater prospects for the future and more active development.

At present PCSX-R does have several advantages for the project. The code base is mature and stable, meaning I'm unlikely to conflict with any ongoing work, and most importantly it's all written in a language I'm familiar with (I don't think I'd even heard of Rust until I started posting here :p).

PGXP as it stands is more of a proof of concept, and one that I'm still not entirely convinced will prove viable. Getting the remaining vertex data will either mean much more widespread mirroring of CPU operations or some form of mesh reconstruction that will make a best guess at the exact 3D position from the low precision coordinates.

If it does pan out though I think it would be a great feature for other emulators and I'd be happy to help others with porting it or even doing so myself if I have the time.
 

·
Registered
Joined
·
174 Posts
PGXP is entirely open source, being forked from PCSX-R with a compatible version of Tapeq's plugin, it relies on hooking into key function calls regarding memory transfers so wouldn't be possible for me to implement with something like ePSXe.
https://github.com/iCatButler/pcsxr
https://github.com/iCatButler/PeteOpenGL2Tweak

I can see that Mednafen might be a better target though, with greater prospects for the future and more active development.

At present PCSX-R does have several advantages for the project. The code base is mature and stable, meaning I'm unlikely to conflict with any ongoing work, and most importantly it's all written in a language I'm familiar with (I don't think I'd even heard of Rust until I started posting here :p).

PGXP as it stands is more of a proof of concept, and one that I'm still not entirely convinced will prove viable. Getting the remaining vertex data will either mean much more widespread mirroring of CPU operations or some form of mesh reconstruction that will make a best guess at the exact 3D position from the low precision coordinates.

If it does pan out though I think it would be a great feature for other emulators and I'd be happy to help others with porting it or even doing so myself if I have the time.
Mednafen isn't written in Rust(but in C and C++) that was Rustation which was written in Rust and Mednafen is much more stable and mature than PCSXR, at least if we are talking about software rendering. It does not use plugins so getting vertex data should be easier.
 

·
Registered
Joined
·
106 Posts
Mednafen have actually only software rendering, and a new opengl renderer (based on rustation) is actualy in private development (not public code or demo yet). This new renderer (still not avaible) will be written in c++ (ported from rust), it'll use opengl 3/3.3, and the guys workin on it are well aware of iCatButler's work: probably they are using his code allready.
 

·
Registered
Joined
·
1 Posts
The Overclock feature in Mednafen-Libretro operates differently than the overclock feature in this. It appears to remove bottlenecks, rather than actually overclock the CPU. It gives modest FPS improvements to many games, and removes slowdown. The benefit is that it appears to have zero draw backs.

I've already used it in a Symphony of the Night playthrough and it removed all the slowdown (eg. when an HP up potion appears after a boss).

3-Point bilinear would be a neat texture filtering option too. It's the texture filtering by the N64. It'd be kinda funny to have that in a PS1 emulator. It's already used in some N64 emulators.
 

·
Registered
Joined
·
128 Posts
@SpaceAgeHero
One question: With all these incredible things (widescreen, xBRZ and now perspective correction) is it theoretically possible to go even further and hack away draw distance limitations? :)
I believe draw distance hacks have been made for specific games but I don't think there's an easy technique that will work for all games.

@TheDimensioner I'm glad you found the overclock feature useful, it was pretty quick and simple to add.

I think I'd need to spend more time studying how PCSX-R handles timing to make it work better. Even at the stock speed I need to use GPU auto-limiting to 50 or 60 fps to prevent games running fast, so it appears to be using that to pace the CPU as well. The clockspeed telling the CPU how many instructions it can process during each of these time slices.

Ideally there would be a sync point that the CPU calls once in each time slice, so rather than allocating a set number of instructions the emulator lets it process up to that and then waits for the GPU limiter to let it go again. Maybe that's how Mednafen-Libretro's overclocking works.

@Monater I was referring to the Beetle-Mednafen core that Hylian mentioned, I should have been more specific. I was under the impression it might be partially written in Rust as it shares elements with Rustation and Rust was mentioned in a number of commits but, as otherman has pointed out, I appear to be mistaken.

Regardless, I didn't really want to bother the developers with what was (is?) a small personal project. I agree that Mednafen itself might have been a better starting point but PCSXR presented itself as suitable and with hardware rendering. I'm not sure I'd have attempted perspective correct texturing in software :p
 

·
Registered
Joined
·
62 Posts
PCSX-R provides many benefits which neither Ruststation nor LibRetro can provide.
Libretro is still in an early development stage and features, which are a standard in other emulators, are still missing or in development. The development of Ruststation started recently and is currently not major enough. Furthermore the Rust language is very special. To do prototyping and to enhance PSX features, PCSX-R is still the most advanced emulator.

Mednafen have actually only software rendering, and a new opengl renderer (based on rustation) is actualy in private development (not public code or demo yet). This new renderer (still not avaible) will be written in c++ (ported from rust), it'll use opengl 3/3.3, and the guys workin on it are well aware of iCatButler's work: probably they are using his code allready.
This is again an approach which is not supportive for the community (if it stays closed source and private). There are so many plugins which could provide necessary and helpful insights, but due to their closed source nature, nobody can benefit from their development. Therefore thumbs up for open source projects.
 

·
Registered
Joined
·
106 Posts
This is again an approach which is not supportive for the community (if it stays closed source and private). There are so many plugins which could provide necessary and helpful insights, but due to their closed source nature, nobody can benefit from their development. Therefore thumbs up for open source projects.
I totaly agree with you: I can not understand why make free emulator/plugin not open source.
 

·
Registered
Joined
·
62 Posts
Coming back to PGXP and GTE Accuracy:
In some games like Tomb Raider (especially Tomb Raider 3) there is some texture changing / morphing. So if the user is far away from the texture it looks different than when the user is very close. But as soon as the close texture is loaded it remains also from a far angle. I dunno if this is because of the texture cache, but it seems some textures must be reloaded. I will try to make a video from the issue. It would be interesting to know the technical background of this behaviour.
 

·
Registered
Joined
·
174 Posts
PCSX-R provides many benefits which neither Ruststation nor LibRetro can provide.
Libretro is still in an early development stage and features, which are a standard in other emulators, are still missing or in development. The development of Ruststation started recently and is currently not major enough. Furthermore the Rust language is very special. To do prototyping and to enhance PSX features, PCSX-R is still the most advanced emulator.



This is again an approach which is not supportive for the community (if it stays closed source and private). There are so many plugins which could provide necessary and helpful insights, but due to their closed source nature, nobody can benefit from their development. Therefore thumbs up for open source projects.
No he is wrong, Mednafen has the exact same renderer as rustation but ported to mednafen and nobody works on it in private. Simias simply works on it in his rustation repo.
 

·
Registered
Joined
·
174 Posts
@SpaceAgeHero
I believe draw distance hacks have been made for specific games but I don't think there's an easy technique that will work for all games.

@TheDimensioner I'm glad you found the overclock feature useful, it was pretty quick and simple to add.

I think I'd need to spend more time studying how PCSX-R handles timing to make it work better. Even at the stock speed I need to use GPU auto-limiting to 50 or 60 fps to prevent games running fast, so it appears to be using that to pace the CPU as well. The clockspeed telling the CPU how many instructions it can process during each of these time slices.

Ideally there would be a sync point that the CPU calls once in each time slice, so rather than allocating a set number of instructions the emulator lets it process up to that and then waits for the GPU limiter to let it go again. Maybe that's how Mednafen-Libretro's overclocking works.

@Monater I was referring to the Beetle-Mednafen core that Hylian mentioned, I should have been more specific. I was under the impression it might be partially written in Rust as it shares elements with Rustation and Rust was mentioned in a number of commits but, as otherman has pointed out, I appear to be mistaken.

Regardless, I didn't really want to bother the developers with what was (is?) a small personal project. I agree that Mednafen itself might have been a better starting point but PCSXR presented itself as suitable and with hardware rendering. I'm not sure I'd have attempted perspective correct texturing in software :p
Mednafen may have started as a personal project but now it has a public repository on Github where Simias and Twinaphex are working on it so you won't be bothering anybody.
 
941 - 960 of 1628 Posts
Top