If-Koubou

Zašto stare igre voze prebrzo na modernim računalima?

Zašto stare igre voze prebrzo na modernim računalima? (Kako da)

Ako ste ikad pokušali dobiti vintage računalnu igru ​​gore i trčanje na modernom sustavu, vjerojatno ste bili šokirani kakobrzo igra je vodila. Zašto stare igre ostanu bez kontrole nad modernim hardverom?

Ranije smo vam pokazali kako upravljati starijim softverom na suvremenim računalima; današnja pitanja o pitanjima i odgovorima predstavlja lijepi kompliment koji ukazuje na to zašto neki stariji softver (posebice igre) nikad ne čini ispravnim kada ih pokušate pokrenuti na suvremenom hardveru.

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Pitanje

SuperUser čitač TreyK želi znati zašto stare računalne igre luduju brzo na novom hardveru:

Imam nekoliko starih programa koje sam izvadio iz ranog 90-ih Windows računala i pokušao ih pokrenuti na relativno modernom računalu. Zanimljivo je da su trčali u plamenu brzu brzinu - ne, a ne 60 sličica u sekundi brze, a to je brzina-zvuk poput tipa oh-my-god-the-character brzo. Ja bih pritisnula tipku sa strelicom i znak sprite bi zip preko ekrana mnogo brže nego inače. Prolazak vremena u igri se događa mnogo brže nego što bi trebao. Postoje čak i programi za usporavanje vašeg CPU-a tako da se te igre zapravo mogu igrati.

Čuo sam da se to odnosi na igru ​​ovisno o ciklusima procesora, ili nešto slično. Moja su pitanja:

  • Zašto to rade starije igre, i kako su se s njom udaljavale?
  • Kako novije igrene to učiniti i pokrenuti neovisno o CPU frekvenciji?

Pa što je to priča? Zašto točno špijuni u starim igrama plamenju preko zaslona tako brzo igra postaje nemoguće igrati?

Odgovor

JourneymanGeek šalje ga SuperUser suradnikom:

Vjerujem da su pretpostavili da će sat sustava raditi na određenoj brzini i povezati svoje interne timove s brzinom sata. Većina tih igara vjerojatno je pokrenuta na DOS-u, a bila su pravi način rada (s potpunim, izravnim pristupom hardveru) i pretpostavio je da koristite aIIRC 4.77 MHz sustav za osobna računala i bilo koji standardni procesor koji je model pokrenut za druge sustave kao što je Amiga.

Također su se pametno prebacili na temelju tih pretpostavki, uključujući spremanje sitnih resursa jer ne pišu internu vremensku petlju unutar programa. Također su preuzeli onoliko snage procesora koliko su mogli - što je bila pristojna ideja u danima spora, često pasivno hlađenih žetona!

U početku je jedan od načina da se približe brzini procesora bio dobar stari gumb Turbo (koji je usporavao vaš sustav). Suvremene aplikacije su u zaštićenom načinu rada i OS ima tendenciju upravljanja resursima - oni to ne bidopustiti DOS aplikaciju (koja se u svakom slučaju izvodi u NTVDM na 32-bitnom sustavu) u mnogim slučajevima koristiti sve procesore. Ukratko, OS-ovi su postali pametniji, kao i API-ji.

Žestoko se temeljio na ovom vodiču na Oldskool PC-u gdje me logika i memorija nisu uspjeli - to je sjajno čitanje, i vjerojatno više ide dublje u "zašto".

Stvari poput CPUKiller koriste se što je više resursa moguće "usporiti" vaš sustav, što je neučinkovito. Bilo bi bolje koristiti DOSBox za upravljanje brzinom sata koju vaša prijava vidi.

Ako ste znatiželjni o tome kako je stvarni kôd implementiran u ranijim računalnim igrama (i zašto se tako slabo prilagođavaju modernim sustavima, a da se ne miješaju u neku vrstu emulacijskog programa), predlažemo i provjeru ove dugotrajne, ali zanimljive kvarove proces u drugom SuperUser odgovoru.

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.