RBPatch
v1.4.3 - Copyright (c) 2002
Red Baron Patch Manager (RBPatch) is a patch management application for Red Baron II/3D. All Campaign Manager (CM11) patch management features have been fully implemented and hopefully improved upon. RBPatch’s patch format is fully CM11 compatible. This should be the last 1.x version, unless serious flaws are discovered.
Please report any bugs to mtorrielli@mag-cor.com and leave your comments at benchmarksims.com.
If upgrading from CM11, simply move all subfolders of CM11\Patches into RBPatch\. If not, please note that most recent patches such as WFP, OTE 4-Seasons, etc., will work out of the box by unzipping them into RBPatch\. For patches that are not distributed in CM11 format, such as Revenge of the Jastas, you must create a folder for the patch in RBPatch\, and then unzip the patch into a subfolder of this newly created folder, corresponding to the directory in Data where these files should go. In the above example (ROTJ), unzip the ROTJ archives into RBPatch\ROTJ\SimPatch or RBPatch\ROTJ\ShellPat.
You must now run RBPatch.exe. Hit the "Browse" button next to the "Launch" button and select Baron.exe in your Red Baron II/3D directory.
There will be no patches present yet, so you must select "Tools->Add Patch" from within the RBPatch application. Fill in the blanks, and make sure that "Patch Folder" corresponds to an existing patch directory located within the RBPatch folder. Please note, you must ensure that no patches are currently applied before adding a new one.
Once the patch has been created, you must reload RBPatch by selecting "View->Reload". You will now see your newly created patch in the main RBPatch window. The empty square box indicates that the patch has not yet been applied.
To apply the patch, simply click on the square box to check it, then click on the "Apply Changes" button.
If the patch is date-based, such as WFP, you must apply a date. Select "Tools->Set Date". You have three options:
1) Enter a date manually (yymmdd) by filling in the date and hitting "Ok".
2) Set the date by grabbing it from a saved campaign. Hit "Browse" to select one of your campaign files.
3) Modify one of your campaign files. Enter a date manually, then hit the "Modify Campaign" button to select one of your saved campaigns.
All three will update your SimPatch directory with all appropriate date files from your date-based patches. The difference lies in the fact that in the third case, you are moving your campaign to the specified date, which obviously gives you access to earlier dates than Red Baron allows in the Pilot Setup menu.
Please keep in mind that you must always set a date right after adding a date-based patch before playing Red Baron II/3D.
Furthermore, RBPatch will not allow you to overwrite the files of one patch with files from another patch, unless the latter is a sub-patch of the former. This is a feature, by the way. You must therefore make sure that there are no conflicting files in your patches. Unlike CM11, RBPatch will simply not allow you to apply a patch that conflicts with another currently applied patch.
For patches such as OTE 4-Seasons that contain mini-patches (spring, summer, autumn, winter), and WFP (WFPFM, DMv1.1, MvR, DeltaK, etc.), you must set these so-called "mini-patches" as children of the main patch, or they will not apply. Use the "Tools->Add Sub-Patch" Dialog to add such "mini-patches".
If you want to create patches for RBPatch, take a look at a .rbp file in a text editor. The format should be fairly obvious. To make a line a comment, put a semicolon as the first character on the line.
Every .rbp patch has a unique identifier. This is called a GUID (Globally Unique IDentifier). GUID's are very important for several reasons. The first thing they do is give RBPatch a reliable way of identifying a specific patch.
This appears
in the .rbp as:
[ID]
ID=518E65C5-9438-11B2-85AB-0050046B61BF
.rbp files can also specify their parent patch. This can be specified in two different ways. First a patch can directly reference a parent by including "ParentID=518E65C5-9438-11B2-85AB-0050046B61BF" in the [ID] section, or the parent .rbp file can define a subdirectory to look for .rbp files in with the path group option. This looks like:
[Options]
CheckGroup/OptionGroup
PathGroup=Labels
All the .rbp files in the PathGroup subdirectory will automatically become child files of the .rbp that specified the PathGroup.
Look at the Labels.rbp patch for an example of this.
So now you've defined parent and child relationships. These are reflected in the RBPatch UI in the tree structure. For patches that replace entire files, having a copy of a new file of the parent and the original file of its child would be inefficient since they would be exactly the same file. For this reason you can include the special key "<ParentNew>" instead of a file name for the original copy of a file.
To help create [PatchInfo] sections, you can use the Tools->Create PatchInfo file... menu option. When you use this you will first have to pick the original file, then you will have to pick the new file, and then you will have to pick the file you would like the diff information to be saved to. The diff file that is created will have everything you need to create a [PatchInfo] section. The file name that the diff file uses will have a full path. You will want to cut this down to its relative path in order to use it.
An .rbp file is made up of several different sections. Unneeded sections can be omitted. The format of an .rbp is:
[ID] - Identifies this patch and any
relationships.
ID=GUID - Unique identifier for this patch.
ParentID=GUID - Identifies this patches parent.
RefreshID=GUID - A list of patches to refresh when this patch is applied
or unapplied.
OnAddApplyID - Apply another patch when this .rbp is applied.
OnAddUnapplyID - Uanpply another patch when this .rbp is applied.
OnRemoveApplyID - Apply another patch when this .rbp is unapplied.
OnRemoveUnapplyID - Unapply another patch when this .rbp is unapplied.
[Name] - The name you want to display.
[Description] - The description you want to display.
[Creator] - Who created the patch or enhancement.
[Credit] - Does anyone else deserve credit?
[Readme] -
File with more information about the patch.
[Options]
[AddAlert] - A message that is displayed when a patch is set to be applied.
[RemoveAlert] - A message that is displayed when a patch is set to be unapplied.
[Registry] -
Registry entries
ROOT\Key\Value \\ {Action [<ReplaceSubString>]} \\ Orig Value \\ New Value
[DirectoryInfo]
- Directory operations
{Action [<Create>]} : {Directory Name}
[FileInfo] -
Complete files you want to replace
{FilePath from defined exe} - {Orig Replacement File}, {New Replacement File}
See the Persist section for more information.
[PatchInfo] - Patch list for the user defined exe.
{Offset} - {Orig Hex}, {New Hex}
[FileName] - Name of zip file.
{FilePath from defined exe}
[ZipInfo] - Files within the FileName zip file that
you want to replace.
{FilePath from defined exe} - {Orig Replacement File}, {New Replacement File}
See the Persist section for more information.
[FileName] - >Name of another file you want to
patch.
{FilePath from defined exe}
[PatchInfo] - Patch list for the .rbp defined file.
{Offset} - {Orig Hex}, {New Hex}
[FileName] - >Name of another file you want to
patch.
{FilePath from defined exe}
[TextInfo] - Text change list for the .rbp defined
file.
{Action [<ReplaceSubString>]},{Delimiter},Orig
Text{Delimiter}New Text
[PluginInfo] - Plugin list
{Plugin filename}:{Plugin defined data}
[ShellInfo] - Execute other programs
{Type [Apply | Unapply]} = {Path [<SystemCommand> | <RBPatchDir> |
<InstallDir>] : Command
[ShortcutInfo] - Install shortcuts
{FilePath from defined exe}
Once you've written your .rbp files you probably want to distribute them to other people. You have two choices. If the people you are distributing your work to already have RBPatch you can simply send them your .rbp files. If they don't have RBPatch you may want to create an Installation Package for them.
To create an installation package, use the Tools->Create Installation Package menu command. This will present you with a dialog giving you some options for your installation package. Once you have selected the options you like, you will be asked to provide the name of your installation package. Once you provide this, RBPatch will create a special executable that will contain all the patches you have selected in one executable that can be easily given to others and used by them.
The package options are:
Note: If you include an exe named Baron.exe then when people apply your patch, it will overwrite their existing Baron.exe. Then if people unapply your patch, RBPatch will delete RedBaronII.exe leaving them without an exe. If your included exe is named something unique then this problem is averted.
>>EOF<<