Upcoming mod tool

Post » Mon Mar 14, 2011 7:59 pm

I agree with Abot that time stamp should be the default 'tie breaker' as that's what the game uses and so it is what most people would expect (if I want mod x to override changes mod y is making I just make sure mod x is newer than mod y, and if that is not the default of this tool then the expected result may not occur). As it stands though, it is easy enough to ensure that time stamp is what is used via the mlox trick listed above.

As far as the INFO ordering question goes, I don't fully understand it all, but I think we are shooting for a most specific to least specific filtering order, so I think it's (based on what you've laid out):



But then I could very easily be wrong, as I haven't read much on the subject.


Well since timestamp does seem important for --load_ini, as before i'll try and get the sorting based on timestamp for it done.


I don't know; Haven't read much on the subject either. It just occurred to me, the way the dialog works. It starts at the top and goes down till it finds a INFO that satisfies all the current requirements/state. That's why choice selections need to be above the one that activates the choice (else possible infinite loop). And the higher requirements being first would be more specific of what it requires. I was trying to find a combination where it wouldn't interfere with the final greeting 9 ''i don't like you' , or greeting 1? beginning 'failed oath of silence'. So long as the less likely ones are on top, and certain orders are satisfied, it should be fine.

Since i seem to have a fix that might have finished (the last bug?) in my dialog merging, it may not be important. Only some time will tell.
User avatar
Liv Staff
 
Posts: 3473
Joined: Wed Oct 25, 2006 10:51 pm

Post » Tue Mar 15, 2011 1:08 am

Version: 1.5
--load_ini sorts files by timestamp.
--no_merge_dialog updated, should ignore dialogs now.
--merge_dialog added, (to compliment --no_merge_dialog)
Dialog's swapped bug updated.
Lowered memory requirements slightly.


K, per request --load_ini does sort by timestamp. It should load them in order that you would get from Morrowind.

Dialog swap bug. A minor fix that identifies a swap and nulls the NNAM, should it already be in a previous section of the dialog, preventing stalling. Also a breakout counter was added, so if the dialog would normally stall, now it just moves slowly till it gets out of it.

--merge_dialog, added in case you used --no_merge_dialog, allowing you to selectively ignore certain plugins dialogs completely.

Internally a few structures have been lowered in size, lower the exe size, and uses a little less memory when loading/working with files.

Feedback still appreciated.
User avatar
xemmybx
 
Posts: 3372
Joined: Thu Jun 22, 2006 2:01 pm

Post » Tue Mar 15, 2011 1:50 am

The new version looks VERY promising. I was able to use --reference on all my of my conflicting plugins without a problem. Dialog merging worked without a freeze but I need to test it a bit more.

--no_merge_dialogs still doesn't work. I can still see all DIAL and INFO records inside the .esp but with working dialog merging this isn't a serious problem.

SmartMerger.exe Morrowind.esm Tribunal.esm Bloodmoon.esm --debug --reference --load_ini asdf.esp will result in a crash after "DIAL_A_MS_BarbarianBooks". Maybe Smartmerger is loading the base .esm files twice. (First with the three .esms before --debug and a second time with --load_ini)
User avatar
Life long Observer
 
Posts: 3476
Joined: Fri Sep 08, 2006 7:07 pm

Post » Tue Mar 15, 2011 1:43 am

The new version looks VERY promising. I was able to use --reference on all my of my conflicting plugins without a problem. Dialog merging worked without a freeze but I need to test it a bit more.

--no_merge_dialogs still doesn't work. I can still see all DIAL and INFO records inside the .esp but with working dialog merging this isn't a serious problem.

SmartMerger.exe Morrowind.esm Tribunal.esm Bloodmoon.esm --debug --reference --load_ini asdf.esp will result in a crash after "DIAL_A_MS_BarbarianBooks". Maybe Smartmerger is loading the base .esm files twice. (First with the three .esms before --debug and a second time with --load_ini)


Honestly --no_merge_dialog wasn't really big on my priorities so i wasn't testing it very much, so sorry on that.

It's good to know it's looking better on this release :)

Technically, Loading a master twice shouldn't be a problem, it will just eat memory until it's done. The identical data should pass safely since it's 'default' data. Morrowind.esm loaded takes 200Mb+ in memory, and after the first three are merged, that's about 300Mb. I'll try adding a check so plugins in the commandline won't be processed twice from --input or --load_ini, (although it remembering anything from the two becomes a little more difficult..). And since i am lacking the other esm's from the upload you sent me, it's a bit harder to confirm. But i'll run it through what i have here and see what happens

Although, i also remember i was intending for it to write a txt file out with the current morrowind.ini file's proper order, so you can modify it and use --input should there be a modification (or flag) you wanted to enable between steps. Probably write it as 'ini_order.txt', always overwrites.
User avatar
Laura Mclean
 
Posts: 3471
Joined: Mon Oct 30, 2006 12:15 pm

Post » Mon Mar 14, 2011 8:06 pm

Well a some bug warnings. Seems the script injection for scripted npc's may cause certain dialog problems. Resolution is just to recompile the script and it works fine. I will be investigating this more later on.

Also to note, I've noticed issues merging NPCS's on NPC's. Although it won't break the game, certain added spells won't be accessible correctly.

Haven't seen any other huge issues on my game.
User avatar
Pixie
 
Posts: 3430
Joined: Sat Oct 07, 2006 4:50 am

Post » Tue Mar 15, 2011 5:18 am

Hi Era Scarecrow,

Also to note, I've noticed issues merging NPCS's on NPC's. Although it won't break the game, certain added spells won't be accessible correctly.

Do you thing you'll be able to fix it?

Another question: If I want to merge 2 mods, for example a mod (mod.esp or mod.esm) and its update patch (patch.esp), containing several fixes... In this case I would like to be sure that all ID/entries modified by the update patch will replace those which are mod.esp. Can I use a sample command like, for example: stmartmerger.exe mod.esp patch.esp newupdated.esp, or several ID/Entries may be "mixed" and not completely replaced by those newer which are in the patch.esp ? (no sure I am clear...)
User avatar
barbara belmonte
 
Posts: 3528
Joined: Fri Apr 06, 2007 6:12 pm

Post » Mon Mar 14, 2011 3:17 pm

Do you thing you'll be able to fix it?

Yes. When i get to programming it again, been enjoying just being able to play after weeks of work.

Another question: If I want to merge 2 mods, for example a mod (mod.esp or mod.esm) and its update patch (patch.esp), containing several fixes... In this case I would like to be sure that all ID/entries modified by the update patch will replace those which are mod.esp. Can I use a sample command like, for example: smartmerger.exe mod.esp patch.esp newupdated.esp, or several ID/Entries may be "mixed" and not completely replaced by those newer which are in the patch.esp ? (no sure I am clear...)


You example looks fine.

If one of them is an esm, then order's less important for two files. If they are both esp's, the later (right side) ones overwrites earlier changes, unless they are already defined in the esm's (as default values). Here's how the logic 'should' work, for records/subrecords/fields:

1) If the right side contains a default value, it is ignored.
2) If both are defaults (masters) then the right side (next file) takes precedence. Both are saved for referencing.
3) If the current/left is the default, and the right side is not, changes are carried over and noted.
4) If the left is not a default, and the right is a default (master), note for referencing and the left side takes precedence.
5) If the left is not a default, and the right is not a default, right side takes precedence.
5b) If changes would be made more than once on a field/group, output a clash warning.
6) If the record/subrecord group was marked deleted previously, and changes are made, it won't be marked deleted anymore.

There's a few more misc rules to handle the more annoying logic and special case scenarios.

If your not sure and know generally where the fixes are, load it in the editor and confirm it. Alternatively, if you put --print_esm_clash then it should output all changes, regardless if they clash.
User avatar
Roisan Sweeney
 
Posts: 3462
Joined: Sun Aug 13, 2006 8:28 pm

Post » Mon Mar 14, 2011 3:02 pm

K, i think it's time to resume work on this. Anyone with more suggestions or issues please post. I think my priority this round will be getting the NPCS bug fixed, and maybe getting the unicode working (assuming it's UTF-8). And if it doesn't take long, maybe doing that land shifting thing tesFaith does. Likely external only, i can only hope it's not too complex. From the looks it doesn't look that complicated, unless i have to worry about interior/exterior teleporting, then it could get a little confusing. We'll find out soon enough.
User avatar
Steeeph
 
Posts: 3443
Joined: Wed Apr 04, 2007 8:28 am

Post » Mon Mar 14, 2011 11:52 pm

a tool for merge mods ? cute tool, is it public released ? where is the download link of v1.5 ? wether the interface is easy to use or not ?
User avatar
Ricky Meehan
 
Posts: 3364
Joined: Wed Jun 27, 2007 5:42 pm

Post » Tue Mar 15, 2011 4:46 am

Seems NPCS and the SM_disabled_fix bugs are easy to fix, so they should be good on the next version.

a tool for merge mods ? cute tool, is it public released ? where is the download link of v1.5 ? wether the interface is easy to use or not ?


http://planetelderscrolls.gamespy.com/View.php?view=Utilities.Detail&id=78

it's public released, and it's commandline only right now. I've been putting off the GUI part for a bit.


Now as for Unicode. I can't seem to extract the german version, and from the patch from what i saw, i don't see anything outside of the normal ascii set. Can anyone provide another non-english mod that i can reference? And no, it doesn't need to be big. One or two dialogs/paragraphs will be more than enough.

EDIT: Actually now that i think about it. Someone who has non-english morrowind, try using the merger and give me feedback on your results. The way UTF-8 unicode works, still requires a positive value for a unicode letter, and all extended ones would not be 0/null, so in theory, this may already work fine.



EDIT: Who was it that said they would help me with decoding the ess/esp/esm files? (Can't seem to find you when i look back...)

I think before i can try to implement tesFaith's land moving/shifting feature i need to understand the door DODT teleporting calls and how morrowind understands them.

Also, the moved references are still somewhat broken, although they don't tell you in the editor or game. If anyone knows how to handle these, let me know.
User avatar
Juliet
 
Posts: 3440
Joined: Fri Jun 23, 2006 12:49 pm

Post » Tue Mar 15, 2011 1:02 am


Can anyone provide another non-english mod that i can reference? And no, it doesn't need to be big. One or two dialogs/paragraphs will be more than enough.
http://www.tesnexus.com/downloads/file.php?id=12795 of Chapels of Vvardenell (IIRC, not much dialogue in there). A http://morromods.wiwiland.net/spip.php?article260 of The Seekers faction. http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=8100 of VGreetings. http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=8396 Books of Morrowind. A mod called http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7943, with English and Russian versions.
User avatar
Svenja Hedrich
 
Posts: 3496
Joined: Mon Apr 23, 2007 3:18 pm

Post » Mon Mar 14, 2011 4:20 pm

http://www.tesnexus.com/downloads/file.php?id=12795 of Chapels of Vvardenell (IIRC, not much dialogue in there). A http://morromods.wiwiland.net/spip.php?article260 of The Seekers faction. http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=8100 of VGreetings. http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=8396 Books of Morrowind. A mod called http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7943, with English and Russian versions.


Well, I've gone through them all. In the instances where UTF-8 should kick in, i don't see them kicking in (or following the utf format). As far as i can tell, it's fixed 8bit-character lengths. The Russian library was likely the most helpful in finding this (and the most unreadable for me). So unless there's a special executable build for unicode, (like for Japanese or something requiring utf-8, which i don't see), then there's not much to do. But on the bright side, it should work fine for non-english mods/versions as far as i can tell. :D
User avatar
Jacob Phillips
 
Posts: 3430
Joined: Tue Aug 14, 2007 9:46 am

Post » Mon Mar 14, 2011 2:37 pm



EDIT: Who was it that said they would help me with decoding the ess/esp/esm files? (Can't seem to find you when i look back...)

I think before i can try to implement tesFaith's land moving/shifting feature i need to understand the door DODT teleporting calls and how morrowind understands them.

Also, the moved references are still somewhat broken, although they don't tell you in the editor or game. If anyone knows how to handle these, let me know.



Have you seen this? This breaks it out quite thoroughly.

http://www.mwmythicmods.com/argent/tech/es_format.html

Edit: There's this one too http://www.mwmythicmods.com/tutorials/MorrowindESPFormat.html

Also, if you really are crazy i think TesFaith comes with the source code.
User avatar
Project
 
Posts: 3490
Joined: Fri May 04, 2007 7:58 am

Post » Mon Mar 14, 2011 11:33 pm

Have you seen this? This breaks it out quite thoroughly.

http://www.mwmythicmods.com/argent/tech/es_format.html

Edit: There's this one too http://www.mwmythicmods.com/tutorials/MorrowindESPFormat.html

Also, if you really are crazy i think TesFaith comes with the source code.


Yes, i based most of my merger on the first one, since i have that whole page printed out for quick reference. I've looked over the second one a few times. I'm just not satisfied with what i see. Going from exterior to interior is easy enough, but interior to exterior (No DNAM), just feel like I'm missing something. I'm sure i'll figure it out.

I may glance over the sources later.

EDIT: Hmmm doing a quick test, it seems the cells are 8191 (8192 makes more sense) in length/width. Using this knowledge, i'll see about testing the land mass moving.

Does everyone want me to release the current 1.6? Or should i try adding a few other features first?
User avatar
Crystal Birch
 
Posts: 3416
Joined: Sat Mar 03, 2007 3:34 pm

Post » Mon Mar 14, 2011 9:47 pm

1) If the right side contains a default value, it is ignored.
2) If both are defaults (masters) then the right side (next file) takes precedence. Both are saved for referencing.
3) If the current/left is the default, and the right side is not, changes are carried over and noted.
4) If the left is not a default, and the right is a default (master), note for referencing and the left side takes precedence.
5) If the left is not a default, and the right is not a default, right side takes precedence.
5b) If changes would be made more than once on a field/group, output a clash warning.
6) If the record/subrecord group was marked deleted previously, and changes are made, it won't be marked deleted anymore.

There's a few more misc rules to handle the more annoying logic and special case scenarios.

If your not sure and know generally where the fixes are, load it in the editor and confirm it. Alternatively, if you put --print_esm_clash then it should output all changes, regardless if they clash.

This is very clear, thank you very much Era Scarecrow. I will go testing smartmerger with non-US mods and check results, will report any issue.

Does everyone want me to release the current 1.6? Or should i try adding a few other features first?

What are the updates included in the 1.6? If they fix previous issues, why not?
User avatar
Sylvia Luciani
 
Posts: 3380
Joined: Sun Feb 11, 2007 2:31 am

Post » Tue Mar 15, 2011 5:36 am

This is very clear, thank you very much Era Scarecrow. I will go testing smartmerger with non-US mods and check results, will report any issue.


What are the updates included in the 1.6? If they fix previous issues, why not?


Glad to hear. I tried to make the logic as close to all-inclusive as i could, to handle a variety of possible orders and inputs.


So far, there's very few updates. A fix to only load a plugin once, NPCS spell/abilities are fixed to work correctly. A fix involving Dialogs (at end/empty?) that would cause a segfault. SM_disabled_fix script and injection script updated to use float, and to not interfere with the rest of the variables. (only tested with one).

Currently moving Land Masses is half done, i can move all objects/teleporting positions, but the actual LAND records are unhappy about moving. Makes odd results, mostly non-moved or deleted portions.

EDIT: K, i think i got it working now.
User avatar
Love iz not
 
Posts: 3377
Joined: Sat Aug 25, 2007 8:55 pm

Post » Tue Mar 15, 2011 1:41 am

Version: 1.6
Fixed dialog bug that causes segfault (empty dialog?)
Fixed SM_disabled_fix injection bug involving variables & dialog.
Fixed NPCS bug on NPC's
Added control to only load any plugin once.
Added --move_land x,y

Dialog segfault bug - This was noticed due to certain rare instances where a dialog topic is either empty, or is very short. Fix should prevent segfaults/failure.

SM_disabled_fix - Noted on a Tribunal quest causing an infinite loop, the variable offset has been fixed, and updated to 'float', although it may not be necessary.

NPCS bug - Noticeable when it's clashing NPCS's, and the previous changes are the same file as the current. Should now act more like inventory, either it's there, added or removed based on circumstances.

--move_land x,y - This was a previously requested feature that (hopefully) does what tesFaith does. x,y are how many cells you want to move them. (positive is right & up)

Note: The querying symbol * is not working correctly due to previous updates involving extended records/subrecords. Also the first querying mode isn't outputting record headers.
User avatar
Kelli Wolfe
 
Posts: 3440
Joined: Thu Aug 23, 2007 7:09 am

Post » Mon Mar 14, 2011 1:39 pm

I would be interested in using/testing SmartMerge on my new computer and load, but I am not convinced that I know how to use it. I am comfortable with command line driven applications but I need a bit more guidance with this one. Can someone post some simplified instructions about how to use SmartMerge so I can give it a whirl?

Thank you,

Beryl
User avatar
Saul C
 
Posts: 3405
Joined: Wed Oct 17, 2007 12:41 pm

Previous

Return to III - Morrowind

cron