Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
upsilandre retrogaming

HANG-ON MASTER SYSTEM, UNE HISTOIRE DE BLACK STRIP

En visionnant de façon fortuite une review du jeu, j'ai vu un détail technique que je n'avais jamais remarqué jusqu’à maintenant. Un détail pas si ordinaire que j'ai donc eu envie de partager et puis c'est un bon prétexte aussi pour parler d'un jeu que j'avais beaucoup aimé à l'époque.

C'est donc une adaptation du célèbre jeu d'arcade de Yu Suzuki qui lancera sa carrière principalement pour être la première expérience arcade "Full body" (car dans le fond c'est juste une sorte de clone de Pole Position assumée en remplaçant les F1 par des motos qu'affectionnent Yu Suzuki). C'est le début des taikans chez Sega, ces bornes dignes des parcs d’attractions.

Sur Master System, on perd évidemment l’expérience "Full body" qui était le principal attrait mais reste derrière quand même un jeu redoutablement efficace, addictif, et surtout qui sort seulement 3 mois après la version arcade car ça sera un jeu du line-up de la Master System (la Mark III en l’occurrence) en 1985. Donc dans ce contexte le jeu fait forcément son effet, il ne passe pas inaperçu.

Et il est très important aussi de préciser tout de suite qu'il s'agit d'un tout petit petit petit jeu de 32 Ko. Il faut savoir qu'au lancement de la Mark III il n'y a pas de jeu cartouche, uniquement des jeux format Sega Card 32Ko. Les cartouches (128Ko puis 256Ko et 512Ko plus tard) arriveront 6 mois plus tard en 86. Donc là on parle de 32Ko, la taille d'un (gros) jeu Colecovision ou SG-1000 ou dans la catégorie d'un Excite Bike sur Famicom. Donc attention de ne pas juger trop hâtivement le jeu sans le contextualiser. Ça reste un jeu minimaliste.

C'est un jeu auquel j'ai moi même joué à l’époque sous ce format Sega Card très sexy (avant qu'ils intègrent le jeu dans le bios ou qu'ils en fassent une cartouche). Et j'avais passé pas mal de temps dessus à faire du scoring. Le core gameplay est parcimonieux mais judicieusement ajusté. On garde notamment un bon controle dans les virages sans frustration, on est responsable de nos échecs. La mécanique est que les virages enclenchent une autre façon évidemment plus complexe de gérer nos déplacement latéraux qui nécessite de jouer avec le frein et d'apprendre à maîtriser et anticiper le timing précis de la perte d'adhérence et s'en servir, voir se servir aussi des ralentisseurs tout en évitant les poteaux sur le bord de la route distribués à intervalles réguliers (donc il faut maîtriser aussi la cadence) ainsi que les motos adverses évidemment.

Une fois maîtrisé le core gameplay, le jeu devient facile, probablement trop, mais ça nécessite toujours une bonne concentration et du coup ça produit un flux vidéo-ludique assez plaisant. Et cette sensation agréable du jeu est aussi dû en grande partie je pense à la très bonne fluidité globale. Le jeu est full 60fps sans faillir. Le color-cycle qui sert à simuler le déplacement des lignes blanches et des ralentisseurs est aussi bien décomposé grâce à la palette 4bpp de la Master System. Le line-scroll qui sert à déformer la route pour produire les virages est très propre et tout aussi fluide. On a vraiment une sensation très agréable de fluidité (et l'input lag qui va avec). OutRun sur Master System par exemple c'est 10fps (et même moins en PAL), 20fps sur Megadrive et 30fps en arcade. OutRun est un jeu plus complexe avec notamment du relief mais je vous invite fortement à switcher entre ce Hang-On et OutRun pour bien mesurer la sensation de fluidité et ce que ça apporte sur le feeling du jeu (et si vous voulez un jeu de voiture de ce type à 60fps avec du relief y a Rad Racer sur NES ^^ ). Ce que je veux dire c'est que sur SMS Hang-On n'est pas un sous OutRun, il apporte des choses différentes.
 

 

Le mystère des bandes verticales

Venons-en au détail qui m'a interloqué tout récemment. Il s'agit de ces bandes noires sur les côtés, et plus particulièrement celle de droite qui n’est pas ordinaire.

Ca fait beaucoup de bandes noires

 

La bande de gauche qui fait 8 pixels de large est assez courante. C'est une fonction hardware qui permet de désactiver l'affichage sur la première colonne. Ça sert souvent à cacher des glitchs de scrolling ou de sprite sur les bords. Sur Master System elle est même indispensable dès qu'il y a scrolling horizontal (vous pouvez la voir apparaître en temps réel dans Alex Kidd au premier level lorsque vous plongez dans l'eau et que le scrolling change de sens).

Par contre ce type de fonction hardware n'existe pas à droite et cette imposante bande noire de 16 pixels de large à droite est en réalité composée de sprites! Plus précisément une double bande de 11 sprites soit un total de 22 sprites utilisés pour former cette bande. La fonction de cette bande est la même que celle de gauche, cacher des glitchs.

Même si c'est rare j'ai déjà vu ce genre de méthode (sur des jeux NES que je connais mieux) comme les Tortues Ninja ou Ys qui ont aussi une bande de sprites à droite toujours pour cacher des glitchs (ici des glitchs à cause de la faible granularité de la color map et du scrolling multidirectionnel).

12 sprites à droite
8 sprites à droite

 

 

Mais la bande de Hang-On est encore 2 fois plus large, pourquoi? Faut rappeler que ce genre de jeu de course affilié à Pole Position consiste à utiliser un raster effect pour produire du line-scroll dont l'objectif est de faire scroller individuellement et avec un différentiel chaque scanline de la route (comme un effet de parallaxe horizontale mais avec une granularité très fine à la ligne) dans le but de déformer la route et former les virages qui en réalité n'existent pas graphiquement dans le set de tuile. Seule la route rectiligne existe.

L'écran de droite nous montre la réalité interne de ce type de jeu

 

Il est donc bien question de scrolling horizontal sur ce Hang-On (qui justifie déjà la bande hardware de gauche). Un scrolling qui est donc appliqué sur cette route et ses abords qui est une scène plus large que l'écran ce qui est déjà une contrainte qui implique une gestion dynamique de la tilemap car sur Master System le background en VRAM se limite a la largeur d'un écran pas plus, il n'y a pas de hors champ en VRAM sur Master System. Si on ajoute à cela que ce scrolling horizontal particulier est un line-scroll ou chaque ligne a donc un différentiel ça complique sensiblement la mise à jour dynamique de la tilemap (composée de blocs 8x8 plus grossiers) pour accompagner ces déformations d'où l'apparition de glitchs qu'on peut voir ici quand on enlève les sprites (et donc la bande de droite).

Les glitchs dévoilés sur le bord droit

 

On comprend donc maintenant la fonction de cette bande de sprites noirs. Reste un problème c'est le coût de cette bande noire? C'est plus d'un tiers du budget total de sprites qui sont consommés pour ça mais surtout c'est un quart de la limite de sprite affichable sur une scanline qui est la véritable contrainte des consoles 8bit.

Cette bande de droite fait déjà 2 sprites de large sachant qu'on ne peut afficher que 8 sprites par scanline ça veut dire que le jeu lui même se retrouve alors bridé à un budget de seulement 6 sprites sur la même ligne, ça fait vraiment peu. Le meta-sprite des motos fait 3 sprites (hardware) de large quand elles sont inclinées. Ça veut dire qu'en mettant le joueur + un adversaire à ses cotés on a déjà atteint le budget max par scanline donc tout ce qu'on pourrait ajouter sur les mêmes lignes sera alors en overflow (ne pourra pas être affiché).

On le constate alors sur les poteaux pourtant minces (8 pixels de large soit un seul sprite) mais c'est déjà trop et comme le jeu fait le choix de ne pas mettre en place un flickering des sprites alors le poteau disparaît complètement comme vous pouvez le voir ici au ralenti sur les poteaux de gauche.

Le poteau de gauche disparaît a cause de l'overflow causé par la bande

 

C'est le même problème avec le simple sprite de fumée produite lors des dérapages et qui crée aussi un overflow. 

Cette fois c'est la moto adverse qui disparaît partiellement

 

Et bien évidemment, pas question pour le jeu de placer 2 adversaires côte à côte : on ferait exploser le budget par scanline (et de toute façon ça ne serait pas judicieux en terme de game design, l'honneur est sauf).

Donc c'est vraiment une sacré contrainte quand même pour le jeu cette énorme bande de sprites noires car ça attaque la principale faiblesse des consoles de l'époque (le nombre de sprites par scanline). C'est tant une contrainte que cette méthode sera abandonnée pour les autres jeux de ce type qui suivront comme OutRun et qui n'utiliseront plus de bande de sprite pour cacher les glitchs et se contenteront de les accepter mais en les repartissant mieux entre les bord gauche et droit (au lieu d'avoir tous les glitchs à droite). Vous pouvez voir quelques glitchs de chaque coté sur OutRun (même dans le gif plus haut). OutRun a d'autant plus besoin de s'affranchir de cette contrainte que les véhicules sont encore plus large.

 

Alors je vous ai un peu mystifié car le Hang-On dont je vous ai parlé jusqu’à maintenant est en réalité la version japonaise et pas celle que vous connaissez sans doute. La version euro est un peu différente comme vous pouvez voir ici.
 

La version européenne

 

Le résultat est en réalité le même en terme de contrainte mais la mise en place est plus ingénieuse et discrète. Au lieu de mettre une double bande de sprites à droite ils ont réparti des 2 côtés avec une bande de sprite à droite et une à gauche (en plus de la bande hardware) et au lieu de faire une bande noire qui monte jusqu'en haut de l’écran ils ont fait une bande verte de seulement 5 sprites de haut qui monte à mi-hauteur (car c'est seulement là que sont les glitchs du line-scroll) et qui donc se fond discrètement dans la pelouse. La bande hardware à gauche est maintenant en bleu pour se fondre, elle, avec le ciel.

Au final, les contraintes d'overflow sont les mêmes avec les mêmes disparitions de sprites (et les 12 sprites économisés ne sont pas utilisés car le jeu et le moteur restent les mêmes), la largeur affichée de la route a aussi les mêmes limites mais grâce à cette discrétion on a l'impression d'une image plus large (et c'est effectivement le cas sur la partie supérieur de l’écran au moins) et on voit apparaître cette idée de repartir les glitchs entre la gauche et la droite qui sera exploitée plus tard dans les autres jeux (en s'affranchissant des bandes de sprites).

Et ainsi furent dévoilés les secrets les plus sombres et inavouables de ce jeu du panthéon ^^.

N'hesitez pas a utiliser les commentaires

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article

Tom 30/08/2018 12:04

Très intéressant.
J'avais toujours réduit cette génération de jeux de course à du "grossissement de sprites", sans réfléchir à la technique d'affichage de la route.
Merci !

Upsilandre 30/08/2018 16:55

C'est la que se trouve toute la subtilité :)