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

  • Snoop - Thursday, March 04, 2004 - link

    I found the article very interesting, good work derek. Reply
  • bigpow - Thursday, March 04, 2004 - link

    This article makes Tom's Hardware ones look smart & usefulLLLLL Reply
  • bigpow - Thursday, March 04, 2004 - link

    Another fine example of a plain stupid article.

    If one really wants to play those console games, he/she should buy the console system instead of messing around with a more expensive GPU & unstable emulators.

    Ridiculous.
    Reply
  • taleril - Thursday, March 04, 2004 - link

    "From out benchmarks, it is obvious that ATI Radeon cards are better suited for emulating the games that we tested."

    should be:

    "From out(sp?) benchmarks, it is obvious that ATI Radeon cards are better suited for emulating the games that we tested on an emulator programmed with ATI cards in mind."

    To be fair, I think it should be reiterated in the conclusion that these emulators(or the plugins used) were written specifically on and for ATI hardware.

    It's a cool benchmark, but the more I think about it, the less useful it seems to be. At least from a graphics hardware comparison standpoint.

    taleril
    Reply
  • DerekWilson - Thursday, March 04, 2004 - link

    There are no xbox, gamecube, or ps2 emus that are in full working order. We didn't want to include one of each since its more of just a show and tell kind of thing ...

    the gamecube emus is currently running one game at full speed (Busta-a-Move 3000 -- which I don't own and couldn't find in time for the review), and lots of games getting past intros to actual 3d that looks somewhat near how it should (while mostly running slowly at the moment). Of course, it may take quite a push to get further since (apparently) the ArtX/ATI graphics card in the system is insane.

    on the PS2 front, we could see some user demos and a title screen or two last time I checked. The PS2 has an advantage: its IOP (IO Processor) is essentially a PSX (that's why its backwards compatible). Of course, the vector processors and insane data paths on the PS2 will be a bit of a hump to get over for emulating games well ... I know the most about PS2 as I did a senior project involving writing a PS2 game.

    and, contrary to popular opinion, xbox won't be that much easier to emulate than other consoles. It has obvious advantages, but the big problem comes in trying to emulate the GPU itself, the relationship it has with the CPU, and the tweaked out programming interfaces and systems of the entire console. Programmers will run into similar issues that all console emulator teams have seen. Actually, if programmers want to make an interpretive version of their emulator, they'll loose much of the x86 to x86 advantage ... Unfortunately, I know the least about the XBox among the consoles (Anand is the XBox guy around here).

    But rest assured that if there is a major advance on any of the three fronts, we'll cover it as best we can.
    Reply
  • Pumpkinierre - Thursday, March 04, 2004 - link

    I would have thought that Xbox with its near desktop computer architecture would have been the easiest to emulate but you barely give it a mention. Any reasons why?
    Reply
  • CZroe - Thursday, March 04, 2004 - link

    Who else has personally backed-up a copy of Wind Waker and executed it on both the emulator and the console?

    I have, and I believe I beat Derek Wilson and the Anand crew to it ;)
    Reply
  • DerekWilson - Thursday, March 04, 2004 - link

    It is very important to note that even if there are many systems out there that can run ePSXe and emulate a game well, you will be loosing out on image quality if you can't pump the internal resolution, run DX9 pixel shaders, and still have room for texture and full screen filters...

    If we wanted to "just run" a playstation game with no regard to quality, we would be looking at running the playstation at somewhere around 800fps (interal framerate) on most of these cards for most situations. Turning on the features drops that significantly.

    Honestly, my PSX games can look better emulated than they did on my Playstation with the right settings, and only the high end cards and processors can handle the right settings as far as our testing has seen.

    And yes, we just popped the CD in and ran the game ... in case anyone is wondering, we used the P.E.Op.S. CDR driver and set it to threaded reading with maximum readahead to minimize disk access impact ... Of course, we also made sure that our benchmarks would run without needing to hit the CD rom drive.

    Since PSX emulators have built in ISO support, in the future we may pull the ISO and run it from our hard drives in order to eliminate the possibility of CD read latency altogether.

    By the way, I wish we had saved the full uncompressed screenshots as the scanline effect really doesn't seem to like being scaled and compressed. ;-) The games really did look great.
    Reply
  • ChronoReverse - Thursday, March 04, 2004 - link

    Playstation emulation does not require the use of roms.

    My copy of Final Fantasy Tactics (Greatest Hits version) runs quite well on ePSXe.
    Reply
  • Lycias - Thursday, March 04, 2004 - link

    Ok so after reading this article I wondered where they were playing the game from. I have used SNES and NES emulators before and I downloaded rom files of games I leagaly owned from various websites. There does not seem to be web sites with playstation rom equivalant files out there. Do they just put the disk is the cd drive and then use the emulation software. Please enlighten me as I've been dying to play Final Fantasy VII again. Thanks Reply

Log in

Don't have an account? Sign up now