<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.re.virtualworld.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rigodron</id>
	<title>Virtual World R.E. - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.re.virtualworld.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rigodron"/>
	<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php/Special:Contributions/Rigodron"/>
	<updated>2026-04-12T20:13:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=650</id>
		<title>ARC (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=650"/>
		<updated>2022-03-19T09:20:07Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ARC semble être le diminutif d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
__toc__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
On retrouve dans l&#039;exécutable principal Start.dol l&#039;usage de la chaîne de caractère &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot;. La communauté du jeu GameCube &amp;quot;Super Smash Bros. Melee&amp;quot; a notamment reverse cette fonction de la librairie HSD (rien n&#039;indique que la version de HSD soit la même, il faudrait vérifier) :&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HSD qui indiquerai &#039;&#039;&#039;H&#039;&#039;&#039;AL &#039;&#039;&#039;S&#039;&#039;&#039;ys&#039;&#039;&#039;D&#039;&#039;&#039;olphin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.h hsd archive.h]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.c hsd archive.c]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le header de l&#039;archive HSD correspond aux headers des fichiers ARC :&amp;lt;/span&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 typedef struct _HSD_ArchiveHeader {&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 file_size; /* 0x00 */ 0x4d7b&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 data_size; /* 0x04 */ 0x49c8&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_reloc; &amp;amp;nbsp;/* 0x08 */ 0xe0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_public; /* 0x0C */ 1&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_extern; /* 0x10 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u8 version[4]; /* 0x14 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 pad[2]; &amp;amp;nbsp; &amp;amp;nbsp;/* 0x18 */ on a seulement un pad de 4 octets / pas 8 dans le débogage ;&lt;br /&gt;
 } HSD_ArchiveHeader;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
== Observations ==&lt;br /&gt;
=== Textures inutilisé ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[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]]&lt;br /&gt;
&lt;br /&gt;
Tous les headers des fichiers de &amp;quot;afs_data.afs&amp;quot; ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n&#039;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 &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot; est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88. &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;8004d548 est appelé une fois au lancement du jeu. &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;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.&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le PGCD des tailles des arc est de 1.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=649</id>
		<title>ARC (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=649"/>
		<updated>2022-03-19T09:19:52Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ARC semble être le diminutif d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
__toc__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
On retrouve dans l&#039;exécutable principal Start.dol l&#039;usage de la chaîne de caractère &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot;. La communauté du jeu GameCube &amp;quot;Super Smash Bros. Melee&amp;quot; a notamment reverse cette fonction de la librairie HSD (rien n&#039;indique que la version de HSD soit la même, il faudrait vérifier) :&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HSD qui indiquerai &#039;&#039;&#039;HAL&#039;&#039;&#039; &#039;&#039;&#039;S&#039;&#039;&#039;ys&#039;&#039;&#039;D&#039;&#039;&#039;olphin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.h hsd archive.h]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.c hsd archive.c]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le header de l&#039;archive HSD correspond aux headers des fichiers ARC :&amp;lt;/span&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 typedef struct _HSD_ArchiveHeader {&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 file_size; /* 0x00 */ 0x4d7b&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 data_size; /* 0x04 */ 0x49c8&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_reloc; &amp;amp;nbsp;/* 0x08 */ 0xe0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_public; /* 0x0C */ 1&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_extern; /* 0x10 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u8 version[4]; /* 0x14 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 pad[2]; &amp;amp;nbsp; &amp;amp;nbsp;/* 0x18 */ on a seulement un pad de 4 octets / pas 8 dans le débogage ;&lt;br /&gt;
 } HSD_ArchiveHeader;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
== Observations ==&lt;br /&gt;
=== Textures inutilisé ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[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]]&lt;br /&gt;
&lt;br /&gt;
Tous les headers des fichiers de &amp;quot;afs_data.afs&amp;quot; ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n&#039;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 &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot; est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88. &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;8004d548 est appelé une fois au lancement du jeu. &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;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.&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le PGCD des tailles des arc est de 1.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=634</id>
		<title>ARC (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=634"/>
		<updated>2022-03-02T13:09:32Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Textures inutilisé */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ARC semble être le diminutif d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
__toc__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
On retrouve dans l&#039;exécutable principal Start.dol l&#039;usage de la chaîne de caractère &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot;. La communauté du jeu GameCube &amp;quot;Super Smash Bros. Melee&amp;quot; a notamment reverse cette fonction de la librairie HSD (rien n&#039;indique que la version de HSD soit la même, il faudrait vérifier) :&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.h hsd archive.h]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.c hsd archive.c]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le header de l&#039;archive HSD correspond aux headers des fichiers ARC :&amp;lt;/span&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 typedef struct _HSD_ArchiveHeader {&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 file_size; /* 0x00 */ 0x4d7b&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 data_size; /* 0x04 */ 0x49c8&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_reloc; &amp;amp;nbsp;/* 0x08 */ 0xe0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_public; /* 0x0C */ 1&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_extern; /* 0x10 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u8 version[4]; /* 0x14 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 pad[2]; &amp;amp;nbsp; &amp;amp;nbsp;/* 0x18 */ on a seulement un pad de 4 octets / pas 8 dans le débogage ;&lt;br /&gt;
 } HSD_ArchiveHeader;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
== Observations ==&lt;br /&gt;
=== Textures inutilisé ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[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]]&lt;br /&gt;
&lt;br /&gt;
Tous les headers des fichiers de &amp;quot;afs_data.afs&amp;quot; ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n&#039;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 &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot; est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88. &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;8004d548 est appelé une fois au lancement du jeu. &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;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.&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le PGCD des tailles des arc est de 1.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=633</id>
		<title>ARC (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARC_(Gotcha_Force)&amp;diff=633"/>
		<updated>2022-03-02T13:09:13Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARC de Gotcha Force. Voir [[ARC (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ARC semble être le diminutif d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
__toc__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
On retrouve dans l&#039;exécutable principal Start.dol l&#039;usage de la chaîne de caractère &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot;. La communauté du jeu GameCube &amp;quot;Super Smash Bros. Melee&amp;quot; a notamment reverse cette fonction de la librairie HSD (rien n&#039;indique que la version de HSD soit la même, il faudrait vérifier) :&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.h hsd archive.h]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;[https://github.com/PsiLupan/FRAY/blob/master/src/hsd/hsd_archive.c hsd archive.c]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le header de l&#039;archive HSD correspond aux headers des fichiers ARC :&amp;lt;/span&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 typedef struct _HSD_ArchiveHeader {&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 file_size; /* 0x00 */ 0x4d7b&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 data_size; /* 0x04 */ 0x49c8&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_reloc; &amp;amp;nbsp;/* 0x08 */ 0xe0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_public; /* 0x0C */ 1&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 nb_extern; /* 0x10 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u8 version[4]; /* 0x14 */ 0&lt;br /&gt;
 &amp;amp;nbsp; &amp;amp;nbsp; u32 pad[2]; &amp;amp;nbsp; &amp;amp;nbsp;/* 0x18 */ on a seulement un pad de 4 octets / pas 8 dans le débogage ;&lt;br /&gt;
 } HSD_ArchiveHeader;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
== Observations ==&lt;br /&gt;
=== Textures inutilisé ===&lt;br /&gt;
&lt;br /&gt;
Contenu dans (NTSC) afs_data.afs/nwld00_mdl.arc, afs_data.afs/nwld01_mdl.arc and afs_data.afs/nwld02_mdl.arc trois textures inutilisé qui aurait été utilisé semblerait-il lors de la démo du jeu.&lt;br /&gt;
&lt;br /&gt;
[[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]]&lt;br /&gt;
&lt;br /&gt;
Tous les headers des fichiers de &amp;quot;afs_data.afs&amp;quot; ont été vérifiés directement, sans décompression ou autre. Les fichiers compressés dans les PZZ n&#039;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 &amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;pl-pds&amp;quot;&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;Archive_Parse: Byte-Order mismatch&amp;quot; est référencée deux fois dans Start.dol aux adresses 8004d548, et 80006c88. &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;8004d548 est appelé une fois au lancement du jeu. &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;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.&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pl-s&amp;quot;&amp;gt;Le PGCD des tailles des arc est de 1.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=File:Array_0_nwld02_mdl.arc.png&amp;diff=632</id>
		<title>File:Array 0 nwld02 mdl.arc.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=File:Array_0_nwld02_mdl.arc.png&amp;diff=632"/>
		<updated>2022-03-02T12:53:39Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This image was ripped from a(n) GameCube game.&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=File:Array_0_nwld01_mdl.arc.png&amp;diff=631</id>
		<title>File:Array 0 nwld01 mdl.arc.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=File:Array_0_nwld01_mdl.arc.png&amp;diff=631"/>
		<updated>2022-03-02T12:51:55Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This image was ripped from a(n) GameCube game.&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=File:Array_0_nwld00_mdl.arc.png.png&amp;diff=630</id>
		<title>File:Array 0 nwld00 mdl.arc.png.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=File:Array_0_nwld00_mdl.arc.png.png&amp;diff=630"/>
		<updated>2022-03-02T12:50:33Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This image was ripped from a(n) GameCube game.&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Implementations&amp;diff=629</id>
		<title>Implementations</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Implementations&amp;diff=629"/>
		<updated>2022-03-01T14:28:16Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Éléments d&amp;#039;interface graphique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Implémentation des éléments du jeu ==&lt;br /&gt;
&lt;br /&gt;
=== Borgs ===&lt;br /&gt;
==== Éléments d&#039;interface graphique ====&lt;br /&gt;
==== Fichiers et fonctionnement ====&lt;br /&gt;
Les borgs sont implémentés avec un ensemble de fichiers ayant chacun une fonction spécifique. Ces fichiers sont en double dans le pzz du borg et dans l&#039;afs_data. Les différents _mdl définissent les différentes couleurs des Borgs. Il sembleraient qu&#039;ils soient utilisés avec des valeurs supplémentaires dans d&#039;autres fichiers (les affichages sont pas toujours corrects lors d&#039;échanges de positions dans l&#039;iso). Le _mdl principal est chargé à partir du pzz (menu collection ou story). &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Une théorie serait qu&#039;une partie des fichiers en double serviraient à charger les ennemis et l&#039;autre partie les alliés.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 ├─ 000 fichier [[Borg - fichier data|plxxxxdata.bin]]  -&amp;gt; toujours présent&lt;br /&gt;
 ├─ 001 ?                       -&amp;gt; souvent absent&lt;br /&gt;
 ├─ 002 fichier plxxxxhit.bin   -&amp;gt; toujours présent&lt;br /&gt;
 ├─ 003 fichier [[Animations|plxxxxmot.bin]]   -&amp;gt; souvent absent&lt;br /&gt;
 ├─ 004 fichier [[Modèles|plxxxx_mdl.arc]]  -&amp;gt; toujours présent&lt;br /&gt;
 ├─ 005 fichier [[Modèles|plxxxxb_mdl.arc]] -&amp;gt; toujours présent -&amp;gt; modèle bleu&lt;br /&gt;
 ├─ 006 fichier [[Modèles|plxxxxg_mdl.arc]] -&amp;gt; toujours présent&lt;br /&gt;
 ├─ 007 fichier [[Modèles|plxxxxs_mdl.arc]] -&amp;gt; toujours présent -&amp;gt; modèle argent&lt;br /&gt;
 ├─ 008 fichier [[Modèles|plxxxxc_mdl.arc]] -&amp;gt; toujours présent&lt;br /&gt;
 ├─ 009 fichier [[Modèles|plxxxxk_mdl.arc]] -&amp;gt; toujours présent -&amp;gt; modèle noir&lt;br /&gt;
 ├─ 010 [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg en japonais&lt;br /&gt;
 ├─ 011 [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg en japonais (petit format)&lt;br /&gt;
 ├─ 012 [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg dans la langue du jeu&lt;br /&gt;
 └─ 013 fichier mnxxxx.tpl      -&amp;gt; [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg dans la langue du jeu (petit format)&lt;br /&gt;
 [[Borg - fichier data|plxxxxdata.bin]] -&amp;gt; fichier pouvant être nommé data2 ou data3 (seul un des trois est présent), parfois absent de l&#039;afs_data&lt;br /&gt;
 plxxxxhit.bin   -&amp;gt; toujours présent dans l&#039;afs_data et le pzz&lt;br /&gt;
 [[Animations|plxxxxmot.bin]]   -&amp;gt; souvent absent de l&#039;afs_data&lt;br /&gt;
 [[Modèles|plxxxx_mdl.arc]]  -&amp;gt; parfois absent de l&#039;afs_data&lt;br /&gt;
 [[Modèles|plxxxxb_mdl.arc]] -&amp;gt; parfois absent de l&#039;afs_data&lt;br /&gt;
 [[Modèles|plxxxxg_mdl.arc]] -&amp;gt; parfois absent de l&#039;afs_data&lt;br /&gt;
 [[Modèles|plxxxxs_mdl.arc]] -&amp;gt; parfois absent de l&#039;afs_data&lt;br /&gt;
 [[Modèles|plxxxxc_mdl.arc]] -&amp;gt; parfois absent de l&#039;afs_data&lt;br /&gt;
 [[Modèles|plxxxxk_mdl.arc]] -&amp;gt; parfois absent de l&#039;afs_data&lt;br /&gt;
 mnxxxx.tpl&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg pl0009, le fichier 3 et le mot diffèrent. (Version NTSC) (MOT - &#039;&#039;&#039;Mot&#039;&#039;&#039;ion) - On peux observer que pour ces fichiers, on retrouve des références pouvant faire penser à de l&#039;animation &#039;&#039;&#039;plxxxx_xx_animjoint&#039;&#039;&#039;.  L&#039;investigation mené par la communauté de [https://smashboards.com/threads/melee-dat-format.292603/ Smash Bros Brawl] montre une structure de fichier similaire. Il s&#039;agit d&#039;une autre version de HSD (Les structures de bases sont les mêmes).&lt;br /&gt;
&lt;br /&gt;
Position 004 à 009 : contiennent &#039;&#039;&#039;&amp;quot;scene_data&amp;quot;&#039;&#039;&#039; en fin de section data, et sont des fichiers &#039;&#039;&#039;&#039;&amp;quot;Scène&amp;quot;&#039;&#039;&#039; (HSDLib) qui contiennent les lumières, les caméras, les vertices, les bones à la manière d&#039;un .blend.&lt;br /&gt;
&lt;br /&gt;
Position 004 à 008 : fichiers avec des valeurs correspondantes à de la 3D. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0300.pzz&#039;&#039;&#039;&amp;quot; où ils ont un header &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;avec des flags&amp;lt;/span&amp;gt; ainsi qu&#039;un padding ajustable si besoin est d&#039;avoir plus d’éléments &#039;&#039;&#039;Par exemple pour &#039;&#039;pl0629.pzz&#039;&#039; la quantité &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;de flags&amp;lt;/span&amp;gt; dans le headers est plus conséquente.&#039;&#039;&#039; L&#039;origine &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;des flags&amp;lt;/span&amp;gt; et des valeurs dans le header est pour l&#039;instant inconnue mais ces champs du header &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;pourraient constituer une liste de mesh disponibles dans le fichier.&amp;lt;/span&amp;gt; Les logiciels utilisé pour lire les fichiers en position 004 à 009 dans les plxxxx.pzz sont 3D Model Researcher et HSDRawLibrary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Borgs non implémentés&#039;&#039;&#039; : pl0803 - pl080b - pl0f07&amp;lt;br&amp;gt;&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (mais 4 fichiers vides à la place) et juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Les 2 fichiers dpxxxx.pzz sont des fichiers similaires aux plxxxx.pzz mais sans les fichiers TPLs finaux. Leur utilité reste encore à déterminer.&lt;br /&gt;
&lt;br /&gt;
Fichiers dpxxxx.pzz (2)&lt;br /&gt;
 ├─ 000 -&amp;gt; [[Borg - fichier data|plxxxxdata.bin]] de l&#039;afs_data&lt;br /&gt;
 ├─ 001 -&amp;gt; fichier vide&lt;br /&gt;
 ├─ 002 -&amp;gt; plxxxxhit.bin de l&#039;afs_data&lt;br /&gt;
 ├─ 003 -&amp;gt; [[Animations|plxxxxmot.bin]] de l&#039;afs_data&lt;br /&gt;
 ├─ 004 -&amp;gt; [[Modèles|plxxxx_mdl.arc]] de l&#039;afs_data&lt;br /&gt;
 ├─ 005 -&amp;gt; [[Modèles|plxxxxb_mdl.arc]] de l&#039;afs_data&lt;br /&gt;
 ├─ 006 -&amp;gt; [[Modèles|plxxxxg_mdl.arc]] de l&#039;afs_data&lt;br /&gt;
 ├─ 007 -&amp;gt; [[Modèles|plxxxxs_mdl.arc]] de l&#039;afs_data&lt;br /&gt;
 ├─ 008 -&amp;gt; [[Modèles|plxxxxc_mdl.arc]] de l&#039;afs_data&lt;br /&gt;
 └─ 009 -&amp;gt; [[Modèles|plxxxxk_mdl.arc]] de l&#039;afs_data&lt;br /&gt;
&lt;br /&gt;
==== Sauvegardes mémoire ====&lt;br /&gt;
&lt;br /&gt;
=== Data Crystals ===&lt;br /&gt;
Les itxxxx_mdl.arz, une fois décompressés avec pzztool.py sont les modèles des data crytal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unknown(1).png|frameless|center|500px]] [[Fichier:Unknowns(1).png|vignette|center|Data Crystal. [https://gotchaforce.fandom.com/wiki/Data_Crystals Source]]]&lt;br /&gt;
&lt;br /&gt;
==== Éléments d&#039;interface graphique ====&lt;br /&gt;
&lt;br /&gt;
unitall_mdl.arc contient toutes les miniatures des borgs utilisé dans le menu de création/modification de force ainsi que dans la scène post combat affichant quel équipe/borgs VS équipe/borgs, et dans les data crystals.&lt;br /&gt;
&lt;br /&gt;
==== Fichiers et fonctionnement ====&lt;br /&gt;
==== Sauvegardes mémoire ====&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=CHD_(Gotcha_Force)&amp;diff=587</id>
		<title>CHD (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=CHD_(Gotcha_Force)&amp;diff=587"/>
		<updated>2022-02-17T12:33:13Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers CHD de Gotcha Force. Voir [[CHD (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PGCD des tailles des chd = 16&lt;br /&gt;
&lt;br /&gt;
__toc__ &lt;br /&gt;
&lt;br /&gt;
Les fichiers CHD contiennent différentes sections :&lt;br /&gt;
&lt;br /&gt;
*0x0 &amp;quot;Head&amp;quot; Header CHD &lt;br /&gt;
&lt;br /&gt;
0x4 : Amène au header Prog.&lt;br /&gt;
&lt;br /&gt;
0x8 : Indique une quantité ?&lt;br /&gt;
&lt;br /&gt;
0xC : Taille du fichier complet.&lt;br /&gt;
&lt;br /&gt;
0x10 ?&lt;br /&gt;
&lt;br /&gt;
0x14 ?&lt;br /&gt;
&lt;br /&gt;
0x18 Amène au header Smpl.&lt;br /&gt;
&lt;br /&gt;
0x1C Amène au header DSPi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*0x20 &amp;quot;Prog&amp;quot; &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt; Pourrait faire référence à du script audio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0x24 : Taille du block data.&lt;br /&gt;
&lt;br /&gt;
0x28 : Indique une quantité ?&lt;br /&gt;
&lt;br /&gt;
0x2C : -1 ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*0x0 &amp;quot;Smpl&amp;quot; Samples ?&lt;br /&gt;
&lt;br /&gt;
0x4 : Taille du block data.&lt;br /&gt;
&lt;br /&gt;
0x8 : Quantité de samples? (En hexadecimal. Ex 0x68 = 104 + 1(0,1,2....104))&lt;br /&gt;
&lt;br /&gt;
0xC : -1 ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*0x0 &amp;quot;Dspi&amp;quot; &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;DSP pour DSPADPCM, Piste possible : Liste des DSP dans [[DPK (Gotcha Force)]].&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0x4 : Taille du block data.&lt;br /&gt;
&lt;br /&gt;
0x8 : Quantité de DSP? (En hexadecimal)&lt;br /&gt;
&lt;br /&gt;
0xC : -1 ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=CHD_(Gotcha_Force)&amp;diff=584</id>
		<title>CHD (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=CHD_(Gotcha_Force)&amp;diff=584"/>
		<updated>2022-02-17T11:34:55Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers CHD de Gotcha Force. Voir [[CHD (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PGCD des tailles des chd = 16&lt;br /&gt;
&lt;br /&gt;
__toc__ &lt;br /&gt;
&lt;br /&gt;
Les fichiers CHD contiennent différentes sections :&lt;br /&gt;
&lt;br /&gt;
*0x0 &amp;quot;Head&amp;quot; Header CHD &lt;br /&gt;
&lt;br /&gt;
0x4 : Amène au header Prog.&lt;br /&gt;
&lt;br /&gt;
0x8 : Indique une quantité ?&lt;br /&gt;
&lt;br /&gt;
0xC : Taille du fichier complet.&lt;br /&gt;
&lt;br /&gt;
0x10 ?&lt;br /&gt;
&lt;br /&gt;
0x14 ?&lt;br /&gt;
&lt;br /&gt;
0x18 Amène au header Smpl.&lt;br /&gt;
&lt;br /&gt;
0x1C Amène au header DSPi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*0x20 &amp;quot;Prog&amp;quot; &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt; Pourrait faire référence à du script audio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0x24 : Taille du block data.&lt;br /&gt;
&lt;br /&gt;
0x28 : Indique une quantité ?&lt;br /&gt;
&lt;br /&gt;
0x2C : -1 ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*0x0 &amp;quot;Smpl&amp;quot; Samples ?&lt;br /&gt;
&lt;br /&gt;
0x4 : Taille du block data.&lt;br /&gt;
&lt;br /&gt;
0x8 : Quantité de samples?&lt;br /&gt;
&lt;br /&gt;
0xC : -1 ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*0x0 &amp;quot;Dspi&amp;quot; &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;DSP pour DSPADPCM, Piste possible : Liste des DSP dans [[DPK (Gotcha Force)]].&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0x4 : Taille du block data.&lt;br /&gt;
&lt;br /&gt;
0x8 : Quantité de DSP?&lt;br /&gt;
&lt;br /&gt;
0xC : -1 ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=543</id>
		<title>Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=543"/>
		<updated>2022-02-09T08:18:51Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Modèle Gotcha Force ==&lt;br /&gt;
&lt;br /&gt;
Les modèles Gotcha force fonctionnent comme ceux du jeu Smash Bros investigué par sa [https://smashboards.com/threads/melee-dat-format.292603/ communauté].&lt;br /&gt;
&lt;br /&gt;
Les modèles sont des fichiers HSD de la library Hal SysDolphin.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le header ce compose de la position du fichier HSD puis contient une location de suite de flags et la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
En 0x0 on retrouve l&#039;offset 0x100 menant au fichier HSD.&lt;br /&gt;
&lt;br /&gt;
En 0x4 on retrouve l&#039;offset 0x20 menant à la liste des flags des armatures. Flags qui sont &#039;&#039;&#039;Inconnu&#039;&#039;&#039; à ce jour. &lt;br /&gt;
Les flags sont en u8 pouvant aller de 00 à FF.&lt;br /&gt;
&lt;br /&gt;
En 0x8 on retrouve l&#039;offset 0xC0 menant à la liste des armatures.&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
Les fichiers _mdl se retrouvent dans les pzz des borgs (plxxxx.pzz) en position 004 à 009 ainsi que les fichiers pl*_mdl.arc. Il s&#039;agit d&#039;un format de fichier relatif au fonctionnement de la lib HSD utilisé dans plusieurs jeux par Capcom. L&#039;usage d&#039;un script est nécessaire pour référencer les fichiers éligibles au format _mdl dans l&#039;ensemble de l&#039;AFS data et dans les sous fichiers des pzz.&lt;br /&gt;
&lt;br /&gt;
Pour commencer, il s&#039;agit de synthétiser les investigations de la commu Super Smash Bros Melee et de les traduire. HSDRaw, un éditeur 3D dotnet de ce format est instable sur mon Windows(Algoflash) (segfaults même sur SSBM -&amp;gt; fichiers spécifiés comme bien géré dans la dernière release des sources - sans pouvoir investiguer plus) et ne permet pas d&#039;éditer les fichiers. Par contre, il est prouvé qu&#039;un edit des _mdl pour commencer à l&#039;offset 0x100 (celui ou on a la taille totale du fichier en big endian) permet de visualiser le fichier sur HSDRaw et d&#039;avoir le rendu 3D du Borg (click sur le premier dossier JOBJ - puis le JOBJ dedans et double click sur le noeud en violet.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------- &lt;br /&gt;
&lt;br /&gt;
Les offsets trouvés après le début du Data Block (DB) sont relatifs au début du DB.&lt;br /&gt;
La table de relocs est un tableau d&#039;offsets de 4 octets (relatif au DB) permettant de traduire en adressage absolu les offsets des structures lors du chargement mémoire. La table de reloc permet par exemple de délimiter les structures du fait qu&#039;il est peu probable qu&#039;un offset pointe au milieu d&#039;une structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le format dat/usd sur ssbm se découpe en plusieurs blocks :&lt;br /&gt;
* &#039;&#039;&#039;Header&#039;&#039;&#039; - 0x20 octets - unsigned big endian&lt;br /&gt;
** 4 octets - Taille totale du fichier&lt;br /&gt;
** 4 octets - Taille du Data block&lt;br /&gt;
** 4 octets - Nombre d&#039;entrée dans la Table de relocs&lt;br /&gt;
** 4 octets - root0_count&lt;br /&gt;
** 4 octets - root1_count&lt;br /&gt;
** 12 octets - Pad ? à voir de manière scripté si des valeurs apparaissent à ces offsets&lt;br /&gt;
* &#039;&#039;&#039;Data block&#039;&#039;&#039; :&lt;br /&gt;
** JOBJ, etc. -&amp;gt; Ces structures sont détaillée plus loin ci-dessous.&lt;br /&gt;
* &#039;&#039;&#039;Relocation Table&#039;&#039;&#039; :&lt;br /&gt;
** Tableau d&#039;offsets de 4 octets - Offsets des structures dans le DB.&lt;br /&gt;
* &#039;&#039;&#039;Root Nodes (2)&#039;&#039;&#039; :&lt;br /&gt;
** Tableau de taille 8 * root0_count&lt;br /&gt;
*** 4 octets - root_offset - relatif au DB&lt;br /&gt;
*** 4 octets - string_table_offset - relatif à la StringTable&lt;br /&gt;
** Tableau de taille 8 * root1_count (ou 4 octets 0x00 si root1_count == 0)&lt;br /&gt;
*** 4 octets - root_offset - relatif au DB&lt;br /&gt;
*** 4 octets - string_table_offset - relatif à la StringTable&lt;br /&gt;
* &#039;&#039;&#039;String Table&#039;&#039;&#039; :&lt;br /&gt;
** Suite de strings terminées par Null au nombre de root0_count + root1_count&lt;br /&gt;
&lt;br /&gt;
Structures rencontrées dans le DB :&lt;br /&gt;
* Structures JOBJ pointées par les listes dans Root Nodes (0x40 octets)&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - flags&lt;br /&gt;
** 4 octets - child_offset (JOBJ)&lt;br /&gt;
** 4 octets - next_offset (JOBJ)&lt;br /&gt;
** 4 octets - dobj_offset (DOBJ)&lt;br /&gt;
** float3 - rotation_xyz (taille en octets d&#039;un float à déterminer)&lt;br /&gt;
** float3 - scale_xyz&lt;br /&gt;
** float3 - translation_xyz&lt;br /&gt;
** 4 octets - transform_offset (inverse transform = méthode de nombres aléatoires ? mouvement ?)&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
Note : l&#039;arborescence est cumulative sur les transformations pour les relations parents-&amp;gt;enfants&lt;br /&gt;
&lt;br /&gt;
* DOBJ_DATA : liste chaînée qui permet de récupérer l&#039;ensemble des materials &amp;amp; mesh pour le JOBJ auquel il est lié&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - next_offset - prochain DOBJ&lt;br /&gt;
** 4 octets - mobj_offset - material ?&lt;br /&gt;
** 4 octets - pobj_offset - mesh ?&lt;br /&gt;
&lt;br /&gt;
* MOBJ_DATA : Contient les textures &amp;amp; informations sur les couleurs des Materials&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - Flags Inconnus&lt;br /&gt;
** 4 octets - tobj_offset - offset de texture - peut être invalide s&#039;il n&#039;y a pas de texture pour le material&lt;br /&gt;
** 4 octets - material_offset - couleurs des materials ?&lt;br /&gt;
** 8 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
* MATERIAL_COLORS : (material_offset)&lt;br /&gt;
** 4 octets - Couleur Inconnue - diffuse?&lt;br /&gt;
** 4 octets - Couleur Inconnue - ambient?&lt;br /&gt;
** 4 octets - Couleur Inconnue - specular?&lt;br /&gt;
** float - Inconnu&lt;br /&gt;
** float - Inconnu&lt;br /&gt;
&lt;br /&gt;
* TOBJ_DATA : Informations de Textures (0x5c)&lt;br /&gt;
** 19 * 4 octets - Inconnu [19]&lt;br /&gt;
** 4 octets - image_offset - image header information&lt;br /&gt;
** 4 octets - palette_offset - palette header information&lt;br /&gt;
** 2 * 4 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
Le TOBJ contient des informations sur les paramètres d&#039;environnement de textures utilisés pour le rendu graphique ainsi que les offset de l&#039;image et des données de la palette utilisés pour cette texture. Le plus important ici, c&#039;est l&#039;offset d&#039;image et la palette/tlut - si l&#039;image n&#039;est pas indexée (RGBA, CMPR, etc.) alors la structure de description palette/tlut n&#039;est pas utilisée.&lt;br /&gt;
&lt;br /&gt;
* IMAGE_HEADER :&lt;br /&gt;
** 4 octets - image_offset - image data&lt;br /&gt;
** 2 octets - width&lt;br /&gt;
** 2 octets - height&lt;br /&gt;
** 4 octets - image_format&lt;br /&gt;
&lt;br /&gt;
* PALETTE_HEADER : (0x10)&lt;br /&gt;
** 4 octets - palette_offset - palette data&lt;br /&gt;
** 4 octets - palette_format&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 2 octets - color_count&lt;br /&gt;
** 2 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
image_offset et palette_offset sont souvent partagés par plusieurs textures - savoir ça permet de retrouver toutes les informations sur les images des textures (largeur, hauteur, format), ainsi que le format et le nombre de couleurs de la palette/tlut.&lt;br /&gt;
&lt;br /&gt;
Le format d&#039;image ne détermine pas le nombre total de couleurs de la palette qu&#039;elle utilisent. Par exemple, une image indexée sur 8 bits aurait un maximum de 256 couleurs mais seulement 136 ou 221 couleurs sont actuellement utilisées. De la sorte, la palette n&#039;utilisera pas la taille totale qu&#039;elle devrait utiliser.&lt;br /&gt;
&lt;br /&gt;
Les images suivent la structure généralement utilisée par la GameCube :&lt;br /&gt;
&lt;br /&gt;
IMAGE FORMATS :&lt;br /&gt;
* case 0: //i4&lt;br /&gt;
* case 1: //i8&lt;br /&gt;
* case 2: //i4a4&lt;br /&gt;
* case 3: //i8a8&lt;br /&gt;
* case 4: //r5g6b5&lt;br /&gt;
* case 5: //rgb5a3&lt;br /&gt;
* case 6: //r8g8b8a8&lt;br /&gt;
* case 8: //index4&lt;br /&gt;
* case 9: //index8&lt;br /&gt;
* case 0xa: //index14x2&lt;br /&gt;
* case 0xe: //s3tc1&lt;br /&gt;
&lt;br /&gt;
Les formats indexés utilisent aussi les informations de palettes/tlut et les données peuvent apparaître en plusieurs formats :&lt;br /&gt;
&lt;br /&gt;
PALETTE FORMATS :&lt;br /&gt;
* case 0: //ia8&lt;br /&gt;
* case 1: //r5g6b5&lt;br /&gt;
* case 2: //rgb5a3&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; &amp;quot;Joint Data - Accessing Geometry, Mesh, and Vertex Attributes&amp;quot; https://smashboards.com/threads/melee-dat-format.292603/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
trad a revoir à partir de là, il faut investiguer le rendu 3D sur GameCube pour mieux comprendre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* POBJ_DATA :&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - next_offset&lt;br /&gt;
** 4 octets - vertex_attr_array_offset - vertex attribute list&lt;br /&gt;
** 2 octets - Flags Inconnus&lt;br /&gt;
** 2 octets - display_list_size - number of 0x20 (32) byte blocks occupied by display list data&lt;br /&gt;
** 4 octets - display_list_offset - display list&lt;br /&gt;
** 4 octets - weight_list_offset - joint weight info&lt;br /&gt;
&lt;br /&gt;
Comme l&#039;indique next_offset, il s&#039;agit d&#039;une liste de meshs à afficher pour un material donné référencé par un dobj. POBJ_DATA contient les offsets de vertex attributes / display list / joint weight list ce qui suffit et permet d’interpréter et traiter les coordonnées de vertices, normals &amp;amp; textures.&lt;br /&gt;
&lt;br /&gt;
Les attributs vertex sont les plus important - les parametres specifiés contrôlent tout : du format, de la taille des données de chaque vertex, normal et coordonnées de textures et comment ces valeurs sont dimensionnées (scaled) par rapport à la présence et la taille de chaque valeur d&#039;index qui apparaît dans la display list information.&lt;br /&gt;
&lt;br /&gt;
// déclaration d&#039;un vertex et attribute information&lt;br /&gt;
// attr, type, cnt, data_type, flags?, file_offset&lt;br /&gt;
* ATTR_DATA&lt;br /&gt;
** 4 octets - GXAttr     vtx_attr_offset - attr&lt;br /&gt;
** 4 octets - GXAttrType vtx_attr_type   - index_type&lt;br /&gt;
** 4 octets - GXCompCnt  comp_cnt        - cnt&lt;br /&gt;
** 4 octets - GXCompType comp_type       - data_type	&lt;br /&gt;
** 1 octets - scale&lt;br /&gt;
** 1 octets - Inconnu&lt;br /&gt;
** 2 octets - vtx_stride&lt;br /&gt;
** 2 octets - data_offset&lt;br /&gt;
&lt;br /&gt;
vertex_attr_offset pointe sur une liste d&#039;attributs de vertex. Leur nombre n&#039;est pas donné. Les données dans cette structure suivent les informations et les types conçus par l&#039;architecture GameCube/WII et son API. La liste est terminée par une valeur spécifique de vtx_attr qui signale la fin de cette liste. Avec un accès à la doku SDK, il serait fortement conseillé de lire la section à propos des &amp;quot;vertex attributes and other specifications&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
La valeur de vtx_attr determine le type de donnée que cet attribut désigne et peut indiquer un nombre de types natifs utilisés utilisés pour passer les données entre les interfaces logicielles et matérielles.&lt;br /&gt;
&lt;br /&gt;
Les valeures possibles sont les suivantes :&lt;br /&gt;
* enum GXAttr (4 octets)&lt;br /&gt;
** GX_VA_PNMTXIDX = 0,    // position/normal matrix index&lt;br /&gt;
** GX_VA_TEX0MTXIDX,      // texture 0 matrix index&lt;br /&gt;
** GX_VA_TEX1MTXIDX,      // texture 1 matrix index&lt;br /&gt;
** GX_VA_TEX2MTXIDX,      // texture 2 matrix index&lt;br /&gt;
** GX_VA_TEX3MTXIDX,      // texture 3 matrix index&lt;br /&gt;
** GX_VA_TEX4MTXIDX,      // texture 4 matrix index&lt;br /&gt;
** GX_VA_TEX5MTXIDX,      // texture 5 matrix index&lt;br /&gt;
** GX_VA_TEX6MTXIDX,      // texture 6 matrix index&lt;br /&gt;
** GX_VA_TEX7MTXIDX,      // texture 7 matrix index&lt;br /&gt;
** GX_VA_POS      = 9,    // position&lt;br /&gt;
** GX_VA_NRM,             // normal&lt;br /&gt;
** GX_VA_CLR0,            // color 0&lt;br /&gt;
** GX_VA_CLR1,            // color 1&lt;br /&gt;
** GX_VA_TEX0,            // input texture coordinate 0&lt;br /&gt;
** GX_VA_TEX1,            // input texture coordinate 1&lt;br /&gt;
** GX_VA_TEX2,            // input texture coordinate 2&lt;br /&gt;
** GX_VA_TEX3,            // input texture coordinate 3&lt;br /&gt;
** GX_VA_TEX4,            // input texture coordinate 4&lt;br /&gt;
** GX_VA_TEX5,            // input texture coordinate 5&lt;br /&gt;
** GX_VA_TEX6,            // input texture coordinate 6&lt;br /&gt;
** GX_VA_TEX7,            // input texture coordinate 7&lt;br /&gt;
&lt;br /&gt;
** GX_POS_MTX_ARRAY,      // position matrix array pointer&lt;br /&gt;
** GX_NRM_MTX_ARRAY,      // normal matrix array pointer&lt;br /&gt;
** GX_TEX_MTX_ARRAY,      // texture matrix array pointer&lt;br /&gt;
** GX_LIGHT_ARRAY,        // light parameter array pointer&lt;br /&gt;
** GX_VA_NBT,             // normal, bi-normal, tangent &lt;br /&gt;
** GX_VA_MAX_ATTR,        // maximum number of vertex attributes&lt;br /&gt;
&lt;br /&gt;
** GX_VA_NULL     = 0xff  // NULL attribute (to mark end of lists)&lt;br /&gt;
&lt;br /&gt;
Toutes les données nécessaires pour représenter un mesh peuvent être spécifiées et indexées d&#039;une manière ou d&#039;une autre. De même, GX_VA_TEX0MTXIDX, GX_VA_CLR0, et autres sont aussi possibles - les valeurs les plus fréquentes dans les données SSBM sont : GX_VA_PNMTXIDX, GX_VA_POS, GX_VA_NRM, et GX_VA_TEX0. Which is to be expected as joint matrices, vertex positions/normals, and texture coordinates respectively are probably the most basic of elements needed to display a texture mesh, whether static or animated.&lt;br /&gt;
&lt;br /&gt;
When the value of vtx_attr == GX_VA_NULL (0xFF), the end of the vertex attribute array has been reached.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The vtx_attr_type values is actually associated with how the value is indexed, and can thus also determine the size of the index value within the display list data.&lt;br /&gt;
&lt;br /&gt;
* 4 octets - enum GXAttrType&lt;br /&gt;
** GX_NONE    = 0,&lt;br /&gt;
** GX_DIRECT,&lt;br /&gt;
** GX_INDEX8,&lt;br /&gt;
** GX_INDEX16&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Structures COLL_DATA : (données de collisions)&lt;br /&gt;
** 4 octets - vertex_offset (2 float par entrée correspondant à des données 2D probablement)&lt;br /&gt;
** 4 octets - vertex_count&lt;br /&gt;
** 4 octets - index_offset&lt;br /&gt;
** 4 octets - index_count&lt;br /&gt;
** 20 octets - tableau inconnu (x5)&lt;br /&gt;
*** 2 octets - index_start&lt;br /&gt;
*** 2 octets - index_count&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=542</id>
		<title>Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=542"/>
		<updated>2022-02-09T08:17:01Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Modèle Gotcha Force ==&lt;br /&gt;
&lt;br /&gt;
Les modèles Gotcha force fonctionnent comme ceux du jeu Smash Bros investigué par sa [https://smashboards.com/threads/melee-dat-format.292603/ communauté].&lt;br /&gt;
&lt;br /&gt;
Les modèles sont des fichiers HSD de la library Hal SysDolphin.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le header ce compose de la position du fichier HSD puis contient une location de suite de flags et la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
En 0x0 on retrouve l&#039;offset 0x100 menant au fichier HSD.&lt;br /&gt;
&lt;br /&gt;
En 0x4 on retrouve l&#039;offset 0x20 menant à la liste des flags des armatures. Flags qui sont &#039;&#039;&#039;Inconnu&#039;&#039;&#039; à ce jour. &lt;br /&gt;
Les flags sont en u8 pouvant aller de 00 à FF.&lt;br /&gt;
&lt;br /&gt;
En 0x8 on retrouve l&#039;offset 0xC0 menant à la liste des armatures.&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
Les fichiers _mdl se retrouvent dans les pzz des borgs (plxxxx.pzz) en position 004 à 009 ainsi que les fichiers pl*_mdl.arc. Il s&#039;agit d&#039;un format de fichier relatif au fonctionnement de la lib HSD utilisé dans plusieurs jeux par Capcom. L&#039;usage d&#039;un script est nécessaire pour référencer les fichiers éligibles au format _mdl dans l&#039;ensemble de l&#039;AFS data et dans les sous fichiers des pzz.&lt;br /&gt;
&lt;br /&gt;
Pour commencer, il s&#039;agit de synthétiser les investigations de la commu Super Smash Melee et de les traduire. HSDRaw, un éditeur 3D dotnet de ce format est instable sur mon Windows (segfaults même sur SSBM -&amp;gt; fichiers spécifiés comme bien géré dans la dernière release des sources - sans pouvoir investiguer plus) et ne permet pas d&#039;éditer les fichiers. Par contre, il est prouvé qu&#039;un edit des _mdl pour commencer à l&#039;offset 0x100 (celui ou on a la taille totale du fichier en big endian) permet de visualiser le fichier sur HSDRaw et d&#039;avoir le rendu 3D du Borg (click sur le premier dossier JOBJ - puis le JOBJ dedans et double click sur le noeud en violet.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------- &lt;br /&gt;
&lt;br /&gt;
Les offsets trouvés après le début du Data Block (DB) sont relatifs au début du DB.&lt;br /&gt;
La table de relocs est un tableau d&#039;offsets de 4 octets (relatif au DB) permettant de traduire en adressage absolu les offsets des structures lors du chargement mémoire. La table de reloc permet par exemple de délimiter les structures du fait qu&#039;il est peu probable qu&#039;un offset pointe au milieu d&#039;une structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le format dat/usd sur ssbm se découpe en plusieurs blocks :&lt;br /&gt;
* &#039;&#039;&#039;Header&#039;&#039;&#039; - 0x20 octets - unsigned big endian&lt;br /&gt;
** 4 octets - Taille totale du fichier&lt;br /&gt;
** 4 octets - Taille du Data block&lt;br /&gt;
** 4 octets - Nombre d&#039;entrée dans la Table de relocs&lt;br /&gt;
** 4 octets - root0_count&lt;br /&gt;
** 4 octets - root1_count&lt;br /&gt;
** 12 octets - Pad ? à voir de manière scripté si des valeurs apparaissent à ces offsets&lt;br /&gt;
* &#039;&#039;&#039;Data block&#039;&#039;&#039; :&lt;br /&gt;
** JOBJ, etc. -&amp;gt; Ces structures sont détaillée plus loin ci-dessous.&lt;br /&gt;
* &#039;&#039;&#039;Relocation Table&#039;&#039;&#039; :&lt;br /&gt;
** Tableau d&#039;offsets de 4 octets - Offsets des structures dans le DB.&lt;br /&gt;
* &#039;&#039;&#039;Root Nodes (2)&#039;&#039;&#039; :&lt;br /&gt;
** Tableau de taille 8 * root0_count&lt;br /&gt;
*** 4 octets - root_offset - relatif au DB&lt;br /&gt;
*** 4 octets - string_table_offset - relatif à la StringTable&lt;br /&gt;
** Tableau de taille 8 * root1_count (ou 4 octets 0x00 si root1_count == 0)&lt;br /&gt;
*** 4 octets - root_offset - relatif au DB&lt;br /&gt;
*** 4 octets - string_table_offset - relatif à la StringTable&lt;br /&gt;
* &#039;&#039;&#039;String Table&#039;&#039;&#039; :&lt;br /&gt;
** Suite de strings terminées par Null au nombre de root0_count + root1_count&lt;br /&gt;
&lt;br /&gt;
Structures rencontrées dans le DB :&lt;br /&gt;
* Structures JOBJ pointées par les listes dans Root Nodes (0x40 octets)&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - flags&lt;br /&gt;
** 4 octets - child_offset (JOBJ)&lt;br /&gt;
** 4 octets - next_offset (JOBJ)&lt;br /&gt;
** 4 octets - dobj_offset (DOBJ)&lt;br /&gt;
** float3 - rotation_xyz (taille en octets d&#039;un float à déterminer)&lt;br /&gt;
** float3 - scale_xyz&lt;br /&gt;
** float3 - translation_xyz&lt;br /&gt;
** 4 octets - transform_offset (inverse transform = méthode de nombres aléatoires ? mouvement ?)&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
Note : l&#039;arborescence est cumulative sur les transformations pour les relations parents-&amp;gt;enfants&lt;br /&gt;
&lt;br /&gt;
* DOBJ_DATA : liste chaînée qui permet de récupérer l&#039;ensemble des materials &amp;amp; mesh pour le JOBJ auquel il est lié&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - next_offset - prochain DOBJ&lt;br /&gt;
** 4 octets - mobj_offset - material ?&lt;br /&gt;
** 4 octets - pobj_offset - mesh ?&lt;br /&gt;
&lt;br /&gt;
* MOBJ_DATA : Contient les textures &amp;amp; informations sur les couleurs des Materials&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - Flags Inconnus&lt;br /&gt;
** 4 octets - tobj_offset - offset de texture - peut être invalide s&#039;il n&#039;y a pas de texture pour le material&lt;br /&gt;
** 4 octets - material_offset - couleurs des materials ?&lt;br /&gt;
** 8 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
* MATERIAL_COLORS : (material_offset)&lt;br /&gt;
** 4 octets - Couleur Inconnue - diffuse?&lt;br /&gt;
** 4 octets - Couleur Inconnue - ambient?&lt;br /&gt;
** 4 octets - Couleur Inconnue - specular?&lt;br /&gt;
** float - Inconnu&lt;br /&gt;
** float - Inconnu&lt;br /&gt;
&lt;br /&gt;
* TOBJ_DATA : Informations de Textures (0x5c)&lt;br /&gt;
** 19 * 4 octets - Inconnu [19]&lt;br /&gt;
** 4 octets - image_offset - image header information&lt;br /&gt;
** 4 octets - palette_offset - palette header information&lt;br /&gt;
** 2 * 4 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
Le TOBJ contient des informations sur les paramètres d&#039;environnement de textures utilisés pour le rendu graphique ainsi que les offset de l&#039;image et des données de la palette utilisés pour cette texture. Le plus important ici, c&#039;est l&#039;offset d&#039;image et la palette/tlut - si l&#039;image n&#039;est pas indexée (RGBA, CMPR, etc.) alors la structure de description palette/tlut n&#039;est pas utilisée.&lt;br /&gt;
&lt;br /&gt;
* IMAGE_HEADER :&lt;br /&gt;
** 4 octets - image_offset - image data&lt;br /&gt;
** 2 octets - width&lt;br /&gt;
** 2 octets - height&lt;br /&gt;
** 4 octets - image_format&lt;br /&gt;
&lt;br /&gt;
* PALETTE_HEADER : (0x10)&lt;br /&gt;
** 4 octets - palette_offset - palette data&lt;br /&gt;
** 4 octets - palette_format&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 2 octets - color_count&lt;br /&gt;
** 2 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
image_offset et palette_offset sont souvent partagés par plusieurs textures - savoir ça permet de retrouver toutes les informations sur les images des textures (largeur, hauteur, format), ainsi que le format et le nombre de couleurs de la palette/tlut.&lt;br /&gt;
&lt;br /&gt;
Le format d&#039;image ne détermine pas le nombre total de couleurs de la palette qu&#039;elle utilisent. Par exemple, une image indexée sur 8 bits aurait un maximum de 256 couleurs mais seulement 136 ou 221 couleurs sont actuellement utilisées. De la sorte, la palette n&#039;utilisera pas la taille totale qu&#039;elle devrait utiliser.&lt;br /&gt;
&lt;br /&gt;
Les images suivent la structure généralement utilisée par la GameCube :&lt;br /&gt;
&lt;br /&gt;
IMAGE FORMATS :&lt;br /&gt;
* case 0: //i4&lt;br /&gt;
* case 1: //i8&lt;br /&gt;
* case 2: //i4a4&lt;br /&gt;
* case 3: //i8a8&lt;br /&gt;
* case 4: //r5g6b5&lt;br /&gt;
* case 5: //rgb5a3&lt;br /&gt;
* case 6: //r8g8b8a8&lt;br /&gt;
* case 8: //index4&lt;br /&gt;
* case 9: //index8&lt;br /&gt;
* case 0xa: //index14x2&lt;br /&gt;
* case 0xe: //s3tc1&lt;br /&gt;
&lt;br /&gt;
Les formats indexés utilisent aussi les informations de palettes/tlut et les données peuvent apparaître en plusieurs formats :&lt;br /&gt;
&lt;br /&gt;
PALETTE FORMATS :&lt;br /&gt;
* case 0: //ia8&lt;br /&gt;
* case 1: //r5g6b5&lt;br /&gt;
* case 2: //rgb5a3&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; &amp;quot;Joint Data - Accessing Geometry, Mesh, and Vertex Attributes&amp;quot; https://smashboards.com/threads/melee-dat-format.292603/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
trad a revoir à partir de là, il faut investiguer le rendu 3D sur GameCube pour mieux comprendre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* POBJ_DATA :&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - next_offset&lt;br /&gt;
** 4 octets - vertex_attr_array_offset - vertex attribute list&lt;br /&gt;
** 2 octets - Flags Inconnus&lt;br /&gt;
** 2 octets - display_list_size - number of 0x20 (32) byte blocks occupied by display list data&lt;br /&gt;
** 4 octets - display_list_offset - display list&lt;br /&gt;
** 4 octets - weight_list_offset - joint weight info&lt;br /&gt;
&lt;br /&gt;
Comme l&#039;indique next_offset, il s&#039;agit d&#039;une liste de meshs à afficher pour un material donné référencé par un dobj. POBJ_DATA contient les offsets de vertex attributes / display list / joint weight list ce qui suffit et permet d’interpréter et traiter les coordonnées de vertices, normals &amp;amp; textures.&lt;br /&gt;
&lt;br /&gt;
Les attributs vertex sont les plus important - les parametres specifiés contrôlent tout : du format, de la taille des données de chaque vertex, normal et coordonnées de textures et comment ces valeurs sont dimensionnées (scaled) par rapport à la présence et la taille de chaque valeur d&#039;index qui apparaît dans la display list information.&lt;br /&gt;
&lt;br /&gt;
// déclaration d&#039;un vertex et attribute information&lt;br /&gt;
// attr, type, cnt, data_type, flags?, file_offset&lt;br /&gt;
* ATTR_DATA&lt;br /&gt;
** 4 octets - GXAttr     vtx_attr_offset - attr&lt;br /&gt;
** 4 octets - GXAttrType vtx_attr_type   - index_type&lt;br /&gt;
** 4 octets - GXCompCnt  comp_cnt        - cnt&lt;br /&gt;
** 4 octets - GXCompType comp_type       - data_type	&lt;br /&gt;
** 1 octets - scale&lt;br /&gt;
** 1 octets - Inconnu&lt;br /&gt;
** 2 octets - vtx_stride&lt;br /&gt;
** 2 octets - data_offset&lt;br /&gt;
&lt;br /&gt;
vertex_attr_offset pointe sur une liste d&#039;attributs de vertex. Leur nombre n&#039;est pas donné. Les données dans cette structure suivent les informations et les types conçus par l&#039;architecture GameCube/WII et son API. La liste est terminée par une valeur spécifique de vtx_attr qui signale la fin de cette liste. Avec un accès à la doku SDK, il serait fortement conseillé de lire la section à propos des &amp;quot;vertex attributes and other specifications&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
La valeur de vtx_attr determine le type de donnée que cet attribut désigne et peut indiquer un nombre de types natifs utilisés utilisés pour passer les données entre les interfaces logicielles et matérielles.&lt;br /&gt;
&lt;br /&gt;
Les valeures possibles sont les suivantes :&lt;br /&gt;
* enum GXAttr (4 octets)&lt;br /&gt;
** GX_VA_PNMTXIDX = 0,    // position/normal matrix index&lt;br /&gt;
** GX_VA_TEX0MTXIDX,      // texture 0 matrix index&lt;br /&gt;
** GX_VA_TEX1MTXIDX,      // texture 1 matrix index&lt;br /&gt;
** GX_VA_TEX2MTXIDX,      // texture 2 matrix index&lt;br /&gt;
** GX_VA_TEX3MTXIDX,      // texture 3 matrix index&lt;br /&gt;
** GX_VA_TEX4MTXIDX,      // texture 4 matrix index&lt;br /&gt;
** GX_VA_TEX5MTXIDX,      // texture 5 matrix index&lt;br /&gt;
** GX_VA_TEX6MTXIDX,      // texture 6 matrix index&lt;br /&gt;
** GX_VA_TEX7MTXIDX,      // texture 7 matrix index&lt;br /&gt;
** GX_VA_POS      = 9,    // position&lt;br /&gt;
** GX_VA_NRM,             // normal&lt;br /&gt;
** GX_VA_CLR0,            // color 0&lt;br /&gt;
** GX_VA_CLR1,            // color 1&lt;br /&gt;
** GX_VA_TEX0,            // input texture coordinate 0&lt;br /&gt;
** GX_VA_TEX1,            // input texture coordinate 1&lt;br /&gt;
** GX_VA_TEX2,            // input texture coordinate 2&lt;br /&gt;
** GX_VA_TEX3,            // input texture coordinate 3&lt;br /&gt;
** GX_VA_TEX4,            // input texture coordinate 4&lt;br /&gt;
** GX_VA_TEX5,            // input texture coordinate 5&lt;br /&gt;
** GX_VA_TEX6,            // input texture coordinate 6&lt;br /&gt;
** GX_VA_TEX7,            // input texture coordinate 7&lt;br /&gt;
&lt;br /&gt;
** GX_POS_MTX_ARRAY,      // position matrix array pointer&lt;br /&gt;
** GX_NRM_MTX_ARRAY,      // normal matrix array pointer&lt;br /&gt;
** GX_TEX_MTX_ARRAY,      // texture matrix array pointer&lt;br /&gt;
** GX_LIGHT_ARRAY,        // light parameter array pointer&lt;br /&gt;
** GX_VA_NBT,             // normal, bi-normal, tangent &lt;br /&gt;
** GX_VA_MAX_ATTR,        // maximum number of vertex attributes&lt;br /&gt;
&lt;br /&gt;
** GX_VA_NULL     = 0xff  // NULL attribute (to mark end of lists)&lt;br /&gt;
&lt;br /&gt;
Toutes les données nécessaires pour représenter un mesh peuvent être spécifiées et indexées d&#039;une manière ou d&#039;une autre. De même, GX_VA_TEX0MTXIDX, GX_VA_CLR0, et autres sont aussi possibles - les valeurs les plus fréquentes dans les données SSBM sont : GX_VA_PNMTXIDX, GX_VA_POS, GX_VA_NRM, et GX_VA_TEX0. Which is to be expected as joint matrices, vertex positions/normals, and texture coordinates respectively are probably the most basic of elements needed to display a texture mesh, whether static or animated.&lt;br /&gt;
&lt;br /&gt;
When the value of vtx_attr == GX_VA_NULL (0xFF), the end of the vertex attribute array has been reached.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The vtx_attr_type values is actually associated with how the value is indexed, and can thus also determine the size of the index value within the display list data.&lt;br /&gt;
&lt;br /&gt;
* 4 octets - enum GXAttrType&lt;br /&gt;
** GX_NONE    = 0,&lt;br /&gt;
** GX_DIRECT,&lt;br /&gt;
** GX_INDEX8,&lt;br /&gt;
** GX_INDEX16&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Structures COLL_DATA : (données de collisions)&lt;br /&gt;
** 4 octets - vertex_offset (2 float par entrée correspondant à des données 2D probablement)&lt;br /&gt;
** 4 octets - vertex_count&lt;br /&gt;
** 4 octets - index_offset&lt;br /&gt;
** 4 octets - index_count&lt;br /&gt;
** 20 octets - tableau inconnu (x5)&lt;br /&gt;
*** 2 octets - index_start&lt;br /&gt;
*** 2 octets - index_count&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
** 4 octets - Inconnu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=460</id>
		<title>Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=460"/>
		<updated>2021-12-26T06:43:15Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Modèle Gotcha Force ==&lt;br /&gt;
&lt;br /&gt;
Les modèles Gotcha force fonctionnent comme ceux du jeu Smash Bros investigué par sa [https://smashboards.com/threads/melee-dat-format.292603/ communauté].&lt;br /&gt;
&lt;br /&gt;
Les modèles sont des fichiers HSD de la library Hal SysDolphin.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le header ce compose de la position du fichier HSD puis contient une location de suite de flags et la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
En 0x0 on retrouve l&#039;offset 0x100 menant au fichier HSD.&lt;br /&gt;
&lt;br /&gt;
En 0x4 on retrouve l&#039;offset 0x20 menant à la liste des flags des armatures. Flags qui sont &#039;&#039;&#039;Inconnu&#039;&#039;&#039; à ce jour. &lt;br /&gt;
Les flags sont en u8 pouvant aller de 00 à FF.&lt;br /&gt;
&lt;br /&gt;
En 0x8 on retrouve l&#039;offset 0xC0 menant à la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=459</id>
		<title>Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=459"/>
		<updated>2021-12-26T06:42:20Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Modèle Gotcha Force ==&lt;br /&gt;
&lt;br /&gt;
Les modèles Gotcha force fonctionnent comme ceux du jeu Smash Bros investigué par sa [https://smashboards.com/threads/melee-dat-format.292603/ communauté].&lt;br /&gt;
&lt;br /&gt;
Les modèles sont des fichiers HSD de la library Hal SysDolphin.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le header ce compose de la position du fichier HSD puis contient une location de suite de flags et la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
En 0x4 on retrouve l&#039;offset 0x20 menant à la liste des flags des armatures. Flags qui sont &#039;&#039;&#039;Inconnu&#039;&#039;&#039; à ce jour. &lt;br /&gt;
Les flags sont en u8 pouvant aller de 00 à FF.&lt;br /&gt;
&lt;br /&gt;
En 0x8 on retrouve l&#039;offset 0xC0 menant à la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=458</id>
		<title>Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Models&amp;diff=458"/>
		<updated>2021-12-26T06:41:21Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Modèle Gotcha Force ==&lt;br /&gt;
&lt;br /&gt;
Les modèles Gotcha force fonctionnent comme ceux du jeu Smash Bros investigué par sa [https://smashboards.com/threads/melee-dat-format.292603/ communauté].&lt;br /&gt;
&lt;br /&gt;
Les modèles sont des fichiers HSD de la library Hal SysDolphin.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le header ce compose de la position du fichier HSD puis contient une location de suite de flags et la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
En 0x4 on retrouve l&#039;offset 0x20 menant à la liste des flags des armatures. Flags qui sont &#039;&#039;&#039;Inconnu&#039;&#039;&#039; à ce jour. &lt;br /&gt;
Les flags sont en u8 pouvant aller de 00 à FF.&lt;br /&gt;
&lt;br /&gt;
En 0x8 on retrouve la liste des armatures.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=AFS_(File_format)&amp;diff=388</id>
		<title>AFS (File format)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=AFS_(File_format)&amp;diff=388"/>
		<updated>2021-12-12T10:07:32Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: Page créée avec « __toc__  == Format ==  == Nommage des fichiers == Fichiers compris dans afs_data.afs  : {| class=&amp;quot;wikitable&amp;quot; |- ! Nom ! Description |- | pl####.pzz | Décrit chaque borg (&amp;#039;&amp;#039;&amp;#039;Pl&amp;#039;&amp;#039;&amp;#039;ayer Character) |- | mnxxxx.tpl | Noms des borgs dans les &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;us (206) |- | st##.pzz  | Comprennent en position 1,2,3 les fichiers hitsxx.bin |- | firstld.pzz | Utilisation liée à la carte mémoire (&amp;#039;&amp;#039;&amp;#039;First l&amp;#039;&amp;#039;&amp;#039;oa&amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; - Image de la carte mémoire inclue dans le pzz) |- | ico... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__toc__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
== Nommage des fichiers ==&lt;br /&gt;
Fichiers compris dans afs_data.afs  :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et quelques autres borgs il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin (seul un des trois data est présent, jamais deux, et ce fichier data2 ou data3 est identique au fichier data du pzz-&amp;gt;000). (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC) (Mot - &#039;&#039;&#039;Mo&#039;&#039;&#039;uvemen&#039;&#039;&#039;t&#039;&#039;&#039;) - On peux observer que pour ces fichiers, on retrouve des références pouvant faire penser à de l&#039;animation &#039;&#039;&#039;plxxxx_xx_animjoint&#039;&#039;&#039;.  L&#039;investigation mené par la communauté de [https://smashboards.com/threads/melee-dat-format.292603/ Smash Bros Brawl] montre une structure de fichier similaire. Il s&#039;agit d&#039;une autre version de HSD (Les structures de bases sont les mêmes).&lt;br /&gt;
&lt;br /&gt;
Position 004 à 009 : contiennent &#039;&#039;&#039;&amp;quot;scene_data&amp;quot;&#039;&#039;&#039; en fin de section data, et sont des fichiers &#039;&#039;&#039;&#039;&amp;quot;Scène&amp;quot;&#039;&#039;&#039; (HSDLib) qui contiennent les lumières, les caméras, les vertices, les bones à la manière d&#039;un .blend.&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=374</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=374"/>
		<updated>2021-12-04T09:14:25Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D utilisé lors des combats.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D utilisé lors des combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats, peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
| Fichier compressé&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont Dolphin Emulator, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour chaque fichiers contenant &#039;&#039;&#039;&amp;quot;scene_data&amp;quot;&#039;&#039;&#039; en fin de section data, notamment les fichiers en positions 004 à 009 des plxxxx.pzz sont des fichiers &#039;&#039;&#039;&#039;&amp;quot;Scène&amp;quot;&#039;&#039;&#039; (HSDLib) qui contiennent les lumières, les caméras, les vertices, les bones à la manière d&#039;un .blend. L&#039;investigation mené par la communauté de [https://smashboards.com/threads/melee-dat-format.292603/ Smash Bros Brawl] montrent une certaines similarité avec les fichiers. Pour autant il semble que pour chaque jeux, la librairie HSD diffère sans pour autant être trop différente (Les structures de bases ne sont pas changées).&lt;br /&gt;
&lt;br /&gt;
plxxxxmot.dat : (Mot - &#039;&#039;&#039;Mo&#039;&#039;&#039;uvemen&#039;&#039;&#039;t&#039;&#039;&#039;) - On peux observer que pour ces fichiers, on retrouve des références pouvant faire penser à de l&#039;animation &#039;&#039;&#039;plxxxx_xx_animjoint&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=372</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=372"/>
		<updated>2021-12-04T09:05:46Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D utilisé lors des combats.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D utilisé lors des combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats, peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
| Fichier compressé&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont Dolphin Emulator, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour chaque fichiers contenant &#039;&#039;&#039;&amp;quot;scene_data&amp;quot;&#039;&#039;&#039; en fin de section data, notamment les fichiers en positions 004 à 009 des plxxxx.pzz sont des fichiers &#039;&#039;&#039;&#039;&amp;quot;Scène&amp;quot;&#039;&#039;&#039; (HSDLib) qui contient les lumières, les caméras, les vertices, les bones à la manière d&#039;un .blend.&lt;br /&gt;
&lt;br /&gt;
plxxxxmot.dat : (Mot - &#039;&#039;&#039;Mo&#039;&#039;&#039;uvemen&#039;&#039;&#039;t&#039;&#039;&#039;) - On peux observer que pour ses fichiers, on retrouve des références pouvant faire penser à de l&#039;animation &#039;&#039;&#039;plxxxx_xx_animjoint&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=365</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=365"/>
		<updated>2021-12-03T22:00:14Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats ou peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
| Fichier compressé&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour chaque fichiers contenant &#039;&#039;&#039;&amp;quot;scene_data&amp;quot;&#039;&#039;&#039; en fin de section data, notamment les fichiers en positions 004 à 009 des plxxxx.pzz sont des fichiers &#039;&#039;&#039;&#039;&amp;quot;Scène&amp;quot;&#039;&#039;&#039; qui contient les lumières, les caméras, les vertices, les bones à la manière d&#039;un .blend.&lt;br /&gt;
&lt;br /&gt;
plxxxxmot.dat : (Mot - &#039;&#039;&#039;Mo&#039;&#039;&#039;uvemen&#039;&#039;&#039;t&#039;&#039;&#039;) - On peux observer que pour ses fichiers, on retrouve des références pouvant faire penser à de l&#039;animation &#039;&#039;&#039;plxxxx_xx_animjoint&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=362</id>
		<title>PZZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=362"/>
		<updated>2021-12-02T09:34:05Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Logiciel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers PZZ de Gotcha Force. Voir [[PZZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Les fichiers&amp;amp;nbsp;&#039;&#039;&#039;PZZ&#039;&#039;&#039; sont des dossiers d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Les PZZ se composent d&#039;un header de 2048 octets, soit 0x800 octets. A la suite de ce header se trouvent les fichiers inscrit les uns à la suite des autres. Ces fichiers peuvent être compressés ou non.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le premier champ du header est un uint32 big endian contenant le nombre de fichiers total de l&#039;archive. On retrouve après une suite de taille variable de descripteurs de fichiers au format uint32 big endian. Chaque fichier est paddé avec des &amp;quot;\x00&amp;quot; pour avoir une taille multiple de 0x800.&lt;br /&gt;
&lt;br /&gt;
==== Format descripteur de fichier ====&lt;br /&gt;
&lt;br /&gt;
Si on numérote les bits d&#039;un descripteur de fichier de 0 (poids faible) à 31 (poids fort) :&lt;br /&gt;
&lt;br /&gt;
* bit 31 - inutilisé,&lt;br /&gt;
* bit 30 - Flag de compression : est à 1 si le fichier est compressé, 0 sinon,&lt;br /&gt;
* bit 0 à 29 (30 bits) - taille du fichier divisée par 2048 (0x800),&lt;br /&gt;
taille_fichier (octets) = (descripteur_fichier &amp;amp; 0x3FFFFFFF) * 0x800&amp;lt;br&amp;gt;&lt;br /&gt;
bCompression = descripteur_fichier &amp;amp; 0x40000000&lt;br /&gt;
&lt;br /&gt;
Pour mieux comprendre le format du descripteur de fichier, voici un exemple :&lt;br /&gt;
&lt;br /&gt;
Le premier fichier de l&#039;archive fait 12288 octets et il est compressé, son descripteur est alors (12288/0x800)+0x40000000 = 0x40000006. On le stockera dans l&#039;entête en big endian (40 00 00 06) juste à la suite du nombre de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le descripteur de fichier peut décrire un fichier vide. Il correspondra alors à &amp;quot;00 00 00 00&amp;quot; mais sera compté dans le nombre de fichier au début du header.&lt;br /&gt;
&lt;br /&gt;
==== Padding des fichiers ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Lors ce que le fichier à extraire du pzz n&#039;est pas compressé, on a alors un padding présent à sa fin. Il devient alors impossible de déterminer quel padding enlever précisément. En effet, le fichier peut se terminer par des &amp;quot;00&amp;quot;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algorithme de compression ===&lt;br /&gt;
L&#039;algorithme de compression reste à déterminer.&lt;br /&gt;
=== Observations ===&lt;br /&gt;
==== Fichiers et compression ====&lt;br /&gt;
Tous les fichiers stxx.pzz -&amp;gt; 000 sont packés non compressés ainsi que les fichiers firstld.pzz -&amp;gt; 000, 001, 002 et 005. Les autres fichiers des pzz sont tous packés compressés.&lt;br /&gt;
&lt;br /&gt;
On retrouve des fichiers vides dans les plxxxx.pzz en position 001 et 003 et dans les 2 dpxxxx.pzz en position 001.&lt;br /&gt;
&lt;br /&gt;
==== Fichiers plxxxx.pzz (209) ====&lt;br /&gt;
On sait désormais que les PZZ avec le nom plxxxx.pzz correspondent chacun à un borg. Ils contiennent des fichiers spécialisés à chacune des positions dans le pzz. Il arrive que le fichier à une position donnée soit présent dans certains pzz et absent dans d&#039;autres :&lt;br /&gt;
&lt;br /&gt;
* 000 fichier data.bin  -&amp;gt; parfois absent, identique à plxxxxdata.bin (ou data2, data3) dans l&#039;afs_data&lt;br /&gt;
* 001 ?&lt;br /&gt;
* 002 fichier hit.bin   -&amp;gt; toujours présent, et identique à plxxxxhit.bin dans l&#039;afs_data&lt;br /&gt;
* 003 fichier mot.bin   -&amp;gt; souvent absent, identique à plxxxxmot.bin dans l&#039;afs_data&lt;br /&gt;
* 004 fichier _mdl.arc  -&amp;gt; parfois absent, identique à plxxxx_mdl.arc dans l&#039;afs_data&lt;br /&gt;
* 005 fichier b_mdl.arc -&amp;gt; parfois absent, identique à plxxxxb_mdl.arc dans l&#039;afs_data&lt;br /&gt;
* 006 fichier g_mdl.arc -&amp;gt; parfois absent, identique à plxxxxg_mdl.arc dans l&#039;afs_data&lt;br /&gt;
* 007 fichier s_mdl.arc -&amp;gt; parfois absent, identique à plxxxxs_mdl.arc dans l&#039;afs_data&lt;br /&gt;
* 008 fichier c_mdl.arc -&amp;gt; parfois absent, identique à plxxxxc_mdl.arc dans l&#039;afs_data&lt;br /&gt;
* 009 fichier k_mdl.arc -&amp;gt; parfois absent, identique à plxxxxk_mdl.arc dans l&#039;afs_data&lt;br /&gt;
* 010 [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg en japonais&lt;br /&gt;
* 011 [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg en japonais (petit format)&lt;br /&gt;
* 012 [[TPL (Format de fichier)|TPL]] -&amp;gt; nom du borg dans la langue du jeu&lt;br /&gt;
* 013 [[TPL (Format de fichier)|TPL]] -&amp;gt; identique à mnxxxx.tpl, nom du borg dans la langue du jeu (petit format)&lt;br /&gt;
&lt;br /&gt;
Les [[TPL (Format de fichier)|TPL]] contiennent le nom des borgs en japonais (version JAP) ou en anglais et japonais (version NTSC). En position 4 à 8, on retrouve des fichiers avec des valeurs correspondantes à de la 3D. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0300.pzz&#039;&#039;&#039;&amp;quot; ou les position 4 à 8 ont un header &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;avec des flags&amp;lt;/span&amp;gt; ainsi qu&#039;un padding ajustable si besoin est d&#039;avoir plus d’éléments &#039;&#039;&#039;Par exemple pour &#039;&#039;pl0629.pzz&#039;&#039; la quantité &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;de flags&amp;lt;/span&amp;gt; dans le headers est plus conséquente.&#039;&#039;&#039; L&#039;origine &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;des flags&amp;lt;/span&amp;gt; et des valeurs dans le header est pour l&#039;instant inconnue mais ces champs du header &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;pourraient constituer une liste de mesh disponibles dans le fichier.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;pl0f07.pzz&#039;&#039;&#039;&amp;quot; correspond à un borg non implémenté&lt;br /&gt;
&lt;br /&gt;
==== Fichiers stxx.pzz (40) ====&lt;br /&gt;
* 001 -&amp;gt; fichier identique dans les fichiers hitxxx.bin&lt;br /&gt;
* 002 -&amp;gt; fichier identique dans les fichiers hitxxx.bin&lt;br /&gt;
* 003 -&amp;gt; fichier identique dans les fichiers hitxxx.bin&lt;br /&gt;
* 004 -&amp;gt; ?&lt;br /&gt;
&lt;br /&gt;
Une même position peux correspondre à plusieurs fichiers hitxxx.bin à la fois. En effet, les fichiers hitxxx.bin peuvent être identiques les uns des autres.&lt;br /&gt;
&lt;br /&gt;
Les fichiers hits commencent par le magic number &amp;quot;STIH&amp;quot; soit HITS en big endian.&lt;br /&gt;
&lt;br /&gt;
==== Fichier gets.pzz ====&lt;br /&gt;
* 000 -&amp;gt; ?&lt;br /&gt;
* 001 -&amp;gt; ?&lt;br /&gt;
* 002 -&amp;gt; ?&lt;br /&gt;
* 003 -&amp;gt; ?&lt;br /&gt;
* 004 -&amp;gt; ?&lt;br /&gt;
* 005 -&amp;gt; ?&lt;br /&gt;
* 006 -&amp;gt; ?&lt;br /&gt;
* 007 -&amp;gt; ?&lt;br /&gt;
* 008 -&amp;gt; hit000.bin de l&#039;afs_data&lt;br /&gt;
* 009 -&amp;gt; hit001.bin de l&#039;afs_data&lt;br /&gt;
* 010 -&amp;gt; hit002.bin de l&#039;afs_data&lt;br /&gt;
&lt;br /&gt;
=== Fichier firstld.pzz ===&lt;br /&gt;
* 000 -&amp;gt; snd_com04.tsb (problème de padding car le fichier est unpack en &amp;quot;U&amp;quot;)&lt;br /&gt;
* 001 -&amp;gt; snd_com04.chd (problème de padding car le fichier est unpack en &amp;quot;U&amp;quot;)&lt;br /&gt;
* 002 -&amp;gt; ?&lt;br /&gt;
* 003 -&amp;gt; icon.bin de l&#039;afs_data&lt;br /&gt;
* 004 -&amp;gt; ?&lt;br /&gt;
* 005 -&amp;gt; mc_msg00.mdt de l&#039;afs_data (à implémenter dans pzztool.py)&lt;br /&gt;
* 006 -&amp;gt; as_icon.tpl de l&#039;afs_data (à implémenter dans pzztool.py)&lt;br /&gt;
&lt;br /&gt;
=== Fichier efct.tpl ===&lt;br /&gt;
* 000 -&amp;gt; efct00.tpl de l&#039;afs_data&lt;br /&gt;
* 001 -&amp;gt; efct00_mdl.arc de l&#039;afs_data&lt;br /&gt;
* 002 -&amp;gt; efct01_mdl.arc de l&#039;afs_data&lt;br /&gt;
&lt;br /&gt;
=== Fichiers dpxxxx.pzz (2) ===&lt;br /&gt;
* 000 -&amp;gt; plxxxxdata.bin de l&#039;afs_data&lt;br /&gt;
* 001 -&amp;gt; fichier vide&lt;br /&gt;
* 002 -&amp;gt; plxxxxhit.bin de l&#039;afs_data&lt;br /&gt;
* 003 -&amp;gt; plxxxxmot.bin de l&#039;afs_data&lt;br /&gt;
* 004 -&amp;gt; plxxxx_mdl.arc&lt;br /&gt;
* 005 -&amp;gt; plxxxxb_mdl.arc&lt;br /&gt;
* 006 -&amp;gt; plxxxxg_mdl.arc&lt;br /&gt;
* 007 -&amp;gt; plxxxxs_mdl.arc&lt;br /&gt;
* 008 -&amp;gt; plxxxxc_mdl.arc&lt;br /&gt;
* 009 -&amp;gt; plxxxxk_mdl.arc&lt;br /&gt;
&lt;br /&gt;
=== Fichier cmn_data.pzz ===&lt;br /&gt;
* 000 -&amp;gt; comhit.bin (à implémenter dans pzztool.py)&lt;br /&gt;
* 001 -&amp;gt; comhit2.bin (à implémenter dans pzztool.py)&lt;br /&gt;
* 002 -&amp;gt; dm0000mot.bin (à implémenter dans pzztool.py)&lt;br /&gt;
* 003 -&amp;gt; plcmndata.bin (à implémenter dans pzztool.py)&lt;br /&gt;
&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Virtual World RE a développé le script python [https://github.com/Virtual-World-RE/NeoGF pzztool.py] permettant de manipuler les archives PZZ et leurs fichiers internes, en s&#039;inspirant [https://github.com/infval/pzzcompressor_jojo d&#039;un script de manipulation pzz de PS2].&lt;br /&gt;
&lt;br /&gt;
Les logiciels utilisé pour lire les fichiers en position 4 à 9 dans les plxxxx.pzz sont 3D Model Researcher et HSDRawLibrary.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARZ_(Gotcha_Force)&amp;diff=361</id>
		<title>ARZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARZ_(Gotcha_Force)&amp;diff=361"/>
		<updated>2021-12-02T09:31:58Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARZ de Gotcha Force. Voir [[ARZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__toc__ &lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
La taille en octets des fichiers arz est un multiple de 2. (PGCD des tailles d&#039;arz = 2)&lt;br /&gt;
&lt;br /&gt;
Tout les fichiers arz sont compressé de la même manière que les fichiers compressé contenu dans les plxxxx.pzz. Notamment pour les itxxxx_mdl.arz, ses fichiers une fois décompressé on peux retrouver les modèles des data crytal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unknown(1).png|frameless|center|500px]] [[Fichier:Unknowns(1).png|vignette|center|Data Crystal. [https://gotchaforce.fandom.com/wiki/Data_Crystals Source]]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Les logiciels utilisé sont 3D Model Researcher et HSDRawLibrary.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARZ_(Gotcha_Force)&amp;diff=360</id>
		<title>ARZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARZ_(Gotcha_Force)&amp;diff=360"/>
		<updated>2021-12-02T09:31:21Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARZ de Gotcha Force. Voir [[ARZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__toc__ &lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Tout les fichiers arz sont compressé de la même manière que les fichiers compressé contenu dans les plxxxx.pzz. Notamment pour les itxxxx_mdl.arz, ses fichiers une fois décompressé on peux retrouver les modèles des data crytal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unknown(1).png|frameless|center|500px]] [[Fichier:Unknowns(1).png|vignette|center|Data Crystal. [https://gotchaforce.fandom.com/wiki/Data_Crystals Source]]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Les logiciels utilisé sont 3D Model Researcher et HSDRawLibrary.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La taille en octets des fichiers arz est un multiple de 2. (PGCD des tailles d&#039;arz = 2)&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ARZ_(Gotcha_Force)&amp;diff=359</id>
		<title>ARZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ARZ_(Gotcha_Force)&amp;diff=359"/>
		<updated>2021-12-01T00:13:05Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers ARZ de Gotcha Force. Voir [[ARZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__toc__ &lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Tout les fichiers arz sont compressé de la même manière que les fichiers compressé contenu dans les plxxxx.pzz. Notamment pour les itxxxx_mdl.arz, ses fichiers une fois décompressé on peux retrouver les modèles des data crytal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unknown(1).png|frameless|center|500px]] [[Fichier:Unknowns(1).png|vignette|center|Data Crystal. [https://gotchaforce.fandom.com/wiki/Data_Crystals Source]]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La taille en octets des fichiers arz est un multiple de 2. (PGCD des tailles d&#039;arz = 2)&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=File:Unknowns(1).png&amp;diff=358</id>
		<title>File:Unknowns(1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=File:Unknowns(1).png&amp;diff=358"/>
		<updated>2021-12-01T00:08:48Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://gotchaforce.fandom.com/wiki/Data_Crystals&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=File:Unknown(1).png&amp;diff=357</id>
		<title>File:Unknown(1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=File:Unknown(1).png&amp;diff=357"/>
		<updated>2021-11-30T23:50:18Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Itxxxx_mdl.dat - model researcher&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=356</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=356"/>
		<updated>2021-11-30T23:44:11Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats ou peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
| Fichier compressé&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
plxxxxmot.dat : (Mot - &#039;&#039;&#039;Mo&#039;&#039;&#039;uvemen&#039;&#039;&#039;t&#039;&#039;&#039;) - On peux observer que pour ses fichiers, on retrouve des références pouvant faire penser à de l&#039;animation &#039;&#039;&#039;plxxxx_xx_animjoint&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=355</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=355"/>
		<updated>2021-11-30T22:36:24Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Formats de fichiers du jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats ou peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
| Fichier compressé&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=354</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=354"/>
		<updated>2021-11-29T13:52:40Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Nommage des fichiers dans afs_data.afs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats ou peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nom&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| pl####.pzz&lt;br /&gt;
| Décrit chaque borg (&#039;&#039;&#039;Pl&#039;&#039;&#039;ayer Character)&lt;br /&gt;
|-&lt;br /&gt;
| mnxxxx.tpl&lt;br /&gt;
| Noms des borgs dans les &#039;&#039;&#039;M&#039;&#039;&#039;e&#039;&#039;&#039;n&#039;&#039;&#039;us (206)&lt;br /&gt;
|-&lt;br /&gt;
| st##.pzz &lt;br /&gt;
| Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
|-&lt;br /&gt;
| firstld.pzz&lt;br /&gt;
| Utilisation liée à la carte mémoire (&#039;&#039;&#039;First l&#039;&#039;&#039;oa&#039;&#039;&#039;d&#039;&#039;&#039; - Image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
|-&lt;br /&gt;
| icon.bin&lt;br /&gt;
| Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
|-&lt;br /&gt;
| facexxxx&lt;br /&gt;
| Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
|-&lt;br /&gt;
| itxxxx_mdl.arz&lt;br /&gt;
| (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
|-&lt;br /&gt;
| setxxxx.arc&lt;br /&gt;
! (61 fichiers) ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=353</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=353"/>
		<updated>2021-11-28T19:52:25Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Nommage des fichiers dans afs_data.afs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats ou peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
 &#039;&#039;&#039;pl####.pzz&#039;&#039;&#039; - Décrit chaque borg&lt;br /&gt;
 &#039;&#039;&#039;mnxxxx.tpl&#039;&#039;&#039; - Noms des borgs (206)&lt;br /&gt;
 &#039;&#039;&#039;st##.pzz&#039;&#039;&#039; - Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
 &#039;&#039;&#039;firstld.pzz&#039;&#039;&#039; - Utilisation liée à la carte mémoire (First load - image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
 &#039;&#039;&#039;facexxxx&#039;&#039;&#039; - Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
 &#039;&#039;&#039;itxxxx_mdl.arz&#039;&#039;&#039; - (90 fichiers) - &#039;&#039;&#039;It&#039;&#039;&#039;em Data Crystal -&amp;gt; le numéro xxxx correspond à chaque fois à un borg qui demande plusieurs Data Crystal&lt;br /&gt;
 &#039;&#039;&#039;setxxxx.arc&#039;&#039;&#039; - (61 fichiers) ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=351</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=351"/>
		<updated>2021-11-28T13:43:24Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Termes du jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| NPC&lt;br /&gt;
| Personnage servant à vous aider lors de combats ou peuvent être vos ennemis.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
 &#039;&#039;&#039;pl####.pzz&#039;&#039;&#039; - Décrit chaque borg&lt;br /&gt;
 &#039;&#039;&#039;mnxxxx.tpl&#039;&#039;&#039; - Noms des borgs (206)&lt;br /&gt;
 &#039;&#039;&#039;st##.pzz&#039;&#039;&#039; - Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
 &#039;&#039;&#039;firstld.pzz&#039;&#039;&#039; - Utilisation liée à la carte mémoire (First load - image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
 &#039;&#039;&#039;facexxxx&#039;&#039;&#039; - Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
 &#039;&#039;&#039;itlxxxx_mdl.arz&#039;&#039;&#039; - (90 fichiers) ?&lt;br /&gt;
 &#039;&#039;&#039;setxxxx.arc&#039;&#039;&#039; - (61 fichiers) ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=350</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=350"/>
		<updated>2021-11-28T13:42:53Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Nommage des fichiers dans afs_data.afs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| Ally&lt;br /&gt;
| Personnage servant à vous aider lors de combats.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
 &#039;&#039;&#039;pl####.pzz&#039;&#039;&#039; - Décrit chaque borg&lt;br /&gt;
 &#039;&#039;&#039;mnxxxx.tpl&#039;&#039;&#039; - Noms des borgs (206)&lt;br /&gt;
 &#039;&#039;&#039;st##.pzz&#039;&#039;&#039; - Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
 &#039;&#039;&#039;firstld.pzz&#039;&#039;&#039; - Utilisation liée à la carte mémoire (First load - image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
 &#039;&#039;&#039;facexxxx&#039;&#039;&#039; - Décrivent les NPC du jeu et les prop utilisé lors de la touche spécial&lt;br /&gt;
 &#039;&#039;&#039;itlxxxx_mdl.arz&#039;&#039;&#039; - (90 fichiers) ?&lt;br /&gt;
 &#039;&#039;&#039;setxxxx.arc&#039;&#039;&#039; - (61 fichiers) ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=348</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=348"/>
		<updated>2021-11-28T13:29:04Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
|-&lt;br /&gt;
| Ally&lt;br /&gt;
| Personnage servant à vous aider lors de combats.&lt;br /&gt;
|-&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
|-&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
 &#039;&#039;&#039;pl####.pzz&#039;&#039;&#039; - Décrit chaque borg&lt;br /&gt;
 &#039;&#039;&#039;mnxxxx.tpl&#039;&#039;&#039; - Noms des borgs (206)&lt;br /&gt;
 &#039;&#039;&#039;st##.pzz&#039;&#039;&#039; - Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
 &#039;&#039;&#039;firstld.pzz&#039;&#039;&#039; - Utilisation liée à la carte mémoire (First load - image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
 &#039;&#039;&#039;facexxxx&#039;&#039;&#039; - semblent décrire les npc du jeu&lt;br /&gt;
 &#039;&#039;&#039;itlxxxx_mdl.arz&#039;&#039;&#039; - (90 fichiers) ?&lt;br /&gt;
 &#039;&#039;&#039;setxxxx.arc&#039;&#039;&#039; - (61 fichiers) ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=347</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=347"/>
		<updated>2021-11-28T13:28:41Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Termes du jeu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Terme&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Borg&lt;br /&gt;
| Élément 3D pouvant être utilisé en combat.&lt;br /&gt;
|-&lt;br /&gt;
| Stage&lt;br /&gt;
| Terrain 3D pouvant être utilisé pour les combats.&lt;br /&gt;
|-&lt;br /&gt;
| Data Crystal&lt;br /&gt;
| Élément 3D pouvant être visionné via l&#039;inventaire et forme un borg une fois le nombre de Crytal différents atteints.&lt;br /&gt;
| -&lt;br /&gt;
| Ally&lt;br /&gt;
| Personnage servant à vous aider lors de combats.&lt;br /&gt;
| -&lt;br /&gt;
| Gotcha Box&lt;br /&gt;
| Boite servant à stocker des borgs.&lt;br /&gt;
| -&lt;br /&gt;
| WareHouse&lt;br /&gt;
| Élément du jeu servant à stocker les borgs une fois la Gotcha Box pleine. (Les borgs ne peuvent pas être utilisé).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
Fichiers compris :&lt;br /&gt;
 &#039;&#039;&#039;pl####.pzz&#039;&#039;&#039; - Décrit chaque borg&lt;br /&gt;
 &#039;&#039;&#039;mnxxxx.tpl&#039;&#039;&#039; - Noms des borgs (206)&lt;br /&gt;
 &#039;&#039;&#039;st##.pzz&#039;&#039;&#039; - Comprennent en position 1,2,3 les fichiers hitsxx.bin&lt;br /&gt;
 &#039;&#039;&#039;firstld.pzz&#039;&#039;&#039; - Utilisation liée à la carte mémoire (First load - image de la carte mémoire inclue dans le pzz)&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - Identique à firstld\003C_firstldicon.bin - Icone 3D pour l&#039;image de la carte mémoire&lt;br /&gt;
 &#039;&#039;&#039;facexxxx&#039;&#039;&#039; - semblent décrire les npc du jeu&lt;br /&gt;
 &#039;&#039;&#039;itlxxxx_mdl.arz&#039;&#039;&#039; - (90 fichiers) ?&lt;br /&gt;
 &#039;&#039;&#039;setxxxx.arc&#039;&#039;&#039; - (61 fichiers) ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
&lt;br /&gt;
Fichiers absents :&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes)&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data)&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models)&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models)&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxdata.bin  &amp;lt;- position 0 du pzz (fichier pouvant être nommé data2 ou data3, parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxhit.bin   &amp;lt;- position 2 du pzz (toujours présent dans l&#039;afs_data et le pzz)&lt;br /&gt;
 plxxxxmot.bin   &amp;lt;- position 3 du pzz (souvent absent de l&#039;afs_data)&lt;br /&gt;
 plxxxx_mdl.arc  &amp;lt;- position 4 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz (parfois absent de l&#039;afs_data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Position 000 : pour pl0604 et certains fichiers il s&#039;agit de pl0604data2.bin ou plxxxxdata3.bin. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 002 : pour le borg pl0507 et pl0513, le fichier 2 et le hit diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
Position 003 : pour le borg &amp;quot;pl0009&amp;quot;, le fichier 3 et le mot diffèrent. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=304</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=304"/>
		<updated>2021-11-27T22:53:13Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx_mdl.arc &amp;lt;- position 4 du pzz ?&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxmot.bin &amp;lt;- position 3 du pzz&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz ?&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz ?&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz ?&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz ?&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz ?&lt;br /&gt;
 plxxxxhit.bin &amp;lt;- position 2 du pzz&lt;br /&gt;
 plxxxxdata.bin &amp;lt;- position 0 du pzz&lt;br /&gt;
&lt;br /&gt;
Ces fichiers ne sont pas toujours tous présents. On trouve pour certains plxxxx le fichier plxxxxdata2.bin ou encore plxxxxdata3.bin.&lt;br /&gt;
&lt;br /&gt;
Pour chaque mdl correspondant à leurs position dans le pzz, lors de la décompression, les fichiers décompressé sont différent à la toute fin du fichier ou l&#039;on retrouve dans le mdl original &#039;&#039;&#039;0x746100&#039;&#039;&#039; il semblerai que la décompression n&#039;enlève pas les derniers 0x00 et on ce retrouve avec &#039;&#039;&#039;0x74610000&#039;&#039;&#039; dans les fichiers dat, ce qui augmente de 1 octet la taille du fichier mais ne change en rien le contenu qui reste le même que l&#039;original.&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 3) on retrouve soit un fichier &amp;quot;plxxxxmot.bin&amp;quot; correspondant identique dans l&#039;afs_data, soit pas de fichier &amp;quot;plxxxxmot.bin&amp;quot;, excepté pour le borg &amp;quot;pl0009&amp;quot; pour qui le fichier 3 et le mot diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=303</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=303"/>
		<updated>2021-11-27T21:51:14Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx_mdl.arc &amp;lt;- position 4 du pzz&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxmot.bin &amp;lt;- position 3 du pzz&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz&lt;br /&gt;
 plxxxxhit.bin &amp;lt;- position 2 du pzz&lt;br /&gt;
 plxxxxdata.bin &amp;lt;- position 0 du pzz&lt;br /&gt;
&lt;br /&gt;
Ces fichiers ne sont pas toujours tous présents. On trouve pour certains plxxxx le fichier plxxxxdata2.bin ou encore plxxxxdata3.bin.&lt;br /&gt;
&lt;br /&gt;
Pour chaque mdl correspondant à leurs position dans le pzz, lors de la décompression, les fichiers décompressé sont différent à la toute fin du fichier ou l&#039;on retrouve dans le mdl original &#039;&#039;&#039;0x746100&#039;&#039;&#039; il semblerai que la décompression n&#039;enlève pas les derniers 0x00 et on ce retrouve avec &#039;&#039;&#039;0x74610000&#039;&#039;&#039; dans les fichiers dat, ce qui augmente de 1 octet la taille du fichier mais ne change en rien le contenu qui reste le même que l&#039;original.&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 3) on retrouve soit un fichier &amp;quot;plxxxxmot.bin&amp;quot; correspondant identique dans l&#039;afs_data, soit pas de fichier &amp;quot;plxxxxmot.bin&amp;quot;, excepté pour le borg &amp;quot;pl0009&amp;quot; pour qui le fichier 3 et le mot diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=302</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=302"/>
		<updated>2021-11-27T21:49:39Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx_mdl.arc &amp;lt;- position 4 du pzz&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxmot.bin &amp;lt;- position 3 du pzz&lt;br /&gt;
 plxxxxb_mdl.arc &amp;lt;- position 5 du pzz&lt;br /&gt;
 plxxxxc_mdl.arc &amp;lt;- position 8 du pzz&lt;br /&gt;
 plxxxxg_mdl.arc &amp;lt;- position 6 du pzz&lt;br /&gt;
 plxxxxk_mdl.arc &amp;lt;- position 9 du pzz&lt;br /&gt;
 plxxxxs_mdl.arc &amp;lt;- position 7 du pzz&lt;br /&gt;
 plxxxxhit.bin &amp;lt;- position 2 du pzz&lt;br /&gt;
 plxxxxdata.bin &amp;lt;- position 0 du pzz&lt;br /&gt;
&lt;br /&gt;
Ces fichiers ne sont pas toujours tous présents. On trouve pour certains plxxxx le fichier plxxxxdata2.bin ou encore plxxxxdata3.bin.&lt;br /&gt;
&lt;br /&gt;
Pour chaque mdl correspondant à leurs position dans le pzz, lors de la décompression, les fichiers décompressé sont différent à la toute fin du fichier ou l&#039;on retrouve dans le mdl original &#039;&#039;&#039;0x746100&#039;&#039;&#039; il semblerai que la décompression n&#039;enlève pas les derniers 0x00 et on ce retrouve avec &#039;&#039;&#039;0x74610000&#039;&#039;&#039; dans les fichiers dat.&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 3) on retrouve soit un fichier &amp;quot;plxxxxmot.bin&amp;quot; correspondant identique dans l&#039;afs_data, soit pas de fichier &amp;quot;plxxxxmot.bin&amp;quot;, excepté pour le borg &amp;quot;pl0009&amp;quot; pour qui le fichier 3 et le mot diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=MediaWiki:Sidebar&amp;diff=293</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=MediaWiki:Sidebar&amp;diff=293"/>
		<updated>2021-11-27T18:41:14Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: Page créée avec «  * navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage * SEARCH * TOOLBOX * LANGUAGES »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=291</id>
		<title>PZZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=291"/>
		<updated>2021-11-27T18:23:32Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers PZZ de Gotcha Force. Voir [[PZZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Les fichiers&amp;amp;nbsp;&#039;&#039;&#039;PZZ&#039;&#039;&#039; sont des dossiers d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Les PZZ se composent d&#039;un header de 2048 octets, soit 0x800 octets. A la suite de ce header se trouvent les fichiers inscrit les uns à la suite des autres. Ces fichiers peuvent être compressés ou non.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le premier champ du header est un uint32 big endian contenant le nombre de fichiers total de l&#039;archive. On retrouve après une suite de taille variable de descripteurs de fichiers au format uint32 big endian. Chaque fichier est paddé avec des &amp;quot;\x00&amp;quot; pour avoir une taille multiple de 0x800.&lt;br /&gt;
&lt;br /&gt;
==== Format descripteur de fichier ====&lt;br /&gt;
&lt;br /&gt;
Si on numérote les bits d&#039;un descripteur de fichier de 0 (poids faible) à 31 (poids fort) :&lt;br /&gt;
&lt;br /&gt;
* bit 31 - inutilisé,&lt;br /&gt;
* bit 30 - Flag de compression : est à 1 si le fichier est compressé, 0 sinon,&lt;br /&gt;
* bit 0 à 29 (30 bits) - taille du fichier divisée par 2048 (0x800),&lt;br /&gt;
taille_fichier (octets) = (descripteur_fichier &amp;amp; 0x3FFFFFFF) * 0x800&amp;lt;br&amp;gt;&lt;br /&gt;
bCompression = descripteur_fichier &amp;amp; 0x40000000&lt;br /&gt;
&lt;br /&gt;
Pour mieux comprendre le format du descripteur de fichier, voici un exemple :&lt;br /&gt;
&lt;br /&gt;
Le premier fichier de l&#039;archive fait 12288 octets et il est compressé, son descripteur est alors (12288/0x800)+0x40000000 = 0x40000006. On le stockera dans l&#039;entête en big endian (40 00 00 06) juste à la suite du nombre de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le descripteur de fichier peut décrire un fichier vide. Il correspondra alors à &amp;quot;00 00 00 00&amp;quot; mais sera compté dans le nombre de fichier au début du header.&lt;br /&gt;
&lt;br /&gt;
==== Padding des fichiers ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;La question, c&#039;est de savoir s&#039;il faut enlever le padding des fichiers avec un flag de compression = 0, lorsqu&#039;on les extrait du pzz.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algorithme de compression ===&lt;br /&gt;
L&#039;algorithme de compression reste à déterminer.&lt;br /&gt;
=== Observations ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers PZZ contiennent entre autres des fichiers [[TPL (Format de fichier)|TPL]] affichant le nom des borgs dans différentes langues (version PAL), ou encore le nom des borgs en japonais (version JAP) ou en anglais (version NTSC).&lt;br /&gt;
&lt;br /&gt;
Dans les fichiers contenus dans les PZZ allant généralement position 4 à 8, on retrouve des fichiers avec des valeurs correspondantes à de la 3D. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0300.pzz&#039;&#039;&#039;&amp;quot; qui possède des fichiers avec un header qui semble représenter un magic file, des flags ainsi qu&#039;un padding ajustable si besoin est d&#039;avoir plus d’éléments &#039;&#039;&#039;Par exemple pour &#039;&#039;pl0629.pzz&#039;&#039; la quantité de flags dans le headers est plus conséquente.&#039;&#039;&#039; L&#039;origine des flags et des valeurs dans le header est pour l&#039;instant inconnu mais &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;pourrai constituer une liste de mesh disponible dans le fichier.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Dans le header des PZZ, on retrouve parfois des file_descriptor=NULL. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0f07.pzz&#039;&#039;&#039;&amp;quot; qui a un header se terminant par plusieurs descripteurs de fichiers NULL :&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 1 : On a une librairie parsant les PZZ qui utilise des pointeurs de fichiers et on initialise ces pointeurs à NULL quand les fichiers n&#039;existent pas.&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 2 : On aurait des pointeurs sur des adresses absolues dans le DVD et les mises à jour auraient supprimé certains fichiers pour garder les mêmes adresses en augmentant la taille d&#039;autres.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 3 : Erreur de programmation des devs / ou reste de développements qui n&#039;ont pas été implémentés / ou supprimés / cela peut résulter d&#039;anciens fichiers en rapport avec la version bêta du jeu.&amp;lt;/span&amp;gt;&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Pour vérifier la décompression, on peut se baser sur les tailles standard des TPLs (version NTSC) :&amp;lt;br&amp;gt;206 * 3712 octets&amp;lt;br&amp;gt;206 * 14464 octets&amp;lt;br&amp;gt;14 * 115296 octets&amp;lt;br&amp;gt;5 * 573504 octets&amp;lt;br&amp;gt;(11 fichiers ayant une taille unique)&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers TPLs sont des multiples de 32 ;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test de l&#039;algorithme de décompression des PZZ par la vérification des tailles des fichiers TPLs décompressés :&lt;br /&gt;
&lt;br /&gt;
1. unpack de tous les pzz&amp;lt;br&amp;gt;2. mise dans un dossier de tous les fichiers compressés&amp;lt;br&amp;gt;3. décompression de tous les fichiers&amp;lt;br&amp;gt;4. identification de tous les TPLs&amp;lt;br&amp;gt;5. vérification que tous les TPLs ont une taille congrue à 0 modulo 32&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autre approche : vérifier la taille voir si elle correspond à une taille standard&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Virtual World RE a développé le script python [https://github.com/Virtual-World-RE/NeoGF pzztool.py] permettant de manipuler les archives PZZ et leurs fichiers internes, en s&#039;inspirant [https://github.com/infval/pzzcompressor_jojo d&#039;un script de manipulation pzz de PS2].&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=290</id>
		<title>PZZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=290"/>
		<updated>2021-11-27T18:21:17Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers PZZ de Gotcha Force. Voir [[PZZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Les fichiers&amp;amp;nbsp;&#039;&#039;&#039;PZZ&#039;&#039;&#039; sont des dossiers d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Les PZZ se composent d&#039;un header de 2048 octets, soit 0x800 octets. A la suite de ce header se trouvent les fichiers inscrit les uns à la suite des autres. Ces fichiers peuvent être compressés ou non.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le premier champ du header est un uint32 big endian contenant le nombre de fichiers total de l&#039;archive. On retrouve après une suite de taille variable de descripteurs de fichiers au format uint32 big endian. Chaque fichier est paddé avec des &amp;quot;\x00&amp;quot; pour avoir une taille multiple de 0x800.&lt;br /&gt;
&lt;br /&gt;
==== Format descripteur de fichier ====&lt;br /&gt;
&lt;br /&gt;
Si on numérote les bits d&#039;un descripteur de fichier de 0 (poids faible) à 31 (poids fort) :&lt;br /&gt;
&lt;br /&gt;
* bit 31 - inutilisé,&lt;br /&gt;
* bit 30 - Flag de compression : est à 1 si le fichier est compressé, 0 sinon,&lt;br /&gt;
* bit 0 à 29 (30 bits) - taille du fichier divisée par 2048 (0x800),&lt;br /&gt;
taille_fichier (octets) = (descripteur_fichier &amp;amp; 0x3FFFFFFF) * 0x800&amp;lt;br&amp;gt;&lt;br /&gt;
bCompression = descripteur_fichier &amp;amp; 0x40000000&lt;br /&gt;
&lt;br /&gt;
Pour mieux comprendre le format du descripteur de fichier, voici un exemple :&lt;br /&gt;
&lt;br /&gt;
Le premier fichier de l&#039;archive fait 12288 octets et il est compressé, son descripteur est alors (12288/0x800)+0x40000000 = 0x40000006. On le stockera dans l&#039;entête en big endian (40 00 00 06) juste à la suite du nombre de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le descripteur de fichier peut décrire un fichier vide. Il correspondra alors à &amp;quot;00 00 00 00&amp;quot; mais sera compté dans le nombre de fichier au début du header.&lt;br /&gt;
&lt;br /&gt;
==== Padding des fichiers ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;La question, c&#039;est de savoir s&#039;il faut enlever le padding des fichiers avec un flag de compression = 0, lorsqu&#039;on les extrait du pzz.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algorithme de compression ===&lt;br /&gt;
L&#039;algorithme de compression reste à déterminer.&lt;br /&gt;
=== Observations ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers PZZ contiennent entre autres des fichiers [[TPL (Format de fichier)|TPL]] affichant le nom des borgs dans différentes langues (version PAL), ou encore le nom des borgs en japonais (version JAP) ou en anglais (version NTSC).&lt;br /&gt;
&lt;br /&gt;
Dans les fichiers contenus dans les PZZ allant généralement des fichiers 004 à 008, on retrouve des fichiers avec des valeurs correspondantes à de la 3D. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0300.pzz&#039;&#039;&#039;&amp;quot; qui possède des fichiers avec un header qui semble représenter un magic file, des flags ainsi qu&#039;un padding ajustable si besoin est d&#039;avoir plus d’éléments &#039;&#039;&#039;Par exemple pour &#039;&#039;pl0629.pzz&#039;&#039; la quantité de flags dans le headers est plus conséquente.&#039;&#039;&#039; L&#039;origine des flags et des valeurs dans le header est pour l&#039;instant inconnu mais &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;pourrai constituer une liste de mesh disponible dans le fichier.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Dans le header des PZZ, on retrouve parfois des file_descriptor=NULL. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0f07.pzz&#039;&#039;&#039;&amp;quot; qui a un header se terminant par plusieurs descripteurs de fichiers NULL :&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 1 : On a une librairie parsant les PZZ qui utilise des pointeurs de fichiers et on initialise ces pointeurs à NULL quand les fichiers n&#039;existent pas.&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 2 : On aurait des pointeurs sur des adresses absolues dans le DVD et les mises à jour auraient supprimé certains fichiers pour garder les mêmes adresses en augmentant la taille d&#039;autres.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 3 : Erreur de programmation des devs / ou reste de développements qui n&#039;ont pas été implémentés / ou supprimés / cela peut résulter d&#039;anciens fichiers en rapport avec la version bêta du jeu.&amp;lt;/span&amp;gt;&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Pour vérifier la décompression, on peut se baser sur les tailles standard des TPLs (version NTSC) :&amp;lt;br&amp;gt;206 * 3712 octets&amp;lt;br&amp;gt;206 * 14464 octets&amp;lt;br&amp;gt;14 * 115296 octets&amp;lt;br&amp;gt;5 * 573504 octets&amp;lt;br&amp;gt;(11 fichiers ayant une taille unique)&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers TPLs sont des multiples de 32 ;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test de l&#039;algorithme de décompression des PZZ par la vérification des tailles des fichiers TPLs décompressés :&lt;br /&gt;
&lt;br /&gt;
1. unpack de tous les pzz&amp;lt;br&amp;gt;2. mise dans un dossier de tous les fichiers compressés&amp;lt;br&amp;gt;3. décompression de tous les fichiers&amp;lt;br&amp;gt;4. identification de tous les TPLs&amp;lt;br&amp;gt;5. vérification que tous les TPLs ont une taille congrue à 0 modulo 32&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autre approche : vérifier la taille voir si elle correspond à une taille standard&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Virtual World RE a développé le script python [https://github.com/Virtual-World-RE/NeoGF pzztool.py] permettant de manipuler les archives PZZ et leurs fichiers internes, en s&#039;inspirant [https://github.com/infval/pzzcompressor_jojo d&#039;un script de manipulation pzz de PS2].&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=ADX_(File_format)&amp;diff=285</id>
		<title>ADX (File format)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=ADX_(File_format)&amp;diff=285"/>
		<updated>2021-11-27T01:50:17Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Format audio modifiable avec audacity dspadpcm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: red;&amp;quot;&amp;gt;Cette section a besoin de beaucoup de recherche.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: red;&amp;quot;&amp;gt;Des recherches sur comment fonctionne le header et comment interagit le fichier sont nécessaire.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__toc__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=282</id>
		<title>PZZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=282"/>
		<updated>2021-11-26T23:18:34Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers PZZ de Gotcha Force. Voir [[PZZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Les fichiers&amp;amp;nbsp;&#039;&#039;&#039;PZZ&#039;&#039;&#039; sont des dossiers d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Les PZZ se composent d&#039;un header de 2048 octets, soit 0x800 octets. A la suite de ce header se trouvent les fichiers inscrit les uns à la suite des autres. Ces fichiers peuvent être compressés ou non.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le premier champs du header est un uint32 big endian contenant le nombre de fichiers total de l&#039;archive. On retrouve après une suite de taille variable de descripteurs de fichiers au format uint32 big endian. Chaque fichier est paddé avec des &amp;quot;\x00&amp;quot; pour avoir une taille multiple de 0x800.&lt;br /&gt;
&lt;br /&gt;
==== Format descripteur de fichier ====&lt;br /&gt;
&lt;br /&gt;
Si on numérote les bits d&#039;un descripteur de fichier de 0 (poids faible) à 31 (poids fort) :&lt;br /&gt;
&lt;br /&gt;
* bit 31 - inutilisé,&lt;br /&gt;
* bit 30 - Flag de compression : est à 1 si le fichier est compressé, 0 sinon,&lt;br /&gt;
* bit 0 à 29 (30 bits) - taille du fichier divisée par 2048 (0x800),&lt;br /&gt;
taille_fichier (octets) = (descripteur_fichier &amp;amp; 0x3FFFFFFF) * 0x800&amp;lt;br&amp;gt;&lt;br /&gt;
bCompression = descripteur_fichier &amp;amp; 0x40000000&lt;br /&gt;
&lt;br /&gt;
Pour mieux comprendre le format du descripteur de fichier, voici un exemple :&lt;br /&gt;
&lt;br /&gt;
Le premier fichier de l&#039;archive fait 12288 octets et il est compressé, son descripteur est alors (12288/0x800)+0x40000000 = 0x40000006. On le stockera dans l&#039;entête en big endian (40 00 00 06) juste à la suite du nombre de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le descripteur de fichier peut décrire un fichier vide. Il correspondra alors à &amp;quot;00 00 00 00&amp;quot; mais sera compté dans le nombre de fichier au début du header.&lt;br /&gt;
&lt;br /&gt;
==== Padding des fichiers ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;La question, c&#039;est de savoir s&#039;il faut enlever le padding des fichiers avec un flag de compression = 0, lorsqu&#039;on les extrait du pzz.&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Algorithme de compression ===&lt;br /&gt;
L&#039;algorithme de compression reste à déterminer.&lt;br /&gt;
=== Observations ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers PZZ contiennent entre autres des fichiers [[TPL (Format de fichier)|TPL]] affichant le nom des borgs dans différentes langues (version PAL), ou encore le nom des borgs en japonais (version JAP) ou en anglais (version NTSC).&lt;br /&gt;
&lt;br /&gt;
Dans les fichiers contenus dans les PZZ allant généralement des fichiers 004 à 008, on retrouve des fichiers avec des valeurs correspondantes à de la 3D. On peut notamment citer &amp;quot;&#039;&#039;pl0300.pzz&#039;&#039;&amp;quot; qui possède des fichiers avec un header qui semble représenter un magic file, des flags ainsi qu&#039;un padding ajustable si besoin est d&#039;avoir plus d’éléments &#039;&#039;Par exemple pour &#039;&#039;&#039;pl0629&#039;&#039;&#039; la quantité de flags dans le headers est plus conséquente.&#039;&#039; L&#039;origine des flags et des valeurs dans le header est pour l&#039;instant inconnu mais &amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;pourrai constituer une liste de mesh disponible dans le fichier.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Dans le header des PZZ, on retrouve parfois des file_descriptor=NULL. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0f07.pzz&#039;&#039;&#039;&amp;quot; qui a un header se terminant par plusieurs descripteurs de fichiers NULL :&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 1 : On a une librairie parsant les PZZ qui utilise des pointeurs de fichiers et on initialise ces pointeurs à NULL quand les fichiers n&#039;existent pas.&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 2 : On aurait des pointeurs sur des adresses absolues dans le DVD et les mises à jour auraient supprimé certains fichiers pour garder les mêmes adresses en augmentant la taille d&#039;autres.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 3 : Erreur de programmation des devs / ou reste de développements qui n&#039;ont pas été implémentés / ou supprimés / cela peut résulter d&#039;anciens fichiers en rapport avec la version bêta du jeu.&amp;lt;/span&amp;gt;&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Pour vérifier la décompression, on peut se baser sur les tailles standard des TPLs (version NTSC) :&amp;lt;br&amp;gt;206 * 3712 octets&amp;lt;br&amp;gt;206 * 14464 octets&amp;lt;br&amp;gt;14 * 115296 octets&amp;lt;br&amp;gt;5 * 573504 octets&amp;lt;br&amp;gt;(11 fichiers ayant une taille unique)&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers TPLs sont des multiples de 32 ;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test de l&#039;algorithme de décompression des PZZ par la vérification des tailles des fichiers TPLs décompressés :&lt;br /&gt;
&lt;br /&gt;
1. unpack de tous les pzz&amp;lt;br&amp;gt;2. mise dans un dossier de tous les fichiers compressés&amp;lt;br&amp;gt;3. décompression de tous les fichiers&amp;lt;br&amp;gt;4. identification de tous les TPLs&amp;lt;br&amp;gt;5. vérification que tous les TPLs ont une taille congrue à 0 modulo 32&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autre approche : vérifier la taille voir si elle correspond à une taille standard&amp;lt;br&amp;gt;&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Virtual World RE a développé le script python [https://github.com/Virtual-World-RE/NeoGF pzztool.py] permettant de manipuler les archives PZZ et leurs fichiers internes, en s&#039;inspirant [https://github.com/infval/pzzcompressor_jojo d&#039;un script de manipulation pzz de PS2].&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Onimusha_3&amp;diff=281</id>
		<title>Onimusha 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Onimusha_3&amp;diff=281"/>
		<updated>2021-11-26T22:40:20Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: A retiré la protection de « Onimusha 3: Demon Siege »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Les recherches sont en cours, les informations affichées ici peuvent être erronées !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Onimusha 3: Demon Siege&#039;&#039;&#039; est un jeu vidéo d&#039;action-aventure hack-and-slash développé et publié par Capcom.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le fichier de sauvegarde ==&lt;br /&gt;
&lt;br /&gt;
Le jeu possède un fichier unique de sauvegarde pour les 9 profils de sauvegarde.&amp;lt;br&amp;gt;&lt;br /&gt;
Le jeu ne semble pas vouloir sauvegarder certains paramètres essentiels tel que la résolution.&lt;br /&gt;
&lt;br /&gt;
Le fichier de sauvegarde se trouve dans &amp;lt;code&amp;gt;/save/SAVE&amp;lt;/code&amp;gt; a la racine du dossier du jeu (Par défaut : &amp;lt;code&amp;gt;C:\Program Files (x86)\CAPCOM\ONIMUSHA3\&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;C:\Program Files\CAPCOM\ONIMUSHA3\&amp;lt;/code&amp;gt; sur Windows 32 Bits)&lt;br /&gt;
&lt;br /&gt;
=== Structure du fichier de sauvegarde ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Adresse&lt;br /&gt;
! Ordre&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x020C3C&lt;br /&gt;
| Little-Endian&lt;br /&gt;
| U32 ?&lt;br /&gt;
| Nombre de sauvagardes (SLOT 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fonctions qui font appel au fichier de sauvegarde ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: Les adresses données ici correspondent a des adresses générés par IDA Pro 7.5&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
La fonction a l’adresse &amp;lt;code&amp;gt;0x555700&amp;lt;/code&amp;gt; est constamment appelé lors de l’utilisation de &amp;lt;code&amp;gt;aSave&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;aSave&amp;lt;/code&amp;gt; est la variable globale qui contient la chaîne de caractère &amp;lt;code&amp;gt;/SAVE/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Adresse&lt;br /&gt;
! Nom de la fonction&lt;br /&gt;
! Offset d&#039;instruction&lt;br /&gt;
|-&lt;br /&gt;
| 0x555980&lt;br /&gt;
| N/A&lt;br /&gt;
| +AF&lt;br /&gt;
|-&lt;br /&gt;
| 0x555A90&lt;br /&gt;
| N/A&lt;br /&gt;
| +AF&lt;br /&gt;
|-&lt;br /&gt;
| 0x555BA0&lt;br /&gt;
| N/A&lt;br /&gt;
| +88&lt;br /&gt;
|-&lt;br /&gt;
| 0x5576E0&lt;br /&gt;
| N/A&lt;br /&gt;
| +9F&lt;br /&gt;
|-&lt;br /&gt;
| 0x557FC0&lt;br /&gt;
| N/A&lt;br /&gt;
| +255&lt;br /&gt;
|-&lt;br /&gt;
| 0x559010&lt;br /&gt;
| N/A&lt;br /&gt;
| +FC&lt;br /&gt;
|-&lt;br /&gt;
| 0x559010&lt;br /&gt;
| N/A&lt;br /&gt;
| +281&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Versions du jeu ==&lt;br /&gt;
&lt;br /&gt;
=== PlayStation 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Date de Build&lt;br /&gt;
! Date de sortie&lt;br /&gt;
! Région&lt;br /&gt;
|-&lt;br /&gt;
| Release&lt;br /&gt;
| Inconnue&lt;br /&gt;
| 26 février 2004&lt;br /&gt;
| JAP&lt;br /&gt;
|-&lt;br /&gt;
| Release&lt;br /&gt;
| 9 mars 2004&lt;br /&gt;
| 27 avril 2004&lt;br /&gt;
| US (NA)&lt;br /&gt;
|-&lt;br /&gt;
| Prototype&lt;br /&gt;
| 18 mars 2004&lt;br /&gt;
| 20 mars 2021 (leak)&lt;br /&gt;
| US (NA)&lt;br /&gt;
|-&lt;br /&gt;
| Release&lt;br /&gt;
| Inconnue&lt;br /&gt;
| 8 juillet 2004&lt;br /&gt;
| EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Date de build&lt;br /&gt;
! Date de sortie&lt;br /&gt;
! Région&lt;br /&gt;
! SecuROM&lt;br /&gt;
|-&lt;br /&gt;
| Release&lt;br /&gt;
| N/A&lt;br /&gt;
| 25 novembre 2005&lt;br /&gt;
| JAP&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| R 1.0.0.3&lt;br /&gt;
| 12 janvier 2006&lt;br /&gt;
| 24 février 2006&lt;br /&gt;
| EUR&lt;br /&gt;
| SecuROM 7&lt;br /&gt;
|-&lt;br /&gt;
| R 1.1.0.0&lt;br /&gt;
| 01 mars 2006&lt;br /&gt;
| Mars 2006&lt;br /&gt;
| EUR&lt;br /&gt;
| SecuROM 7&lt;br /&gt;
|-&lt;br /&gt;
| Release&lt;br /&gt;
| 31 octobre 2005&lt;br /&gt;
| 16 mars 2006&lt;br /&gt;
| US (NA)&lt;br /&gt;
| Non&lt;br /&gt;
|-&lt;br /&gt;
| Demo&lt;br /&gt;
| 04 octobre 2005&lt;br /&gt;
| 2005 / 2006 ?&lt;br /&gt;
| JAP&lt;br /&gt;
| Non&lt;br /&gt;
|-&lt;br /&gt;
| Release&lt;br /&gt;
| N/A&lt;br /&gt;
| 22 aout 2007&lt;br /&gt;
| International (Steam)&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=File_formats_reverse_engineering&amp;diff=280</id>
		<title>File formats reverse engineering</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=File_formats_reverse_engineering&amp;diff=280"/>
		<updated>2021-11-26T22:21:32Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Reverse de formats =&lt;br /&gt;
Cette page est destinée aux recherches sur le reverse de fichiers et aux essais en cours.&lt;br /&gt;
== Typage des variable ==&lt;br /&gt;
[[Fichier:Typage &amp;amp; compilation.png|800px|center|thumb|vignette]]&lt;br /&gt;
Les types sont traduits par le compilateur pour une architecture précise et se traduise en binaire de différentes manières.&lt;br /&gt;
== Tailles de fichiers ==&lt;br /&gt;
=== PGCD et taille de fichier ===&lt;br /&gt;
L&#039;idée, c&#039;est d&#039;observer les tailles de fichiers pour retrouver des caractéristiques de certaines archives, telles que la taille du header, et l&#039;éventuelle utilisations de &amp;quot;conteneurs&amp;quot;/chunks de taille fixe.&lt;br /&gt;
&lt;br /&gt;
Pour cela, on prend l&#039;ensemble des tailles en octets de chaque fichier du format étudié. On réalise le PGCD sur ces tailles et si le PGCD est conséquent, c&#039;est qu&#039;on a potentiellement un header et des chunks de la taille du PGCD.&lt;br /&gt;
&lt;br /&gt;
=== PGCD et taille de header variable ===&lt;br /&gt;
Dans le cas on on aurait un fichier avec une taille de header différente de la taille des chunks, on peut tester les PGCD en soustrayant la taille d&#039;un header que l&#039;on augmente.&lt;br /&gt;
&lt;br /&gt;
La structure du fichier recherché serait la suivante :&lt;br /&gt;
&lt;br /&gt;
|---- HEADER ----|------------ CHUNK 1 ------------|------------ CHUNK 2 ------------|------------ CHUNK N ------------|&lt;br /&gt;
&lt;br /&gt;
On utilisera alors un seuil au dessus duquel nous afficherons la taille du header et la taille du PGCD.&lt;br /&gt;
&lt;br /&gt;
== Recherche de propriétés et clair connu ==&lt;br /&gt;
=== Bruteforce d&#039;un offset fixe ===&lt;br /&gt;
Dans le cas où on peut rassembler un ensemble de caractéristiques que l&#039;on peut clairement attribuer à un groupe de fichiers, il est alors envisageable de bruteforcer pour retrouver l&#039;endroit dans le fichier où ces propriétés sont stockées.&lt;br /&gt;
&lt;br /&gt;
La première étape est de rechercher un ensemble de données pour les réunir dans un csv. Ces données devront être associées à un nom de fichier. On pourra par exemple scraper ces données sur des sites de fans par exemple.&lt;br /&gt;
&lt;br /&gt;
La seconde étape, c&#039;est de programmer la recherche de nombreux encodages cohérents pour chaque propriétés du csv recherchée. On recherchera tous ces encodages dans l&#039;ensemble des fichier de la position 0 à la fin du plus petit des fichiers du lot. On vérifiera alors si la propriété apparait à la position donnée, et si elle n&#039;est pas présente, on passera alors à la position suivante.&lt;br /&gt;
&lt;br /&gt;
Il est à noter que les types sont traduits de différentes manières selon les compilateurs. On prendra soin de tester différentes représentations (nombres signés compléments à 1, à 2, signe et valeur absolue, virgule fixe, virgule flottante, avec différentes tailles de signe/mantis/exposant, etc.).&lt;br /&gt;
&lt;br /&gt;
=== Ensembles et masque ===&lt;br /&gt;
Ici aussi, on dispose d&#039;un dataset avec des propriétés en lien avec les fichiers étudiés. Il s&#039;agit de regrouper les propriétés par valeurs et d&#039;étudier les changements dans les fichiers associés pour identifier la position potentielle d&#039;une propriété.&lt;br /&gt;
&lt;br /&gt;
Pour les fichiers :&lt;br /&gt;
* A = Ensemble(fichiers AVEC valeur &amp;quot;a&amp;quot; de la propriété)&lt;br /&gt;
* B = Ensemble(fichiers SANS valeur &amp;quot;a&amp;quot; de la propriété)&lt;br /&gt;
* D = FichierMasque # de la taille du fichier ; on y mettra FF ou des bits à 1 si le bit ou l&#039;octet peut représenter la propriété&lt;br /&gt;
&lt;br /&gt;
Pour tous les A si l&#039;octet à l&#039;offset étudié est identique, on met l&#039;octet dans D à FF, 00 sinon&lt;br /&gt;
Pour tous les B s&#039;il existe un B identique à l&#039;octet correspondant dans A alors on met l&#039;octet dans D à 0x00&lt;br /&gt;
&lt;br /&gt;
On répète l&#039;opération pour toutes les valeurs de la propriété. Pour ajouter de la souplesse, on peut ajouter une tolérance aux erreurs pour un dataset comportant éventuellement des erreurs, ou la présence de valeurs spéciales encodées différemment.&lt;br /&gt;
&lt;br /&gt;
L&#039;approche par bit pose un soucis dans la comparaison entre A et B. Pour rappel, si l&#039;octet à la position i est identique pour A et B, alors on retire l&#039;octet du masque. Mais pour le bit, il nous faut la taille exacte de l&#039;encodage de la propriété car si la taille en bits est inférieure, on retrouve alors des valeurs possiblement identique pour A et B, avec le bit suivant ou précédent qui appartient à la propriété et qui lui, diffère. Idem si la taille en bits est supérieure.&lt;br /&gt;
&lt;br /&gt;
C&#039;est pourquoi il est nécessaire de faire plusieurs masques pour chaque taille en bits. Les similarités ou les différences ajoutées aléatoirement avec une mauvaise taille en bits de l&#039;encodage de la propriété réduisent à néant le masque, ce qui permet de tester en incrémentant les tailles et de ne garder que le masque qui produit un résultat.&lt;br /&gt;
&lt;br /&gt;
Il est aussi à noter le recroisement du masque après un décalage. Si on étudie par exemple les bits de 0 à 4 et qu&#039;on met le masque à 1111 on étudiera ensuite les bits de 1 à 5 et on aura potentiellement 10000 &amp;lt;- ce qui effacerait le travail précédent. L&#039;idée serait de forcer les bits à 1 et de ne pas réinitialiser quand ils sont mis à 1 dans la comparaison de A et de B. On peut éventuellement créer deux masques A &amp;lt;-&amp;gt; A et A &amp;lt;-&amp;gt; B pour en faire ensuite le &amp;amp; logique.&lt;br /&gt;
&lt;br /&gt;
== Outils à tester ==&lt;br /&gt;
* https://hexinator.com/&lt;br /&gt;
* https://www.sweetscape.com/010editor/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tester l&#039;entropie avec binwalk (1. dans doku)&lt;br /&gt;
&lt;br /&gt;
== Doku ==&lt;br /&gt;
* 1. https://archive.fosdem.org/2021/schedule/event/reverse_engineering/attachments/slides/4518/export/events/attachments/reverse_engineering/slides/4518/Reverse_Engineering_of_binary_File_Formats.pdf&lt;br /&gt;
* 2. [http://www.iwriteiam.nl/Ha_HTCABFF.html www.iwriteiam.nl/Ha_HTCABFF.html] (Reste à extraire les tools dans les liens)&lt;br /&gt;
* 3. https://github.com/tylerha97/awesome-reversing (Grande liste à étudier, déterminer ce qui correspond au reverse de binaires - voir d&#039;il existe d&#039;autres &amp;quot;awesome ..&amp;quot;)&lt;br /&gt;
* 4. https://beginners.re/RE4B-FR.pdf (voir le sommaire détaillé et trouver les sections qui parlent de reverse de binaires)&lt;br /&gt;
&lt;br /&gt;
https://en.wikibooks.org/wiki/Reverse_Engineering/File_Formats&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=260</id>
		<title>PZZ (Gotcha Force)</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=PZZ_(Gotcha_Force)&amp;diff=260"/>
		<updated>2021-11-24T23:10:51Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Gotcha Force | &amp;amp;larr; Gotcha Force]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cet article est pour les format de fichiers PZZ de Gotcha Force. Voir [[PZZ (Format de fichier)]] pour les autres versions de ce fichier.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Les fichiers&amp;amp;nbsp;&#039;&#039;&#039;PZZ&#039;&#039;&#039; sont des dossiers d&#039;archive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Cette section est en cours de rédaction.&amp;lt;h2&amp;gt;&lt;br /&gt;
&amp;lt;h4 style=&amp;quot;color: rgb(241, 196, 15); text-align: center;&amp;quot;&amp;gt;Des recherches sont encore nécessaires et certains paragraphes peuvent être faux.&amp;lt;h4&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Les PZZ se composent d&#039;un header de 2048 octets, soit 0x800 octets. A la suite de ce header se trouvent les fichiers inscrit les uns à la suite des autres. Ces fichiers peuvent être compressés ou non.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
Le premier champs du header est un uint32 big endian contenant le nombre de fichiers total de l&#039;archive. On retrouve après une suite de taille variable de descripteurs de fichiers au format uint32 big endian. Chaque fichier est paddé avec des &amp;quot;\x00&amp;quot; pour avoir une taille multiple de 0x800.&lt;br /&gt;
&lt;br /&gt;
==== Format descripteur de fichier ====&lt;br /&gt;
&lt;br /&gt;
Si on numérote les bits d&#039;un descripteur de fichier de 0 (poids faible) à 31 (poids fort) :&lt;br /&gt;
&lt;br /&gt;
* bit 31 - inutilisé,&lt;br /&gt;
* bit 30 - Flag de compression : est à 1 si le fichier est compressé, 0 sinon,&lt;br /&gt;
* bit 0 à 29 (30 bits) - taille du fichier divisée par 2048 (0x800),&lt;br /&gt;
taille_fichier (octets) = (descripteur_fichier &amp;amp; 0x3FFFFFFF) * 0x800&amp;lt;br&amp;gt;&lt;br /&gt;
bCompression = descripteur_fichier &amp;amp; 0x40000000&lt;br /&gt;
&lt;br /&gt;
Pour mieux comprendre le format du descripteur de fichier, voici un exemple :&lt;br /&gt;
&lt;br /&gt;
Le premier fichier de l&#039;archive fait 12288 octets et il est compressé, son descripteur est alors (12288/0x800)+0x40000000 = 0x40000006. On le stockera dans l&#039;entête en big endian (40 00 00 06) juste à la suite du nombre de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le descripteur de fichier peut décrire un fichier vide. Il correspondra alors à &amp;quot;00 00 00 00&amp;quot; mais sera compté dans le nombre de fichier au début du header.&lt;br /&gt;
&lt;br /&gt;
==== Padding des fichiers ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;La question, c&#039;est de savoir s&#039;il faut enlever le padding des fichiers avec un flag de compression = 0, lorsqu&#039;on les extrait du pzz.&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Algorithme de compression ===&lt;br /&gt;
L&#039;algorithme de compression reste à déterminer.&lt;br /&gt;
=== Observations ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers PZZ contiennent entre autres des fichiers [[TPL (Format de fichier)|TPL]] affichant le nom des borgs dans différentes langues (version PAL), ou encore le nom des borgs en japonais (version JAP) ou en anglais (version NTSC).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: olive;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Certains fichiers extraits des PZZ contiennent des indices sur un potentiel format d&#039;animation 3D.&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: #e03e2d;&amp;quot;&amp;gt;&amp;amp;lt;- Attention, il faut citer les dits fichiers&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Dans le header des PZZ, on retrouve parfois des file_descriptor=NULL. On peut notamment citer &amp;quot;&#039;&#039;&#039;pl0f07.pzz&#039;&#039;&#039;&amp;quot; qui a un header se terminant par plusieurs descripteurs de fichiers NULL :&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 1 : On a une librairie parsant les PZZ qui utilise des pointeurs de fichiers et on initialise ces pointeurs à NULL quand les fichiers n&#039;existent pas.&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 2 : On aurait des pointeurs sur des adresses absolues dans le DVD et les mises à jour auraient supprimé certains fichiers pour garder les mêmes adresses en augmentant la taille d&#039;autres.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: rgb(241, 196, 15);&amp;quot;&amp;gt;Théorie 3 : Erreur de programmation des devs / ou reste de développements qui n&#039;ont pas été implémentés / ou supprimés / cela peut résulter d&#039;anciens fichiers en rapport avec la version bêta du jeu.&amp;lt;/span&amp;gt;&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Pour vérifier la décompression, on peut se baser sur les tailles standard des TPLs (version NTSC) :&amp;lt;br&amp;gt;206 * 3712 octets&amp;lt;br&amp;gt;206 * 14464 octets&amp;lt;br&amp;gt;14 * 115296 octets&amp;lt;br&amp;gt;5 * 573504 octets&amp;lt;br&amp;gt;(11 fichiers ayant une taille unique)&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers TPLs sont des multiples de 32 ;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test de l&#039;algorithme de décompression des PZZ par la vérification des tailles des fichiers TPLs décompressés :&lt;br /&gt;
&lt;br /&gt;
1. unpack de tous les pzz&amp;lt;br&amp;gt;2. mise dans un dossier de tous les fichiers compressés&amp;lt;br&amp;gt;3. décompression de tous les fichiers&amp;lt;br&amp;gt;4. identification de tous les TPLs&amp;lt;br&amp;gt;5. vérification que tous les TPLs ont une taille congrue à 0 modulo 32&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autre approche : vérifier la taille voir si elle correspond à une taille standard&amp;lt;br&amp;gt;&lt;br /&gt;
== Logiciel ==&lt;br /&gt;
&lt;br /&gt;
Virtual World RE a développé le script python [https://github.com/Virtual-World-RE/NeoGF pzztool.py] permettant de manipuler les archives PZZ et leurs fichiers internes, en s&#039;inspirant [https://github.com/infval/pzzcompressor_jojo d&#039;un script de manipulation pzz de PS2].&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Format de fichier]]&lt;br /&gt;
[[Catégorie:Gotcha Force]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=253</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=253"/>
		<updated>2021-11-23T13:33:26Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Version Bêta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx_mdl.arc&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxmot.bin &amp;lt;- position 3 du pzz&lt;br /&gt;
 plxxxxb_mdl.arc&lt;br /&gt;
 plxxxxc_mdl.arc&lt;br /&gt;
 plxxxxg_mdl.arc&lt;br /&gt;
 plxxxxk_mdl.arc&lt;br /&gt;
 plxxxxs_mdl.arc&lt;br /&gt;
 plxxxxhit.bin &amp;lt;- position 2 du pzz&lt;br /&gt;
 plxxxxdata.bin &amp;lt;- position 0 du pzz&lt;br /&gt;
&lt;br /&gt;
Ces fichiers ne sont pas toujours tous présents. On trouve pour certains plxxxx le fichier plxxxxdata2.bin ou encore plxxxxdata3.bin.&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 3) on retrouve soit un fichier &amp;quot;plxxxxmot.bin&amp;quot; correspondant identique dans l&#039;afs_data, soit pas de fichier &amp;quot;plxxxxmot.bin&amp;quot;, excepté pour le borg &amp;quot;pl0009&amp;quot; pour qui le fichier 3 et le mot diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique avec des éléments en 3D sur la map et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=252</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=252"/>
		<updated>2021-11-23T09:43:25Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Nommage des fichiers dans afs_data.afs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
Pour chaque borg on a :&amp;lt;br&amp;gt;&lt;br /&gt;
 plxxxx_mdl.arc&lt;br /&gt;
 plxxxx.pzz&lt;br /&gt;
 plxxxxmot.bin &amp;lt;- position 3 du pzz&lt;br /&gt;
 plxxxxb_mdl.arc&lt;br /&gt;
 plxxxxc_mdl.arc&lt;br /&gt;
 plxxxxg_mdl.arc&lt;br /&gt;
 plxxxxk_mdl.arc&lt;br /&gt;
 plxxxxs_mdl.arc&lt;br /&gt;
 plxxxxhit.bin &amp;lt;- position 2 du pzz&lt;br /&gt;
 plxxxxdata.bin &amp;lt;- position 0 du pzz&lt;br /&gt;
&lt;br /&gt;
Ces fichiers ne sont pas toujours tous présents. On trouve pour certains plxxxx le fichier plxxxxdata2.bin ou encore plxxxxdata3.bin.&lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 3) on retrouve soit un fichier &amp;quot;plxxxxmot.bin&amp;quot; correspondant identique dans l&#039;afs_data, soit pas de fichier &amp;quot;plxxxxmot.bin&amp;quot;, excepté pour le borg &amp;quot;pl0009&amp;quot; pour qui le fichier 3 et le mot diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=251</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=251"/>
		<updated>2021-11-22T22:16:57Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 3) on retrouve soit un fichier &amp;quot;plxxxxmot.bin&amp;quot; correspondant identique dans l&#039;afs_data, soit pas de fichier &amp;quot;plxxxxmot.bin&amp;quot;, excepté pour le borg &amp;quot;pl0009&amp;quot; pour qui le fichier 3 et le mot diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=250</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=250"/>
		<updated>2021-11-22T21:17:52Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les fichiers plxxxx.pzz (position 2) on retrouve un fichier &amp;quot;plxxxxhit.bin&amp;quot; correspondant identique dans l&#039;afs_data, excepté pour le borg pl0507 et pl0513 pour qui le fichier 2 et le hit diffèrent.&lt;br /&gt;
Note : cela peut venir de l&#039;algorithme de décompression mal implémenté. (Version NTSC)&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=249</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=249"/>
		<updated>2021-11-22T16:47:28Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
Pour tous les pzz sans exception, le fichier plxxxxdata.bin présent dans l&#039;afs_data.afs est identique au plxxxx.pzz (fichier en position 000).&lt;br /&gt;
A noter : pour pl0604 il s&#039;agit de pl0604data2.bin. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
	<entry>
		<id>https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=248</id>
		<title>Gotcha Force</title>
		<link rel="alternate" type="text/html" href="https://wiki.re.virtualworld.fr/index.php?title=Gotcha_Force&amp;diff=248"/>
		<updated>2021-11-22T16:23:11Z</updated>

		<summary type="html">&lt;p&gt;Rigodron: /* Nommage des fichiers dans afs_data.afs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Jeux]]&lt;br /&gt;
&#039;&#039;&#039;Gotcha Force&#039;&#039;&#039; est un jeu vidéo de combat/tir à la troisième personne développé et publié par Capcom pour GameCube en 2003.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/GameCube_technical_specifications Spécification technique de la GameCube]&lt;br /&gt;
&lt;br /&gt;
[http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf#page=337 Manuel du processeur Gekko] : ce manuel est utile lors du reverse engineering des fichiers exécutables (dol, etc.). On y trouvera la description des instructions assembleur.&lt;br /&gt;
&lt;br /&gt;
== Apploader ==&lt;br /&gt;
&lt;br /&gt;
L&#039;[https://www.gc-forever.com/wiki/index.php?title=Apploader apploader] est un fichier, lancé par le BIOS de la GameCube (aussi appelé l&#039;[https://wiki.dolphin-emu.org/index.php?title=GameCube_Main_Menu Initial Program Loader / IPL]), qui permet de créer les différents espaces mémoires pour lancer l&#039;exécutable du jeu (généralement au format dol). Il est situé à une adresse fixe sur le DVD. Il portera un nom différent selon les programmes que l&#039;on utilisera pour ouvrir l&#039;image DVD du jeu : AppLoader.ldr (GCRebuilder v1.1) / apploader.img (dolphin Emulator) etc. Les empreintes sha256 sont cependant identiques.&lt;br /&gt;
&lt;br /&gt;
== Formats de fichiers du jeu ==&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;[http://wiki.xentax.com/index.php/DGTEFF Definitive Guide To Exploring File Formats]&amp;quot; est une bonne entrée en matière pour comprendre l&#039;organisation des fichiers. On peut éventuellement faire une liste de champs possibles pouvant apparaître dans le header du fichier étudié afin de trouver les différents éléments du header et leur fonction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| [[ADX (Format de fichier)|ADX]]&lt;br /&gt;
| Fichier audio&lt;br /&gt;
|-&lt;br /&gt;
| [[AFS (Format de fichier)|AFS]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[ARC (Gotcha Force)|ARC]]&lt;br /&gt;
| Dossier d&#039;archive ?&lt;br /&gt;
|- &lt;br /&gt;
| [[ARZ (Gotcha Force)|ARZ]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BIN (Gotcha Force)|BIN]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[BNR (Format de fichier)|BNR]]&lt;br /&gt;
| Banner file format&lt;br /&gt;
|-&lt;br /&gt;
| [[CHD (Gotcha Force)|CHD]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[DOL (Gotcha Force)|DOL]]&lt;br /&gt;
| Fichier exécutable [[SysDolphin]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DPK (Gotcha Force)|DPK]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[HDR (Gotcha Force)|HDR]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[LDR (Gotcha Force)|LDR]]&lt;br /&gt;
| Apploader&lt;br /&gt;
|- &lt;br /&gt;
| [[MDT (Gotcha Force)|MDT]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[PTL (Gotcha Force)|PTL]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[PZZ (Gotcha Force)|PZZ]]&lt;br /&gt;
| Dossier d&#039;archive&lt;br /&gt;
|- &lt;br /&gt;
| [[REF (Gotcha Force)|REF]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[SFD (Format de fichier)|SFD]]&lt;br /&gt;
| MPEG Sofdec&lt;br /&gt;
|- &lt;br /&gt;
| [[TOC (Gotcha Force)|TOC]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|-&lt;br /&gt;
| [[TPL (Format de fichier)|TPL]]&lt;br /&gt;
| Librairie de palette de textures&lt;br /&gt;
|- &lt;br /&gt;
| [[TSB (Gotcha Force)|TSB]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|- &lt;br /&gt;
| [[TXG (Gotcha Force)|TXG]]&lt;br /&gt;
! Inconnu&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p class=&amp;quot;mwt-heading&amp;quot; &amp;gt;Une [[Reverse de binaires|page]] est réservée aux méthodes de reverse de binaires et aux recherches en cours sur le sujet.&amp;lt;/p&amp;gt;&lt;br /&gt;
== Arborescence des fichiers ==&lt;br /&gt;
Voici l&#039;arborescence des fichier pour GotchaForceUsa (USA/NTSC, GameCode : GG4E) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;&amp;amp;SystemData&lt;br /&gt;
 ├─ ISO.hdr&lt;br /&gt;
 ├─ AppLoader.ldr (Le nom de l&#039;apploader diffère selon les applications.)&lt;br /&gt;
 ├─ Start.dol (Le nom du dol principal diffère selon les application.)&lt;br /&gt;
 └─ Game.toc&lt;br /&gt;
 afs_data.afs&lt;br /&gt;
 ├─ *.adx (2113)&lt;br /&gt;
 ├─ *.arc (1369)&lt;br /&gt;
 ├─ *.arz (184)&lt;br /&gt;
 ├─ *.bin (586)&lt;br /&gt;
 ├─ *.chd (4)&lt;br /&gt;
 ├─ *.dpk (4)&lt;br /&gt;
 ├─ *.mdt (6)&lt;br /&gt;
 ├─ ptcl00.ptl&lt;br /&gt;
 ├─ *.pzz (254)&lt;br /&gt;
 ├─ ptcl00.ref&lt;br /&gt;
 ├─ *.sfd (2)&lt;br /&gt;
 ├─ *.tpl (442)&lt;br /&gt;
 ├─ *.tsb (4)&lt;br /&gt;
 └─ ptcl00.txg&lt;br /&gt;
 opening.bnr&lt;br /&gt;
 poq_adx_usa.afs&lt;br /&gt;
 ├─ *.adx (2115)&lt;br /&gt;
 └─ *.sfd (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Les logiciels utilisés sont GCRebuilder v1.1, et AFSExplorer 3.7.&amp;lt;br&amp;gt;&lt;br /&gt;
== Nommage des fichiers dans afs_data.afs ==&lt;br /&gt;
L&#039;investigation mené par la communauté de [https://zenhax.com/viewtopic.php?t=13419 GioGio Bizarre Adventure] montre une certaine logique qui peut potentiellement être utilisée dans le nommage des fichiers interne de afs_data.afs :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 files containing &amp;quot;&#039;&#039;&#039;tbl&#039;&#039;&#039;&amp;quot; in the filename seem to be animations&lt;br /&gt;
 &#039;&#039;&#039;d#####.pzz&#039;&#039;&#039; - Character and/or prop data for 3D Cutscenes&lt;br /&gt;
 &#039;&#039;&#039;k###.pzz&#039;&#039;&#039; - 2D cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;ks##.pzz&#039;&#039;&#039; - 2D Drama cutscene data (panels are 3D models&lt;br /&gt;
 &#039;&#039;&#039;npc###.pzz&#039;&#039;&#039; - NPC files&lt;br /&gt;
 &#039;&#039;&#039;pl##.pzz&#039;&#039;&#039; - &amp;amp;nbsp;Character files&lt;br /&gt;
 &#039;&#039;&#039;pl##p.pzz&#039;&#039;&#039; - Character specific props&lt;br /&gt;
 &#039;&#039;&#039;pl##.hit&#039;&#039;&#039; - Character collision data&lt;br /&gt;
 &#039;&#039;&#039;lw###.pzz&#039;&#039;&#039; - Stage collisions&lt;br /&gt;
 &#039;&#039;&#039;st###.pzz&#039;&#039;&#039; - Stage model data&lt;br /&gt;
 &#039;&#039;&#039;se###.pzz&#039;&#039;&#039; - Stage props&lt;br /&gt;
 &#039;&#039;&#039;ld###.pzz&#039;&#039;&#039; - Loading screen model and textures (they&#039;re just planes&lt;br /&gt;
 &#039;&#039;&#039;dcomn.pzz&#039;&#039;&#039; - Speech bubbles, onomatopoeia, zoom lines and others&lt;br /&gt;
 &#039;&#039;&#039;demo.pzz&#039;&#039;&#039; - Title screen textures (can be used to decompress data&lt;br /&gt;
 &#039;&#039;&#039;ga00p&#039;&#039;&#039; - Gallery room (several textures and models in here&lt;br /&gt;
 &#039;&#039;&#039;re00.pzz&#039;&#039;&#039; - Results screen&lt;br /&gt;
 &#039;&#039;&#039;icon.bin&#039;&#039;&#039; - 3D icon used for the memory card file&lt;br /&gt;
 &#039;&#039;&#039;ball.pzz&#039;&#039;&#039; - Seems to just be a sphere model with a 32x32 blank texture&lt;br /&gt;
&lt;br /&gt;
=== Observations === &lt;br /&gt;
&lt;br /&gt;
pl0803 - pl080b - pl0f07 :&lt;br /&gt;
Il reste uniquement le fichier pl0803hit.bin et pl080bhit.bin et aucun de leurs fichiers associés (notamment, pas de pzz associé), ce qui indique qu&#039;ils sont à priori des restes de borgs non implémentés ... De même que le pzz pl0f07 n&#039;a pas son fichier hit, ni ses 4 TPL internes (4 fichiers vides à la place) mais juste son fichier pl0f07_mdl.arc, ce qui indique que ce borg n&#039;est pas implémenté non plus. (Version NTSC).&lt;br /&gt;
&lt;br /&gt;
== Exécutable principal ==&lt;br /&gt;
Le nom de l&#039;exécutable principal dépend des applications utilisées boot.dol (dolphin Emulator) / Start.dol (GCRebuilder v1.1) etc. &amp;lt;span style=&amp;quot;color: rgb(224, 62, 45);&amp;quot;&amp;gt;Les empreintes sha256 sont différentes entre dolphin Emulator et GCR !&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exécutable principal embarque [https://usermanual.wiki/m/f28d717b124185a5deabfe6020cb945538679565e15cad6ec9f93a47e04eabef.pdf MetroTRK], un noyaux de débogage pour les systèmes embarqués.&lt;br /&gt;
&lt;br /&gt;
Parmi les librairies utilisées, on retrouve notamment la librairie HSD (HAL Sysdolphin Engine). Les sources n&#039;ont à priori pas leaké sur internet. On peut néanmoins retrouver un énorme travail réalisé par [https://smashboards.com/search/1402833/?q=hsd&amp;amp;o=relevance la communauté du jeux GameCube &amp;quot;Super Smash Bros. Melee&amp;quot;] sur lequel on peut se baser :&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/UnclePunch/Training-Mode/wiki/HSD-Documentation Description générale des éléments de HSD]&lt;br /&gt;
&lt;br /&gt;
-[https://github.com/PsiLupan/FRAY Reverse engineering des sources en C]&lt;br /&gt;
&lt;br /&gt;
-[http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format) HAL DAT (Format de fichier)]&lt;br /&gt;
&lt;br /&gt;
== Version Bêta ==&lt;br /&gt;
&lt;br /&gt;
La version bêta du jeu contient des différences visibles quant aux versions finales. La map 3D était Isométrique et la description des borgs tenait sur tout l&#039;écran avec deux sections. L&#039;un pour les caractéristiques et l&#039;autre pour l&#039;histoire du borg.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gfbeta02.jpg|800px|center|thumb|Map bêta isométrique. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;br /&gt;
[[Fichier:gotchaforcebeta01.jpg|800px|center|thumb|Description bêta borg. [https://www.unseen64.net/2008/04/08/gotcha-force-gc-beta-concept/ Source]]]&lt;/div&gt;</summary>
		<author><name>Rigodron</name></author>
	</entry>
</feed>