====== GEMUS Comparison Fields ====== ===== Comparison Fields ===== ^ Field Name ^ Operators ^ Description ^ | GameType | [[#CONTAINS]], [[#EXCLUDES]] | This field signifies the type of game being run by the script. It directly correlates to the game's filename extension (without the preceding "." character). Possible values for this field might be D64, TAP etc.. Example: If GameType CONTAINS(D64||TAP) | | Control | =, != | This field signifies the primary control method of the game being run by the script. This field will contain one of the following values: JoyPort1, JoyPort2, Keyboard, PaddlePort1, PaddlePort2, Mouse, LightPen, KoalaPad or LightGun. Example: ElseIf Control = JoyPort2 | | NumPlayers | =, !=, <, > | This field signifies the number of players that the game being run by the script supports. This will typically be a number larger than 0. Example: If NumPlayers > 1 | | PalNTSC | =, != | This field signifies the whether the game being run by the script is Pal or NTSC compliant. This field will contain one of the following values: PAL, NTSC or BOTH. Example: ElseIf PalNTSC = NTSC | | TrueDriveEmu | = | This field signifies the whether the game being run by the script has its True Drive Emulation setting enabled. This field will contain either YES or NO. Example: ElseIf TrueDriveEmu = YES | | GameComment | [[#CONTAINS]], [[#EXCLUDES]] | This field signifies the "Game Comment" database field of the game being run by the script. Example: If GameComment CONTAINS(*password is:*) | | VersionComment | [[#CONTAINS]], [[#EXCLUDES]] | This field signifies the "Version Comment" database field of the game being run by the script. Example: ElseIf VersionComment CONTAINS(*load manually*) | | ImageName | [[#CONTAINS]], [[#EXCLUDES]] | This field contains the same value as the [[.:environment_variables|%imagename%]] script environment variable. Example: ElseIf ImageName CONTAINS(*) (not: If %imagename% CONTAINS(*)). Note: you cannot use the %imagename% variable as a comparison field name, nor can you use the ImageName field name as an environment variable. Be careful not to confuse the two - field names are for comparisons only, whilst environment variables are for replacing text in function parameters only. | | NumFiles | =, !=, <, > | This field signifies the number of game files selected for the game being run by the script. It contains the same value as the [[.:environment_variables|%numfiles%]] script environment variable. Note: you cannot use the %numfiles% variable as a comparison field name, nor can you use the NumFiles field name as an environment variable. Be careful not to confuse the two - field names are for comparisons only, whilst environment variables are for replacing text in function parameters only. Example: If NumFiles = 2 (not: If %numfiles% = 2) | | QUESTION(text) | = | This field is really a comparison function. It will display a message window asking the question text to the user, who must respond by either clicking a YES or NO button to answer the question. Example: If QUESTION(Do you want to run in NTSC mode?) = YES | | Key_keyname | [[#CONTAINS]], [[#EXCLUDES]] | The //Key_keyname// fields give you lots of flexibility in GEMUS. By pressing F2 (or selecting the 'GEMUS' item from GameBase's 'Edit' menu) you can optionally put in key=value pairs for each game. These pairs can really be anything you like, for instance //memory=512// or //fullscreen=yes//. By creating these pairs, you can test for virtually any game-specific setting or option within a GEMUS comparison statement. To test the field, just put the prefix "Key_" before the name of the key you want to test. Example: If Key_memory CONTAINS(512) See also the [[.:environment_variables|%keyname_value%]] environment variable. | | %...% | [[#CONTAINS]], [[#EXCLUDES]] | This field %...% corresponds to any [[.:environment_variables|script environment variable]]. For example, if you want to test a game's filename has certain text in it (e.g. a TOSEC filename) you could use the environment variable //%gamefile%// with the [[#CONTAINS]] function. Example: If %gamefile% CONTAINS(*128k*) | \\ ===== Comparison Operators ===== ^ Operator ^ Usage ^ Description ^ | **=** | [If%%|%%ElseIf] //FieldName// = //Value// | Returns True if //Fieldname// is equal to //Value// | | **!=** | [If%%|%%ElseIf] //FieldName// != //Value// | Returns True if //Fieldname// is not equal to //Value// | | **<** | [If%%|%%ElseIf] //FieldName// < //Value// | Returns True if //Fieldname// is numerically less than //Value// | | **>** | [If%%|%%ElseIf] //FieldName// > //Value// | Returns True if //Fieldname// is numerically more than //Value// | | **CONTAINS** | [If%%|%%ElseIf] //FieldName// CONTAINS([*]//value//[*][%%||%%[*]//value//[*]...]) | The CONTAINS operator returns True if a textual match has been found in **at least one** of the supplied //value// arguments. Multiple values can be supplied by separating them with the %%||%% delimiter. The criteria for matching the values is as follows: -\\ \\ //value=*text*// -> Returns True if //value// is found anywhere in //FieldName//\\ //value=text*// -> Returns True if //value// matches the beginning characters in //FieldName//\\ //value=*text// -> Returns True if //value// matches the ending characters in //FieldName//\\ //value=text// -> Returns True if //value// exactly matches //FieldName//\\ //value=*// -> Returns True if //value// is non-empty | | **EXCLUDES** | [If%%|%%ElseIf] //FieldName// EXCLUDES([*]//value//[*][%%||%%[*]//value//[*]...]) | The EXCLUDES operator returns True if a textual match has NOT been found in **all** of the supplied //value// arguments. Multiple values can be supplied by separating them with the %%||%% delimiter. This is basically the opposite of the CONTAINS operator. |