この節では、プログラム以外で、アプリケーションのビルドまでに用意しておかなければならないファイルの作成方法を説明します。
ビルドまでに、以下のファイルを用意する必要があります。
- RSF ファイル
- BSF ファイル
- 電子取扱説明書
4.1. RSF ファイル
RSF ファイルは ctr_makerom で CCI ファイルや CXI ファイルを作成する際に必要となる設定ファイルです。
詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。
4.1.1. 必須の設定
以下の項目はアプリケーションを作成する上で必須となる項目です。
大項目 | 小項目 | 設定 |
---|---|---|
TitleInfo | Category |
アプリケーションの種類に従って以下のように指定します。
|
UniqueId |
弊社発行のユニーク ID を指定します。 ソフトの実験、試作用に試作用コード(0xFF000~0xFF3FF)を指定することができますが、複数のアプリケーションで重複しないように注意してください。 ダウンロードプレイに対応する場合は、親機と子機で同じユニーク ID を指定しなければなりません。 |
|
ChildIndex | ダウンロードプレイで配信する子機プログラムを作成する際に、そのインデックス(0~255)を指定します。 | |
DemoIndex | ダウンロードアプリ型体験版を作成する際に、そのインデックス(1~255)を指定します。詳細については「ニンテンドー3DS 体験版作成手順書 - ダウンロード型」を参照してください。 | |
Variation | 追加コンテンツを作成する際に、そのインデックス(0~255)を指定します。 | |
Rom | HostRoot |
ROM アーカイブに含めるファイルが格納されているディレクトリを指定します。 指定されたディレクトリをルートディレクトリに、配下のファイルとディレクトリ構造がそのまま ROM アーカイブに格納されます。 OMakefile の ROMFS_ROOT を参照する場合は、「$(ROMFS_ROOT)」を指定してください。 |
Reject |
ROM アーカイブから除外するファイルやディレクトリを指定します。 除外するファイルはワイルドカードまたは正規表現で指定します。 |
|
SaveDataSize |
セーブデータ領域のサイズを nKB/nMB/nGB の形式で指定します。 省略した場合は 0KB が指定されます。 |
|
CardInfo | MediaType |
カードアプリを作成する際に、ゲームカードの種別(Card1/Card2)を指定します。 セーブデータ領域のサイズが 512 KB を超えるダウンロードアプリは「Card2」を指定してください。 省略した場合は「Card1」が指定されます。 |
TitleInfo: Category: Application UniqueId: 0xFF3FF Rom: HostRoot: $(ROMFS_ROOT)
4.1.2. セーブデータを使用する場合
アプリケーションでセーブデータを使用する場合、アプリケーションの種類によって設定すべき項目が異なります。
セーブデータ領域内にはファイルシステムの管理領域などが含まれるため、アプリケーションで実際に使用できる領域は指定した値より小さくなります。セーブデータ領域サイズごとの、実際に利用可能なサイズの値については関数リファレンスの「セーブデータファイルシステム容量計算シート」を参照してください。
なお、nn::fs::GetArchiveFreeBytes()
を呼び出すことで、アプリケーションの実行中にアーカイブの空き容量を取得することができます。
4.1.2.1. ゲームカード種別が Card1 のカードアプリ
以下の項目を設定してください。
大項目 | 小項目 | 設定 |
---|---|---|
Rom | SaveDataSize | 「0KB」、「128KB」、「512KB」から指定します。 |
Rom: SaveDataSize: 512KB
4.1.2.2. ダウンロードアプリ
以下の項目を設定してください。
大項目 | 小項目 | 設定 |
---|---|---|
Rom | SaveDataSize |
MediaType の指定により異なります。 Card1 の場合:「0KB」、「128KB」、「512KB」から指定します。 Card2 の場合:「nMB」または「nGB」の形式で指定します。 |
Rom: SaveDataSize: 512KB
4.1.2.3. ゲームカード種別が Card2 のカードアプリ
以下の項目を設定してください。
大項目 | 小項目 | 設定 |
---|---|---|
Rom | SaveDataSize |
「nMB」または「nGB」の形式で指定します。 1 MByte 単位でのみ指定が可能です。なお、BasicInfo / MediaSize で指定した値の半分が物理的な上限となります。 |
Rom: SaveDataSize: 32MB
4.1.2.4. 体験版のセーブデータにアクセスする場合
体験版で作成したセーブデータにアクセスする必要があるアプリケーションは以下の項目を設定してください。
大項目 | 小項目 | 設定 |
---|---|---|
AccessControlInfo | UseOtherVariationSaveData |
「true」または「false」で指定します。 「true」の指定で、 省略した場合は「false」を指定したことになります。 |
AccessControlInfo の AccessibleSaveDataIds を指定した場合、そこにアプリケーションのユニーク ID が設定に含まれていなくてもアプリケーションのセーブデータと拡張セーブデータへのアクセスが可能になるように、UseOtherVariationSaveData を「true」に指定した際の解釈が拡張されます。
4.1.2.5. ほかのアプリケーションのセーブデータにアクセスする場合
ほかのアプリケーションのセーブデータにアクセスする必要があるアプリケーションは以下の項目を設定してください。
大項目 | 小項目 | 設定 |
---|---|---|
AccessControlInfo | AccessibleSaveDataIds |
アクセスしたいセーブデータのユニーク ID と拡張セーブデータ ID を、ユニーク ID の一覧で指定します。最大 6 個の指定が可能です。 アクセス可能になるのは、指定された ID と一致するユニーク ID のセーブデータ(体験版含む)と、指定された ID と一致する拡張セーブデータ ID の拡張セーブデータです。 この設定を使用した場合は UseOtherVariationSaveData の解釈が拡張されます。詳細については、「4.1.2.4. 体験版のセーブデータにアクセスする場合」を参照してください。 |
OtherUserSaveDataId1 OtherUserSaveDataId2 OtherUserSaveDataId3 |
アクセスしたいセーブデータのユニーク ID を最大 3 個指定することができます。アプリケーションのユニーク ID と同じユニーク ID のセーブデータならば、この設定に含まれていなくても UseOtherVariationSaveData に「true」を指定することで使用可能になります。 AccessibleSaveDataIds が指定されている場合は、これらの設定を使用することができません。 |
4.1.3. 拡張セーブデータを使用する場合
アプリケーションで拡張セーブデータを使用する場合は、以下の項目を設定してください。
大項目 | 小項目 | 設定 |
---|---|---|
AccessControlInfo | AccessibleSaveDataIds |
アクセスしたいセーブデータのユニーク ID と拡張セーブデータ ID を、ユニーク ID の一覧で指定します。最大 6 個の指定が可能です。 アクセス可能になるのは、指定された ID と一致するユニーク ID のセーブデータ(体験版含む)と、指定された ID と一致する拡張セーブデータ ID の拡張セーブデータです。 アプリケーションのユニーク ID をこの設定に含めた場合、UseOtherVariationSaveData の指定にかかわらず、拡張セーブデータへのアクセスが可能になります。 この設定を使用した場合は UseOtherVariationSaveData の解釈が拡張されます。詳細については、「4.1.2.4. 体験版のセーブデータにアクセスする場合」を参照してください。 |
AccessControlInfo | UseExtSaveData |
「true」を指定します。 AccessibleSaveDataIds が指定されている場合は使用することができません。 |
ExtSaveDataNumber |
通常はアプリケーションのユニーク ID を指定します。 拡張セーブデータを共有する場合は共有の ID(共有するタイトルのユニーク ID)を指定します。 例えば、あるタイトルの続編が前作の拡張セーブデータを共有する場合は、前作のユニーク ID を指定します。 AccessibleSaveDataIds が指定されている場合は使用することができません。 |
AccessControlInfo: AccessibleSaveDataIds: - 0xFF3FF
以下のようなケースでは、どのアプリケーションのユニーク ID とも重複しない新しい拡張セーブデータ番号が必要になることがあります。
- 複数のアプリケーションがそれぞれ自分自身の拡張セーブデータを持ち、それとは別に共有するための拡張セーブデータを利用したい場合
- パッチを適用して、新たに拡張セーブデータ内のファイルを追加したいが、既存の拡張セーブデータに格納可能なファイル、ディレクトリの最大数を超えてしまう場合
- そのほかの理由で、ほかのアプリケーションとは独立して 1 つのアプリケーションで複数の拡張セーブデータを利用したい場合
上記のような場合に拡張セーブデータ番号を新しく取得したい場合は弊社窓口までご相談ください。
AccessControlInfo の AccessibleSaveDataIds が指定されている場合は、UseExtSaveData および ExtSaveDataNumber の指定を使用することができません。この場合、アクセスしたい拡張セーブデータの拡張セーブデータ ID を AccessibleSaveDataIds に含めるか、その拡張セーブデータ ID とアプリケーションのユニーク ID が同じならば UseOtherVariationSaveData に「true」を指定することで使用可能になります。
ファイルシステムのアクセス権利属性(AccessControlInfo の FileSystemAccess)に「Debug」を指定すると、SD カードへの直接アクセスが可能になります。それに付随して、製品版ではアクセスできないデータ(AccessibleSaveDataIds に指定されていない別アプリのセーブデータと拡張セーブデータ、OtherUserSaveDataID* に指定されていない別アプリのセーブデータ、ExtSaveDataNumber に指定されていない拡張セーブデータ)へのアクセスも可能となります。そのため、動作検証は「Debug」を指定していない状態で行うようにしてください。
4.1.4. マスター提出用 ROM 作成時の設定
マスター提出用に ROM を作成するときは、以下の項目を追加もしくは開発時に指定していた内容から変更しなければなりません。
大項目 | 小項目 | 設定 |
---|---|---|
BasicInfo | Title |
アプリケーションのタイトルを指定します。 OMakefile の TITLE を参照する場合は、「$(TITLE)」を指定してください。 |
ProductCode | 弊社発行の製品コードまたは追加コンテンツコードを指定します。 | |
MediaSize |
メディアサイズを指定します。 MediaType が Card1 の場合は、「128MB」、「256MB」、「512MB」、「1GB」、「2GB」、「4GB」 のいずれかを指定します。 MediaType が Card2 の場合は、「512MB」、「1GB」、「2GB」 のいずれかを指定します。 ダウンロードアプリの場合は、カードアプリにした場合に必要になる値を指定してください。 |
|
Logo |
ロゴデータの種類を指定します。
|
|
TitleInfo | UniqueId |
弊社発行のユニーク ID を指定します。 試作用コードを使用していた場合は、AccessControlInfo の ExtSaveDataNumber の指定も確認してください。 |
BasicInfo: Title: $(TITLE) ProductCode: "CTR-A-00001" MediaSize: 512MB Logo: Licensed TitleInfo: UniqueId: 0x41001
4.1.5. リマスターバージョンの設定
すでにリリースされているアプリケーションに修正を加えた場合、リマスターバージョンを更新しなければなりません。
リマスターバージョンを更新した場合、カードアプリはすでに販売されているソフトウェアをバージョンアップすることはできませんが、ダウンロードアプリはユーザーの手元で遊ばれているソフトウェアをバージョンアップすることができます。
大項目 | 小項目 | 項目の内容 |
---|---|---|
SystemControlInfo | RemasterVersion | CXI のリマスターバージョンを指定します。 |
SystemControlInfo: RemasterVersion: 1
ダウンロードアプリのバージョンには、この CXI のリマスターバージョンがそのまま使用されます。CXI のリマスターバージョンが 1 であれば、ダウンロードアプリのバージョンも 1 となります。ダウンロードアプリをリリースしたあと、CXI のバージョンアップを行うごとに 1 ずつ増加していくことになります。
バージョンアップが行われる場合はセーブデータが維持されるため、新しいバージョンのダウンロードアプリは過去にリリースされたすべてのバージョンのセーブデータを適切に扱えるよう実装する必要があります。セーブデータのフォーマットを恒久的に変更しないか、あるいは事前にバージョン番号を埋め込んでおきプログラムで変更に対応できるようにしてください。
なお、ダウンロードアプリのバージョンアップ前後で RSF の下記の項目を変更することは禁止されています。
大項目 | 小項目 | 項目の内容 |
---|---|---|
BasicInfo | Title | アプリケーションのタイトル |
ProductCode | 製品コード | |
TitleInfo | UniqueId | ユニーク ID |
Rom | SaveDataSize | セーブデータ領域のサイズ |
4.2. BSF ファイル
BSF ファイルは ctr_makebanner で ICN ファイル(アイコンデータ)と BNR ファイル(バナーデータ)を作成する際に必要となる設定ファイルです。
BSF ファイルには、アイコンデータとバナーデータの作成に使用する、アイコンファイル、モデルファイル、サウンドファイルを指定します。これらのファイルは事前に作成しておく必要があります。
LittleIconFile と BigIconFile に指定するアイコンファイルには ctr_TexturePackager で作成する ctpk ファイルを使用します。
ModelFile に指定するモデルファイルには ctr_BannerModelConverter で作成する cbmd ファイルを使用します。
SoundFile に指定するサウンドファイルには ctr_WaveConverter で作成する bcwav ファイルを使用します。
また、HOMEメニューなどで表示されるタイトル名や、カードリージョン等のアプリケーションの設定も行います。
詳しくは CTR-SDK のツール「ctr_makebanner」のリファレンスを参照してください。
子機プログラムには BNR ファイルが必要ありませんので、子機プログラム用にモデルファイルとサウンドファイルを用意する必要はありません。
LittleIconFile: resources/little.ctpk BigIconFile: resources/big.ctpk ModelFile: resources/model.cbmd SoundFile: resources/sound.bcwav Region: Japan Ulcd: True AutoSave: False SaveData: True ThumbnailFrame: 0 RatingRequired: True CERO: 12 JPLongName: テストアプリケーション JPShortName: テストアプリケーション JPPublisher: テスト ENLongName: TestApplication ENShortName: TestApplication ENPublisher: Test
4.3. 電子取扱説明書
電子取扱説明書のファイルは CTR-ManualTools を使用して作成します。アプリケーションに含める電子取扱説明書のファイル名は Manual.bcma でなければならないことに注意してください。
電子取扱説明書のバイナリファイル(*.bcma)のファイルサイズは、1 言語あたり最大 6656 KByte です。
詳しくは「CTR-ManualTools」のドキュメントを参照してください。