This is a list of all the documented launch arguments and settings for power users. Keep in mind that -dev
mode was added during the 2018-03-28 update[1], and more options were added after that, see the official changelog for the authoritative list[2].
Command-line arguments[]
The PC version of the game supports the following launch parameters:
-dev
: Enables most of the development functionality and cheats, while also disabling achievements. It always has to be the first parameter in order for it to work. Combine it withSphinx.ini
to unlock most of the options.- It mainly unlocks the global right-click menu that contains the level selector and lets you open other windows like the Watcher, and access cheat options.
-mod <path>
: Same behavior as thePCMod
configuration key, but temporary. The folder must contain aBuildData/Filelist.bin
. The game will load the original filelist; merging it with the one from the mod, always preferring to load files from the latter when in doubt. So it works as a virtual file system overlay of sorts on top of the assets of the base game. It can be used in a shortcut, so multiple shortcuts will launch multiple mods without having to change any settings. Ensure you quote the path to avoid problems with spaces.- Example: During development you can use
-mod "X:\Sphinx\Binary\_bin_PC".
- Example: During development you can use
-level <hashcode>
: Same behavior as thePCReplaceFrontEnd
configuration key, but temporary. If set to1
it will use theLevel
value of[InitialLevel]
instead. Requires either-dev
or-mod
(or both) for it to work. Added in the 2019-08-28 update.- Example: To always load
HT_File_urk_4pat
you can use-dev -level 0x01000233
.
- Example: To always load
-slot <zero-based-slot-index>
: Same behavior as thePCLoadSaveSlot
configuration key, but temporary. Loads a saved slot directly at launch. The first slot is index0
, followed by1
and2
. Requires either-dev
or-mod
(or both) for it to work. Not public, yet.viewer
: Launches the in-game .EDB asset viewer, same as toggling it via the right-click menu in-dev
mode, but temporary. This is the only original argument added by Eurocom that the older versions of the game supported, and it partially works on GameCube via cheat code[3], albeit without mouse support.-sdataheap <memory-size-in-bytes>
and-ldataheap <memory-size-in-bytes>
: By default the game only uses two small and fixed blocks of RAM to store everything; the PC version only allocates 80 MiB (0x5000000
) on startup for the default/«small» heap (where most of the game state is stored) and 100 MiB (0x6400000
) for the «large» data heap (where the loaded .EDB file parts are kept). Added in March 2023.- The memory heap sizes and usage % at any given moment can be viewed from the Debug > Resources window.
- Changing these numbers allows modders to make space for more complex and dense textures and level data than what is normally possible by engine limitations.
- While these numbers may seem silly now, 80/100 MiB is already a big step up over the 4/14 MiB on GameCube, the 6/40 MiB on Xbox and the 4/22 MiB on PS2, as used by the original versions. Just to put hardware advancements in context.
-lang <iso-639-1-language-code>
: Enforce a particular language, when possible. e.g.-lang es
, for Spanish. See the[Localization] Language
configuration key fromSphinx.ini
below for the full table, this argument overrides that INI option and any other.- Unlike in the INI file, the original language numbers (e.g.
-lang 5
instead of-lang es
) don't work here. - If the requested language isn't part of the files, it will generally fall back to English.
- Using
-lang system
will force the game to auto-select the closest one matching the operating system, no matter what's currently enforced via Steam. i.e. You want to play in Ukrainian, but on Steam you can only select English; using this it will let you play if your OS is set to that. -lang auto
is like not using the argument at all, and the game will try to choose, or use, whatever is currently being set by other means.- The priority, from lowest to highest, and how the different methods override each other, goes as follows; first via the OS language, then via Steam, then by looking at the the Sphinx.ini configuration file, and finally, the one who always has the final say, is this
-lang
command-line argument.
- Unlike in the INI file, the original language numbers (e.g.
Configuration file (Sphinx.ini
)[]
Sphinx.ini
is the main configuration file of the game. It is pretty flexible and supports a lot of different keys, especially when combined with -dev
mode. The most commonly used configuration keys for modding and unlocking most of the debug functionality are listed below as a good start point:
[Debug] ScanMode=1 AllowGamePause=1 KeyboardOptions=1 [RenderMode] PresentMode=Windowed InputGrabbed=0 [Control] TutorialPrompts=0 [InitialLevel] PCReplaceFrontEnd=1 [BootState] PCBootToViewer=0
Location of the configuration file[]
Depending on your operating system your Sphinx.ini
will be stored in the following per-user folders:
- Windows:
%appdata%\Sphinx\Sphinx.ini
(e.g.C:\Users\<user-name>\AppData\Roaming\Sphinx\
) - macOS:
~/Library/Application Support/Sphinx/Sphinx.ini
- Linux:
~/.local/share/Sphinx/Sphinx.ini
List of documented configuration keys and values[]
Key | Default value |
Valid values |
Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BootState
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCBootToViewer
|
0
|
0 or 1
|
Bring ups the in-game .EDB asset viewer mode. Same as toggling it from the right-click menu. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCMod
|
(empty) | folder path | Forces the game to launch in mod mode, in this mode the special folder overrides any files from the base game. Same as specifying the -mod <path> command-line parameter, but persistent.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Localization
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Language
|
-1
|
|
If this configuration key is set to none (-1 ) then the language set in Steam has priority over the platform language, if everything else fails the game will use the default system language.
The game filters the languages to those available in the compiled version. At the time of writing Sphinx supports English, French, German, Italian, Spanish and Korean. In newer versions you can use the language's ISO 639-1 code. i.e. Same as specifying the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Debug
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ScanMode
|
0
|
0 or 1
|
Scan mode is the equivalent to noclip mode in other games. To enable scan mode in-game you press the right analog stick/C keyboard key, the player can then move freely and fly through objects. To move vertically use the Y/A Xbox controller buttons (top and bottom, basically) or Esc/Spacebar if you are using keyboard. Press the enable button again to toggle it back. It only works in -dev mode.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AllowGamePause
|
0
|
0 or 1
|
Allows you to toggle the game pause, frame advance and slow down modes by using the Scroll Lock and Pause keyboard keys; see this Steam thread for more information. It only works in -dev mode.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
KeyboardOptions
|
0 | 0 or 1
|
Enables the following keyboard debug shortcuts. It only works while in -dev mode:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OpenGLContext
|
0
|
0 or 1
|
Enable OpenGL validation, request a debug context and GL_KHR_debug .
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LogLev
|
-1
|
0 , any
|
Sets the verbosity of the game log traces, which are sorted by priority. On Windows the game prints to DebugView, while on macOS and Linux it uses stderr. Added by Eurocom. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RichPresence
|
1
|
0 or 1
|
Setting it to zero disables the rich presence integration for Discord/Steam Friends without necessarily disabling achievements, in case it causes slowdowns or frame-pacing issues (e.g. on macOS). Or just due to privacy reasons. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Control
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InvertFirstPersonVertical
|
0
|
0 or 1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InvertThirdPersonVertical
|
1
|
0 or 1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InvertThirdPersonHorizontal
|
1
|
0 or 1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PadRumble
|
1
|
0 or 1
|
Enable force feedback. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TutorialPrompts
|
1
|
0 or 1
|
Has direct gameplay consequences. Disables most of the help tooltips and explanations that can be freely ignored by advanced users. It uses a hardcoded blacklist of hashcodes. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeadZoneLow
|
0.22
|
Range from 0.0 to 1.0
|
Adjustment of the analog stick dead zone, clips any input outside of this range, tightening the range might help when there is phantom input, wear or stick drift. Especially the low part (inner ring, rest position) the high part (outer ring, maximum extent) is less prone to this. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeadZoneHigh
|
0.90
|
Range from 0.0 to 1.0
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WatcherItems
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Display-FOV
|
64
|
20 , 110
|
Field of view, in degrees. Limit is only enforced at startup on Nintendo Switch or while using the GUI. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Audio
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reverb
|
1
|
0 or 1
|
Enables the echo effects. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MusicVolume
|
75
|
0 , 100
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SfxVolume
|
100
|
0 , 100
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RenderMode
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InputGrabbed
|
1
|
0 or 1
|
Restrict the cursor to the game window area. Enabled by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Display
|
0
|
0 , any
|
Select the index of the screen to use. First screen starts at zero. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PresentMode
|
Borderless
|
|
Setting it to window mode will cause the game to pick a size slightly smaller than the work area rectangle by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FBWidth
|
(desktop width) | 1 , any
|
Force the framebuffer width in pixels. Also useful to force a specific window size. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FBHeight
|
(desktop height) | 1 , any
|
Force the framebuffer height in pixels. Also useful to force a specific window size. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MinFrameRate
|
30
|
1 , 240
|
Override the minimum and maximum framerate; this is not officially supported and, while improved, causes certain gameplay and physics or collision bugs. Some things are too fast and others too slow. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxFrameRate
|
60
|
1 , 240
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PixelScalingFactor
|
1.0
|
Generally from 0.5 to 2.0
|
Override the DPI screen detection, allows to scale all the 2D elements. Mainly HiDPI or Retina-style screens, where the default 100% scaling makes everything look tiny.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VideoFrameRate
|
Mostly 60
|
60 , 30 , 20 , 15 , ...
|
This can be used to override the display's refresh rate and make the game render at less than 60 Hz, like 30 Hz, 20 Hz, 15 Hz, or even less. So if you put a 30 there it will only render every other frame, improving performance by virtue of having half of the workload (and twice as much time allowance) to draw stuff, at the cost of looking slightly choppier.
To make the game run at more than 60 Hz see the If your screen runs at 30 Hz this should be detected and applied automatically, in theory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Graphics
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vsync
|
2
|
0 = Off
|
Use adaptive v-sync to reduce screen tearing. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseFramebuffer
|
1
|
0 or 1
|
By default the game creates its own framebuffer objects to draw the scene and then blits/resolves into the default framebuffer at the end of the frame. When setting this to zero the game will draw directly in the default framebuffer and MSAA won't work unless forced by the graphics card vendor panel. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MSAASamples
|
varies | 1 , max supported
|
Set the number of samples for multisample antialiasing. Setting it to one is the same as disabling it. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AnisotropyTaps
|
varies | 1 , max supported
|
Amount of anisotropic filtering. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SoftParticles
|
varies | 0 or 1
|
Masks the borders of flat, translucent elements that cut against solid geometry. Adding a volumetric effect. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LimitParticles
|
varies | 0 = unlimited
|
Reduce the amount of slowdowns when the graphics card is struggling with the huge amount of pixel fill-rate caused by many layers of transparent objects when they cover most of the screen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UsePlayStationButtonPrompts
|
0
|
0 or 1
|
Show the original PS2 on-screen button prompts instead of the Xbox button layout. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TextHudObjScaling
|
1.3
|
0.1 , any
|
Scale several HUD elements like dialog text and Ankh markers. Works independently and in a more limited way than PixelScalingFactor , which works with every screen element. This one is to optionally fine-tune and tweak the HUD on top of the other value. It also predates it.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ShadowMapSize
|
8192
|
1 , any
|
Width and height of the square texture used to store the projected shadow depth image. The more detailed, the less blocky the they will look. As graphics cards work in sizes that are powers of two it's recommended to use something like 1024 texels instead of random numbers like 1013 to avoid wasted memory/padded out space. Unless you like the look. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DynResScaleX
|
1.0
|
0.1 - 4.0
|
Reduces the internal render resolution of the 3D gameplay (e.g. to half the rate in each direction with 0.5 ) without affecting the HUD, or reducing the readability of the interface, which will still be rendered at full resolution (1.0 ) no matter what. This may allow running the game on very under-powered computers when setting these to very low values, like 0.4 for 40%, at the cost of worsening and pixelating the image quality.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DynResScaleY
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InitialLevel
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCLevel
|
varies | hashcode in decimal | Persistently stores the last loaded level during normal gameplay. Replaces the value of the front-end .EDB file, in theory. Could be used to launch the game and jump straight to a level when coupled with the option below. Added by Eurocom. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCReplaceFrontEnd
|
0
|
0 or 1 or a hashcode
|
When set to 1 the game will boot with the last loaded level, see above. If a fixed map hashcode is used instead it will load it. Same as specifying -level <hashcode> at launch time.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCLoadSaveSlot
|
-1
|
0 , 1 , 2
|
Loads a save game slot directly at start up. Same as specifying -slot <slot-index> at launch time.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PC QuickLevelJump1
|
-1
|
a level hashcode | Storage for each Ctrl + 1 (up to 5) quick-load shortcut. It only works in -dev mode with KeyboardOptions set to 1 . Added in the 2019-08-28 update.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PC QuickLevelJump2
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PC QuickLevelJump3
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PC QuickLevelJump4
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PC QuickLevelJump5
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCKeyboardMap
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IgnoreGamepadInput
|
0
|
0 or 1
|
When set to 1 the game only responds to keyboard input and ignores game controllers altogether, useful to create virtual keyboard → gamepad layouts with Xpadder or similar software. As requested.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_A
|
Spacebar | See this forum thread for a full rundown of remapping keys. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_B
|
F | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_X
|
Tab | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_Y
|
Esc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_BACK
|
Backspace | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_GUIDE
|
(empty) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_START
|
Enter | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_LEFTSTICK
|
Z | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_RIGHTSTICK
|
C | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_LEFTSHOULDER
|
Q | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_RIGHTSHOULDER
|
E | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_DPAD_UP
|
Up | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_DPAD_DOWN
|
Down | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_DPAD_LEFT
|
Left | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDL_CONTROLLER_BUTTON_DPAD_RIGHT
|
Right |