Tuesday, September 27, 2016

VR Gaming with the Alienware Alpha R2 Mini PC - Hardware Upgrade Guide

When I ordered my i5-based Alienware Alpha R2 it was exactly what I had been looking for: A tiny, near-silent PC that was small enough to fit on my entertainment center but powerful enough to play my favorite games on a big-screen TV. Shortly after making my purchase however, I decided to take my first dip into virtual reality with the Oculus Rift- and I was disheartened when I read the steep minimum system recommendations for the Rift.

While these are Oculus's "recommendations" rather than strict requirements, developers writing software for the Rift are targeting hardware at least as powerful as the components listed by Oculus, and if your hardware falls short your VR gaming experience can be sub-par (or even literally sickening, due to lag-induced motion sickness)- and in my case, both my graphics and CPU were fairly below-spec.

Thus began my upgrade journey.


IS THE ALPHA IDEAL FOR VR?

While I love the Alienware Alpha for what it is- a small, powerful-for-its-size living room gaming PC, it is definitely not the first thing I'd recommend to someone who mainly wanted to play virtual reality games and didn't care about the form factor. There are several reasons for this:
  • The on-board graphics in all Alpha models released to-date fall short of current VR minimum recommendations. The recommended GeForce GTX 970 is around 32% more powerful than my Alpha's GeForce GTX 960 graphics, for example. (Note: The recommended specs for the competing HTC Vive are a little strange here: They recommend the NVIDIA GeForce 1060- which is ~8% faster than the GTX 970 or the AMD Radeon RX 480- which is ~13% slower!)
  • Only the i7 models have CPUs that meet minimum VR recommendations. The recommended Intel i5-4590 processor is around 25% more powerful than the low-wattage i5-6400T in my Alpha, based on Passmark CPU scores. (Note: The same Intel CPU is recommended for the HTC Vive, but they also recommend the AMD Radeon RX 480, which is ~20% faster than the i5-4590.)
  • The Alpha only has one video output. Whichever headset you end up going with (Vive or Rift) is going to require an HDMI port, and you will need at least one other video output to drive a regular monitor. While there are solutions (like this special bi-directional HDMI switch) that let you share a single video output, depending on what you need to do and the specific games/apps you work with, sometimes that's just not going to be enough. Trust me, you want multiple independent video outputs.
  • While Alienware offers the ability to use higher-end graphics via the very cool Alienware Graphics Amplifier (AGA), this kind of cancels out the primary appeal of the Alpha: its small and sleek design. The AGA is huge and it adds noise.
  • The Graphics Amplifier introduces some other problems that I'll discuss later, which make the computer less-than-ideal for general use.
If you are thinking about getting into virtual reality and you haven't bought a PC yet, you're going to be better off (both financially and otherwise) by purchasing a VR-certified off-the-shelf unit or building your own desktop with high-end parts. This post is for people like me who already had an Alpha and wanted to make it work for VR.

CLONING AND REPLACING THE HARD DRIVE

When ordering a computer online, I always pick the cheapest storage solution available so I can replace it with the drive of my choosing (you can usually find better after-market storage solutions cheaper than what OEMs charge). In this case, my Alpha arrived with a 500GB Seagate Laptop Thin HDD. The "thin" in the name is accurate, by the way- it is the slimmest 2.5" hard drive I've ever seen, more like an SSD drive in physical size. I replaced it with a Crucial MX200 500GB SATA SSD. Crucial's MX models come with a serial number for Acronis True Image HD, which is a handy tool that I used in the replacement process.

Cloning the factory drive was a bit more of a hassle than I had anticipated, thanks to the computer's UEFI setup and how it affected Windows 10. Here's the whole procedure:
On another PC where I already had Acronis True Image HD installed, I used the Rescue Media Builder feature to create a DVD of the "Acronis bootable rescue media." This is a disc that boots to a Windows-like interface that works largely the same as the installed True Image product.

Next I connected my new SSD drive to one of the Alpha's front USB ports using a StarTech USB 3.0 to 2.5" SATA Hard Drive Adapter Cable. Next I connected my LG Ultra Slim Portable DVD external drive to another one of the Alpha's USB ports and popped in the True Image disc and rebooted the Alpha, expecting to be able to press F12 in order to select the DVD drive at startup...

The thing is, the Alpha's factory configuration does not appear to allow booting from a connected USB device. Users of Windows 8 and Windows 10 are probably familiar with UEFI by now, and how it's increasingly rare to see "Press F2 for system settings" and "Press F12 to select a boot device" options when you first power on a computer. For better or worse, the way this is supposed to work under Windows 10 now is this: Click Start > Settings, search for "Recovery options" and then click Restart now under Advanced Setup, and then click Use a device on the "Choose an option" screen, which should then bring up a "Use a device" screen where you can choose the device to boot from. However, the only boot devices my Alpha reveals are "Onboard NIC (IPV4)" and "Onboard NIC (IPV6)." My connected DVD drive was nowhere to be found.

Here's what I had to do: Click Start > Settings, search for "Recovery options" and then click Restart now under Advanced Setup. In the "Choose an option" screen, click Troubleshoot > Advanced Options > UEFI Firmware Settings > Restart. This got me into the Alpha's setup utility, where I could see where the problem was:


The Alpha's default UEFI configuration for whatever reason doesn't honor connected USB devices. The "Onboard NIC" devices (for LAN booting) were the only internal devices the Alpha exposes (other than "Windows Boot Manager," which is just the option that loads Windows). In order to use my USB disc drive to load Acronis True Image, I had to do the following:
  1. On the Boot tab, choose Disabled for Secure Boot. The setup utility won't let you modify the Boot List Option setting until you do this.

    Note
    You'll see a warning that changing this setting may prevent your operating system from booting. (And it will, but we will reverse the situation later.)
  2. Next, change Boot List Option from UEFI to Legacy. (You'll also probably get another warning when you change this setting.) This changes the "Boot Option Priorities" list to a longer list named "Set Boot Priority."
  3. For 1st Boot Priority I chose USB Storage Device.
  4. For 2nd Boot Priority I chose CD/DVD/CD-RW Device.
  5. And for 3rd Boot Priority I chose Hard Drive. (I don't have any M.2 PCIe drives installed.)
  6. I pressed F10 to save and exit.
  7. Now when the computer restarted I saw the old F2 and F12 options, and I was able to boot from the DVD drive.
  8. Inside True Image, I used the Clone Disk operation to copy my entire internal hard disk image to my attached SSD drive.
You might expect that would be the end of the clone operation, yeah? But you'd be wrong! See, the factory Windows 10 installation assumes your computer is using Secure Boot and UEFI at boot time, and as a result is not available for booting when the computer's in "legacy" mode. So here's how to reverse the process:
  1. Reboot the computer after the clone operation is complete.
  2. Press F2 when you see the prompt to enter the BIOS setup utility.
  3. Back at the Boot tab, change Boot List Option back to UEFI.
  4. Now change Secure Boot back to Enabled.
  5. Press F10 to save and exit, and allow Windows 10 to boot up from the original drive just to make sure your computer's still configured correctly. If it still works, you can now safely replace the drive.
The rest of the process is super easy. Just disconnect the Alpha, flip the unit on its top, remove four screws, and pop off the bottom plate to reveal the drive housing. Just a few more screws hold the existing drive in place, using a custom mounting assembly. Swap out the old drive for your new one and slap it all back together.

UPGRADING THE CPU

If you have one of the i7-based Alphas, don't worry- you're already set. The i7-6700T processor that ships with R2 models is around 24% more powerful than the i5-4950 that Oculus recommends. (Even the i7-4785T that shipped with the R1 Alphas qualifies, surpassing the i5-4950 by about 5% in raw CPU benchmarks.)

But anyone with an i3 or i5-based model will need to upgrade. Of course this is easier said than done. For one thing, when shopping for replacement CPUs you must make sure to get something that uses the correct socket type:
Both generations of Alphas use special T-series processors, which are desktop-class processors that draw less power (and generate less heat) than the standard models or top-performance K-series models that Intel offers. The T-series processors are "OEM parts" intended for computer manufacturers and system builders, not individual consumer purchase. You can't buy T-series processors at your local Best Buy, and you will have a hard time finding new, non-refurbished T-series CPUs online at any sort of reasonable price.

The good news is that you can safely install non-T-series CPUs in the Alphas, but this comes with some caveats:
  • To avoid melting your computer, the Alpha powers your replacement CPU at T-series levels, more or less delivering T-series performance, regardless of your CPU's stated clock speed.
  • The only processors powerful enough for VR that Alienware has officially approved for use in the Alpha are hard-to-get T-series models. (For the R1s it's the i7-4765T and i7-4785T, and for the R2s it's the i7-6700T.) While non-T processors have been proven to work by Alpha owners like me, using them in your Alpha might void your Dell warranty.
I ended up ordering an Intel i7-6700 processor. The Intel i7-6700K might also work, but it costs more and it wouldn't deliver any better performance. (Anyway, the K-series chips are designed for roomy, well-ventilated PCs with high-end cooling systems, not cramped, air-cooled systems like the Alpha.)

The CPU replacement procedure was quite simple:
  1. Disconnect all cables and place the unit on a clean, flat surface in a static-free environment.
  2. Remove the bottom plate of the Alpha (4 screws).
  3. Flip the unit over and slide off the top cover.
  4. Pop the fan housing off of the CPU and set it aside.
  5. Before removing the heat sink, take note of how it's installed (there's a little gap in one side that has to be in a certain position in order for you to re-assemble the PC later; it's possible to install the heat sink in the wrong direction before you realize what you've done). Then remove the heat sink (4 screws) and set it aside.
  6. Replace the old CPU with your new one. The i7 processors are easy to line up correctly, since they have a marked corner that lines up with the marked corner on the socket.
  7. Apply some thermal compound to the new CPU. I used a slightly-less-than-pea-sized drop of Arctic Silver 5, which has worked out just fine, but I've since read that Arctic MX-2 or Arctic MX-4 might perform even better. (Arctic and Arctic Silver are different companies.)
  8. Clean the old compound off of the heat sink then screw it back into place, making sure it's positioned the same way it was before you removed it.
  9. Replace the CPU fan (and re-connect it if you disconnected it earlier).
  10. Replace the top cover.
  11. Flip the unit back over and replace the bottom plate before plugging everything back in.

UPGRADING THE GRAPHICS

With the R2 generation of Alphas, Alienware introduced the ability for some models to offload graphics capabilities to an external desktop graphics card via the Alienware Graphics Amplifier.

Important: At this time, the only Alienware Alpha models that work with the Graphics Amplifier are those that:
  • Belong to the R2 generation (ASM200 models, not ASM100).
  • Have NVIDIA GeForce GTX960 graphics. (Therefore, the models with AMD graphics are not compatible, even though their motherboards have an AGA connector.)

Which graphics card should you use?

Before selecting a graphics card to use in you Graphics Amplifier, you should first check this mini technical support FAQ to see which graphics chipsets have been approved for use with the AGA. Next you have to narrow your selection down to a specific model. While shopping, keep a few things in mind:
  • The AGA was designed with NVIDIA "reference cards" in mind, which are around 1.5 inches wide, 4.6 inches tall, and 10.5 inches long. Some very long cards might not fit.
  • The AGA was also designed for blower-cooled cards, which push air along the card's body and out the back of a computer instead of blowing air sideways inside the computer chassis. Here's an example of a blower style card that works in the AGA.
  • If you're shopping for good cards for VR, remember that you'll want something with enough of the right video ports on it. Most (possibly all?) cards supported by the AGA have at least two ports, but you want to make sure they're the right connectors for your video hardware (monitors, VR headsets): For example, do you need HDMI, DisplayPort, DVI, etc?
I got a good price on this Gigabyte GeForce GTX 1070 G1 Gaming card, which is neither reference-sized nor blower-cooled, and it's working out fine- so don't worry too much if you can't find an affordable card that meets all of the above recommendations. Also, both the Rift and my television have HDMI connections for video/audio, but the card I bought has a DVI port, three DisplayPort connectors, and only one HDMI port. Since DisplayPort has audio support just like HDMI does, I picked up this DisplayPort-to-HDMI cable for my TV connection.

Setting up the Graphics Amplifier

You should read the Alienware Graphics Amplifier FAQ before setting yours up. Alienware updates it with the details on the latest supported graphics cards over time, which is important because sometimes brand-new cards have special driver installation requirements that aren't obvious to most users.

The process was pretty painless for me.
  1. First I checked Dell's Product Support site to make sure I had the latest version of the "Alienware External Graphic Amplifier Software" installed. In my case, I found that I already had the latest version.
  2. Next I used the Check for updates feature on the Drivers tab of NVIDIA GeForce Experience program to check for the latest graphics drivers. There were some updates available, so I downloaded and installed the new drivers.
  3. Next I powered off the Alpha.
  4. I installed my GTX 1070 card in the AGA and connected my television's HDMI In connection directly to the GTX 1070 (via the DisplayPort-to-HDMI cable I mentioned earlier) instead of to the Alpha's video out.
  5. Next I connected the Graphics Amplifier to the Alpha using the special AGA cable.
  6. Finally I powered the Alpha back on and logged into Windows. After I signed on it took several minutes for Windows 10 to reconfigure itself to use the correct driver for the Alpha (the Device Manager said I was just using a generic Microsoft display driver until the drivers were fully configured), but once the driver fully kicked in I was all set.

AGA-related Complications

We'll get to the benchmarks in a bit, but first I wanted to mention a few AGA-related issues I've experienced.

The Alpha cannot enter Sleep mode while connected to the AGA.
The only time I ever actually fully shut a PC down is if I'm about to take it apart (or put it in storage). Instead I configure all my computers that don't have to remain on 24/7 to enter S3 (Sleep) mode when I press the power button, or after a period of inactivity. Sleep mode's much better for me than Hibernation (S4), because a PC can enter and wake from Sleep mode nearly instantly while Hibernation usually takes a fair bit more time.

Anyway, after setting my Alpha up for use with the Rift, I went crazy for a couple of days trying to figure out why I couldn't put my Alpha to sleep. No matter which power scheme I chose in the Windows Power Options control panel, there wasn't even a "Put the computer to sleep" option to set a sleep time-out.

I posted about my problem to the Dell support forum, and unfortunately it turns out that as long as the Alpha is connected to the Alienware Graphics Amplifier, Windows Sleep mode is disabled. I'm pretty unhappy about this, but that's the current state of things. Currently I just shut my Alpha off when I don't need to use it. It's literally the only computer I own or use that I actually have to turn off.

Wake-from-USB is disabled by default (and doesn't work correctly when enabled)
Another thing I like to be able to do is wake my computers by wiggling a mouse or touching a keyboard. I have a number of computers in physically inconvenient locations, but I can wake them up via wireless keyboards/mice because their wireless dongles are USB devices.

Although the keyboard and mouse that ship with the Alpha are wired, the computer comes with a hidden USB 2 port on the underside of the unit explicitly intended for wireless keyboard/mouse dongles. Great, right?

Well, let us for a moment put aside the fact that as long as your AGA is connected to the Alpha, you can't even put your computer to sleep, so there's no point in being able to wake from USB. During the days when I was trying to troubleshoot the sleep problem, I ran across another pretty ridiculous problem.

The Alpha ships with the USB Wake Support option disabled in BIOS. (To enable the feature, you must first disable the "Deep Sleep Control" feature in the Advanced tab, and then change USB Wake Support to Enabled. Note that you probably won't be able to Hibernate after doing this.)

You must disable Deep Sleep Control in order to enable USB Wake Support.
Remember how I said that I have to completely power down my Alpha now, since there's no Sleep option? Well when USB Wake Support was enabled, my computer kept instantly powering back on as soon as it shut down! It would power off and then immediately power back on and start Windows. So I couldn't put the computer to sleep, and I couldn't shut it down either! Needless to say, I re-disabled USB Wake Support once I realized what it was doing.

The USB ports on the Alienware Graphics Adapter are not reliable.
One really cool-on-paper thing about the AGA is that in addition to housing a desktop graphics card, it also serves as a 4-port USB 3 hub. This would be an excellent feature for VR purposes (the Rift, for example, needs 3 USB ports, when you consider the headset, sensor, and game controller), but unfortunately it just doesn't work that well. I'm currently only able to use a single USB port on the AGA reliably; the one for the Rift headset itself. When I have anything else connected to the AGA USB ports, those devices just randomly disconnect and reconnect. The Rift's sensor couldn't even maintain a USB connection long enough for me to get through the initial Oculus setup wizard. Both my Xbox One controller dongle and my Rift sensor are plugged directly into the Alpha's rear USB ports. I've heard other AGA owners complain of this same limitation. It's a real shame.

PERFORMANCE BENCHMARKS

I performed benchmark tests at every step of the way in the upgrade process so I could measure the impact of upgrading the graphics and processor. For reasons I can't explain, I somehow lost the 3DMark scores from the baseline 6400T/GTX960 configuration, however I have Passmark scores from all four CPU/GPU combinations, so I'll do those first:

PassMark PerformanceTest

Here are the raw scores for PassMark PerformanceTest 8, for each of the four configurations I tested:


As you can see, upgrading from the i5-6400T to the i5-6700 alone delivered a 41% gain in raw CPU performance while upgrading from the on-board GTX 960 to the AGA-hosted GTX 1070 resulted in a 36% jump in graphics performance. Passmark doesn't weight 3D graphics too heavily in its overall score, explaining why the final PassMark score is only 23% higher than the base configuration.


The Alpha throttles non-T CPUs.
According to the PassMark site, a standard i7-6700 running under normal circumstances should get a CPU score of 9967. As you can see in my test results on the alpha, my 6700 scored 9069.8 on the 6700/1070 test, which is closer to PassMark's rating of the 6700T, which is 8918. So my Core i7-6700 seems to perform a little better than a 6700T would in the same system- but not by much. I did not try putting my 6700K in the Alpha. I was worried that the Alpha might not be able to rein that one in. I'd like to hear from anyone who's tried it.

Futuremark 3DMark 11

And here are the results from the 3DMark 11 "Performance" suite of tests (these tests run at 1280x720 resolution). Again, sorry I lost the scores for the i7-6400T/GTX 960 combo.


From these scores we can see that as far as gaming goes, the CPU makes the biggest difference in physics computations (34% boost in Physics when upgrading to the i7-6700) while the graphics card upgrade resulted in huge pure graphics gains (60% increase in Graphics score when switching from GTX 960 to the GTX 1070).



Temperatures

A big concern I had before replacing my CPU was TDP- the amount of heat generated by the CPU during normal use. The tiny Alienware Alpha was designed for low-wattage processors for a reason: They generate less heat, and thus don't need huge and complicated cooling systems. I was worried that the higher clockspeeds of the i7-6700 (whose TDP is twice the 6700T) or i7-6700K (whose TDP is 3x the 6700T!) would drive the Alpha beyond its cooling thresholds, resulting in (at best) poor performance or (at worst) physical damage to the CPU and motherboard.

I was pleased to find that the Alpha managed to keep the temperatures in a safe range:
  • Idle: Average ~44 degrees (C) Recorded range: 39-57
  • No Man's Sky at 1920x1080 fullscreen: 63 degrees (C) max
  • Elite Dangerous in VR mode on the Rift: 62 degrees (C) max

VR Compatibility Tests

After all the upgrades, here are the results of the Oculus Rift Compatibility Tool:


And here are the results of the SteamVR Performance Test:
 

The actual VR performance of the Alpha has been excellent so far. All native VR titles I've tried with it have worked without a hitch. Here's the whole setup, to give you an idea of scale and space required for both the Alpha and the Graphics Amplifier. At the bottom is the Logitech K830 Illuminated Living-Room Wireless Touchpad Keyboard I got for the setup, so I can use the Alpha from the couch. The wireless dongle is connected to the Alpha's hidden USB 2 port.

Tuesday, August 2, 2016

How to Speed Up Windows Update's 'Check for Updates' Feature on Windows 7

If you are the type of Windows 7 user who prefers checking for new Windows Update patches manually instead of letting them all quietly install in the background you may have noticed that for around the past year, the "Check for Updates" scan has taken increasingly longer- often to the point that many people think there's something wrong with their computers and they abort the operation or reboot before letting the scan complete. I get a lot of questions about this since many people who use my GWX Control Panel program are also the kind of user who run update checks manually, and they sometimes think my program is the result of the slowdown when in fact this issue has affected millions of Windows 7 users around the world.

We may never know the true reason for this slowdown (it does not happen on Windows 8.1 or Windows 10), but over the past few months, Microsoft has released several patches that, combined, restore the faster scanning speeds Windows 7 used to enjoy in years past.

I credit Woody Leonhard for collecting this info in two articles: This one and this one. Below are some quick steps for downloading and installing these patches so you can restore your Windows Update performance. For more information (and a number of other handy Windows Update troubleshooting steps), check out topic #17 at my GWX Control Panel Troubleshooting Guide.

Thanks also to commenter Chuck for suggesting an additional patch for addressing the issue.
  1. Before you start, restart your computer- this puts Windows Update into a fresh state where it isn't busy working on background tasks. (You won't be able to install the following patches if Windows Update is busy in the background.)
  2. For each of the following links, download the correct version of the listed patch for your specific version of Windows 7 (32-bit/x86 vs. 64-bit/x64, etc), then install the patch, and finally restart Windows if you are prompted to do so. This bypasses having to get the updates via super-slow Windows Update, which is the problem we're trying to fix!

    Note
    Over time, specific Windows Update patches can be superceded by others. Just download the updates Microsoft recommends instead if this happens. (And let me know so I can update my links!)
     
  3. KB3020369
  4. KB3138612
  5. KB3148522/MS16-039
  6. KB3168965/MS16-090
  7. KB3172605
  8. The next time you run Windows Update you should experience improved performance. If you still encounter issues, please check out topic #17 of the GWX Control Panel Troubleshooting Guide for more steps.

Monday, August 1, 2016

How to Uninstall GWX Control Panel

Microsoft's initial campaign to annoy and trick users of Windows 7 and Windows 8.1 into upgrading to Windows 10 "for free" appears to have ended. The July 29 cut-off date has passed, and I no longer see the dreaded KB3035585 "Get Windows 10" patch showing up as an available download in Windows Update on my own Windows 7 and Windows 8.1 systems- and my test computers that have Microsoft's Get Windows 10 app installed and enabled no longer display Microsoft's icon in the notification area.

Microsoft has hinted that they might run more free upgrade campaigns again in the future, but I'm putting together these uninstall/removal instructions for anyone willing to wager that Microsoft won't try something similar in the coming months.

Should you uninstall GWX Control Panel now that the July 29 deadline has passed?
At the moment we're not certain whether Microsoft will kick off another nag-em-to-death upgrade campaign, or what form a future campaign would take. It's just too early to say whether it's really over for Windows 7/8.1 users, or whether the settings GWX Control Panel puts in place are enough to protect against any future Microsoft efforts to get you onto their new platform.

Before You Start
Any Windows settings changes you made with GWX Control Panel will "stick" even after you uninstall the program, so you should still be protected from surprise upgrades unless Microsoft changes their tactics somewhere down the road. If, however, you want to leave open the possibility to upgrade to Windows 10 after removing GWX Control Panel, be sure to do the following before you uninstall the program:
  1. Launch GWX Control Panel by double-clicking it or by using the Display GWX Control Panel option on the Monitor Mode icon's right-click menu.
  2. If the Get Windows 10 app is installed, you can click Enable 'Get Windows 10' App to make it possible for Microsoft's icon to come back when/if the company decides to put it back into service. Clicking this button might not make the icon appear immediately, because Microsoft appears to have made the program dormant for the moment.
  3. Also, if these buttons are available, click Allow Windows 10 Upgrades and Enable Non-critical Windows 10 Settings to restore Microsoft's ability to upgrade you to Windows 10. (Again, this will not cause your computer to upgrade automatically; just opens up the possibility that it can be upgraded if Microsoft reinstates their free upgrade offer.)
Uninstalling GWX Control Panel
These instructions should work for any GWX Control Panel user, regardless of whether you used the standalone version or the GWX Control Panel installer.
  1. Restart Windows and log in to an account that you know has Administrator rights. (If you have multiple user profiles on your computer, you might have trouble uninstalling GWX Control Panel unless you make absolutely sure that only one user is logged in and that user has admin privileges.)
  2. Open your Programs and Features control panel (Appwiz.cpl). In the Search Programs and Features box, type: GWX. An entry for GWX Control Panel should appear under Uninstall or change a program if you used the GWX Control Panel setup program to install the application. If you see it, select GWX Control Panel and then click Uninstall.

    Note 1: If you don't see an entry for GWX Control Panel on this screen, then you are using the standalone version of the program. Continue to the next step.

    Note 2: If you encounter errors while running the uninstaller, please see topic #15 at the troubleshooting guide.
     
  3. If you are running the stand-alone version of GWX Control Panel, first you'll want to disable Monitor Mode if it's currently enabled. If you see the blue "10" icon in your notification area, right-click it and then select Display GWX Control Panel from the shortcut menu. Click the Disable Monitor Mode button. The GWX Control Panel Monitor Mode Status field should now read, "Disabled. Not running." If the field instead says, "Enabled (username). Running." then you need to perform a different step: Right-click the GWX Control Panel title bar and then pick Enable/disable Monitor Mode for current user from the shortcut menu. The status should change to "Disabled. Not running."
  4. With Monitor Mode disabled, all you have to do now is delete the GWX Control Panel program file you downloaded. For most users this file is probably in your Downloads folder. If you moved the file or you're not sure where your downloads go, you can search for the file: Open up Windows File Explorer (explorer.exe) and select your system drive under Computer (on Windows 7) or This PC (on Windows 8). Your system drive is usually drive C:. In the search box at the upper-right of the Explorer window, type gwx_control_panel and press ENTER. Any copies of the program should appear in the search results. Just right-click any entries you find in the search results, and then click Delete.
Thank you for your interest and your support. If Microsoft ever re-activates their Windows 10 annoyware down the road, you know where to find me.

Monday, March 28, 2016

GWX Control Panel Release Notes and Version History

To keep the official GWX Control Panel user guide short and to-the-point, I'm now maintaining all release notes for the program in this post. As always, you can download the program at the Ultimate Outsider Downloads page.

GWX CONTROL PANEL RELEASE NOTES

Here are the differences between all released versions of GWX Control Panel:

VERSION 1.7.4.1
Date: April 1, 2016
Installer MD5 checksum: FEA83EAC98858081B092B4A32B451357
Installer SHA-1 checksum: BF30804BD847D8D20B18517C9003AF235AB9919A
Stand-alone MD5 checksum: C6EA8429C22C53BC7A738FFEC4831429
Stand-alone SHA-1 checksum: FF89E1F50BDF778293E9CBBC91BF76AA5FA85143
Changes:
  • Removed a misleading alert that was appearing on some computers with "clean" Windows installs that had not yet encountered Windows 10 symptoms. This was a dialog box I had added while I was testing a fix I had implemented in version 1.7.4.0 but ended up not needing. The alert was harmless, but wasn't supposed to appear in the final release, so now it's gone.

VERSION 1.7.4.0
Date: March 30, 2016
Installer MD5 checksum: 681341EBA9DDC3A11E94F7FCB05EF5BE
Installer SHA-1 checksum: 70C73E91C3BC038A19F347C4E69E9FAC13E3DB50
Stand-alone MD5 checksum: 18113E1AB4B350B1FDB35A3B5BA6D19F
Stand-alone SHA-1 checksum: 599306998D16A5C954271E8377602BA22199B26E
Changes:
  • Fixes issues that can occur if third-party tools or scripts break permissions on some Windows 10-related registry keys.
  • Now checks for the "Give me recommended updates the same way I receive important updates" setting of Windows Update, since this can leave you vulnerable to some known Windows 10 update patches.
  • Added the ability to enable/disable the "recommended updates" setting in the Change Windows Update Settings dialog.

VERSION 1.7.3.1
Date: March 28, 2016
Installer MD5 checksum: 89D8EE023742E9727D363D15BDCB2080
Installer SHA-1 checksum: E470925FA09BF262AE641C22CC1AF57318064277
Stand-alone MD5 checksum: B5C2D94CAC4197868A31484A3AB94DB3
Stand-alone SHA-1 checksum: 5BBB5C4C7972B7A8C2D1CD6215221B1E3D28CAA9
Changes:
  • You can now block the Microsoft Get Windows 10 icon app even if it isn't currently installed. Previous versions of the program disabled the "Disable Get Windows 10 App" button if the app couldn't be found. But now you can preemptively disable it in the event that the KB3035583 patch gets installed on your PC subsequent to running GWX Control Panel. The text changes to "Prevent Get Windows 10 app" in this case.
  • For users of the GWX Control Panel installer (versus stand-alone), the Check for Updates feature now checks with UltimateOutsider.com to see if a new version is available and downloads/installs the new version at user's request. Stand-alone users will still just have a button that takes you to the Downloads page. (I don't know a reliable/elegant way to upgrade a stand-alone copy, while upgrading is easy with the installer.) Note: For about a half hour there was a version posted that didn't give any "You're already running the most recent version" indication if that turns out to be the case. That was confusing, and I fixed it immediately. So basically if you check for updates and nothing seems to happen, it might mean you're running the 1.7.3.0 version that was up temporarily, and you might have to do a manual download. Sorry!
  • Note: The Enable/Disable Monitor Mode and Display the User Guide buttons have moved. (Making room for an upcoming feature.)
  • Fixed some unexpected behavior that could occur if a user chose not to allow GWX Control Panel admin rights if required to perform an action.
  • Some optimizations in all recursive file operations (hopefully improving performance and success rate of massive delete operations).
  • No longer displays "Change Windows Update Preferences" dialog on computers where users have not yet configured their Windows Update settings; instructs them to set up Windows Update first instead.
  • Improved internal performance of diagnostic logging.
  • Program no longer crashes when run on Windows Vista. (Note: GWX Control Panel serves no purpose on Vista; Microsoft does not target that OS for Windows 10 upgrades. I just didn't want my program crashing when Vista users tried to run it.)
  • To eliminate some odd timing issues caused by users having Monitor Mode enabled for both All Users and Current User at the same time, the installer now makes sure that only "All Users" is enabled. (This only applies to upgrades, and only where Monitor Mode was already enabled.)
  • For debugging purposes, installer now saves a log file in the install directory, named install_log.txt.
  • The installer is now based on NSIS 2.5, which has some security improvements over previous versions.
  • LOTS of under-the-hood refactoring and optimizations in preparation for some future plans.


VERSION 1.7.2.0
Date: January 24, 2016
Installer MD5 checksum: C6312B051E84600B6166B3FCC1FF2B4B
Installer SHA-1 checksum: 4874B9A791CA1A3EC2927104B89D75D518CE2A47
Stand-alone MD5 checksum: 3CBAA23AB6ED2824DC5D8BE8B6AFBCE9
Stand-alone SHA-1 checksum: 519465821FF83471685E7D64D2B8E20B53969C76
Changes:
  • Fixed a confusing user interface issue where on some computers, clicking "Disable Get Windows 10 App" or "Prevent Windows 10 Upgrades" didn't refresh the dialog, making it look like the buttons didn't work (when in fact they were working).
  • Added thread-safe error logging (included in Save Diagnostic Info reports) for better troubleshooting.
  • Fixed an erroneous "Monitor Mode is not currently running" message in Save Diagnostic Info reports.
  • Screen now refreshes more accurately depending on current state of monitor mode. (It didn't always notice when a running instance shut down.)
  • Improved logic around Monitor Mode detection of Windows Update switching into "install updates automatically" mode. (Intended behavior is to only trigger a warning if user preferences change from a non-automatic setting to automatic installs.)


VERSION 1.7.1.0
Date: January 18, 2016
Installer MD5 checksum: 643DADD1DA7E670BED94D78E8F0C3501
Installer SHA-1 checksum: 4AE3FD5E84E56C50E8520783F48653E342E8FEE0
Stand-alone MD5 checksum: 599F929F42F77CE37B3875FEB10F2F0D
Stand-alone SHA-1 checksum: 8456306EDE6A1BEA712E1A8B7774CD6CA4B5358C
Changes:
  • Monitor Mode now has new "Change Monitor Mode preferences" menu option where you can select what kind of events you'd like to be notified about.
  • All buttons and dynamic text fields in the program have tooltips that appear when you float the mouse over them, for extended information.
  • Added a new information field and detection logic for "non-critical" Windows 10 settings. Previous versions of GWX Control Panel monitored these settings, but bundled most of them under "Windows 10 Upgrades." Now, the "Windows 10 Upgrades" logic is only tied to settings and features known to directly affect visible Windows 10 upgrade behavior.
  • Added new Enable/Disable Non-critical Windows 10 Settings button so users can change those settings at will without affecting the computers "Windows 10 Upgrades" status.
  • Added "Click to" to the names of all buttons to make it clear that the button text represents actions, not status. The upper "information" area is where to look for your computer's current status.
  • The Status and settings summary now includes more detailed information, including occasional steps on how to resolve certain issues.
  • Monitor Mode now waits 30 seconds before generating any alerts if it starts up when a user logs into Windows. This should resolve some "false alarm" alerts that happened because other applications and system services were still starting up, and were accidentally identified as having changed configuration status. Monitor Mode instances launched directly from GWX Control Panel do instant alerting if new settings are detected.
  • Software Protection service status now included in diagnostic logs. (GWX Control Panel doesn't currently interact with this service, but since it's required for Windows Update to work, this info can help in troubleshooting.)
  • Diagnostic logs now include specific alert information as alerts are generated and resolved. This info is included in both Monitor Mode and "normal mode" reports.
  • Fixed a silly glitch with the Change Windows Update Settings feature that disabled the wrong button in the UI while settings were being applied.
  • Now detects whether Monitor Mode is set up to use a different version of the program from the currently running process. This should help troubleshoot problems that stand-alone users encounter when they have multiple copies of the program on their system.

VERSION 1.7.0.2
Date: December 30, 2015
Installer MD5 checksum: 0E2FB32DC43F3C210E13A156B3CB385C
Installer SHA-1 checksum: 4958C9FFBC692CE657EB89484FD54F2E40A02D98
Stand-alone MD5 checksum: 338E4AD4E15C34C9D12023CE709E7131
Stand-alone SHA-1 checksum: 25BF97EE01A44963B4C2029FB98D64997C0BF53B
Changes:
  • New "Delete Windows 10 Programs" feature deletes program files known to be related to the Windows 10 upgrade and their related scheduled tasks. Right now this only covers files from the KB3035583 patch, but future versions will include other files as more problematic programs are discovered. Important: These programs are the main reason people were seeing their Windows 10 Upgrades settings getting reset in the 1.6 version of GWX Control Panel monitor mode. This new feature is the best way to prevent those reversions; simply removing the Get Windows 10 icon from your notification area is not enough to stop Microsoft from continually reverting your settings.
  • Now detects whether Windows Update is configured to automatically install updates (the "automatically install Windows Updates" field in the information section), because automatically installing new updates leaves you vulnerable to Windows 10 upgrades. Beginning with version 1.7.0.2, Monitor Mode will only trigger an alert if it detects that Windows Update switches from one of the safer settings to "automatically install." It won't trigger an alert if you already had Windows Update configured for automatic updates.
  • (Version 1.7.0.2) New, more horizontal window layout makes it possible for users running Windows at extremely low screen resolutions to see all GWX Control Panel controls.
  • Added new "Change Windows Update Settings" feature where you can set your Windows Update preferences in the event that GWX Control Panel detects that you are in automatically install mode.
  • Slightly reduced CPU and resource utilization (it was already pretty good before, but now it's even better).
  • Renamed "Disable OS Upgrades in Windows Update" feature to "Prevent Automatic Windows 10 Upgrades" because the old name confused some users.
  • Improved responsiveness and reliability of "Prevent Automatic Windows 10 Upgrades" feature.
  • Now additionally detects 32-bit version of MS "Get Windows 10" app on 64-bit Windows.
  • Tightened up Windows 10 detection logic; no longer triggers alerts in one case that's been determined to be safe. Added at least one new detection scenario.
  • Save Diagnostic Info report now includes human-readable details on exactly what traces of Windows 10 were found. Indicates parent subkey and registry value of detected (or missing) settings.
  • Some other additional details in diagnostic info, like whether current user is administrator and running status of some critical services.
  • No longer prompts for restarts after Prevent/Allow Automatic Windows 10 Upgrades. (The improved reliability of the new logic should make restarts unnecessary.)
  • Enable/Disable Monitor Mode feature now defaults to enabling Monitor Mode for all users instead of just the current user account. Per-user enable/disable is still available from a system menu option (see version 1.7 user guide for details). This new behavior is due to the very confusing way that Windows handles program credentials when users with Standard and Child accounts have to elevate to admin privileges when performing certain actions. The troubleshooting guide should include some background on this as well.
  • End User License Agreement now appears as a child of the main program dialog, preventing the situation where it appears behind other open windows but users have no idea since the old EULA dialog didn't have an icon in the taskbar.
  • Installer: Added shortcut to GWX Control Panel uninstaller in the GWX Control Panel folder of the Start menu.
  • Installer: Start menu and desktop shortcuts are now created for all users on the computer instead of just the profile of the user who installed it.
  • Installer: Added more logic to kill existing GWX CP processes during install/uninstall. NOTE: This doesn't work across multiple currently logged-in user accounts. Please log out all other user accounts before installing/uninstalling to ensure the program files can safely be installed/removed. Also, ideally you should run the installer from an administrator account, not an elevated Standard or Child account.
Issues fixed in version 1.7.0.2:
  • If you used GWX Control Panel's Monitor Mode and you use the installer to upgrade from an earlier version of the program, the installer didn't automatically restart Monitor Mode after the upgrade is complete. The installer now restores Monitor Mode if you had it enabled previously. GWX Control Panel will also now start Monitor Mode if it detects that you have it enabled but for some reason it isn't running.
  • The new buttons and information fields in version 1.7.0.1 made the program too tall to fit on very low resolution screens. The minimum screen size I tested with internally was 1360x768, but many netbooks have 800x600 screens, which can't display the whole GWX Control Panel program window. Version 1.7.0.2 has been re-arranged so that it doesn't take up so much vertical space.
  • If you already had your Windows Update settings configured to "automatically install updates" this would trigger an alert in Monitor Mode the first time it ran, even if you WANT to have Windows Updates at that setting. The real purpose of this alert is to let you know if Microsoft changes your Windows Update settings without your consent. Version 1.7.0.2 will now only trigger an alert if it detects that Windows Update changed from one of the other three options to "automatically install," which might indicate that a Windows Update patch reverted your Windows Update preferences.
     

VERSION 1.6.0.1
Date: November 24, 2015
Installer MD5 checksum: 243B8266A11747CD9605F33FB12D45B2
Installer SHA-1 checksum: FAFC81D0379F759927A9046D85BA9F9888E1B275
Stand-alone MD5 checksum: D25D0085AE1520F5255485B03CF91397
Stand-alone SHA-1 checksum: D3DAE116A383EBAF13BFA5B435217AA9212D87ED
Changes:
  • Monitor Mode. This optional feature actively monitors your computer and notifies you if it detects any known evidence of Windows 10 activity. 
  • Worry-free installer. This is the first version available with a traditional setup program: It creates shortcuts in your Start menu and on your desktop for easy access to GWX Control Panel and documentation. It will allow for safe upgrading to future versions of GWX Control Panel without leaving duplicate copies of the program laying around with different filenames like you might sometimes experience with the stand-alone version. And finally, it provides a standard uninstaller routine, available in the Programs and Features control panel. (If you don't use installers, GWX Control Panel is still also available as a stand-alone download.)
  • Check for Updates. The built-in Check for updates feature tells you what version of GWX Control Panel you're currently running and takes you to the Ultimate Outsider Downloads page where you can download the latest version if a newer one is available.
  • Save Diagnostic Info. This new feature saves a text file to your desktop that contains your current Windows 10-related settings and error messages encountered during the current GWX Control Panel instance. The text file includes info on where to send the file if you encounter unexpected problems with GWX Control Panel.
  • More comprehensive protection. The Disable/Enable Operating System Upgrades in Windows Update feature now covers a slightly wider range of settings related to Windows 10 upgrades
  • Restart Monitor Mode command available in the system menu, for launching Monitor Mode after previously exiting it manually.
  • Reset Control Panel Window Position command in Monitor Mode pop-up menu fixes problems with GWX Control Panel being hidden or in an unreachable location on the desktop.

VERSION 1.5
Date: November 1, 2015
MD5 checksum: 5A3AD8242727E09AAEE45647474C1059
SHA-1 checksum: 8041E202B94FE70D5A32F710DC1A2357EC6134B2
Changes:
  • Now detects the hidden $Windows.~WS folder associated with the Windows 10 Media Creation Tool, in addition to the more common $Windows.~BT folder that was already detected in previous versions.
  • New Delete Windows 10 Download Folders feature now deletes both detected hidden download folders, preventing users from having to run scripts or manually override file security and ownership settings.
  • Program now only requests administrator privileges when they're actually required, and only once per session, instead of always asking for permissions at program startup. Note: This is a hard feature to test because of the thousands of user security/permissions possibilities out in the wild; please let me know if you experience unexpected behavior when attempting to perform operations.
  • New /norestart command line switch to assist support staff who operate GWX Control Panel via remote assistance tools. (More elsewhere in this post.)
  • Clear Windows Update Cache feature now displays a list of temporary effects that clearing the cache will have on Windows Update.
  • Decoupled download folder size checking from rest of the informational stats to speed up the first screen refresh with current status.
  • Removed the Close 'Get Windows 10' App button because it confused some users and was somewhat redundant, since the Disable/Enable 'Get Windows 10' App feature implicitly exits or launches the GWX app as needed.

VERSION 1.4
Date: October 18, 2015
MD5 checksum: 959F1627A304DAE42305AA4D4D23B770
SHA-1 checksum: E58E0B2AD672793BCBD35D74E35EA4A2E371EA18
Changes: Greatly expanded checks and fixes for Windows 10 upgrade hijacking the Windows Update control panel. Added new Clear Windows Update Cache feature for fixing extra stubborn Windows Update issues.

VERSION 1.3
Date: September 12, 2015
MD5 checksum: 68E547DB5559E823CE4CF7A03650FF47
SHA-1 checksum: 782AEA51E6CD6DF1350FB69D389DB308D24DF681
Changes: Additional detection to determine if Windows is configured to allow OS upgrades via Windows Update. Now locates and reports the total size of the hidden Windows 10 download folder (usually C:\$Windows.~BT) and gives you the ability to open the folder in Windows Explorer.
Note: I've noticed that lots of people are still downloading the original download linke with a different filename (must be from direct links instead of people finding my downloads page), so I have replaced the version 1.0 EXE file on the server with a renamed copy of version 1.3 of GWX Control Panel. It is the same program now, with the same checksums, just with a different filename.

VERSION 1.2
Date: September 10, 2015
MD5 checksum: DC0F180C129E796A6E4D80861E0A5F9E
SHA-1 checksum: C93DF1C606EEAC929E48CA17B61DF117E65BB66F
Changes: Can now restore normal Windows Update behavior if it has entered 'Upgrade to Windows 10' mode.

VERSION 1.1
Date: September 7, 2015
MD5 checksum: D2BC4F41E644CB20A99661CE06709EE1
SHA-1 checksum: BCDB295F36AC2FA72575364F072D147BE6EFEBBE
Changes: Renamed to GWX Control Panel (GWX_control_panel.exe), now has the ability to launch/display GWX icon if app is enabled but not currently running.

VERSION 1.0
Date: August 30, 2015
MD5 checksum: EA1C2A2D8B8C659C852AC08582DE19CC
SHA-1 checksum: 55EFE9A57A9B7323B937BE5C12DC258C908B2DB8
Changes: First released version with a different filename.


Wednesday, February 10, 2016

Razer's Terrible Game Scanner Service

I'm no gamer but I love Razer Inc's peripherals. At both home and work I use their BlackWidow keyboards, DeathAdder mice, and Goliathus mousepads. They're reliable and they look and feel great. Sadly, today I discovered something about them that is not so great: The Razer Game Scanner Service.

I launched Sysinternals DebugView today to do some debugging and was surprised to see the following:

Some service installed on my computer was pumping tons of messages to my computer's debug console, writing the same message several times a second: "GameScannerService(RzProcessManager) (0xb20) (0xcb4)." It didn't take long to figure out that this service is part of the Razer Comms package, which must have installed along with the default Razer Synapse applications that you're prompted to install when you plug a new Razer device into your computer. I don't even have any games installed on this computer, so I obviously don't need this service- but I've got a much bigger problem: This is a Windows logo-certified commercial product that's installed on literally millions of machines around the world that's pumping thousands and thousands of lines of useless information to the debug consoles of those computers all the time. That's a huge waste of collective CPU resources, and it's just plain terrible design. Release-build software shouldn't ever dump anything to the debug console, ever. How in the world did this get past Razer QA and Microsoft's certification labs?

Since I don't need the service, I just disabled it in the Services control panel:
  1. Launch Services.msc.
  2. Locate Razer Game Scanner in the list of services.
  3. Double-click the service's entry, then click Stop and set the Startup type field to Disabled and then click OK.
Depending on the features you need, you might be able to simply uninstall Razer Synapse from the Programs and Features control panel.

Thursday, February 4, 2016

SOLUTION: How to Remove the "Launch Quick Remote" Icon from Your Android Lock and Home Screens

My Samsung Galaxy S5 phone received a couple of software updates earlier this week, and beginning yesterday a mysterious new icon appeared on both my lock screen and my home screen...


The icon obscured anything beneath it, and if I tried to drag it out of the way my phone's screen would dim like it was covered by a gray transparent overlay. Once this happened I was also no longer able to touch the screen or use the phone's physical buttons. The only way I could regain use of my phone was to pop out the battery and then pop it back in and restart.

This is what the icon looked like:
Here's how it appeared on my lock screen.

And this is how it appeared on my home screen, with the "Launch Quick Remote" bubble.

I had never seen this icon before, it covered up stuff on my screen, and touching it rendered the phone useless. What in the *bleep* was going on? My web searches came up empty, but I ultimately figured out how to fix the problem. It appears that the recent software updates AT&T pushed to my phone this week included an app called Peel Smart Remote, which seems to be some kind of universal remote app for your phone. I've never used it before, and have no desire to start. My first thought was to simply remove the app. Unfortunately, that's not possible on my phone- it's apparently part of AT&T's bundled image for the S5. I was still able to get rid of the icon though. Here's how:

Regaining control over your phone:
  • My phone is an AT&T Samsung Galaxy S5 (Model number: SAMSUNG-SM-G900A) and it's currently running Android version 5.0 (Lollipop). With that model it's really easy to just pop off the back cover, pry out the battery, and then replace it and power the phone back on. Once the phone boots back up you should be able to use your screen and buttons to perform the steps in the next section.
  • If your phone doesn't have a replaceable battery that you can easily pop out, commenter BiggestU passed along this tip: "You can power off by simultaneously holding down the power button and the volume down button for at least 7 seconds. Wait a minute, then turn the power back on again." (I will add that when I did this the phone restarted automatically, instead of shutting down- but it definitely does the trick.)
  • Another commenter, Renay, suggests that there might be a way to regain control of your phone without restarting: "When the screen is stuck, briefly press Vol-up, Home, and Power together. It will give control back immediately."
Getting rid of the icon:
  1. Once you have control over your phone, open up the Settings app and locate the Application manager.
  2. Locate Peel Smart Remote in the list and tap it to open its info.
  3. You will probably find that the app cannot be uninstalled. However, you should be able to disable it. Press the Disable button.

  4. When you return to the list of apps you should now find that Peel Smart Remote is disabled. If you restart your phone now, you should no longer see the icon.

That's all there is to it. I'm still left with some lingering questions, though:
  • Why are Peel/Samsung/AT&T putting this dumb icon on my screen without telling me what the *bleep* it's for?
  • What purpose is this thing supposed to serve anyway when tapping it makes my phone unusable? 
In the App Age, where both documentation and customer support are but distant memories, we may never know...

Monday, February 1, 2016

How to Move Plugins and Sample Libraries Without Reinstalling or Reconfiguring Anything

I was really frustrated when Waves and MusicLab omitted the ability for users to choose where to install their products in Waves Central and RealEight. Even though I've got a kickin' rad DAW PC, my primary system drive is a small SSD and I don't have room on it for anything other than my operating system and my personal files. Neither Waves nor MusicLab would help me move their products to a different drive (I asked), so I came up with a different solution...

In version 1.1.0.0 of UltimatePluginTool, I've added the ability to relocate entire folders to any other folder or drive on your computer in a way that doesn't affect your existing programs. If you've ever moved a Native Instruments product to another drive and then tried to use Maschine or Komplete Kontrol afterward, you know that relocating an application usually requires more work than simply dragging around some files. Well, the new Relocate Plugin Content wizard of UltimatePluginTool addresses those problems by leaving a symbolic link in the old location where your files used to reside which silently redirects any applications who look there to the new, correct location.

The wizard can move the files for you or just create the link if you've already relocated the files. The user guide included with the download has full instructions, and I've posted a video tutorial that walks you through three different examples of the Relocate Plugin Content wizard in action.

Even though I added this feature specifically because I wanted to move some of my music applications to a different drive, UltimatePluginTool's Relocate Plugin Content wizard isn't limited to music software. You can seamlessly locate pretty much any folder on your PC to another directory or drive. I've already used it to move a number of applications onto a secondary "programs and plugins" drive. Liberate your applications and unburden your drives!

Support UltimatePluginTool

I develop and maintain free software on my own time. I don't charge a fee because I want everyone to have equal access to my programs- but if something I wrote helped you and you'd like to express your thanks in a concrete way, you can send a donation of any amount via PayPal. Support from my visitors covers my hosting and licensing costs, and gives me incentive to keep putting out cool new utilities.

If you wish to help out, you can enter a donation amount below and then click on the Donate button. You do not need a PayPal account in order to donate! Just click the "Don't have a PayPal account" option on the page that comes up after you click the Donate button. The donation amount is in U.S. Dollars (USD).

Amount: $


Note: You might receive a personal "thank you" from me in response, but I won't sign you up for any mailing lists and you won't hear from me again unless you contact me first. Thanks for your consideration!