Any tips for relocating SSE address offsets to VR edition? #82
-
Hi, I've been trying to port Skyrim Platform to Skyrim VR using CommonLibSSE-NG. I managed to make it compile with a VR configuration. However, it CTD because it fails to find an ID in the Address Library. I believe this is because the mapping file shipped by VR Address Library for SKSEVR lacks entries for a handful of IDs defined in this file. If I understood it correctly, SSE and VR shares the ID so in theory, I can replace the "#ifdefs" from the source using CommonLibSSE-NG's relocation API, which I already did. But the actual address offsets corresponding to those IDs must be present in the mappings database (e.g. However, I'm not a C++ programmer so reverse engineering binary files searching for matching addresses feels to be a daunting task. Currently, offsets for these referenced IDs are missing: inline REL::Relocation<std::uintptr_t> SendEvent{ REL::ID(98077) };
inline REL::Relocation<std::uintptr_t> DrawSheatheWeaponPC{ REL::ID(40232) };
inline REL::Relocation<std::uintptr_t> DrawSheatheWeaponActor{ REL::ID(36289) };
inline REL::Relocation<std::uintptr_t> SendAnimation{ REL::ID(37020) };
inline REL::Relocation<std::uintptr_t> ApplyMasksToRenderTargets{ REL::ID(26454) };
inline REL::Relocation<std::uintptr_t> RenderCursorMenu{ REL::ID(32867) };
inline constexpr REL::ID WinMain(35545);
REL::Relocation<RE::ObjectRefHandle*> handle{ REL::ID(514164) };
REL::Relocation<func_t> func{ REL::ID(55622) };
REL::Relocation<func_t> func{ REL::ID(55682) }; // PushActorAway I'm very willing to try, but I need some pointers about where should I start. Any kind of advice would be appreciated. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Please take a look at the readme here. https://github.com/alandtse/vr_address_tools. It has some initial instructions. The issue is the IDs/addresses are the first step. You'll need to be able to review the assembly for both binaries to figure out if the code is the same and if not you may have to port/patch differently. I don't know what platform is doing, but if it's just hooking calls, that may be the easiest. If it's actually patching code, then you may have to learn assembly to perform the patch. Also, what version of Skyrim are they patching? The IDs changed with AE 1.6.x. VR matches SE 1.5.97 addresses. |
Beta Was this translation helpful? Give feedback.
Please take a look at the readme here. https://github.com/alandtse/vr_address_tools. It has some initial instructions. The issue is the IDs/addresses are the first step. You'll need to be able to review the assembly for both binaries to figure out if the code is the same and if not you may have to port/patch differently. I don't know what platform is doing, but if it's just hooking calls, that may be the easiest. If it's actually patching code, then you may have to learn assembly to perform the patch.
Also, what version of Skyrim are they patching? The IDs changed with AE 1.6.x. VR matches SE 1.5.97 addresses.