[RELZ] Wrye Bash -- Thead 58

Post » Tue Mar 01, 2011 11:44 am

Notes on the basic intro (I looked at the others and didn't see anything to comment on):

1:
Not necessary for the very first time Bash is run. Bash will generate a blank patch if it isn't present the very first time Bash is run. It only does this check once though, so if the patch is deleted (or Oblivion reinstalled, but the bash settings are kept) it won't regenerate the file. So it's probably best to keep the current wording just to be safe.

It might make sense to have Bash generate the blank patch any time it goes missing. Though it may annoy someone who uses Bash but not the patch.

2:
Lock Times should be enabled unless you use a different program (OBMM) to order your load order.
Auto Group is ignored unless BALO is enabled.

4:
Footnote, with CBash, Mark Mergeable isn't necessary (except to color code the mods properly). CBash checks the mergeability status of each mod every time the bashed patch dialogue is opened.

6:
You may want to change the selection keys to be more friendly to those that are red-green color blind.
"only select mods in the right hand pane for mods you have installed" should it be "only select csv's in..."? Either way, it's confusing. Perhaps "only select mods in the right hand pane whose item names you want kept"?
The .csv note is misleading. Csv files may reference multiple mods, and any mods that aren't active will be skipped. This allows you to build a single csv file that changes many mods (much like filter mods). For example, you can rename the items in 100 mods, but have it in a single csv. Only the mods that you have will have their items renamed. So it doesn't hurt to check a csv even if you don't have any of the mods (but it doesn't help either, and may make the patch take a little longer).
"If you have no mods..." isn't true for Race Records. It should be ticked even if there's nothing on the right.

One feature of csv files is that they override all mods...they're treated as if they come after every mod in the load order except the patch. Dunno if that should be mentioned since the guide isn't aimed at advanced users.

9:
Only needed if the user renamed a mod.
User avatar
amhain
 
Posts: 3506
Joined: Sun Jan 07, 2007 12:31 pm

Post » Tue Mar 01, 2011 11:54 am

Thank you Waruddar, will have a re-think and apply the above. Gaticus spent a bit of time helping out with the early ideas for presenting the guide and now you have given it a once-over after the next update pretty sure I can label this final - Unless there are any changes to Wrye Bash in future warranting a change of course. At least so far the reports coming back have been all positive and I haven't assisted in wrecking anyone's setup :).

Edit: Ref 'colour blind' found a https://secure.wikimedia.org/wikipedia/en/wiki/Color_blindness - Oh boy, thats a bombshell and something I should have considered earlier ... May be a few days before the next update ( makes a change from the norm' recently anyway :) ).
User avatar
Vickey Martinez
 
Posts: 3455
Joined: Thu Apr 19, 2007 5:58 am

Post » Tue Mar 01, 2011 1:38 pm

Not only will WB generate a bashed patched on initial opening, but it also creates the installer folders.
User avatar
c.o.s.m.o
 
Posts: 3419
Joined: Sat Aug 12, 2006 9:21 am

Post » Tue Mar 01, 2011 4:21 pm

New revision for CBash fixes one major bug, one bug that doesn't affect the bashed patch, and improves CBash performance by 22%.

Major bug: formIDs could randomly get corrupted. Two variables weren't properly initialized, and if their random data was just right, it could cause a problem. Occurred about 1 in 15'ish times when I was trying to trigger it.

Other bug: CBash wouldn't set some quest stage and target conditions. This didn't affect copying records, so the bashed patch was unaffected...only one the SE World patcher directly modifies conditions at all, and it doesn't touch the stage or target conditions.

Performance boost: it's a nice percentage, but rather meager in absolute terms. For a patch that takes ~44 seconds, only 4.8 seconds were spent in CBash. It now only spends 3.9 seconds in CBash. In an earlier commit where I made a performance change, I neglected to separate Bash from CBash, so the reported 1% increase was misleading. It was closer to (((44 * 0.01) + 4.8) / 4.8) - 1 * 100 = 9.2% (admittedly just an estimate based on current performance).

90% of the time it takes to build a patch happens in Python, so even if I manage to improve performance by 100%, it will only shave off a couple seconds in this test. Hurray for proper profiling.

Due to the changes involved with the performance boost, please keep an eye out for any odd behavior from CBash. It's quite possible that something wasn't properly updated to work with the new API changes.

Profiling notes for the curious (all times are in seconds):

Before the boost:
Spoiler
Overall Time = 4.8087440716999996Overall Time = sum(total time)Total % = total time / Overall Time * 100%avg execution = total time / times calledTotal % - avg execution - total time - function (times called)37.90% - 0.0000009493 - 1.4926888833 - GetField (1572437)32.14% - 1.2660186669 - 1.2660186669 - LoadCollection (1)24.40% - 0.9609625792 - 0.9609625792 - SaveMod (1)04.75% - 0.0000072054 - 0.1871109996 - CopyRecord (25968)04.12% - 0.0000019312 - 0.1621586567 - SetField (83969)04.10% - 0.0000009444 - 0.1614013486 - GetNumRecordConflicts (170896)03.86% - 0.0000012226 - 0.1521954683 - UnloadRecord (124480)02.45% - 0.0000012505 - 0.0966756093 - GetRecordHistory (77307)02.05% - 0.0000008314 - 0.0805652121 - GetFieldAttribute (96906)02.00% - 0.0000012912 - 0.0786649020 - GetRecordConflicts (60924)01.09% - 0.0000000844 - 0.0429916359 - GetLongIDName (509200)00.95% - 0.0372450538 - 0.0372450538 - DeleteCollection (1)00.61% - 0.0000000775 - 0.0239910949 - GetModNameByID (309658)00.41% - 0.0000012988 - 0.0160801049 - IsRecordWinning (12381)00.37% - 0.0145330630 - 0.0145330630 - CleanModMasters (1)00.32% - 0.0000038327 - 0.0127168035 - DeleteRecord (3318)00.26% - 0.0000004132 - 0.0101355560 - GetModLoadOrderByName (24529)00.15% - 0.0001167722 - 0.0057218362 - AddMod (49)00.07% - 0.0000045893 - 0.0027903071 - GetRecordFormIDs (608)00.06% - 0.0000016834 - 0.0024477052 - DeleteField (1454)00.03% - 0.0000003418 - 0.0011634813 - GetNumRecords (3404)00.00% - 0.0000051544 - 0.0001907137 - CreateRecord (37)00.00% - 0.0000018901 - 0.0001757808 - GetModIDByName (93)00.00% - 0.0000003362 - 0.0000554648 - SetRecordIDs (165)00.00% - 0.0000033866 - 0.0000541849 - GetRecordEditorIDs (16)00.00% - 0.0000068264 - 0.0000068264 - CreateCollection (1)00.00% - 0.0000008533 - 0.0000008533 - GetLoadOrderModIDs (1)00.00% - 0.0000008533 - 0.0000008533 - GetAllModIDs (1)00.00% - 0.0000004267 - 0.0000004267 - GetAllNumMods (1)00.00% - 0.0000000000 - 0.0000000000 - GetLoadOrderNumMods (1)


After the boost:
Spoiler
Total Time = 3.938727159099999522% speed up (Bash)Overall Time = sum(total time)Total % = total time / Overall Time * 100%avg execution = total time / times calledTotal % - avg execution - total time - function (times called)31.56% - 1.2432465181 - 1.2432465181 - LoadCollection (1)24.25% - 0.9550163237 - 0.9550163237 - SaveMod (1)18.23% - 0.0000004558 - 0.7179899720 - GetField (1575113)04.60% - 0.0000011225 - 0.1810755738 - GetNumRecordConflicts (161321)04.53% - 0.0000068667 - 0.1783147057 - CopyRecord (25968)03.11% - 0.0000014589 - 0.1225047230 - SetField (83969)02.64% - 0.0000013468 - 0.1041160017 - GetRecordHistory (77307)02.16% - 0.0000003291 - 0.0851214338 - GetRecordID (258671)02.08% - 0.0000006570 - 0.0817773318 - UnloadRecord (124480)01.90% - 0.0000014598 - 0.0749581454 - GetRecordConflicts (51349)00.96% - 0.0376307476 - 0.0376307476 - DeleteCollection (1)00.92% - 0.0000003690 - 0.0363401239 - GetFieldAttribute (98476)00.85% - 0.0000000657 - 0.0336372806 - GetLongIDName (512049)00.56% - 0.0000017878 - 0.0221343034 - IsRecordWinning (12381)00.43% - 0.0000000547 - 0.0169312765 - GetModNameByID (309658)00.36% - 0.0143222967 - 0.0143222967 - CleanModMasters (1)00.33% - 0.0000038631 - 0.0128179201 - DeleteRecord (3318)00.26% - 0.0000004116 - 0.0101833411 - GetModLoadOrderByName (24740)00.15% - 0.0001207165 - 0.0059151098 - AddMod (49)00.05% - 0.0000014322 - 0.0020824907 - DeleteField (1454)00.04% - 0.0000022208 - 0.0013857672 - GetRecordIDs (624)00.02% - 0.0000002460 - 0.0008375188 - GetNumRecords (3404)00.00% - 0.0000017754 - 0.0001651145 - GetModIDByName (93)00.00% - 0.0000043357 - 0.0001604213 - CreateRecord (37)00.00% - 0.0000003362 - 0.0000554648 - SetRecordIdentifiers (165)00.00% - 0.0000068264 - 0.0000068264 - CreateCollection (1)00.00% - 0.0000004267 - 0.0000004267 - GetAllModIDs (1)00.00% - 0.0000000000 - 0.0000000000 - GetLoadOrderNumMods (1)00.00% - 0.0000000000 - 0.0000000000 - GetLoadOrderModIDs (1)00.00% - 0.0000000000 - 0.0000000000 - GetAllNumMods (1)


You'll notice that over half the time is spent simply loading the files and saving the patch.

Relative function speedups (or slowdowns if negative):
Spoiler
Relative increase = (old avg execution / new avg execution - 1) * 100%      CleanModMasters : 1.47%       GetModIDByName : 6.46%        GetLongIDName : 28.52%             GetField : 108.25%          DeleteField : 17.54% SetRecordIdentifiers : 0.00%GetModLoadOrderByName : 0.39%      IsRecordWinning : -27.35%GetNumRecordConflicts : -15.86%     GetRecordHistory : -7.15%   GetRecordConflicts : -11.55%             SetField : 32.37%   GetLoadOrderModIDs : Infinite (DivideByZero) (old avg(0.0000008533) / new avg(0))     DeleteCollection : -1.02%         DeleteRecord : -0.79%         CreateRecord : 18.88%     CreateCollection : 0.00%               AddMod : -3.27%        GetNumRecords : 38.92%         UnloadRecord : 86.11%  GetLoadOrderNumMods : Infinite (DivideByZero) (old avg(0.0000000000) / new avg(0))        GetAllNumMods : Infinite (DivideByZero) (old avg(0.0000004267) / new avg(0))       LoadCollection : 1.83%    GetFieldAttribute : 125.29%         GetRecordIDs : 259.15%           CopyRecord : 4.93%         GetAllModIDs : 99.98%              SaveMod : 0.62%       GetModNameByID : 41.70%

User avatar
evelina c
 
Posts: 3377
Joined: Tue Dec 19, 2006 4:28 pm

Post » Tue Mar 01, 2011 11:13 am

823 doesn't want to load... :shrug:
User avatar
Kayla Bee
 
Posts: 3349
Joined: Fri Aug 24, 2007 5:34 pm

Post » Tue Mar 01, 2011 2:23 pm

823 doesn't want to load... :shrug:


Concur - not even a loading bar


Not only will WB generate a bashed patched on initial opening, but it also creates the installer folders.


Screen 2 of the Installers intro part of the guide, top bubble out. Already covered.
User avatar
Natalie J Webster
 
Posts: 3488
Joined: Tue Jul 25, 2006 1:35 pm

Post » Tue Mar 01, 2011 5:00 pm

May I interrupt the discussion for a simple question? I think this is the better place to ask this.

My problem is, that a third sub-package from a self-created installer (containing only an INI folder and an ini file within) does not show up in Wrye Bash. I`m using WB 290. Check the "extra directories" did not help. The problem is also described http://www.gamesas.com/index.php?/topic/1157160-how-can-i-get-wrye-bash-to-not-skip-a-sub-package/.

I also have a suggestion. Maybe WB supports that already and I don`t know it, forgive me in this case (I`m a beginner with WB): I would like to have a possibility to add a website to installers, so if I right-click on an installer, I can choose for example "Check website" and it gets me right to the website, so I can quick-check for mod updates. OBMM had something like this for its OMODs.
User avatar
Tracey Duncan
 
Posts: 3299
Joined: Wed Apr 18, 2007 9:32 am

Post » Tue Mar 01, 2011 6:33 pm

In upcoming 291 version, when you right-click on the installer package and choose Open (?Find? now I am at work, so sorry), you not only get TES Nexus and TES Aliance option, but also Google search option. IMO, it would be sufficient for mods that do have their personal webpage and are not on TESNexus etc.


May I interrupt the discussion for a simple question? I think this is the better place to ask this.

My problem is, that a third sub-package from a self-created installer (containing only an INI folder and an ini file within) does not show up in Wrye Bash. I`m using WB 290. Check the "extra directories" did not help. The problem is also described http://www.gamesas.com/index.php?/topic/1157160-how-can-i-get-wrye-bash-to-not-skip-a-sub-package/.

I also have a suggestion. Maybe WB supports that already and I don`t know it, forgive me in this case (I`m a beginner with WB): I would like to have a possibility to add a website to installers, so if I right-click on an installer, I can choose for example "Check website" and it gets me right to the website, so I can quick-check for mod updates. OBMM had something like this for its OMODs.

User avatar
Mélida Brunet
 
Posts: 3440
Joined: Thu Mar 29, 2007 2:45 am

Post » Tue Mar 01, 2011 10:10 am

What is the recommended installation method? If it's in the read me, that's fine. I just don't have it on hand at the moment.

Skipping the details is it as follows?:

1) Download and run the Wrye Python v3a installer.
2) Download and extract Wrye Bash v287 in/to the Oblivion folder.
3) Download and extract Wrye Bash v290 in/to the Oblivion folder, overriding all conflicts.
4) If necessary, copy bash_default.ini to bash.ini and make changes.

@Waruddar: Could I quote your second post on my site? The plan would be to have a page that would just have your name and your post on it, since I don't see any reason to modify or paraphrase, etc.
User avatar
Ashley Clifft
 
Posts: 3468
Joined: Thu Jul 26, 2007 5:56 am

Post » Tue Mar 01, 2011 8:01 am

In upcoming 291 version, when you right-click on the installer package and choose Open (?Find? now I am at work, so sorry), you not only get TES Nexus and TES Aliance option, but also Google search option. IMO, it would be sufficient for mods that do have their personal webpage and are not on TESNexus etc.


Yes, for example the mods by bg2408 ("Race Balancing Project" and "LAME") are only available on theelderscrolls.info as far as I know, so I would like to define the site I will be directed to.

However, my issue of a skipped subpackage (without an esp, just an ini inside) is not resolved. Any thoughts about it? See my post above. I`d appreciate any help.
User avatar
Miragel Ginza
 
Posts: 3502
Joined: Thu Dec 21, 2006 6:19 am

Post » Tue Mar 01, 2011 7:53 pm

However, my issue of a skipped subpackage (without an esp, just an ini inside) is not resolved. Any thoughts about it? See my post above. I`d appreciate any help.

Yeah, this came up a while ago. PacificMorrowind already fixed this for the next version.

Also: current failure to start up is caused by basher.py:2631 lacking four spaces of indentation. Just go to that line, hit home, then space space space space and save it to get things working again (I expect this to be fixed shortly in svn).
User avatar
lillian luna
 
Posts: 3432
Joined: Thu Aug 31, 2006 9:43 pm

Post » Tue Mar 01, 2011 11:55 am

Ok, thanks. Now I know it`s not a fault on my side. I`m waiting then for a WB update.
User avatar
Kortniie Dumont
 
Posts: 3428
Joined: Wed Jan 10, 2007 7:50 pm

Post » Tue Mar 01, 2011 8:37 am

Yeah, this came up a while ago. PacificMorrowind already fixed this for the next version.

Also: current failure to start up is caused by basher.py:2631 lacking four spaces of indentation. Just go to that line, hit home, then space space space space and save it to get things working again (I expect this to be fixed shortly in svn).

Thanks, fixed. When TortoiseSVN merged my changes with lojack's, this got missed.
User avatar
Ross Thomas
 
Posts: 3371
Joined: Sat Jul 21, 2007 12:06 am

Post » Tue Mar 01, 2011 9:26 am

rev 824 no problems runs to completion - elapsed 1 min 18, but I have GIMP with multiple windows/Browser with 12 tabs/and a couple of Notepads open so not ideal testing conditions :)
User avatar
Jenna Fields
 
Posts: 3396
Joined: Mon Dec 11, 2006 11:36 am

Post » Tue Mar 01, 2011 5:32 am

Oh, and you're welcome to copy that post. I'd ask you to make sure it's kept updated. Shouldn't need to be updated that frequently though.
User avatar
Cash n Class
 
Posts: 3430
Joined: Wed Jun 28, 2006 10:01 am

Post » Tue Mar 01, 2011 1:04 pm

:blush: Thanks Waruddar, I did take a bit of a liberty there.

One more question regards .csv's (currently re-doing screen 6) - I noticed earlier (I fail to find it again at the moment - and possibly missed a response to the same), someone mentioned recently including all of those .csv's crashed his game - Thats also my experience which is why I am being careful with recommends here. Pretty sure it was either a combination of .csv's I tried but particularly when Guard_Names.csv was ticked for inclusion.

To be honest your explanation is the first time I have come close to understanding all the .csv's and previously because of the crash I experienced have avoided them. I do know though that when I first came across them I was careful to select them without any other import/merge changes, and so could determine at the next load of the game the possible culprit quite easily, after reverting my changes without .csv's the game was fine.

As I understand it from your explanation selecting all of these should only really affect the build time of the bashed patch even if not required - Has the problem of selecting all .csv's resulting in a game crash been solved, or is this only in CBash mode where they should not be a problem? / or is it a problem you were previously un-aware of? (in which case I am as guilty as anyone for forgetting to report it)
User avatar
Tania Bunic
 
Posts: 3392
Joined: Sun Jun 18, 2006 9:26 am

Post » Tue Mar 01, 2011 6:32 am

It shouldn't cause crashes with normal Bash or with CBash enabled. If it does, that's a bug that needs squashing.

I'll give the Guard_Names.csv a test. If you can find any other times that it crashes with csv's ticked, let me know.

Edit: Having Guard_Names.csv doesn't make the game crash for me. I'll need something reproducible to fix the reported crashes.
User avatar
Marnesia Steele
 
Posts: 3398
Joined: Thu Aug 09, 2007 10:11 pm

Post » Tue Mar 01, 2011 6:43 pm

Happy, will finish the few screens I am doing at the moment then get down to trying to reproduce the .csv problems experienced before ( fingers crossed it does crash now I have raised this, its been a while since I tried them :) )
User avatar
Noely Ulloa
 
Posts: 3596
Joined: Tue Jul 04, 2006 1:33 am

Post » Tue Mar 01, 2011 7:27 am

Not tested yet but just remembered the recent post was in the previous thread http://www.gamesas.com/index.php?/topic/1154209-relz-wrye-bash-thead-57/page__view__findpost__p__16924942

Not a crash in that instance though so does not back up my experience :shakehead: ... anyway will try soon'ish
User avatar
Tamara Primo
 
Posts: 3483
Joined: Fri Jul 28, 2006 7:15 am

Post » Tue Mar 01, 2011 10:12 pm

:brokencomputer: Damn, .csv files work fine - Glad I didn't place any bets.

Well, it seems I am talking out of my derriere - sorry for the false alarm but I am pretty certain at one point in time they were a problem. Unfortunately (or rather I should say fortunately) I have no evidence currently to substantiate the claim.

In light of that, I feel any particular mention of .csv's is no longer needed for the purpose of a basics guide - I started looking up links for related topics on each of them and pretty soon came to the conclusion that I was not going to be able to condense the amount of information into a simple paragraph, and also decided the limited space I have on screen 6 without just writing a wall of text could be put to better use.

Preview - http://www.bild.me/bild.php?file=7855806WBB-6.jpg with a better palette and symbols to aid colour blind (thats a tough subject, when all things are considered with the different varieties of the affliction it boils down to about six colours and trying to contrast adjacent colours, and use symbols for more variation - hope it works okay for anyone needing it anyway)
User avatar
Anna Beattie
 
Posts: 3512
Joined: Sat Nov 11, 2006 4:59 am

Post » Tue Mar 01, 2011 8:46 pm

Preview notes:
You initially refer to patchers as options, then elements. Why not stick with options (or patchers)?

My suggestion for the third paragraph:
"Options such as Import Actors/Spells/Graphics, when used, merge any changes and then adds them to the Bashed Patch. Because the Bashed Patch is simply a custom esp, and is last in your Load Order, those merged changes will be in your game (effectively leap-frogging or bypassing the Load Order)"
User avatar
Crystal Clarke
 
Posts: 3410
Joined: Mon Dec 11, 2006 5:55 am

Post » Tue Mar 01, 2011 7:17 pm

:) Ref Patchers/Options/Elements - Agree, I used elements again because it ties in with the mention of that word on a different screen ... both need changed.

Third paragraph also agree that looks better, will change tomorrow need sleep and dont want to make any mistakes with the next update. Thanks again.

Edit: Alive again - 7.5 is up, reference http://www.gamesas.com/index.php?/topic/1123302-wip-wrye-bash-pictorial-guide-for-newbies/page__view__findpost__p__16961714 for work done so far.
User avatar
Jordyn Youngman
 
Posts: 3396
Joined: Thu Mar 01, 2007 7:54 am

Post » Tue Mar 01, 2011 8:56 am

v291 rev 826 on Win XP x32 CBash mode

Refreshing installers

Traceback (most recent call last):
File "H:\Program Files\Bethesda Softworks\Oblivion\Mopy\balt.py", line 1398, in OnItemSelected
self.RefreshDetails(self.GetItem(event.m_itemIndex))
File "H:\Program Files\Bethesda Softworks\Oblivion\Mopy\balt.py", line 1361, in RefreshDetails
if self.details: return self.details.RefreshDetails(item)
File "H:\Program Files\Bethesda Softworks\Oblivion\Mopy\basher.py", line 2879, in RefreshDetails
if (index == currentIndex): self.RefreshInfoPage(index,installer)
File "H:\Program Files\Bethesda Softworks\Oblivion\Mopy\basher.py", line 3009, in RefreshInfoPage
gPage.SetValue(self.data.getConflictReport(installer,'OVER'))
File "H:\Program Files\Bethesda Softworks\Oblivion\Mopy\bosh.py", line 12097, in getConflictReport
oldName = self.getEspmName(file)
AttributeError: InstallersData instance has no attribute 'getEspmName'
User avatar
Laura-Lee Gerwing
 
Posts: 3363
Joined: Fri Jan 12, 2007 12:46 am

Post » Tue Mar 01, 2011 10:30 pm

Fixing it. Looks like it was missed when lojack added the renaming stuff.
User avatar
RUby DIaz
 
Posts: 3383
Joined: Wed Nov 29, 2006 8:18 am

Post » Tue Mar 01, 2011 5:49 pm

Cool, I have seen the shiny launchers but will wait :) - Also ref the last post noticed Sub-Package info lost in some cases too at that time (just been back on the XP machine after posting)
User avatar
Sami Blackburn
 
Posts: 3306
Joined: Tue Jun 20, 2006 7:56 am

PreviousNext

Return to IV - Oblivion