Programmation Playstation 2
Programmation Playstation 2
Architecture et Programmation
9 mai 2003
Index général
1. Introduction 2
2. Architecture de la PS2 5
2.1. Moteur d'émotion 6
2.2. Processeur d'E/S 8
2.3. Synthétiseur Graphique (SG) . . . . . . . . . . . . . . 8. . . . . . . . . . . .
1
Chapitre 1
Introduction
La PlayStation 2 (PS2) de Sony, a été l'un des produits les plus attendus de 2001. Les ca-
Les caractéristiques techniques de la console sont impressionnantes.
Cette console a été conçue dès le départ avec un objectif clair : les jeux 3D. C'est pourquoi
que tout le matériel est orienté vers la possibilité de créer des jeux qui emmènent l'utilisateur à une
immersion dans un monde audiovisuel en trois dimensions.
La PS2 est l'évolution de la première console développée par Sony, la Playstation (PSX),
qui a été mise sur le marché en 1995. La PSX était l'une des premières consoles dont les jeux
se distribuaient sur support CDROM. Les jeux de la PS2 se distribuent sur DVD bien qu'ils soient également
est capable de reproduire les jeux de la PSX sur CDROM. Grâce à la grande capacité des
Les DVD (4,7 Go), les jeux de la PS2 sont remplis de vidéos, de musique et de son 3D. De plus
de jeux, la PS2 peut lire des CD audio et des films DVD, donc c'est un appareil complet.
plateforme de divertissement.
Le panneau frontal contient, en plus du tiroir pour les DVD/CD :
2 emplacements pour les cartes mémoire qui sont normalement de 8 Mo, bien que le format soit
le même que ceux de la PSX donc ils peuvent être échangés.
2 emplacements pour les nouvelles manettes, les anciennes manettes de la PSX fonctionnent également.
2 ports USB qui peuvent être utilisés avec tout appareil USB compatible comme
claviers, souris, imprimantes, etc.
L'arrière contient des connecteurs pour la sortie télévision, pour la télévision haute définition.
y sorties sonores surround, DTS et Dolby Digital 5.1.
2
CHAPITRE 1. INTRODUCTION 3
Les manettes standard, Dual Shock 2, ont 15 boutons ; tous sont analogiques, sauf Ana-
journal, Démarrer et Sélectionner.
La télécommande se compose de :
2 joysticks analogiques avec retour de force (en haut à gauche et en haut à droite)
Le tableau comparatif suivant montre quelques consoles disponibles sur le marché cette année
de présentation de la PS2 et des consoles les plus récentes. Les données fournies par Sony et
Microsoft n'est pas réaliste, ce sont les données maximales, tandis que celles de Nintendo et Sega sont
mesurés dans un vrai jeu :
Architecture de la PS2
Moteur d'émotion (EE) : Le moteur d'émotion est le cœur de la PS2, et la partie qui la rend
unique. ElEmotion Engine réalise les fonctions suivantes :
Le résultat du travail de l'Emotion Engines est l'affichage de listes, c'est-à-dire des séquences de co-
Les mandos de rendu sont envoyés au synthétiseur graphique (GS).
Synthétiseur Graphique (GS) : Le synthétiseur graphique recueille les listes d'affichage qu'il reçoit du
Processeur sonore (SP) : Le SP est ce que l'on pourrait appeler la "carte son" de la PS2. C'est
capable de reproduire du son numérique 3D.
5
CHAPITRE 2. ARCHITECTURE DE LA PS2 6
Le rendement combiné de tous ces éléments permet des calculs physiques compliqués, géné-
récit de surfaces NURBS et transformations géométriques 3D.
En plus de traiter les données à 128 bits, il est possible de traiter et de transférer des volumes massifs.
de données multimédias. Les 32 Mo de RAM de mémoire principale qui soutiennent la vitesse de la
Le processeur utilise de la mémoire vive Rambus DRAM à deux canaux pour atteindre une bande passante de 3,2 Go/s.
Environ quatre fois le rendement des mémoires PC-100 qui étaient montées dans les derniers PC.
quand la PS2 est sortie sur le marché.
Avec l'incorporation du décodeur MPEG-2 dans une puce, il est possible de traiter en parallèle
données graphiques 3D de haute résolution et images DVD de haute qualité.
Avec une capacité de calcul en virgule flottante de 6,2 GFLOPS/s, les performances de ce
Le CPU atteint celui de certains supercalculateurs. Lorsqu'il est appliqué au traitement des trans-
formaciones de perspective et géométriques, qui sont celles qui sont normalement utilisées pour le calcul
de graphiques en 3D, la performance atteint 66 millions de polygones par seconde. Cette performance
c'est comparable aux stations graphiques utilisées dans la production de films d'animation.
CHAPITRE 2. ARCHITECTURE DE LA PS2 8
cache améliorée, une nouvelle architecture DMA haute performance qui permet une augmentation
de jusqu'à 4 fois dans le transfert de données. L'interface série a également été mise à jour et est
environ 20 fois plus rapide que celle de la PSX.
L'interface USB est compatible avec OHCI (Open Host Controller Interface) et peut gérer
jar des transferts de données de 1,5 Mbps à 12 Mbps. L'IEEE 1394 peut gérer des débits de
transfert de 100 Mbps à 400 Mbps.
L'utilisation de ces interfaces permet la connectivité future de la PS2 à une grande variété de
d'autres systèmes comme les VCR, caméras numériques, imprimantes, joysticks, claviers, souris, etc.
nos par seconde et le système peut dessiner 150 millions de particules par seconde. Avec cela
capacité, il est possible de générer des images de qualité cinématographique. On peut atteindre 20 millions de
polygones dessinés de manière soutenue utilisant le Z-buffering, les textures, les lumières et les transparences.
Cette nouvelle architecture peut exécuter un traitement en plusieurs passes de manière récurrente.
siva et opérations de filtrage à haute vitesse sans l'assistance du processeur principal ou l'accès au
bus principal.
Chapitre 3
Les détails de la protection anti-copie que Sony utilise pour sa PS2 n'ont pas été publiés.
jamais, les données connues ont été obtenues par ingénierie inverse par les
créateurs des systèmes anti-copie. En raison de problèmes juridiques et/ou d'intérêts commerciaux, il est di-
difficile de trouver publiée l'information obtenue par ingénierie inverse donc il se peut que la
la description qui suit n'est pas tout à fait exacte.
La PS2 accepte les formats CDR audio, CDROM mode XA2, DVD-Video et DVD-ROM.
La PS2 ne fournit aucun schéma de protection contre les backups CDR audio et
utilise la protection standard pour les DVD-vidéo.
10
CHAPITRE 3. PROTECTION ANTI-COPIE DE LA PS2 ET MODCHIPS 11
que le format DVD est antérieur à la CPSA et donc ne l'implémente pas complètement. La
La spécification de la CPSA peut être trouvée dans [8].
Actuellement, toutes les protections des DVD ont été brisées.
Codes de détection) qui utilisent des informations redondantes sur le secteur pour pouvoir détecter et
corriger les erreurs de lecture. Tant les codes ECC que EDC sont calculés par l'enregistreur à la
heure d'écrire les secteurs.
La protection repose sur l'utilisation de certains enregistreurs spéciaux qui permettent de modifier cela.
codes ECC et EDC, dans le cas de la Playstation, les codes des 16 premiers secteurs de
les disques ont été manipulés. Ces secteurs contiennent des zéros dans l'information correspondante
au EDC et au ECC. Les enregistreurs normaux en essayant de copier ces disques, corrigent les codes
EDC et ECC automatiquement. La Playstation, ne trouvant pas les zéros dans ces secteurs, suppose
nous avons introduit un CD de musique et il affiche le menu audio ou nous dit que le CD n'est pas
valide.
D'autre part, les pistes de données sont stockées dans le système de fichiers ISO9660.
Lorsque toute piste de données est suivie d'une piste audio, il doit y avoir une séparat
ration à suivre de données d'au moins 150 secteurs (environ 2 secondes). Appliqué à
Le disque de PlayStation a toujours 150 secteurs remplis de zéros (0) derrière la piste.
du jeu. Le but de cette séparation 'physique' est d'avoir un tampon pour 'aider' à
lecteurs de CD qui ne sont pas toujours capables de passer directement de données à audio ou vice versa
sans séparation minimale.
De plus, lorsqu'une piste audio suit une piste de données, elle doit commencer par une autre séparation.
tion d'au moins 150 secteurs qui sert à la même chose que le postgap : séparer les pistes de données
et audio. Sur la PlayStation, les pregaps que nous trouvons normalement sont de 150 secteurs (2
secondes) ou 300 secteurs (4 secondes). Lorsque les pregaps séparent deux pistes audio, ils peuvent
être de 0 à 150 secteurs selon le disque.
Enfin, le leadout est écrit directement par l'enregistreur (sauf dans certains modèles)
CHAPITRE 3. PROTECTION ANTI-COPIE DE LA PS2 ET MODCHIPS 12
et son contenu n'est pas modifiable par l'utilisateur. Il n'est pas non plus possible de lire le lead-out d'un CD
Blocage régional
En plus de la protection contre les copies illégales, la console utilise un système de 'verrouillage re-
régional'. Cela se fait parce que Sony a des accords différents sur les marchés asiatiques, américain
et européen et donc ils doivent protéger les jeux pour qu'ils ne puissent être utilisés que dans
la zone géographique pour laquelle ils ont été répartis. Le blocus régional fonctionne de la manière suivante
manière
Les cinq premiers secteurs (000000-000004) contiennent les informations de la zone pour laquelle
un certain jeu est édité. Ils identifient essentiellement le CD comme Japonais, Américain ou Eu-
ropeo. Si l'information envoyée par le CD ne correspond pas à celle que la console a stockée,
revenez confirmer que le CD introduit n'est pas valide.
le format physique où le jeu s'exécute, etc. Pratiquement toutes ces protections ont été contournées.
CHAPITRE 3. PROTECTION ANTI-COPIE DE LA PS2 ET MODCHIPS 13
Il est facile de trouver des patchs sur Internet spécifiques à chaque jeu et qui désactivent la protection.
de ce jeu permettant sa copie.
jeu sans avoir besoin de le patcher (tant que le jeu n'implémente pas une protection matérielle
o logiciel supplémentaire).
CHAPITRE 3. PROTECTION ANTI-COPIE DE LA PS2 ET MODCHIPS 15
3.5. Modchips
Le système le plus confortable, bien que aussi le plus compliqué à installer, est l'utilisation de Mod-
Les Modchips interceptent les données de protection anticopie envoyées par le disque et envoient
ceux que la Playstation attend. De cette manière, il suffit d'insérer la copie et la Playstation s'auto-
mathématiquement, il le reconnaîtra comme valide.
Cette méthode n'a aucune limitation des méthodes de déséchange, le seul inconvénient est
que, selon le type de puce, il faut réaliser jusqu'à 40 soudures à différents points pour
pouvoir tromper le BIOS.
Le modchip le plus fiable à ce jour est le Messiah 2. L'utilisation et la vente de ces puces sont
parfaitement légal en Espagne, c'est pourquoi on peut les trouver dans diverses boutiques pour environ 40
Et il existe même des magasins qui vendent la Playstation avec la puce installée, cela dit, sans garantie.
Si nous avons l'image du système de fichiers (iso9660), nous pouvons utiliser cdrecord.
graver le CD, la commande serait :
ou bien
Pour générer le système de fichiers du CD avec les fichiers des programmes que nous sommes en train de
en utilisant lemkisofs qui est inclus avec les cdrecord.
générer l'image avec notre programme, nous mettons tous les fichiers qui vont sur le CD dans un
répertoire et nous avons utilisé la commande suivante :
Si nous voulons que le CD généré fonctionne avec les méthodes swaphay, il faut le patcher pour que
le SYSTEM.CNF est à la bonne position. Normalement, les fichiers sont stockés dans la
images ISO classées par ordre alphabétique. Dans le cas de nos programmes d'essai, étant donné que...
queños, le SYSTEM.CNF se trouvera en dessous du secteur 12231 de l'image. Pour voir la
position où se trouve le fichier dans l'iso nous utiliserons la commande isoinfo que l'on trouve
dans le même paquet que mkisofs.
Normalement, nous devrons générer un fichier vide pour pousser vers le SYSTEM.CNF à la
positionnement pratique. Comme exemple, nous allons voir le processus de création d'unaisopara la démo
starsim. Une fois la démo compilée, nous avons un fichier exécutable, starsim.elf, ce fichier est le
que nous graverons sur le CD avec le SYSTEM.CNF que nous devrons générer pour l'occasion.
# cd starsim
# ls
starsim.elf system.cnf
# chat system.cnf
cdrom0:\STARSIM.ELF;1
1.10
PAL
# cd ..
# mkisofs -o starsim.iso starsim
# isoinfo -l -i starsim.iso
Liste des répertoires de /
d--------- 0 0 0 2048 6 mai 2003 [2302] .
d--------- 0 0 0 2048 6 mai 2003 [ 23 02] ..
---------- 0 0 0 126615 6 mai 2003 [ 24 00] STARSIM.ELF;1
---------- 0 0 0 56 6 mai 2003 [8600] SYSTEM.CNF;1
Comme nous pouvons le voir, le SYSTEM.CNF est en position 86. Chaque secteur de l'image iso
Il est de 2048 octets. Par conséquent, il faudra déplacer le SYSTEM.CNF 12231 - 86 = 12145 secteurs.
Nous créons donc le fichier, que nous appellerons 0.0 pour qu'il soit le premier, et nous régénérons la iso.
CHAPITRE 3. PROTECTION ANTI-COPIE DE LA PS2 ET MODCHIPS 17
L'image ISO patchée est celle que nous graverons sur le CD avec cdrecord.
Il existe un programme, avec code source, appelé arpatch qui à partir de l'image iso calcule
automatiquement la taille du fichier 0.0 et le génère. Le programme est également capable de par-
chear le fichier SYSTEM.CNF. En étudiant les sources du programme, nous pouvons vérifier que le
Le correctif effectué sur le SYSTEM.CNF est que s'il est inférieur à 56 octets, il ajoute à la fin des caractères.
jusqu'à ce qu'il atteigne cette taille. Nous pouvons trouver le programme à [2, 1]. La finalité
Je ne comprends pas cette modification au SYSTEM.CNF.
Théoriquement, ces étapes devraient créer une image valide pour les méthodes d'échange.
réalité, avec les nouvelles versions de mkisofs ça ne fonctionne pas. En comparant les images iso qui fonctionnent
cionan, avec celles générées par cette méthode, j'ai vu que le mkisofsgénère une section pour le
arrivée depuis CD, bien que cette section ne soit pas utilisée. Le problème est que cette section occupe
un secteur et donc le répertoire racine commence au secteur 23. Comme l'Action Replay ne
ce secteur de démarrage, le répertoire racine commence au secteur 22. Étant donné que la PS2 n'a pas été
au courant du changement de disque et comment il met en cache la position où il trouve le répertoire
raiz, l'image ne fonctionne pas, il faudrait déplacer un secteur tout le système de fichiers macha-
cando le secteur de démarrage et en réécrivant la position du répertoire racine dans la description du
volume principal qui est ce qui est réellement en cache et contient toutes les limitations du
méthode swap.
Le programme ps2mkisofs génère l'image ISO avec le répertoire racine à la position correcte.
Ainsi, les isos générées par ce programme fonctionnent parfaitement sur la PS2.
À partir de la version 1.3 de l'AR2, le système de chargement a changé et il n'est plus nécessaire que le
SYSTEM.CNFse se trouve dans le secteur 12231, donc des images non patchées fonctionneront.
tant que le répertoire racine commence au secteur 22 de l'iso.
Chapitre 4
La PS2 TEST est identique à une PS2 normale mais peut lire des CD-R sans avoir besoin de modchips.
La PS2 TOOL est beaucoup plus grande qu'une PS2 normale en raison de l'augmentation de la
composants par rapport à celui-ci, parmi les différences, se distinguent :
Sony fournit à des développeurs cette machine de manière à ce qu'ils puissent compiler leur code et se
exécute sur le matériel de cette PS2. Sony ne fournit que le matériel et les bibliothèques, ainsi que
conseils et exemples.
Il existe une série d'environnements de développement commerciaux. Parmi eux, les deux plus connus :
ProDG de Snsys. Ils ont différents modules, y compris un très intéressant appelé pro-
vue qui permet, grâce à l'utilisation de l'interface firewire, de connecter une PS2 modèle DTL-H
18
CHAPITRE 4. MÉTHODES DE PROGRAMMATION DE LA PS2 19
Pour avoir accès à ces outils, il est nécessaire d'être un développeur officiel de Sony et d'être
enregistré en tant que tel.
un clavier usb
Le premier contient l'environnement d'exécution (RTE) et les manuels de la PS2 que Sony
s'habitue à inclure dans le kit de développement.
Le deuxième disque contient tout le logiciel de la distribution qui peut être installé sur le
disque dur.
Le noyau Linux contient des pilotes qui masquent le matériel et empêchent l'accès direct à l'IOP.
Sony ne fournit que les binaires de ces pilotes, ce qui impose des limitations lors de
programmer la PS2 avec ce kit. Par exemple, ces pilotes ne fournissent pas d'interface avec le port
Firewire, donc il est impossible de programmer ce port.
Le Kit vient avec le compilateur GNUgcc, lesxfreey et de nombreuses autres utilités. Donc,
nous avons un environnement de développement complet. Bien que les programmes ou jeux qui sont développés
Le kit Linux ne pourra être exécuté que sur une PS2 qui dispose du kit.
Le processeur principal est un MIPS R5900[16], ce processeur implémente toutes les ins-
instructions du MIPS III ISA, certaines du MIPS IV et un ensemble propriétaire d'instructions
nes multimédia. Les informations sur l'ensemble des instructions et leur utilisation se trouvent dans
[17, 18]
Il existe des outils de développement libres capables de générer du code pour tous les proce-
sadores de la PS2. Ces outils sont :
binutils est une collection d'outils multiplateformes pour travailler avec des fichiers exécutables.
céréales, parmi lesquelles se distinguent :
gcc est la collection de compilateurs de GNU. Ces compilateurs sont capables de générer du code
pour un grand nombre de plateformes. Nous sommes particulièrement intéressés par le compilateur C.
ps2lib est une bibliothèque open-source pour développer directement avec la PS2. Cette bibliothèque a
a été développée à partir de l'ingénierie inverse. La bibliothèque fournit un grand nombre de
fonctions de base pour accéder au matériel de la PS2. Comme la PS2 a deux CPU (EE et
L'IOP), la bibliothèque est composée de deux parties, chacune avec des fonctions pour un CPU.
Newlib est la bibliothèque qui implémente les fonctions de la norme C (libc) et les fonctions ma-
thématiques (libm). C'est une bibliothèque de Cygnus utilisée dans de nombreux systèmes embarqués en raison de
La méthode la plus courante, étant la moins chère, consiste à le faire avec le Naplink. Le seul problème avec
Cette méthode consiste à utiliser un câble USB qui possède la puce PL-2301 ou PL-2302.
Une fois que nous avons le câble, nous connectons le PC à la PS2. Sur la PS2, nous exécutons le Naplink.
serveur, que nous devons avoir préalablement enregistré sur un CD, et sur le PC nous exécutons le Naplink
client. Depuis le client, nous pourrons indiquer à la PS2 l'exécutable à charger. Il existe des versions du
client pour Windows et pour Linux.
Chapitre 5
Dans ce chapitre, nous allons voir comment installer l'environnement de développement pour commencer à programmer.
la PS2. L'environnement de développement se compose des compilateurs croisés de C et d'assembleur
pour le EE et le IOP. Nous compilerons également les binutils afin de pouvoir programmer les uni-
données vectorielles en assembleur. Enfin, il faut installer les bibliothèques qui nous faciliteront la
tâche d'accès au matériel.
La méthode d'installation décrite est pour les machines Unix, bien qu'elle puisse également être installée
sous Windows en utilisant l'environnement Cygwin qui simule un environnement Unix sous Windows.
La première chose est de choisir le répertoire où l'environnement de programmation sera installé et de créer
la structure de répertoires qui abritera nos utilitaires et compilateurs pour la PS2. Dans ce
Dans ce cas, tous les composants seront installés dans le répertoire /opt/ps2dev. Créons la structure.
de répertoires avec :
# cd /opt
# mkdir ps2dev
# cd ps2dev
# mkdir ee iop newlib ps2lib
22
CHAPITRE 5. INSTALLATION DE L'ENVIRONNEMENT DE PROGRAMMATION RAW 23
A continuación, nous allons créer le script ps2dev.sh qui ira dans /opt/ps2dev et qui servira à mettre
les variables d'environnement nécessaires à la compilation. Il faudra exécuter ce script avant de commencer
à programmer. Ce n'est pas une mauvaise idée d'inclure les variables d'environnement dans le .bashrc pour qu'elles soient toujours présentes
/opt/ps2dev
EE=$PS2DEV/ee
IOP=$PS2DEV/iop
$PS2DEV/ps2lib
NEWLIB=$PS2DEV/newlib
CHEMIN=$CHEMIN:$PS2DEV/bin:$EE/bin:$IOP/bin
exporter PS2DEV EE IOP PS2LIB NEWLIB CHEMIN
Voyonsensuiteleprocessusd'installationdescompilateursnécessaires.
# source /opt/ps2dev/ps2dev.sh
# tar xzvf gnu-ee-binutils-gcc-1.1.tar.gz
# cd gnu-ee-binutils-gcc
# ./configure --prefix=$EE --target=mips64r5900-sf-elf
# faire LANGUES="c"
# faire installer
Cette version a quelques problèmes pour se compiler avec les derniers compilateurs, en voici quelques-uns
changements que j'ai dû faire pour que cela compile sur mon ordinateur :
#include "rtl.h"
#include <sys/utime.h>
par :
#include <utime.h>
par :
int devstudioflag;
par :
#include "parse.h"
Nous créons des liens symboliques vers les programmes récemment compilés pour que les noms soient plus
maniables
# cd /opt/ps2dev/ee/bin
# ln -s mips64r5900-sf-elf-addr2line ee-addr2line
# ln -s mips64r5900-sf-elf-ar ee-ar
# ln -s mips64r5900-sf-elf-as ee-as
# ln -s mips64r5900-sf-elf-c++filt ee-c++filt
# ln -s mips64r5900-sf-elf-gasp ee-gasp
CHAPITRE 5. INSTALLATION DE L'ENVIRONNEMENT DE PROGRAMMATION RAW 25
# ln -s mips64r5900-sf-elf-gcc ee-gcc
# ln -s mips64r5900-sf-elf-ld ee-ld
# ln -s mips64r5900-sf-elf-nm ee-nm
# ln -s mips64r5900-sf-elf-objcopy ee-objcopy
# ln -s mips64r5900-sf-elf-objdump ee-objdump
# ln -s mips64r5900-sf-elf-protoize ee-protoize
# ln -s mips64r5900-sf-elf-ranlib ee-ranlib
# ln -s mips64r5900-sf-elf-readelf ee-readelf
# ln -s mips64r5900-sf-elf-size ee-size
# ln -s mips64r5900-sf-elf-strings ee-strings
# ln -s mips64r5900-sf-elf-strip ee-strip
# ln -s mips64r5900-sf-elf-unprotoize ee-unprotoize
tahoe
# cd libiberty
# sh ./configure --target=dvp-elf --prefix=$EE
faire tout
# faire installer
# cd ../bfd
CHAPITRE 5. INSTALLATION DE L'ENVIRONNEMENT DE PROGRAMMATION RAW 26
Yasolo doit générer les liens correspondants avec des noms plus gérables :
# cd $EE/bin
# ln -s dvp-elf-addr2line dvp-addr2line
# ln -s dvp-elf-ar dvp-ar
# ln -s dvp-elf-as dvp-as
# ln -s dvp-elf-c++filt dvp-c++filt
# ln -s dvp-elf-gasp dvp-gasp
# ln -s dvp-elf-ld dvp-ld
# ln -s dvp-elf-nm dvp-nm
# ln -s dvp-elf-objcopy dvp-objcopy
# ln -s dvp-elf-objdump dvp-objdump
# ln -s dvp-elf-ranlib dvp-ranlib
# ln -s dvp-elf-readelf dvp-readelf
# ln -s dvp-elf-size dvp-size
# ln -s dvp-elf-strip dvp-strip
CHAPITRE 5. INSTALLATION DE L'ENVIRONNEMENT DE PROGRAMMATION RAW 27
5.4. PIO
Le processeur de l'IOP est supporté par les utilitaires standards de GNU, donc
nous utiliserons le gcc[23] et les binutils téléchargés depuis le site de GNU[22].
Compilation du gcc
# cd ..
# tar xzvf gcc-2.95.2.tar.gz
# cd gcc-2.95.2
# ./configure --prefix=$IOP --target=mipsel-sf-elfl
--with-gnu-ld --with-gnu-as --disable-shared
"c"
# make all-gcc
# su
# faire installer
# cd $IOP
# ln -s mipsel-sf-elfl-addr2line iop-addr2line
# ln -s mipsel-sf-elfl-ar iop-ar
# ln -s mipsel-sf-elfl-as iop-as
# ln -s mipsel-sf-elfl-gasp iop-gasp
# ln -s mipsel-sf-elfl-gcc iop-gcc
# ln -s mipsel-sf-elfl-ld iop-ld
# ln -s mipsel-sf-elfl-nm iop-nm
# ln -s mipsel-sf-elfl-objcopy iop-objcopy
CHAPITRE 5. INSTALLATION DE L'ENVIRONNEMENT DE PROGRAMMATION RAW 28
# ln -s mipsel-sf-elfl-objdump iop-objdump
# ln -s mipsel-sf-elfl-ranlib iop-ranlib
# ln -s mipsel-sf-elfl-readelf iop-readelf
# ln -s mipsel-sf-elfl-size iop-size
# ln -s mipsel-sf-elfl-strings iop-strings
# ln -s mipsel-sf-elfl-strip iop-strip
../ee-bin/bin/mips64r5900-sce-elf-
CHAPITRE 5. INSTALLATION DE L'ENVIRONNEMENT DE PROGRAMMATION RAW 29
CC = $(CPATH)gcc.exe
$(CPATH)dvp-as.exe
AS = $(CPATH)as.exe
LD = $(CPATH)ld.exe
$(CPATH)objcopy.exe
par:
$(EE)/bin
CC = $(CPATH)/ee-gcc
$(CPATH)/dvp-as
AS = $(CPATH)/ee-as
$(CPATH)/ee-ld
$(CPATH)/ee-objcopy
Il faut aussi compiler avec le compilateur normal de notre machine le fichier rawasm.c
qu'est-ce qui sera utilisé pour convertir une image de la démo aasm :
faire
Si tout s'est bien passé, l'exécutable main.elf aura été généré. Nous pourrons tester la démo avec le
Naplink, si nous possédons le câble approprié ou en enregistrant l'exécutable avec unsystem.cnfque
nous devrons le générer sur un CD et le tester directement.
Bibliographie
réseau PS2DEV.http://ps2dev.livemedia.com.au
[2] PS2DEV.http://ps2dev.sourceforge.net
L'Autre Côté.http://www.elotrolado.net
Technologies de protection.http://www.goldenpi.no-ip.org/drm/protection.shtml
Spécification CPSA.http://www.goldenpi.no-ip.org/drm/pdf/cpsa081.pdf
30
BIBLIOGRAPHIE 31
Processeurs MIPS.www.mips.com
Démo de Funslower.http://ps2dev.livemedia.com.au/kb//files/FSsource.zip