Connect with us

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 darüber, wie das Spiel lief. Warum geraten alte Spiele auf moderner Hardware außer Kontrolle?

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

Die Frage

SuperUser-Leser TreyK möchte wissen, warum alte Computerspiele auf neuer Hardware verrückt schnell laufen:

Ich habe ein paar alte Programme, die ich von einem Windows-Computer aus den frühen 90ern gezogen und versucht habe, sie auf einem relativ modernen Computer auszuführen. Interessanterweise liefen sie mit einer blitzschnellen Geschwindigkeit – nein, nicht die Geschwindigkeit von 60 Bildern pro Sekunde, sondern die Art von Oh-mein-Gott-der-Charakter-geht-mit-der-Schallgeschwindigkeit schnell. Ich würde eine Pfeiltaste drücken und das Sprite des Charakters würde viel schneller als normal über den Bildschirm rasen. Der zeitliche Verlauf des Spiels verlief viel schneller als es sollte. Es gibt sogar Programme, die gemacht wurden Verlangsamen Sie Ihre CPU damit diese Spiele tatsächlich spielbar sind.

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

  • Warum machen ältere Spiele das und wie sind sie damit durchgekommen?
  • Wie machen neuere Spiele dies und laufen unabhängig von der CPU-Frequenz?

Also, was ist die Geschichte? Warum blitzen die Sprites in alten Spielen genau so schnell über den Bildschirm, dass das Spiel nicht mehr spielbar ist?

Die Antwort

SuperUser-Mitarbeiter JourneymanGeek bricht es auf:

Ich glaube, sie gingen davon aus, 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 und waren es auch Real-Modus (mit vollständigem, direktem Hardwarezugriff) und davon ausgegangen, dass Sie ein 4,77-MHz-System für PCs und einen Standardprozessor für andere Systeme wie den Amiga verwenden.

Sie nahmen auch clevere Verknüpfungen, die auf diesen Annahmen basierten, einschließlich der Einsparung eines kleinen Teils der Ressourcen, indem sie keine internen Zeitschleifen in das Programm schrieben. Sie nahmen auch so viel Prozessorleistung wie möglich in Anspruch – was in Zeiten langsamer, oft passiv gekühlter Chips eine anständige Idee war!

Ein Weg, um unterschiedliche Prozessorgeschwindigkeiten zu umgehen, war anfangs das gute alte Turbo-Taste (was Ihr System verlangsamte). Moderne Anwendungen befinden sich im geschützten Modus, und das Betriebssystem verwaltet in der Regel Ressourcen. In vielen Fällen würde eine DOS-Anwendung (die ohnehin in NTVDM auf einem 32-Bit-System ausgeführt wird) nicht den gesamten Prozessor verbrauchen. Kurz gesagt, Betriebssysteme und APIs sind intelligenter geworden.

Stark basiert diese Anleitung auf Oldskool PC Wo Logik und Erinnerung versagten – es ist eine großartige Lektüre und geht wahrscheinlich tiefer in das „Warum“ ein.

Zeug wie CPUkiller Verbrauchen Sie so viele Ressourcen wie möglich, um Ihr System zu verlangsamen, was ineffizient ist. Du solltest besser dran sein DOSBox 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 eine Sandbox zu haben), empfehlen wir Ihnen auch das Auschecken diese langwierige, aber interessante Aufschlüsselung des Prozesses in einer anderen SuperUser-Antwort.

Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Den vollständigen Diskussionsthread finden Sie hier.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia