RamDisk に Oblivion の BSA ファイル入れたらやけにスムーズ。決して早くはないが、カクつきはなくなった。何にせよ、 MOD の FCOM が重過ぎる。
RamDisk 活用法 1 – Oblivion
16GB の RAM を積んだので、 10GB を RamDisk にした。ちなみにメモリは Max 使っても 3GB 程度だから、あと 2GB くらいは増やせそうだが、ゆとりを持たせるのも悪くない。
10GB のチョッ速テンポラリ領域に何をおくかと言えば、 oblivion の BSA ファイルだ。ってゲームかよ。
この BSA ファイルと言うのは、圧縮された (もしくは未圧縮の) ゲームデータの書庫ファイルと思って欲しい。しらねーよ? うん、もっともだw
とりあえず、これを RamDisk 領域に置くことで、ゲームがスムーズに動くようになるという。本当はフォルダごと RamDisk に置くのがいいのだが、容量足りず無念。必要な BSA ファイルだけ RamDisk に置くことにする。
簡単に流れを説明すると、以下のファイルが元ファイル。
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa
これを RamDisk にコピーする。
- z:\oblivion\Oblivion – Meshes.bsa
- z:\oblivion\Oblivion – Textures – Compressed.bsa
HDD の方のファイル名を変更 (.ram をつける)。
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa.ram
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa.ram
HDD に RamDisk へのシンボリックリンクを作成。
※ C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa のようなシンボリックリンクを作成する。ファイル名としては同じだが、実際は SYMLINK。その実体は RamDisk にある。
遊んでみた。 HDD のときはいちいち止まっていた読み込みバーが、 RamDisk にするとやけにスムーズだ。
広大なフィールドを Speed 250 で走り回ってみた。
読み込み時のカクツキは無くなったが、キャラクター変更 MOD の MBP2ch 入れてある弊害か、目がもの凄いことになっている。座標がずれた目のテクスチャが表示されちゃってるせいで、目の中に目が 2 つある。こういってみると「ふうん」で済むが、実際見ると結構グロイ。気持ち悪いとかじゃなく、グロイ。
目玉が 4 つあるならまだいいのだ。しかし、目の中に異形の目玉があるのが、これほどまでに生理的嫌悪感を抱かせるとは、寡聞にして知らなかった。知りたくもなかった。
これは、シンボリックリンクを作った日付が、キャラ MOD のファイルより新しくなってしまったせいで後から読み込まれ、データが Vanilla に戻ってしまっているせいらしい。
BSA に書庫されているファイル群のタイムスタンプでも、 RamDisk にコピーしたファイルのタイムスタンプでもないことに注意。
それが分かるまで試行錯誤したので、覚書として記事にすることにした。って、どっかで見たようなフレーズ。
Oblivion の BSA ファイルを RamDisk に移動させて遊ぶ
1. オリジナルファイルを RamDisk に配置
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa
上記のファイルを RamDisk にコピーする。
- z:\oblivion\Oblivion – Meshes.bsa
- z:\oblivion\Oblivion – Textures – Compressed.bsa
2. オリジナルのファイル名変更
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa
上記を、以下のファイル名にする (.ram をつける)。
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa.ram
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa.ram
3. シンボリックリンク作成
これが今回のキモ。
Windows7 で、シンボリックリンクそのもののタイムスタンプを変更することがどうやってもできなかった。ではどうするかというと、シンボリックリンクは日付を過去にして作る。
なんと乱暴な! しかしそれしかない。
おもむろに 2006/01/01 にタイムスリップ。コンパネにある日付と日時、だっけ? 右下の時計アイコンからも修正可能。戻すときが面倒なので、時間までは変更しない方がいいだろう。
次に、コマンドラインを管理者権限で実行。
- mklink "C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa" "z:\oblivion\Oblivion - Meshes.bsa"
- mklink "C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa" "z:\oblivion\Oblivion - Textures - Compressed.bsa"
Z:\oblivion\Oblivion – Meshes.bsa のシンボリックリンクが、
C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa として作成される。
oblivion が上記 BSA を読み込みに行くと、リンク先の RamDisk のファイルを読み込むというわけ。
シンボリックリンクを作成したら、現代に戻ってくるのを忘れないこと。 2011年xx月xx日。
4. ゲームを楽しむ
こんな感じで、サイズの大きな奴をコピー対象にして、バッチファイル化しておくといいと思われ。
- echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Oblivion - Textures - Compressed.bsa.ram" "z:\game\Oblivion - Textures - Compressed.bsa"
- echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Oblivion - Meshes.bsa.ram" "z:\game\Oblivion - Meshes.bsa"
- echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Fra - NewItems.bsa.ram" "z:\game\Fra - NewItems.bsa"
- echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Oblivion WarCry EV.bsa.ram" "z:\game\Oblivion WarCry EV.bsa"
- echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\FCOM_Convergence.bsa.ram" "z:\game\FCOM_Convergence.bsa"
- echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\FCOM_Convergence - MMM.bsa.ram" "z:\game\FCOM_Convergence - MMM.bsa"
※ それぞれのファイルのシンボリックリンクは、管理者権限で作っておくこと。
※ 再起動すると RamDisk のデータは消えるが、シンボリックリンクは消えないので、 Oblivion 起動前にこのバッチを一般権限で実行すれば OK。
※ 屋外では Voice 等の大きなファイルは関係ないと思ったので、対象外にしている
RamDisk の効果をニヤニヤしながら眺める。それにしても何を入れているか、すぐ分かる――正確には、分かる人には分かる。
5. 戻したくなったら
以下のシンボリックリンクを削除。
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa
拡張子の .ram を消して、ファイル名を元に戻す。
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Meshes.bsa.ram
- C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion – Textures – Compressed.bsa.ram
効果が分かったところで、他の大型 BSA 一式を RamDisk にコピーした。 CTD (クラッシュ) も少なくなって、嬉しい。
RamDisk 活用法 2 – Firefox
1. Firefox の設定を行なう
とりあえず、キャッシュを RamDisk 上に作成する設定を行なう。
about:config から、
browser.cache.disk.parent_directory を追加して、 z:\tmp とした。
これで、 Firefox 再起動後に RamDisk にキャッシュが作成される。
2. Firefox のディレクトリ名変更
C:\Program Files (x86)\Mozilla Firefox
というディレクトリを
C:\Program Files (x86)\Mozilla Firefox.ram
と名前変更。
3. Firefox を RamDisk 上で起動
firefox.bat を作成する。
- echo D | xcopy /E /D /R /Y "C:\Program Files (x86)\Mozilla Firefox.ram" "z:\apps\Mozilla Firefox"
- mklink /d "C:\Program Files (x86)\Mozilla Firefox\" "z:\apps\Mozilla Firefox\"
- "z:\apps\Mozilla Firefox\firefox.exe"
1 回目だけ管理者モードで実行する。このとき、 Firefox が RamDisk から起動するが、とりあえず終了させる。
次回から firerox.bat を普通に W クリックすれば OK。
ちなみに、 1 回目を管理者モードで実行させるのは、
C:\Program Files (x86)\Mozilla Firefox
というシンボリックリンクを作るため。
今後は firefox.bat で Firefox を起動する。
4. 戻したくなったら
C:\Program Files (x86)\Mozilla Firefox
のシンボリックリンクを削除した後、
C:\Program Files (x86)\Mozilla Firefox.ram を
C:\Program Files (x86)\Mozilla Firefox に名前変更すれば良い。
個人設定ファイルの場所は、 RamDisk に移動しなくてもいいかな。
再起動で消えちゃ敵わないし。
あとは、 AddOn とか入れたら、 RamDisk →
C:\Program Files (x86)\Mozilla Firefox.ram
にコピーする必要があるやも。
まったく同じぐろ目の症状が出て、いろいろやっても治らず、あきらめかけていたのですが、タイムスタンプが原因だったんですか。重要な情報をありがとうございます。不具合だけならまだしも思いのほか見た目で精神的ダメージを食らうのでどうしようかと困ってました。