Pete's Plugins to the Rescue

Configuring ePSXe and all the plugins that go along with it is more of an art than a science in some regards. Fortunately, there is a section of the ePSXe help file that has suggestions on where to start with settings for certain games. In the end, though, optimum image quality and performance only come from experimentation.

In choosing the plugins for our system, we wanted only the best. Everywhere we looked, we saw references to Pete Bernert and his PSX plugins. After taking a look at Pete's Homepage and playing around with some of the plugins he had created, we were convinced. Aside from writing high quality plugins, Pete is also a very cool guy and he had a lot of useful advice for us when we let him know that we would be tackling the issue of emulator benchmarking.



These are the settings that we specified in testing using Pete's OpenGL2 Plugin.


When we first took a look at Pete's OpenGL2 graphics plugin, we wanted to turn everything on, set to maximum and see what happened. Honestly, this isn't a good way to get anything useful done when working with an emulator. In fact, if all the different filtering options are enabled at the same time, what comes out is a blurry, fuzzy, nasty mess. In our quest for perfection, we humbly turned everything off and went through all the options one by one, slowly cranking up the settings and checking what effect they had on the two games that we would eventually end up testing with. Happily enough, we discovered that not everything needs to be turned on in order to end up with an indistinguishable rendering of either Final Fantasy IX or Gran Turismo 2. In order to limit the number of variables we were testing, we decided to stick with one list of settings that worked for both games (as shown above).

Here's a brief rundown of what some of the settings in Pete's OpenGL2 plugin do:

Internal X/Y resolution - This setting has the single largest impact on standard image quality that we saw. Native PlayStation resolution is very low and unless this setting is on high, images will be very pixilated and not very detailed. There are also very high settings which don't work on many cards, and really don't add as much as the step up from native resolutions to high resolutions.

Texture filtering - This setting determines what kind of filtering to do on different types textures. Adding texture filtering to 3D textures really helps, but since we are applying a full screen blur filter, the 2D filtering would just make things look fuzzier than we would like.

Hi-Res Textures - We can either choose "none", "2xSaI" or "stretched" here. 2xSaI is a popular filter for SNES emulators and works really well to smooth things out without introducing any blur. Unfortunately, 2xSaI diverges a bit from the original look and feel of the games on a television while incurring a bit more of a performance hit, so we decided to go with stretched and filtered hi-res textures (which does a good job of smoothing out pixilation without overly blurring things).

Use pixel shader for "PSX texture window" emulation - Repeated textures will be handled with a pixel shader rather than palletized textures (which helps with speed).

Off-screen drawing - Some games draw stuff off the screen and then put things back together when they need them. This is how Final Fantasy IX draws its battle system menus. Like the things says: standard should work for most games.

Framebuffer effects - Without setting this option to standard, the pre-battle swirls and some of the battle effects won't work in Final Fantasy IX. Full emulation doesn't seem to be necessary from any of the aspects of the game we tested.

Framebuffer uploads - This setting specifies how much direct uploading to the framebuffer the CPU can do. Setting this to full is useful for the Final Fantasy series, unless you don't mind missing some of the effects or minor details. This does have an impact emulator speed though.

Shader Effects - We chose to use an OpenGL ARB pixel shader that implements a full screen blur rather than the standard full screen filter (which is just a blur as well). Changing the level will increase or decrease the blur effect, but we find level one to work just fine. There are other shader options, but we stuck with the ARB option since the other useful shaders Pete provides are written in GLSlang (which only runs on ATI cards). Of course, it is important to note that since all the generic shaders that Pete writes are ARB shaders, ATI cards will have theoretically an easier time with them (though NVIDIA's unified compiler technology has improved a great deal since anyone really looked at ARB performance difference on the two architectures).

This brings us to my final point about Pete's plugins. Since Pete has an ATI Radeon 9700 card, Pete tests his programs on his ATI Radeon 9700 card. He is cool enough to write his generic stuff following ARB specifications, but this kind of setup is not optimal for NVIDIA GeForce FX cards. In this case, since the developer of the software isn't trying to sell something, Pete is not obliged commercially to support NVIDIA products as well as he supports ATI products. It also follows that NVIDIA wouldn't invest large amounts of time and energy in helping Pete support NVIDIA products. Where programmability issues are somewhat excusable on a commercial level (since NVIDIA invests time and money in game companies to help them write better code for the GeForce FX line), the sore spot is in independent development such as this. Here's to hoping that NVIDIA's upcoming line of cards will be easier from which to extract speed.

PlayStaiton Graphics The Testing Setup
POST A COMMENT

37 Comments

View All Comments

  • TrogdorJW - Thursday, March 04, 2004 - link

    Pretty interesting read. I highly doubt that emulation of any of the lesser consoles would prove to be a good benchmark, except as a CPU benchmark. Maybe N64 would be okay, but SNES, Genesis, and anything earlier are all so "simple" compared to modern 3D consoles that performance is almost a non-issue. Anyway, good article, even if it is inherently biased towards ATI. Not much that can be done about that, though, unless some skilled programmers with Nvidia hardware want to try and release a better plugin.

    My one thought is that even with the disclaimer up front stating that Pete owns a 9700 and thus his plugins are written and tested on ATI first and foremost, there are probably going to be some clueless people out there saying, "OMG ATI pwned Nvidia again." Then again, there's not much that can be done to help the clueless. Maybe someone should start up a charity for them? :) Anyway, I was thinking a little disclaimer at the bottom or top of each page of the article might be nice, but it's probably much more effort than it's worth.
    Reply
  • DerekWilson - Thursday, March 04, 2004 - link

    (#22) KGB:

    if you own a playstation (or have the legal rights to a playstation BIOS) you could rent a game from blockbuster, download the tools used in the article and play a game on your PC ... The problem with that is that my blockbuster doesn't rent out playstation games anymore :-(

    There is another option if you don't own a PS BIOS ... you can use an emulator with an HLE BIOS (at the cost of perfect BIOS support for your games). PCSX has a builtin HLE BIOS.

    (#21) Junkman:

    I hate to spoil it for everyone, so I hope someone else watched the same cartoons as I did in my formative years ... Adult Swim on the cartoon network has become my favorite stuff now, but this reference is a throwback to one of my favorite cartoon duos of all time ...
    Reply
  • KGB - Thursday, March 04, 2004 - link

    SO if i rent a game from blockbuster, pop it in my CD-ROM drive, the game works with my pc? Reply
  • Junkman - Thursday, March 04, 2004 - link

    Rubber pants and whipped cream????? Interesting article. Thanks Derek Reply
  • SDA - Thursday, March 04, 2004 - link

    Depends on what you define as fair, #19. It's a real-world benchmark, so above all else it's useful for determining how video cards perform in that specific application. Whether or not performance in it can be applied to other applications, ePSXe with Pete's OGL plugin is just one of (if not THE) best method of PSX emulation out there, so why not use it for a benchmark? Reply
  • boboy - Thursday, March 04, 2004 - link

    It's no insider secret that Pete Bernett uses ATI cards. He programs his plugins with very few outside testers, and he has a SERIOUS lacking of of nvidia testers. So much, he didn't even know his initial version of his OGL2 plugin didn't support Geforce 4 Ti cards on winXP until he signed on NGEmu a day later. He doesn't do anything like that on purpose, which is obvious since his OGL2 plugin is getting better and better with nvidia cards with every release. It's just that the usefullness of this test is next to nil because the plugin runs far better on ATi cards than NVidia cards.

    Although it should also be noted that OpenGL2 was made for compatibility, not visual quality. A lesser card can make a game look much prettier in full speed on his other plugins, although you'll often come across graphical glitches, and you'll need to be turning on special game fixes (hacks/workaronds) and the such for quite a few of the games. Hell, even my old TNT2 can run alot of psx games with good quality at 60fps.

    All in all, this was a very interesting read, as I follow the emulation scene myself. But in the end, I don't think these kind of benchmarks can give anywhere near as fair results than other benchmarks, programs that were designed to use the full extent of both card brands equally.
    Reply
  • elty - Thursday, March 04, 2004 - link

    ePSXe and Pete's plugin used to work with GeForce better. Pete has some updates, but ePSXe remains about unchanged. So do you have any insider info that it is written based on ATi card only before you flame? Mayber later we don't need any conclusion at all becasue all you will come up with is "Card A perform poorly on Game X becasue Developer M did it on purpose" or "It shows that CPU B pays money to all developers so it will run faster than CPU D" Reply
  • tfranzese - Thursday, March 04, 2004 - link

    Fair in my perspective, and interesting even though I don't delve into emulators much - I do find them entertaining from time to time. Reply
  • SDA - Thursday, March 04, 2004 - link

    It's a good idea, but if FFIX is any indication it's just barely too late, as the hardware used (even the 5700 Ultra) seems to be able to handle the games being used without much trouble. I know this might sound stupid, but is it possible to force antialiasing in the driver options and have it carry over to the game? Or was something that did this just as well already enabled, or does this not do anything? I was just thinking, because if it works like it does in un-emulated games it would strain the video cards more.. probably some reason this can't be done, though. In that case, what is it?

    Also, while it's interesting from an academic standpoint when real-world benches such as this favor one manufacturer's products over another, it doesn't change the validity of the benchmarks. After all, in real-world benchmarks you actually want to see how everything performs in that specific benchmark. In other words, yeah, in my opinion it's perfecty fair. That's just me, though.
    Reply
  • DerekWilson - Thursday, March 04, 2004 - link

    (#11) taleril:

    We think that's fair enough as well; now we have:

    "From our benchmarks, it is obvious that ATI Radeon cards are better suited for emulating the games that we tested under ePSXe and Pete's plugins with the settings we chose."

    It is definitely important to be specific about exactly what a part was better at doing than another part. It is not good practice to do otherwise.

    We feel that this is a fair comparison of ATI and NVIDIA products performance in the independant software development segment based on our statments on page 4 of the article. This is a different issue than that of corporate development since what we care about most is end user value. We are demonstrating the proper value of the hardware in the emulator space.

    I hope this clears things up a bit.
    Reply

Log in

Don't have an account? Sign up now