Je vous épargne les détails techniques pour effectuer cette manipulation, d'autres sites en parlent mieux que moi, et ça ne semble pas trop plaire à Sony...
Par contre ce qui est très intéressant, c'est de voir tout ce que la communauté "open source" a réalisé sur cette console.
Il existe par exemple un client ssh, qui permet de se connecter à partir d'un point d'accès Wi-Fi sur son serveur préféré
On trouve également beaucoup d'émulateurs, qui permettent de faire du rétro-gaming... parfois pas si rétro que ça, puisque la console peut même émuler des jeux PlayStation.
Un petit exemple avec un émulateur Super Nintendo :
Enfin, il est également possible de développer ses propres programmes !
Le site PS2DEV.ORG fournit un script très pratique, le "psptoolchain", qui permet de déployer facilement l'environnement de développement PSP.
Ca prend un peu de temps à compiler, mais c'est beaucoup plus pratique que de tout faire à la main... En plus certains patches sont appliqués à la volée.
Prévoyez un peu de place quand même, le script a téléchargé et généré près de 1Go de fichiers !
En effet, il installe :
- binutils-2.16.1
- gcc-4.1.0
- gdb-6.4
- newlib-1.15.0
- psplinkusb
- pspsdk (qui fourni des primitives pour interagir avec la PSP)
# apt-get install build-essential autoconf automake bison flex libncurses5-dev libreadline-dev libusb-dev texinfo
Voici ensuite les étapes que j'ai suivi :
$ svn co svn://svn.pspdev.org/psp/trunk/psptoolchain
$ cd psptoolchain
# ./toolchain-sudo.sh
Chez moi, j'ai juste eu à modifier le fichier "scripts/004-newlib-1.15.0.sh" avant de lancer le toolchain, car ce script ne fonctionnait pas.
Voici ce que j'ai modifié :
diff -u a/psptoolchain/scripts/004-newlib-1.15.0.sh b/psptoolchain/scripts/004-newlib-1.15.0.sh
--- a/psptoolchain/scripts/004-newlib-1.15.0.sh 2007-12-20 15:18:46.000000000 +0100
+++ b/psptoolchain/scripts/004-newlib-1.15.0.sh 2007-12-18 22:40:36.000000000 +0100
@@ -17,4 +17,4 @@
../configure --prefix="$PSPDEV" --target="psp" || { exit 1; }
## Compile and install.
- make clean && make -j 2 && make install && make clean || { exit 1; }
+ make clean && make MAKEINFO=makeinfo -j 2 && make install && make clean || { exit 1; }
Ensuite il existe un script similaire qui permet de compiler les bibliothèques pratiques :
- bzip2
- freetype
- jpeg
- libbulletml
- libmad
- libmikmod
- libogg
- libpng
- libpspvram
- libTremor
- libvorbis
- lua
- pspgl
- pspirkeyb
- SDL
- SDL_gfx
- SDL_image
- SDL_mixer
- SDL_ttf
- smpeg-psp
- sqlite
Les étapes sont presque les mêmes :
$ svn co svn://svn.pspdev.org/psp/trunk/psplibraries
$ cd psplibraries
# ./libraries-sudo.sh
Enfin, je vous conseille aussi de récupérer le répertoire "pspware" qui contient beaucoup d'exemples de code, ainsi que la bibliothèque libcurl :
$ svn co svn://svn.pspdev.org/pspware/trunk/libcurl
$ cd libcurl
# LDFLAGS="-L$(psp-config --psp-prefix)/lib -L$(psp-config --pspsdk-path)/lib" \
LIBS="-lc -lpspnet_inet -lpspnet_resolver -lpspuser" \
./configure --host=psp --disable-shared --prefix=$(psp-config --psp-prefix)
# make CFLAGS=-G0 && make install
Ensuite à vous les joies de la cross-compilation PSP.
Pour commencer, je me suis inspiré du Makefile de ce jeu, ainsi que des exemples, pour porter mon programme de calcul Eternity 2 sur la PSP
Et ça marche !
Comme j'utilise déjà SDL, le portage n'était pas trop compliqué...
J'ai juste eu à :
- changer la résolution
- me passer des timers SDL qui ne fonctionnent pas
- surcharger les "printf()" par les fonctions du SDK
- me passer de la fonction "uname()" (dommage, je serai curieux de voir ce qu'elle renvoie)
- utiliser le double buffer pour pas que ça clignote trop
Bon d'accord ça sert à rien, mais c'est classe
