Iros - v1.52: https://mega.nz/#!aQdXiZYA!aJnVbQH5kWSi5sC6QMdgPmjKmhfUdsP-87R70j90ub4
ficedula - v1.54: http://www.ficedula.co.uk/7thHeaven/7H_1.54.zip
Long time lurker here. The idea about being able to (de)activate mods more easily appeals to me, right now I have nothing installed other than Aali's driver + FF7Music, the idea of basically reinstalling/patching every time I want to try a mod out seems awkward.
So I've written a wrapper program that will intercept reads to the LGP files by FF7, and selectively replace the data the game reads. An example might make it easy to understand...
I set up a folder containing files I want the game to use. The file structure looks like this:
|- menu_us.lgp (a folder named this - not an LGP file)
|- char.lgp (again, a folder)
When the game tries to read cloud.tex from menu_us.lgp my wrapper intercepts this, and redirects it to read from the file in my 'mod1\menu_us.lgp' folder instead. Same with the other files. The LGP files themselves remain UNALTERED - all I do to make the game use my new versions is drop them into the mod1 folder and run the game from my wrapper.
You can give the wrapper multiple file paths to check - your file structure might look like:
The wrapper will check the mod paths in the order they're specified in its configuration file. So in the above case, it'll use cloud.tex and earith.tex from mod1 (ignoring the versions in mod2, mod1 takes priority), but it'll use buster.tex from mod2 (since mod1 doesn't have that file) - and off course, any files not present in the mods, come from the original LGPs instead.
Especially if a number of different mods all change DIFFERENT files, this means they should co-exist quite happily - and even if two mods change the same files and don't work properly, changing which mods you run the game with is just a case of launching the wrapper again with a different set of paths
I understand Aali's driver can do something similar, but I think the ability to specify multiple source paths (and choose which takes priority) is a worthwhile addition?
Download link: https://mega.co.nz/#!xVohQJRY!aIyPJ0L65zXM2Da6_PXQrQvOfiIpRrek5eG_X_QPdTY
Anticipating some questions:
Q) How to use it?
A) Run the 7thWrapper.exe file. Tell it the locations of (1) your FF7 exe, (2) the 7thWrapperLib.dll, (3) the mod paths to search for files. You can edit the config file to avoid specifying these every time. You can also run it with a /LAUNCH command line option to make it run FF7 straight away then exit (could be useful for making a shortcut; or a front-end tools for easy mod selection?).
Q) Does it slow the game down?
A) Yes but maybe not much. It takes ~1 second longer to launch the game for me, and it then runs without any noticeable slowdown. HOWEVER - I haven't tried it with a mod that changes hundreds of files at once. If it does then I should be able to optimize the code, it's definitely not as fast as it could be yet. If anybody can suggest some good mods to test it with that change lots of files, perhaps I can try them and see how well it works (or you can try it and report back?).
Q) What does/doesn't it work with?
A) It SHOULD work with any file that comes from within an LGP. I've tried loading savegames, running around in the field, going into a battle, accessing menus, and that worked, so it SEEMS stable. Just not tested very much yet. It doesn't currently work to change non-LGP files; e.g. sound effects, kernel bins, or PNG files for Aali's driver. It could be made to work with these too: I just haven't done that yet, this is only a first release! It does work OK with Aali's driver, off course - you don't have to go back to running the game using the old renderer. FF7Music also works fine (that doesn't change game files anyway I think?).
I haven't yet figured out how to deal with mods that want to patch FF7.exe, that seems like it would be interesting to deal with.
Q) How to figure out if it's working?
A) It outputs debug information through OutputDebugString, so any tool (e.g. DbgView - or FF7Music?) that views that will let you see the logs of what is happening.
Q) It doesn't work!
A) Reply here and maybe we can figure it out?
Only tested on my PC so far, so I expect there will be problems with it that I don't know about. Maybe lots of problems. It's only a first release!
(Mods: Posted this here because it seemed relevant to the thread, but split off or move it if you think this is in the wrong forum?)
Comments / suggestions for how to improve it welcome.