Halo's startup can be customized through the combination of arguments and console scripting. Using these options allows you to quickly configure Halo for various testing or server hosting scenarios.
If this file is placed in Halo's installation directory, the game will execute all lines as console commands at startup. The game can be told to use another file with the
-exec argument. Example contents are:
;set the "ting" hit noise to full volume multiplayer_hit_sound_volume 1 ;clear console output so the result of above is not shown cls ;launch directly into a map sv_map bloodgulch slayer
Similarly, Sapien loads
If using the OpenSauce mod, use the file name
Halo accepts command line/shortcut arguments to customize how the game launches and what features are enabled. From a terminal or Windows command prompt, such arguments are provided after the executable name, e.g.
haloce.exe -screenshot to run the game with screenshot mode enabled. These arguments can also be added in Windows by editing a shortcut to the Halo executable.
With H1CE many of these settings can be configured in-game, so it is not usually necessary to provide them as arguments. However,
-vidmode is useful for the H1A standalone build which cannot be configured in-game.
Windows users looking to avoid having to use the command prompt can create a shortcut to
haloceded.exe and edit it's target to provide these arguments. Be sure to place them after the EXE, and separate each argument with spaces:
The following is a comprehensive list of arguments. Not all are not documented in Halo's
-help output. Many arguments below are not applicable to the H1A standalone build which does not include a fixed function rendering pipeline or networking.
|Forces the game to run fullscreen on a multi-monitor adaptor.|
|Sets the refresh rate.|
|An even simpler graphics mode than |
|Forces the game to run as a shader 1.1 card. Additionally degrades visual quality by disabling model self-illumination, "animated lightmaps" (dynamic lights?), per-pixel fog, and specular lighting.|
|Forces the game to run as a shader 1.4 card. Disables bumped mirrored surfaces and some video effects become two-pass.|
|Forces the game to run as a shader 2.0 card. This is the intended shader version with all graphical features enabled. You probably won't need to specify this manually unless the game is having difficulty detecting your graphics card type.|
|Similar to |
|Forces the game to run as a fixed function card. This is the most basic feature set, further disabling shadows, refractive camouflage, and lens flares, with very basic fog, water, and lighting. This may improve performance on resource-constrained systems, but at great cost to visual quality.|
|Forces the game to run at a given width, height, refresh rate. If refresh rate is not provided, or is provided with a value of |
|Forces the game to run at 640x480.|
|Runs the game in a window.|
|The game will automatically connect to the given server after loading.|
|Client port address used when joining games. Defaults to 2303. If the port is set to 0, the game will use random client ports. See the Network Setup settings under the In-Game Settings section.|
|Server IP address used when you have multiple IP addresses (e.g. multiple network interfaces in your machine). Behind NAT, this should refer to the private IP configured for port forwarding.|
|The password for the server we're trying to connect to. Not to be confused with the |
|Server port address used when hosting games. Defaults to 2302. See the Network Setup settings under the In-Game Settings section.|
|Displays a list of most arguments. Will fail if using a modified |
|Enables the developer console, which can be opened with the ~ (tilde) key. This console can be used to enter Halo script commands and is similar to Sapien's console, though many Sapien-related commands have no effect. Note that most client mods like HAC2 and Chimera enable this automatically.|
|Enables developer mode commands (Custom Edition only). This also prevents Internet gameplay when mods are not used. Most client mods like HAC2 and Chimera enable this mode automatically.|
|Causes the game or dedicated server to run the file of console commands on startup.|
|Sets the name of the player profile.|
|Disables adjustment of gamma. The in-game gamma slider will not affect the brightness of the game if this switch is used.|
|Disables the Multiplayer menu item in the main menu. With a modified |
|Disables all sound.|
|Disables the |
|Prevents the Windows key from opening the start menu and minimizing the game.|
|Sets the path for which Halo looks for profiles and gametypes, normally |
|Disables as much as possible from the game in case you're experiencing crashes.|
|Enables the "Print Screen" key to generate TGA format screenshots in Halo's |
|A benchmarking mode which runs sped-up intro cinematics of several hard-coded maps (|
These additional arguments are found in game executable, but seem to have no effect. They were likely used during the game's development but were removed for its final release.
|Was possibly used to debug the machine's floating point unit (FPU).|
|May have been used to disable certain branches of code with SIMD instructions. Unknown if this has any effect now.|
|Bring up a crash dialog? No effect.|
|Load shaders from DirectX .fx files. Pre-release versions of Halo PC contain .fx files in a |
|Initializes D3D device type as the reference software implementation (development only)|
-timedemo argument produces a file
timedemo.txt in Halo's root directory. An example can be seen below:
Date / Time: 4/15/2020 12:00:35 AM (84994718ms) 2700MHz, 1024MB, 512M ATI Unknown (DeviceID=0x9874) Driver=184.108.40.2063 Shader=3.0 C:\Program Files (x86)\Microsoft Games\Halo Custom Edition\haloce.exe -timedemo (Version=220.127.116.111) Frames=4700 Total Time=114.21s Average frame rate=41.15fps Below 5fps= 15% (time) 0% (frames) (17.200s spent in 15 frames) Below 10fps= 15% (time) 0% (frames) Below 15fps= 16% (time) 0% (frames) Below 20fps= 20% (time) 2% (frames) Below 25fps= 28% (time) 6% (frames) Below 30fps= 30% (time) 7% (frames) Below 40fps= 34% (time) 12% (frames) Below 50fps= 49% (time) 27% (frames) Below 60fps= 82% (time) 71% (frames) ###Sound Options### Hardware Acceleration= No Sound Quality= Normal Environmental Sound= No Sound Variety= High ###Video Options### Resolution= 1280 x 720 Refresh rate= 60 Hz Framerate throttle= No Vsync Specular= Yes Shadows= Yes Decals= Yes Particles= Off Texture Quality= High For further information, please visit the timedemo FAQ at: http://halo.bungie.net/site/halo/features/hpcperformancefaq.html
Note: Each time
-timedemo is run, the output is appended to the output file, meaning any previous content is not overwritten. The output says
Particles= Off even if your particles setting is otherwise High, suggesting some of these options are hardcoded. The Bungie FAQ link is now a 404 page.
Thanks to the following individuals for their research or contributions to this topic:
- nToss (Information on timedemo and vidmode)