Dante’s Inferno تحصل على نسخة PC Native غير رسمية عبر إعادة ترجمة نسخة Xbox 360

حصلت Dante’s Inferno بنسخة Xbox 360 على مشروع PC Native غير رسمي يعتمد على Static Recompilation باستخدام ReXGlue، بحيث يتم تحويل كود اللعبة مسبقًا إلى برنامج Windows x64 بدل تشغيله من خلال محاكاة Xbox 360 تقليدية

يعتمد المشروع المعروف باسم hells-gate-recomp على ReXGlue، وهي أداة تحول كود PowerPC الموجود داخل ملفات Xbox 360 XEX إلى C++ ثم تجمعه كتطبيق يعمل مباشرة على الحاسوب

ويختلف هذا الأسلوب عن Xenia، لأن المحاكي يقوم بترجمة تعليمات Xbox 360 أثناء التشغيل باستخدام JIT، بينما تتم عملية الترجمة هنا مسبقًا، وبعد بناء المشروع تحصل في النهاية على ملف dantes_inferno.exe يعمل بصورة Native على Windows باستخدام Direct3D 12

لا يحتوي المشروع على ملفات Dante’s Inferno الأصلية، لذلك ستحتاج إلى استخراج ملفات نسختك القانونية من Xbox 360 بنفسك. لا تقم بتحميل ISO أو ملفات اللعبة من مصادر غير رسمية

ما الذي تحتاج إليه؟

قبل البدء، تحتاج إلى جهاز يعمل بنظام Windows 10 أو Windows 11 بنواة x64، بالإضافة إلى أدوات التطوير التالية

• Visual Studio 2022 مع Windows SDK وملفات D3D12

• LLVM / Clang 18 أو أحدث

• CMake 3.25 أو أحدث

• Ninja Build System

• نسخة قانونية مستخرجة من Dante’s Inferno الخاصة بـXbox 360

1 — تحميل المشروع

ابدأ بتحميل المشروع من GitHub، ثم فك الضغط في مجلد بسيط يفضل ألا يحتوي مساره على رموز غريبة أو أسماء طويلة

git clone https://github.com/florinp93/hells-gate-recomp.git
cd hells-gate-recomp

ويمكن أيضًا استخدام زر Download ZIP من GitHub إذا كنت لا تريد تثبيت Git

2 — تثبيت الأدوات المطلوبة

قم بتثبيت Visual Studio 2022 واختر أثناء التثبيت حزمة Desktop development with C++ وتأكد من وجود Windows SDK

بعد ذلك ثبت LLVM/Clang وCMake وNinja، ثم تأكد من إمكانية الوصول إليها من PowerShell

clang –version
cmake –version
ninja –version

إذا ظهرت أرقام الإصدارات بدون أخطاء، يمكنك الانتقال إلى الخطوة التالية

3 — إعداد ReXGlue

يوفر المشروع سكربت PowerShell يقوم بتحميل نسخة ReXGlue SDK المطلوبة وتهيئة الـSubmodules بصورة تلقائية

افتح PowerShell داخل مجلد المشروع وشغل الأمر التالي

.\setup.ps1

بحسب المشروع، يقوم السكربت بجلب نسخة ReXGlue المثبتة للمشروع إلى مجلد thirdparty\rexglue-sdk

إذا منع PowerShell تشغيل السكربت بسبب Execution Policy، يمكن تشغيله للجلسة الحالية بهذه الطريقة

Set-ExecutionPolicy -Scope Process Bypass
.\setup.ps1

4 — استخراج ملفات Dante’s Inferno

قم باستخراج محتويات نسخة Xbox 360 التي تملكها قانونيًا، ثم انسخ كل الملفات إلى مجلد game الموجود داخل مشروع hells-gate-recomp

يجب أن يكون ملف التشغيل الرئيسي موجودًا بالمسار التالي بالضبط

hells-gate-recomp\game\default.xex

ويجب الحفاظ على بنية المجلدات الأصلية وعدم نسخ default.xex وحده، لأن اللعبة تحتاج إلى بقية البيانات والملفات أثناء التشغيل

إذا لم تجد game\default.xex بعد الاستخراج، فأنت لم تستخرج نسخة Xbox 360 بالطريقة الصحيحة أو أنك وضعت الملفات داخل مجلد إضافي

5 — بناء أداة ReXGlue

بعد وضع ملفات اللعبة، قم ببناء واجهة ReXGlue CLI مرة واحدة

cmake –preset win-amd64-release -DREXSDK_DIR=thirdparty\rexglue-sdk
cmake –build out\build\win-amd64-release –target rexglue

بعد اكتمال العملية يفترض أن تجد rexglue.exe داخل مجلد بناء الـSDK

thirdparty\rexglue-sdk\out\win-amd64\Release\

أضف هذا المسار إلى PATH أو استخدم المسار الكامل إلى rexglue.exe في الأوامر التالية

6 — تهيئة المشروع باستخدام ملف XEX الخاص بك

بعد التأكد من وجود default.xex، تحتاج إلى إعادة إنشاء ملفات ReXGlue المرتبطة بالنسخة الموجودة لديك

rexglue init –force –project_name dantes_inferno –project_root . –xex_path game\default.xex –game_root game

تسمح هذه العملية للمشروع بالتعرف على إصدار XEX المستخدم وإنشاء ملفات الـScaffolding المناسبة له

7 — بناء نسخة PC

الآن قم بتهيئة مشروع Windows ثم ابدأ عملية التجميع

cmake –preset win-amd64-release -DREXSDK_DIR=thirdparty\rexglue-sdk
cmake –build out\build\win-amd64-release

في أول عملية Build يقوم النظام تلقائيًا بتشغيل rexglue codegen لتحويل كود Xbox 360 PowerPC إلى C++، ثم يقوم Clang ببناء النسخة الأصلية للحاسوب

قد تستغرق أول عملية بناء بعض الوقت بحسب سرعة المعالج

8 — أين تجد اللعبة بعد البناء؟

إذا انتهت العملية دون أخطاء، ستجد ملف التشغيل هنا

out\win-amd64\Release\dantes_inferno.exe

9 — تشغيل Dante’s Inferno

يمكن تشغيل اللعبة من PowerShell بالأمر التالي

.\out\win-amd64\Release\dantes_inferno.exe

إذا أردت إنشاء Log مفصل لتشخيص المشاكل، استخدم

.\out\win-amd64\Release\dantes_inferno.exe –log_level=trace –log_file=run.log

لماذا الأداء أخف من المحاكاة؟

الفرق الأساسي هو أن ReXGlue لا يحتاج إلى ترجمة تعليمات PowerPC الخاصة بـXbox 360 في كل مرة أثناء اللعب

تتم الترجمة مسبقًا أثناء عملية Codegen، ثم يتم تجميع الناتج إلى كود x86-64 يعمل مباشرة على معالج الحاسوب مع Runtime يوفر الوظائف التي كانت اللعبة تتوقع وجودها على Xbox 360

لهذا يمكن لمشاريع Static Recompilation أن تعمل على معالجات أضعف من تلك المطلوبة للحصول على الأداء نفسه عبر محاكاة تقليدية، رغم أن النتائج تختلف من لعبة إلى أخرى بحسب حالة المشروع والـRuntime

هل هي نسخة PC رسمية؟

لا، المشروع غير رسمي ولا يرتبط بـEA أوVisceral Games أوMicrosoft، كما أن مستودع GitHub لا يحتوي على أصول Dante’s Inferno المحمية بحقوق النشر

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

اللعبة: Dante’s Inferno

المصدر: نسخة Xbox 360

الطريقة: Static Recompilation

الأداة: ReXGlue

النظام المستهدف: Windows 10/11 x64

واجهة الرسوم: Direct3D 12

المحاكاة أثناء التشغيل: لا توجد JIT لتعليمات PowerPC