PSPであそぼう(1)

id:yaneurao:20050619を書いたあとPSPが無性に欲しくなって近くのゲーム屋さんに行って中古のを買ったらファームは1.00だった。大当たりである。さっそく、MemoryStickDuoを買ってきた。MemoryStickアダプタを買い忘れたのだが、USBでパソコンとPSPとを接続すればいいことに気づいた。


そんなわけでさっそく情報を集めたのだけど、HelloWorldのビルドすらままならない。だ、、だいじょうぶか、俺。


以下、ビルドすら出来なくて困ってる人のためにビルド手順を丁寧に解説を書いた。質問があれば、今日のコメント欄に書いてクレクレ。


■環境をセットアップ

1.Cygwinをインストール

インターネットからdownloadしてインストールするなら
http://www.cygwin.com/setup.exe
を実行してInstall from Internetを選択。

このとき Select package というダイアログがでる。

・Devel 以下すべてをインストール(binのみで可。srcは不要)
※ 「Devel ↑↓ Default」と書いてある「Default」の文字をクリックすると「Install」に変わる。
・web/wgetもインストール。「+Web↑↓Default」と書いてある「+」の文字をクリックして、Webの項目を展開させて、「wget」のところをbinだけ選択。

 ※「Download Imcomplete」と出たら、ftpの調子が悪い(?)のでdownloadが不完全ということ。ftp鯖を変えて完了するまで繰り返すナリ。

2.
http://www.oopo.net/consoledev/
から psptoolchain-20050619.tgz新しいの来た!→psptoolchain-20050710.tgzを適当なフォルダに展開(例 f:\temp)

3.スタートメニュー→「すべてのプログラム」→「Cygwin」→「Cygwin bash shell」を起動。

4. "cd f:/temp"(2.で作ったフォルダ) と打ちこんで、2.のフォルダに移動
※フォルダ区切りに\は不可。/を使用すること。

5. "./toolchain.sh" と打ち込む。
WindowsXPだと wegtがインターネットにアクセスしに行くのでそれをブロックするかどうか確認のダイアログが出る。アクセスしてもらわないと困るので、「許可」する。

ひたすら待つと完了。(参考:100Mbps光回線,Pen4 2.4GHzで50分程度)


■ビルドしてみる

1.outpatch.exeの入手
nem氏サイト
http://sec.pn.to/
から「HelloPSP R1(HelloWorld)」のsource codeをもらってくる。

以下、↑のソースのビルド方法。

2.
startup.s のアセンブルがそのままでは通らない。
ソース全体に対して「$v0」を「$2」に文字置換。

3.
elf2pbpは、
http://www.internalreality.com/
からもらってくる。

4.
mk.batを以下のように書き換えた。


path = c:\cygwin\bin

C:\cygwin\usr\local\pspdev\psp\bin\gcc -march=r4000 -g -mgp32 -mlong32 -c hellopsp.c
C:\cygwin\usr\local\pspdev\psp\bin\gcc -march=r4000 -g -mgp32 -mlong32 -c pg.c
C:\cygwin\usr\local\pspdev\psp\bin\gcc -march=r4000 -g -mgp32 -c -xassembler -O -o startup.o startup.s
C:\cygwin\usr\local\pspdev\psp\bin\ld -O0 startup.o hellopsp.o pg.o -M -Ttext 8900000 -q -o out > hellopsp.map
outpatch
@echo you got outp as psp elf
elf2pbp outp EBOOT.PBP
copy EBOOT.PBP d:\psp\game\test

このmk.batと同じフォルダにelf2pbp,outpatchを入れてある状態でmk.batをダブルクリックして実行すれば、生成された実行ファイルが d:\psp\game\test(「d:」はメモリスティックだと仮定) にコピーされる。outpatchはファイル名固定なので必要に応じてリビルドする。


■おまけ

メモリスティックは、これがお買い得!
ASIN:B0009FJH9Q メモリスティック1GB 12,800円(7/1発売)