كانت الخطوة الأولى هي زيادة حجم إطارات DirectX. وقد أدى زيادة دقة الإخراج إلى ظهور خلل رسومي خطير وأخطاء في العرض. تعيد اللعبة استخدام إطارات DirectX عدة مرات كعرض للذاكرة، ويقوم كل عرض بتشفير رأس في الأعلى بمعلومات مفيدة مثل العرض والارتفاع والتقسيم. وبعد تصحيح ذلك، [Ryan] كان هناك شيء أكثر وضوحًا، لكن بعض النماذج لم يتم تحميلها (خاصةً الماء في شاشة العنوان). كانت الإجابة هي طبقة تراكم الملمس. يحتوي Xbox على حد للأجهزة يتمثل في أخذ عينات من أربع مواد فقط لكل تمريرة تظليل، مما يعني أنك بحاجة إلى مخزن مؤقت بحجم دقة العرض لتجميع المواد إذا كنت تريد أخذ عينات من أكثر من أربع مواد. أدت محاولة تشغيل اللعبة إلى تعطل بسبب نفاد الذاكرة. Xbox [Ryan] كان يعمل على ترقية 64 ميجا بايت إضافية من ذاكرة الوصول العشوائي، ولكن مخصص الذاكرة في هالو 2 لم أستفيد منه بعد.
لكي نرى إلى أين تذهب الذاكرة، [Ryan] لقد كتبت أداة جديدة تسمى برنامج التقاط الصور الخاص بـ Xbox لإظهار مكان تخصيص الذاكرة ومن قبل من. تقوم معظم الألعاب بإجراء بعض التخصيصات الأولية الكبيرة من المخصص الأصلي، ثم ترميها إلى مخصص مخصص مضبوط للعبة. ومع ذلك، كانت 64 ميجا بايت إضافية من ذاكرة الوصول العشوائي في وحدات تحكم التطوير ومخصصة لذاكرة الوصول العشوائي التصحيحية، مما يعني أن وحدة معالجة الرسومات لم تتمكن من الوصول إليها بشكل صحيح. بالإضافة إلى ذلك، بين 64 ميجا بايت السفلية والعليا يوجد نواة Xbox. الآن، أصبح الأمر عبارة عن تمرين لتصحيح المخصص للعمل مع كتلتين من الذاكرة بدلاً من واحدة متجاورة. كما نقل بيانات وقت التشغيل إلى 64 ميجا بايت العلوية مع الاحتفاظ بتخصيصات الفيديو في الأسفل. في النهاية، [Ryan] لقد وجدت أنه من الأسهل تصحيح نواة اللعبة للسماح بتخصيصات الذاكرة التي يمكن لوحدة معالجة الرسومات استخدامها في الجزء العلوي من الذاكرة الذي يبلغ 64 ميجابايت. أدى تشغيل اللعبة بدقة 720 بكسل إلى معدل إطارات شبه قابل للعب فقط، حيث انخفض إلى 10 إطارات في الثانية في بعض المشاهد.
بعد بعض الاختبارات الأولية، [Ryan] وخلصت إلى أن وحدة معالجة الرسوميات أو وحدة المعالجة المركزية ليست هي التي كانت السبب في ذلك، ولكن سلسلة المبادلة. هالو 2 يقوم بتشغيل VSync افتراضيًا، مما يعني أنه يجب الانتظار حتى فترة فارغة قبل التبديل بين إطاري التخزين المؤقتين. هناك تعديل بسيط يتمثل في إضافة إطار تخزين مؤقت ثالث. ارتفع متوسط معدل الإطارات في الثانية بنسبة 10%، وأصبحت وحدة معالجة الرسومات هي الاختناق التالي الذي يجب تعديله. مع زيادة سرعة وحدة معالجة الرسومات الخفيفة، كانت اللعبة تقترب جدًا من 30 إطارًا في الثانية. لحسن الحظ، [Ryan]لم تكن هناك حاجة إلى تعديل BIOS حيث يمكن تعيين أجهزة ساعة وحدة معالجة الرسومات وتعديلها كـMMIO. بعد الهندسة العكسية، تم إضافة ميزة تصحيح الأخطاء لعمليات إخراج ذاكرة التخزين المؤقت المرئية، [Ryan] تم ضبط ذاكرة التخزين المؤقت للنسيج والهندسة لتقليل النوافذ المنبثقة التي كانت اللعبة الأصلية سيئة السمعة بسببها.
بشكل عام، إنها عملية اختراق مذهلة استغرقت شهورًا من العمل الجاد. الكود الخاص بالتصحيح موجود على موقع Githubوهناك مقطع فيديو بعد الاستراحة يقارن بين الألعاب المصححة وغير المصححة. إذا كنت لا تزال بحاجة إلى المزيد من Halo في حياتك، فلماذا لا تصنع لنفسك بندقية معركة واقعية من اللعبة؟
“متحمس لوسائل التواصل الاجتماعي. مهووس بالجعة. متواصل شرير. عاشق لثقافة البوب. عرضة لنوبات اللامبالاة.”
More Stories
هذا الشاحن المصنوع من GaN بقوة 100 واط رقيق وقابل للطي
كو: ترقية ذاكرة الوصول العشوائي إلى 12 جيجابايت في العام المقبل ستقتصر على iPhone 17 Pro Max
تعود Verdansk أخيرًا إلى Call of Duty Warzone، والمعجبون سعداء بذلك