Homepage » come » Perché i vecchi giochi scorrono troppo velocemente sui computer moderni?

    Perché i vecchi giochi scorrono troppo velocemente sui computer moderni?

    Se hai mai provato a far funzionare un gioco per computer vintage su un sistema moderno, probabilmente sei rimasto scioccato da come veloce il gioco è finito. Perché i vecchi giochi sono fuori controllo su hardware moderno?

    Oggi abbiamo mostrato come eseguire software obsoleti su computer moderni; la sessione di domande e risposte di oggi è un bel complimento che spiega perché alcuni vecchi software (in particolare i giochi) non sembrano funzionare correttamente quando si tenta di eseguirli su hardware moderno.

    La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.

    La domanda

    Lettore SuperUser TreyK vuole sapere perché i vecchi giochi per computer vanno pazzamente veloci sul nuovo hardware:

    Ho alcuni vecchi programmi che ho tirato fuori da un computer Windows dei primi anni '90 e ho cercato di eseguirli su un computer relativamente moderno. È interessante notare che correvano ad una velocità velocissima - no, non i 60 fotogrammi al secondo di tipo veloce, piuttosto il tipo oh-my-god-the-character-è-walking-at-the-speed-of-sound di veloce. Premevo un tasto freccia e lo sprite del personaggio sfrecciava sullo schermo molto più velocemente del normale. La progressione del tempo nel gioco stava accadendo molto più velocemente di quanto avrebbe dovuto. Esistono anche programmi per rallentare la CPU in modo che questi giochi siano effettivamente riproducibili.

    Ho sentito che questo è legato al gioco a seconda dei cicli della CPU, o qualcosa del genere. Le mie domande sono:

    • Perché i vecchi giochi fanno questo, e come hanno fatto a farla franca?
    • Come fanno i nuovi giochi non fai questo ed esegui indipendentemente dalla frequenza della CPU?

    Allora, qual è la storia? Perché esattamente gli sprite nei vecchi giochi divampano sullo schermo così velocemente che il gioco diventa ingiocabile?

    La risposta

    Il collaboratore di SuperUser JourneymanGeek lo analizza:

    Credo che presumessero che l'orologio di sistema avrebbe funzionato a una determinata velocità e legato ai loro timer interni a quella frequenza. La maggior parte di questi giochi funzionava probabilmente su DOS, ed erano in modalità reale (con accesso hardware diretto completo) e si presupponeva che stessimo eseguendo a IIRC Sistema a 4,77 MHz per PC e qualsiasi processore standard utilizzato da quel modello per altri sistemi come Amiga.

    Hanno anche preso scorciatoie intelligenti basate su queste ipotesi incluso il salvataggio di un piccolo frammento di risorse non scrivendo cicli interni di temporizzazione all'interno del programma. Inoltre hanno assorbito tutta la potenza del processore che potevano, il che era un'idea decente nei giorni di chip lenti, spesso passivamente raffreddati!

    Inizialmente un modo per aggirare la diversa velocità del processore era il buon vecchio pulsante Turbo (che rallentava il sistema). Le moderne applicazioni sono in modalità protetta e il sistema operativo tende a gestire le risorse - non lo farebbero permettere un'applicazione DOS (che comunque è in esecuzione in NTVDM su un sistema a 32 bit) per utilizzare tutto il processore in molti casi. In breve, i sistemi operativi sono diventati più intelligenti, così come le API.

    Molto basato su questa guida su Oldskool PC dove la logica e la memoria mi hanno fallito: è una lettura fantastica, e probabilmente va più in profondità nel "perché".

    Roba come CPUkiller consuma quante più risorse possibile per "rallentare" il tuo sistema, il che è inefficiente. Faresti meglio a usare DOSBox per gestire la velocità di clock che l'applicazione vede.

    Se sei curioso di sapere come è stato implementato il codice reale nei primi giochi per computer (e perché si adattano così male ai sistemi moderni senza essere sandbox in una sorta di programma di emulazione), ti suggeriamo anche di dare un'occhiata a questa lunga ma interessante ripartizione di elaborare in un'altra risposta SuperUser.


    Hai qualcosa da aggiungere alla spiegazione? Sound off nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.