Windows Phone 8 Emulator runs as a virtual machine on Hyper-V

Since we’ve been digging around the leaked Windows Phone 8 SDK some of our more eager readers have noticed that there are some fairly restrictive requirements to fulfil in order to get the Windows Phone 8 emulator running.

We’ve read through the SDK documentation in detail and spent a little bit of time understanding the hardware and software requirements and have put together a little guide so that developers can check if their system will be ready to run the emulator, or if it’s time for an upgrade.

Full disclaimer here: I am not an expert on virtualisation, if you spot what you believe to be an error in the below, get in touch.

The Windows Phone 8 emulator is a little more complex than the Windows Phone 7 emulator, running as a virtual machine on Hyper-V, a new virtualisation technology available in Windows 8 (and Windows Server 2008). I won’t go into too much detail about Hyper-V as a Microsoft product, you can find out more information here, but an important requirement to note is that you will need a 64 bit processor.

From Windows 8 it’s easy enough to install Hyper-V, it is simply added as a feature from the control panel, but first we have to ensure that we have the right hardware.

Hyper-V on Windows 8 requires that your BIOS supports Hardware-assisted virtualisation, Second Level Address Translation (SLAT), and Hardware-based Data Execution Prevention (DEP). If that last sentence is another language to you, fear not, as Microsoft has a simple tool called ‘Coreinfo’ that will tell you if your system is ready. Follow the steps below to check your PC. Edit: As pointed out in our comments SLAT is only required when using Hyper-V with Windows 8, not for it's server counterpart.

  • Download the Coreinfo tool here from Microsoft, and extract the contents of the .zip file to the root of your C:\ drive.
  • Launch a command prompt window (type ‘cmd’ into Start if you’re not sure how to do that)
  • Change the directory of your command prompt to C: by typing ‘cd \’ and hitting the return key
  • Type ‘Coreinfo.exe –v’ into the command prompt and hit return
  • You will now see a tabled output similar to the screenshot below, which shows the information from my system.

  • Look for the ‘SVM’ row in the table, if you see an asterisk (*) next to it as in my screenshot, your system supports hardware-assisted virtualisation
  • Look for the ‘NP’ row in the table, if you see an asterisk next to it, your processor supports SLAT, if you see a ‘-‘ like in my screenshot, it does not.
  • Next type ‘Coreinfo.exe’ into the command prompt and hit return
  • This will give a much more detailed output, you need to find ‘NX’ in the left hand column and check for an asterisk next to it to confirm that your system supports Data Execution Prevention (I’ve highlighted the row in my screenshot below).

So in my case, I need to replace my aging processor when I upgrade to a Windows 8 machine if I want to be able to run the Windows Phone 8 emulator. If my research is correct, all Intel i3, i5 and i7 processors or later support SLAT, or if you prefer AMD, the Phenom family and above will meet requirements.

Of course bear in mind that this does not mean you cannot develop for Windows Phone 8 if you don’t meet the hardware requirements, there is nothing to stop you connecting a Windows Phone 8 device to your PC and deploying your apps directly to that.

Thanks to Ignacio Raffa (blog) and @robertmclaws for the emulator images

Jay Bennett