Table des matières

, , , ,

Sony Playstation Portable (PSP) & Linux Ubuntu

Présentation de la PSP

logo_sony.jpg

La PSP est une console portable conçu par Sony et visant un public au premier abord hard-gamer. Néanmoins, cette page dédiée à la console va permettre de mettre à la portée de tous ce petit bijou et de l'exploiter à 100% !

Caractéristiques des modèles

Ces informations serviront quelque peu pour les néophytes qui veulent savoir ce que cache le ventre de leur console, mais surtout aux développeurs qui s'intéresseront au hardware de la machine pour en faire bon usage.

PSP 1000 (Fat)

383051.jpg

  • Couleurs : noire, blanche, grise, bleue, rose, rouge, argentée, etc…
  • Dimensions : 170mm (longueur) x 74mm (largeur) x 23mm (épaisseur).
  • Dimensions de l'écran : 95mm (longueur) x 54mm (hauteur).
  • Poids : 280g environ, batterie incluse.
  • Son : haut-parleurs stéréo internes.
  • Batterie : 3,6 V, 1800 mAh.

—-

  • Processeur central (CPU Core) : MIPS RS4000 sur 32 bits (architecture MIPS), cadencé à 333 MHz (pour les micrologiciels officiels inférieurs à 3.5, la vitesse disponible n'est que de 222 MHz) sur un bus mémoire 128 bits. Deux unités de calcul intégrées : FPU et VFPU (unité de traitement en parallèle). Puissance de traitement de 2,6 GFLOPS.
  • Mémoire principale : 32 MiB RAM et 4 MiB eDRAM (embedded DRAM) à 2,6 Gio/s.
  • Processeur multimédia (Media Engine) : second processeur RS4000 avec 2 Mio de mémoire eDRAM dédiée.
  • Deux processeurs graphiques : 3D Curved Surface + 3D Polygon (Core 1) et moteur de rendu 3D et de traitement des surfaces (Core 2), cadencé à 166 MHz sur un bus 256 bits, 2 Mio mémoire vidéo eDRAM à 5,3 Gio/s pour une puissance de traitement maximale de 664 M pixels/s, 34 M polygones/s (T&L).
  • Processeur audio (Sound Core Virtual Mobile Engine) : DSP 128 bits reconfigurable, 5 GFLOPS.
  • Décodeur matériel MPEG-4 AVC (H.264) Main Profile Level3.

PSP 2000 (Slim & light)

sony-psp-2000-slim.jpg

* Couleurs : noire, blanche, grise, bleue, rose, rouge, argentée, etc…
  • Dimensions : 170mm (longueur) x 7mm (largeur) x 18mm (épaisseur).
  • Dimensions de l'écran : 95mm (longueur) x 54mm (hauteur).
  • Poids : de 50g 180g environ, batterie incluse.
  • Son : haut-parleurs stéréo internes.
  • Batterie : 3,6 V, 1200 mAh.

—-

  • Processeur central (CPU Core) : MIPS RS4000 sur 32 bits (architecture MIPS), cadencé à 333 MHz (pour les micrologiciels officiels inférieurs à 3.5, la vitesse disponible n'est que de 222 MHz) sur un bus mémoire 128 bits. Deux unités de calcul intégrées : FPU et VFPU (unité de traitement en parallèle). Puissance de traitement de 2,6 GFLOPS.
  • Mémoire principale : 32 MiB RAM et 4 MiB eDRAM (embedded DRAM) à 2,6 Gio/s.
  • Processeur multimédia (Media Engine) : second processeur RS4000 avec 2 Mio de mémoire eDRAM dédiée.
  • Deux processeurs graphiques : 3D Curved Surface + 3D Polygon (Core 1) et moteur de rendu 3D et de traitement des surfaces (Core 2), cadencé à 166 MHz sur un bus 256 bits, 2 Mio mémoire vidéo eDRAM à 5,3 Gio/s pour une puissance de traitement maximale de 664 M pixels/s, 34 M polygones/s (T&L).
  • Processeur audio (Sound Core Virtual Mobile Engine) : DSP 128 bits reconfigurable, 5 GFLOPS.
  • Décodeur matériel MPEG-4 AVC (H.264) Main Profile Level3.

PSP 3000 (Brite)

sony-psp-3000.jpg

* Couleurs : noire, blanche, grise, bleue, rose, rouge, argentée, etc…
  • Dimensions : 170mm (longueur) x 7mm (largeur) x 18mm (épaisseur).
  • Dimensions de l'écran : 95mm (longueur) x 54mm (hauteur).
  • Poids : de 50g 180g environ, batterie incluse.
  • Son : haut-parleurs stéréo internes.
  • Batterie : 3,6 V, 1200 mAh.
  • Processeur central (CPU Core) : MIPS RS4000 sur 32 bits (architecture MIPS), cadencé à 333 MHz (pour les micrologiciels officiels inférieurs à 3.5, la vitesse disponible n'est que de 222 MHz) sur un bus mémoire 128 bits. Deux unités de calcul intégrées : FPU et VFPU (unité de traitement en parallèle). Puissance de traitement de 2,6 GFLOPS.
  • Mémoire principale : 32 MiB RAM et 4 MiB eDRAM (embedded DRAM) à 2,6 Gio/s.
  • Processeur multimédia (Media Engine) : second processeur RS4000 avec 2 Mio de mémoire eDRAM dédiée.
  • Deux processeurs graphiques : 3D Curved Surface + 3D Polygon (Core 1) et moteur de rendu 3D et de traitement des surfaces (Core 2), cadencé à 166 MHz sur un bus 256 bits, 2 Mio mémoire vidéo eDRAM à 5,3 Gio/s pour une puissance de traitement maximale de 664 M pixels/s, 34 M polygones/s (T&L).
  • Processeur audio (Sound Core Virtual Mobile Engine) : DSP 128 bits reconfigurable, 5 GFLOPS.
  • Décodeur matériel MPEG-4 AVC (H.264) Main Profile Level3.
  • Micro intégré

PSP N1000 (Go)

psp-go.jpg

En cours de rédaction par Mickleman

Connexion à l'ordinateur

Détection

[Ubuntu Dapper] : la PSP est reconnue directement comme un lecteur de musique ordinaire et montée automatiquement. Cependant, vous pouvez aussi la définir dans le fstab et la gérer comme un disque amovible. Elle est considérée comme un disque sd ? Une fois branchée, faites un dmesg ou fdisk pour récupérer sous quelle adresse disque elle est placée:

 $ dmesg
[4296824.734000] usb 4-1: new high speed USB device using ehci_hcd and address 4
[4296824.849000] scsi1 : SCSI emulation for USB Mass Storage devices
[4296824.849000] usb-storage: device found at 4
[4296824.849000] usb-storage: waiting for device to settle before scanning
[4296829.850000]   Vendor: Sony      Model: PSP               Rev: 1.00
[4296829.850000]   Type:   Direct-Access                      ANSI SCSI revision: 00
[4296829.854000] SCSI device sdb: 985088 512-byte hdwr sectors (504 MB)
[4296829.855000] sdb: Write Protect is off
[4296829.855000] sdb: Mode Sense: 00 6a 20 00
[4296829.855000] sdb: assuming drive cache: write through
[4296829.861000] SCSI device sdb: 985088 512-byte hdwr sectors (504 MB)
[4296829.862000] sdb: Write Protect is off
[4296829.862000] sdb: Mode Sense: 00 6a 20 00
[4296829.862000] sdb: assuming drive cache: write through
[4296829.862000]  sdb: sdb1
[4296829.865000] sd 1:0:0:0: Attached scsi removable disk sdb
[4296829.865000] sd 1:0:0:0: Attached scsi generic sg1 type 0
[4296829.873000] usb-storage: device scan complete
[4296830.927000] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
$ fdisk -l
Disk /dev/sda: 164.6 GB, 164696556032 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       20023   160834716    b  W95 FAT32
Disk /dev/sdb: 504 MB, 504365056 bytes
32 heads, 32 sectors/track, 962 cylinders
Units = cylinders of 1024 * 512 = 524288 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         961      491789+   6  FAT16 
$ mount -l
...
...
...
/dev/sdb1 on /media/psp type vfat (rw,nosuid,nodev,quiet,shortname=mixed,uid=100 0,gid=1000,umask=077,iocharset=utf8)

Voilà, ça devrait être bon !

NB Un disque externe USB prend la PSP comme point de montage nommé sdb1, c'est certainement différent pour vous. La commande mount -l est celui de l'auto-détection de la PSP, avant de toucher au fstab. Normalement le montage automatique fonctionne et vous pouvez manipuler les fichiers sur la PSP.
Attention ! Les fichiers ne s'écrivent pas sur la PSP quand vous les déposez sur la carte mémoire (PSP 1000/2000/3000) ou sur la mémoire interne (PSPGo). Il faut donc retirer la console de façon convenable. Pour cela, un clic droit sur l'icône représentant la PSP, puis Retirer le volume sans risque. Vous pouvez alors débrancher votre console de votre ordinateur !

Encoder les vidéos

La PSP est capable de lire un certain nombre de formats vidéo, comme documenté sur le site US de Sony:

The PSP system supports the following video and movie file formats:
  • MemoryStick™ Video Format
    • MPEG-4 Simple Profile (AAC)
    • H.264/MPEG-4 AVC Main Profile (CABC)(AAC) and Baseline Profile (AAC)
  • MP4
    • MPEG-4 Simple Profile (AAC)
    • H.264/MPEG-4 AVC Main Profile (CABC)(AAC) and Baseline Profile (AAC)
  • AVI
    • Motion JPEG (Linear PCM)
    • Motion JPEG (u-Law)

D'autre part, la résolution native de la PSP est 480x272. Mais ces informations sont loin d'être suffisantes pour pouvoir encoder des vidéos lisibles par une PSP.

Dans les faits, après recherches sur le web et nombreux tests, cela se traduit par les caractéristiques plus précises suivantes:

Conteneur et codecs

Résolutions Supportées

Attention, cette section ne parle que les PSPs avec firmware officiels. Les firmwares modifiés ont des caractéristiques différentes – meilleures la plupart du temps:

Les logiciels de transcodage

"Transcodage" signifiant en vidéo tout simplement "conversion de format".

Handbrake

Pour transcoder des DVDs vers la PSP, le plus simple est sans doute d'utiliser Handbrake, un soft Open Source qui possède une version en ligne de commande pour Linux.

Typiquement, une simple commande comme:

./HandBrakeCLI -i /media/cdrom0/VIDEO_TS -L -N -f mp4 -w 720 -l 480 -m -e x264 -x level=30:trellis=1:cabac=1 -S 700 -2 -E faac -B 128 -a 3 -R 48 -o "VIDEO.mp4"

… permet de créer un fichier lisible sur la PSP de 700MB max (qualité UMD Vidéo), au format NTSC (720x480), qui sera d'ailleurs lu en pleine résolution sur une télé si on utilise une PSP Slim & Lite.

Afin d'éviter de stresser inutilement les lecteurs de DVD, il vaut mieux faire une copie locale avec vobcopy (vobcopy -m).

Il existe une interface graphique en paquet deb pour amd64 et i386 ici :

https://handbrake.fr/?article=download

AVIDEMUX

Pour transcoder des fichiers AVI, un des meilleurs softs disponibles pour la PSP en ce moment (juin 2009) est sans doute avidemux, un outil assez impressionnant de conversion et travail sur les fichiers AVI.

Pour la PSP, en particulier pour les formats en résolution élevée, il faut utiliser la version SVN de la 2.4. sous Ubuntu (ou disponible directement dans les dépôt sous Jaunty), voir les miroirs proposés sur le site de avidemux, cela ça marche très bien.

Méthode de conversion pour obtenir du 480x272 sur un firmware officiel récent - tutoriel très rapide - :

Le fichier résultant doit être stocké, non pas dans "/MP_ROOT" mais dans "/VIDEO". Il n'y a pas de convention de nommage particulière.

Attention: cette méthode fonctionne bien pour les grandes résolutions, mais il faut faire quelques manipulations supplémentaires pour les plus petites résolutions: il faut en effet éditer à la main les filtres vidéo qui convertissent l'image vers la résolution cible.

PSPVC

Une nouvelle version de ce soft est disponible depuis le 13 mars 2007 dans sa version 0.3.
Voici les nouveautés ajoutées depuis la version 2.0 :

Plus d'informations sur Le site officiel de pspvc


C'est un soft graphique (basé sur ffmpeg) qui permet d'encoder des vidéos sous format de la PSP : MPEG4/SP (all firmware), H264/AVC (firmware 2.0+) ou H264/AVC 480x272 (firmware 3.03-OE-B+). Très simple d'utilisation et d'installation une fois les dépendances installées.

Les bibliothèques indiquées pour les dépendances doivent être installées avant, et en version de développement (dev). Pour les installer (sous feisty), installez les paquets nasm yasm libfaac-dev libxvidcore4-dev liba52-0.7.4-dev libgtk2.0-dev

Installation

Télécharger l'archive du programme sur le site. Décompresser le fichier dans votre répertoire personnel, déplacez-vous dans le dossier créé et ensuite :

sudo ./install.sh

pour exécuter le programme, dans un terminal :

pspvc

Installation alternative

Note: le script install.sh lance la compilation/installation de ffmpeg qui est empaqueté avec. Ce n'est pas forcément une bonne idée. Vous pouvez juste aller chercher dans le repetoire archives les sources de pspcv, et compiler à partir de là.

 tar xfvz pspvc-0.3.tar.gz 
cd pspvc-0.3
./configure
make
sudo make install

Si ./configure se termine par un message expliquant qu'il manque une dépendance, alors que vous êtes sûr de bien l'avoir déjà, c'est sûrement qu'il manque la version de développement du paquet (les "headers"). Il vous manquera donc certainement le paquet "libgtk2.0-dev", même si vous êtes sous Gnome et que vous avez déjà tous les paquets gtk 2.0 dont "libgtk2.0".

Utilisation

Les vidéos mpeg4 vont dans MP_ROOT/100MNV01 et celles encodées en H264 dans MP_ROOT/100ANV01

WinFF

WinFF permet de convertir à peu près n'importe quoi dans un format lisible par la PSP.

Consultez la page WinFF pour plus d'informations.

Une video de 700mo prendra plus d'un Go après avoir été convertie en mp4 en mode H.264 , il faudra modifier les fréquences d'échantillonage si vous tenez a convertir comme ça , sinon préferez le Xvid for psp:-D

Gérer la PSP

qPSP Manager

qPSP Manager est un outil créé par Bernat Ràfales Mulet pour gérer sa PSP, il permet entre autres gérer les PBP, compresser/décompresser les ISO/CSO, gérer les sauvegardes de jeux… Il est aussi capable de transférer le tout sur votre PSP à partir d'Ubuntu.

Les menus

  1. "PBP File" vous permet de customiser vos homebrew (Devhook, IRShell, ….)
  2. "ISO Files" vous permet de manipuler un ISO, compresser un ISO en CSO ou décompresser un CSO en ISO et de transférer le tout sur votre PSP.
  3. "Savegames" quand à lui vous permet de transférer tout ou une partie de vos sauvegardes de l'ordinateur vers votre PSP et inversement.
  4. "Options", demande de confirmation pour effacement ou écrasement d'une sauvegarde, cacher vos "données endommagées", choisir "l'emplacement" de votre PSP et la possibilité de sauvegarder vos choix d'options Save Preferences

Installation

Il y a deux méthodes pour l'instant. Pour la première, vous devrez compiler le programme avant de pouvoir l'utiliser, pour la seconde, vous n'aurez qu'a installer le paquet.

La seconde méthode est déconseillée car le paquet disponible est en version 1.3 et le programme est aujourd'hui en version 2.0.2, donc privilégiez la première méthode pour être à jour

Première méthode

  1. Installez les paquets build-essential libqt4-dev zlib1g zlib1g-dev qt4-dev-tools
  2. si vous avez les paquets suivants d'installer: qt3-dev-tools libqt3-mt-dev, Utilisez la commande qmake-qt4 a la place de qmake ce qui evitera de compiler avec la mauvaise version de qt et donc de generer des erreurs.
  3. Téléchargez le fichier source qpspmanager-X.X.X.tar.gz depuis le site officiel
  4. Décompressez le quelque part (votre dossier personnel /home/nomdutilisateur vera l'affaire).
  5. Ouvrez une console et tapez :
    cd qpspmanager-X.X.X
  6. Ensuite on va commencer à compiler, tapez :
    qmake
  7. Ensuite :
    make
Il peut arriver que la commande make donne :
 src/isocompressor.h:38: error: 'uint32_t' does not name a type 

Dans ce cas, éditez le fichier /src/isocompressor.h en vérifiant que les 2 lignes ci dessous soient présente : (Ajouter la/les lignes manquantes )

# include <cstdint>
la ligne
# include <iostream> 

.

Puis lancez la commande qmake. Enfin éditez le fichier Makefile fraichement créé en remplaçant

CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
par
CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) -std=c++0x
  1. Enfin, installez le tout en tapant :
    sudo make install
ATTENTION : version 2.0.2 buguée au niveau de l'installation. La commande sudo make install ne sert à rien, il faudra manuellement copier le binaire :
sudo cp /home/nomdutilisateur/qpspmanager-X.X.X/bin/QPSPManager /usr/bin/qpspmanager

Ce bug sera résolu dans la future version

  1. Voilà l'installation est finie, pour lancer le programme, tapez :
    qpspmanager

Seconde méthode

  1. Téléchargez le paquet

si le lien est cassé, ce paquet est aussi disponible sur sourceforge : télécharger le ici

  1. Double-cliquez sur l'archive.deb pour l'installer. Suivez simplement les instructions.
  2. Ensuite attendez jusqu'à la fin de l'opération et lancez QPSPManager en tapant :
qpspmanager


Les images .iso et .cso en ligne de commandes

L'outil qui permet la compression/décompression des fichiers ISO est ciso disponible dans le dépôt universe pour feisty (peut-être autre part aussi mais en tout cas il est là)

Installation

Pour l'installer tapez dans un terminal

sudo apt-get install ciso

Utilisation

ciso niveau fichierentree fichiersortie

ISO > CSO

Le niveau de compression doit être compris entre 1 et 9

Exemple

ciso 5 fichier.iso fichier.cso
CSO > ISO

Le niveau de compression doit être 0.

Exemple

ciso 0 fichier.cso fichier.iso

Une interface graphique pour ciso

Si vous êtes allergique a la ligne de commande il existe une interface graphique : Cso-Dax compressor . C'est un logiciel pour windows mais il existe une version linux qui utilise ciso.

Installation

Il faut télécharger l'archive a cette adresse http://psp.ducseb.net/download/cso-dax/cso-dax_compressor_0.34_linux.zip

Ensuite décompressez là dans votre répertoire personnel.

Maintenant il faut copier 3 fichiers dans : /usr/bin

Pour ça ouvrez un terminal et tapez

sudo cp "/home/VOTRE NOM/CSO DAX COMPRESSOR 0.34 Linux/FR/bin/ciso" "/usr/bin"   (ceci copie le fichier ciso)

Puis

sudo cp "/home/VOTRE NOM/CSO DAX COMPRESSOR 0.34 Linux/FR/bin/csoCompiler" "/usr/bin"   (ceci copie le fichier csoCompiler)

et enfin

sudo cp "/home/VOTRE NOM/CSO DAX COMPRESSOR 0.34 Linux/FR/bin/daxcr" "/usr/bin"   (ceci copie le fichier daxcr)

Plus simple : taper dans un terminal

sudo nautilus   (sous Ubuntu)
ou
sudo konqueror   (sous Kubuntu)
ou 
sudo thunar   (sous Xubuntu)

et puis faites glisser simplement les fichiers: ciso,csoCompiler et daxcr.

Pour lancer l'interface il suffit de taper en respectant la casse

csoCompiler

Développement et programmation

Même si le développement de portails (pages web consultables via le navigateur de la PSP) est possible avec une PSP en firmware officielle (mise à jour logicielle), programmer sur PSP et exécuter vos programmes amateurs (ou ceux d'autres développeurs) requiert d'avoir une PSP avec un firmware modifié (custom firmware).

Pour cela, je vous invite à installer le custom firmware 6.20 PRO-B7, 6.35 PRO-B7 ou 6.39 PRO-B7 (dernière version stable en date en ce 18 Juillet 2011) : tutoriel d'installation. Cette version a le mérite d'être compatible toutes PSPs (PSP1000/2000/3000/Go). Il suffira simplement de mettre à jour votre console en firmware 6.20, 6.35 ou 6.35 selon votre choix et d'installer le custom firmware qui correspond.

Précisons également que flasher sa PSP pour installer un custom firmware est une manipulation légale !

Passons aux choses sérieuses. Pour programmer sur votre console PSP, sachez que le code sera fait sur votre ordinateur, mais celui-ci n'est pas nativement capable de compiler pour une PSP. Il va donc falloir procéder à l'installation d'un environnement de développement pour pouvoir compiler vos programmes à lancer sur votre PSP (on appelle cela de la cross-compilation).

Installation des outils

Tout d'abord, il faut savoir que ces quelques outils vous permettront de programmer sous 3 langages différents sur la PSP:

- Langage C : un standard, et celui que je vous conseillerai pour débuter.

- Langage C++ : un langage orienté objet (mettant en œuvre les notions de classe, héritage, surcharge d'opérateurs…). Bien plus complexe, une bonne base en C est recommandée si vous voulez mieux assimiler ce langage.

- Langage Assembleur MIPS R(S)4000 : le langage d'assembleur de la PSP, seulement pour les expérimentés, et n'est nécessaire que pour ceux voulant faire du hack sur la console ou créer un custom firmware, faire du reverse engineering.

Installation du PSPSDK

via psp.jim.sh

Installez les paquets suivants :

build-essential autoconf automake bison flex libncurses5-dev libreadline-dev libusb-dev texinfo libgmp3-dev libmpfr-dev subversion

Modifiez le fichier .bashrc et mettez-y ceci à la fin :

export PSPDEV="/home/tuto/pspsdk"
export PSPSDK="$PSPDEV/psp/sdk"
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin"

Récupérez les sources :

svn co http://psp.jim.sh/svn/psp/trunk/psptoolchain

Remplacez toutes les occurences de svn://svn.ps2dev.org par http://psp.jim.sh/svn dans le dossiers scripts .

Puis installez le tout :

. ~/.bashrc
sudo ./toolchain-sudo.sh
via un dépôt

Ajoutez le dépôt suivant à vos sources de mises à jour en tapant la commande suivante dans un terminal (Applications → Accessoire → Terminal):

echo "deb http://terbaddo.free.fr/debian default main" | sudo tee -a /etc/apt/sources.list

Rechargez la liste des paquets :

sudo apt-get update

Enfin, installez le paquet psptoolchain

sudo apt-get install psptoolchain

Contributeurs : Terbaddo, Naoki, Tioneb, Krevan et MrZeroo00, chdorb ,Sarom ,ignace72