4. ビルド前の準備

この節では、プログラム以外で、アプリケーションのビルドまでに用意しておかなければならないファイルの作成方法を説明します。

ビルドまでに、以下のファイルを用意する必要があります。

  • RSF ファイル
  • BSF ファイル
  • 電子取扱説明書

4.1. RSF ファイル

RSF ファイルは ctr_makerom で CCI ファイルや CXI ファイルを作成する際に必要となる設定ファイルです。

詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。

4.1.1. 必須の設定

以下の項目はアプリケーションを作成する上で必須となる項目です。

表 4-1. 必須の設定
大項目 小項目 設定
TitleInfo Category

アプリケーションの種類に従って以下のように指定します。

  • カードアプリ:「Application」
  • ダウンロードアプリ:「Application」(体験版は「Demo」)
  • 子機プログラム:「DlpChild」
  • 追加コンテンツ:「AddOnContents」
    ※ 省略した場合は、ビルド時の DESC ファイルによってアプリケーションの種類が決定されます。
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」が指定されます。

コード 4-1. RSF ファイルの記述例(必須の設定)
TitleInfo:
  Category: Application
  UniqueId: 0xFF3FF
Rom:
  HostRoot: $(ROMFS_ROOT)

4.1.2. セーブデータを使用する場合

アプリケーションでセーブデータを使用する場合、アプリケーションの種類によって設定すべき項目が異なります。

補足:

セーブデータ領域内にはファイルシステムの管理領域などが含まれるため、アプリケーションで実際に使用できる領域は指定した値より小さくなります。セーブデータ領域サイズごとの、実際に利用可能なサイズの値については関数リファレンスの「セーブデータファイルシステム容量計算シート」を参照してください。

なお、nn::fs::GetArchiveFreeBytes() を呼び出すことで、アプリケーションの実行中にアーカイブの空き容量を取得することができます。

4.1.2.1. ゲームカード種別が Card1 のカードアプリ

以下の項目を設定してください。

表 4-2. セーブデータを使用する場合の設定(Card1 のカードアプリ)
大項目 小項目 設定
Rom SaveDataSize 「0KB」、「128KB」、「512KB」から指定します。
コード 4-2. RSF ファイルの記述例(Card1 のカードアプリでセーブデータを使用する場合)
Rom:
  SaveDataSize: 512KB

4.1.2.2. ダウンロードアプリ

以下の項目を設定してください。

表 4-3. セーブデータを使用する場合の設定(ダウンロードアプリ)
大項目 小項目 設定
Rom SaveDataSize

MediaType の指定により異なります。

Card1 の場合:「0KB」、「128KB」、「512KB」から指定します。

Card2 の場合:「nMB」または「nGB」の形式で指定します。
1 MByte 単位でのみ指定が可能で、50 MByte を超える場合は事前に弊社までご相談ください。
なお、ダウンロード専売の場合は 512 KByte まで、カードアプリと併売する場合は 20 MByte までにすることを推奨します。

コード 4-3. RSF ファイルの記述例(ダウンロードアプリでセーブデータを使用する場合)
Rom:
  SaveDataSize: 512KB

4.1.2.3. ゲームカード種別が Card2 のカードアプリ

以下の項目を設定してください。

表 4-4. セーブデータを使用する場合の設定(Card2 のカードアプリ)
大項目 小項目 設定
Rom SaveDataSize

「nMB」または「nGB」の形式で指定します。

1 MByte 単位でのみ指定が可能です。なお、BasicInfo / MediaSize で指定した値の半分が物理的な上限となります。

コード 4-4. RSF ファイルの記述例(Card2 のカードアプリでセーブデータを使用する場合)
Rom:
  SaveDataSize: 32MB

4.1.2.4. 体験版のセーブデータにアクセスする場合

体験版で作成したセーブデータにアクセスする必要があるアプリケーションは以下の項目を設定してください。

表 4-5. 体験版のセーブデータにアクセスする場合の設定
大項目 小項目 設定
AccessControlInfo UseOtherVariationSaveData

「true」または「false」で指定します。

「true」の指定で、nn::fs::MountDemoSaveData() による体験版のセーブデータのマウントが可能になります。

省略した場合は「false」を指定したことになります。

補足:

AccessControlInfo の AccessibleSaveDataIds を指定した場合、そこにアプリケーションのユニーク ID が設定に含まれていなくてもアプリケーションのセーブデータと拡張セーブデータへのアクセスが可能になるように、UseOtherVariationSaveData を「true」に指定した際の解釈が拡張されます。

4.1.2.5. ほかのアプリケーションのセーブデータにアクセスする場合

ほかのアプリケーションのセーブデータにアクセスする必要があるアプリケーションは以下の項目を設定してください。

表 4-6. ほかのアプリケーションのセーブデータにアクセスする場合の設定
大項目 小項目 設定
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. 拡張セーブデータを使用する場合

アプリケーションで拡張セーブデータを使用する場合は、以下の項目を設定してください。

表 4-7. 拡張セーブデータを使用する場合の設定
大項目 小項目 設定
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 が指定されている場合は使用することができません。

コード 4-5. RSF ファイルの記述例(拡張セーブデータ)
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 を作成するときは、以下の項目を追加もしくは開発時に指定していた内容から変更しなければなりません。

表 4-8. マスター提出用 ROM 作成時の設定
大項目 小項目 設定
BasicInfo Title

アプリケーションのタイトルを指定します。

OMakefile の TITLE を参照する場合は、「$(TITLE)」を指定してください。

ProductCode 弊社発行の製品コードまたは追加コンテンツコードを指定します。
MediaSize

メディアサイズを指定します。

MediaType が Card1 の場合は、「128MB」、「256MB」、「512MB」、「1GB」、「2GB」、「4GB」 のいずれかを指定します。

MediaType が Card2 の場合は、「512MB」、「1GB」、「2GB」 のいずれかを指定します。

ダウンロードアプリの場合は、カードアプリにした場合に必要になる値を指定してください。

Logo

ロゴデータの種類を指定します。

  • 任天堂タイトル:「Nintendo」
  • 任天堂タイトル(販売のみ):「Distributed」
  • ライセンシータイトル:「Licensed」
TitleInfo UniqueId

弊社発行のユニーク ID を指定します。

試作用コードを使用していた場合は、AccessControlInfo の ExtSaveDataNumber の指定も確認してください。

コード 4-6. RSF ファイルの記述例(マスター ROM 提出時)
BasicInfo:
  Title:       $(TITLE)
  ProductCode: "CTR-A-00001"
  MediaSize:   512MB
  Logo:        Licensed
TitleInfo:
  UniqueId:    0x41001

4.1.5. リマスターバージョンの設定

すでにリリースされているアプリケーションに修正を加えた場合、リマスターバージョンを更新しなければなりません。

リマスターバージョンを更新した場合、カードアプリはすでに販売されているソフトウェアをバージョンアップすることはできませんが、ダウンロードアプリはユーザーの手元で遊ばれているソフトウェアをバージョンアップすることができます。

表 4-9. リマスターバージョンの設定
大項目 小項目 項目の内容
SystemControlInfo RemasterVersion CXI のリマスターバージョンを指定します。
コード 4-7. RSF ファイルの記述例(リマスターバージョン)
SystemControlInfo:
  RemasterVersion: 1

ダウンロードアプリのバージョンには、この CXI のリマスターバージョンがそのまま使用されます。CXI のリマスターバージョンが 1 であれば、ダウンロードアプリのバージョンも 1 となります。ダウンロードアプリをリリースしたあと、CXI のバージョンアップを行うごとに 1 ずつ増加していくことになります。

バージョンアップが行われる場合はセーブデータが維持されるため、新しいバージョンのダウンロードアプリは過去にリリースされたすべてのバージョンのセーブデータを適切に扱えるよう実装する必要があります。セーブデータのフォーマットを恒久的に変更しないか、あるいは事前にバージョン番号を埋め込んでおきプログラムで変更に対応できるようにしてください。

なお、ダウンロードアプリのバージョンアップ前後で RSF の下記の項目を変更することは禁止されています。

表 4-10. ダウンロードアプリのバージョンアップ時に変更が禁止されている項目
大項目 小項目 項目の内容
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 ファイルが必要ありませんので、子機プログラム用にモデルファイルとサウンドファイルを用意する必要はありません。

コード 4-8. BSF ファイルの記述例
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」のドキュメントを参照してください。