Skyrim: 今はメモリ4GB対応のはずなのに、2GB使うとCTDするので調査してみた

投稿者: | 2013/05/15

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まで使う方法をご存知でしたら教えて下さい。