هندسة عكسية لـ72 ألف سطر تجميع: تجربة تحويل أول لعبة عراقية من «أميغا» إلى «غودو» بالنماذج الذكية
استمع لهذا المقال
بصوت راشد (Rashed)
في عام 1993، ووسط ظروف الحصار الاقتصادي وانقطاع الكهرباء في بغداد، طور طالب الهندسة العراقي رباح شهاب مع الرسام مرتضى سلمان والملحن ماهر السلمان لعبة «Babylonian Twins» على جهاز «أميغا 500» بذاكرة لم تتجاوز 512 كيلوبايت. كُتبت اللعبة بالكامل بلغة التجميع لمعالجات موتورولا 68000 عبر التعامل المباشر مع عتاد الرسوميات والصوت دون الاعتماد على نظام التشغيل، لتصبح أول لعبة تجارية تُنتج في العراق قبل أن تتوقف مسيرتها التجارية بسبب انهيار شركة كومودور والعقوبات، حتى أُعيد اكتشافها عام 2008 ونُقلت يدويًا إلى هواتف آيفون عام 2010 عبر محرك كُتب بلغة سي بلس بلس وتجاوز 34 ألف سطر برمجيا.
أجرى المطور مؤخرًا تجربة جديدة لاختبار قدرة النماذج التوليدية الحديثة على تفكيك الشيفرات القديمة غير الموثقة، مستخدمًا بيئة «كلود كود» لتحويل اللعبة إلى محرك «غودو 4». شملت التجربة ثلاث مراحل تدريجية: بدأت بنقل محرك عام 2010 المكتوب بلغة سي بلس بلس، ثم الانتقال إلى التحدي الأصعب وهو قراءة 72,758 سطرًا من لغة التجميع الموزعة على 26 ملفًا دون توثيق، وأخيرًا دمج النسخة الأصلية لتعمل بتردد 50 هرتز داخل النسخة الحديثة التي تعمل بتردد 60 هرتز.
نجح النموذج في تحويل المحرك الحديث إلى مشروع قابل للعب في غضون 21 دقيقة، لكن الإنجاز الأبرز تمثل في قدرته على معالجة شيفرة لغة التجميع القديمة. بنى النموذج طبقة معالجة أولية جسرت الفروق بين مجمع «ASM-One» المستخدم في التسعينيات ومجمع «vasm» الحديث، وعالج مشكلات العنونة الذاكرية اليدوية وتلف أسماء الملفات، حتى تطابقت الملفات الثنائية الناتجة بالبايت تمامًا مع النسخة الأصلية المحفوظة عام 1993.
استخراج البنية الخفية لخرائط المراحل كان المحك التقني الأعمق في التجربة. فبدون أي وثائق، حلل النموذج 1,652 سطرًا من شيفرة التجميع المخصصة لتحميل المراحل، واكتشف كيفية تخزين خصائص الخلايا الممثلة في كلمات رقمية بطول 16 بت، حيث تُحدد البتات العليا فيزياء اللعبة مثل الاصطدام والضرر والأبواب والتسلق، بينما تُحدد البتات الدنيا مظهر البلاطات الرسومية. وأعاد النموذج رسم خرائط المراحل كاملة ومقارنتها بلقطات مرجعية بكسلًا ببكسل ليحقق تطابقًا تامًا بنسبة مئة بالمئة.
لم يقتصر عمل النموذج على الترجمة الحرفية للكود، بل أنشأ أدوات اختبار ذاتية عبر سطر الأوامر شملت محاكاة حركات اللاعبين وضغط الأزرار إطارًا بإطار وتسجيل لقطات شاشة للتحقق من سلامة منطق اللعب آليًا، مع الحفاظ على المعادلات الرياضية الحركية المكتوبة يدويًا داخل عقد «Node2D» بدل الاعتماد على محرك الفيزياء الجاهز في غودو، لتفادي أي خلل في شعور القفز والاحتكاك.
تحول جذري في اقتصاديات تحديث الأنظمة القديمة يضع هذا الاختبار أمام الفرق الهندسية وشركات التقنية في الخليج ومصر والمنطقة العربية واقعًا عمليًا جديدًا. تمتلك المؤسسات المصرفية والجهات الحكومية وشركات الاتصالات الإقليمية أصولًا برمجية ضخمة مكتوبة بلغات قديمة وتفتقر إلى التوثيق ومبرمجيها الأصليين، وكانت عمليات ترحيلها تكلف ملايين الدولارات وتستغرق سنوات من العمل اليدوي المحفوف بمخاطر التوقف. تثبت التجربة أن النماذج الذكية قادرة على قراءة منطق المعالجة منخفض المستوى واستخراج قواعد العمل الدقيقة والتحقق من التطابق على مستوى البايت، مما يقلص كلفة استنساخ البنى التحتية البرمجية المعقدة إلى أيام معدودة.
تفرض هذه القدرات على مسؤولي التقنية في المنطقة إعادة النظر في استراتيجيات تحديث المنظومات، بنقل التركيز من الترحيل اليدوي المرهق إلى تصميم مسارات تحقق واختبار دقيقة يشرف فيها المهندس البشري على النتيجة بينما يتولى النموذج فك طلاسم الشيفرة وبناء المعمارية المقابلة على المحركات والمنصات الحديثة.