16Aug
Wenn du jemals versucht hast, ein altes Computerspiel auf einem modernen System zu installieren, warst du wahrscheinlich schockiert, wie schnell das -Spiel lief. Warum gehen alte Spiele auf moderner Hardware außer Kontrolle?
Früher haben wir Ihnen gezeigt, wie Sie ältere Software auf modernen Computern ausführen können. Die heutige Frage-und-Antwort-Sitzung ist ein nettes Kompliment, das darauf eingeht, warum einige ältere Software( speziell Spiele) nie richtig zu funktionieren scheinen, wenn Sie versuchen, sie auf moderner Hardware auszuführen.
Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.
Die Frage
SuperUser reader TreyK möchte wissen, warum alte Computerspiele auf neuer Hardware verrückt werden:
Ich habe ein paar alte Programme, die ich aus einem Windows-Computer der frühen 90er Jahre geholt habe, und habe versucht, sie auf einem relativ modernen Computer auszuführen. Interessanterweise liefen sie mit rasender Geschwindigkeit - nein, nicht mit der Geschwindigkeit von 60 Bildern pro Sekunde, sondern eher mit dem "Oh-mein-Gott-der-Charakter-Gehen-bei-der-Geschwindigkeit"schnell. Ich würde eine Pfeiltaste drücken und das Sprite des Charakters würde schneller als normal über den Bildschirm laufen. Der Zeitverlauf im Spiel lief viel schneller als es sollte. Es gibt sogar Programme, die gemacht werden, um Ihre CPU zu verlangsamen, so dass diese Spiele tatsächlich spielbar sind.
Ich habe gehört, dass das mit dem Spiel zusammenhängt, abhängig von den CPU-Zyklen oder so ähnlich. Meine Fragen sind:
- Warum machen ältere Spiele das und wie sind sie damit durchkommen?
- Wie machen neuere Spiele und dies und laufen unabhängig von der CPU-Frequenz?
Also, was ist die Geschichte? Warum leuchten die Sprites in alten Spielen so schnell über den Bildschirm, dass das Spiel unspielbar wird?
Der Antwort-
-SuperUser-Mitwirkender JourneymanGeek bricht ihn ab:
Ich glaube, sie nahmen an, dass die Systemuhr mit einer bestimmten Rate laufen würde, und banden ihre internen Timer an diese Taktrate. Die meisten dieser Spiele liefen wahrscheinlich unter DOS, waren Realmodus( mit komplettem, direktem Hardwarezugriff) und nahmen an, dass Sie ein 4,77 MHz-System für PCs und jeden Standardprozessor, den das Modell für andere Systeme wie den Amiga lief, hatten.
Sie nahmen auch clevere Verknüpfungen auf der Grundlage dieser Annahmen, einschließlich des Speicherns von ein paar kleinen Ressourcen, indem sie keine internen Timing-Schleifen in das Programm schreiben. Sie nahmen auch so viel Prozessorleistung auf wie sie konnten - was in den Tagen der langsamen, oft passiv gekühlten Chips eine gute Idee war!
Eine gute Möglichkeit, sich mit unterschiedlicher Prozessorgeschwindigkeit zu bewegen, war der gute alte Turbo-Button( der das System verlangsamte).Moderne Anwendungen sind im geschützten Modus und das Betriebssystem neigt dazu, Ressourcen zu verwalten - sie würden nicht eine DOS-Anwendung erlauben( die sowieso in NTVDM auf einem 32-Bit-System läuft), um den gesamten Prozessor in vielen Fällen zu verbrauchen. Kurz gesagt, Betriebssysteme sind intelligenter geworden, genauso wie APIs.
Schwer basierend auf dieser Anleitung auf Oldskool PC, wo Logik und Speicher mir fehlten - es ist eine gute Lektüre und geht wahrscheinlich tiefer in das "Warum".
Stuff wie CPUkiller verbrauchen so viele Ressourcen wie möglich, um Ihr System zu "verlangsamen", was ineffizient ist. Sie wären besser dran mit DOSBox, um die Geschwindigkeit Ihrer Anwendung zu verwalten.
Wenn Sie neugierig sind, wie der eigentliche Code in frühen Computerspielen implementiert wurde( und warum er sich so schlecht an moderne Systeme anpasst, ohne in einer Art Emulations-Programm Sandbox zu sein), würden wir Ihnen auch diese langwierige, aber interessante Aufschlüsselung empfehlendes Prozesses in einer anderen SuperUser-Antwort.
Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.