أكتوبر 15, 2024

مواطن دوت كوم

تقدم ArabNews أخبارًا إقليمية من أوروبا وأمريكا والهند وباكستان والفلبين ودول الشرق الأوسط الأخرى باللغة الإنجليزية لغير المتجانسين.

إذا أعطيت مطورًا جهاز Xbox مُعدَّلاً، فسوف يقوم بإصلاح Halo 2

إذا أعطيت مطورًا جهاز Xbox مُعدَّلاً، فسوف يقوم بإصلاح Halo 2

[Ryan Miceli] لقد أمضيت بضع سنوات في التدقيق والهندسة العكسية هالو 2 عندما طلب صديق خدمة منه، قام صديقه بإنشاء جهاز Xbox محسّن مع زيادة كبيرة في سرعة التشغيل، وترقيات ذاكرة الوصول العشوائي، واختراقات BIOS، واستبدال المعالج. كان الهدف بسيطًا: تصحيح الدقة القصوى المبرمجة مسبقًا من 480 بكسل إلى 720 بكسل وربما حتى 1080 بكسل. مع مضاعفة سرعة وحدة المعالجة المركزية ولكن زيادة سرعة وحدة معالجة الرسومات بنسبة 15% فقط، [Ryan] ذهبت إلى العمل.

كانت الخطوة الأولى هي زيادة حجم إطارات DirectX. وقد أدى زيادة دقة الإخراج إلى ظهور خلل رسومي خطير وأخطاء في العرض. تعيد اللعبة استخدام إطارات DirectX عدة مرات كعرض للذاكرة، ويقوم كل عرض بتشفير رأس في الأعلى بمعلومات مفيدة مثل العرض والارتفاع والتقسيم. وبعد تصحيح ذلك، [Ryan] كان هناك شيء أكثر وضوحًا، لكن بعض النماذج لم يتم تحميلها (خاصةً الماء في شاشة العنوان). كانت الإجابة هي طبقة تراكم الملمس. يحتوي Xbox على حد للأجهزة يتمثل في أخذ عينات من أربع مواد فقط لكل تمريرة تظليل، مما يعني أنك بحاجة إلى مخزن مؤقت بحجم دقة العرض لتجميع المواد إذا كنت تريد أخذ عينات من أكثر من أربع مواد. أدت محاولة تشغيل اللعبة إلى تعطل بسبب نفاد الذاكرة. Xbox [Ryan] كان يعمل على ترقية 64 ميجا بايت إضافية من ذاكرة الوصول العشوائي، ولكن مخصص الذاكرة في هالو 2 لم أستفيد منه بعد.

لكي نرى إلى أين تذهب الذاكرة، [Ryan] لقد كتبت أداة جديدة تسمى برنامج التقاط الصور الخاص بـ Xbox لإظهار مكان تخصيص الذاكرة ومن قبل من. تقوم معظم الألعاب بإجراء بعض التخصيصات الأولية الكبيرة من المخصص الأصلي، ثم ترميها إلى مخصص مخصص مضبوط للعبة. ومع ذلك، كانت 64 ميجا بايت إضافية من ذاكرة الوصول العشوائي في وحدات تحكم التطوير ومخصصة لذاكرة الوصول العشوائي التصحيحية، مما يعني أن وحدة معالجة الرسومات لم تتمكن من الوصول إليها بشكل صحيح. بالإضافة إلى ذلك، بين 64 ميجا بايت السفلية والعليا يوجد نواة Xbox. الآن، أصبح الأمر عبارة عن تمرين لتصحيح المخصص للعمل مع كتلتين من الذاكرة بدلاً من واحدة متجاورة. كما نقل بيانات وقت التشغيل إلى 64 ميجا بايت العلوية مع الاحتفاظ بتخصيصات الفيديو في الأسفل. في النهاية، [Ryan] لقد وجدت أنه من الأسهل تصحيح نواة اللعبة للسماح بتخصيصات الذاكرة التي يمكن لوحدة معالجة الرسومات استخدامها في الجزء العلوي من الذاكرة الذي يبلغ 64 ميجابايت. أدى تشغيل اللعبة بدقة 720 بكسل إلى معدل إطارات شبه قابل للعب فقط، حيث انخفض إلى 10 إطارات في الثانية في بعض المشاهد.

READ  صفقات الهواتف المفتوحة من Cyber ​​Monday: Apple، وGoogle، وSamsung، والمزيد

بعد بعض الاختبارات الأولية، [Ryan] وخلصت إلى أن وحدة معالجة الرسوميات أو وحدة المعالجة المركزية ليست هي التي كانت السبب في ذلك، ولكن سلسلة المبادلة. هالو 2 يقوم بتشغيل VSync افتراضيًا، مما يعني أنه يجب الانتظار حتى فترة فارغة قبل التبديل بين إطاري التخزين المؤقتين. هناك تعديل بسيط يتمثل في إضافة إطار تخزين مؤقت ثالث. ارتفع متوسط ​​معدل الإطارات في الثانية بنسبة 10%، وأصبحت وحدة معالجة الرسومات هي الاختناق التالي الذي يجب تعديله. مع زيادة سرعة وحدة معالجة الرسومات الخفيفة، كانت اللعبة تقترب جدًا من 30 إطارًا في الثانية. لحسن الحظ، [Ryan]لم تكن هناك حاجة إلى تعديل BIOS حيث يمكن تعيين أجهزة ساعة وحدة معالجة الرسومات وتعديلها كـMMIO. بعد الهندسة العكسية، تم إضافة ميزة تصحيح الأخطاء لعمليات إخراج ذاكرة التخزين المؤقت المرئية، [Ryan] تم ضبط ذاكرة التخزين المؤقت للنسيج والهندسة لتقليل النوافذ المنبثقة التي كانت اللعبة الأصلية سيئة السمعة بسببها.

بشكل عام، إنها عملية اختراق مذهلة استغرقت شهورًا من العمل الجاد. الكود الخاص بالتصحيح موجود على موقع Githubوهناك مقطع فيديو بعد الاستراحة يقارن بين الألعاب المصححة وغير المصححة. إذا كنت لا تزال بحاجة إلى المزيد من Halo في حياتك، فلماذا لا تصنع لنفسك بندقية معركة واقعية من اللعبة؟