بفضل خلل مذهل في Ocarina of Time ، كان من الممكن إضافة نماذج من Star Fox 64

صورة

على مدار سنوات من كتابة المقالات حول الألعاب ، تحدثت عن العديد من مواطن الخلل المدهشة ، الرموز غير المعروفة لفترة طويلة ، والحيل مع تنفيذ التعليمات البرمجية التعسفية والبحث عن محتوى مخفي بعمق داخل الألعاب والمعدات الكلاسيكية. ولكن لا يوجد شيء يمكن أن يعدني لهذا الفيديو Twitch الذي يغزو فيه أسطول من الطيران Arwing من Star Fox 64 عالم Ocarina of Time لمهاجمة Link.

تتوقع عدم رؤية مثل هذا المشهد إلا في رسم كاريكاتوري تم إنشاؤه من قِبل المعجبين أو قرص مدمج للقراءة فقط والذي يحب Nintendo أن يأخذه من الإنترنت . ولكن الشيء الأكثر إثارة للدهشة حول هذا الفيديو هو أنه يعرض نسخة غير معدلة من Ocarina of Time ROM الياباني الأصلي باستخدام وحدة التحكم القياسية وأجهزة التحكم N64.

طوال صباح اليوم ، اكتشفت كيف يكون ذلك ممكنًا. لتوضيح ذلك ، سيكون عليك أن تتعمق في جوهر تعليمات لغة الآلة في Nintendo 64 ، وإدارة ذاكرة Ocarina of Time ، وعملية تطوير اللعبة في منتصف التسعينيات نفسها. إذا كنت فضوليًا مثلي ، انضم إلينا.

روابط قديمة ورمز جديد


بدأ هذا المقطع المذهل باكتشاف خلل مهم في شهر أكتوبر من العام الماضي: اكتشف اللاعب Glitches0and0stuff الذي يستخدم المحاكيات ودراسة متأنية لمناطق الذاكرة في Nintendo 64 طريقة للتعامل مع الروابط القديمة في Ocarina of Time .

في الواقع ، يتمثل العيب في أن اللاعب يلتقط العنصر ، ثم يخدع اللعبة لتفريغها مباشرةً من يد Link عندما تعبر عتبة موقع تحميل جديد (على سبيل المثال ، الغرفة المجاورة). في هذه المرحلة ، تحرر اللعبة مساحة الذاكرة التي يشغلها هذا العنصر بحيث يمكن استخدامها لكائنات أخرى داخل اللعبة أثناء التحميل. ولكن في الوقت نفسه ، تعتقد اللعبة أن Link تمسك بشيء ما ، لذلك تستمر في تحديث المؤشر إلى "رابط قديم" في الذاكرة المحررة ، وتدوين البيانات التي تمثل موضع وزاوية كائن غير موجود. مع المعالجة الدقيقة ، يمكن عندئذٍ استخدام هذا المؤشر "لإفساد" بيانات الكائن الذي تم تحميله حديثًا باستخدام قيم عشوائية.


لا يمكن مقارنة مقاتلي الفضاء مع رابط.


Arwing من Star Fox 64 يمكن أن يلحق الضرر ويطلق النار لأنهم دائما في اللعبة.


الهدف من الزر Z يجعل من السهل توجيه ذراع الرافعة في الجزء السفلي من Arwing.


يحتوي الرابط على كائن "فارغ" - يتم تنفيذ التحضير للخلل مع تنفيذ تعليمات برمجية عشوائية.


الجزء الأكثر أهمية من هذه التقنية هو تجميد الكاميرا في موضع الخلل.


جهاز لعقد الأزرار / المواضع اللازمة لعصا التحكم التناظرية لوحدة التحكم 3 للانتقال مباشرة إلى العناوين.


بعد عشر دقائق من إدخال اسم الملف ، يصبح كود Arwing جاهزًا للتنزيل

في البداية ، تم استخدام هذه الخدعة ببساطة "لإفساد" اللعبة ، على سبيل المثال ، لتحميل عناصر جديدة في صناديق الكنوز أو لتغيير مواقع العناصر الأخرى داخل الغرفة (كما هو موضح بالتفصيل هنا ). ومع ذلك ، بعد بعض الوقت ، اكتشف اللاعبون أنه يمكن استخدام نفس الأسلوب لتعديل أكواد القفز المجمعة الفردية ، وإخبار اللعبة بالمكان الذي تحتاج إليه للبحث عن التعليمات التالية عند إجراء أحداث معينة في اللعبة.

بعد إدراج الكود المرغوب بهذه الطريقة ، يمكنك إجبار اللعبة على الانتقال إلى منطقة الذاكرة التي تحتوي على آخر قيم دوران معروفة لمقاطعتي X و Y. إذا تم تحديد هذه القيم تمامًا ، فسيتم تفسيرها على أنها رمز قفزة آخر ، ينفذ الانتقال إلى منطقة الذاكرة حيث يتم تخزين اسم الملف الحالي. ثم سيتم تفسير اسم الملف هذا على أنه رمز آلة N64 عادي ، بحيث يمكن للاعب الانتقال بسرعة إلى أي مكان في اللعبة التي يحتاجها (بطبيعة الحال ، إذا قام بتحويل الأحرف الثنائية من اسم الملف بشكل صحيح إلى رموز التشغيل المقابلة ).


شرح خلل مع وصلة قديمة تم استخدامها في الأصل لاستبدال العناصر في الصناديق.

كان أول مثال جاد لاستخدام هذا التلاعب مع رموز الانتقال تحميل cutscene للعبة مع التسميات التوضيحية . وبالتالي ، سجل اللاعب رقما قياسيا عالميا جديدا لسرعة اللعبة في فئة "Any٪" . للقيام بذلك بسرعة في المنطقة الأولى من اللعبة ، تحتاج إلى استخدام مواطن الخلل الأخرى ، بما في ذلك خلل الكاميرا "المشي أثناء التحدث" ، والذي يسمح لك بتحميل وإلغاء تحميل الحجارة في الوقت والمواقع المثالية. لهذا أيضًا ، يجب عليك الاحتفاظ بأزرار ومواقف معينة لعصا التحكم التناظرية لوحدات التحكم المتصلة بمنفذ Nintendo 64 الأول والثالث بحيث يتم تفسير إشاراتها على أنها رمز موقع cutscene مع تسميات توضيحية.

فتح Arwing


الطريقة الموضحة أعلاه جيدة جدًا إذا كنت تريد فقط الانتقال إلى cutscene. لكن لديه قيودًا جسيمة: نظام ملفات Ocarina of Time يقتصر على ثمانية أحرف ، أي أنه يمكن تحويل اسم الملف فقط إلى إثنين من تعليمات رمز الجهاز. لحسن الحظ ، يمكن أيضًا استخدام فتحتي التعليمات هاتين لإزالة عدد الأحرف عملياً.

يتم ذلك بطريقة مربكة للغاية ، موصوفة بالتفصيل في هذا Pastebin وفي هذا الفيديو . يكفي القول أنه يستخدم الطريقة الموضحة أعلاه ثلاث مرات ، مما يلغي الاختبارات المهمة لمؤشر موضع اسم الملف ، ثم يقوم بتعيين هذا المؤشر على قيمة موضع سالبة.


شرح مفصل لتنفيذ قانون التعسفي في Ocarina من الوقت

نتيجةً لذلك ، يتم منح اللاعبين فرصة لإدخال رمز بمئات الأحرف ، مما يسمح لهم بتحميل تسلسلات أكثر تعقيدًا بكثير من إرشادات الماكينة لتطبيق طريقة نقل الأكواد الموضحة أعلاه. ولكن هذا لا يزال غير كافٍ لترميز الرسومات والصور المتحركة ومنطق اللعب المطلوب لمهاجمة Arwing. لحسن الحظ ، ساعدتنا Nintendo كثيرًا عن طريق إخفاء كل رمز Arwing هذا في أعماق جميع خراطيش Ocarina of Time .

لماذا؟ صرح ساتورو تاكيزاوا ، مصمم الشخصيات والرسوم البيانية ، لإيواتا يسأل في مقابلة أجراها عام 2011 أنها كانت مجرد وسيلة لإعادة استخدام الكود لنقل أحد الأعداء في زيلدا :

Volvagia هو تنين ، لذلك يتلوى ويتحرك في الأمواج. لقد قمت للتو بتسليم أجزاء من مبرمج مدرب Kazuaki Morita من نموذج التنين ، وأطلقها على الفور. ظل لغزا بالنسبة لي كيف نجح ... لذلك لم أستطع مقاومة عدم سؤاله. أجاب أنه كان مثل البرمجة لستار فوكس 64 . هناك مشهد في هذه اللعبة يتدلى فيه مقاتل آخر على ذيل أروينج ، وحركات الطيران الخاصة بالمقاتل هي نفسها تمامًا مثل حركات فولفاجيا. لقد دهشت ، كانت معجزة حقيقية بالنسبة لي.



2007 فيديو يظهر Arwing تحلق فوق غابة Kokiri (رموز GameShark والمضاهاة المستخدمة).

بعد نسخ الرسوم المتحركة الضرورية لـ Volvagia ، يبدو أن Morita قد ترك كتلة Arwing بالكامل في بيانات القمامة الخاصة باللعبة. منذ سنوات عديدة ، علم باحثو البيانات حول هذا الموضوع. ولأكثر من عقد من الزمان ، عرف اللاعبون كيفية الوصول إلى هذه الأجزاء المخفية من الكود باستخدام أجهزة الغش مثل GameShark ، والتي تغير القيم في الذاكرة لتحل محل الأعداء مع Arwing.

ولكن بفضل الحيل مع التلاعب بالذاكرة الموصوفة في المقالة ، لم تعد هناك حاجة إلى جهاز الغش الخارجي. في 23 يناير ، أثبت مشغل ZFG1 هذا بشكل نهائي عن طريق تحميل Arwing باستخدام Zelda ROM غير المعدل ووحدة التحكم Nintendo 64 القياسية في Twitch. كانت النتيجة لعبة تم فيها استبدال جميع الأبواب بأروينج ، وحلقت حول لينغ ، وهاجمته بطلقات مؤذية من الناسف ، وحتى سقط على الأرض عندما هدمها.

استغرق الإعداد لتسجيل هذا المقطع أكثر من ساعة ، تم خلالها إنشاء ثلاث دورات من تنفيذ التعليمات البرمجية التعسفية وفي غضون 10 دقائق تم إدخال اسم الملف للتحميل Arwing بشق الأنفس. ولكن في الوقت نفسه ، كان هذا الكليب تتويجا لأشهر وسنوات من العمل لمجتمع مهووس بالرغبة في فهم اللعبة الكلاسيكية ومواطن الخلل فيها وإتقانها تمامًا.

بالإضافة إلى قيمة الترفيه ، أثبت مقطع "Arwings in Zelda" أن المجتمع ، وهو مجموعة من متخصصي الكمبيوتر ، مع ما يكفي من الوقت والجهد ، يمكنهم القيام بأشياء مدهشة باستخدام أجهزة وبرامج الألعاب الكلاسيكية.

Source: https://habr.com/ru/post/ar485908/


All Articles