This switch forces both DMDX and TimeDX to use the Direct3D rendering path built into them instead of the original DirectDraw path. When either program is run for the first time on Windows 8 (unless Auto Mode is in use) they will prompt for the use of Direct3D rather than requiring a command line switch (and will remember that choice so it only need be made once) so the -d3d switch is only useful on Windows 7 and earlier OSes should people decide they want to use Direct3D.
Some video card drivers are f..., well, broken and return errors (or cause crashes) if DMDX requests large numbers of back buffers when not using Direct3D (when using 3D there's always only a single back buffer). This may be caused by some confusion over what is video memory and what is not, in any event the user needs a way to override DMDX's calculation of the number of video buffers available and this is it. Version 3's install creates several shortcuts that make needing to do this less likely. Windows 8 (if it wasn't using the Direct3D rendering path) OTOH would appear to always need it's buffers limited to 1.
DMDX will automatically run the item file name following -run. Data will be automatically saved and DMDX terminated if the run is successful, otherwise no data will be saved. This should be the last option on a command line as everything following -run is used for a file name (to easily deal with spaces in names and so forth). Should DMDX exit immediately and you are unable to tell what error has occurred consult diagnostics.txt to find out what happened.
If you are running DMDX from the command line in a batch file to automatically process it's output files then the following syntax is convenient to note for use in batch files:
start /wait dmdx.exe -run whatever.rtf
Here the MS-DOS prompt will wait until DMDX exits before processing the next line in the batch file, without the start /wait it would immediately continue on concurrent with DMDX was executing.
DMDX runs in EZ (or easy) mode with this option. Use of TimeDX to time displays is not required however displays are no longer synchronized with the raster. Facilitates demonstrations of DMDX with minimal setup (especially when used with <vm desktop>) and should not be used to gather time sensitive data. As of DMDX 220.127.116.11 EZ mode also only uses triple buffering (same as -buffer 2) unless overridden by -buffer later on the command line. No point having EZ mode hammering people's display drivers asking for oodles of back buffers and thus exposing unstable drivers unnecessarily. As of 18.104.22.168 EZ mode also sets Soldier On mode (below) that restores surfaces after focus is lost (usually because another application has popped up window).
Because the duration of a frame is no longer accurate use of the frame option % or <%> is inadvisable and instead <%ms> should be used. When an unknown display refresh rate is requested as always happens under 98/ME or when something like <vm 1024,768,16,0> is used then a 60Hz rate is assumed (even if the actual display rate is completely different).
The need for EZ mode if it wasn't already deprecated enough with the likes of auto mode (below) the advent of the freesync modifier to the video mode pretty much nails it dead as here you can just change the item file instead of having to make a new shortcut. Without an appropriate display freesync will function just like EZ mode it's just that DMDX will be burning a bit more of the CPU's power to do so...
If both EZ mode and auto mode are specified as of version 22.214.171.124 of DMDX relaxed polling of the vertical blank status will be used instead of completely simulating the retrace. See -auto below.
This option specifies the subject ID when the -run option is used. Available in item files with macro S.
Causes DMDX to use display driver number n, handy in a multi monitor system with a remote subjects display when you want to test something without going to the subjects display, you can have two shortcuts to DMDX, one that uses the normal subjects display and another with the command line parameter -display 0 for using the primary display for output. The n comes from the number that is the first part of any display driver name as displayed by TimeDX's Video Driver selection dialog and it's worth noting here that those numbers are different when using the Direct3D rendering path (-d3d above). Using the classic DirectDraw 2D rendering path displays 0 and 1 are the same display, with Direct3D they did away with this idiocy and displays are numbered sequentially from zero as you'd expect .
Causes DMDX to no longer check for Microsoft Word's Smart Quotes, this is needed for extended double code page character fonts (such as Asian ones) that DMDX doesn't know about. Word in it's infinite wisdom unless specifically told to not do so replaces normal quotes with matching left and right quotes (extended characters \'93 and \'94) so DMDX normally has to know about them, however Asian fonts are full of extended characters and tend to use those codes for other things besides fancy quote marks, so DMDX wrongly interprets them as text delimiters. DMDX currently knows about three character sets (128, 134, 136) that are Asian that need DMDX's support for Word's Smart Quotes turned off, -nosmartquotes is provided for other new ones that turn up from time to time. See -unicode below.
This option overrides the non-use of the millisecond callback for video retrace synchronization. It's being an utter pig to implement and preliminary results show that benefits are negligible to none, more like none. In a nut shell, you don't want to use this, it's in there so I can continue development of it when I've nothing better to do.
This option turns on the Unicode code path through DMDX. Use of the command line option overrides the dialog box Unicode control.
As of version 126.96.36.199 SoldierOn is on by default as Direct3D recovery is pretty smooth and machines are fast enough these days that so long as the focus isn't lost DMDX is largely unaffected by other other processes (unless they're extreme CPU hogs of course) so -nosoldieron was added should someone need a way to turn it off. Prior to version 188.8.131.52 of DMDX if another application popped up a window or DMDX otherwise somehow lost it's focus (sticky keys anyone?) it would basically hang up. Control of the machine was possible to get back with Alt-TAB and you could kill off DMDX with the task manager but that run of DMDX was toast. Onus was always on the experimenter to make sure an experimental machine was free of such software, after all if DMDX just recovered from such situations data integrity was sure to suffer, not to mention display integrity (it is possible to have display elements from previous items remain on the screen). Given the advent of remote internet testing it behooves us to make DMDX behave a little better so now the dreaded DDERR_SURFACELOST is caught and the job is terminated gracefully unless SoldierOn mode is activated with -soldieron in which case all display surfaces will be set to the default background color and DMDX will resume execution flagging that an error occurred in the output file (.AZK or .ZIL). Only real issue remaining is Alt-TABbing to the menu window of DMDX where it won't do anything (unless you're using the Direct3D rendering path), one has to Alt-TAB to the first DMDX window (the DX window) and then the job will resume
Similar to EZ mode -auto turns on DMDX's Auto mode largely to aid remote testing with tachistoscopic displays (you new it was coming). Sets -soldieron and -buffer 2 like EZ mode. With auto mode active DMDX will assume that the display is running at the frequency the display drivers report or 60 Hz if the display drivers don't report any refresh rate and will set it's timing parameters accordingly, nothing needs to be timed with TimeDX and no device selections need be made. The actual values used are fairly conservative so will waste more time looking for the raster than if TimeDX has been used but given the speed of today's CPUs that's less of a concern than it used to be.
If both EZ mode (above) and auto mode
are specified with -ez -auto on the command line as of version 184.108.40.206 of DMDX relaxed polling of the vertical
blank status will be used instead of completely simulating the retrace
(something I tend to refer to as Relaxed Raster Tracking).
After each poll of the raster status the thread polling the vertical blank status will sleep for a
millisecond rather than immediately testing it again which will hopefully stop pathetic machines like Microsoft's Surface
Pro series from overheating while running full bore DMDX as it hammers the
vertical blank status while not completely sacrificing synchronization with the
raster. It can also be used to squeeze a bit more performance out of a
machine should it be doing something particularly intensive like rendering
60 Hz HD video. When using test mode 1 you'll see a lot more retraces timed out
and multiply timed out ones as well however there are still enough hits (at
least on my machine) to maintain sync with the raster (these days you can easily
see this by hitting the Introduction button on the main DMDX dialog and using T
to get to the test mode section of it where the first test is test mode 1, no
item file needed). This relaxed raster
tracking can actually be automatically induced if DMDX notices the retrace
thread being blocked for more than a second and so test mode 1 now has a line
indicating whether the raster is being tracked relentlessly like normal or
whether it has switched to relaxed mode. Display errors also indicate if
the retrace tracking is relaxed as well.
This option forces the Ignore Unknown RTF check box to remain checked and for the machine to ignore any settings for this in the registry. In some remote testing setups run on machines with DMDX installed that have (for reasons difficult to fathom) turned Ignore Unknown RTF off this allows them to force it on for the duration of the remote test.