2009-05-17

Visual Studioでのsnes9x-1.5.1のビルドのコツ

・snes9x-1.5.1-srcフォルダを入れるまとめフォルダを作る(ここにzliblibpngとfmodとnasmのフォルダを突っ込むため)。


・zlibソースDLして解凍する。できたフォルダをzlibリネームしてまとめフォルダに突っ込む。zlibフォルダ内のcrc32.cをemucrc32.cにリネームする。


libpngはコンパイル済みバイナリDLして解凍する。できたフォルダlibpngにリネームしてまとめフォルダに突っ込む。ソリューションエクスプローラlibPNGフォルダ内の*.cをプロジェクトから除外する。プロジェクトプロパティで追加の依存ファイル一覧にあるlibpngmt.liblibpng.libリネームする。


・fmodはver.3系(ver.4系でのビルドは未確認)のコンパイル済みバイナリDLして解凍する。できたフォルダの中のフォルダをfmodにリネームしてまとめフォルダに突っ込む。


・nasmはコンパイル済みバイナリDLして解凍する。できたフォルダの中のフォルダをnasmにリネームしてまとめフォルダに突っ込む。nasmはプロジェクト中の*.asmのビルドに必要になる。後の*.asmのビルド設定との整合性のためこの通りに配置すること。


プロジェクトプロパティDirectX SDKのIncludeとLibフォルダパスを通す。


プロジェクトプロパティで、「リンク前のイベント」に次のコマンドを追加する。

pushd "$(SolutionDir)..\"

del "i386\*.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\2xsaimmx.asm" "-oi386\2xsaimmx.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\bilinear.asm" "-oi386\bilinear.obj"

rem "$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\c4.asm" "-oi386\c4.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2.asm" "-oi386\fxemu2.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2b.asm" "-oi386\fxemu2b.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2c.asm" "-oi386\fxemu2c.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxtable.asm" "-oi386\fxtable.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\sfxproc.asm" "-oi386\sfxproc.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\spc.asm" "-oi386\spc.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\zsnes.asm" "-oi386\zsnes.obj"

rem "$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\zsnesc4.asm" "-oi386\zsnesc4.obj"

popd

上記のコマンドに出てくる11個の*.objファイルプロジェクトに追加する。ただしコマンドコメントアウトされている2つ(c4.objとzsnesc4.obj)はビルドから除外しておくこと。


・SARマクロ(sar.h)が原因でコンパイラが死ぬので、このマクロを不使用にするためにport.hの277行のRIGHTSHIFT_IS_SARマクロ定義を未定義にする。


ここまでの手順でビルドが通る。


TODO:

プリプロセッサZSNES_C4を有効にする時の設定

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん