Pourquoi les vieux jeux fonctionnent-ils trop vite sur les ordinateurs modernes?
Si vous avez déjà essayé de lancer un jeu vidéo vintage sur un système moderne, vous avez probablement été choqué de voir comment vite le jeu a couru. Pourquoi les vieux jeux sont-ils hors de contrôle sur du matériel moderne??
Plus tôt dans la journée, nous vous avons montré comment utiliser un logiciel plus ancien sur des ordinateurs modernes. La séance de questions / réponses d'aujourd'hui est un compliment intéressant qui explique pourquoi certains logiciels plus anciens (en particulier les jeux) ne semblent jamais fonctionner correctement lorsque vous essayez de les exécuter sur du matériel moderne..
La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..
La question
Lecteur SuperUser TreyK veut savoir pourquoi les vieux jeux informatiques courent vite sur un nouveau matériel:
J'ai installé quelques anciens programmes sur un ordinateur Windows du début des années 90 et essayé de les exécuter sur un ordinateur relativement moderne. Chose intéressante, ils ont fonctionné à une vitesse fulgurante - non, pas avec la vitesse rapide à 60 images par seconde, mais plutôt avec le genre de personnage oh-mon-dieu-le-personnage-marche-à-la-vitesse du son vite. J'appuyais sur une flèche et le sprite du personnage glissait beaucoup plus rapidement que d'habitude sur l'écran. La progression temporelle dans le jeu se passait beaucoup plus rapidement que prévu. Il existe même des programmes conçus pour ralentir votre processeur afin que ces jeux soient réellement jouables.
J'ai entendu dire que cela est lié au jeu en fonction des cycles du processeur, ou quelque chose comme ça. Mes questions sont:
- Pourquoi les jeux plus anciens font-ils cela et comment s'en sont-ils sortis??
- Comment les nouveaux jeux ne pas faire cela et fonctionner indépendamment de la fréquence du processeur?
Alors, quelle est l'histoire? Pourquoi les sprites des anciens jeux flambent-ils sur l'écran si vite que le jeu devient injouable?
La réponse
JourneymanGeek, contributeur de SuperUser, résout le problème:
Je pense qu'ils ont supposé que l'horloge du système fonctionnerait à un taux spécifique, et lié dans leurs minuteries internes à cette fréquence d'horloge. La plupart de ces jeux fonctionnaient probablement sous DOS, étaient en mode réel (avec un accès matériel complet et direct) et supposaient que vous exécutiez un programme. iirc Système 4,77 MHz pour PC et processeur quel que soit le modèle standard utilisé sur d'autres systèmes tels que l'Amiga.
Ils ont également utilisé des raccourcis astucieux basés sur ces hypothèses, notamment une économie de ressources en évitant l'écriture de boucles de synchronisation internes dans le programme. Ils ont également utilisé autant de puissance de processeur que possible - ce qui était une bonne idée à l'époque des puces lentes, souvent refroidies de manière passive.!
Le bon vieux bouton Turbo (qui ralentissait votre système) était initialement un moyen de contourner la vitesse du processeur. Les applications modernes sont en mode protégé et le système d'exploitation tend à gérer les ressources - elles ne le feraient pas permettre une application DOS (de toute façon exécutée sous NTVDM sur un système 32 bits), dans de nombreux cas, utilise tout le processeur. En bref, les systèmes d’exploitation sont devenus plus intelligents, tout comme les API.
Fortement inspiré de ce guide sur Oldskool PC où la logique et la mémoire me manquaient - c’est une excellente lecture, et va probablement plus en profondeur dans le «pourquoi».
Des choses comme CPUkiller utilisent autant de ressources que possible pour «ralentir» votre système, ce qui est inefficace. Vous feriez mieux d'utiliser DOSBox pour gérer la vitesse d'horloge de votre application.
Si vous êtes curieux de savoir comment le code a été implémenté dans les premiers jeux d’ordinateur (et pourquoi ils s’adaptent si mal aux systèmes modernes sans être mis en sandbox dans une sorte de programme d’émulation), nous vous suggérons également de consulter cette ventilation longue mais intéressante. processus dans une autre réponse SuperUser.
Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.