经过一早上的折腾,我的Hello PSP!终于出现了!
第一次在linux下写psp代码,昨天虽然编译得差不多了,但是要写还是有点无从下手的感觉。经过一晚的沉淀,今天早上开工写,当然首先还是去找下教程吧,功夫不负有心人,果然找到一篇很适合像我这样菜的人。
http://blog.csdn.net/lee576/article/details/2033754
上面这位大哥真是好人,手把手啊!我照着上面的步骤一步步弄到最后。
make
报错!找找看。
晕,居然是在Makefile中PSPSDK=$(shell psp-config -- pspsdk-path)"--"和"pspsdk-path"之间多了一个空格!
果然C程序不好写,修复,继续make
接下来的错误就让我有点……
在经过多次反复查看后,发现代码已经跟上面大哥写得一模一样了,可是为什么不行呢!?
再上网搜,这回让我发现另一个地址:http://www.linuxgraphics.cn/psp/dev_guide.html。
上面的内容跟第一位大哥写得差不多,不过还是让我发现了一点不一样
第一位大哥代码是这么写的:
SP_MODULE_INFO("Hello World", 0, 1, 1)
新发现的是这么写的:
PSP_MODULE_INFO("Hello World", 0, 1, 1);
编译报错是指向main.c中SP_MODULE_INFO("Hello World", 0, 1, 1);的行,难道是这个问题,修改为PSP_MODULE_INFO("Hello World", 0, 1, 1);试一试。
修改后,make
成功了!!
接下来就要把生成的EBOOT.PBP文件拷到我的PSP中看看行不行。兴奋的接上PSP把EBOOT.PBP拷进去,然后从PSP中找它,结果……,PSP里什么都没有,怎么回事!
继续去找老师,经过无数前辈的点拨,原来要把“皮”一起拷过去。好吧,把之前新建的那个HelloPSP整个拷过去(连源文件的一起了,省事!)。
这回进入PSP,果然在里面发现一个可执行的东东。果断执行,熟悉的启动画面进入眼前,慢慢的浮现出一个黑底的屏幕,屏幕上赫然显示白色字体的“Hello PSP!”。成功了!!看着那黑底白字,我的眼睛湿润了!
哎,虽然以前在linux下写过点C代码,但是那是屈指可数,而且都是抄书。今天跟着无数前辈的指点,copy他们的代码,总算是不求甚解的把hello psp弄出来了。万事开头难既然已经成功开了头,路会越走越顺的,接下来我可以好好学习下了!
另:昨天的009-psplinkusb.sh没有编译成功,看来国外的兄弟没有骗我,至少现在看起来,没有影响我的Hello PSP!
下面贴出我的代码吧,差不多都是copy前辈的,但是绝对是可以的,我的是PSP 3006 6.20的系统。
main.c
//hello PSP - My First App for the PSP
/*
This program war created by(super) on (Date Here)
It is a simple "Hello World" APplication.
*/
#include <pspkernel.h>
#include <pspdebug.h>
PSP_MODULE_INFO("Hello PSP", 0, 1, 1);
#define printf pspDebugScreenPrintf
/* Exit callback */
int exit_callback(int arg1,int arg2,void *common)
{
sceKernelExitGame();
return 0;
}
/* Callback thread */
int CallbackThread(SceSize args,void *argp)
{
int cbid;
cbid=sceKernelCreateCallback("Exit Callback",exit_callback,NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void)
{
int thid=0;
thid=sceKernelCreateThread("update_thread",CallbackThread,0x11,0xFA0,0,0);
if(thid>=0)
{
sceKernelStartThread(thid,0,0);
}
return thid;
}
int main()
{
pspDebugScreenInit();
SetupCallbacks();
printf("Hello PSP!");
sceKernelSleepThread();
return 0;
}
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 PSP
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
分享到:
相关推荐
供PSP开发脚本语言的LUA爱好者使用,作者不详引用自http://bt.levelup.cn/userupload/tg777.com/download/5832.html
介绍了PSP游戏开发环境的建立和编程基础知识。
神卡PSP联机 神卡PSP驱动!
Develop for the PSP,看看国外同国内对PSP的距离,是一本学习PSP编程的书。
PSP刷机.rar psp2000和psp3000都亲自试验过,没问题,
PSP 3000 5.03主机适用版下载 (还有一个是针对PSP 2000V3 5.03主机版的) 国人再次给大家带来了惊喜,以下就是由忠贞炙烈之炎发布的503kxploit_v4已签名版,通过该程序,PSP3000/2000V3 5.03主机可以无须再刷...
PSP降级工具 著名黑客someone发布了6.60官方系统降级程序6xx_downgrader_v4,该降级程序支持PSP1000、2000、3000和PSPgo的主板为01G,02...4.中途不要断电,等他更新完成会出现蓝屏,PSP按O键会恢復到官方系统,降级完毕
pspdev,有需要的下。 很好的一个psp编程工具 psp编程必备。
Chapter 18: Programming the PSP: Hello World Chapter 19: Running Homebrew Applications .Chapter 20: Installing and Running Homebrew on PSPs with Firmware Version 200 Chapter 21: Installing and ...
在VS2008和Eclipse中建立开发环境
PSP禁止光驱的插件!
软件开发过程(psp)课件包括handbook及少数题目
2:解压完毕后会出现 psp的文件夹里面就是降级工具 3:把psp用usB连接到电脑上 4:复制解压的psp文件夹到(psp上),要是提示是否覆盖选择是,这里只会覆盖game文件夹! 最后 直接打开小p在游戏里运6.20就可以了
PSP自制软件开发利器,JGE 1.0 第3部分(由于太大分卷压缩)
PSP 主板原理图
本人亲自整合的PSPSDK, 说明:这里包含2套SDK,一套是1.5(现在很少有人在用了), 另一套是现在正在用的3xx-5xx 目录里,150的是150版本,如果要用150...如果有问题或想交流PSP开发经验 请加QQ群5126002或15047430。
这是通用版金手指,psp2000v3,psp3000均可使用,普米1,2不行,gen-c,普米3、4均可使用,支持怪物猎人p3
MediaCoder PSP 专用版-最好的免费PSP视频转换软件 功能简介: ...本人反复比较几个版本后确定的最好版本,且免费,一边压缩一边出现一个PSP的预览画面,很有意思。2010年11月22日更新版。特此推荐给大家。