Add embedded mod (using mm_recomp_draw_distance as an example).

This commit is contained in:
Dario 2025-04-22 20:17:03 -03:00
parent 184c5bf71f
commit 42e4dac717
4 changed files with 27 additions and 1 deletions

View file

@ -399,6 +399,27 @@ endif()
build_vertex_shader(Zelda64Recompiled "shaders/InterfaceVS.hlsl" "shaders/InterfaceVS.hlsl")
build_pixel_shader(Zelda64Recompiled "shaders/InterfacePS.hlsl" "shaders/InterfacePS.hlsl")
# Embed all .nrm files in the "mods" directory
file(GLOB NRM_FILES "${CMAKE_SOURCE_DIR}/mods/*.nrm")
set(GENERATED_NRM_SOURCES "")
foreach(NRM_FILE ${NRM_FILES})
get_filename_component(NRM_NAME ${NRM_FILE} NAME_WE)
set(OUT_C "${CMAKE_CURRENT_BINARY_DIR}/mods/${NRM_NAME}.c")
set(OUT_H "${CMAKE_CURRENT_BINARY_DIR}/mods/${NRM_NAME}.h")
add_custom_command(
OUTPUT ${OUT_C} ${OUT_H}
COMMAND file_to_c ${NRM_FILE} ${NRM_NAME} ${OUT_C} ${OUT_H}
DEPENDS ${NRM_FILE}
)
list(APPEND GENERATED_NRM_SOURCES ${OUT_C})
endforeach()
target_sources(Zelda64Recompiled PRIVATE ${GENERATED_NRM_SOURCES})
target_sources(Zelda64Recompiled PRIVATE ${SOURCES})
set_property(TARGET Zelda64Recompiled PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")

@ -1 +1 @@
Subproject commit 4b57f50722c0e7d9189f79a7cc525d51ba98c52a
Subproject commit ec192e67335e27428f24e925ad41857304c69926

1
mods/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.nrm

View file

@ -38,6 +38,8 @@
#include "../../patches/sound.h"
#include "../../patches/misc_funcs.h"
#include "mods/mm_recomp_draw_distance.h"
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
@ -617,6 +619,8 @@ int main(int argc, char** argv) {
recomp::register_game(game);
}
recomp::mods::register_embedded_mod("mm_recomp_draw_distance", { (const uint8_t*)(mm_recomp_draw_distance), std::size(mm_recomp_draw_distance)});
REGISTER_FUNC(recomp_get_window_resolution);
REGISTER_FUNC(recomp_get_target_aspect_ratio);
REGISTER_FUNC(recomp_get_target_framerate);