NITRO help welcome

ensata NITRO Software Emulator

ensata NITRO Software Emulator はNITROアプリケーション開発のためのデバッグ用ターゲットの１つとして開発されました。

概要は以下の通りです

  • 実機に近い正確なレンダリングを実現しています

  • CodeWarrior for NITROのデバッグターゲットとして機能します。* 1

  • NITRO-Charactorのビューワーとして機能します。* 2

  • プリントデバッグ出力コンソールを実装しています

* 1詳細はCodeWarrior for NITROのドキュメントをご確認下さい。
* 2詳細はNITRO-Charactorのドキュメントをご確認下さい。

Copyright (C) 2004 Nintendo


NITRO help requirement

必要なシステム構成

  • 対応ＰＣ：
    Intel Pentium プロセッサ
    256MB以上のRAM
    DirectX9対応ビデオボード (D3Dレンダリング機能を使用する場合)

  • 対応ＯＳ：WindowsXP/2000 (Service Pack 4 + IE6)

  • 必要なランタイム：
    DirectX8以上 (DirectInputおよびDirectSoundのみを使用する場合)
    DirectX9以上 (上記に加え、Direct3Dの機能を使用する場合)

  • 必要機器：マウス、DirectInput対応ゲームパッド
    (*) ゲームパッドが無い場合はキーボードで代用できます

(注意) 処理はかなり重めです。できるだけ高性能なPCを使用することをお勧めします。


NITRO help compatiblity

NITRO との互換性

ensata NITRO Software Emulator の実装状況

記載の無い項目は実装済み
  • ARM 946ES
    • CP15
      • Register1 TBITロード仕様のコントロール…未実装(常にenableに設定)
      • Register1 Cache置換アルゴリズム…未実装(Round-robinのみ実装)
      • Register13 Trace process identifier register…実装予定なし
      • Register15…実装予定なし
    • CPU
      • LDC, STC, CDP命令…未実装
  • メモリ
    • NITROカード…未実装
    • AGBカートリッジ…未実装
    • 共有ワークRAM…未実装
  • 表示
    • 強制ブランク…未実装
  • ３Ｄグラフィックス
    • ジオメトリ
      • ジオメトリエンジンの処理は処理時間ゼロで実装されています。
      • 計算オーバーフロー時の座標値は実機と大きく異なります。
      • ポリゴンリストRAM、頂点RAMのオーバーフロー時のカウンタ値は更新されません(実機は更新されます)。
      • 実機のポリゴンオートソートの仕様は実装されていません。
    • ソフトウェアレンダリング
      • 未実装機能なし。(ただし、全く同じ画像にはなりません。)
    • D3Dレンダリング
      • アトリビュートバッファはエミュレートしていません。
        • フォグイネーブルフラグ、ポリゴンID(半透明、不透明とも）は無効です。
      • クリアレジスタのフォグイネーブルフラグは無効です。
      • ビデオボードのWバッファが使えない場合、Wバッファリング時もZバッファを使用します。
      • クリアイメージによる初期化は、ピクセルシェーダー2.0以上に対応しているビデオボードでは 有効になります。ただし、ビデオボードがWバッファに対応していない場合にWバッファリングを 使用した場合は、無効になります。
      • 四角形ポリゴン
        • 四角形ポリゴンはトライアングルとして描画しています。
          このため、４頂点が同一平面上にない場合は実機とは表示が異なります。
          また、頂点カラーについても同様の制約があります。
          ただし、実機でもこのような四角形ポリゴンの表示は不正確になりますので、
          このような四角形ポリゴンは避けるべきです。
      • 半透明ポリゴン
        • 同じポリゴンIDの半透明ポリゴンが重なる場合は上書きされない機能はエミュレートしていません。
        • フラグメントのフォグイネーブルフラグとアトリビュートバッファのフォグイネーブルフラグとのAND演算結果がアトリビュートに書き込まれるという仕様はエミュレートしていません。
      • シャドウポリゴン
        • 描画シャドウポリゴンの描画時に、アトリビュートの不透明ポリゴンIDと描画用シャドウポリゴンの半透明ポリゴンIDが異なる場合のみ描画されるという仕様はエミュレートしていません。 このため、影を落とすオブジェクトに自身の影が落ちる場合があります。
        • フォグはフラグメントのフォグイネーブルフラグにより頂点カラーにフォグカラーが合成されます。
        • 精度誤差により、描画シャドウポリゴンが表示される場合があります。
        • ステンシルに対応していないビデオボードでは、マスクが機能しません。
      • テクスチャ
        • デカルモード
          • At=0の場合およびAt=31の場合の例外処理はエミュレートしていません。 このため、若干色合いが異なる場合があります。
      • αブレンディング
        • 出力α値もα値でブレンドされます(実機ではmax[As,Ab])
        • 例外処理はエミュレートしていません。
          • このため、カラーバッファのαが０(Ab=0)の場合でもフラグメントのα値でαブレンド処理されます。 実機では、カラーバッファのαが０(Ab=0)の場合は、 フラグメントのα値が０でなければカラーがそのまま描画され、 表示上は不透明となる場合があります。
        • DISP3DCNTでアルファブレンドをOFFにした場合、正しくポリゴンが表示されない場合があります。
      • エッジマーキング
        • 実装の制約上、エッジマーキングの線が途切れる場合があります。
        • ポリゴンが交差した部分にエッジが表示される場合があります。
        • 抜き部分と隣接する不透明部分に、エッジが表示される場合があります。
      • フォグ
        • フォグカラーはレンダリング前に頂点カラーと合成しているため、 実機と効果が異なる場合があります。
      • アンチエイリアシング
        • エミュレートしていません。
  • タイマー
    • プリスケーラ選択が1分周時のタイマカウント値…未実装
  • 割り込み
    • ジオメトリコマンドFIFO割り込み…未実装
    • NITROカードIREQ_MC割り込み…未実装
    • NITROカードデータ転送終了割り込み…未実装
    • ARM9/7FIFOノットエンプティ割り込み…未実装
    • ARM9/7FIFOエンプティ割り込み…未実装
    • ARM7割り込み…未実装
    • カートリッジ割り込み…未実装
  • サブプロセッサ(ARM7)
    • ハードウェアレベルでの実装予定は無し(ソフトウェア・パッチ)


NITRO help limitation

制限事項

  • NITROアプリケーションのデバッグにおいて、ensata NITRO Software Emulator で動作することは、実機で動作することを保証するものではありません。

  • サブプロセッサ(ARM7)の処理をバイナリレベルでエミュレーションしていません。したがって、任意のサブプロセッサ用バイナリコードをエミュレーションすることはできません。

  • 実時間処理の正確なエミュレートは実装されていません。このため、実時間のタイミングに依存するようなアプリケーションは、実機と大きく動作が異なる場合がありますので特にご注意下さい。

  • 3D描画には２種類のエンジンを搭載しています。１つはソフトウェアによる描画エンジンです。 できるだけ実機に近い画像がでるようエミュレーションしていますが、同じアルゴリズムを使用しているわけではありませんので、若干差異がでます。 もう１つはDirect3D9を使った描画エンジンです。処理は上述のエンジンより高速ですが、ビデオボードやそのドライバの影響を受けますので、実機の映像とは差異がでます。

  • スプライト、およびポリゴンのラインズオーバーはエミュレーションしていません。


NITRO help how to get start

ensata NITRO Software Emulator の起動

  1. ensataをインストールしたフォルダから、Release/ensata.exeを起動します。

  2. ensataを初めて起動すると、アクティベーション画面が立ち上がります。

    NTSC-ONLINEかまたは、Software Development Support Group (Wario WORLD)のいずれかアカウントのあるURLへアクセスして、キーの発行ページへ移動して下さい。
    そしてアクティベーション画面のChallenge Keyをキーの発行ページのチャレンジキーと書かれたエディットボックスにコピーして、 送信ボタンを押して下さい。

    サーバから返されたレスポンスキーをアクティベーション画面のResponse Keyへ貼り付けてOKボタンをクリックして下さい。アクティベーションが成功するとensataが起動します。

注意！
アクティベーションする条件は以下の通りです。
  • アクティベーション情報を含んだファイルが存在しない。あるいは、その内容に誤りがある場合。
  • メジャーバージョンアップでensata.exeを上書きコピーした。
  • 使用期間が過ぎた。(前回のアクティベーションから１８０日後)
またensataには使用期間とは別にバージョン毎に使用期限が設定されています。 使用期限が過ぎた場合は、ensataの最新版を入手して下さい。


NITRO help how to execute

ensata NITRO Software Emulator 上でのアプリケーションの実行

NITRO実行ファイルのデバック

コントロールウィンドウで以下の操作が可能です。
  1. ボタン操作
    • 停止位置から命令を実行します。
    • 実行エンジンを停止します。
    • 実行エンジンをリセットします。
    • 直前に読み込んだファイルを再度読み込みます。

  2. メニュー操作 (実行系)
    • [NITROファイルの読み込み]…リンク先をご参照下さい。

    • [再読み込み]…リンク先をご参照下さい。

    • [最近使ったファイル]…リンク先をご参照下さい。

    • [NITROソフトの設定・保存]…リンク先をご参照下さい。

    • [開始]…停止位置から命令を実行します。

    • [停止]…実行エンジンを停止します。

    • [リセット]…実行エンジンをリセットします。

  3. メニュー操作 (設定系)
    • [デバッグ出力]…リンク先をご参照下さい。

    • [LCD]…画面表示の倍率（固定倍率）と向きを設定できます。

    • [セパレータパネル非表示]…リンク先をご参照下さい。

    • [ツールバー]…ツールバーの表示、および配置をコントロールします。

    • [D3D]…リンク先をご参照下さい。

    • [キーコンフィグ]…リンク先をご参照下さい。

    • [RTC設定]…リンク先をご参照下さい。

    • [バックアップメモリ]…リンク先をご参照下さい。

    • [ヘルプ]…今ご覧頂いているヘルプを表示します。

    • [バージョン]…ensataのバージョン番号を表示します。


NITRO help how to open

NITRO実行ファイルを開く

NITRO実行ファイルを開くには４つの方法があります。
  1. メニュー“実行”から、“NITROファイルの読み込み”を選ぶとファイルオープン・ダイアログが開きます。
    ここで目的のファイルを選び、“OK”ボタンを押すと ファイルが読み込まれます。

  2. Windowsのファイルエクスプローラから目的のファイルをドラッグ、ensata上でドロップするとファイルが読み込まれます。

  3. ensata を立ち上げて、実行ファイルを読み込むと、その瞬間から再読込みボタンがアクティブになります。
    同じ実行ファイルを読み込みなおす場合は、再読込みボタンが便利です。

  4. ensata で読み込んだ実行ファイルはファイル履歴に保存されます。 メニュー“実行”から“最近使ったファイル”をポイントするとファイル履歴を参照できます。

  5. ensataを起動する時に、引数として実行ファイルを指定しておくと、ファイルが読み込まれた状態で立ち上がります。
    この時、同時にオプションで -r を指定しておくと、ファイルを読み込んだ後に、続けて実行を開始します。
    また、実行ファイルを引数としてensataを起動した時に、既に起動しているensataがあれば、ファイルはそのensataに読み込まれます。

読み込み可能なファイルは.srlファイルおよび.enpファイルです。


NITRO help how to play

ゲーム画面の操作

あらかじめ、NITROのキーがPCのキーボードに割り当てられています。(デフォルト設定)
  • ↑キー

  • ↓キー

  • ←キー

  • →キー

  • start "t"キー

  • select "e"キー

  • debug "d"キー

  • A "a"キー

  • B "b"キー

  • X "x"キー

  • Y "y"キー

  • L "l"キー

  • R "r"キー

DirectInput対応ゲームパッドが接続されていれば、ensataはそちらの入力を優先して取得するようになります。
また、ゲームパッドがアナログキー入力やハットキー入力対応の場合、これらを取得して十字キーに対応させることができます。

デフォルト設定は変更することができます。
メニュー“設定(S)”から“キーコンフィグ(K)”を選ぶとキーコンフィグ・ダイヤログが開きます。

デフォルトボタンを押すと、上述のデフォルト設定に戻ります。
設定をカスタマイズするには、割り当てたいキーを押しながら、設定したい項目のボタンをマウスでクリックします。

例えば、NITROのAボタンにPCのエンターキーを割り当てたい場合は、キーコンフィグ・ダイヤログを開いてから、 PCのエンターキーを押しながら、キーコンフィグ・ダイヤログの“A”ボタンを押します。
ゲームパッドの場合も同様です。

またこの時、何もキーを押していない状態でキーコンフィグ・ダイヤログのボタンを押すと、 NITROのそのボタンに設定したキー割り当てが外れます。

アナログキー入力を割り当てたい場合には、キーコンフィグ・ダイヤログを開いた状態で、任意の方向にアナログキーを倒しながら、キー割り当てを行って下さい。
またハットキー入力については、その十字キーの一方向をNITROに割り当てる事で、その他の方向も自動的に決定されます。

アナログキー入力のカスタマイズに関して、その閾値を設定する事ができます。
キーコンフィグ・ダイヤログの“編集”ボタンを押すと、閾値を入力できるようになります。
設定後に再び“編集”ボタンを押す事で、閾値の入力が終了します。

他のキーをカスタマイズする場合は、続けてキー設定の操作を繰り返して下さい。
最後に“OK”ボタンを押した時に、カスタマイズした設定が反映されます。

注意が必要なのは、キーのオン・オフがトグル動作するような(例えば、CapsLock)キーは割り当ててはいけません。
キーコンフィグ・ダイヤログの各ボタンには現在割り当て済みのキーの状態を示すインジケータが付いています。
  • キーが押されていない

  • キーが押されている

上述のトグル動作をするようなキーを割り当てた場合、キーを離した後もこのインジケータが点灯したままになります。
ensataはキーコンフィグ・ダイヤログを開くときに、キースキャンをして常時オンになってるキーを見つけた場合、そのキーを選択できなくします。

*NITRO実機にはアナログキー入力は存在しません。

タッチパネル入力をしたい時は、ensataのサブ画面上にマウスポインタを置いた状態で、マウスのクリック・ドラッグ操作を行って下さい。


NITRO help debug print

デバッグ出力

メニューからデバッグ出力を選択すると、デバッグ出力ウィンドウが開きます。
ソースコードにてOS_Printf 関数を使い、結果をこのウィンドウに出力することができます。
OS_Printf 関数の詳細についてはSDK 中のマニュアル等をご参照下さい。

デバッグ出力ウィンドウで操作できるメニューは以下の通りです。
  • [ファイル]-[名前を付けて保存] : デバッグ出力ウィンドウの画面をテキストファイルに出力します。

  • [編集]-[クリア] : デバッグ出力ウィンドウの画面をクリアします。

  • [設定]-[ファイルログ出力] : チェックが付いていない状態で選択すると、出力するファイル名を指定するダイアログが開きます。
    チェックが付いている状態で選択すると、チェックが外れてファイル出力も停止します。
    また、チェックが付いている状態でデバッグ出力ウィンドウを閉じても、ファイルへの出力は継続されます。


NITRO help rendering

ensata NITRO Software Emulator のレンダリングと画面更新

DirectX9のランタイムがインストールされたPCでensataを起動すると、メニュー“設定”の“D3D”が有効になります。
“D3D”にはサブメニューがあり、それぞれの項目が有効か無効かを示すチェックマークが付きます。
  • “D3Dフレーム”はensataで生成されたフレーム画像の更新メソッドを選択します。
    チェックが付いている場合はフレーム画像の更新にDirectX Graphicsの機能を使います。
    チェックが付いていない場合はフレーム画像の更新にWindows GDIを使います。

  • “D3Dレンダリング”は３Ｄレンダリングのメソッドを選択します。
    チェックが付いている場合は３ＤのレンダリングにDirect3Dの機能を使います。
    チェックが付いていない場合は３Ｄのレンダリングをソフトウェアで処理します。

DirectXのランタイムがインストールされていなかったり、そのバージョンが８以下だった場合は“D3D”が淡色表示され選択できなくなります。
この場合ensataはソフトウェアで３Ｄのレンダリングを行い、Windows GDIを利用して、画像をPCのVRAMへ転送します。


NITRO help realtimeclock

RTCの設定

ダイアログから、RTC（Real Time Clock）の設定ができます。

日付と時刻を、それぞれ設定します。

日付は年、月、日に、時刻は時、分、秒の単位に分かれています。
どちらも設定したい部分を方向キーの左右またはマウスのクリックで選択してから、方向キーの上下で増減させるか、直接数字を入力して設定して下さい。

日付の場合は、エディットボックス右端のリストボタンを押すと展開するカレンダーから、マウスで任意の日を選択するか、方向キーで選択してEnterキーで決定する操作によっても設定できます。

また時刻の場合も、選択した項目の値を、右端のボタンで増減させる事によっても設定ができます。

「現在時刻を使用する」チェックボックスにチェックを入れると、
日付と時刻全てにPCのシステム時刻が適用されます。
ただし、ここにチェックが入っていると、日付も時刻も設定ができない状態になります。

設定し終えたら、“OK”ボタンか“適用”ボタンを押す事で設定が反映されます。

設定完了時に“OK”ボタンを押すと、設定が反映された状態でダイアログが閉じます。
“適用”ボタンを押すと、設定を直ちに反映できますが、ダイアログを開いたままにする事ができます。

＊ここでの設定はRTCのエミュレーション上で有効なものであり、PCのシステム時刻を変更するものではありません。


NITRO help how to backup

バックアップメモリ

バックアップメモリの読み込み・保存と、外部デバッガ使用時でのイメージ出力の設定ができます。

  • 読み込み….ramファイルを読み込みます。

  • 保存…バックアップメモリの現在の状態をバイナリ形式(.ram)で保存します。

  • イメージ出力…この項目にチェックを入れた状態で外部デバッガを使用すると、0x20000000番地以降にバックアップメモリの内容が出力されます。
    メモリダンプを利用する事で、出力されたバックアップメモリ内部のイメージを読み書きする事ができます。


NITRO help how to set and save NITRO soft

NITROソフトの設定・保存

ここでは、ensataプロジェクトファイルの設定と保存を行います。

  • ensataプロジェクトファイルとは

    ensataプロジェクトファイル（.enpファイル）をensataで読み込む事により、NITRO実行ファイル（以下.srlファイル）とバックアップメモリファイル（以下.ramファイル）を同時に読み込んで実行する事ができます。同じNITROアプリケーションを、異なる設定で動かしたい場合などは、それぞれ目的に応じて設定したプロジェクトファイルを作成しておくと便利です。

  • ensataプロジェクトファイル作成手順

    1. NITROソフトの設定・保存ダイアログを開きます。

    2. ensataプロジェクトファイル名の“参照”ボタンを押して、ファイル名と保存する場所を指定します。

      ファイル拡張子は.enpで、自動で設定されます。

    3. バックアップメモリファイル名と保存場所を確認します。

      ensataプロジェクトファイル名と保存場所を決定すると、その下にあるバックアップメモリファイル名と保存場所も自動的に設定されます。変更したい場合は、“参照”ボタンを押して指定し直して下さい。
      ファイル拡張子は.ramです。

    4. ensataプロジェクトファイルの設定を決定します。

      • 「自動保存」チェックボックスにチェックを入れると、.srlファイルが読み換えられた時に、その時点でのバックアップメモリの状態が、自動的に.ramファイルに保存されるようになります。

      • 「srlファイルを相対パスで保存」にチェックを入れると、.srlファイルへのパスを、ensataプロジェクトファイルからの相対パスで保存します。
        同様に、バックアップメモリファイルの設定で「相対パスで保存」にチェックを入れると、ensataプロジェクトファイルから.ramファイルへの相対パスを保存します。
        これらのチェックを外すと、絶対パスで保存します。

    5. ensataプロジェクトファイルの作成完了

      設定し終えたら“OK”ボタンを押して下さい。
      ensataプロジェクトファイルが、設定が反映された状態で保存・作成されます。


NITRO help How to change the skin

セパレータパネルのスキンの変更

NITROは２つの画面を持っています。１つはメイン画面。もう１つはサブ画面です。
これらの画面は物理的にも離れていて、連続した１つのパネルではありません。

ensataでは、この雰囲気を表現するためにメイン画面とサブ画面の間にセパレータパネルと呼ぶ領域が設けられています。
このパネルにはスキンインターフェースが組み込まれていて、ユーザが任意に差し替えることが可能です。

インストールした直後にensataを起動すると、ensata/skins/default_skin.bmpが読み込まれて表示されるはずです。
ここでは、スキンの変更方法を説明します。

  1. まず、スキンを作成します。フォーマットはWindows BMP形式、24ビットカラー、画像の幅が256ピクセルであることが条件です。
    画像の高さは特に制限していませんが、推奨値は100ピクセルです。
    この条件にあった画像を適当なペイントソフトで作成して下さい。

  2. (1.)で作成した画像をensata/skinsフォルダにコピーします。

  3. 最新版のensata.exeを一度起動し、そして終了して下さい。
    必ず終了した状態で以下の作業を行ってください。

  4. 起動フォルダensata/Releaseにensata.iniファイルが作成されているハズなので、適当なテキストエディタで開きます。
    セクション名[reference path]の中にskin=\skins\default_skin.bmpという記述があります。 このdefault_skin.bmpを(2.)でコピーしたファイル名に置き換えて、ensata.iniを保存します。
    (注意) パスの指定はensataフォルダからの相対値です！
    (注意) もし、skin=\skins\default_skin.bmpという項目がない場合は、最新版のensata.exeを取得して下さい。

  5. ensata.exeを起動すると、セパレータパネルのスキンが書き換わっているハズです。
    (注意) 条件を満たさない画像であった場合は表示されず、セパレータパネルは灰色で塗りつぶされます。

セパレータパネルの非表示

デバッグ時にディスプレイ画面を広く使いたい場合や、ensataを拡大表示する際に、２画面をできるだけ大きく表示させたい場合、 セパレータパネルが邪魔になる場合があります。その場合はポップアップメニューの「セパレータパネル非表示」にチェックを入れてください。 チェックを入れた瞬間からセパレータパネルが非表示になります。


NITRO help setup mainmem

実機エミュレーション用の各設定

  • メインメモリの容量設定

    NITROのメインメモリの容量は4MByteですが、これを開発機と同じ8MByteにすることが出来ます。
    ensata.exeを一度起動し終了させると、起動フォルダensata/Releaseにensata.iniファイルが作成されていますので、 セクション名[memory]の中のexpand main ram=offを、expand main ram=onに変更して下さい。
    再度ensata.exeを起動すると、メインメモリの容量が8MByteになっています。
    なお、アクセスするためのプロテクションユニット等の設定は、プログラムで行って下さい。

  • ARM9の例外処理

    デフォルトで次の例外が発生した場合に、その命令実行直後に実行が停止しダイアログが表示されます。
    • アボート
    • 未定義命令
    • BKPT命令

    この動作は、ensata/Release/ensata.iniファイルのセクション名[exception]の break=onをbreak=offに書き換えることによって、実機と同様の処理に変更できます。

  • 実行ファイル

    デフォルトでTS対応になっております。
    TEGでメイクされたプログラムを動作させる場合は、ensata/Release/ensata.iniファイルのセクション名[whole]のTEG=offをTEG=onに書き換えてから、再度ensata.exeを起動して下さい。


NITRO help copyright

使用許諾

  • 本ソフトウェアは、貴社と任天堂株式会社間で締結されている秘密保持契約書に基づき開示されています。
    本ソフトウェアの使用につきましては、秘密保持契約書に定められている各条件を遵守願います。

  • 本ソフトウェア及び、ヘルプ等に記載されている各種の商品名や会社名は、各社の商標または登録商標です。


NITRO help top

Copyright (C) 2004 Nintendo