• 製品
  • 特長
  • Mod Master
  • ダウンロード
  • ゲーム
  • ブログ
  • 価格

フォールアウト吃音除去剤

著者:skyranger-1最終更新日:2014-05-25 00:02:071.1M258KB

Fallout 3 - Game of the Year Edition フォールアウト吃音除去剤-1-ラゴファスト モッドマスター

Mod紹介

フォースが必要です。吃音および/またはパフォーマンスを向上させます。
フォールアウト吃音除去剤
バージョン4.0.7
スカイレンジャー-1による

フォーラムスレッド:http://www.bethsoft.com/bgsforums/index.php?ショートピック=1069833
テスネクサスページ:http://www.fallout3nexus.com/downloads/file.php?id=8886

これはFOSEプラグインであり、FOSE 1.2ベータ1以降でのみ動作します。

これはフォロアウト3バージョン1.7でのみ機能します。




0.内容:
====================================

0.内容
1.概要
2.インストール
3.アンインストール
4.一般的な設定変更
5.すべての設定
6.バージョン履歴
7.これがどのように機能するか
8.単位



1.概要:


このプラグインにより、フォールアウト3はそれほど「吃音」せず、一般的によりスムーズに感じたり、パフォーマンスが向上したりします。これは、吃音やフレームレートに関連する多くの問題を防止または軽減し、吃音関連のクラッシュの頻度を減らすことができます。詳細については、セクション7:これがどのように機能するかを参照してください。

ただし、これは通常、ドライバー、ハードウェア、コーデックの問題を修正しないことに注意してください。パフォーマンスが悪い根本的な理由がある場合、これはおそらくあまり役に立たないでしょう。

これは、フォールアウトに対処するための忘却吃音除去器(OSR)のポートです。今のところ、オリジナルの忘却吃音除去剤ほどうまく機能しませんが、いくつかの役に立つはずです。

これはすべてと互換性があるはずです。唯一の注意点は、FPSを監視するMODは、このプラグインによって設定されたターゲット範囲外のFPSを正確に測定できないことです(デフォルトでは10~30)。実際、単にFSRターゲットに近づくだけのFPSesでさえ測定するのが困難かもしれません。



2.インストール:
====================================

前記インストール処理は、

1.A.インストールしているFSRのバージョンが.zipファイルとして表示されている場合は、zipからOblivionフォルダに「Data」フォルダをドラッグするだけです。

1.B.インストール中のFSRのバージョンが.zipファイルとして入っていない場合は、sr_Fallout_Stutter_Remover.dllファイルをFallout\Data\fose\pluginsフォルダに配置する必要があります。そのようなフォルダがない場合は、作成してください。古いバージョンのFSRがインストールされている場合は、そのiniファイル(Data\fose\plugins\sr_Fallout_Stutter_Remover.ini)を削除します。既存のFSR iniファイルがない場合、FSRは次回フォールアウトを実行するときに、バージョンに適した設定を備えた新しいiniファイルを生成します。



3.アンインストール:


Data\fose\pluginsフォルダからsr_Fallout_Stutter_Remover.dllファイルを削除するだけです。
そのファイルを別のディレクトリに移動することも十分です。



4.一般的な設定変更
====================================

一般的に、FSRはユーザーがモンキーを使用する必要がないように、まともなデフォルト設定を試みます。ただし、デフォルト値が好みと一致しないため、またはFSRがコンピュータについて誤った仮定を行っているため、デフォルト値が適切ではない可能性のある設定がいくつかあります。

FSRはデータ\fose\plugins\sr_Fallout_Stutter_Remover.iniファイルに設定を保持します
そのファイルが存在しない場合は、FSRをインストールしてフォールアウトを起動するだけで、FSRはあなたのバージョンのFSRのデフォルト設定を持つ新しいフォールアウトを生成します。設定で何かを台無しにした場合、またはその他の方法でデフォルト設定に戻したい場合は、このiniファイルを削除してフォールアウトを起動するだけです。

セクション5で設定に関する一般的な情報と、個々の設定に関するより完全な情報をご覧ください。

変更する可能性が最も高い設定は次のとおりです。

FPS_Management\MaximumFPS:(デフォルトは30、0またはその他の値に変更することを検討してください)
フレームレートをまったく制限したくない人もいます。これを0に設定すると、FPS制限をオフにできます。また、フォールアウトを再生するときの画面リフレッシュレートが60ヘルツでない場合は、これを画面リフレッシュレート、または画面リフレッシュレートの半分、または画面リフレッシュレートの3分の1に変更してみてください。Master\bManageFPSを0に変更した場合、この設定は影響しません。

Hashtables\bAllowDynamicResizing:(デフォルトは0、1に変更することを検討してください)
これをオンにすると、大幅に変更されたゲームの一般的なパフォーマンス/FPSが大幅に向上することができます。残念ながら、特に特定のfoseコマンドを使用したスクリプトがすべてのフレームを実行している場合、レース条件や一般的な混乱を引き起こす可能性があります。問題の可能性をゼロ近くに減らそうとしましたが...まだもっと作業が必要になるかもしれません。一方、この機能はデフォルトで無効になります。Master\bHookHashtablesを0に変更した場合、この設定は影響しません。

クリティカルセクション抑制:(特別)
デフォルトでは、FSRは、フォールアウトがなければよりよく機能するように見える特定の重要なセクションを1つ抑制します。一部のユーザーが問題を引き起こすことなく抑制できるように見える別の関連する重要なセクションがありますが、他のユーザーは、それが抑制されたときに内部->外部の遷移またはその他の問題でctdを経験します。それは吃音をわずかに改善するだけなので、通常は抑制することはお勧めしませんが、必要に応じて抑制することはできます。それを抑制するには、iniファイル内で「CallerAddress=0x70172A」と書かれた行を見つけ、その直後に「Mode=5」と書かれた新しい行を追加します。そこではケースが重要であることに注意してください...それは「モード」ではなく「モード」でなければなりません。Master\bHookCriticalSectionsまたはCriticalSections\bUseOverridesが0に設定されている場合、この設定は影響を与えません。
注:これのすぐ上にあるreadmeの削除された部分は忘却用であり、フォールアウトではありませんでした。フォールアウトには同等の値がありますが、まだ正確な値を調べることはできません。今のところ、それは無視してください。



5.すべての設定
====================================

FSRはデータ\fose\plugins\sr_Fallout_Stutter_Remover.iniファイルに設定を保持します
そのファイルが存在しない場合は、FSRをインストールしてフォールアウトを起動するだけで、FSRはあなたのバージョンのFSRのデフォルト設定を持つ新しいフォールアウトを生成します。設定で何かを台無しにした場合、またはその他の方法でデフォルト設定に戻したい場合は、このiniファイルを削除してフォールアウトを起動するだけです。

FSR iniファイルの形式はFSRの主要バージョン間で変更されることに注意してください-FSR2でFSRバージョン2などのFSRバージョン1 iniファイルを使用してはいけません。iniファイルは"SectionName{SettingName=Value}"のようなセクションに整理されています。特定の設定をSectionName\SettingNameとして参照して、異なるセクションで同じ名前の他の設定と区別することができます。一般的には、「i」で始まる名前を持つ設定は整数値(つまり、小数点のない数)、「b」で始まる名前を持つ設定はブール値(つまり、0または1のいずれか)、そして設定で始まる「f」で始まる数値は、小数点を持つ可能性のある数値です(つまり3.14)。いくつかの設定はこれらの文字のいずれかで始まりません。その場合、適切なタイプの値が何であるかは明確ではない場合があります。

これらは設定と現在のデフォルト値です(100%最新ではない場合があります)。

セクション:マスター{}
このセクションには、FSRの各主要サブシステムを無効にするオプションと、FSRの特定のサブシステムに属していないもののいくつかの設定が含まれています。

Master\bManageFPS(デフォルト:1)
これを0に設定すると、すべてのFPS管理が無効になり、FPS_Managementセクションのすべての設定は無意味になります。

Master\bHookCriticalSections(デフォルト:1)
これを0に設定すると、すべてのクリティカルセクションのものが無効になり、CriticalSectionsセクションのすべての設定は無意味になります。

Master\bHookLightCriticalSections(デフォルト:1)
これを0に設定すると、LightCriticalSectionsセクションのすべての設定が無効になり、LightCriticalSectionsセクションのすべての設定が無意味になります。

Master\bHookHashtables(デフォルト:1)
これを0に設定すると、すべてのハッシュテーブルのものが無効になり、CriticalSectionsセクションのすべての設定は無意味になります。

Master\bReplaceHeap(デフォルト:0)
これを1に設定すると、ヒープの置換が有効になり、ヒープセクションの設定が意味があります。

Master\bLogToConsole(デフォルト:0)
FSRは、さまざまな情報ビットをログファイルに記録します。この設定を1に変更すると、FSRはその情報もコンソールに印刷します。
ログファイルは、Falloutディレクトリのsr_Fallout_Stutter_Remover.logです。FSRがインストールされているフォロアウトが実行されるたびに作成または上書きされます。

Master\bFix64Hertz(デフォルト:1)
これを1に設定すると、「マイクロスタッター」を引き起こすフォールアウトの問題が修正されます。この問題は「64ヘルツ問題」と呼ばれることもあります。具体的には、フォールアウトゲームのロジックタイミングは通常、1/64秒の解像度で発生し、通常、vsyncが制限された場合、画面のリフレッシュレートでフォールアウトが毎秒60フレームを描くことができることが問題です。この組み合わせにより、フレームレートが最大になると、1秒あたり4フレームが56フレームの2倍の遊技時間が経過するようなビート周波数が生じることを特徴とする。FSRがフォールアウトを強制的に適用する修正は、1/64秒ではなく1/1000秒の解像度で時間を使用します。

Master\bFlushLog(デフォルト:1)
これはFSRにログメッセージをメモリにバッファリングするのではなく、すぐにファイルにログメッセージを書き込むように指示します。ディスクアクセス数が多いため、パフォーマンスがわずかに低下する可能性がありますが、クラッシュの直前に発生する問題に関連するメッセージがログファイルに正常に書き込まれる可能性が高くなります。

Master\iSchedulingResolution(デフォルト:1)
FSRは、この数ミリ秒の解像度でWindowsスケジューラを実行するよう要求します。このセットが1であると、FSRとフォールアウトは一般的にうまく機能します。ただし、これによりラップトップのバッテリー寿命がわずかに短縮される可能性があります。

セクション:FPS_Management{}
このセクションには、FSRがフレームレートとゲーム時間の流れを管理する方法を調整する設定が含まれています。

FPS_Management\bAllowSlowMotion(デフォルト:1)
これを0に設定すると、FSRがゲーム時間の通常の流れを上書きしようとするのを防ぎます。過去のバグには、FSRからarisonがそうしていました(最も悪名高いことは、neary-npcs-drop-dead-on-cell-transitionsバグ)がありましたが、これらは現在修正されていると考えられています。ただし、問題がある可能性があると思われる場合に備えて、この設定を使用してすべてのFSRゲーム時間調整を強制的に無効にすることができます。名前にもかかわらず、これを0に設定すると、FSRがゲーム時間を高速転送することもできませんが、FSRは設定と状況の非常にまれな組み合わせの下でのみそれを試みます。

FPS_Management\MaximumFPS(デフォルト:30)
これは、FSRがフォールアウトを超えることを許可しない最大FPSです。私は通常、これを十分に高いフレームレートに設定しているので、毎秒余分なフレームについてあまり気にしません。FSRは実際にはここで「秒あたりのフレーム」を扱わないことに注意してください。代わりに、その値をフレームあたりのミリ秒番号に変換し、各フレームを個別に考慮します。フレームがあまりにも早く完了すると、FSRは正しいミリ秒数が経過するまでフォールアウトメインスレッドがスリープに移動します。フォロアウトのメインスレッドをスリープにすると、フォロアウトのバックグラウンドスレッドやバックグラウンドで実行されている可能性のある他のプログラムで使用するためのリソースが解放されます。余分なリソースを使用したくない人がいない場合、CPUやGPUはより冷たく動作し、電力の使用量が少なくなります。

FPS_Management\MinimumFPS(デフォルト:10)
これは、FSRがフォールアウトを下回ることを許可しない最小FPSです。ただし、これは実際の数秒を扱うのではなく、数秒のゲーム時間を扱います。したがって、コンピュータが本当に遅い場合でもFPSが1になる可能性がありますが、これによりゲーム時間が通常の10%に遅くなり、ゲーム時間が毎秒少なくとも10フレームになる可能性があります。たとえば、実際のfps 1と最小fps 10(デフォルト値)の設定に基づいて、そこにあるすべての数字がありました。また、MaximumFPSと同様に、これは実際に1フレームあたりのフレームではなく1フレームあたりのミリ秒を扱う単一フレームベースで動作することに注意してください。
私は通常、これをリモートで再生できると思うより低いFPSに設定します。この設定の大きな目的は、FPSが低すぎると、フォールアウトゲームロジックが狂ってしまうのを防ぐことです。これが防ぐ問題には、敵がフレーム間であなたの周りを円を描く可能性があるため不可能な戦い、フォールアウトが攻撃キーがフレーム全体でダウンしているか、フレーム全体でダウンしていないと考えているため、コントロールが台無しになり、パワー攻撃を引き起こす可能性があることが含まれます。攻撃が意図されていたときに発生し、その他の多くの同様の問題。

FPS_Management\iSmoothFrames(デフォルト:0)
これが0に設定されている場合、「スムージング」ロジックは何もしません。スムージングロジックをオンにするには、これを2に設定してみてください。ただし、レポートによると、スムージングロジックにはあまり価値がないことが示唆されています。前記スムージングロジックは、吃音やその他のフレームレートの急速な変化に起因する様々な問題を防止することを目的とする、bAllowSlowMotionが0の場合、スムージングロジックは効果がありません。

FPS_Management\iSmoothMode(デフォルト:0)
これは0、1、2、または3でなければなりません。0または1の場合、吃音イベントを時間の流れからフィルタリングしようとする追加のロジックが有効になります。そのロジックは、FPSが非常に突然減少した場合、通過するゲーム時間の合計量が通過するリアルタイムの量と完全に等しくないことになる可能性があります。2または3の場合、その余分なロジックビットは無効になります。0/2と1/3の違いは、どのフレーム間でどのように時間が再分配されるかという非常に微妙な問題です。

FPS_Management\iSleepExtra(デフォルト:2)
FSRは、フォールアウトを毎秒これだけミリ秒の間スリープさせることを強制します。これにより、バックグラウンドスレッドやその他のプロセス用のリソースを解放したり、温度をわずかに減らしたりできます。主な利点は、いくつかのバックグラウンドスレッドがメインスレッドがホグしている特定のリソースを取得するのに苦労している場合、それは時々そのリソースを取得する機会を与えることです。
これが-1に設定されている場合、FSR FPS管理コードはフォールアウトをスリープにすることは決してありません。そうでなければFPSが最大FPSを超える場合、FSRはアイドルループで時間を無駄にします。テスト目的のみのために提供されているため、そのモードは推奨されません。

FPS_Management\bFPSConsoleSPAM(デフォルト:0)
これにより、FSRは各フレームを完了するのにかかる時間を記録します。フレームごとに1回行うため、膨大な量の記録時間が作成されます。

FPS_Management\iSchedulingParanoia(デフォルト:1)
この設定はミリ秒単位です。これは、最大fpsコードがスケジューラについてどれほど偏執的であるかを決定します。値が高い場合、MaximumFPSコードは決してスリープせず、アイドルループで時間を無駄にします。値が0の場合、MaximumFPSコードは、正確に要求された時間にメインスレッドの実行を再開するためにスケジューラを信頼します。一般的に、私はスケジューラについての偏執的な原因のために1で妥協しますが、それでも余暇の多くを建設的に使用することを許可しています。

FPS_Management\iHardMaxFrametime(デフォルト:200)
これはミリ秒単位です。私の時間フロー調整コードが間違った時間に大きすぎる時間を入力すると、奇妙なことが起こることがわかりました。悪いこと。近くのNPCがランダムに死んでしまうようなものです。この設定は、FSRが物事の通常の過程で一度に通過することを許可するミリ秒数に絶対最大を設定することを防ぎます。通常、この制限に達する前に最小値をヒットしますが、音声との同期が解除される唇の動きなどの副作用を防ぐために、状況によっては最小値をヒットすることが免除されるため、これは一種の第2レベルの最小値、つまりi-real-mean-itの最小値を作用します。FPS。これを低すぎると、会話中の唇の動きの同期が解除される可能性があり、高すぎると、npcs-dropping-ded-randomなどのバグが発生する可能性があります。妥協点として200を設定しました。会話中にフレームレートが5未満に低下しない限り、唇の同期が解除されるべきではありません。フレームレート5未満でフォールアウトをプレイしている場合は、深刻な助けが必要です。

セクション:臨界セクション{}
このセクションでは、FSRがFallouts CRITICAL_SECTIONsに加えるすべての変更について説明します。CRITICAL_SECTIONオブジェクトについて知りたいですか?フォロアウトは、さまざまなスレッドが誤ってお互いを殺し合うのを防ぐためにそれらを使用します。Microsoftはそれらのためのコードを提供します。Falloutは、どのバージョンのWindowsで実行されているかに応じて、それらのバージョンがわずかに異なります。それらの詳細についてはMSDNで読むことができます。

CriticalSections\bEnableProfiling(デフォルト:0)
1に設定すると、FSRはフォールアウトにおけるクリティカルセクション操作のタイミング/パフォーマンスに関する情報を記録します。そうすることで、パフォーマンスにはわずかだが重大なペナルティが生じます。FSRはその情報をログファイルに記録します。これにより、フォールアウトが吃音したり、ゆっくりと動いたりする理由についての有用な情報が生まれる可能性があります。この情報は、FSR iniファイルのオーバーライドセクションなどを調整するために使用される可能性があります。

CriticalSections\bEnableMessages(デフォルト:0)
1に設定すると、FSRは重要なセクションのいくつかのタイミング/パフォーマンスイベントに関する情報を記録します。そのためのパフォーマンスコストはほとんどありませんが、ログファイルが乱雑になり、そこに非クリティカルセクション情報を見つけることが困難になる可能性があります。

CriticalSections\bUseOverrides(デフォルト:1)
これが1に設定されている場合、FSRはiniのオーバーライドセクションの設定を使用して、特定の重要なセクションに何をすべきかを決定します。

CriticalSections\iDefaultMode(デフォルト:2)
これにより、上書きリストにモードエントリがない重要なセクションに対してFSRが何を行うかが決定されます。
1:それはその重要なセクションをほぼ正常な挙動で残します。
2:スループットを犠牲にして公平性を向上させるために、その重要なセクションを調整します。これにより、1つのスレッドがクリティカルセクションを過度にホッグするのを防ぐことができますが、そのクリティカルセクションで操作を行うことができる正味レートができます。
3:公平性とスループットの間の妥協の試みで、通常はスループットのために最適化されますが、時々公平性のために最適化するために動作を切り替えます。
5:前記臨界部が抑制される重要なセクションを抑制すると、一般的にフォールアウトがクラッシュするだけでなく、一般的にパフォーマンスも向上します。ただし、特定の重要なセクションは異なる影響を受ける可能性があります。
6:メインスレッドがその重要なセクションの優先度を取得すること。
7:その背景スレッドは、その重要なセクションの優先度を取得します。

CriticalSections\iDefaultSpin(デフォルト:500)
これは、スレッドがスケジューラにその重要なセクションが利用可能になるまでスリープにするように要求する前に、スレッドが重要なセクションに入力しようとする期間に影響を与えます。理論的には、値が小さすぎるとスケジューラオーバーヘッドが多すぎますが、値が大きすぎるとCPUサイクルが無駄になります。500は実際にはちょっと小さな価値だと思います。理想的な値は、所有するコア/ハードウェアスレッドの数によって増加する可能性があります。

CriticalSections\iStutterLevel(デフォルト:4)
このパラメータは、クリティカルセクションモード2が動作を切り替える頻度に影響します。クリティカルセクションモード2の詳細については、iDefaultModeを参照してください。数が小さいと頻繁なスイッチを意味し、数が大きいと頻繁なスイッチを意味します。理想的な値はおそらく3~6の範囲のどこかにあるはずです。

セクション:光クリティカルセクション{}
このセクションでは、CRITICAL_SECTIONsと同様の目的を果たすが、より軽量なフォールアウトオブジェクトのカテゴリにFSRが加えるすべての変更について説明します。

LightCriticalSections\bFullHooks(デフォルト:0)
1に設定すると、ライトクリティカルセクションフックのより完全なバージョンがオンになります。残念ながら、より完全なバージョンはまだバグがあるため、これは現時点でデフォルトで無効になっています。

LightCriticalSections\bEnableProfiling(デフォルト:0)
1に設定すると、FSRはフォールアウトにおける光クリティカルセクション操作のタイミング/パフォーマンスに関する情報を記録します。そうすることで、パフォーマンスにはわずかだが重大なペナルティが生じます。FSRはその情報をログファイルに記録します。これにより、フォールアウトが吃音したり、ゆっくりと動いたりする理由についての有用な情報が生まれる可能性があります。この情報は、FSR iniファイルのオーバーライドセクションなどを調整するために使用される可能性があります。

LightCriticalSections\bEnableMessages(デフォルト:1)
1に設定すると、FSRはライトクリティカルセクションのいくつかのタイミング/パフォーマンスイベントに関する情報を記録します。そのためのパフォーマンスコストはほとんどありませんが、ログファイルが乱雑になり、そこに非クリティカルセクション情報を見つけることが困難になる可能性があります。

LightCriticalSections\bUseOverrides(デフォルト:1)
これが1に設定されている場合、FSRはiniのオーバーライドセクションの設定を使用して、特定の重要なセクションに何をすべきかを決定します。完全なLCSフックが有効になっていない限り、オーバーライドは効果がありません(上記のbFullHooks)。

LightCriticalSections\iDefaultMode(デフォルト:2)
これにより、上書きリストにモードエントリがないクリティカルセクションをライトするためにFSRが何をするかが決定されます。クリティカルセクションと同様のモード番号付けスキームを使用しようとします。詳細については、上記のCriticalSections\iDefaultModeを参照してください。いくつかのモードは、bFullHooksが有効になっているかどうかによってはかなり異なる動作をする場合があります。

LightCriticalSections\iDefaultSpin(デフォルト:500)
これにより、上書きリストにスピンエントリがないクリティカルセクションをライトするためにFSRが何をするかが決定されます。重要なセクションのものと同様の意味を持つようにします。詳細については、上記のCriticalSections\iDefaultSpinを参照してください。スピンの意味は、bFullHooksが有効になっているかどうかによっては多少異なる場合があります。

LightCriticalSections\iStutterLevel(デフォルト:4)
このパラメータは、ライトクリティカルセクションモード2が動作を切り替える頻度に影響します。クリティカルセクションモード2の詳細については、iDefaultModeを参照してください。数が小さいと頻繁なスイッチを意味し、数が大きいと頻繁なスイッチを意味します。理想的な値はおそらく3~6の範囲のどこかにあるはずです。


セクション:ヒープ{}
これはまだフォールアウトに対して実際には機能しません。使用しないでください。

セクション:ハッシュテーブル{}
フォールアウトには、あらゆる種類のものを調べるためのたくさんのハッシュテーブルが含まれます。彼らは一般的にひどいハッシュテーブルの実装を使用していますが、本当の問題は、ハッシュテーブルのサイズを変更することが決してないことです。ハッシュテーブルが過剰になると、パフォーマンスが低下します。ハッシュテーブルがアンダーフルであると、わずかなメモリが無駄になり、キャッシュのコヒーレンスが低下する可能性があります。残念ながら、ハッシュテーブルコードの多くはあちこちに並んでおり、FOSEはハッシュテーブルについてもさまざまな仮定をしており、関連するスレッドモデルが何であるべきかは私にはまったく明確ではないため、安全に変更することは非常に困難です。それでも、ハッシュテーブルフックをいくつか持っていますが、徐々に良くなってきています。

Hashtables\bAllowDynamicResizing(デフォルト:0)
これが1に設定されている場合、FSRはハッシュテーブルが過剰になるとハッシュテーブルのサイズが大きくなります。ただし、サイズを変更する行為には問題があります。クラッシュやグリッチを引き起こす可能性があり、それを防ぐために私が使用する方法は、小さなパフォーマンスの吃音やその他のクラッシュやグリッチを引き起こす可能性があります。それでも、現時点ではちょっときちんと機能しているかもしれないと思います。

Hashtables\bUseOverrides(デフォルト:0)
現在、ハッシュテーブルのオーバーライドはなく、それらを指定するための構文は厄介であり、間違った値を入力した場合、静かに失敗して代わりに別のことを行う可能性があります。これは最終的に修正されますが、iniファイル指定のフックが最も重要なハッシュテーブルの初期化に接続され、後でサイズを変更する必要がなく、まともなサイズで開始できるようになります。

Hashtables\bEnableProfiling(デフォルト:0)
これにより、ハッシュテーブルがどれだけ満たされているか、どれだけアクセスされているかについての情報が監視され、ログ情報が記録されます。

Hashtables\bEnableMessages(デフォルト:0)
これが1の場合、ハッシュテーブルコードは時折、何をしているかに関するメッセージを記録する可能性があります。

Hashtables\iHashtableResizeScale1(デフォルト:2)
Hashtables\iHashtableResizeScale2(デフォルト:4)
bAllowDynamicResizingが1の場合、iHashtableResizeScale1はハッシュテーブルのサイズが変更される最小占有レベルを決定し、iHashtableResizeScale2はその新しいサイズがどれだけ大きくなるかを決定します。両方の数字は実際には2に適用された指数であるため、3の設定は8の係数を意味し、5の設定は32の係数を意味します。理論的にはiHashtableResizeScale1を1に減らすと、より多くのハッシュテーブルのサイズが大きくなるため、パフォーマンスがさらに向上する可能性があります。iHashtableResizeScale2は、iHashtableResizeScale1よりも1または2に設定する必要があります。

Hashtables\iHashtableResizeDelay(デフォルト:20)
これは、ハッシュテーブルのサイズを変更するときにFSRが失速する数ミリ秒です。そのアイデアは、私が忙しい間に別のスレッドがハッシュテーブルにアクセスするのを防ぐことはできませんが、うまくいけば、彼らがハッシュテーブルにアクセスするのを*開始するのを防ぐことができるということです。したがって、ハッシュテーブルにすでにアクセスしていた人は誰でも終わってしまうので、十分に長く遅らせて、私は自分の仕事をします。残念ながらFOSEでは機能しません。なぜなら、FOSEはフォロアウトと同じことを実行していないからです。さらに、たとえ実行してもvtablesを使用して機能しません。ただし、FOSEはメインスレッドからのみアクセスできる可能性があると考えているので、私のリサイザーがメインスレッドで実行されている場合はFOSEについて心配する必要はありません。もしかしたら。

セクション:オーバーライド{}
このセクションには、FSRが知っている特定のインスタンスのさまざまなタイプのオブジェクトを見つける方法、およびそのタイプのオブジェクトのデフォルト設定とは異なる特定のインスタンスを扱う方法をFSRに伝える情報が含まれています。現在、実際にここにリストされているのは、ほとんどの場合とは異なる動作を持ついくつかの特定の重要なセクションだけです。



6.バージョン履歴:
====================================

FPSカバーバージョン1:
これはFPSキャッパーとして知られていました。それがしたのはFPS管理だけでした。このバージョンは、変更されたobse dllのセットに統合されました。

FPSカバーバージョン2:
これは、OBSEとは別に独自のdllを持つ最初のバージョンでした。これはFPSキャッパーとして知られていました。それがしたのはFPS管理だけでした。

忘れ去り吃音除去バージョン3ベータ1:
忘却吃音除去機と名付けられた最初のバージョン。メインメニューで数分間凍ることがあります。NPCの声と顔の動きは対話で台無しになる可能性があります。
バージョン3ベータ2:NPCの音声と顔の動きは対話で失敗する可能性があります。

忘れ去り吃音除去バージョン3ベータ6:
ベータ5とベータ6の間には長い遅延があり、多くのアルファリリースによって満たされました。これは、平均的なユーザーにとって吃音を実際に減らすというまともな仕事をしたFSRの最初のバージョンでした。これは、クリティカルセクションの公平性の調整、クリティカルセクションの抑制、およびヒープの交換という新しい機能によるものです。残念ながら、ヒープ交換は依然として多くのユーザーにとって大きな問題があります。bFix64Hertzはiniでデフォルトで0に設定されていましたが、代わりに1にする必要があります。

注:バージョン3の決勝はありませんでした。十分な需要があれば、バージョン3ベータ6ソースコードに基づいていくつかの修正を加えて作り上げることができます。

フォールアウト吃音リムーバーバージョン1ベータ1:
OSRのフォールアウトへの最初のポート。

忘れ去り/フォールアウト吃音除去機バージョン4.1.0:
主要な変更:
1.フォールアウトと忘却の両方をサポートします。フォールアウト3についてはそれほど多くのメリットをもたらしませんが、役立ちます。
2..iniファイル: まったく異なるiniファイル形式
3.ハッシュテーブルのサイズ変更: パフォーマンス向上のための新機能
4.クリティカルセクション&ライトクリティカルセクション:重要なセクションの多くの特別なケースを一般化し、iniファイルからはるかに調整可能になりました。ライトクリティカルセクションコードの「フルフック」はまだバグがあります。
5.ヒープ交換: いくつかのバグを修正しましたが、まだ問題があると思います。フォールアウトではまだまったく機能しません。
6.バージョンの命名:tesnexusにリリースされたバージョンは、ベータバージョンではなくリリースバージョンと呼ばれています。私のftpサーバーにリリースされたバージョンは、アルファバージョンではなくベータバージョンと呼ばれるようになりました。バージョン番号の最初の桁は、構成または配布形式に大きな変更が加えられた場合にのみインクリメントされます。バージョン番号の2桁目は、リリースバージョンごとにインクリメントされます。バージョン番号の3桁目は、ベータバージョンごとに1回インクリメントされます。数字がインクリメントされるたびに、右側のすべての数字は0にリセットされます。




7.これがどのように機能するか:


これはFOSEプラグインのdllです。基本的にはフォールアウトをハッキングします。

7.1:FPS管理:
FPS管理コードは、フレームレートを監視し、ゲームタイムの流れを調整します。吃音が発生したときにフォールアウトゲームロジックをスキップしないようにすることで、吃音が軽減されます。事実上、長い時間がかかるフレームはスローモーションになります。これは、iFPSClampがMinimumFPSに設定されているかのようにフォールアウトを作用させることによって行われますが、MinimumFPSよりも遅いフレームに対してのみ行われます。これにより、安定性が向上する可能性もある。また、最大フレームレートを課すこともできます。一部の人々は、フレームレートがリフレッシュレートの半分を超えることを防ぐと、フォールアウトがよりスムーズであると認識し、これはフォールアウトセカンダリスレッドのためのリソースを解放するのに役立ちます。

FPS管理コードは、フォールアウトのメインスレッドを短期間スリープにすることもできます。これは、一部の人々の吃音を改善するために使用されています(ただし、このプラグインが行う他のことによってその機能が冗長になった可能性があります)。

7.2:重要なセクション:
クリティカルセクションは、マイクロソフトが提供するスレッド同期プリミティブであり、フォロアウトはスレッドが誤って互いに破損しないようにするために内部で使用します。FSRはデフォルトで、ほとんどの重要なセクションは、スループットを犠牲にしても公平にプレイしようとし、他のスレッドが必要とするリソースをスレッドがホッグしないことを確認します。ただし、1つの特定のクリティカルセクションは、わずかに公平ではない方法を使用するために上書きされ、別の特定のクリティカルセクションは、まったく効果がないように抑制されます。これはすべてiniファイルから非常に構成可能です。また、スピンカウントが上書きされます。

7.3:ヒープ交換:
この機能は、フォールアウト3でまだ正しく機能していません。

7.4:ハッシュテーブル:
フォールアウトには、あらゆる種類のものを調べるためのたくさんのハッシュテーブルが含まれます。彼らは一般的にひどいハッシュテーブルの実装を使用していますが、本当の問題は、ハッシュテーブルのサイズを変更することが決してないことです。ハッシュテーブルが過剰になると、パフォーマンスが低下します。ハッシュテーブルが不足している場合、わずかなメモリが無駄になる可能性があります。残念ながら、ハッシュテーブルコードの多くはあちこちに並んでおり、FOSEはハッシュテーブルについてもさまざまな仮定をしており、関連するスレッドモデルが何であるべきかは私にはまったく明確ではないため、安全に変更することは非常に困難です。

それでも、ハッシュテーブルフックをいくつか持っていますが、徐々に良くなってきています。FSRは、ハッシュテーブルが過剰になると、ハッシュテーブルのサイズを大きくすることができます。ただし、サイズを変更する行為には問題があります。クラッシュやグリッチを引き起こす可能性があり、それを防ぐために私が使用する方法は、小さなパフォーマンスの吃音やその他のクラッシュやグリッチを引き起こす可能性があります。それでも、現時点ではちょっときちんと機能しているかもしれないと思います。将来的には、特定のハッシュテーブルの初期サイズをオーバーライドすることでこれを置き換えたり補完したりする可能性があります。


====================================
8.クレジット:
====================================

このプラグインは私(Christopher Doty-Humphrey)によって作られました。

フォースチームの多大な努力がなければ、それは不可能だったでしょう。さらに、イアン・パターソン(フォース・チームの男)は、困った場所をたくさん乗り越えるのを手伝ってくれました。

このプラグインを起動するよう促した元のスレッドは、DeviusCreedによって起動されました。

多くのテスターが有用なフィードバックを提供してきました。特に、どの設定がどの結果を生み出したかについてのmashaniの情報は、これの初期バージョンが予期せぬメリットをもたらしている理由を理解するのに役立ち、後のバージョンではいくつかの機能と設定が得られました。

また、パフォーマンスの問題の原因としてハッシュテーブルがいっぱいすぎていることを指摘してくれたbadhairにも感謝したいと思います。

このプラグインの制作には、次のツールが使用されました。
忘れ去り/フォールアウト、ベセスダ著
OBSE/FOSEとOBSE/FOSEソースコード
マイクロソフトビジュアルC 2008エクスプレスエディション
IDA Free(インタラクティブデバッガ、無料バージョン、バージョン4.9)
チートエンジン(バージョン5.4)
さらに、Windows XP、メモ帳、Firefoxなどの明らかなものもあります。

Oblivion/FalloutとWindows XPを除いて、これらはすべて無料で利用できます。

私はまた、Hexワークショップを持っていて、ollydbgが私に推奨していますが、まだ試してみてはいません。
本ツールはサードパーティの[bufftool]によって提供されています注意アイコン

今すぐMODをダウンロード

LagoFast をインストールし、Fallout 3 - Game of the Year Edition を起動して、お気に入りの MOD で遊んでみましょう。