Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2017-02-20 19:54:46.0 alle 2017-02-20 19:54:46.0
    Giochi vintage: aumenti la frequenza di clock e il gioco impazzisce
    Ho notato che ci sono giochi vintage che se eseguiti a frequenza di clock della CPU maggiore rispetto a quella della macchina per cui sono stati sviluppati, diventano più veloci del normale, nel senso che il tempo si restringe (gli orologi nel gioco scorrono più velocemente del normale).

    In teoria una frequenza di clock maggiore della CPU dovrebbe comportare (in assenza di colli di bottiglia) un migliore frame rate e una minore latenza nelle operazioni I/O, ma non una compressione del tempo.

    A cosa è dovuto questo aspetto di certi giochi vintage? Come li hanno programmati?
    • Avatar
      ☺
      Scritto da
      Wakko Warner
      Wakkus Horribilis
      il 2017-02-20 20:15:03.0 alle 2017-02-20 20:15:03.0
      Trollate totali: 6779
      Re: Giochi vintage: aumenti la frequenza di clock e il gioco impazzisce
      Scritto da:
      > Ho notato che ci sono giochi vintage che se eseguiti a frequenza di clock della CPU maggiore rispetto a quella della macchina per cui sono stati sviluppati, diventano più veloci del normale, nel senso che il tempo si restringe (gli orologi nel gioco scorrono più velocemente del normale).
      >
      > In teoria una frequenza di clock maggiore della CPU dovrebbe comportare (in assenza di colli di bottiglia) un migliore frame rate e una minore latenza nelle operazioni I/O, ma non una compressione del tempo.
      >
      > A cosa è dovuto questo aspetto di certi giochi vintage? Come li hanno programmati?

      Nei primi giochi si dava per scontato che quello fosse il clock perché era il clock di quella data piattaforma. L'assunzione funzionava bene ai tempi degli MSX, dei C64, ecc perché il clock era fissato nelle specifiche e quindi si dava per scontato che non sarebbe cambiato.

      Con l'arrivo degli x86 (ma anche di altre piattaforme che poi sono progredite) molti sono partiti con assunzioni simili o variazioni sul tema e quindi davano per scontato che certe routine impiegassero un determinato tempo per eseguirsi. Quindi nel loop del gioco non c'erano delay (anche perché a quelle velocità non servivano) oppure c'erano delay ma erano basati su certi assunti che con l'aumentare del clock sono (prima o poi) diventati falsi. Perciò ora hai un loop che invece di ripetersi 10 volte al secondo si ripete 100, di conseguenza tutto è 10 volte più veloce.

      In alcuni casi ad essere fallata era proprio la procedura di delay fornita dal linguaggio, come nel caso del Turbo Pascal. In questo caso specifico per la procedura di delay veniva inizializzata all'avvio del programma misurando il tempo impiegato da determinate istruzioni assembly... quando i clock hanno superato i, credo, 200MHz, il tempo misurato era così piccolo da essere approssimato a 0 e questo faceva crasciare qualunque programma scritto in Turbo Pascal che usasse la libreria CRT (mi sembra) che appunto cercava di inizializzare la funzione di delay in questo modo finendo ad un certo punto in una divisione per zero.
      Gli Svizzeri non sono tutti ricchi - Mattia
      • Avatar
        Scritto da
        Non Autenticato
        il 2017-02-20 20:32:14.0 alle 2017-02-20 20:32:14.0
        Re: Giochi vintage: aumenti la frequenza di clock e il gioco impazzisce
        Scritto da: Wakko Warner
        > Scritto da:
        > > Ho notato che ci sono giochi vintage che se eseguiti a frequenza di clock della CPU maggiore rispetto a quella della macchina per cui sono stati sviluppati, diventano più veloci del normale, nel senso che il tempo si restringe (gli orologi nel gioco scorrono più velocemente del normale).
        > >
        > > In teoria una frequenza di clock maggiore della CPU dovrebbe comportare (in assenza di colli di bottiglia) un migliore frame rate e una minore latenza nelle operazioni I/O, ma non una compressione del tempo.
        > >
        > > A cosa è dovuto questo aspetto di certi giochi vintage? Come li hanno programmati?
        >
        > Nei primi giochi si dava per scontato che quello fosse il clock perché era il clock di quella data piattaforma. L'assunzione funzionava bene ai tempi degli MSX, dei C64, ecc perché il clock era fissato nelle specifiche e quindi si dava per scontato che non sarebbe cambiato.
        >
        > Con l'arrivo degli x86 (ma anche di altre piattaforme che poi sono progredite) molti sono partiti con assunzioni simili o variazioni sul tema e quindi davano per scontato che certe routine impiegassero un determinato tempo per eseguirsi. Quindi nel loop del gioco non c'erano delay (anche perché a quelle velocità non servivano) oppure c'erano delay ma erano basati su certi assunti che con l'aumentare del clock sono (prima o poi) diventati falsi. Perciò ora hai un loop che invece di ripetersi 10 volte al secondo si ripete 100, di conseguenza tutto è 10 volte più veloce.

        Questo lo intuivo. La domanda corretta in realtà era: come hanno fatto a risolvere il problema nei giochi nuovi, che devono funzionare correttamente su frequenze di clock diverse.

        • Avatar
          ☺
          Scritto da
          avvelentani
          Cubicolario
          il 2017-02-20 20:41:16.0 alle 2017-02-20 20:41:16.0
          Trollate totali: 18184
          Re: Giochi vintage: aumenti la frequenza di clock e il gioco impazzisce
          Scritto da:
          > Scritto da: Wakko Warner
          > > Scritto da:
          > > > Ho notato che ci sono giochi vintage che se eseguiti a frequenza di clock della CPU maggiore rispetto a quella della macchina per cui sono stati sviluppati, diventano più veloci del normale, nel senso che il tempo si restringe (gli orologi nel gioco scorrono più velocemente del normale).
          > > >
          > > > In teoria una frequenza di clock maggiore della CPU dovrebbe comportare (in assenza di colli di bottiglia) un migliore frame rate e una minore latenza nelle operazioni I/O, ma non una compressione del tempo.
          > > >
          > > > A cosa è dovuto questo aspetto di certi giochi vintage? Come li hanno programmati?
          > >
          > > Nei primi giochi si dava per scontato che quello fosse il clock perché era il clock di quella data piattaforma. L'assunzione funzionava bene ai tempi degli MSX, dei C64, ecc perché il clock era fissato nelle specifiche e quindi si dava per scontato che non sarebbe cambiato.
          > >
          > > Con l'arrivo degli x86 (ma anche di altre piattaforme che poi sono progredite) molti sono partiti con assunzioni simili o variazioni sul tema e quindi davano per scontato che certe routine impiegassero un determinato tempo per eseguirsi. Quindi nel loop del gioco non c'erano delay (anche perché a quelle velocità non servivano) oppure c'erano delay ma erano basati su certi assunti che con l'aumentare del clock sono (prima o poi) diventati falsi. Perciò ora hai un loop che invece di ripetersi 10 volte al secondo si ripete 100, di conseguenza tutto è 10 volte più veloce.
          >
          > Questo lo intuivo. La domanda corretta in realtà era: come hanno fatto a risolvere il problema nei giochi nuovi, che devono funzionare correttamente su frequenze di clock diverse.
          >
          >

          Dipende da cosa intendi per nuovi.
          Se intendi quelli che escono ora, quelli hanno fisica e grafica sostanzialmente indipendenti, la grafica spesso gira alla massima frequenza possibile la fisica di solito e` legata ad una frequenza fissa e usa il sistema operativo per la temporizzazione.
          Roba comunque vintage ma non vetusta usava interrupt hardware per temporizzare o leggeva l'RTC.
          I think happiness is love
          - Vladimir Putin
    • Avatar
      ☺
      Scritto da
      avvelentani
      Cubicolario
      il 2017-02-20 20:31:23.0 alle 2017-02-20 20:31:23.0
      Trollate totali: 18184
      Re: Giochi vintage: aumenti la frequenza di clock e il gioco impazzisce
      Scritto da:
      > Ho notato che ci sono giochi vintage che se eseguiti a frequenza di clock della CPU maggiore rispetto a quella della macchina per cui sono stati sviluppati, diventano più veloci del normale, nel senso che il tempo si restringe (gli orologi nel gioco scorrono più velocemente del normale).
      >
      > In teoria una frequenza di clock maggiore della CPU dovrebbe comportare (in assenza di colli di bottiglia) un migliore frame rate e una minore latenza nelle operazioni I/O, ma non una compressione del tempo.
      >
      > A cosa è dovuto questo aspetto di certi giochi vintage? Come li hanno programmati?

      Fisica e rendering grafico non erano indipendenti e usavano NOP per temporizzare.
      I think happiness is love
      - Vladimir Putin
    • Avatar
      ☺
      Scritto da
      ::1
      il 2017-02-20 21:43:36.0 alle 2017-02-20 21:43:36.0
      Trollate totali: 12321
      Re: Giochi vintage: aumenti la frequenza di clock e il gioco impazzisce
      Scritto da:
      > Ho notato che ci sono giochi vintage che se eseguiti a frequenza di clock della CPU maggiore rispetto a quella della macchina per cui sono stati sviluppati, diventano più veloci del normale, nel senso che il tempo si restringe (gli orologi nel gioco scorrono più velocemente del normale).
      >
      > In teoria una frequenza di clock maggiore della CPU dovrebbe comportare (in assenza di colli di bottiglia) un migliore frame rate e una minore latenza nelle operazioni I/O, ma non una compressione del tempo.
      >
      > A cosa è dovuto questo aspetto di certi giochi vintage? Come li hanno programmati?

      Una variazione su questo tema è l'installer di windows 95, che si impalla con processori troppo veloci, per i motivi spiegati dagli altri.
      Young professional woman and busy mom.
<softv>

Pagina generata in 70 millisecondi

Utenti attivi: 14 nell'ultimo minuto, 22 negli ultimi cinque minuti, 50 negli ultimi 15 minuti