Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Voir le sujet précédent Voir le sujet suivant Aller en bas

Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  pandoff le Dim 14 Fév 2016 - 22:05

Hello !

J'ai du nouveau concernant mon post précédent sur Magical drop 3.
Pour rappel (http://www.neogeo-system.com/t3689-magical-drop-3-difference-de-gameplay-entre-les-persos) :

A chaque fois que je joue à ce jeu avec des potes, on lutte pour comprendre pourquoi certains joueurs gèrent à fond avec certains persos, ou à l'inverse galèrent avec d'autres persos !

J'ai bien lu la gamefaq (http://www.gamefaqs.com/neo/563372-magical-drop-iii/faqs/16931) qui explique que les patterns d'attaque sont différents, mais j'ai l'impression qu'il y a encore d'autres différences.
Peut-être est-ce psychologique, mais avec Strength je fais des combos en série et je gagne à coup sûr, alors que je lutte avec d'autres persos pour faire les mêmes combos, comme si le set-up des couleurs (au départ puis au fur et à mesure) était différent selon le perso ! Idem sur l'apparition de blocs de glace.
Et des potes me battent si l'on prend d'autres persos (comme Lovers), qui semblent plus propices à un jeu plus réfléchi et des combos par réaction en chaine...

Au final, on finit par jouer à personnage identique, pour être sûr d'être à armes égales Smile
Donc je suis curieux de connaitre vos expériences Wink

Suite aux conseils et infos reçues, je n'ai pas trouvé de confirmation ou d'infirmation ferme sur le sujet (même sur le forum américain). En particulier il y avait une tier list, mais sans les critères qui ont permis de l'établir.

Donc je me suis lancé le défi d'étudier le jeu pour voir comment il fonctionne sur ce sujet particulier (je n'ai pas l'ambition d'analyser tout le jeu, ça serait titanesque), à savoir le choix des bulles à afficher.

Je précise que je suis débutant en la matière (c'est ma première fois :p) et que pour certains du forum (je pense à Furrtek et elrayzeur) cela semblera probablement basique ! Ceci dit je travaille depuis toujours dans l'informatique et j'ai toujours aimé le bas niveau donc je ne démarre pas de rien non plus Wink

J'ai récupéré la ROM Mame, et en me renseignant sur le net j'ai découvert qu'il y a un debugger inclus dans Mame.
Je vous résume plus loin comment j'ai procédé pour reverser le jeu.

Au final, l'analyse a infirmé ma théorie :

Question:
Est-ce que la grille de bulles au début d'une partie, et les bulles qui suivent, dépendent du personnage sélectionné ?

Réponse:
Non.

Explication:
Les séquences de bulles sont fixes, elles ont été calculées à l'avance et mises en dur dans la ROM.
Au démarrage du jeu, un compteur démarre, il s'incrémente continuellement. Lorsque la grille de bulle doit être initialisée, le jeu utilise ce compteur pour choisir de façon "aléatoire" une séquence de bulle parmi toutes celles possibles (disponibles en ROM).

La théorie était donc fausse ! On peut appeler ça un bel effet placebo ! Ceci dit, le personnage en question est réellement très fort, de part son pattern d'attaque (qui est documenté sur le net). C'est donc ce seul atout qui en fait la supériorité du personnage !

Pour illustrer le stockage par avance des bulles, j'ai fait une petite video qui montre que l'on peut prédire la prochaine rangée de bulle qui va arriver, à partir des bulles déjà affichées, et ce, sans être en train de debugger la mémoire vive du jeu. En effet, le jeu tourne sur ma console, et j'utilise le PC pour chercher dans la ROM les prochaines bulles).

https://www.dropbox.com/s/84l11n7mudy2q0y/magdrop3_predireProchaineRangee.MP4?dl=0

Il s'agit tout bêtement de rechercher dans la ROM la séquence des bulles affichées (la ROM est mirrorée en RAM, d'où le fait que deux adresses sont trouvées), et de lire la prochaine séquence.

Ci-dessous dans les grandes lignes la façon dont j'ai utilisé le debugger :

- Faire le diff entre un dump de la RAM après avoir choisi un perso A et un dump de la RAM après avoir choisi un perso B
=> Parmi les différences j'ai identité un octet qui contenait 0 pour le perso A et 8 pour le perso B. Cela correspondait à l'ordre des persos sur l'écran de choix du perso (le perso A était le premier de la liste, et le perso B le 8e)
=> Je savais ainsi à quelle adresse le perso choisi est stocké.

- Même technique de diff de dump de RAM, entre différents affichages de grille de bulles de départ
=> Cela a permis de savoir où sont stockées les bulles de chaque perso
=> Ainsi que de savoir comment sont codées les bulles en mémoire (valeurs associées aux couleurs).

- Analyse de code (assembleur motorola 68000) pour comprendre comment on choisit les prochaines bulles. C'était le plus fastidieux, car je suis parti de l'adresse dans laquelle on écrit la 1ère bulle, il a donc fallu dérouler à l'envers le fil d'exécution.

Voilà, je me suis bien amusé là-dessus donc je voulais partager ça avec vous, ça donnera peut-être envie à certains, auxquels cas on pourra continuer d'en parler !
Et au final c'était pas très compliqué, faut juste avancer avec méthode et noter tout ce qu'on trouve. J'y ai passé un peu moins d'une dizaine de soirées je pense, à coup d'1h par soirée, donc c'est pas la mort.

En annexe des sites utiles :

Assembleur Motorola 68000
http://mrjester.hapisan.com/04_MC68/
=> Ce gars-là a l'air de bosser sur des hacks, en particulier Megadrive, ça doit être intéressant à suivre mais je n'ai pas encore fouillé pour l'instant Smile

Wiki Neo geo dev
https://wiki.neogeodev.org/index.php?title=Main_Page
=> Un grand bravo et un grand merci à Emmanuel Vadot et Furrtek qui gèrent ce wiki, qui est une mine d'or !
avatar
pandoff
330 Mega Shock
330 Mega Shock

Messages : 485
Date d'inscription : 16/06/2012

Revenir en haut Aller en bas

Re: Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  poup le Dim 14 Fév 2016 - 22:14

J'adore cette façon de résoudre les problème : en ouvrant les tripes du jeu.
Merci pour ces info, le prétexte du fait que ce soit plus facile avec un perso ne tient surtout que de la mauvaise foi Twisted Evil
avatar
poup
1000 Mega Shock
1000 Mega Shock

Système(s) : AES, MVS et CDZ
Messages : 1319
Date d'inscription : 08/04/2015
Age : 39
Localisation : 37

Revenir en haut Aller en bas

Re: Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  elrayzeur le Lun 15 Fév 2016 - 21:30

Merci pour le partage, j'adore avoir ce type d'info sur un jeu.

Du coup vue que tu sais où sont stockés les données pour chaque ligne de bulles (je suppose pour chaque niveau),
tu pourrais te lancer dans un hack et nous pondre une version plus difficile mrgreen . Avec les nouveaux outils de Blastar, tu peux même éditer les sprites facilement Wink .

En tout cas super taf et merci pour le retour.

Ciao++
avatar
elrayzeur
Adepte du stick
Adepte du stick

Système(s) : AES
Messages : 141
Date d'inscription : 28/11/2014
Age : 34
Localisation : Royan

Revenir en haut Aller en bas

Re: Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  pandoff le Lun 15 Fév 2016 - 22:44

Pas d'quoi Smile
Ah oui ça serait peut-être envisageable une version plus dure Wink Histoire de rentabiliser le temps passé !
Je connaissais pas cet outil pour les sprites merci pour l'info !
avatar
pandoff
330 Mega Shock
330 Mega Shock

Messages : 485
Date d'inscription : 16/06/2012

Revenir en haut Aller en bas

Re: Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  Ryo Sakazaki le Lun 15 Fév 2016 - 23:27

Merci et moi aussi j'aime ce genre d'autopsie d'un jeu. I love you

_________________

_________________


Administrateur sur Neo-Geo System

Je réalise des converts AES/MVS, programmation d'eproms, bios, etc...
avatar
Ryo Sakazaki
Admin

Système(s) : AES Jap, MVS MV-2F
Messages : 11730
Date d'inscription : 15/10/2011
Age : 42
Localisation : Dept 91

Revenir en haut Aller en bas

Re: Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  maldoror68 le Mar 16 Fév 2016 - 21:00

le logarithme est en dur dans la rom. ouah !

good job ! Cool Surprised
avatar
maldoror68
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS,arcade,st-v,MD,32x,MCD,MS,
Messages : 2242
Date d'inscription : 09/07/2012
Age : 35
Localisation : Mulhouse

Revenir en haut Aller en bas

Re: Magical drop III : debugging Mame de l'apparition des couleurs de bulles

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum