Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 19:05, 8 February 2022 by Algoflash (talk | contribs) (→‎Header)

Cette section est en cours de rédaction.

Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.

Modèle Gotcha Force

Les modèles Gotcha force fonctionnent comme ceux du jeu Smash Bros investigué par sa communauté.

Les modèles sont des fichiers HSD de la library Hal SysDolphin.

Header

Le header ce compose de la position du fichier HSD puis contient une location de suite de flags et la liste des armatures.

En 0x0 on retrouve l'offset 0x100 menant au fichier HSD.

En 0x4 on retrouve l'offset 0x20 menant à la liste des flags des armatures. Flags qui sont Inconnu à ce jour. Les flags sont en u8 pouvant aller de 00 à FF.

En 0x8 on retrouve l'offset 0xC0 menant à la liste des armatures.


Les fichiers _mdl se retrouvent dans les pzz des borgs (plxxxx.pzz) en position 004 à 009 ainsi que les fichiers pl*_mdl.arc. Il s'agit d'un format de fichier relatif au fonctionnement de la lib HSD utilisé dans plusieurs jeux par Capcom. L'usage d'un script est nécessaire pour référencer les fichiers éligibles au format _mdl dans l'ensemble de l'AFS data et dans les sous fichiers des pzz.

Pour commencer, il s'agit de synthétiser les investigations de la commu Super Mario Smash Melee et de les traduire. HSDRaw, un éditeur 3D dotnet de ce format est instable et ne permet pas d'éditer les fichiers (manque de doku sur les investigations passées).

Les offsets trouvés après le début du Data Block (DB) sont relatifs au début du DB. La table de relocs est un tableau d'offsets de 4 octets (relatif au DB) permettant de traduire en adressage absolu les offsets des structures lors du chargement mémoire. La table de reloc permet par exemple de délimiter les structures du fait qu'il est peu probable qu'un offset pointe au milieu d'une structure.


Le format dat/usd sur ssbm se découpe en plusieurs blocks :

  • Header - 0x20 octets - unsigned big endian
    • 4 octets - Taille totale du fichier
    • 4 octets - Taille du Data block
    • 4 octets - Nombre d'entrée dans la Table de relocs
    • 4 octets - root0_count
    • 4 octets - root1_count
    • 12 octets - Pad ? à voir de manière scripté si des valeurs apparaissent à ces offsets
  • Data block :
  • Relocation Table :
    • Tableau d'offsets de 4 octets - Offsets des structures dans le DB.
  • Root Nodes (2) :
    • Tableau de taille 8 * root0_count
      • 4 octets - root_offset - relatif au DB
      • 4 octets - string_table_offset - relatif à la StringTable
    • Tableau de taille 8 * root1_count
      • 4 octets - root_offset - relatif au DB (nombre de structures dans l'arborescence = root_count1)
      • 4 octets - string_table_offset - relatif à la StringTable
  • String Table :
    • Suite de strings terminées par Null au nombre de root0_count + root1_count


Catégorie:Format de fichier Catégorie:Gotcha Force