16Aug
Jika Anda pernah mencoba untuk mendapatkan permainan komputer vintage dan berjalan pada sistem modern, Anda mungkin pernah terkejut melihat bagaimana cepat berlari. Mengapa game lama kehabisan kendali pada perangkat keras modern?
Sebelumnya hari ini kami menunjukkan kepada Anda bagaimana menjalankan perangkat lunak lama di komputer modern;Sesi tanya jawab hari ini adalah pujian yang bagus yang menggali mengapa beberapa perangkat lunak lama( khusus permainan) sepertinya tidak pernah bekerja dengan baik saat Anda mencoba menjalankannya di perangkat keras modern.
Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web.
Pertanyaan
Pembaca SuperUser TreyK ingin tahu mengapa permainan komputer lama berjalan cepat di perangkat keras baru:
Saya mendapat beberapa program lama yang saya pakai dari komputer era 90-an awal dan mencoba menjalankannya di komputer yang relatif modern..Yang cukup menarik, mereka berlari dengan kecepatan tinggi yang terik - tidak, bukan tipe 60 frame per detik yang cepat, melainkan tipe oh-my-god-the-character-is-walking-at-the-speed-of-soundcepat. Saya akan menekan tombol panah dan sprite karakter akan melintang di layar lebih cepat dari biasanya. Perkembangan waktu dalam permainan terjadi lebih cepat dari seharusnya. Bahkan ada program yang dibuat untuk memperlambat CPU Anda sehingga game ini benar-benar dimainkan.
Saya pernah mendengar bahwa ini terkait dengan permainan tergantung pada siklus CPU, atau semacamnya. Pertanyaan saya adalah:
- Mengapa game yang lebih tua melakukan ini, dan bagaimana mereka bisa lolos begitu saja?
- Bagaimana permainan yang lebih baru tidak melakukan ini dan menjalankan secara independen dari frekuensi CPU?
Jadi apa ceritanya? Mengapa sebenarnya sprite dalam permainan lama menyala di layar begitu cepat permainannya menjadi tidak bisa dimainkan?
Jawaban
SuperUser kontributor JourneymanGeek memecahnya:
Saya percaya mereka menduga jam sistem akan berjalan pada tingkat tertentu, dan diikatkan di timer internal mereka ke tingkat clock tersebut. Sebagian besar game ini mungkin berjalan di DOS, dan merupakan mode nyata( dengan akses hardware langsung yang lengkap) dan mengira Anda menjalankan sistem iirc 4,77 MHz untuk PC dan prosesor standar apa pun yang dijalankan model untuk sistem lain seperti Amiga.
Mereka juga mengambil jalan pintas pintar berdasarkan asumsi-asumsi tersebut termasuk menghemat sedikit sumber daya dengan tidak menulis loop waktu internal di dalam program. Mereka juga mengambil kekuatan prosesor sebanyak yang mereka bisa - yang merupakan ide yang bagus di masa-masa chip yang lambat dan sering pasif!
Awalnya salah satu cara untuk berkeliling dengan kecepatan prosesor yang berbeda adalah tombol Turbo lama yang bagus( yang memperlambat sistem Anda ke bawah).Aplikasi modern berada dalam mode terlindungi dan OS cenderung mengelola sumber daya - mereka tidak mengizinkan mengizinkan aplikasi DOS( yang berjalan di NTVDM dengan sistem 32-bit) untuk menggunakan semua prosesor dalam banyak kasus. Singkatnya, OS telah menjadi lebih cerdas, seperti API.
Berat berdasarkan panduan ini pada PC Oldskool di mana logika dan memori gagal saya - ini adalah bacaan yang bagus, dan mungkin berjalan lebih dalam ke dalam "mengapa".
Stuff seperti CPUkiller menggunakan sumber daya sebanyak mungkin untuk "memperlambat" sistem Anda, yang tidak efisien. Anda akan lebih baik menggunakan DOSBox untuk mengatur kecepatan clock yang dilihat aplikasi Anda.
Jika Anda penasaran dengan bagaimana kode sebenarnya diimplementasikan pada game komputer awal( dan mengapa mereka beradaptasi dengan buruk pada sistem modern tanpa sandboxed dalam program emulasi), kami juga menyarankan untuk memeriksa kerusakan yang panjang namun menarik ini.proses dalam jawaban SuperUser lain.
Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.