Problème :(

Des soucis pour hacker votre jeu ? C'est ici qu'il faut exposer votre problème.
Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :
Problème :(

Message non lu par Micro-Nation »

Bonjour à tous!
Voilà, en commencant le hack d'une rom, il m'est arrivé une chose qui en m'était encore jamais arrivé:
La plupart des roms Snes, enfin oute celle que j'avais rencontrées avant celle la était organisé de facon a ce qu'il y est une partie donnée(ou plusieurs), une partie ou plusieurs contenant la table graphique, puis une ou plusieurs partis contenant la fonte graphique du jeu...

Mais comment faire si la partie de la table de font est dans la partie de donnée de la rom?

Le jeu que j'essaye de romhacker est evo, c'est une low rom (Snes), environ 1.5mo, j'essaye de refaire la fonte puis de refaire une trad correcte.

Si quelqu'un pouvait m'éclairer ca serait superbe...
Merci à vous tous et @ bientot :oops:

Avatar de l’utilisateur
Jes
Pom pom pom
Messages : 5822
Inscription : 24 févr. 2002, 14:05
Localisation : Siège social de BessaB
Contact :

Message non lu par Jes »

Je pige pas trop ce que t'essayes de dire. Qu'est ce que tu entends par une table de font? Je comprends pas non plus où est le problème. Ca veut dire quoi de "la table de font est dans la partie de donnée de la rom" ?! C'est quoi pour toi ces fameuses parties?!

Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :

Message non lu par Micro-Nation »

Escusez, je crois que je me suis mal exprimé, ....
La fonte d'une rom est composée de plusieurs parties :

- Les parties de données ( texte, pointeur, ...)
- Une ou plusieurs Fontes (la fonte graphique)(Table)
- Une ou plusieurs parties des graphismes de la fontes.(decor, objet,...)

Mon probleme, c'est lorsque la fonte graphique(table) se retrouve dans la partie donnée....


Fonte EVO compressée :

http://www.micro-nation.fr.st/images/Fo ... ressee.JPG


Fonte EVO decompressée :

http://www.micro-nation.fr.st/images/Fo ... ressee.JPG

J'espere que ce sera pus compréhensible :)

Avatar de l’utilisateur
Jes
Pom pom pom
Messages : 5822
Inscription : 24 févr. 2002, 14:05
Localisation : Siège social de BessaB
Contact :

Message non lu par Jes »

A vrai dire, c'est pas beaucoup plus compréhensible ;) En fait je vois surtout que tu te mélanges les pinceaux un peu beaucoup :mad: Une font, c'est ni plus ni moins que les graphismes de la police utilisée dans le jeux. Il est pas question de texte, pointeur ou que sais-je encore. La font, c'est du graphisme, pur et dur ;)

Pour revenir à ton problème, j'ai encore du mal à comprendre ;) Effectivement, la font est compressée (au fait, comment as-tu fait pour avoir la font décompressée? Tu as cherché dans un zst? Tu as fais un prog? Pas clair tout ça :wink:). J'imagine que tu veux la modifier. Si c'est le cas, bein va falloir que tu te fasses un compresseur!

Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :

Message non lu par Micro-Nation »

Désolé j'utilise peut être pas les bons mots pour les bonnes choses :mad:

Donc je vais essayer de t'expliquer au mieu ce que j'ai fait.

J'ai d'abord prix un *.zst, des le lancement du jeu pour avoir un appercu de la table decompréssé. Apres avoir eu cette apercu, cela ma permi de retrouver la fonte( les graphismes de la police) dans la rom evo.

En voyant cette fonte can mm assez compréssé, j'ai chercher la rom japonaise sur le net qui d'ailleur n'avait pas du tout le mm nom(46 Okunen Mono gatari).

j'ai essuite comparé les 2 roms avec tile layer pro, et j'ai constaté que la fonte jap et us était compréssé de la mm maniere. j'ai fait quelque test, en utilisant zsnes et un editeur hexadecimal.

C'est a ce moment la que j'ai constaté en utilisant un assembleur 6500, que la routine permettant la decompression de la fonte était dans la fonte...

La j'ai cherché a comprendre le fonctionnement, et suis en train de sortir la routine. Au 3/4 de celle ci j'ai essayer de comprendre comment marchait le debut de cette routine.(pas bocoup de succes encore a ce nivo, je vais attendre de lavoir tte sortie)

Mais ca m'a permi de retirer cette routine donc de me laisser une fonte sans donné.

Je crois que je vais pas me casser la tete, je vais juste rajouter les accents que j'ai besoins, et traduire le necessaire dans la fonte.


Qu'est ce qu'un compresseur?

Avatar de l’utilisateur
Jes
Pom pom pom
Messages : 5822
Inscription : 24 févr. 2002, 14:05
Localisation : Siège social de BessaB
Contact :

Message non lu par Jes »

Comment tu as conclu que la routine de décompression était dans la font? Parce que hem :roll:

Un compresseur, c'est tout simplement un programme qui compresse des données pour réduire leur taille ;) Exactement comme le fait winzip, pour ne citer que lui. Mais n'espère pouvoir l'utiliser pour recompresser ta font :D

Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :

Message non lu par Micro-Nation »

Car tout simplement lorsque je modifie cette routine le texte saute,cad :

00 30 BRK #$30
00 70 BRK #$70
00 00 BRK #$00
00 00 BRK #$00
FF 00 SBC $000000.X
00 00 BRK #$00
00 00 BRK #$00
00 00 BRK #$00
00 F1 BRK #$F1
00 00 BRK #$00
00 00 BRK #$00
40 00 RTI
60 00 RTS
00 00 BRK #$00
00 D7 BRK #$D7

Voila le ptit debut de la routine, j'pense pas cela servira a grand chose d'aller plus loin apres...
Tout les " BRK #$00 " ont été modifier par moi mm, cela ne change rien a l'affichage de la fonte :(j'ai sortit la routine et me rester donc ce qui definisait la fonte)

- la fonte est lu corectement, mais il manque des bouts de lettres...
Ca l'air flou, je vais eclaircir ca:

00000000
01111110
01000010
01000010
01111110
01000010
01000010
00000000

Normalement sans toucher a la fonte j'obtient ca...
En modifiant les valeurs hexa represente la fonte, jobtient ceci :

00000000
00000000
00000000
00000000
00000000
01000010
01000010
00000000

Et si je continu :

00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

Maintenant si je viens a modifier la routine, selon ce que je modifie alors la fonte prends un aspects differents:

Exemple:

00 30 BRK #$30
00 70 BRK #$70
00 00 BRK #$00
00 00 BRK #$00

Admettont que je modifie " 00 30 BRK #$30 " en remplacant le " 30 " par " 00 ", alors j'obtiendrais : " 00 00 BRK #$00 ".
Je lance Zsnes, je vois a ce moment ceci :

Loriginal :
http://www.micro-nation.fr.st/images/origin.JPG

Lorsque je modifie " 00 30 BRK #$30 " en " 00 00 BRK #$00 "
http://www.micro-nation.fr.st/images/0030.JPG

Admettont que je modifie " 00 70 BRK #$70 " en remplacant le " 70 " par " 00 ", alors j'obtiendrais : " 00 00 BRK #$00 ".
Je lance Zsnes, je vois a ce moment ceci :

Loriginal :
http://www.micro-nation.fr.st/images/origin.JPG

Lorsque je modifie " 00 70 BRK #$70 " en " 00 00 BRK #$00 "
http://www.micro-nation.fr.st/images/0070.JPG


:)

Avatar de l’utilisateur
Jes
Pom pom pom
Messages : 5822
Inscription : 24 févr. 2002, 14:05
Localisation : Siège social de BessaB
Contact :

Message non lu par Jes »

Hem, c'est ce que je pensais ;) Ce que tu as là, c'est pas DU TOUT du code assembleur: ce sont que des données graphiques compressées! Evidemment, si tu modifies quelques chose, ta font va s'afficher différemment. C'est exactement comme si tu modifiais ton texte. Simplement, ici, y a une compression qui complique les choses ;) C'est pour ça que tu vois pas la font correctement et que tu ne sais pas la modifier comme tu le voudrais ;) Si tu veux vraiment modifier ta font, va falloir que tu décompresses (tu peux utiliser les zst si tu veux), modifier le résultat avec ton éditeur préféré et puis recompressé le tout, ce qui exige de tracer la routine de décompression, analyser et comprendre l'algorithme, avant d'essayer de faire un compresseur^^

Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :

Message non lu par Micro-Nation »

Ouarf, pourtant j'ai réussi a modifier le "A" en "B", le "C" en "A" mais pas essayer pour les autres...
Donc ca serais coïncidence... Vais tout reprendre alors :).
Merci à toi Jes :wink:

PS : le " FF 00 SBC $000000.X " lui quand j'essai me casse la fonte (oui javais pas parler de la suite ta l'heure, il y en a d'autre qui ont le mm effet, parec que je vois pas ou elle peu etre si ce n'est la, cette modite routine de compression) :

http://www.micro-nation.fr.st/images/FF00.JPG

Me suis je donc completement planter?
Dernière modification par Micro-Nation le 08 août 2003, 23:09, modifié 1 fois.

Avatar de l’utilisateur
Jes
Pom pom pom
Messages : 5822
Inscription : 24 févr. 2002, 14:05
Localisation : Siège social de BessaB
Contact :

Message non lu par Jes »

Non en fait, tu peux essayer de modifier les lettres avec les données brutes, mais c'est assez compliqué (et en fait quasiment impossible) ;) Pour reprendre l'exemple du texte, c'est comme si tu avais une compression DTE/MTE/LZ dans ton script. Sans compléter la table, tu peux très bien modifier les parties non compressées. C'est que tu as du faire pour tes graphismes ;) Dans toute cette bouillie on distingue encore assez bien certaines lettres, que tu peux essayer de modifier, mais le résultat n'est pas garanti, d'autant plus qu'il y a beaucoup de chance pour qu'une modification sur une lettre se répercute sur d'autres lettres ;)

A mon avis, y a beaucoup de chance que ta font soit compressée en LZ. Sinon, peut-être du RLE ;)

Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :

Message non lu par Micro-Nation »

ok, Merci ! :-)

Avatar de l’utilisateur
Jes
Pom pom pom
Messages : 5822
Inscription : 24 févr. 2002, 14:05
Localisation : Siège social de BessaB
Contact :

Message non lu par Jes »

Je vois que tu as édité ton post pendant que je répondais, je vais donc réagir sur ce que tu as dit de nouveau ;) Le SBC machin, c'est pas du code du tout, donc il faut SURTOUT pas regarder ça comme l'opcode SBC blabla. Par contre, ces deux bytes FF 00, mmmmmh. C'est très très intéressant, et le fait que ça se trouve ou tout début de la font, ca l'est encore plus ;) Alors si tu modifies ca, ta font déconne complètement ? Et bien je suis quasiment sûr (pour ne pas dire tout à fait certain ;)) que c'est du LZ maintenant :D

Micro-Nation
Nouveau Floodeur
Messages : 20
Inscription : 31 juil. 2003, 20:16
Localisation : Paris
Contact :

Message non lu par Micro-Nation »

Ca serais a la fois cool et tres con que se soit du LZ, cool parce j'pense pouvoi me debrouiller un peu avec ca, mais le pb c'est qu'il y a tellement de dériver de cette compression, ca va etre des heures d"essais :(

Avatar de l’utilisateur
Pixel
Codeur à l'irc dormant
Messages : 1946
Inscription : 17 avr. 2002, 17:30
Localisation : San Jose
Contact :

Message non lu par Pixel »

Non, ce n'est pas si compliqué que ça le LZ...

Ma méthode en général consiste à regarder en même temps dans un éditeur hexa le flux LZSS et la sortie décompressée. Le principe général reste le même: des bits de contrôle, en général, 8, suivi de 8 blocs. Et "comprendre" un bloc compressé se traduit par l'examun de la sortie décompressée pour savoir exactement combien d'octets et quels octets ont été copiés. A partir de là, on forme le couple <saut, longueur> et on détermine la forme du bloc compressé avec ça. Il suffit de recommencer 2 ou 3 fois sur le reste du flux LZSS pour être bien sûr que l'on a compris, puis on écrit le soft de décompression (ou on paramètre son soft si on en a déjà un) et on vérifie que la sortie de son soft correspond octet par octet à la décompression dans la savestate.
pixel: A mischievous magical spirit associated with screen displays. The computer industry has frequently borrowed from mythology. Witness the sprites in computer graphics, the demons in artificial intelligence, and the trolls in the marketing department.

Avatar de l’utilisateur
Skeud
Oook ?
Messages : 3806
Inscription : 25 févr. 2002, 22:01
Localisation : Loompaland
Contact :

Message non lu par Skeud »

La pixouille est revenue de vacances ...
Pixel a écrit : par l'examun
Mais encore un peu fatiguée! :lol:
Si tu ressens l'envie de travailler, assieds-toi, et attends qu'elle te passe....
A mon niveau, on ne croit pas, on sait. (Docteur Helmut Perchut)

Avatar de l’utilisateur
Pixel
Codeur à l'irc dormant
Messages : 1946
Inscription : 17 avr. 2002, 17:30
Localisation : San Jose
Contact :

Message non lu par Pixel »

C'est une des fautes que je fais de manière systématique.
pixel: A mischievous magical spirit associated with screen displays. The computer industry has frequently borrowed from mythology. Witness the sprites in computer graphics, the demons in artificial intelligence, and the trolls in the marketing department.

Avatar de l’utilisateur
Skeud
Oook ?
Messages : 3806
Inscription : 25 févr. 2002, 22:01
Localisation : Loompaland
Contact :

Message non lu par Skeud »

Pixel a écrit :C'est une des fautes que je fais de manière systématique.
et ça fait mal? (Warning! Trolling!)
Si tu ressens l'envie de travailler, assieds-toi, et attends qu'elle te passe....
A mon niveau, on ne croit pas, on sait. (Docteur Helmut Perchut)


Répondre