PCSX2

From PCSX2 Wiki
Jump to navigation Jump to search

PCSX2 is a Playstation 2 emulator for Windows and Linux. It was started by the team behind PCSX (an emulator for the original PlayStation) back in 2002, and as of late 2013 development is still active. The emulator achieved playable speeds only by mid-2007 and subsequent versions have improved speed and compatibility making it both the ultimate solution for PS2 emulation and the instrument to keep and preserve the PS2 legacy in the modern world. Though not yet perfect the program can successfully emulate most commercial PS2 games at playable speeds and good visuals (often better than the original PS2).

The emulator uses plugin architecture making it possible to expand its capabilities by installing additional plugins. Although the plugins are numbered and unlikely to increase their quantity in the near future the plugin approach is still solid - it's possible to change to new updated versions of the plugins without changing the version of the main program and vice versa. As of late 2010 the program runs on both 32-bit and 64-bit Windows OSes and uses no more than 2 cores on multicore CPUs (1 core is used for the main emulation purposes and the second is for plugins' purposes like rendering graphics, output sounds or PAD works). While the increase of number of useful cores may happen in the future it still remains unknown when this will happen because the division of the general emulation thread into two or more is a very hard and complex task - the original PS2 hardware has multiple CPUs and the correct timing between emulated CPUs is complicated enough without further dividing every CPU into more than one thread.

Mac OS X is not officially supported but you can still run PCSX2 under it.

Current PCSX2 notable features:

  • Recompilers for Emotion Engine (EE), Vector Unit 0 (VU0) and Vector Unit 1 (VU1). They are used to translate some parts of the original PS2 machine code into x86 machine code, speeding up emulation. Due to the fact that PS2 machine code is an entirely different language from x86 machine code these recompilers are probably the most complicated parts in PCSX2.
  • Dual core support allows PCSX2 to use up to 2 CPU cores speeding up the emulator significantly.
  • Proper SPU2 emulation helps reproduce PS2 audio or even enhanced audio on the PC which is not a trivial task considering the lack of documentation and the fact that it has to synchronize with many other emulated processors.
  • Full gamepad support makes it possible to emulate every Dual Shock 2 feature.
  • Patch system to create cheats easily. It can also be used to skip code where emulation is still broken (which ultimately can make the game playable). This feature is quite user-friendly and easy to use.
  • Additional optimizations (hacks) to speed up emulation. You will be able to play certain games on lower-end machines thanks to this feature.
  • Fully working memcard support.
  • Fully working IPU support responsible for FMV - video cutscenes should mostly run correctly.

PCSX2 is an open source project so anyone can join the PCSX2 team or fork the PCSX2 project if they want to contribute. This also means you are not charged for using the emulator and the GPL guarantees that you won't ever be. You are encouraged to donate some money to the developers so they will be motivated to continue their work (click the make a donation button on the bottom of the front page of the official site).


Requirements

Hardware and Software

Harware requirements are very game-dependant although it must be noted that the bottleneck of this emulator in most cases is the CPU rather than than the GPU (video card): basically, a faster CPU should net you better PCSX2 performance. Some games however can be slowed down because of unoptimized GFX code or even because of weak GPU cards (for example Final Fantasy XII is said to use your GPU fully).

A common misconception is that a higher clock speed guarantees greater emulation performance. While clock speed is one of the main factors for smooth PCSX2 emulation, it is not the determining meter of success. Newer CPUs generally tend to perform better than the old ones using the same frequency. For example, a 2.4 GHz dual-core Intel Core 2 processor will generally outperform a 3.2 GHz dual-core Intel Pentium D processor. Even though the Pentium D is clocked higher, the Core 2 Duo is faster due to the Core microarchitecture of the Core 2 Duo being more efficient than the Netburst of microarchitecture of the Pentium D.

Another important factor determining PCSX2 performance is that Intel Processors almost always perform better than AMD Processors. This is primarily because Intel's are more appropriately designed for running advanced computer softwares, whereas AMD's are more ideal for PC gaming. PCSX2 is definitely the former, since it is designed to run non-PC-formatted games.

For comparison, the AMD FX series (currently AMD's most prominent line of processors) will not match the performance of the Intel i7 series. An Intel i7-4770K 3.5 GHz will perform better than an AMD FX-9370 4.4 GHz, even though the FX-9370 has a much higher clock-rate. The main reason for this is because in most AMD Micro-architectures, the number of Floating-Point Units is half the number of total CPU cores. This means that each unit is shared between two cores. If one core is currently using the FPU, the other core sharing it must wait to do the same. It is only free to perform integer operations. PCSX2 makes heavy use of floating-point operations.

It is also important to note that having more than two CPU cores does not automatically increase the emulation performance of PCSX2. This is because PCSX2 currently uses only two cores, so having a greater number of cores will not compensate for a lower clock-rate. Emulation can be improved by enabling the MTVU hack in the Speedhacks menu, but not by much.

Below are the minimum and recommended requirements to run PCSX2:


Minimum (most games will be unplayable slow)

  • Windows/Linux OS
  • CPU: Any that supports SSE2 (Pentium 4 and up, Athlon64 and up)
  • GPU: Any that supports Pixel Shader model 2.0, except Nvidia FX series (broken SM2.0, too slow anyway)
  • 512MB RAM (note that Windows Vista needs at least 2GB to run reliably)

Recommended

  • Windows Vista / Windows 7 (32bit or 64bit) with the latest DirectX
  • CPU: Intel Core 2 Duo @ 3.2 GHz or better OR i3/i5/i7 @ 2,8 GHz or better OR AMD Phenom II @ 3,2 GHz or better
  • GPU: 8800gt or better (for Direct3D10 support)
  • RAM: 1GB on Linux/Windows XP, 2GB or more on Vista / Windows 7


Notes:

  • To use GSdx's Direct3D 10/11 hardware renderer, you will need a video card and operating system that supports DirectX 10 (Windows Vista and NVIDIA GeForce 8400 GS or ATi Radeon 2400 Pro are the minimum software and hardware, respectively, that Support DirectX 10).
  • To use GSdx-SSSE3, you will need a CPU that supports SSSE3 (Intel Core 2 Duo or AMD FX are the minimum CPUs that support this). To use GSdx-SSE4.1, you will need a CPU that supports SSE4 (Intel Core 2 45 nm CPU or AMD FX are the minimum CPUs that support this).


PCSX2 runs in Linux but at slower speeds (sometimes just slightly worse) and you won't be able to use the GSDX plugins (since they are DirectX only) so the graphics won't be as good in most cases. Plus it will require some knowledge to compile and configure PCSX2 on Linux for your system. Though this choice will rather be based not on difference in speed and visuals but your preferences.

A choice between Windows XP and Windows Vista (or Windows 7) is a matter of your GPU capabilities. If your graphics card supports DirectX 10 or better (see GSDX page) it's wiser to use Vista (or Windows 7) because you'll be able to switch GSDX in DirectX 10 (as well as fall back to DirectX 9 mode). Windows XP does not officially support DirectX 10 - if you purchase a graphics card that supports DirectX 10 or newer DirectX API, make sure your computer is running at least Windows Vista, and/or preferably Windows 7 with the latest drivers.

BIOS

Obtaining PS2 games can be as easy as buying PS2 DVDs off eBay. However, an original game DVD is not enough to make PCSX2 work. You'll also need the BIOS dumped from your PS2. The PS2 BIOS is copyrighted by Sony so getting it from anywhere but your own PS2 is illegal. You will have to own an actual PS2 console to dump the BIOS from before you can start playing PS2 games on the emulator. There is no region locking so if you have a PAL BIOS on your PS2 you can still play NTSC games, and vice versa.

The dumping of BIOS is a complicated process so pay careful attention to the instructions you can get from this link. You can start dumping by downloading the tool from this place or refer to the official guide here.

Development and support team

Note that this information is partly taken from the official readme. Some info has been brought to life from the old ChangeLog.txt. If you feel someone is missed here please take a moment and add to the appropriate place.

Nickname Real Name Country Activity period Role and comments
Current active team members
refraction Alex Brown England from June 2005 General Coding DMA/VIF etc
arcum42 from Oct 10, 2008 (playground) Linux compatibility and porting
drkIIRaziel Greece from Dec 2008[1] Memory management, emulation theory/principals, recompiler design.
gigaherz from Nov 2004 General coding, spu2ghz, cdvdGigaherz
pseudonym England from Jan 2009[2] EE recompiler, GSdx renovations
rama Germany from Aug 11, 2008 (playground) Resident hacker, uses random values until they fix something, then figures out why :P
gabest from Nov 2004 (mentioned in logs) GSdx plugin, general
mattmenke (aka ChickenLiver?) from March 2007, in team from Feb 2009[3] Lilypad plugin
Current inactive team members
cottonvibes Nicholas Cardell[4] USA Aug 11, 2008 (playground) to Nov 10, 2011 FPU and VU recompilers, general coding
Air Jake Stine USA Oct 30, 2008 (playground) to Feb 20, 2011 MTGS,counters, timing/syncing, general coding,SPU2-X
florin Florin Sasu Romania Nov 2002-Oct 2006 Master of HLE. Master of cd code and bios HLE..
Nachbrenner Germany Nov 2004-Feb 2005 patch freak :P
aumatt Australia Feb 2004-Oct 2006 (last log message) a bit of everything mostly handles CDVD cmds
saqib (aka asadr) Pakistan Jan 2003-Apr 2009[5] Project leader, fixing bugs around (FPU, Interpreter, VUs..)
Shadow George Moralis Greece March(?) 2002-May 2005 Project founder, master of cpu, master of bugs, general coding...
tmkk Feb 2009-Mar 2009[6] VUs, recompilers, x86asm
Goldfinger Brazil June 2002-March 2005 MMI,FPU and general stuff
loser Australia March 2005-May 2005 (last mention in log dated by Apr 2006) obscure cdvd related stuff
zerofrog USA Jan 2006-Oct 2008 Recompilers, ZeroGS, x86-64, linux, optimizations, general fixes and new features
Linuzappz Argentina March(?) 2002-Aug 2005 Project founder, master of The GS emulation and so many others..
basara Recompiler programmer. general coding
[TyRaNiD] May 2002 GS programmer.General coding
Roor General coding
Alexey Silinov Russia(?) Jan 2003-May 2003 ?


Additional coding

F|RES, Pofis, Nocomp, _Riff_, fumofumo, Nneeve, efp (mentioned in logs), CKemu (mentioned in logs), ibrown (from this log)

Plugins

Graphics plugins

It's easy to choose the graphics plugin depending on your operating system. For Windows it will undoubtedly be GSdx. GSdx is the most known and the most compatible graphics plugin for PCSX2 today supporting both DirectX and OpenGL APIs. It was started by gabest in 2007. It also works under Linux (as OpenGL version) and is included in PCSX2's SVN so it's officially supported. You can also play with ZeroGS but the visuals will suffer (though some exceptions may still exist). For Linux it maybe ZeroGS (which hasn't been updated as of late) or its fork ZZogl (which is updated periodically).

GSMax, GSSoft, GSSoftDX, GStaris are discontinued relics from the past (2002-2003 years). None of these plugins can work with the current PCSX2 and they wouldn't show much even if they could. But one way or the other all the new graphics plugins for PCSX2 are based on these old ones.

For more information please refer to Windows guide.

Sound plugins

  • SPU2-X -- One of the most compatibles plugins as of now. It works only in Windows. A good synchronization with video is a strong feature of this plugin. It was developed by Jake Stine (air) and gigaherz from SPU2Ghz plugin which is now out of date. One of the best choices when you're using Windows.
  • ZeroSPU2 -- A plugin created by zerofrog. It work both on Windows and Linux and hasn't been updated for some time now.
  • spu2Peops -- ...

Pad plugins

  • LilyPad -- A Windows gamepad plugin which supports a very large variety of devices and acknowledged as the de facto gamepad plugin for PCSX2.


For more information on plugins see the Windows guide.

Other features

Savestates

One of the main advantages of emulation is that you can save a snapshot of the emulator as it is running, to reload later at will. These snapshots are also known as savestates.

Keyboard shortcuts

Please go to this article for information on keyboard shortcuts used in PCSX2, along with the information on how to change them.

Release history

This is the timeline of all official versions of PCSX2. Note that there are many so called unofficial builds from the PCSX2 source code in different times. The only difference between them and these versions is that these are the mile stones on the long road of PCSX2. Developers tried to fix all small problems for these releases to be the most stable versions possible. All the versions in-between though may contain many improvements are not guaranteed to work stable (but all later versions are getting more and more stable).

  • 0.026 - March 23, 2002
  • 0.031 - April 14, 2002
  • 0.036 - June 17, 2002
  • 0.038 - July 7, 2002
  • 0.042 - September 11, 2002
  • 0.1 - December 20, 2002
  • 0.2 - February 19, 2003
  • 0.3 - May 2, 2003
  • 0.4 - July 31, 2003
  • 0.41 - August 7, 2003
  • 0.5 - November 25, 2003
  • 0.6 - March 24, 2004
  • 0.7 - December 17, 2004
  • 0.8 - May 16, 2005
  • 0.81 - May 17, 2005
  • 0.9 - April 3, 2006
  • 0.9.1 - July 3, 2006
  • 0.9.2 - November 18, 2006
  • 0.9.3 (Linux only) - April 1, 2007
  • 0.9.4 - November 11, 2007
  • 0.9.6 - March 1, 2009
  • 0.9.7 beta - May 29, 2010
  • 0.9.8 - January 5, 2011
  • 1.0.0 - August 3, 2012
  • 1.2.0 - February 2, 2014

What is PCSX2 playground?

PCSX2 playground was the fork project of PCSX2 (i.e. the project led by new usually non-team developers who have the different ideas of improvement or vision of the project). Because the sources of the original PCSX2 is in public domain (may be obtained by anybody free of charge) anyone can download the sources and continue to develop his own version of PCSX2. However the nature of PS2 architecture (it's complexity and the lack of documentation) diminishes the chance of such a fork.

Playground was a way to continue the project when all activity was seemingly absent. The project started by cottonvibes and rama on 11 of August 2008 (first commit date) was a success generated much excitement and noise among PCSX2 fans and ultimately attracting new developers like Jake Stine (aka Air) or arcum42. After about a half-year of existence the project has been recognized by those of the original PCSX2 team still remained active and the playground team was united with them. Thus the PCSX2 playground project and its team have ceased to exist continuing as just PCSX2.

What are the revisions and numbers like r1736, r1888 and so on?

The PCSX2 project was at one point using the Google SVN repository. All the source files were stored there in a public domain (you can access them anytime). When a developer changed anything in the code he would synchronize (commit) his changes with the main online repository thus changing its contents. Each change automatically received a number and could be commented, seconded or rejected by other developers or users. These numbers were called revisions. The way the repository worked you could store all the source files on your hard drive at any time for a certain revision number so no changes would ever be lost. Thus these numbers like 1736 or 1888 meant that the source files of this executable were from the 1736 revision or 1888 revision. The greater the revision number on your executable, the newer the file is.

The last available official public SVN build was r5332. As of March 28 2014 PCSX2 has switched to Git version control system.

Setting up PCSX2 guides

References