mirror of
https://github.com/Virtual-World-RE/NeoGF.git
synced 2024-11-15 12:45:34 +01:00
Update README.md
Added afstool.py documentation about implemented commands.
This commit is contained in:
parent
d09a3f8810
commit
a978acb1db
53
README.md
53
README.md
|
@ -7,34 +7,67 @@ NeoGF is a library of tools for Gotcha Force.
|
||||||
|
|
||||||
If you want more infos about the game, go read our [Gotcha Force Wiki](http://re.wiki.virtualworld.fr/index.php/Gotcha_Force).
|
If you want more infos about the game, go read our [Gotcha Force Wiki](http://re.wiki.virtualworld.fr/index.php/Gotcha_Force).
|
||||||
|
|
||||||
|
**Warning - Running tests is for dev purpose: it will create lots of files and this could stress your SSD.**
|
||||||
|
|
||||||
## gcmtool.py
|
## gcmtool.py
|
||||||
Python3 script for unpack/pack GCM iso files. This tool can rebuild FileStringTable (FST) of GCM and patch boot.bin with a new apploader.img, boot.dol, add/remove/edit of folder and files of the game.
|
Python3 script for unpack/pack GCM iso files. This tool can rebuild FileStringTable (FST) of GCM and patch boot.bin with a new apploader.img, boot.dol, add/remove/edit of folder and files of the game.
|
||||||
|
|
||||||
### User manual
|
### User manual
|
||||||
Unpack iso GCM file **game.iso** in folder **iso_extract**: (If the destination folder is not specified, it will use the game_code-DVD_number as folder.)
|
Unpack iso GCM file **game.iso** in folder **iso_extract**: (If the destination folder is not specified, it will use the game_code-DVD_number as folder.)
|
||||||
```
|
```
|
||||||
gcmtool.py -u game.iso iso_extract
|
gcmtool.py --unpack game.iso iso_extract
|
||||||
```
|
```
|
||||||
Pack folder in iso :
|
Pack folder in iso:
|
||||||
```
|
```
|
||||||
gcmtool.py -p iso_extract game.iso
|
gcmtool.py --pack iso_extract game.iso
|
||||||
```
|
```
|
||||||
Rebuild FST and patch boot.bin for a new apploader, dol, and add/remove/edit of folders and files :
|
Rebuild FST and patch boot.bin for a new apploader, dol, and add/remove/edit of folders and files:
|
||||||
```
|
```
|
||||||
gcmtool.py -r iso_extract
|
gcmtool.py --rebuild-fst iso_extract
|
||||||
```
|
```
|
||||||
Japanese charset is not handled for now. The original GCM iso and repack GCM iso are different most of the time. This is because GCM DVD contains "empty spaces" with data unused (old datas or random datas I don't know). So this datas are useless and loss during unpack.
|
Japanese charset is not handled for now except if you have installed Japanese local. The original GCM iso and repack GCM iso are different most of the time. This is because GCM DVD contains "empty spaces" with data unused (old datas or random datas I don't know). So this datas are useless and loss during unpack.
|
||||||
|
|
||||||
### Extracted file tree
|
### Extracted file tree
|
||||||
root folder contains all files of the extracted GCM iso
|
root folder contains all files of the unpacked GCM/iso
|
||||||
|
|
||||||
sys folder contains GCM system files of the game :
|
sys folder contains GCM system files of the game:
|
||||||
* boot.bin
|
* boot.bin
|
||||||
* bi2.bin
|
* bi2.bin
|
||||||
* apploader.img
|
* apploader.img
|
||||||
* boot.dol
|
* boot.dol
|
||||||
* fst.bin
|
* fst.bin
|
||||||
|
|
||||||
|
## afstool.py
|
||||||
|
Python3 script for unpack/pack AFS files. Rebuild of Table of content (TOC) and Filename directory (FD) is not implemented yet. This tool is under development.
|
||||||
|
|
||||||
|
### User manual
|
||||||
|
unpack **source_afs.afs** in the default new folder _source_afs_.
|
||||||
|
If optional_dest_folder is specified we unpack in _optional_dest_folder_.
|
||||||
|
If the FD is present we use OS mtime to store the date of the file.
|
||||||
|
```
|
||||||
|
afstool.py --unpack source_afs.afs optional_dest_folder
|
||||||
|
```
|
||||||
|
pack **source_folder** in the default new file _source_folder.afs_.
|
||||||
|
If optional_dest_file.afs is specified we unpack in _optional_dest_file.afs_.
|
||||||
|
If the FD is present we use OS mtime to retrieve and update the date of the file.
|
||||||
|
pack handle max file size using next file (or sys file) offset.
|
||||||
|
```
|
||||||
|
afstool.py --pack source_folder optional_dest_file.afs
|
||||||
|
```
|
||||||
|
Print stats about the AFS file or the unpacked AFS folder. This stats contains informations about FD, offsets ranges and files (and sys files) addresses space, and duplicated filenames grouped by filenames.
|
||||||
|
```
|
||||||
|
afstool.py --stats source
|
||||||
|
```
|
||||||
|
|
||||||
|
### Extracted file tree
|
||||||
|
root folder contains all files of the unpacked AFS
|
||||||
|
|
||||||
|
sys folder contains AFS system files of the game and generated files needed for AFS operations:
|
||||||
|
* tableofcontent.bin - TOC sys file: You can edit this file it will be handled by the --pack command.
|
||||||
|
* filenamedirectory.bin - FD sys file: This file is created only if there is a FD in the AFS.
|
||||||
|
* filename_resolver.txt - Created when multiple files have the same name in the FD.
|
||||||
|
* rebuild.conf - Not implemented yet.
|
||||||
|
|
||||||
## pzztool.py
|
## pzztool.py
|
||||||
Python3 script for unpack/repack unpzz/pzz and uncompress/compress of PZZ archive. MDT files are also handled by pzztool.py.
|
Python3 script for unpack/repack unpzz/pzz and uncompress/compress of PZZ archive. MDT files are also handled by pzztool.py.
|
||||||
|
|
||||||
|
@ -100,7 +133,7 @@ pzztool.py -bp source_folder optional_dest_folder
|
||||||
```
|
```
|
||||||
|
|
||||||
### Extracted files format
|
### Extracted files format
|
||||||
Every file extracted has a name using the format :
|
Every file extracted has a name using the format:
|
||||||
|
|
||||||
AAAB_C.D
|
AAAB_C.D
|
||||||
- **AAA** is the 3 digits index of the file in the PZZ starting at 000.
|
- **AAA** is the 3 digits index of the file in the PZZ starting at 000.
|
||||||
|
@ -108,7 +141,7 @@ AAAB_C.D
|
||||||
- **C** is the name of the PZZ.
|
- **C** is the name of the PZZ.
|
||||||
- **D** is the extension of the file. If the file is compressed it's **.pzzp** (PZZ Part) and if the file is uncompressed by default it's **.dat**
|
- **D** is the extension of the file. If the file is compressed it's **.pzzp** (PZZ Part) and if the file is uncompressed by default it's **.dat**
|
||||||
|
|
||||||
For example file **012C_cmn_data.dat** describe :
|
For example file **012C_cmn_data.dat** describe:
|
||||||
- the 13th file off the pzz,
|
- the 13th file off the pzz,
|
||||||
- initialy compressed,
|
- initialy compressed,
|
||||||
- in a pzz named "cmn_data.pzz",
|
- in a pzz named "cmn_data.pzz",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user