Daniel Risto 4cac76caad Fix race condition in memory_decommit/memory_reset on Apple ARM64
The previous approach used munmap followed by mmap without MAP_FIXED
(since Apple rejects MAP_FIXED | MAP_JIT). Between the two calls,
another thread could claim the unmapped address range, causing mmap
to return a different address and triggering a fatal verification error.

Under concurrent load (e.g. PPU LLVM compilation with many worker threads),
this race manifests reliably as "Verification failed (object: 0x0)" crashes
across all PPUW threads in memory_decommit.

Fix: Use MAP_FIXED without MAP_JIT instead. This atomically replaces the
mapping without any window for other threads to interfere. The MAP_JIT
attribute is lost on the replaced pages, but the application's code signing
entitlements (allow-unsigned-executable-memory, disable-executable-page-protection)
permit executable mappings without it.

Applied the same fix to memory_reset which had the identical pattern.
2026-04-24 20:15:41 +03:00
2026-04-08 12:19:58 +02:00
2026-03-21 16:10:26 +01:00
2024-12-28 19:58:59 +01:00
2026-04-22 15:06:02 +02:00
2020-12-06 15:30:12 +03:00
2020-11-12 23:43:38 +03:00
2026-03-22 13:16:58 +01:00
2026-01-24 09:37:47 +01:00
2026-03-30 10:58:19 +02:00
2024-11-16 15:10:20 +01:00
2014-02-13 11:33:07 +01:00
2025-11-02 14:22:11 +02:00
2025-06-12 09:33:40 +03:00
2026-01-24 09:37:47 +01:00
2016-08-12 14:32:57 +03:00

RPCS3

GitHub Actions RPCS3 Discord Server

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

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 2022 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.

Languages
C++ 93.1%
C 4.7%
Self 0.9%
GLSL 0.7%
CMake 0.3%
Other 0.2%