<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.herc.ws/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.herc.ws/w/index.php?action=history&amp;feed=atom&amp;title=Triad_Patcher</id>
		<title>Triad Patcher - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.herc.ws/w/index.php?action=history&amp;feed=atom&amp;title=Triad_Patcher"/>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/w/index.php?title=Triad_Patcher&amp;action=history"/>
		<updated>2026-05-30T15:42:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.21.11</generator>

	<entry>
		<id>https://wiki.herc.ws/w/index.php?title=Triad_Patcher&amp;diff=91&amp;oldid=prev</id>
		<title>Mysterious: Created page with &quot;{{infobox/software |caption=Triad Patcher |heading=250px&lt;br&gt;Triad Patcher out of the box after basic configuration. |developer=Di Vincenzo Mikaël |ve...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.herc.ws/w/index.php?title=Triad_Patcher&amp;diff=91&amp;oldid=prev"/>
				<updated>2013-01-13T03:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{infobox/software |caption=Triad Patcher |heading=&lt;a href=&quot;/wiki/File:Triad-oobe.png&quot; title=&quot;File:Triad-oobe.png&quot;&gt;250px&lt;/a&gt;&amp;lt;br&amp;gt;Triad Patcher out of the box after basic configuration. |developer=Di Vincenzo Mikaël |ve...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox/software&lt;br /&gt;
|caption=Triad Patcher&lt;br /&gt;
|heading=[[Image:triad-oobe.png|250px]]&amp;lt;br&amp;gt;Triad Patcher out of the box after basic configuration.&lt;br /&gt;
|developer=Di Vincenzo Mikaël&lt;br /&gt;
|version=1.3.0.3 / June 22, 2006&lt;br /&gt;
|os=Windows&lt;br /&gt;
|lang=French, English&lt;br /&gt;
|type=Patch Client&lt;br /&gt;
|license=unknown (closed source)&lt;br /&gt;
|web=http://triad.nitroconcept.net/}}&lt;br /&gt;
'''Triad Patcher''' is a Ragnarok Online auto-patcher, written in Borland Delphi 6 and currently available in French and English. It is divided into the patcher executable itself and tools for creating configuration and patches. Works on all 32-bit Windows versions, Windows Vista and Windows 7 may require running as administrator, though.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
The patcher is able to patch local files, as well as multiple [[GRF]] archives (only version 2.00 is supported). The user interface offers displaying of patch news, full skinning with transparency support, support for additional languages, background music during patch process and usage of a static or dynamic banner in formats BMP, JPG, PNG and SWF. It has the capability to update itself and the configuration automatically. The patches are provided using a proprietary file format (Triad Patcher Patch, .tpp).&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
After extracting the release archive, following steps are required, before the patcher is ready for distribution:&lt;br /&gt;
* Configuration of the patcher parameters, skin, language and patches.&lt;br /&gt;
* Setting-up a web-space for patch list, patch news and patch files. The last one being preferably in a sub-directory of the location, where patch list and news reside to avoid clutter. Details on installing and configuring a web-server and/or web-space are beyond the scope of this article.&lt;br /&gt;
&lt;br /&gt;
Then completed, files '''config.tpc''', '''Triad Patcher.exe''' and '''GRF.dll''' are distributed to the players as part of the other client files.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
Most of the configuration is required to be done only once, unless something client-side or connection-related requires changes. After setting all options in '''config.ini''' and '''languages.ini''', and preparing related files such as skin and background music, everything is packed into a single file called '''config.tpc''' using a included tool located in '''Configurator\Triad Configurator.exe'''. The tool is pretty straight-forward, thus does not require further explanation. Configuration files should be kept after building the config, as there are no means to decompile it. Default configuration can be found in directory '''Configurator\Default'''.&lt;br /&gt;
&lt;br /&gt;
All mentioned configuration files follow the schematics of an [http://en.wikipedia.org/wiki/INI_file INI file].&lt;br /&gt;
&lt;br /&gt;
===Configuration (config.ini)===&lt;br /&gt;
This file defines the main aspects of the patcher's behavior, such as visual and aural appearance and remote resource locations.&lt;br /&gt;
&lt;br /&gt;
====Section [baseoptions]====&lt;br /&gt;
The section '''baseoptions''' recognizes following values:&lt;br /&gt;
;language&lt;br /&gt;
:Defines the interface language. Value is one of the section names in '''language.ini'''.&lt;br /&gt;
;about_lang&lt;br /&gt;
:Defines the interface language for the &amp;quot;About&amp;quot; window. Can be either 0 (French) or 1 (English).&lt;br /&gt;
;about_header&lt;br /&gt;
:Custom text in the about box, which appears before other credits. Character | can be used as newline.&lt;br /&gt;
;bmpskin_path&lt;br /&gt;
:Specifies the path for ''bmpskin_file''. If blank, location of '''config.ini''' is assumed.&lt;br /&gt;
;bmpskin_file&lt;br /&gt;
:Sets a file to be used as skin. Magenta ({{color|ff00ff}}) is used as transparency color. Position of skin elements is defined in section ''skinmap''.&lt;br /&gt;
;banner_width&lt;br /&gt;
:Defines the width in pixels of a banner, if any. The height is automatically set to 88.&lt;br /&gt;
;banner_path&lt;br /&gt;
:Specifies the path for ''banner_file''. If blank, location of '''config.ini''' is assumed.&lt;br /&gt;
;banner_file&lt;br /&gt;
:Sets a file to be used as skin.&lt;br /&gt;
;banner_type&lt;br /&gt;
:Specifies the type of the file specified in ''banner_file''. Can be 0 (no banner), 1 (SWF), 2 (BMP), 3 (JPG) or 4 (PNG).&lt;br /&gt;
;bgm_enabled&lt;br /&gt;
:Defines, whether background music should be played (1) or not (0).&lt;br /&gt;
;bgm_file&lt;br /&gt;
:MP3 file to be used as background music.&lt;br /&gt;
;btnsnd_enabled&lt;br /&gt;
:Specifies, whether click/button sounds should be played (1) or not (0).&lt;br /&gt;
;create_log&lt;br /&gt;
:Whether a debug log file should be created by the patcher (1) or not (0). Note, that the logs are only available in French.&lt;br /&gt;
&lt;br /&gt;
====Section [urls]====&lt;br /&gt;
The section '''urls''' recognizes following values:&lt;br /&gt;
;news&lt;br /&gt;
:Absolute URL to the patch news to display.&lt;br /&gt;
;register&lt;br /&gt;
:Absolute URL to the page, which is used for registering. It is displayed in the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
;patchs_list&lt;br /&gt;
:Absolute URL to the patch list.&lt;br /&gt;
;exec_file&lt;br /&gt;
:File name of the client to execute, when &amp;quot;Start&amp;quot; is clicked.&lt;br /&gt;
;exec_args&lt;br /&gt;
:Parameters to pass to the client set in ''exec_file'', like 1rag1 or 1sak1. Can be blank.&lt;br /&gt;
&lt;br /&gt;
====Section [skinmap]====&lt;br /&gt;
The section '''skinmap''' specifies meaning of areas in file defined by ''bmpskin_file''.&lt;br /&gt;
* Values ''body_*'' represent the background image.&lt;br /&gt;
* Values ''button_start_*'', ''button_quit_*'' and ''button_about_*'' represent areas used for buttons (normal state).&lt;br /&gt;
* Finally, values ''button_startb_*'', ''button_quitb_*'' and ''button_aboutb_*'' represent areas, which are used for buttons when the mouse pointer hovers them.&lt;br /&gt;
For an example, check the default '''skin.bmp''' together with default '''config.ini'''.&lt;br /&gt;
&lt;br /&gt;
====Section [interface]====&lt;br /&gt;
The section '''interface''' specifies the size of the patcher window and layout of buttons, progress bar and patch news.&lt;br /&gt;
* Values ''body_*'' set the patcher window size.&lt;br /&gt;
* Values ''webbrowser_*'' specify the position and dimensions of the patch news.&lt;br /&gt;
* All width and height values should be same as specified in section ''skinmap''. If larger values are specified, the surplus space is rendered in white.&lt;br /&gt;
* The &amp;quot;About&amp;quot; button must be always visible, thus at least 5x5 in size.&lt;br /&gt;
&lt;br /&gt;
====Section [interface_options]====&lt;br /&gt;
The section '''interface_options''' recognizes following values:&lt;br /&gt;
;button_start_enabled&lt;br /&gt;
:Specifies, whether the &amp;quot;Start&amp;quot; button should be enabled (1) or not (0).&lt;br /&gt;
;button_quit_enabled&lt;br /&gt;
:Specifies, whether the &amp;quot;Close&amp;quot; button should be enabled (1) or not (0).&lt;br /&gt;
;progressbar_enabled&lt;br /&gt;
:Specifies, whether the progress bar should be displayed (1) or not (0).&lt;br /&gt;
;webbrowser_enabled&lt;br /&gt;
:Specifies, whether the patch news should be displayed (1) or not (0).&lt;br /&gt;
Note, that the &amp;quot;About&amp;quot; button cannot be disabled.&lt;br /&gt;
&lt;br /&gt;
====Section [progressbar_webbrowser]====&lt;br /&gt;
The section '''progressbar_webbrowser''' recognizes following values:&lt;br /&gt;
;progressbar_bordercolor&lt;br /&gt;
:Specifies the border color for the progress bar.&lt;br /&gt;
;progressbar_backcolor&lt;br /&gt;
:Specifies the background color for the progress bar.&lt;br /&gt;
;progressbar_forecolor&lt;br /&gt;
:Specifies the bar color for the progress bar.&lt;br /&gt;
;webbrowser_bordercolor&lt;br /&gt;
:Specifies the border color of the browser.&lt;br /&gt;
All color values are written as hexadecimal [http://en.wikipedia.org/wiki/RGB RGB] color values in format RRGGBB. For example full red being written as FF0000.&lt;br /&gt;
&lt;br /&gt;
====Section [textfont]====&lt;br /&gt;
The section '''textfont''' recognizes following values:&lt;br /&gt;
;button_name&lt;br /&gt;
:Font name to use for button text.&lt;br /&gt;
;button_size&lt;br /&gt;
:Font size to use for button text.&lt;br /&gt;
;button_color&lt;br /&gt;
:Color to use for button text.&lt;br /&gt;
;button_bold&lt;br /&gt;
:Whether the text in buttons should be bold (1) or regular (0) type.&lt;br /&gt;
;body_name&lt;br /&gt;
:Font name to use for status text.&lt;br /&gt;
;body_size&lt;br /&gt;
:Font size to use for status text.&lt;br /&gt;
;body_color&lt;br /&gt;
:Color to use for status text.&lt;br /&gt;
;body_bold&lt;br /&gt;
:Whether the text in status line should be bold (1) or regular (0) type.&lt;br /&gt;
For ''button_name'' and ''body_name'' use only fonts, which can be expected on every Windows installation, otherwise it might lead to undesired or unreadable results. All color values are written as hexadecimal '''RGB''' color values in format RRGGBB. For example full red being written as FF0000.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;!-- myro.org is fictive server, not existing at the time when this example was written --&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[baseoptions]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 language = english&lt;br /&gt;
 about_lang = 1&lt;br /&gt;
 about_header = MyRO.ORG (&amp;lt;nowiki&amp;gt;http://myro.org/&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
 bmpskin_path =&lt;br /&gt;
 bmpskin_file = skin.bmp&lt;br /&gt;
 banner_width = 545&lt;br /&gt;
 banner_path =&lt;br /&gt;
 banner_file =&lt;br /&gt;
 banner_type = 0&lt;br /&gt;
 bgm_enabled = 0&lt;br /&gt;
 bgm_file = myBGM.mp3&lt;br /&gt;
 btnsnd_enabled = 1&lt;br /&gt;
 create_log = 0&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[urls]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 news = &amp;lt;nowiki&amp;gt;http://myro.org/p/news.htm&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 register = &amp;lt;nowiki&amp;gt;http://myro.org/register/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 patchs_list = &amp;lt;nowiki&amp;gt;http://myro.org/p/patchlist.ini&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 exec_file = myro.exe&lt;br /&gt;
 exec_args =&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[skinmap]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 body_left = 0&lt;br /&gt;
 body_top = 0&lt;br /&gt;
 body_width = 545&lt;br /&gt;
 body_height = 469&lt;br /&gt;
 button_start_left = 0&lt;br /&gt;
 button_start_top = 0&lt;br /&gt;
 button_start_width = 0&lt;br /&gt;
 button_start_height = 0&lt;br /&gt;
 button_quit_left = 0&lt;br /&gt;
 button_quit_top = 0&lt;br /&gt;
 button_quit_width = 0&lt;br /&gt;
 button_quit_height = 0&lt;br /&gt;
 button_about_left = 0&lt;br /&gt;
 button_about_top = 0&lt;br /&gt;
 button_about_width = 0&lt;br /&gt;
 button_about_height = 0&lt;br /&gt;
 button_startb_left = 1&lt;br /&gt;
 button_startb_top = 470&lt;br /&gt;
 button_startb_width = 84&lt;br /&gt;
 button_startb_height = 22&lt;br /&gt;
 button_quitb_left = 86&lt;br /&gt;
 button_quitb_top = 470&lt;br /&gt;
 button_quitb_width = 84&lt;br /&gt;
 button_quitb_height = 22&lt;br /&gt;
 button_aboutb_left = 171&lt;br /&gt;
 button_aboutb_top = 470&lt;br /&gt;
 button_aboutb_width = 84&lt;br /&gt;
 button_aboutb_height = 22&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[interface]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 body_width = 545&lt;br /&gt;
 body_height = 469&lt;br /&gt;
 button_start_left = 395&lt;br /&gt;
 button_start_top = 69&lt;br /&gt;
 button_start_width = 84&lt;br /&gt;
 button_start_height = 22&lt;br /&gt;
 button_quit_left = 395&lt;br /&gt;
 button_quit_top = 90&lt;br /&gt;
 button_quit_width = 84&lt;br /&gt;
 button_quit_height = 22&lt;br /&gt;
 button_about_left = 395&lt;br /&gt;
 button_about_top = 111&lt;br /&gt;
 button_about_width = 84&lt;br /&gt;
 button_about_height = 22&lt;br /&gt;
 progressbar_left = 18&lt;br /&gt;
 progressbar_top = 438&lt;br /&gt;
 progressbar_width = 509&lt;br /&gt;
 progressbar_height = 18&lt;br /&gt;
 webbrowser_left = 17&lt;br /&gt;
 webbrowser_top = 161&lt;br /&gt;
 webbrowser_width = 511&lt;br /&gt;
 webbrowser_height = 252&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[interface_options]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 button_start_enabled = 1&lt;br /&gt;
 button_quit_enabled = 1&lt;br /&gt;
 progressbar_enabled = 1&lt;br /&gt;
 webbrowser_enabled = 1&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[progressbar_webbrowser]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 progressbar_bordercolor = C0C0C0&lt;br /&gt;
 progressbar_backcolor = FFFFFF&lt;br /&gt;
 progressbar_forecolor = C0C0C0&lt;br /&gt;
 webbrowser_bordercolor = C0C0C0&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[textfont]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 button_name = MS Sans Serif&lt;br /&gt;
 button_size = 8&lt;br /&gt;
 button_color = 000000&lt;br /&gt;
 button_bold = 0&lt;br /&gt;
 body_name = MS Sans Serif&lt;br /&gt;
 body_size = 8&lt;br /&gt;
 body_color = 000000&lt;br /&gt;
 body_bold = 0&lt;br /&gt;
&lt;br /&gt;
===Interface Language (languages.ini)===&lt;br /&gt;
This file specifies to the patcher all available languages, which can be enabled in '''config.ini'''. Only one language can be active at a time, but the configuration can be distributed in different flavors; each with different language set. Each section name corresponds to the language name being set, see ''baseoptions'' -&amp;gt; ''language'' above for details.&lt;br /&gt;
&lt;br /&gt;
In each language section, following values are recognized:&lt;br /&gt;
;button_start&lt;br /&gt;
:Text for button &amp;quot;Start&amp;quot;. Can be empty, for example when the text is part of the skin.&lt;br /&gt;
;button_quit&lt;br /&gt;
:Text for button &amp;quot;Close&amp;quot;. Can be empty, for example when the text is part of the skin.&lt;br /&gt;
;button_about&lt;br /&gt;
:Text for button &amp;quot;About&amp;quot;. Can be empty, for example when the text is part of the skin.&lt;br /&gt;
;progressinfo_msg1&lt;br /&gt;
:Message, when the associated client fails to start.&lt;br /&gt;
;progressinfo_msg2&lt;br /&gt;
:Message, when patch news are being downloaded.&lt;br /&gt;
;progressinfo_msg3&lt;br /&gt;
:Message, when patch news finished downloading.&lt;br /&gt;
;progressinfo_msg4&lt;br /&gt;
:Message, when patch list is being downloaded.&lt;br /&gt;
;progressinfo_msg5&lt;br /&gt;
:Message, when patch list finished downloading and is about being processed.&lt;br /&gt;
;progressinfo_msg6&lt;br /&gt;
:Message, when patches are about being downloaded.&lt;br /&gt;
;progressinfo_msg7&lt;br /&gt;
:Message, when there are no patches available at time being.&lt;br /&gt;
;progressinfo_msg8&lt;br /&gt;
:Message, when patches finished downloading and are about being applied.&lt;br /&gt;
;progressinfo_msg9&lt;br /&gt;
:Message, when patches were applied.&lt;br /&gt;
;progressinfo_msg10&lt;br /&gt;
:Message, when a patch is being downloaded.&lt;br /&gt;
;progressinfo_msg11&lt;br /&gt;
:Message, when patches are applied to a GRF archive.&lt;br /&gt;
;progressinfo_msg12&lt;br /&gt;
:Message, when a GRF archive is being repacked.&lt;br /&gt;
&lt;br /&gt;
===Patch List===&lt;br /&gt;
This configuration file is the only one, which is not part of '''config.tpc''', but is hosted remotely, on a web-space. It specifies, whether the patcher is allowed to patch and start the client, and what patches are to be applied. The name of this file can be chosen in '''config.ini''', in section ''urls'' -&amp;gt; ''patchs_list''.&lt;br /&gt;
&lt;br /&gt;
====Section [options]====&lt;br /&gt;
The section '''options''' recognizes following values:&lt;br /&gt;
;deny_getpatch&lt;br /&gt;
:Specifies, whether patching is allowed (0) or not (1).&lt;br /&gt;
;deny_play&lt;br /&gt;
:Specifies, whether the associated client can be started (0) or not (1).&lt;br /&gt;
&lt;br /&gt;
====Section [patchs]====&lt;br /&gt;
Section '''patchs''' contains a list of all available patches, where the key name specifies the absolute location of the patch file, while the value enables (1) or disables (0) given patch. Note, that patches are not identified by any patch ID, as usually done, but by their base name, thus it is preferable to start the name with their release date, followed by keyword, which describes the patch, like '''2010-09-21palettefix.tpp'''.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[options]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deny_getpatch = 0&lt;br /&gt;
 deny_play = 0&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[patchs]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ; fix for bards looking strange with some cloth colors&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://myro.org/patches/2010-09-21palettefix.tpp&amp;lt;/nowiki&amp;gt; = 1&lt;br /&gt;
 ; disabled, because it is broken&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://myro.org/patches/2010-09-22newclient.tpp&amp;lt;/nowiki&amp;gt; = 0&lt;br /&gt;
 ; fix for crash in party window&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://myro.org/patches/2010-09-25newclient.tpp&amp;lt;/nowiki&amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
==Creating Patches==&lt;br /&gt;
Patches are created with a included tool located in '''Packer\Triad Packer.exe''' in the original distribution. This tool allows to bundle multiple patches into a single patch, which uses a proprietary format, with extension '''.tpp'''. Note, that there are no means to extract the patch after it has been created, except using it with the patcher. After starting the tool, a window with four buttons can be seen, which have following functions:&lt;br /&gt;
;Ajouter / Add&lt;br /&gt;
:Adds GPF patches and local files to the compile list. If a GPF file is selected, destination archive must be specified (ex. adata.grf), otherwise for local files, their final destination must be set (ex. myfolder\myfile.ext).&lt;br /&gt;
;Empacter / Pack&lt;br /&gt;
:Compiles the added patches into a triad patch file.&lt;br /&gt;
;Sauvegarder / Save&lt;br /&gt;
:Save the current compile list into a triad patch list, which can be loaded later for either reusage or resuming the creating of a patch. The patch list has the extension '''.tpl''' and is only meaningful to the packer.&lt;br /&gt;
;Ouvrir / Open&lt;br /&gt;
:Opens a previously saved triad patch list. If there already was a filled compile list, it is discarded.&lt;br /&gt;
&lt;br /&gt;
Finally after creating the triad patch, it has to be added to the patch list into the section [patchs] and uploaded to the location specified.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[GRF]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://triad.nitroconcept.net/ Official Triad Patcher Homepage (French)]&lt;br /&gt;
* [http://triad.nitroconcept.net/index_eng.php Official Triad Patcher Homepage (English)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Patchers]]&lt;/div&gt;</summary>
		<author><name>Mysterious</name></author>	</entry>

	</feed>