الشبكة العربية لمطوري الألعاب

خبير  أحمد عزالدين مشاركة 1

السلام عليكم

كيف حالكم يا شباب؟ 😄

أود أن أسأل حول طريقة عمل محاكيات أجهزة الالعاب Game Emulators مثل برنامج Dolphin  لمحاكاة الكثير من العاب الـ console
يعني ما الفكرة وراء عمل مثل هذه البرامج
ولقد لاحظت عند تجرتي لاحد هذه البرامج والتي تحاكي العاب جهاز Wii مثلاً أنها غير مستقرة مع بعض الالعاب بجانب انها قد تسبب crash
في بعض الاوقات.

أذكر أيضا البرنامج bluemsx والذي كنت قد استخدمته لتجربة لعبة Tank Battalion الاصلية للاستفادة منها أثناء برمجتي لالعاب شبيهة لها

أيضا ما هي أفضل هذه البرامج برأيك والتي تستخدمها؟

شكراً

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري

محترف  انس مشاركة 2

السلام عليكم .



أما في 16 يونيو 2009 02:00 م، فقد تنهد ahmed ezz بارتياح وهو يرد:

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

 اليك مثال :

لنفرض ان لدينا صور بصيغة Bmp
رغم ان الملف هو صورة الا ان المعالج لا يفقه فيه شيئا ، بالنسبة اليه انه ملف دون معنى او لنقل ليس له المعنى الذي يريده المستخدم .
اذن الحل الوحيد هو استخدام برنامج لقراءة الصور ، هذا البرنامج يقرئ كود الملف يعيد صياغة معناه ثم يرسله الى المعالج لكي نحصل على صورة .

المبدء نفسه مع كامل الملفات و هو نفسه مع برامج محاكات الالعاب الفرق الوحيد ان اجهزة الالعاب معقدة جدا مقارنة بملف الصورة!!!

لماذا ؟ لان جهاز الالعاب يحتوي على عدة وحدات معالجة تتكامل فيما بينها لكي نحصل على النتيجة النهائية و هي اللعبة .
 اذن لكي تصنع محاكي لجهاز ما يجب ان تعرف هندسة الجهاز معرفة جيدة جدا ثم تكتب برنامجا يؤدي نفس دور كل وحدة من الجهاز ثم تجعل الوحدات تعمل بتكامل في برنامجك في النهاية نحصل على جهاز العاب في الحاسوب .

في 16 يونيو 2009 02:00 م، غمغم ahmed ezz باستغراب قائلاً:

ولقد لاحظت عند تجرتي لاحد هذه البرامج والتي تحاكي العاب جهاز Wii مثلاً أنها غير مستقرة مع بعض الالعاب بجانب انها قد تسبب crash في بعض الاوقات.
نعم هي غير مستقر لانها اولا ابتدائيا و مطوروها لا يملكون كل المعلومات اللازمة حول الجهاز ، ثانيا لصعوبة عمل مثل هذه البرامج ، لا يخفى عليك ان من يطور محاكي العاب Ps3 سيصبح اول رجل يتكلم لغة الالة بطلاقة ☺ .
ان الالعاب تاتي في صورة تسلسل البتات من ثم يحاول المبرمج فهم هذه السلاسل ، لكن بما ان كل لعبة تختلف نسبيا عن اختها سيكون الكود المستعمل و المجرب مع لعبة ما غير مستقر مع العاب اخرى .

ان وجود الكم الكبير من برامج محاكاة الاجهزة القديمة راجع الى انتشار المعلومات حول هندستها و بالتالي يملك المبرمجون الوسائل اللازمة لبرمجو برامج محاكاة لها .


بتاريخ 16 يونيو 2009 02:00 م، قطب ahmed ezz حاجبيه بشدة وهو يقول:

أيضا ما هي أفضل هذه البرامج برأيك والتي تستخدمها؟

حسنا ساذكر ما استعمله :


Game Boy + Game Boy Adv
Visual Boy Advance
No$GBA

-------------------------------
Super Nintendo Entertaiment System ( SNES )
Zsnes
Snes9x

-------------------------------
Nintendo 64
Project64
1964
UltraHLE

-------------------------------
Sony Playstation 1
Emurayden PSX Emulator
ePSXe

-------------------------------
SNK NeoGeo + Capcom Player System (cps 1 & 2 )
WinKawas
Mame
Neorage

-------------------------------
Capcom Player System 3 (cps 3 )

CPS3 emulator.


و هذه بعض المواقع المفيدة في هذا الميدان :

www.gametronik.com
http://forum.mininova.org/index.php?showtopic=234998879

اتمنى ان تكون قد استفدت 😄 .

سلام

خبير مدير وسام البهنسي مشاركة 3

وفي 16 يونيو 2009 09:00 ص، ظهر شبح ابتسامة على وجه ahmed ezz وهو يقول:

أود أن أسأل حول طريقة عمل محاكيات أجهزة الالعاب Game Emulators مثل برنامج Dolphin  لمحاكاة الكثير من العاب الـ console
يعني ما الفكرة وراء عمل مثل هذه البرامج

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



أما في 16 يونيو 2009 09:00 ص، فقد تنهد ahmed ezz بارتياح وهو يرد:

ولقد لاحظت عند تجرتي لاحد هذه البرامج والتي تحاكي العاب جهاز Wii مثلاً أنها غير مستقرة مع بعض الالعاب بجانب انها قد تسبب crash
في بعض الاوقات

يقاس نجاح المحاكي بدقة محاكاة تصرفات الجهاز الأصلي، متضمناً أخطاءه وكافة الحالات الشاذة التي قد تحدث فيه. فصانع المحاكي لا يقوم بكتابة كود خاص لكل لعبة ظهرت على الجهاز، وإنما فقط يكتب الكود الذي يمثل الجهاز الأصلي، ومن ثم يقوم بتجريب ألعاب مختلفة عليه. بعضها قد يعمل والبعض الآخر قد لا يعمل لأنها تعتمد على خواص لم يقـُم مبرمج المحاكي بأخذها في الحسبان أثناء بناء المحاكي (مثلاً، طبقة شفافية قابلة للانزياح، هي أساساً غير مدعومة، لكن اللعبة تستخدم حيلة غير نظامية لإظهارها). 
 
لاحظ أن بعض الأجهزة تستخدم معالجات مصنعة من شركات أخرى، وبالتالي يسهل الحصول على مخططات تلك المعالجات (مثل وحدة صوت جهاز صخر مثلاً - AY-3-8910 من شركة General Instruments)، ومن ثم مماثلتها بكود برمجي بدلاً من دارات إلكترونية.
 


في 16 يونيو 2009 09:00 ص، غمغم ahmed ezz باستغراب قائلاً:

ما هي أفضل هذه البرامج برأيك والتي تستخدمها؟

للصخر، كنت أستخدم FMSX على دوس (أنجح محاكي وجدته لصخر) قبل أن يتم نقل نواته لويندوز من خلال blueMSX. 
للسيجا، استخدمت محاكي يدعى Genecyst لفترة، ثم انتقلت لـ Gens32 Surreal. جيد جداً وينجح بالمهمة في أغلب الألعاب.
 
لنينتيندو العائلة استخدمت Jnes لفترة طويلة، ثم انتقلت مؤخراً لـ Virtua Nes. كلاهما جيد.
 
لسوبر نينتيندو، دائماً أستخدم Zsnes. لم أحتج لغيره.
 
لبليستيشن الأول، استخدمت Connectix Virtual Game Station لفترة جيدة، ومؤخراً استخدمت ePSX.
 
 
مرجعي الشامل والكامل لكافة المحاكيات هو موقع زُفَر دوت نيت:
 
http://www.zophar.net/
 
تجد به قائمة حية بكل المحاكيات لكل الأجهزة وعلى كافة المنصات.

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير  أحمد عزالدين مشاركة 4

شكرا لكم على المعلومات القيمة 😄

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري

محترف  انس مشاركة 5

السلام عليكم

حتى تتضح الفكرة اكثر ادعوكم الى قراءة الكود الخاص ببعض المحاكيات لان اغلبها مفتوح المصدر .

محاكي لننتندو 64 :
http://www.dcemu.co.uk/vbulletin/showthread.php?t=215253

محاكي البلايستيشن 2 :
http://code.google.com/p/pcsx2/source/checkout

شكرا

سلام .

خبير مدير وسام البهنسي مشاركة 6

في 03/رجب/1430 06:15 م، غمغم انس باستغراب قائلاً:

حتى تتضح الفكرة اكثر ادعوكم الى قراءة الكود الخاص ببعض المحاكيات لان اغلبها مفتوح المصدر .

محاكي لننتندو 64

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

وسام البهنسي
مبرمج في إنفيديا وإنفريمز