Thursday, December 06, 2018

16 couleurs.

Bon, c'est un peu inévitable: à présenter Bilou sur un forum de dévelopeurs NES arrive la question des "demakes" sur GBA, SNES et autres MegaDrive. J'avais déjà un peu regardé ce que ça pourrait donner suite à un commentaire de MonsieurL sur UltimateConsole, mais ni la SNES ni la MegaDrive n'est vraiment convaincante. Pourtant, il y a déjà des bibliothèques pour les aspects bas-niveau qui auraient pu être intéressantes.

Pour commencer, la MegaDrive n'a que 4 palettes de 15 couleurs, décors et  sprites inclus. Ici, dans Bilou, j'ai travaillé avec 8 palettes de 256 couleurs. Bon, on est bien d'accord, je n'utilise pas l'entièreté des possiblités, mais j'ai quand même au moins 6 couleurs de pieds (2 pour Bilou, 2 pour les Pendats et 2 pour les Dumbladors), 4 couleurs de mains, plus des livres et des fardes qui font pas mal dans le color swap. Bref, il faudrait presque considérer une réduction à 60 couleurs fixes. Il y a bien quelques palettes sympa dans ces eaux-là, ce n'est quand même pas top-sexy, comme résultat.

La SuperNES, de son côté a quand-même droit à 8 palettes de 15 couleurs pour les sprites et 8 autres pour le décor. On est déjà nettement plus à l'aise. Jusqu'à 1024 tiles par plan de décor et 512 pour les sprites (moitié moins que sur DS. On ne s'en sortira pas sans une technique façon Zmiro ou Perry) pour un total de 64KB de mémoire vidéo ... presque 10 fois moins que sur la DS. Il faudra aussi compter avec un maximum de 34 sprites 8x8 par scanline (or je fais pas mal de recouvrement) mais bon, c'est pas un bullet hell non plus. Lors des tests automatiques, j'ai au plus 70 objets actifs (pas forcément tous visibles) en même temps.

Un autre élément à prendre en compte, c'est que sur la planète PAL, la gravité est 224/192 fois plus forte que sur la planète DS. tout y est donc un peu plus tassé. Ce n'est pas vraiment un problème pour les indigènes, mais Bilou a tendance à se tasser, ce qui nuit à son charisme. J'utiliserais probablement les lignes de pixels transparents (le corps de Bilou fait plutôt 16x13  pixels au sol et 16x14 en chute libre)

Il y a donc 32 lignes inutilisées (en noir sur l'image) que je pourrais exploiter pour insérer un HUD, vu qu'on perd l'écran du bas.

Bref, Piet, si ça t'inspire, il faudrait que la musique tienne en 64K (disons 48K pour les samples, 16 pour les patterns et le player) et n'utilise que 8 pistes au maximum.

Et pour rire, avec une seule palette de 16 couleurs, on arrive à  ... quelque chose de pas complètement moche, mais quand même fort loin de l'original (bon, c'est de la conversion automatique, évidemment).

Par contre, le homebrew sur GBA serait légal dans certains pays où le homebrew NDS est frappé d'interdiction ... ça mérite qu'on y réfléchisse ...

edit : bon, j'ai pas pu m'empêcher de faire un gros montage de plein de screenshots de SchoolRush, de retirer tous les sprites et de faire "conversion en mode indexé" pour voir où on en est (avec les différentes variantes de teintes pour les livres, le sol, etc). Bin ça fait 190 couleurs en tout. Alors que la SuperNES n'en a que 120 à me proposer ... sur GBA, par contre, ça passerait sans soucis.

 edit again: oui, mais une SuperNES, ça sort un signal analogique. Et sur un signal analogique, le dithering passe beaucoup mieux que sur écran LCD. Je peux donc avoir une variante du contenu qui passera pas trop mal (moyennant quelques retouches sur les crayons qui peuvent se passer des petits pixels isolés et prendre une teinte légèrement différente de celle utilisée sur DS ... ce genre de choses).

A suivre, donc, finalement. Mais attention: la SuperNES n'a au mieux que 3 plans et ne pourra pas faire les vagues avec des sprites parce qu'elle n'autorise au mieux que 34 sprites de 8x8 sur une ligne horizontale, l'image en faisant 32 de large.

6 comments:

cyborgjeff said...

Visuellement, la première image d'un Bilou avec moins de couleur est plutôt convaincante et offre même une certaine lisibilité ! Musicalement, pour la GBA, je me suis toujours posé la question de savoir si certaines musiques utilisais des sons/instruments intégré aux hardware ou non. Sur la SNES, dans la mesure ou un grand nombre de jeux ont une bande son utilisant les mêmes instruments je pense que cette dernière doit en avoir dans son chipsound yamaha. Je trouve qu'il serait en tout cas plus intéressant d'étudier le sujet plutôt que de "pousser" du module tout simplement... je n'ai au fond jamais trouvé que les musiques sur NES à base de module étaient les plus intéressantes. De mes rapides lectures, je sais que le chipset de la SNES pouvait gérer de la reverb et tout sorte d'effet par programmation.

PypeBros said...

je te renvoie à bleeps and bloops pour les détails, mais oui, quand on écoute la musique de Zelda: Minish Cap, on sent clairement qu'on a affaire à du gameboy pour la basse et le rythme avec des samples 8-bit de cuivres par-dessus. Y-a-t'il ou pas mixage en plus ... difficile à dire comme ça. Sur certaines pistes clairement oui (la fontaine aux fées)

Sur SNES, c'est du 8 pistes 8-bit. Je pense que la similitude d'instruments est liée à une banque de sons communes (livrée avec le devkit N ?) parce que faire tenir des instruments réalistes dans les 64K, c'est pas forcément évident.

PypeBros said...

Tiens, il faudra jeter un oeil à GBAMusicStudio, pour le coup.

PypeBros said...

une idée pour le problème des vagues sur SuperNES: il faudrait que le décor "hibou" fasse place au plan "vagues" quand on s'approche du bas. Les fioritures du bois deviendraient progressivement invisibles (effet de palette ?) et la tranche de hibou restante (128 pixels de large au maximum) serait obtenue avec des sprites...

upsilandre said...

Pour les scanlines faut distinguer 2 contraintes. Le nombre max de 34 tuiles (donc 8x8) par scanline et de 32 sprites. C'est pas la même chose.

PypeBros said...

En tout cas, tenter d'avoir un seul jeu de couleurs pour les pieds des Bladors et des Pendats, ça ne donne rien de bon.