Update to spice2x-25-04-25 (pre-apply)

> broken commit
This commit is contained in:
[ ]
2025-05-07 00:25:31 +09:00
parent 04dee88276
commit c94de456b5
543 changed files with 78491 additions and 91698 deletions
+27
View File
@@ -19,6 +19,10 @@ static decltype(GetACP) *GetACP_orig = nullptr;
static decltype(GetOEMCP) *GetOEMCP_orig = nullptr;
static decltype(MultiByteToWideChar) *MultiByteToWideChar_orig = nullptr;
#ifdef SPICE64
static decltype(GetSystemDefaultLCID) *GetSystemDefaultLCID_orig = nullptr;
#endif
static NTSTATUS NTAPI RtlMultiByteToUnicodeN_hook(
PWCH UnicodeString,
ULONG MaxBytesInUnicodeString,
@@ -73,6 +77,16 @@ static UINT WINAPI GetOEMCP_hook() {
return CODEPAGE_SHIFT_JIS;
}
#ifdef SPICE64
static LCID WINAPI GetSystemDefaultLCID_hook() {
// ja-JP per https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c
// this is passed to LCMapStringA for kana conversions (e.g., for subscreen song search)
return 0x411;
}
#endif
static int WINAPI MultiByteToWideChar_hook(
UINT CodePage,
DWORD dwFlags,
@@ -111,6 +125,19 @@ void hooks::lang::early_init() {
// hooking these two functions fixes the jubeat mojibake
detour::trampoline_try("kernel32.dll", "GetACP", GetACP_hook, &GetACP_orig);
detour::trampoline_try("kernel32.dll", "GetOEMCP", GetOEMCP_hook, &GetOEMCP_orig);
#ifdef SPICE64 // SDVX5+ specific code
bool isValkyrieCabinetMode = avs::game::SPEC[0] == 'G' || avs::game::SPEC[0] == 'H';
if (avs::game::is_model("KFC") && isValkyrieCabinetMode) {
log_info("hooks::lang", "hooking GetSystemDefaultLCID");
detour::trampoline_try(
"kernel32.dll",
"GetSystemDefaultLCID",
GetSystemDefaultLCID_hook,
&GetSystemDefaultLCID_orig);
}
#endif
}
void hooks::lang::init() {