This repository contains game patches for Xenia.
Game patches are now included with Xenia Canary.
- Xenia Canary must be set to portable. (see below)
- Download the zip file.
- Extract the patches folder to the proper location:
Location Default Documents\xenia
portable.txt Same directory as xenia.exe
- Continue to enabling patches.
- Open the patch file on GitHub.
- Right click
Raw
, and clickSave Page As
. - Place the file into the
patches
folder. - Continue to enabling patches.
apply_patches
must be set to true
in the Xenia config!
To enable patches, open the .patch.toml file that corresponds to your game in a text editor (Notepad, VSCode, VSCodium, Notepad++, etc.), and change is_enabled
from false
to true
.
These patches do not increase resolution!
While most aspect ratio patches are 21:9 (3440/1440), they can be changed to other aspect ratios as well;
- Divide your monitor's resolution width by height (i.e. 3440/1440)
- Convert the result to hex.
- Change the value to
0x########
replacing########
with the hex value.
- When submitting a patch, create a Pull Request for a file to be added to
/patches
. - New file must be named
Title ID - Game Title.patch.toml
For example, a patch file for Blue Dragon must be called4D5307DF - Blue Dragon.patch.toml
. - If the game you are submitting a patch for already has a file, then add to that file.
- New file must contain the module hash, which can be automatically or manually obtained.
- For games with multiple executables or discs, it can have multiple hashes, but they must be commented out like so: https://github.com/xenia-canary/game-patches/blob/11cc67c9c62e3ea18927f6e57bcd29b8839a7336/patches/4D5307DF%20-%20Blue%20Dragon.patch.toml#L1-L5
- File must contain an empty line at the end.
- Cheat Engine
- Ghidra
- IDA Pro
- Text editors:
- Recommended but optional:
- ESLint TOML plugin
- Visual Studio Code/VSCodium extensions:
Memory Breakpoints can be set in Cheat Engine or MSVC with emit_source_annotations = true
. This will give annotations in disassembly.
- Cheat Engine 7.2+ includes Big Endian types, but they must be enabled;
- Click
Edit
>Options
>Extra Custom Types
and check all of them.
- Click
- Go to
Scan Settings
and enableMEM_MAPPED
. - Change 'Memory Scan Options' to:
All Start 100000000
Stop 200000000
- This may change depending on the programs you have running.
- Once you find a value you can attach Cheat Engine's debugger to see what reads/writes to that address.
This will show an xex address when a breakpoint is hit, although there is currently no way to set a breakpoint on execution within the Xenia Debugger.
To make things easier, it's recommended to put Xenia in the directory that contains /patches
and run it with portable.txt
.
- Set
log_level
to at least2
(default) in the Xenia config; See How to use for location. - Run the game at least once.
- Close Xenia.
- Obtain module hash/title ID/title name;
- Automatic (Bash script, recommended):
- Open
create_patch.sh
- To run in a terminal:
# You may need to run: #chmod +x create_patch.sh ./create_patch.sh
- To run in a terminal:
- Follow the instructions.
- Open
- Manual:
- Search Ctrl+F for
Module hash:
inxenia.log
You should see something like:Module hash: 0000000000000000 for default
- Search Ctrl+F for
- Automatic (Bash script, recommended):