récup skyblog.

Tiens. Ils se sont décidés à ajouter les “pages-par-post” sur mon vieux skyblog. L’occasion de vous donner les pointeurs vers mes premiers posts sur la DS … Assez amusant de relire des billets un peu “roadmap” après un an et de se rendre compte que les objectifs ont déjà bien évolué.
edit 2009: avec le système de “scheduling des posts” de bloggers, je peux maintenant faire apparaître tous ces articles à leur véritable date dans ce blog.

<!– Ne vous étonnez donc pas de les trouver en double. There was a few posts about my DS programming experiments in my old skyblog. As it looks they finally implemented the “post page” feature, i can give you pointers to their actual location. Most of those posts feature an english translation if you just click the the “date: title” entries … That’s quite fun to read “roadmap” posts one year later. Not that i have been especially productive on the DS this year, but the projects are already shifting towards more sophisticated stuff …

I won’t try to translate fully those logs, but to give you a quick overview of the timeline.

14/06/06: 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/

03/07/06: 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

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 );

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+

23/08/06 : Premier Bilou sur la DS

CA y est, les gars. Le matériel de GameLand-Shop.fr est arrivé … supercard, superpass et lecteur de cartes SD en USB, tout y est! Et bonne nouvelle, mon sprite editor marche presqu’ impeccablement (évidemment, avec un design aussi minimaliste, je vois mal ce qui aurait pu foirer :P)

Hahaa! My homebrew dev’er hardware has arrived. Supercard, Superpass and SD card readers. I gave my Sprite Editor a real try and it works! Here it comes : the electronic millimetric sheet for drawing things ^_^. Only one sprite and no saving at this time 😛

“Ah, si tu mets Bilou dessus, je veux bien regarder”, me disait mon e-papou l’autre jour. Bin voilà, en arrivant chez eux, j’ai redessiné un p’tit bilou sur cette grille-là et je lui ai montré … “Tu retournes aux sources, là”, répond e-papou en voyant le même genre de grille que celui que j’ai utilisé il y a près de 10 ans pour tous mes petits jeux… Bin oui, c’était l’idée … sauf que je ne suis plus obligé de démolir des claviers en faisant “flèche, espace, flèche, espace, flèche, espace” pour remplir un carré 🙂

“C’est encore plus un retour au source” que je lui dit, “c’est un peu comme si j’avais une feuille de papier millimétrée intelligente qui pourrait retenir tout ce qu’on dessine dessus … enfin, sauf que j’ai pas encore programmé les sauvegardes, donc si je l’éteint, j’ai perdu mon Bilou”.

25/08/06 : Writing code that works …

Deuxième petit programme pour la DS … Hier matin, un peu avant le temps de midi, j’entends passer la musique que mon frère avait écrit pour un jeu jamais réalisé: XMASMAN vs Packs … un concept de tetris ou le père noël doit empiler des cadeaux qui dégringolent…

A second small utility : picture grabber. It’s pre-compiled with a .pcx file that is shown on the bottom screen and allows you to grab parts of the image into tiles for sprites (that moves on the upper screen) and that you can later save on the SD card).
The intent was to speed up porting of my former “pixel art” and do small games … which never took of. But it was the starting point of “runme”, the all-in-one DS-WiFi-PC converter stuff.

J’avais fait des super petits sprites (vous savez ce que c’est, hein, maintenant) avec un chouette programme (Delux Paint II, je l’avais déjà sur mon 8086, celui-là!), et je les ai toujours… alors je me dit “voilà le petit jeu que je pourrais facilement avoir réalisé pour noël!”. Il marcherait nickel avec 2 écrans, pas trop még-à-l’eau ni rien. Mais bon, ce serait ridicule de devoir redessiner tout avec le SpriteEditor DS qui n’est pas encore au dixième des possibilités de DP2.

Donc je rebidouille un petit “sprite grabber”, un outil qui affiche une image complète et qui permet d’en récupérer des morceaux. Première esquisse sur le temps de midi. Ca tourne dans l’émulateur. cool.
Je reviens le soir @home et ma fée est toujours à Maastricht pour la-journée-ou-les-magasins de-bricolages-sont-ouverts-jusque-21h … Et je rattaque. A 20h30, j’ai intégré le code de Chishm et DragonMinded, et je fais le premier essai “temps réel” d’écriture de fichiers sur ma petite carte SD.

Et ça marche, les gars! Sortez les cotillons, c’est la journée du code qui fonctionne (après une semaine de combat avec les codes à redondance cycliques de ma carte-réseau-qui-tue qui s’est enfin mise à fonctionner le matin)!

Donc voilà, y’aura encore un peu de boulot pour qu’on puisse choisir n’importe qu’elle image et sauver dans plusieurs fichiers, mais le départ est là ^_^ –>

2 thoughts on “récup skyblog.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.