loader

Mengapa Game Lama Berlari Terlalu Cepat Di Komputer Modern?

Anonim

Jika Anda pernah mencoba untuk membuat game komputer vintage dan berjalan pada sistem modern, Anda mungkin akan terkejut dengan seberapa cepat game berjalan. Mengapa game lama kehabisan kendali pada perangkat keras modern?

Sebelumnya hari ini kami menunjukkan kepada Anda bagaimana menjalankan perangkat lunak yang lebih tua di komputer modern; sesi tanya jawab hari ini adalah pujian yang bagus yang menggali mengapa beberapa perangkat lunak yang lebih lama (khususnya game) sepertinya tidak pernah berfungsi dengan benar ketika Anda mencoba menjalankannya pada perangkat keras modern.

Sesi Tanya Jawab hari ini datang kepada kami dengan izin dari SuperUser — subdivisi Stack Exchange, pengelompokan situs web Q&A berbasis komunitas.

Pertanyaan

Pembaca SuperUser TreyK ingin tahu mengapa game komputer lama berjalan sangat cepat pada perangkat keras baru:

Saya punya beberapa program lama. Saya menggunakan komputer Windows era 90-an dan mencoba menjalankannya di komputer yang relatif modern. Yang cukup menarik, mereka berlari dengan kecepatan sangat cepat - bukan, bukan kecepatan 60 frame per detik, melainkan jenis oh-my-god-the-character-is-walking-at-the-speed-of-sound dari cepat. Saya akan menekan tombol panah dan sprite karakter akan melintasi layar lebih cepat dari biasanya. Kemajuan waktu dalam permainan itu terjadi jauh lebih cepat dari yang seharusnya. Bahkan ada program yang dibuat untuk memperlambat CPU Anda sehingga game-game ini sebenarnya dapat dimainkan.

Saya pernah mendengar bahwa ini terkait dengan permainan tergantung pada siklus CPU, atau sesuatu seperti itu. Pertanyaan saya adalah:

  • Mengapa game lama melakukan ini, dan bagaimana mereka bisa lolos?
  • Bagaimana game yang lebih baru tidak melakukan ini dan berjalan secara independen dari frekuensi CPU?

Jadi bagaimana ceritanya? Mengapa sprite di game-game lama menyala di layar begitu cepat sehingga game tidak bisa dimainkan?

Jawabannya

Kontributor SuperUser JourneymanGeek menguraikannya:

Saya percaya mereka menganggap jam sistem akan berjalan pada kecepatan tertentu, dan terikat pada timer internal mereka ke laju jam itu. Sebagian besar gim ini mungkin berjalan pada DOS, dan merupakan mode nyata (dengan akses perangkat keras langsung dan lengkap) dan menganggap 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 yang pintar berdasarkan asumsi-asumsi itu termasuk menghemat sedikit sumber daya dengan tidak menulis loop waktu internal di dalam program. Mereka juga mengambil daya prosesor sebanyak yang mereka bisa - yang merupakan ide yang baik di masa-masa chip yang lambat dan sering didinginkan secara pasif!

Awalnya satu cara untuk mengatasi kecepatan prosesor yang berbeda adalah tombol Turbo tua yang baik (yang memperlambat sistem Anda). Aplikasi modern dalam mode terproteksi dan OS cenderung mengelola sumber daya - mereka tidak akan mengizinkan aplikasi DOS (yang berjalan di NTVDM pada sistem 32-bit) menggunakan semua prosesor dalam banyak kasus. Singkatnya, OS menjadi lebih pintar, seperti halnya API.

Sangat berdasarkan dari panduan ini pada Oldskool PC di mana logika dan memori mengecewakan saya - ini adalah bacaan yang bagus, dan mungkin masuk lebih dalam ke "mengapa".

Hal-hal seperti CPUkiller menggunakan sumber daya sebanyak mungkin untuk "memperlambat" sistem Anda, yang tidak efisien. Anda akan lebih baik menggunakan DOSBox untuk mengatur kecepatan jam yang dilihat aplikasi Anda.

Jika Anda ingin tahu tentang bagaimana kode aktual diimplementasikan dalam permainan komputer awal (dan mengapa mereka beradaptasi sangat buruk untuk sistem modern tanpa sandboxed dalam semacam program emulasi), kami juga menyarankan untuk memeriksa rincian panjang tapi menarik dari ini. proses dalam jawaban SuperUser lain.


Punya sesuatu untuk ditambahkan ke penjelasan? Berbunyi dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang mengerti teknologi lainnya? Lihat utas diskusi lengkap di sini.

Pilihan Editor