PSP 自制程序 小记

这里不写具体怎么制作 PSP 自制程序,而是写一写我在阅读《Hacking The PSP Cool Hacks MODs And Customization》一书的一些笔记。

 

要在 Windows 操作系统下开发 PSP 自制程序,需要下述几样东西:

 

* Cygwin

* PSP SDK Toolchain

 

因为 PSP 的操作系统 XMB 是基于 Linux 定制过来的,所以 PSP 自制程序开发流程也要按照 Linux 系统的那一套来走,在 Windows 操作系统下开发 PSP 自制程序时,需要借助 Cygwin 工具来模拟 Linux 开发环境,比方说:执行 Bash 脚本、运行 Makefile 脚本,等等,如果开发机安装了 Linux 或者 Unix 类的操作系统,就可以免去这一步。

 

然后,PSP SDK Toolchain 是基于 PSP SDK 制作的一套工具链,它包括了 PSP SDK 以及一大堆自动化工具,比方说:代码编译脚本、SFO 文件生成工具、EBOOT.PBP 文件生成工具,等等。PSP 自制程序虽然也是 Linux 可执行程序,但是,PSP 的操作系统 XMB 和安装在个人 PC 机上的 Linux 系统有很大差别,由于 PSP 的硬件机能限制,XMB 阉割掉了很多原生 Linux 上的东西,然后,针对 PSP 的硬件构架,添加了很多优化机能,因此,通过 gcc 生成的 Linux 可执行程序是没办法直接在 PSP 上运行的,需要借助 PSP SDK Toolchain 的转换工具,将其转换成 PSP 专用的可执行程序文件 EBOOT.PBP 才能被 PSP 执行。

 

PSP SDK API 以 C 函数的形式提供给开发者,通常都不会直接就拿来用,而是在 Engine 层封装一下,再抽象出接口给 GamePlay 层调用,这样子,GamePlay 层的代码只需要编写一次,Engine 层的代码就根据游戏依赖的 SDK 进行扩展就可以了。

 

由于 PSP 程序在运行的过程中,玩家通常会按下 Home 键回到 XMB 界面,此时,XMB 就需要通过某种方式来告知 PSP 程序,基本上每个 PSP 程序都会在程序启动时创建一个线程,这个线程会注册一个回调函数,这个回调函数保留给 XMB 使用,XMB 会在特定的时候调用这个回调函数(比如:按下 Home 键的时候),应用程序通过这种方式来获知什么时候与 XMB 进行交互,通常,这个回调函数一旦被调用,PSP 程序就应该做清理工作,并退出程序了。

 

posted @ 2018-05-23 00:28  NekoMasutaDev  阅读(791)  评论(0编辑  收藏  举报