PlayStation Graphics

There are quite a few aspects to emulating PlayStation graphics, some handled by the PSX emulator and some handled by the graphics plugin. First and foremost, an emulator must take care of all the tasks a normal PlayStation would need to handle. This includes playing movies (emulating the motion decoder: MDEC), handling 2D sprites, rendering 3D scenes and textures, and emulating effects originally produced via a combination of the PSX CPU and GPU (this can result in sometimes expensive uploads to the framebuffer (GPU memory containing the next frame to be displayed) from the CPU when emulating the PSX on a PC). These framebuffer intensive operations show up a lot in the Final Fantasy series of games (e.g. the pre-battle swirl effect, and certain in battle effects).

On top of the necessary tasks, it is very desirable to enhance the graphics as much as possible. Because the PlayStation targets television (essentially a 640x480 screen) and texture resolutions are generally low, highly pixilated images can result when playing games on a high resolution computer monitor. Graphics plugins are able to upsample, stretch, filter, and otherwise manipulate textures in order to make images a little more palatable. Beyond texture filtering, full screen filtering can also be implemented in order to assist in making the emulation experience just that much nicer. Standard emulator filters, such as TV scanlines, can be added, and fullscreen blur effects help assuage the lack of antialiasing. One of the coolest trends is the emerging use of pixel shaders to perform these filtering effects (and other parts of the graphics process as well), but more on that later.

Every game is different, and every game will stress different parts of the system in different ways. In order to get the most out of your library, it will be necessary to play with the settings for each game individually and/or use a front end to save your configuration data for each game.

As a final note on console game system graphics, it is important to understand that vsync is a way of life. Since consoles are built for TVs and TVs have fixed refresh rates; every console game out there makes use of the refresh rate as a system timer. It would be wasteful of precious resources to program otherwise. Of course, this adds an interesting dimension to emulation. Running your emulated game at anything other than 59.94 frames per second (in the National Television System Committee (NTSC) parts of the world) will result in your game running either faster or slower than it was intended. Though more of a side effect than a feature, sometimes this is desireable (memory card load/store times are much faster when the frame rate is higher, and for those without the necessary reflexes, slowing the game down can prove useful).

So, how does all this fit together for our PlayStation emulation project? For that, we need only to turn to Pete.

ePSXe: The Emulator of Choice Pete's Plugins to the Rescue
Comments Locked

37 Comments

View All Comments

  • TrogdorJW - Thursday, March 4, 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.
  • DerekWilson - Thursday, March 4, 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 ...
  • KGB - Thursday, March 4, 2004 - link

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

    Rubber pants and whipped cream????? Interesting article. Thanks Derek
  • SDA - Thursday, March 4, 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?
  • boboy - Thursday, March 4, 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.
  • elty - Thursday, March 4, 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"
  • tfranzese - Thursday, March 4, 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.
  • SDA - Thursday, March 4, 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.
  • DerekWilson - Thursday, March 4, 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.

Log in

Don't have an account? Sign up now