Skip to content

Commit

Permalink
Merge branch 'master' into pd-upscaler
Browse files Browse the repository at this point in the history
  • Loading branch information
praydog committed May 9, 2024
2 parents c34b092 + 18c2297 commit 7222eca
Show file tree
Hide file tree
Showing 8 changed files with 195 additions and 6 deletions.
52 changes: 50 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -134,13 +134,13 @@ FetchContent_Declare(
)
FetchContent_MakeAvailable(bddisasm)

message(STATUS "Fetching kananlib (203dc31c5d8ba2cffdb780ae38b2eb2080bb099c)...")
message(STATUS "Fetching kananlib (65c205e9f3f0985fd298281a77098d48b9065e87)...")
FetchContent_Declare(
kananlib
GIT_REPOSITORY
https://github.com/cursey/kananlib
GIT_TAG
203dc31c5d8ba2cffdb780ae38b2eb2080bb099c
65c205e9f3f0985fd298281a77098d48b9065e87
)
FetchContent_MakeAvailable(kananlib)

Expand Down Expand Up @@ -608,6 +608,7 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -1381,7 +1382,10 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE2SDK_SOURCES
Expand Down Expand Up @@ -1455,6 +1459,7 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -2228,7 +2233,10 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE2_TDB66SDK_SOURCES
Expand Down Expand Up @@ -2731,6 +2739,7 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -3504,7 +3513,10 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE3SDK_SOURCES
Expand Down Expand Up @@ -3578,6 +3590,7 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -4351,7 +4364,10 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE3_TDB67SDK_SOURCES
Expand Down Expand Up @@ -5068,6 +5084,7 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -5841,7 +5858,10 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE4SDK_SOURCES
Expand Down Expand Up @@ -5917,6 +5937,7 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -6690,7 +6711,10 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE7SDK_SOURCES
Expand Down Expand Up @@ -6764,6 +6788,7 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -7537,7 +7562,10 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE7_TDB49SDK_SOURCES
Expand Down Expand Up @@ -8040,6 +8068,7 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -8813,7 +8842,10 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND RE8SDK_SOURCES
Expand Down Expand Up @@ -9103,6 +9135,7 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -9876,7 +9909,10 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND DMC5SDK_SOURCES
Expand Down Expand Up @@ -10164,6 +10200,7 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -10937,7 +10974,10 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND MHRISESDK_SOURCES
Expand Down Expand Up @@ -11227,6 +11267,7 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -12000,7 +12041,10 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND SF6SDK_SOURCES
Expand Down Expand Up @@ -12290,6 +12334,7 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk
"shared/sdk/SystemArray.cpp"
"shared/sdk/helpers/NativeObject.cpp"
"shared/sdk/renderer/RenderResource.cpp"
"shared/sdk/resources/MasterMaterialResource.cpp"
"shared/sdk/Application.hpp"
"shared/sdk/Enums_Internal.hpp"
"shared/sdk/GUIPrimitiveSystem.hpp"
Expand Down Expand Up @@ -13063,7 +13108,10 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk
"shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp"
"shared/sdk/regenny/sf6/via/vec3.hpp"
"shared/sdk/regenny/sf6/via/vec4.hpp"
"shared/sdk/renderer/PipelineState.hpp"
"shared/sdk/renderer/RenderResource.hpp"
"shared/sdk/resources/MasterMaterialResource.hpp"
"shared/sdk/resources/ShaderResource.hpp"
)

list(APPEND DD2SDK_SOURCES
Expand Down
2 changes: 1 addition & 1 deletion cmake.toml
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ tag = "v1.34.10"

[fetch-content.kananlib]
git = "https://github.com/cursey/kananlib"
tag = "203dc31c5d8ba2cffdb780ae38b2eb2080bb099c"
tag = "65c205e9f3f0985fd298281a77098d48b9065e87"

[target.utility]
type = "static"
Expand Down
7 changes: 7 additions & 0 deletions shared/sdk/renderer/PipelineState.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#pragma once

namespace sdk::renderer {
struct PipelineState {
// Opaque data (for now)
};
}
73 changes: 73 additions & 0 deletions shared/sdk/resources/MasterMaterialResource.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#include <spdlog/spdlog.h>
#include <utility/Scan.hpp>
#include <utility/Module.hpp>

#include "../MurmurHash.hpp"

#include "MasterMaterialResource.hpp"

namespace sdk::renderer {
MasterMaterialResource::FindFn MasterMaterialResource::get_find_fn() {
static FindFn fn = []() -> FindFn {
spdlog::info("[MasterMaterialResource::get_find_fn] Scanning for MasterMaterialResource::find");

const auto game = utility::get_executable();
const auto string_data = utility::scan_string(game, "UpdateDepthBlockerState");

if (!string_data) {
spdlog::error("[MasterMaterialResource::get_find_fn] Failed to find UpdateDepthBlockerState string");
return nullptr;
}

const auto string_ref = utility::scan_displacement_reference(game, *string_data);

if (!string_ref) {
spdlog::error("[MasterMaterialResource::get_find_fn] Failed to find UpdateDepthBlockerState reference");
return nullptr;
}

const auto next_fn_call = utility::scan_mnemonic(*string_ref + 4, 100, "CALL");

if (!next_fn_call) {
spdlog::error("[MasterMaterialResource::get_find_fn] Failed to find next CALL instruction");
return nullptr;
}

const auto next_next_fn_call = utility::scan_mnemonic(*next_fn_call + 5, 100, "CALL");

if (!next_next_fn_call) {
spdlog::error("[MasterMaterialResource::get_find_fn] Failed to find next next CALL instruction");
return nullptr;
}

const auto result = utility::resolve_displacement(*next_next_fn_call);

if (!result) {
spdlog::error("[MasterMaterialResource::get_find_fn] Failed to resolve displacement");
return nullptr;
}

spdlog::info("[MasterMaterialResource::get_find_fn] Found MasterMaterialResource::find at {0:x}", *result);

return (FindFn)*result;
}();

return fn;
}

sdk::renderer::PipelineState* MasterMaterialResource::find(uint32_t murmur_hash, uint8_t unk) {
auto fn = get_find_fn();

if (fn == nullptr) {
return nullptr;
}

return fn(this, murmur_hash, unk);
}

sdk::renderer::PipelineState* MasterMaterialResource::find(std::string_view name, uint8_t unk) {
const auto murmur_hash = sdk::murmur_hash::calc32_as_utf8(name.data());

return find(murmur_hash, unk);
}
}
19 changes: 19 additions & 0 deletions shared/sdk/resources/MasterMaterialResource.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once

#include <string_view>

#include "ShaderResource.hpp"
#include "../renderer/PipelineState.hpp"

namespace sdk::renderer {
class MasterMaterialResource : public ShaderResource {
public:
using FindFn = PipelineState* (*)(MasterMaterialResource*, uint32_t, uint8_t);
static FindFn get_find_fn();

PipelineState* find(uint32_t murmur_hash, uint8_t unk);
PipelineState* find(std::string_view name, uint8_t unk);

private:
};
}
11 changes: 11 additions & 0 deletions shared/sdk/resources/ShaderResource.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

#include "../ResourceManager.hpp"

namespace sdk::renderer {
class ShaderResource : public sdk::Resource {
public:

private:
};
}

0 comments on commit 7222eca

Please sign in to comment.