.

 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
WebMoney ぷちカンパ

PSPゲーム開発 C&C++ 

初心者でもPSPのゲームを作成できるように説明していきたいと思います。
*PSPSDKが新しくなっていたので記事を更新しました。

まず初めにゲーム作成にはC言語を知っておく必要があります。
⇒C言語初めての方はこちらのサイトがわかりやすいと思います。
(僕はまずVBからはじめたのですが、プログラムを書くのがはじめてでもサンプルを真似ながら実行すれば自然といろいろ出来ると思います。)


~下準備~
Cpad
⇒ダウンロードできない場合はこちらから
・PSPSDK(DL①DL②)
*DL②の方は古いバージョンになります。


~動作テスト~
・Windows XP Professional(SP3)

~参考~
過去の記事Cygwin利用)は非常にわかりにくい上時間がかかります。

~導入方法~
①まずPSPSDKをダウンロードします。
(最新版のMinimalist PSPSDK v0.9.5「記事をつけた時」)
②ダウンロードすると「pspsdksetup0.9.5.exe」が保存されるので実行します。
③保存先を C:\PSPSDK に設定されているのを確認した後、インストールを実行します。
④終了したら、「pspsdksetup0.9.5.exe」はもう不必要なので削除しても構いません。
⑤次に、一般的にはCygwinを使ったりするのが多いようですが、非常に時間がかかる上利点がないので、Cpadにパスを通して利用します。
⑥Cpadをダウンロードします。
⑦「lcpad231.lzh」というファイルが保存されるので、このファイルを
適当にCドライブのlcpadというフォルダを作成し解凍します。
⇒解凍ソフトはこちらを参考に

⑧次にプログラムファイル用のフォルダ、バックアップフォルダを作ります。
適当にC:\lcpad\PGM、C:\lcpad\BACKUP

⑨最後にlcpadを起動し、以下のように設定画面が出て来るので、
以下の通りにコンパイラのパス、データフォルダのパスを設定してください。
SCR000016.jpg

⑩次に環境変数を設定するのですが、LSI C-86のコンパイラに変更するだけで戻せるようにするために、lcpad.txtというテキストファイルを作り、以下のことを記述します。

set PATH=
set CPAD=C:\lcpad
set PSP=C:\pspsdk\psp\include;C:\pspsdk\psp\sdk\include;
set PATH=%SystemRoot%;%SystemRoot%\system32;C:\pspsdk\bin;C:\pspsdk\psp\bin;%CPAD%;%PSP%;
start lcpad.exe
exit

*注意*
マイコンピュタの環境変数「PATH」にC:\pspsdk\bin;C:\pspsdk\psp\bin;%CPAD%;%PSP%;を追加することで起動しています。設定は異なると挙動が発生する場合があるので、自分の環境に合ったバッチファイルを作ることをお勧めします。
ちなみに、バッチファイルの場合、起動後は本体の環境設定を元に初期化されると思います。


⑫↑をコピーしたら、拡張子を「.txt」⇒「.bat」に変更してください。
そしたら、lcpad.batをクリックするとCpadが起動します。
(*起動しなかった場合は、パスが通っていないと思います。)

⑬最後に、「makefile」を個別に設定する場合は、「設定」の実行タブ標準データフォルダの中からも"makefile"を探すをチェックしてください。
(そうすると、以下のmain.c、makefileを保存するとmake出来ます。)
RB000001.jpg


参考


~サンプル~
「HelloWorld」
プログラマの誰もが一番初めに作るプログラムです。
なぜか?それはこちらを参考に

Main.c


#include <pspuser.h>

PSP_MODULE_INFO("Hello World", PSP_MODULE_USER, 1, 1);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);


/* コールバック関数作成 */
int ExitCallback(int Arg1, int Arg2, void *Common) {
sceKernelExitGame();
return 0;
}
int CallbackThread(SceSize Args, void *Argp) {
int CallbackId;

CallbackId = sceKernelCreateCallback("Exit Callback", ExitCallback, NULL);
sceKernelRegisterExitCallback(CallbackId);

sceKernelSleepThreadCB();

return 0;
}
int SetupCallbacks(void) {
int ThreadId = 0;

ThreadId = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if (ThreadId >= 0)
{
sceKernelStartThread(ThreadId, 0, 0);
}

return ThreadId;
}

/* コールバック関数作成ここまで */

int main(int argc, char ** argv) {
pspDebugScreenInit();
SetupCallbacks(); //コールバック関数の読込み

pspDebugScreenPrintf ("Hello World!!");
sceKernelSleepThread(); //スリープして終了

return 0;
}



MakeFile


TARGET = HelloWorld
OBJS = main.o

INCDIR=
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBDIR =
LIBS =
LDFLAGS =

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Test
PSP_EBOOT_ICON=NULL
PSP_EBOOT_ICON1=NULL
PSP_EBOOT_UNKPNG=NULL
PSP_EBOOT_PIC1=NULL
PSP_EBOOT_SND0=NULL

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak






~実際の風景~
RB000002.jpg
RB000003.jpg




*注意*
この方法はPSP改造やろうだけが利用できる環境かもしれないです。
あんまこの手のことは非常に詳しく訳でもないので、なんとも言えないですが、
PSPSDKのIncludeのフォルダのパスとBINのフォルダのパスを設定すれば勝手にコンパイルしてくれるはずです。
高度な設定で環境変数を設定できますが、エラー(?)っぽいのが出るので、先にバッチファイルでパスを設定しています。
LIBフォルダはMakeFileを読込みすることで勝手にパスが通っていると思います。
Cygwinの導入に苦戦した人も多分この方法が手取り早く、またすぐに手を打つことが出来ると思います。

間違っている点及び改善点があればコメントにて投稿お願いします。
WebMoney ぷちカンパ

この記事へのコメント

承認待ちコメント

このコメントは管理者の承認待ちです

承認待ちコメント

このコメントは管理者の承認待ちです

Re: PSPゲーム開発 C&C++

↓すいません、自己解決しました。

Re: PSPゲーム開発 C&C++

[CPad: MAKEFILE "C:\pspsdk\bin\makefile" から実行ファイル名を抽出できませんでした]
と出るのですが、どうすればいいのでしょか?

Re: Re: PSPゲーム開発 C&C++

main.cは
#include <pspuser.h>~return 0;}
をコピー

線の下から手前までをコピーすれば出来ます。


lcpadを起動した後、設定で
「標準データフォルダの中からも"makefile"を探す」のチェック欄をチェックする必要があります。
しないと、コンパイルされません。

まぁいろいろ試してみればわかると思います。
後は以下を参考にしてみてください。

参考資料
EBOOT.PBP構造
http://nagaokastation.com/psp_ebootpbp.html
フォーラム チュートリアル
http://pspfb.sub.jp/index.php?topic=34.msg238#msg238
PSPSDK info
http://dark-alex.org/pspsdk_docs/
PSPプログラミング
http://bu-nyan.m.to/psp/funclist.htm
PSPPRX Lib
http://prxlibdocs.dark-alex.org/index.html

Re: PSPゲーム開発 C&C++

う~ん

なんだか後半からわかんなくなってきたw
⑬よくわかんないなぁMain.cはどう入力するんだろ?


Re: PSPゲーム開発 C&C++

コンパイラに失敗します。
どうすれば失敗しませんか。

コメントをお寄せ下さい

 必須
 必須
 必須
       
 必須
(コメント編集・削除に必要)
(管理者にだけ表示を許可する)

トラックバック

この記事のトラックバックURL
http://psp0kaizou.blog36.fc2.com/tb.php/425-2fe929b3

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。