Post subject: Journal de bord Harry Potter et le prisonnier d'Azkaban
Joined: 4/19/2013
Posts: 7
Location: Bretagne
Bonjour a tous. Ça y est! Après de nombreux mois à baver d'admiration devant les travaux des membres de ce site, je me décide enfin a apprendre le TASuperplay/speedrun. N'étant pas très vieux, la liste de jeux TASable dans mon répertoire est assez limité: -Pas d'émulateur sur console "récente" -Pas envie d'utiliser Dolphin Il me reste donc les jeux GBA. Mon jeu préféré était Harry Potter et le prisonnier d'Azkaban, je décide donc de commencer à l'étudier. -Pour l'émulateur j'ai essayé de trouver le même que STBM dans son excellent guide: VBA-RR v23.6 svn480 (j'espère que c'est le bon) -Je télécharge le jeu original,je finis le jeu et je commence enfin a me familiariser un peu avec les outils: savestates, frame advance, ram search, ram watch et de très loin l'hex éditing (çà a l'air un peu flippant) L'objectif: Le but n'est pas vraiment de proposer un TAS a TASvideo.org mais surtout d'apprendre a en faire un sur un jeu que j'apprécie. Evidemment le jeu n'est pas très démonstratif: -Pas de sauts -Pas de courses -Même pas d'armes Mais, on pourrait manipuler la chance pour ne pas prendre de dégâts, faire des coûts critiques. On peut imaginer plein de choses comme lancer une attaque et en afficher une autre et pourquoi pas skiper la moitié du jeu. (Y a du boulot) Je commence donc par chercher quelques infos avec le ram search dans divers endroits du jeu grâce aux save states: Je commence par des informations que j'ai déja comme le mana, la vie des persos et des monstres Et donc voilà les problèmes: En ce qui concerne la vitesse de déplacement des personnages, je trouve une ram qui me donne 0 au repos (normal) 16 a droite, 32 vers la gauche, 64 vers le haut, -128 vers le bas et encore d'autres valeurs encore dans les diagonales. Je suis quasiment certain que c'est la seul valeur qui est liée au déplacement cependant j'ai du mal a croire que sa valeur soit proportionnelle a la vitesse de déplacement. Comment vérifier? et si elle n'est pas liée, comment trouver la valeur de déplacement? En ce qui concerne la vie des monstres et des persos, on s'aperçoit que la ram qui est liée a la vie change à chaque "zone". Par exemple au tout début du jeu dans la cave de l'auberge qui est le premier lieu avec des monstres, on trouve une valeur liée a la vie des monstres de la zone. Puis on traverse un couloir noir et nous arrivons dans une autre salle. Et on s'aperçoit que la valeur est devenue obsolète et qu'il faut en trouver une autre. Ennuyeux mais pas très grave. Le problème est que dans une savestates bien plus avancée, le nombre de PV des monstres et des persos est bien supérieur et aucune valeur dans le ram search est aussi élevée. Où est elle passée? Et enfin je n'arrive pas à trouver la ram liée au points de dégâts des attaques. Avez vous une idée pour la trouver? Sans, çà ne va pas être facile de manipuler la chance. ^^ Je pense que ce ne sont que des problèmes de débutants mais çà m'intéresse vraiment de comprendre. Même si vous ne connaissez pas du tout le jeu, donnez votre avis, faites un commentaire ou critiquez, dans tout les cas j'aurai besoin de votre opinion. Merci d'avoir lu le pavé ^^
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.
Post subject: Re: Journal de bord Harry Potter et le prisonnier d'Azkaban
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
Bienvenue :) Déjà, je dirais pas que ce sont forcément des problèmes de débutant. J'ai déjà vu des gens faire des TAS corrects sans utiliser le ram watch par exemple. C'est pas toujours simple de trouver les valeurs qu'on veut là dedans. Alors, hum... y'a pas mal de questions dans ton post, je vais juste répondre du mieux que je peux à un des paragraphes (en attendant les renforts).
kopklm wrote:
En ce qui concerne la vitesse de déplacement des personnages, je trouve une ram qui me donne 0 au repos (normal) 16 a droite, 32 vers la gauche, 64 vers le haut, -128 vers le bas et encore d'autres valeurs encore dans les diagonales. Je suis quasiment certain que c'est la seul valeur qui est liée au déplacement cependant j'ai du mal a croire que sa valeur soit proportionnelle a la vitesse de déplacement. Comment vérifier? et si elle n'est pas liée, comment trouver la valeur de déplacement?
A mon avis cette valeur est bien liée au déplacement, mais n'est pas vraiment utile. On dirait simplement que c'est une valeur qui indique la direction que le perso prend. Ou dit d'une autre façon, chaque nombre possible (0, 16, 32, -128...) correspond aux (combinaisons de) touches qui sont appuyées sur la croix directionnelle. En tout cas ça ressemble à un truc du genre. Le truc, c'est de savoir si le perso a vraiment plusieurs vitesses de déplacement possibles, et je parle d'une accélération graduelle, façon Super Mario Bros. S'il n'a qu'une vitesse fixe (voire deux avec un bouton pour courir par exemple), il y a de grandes chances que le jeu n'ait pas besoin de garder une valeur (chiffrée) de vitesse en mémoire. C'est tout ce que je peux dire sans avoir testé le jeu ^^. Par contre, des valeurs utiles que tu peux chercher, c'est celles de la position du joueur. Perso c'est un des premiers trucs que je cherche, avant la vitesse quand il y en a une. Pour ça, sur GBA en général, tu as des chances de la trouver en cochant "2 bytes" (ou équivalent, je sais plus comment c'est présenté), et y'a des chances que ce soit une valeur "unsigned" (nombre uniquement positif); donc essaie de cocher "unsigned" ou de décocher "signed", selon comment l'option se présente. Note qu'il faut en chercher deux pour ça: la position horizontale et la position verticale... Eeeeet attention à un piège: tu peux tomber sur deux valeurs apparemment identiques, encore une fois selon les jeux. Le jeu peut, s'il utilise un scrolling, garder en mémoire la position du perso à l'écran et aussi sa position dans le "niveau". Le nombre le plus intéressant est sa position dans le niveau (ça interdit pas de surveiller les deux). Bref, si le jeu utilise un scrolling, sois sûr de te mettre dans une zone où l'écran peut bouger (pas une petite pièce fixe) avant de te lancer dans la recherche. Voilou, si tu as des questions plus précises sur comment trouver ces valeurs, n'hésite pas à demander plus de détails.
Joined: 4/19/2013
Posts: 7
Location: Bretagne
Tu as raison il est probable que la vitesse des persos soit toujours la même. Je n'ai pas bien compris comment trouver la position du perso cependant çà a répondu a mon problème sur la vie des persos et monstres. Il suffisait de passer en 2bytes pour retrouver les valeurs Merci ^^
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
Une fois que tu auras les valeurs de la position du perso, tu pourras vérifier assez facilement si la vitesse de déplacement est fixée; il suffira de regarder comment évolue la valeur de la position quand tu commences à avancer dans un sens. Je vais essayer de mieux expliquer comment chercher la position du héros dans la ram, j'ai tendance à condenser pour pas écrire un truc trop long, donc ça peut être dur à capter des fois ^^. Alors, normalement là on cherche deux valeurs différentes: -la position sur l'axe horizontal, soit X -la position sur l'axe vertical, Y C'est simplement les coordonnées de l'objet "personnage", quoi. Je ne pense pas me tromper en assumant que c'est un jeu en vue de dessus, comme du Zelda 2D par exemple (et vu que tu as parlé des valeurs de "déplacement" en évoquant toutes les directions... :P). Si le jeu est programmé comme la majorité des jeux 2D, la méthode devrait marcher... J'espère ^^ Bref, une chose à la fois, on cherche déjà le X, la position horizontale. La valeur devrait être en 2 bytes et théoriquement non signée (elle ne peut pas être négative), c'est pour ça que j'ai parlé de "unsigned", donc coche cette option. Si tu n'arrives pas à trouver la valeur avec ces réglages, c'est possible que tu doives cocher "check misaligned" aussi, mais bon, on verra. Avec tout ça, tu peux commencer à chercher à l'aide des comparateurs (supérieur, égal, etc...). Cette valeur devrait être de plus en plus grande quand tu te déplaces à droite, et se réduire quand tu vas à gauche. Et bien sûr, arrêter de bouger quand le perso ne se déplace pas horizontalement. Pour le Y, la coordonnée verticale, c'est la même méthode, sauf que tu montes ou tu descends, évidemment. Mais attention, cette fois la valeur est plus grande quand tu es plus bas à l'écran et diminue quand tu remontes. Maintenant le scrolling, hum. J'imagine que pas mal de pièce dans le jeu sont plus grandes que l'écran, donc le jeu utilise un scrolling pour suivre le perso. Si c'est bien le cas, fais les recherches dans une pièce comme ça, avec du scrolling; c'est simplement parce que le jeu peut garder en mémoire la position du perso "à l'écran" et "dans le niveau" (ou la pièce) séparément. En utilisant le RAM search pour trouver sa position (à Harry), tu peux te retrouver au final avec deux valeurs qui se comportent apparemment exactement de la même façon dans certaines circonstances, à cause de ça. Pour les différencier, il suffit de bouger jusqu'à ce que l'écran fasse un scrolling pour suivre le joueur. A ce moment, la valeur correspondant à la position "à l'écran" du perso devrait se figer, indiquant laquelle des deux est laquelle. La plus utile en général est la valeur de sa position "dans le niveau", c'est celle qui t'indique où tu es de façon plus globale, et pas seulement par rapport à la "caméra". J'espère que ça t'aidera, même si je pense que mon paragraphe sur le scrolling est un peu brouillon encore :P
Editor, Skilled player (1337)
Joined: 1/31/2010
Posts: 330
Location: France
Bienvenue à toi De manière générale je te conseille "par défaut" de toujours chercher des valeurs en 2 bytes, il y a bien plus de chance que ta recherche aboutisse qu'avec une recherche en 1 byte. Cependant si tu n'arrives pas à trouver une valeur n'hésite pas à changer le nombre de bytes ou le signed/unsigned En ce qui concerne la vitesse du personnage, l'adresse que tu avais trouvé est quelque chose qu'on retrouve dans beaucoup (tous ?) de jeux et correspond en fait à la combinaison de touches de la manette (les directions + les autres boutons) et qui pour un TAS n'a (à priori) aucun intérêt. Pourrais-tu réessayer ta recherche mais en 2 bytes et en essayant d'utiliser uniquement les opérateurs "égal à 0" et "différent de 0" ? Pour les PV qui n'apparaissaient plus il semble que tu as compris le problème, et encore une fois c'était un problème de passage en 2 bytes (1 byte = valeur comprise entre 0 et 255, 2 bytes = valeur comprise entre 0 et 65535). Ta dernière question concernant les dégâts des attaques est de loin la plus compliquée car ça varie selon les jeux, mais je ne pense pas que tu puisses l'observer depuis le RAM watch. Idéalement, il faudrait que tu vérifies si les dégâts ne dépendent que de la frame à laquelle tu sélectionnes l'attaque ou si le fait de faire des actions "inutiles" (du genre gauche puis droite) influence aussi le résultat final. Après ça tu n'auras plus qu'à 1) faire manuellement un nombre suffisant d'essais à chaque fois ou 2) utiliser un lua script qui le ferait à ta place.
Joined: 4/19/2013
Posts: 7
Location: Bretagne
Ne t'inquiète pas Grincevent, tu as été clair ^^ J'ai réussi a trouver les positions X et Y du perso. Pour la vitesse, les déplacement verticaux et horizontaux sont équivalents. J'étudie plus en détail les diagonales. @Lapogne36 -Oui je suis passé en 2 bytes çà fonctionne beaucoup mieux. ^^ -En ce qui concerne les attaques, je m'attendais aussi à ce que faire des actions inutiles influe sur les attaques mais apparemment pas du tout. Par exemple lors du premier combat du jeu on a à notre disposition trois sort et quoi que je fasse dans le menu le premier fera 9 de dégâts, 11 pour le deuxième et 24 pour le dernier. Comme c'est le premier combat c'est peut être scripté mais je ne pense pas que ce soit très différent avec les autres combats. Encore une fois, j'étudie çà et je vous en reparle. (ce sera peut être utile a d'autres ^^) Merci pour les conseils ^^
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.
Joined: 4/19/2013
Posts: 7
Location: Bretagne
Bon.. eh bien je crois que mes ambitions de TAS sur ce jeux sont finies :( Je viens de me rendre compte (et j'aurai dû le remarquer plus tôt) que les dégâts qu'un personnage ne varient pas. Il n'y a aucune part d'"aléatoire" dans le calcul des dégâts. Quoi que je fasse, un sort d'un personnage fera toujours le même nombre de dégâts sur un ennemi de même type. A mon avis les dégâts sont le niveau du personnage multiplié par une valeur liée au sort et ± la résistance de l’ennemi. Pas moyen de manipuler la chance, pas de TA. Merci a vous tout de même ^^
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
kopklm wrote:
Bon.. eh bien je crois que mes ambitions de TAS sur ce jeux sont finies :( Je viens de me rendre compte (et j'aurai dû le remarquer plus tôt) que les dégâts qu'un personnage ne varient pas. Il n'y a aucune part d'"aléatoire" dans le calcul des dégâts. Quoi que je fasse, un sort d'un personnage fera toujours le même nombre de dégâts sur un ennemi de même type. A mon avis les dégâts sont le niveau du personnage multiplié par une valeur liée au sort et ± la résistance de l’ennemi. Pas moyen de manipuler la chance, pas de TA. Merci a vous tout de même ^^
Hep là! J'espère que c'est pas du pur défaitisme que je sens dans ce post! *regard suspicieux* Plus sérieusement... Le fait que les dégâts soient relativement fixes n'empêche pas forcément de t'amuser à TASer le jeu. Il y a des tonnes de jeux sans aléatoire à ce niveau là, ça n'empêche pas les gens de faire des TAS. En fait pour le coup ça peut te faciliter la tâche d'éviter de devoir manipuler la chance à presque chaque attaque; pour un premier TAS, ça fait une difficulté en moins à gérer. C'est sûr que c'est plus amusant de voir des coups critiques à la chaîne, mais si y'en a pas, y'en a pas ^^. Je suis sûr qu'il y a plusieurs autres choses à considérer pour aller vite dans le jeu, comme manipuler le déplacement des ennemis pour en attaquer le plus possible en même temps, ou bien les éviter au maximum tout en étant assez fort pour continuer (s'il y a un système de level up, de drop d'objets/argent ou autre). Sinon, si vraiment tu ne penses pas que ce jeu serait intéressant à TASer, tu peux toujours te tourner vers un autre jeu :P. Enfin bref, l'important c'est de trouver un truc qui te motive et d'y prendre plaisir. (pssst! Et tu peux aussi essayer de t'imposer des contraintes marrantes pour ta run, c'est ce que j'ai fait pour mon premier TAS ^^)
Editor, Skilled player (1337)
Joined: 1/31/2010
Posts: 330
Location: France
Pour un premier TAS, je dois avouer que ce n'est pas une mauvaise chose que le coté aléatoire n'existe pas, et ça peut donner un TAS tout aussi intéressant car cela nécessite un planning très élaboré, c'est-à-dire : -Comprendre exactement comment les dommages sont calculés pour chaque sort en fonction du monstre ennemi -Élaborer une route pour savoir quand faire un combat supplémentaire pour de l'expérience afin de réussir les prochains combats obligatoire (ou gagner plus de temps en retour) -La réaliser en TAS Enfin cela n'est que mon avis, et au final le choix de le faire ou pas te revient.
Joined: 4/19/2013
Posts: 7
Location: Bretagne
Vous avez tout a fais raison. ^^ Cependant je pense que ce jeu est trop vide en terme de gameplay sans la chance. Mais ne vous inquiétez pas ^^ Je vais me mettre à la recherche d'un autre jeu a TASser!
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Hmm, et tu te base sur quoi pour dire que c'est 100% un jeu sans chance? Ça serait vraiment un comble pour un RPG d'avoir aucune notion de chance, non? Selon cette vidéo, Lupin semble pouvoir faire des dommages critiques de temps à autre. Ensuite, si on lit cette gamefaq, on peut voir ceci:
This is like the first battle, but harder. Just use Incendio as your main spell, and you might need to heal. Also, as Harry, using Diffindo works EXTREMELY well. I got a Critical Hit with it and it did 102 SP damage!
J'ai pas jouer au jeu, mais selon les critiques le jeu est assez court. Donc d'après moi, il y a quand même un certain potentiel pour un TAS intéressant.
Active player (322)
Joined: 1/15/2012
Posts: 343
Tssk, estime toi heureux, sur Phantasy Star Online, absolument toute la chance (drop, niveaux aléatoire, critiques et autres) se fait sur UNE frame :p Plus sérieusement, tu fais ce que tu veux, mais ce serait vraiment étonnant que la "chance" ne vienne pas de quelque part.
Joined: 4/19/2013
Posts: 7
Location: Bretagne
OK je vais persévérer ^^ Il y a surement moyen de manipuler les "critiques" et les "ratés". Je m'excuse ^^' Cependant si cela se résume a utiliser tel sort contre tel ennemi et choisir de combattre ou pas autant le faire en speedrun non?
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
Donc s'il y a bien de coups critiques et des "miss", c'est qu'il y a une notion de chance. Après il reste à voir comment elle fonctionne et dans quelle mesure elle est manipulable. Ça c'est quelque chose qui est spécifique au jeu. Par exemple peut-être qu'avec les stats de départ (s'il y a des stats, même cachées) ou d'autres facteurs il est techniquement impossible de faire un coup critique contre tel ou tel ennemi, ou alors c'est très très rare... Bon, après c'est un aspect du TAS qui peut être très compliqué, surtout quand on débute. Il faut en général connaître comment le jeu calcule les dégâts, les critiques et les ratés, puis aussi trouver le(s) RNG et chercher comment il se comporte et ce qui l'influence... Il faut en bref disséquer le jeu assez en profondeur. Même si le système de dégâts n'est pas très complexe, il vaut mieux bien le connaître. J'irai pas te jeter des pierres si tu préfères essayer un autre jeu ou même si tu veux TASer celui-là sans rentrer dans les tréfonds du système de combat. Peu importe ce que tu veux faire, tu gagneras forcément de l'expérience en TASant comme tu le sens. Mais si tu veux faire une run publiable de ce jeu sur ce site, tu finiras par devoir décoder comment marche ce système de coups critiques (et sûrement d'autres choses).
Joined: 4/19/2013
Posts: 7
Location: Bretagne
@STBM Test le jeu, tu verras que la chance y est vraiment pour très peu (sinon rien) ^^ Ah moins que je ne sois passé a côté de quelque chose... Une frame c'est mieux qu'aucune. Je n'arrive vraiment pas a faire varier un combat. Je ré-essayerais quand je me serais amélioré. ^^ Merci a vous tous :)
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air de briller avant d'avoir l'air con.