PCSX2 is a free and open-source PlayStation 2 (PS2) emulator.

This allows you to play PS2 games on your PC, with many additional features and benefits.

The PCSX2 project has been running for more than twenty years.

PCSX2 allows you to play PS2 games on your PC, with many additional features and benefits.

A few of those benefits include:

So how do I use it?

PCSX2 has received over 6000 changes, passed 100 million downloads, and celebrated its 20th anniversary!

There are lots of design changes, technical discoveries, and more to discuss.

Let’s jump right in and get started with the highlights from four years of development.

Threading issues resulted in deadlocks and race conditions, because it was not properly separated from the emulation core.

The technical debt started high and only got worse as the project tried to keep moving forward.

But now, wxWidgets is gone.

No more desktop experience reminding you of what Windows desktop apps looked like in 2006.

The addition of themes allows you to personalize your PCSX2 to your liking.

The result is by far our best user experience to date.

Saying Goodbye to Plugins

We had a good run with plugins, but their time has come.

Don’t like one plugin’s design?

One plugin breaks a game?

It is time to say goodbye, and GovanifY spearheaded this major piece of development.

Simplifying Configuration With Automatic Game Fixes

A major priority for the team has been a focus on automation.

How many things are there for users to deal with that they really shouldn’t need to?

The answer was… A lot.

Really, a lot.

You might recall our old interface had graphics fixes buried in the graphics plugin.

Or perhaps the CPU modes which were handled in their own tabs.

Speed hacks had another tab.

More graphics controls were on their own somehow not connected to the plugin.

Game fixes which were somehow supposed to be different from everything else… We could keep going.

And so PCSX2’s new “game index” was made a reality.

PCSX2 now includes per-game controls which are detached from your global controls.

Read the entirechangelog here.