Foros PS Vita y PSP

Foros PS Vita y PSP (http://www.todopsp.com/foros/index.php)
-   TUTORIALES (http://www.todopsp.com/foros/forumdisplay.php?f=42)
-   -   [Tutorial C] Empezando a Programar para PSP by c.ronaldo_13 (http://www.todopsp.com/foros/showthread.php?t=88260)

c.ronaldo_ 13 05/04/08 00:00:32

[Tutorial C] Empezando a Programar para PSP by c.ronaldo_13
 
Este tuto está pensado para programar C para PSP

Antes de nada,voy a explicar un poco de programación.

Todos los programas funcionan por un conjunto de funciones definidas por unas librerías.Y muchos preguntaran,que es una función?qué es una librería?
Lo primero es que una librería tiene distintas funciones que "nos facilitan la vida".Después hay que llamar a las funciones de la librería requerida.
Lo primero que vamos a hacer es instalar un programa para tener las librerías para programar en PSP.

Antes definimos estas variables,yendo a Mi PC,información del Sistema,opciones avanzadas,pinchad en variables de entorno.
En la varible PATH añades al final ;C:/PSPDev/bin. Ahora creas dos variables nuevas,una con el nombre PSPSDK con valor "C:/PSPDev/psp/sdk" y otra con nombre PSPDEV con valor "C:/PSPDev".
Ahora te descargas este programa: http://beta.pesepe.com/system/files/...raTorpesV3.exe

Instálalo en la ruta que dice,pues sino hay que cambiar las variables.

Al instalarlo,verás una serie de carpetas,ya están las librerías.En Source Codec PSP y Samples by Marce82 vereis ejemplos de programas en su código,un main.c y un makefile(podeis probar a compilar con un archivo en la raiz de PSPDev llamado Compilador).Os preguntareis que qué son,pues en el main es dónde se escribe el código,es decirlas librerías definidas con sus funciones y el makefile dónde se concentran los datos del programa a compilar,nombre del programa,Fw en el cual funciona,librería,etc.El main.c no necesariamente debe llamarse así.Vamos a analizar la estructura de un código de un Hello Word y las funciones,librerías,etc.:


Código:

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

 //Aqui definimos las librerías a usar,que nos facilitarán la vida para programar,esto: < pspdebug.h > significa que busca las librerías donde están las del PSPDev,si fuera esto " pspdebug.h " es que la librería está al lado de tu main y makefile.



//Aquí definimos la información del programa.Este HelloWorld correrá en kernel 3.xx

PSP_MODULE_INFO("Hola Mundo", 0, 1, 0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);


#define printf pspDebugScreenPrintf

//Esta es la función para escribir en la pantalla,pero abreviada en printf.Siempre que pongamos #define nos referimos a esto:

//#define nombrequeledasalafuncion funcion

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;
}


//Esto hace una llamada de salida al programa,ya se explicará en más tutos.

int main() {
pspDebugScreenInit();
SetupCallbacks();

//Empezamos a poner las funciones que hará el programa,esto limpia la pantalla.

printf("Hola Mundo por Nikocronaldo");

//Esto indicará lo que salga en la pantalla,puedes poner lo que quieras.

//Ahora añadimos esto(seviría para estar en modo sleep)

sceKernelSleepThread();

return 0;

}

//Esto es para salir de la aplicación

Ahora creamos el makefile,que es un archivo que no tiene extensión y agregamos las siguientes líneas:

Código:

TARGET = Hola Mundo
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


Dale al Compilador.cmd y se compilará si todo habrá ido bien.

Posibles problemas:

-No compila por errores de librerías:
Estas librerías son las más actualizadas,debería funcionar el siguiente source,sino lo compilas para kernel 1.5 y si sigue sin funcionar,me he dado cuenta que si desinstalas este programa e instalas el V2 ,la mayoría de programas compilan mejor con él.

-No funciona en mi PSP:
Debería de funcionar,sino lo pones en kernel 1.5

-Me genera errores que no son de las librerías:
Mira el código y repásalo y si no ves nada raro te contestaré.También puede ser que no has definido las librerías en el makefile.


Tuto By NikoCronaldo

the_cocoloco 29/04/08 22:08:24

Re: Empezando a Programar para PSP by c.ronaldo_13
 
gracias, estaba buscando algo parecido +1 para ti!

FERROMALO 15/12/08 16:55:38

Re: Empezando a Programar para PSP by c.ronaldo_13
 
Niko, preguntita ¿sigue sirviendo este compilador o hay alguno más actualizado que me venga bien? ;)


La franja horaria es GMT +2. Ahora son las 16:03:39.

Powered by: vBulletin, Versión 3.8.5
Derechos de Autor ©2000 - 2020, Jelsoft Enterprises Ltd.
Traducción VBulletin por vbulletinhispano.com