Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
deggua committed May 4, 2019
1 parent e4e48f6 commit 68fb016
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ You can either use the batch files provided in the release (you'll need to edit
## FAQ:

**Q:** Which DLL do I use?\
**A:** If you just want to use the translation, use LoaderDLL; if you want to dump the files yourself, use DumperDLL.\
**A:** If you just want to use the translation, use LoaderDLL; if you want to dump the files yourself, use DumperDLL.

**Q:** How do I use the XMLTranslator?\
**A:** Read the readme.txt in the XMLTranslator folder.\
**A:** Read the readme.txt in the XMLTranslator folder.

**Q:** How does it work?\
**A:** Both of the DLLs hook a certain point in the function that loads files from within .db archives. When the file is loaded, depending on which DLL you used, the DLL will intercept the function and either write the file to the disk (if it does not already exist), or, if a file exists in the /gamedata/ folder matching the file being loaded, create a new buffer in memory that is filled with the file contents of the file in the /gamedata/ folder. The file contents pointer is changed to the new buffer and it then frees the old buffer and returns to the original function. The injector launches xrEngine.exe with it's thread suspended so that it can hook every file that is loaded. Once the DLL is injected the thread is resumed and the application continues. Files are dumped when loaded, so in order to dump _every_ file you'll need to play through most of the game with the DumperDLL injected.\
**A:** Both of the DLLs hook a certain point in the function that loads files from within .db archives. When the file is loaded, depending on which DLL you used, the DLL will intercept the function and either write the file to the disk (if it does not already exist), or, if a file exists in the /gamedata/ folder matching the file being loaded, create a new buffer in memory that is filled with the file contents of the file in the /gamedata/ folder. The file contents pointer is changed to the new buffer and it then frees the old buffer and returns to the original function. The injector launches xrEngine.exe with it's thread suspended so that it can hook every file that is loaded. Once the DLL is injected the thread is resumed and the application continues. Files are dumped when loaded, so in order to dump _every_ file you'll need to play through most of the game with the DumperDLL injected.

**Q:** The translation is garbage, can I improve it?\
**A:** Absolutely. If you make a commit with some improved XMLs I'll look them over and if everything looks good I'll merge it.\
**A:** Absolutely. If you make a commit with some improved XMLs I'll look them over and if everything looks good I'll merge it.

**Q:** How do I compile everything?\
**A:** The Injector and XMLTranslator can be compiled with any version of Visual Studio with C++ and C# installed. The XMLTranslator has a dependency on [YandexTranslateCSharpSdk](https://github.com/anovik/YandexTranslateCSharpSdk). The DLLs require the [Intel Compiler](https://software.intel.com/en-us/parallel-studio-xe) to be compiled because MSVC does not support 64-bit inline assembly.\
**A:** The Injector and XMLTranslator can be compiled with any version of Visual Studio with C++ and C# installed. The XMLTranslator has a dependency on [YandexTranslateCSharpSdk](https://github.com/anovik/YandexTranslateCSharpSdk). The DLLs require the [Intel Compiler](https://software.intel.com/en-us/parallel-studio-xe) to be compiled because MSVC does not support 64-bit inline assembly.

## Dependencies
* Uses [YandexTranslateCSharpSdk](https://github.com/anovik/YandexTranslateCSharpSdk)

0 comments on commit 68fb016

Please sign in to comment.