Added more documentation

This commit is contained in:
gijs 2023-09-22 14:54:56 +02:00
parent f3705144b8
commit f34439e5f1
1 changed files with 18 additions and 1 deletions

View File

@ -1,7 +1,24 @@
# Introduction
This little tool downloads the Flyff Universe game page and splits in into several files used for decompilation and injection. This little tool downloads the Flyff Universe game page and splits in into several files used for decompilation and injection.
- First it downloads the HTML from https://universe.flyff.com/play. - First it downloads the HTML from https://universe.flyff.com/play.
- It executes the JavaScript to find out the `FilemapVersion` . - It executes the JavaScript to find out the `FilemapVersion` .
- Then it downloads the game client's WASM object alongside it's Emscripten runtime JS. - Then it downloads the game client's WASM object alongside it's Emscripten runtime JS.
- The symbols that the game uses are exported into the Emscripten runtime JS, so this file is parsed to get as much information as possible. - The symbols that the game uses are exported into the Emscripten runtime JS, so this file is parsed to get as much information as possible.
- Using these symbols, it consolidates both imports and exports into a single JSON file, which is used by [fugg-fix-mapping](https://git.noest.dev/gijs/fugg-fix-mapping). - Using these symbols, it consolidates both imports and exports into a single JSON file, which is used by [fugg-fix-mapping](https://git.noest.dev/gijs/fugg-fix-mapping).
# Build & Run
*Make sure you have `node` and `npm` installed and in your `PATH` environment variable.*
1. Clone the repository.
2. Run `npm install`.
3. Run `npm start` to run the program.
4. The following generated files are located in the `out` folder.
- `functions.json`: Contains the import and export mapping of the Emscripten runtime JS.
- `index.html`: A downloaded copy of the web page.
- `client-original.js`: The minified Emscripten runtime JS as served by the web page.
- `client-beautified.js`: The beautified Emscripten runtime JS so it's human readable.
- `client-original.wasm`: The extracted client binary used by the game.