- ジャンル:
- Sid Meier's Game
- シリーズ:
- Civilization IV情報, Civ4技術・サポート情報
- 種類:
- データ/資料
- 最終更新:
- 2007年07月20日 17時02分
- シリアル:
- 2005-12-09-08
| << Civ4 v1.09パッチが公式サイトに掲載 / D2D版のv1.09パッチも | もくじへ戻る | Civilization IVのv1.52パッチがリリース >> |
| この章のはじめへ戻る |
前に戻る
Civ4 v1.52以降のバージョンには、Firaxis公式による同様の改善が取り込まれています。このパッチは時代遅れなので、v1.52以降の環境では決して使用しないでください。
CivFanaticsのフォーラムにて、Harkonnen氏がCivilization IVのメモリの利用法を改善するための非公式パッチを公開しています。ファイルサイズは48KBと非常に小さいもの。書庫に含まれる3つのファイルをCiv4のインストールされたフォルダ(Civilization4.exe がある場所)に置き、標準のDLLと置き換えるかたちで使用します。
スレッドが氏に対する感謝の声で溢れているところを見ると、これはかなりすごい効果があるみたい。以下、手順を説明してみます。
ファイルのうち、zlib1.dll は PatchByHarkonnen.dll をロードするためだけに使用されます。また、このライブラリは zlib.net の最新の zlib のソースからコンパイルされています。(訳注:じつは、Civ4に付属する zlib はバージョンが古く、いくつかの脆弱性が報告されている)
かならず zlib1.dll をダウンロードして入れ替える必要があることに注意してください。入れ替えない場合、PatchByHarkonnen.dllがロードされないので、メモリの使用法はまったく改善されません。
このパッチは、最低でもビデオメモリ128MB以上でハードウェアT&L機能をそなえたGeForce2以上のビデオカードを利用し、メインメモリ512MB以上の環境を主な対象としたものですが、それより低い環境でも試してみる価値はあるかもしれません──ビデオメモリ64MBのシステムで効果があったという報告もあります。
手順
パッチを利用するためには、次の手順にしたがってください。グラフィック関連のオプションを下げる手順も含まれていますが、これは必須ではありません。メモリ改善法が成功したあとなら、グラフィックオプションを元に戻してかまいません。
- Civilization4.iniを編集し、
D3D9Query = 1 DynamicAnimPaging = 0
と設定する。このファイルが見つからない、編集するのが難しいという場合は、飛ばして手順2へ進んでもかまわない。
- ゲームを起動する。(ゲームが起動しない場合は手順8へ進む)
- ゲームをウィンドウモードにする(必須ではないが、初回起動時の安定動作のためにはこちらの方がおすすめ)
- アンチエイリアス (anti-aliasing) を 0 にする。(これも必須ではない)
- グラフィック関連のオプションをすべて Low にする。(これも必須ではない)
- 低解像度テクスチャ (Low resolution textures) のチェックを入れる。(これも必須ではない)
- グラフィックメニュー右側の効果やアニメーションに関しては、チェックを入れておいても構わない
- ゲームを終了する
ゲームが 'Initializing Python' フェイスでハングしてしまった場合、[Shift]を押しながらゲームを再起動して、ゲームのキャッシュファイルをクリアしてみてほしい。これはパッチではなくpython24.dllの問題だと思う。
上の手順をすべて踏んだら、サイズのおおきなセーブゲームをロードしてみてほしい。もしゲームがクラッシュしたか、(メインメニュー下の地球や太陽の)グラフィックが乱れた場合、Harkonnen.iniファイルで、
insane_mode = 0
と指定してもういちど試してみてほしい。
解説
ウィンドウモードは、ゲームが 'insane' モードでクラッシュを起こさない確率を上昇させる。
Antialiasing = 0 は劇的に速度を向上させる──このゲームは過剰なほど詳細なジオメトリを利用しており、3〜4ピクセルにひとつギザギザができるらしい。アンチエイリアス (AA) を 4 に設定すると、ビデオカードは実際には〜2048x2048の解像度で仕事をすることになる。遅くなるのも無理はない……。GeForce2のような古いカードはつねに解像度を増加させるが(これをスーパーサンプリングと呼ぶ)、あたらしいビデオカードはギザギザができた場所だけで解像度を増加させる。しかし、このゲームではギザギザが大量に発生するので……マルチサンプリングの場合でもスーパーサンプリングと同じことが起こってしまう。(訳注:ASCII 24によるスーパーサンプリングとマルチサンプリングの解説)
textures quality はメインメニューの地球の姿以外に影響をあたえていないように見えるが、それでも〜50MB程度メモリが浮く。この設定は Low にしておくことをおすすめする。
アニメーションやエフェクトもパフォーマンスを減少させるが、これは見る価値がある。好みでオンにしてもよい。
上の手順すべてを踏んだ場合、極大サイズのインド西暦1961年のセーブゲームを、メモリ512MBと insane モードのパッチでプレイできた。(興味を持った人のために、http://sampo.ru/~headden/Harkonnen%20AD-1961.Civ4SavedGameにこのセーブファイルがある) メインメモリが1GBであるか、ビデオメモリが256MBである場合は、グラフィックのディテールをもっと上げても構わないだろう。
Harkonnen.iniの解説
ここまでの動作がうまくいったなら、Harkonnen.iniを編集して、ファイル内のコメントにしたがって 'vid_mem_size' を適切に設定してほしい。基本的に、ビデオメモリが256MBである場合は、この項目に200を設定する。
また、'insane_mode'のコメントもよく読んでおいてほしい。nVidiaと一部のATiのカードの利用者は、ここを 0 に設定する必要があるかもしれない。
Harkonnen.iniのコメント和訳
; 0/1 - このパッチ全体の効果をトグルする patch_on = 1 ; ビデオメモリの使用量を MB 単位で指定する。計算方法は次の通り: ; ; 1. グラフィック(特にテクスチャ)の設定が Low の場合 ; ビデオメモリ + AGPアパーチャサイズ (agp_apperture_size) - 100 ; ; 2. グラフィック(特にテクスチャ)の設定が High の場合 ; ビデオメモリ + AGPアパーチャサイズ (agp_apperture_size) - 120 ; ; この値を低く設定しすぎるとパフォーマンスが低下する。というのは、 ;(Civ4のパフォーマンスとメモリに大きく影響をあたえるところの)ジオメ ; トリの計算にビデオメモリが使用されなくなるからだ。 ; ; この値を高くしすぎると、ゲームがクラッシュするか速度が鈍化する可能性 ; がある。というのは、ジオメトリ情報がビデオメモリからテクスチャを追い ; 出してしまうからだ。 ; ; ビデオメモリ 128MB, ハードウェアT&L, テクスチャ Low の設定では、 ; この値に80 を指定することを推奨する。同じ環境でテクスチャを High 設 ; 定した場合は 64 を推奨する。 ; (メモリ128MBのATi Radeon 9800 Proで試験した結果から) vid_mem_usage = 80 ; insane_mode を 1 に指定すると、'vid_mem_usage' 命令の仮想メモリの使 ; 用量を減少させる。(仮想メモリはHDDのスワッピングの原因となる)これ ; は DirectX のドキュメントでは「作動しない」とされているアプローチだ ; が、WinXP SP2 Pro/ATi Radeon 9800 Pro (128MB), Catalyst 5.11 という ; 環境では動作を確認した。 ; ; このパッチを当てたらゲームが起動しなくなった、あるいは大/極大マップ ; のスクロール時にゲームがクラッシュするようになったという場合は、この ; 値を 0 に 設定してほしい。 ; ; また、この値を 1 に指定すると、[Alt + Tab]が効かなくなる場合があるこ ; とにも注意してほしい。とくに、ほかのゲームを起動した場合、フラッシュ ; プレイヤーを開いたままである場合、ゲームをフルスクリーンモードで起動 ; した場合、この症状が発生する可能性が高い。ウィンドウモードでは大丈夫 ; だったが、これはブラウザを含む大部分のプログラムをシャットダウンして ; おいた場合だった。'insane_mode = 1' の場合、フルスクリーンモードの ; [Alt + Tab]に失敗する可能性が高い。また、nVidiaのカードではテストし ; ていないことにも注意してほしい。 insane_mode = 1
メモリの使用量
上記の1961ADのセーブファイルを使用した場合:
- patch_on = 0 ── 〜700MB
- patch_on = 1, vid_mem_usage = 80, insane_mode = 0 ── 〜600MB
- patch_on = 1, vid_mem_usage = 80, insane_mode = 1 ── 〜520MB
- patch_on = 1, vid_mem_usage = 180, insane_mode = 1 ── 〜420MB
(最後の例は実際に試したことはない。ビデオメモリ256MBの環境にいる人は試してみるべきだろう。おそらくATiのカードでしかうまく働かないだろうが……)
追記
実は、このパッチは civilization4.exe と d3d9.dll の中間のレイヤとして動作する。つまり逆アセンブルの禁止にはあたらないのだ。このパッチに問題があるとしたら、ウィンドウのタイトルと一部のメッセージを書き換えることくらいだろう。実際の話、このパッチは普遍的と言ってもいいくらいだ。Sid Meier's Pirates!にも使えるかもしれない。
重要
ゲームがロード中にクラッシュし、PatchByHarkonnen.dllが原因であるというメッセージが表示された場合は、この投稿のアドバイスにしたがって、ATI Tray Toolsを切ってみてほしい。確信はないが、RivaTunerもパッチに悪い影響をあたえる可能性がある。これらのソフトウェアを完全にアンインストールする必要はなく、オフにするだけでよい。
改変されていないオリジナルの zlib1.dll と python24.dll は以下のURIから取得できる。
次へ進む
| << Civ4 v1.09パッチが公式サイトに掲載 / D2D版のv1.09パッチも | もくじへ戻る | Civilization IVのv1.52パッチがリリース >> |
| この章のはじめへ戻る |