ゲームをあゆむ(攻)

ゲームのことをたくさんかく

The Sims3のGPU認識を修正し、テクスチャ読み込みメモリを変更する方法

16/12/19追記:

MTSにグラフィックルールに関する詳しい説明とより詳細なTipsを掲載している方がいたので一部引用し翻訳しました。


はじめに

この解説はシムズ3に新しいグラフィックカードを認識させ、ゲームをロードするときに「グラフィックカードが認識できませんでした」のメッセージを見えなくするのを助けるよう作られています。この解説の作者はGTX 960MそしてWindows 10の環境でSims 3のv1.67を遊んでいるそうです。この手法はWindows 7と8に準じたものなので、Mac OS Xでも同様の手法で実行できますが、この解説記事は対象外です。

免責事項:以下に同意して下さい。これらはあなたのゲームがおかしくなる可能性があります。あなたのコンピュータ上のファイルを変更するよう指示をしています。あなたが遭遇する可能性のある問題を解決するため、最善を尽くしますが、何か間違えた場合におけるあなたのシステムやゲームプレイ、ディスプレイの不具合について私は一切責任を負いません。

ファイルを編集する前にバックアップをとることを強く推奨します。Sims 3をデフォルトのフォルダにインストールした場合、ファイルを一時的にコピーして保存する必要があります。

デフォルトのインストール場所:これらはあなたの使用しているOSのbit数で違います。32bit(たいていはこれ)と64bitで場所が違うので確認して下さい。

32-bit Windows
DVD: C:\Program Files\Electronic Arts\The Sims 3\
Origin: C:\Program Files\Origin Games\The Sims 3\

64-bit Windows

DVD: C:\Program Files (x86)\Electronic Arts\The Sims 3\
Origin: C:\Program Files (x86)\Origin Games\The Sims 3\


これらのフォルダのbinフォルダにある2つのファイルを編集するため、Sims 3をインストールした場所をメモしておきます。

1:グラフィックカードを調べる

何よりも先にすることは、Sims 3がグラフィックカードを内部的にどう判断しているかです。それを調べるには、Sims 3のフォルダ(デフォルトでは C:\Users\<username>\Documents\Electronic Arts\The Sims 3 ) を開き、小さなテキストファイルを見る必要があります。DeviceConfig.log という名前のこのファイルには、パート2で使うメモすべき情報が含まれます。ファイルをダブルクリックし、メモ帳で開きましょう。
Sims3_DeviceConfig.jpg

※ もし DeviceConfig.log の .log という拡張子が表示されない場合は、Windowsでファイル拡張子を表示させる方法について検索し確認して下さい。この作業はあなたが探すファイルをもっと簡単に見つけるのに役立ちます。

DeviceConfig.log には3つのセクションがあります。最初のセクションはファイルの先頭にあり、名前は === Rating info === です。

Quote
=== Rating info ===
GPU: 5 GPU Memory: 1 CPU: 3 RAM: 4 CPU Speed: 2694 Threading: 3
Adjusted CPU: 3192 RAM: 16295 Adjusted RAM: 15783 Cores: 4
 

ここで最も重要な部分は、2行目のGPUレーティング(GPU:5)です。これはグラフィックスカードが 1(低い)から5(高い)の基準でどの程度のレベルで動作するかをSims 3に伝える役割を持ちます。

次のセクションで確認したいのは、=== Graphics device info === です。

Quote
=== Graphics device info ===
Number:          0
Name (driver):   NVIDIA GeForce GTX 960M
Name (database): NVIDIA GeForce GTX 960M [Found: 0, Matched: 0]
Vendor:          NVIDIA
Chipset:         Vendor: 10de, Device: 139b, Board: 11381462, Chipset: 00a2
 

ここには2つの情報があります。一つ目はデバイス名(NVIDIA GeForce GTX 960M)です。二つ目はカードのID (139b)です。これらをメモします。

私たちが注意する必要がある情報の最後は、ビット数です。これはゲームが検出しているテクスチャメモリの量です。

Quote
Texture memory:  32MB <<OVERRIDE>>
 

この数字がグラフィックカードのメモリ容量と一致しているといいのですが、分からない方、そうでない方はメモをして下さい。 これらの情報をメモしたら、パート2に行きます。

Quote
GPU: 5
Name: NVIDIA GeForce GTX 960M
Device: 139b
Texture memory: 32MB
 

ちなみに、ここの情報はお使いのグラフィックカードによって異なります。例えばAMD R7 270だと次のようになります。

Quote
GPU: 5
Name: AMD R7 270
Device: 1313
Texture memory: 32MB
 
 

2: ファイル編集

パート2では、編集する必要のある2つのテキストファイルを探します。その後パート1の最後にメモした情報を追記し、ゲームがあなたのグラフィックカードを認識できるようにします。最後にSims 3があなたのグラフィックカードにもっと多くのメモリを使用できるようにします。

ゲームファイルの場所を見つける最も簡単な方法は、デスクトップのSims 3アイコンを右クリックし、[プロパティ]を選択することです。

Sims3_ShortcutProperties.jpg

[ファイルの場所を開く]ボタンをクリックします。Sims 3の実行ファイルの場所が開きます。

Sims3_BaseGameBinFolder.jpg

編集したい2つのファイルは、GraphicsCards.sgrGraphicsRules.sgr です。各ファイルを右クリックし、メニューから[コピー]を選択します。次にそのまま右クリックし、[貼り付け]を選択します。Program Files(x86)に貼り付けた場合は管理者権限による貼り付け確認をするよう求められます。完了したら、次のようになります。

Sims3_BaseGameBinCopy.jpg
完了したらGraphicsCards.sgr を開きます。このファイルへの変更は1つしかありません。私たちはAMDセクションの直後にあるNvidiaセクションを見つける必要があります。

Quote
        card 0x5655 "Mach 64" unsupported
        card 0x4158 "Mach 32" unsupported
end
vendor "NVIDIA" 0x10b4 0x12d2 0x10de ←これです
        card 0x0fd1 "GeForce GT 650M"
        card 0x0fd2 "GeForce GT 640M"
 

vendor "NVIDIA" の行の真下に、次の行を追加します。

Quote
        card 0x139b "GeForce GTX 960M" ←これはあなたがメモしたものを記載して下さい
 

追加すると、以下のように見えるはずです。

Quote
        card 0x5655 "Mach 64" unsupported
        card 0x4158 "Mach 32" unsupported
end
vendor "NVIDIA" 0x10b4 0x12d2 0x10de
        card 0x139b "GeForce GTX 960M"
        card 0x0fd1 "GeForce GT 650M"
        card 0x0fd2 "GeForce GT 640M"
 

もちろん、AMDのグラフィックカードをお持ちの場合は、カードIDをファイル最上部にあるAMDセクションに追記して下さい。終わったらGraphicsCards.sgrを保存して閉じます。次にGraphicsRules.sgrを開きます。このファイルはもう少し複雑ですが、そこまで難しくありません。

まず、一番むずかしい部分を編集します。GTX 960Mの場合、ファイル最上部にあるリストに基づいて、Uberレベルのカードであることが判断できます。

Quote
seti cardLevelUber          5
seti cardLevelHigh          4
seti cardLevelMedium        3
seti cardLevelLowmedium     2
seti cardLevelLow           1
 


Nvidiaカードの場合、編集するセクションはcardLevel list: の数行下にあります。

Quote
if (match("${cardVendor}", "NVIDIA"))
    if(match("${cardName}", "* 1?0M*") or match("${cardName}", "* 2?0M*") or match("${cardName}", "* G1?0M*") or match("${cardName}", "* G2?0M*"))
        seti cardLevel $cardLevelMedium
        seti isCardMatched true
    elseif (match("${cardName}", "*8800*") or match("${cardName}", "*9500*") or match("${cardName}", "*9600 GSO*") or match("${cardName}", "*9600 GT*") or match("${cardName}", "*9800 *") or match("${cardName}", "*GTX 2??*") or match("${cardName}", "*2?00M*") or match("${cardName}", "*3?00M*") or match("${cardName}", "*Quadro*FX 5??0*") or match("${cardName}", "*GT 1?0*") or match("${cardName}", "*GTS 150*") or match("${cardName}", "*GTS 250*") or match("${cardName}", "*GT 2??*") or match("${cardName}", "*GTS 2??*")  or match("${cardName}", "*GTX 2??*") or match("${cardName}", "*GeForce G2??*") or match("${cardName}", "*GT 3??*") or match("${cardName}", "*GTS 3??*")  or match("${cardName}", "*GTX 3??*") or match("${cardName}", "*GeForce 3??*") or match("${cardName}", "*GT 4??*") or match("${cardName}", "*GTS 4??*")  or match("${cardName}", "*GTX 4??*") or match("${cardName}", "*GT 5??*") or match("${cardName}", "*GTS 5??*")  or match("${cardName}", "*GTX 5??*") or match("${cardName}", "*GT 6??*") or match("${cardName}", "*GTX 6??*"))
        seti cardLevel $cardLevelUber
 

この混乱するテキストは、Uberレベルのカードのリストにあるカードをチェックし、一致するものを探すためのものです。ここにはGTX 960Mと一致する行がないので、Sims 3がカードを検出できるようにするための行を追加します。

Quote
or match("${cardName}", "*GTX 9??*")
 

テキストの最後の2つのカッコの間に、次のような行を挿入します。

Quote
("${cardName}", "*GTX 6??*") or match("${cardName}", "*GTX 9??*"))
 

完了したら、次のように見えるはずです。(太字が追加したテキスト)

Quote
if (match("${cardVendor}", "NVIDIA"))
    if(match("${cardName}", "* 1?0M*") or match("${cardName}", "* 2?0M*") or match("${cardName}", "* G1?0M*") or match("${cardName}", "* G2?0M*"))
        seti cardLevel $cardLevelMedium
        seti isCardMatched true
    elseif (match("${cardName}", "*8800*") or match("${cardName}", "*9500*") or match("${cardName}", "*9600 GSO*") or match("${cardName}", "*9600 GT*") or match("${cardName}", "*9800 *") or match("${cardName}", "*GTX 2??*") or match("${cardName}", "*2?00M*") or match("${cardName}", "*3?00M*") or match("${cardName}", "*Quadro*FX 5??0*") or match("${cardName}", "*GT 1?0*") or match("${cardName}", "*GTS 150*") or match("${cardName}", "*GTS 250*") or match("${cardName}", "*GT 2??*") or match("${cardName}", "*GTS 2??*")  or match("${cardName}", "*GTX 2??*") or match("${cardName}", "*GeForce G2??*") or match("${cardName}", "*GT 3??*") or match("${cardName}", "*GTS 3??*")  or match("${cardName}", "*GTX 3??*") or match("${cardName}", "*GeForce 3??*") or match("${cardName}", "*GT 4??*") or match("${cardName}", "*GTS 4??*")  or match("${cardName}", "*GTX 4??*") or match("${cardName}", "*GT 5??*") or match("${cardName}", "*GTS 5??*")  or match("${cardName}", "*GTX 5??*") or match("${cardName}", "*GT 6??*") or match("${cardName}", "*GTX 6??*") or match("${cardName}", "*GTX 9??*"))
        seti cardLevel $cardLevelUber
 

このファイルを保存し、先頭に戻ります。パート1でテクスチャメモリが32MBと記載されていた方は、ファイルの一番上の部分を変更し、より多くのメモリが使用できるようにします。GTX 960Mには、2GBモデルと4GBモデルの2種類があります。どちらの場合でも、テクスチャ用に1GBのメモリを予約することは、区画を表示してビルドモードとスタイル作成モードでのパフォーマンスを適度に向上させるより良い方法です。

以下の行を確認して下さい。一番上にあります

Quote
if ($textureMemory == 0)
  seti textureMemory       32
  setb textureMemorySizeOK false
endif
 

真ん中の2行を以下のように変更します。

Quote
  seti textureMemory       1024
#  setb textureMemorySizeOK false
 

最初の変更は、テクスチャメモリ量を32MBから1024MB(1GB)に変更するものです。二行目の先頭にあるシャープ(#)は、Sims 3にその行を完全に無視するよう指示するものです。

ファイルを保存し、メモ帳を閉じます。

3:すべてが働いていることを確認する

今こそ審判の時です。Sims 3を起動し、最初にビデオカードが認識できない警告が出ないことを確認します。またオプションメニューに移動し、グラフィックオプションが最小設定にロックされていないことを確認します。最後の手順は、ゲームを終了し、DeviceConfig.logを開くことです。前に確認した項目は次のようになっているはずです。

Quote
=== Graphics device info ===
Number:          0
Name (driver):   NVIDIA GeForce GTX 960M
Name (database): GeForce GTX 960M [Found: 1, Matched: 1]
Vendor:          NVIDIA
Chipset:         Vendor: 10de, Device: 139b, Board: 11381462, Chipset: 00a2
 

私たちのグラフィックスカードはデータベース内でマッチしています。

Quote
Texture memory:  1024MB
 

テクスチャメモリは1024 MB(1 GB)に設定されています。

トラブルシューティング

何かがうまくいかなかったこともあります。1つは、Sims 3のグラフィックスオプションが最も低い設定にされ、もう1つはほぼ空のDeviceConfig.logファイルです。これが起きた場合、それぞれの変更に対してすべてを正しく入力したことを確認して下さい。私の場合は行に誤りがありました。

Quote
or match("${cardName}", "*GTX 9??*")
 

このエラーは私がカッコとカンマを忘れたことで、ゲームがグラフィックシステムを正しく検出できていないことで起こりました。

GraphicsRules.sgr の適切なセクションにグラフィックスカードを追加して下さい。カードのGPUレベルがDeviceConfigの3である場合は、cardLevelMediumセクションに追加して下さい。グラフィックスの問題やGPUの損傷を招く可能性がありため、より高いレベルに追記しようとしないで下さい。

最後に

@IdyllRogueのおかげでこの記事のひらめきと、@MrsFlynnの協力のおかげで作成できました。手順に従っているときに問題が発生した場合や質問がある場合は、お気軽にお問い合わせ下さい。

これがシムライフの幸せに役立つことを願っています。

Flynn

 



上記の内容がまだまだわからないという場合や、GTX1060用の圧縮されたグラフィックファイルについては、下記のリンク先の記事を参照してください

http://www.carls-sims-4-guide.com/forum/index.php?topic=27175.msg453423#msg453423

 

元トピック:How-To: Get Sims 3 to Recognize a New Graphics Card

※記事に問題がありましたらお問い合わせ下さい