تخطَّ إلى المحتوى
PS5PCEM
يعملالمعالج والمحمّل والأدوات

تنفيذ الضيف الأصلي

على Windows x86-64 تعمل شيفرة آلة الضيف مباشرة. يحمل عامل مضيف واحد كل pthread للضيف، وتُستعاد قاعدة FS بعد كل نداء حاجب لأن Windows لا يحتفظ بها.

ملاحظات المستودع حتى 10 أكتوبر 2026

عامل واحد لكل خيط ضيف

يبدأ الموزّع عامل مضيف واحدًا لكل pthread للضيف، ويثبّت TLS ذلك الخيط، ويدخل الضيف عند العنوان المطلوب بسجلات وسائط System V. تعود كلها عبر هذا المسار: الانضمام والفصل والإفساح والنوم والنداءات الراجعة المتداخلة وscePthreadExit. لا يكتمل خيط HLE إلا بعد أن يغادر تنفيذ الضيف ذلك السياق.

يتحقق الجسر من أن نقطة الدخول قابلة للتنفيذ وأن المكدس وTLS معيَّنان. يحفظ السجلات غير المتطايرة في Windows وMXCSR وكلمة تحكم x87، ويبدّل إلى مكدس الضيف، ويثبّت قاعدة FS للضيف، ويستدعي الدخول. يغادر scePthreadExit المتزامن عبر خروج أصلي يطرح إطارات الضيف ويستعيد FS للمضيف قبل أن يرى الموزّع المقاطعة.

يُسقط Windows قاعدة FS

تثبيت FS مرة واحدة لا يكفي. لا يحفظ Windows قاعدة FS كتبها المستخدم عبر تبديل سياق. بعد نوم، تقرأ rdfsbase صفرًا مرة أخرى. تحتفظ شيفرة الضيف بتخزينها المحلي للخيط في FS، تحت اصطلاح System V، فكان الوصول التالي النسبي إلى FS سيُحدث عطلًا قرب العنوان صفر. لا شيء في الضيف خاطئ. أسقط المضيف سجلًا يحق للضيف الاعتماد عليه.

لذلك يستعيد الموزّع FS بعد النداءات الحاجبة. تستخدم الانتظارات futex واعيًا للتسلسل حتى يُستهلك مرة واحدة إيقاظ يصل بين الفتح والإيقاف، ويبقى البث مرئيًا لكل منتظر لاحظ التسلسل الأقدم. إذا شبع تاريخ الإيقاظ الثابت، يوقظ الموزّع زيادة ويدع HLE يعيد فحص الكائن. تستخدم النومات الموقَّتة تأخيرًا خاصًا غير قابل للتنبيه حتى لا يحوّل إيقاظ غير متعلق عامل صوت إلى دوران.

الأعطال وأنظمة التشغيل الأخرى

يُحتوى خيط الضيف المعطوب. تنسب التشخيصات العنوان إلى وحدة ورمز حين تستطيع، وليس على العملية أن تموت باستثناء مضيف غير معالج. يعيد PS5_CPU_WAIT_DIAGNOSTICS=1 تشغيل أثر الانتظار المفصّل. وهو متوقف أثناء اللعب العادي لأن عدة عمال متوقفين يطبعون معًا يستطيعون هم أنفسهم تعطيل إطار.

يتطلب التنفيذ الأصلي Windows x86-64 وميزة المعالج RDWRFSGSBASE. ما زالت بناءات Linux وmacOS تترجم فاك الترميز والمحمّل وHLE، وتبلّغ أن الجسر الأصلي غير مدعوم. ثنائيات الضيف شيفرة آلة x86-64. وهي لا تُفسَّر.

ما هو منفَّذ

  • تنفيذ ضيف x86-64 أصلي على Windows، بعامل مضيف واحد لكل pthread للضيف.
  • نداءات System V، ومكدسات ضيف، واستعادة FS بعد النداءات الحاجبة.
  • انتظارات واعية للتسلسل، وأعطال مُحتواة، وخروج pthread يستعيد المضيف.
  • فحص وفك ترميز وHLE على Linux وmacOS، من دون تنفيذ أصلي.

ما زال ناقصًا

  • لا يوجد مفسّر. المضيفات غير Windows x86-64 لا تشغّل الضيف.
  • المعالج الذي لا يستطيع كتابة قاعدتي FS وGS لا يستطيع دخول الجسر الأصلي.
  • تشخيصات الانتظار المفصّلة متوقفة افتراضيًا لأن طباعتها تعطّل اللعب.

آليات مرتبطة

ماذا تصف هذه الصفحات

يتبع النص ملاحظات المعمارية وتقارير تشرين الأول/أكتوبر 2026 في مستودع PS5PCEM. نجاح اختبار محدد ليس معدل إطارات جديدًا ولا إكمالًا جديدًا للعبة.

كل التقنيات