Jump to content

Recommended Posts

V9 is promoted to release and was renamed. If you already have the beta, there's no difference between it and the current V9. I will leave the V8 download up in case V9 does have any problems. V9 will also be included in the next sexout CORE download as usual.

Link to comment

Had just missed actually patching the hook in.. save and load are working now. New game notification will be a lot more difficult as the address in the source isn't actually correct, but I think we could "live with" that if people are instructed to quit and restart (which will clear the extender) if they want to start a new game. The only problem this will cause is vars not being reset if you start FONV, load a game, and then start a new game.

 

Test results from log file:

tail: nvse_extender.log: file truncated
Received load message with file path Save 20   Wyoming  The Vikki and Vance Casino  02 11 04.fos
Received save message with file path Save 24   Wyoming  The Vikki and Vance Casino  02 11 23.fos
Received save message with file path autosave.fos

Link to comment

Fired off a diff of the changed files in NVSE to the team and to Ian directly. Hopefully this (and maybe newgame notification) can make it into an official NVSE release. Will give them time to look it over and respond while I work on the actual save/load code in the extender before I resort to releasing an 'unofficial' NVSE.

Link to comment
  • 2 weeks later...

I deactivated all the related mods, some I'm assuming this is coming from this NVSE.

 

The message telling me about "deactivating NVLady and JuliaChang esp and use SexoutStore" is really really really annoying and it would be immensely appreciated if it could be removed in the next update.

 

Thank you :)

Link to comment

I deactivated all the related mods' date=' some I'm assuming this is coming from this NVSE.

 

The message telling me about "deactivating NVLady and JuliaChang esp and use SexoutStore" is really really really annoying and it would be immensely appreciated if it could be removed in the next update.

 

Thank you :)

[/quote']

 

That message comes from Sexout, not from the extender, and it's not being removed.

 

In the current beta of Sexout, it's updated to only display that message if you have Pregnancy or SexoutStore active though, in which case, you should heed the warning.

Link to comment

1. The beta removes the message if you don't have preg or store, not the release version.

 

2. If you're still getting the message, you haven't actually disabled sexout. Just unchecking it in the load order will not disable it if you have other mods checked off that need it. The game engine will load it anyway.

Link to comment

Had just missed actually patching the hook in.. save and load are working now. New game notification will be a lot more difficult as the address in the source isn't actually correct' date=' but I think we could "live with" that if people are instructed to quit and restart (which will clear the extender) if they want to start a new game. The only problem this will cause is vars not being reset if you start FONV, load a game, and then start a new game.

 

[/quote']

 

Glad to see it's working. I've been far too busy with work to even play. I should have time in a week or two to help with the extender.

Link to comment

Cool. I'm just waiting on some kind of response from silverlock, so far nothing. If it goes another week without a reply, I'm just going to release it here as a beta. If it goes another 2-4 weeks after that, I may 'officially' fork NVSE and give it a new name. I know they don't want anyone doing that, and I don't really want to do it, but I'm getting tired of waiting and the extender really needs these features released.

Link to comment

Minor update.

 

I have saving fully working in my local working copy. I've opted to save the data as CSV files for now, since I have no complex datatypes in the extender as yet, and it's easier to debug/troubleshoot.

 

The CSV format has three types of rows, always the same number of columns. The files are saved in data\nvse\plugins\Extender\Saves and have the same name as your savegame, with a '.csv' appended, for example "Save 31 Wyoming Goodsprings 02 18 04.fos.csv" is a file just created while testing. The file contents, as a CSV, are pretty straight forward.

 

Here are the contents of the file above, a save made in goodsprings during a sex scene between the player and Sunny.

IX, 0, FalloutNV.esm, 
IX, 1, DeadMoney.esm, 
IX, 2, HonestHearts.esm, 
IX, 3, OldWorldBlues.esm, 
IX, 4, LonesomeRoad.esm, 
IX, 5, MikotoBeauty.esm, 
IX, 6, The Mod Configuration Menu.esp, 
IX, 7, BlueTint.esp, 
IX, 8, KDC_Companions_Removable_Armors.esp, 
IX, 9, UnlimitedCompanions.esp, 
IX, 10, populatedcasino.esp, 
IX, 11, FalloutNVCheatTerminal.esp, 
IX, 12, Centered 3rd Person Camera - Unraised.esp, 
IX, 13, SmallerTalk.esp, 
IX, 14, Type 6.esp, 
IX, 15, bzArmour.esp, 
IX, 16, MikotoBeauty.esp, 
IX, 17, Sexout.esp, 
FO, 1068677, sexout:start::spelltarget, 1068677
FO, 1068677, sexout:start::actora, 1068677
FO, 1068677, sexout:start::actorb, 20
FO, 1068677, sexout:core:partners:a, 1068677
FO, 1068677, sexout:core:partners:b, 20
FO, 20, sexout:core:partners:a, 1068677
FO, 20, sexout:start::spelltarget, 1068677
FO, 20, sexout:core:partners:b, 20
FL, 1068677, sexout:start::duration, 25
FL, 1068677, sexout:start::anima, 231
FL, 1068677, sexout:start::animb, 231
FL, 1068677, sexout:start::animc, 231
FL, 1068677, sexout:core:actors:count, 2
FL, 1068677, sexout:posy, 3126.62
FL, 1068677, sexout:posx, -67833.1
FL, 1068677, sexout:start::bcanoral, 30
FL, 1068677, sexout:start::bcanvaginal, 60
FL, 1068677, sexout:start::bcananal, 10
FL, 1068677, sexout:start::focusz, 8355.8
FL, 1068677, sexout:start::focusy, 3160.85
FL, 1068677, sexout:start::focusx, -67840.4
FL, 1068677, sexout:saver, 1
FL, 1068677, sexout:rotz, 347.947
FL, 1068677, sexout:posz, 8355.8
FL, 20, sexout:rotx, 14.4561
FL, 20, sexout:posx, -67840.4
FL, 20, sexout:start::bcanoral, 30
FL, 20, sexout:start::bcanvaginal, 60
FL, 20, sexout:start::bcananal, 10
FL, 20, sexout:start::focusz, 8355.8
FL, 20, sexout:start::focusx, -67840.4
FL, 20, sexout:start::focusy, 3160.85
FL, 20, sexout:core:actors:count, 2
FL, 20, sexout:saver, 1
FL, 20, sexout:posy, 3160.85
FL, 20, sexout:rotz, 167.947
FL, 20, sexout:posz, 8355.8

 

The first section has records of type IX. This is simply a list of active mods. It's needed during file load to fix references if the load order changed, similar to what the game does internally. The columns are "IX, , , ".

 

The second group are FO (forms), anything set by NX_SetEVFo. Columns are "FO, , , ". The third group is the same, but for floats (NX_SetEVFl).

 

At some point the save format will probably change from CSV to XML, as the data structures internal to the extender get more complex. For now, this will do.

Link to comment

There is an extremely experimental (I hesitate to even call it alpha) version of the extender in the OP, built (in theory anyway) for the NOGORE version of FONV.

 

If you try to use it on any other version, you'll probably crash the game.

 

If you try to use it with the NOGORE version.. well that will probably crash the game too, but I hope not. It's not exactly like I can test it.

 

You NOGORE guys, give it a shot. Let me know. If it crashes, I'll just take it down until I can get myself an NG copy of the game to test with... or you guys can buy the Austrian version. I read that's the 'normal' thing to do over there.

Link to comment

I just looked to see how different it was. Can't use it I'm afraid...

 

Oh.. it's identical to the v9 one, except compiled with the version set to the NG version of FONV, which has a different EXE and thus different offsets for the calls.

 

If you don't have the german version of FONV it won't work, and won't really "look" any different.

 

I will probably be releasing my private built of NVSE itself, as well as a v10 beta of the extender, later today. This will certainly not work with the nogore version, so if there are no responses about this build from nogore users, I will not be supporting that version.. :/

Link to comment

I just did a binary comparison' date=' but there were far too much changes.

May a decompliation next?

 

I'm just currious what exact effect has the recompilation.

[/quote']

 

Uhh... source is available on sourceforge, link is in the OP, though I didn't check in yet. I can do that now.

Link to comment

Actually that wouldn't help you.. you need to look at the NVSE source and the difference between compiling 'Release' and 'Release ng'. That changes the define of RUNTIME_VERSION from the normal release to the NG release. You'll see ifdefs for that all over the NVSE source wherever it interacts with the fallout EXE.

Link to comment

I know. But nothing in your sources SHOULD be affected. So I'm curious what exactly gets affected at the code level.

 

It does, because a lot of the functions called within it are mapped into the exe as entry points. For example ExtractArgs, which every command in NX needs in order to get its argument list, is not actually an NVSE function -- it's a function in the falloutNV that is called via an entrypoint that is different between the normal and NG versions.

Link to comment

This is, really, just a design stupidity by the silverlock guys in some respects. They should have abstracted all these calls into function calls in NVSE itself, which then calls the right entrypoint in the EXE. They didn't, so I need to build an NG specific version of the extender.

Link to comment

This is in GameAPI.cpp:

 

#if RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525

const _ExtractArgs ExtractArgs = (_ExtractArgs)0x005ACCB0;

const _FormHeap_Allocate FormHeap_Allocate = (_FormHeap_Allocate)0x00401000;
const _FormHeap_Free FormHeap_Free = (_FormHeap_Free)0x00401030;

const _LookupFormByID LookupFormByID = (_LookupFormByID)0x004839C0;
const _CreateFormInstance CreateFormInstance = (_CreateFormInstance)0x00465110;

const _GetSingleton ConsoleManager_GetSingleton = (_GetSingleton)0x0071B160;

const _QueueUIMessage QueueUIMessage = (_QueueUIMessage)0x007052F0;

const _ShowMessageBox ShowMessageBox = (_ShowMessageBox)0x00703E80;
const _ShowMessageBox_Callback ShowMessageBox_Callback = (_ShowMessageBox_Callback)0x005B4A70;
const _ShowMessageBox_pScriptRefID ShowMessageBox_pScriptRefID = (_ShowMessageBox_pScriptRefID)0x011CAC64;
const _ShowMessageBox_button ShowMessageBox_button = (_ShowMessageBox_button)0x0118C684;

const UInt32 * g_TlsIndexPtr = (UInt32 *)0x0126FD98;

#elif RUNTIME_VERSION == RUNTIME_VERSION_1_4_0_525ng

const _ExtractArgs ExtractArgs = (_ExtractArgs)0x005ACE60;

const _FormHeap_Allocate FormHeap_Allocate = (_FormHeap_Allocate)0x00401000;
const _FormHeap_Free FormHeap_Free = (_FormHeap_Free)0x0042F4D0;

const _LookupFormByID LookupFormByID = (_LookupFormByID)0x004849B0;
const _CreateFormInstance CreateFormInstance = (_CreateFormInstance)0x00465F10;

const _GetSingleton ConsoleManager_GetSingleton = (_GetSingleton)0x0071B110;

const _QueueUIMessage QueueUIMessage = (_QueueUIMessage)0x00705220;

const _ShowMessageBox ShowMessageBox = (_ShowMessageBox)0x00703DB0;
const _ShowMessageBox_Callback ShowMessageBox_Callback = (_ShowMessageBox_Callback)0x005B4B10;
const _ShowMessageBox_pScriptRefID ShowMessageBox_pScriptRefID = (_ShowMessageBox_pScriptRefID)0x011CAC64;
const _ShowMessageBox_button ShowMessageBox_button = (_ShowMessageBox_button)0x0118C684;

const UInt32 * g_TlsIndexPtr = (UInt32 *)0x0126FD98;

#else

#error RUNTIME_VERSION unknown

#endif

Link to comment

On the possibility always exists that there ARE appropriate functions, and I'm just calling the wrong ones. It's not like this goddamn thing is actually documented -- especially when it comes to writing plugins for it. I just have to wing it based off what I see in NVSE itself. The above is probably an example of that; there's an ExtractArgsEx (which I do use in one spot) that is an NVSE call.

 

If I change all my functions to use that, then that eliminates one difference in an extender for NG vs not. I don't know if all the functions I'm calling have such analogues.

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use