Utilities for randomizing and patching aspects of Tales of Vesperia: Definitive Edition.
These tools were created in part for an eventual integration of the game into the Archipelago Randomizer framework, but can work standalone with the bundled Basic Randomizer.
NOTICE
Though most of the randomization will apply regardless of regional settings, event and string data are localized by the game, and vesperando currently does not support modifying the corresponding data for non-English settings.
- Artes Randomization
- Skills Randomization
- Items Randomization
- Shops Randomization
- Chests Randomization
- Search Point Randomization
- Events Randomization (Main Story, Arc 1)
For a more comprehensive list of randomization targets, visit the features document.
Vesperando is available a command line utility. It is recommended to use a terminal to use this application.
The application must be provided the path to the game directory to function properly.
When running the application for the first time, it will attempt to detect where this directory is by itself.
This will create the path config/settings.yaml. This file can also be generated with the following command:
vesperando_cli make-config settings
If the detected game directory is incorrect, this file can be edited to provide the correct path.
# settings.yaml
paths:
game: path/to/game_directoryForward slashes can be used in Windows filesystems. If using backslashes, please escape them with
another backslash (e.g. path\\to\\game_directory).
A basic randomization patch can be generated using the generate command.
This will output a patch file that uses the file extension .vbrp.
vesperando_cli generate targets
targets can be any of artes, skills, items, shops, chests, search which specifies which aspect of the
game should be randomized. targets can also be discarded in favor of options. See the options for more information about creating and using options.
| Option | Description |
|---|---|
-n, --name |
Name of the Patch |
-o, --options |
Path to an options file |
-s, --spoil |
Generate a Spoiler Sheet after generation |
--seed |
Seed to use for generation |
The options file that can be used with this command can be generated by using the make-config command.
vesperando_cli make-config options
When a patch file is ready, it a patch output can then be generated.
vesperando_cli patch patch_file
If no patch_file is provided, the application will list all available patch files
it can find in the PATCHES directory, and will prompt which one to use for patching.
| Option | Description |
|---|---|
-t, --threads |
Amount of CPU Threads to use during patching |
-c, --clean |
Clear the build directory after patching |
-a, --apply-immediately |
After patching, apply it to the game immediately |
A Spoiler Sheet can be generated from a patch file separately.
vesperando_cli spoil patch_file
If no patch_file is provided, the application will list all available patch files
it can find in the PATCHES directory, and will prompt which one to use for spoiling.
Pre-exisiting Patch Outputs can be applied without running the Patch command again.
vesperando_cli apply patch_name
patch_name can be the name of the patch output, or the patch file the output is generated from.
If no patch_name is provided, the application will list all available patch outputs
it can find in the OUTPUT directory, and will prompt which one to use for applying.
Any applied patches to the game can be reverted by using the restore command.
vesperando_cli restore
In the event the game is not restored properly, it is recommended to verify its game files using Steam.
This can be done by going to Steam > Library > Tales of Vesperia: Definitive Edition > Propterties >
Installed Files > Verify integrity of game files. Otherwise, the game must be reinstalled.
First and foremost, clone this repository.
git clone --recurse-submodules https://github.com/aidanii24/vesperando
As good practice, please use a virtual environment.
python -m venv .venv
source .venv/bin/activate
# Windows
# .\venv\Scripts\activate.bat
The following utilities must be available on your system to properly build and install vesperando packages.
gcc(for comptoe)
Environment setup is largely automated by using the setup_dev.py script inside the scripts directory.
Simply run this script.
python scripts/setup_dev.py
For a manual setup, pip can directly be provided the main directories to install dependencies,
as they each have their own pyproject.toml. It is recommended to install the main modules in an editable state
during development,
pip install -e core/
pip install -e cli/
Vesperando uses PyInstaller to bundle and create an executable. A .spec file is already provided to easily generate a release.
First, ensure that all dependencies are installed.
python scripts/setup_build.py
Or for a manual setup, use pip, and specify for the cli package to include build dependencies.
pip install -e core/
pip install -e cli/[build]
Once all dependencies are installed, use PyInstaller to build the executable.
pyinstaller vesperando_cli.spec
Note that vesperando_core will have to build complib.
The binaries will be available in the generated dist directory upon a successful build.
- Event Rewards Patching
- Text Patching (string_dic_.so)
- Adding new Icons for in-game use
- Implement GUI
- Archipelago Support
Thanks to @Sora3100 for providing me with the knowledge and resources to make this possible.
Thank you to @AdmiralCurtiss for the development of HyoutaTools, and the team behind @lifebottle and the original work of @talestra for developing comptoe. These tools are necessary for the patcher to access various files of the game, and this would not have been possible without them.