Tuesday, January 30, 2007

School Zone, Level 1 : The Library

Petite récup de sprites, aujourd'hui ... En gros, une fois une "page de sprite" complétée sur ma DS, il me reste à récupérer le fichier ".SPR" et à le transférer dans une DS virtuelle où je réouvrirai le fichier avec SpriteEditorDS (de nouveau) pour en faire une capture d'écran avec The GIMP. Ensuite, c'est parti pour une demie-heure de copier/coller pour se faire un petit aperçu de ce que ça donnera.

Today was another ".spr collection" day. Basically, everytime i have a sprite table done with the SpriteEditor DS, i have to copy the .spr files into a DS emulator and capture snapshot so that i can build mockups with The Gimp ...
This is a scene you might encounter in the second zone of Bilou's Adventure: Bilou and Bouli meet a small book at the school's entrance who wants to go back to the library.

Dans la trame scénaristique du Bilou's Book, Bilou et Bouli rencontrent aux portes de l'école un petit livre qui veut retourner à la bibliothèque. L'avantage d'un niveau tel que la bibliothèque, c'est que c'est bien plus simple pour démarrer: un décor de fond "tout bête" peut facilement faire l'affaire. Ici, c'est une texture "mahogany" générée avec The GIMP grâce à un tutoriel que j'avais trouvé il y a quelques temps.

Je ne suis pas trop mécontent du résultat ... les livres s'agrandissent pas mal à n'importe quelle taille (bon, il faudra rajouter des signets, des titres, etc.) et les blocs de bois sont bien dignes de Furry. Le tout avec la palette de Tyrian, comme toujours ...

The advantage of a "library" level is that it's simpler for a quick-start. A good mahogany texture is enough as a background and pixeling pencils and books is definitely easier than pixeling trees and bushes :P Wood blocks are inspired from Furry of the Furries, and all this has been drawn with the palette from the game Tyrian.
Now i need to add more "personnality" so that it departs from Bookta's shelf, the Eraser plains or the attic in CoolSpot, of course...

Bien sûr, il y aura du travail pour se démarquer de l'étagère de Bookta (Zelda TMC), de la crique des crayons (Rayman 1, cité des images) et du grenier de CoolSpot. Mais la "school zone" est à peu près aussi ancienne que le jeu Bilou ... donc.

Friday, January 12, 2007

"Rainbow Bell"

Twinbee Land, PC, PPP TeamSi Fury of the Furries était mon jeu fétiche sur PC, sur la superNES, c'était (et c'est toujours resté) Twinbee : Rainbow Bells Adventure.

Contrairement aux autres titres de la série "pop'n'twinbee", "rainbow bell" était un jeu de plateforme (ce qui explique que je l'aimais bien) aux couleurs sympathiques et aux musiques envoûtantes. Au départ, c'est Julien qui m'a fait découvrir ce titre. Un jeu loué lors d'un de ses anniversaires, bien trop simple selon ces standards (Juju finissait DK1 ou SMW en une après-midi avec 99 vies et sans perdre une seule vie dans les jours où il était en forme).

Puis c'est Pascal "Kameah" qui a débarqué, dans les années game-maker avec un jeu curieux : un portage de Rainbow adventures pour PC. Repêchant entre-autres dans les graphismes de Badman II, ça a donné à peu-près ceci. Je suis repassé par là et ai retravaillé les planches de sprites (entre-autres) pour en faire un jeu finalement beaucoup trop coloré ... Mais j'étais dans le bon (pour une fois) avec mes bonshommes tout ronds (mon adaptation de son jeu "DBZ" était une hérésie profonde, quand j'y réfléchis).

As Fury of the Furies is my favorite PC game ever, Twinbee II (rainbow bells adventure) is my favorite on SNES. Unlike other titles in the Twinbee series, Rainbow Bells is a colorful platformer with really catchy tunes. I've been first exposed to it at the birthday party of a old friend of mine who happens to be a hardcore Gamer : Julien, but who quickly sold it since it was "way too easy" by his standards. Then, a few years during my "game maker" era, Pascal came with a small and strange-looking game which was intended to be a port of Rainbow Adventures on PC. Picking backgrounds here and there in Badman II i made it look more or less like the picture above. Not that bad, but way too colorful compared to the initial game (see below)

Twinbee II, aka. Rainbow Bell Adventure, SNESAlors Pascal m'a refilé une VHS où il s'enregistrait jouant (et finissant) le jeu. Vous allez rire, mais en session d'examens, je la regardais à peu près aussi souvent que "Star Wars VI". Et j'ai retravaillé quasiment tout. Les animations, les sprites, les décors (en faisant intervenir notamment mes arbres scannés et retravaillés), une "usine" où une série de petits robots "construisent" un upgrade pour notre héros...

Mais tout celà restait bien pâle à côté du titre original. Ou plutôt trop "flashy" comparé aux tons pastels utilisés ...

So Pascal recorded the real game on a VHS so that i could watch him playing, listen to the tunes and whatever -- and be in the "right mood" when working on the "undersee" level. I reworked everything to get closer of the spirit of the game which i enjoyed more and more, watching it even more often than StarWars! And today, i discover than thanks to the "Snes Advance" project, i could potentially play Rainbow Bell on my DS. w00t!

Twinbee II, the richest platformer ever when it comes to gameplay. Maybe in the palm of my hand. That mean you might have the long-awaited (hum) "Kirby and the Amazing Mirror" vs. "Twinbee Rainbow Bells" evaluation.

J'ai fini par l'avoir sur l'émulateur ZSNES, et voilà qu'au moment ou je cherche encore une fois sur le net après des adaptations des musiques (à force de regarder la vidéo, j'ai fini par les siffloter volontiers), je découvre le projet SnesAdvance", potentiellement capable de me permettre de jouer à "Rainbow Bell" sur ma DS.

Il faut dire que c'est un des jeux de plateforme les plus riches (en actions possibles) que j'ai vu. On vole, on saute, on cours, on blaste, on ramasse des options à la pelle sous forme de clochette qu'il faut récupérer après s'être fait touché par un ennemi. Et justement, les ennemis (même s'ils ont tous le même look de robot) ont des comportement très variés de par leurs armes, leur mode de déplacement, etc. Un bijou, je vous dis.


edit'09: à mon grand regret, mon frère n'a jamais "ocremixé" les thèmes originaux de Twinbee, mais en revanche, il nous a mis en ligne les mods qu'il avait écrit pendant cette "passe twimbee-sur-PC", avec un peu plus de contexte "real-life".

Monday, January 08, 2007

mozzibird, thunderfox et firezilla


Avant, j'étais un brave utilisateur de Mozilla. Puis, les améliorations se faisant de plus en plus lentes à venir, j'ai bien dû évoluer (faute de disparaître, comme me rappelait mon père quand je faisait la fine bouche pour le fromage) et passer à Firefox/Thunderbird.

Eh bien, parmi la foule d'améliorations, il y a quand même une chose que je regrette amèrement: l'intégration. L'extension "biff" me permet à peine de savoir que j'ai un mail dans ma boîte via une icône dans Firefox ... Avec mozilla, je pouvais basculer vers mes mails rien qu'en cliquant dessus. Fini. Je pouvais aussi éditer n'importe quelle page Web avec un simple "CTRL+E" et le "composeur" de mozilla... j'ai toujours ce composeur sur ma machine (un des meilleurs "notepad" pour Linux, si vous voulez mon avis), mais ni Firefox ni Thunderbird n'ont envie d'en tenir compte.

Et pire encore: thunderbird s'obstine à utiliser konqueror plutôt que Firefox pour suivre les liens dans les e-mails...

On est pas sorti de l'auberge... J'imagine que tout est beaucoup plus simple pour ceux qui installent d'emblée une Ubuntu toute propre ... mais comme je suis un g33k pervers, j'ai juste fais des apt-get upgrade et téléchargé un fichier d'installation binaire pour avoir firefox 2.0 (une sombre histoire de plugins)

Bref. Si vous utilisez encore Internet Exploser, passez bien vite à firefox. C'est mieux! archi-mieux. Si vous essayez de mettre à jour MSIE pour windows XP, mais que (pour une raison ou l'autre), l'installation est refusée: passez à firefox. Tout ce qui est "nouveau" dans MSIE était déjà dans Firefox un an avant.

Si vous êtes content de votre mozilla : restez sous mozilla, y'a pas d'urgence. Surtout si, comme moi, vous étiez près de 50% de votre temps électronique dessus :P

Saturday, December 30, 2006

runME pre-0.1

Enfin des bonnes nouvelles pour la programmation sur ma DS. J'ai réussi à porter les routines de détection et sélection de bornes WiFi dans mon le modèle de programmation du Sprite Editor. Grosso modo, ce sont les fonctions de SgStair -- dans son exemple d'utilisation de la bibliothèque dswifi -- mais répartis sur quelques widgets de mon crû plutôt que de s'amasser dans un gros fichier "main.c" (qui me rappelle un peu mes débuts en Basic). Et le mieux, donc, c'est que ça marche.

At last some good news in homebrew coding ... I managed to have the wifi accesspoint detection and selection code working with my own Application Engine (that is, pulling the logic of sgstair's work out of his effective-but-huge "main.c" file, split it more-or-less nicely into widgets and windows, and still have it working.

Au départ, j'aurais voulu intégrer ça dans "DSFTP", mais seul une toute petite partie des sources sont disponibles, et d'après les échanges que j'ai eu avec son auteur, il y a peu de chances que ça bouge. Donc je m'y attelle. Mon objectif ? "runME". Un petit programme tout simple (et ouvert) qui listerait une série d'annonces reçues sur un port UDP pour ensuite permettre au propriétaire de la DS de démarrer un transfert TCP pour récupérer et stocker un des fichiers.

Basically, i planned to do this into "DSFTP" application, but his author didn't released any source and he doesn't seem to consider doing it soon ... so my plan is to work on "runME": a dumb (and open-source) application that will let one listen for "upload advertisements" on a UDP port, report what file is available to the user which then pick it from the DS, connects back to a TCP port on which the raw bytes will be received.

Those raw bytes will then be stored on the DS card and the program will be launched.

Well that's the deal, but for now, my eyes need to relax ... i've typed most of this looking only at the keyboard, and my doctor would probably frown if he knew i did some dev'ing today.

the demo with sources : runME-dec30.tar.gz

Wednesday, December 20, 2006

chuzzle

Si je devais cloner un jeu de réflexion sur la DS, ce serait celui-là. une grille 6x6 avec des bidules de couleurs qu'il faut aligner pour les éliminer et remplir une jauge. On passe au niveau suivant quand la jauge est pleine, et on a perdu quand plus aucun mouvement ne permet de faire exploser des peluches (3 minimum).

If i was to code a puzzle-game clone on Nintendo DS, i would pick chuzzle. A 6x6 grid full of colorful furballs that you pop in order to fill a bottle and gain one level. Unlike Tetris Attack, you can pop furballs even if they're not aligned, but every move _must_ pop some. Then you get combos, avalanches, super-pops (5 or more) ... 

contrairement à Tetris Attack, les peluches ne doivent pas forcément être alignées, mais par contre, un déplacement n'est valable que s'il permet de faire exploser des peluches (comme à Othello/reversi). Si on en explose un carré de 2x2, on a "droit" à un méguzzle (le gros vert), et à un chuzzle "explosif" si on en éclate 5 d'un coup (ou plus) de la même couleur.

The game comes even more addictive with the locks that will come regularly unless you do enough combos/super per minute. There are also mega-chuzzles and rainbow chuzzles. Another thing that makes the game addictive is the high quality of animations: chuzzles wiggle and giggle as you move them or when a match could be done. Their fur is also animated when you drag them around, and the music was a real pleasure to have along. I wish raptisoft get a DS license soon and thing about porting the game ^_^ 

Si on ne fait que des groupes de 3, au bout d'un moment, des verrous apparaissent, qui bloquent la ligne et la colonne sur le verrou . . . allez, petit calcul rapide ... pour l'écran 256x192 de la DS, il y aurait place pour des peluches de 32x32 ... Je sais ce qu'il me reste à dessiner ^_^  

edit 2009 : eh non. Toujour pas réalisé, mais Plop Invaders s'en rapproche.

Friday, December 15, 2006

Guru Meditation


Grace aux bons conseils sur forum.gbadev.org, j'ai mon premier "Guru Meditation Error" sur la DS ... Probablement une erreur dans le code de la petite bricole que je suis occupé à faire (réintégrer les routines Wifi avec mon interface de 'SpriteEditorDS' pour pouvoir uploader des exécutables sur la console)

Un peu plus verbeux et moins poétique que les messages amiga, ceci dit. Ca ressemble plus à un écran bleu windows, mais en rouge...

pc: 021c6d6 addr:00000000
r0: 0206f7b0 r8:00000120
r1: 0201450f r9:0b003b84
...
sp:0b003ae0 lr: 0201c6d7
Thanks to the advice found on forum.gbadev.org, i saw my very first "Guru Meditation" error screen on the nintendo DS. Most likely a bug of mine in the code i'm messing with (merging WIFI routines with my SpriteEditor's interface so that i can upload data and software on the DS without rebooting or cart-swapping). It's less poetic than the original Amiga message, though ... more or less a Blue-Screen-Of-Death, but with a red background...

You're also offered 10 lines of register dumps (see above) which may (or may not) help you pin-pointing what's going wrong in your code. Well, i won't show it all, even if that could help me later. And for those who wonder, you can check out the bookmarked links below, or just add defaultExceptionHandler() at your convenience in the program (hint: install it on START press rather than straight from program execution so that you don't immediately lose screen content in case of an error).


Et il y en a 10 lignes comme ça. Même si ça peut m'aider pour débugger plus tard, je vais pas vous imposer le tout, hein.

J'avais enregistré les bookmarks pour y arriver sur http://www.blogmarks.net/marks/tag/guru, mais grosso-modo, il suffit d'appeler defaultExceptionHandler(); en début de programme ^_^