Aller au contenu


Photo de Nicolas

Nicolas

Inscrit(e) (le) 03 juillet 2004
Déconnecté Dernière activité aujourd'hui, 01h29
-----

#50956 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par Nicolas on 15 mars 2024 - 18h43

J'ai commencé à reverse le langage de script de MicroCabin et les CC utilisés dans le texte, de ce que j'ai constaté pour le moment, en plus de mon explication sur le poste precedent, je constate que ceux-ci serviraient à contrôler l'affichage des images avec les effets de transition ainsi que des appels à des sous fonctions.

Rien à partager pour le moment, je n'en suis qu'au début de l'analyse.




#50832 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par Nicolas on 12 mars 2024 - 01h52

Comme promis voici quelques informations.

Le jeu est constitué de deux disquettes de 1,2 Mo :

- La première est formatée en FAT-16 et contient les binaires du jeu.
- La seconde est un disque de données ; il n'est pas possible de lancer le jeu avec uniquement la première disquette.

En ce qui concerne la première disquette, voici un bref résumé de son contenu :

Un ensemble de fichiers propre à MEG-DOS (un système d'exploitation compatible MS-DOS développé et vendu par la société SPS pour le PC98), comprenant :

- IO98.SYS (équivalent à IO.SYS dans DOS 2.x)
- MEGDOS.SYS (équivalent à MSDOS.SYS dans DOS 2.x)
- CONFIG.SYS : Fichier de configuration pour MEG-DOS, 4 paramètres :
    - files : définit le nombre maximum de fichiers pouvant être ouverts simultanément
    - buffers : taille du tampon mémoire utilisé sur la disquette (numéro 2?) pour stocker les images et d'autres fichiers temporaires
    - device : permet de charger un pilote, ici MMD2.SYS qui est le pilote audio du jeu, avec une allocation mémoire de 4kb
    - shell : le programme chargé à la place de COMMAND.COM

D'autres fichiers sur la première disquette incluent :

- MMD2.SYS : Pilote propriétaire développé en interne par Microcabin, assurant l'interface avec les puces YM2203/2608x (Music Driver version 2.01 「あけみちゃん」(include 「チャーリーくん」) Copyright © 1987,1988 Microcabin co./Xtal soft co.) une entrevue concernant ce driver et son usage dans MSX : https://www.msx.org/...rview-日本語
- VOICE.BIN : FM
- M00000.BIN : BGM1
- M00001.BIN : BGM2
- M00002.BIN : BGM3
- M00003.BIN : BGM4
- M00004.BIN : BGM5
- M00005.BIN : BGM6

- TRB.EXE : Le fichier exécutable principal du jeu, responsable, entre autres, du chargement des fichiers TBL et TBY (comme observé dans le dump ASM)
- PIYO.EXE : Le moteur de scripting du jeu
- PAT.COM : Il s'agit probablement d'un patch destiné à apporter des modifications ou des améliorations, l'analyse du code ASM n'a pas donné grand-chose, c'est un fichier COM donc pénible à reverse.

- S00000.TBL : Tables des pointeurs pour le jeu, contient également le texte du menu d'action présent à droite de l'écran principal.
- S00000.TBY : Renferme l'ensemble du texte du jeu, formaté avec le langage de script Piyo (qu'il faudra lui aussi reverse, au moins partiellement).

En ce qui concerne la deuxième disquette, je présume qu'elle contient les images et sert également à stocker des données temporaires pendant l'exécution du jeu.

Il faut savoir qu'à l'époque il était courant pour un dev de créer son propre format propriétaire pour un peu tout et n'importe quoi. C'est notamment le cas du format des données utilisé sur la seconde disquette, pour la musique (le MIDI n'était pas encore démocratisé) et ultimement des images (je ne pense pas que nous ayons besoin de changer le contenu des graphiques, du moins au début).

Dans l'immédiat le focus se portera donc sur les fichiers S00000.TBL et S00000.TBY.

S00000.TBL contient 2 tables, une pour le texte présent dans menu et une seconde pour le texte qui est affiché globalement dans le jeu.

La première table débute à 0x1C2, les adresses sont à lire en little-endian, par exemple 5C02 pointe sur l'adresse 0x25C, le texte de menu se trouve juste en dessous.

Comme une image vaut mille mots, voici à quoi cela ressemble (1ier pointeur en jaune, second en bleu, troisième en orange, séparateur en violet) :

05ew.png

La seconde table débute à 0x4BE, la lecture se fait de la même manière que pour les pointeurs du menu d'action, mais les adresses elles concernent le fichier S00000.TBY.

Dans le cas du texte (et contrairement au menu), l'extraction du contenu propre à chaque pointeur retourne systématiquement le texte avec le formatage propriétaire du moteur Piyo, ex abrégé :
[/],!48,34,!,?48,{<0F><00>[#,"2,"55,/216],?34,{<11><00>[#,"32,"107,/232]],?75,{・00>[>@120,@145,{・00>["141,=144]一 弥 「とうとう見つけたぞ! 一弥!!」
La meilleure approche selon moi serait de recréer un fichier TBL avec des pointeurs à jour et un fichier TBY avec la traduction + le contenu binaire non modifié.

L'un des enjeux que j'anticipe c'est que du fait qu'ils ont eu la belle idée de concaténer dans le fichier TBL deux tables, traduire les menus en français pourrait décaler l'emplacement d'origine de la seconde table et provoquer un crash complet du programme.

Quant à la manière dont le jeu effectue le mapping sur les entrées du fichier TBL, cela reste une interrogation : est-ce séquentiel, calculé, ou statiquement défini quelque part dans le binaire ? (Auquel cas il faudra soit trouver une façon de ne pas trop allonger le texte du menu, il y a quelques leading zeros mais pas de quoi ajouter grand-chose OU aller modifier le code assembleur pour le faire pointer sur la nouvelle adresse).

@FrozenOwl, la logique des pointeurs et du language de script est identique dans le jeu MSX, mais tu comprendras que travailler sur le système de fichier de l'image de la disquette directement pose problème tant pour le calcul des adresses que pour faire de l'espace afin de déplacer les choses (cela doit être faisable mais je ne connais pas bien cette machine.)

Dans un prochain message, je vous fournirai le code que j'ai développé pour extraire le contenu de la seconde table (code qui pourra être adapté pour la première table), ainsi que les outils nécessaires pour manipuler les fichiers et tester les modifications.


#50787 Traduction du jeu MSX de KOR : Natsu no Mirage

Posté par Nicolas on 10 mars 2024 - 18h20

Non, mais ne t'en fais pas : si tu me dis que la version PC-88 est meilleure, je te fais confiance. Tu peux me déjà passer ce que tu as sur cette machine (en MP si tu préfères), et je me débrouille avec!

J'ai examiné de plus près la version MSX et cela semble être un port bête et méchant entre PC88 <-> MSX (la version P98 est elle même un port de la version PC88).

Apporter des modifications directes au texte dans l'image DSK pose des défis car les adresses des pointeurs ne correspondent pas en raison de la concaténation des structures de fichiers. Après tu me diras que c'est un bête calcul d'offset... mais quand bien même, changer les pointeurs pour avoir du texte plus long va impliquer un expand du disque, ce qui n'est probablement pas faisable facilement.

En ce qui concerne la version PC98, c'est relativement plus simple car il est possible d'extraire les fichiers du contenu de l'image et de travailler sur ceux-ci car le système de fichier est en FAT16 (du moins pour le premier disque ; le second c'est une autre histoire).

Dans les deux versions, le moteur de jeu est identique et le texte est systématiquement intégré dans un langage de script propriétaire qui régit divers aspects du jeu, tels que la vitesse d'affichage du texte, la musique de fond, et divers effets graphiques (double-width, couleur, clear, flash, new line et j'en passe), donc en plus de jouer avec les pointeurs, il faudrait idéalement reverse certains CC afin d'adapter le rendu au français (qui ne s'affiche pas aussi vite que le japonais).

En anglais le jeu se traduit plus facilement qu'en français, mais même en jouant avec les pointeurs, le menu de droite à une largeur fixe qui limite les choses, je ne sais pas si le code gere le retour à la ligne à cet endroit ?!.

Je reviens prochainement avec tous les détails techniques pour faire avancer la cause, je n'ai pas le temps en ce moment de coder de quoi, mais je peux donner un coup de main à côté.

j2i6.png


 




#46225 Podcast sur KOR en français.

Posté par Nicolas on 07 mai 2023 - 20h21

Pour changer j'arrive après la guerre, j'écoute présentement le hors série sur le pilote, content d'entendre à nouveau Fred, Olivier & Cie :baloon:  Kody tu as vraiment fait une belle job, ça va me prendre un petit moment pour tout écouter :-)




#41067 KOR - Music Hall

Posté par Nicolas on 24 octobre 2020 - 19h22

Bonsoir à tous,

 

Petite nouveauté publiée ce soir. Merci à Rainfroid qui a offert une page supplémentaire dans l'espace de sa réflexion n°37 consacrée aux quelques places et lieux réels dans KOR. Cela fait deux ans que cette réflexion n'avait pas été mise à jour. Voici donc un lieu supplémentaire tiré du manga de KOR. Merci à Rainfroid pour ce coup d’œil qu'il a eu et qu'il nous fait partager.

 

Page directe -> CLIC

 

C'est amusant de voir que sur la version couleur du manga, ils ont fait l'effort de reprendre (pratiquement) les couleurs pour chacune des lettres :

kor115.png




#40997 KOR sur YouTube ou équivalent

Posté par Nicolas on 17 octobre 2020 - 20h49

 




#39280 KOR sur YouTube ou équivalent

Posté par Nicolas on 12 février 2019 - 03h34



Du groupe Lotos qui est tribute band de 中原めいこ




#36440 KOR sur YouTube ou équivalent

Posté par Nicolas on 04 janvier 2017 - 03h14




#34611 Kor sur spotify

Posté par Nicolas on 01 mars 2016 - 03h13

Salut les gens !

 

Ca fait longtemps que je suis pas passé par ici ! Aviez-vous remarqué cette compilation en espagnol sur spotify ? 

 

https://open.spotify...Jk4UOceCnof0lPR

 

Je m'attendais pas vraiment à trouver quoi que ce soit en rapport avec KOR sur spotify, comme quoi !




  • Loading Countdowns