MultiRes

2004.03.21

Program and documentation Copyright (c) 1995-2004, EnTech Taiwan. All Rights Reserved.

Using MultiRes to change display settings

MultiRes works very much like a 32-bit version of the venerable Microsoft QuickRes 16-bit applet for Windows 95, with extended capabilities to handle refresh rates and multiple monitors. Supported resolution and refresh rates are accessible from a simple menu that pops up from the system tray. An optional timed confirmation prompt – enabled by default in the program About box – ensures that any changes you make can be reversed safely, without fuss. While MultiRes - unlike EnTech’s PowerStrip - does not allow you to define new display settings, it does give you quick and easy access to the ones the driver makes available – in a simple, compact and conservative package.

Using MultiRes to lock refresh rates under Windows NT/2000/XP

Applications and games that switch display settings without specifying a specific refresh rate often end up running at the lowest refresh rate supported by the display adapter in the interests of protecting your monitor against too-high frequencies. With primary display adapters the refresh rate can under many – but certainly not all – circumstances be controlled by MultiRes if it is running. If MultiRes is running and the “Lock refresh rate” option has been enabled in the program About box (it is disabled by default), MultiRes will try to enforce the refresh rates you have previously selected, on a resolution by color depth basis.

Example 1:

You frequently run Direct3D or OpenGL games at 800x600x32bpp, but they default to 60Hz whereas you wish to run them at 100Hz. To resolve this problem with MultiRes, do the following:

1. enable “Lock refresh rates” in the MultiRes About box
2. switch your desktop to “TrueColor (32 bit) - 800x600” in the MultiRes menu
3. switch your desktop to a refresh rate of 100Hz in the MultiRes > Refresh Rate menu (this records 100Hz as your preferred refresh rate whenever the display switches to 800x600x32bpp)
4. switch back to your normal desktop resolution

In future, whenever you run a program that switches to 800x600x32bpp, MultiRes will attempt to impose a refresh rate of 100Hz on it, as well as on all resolutions below it for which a refresh rate has not been explicitly selected. For higher resolutions, steps 2 and 3 must be repeated as needed.

Example 2

Your monitor and graphics card support up to 1600x1200 at 85Hz, and you want all resolutions locked at 85Hz. Do the following:

1. enable “Lock refresh rates” in the MultiRes About box
2. witch your desktop to “TrueColor (32 bit) - 1600x1200” (or any other color depth) in the MultiRes menu
3. switch your desktop to a refresh rate of 85Hz in the MultiRes > Refresh Rate menu (this records 85Hz as your preferred refresh rate whenever the display switches to 1600x1200 and all lower resolutions)
4. switch back to your normal desktop resolution

Important!: If you cannot select a specific refresh rate for the desktop in Windows Display properties, MultiRes will not able to provide it, much less lock it down.

Using a single copy of MultiRes to support multiple users

MultiRes stores its configuration information in a discrete multires.ini file in the current directory, rather than the directory where the MultiRes program itself resides. This allows a single copy of the program to support multiple users, since each user can have their own configuration file. If MultiRes is launched from a standard Windows shortcut, the location of the configuration file can be specified in the “Start in” field. However, when calling MultiRes from batch files and scripts, care much be taken to switch the active directory to the user’s directory before calling MultiRes. Note the difference between the two examples below.

Example 1 – correct use:

In the example below, the MultiRes.exe program is in N:\shared and the MultiRes.ini configuration file is in C:\user:

c:\

cd\user

n:\shared\multires.exe

Example 2 – incorrect use:

In the example below, the MultiRes.exe program is in N:\shared and the MultiRes.ini configuration file is stored wherever the current directory happens to be:

n:\shared\multires.exe

Example 3 – correct use specifying a configuration file:

In the example below, the MultiRes.exe program is in N:\shared and MultiRes uses h:\users\ john_doe.ini as its configuration file:

n:\shared\multires.exe /ini=h:\users\john_doe.ini

Using MultiRes command-line parameters

In addition to selecting MultiRes commands from the menu, the program supports command-line parameters that allow you to call MultiRes functions on start-up and from elsewhere in Windows at any time.

In the absence of special command-line parameters, when the MultiRes is started it normally checks your current display settings and then simply resides in the Windows system tray awaiting user interaction. However, the program will also process certain command-line parameters you may choose to pass it, either when MultiRes is first started or while the program is already running. This feature allows parents and administrators to enable custom display settings for specific users on startup, and allows you to create shortcuts anywhere (on the Windows desktop or in the Start menu, for example) that call specific MultiRes functions.

MultiRes is normally started with the command multires.exe. To pass command-line parameters to the program, you might add, for example, "/640,480,8" to the command-line, where "640,480,8" are the display settings you want MultiRes to activate, e.g., multires.exe /640,480,8. Display setting parameters consist of 3 mandatory and 2 additional optional numbers:

Simple form:

multires.exe /800,600,32

where 800 is the horizontal resolution, 600 is the vertical resolution, and 32 is the color depth in bits per pixel.

Using the deepest color depth:

multires.exe /800,600,-1

where 800 is the horizontal resolution, 600 is the vertical resolution. The third parameter (–1) tells MultiRes to use the deepest color depth available – usually either 24bpp or 32bpp, depending on the graphics controller and display driver.

Specifying a refresh rate:

multires.exe /800,600,32,75

where 800 is the horizontal resolution, 600 is the vertical resolution, and 32 is the color depth in bits per pixel. 75, the optional fourth number, is the refresh rate. If a refresh rate is not specified, Windows will use the current default for the selected resolution and color depth.

Manipulating a specific monitor (multi-monitor):

multires.exe /2:800,600,32,75

where 800 is the horizontal resolution, 600 is the vertical resolution, and 32 is the color depth in bits per pixel. 75, the optional fourth number, is the refresh rate. 2, the very first number followed by a colon, tells MultiRes to apply these settings to the second monitor in a multi-monitor environment. If a monitor is not specified, the display settings are applied to the primary monitor.

Applying display settings to multiple monitors (multi-monitor):

multires.exe /1:800,600,32,75 /2:1024,768,16,60 /3:640,480,8,85

where the first set of display settings (800,600,32,75) is applied to monitor number 1, the second set (1024,768,16,60) is applied to monitor number 2, and the third set of display settings (640,480,8,85) is applied to monitor number 3.

Restoring previous display settings:

multires.exe /restore

MultiRes always stores current display settings prior to making any changes, so that they can be easily restored on demand. This faciliates batch file processing, where it is desireable to run a specific application at a specific color depth and/or resolution, and then restore normal display settings when the application is closed. In the example below, assume the system is normally run at 1024,768,16 but it is desireable to run Internet Explorer at 800,600,32.

: batch file

multires.exe /800,600,32

start /w iexplore.exe

multires.exe /restore

The first command in the sample batch file above switches display settings to 800,600,32. The current display settings - 1024,768,16 - are automatically stored. The second command - start - is an MS-DOS command to lauch Internet Explorer and wait (/w) for it to terminate before continuing to the next command in the batch file. The third command in the batch file gets executed when Internet Explorer is closed, and tells MultiRes to restore the last set of display settings on record - in this case, 1024,768,16.

Non-resident changes:

multires.exe /800,600,32 /exit

Normally when MultiRes is run, it resides in the Windows system tray. However, it can also be passed display settings and instructed to exit immediately after applying changes. Note that since the last display settings of record are written to disk, the /restore parameter can still be called subsequently.

Non-resident changes using a batch file:

: batch file

multires.exe /800,600,32 /exit

start /w iexplore.exe

multires.exe /restore /exit

If you never want MultiRes to appear and stay resident on the system tray, append an /exit parameter to each and every MultiRes command, as in the example above. Note that if MultiRes is not running, it cannot ensure your preferred refresh rates are locked.

MultiRes.ini switches

Aside from installation data, MultiRes stores all its settings in a private ini file. Confirmation and refresh rate preferences are stored under adapter section names, e.g.,

[Refresh1] ; for the primary adapter

# Confirmation=0 ; no confirmation prompts

16-1024x768=85 ; 85Hz is preferred at 1024x768x16bpp

32-1024x768=75 ; 75Hz is preferred at 1024x768x32bpp

[Refresh3] ; for the tertiary adapter

# Confirmation=1 ; use confirmation prompts

16-800x600=72 ; 72Hz is preferred at 800x600x16bpp

24-800x600=60 ; 60Hz is preferred at 800x600x24bpp

Global options are stored under the [Options] section name:

[Options] ; global options

# Lock=1 ; lock refresh rates – off (0) by default

# XP=1 ; use WinXP style options: no low-resolution low-color depth options – on (1) by default

# Language=0 ; always use English strings – default is the Windows Language ID

# Scroll=0 ; use scrolling instead of cascading menus – off (0) by default

# DisableOptions=0 ; disable options to prevent changes by users – off (0) by default

# Quiet=0 ; disable warning and status message boxes – off (0) by default

# LimitModes=0 ; include only resolutions explicitly listed in the [Inclusions] section – off (0) by default

Administrators and parents who wish to exclude resolutions and refresh rates from the MultiRes menu can do so by listing them under [Exclusions]:

[Exclusions] ; excluded resolutions and refresh rates

# 1600x1200=1 ; 1600x1200 will not be listed

# 120=1 ; 120Hz will not be listed

# 24bpp=1 ; TrueColor (24 bpp) color depths will not be listed

# 32-1024x768=1 ; 1024x768 in TrueColor (32bpp) will not be listed

Enterprise and home administrators who find it easier to include only specific resolutions in the MultiRes menu can do so by setting “LimitModes=1” in the [Options] section, and then listing the resolutions to be included under [Inclusions]:

[Options] ; global options

# LimitModes=1 ; include only resolutions explicitly listed in the [Inclusions] section

[Inclusions] ; explicitly included resolutions

# 640x480=1 ; 640x480 will be listed

# 800x600=1 ; 800x600 will be listed

# 1024x768=1 ; 1024x768 will be listed

In the example above, only 640x480, 800x600 and 1024x768 will be listed. Note that this applies only to the MultiRes menu; other resolutions may still be available to other programs that change display settings.

In the example below, a combination of explicit inclusions and exclusions limits the MultiRes menu to just 800x600, 1024x768 and 1280x1024 in 16bpp and 32bpp.

[Options] ; global options

# LimitModes=1 ; include only resolutions explicitly listed in the [Inclusions] section

[Inclusions] ; explicitly included resolutions

# 800x600=1 ; 800x600 will be listed

# 1024x768=1 ; 1024x768 will be listed

# 1280x1024=1 ; 1280x1024 will be listed

[Exclusions] ; excluded resolutions and refresh rates

# 8bpp=1 ; 256 color depths (8 bpp) will not be listed

# 15bpp=1 ; 15 bpp color depths will not be listed

# 24bpp=1 ; 24 bpp color depths will not be listed