Desarrollo de videojuegos para PSP con C++ y SDL/El makefile
El makefile para compilar proyectos para PSP tiene ciertas particularidades dignas de mención en esta humilde guía.
Jerarquía de directorios
editarVamos a suponer que tenemos la siguiente jerarquía de directorios:
- Proyecto
- makefile
- main.cpp
- engine
- ficheros.cpp
- ficheros.h
El makefile
editarNuestro makefile sería algo similar a lo siguiente:
#Proyecto
TARGET = Nombre del proyecto
SDL_CONFIG = $(PSPBIN)/sdl-config
# Rutas
MOTOR_DIR := engine
# Ficheros fuente del juego
SRC := main.cpp
# Ficheros fuente del motor.
SRC_MOTOR := ficheros.o del motor
# motor_dir + fuentes
SRC_DIR_MOTOR := $(foreach src, $(SRC_MOTOR),$(MOTOR_DIR)/$(src) )
# Objetos
OBJS := $(SRC:%.cpp=%.o) $(SRC_DIR_MOTOR:%.cpp=%.o)
INCDIR =
CFLAGS = $(shell $(SDL_CONFIG) --cflags) -G0 -Wall -O2 -DPSP
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti -D"TIXML_USE_STL"
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
LIBS = -lstdc++ -lsupc++ -lSDL_gfx -lSDL_image -lSDL_mixer -lSDL_ttf -lfreetype \
-lpng -ljpeg -lvorbisidec -lz -lm $(shell $(SDL_CONFIG) --libs)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Nombre del proyecto
PSP_EBOOT_ICON= "icono.png"
PSP_EBOOT_PIC1= "fondo.png"
PSP_EBOOT_SND0= "sonido.at3"
PSPSDK = $(shell psp-config --pspsdk-path)
PSPBIN = $(shell psp-config --psp-prefix)/bin
USE_PSPSDK_LIBC=1
include $(PSPSDK)/lib/build.mak
Personalización
editarPodemos personalizar la apariencia de nuestro homebrew en el menú de PSP mediante las siguientes variables:
- PSP_EBOOT_ICON: icono de 144x80 que identificara al juego en la sección $Juegos$ del menú.
- PSP_EBOOT_PIC1: fondo que aparecerá en la consola cuando el juego esté seleccionado, debe tener 480x272.
- PSP_EBOOT_SND0: fichero de sonido en formato at3 que se escuchará cuando nuestro juego esté seleccionado en el menú.