ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Wed Sep 26, 2018 1:46 am

All times are UTC




Post new topic  Reply to topic  [ 22 posts ]  Go to page 1 2 Next
Author Message
 Post subject: Risen 3 (.bin)
PostPosted: Sun Oct 12, 2014 1:13 pm 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
please help with the unpacking w_strings.bin of the Risen 3


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 12, 2014 1:25 pm 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
w_strings.bin

https://yadi.sk/d/KSHvvDoCbwyL5


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 12, 2014 4:42 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 8837
http://aluigi.org/papers/bms/others/risen3_bin.bms


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 12, 2014 7:07 pm 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
how to decode files .csv ????


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Mon Oct 13, 2014 1:08 am 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 8837
I have no idea :)


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Mon Oct 13, 2014 10:03 am 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
Да емае как интересно вообще раскодировать возможно??


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Mon Oct 13, 2014 11:37 am 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 8837
If you want to edit the files use a hex editor, it's the easiest way.


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Mon Oct 13, 2014 2:18 pm 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
Я его пробовал Hex editor не поможет он не понимает что там


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Thu Oct 16, 2014 10:40 am 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
I also have no idea


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 19, 2014 8:22 am 

Joined: Sun Aug 10, 2014 12:49 pm
Posts: 268
Some research :)

Code:
gar_header {
    uint8_t  magic1[4];  // "GAR5"
    uint32_t unknown;    // 00000020 sizeof(stb_header)?
    uint8_t  magic2[4];  // "STB\x05"
}
stb_header {
    uint32_t source_count;
    uint32_t unknown;   // 00000000
    uint32_t column_count;
    uint32_t row_count;
    uint32_t source_table_offset;
    uint32_t column_names_offset;
    uint32_t column_table_offset;
    uint32_t id_table_offset;
}
// @stb_header.source_table_offset
source_table[stb_header.source_count] {
    filepath {
        uint16_t length;
        uint8_t  buffer[length];  // char[], not 0-terminated
    }
    filetime {  // swapped FILETIME (rounded)
        uint32_t hi;
        uint32_t lo;
    }
}
// @stb_header.id_table_offset
id_table {
    uint32_t size;  // stb_header.row_count * sizeof(uint32_t)
    uint32_t offset;
    // @id_table.offset
    uint32_t ids[stb_header.row_count];  // DJB2 hash?
}   
// @stb_header.column_names_offset
column_names {
    names[stb_header.column_count] {
        uint32_t size;    // includes terminating 0
        uint32_t offset;  // buffer
    }
    uint8_t buffer[];  // char[], 0-terminated
}
string_table[stb_header.column_count] {
    // @column_table[].string_table_offset
    strings {
        int32_t  seq_start[stb_header.row_count];  // index into sequences, -1 = empty
        uint16_t sequences[];                      // indices into symbols, 0-terminated
    }
    // @column_table[].symbol_table_offset
    symbols[] {
        uint16_t child;   // index into symbols
        uint16_t symbol;  // wchar_t
    }
}
// @stb_header.column_table_offset
column_table[stb_header.column_count] {
    uint32_t string_table_size;
    uint32_t string_table_offset;
    uint32_t symbol_table_size;
    uint32_t symbol_table_offset;
}


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 19, 2014 8:52 am 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
And you can use this script ???


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 19, 2014 9:03 am 

Joined: Sat Aug 09, 2014 2:34 pm
Posts: 764
It's not script, just structure of localization file for devs.


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Oct 19, 2014 3:38 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 8837
Just for fun, the following is a simple adapting of the information provided by michalss to bms (yeah quickbms can handle many C and pseudo-code structures):
Code:
#gar_header {
    uint8_t  magic1[4];  // "GAR5"
    uint32_t unknown;    // 00000020 sizeof(stb_header)?
    uint8_t  magic2[4];  // "STB\x05"

#stb_header {
    uint32_t source_count;
    uint32_t unknown;   // 00000000
    uint32_t column_count;
    uint32_t row_count;
    uint32_t source_table_offset;
    uint32_t column_names_offset;
    uint32_t column_table_offset;
    uint32_t id_table_offset;

// @stb_header.source_table_offset
#source_table[stb_header.source_count] {
goto source_table_offset
for i = 0 < source_count
    #filepath {
        uint16_t length;
        uint8_t  buffer[length];  // char[], not 0-terminated
    #filetime {  // swapped FILETIME (rounded)
        uint32_t hi;
        uint32_t lo;
next i

// @stb_header.id_table_offset
#id_table {
goto id_table_offset
    uint32_t size;  // stb_header.row_count * sizeof(uint32_t)
    uint32_t offset;
    // @id_table.offset
    uint32_t ids[row_count];  // DJB2 hash?

// @stb_header.column_names_offset
#column_names {
goto column_names_offset
    #names[stb_header.column_count] {
for i = 0 < column_count
        uint32_t size;    // includes terminating 0
        uint32_t offset;  // buffer
next i
    uint8_t *buffer #[];  // char[], 0-terminated

// @stb_header.column_table_offset
goto column_table_offset
#column_table[stb_header.column_count] {
for i = 0 < column_count
    uint32_t string_table_size;
    uint32_t string_table_offset;
    uint32_t symbol_table_size;
    uint32_t symbol_table_offset;

    savepos TMP
#string_table[stb_header.column_count] {
    // @column_table[].string_table_offset
    goto string_table_offset
    #strings {
        int32_t  seq_start[row_count];  // index into sequences, -1 = empty
        do
            uint16_t sequences  #[];                      // indices into symbols, 0-terminated
        while sequences != 0

    // @column_table[].symbol_table_offset
    goto symbol_table_offset
    #symbols[] {
        uint16_t child;   // index into symbols
        uint16_t symbol;  // wchar_t
    #}

next i


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Mon Oct 20, 2014 11:02 am 

Joined: Tue Sep 30, 2014 5:59 pm
Posts: 91
But look what I got, I mixed the first and the last script code and quickbms campaign realized that it is in the archive on the command line issued by how many languages ​​packed well, or reaped here who can finalize ???? if possible !!!

Code:
idstring "GAR5"
get DUMMY long
getdstring STB_SIGN 3
get VER byte
get FILES long
get ZERO long
get STRINGS long
get DUMMY long
get NAME_OFF long
get STR_OFF long
get INFO_OFF long
get DATA_OFF long

goto STR_OFF
for i = 0 < STRINGS
    get STRSZ long
    get OFFSET long

    savepos TMP
    goto OFFSET
    getdstring STR STRSZ
    goto TMP
    print "%STR%"
next i

goto NAME_OFF
for i = 0 < FILES
    get NAMESZ short
    getdstring NAME NAMESZ
    get TSTAMPH long
    get TSTAMPL long
    putarray 0 i NAME
next i

goto INFO_OFF
for i = 0 < FILES
    get SIZE long
    get OFFSET long
    getarray NAME 0 i
    log NAME OFFSET SIZE
next i


#stb_header {
    uint32_t source_count;
    uint32_t unknown;   // 00000000
    uint32_t column_count;
    uint32_t row_count;
    uint32_t source_table_offset;
    uint32_t column_names_offset;
    uint32_t column_table_offset;
    uint32_t id_table_offset;

// @stb_header.source_table_offset
#source_table[stb_header.source_count] {
goto source_table_offset
for i = 0 < source_count
    #filepath {
        uint16_t length;
        uint8_t  buffer[length];  // char[], not 0-terminated
    #filetime {  // swapped FILETIME (rounded)
        uint32_t hi;
        uint32_t lo;
next i

// @stb_header.id_table_offset
#id_table {
goto id_table_offset
    uint32_t size;  // stb_header.row_count * sizeof(uint32_t)
    uint32_t offset;
    // @id_table.offset
    uint32_t ids[row_count];  // DJB2 hash?

// @stb_header.column_names_offset
#column_names {
goto column_names_offset
    #names[stb_header.column_count] {
for i = 0 < column_count
        uint32_t size;    // includes terminating 0
        uint32_t offset;  // buffer
next i
    uint8_t *buffer #[];  // char[], 0-terminated

// @stb_header.column_table_offset
goto column_table_offset
#column_table[stb_header.column_count] {
for i = 0 < column_count
    uint32_t string_table_size;
    uint32_t string_table_offset;
    uint32_t symbol_table_size;
    uint32_t symbol_table_offset;

    savepos TMP
#string_table[stb_header.column_count] {
    // @column_table[].string_table_offset
    goto string_table_offset
    #strings {
        int32_t  seq_start[row_count];  // index into sequences, -1 = empty
        do
            uint16_t sequences  #[];                      // indices into symbols, 0-terminated
        while sequences != 0

    // @column_table[].symbol_table_offset
    goto symbol_table_offset
    #symbols[] {
        uint16_t child;   // index into symbols
        uint16_t symbol;  // wchar_t
    #}

next i


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Tue Oct 21, 2014 10:47 am 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 8837
@michalss
You already did something on the format, do you want to finish the work on the script?
I don't know what should be the output because it's not a file to extract.


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Thu Oct 23, 2014 10:26 am 

Joined: Sun Aug 10, 2014 12:49 pm
Posts: 268
i wont be able to finnish it, coz it is not my work. I allready ask for help but that person left the scene and he is not interested anymore about R3 game.


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sun Nov 02, 2014 7:20 am 

Joined: Sat Nov 01, 2014 11:02 am
Posts: 5
There's a w_strings.bin to csv tool.

http://forum.worldofplayers.de/forum/th ... st23606794


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Mon Nov 10, 2014 12:52 pm 

Joined: Sun Aug 10, 2014 12:49 pm
Posts: 268
There is also complte source for convertor from bin to CSV wirtten in C++, for me i dont know much C++ but for someone who got skill this will be easy enought to write repacker :) or is someone make complete template for 010 or QBMS ill make repacker from there :D

https://dl.dropboxusercontent.com/u/38234344/r3l10n.zip


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Tue Jan 05, 2016 4:54 pm 

Joined: Tue Jan 05, 2016 4:40 pm
Posts: 8
tehasut wrote:
There's a w_strings.bin to csv tool.

http://forum.worldofplayers.de/forum/th ... st23606794




Hi, i need help with the packing w_strings.csv to w_strings.bin of the Risen 3,
or any edit way to edit this string file,So long he did not do it
Thanks!


Top
   
 Post subject: Re: Risen 3 (.bin)
PostPosted: Sat Mar 05, 2016 6:26 pm 

Joined: Tue Jan 05, 2016 4:40 pm
Posts: 8
bioshock wrote:
tehasut wrote:
There's a w_strings.bin to csv tool.

http://forum.worldofplayers.de/forum/th ... st23606794




Hi, i need help with the packing w_strings.csv to w_strings.bin of the Risen 3,
or any edit way to edit this string file,So long he did not do it
Thanks!


There is no way!!!??????


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 22 posts ]  Go to page 1 2 Next

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited