Como comentei anteriormente a OSLib é uma biblioteca que facilita o desenvolvimento de jogos para psp.
Para instalar aconselho a baixar o pack completo já com o cygwin segue os links:
Parte 1 Parte 2
Mas caso você queira instalar do 0 (zero), você pode fazer o download em:
OSLib
Os passos da instalação você pode acompanhar no forum francês playeradvance:
http://www.playeradvance.org/forum/showthread.php?t=2172
Embora o texto esteja em francês com as imagens é fácil identificar, inclusive ensina como utilizar o visual C++ para compilar os projetos.
A OSLib possui alguns exemplos que te ensinam a manipular imagens, utilizar tiles, tocar sons, escrever textos, etc.
Como a biblioteca tem funções diferentes das padrões do PSPSDK, irei postar um novo HelloWorld, comentando apenas o que mudou (quase tudo):
Começando pelo Makefile :
TARGET = test
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 = test
PSP_EBOOT_ICON = ICON0.png
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
No makefile a unica mudança radical está em STDLIBS , que agora tem todas as bibliotecas utilizada pela OSLib.
Vamos ao novo Hello World:
//include da biblioteca
#include
//os callbacks (lembram do tanto de linhas no anterior???)
PSP_MODULE_INFO("HelloWorld", 0, 1, 1); // titulo do seu programa
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
int main()
{
//iniciamos a biblioteca
oslInit(0);
//iniciamos o modulo gráfico
oslInitGfx(OSL_PF_8888, 0);
//iniciamos o console de texto
oslInitConsole();
//escrevemos hello world na tela
oslPrintf("Hello World");
//aguardamos algum botão ser pressionado
oslWaitKey();
//encerramos o aplicativo
oslEndGfx();
oslQuit();
return 0;
}
Deu para notar a diferença de tamanho do Hello World??
O código ficou bem mais limpo, porém tem a mesma funcionalidade do primeiro Hello World .
Se você quiser entender mais sobre a OSLib eu disponibilizei a documentação, parcialmente em Português-BR (quem quiser ajudar a traduzir, dá um toque).
Caso você tenha alguma dúvida, entre em contato comigo ou utilize o forum da PlayerAdvance embora esteja em francês tem um pessoal lá que fala inglês e estão prontos para responder suas dúvidas.
Boa sorte e até o próximo.
Créditos ao Yodajr da playeradvance pelo exemplo.