9 Commits

Author SHA1 Message Date
cb3db372df v3.1.1 2024-02-06 00:05:07 +02:00
2fee742f75 SR 2.0.0: bump game version 2024-02-05 16:28:28 +02:00
b36d217284 SR 2.0.0: update checksums 2024-02-05 16:27:29 +02:00
8520356083 General repo maintenance 2024-02-04 10:18:22 +02:00
9bd1379244 Document that the Steam version of 3rd works 2024-02-04 10:15:51 +02:00
7d7967f477 Marked 3rd cn v7.3.0 as verified 2024-02-02 12:13:03 +02:00
8550abdf9f Marked HI3 glb/sea/tw/kr/jp 7.2.0 as verified 2024-01-18 20:11:10 +02:00
912bc2e55f Fixed documentation 2024-01-08 16:18:51 +00:00
f0da1b8456 Documented experimental patching method 2024-01-08 18:17:13 +02:00
5 changed files with 27 additions and 19 deletions

View File

@ -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

View File

@ -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`.

View File

@ -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];

View File

@ -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')

View File

@ -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"
}
}
}