PCSX2和GSDX的源代碼地址,通過SVN下載。

教新手如何編譯PCSX2GSDX代碼
(在EZ我叫SOSG 轉發自己的帖子而已)
首先,你需要下載以下軟件並且安裝:
1>
TortoiseSVN
用於從SVN上把模擬器代碼下載到本機。
下載地址: http://tortoisesvn.net/downloads
2>
DirectX SDK
用於編譯GSDX所需要的includelib文件。
下載地址: http://86516.onlinedown.net/down/dxsdk_aug2007.zip
3>
Microsoft Platform SDK
用於對Visual Studio 8includelib文件補充。
下載地址:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
注意:一共是10個包,下完後只解第一個就可以。
4>
Microsoft Visual Studio 8
這個不用介紹了吧 MSDN原版破解
下載地址:
ftp://vipdownload:[email protected]:8021/cs_vs_2005_pro_dvd.iso
MD5:a276ac538303af951d2c3b60777cc22a


下面正式開始:
一、
安裝
a. 安裝TortoiseSVN沒什麼注意的,只要一路點next就可以了,裝完了重啓機器。然後在文件夾上點右鍵,就可以看見TortoiseSVNsvn commit選項了。
b. 安裝DirectX SDK,這個要用默認路徑安裝,就是在c:/programfiles/下,所以C盤空間要夠,裝完是700MB+。看圖吧:


這裏前5項全部安裝,以後也用的上


過程比較長,請耐心等

完成。
c. 安裝Microsoft Platform SDK,先解壓10個包,然後點setup安裝,也要默認路徑安裝,c:/programfiles/下。還是看圖:

一路NEXT 這裏用自定義吧 其實就是完全安裝就可以


d. Microsoft Visual Studio 8安裝很簡單,上網找教程去吧。
二、裝備工作

a.
首先打開你的Microsoft Visual Studio安裝目錄吧。找到vc文件夾,找到includelib文件夾,再找到C:/Program Files/Microsoft DirectX SDK (August 2007)裏的includelib文件夾,SDK裏的includelib文件夾裏的東西複製粘貼到vc文件夾下的includelib裏,記住:絕對不要覆蓋原來的,重複的不要複製就可以了!

b. 按相同的原理,把C:/Program Files/Microsoft Platform SDK for Windows XP SP2裏的includelib文件夾下的東西都複製到到vc文件夾下的includelib裏,也不要覆蓋!
三、開始下載源代碼
在你的硬盤上任意位置建立文件夾:



PCSX2_SVN GSDX_SVN。然後對PCSX2_SVN文件夾點右鍵,選擇svn checkout

在出現對話框後在URL那裏寫PCSX2SVN地址:
https://pcsx2.svn.sourceforge.net/svnroot/pcsx2/
然後點確定,等待連接開始,如果有速度顯示就對了,沒的話重複上面的動作直到有!
完成後會顯示最後的版本號,比如295.
GSDX_SVNPCSX2_SVN一樣道理,地址是:
http://guliverkli.svn.sourceforge.net/svnroot/guliverkli/
四、開始編譯PCSX2_SVN代碼
首先,確認你的Microsoft Visual Studio安裝正確並可以正常工作,這個自己搞定。
其次打開…/pcsx2/windows/VCprojects/pcsx2_2005.sln文件,載入工程。
打開解決方案的屬性:



(注意 下面的不改也可以)
然後打開右邊的pcsx2,找到cpu文件裏的Vif.c,按ctrl+f 查找if ((vif1ch->madr+(mfifoqwc << 4)) > (msize)) 內容,找到後把“ {
”後的內容改爲

int s1 = ((msize) - vif1ch->madr) >> 2;然後,在pcsx2上點右鍵,點擊生成,等待,直到出現:
========== 生成: 1 已成功, 0 已失敗, 0 最新, 0 已跳過==========
就表示完畢了!最後在你的/ PCSX2_SVN /bin/下找到你編譯的最新版本的主程序。
期間的warning可以忽略
注意:如果你要編譯No_VM(就是不帶虛擬內存的)版本,請將工程pcsx2屬性改成DebugTLB!
五、編譯GSDX_SVN
首先,打開…GSDX_SVN/GSDX/trunk/gsdx/GSdx_vs2005.sln文件。
再來就是打開解決方案的屬性,


選擇Release SSE2配置。
然後在右側的GSDX裏找到Header Files裏的GSRendererHW.h文件,然後把這裏的protect改成public,不然編譯報錯,看圖:


下面要改下:(注意 下面的不改也可以)
同樣打開右側的GSDX裏的Source Files裏的X86.cpp找到
BYTE c = (src[addr>>1] >> ((addr&1) << 2)) & 0x0f;
BYTE爲int

同理找到Source Files裏的GSRendererHW9.cpp找到
BYTE factor = m_context->ALPHA.FIX >= 0x80 ? 0xff : m_context->ALPHA.FIX * 2;
改BYTE爲INT

最後開始編譯代碼,選擇GSDX點右鍵的生成,等待完成
========== 生成: 1 已成功, 0 已失敗, 0 最新, 0 已跳過==========
完成後在C:/users/gabest/desktop/pcsx2/plugins/裏找到GSDX.dll文件,放到你的模擬器的plugins裏就可以使用了.

編後語:這裏只是很簡單的介紹了下如何編譯代碼,深層次的是分析代碼和細節與結構調整,本人能力有限,所以這裏暫時不寫了,待總結驗證後一起發出來。



轉後語:
研究過幾天,太難,也沒太多精力,就暫時放棄了,現在正在學習DirectX SDK,可能回頭還要把彙編再學一遍。打算學完了再次研究這個代碼。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章