Skip to main content

Overview

fCavEX uses compile-time video settings defined in source/graphics/gfx_settings.h. These settings must be configured before building the game and require recompilation to take effect.
Changes to video settings require a complete rebuild of the project. Make sure to clean your build directory after modifying settings.

Configuration File

All video settings are located in:
source/graphics/gfx_settings.h
From source/graphics/gfx_settings.h:1-57:
#ifndef GFX_SETTINGS_H
#define GFX_SETTINGS_H

/*
    This file is used to set video settings at compile time.
    To disable a setting, comment its line out and recompile.
    To enable a setting, uncomment its line and recompile.
    Some settings cannot be disabled or enabled, as they are a number 
    (like resolution or GUI scale).
*/

Available Settings

GFX_CLOUDS

Type: Toggle define
Default: Enabled
Platforms: Wii, PC
Controls whether 3D clouds are rendered.
#define GFX_CLOUDS
  • Enabled: 3D clouds are rendered in the sky
  • Disabled: No clouds are rendered, slight performance improvement
To disable:
//#define GFX_CLOUDS

GFX_DOUBLESIDED

Type: Toggle define
Default: Enabled
Platforms: Wii, PC
Controls rendering of blocks with double-sided faces like tall grass and sugar cane.
#define GFX_DOUBLESIDED
  • Enabled: Blocks like tall grass, sugar cane, flowers, and saplings are rendered
  • Disabled: These blocks will not be rendered (backfaces culled)
Disabling this will make certain blocks invisible, which significantly affects gameplay.

GFX_FANCY_LIQUIDS

Type: Toggle define
Default: Enabled
Platforms: Wii, PC
Controls liquid rendering quality and transparency.
#define GFX_FANCY_LIQUIDS
  • Enabled: Liquids (water, lava) are transparent and animated
  • Disabled: Liquids are opaque and not animated, underwater blocks only render when player is underwater
Disabling fancy liquids can noticeably improve performance on low-end GPUs, especially on the Wii.
To disable:
//#define GFX_FANCY_LIQUIDS

GFX_GUI_SCALE

Type: Integer value
Default: 2
Minimum: 1
Platforms: Wii, PC
Controls the size of the game interface (HUD, menus, inventory).
#define GFX_GUI_SCALE 2
Example configurations:
#define GFX_GUI_SCALE 1
Do not set this value below 1, as it will cause rendering issues.

GFX_PC_WINDOW_WIDTH

Type: Integer value
Default: 640
Platforms: PC only
Sets the default window width for the PC version.
#define GFX_PC_WINDOW_WIDTH 640

GFX_PC_WINDOW_HEIGHT

Type: Integer value
Default: 400
Platforms: PC only
Sets the default window height for the PC version.
#define GFX_PC_WINDOW_HEIGHT 400
Common resolutions:
#define GFX_PC_WINDOW_WIDTH 320
#define GFX_PC_WINDOW_HEIGHT 240
#define GFX_GUI_SCALE 1
Lower resolutions can greatly improve performance on low-end GPUs. Consider 320x240 for integrated graphics.

GFX_WIREFRAME

Type: Toggle define
Default: Disabled
Platforms: PC only
Renders all polygons as wireframes (debugging feature).
//#define GFX_WIREFRAME
Enabling wireframe mode will break text and texture rendering and may lower performance. This is only for testing purposes.
To enable:
#define GFX_WIREFRAME

Editing Settings

1

Open the settings file

Edit source/graphics/gfx_settings.h in your text editor:
nano source/graphics/gfx_settings.h
2

Modify settings

To enable a setting, ensure the line is uncommented:
#define GFX_CLOUDS
To disable a setting, comment it out:
//#define GFX_CLOUDS
For numeric settings, change the value:
#define GFX_GUI_SCALE 3
3

Save and rebuild

Save the file and rebuild the project:
make clean
make

Performance Presets

Maximum Performance (Wii)

Optimized for best framerate on Wii hardware:
//#define GFX_CLOUDS
#define GFX_DOUBLESIDED
//#define GFX_FANCY_LIQUIDS
#define GFX_GUI_SCALE 2

Balanced (Wii)

Good performance with most visual features:
#define GFX_CLOUDS
#define GFX_DOUBLESIDED
#define GFX_FANCY_LIQUIDS
#define GFX_GUI_SCALE 2

Maximum Quality (PC)

Full visual features for capable hardware:
#define GFX_CLOUDS
#define GFX_DOUBLESIDED
#define GFX_FANCY_LIQUIDS
#define GFX_GUI_SCALE 3
#define GFX_PC_WINDOW_WIDTH 1280
#define GFX_PC_WINDOW_HEIGHT 720

Low-End PC

Optimized for integrated graphics:
//#define GFX_CLOUDS
#define GFX_DOUBLESIDED
//#define GFX_FANCY_LIQUIDS
#define GFX_GUI_SCALE 1
#define GFX_PC_WINDOW_WIDTH 320
#define GFX_PC_WINDOW_HEIGHT 240

Future Plans

From the source comments:
// TODO: 240p on Wii?
Runtime video settings may be added in a future version, which would eliminate the need for recompilation when changing settings.

Troubleshooting

Settings not applying

Ensure you’ve cleaned the build directory before rebuilding:
make clean  # Wii
rm -rf build_pc/*  # PC

Poor performance after enabling features

Try this configuration for better FPS:
//#define GFX_CLOUDS
//#define GFX_FANCY_LIQUIDS
#define GFX_GUI_SCALE 2  // or 1 for lower resolution

GUI too small or too large

Adjust GFX_GUI_SCALE based on your resolution:
  • 320x240: Use 1
  • 640x480: Use 2
  • 1280x720: Use 3
  • 1920x1080: Use 4

Build docs developers (and LLMs) love