Willkommen im cgboard - classic games Forum! Deine gemütliche Retro Gaming Community. Besuche uns auch im Discord Chat.

[Hilfe] PC zu schnell - Programm zum Bremsen gesucht
#21
0
Zitat:Das HAUPT-Problem bei alten Spielen auf neuerer Hardware ist nicht die Prozessorleistung an sich, sondern der zu hohe Systemtakt. Dieser bestimmt nämlich das Timing, was wiederum für die Koordination von Graphik, Sound usw. besonders wichtig ist. Einige DOS-Spiele kommen schon mit allem, was über 66 MHz (FSB) liegt, nicht gut klar. Und ab 100 MHz (FSB) läuft oft gar nichts mehr - am wenigsten der Sound.
Tools wie Moslow, Slowdown & Konsorten, die nur für eine künstliche Auslastung der CPU sorgen, haben deshalb schon auf PII/III-Systemen oft überhaupt NICHTS gebracht.

Richtig, es geht um die Taktfrequenz und darum das einige alte Spiele (nicht alle) keine Zeitsteuerrung oder eine Zeitsteuerung auf Taktbasis haben.

Warum die CPU-Auslastungstools funktionieren ist simpel und wenn man sich das mal überlegt absoluter Overkill. Big Grin

Die SlowDown-Tools funktionieren nicht weil die CPU ausgelastet ist, sondern weil sie Pausen in den Prozessen erzwingen durch die Auslastung. Dadurch, das der Prozess des SlowDown-Tools so viel Rechenleistung benötigt, zwingt es Windows dazu massenweise sogenannte Taskswitches durchzuführen. Dabei wird der aktuelle Prozess angehalten und die CPU auf den Kontext des nächsten Prozesses gebracht. Und dieser darf dann ein bissel laufen. Das Grundprinzip von Multitasking. Da Windows ein dynamisches Priorisierungssystem hat, gesteht es nun Prozessen, die mehr Leistung benötigen mehr Zeit zu. Also wird öfter zu dem SlowDown Prozess geswitcht als zu anderen. Die Zeit des Taskswitches (kann bis zu 1 ms dauern) ist die merkbare Verlangsammung des Spielprozesses. Der legt praktisch vermehrt kleine Pausen ein.

Es währe natürlich um einiges elleganter, wenn man einfach direkt den Prozess dazu bringt Pausen einzulegen.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#22
0
Task-Manager

Dieser Windows-Standard bietet "nur" eine grobe Orientierung - und selbst die nicht immer zuverlässig.
Über die Anzahl aller laufenden Threads/Handles, die Auslastung usw. gibt jedoch ein Tool wie der "Process-Explorer" (ehemals Sysinternals, jetzt Microsoft) detaillierte Auskunft. Darüber hinaus lassen sich mit ihm ebenfalls Prozesse killen oder Prioritäten ändern. (Besonders von Letzterem sollten aber allejene die Finger lassen, die nicht wirklich genau wissen, was sie tun!!)



Mehrere Prozessoren / Mehrkern-CPU

Der Sinn von SMP-Systemen (SMP steht für Symmetric Multiprocessing) ist es, die Auslastung eines PCs auf mehrere CPUs zu verteilen, um MEHR Leistung herauszuholen.
Konzipiert wurde das ursprünglich für den reinen Server-Betrieb. Nur hätte das auch dort überhaupt nichts gebracht, wenn nicht die Programmierer (z.B. der von mir schon genannten Datenbank-Dinosaurier) parallel dazu ihre Software so abgeändert hätten, daß der bis dahin übliche eine Prozeß in mehrere aufgesplittert worden wäre. EIN Prozeß läßt sich nämlich nicht auf mehrere CPUs verteilen!!!
Da jedoch 99% aller Programme aus eben nur einem Prozeß bestehen, kann das (eigentlich) NICHT stimmen, was thEClaw sagt:

Zitat:Standardmäßig ist jedes Programm beiden Kernen zugeordnet, so dass es sich die Leistung holen kann, von wo es will.

Ich habe "eigentlich" bewußt in Klammern gesetzt, weil Intel wie AMD über ihre Mehrkern-Technologien zwar sehr viel Rauch, aber relativ wenig Handfestes verbreiten. Sie lassen die Hosen nicht wirklich herunter...
Hinzu kommt: Alle NT-basierten Systeme sind zu einer Zeit entwickelt worden, als es noch gar keine Mehrkerner gab. Auf Grund der Informationen, die sie vom BIOS (APIC) und der CPU selbst bekommen, gehen sie also davon aus, auf echter Mehrprozessor-Hardware zu laufen. Inwieweit sie dabei von der CPU "verarscht" werden, entzieht sich ihrer Kenntnis genauso wie meiner. (Die vom Task-Manager angezeigten Werte sind deshalb erst recht mit Vorsicht zu genießen.)
Festzustehen scheint jedoch immerhin, daß ein DualCore-System an ein vergleichbares SMP-System mit 2 CPUs leistungsmäßig NICHT heranreicht, was meinen persönlichen Verdacht bestärkt, das uns da eher "virtuelle" CPUs verkauft werden.

Was aber auf gar keinen Fall stimmt - und zwar unabhängig von Anzahl und Art der Prozessoren, ist, daß irgendein Programm "sich die Leistung holen kann, von wo es will." Tatsächlich kann es (bildhaft gesprochen) nur seine Wünsche beim System vortragen, das dann über die Zuteilung der Ressourcen entscheidet.
Zitieren
#23
0
Zitat:Original von jukiwuki
Mehrere Prozessoren / Mehrkern-CPU

Der Sinn von SMP-Systemen (SMP steht für Symmetric Multiprocessing) ist es, die Auslastung eines PCs auf mehrere CPUs zu verteilen, um MEHR Leistung herauszuholen.

Windows hat kein SMP!
Es ist simpel: Ein Prozess bekommt einen Kern vom System zugeordnet. Da wird vom System garnix gesplittet, ist auch Technisch garnicht ohne weiteres möglich. Der gangbare weg ist, das die Softwareentwickler selbst ihre Programme so programmieren, das sie mehrere Threads für verschiedene Aufgaben anlegen und diese dann verschiedenen Cores zuweisen.

Zu NT-Zeiten gabs schon Mainboards mit 2 bzw 4 CPU's, vornehmlich für Server. Ist zwar hardwaretechnisch nicht das selbe wie eine Multi-Core-CPU, allerdings gibt es programmiertechnisch keinen Unterschied.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#24
0
An Thorium:


Erstens:

Ich habe zwar gar nicht gesagt, Windows habe SMP, hätte es aber tun können, denn es stimmt ja. Jedenfalls bieten alle NT-basierten Systeme seit 3.5 grundsätzlich Unterstützung für SMP - und zwar unabhängig davon, ob es sich um Server- oder Workstation-Versionen handelt. Hier unterscheiden sie sich nur in der Anzahl der CPUs.
Die Prozedur ist einfach: Das Setup entscheidet selbst auf Grund der Hardware-Information aus dem BIOS (APIC), welcher Kernel installiert wird.


Zweitens:

"Da wird vom System garnix gesplittet..."
Wenn Du meinen Beitrag genauer liest, wirst Du feststellen, daß ich auch das gar nicht behauptet habe, sondern - wenn auch mit anderen Worten - dasselbe wie Du:
Es kommt auf das Programm und die Anzahl der Prozesse an...


Drittens:

"...allerdings gibt es programmiertechnisch keinen Unterschied."

Richtig. Aber ich bezweifle, daß die Umsetzung bei einem DualCore- völlig identisch ist mit der bei einem SMP-Systems, was ich drastisch mit einer möglichen "Verarschung" umschrieben habe.
Zitieren
#25
0
Zitat:Original von jukiwuki
Der einzig sichere Weg aus dem Dilemma ist die Anschaffung oder Wiederinbetriebnahme eines PCs der frühen Pentium-Generation (100/133 MHz, KEIN MMX-Modell), der eine Graphikkarte nach VESA 2.1-Standard und eine echte SoundBlaster 16 oder wenigstens 100% dazu kompatible Soundkarte enthalten sollte. Die Speicherbänke sollten wenigstens mit 16 MB bestückt sein.

Hallo jukiwuki,

warum darf das kein MMX-Prozessor sein??

Und zu den Slowdownprogrammen wollte ich noch eines für Windows 9x empfehlen: "myslow" von Ross Ridge. Hier bekommt man es:

http://www.csclub.uwaterloo.ca:11068/

Es ist wirklich genial. Es erzeugt in den Eigenschaften eines DOS-Programms (*.pif) einen neuen Reiter für die Geschwindigkeitseinstellungen (gilt dann nur für das eine Programm). Es kann via Software den L1-Cache des Prozessors deaktivieren. Für die Feineinstellung kann man dann noch Wartezyklen einstellen (analog zu Moslo). So kann man z.B. einen PII-Rechner ruckelfrei auf 486er Niveau bringen - während Windows weiter mit voller Geschwindigkeit läuft.

Für DOS-Programme unter Windows 9x ist man mit myslow und Moslo am besten bedient.

Oboe
Zitieren
#26
0
Hallo Oboe,

natürlich "darf" es auch MMX sein, aber eine ganze Reihe von Spielen - vor allem aus den frühen 90er Jahren - kommt mit MMX-Modellen nicht zurecht.
Ob das jetzt wirklich nur am erweiterten Befehlssatz oder irgendeinem anderen Feature liegt, weiß auch ich nicht. (Wie ich schon erwähnt habe, bin ich kein Programmierer.) Aber aus langer Erfahrung kann ich nur sagen, daß besonders solche Programme/Spiele betroffen sind, die mit Borland Turbo Pascal erstellt wurden. Derlei läuft sowieso auf keinem Prozessor ab 200 MHz, aber auch schon darunter nicht, wenn MMX im "Spiel" ist. Ich habe es jedenfalls vor Jahren einmal explizit mit einem Pentium 166 ohne und einem mit MMX probiert.

Auf der anderen Seite kenne ich kein einziges DOS-Spiel, das MMX zwingend voraussetzt, sodaß Du mit "ohne" einfach auf der sicheren Seite bist.

P.S.
Von der ganzen Geschichte sind übrigens auch die Nachbauten von AMD und Cyrix betroffen, soweit sie (mit Lizenz von Intel) die MMX-Technologie implementiert haben. Da muß man aber genau auf die Modell-Bezeichnungen schauen, weil es eine Vielzahl von Varianten gibt.
Wiederum aus persönlicher Erfahrung kann ich konstatieren, daß z.B. ein Cyrix/IBM 6x86 P166 (real getaktet mit 133 MHz) genauso reibungslos funktioniert wie ein echter Pentium 100 oder 133.
Zitieren
#27
0
Zitat:Original von Oboe
Und zu den Slowdownprogrammen wollte ich noch eines für Windows 9x empfehlen: "myslow" von Ross Ridge. Hier bekommt man es:
Das myslow sieht wirklich sehr gut aus, das arbeitet auch im Kernel Mode (Ring0).
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#28
0
@ jukiwuki:
Zitat:Da jedoch 99% aller Programme aus eben nur einem Prozeß bestehen, kann das (eigentlich) NICHT stimmen, was thEClaw sagt:

Zitat:Zitat: Standardmäßig ist jedes Programm beiden Kernen zugeordnet, so dass es sich die Leistung holen kann, von wo es will.

Ich habe "eigentlich" bewußt in Klammern gesetzt, weil Intel wie AMD über ihre Mehrkern-Technologien zwar sehr viel Rauch, aber relativ wenig Handfestes verbreiten.

Da hast du mich für zu dumm gehalten Wink : Ich meinte natürlich, dass Windows das Programm je nach "Auftragslage" gern einem Kern zuordnen würde, man diese Zuordnung jedoch auf einen oder mehrere bestimmte Kerne beschränken kann, wenn man das im Taskmanager einstellt. Dass ein einzelner Prozess nicht aufgeteilt werden kann, ist mir klar. Ich habe mich damals zum Kauf meines Mehrkerners auch eine Weile damit beschäftigt. Wink

@ Oboe: Das Programm will ich gleich mal ausprobieren, klingt ja interessant. Danke für den Link!

So, ich hoffe dann mal, dass eure kreativen Ergüsse weiterfließen, vielleicht habt ihr ja noch eine bahnbrechende Idee. Wink
Zitieren
#29
0
Myslow

Nur zur Klarstellung, weil es mancher vielleicht überlesen hat:

Oboe sprach schon von Win9x. Ich habe mir das Paket aber auch selbst angeschaut:
Es enthält nur einen VxD-Treiber, ist also wirklich auf keinem NT-basierten System lauffähig!
(Ob und wie das in einer virtuellen Maschine funktioniert, ist eine andere Frage. Ausprobieren...)
Zitieren
#30
0
Zitat:Original von jukiwuki
Aber aus langer Erfahrung kann ich nur sagen, daß besonders solche Programme/Spiele betroffen sind, die mit Borland Turbo Pascal erstellt wurden. Derlei läuft sowieso auf keinem Prozessor ab 200 MHz, aber auch schon darunter nicht, wenn MMX im "Spiel" ist. Ich habe es jedenfalls vor Jahren einmal explizit mit einem Pentium 166 ohne und einem mit MMX probiert. [...] Von der ganzen Geschichte sind übrigens auch die Nachbauten von AMD und Cyrix betroffen, soweit sie (mit Lizenz von Intel) die MMX-Technologie implementiert haben.
Diese Borland Turbo Pascal-Programme sind doch, glaube ich, die, bei denen man mit zu schneller CPU eine "divide by 0"-Fehlermeldung bekommt, oder? Das ist mir auch schon untergekommen (mit AMD K6-2 500 mit MMX), aber ich konnte das durch myslow oder CPU-Killer wegbekommen. Ich kann mich erinnern, daß es da ein Spiel gab (ich glaube, es war ein altes Lucas Arts Adventure), bei dem die Abbremsung nur in den ersten Sekunden nach Start nötig war (man kann CPU-Killer so einstellen).

Oboe
Zitieren
#31
0
Richtig, ein "divide by 0" ist eine typische Fehlermeldung für BTP.
Andere Kandidaten sind "run-time error R6000 - stack overflow" etc.

Wenn Du das Problem mit einem "Verlangsamer" hinbekommen hast, war es aber eher ein Glücksfall. (So etwas hängt von der verwendeten BTP-Version ab, vom Programm-Code selbst und, und, und...)

Es gibt aber auch Spiele (ich weiß aus dem Stegreif nicht mehr, welche das sind), die ähnlich reagieren, obwohl sie mit einer anderen Softare erstellt wurden. Und da half keines von den Slow-Tools.
Zitieren
#32
0
Ich kann mich auch nicht mehr ganz genau erinnern - zu lange her. Ich meine, daß ich mit Monkey Island 1 und/oder mit Indiana Jones 3 das Problem hatte.

Ehrlich gesagt verstehe ich immer noch nicht ganz, warum die Geschwindigkeitseinstellung in DosBox nicht genügt Confused

Oboe
Zitieren
#33
0
Zitat:Original von Oboe
Ehrlich gesagt verstehe ich immer noch nicht ganz, warum die Geschwindigkeitseinstellung in DosBox nicht genügt Confused

Weil er ein Win3.x Spiel verlangsamen will und Win3.x unter DosBox ist ne Geschichte für sich. Also ich habs da nicht ordentlich zum laufen gebracht.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#34
0
Ach so, jetzt hab' ich's geschnallt. Da wird dann auch myslow in einer Virtual Machine nichts nützen, weil sich myslow nur in die *pif von DOS-Programmen hängt.

ALs ich vor drei Jahren mit Slowdownprogrammen herumexperimentiert habe, war CPU Killer 2.05 das einzige für Windowsprogramme, das mir gefiel (wegen der Einstellungsmöglichkeiten, z.B. Kommandozeilenparameter). Die neue Version 3.xx war nicht so gut (es gab irgendein Problem). Man kann bei ihr zwar auch den alten 2.xx-Algorithmus einstellen, aber das Problem blieb trotzdem.

Eine Virtual Machine bremst doch sowieso schon immens. Reicht das noch nicht? Hier ist eine Windows 95 Virtual Machine dabei:

Comix Zone (Windows 95 CD)

Wenn das nicht reicht, würde ich CPU Killer 2.05 zusätzlich versuchen.

Oboe
Zitieren
#35
0
Zitat:Original von thEClaw
So, ich hoffe dann mal, dass eure kreativen Ergüsse weiterfließen, vielleicht habt ihr ja noch eine bahnbrechende Idee. Wink

Bin noch dabei rumzuprogrammieren. Das Ergebnis meiner ersten Idee war unbefriedigend bin nun an der zweiten drann. Mal sehen, vieleicht wirds was. Würde dann mit allen Windows-Prozessen funzen.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#36
0
Das klingt ja schonmal gut, Thorium - danke für die Mühe. Wink

@ Oboe: Das Spiel soll unter Windows 3.1 oder sogar Windows 95 laufen. Theoretisch gings auch unter höheren Systemen, macht allerdings auf Grund der speziellen Anforderungen ziemliche Probleme. Die virtuelle Maschine sollte meiner Meinung nach auch ausreichend bremsen, da hatte ich mich allerdings verschätzt - der Virtual PC rast so davon, dass ich das Spiel praktisch gleich unter XP starten könnte (dann eben nur mit dem Problem, dass die Farben invertiert sind und ich jedesmal die Auflösung auf 640x480 runterstellen muss, was mir den Desktop ordentlich durcheinander würfelt).

Ich habe also momentan unter XP eine Bremse laufen und auf dem gleichen Kern den Virtual PC. Jedoch führt das zu einem nicht sonderlich flüssigen Spielverlauf, da die CPU-Auslastung zwischen 80 und 94% schwankt (auf einen Kern runtergerechnet). Mit CPU Killer 3 hatte ich das Problem, dass es ja nur Shareware ist und sich nach 10 min ausschaltet.

Und jetzt zu Myslow: Die Theorie klingt sehr gut, aber leider lässt sich das Programm unter meinem XP ja nicht laden, ich versuch's gleich nochmal in der virtuellen Maschine unter Windows 95 - mal sehen, ob es da zu konstanter Geschwindigkeit verhilft.

EDIT: OK, das Programm lässt sich starten, jedoch habe ich keine *.pif-Verknüpfung zu meinem Spiel - automatisch wird eine *.lnk-Datei erzeugt. Und da es sich um ein Windows-Spiel handelt, weiß ich gar nicht, ob eine *.pif möglich ist...

EDIT 2: Jetzt habe ich eine *.pif-Datei, bin allerdings nicht sicher, ob MySlow wirklich arbeitet. Ich teste mal weiter.

EDIT 3: Ein Windows-Programm scheint durch myslow leider nicht gebremst zu werden, sondern nur die Dos-Konsole, über die das Programm aufgerufen wird. Schade eigentlich, das Prinzip ist genial - und mit dem Kontextmenü auch sehr schön umgesetzt.
Zitieren
#37
0
Echt? Eine *.pif für ein DOS-Programm?
Zitieren
#38
0
Wenn man früher ein Dos-Programm gestartet hat und irgendetwas schief ging (vielleicht auch sonst) wurde automatisch eine *.pif-Datei erzeugt, damit man da ein paar Einstellungen vornehmen konnte. Ist eigentlich nicht für Windows-Programme gedacht - und funktioniert leider auch nicht wirklich. Es wird einfach eine Konsole aufgerufen, in der der Befehl zum Starten des Programms eingegeben wird und dann startet das Programm separat - die Bremswirkung geht daran vorbei. Ansonsten sieht myslow so ziemlich nach dem Besten aus, was ich bisher getestet habe - ist nur eben schade, dass es a) nur unter Windows 9x läuft und b) scheinbar kein Windows-Programm bremsen kann.
Zitieren
#39
0
Ach so, die *.pif ist selbst gebastelt Big Grin. Ja, unter Windows 9x ist myslow ziemlich super. Ich kann mit meinem K6-2 500 sogar Wing Commander I und II ruckelfrei in der richtigen Geschwindigkeit laufen lassen (beide laufen normalerweise schon auf einem 486er zu schnell).

Ich habe Dir eine PN geschickt.
Zitieren
#40
0
Hab' ich empfangen und geantwortet, danke. Wink

Ich werde mal versuchen, an den Quellcode von myslow und die Erlaubnis, daran rumzubasteln, ranzukommen. Das Programm ist ja so weit entwickelt, vielleicht lässt sich damit was anfangen. Allerdings bin ich kein allzu guter Programmierer und es ist unwahrscheinlich, dass das Programm in einer mir bekannten Sprache geschrieben ist - ich meld' mich also, wenn ich es haben sollte und bitte nochmal lieb um Hilfe. Big Grin

EDIT: Hab' jetzt 'ne Mail an den Schaffer von MySLOW geschrieben, mal sehen, ob er antwortet. Ihr könnt euch ja trotzdem weiter die Köpfe zerbrechen - schließlich wäre so ein kleines Programm (wenn es überall funktionieren würde) jeder CPU-Bremse bei weitem überlegen.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Nancy Drew Spiele Spezialist gesucht Teddybaerchen 0 151 21.01.2024, 17:23
Letzter Beitrag: Teddybaerchen
  HILFE gesucht: Dungeon Keeper Direct3D Version lopez72 27 8.915 20.06.2020, 16:10
Letzter Beitrag: lopez72
  [Hilfe] Warlords IV Patch 1.05 für Deutsche Version gesucht Commodus 5 2.332 19.03.2020, 10:41
Letzter Beitrag: Traxx Amiga EP
  Gesucht: PC-Player 11/1997 lopez72 0 1.040 05.10.2019, 09:19
Letzter Beitrag: lopez72
  [Hilfe] Tester gesucht! Req.: CH-Tastatur & 1h Zeit SirJohn 1 1.748 13.04.2019, 09:10
Letzter Beitrag: Heinrich Reich

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste