Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Connexion avec identifiant, mot de passe et durée de la session

+-Merci d'utiliser le forum pour les demandes d'aides sur fusion.

15 février 2019 à 19:36:05 Cyberclic dit: C'est top Nico. J'adore ma vieille boite de MMF2 :D
14 février 2019 à 11:16:05 Xenon3K dit: Non je les trouves classes, ce n'était pas la même com qu'aujourd'hui, pour MMF Dev vous mettez en avant "dev d'applications"
14 février 2019 à 03:02:25 Nico dit: Pwouah, avec le recul comme le design des boîtes de MMF2 étaient pourries, j'ai honte :( je m'en excuse
12 février 2019 à 12:54:46 Monos dit: Enorme
11 février 2019 à 22:32:54 Seyjin dit: Youhou, j’ai réussi https://mastodon.xyz/@Seyjin/101575595653139399 (le même sur Tweeter : https://twitter.com/Seyjin_o/status/1095072517419614209) 😁
11 février 2019 à 10:29:04 Xenon3K dit: Ah ok, c'est la version standard, possibilité de créer des objets, pas de pub à la fin et d'autres fonctionnalités
10 février 2019 à 16:23:20 Emmanuel dit: non l autre
10 février 2019 à 13:49:43 Xenon3K dit: La Micro Application ?
09 février 2019 à 15:53:00 Emmanuel dit: tu a une des boite que j ai pas de jamagic la blanche produit pas la clickteam.
09 février 2019 à 13:56:33 graboide dit: Xenom je parlais pas pour toi t inquiet ;), c'est juste que ça tomber un pique comme exemple :P, j ai jamais utilisé jamagic mais j' ai toujours entendu dire qu il avait tout pour réussir c est dommage .
08 février 2019 à 23:16:21 Xenon3K dit: Hey, deux jeux made with Fusion viennent de sortir sur Nintendo Switch: https://www.youtube.com/watch?v=GowQW9SclSw https://www.youtube.com/watch?v=As3eA2K53p0
08 février 2019 à 23:11:20 Xenon3K dit: Of course, je parlais de Jamagic juste parce que j'était étonné qu'il fonctionne. Même à l'époque il n'y avait pas beaucoup d'utilisateurs :/
08 février 2019 à 21:44:57 graboide dit: Ben moi complètement pas d'accord, même si j'avais un vieux téléphone compatible avec le dernier système android je le changerai, Jamagic est compatible avec windows 10 qui l'utilise? ... personnes! fusion 2 prendra le même chemin si il n'y pas de renouveau un jour, pour la pérennité de la société il faut évolué, avancé,innové, il est normale qu'il maintiennent fusion 2 a jour il y a que ce logiciel pratiquement,  mais il ce fais vraiment vieux, l'apparence est vraiment pas terrible, techniquement dépassé, il a des très gros atouts mais il ne feront pas toujours la différences , alors allez la clickteam avancez ;) ! fusion 2.5+ peu encore étonnez ... on verra
08 février 2019 à 12:28:40 Monos dit: Les box mmf2 <3 Je me r'appelle quand j'ai reçu la boite, j'étais tout fou.
08 février 2019 à 11:32:49 Xenon3K dit: https://photos.google.com/share/AF1QipPltiH69iV1HWGqdORzJ25UUrdD2Wpj77VwT73Cm1fJgaQjgtA0SF5tVDzLsugcnA?key=Q09pcUtvWEpzVEpDcnFIZ3czS1JJRG5sZWRIdzVn
08 février 2019 à 11:06:45 Xenon3K dit: Waw j'avais oublié ce site, c'était un ami qui l'avait fait à l'époque
08 février 2019 à 10:43:41 Emmanuel dit: http://web.archive.org/web/20040904195825/http://www.xenon3000.fr.st/
08 février 2019 à 10:28:34 Patrice dit: Ils avaient pensé Unity avant Unity :)
08 février 2019 à 10:27:52 Emmanuel dit: un peu nostalgique Xenon3k
08 février 2019 à 09:51:34 Xenon3K dit: J'ai installé Jamagic sur windows 10, il fonctionne super
08 février 2019 à 09:23:02 Patrice dit: Complètement d'accord.
08 février 2019 à 06:44:48 lazarus dit: Il me semble que le plus important c'est quand même de pouvoir continuer a utiliser MMF2 sans problème de compatibilité avec windows 10 en attendant MMF3,parce que si plus de suivit de la part de clickteam,adieu verte.Donc personnellement ça ne me dérangé pas,du moment que mmf2 fonctionne et qu'il y a un suivit derrière,c'est aussi important que de voir arriver un jour mmf3.
07 février 2019 à 13:52:23 fredetmumu dit: graboide, je me suis dit pareil, et effectivement le profiler est terrible!! je me demande juste si il y a une relation entre ce qui fait ralentir sur PC et sur ANDROID, ça permettrait de bien optimiser ce qui coince sur android
06 février 2019 à 21:26:56 graboide dit: le profiler a l'air vraiment bien ! c'est une belle évolution ! par contre ça sent pas bon pour fusion 3 a mon avis sans vouloir être négatif il y en a encore pour quelques années vue qu'ils veulent lancé un fusion 2.5+ pour patienter ?!
06 février 2019 à 17:57:19 Seyjin dit: Tu en as déjà parlé dans un post, pas besoin de le mettre partout. Tu sais, ce chat ci est suffisant. On ne s’en sert pas beaucoup, pas besoin de plus.
Voir l'historique

UserBox

Welcome, Guest.
Please login or register.
 
 
 
Mot de passe oublié?

Bientôt

Surprise

Liens

Messages non lus

Télécharger

Divers

Twitter

Les extensions pour MMF2

FaceBook ClickTeam France

Discord Clickteam (EN)

 

 

 

 

 

 

Derniers messages

Re : Numéro de case virtuelle. par Seyjin
Aujourd'hui à 21:54:13

Re : Numéro de case virtuelle. par Monos
Aujourd'hui à 21:40:30

Re : Grille virtuelle hexagonale par Seyjin
Aujourd'hui à 21:39:23

Re : Numéro de case virtuelle. par Kloug
Aujourd'hui à 14:08:10

Re : Numéro de case virtuelle. par Emmanuel
Aujourd'hui à 12:19:39

Re : Numéro de case virtuelle. par Seyjin
Aujourd'hui à 10:57:15

Re : Numéro de case virtuelle. par Kloug
Aujourd'hui à 08:51:40

Re : Numéro de case virtuelle. par Monos
Aujourd'hui à 07:13:49

Numéro de case virtuelle. par Kloug
Aujourd'hui à 00:21:46

Re : Screenshots par Kloug
20 février 2019 à 16:32:32

Re : joystick2 cause probelem sur android par fredetmumu
19 février 2019 à 21:27:14

Re : joystick2 cause probelem sur android par Seyjin
19 février 2019 à 18:00:21

Re : joystick2 cause probelem sur android par fredetmumu
19 février 2019 à 17:48:20

joystick2 cause probelem sur android par fredetmumu
19 février 2019 à 17:37:36

Re : Screenshots par Patrice
19 février 2019 à 16:51:52

Re : Screenshots par Kloug
18 février 2019 à 22:09:49

Re : Screenshots par Kloug
18 février 2019 à 16:52:23

Re : Screenshots par Patrice
18 février 2019 à 13:02:06

Re : Screenshots par Kloug
17 février 2019 à 14:49:30

probleme sons sur android par fredetmumu
16 février 2019 à 19:05:29

Nouveau Clickeur

Nathanic89 / Grinchnic89
jpcr
Elogio

Membre en ligne

21 Invités, 1 Utilisateur
Yazorius

Auteur Sujet: Programmer la Master System. On passe au code  (Lu 511 fois)

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2669
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Programmer la Master System. On passe au code
« le: 17 janvier 2018 à 07:01:38 »

Chapitre 6 : on passe en code

Pour commencer nous allons juste nous amuser à placer un carré jaune d'un seul tiles sur l'écran de la master system. Nous allons garder la couleur 0 à noir et la couleur 1 sera une teinte ajune.

Nous allons utiliser le couleur 15 soit $0F qui est un rouge pur.
Petite aparté. $0F c'est une valeur hexadécimale. Il existe plusieurs manière de dire à un lecteur que nous parlons en hexadécimale. le dollars, le 0x comme en C voir le # qui peut se voir de temps en temps.
Autre rapelle avant que je perde du monde ici. Nous la majeur partie on compte de 0 à 9. Quand on fait +1 à 9, on reppart à 0 et on ajoute 1 à la valeur qui se trouve à gauche. Dans ce cas la ça fait 10. Quand on est à 19 on passe à 20.
99 ? ba ça fait 0 pour le chifre de droite on ajoute 1 au chiffre de gauche. et comme c'est un 9 ba ça passe à 0 et on ajoute +1 au chiffre à gauche de lui. Donc 1 car je suis à 0 donc 100.

En valeur héxadécimale c'est la même chose sauf que la plage avant de rebouter le chiffre et d'ajouter 1 au chiffre de gauche n'est pas de 0 à 9 mais de 0 à 15.  Et a partir de 10 on utilise tous simplement des lettres pour représenter les chiffre au dela de 9. Donc cela fait :
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Quand on fait +1 à F, ça passe à 0 et on fait +1 à la valeur de Gauche donc 10. (Mais ce n'est pas notre 10 mais 16...)

C'est pareil avec les valeurs binaire. Sauf que la plage est compris entre 0 et 1. Quand on ajoute +1 à 1. On passe à 0 et on ajoute +1 à la valeur de gauche.

Voilou.

Bon revenons à nos mouton.
Nous avons vu dans la decortication du code une fonction pour modifier l'index d'une palette de couleur.
  SMS_setBGPaletteColor(1, RGB(2,2,2)); // couleur 1cette fonction permet de modifier la palette dit de Background, valeur 1 que nous remplaçons en RGB(2,2,2)

RGB(R,V,B) est un macro pour aider à retrouver la couleur.
Il y a aussi d'autre macro comme RGB8 et RGB24.
Sinon et je conseille cette méthode c'est d'utiliser directement la bonne valeur. Pour notre jaune pur on a trois façon de faire.

SMS_setBGPaletteColor (1,0x0F);SMS_setBGPaletteColor (1,15);SMS_setBGPaletteColor (1,0b00001111);
Pour le noir, c'est tous simplement 0 ou 0x00 ou 0b00000000

Encodage de notre tiles
Nous allons encoder notre tiles à la main. (Rassuré vous plus tard on utilisera des logiciels pour faire ce travaille à notre place.)
Nous voulons notre carré ! de 8px. Voici donc linérairement notre carré pour le réprésenter avec notre index de palette.

11111111
10000001
10000001
10000001
10000001
10000001
10000001
11111111

Bon maintenant il faut encoder tout ça en bit plan. Par chance nous allons faire ça que pour la premier ligne et 2em ligne. Le reste c'est identique.

La première ligne c'est :
1111111

Il faut donc créer les 4 octets pour représenter tout ça. Etant donner que nous voulons la palette 1. en binaire 1 c'est %0001. Il faut inverser donc %1000
Et maintenant on recompose nos 8 bits de la premier ligne.
11111111
00000000
00000000
00000000

On va convertir ça en hexadécimale ce qui fait 0xFF,0x00,0x00,0x00
Un petit site sympathique pour les conversions

Regardon un peu la 2nd ligne maintenant.

10000001 la c'est la représentation graphique en mode linéaire. Encore une fois notre exemple est facile.

Ce qui fait
10000001
00000000
00000000
00000000

On va convertir ça en hexadécimale.
Ce qui fait

0x81,0x00,0x00,0x00

Notre carré est donc encodé comme ceci :

0xFF,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0xFF,0x00,0x00,0x00

Maintenant nous allons charger tout ça en mémoire dans la master system dans la position 1 des tiles.
La position 0 c'est ce qu'il y a déja au fond de l'écran.

La fonction pour charger des tiles en mémoire la voici.

void SMS_loadTiles (void *src, unsigned int tilefrom, unsigned int size);
C'est une fonction void qui donc ne renvois rien.
Cette fonction attend trois paramètre.

Le premier void *src : c'est une adresse mémoire. La ou se trouve les données sur la cartouche. Un pointeur pour être exacte. Mais ne fait pas attention à cela pour le môment, garder en tête que c'est ici qu'il faut marquer le nom du tableau qui contient les données.

Le 2nd, unsigned int filefrom : attend le tile de départ ou va être mémorisé les données. Pour notre exemple, nous voulons le mémoriser au 1er tile.

Le 3em et dernier paramètre c'est la taille en octet du tableau tout simple.
Nous mémorisons seulement 1 tiles, et 1 tiles c'est 32 octets. Donc on va placer 32 octets.

Ce qui fait par exemple :
SMS_loadTiles (Data_Tilset,1,32);

Maintenant nous allons nous occuper du tableau !

const unsigned char Data_Tilset[]=
{
0xFF,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0xFF,0x00,0x00,0x00
};


Ne vraiment pas oublier le const pour bien indiquer au compilateur que c'est en mode lecture seulement et surtout que cela doit se loger dans la cartouche et non dans la ram de la console.

Et maintenant la petite fonction pour afficher le tile à l'écran :
SMS_setTileatXY(x,y,tile)donc X et Y en Case en partant de 0. Et tile ba le numéro du tiles.
Donc la 1.
On assemble tout ça dans notre fichier main, on compile et c'est partie !
Voici donc un exemple de code et se qui faut marquer dans le fichier compilation.


// Intégration du fichier SMSlib.h
// la bibliotheque du DevKitSMS.
#include "header/SMSlib.h"
 
// En tête de la rom pour que cela soit lisible sur Master System.
SMS_EMBED_SEGA_ROM_HEADER(0,0);
SMS_EMBED_SDSC_HEADER(0,0,2018,01,02,"Monos","Carré","Test") ;


// Le Tableau de graphismes dans le même fichier main
const unsigned char Data_Tilset[]=
{
0xFF,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0x81,0x00,0x00,0x00,
0xFF,0x00,0x00,0x00
};
 
 
 
// ****************************************************************
// ** Fonction main qui est la fonction initiale du programme... **
// ****************************************************************
void main (void)
{
   
     
       
// Mise en place de la palette de couleur
SMS_setBGPaletteColor (0,0x00);
SMS_setBGPaletteColor (1,0x0F);
       
// Chargement du tiles en mémoire vidéo
        SMS_loadTiles (Data_Tilset, 1,32);
       
// Attente de la syncro verticale
        SMS_waitForVBlank();

// Affichage du tile 1 à l'écran
        SMS_setTileatXY(0,0,1)

// Allumage de l'écran
SMS_displayOn();
 
        // ************************
        // ** Une boucle infinie **
        // ************************
        while (1)
        {
                // ******************************************************
                // Fonction pour attendre le retour du balayage écran. **
                // ******************************************************
                SMS_waitForVBlank();
    }
}
 


Et le fichier de compilation.
@echo off

echo ----------------------------
echo -- Compilation et linkage --
echo ----------------------------
sdcc -c -mz80 --peep-file peep-rules.txt source/main.c

sdcc -o sms.ihx -mz80 --no-std-crt0 --data-loc 0xC000 rel/crt0_sms.rel main.rel SMSlib.lib

echo ------------------------------
echo -- Creation du fichier .sms --
echo ------------------------------
ihx2sms sms.ihx out/sms.sms

echo -------------------------------------------
echo -- Destruction des fichiers asm et autre --
echo -------------------------------------------
pause

del *.sym
del *.ihx
del *.lk
del *.noi
del *.rel
del *.lst
del *.asm
del *.map


echo ----------
echo -- Fin --
echo ---------
pause

Pour cette exemple nous n'avons pas eu besoin de fichier externe, donc  j'ai zapé la compilation du font.c et bien sur du font.rel !


Code Source

Bon la création d'un carré est simple.
Voici donc un exercice à faire ! Réaliser un carré de 16 pixel !
Donc il faut assembler 4 tiles.
Les placer en mémoire.
Et les assembler !

Le prochain chapitre sera consacré au sprite, (ou Lutin en bon français).
« Modifié: 19 janvier 2018 à 17:44:28 par Monos »

tetsuro

  • Nouveau Clickeur
  • Messages: 2
    • Voir le profil
  • Google Play: Oui
  • Logiciel: Aucun
Re : Programmer la Master System. On passe au code
« Réponse #1 le: 19 janvier 2018 à 17:25:08 »
Merci pour ce chapitre !

J'ai un problème avec la macro RGB, j'essaie ça :
- SMS_setBGPaletteColor(1, RGB(2,2,2)); // Chez moi le carrée est gris, alors que tu dis rouge
- SMS_setBGPaletteColor(1, RGB(255,0,0)); // J'ai un warning 158 et ça m'affiche le carré en blanc

Des petites erreurs pas méchantes :
- Au début tu dis qu'on vas afficher un carré rouge et à la fin on affiche un carré jaune.
- Tu as oublié une ligne "0x81,0x00,0x00,0x00," à ton carré, il fait 8x7.

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2669
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer la Master System. On passe au code
« Réponse #2 le: 19 janvier 2018 à 17:38:51 »
La vache xd, si tu places directement 3 ça doit donner rouge ? Je corrige ça.

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2669
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer la Master System. On passe au code
« Réponse #3 le: 19 janvier 2018 à 17:52:33 »
 SMS_setBGPaletteColor(1, RGB(255,0,0)); // J'ai un warning 158 et ça m'affiche le carré
RGB c'est encodé si je ne dis pas de bétise de 0 à 3.  (Ce qui fait 4 Rouge, 4 Vert,4 Bleu donc
4*4*4  = 64 teintes le compte est bon.
RGB8 que tu dois utiliser je pense pour trouver la couleur approximative en utilisant une valeur entre 0 et 256. (1 octet  par composante)

 


 


+-MiniChat

15 février 2019 à 19:36:05 Cyberclic dit: C'est top Nico. J'adore ma vieille boite de MMF2 :D
14 février 2019 à 11:16:05 Xenon3K dit: Non je les trouves classes, ce n'était pas la même com qu'aujourd'hui, pour MMF Dev vous mettez en avant "dev d'applications"
14 février 2019 à 03:02:25 Nico dit: Pwouah, avec le recul comme le design des boîtes de MMF2 étaient pourries, j'ai honte :( je m'en excuse
12 février 2019 à 12:54:46 Monos dit: Enorme
11 février 2019 à 22:32:54 Seyjin dit: Youhou, j’ai réussi https://mastodon.xyz/@Seyjin/101575595653139399 (le même sur Tweeter : https://twitter.com/Seyjin_o/status/1095072517419614209) 😁
11 février 2019 à 10:29:04 Xenon3K dit: Ah ok, c'est la version standard, possibilité de créer des objets, pas de pub à la fin et d'autres fonctionnalités
10 février 2019 à 16:23:20 Emmanuel dit: non l autre
10 février 2019 à 13:49:43 Xenon3K dit: La Micro Application ?
09 février 2019 à 15:53:00 Emmanuel dit: tu a une des boite que j ai pas de jamagic la blanche produit pas la clickteam.
09 février 2019 à 13:56:33 graboide dit: Xenom je parlais pas pour toi t inquiet ;), c'est juste que ça tomber un pique comme exemple :P, j ai jamais utilisé jamagic mais j' ai toujours entendu dire qu il avait tout pour réussir c est dommage .
08 février 2019 à 23:16:21 Xenon3K dit: Hey, deux jeux made with Fusion viennent de sortir sur Nintendo Switch: https://www.youtube.com/watch?v=GowQW9SclSw https://www.youtube.com/watch?v=As3eA2K53p0
08 février 2019 à 23:11:20 Xenon3K dit: Of course, je parlais de Jamagic juste parce que j'était étonné qu'il fonctionne. Même à l'époque il n'y avait pas beaucoup d'utilisateurs :/
08 février 2019 à 21:44:57 graboide dit: Ben moi complètement pas d'accord, même si j'avais un vieux téléphone compatible avec le dernier système android je le changerai, Jamagic est compatible avec windows 10 qui l'utilise? ... personnes! fusion 2 prendra le même chemin si il n'y pas de renouveau un jour, pour la pérennité de la société il faut évolué, avancé,innové, il est normale qu'il maintiennent fusion 2 a jour il y a que ce logiciel pratiquement,  mais il ce fais vraiment vieux, l'apparence est vraiment pas terrible, techniquement dépassé, il a des très gros atouts mais il ne feront pas toujours la différences , alors allez la clickteam avancez ;) ! fusion 2.5+ peu encore étonnez ... on verra
08 février 2019 à 12:28:40 Monos dit: Les box mmf2 <3 Je me r'appelle quand j'ai reçu la boite, j'étais tout fou.
08 février 2019 à 11:32:49 Xenon3K dit: https://photos.google.com/share/AF1QipPltiH69iV1HWGqdORzJ25UUrdD2Wpj77VwT73Cm1fJgaQjgtA0SF5tVDzLsugcnA?key=Q09pcUtvWEpzVEpDcnFIZ3czS1JJRG5sZWRIdzVn
08 février 2019 à 11:06:45 Xenon3K dit: Waw j'avais oublié ce site, c'était un ami qui l'avait fait à l'époque
08 février 2019 à 10:43:41 Emmanuel dit: http://web.archive.org/web/20040904195825/http://www.xenon3000.fr.st/
08 février 2019 à 10:28:34 Patrice dit: Ils avaient pensé Unity avant Unity :)
08 février 2019 à 10:27:52 Emmanuel dit: un peu nostalgique Xenon3k
08 février 2019 à 09:51:34 Xenon3K dit: J'ai installé Jamagic sur windows 10, il fonctionne super
08 février 2019 à 09:23:02 Patrice dit: Complètement d'accord.
08 février 2019 à 06:44:48 lazarus dit: Il me semble que le plus important c'est quand même de pouvoir continuer a utiliser MMF2 sans problème de compatibilité avec windows 10 en attendant MMF3,parce que si plus de suivit de la part de clickteam,adieu verte.Donc personnellement ça ne me dérangé pas,du moment que mmf2 fonctionne et qu'il y a un suivit derrière,c'est aussi important que de voir arriver un jour mmf3.
07 février 2019 à 13:52:23 fredetmumu dit: graboide, je me suis dit pareil, et effectivement le profiler est terrible!! je me demande juste si il y a une relation entre ce qui fait ralentir sur PC et sur ANDROID, ça permettrait de bien optimiser ce qui coince sur android
06 février 2019 à 21:26:56 graboide dit: le profiler a l'air vraiment bien ! c'est une belle évolution ! par contre ça sent pas bon pour fusion 3 a mon avis sans vouloir être négatif il y en a encore pour quelques années vue qu'ils veulent lancé un fusion 2.5+ pour patienter ?!
06 février 2019 à 17:57:19 Seyjin dit: Tu en as déjà parlé dans un post, pas besoin de le mettre partout. Tu sais, ce chat ci est suffisant. On ne s’en sert pas beaucoup, pas besoin de plus.
Voir l'historique
Powered by EzPortal