diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 0000000..ad38027 --- /dev/null +++ b/BUILDING.md @@ -0,0 +1,40 @@ +# Building Novus + +## Dependencies + +### Required + +All of these packages are required for Astra to build with a minimal set of features. + +* Linux + * Windows, macOS and other systems may work but are currently unsupported. +* CMake 3.25 or later +* Qt 5.15 or later +* Rust + +## Configuring + +**Note:** Some dependencies will automatically be downloaded from the Internet if not found on your system. This functionality may change in the future. + +To configure, run `cmake` in the source directory: + +```bash +$ cd novus +$ cmake -S . -B build +``` + +This command will create a new build directory and configure the source directory (`.`). If you want to enable more options, pass the mnow: + +```bash +$ cmake -S . -B build -DSOME_OVERRIDE=ON +``` + +## Building + +Now begin building the project: + +```bash +$ cmake --build build +``` + +If the build was successful, you'll find each binary under their respective folder in `build/`. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d186359 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,5 @@ +# Contributing to Novus + +I appreciate any code contributions to Novus, whether they are bugfixes or new features! this repository is managed on [sourcehut](https://git.sr.ht/~redstrate/novus). + +Once you finished your changes, use [git send-email](https://git-send-email.io/) or the [sourcehut web contributor interface](https://git.sr.ht/~redstrate/novus/send-email) to upload them. Please send your patches to [~redstrate/public-inbox@lists.sr.ht](mailto:~redstrate/public-inbox@lists.sr.ht). diff --git a/README.md b/README.md index d05add6..918036b 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,31 @@ # Novus -This is a collection of cross-platform, FFXIV modding tools. These don't use any pre-existing modding framework (Lumina, -xivModdingFramework, etc) but instead my own custom modding library, [libxiv](https://git.sr.ht/~redstrate/libxiv). - -The goal is to create a good set of tools that isn't based on WPF and C#, and can work cross-platform without having -to resort to Wine. +A suite of FFXIV modding tools for Linux. **Note:** This is alpha level software, not intended to be usable in any capacity at the moment. Thus, I have not tagged any stable releases. -## exdviewer +## Components -This is used to view excel data from the game. It's pretty basic right now but it seems to read anything I throw at it just fine. +This repository contains many parts of Novus, such as: +* [Argcracker](argcracker), a program that can decrypt game arguments. +* [Armoury](armoury), a graphical gear and character viewer. +* [Bone Decompiler](bonedecomp), a tool to decompile Havok skeleton files into TexTools-compatible JSON. +* [EXD Viewer](exdviewer), a graphical program to view Excel (EXD) sheets from the game. +* [Explorer](explorer), a graphical interface to explore DAT files. +* [Model Viewer](mdlviewer), a graphical model viewer for MDL files. -![exdviewer screenshot](misc/exdviewer-screenshot.png) +## Building -### Usage +Please refer to the [building document](BUILDING.md) for instructions on how to build Novus. -You must pass the path to your `sqpack` directory as the first argument. +## Contributing -`exdviewer.exe C:\Program Files (x86)\SquareEnix\Final Fantasy XIV\game\sqpack` +Please refer to the [contributing document](CONTRIBUTING.md) for everything you need to know to get started contributing to Novus. -## mdlviewer +## License -This can display any arbitrary model from the game, as long as it's supported by libxiv. +![GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png) -![mdlviewer screenshot](misc/mdlviewer-screenshot.png) - -### Usage - -You must pass the path to your `sqpack` directory as the first argument. - -`mdlviewer.exe C:\Program Files (x86)\SquareEnix\Final Fantasy XIV\game\sqpack` - -### Note - -The viewport uses Vulkan, so it must be supported on your system in order to work. - -If you're running mdlviewer on macOS (where Qt builds usually don't ship with MoltenVK unfortunatey) -mdlviewer will automatically reconfigure itself to use a standalone SDL2 window. - -## explorer - -This tool can list known files by libxiv, such as excel sheets. - -### Usage - -You must pass the path to your `sqpack` directory as the first argument. - -`explorer.exe C:\Program Files (x86)\SquareEnix\Final Fantasy XIV\game\sqpack` - -## argcracker - -This can crack any SqexArg formatted string you throw at it. However there are two -caveats: - -1. You must know the current TickCount() when you got the string, the easiest -way is to run your victim program and then run argcracker right after. -2. You must know at least one known argument (such as `UserPath`) or the decrypted result -will -3. be hard to find. - -### Usage - -`argcracker.exe [sqexarg string] [tick range] [known arg]` - -`argcracker.exe //**sqex0003p8LrsXt9_m9RJAsGzXd66zb3SxeTqZdhV**// 1000 UserPath` +This project is licensed under the [GNU General Public License 3](LICENSE). Some code or assets may be licensed differently, please refer to the [REUSE](https://reuse.software/spec/) metadata. \ No newline at end of file diff --git a/argcracker/README.md b/argcracker/README.md new file mode 100644 index 0000000..a8e919e --- /dev/null +++ b/argcracker/README.md @@ -0,0 +1,19 @@ +# argcracker + +This can crack any SqexArg formatted string you throw at it. However there are two +caveats: + +1. You must know the current TickCount() when you got the string, the easiest way is to run your victim program and then run argcracker right after. +2. You must know at least one known argument (such as `UserPath`) or the decrypted result will be hard to find. + +## Usage + +```bash +$ argcracker.exe [sqexarg string] [tick range] [known arg]` +``` + +Example: + +```bash +`$ argcracker.exe //**sqex0003p8LrsXt9_m9RJAsGzXd66zb3SxeTqZdhV**// 1000 UserPath` +``` \ No newline at end of file diff --git a/armoury/README.md b/armoury/README.md new file mode 100644 index 0000000..6334249 --- /dev/null +++ b/armoury/README.md @@ -0,0 +1,20 @@ +# Armoury + +The Armoury can display any gear piece in the game, and includes a full model viewer and export functionality. Basic character and bone editing is supported. + +![mdlviewer screenshot](../misc/mdlviewer-screenshot.png) + +## Usage + +You must pass the path to your `sqpack` directory as the first argument. + +``` +$ mdlviewer "C:\Program Files (x86)\SquareEnix\Final Fantasy XIV\game\sqpack" +``` + +## Note + +The viewport uses Vulkan, so it must be supported on your system in order to work. + +If you're running mdlviewer on macOS (where Qt builds usually don't ship with MoltenVK unfortunatey) +mdlviewer will automatically reconfigure itself to use a standalone SDL2 window. diff --git a/bonedecomp/README.md b/bonedecomp/README.md new file mode 100644 index 0000000..739690b --- /dev/null +++ b/bonedecomp/README.md @@ -0,0 +1,3 @@ +# bonedecomp + +A tool to decompile Havok skeleton files into TexTools-compatible JSON. \ No newline at end of file diff --git a/exdviewer/README.md b/exdviewer/README.md new file mode 100644 index 0000000..98345f1 --- /dev/null +++ b/exdviewer/README.md @@ -0,0 +1,14 @@ +# EXD Viewer + +EXD Viewer can view excel data from the game, and can decode well known sheets using Garlond Tools. + +![exdviewer screenshot](../misc/exdviewer-screenshot.png) + +## Usage + +You must pass the path to your `sqpack` directory as the first argument. + +```bash +$ exdviewer "C:\Program Files (x86)\SquareEnix\Final Fantasy XIV\game\sqpack" +``` + diff --git a/explorer/README.md b/explorer/README.md new file mode 100644 index 0000000..f658623 --- /dev/null +++ b/explorer/README.md @@ -0,0 +1,11 @@ +# explorer + +This tool can list known files by libxiv, such as excel sheets. + +## Usage + +You must pass the path to your `sqpack` directory as the first argument. + +```bash +$ explorer "C:\Program Files (x86)\SquareEnix\Final Fantasy XIV\game\sqpack" +``` diff --git a/mdlviewer/README.md b/mdlviewer/README.md new file mode 100644 index 0000000..4807907 --- /dev/null +++ b/mdlviewer/README.md @@ -0,0 +1,3 @@ +# Model Viewer + +The Model Viewer can display MDL files supported by the game. \ No newline at end of file diff --git a/sdklauncher/README.md b/sdklauncher/README.md new file mode 100644 index 0000000..e69de29