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.
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).
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 /* */.
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:
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:
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 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();:
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:
}
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
/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; }
Descargar OSLib - Hello World (Solo Usuarios Registrados).
Comentarios
error al compilar
esto devuelve la consola...
arieldev.blogspot.mx
Errores al compilar
Hola a tod@s.
Al final he podido instalar el entorno de programación de PSP en Ubuntu, y todo bien con los tutoriales básicos de C, pero al compilar este tutorial me lanza el siguiente error:
No sé yo pero creo que las rutas tipo /home/user/... están mal.
¿Cual es el error?
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
Faltan librerias
en el makefile
Solucion, ponlas todas.
Viste klozz te dije que
Viste klozz te dije que siguieras con tus tutos en scenebeta ya aparece y quisiera que continuaras
Pues este es el unico que
Pues este es el unico que habian subido a portada .____. xD ahora solo dividieron la seccion jajaa
Te los estan subiendo
De los tutoriales mios y tuyos tendremos la dosi a reventar.
En efecto
Así que vamos por mas tutoriales....
como hago para que
como hago para que "oslWaitKey()" espere solo a que apriete (X) y no cualuier tecla??
puedes hacer una funcion que
puedes hacer una funcion que espere al ser presionado X
#define wait oslWaitKey
void pressedX()//pressedX() la mandas llamar en el main del programa en donde estava oslWaitKey(); pones
//pressedX();
{
if (osl_keys->held.cross) wait();}
mas o menos podrias hacerla asi saludos
TEAM MEX Homebrew y desarrollo PSP
Metal TrooperV.Pre-Alpha (15%)Lua , 10% C .
Ubunshell VProof. (45%)C
RPG Magues (35%)Lua , 5% C
Android development for Xperia X8 ^^ mis roms en XDA-Developers ya que en Scenebeta no las publican xD
Xperience | MIUI Pikachu | Semc debrand engine | Froyexp | Xperience walkman mod | Android 4.0.4 CN9 Crema de nieve
-- KLOZZ
y no puedo usar los terminos
y no puedo usar los terminos definidos en keys.h ????
pues y porque no pruebas a
pues y porque no pruebas a experimentar ???? yo solo te di una opcion xDD mientras mas experimentes se te hara mas facil xD un saludo
TEAM MEX Homebrew y desarrollo PSP
Metal TrooperV.Pre-Alpha (15%)Lua , 10% C .
Ubunshell VProof. (45%)C
RPG Magues (35%)Lua , 5% C
Android development for Xperia X8 ^^ mis roms en XDA-Developers ya que en Scenebeta no las publican xD
Xperience | MIUI Pikachu | Semc debrand engine | Froyexp | Xperience walkman mod | Android 4.0.4 CN9 Crema de nieve
-- KLOZZ
Excelente!!!
Es precisamente lo k estaba buscando, cuando son las otras lecciones? donde puedo aprender mas??
Tengo experiencia con código para web, html, css, php, jquery, pero tengo mi psp y me encantaria desarrollar algunos proyectos,
Por donde me recomendan empezar,
Espero ansioso las siguientes lecciones...
Salu2
ya estan escritas varias
ya estan escritas varias lecciones solo es cuestion de que las pasen a portada algun editor pero cuando sean pasadas te enteraras y podras seguir aprendiendo más saludos
TEAM MEX Homebrew y desarrollo PSP
Metal TrooperV.Pre-Alpha (15%)Lua , 10% C .
Ubunshell VProof. (45%)C
RPG Magues (35%)Lua , 5% C
Android development for Xperia X8 ^^ mis roms en XDA-Developers ya que en Scenebeta no las publican xD
Xperience | MIUI Pikachu | Semc debrand engine | Froyexp | Xperience walkman mod | Android 4.0.4 CN9 Crema de nieve
-- KLOZZ
Gracias man, comenzare con
Gracias man, comenzare con esto...
un gran trabajo
gracias por el trabajo
lo are
=O que bueno que lo han
=O que bueno que lo han pasado a portada :D gracias n.n
boy a tratar de aserlo xD
boy a tratar de aserlo xD
Interesante
Se ve interesante