هذا الدليل موجه للمطورين والمستخدمين اللي يحتاجون يبنون RPCS3 بأنفسهم للتطوير أو الاختبار. استخدام النسخة الجاهزة يظل الأفضل للمستخدم العادي، أما البناء من المصدر فيحتاج أدوات تطوير ومساحة ووقت تجميع.

مستودع RPCS3 الرسمي على GitHub

الكود المصدري الرسمي لـ RPCS3 موجود داخل مستودع المشروع على GitHub.

مهم قبل البدء

Windows وLinux منصات البناء المدعومة رسميًا من فريق RPCS3.
macOS وFreeBSD والمنصات الثانية ممكن يشتغل البناء عليها، لكنها مو مدعومة بنفس مستوى Windows وLinux وقد تتعطل تعليماتها مع التحديثات.
تعليمات قديمة تعتمد على Qt 6.6.3 أو CMake 3.16.9 أو GCC 11 و Clang 12 ما عادت تمثل متطلبات المشروع الحالية.
هذا شرح بناء وليس شرح تشغيل ألعاب. المستخدم العادي يحمل آخر Build جاهز من صفحة تنزيل RPCS3 الرسمية.

المتطلبات الحالية

Windows 10 أو أحدث

الأداة الإصدار المطلوب ملاحظات
Visual Studio 2022 أو 2026 حل rpcs3.sln هو المسار المفضل للبناء على Windows.
CMake 3.28.0 أو أحدث اختياري عند استخدام Visual Studio، لكن Visual Studio 2026 يحتاج CMake 4.2.0 أو أحدث.
Python 3.6 أو أحدث لازم يكون مضاف إلى PATH.
Qt 6.11.1 ثبت مكون qtmultimedia مع نسخة MSVC.
Vulkan SDK 1.4.341.1 استخدم الإصدار المحدد في الدليل؛ الإصدارات المستقبلية قد تسبب فشلًا مؤقتًا بالبناء.

Linux

الأداة الإصدار المطلوب ملاحظات
Clang / GCC Clang 17+ أو GCC 13+ هذه الحدود الدنيا الحالية للمترجمات.
CMake 3.28.0 أو أحدث يستخدم لتوليد ملفات البناء.
Qt 6.11.1 قد تكون حزم Ubuntu أقدم من المطلوب.
Vulkan SDK 1.4.341.1 الإصدارات القديمة ممكن تسبب أخطاء Compile.
SDL SDL3 مطلوب لواجهة FAudio.
مستخدم Nvidia على Linux قد يحتاج تثبيت حزمة libglvnd.

استنساخ مستودع RPCS3

استخدم خيار --recurse-submodules عشان ينزل المستودع الرئيسي وجميع المكتبات الفرعية من البداية.

PowerShell أو Terminalgit clone --recurse-submodules https://github.com/RPCS3/rpcs3.git cd rpcs3 git submodule sync git submodule update --init --recursive
تنزيل المستودع بدون Submodules يسبب أخطاء مكتبات مفقودة عند Configure أو Build.

بناء RPCS3 على Windows بالطريقة المفضلة

1. تعريف مسار Qt

عند استخدام حل Visual Studio العادي، عرّف متغير البيئة QTDIR على مسار Qt:

مثالQTDIR=C:\Qt\6.11.1\msvc2022_64\

تقدر بدل ذلك تستخدم إضافة Qt VS Tools داخل Visual Studio.

2. فتح الحل

1
افتح Visual Studio.
2
اختر Open a project or solution.
3
افتح ملف rpcs3.sln من جذر المستودع.
4
من Solution Configurations اختر Release.

3. تجهيز LLVM

تقدر تستخدم مكتبات LLVM الجاهزة لتقليل وقت البناء، أو تبنيها من داخل مجموعة المشاريع __BUILD_BEFORE.

1
وسع مجموعة __BUILD_BEFORE.
2
ابنِ مشروع llvm_build، أو llvm_build_clang_cl لو مركب Clang داخل Visual Studio.
مكتبات LLVM غير المحسنة الخاصة بـ Debug مو متوفرة جاهزة. استخدام مكتبات Release داخل Debug يؤدي إلى خطأ cannot open file.

4. بناء المحاكي

1
تأكد أن Configuration هو Release.
2
افتح قائمة Build واختر Build Solution.
3
بعد النجاح بتلقى المحاكي داخل <rpcs3_root>\bin.

البناء على Windows باستخدام CMake

لمسار CMake عرّف متغير البيئة Qt6_ROOT بدل QTDIR:

مثالQt6_ROOT=C:\Qt\6.11.1\msvc2022_64\

Visual Studio CMake

1
اختر Open a local folder وافتح جذر RPCS3.
2
حول العرض إلى CMake Targets View.
3
اختر Configuration باسم msvc-release.
4
نفذ Configure Cache ثم Build All.
5
الناتج يكون داخل <rpcs3_root>\build-msvc\bin.

Standalone CMake

من جذر المستودعcmake --preset msvc cmake --build --preset msvc-release
الناتج يكون داخل <rpcs3_root>\build-msvc\bin.

تثبيت متطلبات Linux

Arch Linux

Terminalsudo pacman -S glew openal cmake ninja vulkan-validation-layers qt6-base qt6-declarative qt6-multimedia qt6-svg sdl3 sndio jack2 base-devel

Debian وUbuntu

Terminalsudo apt-get install build-essential ninja-build libasound2-dev libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git libevdev-dev libsdl3-dev libjack-dev libsndio-dev libcurl4-openssl-dev qt6-base-dev qt6-base-private-dev qt6-multimedia-dev qt6-svg-dev libxkbcommon-dev
مستودعات Ubuntu ممكن تكون أقدم من إصدارات Qt وGCC وVulkan وCMake المطلوبة للمشروع، لذلك لا تعتمد على رقم الحزمة فقط وتأكد من الإصدار الفعلي.

Fedora

Terminalsudo dnf install alsa-lib-devel cmake ninja-build glew glew-devel libatomic libevdev-devel libudev-devel openal-soft-devel qt6-qtbase-devel qt6-qtbase-private-devel vulkan-devel pipewire-jack-audio-connection-kit-devel qt6-qtmultimedia-devel qt6-qtsvg-devel llvm-devel libcurl-devel

OpenSUSE

Terminalsudo zypper install git cmake ninja libasound2 libpulse-devel openal-soft-devel glew-devel zlib-devel libedit-devel vulkan-devel libudev-devel libqt6-qtbase-devel libqt6-qtmultimedia-devel libqt6-qtsvg-devel libQt6Gui-private-headers-devel libevdev-devel libsndio7_1 libjack-devel

بناء وتشغيل RPCS3 على Linux

من جذر مستودع RPCS3cmake -B build -G Ninja cmake --build build ./build/bin/rpcs3

لاستخدام Clang بدل المترجم الافتراضي:

اختيار ClangCC=clang CXX=clang++ cmake -B build -G Ninja cmake --build build

البناء على ARM

لتجنب بعض أخطاء NEONcmake -B build -G Ninja -DUSE_NATIVE_INSTRUCTIONS=OFF cmake --build build
عند استخدام GDB، يوصي الدليل بجعل المصحح يتجاهل إشارة SIGSEGV المستخدمة داخليًا:
داخل GDBhandle SIGSEGV nostop noprint

أهم خيارات CMake

الخيارات تتغير مع تطوير المشروع، لذلك راجع CMakeLists.txt قبل اعتماد أي قيمة في سكربت ثابت.

الخيار وظيفته
-DUSE_NATIVE_INSTRUCTIONS=يبني باستخدام تعليمات المعالج المحلي. مناسب للبناء الشخصي، لكنه غير مناسب للحزم العامة.
-DWITH_LLVM=تفعيل بناء RPCS3 مع LLVM.
-DBUILD_LLVM_SUBMODULE=استخدام أو بناء LLVM الموجود ضمن Submodule الخاص بالمشروع.
-DUSE_ALSA=تفعيل واجهة ALSA الصوتية على Linux.
-DUSE_PULSE=تفعيل PulseAudio.
-DUSE_DISCORD_RPC=تفعيل Discord Rich Presence.
-DUSE_VULKAN=تفعيل دعم Vulkan.
-DUSE_SYSTEM_ZLIB=استخدام ZLIB من النظام بدل النسخة المضمنة.
-DUSE_SYSTEM_LIBPNG=استخدام libpng من النظام؛ قد يساعد في تعارض الإصدارات أو الأيقونات السوداء.
-DUSE_SYSTEM_FFMPEG=استخدام FFmpeg من النظام بدل النسخة المعدلة المضمنة.
-DENABLE_AMD_EXTENSIONS=تفعيل امتدادات AMD الخاصة.
-DENABLE_NV_EXTENSIONS=تفعيل امتدادات Nvidia الخاصة.
لا تنسخ خيارات من أدلة قديمة بدون مراجعة. الخيار ممكن ينحذف أو يتغير اسمه أو تتغير قيمته الافتراضية في أي تحديث.

وش وضع macOS وMSYS2؟

أوامر macOS القديمة اللي تعتمد Rosetta وHomebrew x64 وQt 6.6.3، وتعليمات MSYS2 المبنية على Qt5 وPython 2، تعتبر مسارات قديمة وغير مدعومة رسميًا حاليًا. لا تستخدمها كدليل رئيسي للبناء.

المشروع يقبل مساهمات تساعد المنصات الثانية على البناء، لكن فريق التطوير يوضح أن الدعم الرسمي للبناء يتركز على Windows وLinux، والمنصات الثانية ممكن تنكسر مع تغييرات الكود أو المكتبات.

المصادر الرسمية

ابدأ من BUILDING.md الموجود في نفس Commit اللي بتبنيه، لأن إصدارات Qt وVulkan وCMake وخيارات البناء تتغير مع تحديث المشروع.