Showing posts with label skyblog. Show all posts
Showing posts with label skyblog. Show all posts

Tuesday, July 15, 2008

Bon anniversaire, Bilou

Eh oui, ça fait maintenant deux ans que je bricole sur ma DS. Et figurez-vous que en voulant retracer l'historique, ma mémoire m'a fait défaut. Elle n'a apparemment retenu que les évènement "vie réelle" (achat de maison, mariage, conférences, changement de voiture, etc) et éventuellement greffé les bouts de développement DS qui s'y rapportaient.

For some reason, /dev/brain only stored memories of real-life events since I started homebrew development. Let's recap.

juillet 2006 - octobre 2006 : Balbutiements
Les débuts de SEDS, qui commence sur émulateur uniquement, puis reçoit la libfat pour stocker les fichiers sur la carte SD. Et en deux ans, je n'ai toujours pas fait sauter la "limite" de 4 fichiers, même si la quantité de données autorisée sur un fichier, elle, a considérablement progressé.

July 2006: Baby steps. I get started with a sprite editor attempt just on emulator, then I got true hardware and add libfat support so I could save my work on the SD card. I take shortcuts such as '4 files will be enough for everybody' which is still true as of today. By October'06, I have a first snowy tileset and a santa character converted from a .PCX file. I'd like to bring in a pinguin baddie I had drawn in an unifinished PC game project and make a Rick Dangerous clone out of it.

Fin octobre, j'ai mon premier petit "tileset" hivernal et Mr Noël récupéré du PC, de sorte que je peux envisager un Rick Dangerous like avec mon papa noël de 2000. Faute d'avoir retrouvé le pingouin de Badman III, le projet n'ira jamais plus loin que ce petit "mockup".
Novembre 2006 - Mars 2007 : Rumbling
Entre la thèse et le déménagement, j'avais apparemment trouvé le temps pour coder un petit "whack a rat" nommé "apple rumble", partant des sources de Tetris Attack. C'est aussi pendant cette période que mon lecteur de carte SD m'a laché, et que je me suis rendu compte de l'ampleur des lacunes du Desmume (l'émulateur DS) de l'époque. D'où le démarrage du projet "runme" permettant des transfers "over wifi"

November'06 to March'07 was a busy time. Writing my PhD, moving to a new home and the like. But still a dug enough time to convert a Tetris Attack clone into a whack-a-mole: Apple Rumble. A definitive failure of my SD card reader will trigger development of runME, my custom WiFi transfer tool. I still rely on emulator snapshots to show my pixels to the world.

Et si les tiles de la "bibliothèque" de Bilou sortent dans leur première version, c'est toujours à coups de SEDS émulé que je les convertis en "mockup". En revanche, beaucoup de fêtes en famille, donc beaucoup de level design pendant cette période-là ^_^
Avril 2007 - Juillet 2007 : Rédaction

Calme plat ... il fallait s'y attendre :P

Aout 2007 - Octobre 2007 : L'odysée du Wifi

C'est la grande reprise de "runme", qui jusque-là pouvait télécharger des fichiers par wifi, voire en afficher certains (.pcx, .spr, .it ...) mais c'est tout. Deux petites lib' releasées au bon moment (l'attente de ma thèse relue) vont permettre la pierre d'angle de mon développement DS : l'auto-update par wifi, ou comment un programme va récupérer une nouvelle version de lui-même et la démarrer sans autre intervention qu'un clic de l'utilisateur.

August'07. The thesis is submitted. I push WiFi support further: all the dsgametools will now support hot-update over WiFi. runME becomes the 'hub' from which SEDS can be invoked, and to which it can return once user tries to 'quit' it.

Suivra une ré-écriture de SEDS pour qu'il puisse gérer plus de sprites (multi-page) et "sortir" vers runme (qui sera aussi en mesure de lancer SEDS), qui sera annoncé sur les forums (à partir de Player Advance) vers la mi-octobre.

Novembre 2007 - Février 2008 : Objectif LEDS
Quelques scripts bien placés et je m'attaque maintenant au débuts de mon moteur de jeux de plate-formes: le scrolling. Théorique d'abord, puis pratique via une petite modification de runme (qui me sert une fois encore d'homme à tout faire) Ensuite, je m'attaque a un éditeur de niveau "autonome", ce qui amène son lot de nouveaux "widgets" et à la création d'une bibliothèque de fonctions utilisées par les trois programmes, j'ai nommé "libgeds" (pour Game Edition on DS).

November'07: it is time I start with the core of my future platforming game engine: scrolling. Once again, runME will be the host (and the fits-all-purpose tool) for testing things. Then comes the time to scroll not only things converted by scripts on a PC, but maps drawn on the NDS itself. That's how libgeds appeared by collecting "widgets" and functions shared by the three programs I have so far.

Février 2008 - Mars 2008 : NTXM
libmikmod ne me convient plus. Trop lourd, trop buggué. Je m'attaque à une intégration du player XM que Oxtob vient de publier. J'attaque aussi la gestion des effets ... un des côtés les plus obscurs des modplayers qui avait fini par avoir raison de mes efforts sous DOS/Assembler en 2000.

February'08: I drop libmikmod. Too heavy. Too buggy. 0xtob has just released an XM tracker and player. Let's integrate that. It lacks effects support, but I can do that. Unlike back in 1997, I now have the power of Internet to explain those things to me

Avril 2008 - Juillet 2008 : GedsDemo
Après cette petite pause musicale, je reprends le développement de mon moteur de jeu. Collisions, animations, déplacements ... Tout ça prend peu à peu place. La première animation postée sur le forum pixelation va aussi être à la base d'une révision quasi-complète du look de Bilou et de sa forêt, ce qui ne se fera pas sans pas mal de bricolage autour de SEDS (de nouveau) notamment pour la gestion et l'import/export des palettes.

April'08. Enough for the musical break. Let's get back to game engine development. Hitboxes, animations, motions, scrolling. Things are getting in place slowly. First 'movie' is posted on pixelation and will trigger an almost complete relooking of Bilou and the green zone, which will require another iteration on SEDS to improve palettes management. And it's also time to extend compatibility to other (DLDI-capable) linkers...

Le tout sur fond de "R4volution", afin d'améliorer la compatibilité de mes programmes avec d'autres linkers que mon Super Card...

Friday, June 22, 2007

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.

Friday, August 25, 2006

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à ^_^

Wednesday, August 23, 2006

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 :P
"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".

Sunday, August 06, 2006

DS SPrite Editor 0.0

Ma fée est en camp pour 2 semaines ... Elle passe par surprise de temps à autres pour récupérer un chargeur ou des papiers oubliés, mais la maison est terriblement vide. Tellement vide que je me suis mis à la ranger, tiens ... pour passer le temps.

" Et maintenant, que vais-je faire ?
De tout ce temps,
Que sera ma vie ?"


Que je lui chantais pendant qu'elle préparait ses sacs. Elle a répondu que j'allais aller travailler, tiens. Pas de bol, c'est le week-end, d'où les rangements. Mais je ne suis pas maso non plus. J'en profite pour bricoler ce petit éditeur de sprites pour la nintendo DS ... Evidemment, pour l'instant c'est pas brilliantissime, mais ça reste (à mon avis) une bonne manière de prendre le hardware en main ... un exemple ? tous les pavés de couleurs pour la grille sont des caractères reprogrammés (256 en tout). On ne sait pas faire ça sur un PC, généralement, mais ici, c'est simple comme bonjour, et ça veut dire qu'il suffit d'écrire la nouvelle couleur au bon endroit pour que toute la case se remplisse ;) Un peu comme si on faisait un logimage avec un crayon qui remplit toute la case d'un coup (à quoi les adeptes du logimage vont me répondre que c'est gâcher le plaisir de crayonner les cases, évidemment :P )

Et je dois dire que l'affichage sur plusieurs calques, c'est vraiment le panar. C'est mon premier sprite editor avec un décor qui n'est pas "uni" ^_^ ... Là, j'avais commencé à y dessiner un bilou, mais je suis partit trop haut et je n'ai pas encore les commandes pour déplacer, inverser, etc.

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