top of page
loading_reduced.jpg

2.2.0 / 01-11-2024

PCSX2

Accuracy

Performance

Features

average rating is 4.4 out of 5
average rating is 4.4 out of 5
average rating is 4.5 out of 5
competition

PCSX2 is an open-source emulator using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine through plugins to manage hardware states and PS2 system memory. It has been running for more than 10 years and can run over 2000 titles with many at full speed. 64-bit versions are being developed and tested, please check here.

 

PCSX2-EX

  • It's an extended version of PCSX2 focusing on reversing and modding applications.


Spectabis 

  • It's a custom frontend for PCSX2 which removes the tedious task of tinkering the settings for each game or creating complicated setups for each. 


Winsock based DEV9 plugin 

  • This plugin uses sockets instead of Tap or WinPcap, which the author hopes will eliminate most configuration issues users face when setting up.

--

Windows: 8.1 (32-bit or 64-bit)

Linux: Ubuntu 18.04/Debian+, Arch or other distro, GNU/Linux (32-bit or 64-bit)

Mac: Not Updated in over 5 years


GPU: DirectX 10+ or OpenGL 3.x+

Most Recent Changes

--2.0.2--

This release includes a whole flurry of new features, perfomance improvements, bug fixes, which includes new debugger symbol importer, DEV9 fixes, new controller types such as Negcon, Jogcon. Densha de Go! Train Controller...


For complete list of changes, see the complete commit list.

- USB: Add new SCSI commands used by Zip100 (Florin9doi)

- USB: Sony MSAC- US1/PictureParadise emulation (Florin9doi)

- GSRunner: Correct CMake typo (TheLastRar)

- Build: Add ENABLE_GSRUNNER option to build GSRunner via CMake (TheLastRar)

- Qt: Update Base Translation (PCSX2 Bot)

- PAD: Update to latest controller database. (PCSX2 Bot)

- GS/Vulkan: Restore VK_EXT_attachment_feedback_loop_layout (JordanTheToaster)

- Deps: Update to SDL 2.30.6 (JordanTheToaster)

- USB: Merge generic HID Keyboard and Konami Beatmania (Florin9doi)

- USB: Remove unused HID data (Florin9doi)

- Add memcardFilter for SLES- 51953 and SLES- 52022 (Pyra Drake)

- 3rdparty/soundtouch: Bump to v2.3.3 (JordanTheToaster)

- GameDB: SMT Nocturne Fixes (JordanTheToaster)

- GS/TC: Adjust how we handle merging targets in PreloadTarget. (lightningterror)

- FSUI: Base Translation Update (KamFretoZ)

- OSD: More Translatable Strings (KamFretoZ)

- OSD: Icon Tweaks (KamFretoZ)

- OSD: Add InputRec/VideoCapture OSD Toggle (KamFretoZ)

- Code: Formatting (KamFretoZ)

- 3rdparty/rcheevos: Bump to v11.5.0 (JordanTheToaster)

- Debugger: Track remaining buffer size for snprintf to prevent fortify fail (Ty Lamontagne)

- Qt: Update Base Translation (PCSX2 Bot)

- workflows: Update sdl controller db script. (lightningterror)

- CI/Appimage: Use fuse3 compatible appimagetool (KamFretoZ)

- CI/Appimage: Drop gcc13 workaround (KamFretoZ)

- GameDB: Snow White and the 7 clever boys fixes (JordanTheToaster)

- GameDB : fix Test Drive Unlimited CRC for patch (Mrlinkwii)

- 3rdparty/imgui: Update to v1.91.0 (JordanTheToaster)

- Core: Replace 'Mac' with 'system' in page size error message (TheLastRar)

- Build: Set Page/Cache line sizes on Windows ARM (TheLastRar)

- gitignore: Fix ignore of bin- arm64 (TheLastRar)

- Build: Copy resources when building for ARM64 with MSBuild (TheLastRar)

- GameDB: Various fixes (JordanTheToaster)

- iR5900: fix heap- buffer- overflow in recompileNextInstruction (oltolm)

- Qt: Update Texture Filtering Description (seta- san)

- GS: Match data types in shaders to be the same when doing bitwise operations. (lightningterror)

- GSTextureCache: Extend Bilinear Upscale to dirty depth (JordanTheToaster)

- GameDB: ATV Offroad Fury 2 Fixes (JordanTheToaster)

- GameDB: add missing serial (Mrlinkwii)

- Qt: Update Base Translation (PCSX2 Bot)

- CMake: Added PACKAGE_MODE option (weirdbeardgame)

- Qt: Update Trilinear Filtering Description (seta- san)

- USB: Set actual_length value for Get HID descriptor (Florin9doi)

- PAD: Update to latest controller database. (PCSX2 Bot)

- Config: Use directory containing bundle as AppRoot on macOS. (squidbus)

- Qt: Update Base Translation (PCSX2 Bot)

- GS/HW: Rename blend second pass to blend multi pass. (lightningterror)

- GS/DX11: Fix feedback write 1 null pointer crash. (lightningterror)

- Qt: Update Base Translation (PCSX2 Bot)

- 3rdparty/imgui: General cleanup (JordanTheToaster)

- 3rdparty/imgui: Disable the nav menu (JordanTheToaster)

- USB: Fix Konami Capture Eye assert (Florin9doi)

- USB: Store unique disk images for MSD and PictureParadise (Florin9doi)

- FullscreenUI: Fix popup close resetting window scroll (KamFretoZ)

- ImGuiFullscreen: Fix choice popup selected drawing over border (KamFretoZ)

- ImGuiFullscreen: Display checkmark on right of choice dialog (KamFretoZ)

- Qt: Slightly increase game list title size (KamFretoZ)

- Qt: Fix a couple of theme switching glitches (KamFretoZ)

- Misc: Minor cleanup. (#11717) (Jordan)

- Qt: Update Base Translation (PCSX2 Bot)

- USB: Merge Singstar and Logitech mics in a single device with 2 subtypes (Florin9doi)

- USB: Audio support for EyeToy (Florin9doi)

- USB: Konami ON- SAY microphone emulation (Florin9doi)

- USB: Rename singstar to usb_mic (Florin9doi)

- Qt: Update Base Translation (PCSX2 Bot)

- DiscordRPC: Add game icon support. (KamFretoZ)

- Config: Allow specifying portable directory relative path in portable.txt (squidbus)

- GameDB: Correct two Phoenix Games title names (xperia64)

- GS/HW: Implement PABE(Per pixel alpha blending) on accumulation blend and add optimizations. (lightningterror)

- GameDB: Add multiple fixes (Farran666)

- Vk: Don't try to transition present source during present (TellowKrinkle)

- Image: Fix crash loading corrupted/invalid JPEG files (KamFretoZ)

- Qt: Work around theme switching bug (KamFretoZ)

- GSTextureVK: Fix download inside render pass (KamFretoZ)

- FileSystem: Correctly use lstat() on Linux (KamFretoZ)

- ImGuiFullscreen: Fix incorrect notification width (KamFretoZ)

- ImGuiManager: Fix stutter when multiple OSD messages lapse (KamFretoZ)

- Qt: Ensure fullscreen UI is stopped on exiting (KamFretoZ)

- Qt: Fix incorrect sort indicator on loading (KamFretoZ)

- Qt: Center type icon in game list (KamFretoZ)

- Qt: Fix a couple of instances of inconsistent sorting (KamFretoZ)

- USB: Fix CaptureEye corruption on dark images (Florin9doi)

- Qt: Set focus to Game Library for improved keyboard navigation (#11719) (deanff)

- PAD: Update to latest controller database. (PCSX2 Bot)

- Big Picture: Remove ability to make per- game controls (RedPanda4552)

- GS/HW: Further expand blend multipass. (lightningterror)

- Debugger: Remove the Avast demangler (chaoticgd)

- 3rdparty: Add CCC v2.1 (chaoticgd)

- Debugger: Replace SymbolMap class with new SymbolGuardian class (chaoticgd)

- Debugger: Add GNU demangler (chaoticgd)

- Debugger: Add symbol tree widgets for functions and variables (chaoticgd)

- GS/HW: Add afix to alphas log. (lightningterror)

- DebugTools: Fix iterator invalidation bug in IopBios.cpp (chaoticgd)

- Qt: Update Base Translation (PCSX2 Bot)

- Misc: Minor text and settings changes (#11751) (Jordan)

- DebugTools: Fix some compiler warnings (chaoticgd)

- UI: Enable "System" and toolbar savestate options in OSDSYS (Ty Lamontagne)

- USB: Add support for Type 2 DenshaCon (Joe Stringer)

- USB: Add support for Shinkansen DenshaCon (Joe Stringer)

- USB: Add support for Ryojouhen DenshaCon (Joe Stringer)

- Settings: Add DenshaCon bindings UI (Joe Stringer)

- USB: Add passthrough support to DenshaCon (Joe Stringer)

- Qt: Update Base Translation (PCSX2 Bot)

- Debugger: Bring back the expression parser (chaoticgd)

- FileSystem: Fix handling of symlinks (KamFretoZ)

- Qt: Update Base Translation (PCSX2 Bot)

- Deps: Update to SDL 2.30.7 (JordanTheToaster)

- Translation: Remove excess double quote (#11777) (KamFretoZ)

- Qt: Update Base Translation (PCSX2 Bot)

- FSUI: Move Texture Preloading to Advanced (KamFretoZ)

- PAD: Update to latest controller database. (PCSX2 Bot)

- Flipped the order of "SaveStateAndSelectNextSlot" to "SelectNextSlotAndSaveState" (smasimar@gmail.com)

- Added "SaveStateAndSelectNextSlot" hotkey for alternative save slot cycling functionality. (smasimar@gmail.com)

- Config: Prevent pad settings lingering in game properties blocking profiles (RedPanda4552)

- Bump peter- evans/create- pull- request from 6 to 7 in the ci- deps group (dependabot[bot])

- Qt: Update Base Translation (PCSX2 Bot)

- CMake: Install translations in PACKAGE MODE (Nenderus)

- Config: Set `{ntsc,pal}FrameRate` bounds to 10- 300 Hz (Martino Fontana)

- Achievements: Reset client state on system reset (Ty Lamontagne)

- ExpressionParser: Add missing include in header (Ziemas)

- 3rdparty/ffmpeg: Bump headers to version 7.0.2 (JordanTheToaster)

- UI: Update mipmapping help description (OctopusButtons)

- DiscordRPC: Further improve icon url call (KamFretoZ)

- Qt: Make Settings List Word Wrapped (KamFretoZ)

- Common: Fix Recursive CreateDirectoryPath() on Windows (TheLastRar)

- GameDB: Add Skip MPEG Hack to Never7 (Farran666)

- Qt: Update Base Translation (PCSX2 Bot)

- GS/HW: Reduce sw/hdr colclip in more cases. (lightningterror)

- OSD: Add GPU Info (#11808) (KamFretoZ)

- OSD: Rename various fields (JordanTheToaster)

- Debugger: Make check box widgets in the symbol tree more responsive (chaoticgd)

- Debugger: Prevent flicker when resetting symbol tree node children (chaoticgd)

- GameDB: Various fixes (JordanTheToaster)

- GS/HW: Fix/cleanup pabe optimization condition. (lightningterror)

- gh: update the feature request template labels (Ty)

- PAD: Update to latest controller database. (PCSX2 Bot)

- OSD: Improve main window stat spacing (JordanTheToaster)

- GameDB: Pro Race Driver fixes (Pyra Drake)

- Qt: Update Base Translation (PCSX2 Bot)

- microvu: fix ASAN container- overflow in mVUsetupRange (oltolm)

- microVU: fix block clearing regression (Ty Lamontagne)

- FullscreenUI: Remove unused function. (lightningterror)

- Qt: Update Base Translation (PCSX2 Bot)

- DebugInterface: Try to show the kernel memory mappings, again (Ty Lamontagne)

- DebugInterface: Fix formatting (Ty Lamontagne)

- GS/HW: Merge blend ad a mask separate conditions in to one. (lightningterror)

- GS: Update lottes crt shader. (Stuart Kenny)

- Qt: Fix keyboard SHIFT for non- alpha characters (Joe Wagner)

- CDVD: Added cdvdTrack, cdvdTrackIndex (weirdbeardgame)

- CDVD: 0 index into tracks array (weirdbeardgame)

- Qt: Add a permission error dialog when converting memorycards in a R/O directory (Matthew)

- PAD: Update to latest controller database. (PCSX2 Bot)

- Qt: Update Base Translation (PCSX2 Bot)

- GS/HW: Make sure it's not a channel shuffle when the alpha of a target is used as source. (lightningterror)

- GS: Add a 10:7 pixel ration option (crashGG)

- Qt: Update Base Translation (PCSX2 Bot)

- translations: Syncing Crowdin translations (#11849) (Tyler Wilding)

- Patches: Implement dynamic patching support in pnaches (Ty Lamontagne)

- Qt: Update Base Translation (PCSX2 Bot)

- DebugTools: Scan for functions from the ELF instead of from memory (chaoticgd)

- Deps: Update to libzip 1.11.1 (JordanTheToaster)

- iop/hostfs: don't replace back slashes with forward slashes on Windows (Ty Lamontagne)

- Debugger: Use safe VTLB functions for memory reading and writing (Ty Lamontagne)

- SaveState: Add configurable compression type and level (KamFretoZ)

- Qt: Fix VPS Counter (KamFretoZ)

- Tools: Add shebang to generate fs translation script (KamFretoZ)

- Qt: Update Glyph Ranges (KamFretoZ)

- Savestate: Make selector dismissible by opening pause menu (KamFretoZ)

- Qt: Update Base Translation (PCSX2 Bot)

- 3rdparty: Update Vulkan- Headers to v1.3.296 (JordanTheToaster)

- Deps: Update to SDL 2.30.8 (JordanTheToaster)

- GS/TC: Clamp TW/TH to 11 in source flush. (lightningterror)

- OSD/Savestate: Add close menu hint to the selector (KamFretoZ)

- Qt: Move savestate related options to its new home (KamFretoZ)

- GameDB: Add hwfixes to Armored Core 3 and Sandlot titles. (#11873) (wxvu)

- Qt: Update Base Translation (PCSX2 Bot)

- CI: Add other translations related scripts script to the daily workflow (KamFretoZ)

- HostFS: Retain File Handles in Save States (pips3)

- Debugger: Destroy and re- create the debugger on theme change (Ty Lamontagne)

- PAD: Update to latest controller database. (PCSX2 Bot)

- Debugger: Fix crash in symbol tree menu code (chaoticgd)

- QT: Clear m_status_verbose_widget text on VM stop (TheLastRar)

- Deps: Update to Qt 6.8.0 on Windows and Linux (JordanTheToaster)

- Qt: Update Base Translation (PCSX2 Bot)

- IOP HLE: Only track handles to valid files. (Ty Lamontagne)

- OSD: Update OSD Text on SW mode so no overlap keyword appears (#11881) (Chromaryu)

- DEV9: Rework tx_process based on HW tests (TheLastRar)

- Translations: hotfix a translation mistake causing fmt to crash (Ty Lamontagne)

- Qt: Call 'map_text_to_keycode()' only when Shift modifier is being used (Bobby Smith)

- DEV9: Replace incorrect SPD_R_20 behaviour (TheLastRar)

- DEV9: Allow 8bit reads/writes to all SPEED regs (TheLastRar)

- Qt: Update Base Translation (PCSX2 Bot)

- GameDB: Various fixes (JordanTheToaster)

- GS: Default to OpenGL on intel GPUs that support it. (lightningterror)

- USB: Work around FFB dropouts with modern wheels (badfontkeming)

- OSD: Clarify Min/Avg/Max label to Frametime counter (KamFretoZ)

- GSDevice11: Don't try to get the adapter name twice (KamFretoZ)

- IOP/EE: Add SBUS interrupts (Ziemas)

- PAD: Update to latest controller database. (PCSX2 Bot)

- DEV9: Support 8bit reads/writes for most ATA regs (TheLastRar)

- DEV9: Rewrite suppression of diagnostics IRQ during reset (TheLastRar)

- DEV9: Implement ATA pending interrupts (TheLastRar)

- DEV9: Disable interrupts on reset (TheLastRar)

- DEV9: Allow writes to ATA_R_CONTROL while busy (TheLastRar)

- Qt: Update Base Translation (PCSX2 Bot)

- DEV9: Move call to network backend reset (TheLastRar)

- DEV9: Move adapter detection hack (TheLastRar)

- DEV9: Use ReceivedPayload more in TCP_Session (TheLastRar)

- IOP: Seperate completing DMA8 to a seperate function (TheLastRar)

- DEV9: Don't fake the FIFO (TheLastRar)

- DEV9: Correct implementation of SPD_R_DBUF_STAT reset (TheLastRar)

- DEV9: Correct SPD_XFR_DMAEN define (TheLastRar)

- DEV9: Add note regarding IF_CTRL bit 3 (TheLastRar)

- Debugger: Split out SymbolImporter into its own class (chaoticgd)

- Debugger: Add settings to control the analysis passes (chaoticgd)

- Debugger: Cache hash match results on symbol tree nodes (chaoticgd)

- Debugger: Hash functions scanned in by the MIPS analyst (chaoticgd)

- Debugger: Be smarter about deciding when functions should be hashed (chaoticgd)

- Qt: Update Base Translation (PCSX2 Bot)

- Misc: wire up and refactor trace logging (Ty Lamontagne)

- DEV9: Add ATA commands used by PS2 Linux (#11925) (TheLastRar)

- Qt: Update Base Translation (#11932) (github- actions[bot])

- EE: vtlb handler for writes to IOP mem (Ziemas)

- PAD: Update to latest controller database. (PCSX2 Bot)

- TraceLogging: Fix SIF trace logging (Ty Lamontagne)

- Qt: Replace QTreeWidget with QTreeView for cheat list (Rares- Alexandru Fodor)

- Qt: Add search bar for cheats (Rares- Alexandru Fodor)

- DEV9: Set/Clear SEEK bit in all relevent commands (#11931) (TheLastRar)

- USB: Fix FFB quality and dropouts for most wheels, make workaround optional (badfontkeming)

- VMManager: Add renderer selection warning (JordanTheToaster)

- Debugger: Avoid resetting symbol trees while single stepping (chaoticgd)

- Qt: Fix symbol sources list in per- game settings dialog (chaoticgd)

- GS: Check feature level 12 as a requirement when selecting auto renderer on intel. (lightningterror)

- GS/D3D12: Disable DX12 if feature level is not detected. (lightningterror)

- GS/Qt: Adjust how we handle Default adapter. (lightningterror)

- GS/OGL: Only paste all available extensions in dev/debug build. (lightningterror)

- Qt: Update Base Translation (PCSX2 Bot)

- Qt: Hackfix settings icon stretching on Windows themes (TheLastRar)

- FSUI: Fix and Tweak BPM Buttons and Legends (KamFretoZ)

- Qt: Properly Grey Out Checkboxes When Perf OSD is Disabled (KamFretoZ)

- OSD: Fix Input Overlay Clipping (KamFretoZ)

- Qt: Update Base Translation (PCSX2 Bot)

- CI: Fix Translation Workflow Scripts Order of Operation (KamFretoZ)

- Qt: Update Base Translation (PCSX2 Bot)

- PAD: Update to latest controller database. (PCSX2 Bot)

- PAD: Fix negon and jogcon BPM crash (Ty Lamontagne)

- Dis5900asm: Fix an out of bounds access on invalid pmfhl formats (Ty Lamontagne)

- Patches: Fix a regression that broke gamedb dynpatches (Ty Lamontagne)

- translations: Syncing Crowdin translations (#11970) (Tyler Wilding)

- CI: Default to flatpak beta branch (Ty Lamontagne)



--2.0--

It has been over four years since the last stable PCSX2 revision released. A lot of things can happen in four years, but we could not have predicted just how much progress would be made in that time. PCSX2 has received over 6000 changes, passed 100 million downloads, and celebrated its 20th aniversary! 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. Check out their previous Release 2.0 Report for insight on all the massive alterations..!



--1.16--

GSdx

  • GSdx-HW: Improve search/invalidate texture in render target by correctly matching vertex offsetted draws with buffer offsetted reads in the texture cache.

  • GSdx-HW: Implemented Software Sprite Renderer feature which allows to CPU emulate (SSE accelerated) certain sprite draws directly from the HW renderer.

  • GSdx-HW: Added a dedicated fix for Big Mutha Truckers which allows to render the shadows properly. This also allowed us to reduce the crc hack level so there are less effects skipped.

  • GSdx-HW: Sprite Hack has been completely removed as it is no longer needed and is replaced by far better alternatives.

  • GSdx-FX: The TFX shader on Direct3D10/11 has been rewritten to match OpenGL code and its' accuracy for certain effects.

  • GSdx-D3D: Blend no Barrier support has been ported from OpenGL to Direct3D 10/11.

  • GSdx-GUI: Hardware hacks GUI has been updated for better usability.


SPU2-X

  • Fixed the noise generator outputting 4.8 kHz tone instead of white noise.


CDVD

  • PCSX2 now ignores non-existent disc sector reads.


Core 

  • PCSX2: Prevent the UI from hanging/locking up when a game boots.

  • PCSX2-tas: TAS Recording functionality has been disabled for 1.6 release as there are some issues to work out (such as hanging/locking up the emulator).

  • PCSX2: DI execution is delayed by one instruction.

  • PCSX2: Reverted back to older VRender/VBlank timings.

  • PCSX2: Partially fixed IPU pack command.

  • PCSX2: Fixed the emulator hanging when pressing F4 too fast when toggling the Frame Limiter in some occasions.

  • PCSX2: Fixed the emulator hanging when pressing F9 to toggle rendering between Hardware and Software in some occasions.

  • PCSX2: Fixed the emulator hanging when pressing F9 to toggle rendering between Hardware and Software mode too fast.

  • PCSX2: First Time Wizard now properly selects the correct GSdx plugin based on the highest instruction set supported by the CPU.

  • PCSX2: Improved pointer patch command handling.


PCSX2 GUI changelog

  • PCSX2: DPI scaling has been improved.

  • PCSX2: Translations have been updated for the release of 1.6.


Miscellaneous changelog

  • GameDB: True Crime: Streets of L.A. (patched).

  • GameDB: The database has been once again updated with the inclusion of many games with required gamefixes, as well as removal of gamefixes which are no longer needed.


Show Previous Changes

On their next update, this section will be refreshed.

bottom of page