Advanced patching (mods, other translations)

Online
User avatar
KAMIKADzE
KAMIKADzE
KAMIKADzE
Wind Rider
Wind Rider
Posts: 1935
Joined: Thu 1998.01.01, 00:00
Honor: 3061
Points: 2423539779.90
BDO: Blader
Cabal: BL
Vindictus: Lann
C9: Blade Dancer
Gender: Male
Karma: 神風
: Assassin Black Star Winged Devotion Dedication Heavy 1st 20 HR BDO JP Volunteer BDO KR Translator BDO JP Translator BDO RU Translator Black Spirit inside Black Spirit's Partner
Medals: 17
Contact:

Advanced patching (mods, other translations)

Postby KAMIKADzE » Sat 2016.06.25, 23:43

Here I'll explain current process of modding, using mods, customs translations, various buttons, etc.

First of all let's start with UI. Patch and Get RAW buttons I've already explained THERE and THERE respectively.
"datasheets to languagedata" does exactly what it says, and the result you'll find in Launcher\BDO\out folder.
XML Table Names is also self-explanatory, the result you'll find in the same folder as that XML file.
XLSX/M to XML is also self-explanatory, the result will appear in the same folder. Same goes for XML to XLSM, except that you can also specify the author name in Preferences => BDO Patcher settings => Patch author (Anon by default).

If you want me to add support for your client (currently Launcher supports only JP/KR/EU/NA/RU) you can start with going to menu "???" => GenerateBDOInfo => select "pad00000.meta", which is located in the Paz folder of your BDO client => it will generate BDO info which I require, the result can be found in Launcher\BDO\out folder in a form of 2 files "BDOInfoMain.li" and "BDOInfoPatch.lf" => upload it somewhere for me to download and contact me, I'll still need you for a couple of things, including tests, so contact me in the way that I'll be able to message you back.

How to use mods, merge with other patches, etc. etc.:
There are 2 button - Load Base XML and Load Translation XML, the first one will be a base on which you'll transfer translation from second one. Those buttons at this time support only XML files (names of the files are irrelevant), use XLSX/M to XML button in order to convert your translation in .xlsm format to .xml.
All 4 merge buttons will merge currently loaded files and you will be able to find the result in Launcher\BDO\out along with .txt file that will tell you the row difference. So for example if you want to mod my JP patch with my KR mod you would firstly need to type "kr" in textbox left to the Load Base XML button (it will be used to name resulted files from the merge - stringtable_XX.xml), then Load Launcher\BDO\Projects\KAMI JP\languagedata.xml as a Base xml, then Load Launcher\BDO\Mods\KR\KAMI JP to KR\languagedata.xml as a Translation XML and press Merge Data button, then repeat the same steps for stringtable_kr.xml, except that now you'd need to press Merge String button. This wont result in anything useful, it was an example. In order to make proper KR patch out of KAMI JP you would firstly need to load KR RAW as a base and merge with KAMI JP and after that merge the resulted files as a base with my KR mod, though you could continue previous steps and simply load KR RAW as a base and merge with modded KAMI JP, it will work either way.
On the right side of BDO Patcher window you can see quite a lot of check-boxes, they represent tables used during Merge Data process. For example if you wouldn't want to merge CharacterTable table then simply uncheck it prior to pushing Merge Data button. Same thing for cutscene, string and symbol will be added in one of the future releases.
You'll be able to automate all that process with introduction of Projects (no ETA), just like I did with "Patch KR" button.

You can replace my xml translation files in Launcher\BDO\Projects\KAMI JP with yours if you want 1 click solution at this point in time.

I've also included "enhancement" mods as an examples in Launcher\BDO\Mods\JP_KR.

.BDOm and .BDOp files are currently of no use, but it's quite easy to guess what they'll be used for.

Info about schemes has moved to a Separate thread


Info for translators/modders workflow:
1) Mods. Launcher currently supports only 1 type of mods - plain dead simple ones, those should look like this - you get patch with my translation or RAW, there are 4 ".xlsm"/".xml" files => open them in some editor (later on it will be possible to edit them from Launcher, no ETA) and get familiar with how they look like => now either duplicate them, or create a new ".xlsx"/".xlsm"/".xml" file (do that only for those that you want to translate) => you'll need to keep in your mod only those rows that you want to change in my or some other patch, but you should also keep the names of the columns (1st row in each table) on the 1st row, basically it should look like this:

1.1) Let's imagine that I want to create a popular enhancement naming mod. For this I'll need to copy "stringtable_kr.xlsm" from my KR patch (or RAW, and for JP it will be "stringtable_jp.xlsm", or as I mentioned you could create a new one).

1.2) Now that I have a base file I'll need to leave only the relevant rows => simply navigate to "GAME" table in your editing program and delete everything except column names and rows with enhancement values (if you've created a new file then create or copy table and all the relevant rows). In the end it should look like this:
^StringFormatKey ~StringFormat LastUpdateTime StringFormat_EN StringFormat_CN
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_16 Celestial: 2/20/15 21:05 장 : 장 :
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_17 Divine: 2/20/15 21:05 광 : 광 :
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_18 Epic: 2/20/15 21:05 고 : 고 :
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_19 Legendary: 2/20/15 21:05 유 : 유 :
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_20 Mythic: 2/20/15 21:05 동 : 동 :

You can actually strip down all KR dev notes (not required), so that it will look like:
^StringFormatKey ~StringFormat
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_16 Celestial:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_17 Divine:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_18 Epic:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_19 Legendary:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_20 Mythic:

1.3) Now simply rename them to whichever one you want (NOTE: DO NOT rename column names and/or key values):
^StringFormatKey ~StringFormat
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_16 PRI+16:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_17 +17 is stronK:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_18 18?:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_19 Seriously +19~:
LUA_GLOBAL_UTIL_UI_SLOT_ENCHANTLEVEL_20 I'm on TV!:

1.4) Use advanced patching to mod my patch = your modded patch.

If you want to create mod, but you don't know which rows you'll translate - simply, as you go, mark those that you've already translated somehow (e.g. colorize them, or add additional column with your notes, all that stuff won't be transferred into the actual patch), and when you're done simply delete all other rows.

2) Full translation. Just use my patch or RAW as a starting point, you'll be able to keep your patch updated with the help of Launcher.

3) Improve my patches. I would be happy if you could look in the side of mods. Later on, with your consent, I could pull some of your translation (or all) into my patch, or add it to the "project", when those will be out.

"Modify meta forcing game to search in root" button is basically and Advanced tab alternative to the upcoming Simple tab "Force" patching style. This button will modify game meta in the way that the game will search translation files by those paths (example on JP paths):
  • prestringtable\jp\languagedata.xlsm
  • stringtable\jp\stringtable_cutscene_jp.xlsm
  • stringtable\jp\stringtable_jp.xlsm
  • stringtable\jp\symbolnostringtable_jp.xlsm
It is the same thing for other versions, except that obviously you'll need to replace "jp" with the modified language (kr/en/ru/tw/fr/de).
"Restore original meta" - use this button to restore original meta file before you update the client, if you've previously modified it using Launcher (you can also manually restore meta from backup folder, which can be found at "Launcher\BDO\BU\SERVER\VERSION", as an example here is current JP backup folder "Launcher\BDO\BU\JP\340(4941)").
You can find out if your meta is modified by looking at Indication of BDO Meta.

Starting from Launcher v0.7b+ this button utilize FEX selection in Advanced tab for Force patching, instead of the previous predefined files, so don't forget to manage Force patching selection in Advanced tab to your needs.

RU-Specific UI (v0.7b15 or lower):
All of the following buttons are related to Force patching - do not use them for Safe patching style.
"Backup GameNet torrent" - Backups GameNet torrent file used by GameNet updater to update and seed RU client.
"Restore GameNet torrent" - Restores previously backed-up GameNet torrent.
"Delete GameNet torrent" - Deletes GameNet torrent (it might be useful if you have problems updating RU client). Make sure you have its backup before deletion, just in case.
"Freeze GameNet processes" - Pauses all currently running GameNet processes.
"Un-freeze prev. frozen GameNet processes" - Resumes all GameNet processes paused with "Freeze GameNet processes" button.
"Un-freeze GameNet processes" - Resumes all currently running GameNet processes.
"Sub BDO events" - Manually subscribe to BDO events in order to Auto-Patch the client.
"Unsub BDO events" - Manually unsubscribe from BDO events to prevent any further actions when starting/exiting the game.
"Auto-Patch" - Auto-Patch#1.
"Don't freeze" - If checked, prevents the freeze of GameNet processes during Auto-Patch#1 and Auto-Patch#2.
"After BDO start" - If checked, Auto-Patch#1 and Auto-Patch#2 will start patching the client after BDO start (if unchecked - before).
"Delay (ms)" - The delay is in milliseconds. It will act before the meta change in Auto-Patch#1 and Auto-Patch#2. Freeze will also be delayed. I've implemented it in a dirt way (for the testing purposes, I'll redo it properly in some future version), so UI may seem unresponsive for the duration of delay - it's fine, don't close Launcher. Leave it blank, 0 or negative to remove the delay.
"Create Prepatched Meta" - Creates prepatched meta for the Auto-Patch#2.
"Auto-Patch#2" - Auto-Patch#2. Use "Create Prepatched Meta" after each client update before execution of Auto-Patch#2.

Auto-Patch#1 and Auto-Patch#2 are currently in open testing phase - they're not guaranteed to successfully patch your client (as the reports go - so far they do, with different settings though).

How to use "Auto-Patch#1":
1) Start the Launcher. Make sure that first 3 dots for BDO RU are lime (green), if they aren't then go to BDO Patcher, select RU server and press "Restore original meta" and "Restore GameNet torrent" under Advanced tab.
Make sure that English or whichever translation files are in correct places inside game folder (stringtable and prestringtable).
Make sure that Log is running (Main window menu => "Tools" => "Log".
2) Start GameNet launcher.
3) Configure your Auto-Patching settings in Advanced tab:
  • Check/uncheck "Don't freeze" checkbox.
  • Check/uncheck "After BDO start" checkbox.
  • Set/Unset the Delay.
Press Auto-Patch in advanced tab and DO NOT close Launcher.
4) Start Black Desert
5) Just look if the game is translated. You can continue to play as long as you want.
6) Close BDO.
7) In the Launcher Log press "Save Log" and save it somewhere, or just copy paste the log and send it to me in PM. It should contain chronology.
If the log is not on screen then simply press LMB on one of the 2 tray icons with numbers on them (they should appear with Log start).

How to use "Auto-Patch#2" and report your experience:
1) Start the Launcher. Make sure that first 3 dots for BDO RU are lime (green), if they aren't then go to BDO Patcher, select RU server and press "Restore original meta" and "Restore GameNet torrent" under Advanced tab.
Make sure that English or whichever translation files are in correct places inside game folder (stringtable and prestringtable).
Make sure that Log is running (Main window menu => "Tools" => "Log".
2) Now when they're lime - press the "Create Prepatched Meta" button in Advanced tab. When it will say "Done" go to the next step.
3) Start GameNet launcher.
4) Configure your Auto-Patching settings in Advanced tab:
  • Check/uncheck "Don't freeze" checkbox.
  • Check/uncheck "After BDO start" checkbox.
  • Set/Unset the Delay.
Press Auto-Patch#2 in advanced tab and DO NOT close Launcher.
5) Start Black Desert
6) Just look if the game is translated. You can continue to play as long as you want.
7) Close BDO.
8) In the Launcher Log press "Save Log" and save it somewhere, or just copy paste the log and send it to me in PM. It should contain chronology.
If the log is not on screen then simply press LMB on one of the 2 tray icons with numbers on them (they should appear with Log start).

Auto-Patching with "After BDO start" checked has serious danger or protection kicking in, IDK how well designed their protection is but this action can be considered as a threat (none of the volunteers, that tested it in the closed tests, have reported any issues with protection kicking in, but you should still be aware of such possibility and it would be wise to try other ways of patching before going with checked "After BDO start"). Also there's really no point in doing Auto-Patch#1 with "Don't freeze" as it probably won't manage to edit meta in time, but you can still try.

If Auto-Patching clearly didn't work - it will be a good idea to restart Launcher and then press "Restore original meta", "Restore GameNet torrent", "Un-freeze GameNet processes" under Advanced tab, prior to trying the other way (even if they'll be shown as lime). Alternatively if UI isn't grayed out and you don't want to restart Launcher you can press "Restore original meta", "Restore GameNet torrent", "Un-freeze GameNet processes", "Unsub BDO events".
If you'll have any errors - make sure to send me the "EvLog" folder with logged errors.
The translation files which I mentioned should be there:
BlackDesert/live/prestringtable/ru/languagedata.xlsm
BlackDesert/live/stringtable/ru/stringtable_ru.xlsm
BlackDesert/live/stringtable/ru/stringtable_cutscene_ru.xlsm
BlackDesert/live/stringtable/ru/symbolnostringtable_ru.xlsm

Starting from Launcher v0.7b5+ RU server auto-patches utilize FEX selection in Advanced tab for Force patching, instead of the previous predefined files, so don't forget to manage Force patching selection in Advanced tab to your needs before executing auto-patch.

RU-Specific UI (v0.7b16 or higher):
Read "RU-Specific UI (v0.7b15 or lower)" above^.
"Auto-Patch" button now reassembles both Auto-Patches, configurable through the input of delay and new(modified) checkbox-selections:
  • "Freeze GN" - If checked, freezes GameNet processes during Auto-Patch.
  • "After BDO start" - If checked, Auto-Patch will start patching the client after BDO start (if unchecked - before).
  • "Use prepatched meta" - If checked will patch using prepatched meta (e.g. previous Auto-Patch#2 style), otherwise will patch meta (e.g. previous Auto-Patch#1 style).
  • "Patch meta" - If checked will patch meta, if unchecked will omit patching meta.
  • "Patch loc" - If checked will patch loc, if unchecked will omit patching loc (example of patch compatible with loc patching can be found THERE).

If you'll have any questions regarding RU client Force Auto-Patching - feel free to ask them.

JP-Specific UI:
JP-Specific UI:
"Auto-Patch" - Automatic game patching. Auto-Patch won't work out of the box, example of patch compatible with Auto-Patch can be found THERE.
"Unsub BDO events" - Manually unsubscribe from BDO events to prevent any further actions when starting/exiting the game.
"Restore LOC" - Restores previously backed-up Loc file.

How to use "Auto-Patch":
Each time before starting the game, follow this simple steps:
1) Start Launcher. Make sure that 1st dot for BDO JP is lime (green), orange, yellow or blue, in case it's not read THAT. 3rd dot should be lime (green).
2) In Launcher menu click on "Tools" => "BDO Patcher".
3) Select "JP" Server if another server is selected.
4) Click on "Advanced" tab.
5) Press "Auto-Patch" button.
6) Start Black Desert JP and leave Launcher sitting in background.
7) After closing the game you can close Launcher if you want.
If you're paranoid about Launcher and don't want it sitting in your background - after step #6, when the game window appears - click "Unsub BDO events" and close Launcher, but remember that the next time before starting Pmang updater you will need to press "Restore LOC", unless you're OK with it rechecking and updating the client. In case Launcher crashes for whatever reason during your gameplay, the same thing - remember that the next time before starting Pmang updater you will need to press "Restore LOC", unless you're OK with it rechecking and updating the client.



Return to “BDO Patcher”

Who is online

Users browsing this forum: No registered users and 1 guest