Showing posts with label gaming. Show all posts
Showing posts with label gaming. Show all posts

Sunday, March 29, 2020

SOLUTION: "This user cannot play this software" when launching Animal Crossing: New Horizons


My family was excited about the Couch Co-op Multiplayer feature of Animal Crossing: New Horizons, but once the game finally downloaded we faced a couple days of frustration and disappointment due to the console announcing "This user cannot play this software" any time one of my kids attempted to play the game.

After a lot of web searching and poking through forum threads we're finally able to play this game as a family, and I wanted to describe how I fixed it in case other people out there experience the same problem.

We own two Switch consoles. The first one we got is the Nintendo Switch with Gray Joy-Cons, which belongs to the kids, and the second one is the Nintendo Switch with Neon Blue and Neon Red Joy-Cons, which belongs to me.

I purchased Animal Crossing: New Horizons on my Switch. After a very painful download process (it took three re-tries and some Internet settings tweaks before the game finally downloaded), I was able to play the game just fine. I reached the point where my character became the "resident representative," which is an apparent requirement before other users are able to visit your one-and-only island. However, after I quit my game and handed the console to my daughter, when she launched the game and selected her user profile, the switch said "This user cannot play this software," and that she would need to purchase a copy at the Nintendo e-Shop. My son had the same results when attempting to play using his profile.

The Cause: My Switch was not my "Primary Console"

Here are some quick details about our setup, so you can compare against your own situation to see if the solution that worked for me will work for you:

  • My copy of New Horizons was a digital purchase (not a cartridge).
  • My user profile on that console (the one with red and blue Joy-Cons) is a linked account, with full e-Shop privileges. My kids' profiles on that console are not linked; they're just local accounts.
  • Although this was "my" Switch, it was not the first Switch I had created a linked profile on. When we first bought the other Switch for the kids, I created a profile on that device and linked it to my Nintendo account so I could purchase games for them to play on it. This is important: Since I had already created a linked profile on my kids' Switch, as far as Nintendo was concerned, their Switch was my "Primary Console."
So here's what was happening: Even though I was the user who purchased New Horizons, since my Switch was not registered as my primary console, I was the only user allowed to play e-Shop-purchased games on that device. If I had downloaded New Horizons onto my kids' Switch instead, we would all have been able to play the game.

The Solution: Registering my Switch as the Primary Console

In order to make it so we could all play the game on my console I had to de-register my kids' Switch from my Nintendo account, and then register my own Switch as the primary. Here's how I did that:
  1. On a web browser I logged into my Nintendo Account.
  2. Once logged into the main Nintendo Account page, I clicked the Shop Menu link.
  3. On the Shop Menu page, I scrolled down and then clicked Deregister Primary Console.
  4. Next, I got onto my Switch, and under my own user profile, I opened the Nintendo eShop app. Nothing obvious happened; I didn't get any message saying, "This device is now your primary console" or anything. But apparently this was enough, because according to Nintendo, after de-registering from one Switch console, simply launching the eShop on another Switch where you have a linked profile will automatically register that device as the new primary.
As I write this my son's Animal Crossing character is running around and pulling up weeds on my island. I do hope this helps others running into the same issue. It would be nice if the Switch's error messages were more clear about what the real problem was.

Update: I forgot to add when initially writing this that if your Switch frequently says, "Checking if software can be played" when you launch a title, that's an indication that you are not using your registered primary console. I used to see this all the time when launching my digital downloads, but did not realize it was a hint that something was wrong. Now that my personal Switch is my primary device, my downloaded titles launch instantly.

Monday, June 12, 2017

How To Build Your Own NES Classic Edition That Plays Almost 500 Times As Many Games

In 2016 Nintendo released the NES Classic Edition, an adorable miniature replica of the Nintendo Entertainment System that connects to modern television sets and plays 30 iconic NES games. With an asking price of a mere $60 USD, the thing became a must-have among classic gaming enthusiasts- but Nintendo grossly underestimated demand. Any units that made it to store shelves sold out instantly (usually to scalpers who resold the consoles online at three times the cost), making Nintendo's most popular console in years their hardest to obtain at anything approaching a reasonable price. Nintendo then applied gasoline to the fire by discontinuing the NES Classic Edition altogether in early 2017.

Somewhat heartbroken by the reality that I would never get my hands on one of Nintendo's mini consoles (since I refuse to give scalpers my money), I started looking for alternatives- and I quickly discovered that for not much more money than the original retail price of the NES Classic Edition I could build my own mini NES that played not 30 but 791 NES games- and could also play over 14000 additional games from 37 platforms other than the original Nintendo Entertainment System. So I built one, and now I'm gonna show you how to build your own.


HOW IS THIS POSSIBLE?

Our ability to make super-cheap purpose-built classic gaming devices is thanks to the Raspberry Pi Foundation, a non-profit organization who developed a computing platform with the goal of making it inexpensive and easy to learn how to make digital products. The Raspberry Pi is a single-board computer that runs a (usually Linux-based) custom operating system, often with a specific purpose. In our case, we'll be using a gaming environment called RetroPie that runs on top of a special Linux build created for the Raspberry Pi.

If you're not a "computer person" or a Linux expert- don't worry. The following instructions will walk you through every step of the process. But for those of you who are interested, the system we are building is based upon the following technologies:
  • The Raspberry Pi 3 is the computer itself. It's a single board that includes a processor, RAM, audio/video support, and WiFi/Ethernet networking.
    The Raspberry Pi 3.
  • Raspbian is a Linux-based operating system that supports the Raspberry Pi hardware.
  • RetroPie is a collection of hardware emulators that runs on top of the Raspbian operating system.
  • EmulationStation is an emulator "front-end" that RetroPie uses to provide an attractive, unified interface for browsing and launching games that you can navigate entirely with your game controllers.
  • We will be using a pre-built RetroPie image simply called "Nacho's Image" that includes all of the above software in addition to the "ROMs" for literally thousands of classic video games.

BEFORE YOU START

In order to follow these instructions, you will need the following items:
  • A television set with an available HDMI port.
  • An HDMI cable for connecting the Pi to your TV (the Raspberry Pi has a standard full-sized HDMI connector).
  • A computer running Windows, Linux, or Mac OS that can read microSD cards or SD cards (most microSD cards ship with a full-sized adapter). If your computer doesn't have any card reading ports, a USB 3 card reader or USB 2 card reader will do the trick.
  • A very small Phillips-head screwdriver.
  • At least 70GB free space on your computer for downloading images and tools.

THE SHOPPING LIST

Depending on which controllers you pick and whether or not you decide to include a wireless keyboard, the cost of building your own fully-functioning supercharged mini NES runs anywhere from $110 to $194 USD- which is less than most people are paying for the 30-game NES Classic Edition on eBay right now. Here are all the individual components you need:
  • CanaKit Raspberry Pi 3 with 2.5A Micro USB Power Supply. ($43 USD). This kit includes the Raspberry Pi 3 board, two heat sinks, and a power supply. (The power supply included in this kit is for USA-style AC/DC household electrical outlets. If you are outside the United States, you might need a kit with a different power supply.)
  • Buffalo iBuffalo Classic USB Gamepad ($19 USD per controller). These are nice, weighty USB gamepads that work for most of the games included in the RetroPie image. I have two of these, but for a less expensive option there is also the Classic SNES USB Controller 2-pack, which is a $17 USD for two controllers. These aren't as heavy feeling as the iBuffalo controllers, but they do work. In order to control games that work better with analog sticks, the system supports Xbox controllers and many others, as well.
  • SanDisk Ultra 64GB microSDXC UHS-I Card with Adapter ($23 USD). The Raspberry Pi doesn't have any built-in storage. Instead it reads its operating system and files from connected microSD cards or USB drives. Having a fast microSD card is important because it affects the speed of your Raspberry Pi. A 64GB card is required for the specific RetroPie image I discuss later in this post, but you can get larger or smaller cards if you intend to use different images.
  • Old Skool NES case for Raspberry Pi 3 ($20 USD). There are a number of cases you can get for your Raspberry Pi (including the "official" Pi case), but this one is the closest in appearance to the original NES.
  • LoveRPi MicroUSB Push On Off Power Switch Cable for Raspberry Pi ($7 USD). The Raspberry Pi doesn't have a power button of its own. This cable sits between your power adapter and the Raspberry Pi, giving you a simple on/off toggle switch, which is much nicer than having to plug the Pi in every time you feel like using it.
  • OPTIONAL: Logitech K830 Illuminated Living-Room Wireless Touchpad Keyboard for Internet-Connected TVs ($63 USD). While not required for following these setup instructions or for playing most of the console and arcade games in the RetroPie image, some of the computer-based emulators do require keyboard and/or mouse input: ScummVM, Infocom, MS-DOS, for example. You also need at least a keyboard if you want to do any in-depth configuration of the underlying Raspbian operating system. This keyboard is great because it's wireless, has great rechargeable battery life, and has backlit keys. Logitech also makes a much less expensive keyboard (the K400) that is similar but uses AA batteries instead of built-in recharging, and lacks the backlit keys. Honestly any USB keyboard/mouse will do, but I really like the Logitech combo solutions, mainly because they're wireless and only take up one USB port.

ABOUT THE RETROPIE IMAGE I USE

I'm using a RetroPie image called "Nacho's Image" that comes pre-configured with nearly 15,000 games for 38 different consoles and platforms. The image requires a microSD card that's at least 64GB in size. Here's a quick rundown of the image's contents:
  • Amstrad CPC: 486 titles.
  • Atari 2600: 647 titles.
  • Atari 5200: 71 titles.
  • Atari 7800: 63 titles.
  • Atari Lynx: 77 titles.
  • Bandai WonderSwan: 112 titles.
  • Bandai WonderSwan Color: 95 titles.
  • Classic Arcade Games: 2158 titles.
  • ColecoVision: 140 titles.
  • Commodore 64: 2231 titles.
  • Commodore Amiga: 2 titles.
  • DAPHNE (Laserdisc Arcade Emulator): 16 titles.
  • Infocom (text adventure emulator): 79 titles.
  • Mattel Intellivision: 212 titles.
  • MS-DOS: 1168 titles.
  • MSX Computers: 649 titles.
  • NEC PC Engine (TurboGrafx-16): 303 titles.
  • Nintendo 64: 303 titles.
  • Nintendo DS: 100 titles.
  • Nintendo Entertainment System (NES): 791 titles.
  • Nintendo Game & Watch: 54 titles.
  • Nintendo Game Boy: 490 titles.
  • Nintendo Game Boy Advance: 1129 titles.
  • Nintendo Game Boy Color: 528 titles.
  • Nintendo Virtual Boy: 26 titles.
  • Philips Videopac (Magnavox Odyssey): 52 titles.
  • Scumm VM (adventure game emulator): 94 titles.
  • Sega 32X: 33 titles.
  • Sega Dreamcast: 3 titles.
  • Sega Game Gear: 249 titles.
  • Sega Master System: 267 titles.
  • Sega Mega Drive: 819 titles.
  • Sega SG-1000: 68 titles.
  • Sinclair ZX Spectrum (Timex): 382 titles.
  • SNK Neo Geo: 155 titles.
  • SNK Neo Geo Pocket: 49 titles.
  • Super Nintendo Entertainment System (SNES): 786 titles.
  • Vectrex (GCE/Milton Bradley): 21 titles.
Is this stuff legal?
There is no single clear answer on whether it's strictly legal to share and/or use the classic game ROMs included in this image or available elsewhere on the internet. In the United States some of these game ROMs are covered by Fair Use doctrine in the sense that if you own the actual physical cartridge or arcade cabinet you're allowed to keep and use back-ups of those ROMs as you please. But at the end of the day, many of the companies that made these games don't exist anymore, and there is no way to legally purchase the majority of these games in the USA or anywhere else. Most of these titles are essentially abandonware. You can easily remove individual games you're not sure about from the image as needed.

DOWNLOADING AND PREPARING THE RETROPIE IMAGE


In order to download the Raspberry Pi image, you need a BitTorrent client that supports magnet links, and you then need a way to write the downloaded image to your microSD card. There are dozens of free torrent clients and image burning tools for all major operating systems. I will recommend some specific tools I've used on Windows and Ubuntu Linux.

Recommended Programs
All of the utilities I use for these steps are free, and two of them are available for Windows, Mac OS, and Linux. My instructions assume you're using these tools.
  • Deluge is a cross-platform BitTorrent client.
  • Etcher is a cross-platform tool that burns image files to SD cards.
  • 7-zip is the tool I use to extract 7z, XZ, BZIP2, GZIP, TAR and ZIP files on Windows. There is a Linux version called p7zip-full. (Note: 7-zip isn't required for the specific RetroPie image I'm using for these instructions, but some other images available on the internet need to be extracted before you can burn them to an SD card.)
Instructions (for Windows, Linux, and Mac OS)
  1. Install the latest version of Deluge and Etcher if you haven't already. (If you are running Ubuntu Linux, follow the "Debian and Ubuntu based Package Repository" instructions on this page to install Etcher. You can install Deluge from the command line like this: "sudo apt-get update; sudo apt-get install deluge")
  2. Select the following magnet link with your mouse and copy it to your clipboard by pressing CTRL+C:

    magnet:?xt=urn:btih:
    01CC41757907698CEF75FD8BCCFB1407CE1CC4D1&dn=Nacho%27s%20Image.img

    Note: The above link may appear on multiple lines in your browser, but you must copy the whole thing (so select both lines of text if it appears that way on your screen).
  3. Launch Deluge. (Windows users: If you are prompted with a Windows Security Alert message about the Windows Firewall, make sure to that both the Private networks and Public networks boxes are checked, and then click Allow access.)
  4. Click the blue + icon and then click the URL button in the Add Torrents screen. If the magnet link is already in your clipboard it should pre-populate in the "URL" box. If there is no link listed next to URL, just press CTRL+V to paste the link there, and then click OK.

  5. Click Add to close the Add Torrents dialog. The program should now indicate that you're downloading a file called "Nacho's Image.img".
  6. Wait for the download to complete. Note: This could take several hours! Try to avoid quitting Deluge until the image is completely downloaded, but Deluge will resume the download the next time you run it if you ever have to stop the download while it's in progress. You will know that the download is complete when its status changes from "Downloading" to "Seeding."
  7. Insert the microSD card into your computer's card reader. Ignore any prompts to format the drive if they appear.
  8. Launch Etcher and click Select image, and then browse to the directory where Deluge downloaded the image (it defaults to the "Downloads" directory in your user profile, unless you changed this location in Deluge's Edit > Preferences screen). Select the file "Nacho's Image.img" and then click Open.
  9. Click the Select drive button in Etcher. If the program detects more than one potential external drive it will give you a choice. Be sure to choose the card reader containing your 64GB microSD card, and then click Continue.
  10. Once the image and target drive are selected, click Flash! Depending on the speed of your card reader, your computer, and even the card itself, burning the image can take anywhere from a few minutes to a couple of hours.
  11. Safely eject the drive from your card reader. This image is formatted with the Microsoft FAT32 file system, which is readable by all major operating systems, in case you ever need to add or remove games.

ASSEMBLING THE HARDWARE

Hardware setup is the fastest part of this whole project. To reduce the chance of damaging your Pi via electrostatic discharge, try to work on a clean, flat surface in an area with a hard floor instead of carpet.
  1. Unpack your Raspberry Pi board and the heat sinks. Remove the plastic film covering the adhesive under each heat sink and attach the heat sinks squarely on their respective chips. (The big chip is the CPU and the smaller one is for networking.)
  2. Place the Raspberry Pi board between the upper and lower halves of the case, making sure to align the screw holes that fasten the halves together with the holes on the Pi board, and also making sure the ports are facing the correct directions.

    - Ethernet and USB ports face the front "cartridge slot" of the Old Skool NES case.
    - The left side of the case is where power, HDMI, and audio go.
    - The rear of the case is the location of the microSD slot.
     
  3. Carefully fasten the two halves of the case together with the included screws, using a very small Phillips-head screwdriver. Do not over-screw.
  4. Connect the Pi's HDMI connector to an available HDMI port on your TV or HDMI switcher.
  5. Firmly insert the formatted microSD card in the slot at the rear of the device. The card will only go one way (note that the Pi's card reader is technically at the underside of the board, so the pins of the card will be facing up when you insert the card).
  6. Turn on your TV set and select the appropriate HDMI input.
  7. Note: Don't plug any game controllers into your Pi yet! We'll do that in the next section.
  8. Plug your power adapter into an available power outlet and connect it to the female connector of your On/Off Power Switch Cable. Then connect the male end of the cable to your Pi's Micro-USB power connector. If the power switch is already in the ON position you will see a bright red LED illuminated on the back of the unit. If the LED is not lit, press the power button to turn the device on. If everything is working properly you should be greeted by the Nacho image's introduction video. (The video's pretty cool, but you will probably grow tired of seeing it every time you boot your Pi. I'll explain how to disable this in a later section.)

CONFIGURING YOUR CONTROLLERS

Now that you've got your image burned and your device assembled you're almost ready to play some games.
  1. After the intro video plays, the RetroPie image drops you into the EmulationStation top menu. The first thing you'll want to do here is connect one of your USB game controllers.
  2. If EmulationStation doesn't recognize your controller, it will prompt you to configure it. You should see a screen like this. Press any button on the controller that you wish to configure.



    Note
    If you don't get this screen when you plug in the controller, your controller might already be at least partially recognized. You can press Start on your controller to bring up EmulationStation's main menu, then use the controller's D-pad (plus pad) to navigate down to Configure Input, and then press A to display this screen.
     
  3. Once you have selected a controller to configure, the "Configuring" screen appears. This screen prompts you to press buttons or move controls in the requested directions so that the emulators know how to map the in-game controls to your individual controllers. Press the corresponding physical controls on your controller as requested, and repeat the process until you reach the end of the list.


    Important
    Sometimes you might be prompted to use a button or control that isn't physically present on your current controller. In this case, just press and hold down ANY button on your controller until the screen skips to the next control. You won't be able to exit the configuration wizard until you get to the end of the list.
     
  4. Once you've reached the end of the list and OK is selected, press A on your controller to save the settings for the current controller.
  5. Repeat the above steps for any of the controllers you plan to use. You can re-configure your controllers at any time by pressing Start on your controller and choosing Configure Input from the main menu.

NAVIGATING EMULATIONSTATION AND PLAYING GAMES

EmulationStation is designed to be fully controllable with your game controller. You only need a keyboard (and sometimes a mouse) for specific emulators, or for doing Raspbian or RetroPie configuration.
  1.  Once the Pi is fully booted up, you land on the main EmulationStation screen:
  2. Move left or right with your D-Pad to choose which platform/console emulator you would like to use.
  3. Press A to see the list of games available for the selected system. Move down or up with your D-Pad to select a game. If you hold the Up or Down control for a while, the list will scroll very quickly, allowing you to navigate through very long lists.
  4. Once you have selected a game to play, press A.
  5. To exit any game and return to the EmulationStation menu, press START+SELECT on your controller at the same time.
  6. From the game list of any given platform, you can move left or right with the D-pad to cycle through the game lists of other platforms, or press B to return to the main EmulationStation screen.
  7. To gracefully shut your Raspberry Pi down you can press Start on your controller to bring up the main menu and then use the D-pad to select Quit, and press A. Then on the Quit screen, select Shutdown System and press A.

    Note: I personally rarely do this. Normally I just toggle the on/off switch on my power switch cable. Knowing this graceful shutdown process is useful in cases where you want to configure Raspbian or RetroPie, though. (You would use the Quit EmulationStation option instead of Shutdown System in these cases. Doing so drops you to a terminal prompt, which requires a keyboard to navigate.)

ADDITIONAL NOTES AND TROUBLESHOOTING

Note: Some of these steps require that you have a USB keyboard connected to your Pi!

Jittery video and audio at first-time use
The first time you connect your Raspberry Pi to your television and start up a new image, it can take a few minutes for the device to completely configure its video and audio settings. So you might notice some flickering video or choppy audio for the first few minutes that you use the system. This should clear up automatically after a short while. If it doesn't clear up, you might need to change some settings in the RetroPie configuration screen.

No audio when connected to an HDMI television set
First off, you should always make sure your TV is powered on and has the right HDMI port selected before powering on your Raspberry Pi. (If you turn on the TV or select the input port after the Pi has booted, the Pi might not detect your TV's audio connection.) Try doing this first (rebooting Pi after the TV is already on and selected) before continuing with the next steps.

The default settings of this image support most HDMI TVs, however some televisions use a different way of "presenting" their audio inputs to connected devices in a way the default RetroPie settings don't recognize. I have had to make the following change in order to get RetroPie to work on one of the TVs in my house.
  1. With the Raspberry Pi powered on, exit EmulationStation by pressing F4 on your keyboard or bringing up the Main Menu and choosing Quit > Quit EmulationStation.
  2. At the command prompt, enter the following command:

    sudo nano /boot/config.txt
     
  3. Navigate down to the line that says "#hdmi_drive=2". Remove the # so the line looks as follows:

    hdmi_drive=2
     
  4. Press CTRL+X, and then press y to save the change.
  5. Type the following command to reboot the device:

    reboot
Game doesn't work as expected
While most of the games in this image work great, there are a few that simply don't work, and others that might have special requirements. Here are some things to check and/or keep in mind if a game isn't working as expected:
  • Some games might require a different controller- for example if your controller has no analog sticks but the game was designed for analog controls, you won't have an ideal experience. Try switching out controllers if you suspect this is the case. I haven't figured out what's required to properly control Nintendo DS games, for example. Most of those games assume you have a stylus for touch control, but I don't know how that translates to the emulator included on RetroPie. If you know the answer, please leave a comment!
  • Some games/emulators require a keyboard or mouse. For example, all of these emulators assume you have a keyboard connected: MS-DOS, ScummVM, Infocom, VideoPac.
  • Sometimes the default button mappings might not be what you expect for a specific game. Try using X/Y instead of A/B, for example. Many of the games and emulators have configurable mappings, although the details of this are out of scope for this post. But you might look into custom mappings if you don't like the default control settings.
  • If you have multiple controllers connected to your Pi, all of them can navigate the main menus but usually only one of them is "Player 1" and another is "Player 2", etc. Make sure you're holding the correct controller if the controller doesn't seem to respond during gameplay.
  • Some games just don't work right on the Raspberry Pi, or with any current emulator. Try doing a web search for the specific game to see if other Pi users have gotten it to work. The RetroPie image you downloaded is customizable. If you find any games that you confirm just don't work, you can remove them and their associated metadata from your microSD card to free up space for other games.
Stop playing the "Nacho's Image" video every time the Pi starts up
If you'd like to skip the video that plays by default every time this image boots up, you can change this in the RetroPie settings. Note that these settings require a USB keyboard attached to your Pi.
  1. With the Raspberry Pi powered on, exit EmulationStation by pressing F4 on your keyboard or bringing up the Main Menu and choosing Quit > Quit EmulationStation.
  2. Enter the following command (note that unlike Windows, Raspbian is case-sensitive):

    cd /home/pi/RetroPie-Setup
    sudo ./retropie_setup.sh

     
  3. The RetroPie-Setup Script screen appears. You can use the arrow, TAB, and ENTER keys to navigate menus in this program, and you can also use hotkeys (any letter highlighted in red) where available to select options. On the first screen, select the Configuration / tools option.
  4. On the Choose an option screen, use your arrow keys to scroll down to the splashscreen - Configure Splashscreen option and press ENTER.
  5. Select Choose splashscreen.
  6. Select RetroPie splashscreens.
  7. Choose one of the available splashscreens listed here. I use the one called retropie-2015.png. It looks like this:
  8. After making your selection, you should see a message that says "Splashscreen set to" and the path of the file you selected. Press ENTER.
  9. Exit the RetroPie Setup program. You can do this by pressing Esc or using a Cancel option, where available.
  10. Enter this command to reboot your Pi:

    reboot
Enabling WiFi networking
While you do not need to connect your Pi to a network in order to use the preconfigured games in this image, you might want to enable Wi-Fi networking in order to remotely administer and customize your device. There is already a pretty good post about how to do this at the RetroPie site.

Note: When the RetroPie documentation talks about "the Retropie menu in emulationstation" they mean you use the left/right controls on your D-Pad to select RetroPie as if it were a console/platform:

And when you press A from there, you see this menu:

Important: Enabling Security on your Raspberry Pi
Although recent versions of the Raspian OS disable SSH access by default, I have noticed that it is enabled in the RetroPie image that I use. If you never connect your Pi to a network, this isn't a big deal, but if your device is connected to either your Ethernet or Wi-Fi networks, this is a potential security risk. To protect yourself, you should either disable the SSH feature if you're not going to use it or change the device's default password so your device can't be easily overtaken by a scripted attacker.

The raspi-config tool included with Raspian is where you can disable/enable SSH. You can get to it from a command line by exiting EmulationStation and running this command:

sudo raspi-config

You can also access it by selecting RetroPie from the main EmulationStation screen and choosing the "Raspi-Config" option from the RetroPie menu. You control the SSH setting inside the "Interfacing Options" screen of raspi-config. This page explains the process in detail.

You should also change the default password of your device if you ever plan to leave it connected to a network. If you're familiar with the Linux passwd command, you can use that. Otherwise you can use the Change User Password option in raspi-config to do this.

(The default username in Raspbian is pi and the default password is raspberry.)

I hope you found this guide helpful. Game on!

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.

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.

Sunday, March 22, 2015

SOLUTION: Disabling Tap-to-Click on Alienware 13 Gaming Laptop Touchpad

UPDATE (October 1, 2017): This post is about the "R1" release of the Alienware 13 on Windows 8.1. Things have changed with the "R2" models and Windows 10. Please see my newer post about how to disable tapping with that configuration.

It's March of 2015 and I just received my brand new Alienware 13 laptop yesterday. Overall I've been pleased with this little machine, however I became quite concerned when I realized I couldn't locate a feature I had apparently taken for granted on all other laptops I had owned before: The ability to disable Tap-to-Click.



THE PROBLEM


On most Windows laptops, you can get to your touchpad settings by clicking a special icon on the system tray or by opening a special tab inside the operating system's Mouse control panel. But I came up dry trying to locate any touch pad configuration options in any of the usual places:

No special icon in my system tray:


No extra tabs in the Mouse control panel:


Only generic Microsoft device entries under Mice and other pointing devices in the Windows Device Manager:


No AlienTouch app in the AlienWare Control Center (I don't know if this is supposed to be available on the Alienware 13, but it's not there anyway):


Perhaps Dell simply hadn't included the right driver in my OS build? I took a look at the Alienware 13 downloads page and became hopeful when I discovered a relatively recent "Synaptics Touchpad Driver" installer. The driver installed (as in, it successfully copied driver files to my hard drive), but even after a system restart there was no trace of any way to change my touchpad settings.

After some internet searches I discovered that some other Alienware 13 owners have had the same problem, although many other people with Alienware 13s apparently do have working Synaptic drivers installed that have touchpad configuration options.

So what's going on? My current theory is that not all Alienware 13s out there have the same touchpad microcontroller. Most of them seem to have Synaptics touchpads (in which case, the drivers from Dell's site should work), but some of them (like mine) almost certainly do not. I don't know who made the touchpad circuitry in my laptop, but luckily I don't have to.

THE SOLUTION


If you have a touchpad that fully conforms to Windows 8.1's specifications, you should be able to change important settings inside the Windows 8 Modern (formerly called "Metro") user interface. Here's how:

First bring up the Windows 8 Start screen, and type the word mouse. When the "Mouse and touchpad settings" entry appears, click it to open the PC and Devices screen to the appropriate page.


The PC and Devices screen opens to the Mouse and touchpad page. Scroll down to the bottom and select Turn off taps in the list control under where it says "To help prevent the cursor from accidentally moving while you type, turn off taps or change the delay before taps work:"


Mission accomplished, bro.

While I was doing my internet searches, I saw a number of Alienware owners complaining that they weren't able to find a way to make it so that they could continue to use their touchpads while they had an external mouse plugged in. There is an option on this same screen called "Leave touchpad on when a mouse is connected," and I figure that should help those folks.

Now that I've figured out the touchpad situation, I'm really pleased with this little computer. It is by no means a desktop replacement, but it's quite good for playing World of Warcraft and Minecraft at 1920x1080 full-screen, doesn't get too hot, and is the quietest laptop I've ever owned.