16Aug

De ce jocurile vechi rulează prea rapid pe computerele moderne?

click fraud protection

Dacă ați încercat vreodată să obțineți un joc de computer de epocă în desfășurare pe un sistem modern, ați fost probabil șocați de modul în care rapid joc a fugit. De ce jocurile vechi se epuizează pe hardware-ul modern?

Astăzi am vă prezentat cum să rulați programe mai vechi pe computerele moderne;sesiunea de întrebări și răspunsuri de astăzi este un compliment frumos care se ocupă de faptul că unele programe vechi( în mod special jocuri) nu par să funcționeze corect atunci când încercați să le executați pe hardware modern.

Întrebarea de astăzi &Sesiunea de răspuns vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.

Întrebarea

Reader-ul SuperUser TreyK dorește să știe de ce jocurile vechi pe computer rulează nebun rapid pe hardware-ul nou:

Am câteva programe vechi am tras de pe un computer Windows începutul anilor 90 și am încercat să le execut pe un calculator relativ modern. Destul de interesant, au alergat cu o viteză rapidă - nu, nu cele 60 de cadre pe secundă de repede, ci mai degrabă tipul de oh-meu-dumnezeu-caracterul-este-de mers pe jos la viteza de sunetrapid. Aș apăsa o tastă săgeată și sprite-ul personajului va zip pe ecran mult mai repede decât în ​​mod obișnuit. Progresul în timp al jocului se întâmpla mult mai repede decât trebuia. Există chiar programe făcute pentru a vă încetini procesorul, astfel încât aceste jocuri să fie de fapt redate.

instagram viewer

Am auzit că acest lucru este legat de joc în funcție de ciclurile procesorului sau ceva de genul acesta.Întrebările mele sunt: ​​

  • De ce jocurile mai vechi fac acest lucru și cum au scăpat cu el?
  • Cum funcționează și mai puțin și funcționează independent de frecvența procesorului?

Deci, care este povestea? De ce exact scripturile din jocurile vechi blazeau pe ecran atât de repede încât jocul devine inutil?

Răspunsul contributor

SuperUser contributor JourneymanGeek îl descompune:

Cred că au presupus că ceasul sistemului ar rula la o anumită rată și legat în cronometrele lor interne la acea rată de ceas. Cele mai multe dintre aceste jocuri rulează probabil pe DOS și au fost mod real( cu acces hardware complet și direct) și au presupus că rulați un sistem iirc de 4.77 MHz pentru PC-uri și orice procesor standard pe care modelul le-a rulat pentru alte sisteme, cum ar fi Amiga.

Aceștia au făcut, de asemenea, comenzi rapide inteligente pe baza acestor presupuneri, inclusiv salvarea unui mic număr de resurse prin faptul că nu a scris bucle interne de sincronizare în cadrul programului. De asemenea, au preluat puterea de procesor cât au putut - ceea ce a fost o idee decentă în zilele unor jetoane lente, adesea pasive răcite!

Inițial, o modalitate de a obține diferite viteze ale procesorului a fost butonul bun Turbo vechi( care a încetinit sistemul dvs.).Aplicațiile moderne sunt în modul protejat și sistemul de operare tinde să gestioneze resursele - acestea nu ar permite să utilizeze o aplicație DOS ( care rulează oricum în NTVDM pe un sistem pe 32 de biți) pentru a folosi tot procesorul în multe cazuri. Pe scurt, sistemele de operare au devenit mai inteligente, la fel ca API-urile.

Se bazează puternic pe acest ghid pe PC-ul Oldskool unde logica și memoria mi-au eșuat - este o citire excelentă și, probabil, merge mai adânc în "de ce".

Lucrurile ca CPUkiller utilizează cât mai multe resurse posibil pentru a "încetini" sistemul dvs., ceea ce este ineficient. Ar fi mai bine să utilizați DOSBox pentru a gestiona viteza ceasului pe care îl vede aplicația.

Dacă sunteți curios de modul în care a fost implementat codul real în jocurile pe computer timpurii( și de ce se adaptează atât de prost la sistemele moderne, fără a fi împrăștiați cu un sandbox în cadrul unui program de emulare), sugerăm, de asemenea, să verificați această defalcare pe termen lungde proces într-un alt răspuns SuperUser.

Trebuie să adăugați ceva la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.