Monday, July 03, 2006

Premiers Tests sur la DS

bon. On y va ... devkitpro réinstallé, les outils "ndstools" et "dsbuild" recompilés depuis le CVS, idem pour les examples (eux aussi repris direct du CVS), cette fois-ci, ça va marcher.

The development kit is installed, and i'm now trying to compile (and make sense of ) the examples provided with the stuff. I'm using Desmume emulator and try to figure out the main mechanisms of the DS (which works terribly like the SNES etc when it comes to 2D graphics) : reprogrammable charset on multiple layers and autonomous sprites. It's really reminding me of my C64, but poke-less.
Et en effet. Je jubile: les premières images créées par un programme compilé localement s'affichent sur l'émulateur DeSmuMe ... S'agit maintenant de comprendre comment tout ça marche. Comme quasiment toutes les consoles (GB, SNES, ...), la DS construit ces images en partant d'un certain nombre de "plans de fond" superposés les uns aux autres (BG0...BG3) par-dessus lesquels seront animés des "sprites" (mario, les goombas ...)

comme il y a deux écrans, et en fait deux "processeurs graphiques" quasiment indépendant, on va retrouver une grande partie des commandes en doubles, ainsi,

videoSetMode(  MODE_0_2D |
           DISPLAY_SPR_ACTIVE |  //turn on sprites
           DISPLAY_BG0_ACTIVE |  //turn on background 0              
           DISPLAY_SPR_1D   //this is used when in tile mode                    );
agit sur l'écran du haut et active une couche de fond (par exemple pour du "texte"), et les sprites. Alors que
videoSetModeSub(  MODE_0_2D |
           DISPLAY_SPR_ACTIVE |  //turn on sprites
           DISPLAY_BG0_ACTIVE |  //turn on background 0              
           DISPLAY_SPR_1D   //this is used when in tile mode                    );
active l'écran du bas (l'écran tactile) avec deux couches de décors et les sprites... Il faudra ensuite remplir les infos de tous ces petits pixels dans la mémoire video, qui se retrouve découpé en plusieurs tranches:
- le contenu des plans de fond, qui se programment comme un plateau de "Scrabble" : dans chaque case, vous pouvez mettre une lettre -- sauf que dans ce cas-ci, une "lettre" peut très bien contenir un morceau d'arbre, de mur, un nuage, etc.
- les caractères à utiliser sur le plan de fond (c'est ici que vous décidez si on verra un "A" ou un coin de nuage.
- le contenu des sprites (grosso modo, l'image de Mario en BMP)
- le contrôle des sprites: lequel est affiché où, etc.

Tout cela se règle avec vramSetMainBanks, dont le fonctionnement exact m'échappe encore un peu ...

Evidemment, tout comme on avait "videoSetMode" et "videoSetModeSub", il y aura une mémoire différente pour l'écran supérieur et l'écran inférieur: SPRITE_GFX_SUB, par exemple, définit l'aspect des sprites sur l'écran tactile, alors que SPRITE_GFX sert pour l'écran supérieur ... Idem avec OAM (où sont les sprites, écran supérieur) et OAM_SUB (où sont les sprites, écran tactile).

Le résultat en image: le programe "TestTouch" modifié par les soins de votre serviteur pour afficher la "grosse balle rouge" (là où vous avez cliqué) sur l'écran tactile du dessous aussi bien qu'au dessus. Ca ne sert absolument à rien, bien sûr, et s'il n'était pas 23h33, je passerait probablement un peu de temps à remplacer la balle rouge par une bleue avec des yeux ... ce sera pour une autre fois.

Voilà. Désolé si c'est complètement technique et imbuvable. Je suis un programmeur et on ne se refait pas. Déplacer des sprites sans devoir tout repeindre à la main, ça fait 10 ans que j'avais plus fait ça (la programmation vidéo sur PC, c'est vraiment le summum de l'horreur). 'vais me coucher, maintenant. A+

Thursday, June 29, 2006

Le Boss des Maths

whoaaah! carrément mythique: les premières images du Crayon ... dessinnées par Pierrick sur papier millimétré puis numérisé par mes soins ... j'en ai fait des tonnes, des commes ça ! ...

Madness ? This is HISTORY! The first ever "pendats" pixels drawn by Pierrick on millimeter-pitched graph paper so I could "digitize" them later on. I've got sheets and sheets of such pixels, others by my brother, some by myself.


'faut dire qu'à l'époque, je n'avais pas encore réalisé de "sprite editor", et je n'avais accès à l'ordinateur familial que 1h par jour ... alors tout ce qui pouvait être préparé sur papier était préparé sur papier ... j'ai même retrouvé les grilles qui m'on servi à retranscrire l'arbre qui apparaît dans Bilou's Quest et Bilou's Adventure ... Un dessin 60x60 dans Delux Paint IIe entièrement "imprimé à la main" sur papier (sur feuille quadrillée) avec près de 40 codes de couleurs différents (et les codes RVB correspondants) avant d'être ré-encodés sous forme d'un listing BASIC qui retraçait le dessin pour pouvoir le capturer comme un sprite ... Trois cachets d'aspirine au moins !

To put that in perspective, keep in mind that I had no "sprite editor tool" until 1994 and could only use the family computer for 1 hour a day, so everything that could be prepared on paper was prepared on paper. millimeter-sized first, then on regular 5mm-pitched paper with color-coding not unlike what you could find in cross-stitching books (the most complex being a 40-colors 60x60 pixels tree drawn in Deluxe Paint 2 for Bilou's Quest, later reused in Bilou's Adventure). They had to be hand-typed into DATA digits in BASIC programs that would then trace them pixel by pixel and save them into QuickBasic-friendly files. That's what coding was like before wotsit.org ...

Faut dire qu'à ce temps-là, je n'avais pas accès à Wotsit.org et que mes seules connaissances sur les fichiers .ico (et .bmp du coup) avait été acquises au terme d'heures entière de reverse-engineering avec Nowan.

C'était le bon temps :)

Wednesday, June 14, 2006

J'attaque la DS

Ce coup-ci je m'y met: je me lance dans le développement sur nintendo DS. Bon, ne vous attendez pas à du sensationnel genre "Bilou en 3D" ou "Badman IV" ni même un portage de Clicker (bien que ce serait fun).

Finis les grands projets még-à-l'eau: j'attaque par la base. Petits "sprites editors" et autres qui serviront de base. Ce serait déjà bien fun si je pouvais créer et animer des persos depuis mon fauteuil, transférer tout ça sur PC et le ramener dans un jeu plus tard.
En plus, d'après mon expérience sur PC et C64, c'est encore par là que c'est le plus facile d'attaquer: pas besoin d'avoir une tonne de texture et compagnie pour s'y mettre ... Puis je ferai tourner le "tracker" pour DS dessus et je prête la bête 2 semaines à mon frère pour qu'il me fasse une zik ou deux, et c'est parti pour "Bilou Sky Quest DS" :)

Let's go! i'm starting DS development. I don't bother doing large projects such as Badman IV or a 3D Bilou game. This time, let's make it simple first. Small editors for pixeling and animating characters from my armchair would already be a nice starting point. Maybe our "Bilou Sky Quest" shoot'm'up could be a starting point after i integrate a modplayer...


http://www.aaronrogers.com/nintendods/wifime.php
http://www.devkitpro.org/
http://www.double.co.nz/nintendo_ds/
http://www.dsdev.org/ -last updated in 2005. See https://web.archive.org/web/20100505045923/http://www.dsdev.org:80/

Thursday, March 09, 2006

souvenirs, souvenirs

J'ai réussi à recréer une image jouable de Bilou en QuickBasic ... en tout cas avec l'émulateur QEMU.

l'ennui, c'est que le jeu se gèle dès que le son est utilisé ... faudra que je cherche un autre émulateur PC...



cj, Posted on Tuesday, 23 May 2006 at 3:38 PM

et faudra que tu me files l'archive ::)

whyme_t, Posted on Thursday, 09 March 2006 at 8:35 PM

Looking good Pype! :) Good work!

Wednesday, March 01, 2006

Forêt Facétieuse

Un petit dessin que je retrouve chez mes parents ... j'essayais en quelques lignes de rendre l'ambiance des principaux "niveaux" de Bilou ... comme d'habitude, j'avais fait la forêt (niveau 1) et ébauché l'école (niveau 2) ...

puis je suis passé à autre chose :P

Ca explique peut-être pourquoi je commence les trucs 3D avec l'école: disons que ça fait 10 ans maintenant que Bilou se balade en permanence dans la forêt ... il est temps de passer à la suite, non ?

Tuesday, February 21, 2006

#! /bin/bash >/dev/bilou

Toujours dans le cadre de la "school zone", et pendant que Cyril est occupé à modéliser un crayon, je m'essaie à la 3D avec un personnage beaucoup plus simple: BangBash ... oui, vous avez raison: c'est bêtement un point d'exclamation avec des yeux, le genre de perso qui illustre assez régulièrement les articles que je relis ou les rapports des étudiants.

A priori, pas grand-chose à faire faire à un tel personnage, excepté le faire avancer en sautillant sur son point ... ouimaisattends ... dans Unix, les "scripts shells" (ce qui remplace les .bat de windows) commencent tous par les caractères "#!" suivi du shell à utiliser: /bin/tcsh ... /bin/sh ou /bin/bash ...

Still in the 'school zone' theme, while Cyril is busy creating a 3-D model of my pendat, I'm giving a try with a 'simpler' character: BangBash. Yes, you're right: that's just an exclamation mark with big eyes. The kind of 'character' I frequently draw on students' reports and papers as I read them.

You can't expect much moves from such a monster, though. It move around doing small hops, and that's ... hey ... waitaminute. Unix shell scripts all start with a '#!' sequence (called bang-thing) followed by a shell name to use, like /bin/tcsh, /bin/sh .... or /bin/bash. And well, you read English, so I don't need to tell you what 'to bash' means, right ? well, so here is BangBash, the Bang-character that can bash you so hard you'll fly to the closest wall. Let's see if I can find a soft to animate him ...

Ajoutez à ça le fait que "bash" signifie quelque chose comme "coller une mandale au point que tu vas te retrouver scotcher au mur" en anglais et vous avez une vague idée de ce qui a pu me donner l'envie de faire tournoyer "BangBash" autour de son point au ras du sol pour essayer de choper Bilou et de l'envoyer valdinguer au cinq-cent-mille diables (HP -50 garanti)

Plus qu'à déveloper le soft pour animer le perso, maintenant :P

Sunday, January 01, 2006

J'ai une DS

Pour l'instant, elle ne me sert qu'à jouer à Mario & Luigi: Superstars Saga, mais j'espère bien pouvoir faire plus ... Avec l'annonce d'un New Super Mario Bros, d'un nouveau Zelda et d'un nouveau Yoshi's Island, ça devenait nettement plus tentant qu'avec un Nintendogs ou un Mario 64 contrôlé au stylet...

Got a Nintendo DS. Mostly because there are great games announced this year (unlike the uninspiring nintendogs of last year), and some good GBA titles as well (kirby, zelda and maybe some Mario Bros. or DK). Maybe I'll do some homebrew games in the future. If not on NDS, at least I know it is possible on GBA.