Mengapa Permainan Lama Jalankan Terlalu Cepat Pada Komputer Moden?
Jika anda pernah cuba untuk mendapatkan permainan komputer vintaj dan berjalan pada sistem moden, anda mungkin terkejut bagaimana cepat permainan berlari. Mengapa permainan lama kehabisan kawalan pada perkakasan moden?
Sebelum ini, kami menunjukkan kepada anda bagaimana untuk menjalankan perisian lama pada komputer moden; sesi soalan dan jawapan hari ini adalah pujian bagus yang menggali mengapa beberapa perisian lama (permainan khusus) tidak pernah berfungsi dengan betul semasa anda cuba untuk menjalankannya pada perkakasan moden.
Sesi Soalan & Jawapan hari ini datang kepada kami dengan ihsan SuperUser-bahagian pembahagian Stack Exchange, kumpulan yang diketuai oleh komuniti laman web Q & A.
Soalan
Pembaca SuperUser TreyK ingin tahu mengapa permainan komputer lama berjalan pantas pada perkakasan baru:
Saya mempunyai beberapa program lama yang saya tarik dari komputer Windows awal era 90-an dan cuba menjalankannya pada komputer yang agak moden. Cukup menarik, mereka berlari dengan pantas cepat - tidak, bukannya 60 bingkai sesaat jenis pantas, dan bukan jenis bunyi yang baik-oh-saya-tuhan cepat. Saya akan menekan butang anak panah dan sprite watak akan zip di seluruh skrin lebih cepat daripada biasa. Perkembangan masa dalam permainan berlaku lebih cepat daripada yang sepatutnya. Malah ada program yang dibuat untuk memperlahankan CPU anda supaya permainan ini sebenarnya dimainkan.
Saya telah mendengar bahawa ini berkaitan dengan permainan bergantung kepada kitaran CPU, atau sesuatu seperti itu. Soalan saya ialah:
- Mengapa permainan lama melakukan ini, dan bagaimanakah mereka dapat pergi dengannya?
- Bagaimana permainan yang lebih baru? tidak lakukan ini dan jalankan secara bebas daripada kekerapan CPU?
Jadi apa cerita itu? Kenapa sebenarnya sprites dalam permainan lama api menyeberang skrin begitu cepat permainan menjadi tidak dapat dimainkan?
Jawapan
Penyumbang SuperUser JourneymanGeek memecahkannya:
Saya percaya mereka menganggap jam sistem akan berjalan pada kadar tertentu, dan diikat dalam pemasa dalaman mereka pada kadar jam itu. Kebanyakan permainan ini mungkin berlari pada DOS, dan merupakan mod sebenar (dengan akses perkakasan yang lengkap dan lengkap) dan menganggap anda sedang menjalankan iirc Sistem 4.77 MHz untuk PC dan apa sahaja pemproses standard yang berlari untuk sistem lain seperti Amiga.
Mereka juga mengambil pintasan pintar berdasarkan andaian-andaian termasuk menyimpan sedikit sumberdaya dengan tidak menulis gelung masa dalaman di dalam program. Mereka juga mengambil sebanyak mungkin kuasa pemproses seperti yang mereka boleh - yang merupakan idea yang baik pada hari-hari lembap, serpihan keran pasif!
Pada mulanya satu cara untuk mendapatkan sekitar kelajuan pemproses yang berbeza adalah butang Turbo lama yang baik (yang melambatkan sistem anda ke bawah). Aplikasi moden dalam mod yang dilindungi dan OS cenderung untuk menguruskan sumber - mereka tidak akan membenarkan aplikasi DOS (yang sedang berjalan di NTVDM pada sistem 32-bit pula) untuk menggunakan semua pemproses dalam banyak kes. Pendek kata, OS telah mendapat lebih pintar, seperti API.
Sangat berlandaskan panduan ini di Oldskool PC di mana logik dan memori gagal saya - ia adalah bacaan yang hebat, dan mungkin akan lebih mendalam ke dalam "mengapa".
Barang seperti CPUkiller menggunakan seberapa banyak sumber yang mungkin untuk "perlahan" ke bawah sistem anda, yang tidak cekap. Anda akan lebih baik menggunakan DOSBox untuk menguruskan kelajuan jam melihat aplikasi anda.
Sekiranya anda ingin tahu bagaimana kod sebenar dilaksanakan dalam permainan komputer awal (dan mengapa mereka menyesuaikan diri dengan sistem moden tanpa sandboxed dalam beberapa program emulasi), kami juga mencadangkan untuk memeriksa pecahan yang panjang tetapi menarik ini proses dalam jawapan SuperUser yang lain.
Mempunyai sesuatu untuk menambah penjelasannya? Bunyi dalam komen. Ingin membaca lebih banyak jawapan dari pengguna Stack Exchange yang berteknologi tinggi? Lihat thread perbincangan penuh di sini.