※開発に興味のある人向けのページです。


とりあえずこれまでスレに乗っていた情報をまとめるページとして準備しています。後日ページを分けるなどして見やすく直していきたいと思います。

PCSX2のビルド方法(Win環境)

ビルド環境
OS:Windows XP SP3
OS:Windows Vista
OS:Windows 7
Visual C++ 2008 or 2010


1.準備
1-1.TortoiseSVNのダウンロード
http://tortoisesvn.net/downloads
上記URLより自分のOSに合わせて32bit版か64bit版のいずれかをダウンロードしインストールする。
オプションは標準のまま何も考えずNEXTでOK
インストール後は再起動が必要
日本語化したい場合はページ下部のLanguage packsからJapaneseを探し言語パックをダウンロードしインストールし、
エクスプローラの適当な場所で右クリックしてTortoiseSVN→Settingsをクリックすると設定画面が出てくるのでLanguageのタブから日本語を選んでOKを押せば日本語化される。
されない場合は一旦再起動すればOK。

1-2.Visual C++ 2008 Express Edition SP1ダウンロード(インストール)
http://go.microsoft.com/?LinkId=9348304
(WEBインストーラ)
上記URLよりインストーラをダウンロードしVisual C++ 2008 Express Edtion SP1をインストールする。
ダウンロードとインストールには若干時間がかかるので注意。
Professional Editionがあるなら当然それでOK。

1-3.Microsoft Platform SDKのダウンロード(インストール)
Professional Editionでは不要
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
OSが32bitならPSDK-x86.exeを、64bitならPSDK-amd64.exeをダウンロードしインストールする。
インストール時のオプションはデフォルトのままでOK。

1-5.DirectX SDKのダウンロード(インストール)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b66e14b8-8505-4b17-bf80-edb2df5abad4&displaylang=en
上記URLよりDirectX SDK August 2009ダウンロードしインストールする。
EULA同意後にカスタマーエクスペリエンスに参加するかと聞かれるのでNOを選択すれば
その後の設定はデフォルトのままでOK

1-6.nVIDIA CG ToolKitのダウンロード(インストール)
http://developer.nvidia.com/cg-toolkit-download
上記URLよりCg ToolKitをダウンロードする。
(2011年6月15日現在の最新バージョンはFebruary 2011)
ただし、登録が必要。登録自体はメールアドレスがあればすぐ完了する。

2.Visual Studioの設定
2-1.Platform SDK用パスの設定
Professional Editionでは不要。
Visual C++ Express Editionを起動し、メニューバーの[ツール]→[オプション]をクリックする。
オプションウインドウから[プロジェクトおよびソリューション以下のVC++ディレクトリ]をクリックする。
ディレクトリを表示するプロジェクトを[実行可能ファイル]から[インクルードファイル]に切り替える。
5つ並んだアイコンの中からフォルダの形をしたアイコンをクリック(新しい行を追加)する。
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc
上記二つを追加する。
インストールされているパスは C:\Program Files\Microsoft Platform SDK\Include\atl 、 C:\Program Files\Microsoft Platform SDK\Include\mfc だったりするので注意。自分のインストールパスに合わせること。

Visual C++ 2010 Express Edition では上記の方法では設定できない。
Visual C++ 2010 Express Editionではまず 2-1~2-3 のパスの設定は飛ばして、3-1のSVNのチェックアウトを先に行い、pcsx2_suite_2010.slnをクリックする。
メッセージボックスがいくつか出るが無視する。
全て読み込み終わったら、[ツール]→[設定]→[上級用の設定]で上級モードに変更する。
つぎに、[表示]→[プロパティ マネージャー]でプロパティマネージャーを表示する。
つづいて、どのプロジェクトでもいいのでプロパティマネージャーに表示されているプロジェクトのツリーを開いていくと[Microsoft.Cpp.Win32.user]というプロパティが現れるのでそれを右クリックして[プロパティ]を選択する。
すると、ツリーが表示されるのでそこで[VC++ ディレクトリ]を選ぶとパスの設定ができるようになる。
この要領で 2-1 ~ 2-3 のパス設定を行う。

2-2.DirectX SDK用パスの設定
2-1と同じ要領で、
$(DXSDK_DIR)\Include
をインクルードファイルに追加する。
追加したら5つ並んだアイコンの↑マークボタンを押し設定した値を一番上に持って行く。
また、[ライブラリ ファイル]に切り替え
$(DXSDK_DIR)\Lib\x86
をライブラリファイルに追加する。
こちらも同じく↑ボタンで一番上に持っていく。
この一番上に持っていく設定を行わないとxpadのビルドに失敗するので注意。

2-3.Cg Toolkit用パスの設定
2-1、2-2と同じ要領で、
インクルードファイルに
$(ProgramFiles)\NVIDIA Corporation\Cg\include
を、ライブラリファイルに
$(ProgramFiles)\NVIDIA Corporation\Cg\lib
を追加する。

3.チェックアウトとビルド
3-1.SVNリポジトリのチェックアウト
場所はどこでもいいので適当なフォルダを作成し、ダブルクリックして作成したフォルダ上にマウスポインタを置く。
右クリック→SVN Checkoutをクリックする。
URL of repositoryに"http://pcsx2.googlecode.com/svn/trunk/"を入力する。
下のほうにあるRevisonの項目には
最新版が欲しいならHEAD Revisionを選択。
特定のバージョンが欲しいならRevisonを選択し、欲しいバージョンを入力(例:4600)する。

3-2.ビルド
ソースファイルのダウンロードが終わったら、自分の作ったフォルダ以下のpcsx2_2008.slnをダブルクリックする。
Visual C++ Exprees Ediionが起動すると「このバージョンではサポートされてません~」と出るが問題無いので無視してOKを押す。
メニューバーのデバッグ(D)の下あたりに
|Debug|Win32|のようなプルダウンメニューがあるので選択し自分のCPUに合わせてRelease SSE2/SSSE3/SSE4/のいずれかを選ぶ。

ソリューションエクスプローラーの「ソリューション"PCSX2_suite_2008"(38プロジェクト)」を右クリックしてビルドを選択すると、プラグインと本体のビルドが始まる。
ビルドが終わると、自分の作ったフォルダ\bin\以下にpcsx2.exeが、bin\pluginsに各種プラグイン.dll(とビルド中に生成された不要なファイル)できているので、必要なファイルを今まで使っていたpcsx2フォルダ等に移動して実行する。

ここでエラー(警告では無い)が発生する場合は必要なSDKをインストールしてなかったりフォルダパスの設定が間違っているのでよく確認すること。

このSSEのバージョン差はGSDxしか影響されない。
GSDxのSSE違いのバージョンが必要な場合は一度ビルドした後また変更してビルドすればOK。更新の必要が無ければ他はスキップされるので時間もかからない。

3-3.RevNumber付ファイル作成
マイコンピュータよりシステムのプロパティ→システムの詳細設定より
環境変数の設定画面を呼び出し、新規ボタンを押して変数名に"PCSX2_TARGET_COPY"
変数値にはコピーを作りたい場所のパスを入力すると指定した場所にリビジョンナンバー付の本体とプラグインがコピーされる。

GSdx のパッチ手順

対象となるソースファイルは、GSCrc.cppです。
ソリューションエクスプローラーの中のGSdx以下の、Source Files\GSCrc.cppファイルをダブルクリックすることで編集できます。

WildArms5を例にとると、
{0xC164550A, WildArms5, JPUNDUB, false},
{0xC1640D2C, WildArms5, US, false},
となっている箇所がWildArms5に対するパッチ処理を適用している箇所になります。

「形式」
{0x▲▲▲▲▲, □□□□□, ○○○, 0},

「意味」
▲▲▲▲▲・・・ディスク固有のCRC値(ページ下部参照)
□□□□□・・・GSdxプラグイン作者が作成した処理名称(ゲームタイトルかその略称)
○○○・・・日本語ディスクなら基本は「JP」(値は国ごとに決められている。凡例はGSCrc.hに記載)
0…変えなくてよいです。(一部ゲームに必要な処理の有無を表示?現在は一部のギャルゲにPointListPaletteという記述がされている)

このように、この形式の行を1行つけくわえると、特定のディスク(CRCの値を持ったもの)に対してパッチ処理が適用されます。

以下の処理は現在のGSdxには既に反映されているため新たにソースファイルを編集する必要はありません。

実際にWA5の修正では、以下の2行を付け加えました。
{0xC164550A, WildArms5, JPUNDUB, false},
{0xC1640D2C, WildArms5, US, false},
{0x2294d322, WildArms5, JP, false}, //qc Add for WA5JP
{0x565b6170, WildArms5, JP, false}, //qc Add for WA4JP

(//のあとの文字はコメント、覚書のようなものです)
これで再度ビルドして効果が出ているようなら成功です。

同様に付け加えた行は以下のとおりです。
{0x280ad120, FFXII, JP, false}, //qc
{0xC5DEFEA0, Okami, JP, false}, //qc
{0x0481ad8a, MetalGearSolid3, JP, false}, //qc
{0xb01a4c95, ICO, JP, false}, //qc
{0xCA6243B9, GT4, JP, false}, //qc
{0xE906EA37, GT4, JP, false}, //qc
{0x5ed8fb53, AceCombat4, JP, false}, //qc
{0xfc46ea61, Tekken5, JP, false}, //qc
{0xAA5EC3A3, TalesOfAbyss, JP, false}, // qc
{0x2294d322, WildArms5, JP, false}, //qc Add for WA5JP
{0x565b6170, WildArms5, JP, false}, //qc Add for WA4JP


報告のあった日本語ディスクのCRC

CRCの値は、ディスクを見分けるためにエミュの処理やパッチファイルなどで使用されるため、記録として残していこうと思います。

  • ICO(イコ)(CRC=b01a4c95)
  • エースコンバット04 シャッタードスカイ(CRC=EC432B24)
  • 大神(OKAMI)(CRC=c5defea0)
  • グランツーリスモ4(CRC=CA6243B9、E906EA37)
  • シャイニング・ウィンド(CRC=db4fa981)
  • シャイニング・フォース イクサ(CRC=8b383fdf)
  • 真・女神転生III-ノクターン マニアクス(CRC=0e762e8d)
  • 涼宮ハルヒの戸惑(CRC=428c0039)
  • ゼノサーガ エピソードIII [ツァラトゥストラはかく語りき](CRC=e0347841)
  • テイルズ オブ ジ アビス(CRC=AA5EC3A3)
  • テイルズ オブ デスティニー(CRC=A90CD846)
  • 鉄拳5(CRC=fc46ea61)
  • .hack//G.U. Vol.1 再誕(CRC=d5b63c1f)
  • ドラゴンクエストVIII 空と海と大地と呪われし姫君(CRC=1F3D5031)
  • ひぐらしのなく頃に祭(CRC=cda67466)
  • ファイナルファンタジーXII(FF12)(CRC=280ad120)
  • ペルソナ3 フェス(CRC=232c7d72)
  • ペルソナ4(CRC=4e63e63c)
  • メタルギア ソリッド3 スネークイーター(CRC=0481ad8a)
  • ワイルドアームズ ザ フォースデトネイター (CRC=565b6170)
  • ワイルドアームズ ザ フィフスヴァンガード(CRC=2294d322)

  • オーディンスフィア(CRC=731B4557)
  • 九龍妖魔學園紀(CRC=57782923)
  • 真・女神転生III-ノクターン マニアクス クロニクル(CRC=47ba9034)
  • サモンナイト4(CRC=D9233E31)
  • サモンナイト エクステーゼ ~夜明けの翼~(CRC=0C3E8D76)
  • 魔界戦記ディスガイア(CRC=D00037c4)
  • 魔界戦記ディスガイア2(CRC=4334E17D)
  • デビルサマナー 葛葉ライドウ 対 アバドン王(CRC=D06BF8A6)

  • 真・女神転生III -NOCTURNE(CRC=d60da6d4)
  • デビルサマナー 葛葉ライドウ対超力兵団(CRC=67d76160)
  • ペルソナ(CRC=305c3d28f)
  • DIGITAL DEVIL SAGA アバタール・チューナー(CRC=44865ce1)
  • DIGITAL DEVIL SAGA アバタール・チューナー2(CRC=e47c1a9c)
  • ロマンシング サガ -ミンストレルソング-(CRC=2b9af3c5)
  • ファイナルファンタジーX(CRC=6a4efe60)
  • アンリミテッド:サガ(CRC=20356da7)


現在GSdxに登録されていない日本語版ゲーム

GSdxには特定ゲーム向けの修正がいくつも入っており、ディスクのCRCで判別して適応しています。
ですが開発者やフォーラムのテスターは英語圏の人ばかりなので世界的に有名であったり日本語版がかなり先行して発売されたソフトを除くと中々日本語版ディスクのCRC情報が集まりません。
現在以下のゲームが海外版(北米やヨーロッパ版)のみ登録されており日本語版のCRCが未登録な状態です。
ゲームを一度起動するとコンソール画面に
ELF (cdrom0:\SLPS_252.50;1) Game CRC = 0x8A6D7F14, EntryPoint = 0x00100008
(SYSTEM.CNF) Detected PS2 Disc = cdrom0:\SLPS_252.50;1
と表示されるので(上記はFFX-2の例)、Game CRC =に続く英数字をCRC欄に、SLPx_yyy.yy(xはアルファベット、yは数字)をSLPx-yyyyyに直してID欄に書き込んでください。
コメントフォームを設置しますのでwikiの編集が出来ない人も気軽に投稿してください。
ゲーム名 ID CRC
FF X-2(非インタ版) SLPS-25250 0x8A6D7F14
シャドウハーツ SLPS-73418 0xDDFB18B0
ドラゴンボールZ スパーキング メテオ SLPS 25815 0xF28D21F1
ストリートファイターEX3 SLPS-20003 0x63642E9F
Bully SLPS-25879 0x019CFA48
ワンダと巨像 SCPS-15097 0x877F3436
ワンピース グランドバトル SLPS-25473 0x66953267
グランツーリスモ コンセプト
クラッシュ・バンディクー4 SLPM-62114 0xF8643F9B
スパルタン SLPM-66444 0x26689C87
ドラッグオンドラグーン2 SLPM-65999 0xDA6D80ED
ゴッドオブウォー SLPM-67010 0xCA052D22
ゴッドオブウォー2 SLPM-67013 0xE96E55BD
Jackie Chan Adventures
牧場物語
NAMCO x CAPCOM SLPS-25505 0x75C01A04
鬼武者3 SLPM-65413 0x71320CA8
Genji SCPS-15095 0xB4776FC1
ラジアータ ストーリーズ SLPM-65800 0xAC73005E
Rhapsodia SLPM-66105 0xB808413B
天誅紅 SLPS-25384 0x735A10C2
天誅 参 SLPS-25234 0x13DD9957
DEMON STONE
爆走コンボイ伝説
タイムスプリッター 時空の侵略者
RED・DEAD・REVOLVER
サイレントヒル3 SLPM-65257 0x8CFE667F
サイレントヒル2 SLPM-65051 0xE36E16C9

  • SLPS-25421 CRC:0xD2F0DC73 -- (牧場物語 Oh!ワンダフルライフ) 2011-06-12 12:33:36
  • SLPM-62114 0xF8643F9B クラッシュ・バンディクー4 非ベスト版 -- (名無しさん) 2011-07-08 15:06:08
  • ID:SLPS-25250 CRC:0x63642E9F -- (ストリートファイターEX3) -- (ひろし) 2011-07-18 11:12:23
  • ID:SLPS-20003 CRC:0x63642E9F -- (ストリートファイターEX3) IDこちらが正です -- (ひろし) 2011-07-18 11:15:11
  • ID:SLPM-74232 CRC:0xC1C77637-- (新鬼武者 ベスト版) -- (名無しさん) 2011-07-25 19:24:56
  • SLPM-66105 CRC:0xB808413B--(Rhapsdiaコナミザベスト版) -- (名無しさん) 2011-08-28 00:48:15
  • ID:SLPM-25207 CRC:0x2C16B37E -- (タイムスプリッター 時空の侵略者) 2011-10-05 19:59:59
  • SLPS-25207 CRC:0x2C16B37E (ID訂正) -- (タイムスプリッター 時空の侵略者) 2011-10-05 20:02:42
  • どうやっても真・三國無双4 Empiresがプレイできない -- (名無しさん) 2013-03-27 02:00:16
  • ELF (cdrom0:\SLPM_653.24;1) Game CRC = 0x992C9F92, EntryPoint = 0x00100008 起動できません -- (Gregory Horror Show - Soul Collector [NTSC-J] [SLPM-65324]) 2013-05-26 01:31:11
名前:
コメント:

すべてのコメントを見る

State Saveの解析

例えばFFX-2 IN+LM(SLPM_654.78)の場合

http://ps2.vs.land.to/ps2up/src/ps20157.jpg
39096 GILを増やしたいとする。この状態でF1を押しsstatesフォルダー内に
'E1FD9A2D.000'を作成。SaveState.cppのソースコードを読んでいくと
gzipped to/from disk state savesとある。つまりステートセーブには
gzip圧縮が使用されている。そこで'E1FD9A2D.000'を'E1FD9A2D.000.gz'に
リネーム。7Zipなどのソフトを使用し解凍。解凍された物'E1FD9A2D.000'
をバイナリーエディターで開く。39096をHEXに直すと&h0098b8この値を検索する。
数が小さい程、検索しずらいかと思います。
http://ps2.vs.land.to/ps2up/src/ps20158.jpg
数値を書換え保存する。保存後の'E1FD9A2D.000'は勿論無圧縮の状態なので
7Zipを使用し書庫形式を'GZip'・ワードサイズを'8'に変更後、圧縮する。
http://ps2.vs.land.to/ps2up/src/ps20159.jpg
完成したファイル'E1FD9A2D.000.gz'を'E1FD9A2D.000'にリネーム。
ソフトを立ち上げF3でロード。成功していれば以下の画像の状態になります。
http://ps2.vs.land.to/ps2up/src/ps20160.jpg
ロードできない、或いは変化が無い場合は失敗しているので
コード書換え前のデーターを再検索するところから繰り返す。

結論:チート目的で使うだけなら面倒な方法よりも
ツールを使う事を勧めます。これはあくまでもState Saveの
格納を解析する為の手段です。

Written by 名無し侍
最終更新:2012年01月14日 10:37