GSdx: Difference between revisions

From PCSX2 Wiki
Jump to navigation Jump to search
Line 10: Line 10:
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.
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 choise.
* 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 choise.
* SSSE3 -- is Intel 2006 revision to '''SSE3''' CPU extension supported only by Core 2 processors. '''Warning''': If you try to use dll of this version on Pentium 4/AMD CPU you will encounter a crash when the code reach SSSE3 optimized part (but it may not happen for quite a time).
* SSSE3 -- is Intel 2006 revision to '''SSE3''' CPU extension supported only by Core 2 processors. '''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 (but it may not happen for quite a time).
* 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 [http://en.wikipedia.org/wiki/Core_2#Penryn 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 try to use dll of this version on non-supported CPU you will encounter a crash when the code reach SSE4 optimized part (but it may not happen for quite a time).
* 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 [http://en.wikipedia.org/wiki/Core_2#Penryn 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 (but it may not happen for quite a time).


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.
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.

Revision as of 19:56, 11 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 is 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 choise.
  • SSSE3 -- is Intel 2006 revision to SSE3 CPU extension supported only by Core 2 processors. 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 (but it may not happen for quite a time).
  • 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 (but it may not happen for quite a time).

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 only the fullscreen resolution. It does not affect in any way the resolution in windowed mode. 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 choise between DirectX 9 and DirectX 10 (when you have met the requirement for DirectX 10 otherwise DirectX 9 will be the only choise 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 deinterlace 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 visials. 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 -- ...
  • Texture filtering -- ...
  • Logarithmic Z -- ...
  • 8-bit textures -- ...
  • Alfa correction (FBA) -- ...
  • 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 fulllscreen in windowed.
  • Edge anti-aliasing (AA1) -- can be used in sofware renderer modes only. THis can improve the result picture but applying anti-aliasing algorithm but will also reduse the performance.
  • Output merger blur effect -- ...

Hidden GSDX settings in GSdx.ini

Hidden settings in ini file


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 mode 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 noticable 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 spect ratios. Includes 4x3, 16x9 and "stretch to screen".
  • F7 -- (?) some kind of deinterlace mode, please add info here
  • 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 hi-res rendering into native resolution (which is rather small, for ex. 512x448 for NTSC-U). The native resolution can be used to avoid some severe graphics glitches occured in some games in video or special sequences when they are rendered in high resolutions (for example in 1024x768). Some 2D objects can also suffer from wrong rendering in hi-res modes. You can switch runtime to native resolution finish the critical game section and switch back to hi-res.