Some test asm hooks

This commit is contained in:
korenkonder
2024-01-12 22:04:59 +03:00
parent fdce27ef4d
commit 446ab5dfbb
5 changed files with 86 additions and 0 deletions
+11
View File
@@ -50,6 +50,9 @@
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
@@ -267,6 +270,7 @@ del "$(SolutionDir)bin\$(TargetName).lib"</Command>
<ClCompile Include="mdl\draw_object.cpp" />
<ClCompile Include="object.cpp" />
<ClCompile Include="print.cpp" />
<ClCompile Include="pv_game.cpp" />
<ClCompile Include="render.cpp" />
<ClCompile Include="render_context.cpp" />
<ClCompile Include="render_manager.cpp" />
@@ -311,6 +315,7 @@ del "$(SolutionDir)bin\$(TargetName).lib"</Command>
<ClInclude Include="mdl\draw_object.hpp" />
<ClInclude Include="object.hpp" />
<ClInclude Include="print.hpp" />
<ClInclude Include="pv_game.hpp" />
<ClInclude Include="render.hpp" />
<ClInclude Include="render_context.hpp" />
<ClInclude Include="render_manager.hpp" />
@@ -341,5 +346,11 @@ del "$(SolutionDir)bin\$(TargetName).lib"</Command>
<ItemGroup>
<None Include="..\..\res\ft_shaders.farc" />
</ItemGroup>
<ItemGroup>
<MASM Include="common.asm" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>
+46
View File
@@ -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
+2
View File
@@ -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();
+17
View File
@@ -0,0 +1,17 @@
/*
by korenkonder
GitHub/GitLab: korenkonder
*/
#include "pv_game.hpp"
#include <Helpers.h>
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);
}
+10
View File
@@ -0,0 +1,10 @@
/*
by korenkonder
GitHub/GitLab: korenkonder
*/
#pragma once
#include "../KKdLib/default.hpp"
extern void pv_game_patch();