HLE، محاكاة البرامج الثابتة على مستوى عالٍ
HLE هي الطريقة التي يردّ بها PS5PCEM على نداءات البرامج الثابتة التي تستوردها اللعبة. يصبح كل NID رقمي دالة Zig على مكدس المضيف، مع الإبقاء على اصطلاح الاستدعاء System V الخاص بالضيف على Windows.
ملاحظات المستودع حتى 10 أكتوبر 2026
لماذا لا تكون البرامج الثابتة داخل اللعبة
لا تحمل لعبة PlayStation 5 نظام التشغيل الذي تستدعيه. استيراداتها معرّفات من 11 محرفًا. يحسب PS5PCEM كل معرّف من اسم التصدير: SHA-1 للاسم مع ملح ثابت، ثم أول ثمانية بايتات من البصمة في متغيّر من base64. يُسجَّل التنفيذ تحت الاسم المقروء، ويمكنه اشتراط المعرّف الذي يجب أن ينتجه ذلك الاسم، فيفشل التصدير المُهجّى خطأً عند بناء الوحدة.
يبحث الرابط الديناميكي عن المعرّف مع المكتبة والوحدة وإصداراتهما. يمكن أن يوجد المعرّف نفسه في أكثر من مكتبة. يوجد بحث بالمعرّف وحده للاستيرادات التي لا تحمل بيانات وصفية صالحة للاستعمال، ويُعامل هذا المسار الاحتياطي كملاذ أخير لأنه ملتبس.
يعمل النداء على مكدس المضيف
تستدعي الشيفرة الضيفة البرامج الثابتة مباشرة، فيبدأ النداء على مكدس خيط الضيف، وغالبًا بمقدار ميغابايت واحد لأن هذا ما طلبته اللعبة. يحتاج عمل المضيف، مثل فتح ملف، إلى إطار أكبر بكثير. يحجز المُصرّف ذلك الإطار عند الدخول، قبل أي عودة مبكرة. لذلك يمكن لجسم دالة البرامج الثابتة أن يخرج عن مكدس الضيف قبل أن يبلغ السطر الذي احتاج إلى المساحة، ويقع العطل خارج كل تعيين للضيف.
يبدّل كل نداء HLE إلى مكدس مضيف خاص بالخيط طوال عمل المضيف. تنتقل الوسائط عبر الذاكرة، فتكفي روتينة تجميع واحدة لكل التواقيع، بما فيها إرجاعات الفاصلة العائمة والقيم المجمّعة. تبقى نداءات البرامج الثابتة المتداخلة على المكدس الذي أنشأه النداء الخارجي أصلًا. على Windows يستخدم الضيف اصطلاح System V AMD64 بينما يستخدم المضيف Microsoft x64، لذلك تُعلَن كل دالة قابلة للاستدعاء من الضيف باصطلاح الضيف. إسقاط ذلك الإعلان يظل قابلًا للترجمة، ثم تُقرأ الوسائط من السجلات الخطأ.
ما تغطيه واجهة HLE
فوق هذه الآلية تقدّم مكتبات البرامج الثابتة الذاكرة المباشرة والمرنة، ومقابض الوحدات، وpthreads، والمزامنة، والملفات، وsavedata، والألياف، والخطوط، وPNG، والساعة، وأذرع التحكم، وAudioOut وAJM وNGS2 وACM وAvPlayer وAPR وAMPR. يحتفظ كل من الشبكة وSSL وNP Web API بسياقه وبأعمار الطلبات، ويعيد أخطاء حتمية في وضع عدم الاتصال. الحوارات التي تحتاج إلى صدفة نظام تنتهي فورًا بنتيجة متّسقة بلا واجهة.
اجتاز تشغيل التحقق في 10 أكتوبر مجموعة HLE الكاملة بإعداد ReleaseSafe، أي 606 من 606 اختبارًا. هذا العدد هو مجموعة البرامج الثابتة. وهو لا يسجّل وحده معدل إطارات جديدًا ولا إكمالًا جديدًا للعب.
ما هو منفَّذ
- حساب NID، وسجل رموز بإصدارات، وتبديل إلى مكدس المضيف لكل نداء من البرامج الثابتة.
- نداءات System V الخاصة بالضيف على Windows، حيث اصطلاح المضيف هو Microsoft x64.
- الذاكرة والملفات والخيوط وsavedata والوسائط ومُرمّزات الصوت ومسار أوامر APR/AMPR.
- حوارات بلا واجهة، وملف شبكة غير متصل لا يفتح مقابس المضيف.
ما زال ناقصًا
- المكتبات التي تستوردها اللعبة ولم ينفّذها PS5PCEM ما زالت تفشل في الاستيراد.
- التحميل عند الطلب فعلًا لوحدة لم تكن في المخطط المنشور يعيد خطأً.
- خدمات المنصة التي تحتاج إلى صدفة حقيقية أو حساب أو نظير على الشبكة تبقى غير متاحة.
آليات مرتبطة
ماذا تصف هذه الصفحات