Envie de participer ?
Bandeau

Cet article explore en détail les différentes versions du jeu Ghouls'n Ghosts, en comparant et analysant 8 versions différentes :

  • Les 4 versions arcade (la première version japonaise originale, la révision japonaise plus tardive, la version US et la version World)
  • 2 versions Mega Drive (la première version japonaise originale et la version internationale)
  • La version SuperGrafx
  • La version X68000

Cet article partagera ce qui a été analysé et comparé jusqu'à présent, sans prétendre à l'exhaustivité. L'objectif est de mettre en lumière les similitudes et les différences entre ces versions, ainsi que de révéler des aspects méconnus du jeu.

La Fidélité de la Version X68000

Il était déjà connu que la version X68000 était très fidèle à l'arcade, alimentant même le mythe que le X68000 serait une sorte de prototype du système d'arcade CPS de Capcom. Il n'en est rien.

Les Versions Mega Drive et SuperGrafx : Des Portages Surprenants

En ce qui concerne les versions Mega Drive et SuperGrafx, il semblait beaucoup plus improbable qu'elles soient aussi proches de l'arcade. Ce sont des plateformes moins ambitieuses et des portages qui sont externalisés et pris en charge par des tiers (Sega, Nec Avenue / Alfa System).

On sait qu'à l'époque, les portages de jeux d’arcade se faisaient principalement de manière empirique, en regardant la borne tourner (le luxe étant juste de disposer de la borne ou la PCB dans le studio de développement en charge du portage). En tout cas, c’est ce qu’on pensait jusqu'à récemment. Notamment, il a été constaté que les bugs et glitchs très spécifiques de la version arcade étaient reproductibles à l'identique dans ces versions Mega Drive et SuperGrafx.

Lire aussi: Stardew Valley : Optimiser la vente de vos armes

Tous ces bugs et glitchs, ici sur la version SuperGrafx, sont exactement les mêmes dans la version arcade ou Mega Drive.

Le Menu Caché de la Version SuperGrafx

Lors d’un débat sur la difficulté des différentes versions du jeu, il a été découvert qu’il y avait un menu d’option caché dans la version SuperGrafx (à peine caché, il suffit de maintenir le bouton 1 appuyé avant de lancer la partie) qui donne accès aux dip switchs de la version arcade qui permettent de modifier divers paramètres de difficulté.

Non seulement l’accès à ces “dip switchs” cachés tendait à confirmer encore l’hypothèse que cette version SuperGrafx contient tout l’ADN de la version arcade mais ça offrait aussi tout un terrain de jeu.

En effet, la version SuperGrafx a une particularité par rapport à toutes les autres. Elle tourne sur une machine supportée par l’émulateur Mesen qui contient les meilleurs outils debug possibles et que l'on maîtrise très bien.

Comparaison des ROMs et Découverte de Données Identiques

L'étape suivante a consisté à comparer directement les ”ROM” de chaque version, côte à côte, dans un éditeur hexadécimal pour faire des recherches. Pour les versions consoles c’est simple, on a des dumps qui prennent la forme d’un fichier unique. Pour le X68000 c’est un peu plus compliqué car tout est compressé sur les disquettes. J’ai donc fait des dumps de la RAM pour chaque stage que j’ai concaténé ensuite. Pour les versions arcade, c’est encore un peu plus compliqué car c’est souvent des dizaines de ROM qui sont dumpées et donc des dizaines de fichiers par jeu.

Lire aussi: Stardew Valley : Guide Ultime

Il fallait pouvoir concaténer tout ça de la bonne façon. C’est-à-dire assembler les ROM (cpu) dans le bon ordre et en tenant compte que parfois ce sont des ROM 16 bits et d’autre fois des ROM 8 bits (ou les 2 en même temps) mais toujours sur un bus 16 bits ce qui nécessite, pour les ROM 8 bits, d’entrelacer un par un les octets de deux ROM à la fois. Tout ça nécessite de savoir exactement où se place chaque ROM dans l’espace mémoire CPU. Heureusement, on trouve ces informations.

En cherchant dans la version SuperGrafx, les tables de données utilisées pour piloter le comportement des différents mobs du jeu (utilisées soit par le système de ranking, soit par la RNG) ont été retrouvées systématiquement à l'identique dans toutes les autres versions (les seules exceptions concernent la version Arcade World.

Cette table de 128 valeurs 16 bit est strictement identique dans les 8 versions du jeu qui ont été comparées. La seule différence est que, sur la version SuperGrafx, ils ont converti la table au format 8 bits pour optimiser l’espace car le format 16 bits est ici inutile. Non seulement toutes ces tables sont identiques mais la similarité de structure a pu être constatée aussi. Chaque ennemi est associé à un un bloc en ROM composé de multiples routines pour contrôler son comportement, entrelaçant des bouts de code et des tables de données.

Dans le cas de la version Mega Drive qui utilise le même CPU qu’en arcade on peut même reconnaître les opcode en hexadécimal des instructions des différents bouts de code qui entourent ces tables de données (autant que possible car notamment tout le mapping mémoire est forcément différent d’une machine à l'autre ce qui change en partie la valeur hexa des instructions qui utilisent des adresses en opérande).

Il est maintenant évident que Sega et Nec Avenue / Alfa System ont reçu de Capcom le code source et le dump des ROMs du jeu d’arcade original (la version japonaise). Bien sûr, il a fallu adapter. Le mapping mémoire des machines est différent. La partie affichage et la partie audio sont différentes. Dans le cas de la version Mega Drive, il y a eu aussi de grosses contraintes d’espace ROM qui a nécessité un gros travail d’adaptation. Du côté de la version SuperGrafx, il y a un peu moins de contraintes d’espace mais c’est le code qu’il a fallu entièrement traduire car le CPU est différent de l’arcade (et en architecture 8 bits).

Lire aussi: Le tir sportif en France : Réglementation

Malgré tout, on retrouve entièrement l’ADN de la version arcade dans ces versions consoles. Pour ces raisons, cette version SuperGrafx est devenue la pierre de Rosette. En effet, c’est en quelque sorte le jeu d’arcade mais sous une forme facile à décrypter et dans le code de laquelle on peut fouiller grâce aux outils de debug disponibles, chose qui serait beaucoup plus compliquée sur la version arcade (et compliquée aussi sur Mega Drive qui n’a pas de très bons outils de debug). Il suffit juste ensuite de confirmer les découvertes pour les autres versions, ce qui est beaucoup plus simple. Cette version SuperGrafx permet donc de comprendre le fonctionnement des autres versions telle une pierre de Rosette.

Exemple de Découverte : Les Hitbox et la Fréquence des Collisions

Un exemple concret de l'utilité de cette approche est la découverte de la fréquence des tests de collision. Il y a environ 1 an un script avait été codé pour visualiser les hitbox de la version SuperGrafx. Ce script avait notamment permis de constater que certains tests de collision avec les ennemis sont exécutés seulement à 15 Hz (une fois toutes les 4 frames). Par exemple, les tests de collision avec les squelettes sont à 60 Hz donc très précis et réactifs, mais en 15 hz pour les vautours, donc une précision plus approximative.

À ce moment-là, il a simplement été pensé que c’était certainement une optimisation spécifique à la version SuperGrafx qui a moins de ressources (c'est le CPU d’une simple PC-Engine, pas plus). Mais à la lumière de ces nouvelles découvertes, si la version SuperGrafx contient tout l’ADN de la version arcade alors il devenait pertinent de vérifier… Et bingo ! Avec un peu de méthode, j’ai pu très vite vérifier que cette discrimination de qualité dans les tests de collision est présente aussi sur la version arcade. Les tests de collision avec les vautours se font aussi à 15 Hz en arcade.

Le Système de Ranking : Un Niveau de Difficulté Dynamique

Maintenant qu’on sait que toutes les versions du jeu (Arcade, X68000, Mega Drive, SuperGrafx) partagent le même code source, une autre découverte qui a été faite est que Ghouls’n Ghosts a un système de ranking tel qu’on pourrait le trouver dans certains shmups. C’est-à-dire que la difficulté du jeu varie constamment selon les « performances » du joueur.

Encore une fois tout ce système est commun à toutes les versions donc ce que je vais expliquer dans ce chapitre est valable pour toutes les versions.

Fonctionnement du Ranking

En interne le jeu est découpé en 16 ranks de difficulté. Le ranking influence l’agressivité des ennemis (leur vitesse de déplacement, leur nombre max à l'écran, fréquence de spawn, cadence de tir, vitesse de bullet…) et il augmente en fonction du temps ou diminue quand on termine un stage ou quand on meurt.

Considérons que le mode de difficulté normal est sélectionné avant de lancer la partie (qui est la difficulté 4 sur 8). Le jeu débute alors en fixant le rank sur la valeur de « start » défini pour le mode normal qui, dans ce cas, est le rank 6 (sur 16). Puis le jeu laisse tranquille pendant exactement une minute. Lorsque le premier stage est terminé, le rank baisse d’un niveau, une sorte de récompense, mais dès le début du stage suivant l’auto-incrémentation reprend immédiatement (sans le délai de 1 minute) et donc ça continue de monter très vite, toutes les 15 secondes. Ensuite, 15 secondes après avoir atteint le rank 16, le jeu n’incrémente pas vers le rank 17 (qui n’existe pas) mais par contre il verrouille le système d’auto-incrémentation définitivement. Si le joueur meurt, cela réinitialise le rank avec la valeur de « start » donc le rank 6 (ou rank 9 dans la seconde boucle, car le rank de « start » dépend aussi de la boucle) en offrant à nouveau 1 minute de délai avant de relancer l’auto-incrémentation du ranking. Et si le joueur meurt une seconde fois dans le même segment du jeu (demi-stage) alors il redémarre avec la valeur de « start » précédente moins 1 donc au rank 5 etc… Au bout de 6 morts dans le même segment (et cela même si le joueur utilise des continus) le jeu fait donc descendre au rank 1, le plus bas.

Les Réglages de Difficulté

En plus du système de ranking, le jeu propose différents réglages de difficulté (avant de lancer la partie) qu’on retrouve à l'identique dans toutes les versions. Sous la forme de dip switch pour l’arcade ou d’options dans des menus (caché ou pas) pour les versions X68000, SuperGrafx.

On peut notamment modifier le nombre de vies par crédit, de 3 à 6 vies. Par défaut, toutes les versions sont réglées sur le minimum soit 3 vies. On peut modifier aussi les paliers de scoring pour obtenir des 1UP plus ou moins facilement. Il y a 4 niveaux de difficulté pour ces paliers. Et l’élément qui va intéresser le plus, la possibilité de régler le mode de difficulté sur une gamme de 1 à 8.

Sur X68000 et SuperGrafx on a donc accès aux 8 modes de difficulté des versions arcade (par un menu caché sur SuperGrafx). Par contre sur Mega Drive on n’a accès qu'à 2 modes. Le mode 1 qui est le mode « practice » et le mode 4 qui est le mode « professional ».

Comme évoqué brièvement plus haut, les modes de difficulté sélectionnables dans le jeu n’agissent pas directement sur la difficulté intrinsèque du jeu. Le mode de difficulté sert uniquement à paramétrer le système de ranking mais c’est le rank qui définit la difficulté. Que l’on joue en very easy (1) ou en very hard (8), si on atteint le rank 16 (ou le rank 1), ça donnera la même difficulté in-game.

Ce sont donc 4 valeurs (16 bit) par mode de difficulté soit une simple table de 32 valeurs pour les 8 modes de difficultés. Une table qu’on retrouve intégralement dans toutes les versions, même la version Mega Drive qui n’utilise pourtant que le mode 1 et 4. Cependant, cette table utilise des valeurs différentes dans la version Arcade World et dans la version Mega Drive (pour le mode 1, le mode « practice »).

On peut noter que quel que soit le mode difficulté ou la boucle, on atteint le rank max (16) en seulement 2 à 4 mn sans mourir soit environ 3 mn en moyenne. Ça va vite. Donc peu importe le mode de difficulté choisie au départ, si on connaît bien le jeu et qu’on meurt peu, la difficulté réelle sera sensiblement la même.

Stratégies de Jeu et le Mode "One Life"

La seule véritable déduction que l'on peut en tirer est qu’il peut être intéressant de tenter le « one life » car le « one credit » est finalement le contexte qui te pousse le plus haut dans le ranking. Dans le cas d’un « one life », on peut en déduire la stratégie optimale. Par exemple, en mode normal (le mode par défaut de toutes les versions), il faudrait idéalement attendre 3mn30 avant de tuer le premier boss afin de verrouiller le ranking dès le stage 1 et profiter de la décrémentation de rank de fin de stage dès le tout premier. En cumulant toutes les décrémentations de fin de stage que permet un « one life », on affronterait alors le boss final au rank 6, c’est-à-dire le rank de « start » de la première boucle.

Mais le véritable conseil que l'on donnerait pour un one life est de le faire directement en mode « very hard » (8) car dans one life le mode de difficulté n’a plus d’impacte et la difficulté sera même potentiellement plus basse paradoxalement. En effet, dans ce mode de difficulté il suffit de 2mn30 dans le stage 1 pour verrouiller le ranking (contre 3mn30 en « normal »). Donc un one life en « very hard » est potentiellement un peu plus simple qu’en « normal » (tout en étant plus gratifiant) ce qui n’est pas du tout intuitif.

La RNG et le Comportement des Ennemis

Les ennemis ont beaucoup de paramètres sur lesquels il est possible d’agir. Par exemple, le jeu doit décider à quelle cadence faire spawn l'ennemi? Dans quelle direction il se dirige ? À quelle vitesse ? S’il s'arrête, combien de temps ? Doit-il tirer un projectile ? À quelle vitesse? Est-ce qu’il doit sauter ? Le ranking va agir seulement sur quelques paramètres, souvent 2 ou 3 max, parfois aucun pour certains ennemis. Pour beaucoup d'autres de ces paramètres, c’est la RNG qui décide. Mais dans les deux cas, la mécanique est plus ou moins la même.

Exemple : Le Comportement des Squelettes

Commençons par l’ennemi le plus emblématique, le squelette, sur lequel je vais prendre le temps d’entrer un peu dans les détails pour que vous compreniez comment ça fonctionne. C’est un ennemi qu’on trouve au stage 1-1 mais aussi au stage 4-1. Leur comportement est largement influencé par le ranking du joueur. Si vous connaissez un peu le jeu, vous devez savoir qu’il existe deux types de Squelettes. Les « Slow » (le squelette de base) et les « Fast », plus rares, qui se déplacent beaucoup plus vite. Le principe est chaque fois l...

Tableau Récapitulatif des Versions de Ghouls'n Ghosts

Version Fidélité à l'Arcade Accès aux Dip Switchs Outils de Debug Remarques
Arcade (Originale, Révision Japonaise, US, World) Originale Oui (Dip Switchs physiques) Complexe Référence
X68000 Très Élevée Oui (Options dans le jeu) Moyen Proche de l'arcade
Mega Drive (Japonaise, Internationale) Élevée Limité (2 Modes) Faible Adaptation avec contraintes d'espace
SuperGrafx Élevée Oui (Menu Caché) Excellent (Émulateur Mesen) Pierre de Rosette

tags: #stardew #valley #lance #pierre #contrôle #inversé

Post popolari: