# メニュー画面の解説

1999年4月27日 株式会社セガ・エンタープライゼス テクニカルサポートセンター

このドキュメントは BootROMの中に含まれているメニュー画面のうち、 アプリケーション制作に必要と思われる情報をまとめたものです。

## メインメニュー

この画面はBootROMプログラムが起動し、オープニングアニメーションが終わった後の画面です。 これをメインメニューと呼びます。

メインメニューには４つのアイコンが表示されており、それぞれ「プレイアイコン」、「サウンドアイコン」、 「ファイルアイコン」、「セットアイコン」と呼びます。

  アイコン | 機能
  --- | ---
  プレイアイコン | ドリームキャストディスクの起動
  サウンドアイコン | CD及びGDのオーディオトラック再生
  ファイルアイコン | メモリーカード管理
  セットアイコン | ユーザーコンフィギュレーション

これらの機能のいくつかは、ディスクの中身やメモリーカードの中身によって演出を施すことができます。

これらの機能やフォーマットについて説明します。

※BootROMの開発版では、右上の時刻情報の上にBootROMのバージョンが表示されます。

## メモリーカード選択画面

メインメニューから「ファイルアイコン」を選択すると、次のような「メモリカード選択画面」が現れます。

この画面の例では、コントロール・ポートAには２つのメモリカードが挿入されています。

拡張ソケット１には、ビジュアルメモリ「あつめてゴジラ 怪獣大集合」が挿入されています。 拡張ソケット２には、アプリケーションの入っていない通常のビジュアルメモリが挿入されています。

表示されているゴジラのアイコンをボリュームアイコンといい、 ビジュアルメモリアプリケーションでは、 プログラムデータとは別にこのアイコンのデータを用意する必要があります。

このデータは「ICONDATA_VMS」というファイル名で、 次のようなフォーマットでなければなりません。

| +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
+0000 | VM コメントデータ
+0010 | モノクロアイコンデータへのオフセット | カラーアイコンデータへのオフセット | リザーブ
+0020 | モノクロアイコンデータ
+00A0 | カラーアイコンのパレットデータ
+00C0 | カラーアイコンのピクセルデータ
+02B0

それぞれの用語の意味は以下のとおりです。

  用語 | 意味
  --- | ---
  VMコメントデータ | ファイルメニュー画面で表示されるファイルの名称
  モノクロアイコンデータへのオフセット | ファイルの中のモノクロアイコンデータが収納されているところまでのバイトオフセット (00000020hが入る)
  カラーアイコンデータへのオフセット | カラーアイコンのパレットデータが収納されているところのファイル先頭からのバイトオフセット (000000A0hが入る)
  リザーブ | (00hで埋める)
  モノクロアイコンデータ | メニュー時にビジュアルメモリの液晶画面に現れるビットマップ・ 32x32ドット・1ビット1ドットで1バイトに8ドット分の情報・ビットが立っていれば(1ならば)黒、立っていなければ(0ならば)白という意味で上位ビットから下位ビットに向かって左から右のピクセル情報
  カラーアイコンのパレットデータ | ボリュームアイコン用のパレットデータで、ARGB4444のカラーデータを全部で16色分登録
  カラーアイコンのピクセルデータ | ボリュームアイコンのピクセルデータを、パレット形式で現す。 4ビットで1ドットになり、上位4ビットが左、下位4ビットが右のピクセルデータを現す

  ※データはすべてリトルエンディアン

### セーブデータ

メモリカード選択画面でメモリカードを選択してAボタンを押すと、次のような「ファイルメニュー画面」が現れます。

この画面では、選択されたメモリカードにセーブされているファイルの一覧と 選択されたファイルの詳細な情報を表示します。
図中の番号とアルファベットでしめされるポイントは次の名称で呼ばれます。

  番号 | 名称
  --- | ---
  1 | ゲームタイトル(BootROMコメント)
  2 | ファイル名
  3 | コメント(VMコメント)
  4 | 日付／時間
  5 | 使用ブロック数
  6 | GAME／DATA
  A | ビジュアルコメント

ビジュアルコメントは、ゲームのある場面の情報を縮小して保存したものを表示したり、 セーブされている進行具合をビジュアル的に演出してみせるときに使われます。

セーブされたデータを示すアイコンはアニメーション情報を持つことができ、 ファイルメニュー画面に表示されたファイルアイコンにアニメーション情報が含まれていれば、 そのアイコンが表示中はアニメーションを行います。 上記の画面では、ゴジラが火を吐くアニメーションが表示されます。

次にこのビジュアルメモリにセーブされるボリュームアイコン以外のデータが、 どのようなファイル形式になっているのかを説明します。

セーブされるファイルはデータあるいはプログラム以外に、 インフォメーションフォークが付加されていなければなりません。

インフォメーションフォークは、ビジュアルメモリ・プログラム、 データフォーマットは共通ですが付加する位置が異なります。

ビジュアルメモリ・プログラムの場合、ビジュアルメモリ・プログラム用のリセットベクターなど、 リソース情報の後にインフォメーションフォークを付け加え、その後ビジュアルメモリ・プログラム本体が来ます。 セーブデータなどビジュアルメモリ・プログラム以外のデータの場合は、データの前に付加する必要があります。

  ビジュアルメモリ用プログラムの場合 | データの場合
  --- | ---

  +0000h | ビジュアルメモリプログラム用リソース(ベクターテーブルなど)
  +0200h | インフォメーションフォーク
  +xxxxh | ビジュアルメモリ用プログラムデータ

  インフォメーションフォーク
  データ

インフォメーションフォークは、2つのセクションに別れます。
一つは必ず必要なセクション、もう一つは使用する機能によっては必要となるセクションで、 フォーマットは次のようになります。

・必ず必要なセクション

| +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
+0000 | VMコメントデータ
+0010 | ゲームタイトルデータ(BootROMコメント)
+0020
+0030 | ソート用ゲーム名称
+0040 | アイコン数 | アニメスピード | ビジュアルタイプ | CRC | セーブデータサイズ | (※)
+0050 | (※)
+0060 | アイコンのパレットデータ
+0070
+0080 | アイコンNo1のピクセルデータ
+0270

・使用する機能に応じて必要になるセクション

| +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
+0280 | アイコンNo2のピクセルデータ
+xxxx
+xxxx | アイコンNo3のピクセルデータ
+xxxx
+xxxx | ビジュアルコメント用のパレットやピクセルのデータ
+xxxx

※データはすべてリトルエンディアンで記述してください。

表中の用語は次のような意味があります。

VMコメントデータ
  ビジュアルメモリのファイル管理画面で表示されるファイルの名称で、 ASCIIコードを使用し全部で16文字以内に収めます。 VMコメントとして許される文字については、別表をご覧ください。
ゲームタイトルデータ(BootROMコメント)
  メインメニューのファイル管理画面で表示されるゲームタイトル。 アルファベットのみで最大32文字、全角漢字かな混じりも可能で、その場合最大16文字です。 ASCII及びシフトJISコードを使用します。
ソート用ゲーム名称
  メインメニューでファイルをソートする際に使用する文字列。
  コードは独自コードで詳細は後で述べます。
アイコン数
  アニメーションさせるアイコンの枚数で、1枚から3枚まで可能です。
アニメーションスピード
  アニメーションさせるアイコンのスピードで、ここで指定した値をnとすれば、n/30秒で次の絵に変ります。(1→2→3→1→ というように変化していきます。)
ビジュアルタイプ
  ビジュアルコメントの種類を指定します。

  0 | ビジュアルコメントを使用しない
  1 | タイプAを使用

  サイズ | 72×56ドット
  カラー形式 | ダイレクトカラー(ARGB4444)
  パレット | 使用しない
  ピクセルデータ | 1ドットにつき、2バイトで左上から右下にむかって収納する
  ビジュアルコメントデータとして 使用するブロック数 | 16ブロック

  2 | タイプBを使用

  サイズ | 72×56ドット
  カラー形式 | 256色パレット形式(8ビット)
  パレット | 使用し、ARGB4444の形式にする
  ピクセルデータ | 1ドットにつき、1バイトで左上から右下にむかって収納する
  ビジュアルコメントデータとして 使用するブロック数 | 8ブロック

  3 | タイプCを使用

  サイズ | 72×56ドット
  カラー形式 | 16色パレット形式(4ビット)
  パレット | 使用し、ARGB4444の形式にする
  ピクセルデータ | 2ドットにつき、1バイトで左上から右下にむかって収納する
  ビジュアルコメントデータとして 使用するブロック数 | 4ブロック

CRC
  CRCデータを収納します。バックアップユーティリティ関数を使用すると、自動的にCRCデータの作成または、チェックを行いますが、この値を使う使わないは、ユーザアプリケーションに委ねられています。
セーブデータサイズ
  ドリームキャスト・アプリケーションのセーブデータ部分(インフォメーションフォークを除く)のサイズを バイト数で指定します。
  ビジュアルメモリで実行可能ファイルの場合はファイル全体のバイト数を指定してください。
  (※) ただしこのデータは、BootROMのファイル管理画面では参照していません。
アイコンのパレットデータ
  アニメーションアイコンのパレットデータを収納します。形式はARGB4444で、16色(4ビット)です。
  アイコンを複数枚使用する場合(アニメーションさせる場合)でも、パレットは一種類になります。
  つまり、アニメーションアイコン用パレットは共有して使用します。
アイコンNo.1のピクセルデータ
  4ビットパレット形式で、ファイルのアイコンを定義します。
  ピクセルサイズは32ドット×32ドットです。
  アニメーションさせないのであれば、この一枚のみ設定すればいいですが、アニメーションさせる場合、枚数分だけ、このセクションの後にも続けて設定する必要があります。
アイコンNo.2のピクセルデータ
  二枚または三枚のアイコンデータを使用してアイコンをアニメーションさせる時に使用します。
  仕様はNo.1のアイコンと同じです。
アイコンNo.3のピクセルデータ
  三枚のアイコンデータを使用してアイコンをアニメーションさせる時に使用します。
  仕様はNo.1のアイコンと同じです。
ビジュアルコメント用のパレットやピクセルのデータ
  ビジュアルコメントを使用する場合に使います。ビジュアルコメントの種類(タイプAからタイプC)により、扱うデータが異なります。
  パレットを使用する場合、最初にパレットの定義をして、その後ピクセルデータの定義をします。
  ビジュアルコメントは非常にバックアップ容量を使用しますので、ソフトウェア作成基準などを参考に、利用するしないや、使用するタイプを決めてください。

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
0 |  |  | SP | 0 | @ | P | ` | p |  |  |  | - | タ | ミ |  |
1 |  |  | ! | 1 | A | Q | a | q |  |  | 。 | ア | チ | ム |  |
2 |  |  | " | 2 | B | R | b | r |  |  | 「 | イ | ツ | メ |  |
3 |  |  | # | 3 | C | S | c | s |  |  | 」 | ウ | テ | モ |  |
4 |  |  | $ | 4 | D | T | d | t |  |  | 、 | エ | ト | ヤ |  |
5 |  |  | % | 5 | E | U | e | u |  |  | ・ | オ | ナ | ユ |  |
6 |  |  | & | 6 | F | V | f | v |  |  | ヲ | カ | ニ | ヨ |  |
7 |  |  | ' | 7 | G | W | g | w |  |  | ァ | キ | ヌ | ラ |  |
8 |  |  | ( | 8 | H | X | h | x |  |  | ィ | ク | ネ | リ |  |
9 |  |  | ) | 9 | I | Y | i | y |  |  | ゥ | ケ | ノ | ル |  |
A |  |  | * | : | J | Z | j | z |  |  | ェ | コ | ハ | レ |  |
B |  |  | + | ; | K | [ | k | { |  |  | ォ | サ | ヒ | ロ |  |
C |  |  | , | < | L | \ | l | | |  |  | ャ | シ | フ | ワ |  |
D |  |  | - | = | M | ] | m | } |  |  | ュ | ス | ヘ | ン |  |
E |  |  | . | > | N | ^ | n | ~ |  |  | ョ | セ | ホ | ゛ |  |
F |  |  | / | ? | O | _ | o |  |  |  | ッ | ソ | マ | ゜ |  |

別表：VMコメントおよび、セーブファイル名として使える文字(表中、赤い文字)
なお、この表では、HTMLの制限上、カナが全角になっていますが、実際には半角です。

### ソート用ゲーム名称とソートについて

ファイルメニュー画面でファイルのソートをするために、 ソート用ゲーム名称を設定する必要があります。

ソート用ゲーム名称は、ある取り決めに従った文字と文字数だけで、アプリケーションの名称を表現し、 できた文字列を専用の変換表を用いて独自のコードに変換します。

以下は、ソート用ゲーム名称に使用できる文字です。

No | 文字 | 16進
--- | --- | ---
00 | なし | 00
01 | ア | 01
02 | ァ | 02
03 | イ | 03
04 | ィ | 04
05 | ウ | 05
06 | ヴ | 06
07 | ゥ | 07
08 | エ | 08
09 | ェ | 09
10 | オ | 0A
11 | ォ | 0B
12 | カ | 0C
13 | ガ | 0D
14 | キ | 0E
15 | ギ | 0F
16 | ク | 10
17 | グ | 11
18 | ケ | 12
19 | ゲ | 13

No | 文字 | 16進
--- | --- | ---
20 | コ | 14
21 | ゴ | 15
22 | サ | 16
23 | ザ | 17
24 | シ | 18
25 | ジ | 19
26 | ス | 1A
27 | ズ | 1B
28 | セ | 1C
29 | ゼ | 1D
30 | ソ | 1E
31 | ゾ | 1F
32 | タ | 20
33 | ダ | 21
34 | チ | 22
35 | ヂ | 23
36 | ツ | 24
37 | ヅ | 25
38 | ッ | 26
39 | テ | 27

No | 文字 | 16進
--- | --- | ---
40 | デ | 28
41 | ト | 29
42 | ド | 2A
43 | ナ | 2B
44 | ニ | 2C
45 | ヌ | 2D
46 | ネ | 2E
47 | ノ | 2F
48 | ハ | 30
49 | バ | 31
50 | パ | 32
51 | ヒ | 33
52 | ビ | 34
53 | ピ | 35
54 | フ | 36
55 | ブ | 37
56 | プ | 38
57 | ヘ | 39
58 | ベ | 3A
59 | ペ | 3B

No | 文字 | 16進
--- | --- | ---
60 | ホ | 3C
61 | ボ | 3D
62 | ポ | 3E
63 | マ | 3F
64 | ミ | 40
65 | ム | 41
66 | メ | 42
67 | モ | 43
68 | ヤ | 44
69 | ャ | 45
70 | ユ | 46
71 | ュ | 47
72 | ヨ | 48
73 | ョ | 49
74 | ラ | 4A
75 | リ | 4B
76 | ル | 4C
77 | レ | 4D
78 | ロ | 4E
79 | ワ | 4F

No | 文字 | 16進
--- | --- | ---
80 | ヰ | 50
81 | ヱ | 51
82 | ヲ | 52
83 | ン | 53
84 | 0 | 54
85 | 1 | 55
86 | 2 | 56
87 | 3 | 57
88 | 4 | 58
89 | 5 | 59
90 | 6 | 5A
91 | 7 | 5B
92 | 8 | 5C
93 | 9 | 5D

この表にある文字を使用し、16文字以内でソート用ゲーム名称を設定します。
設定の仕方について例をあげて説明します。

本来のアプリケーションのタイトルの先頭16文字分をソート用ゲーム名称の対象とします。
  例)
    「あつめてゴジラ 怪獣大図鑑」
    「アツメテゴジラカイジュウダイズカ」
長音は小母音に置き変えます。
  例
    「ネーム」
    「ネェム」
「は」を「わ」と読む場合でも「ハ」を使います。
  例)
    「大様の耳はロバの耳」
    「オオサマノミミハロバノミミ」
1ヶ月、1ヶ年などの「ヶ」は「カ」を使用します。
  例)
    「無人島10ヶ月」
    「ムジントウジュッカゲツ」
英語のタイトルの場合、仮名に直したものを使ってください
  例)
    「Star」
    「スタァ」
中ぽち「・」、スペース「 」、ハイフン「−」、「○」、「◆」等のマークや記号は無視します。
  例)
    「ソニック・ザ・ヘッジホッグ」
    「ソニックザヘッジホッグ」
  ただし、これらの記号が読みとして使われる場合は、その限りではありません。
  例)
    「夏100%」
    「ナツヒャクパァセント」
海外のタイトルの場合、表中の00番で埋めます。
アプリケーションの名称が16文字を超えているために、 ゲームタイトル(BootROMコメント)に略称を使用している時は、略称を打ち込む対象にしてください。
  例)
    正式名「弥次さん喜多さん道中記 〜東海道その1〜」
    略称「弥次喜多道中記 その1」
    「ヤジキタドウチュウキソノ1」
  略称に英語の頭文字などを使用している場合、一般的な読み方を使用しても構いません。
  例)
    「電脳戦機 V.R.」
    「デンノウセンキバァチャロン」
表の84から93(数字)は最後に来ることが前提です。
  例)
    「バーチャファイター3」
    「バァチャファイタァ3」
  次のような使い方はしないでください。
  例)
    「３匹の子豚」
    「3ビキノコブタ」
後編などのタイトルで、タイトルの文字数が16文字を超えるけれども、前作のすぐ後に来るようにソートして欲しい場合、前作のソート用ゲーム名称に数字をつけると、きちんとソートされます。
  例)
    第一作「電脳戦機 V.R.」
    「デンノウセンキバァチャロン」
    第ニ作「電脳戦機 V.R. オラトリオタングラム」
    「デンノウセンキバァチャロン2」
後編などのタイトルで、前作が略称を使用しているような場合、後編もその略称に合わせて、最後に数字をつけるとソートされます。
  例)
    「Jリーグプロサッカークラブを作ろう！」を「Jリーグサカつく」という略称にしていた場合
    「ジェイリィグサカツク」
    「ジェイリィグサカツク2」
タイトル名の最後に年号がある場合は、西暦2000を年頭においてください。
  例)
    1. 「グレイテストナイン98」
    2. 「グレイテストナイン99」
    3. 「グレイテストナイン2000」
    は、そのままだと、3→1→2の順になるので
    1. 「グレイテストナイン1」
    2. 「グレイテストナイン2」
    3. 「グレイテストナイン3」
  とするときれいにソートされます。
数字(巻数など)が2桁を超えることが予想されるようなタイトルの場合には、予め、数字を二桁とって置くといった対策を取ってください。
  例
    「日本文学全集3」
    「日本文学全集12」
    「ニホンブンガクゼンシュウ03」
    「ニホンブンガクゼンシュウ12」
    など。
続編であっても、1、2といった分け方でなく、たとえば上巻、下巻といった区分け方をする場合には、ソート用ゲーム名称の最後を数字して、きちんとソートできるようにする事を、推奨します。
  例
    「武田武勇伝 風の巻」
    「武田武勇伝 林の巻」
    「タケダブユウデン1」
    「タケダブユウデン2」
    など。

実際にソート用ゲーム名称を決定したら、専用のコードに変換する必要があります。

上のような条件にしたがって作成されたソート用ゲーム名称は各文字を、 前記の表のNoの数字に置き換えます。 16文字で16バイトのデータができ上がるので、 それをデータセーブ時にソート用ゲーム名称としてライブラリ関数に渡してください。

### フォーマット時の設定について

ファイルメニュー画面には、 ボディカラーという項目があります。

ボディカラーはボリュームデータとも呼び、ビジュアルメモリのフォーマット(初期化)時に設定できるものです。 このボディカラーはビジュアルメモリの出荷時はすべてデフォルトカラーで、フォーマット時にのみ再設定が可能です。

フォーマットは以下の通りです(単位はバイト)。

  0 | 1 | 2 | 3 | 4 | 5〜32
  --- | --- | --- | --- | --- | ---
  初期化フラグ | Blue | Green | Red | Alpha | 未使用

初期化フラグ (1バイト)
  00h
    カラーデータはない(出荷時)
  01h
    カラーデータが存在
ボディカラーデータ (4バイト)
  青、緑、赤、アルファの順で各8bitです。
  アルファは、00hが透明で値が大きくなると不透明度が増し、FFhで完全不透明
  アルファ以外では00hが暗で、FFhに向かうに従って明度が増します。
  全て00hを指定した場合には、デフォルトカラーの白となります。

ビジュアルメモリのフォーマット時には、ほかにも設定できるものがあります。

上図は、フォーマット設定時の一画面ですが、 ビジュアルメモリにはラベルアイコンというものがあります。
メインメニューのファイル管理画面には、ビジュアルメモリのようなアイコンが表示されますが、そのアイコンの液晶部分に、オリジナルのアイコンを設定できます。
これをラベルアイコンといい、BootROM内には124種類のデフォルトのアイコンを保持しており、 フォーマット時に設定できます。
また、デフォルトのラベルアイコンはBootROMフォントアクセス関数を用いてピクチャデータをプログラム内に取り込むことが可能です。

デフォルトラベルアイコン一覧

また、このアイコンの形状は、BootROMのサービス関数であるBootROMフォント関数で取得することが可能です。
但し、ボリュームアイコンが設定されていれば、そちらの設定のほうが優先されます。

## CD再生画面

メインメニューーのトップメニューから、「サウンドアイコン」を選択するとCDプレイヤ画面に切り替わります。

CDプレイヤにはCDまたはGDの挿入されると、CDのグラフィックが表示回転される画面がありますが、 このCDのグラフィックをアプリケーション側で用意することができます。
アプリケーションのGD-ROM内に以下の条件で作成された 「0GDTEX.PVR」というファイルを置いておくと、 そのグラフィックデータがCDレーベルとして印刷された、CDがアニメーションします。

1. 256×256ドット
2. ARGB4444またはARGB1555形式のカラー形式
3. TWIDDLEテクスチャ
4. グローバルインデックスは0
5. MIPMAPについてはあっても無くても可

円形のテクスチャデータを用意する必要があるので、 サンプルとしてAdobe Photoshopのデータを提供しています。 このデータを参考にしてオリジナルテクスチャデータを作ってください。
実際に差し替えた後のイメージは次のようになります。

注意:ファイル名でソートした時に 「0DGTEX.PVR」ファイルの前には 1st Read file 以外のファイルや ディレクトリがこないようにしなければなりません。

## 各種設定画面

メインメニューから「セットアイコン」を選択すると、各種設定画面に変ります。

ここでは大きく分けて、4つの設定を行いそれを保存することができますが、SEGAライブラリにおいて、 この画面で設定した内容のいくつかについては更新や参照を行うことができます
ライブラリでこの設定に対して読み書きできるのは、 日付時刻情報と、ステレオ・モノラル情報の二つになります。
日付時刻情報の変更・参照は、リアルタイムクロック関数を使用します。

  用途 | 関数
  --- | ---
  日付時刻情報の参照 | syRtcGetDate関数
  日付時刻情報の変更 | syRtcSetDate関数

ステレオ・モノラル情報の変更・参照はコンフィギュレーション関数を使用します。

  用途 | 関数
  --- | ---
  ステレオ・モノラル情報の参照 | syCfgGetSoundMode関数
  ステレオ・モノラル情報の変更 | syCfgSetSoundMode関数

また、言語設定は読み出しのみ可能です。

  用途 | 関数
  --- | ---
  言語設定情報の取得 | syCfgGetLanguage関数

※ステレオ・モノラル情報は内蔵フラッシュの内容を書きかえているだけです。 この内容を書き換えてもアプリケーションの出力がステレオ・モノラルに自動的に切り替わるわけではありません。

アプリケーションは、 syCfgGetSoundMode関数を使用し、 ユーザがどういう設定にしているのかを判断した後、 サウンド関数sdSndSetSpace関数を用いて、 サウンドドライバの設定を変更してください。

Copyright © SEGA ENTERPRISES, LTD., 1998,1999.