PCSX2: Difference between revisions

No edit summary
Issues: Emulator issues is no longer in the page (for some reason), so no point in keeping the Issues section here unless someone can rewrite it for current PCSX2 emulation issues if any
 
(28 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Infobox emulator
{{Infobox emulator
|logo = PCSX2-Logo.png
|logo = PCSX2logo.png
|logowidth = 265
|logowidth = 265
|version = {{Version|PCSX2}}
|version = {{Version|PCSX2}}
|active = Yes
|active = Yes
|platform = [[Emulators on Windows|Windows]], [[Emulators on Linux|Linux]], [[Emulators on macOS|macOS]]
|platform = [[Emulators on Windows|Windows]]<br/>[[Emulators on Linux|Linux]]<br/>[[Emulators on macOS|macOS]]
|target = [[PlayStation 2 emulators|PlayStation 2]]<br><small>[[PlayStation_2_emulators#Hardware_features_and_accessories|PlayStation (Backwards Compatibility)]]</small>
|target = [[PlayStation 2 emulators|PlayStation 2]]<br><small>[[PlayStation_2_emulators#Hardware features and peripherals|PlayStation (Backwards Compatibility)]]</small>
|developer = [https://pcsx2.net/meet-the-team.html PCSX2 Team]
|developer = [https://pcsx2.net/meet-the-team.html PCSX2 Team]
|website = [https://pcsx2.net/ PCSX2.net]
|website = [https://pcsx2.net/ PCSX2.net]
Line 12: Line 12:
|license = {{License|GPLv3}} ('''current''')<br>former licenses: {{License|LGPLv3}} (0.9.7-2.1.45), {{License|GPLv2}} (until 0.9.6)
|license = {{License|GPLv3}} ('''current''')<br>former licenses: {{License|LGPLv3}} (0.9.7-2.1.45), {{License|GPLv2}} (until 0.9.6)
|prog-lang = {{Proglang|C++}}
|prog-lang = {{Proglang|C++}}
|support = [https://github.com/sponsors/PCSX2 GitHub Sponsor]<br>[https://ko-fi.com/f0bes/ Ko-fi (F0bes)]
|support = [https://github.com/sponsors/PCSX2 GitHub Sponsor]<br>[https://liberapay.com/PCSX2/donate Liberapay]<br>[https://ko-fi.com/f0bes/ Ko-fi (F0bes)]
|compatibility = [https://pcsx2.net/compat/ Compatibility list]
|compatibility = [https://pcsx2.net/compat/ Compatibility list]
|bios = [[Emulator_Files#PlayStation_2|Required]]
|bios = [[Emulator_Files#PlayStation_2|Required]]
}}
}}


'''PCSX2''' is an open-source [[PlayStation 2 emulators|PlayStation 2 emulator]] for Windows and Linux. Since 2016, it has also supported the [https://forums.pcsx2.net/Thread-PSX-Mode-Unofficial-Compatibility-List PlayStation 2's backward compatibility mode] for [[PlayStation emulators|PlayStation]] games.<ref>https://github.com/PCSX2/pcsx2/pull/1571</ref>
'''PCSX2''' is an open-source [[PlayStation 2 emulators|PlayStation 2 emulator]] for Windows and Linux. Since 2016, it has also supported the [[PlayStation_2_emulators#Hardware features and peripherals|PlayStation 2's backward compatibility mode]] for [[PlayStation emulators|PlayStation]] games.<ref>https://github.com/PCSX2/pcsx2/pull/1571</ref>


==Download==
==Download==
Line 23: Line 23:
|-
|-
|align=center|{{Icon|Win|Lin|Mac}}
|align=center|{{Icon|Win|Lin|Mac}}
|'''[https://pcsx2.net/downloads/ Stable and nightly builds]'''<br/><small>Similar to Dolphin, in future PCSX2 team will drop stables to a more rolling release.[https://old.reddit.com/r/emulation/comments/1e1zqag/pcsx2_stable_200_released_13_july_2024/]</small>
|'''[https://pcsx2.net/downloads/ Stable and nightly builds]'''
|-
|align=center|{{Icon|Mac}}
|''[https://github.com/tellowkrinkle/pcsx2/releases tellowkrinkle builds]'' '''(obsolete)'''
|-
|-
|colspan=2|<hr/>
|colspan=2|<hr/>
Line 39: Line 36:
=====Compatibility with obsolete hardware and OSes=====
=====Compatibility with obsolete hardware and OSes=====
{{Main|Emulators on legacy Microsoft products}}
{{Main|Emulators on legacy Microsoft products}}
{{Main|Emulators on Legacy systems}}
Windows XP and Direct3D9 support was dropped after stable release [https://github.com/PCSX2/pcsx2/releases/v1.4.0 1.4.0]. Windows 7, Windows 8.0, and Windows 8.1 and 32-bit support was dropped after stable release [https://github.com/PCSX2/pcsx2/releases/v1.6.0 1.6.0]. Despite these are not being officially supported, you can use supported newer nightly builds compared to those stable builds. For example: PCSX2 v1.7.3581 can work on Windows 7 with a few workarounds, you'll need:
Windows XP and Direct3D9 support was dropped after stable release [https://github.com/PCSX2/pcsx2/releases/v1.4.0 1.4.0]. Windows 7, Windows 8.0, and Windows 8.1 and 32-bit support was dropped after stable release [https://github.com/PCSX2/pcsx2/releases/v1.6.0 1.6.0]. Despite these are not being officially supported, you can use supported newer nightly builds compared to those stable builds. For example: PCSX2 v1.7.3581 can work on Windows 7 with a few workarounds, you'll need:


Line 50: Line 48:
*Latest wxWidgets build (but its not compatible with Win7, 8 and 8.1 workaround because of fast memory implementation): [https://github.com/PCSX2/pcsx2/releases/tag/v1.7.3771 v1.7.3771].
*Latest wxWidgets build (but its not compatible with Win7, 8 and 8.1 workaround because of fast memory implementation): [https://github.com/PCSX2/pcsx2/releases/tag/v1.7.3771 v1.7.3771].
*Latest 32-bit supported build: [https://github.com/PCSX2/pcsx2/releases/tag/v1.7.2484 v1.7.2484]
*Latest 32-bit supported build: [https://github.com/PCSX2/pcsx2/releases/tag/v1.7.2484 v1.7.2484]
*Latest SSE2 supported build: [https://github.com/PCSX2/archive/releases/v1.7.2002 v1.7.2002]
*Latest SSE2 supported build: [https://github.com/PCSX2/archive/releases/tag/v1.7.1178 v1.7.1178]
*Get older builds (including 1.5-dev builds) from [https://github.com/PCSX2/archive/releases here].
*Get older builds (including 1.5-dev builds) from [https://github.com/PCSX2/archive/releases here].


==Setup==
==Setup==
===Gamepad===
===Gamepad===
See [https://pcsx2.net/docs/configuration/controllers pcsx2 docs: configuration/controllers page].
;Pressure-sensitive buttons
{{Main|PlayStation 2 emulators#Pressure-sensitive inputs}}
;wxWidgets build guide:
[http://www.mediafire.com/view/115130h5rc6qe6b/LilyPad-SCP.lily Native DS3 controls with LilyPad-SCP] - Import this with the 'Load Bindings' button in LilyPad's config.
[http://www.mediafire.com/view/115130h5rc6qe6b/LilyPad-SCP.lily Native DS3 controls with LilyPad-SCP] - Import this with the 'Load Bindings' button in LilyPad's config.
 
Either that, or you can use [http://forums.pcsx2.net/Thread-Pokopom-KrossX-s-Pad-Plugin the Pokopom XInput Plugin.] If you use a DualShock controller running under an XInput wrapper such as SCP Server, then this plugin is a no-brainer. It's very customizable, and you don't have to configure it beforehand. All of the buttons are bound at startup. Also see [https://emulation.gametechwiki.com/index.php?title=PlayStation_2_emulators&curid=372&diff=145236&oldid=145203#USB_plugin_for_wxWidgets_builds USB plugin for wxWidgets builds].
Either that, or you can use [http://forums.pcsx2.net/Thread-Pokopom-KrossX-s-Pad-Plugin the Pokopom XInput Plugin.] If you use a DualShock controller running under an XInput wrapper such as SCP Server, then this plugin is a no-brainer. It's very customizable, and you don't have to configure it beforehand. All of the buttons are bound at startup.


===Video===
===Video===
Most of the video options should be straightforward, with the possible exception of interlacing modes. Many games will run fine with 'None', while others may experience artifacting or jitter. "Auto" is recommended.
Most of the video options should be straightforward (recommended to use default options), with the possible exception of interlacing modes. Many games will run fine with 'Auto' option, while others may experience artifacting or jitter. See [[Deinterlacing]] page for more information.
 
* "Sawtooth" is not recommended at all. Artifacting is far too heavy to be usable.
* "Bob" has reduced artifacts, but jitter can still occur.
* "Blend" has the least amount of jitter. However, it can cause blurriness. The Blend interlacer does frame-blending. This is also known as motion blur. This means that if there is heavy jitter, the video output will be extremely blurry since the two jittering frames will blend together. Only use this interlacing method as a last resort.
You can cycle through the options with F5 to quickly test them out.
 
To completely eliminate the de-interlacing issue, the community has made patches/hacks for a lot of games that can be loaded through a .pnach file, like a cheat code. Those can be found in the PCSX2 wiki or forums.
 
Another method to get around this in older versions (custom res as an option was removed) is by running GSdx in hardware rendering, doubling the vertical resolution (if a game displays 640x480 on the emulator window, set vertical res to 960) and selecting bob-tff for interlacing. This can eliminate interlacing artifacts in most cases, although issues with upscaling, as well as using hardware emulation over software, can arise.


==Overview==
==Overview==
PCSX2 was originally created in 2001 by Linuzappz and Shadow as the successor to [[PCSX-Reloaded|PCSX]], another PlayStation emulator. Development of PCSX ceased on September 17, 2003, to focus on PCSX2. When version 0.9.8 was released in May 2011, only 55% of the PS2's library was considered supported.<ref>refraction (November 25, 2010). [https://pcsx2.net/developer-blog/90-the-history-of-pcsx2.html The History of PCSX2]. ''PCSX2.net''.</ref>
PCSX2 was originally created in 2001 by Linuzappz and Shadow as the successor to [[PCSX-Reloaded|PCSX]], another PlayStation emulator. Development of PCSX ceased on September 17, 2003, to focus on PCSX2. When version 0.9.8 was released in May 2011, only 55% of the PS2's library was considered supported.<ref>refraction (November 25, 2010). [https://pcsx2.net/developer-blog/90-the-history-of-pcsx2.html The History of PCSX2]. ''PCSX2.net''.</ref>


A significant number of quality-of-life changes have come about since the project moved to GitHub, with a renewed interest in bringing it up to par with emulators for similar-gen consoles. Until mid-2021, PCSX2 was a holdout of the plugin system, despite development of each plugin eventually consolidating into the main repository. While the stable 1.6.0 build still contains the plugin API, the nightlies no longer have it, as it was removed entirely in [https://github.com/PCSX2/pcsx2/pull/4436 PR 4436]. Compatibility has also seen major improvements across the board, to the point where every game at least boots. As of January 2022, 98% of the PlayStation 2 library is considered playable, although only 26 games are marked as perfect.
A significant number of quality-of-life changes have come about since the project moved to GitHub, with a renewed interest in bringing it up to par with emulators for similar-gen consoles. Until mid-2021, PCSX2 was a holdout of the plugin system, despite development of each plugin eventually consolidating into the main repository. The plugin API was removed entirely in [https://github.com/PCSX2/pcsx2/pull/4436 PR 4436] and the latest stable releases no longer have it. Compatibility has also seen major improvements across the board, to the point where every game at least boots. As of January 2022, 98% of the PlayStation 2 library is considered playable, although only 26 games are marked as perfect.


A pull request adding x86_64 support was opened on [https://github.com/PCSX2/pcsx2/pull/3451 June 7, 2020], and both 32-bit and 64-bit builds for Windows, macOS, and Linux were first made available on [https://github.com/PCSX2/pcsx2/pull/3451#issuecomment-653720205 July 4].<ref name="Reddit_1">{{cite web|url=https://www.reddit.com/r/emulation/comments/hkzzv2/pcsx2_now_has_a_64_bit_version/ |title=PCSX2 now has a 64-bit version |publisher=Reddit|accessdate=2020-07-06|date=2020 Jul 04}}</ref> The plan is to reduce so-called "technical debt", including game-specific hacks that cause accuracy issues and bugs in the 32-bit builds, as well as broaden support for more platforms and devices such as ARM64 chips.
A pull request adding x86_64 support was opened on [https://github.com/PCSX2/pcsx2/pull/3451 June 7, 2020], and both 32-bit and 64-bit builds for Windows, macOS, and Linux were first made available on [https://github.com/PCSX2/pcsx2/pull/3451#issuecomment-653720205 July 4].<ref name="Reddit_1">{{cite web|url=https://www.reddit.com/r/emulation/comments/hkzzv2/pcsx2_now_has_a_64_bit_version/ |title=PCSX2 now has a 64-bit version |publisher=Reddit|accessdate=2020-07-06|date=2020 Jul 04}}</ref> The plan is to reduce so-called "technical debt", including game-specific hacks that cause accuracy issues and bugs in the 32-bit builds, as well as broaden support for more platforms and devices such as ARM64 chips.
Line 80: Line 74:
A pull request removing x86 support was opened on [https://github.com/PCSX2/pcsx2/pull/5130 December 9, 2021], and the last 32-bit build and first 64-bit-only build were made available on March 19, 2022.
A pull request removing x86 support was opened on [https://github.com/PCSX2/pcsx2/pull/5130 December 9, 2021], and the last 32-bit build and first 64-bit-only build were made available on March 19, 2022.


PCSX2 is also able to run PS1 games by emulating the original hardware's built-in backward compatibility. Unfortunately, there's some PS1 software that doesn't run correctly (if at all) on a real PS2 and therefore is unlikely to be compatible with this emulator either, so you'll still need a more straightforward [[PlayStation emulators|PS1 emulator]] for those. PCSX2's PS1 support is inaccurate even compared to a real PS2, and it was largely added as a proof-of-concept and is only really useful for novelty purposes.
PCSX2 is also able to run some PS1 games by emulating the original hardware's built-in backward compatibility. Unfortunately, it was largely added as a proof-of-concept and is only really useful for novelty purposes (see [[PlayStation 2 emulators#PlayStation Backwards Compatibility]] section for more information); PCSX2's PS1 support is rather inaccurate even compared to a real PS2 (which also has some major flaws in its backwards compatibility), so a more straightforward [[PlayStation emulators|PS1 emulator]] is still worth having on hand.
 
==Issues==
:''Main thread: <span class="plainlinks">[https://forums.pcsx2.net/Thread-Sticky-PCSX2-General-Troubleshooting-FAQ PCSX2 General Troubleshooting FAQ]</span>''
 
===Automatic game fixes===
Whenever you encounter any kind of bug that isn't graphical in nature, objects going through other objects, untargetable objects that should be targetable or A.I. freezing, for example, make sure that the automatic game fixes option from the system menu is activated.
 
===Major graphical glitches===
Graphical problems such as corrupted textures, missing effects, clipping light sources, burn-in or transparent objects being opaque can usually be solved by switching to the software renderer by pressing F9 while the game is running or via GSdx's config panel. If using the Direct3D 11 renderer, try the OpenGL renderer, as it may be more accurate. If you're using a stable build, try switching to the most recent nightly or dev build. Newer development builds of the emulator may have fixes or other features added to the hardware renderers, which remove common glitches like red or green bars appearing on the screen.
 
===Poor performance in software mode===
Many games will require you to switch to software mode to fix various issues, albeit at the cost of a significant performance loss. However, an easily overlooked setting in the graphical plugin configuration panel, extra rendering threads, might help lessen the performance loss if you have a quad-core or higher CPU. It is recommended to set it to the number of cores in your CPU minus one if you aren't using the MTVU speed hack or minus two if you are (ex: if you are using a quad-core CPU, you should set this number to 3 without MTVU and 2 with MTVU).
The process described above is partially automated in recent development versions of PCSX2, but you might still need to tweak it to get optimal performance levels
 
===Multi-threaded microVU===
Multi-threaded microVU (MTVU), while generally a very useful speed hack, might sometime cause minor problems like hanging and absence of performance gain, or more severe ones like massive performance hits, save-state corruption (PCSX2 keeps a backup you can load with Shift+F3 in case any issues arise), or just plain crashing.
 
===Crashes===
Crashes could be the result of several things.
Switching between hardware and software rendering rapidly is likely to cause the emulator to lock up. This can be easily avoided by waiting a few seconds after switching between hardware and software rendering before switching again.
If your GPU drivers also crash simultaneously (or you get massive graphical corruption on your desktop and/or a BSOD while trying to run a game), this means you're either using outdated drivers, or you're trying to use an AMD card with the OGL renderer and Blending Accuracy set to none, in which case, either set it to basic or higher or use the DX11 renderer instead. in which case either set it to basic or higher or use the DX11 renderer instead.
If the log warns you about TLB miss, you are either:
 
* Using a bad dump of a game, in which case you'll need to [[Ripping Games|re-rip your disc]] or re-download the game you are trying to play.
* Playing the game directly from your DVD drive, in which case you should [[Ripping Games|rip the game]] and play using the .iso instead (it's not advised to play directly from your DVD drive).
* Trying to play a game that isn't supported by the emulator, in which case you cannot do anything except trying another version of the game (PAL or NTSC-J, for example).
* Trying to play a game with a massive, or in some cases, any EE overclock applied, in which case turn it back down in the speed hack menu.
* You need to check the Wiki to see if the game requires any specific settings regarding the Clamping Mode of the EE/VU.
* Cheats used in the game's .pnach file are invalid.
 
If PCSX2 still crashes after doing all of the above, check that you aren't using any speed hacks and that your system is stable and not overheating. Especially if you're overclocking.
 
===Extreme fluctuation in emulation speed===
The large fluctuation in emulation is often caused by the games themselves and cannot be avoided, but there are a handful of cases where this is caused by specific configuration issues.
 
* Using a large internal resolution multiplier on a low-end GPU, even if the game runs mostly fine, can cause the emulator to suddenly need to do a lot of cumbersome operations on the VRAM. Low-end GPUs tend to have much lower VRAM bandwidth and will get crushed by that. This is especially true when using Large Framebuffer and even more so when using the OGL renderer. Obviously, the only real fix is turning the resolution down and disabling Large Framebuffer if possible
* Playing games directly from the original DVD using a disc drive, in which case you should [[Ripping Games|rip the game]] and play using the .iso instead
* Having the Blending accuracy set too high in the OGL renderer (Full and Ultra mostly)
* Using EE overclock in some games
 
===Intermittent warped audio===
Due to how the synchronizing function of the audio plugin works, even when running games on a computer capable of going way above 100% speed in a stable fashion, random bits of time-stretched audio can be heard occasionally or even frequently. There are, however, a few ways to work around that issue.
* Set the audio syncing method to Async Mix (can cause A/V sync issue, not recommended with rhythm games), do not set it to None as it basically does the same thing as Async Mix but has more issues
* Unlock the PCSX2 framerate limiter and use an external one, such as MSI Afterburner
 
===Blurriness===
It's either interlacing or a filter in the game itself. For the former, switching the de-interlacing mode with F5 may help and cause flicker or screen shaking. For the latter, hacks are required. Either Aggressive-CRC if the game is listed there, or skipdraw (toy with the numbers 1-100) might work otherwise.
 
===Black lines===
Black lines are caused by scaling to a non-integer internal resolution (anything other than Yx Native), texture filtering (Try anything that isn't bilinear (Forced), improperly offset textures (TC Offset, Wild Arms Offset hacks, Half-Pixel Offset), or improperly handled texture edges (Merge Sprite hack, Sprite/Round Sprite combobox). The native resolution, for the most part, fixes these issues. However, software rendering may be required as well.


==Special hardware==
==Special hardware==
===Pressure-sensitive buttons===
{{Main|PlayStation_2_emulators#Pressure_Sensitive_Buttons}}
===Lightgun support===
===Lightgun support===
Lightgun support was available in the PCSX2 emulator via a third-party plugin called nuvee.<ref>https://lightgungamer.com/pcsx2</ref> This is no longer relevant since the removal of the plugin system, now PCSX2 handles lightgun support by itself.
Lightgun support was available in the PCSX2 emulator via a third-party plugin called nuvee.<ref>https://lightgungamer.com/pcsx2</ref> This is no longer relevant since the removal of the plugin system, now PCSX2 handles lightgun support by itself.


==Multiplayer on PCSX2==
==Multiplayer on PCSX2==
See [[PlayStation 2 emulators#Hardware features and accessories]] -> LAN or Network Adapter sections, also you can use LAN tunelling for offline multiplayer play.
See [[PlayStation 2 emulators#Hardware features and peripherals]] section -> LAN or Network Adapter sections, also you can use LAN tunelling for offline multiplayer play.


==References==
==References==
Line 146: Line 87:


==External links==
==External links==
* {{YouTubeChannelOwner|PCSX2team|YouTube}}
* [https://discord.com/invite/TCz3t9k Discord]
* [https://pcsx2.net/compatibility-list.html Official compatibility list]
* [https://pcsx2.net/compatibility-list.html Official compatibility list]
* [http://pcsx2.net/247-official-pcsx2-configuration-guide-video.html Official PCSX2 setup guide]
* [http://pcsx2.net/247-official-pcsx2-configuration-guide-video.html Official PCSX2 setup guide]
Line 154: Line 97:
* Emulation64 Spotlight Interviews with original PCSX2 developers: [https://www.emulation64.com/spotlights/8/ Shadow] [https://www.emulation64.com/spotlights/1/ linuzappz] [https://www.emulation64.com/spotlights/26/ Refraction]
* Emulation64 Spotlight Interviews with original PCSX2 developers: [https://www.emulation64.com/spotlights/8/ Shadow] [https://www.emulation64.com/spotlights/1/ linuzappz] [https://www.emulation64.com/spotlights/26/ Refraction]
* [https://archive.fosdem.org/2021/schedule/event/pcsx2/ The PlayStation 2: From Emotion to Emulation - Celebrating 20 Years of Reverse Engineering]
* [https://archive.fosdem.org/2021/schedule/event/pcsx2/ The PlayStation 2: From Emotion to Emulation - Celebrating 20 Years of Reverse Engineering]


[[Category:Emulators]]
[[Category:Emulators]]
Line 165: Line 107:
[[Category:macOS emulation software]]
[[Category:macOS emulation software]]
[[Category:Netplay]]
[[Category:Netplay]]
[[Category:Custom assets]]
[[Category:Active emulation software]]