1:安装 devkitpro
下载 http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/
选择 devkitProUpdater-1.5.0.exe
URL:http://211.167.112.9:9203/2D11738C7F5FBDD2DBC1C3B9070C9A62E15918C1C1F093F5/ncu.dl.sourceforge.net/project/devkitpro/Automated%20Installer/devkitProUpdater-1.5.0.exe
a.运行DevkitProUpdater-1.*.*.exe
b.选download and install(下载并安装)
c.Keep downloaded files是保存下载的安装文件,remove downloaded files是安装完后删除下载的文件,这个随便
d.在Select the type of install的地方选devkitPSP,也可以选full,如果也要给GBA或NDS编程的话
e.安装地址可以选在任何地方。
2 helloworld
在任意目录下(不一定是安装devkitpro的目录)建立一个名为projects的文件夹(名字是什么其实无所谓)
在文件夹内建立多个子文件夹,每个文件夹是将来要编的一个程序
例如:projects
-helloworld
-main.c
-makefile
这里面的“helloworld”程序名称命名的文件夹,“main.c”是程序的源代码,“makefile”是为编译所作的信息文件
每一个程序编译前都要有main.c和makefile放在“程序名称”的文件夹内
先说makefile:
makefile没有后缀,里面写上:
TARGET = hello
OBJS = main.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hello World
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
这里目前每个程序不一样的就是倒数第三行“PSP_EBOOT_TITLE = Hello World”里的“Hello World”,它是你的程序名称,显示在PSP上。
所以每做一个新程序,需要改变的就是makefile里的“PSP_EBOOT_TITLE”
再说main.c:
main.c的格式主要为:
#include <pspkernel.h> //PSP程序必不可少的头文件
#include <pspdebug.h> //我认为有些类似于stdio.h
#include <pspctrl.h> //按键有关函数的头文件
PSP_MODULE_INFO("Hello World", 0, 1, 1); //不会被编译,写上你的程序名和版本号
#define printf pspDebugScreenPrintf //定义函数pspDebugScreenPrintf为printf,以后好用
int exit_callback(int arg1,int arg2,void *common)
{sceKernelExitGame();
return 0;}/* Exit callback */
int CallbackThread(SceSize args,void *argp)
{int cbid;
cbid=sceKernelCreateCallback("Exit Callback",exit_callback,NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;}/* Callback thread */
int SetupCallbacks(void)
{int thid=0;
thid=sceKernelCreateThread("update_thread",CallbackThread,0x11,0xFA0,0,0);
if(thid>=0)sceKernelStartThread(thid,0,0);
return thid;}/* Sets up the callback thread and returns its thread id */
//以上这三个函数先不用管,是为了能按home时退出用的
int main() //终于到main函数了
{
pspDebugScreenInit(); //设置PSP屏幕,这样就可以显示文本了
SetupCallbacks(); //设置按home可以退出
//这里才是写程序内容的地方!!!!
pspDebugScreenClear(); //清屏函数,清除屏幕上所有内容并把光标复位到左上角
pspDebugScreenSetXY(20,10); //设置光标,左上角为(0,0),PSP一共有34行68列,所以右下角是(67,33)
printf("hello world"); //就是打出一个“hello world”
sceKernelSleepThread(); //让程序运行完后停到这里
return 0;
}
现在开始编译啦!!
新建一个run.bat,里面写上:(假设程序安装到C:/devkitpro)
set path=%path%;C:/devkitpro/devkitpsp/bin;
cmd
现在将这个run.bat文件放入projects文件夹,运行
输入cd hello world回车(这代表进入hello world文件夹)
再输入make回车,就开始编译了!
如果看到附件里图片那样的文字并且在hello world里生成了四个文件就代表成功了!
在PSP/GAME里新建一个文件夹,名字随意,把刚才生成的EBOOT.PBP放入就可以了,要是嫌麻烦就直接把hello world拖到PSP/GAME
其实也可以将*.bat放入hello world文件夹,运行然后直接输入make就行了
如果想编译出1.50上的双文件夹,要把输入的make改成kploit make
如果想编译出PSP-2000上的prx文件用于3.71以上版本,需要在makefile里开头加上这样两行:
BUILD_PRX=1
PSP_FW_VERSION=371
同样还是输入make编译