2009年08月14日


広告


Ubuntu 9.04に構築したPSP開発環境psptoolchainでサンプルをmakeしてみる

前回のエントリで構築したUbuntu 9.04上のPSP開発環境であるpsptoolchainでサンプルプログラムをmakeし、実際にPSPで実行できるか試してみましょう。

まずはmakeするサンプルプログラムを選びましょう。特にpsptoochainのインストール時に指定しなければ、サンプルは/usr/local/pspdev/psp/sdk/samplesにあります。

hissorii@ubuntu-vb:~$ ls /usr/local/pspdev/psp/sdk/samples/
audio debug ir me ms net prx template utility
controller gu kernel mp3 nand power savedata usb wlan
hissorii@ubuntu-vb:~$

いろいろありますが、サンプルとしてはguあたりがおもしろそうですね。

hissorii@ubuntu-vb:~$ ls /usr/local/pspdev/psp/sdk/samples/gu/
beginobject copy logic shadowprojection sprite
blend cube morph signals text
blit envmap morphskin skinning timing
celshading integerdrawing ortho speed vertex
clut lights reflection spharm zbufferfog
common lines rendertarget splinesurface
hissorii@ubuntu-vb:~$

今回はcubeというのを選んでみました。
では早速いってみましょう。
まず/usr/local/pspdev以下のディレクトリはroot権限がないと書き込みできませんので、自分の作業ディレクトリにサンプルをコピーします。
私は作業用にホームディレクトリの下にtmpというディレクトリを作成しました。
cubeのmakeにはcommonというディレクトリも必要なので、あわせてコピーします。

hissorii@ubuntu-vb:~$ cp -pr /usr/local/pspdev/psp/sdk/samples/gu/{common,cube} tmp/
hissorii@ubuntu-vb:~$ ls tmp/
common cube
hissorii@ubuntu-vb:~$

cubeディレクトリに移動し、makeと入力すると以下のようになりました。

hissorii@ubuntu-vb:~$ cd tmp/cube/
hissorii@ubuntu-vb:~/tmp/cube$ ls
Makefile cube.c logo.raw
hissorii@ubuntu-vb:~/tmp/cube$ make
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -D_PSP_FW_VERSION=150 -c -o cube.o cube.c
bin2o -i logo.raw logo.o logo
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -D_PSP_FW_VERSION=150 -c -o ../common/callbacks.o ../common/callbacks.c
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -D_PSP_FW_VERSION=150 -c -o ../common/vram.o ../common/vram.c
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -G0 -Wall -D_PSP_FW_VERSION=150 -L. -L/usr/local/pspdev/psp/sdk/lib cube.o logo.o ../common/callbacks.o ../common/vram.o -lpspgum -lpspgu -lm -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o cube.elf
psp-fixup-imports cube.elf
mksfo 'Cube Sample' PARAM.SFO
psp-strip cube.elf -o cube_strip.elf
pack-pbp EBOOT.PBP PARAM.SFO NULL \
NULL NULL NULL \
NULL cube_strip.elf NULL
[0] 408 bytes | PARAM.SFO
[1] 0 bytes | NULL
[2] 0 bytes | NULL
[3] 0 bytes | NULL
[4] 0 bytes | NULL
[5] 0 bytes | NULL
[6] 47524 bytes | cube_strip.elf
[7] 0 bytes | NULL
rm -f cube_strip.elf
hissorii@ubuntu-vb:~/tmp/cube$ ls
EBOOT.PBP Makefile PARAM.SFO cube.c cube.elf cube.o logo.o logo.raw
hissorii@ubuntu-vb:~/tmp/cube$

無事にmakeできました。
いろいろファイルが作成されましたが、PSPに持っていって実行するファイルはEBOOT.PBPです。
もちろんこのEBOOT.PBPを実行するには、PSPがhomebrewを実行できる様になっている必要があります。
PSPをPCにつなぎ、USB接続モードにします。私はVirtualbox上でUbuntu 9.04を動かしていますので、Virtualboxのメニューで[デバイス]->[USBデバイス]とたどり、PSPを選択します。これでホストOSで認識されていたPSPがゲストOSであるUbuntu側で認識されるようになりました。
Ubuntu側ではPSPを自動認識し、勝手にマウントしてくれました。ディスクトップ上に出てきたアイコンはiPod nanoですが。

hissorii@ubuntu-vb:~/tmp/cube$ df
ファイルシステム 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 7850996 2807604 4644580 38% /
tmpfs 254736 0 254736 0% /lib/init/rw
varrun 254736 108 254628 1% /var/run
varlock 254736 0 254736 0% /var/lock
udev 254736 148 254588 1% /dev
tmpfs 254736 1172 253564 1% /dev/shm
lrm 254736 2192 252544 1% /lib/modules/2.6.28-14-generic/volatile
/dev/sdb1 3998656 3279840 718816 83% /media/disk
hissorii@ubuntu-vb:~/tmp/cube$ ls /media/disk/
IRSHELL MPE_ROOT MSTK_PRO.IND PICTURE VIDEO
MEMSTICK.IND MP_ROOT MUSIC PSP
hissorii@ubuntu-vb:~/tmp/cube$

マウントポイントは/media/diskですね。/media/disk/PSP/GAMEの下にcubeというディレクトリを掘り、そこに先ほど作成したEBOOT.PBPをコピーします。

hissorii@ubuntu-vb:~/tmp/cube$ mkdir /media/disk/PSP/GAME/cube
hissorii@ubuntu-vb:~/tmp/cube$ cp EBOOT.PBP /media/disk/PSP/GAME/cube/
hissorii@ubuntu-vb:~/tmp/cube$

umount /media/diskでUbuntuからPSPを切り離し、PSP側のUSB接続状態も解除します。
PSPのXMBでメモリスティックにある、「Cube Sample」を選択します。

をー。立方体がぐるぐる回っています。
ホームボタンを押し、XMBに戻ります。

ということで、無事にUbuntu 9.04上に構築したPSP開発環境であるpsptoolchain上でサンプルプログラムの作成に成功しました。

posted by ひっそりぃ at 2009/08/14 10:20 | Comment(0) | TrackBack(0) | 開発環境 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/125674997

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。