Space Schnablis

Space Schnablis is an Arduino Uno sketch for use with a 3.5” ILI9486 TFT display. It uses the MCUFRIEND_kbv library and shows two platypodes flying through space with fireworks and stars in the background. Touching the screen results in even more fireworks. Fireworks A group of sparks is called a firework, if the sparks have the same color, were created at the same time and are moving in different directions. …

Posted on

RIFF WAVE

Busted and Blue Als im letzten Jahr Gorillaz’ Humanz erschien und ich darauf hingewiesen wurde, dass die Domain busted.blue noch nicht vergeben war, wusste ich noch nicht was ich damit tun sollte. Seit ein paar Monaten liegt dort nun eine relativ Dynamische Seite, die die Lyrics des Liedes Busted and Blue beim laden verstreut1. Das allein wird schnell langweilig. Die nächste Idee war es, die Zeilen einzeln zu animieren, das Lied im Hintergrund zu spielen und die aktuelle Zeile hervorzuheben. …

Posted on

Custom image.Image Format in Go

Nachdem ich vor ein paar Wochen über Sprites in NES ROMs geschrieben habe, wollte ich gerne eine standardisiertere API anbieten als die verwendete: Read(io.Reader) ([][]byte, error) Entschieden habe ich mich dazu, ROMs wie Bilder zu verarbeiten, wozu sich image.Decode(io.Reader) (image.Image, error) anbietet. Es wählt einen Decoder aus zuvor registrierten Formaten aus. Vor dem main()-Aufruf, werden alle zuvor erstellten init() Funktionen verarbeitet. Dort kann mit image.RegisterFormat ein neues Bildformat registriert werden. …

Posted on

NES Sprites

Ein bekanntes Format für NES-Roms ist iNES. Dessen erste drei Bereiche sind der Header, der Program ROM (PRG) und der Character ROM (CHR). PRG und CHR sind in Banks unterteilt, welche je 16 * 1024 Byte bzw. 8 * 1024 Byte groß sind. Der Header besteht aus 16 Byte. Die erste vier lauten immer 0x4e, 0x45, 0x53 und 0x1a, was in ASCII für NES(SUB) steht. Darauf folgen zwei Byte, welche je die Anzahl der PRG- und CHR-Banks beinhalten. …

Posted on

[] + {} = wat.

In den beiden großartigen Talks Wat und The Birth & Death of JavaScript werden ein paar witzige Eigenheiten von JavaScript gezeigt. Die meisten davon ergeben aber - zumindest ein wenig - Sinn. Array + Array = String › [] + [] ‹ '' Um zu verstehen, wieso Array + Array einen leeren String ergibt, sollte bekannt sein, dass JavaScript nur wenige Primitives besitzt - darunter Number und String. Laut Specification werden beide Seiten um den Addition-Operator + herum an ToPrimitive() übergeben. …

Posted on