Open CamilleTamm opened 5 years ago
Bonjour!
Je ne me souviens pas bien de la structure (faudrait que je remette la main sur mes notes).
Cette section du BNK (Tree Section) est un peu complexe, à la base, tu vas trouver le chemin complet des fichiers dans l'arborescence des PC des développeurs (!). Je n'en garde qu'une partie lors de l'extraction.
L'ordre des fichiers et des dossiers est le suivant : du moins profond au plus profond, c'est récursif. C.a.d que tu vas trouver d'abord le nom d'un répertoire, puis tu auras tous les fichiers qui le composent, ainsi que d'autres répertoires.
La value numérique avant chaque folder est de 2x8 bits.
Voici le code de lecture de ces valeurs: https://github.com/djey47/tdumt2/blob/1fdcdd23c1ad182ef2bff1cf4b082de14a266da3/tdumodlib_2.0/ModdingLib/fileformats/banks/Bnk.cs#L691
C'est une des parties les mieux décodées du format BNK, il reste encore des zones d'ombre dans le fichier. Ce qui a pour conséquence que certains BNK ne peuvent pas être réécrits par l'outil sous peine de faire planter le jeu.
Bon courage!
merci beaucoup ! marche nickel ! par contre mapping section c'est inutile non ?
et le crc32 j'ai test de le bousiller ça fait pas crash (crc32 du header bnk et du header de chaque section)
ok :)
La mapping section est pas vitale pour le jeu à priori, certains BNK en ont une, d'autres pas.
Pour éviter tout souci, elle est remise (je ne sais pas si elle est mise à jour en cas de nouveaux fichiers). A tester si on peut la dégager pour se simplifier la tâche.
L'importance du CRC32 vient de TDU1, le jeu plantait si on ne le mettait pas à jour. Comme la gestion BNK de TDU2 est héritée, et que cet lib était censée les 2 jeux, je n'y ai pas touché.
Si tu souhaites rendre la lib propre à TDU2 et optimisée, c'est une bonne occasion de le faire 👍 TDU1 dispose de ses propres outils, la rétro compatibilité n'est plus nécessaire.
Pour la petite histoire, mon objectif était de re-coder les fonctions de base TDU1 en Javascript et les faire tourner sous Node. Mais je ne pense pas être en mesure de le faire pour cause de priorités de vie :-)
ah daccord merci pour ces précisions :)
Enfait le mapping est important ca fait crash le jeu même quand les offset sont remis en place et tout ... :\ Je continue d'explorer des pistes
Au début je pensais que cetait dut à l alignement des sections qui n'était pas en modulo 16 mais non rien à voir...
Bonjour Djey, est il possible d'obtenir la structure des fichiers bnk de tdu 2 ?
Je ne comprends pas comment lire le header ou sont ecris les noms des fichiers/dossiers a la suite. Notament l'ordre des fichiers, et les values avant chaque folder (sur 1 ou 2 bits...)
Merci bien !