Fall.Exe
#51
Posté 08 septembre 2012 - 09:07
#52
Posté 08 septembre 2012 - 10:11
Modifié par Porygon, 08 septembre 2012 - 10:11.
#53
Posté 08 septembre 2012 - 14:51
Edit de 18:25
Bon, un essai rapide montre que l'offset de Cuir n'est pas non plus à l'adresse 1776354. Laisse tomber, je vais poursuivre mes recherches juqu'à mettre la main sur un offset qui fonctionne !
Modifié par Daneel53, 08 septembre 2012 - 17:27.
#54
Posté 08 septembre 2012 - 18:25
Entrée 0619, Fer, Adr0 = 29554, AdrN = 29570, Séquence de 4 mots Non Entrée 0619, Fer, Adr0 = 29650, AdrN = 29666, Séquence de 4 mots Plante Entrée 0619, Fer, Adr0 = 29710, AdrN = 29726, Séquence de 4 mots Plante Entrée 0619, Fer, Adr0 = 1763180, AdrN = 1763196, Séquence de 4 mots Non Entrée 0619, Fer, Adr0 = 1776218, AdrN = 1776250, Séquence de 8 mots Non Entrée 0619, Fer, Adr0 = 1791174, AdrN = 1791206, Séquence de 8 mots Non Entrée 0619, Fer, Adr0 = 1805404, AdrN = 1805424, Séquence de 5 mots Non
Les non veulent dire que le jeu se lance une mais aucun changement en jeu, et les "plante" veulent dire que le jeu ne se lance même pas, écran noir et retour windows. Comme tu l'as dit on est pas sorti de l'auberge .
Modifié par Porygon, 08 septembre 2012 - 18:34.
#55
Posté 08 septembre 2012 - 20:23
Je suis plutôt effondré de ces résultats lamentables, mais je continue à me dire que les tables d'offsets doivent exister et que ma méthode doit permettre de les trouver. D'ailleurs quand on va à l'endroit indiqué par mon code on tombe quasi systématiquement sur une suite d'octets qui, avec leur structure de forme "00 00 XX YY" ne peuvent pas être du code version langage machine, donc ça ne peut qu'être des offsets d'indirection, rontudiuuuuu ! Allez, on continue les essais, mais il est clair que tant que je n'aurai pas réussi à faire afficher "uir" pour "Cuir" ou "er" au lieu de "Fer" en ajoutant 1 à un offset, c'est que je n'aurai pas trouvé la bonne table d'offsets.
Une nouvelle fois, $%#! de Fall.exe !
Modifié par Daneel53, 08 septembre 2012 - 20:24.
#56
Posté 08 septembre 2012 - 20:32
#57
Posté 08 septembre 2012 - 21:09
#58
Posté 09 septembre 2012 - 07:50
Quant au fait de savoir si l'homme est supérieur à la machine, hum je ne sais pas. Tout comme ton avatar le suggère I-Robot est un parfait exemple de machines incontrôlables où les humains sont impuissants. Mais heureusement un gentil américain vient sauver le monde (une fois de plus...) qu'est-ce qu'on ferait sans eux vraiment !
PS : Sinon pour en revenir à un exemple plus parlant oui nous sommes toujours supérieurs aux machines par le fait que nous puissions penser et agir sans avoir besoin d'être programmés mais nous sommes devenu des esclaves de toutes ces technologies. Essaye par exemple de demander au monde entier de se passer du téléphone, d'internet du GPS et de l'ordinateur et 98% de la population sera perdu, la bourse dégringolera plus de business et dans un moindre mal les accros de Facebook ferait une petite cure etc. Je suis sûr que ça serait un bordel monstre, on ne peut donc plus se passer de toutes ces technologies, et encore je ne compte pas la voiture ni l'électricité et l'eau courante et appareils ménagers qui relèvent plus de la mécanique pour moi mais si on les enlève alors là c'est l'apocalypse.
Modifié par Porygon, 09 septembre 2012 - 07:58.
#59
Posté 09 septembre 2012 - 10:26
Citation
Bah, si le fim avait été français, c'est un français qui aurait sauvé le monde... et si je me souviens bien de l'image finale de I, Robot (que je n'ai vu qu'une fois au cinéma l'année de sa sortie, donc il y a huit ans), il me semblait plutôt que la domination des robots n'était que partie remise.
Accros aux technos ? Peut-être, mais chaque génération utilise les instruments qu'on met à sa disposition. Après ça le temps fera son oeuvre et on verra dans vingt ans ce qu'il restera de vraiment utile dans tout ça.
Pour en revenir à Fall.exe, pour éviter de fiche en l'air le programme je pense qu'il faut se limiter aux structures de type "00 00 ab cd", car sinon c'est que tu es probablement en train de modifier du code et non des données, et là, c'est sûr qu'à l'exécution... Mon programme ne fait pas ce filtrage là, mais je pense que je vais le coder pour éviter ce genre de problème.
Edit de 21:00
Finalement le weed-end fut chargé, peu de travail fait sur ce sujet depuis trois jours, j'essaierai de remettre le couvert cette semaine. Et en attendant, Porygon, passe à autre chose. Quand j'aurai réellement trouvé un offset qui fonctionne je vous ferai signe, mais d'ici là autant que je nage seul dans la purée dans laquelle je me suis jeté goulûment.
Edit de lundi 10, 23:00
Toujours pas d'offset qui fonctionne. Je n'y comprend rien ! A demain.
Lundi, 21:00
En fait je ne comprend pas pourquoi aucune des modifications d'offsets essayées ne donne quoi que ce soit. Le Fall.exe que j'utilise désormais possède au moins une vingtaine de valeurs modifiées sur des éléments affichés à l'écran (cuir, fer, argent, acier, temples, directions...) et malgré tout il continue à afficher les chaines entières comme si de rien n'était. Pourtant quand on met en évidence une suite de 36 adresses dont les différences successives sont exactement les longueurs de 36 entrées successives de Fall.exe, ça NE PEUT PAS être une coïncidence.
Je crois que je vais bientôt me prendre un coup de sang et foutre tous ces offsets à 00 00, et on verra s'il continue à faire comme si on n'avait jamais touché à rien ! A suivre... mais sans doute pas ce soir, je ne suis pas en grande forme.
Modifié par Daneel53, 11 septembre 2012 - 19:48.
#60
Posté 13 septembre 2012 - 00:25
La situation est donc la suivante : il y a bien dans Fall.exe, disséminés un peu partout dans la fin de fichier, des centaines d'offsets de valeurs prossessives dont les évolutions suivent parfaitement les longueurs successives de chaines de la ressource 1, mais quand ces valeurs sont modifiées Daggerfall se comporte comme si on n'avait rien fait. Au point que même remplacées par des 00, le jeu ne moufte pas. D'accord, je n'ai pas mis TOUS les offsets identifiés à 00, mais quand même... n'avoir pas réussi une seule fois à faire modifier l'affichage d'une chaine, ça fout les boules.
J'ai beau réfléchir à la question depuis plus d'une semaine, je ne vois toujours pas, si ces offsets ne sont pas utilisés, pourquoi ils sont là, et surtout comment Daggerfall arrive à savoir à quelle adresse exacte se trouve chacune des 2500 chaines qu'il utilise dans les ressources 1, regroupées en paquet les unes derrière les autres en fin de fichier. Car il tape toujours au même endroit, le bougre : il suffit de déplacer une chaine de un octet dans le paquet avec un éditeur héxa pour voir immédiatement le résultat.
Sans debugger capable de voir ce paquet de ressources, permettant ainsi de pièger un appel d'affichage d'une chaine particulière, je vais bientôt jeter l'éponge, car je suis à court d'idées. Il faudrait un vrai spécialiste des compilateurs DOS qui peut-être saurait comment le code est organisé, mais je doute qu'il y en ait un dans les parages. Allez, je vais me coucher, même si je sais que ces putains d'adresses m'empêcheront encore de dormir...
#61
Posté 13 septembre 2012 - 08:37
Sinon, tu peux éventuellement tenter d'envoyer un mail au gars de DaggerXL, peut être qu'il sait.
#62
Posté 13 septembre 2012 - 20:55
Envoyer un mail au gars de DaggerXL ? Oui, pourquoi pas, je n'ai rien à perdre.
Sinon il me pousse d'autres idées bizarres, comme écrire un tout petit programme avec des déclarations de chaines et des printf pour les utiliser, le compiler, puis regarder avec un éditeur hexa comment est fichu le .exe généré et essayer de comprendre comment tout ça est organisé. Mais le risque est très grand que le résultat soit dépendant du compilateur utilisé, et comme je ne sais pas avec quels outils Daggerfall a été programmé...
Bref, je cogite. J'essaie que cela soit en sous-marin quasi inconscient de mes activités normales et que l'idée jaillisse après mure réflexion. Mais je reste totalement dubitatif devant le manque de résultat de tous mes essais. Comment cela fonctionne-t-il, rontudiuuuuuuuuu, comment cela fonctionne-t-il ?
#63
Posté 14 septembre 2012 - 08:48
Daneel53, le 13 septembre 2012 - 20:55, dit :
[mode "je remue le couteau dans la plaie"]Tu ne vas pas te laisser tenir en échec par cet exe antédiluvien
En essayant d'être plus constructif : Ces données ne seraient-elles pas recopiées dans la sauvegarde ? (Auquel cas il faut obligatoirement passer par un perso neuf pour tester les modifs)
Coaching de PNJs chez Morrowind Renaissance
#64
Posté 15 septembre 2012 - 18:11
J'ai aussi, après avoir patché les offsets des matières principales, pensé à aller tuer un sbire qui m'attend à la sortie de l’auberge à 2h du matin, en partant du principe de les objets récoltés sur son cadavre sont générés aléatoirement, donc ne peuvent pas se trouver dans ma sauvegarde. Et le résultat fut le même : malgré la modification de tous les offsets des matières pour faire sauter les deux premières lettres, tous les objets proposés étaient écrits avec des noms de matière complets.
Non, je suis complètement dans le brouillard... Alors là,en cette fin de semaine, je laisse tomber et j'essaie de ne plus penser à ce problème. Quand l'envie reviendra, je referai d'autres essais, mais pour le moment, basta !
Modifié par Daneel53, 15 septembre 2012 - 18:11.
#65
Posté 19 septembre 2012 - 20:20
Pour ma part je continue ma désintoxication de Fall.exe, et ça va plutôt bien. Je ne pense pratiquement plus à cette histoire d'offsets, et c'est tout aussi bien, je recommence à dormir à peu près normalement. Un jour, peut-être pas si lointain, ça me reprendra, mais pour l'instant je laisse tomber.
Allez, à plus tard, portez vous bien.
#66
Posté 19 septembre 2012 - 22:01
#67
Posté 21 septembre 2012 - 22:47
A ajouter au paquet cadeau du futur PFD 0.28 !
Fichier(s) joint(s)
#68
Posté 01 décembre 2012 - 13:01
Le 6 novembre Elenthil nous a signalé un horrible bug du PFD 0.28 au démarrage d'une nouvelle partie, et le coupable a été rapidement identifié : Fall.exe, puisqu'il suffisait de remettre le Fall.exe du PFD 0.27 pour corriger le problème.
Entre les versions 0.27 et 0.28 Fall.exe a été intégralement accentué, donc ça me faisait mal au foie de tout enlever. Après un retour en arrière progressif de l'accentuation avec un éditeur hexa, j'ai fini par trouver LE mot qui met le souk au démarrage d'une nouvelle partie.
Donc, qu'on ne le note définitivement : IL NE FAUT PAS accentuer le mot "region" de l'entrée 2192; Sinon en interne ça devient "r<gion", et visiblement fall.exe n'aime pas ça du tout. Pour faire bonne mesure, j'ai aussi restauré le mot "stereo" qui se trouve en 2199, car c'est peut-être aussi un mot programmatique et non un mot du jeu à traduire.
Voici donc ci-dessous le fall.exe du PFD 0.28 corrigé. Ancestral Ghost, peut-être faut-il régénérer le PFD 0.28 avec ce nouveau fichier, parce que le bug est vraiment trop énorme.
Bon jeu !
Fichier(s) joint(s)
#69
Posté 01 décembre 2012 - 19:06
Coaching de PNJs chez Morrowind Renaissance
#70
Posté 02 décembre 2012 - 00:16
#71
Posté 02 décembre 2012 - 23:05
#72
Posté 23 mai 2013 - 20:09
Je reviens après plusieurs mois d'absence pour vous dire que j'ai encore un peu bidouillé cette histoire de table en refaisant les changements suivant :
Entrée 0619, Fer, Adr0 = 29554, AdrN = 29570, Séquence de 4 mots Entrée 0619, Fer, Adr0 = 29650, AdrN = 29666, Séquence de 4 mots Entrée 0619, Fer, Adr0 = 29710, AdrN = 29726, Séquence de 4 mots Entrée 0619, Fer, Adr0 = 1763180, AdrN = 1763196, Séquence de 4 mots Entrée 0619, Fer, Adr0 = 1776218, AdrN = 1776250, Séquence de 8 mots Entrée 0619, Fer, Adr0 = 1791174, AdrN = 1791206, Séquence de 8 mots Entrée 0619, Fer, Adr0 = 1805404, AdrN = 1805424, Séquence de 5 mots Fin du fichier--------- Entrée 0627, Cuir, Adr0 = 1025680, AdrN = 1025704, Séquence de 6 mots Entrée 0627, Cuir, Adr0 = 1776354, AdrN = 1776390, Séquence de 9 mots
Je pensais l'avoir mal fait la première fois mais même en prenant mon temps et en changeant à chaque fois d'exécutable ça ne fonctionne toujours pas. Voilà donc ce message ne fait pas avancer grand chose si ce n'est qu'il confirme que ces adresses ne sont apparemment pas bonnes.
#73
Posté 23 mai 2013 - 20:52
Que ce message est cruel ! Moi qui avait presque réussi à oublier cette sombre histoire d'offsets, voilà que tu me remets en mémoire cet échec cuisant. AAARRRRRRRGHH !
Bon, on est d'accord : cette histoire est totalement incompréhensible et assez désespérante. Un jour peut-être, si je n'ai plus rien d'autre à faire, je ré-attaquerai le sujet... mais j'en doute.
#74
Posté 25 octobre 2015 - 13:29
#75
Posté 17 février 2017 - 17:53
Citation
J'ai bien fait de ne pas écrire un truc définitif du style "je laisse tomber le sujet et n'y reviendrai plus jamais".
Près de quatre ans ont passé et, après avoir transféré les DFTools dans un logiciel de développement compatible des OS 64 bits, je réattaque le problème. Cette fois j'oublie cette histoire d'offsets et j'attaque l'ensemble Dosbox-Fall.exe à coups de debugger externe.
Je sais que plus personne ne lit plus ce qu'il se passe ici, mais je tiendrai quand même un mini journal pour vous mettre au courant de mes découvertes qui pourraient servir à d'autres plus tard. Dans l'immédiat je retourne me plonger dans des cours d'assembleur x86 (mon Dieu que c'est vieux !) pour essayer de comprendre ce que j'ai vu hier avec un logiciel libre qui s'appelle Cheat Engine 6.6.
A suivre...
Modifié par Daneel53, 17 février 2017 - 17:56.
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)