Domovská » jak » Proč staré hry běží příliš rychle na moderních počítačích?

    Proč staré hry běží příliš rychle na moderních počítačích?

    Pokud jste se někdy pokoušeli získat moderní počítačový systém, jste pravděpodobně šokováni rychle Hra běžela. Proč staré hry nemají kontrolu nad moderním hardwarem?

    Již dříve jsme vám ukázali, jak spustit starší software na moderních počítačích; dnešní zasedání s otázkami a odpověďmi je příjemným komplimentem, který se zabývá tím, proč některé starší software (konkrétně hry) nikdy nefungují správně, když se pokusíte spustit je na moderním hardware.

    Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.

    Otázka

    Čtečka SuperUser TreyK chce vědět, proč se staré počítačové hry rychle šíří na novém hardware:

    Mám několik starých programů, které jsem stahoval z počítače se systémem Windows z počátku devadesátých let a pokusil jsem se je spustit na poměrně moderním počítači. Zajímavé bylo, že se rozběhli rychlým tempem - ne, nikoliv rychlostí 60 snímků za sekundu, spíše jako ohmy-bůh-charakter-je-chod-na-rychlosti-zvuk druhu rychle. Chtěl bych stisknout klávesu se šipkou a skript charakteru by zip po obrazovce mnohem rychleji než obvykle. Časový průběh ve hře se děje mnohem rychleji, než by měl. Existují dokonce i programy pro zpomalení vašeho CPU, takže tyto hry jsou skutečně hratelné.

    Slyšel jsem, že se to týká hry v závislosti na cyklech CPU nebo něco takového. Moje otázky jsou:

    • Proč to dělají starší hry a jak se s nimi dostali?
    • Jak novější hry ne dělat to a spustit nezávisle na frekvenci CPU?

    Tak co je to příběh? Proč přesně dělají skřítci ve starých hrách po obrazovce tak rychle, že hra je nehratelná?

    Odpověď

    Příspěvek SuperUser JourneymanGeek rozděluje:

    Věřím, že předpokládali, že systémové hodiny by běhly určitou rychlostí a aby byly svázány ve svých interních časovačích s touto rychlostí. Většina z těchto her pravděpodobně běžela na DOSu a byly skutečné (s úplným přímým přístupem k hardwaru) a předpokládali jste, že běžíte iirc 4,77 MHz pro počítače a jakýkoli standardní procesor, který tento model běžel pro jiné systémy, jako je Amiga.

    Oni také vzali chytré zkratky na základě těchto předpokladů, včetně ukládání drobného množství zdrojů tím, že nezapisuje interní časové smyčky uvnitř programu. Oni také vzali tolik procesor moci jak oni mohli - což byl slušný nápad ve dnech pomalých, často pasivně ochlazených čipů!

    Zpočátku jeden způsob, jak obejít různé rychlosti procesoru, bylo staré dobré tlačítko Turbo (které zpomalilo váš systém dolů). Moderní aplikace jsou v chráněném režimu a OS mají tendenci spravovat zdroje - ne dovolit aplikace DOS (která běží v NTVDM na 32bitovém systému), aby v mnoha případech využila celý procesor. Stručně řečeno, operační systémy se staly chytřejšími, stejně jako API.

    Silně založené na této příručce na PC Oldskool, kde mi logika a paměť selhala - je to skvělé čtení a pravděpodobně jde do hloubky do "proč".

    Materiály, jako je CPUkiller, využívají co nejvíce prostředků k "zpomalení" vašeho systému, což je neúčinné. Budete lépe používat DOSBox ke správě rychlosti hodin, kterou vaše aplikace vidí.

    Pokud jste zvědaví na to, jak byl skutečný kód implementován v raných počítačových hrách (a proč se tak špatně přizpůsobují moderním systémům, aniž by byli v nějakém emulačním programu v pískoviště), také doporučujeme prověřit tento zdlouhavý, ale zajímavý rozpis zpracování v jiné odpovědi služby SuperUser.


    Musíte něco přidat k vysvětlení? Vypadněte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.