Domača » kako » Zakaj stare igre Run Way preveč hitro na sodobnih računalnikih?

    Zakaj stare igre Run Way preveč hitro na sodobnih računalnikih?

    Če ste kdaj poskusili dobiti staro računalniško igro in delovati na sodobnem sistemu, ste verjetno šokirani, kako hitro igra je tekla. Zakaj stare igre ne morejo nadzorovati moderne strojne opreme?

    Danes smo vam pokazali, kako izvajati starejšo programsko opremo na sodobnih računalnikih; današnje seje vprašanj in odgovorov je lep kompliment, ki razkriva, zakaj nekatere starejše programske opreme (zlasti igre) nikoli ne delujejo pravilno, ko jih poskušate zagnati na moderni strojni opremi.

    Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.

    Vprašanje

    Bralnik SuperUser TreyK želi vedeti, zakaj stare računalniške igre hitro delajo na novi strojni opremi:

    Imam nekaj starih programov, ki sem jih vzel iz zgodnjega 90-letnega računalnika Windows in jih poskušal voditi na sorazmerno sodobnem računalniku. Zanimivo je, da so hitro tekali s hitrimi hitrostmi - ne, ne s hitrostjo 60 sličic na sekundo, temveč z oh-my-god-the-character-is-walking-at-the-speed-of-sound. hitro. Jaz bi pritisnil tipko s puščico in znak 's sprite bi zip čez zaslon veliko hitreje kot običajno. Časovno napredovanje v igri se je dogajalo veliko hitreje, kot bi moralo. Obstajajo celo programi za upočasnitev procesorja, tako da so te igre dejansko možne.

    Slišal sem, da je to povezano z igro, odvisno od ciklov procesorja, ali nekaj takega. Moja vprašanja so:

    • Zakaj starejše igre to počnejo in kako so se s tem izognile?
    • Kako nove igre ne to storite in delajte neodvisno od frekvence CPE?

    Kaj je torej zgodba? Zakaj se pravzaprav spreti v starih igrah prelivajo po zaslonu tako hitro, da se igra ne more igrati?

    Odgovor

    Prispevek uporabnika SuperUser JourneymanGeek razčleni:

    Verjamem, da so predpostavili, da bo sistemska ura delovala z določeno hitrostjo in da bodo v svojih internih časovnikih vezali to uro. Večina teh iger je verjetno delovala na DOS-u in so bile v realnem načinu (s popolnim neposrednim dostopom do strojne opreme) in domnevali, da ste zagnali iirc 4.77 MHz sistem za osebne računalnike in kateri koli standardni procesor, ki ga je model uporabljal za druge sisteme, kot je Amiga.

    Prav tako so vzeli pametne bližnjice, ki temeljijo na teh predpostavkah, vključno z varčevanjem majhnega števila virov, tako da v programu niso pisali notranjih časovnih zank. Prav tako so vzeli toliko procesorske moči, kot bi lahko - kar je bila dobra ideja v dneh počasnih, pogosto pasivno hlajenih žetonov!

    Na začetku je bil eden od načinov, da se okrepi različna hitrost procesorja, dober stari Turbo gumb (ki je upočasnil vaš sistem). Sodobne aplikacije so v zaščitenem načinu, operacijski sistem pa upravlja z viri - ne bi dovolite aplikacijo DOS (ki se izvaja v NTVDM na 32-bitnem sistemu) za uporabo vseh procesorjev v mnogih primerih. Na kratko, operacijski sistemi so postali pametnejši, kot so API-ji.

    Težko temeljijo na tem priročniku na PC-ju Oldskoola, kjer me je logika in spomin odpovedala - to je odlično branje, in verjetno gre bolj globoko v »zakaj«.

    Stvari, kot je CPUkiller, porabijo čim več virov za »upočasnitev« vašega sistema, kar je neučinkovito. Bolje bi bilo uporabiti DOSBox za upravljanje hitrosti ure, ki jo vidi vaša aplikacija.

    Če vas zanima, kako je bila dejanska koda implementirana v zgodnjih računalniških igrah (in zakaj se tako slabo prilagajajo sodobnim sistemom, ne da bi bila preizkušena v nekakšnem emulacijskem programu), predlagamo tudi preverjanje te dolge, vendar zanimive razčlenitve v drugem odgovoru uporabnika.


    Imate kaj dodati pojasnilu? Zvok izključen v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.