The world's first free and open-source PlayStation 3 emulator/debugger, written in C++ for Windows and Linux.

Related tags

Debug rpcs3
Overview

RPCS3

Azure Build Status Cirrus CI - Base Branch Build Status RPCS3 discord server

The world's first free and open-source PlayStation 3 emulator/debugger, written in C++ for Windows and Linux.

You can find some basic information on our website. Game info is being populated on the Wiki. For discussion about this emulator, PS3 emulation, and game compatibility reports, please visit our forums and our Discord server.

Support Lead Developers Nekotekina and kd-11 on Patreon

Contributing

If you want to help the project but do not code, the best way to help out is to test games and make bug reports. See:

If you want to contribute as a developer, please take a look at the following pages:

You should also contact any of the developers in the forums or in the Discord server to learn more about the current state of the emulator.

Building

See BUILDING.md for more information about how to setup an environment to build RPCS3.

Running

Check our friendly quickstart guide to make sure your computer meets the minimum system requirements to run RPCS3.

Don't forget to have your graphics driver up to date and to install the Visual C++ Redistributable Packages for Visual Studio 2019 if you are a Windows user.

License

Most files are licensed under the terms of GNU GPL-2.0-only License; see LICENSE file for details. Some files may be licensed differently; check appropriate file headers for details.

Issues
  • Vulkan: Running games on Fullscreen causes a crash after a while

    Vulkan: Running games on Fullscreen causes a crash after a while

    With the Vulkan backend games keep on crashing using Fullscreen (OpenGL is not affected at all). The crash/freeze doesn't happen when you enter/switch to Fullscreen but random after some minutes of play...strangely playing in a window (extended or not) is fine (no crashes), so it makes me think that rpcs3 uses an exclusive Fullscreen mode that is actually broken on Vulkan (having a borderless Fullscreen option could fix the problem?) I still don't know if every game is affected, for now Tales of Xillia and Catherine both have this issue.

    My spec: Win10 Intel i5 7400 Gtx1060 3gb

    RPCS3.log.zip

    Bug Render: Vulkan Driver: NVIDIA 
    opened by psennermann 255
  • rsx: Fbo fixes

    rsx: Fbo fixes

    Reimplements some parts of framebuffer management including:

    • Avoiding generating framebuffer attachments for attachments that are likely unused. This prevents memory corruption when WCB/WDB is not in use since we rely on attachment memory tags to watch for events. Fixes https://github.com/RPCS3/rpcs3/issues/5406.
    • Rewrites memory inheritance to implicity guarantee correct results even when strict mode is not enabled. This both simplifies the design and potentially moves some more games from strict mode requirement.
    • Fix a texture cache deadlock due to incorrect internal size computations
    • Bump max number of compute invocations on vulkan to 8 times the old value. Real-world testing has shown that it is completely possible to trigger a very high number of readback operations in loading screens. Fixes https://github.com/RPCS3/rpcs3/issues/5193 and other similar issues.

    This is the first in a series of pull requests, so gt_fixes will be made available after this one is merged as they touch some of the same common code.

    Enhancement RSX Bugfix Render: Vulkan Render: OpenGL 
    opened by kd-11 206
  • Cannot launch games on Linux build (F LDR: St11range_error thrown: Narrow error

    Cannot launch games on Linux build (F LDR: St11range_error thrown: Narrow error

    Have seen this with the two games that I successfully tested on Windows 10 -- Catherine and Hatsune Miku: Project DIVA F. On Linux, they both resulted in the following error in the log:

    F LDR: St11range_error thrown: Narrow error (0x56295a14cf60)
    

    I'm running the current latest RPCS3 build, b70a1edb. Linux OS info is 4.9.0-2-amd64 #1 SMP Debian 4.9.13-1 (2017-02-27) x86_64 GNU/Linux.

    Dependency info:

    /opt/rpcs3/bin/ sudo dpkg -l | egrep "(gcc-5)|(clang)" 
    ii  clang                                          1:3.8-34+b1                          amd64        C, C++ and Objective-C compiler (LLVM based)
    ii  clang-3.8                                      1:3.8.1-17                           amd64        C, C++ and Objective-C compiler (LLVM based)
    ii  gcc-5                                          5.4.1-8                              amd64        GNU C compiler
    ii  gcc-5-base:amd64                               5.4.1-8                              amd64        GCC, the GNU Compiler Collection (base package)
    ii  libclang-common-3.8-dev                        1:3.8.1-17                           amd64        clang library - Common development package
    ii  libclang1-3.8:amd64                            1:3.8.1-17                           amd64        C interface to the clang library
    ii  libgcc-5-dev:amd64                             5.4.1-8                              amd64        GCC support library (development files)
    
    Bug OS: Linux 
    opened by thecityofguanyu 155
  • rsx: Texturing improvements

    rsx: Texturing improvements

    Improves texture search logic by attempting to 'merge' the surface store data and the texture cache data whenever overlaps are encountered. A full data collapse would be infeasible due to performance concerns, but since the two sources are optionally data locked, this should almost always resolve correctly especially when WCB is enabled.

    This PR is still very WIP and has been made available for testing. Please look out for significant graphical or performance regressions. Optimizations are still ongoing.

    Glitched:

    • [x] Motorstorm
    • [x] Rio
    • [x] Resistance 3 (OGL)
    • [x] GOW3 (GPU blit)
    • [x] GOW3 (WCB)
    • [x] SC4 Bloom
    opened by kd-11 145
  • Gran Turismo 5 [BCUS98114] Locks up without any error in the console ( desynchronisation of the emulator )

    Gran Turismo 5 [BCUS98114] Locks up without any error in the console ( desynchronisation of the emulator )

    OLD PC:

    Operation System: Windows 10 1903

    I7 5930K, 16GB Ram, GTX 1080 Ti

    23.11.2020 (dd/mm/yy)

    The game locks up when starting a race or a few seconds in the race.

    NEW PC:

    AMD Ryzen 5 5600x, 16GB Ram ( same as before ), GTX 1080 Ti


    First i'll explain what happens to the game. When I start a race I can drive normally but then after 15 seconds or 1 minute and more it will lock up. Sometimes I can finish a race but this is very rare. Also as I mentioned there is no error in the console it's usually compiling something and then nothing happens anymore. It's like someone pushed the pause button. The spectators of the race are still moving but the cars stopped, the sound stopped and nothing is reacting.

    (And btw I want to mention that while first loading up the game it will crash on certain points like the start menu and loading a race but restarting the emulator and loading it the second time fixes it. If you want the logs for this issue too I can provide them but first I have to reproduce the issue)

    Here is the log file of the game freezing while in a race. Maybe there is something in there indicating what the problem is.

    I want this game to be playable so bad. It's very close just some minor graphic glitches, the game freezing and the loading thing ( i can life with restarting the game ) but when this is fixed it's 100% playable!

    RPCS3.zip

    opened by SKYMEE1 136
  • Regressions from #5675

    Regressions from #5675

    A regression tracker for any remaining bugs introduced by https://github.com/RPCS3/rpcs3/pull/5675.

    EDIT: When reporting a regression, check if its fixed by enabling WCB and/or forcing CPU blit from the debug option.

    TODO:

    • [x] JAK II & III
    • [x] Backbreaker
    • [x] Rogue Legacy
    • [x] Iron Man
    • [x] MCLA
    • [x] RE6
    • [x] Genji
    • [x] Yakuza 4
    • [x] Silent Hill: Downpour
    • [x] MS: Apocalypse
    • [x] Ben 10 Galactic Racing
    • [x] Monster Jam
    • [x] Bioshock
    RSX Regression 
    opened by kd-11 125
  • Native UI

    Native UI

    First RSX PR of 2018 is here. Still WIP but its a long requested feature

    • Implements core for native user interface support in rpcs3
    • Implements save dialog with native UI

    Things left to do

    • [x] Implement message dialog and progress dialog (easy)
    • [x] Implement trophy popup (easy)
    • [x] Implement shader compiling notification (easy)
    • [x] Properly handle failed initialization and fallback paths
    • [x] Properly handle TTF search and loading as well as fallback paths. This is not implemented at all for linux atm.

    Remaining tasks (outside scope of this bloated changeset)

    • Manage interface lifetimes outside of rsx::thread. They are not part of rsx core
    • Add support for interface stacking. Currently only one interface can be active at any one time
    opened by kd-11 123
  • rsx: Surface cache improvements

    rsx: Surface cache improvements

    Variable-sized framebuffers idea turned out to be a disaster, so I had to go back to the drawing board. Perform surface cache intersection resolve for surfaces to allow propagation of old data through most cases. Essentially guarantees that previous ROP writes to an arbitrary memory range are present if any render-target is created from the same range. Removes need for the memory hierachy invalidation hack needed for RDR to render accurate shadows.

    • Allows render targets to behave like stacked 3D views same as shader inputs are resolved
    • Basically implements most of 'Read Color/Depth Buffers" option for 'free'.
    • Allows splitting RTV/DSV resources if they are superceded by a partial surface
    • Also allows intersecting new resources through the surface cache for proper inheritance from other scattered data
    opened by kd-11 114
  • GL/VK: Tales of Vesperia - Rendering issues

    GL/VK: Tales of Vesperia - Rendering issues

    EDIT: Issue closed, it's too cluttered around here. Go to #4357.

    Issues to fix:

    • [x] Black characters
    • [x] Blue veil
    • [x] Shadows: Not every character gets their shadow, but it's no longer a square.
    • [x] Scrambled text
    • [x] Lighting issue
    • [x] Frame persistence issue
    • [x] Half-screen issue (related to SRM)
    • [ ] Wrong colors on characters textures (unrelated to SRM, the issue appears even without it)
    • [ ] Requires Strict Rendering Mode (not quite an issue, just prevents enhancements)

    Original comment:

    VK: no lights in main menu; half-screen issues in skits, pause screen, black screen transitions; no red screen; (EDIT : VK-specific issues are fixed as of 0.0.2-4584, it now displays the same as OGL, without the red-screen) DX12: emulator crashes just before the main menu

    PS3
    RPCS3 OGL

    Renderdoc Main Menu Renderdoc Ingame Log

    EDIT (21/03/2018): Hiding pictures behind "details" tags to make this thread more readable.

    Render: Vulkan Render: OpenGL 
    opened by GeniusMage 111
  • Persona 5: Random font/texture swapping

    Persona 5: Random font/texture swapping

    Hello RPCS3 Team!

    First off, let me just say a million thanks to the dev team. I wouldn't have been able to play this if it weren't for you guys.

    I'd like to report an issue regarding Persona 5. This usually happens after playing the game for a period of time. It's the worst when my status bar isn't displayed correctly. I'm not sure if this is a normal thing but it never did this before.

    Here are my specs: CPU: i5-7600K GPU: GTX 1060 6GB OS: Windows 10 RPCS3: 0.0.4-6439-ee88e7f94

    Sorry, totally new to this. I'm attaching censored screenshots of the issue and as well as the log file. I censored some details to mostly keep it spoiler-free:

    rpcs3_p5visbug2 rpcs3_p5visbug1 rpcs3_p5visbug4

    Log link: http://www.mediafire.com/file/23u46l5p1qewoxa/RPCS3.log.gz

    Bug RSX Discussion 
    opened by UnaKaya 99
  • rsx: FIFO processing rewrite

    rsx: FIFO processing rewrite

    This PR essentially does 2 things:

    1. Refactors FIFO processing into something more readable, including separation of the main loop from the flattener.
    2. Significantly reworks how draw calls are processed. This part is still very unfinished, but the idea is to completely ignore the FIFO begin/end commands and use our own mechanisms to decide where to mark the scope of draw calls. The reorganization and optimization here results in quite a good fps boost in applications that are limited by RSX performance.

    Other minor improvements include:

    1. Fixes some minor bug in the surface_store that could return an empty set when asked to get an overlapping list with at least one confirmed hit.
    2. Make the FIFO flattener engage dynamically depending on load to avoid slowdown when the extra processing overhead is not required.

    At some point late in development, I scrapped the older system with the prebuffered queues and optimization passes. The performance hit of FIFO preprocessing was quite high and the prebuffering caused race conditions in poorly synchronized applications. This should be resolved in the final version, which has greatly simplified FIFO processing.

    So, what does this all mean? Well, you could potentially get a ~10% boost in applications with an RSX bottleneck. This may not mean much for some applications, but the gains are significant at high draw call counts. Most other applications may only show a few fps gain.

    Enhancement RSX Render: Vulkan Render: OpenGL 
    opened by kd-11 94
Releases(v0.0.23)
Owner
PlayStation 3 emulator and debugger
null
Palanteer is a set of high performance visual profiler, debugger, tests enabler for C++ and Python

Palanteer is a set of lean and efficient tools to improve the general software quality, for C++ and Python programs.

Damien Feneyrou 1.9k Aug 2, 2022
Templight 2.0 - Template Instantiation Profiler and Debugger

Templight is a Clang-based tool to profile the time and memory consumption of template instantiations and to perform interactive debugging sessions to gain introspection into the template instantiation process.

Sven Mikael Persson 593 Aug 8, 2022
With xshellex you can paste any kind of c-shellcode strings in x64dbg, ollydbg & immunity debugger

With xshellex you can paste any kind of c-shellcode strings in x64dbg, ollydbg & immunity debugger. Also you can convert the "binary-copied-clipboard" to c-shellcode string.

David Reguera Garcia aka Dreg 29 Jul 27, 2022
A Garry's Mod module that creates a Remote DeBugger server

gm_rdb A Garry's Mod module that creates a Remote DeBugger server. Provides Lua debugging (using LRDB) and access to the Source engine console. Compil

Daniel 14 Jul 7, 2022
heaptrace is a ptrace-based debugger for tracking glibc heap operations in ELF64 (x86_64) binaries

heaptrace is a ptrace-based debugger for tracking glibc heap operations in ELF64 (x86_64) binaries. Its purpose is to help visualize heap operations when debugging binaries or doing heap pwn.

Aaron Esau 237 Aug 6, 2022
A small, educational debugger with no dependencies

smldbg A small, educational debugger with no dependencies. Prerequisites To build the project and run the tests, the following are required: A C++20 c

null 3 Jun 16, 2022
Windows-only Remote Access Tool (RAT) with anti-debugging and anti-sandbox checks

RATwurst Windows-only Remote Access Tool (RAT) with anti-debugging and anti-sandbox checks. For educational purposes only. The reason behind this proj

AccidentalRebel 28 Jul 24, 2022
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Catch Org 15.4k Aug 11, 2022
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Catch Org 15.4k Aug 8, 2022
DotX64Dbg aims to provide a seamless way to write and test plugins for X64Dbg using .Net 5.0 and C#.

DotX64Dbg (EARLY ALPHA) Plugins and Scripting with C# for x64Dbg. Create Plugins for X64Dbg with ease DotX64Dbg aims to provide a seamless way to writ

ζeh Matt 7 Jan 21, 2022
CppUTest unit testing and mocking framework for C/C++

CppUTest CppUTest unit testing and mocking framework for C/C++ More information on the project page Slack channel: Join if link not expired Getting St

CppUTest 1.1k Aug 8, 2022
Googletest - Google Testing and Mocking Framework

GoogleTest OSS Builds Status Announcements Release 1.10.x Release 1.10.x is now available. Coming Soon Post 1.10.x googletest will follow Abseil Live

Google 27.2k Aug 11, 2022
A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking. The implementation is as limited and as simple as possible to create the lowest amount of overhead.

plf_nanotimer A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking. The implementation is as limited and simple a

Matt Bentley 89 Jul 15, 2022
🧪 single header unit testing framework for C and C++

?? utest.h A simple one header solution to unit testing for C/C++. Usage Just #include "utest.h" in your code! The current supported platforms are Lin

Neil Henning 499 Aug 5, 2022
Anti-Debug and Anti-Memory Dump for Android

AntiDebugandMemoryDump Anti-Debug and Anti-Memory Dump for Android Some known techniques for anti-debug and anti-memory dump have been used in this pr

Darvin 165 Aug 5, 2022
An efficient OpenFST-based tool for calculating WER and aligning two transcript sequences.

fstalign Overview Installation Dependencies Build Docker Quickstart WER Subcommand Align Subcommand Inputs Outputs Overview fstalign is a tool for cre

Rev 104 Aug 1, 2022
🍦IceCream-Cpp is a little (single header) library to help with the print debugging on C++11 and forward.

??IceCream-Cpp is a little (single header) library to help with the print debugging on C++11 and forward.

Renato Garcia 388 Aug 2, 2022
Watch for file changes and auto restart an application using fork checkpoints to continue the process (for quick live development)

Forkmon Watch for file changes and auto restart an application using fork checkpoints to continue. Intended for quick live development. This works onl

Eduardo Bart 11 May 17, 2022
Hibizcus is a collection of tools - Font proofing and debugging tools

Hibizcus Font proofing and debugging tools. Written by: Muthu Nedumaran Hibizcus is a collection of tools written to proof and debug in-house develope

Muthu Nedumaran 18 Jun 21, 2022