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 3: Line 3:
''This article is about Gotcha Force ARC file format and ongoing researchs on it.''
''This article is about Gotcha Force ARC file format and ongoing researchs on it.''


<div style="text-align: center;">
{{Research | 3| Research on how the header works and how the file interacts is needed.< }}
<div style="color: red;">This section needs a lot of research.</div>
<div style="color: red; text-align: center;">Research on how the header works and how the file interacts is needed.</div>
</div>


ARC seems to be the diminutive of '''arc'''hive.
ARC seems to be the diminutive of '''arc'''hive.
Line 43: Line 40:
* nwld02_mdl.arc
* nwld02_mdl.arc


[[Fichier:Array 0 nwld00 mdl.arc.png.png|300px]] [[Fichier:Array_0_nwld01_mdl.arc.png|300px]] [[Fichier:Array 0 nwld02 mdl.arc.png|300px]]
[[File:Array 0 nwld00 mdl.arc.png.png|300px]] [[File:Array_0_nwld01_mdl.arc.png|300px]] [[File:Array 0 nwld02 mdl.arc.png|300px]]


All header of the "afs_data.afs" have been verified without decompress using automated scripts. [[PZZ (Gotcha Force)|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 (Gotcha Force)|dol]] version) boot.dol at addresses 8004d548 and 80006c88.
All header of the "afs_data.afs" have been verified without decompress using automated scripts. [[PZZ (Gotcha Force)|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 (Gotcha Force)|dol]] version) boot.dol at addresses 8004d548 and 80006c88.

Revision as of 18:27, 12 September 2022

← Gotcha Force

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


This file format 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

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.