Je me suis amusé à ajouter de la musique à ma démo "Axelay" NES 🙂. C'était avant tout un prétexte pour découvrir de plus près à quoi ressemble un sound engine sur NES, si c'est facile à intégrer et à utiliser, combien de ressources ça consomme etc...
#Retrogaming #NES
1/25
Et ça me permet d'avoir une version complète et finale de cette démo que j'aime bien.
J'ai donc fait une vidéo (pour le son). A vous de deviner d'où vient la musique? 🙂 (j'ai aussi une version Dr Wily's Castle MM2 mais c'est un peu trop connoté😅).

2/25
J'en ai profité aussi pour convertir la ROM au format 256 Ko (mais toujours NTSC only), donc pleine de vide, mais c'est un format plus standard notamment pour les cinglés qui load ce genre de truc sur des EEPROM pour faire des cartmods 😀...
drive.google.com/file/d/1Y153yP…
3/25
...parce que tout le monde sait que les everdrives c'est pour les noobs hein @YoltOne ?😀
Yolt fait tourner la démo sur une vraie famicom et vraie cartouche grâce à un cartmod sur une base Racer Mini Yonku, un jeu Konami (assez moche) de Août 1989 , et ça tourne nickel!
4/25
Et je me dis que c'est aussi une bonne occasion pour faire un vrai thread complet sur cette démo, chose que je n'avais pas pris le temps de faire à l'époque. Je n'avais pas encore ce réflexe d'utiliser mon compte twitter comme un blog 🙂
5/25
C'est donc une démo technique NES en assembleur qui avait pour but de reproduire l'effet "rouleau" de Axelay SNES qui n'est pas du mode 7 mais un "simple" raster effect sur le scrolling vertical (ma démo ayant alors fonction de démonstration de cela).
6/25
A la différence que sur ma démo NES ce raster effect va absorber 56% des ressources CPU (et ca aurait pu être pire) là ou la SNES possède une fonction hardware (HDMA) pour prendre en charge ce type d'effet qui peut donc être réalisé avec sensiblement moins de ressource CPU.
7/25
Pour mieux comprendre comment fonctionne ce type d'effet, pourquoi les connaissances incomplètes de la NES ne permettait pas de le faire à l'époque, pourquoi ce n'est pas transposable sur Master System etc... je vous renvoie à mon billet de blog:
upsilandre.over-blog.com/2019/07/les-ar…
8/25
La démo tourne en 60fps sans aucune chance de voir un drop car il y a encore un peu de marge CPU même en stress maximum et même avec l'ajout de la musique. Le framerate est donc meilleur que dans Axelay mais c'est l'avantage d'une simple démo technique ou l’on maîtrise tout.
9/25
Et paradoxalement la définition aussi est meilleure que dans Axelay avec du 256x240p vs 256x224p mais parce que sur NES on n’a pas le choix du mode vidéo. La NES force le full 240p (quitte à déborder dans l'overscan) mais pour un shmup vertical ce n'est pas inintéressant.
10/25
Dans cette démo je tenais aussi à intégrer les sprites dans la perspective contrairement à Axelay. C'est à dire appliquer le même scaling sur le background mais aussi sur les déplacements et collisions des sprites (astéroïdes, bullets...) et donc aussi sur le "gameplay".
11/25
Tout est alors géré dans le même espace virtuel étendu (476 lignes) que je "compresse" ensuite ce qui donne une certaine cohérence à l'ensemble (et une zone de shoot étendu) auquel j'ajoute aussi un LOD sur les sprites pour avoir un scaling sur leur apparence aussi.
12/25
Je dirais que c'est la principale différence avec Axelay qui a une gestion classique des sprites sans prendre en considération la perspective qui est alors juste un effet visuel sur le background. Ça donne un mélange un peu étrange visuellement mais qui peut se comprendre.
13/25
Sur une démo technique c'est sympa mais appliquer la perspective à l'intégralité d'un jeu c'est un autre défi et surtout ça implique aussi des choix compliqués sur le gamedesign. Axelay préserve un gamedesign de shmup vertical classique ce qui n'est pas une mauvaise chose.
14/25
J'ai aussi voulu habiller le ciel qui est très dépouillé et simple dans Axelay (c'est juste un dégradé de couleur en HDMA). Par contre je ne peux pas reproduire l'effet de densité atmosphérique sur l'horizon que l'on voit dans Axelay (l'effet "brume").
15/25
Il n'y a pas non plus le scrolling latéral de Axelay. C'est quelque chose qui pourrait être possible mais qui compliquerait un peu plus les choses et surtout je voulais une démo NES sans aucun glitch graphique (c'est le cas) ce qui aurait été très difficile avec cela.
16/25
Manque aussi les effets de double plan de Axelay (possible justement parce que ce n'est pas du mode 7 qui autrement briderait l'affichage à un seul plan) si ce n'est quand même la lave qui est une sorte de second plan de scrolling simulé grâce à une animation de tuile.
17/25
Et puis évidemment je ne fais pas tourner tout un vrai jeu derrière, ça reste qu'une simple démo technique sans ces contraintes.
Le décor au sol, je l'ai extrait de Crisis Force puis modifié pour enlever quelques défauts de construction et améliorer l'animation de la lave.
18/25
Du côté de la musique (qui était la raison première de ce thread 🤓) j'ai d'abord fait des tests avec le driver audio Famitone2 qui a l'avantage d'être relativement économique en ressource mais avec un support limité des features de Famitracker...
19/25
...et je ne trouvais aucune autres musiques compatibles que l'unique fournit en exemple et qui ne me plaisait pas vraiment. Donc ça nécessitait vraiment de savoir composer sur Famitracker pour produire ou adapter une musique pour Famitone2.
20/25
Je me suis alors rabattu sur le driver audio FamiStudio qui accompagne l'outil de création du même nom et supporte toutes les features de celui-ci. Il est aussi accompagné de plein de musiques et de covers en exemple qui me plaisaient bien.
21/25
Par contre, il est plus lourd en ressource. Il propose la possibilité de désactiver le support de certains FX ce que j'ai fait mais ça reste sensiblement plus lourd que Famitone2. Cela dit, comme j'avais encore de la marge sur ma démo je me suis permis ce luxe.
22/25
Et tant qu'à faire je me suis même permis aussi de basculer les bruitages sur ce driver audio qui gère ca (tel des track de musique mais très courte et full FX). J'ai fait des bruitages simples qui ne parasitent pas trop la musique (car c'est les mêmes canaux forcément).
23/25
Au total j'ai mesuré jusqu'à 14.5% de ressource CPU en peak pour le son ce qui n'est pas anodin (c'est un tiers des ressources de la démo hors effet rouleau) mais ça passe.
Ainsi que 7 octets en page zéro, 1952 octets de driver et 3400 octets de data (musique et bruitage).
24/25
Parmi les musiques fourni il y avait Wily's Castle de MM2 et The Moon de Ducktales 😁
J'ai choisie la musique du stage final de Shatterhand qui colle plutôt bien pour un shmup je trouve et n'est pas trop connu / connoté (mais c'est la plus gourmande en ressource CPU).
25/25
En tout cas, je sais maintenant intégrer une musique NES et ce n'est pas trop compliqué.
Voilà, cette démo est enfin complète et à enfin eu le droit à un vrai thread. Je n'y reviendrai plus 😀.
Pour lire mes autres thread jetez un œil sur mon compte d'archive: @UpsilandreA

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Upsilandre

Upsilandre Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @upsilandre

16 Sep
J'ai un gros dossier à poser sur la table qui concerne Konami🤓
Jusqu'à quel point Konami a copié SMB3 quand ils ont fait Tiny Toon Adventure sur NES? Est ce qu'ils ont eu accès au code source de SMB3? Lisez ce thread pour comprendre mon questionnement...
#Retrogaming #NES
1/25
J'aime beaucoup chercher les influences entre les jeux et bien entendu les exemples ne manquent pas. Le dernier que j'ai évoqué ici concernait Ninja Gaiden et Castlevania mais cette fois avec Tiny Toon on est à un tout autre niveau!

2/25
Cette fois ça va au-delà de simplement observer un jeu tourner pour s'en inspirer ou le copier. Et je vais essayer de vous expliquer pourquoi j'arrive à cette déduction.
Je commence par les éléments en surface les moins édifiants mais les plus visibles.
3/25
Read 29 tweets
13 Sep
C'est surprenant de voir à quel point la version Famicom de YS est graphiquement plus aboutie que la version Master System et cela malgré une cartouche pas plus grosse.
#Retrogaming #NES #MasterSystem #YS
1/10 Image
Ça rappelle à quel point le travail des graphistes est déterminant dans le résultat final.
Mais la version Master System est un portage de la version MSX2 il me semble? La ou la version Famicom est une adaptation spécifique. C'est peut être une partie de l’explication.
2/10 Image
Je connais très peu la série mais je sais au moins que cette version Master System avait le mérite d'avoir été très tôt distribuée en France et ouvert la porte aux jrpg la ou sur Famicom tout restait au Japon. Bravo pour ça.
3/10 Image
Read 10 tweets
11 Aug
Comme promis je vais vous raconter pourquoi depuis hier je suis peut être le seul à posséder le bon dump d'un jeu Famicom officiel de 1988😄.
L'histoire est un peu longue mais amusante, il va falloir dérouler 🙂...
#Retrogaming #NES #Famicom
1/21
Le jeu en question c'est Super Dynamix Badminton. Sortie uniquement sur Famicom en 1988.
Il aurait longtemps été l'unique jeu de badminton toutes consoles confondus (le suivant est un jeu Wii de 2008 je crois). C'est un tout petit jeu mais plutôt très sympathique à jouer.
2/21
Dans ce jeu on peut notamment choisir de jouer un homme ou une femme.
Le choix change le nombre de points par set (comme pour les vrais match de l'époque) ainsi que la vitesse du volant.
3/21
Read 30 tweets
22 Jun
Ceci est la partie 2 du gros thread sur les hitbox Ninja Gaiden!
La suite juste ici en dessous 🙂 ⬇️
Le plus gros problème du jeu est lié au scrolling. Celui-ci doit mettre à jour le background chaque fois que le joueur avance de 16 pixels et chaque fois que cela arrive le jeu saute les routines de collision sur cette frame pour compenser.
16/32
Sur ce gif, rien que durant le saut, on voit cela arriver 6 fois (les 6 frames ou il n'y a donc aucun test de collision visible).
Ce n'est pas un bug. Il y a vraiment une ligne de code qui va volontairement faire ce choix entre collision ou mise à jour du background.
17/32
Read 23 tweets
20 Mar
J'ai plein de gif sur les FX de Batman & Robin #Megadrive. Une bonne occasion de faire un thread sympa pour parler des tables de scroll de la Megadrive qui est un peu sa signature hardware.
Déroulez le thread pour en prendre plein les yeux...
#Retrogaming #Batman
1/18
Les tables de scroll de la MD sont une prise en charge hardware de certains effets de scrolling qui nécessitait des raster effect avant cela comme les effets de parallaxe ou de line scroll.
C'est donc une fonction hardware qui simplifie énormément ce type d'effet.
2/18
Et qui évite de surcharger le CPU 68000 qui est mal adapté aux raster effect à cause de ses nombreux registres qui rendent les interruptions coûteuses.

Ca permet aussi de faire des choses qu'on ne pouvait pas faire en raster effect comme les parallaxes de bandes verticales.
3/18
Read 18 tweets
19 Mar
Hier j'ai testé Rockman Megaworld sur #Megadrive la compilation de #Megaman 1,2 et 3 🙂.
Comme je commence à bien connaître ces 3 épisodes, c'était l'occasion de comparer. Si la mise à jour graphique est appréciable, le reste est un peu bancal...
#Retrogaming #NES
1/15
On est clairement sur une adaptation à l'ancienne, c'est-à-dire qui tente de copier de façon empirique juste en observant le jeu original tourner et pas en s'appuyant sur du code originel. Donc malgré le désir de reproduire fidèlement, le jeu est différent...
2/15
Le gameplay, la physique, les timing, les patterns ennemis et leur placement... ce n'est pas le même jeu même si ça y ressemble fortement.
Par exemple, les attaques des Hot Dog sont souvent impossible à esquiver même frame perfect. C'est très mal réglé.
3/15
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(