Custom display modes (Windows) - Powerstrip

From BYOAC New Wiki
Revision as of 21:37, 6 March 2006 by Silver (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Here is a guide to setting up Powerstrip in Windows written by wpcmame in this thread in BYOAC, adapted for the wiki:

1. Windows XP on arcade monitor.

The aim om this guide is to setup an environment where applications running under Windows XP (including the desktop) works together with a low-res arcade monitor. It should be noted that even if applications such as word processing, internet surfing etc can be run on a low-res monitor, the picture quality (i.e. interlace flicker) is not suitable for longer periods of time. Games and movies does not suffer from this and works fine.

The guide only deals with the software involved. I use Ultimarc's J-PAC to connect my monitor to the graphics card but that is not necessary.

2. Software used.

In theory, no special software is required to run windows on an arcade monitor. The normal graphic card driver is fully cabable of outputting the correct signals for the monitor. However, the graphic card driver doesn't normally include a user interface for setting up resolutions outside the standard 640x480, 800x600 etc. To avoid messing with windows registry settings this guide uses a tool "powerstrip" from EntechTaiwan.com. There are other tools available but I have not tested them.

PowerStrip got 2 functions that we will use here: 1. It allows you to create custom resolutions and tweak existing resolutions via a graphical user interface. 2. It can automatically change the timing of the display whenever it changes. E.g. when a game asks for a VGA resolution (640x480), powerstrip will automatically convert it into a resolution that works with the arcade monitor (640x480 interlaced).

3. Step-by-step guide

3.1 Install PowerStrip Just download the trial version from www.entechtaiwan.com and run. The trial version is fully functional but got a time limit (365 days) and a nag screen.

3.2 Verify that your graphic card driver works with an arcade monitor. Obviously you need a VGA monitor to perform these actions. (If any of the items mentioned below isn't available, your graphcs card/driver doesn't support custom resolutions. Not much to do but get another graphic card) 1. Right-click on the powerstrip icon in the taskbar and select Display Properties/Change 2. Click on advanced settings 3. Click on "Custom Resolutions". 4. Go all the way down in the list of resolutions to the one that is labelled "640x480i (arcade)". 5. Select it and click on "add new resolution". 6. Powerstrip will now ask for confirmation and then switch to the new

  resolution. Connect the arcade monitor and one of four things can happen:
  1. It works. The windows desktop look stable but there is a lot of
     flicker on window borders and text etc. This is normal interlace
          flicker. We'll see later what we can do about it.
  2. The desktop is displayed but it is not centered, jumps up/down, is
          skewed etc. The signal from the graphic card is correct but you
          need to use the monitor controls to adjust the image.
  3. The desktop is visible but it looks like a jigsaw puzzle (the
          mouse pointer should look fine). Unfortunatly your graphic card
          driver got a bug with "tiled" memory at low interlaced resolutions.
          Powerstrip can't fix the bug but it includes a workound.
          Unfortunatly the workaround will degrade 3D performance on the
          card with ~30%. Here is what to do:
     - Restore the display by pressing CTRL-SHIFT-S
     - Go to the custom resolution screen again
     - Double-click on the heading "Resolution" in the upper right corner.
     - A dialog box will appear asking if you want to turn
       off "tiling".
     - Select yes and then try to add the arcade resolution again.
  (You can also contact the driver manufacturer and hope that they fix
   the bug but don't hold you breath. ATI support answered me "We don't
   have the resources to deal with your problem". NVidia had a
   similar problem on some of their cards but I'm told it is corrected
   in their latest driver)
  4. Everything else. This includes half-sized desktop, no picture at
     all, colored lines across the monitor etc. Your graphic card/
     driver doesn't work with an arcade monitor. Try the monitor
     controls and see if you can get a picture but otherwise there is
     nothing to do. Press CTRL-SHIFT-S to go back to the VGA
     resolution.

7. If the desktop works, powerstrip will now ensure that the resolution

  640x480 always displays interlaced regardless of application. 
  try mame pacman -resolution 640x480

  Of course, powerstrip must be running for it to work so when starting up
  the computer, the desktop will not be interlaced until powerstrip starts.

3.3 Plan the resolutions Once you confirmed that your graphic card/driver works with the aracde monitor you need to look into what resolutions you need. Here are some things to think about: 1. What applictions will I run on the monitor?

- Only modern windows/directX games: 640x480i is actually all you need. If you wan't higher resolution you can use 768x576i or even 800x600i. (Only use resolutions with 4:3 aspect ratio or the game will look stretched). The drawback is that if you adjust the monitor to display more than 480 lines, lower resolutions will have black borders around the game area.

- Watching movies: Movies look best if the monitor uses the same resolution as the source. For DVD movies it means 720x480i (NTSC) or 720x576i (PAL). Other sources are probably made for displaying on a PC monitor so they assume 1:1 pixel aspect ratio. Use 640x480i for NTSC material and 768x576i for PAL.

- Emulated arcade games etc: MAME games use over 300 different resolutions. It is not practical to add all these resolutions and it is not necessary. I can write a long essay on how to choose resolutions but I leave that for some other time. If you are lazy just choose the same resolutions as the ArcadeVGA card got. (http://ultimarc.com/avgainst.html)

2. Interlaced or progressive scan.

Most arcade games use progressive scan displays. This means that they used a resolution with less than 300 lines (mostly in the range 224-256). While it is possible to create these resolutions there is also another possibility, interlaced display. The benefit of interlaced display is that it doubles the number of lines. These lines can be used to improve the game display via different filters, to display a higher resolution artwork backdrop etc. It also reduces the number of resolutions needed since you don't need both progressive scan and interlaced resolutions. The drawback is that the game doesn't look exactly like in arcades which is important to many people. (I have tried both interlaced and progressive scan on my monitor and the difference is hardly visible. Now when I know what to look for I can see it on a static image but not during gameplay)

What you should always do is to select resolutions with more than 400 horizonal pixels. The reason is: 1. Works with all graphic cards. Some cards have problems with low pixels clocks. 2. You don't need 2 different resolutions for mame games using 512x240 and 256x240 etc. 3. A mame game displayed at 672x240 instead of 336x240 makes no difference in the pixture. The images will look exactly the same (yes, exactly).

3. Scaling artifacts/black borders A fundamental property of arcade monitors is that they will always display the same amount of lines on the screen independent of the resolutions used. This means that if the monitor is adjusted to display 576 lines (PAL movie), a 480 line resolution (NTSC movie) will not use the full height of the screen (of course the same applies for games). There are two ways to partly solve this.

  - Use black borders. Resolution with less lines than the monitor is
    adjusted for will have black borders at top and bottom. This gives
         the best picture but depending on monitor size and viewing distance
         it might not be the best solution for everybody.
    Note that black borders should also be added at left/right or
    the picture will look squeezed vertically.
  - Use scaling. Resolution with less lines than the monitor is
    adjusted for are scaled up and resolution with more lines are
    scaled down. Since the scaling rarly is a whole number of
    pixels (e.g. scaling 576 pixels to 480 means removing every 6th
         line) it will add various artifacts. Also here it depends on
    monitor size and viewing distance if the artifacts are acceptable
    or not.

3.4 Create custom resolutions

First: Enabling low res resolutions By default it is only possible to select resolutions with more than 400 lines in powerstrip. To change this we need to manually edit the powerstrip configuration.

 - Close powerstrip by right clicking on the icon and select close.
   (powerstrip updates the configuration file on close. If we edit
    the file without closing powerstrip our changes will be overwritten)
   Notice that the desktop stays interlaced when powerstrip is closed.
 - Open powerstrip's configuration file "pstrip.ini" in the application
   directory (normally "Program Files/powerstrip").
 - Under the section header "General Options" add the line
   MinLines=200
 - Save the file
 - Start powerstrip
 - Open powerstrip's display settings.
 - You should now be able to select resolutions like 320x200 and 320x240
   (Don't enable these resolutions yet. By default these are VGA resolutions
    with a high refreshrate)

- Quick and easy way.

The easiest way to add resolutions is to copy them from a working powerstrip.ini file. - Exit powerstrip - Copy all entries under the [custom resolutions] heading in a working powerstrip.ini file. - Start powerstrip and go to the "custom resolution" window. - Select all custom resolution in the listbox and press "add resolution". - Restart windows.

Done.

(See custom powerstrip.ini entries for resolutions to use....)

- Long and difficult way

- Step 1: Add resolution to driver

Go to powerstrip's "custom resolution" window. As an example we will add a resolution to use for the game Gauntlet. Gauntlet uses 336x240x60Hz but this means a pixelclock of approximatly 6MHz which is below what most graphic cards can handle. Therfore we double the horizontal resolution to 672. Enter 672 and 240 into the size boxes and just ignore the other boxes and press "add resolution". Powerstrip will restart the computer. If everything worked, the resolution will no be selectable in the powerstrip window.

(Many graphic drivers (at least ATI) are very picky on what resolutions you can add. Fortuntaly, once the resolutions is added you can modify it as you like. If the resolution isn't added you need to fool the driver by adding a normal VGA monitor resolution. This means that the horizontal refresh should of 31KHz and a vertical refresh of at least 50Hz. In this case it means that we add a resolution of 672x240x120Hz. If this doesn't work try to add interlace.)

- Step 2: Adjust resolution

Once the driver has accepted the resolution, it is available for selection in the powerstrip window. Now we need to adjust the resolution to the monitor. Problem here is that if the resolution doens't work you will not be able to adjust it since you can't see it on the screen.

I recommend to do it the following way 1. Download the "Low Resolution Modeline Calculator" (lrmc) from http://sourceforge.net/projects/lrmc 2. Let the tool generate the modeline

>lrmc 672 240 60 -cga

Modeline "672x240x60.11" 12.726000 672 688 752 808 240 244 247 262 -HSync -VSync

3. Close powerstrip 4. Open powerstrip.ini and search for the line "672x240=" 5. Replace the digits with the ones generated by lrmc (note that powerstrip uses a difference modeline i.e. instead of "672 688 752 808 240 244 247 262" it should be 672 16 64 56 240 4 3 15", each value is subtracted from the one before.) 6. Start powerstrip and select the resolution.

- Step 3: Fine tune resolution (center on monitor etc)