Windows CE (.NET) とか IoTとか

組込みWindows と IoTの話を扱います

Windows Phone 7 Developer Tools 軽く動かしてみました。

Windows Phone 7 Developer Toolsの .isoファイルをダウンロードし、そこからインストールしたあと、ちょっとだけエミュレータなど動かしてみました。

今回使用したPCはCPUがCorei5 650 (3.2GHz)、チップセットインテルH55 ExpressでCPU内蔵グラフィックス使用したWindows 7 Home Premium (32bit)のものです。DirectX11ランタイムをインストールし、ディスプレイドライバ自体はDirexctX10レベルで一応動いています。

Windowsphone7tools_8

ウイザードで"Windows Phone 7 Application"プロジェクトを選択し、適当にプロジェクト名を入れるとXAMLファイルを編集する画面になります。ここから各種コントロールを(ツールボックスから)ドロップしUIを構築するのがアプリケーション作成の一つの方法です。

適当なところでビルドしデバッグ実行を開始すると、Windows Phone 7エミュレータが立ち上がります。タスクマネージャによると、実行ファイルはXDE.exe、検索すると

C:\Program Files\Microsoft XDE\1.0

内にありました。実行ファイル以外にも、デフォルトスキンっぽいファイルもここにあります。

画面キャプチャのようにブラウザで日本語も一応表示可能ですが、どうも中国語フォントのような気もします。日本語ロケールは入っていないかも(=UTF8のページしか表示できないかも)しれません。

今回はDirectXを利用して画面表示をしているためか??? スクロールや拡大縮小は非常に滑らかです。またその関係でx86エミュレータなのではないかと思っています。パフォーマンスに関してはXNA Game Studio ベースの3Dゲームのサンプルを動かしてみればよいのですが、ちょっとそこまでは試せませんでした。

============================================

ところで例によってエミュレータ用のNK.BINファイルがどこかにあると思って探したところ、

C:\Program Files\Microsoft SDKs\Windows Phone\v7.0\Emulation\Images\WM70C1.en-US.bin

が、それっぽいです。サイズはなんと125MBで、WEC7 PCTP付属のviewbinコマンドで見てみた(PB IDEではオープンに失敗する)ところ、

ViewBin... g:\WM70C1.en-US.bin
Image Start = 0x81000000, length = 0x07AEA328
  Start address = 0x81004D20
Checking record #6 for potential TOC (ROMOFFSET = 0xF858D5D4)
Checking record #84 for potential TOC (ROMOFFSET = 0xF96911E4)
Checking record #175 for potential TOC (ROMOFFSET = 0xFAC325B8)
Checking record #211 for potential TOC (ROMOFFSET = 0xFB62EBF0)
Checking record #392 for potential TOC (ROMOFFSET = 0x00000000)
Found pTOC  = 0x88ad49bc
ROMOFFSET = 0x00000000

ROMHDR ----------------------------------------
    DLL First           : 0x4001EEF2 
    DLL Last            : 0x467CF000 
    Physical First      : 0x81000000 
    Physical Last       : 0x88AEA328 
    RAM Start           : 0x88AEB000 
    RAM Free            : 0x88AFC000 
    RAM End             : 0x90000000 
    Kernel flags        : 0x00000000 
    Prof Symbol Offset  : 0x00000000 
    Num Copy Entries    :          2   
    Copy Entries Offset : 0x88AEA308 
    Num Modules         :       1463   
    Num Files           :       1482   
    MiscFlags           : 0x00000002 
    CPU                 :     0x014c (x86)    ← ココ
    Extensions          : 0x81001194

ROMHDR Extensions -----------------------------

と、やはりx86エミュレータでした。(※と書いてみたのですが、XDE.exeのオプションにはARMアーキテクチャの指定とか、VFPの使用の有無がありますねえ。真相はいかに?)

Windows Phone 7エミュレータの機能に関しては、MSDNにそこそこ詳しくのっています。
http://msdn.microsoft.com/en-us/library/ff402563(v=VS.92).aspx

Hardware-assisted Virtualization対応と書いてありますが、これはIntel-VTやAMD-Vのことですよね。

"XDE.exe" で軽く検索してみると、こんなページも見つかりました。

高橋 忍のブログ
Phone 7 に届くまで #32:Emulator 単体起動
http://blogs.msdn.com/b/shintak/archive/2010/08/22/10052840.aspx