Bueno, primero de todo y al hilo del tema, mucha gente habla del PSP Brew cuando se habla del PBP Unpacker y viceversa, cuando no tienen mucho que ver.
El PSP Brew está orientado a la estética del PBP (iconos, sonidos, etc...) y contiene algunos extras (odenar los homebrew, deskxpoitear un PBP, etc...) pero se queda corto en lo que se refiere a la creación de PBPs con sus archivos esenciales (si se cargan desde la carpeta "GAMExxx", sino el único esencial es el prx) como son el param.sfo (solo deja visualizar sus parámetros) y el data.psp (el prx).
El PSP Unpacker si que da total opción a la creación de PBPs desde 0 (editor del param.sfo incluida).
Por lo tanto las funcionalidades no son las mismas (el PSP Bbrew no lo podemos usar para fixear los PBPs cuando modificamos el vshmain, por poner un ejemplo. Tendríamos que recurrir al PSP Unpacker).
Sobre lo del PBP, pues como dice
Muzaman, solo es el ejecutable del juego cuando usamos eboots con kxploit (el que está en la carpeta sin %).
En los que no tengan el kxpoit, pues sería el ejecutable con una cabecera añadida (el param.sfo fijo mas los iconos y demás, si se los metemos).
Qué son los ejecutables de la PSP?
Pues no son mas que archivos ELFs (como los que se usan en PS2).
Los avanzados en la scene de PS2 (
suloku es uno de ellos
) sabrán que existe una utilidad para esta llamada PS2-Packer que sirve para comprimir los ELFs.
Pues bien, los prx no son mas que eso. Un algoritmo de compresión (diferente al del PS2-Packer, por supuesto) que comprime los ELF estáticos haciendo que ocupen menos tamaño.
Qué es un ELF?, pues algo parecido a archivos COFF pero que van mas allá.
Es un todo en uno, contiene código debug, de punteros, de strings, del propio ejecutable, etc...
Vamos que contiene el ejecutable, las librerias y el código objeto (los .o con las flags y demás que usamos en el código C++) por lo que es un formato ideal para el lenguaje orientado a objetos (C++) y no digamos nada para la PSP siendo su procesador un MIPS32 (trabaja con 32 bits de ancho de palabra).
Si compilais cualquier código fuente C++ en el PSPSDK (usando cualquier IDE) vereis que os genera un .o y un .elf
El .elf ocupará mucho mas que el prx (si es que lo habeis generado poniendo BUILD_PRX=1 al makefile), incluso mas que el EBOOT.PBP compilado (ejecutable mas param.sfo si lo generamos sin kxpoit).
Ocupa mas porque es estático. El prx sería lo mismo pero comprimido.
La PSP se los "come" por igual (podeis hacer la prueba con el PBP Unpacker, generando el PBP con el elf y con el prx y ya vereis como os funciona por igual) pero hay excepciones. En el custom 3.03 OE (creo que en todos) no funciona si usas los elfs, solo valen los prx (los cambios en algunas funciones para kenel 1.50 como SceKernelLoadExecParam y otras del modo VSH que afectaban a los juegos pudieron tener algo que ver, pero a saber).
De todas formas eso fue subsanado con el 3.10 OE (a partir de este, funciona en todos).
Salu2.