• 產品
  • 特點
  • Mod Master
  • 下載
  • 遊戲
  • 博客
  • 定價

NVAC-新維加斯防撞車

作者:Queued最後更新:2016-10-28 12:24:316.9M108KB

Fallout: New Vegas NVAC-新維加斯防撞車-1-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-2-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-3-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-4-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-1-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-2-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-3-lagofast 模組大師
Fallout: New Vegas NVAC-新維加斯防撞車-4-lagofast 模組大師

模組介紹

實現結構化異常處理和健全性檢查,以降低遊戲崩潰的頻率。
修復Windows 10周年更新+最新的Nvidia/AMD視頻驅動程序崩潰/以下問題:
輻射新維加斯
輻射新維加斯沒有戈爾(德語)
輻射3
輻射3沒有戈爾(德語)
遺忘
蓋克(新維加斯)
蓋克(輻射3)
建築集(遺忘)

你有沒有在玩的時候遇到過新的維加斯崩潰? 你當然有。 我們都有。

我可能有一個解決方案給你:NVAC。

NVAC(New Vegas Anti Crash的縮寫)是一個NVSE插件,它實現了結構化異常處理和健全性檢查,以減少遊戲崩潰的頻率。

也就是說,我不做任何承諾。 這不是萬靈藥:它只試圖修復與特定偏移量/地址處的訪問衝突異常相關的崩潰。

因為它是一個NVSE插件,nvac.dll放在你的Data/NVSE/Plugins文件夾里。

運行New Vegas后,您可以通過讀取在New Vegas文件夾中找到的nvac.log文件來仔細檢查是否加載了NVAC; 如果nvac.log不存在,請查閱nvse.log。 NVAC並不完全支持新維加斯的德國“無戈爾”變體; 我根本沒有機會為它開發。

歡迎在評論中提交nvac.log中標有“u”或“v”的例外。 它們通常是日誌中的最後一個條目(因為未處理的異常會使New Vegas崩潰)。 對於列為“初步”(在自述文件中)的地址,也請在評論中提交“e”或“s”條目,因為這意味着我沒有親自驗證它們; 當這些被記錄下來時,新維加斯不應該崩潰,所以它需要在一個遊戲會話后任意檢查日誌文件。 每次啟動New Vegas時,日誌文件都會被清除。

作為獎勵,NVAC實現了助手函數內聯(它採用可以容納在5字節空間內的內部新Vegas函數,並用5字節或更少的指令替換函數調用),這是一個微小的性能改進。

NVAC可以隨時被移除。 NVAC不是一個普通的新維加斯國防部(esp/esm文件); 這是一個NVSE插件,在運行時修改遊戲的可執行代碼,但不會做出任何永久性的改變。 它所做的任何事情都不會像esp/esm mods所做的更改那樣被寫入保存。

破譯nvac.log文件:

 19195402_00310000 03060000 nvac.dll
"19195402" 是一個時間戳,可以讀取為dd:hh:mm:ss(日、小時、分鐘、秒); 在這個例子中,(11月)19日,晚上7:54零2秒。
       "_" 是標識日誌條目類型的單字母代碼,稍後我將詳細說明。
"00310000" 是存儲器地址; 對於大多數條目,這是異常(崩潰)的地址。
"03060000" 是一個信息值; 在本例中,nvac.dll的版本號
“nvac.dll” 是否在記錄的地址加載模塊。

 19123249 u 0044AD6B C0000005 FalloutNV.exe
"19123249" (11月)19日,下午12點32分49秒。
       “u” 未處理的異常。
"0044AD6B" 發生異常的地址。
“C0000005” 異常代碼(EXCEPTION_ACCESS_VIOLATION)。
“FalloutNV.exe” 異常發生在遊戲的代碼中。

字母代碼:

"_" 條目信息豐富,傳遞NVAC已加載以及各種DLL的基址。
"!" 條目是信息豐富的,為用戶傳遞人類可讀的文本。
“A” 條目是由NVAC的“全局”異常處理程序自動處理的異常。
“e” 條目是由NVAC的目標代碼更改專門處理的異常。
“f” 條目是NVAC有針對性的代碼更改特別避免的凍結(掛起)。
“h” 條目是由NVAC的“全局”異常處理程序啟髮式識別的異常,有時處理不成功。
“我” 條目是指示數據不匹配的輔助函數內聯錯誤。
“m” 條目是“莫名其妙”的異常,有時處理不成功。
“N” 條目是空指令異常,有時處理不成功。
“n” 條目是空指針調用異常,有時處理不成功。
“o” 條目是堆棧溢出異常,通常處理不成功。
“q” 條目是程序自終止信息; 這些實際上是崩潰。
“r” 條目是信息性的,中繼下一個返回地址。
“s” 條目是防止異常的健全性檢查。
“t” 條目是信息性的,傳遞線程信息。
“u” 條目是從未處理異常過濾器報告的未處理異常; 這些是崩潰。
“v” 條目是NVAC的“全局”異常處理程序報告的未處理的異常; 這些是崩潰。
“w” 條目信息豐富,在異常信息通過New Vegas的最終異常處理程序時傳遞異常信息。
“x” 條目是Windows異常數據中的關鍵錯誤; 這些條目不應該出現。
"@" 條目是傳遞附加異常信息的測試版構建條目。
"#" 條目是傳遞附加函數掛鈎信息的beta構建條目。
"^" 條目是信息性的,將可能的返回地址從外部庫代碼傳遞到主代碼。
":" 條目從OutputDebugString調用輸出。
";" 條目由遊戲自己的錯誤檢查輸出。

mod開發者注意:

我強烈建議在開發mod時禁用NVAC(通過你的mod管理器或者從你的Data/NVSE/Plugins文件夾中刪除nvac.dll),以確保NVAC不會抑制你的mod引起的任何崩潰,這些崩潰可以在你這邊解決。

變更日誌:

7.5.1.0
-修正了使用Mod Organizer時與TTW一起自動安裝的兼容性。 謝謝你DarianStephens。
-nvac.dll沒有變化(與7.5.0.0相比)。

7.5.0.0
-Win10AU修復。
-增加了通過mod manager安裝輻射3、湮沒和天際的支持。
-在日誌輸出中添加了Windows版本。
-增加了對地址00B57AA9的支持。

7.4.0.0
-內部代碼清理和次要重構。
-為日誌輸出添加了樸素線程安全性,以避免罕見的損壞日誌輸出。
-增加了對測試指令的啟髮式檢測支持。
-增加了對更多x87 FPU指令的啟髮式檢測支持。
-增加了對MOVSW和LODSW指令的啟髮式檢測支持。
-增加了對與地址00C670CE相關的Havok物理崩潰的支持。
-增加了對InterlockedCompareExchange的NVSR變體的支持。
-改進了ntdll.dll中出現特定異常時的日誌記錄。
-將日誌輸出切換到控制台的遊戲控制台命令(在控制台中鍵入“nvac”)。
-通過PCB清除內存,添加到地址00AA55A6的異常恢復嘗試中。
-增加了插件加載期間的異常處理。
-改變了一些“!” 將條目記錄到“_”中,以反映其信息性而不是感嘆性。
-內聯了更多的助手函數。
-細化了更多助手功能。
-增加了強制加載特定着色器包的能力; 如果Data\Shaders\shaderpackage%03i.sdp存在,它將覆蓋其他。
-增加了CrashSave生成; 在某些條件下,當NVAC無法防止崩潰時,就會發生保存。
-崩潰保存在加載遊戲菜單中有一個“崩潰”標籤(如果沒有NVAC,它們將有一個“系統”標籤)。
-崩潰保存只能作為最後的手段使用(在某些情況下,它們可能包含不良數據,如無效的玩家FaceGen數據),但也可以作為一個選項使用(如如果您在4小時內沒有保存,並希望嘗試繼續)。

7.2.1.0
-修復了錯誤指針調用恢復中的邏輯缺陷。
-對遊戲錯誤信息記錄的更多更改; 這些可能會進一步改變。

7.2.0.0
-增加了對多一條指令的啟髮式檢測支持。
-改進了壞指針調用恢復和相關日誌條目。
-改進了堆棧溢出恢復(略微)。
-針對與地址00AA9A41相關的異常添加內存不足測試。
-增加了SEH鈎子故障的日誌輸出。
-細化了一個助手功能。
-內聯了另外三個助手函數。

7.1.0.0
-增加了對MOVSS的啟髮式檢測支持。
-增加了對地址005E572B相關掛起的支持。
-增加了對地址005E58BD相關掛起的支持。
-內存不足測試靈敏度從8 MB更改為16 MB。
-對遊戲錯誤信息記錄的更多更改; 這些可能會進一步改變。
-次要的代碼優化。

7.0.0.0
-NVAC內部的大量代碼清理和重組。
-增加了對另外10條指令的啟髮式檢測支持。
-使目標代碼更改SEH(“e”條目)更加穩健。
-提高了健全性檢查(“s”條目)的效率。
-改進了新維加斯自我終止(“q”條目)的日誌記錄。
-添加了日誌記錄輸出,以識別主代碼調用外部庫代碼的位置(“^”條目)。
-更改了特定ntdll.dll異常的快速退出。
-刪除了對16個地址的定向支持; 它們現在會自動處理:
-0043C47A、0045840A、004A408A、004A995D、004FD3CA、0057E141、0061387D、006BF460
-008A5328、0094E607、00A02F52、00A09FCA、00A2FC8D、00A5E378、00AA6F14、00D0D7D8

6.9.0.0
-增加了對MOVAPS/MOVUPS/MOVDQA/MOVDQU XMM?的啟髮式檢測支持, OWORD PTR【?】.
-改進了從空指針調用、空指令和中間不在的異常中的恢復。
-改進了空指針調用恢復失敗時的日誌輸出。
-刪除了對地址00401992的支持; 它很慢,現在是自動處理的。
-縮小了輸出缺少主(0046158A)錯誤消息的情況。
-針對禁用對象w/LOD(006FCF03)錯誤,改進了恢復並添加了日誌輸出。
-為與地址00D1F29C相關的異常添加了內存不足檢查。
-對遊戲錯誤信息記錄的更多更改; 這些可能會進一步改變。

6.8.0.0
-內存檢查添加到與地址00AAA60A相關的異常。
-使對數截斷閾值更小(從16 KB到8 KB)。
-對遊戲錯誤信息記錄的更多更改; 這些可能會進一步改變。

-將內聯地址列表移至只讀數據部分。

6.7.0.0
-增加了除零異常支持。
-增加了初步堆棧溢出異常支持; 這將得到改善。
-增加了遊戲INI設置長度限制(針對sArchiveList,從255增加到8191)。
-改變特定遊戲錯誤消息記錄; 這些可能會進一步改變。
-次要的代碼優化。

6.6.0.0
-增加了對以DD開頭的x87指令的啟髮式檢測支持。
-增加了保護頁面異常支持(包括保護頁面恢復)。
-修復了空指針調用恢復失敗時的日誌輸出。
-使兩次懸挂檢測更加保守。
-解決了與NVSE的EnableGameErrorLog設置的衝突。
-實現特定遊戲錯誤消息記錄; 這些可能會改變。

6.5.1.0
-修正了NVAC腳本擴展器插件查詢和加載功能中的一個錯誤。

6.5.0.0
-謝謝beta測試人員。
-將草渲染範圍提高1個單元格距離; 受fGrassStartFadeDistance影響。
-從最後一次機會DirectX重置恢復中刪除了睡眠; 這沒有幫助。
-刪除了對地址008256D9的支持; 它很慢,現在是自動處理的。
-修復了IAT修補代碼中的一個純理論錯誤。
-增加了對地址00C3E159相關掛起的支持。
-添加了與地址00A5BA62相關的掛起的日誌輸出。
-增加了程序自終止的日誌輸出。
-增加了對EXCEPTION_ILLEGAL_INSTRUCTION和EXCEPTION_PRIV_INSTRUCTION的支持。
-增加了對49條指令的啟髮式檢測支持。
-內聯了另外六個助手函數。
——細化(優化)三大幫手功能。
-改進了特定的浮點零點測試(39個位置)。

6.4.0.0
-為與地址00ED2C9E相關的異常添加了內存不足檢查。
-為last chance DirectX重置恢復添加了最小睡眠。
-改進了從空指針調用、空指令和middle of nowhere異常的恢復。
-修復了對以D8開頭的x87指令的啟髮式檢測支持。
-內聯了多一個輔助函數。

6.3.0.0
-添加了第三方庫進行的OutputDebugString調用的日誌輸出。
-添加了非連續異常的日誌輸出。
-改進了對齊指令未對準相對於訪問衝突異常的檢測。
-增加了對以D8開頭的x87指令的啟髮式檢測支持。
-增加了對其他2個報告崩潰的啟髮式檢測支持。
-為“!”添加了正確的日誌輸出函數 條目。
-DirectShow過濾器過濾的初步基礎工作。

6.2.5.0

-增加了對MOVQ/MOVDQA/MOVDQU的啟髮式檢測支持。
-添加了分級列表錯誤的日誌輸出。

6.2.0.0
-初步支持地址00B63EFF。
-改進了對地址00E8C00B的支持。
-增加了對920多條指令的啟髮式檢測支持。
-刪除了對5.8.0.0版中添加的資產加載掛起的支持。
-添加了兩個潛在掛起的日誌輸出。
-內聯了另外兩個助手函數。

6.1.0.0
-增加了對數百條指令的啟髮式檢測支持。
-改進了MOVAPS的處理。
-對各種掛起修復進行了更改。
-為與地址00AA55A6相關的異常添加了內存不足檢查。
-刪除了對NVSE 3b2的目標支持(現在有更新的版本)。
-內聯了20多個助手函數。

6.0.0.0
-增加了對數百條指令的啟髮式檢測支持。 謝謝beta測試人員。
-為另一個資產加載掛起提供初步支持。
-大修了“全局”異常處理程序中的指令解析器。
-改進了主機進程的識別(通常是FalloutNV.exe)。
-在無限循環的情況下,日誌將不再變得瘋狂巨大。

5.9.0.0
-增加了對另外十條指令的實驗性啟髮式檢測支持。


5.8.0.0
-對資產加載掛起的初步支持。
-內聯了另外兩個助手函數。
-次要的代碼優化。

5.7.0.0
-初步支持地址005E0F16。
-初步支持地址006BF48E。
-初步支持地址00E8C00D。
-增加了對另外十條指令的啟髮式檢測支持。
-內聯了另外兩個助手函數。

5.6.0.0
-增加了對另外八條指令的啟髮式檢測支持。
-增加了空指令異常的恢復嘗試。
-初步支持與信號量使用相關的掛起。
-各種內部NVAC功能的效率略有提高。
-添加了特定oleaut32.dll異常的日誌記錄輸出。
-改進了測井輸出。

5.5.0.0
-初步支持地址004B068D。
-增加了備用SEH掛鈎機制。
-添加了序數導出,允許基準實用程序直接計時NVAC的異常處理程序。
-內聯了另外五個助手函數。
-次要的代碼優化。

5.4.1.0
-與NVAC基準實用程序相關的小更新。

5.4.0.0
-在可選文件區域添加了一個實用程序,用於對NVAC異常處理程序的速度進行基準測試。
-縮小了對特定新維加斯掛起的支持。
-增加了對另外18條指令的啟髮式檢測支持。
-將內聯地址列表移動到代碼部分的末尾。
-改進了測井輸出。

5.3.0.0
-初步支持地址005A8EE0。
-擴大了對特定新維加斯掛起的支持。
-增加了對另外23條指令的啟髮式檢測支持。
-將一些啟髮式檢測比較轉換為跳轉表。
-內聯了多一個輔助函數。
-刪除了導入跳轉表。

5.2.0.0
-增加了對GECK地址00936733的支持。
-修復了一個特定的新維加斯掛起; ntdll.dll的那個。 謝謝平民31。
-增加了對另外三條指令的啟髮式檢測支持。
-內聯了另外四個助手函數。
-改進了測井輸出。

5.1.0.0
-初步支持地址00804432。
-刪除了地址00A61693的初步狀態。
-增加了對另外兩條指令的啟髮式檢測支持。
-增加了對GECK版本1.4.0.518的支持,並修復了頭部預覽崩潰。

5.0.0.0
-初步支持地址006F47FC。
-日誌記錄現在用“f”條目記錄避免的掛起/凍結。
-更改了特定ntdll.dll異常的快速退出。
-改進了特定ntdll.dll異常的日誌記錄輸出。
-增加了對另外三條指令的啟髮式檢測支持。
-內聯了另外四個助手函數。
-提高了代碼修補的速度。

4.9.0.0
-更改了地址0051E2EA的異常恢復。
-初步支持地址0064DAD6。
-修復了一個特定的新維加斯掛起(希望如此); 不是ntdll.dll那個。
-針對特定的ntdll.dll異常,使快速退出更加激進。
-改進了特定ntdll.dll異常的日誌記錄輸出。
-一些小的效率改進和代碼重組。

4.8.0.0
-初步支持地址00A61693。
-針對特定的ntdll.dll異常,將掛起更改為快速退出。
-日誌記錄現在包括一個用於NVSR快速退出的條目。
-修復了與地址00401992相關的錯誤日誌記錄輸出。
-改進了與地址00AA55A6相關的日誌記錄輸出。

4.7.0.0
-初步支持地址006B43FC。
-初步支持地址006B96CC。
-日誌記錄現在包括一個丟失的主(0046158A)崩潰的條目。

4.6.0.0
-初步支持地址005595B1。
-初步支持地址00AAA60A。
-增加了對另外五條指令的啟髮式檢測支持。
-內聯了另外三個助手函數。

4.5.1.0
-修正了4.5.0.0中阻止新維加斯啟動的錯誤。

4.5.0.0
-初步支持地址00EC61FD。
-初步支持地址00EC6225。
-增加了對另外六條指令的啟髮式檢測支持。
-日誌記錄現在包括一個成功退出的條目(但不包括NVSR的快速退出)。
-內聯了另外兩個助手函數。

4.4.0.0
-再次更改了地址00AA55A6的異常恢復。
-更改了特定ntdll.dll異常的異常恢復。
-改進了測井輸出。

4.3.0.0
-稍微改變了主SEH掛鈎。
-增加了對另外四條指令的啟髮式檢測支持。
-增加了對NVAC異常處理程序中異常的支持。
-增加了“middle of nowhere”異常的恢復嘗試。

4.2.0.0
-初步支持地址006BF460。
-增加了對另外十條指令的啟髮式檢測支持。
-內聯了另外三個助手函數。
-將內聯地址列表移動到代碼部分。

4.1.0.0
-增加了對另外十條指令的啟髮式檢測支持。

4.0.0.0
-實施了額外的SEH掛鈎; 這應該會捕獲更多錯誤的未處理異常。
-增加了對多一條指令的啟髮式檢測支持。
-各種內部NVAC功能的效率略有提高。
-日誌記錄現在在“n”個條目中列出了防止的原始崩潰地址的位置。
-內聯了另外兩個助手函數。

3.9.0.0
-更改了地址00440DAA的異常恢復。
-增加了對另外三條指令的啟髮式檢測支持。
-增加了對尋址00000000的呼叫的恢復嘗試。
-內聯了另外十個助手函數。

3.8.0.0
-再次更改了地址00AA55A6的異常恢復。
-更改了地址006BF1DA的異常恢復。
-更改了地址00EC621F的異常恢復。

3.7.0.0

-初步支持地址004A995D。
-初步支持地址006A870C。

3.6.0.0

-增加了對地址0045840A的支持。
-初步支持地址0094E607。
-初步支持地址00A2FC8D。
-初步支持地址00A5E378。
-初步支持地址00D1F29C。
-內聯了另外兩個助手函數。

3.5.0.0
-再次更改了地址00AA55A6的異常恢復。
-恢復了對地址0043C47A的支持。
-初步支持地址00AAA62E。
-內聯了另外三個助手函數。

3.4.0.0
-恢復了對地址006ADB69的初步支持。
-恢復了對地址006FCF03的初步支持。
-初步支持地址00440DAA。
-初步支持地址004A408A。
-初步支持地址00559506。
-對地址0057E141的初步支持。
-初步支持地址008256DC。
-初步支持地址008A5328。
-初步支持地址00AA6F14。
-刪除了NVSE偏移000443B8的初步狀態。
-內聯了另外兩個助手函數。
-修正了與SEHOP的兼容性。

3.3.0.0
-完成了函數內聯與全局異常處理程序的集成。
-增加了對地址004FD3CA的支持。
-初步支持地址00401992。
-初步支持地址00D0D7D8。
-內聯了另外兩個助手函數。

3.2.0.0
-暫時移除對地址006ADB69的支持。
-暫時移除對地址006FCF03的支持。
-刪除了地址0051E2EA的初步狀態。

3.1.0.0
-修正了對地址0061387D的支持。
-幫助函數內聯的初始實現。

3.0.0.0
-實現了處理簡單異常的更有效方法。
-增加了對地址0065893A的支持。
-初步支持地址0054546F。
-初步支持地址0061387D。
-初步支持地址006ADB69。
-初步支持地址006FCF03。
-初步支持地址00C9E64E。

2.9.0.0
-更改了地址00AA55A6的異常恢復。
-初步支持地址0057C876。
-初步支持地址006A7F22。
-初步支持地址006BF1DA。
-對NVSE偏移000443B8的初步支持。

2.8.0.0
-增加了對地址009611EA的支持。
-初步支持地址00405440。
-初步支持地址006B9102。
-初步支持地址00A02F52。
-初步支持地址00A09FCA。
-初步支持地址00EC621F。
-刪除了NVSE偏移00020A07的初步狀態。
-改進了mod manager支持。 謝謝你弗雷迪_法恩斯沃思。

2.7.0.0
-增加了對地址0043C47A的支持。
-初步支持地址0051E2EA。
-對NVSE偏移00020A07的初步支持。
-刪除了地址00A61A74的初步狀態。
-將NVSE信息添加到日誌輸出中。

2.6.0.0
-增加了對地址0072607A的支持。
-初步支持地址006B3542。
-初步支持地址006F3F52。
-刪除地址0045CD6A的初步狀態。
-刪除了地址0084E3AA的初步狀態。

2.5.0.0
-對地址0045CD6A的初步支持。
-初步支持地址00AA55A6。
-在zip文件中添加了極簡自述文件。

2.4.0.0
-初步支持地址0084E3AA。
-增加了對通過mod manager安裝的支持(希望如此)。
-日誌記錄現在列出了“e”和“s”條目中防止的原始崩潰地址的位置。
-日誌記錄現在列出異常地址的模塊文件名。

2.3.0.0
-初步支持地址00A61A74。
-改進了日誌記錄輸出(在我想放空格的地方寫了一些空值)。

2.2.0.0
-日誌記錄現在有了一個有意義的時間戳(ddhhmmss,日:小時:分鐘:秒)。
-現在記錄未處理的異常。 在評論中提交。

2.1.0.0
-添加了日誌記錄(到新Vegas文件夾中的nvac.log)。
-改進了應用更改前的兼容性測試。
-異常恢復時口吃略有減少。

2.0.0.0
-首次公開發行。
本工具由三方[bufftool]提供注意圖標

立即下载模组

安裝 LagoFast,啟動 Fallout: New Vegas 並暢玩你喜愛的模組。