Description

A small utility that makes sure EA C&C mods do not conflict any more with one another.

Preview
EA Games Launcher
Post comment Comments
Zeke_Dlyoung
Zeke_Dlyoung

A few questions:
1. Where would you place the mod files? Do you just install everything in your ZH folder?
2. How exactly does this go about activating each mod? Does it work like other launchers (renaming big files and disabling the default scripts folder)?
3. Can this launcher be used with any mod, or does it only work with certain mods?

Reply Good karma Bad karma+3 votes
tomstefanou Author
tomstefanou

Hi Zeke_Dlyoung!

1) All mods have to be installed under one directory in order to be discovered. In my case as I had the first decade installed it was convenient to have everything else in there as well. The important part is that all mods are installed in the same parent folder that hosts your Z.H installation. In my case everything is installed in "D:\Program Files\EA Games\The First Decade".

2) What it does essentially is when you run a mod, moves every other mod except the one you want to run and your Z.H one to the bin. That way it makes sure there are no conflicts between the mods. Once it detects that you have stopped playing your mod and exited it restores everything as it was before.

3) Please feel free to give it a go and let me know if you discover that it does not work with certain mods, as I have only tested it with the mods you can see on the attached screenshot.

Reply Good karma+2 votes
Zeke_Dlyoung
Zeke_Dlyoung

How does it know which files belong to which mod, and can it tell whether it needs to disable the ZH scripts or not?

Reply Good karma Bad karma+2 votes
tomstefanou Author
tomstefanou

Hi Zeke_Dlyoung,
Let me explain based on what i am used to doing.
Prior to installing a mod I create a copy of the Zero Hour folder, i rename it based on the mod name and then this is where i install the mod.
So what this little utility does then is scan for mods in the parent directory and then deletes them at folder level. That way you don't have to worry about the ini files as you will only have the ini file of the mod that you run loaded.
I will prepare a youtube video demonstrating functionality so whilst this being prepared please bear with me...

Reply Good karma+1 vote
tomstefanou Author
tomstefanou

I have now uploaded a small video depicting the functionality of the Launcher. Feel free to view it here: Youtu.be
Apologies in advance for the terrible audio quality.

Reply Good karma+1 vote
Zeke_Dlyoung
Zeke_Dlyoung

Uh, I don't know how to break this to you, but if a mod is in a copy of your ZH folder, it has no way of interfering with other mods. Mods can only interfere with each other if they are installed in the same ZH folder. Your mods may all be in the EA Games folder, but since they are in seperate ZH folder copies, you don't have to delete the others, you can just run the generals.exe program that is in the folder to run the mod you want.

I use this system, in fact I made a tutorial on how to do it before: Docs.google.com

The problem with this method though, is that it uses a lot of space. So if I may make a suggestion, what you could do is make a launcher that looks for mod files saved in a folder inside your ZH folder, and move them to the game folder to run the mod, then after it's done it moves the files back into the mod folder to keep your ZH folder clean. You could also include a feature, that disables the ZH scripts folder, for mods that use their own AI, and maybe the ability to set custom screen resolutions, and run the mod in quickstart and/or window mode.

Reply Good karma Bad karma+1 vote
Efreak
Efreak

Use jdupes to replace duplicate files with hardlinks; this way instead of having 'Zero Hour\generals.exe' and 'Zero Hour Shockwave\generals.exe' and 'Zero Hour Contra\generals.exe' pointing to different parts of the hard drive and taking up a total of 18.5mb, all three will point at the same spot and take up the same 6.5mb of space. This will save you the space the base install takes up for all but one base install. Instead of taking up ~5.24gb, ZH, Contra, and Shw will take up ~2.88gb (folder properties will not reflect this as windows explorer doesn't recognize hardlinks, but disk properties will--right click the drive in 'this pc' or 'my computer' and go to properties to view total disk usage before and after linking files)

The command you want for jdupes is `c:\path\to\jdupes.exe -Lr "c:\path\to\Zero Hour" "c:\path\to\shockwave" "c:\path\to\contra" "c:\paths\to\other\mods"`.
For example, all my mods are installed in 'J:\games\c&c\mods\ZH' and ZH is installed via both origin and TFD, so I use `c:\programs\jdupes.exe -Lr "J:\Games\C&C\Mods\ZH" "J:\Program Files (x86)\Origin Games\Command and Conquer Generals Zero Hour\Command and Conquer Generals\" "J:\Program Files (x86)\EA Games\Command & Conquer The First Decade\Command & Conquer(tm) Generals\generals.exe"`

You can get to the command prompt by running cmd.exe from the start menu (or run menu).
You can append as many paths as you want to this command; just make sure to include the double-quotes around them if you have spaces or other special characters in them.
Tip: you can actually drag entire files and folders into the command prompt from windows explorer. This will add the full path to that file (including the name of the file itself and any necessary quotes) to the end of the current command line. So you can drag jdupes into the command prompt, type -Lr, and then drag each folder in--just make sure to add spaces in between paths.

You can usually get jdupes here: Github.com but at time of writing, you'll need this link, as the latest version has no downloads: Github.com

tomstefanou you may want to build this functionality into your application. It should be extremely simple to download and run jdupes.exe on the path the application uses.

Reply Good karma Bad karma+1 vote
tomstefanou Author
tomstefanou

Hi Zeke_Dlyoung!,
I can reassure you that we had quite a lot of issues with the mods even when they are in their own folders. Especially with Shockwave.
Also with one of the Contra mods we were getting quite a few disconnections during multiplayer and all these issues are now gone for us. There are always better ways to do things and that's for sure, I just wanted to share this little tool with you guys because ever since we started using it we haven;t faced any issues again. Thank you for the suggestion though I will look into it :).
Regarding adding code that enables custom screen resolutions etc, although it would be nice, I would not like to interfere more with files that are already being modified. Maybe when I know a bit more about how the whole thing works internally.
Regards,
Tom

Reply Good karma+1 vote
tomstefanou Author
tomstefanou

@Zeke_Dlyoung: I had a look at the document and to be frank this is how I had organized my mods as well, a separate installation for each mod based on a clean copy of the Z.H folder. Still had conflicts though. What I think of doing is add support for the command parameters contained in the linked document. Probably during the weekend :)

Reply Good karma+1 vote
tomstefanou Author
tomstefanou

To anyone interested :)
I got a youtube comment from Chappeh55 asking why don't I copy paste the files somewhere else instead of deleting them. I haven't benchmarked but will give that a go as well and in case of any significant speed increase will adopt.

Reply Good karma+1 vote
Ghost-PC
Ghost-PC

hi this my ideas good work

Reply Good karma Bad karma+1 vote
Ghost-PC
Ghost-PC

but on .net framework 4 only

Reply Good karma Bad karma+1 vote
Dr.Vector
Dr.Vector

How can I make it Start my own Mod

Reply Good karma Bad karma+1 vote
tomstefanou Author
tomstefanou

@TheAVenger3: You shouldn't have to do anything really,
as long as the mod you want to play is on the same folder level as the rest of your mods, then its executable should be discovered by the launcher and displayed in the list of mods.

Reply Good karma+1 vote
Dr.Vector
Dr.Vector

Okay, thanks tomstefanou

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: