提問之前請先閱讀網友常問的問題







下載編譯需要的軟體
按順序下載並安裝以下軟體。

最新版 DirectX SDKhttp://go.microsoft.com/fwlink/?LinkID=71193&clcid=0x409
先灌 DirectX SDK,以後再灌 Visual Studio 就會自動將 DXSDK 的相關路徑加入到 VC++ Directories 中。

最新版 NVIDIA Cg Toolkithttp://developer.nvidia.com/object/cg_download.html
採用預設安裝路徑,灌到 C 槽。

最新版 glewhttp://glew.sourceforge.net
壓縮檔 glew-版本號-win32.zip,解壓縮到 C 槽,C 槽會有一個 glew 資料夾。

atlmfc 的檔案:請洽『 編譯 PCSX2 的 Visual C++ 2010 Express 安裝教學 』,在該篇文章的末尾記載著 atlmfc 檔案的說明。

Microsoft Visual Studio 2008 Express Editions with SP1:只需要灌其中的 Visual C++ 2008 Express Edition。當進行到 Installation Options 這一步時,取消勾選 Microsoft Siverlight Runtime 和 Microsoft SQL Server 2008 Express Edition (x86),不安裝可選元件。
VC++2008_Express_With_SP1-Installation_Options


Visual Studio 編譯步驟
設定環境變數,指定編譯後生成檔案的存放位置。我的電腦(點右鍵)» 內容 » 進階 » 環境變數,點上方的新增,新增使用者變數:變數名稱 PCSX2_TARGET_COPY;變數值 R:\PCSX2_SSE4(變數值根據個人需要指定,變數值設定的路徑是編譯後生成檔案的存放位置)為使變數設定生效,必須登出 Windows 然後再登入。
PCSX2_TARGET_COPY_variable

需要用到的檔案是 R:\PCSX2\pcsx2_suite_2008.sln。運行後會彈出幾個錯誤方框,不必理會。這是因為 Express 版的 Visual Studio 缺少功能,一些東西無法識別。唯一不能編譯的是 project setup,用來生成 msi 安裝檔。偶們都是免安裝使用 PCSX2,那個 project setup 無視之。

在 Visual Studio 視窗最上方中間位置的下拉選單中選擇目標類型 Release SSE4(這個 SSE4 是指 SSE4.1,CPU 要有支援才能選擇。根據自己 CPU 的情況也可選擇 Release SSSE3 或 Release SSE2)
Visual_C++_2008_Express_PCSX2_target_type

添加額外的 Include files 和 Library files 資料夾。某些插件的編譯需要它們。

Include files:Tools -> Options -> Projects and Solutions -> VC++ Directories,右上角的 Show directories for 選擇 Include files。按順序在末尾加入以下三行:

C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include
C:\Program Files\NVIDIA Corporation\Cg\include
C:\glew\include

Visual_C++_2008_Express_PCSX2_custom_Include

Library files:Tools -> Options -> Projects and Solutions -> VC++ Directories,右上角的 Show directories for 選擇 Library files。按順序在末尾加入以下三行:

C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\lib
C:\Program Files\NVIDIA Corporation\Cg\lib
C:\glew\lib

Visual_C++_2008_Express_PCSX2_custom_Library

然後在軟體選單中選擇 build » Build Solution,編譯就會開始。
Visual_C++_2008_Express_PCSX2_build_start

編譯結束
Visual_C++_2008_Express_PCSX2_build_finish
(因為擔憂龐大的 Visual Studio 會拖慢電腦速度,所以灌在不常用的專用於玩簡體中文遊戲的簡體中文版 Windows)


技巧:如何將輸出編譯資訊的視窗 Output 固定在右方
注意看偶上一張圖,Output 視窗是整個黏在右半部份。Output 視窗預設是在底部,給它拖到右邊使之浮動出去,在標題列點右鍵選擇 Tabbed Document
Visual_C++_2008_Express_PCSX2_Output_Tabbed_document


如何只編譯 PCSX2 主程式
僅點選 pcsx2,然後點右鍵,在彈出的選單中選 Build 即可。
VC2008_Express_SP1_PCSX2_only


編譯生成的檔案
R:\PCSX2_SSE4 中的檔案都是一式兩份,兩份檔案一樣,唯一的區別是檔案名稱,一份有版本號、另一份沒有。隨便選哪一套都可以。像這樣:pcsx2.exe 和 pcsx2-r1449.exe;GSdx-SSE4.dll 和 GSdx-SSE4-r1450.dll。

需要用到的 dll:都在 pcsx2 原始碼資料夾中,位於 R:\PCSX2\bin。部分 dll 要在編譯完成後出現。將這些 dll 放在模擬器資料夾中,和 pcsx2.exe 在一起。

  1. gnu_gettext.dll:僅 Pcsx2 0.9.6 需要。
  2. w32pthreads.v4.dll:Pcsx2 0.9.7 需要、較新 SVN 的插件需要。
  3. w32pthreads.dll:僅 Pcsx2 0.9.6 需要。


PCSX2 主程式。pcsx2-rXXXX.exe,位於 R:\PCSX2_SSE4

PCSX2 插件。位於 R:\PCSX2_SSE4\plugins


參考資料

  1. CompileGuideForWindows - pcsx2 on Google Code
  2. Compile Guide - PCSX2 Forums
  3. 由此想到的 NVIDIA Cg Toolkit 配合 glew 1.5.1 - PCSX2 Forums
  4. 別人的 Visual Studio 編譯 PCSX2 結果擷圖(project setup failed) - PCSX2 Forums

呆丸北拜 發表在 痞客邦 PIXNET 留言(5) 人氣()


留言列表 (5)

發表留言
  • 海狗
  • 版大請問WIN7也能用這個做法嗎?我用WIN7編譯常會出現錯誤
  • Win 7 不知道,我安裝 Visual Studio 的作業系統是 XP SP3。

    呆丸北拜 於 2010/02/02 19:23 回覆

  • 海狗
  • 解決了!WIN7下不要用拖曳的,改以管理員模式執行Visual C++再開啟pcsx2_suite_2008.sln就不會編譯出錯了!
    現在用版大的方法修改GSdx插件很方便,還可順便編譯主程式,感謝版大教學︿︿
  • 好說、好說。

    呆丸北拜 於 2010/02/03 07:27 回覆

  • 海狗
  • 請問版大也有編譯Dolphin模擬器嗎?
    裡面的DSPSpy_wii.dol和DSPSpy_CG.dol我一直編譯失敗
    不知是什麼問題?
  • 沒有。PCSX2 尚未玩夠,目前不會想玩其他模擬器。

    這是 Dolphin 的 Google Code
    http://code.google.com/p/dolphin-emu/

    這是 Dolphin 的官網
    http://www.dolphin-emu.com/news.php

    你去爬文看看或許會有收穫。

    呆丸北拜 於 2010/02/05 11:57 回覆

  • 大胖
  • 請問要怎媥譯GSDX插件...

    我在Gsdx上按右鍵選建置都會出現下列錯誤訊息

    1>------ 已開始建置: 專案: GSdx, 組態: Release SSE2 Win32 ------
    1>正在執行建置前事件...
    1>SubWCRev: 'e:\PCSX2\plugins\GSdx'
    1>Last committed at revision 3955
    1>Updated to revision 4010
    1>正在編譯...
    1>stdafx.cpp
    1>e:\pcsx2\plugins\gsdx\stdafx.h(41) : fatal error C1083: 無法開啟包含檔案: 'atlbase.h': No such file or directory
    1>已將建置記錄儲存於 "file://e:\PCSX2\plugins\GSdx\Release SSE2\BuildLog.htm"
    1>GSdx - 1 個錯誤,0 個警告
    ========== 建置: 0 成功、1 失敗、3 最新、0 略過 ==========
  • 見文章最開頭向下數第四行紅字(atlmfc 的檔案)的說明。

    呆丸北拜 於 2010/11/10 09:22 回覆

  • 大胖
  • 謝謝站長,編譯成功了
    但是有幾個新手問題想問一下
    目前我只知道這網址能提取最新的程式碼
    http://pcsx2.googlecode.com/svn/trunk

    那能在哪裡找到舊版本程式碼呢?
    我想要2186版的~

    還有有關跳幀功能的編譯是修改哪個檔呢
    剛接觸不知怎下手=.=

    謝謝站長的教學
  • 0.9.6 2186
    http://pcsx2.googlecode.com/svn/branches/legacy_gui

    我不是程式設計師,不曉得修改那個檔案可以啟用跳框功能(我想你是指最嚴重的跳框功能 VU-SKIP)的編譯。跳框這種功能只有硬體爛的電腦才會用到而且充滿 BUG,所以還是去組新電腦比較快。

    呆丸北拜 於 2010/11/11 11:43 回覆