Skyrim再プレイ、気になったmodを片っ端から入れていたら、いつの間にかesp/esmファイルが160個ぐらいになりました。
入れすぎなのか、最近そこらじゅうでCTDするようになったので調査を始めました。
まずはとりあえずグラボのドライバを最新版に更新。直らず。
最新版の314.22が3月のもので、最近更新されてないようです。
2ヶ月も最新の座を守っているということは、特に問題がない優等生なのでしょう。
ということでドライバ関係なし。
汚れたセーブデータでは話にならないので、ニューゲームで調査します。
まずはmod全部入りで、Alternate Startを使用してヘルゲン付近からスタート。まっすぐリバーウッドに向かいます。
しかしなんということでしょう、リバーウッド到達前にCTD。
メモリの使用量とPapyrusのログをチェックしながらCTDツアーを何度か回してみると、どうもメモリを2GB使った頃が怪しいようです。
場所的には、石碑を過ぎてオオカミが出てくるあたり。
Papyrusのエラーもそれなりに出ていましたが、エラーを出すmodを外しても状況は変わりませんでした。
それならということで、今度はSkyUIなどのこれが使えないならもうやりませんレベルの基本的なmodと、Alternate Startも残してもう一度。
だってさすがにオープニングから見るのは面倒ですし・・・。
メモリを消費するために高解像度テクスチャ系も残します。
予想どおり、やはりリバーウッド到達前にメモリ使用量が2GBに到達してCTD。
次は特定の場所が原因というセンも考慮にいれて場所がえ。
こまめにセーブと再起動で移動して場所を変えて、ホワイトラン~なんたら農場のシセロがいるあたりのエリアを歩き回ります。
やはりメモリ使用量が2GB付近でCTD。
ここまでで、メモリ使用量が原因であろうということがほぼ確実になりました。
しかし随分前の公式パッチで4GBまで使えるようになっているはずのに、2GBでダメとはどういうことでしょう。
もちろんSkyrim本体は最新版です。
となるとiniファイルに何か設定があるのかな、と検索して調査。
そして見つけたのがここ。
RCRN Community | Five quick Skyrim tweaks you may not know!
Skyrim.iniの[Papyrus]セクションでiMaxAllocatedMemoryBytesを指定し、Skyrimに使えるメモリを教えるのだ、とあります。
if you have 4GB of ram -> iMaxAllocatedMemoryBytes=2000000000
if you have 6GB of ram -> iMaxAllocatedMemoryBytes=3000000000
if you have 8GB of ram -> iMaxAllocatedMemoryBytes=4000000000
[Papyrus]セクションだとスクリプトのためのメモリじゃないの、と思いつつも試してみることに。
うちのPCは8GBなので、これに従って4GBを指定してみました。
起動するとSkyUIがエラーコード4を出しました。
Papyrusのログを見ると、3行目に下のようなメッセージが出ていました。
マイナス値として認識しているようです。
Memory page: 256 (min) 1024 (max) -294967296 (max total)
さっきのページをよく読んでみると、下のほうのコメントでこれについて書かれていました。
iMaxAllocatedMemoryBytesの値は32bit符号付き整数なので、2^31 – 1の2147483647が最大値のようです。
あれ、それじゃ結局2GBなんじゃ・・・と思いつつも2147483647を指定してテスト。
どうやらこの設定は効果アリのようで、無事リバーウッドに到達。
それどころかそのままシセロに会いにいっても大丈夫でした。
mod全部入りにしてみても問題なし。
結局メモリは2GBまでしか使えてないようですが、CTDはしなくなったのでもうこれでいいかなぁ。
どなたか4GBまで使う方法をご存知でしたら教えて下さい。