Added support for SSE 1.7.104

This commit is contained in:
Eddoursul 2026-08-28 00:07:57 +02:00
parent 9658c9b1f5
commit 874b5faf2e
13 changed files with 17 additions and 17 deletions

View File

@ -7,7 +7,7 @@ Beware, spoilers ahead!
2.1.4.3 (TBD) 2.1.4.3 (TBD)
- Added compatibility with Skyrim SE 1.7.99. - Added compatibility with Skyrim SE 1.7.104.
- Added Czech localization by Dogzey. - Added Czech localization by Dogzey.
- Added widescreen support. - Added widescreen support.
- Added SkyUI 6.0 support. - Added SkyUI 6.0 support.

View File

@ -136,7 +136,7 @@ FetchContent_Declare(
) )
FetchContent_MakeAvailable(xbyak) FetchContent_MakeAvailable(xbyak)
# CommonLibSSE-GG - MIT fork of CommonLibSSE-NG with native 1.7.99 support, # CommonLibSSE-GG - MIT fork of CommonLibSSE-NG with native 1.7.99 and 1.7.104 support,
# pinned commit (SE + AE + VR runtime support). # pinned commit (SE + AE + VR runtime support).
set(SKSE_SUPPORT_XBYAK ON CACHE BOOL " " FORCE) set(SKSE_SUPPORT_XBYAK ON CACHE BOOL " " FORCE)
set(ENABLE_SKYRIM_SE ON CACHE BOOL " " FORCE) set(ENABLE_SKYRIM_SE ON CACHE BOOL " " FORCE)
@ -147,7 +147,7 @@ message(STATUS "Fetching CommonLibSSE-GG...")
FetchContent_Declare( FetchContent_Declare(
CommonLibSSE CommonLibSSE
GIT_REPOSITORY https://github.com/eddoursul/CommonLibSSE-GG GIT_REPOSITORY https://github.com/eddoursul/CommonLibSSE-GG
GIT_TAG f017308b341889af9b518aae6966b19db98e16bc GIT_TAG 3aa704ee2de9fdba3a2e77cc08e3d3ed8ea6e00f
) )
FetchContent_MakeAvailable(CommonLibSSE) FetchContent_MakeAvailable(CommonLibSSE)

View File

@ -9,7 +9,7 @@ namespace AchievementFix
if (REL::Module::IsVR()) { if (REL::Module::IsVR()) {
target = REL::Offset(0x17FB90); target = REL::Offset(0x17FB90);
} else if (REL::Module::get().version() >= REL::Version(1, 6, 1130, 0)) { } else if (REL::Module::get().version() >= REL::Version(1, 6, 1130, 0)) {
// Checked: 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
target = REL::ID(441528); target = REL::ID(441528);
} else { } else {
// Checked: 1.5.97, 1.6.640, 1.6.659 // Checked: 1.5.97, 1.6.640, 1.6.659

View File

@ -35,7 +35,7 @@ namespace BinkInterruptPatch
void Install() void Install()
{ {
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(87890, 90259), REL::Relocate(0x22, 0x21) }; REL::Relocation<std::uintptr_t> target{ REL::RelocationID(87890, 90259), REL::Relocate(0x22, 0x21) };
SKSE::AllocTrampoline(14); SKSE::AllocTrampoline(14);
BinkListener::func = SKSE::GetTrampoline().write_call<5>(target.address(), BinkListener::thunk); BinkListener::func = SKSE::GetTrampoline().write_call<5>(target.address(), BinkListener::thunk);

View File

@ -121,7 +121,7 @@ private:
void static OpenJournal(bool a_bool) void static OpenJournal(bool a_bool)
{ {
using func_t = decltype(&OpenJournal); using func_t = decltype(&OpenJournal);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<func_t> func{ REL::VariantID(52428, 53327, 0x92F0F0) }; REL::Relocation<func_t> func{ REL::VariantID(52428, 53327, 0x92F0F0) };
func(a_bool); func(a_bool);
} }

View File

@ -12,7 +12,7 @@ namespace FlatMapMarkers
inline void Install() inline void Install()
{ {
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<std::uintptr_t> offset{ REL::RelocationID(52224, 53111), REL::Relocate(0x22F, 0x21F) }; REL::Relocation<std::uintptr_t> offset{ REL::RelocationID(52224, 53111), REL::Relocate(0x22F, 0x21F) };
SKSE::AllocTrampoline(14); SKSE::AllocTrampoline(14);
SKSE::GetTrampoline().write_call<5>(offset.address(), &Hook_WorldPtToScreenPt3); SKSE::GetTrampoline().write_call<5>(offset.address(), &Hook_WorldPtToScreenPt3);

View File

@ -19,7 +19,7 @@ namespace ForceBorderless
auto version = REL::Module::get().version(); auto version = REL::Module::get().version();
std::uintptr_t target = 0; std::uintptr_t target = 0;
// Checked: 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
if (version >= REL::Version(1, 6, 1130, 0)) { if (version >= REL::Version(1, 6, 1130, 0)) {
target = REL::Relocation<std::uintptr_t>{ REL::ID(36547), 0xBEA }.address(); target = REL::Relocation<std::uintptr_t>{ REL::ID(36547), 0xBEA }.address();

View File

@ -38,7 +38,7 @@ void HeroMenuPatch::Install(bool aAutoScaleHeroMenu)
} }
// Patch the Quick Stats hotkey to open the menu // Patch the Quick Stats hotkey to open the menu
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(51400, 52249), REL::Relocate(0x41E, 0x421) }; REL::Relocation<std::uintptr_t> target{ REL::RelocationID(51400, 52249), REL::Relocate(0x41E, 0x421) };
REL::safe_fill(target.address(), REL::NOP, 45); REL::safe_fill(target.address(), REL::NOP, 45);

View File

@ -21,7 +21,7 @@ namespace MapMarkerPlacement
void InstallPlacementDiscoveredFix() void InstallPlacementDiscoveredFix()
{ {
// Place a marker, if a location has been discovered and fast travel is disabled // Place a marker, if a location has been discovered and fast travel is disabled
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(52208, 53095), REL::Relocate(0x2C5, 0x328, 0x358) }; REL::Relocation<std::uintptr_t> target{ REL::RelocationID(52208, 53095), REL::Relocate(0x2C5, 0x328, 0x358) };
SKSE::AllocTrampoline(14); SKSE::AllocTrampoline(14);
IsFastTravelEnabled::func = SKSE::GetTrampoline().write_call<5>(target.address(), IsFastTravelEnabled::thunk); IsFastTravelEnabled::func = SKSE::GetTrampoline().write_call<5>(target.address(), IsFastTravelEnabled::thunk);
@ -32,7 +32,7 @@ namespace MapMarkerPlacement
void InstallPlacementUndiscoveredFix() void InstallPlacementUndiscoveredFix()
{ {
// Place a marker without asking, if a location isn't discovered yet // Place a marker without asking, if a location isn't discovered yet
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<std::uintptr_t> target2{ REL::RelocationID(52208, 53095), REL::Relocate(0x17A, 0x183) }; REL::Relocation<std::uintptr_t> target2{ REL::RelocationID(52208, 53095), REL::Relocate(0x17A, 0x183) };
std::uint8_t code[] = { 0xB0, 0x01, REL::NOP, REL::NOP, REL::NOP }; // mov al,0x1 std::uint8_t code[] = { 0xB0, 0x01, REL::NOP, REL::NOP, REL::NOP }; // mov al,0x1
REL::safe_write(target2.address(), code, sizeof(code)); REL::safe_write(target2.address(), code, sizeof(code));

View File

@ -89,7 +89,7 @@ namespace MenuAspectRatioFix
// The one menu with no direct LoadMovie call site: its ctor queues a task through the // The one menu with no direct LoadMovie call site: its ctor queues a task through the
// deferred-load wrapper, and the task's Run() calls the hooked LoadMovie. kNoBorder up // deferred-load wrapper, and the task's Run() calls the hooked LoadMovie. kNoBorder up
// to 1.6.640, kExactFit from 1.6.1130 (checked 1.5.97, 1.6.640, 1.6.117x, 1.7.99). // to 1.6.640, kExactFit from 1.6.1130 (checked 1.5.97, 1.6.640, 1.6.117x, 1.7.99, 1.7.104).
{ "StatsMenu"sv, ScaleModeType::kNoBorder }, { "StatsMenu"sv, ScaleModeType::kNoBorder },
{ "TrainingMenu"sv, ScaleModeType::kNoBorder }, { "TrainingMenu"sv, ScaleModeType::kNoBorder },
@ -210,7 +210,7 @@ namespace MenuAspectRatioFix
{ {
g_restoreScaleModes = REL::Module::get().version() >= REL::Version(1, 6, 1130, 0); g_restoreScaleModes = REL::Module::get().version() >= REL::Version(1, 6, 1130, 0);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
const auto target = REL::RelocationID(80302, 82325).address(); const auto target = REL::RelocationID(80302, 82325).address();
// mov rax,rsp followed by one argument spill - 7 bytes of position-independent code, which // mov rax,rsp followed by one argument spill - 7 bytes of position-independent code, which

View File

@ -11,7 +11,7 @@ private:
static void OpenMenu(RE::IMenu* tweenMenu, std::int32_t index) static void OpenMenu(RE::IMenu* tweenMenu, std::int32_t index)
{ {
using func_t = decltype(&OpenMenu); using func_t = decltype(&OpenMenu);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<func_t> func{ REL::VariantID(51845, 52718, 0x8FE7E0) }; REL::Relocation<func_t> func{ REL::VariantID(51845, 52718, 0x8FE7E0) };
return func(tweenMenu, index); return func(tweenMenu, index);
} }

View File

@ -253,7 +253,7 @@ inline void CloseTweenMenu()
{ {
if (RE::UI::GetSingleton()->IsMenuOpen(RE::TweenMenu::MENU_NAME)) { if (RE::UI::GetSingleton()->IsMenuOpen(RE::TweenMenu::MENU_NAME)) {
using func_t = decltype(&CloseTweenMenu); using func_t = decltype(&CloseTweenMenu);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99 // Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179, 1.7.99, 1.7.104
REL::Relocation<func_t> func{ REL::VariantID(51839, 52711, 0x8FE180) }; REL::Relocation<func_t> func{ REL::VariantID(51839, 52711, 0x8FE180) };
func(); func();
} }

View File

@ -129,7 +129,7 @@ FetchContent_Declare(
) )
FetchContent_MakeAvailable(spdlog) FetchContent_MakeAvailable(spdlog)
# CommonLibSSE-GG - MIT fork of CommonLibSSE-NG with native 1.7.99 support, # CommonLibSSE-GG - MIT fork of CommonLibSSE-NG with native 1.7.99 and 1.7.104 support,
# pinned commit (SE + AE + VR runtime support). # pinned commit (SE + AE + VR runtime support).
# No engine patches here, so xbyak trampoline support stays off (FORCE flips # No engine patches here, so xbyak trampoline support stays off (FORCE flips
# the stale ON left in caches configured before xbyak was dropped). # the stale ON left in caches configured before xbyak was dropped).
@ -142,7 +142,7 @@ message(STATUS "Fetching CommonLibSSE-GG...")
FetchContent_Declare( FetchContent_Declare(
CommonLibSSE CommonLibSSE
GIT_REPOSITORY https://github.com/eddoursul/CommonLibSSE-GG GIT_REPOSITORY https://github.com/eddoursul/CommonLibSSE-GG
GIT_TAG f017308b341889af9b518aae6966b19db98e16bc GIT_TAG 3aa704ee2de9fdba3a2e77cc08e3d3ed8ea6e00f
) )
FetchContent_MakeAvailable(CommonLibSSE) FetchContent_MakeAvailable(CommonLibSSE)