From eb5eab277f85f26ba73bcc890c32260c6b7796cd Mon Sep 17 00:00:00 2001 From: Neo Date: Mon, 17 Apr 2023 17:34:54 +0100 Subject: [PATCH] Update for new ndk/3.0.1 --- abiproxy/build.bat | 8 ++++---- abiproxy/build_release.bat | 8 ++++---- abiproxy/build_release.sh | 5 ++--- src/Config.h | 2 +- src/MagiaClient.cpp | 8 ++++---- src/Utils.cpp | 4 +++- src/libmadomagi.h | 6 ++++++ 7 files changed, 24 insertions(+), 17 deletions(-) diff --git a/abiproxy/build.bat b/abiproxy/build.bat index f35965d..18286f9 100644 --- a/abiproxy/build.bat +++ b/abiproxy/build.bat @@ -1,8 +1,8 @@ @echo off :start -set ndk="C:/Android/android-ndk-r16b-windows-x86_64/android-ndk-r16b/" -set /p ndk="Enter ndk Location [C:/Android/android-ndk-r16b-windows-x86_64/android-ndk-r16b/]: " +set ndk="C:/Android/android-ndk-r21d/" +set /p ndk="Enter ndk Location [C:/Android/android-ndk-r21d/]: " if not exist %~dp0\build mkdir %~dp0\build @@ -17,14 +17,14 @@ mkdir %~dp0\build\arm64-v8a echo Running cmake armeabi-v7a... cd %~dp0\build\armeabi-v7a -call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="armeabi-v7a" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\armeabi-v7a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=android-19" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "-DCMAKE_ANDROID_STL_TYPE=gnustl_static" "%~dp0\" +call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="armeabi-v7a" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\armeabi-v7a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=21" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "%~dp0\" if errorlevel 1 goto errorexit call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" if errorlevel 1 goto errorexit echo Running cmake arm64-v8a... cd %~dp0\build\arm64-v8a -call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="arm64-v8a" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\arm64-v8a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=android-19" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "-DCMAKE_ANDROID_STL_TYPE=gnustl_static" "%~dp0\" +call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="arm64-v8a" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\arm64-v8a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=21" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "%~dp0\" if errorlevel 1 goto errorexit call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" if errorlevel 1 goto errorexit diff --git a/abiproxy/build_release.bat b/abiproxy/build_release.bat index 22f82f3..83c7a5b 100644 --- a/abiproxy/build_release.bat +++ b/abiproxy/build_release.bat @@ -1,8 +1,8 @@ @echo off :start -set ndk="C:/Android/android-ndk-r16b-windows-x86_64/android-ndk-r16b/" -set /p ndk="Enter ndk Location [C:/Android/android-ndk-r16b-windows-x86_64/android-ndk-r16b/]: " +set ndk="C:/Android/android-ndk-r21d/" +set /p ndk="Enter ndk Location [C:/Android/android-ndk-r21d/]: " if not exist %~dp0\build mkdir %~dp0\build @@ -17,14 +17,14 @@ mkdir %~dp0\build\arm64-v8a echo Running cmake armeabi-v7a... cd %~dp0\build\armeabi-v7a -call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="armeabi-v7a" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\armeabi-v7a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=android-19" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "-DCMAKE_ANDROID_STL_TYPE=gnustl_static" "%~dp0\" +call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="armeabi-v7a" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\armeabi-v7a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=21" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "%~dp0\" if errorlevel 1 goto errorexit call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" if errorlevel 1 goto errorexit echo Running cmake arm64-v8a... cd %~dp0\build\arm64-v8a -call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="arm64-v8a" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\arm64-v8a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=android-19" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "-DCMAKE_ANDROID_STL_TYPE=gnustl_static" "%~dp0\" +call "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe" -G Ninja -DANDROID_ABI="arm64-v8a" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:PATH="%~dp0\build\arm64-v8a" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="%ndk%/build/cmake/android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM:FILEPATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "-DANDROID_PLATFORM=21" "-DCMAKE_SYSTEM_NAME=Android" "-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a" "-DCMAKE_ANDROID_NDK=%ndk%" "-DCMAKE_SYSTEM_VERSION=16" "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" "%~dp0\" if errorlevel 1 goto errorexit call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" if errorlevel 1 goto errorexit diff --git a/abiproxy/build_release.sh b/abiproxy/build_release.sh index d213f27..f26294a 100644 --- a/abiproxy/build_release.sh +++ b/abiproxy/build_release.sh @@ -6,7 +6,7 @@ CMAKE="${MT_CMAKE:-cmake}" # /usr/bin/cmake NINJA="${MT_NINJA:-ninja}" # /usr/bin/ninja # arg-based -NDK="${1:-${BASEDIR}/../ndk/android-ndk-r16b}" +NDK="${3:-${BASEDIR}/ndk/android-ndk-r21e}" TARCHS="${2:-"armeabi-v7a arm64-v8a"}" _start() { @@ -36,13 +36,12 @@ _build() { -DCMAKE_INSTALL_PREFIX:PATH="${BASEDIR}/build/${tarch}" \ -DCMAKE_TOOLCHAIN_FILE:FILEPATH="${NDK}/build/cmake/android.toolchain.cmake" \ -DCMAKE_MAKE_PROGRAM:FILEPATH="${NINJA}" \ - -DANDROID_PLATFORM="android-19" \ + -DANDROID_PLATFORM="21" \ -DCMAKE_SYSTEM_NAME="Android" \ -DCMAKE_ANDROID_ARCH_ABI="${tarch}" \ -DCMAKE_ANDROID_NDK="${NDK}" \ -DCMAKE_SYSTEM_VERSION="16" \ -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION="clang" \ - -DCMAKE_ANDROID_STL_TYPE="gnustl_static" \ "${BASEDIR}/" [ "$?" -ne "0" ] && _errorexit 1 "cmake failed for ${tarch}" ${NINJA} diff --git a/src/Config.h b/src/Config.h index fd1d4de..00d2dc0 100644 --- a/src/Config.h +++ b/src/Config.h @@ -7,6 +7,6 @@ /************************** * Magia Translate Ver * **************************/ -#define MT_VERSION 119 +#define MT_VERSION 120 #endif diff --git a/src/MagiaClient.cpp b/src/MagiaClient.cpp index d67643c..72dd272 100644 --- a/src/MagiaClient.cpp +++ b/src/MagiaClient.cpp @@ -580,7 +580,7 @@ void *hook_loop(void *arguments) { } // Change font - void *cocosCreateLabelPtr = lookup_symbol(libLocation, "_ZN7cocos2d5Label13createWithTTFERKSsS2_fRKNS_4SizeENS_14TextHAlignmentENS_14TextVAlignmentE"); + void *cocosCreateLabelPtr = lookup_symbol(libLocation, "_ZN7cocos2d5Label13createWithTTFERKNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES9_fRKNS_4SizeENS_14TextHAlignmentENS_14TextVAlignmentE"); if (cocosCreateLabelPtr != nullptr) { LOGD("Found cocos2d::Label::createWithTTF at %p.", (void *)cocosCreateLabel); @@ -616,7 +616,7 @@ void *hook_loop(void *arguments) { } storyMessageUnitCreateMessageAreaOffset = reinterpret_cast(storyMessageUnitCreateMessageArea); - void *storyLogUnitAddMessage = lookup_symbol(libLocation, "_ZN12StoryLogUnit10addMessageENS_11MessageType13MessageType__ERKSs"); + void *storyLogUnitAddMessage = lookup_symbol(libLocation, "_ZN12StoryLogUnit10addMessageENS_11MessageType13MessageType__ERKNSt6__ndk112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE"); if (storyLogUnitAddMessage == nullptr) { initialization_error("Unable to find a pointer for StoryLogUnit::addMessage."); @@ -624,7 +624,7 @@ void *hook_loop(void *arguments) { } storyLogUnitAddMessageOffset = reinterpret_cast(storyLogUnitAddMessage); - void *storyLogUnitAddNarrationOffsetPtr = lookup_symbol(libLocation, "_ZN12StoryLogUnit19addNarrationMessageERKSs"); + void *storyLogUnitAddNarrationOffsetPtr = lookup_symbol(libLocation, "_ZN12StoryLogUnit19addNarrationMessageERKNSt6__ndk112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"); if (storyLogUnitAddNarrationOffsetPtr == nullptr) { initialization_error("Unable to find a pointer for StoryLogUnit::addNarrationMessage."); @@ -633,7 +633,7 @@ void *hook_loop(void *arguments) { storyLogUnitAddNarrationOffset = reinterpret_cast(storyLogUnitAddNarrationOffsetPtr); - void *storyCharaUnitonTextHome = lookup_symbol(libLocation, "_ZN14StoryCharaUnit10onTextHomeESt10shared_ptrI16StoryTurnCommandEb"); + void *storyCharaUnitonTextHome = lookup_symbol(libLocation, "_ZN14StoryCharaUnit10onTextHomeENSt6__ndk110shared_ptrI16StoryTurnCommandEEb"); // StoryCharaUnit::onTextHome(std::shared_ptr, bool) if (storyCharaUnitonTextHome == nullptr) { diff --git a/src/Utils.cpp b/src/Utils.cpp index 430a4b4..9599877 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -68,10 +68,12 @@ void* lookup_symbol(const char* path, const char* symbolname) if (imagehandle != NULL){ void * sym = dlsym(imagehandle, symbolname); if (sym != NULL){ + dlclose(imagehandle); return sym; } else{ - LOGI("(lookup_symbol) dlsym didn't work\n"); + LOGI("(lookup_symbol) dlsym didn't work: %s, %s\n", path, symbolname); + dlclose(imagehandle); return NULL; } } diff --git a/src/libmadomagi.h b/src/libmadomagi.h index 4661fbf..032174f 100644 --- a/src/libmadomagi.h +++ b/src/libmadomagi.h @@ -2,6 +2,7 @@ enum BaseSceneLayerType { DebugMenuSceneLayer, DebugSelectQuestSceneLayer, DebugSelectStorySceneLayer, + DebugSelectMysteriesSceneLayer, CameraSceneLayer, WebSceneLayer, StartupSceneLayer, @@ -32,6 +33,8 @@ enum BaseSceneLayerType { NetworkErrorSceneLayer, TapSceneLayer, EmotionBoardSceneLayer, + GlassTapSceneLayer, + QuestViewerSceneLayer, BaseSceneLayerTypeMaxValue }; @@ -39,6 +42,7 @@ char const* BaseSceneLayerTypeStrings[] { "DebugMenuSceneLayer", "DebugSelectQuestSceneLayer", "DebugSelectStorySceneLayer", + "DebugSelectMysteriesSceneLayer", "CameraSceneLayer", "WebSceneLayer", "StartupSceneLayer", @@ -68,6 +72,8 @@ char const* BaseSceneLayerTypeStrings[] { "ErrorSceneLayer", "NetworkErrorSceneLayer", "TapSceneLayer", + "GlassTapSceneLayer", + "QuestViewerSceneLayer", "EmotionBoardSceneLayer" };