Le contenu de cette page nécessite une version plus récente d’Adobe Flash Player.

Obtenir le lecteur Adobe Flash

Hello World

 

1) Préparation

Commencer par créer un dossier Demos dans le répertoire de gendev par exemple.

Ensuite ouvre Code Blocks et démarrer un projet vide :

Appellez votre projet hello World et placez le dans le repertoire Demos.

Cliquez sur Next et appliquer les configurations suivantes:

Faites Finish

Dans l' arbre du projet faites un clique droit sur Hello World , cliquer sur propriéter et appliquer les configurations suivantes:

Faites OK pour valider et retourner dans Proprietes puis cliquer sur Project Build Options puis règler les Make commandes pour Hello World et Défault comme ceci:

Validez!

Nous somme maintenant prêt pour coder, vous pouvez ajoutez au projet un fichier main.c qui va contenir le code suivant , de manière à "tester" le compilateur.

Il vous reste plus qu'a faire CTRL+F9 pour builder votre projets.

Une roms à du apparaitre dans le dossier out de votre projet

mais pourquoi ça marche ?
et comment se fait-il que la roms est aussi lourde  confused

2) Analyse du code:

rappel : le code utiliser pour compiler un Hello World est:

1)  #include "genesis.h"

la fonction include à pour but de copier toutes les librairies contenue dans genesis.h dans le code source à savoir:

"types.h"
"sega.h"
"tools.h"
"base.h"
"maths.h"
"maths3D.h"
"vdp.h"
"vdp_bg.h"
"vdp_dma.h"
"vdp_pal.h"
"vdp_spr.h"
"vdp_tile.h"
"font.h"
"bitmap.h"
"bitmapx.h"
"audio.h"
"z80_ctrl.h"
"ym2612.h"
"psg.h"
"joy.h"
"timer.h"

de cette manière l' intégraliter des fonctions contenues dans ces libraires peut être utiliser dans le code source C mad
c' est également pour cette raison que la roms est aussi volumineuse cool



2) int main()

{


}


ici on initialise la fonction main , celle ci ne comporte aucun paramètre.

main
est la fonction principale , c' est à l' intérieur de celle-ci qu' on va pourvoir réaliser notre démo smile.



VDP_init();

cette fonction comporte plusieurs effet:

1) elle pré-configure l intégraliter des registres du VDP de manière à ce que l' on puisse directement afficher quelquechose dans notre cas du texte.
Les registres sont initialiser de la manière suivantes:

cliquer sur l ' image pour une meilleur qualiter
 

2) elle vide la Vram puis y copie la font/police de base et les palettes:

c' est pour cette raison que si l' on analyse la Vram on optient ceci :

3) pour pouvoir afficher du texte à l' écran la fonction à utiliser est:

VDP_drawText(APLAN,"Hello World", 0x0000, 10, 10);

on déclare donc la fonction VDP_drawText et on lui donne succesivement comme paramètre:

-APLAN : pour dire que l' on souhaite afficher dans la Plane A

-" Hello World" : le texte à afficher

-0x0000 : registre selectionnant le numéro de palette utiliser , dans notre cas la 0 :
0x2000 pour la 1
0x4000 pour la 2
0x6000 pour la 3

-10 : coordonénes en X
-10: coordonnées en Y

3) Ecrire en couleur

maintenant que vous savez écrire une hello world on va voir comment on peut faire pour changer sa couleur.

la fonction VDP_drawText va utiliser la couleur 15 de la palette paramètrer pour le choix de la couleur.

dans notre exemple le paramètre étant 0x0000 , la palette est donc la numéro 0

onc si on veut changer la couleur afficher , il suffit de modifier cette palette via la fonction suivante

VDP_setPaletteColor

voici un exemple d' utilisation : je souhaite écrire Hello World en rouge, je vais donc mettre du rouge dans la 15 ème couleur de la palette 0.

VDP_setPaletteColor(0, 15, 0x00F);


avec respectivement comme paramètre:
-0 pour palette utiliser
-15 numéro de la couleur à modifier
- 0x00F : couleur , dans notre cas du rouge . ( rappels sur Genesis les couleurs sont coder en 0xBGR)

le code source entier sera donc:

on , compile et voici ce que ça donne :

Maintenant à vous de jouer biggrin