Úvodná » ako » Prečo staré hry fungujú príliš rýchlo na moderné počítače?

    Prečo staré hry fungujú príliš rýchlo na moderné počítače?

    Ak ste sa niekedy pokúšali získať moderné počítačové hry na moderný systém, pravdepodobne ste boli šokovaní rýchly Hra prebehla. Prečo staré hry nemajú kontrolu nad moderným hardvérom?

    Dnes sme vám ukázali, ako spustiť starší softvér na moderných počítačoch; dnešná otázka a odpoveď je pekný kompliment, ktorý sa zaoberá tým, prečo niektoré staršie softvéry (konkrétne hry) nikdy nefungujú správne, keď sa ich pokúsite spustiť na moderný hardvér.

    Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.

    Otázka

    Čítačka SuperUser TreyK chce vedieť, prečo staré počítačové hry rýchlo blázonia na novom hardvéri:

    Mám pár starých programov, ktoré som stiahol z počítača so systémom Windows v ranom deväťdesiatych rokoch a pokúsil sa ich spustiť na relatívne modernom počítači. Zaujímavé je, že prebehli s rýchlou rýchlosťou - nie, nie rýchlosť 60 snímok za sekundu, ale skôr ohmy-mojho boha-charakteru-je-rýchlosť-zvuk druhu rýchlo. Chcel by som stlačiť klávesu so šípkou a sprite postavy by zips po obrazovke oveľa rýchlejšie ako zvyčajne. Postup času v hre sa deje oveľa rýchlejšie ako by mal. Existujú dokonca aj programy na spomalenie vášho CPU, aby boli tieto hry skutočne hrateľné.

    Počul som, že to súvisí s hrou v závislosti od cyklov CPU alebo niečo takého. Moje otázky sú:

    • Prečo to robia staršie hry a ako sa s nimi dostali?
    • Ako novšie hry nie to spravte a spustite ho nezávisle od frekvencie procesora?

    Takže aký je príbeh? Prečo presne skriptovia v starých hrách plávajú po obrazovke tak rýchlo, že hra sa stáva nehrateľnou?

    Odpoveď

    Príspevok SuperUser JourneymanGeek to rozdelí:

    Verím, že predpokladali, že systémové hodiny budú bežať v určitej rýchlosti a že budú viazané vo svojich interných časovačoch na túto rýchlosť. Väčšina z týchto hier pravdepodobne bežala na DOS a boli skutočným režimom (s úplným priamym hardvérovým prístupom) a predpokladali ste, že ste bežali IIRC Systém 4,77 MHz pre počítače a akýkoľvek štandardný procesor, ktorý tento model bežal pre iné systémy ako Amiga.

    Tiež si vzali šikovné skratky založené na týchto predpokladoch vrátane uloženia trochu zdrojov tým, že do programu nezapisovali interné časovacie slučky. Tiež zaujali toľko procesorových síl, čo mohli - čo bolo slušným nápadom v dňoch pomalých, často pasívne chladených čipov!

    Spočiatku jeden spôsob, ako sa dostať okolo rôznej rýchlosti procesora bol dobrý starý tlačidlo Turbo (ktorý spomalil váš systém dole). Moderné aplikácie sú v chránenom režime a OS má tendenciu spravovať zdroje - nebudú dovoliť aplikácia DOS (ktorá beží v NTVDM na 32-bitovom systéme tak ako tak), aby v mnohých prípadoch použila celý procesor. Stručne povedané, operačné systémy sa stali múdrejšími, rovnako ako API.

    Silne založené z tejto príručky na PC Oldskool, kde mi logika a pamäť zlyhala - je to skvelé čítanie a pravdepodobne ide hlbšie do "prečo".

    Stuff ako CPUkiller využíva toľko zdrojov, ako je to možné na "spomalenie" vášho systému, čo je neefektívne. Budete lepšie používať DOSBox na správu rýchlosti hodín, ktorú vaša aplikácia vidí.

    Ak ste zvedaví, ako bol skutočný kód implementovaný v skorých počítačových hrách (a prečo sa tak zle prispôsobujú moderným systémom bez toho, aby boli v nejakom emulačnom programe umiestnení do piesku), taktiež by sme odporúčali preskúmať toto zdĺhavé, ale zaujímavé rozdelenie proces v inej odpovedi služby SuperUser.


    Máte niečo doplniť vysvetlenie? Vyjadrite sa v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.