SYSTEM.INI
Primary engine configuration file controlling rendering, gameplay, camera, dialog, debug, and 3D subsystem parameters.
Shipped sample path: /Redguard/SYSTEM.INI (e.g. .../GOG Galaxy/Redguard/Redguard/SYSTEM.INI).
Settings use key=value records grouped by section. Semicolons introduce
comments. Switches use 0/1, no/yes, off/on, or false/true. Most numeric fields
contain decimal integers, including negative position offsets and thresholds.
Camera glide factors and cam_prox_up contain decimal floating-point values.
The [3dfx] scale and font-color settings contain comma-separated integer pairs.
The integer configuration reader maps true, yes, and on to 1, and
false, no, and off to 0. Missing or empty values produce 0. Other values
use signed decimal conversion; numeric values are not normalized to booleans.
In particular, [debug] disable_family clears actor family links only when its
value is exactly 1. See actor initialization.
File Structure
Standard Windows-style INI file with 10 sections:
[screen]— display resolution and palette settings[system]— core engine paths, audio, physics, and HUD layout[debug]— developer diagnostics and logging flags[game]— gameplay physics thresholds and interaction radii[cyrus]— player character movement and control parameters[3dmanager]— 3D object cache and memory budget[xngine]— renderer texture memory, clipping planes, and sky behavior[camera]— camera rig offsets, distances, and glide factors for each mode[dialog]— dialog menu layout and speech settings[3dfx]— Glide/GOG-specific resolution and font scaling overrides
[screen]
Display mode and palette initialization settings.
| Key | Default Value | Description |
|---|---|---|
candle_mode | 2 | Candle HUD visibility: 0 = only while the show timer runs, 1 = always, 2 = always with the health number. F8 cycles and rewrites it. See candle. |
colour_bits | 8 | Color depth in bits per pixel (8 = paletted). |
resolution | 1 | Software renderer resolution index. |
Palette_red | 0 | Red component of the initial palette background color. |
Palette_green | 0 | Green component of the initial palette background color. |
Palette_blue | 0 | Blue component of the initial palette background color. |
smk_interlace | 0 | Smacker video interlace mode. 0 = disabled. |
[system]
Core engine paths, audio configuration, physics constants, HUD element positions, and subsystem enable flags.
world_ini and item_ini point to WORLD.INI and ITEM.INI respectively, which the engine loads for world and item definitions.
| Key | Default Value | Description |
|---|---|---|
game_bitmap | system\powerup.gxa | GXA for the two HUD power-up slots (frame 0 gauntlet, frame 1 shield). |
pointers | system\pointers.bmp | Path to the cursor GXA bitmap archive, stored with a BMP extension. |
system_font | fonts\redguard.fnt | Path to the primary system font. |
icon_font | fonts\arialvs.fnt | Path to the icon/small font. |
gui_font | fonts\arialbg.fnt | Path to the main GUI font. |
gui_low_font | fonts\arialvb.fnt | Path to the low-resolution GUI font. |
animation_drive | D:\ | Drive letter used for animation streaming. |
back_texture | 0 | Background texture index. 0 = none. |
volume | 255 | Master sound volume (0..255). |
sound | 1 | Sound system enabled. 1 = on. |
fast_sound | 1 | Fast sound mixing mode. 1 = on. |
fidelity | 0 | Sound fidelity level. |
redbook | on | CD audio (Red Book) playback enabled. |
redbook_volume | 200 | CD audio volume. Only 0–127 is accepted, so the shipped 200 is ignored; see music. |
sound_distance | 64 | Sound radius: sound_distance × 36 world units (shipped 2304); see positional sound. |
post_collide_height | 50 | Post-collision step height for ground snapping. |
hpost_collide_height | 50 | Post-collision step height for hanging/climbing. |
pre_validate | no | Pre-validate collision geometry on load. |
normal_frame_rate | 12 | Target frame rate for normal gameplay. |
use_smooth_fps | yes | Enable frame-rate smoothing. |
use_smooth_divisor | yes | Enable frame-rate smoothing divisor. |
min_frame_rate | 6 | Minimum allowed frame rate. |
max_frame_rate | 300 | Maximum allowed frame rate. |
jump_time | 6 | Duration of a jump in frames. |
jump_height | 80 | Jump height in engine units. |
sphere_object_scale | 256 | Scale factor for sphere collision objects. |
standing_height | -2 | Vertical offset for the player standing position. |
disable_text | yes | Disable on-screen text rendering. |
disable_debug_text | yes | Disable debug text overlay. |
normal_ink | 1 | Normal ink/outline rendering mode. |
slide_range | -60000 | Slide detection range threshold. |
statics_load | yes | Load static objects. |
flats_load | yes | Load flat/billboard objects. |
objects_load | yes | Load dynamic objects. |
lights_load | yes | Load light objects. |
ropes_load | yes | Load rope objects. |
task_system | yes | Enable the task/AI system. |
animation_system | yes | Enable the animation system. |
floating_point_physics | yes | Use floating-point physics calculations. |
rtx_filename | ENGLISH.RTX | Path to the dialogue/voice container file. |
world_ini | WORLD.INI | Path to the world definitions INI. |
item_ini | ITEM.INI | Path to the item definitions INI. |
start_fade | on | Fade in on game start. |
compass_xco | 546 | Compass top-left X. |
compass_yco | 396 | Compass top-left Y. |
candle_xco | 12 | Candle top-left X. |
candle_yco | 8 | Candle top-left Y. |
logbook_xco | 540 | Logbook icon top-left X. |
logbook_yco | 20 | Logbook icon top-left Y. |
pickup_xco | 12 | Active item icon top-left X, and start X of the prompt text. |
pickup_yco | 386 | Active item icon top-left Y. |
pickup_text_yco | 436 | Top Y of the HUD prompt text line. |
game_xco1 | 576 | Power-up slot 1 X. |
game_yco1 | 6 | Power-up slot 1 Y. |
game_xco2 | 576 | Power-up slot 2 X. |
game_yco2 | 96 | Power-up slot 2 Y. |
lock_windows | no | Lock window position/size. |
disable_drive_check | yes | Skip CD drive presence check on startup. |
disable_cpu_check | yes | Skip CPU speed check on startup. |
disable_svga_check | yes | Skip SVGA capability check on startup. |
report_machine | no | Log machine hardware info on startup. |
max_active_objects | 32 | Reusable actor-pool capacity, clamped to at least 10. |
max_effects | 32 | Maximum number of simultaneous particle effects. |
max_particles | 512 | Maximum number of simultaneous particles. |
max_remap_objects | 64 | Maximum number of palette-remapped objects. |
disable_effects | no | Disable particle effects. |
[debug]
Developer diagnostics, logging, and display flags. Most are disabled in the shipped build.
network_marker_file=g:\PROJECTS\REDGUARD\DEMO\NETWORK.MRK is a build-time artifact: a hardcoded developer machine path left in the shipped file.
| Key | Default Value | Description |
|---|---|---|
final_version | 1 | Selects release behavior. See Developer mode. |
enable_logs | 0 | Enable runtime log file writing. |
map_log | no | Log map loading events. |
console_error | yes | Print errors to the console. |
software_interrupt | yes | Enable software interrupt handling. |
software_break | yes | Enable software breakpoint handling. |
attempt_recover | no | Attempt to recover from errors rather than aborting. |
object_log | no | Log object system events. |
video_log | no | Log video/renderer events. |
node_marker | no | Display navigation node markers. |
task_debug | no | Enable task/AI debug output. |
memory_manager | 0 | Memory manager debug level. |
monitor_object | (empty) | Name of an object to monitor for debug output. |
display_masters | no | Display master object markers. |
display_slaves | no | Display slave object markers. |
display_edges | no | Display edge/collision markers. |
ignore_errors | yes | Continue running on non-fatal errors. |
disable_family | no | Disable object family grouping. |
disable_master_slaves | no | Disable master/slave object relationships. |
disable_slaves | no | Disable slave objects. |
family_log | no | Log object family events. |
script_log | no | Log script execution events. |
show_manager | no | Display the object manager overlay. |
display_node_map | no | Display the navigation node map. |
display_nodes | no | Display individual navigation nodes. |
display_markers | no | Display world markers. |
network_marker_file | g:\PROJECTS\REDGUARD\DEMO\NETWORK.MRK | Path to the network marker file. Build-time developer path; not used in the shipped game. |
object_system_log | no | Log object system events. |
convert_static_angles | no | Convert static object angles on load. |
def_checksum | yes | Verify SOUP386.DEF checksum on load. |
render_log | no | Log renderer events. |
idebug | 0 | Interactive debug level. |
idebug_refresh | no | Refresh interactive debug display each frame. |
memory_monitor | no | Enable memory usage monitoring. |
[game]
Gameplay physics thresholds, fall damage, and interaction radii.
| Key | Default Value | Description |
|---|---|---|
fall_bounce_height | 100 | Fall height (engine units) below which the player bounces without damage. |
fall_death_height | 568 | Fall height at which the player dies. |
fall_hurt_height | 300 | Fall height at which the player takes damage. |
fall_hurt_zap | 10 | Damage amount applied at fall_hurt_height. |
slide_hurt_height | 1024 | Slide distance at which the player takes damage. |
slide_hurt_zap | 10 | Damage amount applied at slide_hurt_height. |
rope_jump_add | 18 | Velocity added when jumping from a rope. |
rope_attach_angle | 512 | Angle threshold for rope attachment (engine angle units). |
slide_speed | 36 | Player slide speed in engine units per frame. |
rtx_pickup_override_time | 24 | Ticks for which holding the previous/next item key suppresses an activation prompt and shows the item icon. |
swim_depth | 40 | Model Y offset in map units for animation groups 141 through 143 on the non-inhibited surface-2/3/4 model-position path. Zero is replaced with 40. |
player_dead_time | 3 | Time (seconds) before respawn after death. |
player_fall_dead_time | 12 | Falling-death timeout input. Clamped to at least 3, then multiplied by 12 nominal ticks; the world loop exits only after the elapsed value exceeds that limit. |
old_combat | off | Use legacy combat system. |
lineup_distance | 128 | Distance at which enemies line up for combat. |
dialog_radius | 512 | Radius within which NPCs can initiate dialog. |
combat_sphere_scale | 200 | Scale factor for combat hit sphere. |
[cyrus]
Player character (Cyrus) movement, control, and camera-follow parameters.
| Key | Default Value | Description |
|---|---|---|
sheath_sword_delay | 6 | Frames before the sword auto-sheathes after combat. |
auto_defend | 1 | Enable automatic defense. 1 = on. |
walk_mode | 0 | Walk mode index. |
turn_speed | 12 | Base turning speed. |
turn_max_speed | 48 | Maximum turning speed. |
mouse_turn | 0 | Mouse-driven turning. 0 = disabled. |
joy_tolerance | 60 | Joystick dead-zone tolerance. |
camera_distance | 200 | Default camera follow distance. |
tap_time | 12 | Maximum frames between taps for a double-tap input. |
poly_push_units | 16 | Distance (engine units) the player is pushed out of geometry on collision. |
auto_grab | off | Automatically grab ledges and ropes. |
smooth_post_min | 2 | Minimum smoothing steps for post-collision position. |
smooth_post_max | 10 | Maximum smoothing steps for post-collision position. |
smooth_post_divisor | 2 | Divisor for post-collision position smoothing. |
[3dmanager]
3D object cache, memory budgets, and manager behavior.
| Key | Default Value | Description |
|---|---|---|
buffer_kbytes | 800 | Size of the 3D streaming buffer in kilobytes. |
heap_kbytes | 22000 | Size of the 3D object heap in kilobytes. |
max_objects | 255 | Maximum number of 3D objects loaded simultaneously. |
compress | 1 | Enable compressed object loading. 1 = on. |
save_compressed | 0 | Save objects in compressed form. 0 = off. |
cache_objects | yes | Cache loaded 3D objects in memory. |
cache_lifetime | 64 | Number of frames a cached object is retained after last use. |
dummy_manager | 0 | Use a dummy (no-op) 3D manager. 0 = off. |
in_view_enabled | yes | Enable in-view culling for 3D objects. |
shutdown_mode | yes | Perform full shutdown cleanup on exit. |
[xngine]
Renderer memory budgets, clipping planes, perspective settings, and sky behavior.
| Key | Default Value | Description |
|---|---|---|
texture_kbytes | 12000 | Texture memory budget in kilobytes. |
gfx_kbytes | 256 | General graphics buffer size in kilobytes. |
front_plane | 7 | Near clipping plane distance. |
back_plane | 3800 | Far clipping plane distance. |
perspective_low_x | 190 | Perspective correction X extent at low detail. |
perspective_low_y | 190 | Perspective correction Y extent at low detail. |
perspective_med_x | 400 | Perspective correction X extent at medium detail. |
perspective_med_y | 400 | Perspective correction Y extent at medium detail. |
perspective_high_x | 800 | Perspective correction X extent at high detail. |
perspective_high_y | 800 | Perspective correction Y extent at high detail. |
perspective_ultra_x | 800 | Perspective correction X extent at ultra detail. |
perspective_ultra_y | 800 | Perspective correction Y extent at ultra detail. |
detail | 8 | Renderer detail level. |
ambient_light | 32 | Global ambient light level (0..255). |
screen_scale | 256 | Screen-space scale factor. |
haze_depth | 768 | Distance at which atmospheric haze begins. |
sky_disable | 0 | Disable sky rendering. 0 = sky enabled. |
sky_move | 1 | Enable sky scrolling. 1 = on. |
sky_xrotate | 3 | Sky X-axis rotation speed. |
sky_yrotate | 40 | Sky Y-axis rotation speed. |
game_detail | 2 | In-game detail preset index. |
exclusion | 0 | Exclusion zone rendering mode. 0 = off. |
[camera]
Camera rig configuration for all gameplay modes: normal follow, combat, hanging, rope, and debug. Coordinates and angles use engine units. Floating-point glide factors control camera lag.
| Key | Default Value | Description |
|---|---|---|
static_rope_threshold | 5 | Velocity threshold below which a rope is considered static. |
obstacle_size | 20 | Minimum model-radius threshold for camera obstacle candidates; the model radius must be strictly larger. |
camera_size | 10 | Camera collision sphere radius. |
camera_scape_size | 5 | Camera collision sphere radius in scape/exterior areas. |
target_offset_x | -6000 | Target point X offset from the player. |
target_offset_y | -14000 | Target point Y offset from the player. |
target_offset_z | 0 | Target point Z offset from the player. |
offset_pos_x | 0 | Camera position X offset. |
offset_pos_y | -14000 | Camera position Y offset. |
offset_pos_z | 0 | Camera position Z offset. |
offset_angle_x | 0 | Camera angle X offset. |
offset_angle_y | 0 | Camera angle Y offset. |
offset_angle_z | 0 | Camera angle Z offset. |
camera_distance | 250 | Default follow camera distance. |
camera_min_distance | 120 | Minimum allowed camera distance. |
camera_right_pos | 5000 | Camera right-side position limit. |
camera_left_pos | 5000 | Camera left-side position limit. |
camera_combat_angle_offset_x | 134 | Combat camera X angle offset. |
camera_combat_angle_offset_y | 245 | Combat camera Y angle offset. |
camera_combat_angle_offset_z | 0 | Combat camera Z angle offset. |
camera_combat_distance | 260 | Camera distance in combat mode. |
camera_hang_angle_offset_x | 256 | Hanging camera X angle offset. |
camera_hang_angle_offset_y | 0 | Hanging camera Y angle offset. |
camera_hang_angle_offset_z | 0 | Hanging camera Z angle offset. |
camera_hang_distance | 250 | Camera distance in hanging mode. |
camera_rope_max_vel | 18000 | Maximum camera velocity when following a rope. |
camera_rope_angle_offset_x | 96 | Rope camera X angle offset. |
camera_rope_angle_offset_y | 128 | Rope camera Y angle offset. |
camera_rope_angle_offset_z | 0 | Rope camera Z angle offset. |
camera_rope_distance | 300 | Camera distance in rope mode. |
camera_rope_above_angle_offset_x | 96 | Rope-above camera X angle offset. |
camera_rope_above_angle_offset_y | 128 | Rope-above camera Y angle offset. |
camera_rope_above_angle_offset_z | 0 | Rope-above camera Z angle offset. |
camera_rope_above_distance | 300 | Camera distance in rope-above mode. |
camera_rope_above_aim_x | -512 | Rope-above camera aim X offset. |
camera_rope_above_aim_y | 0 | Rope-above camera aim Y offset. |
camera_rope_above_aim_z | 0 | Rope-above camera aim Z offset. |
camera_rope_below_angle_offset_x | 96 | Rope-below camera X angle offset. |
camera_rope_below_angle_offset_y | 128 | Rope-below camera Y angle offset. |
camera_rope_below_angle_offset_z | 0 | Rope-below camera Z angle offset. |
camera_rope_below_distance | 300 | Camera distance in rope-below mode. |
camera_rope_below_aim_x | 512 | Rope-below camera aim X offset. |
camera_rope_below_aim_y | 0 | Rope-below camera aim Y offset. |
camera_rope_below_aim_z | 0 | Rope-below camera aim Z offset. |
camera_debug_angle_offset_x | 128 | Debug camera X angle offset. |
camera_debug_angle_offset_y | 256 | Debug camera Y angle offset. |
camera_debug_angle_offset_z | 0 | Debug camera Z angle offset. |
camera_debug_distance | 300 | Camera distance in debug mode. |
max_x_angle | 1692 | Maximum camera X angle (engine angle units). |
min_x_angle | 400 | Minimum camera X angle (engine angle units). |
max_vel | 8000 | Maximum camera velocity. |
max_y_vel | 5000 | Maximum camera Y-axis velocity. |
max_acc | 5000 | Maximum camera acceleration. |
player_control_x_inc | 70 | Player-controlled camera X increment per frame. |
player_control_y_inc | -70 | Player-controlled camera Y increment per frame. |
glide_x | 0.9 | Camera position X glide (lag) factor. |
glide_y | 0.2 | Camera position Y glide (lag) factor. |
glide_z | 0.9 | Camera position Z glide (lag) factor. |
glide_angle_x | 0.7 | Camera angle X glide (lag) factor. |
glide_angle_y | 0.1 | Camera angle Y glide (lag) factor. |
glide_angle_z | 0.7 | Camera angle Z glide (lag) factor. |
cam_prox_up | 70.0 | Camera proximity upward adjustment distance. |
[dialog]
Dialog menu layout, line limits, and speech settings.
| Key | Default Value | Description |
|---|---|---|
menu_start_x | 35 | Dialog menu X start position in screen pixels. |
menu_start_y | 25 | Dialog menu Y start position in screen pixels. |
dialog_max_menu_items | 20 | Maximum number of items in a dialog menu. |
dialog_max_dialog_lines | 20 | Number of subtitle slots (minimum 16), not a line limit. |
dialog_max_text_width | 500 | Subtitle wrap width in 640-wide screen pixels (minimum 150). |
dialog_print_text | 1 | Display dialog as on-screen text. 1 = on. |
dialog_use_speech | 1 | Play voiced speech audio during dialog. 1 = on. |
dialog_max_distance | 1600 | Maximum distance at which dialog audio is played. |
menu_traverse_delay | 4 | Frames of delay between menu cursor movements. |
[3dfx]
Glide renderer overrides, active in the GOG release which runs via the Glide/3dfx code path. These settings take precedence over the software-renderer equivalents where applicable.
| Key | Default Value | Description |
|---|---|---|
resolution | 12 | Glide renderer resolution index. |
text_scale | 1, 1 | Text scaling factors (X, Y) for the Glide renderer. |
anim_text_scale | 1, 1 | Animated text scaling factors (X, Y) for the Glide renderer. |
font_sel | 255,255 | Font selection color values (foreground, background) for selected menu items. |
font_norm | 125,255 | Font color values (foreground, background) for normal menu items. |
font_used | 125,128 | Font color values (foreground, background) for used/visited menu items. |
Developer mode
[debug] final_version=0 selects developer behavior. The fv command-line
option forces release behavior and takes precedence over nfv, which forces
developer behavior. Either option overrides the INI value.
In developer mode, startup does not present the book menu and enters the starting world directly. In a world, Escape waits for its release and then exits the game instead of opening the book. Developer mode also enables the camera position/angle diagnostic keys and other developer display paths.