Cómo programar homebrew para PSP

Cómo programar homebrew para PSP

Este post no te enseñará a programar, aquí solamente voy a hablar de qué herramientas son necesarias y cómo configurarlas para comenzar a programar homebrew para tu PSP, aparte de tener algo de conocimiento de programación además debes saber como compilar código fuente desde la linea de comandos en Linux.

psplogo.png

Nota: Soy usuario de Ubuntu, por lo que el siguiente tutorial lo hice basado en el sistema operativo Linux, si usas Windows podrías compilar el SDK con cygwin, lamento no poner las instrucciones para este sistema, pero si sabes ingles puedes seguir este tutorial.

Lo primero es instalar las librerías necesarias, abre una ventana de terminal y pon el siguiente comando:

sudo apt-get install flex libncurses5-dev bison automake autoconf gcc make patch subversion texinfo wget

Después descarga el ToolChain y descomprimelo en alguna carpeta temporal (yo lo descomprimí en ~/Programas/psptoolchain).

Crea una carpeta donde se vaya a compilar nuestro PSP SDK:

mkdir ~/Programas/pspdev

y ahora agreguemos esa ruta a nuestro PATH (en mi caso esos son los directorios, modificalos si los cambiaste):

export PSPDEV=~/Programas/pspdev
export PATH=$PATH:$PSPDEV/bin

Tip: puedes poner estas dos ultimas lineas en tu login script (.bashrc) para no tener que teclearlas cada vez que quieras usar el compilador.

Ahora sí, ejecutamos el script (antes de este paso te recomiendo leer lo que puse después):

./toolchain.sh

Tardará un rato en descargar un montón de cosas (principalmente librerías para el gcc), dependiendo de la velocidad de tu conexión será el tiempo que tardará en descargar alrededor de 50 MB, puedes retirarte un par de horas de tu computadora, ya que además de tardarse descargando esa cantidad de megas tiene que compilar y configurar varias cosas más (en mi P4 a 2.8 GHz tardó como una hora).

Y eso es todo, ya tienes un PSP-SDK en tu carpeta pspdev, si tienes algún programa ya hecho puedes compilarlo con un make, si no… veamos un ejemplo para probar que haya quedado bien, abrimos algún editor de texto o IDE y pegamos el siguiente código:

#include <pspkernel.h>
#include <pspdebug.h>

PSP_MODULE_INFO(«Hola Mundo», 0, 1, 1);
#define printf pspDebugScreenPrintf

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();
printf(«Hola Mundo»);
sceKernelSleepThread();
return 0;
}

Lo guardamos con el nombre de main.c.

Ahora nos hace falta el archivo makefile (sí sin extensión), va de la siguiente manera:

TARGET = hello
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

Guardamos el archivo y nos dirigimos, desde la línea de comandos, a la carpeta que contiene esos dos archivo (en mi caso /Proyectos/psp-hello), y ejecutamos la instrucción make, compilará nuestro código y nos creará un archivo EBOOT.PBP el cual podremos poner en nuestro PSP en la carpeta /PSP/GAME150/Hello.

hello.jpg

Y con eso y unos pocos de conocimientos extra de programación en C y C++ podrás comenzar a desarrollar juegos o aplicaciones propias para tu PSP.

Más delante trataré de explicar el uso de librerías gráficas y de sonido para hacer cosas más interesantes.

7 comentarios a “Cómo programar homebrew para PSP

  1. tengo un problema al instalar toolchain me da el siguiente error:
    make[1]: se sale del directorio `/home/abeltran/psp/psptoolchain/build/newlib-1.15.0/build-psp’
    make: *** [all] Error 2
    ../scripts/004-newlib-1.15.0.sh: Failed.
    no tengo ni idea de porque sucede esto, agradeceria un poco de ayuda.

Comentarios cerrados.

Comentarios cerrados.