SN Systems の ProDG
for PSP®は、次世代コンソール用の参照用、研究・開発製品です。
本製品には、コンソール ゲームをビルドおよびデバッグするための高度なツールチェーンが搭載されています。当社では、ユーザーのフィードバックをもとに継続的に開発を行っており、さまざまに変化する要求にお応えしています。
ツールチェーンには、以下のコンポーネントが含まれています。
- SNC C/C++コンパイラー
- アセンブラ
- リンカー
- デバッガー
- Microsoft Visual
Studio .NET との統合
- Target Manager
コンポーネント
以下のコンポーネントをクリックすると、主な機能が表示されます。機能をクリックすると、その特長が表示されます。
- SNC
C/C++コンパイラー
SN Systems
の新しい C/C++ Compiler は、ゲーム コンソール開発者の方々のご意見を反映して開発されています。高いパフォーマンス、高度な最適化設定、総合的な言語サポートにより、開発するゲームの品質が向上します。
業界スタンダードであるEDGの
C++ フロントをベースとし、プロジェクト構築およびコード生成に関する詳細な設定が可能となっています。自社開発および自社管理されている本製品は、次世代コンソールのアーキテクチャ用の
SN Systems プログラミング システムの基盤となっています。
SNC C/C++
コンパイラーの重要な機能
| 高品質のコード生成 |
効率的なコード生成により、ゲームの品質を向上させることが可能になります。またパワフルな最適化機能では、詳細な設定を行うことができます。 |
| より効率的な
開発環境 |
発環境緻密なコードの記述が短時間で可能になります。わかりやすいインラインアセンブリ構文、コンパイル済みヘッダ、Visual
Studio .NET integration を使用することにより、生産性が向上します。 |
| 標準への準拠 |
BOOST対応。ANSI/ISO
C/C++、Microsoft C/C++、GCC C/C++ に対応することにより、マルチプラットフォームコードの記述が簡単になりました。 |
| テクニカルサポート |
ユーザーのフィードバックをもとに継続的に開発を行っており、さまざまに変化する要求にお応えしています。また業界トップを誇る当社の対応の速さは、開発に関する問題を迅速に解決します |
| 多様な
最適化オプション |
SNC
の最適化コントロールの詳細は、以下を参照してください。 |
| VFPU
アセンブラに対応 |
VFPU プリフィクス機能用の SN Systems のシンプルな構文を含む、VFPU アセンブラに対応しています。 |
- 多様な最適化オプション
- 正確なユーザー
コントロールによるループのアンロール
ループ内のコードは、任意回数繰り返すことができます。これにより、ループ管理のオーバーヘッドが削減され、スケジュールの機会が増えます。
- 正確なユーザー
コントロールによる関数のインライン化
小規模なユーザー関数に対するコールは、その関数がコールするコードで置き換えることができます。これにより、関数コールを行うためのオーバーヘッドが削減され、より広範囲の作業領域が最適化機能に割り当てられるため、最適化の機会が増えます。
- イントリシック関数のインライン化
コンパイラによる
C++ テンプレートのインスタンス化方法が、完全に管理されます。
- 命令スケジュール
ターゲット
コンピュータ上で使用できる精度の高い並行処理を有効に利用できるように、命令の順番を変更することができます。
- 浮動小数点数式の再アレンジ
浮動小数点数式の一部の最適化は、数学的に同等ですが、計算が常に同じとは限りません。最適化のこの側面は、ユーザーが管理します。
- 処理間分析
これにより、コンパイラが複数のルーチンにわたってコードを最適化できます。これには、コールの変更分析、C
のインライン化、C のアドレス漏れ検出、処理間レジスタの割り当てが含まれます。
- マルチコンパイル
モジュールのコード最適化機能
コンパイラでの最適化には、プログラムの多くの部分を同時に処理することによって効率が向上するという特徴があります。このため一般的に、1
度の呼出しでプログラムの多くの部分をコンパイラに処理させると、パフォーマンスが向上します。
- 共通するサブ数式の削除
既に計算された値が不必要に再計算された場合は、再計算を実行する代わりに、プロセッサのレジスタに格納された最初の計算結果が使用されます。場合によって、この値はソース
コード内の重複する数式となり、また、ソース コードのレベルより低い値にもなります。
- 誘導変数の削除
不必要なループ管理変数は削除することができます。これは、演算強度の軽減が適用されたループによく見られる状態です。
- テンプレートの部分的な特殊化
SNC
は、一部のテンプレート パラメータが特殊化されないテンプレート特殊化に対応しています。
- 管理フローの向上
プログラムの管理フローには、いくつかの改良を施すことができます。たとえば、無条件転送からの無条件転送命令は削除できます。
- ビルド
ツール
- リンカー
リンカーでは、コードの位置、割り当て、アラインメント、およびメモリ上のデータに対する正確なコントロールが可能になっています。また、使用されていない関数やデータストリッピングも管理できるため、コードのサイズを最小に抑えることができます。
- アセンブラ
アセンブラは、コンパイラドライバから自動的に開いてオブジェクトモジュールを生成します。またアセンブリプログラムでのソースレベルのデバッグ用のデバッグ情報も含まれています。
- デバッガー
デバッガーには、ソースコード、逆アセンブリ、メモリ、レジスタ、変数、TTY、コールスタックを検証するための総合的な支援機能が用意されています。デバッガーのペイン分割機能では、ペインのレイアウトを自由に設定できるため、使いやすさも向上しています。シングルステップは、条件ブレークポイントを使用することにより、ユーザーがコントロールできます。また、繰り返しの多い作業は、デバッガーのスクリプト言語を使用して自動化することもできます。
- プロセッサへの完全対応
ProDG
は、全オプコードの表示、および CPU、FPU、VFPU のレジスタの表示など、"PSP®"
のカスタム MIPS CPU に完全に対応しました。
- 実効、ステップ、ブレークポイントのコントロール
デバッガーは、ソース
レベルのシングルステップ、ステップオーバー、ステップインツー、カーソルまで実効、ブレークポイントに対応しています。
- 条件式/カウント式ブレークポイントに対応
条件式ブレークポイントでは、コード内でブレークをトリガする特殊条件を使用できるため、デバッグの支援となります。また、カウント式ブレークポイントを使用することにより、指定した回数ブレークポイントがトリガされた際に、コードの実行を一時停止することができます。
- ディスプレイ
リスト ペイン
ディスプレイ リスト
ペインでは、"PSP®" のグラフィック プロセッサに送信されるグラフィック コマンドを含む、ディスプレイ
リストを表示できます。
- パイプライン
アナライザ
パイプライン アナライザでは、CPU/FPU/VFPU
パイプラインでのプログラムのフローがチェックされ、コードのアセンブリの隣には、ストール サイクルの数、命令の長さの合計、ピッチとレイテンシー、最大ストールの原因となっているオプコードのアドレス、ストールの理由など、便利な情報が表示されます。
- VFPU
サポート
ProDG
は、VFPU オプコードを理解して便利な VFPU タイミング情報を表示するのみではなく、レジスタの依存性を分析し、VFPU
オプコードで使用される VFPU レジスタ セットにおけるオーバーラップを、逆アセンブリを解りやすく色分けして表示することができます。
この機能は、メインとなる CPU や FPU のみではなく、VFPU に対しても使用できるため、レジスタの偶発的なオーバーラップに起因するバグの診断に便利です。
- ドラッグ
アンド ドロップ機能
名前や数式は、ソース
ペインからウォッチ ペインに自由にドラッグして、ウォッチを追加できます。また、ほとんどのペインはクリップボードのマークとコピーに対応し、多くのペインでは、それぞれの情報をテキスト
ファイルに直接ダンプすることもできます。
- ウォッチ
ペインとローカル ペイン
ローカル
ペインでは、'this' ポインターのタブと 'auto' コンテキストのタブを使用して、すべてのローカル変数が自動的に追跡されます。ウォッチ
ペインでは、typecast を含む任意の数式を使用できます。C/C++ データは、クラス、ユニオン、ストラクチャ、配列を、展開/折り畳み機能を使用してわかりやすく表示させるとこができます。また、カスタム
テンプレートを使用することにより、特定データ タイプの表示方法を指定できます。デバッガーでは、スクリプト
ペインのイミディエイト モードを使用して、複雑な数式を一度限りで評価することもできます。
- スクリプトへの総合的な対応
スクリプト
ペインでは、ユーザーが作成した ANSI-C プログラムを実行することにより、"PSP®" メモリとのデータ送受信など、複雑なデバッガー処理を行うことができます。
このペインでは、実行の開始や停止、ブレークポイントの設定、実行ファイルの読み込み、デバッガーのコンテキスト
メニューのカスタマイズ、テキストやグラフィックの描画、ファイルの操作、ウォッチ表示方法の変更、その他のプログラムの実行などが可能です。スクリプトはプレーン
テキストファイルですが、実行時にコンパイルされてその実行が非常に高速になります。スクリプトは、デバッガーの起動時に自動的に読み込むことができ、デバッガーの終了時にカスタムのスクリプト
ペインを保存させ、デバッガーの起動時に再び読み込ませることもできます。
- シンプルなプロジェクト
ナビゲーションを搭載したワークスペース ペイン
ワークスペース
ペインには、ELF ファイルのファイル、関数、グローバル、クラス定義への簡単なアクセス方法が用意されています。この機能をソース
コードの検索パスと組み合わせることにより、ビルド担当者や設定を問わず、ソース コードに関連する任意のアイテムをデバッグできます。
- ソース/逆アセンブリ
ペインのミックス モード
ミックス モード
ペインでは、ソース コードの形式を簡単に切り替えることができます。コードの逆アセンブリがオリジナルのソース行にインターリーブされるソース、逆アセンブリ、ミックス
モードを表示できます。
- 標準の数式
標準数式は、文字列パターンを記述するための一般的な方法で、デバッガー内での検索に使用できます。
- 柔軟なペイン/ウィンドウ
システム
CPU レジスタ、メモリ、逆アセンブリ、ソース、ローカル変数、ウォッチ
ポイントは、複数を同時に表示できます。 このレイアウトは自由に保存し、必要に応じて呼び出すことができます。
- 各種ペイン間でのセーブとロード
多くのペインには、情報ブロックをディスクにセーブまたはディスクからロードする機能が用意されています。この機能を使用することにより、ゲームの状態を簡単に復元、または異なるハードウェア上でのメモリを比較することなどができます。
- ユーザー設定可能なショートカットとカラー設定
デバッガーのキー
マップは、自由に変更できます。Visual Studio および SN (SDevTC 製品を使い慣れたれたユーザー用または別プラットフォームで
ProDG を使用しているユーザー用) には、キー マップが用意されています。テキストのフォント、サイズ、カラーは、各ペインに対して設定できます。
- ポップアップ式の数式評価機能
デバッガーのソース
ペインには、フローティング式の評価機能が用意されています。テキストや選択項目にカーソルを合わせると、対象アイテムの評価や値がツールチップ上に瞬時にポップアップ表示されます。
- Microsoft
Visual Studio .NETとの統合
上記の機能とVisual
Studio .NET (2003) との統合は、Add-ins およびAppwizards を使用して行います。以下の機能が用意されています。
- プロジェクトは、Visual
Studio IDE を使用してビルド、編集、管理できます。
VSI
では Visual Studio にツール バーがインストールされ、ProDG ビルド環境を Visual
Studio で使用できるようになります。Visual Studio で使用できるすべての純正機能 (Source
Safe controls など) は、"PSP®" プロジェクトで使用できます。
- IDE
と ProDG Debugger との強力な統合
ビルド後、ProDG
Debugger でのゲームの実行やデバッグを Visual Studio から行えます。ブレークポイント
(条件情報を含む) は IDE とデバッガーとの間で自動的に転送され、デバッガーのソース ペイン内のファイルは、デバッガー内から
Visual Studio で開くことができます。
コンパイラとリンカーのエラーや警告は
Visual Studio 形式で出力されるため、出力ウィンドウでビルド エラーをダブルクリックすると、Visual
Studio エディタでソース ファイルが開いて該当する行が表示されます。
- ProDG
ビルド ツールの統合
ツールチェーンのコマンドライン
スイッチ、Debugger/ELF 用のコマンドライン引数、ファイル サービング用のパスはすべて、Visual
Studio .NET の設定ダイアログ ボックスで設定できます。
- 柔軟なプロジェクト設定
VSI
.NET は、各設定ごとのプロパティに対応しており、デバッグとリリース ビルドに対してそれぞれ異なるリンカー
スクリプトを使用することなどが可能です。
- ソース参照と
Intellisense
Visual
Studio に搭載されているソース参照機能と Intellisense は、Win32 ビルドの場合と同様に、"PSP®"
プロジェクトで使用できます (C/C++ ソースの編集時)。
- プロジェクトの依存性
C、C++、アセンブラの各ファイルに対して、ビルド処理中に完全なソース依存性チェックが行われます。
- ターゲットマネジャー
- 実行ファイルの読み込みと実行
実行ファイルの読み込みと実行を行うためのシンプルなインターフェイス。複数モジュールのプリロードに対応。
- すべての開発用ハードウェアを PC から管理
LAN で認識されている "PSP®" 開発用ツールを管理。ハードウェアのステータスと接続中のユーザーも表示されます。
- 総合的で安全なカーネル フラッシュ機能
すべての "PSP®" 開発用ハードウェアを 1 箇所からアップデートできるため、Linux PC を別途用意する必要はありません。
- 名前付きパイプを含む完全なファイル サービング機能
ファイル サービング機能では、"PSP®"
開発用ハードウェア上で実行されているアプリケーションから、ホスト PC 上のファイルにアクセスできます。また、ゲームのデータを
PC から直接読み込むことができるため時間とリソースを節約でき、"PSP®"
開発用ハードウェアからは、ファイル情報 (サイズやアクセス時間など) に直接アクセスできます。
さらに、名前付きパイプに対応したことにより、アプリケーションとホスト
PC との間で双方向通信チャンネルが実現します。これにより、"PSP®"
開発用ハードウェアを PC から制御するためのソフトウェアを記述することが可能になります。
- TTY 出力ペイン
"PSP®" 開発用ハードウェアからの出力は、用意されているストリームまたはユーザーが選択した形式で表示できます。また、ANSI カラーリングに対応しているため視認性も向上し、バッファ サイズも変更できるため、出力を保存してテスト記録および分析に使用することもできます。
- ターゲットマネジャー Software Development Kit (SDK)
SDK では、アプリケーションやプラグインから ターゲットマネジャー の機能にアクセスできます。このため、テスト済みの ターゲットマネジャー にターゲット通信をまかせて、アプリケーション開発に集中できます。
- Tuner
ドキュメント
総合的なドキュメントは、PDF 形式およびコンパイル済みの
HTML 形式で提供されます。また Web サイトの開発者用テクニカル サポート エリアには、技術的な情報や FAQ
が用意されています。
テクニカルサポート
電子メールや電話によるテクニカル
サポートは、直接日本事務所が対応します。Web サイトの開発者用テクニカル サポート エリアでは、技術情報、FAQ、ダウンロード、製品アップデート、ドキュメント、サンプル
コードを、24 時間年中無休でご利用できます。
必要システム構成
対応するOS:Windows 2000/XP
価格
詳細な情報は、contact@snsys.com までご連絡下さい