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

  • Thread starter Thread starter Iros
  • Start date Start date
Status
Not open for further replies.
That's awesome, thanks. I think the majority of members are either using the 98 version or used bootleg to convert to it, so that would be a great feature to add. Otherwise if needed I think you can change where the games movie directory is. It would be cool if we could skip that step though and just use ff7\movies since having to change it would result in plenty of troubleshooting questions. In the mean time I'll get this put together and have it tested on versions that do use data\movies.
 
There is a small tool by Dan that changes the movie directory by editing the registry value.
 
Ok cool so if need be that's always a possibility. Having that as a necessary step though will probably cause a lot of questions with new members so it'll be cool if the new 7thheaven release can make this work as is. Ok so I have a first draft ready. I'll package it into an .iro so it's ready for testing, but it'll also post it here so you guys can check it out and offer any input. I'm also unsure about the HD ending3 option since I need it to have the highest priority, so it'll be used over the full screen and original versions. At the moment I don't think that's how it'll work.

~Made a few changes and trying to at least import .iro to 7thheaven so I can test the configuration options. I keep getting this error. What does it not like about line 10? It's the <ModFolder Folder="hd" ActiveWhen="hd = 1"> line. 44 is the last one.

    ~Ok, even tried removing line 10 so it's blank, same error.

Code: [Select]
Code:
System.Xml.XmlException: The 'ModFolder' start tag on line 10 position 4 does not match the end tag of 'ModInfo'. Line 44, position 3.   at System.Xml.XmlTextReaderImpl.Throw(Exception e)   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)   at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)   at System.Xml.XmlTextReaderImpl.ParseEndElement()   at System.Xml.XmlTextReaderImpl.ParseElementContent()   at System.Xml.XmlTextReaderImpl.Read()   at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)   at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)   at System.Xml.XmlDocument.Load(XmlReader reader)   at System.Xml.XmlDocument.Load(Stream inStream)   at Iros._7th.Workshop.fImportMod.ImportMod(String source, String name, Boolean iroMode) in C:\Iros\7thWorkshop\fImportMod.cs:line 75   at Iros._7th.Workshop.fImportMod.bOK_Click(Object sender, EventArgs e) in C:\Iros\7thWorkshop\fImportMod.cs:line 109   at System.Windows.Forms.Control.OnClick(EventArgs e)   at System.Windows.Forms.Button.OnClick(EventArgs e)   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)   at System.Windows.Forms.Control.WndProc(Message& m)   at System.Windows.Forms.ButtonBase.WndProc(Message& m)   at System.Windows.Forms.Button.WndProc(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Current mod.xml: Code: [Select]
Code:
<?xml version="1.0"?><ModInfo>  <Author>cmh175</Author>  <Version>1.00</Version>  <Description>cmh175 HQ FMV Pack</Description>  <Link>https://www.ff7catalog.com/threads/9645/</Link>  <PreviewFile></PreviewFile>    <ModFolder Folder="fmvs" ActiveWhen="vid = 1">  <ModFolder Folder="hd" ActiveWhen="hd = 1">  <ModFolder Folder="fullscreen" ActiveWhen="res = 0" />  <ModFolder Folder="original" ActiveWhen="res = 1" />          <ConfigOption>    <Type>Bool</Type>    <Default>0</Default>    <ID>vid</ID>    <Name>cmh175 Remaster FMVs</Name>    <Option Value="0" Name="" PreviewFile="" />    <Option Value="1" Name="" PreviewFile="" />  </ConfigOption>    <ConfigOption>    <Type>Bool</Type>    <Default>0</Default>    <ID>hd</ID>    <Name>HD Ending3 Video</Name>    <Option Value="0" Name="" PreviewFile="preview\ending3.png" />    <Option Value="1" Name="" PreviewFile="preview\hd_ending3.png" />  </ConfigOption>  <ConfigOption>    <Type>List</Type>    <Default>0</Default>    <ID>res</ID>    <Name>Ending Video Resolution</Name>    <Description>This lets you change between full screen or original ending videos.</Description>    <Option Value="0" Name="fullscreen" PreviewFile="preview\fullscreen.png"/>    <Option Value="1" Name="original" PreviewFile="preview\originalsize.png"/>  </ConfigOption></ModInfo>

By the way, I use Xpontus. It's free and so much easier to use than notepad.
 
Last edited:
I haven't looked at Xpontus OR the advanced variables yet. I'm really just running around like trying to keep up with the laundry and still keep an eye on my inbox since I just sent out like 70 some odd PMs in 1 day.
I use Notepad++. I like how it makes everything different colors! :P

One thing:
I was thinking about requesting a place to add a text file from the author (if available) to the preview and/or installs.
7thHeaven, as it is turning out, will allow you to:
Preview mods, download them, install them, UNinstall them, swap them, configure them, rearrange their active order to avoid conflicts should they arrise, not to mention it allows special events to modify mod interactions with the game... For instance, if you wanted to alter a particular scene you could easily change entire groups of models without changing any game files.   

Ideally the authors of the more complex mods would get involved in the process so they have total control over what options are configurable in the modManager via the xml files. I think I may ask Iros if a readme or text file can be included in the preview or at least the installed .iro mods. To me, the readme file is the ultimate form of ownership on a mod. If a designer chooses not to include one, it's fine, but I would like to be able to totally legitimize the subscription by including the authors' notes where possible.
 
OK, new version release v1.05:  https://mega.co.nz/#!TZAzQZDb!JDv1dlQdu4XVa3vShFG5e2O1wypxiKxwqDeR0LM4Go8

You have anticipated my denouement.

-Improve decompression speed for downloaded mods
-Add 'readme' option for mods installed in library
-Add movie path to settings & capture accesses in wrapper
-Fix case sensitivity when overriding LGPs

To put a readme file in a mod, just include a file called 'readme.txt' in the top level of the mod folder (i.e. same place as mod.xml). Should still work when packed into a iro file.

~Made a few changes and trying to at least import .iro to 7thheaven so I can test the configuration options. I keep getting this error. What does it not like about line 10? It's the <ModFolder Folder="hd" ActiveWhen="hd = 1"> line. 44 is the last one.
You haven't closed the tag correctly. Whenever you open (start) a tag in an XML file, you need to close it when you have finished writing the data for that tag. Either it needs to be:

<ModFolder Folder="hd" ActiveWhen="hd = 1"></ModFolder>

...which closes it without putting any text or other tags in between, because ModFolder doesn't need any extra information; or,

<ModFolder Folder="hd" ActiveWhen="hd = 1" />

...which is basically shorthand for the same thing.

Some tags (like 'Author') have to have text inside them; some of them (like 'ConfigOption') have to have other tags inside them. in that case you always put the other text/tags, then close it like '</Author>' or '</ConfigOption>' to indicate "I'm done with this section". Even though ModFolder never has anything else inside it, you still need to tell the program that you're finished with that tag and it doesn't contain anything else.

Most web browsers will open XML files and format them for display - just so you can check 'is this a valid XML file?'. Obviously they can't tell you if it contains the right data for 7thHeaven to work - but they will pick up formatting errors like that which make the file invalid. Just a quick way to check.

One last thing ... I have added the movie path into the settings, but the way I had to write it means the paths I gave you before are wrong. Probably they should look like this:

YourModFolder\mod.xml
YourModFolder\fullscreen\  <-- containing all full screen movies
YourModFolder\original\ <-- containing all original movies
YourModFolder\hd\  <-- containing hd movie(s)
 
Thanks Iros, getting closer I think. I fixed the directory so it matches your example, and the xml now does open in IE. Progress I guess since it didn't do that earlier. So a new error, even more confusing becuase I don't have a negative number anywhere.

Code: [Select]
Code:
System.ArgumentOutOfRangeException: Non-negative number required.Parameter name: value   at System.IO.FileStream.set_Position(Int64 value)   at _7thWrapperLib.IrosArc.GetBytes(String name) in C:\Iros\7thWrapperLib\IrosArc.cs:line 165   at Iros._7th.Workshop.fImportMod.<>c__DisplayClassa.<ImportMod>b__6(String s) in C:\Iros\7thWorkshop\fImportMod.cs:line 77   at Iros._7th.Workshop.fImportMod.ImportMod(String source, String name, Boolean iroMode) in C:\Iros\7thWorkshop\fImportMod.cs:line 85   at Iros._7th.Workshop.fImportMod.bOK_Click(Object sender, EventArgs e) in C:\Iros\7thWorkshop\fImportMod.cs:line 109   at System.Windows.Forms.Control.OnClick(EventArgs e)   at System.Windows.Forms.Button.OnClick(EventArgs e)   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)   at System.Windows.Forms.Control.WndProc(Message& m)   at System.Windows.Forms.ButtonBase.WndProc(Message& m)   at System.Windows.Forms.Button.WndProc(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
New xml:
Code: [Select]
Code:
<?xml version="1.0"?><ModInfo>  <Author>cmh175</Author>  <Version>1.00</Version>  <Description>cmh175 HQ FMV Pack</Description>  <Link>https://www.ff7catalog.com/threads/9645/</Link> <PreviewFile>preview\menu.png</PreviewFile>    <ModFolder Folder="fmvs" ActiveWhen="vid = 1"/>    <ModFolder Folder="hd" ActiveWhen="hd = 1"/>  <ModFolder Folder="fullscreen" ActiveWhen="res = 0"/>  <ModFolder Folder="original" ActiveWhen="res = 1"/>          <ConfigOption>    <Type>Bool</Type>    <Default>0</Default>    <ID>vid</ID>    <Name>cmh175 Remaster FMVs</Name>    <Option Value="0" Name="" PreviewFile="" />    <Option Value="1" Name="" PreviewFile="" />  </ConfigOption>    <ConfigOption>    <Type>Bool</Type>    <Default>0</Default>    <ID>hd</ID>    <Name>HD Ending3 Video</Name>    <Option Value="0" Name="" PreviewFile="preview\ending3.png" />    <Option Value="1" Name="" PreviewFile="preview\hd_ending3.png" />  </ConfigOption>  <ConfigOption>    <Type>List</Type>    <Default>0</Default>    <ID>res</ID>    <Name>Ending Video Resolution</Name>    <Description>This lets you change between full screen or original ending videos.</Description>    <Option Value="0" Name="fullscreen" PreviewFile="preview\fullscreen.png"/>    <Option Value="1" Name="original" PreviewFile="preview\originalsize.png"/>  </ConfigOption></ModInfo>
Not familiar with notepad ++, cool feature though. Main reason I like Xpontus is because of how it organizes everything. It has a menu list on the side so it shows how I have everything configured, and it numbers each line.
 
How big is the .iro file you have created? You may have found a bug in the code.

Also, you don't need to pack the folder into a iro file to test it in 7thWrapper - importing the folder directly should work too. (And if this is a bug, let you work around it for now!)
 
Well it's pretty big. It's every single video I've made for the game, so it's 3.4 gb. Template was stress testing 7thheaven so this shouldn't be an issue should it? I'll try it with the regular folder to see if that corrects it.

Damn you're right, it imports as a regular folder. The only preview picture that works is the main one, but otherwise it lets me configure all the options I set. I cant test it to see if this works yet...games not actually installed on this computer. I just wanted to see if it even opened in 7thheaven.

I'm also noticing the "release" info isn't accurate. For mine in the pic it is, but I added Kaldarashas and it says today's date too.

Untitled-8.png
 
Last edited:
Batch import from .iro with all same files as previous stress test was much faster than import from folders. It did still say it was not responding, but it was done pretty quick after. I'll do a little savegame scavenger hunt with Ensala's savepack to test the .iro Facepalmer install.

This seems almost unreasonable to ask about, but what do you think about drag and drop ordering in the active Mods tab, Iros?

Edit: cool, I'll get rid of the facepalmer.iro, thanks for saving me the trouble. Is that a limitation we're gonna have to learn to live with? No problem at all if so, just getting an idea for what's gonna fit and what wont.
 
Last edited:
The Facepalmer iro is unlikely to (completely) work. The problem is with creating iro files >2GB in size. So some of the files in it will load, some won't.
 
Oh crap, than mines way too big. That maybe the issue right there. Is it possible to fix that? Mods that big aren't common, but mine may not be the only one. Otherwise I'll divide it into two and make a base video file with the 105 regular videos. The five variantions of the ending videos are the biggest ones anyway. Hopefully that'll bring me down enough.
 
Idea: multi-part IROs. Specify the number of parts within the xml, which is in the first part, and the others can be .ir2 and .ir3 or something like that. Anything past 2GB can automatically be split.
 
It's not difficult to fix. Next version will support it.
Awesome.

It might be a good idea to split at 4GB anyway. I doubt too many people are still using FAT32 filesystems these days, since near everything defaults to NTFS these days, but those that are may run into a hard limit of 4GB. On the other hand, this group is small enough that I don't know if it's worth supporting.
 
Ok cool that's good. I could figure out the multi-part IROs, which is a good idea too, but this is already proving difficult for me so far. Next I need to figure out why my preview pictures don't work. I think they're too big resolution or file wise. I'll make them smaller and use .jpg's like Kaldarasha did. Of course that's after seeing how these work in the game too. Right now I actually have two files being selected for ending3 (if you select HD ending3 option) I'm hoping it'll go with the HD video the way it's set now. If not can I add a priority argument to it or something? I'm sure there's a way to sudo this or something lol.
 
Unable to launch in 1.05 blackscreens with oops something bad happens. Only 1 small mod activated.

Sorry  :oops: I don't think it's on this end.

Perhaps a lead.. it's crashing the exact same way it did when battle.lgp folder was capitalized.
 
Last edited:
Ok cool that's good. I could figure out the multi-part IROs, which is a good idea too, but this is already proving difficult for me so far. Next I need to figure out why my preview pictures don't work. I think they're too big resolution or file wise. I'll make them smaller and use .jpg's like Kaldarasha did. Of course that's after seeing how these work in the game too. .
If the images for your options aren't loading, that may be another bug :/  Looks like they are only loading reliably from iro files. Again, will fix for next version :)

Right now I actually have two files being selected for ending3 (if you select HD ending3 option) I'm hoping it'll go with the HD video the way it's set now. If not can I add a priority argument to it or something? I'm sure there's a way to sudo this or something lol
If you have multiple ModFolder tags in your mod.xml file, and more than one is active (and the same filename is in more than one of the folders), then the folder that appears first in the mod.xml file takes priority.

Basically the wrapper goes down the list of folders in the order they are listed in the mod.xml file, and the first one that matches is used.
 
Oh well that's awesome than. I thought that may work but it seemed too easy lol. So I'll test the unwrapped folder just to be thorough and I'll look into the preview pictures later when 7thheaven can use large .iro files. It sounds like everything should be good otherwise.
 
Possibly irrelevant, but magic.lgp contains some structural anomalies.
Great promise. Model swapping intrigues me.
 
Boy, yah, I really didn't get why the mod magic folder out of bootleg40 looked the way it does... but the magic.lgp file itself has folders in it... uLGP .7 can handle it, though. Hadn't actually got that far yet, but I hadn't planned on adding any magic mods outside of aali's modpath. People will have to get the Team Avalanche stuff from the installers, I think, which is fine.

Good news, following Iros's instructions and the examples he has left I was first able to mimic his small catalog, and then I got my own catalog running by posting the xml on pastebin. I don't suppose you know some magical html>xml trick to get my catalog.xml to run off gdrive itself? This really isn't important. Anyway the download for HQBarretRedux took about 1 second and installed in 2, from a 7zip file with extract to set for battle.lgp. This frikkin program is amazing...
 
Last edited:
Status
Not open for further replies.
Back
Top