★Dreamcastソフトウェア作成基準
Dreamcastソフトウェア作成基準/Ver.1.00J
今回、Dreamcastでは、コントローラをID管理しておりません。代わりに、キーボード(系)であるか、ガン(系)であるか、コントローラ(系)であるかの情報とともに、そのコントローラが、どのキー(orボタン)を有しているかの情報が返されるようになっています。
IDで管理を行わず、キー(orボタン)で管理することで、将来、別種のコントローラ発売の際も、既存のアプリケーションで、動作に必要なボタンさえ実装されていれば動作可能にできるような柔軟な対応を考えています。
以下で、対応したコントローラという場合、アプリケーション動作に必要なキー(orボタン)を有しているコントローラのことを示します。
注:コントローラの最低限の機能として保証されるのは、A・B・スタートのボタンとデジタル十字キーの機能です。標準コントローラにあるX・Yのボタンと、アナログ十字キーは保証されておりません。
注:アプリケーション動作に必要なキー(orボタン)を、ディスクのIP情報の中に、16ビットのデータとして格納します。
注:今回、ハードキーボードはコントローラ(系)ではなく、サターンの時のような、標準コントローラのAボタンがキーボードのZのキーにアサインされるような仕様はありません。ハードキーボードでの操作は、キー入力に限定されるような形になり、それ以外の操作は別に挿した、コントローラで行うようになります。
□必須:対応していないコントローラの挿さっているコントロールポートからは、アプリケーションを「スタート」または操作させてはならない。
□必須:上記規定に反し、対応していないコントローラで「スタート」または操作可能とする際には、不足しているキー(orボタン)を、コントローラにあるボタンまたは機能で代用されることで正常に動作がされなければならない。
2.1 コントロールポートの使用
(以下の該当するアプリケーションいずれかの覧にてチェックを行ってください。)
□:単一のユーザーが単一のコントローラを使用するアプリケーション (2.1.1)
(1PのRPG、アドベンチャー、等を想定)
□:複数のユーザーがそれぞれが単一のコントローラを使用するアプリケーション(2.1.2)
(2P格闘、4P対戦レースゲーム、複数によるクイズゲーム等を想定)
□:単一のユーザーが複数のコントローラを同時に使用するアプリケーション (2.1.3)
2.1.1 単一のユーザーが単一のコントローラを使用するアプリケーション
◇推奨:ゲームスタート時において、本体のA〜Dの全てのコントロールポート(以下ポート)のいずれであっても、そこに対応コントローラが挿さっていたら、そのポートを使用可能としてください。複数のポートに対応コントローラが挿してあった場合、ポートA>B>C>Dの順序で優先してスタートまたは操作可能とし、それ以降のポートは使用不可としてください。
例:ポートAにガン、ポートBにレーシングコントローラ、ポートCとポートDに標準コントローラが挿さっていて、ガンとレーシングコントローラに対応していないアプリケーションの場合、ポートCの標準コントローラからスタートまたは操作可能とする。ポートA、ポートBは未対応にて、またポートDはポートCにて操作するために、いずれも使用不可。
◇推奨:本体のポートAを1P、ポートBを2P、以下同様と規定する。ゲームスタート時において、ポートAからポートDで対応コントローラが挿さっているポートをスタートまたは操作可能としてください。
□必須:上記推奨に対応した場合、対応プレイヤー数を超えるポートについてはそのポートからスタートまたは操作可能としてはならない。
例:1Pのみまたは2P対戦の可能な格闘ゲーム(3P以上のゲームは不可)において、ポートA、ポートB、ポートDのそれぞれに標準コントローラが挿さっていた場合、ポートA(1Pとして)、ポートB(2Pとして)をスタートまたは操作可能とする。ポートDからはスタートまたは操作は不可とする。
例:4P格闘の場合であれば、対応プレイヤー数を越えるポートはないので(対応プレイヤー数=4、ポート数=4なので)、対応コントローラの挿さっているポートすべてから操作可能とする。
◇推奨:ゲームスタート時において、ポートAからポートDまでのうち、対応コントローラが挿さっているポートを全て(同時に)使用可能としてください。いずれのポートからでもスタートまたは操作可能としてください。
(Internet Explorerの場合、標準コントローラによる画面操作とキーボードによる文字入力を想定していますが、但し標準コントローラをポートA、キーボードをポートDといった規定は今回は設けません。)
2.2 コントロールポートのチェック
□必須:電源ON時に対応コントローラが挿さっていなかったポートでも、ゲームスタート前に対応コントローラが挿された場合、きちんと認識されスタートまたは操作可能とならなければならない。
ゲームスタート前のタイトルループで、頻繁にチェックを行ってください。
◇推奨:途中参加可能なアプリケーションの場合、ゲーム中も頻繁にチェックを行い、ポートに対応コントローラが挿されればそのポートから操作可能となるようにしてください。
◇推奨:アプリケーションのスタート後に、使用していたポートからコントローラが抜かれた場合は、ポーズをかけた上で、「コントローラが抜けているかまたはメモリーカードの認識中です」と画面に警告表示を表示してください。
コントローラが抜けた場合だけでなく、メモリーカードをアプリケーションの実行中に挿した場合も、一定時間抜けたのと同じ状態になります。(認識するまで0.5秒程度、ビジュアルメモリの電池が消耗していた場合3秒位)
アプリケーション側では、コントローラが抜けたのか、VMSが挿されたのかを判断できないので、ユーザーがコントローラの暴走等と勘違いしないように、上記警告表示を行う時は「コントローラが抜けているかまたはメモリーカードの認識中」と必ず記述してください。なお、これはVMS挿入時であって、抜いた場合には上記遅延は発生しません。
2.4 コントローラがポートから抜かれた後に同じポートに挿し直された場合
□必須:それまで使用していたポートからコントローラが抜かれ、対応するコントローラが差し戻された場合、その入力を再開する。
対応するコントローラであれば、違うコントローラでもかまいません。対応していないコントローラの場合、入力を再開させてはいけません。
コントローラに外部メモリーが挿してあった場合は、外部メモリーについても注意が必要です。(15.バックアップを参照してください)
2.5 ゲーム中、抜かれた以外のコントロールポートにコントローラが挿し直された場合
□必須:2.1.2(複数のユーザーがそれぞれが単一のコントローラを使用するアプリケーション)の場合、入力を再開しない。
◇推奨:2.1.1および2.1.3の場合には、抜かれた以外のポートでも対応するコントローラであれば入力を再開するようにしてください。
□必須:ハードキーボードにアプリケーションとして対応を行う場合、ハードキーボードが挿されていない状態での入力には、ソフトキーボード(or文字入力画面)を画面表示し、操作させることでユーザーが入力できるようにしてください。