3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 25601|回复: 17
打印 上一主题 下一主题

[新闻] Oblivion Stutter Remover (解決停頓現象, 更新到v4.1.0)

 关闭 [复制链接]

0

主题

2498

帖子

8277

积分

游戏精英

Rank: 8Rank: 8

贡献度
1539
金元
20909
积分
8277
精华
3
注册时间
2006-12-10

贵宾

跳转到指定楼层
主题
发表于 2010-1-8 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

舊帖
OSR v3 介紹

1. Oblivion Stutter Remover (OSR) 更新到第v4.1.0

2. 如果沒有人回報錯誤的話, 作者會把此版本放到tesnexus

3. 在下覺得OSR4 使用起來沒什麼問題, 沒必要繼續用v3.0b6
    OSR & OSR4 的sr_Oblivion_Stutter_Remover.ini 結構差異極大, 請勿共用

4. sr_Oblivion_Stutter_Remover.ini 參數的定義, 很難用中文表示, 建議有興趣自己看readme


==============================================================
Oblivion Stutter Remover v4.1.0   需要OBSE
http://tesnexus.com/downloads/file.php?id=23208
http://www.bethsoft.com/bgsforums/index.php?showtopic=1068356
(納米盤)

減少進行遊戲時的停頓現象, 通常會覺得遊戲更平順、效能改善; 防止或減少一些關於
停頓和幀數的問題, 並且可以減少與CTD 有關的停頓出現率

然而, OSR 不能取代Quite Feet / PyFFI / Oblivion Crash Prevention System 等模組的
功能; 舉例來說, 如果你的停頓問題主要是由音效裝置導致, 使用OSR 可能會有幫助, 但
沒有安裝Quite Feet 模組來的明顯

Streamline 的使用者需注意:FPS min & max 的範圍需設定在OSR 的10% 範圍內, 例如
OSR 設定成10-30, SL 需要至少在11-27、甚至12-26

安裝:
1. 解壓obse 資料夾到 OblivionData
2. 修改sr_Oblivion_Stutter_Remover.ini 設定值
    一般只須將bReplaceHeap = 0 改成1

sr_Oblivion_Stutter_Remover.ini:
先進入遊戲, 然後退出, 在DataOBSEplugins 底下會生成sr_Oblivion_Stutter_Remover.ini
這是OSR 的設定檔, 裡頭有幾個參數可以修改; 一般來說OSR 的預設值適用於大多數玩家, 但
有少數數值可能不適用於你, 請斟酌考量

Master
bManageFPS = 1
設定為0會停用所有FPS_Management 參數的功能

bHookCriticalSections = 1
設定為0會停用所有Critical Section 參數的功能

MasterbHookHashtables = 1
設定為0會停用所有Hashtable 參數的功能

bReplaceHeap = 0
設為1可以開啟HeapiHeapAlgorithm 的特性; 若設為0, 則iHeapAlgorithm 無論設定為多少都無效

bLogToConsole = 0
OSR 會將許多訊息輸出到Oblivionsr_Oblivion_Stutter_Remover.log; 若設定此參數為1, 會將OSR
的訊息輸出到控制台

MasterbFix64Hertz = 1
設定為1可修正Oblivion 引起 "microstutter" 的問題; 這個問題有時被稱為 "64 Hertz issue"

MasterbFlushLog = 1
讓OSR 能直接寫入任何訊息至log 檔, 而不會暫存於記憶體緩衝裡; 這可能會些微影響效能、因為需
要大量存取硬碟, 但也許能在CTD 之前, 把問題訊息寫入log

MasteriSchedulingResolution = 1
OSR will request that the Windows scheduler run at a resolution of this many milliseconds.  
With this set at 1, OSR and Oblivion generally work better.  This can slightly reduce the
battery life of laptops however.

iMainHookPoint = 1
??

FPS_Management
bAllowSlowMotion=1
設為0會防止OSR 修改時間的流逝速度

MaximumFPS=30
MinimumFPS=10
遊戲中的FPS 會保持在這2個數字之間, 當FPS 低於MinimumFPS, 會強制遊戲進入慢動作
直到FPS 高於MinimumFPS; 若你的系統很棒、你的肉眼又可以分辨fps>30 的畫面, 可以
考慮調高MaximumFPS 數值或是直接設為0

iSmoothFrames = 0
若設為0, 則 "smoothing logic " 無作用, 若要開啟此參數, 可設為2試試; 不過依照使用者的回報
開啟smoothing logic 似乎沒啥用; 若bAllowSlowMotion 設定為0, 此參數無效

iSmoothMode = 0
可設定為0、1、2、3; 若設為0或1, 會啟用一些額外的logic (試著將停頓事件過濾出時間流)
若設為2 或3, 會關閉額外的logic
0/2 和1/3 之間的不同是相當微妙的問題 - 在它們之間的幀如何分配時間

iSleepExtra=2
OSR 會強制Oblivion 每秒休眠幾毫秒, 幫助釋放背景的資源; 設為-1 會關閉OSR 休眠的特性

bFPSConsoleSPAM=0
設定成非0的數值, 會將OSR 的時間值的資訊輸出到至log (每楨1次)

iSchedulingParanoia = 1
This setting is in units of milliseconds.  It determines how paranoid the MaximumFPS code
is about the scheduler.  If the value is high, then the MaximumFPS code will never sleep,
instead wasting time in idle loops.  If the value is 0, then the MaximumFPS code will trust
the scheduler to resume the main threads execution at exactly the requested time.  
Generally I compromise at 1 for a modicrum of paranoia about the scheduler but still allowing
much of the spare time to be put to constructive use.

iHardMaxFrametime = 200
This is in units of milliseconds.  It's been found that when my time flow adjusting code puts
in a time that's too large at the wrong time, strange things happen.  Bad things.  Like,
nearby NPCs randomly dropping dead.  This setting prevents that, by setting an absolute
maximum to the number of milliseconds OSR permits to pass at once in the normal course
of things.  Normally you'll hit MinimumFPS before you hit this limit, but MinimumFPS gets
waived under some circumstances to prevent side effects like lip movements desynching
with voices, so this acts a sort of 2nd level of MinimumFPS, the I-really-mean-it minimum FPS.
Setting this too low can cause things like lip movements desynching in conversations, setting
it too high can permit bugs like NPCs-dropping-dead-randomly.  I set 200 as a compromise - it
should not cause lips to desynch unless your framerate drops to less than 5 in a conversation.
And if you are playing Oblivion at a framerate of less than 5 then you need serious help.  

CriticalSections
bEnableProfiling = 0
bEnableMessages = 1
bUseOverrides = 1
iDefaultMode = 2
iDefaultSpin = 1000
iStutterLevel = 4

Heap
iHeapAlgorithm=5   
取代Oblivion 預設的heap、改善多線程運載、改善遊戲突然變慢的問題

1 = FastMM4 heap, 需要DataOBSEpluginsComponentDLLsBorlndMM.dll
2 = Windows standard heap, 在WinXP 上會很慢, Vista 或W7 較適合
3 = 作者寫的SimpleHeap1, 速度挺快的
4 = 別用這一個
5 = 作者寫的ThreadHeap2, 速度挺快的
* 每台機器情況不同, 在WinXP 32 環境下, 0 -> 3 -> 5 -> 1 (慢->快)

iHeapAlgorithm = 5
bEnableProfiling = 0
iHeapSize = 450
bEnableMessages = 0

Hashtables
bAllowDynamicResizing = 0   
在安裝許多模組的機器上, 啟用此參數可明顯改善效能; 但也會導致 "race conditions and general mayhem"
特別是當腳本使用某些OBSE 的命令、而且每幀都在運行時

若MasterbHookHashtables 設置成0, 則此參數無效

bUseOverrides = 0
bEnableProfiling = 0
bEnableMessages = 1
iHashtableResizeScale1 = 2
iHashtableResizeScale2 = 4
iHashtableResizeDelay = 20

* 不了解ini 參數意義的, 建議別更動任何數值 (除了iHeapMode)

==============================================================
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-7 10:57 , Processed in 0.028211 second(s), 18 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表