Startseite » wie man » Warum laufen alte Spiele auf modernen Computern viel zu schnell?

    Warum laufen alte Spiele auf modernen Computern viel zu schnell?

    Wenn Sie jemals versucht haben, ein altes Computerspiel auf einem modernen System zum Laufen zu bringen, waren Sie wahrscheinlich schockiert, wie es geht schnell das spiel lief. Warum laufen alte Spiele auf moderner Hardware außer Kontrolle??

    Heute haben wir Ihnen gezeigt, wie Sie ältere Software auf modernen Computern ausführen können. Die heutige Frage-und-Antwort-Sitzung ist ein schönes Kompliment, das herausfindet, warum einige ältere Software (insbesondere Spiele) nie richtig zu funktionieren scheinen, wenn Sie versuchen, sie auf moderner Hardware auszuführen.

    Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.

    Die Frage

    SuperUser Reader TreyK möchte wissen, warum alte Computerspiele auf neuer Hardware schnell verrückt werden:

    Ich habe ein paar alte Programme, die ich aus einem Windows-Computer der frühen 90er Jahre gezogen und auf einem relativ modernen Computer ausgeführt habe. Interessanterweise liefen sie mit einer rasend schnellen Geschwindigkeit - nein, nicht die Art von 60 Frames pro Sekunde, sondern eher die Art von Oh-mein-Gott-Charakter, die mit der Soundgeschwindigkeit zu Fuß geht schnell. Ich würde eine Pfeiltaste drücken, und das Sprite des Charakters würde viel schneller als normal über den Bildschirm springen. Der Zeitverlauf im Spiel verlief viel schneller als es sollte. Es gibt sogar Programme, die Ihre CPU verlangsamen, so dass diese Spiele tatsächlich spielbar sind.

    Ich habe gehört, dass dies mit dem Spiel zusammenhängt, abhängig von den CPU-Zyklen oder so. Meine Fragen sind:

    • Warum machen ältere Spiele das und wie kamen sie damit durch??
    • Wie machen neuere Spiele nicht Tun Sie dies und laufen Sie unabhängig von der CPU-Frequenz?

    Was ist also die Geschichte? Warum genau die Sprites in alten Spielen so schnell auf dem Bildschirm erscheinen, dass das Spiel nicht mehr spielbar ist?

    Die Antwort

    SuperUser-Mitwirkender JourneymanGeek bringt es auf:

    Ich glaube, sie gingen davon aus, dass die Systemuhr mit einer bestimmten Geschwindigkeit laufen würde und ihre internen Timer an diese Taktrate gebunden waren. Die meisten dieser Spiele liefen wahrscheinlich unter DOS und waren im Realmodus (mit vollständigem, direktem Hardwarezugriff) Iirc 4,77-MHz-System für PCs und welcher Standard-Prozessor dieses Modell auch für andere Systeme wie den Amiga nutzte.

    Sie nahmen auch clevere Verknüpfungen vor, die auf diesen Annahmen beruhten, einschließlich der Einsparung von Ressourcen, indem keine internen Timing-Schleifen in das Programm geschrieben wurden. Sie nahmen auch so viel Prozessorleistung in Anspruch, wie sie konnten - was in Zeiten von langsamen, oft passiv gekühlten Chips eine anständige Idee war!

    Eine Möglichkeit, um unterschiedliche Prozessorgeschwindigkeiten zu umgehen, war zunächst die gute alte Turbo-Taste (die Ihr System verlangsamte). Moderne Anwendungen befinden sich im geschützten Modus, und das Betriebssystem verwaltet normalerweise Ressourcen - dies wäre jedoch nicht der Fall ermöglichen eine DOS-Anwendung (die ohnehin auf einem 32-Bit-System in NTVDM ausgeführt wird), um in vielen Fällen den gesamten Prozessor zu verbrauchen. Kurz gesagt, Betriebssysteme sind intelligenter geworden, ebenso wie APIs.

    Dieser Leitfaden basiert auf Oldskool PC, wo Logik und Speicher versagt haben - es ist eine großartige Lektüre und geht wahrscheinlich tiefer in das „Warum“ ein..

    Sachen wie CPUkiller verbrauchen so viele Ressourcen wie möglich, um Ihr System zu verlangsamen, was ineffizient ist. Sie sollten DOSBox besser verwenden, um die Taktrate zu verwalten, die Ihre Anwendung sieht.

    Wenn Sie neugierig sind, wie der eigentliche Code in frühen Computerspielen implementiert wurde (und warum sie sich so schlecht an moderne Systeme anpassen, ohne in einem Emulationsprogramm geschliffen zu werden), empfehlen wir auch einen Blick auf diese lange, aber interessante Aufschlüsselung von Prozess in einer anderen SuperUser-Antwort.


    Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.