PlayStation Portable开发环境的搭建

作为程序员,不断探索未知领域是一项基本的技能。
PSP作为一款便携的掌上游戏机,除了各种娱乐功能外,我们也可以使用SDK开发一些自制程序满足我们平时的一些需求。
下面介绍一下针对PSP的开发平台的搭建,手把手教你写出PSP上自己的程序

读者应具备:C/C++知识基础;对于跨平台开发的热爱;一定的领悟能力;一份学习新事物的激情

开发软件的安装设置
这里我选择了devkitPro。安装时安装程序将会从网络下载所需的安装组件。安装完成后需要在环境变量
中加上PSPSDK,其变量值为D:/devkitPro/devkitPSP/psp/sdk(这里假设devkitPro安装在D盘的devkitPro目录下面)。devkitPro已经为你设置好了路径,今后在命令提示符中任何文件夹下面都可以使用make命令生成项目。

尝试编译一个Sample
在你的devkitPro/devkitPSP/psp/sdk/samples/路径下面你可以找到许多示例,在命令提示符中进入任何
一个文件夹中,找到makefile,在提示符下输入:
make SCEkxploit
编译成功,会得到两个文件夹和一些文件。文件夹名称诸如“%__SCE__项目名”这样的形式。
如果有了,那么恭喜你,可以将两个文件夹放到PSP的
PSP/GAME150
文件夹下面,然后运行一下看看。如果你没有编译成功,就换个例子试试看,我的建议是尝试一下
samples/controller/basic,因为这个例子没有额外的文件依赖,不会出现找不到文件的情况。不知道你有没有成功运行你的自制程序呢?没有的话也不要失望,我们继续往下看。

生成适用于3.71系统的自制程序
按照上述办法编译生成的自制程序是一个适用于1.50内核的程序,在新版系统上或许无法运行。有些朋友如果为了玩模拟器而给PSP打过1.5内核补丁就可以直接运行这个例子。我们现在改变编译方式,让自制程序也能运行在3.71系统上面。打开源代码目录下面的makefile,找到这一行:
include $(PSPSDK)/lib/build.mak
在它之前任何一行加入这两行内容:
BUILD_PRX=1
PSP_FW_VERSION=371
这将告诉编译器我们编译一个3.71内核的自制程序,同时编译出来的还有一个prx文件。prx文件是3.71系统自制程序的运行方式。现在再使用make编译一次代码,注意这回不要使用SCEkxploit附加参数,然后我们会得到几个文件。和之前生成的文件略有不同,这回多出来一个prx文件,而没有原来两个文件夹。自己建立一个文件夹,将prx和EBOOT.PBP放进去,然后将文件夹复制到PSP上的
PSP/GAME371
文件夹下面(看清楚,不一样了哦,不要放错!),启动我们的程序。

怎样,是否对PSP自制软件的开发有了一定的熟悉?现在你可以尝试编译一些其他示例,玩够了回来我们继续^_^

VS2005下PSP开发项目的搭建
回到我们熟悉的IDE上面来。运行VS2005,新建一个项目,在“项目类型”中选择“Visual C++”,“模版”中选择“生成文件项目”,输入你的项目名称,确定。在向导中的“设置‘调试’配置”里,“生成命令行”中输入:
make SCEkxploit
如果是3.71内核,输入make就可以了。“清除命令”处输入:
make clean
“重新生成命令行”处输入:
make rebuild SCEkxploit(3.71为make rebuild)
发行配置默认与调试配置相同,所以直接点“完成”就可以完成项目的建立。
现在建立一个makefile在项目文件夹下面,注意:在VS2005中,这个过程是由IDE自动完成的,我们现在
只是“借鸡生蛋”,使用VS2005的代码自动完成等功能,但是对于代码的编译控制只能由手动完成。这个makefile建议参考示例中的makefile,我说几点需要注意的地方:
1、TARGET关键词后面是生成的文件名称,起一个简单表意的名称就行
2、OBJS关键词后面是编译时需要生成的目标文件名称,如果你有多个源代码就需要在这里添加对应的.o目标文件,这样才能正确编译全部源码并最终连接到一起。文件名之间用空格分开
3、PSP_EBOOT_TITLE关键词是指生成出来的程序在PSP中所显示的标题

生成支持C++语言的项目
devkitPro提供的示例都是c语言代码,只要将扩展名改成cpp编译器就会自动按照C++语言规范编译,这一点可以参考devkitPro/devkitPSP/psp/sdk/lib/build.mak文件内容进行理解。但是这样编译的代码在你new一个class的时候会得到这样一个错误提示
undefined reference to `operator new(unsigned int)'
这是由于C++库文件默认没有加载的缘故(这个问题曾经困扰了我一段时间,这就是依赖IDE的怨念- -|||),打开makefile,依然是要在
include $(PSPSDK)/lib/build.mak
之前加上一句话
LIBS = -lstdc++
这样就挂上了标准C++的库文件,然后成功编译你的程序吧。顺便说一句LIBS关键词是加载库文件的设置,设置方法是“-l库文件名”,中间不要加空格。库文件可以在devkitPro/devkitPSP/psp/lib路径中找到,那些扩展名为.a的文件就是

这样,就完成了PSP开发环境的搭建,学到最多的或许是makefile的用法吧,当然这也是之前过度依赖IDE以及缺乏对代码编译过程的了解所导致的。:p

一些提示:
PSP使用的图形库API语法与OpenGL有相似之处,所以开发PSP程序时候不妨在PC端建立一套与PSP对应的OpenGL函数关系,这样可以很方便在PC上面调试好程序后,快速将代码移植到PSP上面,避免了PSP调试不便的麻烦。

跨平台开发最关键的一点就是开发者自己建立起平台之间功能实现的对应关系,这样可以将一些底层功能快速
替换以将移植时所需的代码修改量减到最小。

多多参考Sample中的例子,你将能够获得足够的帮助。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值