nopse0 Posted September 17, 2024 Author Posted September 17, 2024 15 minutes ago, kamithemoon said: Following your instructions and deleting the original .dll and pdb in favor of the new .dll from the newest VR release causes it to not load the game anymore, same as it did previously. However, I may have committed a noob mistake... It doesn't appear to be mentioned on your LL page but your Github link lists a number of requirements that I was not aware of. Particularly, CMake being added to PATH and Vcpkg being added to Vcpkg_root. I honestly have no idea what any of that means or how to do it =P. I don't even know if I have Powershell or not, though I think that comes built in with Win 11. No, this requirements are only needed for building the project. Runtime dependencies are only the dll's listed above. Do you still get a missing dependency dialog ? Or does the program start and then crash ? In the latter case, do you have a SlaveTatsNG.log file in your 'My Games' folder ? I don't expect that it works now (how could it, the NiOverride function addresses are wrong), I am only interested in the log file to see the dumped native function addresses.
kamithemoon Posted September 17, 2024 Posted September 17, 2024 (edited) 49 minutes ago, nopse0 said: No, this requirements are only needed for building the project. Runtime dependencies are only the dll's listed above. Do you still get a missing dependency dialog ? Or does the program start and then crash ? In the latter case, do you have a SlaveTatsNG.log file in your 'My Games' folder ? I don't expect that it works now (how could it, the NiOverride function addresses are wrong), I am only interested in the log file to see the dumped native function addresses. It behaves now as it did without the VR patch. The game doesn't crash but fails to load and Task Manager shows it as using 0% of resources. MO2 no longer reports a missing dependency however, that might just be because the game failed to load so it couldn't check. It did provide a log, however, the log was exactly as it was before: [12:24:06:384] SlaveTatsNG v0-1-0-0 [12:24:06:384] Load data/skse/plugins/SlaveTatsNG.ini, result = 0 [12:24:06:385] Game version : 1-4-15-1 [12:24:06:739] JContainers Plugin Name seems to be: JContainersVR Oh, I just noticed that line 2 is different. Edited September 17, 2024 by kamithemoon
Pukuripo Posted September 18, 2024 Posted September 18, 2024 I've got a problem where Feet only shows the last selected texture. Is this only me?
nopse0 Posted September 18, 2024 Author Posted September 18, 2024 (edited) 10 hours ago, kamithemoon said: It behaves now as it did without the VR patch. The game doesn't crash but fails to load and Task Manager shows it as using 0% of resources. MO2 no longer reports a missing dependency however, that might just be because the game failed to load so it couldn't check. It did provide a log, however, the log was exactly as it was before: [12:24:06:384] SlaveTatsNG v0-1-0-0 [12:24:06:384] Load data/skse/plugins/SlaveTatsNG.ini, result = 0 [12:24:06:385] Game version : 1-4-15-1 [12:24:06:739] JContainers Plugin Name seems to be: JContainersVR Oh, I just noticed that line 2 is different. Yes, it loads the dll now, no missing dependency, that's fine. It seems that the whole SKSE messaging (see https://skyrim.dev/skse/system-messages) at plugin initialization doesn't work on VR, or works differently, or the program sort of crashes before those messages are send. Neither the listener registered in kPostLoad gets a message with the JContainers root interface, nor do I get a kDataLoaded message (one would see this in the log). Maybe I find the source code of a CommonLibSSE-NG plugin which does something similiar and works on VR (I doubt it, though, most plugins do more fancy stuff than using the reflection interface of JContainers). Edit: Added more logger::info's to the messagingHook function to see how far it gets Edited September 18, 2024 by nopse0
kamithemoon Posted September 18, 2024 Posted September 18, 2024 7 hours ago, nopse0 said: Maybe I find the source code of a CommonLibSSE-NG plugin which does something similiar and works on VR (I doubt it, though, most plugins do more fancy stuff than using the reflection interface of JContainers). Edit: Added more logger::info's to the messagingHook function to see how far it gets Honestly, it's okay, and I appreciate you spending time to try and support VR but not everything will work in VR and that's just something VR players have learned to accept, and I'm sure there's far more interesting things you need to develop for flatrim. I'm also currently using PapyrusTweaksNG who's experimental settings does make SlaveTats applications lightning fast. It comes with other issues but I can't NOT use it as it fixes far more then it breaks.
nopse0 Posted September 18, 2024 Author Posted September 18, 2024 3 hours ago, lordfirefly73 said: I'm getting this error message SlaveTatsNG-0.4.0 is the "official" release, and works (at least for me) on 1.5.97 and 1.6.1170. Are you on GOG ?
nopse0 Posted September 18, 2024 Author Posted September 18, 2024 4 hours ago, kamithemoon said: Honestly, it's okay, and I appreciate you spending time to try and support VR but not everything will work in VR and that's just something VR players have learned to accept, and I'm sure there's far more interesting things you need to develop for flatrim. I'm also currently using PapyrusTweaksNG who's experimental settings does make SlaveTats applications lightning fast. It comes with other issues but I can't NOT use it as it fixes far more then it breaks. Yes, frustrating, but true. One last question, do you have the VR address library installed ? this is required.
kamithemoon Posted September 19, 2024 Posted September 19, 2024 5 hours ago, nopse0 said: Yes, frustrating, but true. One last question, do you have the VR address library installed ? this is required. Yep. VR Address Library is required for a lot of mods. I keep mine up to date.
lordfirefly73 Posted September 19, 2024 Posted September 19, 2024 (edited) 18 hours ago, nopse0 said: SlaveTatsNG-0.4.0 is the "official" release, and works (at least for me) on 1.5.97 and 1.6.1170. Are you on GOG ? It's ok I think I found the problem for some reason my C++ needed repairing and that was what was making that Error pop up Edited September 19, 2024 by lordfirefly73
ebbluminous Posted September 19, 2024 Posted September 19, 2024 2 hours ago, Pukuripo said: Don't ignore my questions... You only posted yesterday your question. It's quite possible that someone with the answer has not seen it yet aka have some patience. Although with the demanding people answer you asap attitude... Gonna put you on ignore and so ignore anything you say now...
nopse0 Posted September 20, 2024 Author Posted September 20, 2024 (edited) 15 hours ago, Pukuripo said: Don't ignore my questions... For me, it's ok. I have 6 feet tats in slavetats_cache.json and I can choose all of them all of them in the MCM: Edited September 20, 2024 by nopse0
Pukuripo Posted September 20, 2024 Posted September 20, 2024 24 minutes ago, nopse0 said: 私の場合は、問題ありません。slavetats_cache.json に 6 つの足のタトゥーがあり、MCM でそれらすべてを選択できます。 (I'm using a translator so it may not come across well) First of all, thank you for answering my question. My question didn't come across well, so I'll write it again. I can see and select what you want to use in Slot1 and Slot2 as an example. As an example, you can select what you want to use for Slot1 and Slot2. But only what you select for one of the slots will actually be reflected in the other slot. In other words, what you select for the other Slot will be ignored. Translated with DeepL.com (free version)
nopse0 Posted September 20, 2024 Author Posted September 20, 2024 24 minutes ago, Pukuripo said: (I'm using a translator so it may not come across well) First of all, thank you for answering my question. My question didn't come across well, so I'll write it again. I can see and select what you want to use in Slot1 and Slot2 as an example. As an example, you can select what you want to use for Slot1 and Slot2. But only what you select for one of the slots will actually be reflected in the other slot. In other words, what you select for the other Slot will be ignored. Translated with DeepL.com (free version) Thank you, found the bug, easy to see, if you know what you are looking for.
segaegae Posted September 20, 2024 Posted September 20, 2024 [13:04:28:358] SlaveTatsNG v0-1-0-0 [13:04:28:358] Load data/skse/plugins/SlaveTatsNG.ini, result = 0 [13:04:28:358] Game version : 1-4-15-1 [13:04:28:359] JContainers Plugin Name seems to be: JContainersVR [13:04:28:359] a_msg=0x4fe4efecc0, msgtype=1, message_root_interface=1 [13:04:28:359] root_interface=0x1517dd3cfe8 This is my log
segaegae Posted September 20, 2024 Posted September 20, 2024 On 9/18/2024 at 10:12 PM, kamithemoon said: Honestly, it's okay, and I appreciate you spending time to try and support VR but not everything will work in VR and that's just something VR players have learned to accept, and I'm sure there's far more interesting things you need to develop for flatrim. I'm also currently using PapyrusTweaksNG who's experimental settings does make SlaveTats applications lightning fast. It comes with other issues but I can't NOT use it as it fixes far more then it breaks. I believe many thought the same about esl support last year.
Deliah Blue Posted September 20, 2024 Posted September 20, 2024 No tattoos are showing up for me at all in the mcm when I install this. Running GOG version. [21:53:05:051] Hello World Test Version [21:53:05:051] SlaveTatsNG v0-5-0-0 [21:53:05:051] Game version : 1-6-1179-1 [21:53:08:525] JContainers Plugin Name seems to be: JContainers64 [21:53:08:525] Failed to register messaging listener for JContainers64 [21:55:15:473] SKEE interface map found [21:55:15:473] NiOverride interface version is: 2 [21:55:15:473] Minimum supported NiOverride interface version is: 2 [21:55:15:473] Found NiOverride interface version is supported, will use interface [21:55:15:473] Using NiOverride interface [21:55:15:473] Loaded Data/SKSE/Plugins/skee64.ini [21:55:15:473] # Overlay: 10 3 3 3 [21:55:26:984] SlaveTats: Beginning synchronization for Veronica [21:55:26:985] According to JFormDB, nothing ´has changed. Cancelling synchronization. [21:55:28:158] acquire_cache(): cache is 0 [21:55:28:158] Asked to add a tattoo (tattoo = 0) [21:55:28:158] Tattoo is undefined (0) [21:55:28:158] result is false
nopse0 Posted September 20, 2024 Author Posted September 20, 2024 1 hour ago, Deliah Blue said: No tattoos are showing up for me at all in the mcm when I install this. Running GOG version. [21:53:05:051] Hello World Test Version [21:53:05:051] SlaveTatsNG v0-5-0-0 [21:53:05:051] Game version : 1-6-1179-1 [21:53:08:525] JContainers Plugin Name seems to be: JContainers64 [21:53:08:525] Failed to register messaging listener for JContainers64 [21:55:15:473] SKEE interface map found [21:55:15:473] NiOverride interface version is: 2 [21:55:15:473] Minimum supported NiOverride interface version is: 2 [21:55:15:473] Found NiOverride interface version is supported, will use interface [21:55:15:473] Using NiOverride interface [21:55:15:473] Loaded Data/SKSE/Plugins/skee64.ini [21:55:15:473] # Overlay: 10 3 3 3 [21:55:26:984] SlaveTats: Beginning synchronization for Veronica [21:55:26:985] According to JFormDB, nothing ´has changed. Cancelling synchronization. [21:55:28:158] acquire_cache(): cache is 0 [21:55:28:158] Asked to add a tattoo (tattoo = 0) [21:55:28:158] Tattoo is undefined (0) [21:55:28:158] result is false I think that's an easy one. The problem is this: "[21:53:08:525] Failed to register messaging listener for JContainers64" Plugin name is wrong, must be JContainersGOG. This comes because of this: std::string getJContainersPluginName() { auto patchVersion = REL::Module::get().version().patch(); std::string pluginName{ "JContainers64" }; if (REL::Module::IsVR()) { pluginName = "JContainersVR"; } else if (patchVersion == 659) { pluginName = "JContainersGOG"; } return pluginName; } Your patch version is 1179, not 659. I copied this stuff from ponzipyramid, I have no idea which Skyrim versions are used in which distributions. Was there a GOG version 1.6.659 before ?
Deliah Blue Posted September 20, 2024 Posted September 20, 2024 39 minutes ago, nopse0 said: I think that's an easy one. The problem is this: "[21:53:08:525] Failed to register messaging listener for JContainers64" Plugin name is wrong, must be JContainersGOG. This comes because of this: std::string getJContainersPluginName() { auto patchVersion = REL::Module::get().version().patch(); std::string pluginName{ "JContainers64" }; if (REL::Module::IsVR()) { pluginName = "JContainersVR"; } else if (patchVersion == 659) { pluginName = "JContainersGOG"; } return pluginName; } Your patch version is 1179, not 659. I copied this stuff from ponzipyramid, I have no idea which Skyrim versions are used in which distributions. Was there a GOG version 1.6.659 before ? Yeah looks like 659 was the first GOG release lol. Seems to be working with the fix you uploaded, thank you!! 1
nopse0 Posted September 20, 2024 Author Posted September 20, 2024 2 hours ago, segaegae said: [13:04:28:358] SlaveTatsNG v0-1-0-0 [13:04:28:358] Load data/skse/plugins/SlaveTatsNG.ini, result = 0 [13:04:28:358] Game version : 1-4-15-1 [13:04:28:359] JContainers Plugin Name seems to be: JContainersVR [13:04:28:359] a_msg=0x4fe4efecc0, msgtype=1, message_root_interface=1 [13:04:28:359] root_interface=0x1517dd3cfe8 This is my log That's interesting, it gets further then I thought. The SKSE messaging and getting the JContainers interface works. The problem is, I think, that JContainers is compiled with a certain SKSE version (2.0.12), and something doesn't fit. One of these operations must fail: auto refl = root->query_interface<jc::reflection_interface>(); auto dom = root->query_interface<jc::domain_interface>(); jc_default_domain = dom->get_default_domain(); Either refl, dom or jc_default_domain is null. I think I will at least add some asserts(), so that Skyrim exits with a proper error, instead of hanging around like a zombie.
nopse0 Posted September 20, 2024 Author Posted September 20, 2024 One idea I had about VR: CommonLibSSE-NG can handle different SKSE versions, that's what it made for. But I don't know how ryobg https://github.com/ryobg/JContainers/tree/master build his JContainersVR version, seems to me he used the current SKSE 2.2.6 sources and added some preprocessor definitions to handle a SKSE 2.0.12 runtime. Maybe he screwed that up, and that's why the JContainers reflection interface doesn't work. You could try to use an older JContainerVR version from 2018 or 2020 or so (this probably screws the JContainer data in your savegame, so cautious).
kamithemoon Posted September 20, 2024 Posted September 20, 2024 3 hours ago, nopse0 said: One idea I had about VR: CommonLibSSE-NG can handle different SKSE versions, that's what it made for. But I don't know how ryobg https://github.com/ryobg/JContainers/tree/master build his JContainersVR version, seems to me he used the current SKSE 2.2.6 sources and added some preprocessor definitions to handle a SKSE 2.0.12 runtime. Maybe he screwed that up, and that's why the JContainers reflection interface doesn't work. You could try to use an older JContainerVR version from 2018 or 2020 or so (this probably screws the JContainer data in your savegame, so cautious). The newest Jcontainers was built to support VR ESL support. So losing that could potentially have drastic consequences for VR ESL mods.
nopse0 Posted September 20, 2024 Author Posted September 20, 2024 Uploaded another VR test with more log output to see how far Skyrim gets before it hangs. Also doing the JContainers initialization now in the "kPostPostLoad" phase, because I suppose that's some sort of deadlock (both the JContainers reflection_interface and domain_interface use a singleton, whose creation is protected by a non-recursive mutex). Try this out on VR and post the SlaveTatsNG.log (skse64.log could also be interesting).
segaegae Posted September 21, 2024 Posted September 21, 2024 3 hours ago, nopse0 said: Uploaded another VR test with more log output to see how far Skyrim gets before it hangs. Also doing the JContainers initialization now in the "kPostPostLoad" phase, because I suppose that's some sort of deadlock (both the JContainers reflection_interface and domain_interface use a singleton, whose creation is protected by a non-recursive mutex). Try this out on VR and post the SlaveTatsNG.log (skse64.log could also be interesting). Now with this version the game starts normally and I could even start a new game. The log is much longer now. I don't think the desired functions are dumped, but maybe much closer. Probably wrong loading order? SlaveTatsNG.log sksevr.log
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now