<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.eduke32.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NY00123</id>
	<title>EDukeWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eduke32.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NY00123"/>
	<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/wiki/Special:Contributions/NY00123"/>
	<updated>2026-07-06T06:04:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-alpha</generator>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14910</id>
		<title>Command line options</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14910"/>
		<updated>2024-09-20T06:09:11Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Ensure VoidSW sample commands for P2P mode are listed separately, and use code tags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= EDuke32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;eduke32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;eduke32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | pk3 | pk4 | map | con | def | rts}&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip|pk3|pk4}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is immediately loaded and launched as a usermap (equivalent to &amp;lt;code&amp;gt;-map&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .con file is specified, it replaces &amp;lt;code&amp;gt;GAME.CON&amp;lt;/code&amp;gt; (equivalent to &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF file (equivalent to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .rts file is specified, it is used as the main RTS soundbank (equivalent to &amp;lt;code&amp;gt;-rts&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the addons for Duke 3D (if present), packaged with the Megaton Edition release.&lt;br /&gt;
| 0 = none, 1 = Duke it out in D.C., 2 = Duke: Nuclear Winter, 3 = Duke Caribbean: Life&#039;s a Beach&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets initial cache size, in kilobytes. Usually not needed, as cache size is adjusted dynamically.&lt;br /&gt;
| See also [[cachesize_(DEF)| cachesize (DEF)]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;eduke32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]] &lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-d [file.edm][:arg1,arg2]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Plays an eduke32 demo. Can take optional parameters &amp;quot;arg1&amp;quot; and &amp;quot;arg2&amp;quot; which represent &amp;quot;frames per tic&amp;quot; and &amp;quot;number of repeats&amp;quot; respectively, and are used for debug performance profiling.&lt;br /&gt;
| By default, the game plays a loop starting at &amp;lt;code&amp;gt;edemo001.edm&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debughelp&amp;lt;/code&amp;gt; &lt;br /&gt;
|Displays debug parameters and exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Duke3d_w32 compatibility option. Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
| See also &#039;-j&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify the main DEF file. &lt;br /&gt;
| By default uses &#039;duke3d.def&#039; if present in the folder. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to EDuke32&#039;s search list. Does not alter the directory for config files.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts the specified usermap on launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional CON script module, appended after the GAME.CON code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;&lt;br /&gt;
|Disable monsters ([[m_monsters_off]] = 1) and sets [[m_player_skill]] and [[player_skill]] to 0.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nocontroller&amp;lt;/code&amp;gt;&lt;br /&gt;
| Completely disable controller support.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodinput&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable DirectInput (controller) support. (Windows)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noxinput&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable XInput (controller) support. (Linux)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents eduke32 from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
|Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosteam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables Steam community API integrations (such as achievements) if binary is compiled with parameter EDUKE32_STANDALONE.&lt;br /&gt;
| Currently only relevant for [[Ion Fury]] builds.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ns -nm &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable sound and music respectively.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables demo recording.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rotatesprite-no-widescreen&amp;lt;/code&amp;gt;&lt;br /&gt;
| Debug parameter. If set, screen tiles (such as weapons) logos and menu tiles will be stretched horizontally.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the skill level (0-4). Cannot exceed 4 even when more skill levels are defined. Setting this to 4 is hardcoded to enable [[respawn_monsters]] and [[m_respawn_monsters]], regardless of what the skill itself defines.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables/disables startup window&lt;br /&gt;
|[only on Windows, SDL, and/or GTK2 environments]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-t#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Set respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force eduke32 to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u#########&amp;lt;/code&amp;gt;&lt;br /&gt;
| Define the weapon switch order, as a string of 10 digits.&lt;br /&gt;
|(Default: &amp;lt;code&amp;gt;3425689071&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-v[X] -l[Y]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Warp to episode X, level Y if used together. If either is omitted, then warp assumes episode 1, resp. level 1.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
|Show coordinates as well as other debug information, including current sector num, lotag and hitag.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified script file.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-z# &amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-condebug&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enable line-by-line CON compile debugging at level #, and print the number of labels, variables and arrays used.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see [https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases NetDuke32].&lt;br /&gt;
&lt;br /&gt;
The corresponding parameters are listed here for the sake of completeness.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use fake player AI (dukebots) (fake multiplayer only).&lt;br /&gt;
| Sets [[playerai]] to 1, which doesn&#039;t do anything as of r9392.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-c#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Changes the value of [[m_coop]] to set the multiplayer mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-connect [ip]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the specified IP address.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dedicated&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start eduke32 in dedicated server mode.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [name]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the player name on startup. Can also be changed ingame.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Legacy P2P networking. &lt;br /&gt;
| Disabled as of r9392. Will exit with an error message.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noffire&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables friendly fire in coop games (i.e. [[m_ffire]] set to 0).&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-password [pw]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Password required to authenticate when connecting to server.&lt;br /&gt;
| Default is no password.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-port&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify which UDP port to use for hosting the game or connecting.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-q#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Fake multiplayer with # (2-16) players.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rts [file.rts]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the specified RTS soundbank for remote ridicule sounds.&lt;br /&gt;
| Defaults: {DUKE.RTS, NAM.RTS, NAPALM.RTS, WW2GI.RTS}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start multiplayer server for network games.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Removed Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters used to exist, but are no longer referenced in current eduke32 revisions.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load and run a game from slot # (0-9)&lt;br /&gt;
| EDuke32 no longer uses a fixed number of save slots, hence no longer works.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -conversion [YYYYMMDD] &amp;lt;/code&amp;gt; &lt;br /&gt;
| Selects CON script version for compatibility with older mods.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Send fewer packets in multiplayer (1, 2, 4)&lt;br /&gt;
|(deprecated)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-i#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use networking mode (1/0)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nD&amp;lt;/code&amp;gt;&lt;br /&gt;
| Dump default gamevars to gamevars.txt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rmnet&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use network config file.&lt;br /&gt;
| (OBSOLETE, see -net)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-stun&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use UDP hole punching for multiplayer connections.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Mapster32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;mapster32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;mapster32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | map | con | def}&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-j&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is directly opened in the editor.&lt;br /&gt;
* If a .con file is specified, it is used as the main resource for M32 CON commands.&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF script.&lt;br /&gt;
&lt;br /&gt;
The set of parameters for mapster32 has some overlap with eduke32. Below is the complete list.&lt;br /&gt;
&lt;br /&gt;
== Shared Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load addon data like eduke32 equivalent.&lt;br /&gt;
| 0 = none, 1 = DukeDC, 2 = DukeNW, 3 = Duke Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets initial cache size in KB. &lt;br /&gt;
| Unlike eduke32, this parameter has an upper limit of 1 MB.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;mapster32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]].&lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specifies the main DEF file. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to Mapster32&#039;s search list.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Include an additional M32 script module.&lt;br /&gt;
| See also the [[Console_commands#Editor-Specific| include command]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force mapster32 to read game data and configuration files from the current working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified file.&lt;br /&gt;
| GAME.CON code is only needed for sound definitions.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unique Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-check&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; -nocheck &amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/Disables map pointer checking when saving.&lt;br /&gt;
| Default is disabled.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -namesfile [names.h]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to a different names file for tile numbers. &lt;br /&gt;
| Default is &#039;names.h&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VoidSW Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;voidsw [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;voidsw -addon1 -level3 -cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VoidSW currently does not take files directly as arguments.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-addon#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the expansions included in Shadow Warrior Classic Complete.&lt;br /&gt;
| 0 = SW v1.2,  1 = Wanton Destruction, 2 = Twin Dragon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
| If combined with &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt;, starts the game with all weapons, inventory items and god mode on.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dp[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts playback of the given demo file.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-extcompat &amp;lt;/code&amp;gt;&lt;br /&gt;
| Controller compatibility mode. Multiplies movescale and turnscale by 5.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-g[file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified GRP or ZIP file as main data.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as the main DEF.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adds the given directory to look for game data.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-level# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified level on startup (0-27).&lt;br /&gt;
| Does not use episodic structure unlike Duke.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch the specified usermap.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mh[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as DEF module.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-monst &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables monsters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-movescale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the movement scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodemo &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables demo playback on the title screen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents voidsw from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
| Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nometers&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents boss health bars and the air meter from being drawn onscreen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the skill level (1-4).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enable/Disable the setup dialog.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-turnscale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the turning scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force VoidSW to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define multiplayer game options and must be listed first.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-autonet [params]&amp;lt;/code&amp;gt;&lt;br /&gt;
| The autonet parameter defines multiplayer game options, and takes exactly 10 arguments, separated by commas. &lt;br /&gt;
These are, in order: &lt;br /&gt;
* &amp;lt;code&amp;gt;[game_type]&amp;lt;/code&amp;gt;: 0=WangBang, 1=WangBang (no item respawn), 2=Coop&lt;br /&gt;
* &amp;lt;code&amp;gt;[level]&amp;lt;/code&amp;gt;: Which level should be played (0-27). No episodic separation.&lt;br /&gt;
* &amp;lt;code&amp;gt;[skill]&amp;lt;/code&amp;gt;: Skill level (0-4). (0 being &amp;quot;no monsters&amp;quot;)&lt;br /&gt;
* &amp;lt;code&amp;gt;[markers]&amp;lt;/code&amp;gt;: If set to 1, will enable item respawn markers (0/1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[team]&amp;lt;/code&amp;gt;: Whether WangBang is Free-For-All (0) or Team Deathmatch (1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[hurtteam]&amp;lt;/code&amp;gt;: If set to 1, friendly fire is on (coop or TDM).&lt;br /&gt;
* &amp;lt;code&amp;gt;[kill]&amp;lt;/code&amp;gt;: Defines the frag limit for Commbat.&lt;br /&gt;
* &amp;lt;code&amp;gt;[time]&amp;lt;/code&amp;gt;: Index that defines the time limit, 0 being no limit. Available limits: &amp;lt;code&amp;gt;{0,3,5,10,15,20,30,45,60} minutes&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;[color]&amp;lt;/code&amp;gt;: Player palette value. This determines the team colors.&lt;br /&gt;
* &amp;lt;code&amp;gt;[nuke]&amp;lt;/code&amp;gt;: If 0, will replace nuke pickups with railgun ammo. (0/1)&lt;br /&gt;
| Example Use: &amp;lt;code&amp;gt; -autonet 0,0,1,1,1,0,3,2,1,1 &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-col #&amp;lt;/code&amp;gt;&lt;br /&gt;
| Forces the player palette for joining players. &lt;br /&gt;
| Workaround because &amp;lt;code&amp;gt;-autonet&amp;lt;/code&amp;gt; fails to do so.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Packet duplication, i.e. how many &amp;quot;moves&amp;quot; are sent per packet. Choose higher values for lossy connections. &lt;br /&gt;
| Valid values: &amp;lt;code&amp;gt;{2,4,8}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [pname]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets the connecting player&#039;s name to the given value.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nopredict&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables network prediction method, i.e., player position is no longer predicted.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-short &amp;lt;/code&amp;gt;&lt;br /&gt;
| Divides the frag limit by 10 and halves the time limit.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection Establishment ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define which game to connect to, and MUST be listed last. &lt;br /&gt;
&lt;br /&gt;
Any other parameters that follow &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt; will be ignored.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Required to use the parameters listed below.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ip]:[port]&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;[hostname]:[port]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the given IP/hostname and port. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-n0:# &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-i0:#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Host a netgame in master-slave mode, expecting # players to join before launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-n1&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-i1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use in peer-to-peer mode. The [hostname]:[port] pairs must be listed in the same order for all players, with the exception that -N1 has to be specified instead of the current player&#039;s [hostname]:[port] pair.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-p#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the port # to use for hosting. Valid range: 1025-65534&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Usage example for 3-players game in peer-to-peer mode:&lt;br /&gt;
&lt;br /&gt;
Player 1: &amp;lt;code&amp;gt;voidsw -net -n1 &amp;amp;lt;hostname2:port2&amp;amp;gt; &amp;amp;lt;hostname3:port3&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Player 2: &amp;lt;code&amp;gt;voidsw -net &amp;amp;lt;hostname1:port1&amp;amp;gt; -n1 &amp;amp;lt;hostname3:port3&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Player 3: &amp;lt;code&amp;gt;voidsw -net &amp;amp;lt;hostname1:port1&amp;amp;gt; &amp;amp;lt;hostname2:port2&amp;amp;gt; -n1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debug Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters are used to debug VoidSW.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-allsync &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8 outside of demo recording. (purpose?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables camera view during normal gameplay, as if a demo recording is playing.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-commbat#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake WangBang with the specified number of players. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-coop#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake coop with the specified number of players. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debug &amp;lt;/code&amp;gt;&lt;br /&gt;
| Only enabled for DEBUG builds. Shows debug help options.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugactor&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all monsters. (same as &amp;lt;code&amp;gt;-monst&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debuganim&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all animations.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugpanel&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables panel update. (?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsecret&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays debug info whenever an enemy is killed.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsector&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector movement.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugso&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector objects.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ddr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo in debug mode with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosyncrecord &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, records demo sync information to a file.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosynctest&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, reads previously recorded demo sync information and errors out if demo playback doesn&#039;t match. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-randprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prints the output of krand() functions whenever they are called.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mono&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables some debug output during gameplay.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosyncprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables the &amp;quot;out-of-sync&amp;quot; message in multiplayer.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inactive Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following SW parameters are disabled, or have been removed.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-bots&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disabled. Would have added bots to fake multiplayer games.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-broadcast&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cacheprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used to print to stdout whenever a sound effect is cached/loaded. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-de[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Demo editing? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dt[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Temporary demo? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m &amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -monst.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-masterslave&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nocdaudio&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally disabled the Redbook music.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setupfile [arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally used by setup.exe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Screentext&amp;diff=14830</id>
		<title>Screentext</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Screentext&amp;diff=14830"/>
		<updated>2023-06-16T08:40:23Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Update link to screentext.con&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;screentext&#039;&#039;&#039; &amp;lt;tilenum&amp;gt; &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;zoom&amp;gt; &amp;lt;block angle&amp;gt; &amp;lt;character angle&amp;gt; &amp;lt;quote&amp;gt; &amp;lt;shade&amp;gt; &amp;lt;pal&amp;gt; &amp;lt;orientation&amp;gt; &amp;lt;alpha&amp;gt; &amp;lt;xspace&amp;gt; &amp;lt;yline&amp;gt; &amp;lt;xbetween&amp;gt; &amp;lt;ybetween&amp;gt; &amp;lt;text flags&amp;gt; &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;qstrdim&#039;&#039;&#039; &amp;lt;width return var&amp;gt; &amp;lt;height return var&amp;gt; &amp;lt;tilenum&amp;gt; &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;zoom&amp;gt; &amp;lt;block angle&amp;gt; &amp;lt;quote&amp;gt; &amp;lt;orientation&amp;gt; &amp;lt;xspace&amp;gt; &amp;lt;yline&amp;gt; &amp;lt;xbetween&amp;gt; &amp;lt;ybetween&amp;gt; &amp;lt;text flags&amp;gt; &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The art of HUD text can best be accomplished using the &#039;&#039;&#039;screentext&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;qstrdim&#039;&#039;&#039; calculates the dimensions taken up by an equivalent call to screentext.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
| &amp;lt;width return var&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;height return var&amp;gt;&lt;br /&gt;
| are both [[gamevar]]s to which &#039;&#039;&#039;qstrdim&#039;&#039;&#039; will assign its results&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tilenum&amp;gt;&lt;br /&gt;
| is the start of the font range. The most common value is STARTALPHANUM (#2822). MINIFONT (#3072) can also work. By default, these tile ranges follow [http://www.asciitable.com/ ASCII order] and the tile number itself points to the &#039;!&#039; character.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[x]]&amp;gt;&lt;br /&gt;
| X coordinate, normally ranged 0-320&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[y]]&amp;gt;&lt;br /&gt;
| Y coordinate, normally ranged 0-200 &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[zoom]]&amp;gt;&lt;br /&gt;
| is normally 65536. (ex: 131072 is zoomed in 2X and 32768 is half-sized)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;block angle&amp;gt;&lt;br /&gt;
| is the angle of the entire block of text, normally 0, where 360 degrees corresponds to 2048 [[Build units]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;character angle&amp;gt;&lt;br /&gt;
| is the angle of each individual character, relative to the block angle, also in Build units&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;quote&amp;gt;&lt;br /&gt;
| is the quote to print, as defined by [[definequote]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[shade]]&amp;gt;&lt;br /&gt;
| is 0 normally but can be any standard shade up to 31 or 63.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[pal]]&amp;gt;&lt;br /&gt;
| can be from 0-255.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;orientation&amp;gt;&lt;br /&gt;
| controls the way the sprite is drawn (see entry). Note: It is recommended that you always include bit 16 so that the characters will be placed correctly.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[alpha]]&amp;gt;&lt;br /&gt;
| translucence, 0-255&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;xspace&amp;gt;&lt;br /&gt;
| the width of the space character. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;yline&amp;gt;&lt;br /&gt;
| the height of an empty line. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;xbetween&amp;gt;&lt;br /&gt;
| the x-distance between characters. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ybetween&amp;gt;&lt;br /&gt;
| the y-distance between lines. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[#Text flags|text flags]]&amp;gt;&lt;br /&gt;
| is a [[bitfield]] describing properties of the text block (see entry)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;x1&amp;gt;, &amp;lt;y1&amp;gt;, &amp;lt;x2&amp;gt;, &amp;lt;y2&amp;gt;&lt;br /&gt;
| are boundaries on the screen that define where the text may be drawn. By far the two most common set of values for these fields are:&lt;br /&gt;
&amp;lt;code&amp;gt;0 0 [[xdim]]-1 [[ydim]]-1&amp;lt;/code&amp;gt; (Covers the entire screen. Orientation bit 8 recommended.)&lt;br /&gt;
&lt;br /&gt;
 set X2 xdim&lt;br /&gt;
 sub X2 1&lt;br /&gt;
 set Y2 ydim&lt;br /&gt;
 sub Y2 1&lt;br /&gt;
 &lt;br /&gt;
 // 0 0 X2 Y2&lt;br /&gt;
&amp;lt;code&amp;gt;[[windowx1]] [[windowy1]] [[windowx2]] [[windowy2]]&amp;lt;/code&amp;gt; (Shrinks to match the [[screen_size|viewport]].)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;x&amp;gt;, &amp;lt;y&amp;gt;, &amp;lt;xspace&amp;gt;, &amp;lt;yline&amp;gt;, &amp;lt;xbetween&amp;gt;, and &amp;lt;ybetween&amp;gt; are all affected by [[orientation]] flag 2048 which enables &amp;quot;full16&amp;quot; precision. For qstrdim, &amp;lt;width return var&amp;gt; and &amp;lt;height return var&amp;gt; will both return in full16 precision with orientation flag 2048.&lt;br /&gt;
&lt;br /&gt;
If you are using a &amp;lt;zoom&amp;gt; other than 65536, &amp;lt;xspace&amp;gt;, &amp;lt;yline&amp;gt;, &amp;lt;xbetween&amp;gt;, and &amp;lt;ybetween&amp;gt; should be what your text &#039;&#039;would use at zoom 65536&#039;&#039; and EDuke32 will scale them up or down for you.&lt;br /&gt;
&lt;br /&gt;
[[qstrdim]] can be helpful if you are designing complex text effects.&lt;br /&gt;
&lt;br /&gt;
== Orientation ==&lt;br /&gt;
&lt;br /&gt;
{{Orientation}}&lt;br /&gt;
&lt;br /&gt;
==Text flags==&lt;br /&gt;
&lt;br /&gt;
{{Template:Screentext flags}}&lt;br /&gt;
&lt;br /&gt;
==Default settings replicating other text commands==&lt;br /&gt;
===[[gametext]]===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: STARTALPHANUM&lt;br /&gt;
*&amp;lt;x&amp;gt;: Divided in half. The gametext command treats x=320 as the middle of the screen, while screentext operates like [[rotatesprite]] and uses x=160 as the center. (Gametext did not gain any precision; the quotient of dividing in half was always truncated, rounded down.)&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 5&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 8&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_CONSTWIDTHNUMS&lt;br /&gt;
&lt;br /&gt;
===[[minitext]]===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: MINIFONT&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 4&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 6&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 1&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 1&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_UPPERCASE (unless your mod adds lowercase tiles to the MINIFONT set, in which case 0)&lt;br /&gt;
====regular expression====&lt;br /&gt;
 Find: minitext &amp;lt;nowiki&amp;gt;+([A-Za-z0-9_]+) +([A-Za-z0-9_]+) +([A-Za-z0-9_]+) +([A-Za-z0-9_]+) +([A-Za-z0-9_]+)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Replace: screentext MINIFONT $1 $2 zoom blockangle charangle $3 $4 $5 orientation alpha 4 6 1 0 0x00002000 x1 y1 x2 y2&lt;br /&gt;
&lt;br /&gt;
===menutext===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: BIGALPHANUM&lt;br /&gt;
*&amp;lt;y&amp;gt;: decremented by 12&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 5&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 16&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_BIGALPHANUM + TEXT_UPPERCASE (+ TEXT_LITERALESCAPE if you want)&lt;br /&gt;
===[[digitalnumber]]===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: DIGITALNUM or THREEBYFIVE&lt;br /&gt;
*&amp;lt;quote&amp;gt;: Use [[qsprintf]] to insert a [[gamevar]] into a [[quote]].&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 4&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 8&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 1&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_XCENTER + TEXT_DIGITALNUMBER&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
[{{EDuke32 source|package/sdk/samples/screentext.con}} screentext.con]&lt;br /&gt;
&lt;br /&gt;
[[File:Screentext preview color.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Screen drawing commands]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Scalevar&amp;diff=14827</id>
		<title>Scalevar</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Scalevar&amp;diff=14827"/>
		<updated>2023-05-13T09:33:49Z</updated>

		<summary type="html">&lt;p&gt;NY00123: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;scalevar&#039;&#039;&#039; &amp;lt;Result&amp;gt; &amp;lt;Factor 1&amp;gt; &amp;lt;Factor 2&amp;gt; &amp;lt;Divisor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In C terms, this command performs roughly the expression &amp;lt;code&amp;gt;&amp;lt;Result&amp;gt; = (&amp;lt;Factor 1&amp;gt; * &amp;lt;Factor 2&amp;gt;) / &amp;lt;Divisor&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In CON terms, it is very similar to the following series of commands:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;Result&amp;gt; &amp;lt;Factor 1&amp;gt;&lt;br /&gt;
 mul &amp;lt;Result&amp;gt; &amp;lt;Factor 2&amp;gt;&lt;br /&gt;
 div &amp;lt;Result&amp;gt; &amp;lt;Divisor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main difference is that the calculation uses 64 bits to prevent overflow, while using gamevars for intermediate values would limit it to 31 bits.&lt;br /&gt;
&lt;br /&gt;
For example, [[statusbarscale]] use a scaling factor of 100. If you wanted to scale the screen coordinates of a sprite, you would do:&lt;br /&gt;
  &lt;br /&gt;
  &#039;&#039;&#039;scalevar&#039;&#039;&#039; Result Coordinate userdef[].statusbarscale 100&lt;br /&gt;
&lt;br /&gt;
Note that the equation above is very likely to surpass 31 bits. Using 16 bits of precision for rotatesprite, the maximum screen coordinate would be 327. So &#039;&#039;&#039;scalevar&#039;&#039;&#039; is required.&lt;br /&gt;
&lt;br /&gt;
See also [[mulscale]] and [[divscale]].&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Gamevar manipulation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Divscale&amp;diff=14826</id>
		<title>Divscale</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Divscale&amp;diff=14826"/>
		<updated>2023-05-13T09:33:35Z</updated>

		<summary type="html">&lt;p&gt;NY00123: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;divscale&#039;&#039;&#039; &amp;lt;Result&amp;gt; &amp;lt;Factor&amp;gt; &amp;lt;Divisor&amp;gt; &amp;lt;Left Shift&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In C terms, this command performs roughly the expression &amp;lt;code&amp;gt;&amp;lt;Result&amp;gt; = (&amp;lt;Factor&amp;gt; &amp;lt;&amp;lt; &amp;lt;Left Shift&amp;gt;) / &amp;lt;Divisor&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In CON terms, it is very similar to the following series of commands:&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;Result&amp;gt; &amp;lt;Factor&amp;gt;&lt;br /&gt;
 shiftl &amp;lt;Result&amp;gt; &amp;lt;Left Shift&amp;gt;&lt;br /&gt;
 div &amp;lt;Result&amp;gt; &amp;lt;Divisor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that despite being used as the last value, the left shift value is in the center of the equation.&lt;br /&gt;
&lt;br /&gt;
The main difference is that the calculation uses 64 bits to prevent overflow, while using gamevars for intermediate values would limit it to 31 bits.&lt;br /&gt;
&lt;br /&gt;
See also [[mulscale]] and [[scalevar]].&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Gamevar manipulation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=NetDuke32&amp;diff=14825</id>
		<title>NetDuke32</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=NetDuke32&amp;diff=14825"/>
		<updated>2023-05-12T14:25:36Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Rename oldmp -&amp;gt; netduke32, oldmp_porting -&amp;gt; netduke32_main&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Netduke32.png|thumb]]&lt;br /&gt;
== About ==&lt;br /&gt;
NetDuke32 is a multiplayer-centric port based on EDuke32, developed by Jordon &amp;quot;StrikerTheHedgefox&amp;quot; Moss. Started late 2015 as a series of maintenance builds of EDuke32-OldMP, it has since branched out and evolved. NetDuke32 brings new features, QoL (Quality of Life) and netcode improvements, and tries to improve the overall multiplayer experience.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
(Page is a work in progress)&lt;br /&gt;
* 16 player support, vs Duke3D&#039;s original 8.&lt;br /&gt;
* Improved networking code that is more reliable and less prone to desynchronization than vanilla Duke3D.&lt;br /&gt;
* Rewritten prediction code that gives immediate and smoother response to weapon and inventory use.&lt;br /&gt;
* New, easier to understand scoreboards for both DukeMatch and CO-OP, including ping display.&lt;br /&gt;
* Lifted limits for number of spawn points allowed in a map, and maps with fewer spawns than players no longer cause broken behaviour, allowing SP maps to be played online.&lt;br /&gt;
* Smarter DukeBot AI that&#039;s better at pathfinding, can swim, use jetpacks, use steroids, retreat and/or prioritize items based on combat situation, and understand how elevators work. They can also be used online with other players, too!&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
NetDuke32 has a few exclusive DEF tokens, GameVars, and structure members to access a few of its features. They will be listed here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Since NetDuke32 is still very much an early work in progress, these may be subject to &#039;&#039;&#039;&#039;&#039;changes, deprecation, or outright removal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== DEF Tokens ===&lt;br /&gt;
*&#039;&#039;&#039;addplayercolor &amp;lt;palnum&amp;gt; &amp;lt;name&amp;gt;&#039;&#039;&#039; - Adds a palswap to the list of selectable player colors for multiplayer.&lt;br /&gt;
::Example: &amp;lt;code&amp;gt;addplayercolor 17 &amp;quot;Green (Blue Skin)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;delplayercolor &amp;lt;palnum&amp;gt;&#039;&#039;&#039; - Deletes a palswap from the list of selectable player colors for multiplayer. A value of -1 deletes them all. (Make sure to define your own after!)&lt;br /&gt;
::Example: &amp;lt;code&amp;gt;delplayercolor 23&amp;lt;/code&amp;gt; (Which would make &amp;quot;Yellow&amp;quot; un-selectable.)&lt;br /&gt;
&lt;br /&gt;
=== CON Commands ===&lt;br /&gt;
*&#039;&#039;&#039;interpolate &amp;lt;curVal&amp;gt; &amp;lt;oldVal&amp;gt; &amp;lt;return&amp;gt;&#039;&#039;&#039; - Returns the interpolated value between curVal and oldVal for the currently drawn frame, useful in EVENT_ANIMATESPRITES and other display events where you might want to interpolate custom coordinates, or inherit the interpolated coords of another sprite.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;ldistvar &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt; &amp;lt;return&amp;gt;&#039;&#039;&#039; - Returns the distance between two arbitrary x/y coordinates.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;distvar &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;z1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt; &amp;lt;z2&amp;gt; &amp;lt;return&amp;gt;&#039;&#039;&#039; - Returns the distance between two arbitrary x/y/z coordinates.&lt;br /&gt;
&lt;br /&gt;
=== GameVars ===&lt;br /&gt;
*&#039;&#039;&#039;predicting&#039;&#039;&#039; (Read-only) - Returns the processing state of NetDuke32&#039;s prediction system. Useful to prevent desynchronization or visual artifacts in certain scenarios; For example, trying to call &amp;lt;code&amp;gt;spawn&amp;lt;/code&amp;gt; in player code that is normally predicted would result in a de-sync, but guarding it with &amp;lt;code&amp;gt;ifvare predicting 0&amp;lt;/code&amp;gt; will make sure it only happens during the canonical gamestate, preserving synchronization.&lt;br /&gt;
::Values:&lt;br /&gt;
::: 0 = Currently processing canonical gamestate.&lt;br /&gt;
::: 1 = Currently predicting upcoming gamestate.&lt;br /&gt;
::: 2 = Making corrections to any mispredictions.&lt;br /&gt;
*&#039;&#039;&#039;numteams&#039;&#039;&#039; (Read-only) - Returns the number of currently defined teams for TDM.&lt;br /&gt;
:: Example: &amp;lt;code&amp;gt;whilevarvarl TEMP numteams { addvar TEMP 1 }&amp;lt;/code&amp;gt; (Will loop while TEMP is less than numteams. Useful for things like displaying information for all teams, or setting an attribute for all.)&lt;br /&gt;
*&#039;&#039;&#039;DMFLAGS&#039;&#039;&#039; - Gets or sets the current DMFlags. See UserDefs section for a list of flags.&lt;br /&gt;
::Examples:&lt;br /&gt;
:::&amp;lt;code&amp;gt;ifvarand DMFLAGS 4 { spawn LIZTROOP }&amp;lt;/code&amp;gt; (Will spawn a LIZTROOP if DMFLAG_RESPAWNMONSTERS is enabled.)&lt;br /&gt;
:::&amp;lt;code&amp;gt;orvar DMFLAGS 256&amp;lt;/code&amp;gt; (Will enable DMFLAG_NOPLAYERID)&lt;br /&gt;
&lt;br /&gt;
=== Structure Members ===&lt;br /&gt;
==== UserDefs (get/setuserdef[].) ====&lt;br /&gt;
*&#039;&#039;&#039;teampal &amp;lt;teamnum&amp;gt;&#039;&#039;&#039; - Team&#039;s palette number.&lt;br /&gt;
::Example: &amp;lt;code&amp;gt;getuserdef[].teampal 2 TEMP // Gets team&#039;s palswap.&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;teamfrags &amp;lt;teamnum&amp;gt;&#039;&#039;&#039; - Team&#039;s frag count.&lt;br /&gt;
::Example: &amp;lt;code&amp;gt;getuserdef[].teampal 2 TEMP // Gets team&#039;s frag count.&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;teamsuicides &amp;lt;teamnum&amp;gt;&#039;&#039;&#039; - Team&#039;s number of suicides.&lt;br /&gt;
::Example: &amp;lt;code&amp;gt;setuserdef[].teamsuicides 2 0 // Sets team&#039;s suicides to 0.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;dmflags&#039;&#039;&#039; - A bitfield containing a series of gameplay-affecting flags, such as friendly fire, respawning items, whether or not FOV changes are allowed, etc.&lt;br /&gt;
::Flags:&lt;br /&gt;
:::DMFLAG_FRIENDLYFIRE             = 1&lt;br /&gt;
:::DMFLAG_NOMONSTERS               = 2&lt;br /&gt;
:::DMFLAG_RESPAWNMONSTERS          = 4&lt;br /&gt;
:::DMFLAG_RESPAWNITEMS             = 8&lt;br /&gt;
:::DMFLAG_RESPAWNINVENTORY         = 16&lt;br /&gt;
:::DMFLAG_MARKERS                  = 32&lt;br /&gt;
:::DMFLAG_NOEXITS                  = 64&lt;br /&gt;
:::DMFLAG_WEAPONSTAY               = 128&lt;br /&gt;
:::DMFLAG_NOPLAYERID               = 256&lt;br /&gt;
:::DMFLAG_NOFOVCHANGE              = 512&lt;br /&gt;
:::DMFLAG_NOWEAPONICONS            = 1024&lt;br /&gt;
:::DMFLAG_ALLOWVISIBILITYCHANGE    = 2048&lt;br /&gt;
:::DMFLAG_NODMWEAPONSPAWNS         = 4096&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;m_dmflags&#039;&#039;&#039; - Same as above, but contains the flags selected in the menu, before being confirmed and transferred to &#039;&#039;&#039;dmflags&#039;&#039;&#039; when starting a new map.&lt;br /&gt;
&lt;br /&gt;
==== Player (get/setplayer[].) ====&lt;br /&gt;
*&#039;&#039;&#039;lowsprite&#039;&#039;&#039; - The sprite the player is standing above, if applicable. (-1 if no sprite, &amp;gt;= 0 if there is one.)&lt;br /&gt;
*&#039;&#039;&#039;highsprite&#039;&#039;&#039; - The sprite the player is standing underneath, if applicable. (-1 if no sprite, &amp;gt;= 0 if there is one.)&lt;br /&gt;
::Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
getplayer[THISACTOR].on_ground TEMP&lt;br /&gt;
ifvare TEMP 1 // We&#039;re standing on something...&lt;br /&gt;
{&lt;br /&gt;
    getplayer[THISACTOR].lowsprite TEMP // Get sprite we&#039;re above&lt;br /&gt;
    ifvarn TEMP -1 // We&#039;re above something...&lt;br /&gt;
    {&lt;br /&gt;
        getactor[TEMP].picnum TEMP2 // Get picnum...&lt;br /&gt;
        ifvare TEMP2 SEENINE // We&#039;re standing on a SEENINE!&lt;br /&gt;
        {&lt;br /&gt;
            setactor[TEMP].htextra 9999 // It&#039;s unstable! It&#039;s gonna explode!&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
getplayer[THISACTOR].highsprite TEMP // Get sprite we&#039;re under.&lt;br /&gt;
ifvarn TEMP -1 // We&#039;re under something...&lt;br /&gt;
{&lt;br /&gt;
    getactor[TEMP].picnum TEMP2 // Get picnum...&lt;br /&gt;
    ifvare TEMP2 THWOMP // Oh no, it&#039;s a thwomp from mario! (implying a custom actor, here.)&lt;br /&gt;
    {&lt;br /&gt;
        setactorvar[TEMP].CRUSH_DUKE 1 // Signal to the thwomp to make a Duke Burger.&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
NetDuke32 has some new CON events for some of its functionality.&lt;br /&gt;
*&#039;&#039;&#039;EVENT_DOQUAKE&#039;&#039;&#039; [UNSYNCHRONIZED!] - Called when the game applies the screen shake for earthquakes. Allows implementing your own screen shake by setting &#039;&#039;RETURN&#039;&#039; to 0 and manipulating the camera(x/y/z/ang/horiz) variables.&lt;br /&gt;
::&#039;&#039;THISACTOR&#039;&#039; = Player sprite.&lt;br /&gt;
::&#039;&#039;RETURN&#039;&#039; = Earthquake time. Setting this to 0 cancels the shake.&lt;br /&gt;
::&#039;&#039;getplayer[THISACTOR]&#039;&#039; = Current player.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;EVENT_BOTGETSPRITESCORE&#039;&#039;&#039; - Called whenever a DukeBot tries to get the score/priority of a sprite it is considering picking up. Useful for getting bots to pick up custom items under a scripted criteria.&lt;br /&gt;
::&#039;&#039;THISACTOR&#039;&#039; = Current sprite.&lt;br /&gt;
::&#039;&#039;RETURN&#039;&#039; = Current sprite score/priority. Higher values mean higher priority. Set to 0 to ignore the sprite entirely.&lt;br /&gt;
::&#039;&#039;getplayer[THISACTOR]&#039;&#039; = Current bot.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;EVENT_FRAGGED&#039;&#039;&#039; - Called whenever a player is killed.&lt;br /&gt;
::&#039;&#039;THISACTOR&#039;&#039; = Sprite index of fragged player.&lt;br /&gt;
::&#039;&#039;RETURN&#039;&#039; = Sprite index of fragging player. Setting to -1 cancels the frag. See &#039;&#039;&#039;Note #1&#039;&#039;&#039;.&lt;br /&gt;
::&#039;&#039;getplayer[THISACTOR].frag_ps&#039;&#039; = Player index of fragging player.&lt;br /&gt;
::&#039;&#039;getplayer[THISACTOR].wackedbyactor&#039;&#039; = Sprite index of killer, regardless if a player or not.&lt;br /&gt;
::&#039;&#039;&#039;Note #1:&#039;&#039;&#039; &#039;&#039;THISACTOR&#039;&#039; and &#039;&#039;RETURN&#039;&#039; will be the same if killed by a non-player, so check those before checking wackedbyactor.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;EVENT_PREWEAPONSHOOT&#039;&#039;&#039; - Called just before a projectile is spawned by a weapon. Useful if you want to cancel or stagger shots, adjust player angle/pitch before firing, or work with custom ammo variables when fired, among other things.&lt;br /&gt;
::&#039;&#039;THISACTOR&#039;&#039; - Sprite ID of player firing.&lt;br /&gt;
::&#039;&#039;RETURN&#039;&#039; - Setting this to non-zero cancels the shot.&lt;br /&gt;
::&#039;&#039;getplayer[THISACTOR]&#039;&#039; = Current player.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;EVENT_POSTWEAPONSHOOT&#039;&#039;&#039; - Called just after a projectile is spawned by a weapon. Useful for adding additional functionality after the shot fires, or undoing any angle/pitch adjustments that were done in EVENT_PREWEAPONSHOOT.&lt;br /&gt;
::&#039;&#039;THISACTOR&#039;&#039; - Sprite ID of player firing.&lt;br /&gt;
::&#039;&#039;getplayer[THISACTOR]&#039;&#039; = Current player.&lt;br /&gt;
&lt;br /&gt;
== Compiling NetDuke32 ==&lt;br /&gt;
The process of compiling NetDuke32 is identical to these articles, except in MinGW and Linux, you type &amp;lt;code&amp;gt;make netduke32&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
* [[Building EDuke32 on Linux]] &lt;br /&gt;
* [[Building EDuke32 on Windows]]&lt;br /&gt;
* [[Building EDuke32 on macOS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases NetDuke32 Releases]&lt;br /&gt;
&lt;br /&gt;
*[https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/tree/netduke32_main NetDuke32 Repository on voidpoint.io (netduke32_main branch)]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Screentext&amp;diff=14824</id>
		<title>Screentext</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Screentext&amp;diff=14824"/>
		<updated>2023-05-12T13:36:35Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Rename TEXT_GAMETEXTNUMHACK -&amp;gt; TEXT_CONSTWIDTHNUMS as done when moving screentext into the engine: https://voidpoint.io/terminx/eduke32/-/commit/9f30ad1fc4c4359a1c2d755e4ad710d1980d69a1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;screentext&#039;&#039;&#039; &amp;lt;tilenum&amp;gt; &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;zoom&amp;gt; &amp;lt;block angle&amp;gt; &amp;lt;character angle&amp;gt; &amp;lt;quote&amp;gt; &amp;lt;shade&amp;gt; &amp;lt;pal&amp;gt; &amp;lt;orientation&amp;gt; &amp;lt;alpha&amp;gt; &amp;lt;xspace&amp;gt; &amp;lt;yline&amp;gt; &amp;lt;xbetween&amp;gt; &amp;lt;ybetween&amp;gt; &amp;lt;text flags&amp;gt; &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;qstrdim&#039;&#039;&#039; &amp;lt;width return var&amp;gt; &amp;lt;height return var&amp;gt; &amp;lt;tilenum&amp;gt; &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;zoom&amp;gt; &amp;lt;block angle&amp;gt; &amp;lt;quote&amp;gt; &amp;lt;orientation&amp;gt; &amp;lt;xspace&amp;gt; &amp;lt;yline&amp;gt; &amp;lt;xbetween&amp;gt; &amp;lt;ybetween&amp;gt; &amp;lt;text flags&amp;gt; &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The art of HUD text can best be accomplished using the &#039;&#039;&#039;screentext&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;qstrdim&#039;&#039;&#039; calculates the dimensions taken up by an equivalent call to screentext.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
| &amp;lt;width return var&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;height return var&amp;gt;&lt;br /&gt;
| are both [[gamevar]]s to which &#039;&#039;&#039;qstrdim&#039;&#039;&#039; will assign its results&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tilenum&amp;gt;&lt;br /&gt;
| is the start of the font range. The most common value is STARTALPHANUM (#2822). MINIFONT (#3072) can also work. By default, these tile ranges follow [http://www.asciitable.com/ ASCII order] and the tile number itself points to the &#039;!&#039; character.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[x]]&amp;gt;&lt;br /&gt;
| X coordinate, normally ranged 0-320&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[y]]&amp;gt;&lt;br /&gt;
| Y coordinate, normally ranged 0-200 &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[zoom]]&amp;gt;&lt;br /&gt;
| is normally 65536. (ex: 131072 is zoomed in 2X and 32768 is half-sized)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;block angle&amp;gt;&lt;br /&gt;
| is the angle of the entire block of text, normally 0, where 360 degrees corresponds to 2048 [[Build units]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;character angle&amp;gt;&lt;br /&gt;
| is the angle of each individual character, relative to the block angle, also in Build units&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;quote&amp;gt;&lt;br /&gt;
| is the quote to print, as defined by [[definequote]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[shade]]&amp;gt;&lt;br /&gt;
| is 0 normally but can be any standard shade up to 31 or 63.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[pal]]&amp;gt;&lt;br /&gt;
| can be from 0-255.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;orientation&amp;gt;&lt;br /&gt;
| controls the way the sprite is drawn (see entry). Note: It is recommended that you always include bit 16 so that the characters will be placed correctly.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[alpha]]&amp;gt;&lt;br /&gt;
| translucence, 0-255&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;xspace&amp;gt;&lt;br /&gt;
| the width of the space character. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;yline&amp;gt;&lt;br /&gt;
| the height of an empty line. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;xbetween&amp;gt;&lt;br /&gt;
| the x-distance between characters. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ybetween&amp;gt;&lt;br /&gt;
| the y-distance between lines. Can be zero or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;[[#Text flags|text flags]]&amp;gt;&lt;br /&gt;
| is a [[bitfield]] describing properties of the text block (see entry)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;x1&amp;gt;, &amp;lt;y1&amp;gt;, &amp;lt;x2&amp;gt;, &amp;lt;y2&amp;gt;&lt;br /&gt;
| are boundaries on the screen that define where the text may be drawn. By far the two most common set of values for these fields are:&lt;br /&gt;
&amp;lt;code&amp;gt;0 0 [[xdim]]-1 [[ydim]]-1&amp;lt;/code&amp;gt; (Covers the entire screen. Orientation bit 8 recommended.)&lt;br /&gt;
&lt;br /&gt;
 set X2 xdim&lt;br /&gt;
 sub X2 1&lt;br /&gt;
 set Y2 ydim&lt;br /&gt;
 sub Y2 1&lt;br /&gt;
 &lt;br /&gt;
 // 0 0 X2 Y2&lt;br /&gt;
&amp;lt;code&amp;gt;[[windowx1]] [[windowy1]] [[windowx2]] [[windowy2]]&amp;lt;/code&amp;gt; (Shrinks to match the [[screen_size|viewport]].)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;x&amp;gt;, &amp;lt;y&amp;gt;, &amp;lt;xspace&amp;gt;, &amp;lt;yline&amp;gt;, &amp;lt;xbetween&amp;gt;, and &amp;lt;ybetween&amp;gt; are all affected by [[orientation]] flag 2048 which enables &amp;quot;full16&amp;quot; precision. For qstrdim, &amp;lt;width return var&amp;gt; and &amp;lt;height return var&amp;gt; will both return in full16 precision with orientation flag 2048.&lt;br /&gt;
&lt;br /&gt;
If you are using a &amp;lt;zoom&amp;gt; other than 65536, &amp;lt;xspace&amp;gt;, &amp;lt;yline&amp;gt;, &amp;lt;xbetween&amp;gt;, and &amp;lt;ybetween&amp;gt; should be what your text &#039;&#039;would use at zoom 65536&#039;&#039; and EDuke32 will scale them up or down for you.&lt;br /&gt;
&lt;br /&gt;
[[qstrdim]] can be helpful if you are designing complex text effects.&lt;br /&gt;
&lt;br /&gt;
== Orientation ==&lt;br /&gt;
&lt;br /&gt;
{{Orientation}}&lt;br /&gt;
&lt;br /&gt;
==Text flags==&lt;br /&gt;
&lt;br /&gt;
{{Template:Screentext flags}}&lt;br /&gt;
&lt;br /&gt;
==Default settings replicating other text commands==&lt;br /&gt;
===[[gametext]]===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: STARTALPHANUM&lt;br /&gt;
*&amp;lt;x&amp;gt;: Divided in half. The gametext command treats x=320 as the middle of the screen, while screentext operates like [[rotatesprite]] and uses x=160 as the center. (Gametext did not gain any precision; the quotient of dividing in half was always truncated, rounded down.)&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 5&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 8&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_CONSTWIDTHNUMS&lt;br /&gt;
&lt;br /&gt;
===[[minitext]]===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: MINIFONT&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 4&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 6&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 1&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 1&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_UPPERCASE (unless your mod adds lowercase tiles to the MINIFONT set, in which case 0)&lt;br /&gt;
====regular expression====&lt;br /&gt;
 Find: minitext &amp;lt;nowiki&amp;gt;+([A-Za-z0-9_]+) +([A-Za-z0-9_]+) +([A-Za-z0-9_]+) +([A-Za-z0-9_]+) +([A-Za-z0-9_]+)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Replace: screentext MINIFONT $1 $2 zoom blockangle charangle $3 $4 $5 orientation alpha 4 6 1 0 0x00002000 x1 y1 x2 y2&lt;br /&gt;
&lt;br /&gt;
===menutext===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: BIGALPHANUM&lt;br /&gt;
*&amp;lt;y&amp;gt;: decremented by 12&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 5&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 16&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_BIGALPHANUM + TEXT_UPPERCASE (+ TEXT_LITERALESCAPE if you want)&lt;br /&gt;
===[[digitalnumber]]===&lt;br /&gt;
*&amp;lt;tilenum&amp;gt;: DIGITALNUM or THREEBYFIVE&lt;br /&gt;
*&amp;lt;quote&amp;gt;: Use [[qsprintf]] to insert a [[gamevar]] into a [[quote]].&lt;br /&gt;
*&amp;lt;xspace&amp;gt;: 4&lt;br /&gt;
*&amp;lt;yline&amp;gt;: 8&lt;br /&gt;
*&amp;lt;xbetween&amp;gt;: 1&lt;br /&gt;
*&amp;lt;ybetween&amp;gt;: 0&lt;br /&gt;
*&amp;lt;text flags&amp;gt;: TEXT_XCENTER + TEXT_DIGITALNUMBER&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
[{{EDuke32 source|source/duke3d/src/lunatic/test/screentext.con}} screentext.con]&lt;br /&gt;
&lt;br /&gt;
[[File:Screentext preview color.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Screen drawing commands]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14712</id>
		<title>Building EDuke32 on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14712"/>
		<updated>2022-02-16T21:38:53Z</updated>

		<summary type="html">&lt;p&gt;NY00123: BUILD32_ON_64 was removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Distribution intro}}&lt;br /&gt;
&lt;br /&gt;
= Compiling From Source =&lt;br /&gt;
&lt;br /&gt;
== Installation Notes ==&lt;br /&gt;
* You need an actual copy of Duke Nukem 3D. See [[Installation and configuration]].&lt;br /&gt;
* 3D acceleration drivers (recommended). NVIDIA has classically had the best Linux drivers.&lt;br /&gt;
* A MIDI device or player for the soundtrack (optional). By default, the game uses TinySoundFont for loading sound fonts, and Nuked OPL3 for OPL emulation. It&#039;s possible to use an external MIDI device or player for Duke Nukem 3D via an ALSA MIDI port.&lt;br /&gt;
&lt;br /&gt;
== Getting source files ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See [[Acquiring the EDuke32 Source Code]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites for the build ==&lt;br /&gt;
EDuke32 requires some development files installed before you can properly build.&lt;br /&gt;
&lt;br /&gt;
===Packages===&lt;br /&gt;
&lt;br /&gt;
* Basic dev environment (GCC &amp;gt;= 6.1, GNU make, etc)&lt;br /&gt;
* SDL2 &amp;gt;= 2.0 (SDL &amp;gt;= 1.2.10 also supported with SDL_TARGET=1)&lt;br /&gt;
&lt;br /&gt;
====Optional Packages====&lt;br /&gt;
&lt;br /&gt;
* NASM (highly recommended for i686/32-bit compilation to speed up 8-bit classic software renderer)&lt;br /&gt;
* libGL and libGLU (required for OpenGL renderers)&lt;br /&gt;
* libgtk+ &amp;gt;= 2.8.0 (required for the startup window)&lt;br /&gt;
* libvorbis &amp;gt;= 1.1.2&lt;br /&gt;
** libvorbisfile&lt;br /&gt;
** libogg&lt;br /&gt;
* libFLAC &amp;gt;= 1.2.1&lt;br /&gt;
* libvpx &amp;gt;= 0.9.0&lt;br /&gt;
&lt;br /&gt;
===Distro-Specific Installation===&lt;br /&gt;
&lt;br /&gt;
====On Debian / Ubuntu====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl2-dev flac libflac-dev libvorbis-dev libvpx-dev libgtk2.0-dev freepats&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====On Fedora 22-25====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf groupinstall &amp;quot;Development Tools&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf install g++ nasm mesa-libGL-devel mesa-libGLU-devel SDL2-devel alsa-lib-devel libvorbis-devel libvpx-devel gtk2-devel flac flac-devel&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Freepats is not packaged in Fedora, you must download and install it by yourself if desired. See also the &amp;quot;timidity-patch-freepats&amp;quot; package on others RPM based distros.&lt;br /&gt;
&lt;br /&gt;
== Build EDuke32 ==&lt;br /&gt;
In a terminal window move to the EDuke32 sources folder and type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build options ===&lt;br /&gt;
It is possible to define some options during the build. Just add them before or after the &#039;make&#039; command.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;make RELEASE=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Various options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|PRETTY_OUTPUT||Use colored output.||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Engine options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|USE_OPENGL||Enable basic OpenGL Polymost renderer.||1&lt;br /&gt;
|-&lt;br /&gt;
|POLYMER||Enable modern Polymer renderer for great justice.||1&lt;br /&gt;
|-&lt;br /&gt;
|NOASM||Disable the use of the ASM code for the classic renderer. Should be enabled on 32-bit [http://en.wikipedia.org/wiki/Pentium_compatible_processor Pentium compatible processors] only.||0 (ASM is disabled for x86_64 automatically because the ASM is 32-bit.)&lt;br /&gt;
|-&lt;br /&gt;
|HAVE_GTK2||Enable run-time linkage to GTK+.||1&lt;br /&gt;
|-&lt;br /&gt;
|STARTUP_WINDOW||Enable the startup window.||1&lt;br /&gt;
|-&lt;br /&gt;
|USE_LIBVPX||VP8 video codec used as an alternative to the ANM file format (only works if compiled with the OpenGL support).||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Debugging and Build options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|CLANG||Use the Clang compiler instead of the default GCC.||0&lt;br /&gt;
|-&lt;br /&gt;
|RELEASE||No debugging.||1&lt;br /&gt;
|-&lt;br /&gt;
|FORCEDEBUG||Include debug symbols even when generating release code.&amp;lt;br/&amp;gt;Additionally, with RELEASE=0, the following arrays are allocated statically: spriteext, spritesmooth, sector, wall, sprite, tsprite, while necessarily disabling the clipshape feature (because it relies on setting sector/wall to different malloc&#039;d block temporarily). Really only useful with CC=clang.||0&lt;br /&gt;
|-&lt;br /&gt;
|KRANDDEBUG||Include logging of krand() calls for debugging the demo system.||0&lt;br /&gt;
|-&lt;br /&gt;
|MICROPROFILE||Include a profiler that is connected to the CON VM. Provides statistics on how much processing time different CON events took in a specific time interval. To use it, launch the game and open a browser to the address &amp;quot;localhost:1338&amp;quot;. This will display a snapshot of the last N milliseconds of measurements that were taken just before the page was requested. See also: https://github.com/zeux/microprofile ||0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Optimization options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|OPTLEVEL||GCC optimization strategy. Values above 2 can cause crashes.||2&lt;br /&gt;
|-&lt;br /&gt;
|LTO||Enable link-time optimization, for GCC 4.5 and up.||1&lt;br /&gt;
|-&lt;br /&gt;
|OPTOPT||Define options specific to the CPU architecture.||empty (except for i686)&lt;br /&gt;
|-&lt;br /&gt;
|CUSTOMOPT||Custom options or optimizations, parameters defined here, are sent to both compiler and linker.||empty&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Confirm successful compile ==&lt;br /&gt;
These files should now be present in the EDuke32 directory:&lt;br /&gt;
* eduke32, the binary to launch the game.&lt;br /&gt;
* mapster32, the binary to launch the maps editor.&lt;br /&gt;
&lt;br /&gt;
= Run the game! =&lt;br /&gt;
You need to have the original Duke Nukem 3D files and the newly created EDuke32 executables in the same place. So, you could create a new folder (example eduke32_linux) and copy the original game files and the newly created EDuke32 executables there.&lt;br /&gt;
&lt;br /&gt;
To run the game open up a terminal window, move to the proper directory and type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymost High Resolution Pack] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp duke3d_hrp.zip polymost_hrp_update-*.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymer HRP] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp polymer_hrp.zip polymer_upd.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &#039;&#039;polymer_upd.zip&#039;&#039; may not be available. It is also possbile to add additional packs such as remade music and Z-Pack.&lt;br /&gt;
&lt;br /&gt;
* Using the autoload folder :&lt;br /&gt;
Copy mods or HRP files in the &#039;&#039;$HOME/.eduke32/autoload&#039;&#039; folder and it will be automaticaly loaded without additional parameters.&lt;br /&gt;
&lt;br /&gt;
= Installing EDuke32 globally =&lt;br /&gt;
&lt;br /&gt;
== Why ==&lt;br /&gt;
Installing EDuke32 as an application that you could run anywhere brings some useful advantages and is surprisingly easy to do.&lt;br /&gt;
&lt;br /&gt;
EDuke32 will use the directory you are currently in as the directory to work in, as well as ~/.eduke32 (/home/yourname/.eduke32). This means that you could have a directory, copy a Duke Nukem TC (or mod) in there, cd to that directory and run the global EDuke32 binary without having to make even more copies of the same EDuke32 binaries. EDuke32 will adapt to use the GAME/USER.CON files it finds in the CURRENT directory.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
All you&#039;ll have to do to get EDuke32 to run from anywhere is copy the eduke32 and mapster32 binaries to /usr/local/bin. After doing this, copy the &#039;&#039;duke3d.grp&#039;&#039; file to /usr/local/share/games/eduke32 or ~/.eduke32 (it&#039;s hidden, so try to cd to it or show hidden files). After this you&#039;ll be able to run EDuke32 from any directory on your hard disk!&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Lowercase/Uppercase problems ==&lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Shareware&#039;&#039;&#039;&lt;br /&gt;
If you are using the Shareware files located on the 3D Realms website, after you build and combine all the files into one folder and try to run the game you will get an error about the TABLES.DAT file. To correct the error simply rename the DUKE3D.GRP to all lowercase letter. After that the game should run. This isn&#039;t necessary anymore --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maps with extra resources&#039;&#039;&#039;&lt;br /&gt;
Some maps that include extra resources might have trouble finding these new files (for example, an older version of Duke Plus won&#039;t be able to find Step#.wav and Grate#.wav sounds). The EDuke32 log will output a &amp;quot;file not found&amp;quot; error every time this happens. To fix this, change the names of these files to match the exact case given in EDuke32&#039;s log (for example, GRATE#.wav instead of Grate#.wav).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ART file inconsistency&#039;&#039;&#039;&lt;br /&gt;
While most standard resources are referred to as UPPERCASE by EDuke32 (for example, GAME.CON), ART files are not as consistent and should be renamed to lowercase if you want to use custom art (tiles014.art instead of TILES014.ART).&lt;br /&gt;
&lt;br /&gt;
== Running with HRP Notes ==&lt;br /&gt;
If you want to run Polymer with the HRP you will need to provide the path to polymer_hrp.zip (even if its installed globally):&lt;br /&gt;
&amp;lt;code&amp;gt;eduke32 -g/path/to/polymer_hrp.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Running EDuke32 with an ATI card is slow for some users.&lt;br /&gt;
One user has had success with a Radeon 4850 and Fedora 12 with the open source default driver plus the latest Mesa experimental - the game runs smooth and pretty fast.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distribution documentation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14711</id>
		<title>Building EDuke32 on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14711"/>
		<updated>2022-02-16T21:38:28Z</updated>

		<summary type="html">&lt;p&gt;NY00123: LINKED_GTK and WITHOUT_GTK were replaced with HAVE_GTK2 and STARTUP_WINDOW&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Distribution intro}}&lt;br /&gt;
&lt;br /&gt;
= Compiling From Source =&lt;br /&gt;
&lt;br /&gt;
== Installation Notes ==&lt;br /&gt;
* You need an actual copy of Duke Nukem 3D. See [[Installation and configuration]].&lt;br /&gt;
* 3D acceleration drivers (recommended). NVIDIA has classically had the best Linux drivers.&lt;br /&gt;
* A MIDI device or player for the soundtrack (optional). By default, the game uses TinySoundFont for loading sound fonts, and Nuked OPL3 for OPL emulation. It&#039;s possible to use an external MIDI device or player for Duke Nukem 3D via an ALSA MIDI port.&lt;br /&gt;
&lt;br /&gt;
== Getting source files ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See [[Acquiring the EDuke32 Source Code]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites for the build ==&lt;br /&gt;
EDuke32 requires some development files installed before you can properly build.&lt;br /&gt;
&lt;br /&gt;
===Packages===&lt;br /&gt;
&lt;br /&gt;
* Basic dev environment (GCC &amp;gt;= 6.1, GNU make, etc)&lt;br /&gt;
* SDL2 &amp;gt;= 2.0 (SDL &amp;gt;= 1.2.10 also supported with SDL_TARGET=1)&lt;br /&gt;
&lt;br /&gt;
====Optional Packages====&lt;br /&gt;
&lt;br /&gt;
* NASM (highly recommended for i686/32-bit compilation to speed up 8-bit classic software renderer)&lt;br /&gt;
* libGL and libGLU (required for OpenGL renderers)&lt;br /&gt;
* libgtk+ &amp;gt;= 2.8.0 (required for the startup window)&lt;br /&gt;
* libvorbis &amp;gt;= 1.1.2&lt;br /&gt;
** libvorbisfile&lt;br /&gt;
** libogg&lt;br /&gt;
* libFLAC &amp;gt;= 1.2.1&lt;br /&gt;
* libvpx &amp;gt;= 0.9.0&lt;br /&gt;
&lt;br /&gt;
===Distro-Specific Installation===&lt;br /&gt;
&lt;br /&gt;
====On Debian / Ubuntu====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl2-dev flac libflac-dev libvorbis-dev libvpx-dev libgtk2.0-dev freepats&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====On Fedora 22-25====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf groupinstall &amp;quot;Development Tools&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf install g++ nasm mesa-libGL-devel mesa-libGLU-devel SDL2-devel alsa-lib-devel libvorbis-devel libvpx-devel gtk2-devel flac flac-devel&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Freepats is not packaged in Fedora, you must download and install it by yourself if desired. See also the &amp;quot;timidity-patch-freepats&amp;quot; package on others RPM based distros.&lt;br /&gt;
&lt;br /&gt;
== Build EDuke32 ==&lt;br /&gt;
In a terminal window move to the EDuke32 sources folder and type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build options ===&lt;br /&gt;
It is possible to define some options during the build. Just add them before or after the &#039;make&#039; command.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;make RELEASE=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Various options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|PRETTY_OUTPUT||Use colored output.||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Engine options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|USE_OPENGL||Enable basic OpenGL Polymost renderer.||1&lt;br /&gt;
|-&lt;br /&gt;
|POLYMER||Enable modern Polymer renderer for great justice.||1&lt;br /&gt;
|-&lt;br /&gt;
|NOASM||Disable the use of the ASM code for the classic renderer. Should be enabled on 32-bit [http://en.wikipedia.org/wiki/Pentium_compatible_processor Pentium compatible processors] only.||0 (ASM is disabled for x86_64 automatically because the ASM is 32-bit.)&lt;br /&gt;
|-&lt;br /&gt;
|HAVE_GTK2||Enable run-time linkage to GTK+.||1&lt;br /&gt;
|-&lt;br /&gt;
|STARTUP_WINDOW||Enable the startup window.||1&lt;br /&gt;
|-&lt;br /&gt;
|BUILD32_ON_64||||0&lt;br /&gt;
|-&lt;br /&gt;
|USE_LIBVPX||VP8 video codec used as an alternative to the ANM file format (only works if compiled with the OpenGL support).||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Debugging and Build options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|CLANG||Use the Clang compiler instead of the default GCC.||0&lt;br /&gt;
|-&lt;br /&gt;
|RELEASE||No debugging.||1&lt;br /&gt;
|-&lt;br /&gt;
|FORCEDEBUG||Include debug symbols even when generating release code.&amp;lt;br/&amp;gt;Additionally, with RELEASE=0, the following arrays are allocated statically: spriteext, spritesmooth, sector, wall, sprite, tsprite, while necessarily disabling the clipshape feature (because it relies on setting sector/wall to different malloc&#039;d block temporarily). Really only useful with CC=clang.||0&lt;br /&gt;
|-&lt;br /&gt;
|KRANDDEBUG||Include logging of krand() calls for debugging the demo system.||0&lt;br /&gt;
|-&lt;br /&gt;
|MICROPROFILE||Include a profiler that is connected to the CON VM. Provides statistics on how much processing time different CON events took in a specific time interval. To use it, launch the game and open a browser to the address &amp;quot;localhost:1338&amp;quot;. This will display a snapshot of the last N milliseconds of measurements that were taken just before the page was requested. See also: https://github.com/zeux/microprofile ||0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Optimization options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|OPTLEVEL||GCC optimization strategy. Values above 2 can cause crashes.||2&lt;br /&gt;
|-&lt;br /&gt;
|LTO||Enable link-time optimization, for GCC 4.5 and up.||1&lt;br /&gt;
|-&lt;br /&gt;
|OPTOPT||Define options specific to the CPU architecture.||empty (except for i686)&lt;br /&gt;
|-&lt;br /&gt;
|CUSTOMOPT||Custom options or optimizations, parameters defined here, are sent to both compiler and linker.||empty&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Confirm successful compile ==&lt;br /&gt;
These files should now be present in the EDuke32 directory:&lt;br /&gt;
* eduke32, the binary to launch the game.&lt;br /&gt;
* mapster32, the binary to launch the maps editor.&lt;br /&gt;
&lt;br /&gt;
= Run the game! =&lt;br /&gt;
You need to have the original Duke Nukem 3D files and the newly created EDuke32 executables in the same place. So, you could create a new folder (example eduke32_linux) and copy the original game files and the newly created EDuke32 executables there.&lt;br /&gt;
&lt;br /&gt;
To run the game open up a terminal window, move to the proper directory and type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymost High Resolution Pack] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp duke3d_hrp.zip polymost_hrp_update-*.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymer HRP] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp polymer_hrp.zip polymer_upd.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &#039;&#039;polymer_upd.zip&#039;&#039; may not be available. It is also possbile to add additional packs such as remade music and Z-Pack.&lt;br /&gt;
&lt;br /&gt;
* Using the autoload folder :&lt;br /&gt;
Copy mods or HRP files in the &#039;&#039;$HOME/.eduke32/autoload&#039;&#039; folder and it will be automaticaly loaded without additional parameters.&lt;br /&gt;
&lt;br /&gt;
= Installing EDuke32 globally =&lt;br /&gt;
&lt;br /&gt;
== Why ==&lt;br /&gt;
Installing EDuke32 as an application that you could run anywhere brings some useful advantages and is surprisingly easy to do.&lt;br /&gt;
&lt;br /&gt;
EDuke32 will use the directory you are currently in as the directory to work in, as well as ~/.eduke32 (/home/yourname/.eduke32). This means that you could have a directory, copy a Duke Nukem TC (or mod) in there, cd to that directory and run the global EDuke32 binary without having to make even more copies of the same EDuke32 binaries. EDuke32 will adapt to use the GAME/USER.CON files it finds in the CURRENT directory.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
All you&#039;ll have to do to get EDuke32 to run from anywhere is copy the eduke32 and mapster32 binaries to /usr/local/bin. After doing this, copy the &#039;&#039;duke3d.grp&#039;&#039; file to /usr/local/share/games/eduke32 or ~/.eduke32 (it&#039;s hidden, so try to cd to it or show hidden files). After this you&#039;ll be able to run EDuke32 from any directory on your hard disk!&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Lowercase/Uppercase problems ==&lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Shareware&#039;&#039;&#039;&lt;br /&gt;
If you are using the Shareware files located on the 3D Realms website, after you build and combine all the files into one folder and try to run the game you will get an error about the TABLES.DAT file. To correct the error simply rename the DUKE3D.GRP to all lowercase letter. After that the game should run. This isn&#039;t necessary anymore --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maps with extra resources&#039;&#039;&#039;&lt;br /&gt;
Some maps that include extra resources might have trouble finding these new files (for example, an older version of Duke Plus won&#039;t be able to find Step#.wav and Grate#.wav sounds). The EDuke32 log will output a &amp;quot;file not found&amp;quot; error every time this happens. To fix this, change the names of these files to match the exact case given in EDuke32&#039;s log (for example, GRATE#.wav instead of Grate#.wav).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ART file inconsistency&#039;&#039;&#039;&lt;br /&gt;
While most standard resources are referred to as UPPERCASE by EDuke32 (for example, GAME.CON), ART files are not as consistent and should be renamed to lowercase if you want to use custom art (tiles014.art instead of TILES014.ART).&lt;br /&gt;
&lt;br /&gt;
== Running with HRP Notes ==&lt;br /&gt;
If you want to run Polymer with the HRP you will need to provide the path to polymer_hrp.zip (even if its installed globally):&lt;br /&gt;
&amp;lt;code&amp;gt;eduke32 -g/path/to/polymer_hrp.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Running EDuke32 with an ATI card is slow for some users.&lt;br /&gt;
One user has had success with a Radeon 4850 and Fedora 12 with the open source default driver plus the latest Mesa experimental - the game runs smooth and pretty fast.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distribution documentation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14710</id>
		<title>Building EDuke32 on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14710"/>
		<updated>2022-02-16T21:32:28Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Since CXXSTD is now set to gnu++14 by default, let&amp;#039;s assume gcc 6.1 or later&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Distribution intro}}&lt;br /&gt;
&lt;br /&gt;
= Compiling From Source =&lt;br /&gt;
&lt;br /&gt;
== Installation Notes ==&lt;br /&gt;
* You need an actual copy of Duke Nukem 3D. See [[Installation and configuration]].&lt;br /&gt;
* 3D acceleration drivers (recommended). NVIDIA has classically had the best Linux drivers.&lt;br /&gt;
* A MIDI device or player for the soundtrack (optional). By default, the game uses TinySoundFont for loading sound fonts, and Nuked OPL3 for OPL emulation. It&#039;s possible to use an external MIDI device or player for Duke Nukem 3D via an ALSA MIDI port.&lt;br /&gt;
&lt;br /&gt;
== Getting source files ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See [[Acquiring the EDuke32 Source Code]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites for the build ==&lt;br /&gt;
EDuke32 requires some development files installed before you can properly build.&lt;br /&gt;
&lt;br /&gt;
===Packages===&lt;br /&gt;
&lt;br /&gt;
* Basic dev environment (GCC &amp;gt;= 6.1, GNU make, etc)&lt;br /&gt;
* SDL2 &amp;gt;= 2.0 (SDL &amp;gt;= 1.2.10 also supported with SDL_TARGET=1)&lt;br /&gt;
&lt;br /&gt;
====Optional Packages====&lt;br /&gt;
&lt;br /&gt;
* NASM (highly recommended for i686/32-bit compilation to speed up 8-bit classic software renderer)&lt;br /&gt;
* libGL and libGLU (required for OpenGL renderers)&lt;br /&gt;
* libgtk+ &amp;gt;= 2.8.0 (required for the startup window)&lt;br /&gt;
* libvorbis &amp;gt;= 1.1.2&lt;br /&gt;
** libvorbisfile&lt;br /&gt;
** libogg&lt;br /&gt;
* libFLAC &amp;gt;= 1.2.1&lt;br /&gt;
* libvpx &amp;gt;= 0.9.0&lt;br /&gt;
&lt;br /&gt;
===Distro-Specific Installation===&lt;br /&gt;
&lt;br /&gt;
====On Debian / Ubuntu====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl2-dev flac libflac-dev libvorbis-dev libvpx-dev libgtk2.0-dev freepats&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====On Fedora 22-25====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf groupinstall &amp;quot;Development Tools&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf install g++ nasm mesa-libGL-devel mesa-libGLU-devel SDL2-devel alsa-lib-devel libvorbis-devel libvpx-devel gtk2-devel flac flac-devel&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Freepats is not packaged in Fedora, you must download and install it by yourself if desired. See also the &amp;quot;timidity-patch-freepats&amp;quot; package on others RPM based distros.&lt;br /&gt;
&lt;br /&gt;
== Build EDuke32 ==&lt;br /&gt;
In a terminal window move to the EDuke32 sources folder and type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build options ===&lt;br /&gt;
It is possible to define some options during the build. Just add them before or after the &#039;make&#039; command.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;make RELEASE=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Various options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|PRETTY_OUTPUT||Use colored output.||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Engine options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|USE_OPENGL||Enable basic OpenGL Polymost renderer.||1&lt;br /&gt;
|-&lt;br /&gt;
|POLYMER||Enable modern Polymer renderer for great justice.||1&lt;br /&gt;
|-&lt;br /&gt;
|NOASM||Disable the use of the ASM code for the classic renderer. Should be enabled on 32-bit [http://en.wikipedia.org/wiki/Pentium_compatible_processor Pentium compatible processors] only.||0 (ASM is disabled for x86_64 automatically because the ASM is 32-bit.)&lt;br /&gt;
|-&lt;br /&gt;
|LINKED_GTK||Enable compile-time linkage to GTK+.||0&lt;br /&gt;
|-&lt;br /&gt;
|WITHOUT_GTK||Do not compile GTK+ code.||0&lt;br /&gt;
|-&lt;br /&gt;
|BUILD32_ON_64||||0&lt;br /&gt;
|-&lt;br /&gt;
|USE_LIBVPX||VP8 video codec used as an alternative to the ANM file format (only works if compiled with the OpenGL support).||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Debugging and Build options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|CLANG||Use the Clang compiler instead of the default GCC.||0&lt;br /&gt;
|-&lt;br /&gt;
|RELEASE||No debugging.||1&lt;br /&gt;
|-&lt;br /&gt;
|FORCEDEBUG||Include debug symbols even when generating release code.&amp;lt;br/&amp;gt;Additionally, with RELEASE=0, the following arrays are allocated statically: spriteext, spritesmooth, sector, wall, sprite, tsprite, while necessarily disabling the clipshape feature (because it relies on setting sector/wall to different malloc&#039;d block temporarily). Really only useful with CC=clang.||0&lt;br /&gt;
|-&lt;br /&gt;
|KRANDDEBUG||Include logging of krand() calls for debugging the demo system.||0&lt;br /&gt;
|-&lt;br /&gt;
|MICROPROFILE||Include a profiler that is connected to the CON VM. Provides statistics on how much processing time different CON events took in a specific time interval. To use it, launch the game and open a browser to the address &amp;quot;localhost:1338&amp;quot;. This will display a snapshot of the last N milliseconds of measurements that were taken just before the page was requested. See also: https://github.com/zeux/microprofile ||0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Optimization options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|OPTLEVEL||GCC optimization strategy. Values above 2 can cause crashes.||2&lt;br /&gt;
|-&lt;br /&gt;
|LTO||Enable link-time optimization, for GCC 4.5 and up.||1&lt;br /&gt;
|-&lt;br /&gt;
|OPTOPT||Define options specific to the CPU architecture.||empty (except for i686)&lt;br /&gt;
|-&lt;br /&gt;
|CUSTOMOPT||Custom options or optimizations, parameters defined here, are sent to both compiler and linker.||empty&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Confirm successful compile ==&lt;br /&gt;
These files should now be present in the EDuke32 directory:&lt;br /&gt;
* eduke32, the binary to launch the game.&lt;br /&gt;
* mapster32, the binary to launch the maps editor.&lt;br /&gt;
&lt;br /&gt;
= Run the game! =&lt;br /&gt;
You need to have the original Duke Nukem 3D files and the newly created EDuke32 executables in the same place. So, you could create a new folder (example eduke32_linux) and copy the original game files and the newly created EDuke32 executables there.&lt;br /&gt;
&lt;br /&gt;
To run the game open up a terminal window, move to the proper directory and type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymost High Resolution Pack] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp duke3d_hrp.zip polymost_hrp_update-*.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymer HRP] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp polymer_hrp.zip polymer_upd.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &#039;&#039;polymer_upd.zip&#039;&#039; may not be available. It is also possbile to add additional packs such as remade music and Z-Pack.&lt;br /&gt;
&lt;br /&gt;
* Using the autoload folder :&lt;br /&gt;
Copy mods or HRP files in the &#039;&#039;$HOME/.eduke32/autoload&#039;&#039; folder and it will be automaticaly loaded without additional parameters.&lt;br /&gt;
&lt;br /&gt;
= Installing EDuke32 globally =&lt;br /&gt;
&lt;br /&gt;
== Why ==&lt;br /&gt;
Installing EDuke32 as an application that you could run anywhere brings some useful advantages and is surprisingly easy to do.&lt;br /&gt;
&lt;br /&gt;
EDuke32 will use the directory you are currently in as the directory to work in, as well as ~/.eduke32 (/home/yourname/.eduke32). This means that you could have a directory, copy a Duke Nukem TC (or mod) in there, cd to that directory and run the global EDuke32 binary without having to make even more copies of the same EDuke32 binaries. EDuke32 will adapt to use the GAME/USER.CON files it finds in the CURRENT directory.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
All you&#039;ll have to do to get EDuke32 to run from anywhere is copy the eduke32 and mapster32 binaries to /usr/local/bin. After doing this, copy the &#039;&#039;duke3d.grp&#039;&#039; file to /usr/local/share/games/eduke32 or ~/.eduke32 (it&#039;s hidden, so try to cd to it or show hidden files). After this you&#039;ll be able to run EDuke32 from any directory on your hard disk!&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Lowercase/Uppercase problems ==&lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Shareware&#039;&#039;&#039;&lt;br /&gt;
If you are using the Shareware files located on the 3D Realms website, after you build and combine all the files into one folder and try to run the game you will get an error about the TABLES.DAT file. To correct the error simply rename the DUKE3D.GRP to all lowercase letter. After that the game should run. This isn&#039;t necessary anymore --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maps with extra resources&#039;&#039;&#039;&lt;br /&gt;
Some maps that include extra resources might have trouble finding these new files (for example, an older version of Duke Plus won&#039;t be able to find Step#.wav and Grate#.wav sounds). The EDuke32 log will output a &amp;quot;file not found&amp;quot; error every time this happens. To fix this, change the names of these files to match the exact case given in EDuke32&#039;s log (for example, GRATE#.wav instead of Grate#.wav).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ART file inconsistency&#039;&#039;&#039;&lt;br /&gt;
While most standard resources are referred to as UPPERCASE by EDuke32 (for example, GAME.CON), ART files are not as consistent and should be renamed to lowercase if you want to use custom art (tiles014.art instead of TILES014.ART).&lt;br /&gt;
&lt;br /&gt;
== Running with HRP Notes ==&lt;br /&gt;
If you want to run Polymer with the HRP you will need to provide the path to polymer_hrp.zip (even if its installed globally):&lt;br /&gt;
&amp;lt;code&amp;gt;eduke32 -g/path/to/polymer_hrp.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Running EDuke32 with an ATI card is slow for some users.&lt;br /&gt;
One user has had success with a Radeon 4850 and Fedora 12 with the open source default driver plus the latest Mesa experimental - the game runs smooth and pretty fast.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distribution documentation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14709</id>
		<title>Building EDuke32 on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14709"/>
		<updated>2022-02-16T21:27:08Z</updated>

		<summary type="html">&lt;p&gt;NY00123: SDL_mixer isn&amp;#039;t required anymore, and the options for music playback changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Distribution intro}}&lt;br /&gt;
&lt;br /&gt;
= Compiling From Source =&lt;br /&gt;
&lt;br /&gt;
== Installation Notes ==&lt;br /&gt;
* You need an actual copy of Duke Nukem 3D. See [[Installation and configuration]].&lt;br /&gt;
* 3D acceleration drivers (recommended). NVIDIA has classically had the best Linux drivers.&lt;br /&gt;
* A MIDI device or player for the soundtrack (optional). By default, the game uses TinySoundFont for loading sound fonts, and Nuked OPL3 for OPL emulation. It&#039;s possible to use an external MIDI device or player for Duke Nukem 3D via an ALSA MIDI port.&lt;br /&gt;
&lt;br /&gt;
== Getting source files ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See [[Acquiring the EDuke32 Source Code]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites for the build ==&lt;br /&gt;
EDuke32 requires some development files installed before you can properly build.&lt;br /&gt;
&lt;br /&gt;
===Packages===&lt;br /&gt;
&lt;br /&gt;
* Basic dev environment (GCC &amp;gt;= 4.8, GNU make, etc)&lt;br /&gt;
* SDL2 &amp;gt;= 2.0 (SDL &amp;gt;= 1.2.10 also supported with SDL_TARGET=1)&lt;br /&gt;
&lt;br /&gt;
====Optional Packages====&lt;br /&gt;
&lt;br /&gt;
* NASM (highly recommended for i686/32-bit compilation to speed up 8-bit classic software renderer)&lt;br /&gt;
* libGL and libGLU (required for OpenGL renderers)&lt;br /&gt;
* libgtk+ &amp;gt;= 2.8.0 (required for the startup window)&lt;br /&gt;
* libvorbis &amp;gt;= 1.1.2&lt;br /&gt;
** libvorbisfile&lt;br /&gt;
** libogg&lt;br /&gt;
* libFLAC &amp;gt;= 1.2.1&lt;br /&gt;
* libvpx &amp;gt;= 0.9.0&lt;br /&gt;
&lt;br /&gt;
===Distro-Specific Installation===&lt;br /&gt;
&lt;br /&gt;
====On Debian / Ubuntu====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl2-dev flac libflac-dev libvorbis-dev libvpx-dev libgtk2.0-dev freepats&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====On Fedora 22-25====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf groupinstall &amp;quot;Development Tools&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf install g++ nasm mesa-libGL-devel mesa-libGLU-devel SDL2-devel alsa-lib-devel libvorbis-devel libvpx-devel gtk2-devel flac flac-devel&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Freepats is not packaged in Fedora, you must download and install it by yourself if desired. See also the &amp;quot;timidity-patch-freepats&amp;quot; package on others RPM based distros.&lt;br /&gt;
&lt;br /&gt;
== Build EDuke32 ==&lt;br /&gt;
In a terminal window move to the EDuke32 sources folder and type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build options ===&lt;br /&gt;
It is possible to define some options during the build. Just add them before or after the &#039;make&#039; command.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;make RELEASE=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Various options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|PRETTY_OUTPUT||Use colored output.||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Engine options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|USE_OPENGL||Enable basic OpenGL Polymost renderer.||1&lt;br /&gt;
|-&lt;br /&gt;
|POLYMER||Enable modern Polymer renderer for great justice.||1&lt;br /&gt;
|-&lt;br /&gt;
|NOASM||Disable the use of the ASM code for the classic renderer. Should be enabled on 32-bit [http://en.wikipedia.org/wiki/Pentium_compatible_processor Pentium compatible processors] only.||0 (ASM is disabled for x86_64 automatically because the ASM is 32-bit.)&lt;br /&gt;
|-&lt;br /&gt;
|LINKED_GTK||Enable compile-time linkage to GTK+.||0&lt;br /&gt;
|-&lt;br /&gt;
|WITHOUT_GTK||Do not compile GTK+ code.||0&lt;br /&gt;
|-&lt;br /&gt;
|BUILD32_ON_64||||0&lt;br /&gt;
|-&lt;br /&gt;
|USE_LIBVPX||VP8 video codec used as an alternative to the ANM file format (only works if compiled with the OpenGL support).||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Debugging and Build options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|CLANG||Use the Clang compiler instead of the default GCC.||0&lt;br /&gt;
|-&lt;br /&gt;
|RELEASE||No debugging.||1&lt;br /&gt;
|-&lt;br /&gt;
|FORCEDEBUG||Include debug symbols even when generating release code.&amp;lt;br/&amp;gt;Additionally, with RELEASE=0, the following arrays are allocated statically: spriteext, spritesmooth, sector, wall, sprite, tsprite, while necessarily disabling the clipshape feature (because it relies on setting sector/wall to different malloc&#039;d block temporarily). Really only useful with CC=clang.||0&lt;br /&gt;
|-&lt;br /&gt;
|KRANDDEBUG||Include logging of krand() calls for debugging the demo system.||0&lt;br /&gt;
|-&lt;br /&gt;
|MICROPROFILE||Include a profiler that is connected to the CON VM. Provides statistics on how much processing time different CON events took in a specific time interval. To use it, launch the game and open a browser to the address &amp;quot;localhost:1338&amp;quot;. This will display a snapshot of the last N milliseconds of measurements that were taken just before the page was requested. See also: https://github.com/zeux/microprofile ||0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Optimization options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|OPTLEVEL||GCC optimization strategy. Values above 2 can cause crashes.||2&lt;br /&gt;
|-&lt;br /&gt;
|LTO||Enable link-time optimization, for GCC 4.5 and up.||1&lt;br /&gt;
|-&lt;br /&gt;
|OPTOPT||Define options specific to the CPU architecture.||empty (except for i686)&lt;br /&gt;
|-&lt;br /&gt;
|CUSTOMOPT||Custom options or optimizations, parameters defined here, are sent to both compiler and linker.||empty&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Confirm successful compile ==&lt;br /&gt;
These files should now be present in the EDuke32 directory:&lt;br /&gt;
* eduke32, the binary to launch the game.&lt;br /&gt;
* mapster32, the binary to launch the maps editor.&lt;br /&gt;
&lt;br /&gt;
= Run the game! =&lt;br /&gt;
You need to have the original Duke Nukem 3D files and the newly created EDuke32 executables in the same place. So, you could create a new folder (example eduke32_linux) and copy the original game files and the newly created EDuke32 executables there.&lt;br /&gt;
&lt;br /&gt;
To run the game open up a terminal window, move to the proper directory and type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymost High Resolution Pack] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp duke3d_hrp.zip polymost_hrp_update-*.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymer HRP] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp polymer_hrp.zip polymer_upd.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &#039;&#039;polymer_upd.zip&#039;&#039; may not be available. It is also possbile to add additional packs such as remade music and Z-Pack.&lt;br /&gt;
&lt;br /&gt;
* Using the autoload folder :&lt;br /&gt;
Copy mods or HRP files in the &#039;&#039;$HOME/.eduke32/autoload&#039;&#039; folder and it will be automaticaly loaded without additional parameters.&lt;br /&gt;
&lt;br /&gt;
= Installing EDuke32 globally =&lt;br /&gt;
&lt;br /&gt;
== Why ==&lt;br /&gt;
Installing EDuke32 as an application that you could run anywhere brings some useful advantages and is surprisingly easy to do.&lt;br /&gt;
&lt;br /&gt;
EDuke32 will use the directory you are currently in as the directory to work in, as well as ~/.eduke32 (/home/yourname/.eduke32). This means that you could have a directory, copy a Duke Nukem TC (or mod) in there, cd to that directory and run the global EDuke32 binary without having to make even more copies of the same EDuke32 binaries. EDuke32 will adapt to use the GAME/USER.CON files it finds in the CURRENT directory.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
All you&#039;ll have to do to get EDuke32 to run from anywhere is copy the eduke32 and mapster32 binaries to /usr/local/bin. After doing this, copy the &#039;&#039;duke3d.grp&#039;&#039; file to /usr/local/share/games/eduke32 or ~/.eduke32 (it&#039;s hidden, so try to cd to it or show hidden files). After this you&#039;ll be able to run EDuke32 from any directory on your hard disk!&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Lowercase/Uppercase problems ==&lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Shareware&#039;&#039;&#039;&lt;br /&gt;
If you are using the Shareware files located on the 3D Realms website, after you build and combine all the files into one folder and try to run the game you will get an error about the TABLES.DAT file. To correct the error simply rename the DUKE3D.GRP to all lowercase letter. After that the game should run. This isn&#039;t necessary anymore --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maps with extra resources&#039;&#039;&#039;&lt;br /&gt;
Some maps that include extra resources might have trouble finding these new files (for example, an older version of Duke Plus won&#039;t be able to find Step#.wav and Grate#.wav sounds). The EDuke32 log will output a &amp;quot;file not found&amp;quot; error every time this happens. To fix this, change the names of these files to match the exact case given in EDuke32&#039;s log (for example, GRATE#.wav instead of Grate#.wav).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ART file inconsistency&#039;&#039;&#039;&lt;br /&gt;
While most standard resources are referred to as UPPERCASE by EDuke32 (for example, GAME.CON), ART files are not as consistent and should be renamed to lowercase if you want to use custom art (tiles014.art instead of TILES014.ART).&lt;br /&gt;
&lt;br /&gt;
== Running with HRP Notes ==&lt;br /&gt;
If you want to run Polymer with the HRP you will need to provide the path to polymer_hrp.zip (even if its installed globally):&lt;br /&gt;
&amp;lt;code&amp;gt;eduke32 -g/path/to/polymer_hrp.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Running EDuke32 with an ATI card is slow for some users.&lt;br /&gt;
One user has had success with a Radeon 4850 and Fedora 12 with the open source default driver plus the latest Mesa experimental - the game runs smooth and pretty fast.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distribution documentation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14708</id>
		<title>Building EDuke32 on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Building_EDuke32_on_Linux&amp;diff=14708"/>
		<updated>2022-02-16T21:19:05Z</updated>

		<summary type="html">&lt;p&gt;NY00123: The software renderer has been backed by OpenGL by default for a while&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Distribution intro}}&lt;br /&gt;
&lt;br /&gt;
= Compiling From Source =&lt;br /&gt;
&lt;br /&gt;
== Installation Notes ==&lt;br /&gt;
* You need an actual copy of Duke Nukem 3D. See [[Installation and configuration]].&lt;br /&gt;
* 3D acceleration drivers (recommended). NVIDIA has classically had the best Linux drivers.&lt;br /&gt;
* A MIDI player for the soundtrack (optional). By default, the game uses SDL_mixer, which has a light, built-in version of [http://sourceforge.net/projects/timidity TiMidity++]. It&#039;s possible to use an external command to play back MIDI music with the EDUKE32_MUSIC_CMD [[Environment variables | environment variable]]. In all cases, a set of instrument patches is also required, such as [http://freepats.zenvoid.org Freepats].&lt;br /&gt;
&lt;br /&gt;
== Getting source files ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See [[Acquiring the EDuke32 Source Code]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites for the build ==&lt;br /&gt;
EDuke32 requires some development files installed before you can properly build.&lt;br /&gt;
&lt;br /&gt;
===Packages===&lt;br /&gt;
&lt;br /&gt;
* Basic dev environment (GCC &amp;gt;= 4.8, GNU make, etc)&lt;br /&gt;
* SDL2 &amp;gt;= 2.0 (SDL &amp;gt;= 1.2.10 also supported with SDL_TARGET=1)&lt;br /&gt;
** SDL2_mixer &amp;gt;= 2.0 (SDL_mixer &amp;gt;= 1.2.7 also supported with SDL_TARGET=1)&lt;br /&gt;
&lt;br /&gt;
====Optional Packages====&lt;br /&gt;
&lt;br /&gt;
* NASM (highly recommended for i686/32-bit compilation to speed up 8-bit classic software renderer)&lt;br /&gt;
* libGL and libGLU (required for OpenGL renderers)&lt;br /&gt;
* libgtk+ &amp;gt;= 2.8.0 (required for the startup window)&lt;br /&gt;
* libvorbis &amp;gt;= 1.1.2&lt;br /&gt;
** libvorbisfile&lt;br /&gt;
** libogg&lt;br /&gt;
* libFLAC &amp;gt;= 1.2.1&lt;br /&gt;
* libvpx &amp;gt;= 0.9.0&lt;br /&gt;
&lt;br /&gt;
===Distro-Specific Installation===&lt;br /&gt;
&lt;br /&gt;
====On Debian / Ubuntu====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl2-dev libsdl2-mixer-dev flac libflac-dev libvorbis-dev libvpx-dev libgtk2.0-dev freepats&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====On Fedora 22-25====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf groupinstall &amp;quot;Development Tools&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;sudo dnf install g++ nasm mesa-libGL-devel mesa-libGLU-devel SDL2-devel SDL2_mixer-devel alsa-lib-devel libvorbis-devel libvpx-devel gtk2-devel flac flac-devel&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Freepats is not packaged in Fedora, you must download and install it by yourself if desired. See also the &amp;quot;timidity-patch-freepats&amp;quot; package on others RPM based distros.&lt;br /&gt;
&lt;br /&gt;
== Build EDuke32 ==&lt;br /&gt;
In a terminal window move to the EDuke32 sources folder and type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build options ===&lt;br /&gt;
It is possible to define some options during the build. Just add them before or after the &#039;make&#039; command.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;make RELEASE=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Various options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|PRETTY_OUTPUT||Use colored output.||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Engine options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|USE_OPENGL||Enable basic OpenGL Polymost renderer.||1&lt;br /&gt;
|-&lt;br /&gt;
|POLYMER||Enable modern Polymer renderer for great justice.||1&lt;br /&gt;
|-&lt;br /&gt;
|NOASM||Disable the use of the ASM code for the classic renderer. Should be enabled on 32-bit [http://en.wikipedia.org/wiki/Pentium_compatible_processor Pentium compatible processors] only.||0 (ASM is disabled for x86_64 automatically because the ASM is 32-bit.)&lt;br /&gt;
|-&lt;br /&gt;
|LINKED_GTK||Enable compile-time linkage to GTK+.||0&lt;br /&gt;
|-&lt;br /&gt;
|WITHOUT_GTK||Do not compile GTK+ code.||0&lt;br /&gt;
|-&lt;br /&gt;
|BUILD32_ON_64||||0&lt;br /&gt;
|-&lt;br /&gt;
|USE_LIBVPX||VP8 video codec used as an alternative to the ANM file format (only works if compiled with the OpenGL support).||1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Debugging and Build options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|CLANG||Use the Clang compiler instead of the default GCC.||0&lt;br /&gt;
|-&lt;br /&gt;
|RELEASE||No debugging.||1&lt;br /&gt;
|-&lt;br /&gt;
|FORCEDEBUG||Include debug symbols even when generating release code.&amp;lt;br/&amp;gt;Additionally, with RELEASE=0, the following arrays are allocated statically: spriteext, spritesmooth, sector, wall, sprite, tsprite, while necessarily disabling the clipshape feature (because it relies on setting sector/wall to different malloc&#039;d block temporarily). Really only useful with CC=clang.||0&lt;br /&gt;
|-&lt;br /&gt;
|KRANDDEBUG||Include logging of krand() calls for debugging the demo system.||0&lt;br /&gt;
|-&lt;br /&gt;
|MICROPROFILE||Include a profiler that is connected to the CON VM. Provides statistics on how much processing time different CON events took in a specific time interval. To use it, launch the game and open a browser to the address &amp;quot;localhost:1338&amp;quot;. This will display a snapshot of the last N milliseconds of measurements that were taken just before the page was requested. See also: https://github.com/zeux/microprofile ||0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;65%&amp;quot;&lt;br /&gt;
|+ &amp;lt;span style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Optimization options&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Options!!width=&amp;quot;70%&amp;quot;|Description!!width=&amp;quot;15%&amp;quot;|Default value&lt;br /&gt;
|-&lt;br /&gt;
|OPTLEVEL||GCC optimization strategy. Values above 2 can cause crashes.||2&lt;br /&gt;
|-&lt;br /&gt;
|LTO||Enable link-time optimization, for GCC 4.5 and up.||1&lt;br /&gt;
|-&lt;br /&gt;
|OPTOPT||Define options specific to the CPU architecture.||empty (except for i686)&lt;br /&gt;
|-&lt;br /&gt;
|CUSTOMOPT||Custom options or optimizations, parameters defined here, are sent to both compiler and linker.||empty&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Confirm successful compile ==&lt;br /&gt;
These files should now be present in the EDuke32 directory:&lt;br /&gt;
* eduke32, the binary to launch the game.&lt;br /&gt;
* mapster32, the binary to launch the maps editor.&lt;br /&gt;
&lt;br /&gt;
= Run the game! =&lt;br /&gt;
You need to have the original Duke Nukem 3D files and the newly created EDuke32 executables in the same place. So, you could create a new folder (example eduke32_linux) and copy the original game files and the newly created EDuke32 executables there.&lt;br /&gt;
&lt;br /&gt;
To run the game open up a terminal window, move to the proper directory and type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymost High Resolution Pack] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp duke3d_hrp.zip polymost_hrp_update-*.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To use the [http://hrp.duke4.net Polymer HRP] you can pass the -grp parameter :&lt;br /&gt;
&amp;lt;pre&amp;gt;./eduke32 -grp polymer_hrp.zip polymer_upd.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &#039;&#039;polymer_upd.zip&#039;&#039; may not be available. It is also possbile to add additional packs such as remade music and Z-Pack.&lt;br /&gt;
&lt;br /&gt;
* Using the autoload folder :&lt;br /&gt;
Copy mods or HRP files in the &#039;&#039;$HOME/.eduke32/autoload&#039;&#039; folder and it will be automaticaly loaded without additional parameters.&lt;br /&gt;
&lt;br /&gt;
= Installing EDuke32 globally =&lt;br /&gt;
&lt;br /&gt;
== Why ==&lt;br /&gt;
Installing EDuke32 as an application that you could run anywhere brings some useful advantages and is surprisingly easy to do.&lt;br /&gt;
&lt;br /&gt;
EDuke32 will use the directory you are currently in as the directory to work in, as well as ~/.eduke32 (/home/yourname/.eduke32). This means that you could have a directory, copy a Duke Nukem TC (or mod) in there, cd to that directory and run the global EDuke32 binary without having to make even more copies of the same EDuke32 binaries. EDuke32 will adapt to use the GAME/USER.CON files it finds in the CURRENT directory.&lt;br /&gt;
&lt;br /&gt;
== How ==&lt;br /&gt;
All you&#039;ll have to do to get EDuke32 to run from anywhere is copy the eduke32 and mapster32 binaries to /usr/local/bin. After doing this, copy the &#039;&#039;duke3d.grp&#039;&#039; file to /usr/local/share/games/eduke32 or ~/.eduke32 (it&#039;s hidden, so try to cd to it or show hidden files). After this you&#039;ll be able to run EDuke32 from any directory on your hard disk!&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Lowercase/Uppercase problems ==&lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Shareware&#039;&#039;&#039;&lt;br /&gt;
If you are using the Shareware files located on the 3D Realms website, after you build and combine all the files into one folder and try to run the game you will get an error about the TABLES.DAT file. To correct the error simply rename the DUKE3D.GRP to all lowercase letter. After that the game should run. This isn&#039;t necessary anymore --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maps with extra resources&#039;&#039;&#039;&lt;br /&gt;
Some maps that include extra resources might have trouble finding these new files (for example, an older version of Duke Plus won&#039;t be able to find Step#.wav and Grate#.wav sounds). The EDuke32 log will output a &amp;quot;file not found&amp;quot; error every time this happens. To fix this, change the names of these files to match the exact case given in EDuke32&#039;s log (for example, GRATE#.wav instead of Grate#.wav).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ART file inconsistency&#039;&#039;&#039;&lt;br /&gt;
While most standard resources are referred to as UPPERCASE by EDuke32 (for example, GAME.CON), ART files are not as consistent and should be renamed to lowercase if you want to use custom art (tiles014.art instead of TILES014.ART).&lt;br /&gt;
&lt;br /&gt;
== Running with HRP Notes ==&lt;br /&gt;
If you want to run Polymer with the HRP you will need to provide the path to polymer_hrp.zip (even if its installed globally):&lt;br /&gt;
&amp;lt;code&amp;gt;eduke32 -g/path/to/polymer_hrp.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Running EDuke32 with an ATI card is slow for some users.&lt;br /&gt;
One user has had success with a Radeon 4850 and Fedora 12 with the open source default driver plus the latest Mesa experimental - the game runs smooth and pretty fast.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distribution documentation]]&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Multiplayer&amp;diff=14707</id>
		<title>Multiplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Multiplayer&amp;diff=14707"/>
		<updated>2022-02-15T20:44:42Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Rename EDuke32-OldMP -&amp;gt; NetDuke32 and replace broken release notes URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Modern Client/Server Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size=&amp;quot;4&amp;quot;&amp;gt;Your mileage may vary with multiplayer support in current versions. If you encounter problems, try [[#Old-Style Master/Slave or Peer-to-Peer Multiplayer|old versions]] instead.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===To start a multiplayer server===&lt;br /&gt;
At the [[Working with the Windows Command Prompt|command prompt]], run the command:&lt;br /&gt;
 eduke32 -server&lt;br /&gt;
By default servers listen on port UDP 23513.&lt;br /&gt;
&lt;br /&gt;
Clients will then connect with &lt;br /&gt;
 eduke32 -connect &amp;lt;server IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: You will probably have to change the default console key in keyboard options to something else because &amp;quot;pause&amp;quot; just pauses the game and does not open console.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Server table===&lt;br /&gt;
&lt;br /&gt;
We can list servers here in future when Server/Client is more stable. :)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=wikitable width=100%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Server Name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Max Players&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;IP:Port&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;IRC Server/Channel&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old-Style Lockstep Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
Since new multiplayer code is broken, you can use the last version of EDuke32 to contain the old code in the meantime.&lt;br /&gt;
&lt;br /&gt;
Required version: [https://forums.duke4.net/topic/11826-netduke32-enhanced-duke3d-netplay/ NetDuke32]&lt;br /&gt;
&lt;br /&gt;
[https://yang-online.com/ YANG (Yet Another Netplay Guider)] is recommended for Internet play.&lt;br /&gt;
&lt;br /&gt;
Documentation for the VoidSW command-line parameters is available here, and should also apply to NetDuke32 in master/slave mode: https://wiki.eduke32.com/wiki/Command_line_options&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14706</id>
		<title>Command line options</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14706"/>
		<updated>2022-02-15T20:34:38Z</updated>

		<summary type="html">&lt;p&gt;NY00123: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= EDuke32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;eduke32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;eduke32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | pk3 | pk4 | map | con | def | rts}&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip|pk3|pk4}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is immediately loaded and launched as a usermap (equivalent to &amp;lt;code&amp;gt;-map&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .con file is specified, it replaces &amp;lt;code&amp;gt;GAME.CON&amp;lt;/code&amp;gt; (equivalent to &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF file (equivalent to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .rts file is specified, it is used as the main RTS soundbank (equivalent to &amp;lt;code&amp;gt;-rts&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the addons for Duke 3D (if present), packaged with the Megaton Edition release.&lt;br /&gt;
| 0 = none, 1 = Duke it out in D.C., 2 = Duke: Nuclear Winter, 3 = Duke Caribbean: Life&#039;s a Beach&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets initial cache size, in kilobytes. Usually not needed, as cache size is adjusted dynamically.&lt;br /&gt;
| See also [[cachesize_(DEF)| cachesize (DEF)]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;eduke32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]] &lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-d [file.edm][:arg1,arg2]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Plays an eduke32 demo. Can take optional parameters &amp;quot;arg1&amp;quot; and &amp;quot;arg2&amp;quot; which represent &amp;quot;frames per tic&amp;quot; and &amp;quot;number of repeats&amp;quot; respectively, and are used for debug performance profiling.&lt;br /&gt;
| By default, the game plays a loop starting at &amp;lt;code&amp;gt;edemo001.edm&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debughelp&amp;lt;/code&amp;gt; &lt;br /&gt;
|Displays debug parameters and exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Duke3d_w32 compatibility option. Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
| See also &#039;-j&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify the main DEF file. &lt;br /&gt;
| By default uses &#039;duke3d.def&#039; if present in the folder. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to EDuke32&#039;s search list. Does not alter the directory for config files.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts the specified usermap on launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional CON script module, appended after the GAME.CON code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;&lt;br /&gt;
|Disable monsters ([[m_monsters_off]] = 1) and sets [[m_player_skill]] and [[player_skill]] to 0.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodinput&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable DirectInput (joystick) support.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents eduke32 from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
|Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosteam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables Steam community API integrations (such as achievements) if binary is compiled with parameter EDUKE32_STANDALONE.&lt;br /&gt;
| Currently only relevant for [[Ion Fury]] builds.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ns -nm &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable sound and music respectively.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables demo recording.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rotatesprite-no-widescreen&amp;lt;/code&amp;gt;&lt;br /&gt;
| Debug parameter. If set, screen tiles (such as weapons) logos and menu tiles will be stretched horizontally.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the skill level (0-4). Cannot exceed 4 even when more skill levels are defined. Setting this to 4 is hardcoded to enable [[respawn_monsters]] and [[m_respawn_monsters]], regardless of what the skill itself defines.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables/disables startup window&lt;br /&gt;
|[only on Windows, SDL, and/or GTK2 environments]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-t#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Set respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force eduke32 to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u#########&amp;lt;/code&amp;gt;&lt;br /&gt;
| Define the weapon switch order, as a string of 10 digits.&lt;br /&gt;
|(Default: &amp;lt;code&amp;gt;3425689071&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-v[X] -l[Y]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Warp to episode X, level Y if used together. If either is omitted, then warp assumes episode 1, resp. level 1.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
|Show coordinates as well as other debug information, including current sector num, lotag and hitag.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified script file.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-z# &amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-condebug&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enable line-by-line CON compile debugging at level #, and print the number of labels, variables and arrays used.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see [https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases NetDuke32].&lt;br /&gt;
&lt;br /&gt;
The corresponding parameters are listed here for the sake of completeness.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use fake player AI (dukebots) (fake multiplayer only).&lt;br /&gt;
| Sets [[playerai]] to 1, which doesn&#039;t do anything as of r9392.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-c#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Changes the value of [[m_coop]] to set the multiplayer mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-connect [ip]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the specified IP address.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dedicated&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start eduke32 in dedicated server mode.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [name]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the player name on startup. Can also be changed ingame.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Legacy P2P networking. &lt;br /&gt;
| Disabled as of r9392. Will exit with an error message.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noffire&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables friendly fire in coop games (i.e. [[m_ffire]] set to 0).&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-password [pw]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Password required to authenticate when connecting to server.&lt;br /&gt;
| Default is no password.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-port&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify which UDP port to use for hosting the game or connecting.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-q#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Fake multiplayer with # (2-16) players.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rts [file.rts]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the specified RTS soundbank for remote ridicule sounds.&lt;br /&gt;
| Defaults: {DUKE.RTS, NAM.RTS, NAPALM.RTS, WW2GI.RTS}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start multiplayer server for network games.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Removed Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters used to exist, but are no longer referenced in current eduke32 revisions.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load and run a game from slot # (0-9)&lt;br /&gt;
| EDuke32 no longer uses a fixed number of save slots, hence no longer works.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -conversion [YYYYMMDD] &amp;lt;/code&amp;gt; &lt;br /&gt;
| Selects CON script version for compatibility with older mods.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Send fewer packets in multiplayer (1, 2, 4)&lt;br /&gt;
|(deprecated)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-i#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use networking mode (1/0)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nD&amp;lt;/code&amp;gt;&lt;br /&gt;
| Dump default gamevars to gamevars.txt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rmnet&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use network config file.&lt;br /&gt;
| (OBSOLETE, see -net)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-stun&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use UDP hole punching for multiplayer connections.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Mapster32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;mapster32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;mapster32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | map | con | def}&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-j&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is directly opened in the editor.&lt;br /&gt;
* If a .con file is specified, it is used as the main resource for M32 CON commands.&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF script.&lt;br /&gt;
&lt;br /&gt;
The set of parameters for mapster32 has some overlap with eduke32. Below is the complete list.&lt;br /&gt;
&lt;br /&gt;
== Shared Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load addon data like eduke32 equivalent.&lt;br /&gt;
| 0 = none, 1 = DukeDC, 2 = DukeNW, 3 = Duke Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets initial cache size in KB. &lt;br /&gt;
| Unlike eduke32, this parameter has an upper limit of 1 MB.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;mapster32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]].&lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specifies the main DEF file. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to Mapster32&#039;s search list.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Include an additional M32 script module.&lt;br /&gt;
| See also the [[Console_commands#Editor-Specific| include command]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force mapster32 to read game data and configuration files from the current working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified file.&lt;br /&gt;
| GAME.CON code is only needed for sound definitions.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unique Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-check&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; -nocheck &amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/Disables map pointer checking when saving.&lt;br /&gt;
| Default is disabled.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -namesfile [names.h]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to a different names file for tile numbers. &lt;br /&gt;
| Default is &#039;names.h&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VoidSW Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;voidsw [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;voidsw -addon1 -level3 -cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VoidSW currently does not take files directly as arguments.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-addon#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the expansions included in Shadow Warrior Classic Complete.&lt;br /&gt;
| 0 = SW v1.2,  1 = Wanton Destruction, 2 = Twin Dragon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
| If combined with &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt;, starts the game with all weapons, inventory items and god mode on.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dp[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts playback of the given demo file.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-extcompat &amp;lt;/code&amp;gt;&lt;br /&gt;
| Controller compatibility mode. Multiplies movescale and turnscale by 5.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-g[file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified GRP or ZIP file as main data.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as the main DEF.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adds the given directory to look for game data.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-level# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified level on startup (0-27).&lt;br /&gt;
| Does not use episodic structure unlike Duke.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch the specified usermap.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mh[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as DEF module.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-monst &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables monsters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-movescale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the movement scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodemo &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables demo playback on the title screen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents voidsw from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
| Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nometers&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents boss health bars and the air meter from being drawn onscreen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the skill level (1-4).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enable/Disable the setup dialog.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-turnscale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the turning scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force VoidSW to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define multiplayer game options and must be listed first.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-autonet [params]&amp;lt;/code&amp;gt;&lt;br /&gt;
| The autonet parameter defines multiplayer game options, and takes exactly 10 arguments, separated by commas. &lt;br /&gt;
These are, in order: &lt;br /&gt;
* &amp;lt;code&amp;gt;[game_type]&amp;lt;/code&amp;gt;: 0=WangBang, 1=WangBang (no item respawn), 2=Coop&lt;br /&gt;
* &amp;lt;code&amp;gt;[level]&amp;lt;/code&amp;gt;: Which level should be played (0-27). No episodic separation.&lt;br /&gt;
* &amp;lt;code&amp;gt;[skill]&amp;lt;/code&amp;gt;: Skill level (0-4). (0 being &amp;quot;no monsters&amp;quot;)&lt;br /&gt;
* &amp;lt;code&amp;gt;[markers]&amp;lt;/code&amp;gt;: If set to 1, will enable item respawn markers (0/1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[team]&amp;lt;/code&amp;gt;: Whether WangBang is Free-For-All (0) or Team Deathmatch (1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[hurtteam]&amp;lt;/code&amp;gt;: If set to 1, friendly fire is on (coop or TDM).&lt;br /&gt;
* &amp;lt;code&amp;gt;[kill]&amp;lt;/code&amp;gt;: Defines the frag limit for Commbat.&lt;br /&gt;
* &amp;lt;code&amp;gt;[time]&amp;lt;/code&amp;gt;: Index that defines the time limit, 0 being no limit. Available limits: &amp;lt;code&amp;gt;{0,3,5,10,15,20,30,45,60} minutes&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;[color]&amp;lt;/code&amp;gt;: Player palette value. This determines the team colors.&lt;br /&gt;
* &amp;lt;code&amp;gt;[nuke]&amp;lt;/code&amp;gt;: If 0, will replace nuke pickups with railgun ammo. (0/1)&lt;br /&gt;
| Example Use: &amp;lt;code&amp;gt; -autonet 0,0,1,1,1,0,3,2,1,1 &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-col #&amp;lt;/code&amp;gt;&lt;br /&gt;
| Forces the player palette for joining players. &lt;br /&gt;
| Workaround because &amp;lt;code&amp;gt;-autonet&amp;lt;/code&amp;gt; fails to do so.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Packet duplication, i.e. how many &amp;quot;moves&amp;quot; are sent per packet. Choose higher values for lossy connections. &lt;br /&gt;
| Valid values: &amp;lt;code&amp;gt;{2,4,8}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [pname]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets the connecting player&#039;s name to the given value.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nopredict&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables network prediction method, i.e., player position is no longer predicted.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-short &amp;lt;/code&amp;gt;&lt;br /&gt;
| Divides the frag limit by 10 and halves the time limit.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection Establishment ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define which game to connect to, and MUST be listed last. &lt;br /&gt;
&lt;br /&gt;
Any other parameters that follow &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt; will be ignored.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Required to use the parameters listed below.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ip]:[port]&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;[hostname]:[port]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the given IP/hostname and port. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-n0:# &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-i0:#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Host a netgame in master-slave mode, expecting # players to join before launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-n1&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-i1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use in peer-to-peer mode. The [hostname]:[port] pairs must be listed in the same order for all players, with the exception that -N1 has to be specified instead of the current player&#039;s [hostname]:[port] pair.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-p#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the port # to use for hosting. Valid range: 1025-65534&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Usage example for 3-players game in peer-to-peer mode:&lt;br /&gt;
&lt;br /&gt;
Player 1: voidsw -net -n1 &amp;lt;hostname2:port2&amp;gt; &amp;lt;hostname3:port3&amp;gt;&lt;br /&gt;
Player 2: voidsw -net &amp;lt;hostname1:port1&amp;gt; -n1 &amp;lt;hostname3:port3&amp;gt;&lt;br /&gt;
Player 3: voidsw -net &amp;lt;hostname1:port1&amp;gt; &amp;lt;hostname2:port2&amp;gt; -n1&lt;br /&gt;
&lt;br /&gt;
== Debug Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters are used to debug VoidSW.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-allsync &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8 outside of demo recording. (purpose?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables camera view during normal gameplay, as if a demo recording is playing.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-commbat#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake WangBang with the specified number of players. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-coop#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake coop with the specified number of players. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debug &amp;lt;/code&amp;gt;&lt;br /&gt;
| Only enabled for DEBUG builds. Shows debug help options.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugactor&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all monsters. (same as &amp;lt;code&amp;gt;-monst&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debuganim&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all animations.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugpanel&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables panel update. (?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsecret&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays debug info whenever an enemy is killed.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsector&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector movement.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugso&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector objects.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ddr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo in debug mode with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosyncrecord &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, records demo sync information to a file.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosynctest&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, reads previously recorded demo sync information and errors out if demo playback doesn&#039;t match. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-randprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prints the output of krand() functions whenever they are called.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mono&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables some debug output during gameplay.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosyncprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables the &amp;quot;out-of-sync&amp;quot; message in multiplayer.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inactive Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following SW parameters are disabled, or have been removed.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-bots&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disabled. Would have added bots to fake multiplayer games.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-broadcast&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cacheprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used to print to stdout whenever a sound effect is cached/loaded. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-de[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Demo editing? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dt[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Temporary demo? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m &amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -monst.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-masterslave&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nocdaudio&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally disabled the Redbook music.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setupfile [arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally used by setup.exe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14705</id>
		<title>Command line options</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14705"/>
		<updated>2022-02-15T20:30:07Z</updated>

		<summary type="html">&lt;p&gt;NY00123: VoidSW multiplayer params for P2P changes a bit after changing mmulti version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= EDuke32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;eduke32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;eduke32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | pk3 | pk4 | map | con | def | rts}&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip|pk3|pk4}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is immediately loaded and launched as a usermap (equivalent to &amp;lt;code&amp;gt;-map&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .con file is specified, it replaces &amp;lt;code&amp;gt;GAME.CON&amp;lt;/code&amp;gt; (equivalent to &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF file (equivalent to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .rts file is specified, it is used as the main RTS soundbank (equivalent to &amp;lt;code&amp;gt;-rts&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the addons for Duke 3D (if present), packaged with the Megaton Edition release.&lt;br /&gt;
| 0 = none, 1 = Duke it out in D.C., 2 = Duke: Nuclear Winter, 3 = Duke Caribbean: Life&#039;s a Beach&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets initial cache size, in kilobytes. Usually not needed, as cache size is adjusted dynamically.&lt;br /&gt;
| See also [[cachesize_(DEF)| cachesize (DEF)]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;eduke32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]] &lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-d [file.edm][:arg1,arg2]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Plays an eduke32 demo. Can take optional parameters &amp;quot;arg1&amp;quot; and &amp;quot;arg2&amp;quot; which represent &amp;quot;frames per tic&amp;quot; and &amp;quot;number of repeats&amp;quot; respectively, and are used for debug performance profiling.&lt;br /&gt;
| By default, the game plays a loop starting at &amp;lt;code&amp;gt;edemo001.edm&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debughelp&amp;lt;/code&amp;gt; &lt;br /&gt;
|Displays debug parameters and exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Duke3d_w32 compatibility option. Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
| See also &#039;-j&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify the main DEF file. &lt;br /&gt;
| By default uses &#039;duke3d.def&#039; if present in the folder. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to EDuke32&#039;s search list. Does not alter the directory for config files.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts the specified usermap on launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional CON script module, appended after the GAME.CON code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;&lt;br /&gt;
|Disable monsters ([[m_monsters_off]] = 1) and sets [[m_player_skill]] and [[player_skill]] to 0.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodinput&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable DirectInput (joystick) support.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents eduke32 from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
|Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosteam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables Steam community API integrations (such as achievements) if binary is compiled with parameter EDUKE32_STANDALONE.&lt;br /&gt;
| Currently only relevant for [[Ion Fury]] builds.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ns -nm &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable sound and music respectively.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables demo recording.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rotatesprite-no-widescreen&amp;lt;/code&amp;gt;&lt;br /&gt;
| Debug parameter. If set, screen tiles (such as weapons) logos and menu tiles will be stretched horizontally.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the skill level (0-4). Cannot exceed 4 even when more skill levels are defined. Setting this to 4 is hardcoded to enable [[respawn_monsters]] and [[m_respawn_monsters]], regardless of what the skill itself defines.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables/disables startup window&lt;br /&gt;
|[only on Windows, SDL, and/or GTK2 environments]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-t#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Set respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force eduke32 to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u#########&amp;lt;/code&amp;gt;&lt;br /&gt;
| Define the weapon switch order, as a string of 10 digits.&lt;br /&gt;
|(Default: &amp;lt;code&amp;gt;3425689071&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-v[X] -l[Y]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Warp to episode X, level Y if used together. If either is omitted, then warp assumes episode 1, resp. level 1.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
|Show coordinates as well as other debug information, including current sector num, lotag and hitag.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified script file.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-z# &amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-condebug&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enable line-by-line CON compile debugging at level #, and print the number of labels, variables and arrays used.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see [https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases NetDuke32].&lt;br /&gt;
&lt;br /&gt;
The corresponding parameters are listed here for the sake of completeness.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use fake player AI (dukebots) (fake multiplayer only).&lt;br /&gt;
| Sets [[playerai]] to 1, which doesn&#039;t do anything as of r9392.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-c#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Changes the value of [[m_coop]] to set the multiplayer mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-connect [ip]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the specified IP address.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dedicated&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start eduke32 in dedicated server mode.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [name]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the player name on startup. Can also be changed ingame.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Legacy P2P networking. &lt;br /&gt;
| Disabled as of r9392. Will exit with an error message.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noffire&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables friendly fire in coop games (i.e. [[m_ffire]] set to 0).&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-password [pw]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Password required to authenticate when connecting to server.&lt;br /&gt;
| Default is no password.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-port&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify which UDP port to use for hosting the game or connecting.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-q#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Fake multiplayer with # (2-16) players.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rts [file.rts]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the specified RTS soundbank for remote ridicule sounds.&lt;br /&gt;
| Defaults: {DUKE.RTS, NAM.RTS, NAPALM.RTS, WW2GI.RTS}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start multiplayer server for network games.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Removed Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters used to exist, but are no longer referenced in current eduke32 revisions.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load and run a game from slot # (0-9)&lt;br /&gt;
| EDuke32 no longer uses a fixed number of save slots, hence no longer works.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -conversion [YYYYMMDD] &amp;lt;/code&amp;gt; &lt;br /&gt;
| Selects CON script version for compatibility with older mods.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Send fewer packets in multiplayer (1, 2, 4)&lt;br /&gt;
|(deprecated)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-i#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use networking mode (1/0)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nD&amp;lt;/code&amp;gt;&lt;br /&gt;
| Dump default gamevars to gamevars.txt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rmnet&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use network config file.&lt;br /&gt;
| (OBSOLETE, see -net)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-stun&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use UDP hole punching for multiplayer connections.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Mapster32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;mapster32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;mapster32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | map | con | def}&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-j&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is directly opened in the editor.&lt;br /&gt;
* If a .con file is specified, it is used as the main resource for M32 CON commands.&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF script.&lt;br /&gt;
&lt;br /&gt;
The set of parameters for mapster32 has some overlap with eduke32. Below is the complete list.&lt;br /&gt;
&lt;br /&gt;
== Shared Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load addon data like eduke32 equivalent.&lt;br /&gt;
| 0 = none, 1 = DukeDC, 2 = DukeNW, 3 = Duke Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets initial cache size in KB. &lt;br /&gt;
| Unlike eduke32, this parameter has an upper limit of 1 MB.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;mapster32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]].&lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specifies the main DEF file. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to Mapster32&#039;s search list.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Include an additional M32 script module.&lt;br /&gt;
| See also the [[Console_commands#Editor-Specific| include command]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force mapster32 to read game data and configuration files from the current working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified file.&lt;br /&gt;
| GAME.CON code is only needed for sound definitions.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unique Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-check&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; -nocheck &amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/Disables map pointer checking when saving.&lt;br /&gt;
| Default is disabled.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -namesfile [names.h]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to a different names file for tile numbers. &lt;br /&gt;
| Default is &#039;names.h&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VoidSW Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;voidsw [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;voidsw -addon1 -level3 -cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VoidSW currently does not take files directly as arguments.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-addon#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the expansions included in Shadow Warrior Classic Complete.&lt;br /&gt;
| 0 = SW v1.2,  1 = Wanton Destruction, 2 = Twin Dragon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
| If combined with &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt;, starts the game with all weapons, inventory items and god mode on.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dp[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts playback of the given demo file.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-extcompat &amp;lt;/code&amp;gt;&lt;br /&gt;
| Controller compatibility mode. Multiplies movescale and turnscale by 5.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-g[file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified GRP or ZIP file as main data.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as the main DEF.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adds the given directory to look for game data.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-level# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified level on startup (0-27).&lt;br /&gt;
| Does not use episodic structure unlike Duke.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch the specified usermap.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mh[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as DEF module.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-monst &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables monsters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-movescale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the movement scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodemo &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables demo playback on the title screen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents voidsw from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
| Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nometers&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents boss health bars and the air meter from being drawn onscreen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the skill level (1-4).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enable/Disable the setup dialog.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-turnscale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the turning scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force VoidSW to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define multiplayer game options and must be listed first.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-autonet [params]&amp;lt;/code&amp;gt;&lt;br /&gt;
| The autonet parameter defines multiplayer game options, and takes exactly 10 arguments, separated by commas. &lt;br /&gt;
These are, in order: &lt;br /&gt;
* &amp;lt;code&amp;gt;[game_type]&amp;lt;/code&amp;gt;: 0=WangBang, 1=WangBang (no item respawn), 2=Coop&lt;br /&gt;
* &amp;lt;code&amp;gt;[level]&amp;lt;/code&amp;gt;: Which level should be played (0-27). No episodic separation.&lt;br /&gt;
* &amp;lt;code&amp;gt;[skill]&amp;lt;/code&amp;gt;: Skill level (0-4). (0 being &amp;quot;no monsters&amp;quot;)&lt;br /&gt;
* &amp;lt;code&amp;gt;[markers]&amp;lt;/code&amp;gt;: If set to 1, will enable item respawn markers (0/1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[team]&amp;lt;/code&amp;gt;: Whether WangBang is Free-For-All (0) or Team Deathmatch (1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[hurtteam]&amp;lt;/code&amp;gt;: If set to 1, friendly fire is on (coop or TDM).&lt;br /&gt;
* &amp;lt;code&amp;gt;[kill]&amp;lt;/code&amp;gt;: Defines the frag limit for Commbat.&lt;br /&gt;
* &amp;lt;code&amp;gt;[time]&amp;lt;/code&amp;gt;: Index that defines the time limit, 0 being no limit. Available limits: &amp;lt;code&amp;gt;{0,3,5,10,15,20,30,45,60} minutes&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;[color]&amp;lt;/code&amp;gt;: Player palette value. This determines the team colors.&lt;br /&gt;
* &amp;lt;code&amp;gt;[nuke]&amp;lt;/code&amp;gt;: If 0, will replace nuke pickups with railgun ammo. (0/1)&lt;br /&gt;
| Example Use: &amp;lt;code&amp;gt; -autonet 0,0,1,1,1,0,3,2,1,1 &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-col #&amp;lt;/code&amp;gt;&lt;br /&gt;
| Forces the player palette for joining players. &lt;br /&gt;
| Workaround because &amp;lt;code&amp;gt;-autonet&amp;lt;/code&amp;gt; fails to do so.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Packet duplication, i.e. how many &amp;quot;moves&amp;quot; are sent per packet. Choose higher values for lossy connections. &lt;br /&gt;
| Valid values: &amp;lt;code&amp;gt;{2,4,8}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [pname]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets the connecting player&#039;s name to the given value.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nopredict&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables network prediction method, i.e., player position is no longer predicted.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-short &amp;lt;/code&amp;gt;&lt;br /&gt;
| Divides the frag limit by 10 and halves the time limit.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection Establishment ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define which game to connect to, and MUST be listed last. &lt;br /&gt;
&lt;br /&gt;
Any other parameters that follow &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt; will be ignored.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Required to use the parameters listed below.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ip]:[port]&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;[hostname]:[port]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the given IP/hostname and port. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-N0:# &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-I0:#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Host a netgame in master-slave mode, expecting # players to join before launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-N1&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-I1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use in peer-to-peer mode. The [hostname]:[port] pairs must be listed in the same order for all players, with the exception that -N1 has to be specified instead of the current player&#039;s [hostname]:[port] pair.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-p#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the port # to use for hosting. Valid range: 1025-65534&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters are used to debug VoidSW.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-allsync &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8 outside of demo recording. (purpose?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables camera view during normal gameplay, as if a demo recording is playing.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-commbat#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake WangBang with the specified number of players. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-coop#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake coop with the specified number of players. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debug &amp;lt;/code&amp;gt;&lt;br /&gt;
| Only enabled for DEBUG builds. Shows debug help options.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugactor&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all monsters. (same as &amp;lt;code&amp;gt;-monst&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debuganim&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all animations.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugpanel&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables panel update. (?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsecret&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays debug info whenever an enemy is killed.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsector&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector movement.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugso&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector objects.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ddr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo in debug mode with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosyncrecord &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, records demo sync information to a file.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosynctest&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, reads previously recorded demo sync information and errors out if demo playback doesn&#039;t match. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-randprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prints the output of krand() functions whenever they are called.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mono&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables some debug output during gameplay.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosyncprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables the &amp;quot;out-of-sync&amp;quot; message in multiplayer.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inactive Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following SW parameters are disabled, or have been removed.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-bots&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disabled. Would have added bots to fake multiplayer games.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-broadcast&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cacheprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used to print to stdout whenever a sound effect is cached/loaded. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-de[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Demo editing? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dt[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Temporary demo? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m &amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -monst.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-masterslave&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nocdaudio&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally disabled the Redbook music.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setupfile [arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally used by setup.exe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14704</id>
		<title>Command line options</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Command_line_options&amp;diff=14704"/>
		<updated>2022-02-15T20:24:36Z</updated>

		<summary type="html">&lt;p&gt;NY00123: Rename EDuke32-OldMP -&amp;gt; NetDuke32&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= EDuke32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;eduke32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;eduke32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | pk3 | pk4 | map | con | def | rts}&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip|pk3|pk4}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is immediately loaded and launched as a usermap (equivalent to &amp;lt;code&amp;gt;-map&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .con file is specified, it replaces &amp;lt;code&amp;gt;GAME.CON&amp;lt;/code&amp;gt; (equivalent to &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF file (equivalent to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;).&lt;br /&gt;
* If a .rts file is specified, it is used as the main RTS soundbank (equivalent to &amp;lt;code&amp;gt;-rts&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the addons for Duke 3D (if present), packaged with the Megaton Edition release.&lt;br /&gt;
| 0 = none, 1 = Duke it out in D.C., 2 = Duke: Nuclear Winter, 3 = Duke Caribbean: Life&#039;s a Beach&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets initial cache size, in kilobytes. Usually not needed, as cache size is adjusted dynamically.&lt;br /&gt;
| See also [[cachesize_(DEF)| cachesize (DEF)]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;eduke32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]] &lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-d [file.edm][:arg1,arg2]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Plays an eduke32 demo. Can take optional parameters &amp;quot;arg1&amp;quot; and &amp;quot;arg2&amp;quot; which represent &amp;quot;frames per tic&amp;quot; and &amp;quot;number of repeats&amp;quot; respectively, and are used for debug performance profiling.&lt;br /&gt;
| By default, the game plays a loop starting at &amp;lt;code&amp;gt;edemo001.edm&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debughelp&amp;lt;/code&amp;gt; &lt;br /&gt;
|Displays debug parameters and exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Duke3d_w32 compatibility option. Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
| See also &#039;-j&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify the main DEF file. &lt;br /&gt;
| By default uses &#039;duke3d.def&#039; if present in the folder. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to EDuke32&#039;s search list. Does not alter the directory for config files.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts the specified usermap on launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional CON script module, appended after the GAME.CON code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;&lt;br /&gt;
|Disable monsters ([[m_monsters_off]] = 1) and sets [[m_player_skill]] and [[player_skill]] to 0.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodinput&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable DirectInput (joystick) support.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents eduke32 from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
|Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosteam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables Steam community API integrations (such as achievements) if binary is compiled with parameter EDUKE32_STANDALONE.&lt;br /&gt;
| Currently only relevant for [[Ion Fury]] builds.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ns -nm &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disable sound and music respectively.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables demo recording.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rotatesprite-no-widescreen&amp;lt;/code&amp;gt;&lt;br /&gt;
| Debug parameter. If set, screen tiles (such as weapons) logos and menu tiles will be stretched horizontally.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the skill level (0-4). Cannot exceed 4 even when more skill levels are defined. Setting this to 4 is hardcoded to enable [[respawn_monsters]] and [[m_respawn_monsters]], regardless of what the skill itself defines.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enables/disables startup window&lt;br /&gt;
|[only on Windows, SDL, and/or GTK2 environments]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-t#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Set respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force eduke32 to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u#########&amp;lt;/code&amp;gt;&lt;br /&gt;
| Define the weapon switch order, as a string of 10 digits.&lt;br /&gt;
|(Default: &amp;lt;code&amp;gt;3425689071&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-v[X] -l[Y]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Warp to episode X, level Y if used together. If either is omitted, then warp assumes episode 1, resp. level 1.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
|Show coordinates as well as other debug information, including current sector num, lotag and hitag.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified script file.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-z# &amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-condebug&amp;lt;/code&amp;gt;&lt;br /&gt;
|Enable line-by-line CON compile debugging at level #, and print the number of labels, variables and arrays used.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see [https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases NetDuke32].&lt;br /&gt;
&lt;br /&gt;
The corresponding parameters are listed here for the sake of completeness.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use fake player AI (dukebots) (fake multiplayer only).&lt;br /&gt;
| Sets [[playerai]] to 1, which doesn&#039;t do anything as of r9392.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-c#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Changes the value of [[m_coop]] to set the multiplayer mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-connect [ip]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the specified IP address.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dedicated&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start eduke32 in dedicated server mode.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [name]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the player name on startup. Can also be changed ingame.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Legacy P2P networking. &lt;br /&gt;
| Disabled as of r9392. Will exit with an error message.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noffire&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables friendly fire in coop games (i.e. [[m_ffire]] set to 0).&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-password [pw]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Password required to authenticate when connecting to server.&lt;br /&gt;
| Default is no password.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-port&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specify which UDP port to use for hosting the game or connecting.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-q#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Fake multiplayer with # (2-16) players.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rts [file.rts]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use the specified RTS soundbank for remote ridicule sounds.&lt;br /&gt;
| Defaults: {DUKE.RTS, NAM.RTS, NAPALM.RTS, WW2GI.RTS}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start multiplayer server for network games.&lt;br /&gt;
|(see [[multiplayer]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Removed Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters used to exist, but are no longer referenced in current eduke32 revisions.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load and run a game from slot # (0-9)&lt;br /&gt;
| EDuke32 no longer uses a fixed number of save slots, hence no longer works.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -conversion [YYYYMMDD] &amp;lt;/code&amp;gt; &lt;br /&gt;
| Selects CON script version for compatibility with older mods.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
|Send fewer packets in multiplayer (1, 2, 4)&lt;br /&gt;
|(deprecated)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-i#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use networking mode (1/0)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nD&amp;lt;/code&amp;gt;&lt;br /&gt;
| Dump default gamevars to gamevars.txt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-rmnet&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use network config file.&lt;br /&gt;
| (OBSOLETE, see -net)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-stun&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use UDP hole punching for multiplayer connections.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Mapster32 Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;mapster32 [files] [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;mapster32 nukeland.map -usecwd -cfg myconfig.cfg &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files can be of types &amp;lt;code&amp;gt;{grp | zip | map | con | def}&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Specifying a &amp;lt;code&amp;gt;{grp|zip}&amp;lt;/code&amp;gt; file is equivalent to using the &amp;lt;code&amp;gt;-j&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
* If a .map file is specified, it is directly opened in the editor.&lt;br /&gt;
* If a .con file is specified, it is used as the main resource for M32 CON commands.&lt;br /&gt;
* If a .def file is specified, it is used as the main DEF script.&lt;br /&gt;
&lt;br /&gt;
The set of parameters for mapster32 has some overlap with eduke32. Below is the complete list.&lt;br /&gt;
&lt;br /&gt;
== Shared Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -addon {0,1,2,3}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load addon data like eduke32 equivalent.&lt;br /&gt;
| 0 = none, 1 = DukeDC, 2 = DukeNW, 3 = Duke Caribbean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cachesize [size]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets initial cache size in KB. &lt;br /&gt;
| Unlike eduke32, this parameter has an upper limit of 1 MB.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cfg [cfg_path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an alternate configuration file. &lt;br /&gt;
| Default is &amp;quot;mapster32.cfg&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-clipmap [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]].&lt;br /&gt;
| Default is &amp;lt;code&amp;gt;_clipshape0.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-forcegl&amp;lt;/code&amp;gt; &lt;br /&gt;
| Disables GL driver blacklist on Windows.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-grp [path]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-g [path]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use an extra group (or .pk3 or .zip) file to load data from.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-game_dir [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Set the directory from which to load files, which also changes where the cfg is created.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -gamegrp [file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines which file to use as main grp.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specifies the main DEF file. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a directory to Mapster32&#039;s search list.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mh [file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include an additional DEF module, appended after the main DEF code.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -mx [file.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Include an additional M32 script module.&lt;br /&gt;
| See also the [[Console_commands#Editor-Specific| include command]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nam&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-napalm&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-ww2gi&amp;lt;/code&amp;gt;&lt;br /&gt;
|Run in [[NAM]] or [[WWII GI]] -compatible mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noautoload&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables loading content from the [[autoload]] directory.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force mapster32 to read game data and configuration files from the current working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-x [game.con]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the main GAME.CON with the specified file.&lt;br /&gt;
| GAME.CON code is only needed for sound definitions.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unique Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-check&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; -nocheck &amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables/Disables map pointer checking when saving.&lt;br /&gt;
| Default is disabled.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt; -namesfile [names.h]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Path to a different names file for tile numbers. &lt;br /&gt;
| Default is &#039;names.h&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VoidSW Parameters =&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;voidsw [options]&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example: &amp;lt;code&amp;gt;voidsw -addon1 -level3 -cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VoidSW currently does not take files directly as arguments.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-?&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays a help message listing the available parameters, then exits.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-addon#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch one of the expansions included in Shadow Warrior Classic Complete.&lt;br /&gt;
| 0 = SW v1.2,  1 = Wanton Destruction, 2 = Twin Dragon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cheat&amp;lt;/code&amp;gt;&lt;br /&gt;
| If combined with &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt;, starts the game with all weapons, inventory items and god mode on.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dp[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Starts playback of the given demo file.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-extcompat &amp;lt;/code&amp;gt;&lt;br /&gt;
| Controller compatibility mode. Multiplies movescale and turnscale by 5.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-g[file.grp]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified GRP or ZIP file as main data.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-h[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as the main DEF.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-j [dir]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adds the given directory to look for game data.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-level# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified level on startup (0-27).&lt;br /&gt;
| Does not use episodic structure unlike Duke.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-map [file.map]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Launch the specified usermap.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mh[file.def]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Load the specified file as DEF module.&lt;br /&gt;
| No space between param and filename!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-monst &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables monsters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-movescale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the movement scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nodemo &amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables demo playback on the title screen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-noinstancechecking&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents voidsw from checking whether another instance is already running.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nologo&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-quick&amp;lt;/code&amp;gt;&lt;br /&gt;
| Skip all the startup animations and logos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nometers&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents boss health bars and the air meter from being drawn onscreen.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-s# &amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the skill level (1-4).&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setup &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-nosetup&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enable/Disable the setup dialog.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-turnscale [val]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adjusts the turning scale: 256 = 1 unit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-usecwd&amp;lt;/code&amp;gt;&lt;br /&gt;
| Force VoidSW to read game data and configuration files from working directory.&lt;br /&gt;
| See also [[user_profiles_disabled]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define multiplayer game options and must be listed first.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-autonet [params]&amp;lt;/code&amp;gt;&lt;br /&gt;
| The autonet parameter defines multiplayer game options, and takes exactly 10 arguments, separated by commas. &lt;br /&gt;
These are, in order: &lt;br /&gt;
* &amp;lt;code&amp;gt;[game_type]&amp;lt;/code&amp;gt;: 0=WangBang, 1=WangBang (no item respawn), 2=Coop&lt;br /&gt;
* &amp;lt;code&amp;gt;[level]&amp;lt;/code&amp;gt;: Which level should be played (0-27). No episodic separation.&lt;br /&gt;
* &amp;lt;code&amp;gt;[skill]&amp;lt;/code&amp;gt;: Skill level (0-4). (0 being &amp;quot;no monsters&amp;quot;)&lt;br /&gt;
* &amp;lt;code&amp;gt;[markers]&amp;lt;/code&amp;gt;: If set to 1, will enable item respawn markers (0/1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[team]&amp;lt;/code&amp;gt;: Whether WangBang is Free-For-All (0) or Team Deathmatch (1).&lt;br /&gt;
* &amp;lt;code&amp;gt;[hurtteam]&amp;lt;/code&amp;gt;: If set to 1, friendly fire is on (coop or TDM).&lt;br /&gt;
* &amp;lt;code&amp;gt;[kill]&amp;lt;/code&amp;gt;: Defines the frag limit for Commbat.&lt;br /&gt;
* &amp;lt;code&amp;gt;[time]&amp;lt;/code&amp;gt;: Index that defines the time limit, 0 being no limit. Available limits: &amp;lt;code&amp;gt;{0,3,5,10,15,20,30,45,60} minutes&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;[color]&amp;lt;/code&amp;gt;: Player palette value. This determines the team colors.&lt;br /&gt;
* &amp;lt;code&amp;gt;[nuke]&amp;lt;/code&amp;gt;: If 0, will replace nuke pickups with railgun ammo. (0/1)&lt;br /&gt;
| Example Use: &amp;lt;code&amp;gt; -autonet 0,0,1,1,1,0,3,2,1,1 &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-col #&amp;lt;/code&amp;gt;&lt;br /&gt;
| Forces the player palette for joining players. &lt;br /&gt;
| Workaround because &amp;lt;code&amp;gt;-autonet&amp;lt;/code&amp;gt; fails to do so.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-f#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Packet duplication, i.e. how many &amp;quot;moves&amp;quot; are sent per packet. Choose higher values for lossy connections. &lt;br /&gt;
| Valid values: &amp;lt;code&amp;gt;{2,4,8}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-name [pname]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets the connecting player&#039;s name to the given value.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nopredict&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables network prediction method, i.e., player position is no longer predicted.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-short &amp;lt;/code&amp;gt;&lt;br /&gt;
| Divides the frag limit by 10 and halves the time limit.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection Establishment ===&lt;br /&gt;
&lt;br /&gt;
The following parameters define which game to connect to, and MUST be listed last. &lt;br /&gt;
&lt;br /&gt;
Any other parameters that follow &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt; will be ignored.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-net&amp;lt;/code&amp;gt;&lt;br /&gt;
| Required to use the parameters listed below.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ip]:[port]&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;[hostname]:[port]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Connect to the given IP/hostname and port. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-N0:# &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-I0:#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Host a netgame in master-slave mode, expecting # players to join before launch.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-N1&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt;-I1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Host a netgame in peer-to-peer mode.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-p#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines the port # to use for hosting. Valid range: 1025-65534&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following parameters are used to debug VoidSW.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-allsync &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8 outside of demo recording. (purpose?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cam&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables camera view during normal gameplay, as if a demo recording is playing.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-commbat#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake WangBang with the specified number of players. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-coop#&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables fake coop with the specified number of players. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debug &amp;lt;/code&amp;gt;&lt;br /&gt;
| Only enabled for DEBUG builds. Shows debug help options.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugactor&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all monsters. (same as &amp;lt;code&amp;gt;-monst&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debuganim&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables all animations.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugpanel&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables panel update. (?)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsecret&amp;lt;/code&amp;gt;&lt;br /&gt;
| Displays debug info whenever an enemy is killed.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugsector&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector movement.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-debugso&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables sector objects.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-ddr[filename]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Records a demo in debug mode with the given filename. Requires the &amp;lt;code&amp;gt;-level#&amp;lt;/code&amp;gt; parameter to also be set.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosyncrecord &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, records demo sync information to a file.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-demosynctest&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets sync bytes to 8, reads previously recorded demo sync information and errors out if demo playback doesn&#039;t match. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-randprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prints the output of krand() functions whenever they are called.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-mono&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables some debug output during gameplay.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nosyncprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disables the &amp;quot;out-of-sync&amp;quot; message in multiplayer.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inactive Parameters ==&lt;br /&gt;
&lt;br /&gt;
The following SW parameters are disabled, or have been removed.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Parameter!!Description!!Notes!!&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-bots&amp;lt;/code&amp;gt;&lt;br /&gt;
| Disabled. Would have added bots to fake multiplayer games.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-broadcast&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-cacheprint&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used to print to stdout whenever a sound effect is cached/loaded. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-de[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Demo editing? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-dt[arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Temporary demo? Disabled.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-m &amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -monst.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-masterslave&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replaced by -net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-nocdaudio&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally disabled the Redbook music.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-setupfile [arg]&amp;lt;/code&amp;gt;&lt;br /&gt;
| Originally used by setup.exe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NY00123</name></author>
	</entry>
</feed>