☆ Combat Pathing Revolution NG [NPC] ID:196650 Author:cidalex 2026-10-25 00:38 Version:1
- RATE: ★=8 [DOWNLOAD SITE]
-
TAG: [バグフィックス] [問題解決] [戦闘] [NPC] [Linux] [パッチ] [修正] [FIX]
2026-10-25 01:05:06 [編集する] [差分] [日本語化UP]

Combat Pathing Revolution NG
■概要
Linux(Proton / Wine)環境のSkyrim SE 1.5.97で発生する戦闘中CTDを修正するパッチ
DLL内部のスタックアライメント不具合を修正し、
近接戦闘中に発生するランダムなクラッシュを防止
元のDLLの12バイトのみを変更し、その他の機能は維持
■修正内容
・Combat Pathing Revolution 0.30の戦闘中CTDを修正
・NPCの旋回処理「CircleAngleHook2」のスタック配置を修正
・x64呼び出し規約に準拠するようスタックを16バイト境界に整列
・不足していたシャドウスペースを確保
・XMM0レジスタの保存領域が上書きされる問題を修正
・破損した値がXMM6へ復元される問題を修正
・Wine / Proton環境のmovdqaアクセス違反を防止
・Windows環境にも修正を適用
■クラッシュの症状
・近接戦闘中にランダムでCTD
・Crash Loggerにntdll.dllとCombatPathingRevolution.dllが表示
・movdqa命令でアクセス違反が発生
【主なエラーログ】
EXCEPTION_ACCESS_VIOLATION
ntdll.dll+0010F1B
movdqa [rcx+0x60], xmm6
CombatPathingRevolution.dll+00D115B
CombatPathingRevolution.dll+0023852
※上記のDLLオフセットとmovdqaが同時に記録される場合は本パッチの対象
■不具合の原因
・Skyrim SE 1.5.97版のCircleAngleHook2でスタックを8バイトずれた状態にしていた
・プラグイン関数の呼び出し前に必要なシャドウスペースが確保されていなかった
・保存済みのXMM0レジスタが上書きされ、XMM6へ不正な値が復元されていた
・GetMinCircleAngle内のstd::string生成時に不正なスタック配置でmallocを実行
・Wineのメモリ管理処理でmovdqa命令が失敗しCTDが発生
※Windowsでは異なるヒープ処理が使われるため、問題が発生しにくい
■DLLの変更内容
【修正前】
pushf
sub rsp,0x10
movdqu [rsp],xmm0
・スタック使用量:0x18バイト
・スタック境界の不整合
・シャドウスペースなし
【修正後】
pushf
sub rsp,0x38
movups [rsp+0x20],xmm0
・スタック使用量:0x40バイト
・スタック境界を修正
・0x20バイトのシャドウスペースを確保
【終了処理】
movups xmm6,[rsp+0x20]
add rsp,0x38
popf
movss xmm7,xmm0
・元の命令長を維持
・変更箇所は合計12バイト
・DLLのその他の部分は変更なし
※XMM6の値が正常に復元されるため、NPCの旋回動作がわずかに変化する可能性あり
■導入方法
①Combat Pathing Revolution v0.30を導入
②本パッチをMODマネージャーで導入
③元MODのDLLを本パッチで上書き
④MO2では本パッチをCombat Pathing Revolutionより後に配置
【置き換え対象】
SKSE\Plugins\CombatPathingRevolution.dll
※Combat Pathing Revolution本体は削除しないこと
・アニメーション関連ファイル
・BDI設定
・INI設定
上記は元MODのファイルをそのまま使用
■互換性・注意事項
・Skyrim SE 1.5.97専用
・Combat Pathing Revolution 0.30専用
・Linux / Proton / Wine環境のクラッシュ修正が主な目的
・Windows環境でも使用可能
・NolvusなどCPR 0.30を含むMODリストにも対応
・その他の設定変更は不要
【非対応】
・Skyrim AE 1.6.x / 1.7.x
※AE環境では別のSkyrim 1.7.104対応アップデートを使用
■ファイル検証
【修正済みDLLのSHA-256】
a2770d4e3c8706ebaf6461bee8c05d1dee03c01e27701200c1d456287a5a145a
・修正内容を再現できるPythonスクリプトを同梱
・スクリプトは変更前のバイト列を検証してからパッチを適用
・元のDLLから修正済みDLLを再作成可能
・CPR公式GitHubのPDBとNexus公開版v0.30のDLLが一致することを確認済み
■必要条件
Combat Pathing RevolutionSkyrim Special Edition Nexus, cidalex. 25 Oct 2026. Combat Pathing Revolution NG. 25 Oct 2026 <https://www.nexusmods.com/skyrimspecialedition/mods/196650>.PR
PR
上記説明は古い又は異なる場合があります。導入の際はDescriptionを確認の上、自己責任でお願いします。
説明はどなたでも編集する事が可能です、古い又は異なる場合は編集にご協力をお願いします。
To users except in Japan - コメントコメントだけでも投稿できます。気に入ったMODはNEXUSでもENDORSEしましょう。
[Spoiler]テキスト[/Spoiler]とする事で隠しテキスト、#や>>後、半角数字でアンカーを使用可。 -
-