Console Emulators: Our Newest Benchmark
by Derek Wilson on March 3, 2004 11:33 PM EST- Posted in
- GPUs
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.
37 Comments
View All Comments
takuma683 - Thursday, March 11, 2004 - link
Responding the question of user Shinei:Yes, most Playstation games run at 30 effective fps, some at 15, 10 or even slower, and some do reach 60 (59.94 actually) fps. However, the "fps" displayed on ePSXe is "emulated" fps, that is, TV frames (vertical blanks) per second emulated. Games that run at 30 fps display a frame every two vertical interrupts.
Also a note to all: you don't need an external program to display real fps using ePSXe with Pete's plugins, just turn on the fix "Enable PC fps calculation" and it'll show you the actual fps.
Possessed Freak - Monday, March 8, 2004 - link
DerekWilson -'but this reference is a throwback to one of my favorite cartoon duos of all time ... '
But where are we going to find a duck and a rubber hose at this hour?
But rubber chafes me so.
---
Did I make the right educated guess?
Shinei - Sunday, March 7, 2004 - link
tsee: Aren't PSX games designed to run at 30fps, with the exception of a few later-generation games?tsee - Saturday, March 6, 2004 - link
Even when I tried to limit FPS to 59.97 all the games run super fast. When I use the outdated VGS not as many games run but the ones that do run at normal speeds.BigFatCow - Saturday, March 6, 2004 - link
we are adding PlayStaion emulationtypo.
BigFatCow - Saturday, March 6, 2004 - link
PeteBernert - Friday, March 5, 2004 - link
I want to add a small comment (since my plugins seems to be mentioned in the article ;)) about the "developed on/for ATI cards" confusions: all of my psx gpu plugins (Win D3D/OGL1/OGL2; Linux Mesa/XGL2) were in fact developed on nVidia cards. Starting 1999 on my good ole TNT1 card, later on GF1/GF3/GF4 ones. Yes, spring 2003 I got a R9700Pro (since the first GFFX cards didn't look to promising - hot and noisy - by then), but all major coding (and optimization) work was already finished at this point.So indeed only the pixel shader effects in the OGL2/XGL2 plugins were done with ATI hardware (using no special ATI extensions, though, only the standard ARB ones which are available on nVidia's DX9 cards as well).
Anyway, I am pretty sure that you also can find psx games which will run faster on nVidia cards (for example if many framebuffer reads are needed - even old nVidia cards are still two times faster with such reads than the newest ATI ones), so the spotlight on the two games mentioned in the article is just this: a spotlight. No need for grey hair ;)
ChronoReverse - Friday, March 5, 2004 - link
Arguably, you could say that it's pretty boring for the majority of people out there that the A64 plays game X a few frames faster than a P4 (or vice versa).These are the people buying Dells and only caring whether or not the system can play the game.
In any case, I liked this article since I have a passing interest in emulation and emulation is a good way to test both the graphics and cpu subsystems.
DerekWilson - Friday, March 5, 2004 - link
#25haha ... yeah, I could see how that would be funny ;-)
exciting from a technological perspective ... really freaking boring from any other perspective :-)
Cybercat - Friday, March 5, 2004 - link
"Of course, getting 4 frames per second of something kind of close to what we see on the Game Cube is still pretty exciting."LOL :p Yeah I bet.