Kotisivu » miten » Miksi vanhat pelit kulkevat liian nopeasti nykyaikaisiin tietokoneisiin?

    Miksi vanhat pelit kulkevat liian nopeasti nykyaikaisiin tietokoneisiin?

    Jos olet koskaan yrittänyt saada vintage-tietokonepelin ja käyttää sitä nykyaikaisessa järjestelmässä, olet todennäköisesti järkyttynyt siitä, miten nopeasti peli juoksi. Miksi vanhat pelit loppuvat nykyaikaisen laitteiston valvonnasta?

    Aiemmin esitimme sinulle, miten vanhemmat ohjelmistot ajetaan nykyaikaisissa tietokoneissa; tämän päivän kysely- ja vastausistunto on mukava kohteliaisuus, joka kaivaa, miksi jotkut vanhemmat ohjelmistot (erityisesti pelit) eivät näytä toimivan oikein, kun yrität käyttää niitä nykyaikaisella laitteistolla.

    Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..

    Kysymys

    SuperUser-lukija TreyK haluaa tietää, miksi vanhoja tietokonepelejä pelataan nopeasti uudessa laitteistossa:

    Minulla on muutamia vanhoja ohjelmia, jotka vedin pois 90-luvun alkupuolen Windows-tietokoneesta ja yritin käyttää niitä suhteellisen modernissa tietokoneessa. Mielenkiintoista on, että he juoksivat hehkuttavalla nopeudella - ei, ei 60 kuvaa sekunnissa, pikemminkin oh-my-god-the-character-is-walk-at-the-sound-tyyppinen nopeasti. Painan nuolinäppäintä, ja hahmon sprite olisi zip koko ruudun normaalia nopeammin. Ajan eteneminen pelissä tapahtui paljon nopeammin kuin pitäisi. On jopa ohjelmia, joiden avulla voit hidastaa CPU: ta niin, että nämä pelit ovat todella pelattavissa.

    Olen kuullut, että tämä liittyy peliin CPU-sykleistä riippuen tai jotain sellaista. Kysymykseni ovat:

    • Miksi vanhemmat pelit tekevät tämän ja miten he pääsivät pois siitä?
    • Miten uudemmat pelit ei tee tämä ja suorita CPU-taajuudesta riippumatta?

    Joten mikä on tarina? Miksi täsmällisesti vanhoissa peleissä sprites palaa ruudulla niin nopeasti, että peli muuttuu pelaamattomaksi?

    Vastaus

    SuperUserin avustaja JourneymanGeek rikkoo sen:

    Uskon, että he olettivat, että järjestelmän kello kulkee tietyllä nopeudella ja sidottu niiden sisäisiin ajastimiin kyseiseen kellonopeuteen. Suurin osa näistä peleistä oli todennäköisesti DOS: ssa, ja ne olivat todellisia (täydellisiä, suoria laitteistopalveluja) ja olettivat käyttäneet a IIRC 4,77 MHz: n järjestelmä PC: ille ja riippumatta tavallisesta prosessorista, jota malli käytti muille järjestelmille, kuten Amigalle.

    He ottivat myös näihin oletuksiin perustuvia älykkäitä pikakuvakkeita, mukaan lukien pienen resurssin säästämisen kirjoittamatta sisäisiä ajoitussilmukoita ohjelman sisällä. He ottivat myös niin paljon prosessoritehoa kuin ne voisivat - mikä oli kunnollinen ajatus hitaiden, usein passiivisesti jäähdytettyjen pelimerkkien päivinä!

    Aluksi yksi tapa kiertää erilaista prosessorin nopeutta oli hyvä vanha Turbo-painike (joka hidasti järjestelmää alas). Nykyaikaiset sovellukset ovat suojatussa tilassa ja käyttöjärjestelmä pyrkii hallitsemaan resursseja sallia DOS-sovellus (joka on joka tapauksessa käynnissä NTVDM: ssä 32-bittisessä järjestelmässä) käyttää kaikkia prosessoreita monissa tapauksissa. Lyhyesti sanottuna, käyttöjärjestelmät ovat saaneet älykkäämpiä, kuten myös API: t.

    Tämä opas perustuu voimakkaasti Oldskool PC: hen, jossa logiikka ja muisti epäonnistui - se on loistava, ja luultavasti menee syvemmälle ”miksi”.

    CPUkillerin kaltaiset tavarat käyttävät mahdollisimman paljon resursseja "hidastamaan" järjestelmääsi, mikä on tehotonta. Sinun olisi parempi käyttää DOSBoxia hallitsemaan kellonopeutta, jota sovelluksesi näkee.

    Jos olet kiinnostunut siitä, miten varsinainen koodi otettiin käyttöön varhaisissa tietokonepeleissä (ja miksi ne mukautuvat niin huonosti nykyaikaisiin järjestelmiin ilman hiekkalaatikkoon jonkinlaista emulointiohjelmaa), suosittelemme myös tarkistaa tämän pitkä, mutta mielenkiintoinen erittely prosessi toisessa SuperUser-vastauksessa.


    Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.