في 30 يونيو 2026، أصدرت شركة بليزارد التحديث 3.1.0 للعبة Diablo IV بالتزامن مع إطلاق الموسم الرابع عشر "صحوة الموت". وفور الإطلاق، واجه لاعبو لينكس وستيم ديك رسالة رمز الخطأ 127، ورفضت اللعبة الإقلاع. بحلول 2 يوليو، تجاوز عدد التعليقات على موضوع الإبلاغ عن الخلل في منتديات بليزارد 650 تعليقًا، مع الآلاف من التعليقات الأخرى في مواضيع ذات صلة . لم يكن هذا مجرد تراجع في أداء Proton، بل كان تغييرًا متعمدًا في نظام الحماية من العبث (anti-tamper) أدى إلى كسر التوافق على مستوى تعليمات المعالج.
قام المجتمع التقني باستخدام أداة PROTON_LOG لتتبع الفشل إلى نقطة محددة جدًا في تسلسل بدء التشغيل . يحدث الانهيار بالكامل داخل
diablo_iv_loader.dll، وهي وحدة خاصة ببليزارد لمنع العبث وتعبئة الملفات . يقوم هذا المُحمل بتنفيذ تعليمة BREAKPOINT (INT3) وهي مقاطعة للمعالج تُستخدم لأغراض التصحيح. في نظام ويندوز الأصلي، يقوم معالج الاستثناءات المنظم (structured exception handler) في نظام التشغيل بمعالجة هذه المقاطعة بصمت واستكمال التنفيذ. أما في بيئة Wine/Proton، فإن آلية تمرير الاستثناءات تختلف، مما يجعل المُحمل يتعامل مع نقطة التوقف على أنها خطأ لا يمكن التعافي منه
.
يقوم معالج الأعطال الخاص ببليزارد بعدها بإنهاء اللعبة مع الخطأ Summary: BREAKPOINT. يظهر الخطأ للمستخدم على شكل رمز الخطأ 127، مع الإشارة إلى
Kernel32.dll في نافذة الانهيار .
التفصيل الحاسم: يحدث الانهيار قبل أي تهيئة للرسوميات - لا يتم إنشاء أي جهاز D3D12 أو VKD3D أو Vulkan . هذا يستبعد بشكل قاطع أي مشاكل متعلقة بوحدات معالجة الرسوميات أو المكتبات الوسيطة مثل DXVK و VKD3D.
قام التحديث 3.1.0 بتحديث أداة التعبئة ونظام التشفير لمنع العبث المطبق على ملف diablo_iv_loader.dll . تستخدم أداة التعبئة الجديدة تقنيات إخفاء تضيف تعليمة INT3 كإجراء متعمد لمنع التصحيح والهندسة العكسية. في ويندوز، يتعامل موزع الاستثناءات مع هذه التعليمة بشفافية. أما في بيئة Wine/Proton، فإنها تؤدي إلى فشل
.
PROTON_HIDE_NVIDIA_GPU=1 أو DRI_PRIME=1 أو تعديلات ملف DXVK ليس لها أي تأثير لأن الانهيار يحدث قبل تشغيل أي كود خاص بالرسوميات dstorage.dll، والذي نجح في تجاوز مشاكل إقلاع مختلفة في تحديثات سابقة، لا يحل هذه المشكلة الحلول الوحيدة الممكنة هي: (أ) قيام بليزارد بإعادة تعبئة المحمل بدون تعليمة INT3 بطريقة متوافقة مع آلية معالجة الاستثناءات في Wine، أو (ب) إصدار تصحيح على مستوى Wine/Proton يعترض ويعالج تلك التعليمة بالذات. ولكن نظرًا لأن المحمل مشفر ومحمي بمنع العبث، فإن إنشاء مثل هذا التصحيح صعب وغير ثابت.
diablo_iv_loader.dll تحت بيئة Wine/Proton تسلط هذه الحادثة الضوء على مشكلة متكررة في ألعاب الحاسب الشخصي: حيث يقوم المطورون بتحديث أنظمة منع العبث والتعبئة المستخدمة في ملفاتهم دون اختبارها مع طبقات التوافق مثل Wine/Proton. صُممت برامج منع العبث لتتصرف بشكل مختلف في البيئات غير القياسية، والتغييرات الصغيرة - كإصدار جديد لأداة التعبئة أو فحص إضافي باستخدام تعليمة INT3 - يمكنها بصمت أن تكسر توافق Proton حتى عندما لا تشمل اللعبة أي تغييرات في الكود الأساسي .
ظهر نفس النمط مع عمليات تفعيل Denuvo التي حجبت اللاعبين على لينكس بعد تبديل إصدارات Proton عدة مرات . في كل مرة، يعتمد الإصلاح إما على قيام Valve بتصحيح Proton بشكل تفاعلي أو على قيام مطور اللعبة بإصدار تحديث ثنائي - ولا يحدث أي منهما إلا بعد أن يكتشف المستخدمون الخلل ويبلغون عنه. قضية Diablo IV صارخة بشكل خاص لأنها أثرت على ستيم ديك، وهي منصة مدعومة تجاريًا كانت متوافقة تمامًا مع اللعبة قبل التحديث 3.1.0
.
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
تسبب التحديث 3.1.0 الصادر في 30 يونيو في منع لاعبي لينكس وستيم ديك من تشغيل اللعبة برمز الخطأ 127.
تسبب التحديث 3.1.0 الصادر في 30 يونيو في منع لاعبي لينكس وستيم ديك من تشغيل اللعبة برمز الخطأ 127. يعود السبب إلى تحديث نظام الحماية من العبث (anti tamper) في ملف diablo iv loader.dll الذي يستخدم تعليمة INT3 لا تعمل تحت بيئة Proton.
لم يصدر أي إصلاح محلي فعال حتى الآن، وأكدت بليزارد أنها تعمل على تصحيح طارئ معترفها بأن التحديث المصغر 3.1.0a لم يحل المشكلة.