• Produkte
  • Funktionen
  • Mod Master
  • Herunterladen
  • Spiele
  • Blog
  • Preisgestaltung

Strahlungsstotterentfernungsmittel

Autor:skyranger-1Letzte Aktualisierung:25/05/2014 00:02:071.1M258KB

Fallout 3 - Game of the Year Edition Strahlungsstotterentfernungsmittel-1-lagofast mod master

Mod-Einführung

FOSE ist erforderlich. Verbesserung des Stotterns und/oder der Leistung.
Strahlungsstotterentfernungsmittel
Version 4.0.7
SkyRanger-1

Thema des Forums: http://www.bethsoft.com/bgsforums/index.php? showtopic=1069833
TESnexus-Seite: http://www.fallout3nexus.com/downloads/file.php? id=8886

Dies ist ein FOSE Plugin, das nur mit FOSE 1.2 beta 1 oder höher funktioniert.

Dies gilt nur für Fallout 3 Version 1.7.




0. Inhalt:
====================================

0. Inhalt
1. Überblick
2. Installation
3. Deinstallation
4. Allgemeine Einstellungsänderungen
5. Alle Einstellungen
6. Versionsverlauf
7. Wie das funktioniert
8. Credits



1. Überblick:


Dieses Plugin macht Fallout 3 weniger "stotternd" und fühlt sich im Allgemeinen flüssiger an oder funktioniert besser. Es verhindert oder mildert viele Probleme im Zusammenhang mit Stottern und Bildrate und kann die Häufigkeit von Stotter-bedingten Abstürzen reduzieren. Weitere Details finden Sie in Abschnitt 7: Wie dies funktioniert.

Beachten Sie jedoch, dass dies normalerweise keine Probleme mit Ihrem Treiber, Ihrer Hardware oder Ihren Codecs beheben wird-wenn Sie eine Grundursache für die schlechte Leistung haben, wird dies wahrscheinlich nicht viel helfen.

Dies ist ein Anschluss des Vergessenen Stutternremovers (OSR) für die Strahlung. Bisher ist es nicht so effektiv wie der ursprüngliche Forget-Stotter-Entferner, aber es sollte helfen.

Das soll mit allem kompatibel sein. Das einzige, was zu beachten ist, ist, dass der mod, der FPS überwacht, nicht genau FPS außerhalb des von diesem Plugin eingestellten Zielbereichs messen kann (Standardwert 10 bis 30). Tatsächlich kann selbst ein FPSE, das nur nahe an einem FSR-Ziel liegt, schwer zu messen sein.



2. Installation:
====================================

Der Installationsprozess ist:

1. A. Wenn die von Ihnen installierte Version von FSR eine. zip-Datei ist, ziehen Sie einfach den Ordner "Daten" aus der zip-Datei in Ihren Vergessenen Ordner.

1. B. Wenn die von Ihnen installierte Version von FSR keine. zip-Datei ist, müssen Sie die Datei sr_Fallout_Stutter_Remover.dll in den Ordner Fallout\Data\fose\plugins ablegen. Wenn Sie keinen solchen Ordner haben, erstellen Sie ihn bitte. Wenn eine ältere Version von FSR installiert ist, löschen Sie deren ini-Datei (Data\fose\plugins\sr_Fallout_Stutter_Remover.ini). Wenn keine vorhandene FSR-ini-Datei vorhanden ist, erzeugt FSR beim nächsten Ausführen von Fallout eine neue ini-Datei mit den Einstellungen, die Ihrer Version entsprechen.



3. Deinstallation:


Löschen Sie einfach die Datei sr_Fallout_Stutter_Remover.dll aus dem Ordner Data\fose\plugins.
Es reicht auch, diese Datei in ein anderes Verzeichnis zu verschieben.



4. Allgemeine Einstellungsänderungen
====================================

Im Allgemeinen versucht FSR, anständige Standardeinstellungen zu haben, damit der Benutzer nicht mit ihnen herumspielen muss. In einigen Einstellungen können die Standardwerte jedoch nicht für Sie geeignet sein, entweder weil die Standardwerte nicht Ihrem Geschmack entsprechen oder weil FSR falsche Annahmen über Ihren Computer macht.

FSR speichert seine Einstellungen in der Datei Data\fose\plugins\sr_Fallout_Stutter_Remover.ini
Wenn die Datei nicht vorhanden ist, starten Sie einfach Fallout mit installiertem FSR und FSR generiert eine neue Datei mit den Standardeinstellungen für Ihre FSR-Version. Wenn Sie in Ihren Einstellungen vermasselt haben oder auf die Standardeinstellungen zurückkehren möchten, löschen Sie einfach diese ini-Datei und starten Sie Fallout.

Allgemeine Informationen zu den Einstellungen sowie ausführlichere Informationen zu jeder einzelnen Einstellung finden Sie in Abschnitt 5.

Die Einstellungen, die Sie wahrscheinlich ändern möchten, sind:

FPS_Management\MaximumFPS: (Standard ist 30, denken Sie daran, es auf 0 oder einen anderen Wert zu ändern)
Manche Leute wollen ihre Bildrate einfach nicht begrenzt werden. Sie können das FPS-Limit deaktivieren, indem Sie es auf 0 setzen. Wenn die Bildschirmbildwiederholfrequenz beim Spielen von Fallout nicht 60 Hz beträgt, können Sie versuchen, diese auf Ihre Bildschirmbildwiederholfrequenz zu ändern, oder die Hälfte der Bildschirmbildwiederholfrequenz oder ein Drittel der Bildschirmbildwiederholfrequenz. Diese Einstellung ist ungültig, wenn Master\bManageFPS auf 0 geändert wird.

Hashtables\bAllowDynamicResizing: (Standardwert 0, betrachten Sie eine Änderung auf 1)
Das Einschalten kann die Gesamtleistung/FPS eines stark modifizierten Spiels deutlich verbessern. Leider kann es zu Rennbedingungen und allgemeiner Verwirrung führen, insbesondere wenn Skripte, die bestimmte fose Befehle verwenden, jeden Frame ausgeführt werden. Ich habe versucht, die Chancen, dass etwas schief geht, auf null zu reduzieren, aber... Das erfordert vielleicht mehr Arbeit. Gleichzeitig ist diese Funktion standardmäßig deaktiviert. Diese Einstellung ist ungültig, wenn Master\bHookHashtables auf 0 geändert wird.

Unterdrückung der kritischen Abschnitte: (speziell)
Standardmäßig unterdrückt FSR einen bestimmten kritischen Teil, ohne den die Strahlung besser zu funktionieren scheint. Es gibt einen weiteren entscheidenden Teil, in dem einige Benutzer scheinen in der Lage zu sein, zu unterdrücken, ohne Probleme zu verursachen, aber andere Benutzer haben CTDs oder andere Probleme beim Unterdrücken auf interne-> externe Übergänge. Das würde nur eine geringe Verbesserung beim Stottern erzeugen, so dass ich normalerweise nicht empfehlen würde, es zu unterdrücken, aber Sie können, wenn Sie wollen. Um es zu unterdrücken, suchen Sie in der ini-Datei die Zeile mit der Aufschrift "CallerAddress = 0x70172A" und fügen Sie danach eine neue Zeile mit der Aufschrift "Mode = 5" hinzu. Bitte beachten Sie, dass der Fall dort wichtig ist... Es sollte "Modus" sein, nicht "Modus". Diese Einstellung ist ungültig, wenn Master\bHookCriticalSections oder CriticalSections\bUseOverrides auf 0 gesetzt ist.
Hinweis: Der durchgestrichene Teil direkt über der Readme-Datei ist für das Vergessen, nicht für die Strahlung; Es gibt ein Äquivalent für Strahlung, aber ich habe noch keinen genauen Wert dafür gefunden. Lassen Sie das vorerst ignorieren.



5. Alle Einstellungen
====================================

FSR speichert seine Einstellungen in der Datei Data\fose\plugins\sr_Fallout_Stutter_Remover.ini
Wenn die Datei nicht vorhanden ist, starten Sie einfach Fallout mit installiertem FSR und FSR generiert eine neue Datei mit den Standardeinstellungen für Ihre FSR-Version. Wenn Sie in Ihren Einstellungen vermasselt haben oder auf die Standardeinstellungen zurückkehren möchten, löschen Sie einfach diese ini-Datei und starten Sie Fallout.

Bitte beachten Sie, dass sich das Format der FSR-ini-Datei zwischen den Hauptversionen von FSR ändert-Sie sollten die ini-Datei der FSR-Version 1 nicht mit der FSR-Version 2 usw. verwenden. In FSR2 sind ini-Dateien in Abschnitte wie „SectionName{SettingName=Value}“ organisiert. Eine bestimmte Einstellung kann SectionName\SettingName genannt werden, um sie von anderen Einstellungen mit demselben Namen in verschiedenen Abschnitten zu unterscheiden. Im Allgemeinen sind Einstellungen, deren Namen mit "i" beginnen, ganzzahlige Werte (d.h. Zahlen ohne Dezimalpunkt), Einstellungen, deren Namen mit "b" beginnen, Boolesche Werte (d.h. 0 oder 1) und Einstellungen, die mit "f" beginnen, sind Zahlen, die möglicherweise einen Dezimalpunkt haben (d.h. 3,14). Einige Einstellungen beginnen nicht mit einem dieser Buchstaben, und in diesem Fall ist es möglicherweise unklar, welcher Werttyp der richtige ist.

Hier sind die Einstellungen und deren aktuelle Standardwerte (die möglicherweise nicht 100% aktuell sind):

Abschnitt: Haupt{}
Dieser Abschnitt enthält eine Option, um jedes der wichtigsten Subsysteme von FSR zu deaktivieren, sowie einige Einstellungen, die nicht zu einem bestimmten Subsystem von FSR gehören.

Master\bManageFPS (Standard: 1)
Wenn Sie diesen Wert auf 0 setzen, werden alle Inhalte der FPS-Verwaltung deaktiviert und jede Einstellung im Abschnitt FPS_Management bedeutungslos.

Master\bHookCriticalSections (Standard: 1)
Wenn Sie es auf 0 setzen, deaktivieren Sie alle kritischen Abschnitte und machen jede Einstellung im Abschnitt CriticalSections bedeutungslos.

Master\bHookLightCriticalSections (Standard: 1)
Wenn Sie diesen Wert auf 0 setzen, wird der Inhalt aller Abschnitte Light CriticalSections deaktiviert und jede Einstellung im Abschnitt Light CriticalSections bedeutungslos.

Master\bHookHashtables (Standard: 1)
Wenn Sie es auf 0 setzen, wird der gesamte Inhalt der Hashtabelle deaktiviert, sodass jede Einstellung im Abschnitt CriticalSections bedeutungslos wird.

Master\bReplaceHeap (Standardwert: 0)
Wenn Sie es auf 1 setzen, wird der Heap-Ersatz aktiviert, so dass die Einstellung im Heap-Abschnitt sinnvoll wird.

Master\bLogToConsole (Standardwert: 0)
FSR protokolliert verschiedene Informationen in seine Protokolldateien. Eine Änderung dieser Einstellung auf 1 führt dazu, dass FSR diese Informationen auch an die Konsole druckt.
Die Protokolldatei ist sr_Fallout_Stutter_Remover.log im Fallout-Verzeichnis. Es wird jedes Mal erstellt oder überschrieben, wenn ein Fallout läuft, in dem ein FSR installiert ist.

Master\bFix64Hertz (Standard: 1)
Wenn Sie dies auf 1 setzen, beheben Sie das Problem bei Fallout, das "Mikrostottern" verursacht. Dieses Problem wird manchmal als "64-Hertz-Problem" bezeichnet. Konkret ist das Problem, dass das logische Timing von Fallout Spielen normalerweise mit einer Auflösung von 1/64 Sekunden erfolgt, und wenn vsync eingeschränkt ist, ermöglicht die Bildwiederholfrequenz normalerweise Fallout 60 Bilder pro Sekunde zu zeichnen. Wenn die Bildrate ihr Maximum erreicht, erzeugt diese Kombination eine Beat-Frequenz, bei der die Spielzeit von 4 Bildern pro Sekunde doppelt so hoch ist wie 56. Die Reparaturerzwungenstrahlung der FSR-Anwendung nutzt die Zeit mit einer Auflösung von 1/1000 Sekunden statt 1/64 Sekunden.

Master\bFlushLog (Standard: 1)
Dies fordert FSR auf, alle Protokollnachrichten sofort in seine Datei zu schreiben, anstatt sie im Speicher zu puffern. Es kann die Leistung aufgrund der hohen Anzahl von Festplattenzugriffen leicht verschlechtern, aber es macht es wahrscheinlicher, dass alle Nachrichten, die sich auf ein Problem beziehen, das kurz vor dem Absturz aufgetreten ist, erfolgreich in die Protokolldatei geschrieben werden.

Master\iSchedulingResolution (Standardwert: 1)
FSR wird den Windows-Scheduler auffordern, mit einer Auflösung von so vielen Millisekunden auszuführen. FSR und Radiation funktionieren in der Regel besser, wenn dies auf 1 eingestellt ist. Dies kann jedoch die Akkulaufzeit des Laptops etwas verkürzen.

Kapitel: FPS_Management {}
Dieser Abschnitt enthält Einstellungen, die anpassen, wie FSR Ihre Bildrate und Ihren Spielzeitfluss verwaltet.

FPS_Management\bAllowSlowMotion (Standard: 1)
Wenn Sie dies auf 0 setzen, wird verhindert, dass der FSR versucht, den normalen Spielzeitstrom zu überschreiben. In der Vergangenheit führte FSR dies zu einigen Fehlern (der berüchtigteste war ein Fehler bei der Umwandlung von toten Zellen von NPCs in der Nähe), aber diese werden jetzt als behoben angenommen. Für den Fall, dass Sie vermuten, dass es ein Problem gibt, können Sie diese Einstellung verwenden, um alle FSR-Spielzeitanpassungen zu erzwingen, deaktivieren. Trotz des Namens verhindert das Setzen auf 0 auch, dass FSR die Spielzeit schnell vorlauft, obwohl FSR dies nur bei sehr seltenen Kombinationen von Einstellungen und Umgebungen versucht.

FPS_Management\MaximumFPS (Standard: 30)
Dies ist der maximale FPS, den der FSR nicht überschreiten darf. Normalerweise setze ich es auf eine hohe genug Bildrate ein, damit ich mich nicht allzu sehr um zusätzliche Bilder pro Sekunde kümmere. Bitte beachten Sie, dass sich FSR hier nicht wirklich mit "Frames pro Sekunde" beschäftigt, sondern diesen Wert in Millisekunden pro Frame umwandelt und jeden Frame individuell betrachtet. Wenn ein Frame zu schnell abgeschlossen ist, führt der FSR dazu, dass der Fallout Hauptthread in den Schlafzustand geht, bis die richtige Anzahl von Millisekunden abgelaufen ist. Durch das Versetzen des Fallouts-Haupt-Threads in den Ruhezustand können Ressourcen für den Fallouts-Hintergrund-Thread oder andere Programme freigegeben werden, die möglicherweise im Hintergrund ausgeführt werden. Wenn nichts zusätzliche Ressourcen verbrauchen will, wird Ihre CPU und/oder GPU kühler laufen und weniger Strom verbrauchen.

FPS_Management\MinimumFPS (Standard: 10)
Dies ist der niedrigste FPS, unter dem der FSR keine Strahlung erlaubt. Dabei geht es jedoch nicht um echte Sekunden, sondern um Sekunden der Spielzeit. Wenn Ihr Computer also wirklich langsam ist, können Sie immer noch 1 FPS haben, aber dies verlangsamt die Spielzeit auf 10% der normalen Zeit, so dass die Spielzeit immer mindestens 10 Bilder pro Sekunde beträgt. Alle Zahlen sind nur ein Beispiel, basierend auf einer echten FPS von 1 und einer minimalen FPS Einstellung von 10 (Standard). Beachten Sie auch, dass dies, wie MaximumFPS, tatsächlich auf einer Einzelframe-Basis funktioniert und sich mit Millisekunden pro Frame und nicht mit Frames pro Sekunde befasst.
Ich stelle es normalerweise auf eine niedrigere FPS ein, die ich fühle, dass ich aus der Ferne spielen kann. Der größte Zweck dieser Einstellung besteht darin, zu verhindern, dass die Fallout Spiellogik verrückt wird, wenn die FPS zu niedrig ist. Zu den Problemen, die dadurch verhindert werden, gehören unmögliche Kämpfe, da der Feind zwischen den Frames um dich herumlaufen kann, die Kontrolle vermasselt wird, weil Fallout denkt, dass der Angriffsschlüssel während des gesamten Frames ausgeschaltet ist oder nicht ausgeschaltet ist, was zu einem Power Power-Angriff führen kann, wenn der Angriff beabsichtigt ist, und viele andere ähnliche Probleme.

FPS_Management\iSmoothFrames (Standard: 0)
Ist dies auf 0 gesetzt, so macht die "Glätten"-Logik nichts. Um die Glättungslogik zu aktivieren, versuchen Sie, sie auf 2 zu setzen. Der Bericht deutet jedoch darauf hin, dass eine glatte Logik wenig Wert hat. Die Glättungslogik soll verschiedene Probleme verhindern, die durch Stottern und andere schnelle Änderungen der Bildrate verursacht werden. Wenn bAllowSlowMotion 0 ist, funktioniert die Glättungslogik nicht.

FPS_Management\iSmoothMode (Standard: 0)
Das sollte 0, 1, 2 oder 3 sein. Wenn es 0 oder 1 ist, dann wird eine zusätzliche Logik aktiviert, um zu versuchen, Stotterereignisse aus dem Zeitfluss herauszufiltern. Diese Logik kann dazu führen, dass die Gesamtmenge der Spielzeit nicht genau gleich der Gesamtmenge der Echtzeitzeit ist, wenn der FPS plötzlich sinkt. Ist es 2 oder 3, so werden die zusätzlichen logischen Bits deaktiviert. Die Differenz zwischen 0/2 und 1/3 ist eine sehr heikle Frage, welche Rahmen die Zeit zwischen ihnen neu verteilen.

FPS_Management\iSleepExtra (Standard: 2)
FSR würde die Strahlung zwingen, so viele Millisekunden pro Sekunde zu schlafen. Dies hilft, Ressourcen für Hintergrund-Threads oder andere Prozesse freizugeben oder die Temperatur und den Stromverbrauch von Computerkomponenten leicht zu reduzieren. Der Hauptvorteil besteht darin, dass, wenn ein Hintergrund-Thread darum kämpft, eine bestimmte Ressource zu erhalten, die vom Haupt-Thread belegt wird, dies ihm die Möglichkeit gibt, diese Ressource gelegentlich zu erhalten.
Wenn dies auf -1 gesetzt ist, lässt der FSR FPS-Management-Code die Strahlung niemals schlafen-überschreitet der FPS die maximale FPS, dann verschwendet der FSR Zeit im Leerlaufzyklus. Dieser Modus wird nicht empfohlen, da er nur zu Testzwecken dient.

FPS_Management\bFPSConsoleSPAM (Standard: 0)
Dies führt dazu, dass der FSR die Zeit aufzeichnet, die benötigt wird, um jeden Rahmen abzuschließen. Es wird einmal pro Frame ausgeführt, wodurch eine große Aufzeichnungszeit entsteht.

FPS_Management\iSchedulingParanoia (Standard: 1)
Diese Einstellung wird in Millisekunden angegeben. Es bestimmt, wie paranoid der MaximumFPS-Code gegenüber dem Scheduler ist. Ist der Wert hoch, dann schläft der MaximumFPS-Code nie, sondern verschwendet Zeit in einer Leerlaufschleife. Wenn der Wert 0 ist, vertraut der MaximumFPS-Code dem Scheduler darauf, die Haupt-Thread-Ausführung zum vollständig angeforderten Zeitpunkt wieder aufzunehmen. Im Allgemeinen würde ich bei 1 Punkt Kompromisse eingehen, weil ich ein wenig paranoid über den Scheduler bin, aber trotzdem erlauben, dass viel Freizeit konstruktiv genutzt wird.

FPS_Management\iHardMaxFrametime (Standard: 200)
Dies wird in Millisekunden angegeben. Die Leute haben herausgefunden, dass seltsame Dinge passieren, wenn mein Zeitstrom-Anpassungscode zu viel Zeit zum falschen Zeitpunkt einsetzt. Schlechte Dinge. Wie, NPCs in der Nähe sterben zufällig. Diese Einstellung verhindert dies, indem die Anzahl der Millisekunden eingestellt wird, die der FSR im normalen Prozess einen Durchgang zulässt, auf ein absolutes Maximum. Normalerweise erreichen Sie das Minimum FPS, bevor Sie diese Grenze erreichen, aber in einigen Fällen wird das Minimum FPS verzichtet, um Nebenwirkungen wie Lippenbewegungen zu verhindern, die nicht mit dem Ton synchronisiert sind, also ist dies die zweite Stufe des Minimum FPS, und ich bin wirklich das Minimum FPS. Wenn Sie es zu niedrig setzen, führen Sie zu unsynchronisierten Lippenbewegungen im Dialog, und wenn Sie es zu hoch setzen, führen Sie zu Fehlern wie zufälligen Tod von NPCs. Ich habe 200 als Kompromiss genommen-es sollte nicht dazu führen, dass die Lippen nicht synchronisiert werden, es sei denn, Ihre Framerate fällt unter 5 im Dialog. Wenn Sie Fallout mit einer Bildrate unter 5 spielen, dann brauchen Sie echte Hilfe.

Abschnitt: Schlüsselabschnitt {}
Dieser Abschnitt beschreibt alle Änderungen, die FSR an Fallouts CRITICAL_SECTIONs vorgenommen hat. Möchten Sie etwas über das Objekt CRITICAL_SECTION erfahren? Fallout benutzt sie, um zu verhindern, dass seine verschiedenen Fäden versehentlich einander töten. Microsoft stellt den Code für sie zur Verfügung. Fallout verwendet eine etwas andere Version, abhängig von der Windows-Version, auf der es läuft. Mehr darüber können Sie auf MSDN lesen.

CriticalSections\bEnableProfiling (Standardwert: 0)
Wenn es auf 1 gesetzt ist, erfasst der FSR Informationen über die Zeit/Leistung des Betriebs kritischer Teile der Strahlung. Dies hat einen geringen, aber erheblichen Einfluss auf die Leistung. FSR wird Informationen in seinen Logfiles protokollieren. Dies kann nützliche Informationen darüber liefern, warum Ihre Strahlung stottert oder langsam läuft. Diese Informationen können verwendet werden, um überschriebene Teile oder andere Inhalte der FSR ini-Datei anzupassen.

CriticalSections\bEnableMessages (Standard: 0)
Wenn es auf 1 gesetzt ist, zeichnet der FSR Informationen über einige Timing/Performance-Ereignisse für kritische Abschnitte auf. Die Leistungskosten dafür sind gering, aber es verwirrt die Protokolldatei und erschwert es, nicht kritische Teile der Informationen darin zu finden.

CriticalSections\bUseOverrides (Standard: 1)
Wenn dies auf 1 gesetzt wird, wird der FSR die Einstellungen im Overlay Abschnitt von ini verwenden, um festzustellen, was mit einem bestimmten kritischen Abschnitt zu tun ist.

CriticalSections\iDefaultMode (Standardwert: 2)
Dies bestimmt, wie der FSR mit kritischen Teilen verarbeitet, die keinen Mustereintrag in der Overlay-Liste haben.
1: Es versetzt den kritischen Teil in ein annähernd normales Verhalten.
2: Es passt kritische Abschnitte auf Kosten des Durchsatzes an, um die Fairness zu verbessern. Dies verhindert, dass ein Thread den kritischen Abschnitt zu viel belegt, aber die Netto-Rate kann mit diesem kritischen Abschnitt abgeschlossen werden.
3: Ein Kompromiss zwischen Fairness und Durchsatz wird versucht, wobei es normalerweise für Durchsatz optimiert, gelegentlich aber das Verhalten zur Fairness optimiert wird.
5: Der kritische Bereich wird unterdrückt. Die Unterdrückung kritischer Teile führt häufig zu einem Strahlungskollaps, verbessert aber häufig auch die Leistung. Einige wichtige Teile können jedoch unterschiedlich betroffen sein.
6: Der Haupt-Thread erhält die Priorität dieses kritischen Abschnitts.
7: Der Hintergrund-Thread erhält die Priorität dieses kritischen Abschnitts.

CriticalSections\iDefaultSpin (Standardwert: 500)
Dies wirkt sich darauf aus, wie lange ein Thread versucht, einen kritischen Abschnitt zu betreten, bevor er den Scheduler auffordert, ihn in den Ruhezustand zu versetzen, bis der kritische Abschnitt verfügbar ist. Theoretisch führt ein zu kleiner Wert zu zu viel Scheduler-Overhead, während ein zu großer Wert zu verschwendeten CPU-Zyklen führt. Ich denke, 500 ist eigentlich ein kleiner Wert. Der ideale Wert kann mit der Anzahl der Kernels/Hardware-Threads steigen.

CriticalSections\iStutterLevel (Standard: 4)
Dieser Parameter beeinflusst die Häufigkeit des Schaltverhaltens des kritischen Abschnitts Modus 2. Weitere Informationen zum kritischen Abschnittmodus 2 finden Sie unter iDefaultMode. Kleinere Zahlen bedeuten häufiges Umschalten, größere Zahlen bedeuten seltenes Umschalten. Der ideale Wert sollte zwischen 3 und 6 liegen.

Abschnitt: LightCriticalSections {}
Dieser Abschnitt beschreibt alle Änderungen, die FSR an einer Klasse von Strahlungsobjekten vornimmt, die ähnlich wie CRITICAL_SECTIONs verwendet werden, aber mit geringerem Gewicht.

LightCriticalSections\bFullHooks (Standard: 0)
Wenn es auf 1 gesetzt ist, öffnet dies eine vollständigere Version des leichten kritischen Querschnitthakens. Leider sind die vollständigeren Versionen immer noch fehlerhaft, so dass sie derzeit standardmäßig deaktiviert sind.

LightCriticalSections\bEnableProfiling (Standard: 0)
Wenn es auf 1 gesetzt ist, erfasst der FSR Informationen über den Zeitpunkt/die Leistung des Betriebs der leichten kritischen Zone in der Strahlung. Dies hat einen geringen, aber erheblichen Einfluss auf die Leistung. FSR wird Informationen in seinen Logfiles protokollieren. Dies kann nützliche Informationen darüber liefern, warum Ihre Strahlung stottert oder langsam läuft. Diese Informationen können verwendet werden, um überschriebene Teile oder andere Inhalte der FSR ini-Datei anzupassen.

LightCriticalSections\bEnableMessages (Standard: 1)
Wenn es auf 1 gesetzt ist, zeichnet der FSR Informationen über einige Timing/Performance-Ereignisse für das leichte kritische Segment auf. Die Leistungskosten dafür sind gering, aber es verwirrt die Protokolldatei und erschwert es, nicht kritische Teile der Informationen darin zu finden.

LightCriticalSections\bUseOverrides (Standard: 1)
Wenn dies auf 1 gesetzt wird, wird der FSR die Einstellungen im Overlay Abschnitt von ini verwenden, um festzustellen, was mit einem bestimmten kritischen Abschnitt zu tun ist. Das Überschreiben ist nicht wirksam, es sei denn, vollständige LCS-Hooks (bFullHooks oben) sind aktiviert.

LightCriticalSections\iDefaultMode (Standardwert: 2)
Dies bestimmt, wie der FSR kritische Abschnitte beleuchtet, die keine Mustereinträge in der Overlay-Liste haben. Es versucht, ein Musternummerierungsschema zu verwenden, das dem kritischen Abschnitt ähnelt-siehe CriticalSections\iDefaultMode oben für weitere Informationen. Abhängig davon, ob bFullHooks aktiviert ist oder nicht, kann sich das Verhalten einiger Modi anders verhalten.

LightCriticalSections\iDefaultSpin (Standardwert: 500)
Dies bestimmt, wie der FSR kritische Abschnitte in der Überlagerungsliste beleuchtet, die keinen gedrehten Eintrag haben. Es versucht, eine ähnliche Bedeutung zu haben wie ein kritischer Abschnitt-siehe CriticalSections\iDefaultSpin oben für weitere Informationen. Je nachdem, ob bFullHooks aktiviert ist oder nicht, kann die Bedeutung der Rotation unterschiedlich sein.

LightCriticalSections\iStutterLevel (Standard: 4)
Dieser Parameter beeinflusst die Häufigkeit des Schaltverhaltens des leichten kritischen Abschnitts Mode 2. Weitere Informationen zum kritischen Abschnittmodus 2 finden Sie unter iDefaultMode. Kleinere Zahlen bedeuten häufige Umschaltungen, größere Zahlen bedeuten seltene Umschaltungen. Der ideale Wert sollte zwischen 3 und 6 liegen.


Abschnitt: Heap {}
Dieses Ding wirkt noch nicht gegen die Strahlung. Nicht verwenden.

Abschnitt: Hashtabelle {}
Fallout besteht aus einer Reihe von Hash-Tabellen, die verwendet werden, um verschiedene Inhalte zu finden. Sie verwenden eine normalerweise schlechte Hash-Tabellen-Implementierung, aber das eigentliche Problem ist, dass sie die Größe der Hash-Tabelle nie ändern. Die Leistung verschlechtert, wenn die Hash-Tabelle zu voll ist. Wenn die Hash-Tabelle nicht ausreicht, kann ein wenig Speicher verschwendet werden und die Cache-Konsistenz kann verschlechtert werden. Leider ist viel Hash-Tabellen-Code überall inline und FOSE macht verschiedene Annahmen über die Hash-Tabellen, und ich weiß einfach nicht, wie das relevante Thread-Modell sein soll, daher ist es ziemlich schwierig, sie sicher zu ändern. Trotzdem habe ich ein paar Hashtabellen-Hooks, die allmählich besser werden.

Hashtable\bAllowDynamicResizing (Standard: 0)
Wenn Sie es auf 1 setzen, erhöht FSR die Größe der Hash-Tabellen, sobald sie zu voll sind. Das Verhalten, ihre Größe zu ändern, ist jedoch voller Probleme-es kann zu Abstürzen oder Fehlern führen, und die Methoden, die ich verwende, um dies zu verhindern, können zu kleinen Leistungsunterbrechungen oder anderen Abstürzen oder Fehlern führen. Trotzdem, an diesem Punkt denke ich, dass es wahrscheinlich ein wenig anständig funktioniert.

Hashtable\bUseOverrides (Standard: 0)
Derzeit gibt es keine Hash-Tabellen-Umschreibungen, die Syntax für deren Angabe ist ungeschickt, und wenn der falsche Wert eingegeben wird, besteht die Möglichkeit, stillschweigend zu fehlen und andere Operationen auszuführen. Dies wird jedoch letztendlich gelöst, indem die durch die ini-Datei angegebenen Hooks in die Initialisierung der wichtigsten Hash-Tabellen eintreten können, sodass sie mit einer angemessenen Größe beginnen, anstatt später die Größe ändern zu müssen.

Hashtable\bEnableProfiling (Standardwert: 0)
Dadurch werden die Hash-Tabellen überwacht und Informationen darüber aufgezeichnet, wie voll sie sind und wie viel sie zugegriffen wurden.

Hashtables\bEnableMessages (Standard: 0)
Wenn dies 1 ist, dann kann der Hash-Tabellen-Code gelegentlich eine Nachricht über das, was er tut, protokollieren.

Hashtable\iHashtableResizeScale1 (Standard: 2)
Hashtable\iHashtableResizeScale2 (Standard: 4)
Wenn bAllowDynamicResizing 1 ist, bestimmt iHashtableResizeScale1 die minimale Belegungsstufe für die Größenänderung der Hashtabelle und iHashtableResizeScale2 bestimmt, wie groß ihre neue Größe sein wird. Beide Zahlen sind eigentlich Exponenten, die auf 2 angewendet werden, so dass ein Setzen von 3 einen Faktor von 8 und ein Setzen von 5 einen Faktor von 32 bedeutet. Theoretisch könnte eine Reduzierung von iHashtableResizeScale1 auf 1 die Leistung weiter verbessern, da dies die Größe von weiteren Hashtabellen erhöht. ihasTableResizeScale2 sollte wahrscheinlich 1 oder 2 mehr gesetzt werden als ihasTableResizeScale1.

Hashtable\ihashtableSizeDelay (Standard: 20)
Dies ist die Anzahl der Millisekunden, in denen der FSR angehalten wird, wenn die Größe der Hash-Tabelle angepasst wird. Die Idee ist, dass ich zwar nicht verhindern kann, dass ein anderer Thread auf die Hash-Tabelle zugreift, während ich damit beschäftigt bin, aber ich hoffentlich verhindern kann, dass er *beginnt*, auf die Hash-Tabelle zugreift. Also habe ich lange genug verzögert, dass vielleicht, vielleicht, jeder, der bereits auf die Hash-Tabelle zugegriffen hat, fertig wird, und dann mache ich meine Dinge. Leider funktioniert das bei FOSE nicht, da FOSE nicht das tut, was Fallout tut, und selbst wenn es es tut, verwendet es nicht vtables für diese Dinge. Aber atm Ich denke, dass FOSE wahrscheinlich nur vom Hauptthread auf sie zugreift, also wenn mein resizer im Hauptthread läuft, dann muss er sich keine Sorgen um FOSE machen. Vielleicht.

Abschnitt: Überdeckung {}
Dieser Abschnitt enthält Informationen, die dem FSR mitteilen, wie man bestimmte Instanzen verschiedener Objekttypen findet, die dem FSR bekannt sind, und wie man diese spezifischen Instanzen von den Standardeinstellungen für diesen Objekttyp unterscheidet. Im Moment sind hier wirklich nur ein paar spezifische Schlüsselteile aufgeführt, die sich anders verhalten als die meisten.



6. Versionshistorie:
====================================

FPS Capper Version 1:
Dies wird als FPS-Verschlussmaschine bezeichnet. Alles, was es tut, ist FPS-Management. Diese Version ist in eine Reihe von modifizierten OBSE-DLLs integriert.

FPS Capper Version 2:
Dies ist die erste Version mit einer OBSE-unabhängigen dll. Dies wird als FPS-Verschlussmaschine bezeichnet. Alles, was es tut, ist FPS-Management.

Forgotten Stuttering Remover Version 3 beta 1:
Die erste Version hieß Oblivion Stuttering Removal. Manchmal friert es ein paar Minuten im Hauptmenü ein. Die Stimme und Gesichtsbewegungen von NPCs können im Dialog vermasselt werden.
Version 3 beta 2: Die Stimme und Gesichtsbewegungen von NPCs können im Dialog vermasselt werden.

Forgotten Stuttering Remover Version 3 beta 6:
Zwischen beta 5 und beta 6 gab es eine lange Verzögerung, die von vielen alpha-Versionen gefüllt wurde. Dies ist die erste FSR-Version, die das Stottern für den durchschnittlichen Benutzer wirklich reduziert. Dies liegt an den neuen Funktionen: Anpassung der Fairness des kritischen Abschnitts, Unterdrückung des kritischen Abschnitts und Heap-Ersatz. Leider stellt der Heap-Ersatz für viele Anwender nach wie vor ein großes Problem dar. bFix64Hertz ist in ini standardmäßig auf 0 gesetzt, es sollte 1 sein.

Hinweis: Es gab nie eine endgültige Version von Version 3. Wenn es genügend Nachfrage gibt, kann ich einige Korrekturen auf der Grundlage des Quellcodes der Version 3 beta 6 vornehmen.

Radiation Stuttering Remover Version 1 beta 1:
OSR zum anfänglichen Port der Strahlung.

Vergessen/Strahlungsstotterentfernung Version 4.1.0:
Wichtige Änderungen:
1.Unterstützung für Fallout und Oblivion in derselben Codebasis:Es bietet nicht viele Vorteile in Fallout 3, aber es hilft.
2.. ini-Datei: Völlig andere ini-Dateiformate
3.Größenänderung der Hashtabelle: Neue Funktionen zur Verbesserung der Leistung
4.Kritische Abschnitte und leichte kritische Abschnitte:Viele Sonderfälle der kritischen Abschnitte werden zusammengefasst, und jetzt können weitere Anpassungen aus der ini-Datei vorgenommen werden. Es gibt immer noch Probleme mit dem "vollen Hook" für den Code der leichten kritischen Abschnitte.
5.Heap-Ersatz: Ein paar Bugs wurden behoben, aber ich denke, es ist immer noch problematisch. Es funktioniert immer noch nicht gegen die Strahlung.
6.Versionsbenennung:Die Version, die an tesnexus veröffentlicht wurde, wird jetzt als Release Version bezeichnet und nicht als Beta-Version. Die Version, die auf meinen ftp-Server veröffentlicht wurde, heißt jetzt beta-Version, nicht alpha-Version. Die erste Ziffer der Versionsnummer wird nur inkrementiert, wenn die Konfiguration oder das Verteilungsformat wesentlich geändert werden. Die zweite Ziffer der Versionsnummer wird in jeder Release inkrementiert. Für jede Beta-Version wird die dritte Ziffer der Versionsnummer einmal erhöht. Immer wenn eine Zahl erhöht wird, werden alle Zahlen auf der rechten Seite auf 0 zurückgesetzt.




7. Wie funktioniert das:


Dies ist eine FOSE Plugin-dll. Es handelt sich im Grunde um Hacker-Fallout.

7.1: FPS-Verwaltung:
Der FPS-Managementcode überwacht die Bildrate und passt den Ablauf der Spielzeit an. Es mildert das Stottern, indem die Fallout Spiellogik nicht nach vorne springt, wenn es stottert. In der Praxis werden Frames, die lange dauern, letztendlich in Zeitlupe geraten. Dies wird erreicht, indem die Strahlung so verhält, als wäre das iFPSClamp auf MinimumFPS eingestellt, aber nur für Frames, die langsamer sind als MinimumFPS. Auch dadurch kann die Stabilität verbessert werden. Es kann auch eine maximale Bildrate anwenden-wenn die Bildrate verhindert wird, dass die Bildrate mehr als die Hälfte der Bildwiederholfrequenz überschreitet, glauben einige, dass die Strahlung glatter ist, und außerdem hilft dies, Ressourcen für den Strahlungs-Hilfsthread freizusetzen.

Der FPS-Management-Code kann auch den Hauptthread von Fallout für kurze Zeit schlafen lassen, was angenommen wird, dass das Stottern einiger Leute verbessert (obwohl diese Funktion durch andere Dinge, die dieses Plugin tut, überflüssig gemacht werden kann).

7.2: Schlüsselteile:
Der kritische Abschnitt ist eine von Microsoft bereitgestellte Thread-Synchronisierungsprimitive, die Fallout intern verwendet, um sicherzustellen, dass sich Threads nicht versehentlich gegenseitig zerstören. Standardmäßig lässt FSR die meisten kritischen Teile versuchen, das Spiel fair zu machen, selbst auf Kosten des Durchsatzes, wodurch sichergestellt wird, dass kein Thread die Ressourcen belegt, die andere Threads benötigen. Allerdings wird ein bestimmter kritischer Abschnitt überschrieben, um ein etwas weniger faires Verfahren zu verwenden, während ein anderer bestimmter kritischer Abschnitt unterdrückt wird, um es völlig unwirksam zu machen. Das kann alles aus der ini-Datei konfiguriert werden. Die Rotationszählung wird ebenfalls überschrieben.

7.3: Heap-Ersatz:
Diese Funktion funktioniert auf Fallout 3 noch nicht richtig.

7.4: Hash-Tabelle:
Fallout besteht aus einer Reihe von Hash-Tabellen, die verwendet werden, um verschiedene Inhalte zu finden. Sie verwenden eine normalerweise schlechte Hash-Tabellen-Implementierung, aber das eigentliche Problem ist, dass sie die Größe der Hash-Tabelle nie ändern. Die Leistung verschlechtert, wenn die Hash-Tabelle zu voll ist. Wenn die Hash-Tabelle unzureichend ist, kann ein wenig Speicher verschwendet werden. Leider ist viel Hash-Tabellen-Code überall inline und FOSE macht verschiedene Annahmen über die Hash-Tabellen, und es ist mir einfach nicht klar, wie das relevante Thread-Modell sein soll, daher ist es ziemlich schwierig, sie sicher zu ändern.

Trotzdem habe ich ein paar Hashtabellen-Hooks, die allmählich besser werden. Sobald die Hash-Tabellen überfüllt sind, erhöht FSR ihre Größe. Das Verhalten, ihre Größe zu ändern, ist jedoch voller Probleme-es kann zu Abstürzen oder Fehlern führen, und die Methoden, die ich verwende, um dies zu verhindern, können zu kleinen Leistungsunterbrechungen oder anderen Abstürzen oder Fehlern führen. Trotzdem, an diesem Punkt denke ich, dass es wahrscheinlich ein wenig anständig funktioniert. In Zukunft werde ich dies wahrscheinlich ersetzen oder ergänzen, indem ich die ursprüngliche Größe bestimmter Hash-Tabellen überschreibe.


====================================
8. Credits:
====================================

Dieses Plugin wurde von mir (Christopher Dotty-Humphrey) gemacht.

Ohne die enormen Bemühungen des FOSE Teams wäre dies nicht möglich gewesen. Außerdem hat mir Ian Patterson (Teil des FOSE Teams) durch viele Orte geholfen, an denen ich Schwierigkeiten hatte.

Der Thread, der mich ursprünglich aufforderte, dieses Plugin zu starten, wurde von DeviusCreed gestartet.

Viele Tester gaben hilfreiches Feedback. Insbesondere die Informationen von mashani darüber, welche Einstellungen welche Ergebnisse für ihn hervorbrachten, halfen mir zu verstehen, warum frühere Versionen unerwartete Vorteile brachten und zu vielen Features und Einstellungen in späteren Versionen führten.

Ich möchte auch badhair dafür danken, dass er mir darauf hingewiesen hat, dass eine überfüllte Hash-Tabelle die Ursache für Leistungsprobleme ist.

Bei der Herstellung dieses Plugins wurden folgende Werkzeuge verwendet:
Vergessen/Radiation, von Bethesda
OBSE/FOSE und Quellcode für OBSE/FOSE
Microsoft Visual C++ 2008 Express Edition
IDA Free (Interaktiver Debugger, kostenlose Version, Version 4.9)
Cheat Engine (Version 5.4)
Plus offensichtliche Dinge wie Windows XP, Notepad und Firefox.

Mit Ausnahme von Oblivion/Fallout und Windows XP sind alles kostenlos.

Ich habe auch Hex Workshop und ollydbg, die mir empfohlen wurden, aber noch nicht die Zeit gefunden, es auszuprobieren.
Dieses Tool wird von der Drittpartei [bufftool] bereitgestellt.Hinweis-Symbol

Mods jetzt herunterladen

Installieren Sie LagoFast, starten Sie Fallout 3 - Game of the Year Edition und spielen Sie mit den Mods, die Sie lieben.