Page 18 sur 22

Publié : 12 juin 2006, 18:18
par Azed
Voici le texte extrait ^^ :

{Grandbell }rests {in }{the }center {02}{of }{the }Jugdral continent {and }{08}{02}{was }founded {by }{Saint }Heim, {one }{02}{of }{the }12 Crusaders.

D'aprés ce que j'ai pu voir les {02} correspondent à la fin d'une phrase
et les {08} a un section break et les mots entre {} sont des MTE ...

J'ai alors fait un petit test et j'ai traduit sans me soucier de pointeurs etc ... même si au final,lors de la réinsertion, le nombre de caractéres étaient moindres , le jeu a buggé a cause de ces 2 types pointeurs ...

Mais je dois faire comment pour ne pas les changer de place ? Ce sera invéitable , non ?

Publié : 12 juin 2006, 18:55
par BahaBulle
02 = fin de ligne
08 = fin de cadre
FF = fin de section (il me semble)

Si tu veux tester sans te soucier des pointeurs, il faut que chaque ligne ou chaque cadre ou chaque section fasse la même taille que la version US.

Lequel choisir parmis ces trois là ? Trouver les pointeurs pour savoir sur quel parties ils pointent. Sinon, faut essayer ;)

Par contre, autant les pointeurs des MTE étaient simples, autant ceux des textes sont plus coriaces :/

Publié : 24 juin 2006, 17:19
par Azed
Je suis désolé d'avoir interrompu notre conversation sur MSN la derniére fois, alors que tu t'apretais a m'expliquait un truc important ... J'avais une urgence ... Je suis désolé ....

Pourrait tu me réexpliquait le truc sur les MTE ?

EDIT : J'ai oublié de preciser que cétait pour Bahabulle :lol: mais tout le monde peut y répondre en fait :-)

Publié : 26 juin 2006, 09:15
par Azed
Salut , j'ai un autre probléme ...

Je crois que le jeu ne comporter pas de table de pointeur (a part pour les MTE :D )...
Dans ce cas , comment puis-je trouver leles pointeurs qu'il me faut modofier :-?

Publié : 26 juin 2006, 10:10
par Ti Dragon
Le jeu a forcément des pointeurs pour la bonne et simple raison que s'ils n'existaient pas, le ROMhackeur Jap -> US aurait eu beaucoup de mal à insérer la traduction (faire exactement le même nombre de caractères avec une MTE sur plus de 300 ko de texte qui plus est, ça relève du cauchemard :lol:).

Publié : 26 juin 2006, 10:28
par BahaBulle
Le problème, c'est que le hackeur Jap->US a, semble-t-il, utilisé l'ASM. Y'a pas mal de routines ou d'infos de debugger dans les fichiers qu'il donne. Donc, certe il y a des pointeurs mais ils ne sont peut-être pas "facilement" visibles.

Pour la MTE, c'est pas compliqué.
Les mots de la MTE représentent un dictionnaire des mots les plus utilisés.
Donc en gros, ils ont écrits leurs textes puis ont recherchés les mots les plus utilisés et ça a donné la MTE.

Toi, tu veux traduire la MTE mais ce n'est pas une solution car les mots les plus utilisés en US ne seront pas forcément les mêmes en FR.

Il faut faire la même chose que pour le texte original, c'est à dire, tout traduire puis rechercher les mots les plus utilisés dans les textes FR et créer ta propre MTE.

Publié : 26 juin 2006, 10:39
par Ti Dragon
Baha : peut-être mais les pointeurs existent... Bon, ils sont peut-être pas calculés comme il faut par contre, je dis pas le contraire ;)

Legault : pour l'optimisation de la MTE, il y a un module qui existe dans le Hareng Tool.

Publié : 26 juin 2006, 10:45
par BahaBulle
Ti Dragon a écrit :Baha : peut-être mais les pointeurs existent... Bon, ils sont peut-être pas calculés comme il faut par contre, je dis pas le contraire ;)
J'ai pas dit qu'ils n'existaient pas, hein ;)
J'ai juste dit qu'ils n'étaient pas facilement visibles :D

Publié : 03 juil. 2006, 10:23
par Loki
Si t'as besoin de quelqu'un pour extraction/insertion des textes,
je suis disponible.

Publié : 04 juil. 2006, 00:32
par Lestat
Pour ma part j'ai contacté l'auteur pour faire la traduction du 6 ième opus sur gba, mais j'ai pas encore eu de réponse :/

Publié : 04 juil. 2006, 19:29
par guile
Chouette, des volontaires!

Publié : 05 juil. 2006, 16:50
par Azed
Slt j'ai eu des problémes de connexion Internet chez moi et c'est pour cela que je n'ai pas été trés dispo... je vous parle de ma fabuleuse médiathéque avec connexion Internet ... En plus , je n'ai pas eu beaucoup de temps car j'ai préparé l'examen du code (qui a lieu demain :cry: )

Ok j'ai compris pour les MTE ... :D
Pour l'Asm je vais demander des explications a DT et ptet bien a ce Loki qui a la gentillesse de vouloir hacker avec moi ...

Encore un gros merci a Baha et Ti :wink:

@+

PS: j'ai même pas eu le temps de faire la mariole :cry:

Publié : 07 juil. 2006, 10:34
par Azed
Salut !

Juste au passage : JAI EU MON CODE !!!!!!!!!!! :-D :-D :-D

Bon revenons au romhacking :
Je n'ai aucune idée de comment l'ASM fonctionne :-?

Je vais aller regarder des topics mais si vous pouvez m'en dire plus ce serait sympa , pis aussi me conseiller de bon topics :wink:

Merci @+^^

Publié : 07 juil. 2006, 10:44
par Ti Dragon
Euuuuh O_o

Pour l'ASM, c'est un "langage" de programmation qui n'a ABSOLUMENT RIEN A VOIR avec la logique des langages tels que le C ou le Visual Basic. Les instructions sont propres à chaque machine et il faut lire de la documentation sur l'architecture de chaque console pour comprendre comment fonctionnent lesdites instructions.

Mais, avant de te jeter dedans, il faut d'abord comprendre la "logique" de l'ASM et ce n'est pas gagné (même si c'est censé être "simple" :D).

P.S. : et félicitations pour l'obtention de ton code ^^

Publié : 07 juil. 2006, 12:42
par S.O.R
Et ça s'explique pas en 2 lignes... Ca s'apprend en de nombreuses heures

Publié : 07 juil. 2006, 13:19
par Jonath lé là
L'ASM c'est pas plus difficile que n'importe quel autre langage.
C'est juste que c'est ce qu'il y a de plus low-level et que ça diffère selon chaque plateforme.
Mais au final, c'est même plutôt simple. La difficulté est présente surtout quand il s'agit de faire un programme complexe.

Publié : 07 juil. 2006, 13:23
par Ti Dragon
La difficulté est surtout présente quand tu gardes à l'esprit la logique du C par exemple.

Bien entendu, c'est "tellement simple" dans le principe (car ce sont des opérations de bas niveau) que ça en devient compliqué quand tu veux t'y essayer. Et je suppose qu'il faut tout de même un certain temps d'apprentissage...

<taquinerie>
Eh, Jonath, tu dis que c'est simple mais je t'ai pas encore vu pondre une seule ligne de code ASM pour un quelconque jeu :lol:

*fuit*
</taquinerie>

Publié : 07 juil. 2006, 14:03
par Jonath lé là
Le C et l'ASM se ressemblent beaucoup, la syntaxe est différente, les opérateurs de bases et les structures de base sont différents mais sinon c'est le même principe.

Et c'est certain qu'il y a une période d'apprentissage comme pour tout langage. Mais l'ASM pour une plateforme s'apprend bien plus vite que le C par exemple. Mais c'est sûr que dés qu'il s'agit de développer un algortihme compliqué, l'ASM c'est l'enfer. Mais c'est pas parce que le langage est compliqué, mais c'est parce qu'il manque singulièrement d'expressivité.

De plus, pour le romhack, vous connaissez sans doute le nombre faramineux de jeux que j'ai hacké. Si je ne romhack pas avec succès, c'est tout simplement car j'ai pas la patience pour. L'ASM c'est bien beau, mais quand t'en dumps des tonnes et que tu essaies de retrouver une routine, ou alors si tu essaies de comprendre l'intention d'un code, c'est casse toi la tête contre le mur et compagnie.
C'est la partie reverse engineering qui est fasitdieuse et complexe. Après il ne s'agit que d'écriture, et même si ce n'est pas trivial c'est beaucoup plus simple (à mon opinion).

Publié : 07 juil. 2006, 14:09
par Loki
L'assembleur demande moins de temps d'apprentissage que le C++,
mais il faut changer de logiciel en fonction de la machine.
Alor que pour le C++, il suffit de recompiler le compilateur!

Publié : 07 juil. 2006, 18:35
par JujuDredd
Disons que l'assembleur est rapide à apprendre, mais très difficile à maîtriser : très peu d'opérations disponibles et uniquement du bas niveau. Un peu comme si tu devais faire marcher un robot en lui expliquant chacun des gestes à faire... En plus les machines récentes on un assembleur encore plus basique avec encore moins d'instructions de base. Moi j'ai déjà fait de l'assembleur 68000 eh bien je vous assure que c'était plus agréable à utiliser que de l'assembleur PSX (mips 3000 je crois). Pourquoi ? Eh bien on s'est rendu compte que si un processeur offre un pannel complet d'instruction avec plusieurs mode d'adressage possibles pour chaque instruction, ceci ne sert qu'à quelqu'un qui programme directement en assembleur, pas aux compilateurs qui deviendraient trop complexes à optimiser. Donc les compilateurs ne génèrent qu'un nombre très réduit d'instructions assembleur, et puisque plus personne (enfin presque) ne fait de l'assembleur on préfère faire des pross qui ne savent gérrer que le nombre minimal d'instruction mais optimisés avec un pipeline (c'est à dire une sorte de traitement à la chaîne, c'est-à-dire que pendant qu'une instruction est exécutée la suivante est déjà en train d'être décodée).

Publié : 08 juil. 2006, 15:34
par Loki
J'ai commencé a décoder les codes spéciaux de FE4.
Y'en a pas mal!
(changement de fenêtre, index des kanjis, etc...

Publié : 13 juil. 2006, 10:09
par Loki
Bon, comme je suis de bonne humeur.

Je vais vous expliquer le fonctionnement des pointeurs
et des codes spéciaux de FE4.

Pour les pointeurs

Comme c'est une high rom et que les pointeurs sont 24 bits,
on peut déplacer les textes n'importe où.

Un pointeur dans FE4, pointe une scène un non une chaîne de
caractères et pointe toujours un octet égale à 06h ou 07h (voir la table).
Pour trouver un pointeur, gardez ses trois octets, ajoutez lui 800000h,
et inversez le tout.

Dans la rom de J2E translations, il n'ont pas écrasés les textes japonais,
mais déplacé les textes en fin de banque.


La table ci-dessous correspond à la rom J2E.



Fire Emblem - Seisen no Keifu (US)


Codes Spéciaux

00 = appel de fonction suivi par un numéro de fonction
et un paramètre sur deux octets si nécessaire
1D 10 = fonction inconnue
29 = fonction inconnue
3D = fonction inconnue
3E = fonction inconnue
3F = sélectionne le portrait du personnage
XX 00 = numéro du portrait du personnage
40 = fonction inconnue
01 = Message Break
02 = Line Break
03 = Start Window (efface le texte de la fenêtre courante et reprend au début de celle-ci)
04 = Sliding Window (efface le texte de la fenêtre courante en faisant glisser le texte
vers le haut et reprend au début de celle-ci)
05 = inconnu suivi d'un octet
06 = Window A (Sélectionne la fenêtre du haut)
07 = Window B (Sélectionne la fenêtre du bas)
08 = Section Break
09 = Index Hiragana, Katakana & Romaji dans la ROM Japonaise
Index Romaji (Lettre Latines) dans la ROM Anglaise
0A = Index Kanji 1
0B = Index Kanji 2
0C = Index Kanji 3
0D = Index Kanji 4
0E = Bug
0F = Bug

Minimum pour initialiser une fenêtre :

06 ou 07 = sélectionne la fenêtre haute ou basse
00 3D
00 3F XX 00 = Portrait à afficher


Codes des Caractères

10 = A
11 = B
12 = C
13 = D
14 = E
15 = F
16 = G
17 = H
18 = I
19 = J
1A = K
1B = L
1C = M
1D = N
1E = O
1F = P
20 = Q
21 = R
22 = S
23 = T
24 = U
25 = V
26 = W
27 = X
28 = Y
29 = Z

2A = a
2B = b
2C = c
2D = d
2E = e
2F = f
30 = g
31 = h
32 = i
33 = j
34 = k
35 = l
36 = m
37 = n
38 = o
39 = p
3A = q
3B = r
3C = s
3D = t
3E = u
3F = v
40 = w
41 = x
42 = y
43 = z

B0 = -
B1 = 0
B2 = 1
B3 = 2
B4 = 3
B5 = 4
B6 = 5
B7 = 6
B8 = 7
B9 = 8
BA = 9

BB = ,
BC = .
BD = !
BE = ?
BF = Space

C2 = (
C3 = )
C4 = ~
C5 = '

Publié : 14 juil. 2006, 10:24
par Ti Dragon
C'est sympa tout ca :) J'espere que ca donnera assez d'indications a Legault ;)

Mais ceci m'amene une question : Loki, qui es-tu, d'ou viens-tu :D ?

Publié : 14 juil. 2006, 21:41
par Azed
Merci Loki mais je n'ai pas compris pour les pointeurs ...

Au fait , je te le redemande veut tu etre notre 2e hacker ?

Publié : 15 juil. 2006, 15:13
par Loki
Ti Dragon a écrit :C'est sympa tout ca :) J'espere que ca donnera assez d'indications a Legault ;)

Mais ceci m'amene une question : Loki, qui es-tu, d'ou viens-tu :D ?

En fait Ti Dragon, je suis juste un hacker qui ne sait plus
quoi faire de sa peau.

Habituellement, je travaille plutôt sur des EXE.

Quand à la question "d'où viens-tu",
je me permet de l'éluder et d'y répondre "France".