下図はアプリケーションをビルドするまでの概略をフロー図で示したものです。
ビルドに必要となるファイルや処理についての詳細は、CTR-SDK の「ビルドシステム構築ガイド」を参照してください。
5.1. CTR-SDK のビルドシステムでビルドする場合
CTR-SDK のビルドシステムを使用する場合、環境変数やビルドオプション、ビルド変数の設定を OMakefile に記述し、omake を実行するだけで簡単にアプリケーションの実行ファイルを作成することができます。作成するアプリケーションの種類をカードアプリからダウンロードアプリに変更する場合でも、CTR_APPTYPE の指定と、いくつかの設定を変更するだけで行うことができます。
OMakefile で CTR_BANNER_SPEC を指定した場合、CTR_BANNER_SPEC で指定された BSF ファイルの内容に基づいて、ICN ファイルと BNR ファイルがビルド時に作成されます。このため、CTR_BANNER_SPEC を指定した場合は、CTR_BANNER、CTR_ICON を指定していたり、CTR_NO_BANNER、CTR_NO_BANNER_ICON の値を指定していたとしても、その設定は無視されます。
詳細については CTR-SDK の「ビルドルール」を参照してください。
5.1.1. カードアプリの作成
カードアプリをビルドする OMakefile を記述する上で、必須もしくは対応すべき内容は以下のとおりです。
設定 | 内容 |
---|---|
CTR_APPTYPE | 「CARD」 |
DESCRIPTOR |
「$(CTRSDK_ROOT)/resources/specfiles/Application.desc」(標準アプリ) 「$(CTRSDK_ROOT)/resources/specfiles/ExtApplication.desc」(拡張アプリ) |
ROM_SPEC_FILE | RSF ファイルを指定します。 |
CTR_BANNER | BNR ファイルを指定します。 |
CTR_ICON | ICN ファイルを指定します。 |
MANUAL_DIR | 電子取扱説明書のファイルが格納されているディレクトリを指定します。 |
CHILD_APPS[] | ダウンロードプレイに対応する場合、配信する子機プログラムの CIA ファイル(複数指定可能)を指定します。 |
SUPPORTED_TARGETS = CTR-TS.Process.MPCore.* ~ 中略(ヘッダファイル、ソースファイル、ライブラリ、シェーダの指定など) ~ TARGET_PROGRAM = MyApp TITLE = MyApp CTR_APPTYPE = CARD DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/Application.desc ROM_SPEC_FILE = MyApp.rsf CTR_BANNER = MyApp.bnr CTR_ICON = MyApp.icn ROMFS_ROOT = romfiles MANUAL_DIR = manual CHILD_APPS[] = ../MyChildApp/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/MyChildApp.cia include $(ROOT_OMAKE)/modulerules build: $(DEFAULT_TARGETS)
表にない設定については、CTR-SDK の「ビルドルール」を参照してください。
5.1.2. ダウンロードアプリの作成
ダウンロードアプリをビルドする OMakefile を記述する上で、必須もしくは対応すべき内容は以下のとおりです。
設定 | 内容 |
---|---|
CTR_APPTYPE | 「SD」 |
DESCRIPTOR |
「$(CTRSDK_ROOT)/resources/specfiles/Application.desc」(標準アプリ・製品版) 「$(CTRSDK_ROOT)/resources/specfiles/DemoVersion.desc」(標準アプリ・体験版) 「$(CTRSDK_ROOT)/resources/specfiles/ExtApplication.desc」(拡張アプリ・製品版) 「$(CTRSDK_ROOT)/resources/specfiles/ExtDemoVersion.desc」(拡張アプリ・体験版) |
ROM_SPEC_FILE | RSF ファイルを指定します。 |
CTR_BANNER | BNR ファイルを指定します。 |
CTR_ICON | ICN ファイルを指定します。 |
MANUAL_DIR | 電子取扱説明書のファイルが格納されているディレクトリを指定します。 |
MANUAL_DISCLOSURE |
あらかじめダウンロードで電子取扱説明書を見せる場合に public を指定します。見せない場合、指定は不要です。 |
CHILD_APPS[] | ダウンロードプレイに対応する場合、配信する子機プログラムの CIA ファイル(複数指定可能)を指定します。 |
SUPPORTED_TARGETS = CTR-TS.Process.MPCore.* ~ 中略(ヘッダファイル、ソースファイル、ライブラリ、シェーダの指定など) ~ TARGET_PROGRAM = MyDownloadApp TITLE = MyApp CTR_APPTYPE = SD DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/Application.desc ROM_SPEC_FILE = MyDownloadApp.rsf CTR_BANNER = MyDownloadApp.bnr CTR_ICON = MyDownloadApp.icn ROMFS_ROOT = romfiles MANUAL_DIR = manual MANUAL_DISCLOSURE = public CHILD_APPS[] = ../MyChildApp/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/MyChildApp.cia include $(ROOT_OMAKE)/modulerules build: $(DEFAULT_TARGETS)
表にない設定については、CTR-SDK の「ビルドルール」を参照してください。
5.1.3. 子機プログラムの作成
子機プログラムをビルドする OMakefile を記述する上で、必須もしくは対応すべき内容は以下のとおりです。
設定 | 内容 |
---|---|
CTR_APPTYPE | 「NAND」 |
DESCRIPTOR |
「$(CTRSDK_ROOT)/resources/specfiles/DlpChild.desc」(標準アプリ) ※ 拡張アプリの子機プログラムは作成できません。 |
ROM_SPEC_FILE | RSF ファイルを指定します。 |
CTR_NO_BANNER | 「true」 |
CTR_ICON | ICN ファイルを指定します。 |
SUPPORTED_TARGETS = CTR-TS.Process.MPCore.* ~ 中略(ヘッダファイル、ソースファイル、ライブラリ、シェーダの指定など) ~ TARGET_PROGRAM = MyChildApp TITLE = ChildApp CTR_APPTYPE = NAND DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/DlpChild.desc ROM_SPEC_FILE = MyChildApp.rsf CTR_NO_BANNER = true CTR_ICON = MyChildApp.icn ROMFS_ROOT = romfiles include $(ROOT_OMAKE)/modulerules build: $(DEFAULT_TARGETS)
表にない設定については、CTR-SDK の「ビルドルール」を参照してください。
5.2. CTR-SDK のビルドシステム以外でビルドする場合
CTR-SDK で提供されているビルドシステムを使用せず、独自のビルドシステムを構築する場合にアプリケーションを作成するまでに必要な手順を説明します。
詳細については CTR-SDK の「ビルドシステム構築ガイド」を参照してください。
5.2.1. AXF ファイルの作成
armcc でコンパイルしたオブジェクトファイルやライブラリファイル等を armlink でリンクし、AXF ファイルを作成します。
コマンドの実行例:
armlink --datacompressor off --keep=nnMain \ --scatter=$CTRSDK_ROOT/resources/specfiles/linker/CTR.Process.MPCore.ldscript \ -o MyApp.axf MyApp.o MyAppLib.a ...
詳しくは ARMCC のドキュメント、CTR-SDK の「ビルドシステム構築ガイド」を参照してください。
5.2.2. ICN ファイルと BNR ファイルの作成
アプリケーションで使用するアイコンデータとバナーデータのファイルを作成します。
コマンドの実行例:
ctr_makebanner32.exe MyApp.bsf
BSF ファイル以外の引数を指定しなかった場合、ICN ファイルと BNR ファイルは BSF ファイルの拡張子を置き換えて作成されます。上記の実行例の場合は MyApp.icn と MyApp.bnr の 2 ファイルが作成されます。
詳しくは「4.2. BSF ファイル」、CTR-SDK のツール「ctr_makebanner」のリファレンスを参照してください。
5.2.3. 電子取扱説明書の CFA ファイルの作成
アプリケーションに付属させる電子取扱説明書の CFA ファイルを作成するには、ctr_makerom32.exe を以下のオプションで実行します。電子取扱説明書のファイル(Manual.bcma)は、事前に CTR-ManualTools で作成してください。
-
-f data
-
-rsf $CTRSDK_ROOT/resources/specfiles/Manual.rsf
-
-DROMFS_ROOT=
<電子取扱説明書のファイル(Manual.bcma)が格納されているディレクトリ> -
-DMANUAL_DISCLOSURE=
<あらかじめダウンロードで電子取扱説明書を見せるなら true、見せないなら false> -
-o
<作成する CFA ファイルの名前>
コマンドの実行例:
ctr_makerom32.exe -DROMFS_ROOT=manual_dir -DMANUAL_DISCLOSURE=true -f data \ -rsf $CTRSDK_ROOT/resources/specfiles/Manual.rsf -o Manual.cfa
詳しくは「4.3. 電子取扱説明書」、CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。
5.2.4. カードアプリの作成
カードアプリのデバッグやマスターとして提出する ROM には、カードアプリの最終 ROM イメージ形式である CCI ファイルを使用します。
5.2.4.1. CCI ファイルの作成
CCI ファイルの作成には、以下のファイルを必要とします。
- AXF ファイル
- DESC ファイル(CTR-SDK に付属のファイル)
- RSF ファイル
- ICN ファイル
- BNR ファイル
- 電子取扱説明書の CFA ファイル(電子取扱説明書に対応する場合)
- 子機プログラムの CFA ファイル(ダウンロードプレイに対応する場合)
CCI ファイルを作成するには、以下のオプションを指定して ctr_makerom32.exe を実行します。
-
-f card
-
-rsf
<RSF ファイル> -
-desc $CTRSDK_ROOT/resources/specfiles/Application.desc
- 拡張アプリの場合は
-desc $CTRSDK_ROOT/resources/specfiles/ExtApplication.desc
- 拡張アプリの場合は
-
-icon
<ICN ファイル> -
-banner
<BNR ファイル> -
-content
<CFA ファイル>:<インデックス>- CFA ファイルが電子取扱説明書のファイルの場合はインデックスに 1 を指定します。
- CFA ファイルが子機プログラムのファイルの場合はインデックスに 2 を指定します。
-
-o
<作成する CCI ファイルの名前>
詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。
コマンドの実行例:
ctr_makerom32.exe MyApp.axf -f card -rsf MyApp.rsf \ -desc $CTRSDK_ROOT/resources/specfiles/Application.desc \ -icon MyApp.icn -banner MyApp.bnr \ -content Manual.cfa:1 -content MyChildApp.cfa:2 \ -o MyApp.cci
5.2.5. ダウンロードアプリの作成
ダウンロードアプリのデバッグやマスターとして提出する ROM には、ダウンロードアプリの最終 ROM イメージ形式である CIA ファイルを使用します。
CIA ファイルの作成には CXI ファイルが必要ですので、先に CXI ファイルを作成します。
5.2.5.1. CXI ファイルの作成
CXI ファイルの作成には、以下のファイルを必要とします。
- AXF ファイル
- DESC ファイル(CTR-SDK に付属のファイル)
- RSF ファイル
- ICN ファイル
- BNR ファイル
CXI ファイルを作成するには、以下のオプションを指定して ctr_makerom32.exe を実行します。
-
-f exec
-
-rsf
<RSF ファイル> -
-desc $CTRSDK_ROOT/resources/specfiles/Application.desc
- 標準アプリの体験版は
-desc $CTRSDK_ROOT/resources/specfiles/DemoVersion.desc
-
拡張アプリは
-desc $CTRSDK_ROOT/resources/specfiles/ExtApplication.desc
-
拡張アプリの体験版は
-desc $CTRSDK_ROOT/resources/specfiles/ExtDemoVersion.desc
- 標準アプリの体験版は
-
-icon
<ICN ファイル> -
-banner
<BNR ファイル> -
-o
<作成する CXI ファイルの名前>
詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。
コマンドの実行例:
ctr_makerom32.exe MyDownloadApp.axf -f exec -rsf MyApp.rsf \ -desc $CTRSDK_ROOT/resources/specfiles/Application.desc \ -icon MyApp.icn -banner MyApp.bnr \ -o MyDownloadApp.cxi
5.2.5.2. CIA ファイルの作成
CIA ファイルの作成には、以下のファイルを必要とします。
- CXI ファイル
- 電子取扱説明書の CFA ファイル
- 子機プログラムの CFA ファイル(ダウンロードプレイに対応する場合)
CIA ファイルを作成するには、以下のオプションを指定して ctr_makecia32.exe を実行します。
-
-i
<CXI ファイル> -
-man
<電子取扱説明書の CFA ファイル> -
-i
<子機プログラムのCFA ファイル>:2(インデックスの指定が必要です) -
-o
<作成する CIA ファイルの名前>
詳しくは CTR-SDK のツール「ctr_makecia」のリファレンスを参照してください。
コマンドの実行例:
ctr_makecia32.exe -i MyDownloadApp.cxi -man Manual.cfa -o MyDownloadApp.cia
5.2.6. 子機プログラムの作成
カードアプリやダウンロードアプリに含める子機プログラムは 1 つの CFA ファイルにまとめ、カードアプリやダウンロードアプリの作成時のオプションで指定します。
CFA ファイルの作成には CIA ファイル、CIA ファイルには CXI ファイルが必要ですので、CXI ファイル、CIA ファイル、CFA ファイルの順に作成します。
5.2.6.1. CXI ファイルの作成
CXI ファイルの作成には、以下のファイルを必要とします。バナーは表示されませんので、BNR ファイルは必要ありません。
- AXF ファイル
- DESC ファイル(CTR-SDK に付属のファイル)
- RSF ファイル
- ICN ファイル
CXI ファイルを作成するには、以下のオプションを指定して ctr_makerom32.exe を実行します。
-
-f exec
-
-rsf
<RSF ファイル> -
-desc $CTRSDK_ROOT/resources/specfiles/DlpChild.desc
-
-icon
<ICN ファイル> -
-o
<作成する CXI ファイルの名前>
詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。
コマンドの実行例:
ctr_makerom32.exe MyChildApp.axf -f exec -rsf MyChildApp.rsf \ -desc $CTRSDK_ROOT/resources/specfiles/DlpChild.desc \ -icon MyChildApp.icn \ -o MyChildApp.cxi
5.2.6.2. CIA ファイルの作成
CIA ファイルの作成には、以下のファイルを必要とします。
- CXI ファイル
CIA ファイルを作成するには、以下のオプションを指定して ctr_makecia32.exe を実行します。
-
-i
<CXI ファイル> -
-o
<作成する CIA ファイルの名前>
詳しくは CTR-SDK のツール「ctr_makecia」のリファレンスを参照してください。
コマンドの実行例:
ctr_makecia32.exe -i MyChildApp.cxi -o MyChildApp.cia
5.2.6.3. CFA ファイルの作成
CFA ファイルの作成には、以下のファイルを必要とします。
- 配信する子機プログラムすべての CIA ファイル
CFA ファイルを作成するには、以下のオプションを指定して ctr_makeciaarchive32.exe を実行します。ダウンロードプレイで配信する子機プログラムは、1 つの CFA ファイルにまとめて格納されます。
-
-cia
<子機プログラムの CIA ファイルのリスト> -
-o
<作成する CFA ファイルの名前>
詳しくは CTR-SDK のツール「ctr_makeciaarchive」のリファレンスを参照してください。
コマンドの実行例:
ctr_makeciaarchive32.exe -cia MyChildApp.cia -o MyChildApp.cfa
ここで作成した CFA ファイルは、カードアプリの作成時のオプション -content
(インデックス 2)や、ダウンロードアプリ作成時のオプション -i
(インデックス 2)の指定で使用します。