View difference between Paste ID: drPA2ucS and LrkhDFVP
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();