Friday, April 22, 2016

How To Extend Game Screen Across Monitors WITHOUT NVIDIA Surround or AMD Eyefinity!

This is really just an addendum to my last article discussing how to enable custom resolution sizes for displays. If your displays do not share a common resolution size, then you will not be able to enable either NVIDIA Surround or AMD Eyefinity. And if you have only two monitors, even if they do share a common resolution size, it will still not be possible to enable NVIDIA Surround or AMD Eyefinity! But if you want to extend a game screen across all of your monitors, it can be done!

The Problem
As stated above if you have only two monitors, or three (or more) that do not share a common resolution size--meaning that they do not have matching aspect ratios--then you will not be able to take advantage of NVIDIA Surround or AMD Eyefinity. The option may seem like it is available, but you will quickly realize it will not be usable.

The option to extend your desktop across all of your screens will still be available, just not for games. And many people who utilize more than one monitor often do so for gaming purposes.

The Fix
The following steps should help you extend a game screen across all monitors easily:
  1. In the game settings, ensure the option from full screen is changed to windowed.
  2. When the game either is loading up, or when it starts, press CTRL+ALT+DELETE to access the task manager. DO NOT MINIMIZE THE TASK MANAGER!
  3. Go to the edges of the game screen and pull it across to one of your other screens.
  4. If you have only two monitors, then you are done. If you have three, repeat steps #2 & #3 for your other screens.
  5. Repeat steps #2 & #3 if you have to elongate the game screen to reach the top and/or bottom of your screen(s). If the screen already reaches the top and bottom, ignore this step.
  6. You can now minimize the task manager, or click the game screen, to go back to the game. 
Note: On some games, if you perform the above actions during the options screen, or anytime before the game is about to begin, the screen may revert back to its original resolution size (on your primary monitor).

Note II: If you do not have a windowed option, search Google as many people have workarounds to access this option in certain games.

If you are really lazy, you can use either Actual Multiple Monitors, or purchase a program called UltraMon. Both of these add a button next to the minimize button of a window that can automatically stretch that window across all screens perfectly. The Actual Multiple Monitors is free (for 30 days), but for whatever reason does not stretch to the bottom automatically if using external displays with differing resolutions. UltraMon will stretch both across and below automatically.

Downside?
The only downside is that the screen is obviously not quite full screen since it is in windowed mode. However, the trade off is that the game will technically be slightly smaller than full screen resolution, giving a (very) marginal boost in frame rates since it works that much less to render the game.

Increase Monitor/TV Resolution Beyond Its Highest Native Resolution Permanenty! Not Just For Games! (1080p to 4K/UHD, 720p to 900p/1080p, 900p to 1080p/2.5K, etc.)

I have another article similar to this one, but this one differs in that you can change the resolution of your monitors/TV's permanently! Sometimes an old monitor or TV is still great, but it just does not have the resolution you want. Do not throw it away! Instead, try to see if you can increase your maximum resolution with a few simple tweaks. At least then you do not need to buy a new monitor/TV, and it can run at the resolution you desire.


WARNING: I AM NOT RESPONSIBLE FOR ANY NEGATIVE CONSEQUENCES IF THE FOLLOWING METHODS ARE USED!!! 

Why Would You?
Old monitors or TV's can still be great despite the lack of higher screen resolutions. Maybe they are a "professional" type of monitor that comes with many other useful functions, like adjustable height and swiveling, or a USB hub, or maybe it just has great brightness. 

Beyond that, maybe you just do not want to dish out a couple of hundreds dollars to get a new one when your old one works perfectly fine. And you would like to do something like 4K or UHD on a 1080p monitor or TV, or 2.5K or 1080p on a 720p monitor or TV.

My reasons to do this were because I had two older monitors attached to my laptop, which has a native resolution of 1920x1200. While they all functioned fine, I did not like the fact that they items would appear smaller on the external monitors. One is a 1280x1024 professional monitor, which looks great and has many of the functions I mentioned above. The other was a 1440x900 monitor, which is much older and has a bit of wear and tear, yet, still looks quite great and is perfect in terms of performing.

I should mention that I have not tried this with a television, as I normally would, but it should work as well. And as obvious as it may already be, I will directly state that this does work on monitors of different native resolutions.

The Trick's Inner Workings
This is a lot like my article where I explained how to play games at higher resolutions than your monitor would support. The trick used here is called downsampling, or Ordered Grid Super-Sampling Anti-Aliasing (OGSSAA).

Essentially, you tell your display to run at a higher--or unsupported--resolution than it can natively do. The computer allows the resolution change and helps makes your images on the display sharper.

If increasing the custom resolution beyond what the display can do, it renders at a higher resolution, then shrinks it to fit on your display, retaining the image quality, and thus, giving the sharper image.

The resolution you choose will look like the way you want! The icons on your desktop, and other items, will reflect the custom resolution size, so do not worry about it being a "fake" resolution setting, as you will get what you are looking for.

The only warning I can give about this is that it will make your PC work a bit harder since it has to scale down the resolution size you have chosen, which it would not have to do if the display supported that resolution size.

Does It Work?
To a reasonable extent, yes. Most monitors will allow you to use higher resolutions, but not all. And to that effect, not all resolution sizes will work.

With my laptop screen I was able to push it up to 2.5K. I tried UHD, but the screen became completely red, meaning it would not allow such a high resolution. On my 1280x1024 external monitor I was able to push it above 1920x1200, but when attempting 2.5K, I got a green flickering screen. On my other laptop, it would not allow me to use custom resolution sizes at all (with any of the methods below). I tried several methods to get my other laptop to add custom resolutions, even more than listed here, but I never could...

So, while you can push display screens fairly far, they do have their limits. Do not expect to get a 720p monitor to do 4K resolution. While it might be possible on some 720p monitors, I could only imagine this applying to an expensive 720p monitor that was considered top-of-the-line for its day...


Initial Steps
The first thing you want to do is determine what resolution size you are aiming for. With my external monitors, I wanted to get to as close to 1920x1200 as possible, since this is what my laptop has as its native resolution. Likely, you will be trying to match a native resolution of one of your monitors or TV, but you can try to match a custom resolution size...

Before we get started, I want to mention that you can use any custom resolution size. However, if it does not follow the steps below, you will get black bars across the top and bottom of your display if scaling is not enabled. Some people might be okay with this, but I would rather take advantage of my entire screen real estate.

Another point is that I want to use my laptops in extended mode (where your desktop stretches across all the screens), so you can skip some of these steps if you do not care if the desktop is large on one display, and smaller on another.

The other thing to consider is the physical size of each display. If one is large, and another is small, you may want to use different custom resolution sizes to better match icons and text sizes. My external monitors are close enough in size to not have this as an issue.

And a final point is that displays of differing native resolutions (that do not share a common aspect ratio) will not allow you to enable NVIDIA Surround or AMD Eyefinity. Check my other short article if you want to extend your game across multiple screens without the use of NVIDIA Surround or AMD Eyefinity.

Once you have determined the resolution you want to match, we will need to determine the aspect ratio. 1920x1200 has an aspect ratio of 16:10 (which is also considered 8:5), if you divide any of those sets of numbers (1920/1200 or 16/10 or 8/5) you will get 1.6. This value may help us later when trying to create custom resolution sizes...

Perform this division for all your external monitors and TV's to see if they all match up. If they do, the next few steps will be relatively simple. If they do not, you will have a bit of work to do in order to get a good custom resolution to match your other monitors or TV's.

Check out this Wiki article to see different resolutions with your aspect ratio (it will show a ":" value, like 16:10, instead of a "." value, like 1.6). This is a good starting out point for choosing a good custom resolution size.

For those with identical aspect ratios, I will give an example of what you would need to do. My laptop has a native resolution of 1920x1200, and one of my external monitors has a native resolution of 1440x900. Both have an aspect ratio value of 1.6. I merely need to change my 1440x900 monitor to use 1920x1200 to match the monitors. Of course, if your display is much larger or smaller than the monitor or TV you are trying to match, you may want to try a different custom resolution to better match the size of icons and text across two or more displays.

For those with different aspect ratios, I will give you an example of what you would need to do. My laptop has a native resolution of 1920x1200, and one of my external monitors has a native resolution of 1280x1024. The laptop monitor has an aspect ratio value of 1.6, the external monitor has an aspect ratio value of 1.25. This is quite a ways off from each other. 

Because of this, I need to find a resolution that is somewhat close to 1920x1200. I could just force the external monitor to use 1920x1200, but everything looks far too small, and I get large black bars across the top and bottom of the screen (since I do not want scaling). While I found many resolutions in the Wiki article that I could implement for the 1280x1024 external monitor, the ones I tried just did not look quite right in comparison to my laptop.

Instead, I did a little trial-and-error math to find some decent custom resolution sizes that would work. I came up with several different custom resolution sizes, including 1440x1152, 1600x1280, and 1800x1440. How did I come up with them? I tried using common width sizes and divided them with numbers until I got the 1.6 aspect ratio value. As you can see, I also tried common height numbers. The 1440x1152 is a good size for something slightly on the larger desktop side of things. However, I prefer 1600x1280 for daily use and gaming. 1800x1440 is too small for daily use, but can be beneficial for a "crispier" gaming experience.

Again, if your display is much larger or smaller than the monitor or TV you are trying to match, you may want to try a different custom resolution to better match the size of icons and text across two or more displays.

You may need to come back to this section while trying out different custom resolution sizes, if you are trying to create some that are not common. But once you have the initial resolutions you want to try, you now need to apply these values in Windows.

NVIDIA
I prefer to use NVIDIA graphic cards, so this is something that has been available to me for a long time. It is very simple to do, and takes little time to try out. The first thing to be sure of is that you have NVIDIA drivers installed so that you have access to the NVIDIA Control Panel. Follow these steps to insert custom resolution sizes:

  1. Right-click on the desktop.
  2. Select the "NVIDIA Control Panel".
  3. Go to "Display>Change resolution".
  4. Select the display you want to add a custom resolution to.
  5. Click "Customize..."
  6. Click "Create Custom Resolution..." on the next window.
  7. Input the "Horizontal pixels:" (width) to be used.
  8. Input the "Vertical lines" (height) to be used.
  9. Click "Test".
  10. The screen will go blank for a second or two, then should show your PC environment if it is successful. If it is not, try a different custom resolution until it is or you have exhausted all options.
  11. If you are successful, a small prompt will appear asking if you would like to save the screen resolution. Click "Yes".
  12. The screen will go blank again and be back at the resolution it was previously on. Right-click on the desktop.
  13. Click "Screen resolution".
  14. Select the display that you want to apply the custom resolution to.
  15. Click the dropdown menu for "Resolution:".
  16. Select the new custom resolution size.
  17. Click "Apply".
  18. A prompt will appear asking if you would like to set the display to this resolution. Click "Keep changes".
The new screen resolution will now be set, and you can reboot without worry of having to redo this process.


AMD
This should work for either dedicated AMD graphic cards, or AMD APU chips that have Radeon technology integrated. Be sure to have AMD Crimson drivers installed before trying this trick.

This is also possible with older AMD graphic cards with older AMD Control Catalyst Center drivers, but it requires more work. I have written all the known methods for newer and older AMD drivers.
 
Form AMD Crimson drivers, use the following:
  1. Right-click on desktop.
  2. Select the "AMD Radeon Settings".
  3. Click "Preferences".
  4. Click "Additional Settings".
  5. A new windows should appear. Under "My Digital Flat-Panels"--which may be "My VGA Displays")--select "Custom Resolutions (Digital Flat-Panel)", or the respective option. You may need to "Accept" an agreement before proceeding.
  6. Click "New".
  7. Under "Base Mode", type in a width for "Horizontal Resolution:".
  8. Under "Base Mode", type in a height for "Vertical Resolution".
  9. Under "Detailed Timing", change the "Display" to the same width for "Horizontal Timing".
  10. Under "Detailed Timing", change the "Display" to the same height for "Vertical Timing". 
  11. Select "Verify".
  12. The screen will go blank for a second or two, then should show your PC environment if it is successful. If it is not, try a different custom resolution until it is or you have exhausted all options.
  13. A prompt will then come up asking you to "Apply", "Save", or "Ignore" the custom resolution. Click "Apply" to immediately use the resolution, or "Save" to have it for later use. If you click "Apply" you can skip the remaining steps. If you click "Save", you can continue on...
  14. Right-click on the desktop.
  15. Click "Screen resolution".
  16. Select the display that you want to apply the custom resolution to.
  17. Click the dropdown menu for "Resolution:".
  18. Select the new custom resolution size.
  19. Click "Apply".
  20. A prompt will appear asking if you would like to set the display to this resolution. Click "Keep changes".
Note: If the "Detailed Timings" do not work for you, use the Custom Resolution Utility (CRU) and input the resolution and refresh rate you are trying to achieve. It should then give you the correct, full, timings to input into the "Detailed Timing" sections.

This is the simplest way to go about this, and hopefully you will not have to to use CRU to fix anything. But even if you do, it is fairly intuitive and just requires you to insert all of the "Detailed Timings" as opposed to just the width and height.

For older AMD CCC drivers, use the following:
  1. Right-click on desktop.
  2. Select the "AMD VISION Engine Control Center".
  3. Under "Information", select "Hardware".
  4. Note the "2D Driver File Path".
  5. Open "regedit" by searching it in the Windows button, or using WINDOWS+R and typing it in, followed by clicking "OK".
  6. Go to the path you noted for the "2D Driver File Path".
  7. Do not open "0000", which should be the last folder of the path, instead click on it.
  8. Find "DALNonStandardModesBCD",  there may be several, select any of them.
  9. At this point you can export (File>Export...) a backup of this file, which is advisable and recommended, however, you do not have to.
  10. Double-click the "DALNonStandardModesBCD" file.
  11. This is the tricky part. The first four numbers are just a place value and do not need to be edited. The next four numbers are the width. The next four numbers are the height. The next six numbers should be left as "00" and ignored. And the final two numbers are the refresh rate.
  12. Input all the numbers for width, height, "00", and the refresh rate. Ensure that they are formatted exactly as the columns before.
  13. Click "OK".
  14. Restart your PC.
  15. Right-click on desktop.
  16. Select the "AMD VISION Engine Control Center".
  17. Under "My Digital Flat-Panels" (which may be "My VGA Displays"), select "Properties".
  18. Uncheck the box for "Use Extended Display Identification Data (EDID) or driver defaults".
  19. Select your custom resolution from the "Maximum resolution:" dropdown menu.
  20. Click "Apply".
Note: You can skip steps #16-#20 if you just want to be able to change to the custom resolution through the normal Window settings.

This is a bit more technical, but it is not too difficult if you know what you are doing. However, "playing" in the registry can cause significant issues, so do not attempt to do other things in that area unless you know what you are doing!

For Pre-13.1 CCC drivers, use the following:
  1. Download AMD Downsampling GUI v0.06. 
  2. Extract the files to its own folder anywhere. 
  3. Open the folder. 
  4. Double-click "Downsample.exe". 
  5. A new window will appear, click "Erstellen". 
  6. Another window should appear with a list of settings. Click the dropdown menu to view the custom resolutions available. 
  7. Select the custom resolution desired. 
  8. Click "OK". 
  9. Click "Screen resolution". 
  10. Select the display that you want to apply the custom resolution to. 
  11. Click the dropdown menu for "Resolution:". 
  12. Select the new custom resolution size. 
  13. Click "Apply". 
  14. A prompt will appear asking if you would like to set the display to this resolution. Click "Keep changes". 
 You should now be able to access your custom resolution size from either Windows or AMD CCC. There is a way to add a different custom resolution, but it will require a person to understand German, as the instructions are in German...

For 13.1+ CCC drivers, use the following: 

Install 12.9 Beta drivers, or lower.
Follow the steps outlined in the above method.
Uninstall the AMD CCC drivers, leaving the preference settings intact! 
Install the "new" drivers.

Your custom resolution sizes should still be available after the drivers installation, allowing you to change to the desired custom resolution of your choosing. But if you need more, you will have to downgrade the drivers before 

Simpler (but riskier) Alternative for 13.1+ drivers:
  1. Right-click on desktop.
  2. Select the "AMD Catalyst Control Center".
  3. Under "Information", select "Software".
  4. Follow the remaining steps for the "older AMD CCC drivers..." in the method above, starting from step #4.
The reason this is considered riskier is because you are changing registry values. If you are comfortable with that, or can follow the steps precisely, then there is little to no risk involved.

Intel 
If using a Sandy Bridge or a newer CPU architecture from Intel, without a dedicated graphics card (or with one soldered to the board), then the following will be the method to use.

There are two types of Intel setups that are possible for this, one is with the newer Intel graphics drivers, and ones with Intel HD Graphics Control Panel. The steps will be similar, and I will detail each one. Be sure that you have the correct drivers installed from Intel before proceeding.

For those with the latest or more recent Intel drivers follow whichever method applies to you:
  1. Right-click on desktop.
  2. Click "Graphic Properties". Alternatively, you can use CTRL+ALT+F12.
  3. Select "Advanced Mode" if prompted.
  4. Under "Display", click "Custom Resolutions".
  5. Type in a "Refresh Rate".
  6. Type in a "Width".
  7. Type in a "Height".
  8. Click "Apply".
  1. Right-click on desktop.
  2. Click "Graphic Properties". Alternatively, you can use CTRL+ALT+F12.
  3. Select "Advanced Mode" if prompted.
  4. Under "Display Devices", click "Custom Modes".
  5. Type in a "Refresh Rate".
  6. Type in a "Width".
  7. Type in a "Height".
  8. Click "Apply".
This is a straightforward procedure, and takes little time to implement.

For those using HD Graphics Control Panel:
  1. Go to "C:\Windows\System32".
  2. Find "CustomModeApp.exe", and double-click to open.
  3. Type in a "Refresh Rate".
  4. Type in a "Width".
  5. Type in a "Height".
  6. Click "Apply".
My steps for Intel methods may be slightly off since I do not have the ability to test them all, but the only questionable steps are the last few.

Now Entering Power Save Mode
That is how you can create custom screen resolutions to get the best picture out of your old monitor or TV. It is cost effective, and no one would be the wiser from just a glance.

I enjoy doing this with my external monitors, as I prefer certain resolutions over others. My large laptop is great, but I need my external monitors to be as close as possible in terms of resolution, or my brain just struggles to concentrate and focus from one screen to the next.

If you got some old monitors that need new life, this is the perfect way to do that. But again, this may not work for all monitors or TVs, or even laptops!