Initial sacred_re scaffold with borderless fullscreen mod

- Launcher (sacred_re.exe) starts sacred.exe with sacred_re.dll injected
  via Detours; the DLL verifies the Sacred Gold 2.28 build before hooking.
- Hook framework: RE_HOOK for game addresses, RE_HOOK_API for Windows
  APIs, per-hook enable/disable in sacred_re.ini, sacred_re.log.
- Game code: Log (0x66f1c0) hooked, CmdLineHasFlag (0x813140) rewritten.
- Borderless mod: forces windowed mode, covers the monitor, scales the
  1024x768 image aspect-correct, remaps mouse input, keeps running in the
  background with keyboard input hidden while unfocused.
- CMake/Ninja/MSVC x86 build, VS Code setup, disasm tool, function map.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
khallaandClaude Opus 5.5 committed 2026-10-13 23:55:50 +02:00
commit d9f5c85430
31 files changed
+1184

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
# Microsoft Detours (MIT) — function hooking and DLL injection.
# Upstream ships no CMake build, so we compile its sources into a static lib.
include(FetchContent)
FetchContent_Declare(detours_src
GIT_REPOSITORY https://github.com/microsoft/Detours.git
GIT_TAG v4.0.1
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(detours_src)
set(_d ${detours_src_SOURCE_DIR}/src)
add_library(detours STATIC
${_d}/detours.cpp
${_d}/modules.cpp
${_d}/disasm.cpp
${_d}/image.cpp
${_d}/creatwth.cpp
${_d}/disolx86.cpp
${_d}/disolx64.cpp
${_d}/disolia64.cpp
${_d}/disolarm.cpp
${_d}/disolarm64.cpp
)
target_include_directories(detours PUBLIC ${_d})
# C++20 implies /permissive-, which v4.0.1 does not compile under (goto over initialisations).
target_compile_options(detours PRIVATE /W3 /permissive)