Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 09/06/2024 in all areas

  1. 4 points
    Grâce à Taude, la retraduction prend de nouvelles couleurs tout en image... jeu d'origine modification
  2. 3 points
    Jours 18 à 25 : restauration des sprites japonais pour la version française de SoulBlazer, première démo de Dragon Quest 5 Ces derniers jours ont été consacrés à la restauration des sprites de la version japonaise de SoulBlazer pour la version française. En effet, à la fin du jeu, le personnage de Lisa a été redessiné : ses bras en position de prière ont été supprimés, et sa bouche ainsi que ses yeux ont été redessinés. J'ai donc commencé à fouiller la ROM et à déboguer afin de trouver où se situaient les données et les instructions impliquées. J'ai finalement localisé les sprites, mais ceux-ci étaient compressés. En examinant l'OAM (Object Attribute Memory), je me suis aussi rendu compte que les zones correspondant à la bouche n'étaient pas délimitées de la même manière que dans la version japonaise. En effectuant quelques recherches sur Internet, j'ai découvert un outil très utile : SNES Tiles Kitten, qui permet d'afficher, décompresser et réinjecter directement des sprites. Cerise sur le gâteau, cet outil gère la compression propre aux jeux Quintet ! J'ai donc rapidement pu reconstituer les sprites nécessaires en migrant les parties du sprite japonais (yeux et bouche) pour correspondre à l'arrangement des sprites français. Une agréable surprise : les mains étaient bien présentes dans les sprites de la version française. Lors de mes recherches précédentes, j'avais identifié la routine qui gérait le chargement des sprites dans l'OAM, mais sans savoir exactement quel sprite était concerné. Cependant, j'avais découvert que cette partie du code déterminait la position des sprites dans le fond d'écran. J'ai donc repris mes essais dans cette zone, espérant réinjecter les bras supprimés. J'étais quelque peu découragé, car ces bras étaient composés de 10 tuiles, et je me disais que réécrire une routine de chargement et d'animation des bras dépassait mes compétences. En poursuivant mes tests, j'ai compris qu'une adresse, dans la routine qui gère la position des tuiles, menait à une sous-routine, et que celle-ci lisait une zone de mémoire spécifique. En expérimentant sur cette zone, j'ai découvert qu'elle correspondait à un identifiant qui permettait de charger l'ensemble des sprites d'un élément (bouche, yeux). En modifiant cet identifiant, j'ai pu réinjecter les bras en entier et identifier l'ID "7" qui correspondait aux bras ! J'étais soulagé de ne pas avoir à réécrire tout le code de chargement des tuiles. Cependant, un problème demeurait : l'instruction qui charge les yeux et celle qui charge la bouche se suivaient, ainsi que toutes les autres instructions qui gèrent cette scène. Je me demandais donc comment insérer l'instruction pour positionner les bras. En analysant le code, j'ai découvert une routine existante avec l'indice "7", et encore mieux, grâce au débogueur, j'ai constaté que cette zone de code n'était pas utilisée. En redirigeant l'instruction des yeux vers cette sous-routine, cela a permis d'afficher les bras, mais l'animation bloquait la scène. Après de nouveaux essais, j'ai découvert qu'un octet permettait de définir le moment de déclenchement de l'animation, et j'ai réalisé que l'animation était complète ! Quelle chance ! Il me restait cependant un problème à résoudre : rajouter les tuiles sans remplacer celles des yeux. J'ai donc recréé l'instruction d'ajout des bras et l'ai insérée à la fin de celles qui chargent les yeux et la bouche, ce qui ajoutait 11 octets. Cela a décalé le reste du code vers une instruction d'animation inutilisée, longue d'une vingtaine d'octets. J'ai alors déplacé cette instruction dans une zone vide et mis à jour l'adresse dans l'instruction de chargement des bras. J'ai ensuite modifié toutes les adresses des instructions suivantes en y ajoutant ces 11 octets, et tout a fonctionné ! ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Pour Dragon Quest, je me suis confronté à l'immense tâche de traduire le jeu. Au-delà de l'aspect technique, le script contient plus de 85 000 mots ! J'ai donc accepté l'idée d'avoir besoin d'aide et j'ai modifié l'outil que j'avais créé pour exporter tout le script du jeu, ainsi que pour réinjecter les parties traduites. Il gère désormais les conflits de traduction avec un système de verrouillage des parties validées. J'ai également ajouté des fonctionnalités tel que la recherche et le remplacement. Une fois cet outil en place, mon frère est venu me donner un coup de main, et nous avons pu avancer sur la traduction des dialogues du jeu, que je vous propose aujourd'hui en démo. À ce jour, environ 15 % des dialogues sont traduits. Vous trouverez ici un patch IPS à appliquer sur une version sans header, ainsi que les scripts du jeu. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Pour la suite, je prévois d'aider à la traduction des scènes entre les niveaux de Go Go Ackman 3, mais ce sera pour un prochain épisode ! Dq5-eng-sh.ips raw_text-v3.txt trad_text-v3.txt
  3. 3 points
    Voici mon tout premier tutoriel pour vous présenter mon processus de création de crystal cases. Le prix de ces boîtes est de 12 centimes l'unité, correspondant au coût des feuilles de plastification, et elles vous permettront d'obtenir des boîtes de protection pour toutes les tailles de cartouches (n'est-ce pas Micromachines sur Megadrive ?). J'espère que cela vous plaira ! Je publierai d'autres tutoriels dans ce style, par exemple pour adapter ce processus à la création de mini-boîtes plastifiées à l'image des jeux. Le résultat: Le tuto:
  4. 2 points
    Beau boulot ! Quelle rom doit-on patcher ? (quel est son CRC ?) Je ne parviens pas à télécharger les scripts, j'aurais bien aimé y jeter un œil (Ichigo, j'ai un échec de connexion sécurisé). Si seulement j'avais le temps :'( La série des dragon quest est une série que j'affectionne particulièrement et cet opus était génial).
  5. 2 points
    Comme dit plus haut, voici un exemple de toutes les possibilités d’une imprimante cut. Attention modèle unique:
  6. 2 points
    je fait aussi les stickers avec de la lamination + papier mat à pas chère je reviendrais sur ce sujet en ce qui concerne les crystal cases voici le tuto manuel et petite précision si vous n'avais pas de lamineuse il y en a en accès libre chez bureau vallée : et les modèles: Contour-SNES.fcm Contour-NES-02.svg Contour-SMS-A.fcm Contour-SMS-A.svg Contour-NES.fcm Contour-N64.svg Contour-N64.fcm Contour-GENESIS-Norm.svg Contour-GENESIS-Norm.fcm Contour-GENESIS-EA.svg Contour-GENESIS-EA.fcm Coutour-SNES.svg Plis-GENESIS-EA.fcm Plis-GENESIS-EA.svg Plis-GENESIS-Norm.fcm Plis-GENESIS-Norm.SVG Plis-N64.fcm Plis-N64.svg Plis-NES.fcm Plis-NES.svg Plis-SMS.fcm Plis-SMS.svg Plis-SNES.fcm Plis-SNES.svg
  7. 2 points
    Imagine un instant : un RPG en 3D à la première personne sur une console 8 bits. Oui, tu as bien lu. Dès que j'ai découvert ce jeu, j'ai été bluffé. Elite sur NES, c’est le genre de titre qui te fait te demander comment un tel exploit est possible sur une console aussi limitée. Pourtant, il est là, avec un univers gigantesque, des combats spatiaux, du commerce, et une liberté totale d’exploration. L’adaptation NES de Elite, exclusivement sortie sur les consoles PAL avec des textes en français, propose une expérience unique. Dans ce jeu, tu commences aux commandes d’un simple vaisseau spatial et tu peux choisir ta voie : commercer de planète en planète pour gagner des crédits, traquer des pirates pour devenir un chasseur de primes redouté, ou même basculer du côté obscur et te lancer dans la piraterie spatiale. Chaque système solaire a ses particularités, avec des marchandises qui fluctuent en fonction de l'offre et la demande. L'univers est généré de manière procédurale, ce qui te donne l’impression que l’exploration est infinie. Le gameplay est étonnamment varié pour un jeu NES. Tu dois gérer les ressources de ton vaisseau, t’assurer que tu as suffisamment de carburant pour tes voyages, et être prêt à te défendre contre des ennemis à tout moment. Les combats se déroulent en 3D fil de fer, avec une vraie sensation d’immersion, ce qui est impressionnant pour l'époque. Chaque victoire en combat spatial te donne l’occasion d’améliorer ton vaisseau avec des armes plus puissantes, des boucliers renforcés, ou même des propulseurs plus rapides. La jouabilité est incroyablement fluide, surtout pour un jeu de cette envergure avec seulement deux boutons. Le bouton B permet de naviguer facilement dans les menus constamment affichés à l'écran, mais aussi de gérer la vitesse du vaisseau en accélérant ou en décélérant. Le bouton A, quant à lui, est utilisé pour tirer. Ce qui impressionne vraiment, c'est à quel point les déplacements du vaisseau sont précis et contrôlables, offrant une véritable sensation de maîtrise dans l’espace, malgré la simplicité des commandes. Un autre aspect qui rend cette version unique, c’est la possibilité de jouer à deux. Le mode deux joueurs te permet de partager l’aventure avec un ami qui sera ton copilote! Je ai découvert récemment cet adaptation, et ce jeu m’a vraiment fait réfléchir. Elite sur NES, à lui seul, représente tout ce qu’est la programmation à mes yeux : la capacité de créer un univers entier, de repousser les limites du possible, et tout ça dans une simple petite cartouche. C’est fascinant de voir comment, avec si peu de moyens, les développeurs ont réussi à faire entrer quelque chose d’aussi vaste et complexe sur une console aussi modeste que la NES. Ce jeu est la preuve que, même avec des ressources limitées, la créativité et la maîtrise technique peuvent donner vie à des mondes incroyables. J'ai récemment acquis ce jeu pour 30 euros, et à ce prix-là, je trouve que c'est donné !
  8. 2 points
    J'ai regardé finalement pour voir par curiosité les différences avec le japonais et ... surprise, les traductions sont déjà très bonnes et fidèles. La version de retraduction américaine a beaucoup changé le nom des équipements. Mais avec mon traducteur en ligne et son IA embarquée japonais - français, j'obtiens les mêmes noms que les noms français officiels. Ce qui aurait besoin d'être changé ne gênera personne, alors je fais les modifications ! 217. Flèche Lumi. { renommage magie } 218. Flèche Lumi Tirs flèches lumière { renommage magie } 219. Bombe Étincelle. { renommage magie } 220. Bmbe Étincelle { renommage magie }
  9. 2 points
    Jour 15 : Exploitation de la table de pointeurs / Création du logiciel de traduction Bonjour à tous, Aujourd'hui, j'ai finalisé l'ajout de tous les caractères manquants (é, è, à, ù, â, û, ô, ê, ç) dans l'ensemble de la chaîne de texte et testé cette mise à jour sur la première séquence du jeu. Ensuite, je me suis lancé dans l'exploitation de la table des pointeurs que j'avais repérée hier. Cette table organise les pointeurs de la manière suivante : il s'agit de groupes de 6 octets où les 21 bits de gauche décrivent l'adresse du dialogue, et les 3 bits de droite indiquent l'offset (en nombre de bits) à partir duquel le dialogue commence dans la chaîne compressée selon la méthode de Huffman. J'ai donc développé un programme en Python qui intègre ces fonctionnalités pour naviguer dans la table des pointeurs et afficher les dialogues en les décompressant. L'idée est que nous puissions ouvrir la ROM patchée en anglais ; si le checksum correspond à la ROM adéquate, l'interface se charge. Cette interface permet alors de naviguer de dialogue en dialogue. L'objectif final est de pouvoir modifier les conversations et mettre à jour les pointeurs dans la table en conséquence. Pour cela, j'ai créé des fonctions pour la conversion des adresses ROM (lorom/cpu) et pour générer un patch IPS. De plus, j'ai ajouté une fonctionnalité intéressante : la possibilité de traduire automatiquement les dialogues en cours grâce à ChatGPT. J'ai mis en place un prompt qui assure que les éléments nécessaires pour le scripting des dialogues sont préservés au mieux. J'ai également ajouté un bouton permettant de traduire l'intégralité des textes et mis en place un petit système de base de données pour sauvegarder ces traductions et les modifications manuelles. Cela me permet de générer la traduction en attendant d'intégrer le système de modification des pointeurs pour créer le patch IPS. Les prochaines étapes consisteront donc à développer cette logique pour tester une première version du jeu avec des dialogues intégralement traduits. À suivre !
  10. 1 point
    Roooohhhh... tu vas pas nous faire croire que quand on est instit, on bosse le weekend et le soir et pendant les petites vacances...
  11. 1 point
    J'ai eu un bug sous zsnes (bon je sais que ce n'est pas le meilleur émulateur, mais tout de même). Quelques passages me chagrinent dans la traduction, mais je pense que tu y remédieras plus tard. Il va falloir gérer les noms des héros selon leurs longueur, sinon ce genre de chose sera courante. Une solution de "facilité" serait de prendre à défaut 8 largeur de caractères pour les noms, mais ce ne sera pas "esthétique". Bon , je retourne bosser un peu... pour changer
  12. 1 point
    Merci beaucoup, je vais tâcher de me dégager du temps ce dimanche pour tester (j'ai regardé un peu le script, c'est pas super clair avec les [end_bloc 900A] Je pense que cela gagnerait en compréhension avec un code du type [objet 900A]. Après j'ai traduit quelques jeux par le passé, j'ai juste du mal avec les traductions "automatiques"... (Certaines tournures sont trop littérales à mon goût) Il me semble que Generation IX avait fait un patch avec le google traduction de l'époque (c'était avant 2010) pour FF6 sur snes... Bah c'était de la merde :D Effectivement pour la rom, c'est un peu le bordel à trouver... Il faudra penser à faire le patch avec la rom no-intro japonaise je pense (et créditer les auteurs de la version anglaise quand tu diffuseras, enfin si tu le fait).
  13. 1 point
    Beau boulot en tous cas !
  14. 1 point
    Bonjour MonsieurL et merci pour ton intérêt ça me motive vraiment! Je serais très heureux de pouvoir te permettre de procéder ce merveilleux jeux dans ta collection! j'ai tout reposter sur wetransfert même la rom: https://we.tl/t-FbNUO5O4pn le md5 que je calcul et que j'utilise dans mon éditeur d'ailleurs c'est: e191589ab9f6d9b89411815202885b3f c'est pas évident pour la rom: c'est la rom japonaise patché en anglais et sans header
  15. 1 point
    Bonjour à toutes et tous ! Jamais 2 sans 3 et avec le romhacking effectué et terminé par moi en plus des images cette fois ! J'ai la joie de proposer une nouvelle version revisitée suivant cet historique : Terranigma (mars 2022) Illusion of Time (juin 2024) Soul Blazer (septembre 2024) Je suis reparti du japonais en utilisant un traducteur de qualité suffisante pour apprécier toutes les différences subtiles avec la version française. texte source japonais : https://wikiwiki.jp/text/%E3%82%BD%E3%82%A6%E3%83%AB%E3%83%96%E3%83%AC%E3%82%A4%E3%83%80%E3%83%BC outil de traduction : https://translate.hix.ai/fr Notes : le début comme la dernière partie du jeu nécessitaient une retraduction complète, représentant 2/3 des changements apportés je reprends mon code couleur d'Illusion of Time avec une mise en valeur des éléments les plus importants pour ceux qui ne souhaitent pas tout lire ceci met à jour le travail déjà commencé par moi sur les fautes de frappes de la version française : https://traf.romhack.org/?p=patchs&pid=1181
  16. 1 point
    Je fais un petit tour de nettoyage des templates et je vous partage tout ce que j'ai ! J'en ai pour la SNES, NES, N64, Master System et différents formats de Mega Drive.
  17. 1 point
    Salut! J'ai 49 ans. Je suis passé par quasiment toutes les consoles canoniques depuis l'Atari 2600, donc très console-centric (a part brièvement un MO5 et un Amiga 1200). Mon intérêt pour le retrogaming en particulier n'est pas si vieux. Ca fait une grosse dizaine d'années et c'est venu par une soudaine envie de programmer (sur VCS). Pendant pas mal d'année je me suis focus sur la NES (qui fait partie des rares consoles que j'ai pas eu à l'époque avec la SNES). Ca passait par un peu de programmation, des scripts pour afficher les hitbox des jeux (j'adore ca), quelques dizaines de petits hacks resté confidentiel et beaucoup de temps à jouer et décortiquer les jeux NES pour ma culture et rattraper mon retard sur ce catalogue historique que je connaissais pas vraiment (j'aime beaucoup l'histoire du jeu vidéo). Et pour me motiver à prendre le temps de décortiquer à fond les jeux (et éviter le syndrome fastfood) je faisais uniquement des one life. J'ai one lifé 125 jeux NES différent sur plusieurs années puis je me suis lassé. Aujourd'hui je connais très bien le catalogue NES, bien mieux que si je l'avais connu à l'époque, mais j'ai fait un peu le tour. Heureusement Mesen est devenu multiplateforme récemment ce qui m'a donné envie d'aller creuser d'autres machines car le plus important ce sont les outils ^^. En début d'année j'ai donc fait un petit hack sur Ghouls'n Goblins SupergrafX (augmenter la quantité de sprite affichable et la résolution/largeur de l'image), puis un petit hack sur Nightmare Buster SNES pour fixer 2 bug qui faisait crasher le jeu. Ce qui m'a amené à enchaîner sur un gros hack de Ranma Chougi Ranbu Hen sur lequel je suis actuellement et qui corrige le framerate catastrophique du jeu ainsi que divers bug de collision. Je ne pratique pas du tout la collection. Je n'ai presque pas de machine ni de jeu physique. J'ai par contre une certaine fascination pour les émulateurs. Je connais bien le hardware (du point de vue logique, pas électronique) de la plupart des autres machines aussi (j'ai même testé la programmation sur Colecovision, sur SMS et même sur EDSAC, un ordi de 1949). Ça m'intéresse. De ce fait, j'ai une chaine youtube sur laquelle je faisais des vidéos pour discuter de certains sujets techniques mais j'ai vite arrêté (elle est presque morte depuis 6 ans mais elle me sert tout de même pour les vidéos de mes projets) pour écrire plutôt des billets sur mon blog ainsi que sur mon compte twitter (tout ca prend beaucoup de mon temps) que j'utilise comme un blog mais pour des sujets bref et plus anecdotiques. C'est là que je suis le plus actif. C'est là qu'on peut me joindre le plus facilement. Ce sont Yolt et UniKenny qui m'ont envoyé ici ^^. Je me dis que ca peut être intéressant de voir comment bosse les gens qui font du mod a partir de hack. Je connais très peu ce milieu étant donnée que je consomme très peu de "physique". C'est aussi pour tenir au courant sur mes hack. Notamment je continu encore un peu le hack Ranma pour préparer une version 1.4. C'est pas indispensable, c'est juste pour corriger d'autres bug de collision du jeu original pour que le jeu soit encore plus propre. Et je prépare un google doc qui répertoriera toutes les corrections de collision que j'ai fait car au final ce n'est plus seulement un hack de framerate mais aussi une grosse correction des collisions (c'est 2 patch en un). Mon blog: https://upsilandre.over-blog.com/ Mon compte Twitter: https://x.com/upsilandre Version blog: https://x.com/UpsilandreA Ma chaine Youtube: https://www.youtube.com/@upsilandre/videos
  18. 1 point
    Merci M.Toto ! Quel plaisir de voir ce super travail de retraduction que mérite amplement SOULBLAZER ! Je ne sais pas si vous connaissez cette page : https://www.terraearth.com/forums/viewtopic.php?t=2368 "Shiva Indis" dit certaines choses intéressantes par rapport à la version Japonaise. Avez-vous aussi l'intention de retraduire les articles, équipements, etc... Je vais regarder pour vos graphismes, je pense que se soit la même compression que Illusion of Time. Merci beaucoup de rendre justice à ce jeu qui a été maltraité avec sa version officiel Française.
  19. 1 point
    Je n'ai pas le savoir faire pour t'aider :/ Ceci dit taude sur le forum a l'air de toucher sa bille... Au passage, tu as vu que la retraduction datait de 2020 ? https://www.terraearth.com/forums/viewtopic.php?p=60612&highlight=#60612 Celle listée sur romhacking date de 2018 il me semble. Bon courage pour ton projet ! (Ingo l'a traduit en français il y a quelques années, il est sur la T.R.A.F)
  20. 1 point
    C'est fini ! Avant de publier le patch officiel, j'aimerais bien changer le graphisme de Lisa à la fin... — version française officielle (image 185) — — version retraduite présentée dans ce sujet — Le graphisme japonais serait plus adapté à cette version retraduite... États-Unis et Europe Japon — graphismes de Lisa en fin de jeu — Double censure des aspects de prière/méditation et de look manga (hérité de la décision américaine de l'époque) J'ai regardé si je pouvais intégrer les graphismes japonais de Lisa, mais je n'ai pas le savoir-faire car les images sont compressées. Ce que je peux dire avec certitude, c'est que la plage graphique concernée pour les yeux et la bouche est : CB2DC ~ CBCAE pour la version américaine A32DC ~ A3CAE pour la version française CAA3A ~ ? pour la version japonaise On a les détails sur les différentes zones de données pour la ROM américaine ici : https://datacrystal.tcrf.net/wiki/Soul_Blazer/ROM_map Si certains parmi vous peuvent m'aider à intégrer le graphisme japonais de Lisa, ce sera super ! Je vais attendre un peu d'avoir vos retours et votre aide éventuelle avant de fournir le patch
  21. 1 point
    Yep, j'ai modifié 2/3 trucs, Upsilandre doit pouvoir accéder à la partie patch maintenant.
  22. 1 point
    Merci de ton intérêt arcoroce! j'espère que cette traduction aussi trouvera son publique! Jour 14 : Injection des nouvelles lettres Aujourd'hui, j'ai fait un grand pas en avant ! J'ai réussi à intégrer les nouvelles lettres de bout en bout. J'ai commencé à essayer de comprendre comment étaient définis la hauteur, la largeur et la ligne de flottaison des caractères. Pour cela, j'ai tenté de repérer quelle valeur était mise en WRAM et correspondait, et j'ai fini par trouver deux valeurs situées à peu près là où le texte est décompressé, qui variaient de manière logique entre les caractères en majuscules et en minuscules. En retraçant leur initialisation dans le débogueur, je me suis aperçu qu'elles provenaient de la liste des valeurs permettant de retrouver les pointeurs vers les sprites des lettres. En expérimentant avec l'algorithme rétro-ingénieré et en essayant de comprendre comment étaient faites les informations dans la liste, j'ai fini par comprendre la "compression" des sprites et l'utilité des valeurs dans la liste : en fait, la liste se présente sous la forme de 10 octets, les trois premiers servent à associer l'élément de la liste à la valeur de la lettre décompressée, le suivant à la largeur de la lettre, les quatre suivants à déterminer l'adresse, puis les deux derniers permettent entre autres de calculer la hauteur du sprite. En expérimentant, je me suis aperçu que la hauteur sert aussi à définir la ligne de flottaison ! J'ai également compris que les sprites n'étaient pas vraiment compressés. En fait, ils sont codés avec des largeurs variables, ce qui rend leur visualisation impossible avec Tile Molester. J'ai donc pu créer les sprites des lettres accentuées, il me restait à permettre de compresser de telles lettres. J'ai donc cherché des places disponibles dans l'arbre binaire pour associer les nouvelles valeurs des lettres décompressées dans la table des valeurs de la ROM. Pour cela, toujours dans l'optique où j'ai la flemme de parcourir l'arbre binaire dans le sens inverse (j'en avais des vertiges rien que de penser à coder cet algorithme), j'ai brut forcé l'arbre d'Huffman en testant toutes les valeurs binaires de 0 à FFFF (en testant aussi toutes les combinaisons de nombre de zéros en début) et en regardant s'il y avait une valeur lorsque j'atteignais la table des valeurs, si non je récupérais la représentation binaire du chemin. J'ai trié ces chemins et gardé les plus courts pour encoder mes nouvelles lettres. J'ai ensuite modifié mon logiciel de compression/décompression pour prendre en compte ces nouvelles lettres et le tour était joué. J'ai également commencé à créer un patch IPS car, mine de rien, les modifications commencent à être suffisamment importantes pour être contraignantes à entrer à la main dans l'émulateur. J'ai également fait un tour dans la ROM pour essayer de comprendre comment les dialogues étaient pointés, et j'ai trouvé ce qui semble être une jolie table de pointeurs ! Mais cela sera pour le prochain épisode.
  23. 1 point
    J12 : Décompression des sprites des textes J'ai décidé de décompresser les sprites des textes pour ajouter un outil d'affichage de ces sprites dans mon logiciel de traduction. L'objectif initial est de pouvoir afficher l'intégralité des sprites disponibles afin de vérifier s'il y en a des non utilisés ou déjà présents dont j'aurais besoin, comme les accents. À terme, cela devrait me permettre, en implémentant la logique inverse, d'ajouter de nouveaux sprites. J'ai essayé de comprendre l'algorithme de compression. De ce que je comprends, la valeur du caractère décompressé sert à naviguer dans une liste de valeurs qui permet d'accéder ligne par ligne au sprite, sachant que certaines lettres partagent les mêmes lignes. Comprendre l'intégralité de cet algorithme me semble être une tâche trop complexe pour mon petit cerveau, donc j'ai décidé de me concentrer sur sa réimplémention en Python. La tâche est compliquée car elle me demande de réimplémenter des logiques d'opérateurs ASM comme ROR en prenant en compte la retenue (carry). Mais en cette fin de journée, j'ai réussi à retrouver la première ligne d'un sprite de lettre à partir de sa valeur décompressée. Etape suivante: réussir a décompresser toutes les lignes des lettres qui d'ailleurs peuvent avoir une hauteur variable.
  24. 1 point
    Salut Upsilandre et bienvenu à toi ! Merci pour ton temps consacré à décortiquer (et corriger) tous ces jeux.
×
×
  • Create New...