Skip to main content

PS5 v1 Upgrade to v2 Adaptation Guide

Since version V1.32.01, the Player Network SDK default precompiled library for the PS5 platform has been upgraded to be built on the SIE libc++ v2 standard library.This PS5 adaptation is based on Prospero SDK 12.000 (PS5 SDK 12.0).When upgrading the SDK for an integrated Project, all PS5 dependent libraries and project configurations must be updated accordingly.

Special Note: PS5 v1 supported versions

If a Project still needs to use SIE libc++ v1 with the current Player Network SDK version, please contact the Player Network SDK team separately to get a special version that supports PS5 v1.This version must be provided separately. Do not use the default v2 precompiled library for v1 Projects.This guide's upgrade steps are for v2 versions.

Upgrade Prerequisites

  • Engine version: Requires Unreal Engine 5.7 and above, and usage of the corresponding PS5 platform extension.
  • Development environment: Player Network SDK's PS5 adaptation is based on Prospero SDK 12.000; this version serves as the baseline for this adaptation, but stdlib v2 was not introduced only from SDK 12.
  • Third-party libraries: All third-party libraries used on the PS5 platform must be updated to versions built on SIE libc++ v2, including 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 cannot continue to use old v1 binaries.
caution

Upgrading third-party libraries and precompiled libraries to v2 is a migration prerequisite.Only modifying Target.cs will not change the ABI (Application Binary Interface) of existing libraries; mixing v1 libraries will cause PS5 compilation or linking to fail.If you haven't obtained the corresponding v2 dependent libraries, you must obtain them from the supplier, or recompile the source code for v2 versions before upgrading to integrate.

Reason for Change

SIE libc++ v2 improves compliance with the C++ standard; v1 and v2 differ in the implementation of the standard library and certain ABI aspects.After switching the Player Network SDK to v2, the Project and its dependent libraries must be migrated accordingly to ensure cross-library interface compatibility, and to avoid missing link symbols or runtime exceptions.

For migration steps and details on differences between upgrading the standard library from v1 to v2, please refer to Sony's official documentation:

note

This Sony developer documentation requires PlayStation developer account access; please ensure the integrator has joined the relevant PS5 developer program.

Upgrade Steps

1. Update SDK and PS5 dependencies

  1. Use the new version of Player Network SDK and corresponding plugins to replace old files in the project, keeping existing business configurations.
  2. Update all third-party libraries and precompiled libraries used for the PS5 platform to v2 versions to meet the migration prerequisites above.
  3. Update library reference paths in the project to ensure the actual linked binaries are new v2 products, and avoid continuing to reference v1 libraries in old directories.

2) Update Project configuration

Open the Project's Source/<your_project_name>.Target.cs file, and in the constructor for the PS5 Platform add the following configuration; if the Project has multiple Targets for PS5 packaging, adjust them accordingly.

if (Target.Platform == UnrealTargetPlatform.PS5)
{
CppStandard = CppStandardVersion.Cpp20;
PS5Platform.StandardLibVersion = SceStandardLibVersion.V2;
}
  • CppStandard = CppStandardVersion.Cpp20: Set the C++ language standard mode to C++20.
  • PS5Platform.StandardLibVersion = SceStandardLibVersion.V2: Select the SIE libc++ v2 standard library.

These two settings control the language mode and standard library version separately.Set these as described above during the upgrade; selecting only C++20 does not mean you have switched to v2, nor can you judge ABI mismatch just based on whether Cpp20 is explicitly written.

If the Project already has a PS5 platform branch (such as configuration for bUseStaticCRT, bAllowLTCG), merge the above settings into the existing branch.Any previous setting specifying Cpp17 or lower for PS5 must be adjusted to Cpp20, and avoid any subsequent assignments or module configurations that override these settings.

Supplement: PS5 v2 adaptation on UE 5.7 engine side

If the Project team is using UE 5.7 engine still configured for v1 to generate PS5 binaries, it cannot be used with this v2 SDK package; the engine-side adaptation must be completed first.Selecting v2 in the Project's Target.cs alone cannot convert existing PS5 v1 engine precompiled libraries to v2.

For UE 5.7 compiled engines that include v2 support but still default to v1 standard library, modify engine source code as follows:

  • Engine relative path: Engine\Platforms\PS5\Source\Programs\UnrealBuildTool\UEBuildPS5.cs.
  • For example, with the engine installed at D:\5.7.4, the full path is: D:\5.7.4\Engine\Platforms\PS5\Source\Programs\UnrealBuildTool\UEBuildPS5.cs.
  1. Open the above file, locate the default configuration for StandardLibVersion, set the standard library version to v2, with the corresponding enum value as SceStandardLibVersion.V2.The specific declaration location depends on the UE 5.7 branch in use.
  2. Recompile UnrealBuildTool to activate the engine-side configuration and regenerate the required PS5 engine binaries with v2 configuration.Recompiling only the Windows editor or UnrealBuildTool will not convert existing PS5 precompiled libraries.
  3. If distributing a precompiled engine (Installed Build) to the Project team, update the PS5 engine libraries and corresponding build tools; ensure both development machines and CI use the same updated engine.
  4. The Project should continue to keep the C++20 and v2 configuration in the Target.cs as discussed above, and use the v2 versions of SDK, plugins, and third-party libraries to ensure consistency between engine and Project configurations and binaries.
note

This section is to supplement PS5 v2 adaptation on the engine side, not a replacement for Project configuration.If the PS5 platform extension in use itself lacks v2 support (such as missing enums or toolchain logic), update to the matching platform extension that supports v2; you cannot just modify the engine's default value to provide this capability.

Notes

  • This change is only for the PS5 platform—other platforms (Windows / XSX / Switch / WinGDK, etc.) do not need to add the above configuration.
  • Updating the SDK, updating all PS5 third-party libraries and precompiled libraries, and modifying project configuration are all indispensable steps.You cannot convert v1 precompiled libraries to v2 by changing library file names or only adjusting Target configuration.
  • If the Project directly manipulates STL internals, or passes strings, containers, or other C++ objects across library interfaces, handle relevant implementation differences according to Sony's official migration documentation.
  • If the Player Network SDK makes further adjustments to the PS5 standard library or toolchain version, it will be announced separately in the version update announcement.