Difference between revisions of "GSdx"

From PCSX2 Wiki
Jump to navigation Jump to search
m (Hidden GSDX settings in GSdx.ini)
(Quick guide to the settings)
Line 26: Line 26:
 
** '''Native''' resolution. In contrast with higher (in most cases) '''D3D internal resolution''' is more compatible mode but suffers from poor visuals. This is the native PS2 mode you'll see picture this way when you're playing on the real PS2. Use it when you cannot play in hi-res because of unbearable artifacts. You can also switch between the two in runtime, see '''List of ingame keys'''-'''F9'''.
 
** '''Native''' resolution. In contrast with higher (in most cases) '''D3D internal resolution''' is more compatible mode but suffers from poor visuals. This is the native PS2 mode you'll see picture this way when you're playing on the real PS2. Use it when you cannot play in hi-res because of unbearable artifacts. You can also switch between the two in runtime, see '''List of ingame keys'''-'''F9'''.
 
* '''SW renderer threads''' -- chooses the number of threads (pipes) to render the picture in software mode. Every additional thread here means one additional CPU core will be used in the rendering process. You're still going to need at least one core left for the PCSX2 itself so if you, for instance, have 4 cores (quad core CPU) you may want to set this field to 3.
 
* '''SW renderer threads''' -- chooses the number of threads (pipes) to render the picture in software mode. Every additional thread here means one additional CPU core will be used in the rendering process. You're still going to need at least one core left for the PCSX2 itself so if you, for instance, have 4 cores (quad core CPU) you may want to set this field to 3.
* '''Texture filtering''' -- filters textures when resizing them (like cubic or linear filtering). The whole image may look better with this option but you may loose some FPS.
+
* '''Texture filtering''' -- filters textures when resizing them (like cubic or linear filtering). The whole image may look better with this option but you may loose some FPS. Apart from ON and OFF there's the third GRAYED option. GSDX will apply filtering only for "3D textures" when this option is selected so some 2D sprite games may look better. Leave this option ON by default unless noted otherwise for a certain game you're going to play.
 
* '''Logarithmic Z''' -- changes the way the third (depth) coordinate is treated (logatithmic or linear). This option should be left ON unless you experience some weirdness in the objects (like seeing through them).
 
* '''Logarithmic Z''' -- changes the way the third (depth) coordinate is treated (logatithmic or linear). This option should be left ON unless you experience some weirdness in the objects (like seeing through them).
 
* '''8-bit textures''' -- stores textures in 8-bit (256 color) mode. It's an attempt to gain additional speed while transferring 8-bit textures and have more free space in video memory. May or may not have some positive impact for some cards with some games.
 
* '''8-bit textures''' -- stores textures in 8-bit (256 color) mode. It's an attempt to gain additional speed while transferring 8-bit textures and have more free space in video memory. May or may not have some positive impact for some cards with some games.

Revision as of 10:21, 13 October 2009

GSDX is the most known graphics plugin for PCSX2 dated back to 2007 and initially developed by Gabest (although he still is it's main contributor). GSDX uses DirectX and is currently able to utilize DirectX 9 and DirectX 10 APIs. It also can switch between hardware rendering and software one. Some of many of the impressive features of GSDX are high rendering resolution, anti-aliasing filtering, many deinterlacing modes, full screen mode, correctable aspect ratio, et cetera. DirectX 10 mode is confirmed by many to be the most compatible (in contrast with DirectX 9) but some game will still be working better under DirectX 9. You can find the official GSDX thread here.

Hardware requirements

Minimum hardware requirements are: a graphics card with pixel shader v2.0 (which's pretty much any modern graphics card) and SSE2 CPU (all non-SSE2 CPU are not usable with PCSX2 and they are quite old). Most of the PCSX2 emulated games are not hungry for GPU power but rather bottlenecked by CPUs so you will not need anything extra special for your games in emulator. However some certain scenes in some games can be slowed down significantly if your card is weak. It maybe because it's hard to optimize graphics code when you're working with a common emulation case rather than applying your code for each game individually. Also beware using PCSX2 with graphics hungry games on laptops. Some of them are not supposed to work on constant 100% load and can overheat easily damaging your laptop.
For DirectX 10 mode you will need DirectX 10 level card (for nVidia it's from 8xxx series, for AMD it's from HD2xxx desktop and from HD2400 laptop) running under Windows Vista (or later).
Please do not forget to update your DirectX (Web installer, Runtime package) specifically if your PCSX2 does not want to work demanding to update DirectX or complaining about some missing dlls.
You will also need to update your system with Microsoft Visual C++ 2008 SP1 Redistributable Package (x86, x64).

In most cases you'll have several dlls for each GSDX version. SSE2, SSSE3 and SSE4. Which one to choose depends on your CPU installed.

  • SSE2 -- is Intel 2001 CPU extension features many additional instructions for 64-bit and floating point operations. AMD adopted these instructions from Athlon 64 CPUs in 2003. Your CPU will surely support SSE2 and thus this dll will be your safe choice.
  • SSSE3 -- is Intel 2006 revision to SSE3 CPU extension supported only by Core 2 processors and higher. Warning: If you will try to use SSSE3 optimized dll on Pentium 4/AMD CPU you will encounter a crash whenever the code reaches SSSE3 optimized part (it may not happen for some time but it will occur eventually).
  • SSE4 -- is Intel 2006 CPU extension consists of two subsets 4.1 and 4.2. GSDX only uses 4.1 set so you'll need Intel CPU with codename Penryn or newer (E7xxx and higher for Code 2 Duos and Q9xxx and higher for quads). As of now AMD only partly supports SSE4 (calling it SSE4a) which sadly will not be enough for GSDX. Warning: If you will try to use SSE4 optimized dll on unsupported CPU you will encounter a crash whenever the code reaches SSE4 optimized part (it may not happen for some time but it will occur eventually).

The difference between these versions is vague. You won't notice any FPS gain when you switch from SSE2 to SSE4 version but theoretically there may be some parts in some games that may benefit from these optimizations.

Quick guide to the settings

When setting up GSDX you'll have to get used to the following terms:

  • Resolution is the default resolution. It does affect both full screen and windowed modes. The higher resolution has almost no speed impact when plugin renders the picture (because the picture is actually resized to this resolution from the internal resolution).
  • Renderer -- A choice between DirectX 9 and DirectX 10 (when you have met the requirement for DirectX 10 otherwise DirectX 9 will be the only choice here). There are two subtypes for each API:
    • Hardware renderer -- uses your graphics card to render the picture. This is the fastest the the most preferred mode.
    • Software renderer -- uses your CPU to render the picture. There will be ONLY native internal resolution available (thus poor looking visuals). But in cases of some games this mode gives much more correct picture fixing many GFX related artifacts. Unfortunately GSDX requires much CPU power to render with software renderer even in internal resolution (without anti-aliasing or anything else applied) so you may end up with 3-10fps unplayable but correctly rendered game (some games are rendered quite fast though). Note also that PCSX2 is very CPU hungry but currently supports only 2 cores (the third core may also help a wee when used by different system processes leaving first two exclusively to PCSX2) thus if you have 3 or 4 core CPU you may consider using them for GSDX working in this mode increasing the render speed dramatically with every additional core (see SW renderer threads).
  • Interlacing -- is used to choose the default deinterlacing mode when starting the emulation process. For more detailed explanation see List of ingame keys-F5.
  • Aspect ratio -- is used to choose the default aspect ratio mode when starting the emulation process. For more detailed explanation see List of ingame keys-F6.
  • D3D internal resolution -- is used to set the render resolution target. The higher resolution you choose here the bigger picture will be rendered before being resized into your screen resolution thus you'll see more clear and crisp visuals. Unfortunately all those game you'll be playing were created and tested for lower native resolution (~500 x ~450) so some picture parts or objects may look wrong (displaced/framed/no image/invalid colors, etc.) when rendered in higher resolution. These artifacts you may eliminate only by using native resolution. Increasing internal resolution will impact the rendering speed so the higher resolution you'll set the more powerful graphics card you'll need to have.
    • Native resolution. In contrast with higher (in most cases) D3D internal resolution is more compatible mode but suffers from poor visuals. This is the native PS2 mode you'll see picture this way when you're playing on the real PS2. Use it when you cannot play in hi-res because of unbearable artifacts. You can also switch between the two in runtime, see List of ingame keys-F9.
  • SW renderer threads -- chooses the number of threads (pipes) to render the picture in software mode. Every additional thread here means one additional CPU core will be used in the rendering process. You're still going to need at least one core left for the PCSX2 itself so if you, for instance, have 4 cores (quad core CPU) you may want to set this field to 3.
  • Texture filtering -- filters textures when resizing them (like cubic or linear filtering). The whole image may look better with this option but you may loose some FPS. Apart from ON and OFF there's the third GRAYED option. GSDX will apply filtering only for "3D textures" when this option is selected so some 2D sprite games may look better. Leave this option ON by default unless noted otherwise for a certain game you're going to play.
  • Logarithmic Z -- changes the way the third (depth) coordinate is treated (logatithmic or linear). This option should be left ON unless you experience some weirdness in the objects (like seeing through them).
  • 8-bit textures -- stores textures in 8-bit (256 color) mode. It's an attempt to gain additional speed while transferring 8-bit textures and have more free space in video memory. May or may not have some positive impact for some cards with some games.
  • Alfa correction (FBA) -- is a correction to make some textures partly or fully transparent (as required by the emulation) but may cause unusual slowness in some games. Should be ON by default unless your game is slowed down but this option (This, for example, may help games like Super Robot Taisen Original Generations).
  • Wait for VSync -- setting this may give you less flickering picture for CRT monitors but may result in poor performance if your machine is not fast enough for the emulated game.
  • Windowed -- chooses the default option between full screen or windowed mode.
  • Edge anti-aliasing (AA1) -- can be used in software renderer modes only. This can improve the result picture by applying anti-aliasing algorithm (required by emulation in some games) but will also reduse the performance.
  • Output merger blur effect -- ...

Options appear in older version of GSDX (obsolete options)

  • NLOOP hack -- is used to fix some problems in Final Fantasy games. Useless for any other purpose.
  • Pixel shader -- is used to manually specify the shaders version. (2.0 or 3.0 for DirectX 9 only). Though changing version can theoretically make some difference usually it really doesn't matter which one to choose. For cards without 3.0 shader support (older ones) this dialog is quite useless. For DirectX 10 modes plugin will use 4.0 shaders.
  • Enable tv-out -- is used to display the output on your TV.

Hidden GSDX settings in GSdx.ini

  • pixoff_x=0, pixoff_y=0

Use these two settings (one for either axis) to lessen the ghosting and maybe the overbloom effect significantly.

You will have to experiment the values as they seem to be game and resolution dependent.

possible settings:

0 = off -n = shifting left(x) or down(y) depending on the axis n = shifting right(x) or up(y) depending on axis

List of games will perform better in DirectX 9 mode

Please add some info here!

List of ingame keys

The information on hotkeys usable by GSDX is scarce and hard to find. All shortcuts listed here are accessible at any time whenever the emulated game is running.

  • F5 -- cycle-switches through interlacing modes. Those modes are useful when you're playing NTSC games or game have some "lining" artifacts. On the real PS2 those "artifacts" are used to present the picture in the most smooth way possible but they can become quite noticeable and bothersome when you play your game on the PC. This feature tries to help solving the problem but some cases are still incurable. If you like to read more on deinterlacing, try Wikipedia article. Note that some modes can slightly decrease performance while the others can blur the whole picture, decreasing the amount of details thus deinterlacing is to be used only when it's necessary. GSDX supports the following modes:
    • None -- no deinterlacing is applied (default)
    • Weave tff
    • Weave bff
    • Bob tff
    • Bob bff
    • Blend tff
    • Blend bff
  • F6 -- cycles through different aspect ratios. Includes 4x3, 16x9 and "stretch to screen".
  • F8 -- takes the screenshot of the current screen. Screenshots are taken in the current rendering resolution (not the resolution of your GSDX window) and stored in snaps folder of your PCSX2.
  • F9 -- switches from the Hardware rendering into Software rendering which is always in native resolution. Software render and native resolution can both be used to avoid some severe graphics glitches occurred in some games in video or special sequences when they are rendered in not-native resolutions or when the hardware render has bugs like with "Tales of Legendia". Some 2D objects can also suffer from wrong rendering in not-native resolution modes. You can switch runtime to Software render finish the critical game section and switch back to Hardware.
  • DEL -- (?)
  • END -- (?)