تأخير المدخلات على لوحات المفاتيح الرجعية ومحاكيات



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

مع موجة شعبية أجهزة الكمبيوتر ذات السبورة RaspberryPi ، اشترى OrangePi العديد من معارفه أنفسهم حزمًا منهم. وبدون اتخاذ قرار بشأن ما يجب عليهم فعله ، بدأوا في نحت منهم وحدة التحكم الرجعية استنادًا إلى محاكي RetroArch وتوزيع Recallbox. عندما حاولت لعب ألعاب طفولتي المفضلة على هذا ، فوجئت: " كيف يمكنني لعب هذا؟ " بدت فيزياء الألعاب خاطئة إلى حد ما ، وكان الشعور بالاشمئزاز. بعد فترة ، أخبروني أن بيت القصيد هو تأخير الإدخال ، الذي لا يبدو للوهلة الأولى وكأنه تأخير ، أي ، مثل الفيزياء الأخرى.

اتضح أن المشكلة معروفة منذ فترة طويلة بين المهوسون وحدة التحكم ويجري التحقيق بنشاط. سأقوم بتحليل دراسات الآخرين وسأحاول قياس التأخير في الإعداد الخاص بي.

ما هي المشكلة؟


تأخير الدخول هو الوقت منذ اللحظة التي يتم فيها الضغط على الزر الموجود على وحدة التحكم لرد فعل الشخصية على الشاشة. هنا العديد من العوامل تلعب دورا في آن واحد:

  • تأخير الشاشة / التلفزيون - تحتوي بعض أجهزة التلفزيون الحديثة على تأخير إخراج الصورة لأكثر من 100 مللي ثانية. هذا بسبب المعالجة اللاحقة للصورة ، التخزين المؤقت ، المرشحات ، إلخ. هنا يمكنك أن ترى مقارنة بين تلفزيونات CRT وشاشات الكريستال السائل مع الكمون العالي. عادة ، تشير الشركات المصنعة للشاشات إلى سرعة المصفوفة في المواصفات ، مشيرة إلى سرعة التبديل بين الألوان ، ولكن هذا لا يتعلق بالتأخير في إخراج الصورة.

    إشارة تناظرية واحدة من جهاز فك التشفير على جهازي تلفزيون. هناك تأخير كبير على تلفزيون LCD مقارنة بـ CRT.
  • تأخير الكمبيوتر - وحدة تحكم لعبة أو كمبيوتر به محاكي لا يقوم بمعالجة الإشارة على الفور ، ويستغرق الأمر بعض الوقت. يحتاج الكمبيوتر إلى تلقي إشارة من جهاز الإدخال ، ومعالجتها وعرض الصورة على الشاشة. يتم تقديم التأخير أيضًا بواسطة المزامنة الرأسية للصورة عند عرضها على الشاشة. هنا ، يحاول مطورو RetroArch حل هذه المشكلة.

    مظاهرة لتأخير كبير على المحاكي. فيديو دينيس ميجور
  • تأخير وحدة التحكم - يمكن لجهاز الإدخال أيضًا إدخال تأخير. على سبيل المثال ، إذا كان متصلاً بحافلة USB محملة ، عبر Bluetooth ، إلخ.

المحاكيات


يريد الجميع اللعب على أجهزة حديثة وأجهزة تلفزيون وشاشات عادية مع HDMI ، وكذلك تشغيل جميع الألعاب الممكنة على جهاز واحد. لهذا ، يتم استخدام برامج محاكاة الأجهزة الشائعة التي تعمل على أجهزة الكمبيوتر العادية X86 أو ARM. فيما يلي أكثرها شعبية:

Retroarch



المحاكي الأكثر شعبية والمتقدمة. قادرة على محاكاة PlayStation1 و SNES و NES و GameBoy و Sega Genesis / CD وغيرها من لوحات المفاتيح. وهو يعمل على أنظمة تشغيل سطح مكتب Windows و Linux و MacOS وعلى وحدات التحكم الحديثة Xbox و Android و PlayStation2 / 3/4 / Vita و Nintendo Wii / Switch وغيرها . بناءً على ذلك ، يتم تصنيع مجموعة توزيع Recallox الشائعة

OpenEMU


صورة
مريحة جدا وبسيطة المحاكي لنظام التشغيل MacOS. وهو يدعم لوحات المفاتيح الأكثر شعبية ويحتوي على معرض ألعاب مناسب مرتبة حسب النظام الأساسي. من خارج الصندوق ، فإنه يدعم منصات ألعاب بلاي ستيشن 4 عبر البلوتوث. إنها أقل قدرة على استخدام RetroArch ، لكن بالنسبة لذوقي فهي أكثر ملاءمة للاستخدام. بالنسبة لقياساتي ، سأستخدمها ، حيث إنها تعمل فورًا على نظام التشغيل macOS دون الالتفاف مع إعدادات لوحة اللعبة

إجراء القياس


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

قام Brunnis من منتدى مشروع libretro بالكثير من الأبحاث حول تأخر الإدخال. أنا أعتبر أن دراساته هي الأكثر اكتمالا وموضوعية.

صورة
لوحة تحكم USB مع مؤشر LED ملحوم لالتقاط اللحظة التي يتم فيها الضغط على الزر

صورة
زر غير مضغوط

صورة
زر الضغط

صورة
تبدأ الرسوم المتحركة على الشاشة بعد 24 إطارًا (100 مللي ثانية)

صيغة الحساب


في الثانية ، 1000 ميلي ثانية.
تلتقط كاميرا الهاتف بسرعة 240 إطارًا في الثانية.
لذلك 1 إطار الفيديو = 1000/240 = 4.16ms.

من المهم أيضًا مراعاة معدل الإطارات الذي تعمل به الشاشة والكمبيوتر. على سبيل المثال ، بالنسبة لوضع التشغيل الذي يبلغ 30 إطارًا في الثانية ، سيكون إطار الشاشة الواحدة 33 مللي ثانية و 60 إطارًا في الثانية - 17 مللي ثانية. يجب أن يؤخذ ذلك في الاعتبار ، حيث لا يمكن أن يكون الوقت بين الإطارات أقل من هذه القيم ، مما يعني أنه سيتم تقريب الأحداث التي تحدث أثناء فترة تحديث الإطار على الشاشة إلى الإطار الأخير.

لن أعطي هنا جميع نتائج قياسات المتأنق ، المهتمين باقتراح التعرف على أنفسهم.
الشيء الرئيسي الذي يجب تذكره هو أن وحدات التحكم الأصلية كان متوسط ​​تأخيرها يتراوح بين 50 إلى 70 مللي ثانية ، وهذا يتوقف على وحدة التحكم ووضع PAL / NTSC. يضيف محاكي الكمبيوتر الذي تم ضبطه جيدًا 60 إلى 80 مللي ثانية من التأخير ، اعتمادًا على النظام الأساسي الذي تمت محاكاته. يمكن أن يحتوي محاكي التوت بي على ما يصل إلى 150 مللي ثانية من التأخير.

عمليات البحث الخاصة بي


عندما كنت طفلة ، حصلت على لعبة Sega Mega Drive ، ألعابها هي التي تسبب أقوى حنين. لذلك ، سوف أصف بحثي عن إعداد مريح خصيصًا لوحدة التحكم هذه. أريد أن أقول على الفور أن بحثي لا يدعي أنه دقة قياس مطلقة.

متطلباتي:

  • لوحات الألعاب اللاسلكية - قد يدينني مهوسو وحدة التحكم ، لكنني أريد أن ألعب بشكل مريح أثناء الجلوس على الأريكة في أي وضع. لوحات الألعاب السلكية غير مريحة بشكل رهيب ، والجميع يؤلمها ولن تلعبها لفترة طويلة.
  • الإخراج عبر HDMI أو DisplayPort - لا توجد مدخلات تناظرية على شاشتي ، لذلك لا يمكنني شراء محرك Sega Mega Drive الأصلي. محولات USB لالتقاط الفيديو التناظرية تقديم تأخيرها وغير مريح. لا أريد أيضًا شراء تلفزيون CRT منفصل لجهاز فك التشفير

Macbook + Dualshok 4 + OpenEMU


تعجبني لعبة gamestation من Playstation 4 ، أعتبرها أكثر الألعاب الموجودة حاليًا. يمكن أن تعمل عن طريق البلوتوث وعبر USB. مدعومة بالكامل في OpenEMU من خارج منطقة الجزاء مع عدم وجود إعدادات.


على الرغم من راحة OpenEMU ، فإن مشكلتها الرئيسية هي سحب FPS في وضع ملء الشاشة. لست متأكدًا من السبب ، وربما كان هذا هو الحل ، لكن ذلك لم ينجح بالنسبة لي. لذلك ، ألعب في وضع إطارات.


OpenEMU واجهة المحاكي. يتم فرز جميع الألعاب حسب النظام الأساسي.

القياسات


لم أكن أرغب في فصل gamestation من Playstation عن لحام LED ، لذلك كان علي أن أفعل العد التنازلي للوقت الذي تم فيه الضغط على الزر من خلال الصوت. الخطأ في هذه الطريقة هو حوالي 8-10ms. تستخدم الشاشة LG 24UD58 في وضع 4K @ 60fps المتصل بجهاز MacBook عبر DisplayPort. لعبة كونترا هارد فيلق.


التأخير في MacBook مع وحدة تحكم Dualshock4 متصلة عبر البلوتوث تبلغ حوالي 150 مللي ثانية. هذا كثير!
يوفر MacBook + Dulashock حوالي 150 مللي ثانية من التأخير. هذا كثيرًا بالنسبة للعبة مريحة ، مثل هذا التأخير ملحوظ ، واللاعبون المتشددين مثل Contra Hard Corps غير مريحين.
على الرغم من أن التأخير في هذه الحزمة كبير بشكل لا يُنسى ، إلا أنه لا يزال يستحق الحق في الحياة. لأنه يكفي رمي لوحة الألعاب في حقيبة الظهر على الكمبيوتر المحمول ، والحصول على وحدة تحكم في أي مكان. حتى قبل إجراء القياسات ، كان واضحًا لي أن هذا لم يكن الخيار الأفضل ، وقد واصلت البحث.

استنساخ سيجا سفر التكوين


الآن يتم بيع العديد من الحيوانات المستنسخة للقرصنة من لوحات المفاتيح الرجعية مع الألعاب المثبتة مسبقا. بعضها مصنوع من أجهزة استقبال تعمل بنظام أندرويد مزودة بمحاكيات وحدة التحكم في الداخل ، مما يعني أنهم يعانون من نفس المشكلات مع التأخير. لكن البعض يعد بوحدة تحكم كاملة بدون محاكي . لقد وجدت وحدة التحكم هذه على Avito للقص: نموذج retrogenesis.ru Retro Genesis HD Ultra. يكتبون على الموقع أن هذا ليس محاكيًا ، ولكن في الداخل وحدة تحكم في الأجهزة حقًا. هناك ألعاب مثبتة مسبقًا وإمكانية إدخال خراطيش. في الوقت نفسه ، هناك إخراج HDMI ولوحات الألعاب اللاسلكية!


لوحات الألعاب اللاسلكية


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

صورة
وحدة راديو تحاكي نقرات لوحة اللعبة السلكية

قمت بتوصيل مسبار الذبذبات 1 بالمصباح الموجود على جهاز التحكم والآخر بالمدخل المقابل لمفتاح Up على وحدة التحكم. عندما تتم معالجة الإشارة بواسطة وحدة الراديو ، فإنها تحاكي ضغط المفاتيح ، وسأراها في المجس 2. بمقارنة فارق التوقيت بين الإشارات 1 و 2 ، يمكنني الحصول على التأخير الذي تضيفه لوحة الألعاب اللاسلكية بدقة شديدة. على مقياس الذبذبات ، يبلغ حجم الخلية الواحدة 5 مللي ثانية ، مما يعني أن تأخير لوحات الألعاب اللاسلكية هو 25 مللي ثانية.


مقارنة الإشارات على لوحة التحكم ووحدة التحكم


وحدة لاسلكية يضيف تأخير 25ms

القياسات



التأخير في سفر التكوين سيجا الرجعية حوالي 70ms

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

استنتاج


لا تأخذ قياساتي في الاعتبار تأخير إخراج الشاشة ، ولكن تم أخذ جميع القياسات على نفس الشاشة ، لذلك لا يؤثر على النتائج. كررت كل قياس 10 مرات ، وأحصل في بعض الأحيان على قراءات من حوالي 4 إطارات ، أي 16 مللي ثانية. أعتقد أن النقطة هي التأخير في التزامن الرأسي عند تشكيل صورة على وحدة التحكم.

بشكل عام ، أعتقد أن قياساتي تعطي فكرة عامة عن التأخير في الإعدادين وقد تكون مفيدة لأولئك الذين يختارون طريقة ما.

خيار Runahead على RetroArch


قبل عام ، أعلن مطورو RetroArch أنهم حققوا تأخيرات أقل في المضاهاة الخاصة بهم مقارنة بالوحدات الأصلية. لم أجرب هذا الخيار بنفسي ، لكن يجب أن يوضع في الاعتبار.

مراجع


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

الكثير من الأبحاث حول التأخير عبر المنصات .

دراسة أخرى .

Pro Hux Space Neuron



في Hackspace Neuron لدينا نلعب بانتظام لوحات المفاتيح الرجعية ، وعكس الحديد ، ونفعل أشياء أخرى كثيرة. معنا يمكنك استخدام مكواة لحام ، راسم الذبذبات ، محلل التردد والدردشة مع المهووسين مضحك. تعال زيارة.

كل الأخبار حول حياة Huxpeys في قناة البرق: neuronspace

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


All Articles