prideslayer Posted August 17, 2012 Author Posted August 17, 2012 All right! Now its logical (and the chrashes too in fact). If you want to look through the code on sourceforge and see if there are others like ExtractArgs that I'm using wrong and can change to an "NG friendly" call' date=' I would appreciate it immensely. It's something I obviously need to do, but time is always short.. I would [i']love[/i] to not have to release different versions of the extender for NG -- it's a real pain in the ass.
prideslayer Posted August 17, 2012 Author Posted August 17, 2012 I've tossed up a v10 BETA (really an alpha) of my working copy that.. - Has all the save/load stuff ifdef'd out. This *should* prevent it from crashing since none of you have my modded NVSE yet. - Switches all ExtractArgs calls to ExtractArgsEx. This is the only gore/nogore thing I have noticed so far, actually. Test this one with normal and nogore FONV please!
prideslayer Posted August 17, 2012 Author Posted August 17, 2012 I'm impatient, I know, but the 4 of you with the v10 beta.. I'm assuming at the least that you are not NG users, and that it's working fine with north american FONV? If any of you are NG users.. is it still CTDing for you or what?
KainsChylde Posted August 17, 2012 Posted August 17, 2012 I'm in the midst of a full reinstall after that damn crash where you meet Willow. Nothing short fixed it. I'll start with just NVSE and base sexout and let you know in a few minutes.
prideslayer Posted August 17, 2012 Author Posted August 17, 2012 OK. I should've tested it myself before uploading, but when I built it I wasn't in a position to actually start the game.
KainsChylde Posted August 17, 2012 Posted August 17, 2012 Want me to test the beta sexout esm or release?
prideslayer Posted August 17, 2012 Author Posted August 17, 2012 Either one.. if this is broken for the normal FONV, it'll probably just explode when you try to start the game. If not just do a save and a load too if you wouldn't mind. If that works, then everything should be working. Quickly.. before ze germans get here.
KainsChylde Posted August 18, 2012 Posted August 18, 2012 Ok, loaded a clean install unmodded game with NVSE and the extender only. Loaded fine, made it through character creation (Been playing with Lean Start Gear for so long vanilla startup is painful BTW) and across Goodsprings with no problems. Trying to install sexout to test a basic run that actually uses the extender, but package manager is hating me ATM. Gimme another few minutes.
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 Thanks man, no big hurry. I was just disappointed (or happy) that there were some downloads and no complaints yet. Then it turns out, I guess, people are just downloading for the sake of downloading before they are actually using the thing.
KainsChylde Posted August 18, 2012 Posted August 18, 2012 Ok, got package manager to cooperate. Basic sexout (sexout, slavery, SCR, tryouts, sexoutsex) and lean start gear (could not go through vanilla startup again). Fresh start, character creation, save and load, and making Sunny walk funny all worked fine. Not an extensive test by any means but at least it didn't blow up on launch or relaunch. Hope that's enough to tell you what you needed, if you need more let me know. No more vanilla though, I'm not playing anymore until I get at least my basics loaded.
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 Yeah that's enough for the normal install, thanks. Hopefully one of the other people that downloaded it has the "nogore" fonv+nvse and can report in.
jaam Posted August 18, 2012 Posted August 18, 2012 All right! Now its logical (and the chrashes too in fact). If you want to look through the code on sourceforge and see if there are others like ExtractArgs that I'm using wrong and can change to an "NG friendly" call' date=' I would appreciate it immensely. It's something I obviously need to do, but time is always short.. I would [i']love[/i] to not have to release different versions of the extender for NG -- it's a real pain in the ass. I am having issues with the conversion of the project. I will have to rebuild the vcproj from scratch (different edition of VS 2010).
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 VS' version/edition stuff is a nightmare and always has been. I'm considering rewriting the extender DLL in some other language just to get away from the VS issues. I went through the same pain when I started the project, as the example plugin was done in the free version of 2k5 or something and the conversion to 2k10 pro was not completely smooth.
jaam Posted August 18, 2012 Posted August 18, 2012 I realized I only had to change the common project which I already had. Your vcxproj I could open directly. Error was when trying to change it to a vcproj. But I'm doing 4 things at the same time and have a race about to start on TV so it will have to wait some more. At first glance, the number of cpp included is "frightening"! Particulary all those xxxExtraxxx full of initiator offsets You also have the RTTI includes! Way I see would be: to replace all IFDEF by if (isNoGore) but that's nightmarish! copout to a fomod installation option/question (error prone) do TWO versions, install both, and close the wrong one during NVSEPlugin_Query (it works very well for runtime only or geck only plugins)
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 Well, I've pulled ALL the NVSE .cpps out, as those are certainly the problem.. or so I would think? I'm left with just the .h files in the project list. Compilation goes fine but linking fails, as expected, with a buttload of unresolved external symbols. That's why I added all those .cpp's to begin with. There must be a better way (meaning "the right way") for me to compile the plugin that doesn't require me to link in all the nvse .OBJ files, which are different depending on the gore/nogore issue. If not the option 3 sounds the most appealing, but I'm not seeing any other plugins out there doing this -- the one that comes with project nevada only has one DLL.. there's only one geck powerup DLL.. etc. They're doing something right that I'm doing wrong, I just don't know what it is.
jaam Posted August 18, 2012 Posted August 18, 2012 Well' date=' I've pulled ALL the NVSE .cpps out, as those are certainly the problem.. or so I would think? I'm left with just the .h files in the project list. Compilation goes fine but linking fails, as expected, with a buttload of unresolved external symbols. That's why I added all those .cpp's to begin with. There must be a better way (meaning "the right way") for me to compile the plugin that doesn't require me to link in all the nvse .OBJ files, which are different depending on the gore/nogore issue. If not the option 3 sounds the most appealing, but I'm not seeing any other plugins out there doing this -- the one that comes with project nevada only has one DLL.. there's only one geck powerup DLL.. etc. They're doing something right that I'm doing wrong, I just don't know what it is. [/quote'] GeckPU is a Geck only plugin so it doesn't care. For Nevada, asks them explicitly if they support noGore. in fact : http://forums.nexusmods.com/index.php?showtopic=296312&view=findpost&p=5967508
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 ARghhhh ok then, to hell with this wild goose chase. Gore and Nogore versions it is.
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 Got the extender building right.. now just looking for some kind of runtime nogore check I can do to make #3 a reality. The loader knows if it's nogore or not, but it doesn't look like nvse does. Going to try this and see how it does.. #if RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525 // return false if nvse reporsts NG if (nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525) { _MESSAGE("Standard extender aborting in NOGORE FONV"); return false; } #elif RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525ng // return false if nvse does not report NG if (nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525ng) { _MESSAGE("NOGORE extender aborting in standard FONV"); return false; } #endif
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 Well that's no good.. nvse->runtimeVersion == 0. Search through the source says it's defined but never used. Hmm.
jaam Posted August 18, 2012 Posted August 18, 2012 Well that's no good.. nvse->runtimeVersion == 0. Search through the source says it's defined but never used. Hmm. that is from one of my plugin. // version checks if(!nvse->isEditor) { if(nvse->nvseVersion < NVSE_VERSION_INTEGER) { _ERROR("NVSE version too old (got %08X expected at least %08X)", nvse->nvseVersion, NVSE_VERSION_INTEGER); return false; } if(nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525) { _ERROR("incorrect runtime version (got %08X need %08X)", nvse->runtimeVersion, RUNTIME_VERSION_1_4_0_525); return false; } } else { // not needed for Editor return false; } it works for me.
prideslayer Posted August 18, 2012 Author Posted August 18, 2012 Did you compile a custom NVSE that fills out nvse->runtimeVersion? This: #if RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525 // return false if nvse reporsts NG if (nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525) { _MESSAGE("Standard extender aborting in NOGORE FONV"); _MESSAGE("%x != %x", nvse->runtimeVersion, RUNTIME_VERSION_1_4_0_525); return false; } #elif RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525ng // return false if nvse does not report NG if (nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525ng) { _MESSAGE("NOGORE extender aborting in standard FONV"); return false; } #endif Results in this in the log: Standard extender aborting in NOGORE FONV 0 != 40020d0
jaam Posted August 18, 2012 Posted August 18, 2012 Did you compile a custom NVSE that fills out nvse->runtimeVersion? This: #if RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525 // return false if nvse reporsts NG if (nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525) { _MESSAGE("Standard extender aborting in NOGORE FONV"); _MESSAGE("%x != %x", nvse->runtimeVersion, RUNTIME_VERSION_1_4_0_525); return false; } #elif RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525ng // return false if nvse does not report NG if (nvse->runtimeVersion != RUNTIME_VERSION_1_4_0_525ng) { _MESSAGE("NOGORE extender aborting in standard FONV"); return false; } #endif Results in this in the log: Standard extender aborting in NOGORE FONV 0 != 40020d0 My NVSE is very custom but the static declaration in pluginmanager.cpp is vanilla static const NVSEInterface g_NVSEInterface = { PACKED_NVSE_VERSION, #ifdef RUNTIME RUNTIME_VERSION, 0, 0, #else 0, EDITOR_VERSION, 1, #endif PluginManager::RegisterCommand, PluginManager::SetOpcodeBase, PluginManager::QueryInterface, PluginManager::GetPluginHandle }; RUNTIME_VERSION for nvse_xxx.dll is a preprocessor definition in the dll project ! It should not be possible for it to be 0. That would make the whole project impossible to build.
jaam Posted August 18, 2012 Posted August 18, 2012 By the way a runtime check is done in the example plugin. Can you build and load it ?
prideslayer Posted August 19, 2012 Author Posted August 19, 2012 It occured to me while watching television that it is probably zero because... I was only 'testing' by firing up the GECK. *facepalm*. Obviously, no runtime-version there. I'm fixing up the test now to be smarter about the version check, and to only do that bit if it's in the game and not the editor. Good times.
jaam Posted August 19, 2012 Posted August 19, 2012 It occured to me while watching television that it is probably zero because... I was only 'testing' by firing up the GECK. *facepalm*. Obviously' date=' no runtime-version there. I'm fixing up the test now to be smarter about the version check, and to only do that bit if it's in the game and not the editor. Good times. [/quote'] I almost asked if you were not compiling the geck version but it was not coherent with your project... Good night (for me)
Recommended Posts