posté le 20/12/2007 à 15h48
J'ai continué à m'amuser un peu avec ma PSP, en rétrogradant le firmware en version 1.5, ce qui permet d'exécuter des programmes "homebrew" depuis la carte mémoire.
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é cheesy   



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)
Avant tout, assurez vous d'avoir les paquets suivants :

# 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
Bref, de quoi bien s'occuper déjà !
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 laugh
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
Par contre je n'ai pas réussi à faire fonctionner le réseau pour envoyer les résultats (mais d'après ce que j'ai lu sur les forums, c'est assez compliqué si on veut supporter le WPA).
Bon d'accord ça sert à rien, mais c'est classe cool

Commentaires

Pseudo :
Message :
(pas de HTML)

zmf [ 29/08 - 03:27 ] : MERCIIIIIIIIIIII euuuuuuuuuhhhh
surtout pour le svn co svn://svn.pspdev.org/psp/trunk/psptoolchain
c'est con mais je trouvais pas l'adresse.
Pour ma part ça à mis trrrrrrrrrrrrrrrrrrrrrrrrrrrrrres longtemps à tout compiler, mais j'ai pu voir des tores 3D bougez sur ma psp \o/ (bon ok c'est pas de moi, mais c'est la classe)

hedy [ 06/02 - 20:12 ] : ca ne marce pas sur mon psp

Royale [ 12/01 - 19:18 ] : (sans l'interface graphique :))

Royale [ 12/01 - 18:49 ] : Je viens de retester, environ 650000 pièces par seconde...

casse-tetes [ 12/01 - 15:53 ] : C'est classe ? ou top ....
Et en termes de scores ... combien de PPS ?
;-)

Solevis [ 11/01 - 13:14 ] : Pourtant c'est la meme version du script...

Royale [ 10/01 - 22:57 ] : Peut-être que le toolchain a été mis à jour ou corrigé ?

Solevis [ 10/01 - 21:12 ] : Bonjour,
Garce a vous je vais pouvoir installer le toolchain sur ma Debian.
Par contre vous dites de modifier le fichier newlib (j'ai eu un probleme a la compilation) mais je ne retrouve pas le meme code que vous.

Nono [ 20/12 - 17:12 ] : Cross-compiler pour une HP48GX et ses entiers sur 4bits est plus fun :-p

Infos TiBlog

Pseudo : Royale
Titre : Le blog de Royale
Description : Le blog de l'administrateur de TiBlog.fr où vous trouverez quelques détails techniques sur le fonctionnement de ce site.

Créer un blog !

blog gratuit

Recherche

Photo