24 January 2010

PSP development

Download psp toolchain from the svn:
$ svn co svn://svn.pspdev.org/psp/trunk/pspsdk
Install the required dependencies:
$ sudo apt-get install build-essential autoconf automake bison flex libncurses5-dev libreadline-dev libusb-dev texinfo libgmp3-dev libmpfr-dev subversion
Add the next exports and update the path:
$ export PSPDEV="/usr/local/pspdev"
$ export PSPSDK="$PSPDEV/psp/sdk"
$ export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin"
Install the PSP toolchain with:
$ sudo ./toolchain-sudo.sh
Install the PSP sdk with:
$ ./bootstrap
$ ./configure
$ make
$ make install
Hello world (main.c)
#include <pspkernel.h>
#include <pspdebug.h> 

PSP_MODULE_INFO("Hello world", 0, 1, 1);

int exit_callback(int arg1, int arg2, void *common)
{
          sceKernelExitGame();
          return 0;
}
 
int CallbackThread(SceSize args, void *argp)
{
          int cbid;
 
          cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
          sceKernelRegisterExitCallback(cbid);
 
          sceKernelSleepThreadCB();
 
          return 0;
}
 
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();
 pspDebugScreenPrintf("Greetings from binarycell.org");
 sceKernelSleepThread();
 return 0;
}
and Makefile:
TARGET = main
OBJS = main.o

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hola Mundo
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
Copy on PSP path "PSP/GAME/Hello/EBOOT.PBP"

Sample obtained form: Abismo tutorial in psp.scenebeta.com (spanish)

More info al: http://pspdev.org/

Posted at BinaryCell

No comments:

Post a Comment


Disclaimer: In no event shall the blog owner, be liable for any damages, including without limitation, special, indirect or consequential damages, or any damages, whatsoever resulting from access or use, or inability to access or use this Website or arising out of any materials, information, qualifications or recommendations on this Website.