عدادات AMPR
AMPR في PS5PCEM نموذج برمجي محلي للعملية لأوامر العدادات والإكمال في الجهاز. تقبل 128 عدادًا عمليات التخزين، وتحديثات الحقول الذرية، والقراءات المزدوجة، والانتظارات المُقنَّعة، بترتيب الإرسال.
ملاحظات المستودع حتى 10 أكتوبر 2026
فيم تستخدم اللعبة AMPR
على الجهاز، AMPR هو المحرك غير المتزامن الذي ينقل بيانات الملفات ويحدّث العدادات التي يمكن لـ CPU وGPU انتظارها. تستخدمه الألعاب لمعرفة أن قراءة قد وصلت، أو أن مرورًا لاحقًا يجوز أن يبدأ، من دون الدوران على متغير مشترك. لا يحاكي PS5PCEM كتلة عتاد AMPR. بل ينفّذ مجرى الأوامر الذي بنته اللعبة، داخل العملية، ويبلّغ عن الإكمال عبر طابور أحداث AMPR الذي سجّلته اللعبة.
يحمل بنك العدادات 128 كلمة بعرض 32 بتًا. الزوج هو عداد زوجي بالإضافة إلى الكلمة التالية، ويُقرآن ويُكتبان كقيمة واحدة بعرض 64 بتًا. يغطي قفل واحد النصفين وكل عملية قراءة-تعديل-كتابة، فلا يستطيع قارئ أن يلاحظ زوجًا ممزقًا. يمكن للوصول أن يسمّي الزوج كاملًا، أو الكلمة بعرض 32 بتًا، أو أي نصف بعرض 16 بتًا، أو أحد البايتات الأربعة.
التخزين والانتظار والطوابع الزمنية
الكتابة هي تخزين، أو OR بتّي، أو AND مع المتمم، أو XOR، أو جمع التفافي، تُطبَّق على الحقل المختار. يقارن الانتظار ذلك الحقل بمرجع تحت قناع. المقارنات هي التساوي، والأكبر، والأصغر، وعدم التساوي، وقيمة تسلسل تم بلوغها، والصيغ ذات الإشارة للأكبر والأصغر. تنقل مقارنات التسلسل بت الإشارة في الحقل إلى البت 63، فتعمل القاعدة نفسها عند 8 و16 و32 و64 بتًا.
الانتظار المُلبّى أصلًا يكتمل في مكانه. والانتظار غير المُلبّى يحتفظ بلقطة الإرسال ويستأنف قبل الكتابات والأحداث اللاحقة على ذلك المجرى، بما في ذلك حين يوفّر إرسال لاحق على خيط الضيف نفسه القيمة. لواجهة API العادية وواجهة _04_00 قائمتا وسائط منفصلتان. تُسجَّل الطوابع الزمنية مع أوامر العداد. استعلامات حجم الإكمال التي كانت الألعاب تستوردها مسجَّلة، فتُحل تلك النداءات.
ما لوحظ أن هذا المسار يفعله
ينجح 22 اختبار AMPR مركّزًا في ReleaseSafe، بما فيها نداءات عبر سطح التصدير الحقيقي. ينفّذ إقلاع Grand Theft Auto III أكثر من 10,000 إرسال لقراءة ملفات APR ويكتب أكثر من 350 حدث إكمال AMPR، من دون خطأ AMPR مطابق على ذلك المسار. ذلك الإقلاع لا يستدعي واجهة العدادات نفسها. عمل العدادات تغطيه الاختبارات والألعاب التي تنتظر القيم فعلًا.
هذه تغطية لواجهة API للأوامر التي ينفّذها المحاكي. وهي ليست نموذجًا على مستوى الدورة لمتحكم ذاكرة الجهاز، ولا تدّعي توقيت العتاد.
ما هو منفَّذ
- 128 عدادًا، مع أزواج متّسقة بعرض 64 بتًا وحقول البايت والنصف والكلمة.
- التخزين وOR وAND مع المتمم وXOR والجمع الالتفافي، بالإضافة إلى الانتظارات المُقنَّعة وذات الإشارة.
- انتظارات محجوبة تحتفظ بمكانها في مجرى الأوامر وتستأنف حين تصل القيمة.
- إكمال مرتَّب يُسلَّم عبر طابور أحداث AMPR المسجَّل.
ما زال ناقصًا
- يبقى WaitOnAddress عنصرًا نائبًا.
- لا يُعاد إنتاج توقيت عتاد كتلة AMPR الحقيقية.
- أمر عداد لا يتعرّفه فاك الترميز لا يُعامل بصمت على أنه نجاح.
آليات مرتبطة
ماذا تصف هذه الصفحات