Jump to content

Wrye Bash - All Games


Utumno

Recommended Posts

2 hours ago, Sharlikran said:

I saw you wanted to export stats.  Those differences are not causing your issue. What is the issue you are having with it, other then it doesn't appear when you right click the plugin?

EDIT: If you want to export stats then just do this.

Ah looking at the code I see what I was missing as far as where to re-enable it.  Thanks for linking that.  I'm going to play with it on my Frankenstein build when I get home. 

How the error I posted is relevant to this is once we have  "export stats" re-enabled we're going to start getting errors; basically the same reason the Sound, Graphics, and Stats patchers are disabled in SSE mode.

Perhaps I am misunderstanding what is causing the error to be raised: I'm under the impression that Bash is parsing the records in the plugins and throws an error when it hits values that are different than what it was expecting (e.g. uint32 when it expected a uint16).   Am I completely off?

Link to comment
Share on other sites

You won't get an error for exporting the stats irrespective of the differences between a 16 or 32 bit integer.  The disabled patchers that are available for Skyrim are just disabled. I don't know why though. I didn't set it that way.

The error you raised is pretty much irrelevant to the patcher or exporting the stats. It just happened because Skyrim expects a different size for the record then Skyrim SE. Which you mentioned you expected. So I don't see why you still feel there is a potential issue that will occur.

I have not tested it but I would expect that the only errors you will have if the same patchers and exporters were enabled are the ones listed on GitHub for the old Skyrim such as issues 301-307. Arthmoor brought those issues to my attention over two years ago when I initially enabled the Patchers in use for old Skyrim. 

However, issue #307 would probably be resolved by adding this commit and double checking CTDA in Wrye. I don't think Bethesda added anything to CTDA though for SSE. I skimmed over the xEdit code and I don't see anything that myself or Zilav tweaked for CTDA to make it different for Skyrim and Skyrim SE. The times where SSE is taken into account is when you see IsSSE() somewhere in the code.

About the only thing I can think of for issue 307 is that I missed a CTDA or there is one added from SKSE that isn't even in xEdit, or wasn't at the time I updated CTDA for Wrye.  That happens a lot though. Sometimes I will define a record in Wrye the way it is in xEdit and then Zilav is working on something, maybe he enables a new scripting function, and at the same time goes back and updates a definition in xEdit. So then if you or Utumno compared a record you might wonder why my definition is so weird and why the one in xEdit looks so much better.  It's just because I didn't know Zilav updated it and I haven't applied the better definition to Wrye. Usually the functionality Zilav is updating in xEdit doesn't change, it's just better syntax.

Link to comment
Share on other sites

6 hours ago, alt3rn1ty said:

@Utumno I found a few broken links in Wrye Bash General ReadMe, the Launchers for Doc Browser etc which have now moved to the Advanced ReadMe have been corrected, plus a bunch of other tool links which were either broken, moved to another site (carefully checked not to be redirects of a nefarious nature) .. Or since Sourceforge started injecting their own dodgy adware installations, have moved to their own sites to get away from them (for example Audacity http://www.audacityteam.org/ )

The general readme from the latest nightly build was used as a basis for the changes at dropbox :bunny: -->> General Readme links fixed <<-- :bunny:

@Utumno And same again for the Advanced Readme :bunny: --> Advanced Readme Links Fixed <-- :bunny:

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

Thanks @alt3rn1ty will have a look ASAP :bunny:

Re: CDTA - could you post into relevant issue @Sharlikran with a link at the code ? I could cherry pick to my branch and have it tested by people here

@RavenMind - I suspect this is related to changing games via the settings menu - I have bat scripts that replace the bash.ini and launch Bash always from my dev dir, never used that menu and it's most probably broken to pieces. Could you produce a step by step minimal but detailed reproducer?

Link to comment
Share on other sites

8 hours ago, lmstearn said:

Running a "vanilla" game with just USSEP and the Bashed patch (all tweak settings unchecked). Even with the BP disabled, the achievements/trophies disable warning still operates. :(

Both count as a mod so it'll tag your game as modified. I use the Achievements Enabler" doohickey to get around that.

Link to comment
Share on other sites

4 hours ago, Sharlikran said:

It just happened because Skyrim expects a different size for the record then Skyrim SE.

Yes exactly. :)   I apologize that I didn't explain myself better earlier - it is cyber week and work has been completely nuts.

What got me started on this was as a learning exercise I've been taking Bash apart and putting it back together to figure out how it works, and I wanted to know what needed to be done to get the rest of the patchers turned back on for SSE.  So far the only thing (as I understand it) that is stopping that is the values/sizes in SSE are different, along with a few new lighting records that were introduced in SSE. In database parlance (and TESx data files are just little databases) that's just a schema update and I know how to do those.

So the Export Stats issue I pointed out is just an ancillary thing and the CTDA record error just randomly happened to be the only record in that particular plugin that it threw an error on. If I used a different plugin it could have been a WATR record or something else.  Again this isn't a massive issue, it's mostly just an opportunity for me to learn where that utility lives in the UI and back-end code.

Thank you for linking your commit and all the information, I always find it helpful. I'll play with it tomorrow afternoon and I'll let you know how it works out. Do you think the rest of the information I'm looking for can be gotten?

Link to comment
Share on other sites

2 hours ago, Utumno said:

@RavenMind - I suspect this is related to changing games via the settings menu - I have bat scripts that replace the bash.ini and launch Bash always from my dev dir, never used that menu and it's most probably broken to pieces. Could you produce a step by step minimal but detailed reproducer?

 

@Utumno Here's reproduction steps & noticed behaviors. Tried to be succinct for you.

Stumbled upon another possible issue. Switching games more than twice causes WB to close/reopen only to the last selected game.

Spoiler

 

Setup:

  • Wrye Bash v307.201711250133 (Python)
  • Windows-8-6.2.9200 (Win10 Home v1709, Build 16299.64)
  • Python v2.7.10, wxPython v2.8.12.1, Scandir v1.6
  • FO4, SSE, Oblivion installed & detected via registry
  • Separate Mopy folders in each game directory, with dedicated bash.ini for each

Repro:

  1. Launch Wrye Bash via Wrye Bash Launcher.pyw, Wrye Bash Debug.bat, or shortcut.
  2. Click Settings "gear" icon.
  3. Mouse over Game, choose any other game.
  4. WB closes, then reopens to selected game. (Triggers Status Bar apps issue)
  5. Repeat 2-4. (game doesn't matter)
  6. Repeat 2-4 once more, triggers first noticed behavior)

Noticed Behaviors:

  • Switching games more than twice does not work. Wrye Bash will close/reopen to the last selected game.
  •       Example: #1 Open WB from ..\Oblivion\Mopy. Switch to FO4, switch to SSE, try to switch to either other game - WB reopens only to SSE (second game switched to).
  •       Example #2: Open WB from ..\Fallout 4\Mopy. Switch to SSE, switch back to FO4, try to switch to either other game - WB reopens only to FO4 (second game switched to).
  • Status bar apps are incorrect. E.g., only shows apps added via INI or Apps folder for the game WB originally launched for.
  • Example (Launched Originally for Oblivion): After switching to any other game, showing Insanity's Readme Generator, TES4Gecko, & BOSS, which are not in the SSE bash.ini.
  • xEdit & xLODGen are showing "TES4" instead of "SSE", and when launched, operate on Oblivion not SSE.
  • LOOT, which is included in the ..\Skyrim Special Edition\Mopy\Apps directory does not appear.
  • Command line window does not reappear after switching games, when originally launched in Debug mode.
  • Items in Installers/Mods/Saves/INI Edits appear correct.
  • Other attempted Bash functions appear to be working; Install/Uninstall, reordering, Patch rebuilding, etc.

 

 

Link to comment
Share on other sites

12 hours ago, Beermotor said:

Both count as a mod so it'll tag your game as modified. I use the Achievements Enabler" doohickey to get around that.

Thanks. Well now, we are aiming for the purest of the pure "Vanilla" setup... but end up with dang doohickey mods anyhow. :P

BTW WB doesn't do DLLS and as yet there is no standalone DLL manager for TES games, do you think there is a case for getting a basic one working with WB? This wouldn't be too much of a problem with something like Autohotkey- or even PyAHK?

Except for the possible implementation of a database of scanned (and passed) DLL CRCs where some scraping of Nexusmods (now that it's out of alpha) and others may be enough to cover licence obligations. Alternatively, perhaps another rethink on the precautionary measures of 2006 viz borked DLLS, where these days virus protection systems even at the OS level are considerably more robust.

Link to comment
Share on other sites

3 hours ago, Beermotor said:

What got me started on this was as a learning exercise

I wanted to know what needed to be done to get the rest of the patchers turned back on for SSE

So far the only thing (as I understand it) that is stopping that is the values/sizes in SSE are different, along with a few new lighting records that were introduced in SSE

Do you think the rest of the information I'm looking for can be gotten?

Aside from Volumetric Lighting or Lens the patchers will work because the records are and have been correct since I updated them for SSE over a year ago. Lens can't be patched until there is a custom unpacker to account for the duplicate signature DNAM in MreLens. There isn't a Lighting patcher anyway.

When you are not at work just test with this. Manually apply Bash Tags.

Link to comment
Share on other sites

On 11/30/2017 at 3:11 PM, Utumno said:

Re: CDTA - could you post into relevant issue

Never mind issue 307 is something else entirely. When that happens it will break CTDA. A fix for that should be included in beta 2. I'll work on it. It has to do with the way things are decided. Unfortunately xEdit uses custom deciders for things. I will look into it but no ETA as I don't know when I will have time to work on it especially with work changes and the holidays.

EDIT: Also I asked Hlp to update his script extender plugin to output information for use with Wrye Bash. However, I have to be patient and wait until he has time to do that especially with the Holidays approaching. The UESP Wiki information for CTDA is here.

EDIT2: Looking at it more it's when there is an event and as noted on the UESP wiki there is are several parts to events. They don't seem to be patched correctly. Lojack made the CTDA handler from whatever, Oblivion or maybe even Fallout. He didn't even remove the invalid or unused CTDA IDs from it when he did that.  He just added what need3ec to be there. Valda added something for when runOn is 2 to track a FormID. Changing the constants in conditionFunctionData didn't change anything so it's in MelCTDAHandler itself.

Link to comment
Share on other sites

17 hours ago, Sharlikran said:

Aside from Volumetric Lighting or Lens the patchers will work because the records are and have been correct since I updated them for SSE over a year ago. Lens can't be patched until there is a custom unpacker to account for the duplicate signature DNAM in MreLens. There isn't a Lighting patcher anyway.

When you are not at work just test with this. Manually apply Bash Tags.

Splendid. Giving her a whirl as shortly. Thanks! :)

Link to comment
Share on other sites

@Sharlikran Testing went well.

First with Export Stats, it works great. No errors on any of the exporters (EIDs, Stats, Prices, & Names).  Just for grins I did your Dovahkiin Retreat Xmas update (my daughter is running it too and said to tell you loves it) and it worked like a charm. Dovahkiin_Retreat_Xmas_CSVs.7z

I also tested with the Skyrim Underground plugin I used earlier and it now recognizes the CRDT fields in the AKBattleaxe record. Excellent work.

As for the patchers, the output is pretty much the same as my previous tests with all (in comparison to Skyrim) of the patchers enabled. 

Spoiler

Wrye Bash starting
Using Wrye Bash Version 307.201711250133
OS info: Windows-10-10.0.16299
Python version: 2.7.14
wxPython version: 2.8.12.1 (msw-unicode)
input encoding: UTF8; output encoding: None; locale: ('en_US', 'cp1252')
filesystem encoding: mbcs
Using scandir 1.6
bash.py  316 _main: Searching for game to manage:
bush.py   76 _supportedGames: Detected the following supported games via Windows Registry:
bush.py   78 _supportedGames:  Oblivion: D:\Games\Steam\steamapps\common\Oblivion
bush.py   78 _supportedGames:  Skyrim: D:\Games\Steam\steamapps\common\Skyrim
bush.py   78 _supportedGames:  Skyrim Special Edition: C:\SteamLibrary\steamapps\common\Skyrim Special Edition
bush.py   78 _supportedGames:  Fallout4: D:\Games\Steam\steamapps\common\Fallout 4
bush.py  136 _detectGames: Detecting games via the -o argument, bash.ini and relative path:
bush.py  142 _detectGames: Set game mode to Skyrim Special Edition based on sOblivionPath setting in bash.ini:  C:\SteamLibrary\steamapps\common\Skyrim Special Edition
bush.py  156 __setGame:  Using Skyrim Special Edition game: C:\SteamLibrary\steamapps\common\Skyrim Special Edition
testing UAC
mods_metadata.py  227 __init__: Using LOOT API version: 0.10.1
Skyrim.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Skyrim.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 00000E87
  eid = u'LoadScreenMRaltar01'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 5006616
Error in Skyrim.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: Skyrim.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Skyrim.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

Dawnguard.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dawnguard.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 02013DDC
  eid = u'CasExFreeSmDoorSTATIC'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 953891
Error in Dawnguard.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: Dawnguard.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dawnguard.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

HearthFires.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save HearthFires.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 02000BA1
  eid = u'LoadScreenBYOH01'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 242289
Error in HearthFires.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: HearthFires.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save HearthFires.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

Dragonborn.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dragonborn.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 0203D590
  eid = u'DLC2MAGINVShoutBendWill'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 814444
Error in Dragonborn.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: Dragonborn.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dragonborn.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

Skyrim.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Skyrim.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228
Error loading 'WATR' record and/or subrecord: 0010CC8E
  eid = u'DefaultWaterKatariahWorld'
  subrecord = 'DNAM'
  subrecord size = 228
  file pos = 243960603
Error in Skyrim.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 215, in loadData
    old_skyrim=True)
ModSizeError: Skyrim.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Skyrim.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228

Update.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Update.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228
Error loading 'WATR' record and/or subrecord: 0010CC8E
  eid = u'DefaultWaterKatariahWorld'
  subrecord = 'DNAM'
  subrecord size = 228
  file pos = 17561066
Error in Update.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 215, in loadData
    old_skyrim=True)
ModSizeError: Update.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Update.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228

Dawnguard.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Dawnguard.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228
Error loading 'WATR' record and/or subrecord: 02019C98
  eid = u'DLC1FrostreachWaterNoFlow'
  subrecord = 'DNAM'
  subrecord size = 228
  file pos = 24412988
Error in Dawnguard.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 215, in loadData
    old_skyrim=True)
ModSizeError: Dawnguard.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Dawnguard.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228

Dragonborn.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Dragonborn.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228
Error loading 'WATR' record and/or subrecord: 0203805D
  eid = u'DLC2StandingStoneWater'
  subrecord = 'DNAM'
  subrecord size = 228
  file pos = 63721214
Error in Dragonborn.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 215, in loadData
    old_skyrim=True)
ModSizeError: Dragonborn.esm: 
Wrye Bash SSE expects a newer format for WATR.DNAM than found.
Load and save Dragonborn.esm with the Skyrim SE CK
WATR.DNAM: Expected size == 232, but got: 228

Skyrim.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Skyrim.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 00000E87
  eid = u'LoadScreenMRaltar01'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 5006616
Error in Skyrim.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: Skyrim.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Skyrim.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

Dawnguard.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dawnguard.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 02013DDC
  eid = u'CasExFreeSmDoorSTATIC'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 953891
Error in Dawnguard.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: Dawnguard.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dawnguard.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

HearthFires.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save HearthFires.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 02000BA1
  eid = u'LoadScreenBYOH01'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 242289
Error in HearthFires.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: HearthFires.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save HearthFires.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

Dragonborn.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dragonborn.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8
Error loading 'STAT' record and/or subrecord: 0203D590
  eid = u'DLC2MAGINVShoutBendWill'
  subrecord = 'DNAM'
  subrecord size = 8
  file pos = 814444
Error in Dragonborn.esm
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 182, in loadData
    old_skyrim=True)
ModSizeError: Dragonborn.esm: 
Wrye Bash SSE expects a newer format for STAT.DNAM than found.
Load and save Dragonborn.esm with the Skyrim SE CK
STAT.DNAM: Expected size == 12, but got: 8

Unknown condition function: 734
param1: 00000000
param2: 00000000
Error loading 'SPEL' record and/or subrecord: 05000917
  eid = u'Survival_OverencumberedSpell'
  subrecord = 'CTDA'
  subrecord size = 32
  file pos = 79989
Error in ccqdrsse001-survivalmode.esl
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\brec.py", line 795, in loadData
    self.loaders[sub_type].loadData(target, ins, sub_type, size_, readId)
  File "bash\brec.py", line 795, in loadData
    self.loaders[sub_type].loadData(target, ins, sub_type, size_, readId)
  File "bash\game\skyrim\records.py", line 206, in loadData
    raise BoltError(u'Unknown condition function: %d\nparam1: %08X\nparam2: %08X' % (ifunc,ins.unpackRef(), ins.unpackRef()))
BoltError: Unknown condition function: 734
param1: 00000000
param2: 00000000

RosaFollower.esp: 
Wrye Bash SSE expects a newer format for WEAP.CRDT than found.
Load and save RosaFollower.esp with the Skyrim SE CK
WEAP.CRDT: Expected size == 24, but got: 16
Error loading 'WEAP' record and/or subrecord: 00013980
  eid = u'IronBattleaxe'
  subrecord = 'CRDT'
  subrecord size = 16
  file pos = 50795
Error in RosaFollower.esp
parsers.py 3967 load:  
Traceback (most recent call last):
  File "bash\parsers.py", line 3961, in load
    self.tops[label].load(ins, unpack and (topClass != MobBase))
  File "bash\record_groups.py", line 69, in load
    ins.tell() + self.size - self.header.__class__.rec_header_size)
  File "bash\record_groups.py", line 171, in loadData
    record = recClass(header,ins,True)
  File "bash\brec.py", line 1682, in __init__
    self.__class__.melSet.initRecord(self,header,ins,unpack)
  File "bash\brec.py", line 1227, in initRecord
    MreRecord.__init__(record,header,ins,unpack)
  File "bash\brec.py", line 1477, in __init__
    if ins: self.load(ins,unpack)
  File "bash\brec.py", line 1540, in load
    self.loadData(ins,inPos+self.size)
  File "bash\brec.py", line 1691, in loadData
    self.__class__.melSet.loadData(self, ins, endPos)
  File "bash\brec.py", line 1256, in loadData
    loaders[Type].loadData(record, ins, Type, size, readId)
  File "bash\game\skyrimse\records.py", line 358, in loadData
    old_skyrim=True)
ModSizeError: RosaFollower.esp: 
Wrye Bash SSE expects a newer format for WEAP.CRDT than found.
Load and save RosaFollower.esp with the Skyrim SE CK
WEAP.CRDT: Expected size == 24, but got: 16

 

We know the masters are all over the place, but rosafollower.esp (yes yes, I know) apparently wasn't converted, so the error is correct for that one.

As another test, I pared  bash\games\skyrimse\__init__.py   down to the patchers I've been using for a while (I've also had the bashed tags enabled) and it works without any bugchecks with both the mainline Bash and your test branch. My plugins are a meticulous mix of pre-tagged, manually tagged, and script tagged (fireundubh's script) where it makes sense to tag them. 

Here's what I've been using for a while now:

Spoiler

#--Tags supported by this game
allTags = sorted((
    u'C.Acoustic', u'C.Climate', u'C.Encounter', u'C.ImageSpace', u'C.Light',
    u'C.Location', u'C.SkyLighting', u'C.Music', u'C.Name', u'C.Owner',
    u'C.RecordFlags', u'C.Regions', u'C.Water', u'Deactivate', u'Delev',
    u'Filter', u'Graphics', u'Invent', u'NoMerge', u'Relev', u'Sound',
    u'Stats', u'Names',
    ))

#--Gui patcher classes available when building a Bashed Patch
patchers = (
    u'AliasesPatcher', u'CellImporter', u'GmstTweaker', u'ImportInventory', u'ListsMerger', u'PatchMerger',
)

 

That arrangement works fine without a bugcheck, although I've not checked out tonight's bashed patch in SSEEdit yet.

Thanks for putting the work into this and I hope this info is useful.  :)

Link to comment
Share on other sites

Well it looks like the Creation Club added a new condition ( BoltError: Unknown condition function: 734 ) so I have to get @hlp to update his plugin to dump CTDA data for both Skyrim and Skyrim SE anyway, when he has time of course.

Link to comment
Share on other sites

17 minutes ago, Arthmoor said:

Interesting. I wonder what condition they added.

I'm going to use the CK tomorrow to figure it out. I don't need the SKSE plugin for that. However, I am hoping hlp has some time to help with that to see if xEdit has all the proper values for vanilla and SKSE anyway.

Link to comment
Share on other sites

On 12/1/2017 at 3:32 AM, RavenMind said:

 

@Utumno Here's reproduction steps & noticed behaviors. Tried to be succinct for you.

Stumbled upon another possible issue. Switching games more than twice causes WB to close/reopen only to the last selected game.

  Reveal hidden contents

 

Setup:

  • Wrye Bash v307.201711250133 (Python)
  • Windows-8-6.2.9200 (Win10 Home v1709, Build 16299.64)
  • Python v2.7.10, wxPython v2.8.12.1, Scandir v1.6
  • FO4, SSE, Oblivion installed & detected via registry
  • Separate Mopy folders in each game directory, with dedicated bash.ini for each

Repro:

  1. Launch Wrye Bash via Wrye Bash Launcher.pyw, Wrye Bash Debug.bat, or shortcut.
  2. Click Settings "gear" icon.
  3. Mouse over Game, choose any other game.
  4. WB closes, then reopens to selected game. (Triggers Status Bar apps issue)
  5. Repeat 2-4. (game doesn't matter)
  6. Repeat 2-4 once more, triggers first noticed behavior)

Noticed Behaviors:

  • Switching games more than twice does not work. Wrye Bash will close/reopen to the last selected game.
  •       Example: #1 Open WB from ..\Oblivion\Mopy. Switch to FO4, switch to SSE, try to switch to either other game - WB reopens only to SSE (second game switched to).
  •       Example #2: Open WB from ..\Fallout 4\Mopy. Switch to SSE, switch back to FO4, try to switch to either other game - WB reopens only to FO4 (second game switched to).
  • Status bar apps are incorrect. E.g., only shows apps added via INI or Apps folder for the game WB originally launched for.
  • Example (Launched Originally for Oblivion): After switching to any other game, showing Insanity's Readme Generator, TES4Gecko, & BOSS, which are not in the SSE bash.ini.
  • xEdit & xLODGen are showing "TES4" instead of "SSE", and when launched, operate on Oblivion not SSE.
  • LOOT, which is included in the ..\Skyrim Special Edition\Mopy\Apps directory does not appear.
  • Command line window does not reappear after switching games, when originally launched in Debug mode.
  • Items in Installers/Mods/Saves/INI Edits appear correct.
  • Other attempted Bash functions appear to be working; Install/Uninstall, reordering, Patch rebuilding, etc.

 

 

Thanks for excellent bug report - could you post me an issue for this (just copy paste it, adding the link to the forums here so we have context) ? I have to look into it - after beta and probably 308 wip as relates to profiles actually

Re: CTDA, let me know when everything ready

Link to comment
Share on other sites

@Utumno

While you are waiting for me to finish CTDA I still don't think it's a good idea to include ESL files in the bash patch as was shown happening in Beermotor's trackback.

Unknown condition function: 734
param1: 00000000
param2: 00000000
Error loading 'SPEL' record and/or subrecord: 05000917
  eid = u'Survival_OverencumberedSpell'
  subrecord = 'CTDA'
  subrecord size = 32
  file pos = 79989
Error in ccqdrsse001-survivalmode.esl

Most of the community already knows this but normal users won't. There is no guarantee that mod authors will use them correctly. When a mod author uses them incorrectly and users have them patched by Wrye they will report the inconsistencies (caused by misuse) and expect you to address it.

 

ESL files patching.jpg

 

Link to comment
Share on other sites

43 minutes ago, Utumno said:

Does this mean that esls should be completely excluded from the BP ?

If we are speaking about CC esl plugin then yes, nothing to patch there because CC mods do not conflict by definition (at least what Beth promised in their curation). As for user esl plugins - haven't seen them yet.

Link to comment
Share on other sites

Personally for now I wouldn't include them at all, user created or official. If you read Arthmoor's post he mentions what has been confirmed and what has been observed. I feel there isn't enough control over the ESL files to reliably patch them. If you did it would be a nightmare of "if and elseif" statements to make sure that the record will override properly. Once you have the records patched into the Bashed Patch it's an ESP file so there is no guarentee that another ESL file won't override it anyway.

I also don't feel it's a good idea to make a separate patching system and call it a Bashed Patch 0.esl file because you don't know what other mods will override it anyway and you can't really reliably control where that bashed patch will load.

I know you are just verifying with Zilav and Arthmoor and that's fine, but Bethesda has decided how they handle ESL files and there are various conditions that make them behave how Bethesda wants that a mod authors can't control 100% of the time exactly how they want.

Link to comment
Share on other sites

14 hours ago, Sharlikran said:

@Arthmoor when you have time can you test this code please with the plugin you provided with issue 307? It has the utumno-wip code so you won't loose functionality.

I had a moment to test and it looks like the record was imported as correctly.  This is with Skyrim LE.

Spoiler

Issue-307-hrfixes.thumb.JPG.e74358355ba2155173b4086438308eb1.JPG

Oddly enough (once I saw what hrfixes did I wanted to use it) when I ported it to SSE it isn't mergeable anymore. :(

Not Mergeable
•  HRFixes.esp:

   New record(s) in block(s): QUST, SMBN, SMQN.

 

Link to comment
Share on other sites

15 hours ago, Sharlikran said:

@Arthmoor when you have time can you test this code please with the plugin you provided with issue 307? It has the utumno-wip code so you won't loose functionality.

That appears to have copied everything correctly. Bash is still activating the plugin after the patch is built though even though I told it to deactivate that.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...