Maxtor APPTIMIZER readme

APPTIMIZER APPLICATION DOCUMENTATION
MATROX GRAPHICS INC.
Matrox Apptimizer2.0 for Windows 2000/XP
Table of Contents
Preface.............................................................................................................................3
Parts of the Apptimizer application..................................................................4
MTXcfg.ini Methodology.....................................................................................5
**GameLoc=...............................................................................................................5
**SubFolderName= ....................................................................................................6
**CfgIniFileName= ....................................................................................................7
**GameExeName= .....................................................................................................9
**ShortCutName=.......................................................................................................9
**ShortCutParameters= ..............................................................................................9
**LatestPatchReq= ...................................................................................................10
**MSG1=..................................................................................................................10
**NoSurround= / **Surround=...........................................................................10
Game Data to modify................................................................................................11
*[END]*....................................................................................................................11
Game Data Modifications methodology......................................................12
Simple replacement strings ...........................................................................................12
Embedded replacement strings......................................................................................13
Game Replacement Strings...........................................................................................14
By Line Number Replacement Strings..........................................................................15

Preface

The steps illustrated below are designed to help you understand how to enter settings into the MTXcfg.ini for the purpose of providing the end user with a hassle free method of setting up a triple head surround gaming experience.
The game listbox has visual cues for end users convenience.
What the game listbox colors mean:
Bolded Text - Detected games appear bolded.
CheckBoxes - Detected games have the accompanying checkbox checked.
Grey text - The game is either not installed or could not be detected by
Apptimizer. If selected, the browse and scan buttons in the Game Location section will be available so that the user can either try to find the game exectutable automatically or in the worse case, manually search for the games executable location.
Green text - The game has already been optimized using Apptimizer.
Black text - The game is installed but has not been detected as having been
optimized with Apptimizer.
Red text - The game is installed but is missing a configuration file. This is
usually due to the game needing to be run at least once in order to create its configuration file. A message box will appear to indicate this to the user.

Parts of the Apptimizer application

Listbox containing the names of the games obtained from the MTXcfg.ini. Indicator of how many games are in the MTXcfg.ini and how many
were found on the system.
Links to Matrox websites.
When a game has been detected and is selected from within the listbox, the games EXE path will automatically be entered into the 'Game Location' text box for the user.
When a game has not been detected the user can provide the path to the game EXE via the browse or scan button. It is then stored / updated in the MtxCfg.ini file.
The Restore button removes the desktop shortcut and restores the original backed up game configuration file. In essence placing the game back to what it was prior to the modifications.
The Optimize button creates a backup of the original game configuration file, makes the game modifications and provides a desktop shortcut to the game.
Type of game optimization option buttons
Game optimization status indicator

MTXcfg.ini Methodology

Break down of each line in MTXcfg.ini

Please note that every line listed below, beginning with a ‘**’ or ‘*[‘ must be present for each game listed in the ‘MTXcfg.ini’ file, regardless of whether there is a value associated to it or not.
Below is a sample game entry.
*[Quake III Team Arena]* **GameLoc=HKLM\Windows\CurrentVersion\App Paths\quake3.exe\Path **SubFolderName=missionpack **CfgIniFileName=q3config.cfg **GameExeName=quake3.exe **ShortCutName=Quake III Team Arena **ShortCutParameters=+set fs_game missionpack **LatestPatchReq=http://www.idsoftware.com/index.php?flash=true&version=6 **MSG1=Download and install “Quake III Areana 1.32 Point Release”, if you want to have the
latest game files to play with.
**NoSurround=True seta r_customwidth ||"1024" seta r_customheight ||"768" seta cg_fov ||"90" seta r_mode ||"6"
**Surround=True seta r_customwidth ||"2400" seta r_customheight ||"600" seta cg_fov ||"143" seta r_mode ||"-1" *[END]*
This is how it’s broken down by the ‘Apptimizer’ application.
*[Quake III Team Arena]*
The ‘*[‘ and ‘]*’ identify the text contained within as the title of the game. The title is parsed out and added into the game listbox of the Apptimizer app. It is also used to identify which values should be retrieved from the MTXcfg.ini file as replacement values.

**GameLoc=

Almost all recent games add their executable game paths into the windows registry when they are installed. When the MtxCfg.ini file is populated with a registry value, unique to the game, Apptimizer will search and retrieve the game path from the
registry automatically. This provides for user portability, since you cannot predetermine into which directory or hard drive the user will install their game.
The majority of games install a registry key located somewhere within HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\…. For this reason the shortened form ‘ HKLM ‘ is used for convienience to represent the longer version above. So if you use:
HKLM\Microsoft Games\Age of Mythology\1.0\AppPath
Apptimizer will read it in the same manner as if it were written as:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Microsoft Games\Age of Mythology\1.0\AppPath
Both ways are accepted. In order to get this registry location, you will need to install the game and then search through the registry for the games executable name. The ‘game.exe’ name can show up in multiple locations within the registry, it will be up to you to decide which one is best. Once located use the regitries built in capabilities to copy the registry path name.
How to copy the registry path name:
1) Click on the “Start” button then select “Run…”
2) Type “regedit” in the box next to “Open:”, then click the “OK” button.
3) Locate the games “<game>.exe” file name in the registry and click once on it.
4) Now select “Edit” from the main menu, then select “Copy Key Name”.
5) Finally go to the MtxCfg.ini file, right click and select “Paste” and the full
registry file name will be copied.
If “GameLoc=” is left blank or the registry value could not be found, the browse and scan buttons will automatically be enabled and user will have the option to press the browse or scan button in order to search for the game. When the game has been located the actual game path (not the registry path) will be saved next to this value, thus replacing the registry location text or blank field – which ever is the case. NOTE: If no registry key
can be provided it is manditory that you leave this field blank.
NOTE: DO NOT PLAY WITH THE WINDOWS REGISTRY IF YOU DO NOT UNDERSTAND HOW IT WORKS OR WHAT YOU ARE DOING!

**SubFolderName=

This is used to tell the ‘Apptimizer’ app that the configuration file is not in the same location as the games EXE location, but rather one or several folders below.
In the example; **SubFolderName=baseq3 the subfolder name is only one level below and is thus represented as <game.exe_path>\baseq3\*.cfg . Should the game configuration file be located several folders below, it should be written like this: **SubFolderName=FolderName1\FolderName2\FolderName3….. do not forget to put the ‘\’ between each folder name otherwise it will be interpreted as a single file name.

**CfgIniFileName=

This section has three parts:
1) Most games contain only one initialization file. This file name should be written in the same fashion as the Quake 3 sample above, specifying the exact CFG or INI file name. This filename will be used to compare and validate the user supplied path.
Sample Entry: (single configuration files)
*[Duke Nukem: Manhattan Project]* **SubFolderName=duke\base **CfgIniFileName=config.cfg **GameExeName=DukeNukemMP.exe **ShortCutName= DukeNukemMP Optimized **ShortCutParameters= **LatestPatchReq= **MSG1=
**NoSurround=False **Surround=True
uset g_cam_fov ||"110" uset r_device ||"gl" uset r_mode ||"2400x600x32" *[END]*
2) In some cases a game will contain more that one configuration file. This may result in more than one configuration file to be modified. If this is the case, it is necessary to use the key word ‘MULTIPLE’ with no extension as the **CfgIniFileName. The app will interpret this to mean that it will be modifying several configuration files. It is then necessary to add ‘**CFG1=’, ‘**CFG2=’, ‘**CFG3=’, ‘**CFG4=’….. See the sample provided below. Each configuration file has its specific modifications listed directly below it. Note how the Quake 3 sample above does not have ‘**CFG1= and **CFG2=’ written in it. If you are not specifying ‘MULTIPLE’, do not add these keys!
Sample Entry
*[Clive Barker's Undying]* **SubFolderName= **CfgIniFileName=MULTIPLE **GameExeName=Undying.exe **ShortCutName=Undying Optimized **ShortCutParameters= **LatestPatchReq=http://www.matrox.com/mga/3d_gaming/enhanced_games/cbundying.cfm
: (multiple configuration files)
**MSG1= **NoSurround=False **Surround=True
**CFG1=user.ini
DesiredFOV=||132 DefaultFOV=||132 ZoomFOV=||30
**CFG2=system.ini
FullscreenViewportX=||1920 FullscreenViewportY=||480 *[END]*
3) Where actual games (i.e.: “Saved Games”) need to be updated, of which there could be many saved games bearing the same file extension. Cases like this need to have the ‘*.[FileExtension]’ specified as the **CfgIniFileName. The app will interpret
the ‘
*.’ to mean that it will be modifying several saved game files and will omit
certain functions like creating a desktop shortcut to the game and omit the restore option. The original saved games will not be altered because a new game file will be created bearing a similar name. So it will be up to the user to delete them. Also, unlike the configuration routine, any strings that are not found DO NOT get added to the end of the configuration file.
With games it might be necessary to prefix the header name to the search string ( Ex: [Window.1] ). This allows the Apptimizer app to handle identical search string names that may appear in a saved game file (see example of Flight Simulator 2002 below). Note: This ability is not available with regular configuration files, as configuration files are expected to have unique ID names.
In the example below the “Surround+” is explained later under the “Game Replacement Strings” section.
Sample Entry: (converting saved game files to surround)
*[Flight Simulator 2002: Saved Games]* **SubFolderName=flights\myflts **CfgIniFileName=*.FLT **GameExeName=fs2002.exe **ShortCutName=Surround **ShortCutParameters= **LatestPatchReq= **MSG1=
**NoSurround=False NOTE: The “+” sign, it indicates a title to Apptimizer. **Surround=True
[Main]Title=||Surround+ [Window.1]ScreenUniCoords=||0 0 8192 6144 [Window.1]CockpitZoom=||000.29 [Window.1]VirtualZoom=||000.29 [Panel.1]ScreenUniCoords=||2731 3622 2731 2522 [Panel.2]ScreenUniCoords=||7680 3136 512 3008 [Panel.3]ScreenUniCoords=||6780 26 1408 3098 [Panel.4]ScreenUniCoords=||1651 4454 1075 1664 [Panel.5]ScreenUniCoords=||4390 26 1067 717
[Panel.6]ScreenUniCoords=||2731 13 303 755 *[END]*

**GameExeName=

This value is for comparison and is used in conjuction with ‘CfgIniFileName’. When the user points to the game EXE file it is compared to the GameExeName value. This is to validate that the user has selected t he correct exe path. Once the pat h to the exe has been established, a search for the CfgIniFileName is done next. If both are found in their appropriate locations, it is assumed that the correct path to the game was found. The path is then saved in a temporary location and is used to update the games configuration file for surround gaming. Should the EXE name be missing in the MTXcfg.ini file an error message will be displayed giving a clear indication that it’s missing.

**ShortCutName=

The ‘Apptimizer’ app will generate a desktop shortcut as a convenience to the user, the value associated to this variable will be the name that appears as the name of the shortcut. Usi ng the Quak e III samp le above, the value is “Quake3Arena Surround“, therefore the shortcut will bare the name “Quake3Arena Surround”. The app will automatically remove this desktop icon when the “Restore” option of the ‘Apptimizer’ app has been selected. This field must have a value.

**ShortCutParameters=

This option is available in the event that a game does not react well with m odifications t o its configuration files, or when it is more desirable/easier to launch a game in surround gaming via a shortcut parameter. Simply place the required parameters (remembering to add any spaces, quotes, slashes or any other symbols that appear ordinarily in the shortcut path) next to this field and it will be added (as it appears) to the shortcut when the optimize button is pressed. If there are no parameters to be passed, leave the field empty.
Sample Entry
*[Age of Mythology]* **GameLoc=HKLM\Microsoft Games\Age of Mythology\1.0\AppPath **SubFolderName=startup **CfgIniFileName=persistent.cfg **GameExeName=aom.exe **ShortCutName=Age of Mythology
**ShortCutParameters=+window
**LatestPatchReq= **MSG1= **NoSurround=False **Surround=True *[END]*
:

**LatestPatchReq=

You can provide the user with a web site location, where the user can download the latest game patches to support surround gaming should it be required. Otherwise it can be left blank.

**MSG1=

You may also provide additional information in the form of a message displayed to the user, prior to the optimizations. AVOID pressing the enter/return key until you have completed your entire message. The text will be word wrapped by the app automatically. So enter your message as one long line of text with any type of punctuation you may require. Pressing the enter key within the message will have the effect of telling the app that its finished reading the message line and will subsequently ignore the rest of the message, thus making it appear truncated to the user.

**NoSurround= / **Surround=

These variables are expecting a “True” or “False” value only and cannot be left blank. Specifying “True” to either or both of these variables tells the Apptimizer app to enable the corresponding radio button on the GUI
Likewise specifying “False” to either or both will cause the corresponding radio button(s) to be disabled. The search strings and values found under each of these values will be assigned to the specific radio button.

Game Data to modify

seta r_customwidth ||"2400" seta r_customheight ||"600" seta cg_fov ||"143" seta r_mode ||"-1"
These four are the search strings and its associated value that are to be replaced in the games configuration file. “seta r_customwidth “ is the string to be found in the games configuration file and “2400” is the value that will replace the existing one. The other three examples follow the same rule. The double pipes symbol “||” is used to establish where the search string ends and where the replacement value begins. In the event that a search string (or strings) was or were not found, they would be added to the end of the file before closing it. Note: This only applies to game configuration files. This method of adding to the end of the file may cause undesired game effects if the line was needed in a specific location.

*[END]*

Since the MTXcfg.ini file is read sequentially. The end flag is required to tell the app that there are no further entries for the specified game to be processed. Thus the app will ignore any other entry it reads from the MTXcfg.ini file until it reaches the end of the file.

Game Data Modifications methodology

Simple replacement strings

With games such as Quake, Jedi Knight II, Unreal, the game configurations are similar and look something like this:
seta r_customwidth "800" **(Note the space prior to the opening quote symbol) OR seta r_customwidth=800 **(Note that there are no spaces before or after the ‘=’ symbol)
To identify these types of replacements to the ‘Apptimizer’ app, it should be written into the MTXcfg.ini file in the following manner:
***(NB: 2400 is the replacement value for 800)***
seta r_customwidth ||"2400" **(Note the same space prior to the double pipe symbol) seta r_customwidth=||2400 **(Note that there are no spaces before or after the ‘=’
symbol)
Please note that any spaces seen in the original game configuration file MUST BE included. Otherwise game errors could result. The app cannot not intuitively place any spaces within the values provided. It will replace the value found with the exact one provided as the replacement value.
Sample Entry:
*[Heavy Metal: FAKK2]* **SubFolderName=fakk **CfgIniFileName=config.cfg **GameExeName=fakk2.exe **ShortCutName= **ShortCutParameters= **LatestPatchReq=http://www.matrox.com/mga/3d_gaming/enhanced_games/hmfakk2.cfm **MSG1=
seta r_customwidth ||"2400" seta r_customheight ||"600" seta cg_fov ||"138" seta r_mode ||"-1" seta cg_cameradist ||"500.000000"
*[END]*

Embedded replacement strings

In certain instances the necessary modifications might be embedded between a bunch of characters. Take for example the display_settings.txt file taken from the game called ‘Ballistics’ below. The characters bolded in red represent the actual portion that needs to be modified in order for the game to run in a surround gaming configuration.
3MPLPV5FI5HRDB5UIATCNQ0IGUAAAAAAAEAAAABAAMAAA0ACAAAD2AAAAALA AAAAC2AAAACHAAAAAAAAAAAI
Through multiple installations, on different computer systems, it had be determined that the portion bolded and highlighted in blue is a set of unique characters that remained identical to each installation. Everything prior to and after these characters had the possibility of not being the same.
To identify this type of replacement to the ‘Apptimizer’ app, it should be written into the MTXcfg.ini file in the following manner:
Q0IGU||AAAAAAAEAAAABAAMAAA0ACAAAD2AAAAA||
The first set of double pipes indicates that the first section is the string to search for. The second set of pipes tells the ‘Apptimizer’ app that this is a replacement string that’s contained within a larger section of characters. The app will then locate the search string, insert the exact same numbers of characters to be replaced and leave everything before it and after it the same.
Sample Entry:
*[Ballistics]* **SubFolderName= **CfgIniFileName=display_settings.txt **GameExeName=Ballistics.exe **ShortCutName=Ballistics Surround **ShortCutParameters= **LatestPatchReq=http://www.matrox.com/mga/3d_gaming/enhanced_games/ballistics.cfm **MSG1=The latest game patches are required for surround gaming.
Q0IGU||AAAAAAAEAAAADABEAAA0ACAA||
*[END]*

Game Replacement Strings

With games there’s a tendency to reuse variable names, such is the case with FS2002. In circumstances such as these the saved game files will contain ‘header’ names. It is necessary to add these headers to the search string. Wh en the application is told that it will be modifying saved game(s), denoted by ‘*.’ the app will look for a header name prefixed to the search string. The header prefix is mandatory if there are identical search string names.
In cases where the saved game files do not have header names. It is assumed that there are no duplicate names in the file, and will be handled in a similar manner as the configuration file function routines specified above.
Saved games usually contain a unique title for identification purposes. It is necessary to modify this title, so that it too, can have a unique name when displayed with the games
restore/load feature. A “+” symbol placed at the end of a line indicates that this is a game title search string, since a title within the saved game file, can be called anything (EX: Caption=, GameName=, ….). The value given to a line indicated as a ‘Title’ is handled differently. Rather than finding the search string and replacing the entire value, the new value specified is simply added to the end of the existing value.
Ex:
If the line in the saved game file looks like this:
[Main] Title=My Saved Plane ….
The line “[Main]Title=||Surround+” will change it to look like this:
[Main]
Title=My Saved Plane Surround
….
Sample Entry: (converting saved game files to surround)
*[Flight Simulator 2002: Saved Games]* **SubFolderName=flights\myflts **CfgIniFileName=*.FLT **GameExeName=fs2002.exe **ShortCutName=Surround **ShortCutParameters= **LatestPatchReq= **MSG1=
**NoSurround=False NOTE: The “+” sign, it indicates a title to the app. **Surround=True
[Main]Title=||Surround+ [Window.1]ScreenUniCoords=||0, 0, 8192, 6144
[Window.1]CockpitZoom=||000.29 [Window.1]VirtualZoom=||000.29 [Panel.1]ScreenUniCoords=||2731, 3622, 2731, 2522 [Panel.2]ScreenUniCoords=||7680, 3136, 512, 3008 [Panel.3]ScreenUniCoords=||6780, 26, 1408, 3098 [Panel.4]ScreenUniCoords=||1651, 4454, 1075, 1664 [Panel.5]ScreenUniCoords=||4390, 26, 1067, 717 [Panel.6]ScreenUniCoords=||2731, 13, 303, 755 *[END]*

By Line Number Replacement Strings

Some configuration files are structured using a specific line to refer to a specific value. A good example of this is Grand Prix 4’s configuration file. There are only values with a comment field next to it. With this case, you will need to represent the search string as a line number. NOTE: You must include the entire line as the value parameter.
Otherwise you ri sk line truncation. In other words, with Grand Prix 4 includ e the comments at the end of the line as well.
Sample Entry: (converting saved game files to surround)
*[Grand Prix 4]* **SubFolderName= **cfgIniFileName=f1graphics.cfg **GameExeName=GP4.exe **ShortCutName=Grand Prix 4 Surround **ShortCutParameters= **LatestPatchReq= **MSG1=
**NoSurround=False **Surround=True
2||2400 ; [RELEASE] Game 3D Horizontal Resolution 3||768 ; [RELEASE] Game 3D Vertical Resolution 50||100 ; Cockpit zoom (0 to 100) v2
*[END]*
In the sample above the lines 2, 3 and 50 will be changed to the line value supplied.
Loading...