Page 2 of 2

Re: Soul Worker OBT String Files (.res file)

Posted: Tue Feb 07, 2017 6:08 am
by Nonstop
WRS wrote:
Miyu wrote:thank you very much for the help!
i won't let your efforts go to waste
8)

i've just extracted every single resource structure which saves manually extracting it all -->

https://gist.github.com/x1nixmzeng/a4a5 ... tructs-txt
I noticed the structure seems to be missing something for certain files? Haven't made it through all the files yet but one that doesn't seem to work is tb_Skill.res. Even trying the file used when you made the script it seemed to fail.

So it seems like there was another call for those files and I just labeled it read_int2 and added that. No clue if it is correct or not but it was at the very least able to parse all the way through the files.

Re: Soul Worker OBT String Files (.res file)

Posted: Thu Feb 09, 2017 10:54 pm
by WRS
Nonstop wrote: I noticed the structure seems to be missing something for certain files? Haven't made it through all the files yet but one that doesn't seem to work is tb_Skill.res. Even trying the file used when you made the script it seemed to fail.

So it seems like there was another call for those files and I just labeled it read_int2 and added that. No clue if it is correct or not but it was at
the very least able to parse all the way through the files.
edit

just checked the latest exe, the addresses have changed which you need to label:

Code: Select all

User-defined labels
Label    Address                                 Disassembly                               Comment
<read_tb> 001370E0                               PUSH EBP
<read_wstring_and_len> 00137450                  PUSH EBP
<read_byte> 0013C9D0                             PUSH EBP
<read_short> 0013CA50                            PUSH EBP
<read_int> 0013CAD0                              PUSH EBP
<read and verify checksum> 00159B80              PUSH EBP
         001607DE                                PUSH EAX                                  (Initial CPU selection)
there are a few changes since i wrote this :)
struct tb_Skill
{
uint i1;
ushort s1;
uint i2;
uint i3;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
uint i4;
uint i5;
uint i6;
uint i7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ushort s2;
ubyte b12;
ushort s3;
ubyte b13;
ubyte b14;
ubyte b15;
uint i8;
ubyte b16;
ubyte b17;
ubyte b18;
ubyte b19;
ubyte b20;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
ubyte b21;
ushort s4;
ushort s5;
ubyte b22;
ubyte b23;
ubyte b24;
ubyte b25;
ubyte b26;
uint i16;
uint i17;
uint i18;
ubyte b27;
ushort s6;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s7;
uint i19;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ubyte b28;
uint i20;
ushort s8;
ubyte b29;
ubyte b30;
ushort s9;
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ubyte b31;
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
ubyte b32;
ubyte b33;
ubyte b34;
ubyte b35;
};