[Dev DS] Présentation
Jeu du moment : Zelda - Phantom Hourglass - Musique du jour : Elisa Fiorillo - Don’t Be Afraid
Projet : réécrire un ancien jeu MacIntosh sur PC et en faire son portage sur Nintendo DS.
Jeu : Cogito édité par Atreid Concept/Kalisto
Principe : Sorte de Rubik’s cube 2D, le joueur doit reconstruire une figure en déplaçant lignes et colonnes.
Détails : le jeu original contenait 120 niveaux. Trophé Apple 1989 dans la catégorie réflexion.
Cette réédition contient 2 décors d’origine ainsi que 2 nouveaux décors qui étaient inachévés en 1989 mais présent dans le code source.
La version PC a été refaite en un petit week-end, il ne reste que la musique à intégrer, écrite par Frederic "Elmobo" Motte.
La difficulté augmente, en premier par la complexité de la figure, et ensuite par le comportement des déplacements des rangés/colonnes. Ainsi dans un niveau, appuyer sur la flèche en haut de la colonne 2 fera bouger la rangé 8. Quand ce ne sont pas carrément des flèches de déplacement qui manquent.
Niveau code, c’est enfantin, une matrice de neuf par neuf qui contient les pions et on joue avec les rangés/colonnes.
Pour comprendre le principe, voici une démo du jeu (4 niveaux, 2 décors):
http://romzebest.free.fr/DemoCogito.zip
Le but premier est de porter le tout sur Nintendo DS, cette version PC n’étant qu’une mise en jambe pour dépoussiérer mes souvenirs d’IUT.
Pour ce faire, il faut commencer par installer l’environnement de dev DS. Et là, j’utilise trois éléments:
- le DevKitPro
- le devkitARM en version 21
- la PAlib, superbe librairie qui facilite grandement l’approche du dev sur DS, et qui est livré avec moult exemples super pratiques.
Petit exemple de code:
#include <PA9.h>
char text[200];
int main(int argc, char ** argv)
{
PA_Init(); // Initializes PA_Lib
PA_InitVBL(); // Initializes a standard VBL
PA_InitText(1, 0); // Le texte sera placé su l’écran du haut de la DS
u8 i;
while (1)
{
for (i = 0; i < 10; i++) PA_OutputSimpleText(1, 6, 7+i, " "); //clearscreen
// Affiche un texte si le stylet appuye sur l’écran :
if (Stylus.Held) PA_OutputSimpleText(1, 6, 7, "Le stylet est appuyé!");
// Affiche les coordonnées du point d’impact du stylet.
PA_OutputText(1, 1, 11, "Position du stylet : %d, %d ", Stylus.X, Stylus.Y);
PA_WaitForVBL();
}
return 0;
}
Vous l’aurez compris, cela indique sur l’écran du haut la position cliqué par le stylet sur l’écran du bas.
Vraiment facile d’approche pour quelqu’un qui sait coder un minimum en c/c++.
Enfin, pour tester l’homebrew sans passer à chaque fois par mon linker, l’émulateur Ideas pour windows. Mais il est quand même vital de tester certains effets directement sur la console, l’émulateur ne reproduisant pas fidèlement la console.




21 septembre 2008 à 15:04 Citer
Chouette musique du jour.
21 septembre 2008 à 22:48 Citer
Je ne sais pas si tu as déjà essayé de programmer sur DS, mais je te souhaite de réussir ton projet car c’est une plate-forme assez fascinante avec ses fonctionnalités qu’on ne retrouve que sur cette console.
J’ai aussi un projet un cours, Carton Slug ([url]http://cartonslug.dev-fr.org/[/url]) DS, et je dois dire que le plus contraignant est le debugging qui est entièrement manuel et très fastidieux…
Bref, bon courage !
21 septembre 2008 à 23:43 Citer
Merci Ano.

Je pensais pas que c’était aussi facile. J’ai fini mon projet en une après-midi. Reste la partie graphique à faire. Mais ya pas à chier, PAlib c’est vraiment de la bombe en barre.
En haut, le modèle, en bas, le plateau de jeu.
Me reste plus qu’a faire joujou avec les palettes -_-"