Programme in Zeitlupe laufen lassen?

Hallo,
gibt es eine Möglichkeit, Programme oder das ganze System in Zeitlupe laufen zu lassen?
Ich möchte beispielweise manche Action-Spiele gern langsam und stotterfrei spielen.
Im Grunde braucht man dazu ja nur den Umrechnungsfaktor Takte/sec zu manipulieren: Wenn der Kernel denkt, dass die CPU mit 2GHz läuft wenn sie mit 1GHz läuft müssten alle zeitkoordinierten Programme mit halber Geschwindigkeit laufen.
Doch wo ist diese Info gespeichert?

Ich hab auch schon an Debugger und Emulatoren gedacht, aber die scheinen eine solche Zeitlupenfunktion auch nicht zu bieten.
(Abgesehen von Spezialfällen wie dem SNES-Emulator; der emuliert aber natürlich nur SNES-Spiele).

cu
vume5

Hallo,

gibt es eine Möglichkeit, Programme oder das ganze
System in Zeitlupe laufen zu lassen?

Jein.

Ich möchte beispielweise manche Action-Spiele gern
langsam und stotterfrei spielen.

Das wird wohl eher nix.

Im Grunde braucht man dazu ja nur den Umrechnungsfaktor
Takte/sec zu manipulieren: Wenn der Kernel denkt, dass die CPU
mit 2GHz läuft wenn sie mit 1GHz läuft müssten alle
zeitkoordinierten Programme mit halber Geschwindigkeit laufen.

Nein, so läuft das schon lange nicht mehr und selbst zu
Zeiten von DOS war das eher schlechter Programmierstil.
Nur manche Spiele habe damals direkt auf die Hardware
zugegriffen und liefen deshalb abhängig vom Takt.

Die Ablaufgeschw. von Spielen ist rel. unabhängig vom
Systemtakt. Statt dessen werden Timer benutzt, die
die korrekte Zeit wieder geben.

Nur einige alte DOS-Spiele lassen sich mit so einem
Bremsprogramm langsamer machen.

Doch wo ist diese Info gespeichert?

Ich hab auch schon an Debugger und Emulatoren gedacht, aber
die scheinen eine solche Zeitlupenfunktion auch
nicht zu bieten.

Doch, da geht das im Prinzip, aber nur wenn du die
Quellen hast. Die hast du aber sicher nicht.

(Abgesehen von Spezialfällen wie dem SNES-Emulator; der
emuliert aber natürlich nur SNES-Spiele).

Du könntest evt. eine Virtuelle Maschine nutzen,und
dazu noch die Taktrate so weit runter setzen, bis
es anfängt zu ruckeln. Dann macht das Spielen
aber eigentlich keinen Spaß mehr.
Ruckelfrei aber langsamer geht evtl. mit Cheats.
Gruß Uwi

Die Ablaufgeschw. von Spielen ist rel. unabhängig vom
Systemtakt. Statt dessen werden Timer benutzt, die
die korrekte Zeit wieder geben.

Das meine ich ja.
Und woher weiss ein Timer wieviel Zeit vergangen ist?
Woher weiss das System wieviel Takte/sec ausgeführt werden?
Der Wert wird doch irgendwo (BIOS?) ausgelesen und irgendwo gespeichert…

Moin,

suchst Du sowas?
http://www.hpaa.com/moslo/

Grüße,
-Efchen

Die Ablaufgeschw. von Spielen ist rel. unabhängig vom
Systemtakt. Statt dessen werden Timer benutzt, die
die korrekte Zeit wieder geben.

Das meine ich ja.
Und woher weiss ein Timer wieviel Zeit vergangen ist?

Das weiß der von dem angeschlossenem Quartz.

Woher weiss das System wieviel Takte/sec ausgeführt werden?

Vom Programmierer, der gibt das vor.

Der Wert wird doch irgendwo (BIOS?) ausgelesen und irgendwo
gespeichert…

Irgendwo, sowohl im BIOS als auch im Betriebsystem.

Deine Fragen sind schön, führen aber nicht zum Ziel.

Es müsste der Timerinterupt umgeleitet wered, welcher einen zweiten Timerinterupt zur Verzögerung einschleift, welcher den ersten Interupt weiter laufen läßt.
Wenn das Betriebsystem das zuläßt, was ich bezweifle, würde das gehen.

nein…
Guten Tag,

Moin,

suchst Du sowas?
http://www.hpaa.com/moslo/

Nein, das ist ein Programm, das eine LANGSAME CPU emuliert, ich brauche eher das Gegenteil,
also wenn das System zB. denkt, es läuft mit 2 Ghz wenn es in Wirklichkeit mit 1 Ghz läuft.

Ich müsste dazu im Grunde nur wissen, wo diese Takt-Info gespeichert wird und wie ich sie manipulieren kann.
Sind bestimmt bloss 4Bytes.
Wobei wenn man eine CPU mit Speedstep hat das vielleicht Probleme verursachen könnte…

Hallo vume5,

ich mußte mir deine Frage 5 Mal durchlesen bis ich mir sicher war mich nicht
verlesen zu haben :wink: . Man müsste zu weit ausholen um zu sagen was an deinem
Plan alles falsch ist (obwohl ich die Idee an sich ziemlich kreativ finde).

Zurück zu deinem Problem, wenn es dir speziell um Spiele geht dann wäre deine
einzige Chance (die mir bekannt ist) diesen Effekt zu erreichen die fps in der jeweiligen Konfigurationsdatei des Spiels einzustellen.

gruß

Moin,

ich brauche eher das Gegenteil,
also wenn das System zB. denkt, es läuft mit 2 Ghz wenn es in
Wirklichkeit mit 1 Ghz läuft.

Ist das dann nicht Zeitraffer statt Zeitlupe?

Gruß,
-Efchen

nein, wenn das system denkt, dass es mit 2ghz läuft, dann wartet es für eine sekunde „nop“ 2*10^9 takte. wenn es aber in wirklichkeit nur mit 1ghz läuft, entsprechen 2*10^9 takte 2 sekunden

Woher weiss das System wieviel Takte/sec ausgeführt werden?

Vom Programmierer, der gibt das vor.

genau darauf will er doch hinaus, oder?

Jein, aus dem andern Antwortsatz will dem Programm vorgaukeln, das es auf einem langsameren System ist und schneller ablaufen müßte.
Bei einem Emulator gibt es dann nur die Möglichkeit sich in die Timer Programmierung einzukliken und dann einfach die Timerwerte zu manipulieren. Theoretisch denkbar, aber nicht wenn sehr Hardware nah programmiert wurde.