Jump to content

Sharlikran

Recommended Posts

Agreed, it's great to see work continuing on Mash! Once i'm sick of Oblivion I'll probably go back to Morrowind. That's where my modding first started, as well as my love for TES, and Skyrim's just so up in the air right now I don't even want to bother. So, thank you guys for any work you're able to do on Mash! :D

Link to comment
Share on other sites

Because of your issue I stopped looking for all the strings I need to change to Unicode for now. What I am doing instead is making sure that all the directories and settings are correct. One thing I notice is when Wrye stored the directory name in the settings.pkl file, it was saved as a string. When Wrye Mash is running there is a GPath routine that changes it from a string to a Path type of variable. If you try to join or split that using the wrong commands it can break things. Who knows I may have missed something.

While that may or may not be true, that I missed something because I may not have, it's still very odd. I don't see why it works for me and not you. If I had missed a path or string for a directory or folder the code would error for me.

One thing I have been getting at is this. The data files will contain different information now as a side effect of having unicode data. it's not controlled by the Python installs as I have mentioned.  I have not had time to type any instructions yet, but if you are willing to try, this is what I was thinking. If you read my previous post, I list all the data files for Wrye Mash. If you backup all those files that should be everything. I could have missed something but it doesn't seem to have any references for the users folder.

Once you backup all the files, delete them. If there is a way to load old settings or the installers.dat file don't.  Does the program work then?  If not look for an additional installers folder.

Wrye Mash will make an installers directory as a fallback when it can't detect the Morrowind install. That random stray folder sometimes causes me issues.  What you would be looking for are the folders I mention in the post I made, then an stray folders in the Morrowind folder, the Mopy folder, just under the Morrowind folder, and in the Data Files\Mash folder.  Once they are all gone, you should be able to start up test 004 and it should start. It will make an INI file when you exit in the Mopy folder with one of the settings. It just does that. But I think it only does it if you don't have one. I am going to double check for my before I release my next test version for you to look at.

 

 

Link to comment
Share on other sites

3 minutes ago, Sharlikran said:

One thing I have been getting at is this. The data files will contain different information now as a side effect of having unicode data. it's not controlled by the Python installs as I have mentioned.  I have not had time to type any instructions yet, but if you are willing to try, this is what I was thinking. If you read my previous post, I list all the data files for Wrye Mash. If you backup all those files that should be everything. I could have missed something but it doesn't seem to have any references for the users folder.

Perhaps this is why I can't launch tet004 due for the Bash Installers in the mash.ini file.  I'll try to change that then launch test004, just to see if that helps.

FWIW, The other day I did just that and that's to delete everything without having the Bash Installers in the mash.ini file.

Now, after you comment that I think I know the reason why I couldn't launch test004 due for not having the Bash Installers in the mash.ini file.  I'll try that and post my findings later.

Link to comment
Share on other sites

In its current state, the state I had test 004 when you downloaded it, if you had no folders for Wrye Mash at all, anywhere, Wrye Mash should start. Then it will ask for the Morrowind folder. As long as you don't cancel that, all the creation of the folders should take place, and the INI file is made automatically.

In test 005 I have refined how Wrye Mash works. Currently, in my dev version, it no longer needs you to specify where Morrowind is. It will automatically find it. If for any reason it can't it will still prompt you for the location.

One additional feature I am adding is the specification for the Installers folder, and the Installers Data folder.  The installers folder is where all the zip files are that you install the game to.  The other is where the data is stored as to which files are installed, what ESP/ESM files belong to the installer, etc. All that data will be in the Installers Data folder.  The reason I want to have that in the INI is, once I am done, it would all you to have two installs of Wrye Mash, but only one Installers folder.  What you would end up with is one install for Steam, a Mopy folder in the steam folder, with a unique INI file for Steam. You would specify the shared installers folder, and the unique installers data folder.  For the Retail install, you have a Mopy folder, and another unique INI file for Wrye Mash. Once you specify the unique installer data folder, now you have have one shared installers folder, two separate games (retail and steam) with completely different mods installed.

Link to comment
Share on other sites

I created the mash.ini file exactly from what you posted here, except for the game path, and still tes004 won't launch.

Also, when you tested the test004;  did you already had the improved and extended Wrye Mash Settings window working in the code or not?

17 minutes ago, Sharlikran said:

One additional feature I am adding is the specification for the Installers folder, and the Installers Data folder.  The installers folder is where all the zip files are that you install the game to.  The other is where the data is stored as to which files are installed, what ESP/ESM files belong to the installer, etc. All that data will be in the Installers Data folder.  The reason I want to have that in the INI is, once I am done, it would all you to have two installs of Wrye Mash, but only one Installers folder.  What you would end up with is one install for Steam, a Mopy folder in the steam folder, with a unique INI file for Steam. You would specify the shared installers folder, and the unique installers data folder.  For the Retail install, you have a Mopy folder, and another unique INI file for Wrye Mash. Once you specify the unique installer data folder, now you have have one shared installers folder, two separate games (retail and steam) with completely different mods installed.

If you mean an extended and improved Wrye Mash Settings window then I agree it does have a purpose.

But if you mean something different then I disagree, because the user can change that by them self via the green disk icon and it was Melchor who made it possible.  Plus he also allow any user regardless if one is a modder or a player to switch between to copies of Wrye Mash (I know it's working since I've done that myself) by installing his WMSA outside of the Morrowind\Mopy folder.  Which no one has made it possible except for Melchor.

So I think the best route would be to look in the code for Melchor's WMSA and see how he made it possible to install Wrye Mash Stand Alone outside of the Morrowind\Mopy folder.

Link to comment
Share on other sites

On the note of the Melchor, Yacoby thing, as I stated earlier, Melchor started with Wrye's code. Yacoby started with Wrye's code also. At this commit Yacoby overwrote all his own changes with Melchor's code and from there made changes. So it's all the same code.  You should be able to have Wrye Mash outside the Mopy folder. I am pretty sure the my next revision will allow you to do that. However, the optional feature I am adding is the ability to specify one installer folder for the archives themselves, but separate installer data folders. That's not currently possible.  With that you can have multiple installs of Morrowind like you have with the Retail and Steam version, share the installers, but have separate data folders to store what you have mods you have installed.  That's not possible with one INI file. You would have to have swap INI files all the time.

Link to comment
Share on other sites

Could we please slow down a bit, it's getting too much for me to follow you.  First, I don't see the test005 you mentioned in your previous post and I need to get it working before I can comment on what you plan to add/change for future builds. :)

Link to comment
Share on other sites

G:\Games\steamapps\common\Morrowind Mods\Bash Installers\Bash\Installers.dat <<-- Installer Information
G:\Games\steamapps\common\Morrowind\Data Files\Mash\Table.pkl <<-- Table?? Not sure what it's for actually
G:\Games\steamapps\common\Morrowind\Data Files\Mash\Backups <<-- Backups of all the files, such as files altered by tes3cmd
G:\Games\steamapps\common\Morrowind\Saves\Table.pkl <<-- Table?? Not sure what it's for actually
G:\Games\steamapps\common\Morrowind\Mopy\settings.pkl <<-- Wrye Mash Settings

Try Test 005.

Please rename files and folders so you can easily restore them. So table.pkl, call it old_table.pkl, or Bash Installers/Mash Installers rename that to Bash Installers Old also. Since they are renamed you should be fine but, you might want to delete the .bak files if you have any.  Just try to keep backups but at the same time make it as if it were a clean install of Wrye Mash. Don't make an INI file either. Just run the program. What should happen is you should not have to do anything. It should open up to the mods tab automatically. Then if you go to the installers tab it will run that but since it's a new folder, the list will be empty. It also should detect Mlox as well, as long as you are using the current_mlox archive I have posted.

Once you close Mash then if you go to the Morrowind Mods folder you should have two folders. One for Mash Installers, and the other for Installers Data. The Installers Data folder should have the Installers.dat file. That's about all I want to test. I tested it myself and it worked, which this time I copied the Python code to the Morrowind folder so I could test it from there. Just to make sure it worked. The new idea about having one shared installers folder and separate installer data folders might not work yet so don't try that. It might I just have to look at things more.

Now if you want to try it, although I didn't test it, is you can try to make it work from outside the Morrowind folder. If you do then you should make an INI file. There is a default one with all the information. You should change all three lines to the Morrowind folder you are using Mash with.

Link to comment
Share on other sites

Can't launch it with exactly the same error and this time I didn't have WMSA installed. :wallbash:

Wrye Mash Log!
Traceback (most recent call last):

:angry: (not at you)

Link to comment
Share on other sites

I have to figure out the log file thing because it's just useless the way it is.  I'll work on that next.  Thanks for trying.  However, really any files in that list, the settings.pkl. table.pkl, or installers.dat, will cause it to error. Including the installers.dat the older versions make. I have to try the older version and see where it had the file as a fallback. I think it was in the Mopy folder.

Link to comment
Share on other sites

A small, but important, update needs to be posted.

Anyway, I was getting frustrated why I couldn't launch WMSA-test005.  So I actually removed WB307 from my system, because I must update WB307 sooner or later due the recent changes made in WB (Save Headers for SSE along with the CC stuff etc).

After I installed Python 2.7.12 and wxPython 2.7.8.12.1 Unicode along with comtypes 0.6.2 and py2exe 0.6.9 (not sure if that's the correct version since it's stated in the readme I needed to have py2exe 0.6.8 installed).

Now, I could compile the code into Wrye Mash.exe, plus I also tried your latest WMSA-test005 archive which allowed me to launch it and select what path Morrowind was installed.

Also, your recent changes to the Morrowind Mods folder was now created as expected.

Unfortunately, I still get the same error, I posted in my previous post, without seeing the GUI for WMSA and that's the only thing I could do atm.

 

Aside for that I think the localization.py file might need to include, not only US-version of Windows, but also non-US version of Windows otherwise I won't be able to launch WMSA.

Link to comment
Share on other sites

The localization.py is the exact same stuff that the old 87 used, I just moved it to one file.  That 's not to say that Mash isn't handling locale correctly. I don't think Mash ever did.  There were comments in it for as Wrye put it Hacks for German and whatever.  However, I don't think it's that. There is some other error but the traceback is simply useless the way it is.

Link to comment
Share on other sites

There is a way to test this and I think @Beermotor can verify why I get the error, but also verify if the mash.ini is created because I don't have the mash.ini file in the Mopy folder after I launched WMSA-test005.

Link to comment
Share on other sites

But WMSA has always automatically created a mash.ini file after the user have launched WMSA, even Yacoby's WMSA does this which your code is based on.

Link to comment
Share on other sites

But I changed it. That's the point. If you manually edit the INI, the old routine would read in the INI file, and then resave it, every time. So anything I added to it would be erased. Although the intent of the change was to save one if there wasn't an INI file. However, for you it might not save because of the error you are getting.

Link to comment
Share on other sites

I thought to share what error I got after I launched Wrye Mash.py, included in the Wrye-Mash-dev-yacoby-wrye archive I downloaded today and compiled the code into a Wrye Mash.exe file.

Wrye Mash Log!
# Generating comtypes.gen._99AB80C4_5E19_4FD5_B3CA_5EF62FC3F765_0_1_0
# Generating comtypes.gen._00020430_0000_0000_C000_000000000046_0_2_0
# Generating comtypes.gen.stdole
# Generating comtypes.gen.myole4ax
# Generating comtypes.gen._EAB22AC0_30C1_11CF_A7EB_0000C05BAE0B_0_1_1
# Generating comtypes.gen.SHDocVw
Traceback (most recent call last):
  File "G:\Bethesda Softworks\_tes\_tes3\_tools\Wrye Mash\Wrye-Mash-dev-yacoby-wrye\Mopy\Wrye Mash.pyw", line 86, in <module>
    main(opts)
  File "mash\mash.py", line 84, in main
    app = masher.MashApp(redirect=False)
  File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7981, in __init__
    self._BootstrapApp()
  File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7555, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "mash\masher.py", line 3179, in OnInit
    size=conf.settings['mash.frameSize'])
  File "mash\masher.py", line 2643, in __init__
    self.notebook = notebook = MashNotebook(self, wx.ID_ANY)
  File "mash\masher.py", line 2561, in __init__
    self.AddPage(ModPanel(self),_(u"Mods"))
  File "mash\masher.py", line 1567, in __init__
    globalvars.modList = ModList(self)
  File "mash\masher.py", line 930, in __init__
    guiWxList.__init__(self, parent, -1, ctrlStyle=(wx.LC_REPORT))
  File "mash\gui\__init__.py", line 194, in __init__
    self.PopulateItems()
  File "mash\gui\__init__.py", line 245, in PopulateItems
    self.PopulateItem(itemDex, mode, selected)
  File "mash\masher.py", line 984, in PopulateItem
    value = formatInteger(fileInfo.size / 1024) + u' KB'
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 1: ordinal not in range(128)

 

Link to comment
Share on other sites

At some point if I just keep running into a wall trying to make this work for you and unicode I might just make a branck and pull my hair out of my head for two weeks and try to convert it to Python 3.6 because then I don't have to worry about all the stupid unicode stuff.

Link to comment
Share on other sites

1 minute ago, Sharlikran said:

But I changed it. That's the point. If you manually edit the INI, the old routine would read in the INI file, and then resave it, every time. So anything I added to it would be erased. Although the intent of the change was to save one if there wasn't an INI file. However, for you it might not save because of the error you are getting.

Ah, that make sense.  I need to ask, why did you changed that?

Just now, Sharlikran said:

At some point if I just keep running into a wall trying to make this work for you and unicode I might just make a branck and pull my hair out of my head for two weeks and try to convert it to Python 3.6 because then I don't have to worry about all the stupid unicode stuff.

I see.  Well do you want me to install Python 3.6 and if you want me then why not, sure I can do that.  Is that the latest Python version?

Link to comment
Share on other sites

I already explained why.  Because Wrye Mash just arbitrarily saved a new INI file every time it exited the program.  Look at the mash_default.ini file. If I had not changed it, then all that would be erased.

Link to comment
Share on other sites

4 minutes ago, Leonardo said:

 

I see.  Well do you want me to install Python 3.6 and if you want me then why not, sure I can do that.  Is that the latest Python version?

No, silly, you can't install 3.6 and run Wrye Mash the syntax is different.

Link to comment
Share on other sites

41 minutes ago, Sharlikran said:

I already explained why.  Because Wrye Mash just arbitrarily saved a new INI file every time it exited the program.  Look at the mash_default.ini file. If I had not changed it, then all that would be erased.

I did looked at the new mash_default.ini file in WMSA-test005 and you changed it when I compared to it to the one that's exists in WMSA 87.

So, what do I need to do in order to be able to launch WMSA-test005.  Extract the WMSA-test005 archive and manually create a mash.ini file then launch Wrye Mash.exe.

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...