Friday, November 16, 2018

rez x-factor 2

Let this be my official "I love (idea I have of) the demoscene" post. (better late than sorry)

back in '96, demoscener REZ wrote a stunning .mod track featuring about 1'30" of chiptune within 3x64 lines of 5
-track (amiga-compatible?) patterns ... He did so by pushing the use of loop commands to an extreme. I love that spirit of taking something that was meant to work within some constraints and pushing it far out of its limits.

He also used very pleasing waveforms (reminding me of Namco's wavetables), of 16 to 64 bytes plus a few larger (300 and 700 bytes) drums. The result is a stunning 8.8K chiptune. Of course, by now, we have 4K compos with songs twice the lenght, but REZ did it without requiring a custom player. Chapeau.

Sunday, November 11, 2018

B-trees

i was thinking a bit more about my handscript recognition system for the NDS this week-end, and i figured out that the sorting techique might not need to be as complex as I initially thought.

The plan is to support the 128 characters of the ASCII charset. There should be a way to define multiple models for the same character — e.g. you might have the ‘d’ character done in either 1 or 2 strokes — but I doubt I would ever need much more than 4 model of each one. That means at most 1K models to sort.

In my technique they can all be indexed with a 16-bit code, but even then storing 64 K pointers would be overkill. I had plans for techniques that find the most discriminating bit(s) for a subset of the models an make an optimal radix tree, but then I realised that with only 1K entries, it might even not be required: a simple B-tree structure would index all the keys with just 64 index blocks of 16 pointers each, plus 4 super_index blocks and one top-level index. This is a perfectly sustainable amount of overhead. Plus I already have a B-tree implementation from my Clicker32 operating system project. . .

Friday, November 09, 2018

InteRLude

eh oui. La VTJ se la joue parfois VDM. Et quand ton lave-vaisselle a décidé de ne plus se mettre en route quand tu pousse sur le bouton power, tu te dis qu'il va de nouveau y avoir un creux dans les progrès du homebrew. Comme en plus tout ça se produit pendant la phase de post-release blues typique depuis la disparition de dev-fr et de la communauté nds :-/

Espérons que j'arriverai quand-même à boucler School Rush cette année ... je viens de me rendre compte que c'était le 25eme anniversaire de Bilou.

Friday, November 02, 2018

School Rush : Post your score

it has been almost one year since the last release of Bilou : School Rush. Through unpractical ideas, oversophistication and deep engine refactories, I finally get something to share with you. Here is maybe the penultimate release bringing 1-UPs and hi-score tables to School Rush.

Download

Voici enfin une nouvelle release de School Rush. Je laisse donc tomber les options trop complexes pour me concentrer sur ce qui compte vraiment pour le jeu: les 1-UPs, le calcul du score (distance parcourue si on ne finit pas le jeu ou temps écoulé si on le termine).

So, compared to the previous builds,

  • you can get 1-UPs by collecting letters. Everytime you get one, the next one will be more "expensive", though.
  • every loading screen show how long it took you to get there and how far was that "there".
  • there is a "congratulations" level at the end of the 'secret, good ending'
  • there is a "game over" screen
  • in both case, a hiscore table will show up. You'll compete for the shortest time if you found the good exist, and for going as far as possible (in pixels) if you're game over.
  • no new levels this time. Core gameplay unchanged.
I do not have yet the code to let you enter your own name at the end of it though (that will likely be for the latest release). The purpose of this one is to ensure that the arbitrary scores mentioned as "special thanks" can be beaten. So you'll always be "Player One" and the pointing hand will not yet help you to see where you are.

J'ai un début de table des scores, aussi, mais pas encore la possibilité d'y enregistrer son nom. ça, ce sera pour la dernière release.

The times are shown as MINUTES:SECONDS:FRAMES, btw. I managed to get to the end in about 10'50", while losing 2 lives (which took me about 2 minutes). So beating KirbyKid will ask you at least deathless play through and beating Wintermute will almost certainly require to pull off some emergent gameplay and speedrunner skills... which isn't necessarily bad.

gameplay

You're controlling Bilou, a blue, ball-shaped explorer. You make him JUMP with the (A) button and grab things (or throw them) with (B). Your goal is to reach the right of each level before you're caught by the ever-raising ink.
You'll need to be quick, too. Use (R) or double-tap in left/right directions as if you were a pink, living vacuum cleaner.

You can stomp some monsters, you can throw sharpeners at others. Remember: the pencil soldats are the only real threat here, and they must be stopped from pouring even more ink for their autoritarist plans. Everything else that looks dangerous is mostly acting on fear and may prove very useful if you keep your head cold. Think about how useful a bobbing sponge could be if you could ride it (B). or how high an inkwell could shoot you ...

There are rumours of magical artifacts that could help you. The Fist of Justice, that noone can stand against (double-B) and the Floating Twister (hold A), that let you reach far away places. It's unlikely the pendats will let you recover them without a fight, though.

Story

At the far east of this school-like country, there is a gauge that will stop the ink. Rush for it! The books city is close to be destroyed once for all, and the elders' knowledge will be lost. This must be another plot from Square Root, who decided that mathematics are the only thing worth of being written down.
Everyone here seems to believe that Bilou is a sort of legendary hero...


How to play

Get the NDS image and play it on your homebrew-ready console or in an emulator, such as DeSmuME. See this page if you need extra explanation/instructions for running homebrews.

Sunday, October 28, 2018

Petit test de TomDroïd

Parce que oui, Tomboy, mon outil de post-its virtuels a références croisées existe pour Androïd et même tourne sur ma tablette e-Ink "onyx boox". C'est une version Beta (>_<) et open-source (^_^) mais pas encore vraiment utilisable à l'heure actuelle.

- parce que saisir des WikiWords avec un système de reconnaissance d'écriture manuscrite qui pense que "Une phrase commence par une majuscule et se termine par un point.", c'est pas top
- parce que modifier un wikiword pour en faire un WikiWord avec un stylet, c'est très moyennement précis
- parce que de toutes façons, il ne suffit pas d'avoir un WikiWord inconnu pour qu'en cliquant dessus on puisse faire une nouvelle note sur ce sujet (contrairement à Tomboy)
- parce que de temps en temps, l'application se dit que ce serait bien de faire une sauvegarde de secours de la note en cours d'édition et qu'elle me renvoie du coup au début de la note. En plus de quoi, le système de reconnaissance de google me sucre les traîts tracés pendant la sauvegarde en question >_<

Donc bravo à ceux qui ont travaillé là-dessus, ne vous étonnez pas si je consomme quelques soirées à m'installer un devkit Androïd quand-même, hein ;)

Saturday, October 27, 2018

1 heure par jour

C'est en gros le temps que je peux encore consacrer au développement homebrew ces temps-ci, avec les déplacements supplémentaires pour les activités des enfants et l'entretien minimum de la maison. Une heure ou je réouvre mon vieux laptop "grizzly" de 2007 qui surchauffe et s'éteint quand on regarde plus de 15 minutes de vidéo youtube en plein écran, qui a besoin d'être sur secteur à chaque cycle d'horloge mais qui offre le confort d'un écran 1680x1050 et d'un clavier avec le bloc "insert/home/pgup/del/end/pgdn" identique à un clavier classique qui s'est révélé plus important qu'un pad numérique.

Une heure par jour pour ajouter une petite brique par-ci par-là. Ou pour constater que ce que j'ai planifié à coup de tablette-à-encre-électronique pendant les creux où j'attends qu'*deline ait fini ses activités ne va pas se combiner avec les autres composants.

Si j'essaie d'ajouter une demie-heure supplémentaire par-derrière pour blogger des micro-succès, je ne tiens pas la distance...

A l'unif, je prenais facilement une demie-heure sur mon temps de midi pour essayer un truc ou l'autre, entre autres grâce à la connexion SSH quasi-automatique entre le PC du bureau et celui à la maison. Mais je faisais régulièrement les trajets en basket+bus, voire à vélo. Avec les loupiots à déposer, je ne marche quasiment plus dehors en semaine à moins de le faire sur le temps de midi. Et moi, si je ne marche pas, je disjoncte. Donc je marche. Tant pis pour les lignes de code homebrew que j'aurais pu mettre (ou les traductions de post) pendant ce moment-là.

Thursday, October 25, 2018

stop using %i!

Hey me-from-the-past. Here is you-from-the-future. Stop using %i. I know you're used to it because your re-implementation of printf for your own x86 microkernel had only %i for printing numbers instead of the standard %d. I know as well that even in my world, printing %d and printing %i produces the same result, but listen, here's the catch:

scanning for %i enables automated base conversion while scanning for %d guarantees digits are interpreted as decimal numbers and nothing else. You don't want "${width}x${height}" to fail being recognized by "%ix%i" just because it looks so much like a single hex number as soon as width is null, right ?

right.

So stay safe, and stop using it.