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



في وقت سابق اليوم نحن أوضح لك كيفية تشغيل البرامج القديمة على أجهزة الكمبيوتر الحديثة ؛ جلسة الأسئلة والأجوبة اليوم عبارة عن مجاملة لطيفة تبحث في سبب عدم عمل بعض البرامج القديمة (على وجه التحديد الألعاب) بشكل صحيح عند محاولة تشغيلها على الأجهزة الحديثة.

تأتي جلسة الأسئلة والأجوبة اليوم من باب المجاملة SuperUser - قسم فرعي من Stack Exchange ، وهو مجموعة يحركها المجتمع لمواقع الأسئلة والأجوبة على الويب.

السؤال

يريد قارئ SuperUser TreyK معرفة سبب تشغيل ألعاب الكمبيوتر القديمة بسرعة فائقة على الأجهزة الجديدة:

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

لقد سمعت أن هذا مرتبط باللعبة اعتمادًا على دورات وحدة المعالجة المركزية ، أو شيء من هذا القبيل. أسئلتي هي:

  • لماذا تفعل الألعاب القديمة هذا ، وكيف تفلتوا من العقاب؟
  • كيف أحدث الألعاب ليس تفعل هذا وتعمل بشكل مستقل عن تردد وحدة المعالجة المركزية؟

إذن ما هي القصة؟ لماذا تحترق النقوش المتحركة في الألعاب القديمة على الشاشة بسرعة بحيث تصبح اللعبة غير قابلة للعب؟

الاجابة

يقوم مساهم SuperUser JourneymanGeek بتقسيمها:

أعتقد أنهم افترضوا أن ساعة النظام ستعمل بمعدل معين ، وربطوا في عداداتهم الداخلية بمعدل الساعة هذا. ربما كانت معظم هذه الألعاب تعمل على DOS ، وكانت كذلك الوضع الحقيقي (مع الوصول الكامل والمباشر للأجهزة) وافترض أنك تقوم بتشغيل ملف iirc نظام 4.77 ميغاهرتز لأجهزة الكمبيوتر وأي معالج قياسي يعمل بهذا النموذج للأنظمة الأخرى مثل Amiga.

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

في البداية كانت إحدى الطرق للتغلب على اختلاف سرعة المعالج هي الطريقة القديمة الجيدة زر Turbo (مما أدى إلى إبطاء النظام الخاص بك). التطبيقات الحديثة في الوضع المحمي ويميل نظام التشغيل إلى إدارة الموارد - لكنها لن تفعل ذلك السماح تطبيق DOS (الذي يعمل في NTVDM على نظام 32 بت على أي حال) لاستخدام كل المعالج في كثير من الحالات. باختصار ، أصبحت أنظمة التشغيل أكثر ذكاءً ، مثلها مثل واجهات برمجة التطبيقات.

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

أشياء من هذا القبيل CPUkiller استخدام أكبر عدد ممكن من الموارد لإبطاء النظام الخاص بك ، وهو أمر غير فعال. سيكون من الأفضل لك استخدام DOSBox لإدارة سرعة الساعة التي يراها التطبيق الخاص بك.

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


هل لديك شيء تضيفه إلى الشرح؟ الصوت خارج في التعليقات. هل تريد قراءة المزيد من الإجابات من مستخدمي Stack Exchange البارعين في مجال التكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا .

اقرأ التالي
  • & [رسقوو] ؛ Cyber ​​Monday 2021: أفضل العروض التقنية
  • & [رسقوو] ؛ الدالات مقابل الصيغ في Microsoft Excel: ما الفرق؟
  • & [رسقوو] ؛ كيفية العثور على ملف Spotify 2021 الخاص بك
  • & [رسقوو] ؛ مجلد الكمبيوتر هو 40: كيف أنشأت شركة Xerox Star سطح المكتب
  • & [رسقوو] ؛ Cyber ​​Monday 2021: أفضل عروض Apple
  • & [رسقوو] ؛ 5 مواقع ويب يجب على كل مستخدم Linux وضع إشارة مرجعية عليها