DCS Additional Viewports - HeliosVirtualCockpit/Helios GitHub Wiki

Demo Video: https://youtu.be/DAYDTQYwCpM

Helios 1.6 optionally supports the modification of DCS installation files to add additional viewports and improve the rendering of extra viewports.

By adding the "DCS Additional Viewports" interface to a profile, you can specify that Helios should ensure that all aircraft viewports that Helios knows about are "patched." Helios ships with a set of patches that will modify the DCS installed files, similar to what a mod manager such as OVGME does.

By configuring the "DCS Additional Viewports" interface, you can modify all the viewport files for all aircraft that Helios knows about. If patches are installed or partially installed, the same button changes to "Revert Patches" so you can revert the DCS installation to its unpatched state.

Helios leaves copies of the unmodified files for your reference or for recovery purposes if reverting does not succeed because other changes were made manually. These files are left in their original locations but have a very long DCS version number appended to them. This is the full version number of DCS that these files match.

In normal operation, this Helios feature "just works." It will tell you when you have to apply the patches and you click the "Install Patches" button and you are done. However, since this is new functionality for Helios, here is a remedy that you hopefully will never need:

In case of failure, you can always revert all patches and erase all extra files by running the DCS update utility in repair mode. Open a command prompt, navigate to the DCS installation folder, navigate to the "bin" subfolder, and run dcs_updater repair. Select "Yes" to delete all user mod files. Finally restart Helios Profile Editor.

If your DCS installation is in the default installation location, it may not be writable by your Windows user account. In this case, Helios will execute an additional program called "HeliosPatching.exe" as administrator to apply or revert patches. Depending on your Windows UAC settings, you will likely see a prompt from UAC asking you if it is ok for this program to make changes to your computer. To allow Helios to write these mods as an administrator, you need to give it this permission. If your user account is not an administrator, then Windows will prompt for a password to an administrator account that will be used to apply the changes.

If anything goes wrong with this process, an additional log file called HeliosPatching Problems.log will be created alongside the other log files.

While the viewport patching functionality is similar to a mod manager, there are some significant differences:

1. Helios is not a general purpose mod manager

There is no UI for creating aditional patches or mods and adding them to the viewports patches. Patches will be created and managed by Helios developers and some highly motivated profile developers. So it is possible that profiles will come with additional patches that are installed along with the profile (to the Helios Documents folders.) However, it will not replace the use of a mod manager for any other mods that you might want to apply.

Helios will limit itself to just patching viewports and some common "readability" patches such as F/A-18C viewport rendering settings to make the viewports legible. Use another solution of your choice for any other mods.

2. Patches are used instead of "mods"

Helios does not replace entire files, like most mod managers do. Instead, its patches only apply specified small changes. This should allow Helios to avoid overwriting changes made by the DCS developers in future versions. As long as files are not changed too much, these patches (technical: specifically, they are google diff-match-patch patches) will continue to work correctly and only change the intended lines.

To keep this working, Helios will need to periodically release new patches for later versions of DCS if files change too much, which they historically have once every few years. Helios automatically uses the patches that are intended for the currently installed DCS version. So if Helios has multiple sets of patches available, it will choose those that covers the DCS version you have.

Creation of Patches

A future release of optional Helios tools will include tools you can use to make your own patches. For now, interested profile developers would have to compile Helios tools from source themselves if they need to add more patches to support new planes.

As mentioned above, Helios is cooperating with Jabbers' DCS Alternative Launcher to ensure compatibility going forward. This means you would be able to use either tool to generate your viewports and they will be compatible with Helios.

Using Customized Patch Sets

Use Case: User wants to modify some settings in a file we don't patch

In this scenario, the user should just go ahead and edit the files they want to change, either by hand or with a mod manager. Changes to files we don't touch do not affect Helios Patching at all.

Use Case: User wants to modify some settings in a file we do patch, but in a different area of the file

In this case, a mod manager cannot be used safely. Mod managers usually write the entire file, so they will destroy our changes and then Helios will wan t to patch again, indicating to the mod manager that the file is changed, and so on. The changes must be made by hand.

Most changes that users want to make are just changing some numbers such as colors, rendering settings, or line widths. These sort of changes can be made in the same file that Helios patches also. However, changes should be made in place and no lines of comments added, so that the file is changed as little as possible. The alignment of our patches in the file needs to stay as close as possible, so adding lines of comments just changes the size of the file and makes it harder for the patch to line up. So users are encouraged to just change the numbers they want to change and leave the rest of the file contents alone.

If the file is changed too much, then the DCS Additional Viewports interface will show the section of Lua that could not be matched. At that point, the user can change the structure of their changes to leave that portion of the file unchanged or they can transition to excluding the file and making the changes themselves. In that case, they should apply Helios patches to a clean file and then remove the file from Helios' ownership, so that the Helios required changes will be in it (at least for that version of DCS.)

Use Case: User wants to manage a specific file themselves

The DCS Additional Viewports interface editor (gear icon) shows the files that will be patched on the local machine. Individual files can be removed from the files to be patched. These files must then be managed by the user to ensure they contain the changes Helios requires (mostly viewport names.)

Use Case: User wants to change just part of the changes we make to a specific file

For example, Helios changes the line width of something and the user wants to change just that but let Helios patch the rest of the file.

This will not be supported. In this scenario, the user will have to follow instructions for managing the entire file