Kāpēc vecās spēles darbojas pārāk ātri mūsdienu datoros?
Ja esat kādreiz mēģinājis iegūt vintage datoru spēli un darboties ar modernu sistēmu, jūs, iespējams, esat satriekts ātri spēle noritēja. Kāpēc vecās spēles beidzas ar modernās aparatūras kontroli?
Šodien mēs parādījām jums, kā palaist vecāku programmatūru mūsdienu datoros; Šodienas jautājumu un atbilžu sesija ir jauks kompliments, kas liek domāt, kāpēc dažas vecākas programmatūras (īpaši spēles) nekad nedarbojas pareizi, kad mēģināt tos palaist mūsdienīgā aparatūrā.
Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.
Jautājums
SuperUser lasītājs TreyK vēlas uzzināt, kāpēc vecās datorspēles strauji darbojas jaunā aparatūrā:
Man ir dažas vecās programmas, kuras es izvilka no 90-to gadu sākuma Windows datora un mēģināju palaist tos salīdzinoši modernā datorā. Interesanti, ka viņi skrēja ar strauju ātrumu - nē, ne ātrāk par 60 kadriem sekundē, drīzāk oh-my-god-the-character-is-walk-at-the-skaņas veida ātri. Es gribētu nospiest bulttaustiņu, un rakstzīmju sprite zip pāri ekrānam būtu daudz ātrāk nekā parasti. Laika gaita spēles laikā notika daudz ātrāk, nekā vajadzētu. Ir pat programmas, kas paredzētas, lai palēninātu CPU, lai šīs spēles būtu reāli atskaņojamas.
Esmu dzirdējis, ka tas ir saistīts ar spēli atkarībā no CPU cikliem vai kaut kas tamlīdzīgs. Mani jautājumi ir:
- Kāpēc vecākas spēles to dara, un kā viņi ar to aizgāja?
- Kā jaunākas spēles ne to darīt un palaist neatkarīgi no CPU frekvences?
Tātad, kas ir stāsts? Kāpēc tieši sprites vecajās spēlēs deg pa ekrānu tik ātri, ka spēle kļūst nepārspējama?
Atbilde
SuperUser ieguldītājs JourneymanGeek to pārtrauc:
Es uzskatu, ka viņi uzskatīja, ka sistēmas pulkstenis darbosies ar noteiktu ātrumu, un to iekšējie taimeri ir piesaistīti šim pulksteņa ātrumam. Lielākā daļa no šīm spēlēm, iespējams, skrēja DOS un bija reāls režīms (ar pilnīgu, tiešu aparatūras piekļuvi) un uzskatīja, ka jūs izmantojat a iirc 4,77 MHz sistēma datoriem un neatkarīgi no standarta procesora, ko šis modelis izmantoja citām sistēmām, piemēram, Amiga.
Viņi arī izmantoja gudrus īsceļus, kas balstījās uz šiem pieņēmumiem, tostarp ietaupot nelielu resursu daudzumu, nerakstot iekšējās laika cilpas programmā. Viņi arī izmantoja tikpat daudz procesora jaudas, kā tas bija iespējams - tas bija pienācīga ideja lēnas, bieži pasīvi atdzesētas mikroshēmas dienās.!
Sākotnēji viens veids, kā apiet dažādus procesora ātrumus, bija labā vecā Turbo poga (kas palēnināja sistēmu). Mūsdienīgas lietojumprogrammas ir aizsargātā režīmā, un operētājsistēma mēdz pārvaldīt resursus - viņi to nedarītu atļaut DOS lietojumprogramma (kas jebkurā gadījumā darbojas NTVDM 32 bitu sistēmā), lai daudzos gadījumos izmantotu visu procesoru. Īsumā, OS ir gudrākas, tāpat kā API.
Ļoti lielā mērā balstās uz šo rokasgrāmatu Oldskool datorā, kur loģika un atmiņa man neizdevās - tas ir lielisks lasījums, un, iespējams, iet dziļāk „kāpēc”.
Tādas lietas kā CPUkiller izmanto tik daudz resursu, cik vien iespējams, lai „palēninātu” jūsu sistēmu, kas ir neefektīva. Jūs labāk varētu izmantot DOSBox, lai pārvaldītu pulksteņa ātrumu, kādu jūsu lietojumprogramma redz.
Ja jūs zināt, kā faktiskais kods tika ieviests agrīnās datorspēlēs (un kāpēc viņi tik slikti pielāgojas mūsdienu sistēmām bez smilšu kastes kādā no emulācijas programmām), mēs arī iesakām pārbaudīt šo garo, bet interesanto sadalījumu procesu citā SuperUser atbildē.
Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.