No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
''Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (Format de fichier)]] pour les autres versions de ce fichier.'' | ''Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (Format de fichier)]] pour les autres versions de ce fichier.'' | ||
<br> | |||
<div style="overflow-x:auto;"> | |||
{| style="padding:0px; margin:0px; width:100%; background-color: transparent; white-space:nowrap;" cellspacing="3" | |||
| colspan="2" | | |||
{| style="padding:0px; background-color: transparent;" width="100%" | |||
| 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: 125%; color: red;">Des recherches sur l'algorithme et comment interagit le fichier sont nécessaire. </div> | |||
|} | |||
|} | |||
</div> | |||
<br> | |||
ARC semble être le diminutif d'archive. | ARC semble être le diminutif d'archive. | ||
Line 29: | Line 42: | ||
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> | ||
[[Catégorie:Format de fichier]] | |||
[[Catégorie:Gotcha Force]] |
Revision as of 12:50, 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.