16Aug

Miks vanad mängud kulgevad liiga kaasaegsetele arvutitele?

Kui olete kunagi üritanud saada vintage arvutimäng üles ja töötab kaasaegses süsteemis, olete tõenäoliselt šokeeritud, kui kiire mäng läbi. Miks vanad mängud ei juhtu tänapäevases riistvaras?

Varem täna näitasime me, kuidas käitada vanemat tarkvara tänapäevastes arvutites;tänapäeva küsimuste ja vastuste seanss on kena kompliment, mis kaob, miks mõnda vanemat tarkvara( eriti mänge) ei tundu kunagi õigel ajal, kui proovite neid nüüdisaegse riistvara käitada.

Tänane küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.

Küsimus

SuperUser lugeja TreyK tahab teada, miks vanad arvutimängud uuel riistvaral hulluks töötavad:

Mul on mõned vanad programmid, mida ma eemaldasin varast 90ndate aastate Windowsi arvutist ja üritasin neid käitada suhteliselt kaasaegses arvutis. Huvitav on, et nad jooksid kiirel kiirusel - mitte, mitte 60 kaadrit sekundis, kiire, pigem oh-my-god-the-character-is-kõndimine kiirusegakiire. Ma vajutan nooleklahvi ja märgi sprite ekraanil kogu ekraanil tavalisest palju kiiremini. Mängu ajaline areng toimus palju kiiremini kui peaks. Protsessi aeglustamiseks on olemas isegi programme, nii et need mängud on tegelikult mängitavad.

Olen kuulnud, et see on mängu seotud sõltuvalt protsessori tsüklist või midagi sellist. Minu küsimused on:

  • Miks vanemad mängud seda teevad ja kuidas nad selle ära aitasid?
  • Kuidas uuemad mängud mitte seda teha ja töötavad sõltumatult CPU sagedusest?

Mis on lugu? Miks täpselt nii, et vanade mängude spredid ilmuvad ekraanile nii kiiresti, et mäng muutub mängimata?

Vastused

SuperUseri toetajale JourneymanGeek laguneb:

Usun, et nad arvasid, et süsteemi kella töötab kindlal kiirusel ja seotakse nende sisemiste taimeritega selle kellaajaga. Enamik neist mängudest ilmselt töötas DOS-is ja oli tõeline režiim( täieliku ja otsese riistvaralise ligipääsuga) ning eeldas, et kasutate arvutis iirc 4.77 MHz süsteemi ja mis tahes standardprotsessor, mille mudel käitus teiste süsteemidega nagu Amiga.

Nad võtsid ka nendele eeldustele tuginedes nutikaid otseteid, sealhulgas pisut ressursside säästmist, jättes sisestamata sisemise ajastamise loopid programmis. Nad võtsid ka nii palju protsessorivõimsusi kui nad võisid - mis oli korralik idee aeglase, tihti passiivselt jahutatud kiibi aegadel!

Esialgu oli üheks erinevaks protsessoripiiriks ringi liikumiseks hea vana Turbo nupp( mis aeglustas teie süsteemi).Kaasaegsed rakendused on kaitstud režiimis ja OS haldab ressursse - need ei võimaldaks -l lubada -l DOS-i rakendust( mis töötab NTVDM-is 32-bitisel süsteemil), et paljudel juhtudel kogu protsessori ära kasutada. Lühidalt öeldes on operatsioonisüsteemid nutikamad, nagu ka API-liidesed.

Oluliselt põhineb see juhend Oldskooli arvutil, kus loogika ja mälu mind ebaõnnestus - see on suurepärane lugemine ja ilmselt põhjalikumalt "miks".

Stuff nagu CPUkiller kasutab nii palju ressursse kui võimalik, et teie süsteem aeglustada, mis on ebaefektiivne. DOSBoxi abil saate oma rakenduse nägemiseks kella kiirust juhtida.

Kui tunnete huvi, kuidas tegelik kood rakendati varases arvutimängus( ja miks nad kohaneda nii nõrgalt kaasaegsete süsteemidega, ilma mingisugust emuleerimisprogrammist liivakasti), soovitame ka seda pikka, kuid huvitavat jaotust kontrollidaprotsessi teises SuperUseri vastuses.

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.