Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cb3db372df | |||
| 2fee742f75 | |||
| b36d217284 | |||
| 8520356083 | |||
| 9bd1379244 | |||
| 7d7967f477 | |||
| 8550abdf9f | |||
| 912bc2e55f | |||
| f0da1b8456 |
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 mkrsym1 <mkrsym1@gmail.com>
|
||||
Copyright (c) 2023-2024 mkrsym1 <mkrsym1@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
12
README.md
12
README.md
@ -1,10 +1,14 @@
|
||||
# Jadeite Autopatcher
|
||||
### Current game support:
|
||||
- **3rd**: glb/sea/tw/kr/jp **v7.1.0+**, cn **v7.2.0+**
|
||||
- **SR**: os/cn **v1.6.0**
|
||||
- **3rd**: glb/sea/tw/kr/jp **v7.2.0+**, cn **v7.3.0+**
|
||||
- **SR**: os/cn **v2.0.0**\*
|
||||
|
||||
You can expect newer versions to work immediately after release with the same jadeite binary if the version is specified with a + above.
|
||||
|
||||
**Note:** you can test the experimental version-independent patching method for SR. See [#37](https://codeberg.org/mkrsym1/jadeite/issues/37).
|
||||
|
||||
**Note:** the Steam version of 3rd was reported to work, however I neither tested it nor intend to support it, so it might break at any time. Use at your own risk.
|
||||
|
||||
## Information
|
||||
The anticheat the games use is fundamentally incompatible with Wine in multiple ways. This tool launches the game without it (`injector`) and imitates it's behaviour (`game_payload`).
|
||||
|
||||
@ -38,8 +42,12 @@ Example command: `jadeite.exe 'Z:\path\to\game.exe' -- -screen-fullscreen 1`
|
||||
## Configuration
|
||||
These environment variables can be used to configure the behaviour of the tool. Any value except empty string counts as set. `1` will be used in all examples.
|
||||
|
||||
**Global**:
|
||||
- `WAIT_BEFORE_RESUME=1` - show a messagebox and wait for user input before resuming the game process. Useful on my side for debugging
|
||||
|
||||
**SR-specific**:
|
||||
- `BREAK_CRYPTCAT=1` - use the experimental patching method. See [#37](https://codeberg.org/mkrsym1/jadeite/issues/37) for details
|
||||
|
||||
## Internals and building
|
||||
To compile jadeite, you will need meson, mingw and nasm. You can probably install all three using your repository's package manager. Once all dependencies are installed, run `./build.sh` in this directory. The compiled files will be located in `./out`.
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ const char *HSR_ASSEMBLY_PATH = "GameAssembly.dll";
|
||||
const char *HSR_TXS_SECTION_NAME = ".ace";
|
||||
const char *HSR_TVM_SECTION_NAME = ".tvm0";
|
||||
|
||||
#define HSR_VERSION "1.6.0"
|
||||
#define HSR_VERSION "2.0.0"
|
||||
|
||||
enum hsr_region {
|
||||
HSR_INVALID,
|
||||
@ -23,14 +23,14 @@ struct crc_region_pair {
|
||||
};
|
||||
|
||||
const struct crc_region_pair HSR_REGIONS[] = {
|
||||
{ 0x5741ce50, HSR_OS }, // os v1.6.0
|
||||
{ 0xce891f97, HSR_CN } // cn v1.6.0
|
||||
{ 0x5be3a560, HSR_OS }, // os v2.0.0
|
||||
{ 0x974e826f, HSR_CN } // cn v2.0.0
|
||||
};
|
||||
|
||||
#define JUMP_SIZE (6 + sizeof(void*))
|
||||
|
||||
// Temporarily hardcoded offset
|
||||
// v1.6.0, same for os and cn
|
||||
// v2.0.0, same for os and cn
|
||||
#define WTSUD_PATCH_OFFSET 0x16510
|
||||
|
||||
char wtsud_original_bytes[JUMP_SIZE];
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
project('jadeite', 'c', version: '3.1.0')
|
||||
project('jadeite', 'c', version: '3.1.1')
|
||||
|
||||
nasm = find_program('nasm')
|
||||
gen_res = find_program('gen_resources.sh')
|
||||
|
||||
@ -1,42 +1,42 @@
|
||||
{
|
||||
"jadeite": {
|
||||
"version": "3.1.0"
|
||||
"version": "3.1.1"
|
||||
},
|
||||
"games": {
|
||||
"hi3rd": {
|
||||
"global": {
|
||||
"status": "verified",
|
||||
"version": "7.1.0"
|
||||
"version": "7.2.0"
|
||||
},
|
||||
"sea": {
|
||||
"status": "verified",
|
||||
"version": "7.1.0"
|
||||
"version": "7.2.0"
|
||||
},
|
||||
"china": {
|
||||
"status": "verified",
|
||||
"version": "7.2.0"
|
||||
"version": "7.3.0"
|
||||
},
|
||||
"taiwan": {
|
||||
"status": "verified",
|
||||
"version": "7.1.0"
|
||||
"version": "7.2.0"
|
||||
},
|
||||
"korea": {
|
||||
"status": "verified",
|
||||
"version": "7.1.0"
|
||||
"version": "7.2.0"
|
||||
},
|
||||
"japan": {
|
||||
"status": "verified",
|
||||
"version": "7.1.0"
|
||||
"version": "7.2.0"
|
||||
}
|
||||
},
|
||||
"hsr": {
|
||||
"global": {
|
||||
"status": "verified",
|
||||
"version": "1.6.0"
|
||||
"status": "unverified",
|
||||
"version": "2.0.0"
|
||||
},
|
||||
"china": {
|
||||
"status": "verified",
|
||||
"version": "1.6.0"
|
||||
"status": "unverified",
|
||||
"version": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user