mirror of
https://github.com/esuo1198/TaikoArcadeLoader.git
synced 2026-10-05 21:27:55 +03:00
TestMode Refactor
Remove Debug Hook Fix Scanner LogOutput
This commit is contained in:
+13
-14
@@ -93,7 +93,7 @@ namespace Card {
|
||||
if (chipId.length () < 32) chipId = accessCodeTemplate.substr (0, 32 - chipId.length ()) + chipId;
|
||||
for (size_t i = 0; i < 32; i++) *(cardData + 0x2C + i) = i < chipId.length() ? chipId[i] : 0;
|
||||
for (size_t i = 0; i < 20; i++) *(cardData + 0x50 + i) = i < accessCode.length() ? accessCode[i] : 0;
|
||||
if (!internalInvoke) LogMessage (LogLevel::INFO, "[Card] Insert Card accessCode: \"{}\" chipId: \"{}\"\n", accessCode, chipId);
|
||||
if (!internalInvoke) LogMessage (LogLevel::INFO, "[Card] Insert Card accessCode: \"{}\" chipId: \"{}\"", accessCode, chipId);
|
||||
patches::Scanner::Card::Internal::AgentInsertCard (cardData, internalInvoke);
|
||||
return true;
|
||||
}
|
||||
@@ -118,7 +118,6 @@ namespace Card {
|
||||
HOOK (u64, bngrw_ReqAiccAuth, PROC_ADDRESS ("bngrw.dll", "BngRwReqAiccAuth")) { return 1; }
|
||||
HOOK (u64, bngrw_DevReset, PROC_ADDRESS ("bngrw.dll", "BngRwDevReset")) { return 1; } // Invoke when enter testmode
|
||||
HOOK (i32, bngrw_ReqCancel, PROC_ADDRESS ("bngrw.dll", "BngRwReqCancel")) {
|
||||
LogMessage (LogLevel::DEBUG, "[Card] Cancel!\n");
|
||||
if (state != State::Disable) {
|
||||
state = State::Disable;
|
||||
patches::Scanner::Card::Internal::Commit0 (accessCodeTemplate, chipIdTemplate, true);
|
||||
@@ -157,19 +156,19 @@ namespace Card {
|
||||
bool
|
||||
Commit(std::string accessCode, std::string chipId) {
|
||||
if (!emulateCardReader) {
|
||||
LogMessage (LogLevel::DEBUG, "[Card] Not emulate CardReader!\n");
|
||||
LogMessage (LogLevel::DEBUG, "[Card] Not emulate CardReader!");
|
||||
return false;
|
||||
}
|
||||
if (state != State::Ready) {
|
||||
LogMessage (LogLevel::DEBUG, "[Card] Not Waiting for Touch, please wait!\n");
|
||||
LogMessage (LogLevel::DEBUG, "[Card] Not Waiting for Touch, please wait!");
|
||||
return false;
|
||||
}
|
||||
if (accessCode.length() == 0 || accessCode.length() > 20) {
|
||||
LogMessage (LogLevel::ERROR, "[Card] Not an effective accessCode: \"{}\"\n", accessCode);
|
||||
LogMessage (LogLevel::ERROR, "[Card] Not an effective accessCode: \"{}\"", accessCode);
|
||||
return false;
|
||||
}
|
||||
if (chipId.length() > 32) {
|
||||
LogMessage (LogLevel::ERROR, "[Card] Not an effective chipId: \"{}\"\n", chipId);
|
||||
LogMessage (LogLevel::ERROR, "[Card] Not an effective chipId: \"{}\"", chipId);
|
||||
return false;
|
||||
}
|
||||
return patches::Scanner::Card::Internal::Commit0 (accessCode, chipId, false);
|
||||
@@ -184,7 +183,7 @@ namespace Card {
|
||||
Init() {
|
||||
LogMessage (LogLevel::INFO, "Init Card patches");
|
||||
if (!emulateCardReader) {
|
||||
LogMessage (LogLevel::WARN, "[Card] Card reader emulation disabled!\n");
|
||||
LogMessage (LogLevel::WARN, "[Card] Card reader emulation disabled!");
|
||||
INSTALL_HOOK (bngrw_ReqCancelOfficial);
|
||||
INSTALL_HOOK (bngrw_ReqWaitTouchOfficial);
|
||||
// patches::Plugins::InitCardReader (patches::Scanner::Card::Commit);
|
||||
@@ -248,7 +247,7 @@ namespace Qr {
|
||||
if (state == State::CopyWait && scanQueue.size () > 0) {
|
||||
std::vector<uint8_t> data = scanQueue.front ();
|
||||
if ((int)data.size () > length) {
|
||||
LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: {} require: {}\n", data.size (), length);
|
||||
LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: {} require: {}", data.size (), length);
|
||||
}
|
||||
std::stringstream hexStream;
|
||||
hexStream << std::hex << std::uppercase << std::setfill ('0') << std::setw (2);
|
||||
@@ -269,15 +268,15 @@ namespace Qr {
|
||||
bool
|
||||
Commit (std::vector<uint8_t> &buffer) {
|
||||
if (!emulateQr) {
|
||||
LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!\n");
|
||||
LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!");
|
||||
return false;
|
||||
}
|
||||
if (state == State::Disable) {
|
||||
LogMessage (LogLevel::DEBUG, "[QR] Not Ready to accept QRData!\n");
|
||||
LogMessage (LogLevel::DEBUG, "[QR] Not Ready to accept QRData!");
|
||||
return false;
|
||||
}
|
||||
if (buffer.size () == 0) {
|
||||
LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: 0\n");
|
||||
LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: 0");
|
||||
return false;
|
||||
}
|
||||
if (scanQueue.empty() || scanQueue.back() != buffer) {
|
||||
@@ -293,7 +292,7 @@ namespace Qr {
|
||||
bool
|
||||
CommitLogin (std::string accessCode) {
|
||||
if (!emulateQr) {
|
||||
LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!\n");
|
||||
LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!");
|
||||
return false;
|
||||
}
|
||||
std::vector<uint8_t> buffer = {};
|
||||
@@ -375,7 +374,7 @@ namespace Qr {
|
||||
std::u8string u8PathStr (imagePath.begin (), imagePath.end ());
|
||||
std::filesystem::path u8Path (u8PathStr);
|
||||
if (!std::filesystem::is_regular_file (u8Path)) {
|
||||
LogMessage (LogLevel::ERROR, "Failed to open image: {} (file not found)\n", u8Path.string());
|
||||
LogMessage (LogLevel::ERROR, "Failed to open image: {} (file not found)", u8Path.string());
|
||||
return buffer;
|
||||
}
|
||||
int width, height, channels;
|
||||
@@ -399,7 +398,7 @@ namespace Qr {
|
||||
LogMessage (LogLevel::INFO, "Init Qr patches");
|
||||
|
||||
if (!emulateQr) {
|
||||
LogMessage (LogLevel::WARN, "[QR] QR emulation disabled!\n");
|
||||
LogMessage (LogLevel::WARN, "[QR] QR emulation disabled!");
|
||||
return;
|
||||
}
|
||||
patches::Plugins::InitQr (gameVersion);
|
||||
|
||||
@@ -394,40 +394,48 @@ MID_HOOK (AttractDemo, ASLR (0x14045A720), SafetyHookContext &ctx) {
|
||||
if (TestMode::ReadTestModeValue (L"AttractDemoItem") == 1) ctx.r14 = 0;
|
||||
}
|
||||
|
||||
HOOK (u64, EnsoGameManagerInitialize, ASLR (0x1400E2520), u64 a1, u64 a2, u64 a3) {
|
||||
LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerInitialize");
|
||||
u64 result = originalEnsoGameManagerInitialize (a1, a2, a3);
|
||||
LogMessage (LogLevel::DEBUG, "End EnsoGameManagerInitialize result={}", result);
|
||||
return result;
|
||||
}
|
||||
// HOOK (u64, EnsoGameManagerInitialize, ASLR (0x1400E2520), u64 a1, u64 a2, u64 a3) {
|
||||
// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerInitialize");
|
||||
// u64 result = originalEnsoGameManagerInitialize (a1, a2, a3);
|
||||
// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerInitialize result={}", result);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
HOOK (u64, EnsoGameManagerLoading, ASLR (0x1400E2750), u64 a1, u64 a2, u64 a3) {
|
||||
LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerLoading");
|
||||
u64 result = originalEnsoGameManagerLoading (a1, a2, a3);
|
||||
LogMessage (LogLevel::DEBUG, "End EnsoGameManagerLoading result={}", result);
|
||||
return result;
|
||||
}
|
||||
// HOOK (u64, EnsoGameManagerLoading, ASLR (0x1400E2750), u64 a1, u64 a2, u64 a3) {
|
||||
// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerLoading");
|
||||
// u64 result = originalEnsoGameManagerLoading (a1, a2, a3);
|
||||
// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerLoading result={}", result);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
HOOK (bool, EnsoGameManagerPreparing, ASLR (0x1400E2990), u64 a1) {
|
||||
LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerPreparing");
|
||||
bool result = originalEnsoGameManagerPreparing (a1); // crashes here
|
||||
LogMessage (LogLevel::DEBUG, "End EnsoGameManagerPreparing result={}", result);
|
||||
return result;
|
||||
}
|
||||
// HOOK (bool, EnsoGameManagerPreparing, ASLR (0x1400E2990), u64 a1) {
|
||||
// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerPreparing");
|
||||
// bool result = originalEnsoGameManagerPreparing (a1); // crashes here
|
||||
// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerPreparing result={}", result);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
HOOK (u64, EnsoGameManagerStart, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) {
|
||||
LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerStart");
|
||||
u64 result = originalEnsoGameManagerStart (a1, a2, a3);
|
||||
LogMessage (LogLevel::DEBUG, "End EnsoGameManagerStart result={}", result);
|
||||
return result;
|
||||
}
|
||||
// HOOK (u64, EnsoGraphicManagerPreparing, ASLR (0x1400F0AB0), u64 a1, u64 a2, u64 a3) {
|
||||
// LogMessage (LogLevel::DEBUG, "Begin EnsoGraphicManagerPreparing");
|
||||
// u64 result = originalEnsoGraphicManagerPreparing (a1, a2, a3);
|
||||
// LogMessage (LogLevel::DEBUG, "End EnsoGraphicManagerPreparing result={}", result);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
HOOK (u64, EnsoGameManagerChechEnsoEnd, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) {
|
||||
LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerChechEnsoEnd");
|
||||
u64 result = originalEnsoGameManagerChechEnsoEnd (a1, a2, a3);
|
||||
LogMessage (LogLevel::DEBUG, "End EnsoGameManagerChechEnsoEnd result={}", result);
|
||||
return result;
|
||||
}
|
||||
|
||||
// HOOK (u64, EnsoGameManagerStart, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) {
|
||||
// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerStart");
|
||||
// u64 result = originalEnsoGameManagerStart (a1, a2, a3);
|
||||
// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerStart result={}", result);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// HOOK (u64, EnsoGameManagerChechEnsoEnd, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) {
|
||||
// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerChechEnsoEnd");
|
||||
// u64 result = originalEnsoGameManagerChechEnsoEnd (a1, a2, a3);
|
||||
// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerChechEnsoEnd result={}", result);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
constexpr i32 datatableBufferSize = 1024 * 1024 * 12;
|
||||
safetyhook::Allocation datatableBuffer1;
|
||||
@@ -492,11 +500,12 @@ Init () {
|
||||
// Hook to get AppAccessor and ComponentAccessor
|
||||
INSTALL_HOOK (DeviceCheck);
|
||||
INSTALL_HOOK (luaL_newstate);
|
||||
INSTALL_HOOK (EnsoGameManagerInitialize);
|
||||
INSTALL_HOOK (EnsoGameManagerLoading);
|
||||
INSTALL_HOOK (EnsoGameManagerPreparing);
|
||||
INSTALL_HOOK (EnsoGameManagerStart);
|
||||
INSTALL_HOOK (EnsoGameManagerChechEnsoEnd);
|
||||
// INSTALL_HOOK (EnsoGameManagerInitialize);
|
||||
// INSTALL_HOOK (EnsoGameManagerLoading);
|
||||
// INSTALL_HOOK (EnsoGameManagerPreparing);
|
||||
// INSTALL_HOOK (EnsoGraphicManagerPreparing);
|
||||
// INSTALL_HOOK (EnsoGameManagerStart);
|
||||
// INSTALL_HOOK (EnsoGameManagerChechEnsoEnd);
|
||||
|
||||
// Apply common config patch
|
||||
WRITE_MEMORY (ASLR (0x140494533), i32, xRes);
|
||||
|
||||
Reference in New Issue
Block a user