Dreamcast Software Development Standards Version 2.31J

## 2. コントロールポート

ドリームキャストはコントロールポート・ペリフェラルを「商品毎のID」で管理するような仕組みではありません。 その代わりに、それぞれのペリフェラルがどのデバイスを所持しているかを取得することができます。 また、ペリフェラルがコントローラデバイスを所持している場合、どのボタンをコントロールしているかを取得することができます。

IDで管理を行わずこのような管理を行うことで、 新規に発売されるペリフェラルにも既存のアプリケーションが対応できるような柔軟な構造になっています。

△注意： すべてのコントローラデバイスが、 「Aボタン」「Bボタン」「スタートボタン」「方向ボタン」を持っていることは保証しますが、 「Xボタン」「Yボタン」「Lトリガー」「Rトリガー」「アナログ方向キー」は、保証されません。

■必須： アプリケーションを動作させるのに最低限必要なボタンをアプリケーションのIP(イニシャルプログラム)情報の中に格納すること。

ここで「最低限必要なボタン」には、後述する「(→ソフトウェアリセット)」の必須項目に対応するために、 「ドリームキャスト・コントローラ」でのソフトウェアリセット用のボタン(「Aボタン」「Bボタン」「Xボタン」「Yボタン」「スタートボタン」)を含める必要があります。

△注意： ハードウェアキーボードはコントローラデバイスを所持していません。 セガサターンのキーボードような『標準コントローラのAボタンがキーボードのZのキーにアサインされる』といった仕様はありません。 ハードウェアキーボードでの操作は文字入力のみに使用されることになります。 それ以外の操作は別のコントロールポートに挿入したペリフェラルで行う必要があります。

■必須： 未対応のペリフェラルがコントロールポートに挿入されていても、アプリケーションを異常動作させてはならない。

対応していないコントローラデバイスでは正常にプレイできるとはかぎらないため、アプリケーションの取扱説明書には『対応していないコントローラでの動作は保証されません』などの表記をしてください。

□推奨： 未知のコントローラデバイスが接続されたとき、アプリケーションで必要なボタンより不足していても、他のボタンや機能（メニューなど）で代用し、なるべく正常に動作するようにすること。

### 2.1. 操作可能コントロールポート

#### 2.1.1 プレーヤー1人につき1つのコントローラデバイスを使用するアプリケーション

操作するプレーヤーが一人だけでその１人が１つのコントローラデバイスを利用する場合と、 複数のプレーヤーがそれぞれ１人ずつに１つコントローラデバイスを所持した場合についての規定です。

■必須： コントロールポートは、プレーヤー数に合わせコントロールポートAから順にコントローラデバイスに対して有効にすること。 また、複数プレーヤーによってプレイ可能なアプリケーションはコントロールポートAから順にプレーヤー番号を割り当てること。

■必須： 割り当てられていないコントロールポートはコントローラデバイスからは操作できないようにすること。

例えば、２人で対戦するアプリケーションの場合、コントロールポートAとコントロールポートDで対戦させるようにしてはならないということです。 また、コントロールポートAから順にコントローラデバイスを有効にしなければならないため、コントロールポートCとコントロールポートDのような組み合わせも認めていません。 コントロールポートAとコントロールポートBを使ってください。

メモリーカード(記録デバイス)はコントローラデバイスではないので、割り当てられていない他のコントロールポートをファイルのセーブやロードに使用することはこの必須項目には該当しません。

#### 2.1.2 １人のプレーヤーが複数のコントロールポート・ペリフェラルを同時に使用する場合

■必須： １人のプレーヤーが複数のコントロールポート・ペリフェラルを同時に使用する場合、どのコントロールポートからでも利用可能とし、コントロールポートによって割り当てを規定しないこと。

### 2.2. コントロールポートのチェック

■必須： アプリケーションスタート時に挿入されている「コントロールポート・ペリフェラル」は利用可能なものとして割り当てること。

「利用可能」と「操作可能」とは違います。 ここでは「利用可能なデバイス」とはコントローラデバイス以外のデバイス、例えば記録デバイスなどのことを示します。

■必須： 他のプレーヤーが途中参加することが可能なアプリケーションの場合、コントロールポートに「対応コントローラ」が挿入されたたときは、その「対応コントローラ」を認識すること。

### 2.3. 対応コントローラがコントロールポートから抜かれたとき

□推奨： 操作可能であった「対応コントローラ」がコントロールポートから抜かれた場合は、ポーズ状態にして、「対応コントローラ」が抜けていることを警告するメッセージを表示すること。

以下のような場合は、上記項目に対応できないと考えられます。

- ポーズ機能に対応していないアプリケーションの場合
- 技術的・容量的にポーズがかけられない場合（参照「12.ポーズ」）
- 技術的・容量的に警告文が表示できない場合

アプリケーションからは、ビジュアルメモリが挿入されたのと、コントロールポート・ペリフェラルが一定時間抜かれた場合との区別がつきません。ビジュアルメモリが認識されるまで0.5秒程度(電池が消耗していると3秒程度)必要とします。 アプリケーションからはこの判断できないので、プレーヤーが勘違いしないように、上記警告表示を行う時は「コントローラが抜けているかメモリーカードの認識中」であることを表示してください。なお、これはビジュアルメモリ挿入時の場合であり、抜かれたときは上記の時間は必要としません。

### 2.4. 対応コントローラが同じコントロールポートに挿し直されたとき

■必須： それまで操作可能であった「デバイス」がコントロールポートから抜かれ、同様のもしくは同種の「デバイス」が同じコントロールポートに挿し直されたとき、その直後からそのデバイスを認識すること。

「対応コントローラ」の拡張ソケットに「記録デバイス（メモリーカード）」が挿入されていた場合は、「記録デバイス」への対応も必要です。 （参照「15.記録デバイス」）

### 2.5. 対応コントローラが他のコントロールポートに挿し直されたとき

■必須： 「プレーヤー1人につき1つのコントローラを使用するアプリケーション」でかつ「１プレイ専用のアプリケーション」の場合は、それまで操作可能であった「対応コントローラ」がコントロールポートから抜かれ、同様のもしくは別の「対応コントローラ」が他のコントロールポートに挿し直されたとき、操作できないようにすること。

□推奨： プレーヤー1人が複数のコントローラを同時使用するアプリケーションの場合は、それまで操作可能であった「対応コントローラ」がコントロールポートから抜かれ、同様のもしくは他の「対応コントローラ」が他のコントロールポートに挿し直されたとき、操作可能にすること。

### 2.6. 各ペリフェラル毎の対応

各種コントロールポート・ペリフェラルについてのこの章での条項以外の対応については、「18. 各ペリフェラルとソフトウェアキーボード」を参照してください。

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000