[TUTO] [GBA] Les overworlds et les palettes en hexadécimal, tout est dévoilé ! dans Club | Pokémon Trash
[TUTO] [GBA] Les overworlds et les palettes en hexadécimal, tout est dévoilé !
Mickey` - 22 mai 2012 à 18:46
Vous êtes prêts ? Alors là on va s'attaquer à du gros, si vous débutez, je vous conseille de passer votre chemin (Bien que je vais expliquer au maximum pour que vous compreniez ce que vous faites, et pour que ça ne vous paraisse pas trop compliqué, voire pas du tout !)
On va donc apprendre à manier les Overwolrds via l'hexadécimal !
Vous connaissez sûrement OW Editor ou bien NSE... L'hexadécimal permet de faire des choses beaucoup plus puissantes, comme par exemple agrandir des OW (ce qui n'est pas possible via ces éditeurs d'OW), ou même, ce que beaucoup de personnes cherchent, d'ajouter des OW et des palettes pour OW à l'infinie !
Maintenant, tout ça peut être très simple une fois qu'on a compris le principe... mais au départ c'est pas simple... On va y aller pas à pas, à travers un loooooong programme, en voici le sommaire...
[hr]
Sommaire
I. Etude préalable des OWs
Etude de la composition d'un sprite
Qu'est-ce qu'un pointeur ?
Qu'est-ce que le sprite pointeur ?
La taille d'un sprite
Qu'est-ce qu'une palette ?
Fonctionnement de tous les pointeurs d'un sprite
II. Premières modifications : agrandir un sprite
Etude sur l'agrandissement
Modifier la composition du sprite
Faire le dessin du nouveau sprite
Modifier le pointeur vers l'image
III. Pousser bien plus loin : ajouter des OWs !
Déplacement de la table des pointeurs
Repointer la table des pointeurs
Composer son nouveau sprite
Créer une suite de la SpriteBank
Ajouter un pointeur vers la suite de la SpriteBank
Créer le sprite pointer
Repointer une donnée importante
IV. Editer un OW ajouté
Utilisation du logiciel NSE
V. Créons maintenant de nouvelles palettes
Repointer la table des palettes
Créer une nouvelle palette l'ajouter à la table des palettes
Utiliser la palette créée dans un sprite
VI. Annexes
Rappel du vocabulaire
Rappel des offsets : Rouge Feu FR
Je pense que quand nous aurons vu tout ça, vous aurez mal à la tête compris le fonctionnement des OWs dans les versions GBA, et comment les exploiter au maximum
Attention, je vais utiliser la version Rouge Feu FR pour le tuto, les offsets seront totalement différents selon la version !
Les offsets listés tout au long du tuto ne seront donc valables que pour Rouge Feu FR.
Allons-y... !
[hr]
Matériel nécessaire
Vous aurez besoin :
Bloc-notes
Overwolrd Editor
Hex Editor (ou un autre éditeur hexadécimal)
NSE
[hr]
I. Etude préalable des OWs
Etude de la composition d'un sprite
Pour manier un OW, faut savoir quoi manier. On va le découvrir ensemble !
Bien, après avoir téléchargé Overworld Editor, ouvrez le dossier dans lequel vous l'avez placé, et ouvrez le fichier "Sprites.ini" (avec le Bloc-notes).
Pour le moment, on va s'intéresser seulement à ce que j'ai défini.
FFFF : Starter Bytes ; Vous trouvez ces deux octets ("FF", "FF" au début de chaque sprite. Quand vous remarquez ceci, c'est que débute un nouveau sprite.
00 : Numéro de la palette ; Pas trop difficile, c'est le numéro de la palette utilisée par le sprite. Je pense que vous savez ce qu'est une palette, si ce n'est pas le cas je l'explique un peu plus tard dans le tuto, vous comprendrez, c'est très simple
10 : Widht ; Que je vais appeler "Largeur". C'est la largeur de votre sprite.
20 : Height ; Que j'appellerai "Hauteur". C'est la hauteur de votre sprite.
~~> Ici, votre sprite fait $10*$20 (hexa) ce qui donne 16px*32px.
00DB3908 : Pointer 1 ; On ne va pas y toucher dans ce tuto, notez seulement que les 4 sont des pointeurs. Qu'est-ce qu'un pointeur ? Si vous ne savez pas, c'est expliqué juste après !
90A43908 : Sprite pointer : Ce pointeur là, lui, est très important. Il pointe vers le sprite pointeur, j'expliquerai plus en détail tout à l'heure.
Bien, nous avons fini d'étudier la composition d'un sprite. À noter que chaque sprite possède sa propre composition, avec des données différentes très souvent. (mais pas toujours ! )
Qu'est-ce qu'un pointeur ?
Petite parenthèse, ça ne touche pas forcément aux OWs, mais c'est très important en hexadécimal.
Un pointeur, comme son nom l'indique, pointe, envoie vers un offset précis.
Un pointeur se présente toujours sous cette forme :
ZZ YY XX 08
ZZ YY XX est l'offset, renversé. On y ajoute ensuite "08".
Comment renverser un offset ? C'est simple :
XX YY ZZ devient ZZYYXX ~~> Il faut simplement échanger le premier et le troisième octet.
Un exemple : Le pointeur vers l'offset 78D6FC serait :
78D6FC -> 78 D6 FC -> FC D6 78 -> FCD678 -> FCD67808
Qu'est-ce que le sprite pointer ?
Petit rappel, c'est l'avant-dernier pointeur dans la composition de notre sprite.
Il pointe vers offset (car c'est un pointeur ), appelé l'offset du sprite.
À cet offset se trouve un autre pointeur, ainsi que d'autres données.
Le pointeur pointe cette fois-ci (ouf, c'est le dernier pointeur de la liste !) vers l'image du sprite, ce que vous voyez InGame quoi.
Bien, je prends mon sprite pointer : 90A43908 -> 90 A4 39 -> 39A490
On va donc à l'offset 39A490, et on a ceci :
(Il y en a bien plus, bien sûr)
Bien, joli, mais c'est quoi ? C'est tous les pointeurs vers toutes les images des srites. Je n'en ai pris qu'un extrait. Chaque groupe d'octets pointe vers une image de sprite.
Etudions-en un de plus prêt : 585F350800010000
Si on décortique encore, on peut observer ceci :
585F3508 0001 0000
585F3508 : Pointeur vers l'image (si on retourne l'offset, l'image se trouve donc à l'offset 355F58)
0001 : Des données sur la taille
0000 : On n'y touche pas
Pour les données sur la taille, il faut faire un petit calcul pour le trouver :
Largeur x Hauteur / 2 ; Puis on inverse (en hexadécimal, si on veut dire XXYY, il faut en réalité écrire YYXX)
Dans mon cas :
16 x 32 = 512
512 = $200
$200 / 2 = $100 = $0100
$0100 ~~> $0001, d'où le "0001" présent dans le sprite pointer.
Si on regarde, notre sprite pointeur ici nous amène à l'offset 355F58, voici en exclu l'image de votre joueur :
Aller, on est contents ! Vous inquiétez pas, on n'aura pas besoin de faire notre image via l'hexadécimal.
Bien que ce ne soit pas difficile (chaque octet correspond à un numéro sur la palette, autrement dit pour chaque pixel on donne une couleur, les 256 octets mis à la suite donnent l'image finale), ce serait très long, donc on fera ça avec des logiciels
La taille d'un sprite
Je vais passer assez vite sur cette partie, car il n'y a pas grand chose à dire, et j'y reviendrai plus tard.
On notera deux endroits où l'on s'occupe de la taille ; rappelez-vous, on les a déjà vus !
Oui, on a déjà parlé de la taille dans la composition du sprite, et dans le sprite pointer.
Je ne vais pas me répéter, je vous avertis simplement de ne pas y toucher, car en modifiant seulement la taille, vos sprites seraient... bizarres !
Nous verrons ça tout à l'heure dans l'exercice "Agrandissement d'un OW", on fera tout ça ensemble.
Qu'est-ce qu'une palette ?
C'est presque aussi important que l'OW lui-même, en fait, c'est quelque chose qui permet de lui donner des couleurs. Comme une palette de peinture par exemple, c'est exactement le même principe.
Une palette peut contenir 16 ou 256 couleurs. Malheureusement, les palettes d'OWs ne contiennent que 16 couleurs.
16 couleurs, mais une est réservée pour la transparence du sprite (la 1ère sur votre palette), donc on ne peut utiliser en réalité que 15 couleurs par OW.
Le "00" mis en évidence est le numéro de la palette utilisé par le sprite. Donc, on en déduit que le sprite du joueur (celui que j'ai utilisé pour l'exemple) utilise la palette numéro 0 du jeu.
Allons à cet offset, nous allons sélectionner la table des palettes.
Une palette se compose ainsi :
XX XX XX 08 YY 11 00 00
XX XX XX est l'offset renversé, accompagné du 08, c'est... oui, un pointeur ! (cf. partie "Pointeurs".
YY, c'est le numéro de la palette vers laquelle le pointeur amène.
Il y a toujours 11 00 00 derrière.
À noter que la table se termine par 00 00 00 00 00 00 00 00.
Les pointeurs vers les palettes elles-même font donc 8 octets.
Il y existe dans ce jeu 18 palettes, plus la palette "vide", "00 00 00 00 00 00 00 00".
18*8 + 8
= 144 + 8
= 152
Nous allons donc sélectionner 152 à partie de l'offset 39F548.
Voici notre palette. Si nous regardons la palette 3 (celle que nous avons sélectionnée) dans NSE, voici ce que nous obtenons :
Ca correspond avec le code que nous avons sélectionné !
Vous pouvez éditer les palettes via l'hexadécimal comme ceci.
Fonctionnement de tous les pointeurs d'un sprite
Partie également très courte. Je tiens juste à vous dire de ne pas toucher aux 4 Pointeurs autres que le sprite pointer dans la composition d'un sprite. Ils changent en fonction de la taille, donc pour le moment on n'y touche pas.
Voilà, j'ai fait une assez grosse partie d'étude seulement, sans indiquer comment faire de changements, pour pouvoir dégrossir la chose.
Si vous avez tout suivi et compris tout ça, le reste sera beaucoup plus simple. Passons maintenant aux choses sérieuses ! :D
[hr]
II. Premières modifications : agrandir un sprite
Etude sur l'agrandissement
Pour faire ces recherches, il m'a d'abord fallu réfléchir ; vous allez en faire de même, il faut comprendre ce que vous faites.
Sachez que si l'on réfléchit avant d'agir, l'hexa n'est qu'une suite logique.
Maintenant, vous connaissez les bases grâce à notre étude sur les Ows. Nous allons donc réfléchir à partir de là !
De quoi ai-je besoin ?
"Je dois agrandir mon sprite"
"Pour ça, je dois modifier ses données de taille"
"Je dois faire des dessins plus grands"
"Je dois donc repointer les nouveaux dessins de mon sprite"
Et bien voilà, on réfléchie un peu, et on a nos étapes !
Modifier la composition du sprite
Modifier le pointeur vers l'image
Faire le dessin du nouveau sprite
Le plus simple est à faire !
Modifier la composition du sprite
La composition, mais qu'est-ce que c'est ? Beh si vous savez pas, relisez le grand I ! :D
Je veux par exemple modifier la taille de mon sprite n°20.
Je vais à l'offset de sa composition : 39E1E0 (cet offset peut être trouvé via NSE ou OW Editor, il correspond au "Sprite Offset"
Si vous vous rappelez bien, ce que j'ai mis en gras, c'est la taille de mon sprite.
Maintenant, je veux que ce sprite ne fasse plus 1632px, mais qu'il soit un carré de 3232px.
Je vais remplacer le "1000" par "2000". Ce qui me donne :
Je colle ceci au bon emplacement dans Hex Editor, puis je regarde mon sprite avec NSE...
Vous pouvez le voir, deux frames sont mélangées ! Cela vient du fait que la taille dans la composition ne correspond pas au dessin. Un petit schéma pour expliquer le problème :
La partie rouge représente la première frame, la bleu la deuxième.
La partie verte montre l'agrandissement de la première frame, qui déborde donc sur la deuxième, ce qui explique que les deux se retrouvent mélangées.
On va corriger ça.
Prenez la composition de votre sprite, et recherchez le sprite pointeur :
Je le renverse : 60AB3908 -> 60 AB 39 -> 39AB60
Je vais donc à l'offset 39AB60.
Je me retrouve au milieu de tous les pointeurs vers les images des sprites !
Petit rappel, un pointeur vers le dessin d'un sprite est composé du pointeur lui-même, mais aussi de données sur la taille ainsi que 4 zéros.
Un autre petit rappel :
Largeur x Hauteur / 2 ; Puis on inverse (en hexadécimal, si on veut dire XXYY, il faut en réalité écrire YYXX)
Dans mon nouveau cas :
32 x 32 = 1024
1024 = $400
$400 / 2 = $200 = $0200
$0200 ~~> $0002
Je vais donc remplacer les données sur la taille (auparavant "0001" par "0002".
Maintenant, il me faut aussi repointer le pointeur vers le dessin de la frame, car il est plus grand et nécessite plus de place ! Vous pouvez calculer la place nécessaire pour votre sprite entier comme ceci :
(Largeur x Hauteur) / 2 x Nombre de frames
Je vais modifier pour l'exemple trois frames.
(32 x 32) / 2 x 3 = 1536
J'ai besoin de 1536 octets. Je cherche avec FSF ou directement via Hex Editor, je vais prendre un offset simple : C00000.
Maintenant que j'ai mon nouvel offset, je le mets sous forme de pointeur :
C00000 -> C0 00 00 -> 0000C008
Je remplace mon pointeur dans le pointeur vers le dessin.
À savoir : Chaque frame est mise à la suite. Ainsi, le premier pointeur pointe vers la première frame. Si je n'ai qu'un pointeur, le sprite n'aura qu'un seul frame. Si j'en ai deux, il possédera deux frames, et ainsi de suite.
J'ai dit que je voulais modifier 3 frames, je répète donc ces deux étapes pour chaque frame à remplacer.
Une fois que j'ai modifié les trois pointeurs, j'obtiens ceci :
Enfin, revenez à votre composition de sprite. Vous vous souvenez les trois pointeurs non définis exprimés dans la partie I, concernant la taille des sprites ? Beh on va s'en servir maintenant.
Je n'ai pas d'informations précises à vous donner !
Il faut que vous preniez la composition d'un sprite faisant la même taille que celle désirée. Ensuite, recopiez les trois pointeurs au bon emplacement dans la composition du sprite modifié. (Je ne donne pas de précision, car je n'en sais pas plus d'après mes recherches)
Faire le dessin du nouveau sprite
Maintenant, rouvrez NSE et votre ROM. Allez au sprite que vous avez agrandi, et pour les trois premières frames (dans mon cas), vous aurez ceci :
Vous n'avez plus qu'à dessiner ou importer votre sprite, il pourra être à la taille 32*32 px ! :D
Résultat InGame dans mon exemple :
À noter aussi (du moins d'après ce que j'ai remarqué, je n'en suis pas sûr), il faut modifier les pointeurs de toutes les frames, sinon l'image de sprite InGame bug par moment !
[hr]
III. Pousser bien plus loin : ajouter des OWs !
C'est ce que sûrement la plupart d'entre vous attend ! :D
Ca ne diffère pas tellement de la partie "Agrandir un Ow", seulement il y a plus d'étapes, mais le principe est le même.
Déplacement de la table des pointeurs
Je vous évite la partie Réflexion, on passe directement à la pratique ! (Même s'il m'a fallu beeeeeaaaauuucoup réfléchir dans cette partie avant d'y arriver !)
Allez à cet offset : 39A1A0
C'est l'offset de la table contenant les pointeurs vers tous les sprites. Cet offset est pour Rouge Feu ! Pour les autres versions, je n'ai pas cherché, va falloir chercher par vous-même...
Rappel, un pointeur est sous la forme : XXXXXX08, soit 4 octets.
Pokémon Version Rouge Feu possède 152 sprites.
4*152 = 608 octets
La table des pointeurs fait donc 608 octets.
Faites Edition ~~> Marquer : De 39A1A0 à 39A400 (39A1A0 + 608)
Vous venez de sélectionner toute la table. Copiez-la, puis collez-là à un autre endroit dans la ROM. Je ne m'embête pas, je la colle à l'offset B20000.
Repointer la table des pointeurs
Bien, maintenant, vous avez déplacé votre table, et alors ? Il faudrait peut-être dire au jeu de venir chercher les données au nouvel offset, non ?
L'ancien offset était 39A1A0, donc son pointeur : A0A13908
Recherchez ça dans Hex Editor, vous allez arriver à cet offset : 5F3B4
Le nouvel offset est B20000, donc son pointeur : 0000B208
Remplacez l'ancien pointeur par le nouveau.
Composer son nouveau sprite
On va faire la composition de notre sprite ! Je vous conseille de prendre une base, un sprite de la même taille que le votre.
Je vais faire un sprite 16*32, comme le joueur. Je prends donc comme exemple la composition de mon premier sprite.
Comme toutes les données sur la taille sont déjà réglées, nous n'avons plus énormément de choses à faire.
Nous allons choisir le numéro de palette qu'aura notre sprite. Je décide qu'il aura la palette 6.
Je modifie donc les données de la palette. Nous allons aussi modifier le sprite pointeur. Choisissez votre offset, pour moi, ce sera 850000, renversé : 00008508 !
Maintenant, ouvrez NSE, et allez sur un sprite ayant la palette 6. Regardez le "Pal Registers". Vous devez placer les mêmes données dans les 4 octets précédant les pointeurs.
Pour rappel, la SpriteBank, c'est la bank avec toutes les compositions des sprites.
Chaque pointeur de la table de tous les pointeurs que nous avons repointée tout à l'heure correspond à l'offset d'une composition.
Pour créer une suite à cette bank de sprites, nous allons tout simplement écrire la composition de notre nouveau sprite, plus le pointer dans la table des pointeurs. Vous me suivez ?
Choisissez donc l'offset de votre nouvelle composition, pour moi ce sera : 900000, renversé : 00009008.
Allez à cet offset, et collez votre composition.
Ajouter un pointeur vers la suite de la SpriteBank
Maintenant, revenez à votre table avec tous les pointeurs. Vous voulez rajouter le pointeur vers votre nouvelle composition, eh bien, faites-le !
On rajoute notre pointeur à la fin, à la suite des autres, comme ceci :
C'était pas plus difficile que ça
Créer le sprite pointer
Allez à l'offset que vous aviez choisi dans votre composition de sprite pour le sprite pointer, dans mon cas : 850000.
Le sprite pointeur est composé de cette manière :
XXXXXX08YYYY0000.
XXXXXX08, on y met le pointeur vers le dessin de l'image. Choisissez-le, pour ma part B00000, renversé : 0000B008.
YYYY, des données sur la taille, vu précédemment, je ne ré-explique pas, je mets 0001.
0000, on n'y touche pas !
0000B00800010000
Voilà le pointeur vers le dessin de ma première frame !
Pour l'exemple, je vais créer un sprite avec 3 frames. Je répète donc cette opération en changeant le pointeur vers le dessin deux fois.
Repointer une donnée importante
Maintenant, il faut repointer une donnée, celle qui indique le nombre de sprite autorisé dans le jeu.
Allez à l'offset 5F3A0, et remplacez "9729" par "EF29". Vous êtes larges.
Nous avons fini ! Votre sprite est totalement créé ! Il ne reste plus qu'à l'éditer, nous allons voir comment faire.
[hr]
IV. Editer un OW ajouté
Bien, pour ce faire, ouvrez NSE !
Nous allons utiliser les Bookmarks. Dans NSE, faites Options ~~> Bookmarks ~~> View BookMarks.
Allez sur l'onglet "Edit Bookmarks". Nous allons créer un nouveau dossier pour notre sprite.
Dans "New", sélectionnez "Folder", puis cliquez sur Create. Renommez-le comme bon vous semble. Cliquez sur Save.
Maintenant, dans "New", sélectionnez "In-Bookmark", puis cliquez sur Create.
Déroulez votre dossier, un "New Bookmark" va apparaître.
Chaque bookmark correspond à une frame.
L'image ne correspond à rien, car aucun offset n'est sélectionné.
Revenez dans "Edit Bookmarks".
De même, renommez-le. Entrez la taille, puis l'offset que vous aviez choisi pour stocker le dessin de l'image, ainsi que l'offset de la palette (pour le connaître, c'est expliqué un peu plus tard dans le tuto, vous pouvez toujours regarder à partir d'un sprite ayant déjà cette palette).
Cliquez sur "Save".
À partir de là, pour le mofidier, cliquez sur "Open" : vous verrez alors apparaître votre sprite dans la fenêtre principale de NSE ! Vous n'avez plus qu'à modifier votre sprite comme si vous modifiiez un sprite déjà existant.
Refaites cette étape pour chaque frame, donc moi je la ferai 3 fois en tout.
Une fois fini, sauvez, puis ouvrez A-Map.
Allez au dernier sprite (151 pour moi, n'oubliez pas le sprite 0 existe !), puis augmentez ce nombre, soit 152... Oh, votre nouveau sprite, sprite n°153 apparaît ! :D
Résultat InGame :
Petit Spoink existe ! :P
[hr]
V. Créons maintenant de nouvelles palettes
Après ce que vous avez fait, créer de nouvelles palettes va vous sembler petit !
Choisissez un nouvel offset, et collez-y la table. Je choisis B40000 (renversé : 0000B408)
De même que pour la table des pointeurs de sprites, il faut repointer la table des palettes.
Il faut la repointer à trois endroits : 5F598, 5F630, 5F688 (varie aussi selon la version)
Vous avez correctement repointé la table des palettes, on peut maintenant en ajouter !
Créer une nouvelle palette l'ajouter à la table des palettes
Pour créer une nouvelle palette, vous avez besoin de deux choses :
L'offset de la nouvelle palette
Son numéro
Comment les trouver ? Pas besoin de chercher, vous les inventez ! :D
Je vais faire ma nouvelle palette à l'offset B30000 (renversé : 0000B308) et lui donner le numéro 1E.
Rappel :
Une palette fait 16 couleurs, 2 octets par couleur, donc une palette fait 32 octets.
Composition d'un pointeur de palette :
XXXXXX08YY110000
XXXXXX08 : le pointeur vers la nouvelle palette, pour moi : 0000B308
YY : le numéro de palette, pour moi : 1E
110000 : Ca ne change pas !
Voici la composition de mon nouveau pointeur : 0000B3081E110000
Je colle donc ceci à la suite de la table des palettes. N'oubliez pas, la table doit se terminer par "0000000000000000".
Utiliser la palette créée dans un sprite
Rien de plus simple ! Quoique, si, il y a un problème.
Dans votre composition de sprite, à l'emplacement du numéro de palette (soit le troisième octet), inscrivez le numéro de votre palette ; j'y mettrai donc 1E.
Ca, c'était la partie facile. Seulement, il y a un problème.
Vous vous souvenez des Pal Registers ? C'est de là que vient le problème.
En fait, si vous utilisez le Pal Registers d'un sprite ayant une autre palette, ce sprite là prendra la même palette que celle du sprite créé. (Pas si dur à comprendre, relisez la phrase x))
Malgré tout, j'ai cherché à contourner ce problème, je vous conseille d'utiliser comme données de Pal Registers "1A010000" : C'est celle du bateau, étant donné que logiquement il n'apparaît pas sur la map, ça ne provoquera pas de bug, seulement si vous placez à proximité deux sprites utilisant deux palettes différentes mais avec le même Pal Registers.
Pour contourner entièrement ce problème, il faudrait changer quelque chose en interne. Mais là, c'est beaucoup plus difficile, et on ne va pas le voir.
Entrez donc ce Pal Registers dans la composition de votre sprite.
Pour ensuite éditer la palette créée, vous pourrez le faire en chargeant un sprite avec NSE ; il suffit juste auparavant, à l'aide des Bookmarks (cf. partie précédente), de désigner l'offset de la nouvelle palette (ici, B30000). Ou alors, vous pouvez toujours l'éditer via l'hexadécimal :D
[hr]
VI. Annexes
Rappel du vocabulaire
Quelques petits rappels de vocabulaire :
Un sprite, aussi appelé Overworld (OW), est un event qui se déplace sur la map (Personnage, Pokémon, arbre...)
Chaque sprite possède une ou plusieurs frames : ce sont les différents dessins qui composent le sprite
Une composition de sprite est une suite de 36 octets et comportant toutes les informations sur le sprite (taille, palette...)
La table où sont présentes toutes les compositions est appelée "Spritebank"
Les compositions de sprite possèdent un pointeur particulier : le sprite pointeur. Ce sprite pointeur amène à un offset :
Le pointeur vers le dessin. Il indique à quel offset se situe le dessin du sprite, ainsi que la quantité d'octets à lire (en fonction de la taille). Chaque pointeur à la suite représente une frame du sprite.
Une palette est une suite de 16 couleurs (dont une pour la transparence), donnant la couleur au sprite
... (à venir si j'y pense)
Rappel des offsets : Rouge Feu FR
Je n'ai recherché que pour Rouge Feu FR, voici donc les offsets (je suis ouvert si quelqu'un d'autre les a pour d'autres versions).
Spritebank : 39DFA0
des palettes : 39F548
Table des pointeurs vers les compositions : 39A1A0
Offset où repointer la table des pointeurs vers les compositions : 5F3B4
Offsets où repointer la table des palettes : 5F598, 5F630, 5F688
(De même, peut-être incomplète !)
[hr]
Voilà, on en a fini pour ce tuto ! :D
J'espère que la longueur ne vous a pas empêché de lire et d'aimer ce tuto ^^
J'ai fait mes recherches moi-même à partir de presque rien, je vous demande donc de respecter mon travail (qui m'a pris deux dizaines d'heures facilement, sans compter le temps de faire ce tuto !) et de ne rien copier ! MERCI.
Voilà, n'hésitez pas à commentez et à répondre au sondage, histoire que je sache si ce que j'ai fait est bon ^^
À vous les OWs ! :D
BlueSteel - 22 mai 2012 à 19:24
Je n'ai pas tout lu mais d'après ce que j'ai vu, ce tuto a l'air très complet GG
mystogan640 - 22 mai 2012 à 23:23
Merci 1000 fois Mikey, ca gère.
monsieur07 - 23 mai 2012 à 19:12
Gg, le tuto est génial. :winner:
Arnikum Plus - 23 mai 2012 à 21:05
Mickey, tu as bossé!
Merci
yago58 - 24 mai 2012 à 17:12
Sondage sans aucun intérêt Mickey' :-\
En dehors de ça gg pour le tuto.
supersam2 - 30 mai 2012 à 20:12
Wait depuis quand on a quelqu'un qui gère autant l'édition via hexa ici? Tu gères, gg.
Flower// - 30 mai 2012 à 20:23
Mickey, t'es un dieu mec ! :roubaix:
Excellent tout ça ! Je vais vite jeter un coup d'oeil !
En tout cas félicitations, tes recherches ne t'ont pas servies à rien, et merci beaucoup de partager !
Mickey` - 30 mai 2012 à 20:50
@Flow : Ne me sous-estime pas. Maintenant, laisse moi crever. :imbecile:
Non plus sérieusement, merci, ça fait plaisir de voir que le travail ne sert pas à rien
J'en ferai d'autres si je trouve les thèmes.
darklives - 4 mars 2013 à 19:30
Tuto lu en entier, testé (sur Rouge Feu aussi), et c'est fonctionnel, j'ai pu augmenter le nombre d'OW grâce à toi! Merci.
Mickey` - 4 mars 2013 à 19:51
Ca fait plaisir de savoir que je me suis pas tapé tout ça pour totalement rien
tuturosso - 4 mars 2013 à 19:55
Étant inculte dans le milieu de la hack rom,je voudrais juste savoir ce que sont des overwolds?
Merci.
darklives - 4 mars 2013 à 20:02
C'est tout ce qui est par-dessus les blocks de ta map: les persos, les pokémon visibles sur la map (comme les légendaires par exemple), et certains objets de quête (le rubis et le saphir dans RF et VF).
Ca fait plaisir de savoir que je me suis pas tapé tout ça pour totalement rien
Vous faites pas les tutos pour rien, même les plus vicieux y'a des gens pour les lire et les tester, et les derniers tutos donnent vraiment de la profondeur au R-H GBA (je pense notamment aux level scripts et à ce tuto), ça ouvre énormément de possibilités, donc un grand MERCI à Mickey, Sainior, Flow' et tous les autres pour ça
Mickey` - 4 mars 2013 à 22:07
Personnellement, c'est le manque de retours et "l'inutilité" apparemment visible qui me retient de faire des tutos. Sinon, je pourrais en faire, mais cette section est de plus en plus délaissée...
On continue par MP si tu as besoin, sauf si c'est en rapport avec le sujet du topic, pas besoin de flooder
yushi56 - 5 mars 2013 à 15:56
merci c'est tres complet
et surtout tres utile
GG!!