├── src ├── scripts │ ├── _Cyan │ │ ├── _Cyan.hpp │ │ └── Cyan │ │ │ └── LocalFile │ │ │ ├── PathResolver.cpp │ │ │ └── PathResolver.hpp │ ├── DOTween │ │ ├── DOTween.hpp │ │ └── DG │ │ │ └── Tweening │ │ │ ├── Core │ │ │ ├── TweenManager.cpp │ │ │ └── TweenManager.hpp │ │ │ ├── DOTweenModuleUI.cpp │ │ │ ├── DOTweenModuleUI.hpp │ │ │ ├── TweenCallback.cpp │ │ │ ├── TweenCallback.hpp │ │ │ ├── TweenExtensions.cpp │ │ │ └── TweenExtensions.hpp │ ├── Plugins │ │ ├── Plugins.hpp │ │ ├── AnimateToUnity │ │ │ ├── AnText.cpp │ │ │ ├── AnText.hpp │ │ │ ├── AnRootManager.cpp │ │ │ └── AnRootManager.hpp │ │ └── CodeStage │ │ │ └── AntiCheat │ │ │ └── ObscuredTypes │ │ │ ├── ObscuredBool.hpp │ │ │ ├── ObscuredInt.hpp │ │ │ └── ObscuredLong.hpp │ ├── mscorlib │ │ ├── System │ │ │ ├── Enum.cpp │ │ │ ├── Enum.hpp │ │ │ ├── Int32.hpp │ │ │ ├── Boolean.hpp │ │ │ ├── Byte.hpp │ │ │ ├── ValueTuple.hpp │ │ │ ├── Collections │ │ │ │ └── Generic │ │ │ │ │ ├── Dictionary.hpp │ │ │ │ │ └── List.hpp │ │ │ └── Nullable.hpp │ │ └── mscorlib.hpp │ ├── umamusume │ │ ├── Gallop │ │ │ ├── BGManager.cpp │ │ │ ├── BGManager.hpp │ │ │ ├── BootSystem.cpp │ │ │ ├── BootSystem.hpp │ │ │ ├── GallopUtil.cpp │ │ │ ├── GallopUtil.hpp │ │ │ ├── HttpHelper.cpp │ │ │ ├── HttpHelper.hpp │ │ │ ├── Localize.cpp │ │ │ ├── Localize.hpp │ │ │ ├── NowLoading.cpp │ │ │ ├── NowLoading.hpp │ │ │ ├── TextCommon.cpp │ │ │ ├── TextCommon.hpp │ │ │ ├── TextUtil.cpp │ │ │ ├── TextUtil.hpp │ │ │ ├── UserChara.cpp │ │ │ ├── UserChara.hpp │ │ │ ├── AudioManager.cpp │ │ │ ├── AudioManager.hpp │ │ │ ├── Certification.cpp │ │ │ ├── Certification.hpp │ │ │ ├── GallopInput.cpp │ │ │ ├── GallopInput.hpp │ │ │ ├── GraphicSettings.cpp │ │ │ ├── GraphicSettings.hpp │ │ │ ├── ImageCommon.cpp │ │ │ ├── ImageCommon.hpp │ │ │ ├── LimitBreakCut.cpp │ │ │ ├── LimitBreakCut.hpp │ │ │ ├── Live │ │ │ │ ├── Director.cpp │ │ │ │ └── Director.hpp │ │ │ ├── MiniDirector.cpp │ │ │ ├── MiniDirector.hpp │ │ │ ├── ModelLoader.cpp │ │ │ ├── ModelLoader.hpp │ │ │ ├── RaceImageEffect.cpp │ │ │ ├── RaceImageEffect.hpp │ │ │ ├── RaceManager.cpp │ │ │ ├── RaceManager.hpp │ │ │ ├── SceneDefine.hpp │ │ │ ├── SceneManager.cpp │ │ │ ├── SceneManager.hpp │ │ │ ├── WorkDataManager.cpp │ │ │ ├── WorkDataManager.hpp │ │ │ ├── CySpringController.cpp │ │ │ ├── CySpringController.hpp │ │ │ ├── FrameRateController.cpp │ │ │ ├── FrameRateController.hpp │ │ │ ├── GallopFrameBuffer.cpp │ │ │ ├── GallopFrameBuffer.hpp │ │ │ ├── LocalizeExtention.cpp │ │ │ ├── LocalizeExtention.hpp │ │ │ ├── PartsEpisodeList.cpp │ │ │ ├── PartsEpisodeList.hpp │ │ │ ├── StoryImageEffect.cpp │ │ │ ├── StoryImageEffect.hpp │ │ │ ├── StoryRaceTextAsset.cpp │ │ │ ├── StoryRaceTextAsset.hpp │ │ │ ├── StoryViewController.cpp │ │ │ ├── StoryViewController.hpp │ │ │ ├── CharaPropRendererAccessor.cpp │ │ │ ├── CharaPropRendererAccessor.hpp │ │ │ ├── DialogCircleItemDonate.cpp │ │ │ ├── DialogCircleItemDonate.hpp │ │ │ ├── LiveTheaterCharaSelect.cpp │ │ │ ├── LiveTheaterCharaSelect.hpp │ │ │ ├── LowResolutionCameraBase.cpp │ │ │ ├── LowResolutionCameraBase.hpp │ │ │ ├── MasterCharacterSystemText.cpp │ │ │ ├── MasterCharacterSystemText.hpp │ │ │ ├── MonoBehaviourExtension.cpp │ │ │ ├── MonoBehaviourExtension.hpp │ │ │ ├── StoryTimelineBlockData.cpp │ │ │ ├── StoryTimelineBlockData.hpp │ │ │ ├── StoryTimelineController.cpp │ │ │ ├── StoryTimelineController.hpp │ │ │ ├── TextMeshProUguiCommon.cpp │ │ │ ├── TextMeshProUguiCommon.hpp │ │ │ ├── CutInImageEffectPostRender.cpp │ │ │ ├── CutInImageEffectPostRender.hpp │ │ │ ├── Model │ │ │ │ └── Component │ │ │ │ │ ├── CySpringUpdater.cpp │ │ │ │ │ └── CySpringUpdater.hpp │ │ │ ├── Singleton.cpp │ │ │ ├── MonoSingleton.cpp │ │ │ ├── Cryptographer.hpp │ │ │ ├── DownloadErrorProcessor.hpp │ │ │ ├── RaceUtil.hpp │ │ │ ├── StandaloneWindowResize.hpp │ │ │ ├── LiveViewController.hpp │ │ │ ├── LandscapeUIManager.hpp │ │ │ ├── Connecting.hpp │ │ │ ├── LockableBehaviour.hpp │ │ │ ├── PartsBuyJewelListItem.hpp │ │ │ ├── MonoFunctionSealedBaseForMonoSingleton.hpp │ │ │ ├── DownloadView.hpp │ │ │ ├── TapEffectController.hpp │ │ │ ├── LowResolutionCameraUtil.hpp │ │ │ ├── DownloadManager.hpp │ │ │ ├── CourseBaseObject.hpp │ │ │ ├── TitleViewController.hpp │ │ │ ├── DialogCommonBase.cpp │ │ │ ├── DialogManager.hpp │ │ │ ├── Cryptographer.cpp │ │ │ ├── Singleton.hpp │ │ │ ├── GameSystem.hpp │ │ │ ├── MonoSingleton.hpp │ │ │ ├── DialogCommonBase.hpp │ │ │ ├── DialogCommonBaseData.hpp │ │ │ ├── RaceCameraManager.hpp │ │ │ ├── PushNotificationManager.hpp │ │ │ ├── LocalPushDefine.hpp │ │ │ ├── PaymentUtility.hpp │ │ │ ├── RaceLoaderManager.hpp │ │ │ ├── StandaloneWindowResize.cpp │ │ │ ├── WebViewDefine.hpp │ │ │ ├── Screen.hpp │ │ │ ├── PartsBuyJewelListItem.cpp │ │ │ ├── DownloadView.cpp │ │ │ ├── Connecting.cpp │ │ │ ├── DownloadErrorProcessor.cpp │ │ │ ├── WebViewManager.hpp │ │ │ ├── LandscapeUIManager.cpp │ │ │ ├── GameSystem.cpp │ │ │ ├── DialogCommonBaseData.cpp │ │ │ ├── RaceUtil.cpp │ │ │ └── UIManager.hpp │ │ ├── umamusume.hpp │ │ └── UncheaterInit.hpp │ ├── uncheatercsd │ │ ├── uncheatercsd.hpp │ │ └── Uncheater │ │ │ ├── SystemBins64.cpp │ │ │ └── SystemBins64.hpp │ ├── UnityEngine.UI │ │ ├── UnityEngine.UI.hpp │ │ └── UnityEngine │ │ │ └── UI │ │ │ ├── Text.cpp │ │ │ ├── Text.hpp │ │ │ ├── CanvasScaler.cpp │ │ │ └── CanvasScaler.hpp │ ├── Cute.Cri.Assembly │ │ ├── Cute.Cri.Assembly.hpp │ │ └── Cute │ │ │ └── Cri │ │ │ ├── SoundGroup.hpp │ │ │ ├── MovieManager.cpp │ │ │ ├── MovieManager.hpp │ │ │ ├── MoviePlayerBase.cpp │ │ │ ├── MoviePlayerBase.hpp │ │ │ ├── MoviePlayerHandle.hpp │ │ │ └── AudioPlayback.hpp │ ├── LibNative.Runtime │ │ ├── LibNative.Runtime.cpp │ │ └── LibNative.Runtime.hpp │ ├── Unity.TextMeshPro │ │ ├── TMPro │ │ │ ├── TMP_FontAsset.cpp │ │ │ ├── TMP_FontAsset.hpp │ │ │ ├── TMP_Settings.cpp │ │ │ └── TMP_Settings.hpp │ │ └── Unity.TextMeshPro.hpp │ ├── UnityEngine.CoreModule │ │ ├── UnityEngine │ │ │ ├── Camera.cpp │ │ │ ├── Camera.hpp │ │ │ ├── Display.cpp │ │ │ ├── Display.hpp │ │ │ ├── Light.cpp │ │ │ ├── Light.hpp │ │ │ ├── Sprite.cpp │ │ │ ├── Sprite.hpp │ │ │ ├── PlayerPrefs.cpp │ │ │ ├── PlayerPrefs.hpp │ │ │ ├── Renderer.cpp │ │ │ ├── Renderer.hpp │ │ │ ├── QualitySettings.cpp │ │ │ ├── QualitySettings.hpp │ │ │ ├── RenderTexture.cpp │ │ │ ├── RenderTexture.hpp │ │ │ ├── StackTraceUtility.cpp │ │ │ ├── StackTraceUtility.hpp │ │ │ ├── ResourcesAPIInternal.cpp │ │ │ ├── ResourcesAPIInternal.hpp │ │ │ ├── SceneManagement │ │ │ │ ├── Scene.cpp │ │ │ │ ├── SceneManager.cpp │ │ │ │ ├── SceneManager.hpp │ │ │ │ └── Scene.hpp │ │ │ ├── Rendering │ │ │ │ ├── RenderTargetIdentifier.cpp │ │ │ │ ├── BuiltinRenderTextureType.hpp │ │ │ │ └── RenderTargetIdentifier.hpp │ │ │ ├── Color32.hpp │ │ │ ├── Vector2Int.hpp │ │ │ ├── Color.hpp │ │ │ ├── Resolution.hpp │ │ │ ├── Vector4.hpp │ │ │ ├── YieldInstruction.hpp │ │ │ ├── Pose.hpp │ │ │ ├── CubemapFace.hpp │ │ │ ├── NetworkReachability.hpp │ │ │ ├── ScreenOrientation.hpp │ │ │ ├── BeforeRenderHelper.hpp │ │ │ ├── Behaviour.hpp │ │ │ ├── Debug.hpp │ │ │ ├── Vector2.hpp │ │ │ ├── Material.hpp │ │ │ ├── Coroutine.hpp │ │ │ ├── Component.hpp │ │ │ ├── MonoBehaviour.hpp │ │ │ ├── Shader.hpp │ │ │ ├── ScriptableObject.hpp │ │ │ ├── Quaternion.hpp │ │ │ ├── Screen.hpp │ │ │ ├── Vector3.hpp │ │ │ ├── Matrix4x4.cpp │ │ │ ├── Application.hpp │ │ │ ├── Vector3.cpp │ │ │ ├── Rect.hpp │ │ │ ├── RectTransform.hpp │ │ │ ├── Behaviour.cpp │ │ │ ├── Matrix4x4.hpp │ │ │ ├── Component.cpp │ │ │ ├── Coroutine.cpp │ │ │ ├── Transform.hpp │ │ │ ├── Shader.cpp │ │ │ ├── Material.cpp │ │ │ ├── Debug.cpp │ │ │ ├── GameObject.hpp │ │ │ └── Object.hpp │ │ └── UnityEngine.CoreModule.hpp │ ├── CriMw.CriWare.Runtime │ │ ├── CriMw.CriWare.Runtime.hpp │ │ └── CriWare │ │ │ ├── CriAtomExPlayback.hpp │ │ │ ├── CriMana │ │ │ ├── CodecType.hpp │ │ │ ├── AudioInfo.hpp │ │ │ └── MovieInfo.hpp │ │ │ └── CriAtomEx.hpp │ ├── Cute.Core.Assembly │ │ ├── Cute │ │ │ └── Core │ │ │ │ ├── UpdateDispatcher.cpp │ │ │ │ ├── UpdateDispatcher.hpp │ │ │ │ └── WebViewManager.hpp │ │ └── Cute.Core.Assembly.hpp │ ├── UnityEngine.SubsystemsModule │ │ └── UnityEngine │ │ │ ├── SubsystemManager.cpp │ │ │ ├── SubsystemManager.hpp │ │ │ └── SubsystemsImplementation │ │ │ ├── SubsystemDescriptorStore.cpp │ │ │ └── SubsystemDescriptorStore.hpp │ ├── UnityEngine.TextRenderingModule │ │ ├── UnityEngine │ │ │ ├── TextGenerator.cpp │ │ │ ├── TextGenerator.hpp │ │ │ └── TextGenerationSettings.hpp │ │ └── UnityEngine.TextRenderingModule.hpp │ ├── UnityEngine.AssetBundleModule │ │ ├── UnityEngine.AssetBundleModule.hpp │ │ └── UnityEngine │ │ │ ├── AssetBundleRequest.cpp │ │ │ ├── AssetBundleRequest.hpp │ │ │ └── AssetBundle.hpp │ ├── UnityEngine.UnityWebRequestModule │ │ ├── UnityEngine │ │ │ └── Networking │ │ │ │ ├── DownloadHandler.cpp │ │ │ │ ├── DownloadHandler.hpp │ │ │ │ ├── UploadHandlerRaw.cpp │ │ │ │ ├── UploadHandlerRaw.hpp │ │ │ │ ├── UnityWebRequest.hpp │ │ │ │ └── UnityWebRequest.cpp │ │ └── UnityEngine.UnityWebRequestModule.hpp │ ├── Cute.Http.Assembly │ │ ├── Cute.Http.Assembly.hpp │ │ └── Cute │ │ │ └── Http │ │ │ ├── HttpManager.hpp │ │ │ └── HttpManager.cpp │ ├── UnityEngine.XRModule │ │ ├── UnityEngine.XRModule.hpp │ │ └── UnityEngine │ │ │ └── XR │ │ │ ├── XRNode.hpp │ │ │ ├── AvailableTrackingData.hpp │ │ │ ├── InputTracking.hpp │ │ │ ├── XRNodeState.hpp │ │ │ └── InputTracking.cpp │ └── UnityEngine.InputLegacyModule │ │ ├── UnityEngine.InputLegacyModule.hpp │ │ └── UnityEngine │ │ ├── Input.hpp │ │ └── Input.cpp ├── experiments.h ├── hook.h ├── il2cpp_dump.h ├── resource.h ├── il2cpp │ ├── os │ │ └── c-api │ │ │ └── il2cpp-config-api-platforms.h │ ├── il2cpp-string-types.h │ ├── il2cpp-sanitizers.h │ ├── codegen │ │ └── il2cpp-codegen-metadata.h │ ├── il2cpp-tokentype.h │ ├── il2cpp-api-functions.hpp │ ├── il2cpp-config-api.h │ └── il2cpp-pinvoke-support.h ├── fpp │ └── fpp.h ├── dllproxy │ ├── proxy.hpp │ └── version.def ├── notifier │ ├── notifier.hpp │ └── notifier.cpp ├── logger │ └── logger.hpp ├── discord │ ├── discord.h │ ├── image_manager.h │ ├── user_manager.h │ ├── application_manager.h │ ├── relationship_manager.h │ ├── voice_manager.h │ ├── achievement_manager.h │ ├── store_manager.h │ ├── event.h │ ├── activity_manager.h │ ├── storage_manager.h │ ├── network_manager.h │ ├── image_manager.cpp │ ├── core.h │ └── overlay_manager.h ├── pe_lib │ ├── pe_exception.cpp │ ├── pe_properties.cpp │ ├── stdint_defs.h │ ├── utils.cpp │ ├── pe_exception.h │ └── utils.h ├── jwt │ ├── jwt.hpp │ └── jwt.cpp ├── Signature.h ├── game.hpp ├── local │ └── local.hpp ├── SaveIcon.h ├── hmac_sha256 │ └── hmac_sha256.h ├── steam │ └── steam.cpp ├── taskbar │ └── TaskbarManager.hpp ├── VERSIONINFO.rc └── stdinclude.hpp ├── generate.bat ├── loader ├── generate.bat ├── src │ ├── stdinclude.hpp │ ├── resource.h │ ├── main.cpp │ └── VERSIONINFO.rc └── premake5.lua ├── resources ├── sprite.png ├── custom_font │ ├── Jua-Regular │ │ ├── font │ │ └── font.manifest │ ├── DoHyeon-Regular │ │ ├── font │ │ └── font.manifest │ ├── SingleDay-Regular │ │ ├── font │ │ └── font.manifest │ └── GyeonggiTitle_Medium │ │ ├── font │ │ └── font.manifest └── config.json ├── utils └── bin │ └── premake5.exe ├── deps ├── discord_game_sdk │ ├── discord_game_sdk.dll │ └── discord_game_sdk.dll.lib ├── cpp-httplib.lua ├── rapidjson.lua ├── msgpack11.lua └── minhook.lua ├── .gitmodules ├── LICENSE ├── README.zh-Hans.md ├── README.ja-JP.md ├── README.ko-KR.md └── README.md /src/scripts/_Cyan/_Cyan.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DOTween.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Plugins/Plugins.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Enum.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Enum.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Int32.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/experiments.h: -------------------------------------------------------------------------------- 1 | #define _EXPERIMENTS 2 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/BGManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/BGManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/BootSystem.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/BootSystem.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GallopUtil.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GallopUtil.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/HttpHelper.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/HttpHelper.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Localize.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Localize.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/NowLoading.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/NowLoading.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TextCommon.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TextCommon.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TextUtil.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TextUtil.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/UserChara.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/UserChara.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/uncheatercsd/uncheatercsd.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Plugins/AnimateToUnity/AnText.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Plugins/AnimateToUnity/AnText.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UI/UnityEngine.UI.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/AudioManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/AudioManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Certification.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Certification.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GallopInput.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GallopInput.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GraphicSettings.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GraphicSettings.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/ImageCommon.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/ImageCommon.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LimitBreakCut.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LimitBreakCut.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Live/Director.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Live/Director.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MiniDirector.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MiniDirector.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/ModelLoader.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/ModelLoader.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceImageEffect.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceImageEffect.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/SceneDefine.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/SceneManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/SceneManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/WorkDataManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/WorkDataManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/hook.h: -------------------------------------------------------------------------------- 1 | #include "il2cpp/il2cpp_symbols.hpp" 2 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute.Cri.Assembly.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/SoundGroup.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/Core/TweenManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/Core/TweenManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/DOTweenModuleUI.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/DOTweenModuleUI.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/TweenCallback.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/TweenCallback.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/TweenExtensions.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/DOTween/DG/Tweening/TweenExtensions.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/LibNative.Runtime/LibNative.Runtime.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/LibNative.Runtime/LibNative.Runtime.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Plugins/AnimateToUnity/AnRootManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Plugins/AnimateToUnity/AnRootManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Unity.TextMeshPro/TMPro/TMP_FontAsset.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Unity.TextMeshPro/TMPro/TMP_FontAsset.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Unity.TextMeshPro/TMPro/TMP_Settings.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Unity.TextMeshPro/TMPro/TMP_Settings.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Unity.TextMeshPro/Unity.TextMeshPro.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UI/UnityEngine/UI/Text.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UI/UnityEngine/UI/Text.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/_Cyan/Cyan/LocalFile/PathResolver.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/_Cyan/Cyan/LocalFile/PathResolver.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CySpringController.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CySpringController.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/FrameRateController.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/FrameRateController.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GallopFrameBuffer.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GallopFrameBuffer.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LocalizeExtention.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LocalizeExtention.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/PartsEpisodeList.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/PartsEpisodeList.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryImageEffect.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryImageEffect.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryRaceTextAsset.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryRaceTextAsset.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryViewController.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryViewController.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/uncheatercsd/Uncheater/SystemBins64.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/uncheatercsd/Uncheater/SystemBins64.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /generate.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | utils\bin\premake5 %* vs2026 -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/MovieManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/MovieManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/MoviePlayerBase.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/MoviePlayerBase.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Camera.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Camera.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Display.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Display.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Light.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Light.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Sprite.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Sprite.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UI/UnityEngine/UI/CanvasScaler.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UI/UnityEngine/UI/CanvasScaler.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CharaPropRendererAccessor.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CharaPropRendererAccessor.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogCircleItemDonate.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogCircleItemDonate.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LiveTheaterCharaSelect.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LiveTheaterCharaSelect.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LowResolutionCameraBase.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LowResolutionCameraBase.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MasterCharacterSystemText.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MasterCharacterSystemText.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MonoBehaviourExtension.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MonoBehaviourExtension.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryTimelineBlockData.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryTimelineBlockData.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryTimelineController.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StoryTimelineController.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TextMeshProUguiCommon.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TextMeshProUguiCommon.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/CriMw.CriWare.Runtime/CriMw.CriWare.Runtime.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Cute.Core.Assembly/Cute/Core/UpdateDispatcher.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/Cute.Core.Assembly/Cute/Core/UpdateDispatcher.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/PlayerPrefs.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/PlayerPrefs.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Renderer.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Renderer.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CutInImageEffectPostRender.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CutInImageEffectPostRender.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /loader/generate.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | ..\utils\bin\premake5 %* vs2026 -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/QualitySettings.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/QualitySettings.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/RenderTexture.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/RenderTexture.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/StackTraceUtility.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/StackTraceUtility.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Model/Component/CySpringUpdater.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Model/Component/CySpringUpdater.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/ResourcesAPIInternal.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/ResourcesAPIInternal.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/SceneManagement/Scene.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.SubsystemsModule/UnityEngine/SubsystemManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.SubsystemsModule/UnityEngine/SubsystemManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.TextRenderingModule/UnityEngine/TextGenerator.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.TextRenderingModule/UnityEngine/TextGenerator.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.AssetBundleModule/UnityEngine.AssetBundleModule.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.AssetBundleModule/UnityEngine/AssetBundleRequest.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.AssetBundleModule/UnityEngine/AssetBundleRequest.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Rendering/RenderTargetIdentifier.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/SceneManagement/SceneManager.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/SceneManagement/SceneManager.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.TextRenderingModule/UnityEngine.TextRenderingModule.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/il2cpp_dump.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | void il2cpp_dump(); 4 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine/Networking/DownloadHandler.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine/Networking/DownloadHandler.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/src/resource.h -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine/Networking/UploadHandlerRaw.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine/Networking/UploadHandlerRaw.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/mscorlib.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "mscorlib.dll" 3 | -------------------------------------------------------------------------------- /src/scripts/umamusume/umamusume.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "umamusume.dll" 3 | -------------------------------------------------------------------------------- /resources/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/resources/sprite.png -------------------------------------------------------------------------------- /src/scripts/UnityEngine.SubsystemsModule/UnityEngine/SubsystemsImplementation/SubsystemDescriptorStore.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.SubsystemsModule/UnityEngine/SubsystemsImplementation/SubsystemDescriptorStore.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /utils/bin/premake5.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/utils/bin/premake5.exe -------------------------------------------------------------------------------- /src/scripts/Cute.Core.Assembly/Cute.Core.Assembly.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "Cute.Core.Assembly.dll" 3 | -------------------------------------------------------------------------------- /src/scripts/Cute.Http.Assembly/Cute.Http.Assembly.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "Cute.Http.Assembly.dll" 3 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.XRModule/UnityEngine.XRModule.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "UnityEngine.XRModule.dll" 3 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine.CoreModule.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "UnityEngine.CoreModule.dll" 3 | -------------------------------------------------------------------------------- /resources/custom_font/Jua-Regular/font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/resources/custom_font/Jua-Regular/font -------------------------------------------------------------------------------- /src/il2cpp/os/c-api/il2cpp-config-api-platforms.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #if !defined(IL2CPP_EXPORT) 4 | # define IL2CPP_EXPORT 5 | #endif 6 | -------------------------------------------------------------------------------- /deps/discord_game_sdk/discord_game_sdk.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/deps/discord_game_sdk/discord_game_sdk.dll -------------------------------------------------------------------------------- /resources/custom_font/DoHyeon-Regular/font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/resources/custom_font/DoHyeon-Regular/font -------------------------------------------------------------------------------- /deps/discord_game_sdk/discord_game_sdk.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/deps/discord_game_sdk/discord_game_sdk.dll.lib -------------------------------------------------------------------------------- /resources/custom_font/SingleDay-Regular/font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/resources/custom_font/SingleDay-Regular/font -------------------------------------------------------------------------------- /src/fpp/fpp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace fpp { 6 | void ChangeGameAssemblyProtection(HMODULE module); 7 | } 8 | -------------------------------------------------------------------------------- /resources/custom_font/GyeonggiTitle_Medium/font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kimjio/umamusume-localify/HEAD/resources/custom_font/GyeonggiTitle_Medium/font -------------------------------------------------------------------------------- /src/scripts/UnityEngine.InputLegacyModule/UnityEngine.InputLegacyModule.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "UnityEngine.InputLegacyModule.dll" 3 | -------------------------------------------------------------------------------- /src/dllproxy/proxy.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace proxy 4 | { 5 | class version_init 6 | { 7 | public: 8 | version_init(); 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine.UnityWebRequestModule.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define ASSEMBLY_NAME "UnityEngine.UnityWebRequestModule.dll" 3 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Boolean.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace System 4 | { 5 | struct Boolean 6 | { 7 | public: 8 | bool m_value; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Byte.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace System 4 | { 5 | struct Byte 6 | { 7 | public: 8 | unsigned char m_value; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Singleton.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Singleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | } 8 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MonoSingleton.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "MonoSingleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | } 8 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Color32.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Color32_t 6 | { 7 | public: 8 | unsigned int rgba; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/scripts/CriMw.CriWare.Runtime/CriWare/CriAtomExPlayback.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace CriWare 4 | { 5 | struct CriAtomExPlayback 6 | { 7 | public: 8 | unsigned int id; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Vector2Int.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Vector2Int 6 | { 7 | public: 8 | int m_X; 9 | int m_Y; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Color.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Color 6 | { 7 | public: 8 | float r; 9 | float g; 10 | float b; 11 | float a; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Resolution.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Resolution 6 | { 7 | public: 8 | int width; 9 | int height; 10 | int herz; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Vector4.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Vector4 6 | { 7 | public: 8 | float x; 9 | float y; 10 | float z; 11 | float w; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/MoviePlayerHandle.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Cute 4 | { 5 | namespace Cri 6 | { 7 | struct MoviePlayerHandle 8 | { 9 | public: 10 | unsigned int id; 11 | }; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/notifier/notifier.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace notifier 5 | { 6 | void init(); 7 | 8 | void notify_response(const std::string& data); 9 | 10 | void notify_request(const std::string& data); 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/YieldInstruction.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Object.hpp" 4 | 5 | namespace UnityEngine 6 | { 7 | class YieldInstruction : public Object 8 | { 9 | using Object::Object; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Cryptographer.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace Gallop 5 | { 6 | class Cryptographer 7 | { 8 | public: 9 | static Il2CppString* MakeMd5(Il2CppString* input); 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/CriMw.CriWare.Runtime/CriWare/CriMana/CodecType.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace CriWare 4 | { 5 | namespace CriMana 6 | { 7 | enum class CodecType 8 | { 9 | Unknown, 10 | SofdecPrime, 11 | H264 = 5, 12 | VP9 = 9 13 | }; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Pose.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vector3.hpp" 4 | #include "Quaternion.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | struct Pose 9 | { 10 | public: 11 | Vector3 position; 12 | Quaternion rotation; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /src/il2cpp/il2cpp-string-types.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp-config.h" 3 | 4 | #ifdef __cplusplus 5 | 6 | #include 7 | 8 | typedef std::basic_string UTF16String; 9 | typedef std::basic_string Il2CppNativeString; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/CubemapFace.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | enum class CubemapFace 6 | { 7 | Unknown = -1, 8 | PositiveX, 9 | NegativeX, 10 | PositiveY, 11 | NegativeY, 12 | PositiveZ, 13 | NegativeZ 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/SceneManagement/Scene.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp-object-internals.h" 4 | 5 | namespace UnityEngine 6 | { 7 | namespace SceneManagement 8 | { 9 | struct Scene 10 | { 11 | public: 12 | int handle; 13 | }; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/NetworkReachability.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace UnityEngine 5 | { 6 | enum NetworkReachability 7 | { 8 | NotReachable, 9 | ReachableViaCarrierDataNetwork, 10 | ReachableViaLocalAreaNetwork, 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/ScreenOrientation.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | enum class ScreenOrientation { 6 | Unknown, 7 | Portrait, 8 | PortraitUpsideDown, 9 | LandscapeLeft, 10 | LandscapeRight, 11 | AutoRotation, 12 | Landscape = 3 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DownloadErrorProcessor.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace Gallop 5 | { 6 | class DownloadErrorProcessor 7 | { 8 | public: 9 | void ExecDownloadErrorProcess(Il2CppObject* error, Il2CppDelegate* onRetry, Il2CppDelegate* onGotoTitle); 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceUtil.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace Gallop 5 | { 6 | class RaceUtil 7 | { 8 | public: 9 | static bool GetRaceDynamicCameraSettingData(uint64_t bootMode); 10 | 11 | static bool IsEnableDynamicRaceType(uint64_t raceType); 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StandaloneWindowResize.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef _MSC_VER 4 | #include "il2cpp/il2cpp_symbols.hpp" 5 | 6 | namespace Gallop 7 | { 8 | class StandaloneWindowResize 9 | { 10 | public: 11 | static bool IsVirt(); 12 | 13 | static void IsVirt(bool value); 14 | }; 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /loader/src/stdinclude.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | 12 | using namespace std; 13 | 14 | namespace hook 15 | { 16 | class proxy { 17 | public: 18 | proxy(); 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LiveViewController.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Gallop 4 | { 5 | class LiveViewController 6 | { 7 | public: 8 | enum LiveState 9 | { 10 | Play, 11 | Pause, 12 | ShowSkipConfirmDialog, 13 | ShowMenuDialog, 14 | ShowSettingDialog, 15 | HideUI 16 | }; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/scripts/CriMw.CriWare.Runtime/CriWare/CriMana/AudioInfo.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace CriWare 5 | { 6 | namespace CriMana 7 | { 8 | struct AudioInfo 9 | { 10 | public: 11 | uint32_t samplingRate; 12 | 13 | uint32_t numChannels; 14 | 15 | uint32_t totalSamples; 16 | }; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LandscapeUIManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class LandscapeUIManager : public UnityEngine::MonoBehaviour 8 | { 9 | using MonoBehaviour::MonoBehaviour; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/BeforeRenderHelper.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp-object-internals.h" 4 | 5 | namespace UnityEngine 6 | { 7 | class BeforeRenderHelper 8 | { 9 | public: 10 | struct OrderBlock 11 | { 12 | public: 13 | int order; 14 | Il2CppDelegate* callback; 15 | }; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /deps/cpp-httplib.lua: -------------------------------------------------------------------------------- 1 | httplib = { 2 | source = path.join(dependencies.basePath, "cpp-httplib"), 3 | } 4 | 5 | function httplib.import() 6 | httplib.includes() 7 | end 8 | 9 | function httplib.includes() 10 | includedirs { 11 | httplib.source 12 | } 13 | end 14 | 15 | function httplib.project() 16 | end 17 | 18 | table.insert(dependencies, httplib) 19 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Connecting.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | 5 | using namespace UnityEngine; 6 | 7 | namespace Gallop 8 | { 9 | class Connecting : public MonoBehaviour 10 | { 11 | using MonoBehaviour::MonoBehaviour; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.XRModule/UnityEngine/XR/XRNode.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | namespace XR 6 | { 7 | enum XRNode 8 | { 9 | LeftEye, 10 | RightEye, 11 | CenterEye, 12 | Head, 13 | LeftHand, 14 | RightHand, 15 | GameController, 16 | TrackingReference, 17 | HardwareTracker 18 | }; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Behaviour.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Component.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class Behaviour : public Component 9 | { 10 | public: 11 | bool enabled(); 12 | 13 | void enabled(bool value); 14 | 15 | using Component::Component; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LockableBehaviour.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | 5 | using namespace UnityEngine; 6 | 7 | namespace Gallop 8 | { 9 | class LockableBehaviour : public MonoBehaviour 10 | { 11 | using MonoBehaviour::MonoBehaviour; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/umamusume/UncheaterInit.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "umamusume.hpp" 4 | #include "../UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 5 | 6 | namespace 7 | { 8 | class UncheaterInit : UnityEngine::MonoBehaviour 9 | { 10 | public: 11 | using UnityEngine::MonoBehaviour::MonoBehaviour; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/PartsBuyJewelListItem.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "../../UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class PartsBuyJewelListItem : public UnityEngine::MonoBehaviour 8 | { 9 | public: 10 | using UnityEngine::MonoBehaviour::MonoBehaviour; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /src/scripts/Cute.Http.Assembly/Cute/Http/HttpManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "../../../UnityEngine.CoreModule/UnityEngine/Object.hpp" 4 | 5 | namespace Cute 6 | { 7 | namespace Http 8 | { 9 | class HttpManager : public UnityEngine::Object 10 | { 11 | public: 12 | using UnityEngine::Object::Object; 13 | }; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/ValueTuple.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace System 4 | { 5 | template 6 | struct ValueTuple 7 | { 8 | public: 9 | T1 Item1; 10 | T2 Item2; 11 | }; 12 | 13 | template 14 | struct ValueTuple3 15 | { 16 | public: 17 | T1 Item1; 18 | T2 Item2; 19 | T3 Item3; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/il2cpp/il2cpp-sanitizers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Use this attribute to disable the thread sanitizer checks for a specific method. 4 | 5 | #if defined(__has_feature) 6 | #if __has_feature(thread_sanitizer) 7 | #define IL2CPP_DISABLE_TSAN __attribute__((no_sanitize("thread"))) 8 | #else 9 | #define IL2CPP_DISABLE_TSAN 10 | #endif 11 | #else 12 | #define IL2CPP_DISABLE_TSAN 13 | #endif 14 | -------------------------------------------------------------------------------- /deps/rapidjson.lua: -------------------------------------------------------------------------------- 1 | rapidjson = { 2 | source = path.join(dependencies.basePath, "rapidjson"), 3 | } 4 | 5 | function rapidjson.import() 6 | rapidjson.includes() 7 | end 8 | 9 | function rapidjson.includes() 10 | includedirs { 11 | path.join(rapidjson.source, "include") 12 | } 13 | end 14 | 15 | function rapidjson.project() 16 | end 17 | 18 | table.insert(dependencies, rapidjson) 19 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Debug.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace UnityEngine 5 | { 6 | class Debug 7 | { 8 | public: 9 | static Il2CppObject* unityLogger(); 10 | 11 | static void Log(Il2CppObject* value); 12 | 13 | static void LogError(Il2CppObject* value); 14 | 15 | static void LogWarning(Il2CppObject* value); 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Vector2.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Vector2 6 | { 7 | public: 8 | float x; 9 | float y; 10 | 11 | Vector2 operator*(float v) const noexcept 12 | { 13 | return Vector2(x * v, y * v); 14 | } 15 | 16 | Vector2 operator/(float v) const noexcept 17 | { 18 | return Vector2(x / v, y / v); 19 | } 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MonoFunctionSealedBaseForMonoSingleton.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | 5 | using namespace UnityEngine; 6 | 7 | namespace Gallop 8 | { 9 | class MonoFunctionSealedBaseForMonoSingleton abstract : public MonoBehaviour 10 | { 11 | using MonoBehaviour::MonoBehaviour; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Material.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Object.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class Material : public Object 9 | { 10 | public: 11 | bool HasProperty(int nameID); 12 | Il2CppObject* GetTextureImpl(int name); 13 | void SetTextureImpl(int name, Il2CppObject* value); 14 | 15 | using Object::Object; 16 | }; 17 | } -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Coroutine.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "YieldInstruction.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class Coroutine : public YieldInstruction 9 | { 10 | public: 11 | Coroutine(Il2CppObject* object); 12 | 13 | void ReleaseCoroutine(); 14 | 15 | static void ReleaseCoroutine(void* ptr); 16 | 17 | void* m_Ptr; 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DownloadView.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class DownloadView : public UnityEngine::MonoBehaviour 8 | { 9 | public: 10 | void UpdateView(float downloadSize, float allDownloadSize); 11 | 12 | using UnityEngine::MonoBehaviour::MonoBehaviour; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TapEffectController.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoSingleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class TapEffectController : public MonoSingleton 8 | { 9 | public: 10 | void Update(); 11 | 12 | using MonoSingleton::MonoSingleton; 13 | 14 | static const char* namespaze; 15 | static const char* klassName; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.XRModule/UnityEngine/XR/AvailableTrackingData.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | namespace XR 6 | { 7 | enum AvailableTrackingData 8 | { 9 | None = 0, 10 | PositionAvailable = 1, 11 | RotationAvailable = 2, 12 | VelocityAvailable = 4, 13 | AngularVelocityAvailable = 8, 14 | AccelerationAvailable = 16, 15 | AngularAccelerationAvailable = 32 16 | }; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Collections/Generic/Dictionary.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace System 4 | { 5 | namespace Collections 6 | { 7 | namespace Generic 8 | { 9 | template 10 | class Dictionary 11 | { 12 | public: 13 | struct Entry 14 | { 15 | public: 16 | int hashCode; 17 | int next; 18 | K key; 19 | V value; 20 | }; 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Component.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Object.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class Transform; 9 | 10 | class GameObject; 11 | class Component : public Object 12 | { 13 | public: 14 | Transform transform(); 15 | 16 | GameObject gameObject(); 17 | 18 | using Object::Object; 19 | }; 20 | } 21 | 22 | #include "GameObject.hpp" 23 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "deps/minhook"] 2 | path = deps/minhook 3 | url = https://github.com/TsudaKageyu/minhook.git 4 | [submodule "deps/rapidjson"] 5 | path = deps/rapidjson 6 | url = https://github.com/Tencent/rapidjson.git 7 | [submodule "deps/msgpack11"] 8 | path = deps/msgpack11 9 | url = https://github.com/ar90n/msgpack11.git 10 | [submodule "deps/cpp-httplib"] 11 | path = deps/cpp-httplib 12 | url = https://github.com/yhirose/cpp-httplib.git 13 | -------------------------------------------------------------------------------- /src/logger/logger.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace logger 4 | { 5 | void init_logger(); 6 | void close_logger(); 7 | void write_entry(size_t hash, const std::wstring& text); 8 | void write_static_dict(const std::vector& dict); 9 | void write_text_id_static_dict(const std::vector>& dict, 10 | const std::vector>& not_matched); 11 | } 12 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Behaviour.hpp" 5 | #include "Coroutine.hpp" 6 | 7 | namespace UnityEngine 8 | { 9 | class MonoBehaviour : public Behaviour 10 | { 11 | public: 12 | Coroutine StartCoroutineManaged2(Il2CppObject* enumerator); 13 | 14 | void StopCoroutineManaged(Coroutine routine); 15 | 16 | using Behaviour::Behaviour; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LowResolutionCameraUtil.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Gallop 4 | { 5 | class LowResolutionCameraUtil 6 | { 7 | public: 8 | enum DrawDirection 9 | { 10 | Vertical, 11 | VerticalInverse, 12 | Horizontal, 13 | HorizontalInverse, 14 | VerticalFixWidth, 15 | VerticalWithBackGround, 16 | Landscape, 17 | Portrait, 18 | PortraitWithBack, 19 | PortraitWithBack_2nd, 20 | Unknown 21 | }; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Shader.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Object.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class Shader : public Object 9 | { 10 | public: 11 | static int PropertyToID(Il2CppString* name); 12 | 13 | static Il2CppObject* GetGlobalTextureImpl(int name); 14 | 15 | static void SetGlobalTextureImpl(int name, Il2CppObject* value); 16 | 17 | using Object::Object; 18 | }; 19 | } -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Collections/Generic/List.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace System 5 | { 6 | namespace Collections 7 | { 8 | namespace Generic 9 | { 10 | template 11 | class List 12 | { 13 | public: 14 | struct Enumerator 15 | { 16 | public: 17 | Il2CppObject* list; 18 | int index; 19 | int version; 20 | T current; 21 | }; 22 | }; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DownloadManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoSingleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class DownloadManager : public MonoSingleton 8 | { 9 | public: 10 | class DownloadProgressUIGame {}; 11 | class BackgroundDownloadProgressUI {}; 12 | 13 | using MonoSingleton::MonoSingleton; 14 | 15 | static const char* namespaze; 16 | static const char* klassName; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/discord/discord.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | #include "core.h" 5 | #include "application_manager.h" 6 | #include "user_manager.h" 7 | #include "image_manager.h" 8 | #include "activity_manager.h" 9 | #include "relationship_manager.h" 10 | #include "lobby_manager.h" 11 | #include "network_manager.h" 12 | #include "overlay_manager.h" 13 | #include "storage_manager.h" 14 | #include "store_manager.h" 15 | #include "voice_manager.h" 16 | #include "achievement_manager.h" 17 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/ScriptableObject.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Object.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class ScriptableObject : public Object 9 | { 10 | public: 11 | static void CreateScriptableObject(ScriptableObject self); 12 | static ScriptableObject CreateScriptableObjectInstanceFromType(Il2CppObject* runtimeType, bool applyDefaultsAndReset); 13 | 14 | using Object::Object; 15 | }; 16 | } -------------------------------------------------------------------------------- /src/pe_lib/pe_exception.cpp: -------------------------------------------------------------------------------- 1 | #include "pe_exception.h" 2 | 3 | namespace pe_bliss 4 | { 5 | //PE exception class constructors 6 | pe_exception::pe_exception(const char* text, exception_id id) 7 | :std::runtime_error(text), id_(id) 8 | {} 9 | 10 | pe_exception::pe_exception(const std::string& text, exception_id id) 11 | :std::runtime_error(text), id_(id) 12 | {} 13 | 14 | //Returns exception ID 15 | pe_exception::exception_id pe_exception::get_id() const 16 | { 17 | return id_; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pe_lib/pe_properties.cpp: -------------------------------------------------------------------------------- 1 | #include "pe_properties.h" 2 | 3 | namespace pe_bliss 4 | { 5 | //Destructor 6 | pe_properties::~pe_properties() 7 | {} 8 | 9 | //Clears PE characteristics flag 10 | void pe_properties::clear_characteristics_flags(uint16_t flags) 11 | { 12 | set_characteristics(get_characteristics() & ~flags); 13 | } 14 | 15 | //Sets PE characteristics flag 16 | void pe_properties::set_characteristics_flags(uint16_t flags) 17 | { 18 | set_characteristics(get_characteristics() | flags); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/CourseBaseObject.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp-object-internals.h" 4 | 5 | namespace Gallop 6 | { 7 | class CourseBaseObject 8 | { 9 | struct Context 10 | { 11 | public: 12 | Il2CppObject* coursePrefab; 13 | Il2CppObject* courseGrassFurPrefab; 14 | Il2CppObject* monitorRenderTexture; 15 | Il2CppArraySize* swapTextures; 16 | Il2CppArraySize* swapSubTextures; 17 | Il2CppObject* postFilmSetGroup; 18 | Il2CppObject* grassParam; 19 | }; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/TitleViewController.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "../umamusume.hpp" 4 | #include "../../UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 5 | 6 | #include 7 | 8 | using namespace std; 9 | 10 | namespace Gallop 11 | { 12 | class TitleViewController : public UnityEngine::MonoBehaviour 13 | { 14 | public: 15 | static string viewerId; 16 | static string onetimeToken; 17 | 18 | using UnityEngine::MonoBehaviour::MonoBehaviour; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogCommonBase.cpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Gallop 4 | { 5 | class DialogCommonBase 6 | { 7 | public: 8 | enum FormType 9 | { 10 | SMALL_NO_BUTTON, 11 | SMALL_ONE_BUTTON, 12 | SMALL_TWO_BUTTON, 13 | SMALL_THREE_BUTTON, 14 | MIDDLE_NO_BUTTON, 15 | MIDDLE_ONE_BUTTON, 16 | MIDDLE_TWO_BUTTON, 17 | MIDDLE_THREE_BUTTON, 18 | BIG_NO_BUTTON, 19 | BIG_ONE_BUTTON, 20 | BIG_TWO_BUTTON, 21 | BIG_THREE_BUTTON, 22 | WITHOUT_FRAME 23 | }; 24 | 25 | void Close(); 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /src/scripts/Cute.Cri.Assembly/Cute/Cri/AudioPlayback.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp-object-internals.h" 4 | 5 | #include "scripts/CriMw.CriWare.Runtime/CriWare/CriAtomExPlayback.hpp" 6 | 7 | namespace Cute 8 | { 9 | namespace Cri 10 | { 11 | struct AudioPlayback 12 | { 13 | public: 14 | CriWare::CriAtomExPlayback criAtomExPlayback; 15 | bool isError; 16 | int soundGroup; 17 | bool is3dSound; 18 | int atomSourceListIndex; 19 | Il2CppString* cueSheetName; 20 | Il2CppString* cueName; 21 | int cueId; 22 | }; 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /src/pe_lib/stdint_defs.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef _MSC_VER 3 | #if _MSC_VER < 1600 4 | namespace pe_bliss 5 | { 6 | //stdint.h definitions for MSVC 2008 and earlier, as 7 | //it doesn't have them 8 | typedef signed char int8_t; 9 | typedef short int16_t; 10 | typedef int int32_t; 11 | 12 | typedef unsigned char uint8_t; 13 | typedef unsigned short uint16_t; 14 | typedef unsigned int uint32_t; 15 | 16 | typedef long long int64_t; 17 | typedef unsigned long long uint64_t; 18 | } 19 | #else 20 | #include 21 | #endif 22 | #else 23 | #include 24 | #endif 25 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.InputLegacyModule/UnityEngine/Input.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "../../UnityEngine.CoreModule/UnityEngine/Object.hpp" 5 | #include "../../UnityEngine.CoreModule/UnityEngine/Vector3.hpp" 6 | 7 | namespace UnityEngine 8 | { 9 | class Input : public Object 10 | { 11 | public: 12 | static Vector3 mousePosition(); 13 | 14 | static bool GetMouseButtonDown(int button); 15 | 16 | static bool GetMouseButton(int button); 17 | 18 | static bool GetMouseButtonUp(int button); 19 | 20 | using Object::Object; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Quaternion.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vector3.hpp" 4 | 5 | namespace UnityEngine 6 | { 7 | struct Quaternion 8 | { 9 | public: 10 | float x; 11 | float y; 12 | float z; 13 | float w; 14 | 15 | static Quaternion FromToRotation(Vector3 fromDirection, Vector3 toDirection); 16 | static Quaternion Inverse(Quaternion rotation); 17 | static Quaternion Slerp(Quaternion a, Quaternion b, float t); 18 | static Quaternion Lerp(Quaternion a, Quaternion b, float t); 19 | static Quaternion Euler(float x, float y, float z); 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Screen.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "ScreenOrientation.hpp" 5 | #include "Resolution.hpp" 6 | 7 | namespace UnityEngine 8 | { 9 | struct RefreshRate 10 | { 11 | uint32_t numerator; 12 | uint32_t denominator; 13 | }; 14 | 15 | class Screen 16 | { 17 | public: 18 | static int width(); 19 | 20 | static int height(); 21 | 22 | static bool fullScreen(); 23 | 24 | static Resolution currentResolution(); 25 | 26 | static void RequestOrientation(ScreenOrientation orientation); 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /deps/msgpack11.lua: -------------------------------------------------------------------------------- 1 | msgpack11 = { 2 | source = path.join(dependencies.basePath, "msgpack11"), 3 | } 4 | 5 | function msgpack11.import() 6 | links { "msgpack11" } 7 | msgpack11.includes() 8 | end 9 | 10 | function msgpack11.includes() 11 | includedirs { 12 | msgpack11.source 13 | } 14 | end 15 | 16 | function msgpack11.project() 17 | project "msgpack11" 18 | language "C++" 19 | 20 | msgpack11.includes() 21 | 22 | files { 23 | path.join(msgpack11.source, "msgpack11.cpp") 24 | } 25 | 26 | warnings "Off" 27 | kind "StaticLib" 28 | end 29 | 30 | table.insert(dependencies, msgpack11) 31 | -------------------------------------------------------------------------------- /loader/src/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++에서 생성한 포함 파일입니다. 3 | // VERSIONINFO.rc에서 사용되고 있습니다. 4 | // 5 | #define VER_DEBUG 0 6 | #define VS_VERSION_INFO 1 7 | #define IDC_STATIC -1 8 | 9 | // Next default values for new objects 10 | // 11 | #ifdef APSTUDIO_INVOKED 12 | #ifndef APSTUDIO_READONLY_SYMBOLS 13 | #define _APS_NEXT_RESOURCE_VALUE 101 14 | #define _APS_NEXT_COMMAND_VALUE 40001 15 | #define _APS_NEXT_CONTROL_VALUE 1000 16 | #define _APS_NEXT_SYMED_VALUE 101 17 | #endif 18 | #endif 19 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "Singleton.hpp" 4 | #include "DialogCommon.hpp" 5 | 6 | using namespace UnityEngine; 7 | 8 | namespace Gallop 9 | { 10 | class DialogManager : public Singleton 11 | { 12 | public: 13 | static DialogCommon PushDialog(DialogCommon::Data data); 14 | 15 | static DialogCommon PushSystemDialog(DialogCommon::Data data, bool isEnableOutsideClick); 16 | 17 | using Singleton::Singleton; 18 | 19 | static const char* namespaze; 20 | static const char* klassName; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Vector3.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Vector2.hpp" 3 | 4 | namespace UnityEngine 5 | { 6 | struct Vector3 7 | { 8 | public: 9 | float x; 10 | float y; 11 | float z; 12 | 13 | static Vector3 Slerp(Vector3 a, Vector3 b, float t); 14 | 15 | Vector3 operator*(float v) const noexcept 16 | { 17 | return Vector3(x * v, y * v, z * v); 18 | } 19 | 20 | Vector3 operator/(float v) const noexcept 21 | { 22 | return Vector3(x / v, y / v, z / v); 23 | } 24 | 25 | operator Vector2() const 26 | { 27 | return Vector2{ x, y }; 28 | } 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /src/scripts/Plugins/CodeStage/AntiCheat/ObscuredTypes/ObscuredBool.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace CodeStage 4 | { 5 | namespace AntiCheat 6 | { 7 | namespace ObscuredTypes 8 | { 9 | struct ObscuredBool 10 | { 11 | bool GetDecrypted() const 12 | { 13 | char key = currentCryptoKey; 14 | if (!key) 15 | { 16 | key = 9; 17 | } 18 | 19 | return (hiddenValue ^ key) != 181; 20 | } 21 | 22 | private: 23 | char currentCryptoKey; 24 | int hiddenValue; 25 | bool inited; 26 | bool fakeValue; 27 | bool fakeValueActive; 28 | }; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /resources/custom_font/Jua-Regular/font.manifest: -------------------------------------------------------------------------------- 1 | ManifestFileVersion: 0 2 | CRC: 3628311031 3 | Hashes: 4 | AssetFileHash: 5 | serializedVersion: 2 6 | Hash: 4c8dbfdcb5be2ef1a789988feb312a08 7 | TypeTreeHash: 8 | serializedVersion: 2 9 | Hash: 4de8b25cbd6d858cd4c6ce40521297b9 10 | HashAppended: 0 11 | ClassTypes: 12 | - Class: 21 13 | Script: {instanceID: 0} 14 | - Class: 28 15 | Script: {instanceID: 0} 16 | - Class: 48 17 | Script: {instanceID: 0} 18 | - Class: 128 19 | Script: {instanceID: 0} 20 | SerializeReferenceClassIdentifiers: [] 21 | Assets: 22 | - Assets/Jua-Regular.ttf 23 | - Assets/Jua-Regular.fontsettings 24 | Dependencies: [] 25 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.XRModule/UnityEngine/XR/InputTracking.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp_symbols.hpp" 4 | 5 | #include "XRNode.hpp" 6 | #include "../../../UnityEngine.CoreModule/UnityEngine/Vector3.hpp" 7 | #include "../../../UnityEngine.CoreModule/UnityEngine/Quaternion.hpp" 8 | 9 | namespace UnityEngine 10 | { 11 | namespace XR 12 | { 13 | class InputTracking 14 | { 15 | public: 16 | static void GetNodeStates_Internal(Il2CppObject* nodeStates); 17 | 18 | static void GetLocalPosition_Injected(XRNode node, Vector3* ret); 19 | 20 | static void GetLocalRotation_Injected(XRNode node, Quaternion* ret); 21 | }; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /deps/minhook.lua: -------------------------------------------------------------------------------- 1 | minhook = { 2 | source = path.join(dependencies.basePath, "minhook"), 3 | } 4 | 5 | function minhook.import() 6 | links { "minhook" } 7 | minhook.includes() 8 | end 9 | 10 | function minhook.includes() 11 | includedirs { 12 | path.join(minhook.source, "include") 13 | } 14 | end 15 | 16 | function minhook.project() 17 | project "minhook" 18 | language "C" 19 | 20 | minhook.includes() 21 | 22 | files { 23 | path.join(minhook.source, "src/**.h"), 24 | path.join(minhook.source, "src/**.c"), 25 | } 26 | 27 | warnings "Off" 28 | kind "StaticLib" 29 | end 30 | 31 | table.insert(dependencies, minhook) 32 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Cryptographer.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Cryptographer.hpp" 4 | 5 | namespace 6 | { 7 | void* MakeMd5_addr = nullptr; 8 | } 9 | 10 | static void InitAddress() 11 | { 12 | MakeMd5_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "Cryptographer", "MakeMd5", 1); 13 | } 14 | 15 | STATIC 16 | { 17 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 18 | } 19 | 20 | namespace Gallop 21 | { 22 | Il2CppString* Cryptographer::MakeMd5(Il2CppString* input) 23 | { 24 | return reinterpret_cast(MakeMd5_addr)(input); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Singleton.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/Object.hpp" 4 | 5 | 6 | namespace Gallop 7 | { 8 | template 9 | class Singleton abstract : public UnityEngine::Object 10 | { 11 | public: 12 | static T Instance() 13 | { 14 | auto instanceField = il2cpp_class_get_field_from_name_wrap(il2cpp_symbols::get_class("umamusume.dll", T::namespaze, T::klassName), "_instance"); 15 | Il2CppObject* instance; 16 | il2cpp_field_static_get_value(instanceField, &instance); 17 | return T(instance); 18 | } 19 | 20 | using Object::Object; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /resources/custom_font/DoHyeon-Regular/font.manifest: -------------------------------------------------------------------------------- 1 | ManifestFileVersion: 0 2 | CRC: 895724745 3 | Hashes: 4 | AssetFileHash: 5 | serializedVersion: 2 6 | Hash: 4d143aff6b506b35f4b754531929979a 7 | TypeTreeHash: 8 | serializedVersion: 2 9 | Hash: 4de8b25cbd6d858cd4c6ce40521297b9 10 | HashAppended: 0 11 | ClassTypes: 12 | - Class: 21 13 | Script: {instanceID: 0} 14 | - Class: 28 15 | Script: {instanceID: 0} 16 | - Class: 48 17 | Script: {instanceID: 0} 18 | - Class: 128 19 | Script: {instanceID: 0} 20 | SerializeReferenceClassIdentifiers: [] 21 | Assets: 22 | - Assets/DoHyeon-Regular.fontsettings 23 | - Assets/DoHyeon-Regular.ttf 24 | Dependencies: [] 25 | -------------------------------------------------------------------------------- /resources/custom_font/SingleDay-Regular/font.manifest: -------------------------------------------------------------------------------- 1 | ManifestFileVersion: 0 2 | CRC: 2621210776 3 | Hashes: 4 | AssetFileHash: 5 | serializedVersion: 2 6 | Hash: 79803e70f4b943a4edee3566f32babbf 7 | TypeTreeHash: 8 | serializedVersion: 2 9 | Hash: 4de8b25cbd6d858cd4c6ce40521297b9 10 | HashAppended: 0 11 | ClassTypes: 12 | - Class: 21 13 | Script: {instanceID: 0} 14 | - Class: 28 15 | Script: {instanceID: 0} 16 | - Class: 48 17 | Script: {instanceID: 0} 18 | - Class: 128 19 | Script: {instanceID: 0} 20 | SerializeReferenceClassIdentifiers: [] 21 | Assets: 22 | - Assets/SingleDay-Regular.ttf 23 | - Assets/SingleDay-Regular.fontsettings 24 | Dependencies: [] 25 | -------------------------------------------------------------------------------- /resources/custom_font/GyeonggiTitle_Medium/font.manifest: -------------------------------------------------------------------------------- 1 | ManifestFileVersion: 0 2 | CRC: 2439197034 3 | Hashes: 4 | AssetFileHash: 5 | serializedVersion: 2 6 | Hash: 3c7c76b3583dac1b4148641821c6c0bb 7 | TypeTreeHash: 8 | serializedVersion: 2 9 | Hash: 4de8b25cbd6d858cd4c6ce40521297b9 10 | HashAppended: 0 11 | ClassTypes: 12 | - Class: 21 13 | Script: {instanceID: 0} 14 | - Class: 28 15 | Script: {instanceID: 0} 16 | - Class: 48 17 | Script: {instanceID: 0} 18 | - Class: 128 19 | Script: {instanceID: 0} 20 | SerializeReferenceClassIdentifiers: [] 21 | Assets: 22 | - Assets/GyeonggiTitle_Medium.fontsettings 23 | - Assets/GyeonggiTitle_Medium.ttf 24 | Dependencies: [] 25 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GameSystem.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoSingleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class GameSystem : public MonoSingleton 8 | { 9 | public: 10 | enum class SystemState 11 | { 12 | Booting, 13 | Deactive, 14 | Active, 15 | SoftwareReset 16 | }; 17 | 18 | static bool IsExecutingSoftwareReset(); 19 | 20 | Il2CppObject* InitializeGame(Il2CppDelegate* onCompleteInitializeUI); 21 | 22 | void SoftwareReset(); 23 | 24 | SystemState _systemState(); 25 | 26 | using MonoSingleton::MonoSingleton; 27 | 28 | static const char* namespaze; 29 | static const char* klassName; 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Rendering/BuiltinRenderTextureType.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | namespace Rendering 6 | { 7 | enum class BuiltinRenderTextureType 8 | { 9 | PropertyName = -4, 10 | BufferPtr, 11 | RenderTexture, 12 | BindableTexture, 13 | None, 14 | CurrentActive, 15 | CameraTarget, 16 | Depth, 17 | DepthNormals, 18 | ResolvedDepth, 19 | PrepassNormalsSpec = 7, 20 | PrepassLight, 21 | PrepassLightSpec, 22 | GBuffer0, 23 | GBuffer1, 24 | GBuffer2, 25 | GBuffer3, 26 | Reflections, 27 | MotionVectors, 28 | GBuffer4, 29 | GBuffer5, 30 | GBuffer6, 31 | GBuffer7 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/jwt/jwt.hpp: -------------------------------------------------------------------------------- 1 | #ifndef JWT_H 2 | #define JWT_H 3 | 4 | #include 5 | 6 | using namespace std; 7 | 8 | class jwt { 9 | private: 10 | string _psk; 11 | 12 | public: 13 | jwt(string &psk); 14 | 15 | jwt(const char *psk); 16 | 17 | // Set a new psk for encoding and decoding JWTs 18 | void setPSK(string &psk); 19 | 20 | void setPSK(const char *psk); 21 | 22 | // Get the calculated length of a JWT 23 | static size_t getJWTLength(string &payload); 24 | 25 | static size_t getJWTLength(const char *payload); 26 | 27 | // Create a JSON Web Token 28 | string encodeJWT(string &payload); 29 | 30 | void encodeJWT(char *payload, char *jwt); 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /src/Signature.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | inline uint32_t SigScanOffset(const char* signature, const char* mask, MEMORY_BASIC_INFORMATION memInfo, int offset = 0) 6 | { 7 | const size_t length = strlen(mask); 8 | 9 | for (size_t i = offset; i < memInfo.RegionSize; i++) 10 | { 11 | char* memory = reinterpret_cast(memInfo.BaseAddress) + i; 12 | 13 | size_t j; 14 | for (j = 0; j < length; j++) 15 | { 16 | if (mask[j] != '?' && signature[j] != memory[j]) 17 | break; 18 | } 19 | 20 | if (j == length) 21 | { 22 | return i + length; 23 | } 24 | } 25 | 26 | return 0; 27 | } 28 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Matrix4x4.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Matrix4x4.hpp" 4 | 5 | // void* GetNodeStates_Internal_addr = nullptr; 6 | 7 | static void InitAddress() 8 | { 9 | // GetNodeStates_Internal_addr = il2cpp_resolve_icall("UnityEngine.XR.InputTracking::GetNodeStates_Internal()"); 10 | } 11 | 12 | STATIC 13 | { 14 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 15 | } 16 | 17 | namespace UnityEngine 18 | { 19 | Matrix4x4 Matrix4x4::zeroMatrix = Matrix4x4{ {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} }; 20 | Matrix4x4 Matrix4x4::identityMatrix = Matrix4x4{ {1,0,0,0}, {0,1,0,0}, {0,0,1,0}, {0,0,0,1} }; 21 | } 22 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Application.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "NetworkReachability.hpp" 4 | 5 | namespace UnityEngine 6 | { 7 | class Application 8 | { 9 | public: 10 | static void Quit(int exitCode); 11 | static void OpenURL(Il2CppString* url); 12 | static Il2CppString* unityVersion(); 13 | static Il2CppString* companyName(); 14 | static Il2CppString* productName(); 15 | static Il2CppString* streamingAssetsPath(); 16 | static Il2CppString* persistentDataPath(); 17 | static void targetFrameRate(int value); 18 | static int targetFrameRate(); 19 | static NetworkReachability internetReachability(); 20 | 21 | static void Exit(int exitCode); 22 | }; 23 | } -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/MonoSingleton.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoFunctionSealedBaseForMonoSingleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | template 8 | class MonoSingleton abstract : public MonoFunctionSealedBaseForMonoSingleton 9 | { 10 | public: 11 | static T Instance() 12 | { 13 | auto instanceField = il2cpp_class_get_field_from_name_wrap(il2cpp_symbols::get_class("umamusume.dll", T::namespaze, T::klassName), "_instance"); 14 | Il2CppObject* instance; 15 | il2cpp_field_static_get_value(instanceField, &instance); 16 | return T(instance); 17 | } 18 | 19 | using MonoFunctionSealedBaseForMonoSingleton::MonoFunctionSealedBaseForMonoSingleton; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogCommonBase.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "LockableBehaviour.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class DialogCommonBase abstract : public LockableBehaviour 8 | { 9 | public: 10 | enum class FormType 11 | { 12 | NONE = -1, 13 | SMALL_NO_BUTTON = 0, 14 | SMALL_ONE_BUTTON, 15 | SMALL_TWO_BUTTON, 16 | SMALL_THREE_BUTTON, 17 | MIDDLE_NO_BUTTON, 18 | MIDDLE_ONE_BUTTON, 19 | MIDDLE_TWO_BUTTON, 20 | MIDDLE_THREE_BUTTON, 21 | BIG_NO_BUTTON, 22 | BIG_ONE_BUTTON, 23 | BIG_TWO_BUTTON, 24 | BIG_THREE_BUTTON, 25 | WITHOUT_FRAME 26 | }; 27 | 28 | void Close(); 29 | 30 | using LockableBehaviour::LockableBehaviour; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogCommonBaseData.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "scripts/UnityEngine.CoreModule/UnityEngine/Object.hpp" 4 | #include "scripts/UnityEngine.CoreModule/UnityEngine/GameObject.hpp" 5 | #include "DialogCommonBase.hpp" 6 | 7 | namespace Gallop 8 | { 9 | class DialogCommonBaseData : public UnityEngine::Object 10 | { 11 | public: 12 | DialogCommonBase::FormType FormType(); 13 | 14 | void FormType(DialogCommonBase::FormType value); 15 | 16 | Il2CppString* Title(); 17 | 18 | void Title(Il2CppString* value); 19 | 20 | UnityEngine::GameObject ContentsObject(); 21 | 22 | void ContentsObject(UnityEngine::GameObject value); 23 | 24 | using Object::Object; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceCameraManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "MonoSingleton.hpp" 5 | #include "LowResolutionCameraUtil.hpp" 6 | 7 | namespace Gallop 8 | { 9 | class RaceCameraManager : public MonoSingleton 10 | { 11 | public: 12 | void SetupOrientation(LowResolutionCameraUtil::DrawDirection drawDirection); 13 | 14 | Il2CppObject* ChangeOrientationCoroutine(LowResolutionCameraUtil::DrawDirection direction, bool isFade, 15 | Il2CppDelegate_t* onChangeResolution); 16 | 17 | using MonoSingleton::MonoSingleton; 18 | 19 | static const char* namespaze; 20 | static const char* klassName; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Vector3.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Vector3.hpp" 4 | 5 | namespace 6 | { 7 | void* Vector3_Slerp_Injected_addr = nullptr; 8 | } 9 | 10 | static void InitAddress() 11 | { 12 | Vector3_Slerp_Injected_addr = il2cpp_resolve_icall("UnityEngine.Vector3::Slerp_Injected()"); 13 | } 14 | 15 | STATIC 16 | { 17 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 18 | } 19 | 20 | namespace UnityEngine 21 | { 22 | Vector3 Vector3::Slerp(Vector3 a, Vector3 b, float t) 23 | { 24 | Vector3 vector3{}; 25 | reinterpret_cast(Vector3_Slerp_Injected_addr)(a, b, t, &vector3); 26 | return vector3; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.XRModule/UnityEngine/XR/XRNodeState.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "../../../UnityEngine.CoreModule/UnityEngine/Vector3.hpp" 6 | #include "../../../UnityEngine.CoreModule/UnityEngine/Quaternion.hpp" 7 | 8 | #include "XRNode.hpp" 9 | #include "AvailableTrackingData.hpp" 10 | 11 | namespace UnityEngine 12 | { 13 | namespace XR 14 | { 15 | struct XRNodeState 16 | { 17 | public: 18 | XRNode m_Type; 19 | AvailableTrackingData m_AvailableFields; 20 | Vector3 m_Position; 21 | Quaternion m_Rotation; 22 | Vector3 m_Velocity; 23 | Vector3 m_AngularVelocity; 24 | Vector3 m_Acceleration; 25 | Vector3 m_AngularAcceleration; 26 | int m_Tracked; 27 | uint32_t m_UniqueID; 28 | }; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/game.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #define Unity2019 "2019.4."s 6 | #define Unity2020 "2020.3."s 7 | #define Unity2022 "2022.3."s 8 | 9 | using namespace std; 10 | 11 | namespace Game { 12 | enum class Region { 13 | UNKNOWN, 14 | JPN, 15 | KOR, 16 | ENG, 17 | }; 18 | 19 | enum class Store { 20 | Google, 21 | Steam, 22 | // Ex. OneStore, MyCard... 23 | Other, 24 | }; 25 | 26 | enum class UnityVersion 27 | { 28 | Unity19, 29 | Unity20, 30 | Unity22, 31 | Unknown, 32 | }; 33 | 34 | inline auto CurrentGameRegion = Region::UNKNOWN; 35 | inline auto CurrentGameStore = Store::Other; 36 | inline auto CurrentUnityVersion = UnityVersion::Unknown; 37 | } 38 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/PushNotificationManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "scripts/UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 5 | #include "scripts/umamusume/Gallop/LocalPushDefine.hpp" 6 | 7 | using namespace UnityEngine; 8 | 9 | namespace Gallop 10 | { 11 | class PushNotificationManager : public MonoBehaviour 12 | { 13 | public: 14 | static PushNotificationManager Instance(); 15 | 16 | static Il2CppString* CreatePushIconFilePath(LocalPushDefine::LocalPushType localPushType); 17 | 18 | Il2CppString* createFavIconFilePath(int _unitId, LocalPushDefine::LocalPushType localPushType); 19 | 20 | int MakeNotificationId(LocalPushDefine::LocalPushType localPushType, int key); 21 | 22 | using MonoBehaviour::MonoBehaviour; 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /src/local/local.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "il2cpp/il2cpp_symbols.hpp" 6 | 7 | namespace local 8 | { 9 | void load_textdb(const std::vector *dicts); 10 | void load_textId_textdb(const std::wstring& dict); 11 | void reload_textdb(const std::vector* dicts); 12 | void reload_textId_textdb(const std::wstring& dict); 13 | bool localify_text(size_t hash, const std::wstring** result); 14 | bool localify_text_by_textId_name(const std::wstring& textIdName, std::wstring** result); 15 | Il2CppString* get_localized_string(size_t hash_or_id); 16 | Il2CppString* get_localized_string(const std::wstring& textIdName); 17 | Il2CppString* get_localized_string(Il2CppString* str); 18 | const char* get_localized_string(const char* str); 19 | }; 20 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Rect.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace UnityEngine 4 | { 5 | struct Rect 6 | { 7 | public: 8 | float x; 9 | float y; 10 | float width; 11 | float height; 12 | 13 | float xMin() const { return x; } 14 | float yMin() const { return y; } 15 | float xMax() const { return x + width; } 16 | float yMax() const { return y + height; } 17 | 18 | Rect operator*=(float other) 19 | { 20 | x = x * other; 21 | y = y * other; 22 | width = width * other; 23 | height = height * other; 24 | return Rect{ x, y, width, height }; 25 | } 26 | 27 | Rect operator/=(float other) 28 | { 29 | x = x / other; 30 | y = y / other; 31 | width = width / other; 32 | height = height / other; 33 | return Rect{ x, y, width, height }; 34 | } 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /src/pe_lib/utils.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "utils.h" 3 | #include "pe_exception.h" 4 | 5 | namespace pe_bliss 6 | { 7 | const double pe_utils::log_2 = 1.44269504088896340736; //instead of using M_LOG2E 8 | 9 | //Returns stream size 10 | std::streamoff pe_utils::get_file_size(std::istream& file) 11 | { 12 | //Get old istream offset 13 | std::streamoff old_offset = file.tellg(); 14 | file.seekg(0, std::ios::end); 15 | std::streamoff filesize = file.tellg(); 16 | //Set old istream offset 17 | file.seekg(old_offset); 18 | return filesize; 19 | } 20 | 21 | bool operator==(const pe_win::guid& guid1, const pe_win::guid& guid2) 22 | { 23 | return guid1.Data1 == guid2.Data1 24 | && guid1.Data2 == guid2.Data2 25 | && guid1.Data3 == guid2.Data3 26 | && !memcmp(guid1.Data4, guid2.Data4, sizeof(guid1.Data4)); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Rendering/RenderTargetIdentifier.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "BuiltinRenderTextureType.hpp" 4 | #include "../CubemapFace.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | namespace Rendering 9 | { 10 | struct RenderTargetIdentifier 11 | { 12 | public: 13 | RenderTargetIdentifier(BuiltinRenderTextureType type) 14 | { 15 | m_Type = type; 16 | m_NameID = -1; 17 | m_InstanceID = 0; 18 | m_BufferPointer = nullptr; 19 | m_MipLevel = 0; 20 | m_CubeFace = CubemapFace::Unknown; 21 | m_DepthSlice = 0; 22 | } 23 | 24 | private: 25 | BuiltinRenderTextureType m_Type; 26 | int m_NameID; 27 | int m_InstanceID; 28 | void* m_BufferPointer; 29 | int m_MipLevel; 30 | CubemapFace m_CubeFace; 31 | int m_DepthSlice; 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/RectTransform.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Transform.hpp" 5 | #include "Vector2.hpp" 6 | #include "Rect.hpp" 7 | 8 | namespace UnityEngine 9 | { 10 | class RectTransform : public Transform 11 | { 12 | public: 13 | void anchoredPosition(Vector2 value); 14 | Vector2 anchoredPosition(); 15 | void anchorMax(Vector2 value); 16 | Vector2 anchorMax(); 17 | void anchorMin(Vector2 value); 18 | Vector2 anchorMin(); 19 | void pivot(Vector2 value); 20 | Vector2 pivot(); 21 | void sizeDelta(Vector2 value); 22 | Vector2 sizeDelta(); 23 | void offsetMin(Vector2 value); 24 | Vector2 offsetMin(); 25 | void offsetMax(Vector2 value); 26 | Vector2 offsetMax(); 27 | Rect rect(); 28 | 29 | using Transform::Transform; 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LocalPushDefine.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Gallop 4 | { 5 | class LocalPushDefine 6 | { 7 | public: 8 | enum LocalPushType 9 | { 10 | Tp, 11 | Rp, 12 | Job1, 13 | Job2, 14 | Job3, 15 | Job4, 16 | Job5, 17 | Job6, 18 | Job7, 19 | Job8, 20 | }; 21 | 22 | static LocalPushType GetJobsLocalPushTypeByIndex(int index) 23 | { 24 | switch (index) 25 | { 26 | case 1: 27 | return LocalPushType::Job2; 28 | case 2: 29 | return LocalPushType::Job3; 30 | case 3: 31 | return LocalPushType::Job4; 32 | case 4: 33 | return LocalPushType::Job5; 34 | case 5: 35 | return LocalPushType::Job6; 36 | case 6: 37 | return LocalPushType::Job7; 38 | case 7: 39 | return LocalPushType::Job8; 40 | } 41 | 42 | return LocalPushType::Job1; 43 | } 44 | }; 45 | } 46 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/PaymentUtility.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoSingleton.hpp" 4 | 5 | namespace Gallop 6 | { 7 | class PaymentUtility : public MonoSingleton 8 | { 9 | public: 10 | void OpenBuyJewelDialog(Il2CppObject* evacuationCanvas); 11 | 12 | void OpenBuyJewelDialog(Il2CppDelegate* finish, bool removeAllOnFinish = true, Il2CppDelegate* onClose = nullptr, Il2CppDelegate* checkOpenShopDialog = nullptr, Il2CppObject* evacuationCanvas = nullptr, Il2CppArraySize_t* autoScrollIdList = nullptr); 13 | 14 | void SendRequestPaymentItemList(Il2CppDelegate* onComplete, bool removeAllOnFinish, Il2CppDelegate* onCancel, Il2CppObject* evacuationCanvas); 15 | 16 | using MonoSingleton::MonoSingleton; 17 | 18 | static const char* namespaze; 19 | static const char* klassName; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/SaveIcon.h: -------------------------------------------------------------------------------- 1 | #ifndef HS_HEADER_DEF_ICONMEMFUNC_H 2 | #define HS_HEADER_DEF_ICONMEMFUNC_H 3 | 4 | #if _MSC_VER >= 1000 5 | #pragma once 6 | #endif 7 | ////////////////////////////////////////////////////////////////////////// 8 | #include 9 | 10 | struct TIconHeader 11 | { 12 | WORD Reserved; 13 | WORD wType; 14 | WORD Count; 15 | }; 16 | 17 | struct TIconRes 18 | { 19 | BYTE Width; 20 | BYTE Height; 21 | WORD Colors; 22 | WORD Reserved1; 23 | WORD Reserved2; 24 | DWORD DIBSize; 25 | DWORD DIBOffset; 26 | }; 27 | 28 | VOID InitBmpHeader(HBITMAP hBitmap, BITMAPINFOHEADER& BI, int nBit); 29 | 30 | VOID GetDIBSizes(HBITMAP Bitmap, DWORD &InfoSize, DWORD &ImageSize, int nBit); 31 | 32 | VOID GetDIB(HBITMAP Bitmap, BITMAPINFO* BmpInfo, PVOID Bits, INT nBit); 33 | 34 | BOOL SaveIconToFile(HICON hIcon, LPWSTR szFileName, int nBit); 35 | 36 | #endif //HS_HEADER_DEF_ICONMEMFUNC_H -------------------------------------------------------------------------------- /src/discord/image_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class ImageManager final { 8 | public: 9 | ~ImageManager() = default; 10 | 11 | void Fetch(ImageHandle handle, bool refresh, std::function callback); 12 | Result GetDimensions(ImageHandle handle, ImageDimensions* dimensions); 13 | Result GetData(ImageHandle handle, std::uint8_t* data, std::uint32_t dataLength); 14 | 15 | private: 16 | friend class Core; 17 | 18 | ImageManager() = default; 19 | ImageManager(ImageManager const& rhs) = delete; 20 | ImageManager& operator=(ImageManager const& rhs) = delete; 21 | ImageManager(ImageManager&& rhs) = delete; 22 | ImageManager& operator=(ImageManager&& rhs) = delete; 23 | 24 | IDiscordImageManager* internal_; 25 | static IDiscordImageEvents events_; 26 | }; 27 | 28 | } // namespace discord 29 | -------------------------------------------------------------------------------- /src/dllproxy/version.def: -------------------------------------------------------------------------------- 1 | LIBRARY version.dll 2 | EXPORTS 3 | GetFileVersionInfoA=GetFileVersionInfoA_EXPORT 4 | GetFileVersionInfoByHandle=GetFileVersionInfoByHandle_EXPORT 5 | GetFileVersionInfoExA=GetFileVersionInfoExA_EXPORT 6 | GetFileVersionInfoExW=GetFileVersionInfoExW_EXPORT 7 | GetFileVersionInfoSizeA=GetFileVersionInfoSizeA_EXPORT 8 | GetFileVersionInfoSizeExA=GetFileVersionInfoSizeExA_EXPORT 9 | GetFileVersionInfoSizeExW=GetFileVersionInfoSizeExW_EXPORT 10 | GetFileVersionInfoSizeW=GetFileVersionInfoSizeW_EXPORT 11 | GetFileVersionInfoW=GetFileVersionInfoW_EXPORT 12 | VerFindFileA=VerFindFileA_EXPORT 13 | VerFindFileW=VerFindFileW_EXPORT 14 | VerInstallFileA=VerInstallFileA_EXPORT 15 | VerInstallFileW=VerInstallFileW_EXPORT 16 | VerLanguageNameA=VerLanguageNameA_EXPORT 17 | VerLanguageNameW=VerLanguageNameW_EXPORT 18 | VerQueryValueA=VerQueryValueA_EXPORT 19 | VerQueryValueW=VerQueryValueW_EXPORT 20 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceLoaderManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp-object-internals.h" 4 | 5 | namespace Gallop 6 | { 7 | class RaceLoaderManager 8 | { 9 | public: 10 | struct CourceContext 11 | { 12 | public: 13 | int courseId; 14 | int timeEnum; 15 | int seasonEnum; 16 | int turfGoalGate; 17 | int turfGoalFlower; 18 | int dirtGoalGate; 19 | int dirtGoalFlower; 20 | int skydomeCourseId; 21 | int skydomeSeasonEnum; 22 | int skydomeWeatherEnum; 23 | int skydomeTimeEnum; 24 | int audienceEnum; 25 | int audienceWeatherEnum; 26 | int audienceSeasonEnum; 27 | int treeWeaterEnum; 28 | int treeTimeEnum; 29 | int RotationCategoryEnum; 30 | int lightProbeId; 31 | Il2CppArraySize* materialTeturePairs; 32 | Il2CppArraySize* materialSubTexturePairs; 33 | bool halfStartGate; 34 | int CourseStartGateBaseId; 35 | }; 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /src/il2cpp/codegen/il2cpp-codegen-metadata.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef struct String_t String_t; 4 | struct Type_t; 5 | struct Exception_t; 6 | struct StringBuilder_t; 7 | struct MulticastDelegate_t; 8 | struct MethodBase_t; 9 | struct Assembly_t; 10 | 11 | #include "../il2cpp-class-internals.h" 12 | 13 | #if RUNTIME_TINY 14 | 15 | struct RuntimeMethod; 16 | 17 | #else 18 | 19 | struct TypeInfo; 20 | struct MethodInfo; 21 | struct FieldInfo; 22 | struct Il2CppType; 23 | // typedef Il2CppClass RuntimeClass; 24 | typedef MethodInfo RuntimeMethod; 25 | typedef FieldInfo RuntimeField; 26 | typedef Il2CppType RuntimeType; 27 | typedef Il2CppObject RuntimeObject; 28 | typedef Il2CppImage RuntimeImage; 29 | typedef Il2CppException RuntimeException; 30 | typedef Il2CppArray RuntimeArray; 31 | typedef Il2CppAssembly RuntimeAssembly; 32 | typedef Il2CppString RuntimeString; 33 | typedef Il2CppDelegate RuntimeDelegate; 34 | #endif 35 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Behaviour.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Behaviour.hpp" 4 | 5 | namespace 6 | { 7 | void* get_enabled_addr = nullptr; 8 | 9 | void* set_enabled_addr = nullptr; 10 | } 11 | 12 | static void InitAddress() 13 | { 14 | get_enabled_addr = il2cpp_resolve_icall("UnityEngine.Behaviour::get_enabled()"); 15 | set_enabled_addr = il2cpp_resolve_icall("UnityEngine.Behaviour::set_enabled()"); 16 | } 17 | 18 | STATIC 19 | { 20 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 21 | } 22 | 23 | namespace UnityEngine 24 | { 25 | bool Behaviour::enabled() 26 | { 27 | return reinterpret_cast(get_enabled_addr)(instance); 28 | } 29 | 30 | void Behaviour::enabled(bool value) 31 | { 32 | reinterpret_cast(set_enabled_addr)(instance, value); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/discord/user_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class UserManager final { 8 | public: 9 | ~UserManager() = default; 10 | 11 | Result GetCurrentUser(User* currentUser); 12 | void GetUser(UserId userId, std::function callback); 13 | Result GetCurrentUserPremiumType(PremiumType* premiumType); 14 | Result CurrentUserHasFlag(UserFlag flag, bool* hasFlag); 15 | 16 | Event<> OnCurrentUserUpdate; 17 | 18 | private: 19 | friend class Core; 20 | 21 | UserManager() = default; 22 | UserManager(UserManager const& rhs) = delete; 23 | UserManager& operator=(UserManager const& rhs) = delete; 24 | UserManager(UserManager&& rhs) = delete; 25 | UserManager& operator=(UserManager&& rhs) = delete; 26 | 27 | IDiscordUserManager* internal_; 28 | static IDiscordUserEvents events_; 29 | }; 30 | 31 | } // namespace discord 32 | -------------------------------------------------------------------------------- /src/hmac_sha256/hmac_sha256.h: -------------------------------------------------------------------------------- 1 | /* 2 | hmac_sha256.h 3 | Originally written by https://github.com/h5p9sl 4 | */ 5 | 6 | #ifndef _HMAC_SHA256_H_ 7 | #define _HMAC_SHA256_H_ 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif // __cplusplus 12 | 13 | #include 14 | 15 | size_t // Returns the number of bytes written to `out` 16 | hmac_sha256( 17 | // [in]: The key and its length. 18 | // Should be at least 32 bytes long for optimal security. 19 | const void* key, 20 | const size_t keylen, 21 | 22 | // [in]: The data to hash alongside the key. 23 | const void* data, 24 | const size_t datalen, 25 | 26 | // [out]: The output hash. 27 | // Should be 32 bytes long. If it's less than 32 bytes, 28 | // the resulting hash will be truncated to the specified length. 29 | void* out, 30 | const size_t outlen); 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif // __cplusplus 35 | 36 | #endif // _HMAC_SHA256_H_ 37 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.AssetBundleModule/UnityEngine/AssetBundle.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "scripts/UnityEngine.CoreModule/UnityEngine/Object.hpp" 5 | 6 | extern Il2CppObject* GetReplacementAssets(Il2CppString* name, Il2CppReflectionType* type); 7 | 8 | static Il2CppObject* GetReplacementAtlasAssets(Il2CppString* name, Il2CppReflectionType* type); 9 | 10 | extern void ReplaceMaterialTextureProperty(Il2CppObject* material, Il2CppString* property); 11 | 12 | namespace UnityEngine 13 | { 14 | class AssetBundle : public Object 15 | { 16 | public: 17 | static AssetBundle LoadFromFile(Il2CppString* path); 18 | Il2CppObject* LoadAsset(Il2CppString* name, Il2CppReflectionType* runtimeType); 19 | Il2CppObject* LoadAssetAsync(Il2CppString* name, Il2CppReflectionType* runtimeType); 20 | Il2CppArraySize_t* GetAllAssetNames(); 21 | void Unload(bool unloadAllLoadedObjects); 22 | 23 | using Object::Object; 24 | }; 25 | } -------------------------------------------------------------------------------- /loader/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern void init_hook(filesystem::path module_path); 4 | extern void uninit_hook(); 5 | 6 | int __stdcall DllMain(HINSTANCE module, DWORD reason, LPVOID) 7 | { 8 | if (reason == DLL_PROCESS_ATTACH) 9 | { 10 | // the DMM Launcher set start path to system32 wtf???? 11 | wstring module_name; 12 | module_name.resize(MAX_PATH); 13 | module_name.resize(GetModuleFileNameW(nullptr, module_name.data(), MAX_PATH)); 14 | 15 | filesystem::path module_path(module_name); 16 | 17 | std::filesystem::current_path( 18 | module_path.parent_path() 19 | ); 20 | 21 | // check name 22 | if (module_path.filename() != "umamusume.exe" && 23 | module_path.filename() != "UmamusumePrettyDerby_Jpn.exe" && 24 | module_path.filename() != "UmamusumePrettyDerby.exe") 25 | { 26 | return TRUE; 27 | } 28 | 29 | init_hook(module_path); 30 | } 31 | else if (reason == DLL_PROCESS_DETACH) 32 | { 33 | uninit_hook(); 34 | } 35 | 36 | return TRUE; 37 | } 38 | -------------------------------------------------------------------------------- /src/scripts/mscorlib/System/Nullable.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "game.hpp" 3 | 4 | namespace System 5 | { 6 | template 7 | struct Nullable 8 | { 9 | private: 10 | union 11 | { 12 | T value2020; 13 | bool has_value; 14 | }; 15 | union 16 | { 17 | T value; 18 | bool has_value2020; 19 | }; 20 | 21 | public: 22 | bool HasValue() const 23 | { 24 | if (Game::CurrentUnityVersion != Game::UnityVersion::Unity22) 25 | { 26 | return has_value2020; 27 | } 28 | 29 | return has_value; 30 | } 31 | 32 | T Value() const 33 | { 34 | if (Game::CurrentUnityVersion != Game::UnityVersion::Unity22) 35 | { 36 | return value2020; 37 | } 38 | 39 | return value; 40 | } 41 | 42 | void Value(T v) 43 | { 44 | if (Game::CurrentUnityVersion != Game::UnityVersion::Unity22) 45 | { 46 | value2020 = v; 47 | has_value2020 = true; 48 | } 49 | else 50 | { 51 | value = v; 52 | has_value = true; 53 | } 54 | } 55 | }; 56 | } 57 | -------------------------------------------------------------------------------- /src/scripts/Cute.Core.Assembly/Cute/Core/WebViewManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "../../../UnityEngine.CoreModule/UnityEngine/MonoBehaviour.hpp" 4 | #include "../../../UnityEngine.CoreModule/UnityEngine/Vector4.hpp" 5 | 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | namespace Cute 12 | { 13 | namespace Core 14 | { 15 | class WebViewManager : public UnityEngine::MonoBehaviour 16 | { 17 | public: 18 | static WebViewManager Instance(); 19 | 20 | static wil::com_ptr webviewController; 21 | 22 | static unordered_map customFontMap; 23 | 24 | void OpenWeb(Il2CppString* url); 25 | 26 | void SetVisible(bool visible); 27 | 28 | void SetMargins(int leftMargin, int topMargin, int rightMargin, int bottomMargin); 29 | 30 | Il2CppDelegate* Callback(); 31 | 32 | UnityEngine::Vector4 marginNow(); 33 | 34 | using UnityEngine::MonoBehaviour::MonoBehaviour; 35 | }; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/discord/application_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class ApplicationManager final { 8 | public: 9 | ~ApplicationManager() = default; 10 | 11 | void ValidateOrExit(std::function callback); 12 | void GetCurrentLocale(char locale[128]); 13 | void GetCurrentBranch(char branch[4096]); 14 | void GetOAuth2Token(std::function callback); 15 | void GetTicket(std::function callback); 16 | 17 | private: 18 | friend class Core; 19 | 20 | ApplicationManager() = default; 21 | ApplicationManager(ApplicationManager const& rhs) = delete; 22 | ApplicationManager& operator=(ApplicationManager const& rhs) = delete; 23 | ApplicationManager(ApplicationManager&& rhs) = delete; 24 | ApplicationManager& operator=(ApplicationManager&& rhs) = delete; 25 | 26 | IDiscordApplicationManager* internal_; 27 | static IDiscordApplicationEvents events_; 28 | }; 29 | 30 | } // namespace discord 31 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/StandaloneWindowResize.cpp: -------------------------------------------------------------------------------- 1 | #ifdef _MSC_VER 2 | 3 | #include "../umamusume.hpp" 4 | #include "../../ScriptInternal.hpp" 5 | #include "StandaloneWindowResize.hpp" 6 | 7 | #include "config/config.hpp" 8 | 9 | namespace 10 | { 11 | void* get_IsVirt_addr = nullptr; 12 | 13 | void* set_IsVirt_addr = nullptr; 14 | } 15 | 16 | static void InitAddress() 17 | { 18 | get_IsVirt_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "StandaloneWindowResize", "get_IsVirt", 0); 19 | set_IsVirt_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "StandaloneWindowResize", "set_IsVirt", 1); 20 | } 21 | 22 | STATIC 23 | { 24 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 25 | } 26 | 27 | namespace Gallop 28 | { 29 | bool StandaloneWindowResize::IsVirt() 30 | { 31 | return reinterpret_cast(get_IsVirt_addr)(); 32 | } 33 | 34 | void StandaloneWindowResize::IsVirt(bool value) 35 | { 36 | reinterpret_cast(set_IsVirt_addr)(value); 37 | } 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /src/discord/relationship_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class RelationshipManager final { 8 | public: 9 | ~RelationshipManager() = default; 10 | 11 | void Filter(std::function filter); 12 | Result Count(std::int32_t* count); 13 | Result Get(UserId userId, Relationship* relationship); 14 | Result GetAt(std::uint32_t index, Relationship* relationship); 15 | 16 | Event<> OnRefresh; 17 | Event OnRelationshipUpdate; 18 | 19 | private: 20 | friend class Core; 21 | 22 | RelationshipManager() = default; 23 | RelationshipManager(RelationshipManager const& rhs) = delete; 24 | RelationshipManager& operator=(RelationshipManager const& rhs) = delete; 25 | RelationshipManager(RelationshipManager&& rhs) = delete; 26 | RelationshipManager& operator=(RelationshipManager&& rhs) = delete; 27 | 28 | IDiscordRelationshipManager* internal_; 29 | static IDiscordRelationshipEvents events_; 30 | }; 31 | 32 | } // namespace discord 33 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/WebViewDefine.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Gallop 4 | { 5 | class WebViewDefine 6 | { 7 | public: 8 | enum Url 9 | { 10 | None, 11 | Update, 12 | Event, 13 | Bug, 14 | NewsDetail, 15 | TermOfService, 16 | Tokusho, 17 | ShopPayment, 18 | PrivacyPolicy, 19 | License, 20 | Help, 21 | AppleId, 22 | StoryEventHelp, 23 | TrainingChallengeHelp, 24 | ChallengeMatchHelp, 25 | FanRaidHelp, 26 | CollectRaidHelp, 27 | TeamBuildingHelp, 28 | FactorResearchHelp, 29 | HeroesHelp, 30 | UltimateRaceHelp, 31 | RatingRaceHelp, 32 | }; 33 | 34 | enum HelpCategory 35 | { 36 | Home = 1, 37 | Character, 38 | Story, 39 | Twinkle, 40 | HolydayRace, 41 | Training, 42 | Skill, 43 | Live, 44 | School, 45 | Gacha, 46 | Menu, 47 | TrainerNote, 48 | StoryEvent 49 | }; 50 | 51 | enum FontNameDefine 52 | { 53 | JP_DYNAMIC01, 54 | }; 55 | 56 | enum DmmUrlType 57 | { 58 | Cygames, 59 | Dmm, 60 | Official, 61 | Web, 62 | }; 63 | }; 64 | } -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Matrix4x4.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vector3.hpp" 4 | #include "Vector4.hpp" 5 | #include "Quaternion.hpp" 6 | 7 | namespace UnityEngine 8 | { 9 | struct Matrix4x4 10 | { 11 | public: 12 | float m00; 13 | float m01; 14 | float m02; 15 | float m03; 16 | float m10; 17 | float m11; 18 | float m12; 19 | float m13; 20 | float m20; 21 | float m21; 22 | float m22; 23 | float m23; 24 | float m30; 25 | float m31; 26 | float m32; 27 | float m33; 28 | 29 | Matrix4x4(Vector4 column0, Vector4 column1, Vector4 column2, Vector4 column3) 30 | { 31 | m00 = column0.x; 32 | m01 = column1.x; 33 | m02 = column2.x; 34 | m03 = column3.x; 35 | m10 = column0.y; 36 | m11 = column1.y; 37 | m12 = column2.y; 38 | m13 = column3.y; 39 | m20 = column0.z; 40 | m21 = column1.z; 41 | m22 = column2.z; 42 | m23 = column3.z; 43 | m30 = column0.w; 44 | m31 = column1.w; 45 | m32 = column2.w; 46 | m33 = column3.w; 47 | } 48 | 49 | static Matrix4x4 zeroMatrix; 50 | static Matrix4x4 identityMatrix; 51 | }; 52 | } 53 | -------------------------------------------------------------------------------- /resources/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "enableConsole": true, 3 | "enableLogger": false, 4 | "dumpStaticEntries": false, 5 | "maxFps": 0, 6 | "unlockSize": true, 7 | "uiScale": 1.0, 8 | "uiAnimationScale": 1.0, 9 | "replaceToBuiltinFont": true, 10 | "replaceToCustomFont": true, 11 | "fontAssetBundlePath": "custom_font/GyeonggiTitle_Medium/font", 12 | "fontAssetName": "GyeonggiTitle_Medium.fontsettings", 13 | "autoFullscreen": true, 14 | "graphicsQuality": 4, 15 | "antiAliasing": -1, 16 | "customTitleName": "우마무스메 프리티더비", 17 | "replaceAssetsPath": "replace_assets", 18 | "dicts": [ 19 | "localized_data/static.json", 20 | "localized_data/common.json", 21 | "localized_data/chara.json", 22 | "localized_data/race_comment.json", 23 | "localized_data/race_message.json", 24 | "localized_data/hash_entries.json", 25 | "localized_data/kor_main.json", 26 | "localized_data/kor_race.json", 27 | "localized_data/kor_story.json", 28 | "localized_data/kor_umastory.json" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Component.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Component.hpp" 4 | 5 | namespace 6 | { 7 | void* get_transform_addr = nullptr; 8 | void* get_gameObject_addr = nullptr; 9 | } 10 | 11 | static void InitAddress() 12 | { 13 | get_transform_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "UnityEngine", "Component", "get_transform", 0); 14 | get_gameObject_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "UnityEngine", "Component", "get_gameObject", 0); 15 | } 16 | 17 | STATIC 18 | { 19 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 20 | } 21 | 22 | namespace UnityEngine 23 | { 24 | Transform Component::transform() 25 | { 26 | auto transform = reinterpret_cast(get_transform_addr)(instance); 27 | return Transform(transform); 28 | } 29 | 30 | GameObject Component::gameObject() 31 | { 32 | auto gameObject = reinterpret_cast(get_gameObject_addr)(instance); 33 | return GameObject(gameObject); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Ji O 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.zh-Hans.md: -------------------------------------------------------------------------------- 1 | # umamusume-localify 2 | ## 赛马娘 (DMM版) 本地化补丁 3 | 4 | [English](README.md) 5 | [한국어](README.ko-KR.md) 6 | 7 | ### 使用方法: 8 | 1. 将 `version.dll` 和 `config.json` 以及 `config.json` 中引用的字典放置于 `umamusume.exe` 边上 9 | 2. 启动游戏 10 | 11 | ### 设置选项: 12 | - `enableConsole` 启用用来输出调试信息的控制台 (true/false) 13 | - `enableLogger` 将未覆盖的文本输出到 `dump.txt` (true/false) 14 | - `dumpStaticEntries` 需要上一条启用, 在游戏启动时将游戏内硬编码的文本条目输出到 `dump.txt` 15 | - `maxFps` 帧率限制 (-1 = 游戏原版/0 = 无限/>0 = 锁定到特定帧数) 16 | - 注: 垂直同步已开启 17 | - `unlockSize` 允许游戏使用`1080p`以上的分辨率 (true/false) 18 | - `uiScale` 自定义UI缩放 19 | - `replaceFont` 将所有字体替换为默认字体, 解决缺字问题 (true/false) 20 | - `autoFullscreen` 在屏幕比例对应时自动设置为全屏 (true/false) 21 | - 如屏幕是16:9 并且横屏,将会在横屏播放剧情/live时全屏 22 | - 如屏幕是9:16,将会在绝大多数情况下全屏 23 | - `dicts` 将会读取的字典列表 (相对/绝对路径) 24 | 25 | ### 已知问题 26 | - ~~有时候加载 yaml 时会卡住,原因不明~~ 换成了rapidjson, 再见了您内 27 | 28 | ### 如何贡献 29 | - 文本条目: 30 | - 位于 `resources/original_data` 内 31 | - 请在汉化完条目之后将其移动到`localized_data`内并提交 Pull Reqeust 32 | - 如要添加新条目,请先将`config.json` 内的 `enableLogger` 设置为 `true` 之后启动游戏 33 | - 随后未覆盖的文本会出现在 `dump.txt` 34 | - 代码 35 | - 想必各位都是老司机了 36 | -------------------------------------------------------------------------------- /src/scripts/CriMw.CriWare.Runtime/CriWare/CriMana/MovieInfo.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "AudioInfo.hpp" 3 | #include "CodecType.hpp" 4 | 5 | #include "il2cpp/il2cpp-object-internals.h" 6 | 7 | #include 8 | 9 | namespace CriWare 10 | { 11 | namespace CriMana 12 | { 13 | struct MovieInfo : Il2CppObject 14 | { 15 | public: 16 | bool hasAlpha() 17 | { 18 | return numAlphaStreams == 1U; 19 | } 20 | 21 | void hasAlpha(bool value) 22 | { 23 | numAlphaStreams = (value ? 1U : 0U); 24 | } 25 | 26 | private: 27 | uint32_t _reserved1; 28 | 29 | public: 30 | uint32_t numAlphaStreams; 31 | 32 | uint32_t width; 33 | 34 | uint32_t height; 35 | 36 | uint32_t dispWidth; 37 | 38 | uint32_t dispHeight; 39 | 40 | uint32_t framerateN; 41 | 42 | uint32_t framerateD; 43 | 44 | uint32_t totalFrames; 45 | 46 | CodecType codecType; 47 | 48 | CodecType alphaCodecType; 49 | 50 | uint32_t numAudioStreams; 51 | 52 | AudioInfo* audioPrm[32]; 53 | 54 | uint32_t numSubtitleChannels; 55 | 56 | uint32_t maxSubtitleSize; 57 | 58 | uint32_t maxChunkSize; 59 | }; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine/Networking/UnityWebRequest.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "../../../UnityEngine.CoreModule/UnityEngine/Object.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | namespace Networking 9 | { 10 | class UnityWebRequest : public Object 11 | { 12 | public: 13 | enum UnityWebRequestError 14 | { 15 | OK, 16 | Unknown, 17 | SDKError, 18 | UnsupportedProtocol, 19 | MalformattedUrl, 20 | CannotResolveProxy, 21 | CannotResolveHost, 22 | CannotConnectToHost, 23 | AccessDenied, 24 | GenericHttpError, 25 | WriteError, 26 | ReadError, 27 | OutOfMemory, 28 | Timeout, 29 | HTTPPostError, 30 | SSLCannotConnect, 31 | Aborted, 32 | TooManyRedirects, 33 | ReceivedNoData, 34 | SSLNotSupported, 35 | FailedToSendData, 36 | FailedToReceiveData, 37 | SSLCertificateError, 38 | SSLCipherNotAvailable, 39 | SSLCACertError, 40 | UnrecognizedContentEncoding, 41 | LoginFailed, 42 | SSLShutdownFailed, 43 | NoInternetConnection 44 | }; 45 | 46 | using Object::Object; 47 | }; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Coroutine.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Coroutine.hpp" 4 | 5 | namespace 6 | { 7 | Il2CppClass* CoroutineClass = nullptr; 8 | 9 | void* ReleaseCoroutine_addr = nullptr; 10 | 11 | FieldInfo* m_PtrField = nullptr; 12 | } 13 | 14 | static void InitAddress() 15 | { 16 | CoroutineClass = il2cpp_symbols::get_class(ASSEMBLY_NAME, "UnityEngine", "Coroutine"); 17 | ReleaseCoroutine_addr = il2cpp_resolve_icall("UnityEngine.Coroutine::ReleaseCoroutine()"); 18 | m_PtrField = il2cpp_class_get_field_from_name(CoroutineClass, "m_Ptr"); 19 | } 20 | 21 | STATIC 22 | { 23 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 24 | } 25 | 26 | namespace UnityEngine 27 | { 28 | Coroutine::Coroutine(Il2CppObject* object) : YieldInstruction(object) 29 | { 30 | if (object) 31 | { 32 | il2cpp_field_get_value(object, m_PtrField, &m_Ptr); 33 | } 34 | } 35 | 36 | void Coroutine::ReleaseCoroutine() 37 | { 38 | ReleaseCoroutine(m_Ptr); 39 | } 40 | 41 | void Coroutine::ReleaseCoroutine(void* ptr) 42 | { 43 | reinterpret_cast(ReleaseCoroutine_addr)(ptr); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.TextRenderingModule/UnityEngine/TextGenerationSettings.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp-object-internals.h" 4 | 5 | #include "scripts/UnityEngine.CoreModule/UnityEngine/Color.hpp" 6 | #include "scripts/UnityEngine.CoreModule/UnityEngine/Vector2.hpp" 7 | 8 | namespace UnityEngine 9 | { 10 | struct TextGenerationSettings 11 | { 12 | public: 13 | Il2CppObject* font; 14 | Color color; 15 | int fontSize; 16 | float lineSpacing; 17 | bool richText; 18 | float scaleFactor; 19 | // UnityEngine.FontStyle UnityEngine.TextGenerationSettings::fontStyle 20 | int fontStyle; 21 | // UnityEngine.TextAnchor UnityEngine.TextGenerationSettings::textAnchor 22 | int textAnchor; 23 | bool alignByGeometry; 24 | bool resizeTextForBestFit; 25 | int resizeTextMinSize; 26 | int resizeTextMaxSize; 27 | bool updateBounds; 28 | // UnityEngine.VerticalWrapMode UnityEngine.TextGenerationSettings::verticalOverflow 29 | int verticalOverflow; 30 | // UnityEngine.HorizontalWrapMode UnityEngine.TextGenerationSettings::horizontalOverflow 31 | int horizontalOverflow; 32 | Vector2 generationExtents; 33 | Vector2 pivot; 34 | bool generateOutOfBounds; 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /README.ja-JP.md: -------------------------------------------------------------------------------- 1 | # umamusume-localify 2 | ## ウマ娘 プリティーダービー ローカライズパッチ 3 | 4 | [韓国語](README.ko-KR.md) 5 | [中国語](README.zh-Hans.md) 6 | 7 | ### 使用方法: 8 | 1. `umamusume.exe`の格納先に`version.dll`、`config.json`と`dicts`を配置します。 9 | 2. ゲームを起動で適用されます 10 | 11 | ### 設定: 12 | - `enableConsole` デバッグ情報を表示するコンソールを有効化します。 (true/false) 13 | - `enableLogger` 未翻訳の文字列を`dump.txt`に出力します。 (true/false) 14 | - `dumpStaticEntries` ハードコードされた文字列を`dump.txt`に出力します。 15 | - `maxFps` 最大FPS制限を設定します。 (-1 = 通常/0 = 無制限/>0 = #fpsでFPS値を固定) 16 | - 注意: VSyncは有効化されています 17 | - `unlockSize` `1080p`以上の解像度を使用可能にします。 (true/false) 18 | - `uiScale` UIのスケールを変更します。 19 | - `replaceFont` すべてのフォントをデフォルトフォントに置き換えます。これを使用すると単語の欠落問題が解決します。 (true/false) 20 | - `autoFullscreen` 画面のアスペクト比が正しい場合にゲームをフルスクリーンで表示します。 (true/false) 21 | - 画面のアスペクト比が16:9の場合、ストーリーまたはライブを横で表示するとフルスクリーンになります。 22 | - 画面のアスペクト比が9:16の場合、ほとんどの表示がフルスクリーンで表示されます。 23 | - `dicts` 翻訳ファイルのリストを設定します (パス) 24 | 25 | ### 既知の問題 26 | - 特になし 27 | 28 | # リソース 29 | - `static.json` upgrade tool - https://github.com/AirJerryWhite/i18upgrade 30 | 31 | # クレジット 32 | ## 翻訳 33 | ### schinese 34 | - @AirJerryWhite 35 | - @Yaklo 36 | - @july20026 37 | - @RikkaTakanaishi 38 | - @羲羲 39 | ### tchinese 40 | - @yotv2000tw 41 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Transform.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Component.hpp" 5 | #include "Vector3.hpp" 6 | 7 | namespace UnityEngine 8 | { 9 | class Transform : public Component 10 | { 11 | public: 12 | void SetParent(Transform parent) 13 | { 14 | SetParent(parent, true); 15 | } 16 | 17 | void SetParent(Transform parent, bool worldPositionStays) 18 | { 19 | SetParent(parent.NativeObject(), worldPositionStays); 20 | } 21 | 22 | void SetParent(Il2CppObject* parent, bool worldPositionStays); 23 | 24 | Transform GetParent(); 25 | 26 | Transform Find(Il2CppString* name) 27 | { 28 | return FindRelativeTransformWithPath(instance, name, false); 29 | } 30 | 31 | Vector3 InverseTransformPoint(Vector3 position); 32 | 33 | Vector3 position(); 34 | 35 | void position(Vector3 value); 36 | 37 | Vector3 localScale(); 38 | 39 | void localScale(Vector3 value); 40 | 41 | int childCount(); 42 | 43 | Transform GetChild(int index); 44 | 45 | using Component::Component; 46 | 47 | private: 48 | Transform FindRelativeTransformWithPath(Transform transform, Il2CppString* path, bool isActiveOnly); 49 | }; 50 | } 51 | -------------------------------------------------------------------------------- /loader/src/VERSIONINFO.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include 4 | #include "resource.h" 5 | ///////////////////////////////////////////////////////////////////////////// 6 | 7 | #pragma code_page(65001) 8 | 9 | ///////////////////////////////////////////////////////////////////////////// 10 | // 11 | // Version 12 | // 13 | 14 | VS_VERSION_INFO VERSIONINFO 15 | FILEVERSION 1,0,3,0 16 | PRODUCTVERSION 1,0,3,0 17 | FILEFLAGSMASK 0x3fL 18 | #ifdef _DEBUG 19 | FILEFLAGS 0x1L 20 | #else 21 | FILEFLAGS 0x0L 22 | #endif 23 | FILEOS 0x4L 24 | FILETYPE 0x2L 25 | FILESUBTYPE 0x0L 26 | BEGIN 27 | BLOCK "StringFileInfo" 28 | BEGIN 29 | BLOCK "000004b0" 30 | BEGIN 31 | VALUE "FileDescription", "Loader for Umamusume Localify" 32 | VALUE "FileVersion", "1.0.3.0" 33 | VALUE "InternalName", "umamusume-localify-loader" 34 | VALUE "LegalCopyright", "Copyright ⓒ Ji O Kim" 35 | VALUE "ProductName", "Umamusume Localify Loader" 36 | VALUE "ProductVersion", "1.0.3.0" 37 | END 38 | END 39 | BLOCK "VarFileInfo" 40 | BEGIN 41 | VALUE "Translation", 0x0, 1200 42 | END 43 | END 44 | -------------------------------------------------------------------------------- /src/discord/voice_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class VoiceManager final { 8 | public: 9 | ~VoiceManager() = default; 10 | 11 | Result GetInputMode(InputMode* inputMode); 12 | void SetInputMode(InputMode inputMode, std::function callback); 13 | Result IsSelfMute(bool* mute); 14 | Result SetSelfMute(bool mute); 15 | Result IsSelfDeaf(bool* deaf); 16 | Result SetSelfDeaf(bool deaf); 17 | Result IsLocalMute(Snowflake userId, bool* mute); 18 | Result SetLocalMute(Snowflake userId, bool mute); 19 | Result GetLocalVolume(Snowflake userId, std::uint8_t* volume); 20 | Result SetLocalVolume(Snowflake userId, std::uint8_t volume); 21 | 22 | Event<> OnSettingsUpdate; 23 | 24 | private: 25 | friend class Core; 26 | 27 | VoiceManager() = default; 28 | VoiceManager(VoiceManager const& rhs) = delete; 29 | VoiceManager& operator=(VoiceManager const& rhs) = delete; 30 | VoiceManager(VoiceManager&& rhs) = delete; 31 | VoiceManager& operator=(VoiceManager&& rhs) = delete; 32 | 33 | IDiscordVoiceManager* internal_; 34 | static IDiscordVoiceEvents events_; 35 | }; 36 | 37 | } // namespace discord 38 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Screen.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "scripts/UnityEngine.CoreModule/UnityEngine/ScreenOrientation.hpp" 5 | 6 | namespace Gallop 7 | { 8 | class Screen 9 | { 10 | public: 11 | static int OriginalScreenWidth(); 12 | 13 | static void OriginalScreenWidth(int value); 14 | 15 | static int OriginalScreenHeight(); 16 | 17 | static void OriginalScreenHeight(int value); 18 | 19 | static int Width(); 20 | 21 | static int Height(); 22 | 23 | static bool IsLandscapeMode(); 24 | 25 | static bool IsSplitWindow(); 26 | 27 | static bool IsVertical(); 28 | 29 | static Il2CppObject* ChangeScreenOrientation(UnityEngine::ScreenOrientation targetOrientation, bool isForce); 30 | 31 | static Il2CppObject* ChangeScreenOrientationLandscapeAsync(); 32 | 33 | static Il2CppObject* ChangeScreenOrientationLandscapeAsyncDefault(); 34 | 35 | static Il2CppObject* ChangeScreenOrientationLandscapeAsyncLandscapeMode(); 36 | 37 | static Il2CppObject* ChangeScreenOrientationPortraitAsync(); 38 | 39 | static Il2CppObject* ChangeScreenOrientationPortraitAsyncDefault(); 40 | 41 | static Il2CppObject* ChangeScreenOrientationPortraitAsyncLandscapeMode(); 42 | }; 43 | } 44 | -------------------------------------------------------------------------------- /src/il2cpp/il2cpp-tokentype.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef enum 4 | { 5 | IL2CPP_TOKEN_MODULE = 0x00000000, 6 | IL2CPP_TOKEN_TYPE_REF = 0x01000000, 7 | IL2CPP_TOKEN_TYPE_DEF = 0x02000000, 8 | IL2CPP_TOKEN_FIELD_DEF = 0x04000000, 9 | IL2CPP_TOKEN_METHOD_DEF = 0x06000000, 10 | IL2CPP_TOKEN_PARAM_DEF = 0x08000000, 11 | IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, 12 | IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, 13 | IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, 14 | IL2CPP_TOKEN_PERMISSION = 0x0e000000, 15 | IL2CPP_TOKEN_SIGNATURE = 0x11000000, 16 | IL2CPP_TOKEN_EVENT = 0x14000000, 17 | IL2CPP_TOKEN_PROPERTY = 0x17000000, 18 | IL2CPP_TOKEN_MODULE_REF = 0x1a000000, 19 | IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, 20 | IL2CPP_TOKEN_ASSEMBLY = 0x20000000, 21 | IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, 22 | IL2CPP_TOKEN_FILE = 0x26000000, 23 | IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, 24 | IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, 25 | IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, 26 | IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, 27 | } Il2CppTokenType; 28 | -------------------------------------------------------------------------------- /src/discord/achievement_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class AchievementManager final { 8 | public: 9 | ~AchievementManager() = default; 10 | 11 | void SetUserAchievement(Snowflake achievementId, 12 | std::uint8_t percentComplete, 13 | std::function callback); 14 | void FetchUserAchievements(std::function callback); 15 | void CountUserAchievements(std::int32_t* count); 16 | Result GetUserAchievement(Snowflake userAchievementId, UserAchievement* userAchievement); 17 | Result GetUserAchievementAt(std::int32_t index, UserAchievement* userAchievement); 18 | 19 | Event OnUserAchievementUpdate; 20 | 21 | private: 22 | friend class Core; 23 | 24 | AchievementManager() = default; 25 | AchievementManager(AchievementManager const& rhs) = delete; 26 | AchievementManager& operator=(AchievementManager const& rhs) = delete; 27 | AchievementManager(AchievementManager&& rhs) = delete; 28 | AchievementManager& operator=(AchievementManager&& rhs) = delete; 29 | 30 | IDiscordAchievementManager* internal_; 31 | static IDiscordAchievementEvents events_; 32 | }; 33 | 34 | } // namespace discord 35 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Shader.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Shader.hpp" 4 | 5 | namespace 6 | { 7 | void* PropertyToID_addr = nullptr; 8 | 9 | void* GetGlobalTextureImpl_addr = nullptr; 10 | 11 | void* SetGlobalTextureImpl_addr = nullptr; 12 | } 13 | 14 | static void InitAddress() 15 | { 16 | PropertyToID_addr = il2cpp_resolve_icall("UnityEngine.Shader::PropertyToID()"); 17 | GetGlobalTextureImpl_addr = il2cpp_resolve_icall("UnityEngine.Shader::GetGlobalTextureImpl()"); 18 | SetGlobalTextureImpl_addr = il2cpp_resolve_icall("UnityEngine.Shader::SetGlobalTextureImpl()"); 19 | } 20 | 21 | STATIC 22 | { 23 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 24 | } 25 | 26 | namespace UnityEngine 27 | { 28 | int Shader::PropertyToID(Il2CppString* name) 29 | { 30 | return reinterpret_cast(PropertyToID_addr)(name); 31 | } 32 | 33 | Il2CppObject* Shader::GetGlobalTextureImpl(int name) 34 | { 35 | return reinterpret_cast(GetGlobalTextureImpl_addr)(name); 36 | } 37 | 38 | void Shader::SetGlobalTextureImpl(int name, Il2CppObject* value) 39 | { 40 | reinterpret_cast(SetGlobalTextureImpl_addr)(name, value); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/il2cpp/il2cpp-api-functions.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | template 6 | T il2cpp_resolve_icall_type(const char* name) { 7 | return reinterpret_cast(il2cpp_resolve_icall(name)); 8 | } 9 | 10 | template 11 | T il2cpp_object_new_type(const Il2CppClass* klass) { 12 | return reinterpret_cast(il2cpp_object_new(klass)); 13 | } 14 | 15 | template 16 | T il2cpp_object_unbox_type(Il2CppObject* obj) { 17 | return reinterpret_cast(il2cpp_object_unbox(obj)); 18 | } 19 | 20 | template 21 | const MethodInfo_t* il2cpp_class_get_method_from_name_type(Il2CppClass* klass, const char* name, int argsCount) { 22 | return reinterpret_cast*>(il2cpp_class_get_method_from_name(klass, name, argsCount)); 23 | } 24 | 25 | template 26 | Il2CppArraySize_t* il2cpp_array_new_type(Il2CppClass* klass, uintptr_t count) { 27 | return reinterpret_cast*>(il2cpp_array_new(klass, count)); 28 | } 29 | 30 | template 31 | T il2cpp_runtime_invoke_type(const MethodInfo* method, Il2CppObject* obj, void** params, Il2CppException** exc) { 32 | return reinterpret_cast(il2cpp_runtime_invoke)(method, obj, params, exc); 33 | } 34 | -------------------------------------------------------------------------------- /src/discord/store_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class StoreManager final { 8 | public: 9 | ~StoreManager() = default; 10 | 11 | void FetchSkus(std::function callback); 12 | void CountSkus(std::int32_t* count); 13 | Result GetSku(Snowflake skuId, Sku* sku); 14 | Result GetSkuAt(std::int32_t index, Sku* sku); 15 | void FetchEntitlements(std::function callback); 16 | void CountEntitlements(std::int32_t* count); 17 | Result GetEntitlement(Snowflake entitlementId, Entitlement* entitlement); 18 | Result GetEntitlementAt(std::int32_t index, Entitlement* entitlement); 19 | Result HasSkuEntitlement(Snowflake skuId, bool* hasEntitlement); 20 | void StartPurchase(Snowflake skuId, std::function callback); 21 | 22 | Event OnEntitlementCreate; 23 | Event OnEntitlementDelete; 24 | 25 | private: 26 | friend class Core; 27 | 28 | StoreManager() = default; 29 | StoreManager(StoreManager const& rhs) = delete; 30 | StoreManager& operator=(StoreManager const& rhs) = delete; 31 | StoreManager(StoreManager&& rhs) = delete; 32 | StoreManager& operator=(StoreManager&& rhs) = delete; 33 | 34 | IDiscordStoreManager* internal_; 35 | static IDiscordStoreEvents events_; 36 | }; 37 | 38 | } // namespace discord 39 | -------------------------------------------------------------------------------- /src/steam/steam.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace 4 | { 5 | const char* SteamAPI_GetSteamInstallPath() 6 | { 7 | static std::string install_path {}; 8 | if (!install_path.empty()) 9 | { 10 | return install_path.data(); 11 | } 12 | 13 | HKEY reg_key; 14 | if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\WOW6432Node\\Valve\\Steam", 0, KEY_QUERY_VALUE, 15 | ®_key) == 16 | ERROR_SUCCESS) 17 | { 18 | char path[MAX_PATH] = {0}; 19 | DWORD length = sizeof(path); 20 | RegQueryValueExA(reg_key, "InstallPath", nullptr, nullptr, reinterpret_cast(path), 21 | &length); 22 | RegCloseKey(reg_key); 23 | 24 | install_path = path; 25 | } 26 | 27 | return install_path.data(); 28 | } 29 | 30 | HMODULE steam_overlay_module, steam_client_module; 31 | 32 | void load_client() 33 | { 34 | const std::filesystem::path steam_path = SteamAPI_GetSteamInstallPath(); 35 | if (steam_path.empty()) 36 | return; 37 | 38 | LoadLibraryA((steam_path / "tier0_s64.dll").string().data()); 39 | LoadLibraryA((steam_path / "vstdlib_s64.dll").string().data()); 40 | steam_overlay_module = LoadLibraryA((steam_path / "gameoverlayrenderer64.dll").string().data()); 41 | steam_client_module = LoadLibraryA((steam_path / "steamclient64.dll").string().data()); 42 | 43 | if (!steam_client_module) 44 | return; 45 | 46 | 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/discord/event.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace discord { 7 | 8 | template 9 | class Event final { 10 | public: 11 | using Token = int; 12 | 13 | Event() { slots_.reserve(4); } 14 | 15 | Event(Event const&) = default; 16 | Event(Event&&) = default; 17 | ~Event() = default; 18 | 19 | Event& operator=(Event const&) = default; 20 | Event& operator=(Event&&) = default; 21 | 22 | template 23 | Token Connect(EventHandler slot) 24 | { 25 | slots_.emplace_back(Slot{nextToken_, std::move(slot)}); 26 | return nextToken_++; 27 | } 28 | 29 | void Disconnect(Token token) 30 | { 31 | for (auto& slot : slots_) { 32 | if (slot.token == token) { 33 | slot = slots_.back(); 34 | slots_.pop_back(); 35 | break; 36 | } 37 | } 38 | } 39 | 40 | void DisconnectAll() { slots_ = {}; } 41 | 42 | void operator()(Args... args) 43 | { 44 | for (auto const& slot : slots_) { 45 | slot.fn(std::forward(args)...); 46 | } 47 | } 48 | 49 | private: 50 | struct Slot { 51 | Token token; 52 | std::function fn; 53 | }; 54 | 55 | Token nextToken_{}; 56 | std::vector slots_{}; 57 | }; 58 | 59 | } // namespace discord 60 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Material.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Material.hpp" 4 | 5 | namespace 6 | { 7 | void* HasProperty_addr = nullptr; 8 | 9 | void* GetTextureImpl_addr = nullptr; 10 | 11 | void* SetTextureImpl_addr = nullptr; 12 | } 13 | 14 | static void InitAddress() 15 | { 16 | HasProperty_addr = il2cpp_resolve_icall("UnityEngine.Material::HasProperty()"); 17 | GetTextureImpl_addr = il2cpp_resolve_icall("UnityEngine.Material::GetTextureImpl()"); 18 | SetTextureImpl_addr = il2cpp_resolve_icall("UnityEngine.Material::SetTextureImpl()"); 19 | } 20 | 21 | static void HookMethods() 22 | { 23 | } 24 | 25 | STATIC 26 | { 27 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 28 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 29 | } 30 | 31 | namespace UnityEngine 32 | { 33 | bool Material::HasProperty(int nameID) 34 | { 35 | return reinterpret_cast(HasProperty_addr)(instance, nameID); 36 | } 37 | 38 | Il2CppObject* Material::GetTextureImpl(int name) 39 | { 40 | return reinterpret_cast(GetTextureImpl_addr)(instance, name); 41 | } 42 | 43 | void Material::SetTextureImpl(int name, Il2CppObject* value) 44 | { 45 | reinterpret_cast(SetTextureImpl_addr)(instance, name, value); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/taskbar/TaskbarManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include 7 | 8 | namespace TaskbarManager 9 | { 10 | inline ITaskbarList3* taskbarList = nullptr; 11 | 12 | inline HWND taskbarWnd = nullptr; 13 | 14 | inline TBPFLAG currentState = TBPF_NOPROGRESS; 15 | 16 | inline uint64_t currentProgressValue = 0; 17 | 18 | inline void Initialze(HWND hWnd) 19 | { 20 | taskbarWnd = hWnd; 21 | CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_ITaskbarList3, reinterpret_cast(&taskbarList)); 22 | 23 | if (taskbarList) 24 | { 25 | taskbarList->SetProgressState(taskbarWnd, TBPF_NOPROGRESS); 26 | } 27 | } 28 | 29 | inline void SetProgressState(TBPFLAG state) 30 | { 31 | if (taskbarList) 32 | { 33 | if (currentState == state) 34 | { 35 | return; // Avoid unnecessary updates 36 | } 37 | 38 | currentState = state; 39 | taskbarList->SetProgressState(taskbarWnd, state); 40 | } 41 | } 42 | 43 | inline void SetProgressValue(ULONGLONG completed, ULONGLONG total) 44 | { 45 | if (taskbarList) 46 | { 47 | if (currentProgressValue == completed) 48 | { 49 | return; // Avoid unnecessary updates 50 | } 51 | 52 | currentProgressValue = completed; 53 | currentState = TBPF_NORMAL; 54 | SetProgressState(currentState); 55 | taskbarList->SetProgressValue(taskbarWnd, completed, total); 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.UnityWebRequestModule/UnityEngine/Networking/UnityWebRequest.cpp: -------------------------------------------------------------------------------- 1 | #include "../../UnityEngine.UnityWebRequestModule.hpp" 2 | #include "../../../ScriptInternal.hpp" 3 | #include "UnityWebRequest.hpp" 4 | 5 | #include "taskbar/TaskbarManager.hpp" 6 | 7 | namespace 8 | { 9 | void* UnityWebRequest_get_error_orig = nullptr; 10 | void* UnityWebRequest_get_error_addr = nullptr; 11 | } 12 | 13 | static Il2CppString* UnityWebRequest_get_error_hook(Il2CppObject* self) 14 | { 15 | auto error = reinterpret_cast(UnityWebRequest_get_error_orig)(self); 16 | 17 | if (error != nullptr) 18 | { 19 | if (config::taskbar_show_progress_on_connecting && TaskbarManager::currentState == TBPF_NORMAL) 20 | { 21 | TaskbarManager::SetProgressState(TBPF_ERROR); 22 | } 23 | } 24 | 25 | return error; 26 | } 27 | 28 | 29 | static void InitAddress() 30 | { 31 | UnityWebRequest_get_error_addr = il2cpp_symbols::get_method_pointer("UnityEngine.UnityWebRequestModule.dll", "UnityEngine.Networking", "UnityWebRequest", "get_error", 0); 32 | } 33 | 34 | static void HookMethods() 35 | { 36 | ADD_HOOK(UnityWebRequest_get_error, "UnityEngine.Networking.UnityWebRequest::get_error at %p\n"); 37 | } 38 | 39 | STATIC 40 | { 41 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 42 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 43 | } 44 | 45 | namespace UnityEngine 46 | { 47 | namespace Networking 48 | { 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /README.ko-KR.md: -------------------------------------------------------------------------------- 1 | # umamusume-localify 2 | ## 우마무스메 Windows 클라이언트 현지화 패치 3 | 4 | [English](README.md) 5 | [中国人](README.zh-Hans.md) 6 | 7 | ### Usage: 8 | 1. `umamusume.exe` 가 있는 곳에 `version.dll`, `config.json` 파일, `dicts` 에서 참조하는 번역 파일을 넣습니다. 9 | 2. 게임을 실행하면 됩니다. 10 | 11 | ### Config: 12 | - `enableConsole` Enable the console for printing debug infomations (true/false) 13 | - `enableLogger` Output uncovered text entries into `dump.txt` (true/false) 14 | - `dumpStaticEntries` Requires ^, Dump hardcoded text entries into `dump.txt` 15 | - `maxFps` Max fps limit (-1 = Unmodified/0 = Unlimited/>0 = Lock to #fps) 16 | - Note: VSync is enabled 17 | - `unlockSize` Allow game to use resolutions that bigger than `1080p` (true/false) 18 | - `uiScale` Custom UI scale 19 | - `replaceFont` Replace all font to default font, solves missing word issue (true/false) 20 | - `autoFullscreen` The game will be fullscreen if screen aspect ratio is correct (true/false) 21 | - If screen aspect ratio is 16:9, the game will be fullscreen when playing story/live with landscape. 22 | - If screen aspect ratio is 9:16, the game will be fullscreen in most case. 23 | - `dicts` A list of dicts that read by this (Path) 24 | 25 | ### Known issue 26 | - None 27 | 28 | # Resources 29 | - `static.json` upgrade tool - https://github.com/AirJerryWhite/i18upgrade 30 | 31 | # Credits 32 | ## Translation 33 | ### schinese 34 | - @AirJerryWhite 35 | - @Yaklo 36 | - @july20026 37 | - @RikkaTakanaishi 38 | - @羲羲 39 | ### tchinese 40 | - @yotv2000tw 41 | -------------------------------------------------------------------------------- /src/notifier/notifier.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "stdinclude.hpp" 4 | 5 | #include "config/config.hpp" 6 | #include "string_utils.hpp" 7 | 8 | namespace notifier 9 | { 10 | httplib::Client* client = nullptr; 11 | 12 | void init() 13 | { 14 | client = new httplib::Client(wide_u8(config::msgpack_notifier_host)); 15 | client->set_connection_timeout(0, config::msgpack_notifier_connection_timeout_ms); 16 | } 17 | 18 | void notify_response(const string& data) 19 | { 20 | if (client == nullptr) 21 | { 22 | init(); 23 | } 24 | 25 | auto res = client->Post("/notify/response", data, "application/x-msgpack"); 26 | const auto error = res.error(); 27 | if (error != httplib::Error::Success && config::msgpack_notifier_print_error) 28 | { 29 | cout << "Unexpected error from notifier: " << httplib::to_string(error).data() << endl; 30 | } 31 | } 32 | 33 | void notify_request(const string& data) { 34 | if (client == nullptr) 35 | { 36 | init(); 37 | } 38 | 39 | auto res = client->Post("/notify/request", data, "application/x-msgpack"); 40 | const auto error = res.error(); 41 | if (error != httplib::Error::Success && config::msgpack_notifier_print_error) 42 | { 43 | cout << "Unexpected error from notifier: " << httplib::to_string(error).data() << endl; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.XRModule/UnityEngine/XR/InputTracking.cpp: -------------------------------------------------------------------------------- 1 | #include "../../UnityEngine.XRModule.hpp" 2 | #include "../../../ScriptInternal.hpp" 3 | #include "InputTracking.hpp" 4 | 5 | namespace 6 | { 7 | void* GetNodeStates_Internal_addr = nullptr; 8 | void* GetLocalPosition_Injected_addr = nullptr; 9 | void* GetLocalRotation_Injected_addr = nullptr; 10 | } 11 | 12 | static void InitAddress() 13 | { 14 | GetNodeStates_Internal_addr = il2cpp_resolve_icall("UnityEngine.XR.InputTracking::GetNodeStates_Internal()"); 15 | GetLocalPosition_Injected_addr = il2cpp_resolve_icall("UnityEngine.XR.InputTracking::GetLocalPosition_Injected()"); 16 | GetLocalRotation_Injected_addr = il2cpp_resolve_icall("UnityEngine.XR.InputTracking::GetLocalRotation_Injected()"); 17 | } 18 | 19 | STATIC 20 | { 21 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 22 | } 23 | 24 | namespace UnityEngine 25 | { 26 | namespace XR 27 | { 28 | void InputTracking::GetNodeStates_Internal(Il2CppObject* nodeStates) 29 | { 30 | reinterpret_cast(GetNodeStates_Internal_addr)(nodeStates); 31 | } 32 | 33 | void InputTracking::GetLocalPosition_Injected(XRNode node, Vector3* ret) 34 | { 35 | reinterpret_cast(GetLocalPosition_Injected_addr)(node, ret); 36 | } 37 | 38 | void InputTracking::GetLocalRotation_Injected(XRNode node, Quaternion* ret) 39 | { 40 | reinterpret_cast(GetLocalRotation_Injected_addr)(node, ret); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Debug.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.CoreModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Debug.hpp" 4 | 5 | namespace 6 | { 7 | void* get_unityLogger = nullptr; 8 | 9 | void* Log_addr = nullptr; 10 | 11 | void* LogError_addr = nullptr; 12 | 13 | void* LogWarning_addr = nullptr; 14 | } 15 | 16 | static void InitAddress() 17 | { 18 | get_unityLogger = il2cpp_symbols::get_method_pointer("UnityEngine.CoreModule.dll", "UnityEngine", "Debug", "get_unityLogger", 0); 19 | Log_addr = il2cpp_symbols::get_method_pointer("UnityEngine.CoreModule.dll", "UnityEngine", "Debug", "Log", 1); 20 | LogError_addr = il2cpp_symbols::get_method_pointer("UnityEngine.CoreModule.dll", "UnityEngine", "Debug", "LogError", 1); 21 | LogWarning_addr = il2cpp_symbols::get_method_pointer("UnityEngine.CoreModule.dll", "UnityEngine", "Debug", "LogWarning", 1); 22 | } 23 | 24 | STATIC 25 | { 26 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 27 | } 28 | 29 | namespace UnityEngine 30 | { 31 | Il2CppObject* Debug::unityLogger() 32 | { 33 | return reinterpret_cast(get_unityLogger)(); 34 | } 35 | 36 | void Debug::Log(Il2CppObject* value) 37 | { 38 | reinterpret_cast(Log_addr)(value); 39 | } 40 | 41 | void Debug::LogError(Il2CppObject* value) 42 | { 43 | reinterpret_cast(LogError_addr)(value); 44 | } 45 | 46 | void Debug::LogWarning(Il2CppObject* value) 47 | { 48 | reinterpret_cast(LogWarning_addr)(value); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # umamusume-localify 2 | ## Uma Musume: Pretty Derby localify patch 3 | 4 | 5 | [한국어](README.ko-KR.md) 6 | [中国人](README.zh-Hans.md) 7 | 8 | ### Usage: 9 | 1. Put `version.dll`, `config.json` and the `dicts` referenced by `config.json` near the `umamusume.exe`. 10 | 2. Launch the game 11 | 12 | ### Config: 13 | - `enableConsole` Enable the console for printing debug infomations (true/false) 14 | - `enableLogger` Output uncovered text entries into `dump.txt` (true/false) 15 | - `dumpStaticEntries` Requires ^, Dump hardcoded text entries into `dump.txt` 16 | - `maxFps` Max fps limit (-1 = Unmodified/0 = Unlimited/>0 = Lock to #fps) 17 | - Note: VSync is enabled 18 | - `unlockSize` Allow game to use resolutions that bigger than `1080p` (true/false) 19 | - `uiScale` Custom UI scale 20 | - `replaceFont` Replace all font to default font, solves missing word issue (true/false) 21 | - `autoFullscreen` The game will be fullscreen if screen aspect ratio is correct (true/false) 22 | - If screen aspect ratio is 16:9, the game will be fullscreen when playing story/live with landscape. 23 | - If screen aspect ratio is 9:16, the game will be fullscreen in most case. 24 | - `dicts` A list of dicts that read by this (Path) 25 | 26 | ### Known issue 27 | - None 28 | 29 | # Build 30 | Platform Toolset: clang required 31 | 32 | # Resources 33 | - `static.json` upgrade tool - https://github.com/AirJerryWhite/i18upgrade 34 | 35 | # Credits 36 | ## Translation 37 | ### schinese 38 | - @AirJerryWhite 39 | - @Yaklo 40 | - @july20026 41 | - @RikkaTakanaishi 42 | - @羲羲 43 | ### tchinese 44 | - @yotv2000tw 45 | -------------------------------------------------------------------------------- /src/discord/activity_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class ActivityManager final { 8 | public: 9 | ~ActivityManager() = default; 10 | 11 | Result RegisterCommand(char const* command); 12 | Result RegisterSteam(std::uint32_t steamId); 13 | void UpdateActivity(Activity const& activity, std::function callback); 14 | void ClearActivity(std::function callback); 15 | void SendRequestReply(UserId userId, 16 | ActivityJoinRequestReply reply, 17 | std::function callback); 18 | void SendInvite(UserId userId, 19 | ActivityActionType type, 20 | char const* content, 21 | std::function callback); 22 | void AcceptInvite(UserId userId, std::function callback); 23 | 24 | Event OnActivityJoin; 25 | Event OnActivitySpectate; 26 | Event OnActivityJoinRequest; 27 | Event OnActivityInvite; 28 | 29 | private: 30 | friend class Core; 31 | 32 | ActivityManager() = default; 33 | ActivityManager(ActivityManager const& rhs) = delete; 34 | ActivityManager& operator=(ActivityManager const& rhs) = delete; 35 | ActivityManager(ActivityManager&& rhs) = delete; 36 | ActivityManager& operator=(ActivityManager&& rhs) = delete; 37 | 38 | IDiscordActivityManager* internal_; 39 | static IDiscordActivityEvents events_; 40 | }; 41 | 42 | } // namespace discord 43 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/PartsBuyJewelListItem.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "PartsBuyJewelListItem.hpp" 4 | 5 | namespace 6 | { 7 | void* PartsBuyJewelListItem_Setup_addr = nullptr; 8 | void* PartsBuyJewelListItem_Setup_orig = nullptr; 9 | } 10 | 11 | static void PartsBuyJewelListItem_Setup_hook(Il2CppObject* self, Il2CppObject* purchaseItem, Il2CppDelegate* onComplete, Il2CppObject* evacuationCanvas) 12 | { 13 | reinterpret_cast(PartsBuyJewelListItem_Setup_orig)(self, purchaseItem, onComplete, evacuationCanvas); 14 | 15 | auto _purchaseButtonField = il2cpp_class_get_field_from_name(self->klass, "_purchaseButton"); 16 | Il2CppObject* _purchaseButton; 17 | il2cpp_field_get_value(self, _purchaseButtonField, &_purchaseButton); 18 | 19 | il2cpp_class_get_method_from_name_type(_purchaseButton->klass, "SetButtonInteractableWithColor", 1)->methodPointer(_purchaseButton, false); 20 | UnityEngine::MonoBehaviour(_purchaseButton).gameObject().SetActive(false); 21 | } 22 | 23 | static void InitAddress() 24 | { 25 | PartsBuyJewelListItem_Setup_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "PartsBuyJewelListItem", "Setup", 3); 26 | } 27 | 28 | static void HookMethods() 29 | { 30 | if (Game::CurrentGameRegion == Game::Region::KOR) 31 | { 32 | ADD_HOOK(PartsBuyJewelListItem_Setup, "Gallop.PartsBuyJewelListItem::Setup at %p\n"); 33 | } 34 | } 35 | 36 | STATIC 37 | { 38 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 39 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 40 | } 41 | -------------------------------------------------------------------------------- /src/il2cpp/il2cpp-config-api.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "os/c-api/il2cpp-config-platforms.h" 4 | #include "os/c-api/il2cpp-config-api-platforms.h" 5 | #include "il2cpp-api-types.h" 6 | 7 | // If the platform loads il2cpp as a dynamic library but does not have dlsym (or equivalent) then 8 | // define IL2CPP_API_DYNAMIC_NO_DLSYM = 1 to add support for api function registration and symbol 9 | // lookup APIs, see il2cpp-api.cpp 10 | #ifndef IL2CPP_API_DYNAMIC_NO_DLSYM 11 | #define IL2CPP_API_DYNAMIC_NO_DLSYM 0 12 | #endif 13 | 14 | /* Profiler */ 15 | #ifndef IL2CPP_ENABLE_PROFILER 16 | #define IL2CPP_ENABLE_PROFILER !IL2CPP_TINY 17 | #endif 18 | 19 | #if IL2CPP_TARGET_ARMV7 20 | // On ARMv7 with Thumb instructions the lowest bit is always set. 21 | // With Thumb2 the second-to-lowest bit is also set. Mask both of 22 | // them off so that we can do a comparison properly based on the data 23 | // from the linker map file. 24 | #define IL2CPP_POINTER_SPARE_BITS 3 25 | #else 26 | // Some compilers align functions by default (MSVC), some do not (GCC). 27 | // Do not mask bits on platforms that do not absolutely require it. 28 | #define IL2CPP_POINTER_SPARE_BITS 0 29 | #endif 30 | 31 | #if IL2CPP_COMPILER_MSVC || defined(__ARMCC_VERSION) 32 | #define NORETURN __declspec(noreturn) 33 | #elif (IL2CPP_POINTER_SPARE_BITS == 0) && (defined(__clang__) || defined(__GNUC__)) 34 | #define NORETURN __attribute__ ((noreturn)) 35 | #else 36 | #define NORETURN 37 | #endif 38 | 39 | #if IL2CPP_TARGET_IOS || IL2CPP_TARGET_ANDROID || IL2CPP_TARGET_DARWIN || IL2CPP_TARGET_QNX 40 | #define REAL_NORETURN __attribute__ ((noreturn)) 41 | #else 42 | #define REAL_NORETURN NORETURN 43 | #endif 44 | -------------------------------------------------------------------------------- /src/pe_lib/pe_exception.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace pe_bliss 6 | { 7 | //PE exception class 8 | class pe_exception : public std::runtime_error 9 | { 10 | public: 11 | //Exception IDs 12 | enum exception_id 13 | { 14 | unknown_error, 15 | bad_pe_file, 16 | bad_dos_header, 17 | image_nt_headers_not_found, 18 | error_reading_image_nt_headers, 19 | error_reading_data_directories, 20 | error_reading_file, 21 | pe_signature_incorrect, 22 | incorrect_number_of_rva_and_sizes, 23 | error_changing_section_virtual_size, 24 | section_number_incorrect, 25 | incorrect_section_alignment, 26 | incorrect_file_alignment, 27 | incorrect_size_of_image, 28 | incorrect_size_of_headers, 29 | image_section_headers_not_found, 30 | zero_section_sizes, 31 | section_incorrect_addr_or_size, 32 | section_not_found, 33 | image_section_data_not_found, 34 | no_section_found, 35 | image_section_table_incorrect, 36 | directory_does_not_exist, 37 | rva_not_exists, 38 | error_reading_section_header, 39 | error_reading_overlay, 40 | incorrect_address_conversion, 41 | section_is_empty, 42 | no_more_sections_can_be_added, 43 | error_expanding_section 44 | }; 45 | 46 | public: 47 | //Class constructors 48 | explicit pe_exception(const char* text, exception_id id = unknown_error); 49 | explicit pe_exception(const std::string& text, exception_id id = unknown_error); 50 | 51 | //Returns exception ID from exception_id enumeration 52 | exception_id get_id() const; 53 | 54 | //Destructor 55 | virtual ~pe_exception() throw() 56 | {} 57 | 58 | private: 59 | exception_id id_; 60 | }; 61 | } 62 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.InputLegacyModule/UnityEngine/Input.cpp: -------------------------------------------------------------------------------- 1 | #include "../UnityEngine.InputLegacyModule.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Input.hpp" 4 | 5 | #include "config/config.hpp" 6 | 7 | namespace 8 | { 9 | void* Input_get_mousePosition_Injected_addr = nullptr; 10 | void* Input_GetMouseButtonDown_addr = nullptr; 11 | void* Input_GetMouseButton_addr = nullptr; 12 | void* Input_GetMouseButtonUp_addr = nullptr; 13 | } 14 | 15 | static void InitAddress() 16 | { 17 | Input_get_mousePosition_Injected_addr = il2cpp_resolve_icall("UnityEngine.Input::get_mousePosition_Injected()"); 18 | Input_GetMouseButtonDown_addr = il2cpp_resolve_icall("UnityEngine.Input::GetMouseButtonDown()"); 19 | Input_GetMouseButton_addr = il2cpp_resolve_icall("UnityEngine.Input::GetMouseButton()"); 20 | Input_GetMouseButtonUp_addr = il2cpp_resolve_icall("UnityEngine.Input::GetMouseButtonUp()"); 21 | } 22 | 23 | STATIC 24 | { 25 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 26 | } 27 | 28 | namespace UnityEngine 29 | { 30 | Vector3 Input::mousePosition() 31 | { 32 | Vector3 vector; 33 | reinterpret_cast(Input_get_mousePosition_Injected_addr)(&vector); 34 | return vector; 35 | } 36 | 37 | bool Input::GetMouseButtonDown(int button) 38 | { 39 | return reinterpret_cast(Input_GetMouseButtonDown_addr)(button); 40 | } 41 | 42 | bool Input::GetMouseButton(int button) 43 | { 44 | return reinterpret_cast(Input_GetMouseButton_addr)(button); 45 | } 46 | 47 | bool Input::GetMouseButtonUp(int button) 48 | { 49 | return reinterpret_cast(Input_GetMouseButtonUp_addr)(button); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DownloadView.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "DownloadView.hpp" 4 | 5 | #include "taskbar/TaskbarManager.hpp" 6 | 7 | namespace 8 | { 9 | void* DownloadView_UpdateView_addr = nullptr; 10 | void* DownloadView_UpdateView_orig = nullptr; 11 | } 12 | 13 | static void DownloadView_UpdateView_hook(Il2CppObject* self, float downloadSize, float allDownloadSize) { 14 | if (config::taskbar_show_progress_on_download) 15 | { 16 | float progress = downloadSize / allDownloadSize; 17 | if (progress == 1.0f) 18 | { 19 | TaskbarManager::SetProgressState(TBPF_NOPROGRESS); 20 | } 21 | else 22 | { 23 | TaskbarManager::SetProgressState(TBPF_NORMAL); 24 | TaskbarManager::SetProgressValue(static_cast(progress * 10000), 10000); 25 | } 26 | } 27 | reinterpret_cast(DownloadView_UpdateView_orig)(self, downloadSize, allDownloadSize); 28 | } 29 | 30 | static void InitAddress() 31 | { 32 | DownloadView_UpdateView_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "DownloadView", "UpdateView", 2); 33 | } 34 | 35 | static void HookMethods() 36 | { 37 | ADD_HOOK(DownloadView_UpdateView, "Gallop.DownloadView::UpdateView at %p\n"); 38 | } 39 | 40 | STATIC 41 | { 42 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 43 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 44 | } 45 | 46 | namespace Gallop 47 | { 48 | void DownloadView::UpdateView(float downloadSize, float allDownloadSize) 49 | { 50 | reinterpret_cast(DownloadView_UpdateView_addr)(instance, downloadSize, allDownloadSize); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/Connecting.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "Connecting.hpp" 4 | 5 | #include "taskbar/TaskbarManager.hpp" 6 | 7 | namespace 8 | { 9 | void* Connecting_Show_addr = nullptr; 10 | void* Connecting_Show_orig = nullptr; 11 | 12 | void* Connecting_Hide_addr = nullptr; 13 | void* Connecting_Hide_orig = nullptr; 14 | } 15 | 16 | static void Connecting_Show_hook(Il2CppObject* self) 17 | { 18 | if (config::taskbar_show_progress_on_connecting && TaskbarManager::currentState == TBPF_NOPROGRESS) 19 | { 20 | TaskbarManager::SetProgressState(TBPF_INDETERMINATE); 21 | } 22 | 23 | reinterpret_cast(Connecting_Show_orig)(self); 24 | } 25 | 26 | static void Connecting_Hide_hook(Il2CppObject* self) 27 | { 28 | if (config::taskbar_show_progress_on_connecting && TaskbarManager::currentState == TBPF_INDETERMINATE) 29 | { 30 | TaskbarManager::SetProgressState(TBPF_NOPROGRESS); 31 | } 32 | 33 | reinterpret_cast(Connecting_Hide_orig)(self); 34 | } 35 | 36 | static void InitAddress() 37 | { 38 | Connecting_Show_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "Connecting", "Show", 0); 39 | Connecting_Hide_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "Connecting", "Hide", 0); 40 | } 41 | 42 | static void HookMethods() 43 | { 44 | ADD_HOOK(Connecting_Show, "Gallop.Connecting::Show at %p\n"); 45 | ADD_HOOK(Connecting_Hide, "Gallop.Connecting::Hide at %p\n"); 46 | } 47 | 48 | STATIC 49 | { 50 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 51 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 52 | } 53 | 54 | namespace Gallop 55 | { 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DownloadErrorProcessor.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "DownloadErrorProcessor.hpp" 4 | 5 | #include "taskbar/TaskbarManager.hpp" 6 | 7 | namespace 8 | { 9 | void* DownloadErrorProcessor_ExecDownloadErrorProcess_addr = nullptr; 10 | void* DownloadErrorProcessor_ExecDownloadErrorProcess_orig = nullptr; 11 | } 12 | 13 | static void DownloadErrorProcessor_ExecDownloadErrorProcess_hook(Il2CppObject* error, Il2CppDelegate* onRetry, Il2CppDelegate* onGotoTitle) { 14 | if (config::taskbar_show_progress_on_download) 15 | { 16 | TaskbarManager::SetProgressState(TBPF_ERROR); 17 | } 18 | reinterpret_cast(DownloadErrorProcessor_ExecDownloadErrorProcess_orig)(error, onRetry, onGotoTitle); 19 | } 20 | 21 | static void InitAddress() 22 | { 23 | DownloadErrorProcessor_ExecDownloadErrorProcess_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "DownloadErrorProcessor", "ExecDownloadErrorProcess", 3); 24 | } 25 | 26 | static void HookMethods() 27 | { 28 | ADD_HOOK(DownloadErrorProcessor_ExecDownloadErrorProcess, "Gallop.DownloadErrorProcessor::ExecDownloadErrorProcess at %p\n"); 29 | } 30 | 31 | STATIC 32 | { 33 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 34 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 35 | } 36 | 37 | namespace Gallop 38 | { 39 | void DownloadErrorProcessor::ExecDownloadErrorProcess(Il2CppObject* error, Il2CppDelegate* onRetry, Il2CppDelegate* onGotoTitle) 40 | { 41 | reinterpret_cast(DownloadErrorProcessor_ExecDownloadErrorProcess_addr)(error, onRetry, onGotoTitle); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/il2cpp/il2cpp-pinvoke-support.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | typedef enum Il2CppCallConvention 5 | { 6 | IL2CPP_CALL_DEFAULT, 7 | IL2CPP_CALL_C, 8 | IL2CPP_CALL_STDCALL, 9 | IL2CPP_CALL_THISCALL, 10 | IL2CPP_CALL_FASTCALL, 11 | IL2CPP_CALL_VARARG 12 | } Il2CppCallConvention; 13 | 14 | typedef enum Il2CppCharSet 15 | { 16 | CHARSET_ANSI, 17 | CHARSET_UNICODE, 18 | CHARSET_NOT_SPECIFIED 19 | } Il2CppCharSet; 20 | 21 | #include "il2cpp-windowsruntime-types.h" 22 | 23 | typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); 24 | typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); 25 | typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); 26 | typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); 27 | 28 | typedef struct Il2CppInteropData 29 | { 30 | Il2CppMethodPointer delegatePInvokeWrapperFunction; 31 | PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; 32 | PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; 33 | PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; 34 | CreateCCWFunc createCCWFunction; 35 | const Il2CppGuid* guid; 36 | const Il2CppType* type; 37 | } Il2CppInteropData; 38 | 39 | #if defined(__cplusplus) 40 | 41 | #include "utils/StringView.h" 42 | 43 | struct PInvokeArguments 44 | { 45 | const il2cpp::utils::StringView moduleName; 46 | const il2cpp::utils::StringView entryPoint; 47 | Il2CppCallConvention callingConvention; 48 | Il2CppCharSet charSet; 49 | int parameterSize; 50 | bool isNoMangle; // Says whether P/Invoke should append to function name 'A'/'W' according to charSet. 51 | }; 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /src/scripts/Plugins/CodeStage/AntiCheat/ObscuredTypes/ObscuredInt.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp_symbols.hpp" 4 | 5 | namespace CodeStage 6 | { 7 | namespace AntiCheat 8 | { 9 | namespace ObscuredTypes 10 | { 11 | struct ObscuredInt 12 | { 13 | ObscuredInt(int value) 14 | { 15 | currentCryptoKey = cryptoKey(); 16 | hiddenValue = Encrypt(value); 17 | bool existsAndIsRunning = il2cpp_symbols::get_method_pointer("Plugins.dll", "CodeStage.AntiCheat.Detectors", "ObscuredCheatingDetector", "get_ExistsAndIsRunning", 0)(); 18 | fakeValue = (existsAndIsRunning ? value : 0); 19 | fakeValueActive = existsAndIsRunning; 20 | inited = true; 21 | } 22 | 23 | int Encrypt(int value, int key) 24 | { 25 | if (key == 0) 26 | { 27 | return value ^ cryptoKey(); 28 | } 29 | return value ^ key; 30 | } 31 | 32 | int Encrypt(int value) 33 | { 34 | return Encrypt(value, 0); 35 | } 36 | 37 | int GetDecrypted() const 38 | { 39 | if (!currentCryptoKey) 40 | { 41 | return hiddenValue ^ 123456; 42 | } 43 | 44 | return hiddenValue ^ currentCryptoKey; 45 | } 46 | 47 | private: 48 | int currentCryptoKey; 49 | int hiddenValue; 50 | bool inited; 51 | int fakeValue; 52 | bool fakeValueActive; 53 | 54 | static int cryptoKey() 55 | { 56 | auto klass = il2cpp_symbols::get_class("Plugins.dll", "CodeStage.AntiCheat.ObscuredTypes", "ObscuredInt"); 57 | auto cryptoKeyField = il2cpp_class_get_field_from_name(klass, "cryptoKey"); 58 | int cryptoKey; 59 | il2cpp_field_static_get_value(cryptoKeyField, &cryptoKey); 60 | 61 | return cryptoKey; 62 | } 63 | }; 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/discord/storage_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class StorageManager final { 8 | public: 9 | ~StorageManager() = default; 10 | 11 | Result Read(char const* name, 12 | std::uint8_t* data, 13 | std::uint32_t dataLength, 14 | std::uint32_t* read); 15 | void ReadAsync(char const* name, 16 | std::function callback); 17 | void ReadAsyncPartial(char const* name, 18 | std::uint64_t offset, 19 | std::uint64_t length, 20 | std::function callback); 21 | Result Write(char const* name, std::uint8_t* data, std::uint32_t dataLength); 22 | void WriteAsync(char const* name, 23 | std::uint8_t* data, 24 | std::uint32_t dataLength, 25 | std::function callback); 26 | Result Delete(char const* name); 27 | Result Exists(char const* name, bool* exists); 28 | void Count(std::int32_t* count); 29 | Result Stat(char const* name, FileStat* stat); 30 | Result StatAt(std::int32_t index, FileStat* stat); 31 | Result GetPath(char path[4096]); 32 | 33 | private: 34 | friend class Core; 35 | 36 | StorageManager() = default; 37 | StorageManager(StorageManager const& rhs) = delete; 38 | StorageManager& operator=(StorageManager const& rhs) = delete; 39 | StorageManager(StorageManager&& rhs) = delete; 40 | StorageManager& operator=(StorageManager&& rhs) = delete; 41 | 42 | IDiscordStorageManager* internal_; 43 | static IDiscordStorageEvents events_; 44 | }; 45 | 46 | } // namespace discord 47 | -------------------------------------------------------------------------------- /src/scripts/Plugins/CodeStage/AntiCheat/ObscuredTypes/ObscuredLong.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "il2cpp/il2cpp_symbols.hpp" 5 | 6 | namespace CodeStage 7 | { 8 | namespace AntiCheat 9 | { 10 | namespace ObscuredTypes 11 | { 12 | struct ObscuredLong 13 | { 14 | ObscuredLong(int64_t value) 15 | { 16 | currentCryptoKey = cryptoKey(); 17 | hiddenValue = Encrypt(value); 18 | bool existsAndIsRunning = il2cpp_symbols::get_method_pointer("Plugins.dll", "CodeStage.AntiCheat.Detectors", "ObscuredCheatingDetector", "get_ExistsAndIsRunning", 0)(); 19 | fakeValue = (existsAndIsRunning ? value : 0); 20 | fakeValueActive = existsAndIsRunning; 21 | inited = true; 22 | } 23 | 24 | int64_t Encrypt(int64_t value, int64_t key) 25 | { 26 | if (key == 0) 27 | { 28 | return value ^ cryptoKey(); 29 | } 30 | return value ^ key; 31 | } 32 | 33 | int64_t Encrypt(int64_t value) 34 | { 35 | return Encrypt(value, 0); 36 | } 37 | 38 | int64_t GetDecrypted() const 39 | { 40 | if (!currentCryptoKey) 41 | { 42 | return hiddenValue ^ 123456LL; 43 | } 44 | 45 | return hiddenValue ^ currentCryptoKey; 46 | } 47 | 48 | private: 49 | int64_t currentCryptoKey; 50 | int64_t hiddenValue; 51 | bool inited; 52 | int64_t fakeValue; 53 | bool fakeValueActive; 54 | 55 | static int64_t cryptoKey() 56 | { 57 | auto klass = il2cpp_symbols::get_class("Plugins.dll", "CodeStage.AntiCheat.ObscuredTypes", "ObscuredLong"); 58 | auto cryptoKeyField = il2cpp_class_get_field_from_name(klass, "cryptoKey"); 59 | int64_t cryptoKey; 60 | il2cpp_field_static_get_value(cryptoKeyField, &cryptoKey); 61 | 62 | return cryptoKey; 63 | } 64 | }; 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/GameObject.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | #include "Object.hpp" 5 | 6 | namespace UnityEngine 7 | { 8 | class Transform; 9 | class GameObject : public Object 10 | { 11 | public: 12 | GameObject() : GameObject(nullptr) 13 | {} 14 | 15 | GameObject(Il2CppString* name); 16 | 17 | GameObject gameObject() 18 | { 19 | return *this; 20 | } 21 | 22 | static GameObject Find(Il2CppString* name); 23 | 24 | Il2CppObject* GetComponent(Il2CppReflectionType* runtimeType); 25 | 26 | Il2CppObject* GetComponentInChildren(Il2CppReflectionType* runtimeType, bool includeInactive); 27 | 28 | Il2CppObject* AddComponent(Il2CppReflectionType* runtimeType) 29 | { 30 | return Internal_AddComponentWithType(runtimeType); 31 | } 32 | 33 | Il2CppArraySize_t* GetComponents(Il2CppReflectionType* runtimeType) 34 | { 35 | return GetComponentsInternal(runtimeType, false, false, true, false, nullptr); 36 | } 37 | 38 | Il2CppArraySize_t* GetComponentsInChildren(Il2CppReflectionType* runtimeType, bool includeInactive) 39 | { 40 | return GetComponentsInternal(runtimeType, true, true, includeInactive, false, nullptr); 41 | } 42 | 43 | Transform transform(); 44 | 45 | Il2CppString* tag(); 46 | 47 | void tag(Il2CppString* value); 48 | 49 | void SetActive(bool value); 50 | 51 | using Object::Object; 52 | 53 | private: 54 | static void Internal_CreateGameObject(Il2CppObject* self, Il2CppString* name); 55 | 56 | Il2CppArraySize_t* GetComponentsInternal(Il2CppReflectionType* runtimeType, bool useSearchTypeAsArrayReturnType, bool recursive, bool includeInactive, bool reverse, Il2CppObject** resultList); 57 | 58 | Il2CppObject* Internal_AddComponentWithType(Il2CppReflectionType* runtimeType); 59 | }; 60 | } 61 | 62 | #include "Transform.hpp" 63 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/WebViewManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoSingleton.hpp" 4 | #include "WebViewDefine.hpp" 5 | #include "../../Cute.Core.Assembly/Cute/Core/WebViewManager.hpp" 6 | #include "../../UnityEngine.CoreModule/UnityEngine/Rect.hpp" 7 | 8 | namespace Gallop 9 | { 10 | class WebViewManager : public MonoSingleton 11 | { 12 | public: 13 | class WebViewInfo : public Object 14 | { 15 | public: 16 | WebViewInfo(Il2CppString* url, Il2CppString* partsPath = il2cpp_string_new(""), bool isVueJs = true, WebViewDefine::DmmUrlType = WebViewDefine::DmmUrlType::Cygames); 17 | 18 | Il2CppString* _url(); 19 | bool _isVueJs(); 20 | 21 | using UnityEngine::Object::Object; 22 | }; 23 | 24 | void Open(Il2CppString* url, Il2CppObject* dialogData, Il2CppDelegate* onLoadedCallback = nullptr, Il2CppDelegate* onErrorCallback = nullptr, bool isDirect = false); 25 | 26 | Il2CppObject* _currentWebViewDialog(); 27 | void _currentWebViewDialog(Il2CppObject*); 28 | void _errorCallback(Il2CppObject*); 29 | Il2CppArraySize_t* _fontFilePaths(); 30 | void SetErrorCallback(); 31 | void OpenErrorDialog(); 32 | void OpenWebView(Il2CppString* url, Il2CppDelegate* onLoadedCallback); 33 | void SetMargin(UnityEngine::Rect offsetRect); 34 | 35 | Cute::Core::WebViewManager CuteWebView(); 36 | 37 | static void SettingUIEffectOnOpen(); 38 | static void SettingUIEffectOnClose(); 39 | 40 | static Il2CppString* GetGachaUrl(int gachaId); 41 | 42 | static Il2CppString* GetGachaURLProperty(int gachaId); 43 | 44 | static Il2CppString* GetProductUrl(int productMasterId); 45 | 46 | static Il2CppString* GetProductURLProperty(int productMasterId); 47 | 48 | static bool TryGetWebViewInfo(WebViewDefine::Url urlType, WebViewInfo* out); 49 | 50 | using MonoSingleton::MonoSingleton; 51 | 52 | static const char* namespaze; 53 | static const char* klassName; 54 | }; 55 | } 56 | -------------------------------------------------------------------------------- /src/scripts/CriMw.CriWare.Runtime/CriWare/CriAtomEx.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "il2cpp/il2cpp_symbols.hpp" 4 | 5 | namespace CriWare 6 | { 7 | class CriAtomEx 8 | { 9 | public: 10 | enum Randomize3dCalcType 11 | { 12 | None = -1, 13 | Rectangle, 14 | Cuboid, 15 | Circle, 16 | Cylinder, 17 | Sphere, 18 | List = 6 19 | }; 20 | 21 | struct Randomize3dConfig 22 | { 23 | public: 24 | const int NumOfCalcParams = 3; 25 | bool followsOriginalSource; 26 | CriWare::CriAtomEx::Randomize3dCalcType calculationType; 27 | Il2CppArraySize_t* calculationParameters; 28 | }; 29 | 30 | struct CuePos3dInfo 31 | { 32 | public: 33 | float coneInsideAngle; 34 | float coneOutsideAngle; 35 | float minAttenuationDistance; 36 | float maxAttenuationDistance; 37 | float sourceRadius; 38 | float interiorDistance; 39 | float dopplerFactor; 40 | CriWare::CriAtomEx::Randomize3dConfig randomPos; 41 | unsigned short distanceAisacControl; 42 | unsigned short listenerBaseAngleAisacControl; 43 | unsigned short sourceBaseAngleAisacControl; 44 | unsigned short listenerBaseElevationAisacControl; 45 | unsigned short sourceBaseElevationAisacControl; 46 | unsigned short reserved[1]; 47 | }; 48 | 49 | struct GameVariableInfo 50 | { 51 | public: 52 | char* name; 53 | unsigned int id; 54 | float gameValue; 55 | }; 56 | 57 | struct CueInfo 58 | { 59 | public: 60 | int id; 61 | int type; 62 | char* name; 63 | char* userData; 64 | size_t length; 65 | unsigned short categories[16]; 66 | short numLimits; 67 | unsigned short numBlocks; 68 | unsigned short numTracks; 69 | unsigned short numRelatedWaveForms; 70 | char priority; 71 | char headerVisibility; 72 | char ignore_player_parameter; 73 | char probability; 74 | int panType; 75 | CriWare::CriAtomEx::CuePos3dInfo pos3dInfo; 76 | CriWare::CriAtomEx::GameVariableInfo gameVariableInfo; 77 | }; 78 | }; 79 | } 80 | -------------------------------------------------------------------------------- /src/VERSIONINFO.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include 4 | #include "resource.h" 5 | ///////////////////////////////////////////////////////////////////////////// 6 | 7 | #pragma code_page(65001) 8 | 9 | ///////////////////////////////////////////////////////////////////////////// 10 | // 11 | // Version 12 | // 13 | 14 | VS_VERSION_INFO VERSIONINFO 15 | FILEVERSION 1,47,1,0 16 | PRODUCTVERSION 1,47,1,0 17 | FILEFLAGSMASK 0x3fL 18 | #ifdef _DEBUG 19 | FILEFLAGS 0x1L 20 | #else 21 | FILEFLAGS 0x0L 22 | #endif 23 | FILEOS 0x4L 24 | FILETYPE 0x2L 25 | FILESUBTYPE 0x0L 26 | BEGIN 27 | BLOCK "StringFileInfo" 28 | BEGIN 29 | BLOCK "000004b0" 30 | BEGIN 31 | VALUE "FileDescription", "Localization patch for Umamusume" 32 | VALUE "FileVersion", "1.47.1.0" 33 | VALUE "InternalName", "umamusume-localify" 34 | VALUE "LegalCopyright", "Copyright ⓒ Ji O Kim" 35 | VALUE "ProductName", "Umamusume Localify" 36 | VALUE "ProductVersion", "1.47.1.0" 37 | END 38 | END 39 | BLOCK "VarFileInfo" 40 | BEGIN 41 | VALUE "Translation", 0x0, 1200 42 | END 43 | END 44 | 45 | 46 | #ifdef APSTUDIO_INVOKED 47 | ///////////////////////////////////////////////////////////////////////////// 48 | // 49 | // TEXTINCLUDE 50 | // 51 | 52 | 1 TEXTINCLUDE 53 | BEGIN 54 | "resource.h\0" 55 | END 56 | 57 | 2 TEXTINCLUDE 58 | BEGIN 59 | "\0" 60 | END 61 | 62 | 3 TEXTINCLUDE 63 | BEGIN 64 | "\r\n" 65 | "\0" 66 | END 67 | 68 | #endif // APSTUDIO_INVOKED 69 | 70 | 71 | ///////////////////////////////////////////////////////////////////////////// 72 | 73 | 74 | 75 | #ifndef APSTUDIO_INVOKED 76 | ///////////////////////////////////////////////////////////////////////////// 77 | // 78 | // Generated from the TEXTINCLUDE 3 resource. 79 | // 80 | 81 | 82 | ///////////////////////////////////////////////////////////////////////////// 83 | #endif // not APSTUDIO_INVOKED 84 | 85 | -------------------------------------------------------------------------------- /src/scripts/UnityEngine.CoreModule/UnityEngine/Object.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | 4 | namespace UnityEngine 5 | { 6 | enum FindObjectsInactive 7 | { 8 | Exclude, 9 | Include 10 | }; 11 | 12 | enum FindObjectsSortMode 13 | { 14 | None, 15 | InstanceID 16 | }; 17 | 18 | class Object 19 | { 20 | public: 21 | static Il2CppArraySize_t* FindObjectsByType(Il2CppReflectionType* type, FindObjectsInactive findObjectsInactive, FindObjectsSortMode sortMode); 22 | static Il2CppArraySize_t* FindObjectsOfType(Il2CppReflectionType* type, bool includeInactive); 23 | static Il2CppObject* Internal_CloneSingleWithParent(Il2CppObject* data, Il2CppObject* parent, bool worldPositionStays); 24 | static Il2CppObject* Internal_CloneSingle(Il2CppObject* data); 25 | static void DontDestroyOnLoad(Il2CppObject* obj); 26 | static Il2CppString* Name(Il2CppObject* obj); 27 | static void Name(Il2CppObject* obj, Il2CppString* name); 28 | static void Destroy(Il2CppObject* obj, float t); 29 | static void Destroy(Il2CppObject* obj) 30 | { 31 | Destroy(obj, 0.0f); 32 | } 33 | static void DestroyImmediate(Il2CppObject* obj, bool allowDestroyingAssets); 34 | static void DestroyImmediate(Il2CppObject* obj) 35 | { 36 | DestroyImmediate(obj, false); 37 | } 38 | static bool IsNativeObjectAlive(Il2CppObject* obj); 39 | 40 | Il2CppObject* NativeObject() const noexcept 41 | { 42 | return instance; 43 | } 44 | 45 | explicit operator bool() const noexcept 46 | { 47 | return instance != nullptr && IsNativeObjectAlive(instance); 48 | } 49 | 50 | operator Il2CppObject* () const noexcept 51 | { 52 | return instance; 53 | } 54 | 55 | operator Il2CppClass* () const noexcept 56 | { 57 | return instance->klass; 58 | } 59 | 60 | operator void* () const noexcept 61 | { 62 | return instance; 63 | } 64 | 65 | Object(Il2CppObject* instance) 66 | { 67 | this->instance = instance; 68 | } 69 | 70 | protected: 71 | Il2CppObject* instance; 72 | }; 73 | } -------------------------------------------------------------------------------- /src/discord/network_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class NetworkManager final { 8 | public: 9 | ~NetworkManager() = default; 10 | 11 | /** 12 | * Get the local peer ID for this process. 13 | */ 14 | void GetPeerId(NetworkPeerId* peerId); 15 | /** 16 | * Send pending network messages. 17 | */ 18 | Result Flush(); 19 | /** 20 | * Open a connection to a remote peer. 21 | */ 22 | Result OpenPeer(NetworkPeerId peerId, char const* routeData); 23 | /** 24 | * Update the route data for a connected peer. 25 | */ 26 | Result UpdatePeer(NetworkPeerId peerId, char const* routeData); 27 | /** 28 | * Close the connection to a remote peer. 29 | */ 30 | Result ClosePeer(NetworkPeerId peerId); 31 | /** 32 | * Open a message channel to a connected peer. 33 | */ 34 | Result OpenChannel(NetworkPeerId peerId, NetworkChannelId channelId, bool reliable); 35 | /** 36 | * Close a message channel to a connected peer. 37 | */ 38 | Result CloseChannel(NetworkPeerId peerId, NetworkChannelId channelId); 39 | /** 40 | * Send a message to a connected peer over an opened message channel. 41 | */ 42 | Result SendMessage(NetworkPeerId peerId, 43 | NetworkChannelId channelId, 44 | std::uint8_t* data, 45 | std::uint32_t dataLength); 46 | 47 | Event OnMessage; 48 | Event OnRouteUpdate; 49 | 50 | private: 51 | friend class Core; 52 | 53 | NetworkManager() = default; 54 | NetworkManager(NetworkManager const& rhs) = delete; 55 | NetworkManager& operator=(NetworkManager const& rhs) = delete; 56 | NetworkManager(NetworkManager&& rhs) = delete; 57 | NetworkManager& operator=(NetworkManager&& rhs) = delete; 58 | 59 | IDiscordNetworkManager* internal_; 60 | static IDiscordNetworkEvents events_; 61 | }; 62 | 63 | } // namespace discord 64 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/LandscapeUIManager.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "LandscapeUIManager.hpp" 4 | 5 | namespace 6 | { 7 | void* LandscapeUIManager_Initialize_addr = nullptr; 8 | void* LandscapeUIManager_Initialize_orig = nullptr; 9 | 10 | FieldInfo* LandscapeUIManager__displayOrientationButtonField = nullptr; 11 | } 12 | 13 | static void LandscapeUIManager_Initialize_hook(Il2CppObject* self, float leftUiOffsetX, float rightUiOffsetX) 14 | { 15 | reinterpret_cast(LandscapeUIManager_Initialize_orig)(self, leftUiOffsetX, rightUiOffsetX); 16 | 17 | Il2CppObject* _displayOrientationButton; 18 | il2cpp_field_get_value(self, LandscapeUIManager__displayOrientationButtonField, &_displayOrientationButton); 19 | 20 | UnityEngine::MonoBehaviour(_displayOrientationButton).gameObject().SetActive(true); 21 | 22 | il2cpp_class_get_method_from_name_type(_displayOrientationButton->klass, "SetOnClick", 1)->methodPointer(_displayOrientationButton, 23 | &CreateUnityAction(self, *[](Il2CppObject* self) 24 | { 25 | il2cpp_class_get_method_from_name_type(self->klass, "OnClickDisplayOrientationButton", 0)->methodPointer(self); 26 | })->delegate); 27 | } 28 | 29 | static void InitAddress() 30 | { 31 | auto LandscapeUIManager = il2cpp_symbols::get_class("umamusume.dll", "Gallop", "LandscapeUIManager"); 32 | LandscapeUIManager_Initialize_addr = il2cpp_symbols::get_method_pointer(LandscapeUIManager, "Initialize", 2); 33 | LandscapeUIManager__displayOrientationButtonField = il2cpp_class_get_field_from_name(LandscapeUIManager, "_displayOrientationButton"); 34 | } 35 | 36 | static void HookMethods() 37 | { 38 | ADD_HOOK(LandscapeUIManager_Initialize, "Gallop.LandscapeUIManager::Initialize at %p\n"); 39 | } 40 | 41 | STATIC 42 | { 43 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 44 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 45 | } 46 | 47 | namespace Gallop 48 | { 49 | } 50 | -------------------------------------------------------------------------------- /src/jwt/jwt.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "../hmac_sha256/hmac_sha256.h" 4 | #include "jwt.hpp" 5 | #include "base64.hpp" 6 | 7 | // The standard JWT header already base64 encoded. Equates to {"alg": "HS256", "typ": "JWT"} 8 | const char *jwtHeader = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; 9 | 10 | jwt::jwt(string &psk) { 11 | _psk = psk; 12 | } 13 | 14 | jwt::jwt(const char *psk) { 15 | _psk = string(psk); 16 | } 17 | 18 | void jwt::setPSK(string &psk) { 19 | _psk = psk; 20 | } 21 | 22 | void jwt::setPSK(const char *psk) { 23 | _psk = string(psk); 24 | } 25 | 26 | size_t jwt::getJWTLength(string &payload) { 27 | return getJWTLength(payload.data()); 28 | } 29 | 30 | size_t jwt::getJWTLength(const char *payload) { 31 | return strlen(jwtHeader) + encode_base64_length(strlen(payload)) + encode_base64_length(32) + 2; 32 | } 33 | 34 | string jwt::encodeJWT(string &payload) { 35 | vector jwt(getJWTLength(payload)); 36 | encodeJWT(payload.data(), jwt.data()); 37 | return {jwt.data()}; 38 | } 39 | 40 | void jwt::encodeJWT(char *payload, char *jwt) { 41 | auto *ptr = reinterpret_cast(jwt); 42 | // Build the initial part of the jwt (header.payload) 43 | memcpy(ptr, jwtHeader, strlen(jwtHeader)); 44 | ptr += strlen(jwtHeader); 45 | *ptr++ = '.'; 46 | encode_base64(reinterpret_cast(payload), strlen(payload), ptr); 47 | ptr += encode_base64_length(strlen(payload)); 48 | // Get rid of any padding (trailing '=' added when base64 encoding) 49 | while (*(ptr - 1) == '=') { 50 | ptr--; 51 | } 52 | *(ptr) = 0; 53 | 54 | std::vector out(32); 55 | 56 | // Build the signature 57 | hmac_sha256(_psk.data(), _psk.length(), jwt, strlen(jwt), out.data(), out.size()); 58 | // Add the signature to the jwt 59 | *ptr++ = '.'; 60 | encode_base64(out.data(), 32, ptr); 61 | ptr += encode_base64_length(32); 62 | // Get rid of any padding and replace / and + 63 | while (*(ptr - 1) == '=') { 64 | ptr--; 65 | } 66 | *(ptr) = 0; 67 | } 68 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/GameSystem.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "GameSystem.hpp" 4 | 5 | namespace 6 | { 7 | void* InitializeGame_addr = nullptr; 8 | void* InitializeGame1_addr = nullptr; 9 | 10 | void* IsExecutingSoftwareReset_addr = nullptr; 11 | 12 | void* SoftwareReset_addr = nullptr; 13 | } 14 | 15 | static void InitAddress() 16 | { 17 | InitializeGame_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "GameSystem", "InitializeGame", 1); 18 | InitializeGame1_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "GameSystem", "InitializeGame", 0); 19 | IsExecutingSoftwareReset_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "GameSystem", "IsExecutingSoftwareReset", 0); 20 | SoftwareReset_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "GameSystem", "SoftwareReset", 0); 21 | } 22 | 23 | STATIC 24 | { 25 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 26 | } 27 | 28 | namespace Gallop 29 | { 30 | const char* GameSystem::namespaze = "Gallop"; 31 | const char* GameSystem::klassName = "GameSystem"; 32 | 33 | Il2CppObject* GameSystem::InitializeGame(Il2CppDelegate* onCompleteInitializeUI) 34 | { 35 | if (!InitializeGame_addr) 36 | { 37 | return reinterpret_cast(InitializeGame1_addr)(instance); 38 | } 39 | return reinterpret_cast(InitializeGame_addr)(instance, onCompleteInitializeUI); 40 | } 41 | 42 | bool GameSystem::IsExecutingSoftwareReset() 43 | { 44 | return reinterpret_cast(IsExecutingSoftwareReset_addr)(); 45 | } 46 | 47 | void GameSystem::SoftwareReset() 48 | { 49 | reinterpret_cast(SoftwareReset_addr)(instance); 50 | } 51 | 52 | GameSystem::SystemState GameSystem::_systemState() 53 | { 54 | auto _systemStateField = il2cpp_class_get_field_from_name_wrap(instance->klass, "_systemState"); 55 | GameSystem::SystemState _systemState; 56 | il2cpp_field_get_value(instance, _systemStateField, &_systemState); 57 | 58 | return _systemState; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/DialogCommonBaseData.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "DialogCommonBaseData.hpp" 4 | 5 | namespace 6 | { 7 | FieldInfo* DialogCommonBaseData_FormTypeField = nullptr; 8 | 9 | FieldInfo* DialogCommonBaseData_TitleField = nullptr; 10 | 11 | FieldInfo* DialogCommonBaseData_ContentsObjectField = nullptr; 12 | } 13 | 14 | static void InitAddress() 15 | { 16 | const auto DialogCommonBaseData = il2cpp_symbols::get_class(ASSEMBLY_NAME, "Gallop", "DialogCommonBaseData"); 17 | DialogCommonBaseData_FormTypeField = il2cpp_class_get_field_from_name(DialogCommonBaseData, "FormType"); 18 | DialogCommonBaseData_TitleField = il2cpp_class_get_field_from_name(DialogCommonBaseData, "Title"); 19 | DialogCommonBaseData_ContentsObjectField = il2cpp_class_get_field_from_name(DialogCommonBaseData, "ContentsObject"); 20 | } 21 | 22 | 23 | STATIC 24 | { 25 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 26 | } 27 | 28 | namespace Gallop 29 | { 30 | DialogCommonBase::FormType DialogCommonBaseData::FormType() 31 | { 32 | DialogCommonBase::FormType value; 33 | il2cpp_field_get_value(instance, DialogCommonBaseData_FormTypeField, &value); 34 | return value; 35 | } 36 | 37 | void DialogCommonBaseData::FormType(DialogCommonBase::FormType value) 38 | { 39 | il2cpp_field_set_value(instance, DialogCommonBaseData_FormTypeField, &value); 40 | } 41 | 42 | Il2CppString* DialogCommonBaseData::Title() 43 | { 44 | Il2CppString* value; 45 | il2cpp_field_get_value(instance, DialogCommonBaseData_TitleField, &value); 46 | return value; 47 | } 48 | 49 | void DialogCommonBaseData::Title(Il2CppString* value) 50 | { 51 | il2cpp_field_set_value(instance, DialogCommonBaseData_TitleField, value); 52 | } 53 | 54 | UnityEngine::GameObject DialogCommonBaseData::ContentsObject() 55 | { 56 | Il2CppObject* value; 57 | il2cpp_field_get_value(instance, DialogCommonBaseData_ContentsObjectField, &value); 58 | return UnityEngine::GameObject(value); 59 | } 60 | 61 | void DialogCommonBaseData::ContentsObject(UnityEngine::GameObject value) 62 | { 63 | il2cpp_field_set_value(instance, DialogCommonBaseData_ContentsObjectField, value); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/scripts/Cute.Http.Assembly/Cute/Http/HttpManager.cpp: -------------------------------------------------------------------------------- 1 | #include "../../Cute.Http.Assembly.hpp" 2 | #include "../../../ScriptInternal.hpp" 3 | #include "HttpManager.hpp" 4 | 5 | #include "taskbar/TaskbarManager.hpp" 6 | 7 | namespace 8 | { 9 | void* HttpManager_Cute_Core_IUpdatable_FastUpdate_orig = nullptr; 10 | void* HttpManager_Cute_Core_IUpdatable_FastUpdate_addr = nullptr; 11 | } 12 | 13 | static void HttpManager_Cute_Core_IUpdatable_FastUpdate_hook(Il2CppObject* self) 14 | { 15 | auto currentOperationField = il2cpp_class_get_field_from_name(self->klass, "currentOperation"); 16 | Il2CppObject* currentOperation; 17 | il2cpp_field_get_value(self, currentOperationField, ¤tOperation); 18 | 19 | if (currentOperation != nullptr) 20 | { 21 | auto timeOutTimeField = il2cpp_class_get_field_from_name(self->klass, "timeOutTime"); 22 | float timeOutTime; 23 | il2cpp_field_get_value(self, timeOutTimeField, &timeOutTime); 24 | 25 | auto isDone = il2cpp_class_get_method_from_name_type(currentOperation->klass, "isDone", 0); 26 | auto realtimeSinceStartup = il2cpp_resolve_icall_type("UnityEngine.Time::get_realtimeSinceStartup()")(); 27 | 28 | if (!isDone && timeOutTime <= realtimeSinceStartup) 29 | { 30 | if (config::taskbar_show_progress_on_connecting && TaskbarManager::currentState == TBPF_NORMAL) 31 | { 32 | // Operation timed out 33 | TaskbarManager::SetProgressState(TBPF_ERROR); 34 | } 35 | } 36 | } 37 | 38 | reinterpret_cast(HttpManager_Cute_Core_IUpdatable_FastUpdate_orig)(self); 39 | } 40 | 41 | 42 | static void InitAddress() 43 | { 44 | HttpManager_Cute_Core_IUpdatable_FastUpdate_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Cute.Http", "HttpManager", "Cute.Core.IUpdatable.FastUpdate", 0); 45 | } 46 | 47 | static void HookMethods() 48 | { 49 | ADD_HOOK(HttpManager_Cute_Core_IUpdatable_FastUpdate, "Cute.Http.HttpManager::IUpdatable.FastUpdate at %p\n"); 50 | } 51 | 52 | STATIC 53 | { 54 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 55 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 56 | } 57 | 58 | namespace Cute 59 | { 60 | namespace Http 61 | { 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/stdinclude.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define NOMINMAX 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | 11 | #include 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | #define RAPIDJSON_HAS_STDSTRING 1 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "game.hpp" 31 | 32 | #include "experiments.h" 33 | 34 | #include "il2cpp/il2cpp_symbols.hpp" 35 | #include "il2cpp/il2cpp-api-functions.hpp" 36 | #include "local/local.hpp" 37 | #include "logger/logger.hpp" 38 | 39 | constexpr auto Cryptographer_KEY = "r!I@mt8e5i="; 40 | 41 | // Unity App icon 42 | constexpr auto IDI_APP_ICON = 103; 43 | 44 | namespace 45 | { 46 | BOOL IsElevated() 47 | { 48 | BOOL fRet = FALSE; 49 | HANDLE hToken = NULL; 50 | if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) 51 | { 52 | TOKEN_ELEVATION Elevation{}; 53 | DWORD cbSize = sizeof(TOKEN_ELEVATION); 54 | if (GetTokenInformation(hToken, TokenElevation, &Elevation, sizeof(Elevation), &cbSize)) 55 | { 56 | fRet = Elevation.TokenIsElevated; 57 | } 58 | } 59 | if (hToken) 60 | { 61 | CloseHandle(hToken); 62 | } 63 | return fRet; 64 | } 65 | 66 | void KillProcessByName(const wchar_t* filename) 67 | { 68 | HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL); 69 | PROCESSENTRY32 pEntry; 70 | pEntry.dwSize = sizeof(pEntry); 71 | BOOL hRes = Process32FirstW(hSnapShot, &pEntry); 72 | while (hRes) 73 | { 74 | if (wcscmp(pEntry.szExeFile, filename) == 0) 75 | { 76 | HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, 77 | (DWORD)pEntry.th32ProcessID); 78 | if (hProcess != NULL) 79 | { 80 | TerminateProcess(hProcess, 9); 81 | CloseHandle(hProcess); 82 | } 83 | } 84 | hRes = Process32Next(hSnapShot, &pEntry); 85 | } 86 | CloseHandle(hSnapShot); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/RaceUtil.cpp: -------------------------------------------------------------------------------- 1 | #include "../umamusume.hpp" 2 | #include "../../ScriptInternal.hpp" 3 | #include "RaceUtil.hpp" 4 | 5 | namespace 6 | { 7 | void* GetRaceDynamicCameraSettingData_addr = nullptr; 8 | void* GetRaceDynamicCameraSettingData_orig = nullptr; 9 | 10 | void* IsEnableDynamicRaceType_addr = nullptr; 11 | void* IsEnableDynamicRaceType_orig = nullptr; 12 | } 13 | 14 | static bool GetRaceDynamicCameraSettingData_hook(uint64_t bootMode) 15 | { 16 | auto SaveDataManager = GetSingletonInstance(il2cpp_symbols::get_class("umamusume.dll", "Gallop", "SaveDataManager")); 17 | auto SaveLoader = il2cpp_class_get_method_from_name_type(SaveDataManager->klass, "get_SaveLoader", 0)->methodPointer(SaveDataManager); 18 | bool IsTryRaceDynamicCamera = il2cpp_class_get_method_from_name_type(SaveLoader->klass, "get_IsTryRaceDynamicCamera", 0)->methodPointer(SaveLoader); 19 | return IsTryRaceDynamicCamera; 20 | } 21 | 22 | static bool IsEnableDynamicRaceType_hook(uint64_t raceType) 23 | { 24 | return true; 25 | } 26 | 27 | static void InitAddress() 28 | { 29 | GetRaceDynamicCameraSettingData_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "RaceUtil", "GetRaceDynamicCameraSettingData", 1); 30 | IsEnableDynamicRaceType_addr = il2cpp_symbols::get_method_pointer(ASSEMBLY_NAME, "Gallop", "RaceUtil", "IsEnableDynamicRaceType", 1); 31 | } 32 | 33 | static void HookMethods() 34 | { 35 | ADD_HOOK(GetRaceDynamicCameraSettingData, "Gallop.RaceUtil::GetRaceDynamicCameraSettingData at %p\n"); 36 | ADD_HOOK(IsEnableDynamicRaceType, "Gallop.RaceUtil::IsEnableDynamicRaceType at %p\n"); 37 | } 38 | 39 | STATIC 40 | { 41 | il2cpp_symbols::init_callbacks.emplace_back(InitAddress); 42 | il2cpp_symbols::init_callbacks.emplace_back(HookMethods); 43 | } 44 | 45 | namespace Gallop 46 | { 47 | bool RaceUtil::GetRaceDynamicCameraSettingData(uint64_t bootMode) 48 | { 49 | return reinterpret_cast(GetRaceDynamicCameraSettingData_addr)(bootMode); 50 | } 51 | 52 | bool RaceUtil::IsEnableDynamicRaceType(uint64_t raceType) 53 | { 54 | return reinterpret_cast(IsEnableDynamicRaceType_addr)(raceType); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/scripts/umamusume/Gallop/UIManager.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "il2cpp/il2cpp_symbols.hpp" 3 | #include "MonoSingleton.hpp" 4 | #include "scripts/UnityEngine.CoreModule/UnityEngine/ScreenOrientation.hpp" 5 | #include "scripts/UnityEngine.CoreModule/UnityEngine/Vector2.hpp" 6 | 7 | using namespace UnityEngine; 8 | 9 | namespace Gallop 10 | { 11 | class UIManager : public MonoSingleton 12 | { 13 | public: 14 | Il2CppObject* _noticeCanvas(); 15 | 16 | Il2CppObject* _bgCamera(); 17 | 18 | Il2CppObject* _uiCamera(); 19 | 20 | Il2CppObject* _bgManager(); 21 | 22 | Il2CppObject* _uiToFrameBufferRenderCameraData(); 23 | 24 | Il2CppObject* _uiCommandBuffer(); 25 | 26 | Il2CppObject* _blitToFrameMaterial(); 27 | 28 | Il2CppObject* _noImageEffectUICamera(); 29 | 30 | Il2CppObject* _noImageEffectCanvas(); 31 | 32 | Il2CppObject* _uiToFrameBufferBlitCamera(); 33 | 34 | Il2CppObject* _mainCanvas(); 35 | 36 | Il2CppObject* _gameCanvas(); 37 | 38 | Il2CppObject* _systemCanvas(); 39 | 40 | Il2CppObject* UITexture(); 41 | 42 | Il2CppObject* CommonHeaderTitle(); 43 | 44 | Il2CppObject* LandscapeUIManager(); 45 | 46 | void UITexture(Il2CppObject* value); 47 | 48 | void ShowNotification(Il2CppString*); 49 | 50 | void SetCameraSizeByOrientation(ScreenOrientation orientation); 51 | 52 | void CheckUIToFrameBufferBlitInstance(); 53 | 54 | void AdjustSafeArea(); 55 | 56 | void AdjustMissionClearContentsRootRect(); 57 | 58 | void AdjustSafeAreaToAnnounceRect(); 59 | 60 | void ReleaseRenderTexture(); 61 | 62 | void LockGameCanvas(); 63 | 64 | void UnlockGameCanvas(); 65 | 66 | void UnlockAllCanvas(); 67 | 68 | void ChangeResolution(); 69 | 70 | Il2CppObject* WaitResizeUI(bool isPortrait, bool isShowOrientationGuide = false); 71 | 72 | Il2CppArraySize_t* GetCanvasScalerList(); 73 | 74 | static float GetCameraSizeByOrientation(ScreenOrientation orientation); 75 | 76 | static Vector2 DefaultResolution(); 77 | 78 | static bool IsLandscapeMode(); 79 | 80 | #ifdef _MSC_VER 81 | void ChangeResizeUIForPC(int width, int height); 82 | #endif 83 | 84 | using MonoSingleton::MonoSingleton; 85 | 86 | static const char* namespaze; 87 | static const char* klassName; 88 | }; 89 | } 90 | -------------------------------------------------------------------------------- /src/discord/image_manager.cpp: -------------------------------------------------------------------------------- 1 | #if !defined(_CRT_SECURE_NO_WARNINGS) 2 | #define _CRT_SECURE_NO_WARNINGS 3 | #endif 4 | 5 | #include "image_manager.h" 6 | 7 | #include "core.h" 8 | 9 | #include 10 | #include 11 | 12 | namespace discord { 13 | 14 | void ImageManager::Fetch(ImageHandle handle, 15 | bool refresh, 16 | std::function callback) 17 | { 18 | static auto wrapper = 19 | [](void* callbackData, EDiscordResult result, DiscordImageHandle handleResult) -> void { 20 | std::unique_ptr> cb( 21 | reinterpret_cast*>(callbackData)); 22 | if (!cb || !(*cb)) { 23 | return; 24 | } 25 | (*cb)(static_cast(result), *reinterpret_cast(&handleResult)); 26 | }; 27 | std::unique_ptr> cb{}; 28 | cb.reset(new std::function(std::move(callback))); 29 | internal_->fetch(internal_, 30 | *reinterpret_cast(&handle), 31 | (refresh ? 1 : 0), 32 | cb.release(), 33 | wrapper); 34 | } 35 | 36 | Result ImageManager::GetDimensions(ImageHandle handle, ImageDimensions* dimensions) 37 | { 38 | if (!dimensions) { 39 | return Result::InternalError; 40 | } 41 | 42 | auto result = internal_->get_dimensions(internal_, 43 | *reinterpret_cast(&handle), 44 | reinterpret_cast(dimensions)); 45 | return static_cast(result); 46 | } 47 | 48 | Result ImageManager::GetData(ImageHandle handle, std::uint8_t* data, std::uint32_t dataLength) 49 | { 50 | auto result = internal_->get_data(internal_, 51 | *reinterpret_cast(&handle), 52 | reinterpret_cast(data), 53 | dataLength); 54 | return static_cast(result); 55 | } 56 | 57 | } // namespace discord 58 | -------------------------------------------------------------------------------- /src/discord/core.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | #include "application_manager.h" 5 | #include "user_manager.h" 6 | #include "image_manager.h" 7 | #include "activity_manager.h" 8 | #include "relationship_manager.h" 9 | #include "lobby_manager.h" 10 | #include "network_manager.h" 11 | #include "overlay_manager.h" 12 | #include "storage_manager.h" 13 | #include "store_manager.h" 14 | #include "voice_manager.h" 15 | #include "achievement_manager.h" 16 | 17 | namespace discord { 18 | 19 | class Core final { 20 | public: 21 | static Result Create(ClientId clientId, std::uint64_t flags, Core** instance); 22 | 23 | ~Core(); 24 | 25 | Result RunCallbacks(); 26 | void SetLogHook(LogLevel minLevel, std::function hook); 27 | 28 | discord::ApplicationManager& ApplicationManager(); 29 | discord::UserManager& UserManager(); 30 | discord::ImageManager& ImageManager(); 31 | discord::ActivityManager& ActivityManager(); 32 | discord::RelationshipManager& RelationshipManager(); 33 | discord::LobbyManager& LobbyManager(); 34 | discord::NetworkManager& NetworkManager(); 35 | discord::OverlayManager& OverlayManager(); 36 | discord::StorageManager& StorageManager(); 37 | discord::StoreManager& StoreManager(); 38 | discord::VoiceManager& VoiceManager(); 39 | discord::AchievementManager& AchievementManager(); 40 | 41 | private: 42 | Core() = default; 43 | Core(Core const& rhs) = delete; 44 | Core& operator=(Core const& rhs) = delete; 45 | Core(Core&& rhs) = delete; 46 | Core& operator=(Core&& rhs) = delete; 47 | 48 | IDiscordCore* internal_; 49 | Event setLogHook_; 50 | discord::ApplicationManager applicationManager_; 51 | discord::UserManager userManager_; 52 | discord::ImageManager imageManager_; 53 | discord::ActivityManager activityManager_; 54 | discord::RelationshipManager relationshipManager_; 55 | discord::LobbyManager lobbyManager_; 56 | discord::NetworkManager networkManager_; 57 | discord::OverlayManager overlayManager_; 58 | discord::StorageManager storageManager_; 59 | discord::StoreManager storeManager_; 60 | discord::VoiceManager voiceManager_; 61 | discord::AchievementManager achievementManager_; 62 | }; 63 | 64 | } // namespace discord 65 | -------------------------------------------------------------------------------- /src/discord/overlay_manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace discord { 6 | 7 | class OverlayManager final { 8 | public: 9 | ~OverlayManager() = default; 10 | 11 | void IsEnabled(bool* enabled); 12 | void IsLocked(bool* locked); 13 | void SetLocked(bool locked, std::function callback); 14 | void OpenActivityInvite(ActivityActionType type, std::function callback); 15 | void OpenGuildInvite(char const* code, std::function callback); 16 | void OpenVoiceSettings(std::function callback); 17 | Result InitDrawingDxgi(IDXGISwapChain* swapchain, bool useMessageForwarding); 18 | void OnPresent(); 19 | void ForwardMessage(MSG* message); 20 | void KeyEvent(bool down, char const* keyCode, KeyVariant variant); 21 | void CharEvent(char const* character); 22 | void MouseButtonEvent(std::uint8_t down, 23 | std::int32_t clickCount, 24 | MouseButton which, 25 | std::int32_t x, 26 | std::int32_t y); 27 | void MouseMotionEvent(std::int32_t x, std::int32_t y); 28 | void ImeCommitText(char const* text); 29 | void ImeSetComposition(char const* text, 30 | ImeUnderline* underlines, 31 | std::uint32_t underlinesLength, 32 | std::int32_t from, 33 | std::int32_t to); 34 | void ImeCancelComposition(); 35 | void SetImeCompositionRangeCallback( 36 | std::function 37 | onImeCompositionRangeChanged); 38 | void SetImeSelectionBoundsCallback( 39 | std::function onImeSelectionBoundsChanged); 40 | bool IsPointInsideClickZone(std::int32_t x, std::int32_t y); 41 | 42 | Event OnToggle; 43 | 44 | private: 45 | friend class Core; 46 | 47 | OverlayManager() = default; 48 | OverlayManager(OverlayManager const& rhs) = delete; 49 | OverlayManager& operator=(OverlayManager const& rhs) = delete; 50 | OverlayManager(OverlayManager&& rhs) = delete; 51 | OverlayManager& operator=(OverlayManager&& rhs) = delete; 52 | 53 | IDiscordOverlayManager* internal_; 54 | static IDiscordOverlayEvents events_; 55 | }; 56 | 57 | } // namespace discord 58 | -------------------------------------------------------------------------------- /loader/premake5.lua: -------------------------------------------------------------------------------- 1 | dependencies = { 2 | basePath = "../deps" 3 | } 4 | 5 | function dependencies.load() 6 | dir = path.join(dependencies.basePath, "premake/*.lua") 7 | deps = os.matchfiles(dir) 8 | 9 | for i, dep in pairs(deps) do 10 | dep = dep:gsub(".lua", "") 11 | require(dep) 12 | end 13 | end 14 | 15 | function dependencies.imports() 16 | for i, proj in pairs(dependencies) do 17 | if type(i) == 'number' then 18 | proj.import() 19 | end 20 | end 21 | end 22 | 23 | function dependencies.projects() 24 | for i, proj in pairs(dependencies) do 25 | if type(i) == 'number' then 26 | proj.project() 27 | end 28 | end 29 | end 30 | 31 | include "../deps/minhook.lua" 32 | 33 | workspace "umamusume-localify-loader" 34 | location "./build" 35 | objdir "%{wks.location}/obj" 36 | targetdir "%{wks.location}/bin/%{cfg.platform}/%{cfg.buildcfg}" 37 | 38 | architecture "x64" 39 | platforms "x64" 40 | 41 | configurations { 42 | "Debug", 43 | "Release", 44 | } 45 | 46 | toolset "clang" 47 | systemversion "latest" 48 | symbols "On" 49 | staticruntime "On" 50 | editandcontinue "Off" 51 | warnings "Off" 52 | characterset "Unicode" 53 | cppdialect "C++latest" 54 | cdialect "C23" 55 | 56 | flags { 57 | "NoIncrementalLink", 58 | "NoMinimalRebuild", 59 | "MultiProcessorCompile", 60 | } 61 | 62 | staticruntime "Off" 63 | 64 | filter "configurations:Release" 65 | optimize "Full" 66 | buildoptions "/Os" 67 | 68 | filter "configurations:Debug" 69 | optimize "Debug" 70 | 71 | dependencies.projects() 72 | 73 | project "umamusume-localify-loader" 74 | targetname "loader" 75 | 76 | language "C++" 77 | kind "SharedLib" 78 | 79 | files { 80 | "./src/**.hpp", 81 | "./src/**.cpp", 82 | "./src/**.h", 83 | "./src/**.c", 84 | "./src/**.asm", 85 | "./src/**.def", 86 | "./src/**.rc", 87 | } 88 | 89 | links { 90 | "Shlwapi", 91 | "ntdll", 92 | "user32", 93 | } 94 | 95 | includedirs { 96 | "./src", 97 | "%{prj.location}/src", 98 | } 99 | 100 | dependencies.imports() 101 | 102 | filter "configurations:Release" 103 | linkoptions "/SAFESEH:NO" 104 | syslibdirs { 105 | "./libs/Release", 106 | } 107 | 108 | filter "configurations:Debug" 109 | linkoptions "/SAFESEH:NO" 110 | syslibdirs { 111 | "./libs/Debug", 112 | } 113 | -------------------------------------------------------------------------------- /src/pe_lib/utils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include "stdint_defs.h" 5 | #include "pe_structures.h" 6 | 7 | namespace pe_bliss 8 | { 9 | class pe_utils 10 | { 11 | public: 12 | //Returns true if string "data" with maximum length "raw_length" is null-terminated 13 | template 14 | static bool is_null_terminated(const T* data, size_t raw_length) 15 | { 16 | raw_length /= sizeof(T); 17 | for(size_t l = 0; l < raw_length; l++) 18 | { 19 | if(data[l] == static_cast(L'\0')) 20 | return true; 21 | } 22 | 23 | return false; 24 | } 25 | 26 | //Helper template function to strip nullbytes in the end of string 27 | template 28 | static void strip_nullbytes(std::basic_string& str) 29 | { 30 | while(!*(str.end() - 1) && !str.empty()) 31 | str.erase(str.length() - 1); 32 | } 33 | 34 | //Helper function to determine if number is power of 2 35 | template 36 | static inline bool is_power_of_2(T x) 37 | { 38 | return !(x & (x - 1)); 39 | } 40 | 41 | //Helper function to align number down 42 | template 43 | static inline T align_down(T x, uint32_t align) 44 | { 45 | return x & ~(static_cast(align) - 1); 46 | } 47 | 48 | //Helper function to align number up 49 | template 50 | static inline T align_up(T x, uint32_t align) 51 | { 52 | return (x & static_cast(align - 1)) ? align_down(x, align) + static_cast(align) : x; 53 | } 54 | 55 | //Returns true if sum of two unsigned integers is safe (no overflow occurs) 56 | static inline bool is_sum_safe(uint32_t a, uint32_t b) 57 | { 58 | return a <= static_cast(-1) - b; 59 | } 60 | 61 | //Two gigabytes value in bytes 62 | static const uint32_t two_gb = 0x80000000; 63 | static const uint32_t max_dword = 0xFFFFFFFF; 64 | static const uint32_t max_word = 0x0000FFFF; 65 | static const double log_2; //instead of using M_LOG2E 66 | 67 | //Returns stream size 68 | static std::streamoff get_file_size(std::istream& file); 69 | 70 | #ifndef PE_BLISS_WINDOWS 71 | public: 72 | static const u16string to_ucs2(const std::wstring& str); 73 | static const std::wstring from_ucs2(const u16string& str); 74 | #endif 75 | 76 | private: 77 | pe_utils(); 78 | pe_utils(pe_utils&); 79 | pe_utils& operator=(const pe_utils&); 80 | }; 81 | 82 | //Windows GUID comparison 83 | bool operator==(const pe_win::guid& guid1, const pe_win::guid& guid2); 84 | } 85 | --------------------------------------------------------------------------------