[PC] Mod manager - 7thHeaven (v1.54)

  • Thread starter Thread starter Iros
  • Start date Start date
Status
Not open for further replies.
So far everything seems to work. I had a crash, but this was caused by wrong commands in the script. You said that only the way I used the 'No' command was wrong, so is it possible to nest the 'Or' command in the 'And' command?
And I have no idea what 'Option' should do or when it is better to use it. ???
 
So far everything seems to work. I had a crash, but this was caused by wrong commands in the script. You said that only the way I used the 'No' command was wrong, so is it possible to nest the 'Or' command in the 'And' command?
Yes, certainly. And, Or, Not entries contain other entries, this can either be Option node, or another And, Or, Not, that is fine. It is just Not can only contain ONE child node.

And I have no idea what 'Option' should do or when it is better to use it. ???
Well, at some point you have to use Option to actually check a config var! And / Or / Not just combine the results of some other checks together in some way, so to do anything useful, there should be one or more Option entries that you then combine together with And/Or/Not to decide when the folder is active...

e.g.

Code: [Select]
Code:
<ActiveWhen>  <And>    <Or>      <Option>Sword = 0</Option>      <Option>Color = 0</Option>    </Or>    <Or>      <Option>Sword = 2</Option>      <Option>Color = 3</Option>    </Or>  </And></ActiveWhen>
For the first <Or> to be true, then either Sword must equal 0, OR Color must equal 0.
For the second <Or> to be true, either Sword must equal 2, OR Color must equal 3.

If BOTH of these are true then the <And> becomes true (and the folder is activated). If you have no <Option> entries then it will not check any config vars (and then why do you even bother to have the ActiveWhen entry?)
 
Lol, I missed the forest for the trees. ;D
Of course I use the <Option> command, but it looked for me as if this would be an operator like the others to define a condition when you mentioned it.
 
I used the "Check subscriptions now" button, but it looks like we still have to close and reopen to update the catalog after changing the metaversion.
 
I used the "Check subscriptions now" button, but it looks like we still have to close and reopen to update the catalog after changing the metaversion.
I THINK I have a fix for this, although I am not sure if I have seen the same error as you.

If I change a MetaVersion on a catalog, then update the catalog, then mods I see on the screen do not change, but if I refresh the display (e.g. by doing a search again) then the new details show up. Is that what happens for you?

If yes, then it's what I found, and next version should fix :)
 
That's what I would like to have happen, and if possible, have it automatically do the search button refresh when we hit the Check subs now button. All the changes I made were either in the Configure, Readme, or file structure, and I have to close and reopen 7H to get the updated download. I notice the catalog.xml does get updated with the new download address after using the Check subs now button, but for some reason, it doesn't live update with an open 7H.

EDIT: Looks like the blue progress bar isn't displaying anymore during a download.
 
Last edited:
New version v1.30: https://mega.co.nz/#!SVlVWD4A!49almnriOetNxk0Y7vZXiMHGwLwUxH3jPgJPJg5BPaY

If you have v1.29 installed then it will hopefully offer to update automatically.

Fix: Catalog refresh didn't update UI straight away
New: Compression support for IRO archives
New: Patch support for IRO archives

Explanation:

1) Compression. When you create a IRO archive you can choose whether to compress the files in it. This makes the IRO smaller (faster download or install, smaller disk space) but COULD mean it slows things down when running the game - because it will have to wait for a file to be decompressed, when it tries to access the file...

The options when creating a IRO are:

Never: Do not compress files at all.
Always: Always compress files. Probably not a good idea.
By Extension: Do not compress PNG, JPG, MP3, OGG files. Compress all other files. Probably a good idea, there is no point trying to compress a file which is already quite well compressed.
By Content: TRY to compress every file, but if it saves < 10% size, then do not bother. Will take longer to create the archive but should only compress files, which will actually benefit.

I have tested this and it works for me, but, like always, perhaps there are bugs so please try it and tell me :)


2) Patch support.

Imagine you have a big IRO file - music, movies, lots of PNGs, could be anything - and it is 1GB to download. Well, OK, it has to be that big if the files are high quality/long. Then you find a bug and want to release a new version - maybe a few of the PNGs need to be updated with a transparent fix. It is not very good for everybody to download the new 1GB mod again, when you have only changed 5MB of PNG files...

So, what you can do now is:

-When you upload the first version of the mod, you upload the large 1GB IRO file
-Then you make a new version. You still probably upload a new 1GB IRO file with the latest version - for people who are downloading the mod for the first time - but 7H will also let you create a patch file. This is a smaller file that contains only the changes between the first IRO and the newer IRO, so if you have only updated 5MB of files, it will only be ~5MB in size.
-If you include a link to this patch file in your catalog, 7H will automatically work out if the user has a version which can be patched, and if yes, it will download and apply the patch instead of downloading the whole thing again.

To make a patch file, there is a new tab on the IRO screen in 7H. You tell it where the original IRO is, where the new version IRO is, and where to save the patch. You also choose whether to compress files, same as creating a new IRO.

The catalog should look like this:

Code: [Select]
Code:
<?xml version="1.0"?><Catalog>  <UpdatedOn>2013-08-08 13:34</UpdatedOn>  <Mods>    <Mod>      <ID>BFAE987C-C1E6-C451-8139-FF039842D72E</ID>      <Author>Iros</Author>      <Link>http://forums.qhimm.com/</Link>      <Name>Test music/patching</Name>      <MetaVersion>1</MetaVersion>      <Description>Testing music in a IRO archive</Description>      <Tags>        <string>Music</string>      </Tags>      <LatestVersion>        <Link>iros://Url/http$www.myserver.com/7H/Music2.iro</Link>        <Version>2.0</Version>        <ReleaseDate>2014-08-08</ReleaseDate>        <CompatibleGameVersions>Original</CompatibleGameVersions>        <PreviewImage></PreviewImage>        <ReleaseNotes></ReleaseNotes>      </LatestVersion>      <Patch VerFrom="1.0" VerTo="2.0">iros://Url/http$www.myserver.com/7H/Music_1_to_2.irop</Patch>    </Mod>  </Mods></Catalog>
The "Patch" line says which version(s) the patch can update and what version it updates you to, and has the link for downloading the patch file 7H has created.

Questions? :)
 
Very cool stuff :D

Code: [Select]
Code:
<?xml version="1.0"?><Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  <UpdatedOn>2013-08-08 00:00</UpdatedOn>   <Mods>       <Mod>      <ID>d73a9d4b-7590-4df5-a269-c08153a446e9</ID>      <Author>Qhimm Modding Community</Author>      <Link>http://forums.qhimm.com/</Link>      <LatestVersion>        <Link>iros://GDrive/0B-Q_AObuWRSXZVA5WkdITkJGNVE</Link>        <ExtractSubFolder></ExtractSubFolder>        <ExtractInto></ExtractInto>        <Version>1.1</Version>        <ReleaseDate>2014-05-31T00:00:00</ReleaseDate>        <CompatibleGameVersions>All</CompatibleGameVersions>        <PreviewImage>http://i.imgur.com/qFoXAWD.gif</PreviewImage>        <ReleaseNotes />      </LatestVersion>      <Patch VerFrom="1.0" VerTo="1.1">iros://GDrive/0B-Q_AObuWRSXQ0RNeWpYcUhvVDA</Patch>      <MetaVersion>1</MetaVersion>      <Name>Field Models Patch Test</Name>      <Description>Test Test Test</Description>      <Tags>        <string>field</string>        <string>test</string>      </Tags>    </Mod>   </Mods></Catalog>
I haven't gotten a patch to work yet. First I downloaded the above at version 1.0 without the patch line. Then I added the patch line and updated it to version 1.1. 7H recognized the update and gave me an Update button in the Catalog tab, but it is stuck on Calculating as its progress. For the patch file itself, I packed the Field Models into an IRO using the ByContent compression method. I created a second IRO with the same compression method that has just an added Cloud model option. The IROP came okay it seems. I uploaded the original IRO and the IROP to Google Drive with the links above to them.

EDIT: Hmm, I remembered something. I had problems getting a download to proceed when the file size was below 1 MB. It was with the Animation category. So I added a text file in it to increase the size above 1MB and it downloaded after that. The patch I'm trying to test is under 1 MB in size.

EDIT2: I added some more files into the patch and increased its size from 77 KB to 442 KB. The patch downloaded and installed after that, so it looks like we'll need a fix for smaller file size downloads. Go figure we cover the extremely large files, but the small ones are now the buggers lol
 
Last edited:
Grr! Such a silly bug...

You are basically correct: although the limit wasn't 1MB, there was a bug with small GDrive downloads that stopped them from working sometimes. I wish all bugs had such useful bug reports though :)

Your IRO / IROP files and catalog XML looks absolutely fine so the new version should make them work.

v1.31: https://mega.co.nz/#!yR8i1T5S!5KTI8bwm64ucWhJX2c--kJz9C-Rx6DDnPxYuh_-x07c
(Auto update should work...)

Fix: Small GDrive files sometimes didn't download
Fix: IROP patches were not deleted after installing
 
Hmm, the auto update doesn't seem to work for me.

It repeats 'waiting file is in use' then I got the message that the install was unsuccessful and after this I got this.
System.UnauthorizedAccessException: Der Zugriff auf den Pfad "D:\Games\FINAL FANTASY VII\7th Heaven\Updater.exe" wurde verweigert.
   bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   bei System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
   bei System.IO.File.Copy(String sourceFileName, String destFileName)
   bei Iros._7th.Workshop.fLibrary.fLibrary_Load(Object sender, EventArgs e) in c:\Iros\7thWorkshop\fLibrary.cs:Zeile 57.
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.Form.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 
I still can't use the auto update properly. The updater.exe seams to crash and prevents 7th Heaven to start.
System.UnauthorizedAccessException: Der Zugriff auf den Pfad "D:\Games\FINAL FANTASY VII\7th Heaven\Updater.exe" wurde verweigert.
   bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   bei System.IO.File.InternalDelete(String path, Boolean checkHost)
   bei System.IO.File.Delete(String path)
   bei Iros._7th.Workshop.fLibrary.fLibrary_Load(Object sender, EventArgs e) in c:\Iros\7thWorkshop\fLibrary.cs:Zeile 56.
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.Form.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Somehow the exe will be deleted after a while, but it's impossible for me to delete it myself without having full admin rights and I don't want to unlock and switch to the administrator mode in win7.

When I try to update, the 7thHeaven.exe seems to be still in use. Even the manual way doesn't work and say the exe is in use. Only if I would restart my computer and then run the updater.exe the update will be made. But after this it tries to start 7H but keeps crashing until the update.exe is removed.
 
Thanks for the bug report!

It won't stop anything very important from working, it just means you will not be able to click links and have them open up in 7H automatically which is not really too bad. It may have been because you were not running as admin, but, the program should be able to cope with this really. So I will try and fix this for a future version.
 
Started using this for the first time and im pretty lost. Right now nothing launches. Its probably the directory settings i have are wrong. Im using windows 7 64 bit. Newest version of your program. Steam version of FF7. Is it setup correctly or am i missing something?
 
Last edited:
It doesn't work with the re-releases currently.  :'(

To use Aali's modpath Aali's driver must be installed and working! However this is only interesting for you if you want to use texture replacer mods. Maybe Omzy will do an alternative for this in the future, but even though Aali's driver is more stable as the creepy hack in by DotEmu.

Library location - correct
FF7.exe - correct but unsupported, maybe targeting it to the laucher is better (?)
Aali Modpath - wrong set up. In your case it should be C:\Games\FF7\mods, but this hasn't an effect for a native rerelease installment.
Movie Path - correct
Also Launch - well this is for additional programs which should start the FF7.exe. However the launcher will be started anyway so it's not really needed to launch this, too.
 
Thanks for clearing that up. I got my mod working using a different tool but ill test this later since you gave me the correct directory setup.
 
I have found a very minor bug. When I move in the configuration menu from a list option with a picture to a bool option without a picture, the last seen picture is placed to the bool option, too.
 
I've noticed that bug too. Once you check the box for the bool option, the preview image for it appears.
 
Status
Not open for further replies.
Back
Top