No edit summary |
|||
Line 15: | Line 15: | ||
On retrouve dans l'exécutable principal Start.dol l'usage de la chaîne de caractère <span class="pl-s"><span class="pl-pds">"</span>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) :<span class="pl-pds"></span></span> | On retrouve dans l'exécutable principal Start.dol l'usage de la chaîne de caractère <span class="pl-s"><span class="pl-pds">"</span>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) :<span class="pl-pds"></span></span> | ||
HSD qui indiquerai '''HAL''' '''S'''ys'''D'''olphin. | |||
<span class="pl-s">[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.h hsd archive.h]</span> | <span class="pl-s">[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.h hsd archive.h]</span> |
Revision as of 10:19, 19 March 2022
Cet article est pour les format de fichiers ARC de Gotcha Force. Voir ARC (Format de fichier) pour les autres versions de ce fichier.
Cette section a besoin de beaucoup de recherche.
Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.
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) :
HSD qui indiquerai HAL SysDolphin.
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;
Observations
Textures inutilisé
Contenu dans (NTSC) afs_data.afs/nwld00_mdl.arc, afs_data.afs/nwld01_mdl.arc et afs_data.afs/nwld02_mdl.arc trois textures inutilisé qui aurait été utilisé semblerait-il lors de la démo du jeu.
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.