diff --git a/src/DivaGL/DivaGL.vcxproj b/src/DivaGL/DivaGL.vcxproj index 3039ca7..313e60a 100644 --- a/src/DivaGL/DivaGL.vcxproj +++ b/src/DivaGL/DivaGL.vcxproj @@ -50,6 +50,9 @@ Unicode + + + @@ -267,6 +270,7 @@ del "$(SolutionDir)bin\$(TargetName).lib" + @@ -311,6 +315,7 @@ del "$(SolutionDir)bin\$(TargetName).lib" + @@ -341,5 +346,11 @@ del "$(SolutionDir)bin\$(TargetName).lib" + + + + + + \ No newline at end of file diff --git a/src/DivaGL/common.asm b/src/DivaGL/common.asm new file mode 100644 index 0000000..dbdf5d5 --- /dev/null +++ b/src/DivaGL/common.asm @@ -0,0 +1,46 @@ +pushaq MACRO + push rax + push rcx + push rdx + push rsi + push r8 + push r9 + push r10 + push r11 + push r12 + push r13 + push r14 + push r15 +ENDM + +popaq MACRO + pop r15 + pop r14 + pop r13 + pop r12 + pop r11 + pop r10 + pop r9 + pop r8 + pop rsi + pop rdx + pop rcx + pop rax +ENDM + +EXTERN ?pv_game_load_state_13_tail_impl@@YAX_K@Z : PROC + +.DATA +pv_game_load_state_13_tail_jump QWORD 00000001401043ECh + +.CODE + +PUBLIC ?implOfpv_game_load_state_13_tail@@YAXXZ + +?implOfpv_game_load_state_13_tail@@YAXXZ : + pushaq + mov rcx, r14 + call ?pv_game_load_state_13_tail_impl@@YAX_K@Z + popaq + jmp [pv_game_load_state_13_tail_jump] +END diff --git a/src/DivaGL/hook.cpp b/src/DivaGL/hook.cpp index 95bcb78..0e91277 100644 --- a/src/DivaGL/hook.cpp +++ b/src/DivaGL/hook.cpp @@ -12,6 +12,7 @@ #include "effect.hpp" #include "object.hpp" #include "print.hpp" +#include "pv_game.hpp" #include "resource.h" #include "shader_ft.hpp" #include "sprite.hpp" @@ -54,6 +55,7 @@ HOOK(int32_t, FASTCALL, data_init, 0x0000000140192FF0) { object_patch(); render_manager_patch(); rob_patch(); + pv_game_patch(); sprite_patch(); stage_patch(); texture_patch(); diff --git a/src/DivaGL/pv_game.cpp b/src/DivaGL/pv_game.cpp new file mode 100644 index 0000000..6ae13b2 --- /dev/null +++ b/src/DivaGL/pv_game.cpp @@ -0,0 +1,17 @@ +/* + by korenkonder + GitHub/GitLab: korenkonder +*/ + +#include "pv_game.hpp" +#include + +void pv_game_load_state_13_tail_impl(size_t pv_game) { + *(uint32_t*)(pv_game + 0x08) = 14; +} + +HOOK(void, FASTCALL, pv_game_load_state_13_tail, 0x000000014010386E); + +void pv_game_patch() { + INSTALL_HOOK(pv_game_load_state_13_tail); +} diff --git a/src/DivaGL/pv_game.hpp b/src/DivaGL/pv_game.hpp new file mode 100644 index 0000000..14ee613 --- /dev/null +++ b/src/DivaGL/pv_game.hpp @@ -0,0 +1,10 @@ +/* + by korenkonder + GitHub/GitLab: korenkonder +*/ + +#pragma once + +#include "../KKdLib/default.hpp" + +extern void pv_game_patch();