Wednesday, April 30, 2014

Streaming to SPRITE_GFX

It's a tiny and modest commit to my source code, but with last Sunday's revision, I open up a new animation approach in my game engine: RAM-to-VRAM streaming.
For instance, I can have Bilou's head (when idle) replaced by some animated ink wavelet without requiring additional room in video memory: at every animation step, the proper data block is blitted to VRAM during the blanking period.

Un modeste pas de plus vers l'encre-qui-monte: je peux réutiliser le même système d'animation à base de copie RAM-vers-VRAM sur les sprites composant les personnages. Je pourrais aussi m'en servir pour synchroniser toutes les animations "à l'arrêt" de Inkjet pour récupérer un peu de place dans la mémoire des sprites. En poussant un peu plus l'intégration, je pourrais faire en sorte qu'AnimEDS puisse utiliser le contenu des pages marquées "anim" et ordonne des copies là où il y avait précédemment un simple déplacement d'une "tête de lecture" dans la mémoire vidéo.

Granted, that's totally useless in that way, but applied to inkjet, it could turn a 12K footprint into 4K, at the cost of having all the inkjets waving synchronously. If integrated to AnimEDS (e.g. automatically opting for a I_STREAM instruction instead of I_SPRNO), it could also significantly extend the range of animations for Bilou and make him use less than 1K for his head ... just like Donkey Kong only used a few slots in VRAM in DKC.

No comments: