No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
<br> | <br> | ||
<div style="overflow-x:auto;"> | <div style="overflow-x:auto;"> | ||
{| style="padding:0px; margin:0px; width:100%; background-color: transparent; white-space:nowrap;" cellspacing="3" | {| style="padding:0px; margin:0px; width:100%; background-color: transparent; white-space:nowrap;" cellspacing="3" | ||
| colspan="2" | | | colspan="2" | | ||
Line 10: | Line 11: | ||
| style="width:18%; text-align:center; white-space:nowrap;" | | | style="width:18%; text-align:center; white-space:nowrap;" | | ||
<div style="font-size:195%; color: red;">Cette section a besoin de beaucoup de recherche.</div> | <div style="font-size:195%; color: red;">Cette section a besoin de beaucoup de recherche.</div> | ||
<div style="font-size: 125%; color: red;">Des recherches sur l'algorithme et comment interagit le fichier sont nécessaire. </div> | <div style="font-size: 125%; color: red;">Des recherches sur l'algorithme et comment interagit le fichier sont nécessaire.</div> | ||
|} | |} | ||
|} | |} | ||
</div> | </div> | ||
ARC semble être le diminutif d'archive. | <br>ARC semble être le diminutif d'archive. | ||
__toc__ | __toc__ | ||
Line 32: | Line 32: | ||
<span class="pl-s">Le header de l'archive HSD correspond aux headers des fichiers ARC :</span> | <span class="pl-s">Le header de l'archive HSD correspond aux headers des fichiers ARC :</span> | ||
typedef struct _HSD_ArchiveHeader { | typedef struct _HSD_ArchiveHeader { | ||
u32 file_size; /* 0x00 */ 0x4d7b | |||
u32 data_size; /* 0x04 */ 0x49c8 | |||
u32 nb_reloc; /* 0x08 */ 0xe0 | |||
u32 nb_public; /* 0x0C */ 1 | |||
u32 nb_extern; /* 0x10 */ 0 | |||
u8 version[4]; /* 0x14 */ 0 | |||
u32 pad[2]; /* 0x18 */ on a seulement un pad de 4 octets / pas 8 dans le débogage ; | |||
} HSD_ArchiveHeader; | |||
Tous les headers des fichiers de "afs_data.afs" ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n'ont pas été vérifiés par exemple. Seul les fichiers ARC utilisent des informations qui semblent correspondre à ce header. La fonction utilisant la chaîne de caractère <span class="pl-s"><span class="pl-pds">"</span>Archive_Parse: Byte-Order mismatch" est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88. </span> | Tous les headers des fichiers de "afs_data.afs" ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n'ont pas été vérifiés par exemple. Seul les fichiers ARC utilisent des informations qui semblent correspondre à ce header. La fonction utilisant la chaîne de caractère <span class="pl-s"><span class="pl-pds">"</span>Archive_Parse: Byte-Order mismatch" est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88. </span> | ||
<span class="pl-s">8004d548 est appelé une fois au lancement du jeu. </span><span class="pl-s">On y retrouve HSD_archiveParse(*bufferDest=r3=0x81489c40, *bufferSrc=r4=0x80f2b1c0, len?=r5=0x4d7b). On a bien en argument (*bufferSrc) un fichier qui ressemble aux fichiers ARC.</span><span class="pl-s"></span> | <span class="pl-s">8004d548 est appelé une fois au lancement du jeu. </span><span class="pl-s">On y retrouve HSD_archiveParse(*bufferDest=r3=0x81489c40, *bufferSrc=r4=0x80f2b1c0, len?=r5=0x4d7b). On a bien en argument (*bufferSrc) un fichier qui ressemble aux fichiers ARC.</span><span class="pl-s"></span> | ||
<span class="pl-s">Le PGCD des tailles des arc est de 1.</span> | |||
[[Catégorie:Format de fichier]] | [[Catégorie:Format de fichier]] | ||
[[Catégorie:Gotcha Force]] | [[Catégorie:Gotcha Force]] |
Revision as of 16:13, 16 November 2021
Cet article est pour les format de fichiers ARC de Gotcha Force. Voir ARC (Format de fichier) pour les autres versions de ce fichier.
|
ARC semble être le diminutif d'archive.
Format
On retrouve dans l'exécutable principal Start.dol l'usage de la chaîne de caractère "Archive_Parse: Byte-Order mismatch". La communauté du jeu GameCube "Super Smash Bros. Melee" a notamment reverse cette fonction de la librairie HSD (rien n'indique que la version de HSD soit la même, il faudrait vérifier) :
Header
Le header de l'archive HSD correspond aux headers des fichiers ARC :
typedef struct _HSD_ArchiveHeader {
u32 file_size; /* 0x00 */ 0x4d7b u32 data_size; /* 0x04 */ 0x49c8 u32 nb_reloc; /* 0x08 */ 0xe0 u32 nb_public; /* 0x0C */ 1 u32 nb_extern; /* 0x10 */ 0 u8 version[4]; /* 0x14 */ 0 u32 pad[2]; /* 0x18 */ on a seulement un pad de 4 octets / pas 8 dans le débogage ; } HSD_ArchiveHeader;
Tous les headers des fichiers de "afs_data.afs" ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n'ont pas été vérifiés par exemple. Seul les fichiers ARC utilisent des informations qui semblent correspondre à ce header. La fonction utilisant la chaîne de caractère "Archive_Parse: Byte-Order mismatch" est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88.
8004d548 est appelé une fois au lancement du jeu. On y retrouve HSD_archiveParse(*bufferDest=r3=0x81489c40, *bufferSrc=r4=0x80f2b1c0, len?=r5=0x4d7b). On a bien en argument (*bufferSrc) un fichier qui ressemble aux fichiers ARC.
Le PGCD des tailles des arc est de 1.