# DreamcastのGUI画面に関する説明

### 1998年9月21日
(株)セガ・エンタープライゼス
テクニカルサポートセンター

### この文書では、BOOT ROMの中に含まれているGUI画面のうち、アプリケーションの制作に必要と思われる情報をまとめたものです。
又、このドキュメントはBOOT ROM Ver. 0.813をもとにして作成されたものであり、今後のBOOT ROMのバージョンアップによって、一部機能、呼称等が変更する場合があります。

## メインメニュー

この画面は、BOOT ROMが起動した後オープニングアニメーションが終わった後の画面ですが、これを、メインメニューといいます。 メインメニューでは、Dreamcastディスクの起動、CD及びGDのDigital Audioトラック再生、バックアップファイル管理、ユーザーコンフィギュレーションの4つの機能があります。
これらの機能のいくつかは、Dreamcastディスクの中身やバックアップの中身によってはバリエーションにとんだ演出を施すことが出来ます。
これらの機能やフォーマットについて説明します。
BOOT ROMの開発版によっては、右上の時刻情報以外にBOOT ROMのバージョンが出る場合があります。

## ファイル管理画面

マルチプレイヤ画面のトップメニューから「ファイル」を選択すると、次のような画面が現れます。

この例の場合、ポートAには2つのメモリカードが挿さっています。
コントローラの手前のポートには、既に製品として売られている
「あつめてゴジラ 怪獣大集合」
のビジュアルメモリが挿してあり、この画面では、そのゴジラのアイコンが見て取れます。
このアイコンをボリウムアイコンといい、ビジュアルメモリにVM用のプログラムデータとは別に、このアイコン情報専用のデータを準備する必要があります。
このデータは、「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で埋めてください。
モノクロアイコンデータ
  GUI実行時に、ビジュアルメモリの液晶画面に現れる絵のことです。
  32x32ドットで、1ビット1ドットで1バイトに8ドット分の情報が入ります。ビットが立っていれば(1ならば)黒、立っていなければ(0ならば)白という意味で、上位ビットから下位ビットに向かって左から右のピクセル情報が入ります。
カラーアイコンのパレットデータ
  ボリウムアイコン用のパレットデータで、ARGB4444のカラーデータを、全部で16色分登録します。
カラーアイコンのピクセルデータ
  ボリウムアイコンのピクセルデータを、パレット形式であらわします。
  4ビットで1ドットになり、上位4ビットが左、下位4ビットが右のピクセルデータをあらわします

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

### セーブデータについて

さて、この画面で使用するメモリカードを選択してAボタンを押すと、次のような画面が現れます。

この画面では、選択されたメモリカードにセーブされているファイルの一覧と、選択されたファイルの詳細な情報を表示します。
この画面に出てくるさまざまな情報について、詳しく解説していきましょう。
図中、番号とアルファベットが振られていますが、これらの呼称は次の通りです。

1 | GUI コメント
2 | ファイル名
3 | VM コメント
4 | セーブ時刻
5 | 使用ブロック数
6 | データの種類

Aにはビジュアルコメントというものが表示されます。 ビジュアルコメントは、例えば、ゲームのある場面の情報を縮小して保存し、見せるとか、「第2章」みたいな形でセーブされているデータの情報を、ビジュアル的に見せる演出などに使うものです。
また、セーブされたデータを示すアイコンは、アニメーションの情報を持つことが出来、ファイル管理画面に表示されたアイコンにアニメーション情報が含まれていれば、そのアイコンは、管理画面表示中はアニメーションします。上の絵ですと、ゴジラが火を吐くアニメーションが再生されます。

では、次にこのビジュアルメモリにセーブされるボリウムアイコン以外のデータは、どのようなファイル形式になっているのかを見ていきましょう。
セーブされるファイルは、データあるいはプログラム以外に、インフォメーションフォークが付加されていなければなりません。
インフォメーションフォークは、VMプログラム、データフォーマットは共通ですが、付加する位置が異なります。
VMプログラムの場合、VMプログラム用のリセットベクタなど、リソース情報の後に、インフォメーションフォークを付け加え、その後、VMプログラム本体が来ます。セーブデータなどVMプログラム以外のデータの場合は、データの前に付加する必要があります。

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

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

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

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

・必ず必要なセクション

| +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
+0000 | VM コメントデータ
+0010 | GUIコメントデータ
+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文字以内に収めます。VMSコメントとして許される文字については、別表をご覧ください。
GUI コメントデータ
  メインメニューのファイル管理画面で表示されるファイルのコメント。アルファベットのみで最大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データの作成または、チェックを行いますが、この値を使う使わないは、ユーザアプリケーションに委ねられています。
セーブデータサイズ
  セーブするデータのブロックサイズです。
(※)
  予約。00hで埋めてください。
アイコンのパレットデータ
  アニメーションアイコンのパレットデータを収納します。形式は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文字を超えているために、GUIコメントに略称を使用している時は、略称を打ち込む対象にしてください。
  例)
    正式名「弥次さん喜多さん道中記 〜東海道その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を指定した場合には、デフォルトカラーの白となります。

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

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

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

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

## CD再生画面

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

CDプレイヤには、CDまたはGDの挿入時、CDの絵がせりあがり、くるくると回るデモがありますが、このCDの絵をアプリケーション側で用意することが出来ます。
アプリケーションのGDROM内に以下の条件で作成された「0GDTEX.PVR」というファイルを置いておくと、その絵が貼り付けられた形で、このプレイヤのCDがアニメーションします。

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

円形のテクスチャデータを用意する必要があるので、ガイドラインとしてセガよりPhotoshopのデータを提供しますので、それに合わせてオリジナルテクスチャデータを作って頂くことになります。
実際に差し替えた後のイメージは次のようになります。

## 設定画面

GUIのトップメニューから右下のセットを選択すると、各種設定画面に変ります。

ここでは大きく分けて、4つの設定を行いそれを保存することが出来ますが、SEGAライブラリにおいて、この画面で設定した内容のいくつかについては更新や参照を行うことが出来ます
ライブラリでこの設定に対して読み書きできるのは、日付時刻情報と、ステレオ・モノラル情報の二つになります。
日付時刻情報の変更・参照は、リアルタイムクロック関数を使用し、
具体的に、参照は、
syRtcGetDate関数
変更は
syRtcSetDate関数
になります。
ステレオ・モノラル情報の変更・参照はコンフィギュレーション関数を使用し、
参照は
syCfgGetSoundMode関数
変更は
syCfgSetSoundMode関数
です。
但し、ステレオ・モノラル情報はあくまで、内蔵フラッシュの内容を書きかえるだけであって、ここを書き換えたからといってアプリケーションの出力がステレオ・モノラルに自動的に切り替わるわけではありません。
アプリケーションは、syCfgGetSoundMode関数を使用し、ユーザがどういう設定にしているのかを判断した後、サウンド関数sdSndSetSpace関数を用いて、サウンドドライバの設定を変更する必要があります。

オーバービューに戻る