Jika Anda pernah mencoba untuk mendapatkan game komputer kuno dan berjalan pada sistem modern, Anda mungkin terkejut melihat caranyacepat permainannya berjalan. Mengapa game lama kehabisan kendali pada perangkat keras modern?
Sebelumnya hari ini kami menunjukkan kepada Anda cara menjalankan perangkat lunak yang lebih lama pada komputer modern; sesi tanya jawab hari ini adalah pujian bagus yang menggali mengapa beberapa perangkat lunak yang lebih tua (khususnya game) tidak pernah berfungsi dengan baik ketika Anda mencoba untuk menjalankannya pada perangkat keras modern.
Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-sub divisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.
Pembaca SuperUser, TreyK ingin tahu mengapa game komputer lama berjalan dengan cepat di perangkat keras baru:
Saya punya beberapa program lama saya melepas komputer Windows era 90an dan mencoba menjalankannya pada komputer yang relatif modern. Yang cukup menarik, mereka berlari dengan kecepatan super cepat - tidak, bukan 60 frame per detik jenis cepat, 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 zip di layar lebih cepat dari biasanya. Perkembangan waktu dalam game itu terjadi jauh lebih cepat dari seharusnya. Bahkan ada program yang dibuat untuk memperlambat CPU Anda sehingga game ini benar-benar dapat dimainkan.
Saya pernah mendengar bahwa ini terkait dengan game tergantung pada siklus CPU, atau sesuatu seperti itu. Pertanyaan saya adalah:
- Mengapa game yang lebih tua melakukan ini, dan bagaimana mereka lolos begitu saja?
- Bagaimana game yang lebih barutidak melakukan ini dan berjalan secara independen dari frekuensi CPU?
Jadi bagaimana ceritanya? Mengapa sprite di game lama menyala di layar sehingga game menjadi tidak dapat dimainkan?
Kontributor SuperUser JourneymanGeek mengelompokkannya:
Saya percaya mereka menganggap jam sistem akan berjalan pada tingkat tertentu, dan terikat dalam pengatur waktu internal mereka ke tingkat jam tersebut. Sebagian besar game ini mungkin berjalan di DOS, dan merupakan mode nyata (dengan akses perangkat keras langsung yang lengkap) dan diasumsikan Anda menjalankan aiirc Sistem 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 menyimpan sedikit sumber daya dengan tidak menulis loop pengatur waktu internal di dalam program. Mereka juga mengambil kekuatan prosesor sebanyak yang mereka bisa - yang merupakan ide yang baik pada hari-hari chip lambat, sering pasif didinginkan!
Awalnya satu cara untuk mendapatkan kecepatan prosesor yang berbeda adalah tombol Turbo lama yang baik (yang memperlambat sistem Anda). Aplikasi modern berada dalam mode terlindungi dan OS cenderung mengelola sumber daya - mereka tidak akanmengizinkan sebuah aplikasi DOS (yang berjalan di NTVDM pada sistem 32-bit) untuk menggunakan semua prosesor dalam banyak kasus. Singkatnya, OS telah menjadi lebih pintar, seperti halnya API.
Sangat didasarkan dari panduan ini di PC Oldskool di mana logika dan memori gagal saya - itu adalah bacaan yang hebat, dan mungkin lebih dalam "mengapa".
Hal-hal seperti CPUkiller menggunakan sebanyak mungkin sumber daya untuk “memperlambat” sistem Anda, yang tidak efisien. Anda akan lebih baik menggunakan DOSBox untuk mengatur kecepatan clock yang dilihat aplikasi Anda.
Jika Anda ingin tahu tentang bagaimana kode yang sebenarnya diimplementasikan pada game komputer awal (dan mengapa mereka beradaptasi dengan sangat buruk ke sistem modern tanpa sandbox dalam semacam program emulasi), kami juga akan menyarankan untuk melihat perincian yang panjang tetapi menarik ini. proses dalam jawaban Superuser lain.
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.