HLE هي الطريقة التي يردّ بها PS5PCEM على نداءات البرامج الثابتة التي تستوردها اللعبة. يصبح كل NID رقمي دالة Zig على مكدس المضيف، مع الإبقاء على اصطلاح الاستدعاء System V الخاص بالضيف على Windows.
كيف تعملالتنفيذ
كيف يعمل PS5PCEM
كل صفحة آلية ينفّذها المحاكي فعلًا: ماذا تفعل المنصة، وماذا يفعل كود Zig، وما الذي ما زال ناقصًا.
ملاحظات المستودع حتى 17 أكتوبر 2026
البرنامج الثابت وHLE
عدادات AMPR
جزئيAMPR في PS5PCEM نموذج برمجي محلي للعملية لأوامر العدادات والإكمال في الجهاز. تقبل 128 عدادًا عمليات التخزين، وتحديثات الحقول الذرية، والقراءات المزدوجة، والانتظارات المُقنَّعة، بترتيب الإرسال.
كيف تعمليحل APR ملف اللعبة مرة واحدة ثم يحمل معرّفًا محليًا للعملية في مخازن الأوامر اللاحقة. تعيد قراءات AMPR المؤجلة فتح ملف /app0 نفسه المخصص للقراءة فقط، من دون الإبقاء على واصف مضيف إلى الأبد.
كيف تعملعناوين الضيف عناوين حقيقية للمضيف. الذاكرة المباشرة مجمّع فيزيائي مشترك متناثر يُعيَّن في ذلك الفضاء، وتضيف MemoryPool عمليات الحجز والالتزام والدفعات فوق الدعم نفسه.
كيف تعملSavedata
يعملتصبح خانة حفظ مركَّبة مسار /savedata0 قابلًا للكتابة. تستخدم اللعبة واجهة الملفات العادية، ويجد التشغيل التالي الملفات نفسها تحت رمز المنتج الذي تنشره اللعبة.
كيف تعملتصيير الخطوط
جزئيينقّط libSceFont وجوه TrueType وOpenType التي تقدّمها اللعبة بواسطة FreeType. تستخدم طلبات خط النظام بديل Noto Sans المُرفَق للاتينية واليونانية والسريلية.
كيف تعمليكتب مُرمّز PNG ملفات RGB أو RGBA بعمق 8 بتات من بكسلات RGBA أو BGRA ذات خطوة صف. يقرأ فاك الترميز صور التدرج الرمادي ولوحة الألوان وRGB وRGBA غير المتداخلة إلى مخزن ضيف مُفحص.
كيف تعملتفحص RTC حقول التقويم، وتحوّل FILETIME في Windows، وتجري حسابًا مُفحصًا على النبضات. يرى الضيف ساعة متّسقة من دون تحويل التوقيت الصيفي الخاص بالمضيف.
كيف تعملعلى Windows، كل ليف في libSceFiber هو ليف Windows حقيقي، فيحفظ التبديل سجلات الضيف ومكدسه. تبدأ الخيوط على مستوى المستخدم عبر مسار pthread نفسه.
كيف تعملتقبل واجهة AIO في النواة دفعة من القراءات وتعيد معرّفًا. ينفّذ PS5PCEM الدفعة عند الإرسال، وهذا ما تسمح به الواجهة، وتجمع اللعبة نتيجة منتهية.
كيف تعملالرسوم
تبني لعبة PS5 حزم GPU في ذاكرتها الخاصة وترسل المخزن. يفك PS5PCEM ترميز مجرى PM4 ذلك، ويحتفظ بحالة السجلات، وينفّذ الرسومات والإطلاقات بالترتيب.
كيف تعملمظلّلات PlayStation 5 هي شيفرة آلة RDNA2. يفك PS5PCEM ترميز عائلات GFX10، ويبني مخطط تدفق تحكم، ويخفّض العمليات المدعومة إلى SPIR-V 1.5 من أجل Vulkan.
كيف تعملتُترجم برامج رؤوس NGG المدمجة، بما فيها مظلّل جلب يتابع بـ S_SETPC_B64، كمرحلة رسوم واحدة. يحتفظ برنامج التصدير بنافذة بيانات المستخدم الخاصة به.
كيف تعملتُنفَّذ IMAGE_LOAD_BY2 وBY4 وPCK2 وPCK4، بما فيها صيغ mip الصريحة، لتنسيقات 2D الأصلية المقيسة. يعيد حمل BY تكسلات متتالية. يرزّم حمل PCK بتاتها الخام في سجل واحد.
كيف تعملالجمع الأفقي
جزئييجمع IMAGE_GATHER4H وIMAGE_GATHER4H_PCK قناة واحدة عبر مجموعة أفقية من التكسلات. تغطي المجموعة الفرعية المباشرة المقيسة ذات 1D و2D عدد 1,242 إطلاق GPU.
كيف تعملتحفظ S_SWAPPC_B64 وS_CALL_B64 عنوان عودة كاملًا وتشغّل روتينًا فرعيًا محليًا محدودًا، بما في ذلك مستدعًى يقع بعد ENDPGM. يمكن ربط مظلّل جلب AGC مُتحقَّق منه بالطريقة نفسها.
كيف تعملمُصيّر Vulkan
يعملتحمّل خلفية Vulkan المشغّل وقت التشغيل، وتتطلب Vulkan 1.2، وتعرض إطارات الضيف عبر سلسلة تبديل. تبقى أهداف الرسم وصور التخزين وخطوط الأنابيب مقيمة عبر الرسومات.
كيف تعملعارض أصلي تجريبي لنظام Windows أُضيف بعد الإصدار 0.3.5. يتشارك مع Vulkan مفكّك PM4 وترجمة مظلِّلات RDNA2، ثم ينفّذ ويعرض عبر D3D12 وDXGI. يبقى Vulkan هو الافتراضي، ولا تعمل الألعاب عبر هذا المسار بعد.
كيف تعملMSAA
جزئيتبقى أعداد العينات المتطابقة 2× و4× و8× للون والعمق على صورة المضيف حتى دمج لاحق. تستخدم Asterix ذلك المسار لعمق MSAA واستنسله، وهو ما أزال إعادة قراءة كبيرة غير مقصودة.
كيف تعملHTILE وDCC وCMASK وFMASK هي بيانات العمق واللون المضغوطة في الجهاز. يتتبع PS5PCEM المؤشرات، ويمسح HTILE في الحالات التي يفهمها، ويرفض تخطيطًا كان ليزيل تبليطه بشكل خاطئ لولا ذلك.
كيف تعملتُخزَّن أنسجة PS5 في أنماط swizzle من GFX10، لا في صفوف خطية. يطبّق PS5PCEM معادلات العنونة على CPU، وعلى GPU للسطوح الكبيرة ذات 4 و8 و16 بايتًا التي تتأهل.
كيف تعملمتتبع صفحات GPU
جزئييراقب متتبع الصفحات الاختياري صفحات ضيف من 16 KiB. يُحدِث أول تخزين CPU أصلي خطأ صفحة، ويقدّم جيلًا، ويُبطل نسخة GPU حتى لا تُحسَب بصمة الصفحات غير المتغيرة وتُرفع في كل إطار.
كيف تعملVideoOut
يعمليسجّل VideoOut مخازن عرض الضيف ولا يكمل تبديل إطار إلا بعد أن يقبل نداء العرض الراجع الإطار. نافذة المضيف سلسلة تبديل Vulkan عند 1080p SDR.
كيف تعملالصوت والفيديو
AudioOut
يعمليشغّل AudioOut صوت PCM الخاص بالضيف على جهاز Windows بمعدل 48 kHz. للمنافذ القديمة مجاريها وطوابيرها، فتعمل الموسيقى والمؤثرات معًا، ويحفظ نفاد المخزن ترتيب العينات.
كيف تعملالتفاف ACM
جزئييشغّل التفاف ACM ارتداد FMOD المجزّأ على CPU. تحوّل دفعات المدخل المشترك إشارة جافة واحدة، وتطبّق أقسام استجابة نبضة بفاصلة عائمة أو نصفية، وتجمع بالتداخل النتيجة الرطبة.
كيف تعملمُرمّزات AJM
جزئييفك AJM ترميز ATRAC9 وMP3 وMPEG-4 AAC وOpus. يحتفظ كل مثيل مُرمّز بحالته، ويُرفض المُرمّز المجهول بدل الإبلاغ عنه كنجاح صامت.
كيف تعملNGS2
جزئييحتفظ NGS2 بمقابض النظام والرف والصوت، ويحلّل بيانات RIFF/WAVE العادية، ويوقّت حبيبة صامتة بمعدل 48 kHz حتى لا يدور عامل DSP برمجي. تركيب الأصوات نفسه ناقص.
كيف تعملAvPlayer
يعمليفك SceAvPlayer ترميز حاويات الأفلام بـ FFmpeg إلى إطارات NV12 تملكها اللعبة وPCM ستيريو بمعدل 48 kHz. ينتهي التشغيل حين تمر مدة المصدر، حتى إن لم تقرأ اللعبة أحد المجاري قط.
كيف تعملالمعالج والمحمّل والأدوات
على Windows x86-64 تعمل شيفرة آلة الضيف مباشرة. يحمل عامل مضيف واحد كل pthread للضيف، وتُستعاد قاعدة FS بعد كل نداء حاجب لأن Windows لا يحتفظ بها.
كيف تعملتحميل ELF وSELF
يعمليعيّن المحمّل وحدات SELF المفكوكة التشفير ووحدات ELF64 العارية في PlayStation 5، ويطبّق إعادات التوطين، ويحل الاستيرادات مقابل سجل HLE. ثم تتلقى اللعبة مقابض مستقرة للوحدات التي تبدأها بنفسها.
كيف تعملتُقرأ DualSense وDualSense Edge وDualShock 4 عبر HID، على USB وBluetooth. تستخدم الأذرع المتوافقة مع Xbox واجهة XInput. تُعيَّن لوحة المفاتيح إلى العصاوين عبر ملف في المشغّل.
كيف تعملمستخرج PKG
جزئييفك pkgextractor تخطيطات FPKG التشخيصية المرصودة في التطوير: الحزمة الخارجية، وPFS الداخلي، وتعيينات أسماء NAPS، والحمولات المضغوطة بـ Kraken. الحزم التجارية المشفّرة خارج النطاق.
كيف تعملماذا تصف هذه الصفحات