Ncpatch: Difference between revisions

From Homecoming Wiki
Jump to navigation Jump to search
imported>Kitsune (historical)
(Documenting the .ncpatch format, for use in future versions of CityLauncher)
 
imported>Aggelakis (historical)
m (overview, formatting, wikipedia: links)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The NCSoft Launcher distributes patches as compressed files with the extension ''ncpatch''. The files are compressed using the [http://en.wikipedia.org/wiki/Rar RAR format] (literally just renamed from ''.rar'' to ''.ncpatch'').
== Overview ==
'''ncpatch''' is the format used by [[NCsoft]] to distribute patches for City of Heroes using the [[Game Client|NCsoft Launcher]] utility.


Within the archive at the root is a folder with the same name as the containing archive, usually in the format of: '''CityOfHeroes_Main_''$FromVersion''To''$ToVersion''''', where ''$FromVersion'' is the version that is to be patched, and ''$ToVersion'' is the desired resulting/final version. Inside this folder is an xml file named ''PatchManifest.xml'' which instructs the NCSoft Launcher on how it should apply the patch, along with miscellaneous information such as MD5 checksums and file lengths (both pre- and post- patch).
== Format Description ==


Along with the ''PatchManifest.xml'' file, in the examined patch, is a folder named ''ProductFiles'' (defined in the manifest- name might be variable). This folder contains [http://en.wikipedia.org/wiki/Xdelta Xdelta based] patches with the extension ''.X-D-E-L-T-A'. Based on an examination of ''PatchManifest.xml'', it would appear that only the changed files are named, and ''not'' with the patch file itself not explicitly named. The name of the patch file can be surmised based on the individual 'Path' elements defined in the manifest, with the extra extension ''.X-D-E-L-T-A'', this makes it fairly simple simple to figure out what to patch, even if the manifest is ignored.
The NCsoft Launcher distributes patches as compressed files with the extension ''ncpatch''. The files are compressed using the [[wikipedia:RAR|RAR format]] (literally just renamed from ''.rar'' to ''.ncpatch'').


It should be fairly trivial to ''manually'' patch a City of Heroes installation, using only a program that can open RAR archives (such as WinRAR or the open source 7zip), along with the xdelta utility (a copy is actually present in the root of the NCSoft Launcher directory).
Within the archive at the root is a folder with the same name as the containing archive, usually in the format of: '''CityOfHeroes_Main_''$FromVersion''To''$ToVersion''''', where ''$FromVersion'' is the version that is to be patched, and ''$ToVersion'' is the desired resulting/final version. Inside this folder is an xml file named ''PatchManifest.xml'' which instructs the NCsoft Launcher on how it should apply the patch, along with miscellaneous information such as [[wikipedia:MD5|MD5 checksums]] and file lengths (both pre- and post- patch).
 
Along with the ''PatchManifest.xml'' file, in the examined patch, is a folder named ''ProductFiles'' (defined in the manifest- name might be variable). This folder contains [[wikipedia:Xdelta|Xdelta based]] patches with the extension ''.X-D-E-L-T-A''. Based on an examination of ''PatchManifest.xml'', it would appear that only the changed files are named, and ''not'' with the patch file itself not explicitly named. The name of the patch file can be surmised based on the individual 'Path' elements defined in the manifest, with the extra extension ''.X-D-E-L-T-A'', this makes it fairly simple simple to figure out what to patch, even if the manifest is ignored.
 
It should be fairly trivial to ''manually'' patch a City of Heroes installation, using only a program that can open RAR archives (such as WinRAR or the open source 7zip), along with the xdelta utility (a copy is actually present in the root of the NCsoft Launcher directory).
 
 
== Example Layout of a Patch ==
This patch would update City of Heroes from version ''1950.201102120907.1.0'' to version ''1950.201102230015.1.0''. This patch will modify a total of 12 files, 2 in the City of Heroes installation directory, and 10 in the piggs subdirectory.
 
  CityOfHeroes_Main_1950.201102120907.1.0To1950.201102230015.1.0.ncpatch
      -> CityOfHeroes_Main_1950.201102120907.1.0To1950.201102230015.1.0
          -> PatchManifest.xml
          -> ProductFiles
              -> version.ini.X-D-E-L-T-A
              -> cityofheroes.exe.X-D-E-L-T-A
              -> piggs
                  -> bin.pigg.X-D-E-L-T-A
                  -> geom.pigg.X-D-E-L-T-A
                  -> geomBC.pigg.X-D-E-L-T-A
                  -> geomV1.pigg.X-D-E-L-T-A
                  -> geomV2.pigg.X-D-E-L-T-A
                  -> mapsMissions.pigg.X-D-E-L-T-A
                  -> misc.pigg.X-D-E-L-T-A
                  -> player.pigg.X-D-E-L-T-A
                  -> playerFemHuge.pigg.X-D-E-L-T-A
                  -> playerMale.pigg.X-D-E-L-T-A
 
[[Category: Game Client]]

Latest revision as of 02:31, 16 March 2011

Overview

ncpatch is the format used by NCsoft to distribute patches for City of Heroes using the NCsoft Launcher utility.

Format Description

The NCsoft Launcher distributes patches as compressed files with the extension ncpatch. The files are compressed using the RAR format (literally just renamed from .rar to .ncpatch).

Within the archive at the root is a folder with the same name as the containing archive, usually in the format of: CityOfHeroes_Main_$FromVersionTo$ToVersion, where $FromVersion is the version that is to be patched, and $ToVersion is the desired resulting/final version. Inside this folder is an xml file named PatchManifest.xml which instructs the NCsoft Launcher on how it should apply the patch, along with miscellaneous information such as MD5 checksums and file lengths (both pre- and post- patch).

Along with the PatchManifest.xml file, in the examined patch, is a folder named ProductFiles (defined in the manifest- name might be variable). This folder contains Xdelta based patches with the extension .X-D-E-L-T-A. Based on an examination of PatchManifest.xml, it would appear that only the changed files are named, and not with the patch file itself not explicitly named. The name of the patch file can be surmised based on the individual 'Path' elements defined in the manifest, with the extra extension .X-D-E-L-T-A, this makes it fairly simple simple to figure out what to patch, even if the manifest is ignored.

It should be fairly trivial to manually patch a City of Heroes installation, using only a program that can open RAR archives (such as WinRAR or the open source 7zip), along with the xdelta utility (a copy is actually present in the root of the NCsoft Launcher directory).


Example Layout of a Patch

This patch would update City of Heroes from version 1950.201102120907.1.0 to version 1950.201102230015.1.0. This patch will modify a total of 12 files, 2 in the City of Heroes installation directory, and 10 in the piggs subdirectory.

 CityOfHeroes_Main_1950.201102120907.1.0To1950.201102230015.1.0.ncpatch
     -> CityOfHeroes_Main_1950.201102120907.1.0To1950.201102230015.1.0
         -> PatchManifest.xml
         -> ProductFiles
             -> version.ini.X-D-E-L-T-A
             -> cityofheroes.exe.X-D-E-L-T-A
             -> piggs
                 -> bin.pigg.X-D-E-L-T-A
                 -> geom.pigg.X-D-E-L-T-A
                 -> geomBC.pigg.X-D-E-L-T-A
                 -> geomV1.pigg.X-D-E-L-T-A
                 -> geomV2.pigg.X-D-E-L-T-A
                 -> mapsMissions.pigg.X-D-E-L-T-A
                 -> misc.pigg.X-D-E-L-T-A
                 -> player.pigg.X-D-E-L-T-A
                 -> playerFemHuge.pigg.X-D-E-L-T-A
                 -> playerMale.pigg.X-D-E-L-T-A