跳轉到內容

PSP 程式設計/通用/Hello World

來自 Wikibooks,開放的書籍,開放的世界

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”這個詞編譯程式,然後... 對它進行簽名!:)

簽名你的程式(Linux)

[編輯 | 編輯原始碼]

是的,隨著 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 程式了!;)

完成此操作後,您可以繼續進行 下一個教程

華夏公益教科書