Page 1 sur 1

[Programmation Wii] Création du premier programme Wii

MessagePosté: Sam 27 Sep 2008 01:58
par Tgames



Image




1. Initialisation de l'homebrew

Tout d'abord ouvrez "Programmer's Notepad", et faites "File" et "New" => "C/C++".

Allez c'est partit on code !

Ajoutez ces lignes, ce sont les libraries que nous allons appeler dans notre programme.

Code: Tout sélectionner
#include <stdio.h>
#include <stdlib.h>
#include <gccore.h>
#include <ogcsys.h>
#include <unistd.h>
#include <ogc/pad.h> // Librairie pour la Manette Gamecube
#include <wiiuse/wpad.h>  // Librairie pour la Wiimote


Ajouter ensuite ces lignes qui permettent d'initialiser la vidéo, l'affichage du texte, et l'initialisation de la manette Wii

Code: Tout sélectionner
#define gotoXY(x,y) printf("\x1b[%i;%iH", x, y)

static void *xfb = NULL;
static GXRModeObj *rmode = NULL;

//---------------------------------------------------------------------------------
int main(int argc, char **argv)
{
   VIDEO_Init(); //Initialise la vidéo
   WPAD_Init(); // Initialise la wiimote
   rmode = VIDEO_GetPreferredMode(NULL);
   xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
   console_init(xfb,0,0,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
   VIDEO_Configure(rmode);
   VIDEO_SetNextFramebuffer(xfb);
   VIDEO_SetBlack(FALSE);
   VIDEO_Flush();
   VIDEO_WaitVSync();
   if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();


Sans le code des initialisations rien ne se passera dans le programme, rappelez vous de cela c'est très important !




2. Utilisation des manettes.

Utlisons la wiimote, la Manette Gamecube, Manette Classique, Manette Nunchunk ! (et oui sa fait beaucoup !)

Wiimote :

Code: Tout sélectionner
printf("Premier Programme Wii -- https://Tgames.fr.nf"); // Écrit à l'écran ces mots
gotoXY(2, 3); // Emplacement du texte à l'écran
 
u32 pressed;
      struct expansion_t ext;
if (b & WPAD_BUTTON_A)
      wpad_status &= PSX_BUTTON_START;

      
      WPAD_ScanPads();

/* Voici différentes lignes qui sont identiques mais fonctionnent toutes différemment.
Ces lignes servent à synchroniser les boutons à la reconnaissance sur la wii
A l'appui sur un touche un condition se déroule, si elle n'est pas respecté elle est remplacé par une autre  */

// Etat des bouttons de la Wiimote avec WPAD_ButtonsDown
      pressed = WPAD_ButtonsDown(WPAD_CHAN_0);
      gotoXY(5, 3);
      printf("Boutons Wiimote avec WPAD_ButtonsDown: ");
      if (pressed & WPAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_1)     { printf ("1"); }      else { printf (" "); } 
      if (pressed & WPAD_BUTTON_2)     { printf ("2"); }      else { printf (" "); }                   
      if (pressed & WPAD_BUTTON_MINUS) { printf ("-"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_PLUS)  { printf ("+"); }      else { printf (" "); }     
      if (pressed & WPAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & WPAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & WPAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & WPAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }       
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsHeld
      pressed = WPAD_ButtonsHeld(WPAD_CHAN_0);
      gotoXY(6, 3);
      printf("Boutons Wiimote avec WPAD_ButtonsHeld: ");
      if (pressed & WPAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_1)     { printf ("1"); }      else { printf (" "); } 
      if (pressed & WPAD_BUTTON_2)     { printf ("2"); }      else { printf (" "); }                   
      if (pressed & WPAD_BUTTON_MINUS) { printf ("-"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_PLUS)  { printf ("+"); }      else { printf (" "); }     
      if (pressed & WPAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & WPAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & WPAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & WPAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsUp
      pressed = WPAD_ButtonsUp(WPAD_CHAN_0);
      gotoXY(7, 3);
      printf("Boutons Wiimote avec WPAD_ButtonsUp:   ");
      if (pressed & WPAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_1)     { printf ("1"); }      else { printf (" "); } 
      if (pressed & WPAD_BUTTON_2)     { printf ("2"); }      else { printf (" "); }                   
      if (pressed & WPAD_BUTTON_MINUS) { printf ("-"); }      else { printf (" "); }
      if (pressed & WPAD_BUTTON_PLUS)  { printf ("+"); }      else { printf (" "); }     
      if (pressed & WPAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & WPAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & WPAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & WPAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }


Passons maintenant à la reconnaissance des extensions branchés à la wiimote (Nunchunk, Manette Classique...)

Code: Tout sélectionner
// Extension Wiimote
      WPAD_Expansion(WPAD_CHAN_0, &ext);
      gotoXY(9, 3);
      printf("Extension: ");
      switch (ext.type)
      {
         case WPAD_EXP_NONE:        printf ("Aucun            "); break;
         case WPAD_EXP_NUNCHUK:     printf ("Nunchuk          "); break;
         case WPAD_EXP_CLASSIC:     printf ("Manette classique"); break;
         case WPAD_EXP_GUITARHERO3: printf ("Guitar Hero 3    "); break;
         case WPAD_EXP_UNKNOWN:     printf ("Manette inconnue "); break;
      }


Utilisation du Nunchunk.

Code: Tout sélectionner
// Etat des bouttons de la Wiimote avec WPAD_ButtonsDown
      pressed = WPAD_ButtonsDown(WPAD_CHAN_0);
      gotoXY (3, 5);
      printf("Boutons Nunchuk avec WPAD_ButtonsDown: ");
      if (pressed & WPAD_NUNCHUK_BUTTON_Z)     { printf ("Z"); } else { printf (" "); }
      if (pressed & WPAD_NUNCHUK_BUTTON_C)     { printf ("C"); } else { printf (" "); }
       
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsHeld
      pressed = WPAD_ButtonsHeld(WPAD_CHAN_0);
      gotoXY (3, 6);
      printf("Boutons Nunchuk avec WPAD_ButtonsHeld: ");
      if (pressed & WPAD_NUNCHUK_BUTTON_Z)     { printf ("Z"); } else { printf (" "); }
      if (pressed & WPAD_NUNCHUK_BUTTON_C)     { printf ("C"); } else { printf (" "); }
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsUp
      pressed = WPAD_ButtonsUp(WPAD_CHAN_0);
      gotoXY (3, 7);
      printf("Boutons Nunchuk avec WPAD_ButtonsUp:   ");
      if (pressed & WPAD_NUNCHUK_BUTTON_Z)     { printf ("Z"); } else { printf (" "); }
      if (pressed & WPAD_NUNCHUK_BUTTON_C)     { printf ("C"); } else { printf (" "); }
      
     
      // Joypad du nunchuk
      WPAD_Expansion(WPAD_CHAN_0, &ext);
      gotoXY (3, 9);
      printf("Joypad Position  X:%3i - Y:%3i      ", ext.nunchuk.js.pos.x,    ext.nunchuk.js.pos.y);
      printf("Joypad Center    X:%3i - Y:%3i      ", ext.nunchuk.js.center.x, ext.nunchuk.js.center.y);
      gotoXY (3, 10);
      printf("Joypad Min       X:%3i - Y:%3i      ", ext.nunchuk.js.min.x,    ext.nunchuk.js.min.y);
      printf("Joypad Max       X:%3i - Y:%3i      ", ext.nunchuk.js.max.x,    ext.nunchuk.js.max.y);
       
      X = ext.nunchuk.js.pos.x - ext.nunchuk.js.center.x;
      Y = - (ext.nunchuk.js.pos.y - ext.nunchuk.js.center.y);
      gotoXY (3, 12);
      printf ("Valeur joypad par calcul  X:%4i - Y:%4i ", X, Y);
      
      X /= 4*2; Y /= 8*2;
      gotoXY (35,   20); 
      printf ("+");
      gotoXY (35+X, 20+Y);
      printf ("*");


Utilisation de la manette classique.

Code: Tout sélectionner
 WPAD_ScanPads();
      gotoXY (20+X1, 22+Y1); printf (".");      
      gotoXY (55+X2, 22+Y2); printf (".");
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsDown
      pressed = WPAD_ButtonsDown(WPAD_CHAN_0);
      gotoXY (3, 5);
      printf("Boutons Nunchuk avec WPAD_ButtonsDown: ");
      if (pressed & WPAD_CLASSIC_BUTTON_LEFT)   { printf ("G"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_RIGHT)  { printf ("D"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_UP)     { printf ("H"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_DOWN)   { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_A)      { printf ("A"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_B)      { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_X)      { printf ("X"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_Y)      { printf ("Y"); }    else { printf (" "); }                   
      if (pressed & WPAD_CLASSIC_BUTTON_PLUS)   { printf ("+"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_MINUS)  { printf ("-"); }    else { printf (" "); }   
      if (pressed & WPAD_CLASSIC_BUTTON_ZL)     { printf (" ZL");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_ZR)     { printf (" ZR");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_L) { printf (" L");   } else { printf ("  ");   }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_R) { printf ("R ");   } else { printf ("  ");   }
       if (pressed & WPAD_CLASSIC_BUTTON_HOME)   { printf ("Home"); } else { printf ("    "); }
      
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsHeld
      pressed = WPAD_ButtonsHeld(WPAD_CHAN_0);
      gotoXY (3, 6);
      printf("Boutons Nunchuk avec WPAD_ButtonsHeld: ");
      if (pressed & WPAD_CLASSIC_BUTTON_LEFT)   { printf ("G"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_RIGHT)  { printf ("D"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_UP)     { printf ("H"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_DOWN)   { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_A)      { printf ("A"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_B)      { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_X)      { printf ("X"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_Y)      { printf ("Y"); }    else { printf (" "); }                   
      if (pressed & WPAD_CLASSIC_BUTTON_PLUS)   { printf ("+"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_MINUS)  { printf ("-"); }    else { printf (" "); }   
      if (pressed & WPAD_CLASSIC_BUTTON_ZL)     { printf (" ZL");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_ZR)     { printf (" ZR");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_L) { printf (" L");   } else { printf ("  ");   }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_R) { printf ("R ");   } else { printf ("  ");   }
       if (pressed & WPAD_CLASSIC_BUTTON_HOME)   { printf ("Home"); } else { printf ("    "); }   
      
      
      // Etat des bouttons de la Wiimote avec WPAD_ButtonsUp
      pressed = WPAD_ButtonsUp(WPAD_CHAN_0);
      gotoXY (3, 7);
      printf("Boutons Nunchuk avec WPAD_ButtonsUp:   ");
      if (pressed & WPAD_CLASSIC_BUTTON_LEFT)   { printf ("G"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_RIGHT)  { printf ("D"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_UP)     { printf ("H"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_DOWN)   { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_A)      { printf ("A"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_B)      { printf ("B"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_X)      { printf ("X"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_Y)      { printf ("Y"); }    else { printf (" "); }                   
      if (pressed & WPAD_CLASSIC_BUTTON_PLUS)   { printf ("+"); }    else { printf (" "); }
      if (pressed & WPAD_CLASSIC_BUTTON_MINUS)  { printf ("-"); }    else { printf (" "); }   
      if (pressed & WPAD_CLASSIC_BUTTON_ZL)     { printf (" ZL");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_ZR)     { printf (" ZR");  } else { printf ("   ");  }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_L) { printf (" L");   } else { printf ("  ");   }
      if (pressed & WPAD_CLASSIC_BUTTON_FULL_R) { printf ("R ");   } else { printf ("  ");   }
       if (pressed & WPAD_CLASSIC_BUTTON_HOME)   { printf ("Home"); } else { printf ("    "); }
      
     
      // Joypads
      WPAD_Expansion(WPAD_CHAN_0, &ext);
      gotoXY (3, 9);
      printf("Joypad Pos.      Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.pos.x,    ext.classic.ljs.pos.y,    ext.classic.rjs.pos.x,    ext.classic.rjs.pos.y);
      gotoXY (3, 10);
      printf("Joypad Center    Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.center.x, ext.classic.ljs.center.y, ext.classic.rjs.center.x, ext.classic.rjs.center.y);
      gotoXY (3, 11);
      printf("Joypad Min       Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.min.x,    ext.classic.ljs.min.y,    ext.classic.rjs.min.x,    ext.classic.rjs.min.y);
      gotoXY (3, 12); 
      printf("Joypad Max       Left X:%2i Y:%2i     Right X:%2i Y:%2i ", ext.classic.ljs.max.x,    ext.classic.ljs.max.y,    ext.classic.rjs.max.x,    ext.classic.rjs.max.y);
       
      X1 =   ((ext.classic.ljs.pos.x - ext.classic.ljs.center.x) * 200 / (ext.classic.ljs.max.x - ext.classic.ljs.min.x));
      Y1 = - ((ext.classic.ljs.pos.y - ext.classic.ljs.center.y) * 200 / (ext.classic.ljs.max.y - ext.classic.ljs.min.y));
      X2 =   ((ext.classic.rjs.pos.x - ext.classic.rjs.center.x) * 200 / (ext.classic.rjs.max.x - ext.classic.rjs.min.x));
      Y2 = - ((ext.classic.rjs.pos.y - ext.classic.rjs.center.y) * 200 / (ext.classic.rjs.max.y - ext.classic.rjs.min.y));
      gotoXY (3, 14);
      printf ("Valeur joypad par calcul    Left X:%4i Y:%4i    Right X:%4i Y:%4i ", X1, Y1, X2, Y2);
      
      X1 /= 4*3; Y1 /= 8*3;
      gotoXY (20,    22);    printf ("+");
      gotoXY (20+X1, 22+Y1); printf ("*");
      
      X2 /= 4*3; Y2 /= 8*3;
      gotoXY (55,    22);    printf ("+");
      gotoXY (55+X2, 22+Y2); printf ("*");


Et enfin pour la manette Gamecube !

Code: Tout sélectionner
           u32 pressed;
           PAD_ScanPads();
      gotoXY (20+X1, 22-Y1); printf (".");      
      gotoXY (55+X2, 22-Y2); printf (".");
      
      // Etat des bouttons de la manette GameCube avec PAD_ButtonsDown
      pressed = PAD_ButtonsDown(PAD_CHAN0);
      gotoXY(3, 5);
      printf("Boutons manette GameCube avec PAD_ButtonsDown: ");
      if (pressed & PAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_X)     { printf ("X"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_Y)     { printf ("Y"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_Z)    { printf ("Z"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_L)    { printf ("L"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_R)    { printf ("R"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & PAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & PAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & PAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      // Etat des bouttons de la manette GameCube avec PAD_ButtonsHeld
      pressed = PAD_ButtonsHeld(PAD_CHAN0);
      gotoXY(3, 6);
      printf("Boutons manette GameCube avec PAD_ButtonsHeld: ");
      if (pressed & PAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_X)     { printf ("X"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_Y)     { printf ("Y"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_Z)    { printf ("Z"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_L)    { printf ("L"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_R)    { printf ("R"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & PAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & PAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & PAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      // Etat des bouttons de la manette GameCube avec PAD_ButtonsUp
      pressed = PAD_ButtonsUp(PAD_CHAN0);
      gotoXY(3, 7);
      printf("Boutons manette GameCube avec PAD_ButtonsUp:   ");
      if (pressed & PAD_BUTTON_A)     { printf ("A"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_B)     { printf ("B"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_X)     { printf ("X"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_Y)     { printf ("Y"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_Z)    { printf ("Z"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_L)    { printf ("L"); }      else { printf (" "); }
      if (pressed & PAD_TRIGGER_R)    { printf ("R"); }      else { printf (" "); }
      if (pressed & PAD_BUTTON_LEFT)  { printf (" Gauche"); } else { printf ("       "); }
      if (pressed & PAD_BUTTON_RIGHT) { printf (" Droit");  } else { printf ("      ");  }
      if (pressed & PAD_BUTTON_UP)    { printf (" Haut");   } else { printf ("     ");   }
      if (pressed & PAD_BUTTON_DOWN)  { printf (" Bas");    } else { printf ("    ");    }
      
      
      // Etat des joypads de la manette GameCube
      X1 = PAD_StickX(PAD_CHAN0);
      Y1 = PAD_StickY(PAD_CHAN0);   
      X2 = PAD_SubStickX(PAD_CHAN0);
      Y2 = PAD_SubStickY(PAD_CHAN0); 
      
      gotoXY (3, 9);
      printf("PAD_StickX:   %3i - PAD_StickY:   %3i ", X1, Y1);
      gotoXY (3, 10);
      printf("PAD_SubStickX:%3i - PAD_SubStickY:%3i ", X2, Y2);
      gotoXY (3, 11);
      printf("PAD_TriggerL: %3i - PAD_TriggerR: %3i ", PAD_TriggerL(PAD_CHAN0), PAD_TriggerR(PAD_CHAN0));
      
      X1 /= 4*2; Y1 /= 8*2;
      gotoXY (20,    22);    printf ("+");
      gotoXY (20+X1, 22-Y1); printf ("*");
      
      X2 /= 4*2; Y2 /= 8*2;
      gotoXY (55,    22);    printf ("+");
      gotoXY (55+X2, 22-Y2); printf ("*");





3.Utilisation des modes de redémarrages de la wii !

Désormais j'ai évoqué tout ce qui concerne l'utilisation des manettes, nous allons parler des modes de redémarrage de la wii, éteindre la wii, retour au loader.

Pour cela ajouter la ligne pour la wiimote :

Pour retour au loader :
Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { exit(0); }


Ou pour retour au menu wii

Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { SYS_ResetSystem(SYS_RETURNTOMENU,0,0); }


Ou pour redémarrer la wii

Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { SYS_ResetSystem(SYS_RESTART,0,0); }


Ou pour éteindre la wii

Code: Tout sélectionner
if ( pressed & WPAD_BUTTON_HOME ) { SYS_ResetSystem(SYS_POWEROFF,0,0); }



A ajouter après les autres if (pressed & WPAD_BUTTON_xx )....

Pour la manette classique il sufit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & WPAD_CLASSIC_BUTTON_HOME

Cela marchera toujours.

Pour la manette Gamecube il suffit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & PAD_BUTTON_START

Voilà nous avons fini pour le tutoriel sur les fonctions Manettes, initialisation vidéo/manettes et sur les modes de redémarrage de la wii !!

Si vous voulez créer un bon jeu 2D, commencer à lire la section 2 du site de Zéro, SDL est aussi présent sur wii, il vous permettra de réaliser des programmes complexe. ;)

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Sam 18 Oct 2008 12:46
par kyno
J'ai pas trouver sur le site du zéro o_O , tu peux m'aider stp ? :lol:

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Sam 18 Oct 2008 12:54
par Tgames

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Sam 18 Oct 2008 14:48
par kyno
a ok :lol: dsl je croyer qu'il y avait une section wii :lol: :lol: (on voit tout de suite mon intelligence ^^)

Pour la manette Gamecube il suffit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & PAD_BUTTON_START

et si on veux appuyer sur le bouton z par exemple , on mais Pour la manette Gamecube il suffit de remplacer
pressed & WPAD_BUTTON_HOME par pressed & PAD_TRIGGER_Z ??

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Lun 20 Oct 2008 12:05
par CashMan
GRRLIB 3.0.1 est plus sur pour la programmation 2D sur Wii que la SDL ;)

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Dim 7 Déc 2008 14:32
par floriolink
comment on fait pour compiler en .dol ou .elf?

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Dim 7 Déc 2008 18:07
par floriolink
Je trouve vraiment pas meme avec devkit pro.Quand je fais make il me met que le fichier spécifié est introuvable.
aidez moi svp

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Dim 7 Déc 2008 18:08
par Tgames
faut être dans le dossier où se trouve le fichier make (sans extension)

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Dim 7 Déc 2008 18:12
par floriolink
ça marche toujours pas,tu peux essayer d'etre plus précis stp?!

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Dim 7 Déc 2008 18:31
par Tgames
A l'aide d'un invité de commande (CMD), tu tape les cd pour arriver dans le dossier qui comporte les sources et qui as aussi un fichier makefile ou wiimakefile ou make (sans aucune extension).

Exemple: je veux compiler un programme ce trouvant dans le répertoire C:\DevKitPro\Exemple\Wii\MonHB

tu fait : cd... plusieurs fois pour arriver sur c:/

Puis tu fais cd DevkitPro, ensuite cd Exemple, etc...

Ensuite tu tape make

Voilà c'est tout.

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Mar 9 Déc 2008 19:49
par floriolink
Merci tgames pour ton aide mais ça ne marche malheuresement pas et je voudrais montrer l'étendu du problème:
Déja mon projet se nomme:my programme wii.dol et est placer là:C:\DevKitPro\Exemple\Wii\Mon application\my programme wii.dol
L'erreur lors de l'action make est:
> "make"
> Failed to create process: Le fichier spécifié est introuvable.
> Process Exit Code: 0
> Time Taken: 00:00
J'ai fait tout le code puis je lance le fichier:template.PNPROJ,là je clique sur make et ça me met l'erreur,aidez moi svp :cry:
J'ajoute que lorsque je lance le fichier main.c qui était déja dans l'archive télécharg avec devkit pro et que je fais make ça marche pas

Re: [Programmation Wii] Création du premier programme Wii

MessagePosté: Mer 10 Déc 2008 13:28
par floriolink
auriez vous une idée svp