10 Commits

Author SHA1 Message Date
6c7bbabced v3.0.10 2023-10-27 08:26:18 +03:00
81ddaeeda7 Marked 3rd 7.0.0 as verified 2023-10-27 08:25:58 +03:00
b9cae22212 Removed section name workaround for 3rd 2023-10-27 08:23:50 +03:00
8201e29e26 Remove misleading remark in readme 2023-10-11 17:55:48 +00:00
71144b4cd1 Mark HSR v1.4.0 as verified 2023-10-11 17:54:44 +00:00
5af8d2463a Set v3.0.9 in metadata.json 2023-10-10 22:02:36 +00:00
ea1d2f91f2 v3.0.9 2023-10-11 00:14:36 +03:00
f0ed718cf3 Document HSR 1.4.0 support 2023-10-09 19:27:24 +03:00
bc09349b8e Update checksums for HSR 1.4.0 2023-10-09 19:22:07 +03:00
66e51c6d9a Mark HI3 cn v7.0.0 verified 2023-10-01 11:04:01 +03:00
5 changed files with 19 additions and 34 deletions

View File

@ -1,8 +1,8 @@
### Games and regions ### Games and regions
- **3rd**: glb/sea/tw/kr/jp **v6.9.0+**, cn **v6.9.0+** - **3rd**: glb/sea/tw/kr/jp **v7.0.0+**, cn **v7.0.0+**
- **SR**: os/cn **v1.3.0** (potentially unsafe, but no bans were reported since v1.1.0) - **SR**: os/cn **v1.4.0** (potentially unsafe, but no bans were reported since v1.1.0)
You can expect newer versions to work immediately after release with the same jadeite binary if the version is specified with a + above (currently none). You can expect newer versions to work immediately after release with the same jadeite binary if the version is specified with a + above.
### Information ### 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`). 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`).

View File

@ -5,31 +5,16 @@
#include <game.h> #include <game.h>
const char *HI3_TXS_SECTION_NAME_OLD = ".bh3";
const char *HI3_TXS_SECTION_NAME_NEW = ".ace";
const char *HI3_BASE_MODULE_NAME = "BH3Base.dll"; const char *HI3_BASE_MODULE_NAME = "BH3Base.dll";
const char *HI3_ASSEMBLY_PATH = "BH3_Data\\Native\\UserAssembly.dll"; const char *HI3_ASSEMBLY_PATH = "BH3_Data\\Native\\UserAssembly.dll";
const char *HI3_TXS_SECTION_NAME = ".ace";
const char *HI3_TVM_SECTION_NAME = ".tvm0"; const char *HI3_TVM_SECTION_NAME = ".tvm0";
void hi3_fill_data(struct game_data *buf) { void hi3_fill_data(struct game_data *buf) {
// !!! TEMPORARY WORKAROUND
// Name in exe matches name in base module
HMODULE exe = GetModuleHandleA(NULL);
if (pe_find_section(exe, HI3_TXS_SECTION_NAME_OLD)) {
// Old name
buf->txs_section_name = HI3_TXS_SECTION_NAME_OLD;
} else if (pe_find_section(exe, HI3_TXS_SECTION_NAME_NEW)) {
// New name
buf->txs_section_name = HI3_TXS_SECTION_NAME_NEW;
} else {
// This should not happen
msg_err_a("Could not determine region-specific section name. " ISSUE_SUFFIX);
}
buf->base_module_name = HI3_BASE_MODULE_NAME; buf->base_module_name = HI3_BASE_MODULE_NAME;
buf->assembly_path = HI3_ASSEMBLY_PATH; buf->assembly_path = HI3_ASSEMBLY_PATH;
buf->txs_section_name = HI3_TXS_SECTION_NAME;
buf->tvm_section_name = HI3_TVM_SECTION_NAME; buf->tvm_section_name = HI3_TVM_SECTION_NAME;
buf->unityplayer_callback = NULL; buf->unityplayer_callback = NULL;

View File

@ -9,7 +9,7 @@ const char *HSR_ASSEMBLY_PATH = "GameAssembly.dll";
const char *HSR_TXS_SECTION_NAME = ".ace"; const char *HSR_TXS_SECTION_NAME = ".ace";
const char *HSR_TVM_SECTION_NAME = ".tvm0"; const char *HSR_TVM_SECTION_NAME = ".tvm0";
#define HSR_VERSION "1.3.0" #define HSR_VERSION "1.4.0"
enum hsr_region { enum hsr_region {
HSR_INVALID, HSR_INVALID,
@ -23,14 +23,14 @@ struct crc_region_pair {
}; };
const struct crc_region_pair HSR_REGIONS[] = { const struct crc_region_pair HSR_REGIONS[] = {
{ 0x748c8f9c, HSR_OS }, // os v1.3.0 { 0xbae3646f, HSR_OS }, // os v1.4.0
{ 0x76e85a40, HSR_CN } // cn v1.3.0 { 0x9e5c2f80, HSR_CN } // cn v1.4.0
}; };
#define JUMP_SIZE (6 + sizeof(void*)) #define JUMP_SIZE (6 + sizeof(void*))
// Temporarily hardcoded offset // Temporarily hardcoded offset
// v1.3.0, same for os and cn // v1.4.0, same for os and cn
#define WTSUD_PATCH_OFFSET 0x16430 #define WTSUD_PATCH_OFFSET 0x16430
char wtsud_original_bytes[JUMP_SIZE]; char wtsud_original_bytes[JUMP_SIZE];

View File

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

View File

@ -1,42 +1,42 @@
{ {
"jadeite": { "jadeite": {
"version": "3.0.8" "version": "3.0.10"
}, },
"games": { "games": {
"hi3rd": { "hi3rd": {
"global": { "global": {
"status": "verified", "status": "verified",
"version": "6.9.0" "version": "7.0.0"
}, },
"sea": { "sea": {
"status": "verified", "status": "verified",
"version": "6.9.0" "version": "7.0.0"
}, },
"china": { "china": {
"status": "verified", "status": "verified",
"version": "6.9.0" "version": "7.0.0"
}, },
"taiwan": { "taiwan": {
"status": "verified", "status": "verified",
"version": "6.9.0" "version": "7.0.0"
}, },
"korea": { "korea": {
"status": "verified", "status": "verified",
"version": "6.9.0" "version": "7.0.0"
}, },
"japan": { "japan": {
"status": "verified", "status": "verified",
"version": "6.9.0" "version": "7.0.0"
} }
}, },
"hsr": { "hsr": {
"global": { "global": {
"status": "verified", "status": "verified",
"version": "1.3.0" "version": "1.4.0"
}, },
"china": { "china": {
"status": "verified", "status": "verified",
"version": "1.3.0" "version": "1.4.0"
} }
} }
} }