Author Topic: [PC] Mod manager - 7thHeaven (v1.54)  (Read 411558 times)

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #425 on: 2014-07-18 05:26:24 »
Can we add a text box for Aali's mod path in the opengl config?

Code: [Select]
  <Setting xsi:type="TextEntry">
    <Group>Aali</Group>
    <Name>Mod Path</Name>
    <Description>Set the mod path to use for Aali's Custom Driver.</Description>
    <Option>mod_path</Option>
<Suggest>Aali</Suggest>

Is there anyway to have it place files in the root folder? A couple mods benefit from their own files placed there.
« Last Edit: 2014-07-18 06:11:04 by EQ2Alyza »

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #426 on: 2014-07-18 06:28:23 »

Is there anyway to have it place files in the root folder? A couple mods benefit from their own files placed there.

Really? Hm, do you have an example? Didn't know there were files in the root that were worth overriding...

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #427 on: 2014-07-18 12:56:40 »
Not overriding anything in this case. It's just for the multi.dll, but I think Dan has retired it recently, so no biggie.

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #428 on: 2014-07-18 13:24:43 »
Oh, OK. For loading DLLs it is probably more straightforward for me to just add DLL inject support into 7H so a mod can load a DLL. It's trivial since 7H is already injecting its own DLL...

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #429 on: 2014-07-18 13:25:49 »
I haven't added the mod path for only one plenty of reasons:
I have enough of finding out why a texture don't work and of the extra work with manual copy'n'paste, only because some authors wants to separate their mods and changing the name of a mod path (Bootleg, DK, Avalanche, Reunion). We don't need this with 7th Heaven anymore, (actually we never needed this). Lets call it 'textures' (because that's all what it is) and later will follow 'audio' and 'voice' into the mod folder (maybe 'extra_shader' if Aali finds a suitable way for the light layer replacement).
Lets came to this agreement, then we don't need the extra option to set Aali's modpath. And it looks better sorted in a 7.H mod, if every external texture (and its folder) is stored in 'textures'. I can imagine that someone is confused to see field.lgp and field at once. Some people try to learn how another mod authors has built their mods, so it won't only helps us to have a better sorted mod structure. I also don't won't to store the same texture doubled, one in bootleg/battle/ and one in Reunion/battle/ only to be prepared for a possible mod path swap. Of course I could direct 7th Heaven to use the mod path /mods/bootleg, BUT if I change it in the opengl config to Reunion then I need to direct 7th Heaven to the new modpath too or else none texture mod will work. This causes only problems at the end.

So for the sake of lesser (user) bug reports let us:
  • name the mod path for external textures 'textures'
  • point 7th Heaven only to .../mods
  • place in the 7.H. mods all external texture stuff in 'textures'

There is a lot of stuff in Aali's custom driver which is useful for moders and setting another mod path for testing is one of those, but I don't want to bug the average user with it. In future the New Timer option will also be gone, because the bug I had with it is solved. It's simply a 'it has to be on' option now.

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #430 on: 2014-07-18 13:37:48 »
I'm a bit OCD when it comes to organizing, so that works for me. Textures it is :)

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #431 on: 2014-07-18 13:39:50 »
Oh, OK. For loading DLLs it is probably more straightforward for me to just add DLL inject support into 7H so a mod can load a DLL. It's trivial since 7H is already injecting its own DLL...

Wouldn't this mean that the dll are loaded twice? One time by 7th Heaven and one time by Hext_launch. Couldn't you simply add a set path for Hext_launch.exe and then launch it automatically through 7th Heaven? As long as all dll are placed in dll_in everything should work fine.

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #432 on: 2014-07-18 13:48:04 »
Wouldn't this mean that the dll are loaded twice? One time by 7th Heaven and one time by Hext_launch. Couldn't you simply add a set path for Hext_launch.exe and then launch it automatically through 7th Heaven? As long as all dll are placed in dll_in everything should work fine.

Well, for DLLs you want to always load, then put them in your DLL_in folder I suppose. But if you want to include a DLL in a 7H mod (either a mod folder or a .iro) then it is certainly easier for 7H to load it.

(Loading DLLs is slightly different to replacing PNG / LGP files or similar. Because you do not just have to convince FF7 - or Multi.dll, or Aali's driver - that the new file exists even when it is not really there - you have to convince Windows as well, because it is Windows that actually does the work to load a new DLL...)

I'm a bit OCD when it comes to organizing, so that works for me. Textures it is :)

Well, I see two ways of doing things.

One is this way, it makes the mods organized better, but the mod path in Aali's driver MUST be set to 'textures' or things stop working.

The other is that, since 7H can load the opengl cfg file, then instead of asking the user to choose the mod path, we just read it from the cfg file. So whatever it is set to, even if the user changes it, 7H will continue to work.

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #433 on: 2014-07-18 14:11:17 »
There is another option...

You could check the mod folder and the mod path in the opengl.cfg. If it's not called 'textures' then it will renamed to it.
However if a textures folder is already in the mod path and a different named one is present too, then 7th Heaven will give a warning with the option to place the content of the stranger mod folder into the textures folder.

Code: [Select]
Warning! There is a mod folder which isn't named Textures.
Shall the content of it merged into Textures?
   Yes              No

If yes:
Code: [Select]
This will overwrite everything in the Textures folder with the content of the other(s) mod folder(s).
Are you sure?
   Yes              No

Of course we need an exclusion list for non texture related mod folder, but this should solve everything.
« Last Edit: 2014-07-18 14:27:39 by Kaldarasha »

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #434 on: 2014-07-18 23:09:32 »
By the way this happens if I try to start the Steam version with 7th Heaven:

Code: [Select]
System.MissingMethodException: The given user library does not export a proper Run(EasyHook.InjectionLoader+REMOTE_ENTRY_INFO, _7thWrapperLib.RuntimeProfile) method in the 'EasyHook.IEntryPoint' interface.
   bei EasyHook.RemoteHooking.CreateAndInject(String InEXEPath, String InCommandLine, Int32 InProcessCreationFlags, String InLibraryPath_x86, String InLibraryPath_x64, Int32& OutProcessId, Object[] InPassThruArgs) in C:\Code\EasyHook-2.7.4761.0-Source\EasyHook\RemoteHook.cs:Zeile 944.
   bei Iros._7th.Workshop.fLibrary.Launch(Boolean varDump, Boolean debug) in c:\Iros\7thWorkshop\fLibrary.cs:Zeile 733.
   bei Iros._7th.Workshop.fLibrary.bLaunch_Click(Object sender, EventArgs e) in c:\Iros\7thWorkshop\fLibrary.cs:Zeile 632.
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.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)

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #435 on: 2014-07-19 03:04:29 »
All the sudden I'm getting an error after installing any new .iro and attempting to move it up the list on the Active Mods tab.

Code: [Select]
System.InvalidOperationException: Sequence contains no matching element
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
   at Iros._7th.Workshop.fLibrary.ChangeProfileItem(pMod pm, Int32 change) in c:\Iros\7thWorkshop\fLibrary.cs:line 379
   at Iros._7th.Workshop.fLibrary.DoModBarAction(pMod pm, ModBarAction a) in c:\Iros\7thWorkshop\fLibrary.cs:line 423
   at Iros._7th.Workshop.pMod.bDown_Click(Object sender, EventArgs e) in c:\Iros\7thWorkshop\pMod.cs:line 159
   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)

I also have a question about how list priorities work. If I have two separated mods, each with a kernel.bin for example, will the one above use its kernel.bin and negate using the one below at all? Or does it use the one below first, then overwrites it with the one above?
« Last Edit: 2014-07-19 04:45:51 by EQ2Alyza »

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #436 on: 2014-07-19 11:50:49 »
All the sudden I'm getting an error after installing any new .iro and attempting to move it up the list on the Active Mods tab.

Hm, I cant reproduce that :/ can you give me any more details about exactly what you're doing?

[EDIT: Or post/upload the contents of your %APPDATA%\7thWorkshop folder - exclude the cache if it is too big. That will let me see your library/mod setup]

Quote
I also have a question about how list priorities work. If I have two separated mods, each with a kernel.bin for example, will the one above use its kernel.bin and negate using the one below at all? Or does it use the one below first, then overwrites it with the one above?

The first option, I think.

If two mods both contain the same file, then the higher priority file is used, and it is like the low priority mod did not contain that file at all, the file will never be accessed at all. When FF7 loads a file, 7H goes down the list of mods in priority order seeing "does this mod replace the file?" and as soon as it finds a mod that does replace the file, it stops searching.
« Last Edit: 2014-07-19 14:06:50 by Iros »

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #437 on: 2014-07-19 13:14:21 »
We might need an extra tab to install non-7th Heaven related mods like the Games Converter, Aali's custom driver, DLPB's Tools and possibly implementing the registry cleaner from Kompass63.

I think it's alright if we place all the mods in an install folder and 7th Heaven will install them properly. The last things I could imagine which would be useful are a voting system and donate buttons for the mods (and for 7th Heaven  :wink:).

Well I running out of ideas slowly ...  :roll:
« Last Edit: 2014-07-19 16:03:49 by Kaldarasha »

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #438 on: 2014-07-19 15:43:26 »
7thWorkshop: https://mega.co.nz/#!mkIzxDJS!NpgInvormThuuK0Ka8SoFM5rQwAj_fy2BSxfDZGKlbE

What about if they are packed into the same .iro, then does the list order within it take any priority? If not, I'll have to pack the Menu Overhaul and Gameplay mods into the same .iro since they have a lot of overlapping files. I imagine that will still give some compatibility issues. Bootleg manages to install them in a specific way/order so that they are all compatible, so I know it can be done.

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #439 on: 2014-07-19 19:07:31 »
7thWorkshop: https://mega.co.nz/#!mkIzxDJS!NpgInvormThuuK0Ka8SoFM5rQwAj_fy2BSxfDZGKlbE

Thanks, I will look at it.

EDIT: Reproduced the bug, thanks! Next version will fix it, might be tomorrow.

Quote
What about if they are packed into the same .iro, then does the list order within it take any priority? If not, I'll have to pack the Menu Overhaul and Gameplay mods into the same .iro since they have a lot of overlapping files. I imagine that will still give some compatibility issues. Bootleg manages to install them in a specific way/order so that they are all compatible, so I know it can be done.

Yes, the order any extra folders are listed in the mod.xml sets the priority.

When 7H is checking if a mod replaces a certain file, it looks at the contents of the mod like this:

1. -Checks in the 'root' of the mod (e.g. if FF7 wants battle\scene.bin, it looks in modfolder\battle\scene.bin). If it finds the file, uses it and stops looking.

2. -Checks through any extra folders listed in 'ModFolder' entries from mod.xml, in the order they are listed in mod.xml. If it finds the file in any of those folders, uses it and stops looking.

3. -Checks through any conditional folders listed in 'Conditional' entries from mod.xml, in the order they are listed in mod.xml. If it finds the file in any of those folders, uses it and stops looking.


So basically yes: the order you list folders in mod.xml is important and you can control which folder takes priority that way.
« Last Edit: 2014-07-19 19:23:23 by Iros »

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #440 on: 2014-07-21 03:33:19 »
I can't seem to get any of the gameplay mods to work. Debug will show that the various .bin files are being overridden by 7H, but the game will crash on launch and the APP.LOG reports that the .bin files cannot be read. I have tested all the .bin files and get the same crash message for them all.

Code: [Select]
[00000000] INFO: FF7/FF8 OpenGL driver version 0.8.1b
[00000000] INFO: Auto-detected version: FF7 1.02 US English
[00000000] INFO: NVIDIA Corporation GeForce GT 525M/PCIe/SSE2 4.3.0
[00000000] INFO: OpenGL 2.0 support detected
[00000000] INFO: Using PBO
[00000000] INFO: Found swap_control extension
[00000000] INFO: Max texture size: 16384x16384
[00000000] INFO: Original resolution 640x480, window size 1600x900, output resolution 1200x900, internal resolution 3840x2160
[00000000] INFO: Shader limits: varying 124, vert uniform 4096, frag uniform 2048
[00000000] INFO: FFMpeg movie player plugin loaded
[00000000] INFO: FFMpeg version SVN-r25886, Copyright (c) 2000-2010 Fabrice Bellard, et al.
[00000000] INFO: VGMStream music plugin loaded
[00000000] INFO: Loading external library multi
[00000000] LOCK UNLOCK TEST
[00000001] MATRIX INITIALIZE
[00000001] INITIALIZE DD/D3D END
[00000001] initializing sound...
[00000001] creating dsound primary buffer
[00000001] reading audio file
[00000001] loading static sounds
[00000001] sound initialized
[00000001] ERROR: could not read from file C:\Games\Steam\steamapps\common\FINAL FANTASY VII\data\kernel/kernel.bin (22373)
[00000001] ERROR: could not read from file C:\Games\Steam\steamapps\common\FINAL FANTASY VII\data\kernel/kernel2.bin (13764)
[00000001] ERROR: unhandled exception

Can you try testing this mod for Aeris Revival and see what it does for you: https://mega.co.nz/#!GtxSiQxA!yHkW3Jtmv6P1F2LTg2cPjK2zMAzrmcibSCJtxb-O_Q4

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #441 on: 2014-07-21 05:03:32 »
By the way that's not a real bug, but if a mod uses chunks of the flevel.lgp it disables all non-chunks flevel.lgp folders in other mods (even if they are loaded at first). I think that 7. H. searches at first for chunks and then for flevel files, but if it find a chunk it stops searching for the other flevel files. That's not really a problem because a.) mod's which uses chunks are smaller and b.) the farer away we are from the original file archives the better for us.

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.24)
« Reply #442 on: 2014-07-21 15:42:47 »
I can't seem to get any of the gameplay mods to work. Debug will show that the various .bin files are being overridden by 7H, but the game will crash on launch and the APP.LOG reports that the .bin files cannot be read. I have tested all the .bin files and get the same crash message for them all.

Can you try testing this mod for Aeris Revival and see what it does for you: https://mega.co.nz/#!GtxSiQxA!yHkW3Jtmv6P1F2LTg2cPjK2zMAzrmcibSCJtxb-O_Q4

Ah, well found: my fix for the vgmstream files broke the .bin files, grr. Still easily fixed now you have noticed it. Also, it is quite slow to load FF7 with that mod active, I will try and speed things up - it should not be so slow.

v1.25: https://mega.co.nz/#!3JUikL4T!DAN4uVVGRpRS2PXQOEgVPRAJA7DGzP_vKWMYhIh7Wo8
-Fix .bin files not loading from archive
-Speed loading up a bit
-Fix error changing priority of mods in some situations

By the way that's not a real bug, but if a mod uses chunks of the flevel.lgp it disables all non-chunks flevel.lgp folders in other mods (even if they are loaded at first). I think that 7. H. searches at first for chunks and then for flevel files, but if it find a chunk it stops searching for the other flevel files. That's not really a problem because a.) mod's which uses chunks are smaller and b.) the farer away we are from the original file archives the better for us.

Well, maybe not a big problem, but it shouldn't happen :/ so I may fix this in another version

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #443 on: 2014-07-21 16:04:55 »
Woohoo, ty ty :) I'll give it a go now.

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #444 on: 2014-07-21 21:37:28 »
All seems well with the latest fixes. I have one more bug to report. I like to keep my Active Mods list in Compact Mode, but whenever I import a new mod and activate it, it isn't compact in the Active Mods list. I can compact it by unchecking, then checking the box, but every so often this causes 7H to crash. I don't get the 7H Error message, but instead I get the Windows "program has stopped working" message. When I reopen 7H, any mods I imported during that session will then be deactivated and show this in the Library tab: http://i.imgur.com/6W0tuR8.png

I can uninstall the mods and import them again, and it all works again until the next crash. I've had several of these crashes happen.

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #445 on: 2014-07-21 22:28:26 »
A cosmetical but also practical change: Instead as showing me only the number of a chunk I would also like to see for what the chunk stands for.

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #446 on: 2014-07-21 23:38:48 »
And I can't use different chunks at once. I want use from the Aerith mod only chunk 1 and chunk 3, but it doesn't work.
« Last Edit: 2014-07-22 01:21:03 by Kaldarasha »

EQ2Alyza

  • 7th Heaven Crew
  • Global moderator
  • *
  • Posts: 3199
  • Dilly-Dally Shilly-Shally
    • View Profile
    • EQ2Alyza - YouTube Channel
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #447 on: 2014-07-22 01:26:55 »
What's the folder structure to use for chunks? flevel.lgp\xxxx.chunk.x?

I have not tested that feature yet, but I'll take Kaldarasha's word for it. If we get it working, then we should have no issues with compatibility between Menu Overhaul and any gameplay mod.

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #448 on: 2014-07-22 01:33:02 »
The chunks needs to be placed in the flevel.lgp folder.

Iros

  • 7th Heaven Crew
  • *
  • Posts: 229
  • Files for the file god! Mods for the mod throne!
    • View Profile
Re: [FF7PC] Mod manager - 7thHeaven (v1.25)
« Reply #449 on: 2014-07-22 07:38:48 »
What's the folder structure to use for chunks? flevel.lgp\xxxx.chunk.x?

I have not tested that feature yet, but I'll take Kaldarasha's word for it. If we get it working, then we should have no issues with compatibility between Menu Overhaul and any gameplay mod.

Yes - e.g. flevel.lgp\mrkt2.chunk.1 or flevel.lgp\mrkt2.chunk.2 etc.

I will have a look at the other problems...