Guide de Démarrage
Outil deDéveloppementLogiciel
Sommaire
INTRODUCTION D 6 LE MEMBERS ONLY WEB SITE (SITE WEB RÉSERVÉ AUX МЕМВКЕЗ). иенен е 8 CONNECTION AUMEMBERS ONLY WEB mt. 8 LOGICIEL NÉCESSAIRE POUR SECONNECTER.....scsssssssesesseseeseecesseseesesesscsecsesscseesesacsseseesecaesessecssecesessessesecseeaecseesesesseeaeseeseease 8 IDENTIFICATEUR ETMOT DEPASSE ETRE MEMBRE DE NET YAROZE............... INFORMATIONSCOMPLEMENTAIRES- AIDE
CONTENU DU KIP: A ERE E 10
ENVIRONNEMENT DE DÉVELOPPEMENT, 12 MATÉRIEL LOGICIELS.
MISE EN PEACE... na ecos 14 CONNECTION DUMATÉRIEL ОНОН tao 14 ULC ET 15
POUR COMMENCER aria tdi RR ORE нр ООДО At 20 DÉMARRAGE IN 20 CONTENU DUREPERTOIRBQUICR.. san ten nr eerte HIR RR OH HUE ee ENEE ee 24 EXEMPLE DEPROGRAMME sense enne nennen rennen trn t innen etes tete инини ннн н н ннн н seen seen ана ини и ннн ннн ннн 26
EXEMPLE DE PROGRAMME ud as aa Na Gua adn 29 RUINAS 29 SOURCE DU PROGRAMME D. EXEMPLE: see SEENEN i RG ERE aw rre ERE YR X né anses aaa EA 29
EBCEURESCOMTLEMENTATIRESE ae air 41 PROGRAMMA TONE tada ela dado abes A a tad bales cath. 41
GRAPIHISME A AN 41
A Propos de Net Yaroze
Ce Que Vous Devez Savoir
Pour pouvoir commencer a utiliser votre Net Yaroze, il vous faut avoir une expérience de la programmation en C a un niveau suffisant ; vous devez aussi savoir utiliser un programme de traitement d’images 2D. De plus, un minimum de connaissance d’un outil de modélisation 3D, ainsi que d’un programme de création et
edition de sonsvous aidera á tirer le meilleur parti de votre kit Net Yaroze.
Les Manuels Net Yaroze
Il y atrois manuels dans votre kit Net Yaroze.
. Guide de Démarrage (ce document) Un livret d’introduction décrivant le contenu et les exigences du Net Yaroze Starter Kit (Kit de Demarrage Net yaroze). Il donne aussi des instructions pour mettre en place pas á pas les logiciels Net
Yaroze sur votre PC, et faire fonctionner des programmes Net Yarozesur votre console.
° Guide de l'utilisateur Un manuel de référence qui explique en detail comment écrire des programmes pour le systeme Net
Yaroze.
° Bibliothèque Un manuel donnant la liste des fonctions et structures des bibliothèques Net Yaroze, ainsi que leur
description.
Lectures Complémentaires
Voir « Lectures Complémentaires » au dos de ce manuel.
Introduction
Le Net Yaroze Starter Kit est un environnement intégré permettant de développer des logiciels pour Playstation sur votre ordinateur personnel. Une ceuvre développée sur un PC peut étre téléchargée puis
exécutée sur une Playstation spécifique, disponible uniquement pour les Membres de Net Yaroze.
Les Membres peuvent alors partager entre eux leurs créations et leurs connaissances, gráce á un site web
fourni par Sony Computer Entertainment, etréservé aux Membres.
Le Members Only Web Site (Site WelRéservéaux Membres)
Connection au Members Only Web Site
Les Membres ont acces à l'un des trois serveurs Net Yaroze, dont les adresses sont :
http://www.scei.co.jp/Net/ pour les Membres au Japon http://www.scee.sony.co.ukyaroze/ pour les Membres en Europe http://www.sony.com/Y aroze/ pour les Membres en Amérique du Nord
Logiciel Nécessaire pour seConnecter
Nous préconisons Netscape version 2.0 ou ultérieure comme browser nécessaire pour accéder au Members
only Web Site.
Identificateur et Mot dePasse
Votre identificateur (1D) et votre mot de passe (password) pour accéder au Members only Web Site seront
fournis avec votre Pack de Bienvenue (Welcome Pack).
Etre Membre de Net Yaroze
Une partie essentielle de Net Yaroze consiste en l'activité de ses Membres sur leur site web. En plus de vous permettre de partager les oeuvres que vous avez développées et d’apprécier les créations des autres Membres,
le Members only Web Siteproposera beaucoup d'autres activités.
InformationsComplémentaires - Aide
Sony Computer Entertainment utilise également le Members only Web Site pour fournir des données techniques supplémentaires ou des informations qui ne figurent pas dans la documentation. N’hesitez pas a
demander une information qui n'est pas présente.
Contenu du Kit
Les éléments suivants sont inclus dans le kit Net Yaroze:
1: DTL-H3001 NetYaroze Member’s PlayStation ou DTLH-3002 Net Yaroze PlayStation
(Cables d’alimentation et AV (RFU) inclus)
2. DTL-H3010 Joypad x 2
3. DTL-H3020Carte d’acces
4. DTL-S3035 NetYaroze boot disk
5. DTL-S3045 CD-ROM delogiciels de développement Net Yaroze 6. DTL-H3050 Cable de communication
7. DTL-D3065 Guide de Démarrage (се manuel)
8. DTL-D3075 Guide del Utilisateur
9, DTL-D3095 Bibliotheques
Remarques
Les numéros de modèle de votre kit peuvent varier légèrement selon que vous habitez dans l'une ou l'autre
des trois regions Net Yaroze.
«Net Yaroze» est la marque déposée du projet. Cependant, on l'appelle aussi < Yaroze >.
Environnement deDéveloppement
Pour utiliser l’environnement de développement Net Yaroze, vous devez disposer des matériel et logiciels
suivants.
Materiel
Un ordinateur DOS/V compatible PC/ATavec un 486DX2 66MHz ou mieux.
Il devrait disposer d'au moins un port série, ainsi que d'un modem (à au moins 14.400 bps) pour la connection
au site Web Yaroze.
. Disque Dur
Au moins 10Mo d’espace disque libre pour mettre en place l’environnement de développement de base
° Mémoire
Aumoins 4Mo de RAM
. Un Lecteur de CD-ROM ° Ecran Pour le PC Un moniteur SVGA Pour la PlayStation Un téléviseur standard muni d'une entrée vidéo.
(Un téléviseur multi-standard serait idéal) . Une Souris Logiciels MS-DOS Version 5.00u ultérieure
Windows 3.1 ou Windows 95
Mise en Place
Connection duMateriel
Assurez-vous que les interrupteurs d’alimentation du PC et de la PlayStation Net Yaroze sont en position «off» (éteint). Apres avoir relié le port serie du PC a celui de la PlayStation grace au cable de communication, comme indiqué sur le schéma ci-dessous, placez la Carte d'acces dans le port pour carte
mémoire numéro 1 de la PlayStation. Ensuite, reliez la PlayStation autéléviseur avec le cáble AV fourni.
Pour accéder au Net Yaroze Members only Web site via Internet, il vous faut un modem, une ligne de
téléphone, un contrat avec un fournisseur d'accès a Internet et un browser de Web installé sur votre PC.
YAROZE Members' Web site
Cáble de Communication
Cáble AV
|
O YAROZE Boot disk
Carte d'accés
CD-ROM de logiciels de développement Yaroze
Configurationdes Logiciels
Pour la PlayStation
Aucune opération de configuration n'est nécessaire. L'environnement intégré est chargé automatiquement lorsque vous avez placé le Net yaroze boot disk (disque de démarrage) dans la PlayStation, la carte d’acces dans le port pour carte mémoire numéro 1 de la PlayStation et que vous appuyez sur l’interrupteur
d’alimentation. L’écran suivant est affiché sur le téléviseur.
ES ЖО УЛ ES ERS FI ES ER EI ES we PES INA Wan BRITZ RE RT RO RT RI RT RT RT I RT DE — "CIP VERSION 2-0-STARTUP
ACCESS CARD CHECKING. . . OK
MEMORY "CARD CHECK ING; : NOT FOUND TERMINAL SPEED 9600 BPS
mm 07-53035 CONSOLE ! l ! | ! l [ ! l | ! | ! ! | —- @ — @ ---- на ---- на ---- @ ---- на ---- на ---- xs
l
PourlePC
Copie deRépertoires
Placez le CD-ROM de logiciels de développement Net Yaroze (ci-apres appelé « CD-ROM ») dans le lecteur de CD-ROM du PC, puis copiez le contenu de chaque répertoire sur le disque dur en utilisant la commande DOS XCOPY ou le Gestionnaire de Programmes de Windows. (A la racine du CD-ROM se trouvent deux répertoires nommés PSX et GNU. Vous pouvez les copier n'importe ou sur le disque dur.) Dans l’exemple
présenté plus loin, les répertoires PSX et GNUsont copiés à la racine du disque C.
Modification deconfig.sys
Examinez le contenu de config.sys á la racine du disque C et regardez si ansi.sys est inclus. Si ce n'est pas le
cas, ajoutez la ligne suivante et redémarrez le systeme.
devicehigh=C:\WINDOWS\ansi.sys
Modification dufichier batch
Le répertoire PSX que vous avez copié sur le disque dur contient un fichier nommé djsetup.bat. Voici son contenu :
Recho off
set DJGPP-c:/psx/djgpp.env
PATH $path$;c:\psx\bin;c:\gnu\bin
set TMP=c:\tmp set DTLH3000=0x3f8,4,9600
Si les répertoires PSX et GNU ne sont pas a la racine du disque C, modifiez ce fichier de fagon a ce que son contenu corresponde aux chemins et aux noms (si vous les avez modifiés) des répertoires copiés. Cette
opération est décrite ci-apres.
Remarque
Puisque le fichier a été copié a partir du CD-ROM, il est en mode lecture seule (read only). Avant de le modifier, changez cette propriétésous DOS avec la commande:
C:\PSX> attrib -r djsetup.bat (o0u'CAPSX est le chemin
° La deuxième ligne configure la variable d'environnement DJGPP. Le fichier de configuration du compilateur est précisé. Si c'est nécessaire, modifiez la partie c:/psx de façon à ce qu'elle indique les chemin et nom corrects du répertoire copié. Attention: pour cette variable d'environnement uniquement, vous devez utiliser un ‘/’ (slash) pour
décrirele chemin.
° La troisième ligne configure la variable d'environnement PATH. Remplacez les parties c:\psx et
c:\gnu parles chemins et noms des répertoires copiés, si c'est nécessaire.
° La quatrième ligne est le répertoire de travail. Créez un répertoire si с Мар ne vous convient pas.
Par exemple, remplacez la ligne par :
set tmp=c:\yaroze\mouh (où «mouh» est le répertoire de travailque vous préfére2.
° La cinquiéme ligne définit les communications avec la Net Yaroze PlayStation. Indiquez l'adresse du port, PIRO et la vitesse (dans cet ordre) séparés par une virgule. Les valeurs par défaut, OX3F8 et IRQ4,
sont les adresse et IRQ communs de COMI. ° Indiquez 0X2F8 comme adresse du port et IRQ3 si vous utilisez COM2.
. Diverses vitesses de téléchargement, allant jusqu'a 115.200 bps, sont supportées. Indiquez, selon les
capacités de votre PC, 9600, 19200, 38400, 57600 ou 115200.
. Attention : si vous souhaitez utiliser une autre vitesse que 9.600 baud, il vous faudra placer une carte mémoire PlayStation standard formattée dans le port pour carte mémoire numéro 2 de votre Net Yaroze PlayStation, et changer le débit a l’aide de SIOCONS (voir chapitre 17 du Guide Utilisateur Net Yaroze pour les détails de SIOCONS.
Exécution duFichier Batch de Configuration dé Environnement
A partir du répertoire PSX (dont vous avez peut-étre changé le nom), sous DOS (ou dans la fenétre DOS de
Windows), exécutez le fichier batch djsetup.bat, comme indiqué ci-dessous :
C:\PSX>djsetup (ona PSX » est le nomque vous avez choisi)
Ceci achève la préparation de l'environnement de développement.
Pour Commencer
Vous pouvez tester votre systeme Net Yaroze avec quelques programmes simples et rapides avant de compiler
et exécuter vos propres programmes.
Les programmeurs expérimentés voudront peut-étre passer directement a la section Exemples de Programmes de ce chapitre. La section Démarrage rapide décrit les mémes opérations, mais précise plus de détails sur le
développement de logiciels avec Net Yaroze.
DémarrageRapide
Le répertoire « quick» du CD-ROM PC contient quelques programmes de test rapides. Vous l’avez
vraisemblablement copié sur le disque dur de votre PC en méme temps que le reste des logiciels Net Yaroze.
En utilisant ces programmes, vous pouvez vous assurer rapidement que votre tout fonctionne correctement
dans votre système Net Yaroze.
Le Développement deProgrammes Net Yaroze -Vue d’Ensemble Voici les étapes élémentaires à suivre pour développer un logiciel pour le systeme Net Yaroze (Pour plus de
détails sur le cycle de développement, voir le Guide del’ Utilisateur, chapitre 13).
1. Créez/éditez des fichiers texte contenant le code C. Connus aussi sous le nom de «code source», on les appelle habituellement < enorlu.c > (où < enorlu > est le nom du fichier).
(Le répertoire quick contient déja deux fichiers de code source: tuto0.c et tutol.c.)
2. Compilez et linkez les fichiers C pour obtenir le fichier exécutable (le fichier représentant le programme achevé). (Dans l’exemple de test ci-aprés, nous utilisons un fichier make, appelé par la commande «make »,
pour réaliser cela.)
3. Utilisez l'outil pour console SIOCONS,fourni avec vos logiciels Net Yaroze, pourétablir le contact
entre votre Net Yaroze PlayStation etvotre PC.
4. Lancez le programme exécutable.
5. (Dans cet exemple de test, vous pouvez utiliser deux fichiers batch - batch0 et batch! - pour lancer
les fichiers exécutables (ou < exécutables >) des programmes de test.)
Compiler et Exécuterles Programmes Quick Start Pas áPas 1. Mettez en placevotre Net Yaroze PlayStationcomme indiqué dans le Guide de Démarrage : reliez la Net Yaroze Playstation au téléviseur et au PC, et branchez un joypad dans le port pour joypad numéro
1 de la PlayStation.
2. Allumez le PC, le téléviseur et la Net Yaroze PlayStation; attendez que l'écran reproduit ci-dessous
(qui indique que la console est préte) apparaisse sur le téléviseur
REF ERS EI Bude sid СКЕ СЙ [Е A Дака AMBER ATAR o verbere o vendre] NES AR ENS AS Д — "CIP VERSION 2-0-STARTUP
ACCESS CARD CHECKING. . . OK
77 MEMORY CARD CHECK ING; г “NOT FOUND ' TERMINAL SPEED 9600 BPS
— ED
I
DTL-53035-CONSOLE I I ! ! l ! ! I [ Ü ! j КИ FR A KHA КАКА RS Ки КА Es WAS asa A
Cet écran devrait apparaitre dans les 30 secondes qui suivent la mise sous tension ou la remise a zéro (reset)
de la Net Yaroze PlayStation,apres les logos Sony et PlayStation.
1. Sur le PC, à partir du répertoire PSX dont vous avez peut-étrechangéle nom), sous DOS, invoquezle fichier batch de
configuration del’environnement Net Yarozecommeindiqué ci-dessous:
c:\PSX>djsetup (où «PSX > est le nom que vous avez choisi)
2; Compilez les programmes quick start. Utilisez pour cela l’utilitaire « make » en tapant « make » à
l'invite du DOS, afin de créer les programmes exécutables à partir des fichiers sources.
c:\psx\quick>make
3. Appelezle moniteur de console SIOCONS Yous devezavoir indiqué le répertoire de quickcommechemin pour
SIOCONS dans votre fichierautoexec.bat).
c:\psx\quick>siocons
ou bien, si vous avez déjà modifié la vitesse de téléchargement, tapez :
C:\psx\quick>sicons -B<vitesse> (où «<vitesse> > est la valeur que vous avez choisie)
4. Vous êtes à présentdans SIOCONS, le moniteur de consolaitilisé pourcommuniqueravec la Net Yaroze PlayStation
a partir du PC.
Le moniteur du PC devrait afficher quelque chose comme ceci :
c:\psx\quick>siocons -B115200
siocons -- PlayStation debug system console prog for DTLH3000 1996/05/10 00:00:03 type Fl ----> display help
when hung up try type ESC I/O addr = 0x03F8, IRO=4 (vect=0x000C, 8259=20) BAUDRATE = 115200
5. Vérifiezque SIOCONS fonctionnecorrectement enappuyantsur la touche return: si tout va bien, l’invite (ou
« prompt») de SIOCONSapparaitra; il s'agit d'un double-chevron >> 6. Lancer les fichiers batch quick start:
Tout d’abord, appuyez sur la touche [F3] sur le clavier du PC. Cela amene l’invite Auto[1] :.
Entrez alors le nom du fichier batch : batchO.
Par exemple (aprés avoir appuyé sur [F3]) : Auto[1]:batchO
Batch0 télécharge et exécute tuto0.exe.
7. Tout de suite aprés le début du téléchargement, des messages semblables aux suivants apparaissent
sur l'écran du PC :
tutoO [ .text] address:80100000-801001ef size:0001f0 0001f0: lsec.
tutoO [.rdata] address:801001f0-8010020f size:000020 000020: lsec.
tutoO [ .data] address:80100210-8010035f size:000150 000150: 2sec.
tutoO [.sdata] address:80100360-801003df size:000080 000080: 2sec. 8. Le téléviseurafficheégalementdes messages deéléchargement semblables aceux-ci:
BINARY DATA TRANSFER - BWR
ADRS = 80100000
SIZE = 000001Е0 BYTES
INTO BURST TRANSFER SUM:111F0/1F0 BYTES DONE.
Exécuter et Terminerun Programme: Tuto0 (appelé par batchO) affiche < Hello World! > sur la console SIOCONS, sur l'écran du PC ; puis s'achève
automatiquement.
Une fois que vous avez exécuté et terminé un programme, la Net Yaroze PlayStation se remet à zéro (reset), revenant à l'écran indiquant qu'elle est préte pour un nouveau téléchargement (comme nous l'avons vu dans [2] Compiler et Exécuter les programmes Quick Start - Pas à Pas, plus haut), et SIOCONS affiche son invite
(>>) à nouveau.
Une fois la PlayStation et le PC remis a zéro, vous pouvez exécuter le second programme quick start, tutol, en
réalisant les étapes [8] et [9] de Compiler etExécuter les Programmes Quick Start Pas a Pas.
Tutol (appelé par batchl) affiche < Hello World! > sur le téléviseur. Terminez ce programme en pressant
SELECT sur le joypad.
Sortir de SIOCONS Pour quitter SIOCONS et revenir à l'invite du DOS, appuyez sur [F10] puis F[2] (sur le clavier du PC), ou
simplement sur [Esc].
Utiliser les Fichiers de Test Les fichiers source, make et batch sont tous de simples fichiers texte, que vous pouvez facilement éditer (en
utilisant par exemple l'éditeur de texte du DOS) pour voir leur contenu. Pour éditer ou regarder le code source tuto0.c, àl'aide de l'éditeur de texte du DOS, tapez :
e:\>psx\quick>textedit tuto0.c
Regardez les tests et autres exemples de programmes afin de vous familiariser avec le systéme Net yaroze, de
voir ce qu'il peut faire, et commentle réaliser en écrivant des programmes C.
Contenu duRépertoire Quick
Fichiers C pour les programmes | tuto0.c d'exemple
make un fichier d'aide à propos de l’utilitaire «make» et quelques exemples de fichiers make
un fichier d’aide a propos des fichiers batch et quelques exemples de fichiers batch.
baudrate un fichier d’aide á propos du changement de la vitesse de téléchargement du PC vers la PlayStation.
Exemple deProgramme
Dans le but de vérifier votre environnement, essayez de télécharger le programme d’exemple fourni. (Le code
source et le fichier exécutable se trouvent dans le répertoire psx\sample\check\ - ой « psx > est le nom que
vous avez choisi.) Téléchargez le code de l’exemple ainsi : 1. Exécutez Make
Exécutez makea partir du DOS pour tester les chemins définis dans djsetup.bat, et assurez-vous que
le programme est compilé et linké correctement, comme indiqué ci-dessous ( le texte en gras indique
la commande entrée).
C:\PSX\SAMPLE\CHECK>make gcc -Ol -g -c main.c -o main.o gcc -Xlinker -Ttext -Xlinker 80140000 -o main main.o 2; Exécutez SIOCONS Une fois le programme compilé et linke, lancez le moniteur de console SIOCONScomme indiqué ci- dessous.
C:\PSX\SAMPLE\CHECK>siocons
siocons -- PlayStation debug system console program for DTLH3000 1996/05/10 00:00:00 type Fl ----> display help
when hung up try type Ctrl+C I/O addr = 0x03F8, IRO=4 (vect=0x000C, 8259=20)
BAUDRATE = 9600
3. Téléchargement automatique
Appuyez sur la touche F3 pour obtenir l'invite Auto[1]. Tapez auto pour indiquer
« téléchargement automatique > puis appuyez sur la touche enter. (Voir ci-dessous).
Auto[1]: auto
main | .text] address:80140000-80140b4f size:000b50 000650: lsec. main [.rdata] address:80140b50-80140c7f size:000130 000130: lsec. main [ .data] address:80140c80-801412ef size:000670 000670: 2sec. main [.sdata] address:801412f0-8014137f size:000090 000090: 2sec.
PC=80140990, GP=801492f0, SP-801ffff0
>>go ResetGraph:jtb=80047dd0, env=80047e18
A ce stade des opérations, la fenêtre du programme d'exemple devrait être affichée sur le téléviseur.
Les boutons du joypad réalisent les opérations suivantes :
Croix vers le haut Augmente le nombre de balles affichées
Croix vers le bas Diminue le nombre deballes affichées
Bouton L1 Pause
Bouton SELECT Termine le programme
Exemple deProgramme
Fichier Make duProgrammed’Exemple
CFLAGS = -01 -g
LINKER = -Xlinker -Ttext -Xlinker 80140000 RM = del
PROG = main
OBJS = main.o
all: $( PROG)
5 (PROG): $(OBJS) S (СС) S(LINKER) -o 86 $?
main.o: main.c clean:
5 (RM) $ (PROG) 5 (RM) $(OBJS)
Source duProgrammed'Exemple
/ * * Affiche a l'ecran des balles qui rebondissent
* Les touches haut/bas augmentent/reduisent le nombre de balles * Un fond musical est lu et joue a partir du boot disk.
x
Е Copyright (С) 1996 Sony Computer Entertainment Inc.
* Tous Droits Reserves
Zë
/*inclusions preliminaires */
#include <libps.h>
#include “pad.h”
AAA Areale A Areale ceu re Seen ee ne Л сш А Macros
Be oe I IST ama ee SIT STEIF ISIS umay qeu VIS XE уа Tay DÉI
/* Configuration de base */
#define KANJI /* Permet l'affichage de kanjis */
#define OT_LENGTH 1 /* Numero de table d’ordre*/
#define MAXOBJ 1500 /* Nombre maximum de sprites (les balles) */
fdefine MVOL 127 /* Volume sonore principal*/
#define SVOL 127 /* Volume sonore SEQ*/
#define DFILE 3 /* Numero de fichier*/
/* Macros decrivant l'agencement des donnees */
#де 1 пе VH ADDR 0х8 0090000
define VB ADDR 0x800a0000
#define SEQ ADDR 0x80110000
/* Macros decrivant la zone d’affichage */
#define FRAME_X 320 /* largeur de la zone d’affichage */
#define FRAME_Y 240 /* hauteur de la zone d’affichage */
#define WALL X (ЕКАМЕ Х-16) /* largeur de la zone de mouvement des balles */
#define WALL Y (FRAME Y-16) /* hauteur de la zone de mouvement des balles */
/* Macro de verification des limites */
#define limitRange(x, 1, h) ((x)=((x)<(1)?(1):(x)>(h)?(h):(x)))
DEE RE D EL IE eee see EEE EEE EEE EEE EEE EEE ER
Variables externes
DAD ——Á—— DELZ DED TETE ША ШЫЙ qu, D DE DEE E PE DÉI
/* Variables liees a la table d’ordre */
GsOT WorldoT [2];
GsOT_TAG OTTags[2][1««OT LENGTH];
/* Variables liees aux primitives */ PACKET GpuPacketArea[2] [MAXOBJ* (20+4) 1; GsSPRITE sprt [MAXOBJ] ;
/* Variables liees au mouvement des balles */
typedef struct {
} POS;
/* Variables concernant le joypad */
volatile u_char *bb0, *bbl;
us
us
ort X, y;
ort dx, dy;
/* /*
Position */
Vitesse */
/* Variables concernant la lecture de fichiers */
typedef struct {
char
void
*fname;
*addr;
CdlFILE finfo; } FILE INFO;
static FILE INFO dfile[DFILE]
};
{"\\DATA\\SOUND\\STDO.VH;1", {"\\DATA\\SOUND\\STDO.VB;1",
{"\\DATA\\SOUND\\SAMPLE1.SEQ;1",
(void *)VH_ADDR, 0}, (void *)VB_ADDR, 0},
(void *)SEQ ADDR, 0),
/* Variables concernant le son */
short vab, seq;
EET Modeles de fonctions static
"n ne */
static void init prim(); /* Initialisation des graphismes relatifs aux balles */
static void init point(POS *pos); /* Initialisation du mouvement des balles */
static long pad read(long n); /* Analyse de 1’état du joypad */
static u_long PadRead(long id); /* Lecture de l'état du joypad */
static void datafile search(); /* Recherche d’un fichier sur le CD-ROM */ дА
static void datafile read(); /* Lecture d’un fichier sur le CD-ROM */ a
static void init sound); /* Donnees pour preparation du playback */ =
static void play sound(); /* Lance le son playback */
static void stop_sound(); /* Termine le son playback */
AAA AAA AA A A A Et tee e a a ksi dt LS RU ebe */ main() { int nobj = 1; /* Nombre de balles affich&es (une seule au début) */ GsoT *ot; /* Pointeur sur OT affichant */ int dy Cntr X. yi /* Variables de travail*/ int activeBuff; GsSPRITE *sp; POS pos [MAXOBJ] ; POS *pp; SetVideoMode( MODE PAL ); /* Mode PAL */ /* SetVideoMode( MODE NTSC ); /* Mode NTSC */ GetPadBuf(&bbO, &bb1); /* charge le buffer de reception du joypad */ datafile search(); /* Recherche de fichier de donnees */ datafile read(); /* Lecture de fichier de donnees */ GsInitGraph (320, 240, 4, 0, 0); /* Configuration de l'affichage p GsDefDispBuff(0, O, O, 240); /* Idem */ /*
En cas d'affichage en (0,0)-(320,240), affiche (0,240)-
(320,480) (db[0])
En cas d'affichage en (0,240)-(320,480), affiche (0, 0)-
(320,240) (db[0])
#7.
/* Initialisation de la table d'ordre*/
for (i = 0; i < 2; itt) { WorldOT[i].length = OT LENGTH; WorldOT[i].org = OTTags[il;
}
/* Configuration des fontes */
#ifdef KANJI /* Si l'on affiche des kanjis */
KanjiFntOpen(160, 16, 256, 240, 704, 0, 768, 256, 0, 512);
#endif
EntLoad (960, 256);
ЕптОреп (16, 16,
init prim( init point init sound
play sound
/* Charge un motif de fonte de base dans le buffer de frame */
256, 200, 0, 512);
/* Configuration de l'endroit ou afficher les
fontes */
); /* Initialisation du buffer des primitives */ (pos); /* Initialisation du mouvement des balles */ er /* Initialisation du son */ O; /* Lance le son playback */
/* Boucle principale */
while
dans OT */
de sprites */
((nobj = pad read(nobj))
SOY 4
/* permutation du double buffer */
activeBuff = GsGetActiveBuff();
GsSetWorkBase( (PACKET *)GpuPacketArea[activeBuff]);
/* Mise à zéro de la table d'ordre */
GsClearOt (0, 0, &WorldOT[activeBuff]);
/* Mise & jour de la position des balles et enregistrement
sp = sprt; pp = pos;
і < nobj; i++, рр++) { /* Mise a jour de l'abscisse */ if ((x = (pp->x += pp-»dx) $ WALL X*2) >= WALL X)
x = WALL X*2 - x;
for (i = 0; sp++,
/* Mise a jour de l'ordonnee */ if ((y = (pp->y += pp->dy) $ WALL Y*2) >= WALL Y) y = WALL Y*2 - y;
/* Valide les nouvelles coordonnees pour la primitive
зр->х = x; sp->y = y;
/* Enregistrement dans la table d’ordre de la
primitive de sprites*/
GsSortFastSprite (sp, &WorldOT[activeBuff], 0);
DrawSync(0); /* Attend la fin de l'affichage */ ent = VSync(0);
GsSwapDispBuff();
/* Synchronisation TV */ /* Echange du double buffer */
/* Enregistrement pour la table d’ordre de la primitive de nettoyage de l'ecran*/
GsSortClear(60, 120, 120, &WorldOT[activeBuff]);
/* Affichage des primitives enregistrees dans OT */
GsDrawOt(&WorldOT[activeBuff]);
/* Affiche le nombre de balles et le temps ecoule */ #ifdef KANJI
KanjiFntPrint("Num =%d\n", nobj);
KanjiEntPrint ("Time =%d\n", cnt);
KanjiFntFlush(-1);
#endif EntPrint ("sprite = $d\n", nobj); EntPrint ("total time = @d\n\n\n", cnt); FntPrint ("UP : INCREASE\n") ; EntPrint ("DOWN : DECREASE\n"); EntPrint("L1 : PAUSE\n"); EntPrint ("SELECT: END\n"); FntFlush(-1); } /* Main loop terminal */ /* On arrive ici lorsque le bouton select est enfonce*/ stop sound(); /* Termine le son playback */ return(0); /* Fin du programme */ } /* E E A га, IR RM SD EM саанды LUN са nn nut САБЫМ eM nh ые EN LA LEM e РЗА ЧЕБИЧ EN u EN ein ЫМ a O at салшы Initialisation des balles A tek EN pe eue PER EUR LS rel et el Con ted САНИ AAA AAA AAA A Ss Hl SoS рифа E et ta titula S oe */ #include "balltex.h" /* texture des balles */
/* Initialisation du graphisme lie aux balles*/ static void init prim() {
GsSPRITE *sp;
u short tpage;
RECT rect;
int ig
rect.x = 640; rect.y = 0; rect.w = 16/4; rect.h = 16; LoadImage(&rect, balll6x16); tpage = GetTPage(0, O, 640, 0);
fon Ti = Шул Al rect.x = 0; rect.y = 480+1; rect.w = 256; rect.h = 1; LoadImage(&rect, ballcolor[i]);
/* Initialisation des sprites */
for (sp = sprt, i = 0; i < MAXOBU; i++, sp++) Í sp->attribute = 0;
sp->x = 0;
sp->y = 0;
sp->tpage = tpage;
sp->u = 0; sp->v = 0; sp->cx = 0;
sp->cy = 480+(1%32);
sp->r = sp->g = sp->b = 0x80; sp->mx = 0;
sp->my = 0;
sp->scalex = ONE;
un
p->scaley = ONE;
p->rotate = 0;
un
/* Initialisation du mouvement des balles*/ static void init point (POS *pos) { int d for (i = 0; i < MAXOBJ; i++) { pos->x = rand();
/* Coordonnee X initiale
pos->y = rand(); /* Coordonnee Y initiale */ pos-»dx = (rand() $ 4) + 1; /* Vitesse X 1<=x<=4) */ pos->dy = (rand() % 4) + 1; /* Vitesse Y 1<=у<=4) #/
роѕ++;
/ РАА ec bec e cd cbe et red sq EYEE PE J PEJ L Led ии ии be ee en Lecture et analyse de l'etat du joypad рази A EA eeh e eh A */ /* Analyse de l'etat du joypad */ /* Valeur de retour -1 : si le bouton select est enfonce premier argument + 4 : si la fleche haut est enfoncee premier argument - 4 : si la fleche bas est enfoncee
Si L1 est enfonce, pause a l'interieur de la fonction */ static long pad_read(long n) {
u_long padd = PadRead(1); /* Lecture joypad */ if (padd & PADLup) n += 4; /* croix vers le haut */ if (padd & PADLdown) n -= 4; /* croix vers le bas */
if (padd в PADLI) while (PadRead(1)&PADL1); /* Pause */
if(padd & PADselect) return(-1); /* Fin du programme */ limitRange(n, 1, MAXOBJ-1); /* n est donne 1<=n<=(MAXOBJ-1) */
return(n);
/* Lecture de l'etat du joypad */ static u long PadRead(long id) {
return(-(*(bb0+3) | *(bb0+2) << 8 | *(bb1+3) << 16 | *(bb1+2) << 24));
}
Lecture du fichier sur le CD-ROM (DFILE)
BE a a a O Cun PUPS t A AE */ /* Recherche du fichier sur le CD-ROM */ static void datafile search() { IAE ip E: for (i = 0; i < DFILE; i44) í /* s'occupe du fichier РЕТТЕ */
fer I3 — 0x 3 «€ 19x Еу 1 /* Boucle de retour */ if (CdSearchFile(&(dfile[i].finfo), dfile[i].fname) !-
break;
/* boucle de re-essai, interruption si terminaison normale */
else printf("$s not found. Mn", dfile[i].fname);
/* Lecture du fichier sur le CD-ROM */ static void datafile read() {
IDE Ly, 5%
int cnt;
tor (3a -0i 1.4% DPLLES 24+) d J*-sS'ocoupe dé fichier DELLE “/ for (J = Dä $ < 10 IT /* boucle de re-essai */
CdReadFile(dfile[i].fname,dfile[i].addr,dfile[i].finfo.size);
/* Le processus normal peut etre execute ...*/ /* Ici, le nombre de secteurs restant est affiche jusqu'a ce que Read s'acheve
ME
while ((ent = CdReadSync(1, 0)) > 0) VSync(0); /* Synchronisation TV */
XE. (emt o0)
break; /* boucle de re-essai,
interruption si terminaison normale */
/* in A Вата AA AA a M fat Sa EE N E EN ARA Ara M ra MMA Ба Er EA rA EMA Балу A ee e БАЛЛЫ Et ra MA F.o ds Lu tL tL E Gestion du son L an R гй ЫМ a = al P P AN a ЫЫ a ЫМ Z ee DR nk T al R a ЫЙ} al asus СЕЧЕ АА N АЙ ЫЙ БАЛЫМ al R a ТЫМ АЁ ЫЎ „АЛЫМ al BE ai ЫМ al ЫЙ А ЖОШ */ /* Preparation des donnees pour le playback */ static void init sound() { /* Ouverture VAB et transmission au buffer */ уар = SsVabTransfer( (u char*)VH ADDR, (u char*)VB ADDR, -1, 1); if (vab < O) { printf("SsVabTransfer failed (%d)\n", vab); return; } /* Ouverture SEO */ seq = SsSeqOpen((u_long *)SEQ ADDR, vab); if (seq < 0) printf("SsSeqOpen failed (%d)\n", seq); } /* Lancement du son playback */ static void play sound() { SsSetMVol (MVOL, MVOL); /* Configuration du volume principal*/ SsSeqSetVol (seq, SVOL, SVOL); /* Configuration du volume pour
chaque SEO */ SsSeqPlay(seq, SSPLAY PLAY, SSPLAY_INFINITY);/* Interrupteur Playback ON */ }
/* Arret du son playback */ static void stop sound)
{ SsSeqStop(seq); /* Interrupteur playback OFF */
VSync(0); VSync(0);
SsSeqClose(seq); /* ferme SEQ */ SsVabClose(vab); /* ferme VAB */
/* Fin du code source */
Lectures Compl&mentaires
Les ouvrages suivants sont susceptibles de vous aider a écrire des applications Net Yaroze.
Programmation C
Titre Editeur ISBN
The C Programming Language Prentice Hall ISBN 0-13-110362-8 Teach Yourself C McGraw-Hill ISBN 0-07-882011-1 Programming with GNU Software О Reilly ISBN 0-56592-112-7 Graphisme
Titre Editeur ISBN
3D Computer Graphics O Reilly ISBN 0-201-63186-5 Encyclopedia of Graphic File Addison-Wesley ISBN 1-56592-058-9
Formats
Guide de Démarrage Outil de Développement Logiciel
Ce produit est vendu sur la base d'un accord de partenariat avec les Membres de Net Yaroze, dirigé par Sony Computer Entertainment Inc.
Le logo BO 'PlayStation' et 'Net Yaroze' sont des marques déposées de Sony Computer Entertainment Inc.
Les noms de sociétés et de produits cités sur et dans ce produit sont la marque déposée de leur société respective. Les symboles "В "е "ТМ! ne sont pas utilisés systématiquement sur et dans ce produit.
Publié en Février 1997
©1997 Sony Computer Entertainment Inc. Tous Droits Réservés.
Ecrit et produit par :
Sony Computer Entertainment Inc.
Akasaka Oji Building
8-1-22 Akasaka, Minato-ku, Tokyo, Japan 107 Renseignements : Network Business Project E-mail : ny-info@scei.co.jp
TEL:+81 (0) 3-3475-1711
Sony Computer Entertainment Europe
Waverley House
7-12 Noel Street
London W1V 4HH, England
Renseignements : The Yaroze Team
E-mail : yaroze-info@scee.sony.co.uk
TEL:+44 (0) 171 447 1616 / +44 (0) 7000 YAROZE
Sony Computer Entertainment America 919 E. Hillsdale Blvd., 2nd Floor Foster City, CA 94404, USA Renseignements : The Yaroze Team E-mail: yaroze@interactive.sony.com TEL:+1-415-655-3600