؟ دعم المشروع! ؟
يدعم دعمك تطوير وظيفة dd7to9
لتمكين الألعاب القديمة من العمل بسلاسة على الأنظمة الأساسية الحالية. سواء كان ذلك تعزيزًا لمرة واحدة عبر PayPal أو دعمًا شهريًا مستمرًا على Patreon، فإن مساهمتك تضمن استمرار التحسينات والالتزام بنمو المشروع. يرجى ملاحظة أن دعمك لا يقدر بثمن، ولكنه لن يؤثر على أولويات معينة للعبة. انضم إلينا في هذه الرحلة!
الدعم عبر باي بال | باتريون
com.DxWrapper
مقدمة
DxWrapper هو ملف .dll مصمم لتغليف ملفات DirectX لإصلاح مشكلات التوافق في الألعاب القديمة. يستهدف هذا المشروع في المقام الأول إصلاح مشكلات تشغيل الألعاب على نظام التشغيل Windows 10/11، وذلك ببساطة عن طريق إسقاط ملفات .dll و.ini في مجلد اللعبة. والغرض الثانوي منه هو تقديم أداة واحدة تجمع بين عدة مشاريع في مشروع واحد.
سمات
يحتوي DxWrapper على العديد من الميزات بما في ذلك:
- تكامل DDrawCompat
- تكوين خيارات DDrawCompat لتحسين التوافق
- تحويل DirectDraw 1-6 إلى DirectDraw 7
- تحويل Direct3D 1-6 إلى Direct3D 7
- تحويل DirectDraw 1-7 (ddraw.dll) إلى Direct3D 9 (d3d9.dll) باستخدام Dd7to9
- تحويل Direct3D 1-7 (ddraw.dll) إلى Direct3D 9 (d3d9.dll) باستخدام Dd7to9
- تحويل Direct3D 8 (d3d8.dll) إلى Direct3D 9 (d3d9.dll) باستخدام d3d8to9
- تحويل DirectInput 1-7 (dinput.dll) إلى DirectInput 8 (dinput8.dll) باستخدام dinputto8
- يتضمن LegacyD3DResolutionHack لإزالة حد الدقة الاصطناعية من Direct3D 1-7، والذي يسمح لألعاب DirectDraw باللعب بدقة 4K
- التغيير والتبديل في استدعاءات وظائف Microsoft DirectSound باستخدام DSoundCtrl
- يمكن أن يتسبب في تشغيل ألعاب DirectDraw 1-7 وDirect3D 8 وDirect3D 9 في وضع الإطارات
- يمكن تحديد معدل إطارات الألعاب باستخدام Direct3D 9 أو تحويلها إليه
- يمكن تمكين أو تعطيل المزامنة الرأسية في الألعاب باستخدام Direct3D 9 أو تحويلها إليه
- يمكن ضبط GraphicsHybridAdapter لـ Direct3D 9 على أجهزة الكمبيوتر المحمولة المزودة ببطاقات رسومات متعددة
- يمكن تمكين Direct3D9On12 لـ Direct3D 9
- يمكن ضبط أوضاع المعالجة الرأسية وذاكرة التخزين المؤقت لإصلاح الأداء في بعض ألعاب Direct3D 9
- يمكن إزالة خطوط المسح الضوئي من ألعاب DirectDraw 1-7
- يمكن تعطيل MaximizedWindowedMode (تحسينات ملء الشاشة) لألعاب Direct3D 8 و9
- يمكن تعطيل مقياس DPI العالي لحل المشكلات في بعض الألعاب
- يمكن تعطيل Microsoft Game Explorer (GameUX) لمنع تشغيل وحدة المعالجة المركزية rundll32.exe العالية
- يمكن تعطيل النوافذ المنبثقة والنقرات الصوتية الناتجة عن قص الألعاب للصوت أثناء تشغيل الصوت
- محمل ASI لتحميل المكتبات المخصصة بامتداد الملف .asi في عمليات اللعبة باستخدام Ultimate ASI Loader
- يدعم التحميل كمكون إضافي لـ ASI
- إضافة دعم AntiAliasing إلى ألعاب Direct3D 8 أو 9 حتى لو كانت اللعبة لا تدعمه
- دعم ذاكرة التصحيح السريع (تحديث ذاكرة اللعبة في وقت التشغيل، يمكن استخدامه لإزالة عمليات فحص الأقراص المضغوطة/أقراص DVD أو حل الرسومات أو مواطن الخلل الأخرى)
- تعيين تقارب واحد لوحدة المعالجة المركزية (تواجه بعض الألعاب مشكلات مع وحدات المعالجة المركزية متعددة النواة)
- القدرة على تعيين جميع خيارات مجموعة أدوات توافق التطبيقات الـ 12 لـ DXPrimaryEmulation باستخدام SetAppCompatData API
- اضبط نافذة اللعبة على وضع ملء الشاشة (تحتوي بعض الألعاب على مشكلات في ملء الشاشة)
- التعامل مع الاستثناءات أو الأعطال داخل اللعبة
- قم بتحميل ملفات .dll المخصصة إلى الألعاب
- قم بتشغيل العمليات المخصصة عند بدء تشغيل اللعبة
قائمة التوافق للألعاب على نظام التشغيل Windows 10/11
لقد اختبرت هذا حتى الآن مع مئات الألعاب (العديد منها لا يعمل بشكل صحيح) لتشغيلها على نظام التشغيل Windows 10/11. ستعمل معظم الألعاب، ولكن لا تزال هناك مشكلات في بعضها. قم بمراجعة ويكي الألعاب المتوافقة ويكي الألعاب المدعومة Dd7to9 للحصول على قائمة.
تثبيت
- قم بتنزيل أحدث إصدار ثنائي من صفحة الإصدار الخاصة بالمستودع وقم بفك ضغطه إلى مجلد.
- تحديد أي ملف .dll كعب روتين مطلوب للعبة. ويعتمد هذا على عوامل كثيرة سيتم شرحها في الصفحة التي سيتم إنشاؤها لاحقًا. ملفات dll الشائعة المستخدمة هي
ddraw.dll
أو d3d8.dll
أو d3d9.dll
أو dsound.dll
أو winmm.dll
. ما عليك سوى اختيار ملف كعب روتين واحد لتحميل dxwrapper في اللعبة. - انسخ ملف .dll هذا من المجلد "Stub" بالإضافة إلى ملفات
dxwrapper.dll
و dxwrapper.ini
إلى دليل تثبيت اللعبة، بجوار الملف الرئيسي القابل للتنفيذ. بالنسبة لبعض الألعاب، يكون الملف الرئيسي القابل للتنفيذ موجودًا في دليل فرعي (مثل "Bin" أو "Exe" أو "App") لذا يجب نسخ الملفات إلى هذا الدليل. لا يوصى بالكتابة فوق أي ملفات لعبة موجودة. - افتح ملف
dxwrapper.ini
في محرر النصوص وقم بتمكين الإعدادات المطلوبة للعبة.
لا تحاول الكتابة فوق أي ملف .dll في دليل نظام Windows لأنه غير مدعوم حاليًا ولن يعمل.
إلغاء التثبيت
احذف ملفات DxWrapper .dll و.ini من دليل اللعبة. يمكنك أيضًا حذف ملف السجل، إذا كان هناك ملف.
إعدادات
لتكوين DxWrapper، قم بتحرير الملف .ini وقم بتمكين الإعدادات المطلوبة. راجع ويكي التكوين لمزيد من التفاصيل.
نموذج ملف التكوين: dxwrapper.ini.
قائمة بجميع خيارات التكوين: allsettings.ini
التسجيل
سيتم إنشاء ملف السجل في نفس المجلد الذي توجد به اللعبة القابلة للتنفيذ. سيتم تسميته "dxwrapper" مع إلحاق اسم اللعبة القابلة للتنفيذ به. لذا، إذا كنت تقوم بتشغيل الملف game.exe
، فسيتم تسمية ملف السجل باسم dxwrapper-game.log
.
مكتبات الارتباط الحيوي (DLL) المدعومة
يمكن لـ DxWrapper تغليف ملفات dll التالية:
- bcrypt.dll
- cryptbase.dll
- cryptsp.dll
- d2d1.dll
- d3d8.dll
- d3d9.dll
- dciman32.dll
- ddraw.dll
- dinput.dll
- dinput8.dll
- dplayx.dll
- dsound.dll
- dwmapi.dll
- msacm32.dll
- msvfw32.dll
- version.dll
- wininet.dll
- winmm.dll
- winmmbase.dll
- Winspool.drv
- wsock32.dll
رخصة
حقوق الطبع والنشر (C) 2024 إليشا ريدلينجر
يتم توفير هذا البرنامج "كما هو"، دون أي ضمان صريح أو ضمني. لن يتحمل المؤلف (المؤلفون) بأي حال من الأحوال المسؤولية عن أي أضرار تنشأ عن استخدام هذا البرنامج. يُمنح الإذن لأي شخص لاستخدام هذا البرنامج لأي غرض، بما في ذلك التطبيقات التجارية، ولتعديله وإعادة توزيعه بحرية، مع مراعاة القيود التالية:
- يجب ألا يتم تحريف أصل هذا البرنامج؛ يجب ألا تدعي أنك كتبت البرنامج الأصلي. إذا كنت تستخدم هذا البرنامج في أحد المنتجات، فسيكون من دواعي تقديرك تقديم إقرار بذلك في وثائق المنتج، ولكنه ليس مطلوبًا.
- يجب أن يتم وضع علامة واضحة على إصدارات المصدر المعدلة على هذا النحو، ويجب ألا يتم تحريفها على أنها البرنامج الأصلي.
- لا يجوز إزالة هذا الإشعار أو تغييره من أي توزيع مصدر.
الاعتمادات
يستخدم DxWrapper تعليمات برمجية من عدة مشاريع أخرى. لذا، لمنح الرصيد عند استحقاقه، فيما يلي قائمة بالمواقع التي تم أخذ كود المصدر منها:
- AppCompatData: تم استخدام التعليقات من blitzbasic.com لإنشاء الميزة لتكوين إعدادات DirectDraw AppCompatData.
- Aqrit's ddwrapper: يتضمن رمزًا لقراءة ملف التكوين ini.
- cnc-ddraw: يتضمن تعليمات برمجية لإنشاء سياق جهاز سطحي تمت محاكاته.
- d3d8to9: يتضمن رمز Direct3D 8 الكامل إلى Direct3D 9.
- D3DParseUnknownCommand: يتضمن التعليمات البرمجية لـ DirectDraw D3DParseUnknownCommand من التعليمات البرمجية المصدر الموجودة في ReactOS.
- DDrawCompat: يتضمن الإصدار 0.2.0b وv0.2.1 وv0.3.2 من DDrawCompat الكامل ولربط واجهة برمجة التطبيقات (API).
- doom3.gpl: يتضمن كودًا للحصول على ذاكرة الفيديو.
- diablo-ddrawwrapper: يتضمن بعض التعليمات البرمجية لتحويل ddraw إلى Direct3D.
- DSoundCtrl: يتضمن رمز DirectSoundControl الكامل.
- DxWnd: يتضمن تعليمات برمجية من DxWnd لتحميل الوكيل (init.cpp) ومعالجة الاستثناءات.
- GetComputerManufacturer: يتضمن رمزًا من rohitab.com للحصول على بائع الكمبيوتر وطرازه.
- GetFileVersionInfo: يتضمن رمزًا من stackoverflow.com للحصول على إصدار ملف PE.
- GetPPID: يتضمن الكود المأخوذ من مشروع mattn GitHub للحصول على معرف PID للعملية الأصلية.
- LegacyD3DResolutionHack: يتضمن تعليمات برمجية من LegacyD3DResolutionHack لإزالة حد الدقة الاصطناعية من Direct3D 7 والإصدارات الأقدم.
- MemoryModule: يتضمن تعليمات برمجية لتحميل المكتبات من الذاكرة.
- OllyDbg: يتضمن التعليمات البرمجية cmdlist.c وdisasm.c (disasm.dll) الكاملة المستخدمة لمعالجة الاستثناءات.
- PixelShaderPalette: يتضمن رمزًا من ddraw-cnc لـ PixelShader المستخدم لعرض أسطح لوحة DirectDraw بشكل صحيح.
- SilentPatchFarCry: يتضمن تعليمات برمجية من SilentPatchFarCry للتخزين المؤقت لمستوى المقطع في Direct3D 9.
- Ultimate ASI Loader: يتضمن كودًا لتحميل مكونات ASI الإضافية.
- WineD3D d3d8.dll: يتضمن وظائف ValidatePixelShader وValidateVertexShader.
تطوير
تتم كتابة DxWrapper في الغالب بلغة C++ باستخدام Microsoft Visual Studio 2022.
يتطلب المشروع كلاً من Windows 10 SDK وWDK (يحتاج إلى تثبيت إصدارات SDK وWDK المتطابقة). يمكن رؤية الإصدار الدقيق المطلوب في خصائص المشروع في Visual Studio.
رابط جيثب: https://github.com/elishacloud/dxwrapper
شكرا لزيارتكم!