GEMRB(6)

๐Ÿ“ฆ
version 0.9.4 ยท 5 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

๐ŸŽ€ NAME ๐ŸŽ€

heyyy bestie, welcome to GEMRB(6) โ€” that's the Games Manual section, we're fancy like that ๐Ÿ’… โ€” and GemRB is a reimplementation of the Infinity Engine. no cap, that's the whole name. โœจ


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

gemrb [-q] [-c CONFIG-FILE]
gemrb PATH-TO-GAME
torment

๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so GemRB is a portable open-source implementation of Bioware's Infinity Engine, and it runs fine RPGs like Baldur's Gate, Icewind Dale and Planescape: Torment. it's giving "the classics, but make it run everywhere". ๐Ÿ”ฅ

here's the thing though, and I need you to hear me on this: GemRB reimplements only the game engine. to actually play anything, you have to have the data from the original game(s), installed or unpackaged where GemRB can find it. ๐Ÿซถ see the GamePath and CDn settings in the engine configuration file below. a full install is recommended. โœจ


๐Ÿ‘‘ OPTIONS ๐Ÿ‘‘

  • -q โ€” disables audio completely, regardless of supported audio plugins. total silence era ๐Ÿ’€
  • -f โ€” start in full screen. try this if the game window suffers from bad aspect ratio. otherwise just switch to your preference in the game's video options, live your truth ๐Ÿ’…
  • -c FILE โ€” use the specified configuration file FILE instead of the default gemrb.cfg.
  • --colorOPTION โ€” set the ANSI color option for terminal logging. -1 (the default) will attempt to automatically set this according to the terminal environment. 0 will disable color output, 1 will set it to the basic 8 color palette, and 2 will use full 24bit color codes. ๐ŸŒˆ
Note: you can also use the program's name as a mean to select the configuration file. for example, if the program's name is torment instead of gemrb, the engine first searches for torment.cfg and only if it's not found it searches for gemrb.cfg.

to use this feature, just create a symbolic link torment pointing to the gemrb binary and then run torment instead. iconic behavior, honestly. โœจ


๐ŸŒธ CONFIGURATION ๐ŸŒธ

a configuration file consists of pairs PARAMETER=VALUE, each on its own line. the case of PARAMETER is not significant โ€” GameType is the same as GAMETYPE, they're twins fr fr. if the same PARAMETER is defined more than once, only the last occurrence is used. last one wins, main character energy ๐Ÿ‘‘

empty lines and lines starting with # (hash sign) are ignored. they simply do not exist to us ๐Ÿงš

at least the GamePath parameter needs to be changed. that is often enough, so do not fiddle with the other paths too much. ๐Ÿ™ˆ

โญ General Parameters โญ

  • GameType=(auto|bg1|bg2|iwd|iwd2|how|pst) โ€” type of the game. the value is a name of subdirectory in override/ and GUIScripts/ directories with game type-specific files and scripts. it is at present also used for various tweaks hardcoded in the GemRB engine. to autodetect the game type, use the default "auto".
  • GameName=STRING โ€” arbitrary name of the game. it will be displayed in the window's title bar. your game, your name, your branding ๐Ÿ’–
  • Encoding=(default|japanese|korean|chinese) โ€” specify language used in the game data.
  • GUIEnhancements=INT โ€” the value is a bitfield. set it to 1 to enable a few GUI enhancements, mostly in BG2. add or set to 2 to try to autoidentify items on transfer (if the character has enough lore). add or set 4 if you want to skip the item description window when opening bags. add or set 16 if you want scrolls for spells the pc does not know yet highlighted. enabled by default. add or set 8 if you want the game to stop mouse scrolling the area at its edges when the window loses focus. bitfield girlies rise up โœจ
  • MultipleQuickSaves=(0|1) โ€” EXPERIMENTAL. set this to 1 if you want GemRB to keep multiple quicksaves around. disabled by default.
  • MaxPartySize=INT โ€” set this to 1-10 if you want more party members or enforce fewer. 6 by default. NOTE: for bigger parties you need to choose a big enough resolution, so there will be enough room for all the party portraits! no space for that in PST or IWD2. the 10pp mod is required to fix various game scripts, so the extra party members don't get stuck in cutscenes. ๐Ÿ˜ญ
  • Logging=(0|1) โ€” by default (set to 1) logging is enabled and several loggers are used depending on the plaftorm. use 0 to disable all logging, which can help in performance critical settings. quiet mode era ๐Ÿคซ

๐ŸŽฌ Video Parameters ๐ŸŽฌ

  • Width=INT โ€” game window width (in pixels). this can be arbitrary, but results depend on the game data. check the website for a detailed explanation of resolution modes.
  • Height=INT โ€” game window height (in pixels).
  • Bpp=INT โ€” color depth of the game window (in bits per pixel).
  • ScaleQuality=(best|linear|nearest) โ€” use the specified quality for the texture scaling filter. the default is best. slay, crispy pixels โœจ
  • CapFPS=(-1|0|n) โ€” set FPS handling:
    • -1: no limit
    • 0: VSync (SDL2), 30 (SDL1)
    • n: cap to n FPS
  • SkipIntroVideos=(0|1) โ€” if set to 1, the intro and logo videos are skipped to save developer's nerves. the default is 0. we've all seen them, bestie ๐Ÿ’€
  • GCDebug=(0|2047) โ€” bitfield with reserved bits for drawing Map debug layers.
    • No Debugging features = 0 (default)
    • DEBUG_SHOW_INFOPOINTS = 1
    • DEBUG_SHOW_CONTAINERS = 2
    • DEBUG_SHOW_DOORS = 4
    • DEBUG_SHOW_DOORS_SECRET = 8
    • DEBUG_SHOW_DOORS_DISABLED = 16
    • DEBUG_SHOW_DOORS_ALL = 28
    • DEBUG_SHOW_LIGHTMAP = 32
    • DEBUG_SHOW_WALLS = 64
    • DEBUG_SHOW_WALLS_ANIM_COVER = 128
    • DEBUG_SHOW_WALLS_ALL = 192
    • DEBUG_SHOW_SEARCHMAP = 256
    • DEBUG_SHOW_FOG_UNEXPLORED = 512
    • DEBUG_SHOW_FOG_INVISIBLE = 1024
    • DEBUG_SHOW_FOG_ALL = 1536

๐Ÿ”Š Audio Parameters ๐Ÿ”Š

  • AudioDriver=(openal|sdlaudio|none) โ€” use the specified plugin as the audio driver. the default is openal, while none will disable all audio. (and yeah, that's the same energy as -q up there ๐Ÿ‘€)

๐Ÿ—บ๏ธ Path parameters ๐Ÿ—บ๏ธ

  • CaseSensitive=(0|1) โ€” when this parameter is set to 1, the engine will try to find files regardless of their names' case at the cost of a slight speed penalty. this is especially important when using game files on CD-ROMs, where the files can't be renamed. like many Windows programs, the original games use inconsistent mix of lower/upper case letters for naming and referencing their files.

Set this parameter to 1 on Unix-like systems. fr, do it.

  • GamePath=PATH โ€” path to the directory where the original game is installed. if you can't install the game under MS Windows or with WINE, you can try to unpack the data files with the unshield program found at http://synce.sourceforge.net.
  • CD1=PATH
  • CD2=PATH
  • CDn=... โ€” path to the data files for the game's particular CDs or any other data sources.
  • CachePath=PATH โ€” user-writable directory where the engine caches uncompressed and temporary files. defaults to a subdirectory of the current directory.
  • GemRBPath=PATH โ€” path to the GemRB installation. (to be obsoleted; preset at build time).
  • GUIScriptsPath=PATH โ€” path to the directory with scripts controlling the game's GUI. (to be obsoleted; preset at build time).
  • GemRBOverridePath=PATH โ€” path where GemRB looks for its game override directory. it defaults to GemRBPath. GemRB reuses some of the unused files from the original or replaces them and this is the where they can be found. the path is preset at build time. this directory has the highest priority when searching, so putting files in the game override will not affect them. use another directory and add it as ModPath to the GemRB config. ๐Ÿ‘‘ top of the hierarchy, she's the main character
  • GemRBUnhardcodedPath=PATH โ€” path where GemRB looks for its unhardcoded engine data. it defaults to GemRBPath. the original games hardcoded this information in the engine. the path is preset at build time.

the following variables do not need to be altered, unless you are doing something really special! and honestly if you're doing something really special, we love that for you ๐Ÿซถ


  • SavePath=PATH โ€” path to the directory with save games. note that this directory has to contain save/ and/or eventually mpsave/ subdirectories and that only these subdirectories contain the actual saved games.

SavePath defaults to GamePath.

  • GameDataPath=PATH โ€” path to the original game's installed data files, relative to GamePath. usually it's data.
  • GameOverridePath=PATH โ€” path to the original game's override dir, relative to GamePath. usually it's override. original games use this directory to place last-minute patches.
  • GameCharactersPath=PATH โ€” path to the original game's installed data files, relative to GamePath. usually it's characters.
  • GamePortraitsPath=PATH โ€” path to the original game's installed data files, relative to GamePath. usually it's portraits.
  • GameScriptsPath=PATH โ€” path to the original game's installed data files, relative to GamePath. usually it's scripts.
  • GameSoundsPath=PATH โ€” path to the original game's installed data files, relative to GamePath. usually it's sounds.
  • GameLanguagePath=PATH โ€” path to the original game's installed data files, relative to GamePath. by default, it is lang/en_US.
  • GameMoviesPath=PATH โ€” path to the original game's installed data files, relative to GamePath. usually it's movies.
  • ModPath=PATH โ€” path where GemRB looks for additional engine override files. it is not set by default. this directory has precedence over GemRBOverridePath. ๐Ÿ‘‘
  • CustomFontPath=PATH โ€” path where GemRB looks for additional font files. it is meant to be used with the TTF font plugin and fonts.2da as a way to specify where to look for system or other external fonts. check the online documentation for the details. it is not set by default.

๐ŸŽ€ Input Parameters: ๐ŸŽ€

The ones that govern how your mouse, keyboard and lil fingies talk to the engine โœจ

  • DoubleClickDelay=INT โ€” the millisecond threshold for spotting a double click. Default is 250. Click faster than this and the game knows you mean business ๐Ÿ’…
  • RepeatKeyDelay=INT โ€” millisecond threshold for detecting a repeated key press. Default is 250.
  • UseSoftKeyboard=(0|1) โ€” toggles use of the software keyboard on devices that support one. It pops up when text input is required. Disabled by default ๐Ÿซถ
  • NumFingScroll=(2|3|4) โ€” how many fingers multitouch needs to trigger scrolling. Default is 2.
  • NumFingKboard=(2|3|4) โ€” how many fingers multitouch needs to open up the software keyboard. Default is 3. โš ๏ธ Heads up bestie: this value should not be equal to NumFingScroll above, or you're gonna have a bad time ๐Ÿ˜ญ
  • NumFingInfo=(2|3|4) โ€” how many fingers multitouch needs to emulate a special keypress (alt, tab). Default is 2.
  • NumFingInfo-adjacent chaos aside: yeah, the multitouch numbers all need to play nice with each other. iykyk.
  • MouseFeedback=(0-3) โ€” bitfield with reserved bits for disabling the mouse. It's giving โœจ options โœจ:
    • Show mouse+tooltips = 0 (default)
    • Hide mouse = 1
    • Hide tooltips = 2
    • Hide mouse+tooltips = 3
  • TouchInput=(0-1) โ€” override setting for when autodetection does not have satisfactory results ๐Ÿ™ˆ
    • Autodetect = -1 (default)
    • Force disable = 0
    • Enable = 1

๐Ÿ”ง Development parameters: ๐Ÿ”ง

These are for the devs, bestie. Seriously. If you don't know what you're doing, back away slowly ๐Ÿ’€
  • EnableCheatKeys=(0|1) โ€” this parameter is meant for developers. If set to 1, certain keys allow you to inspect the internal state of objects, do forbidden things, etc. The keys are listed in the CheatKeys.txt file. Do NOT use this option unless you want to make your hands dirty :-). The default is 0. Not me telling you it's literally called "cheat keys" and you're still gonna try it ๐ŸŽ€
  • DrawFPS=(0|1) โ€” this parameter is meant for developers. If set to 1, the current FPS (Frames per Second) value is drawn in the top left window corner. The default is 0. Frames per second, but make it a vibe check ๐Ÿ‘‘
  • DebugMode=(n) โ€” this parameter is meant for developers. It is a combination of bit values:
    1. count references,
    2. display cutscene warnings,
    3. display variable warnings,
    4. display action warnings,
    5. display trigger warnings,
    6. enable views debug mode,
    7. enable window debug mode,
    8. enable font debug mode,
    9. enable text debug mode.
    10. enable pathfinding debug mode.

The default is 0.

  • DelayPlugin=FILENAME โ€” named plugin will be loaded after other (nondelayed) plugins were loaded. FILENAME is a name without path, but with extension, for example libNullSound.so or libNullSound.dll. You can use this parameter more than once โœจ
  • SkipPlugin=FILENAME โ€” named plugin will not be loaded. FILENAME is a name without path, but with extension, for example libNullSound.so or libNullSound.dll. You can use this parameter more than once. (Yes, the twin of DelayPlugin. They're siblings ๐Ÿ’œ)
  • SaveAsOriginal=(0|1) โ€” set this parameter to 1 if you want to keep the save game compatible with the original engine. It is enabled by default.
  • KeepCache=(0|1) โ€” set this parameter to 1 if you want to keep the cache after exiting GemRB. It is disabled by default.
  • GamepadPointerSpeed=INT โ€” pointer movement speed with gamepads. The default is 10. ๐ŸŽฎ
  • VitaKeepAspectRatio=(0|1) โ€” if set to 1, original aspect ratio is preserved while game area is scaled to native PS Vita resolution. It is enabled by default. PS Vita girlies, this one's for you ๐Ÿฆ‹
  • UseAsLibrary=INT โ€” if set to non-zero, disables some engine features to facilitate independent use of GemRB libraries. The default is 0.

๐Ÿ“ FILES ๐Ÿ“

The places on your system where all the magic lives ๐ŸŒˆ

  • /etc/gemrb/gemrb.cfg โ€” system-wide configuration file.
  • /usr/share/gemrb/unhardcoded/ โ€” directory with GemRB-distributed data files. These used to be hardcoded in the original engine. The files are sorted into directories for specific games.
  • /usr/share/gemrb/override/ โ€” directory with GemRB-distributed data files. These files override their namesakes in the original data. ๐Ÿ‘‘ (override, the way that you just show up and replace your namesake, iconic)
  • /usr/share/gemrb/GUIScripts/ โ€” directory with Python scripts providing GUI setup and interaction. The files are sorted into directories for specific games.
  • $XDG_CONFIG_HOME/gemrb/ โ€” user's own configuration files. ๐Ÿ’–

๐Ÿ’€ BUGS ๐Ÿ’€

Many. GemRB is still in development stage and not complete. No cap, that's a direct quote from the source and we respect the honesty fr fr ๐Ÿ˜ญ

If you stumble over something which is supposed to work but doesn't, file an issue at https://github.com/gemrb/gemrb or first visit the official IRC channel #GemRB on the FreeNode IRC network. ๐Ÿซถ


โœจ AUTHOR โœจ

The GemRB Project development team at https://gemrb.org ๐ŸŽ€


๐Ÿ“œ COPYING ๐Ÿ“œ

Copyright (C) 2003-2021 The GemRB Project

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


And that's the whole page, bestie ๐ŸŽ€ this was GEMRB(6) from the GemRB Project โ€” go forth and run your very legally-owned copy of an Infinity Engine game, you absolute main character ๐ŸŒธ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from