6 Commits

Author SHA1 Message Date
d22ded3d27 v3.0.7 2023-08-30 01:06:26 +03:00
15c403b0d1 Improve invalid checksum error message 2023-08-30 01:05:53 +03:00
1cc16ecbd9 Document HSR 1.3.0 support 2023-08-28 18:21:13 +03:00
ffe75e9de7 Update checksums to HSR 1.3.0 2023-08-28 18:19:36 +03:00
243e39d04b Optimized memory allocation in core 2023-08-26 21:24:56 +03:00
daa5585527 Update game version list in the readme 2023-08-17 23:11:46 +03:00
5 changed files with 13 additions and 11 deletions

View File

@ -1,8 +1,8 @@
### Games and regions
- **3rd**: glb/sea/tw/kr/jp **v6.8.0**, **cn v6.9.0 broken**
- **SR**: os/cn **v1.2.0** (potentially unsafe, but no bans were reported since v1.1.0)
- **3rd**: glb/sea/tw/kr/jp **v6.8.0**, cn **v6.9.0+**
- **SR**: os/cn **v1.3.0** (potentially unsafe, but no bans were reported since v1.1.0)
~~You can expect newer versions of 3rd to work immediately after release with the same jadeite binary. However, that is not the case for SR: you will have to update your jadeite binary to run newer versions.~~ 6.9.0 investigation is in progress, please wait. #25
You can expect newer versions to work immediately after release with the same jadeite binary if the version is specified with a + above.
### 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`).

Binary file not shown.

View File

@ -9,6 +9,8 @@ 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.3.0"
enum hsr_region {
HSR_INVALID,
HSR_OS,
@ -21,14 +23,14 @@ struct crc_region_pair {
};
const struct crc_region_pair HSR_REGIONS[] = {
{ 0x9eb3084e, HSR_OS }, // os v1.2.0
{ 0x14be07e9, HSR_CN } // cn v1.2.0
{ 0x748c8f9c, HSR_OS }, // os v1.3.0
{ 0x76e85a40, HSR_CN } // cn v1.3.0
};
#define JUMP_SIZE (6 + sizeof(void*))
// Temporarily hardcoded offset
// v1.2.0, same for os and cn
// v1.3.0, same for os and cn
#define WTSUD_PATCH_OFFSET 0x16430
char wtsud_original_bytes[JUMP_SIZE];
@ -86,7 +88,7 @@ void hsr_fill_data(struct game_data *buf) {
}
if (id == HSR_INVALID) {
msg_err_a("Invalid UnityPlayer.dll checksum: 0x%08x. This usually happens when the patch is outdated", crc);
msg_err_a("Invalid UnityPlayer.dll checksum: 0x%08x. This patch is intended to be used with HSR v" HSR_VERSION, crc);
}
buf->base_module_name = HSR_BASE_MODULE_NAME;

View File

@ -1,4 +1,4 @@
project('jadeite', 'c', version: '3.0.6')
project('jadeite', 'c', version: '3.0.7')
nasm = find_program('nasm')
gen_res = find_program('gen_resources.sh')

View File

@ -1,6 +1,6 @@
{
"jadeite": {
"version": "3.0.6"
"version": "3.0.7"
},
"games": {
"hi3rd": {
@ -32,11 +32,11 @@
"hsr": {
"global": {
"status": "verified",
"version": "1.2.0"
"version": "1.3.0"
},
"china": {
"status": "verified",
"version": "1.2.0"
"version": "1.3.0"
}
}
}