Removing emulator skins

eVC 4.0

Removing skins from the eVC emulators requires editing the registry.  As with any registry editing, you'll want to save a copy of the hive before you get started.  The sections of the registry we're intestested are listed below per platform.

Smartphone - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Tools\Platform Manager\{F384D888-F9AA-11D1-BB9E-00A0C9C9CCEE}\{2ABBB7CA-3274-4C34-9A26-97F9CC832257}\{F384D894-F9AA-11D1-BB9E-00A0C9C9CCEE}\{3F1E2DE3-78A1-4B0E-BDEB-F7088940C1A2}

Pocket PC - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Tools\Platform Manager\{F384D888-F9AA-11D1-BB9E-00A0C9C9CCEE}\{8786CEC0-7256-413A-BAA3-39B5F435A826}\{F384D894-F9AA-11D1-BB9E-00A0C9C9CCEE}\{3F1E2DE3-78A1-4B0E-BDEB-F7088940C1A2}

Each of these two registry keys point to the platforms default emulator image and its associated properties.  Under this registry path are additional GUID entries, each containing information for a emulator image and associated properties.  Find the emulator image you want to edit by look at the ImageName value of each key.  Note, the language packs are grouped by GUID.  The "Skins" value contains a semi-colon delimeted list of paths, each path containing exacly one xml document.

There are two options for removing the skin.  One is to edit the path listed in the "Skins" value to be a nonexistant path.  Simply adding a character (say a 'd') will cause the skin to no longer appear and is easily reversible later.  The other option involves adding a "blank" skin into the "Skins" value. 

Creating a blank skin is fairly simple.  Start with any emulator skin that already exists (like the one pathed in the "Skins" value).  Copy the xml file and the the bmp files into their own folder.  Rename the XML file to something distinctive and descriptive ("Blank_Skin.xml" or "Blank_VGA_Skin.xml").  Edit the xml file and replace the values for "displayPosX" and "displayPosY" with 0.  Now using your favorite image editing software create a black image the same size as the XML's "displayWidth" and "displayHeight" values.  Black is used because the skin xml does not map the color black to any actions and Microsoft will always use black as the skin's viewport color.  Save this image over the three copied bmps.  Now go back to regedit and add the path to the blank skin you just created.  Remember the "Skins" value is semi-colon delimited and must contain only one XML document per folder.

An example of a blank skin can be found here.

Visual Studio .NET 2003

Removing skins from the emulators in Visual Studio .NET 2003 requires the editing of xsl cache files.  Opening Visual Studios Tools -> Optoins -> Devices Tools -> Devices dialog after installing a new SDK or emulator add-on pack causes VS to generate these cache files.  The cache files are found at %ALLUSERSPROFILE%\Application Data\Microsoft\visualstudio\devices\addons.

Smartphone SDK devices - microsoft.smartphone2003.1.0.xml
Pocket PC SDK devices - Microsoft.PocketPC2003.1.0.xsl
Emulator add-on packs - sdkRollerDevice-{<GUID>}.xsl where <GUID> is the GUID of the emulator.

For all XML docs the node of interest is under ADDONS -> PLATFORMS -> PLATFORM -> DEVICE -> STARTUPSETTINGS -> STARTUP.  You'll want to edit the "Skin" and "SkinEngine" properties.  The "SkinEngine" property controls which skinning engine is used to display the skin and provide input into the emulator.  The "Skin" property specifies the actual skin to load.  By changing the property name Visual Studio will not display a skin arround the emulator.  Windows Mobile suggests adding "old_" to the start of the property name so that you can re-enable the skin later.

[Author: Dale Rolf]