GRAF:AFS AFS: Difference between revisions
imported>Mr.Mouse |
(added Grandia 2 notes) |
||
| Line 48: | Line 48: | ||
Each file, and the directory, are padded to multiples of 2048 bytes using null bytes. So, the first file will start at offset 2048, or 4096, etc, and similarly with the next files. | Each file, and the directory, are padded to multiples of 2048 bytes using null bytes. So, the first file will start at offset 2048, or 4096, etc, and similarly with the next files. | ||
<br><br> | <br> | ||
Some games (for example Grandia 2) don't have a filename directory (all entries are zero), however, the rest of the format is the same. | |||
<br> | |||
=== Compatible Programs === | === Compatible Programs === | ||
| Line 61: | Line 63: | ||
* 50 Cent: Bulletproof (PS2) *.afs | * 50 Cent: Bulletproof (PS2) *.afs | ||
* DragonBall Z: Budokai 3 (PS2) *.afs | * DragonBall Z: Budokai 3 (PS2) *.afs | ||
* Grandia 2 (PC,DC) *.afs | |||
* Leisure Suit Larry: Manga Cum Laude *.afs | * Leisure Suit Larry: Manga Cum Laude *.afs | ||
* Mortal Kombat Shaolin Monks (PS2) *.afs | * Mortal Kombat Shaolin Monks (PS2) *.afs | ||
Revision as of 14:32, 12 September 2006
AFS
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {4} - Header (AFS + null)
uint32 {4} - Number Of Files
// for each file
- uint32 {4} - Offset
- uint32 {4} - Length
uint32 {4} - Filename Directory Offset
byte {X} - File Data
// Filename Directory
- // for each file
- char {32} - Filename (null)
- uint32 {4} - File Type ID
- uint16 {2} - Unknown
- uint16 {2} - Unknown
- uint16 {2} - Unknown
- uint16 {2} - Unknown
- uint32 {4} - Junk (matches each value in the directory, including offsets and sizes, in order)
- char {32} - Filename (null)
MultiEx BMS Script
<bms ext="afs" games="'50 Cent: Bulletproof','DragonBall Z: Budokai 3','Leisure Suit Larry: Manga Cum Laude','Mortal Kombat Shaolin Monks','Phantasy Star Online','Pro Evolution Soccer 5','Silent Hill 3'" platforms="'PS2','PS2','PC','PS2','PC','PC','PC'" version="1.0" author="Mr.Mouse" verbose="no" silence="no">IDString 0 AFS ;
ImpType Standard ;
Get D Byte 0 ;
Get FileNum Long 0 ;
For T = 1 To FileNum ;
SavePos FOO 0 ;
Get FO Long 0 ;
SavePos FSO 0 ;
Get FS Long 0 ;
Log "" FO FS FOO FSO ;
Next T ;
</bms>
Notes and Comments
Each file, and the directory, are padded to multiples of 2048 bytes using null bytes. So, the first file will start at offset 2048, or 4096, etc, and similarly with the next files.
Some games (for example Grandia 2) don't have a filename directory (all entries are zero), however, the rest of the format is the same.
Compatible Programs
Other Games
These games also use this file format
- 50 Cent: Bulletproof (PS2) *.afs
- DragonBall Z: Budokai 3 (PS2) *.afs
- Grandia 2 (PC,DC) *.afs
- Leisure Suit Larry: Manga Cum Laude *.afs
- Mortal Kombat Shaolin Monks (PS2) *.afs
- Phantasy Star Online *.afs
- Pro Evolution Soccer 5 *.afs
- Silent Hill 3 *.afs