Absorb + Add whole bunch of other mods#35
Draft
northaxosky wants to merge 11 commits into
Draft
Conversation
Raise the first-person camera position-delta snap threshold 500.0f -> 1100.0f in FirstPersonState::Update so sprint-frame deltas stay on the smooth-interp path instead of snapping. REL::ID{61995,2664490,2664490}; guarded on the 0x43FA0000 (500.0f) pre-write signature. Ported from Sprint Stuttering Fix (AntoniX35, MIT).
Flip the OR-mask imm8 0x04 -> 0x03 in Moon::Init ([node+0x140]) to correct lunar disc orientation. REL::ID{114988,2208804,2208804} + Offset{0x1E2,0x1F7,0x1F7}; guarded on the 04 48 8B 4E 08 window (identical OG/NG/AE). Ported from Moon Rotation Fix (AntoniX35, MIT).
Force the NVFlex collision-geometry conditional jump unconditional (E9 jmp) to skip the FleX collision-shape registration that CTDs on Turing+ / deprecated-FleX drivers. REL::ID{22388,2195766,2195766}; guard verifies the site is a ja rel32 whose target matches the independently computed skip address. Ported from Weapon Debris Crash Fix (AntoniX35, MIT).
Detour BGSSaveLoadUtilities::CompressBuffer to libdeflate zlib (windowBits +15, level 6), the compress complement of the existing bLibDeflate inflate swap. Reproduces the engine contract exactly (srcLen<0x20 -> 0; avail_out=min(dstCap,srcLen-1); 0 = store uncompressed), with a 34-byte prologue guard and an engine-zlib fallback on compressor-alloc failure. REL::ID{104318,2228204,2228204}.
Port the High FPS Physics Fix physics-decoupling core (Untie + iFPSClamp=0 + the per-subsystem speed-fix trampolines) as ModulePhysicsFix across OG 1.10.163 / NG 1.10.984 / AE 1.11.221. Each site is byte-signature guarded so a bad resolve no-ops; OG and NG/AE use separate caves where the engine registers/lengths diverge; per-fix toggles live under [HighFPSPhysics]. Installs at kGameDataReady so iFPSClamp resolves; trampoline reserve raised to 4096. Ported from High FPS Physics Fix (AntoniX35, MIT). FixLoadingModel and the limiter/window/OSD subsystems are out of scope.
Add the toml entries and known-key validation for bSprintStutter, bMoonRotation, bWeaponDebrisCrash, bSaveCompression, bPhysicsFix, and the [HighFPSPhysics] per-fix sub-toggles. They were running on their defaults but were missing from Addictol.toml and AdConfigValidation, so they were not visible or editable.
Cut the explanatory comments down to rare, single-line notes; the WARN logs and code already document the guards.
bLoadScreen now applies DisableBlackLoadingScreens, DisableAnimationOnLoadingScreens and PostloadingMenuSpeed itself (byte-sig guarded, per-runtime), so it no longer requires HighFPSPhysicsFix.dll or sniffs its bytes; the ultra-wide clear keys off the new toggles. Ported from High FPS Physics Fix (AntoniX35, MIT).
northaxosky
marked this pull request as draft
June 23, 2026 08:35
Perchik71
reviewed
Jun 23, 2026
| bool ModuleSprintStutter::DoInstall([[maybe_unused]] F4SE::MessagingInterface::Message* a_msg) noexcept | ||
| { | ||
| // Raise the FirstPersonState::Update camera snap threshold 500.0f -> 1100.0f so sprint frames stay on the smooth path instead of hitching. | ||
| const auto target = REL::Relocation<std::uintptr_t>{ REL::ID{ 61995, 2664490, 2664490 } }.address(); |
Contributor
There was a problem hiding this comment.
Why duplicate the ID? 61995, 2664490 enough
Perchik71
reviewed
Jun 23, 2026
| static constexpr std::int32_t Magic1 = 0x426b4b44; // 58.8235 | ||
| static constexpr std::int32_t Magic2 = 0xc26b4b44; // -58.8235 | ||
|
|
||
| [[nodiscard]] static bool VerifyBytes(std::uintptr_t a_addr, std::initializer_list<std::uint8_t> a_sig) noexcept |
Contributor
There was a problem hiding this comment.
needs add into shared-lib
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Standalone fixes/changes
High FPS Physics Fix
[HighFPSPhysics])bLoadScreen; drops the external dllfUpdateBudgetMS(bDynamicUpdateBudget), orthogonal tobBakaMaxPapyrusOpsIDXGISwapChain::Presenthook (runtime-agnostic, no per-version RE)