Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

ARC (Gotcha Force): Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:
[[Gotcha Force | ← Gotcha Force]]
[[Gotcha Force | ← Gotcha Force]]


''Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (File format)]] pour les autres versions de ce fichier.''
''This article is about Gotcha Force ARC file format and ongoing researchs on it.''


<div style="text-align: center;">
<div style="text-align: center;">

Revision as of 09:44, 7 September 2022

← Gotcha Force

This article is about Gotcha Force ARC file format and ongoing researchs on it.

This section needs a lot of research.
Research on how the header works and how the file interacts is needed.

ARC seems to be the diminutive of archive.

Format

In the main executable boot.dol we found the debug string "Archive_Parse: Byte-Order mismatch" related to HSD (HAL SysDolphin) archives. The "Super Smash Bros. Melee" GameCube community has reversed this HSD lib function (Gotcha Force use not the same HSD lib version):

hsd archive.h

hsd archive.c

All ARC files named with _mdl in their title are HSD models.

Header

The HSD header seems to match others ARC headers:

typedef struct _HSD_ArchiveHeader {
    u32 file_size; // 0x00
    u32 data_size; // 0x04
    u32 nb_reloc;  // 0x08
    u32 nb_public; // 0x0C
    u32 nb_extern; // 0x10
    u8 version[4]; // 0x14
    u32 pad[2];    // 0x18 In debugging there is 4 bytes pad / not 2
} HSD_ArchiveHeader;


Observations

Unused textures

In the afs_data.afs (USA/NTSC version) we find 3 unused textures which have possibly been used in the game demo:

  • nwld00_mdl.arc
  • nwld01_mdl.arc
  • nwld02_mdl.arc

300px 300px 300px

All header of the "afs_data.afs" have been verified without decompress using automated scripts. PZZ files havn't been verified except for HSD models. ARC files seems to use this informations. "Archive_Parse: Byte-Order mismatch" is referenced twice in the code (USA/NTSC dol version) boot.dol at addresses 8004d548 and 80006c88.

  • 8004d548 is called when starting the game. We get HSD_archiveParse(*bufferDest=r3=0x81489c40, *bufferSrc=r4=0x80f2b1c0, len?=r5=0x4d7b). We found back arg (*bufferSrc) as a pointer to an ARC file like.