Ja esat kādreiz mēģinājis iegūt vintage datoru spēli un darbojas modernā sistēmā, jūs, visticamāk, esat šokēti par to, kā to izdarītātri spēle ilga. Kāpēc vecajām spēlēm nav modernas aparatūras kontroles?
Šodien agrāk mēs parādījām, kā izmantot vecāku programmatūru mūsdienu datoros; Šodienas jautājumu un atbilžu sesija ir jauks kompliments, kas izrauj, kāpēc daži vecāki programmatūra (it īpaši spēles), šķiet, nedarbojas pareizi, kad mēģināt tos izmantot mūsdienu aparatūrā.
Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.
SuperUser lasītājs TreyK vēlas uzzināt, kāpēc vecās datorspēles strauji progresē jaunā aparatūrā:
Man ir dažas vecās programmas, kuras es izvilkušu agrīnā 90. gadu Windows datorā un mēģināju tos palaist uz diezgan modernu datoru. Interesanti, ka viņi skrēja strauji ātrāk - nē, ne 60 kadri sekundē, ne ātrāk, nekā drīzāk dvēseles raksturs-ejot pa ātrumu no skaņas veida ātri. Es gribētu nospiest bulttaustiņu, un rakstzīmju sprite pārāk daudz ekrānā parādīsies ātrāk nekā parasti. Laika gaita spēlē notiek daudz ātrāk nekā vajadzētu. Ir pat programmas, kas palēnina jūsu 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 tamlīdzīgi. Mani jautājumi ir šādi:
- Kāpēc vecākas spēles to dara un kā viņi ar to nokļūst?
- Kā jaunākas spēlesnē rīkojies un darbojas neatkarīgi no CPU frekvences?
Kāds ir stāsts? Kāpēc precīzi spēlē veco spēļu spriest pa visu ekrānu tik ātri, ka spēle kļūst neiespējama?
SuperUser ieguldītājs JourneymanGeek to pārtrauc:
Es uzskatu, ka viņi pieņēma, ka sistēmas pulkstenis darbosies ar noteiktu ātrumu un savos iekšējos taimeros saistītos ar šo pulksteņa ātrumu. Iespējams, ka lielākā daļa no šīm spēlēm tika izmantotas DOS un bija reālā režīmā (ar pilnīgu tiešu aparatūras piekļuvi), un tika pieņemts, ka jūs izmantojatiirc 4,77 MHz sistēma datoriem un jebkuram standarta procesoram, kuru modelis darbojas citās sistēmās, piemēram, Amiga.
Pamatojoties uz šiem pieņēmumiem, viņi gāja arī gudri saīsnes, tostarp ietaupot mazliet resursu, neuzrakstot iekšējās laika cilpas programmā. Viņi arī uzņēma tik daudz procesoru jaudas, kā viņi varēja - tas bija pienācīgas idejas lēnu, bieži pasīvi atdzesētu žetonu laikā!
Sākotnēji viens no veidiem, kā apiet dažādu procesora ātrumu, bija laba vecā Turbo poga (kas palēnināja jūsu sistēmas darbību). Mūsdienu lietojumprogrammas ir aizsargātās režīmā, un OS mēdz pārvaldīt resursus - tie nebūtuatļaut DOS lietojumprogramma (kas jebkurā gadījumā darbojas NTVDM 32 bitu sistēmā) daudzos gadījumos izmanto visu procesoru. Īsāk sakot, operētājsistēmas ir kļuvušas gudrākas, tāpat kā API.
Pamatojoties uz Oldskool datora pamatnostādnēm, kur loģika un atmiņa man neizdevās, tas ir lielisks lasījums un, iespējams, dziļāk padziļinās "kāpēc".
Stuff, piemēram, CPUkiller, izmanto tik daudz resursu, cik iespējams, lai jūsu sistēma tiktu "lēna", kas ir neefektīva. Jums būs labāk izmantot DOSBox, lai pārvaldītu pulksteņa ātrumu, ko lietojumprogramma redz.
Ja jums ir interese par to, kā faktiskais kods tika ieviests agrākajās datorspēlēs (un kāpēc viņi tik ļoti slikti pielāgojušies mūsdienu sistēmām, neizmantojot kaut kādu emulācijas programmu), mēs arī iesakām izpētīt šo ilgstošo, bet interesantu iedalījumu process citā SuperUser atbildē.
Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.