-d3d
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.
-ddoverride
This switch forces DMDX 6.3.1.9 and later to use the legacy DirectDraw rendering
path instead of the
Direct3D
one and is about the only way to get DMDX to use both auto mode and
DirectDraw at the same time on a later OS without firing up
TimeDX and using
it's Change Render command. Why would someone want to do that you ask?
They would if they wanted to build a remote testing task using the DirectDraw
renderer. Why would someone want to do that? They wouldn't, only I
would as I'm investigating why some people stubbornly cling to the DirectDraw
renderer despite it's timing errors and other foibles.
-buffer n
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
option 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.
-run \path\itemfilename.itm.rtf
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.
Note that both DMDX.EXE and the item file should be in the same folder, if not
the item file will need a path name to it.
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.
If you're running in a lab environment and want to automatically collect the
data from a number of machines see the
Networked and Read Only file systems Overview.
If you want to use non-ASCII characters in your item file
name in a batch file running DMDX (a) you'll have to make sure you're using
version 6.2.0.0 or later of DMDX (b) you'll want to make sure the text encoding
of your batch file is UTF-8 and (c) you'll want to change the active code page
before the start command to UTF-8
which is code page 65001 with chcp 65001.
You'll also probably want to force DMDX to use the Unicode option with
-unicode (below). So your batch file (assuming your item file's name is
지시문.rtf) would have:
chcp 65001
start /wait dmdx.exe
-unicode -run
지시문.rtf
Windows shortcuts require no such code page shenanigans.
-ez
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 3.2.4.1 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 4.0.0.0 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 5.1.5.0 of DMDX relaxed polling of the vertical blank status will be used instead of completely simulating the retrace. See -auto below. Note, as of version 6.3.2.0 this is all but superfluous as DMDX now saves the relaxed raster tracking status across runs so if your machine hit it once it will continue to use it.
-subjid xxxx
This option specifies the
subject ID when the -run option is used.
Available in item files with macro S.
If you wish to use non-ASCII characters in a batch file the same sort of
shenanigans that are needed for the -run switch are required (using version
6.2.0.0 or later of DMDX, setting the code page to 65001 and so on).
-display n
Causes DMDX to use display driver number n, handy in a multi monitor system with a subjects display
in another room say 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 .
-nosmartquotes
Causes DMDX to no longer check for Microsoft Word's Smart Quotes,
this is needed for extended double byte 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.
-nodispatch
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.
-unicode
This option turns on the Unicode code path through DMDX.
Use of the command line option overrides the dialog box Unicode control.
-soldieron
-nosoldieron
As of version 5.0.0.0 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 4.0.0.0 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. Use of
safe mode 3 will make DMDX repeat the
item that was interrupted.
-auto
Similar to EZ mode -auto turns on DMDX's
Auto mode largely
to aid remote testing with
tachistoscopic displays (you knew it was coming). Sets -soldieron and
-buffer 2 like EZ mode and as of version 6.3.1.6 if the DirectDraw legacy
renderer is in use under Windows 8 or later the number of back buffers will be
reduced to one as it appears every third display is lost when two buffers are
used with the emulated renderer. 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 5.1.5.0 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). Note, as of
version 6.3.2.0 this is all but superfluous as DMDX now saves the
relaxed raster tracking status
across runs so if your machine hit it once it will continue to use it.
-ignoreunknownrtf
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.
DMDX Index.