Added support for SSE 1.7.104
This commit is contained in:
parent
9658c9b1f5
commit
874b5faf2e
@ -7,7 +7,7 @@ Beware, spoilers ahead!
|
||||
|
||||
|
||||
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 widescreen support.
|
||||
- Added SkyUI 6.0 support.
|
||||
|
||||
@ -136,7 +136,7 @@ FetchContent_Declare(
|
||||
)
|
||||
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).
|
||||
set(SKSE_SUPPORT_XBYAK ON CACHE BOOL " " FORCE)
|
||||
set(ENABLE_SKYRIM_SE ON CACHE BOOL " " FORCE)
|
||||
@ -147,7 +147,7 @@ message(STATUS "Fetching CommonLibSSE-GG...")
|
||||
FetchContent_Declare(
|
||||
CommonLibSSE
|
||||
GIT_REPOSITORY https://github.com/eddoursul/CommonLibSSE-GG
|
||||
GIT_TAG f017308b341889af9b518aae6966b19db98e16bc
|
||||
GIT_TAG 3aa704ee2de9fdba3a2e77cc08e3d3ed8ea6e00f
|
||||
)
|
||||
FetchContent_MakeAvailable(CommonLibSSE)
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ namespace AchievementFix
|
||||
if (REL::Module::IsVR()) {
|
||||
target = REL::Offset(0x17FB90);
|
||||
} 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);
|
||||
} else {
|
||||
// Checked: 1.5.97, 1.6.640, 1.6.659
|
||||
|
||||
@ -35,7 +35,7 @@ namespace BinkInterruptPatch
|
||||
|
||||
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) };
|
||||
SKSE::AllocTrampoline(14);
|
||||
BinkListener::func = SKSE::GetTrampoline().write_call<5>(target.address(), BinkListener::thunk);
|
||||
|
||||
@ -121,7 +121,7 @@ private:
|
||||
void static OpenJournal(bool a_bool)
|
||||
{
|
||||
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) };
|
||||
func(a_bool);
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace FlatMapMarkers
|
||||
|
||||
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) };
|
||||
SKSE::AllocTrampoline(14);
|
||||
SKSE::GetTrampoline().write_call<5>(offset.address(), &Hook_WorldPtToScreenPt3);
|
||||
|
||||
@ -19,7 +19,7 @@ namespace ForceBorderless
|
||||
auto version = REL::Module::get().version();
|
||||
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)) {
|
||||
target = REL::Relocation<std::uintptr_t>{ REL::ID(36547), 0xBEA }.address();
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ void HeroMenuPatch::Install(bool aAutoScaleHeroMenu)
|
||||
}
|
||||
|
||||
// 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::safe_fill(target.address(), REL::NOP, 45);
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ namespace MapMarkerPlacement
|
||||
void InstallPlacementDiscoveredFix()
|
||||
{
|
||||
// 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) };
|
||||
SKSE::AllocTrampoline(14);
|
||||
IsFastTravelEnabled::func = SKSE::GetTrampoline().write_call<5>(target.address(), IsFastTravelEnabled::thunk);
|
||||
@ -32,7 +32,7 @@ namespace MapMarkerPlacement
|
||||
void InstallPlacementUndiscoveredFix()
|
||||
{
|
||||
// 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) };
|
||||
std::uint8_t code[] = { 0xB0, 0x01, REL::NOP, REL::NOP, REL::NOP }; // mov al,0x1
|
||||
REL::safe_write(target2.address(), code, sizeof(code));
|
||||
|
||||
@ -89,7 +89,7 @@ namespace MenuAspectRatioFix
|
||||
|
||||
// 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
|
||||
// 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 },
|
||||
{ "TrainingMenu"sv, ScaleModeType::kNoBorder },
|
||||
|
||||
@ -210,7 +210,7 @@ namespace MenuAspectRatioFix
|
||||
{
|
||||
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();
|
||||
|
||||
// mov rax,rsp followed by one argument spill - 7 bytes of position-independent code, which
|
||||
|
||||
@ -11,7 +11,7 @@ private:
|
||||
static void OpenMenu(RE::IMenu* tweenMenu, std::int32_t index)
|
||||
{
|
||||
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) };
|
||||
return func(tweenMenu, index);
|
||||
}
|
||||
|
||||
@ -253,7 +253,7 @@ inline void CloseTweenMenu()
|
||||
{
|
||||
if (RE::UI::GetSingleton()->IsMenuOpen(RE::TweenMenu::MENU_NAME)) {
|
||||
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) };
|
||||
func();
|
||||
}
|
||||
|
||||
@ -129,7 +129,7 @@ FetchContent_Declare(
|
||||
)
|
||||
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).
|
||||
# No engine patches here, so xbyak trampoline support stays off (FORCE flips
|
||||
# the stale ON left in caches configured before xbyak was dropped).
|
||||
@ -142,7 +142,7 @@ message(STATUS "Fetching CommonLibSSE-GG...")
|
||||
FetchContent_Declare(
|
||||
CommonLibSSE
|
||||
GIT_REPOSITORY https://github.com/eddoursul/CommonLibSSE-GG
|
||||
GIT_TAG f017308b341889af9b518aae6966b19db98e16bc
|
||||
GIT_TAG 3aa704ee2de9fdba3a2e77cc08e3d3ed8ea6e00f
|
||||
)
|
||||
FetchContent_MakeAvailable(CommonLibSSE)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user