SHOW:
|
|
- or go back to the newest paste.
| 1 | RSO FILE HEADER: | |
| 2 | - Size: 0x90 (144 bytes) | |
| 3 | ||
| 4 | - | 0x00 (uint32) : Always 0x00000000 ??? |
| 4 | + | //--------------------- HEADER ---------------------// |
| 5 | - | 0x04 (uint32) : Always 0x00000000 ??? |
| 5 | + | file = getFile; |
| 6 | - | 0x08 (uint32) : Number of sections |
| 6 | + | file.seek(pos); |
| 7 | - | 0x0C (uint32) : Always 0x00000058 ??? |
| 7 | + | /*0x00 (uint32)*/ unknown0x00 = file.readUint32(); |
| 8 | - | 0x10 (uint32) : File's path Address |
| 8 | + | /*0x04 (uint32)*/ unknown0x04 = file.readUint32(); |
| 9 | - | 0x14 (uint32) : len(File's path) |
| 9 | + | /*0x08 (uint32)*/ sectionNumber = file.readUint32(); |
| 10 | - | 0x18 (uint32) : Boolean ??? Always 0x01 ??? |
| 10 | + | /*0x0C (uint32)*/ identifier = file.readUint32(); |
| 11 | - | 0x1C (uint32) : Size ??? / Address ??? |
| 11 | + | /*0x10 (uint32)*/ nameOffset = file.readUint32(); |
| 12 | - | 0x20 (uint8) : Boolean ??? Always 0x01 ??? |
| 12 | + | /*0x14 (uint32)*/ nameSize = file.readUint32(); |
| 13 | - | 0x21 (uint8) : Boolean ??? Always 0x01 ??? |
| 13 | + | /*0x18 (uint32)*/ version = file.readUint32(); |
| 14 | - | 0x22 (uint8) : Boolean ??? Not always 0x01 could be 0x00 as well. |
| 14 | + | /*0x1C (uint32)*/ unknown0x1C = file.readUint32(); |
| 15 | - | 0x23 (uint8) : Boolean ??? Always 0x00 ??? |
| 15 | + | |
| 16 | - | 0x24 (uint32) : Address ??? Need to be recalculate ??? |
| 16 | + | //--- Line 0x20 could be empty |
| 17 | - | 0x28 (uint32) : Same remarks as previously |
| 17 | + | // I don't know what they do |
| 18 | - | 0x2C (uint32) : Sometimes 0x00 but not every time... :v/ |
| 18 | + | /*0x20 (uint32)*/ unknown0x20 = file.readUint32(); |
| 19 | /*0x24 (uint32)*/ unknown0x24 = file.readUint32(); | |
| 20 | - | 0x30 (uint32) : Address of something (register ???) |
| 20 | + | /*0x28 (uint32)*/ unknown0x28 = file.readUint32(); |
| 21 | - | 0x34 (uint32) : Size of something (0x30) |
| 21 | + | /*0x2C (uint32)*/ unknown0x2C = file.readUint32(); |
| 22 | - | 0x38 (uint32) : Address of something (register ???) |
| 22 | + | |
| 23 | - | 0x3C (uint32) : Size of something (0x38) |
| 23 | + | //--- Internals/Externals relocation table (irt/ert) |
| 24 | - | 0x40 (uint32) : Address of something (register ???) |
| 24 | + | /*0x30 (uint32)*/ irtOffset = file.readUint32(); |
| 25 | - | 0x44 (uint32) : Size of something (0x40) |
| 25 | + | /*0x34 (uint32)*/ irtSize = file.readUint32(); |
| 26 | - | 0x48 (uint32) : Imports address ??? |
| 26 | + | /*0x38 (uint32)*/ ertOffset = file.readUint32(); |
| 27 | - | 0x4C (uint32) : Block address ??? |
| 27 | + | /*0x3C (uint32)*/ ertSize = file.readUint32(); |
| 28 | - | 0x50 (uint32) : Size of (0x4C) |
| 28 | + | /*0x40 (uint32)*/ exportsOffset = file.readUint32(); |
| 29 | - | 0x54 (uint32) : Exports address ??? |
| 29 | + | /*0x44 (uint32)*/ exportsSize = file.readUint32(); |
| 30 | - | 0x58 (uint32) : Always 0x00000000 ??? |
| 30 | + | /*0x48 (uint32)*/ exportsName = file.readUint32(); // I don't find the correct name order :v/ |
| 31 | - | 0x5C (uint32) : Always 0x00000000 ??? |
| 31 | + | /*0x4C (uint32)*/ importsOffset = file.readUint32(); |
| 32 | /*0x50 (uint32)*/ importsSize = file.readUint32(); | |
| 33 | - | 0x60 (uint32) : 1st Block address |
| 33 | + | /*0x54 (uint32)*/ importsName = file.readUint32(); |
| 34 | - | 0x64 (uint32) : 1st Block size |
| 34 | + | /*0x58 (uint32)*/ unknown0x58 = file.readUint32(); |
| 35 | - | 0x68 (uint32) : 2nd Block address |
| 35 | + | /*0x5C (uint32)*/ unknown0x5C = file.readUint32(); |
| 36 | - | 0x6C (uint32) : 2nd Block size |
| 36 | + | |
| 37 | - | 0x70 (uint32) : 3rd Block address |
| 37 | + | //--- Data |
| 38 | - | 0x74 (uint32) : 3rd Block size |
| 38 | + | /*0x60 (uint32)*/ block01Offset = file.readUint32(); |
| 39 | - | 0x78 (uint32) : 4th Block address |
| 39 | + | /*0x64 (uint32)*/ block01Size = file.readUint32(); |
| 40 | - | 0x7C (uint32) : 4th Block size |
| 40 | + | /*0x68 (uint32)*/ block02Offset = file.readUint32(); |
| 41 | - | 0x80 (uint32) : 5th Block address |
| 41 | + | /*0x6C (uint32)*/ block02Size = file.readUint32(); |
| 42 | - | 0x84 (uint32) : 5th Block size |
| 42 | + | /*0x70 (uint32)*/ block03Offset = file.readUint32(); |
| 43 | - | 0x88 (uint32) : 6th Block address |
| 43 | + | /*0x74 (uint32)*/ block03Size = file.readUint32(); |
| 44 | - | 0x8C (uint32) : 6th Block size |
| 44 | + | /*0x78 (uint32)*/ block04Offset = file.readUint32(); |
| 45 | /*0x7C (uint32)*/ block04Size = file.readUint32(); | |
| 46 | /*0x80 (uint32)*/ block05Offset = file.readUint32(); | |
| 47 | /*0x84 (uint32)*/ block05Size = file.readUint32(); | |
| 48 | /*0x88 (uint32)*/ block06Offset = file.readUint32(); | |
| 49 | /*0x8C (uint32)*/ block06Size = file.readUint32(); |