Eski Oyunlar Modern Bilgisayarlarda Neden Çok Hızlı Çalışıyor?
Vintage bir bilgisayar oyunu başlatıp modern bir sistemde çalıştırmayı hiç denediyseniz, muhtemelen hızlı oyun koştu. Eski oyunlar neden modern donanımlar üzerinde kontrolden çıkıyor??
Bugün erken saatlerde size eski bilgisayarların modern bilgisayarlarda nasıl çalıştırılacağını gösterdik; bugünün soru-cevap seansı, bazı eski yazılımların (özellikle oyunların) modern donanım üzerinde çalıştırılmaya çalışıldığında neden düzgün çalışmadıklarını gösteren güzel bir iltifattır.
Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..
Soru
SuperUser okuyucu TreyK, eski bilgisayar oyunlarının neden yeni donanımda hızlı bir şekilde çalıştığını bilmek istiyor:
90'lı yılların başlarından kalma bir Windows bilgisayarını çıkardığım ve nispeten modern bir bilgisayarda çalıştırmaya çalıştığım birkaç eski programım var. İlginçtir ki, cayır cayır yanan bir hızla koşuyorlardı - hayır, saniye başına 60 kare hızlı değil, oh-tanrım-karakter-in-ses-hızında-tür-karakteri hızlı. Bir ok tuşuna basardım ve karakterin sprite normalden çok daha hızlı ekran boyunca zip olurdu. Oyunda zaman ilerlemesi olması gerekenden çok daha hızlı gerçekleşiyordu. İşlemcinizi yavaşlatmak için yapılan programlar bile vardır, böylece bu oyunlar gerçekten oynanabilir hale gelir.
Bunun CPU döngüsüne veya bunun gibi bir şeye bağlı olarak oyunla ilgili olduğunu duydum. Benim sorularım:
- Neden eski oyunlar bunu yapar ve bununla nasıl kaçtılar??
- Yeni oyunlar nasıl? değil Bunu yapın ve CPU frekansından bağımsız olarak çalıştırın?
Öyleyse hikaye nedir? Eski oyunlardaki sprite'lar neden ekran boyunca parlıyorlar ve oyun oynanamaz hale geliyor??
Cevap
SuperUser katılımcısı JourneymanGeek bunu bozuyor:
Sistem saatinin belirli bir hızda çalışacağını varsaydıklarına ve iç zamanlayıcılarını bu saat hızına bağlı olduklarına inanıyorum. Bu oyunların çoğu muhtemelen DOS'ta çalışıyordu ve gerçek modda (tam, doğrudan donanım erişimine sahip) çalıştığınızı ve iirc PC'ler için 4.77 MHz sistem ve bu model Amiga gibi diğer sistemler için çalışan standart işlemci ne olursa olsun.
Ayrıca, programın içine dahili zamanlama döngüleri yazarak küçük miktarda kaynak tasarrufu da dahil olmak üzere bu varsayımlara dayanarak akıllıca kısayollar aldılar. Ayrıca, olabildiğince çok işlemci gücü kullandılar - yavaş, genellikle pasif olarak soğutulmuş cips günlerinde iyi bir fikirdi.!
Başlangıçta, farklı işlemci hızlarında dolaşmanın bir yolu eski sistem butonlarındandı (sisteminizi yavaşlattı). Modern uygulamalar korumalı moddadır ve işletim sistemi kaynakları yönetme eğilimindedir. izin vermek İşlemcinin tamamını birçok durumda kullanmaya yarayan bir DOS uygulaması (zaten 32 bit sistemde NTVDM'de çalışıyor). Kısacası, işletim sistemleri API'ler gibi daha akıllı hale geldi.
Oldukça mantık ve hafızanın başarısız olduğu Oldskool PC'deki bu rehbere dayanıyor - bu harika bir okuma ve muhtemelen “neden” e daha derinlemesine gidiyor..
CPUkiller gibi şeyler sisteminizi “yavaşlatmak” için mümkün olduğunca fazla kaynak kullanır, bu da verimsizdir. Uygulamanızın gördüğü saat hızını yönetmek için DOSBox kullanarak daha iyi olursunuz..
Gerçek bilgisayar kodunun ilk bilgisayar oyunlarında nasıl uygulandığını merak ediyorsanız (ve neden bir tür öykünme programında sanallaştırılmadan modern sistemlere bu kadar zayıf adapte olduklarını) merak ediyorsanız, bu uzun ama ilginç bir dökümü gözden geçirmenizi öneririz. başka bir Süper Kullanıcı cevabındaki işlem.
Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.