This tool allows you to [un]pack binary string tables for Risen 3 (and ELEX).
Sample batch scripts and a complete string id map for Risen 3 are included.
Binary releases: https://github.com/nicodex/lianzifu/releases
Source code: https://github.com/nicodex/lianzifu
Code:Usage: lianzifu <command [argument]...>... The commands are executed in command line order. Therefore, everything after --exit is ignored. Commands: --version print program version --help print this help --exit exit the program now --clear reset string table state --read-ini [ini] add prefix/csv from <ini> --read-csv [utf] add strings from all csv --save-map [map] save [prefix:]id to <map> --save-bin [plt] [ver] [bin] [cmp] [flt] save string table to <bin> --read-map [map] add [prefix:]id from <map> --read-bin [bin] add csv/strings from <bin> --save-csv save strings to all csv Defaults: <ini> #G3:/ini/loc.ini <utf> 1 <map> #G3:/lianzifu.csv <plt> x64 <ver> 6 <bin> #G3:/data/compiled/localization/w_strings.bin <cmp> 9 <flt> *_Text;*_StageDir Platforms: pc Windows (32-bit) x64 Windows (64-bit) ps3 PlayStation 3 ps4 PlayStation 4 x360 Xbox 360 xone Xbox One Map format: The map files are used to restore the string identifiers (the binary string table contains only the hash values). Map files have to be encoded in UTF-8 (BOM is optional). Every non-empty line contains <[prefix:]id>[|...], where the prefix is optional (used to select the unpacked CSV, defaults to first CSV in loc.ini for unknown id hashes), and everything after | will be ignored on read (hashes). CSV format: The first line defines the case-insensitive column names. The first row contains the case-insensitive string ids or an eight-character, hexadecimal, and case-sensitive hash. Without a BOM the encoding is detected based on the first two octets (X,0 = UTF-16LE; 0,X = UTF-16BE; X,X = UTF-8). This extension to the Genome CSV format has been added to simplify the work flow with CSV tools that do not write a BOM and could be disabled with --read-csv 0 if necessary. Records are separated with a LINE FEED (U+000A), the NULL (U+0000) is not allowed, and all CARRIAGE RETURN (U+000D) are ignored during read. Record fields are separated with VERTICAL LINE (U+007C), there's no field quote character, leading and trailing white space is not removed, and only the following escape sequences are available: "\a" COMMERCIAL AT (U+0040) "\n" LINE FEED (U+000A) "\r" CARRIAGE RETURN (U+000D) "\\" REVERSE SOLIDUS (U+005C) "\v" VERTICAL LINE (U+007C) The latter two are extensions to the Genome CSV format to permit encoding of field separators and escape sequences. Examples: create #G3:/data/compiled/localization/w_strings.bin (x64 v6) from CSVs lianzifu --read-ini --read-csv --save-bin export #G3:/lianzifu.csv from CSVs in #G3:/ini/loc.ini lianzifu --read-ini --read-csv --save-map unpack #G3:/data/compiled/localization/w_strings.bin with #G3:/lianzifu.csv lianzifu --read-map --read-ini --read-bin --save-csv
Old versions:
lianzifu_2.0.zip
lianzifu_1.3.zip
lianzifu_1.2.zip
lianzifu_1.1.zip
lianzifu_1.0.zip
Ergebnis 1 bis 13 von 13
-
"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- ConnorGeändert von NicoDE (09.02.2018 um 13:37 Uhr) Grund: Windows binary release on GitHub
-
Version 1.1
- big-endian (PlayStation 3, Xbox 360) support fixed
- --save-bin output directory is automatically created
Thanks for the bug reportGeändert von NicoDE (16.01.2018 um 15:16 Uhr)
-
- Registriert seit
- Jan 2018
- Beiträge
- 4
Do you have any public repository with the sourcecode?
-
Version 1.2
- fixed BOM detection with non-Western user locale
- new --read-csv flag to default to UTF without BOM (enabled by default)
Many thanks for the detailed bug reports, especially from the Russian communityGeändert von NicoDE (16.01.2018 um 15:17 Uhr)
-
Geändert von NicoDE (16.01.2018 um 15:18 Uhr)
-
Version 1.3
- better compression ratio for levels 2-9
Geändert von NicoDE (16.01.2018 um 15:17 Uhr)
-
Version 2.0
- new compression methods for levels 8-9
The source code is available at https://github.com/nicodex/lianzifu
edit: Windows binary release has been added in the first post"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- ConnorGeändert von NicoDE (01.02.2018 um 10:29 Uhr) Grund: Windows release
-
Version 2.1
- added column name filter for --save-bin
The default filter is "*_Text;*_StageDir" (shouldn't change anything for Risen 3 projects).
This feature has been added to support ELEX, where every language has it's own binary string table."Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- ConnorGeändert von NicoDE (09.02.2018 um 13:38 Uhr)
-
Version 2.2
- added support for empty strings on merging BINs
- fixed idhash.names log value for merged BINs
- added code signing in release build
"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
-
- Registriert seit
- Oct 2014
- Beiträge
- 5
Is there any way to repack them?
-
Have a look at the lianzifu-pack.risen3*.cmd that are included in the release package.
The usual command order for packing STBs is lianzifu --read-ini --read-csv --save-bin (optionally with overridden default parameters for the commands).
Note that lianzifu has to support the Genome volume paths (used in the loc.ini). Currently all volumes (#Xxx:/) are mapped to the current directory and #Xxx:/ini/ is always mapped to ./data/ini/. There are no command line options yet to change the volume and path mappings (might be added in a later version)."Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- ConnorGeändert von NicoDE (23.02.2018 um 15:32 Uhr)
-
- Registriert seit
- Oct 2014
- Beiträge
- 5
Is there any chance to be unpacked the file with all the dialogues in smaller filles for each caracter? How it is in Gothic 1 and 2. Each npc has his own script with his dialogue from the game.
-
It would require to read/parse the binary game content files. This is not the intended use for lianzifu, sorry.
However another tool could now read/write the raw (CSV) files and/or use the lianzifu code to read/write the binary (BIN/STR) files to get/set the dialog strings...
My current TODO list for lianzifu only includes an even better compression method and a general cleanup of the string table code (mess)"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor