Sábado, 21/Dic/2024, 7:11 AM
                          Inicio

Registrarse

Entrada
Le saludo Huésped | RSS
[ Mensajes nuevos · Participantes · Reglas del foro · Búsqueda · RSS ]
  • Página 1 de 1
  • 1
[OSLIB]Preparando lo necesario y Hello World
klozzFecha: Viernes, 08/Abr/2011, 0:14 AM | Mensaje # 1
Soldado raso
Grupo: Administradores
Mensajes: 6
Reputación: 0
Estatus: Offline
Bueno tras ver que no hay tutoriales de el uso de la librería OSlib les pondré un poco del conocimiento que he adquirido aunque realmente no sea mucho. Primero que nada empezare con el mítico Hello World y después iré poniendo los demás.

Instalar SDK:

Primero que nada deberán tener instalado algún SDK, en mi caso uso el Kit de Programacion PSP para Torpes de marce (Configurarlo tal y como señala la noticia).

Observaciones:

Luego de tener instalado nuestro SDK tenemos que conseguir un editor de texto, realmente no importa cual uses, puedes usar el Notepad, Wordpad, el que prefieras; yo uso Notepad++. Es preferible usar un editor que sea capaz de identificar el código fuente de C debido a que la sintaxis se destaca, las opciones quedan mas claras (mucha gente de la scene usa Dev C++). Pero lo dicho, no importa cual uses, siempre que sepas utilizarlo.

La primera parte del programa debe contener comentarios para decir a cualquier persona que lea nuestro código cual es el objetivo del programa, cuando fue escrito, y quién es el autor. Los comentarios son las lineas del código fuente que se omiten del binario compilado. Los comentarios son una parte muy importante del código. Los comentarios se señalan con los caracteres // y /* */.

Comenzando:

El nombre del archivo que crearemos con nuestro editor de texto sera: Main.c.

Importamos la librería para poder desarrollar bajo OSLIB ya que sin ella no estaríamos programando bajo OSLIB solo seria C:

//importamos la libreria
#include <oslib/oslib.h> //libreria indispensable Old School Library OSLIB

Ahora lo siguiente es PSP_MODULE_INFO("Nombre del homebrew o del plugin",0,1,1); los números son la versión del homebrew, los otros valores son otras cualidades (licencia ajustada solamente), versión importante, y versión de menor importancia.

Dejaremos todo a excepción del nombre como valores por defecto. Así pues, agregamos la linea siguiente al programa:

Code

PSP_MODULE_INFO("HelloWorld con OSLib", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

Ahora iniciamos el programa el cual conlleva de nombre main en esta ocasión es un main de tipo entero y quedaría así:

int main()//Iniciamos el programa
{

Ahora con las lineas de mas abajo ya no tendremos que escribir las lineas para hacer funcional el "Callbacks" o el botón home
con esta linea la librería ya se encarga de todos los callbacks que hacíamos antes y ya no nos tenemos que preocupar por esa historia que tanto molestaba usando las librerías normales.

Ahora para para iniciar inicializarémos la librería oslib escribiendo oslInit(0);:

oslInit(0);

Iniciamos la parte gráfica indicando el formato de pixeles que queremos usar, si queremos usar doble buffer void oslInitGfx(int pixelFormat, int bDoubleBuffer); usaremos OSL_PF_8888 para una pantalla de 32 bits o OSL_PF_5650 para una pantalla de 16 bits, 0 para buffer simple, 1 para buffer doble.

oslInitGfx(OSL_PF_8888, 0);

Iniciamos la pantalla para poder escribir en ella usando oslInitConsole(); ya que sin ella no podremos escribir en pantalla:

oslInitConsole();

Escribimos en pantalla usando oslPrintf antes en C era pspDebugScreePrint("texto") ahora en OSlib es oslPrint si quisieran imprimir en determinado punto seria oslPrintf_xy(int X , int y,"texto"); que se usaria ejemplo: oslPrintf_xy(0,20,"Hola mundo"); pero eso lo veríamos en el tutorial 2, también recordar que \n se utiliza para dar saltos de linea:

Code


oslPrintf("Hola Mundo!!\n\n");
    oslPrintf("Leccion 1: OSLIB Hello world.\n\n");
    oslPrintf("teammex.ucoz.es\n----------------------");

Esperamos a que el usuario apriete cualquier botón para salir y así no tener que ver como se ejecuta el homebrew y sale solo:

oslWaitKey();

Iniciamos la parte gráfica escribiendo oslEndGfx();:

oslEndGfx();

Sale directamente al menú de la psp con el comando oslQuit();:

Code
oslQuit();
   
return 0;

Debemos recordar que siempre debe haber una llave que cierra, como la de a continuación ya que sin ella daría error de compilado:

}

Makefile

Code

TARGET = HelloWorld
OBJS = main.o   
   
INCDIR =
CFLAGS = -G4 -Wall -O2
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
   
LIBDIR =
LDFLAGS =
STDLIBS= -losl -lpng -lz \
   -lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgu -lpspaudiolib -lpspaudio -lm
LIBS=$(STDLIBS)$(YOURLIBS)
   
   
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = OSlib Hello World
   
   
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Ahora les dejo el main completo :)

Code
/importamos la librería
#include <oslib/oslib.h> //librería indispensable Old School Library OSLIB
   
PSP_MODULE_INFO("HelloWorld con OSLib", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
   
int main()//Iniciamos el programa
{
     //con esta linea la librería ya se encarga de todos los callbacks
     //que haciamos antes y ya no nos tenemos que preocupar por esa historia que tanto molestaba usando las librerías normales  
   
     oslInit(0);
   
    //iniciamos la parte gráfica indicando el formato de pixels que queremos usar y si queremos usar doble buffer
     //void oslInitGfx(int pixelFormat, int bDoubleBuffer);
     //usaremos OSL_PF_8888 para una pantalla de 32 bits o OSL_PF_5650 para 16
     //0 para buffer simple, 1 para buffer doble
   
     oslInitGfx(OSL_PF_8888, 0);
   
     //iniciamos la pantalla para poder escribir en ella
   
     oslInitConsole();
   
    //escribimos
   
     oslPrintf("Hola Mundo!!\n\n");
    oslPrintf("Leccion 1: OSLIB Hello world.\n\n");
    oslPrintf("psp.scenebeta.com\n----------------------");
   
     //esperamos a que el usuario apriete cualquier botón para salir.
   
     oslWaitKey();
   
    //finaliza la parte gráfica
   
     oslEndGfx();
   
    //sale directamente al menú de l la psp
   
     oslQuit();
   
     return 0;
}   

Espero les haya servido ;D

 
  • Página 1 de 1
  • 1
Búscar:

Copyright MyCorp © 2024 Hacer un sitio web gratis con uCoz