PS5 V2 Upgrade Guide
Starting from version V1.32.01, the precompiled libraries provided by default for the PS5 platform in Player Network SDK have been upgraded to builds based on the SIE libc++ v2 standard library. This PS5 adaptation was completed based on Prospero SDK 12.000 (PS5 SDK 12.0). When upgrading the SDK for an integrated game project, you must also update the PS5 dependent libraries and project configuration accordingly.
If the project still needs to use SIE libc++ v1 under the current Player Network SDK version, please contact the Player Network SDK team separately to obtain the dedicated version that supports PS5 v1. This version must be provided separately. Do not use the v2 precompiled libraries provided by default this time directly for v1 projects. The upgrade steps in this document apply to the v2 version.
Upgrade prerequisites
- Engine version: Unreal Engine 5.7 or later is required, along with the corresponding PS5 platform extension.
- Development environment: This PS5 adaptation of Player Network SDK is based on Prospero SDK 12.000; this version is the baseline for this adaptation and does not mean that stdlib v2 is only available starting from SDK 12.
- Third-party libraries: All third-party libraries used on the PS5 platform must be updated to versions built based on SIE libc++ v2, including the libraries depended on by third-party plugins.
- Precompiled libraries: All precompiled libraries actually linked on the
PS5 platform must be v2 versions, including
INTLCore.a, other SDK/plugin libraries, and the engine precompiled libraries used by the project. You can no longer continue using old v1 artifacts.
Upgrading third-party libraries and precompiled libraries to v2 is a
prerequisite for migration. Merely modifying Target.cs will not change the ABI
(binary interface) of existing libraries; mixing v1 libraries will cause PS5
compilation or linking failures. If you have not yet obtained the corresponding
v2 version of the dependency libraries, you need to first obtain them from the
vendor, or rebuild them from source as the v2 version before upgrading the
integration.
Reason for Change
SIE libc++ v2 improves compliance with the C++ standard, and differs from v1 in the standard library implementation and some aspects of the ABI. After Player Network SDK switches to v2, the game project and its dependent libraries must be migrated accordingly to ensure compatibility across library interfaces and avoid missing link symbols or runtime exceptions.
For migration steps and details on the differences when upgrading the standard library from v1 to v2, refer to the official Sony documentation:
- v2 Upgrade Guide: C++ Standard Library V2 Migration Guide — PS5 SDK 12.000.
- v1/v2 Differences: Differences from the v1 Library Due to Compliance with the C++ Standard — PS5 SDK 12.000.
The Sony developer documentation mentioned above requires access permissions for a PlayStation developer account. Please ensure that the integrating party has joined the corresponding PS5 developer program.
Upgrade steps
1. Update the SDK and PS5 dependent libraries
- Use the new version of Player Network SDK and the corresponding plugin to replace the old version files in the project while retaining the original business configuration.
- Update all third-party libraries and precompiled libraries used on the PS5 platform to v2 versions to meet the migration prerequisites above.
- Update the library reference paths in the project to ensure that the newly linked artifacts are the new v2 versions, and avoid continuing to reference v1 libraries in the old directories.
2. Update the game project configuration
Open Source/.Target.cs in the game project and add the following configuration
for the PS5 platform in the constructor; if the project has multiple Targets
used for PS5 packaging, they must be adjusted accordingly as well.
if (Target.Platform == UnrealTargetPlatform.PS5)
{
CppStandard = CppStandardVersion.Cpp20;
PS5Platform.StandardLibVersion = SceStandardLibVersion.V2;
}
CppStandard = CppStandardVersion.Cpp20: sets the C++ language standard mode to C++20.PS5Platform.StandardLibVersion = SceStandardLibVersion.V2: selects the SIE libc++ v2 standard library.
These two settings control the language mode and standard library version
respectively. During the upgrade, configure them as described above; selecting
only C++20 does not mean you have switched to v2, nor can you conclude that
there is an ABI mismatch simply because Cpp20 is not explicitly written.
If the project already has a PS5 platform branch (for example, with
bUseStaticCRT and bAllowLTCG configured), simply merge the above settings
into the existing branch. Any previous PS5-specific setting of Cpp17 or lower
must be changed to Cpp20, and you should avoid subsequent assignments or
module configurations overriding these settings.
Supplement: PS5 v2 adaptation on the UE 5.7 engine side
If the UE 5.7 engine used by the project team still generates PS5 artifacts with
the v1 configuration, it cannot be used together with this v2 SDK, and the
engine-side adaptation must be completed first. Selecting v2 only in the game's
Target.cs cannot convert the existing PS5 v1 precompiled engine libraries to
v2.
For a compiled UE 5.7 engine that already includes v2 support but still defaults to the v1 standard library configuration, modify the engine source code as follows:
- Relative path within the engine:
Engine\Platforms\PS5\Source\Programs\UnrealBuildTool\UEBuildPS5.cs. - For example, if the engine is installed at
D:\5.7.4, the full path is:D:\5.7.4\Engine\Platforms\PS5\Source\Programs\UnrealBuildTool\UEBuildPS5.cs.
- Open the file above, locate the default configuration of
StandardLibVersion, and set the standard library version to v2, whose corresponding enum value isSceStandardLibVersion.V2. The exact declaration location depends on the UE 5.7 branch in use. - Rebuild UnrealBuildTool so the engine-side configuration takes effect, and regenerate the required PS5 engine artifacts using the v2 configuration. Rebuilding only the Windows editor or UnrealBuildTool will not convert existing PS5 precompiled libraries.
- If you distribute a precompiled engine (Installed Build) to the project team, update the PS5 engine libraries and corresponding build tools in it; development machines and CI should use the same updated engine.
- For the game project, keep the C++20 and v2 settings in the previously
mentioned
Target.cs, and use the v2 SDK, plugins, and third-party libraries to ensure that the engine and project configurations and artifacts are consistent.
This section is used to complete engine-side PS5 v2 adaptation and is not a substitute for game project configuration. If the PS5 platform extension in use itself lacks v2 support (for example, corresponding enums or toolchain handling logic), you should first update to the matching platform extension that supports v2. You cannot make up for this capability merely by changing the default values of the build engine.
Notes
- This adjustment applies only to the PS5 platform. Other platforms (Windows / XSX / Switch / WinGDK, etc.) do not need the above configuration.
- Updating the SDK, updating all PS5 third-party libraries and precompiled libraries, and modifying the project configuration are all indispensable. You cannot convert v1 precompiled libraries to v2 by changing library filenames or only adjusting the Target configuration.
- If the project directly manipulates internal STL structures, or passes C++ objects such as strings and containers across library boundaries, you should refer to Sony's official migration documentation to handle the relevant implementation differences.
- If the Player Network SDK later adjusts the PS5 standard library or toolchain version again, it will be announced separately in the release notes.