PSP 编程/通用/Hello World
现在我们有了用于我们经常使用文件的通用文件夹,并且创建了回调文件,我们可以开始创建一个简单的“Hello World!”程序。
首先,我们将包含“pspkernel.h”,它将允许我们退出应用程序,“pspdebug.h”,以便我们可以启动一个简单的调试屏幕,“pspdisplay.h”,用于“sceDisplayWaitVblankStart”函数,当然还有“callback.h”,以便用户可以通过按下“home”然后“exit”来随时退出。
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include "../common/callback.h"
接下来,我们将告诉 PSP 关于我们程序的一些信息。在“PSP_MODULE_INFO”中,我们将告诉它我们程序的名称、任何属性及其主版本和次版本。现在,您可以忽略大多数这些属性。然后,为了使事情对我们更容易(以便我们不必输入太多),我们将用“printf”替换“pspDebugScreenPrintf”,这将允许我们在屏幕上输入文本。
#define VERS 1 //Talk about this
#define REVS 0
PSP_MODULE_INFO("Hello World", PSP_MODULE_USER, VERS, REVS);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
PSP_HEAP_THRESHOLD_SIZE_KB(0);
#define printf pspDebugScreenPrintf
因此,首先我们将初始化调试屏幕,并设置我们的回调。然后,在循环中,我们将写入位置放在 (0,0)(以便打印不会换行)并打印我们的消息,然后为了防止“撕裂”效果,我们调用“sceDisplayWaitVblankStart”。一旦用户退出并且循环被中断(记住我们正在使用“isRunning()”方法),我们将最后一次调用“sceKernelExitGame()”,它将退出我们的应用程序并返回零,从而关闭程序。
int main(void)
{
pspDebugScreenInit();
setupExitCallback();
while(isRunning())
{
pspDebugScreenSetXY(0, 0);
printf("Hello World!");
sceDisplayWaitVblankStart();
}
sceKernelExitGame();
return 0;
}
现在,如果您正在使用可以编译您的 PSP 程序的 IDE,那么您可以点击编译并将“EBOOT.PBP”放在 PSP 上的文件夹中,然后运行它。另一方面,如果您选择手动进行操作,那么我们必须在编译之前创建 Makefile。
所以... 在您的项目目录中创建一个“Makefile”文件(没有扩展名),并在您最喜欢的文本编辑应用程序中打开它。
TARGET=hello_world
OBJS=main.o ../common/callback.o
INCDIR=
CFLAGS=-G0 -Wall -O2
CXXFLAGS=$(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS=$(CFLAGS)
LIBDIR=
LDFLAGS=
LIBS=-lm
BUILD_PRX=1
EXTRA_TARGETS=EBOOT.PBP
PSP_EBOOT_TITLE=Hello World
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
使用“make”这个词编译程序,然后... 对它进行签名!:)
是的,随着 Geohot 的 root 签名密钥的发布,任何 PSP 都只能运行签名应用程序。因此,您必须有一个程序来强制对您的应用程序进行签名。:)
我使用 PSCrypter。下载“PSCrypter Signed 2.0”,将其解压到某个地方并进行构建。
如果您遇到“unknown command psp-config”之类的错误,则导出 pspdev 路径
export PATH=<pspdev_root>/bin:$PATH
接下来,将整个 PSCrypter 文件夹(您解压的)复制到 <your_psp_root>/PSP/GAME/ 并将您的 EBOOT.PBP 移动到那里的“sign”文件夹。转到 PSP 上的“Memory Stick”并运行 PSCRYPTER。等待...
当 PSP 重启后,将“sign”文件夹中的 EBOOT_Signed.PBP 重命名为 EBOOT.PBP。在 <your_psp_root>/PSP/GAME/ 中创建任何文件夹(例如“hello_world”)并将 EBOOT.PBP 移动到那里。
现在,您可以运行您自己的第一个 PSP 程序了!;)
完成此操作后,您可以继续进行 下一个教程。