コントローラパック
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、コントローラパックに関する。より特定的には、この発明は、ゲーム機用コントローラに着脱自在に装着され、そのコントローラに振動を発生させる、新規なコントローラパックに関する。
【0002】
【従来の技術】従来のいわゆる業務用ビデオゲーム機では、プレイヤの座るシートに振動を発生させたり、あるいはそのシートを傾けたりして、ゲームの興趣を一層た高めることができる、いわゆる体感ゲーム機が既に実用化されている。また、ジョイスティックに振動発生源を設け、たとえばシューティングゲーム機において、自機に敵機からの攻撃を受けたときに振動を発生させる、コンピュータゲームが知られている。
【0003】
【発明が解決しようとする課題】しかしながら、上述のコンピュータゲームでは、ジョイスティックに振動が発生するだけで、迫力不足である。特に、たとえば「スーパーファミコン」や「ニンテンドウ64」のような家庭用ビデオゲーム機では、プレイヤはコントローラを持ってプレイするので、ジョイスティックだけに振動が発生しても、コントローラを持つプレイヤの手にその振動が伝達されにくい。
【0004】そこで、このような振動発生源をコントローラのハウジングに内蔵することが考えられるが、この場合には、コントローラ自体を変更する必要があり、振動が付加されたゲームをプレイしようとする者は、特別なコントローラを購入する必要があり、経済的ではない。それゆえに、この発明の主たる目的は、家庭用ビデオゲーム機においてもプレイヤに体感を与えることができる、新規なコントローラパックを提供することである。
【0005】
【課題を解決するための手段】この発明は、ビデオゲーム機に接続されるコントローラに着脱自在に装着されるコントローラパックであって、ケース、ケースに取り付けられ、電源によって振動を発生する振動源、ケース内に設けられ、ビデオゲーム機から振動の強さを表す複数ビットの強さデータを受ける複数の端子、およびケース内に設けられ、ゲーム機からの指令信号に応答して振動源に電源を付与する駆動回路を備え、駆動回路は、複数の端子から与えられる強さデータに基づいて振動源にその強さデータに応じた大きさの駆動電流を付与する強さ変化手段を含む、コントローラパックである。
【0006】
【作用】ビデオゲーム機は、ゲーム用プロセサを含み、このゲーム用プロセサは所定のアドレス空間を有する。ゲーム用プロセサがその所定アドレス空間の特定アドレスに指令信号を出力すると、コントローラパックに設けられた所定の端子がその指令信号を受ける。応じて、駆動回路が、たとえばコントローラパック内に収納された電池から、振動源に電源を与える。したがって、たとえばモータのような振動源が振動を発生する。振動源はコントローラパックのケースに取り付けられているので、振動源が発生した振動はケースから、そのコントローラパックが装着されているコントローラに伝達される。コントローラはプレイヤの手で把持されているので、結果的に、振動源の振動がプレイヤの手に伝わる。
【0007】
【発明の効果】この発明によれば、ゲーム機からの指令信号によってコントローラパックすなわちコントローラに振動を発生させることができるので、家庭用ビデオゲーム機においても、いわゆる体感ゲームを楽しむことができる。さらに、この発明によれば、特定のゲームにおいて振動を発生させたいとき、コントローラパックを、振動発生源が内蔵されたコントローラパックをコントローラに装着するだけでコントローラに振動を発生させることができ、コントローラ全体を交換する必要がない。
【0008】しかも、コントローラパックで発生した振動は、コントローラパックからコントローラに直接伝達されるので、コントローラを把持するプレイヤの手に比較的強い振動を与えることができる。この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0009】
【実施例】図1はこの発明のコントローラパックが適用され得るビデオゲーム機の一例である三次元画像処理システムのシステム構成を示す外観図である。画像処理システムは、たとえばビデオゲームシステムであって、画像処理装置本体10と、外部記憶装置の一例のROMカートリッジ20と、画像処理装置本体10に接続される表示手段の一例のモニタ30と、操作手段の一例のコントローラ40と、コントローラ40に着脱自在に装着されるコントローラパック50(後に詳述する)とを含んで構成される。なお、外部記憶装置は、ゲーム等の画像処理のための画像データやプログラムデータを記憶するとともに、必要に応じて音楽や効果音等の音声データを記憶するものであり、ROMカートリッジに代えてCD−ROMや磁気ディスクを用いてもよい。操作手段は、この実施例の画像処理システムがパーソナルコンピュータに適用される場合には、キーボードやマウス等の入力装置が用いられる。
【0010】図2はこの実施例の画像処理システムのブロック図である。画像処理装置10には、中央処理ユニット(以下「CPU」)11およびバス制御回路12が内蔵される。バス制御回路12には、ROMカートリッジ20を着脱自在に装着するためのカートリッジ用コネクタ13が接続されるととともに、RAM14が接続される。また、バス制御回路12には、CPU11によって処理された音声信号を出力するための音楽信号発生回路15および画像信号を出力するための画像信号発生回路16が接続され、さらに1つまたは複数のコントローラ40の操作データおよび/またはコントローラパック50のデータをシリアルで転送するためのコントローラ制御回路17が接続される。コントローラ制御回路17には、画像処理装置10の前面に設けられるコントローラ用コネクタ(以下「コネクタ」と略称する)181〜184が接続される。コネクタ18には、接続用ジャック41およびケーブル42を介してコントローラ40が着脱自在に接続される。このように、コネクタ181〜184にコントローラ40を接続することにより、コントローラ40が画像処理装置10と電気的に接続され、相互間のデータの送受信が可能とされる。
【0011】より具体的には、バス制御回路12は、CPU11からバスを介してパラレル信号で出力されたコマンドを受け、パラレル−シリアル変換して、シリアル信号でコマンドをコントローラ制御回路17に出力し、かつコントローラ制御回路17から入力したシリアル信号のデータをパラレル信号に変換し、バスに出力する。バスから出力されたデータは、CPU11によって処理されたり、RAM14に記憶される等の処理が行われる。換言すれば、RAM14は、CPU11によって処理されるデータを一時記憶するためのメモリであって、バス制御回路12を介してデータの読出・書込が可能とされる。
【0012】なお、図2の画像処理装置10に含まれるバス制御回路12は、具体的には、図3に示すように、RISCプロセサであるRCP(Reality Co-Processor)として構成され、I/O制御121,信号プロセサ122および描画プロセサ123を含む。I/O制御121は、CPU11とRAM14との間のデータ転送を制御するだけでなく、信号プロセサ122および描画プロセサ123とRAM14およびCPU11との間のデータの流れを制御する。すなわち、CPU11からのデータはI/O制御121を介してRAM14に与えられ、さらにRAM14からのデータが信号プロセサ122および描画プロセサ123に送られて処理される。信号プロセサ122および描画プロセサ123は、RAM14から送られた音楽信号データおよび画像信号データを処理し、それを再びRAM14に格納する。そして、I/O制御121が、CPU11の指示に従ってRAM14から音楽信号データおよび画像信号データを読み出し、音楽信号発生回路(D/Aコンバータ)15および画像信号発生回路(D/Aコンバータ)16に与える。音楽信号は、コネクタ195を通して、TVモニタ30に含まれるスピーカ31に与えられる。画像信号は、コネクタ196を通して、TVモニタ30に含まれるディスプレイ32に与えられる。
【0013】なお、図3に示すように、外部ROM20に代えて、または外部ROM20と一緒に、光学ディスクや磁気ディスクからデータを読み出しまたはそれらにデータを書き込むことができるディスクドライブ21が画像処理装置10に接続されてもよい。この場合、ディスクドライブ21はコネクタ197を通して、RCP12すなわちI/O制御121に接続される。
【0014】図4はCPU11のメモリ空間に割り当てられた各メモリの領域を示す図解である。CPU11がバス制御回路すなわちRCP12を介してアクセスできるRAM14は、画像処理装置10にゲームのための画像信号を発生させるために必要な画像データを記憶した画像データ領域201と、CPU11が所定の動作を行うために必要なプログラムデータを記憶したプログラムデータ領域202とを含む。プログラム領域202には、画像データ201に基づいて画像表示を行うための画像表示プログラムと、計時処理を行うための計時プログラムと、カートリッジ20と後述の拡張装置50とが所定の関係にあることを判断するための判断プログラムとが固定的に記憶されている。RAM14は、さらに、コントロールパッドからの操作状態を示すデータを一時記憶するコントローラデータ領域141と、オブジェクトの移動速度(ディスプレイの1フレームにおいてオブジェクトが移動する移動量)のデータを格納するための速度データ領域142とを含む。
【0015】コントローラ制御回路17は、バス制御回路すなわちRCP12とコネクタ181〜184との間でデータをシリアルで送受信するために設けられ、図5に示すように、データ転送制御回路171,送信回路172,受信回路173および送受信データを一時記憶するためのRAM174を含む。データ転送制御回路171は、データ転送時にデータフォーマットを変換するためにパラレル−シリアル変換回路とシリアル−パラレル変換回路とを含むとともに、RAM174の書込み読出し制御を行う。シリアル−パラレル変換回路は、バス制御回路12から供給されるシリアルデータをパラレルデータに変換してRAM174または送信回路172に与える。パラレル−シリアル変換回路は、RAM174,または受信回路173から供給されるパラレルデータをシリアルデータに変換してバス制御回路12に与える。送信回路172は、データ転送制御回路171から供給されるコントローラ40の信号読込制御のためのデータおよびRAMカートリッジ50への書込データ(パラレルデータ)をシリアルデータに変換して、複数のコントローラ40のそれぞれに対応するチャンネルCH1〜CH4から送信する。受信回路173は、各コントローラ40に対応するチャンネルCH1〜CH4から入力される各コントローラ40の操作状態を示すデータおよびRAMカートリッジ50からの読出データをシリアルデータで受信し、パラレルデータに変換してデータ転送制御回路171に与える。
【0016】コントローラ制御回路17のRAM174は、図6のメモリマップに示すような記憶エリア174a〜174hを含む。具体的には、エリア174aには1チャンネル用のコマンドが記憶され、エリア174bには1チャンネル用の送信データおよび受信データが記憶される。エリア174cには2チャンネル用のコマンドが記憶され、エリア174dには2チャンネル用の送信データおよび受信データが記憶される。エリア174eには3チャンネル用のコマンドが記憶され、エリア174fには3チャンネル用の送信データおよび受信データが記憶される。エリア174gには4チャンネル用のコマンドが記憶され、エリア174hには4チャンネル用の送信データおよび受信データが記憶される。
【0017】したがって、データ転送制御回路171は、バス制御回路12から転送されたデータまたは受信回路173で受信されたコントローラ40の操作状態データやRAMカートリッジ50の読出データをRAM174に書込み制御したり、バス制御回路12からの命令に基づいてRAM174のデータを読出してバス制御回路12へ転送するように働く。
【0018】図7および図8はコントローラ40の表面と裏面の外観斜視図である。コントローラ40は、両手または片手で掌握可能な形状であり、そのハウジングの外部には押圧することによって電気的信号を発生する複数のボタンと、垂直に直立した操作部が突出して形成される。具体的には、コントローラ40は、上ハウジングと下ハウジングから構成される。コントローラ40のハウジングには、横長の平面形状を有する上面に操作部領域が形成される。コントローラ40の操作部領域には、左側に十字型のディジタル方向スイッチ(以下「十字スイッチ」という)403が設けられ、右側に複数のボタンスイッチ(以下単に「スイッチ」と略称する)404A〜404Fが設けられ、横方向の略中央部にスタートスイッチ405が設けられ、中央下部にアナログ入力可能なジョイスティック45が設けられる。十字スイッチ403は、主人公キャラクタまたはカーソルの移動方向を指示する方向スイッチであり、上,下,左,右の押点を有し、4方向の移動を指定するのに使用される。スイッチ404A〜404Fは、ゲームソフトによって異なるが、たとえばシューティングゲームではミサイルの発射ボタン、アクショゲームではジャンプ,キックや物を取る等の各種の動作を指示するために使用される。ジョイスティック45は、十字スイッチ403に代えて、オブジェクトの移動方向および移動速度を指示するために用いられるが、360度の全角度範囲の方向指示が可能であるので、アナログ方向指示スイッチとして利用される。
【0019】コントローラ40のハウジングには、操作部領域の3か所の下方に突出するように、3本のグリップ402L,402Cおよび402Rが形成される。グリップ402L,402Cおよび402Rは、手で握ったときに掌と中指,薬指,小指とで形作られる棒状であって、付け根部分が少し細く、中央で太くなり、解放端(図7の下方側)に向かって細く形成される。コントローラ40の下ハウジングの中央上部には、拡張装置であるRAMカートリッジ50を着脱自在に装着するための挿入口409が裏面より突出して形成される。ハウジングの上辺側面の左右には、プレイヤが左右の人指し指を延ばした位置に対応する位置にボタンスイッチ406Lおよびボタン406Rが設けられる。中央のグリップ402Cの付け根部分の裏面には、十字スイッチ403に代えてジョイスティック45を使用するときに、スイッチ406Lに代わる機能のスイッチとしてスイッチ407が設けられる。
【0020】ハウジングの下ハーフの背面側は底面方向に延長され、その先端には開口部408が形成されている。開口部408の奥にはコントローラパック50がそこに接続されるコネクタ(図示せず)が設けられている。また、開口部408に挿入されたコントローラパック50を排出するためのレバー409が開口部408に形成されている。そして、上述のコントローラパック50を挿入する開口部408のレバー409の反対側には、切欠410が形成され、この切欠410はレバー409を用いてコントローラパック50を取り出すときにコントローラパック50を引き出すためのスペースを形成する。
【0021】図9はコントローラ40およびコントローラパック50の詳細な回路図である。なお、この実施例では、コントローラパック50は、この実施例の特徴である振動発生回路50Aの他に、外部記憶装置として機能するRAM51およびそのバックアップのための電池52を含む。コントローラ40のハウジング内には、各スイッチ403〜407またはジョイスティック45等の操作状態を検出しかつその検出データをコントローラ制御回路17へ転送するために、操作信号処理回路44等の電子回路が内蔵される。操作信号処理回路44は、受信回路441,制御回路442,スイッチ信号検出回路443,カウンタ回路444,送信回路445,ジョイポート制御回路446,リセット回路447およびNORゲート448を含む。
【0022】受信回路441は、コントローラ制御回路17から送信される制御信号やコントローラパック50への書込データ等のシリアル信号をパラレル信号に変換して制御回路442に与える。制御回路442は、コントローラ制御回路17から送信される制御信号がジョイスティック45のX,Y座標のリセット信号であるとき、リセット信号を発生してNORゲート448を介してカウンタ444に含まれるX軸用カウンタ444XとY軸用カウンタ444Yの計数値をリセット(0)させる。ジョイスティック45は、レバーの傾き方向のX軸方向とY軸方向に分解して傾き量に比例したパルス数を発生するように、X軸用とY軸用のフォトインタラプトを含み、それぞれのパルス信号をカウンタ444Xとカウンタ444Yに与える。カウンタ444Xは、ジョイスティック45がX軸方向に傾けられたとき、その傾き量に応じて発生されるパルス数を計数する。カウンタ444Yは、ジョイスティック45がY軸方向に傾けられたとき、その傾き量に応じて発生されるパルス数を計数する。したがって、後述のように、カウンタ444Xおよびカウンタ444Yの計数値によって決まるX軸とY軸の合成ベクトルによって、オブジェクトまたはカーソルの移動方向と移動速度とが決定されることになる。
【0023】なお、カウンタ444Xおよびカウンタ444Yは、電源投入時にリセット信号発生回路447から与えられるリセット信号、または操作者が予め定める2つのスイッチが同時に押圧されたときにスイッチ信号検出回路443から与えられるリセット信号によっても、その計数値がリセットされる。スイッチ信号検出回路443は、制御回路442から一定周期(たとえば、テレビジョンのフレーム周期の1/30秒間隔)で与えられるスイッチ状態の出力指令信号に応答して、十字スイッチ403,スイッチ404A〜404F,405,406L,406Rおよび407の押圧状態によって変化する信号を読込み、それを制御回路442へ与える。
【0024】制御回路442は、コントローラ制御回路17からの操作状態データの読出指令信号に応答して、各スイッチ403〜407の操作状態データおよびカウンタ444X,444Yの計数値を所定のデータフォーマットの順序で送信回路445に与える。送信回路445は、制御回路442から出力されたこれらのパラレル信号をシリアルデータに変換して、変換回路43および信号線42を介してコントローラ制御回路17へ転送する。
【0025】また、制御回路442には、アドレスバスおよびデータバスならびにポートコネクタ46を介してポート制御回路446が接続される。ポート制御回路446は、拡張装置の一例であるコントローラパック50がポートコネクタ46に接続されているとき、CPU11の命令に従ってデータの入出力制御(または送受信制御)を行う。コントローラパック50は、アドレスバスおよびデータバスにRAM51を接続し、RAM51に電源を供給するための電池52を含んで構成される。RAM51は、アドレスバスを用いてアクセス可能な最大メモリ容量の半分以下の容量のRAMであって、たとえば256kビットのRAMから成る。このRAM51は、ゲームに関連するバックアップデータを記憶するものであり、コントローラパック50がポートコネクタ46から抜き取られても電池52からの電源供給を受けて記憶データを保持する。なお、コントローラパック50に含まれる振動発生回路50Aについては、後に説明する。
【0026】図10は、画像処理装置が、コントローラ40からスイッチ403〜407およびジョイスティック45の各操作状態を示すデータを読み出す際のデータフォーマットを図解したものである。コントローラ40によって発生されるデータは4バイトのデータから成る。第1バイト目のデータは、B,A,G,START,上,下,左および右、すなわちスイッチ404B,404A,407,405および十字スイッチ403の上下左右の各押点が押圧されていることを示し、たとえばBボタンすなわちスイッチ404Bが押圧されると第1バイト目の最上位ビットが「1」となる。同様に、第2バイト目は、JSRST,0(実施例では使用していない),L,R,E,D,CおよびF、すなわちスイッチ409,406L,406R,404E,404D,404C,404Fが押圧されていることを示す。第3バイト目は、ジョイスティック45のX方向の傾倒角度に応じた値であるX座標(Xカウンタ444Xの計数値)を2進数で示す。第4バイト目は、ジョイスティック45のY方向の傾斜角度に応じた値であるY座標(Yカウンタ444Yの計数値)を2進数で示す。各X,Y座標値はそれぞれ8ビットの2進数で表されるため、これを10進数に変換するとジョイスティック45の傾斜角度を0〜255までの数値を表すことができる。また、最上位ビットを負の値を示すシグネチャに用いれば、ジョイスティック45の傾斜角度を−128〜127までの数値で表すことができる。
【0027】次に、画像処理装置10とコントローラ40との間のデータの送受信、およびコントローラ40からのデータに従ったオブジェクトの移動制御に関する動作を説明する。まず、図11の画像処理装置10のCPU11のフローチャートを参照して画像処理に関する説明を行う。ステップS11で、CPU11は、図4のプログラムデータ領域202に記憶されている初期値(図示せず)に基づき、初期設定を行う。このステップS11では、CPU11は、たとえば、RAM14の速度データ領域142(図4)にオブジェクトの移動速度の初期値を設定する。
【0028】次に、ステップS12で、CPU11は、プログラムデータ領域202に記憶されているコントールパッドデータ要求コマンドをRCPないしバス制御回路12に出力する。したがって、このステップS12において、CPU11は、そのときのコントローラ40からの図10に示すようなコマンドを受け取り、それを各チャネルのコマンド収納場所174a〜174dに格納する。したがって、このとき、Xカウンタ444XおよびYカウンタ444Yのカウント値がXY座標データとして、CPU11に与えられる。
【0029】次に、ステップS13で、CPU11は、図4のプログラムデータ領域202に記憶されているプログラムにおよび画像データ領域201に基づき所定の画像処理を行う。また、CPU11がステップS13を実行しているときに、バス制御回路12は、図12に示すステップS21−S24を実行している。次に、ステップS14で、CPU11は、図4のコントロールパッドデータ領域141に記憶されているコントロールパッドデータに基づき画像データを出力する。ステップS14を終了した後は、CPU11は、ステップS12−ステップS14を繰り返し実行する。
【0030】RCPないしバス制御回路12の動作を図12を用いて説明する。ステップS21で、バス制御回路12は、CPU11がコントローラデータ要求コマンド(コントローラ40のスイッチデータまたはコントローラパック50のデータ等の要求命令)を出力したか否かを判断する。コントローラデータ要求コマンドが出力されていなければ、出力されるまで待機する。コントローラデータ要求コマンドが出力されていれば、ステップS22に移る。ステップS22で、バス制御回路12は、コントローラ制御回路17にコントローラ40のデータを読み込むためのコマンドを出力する。次に、ステップS23で、バス制御回路12は、コントローラ制御回路17がコントローラ40からデータを受信してRAM174に記憶したか否かを判断する。バス制御回路12は、コントローラ制御回路17がコントローラ40からデータを受信してRAM174に記憶していなければ、ステップS23で待機し、コントローラ制御回路17がコントローラ40からデータを受信してRAM174に記憶していれば、ステップS24に移る。ステップS24で、バス制御回路12は、コントローラ制御回路17のRAM174に記憶されているコントローラ40のデータをRAM14へ転送する。バス制御回路12は、RAM14へのデータ転送が終わるとステップS21に戻り、ステップS21−ステップS24の動作を繰り返す。
【0031】なお、図11および図12のフローチャートでは、バス制御回路12がRAM174からRAM14ヘデータを転送した後、CPU11がRAM14に記憶されたデータを処理する例を示したが、CPU11がバス制御回路12を介して直接RAM174のデータを処理してもよい。図13はコントローラ制御回路17の動作を説明するためのフローチャートである。ステップS31において、バス制御回路12からの書込み待ちの有無が判断される。書込み待ちでなければ、データ転送制御回路171はバス制御回路12からの書込み待ちが有るまで待機する。書込み待ちで有れば、次のステップS32において、データ転送制御回路171が第1〜第4チャンネルに対するコマンドおよび/またはデータ(以下「コマンド/データ」と略称する)をRAM174に記憶させる。ステップS33において、第1チャンネルのコマンド/データがコネクタ181に接続されているコントローラ40に送信される。制御回路442は、コマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。このデータの内容は、制御回路442の動作説明で後述する。ステップS34において、データ転送制御回路171が制御回路442から出力されたデータを受信し、そのデータをRAMに記憶させる。
【0032】以後、ステップS33およびS34の第1チャンネルの動作と同様にして、ステップS35において、第2チャンネルのコマンド/データがコントローラ40に送信される。制御回路442は、このコマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。ステップS36において、第2チャンネルのデータ転送および書込処理が行われる。また、ステップS37において、第3チャンネルのコマンド/データがコントローラ40に送信される。制御回路442は、このコマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。ステップS38において、第2チャンネルのデータ転送および書込処理が行われる。さらに、ステップS39において、第4チャンネルのコマンド/データがコントローラ40に送信される。コントローラ40の制御回路442は、このコマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。ステップS40において、第4チャンネルのデータ転送および書込処理が行われる。続くステップS41において、データ転送制御回路171がステップS34,S36,S38およびS40において受信したデータを一括してバス制御回路12へ転送する。
【0033】上述のようにして、第1チャンネルから第4チャンネルのデータ、すなわちコネクタ181〜184に接続されている各コントローラ40に対するコマンドおよび各コントローラ40から読出すべき操作状態データが時分割処理によってデータ転送制御回路171と各コントローラ40内の制御回路442との間で転送される。
【0034】次に、図14を参照して、コントローラパック50を詳細に説明する。コントローラパック50は、ケース501とそのケース501に取り付けられる裏蓋502とを含む。このケース501および裏蓋502で形成されたコントローラパック50が、図8の開口部408に、着脱自在に装着される。ケース501内には、基板503が収納される。基板503上には、前述のRAM51およびバックアップ電池52の他に、図9の振動発生回路50Aを構成する、電池504および駆動回路505が実装される。なお、基板503の手前側エッジには、図8のコントローラ40の開口部408に形成されたコネクタ(図示せず)に接続される複数の端子506が形成される。この端子506がゲーム機10のCPU11(図2)すなわちコントローラ制御回路17からのデータおよびアドレスを受ける。
【0035】裏蓋502には、振動発生回路50Aを構成する振動源507が固着される。実施例では、振動源507として、振動発生用モータを用いた。しかしながら、モータの他に、電源の供給を受けて振動を発生するソレノイドや他の素子が利用可能であることは勿論である。なお、振動発生用モータの一例として、東京パーツ工業株式会社製の「FM16,FM23,FM25あるいはFM29」や「CM−5」等が利用可能である。「FM」モータでは、円筒型ケースに内蔵された回転軸に偏心部材を取り付け、回転軸の回転に応じて偏心部材が回転することによって、ケースに振動が生じる。「CM」モータでは、電機子コイル自体を偏心させて装着し、その電機子が回転することによって、振動を発生する。なお、ソレノイドを用いる場合には、ソレノイド内の磁心が往復運動することによって振動が発生する。
【0036】いずれの場合も、このような振動源507は、電池504からの電源を受けて駆動回路505によって駆動され、振動を発生する。振動源507の消費電力は比較的大きく、したがって、この実施例では、RAM51のバックアップ電池52とは別に、電池504を設けた。したがって、電池504が消耗されたときには、裏蓋502に取り外し可能に設けられた電池蓋508を開いて、電池504を新しい電池に交換することができる。ただし、2つの電池52および504として、同じ電池を共通に用いることも、可能である。
【0037】ただし、コントローラケーブル42(図2)に電源線を含ませ、その電源線によって、画像処理装置本体すなわちゲーム機10から端子506を通して振動源507に電源を供給するようにしてもよい。その場合には、電源線の容量は、振動源507の必要電力を考慮して適宜選定されることはいうまでもない。さらに、この実施例では、振動源507で発生した振動が減衰することなくコントローラ40からプレイヤの手に伝達され易いように、振動源507を裏蓋502に取り付けた。つまり、振動源507で発生した振動は、裏蓋502から、その裏蓋502に接触しているコントローラ40の開口部408(図8)に伝達され、したがって、コントローラ40自体が振動する。そのため、コントローラ40を把持しているプレイヤの手に、振動源507が発生した振動が伝達されることになる。したがって、振動源507の振動がコントローラ40を通してプレイヤの手に伝達され得る限り、振動源507をケース501内の任意の位置に取り付けることができる。しかしながら、振動源507を基板503上に取り付けるのは、避けたほうがよい。その理由は、振動源507の振動が基板503上に実装された部品に悪影響を及ぼすこと、および端子506とコネクタとが弾性的に接触しているので、振動源507の振動がその弾性的接触によって減衰される可能性があること、等である。
【0038】次に、図15を参照して、駆動回路505を詳細に説明する。駆動回路505は、NANDゲート510から成るデコーダを含み、このNANDゲート510は、ゲーム機10のCPU11(図2)からのアドレスデータA2〜A14を、アドレスバスすなわち端子506(図14)を通して受ける。実施例のゲームシステムにおいては、CPU11のアドレスA15は通常用いないようにしているので、そのアドレスA15とアドレスA2〜A14の全てが「1」の場合、すなわち、アドレスFFFC〜FFFFの範囲をCPU11が指定したとき、振動モードが設定され、振動源507を駆動するためのデータをCPU11から出力するようにしている。つまり、CPUアドレスFFFC〜FFFFが指定されると、デコーダすなわちNANDゲート510の出力が「0」となる。このNANDゲート510の出力がNANDゲート511に与えられる。NANDゲート511にはさらに、CPU11からの書込信号−WEおよびチップイネーブル信号CEが与えられているので、NANDゲート511はNANDゲート510の出力および信号−WEおよびCEに応答して、ラッチ512iラッチ信号を与える。したがって、ラッチ512は、CPU11がFFFC〜FFFFアドレス5を指定したとき、すなわち、振動モードにおいて、CPUデータD0〜D2を、データバスすなわち端子506を通して、ラッチする。
【0039】このCPUデータD0〜D2は、振動源507で発生されるべき振動の強さを設定するデータであり、3ビットによって「1〜8」の強さのレベルを設定することができる。すなわち、D0〜D2が「100」のとき強さ「1」を設定し、「111」のとき強さ「8」を設定する。すなわち、ラッチ512は、3つの出力を有し、それぞれの出力が抵抗513a,513bおよび513cを介して、駆動トランジスタ514のベースに接続される。抵抗513a,513bおよび513cの抵抗値は、それぞれ、4R,2RおよびRである。したがって、3つの出力にともに「1」が出力されたとき、トランジスタ514に最も大きいベース電圧が印加され、3つの出力が「1」,「0」および「0」のとき、トランジスタ514に最も小さいベース電圧が印加される。したがって、トランジスタ514のコレクタ−エミッタ電流が変化し、それに応じて、電池504から振動源507(振動モータ)に流れる駆動電流が変化する。つまり、CPU11のデータバスのデータビットD0〜D2に適宜データを設定することによって、駆動源507で発生する振動の強さを可変的に設定することができる。
【0040】なお、図15実施例は、図16に示すように変形できる。図16実施例は、図15のデコーダ510を用いない点において、図15実施例と相違する。つまり、図16実施例では、NANDゲート511にCPU11のアドレスビットA15を直接与える。したがって、NANDゲート511は、CPU11の書込信号−WEに応答して、ラッチ信号をラッチ512に与える。したがって、図16実施例においても、CPU11のアドレスビットA15が「1」になったとき、振動モードが設定され、CPUデータビットD0〜D2をラッチ512がラッチし、そのデータに応じて駆動トランジスタ514を制御する。
【0041】なお、たとえばCPU11のデータバスのデータビットD0のみを用いて、振動源507を制御するようにしてもよい。この場合、図15または図16のラッチ512が振動モードにおいてデータビットD0のデータをラッチする。そして、ラッチ512は1つの出力のみを有し、その出力がトランジスタ514のベースに電圧を与える。したがって、この場合、トランジスタ514は、データD0の「1」または「0」によってオンまたはオフされるだけで、振動源507の振動の強さは一定である。
【0042】図17に、「釣りゲーム」における振動発生パターンの一例を示す。「釣りゲーム」においては、魚が餌をつつく「餌つつき」や、魚が針に引っ掛かったときの「食いつき」、あるいは魚を引き上げる「引き上げ」など、各場面において振動を発生させることによって、プレイヤに一層「釣りゲーム」の実感を与えることができる。
【0043】図17のタイミングt1〜t4までは、「餌つつき」のときの、振動態様を示す。「餌つつき」では、魚が針の餌をつつく状態であるため、さほど大きい振動は必要ない。したがって、この実施例では、タイミングt1において、CPU11がアドレスA15に「1」を出力するとともに、データD0,D1,D2に「110」を出力する。「110」のデータに応じて、ラッチ512の一番下の出力に「0」たとえば0Vが出力され、上2つの出力には「1」たとえば3Vが出力される。したがって、このタイミングt1で、トランジスタ514は、振動レベル「3」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt1でレベル「3」の振動が振動源507から発生され、その振動が上述のようにプレイヤの手に伝わる。したがって、プレイヤは、「餌つつき」がそのとき行われていることをその振動から実感することができる。
【0044】そして、CPU11は、タイミングt2でアドレスA15およびデータD0〜D2をいずれも「0」とする。応じて、トランジスタ514がオフし、振動源507の駆動電流がオフされ、コントローラパックすなわちコントローラの振動は停止する。再び、「餌つつき」があることをプレイヤに知らせるために、CPU11は、タイミングt3において、アドレスA15に「1」を出力するとともに、データD0〜D2に「110」を出力する。そのため、。このタイミングt3で、レベル「3」の振動が振動源507から発生され、その振動が上述のようにプレイヤの手に伝わる。したがって、プレイヤは、「餌つつき」がそのとき行われていることをその振動から実感することができる。
【0045】そして、CPU11は、タイミングt4でアドレスA15およびデータD0〜D2をいずれも「0」とする。応じて、トランジスタ514がオフし、振動源507の駆動電流がオフされ、コントローラパックすなわちコントローラの振動は停止する。次のタイミングt5〜t14は、「くいつき」の振動パターンであり、この場合、CPU11は、タイミングt5でアドレスA15を「1」として出力するとともに、データD0〜D2に「010」を出力する。「010」のデータに応じて、ラッチ512の真ん中の出力に「1」たとえば3Vが出力され、上下2つの出力には「0」たとえば0Vが出力される。したがって、このタイミングt5で、トランジスタ514は、振動レベル「2」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt5でレベル「2」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。したがって、プレイヤは、「くいつき」がそのとき行われていることを振動から実感することができる。同様に、CPU11は、タイミングt6でアドレスA15を「1」として出力するとともに、データD0〜D2に「101」を出力する。「001」のデータに応じて、ラッチ512の一番下の出力のみからたとえば3Vが出力される。したがって、このタイミングt6で、トランジスタ514は、振動レベル「4」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt6でレベル「4」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。さらに、CPU11は、タイミングt7でアドレスA15を「1」として出力するとともに、データD0〜D2に「111」を出力する。「111」のデータに応じて、ラッチ512のすべての出力からはたとえば3Vが出力される。したがって、このタイミングt7で、トランジスタ514は、振動レベル「7」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt7でレベル「7」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。
【0046】さらに、CPU11は、タイミングt8でアドレスA15を「1」として出力するとともに、データD0〜D2に「011」を出力する。「011」のデータに応じて、ラッチ512の下2つの出力からはたとえば3Vが出力される。したがって、このタイミングt8で、トランジスタ514は、振動レベル「6」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt8でレベル「6」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。
【0047】同様にして、「くいつき」の期間、CPU11は、タイミングt9,t10,t11,t12,t13およびt14において、それぞれ、データ「101」,「001」,「110」,「010」および「100」を出力する。応じて、振動源507が、タイミングt9,t10,t11,t12,t13およびt14において、それぞれ、レベル「5」,「4」,「3」,「2」および「1」で振動を発生し、それらの振動子がプレイヤに伝達される。したがって、プレイヤは、タイミングt5〜t14までの期間、漸増しそして漸減する振動レベルによって、「くいつき」が行われていることを実感することができる。
【0048】次のタイミングt15以後は、「引き上げ」の振動パターンであり、この場合、CPU11は、タイミングt15でアドレスA15を「1」として出力するとともに、データD0〜D2に「010」を出力する。「010」のデータに応じて、ラッチ512の真ん中の出力に「1」たとえば3Vが出力され、上下2つの出力には「0」たとえば0Vが出力される。したがって、このタイミングt5で、トランジスタ514は、振動レベル「2」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt5でレベル「2」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。同様に、CPU11は、タイミングt16でアドレスA15を「1」として出力するとともに、データD0〜D2に「101」を出力する。「001」のデータに応じて、ラッチ512の一番下の出力のみからたとえば3Vが出力される。したがって、このタイミングt16で、トランジスタ514は、振動レベル「4」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt6でレベル「4」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。さらに、CPU11は、タイミングt7でアドレスA15を「1」として出力するとともに、データD0〜D2に「111」を出力する。「111」のデータに応じて、ラッチ512のすべての出力からはたとえば3Vが出力される。したがって、このタイミングt6で、トランジスタ514は、振動レベル「7」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt7でレベル「7」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。このようにして、「引き上げ」の振動パターンに従って振動源507が振動を発生するので、プレイヤは、その期間「引き上げ」を行っていることを実感することができる。
【0049】なお、CPU11による振動源507の駆動および停止、ならびに振動強さの制御は、ROMカートリッジ20等のゲームプログラムに従って実行されるものである。したがって、映像および音声の変化とともに、振動の発生,停止および強さ変化が生じるようにゲームプログラムを作成しておけば、極めて実感のあるゲームを家庭用ビデオゲーム機で楽しむことができる。
【0050】また、上述の「釣りゲーム」以外に、レーシングゲームにおいて、「クラッシュ」が発生したときなど、どのゲームでどのタイミングでどのレベルの強さの振動を発生させるかは、ゲームプログラム作成者が任意に設定できる。
【図面の簡単な説明】
【図1】この発明のコントローラパックが適用され得る家庭用ビデオゲーム機の一例を示す概略図解図である。
【図2】図1のビデオゲーム機を詳細に示すブロック図である。
【図3】図2のバス制御回路をより詳細に示すブロック図である。
【図4】図2のRAMのメモリマップを示す図解図である。
【図5】図2のコントローラ制御回路を詳細に示すブロック図である。
【図6】図5のRAMのメモリマップを示す図解図である。
【図7】図2のコントローラの上から見た斜視図である。
【図8】図2のコントローラの下から見た斜視図である。
【図9】コントローラおよびコントローラパックを詳細に示すブロック図である。
【図10】コントローラのアナログジョイスティックおよび各ボタンのデータを示す図解図である。
【図11】図2のCPUの動作を示すフローチャートである。
【図12】図2のバス制御回路すなわち図3のRCP(Reality Co-Processor)の動作を示すフローチャートである。
【図13】図2のコントローラ制御回路の動作を示すフローチャートである。
【図14】この発明の一実施例であるコントローラパックを示す分解斜視図である。
【図15】図14の駆動回路の一例を示す回路図である。
【図16】図14の駆動回路の他の例を示す回路図である。
【図17】この発明の実施例のコントローラパックを用いるゲームの一例において振動源が振動を発生するタイミングを示す図解図である。
【符号の説明】
10 …画像処理装置本体(ゲーム機)
11 …CPU
17 …コントローラ制御回路
20 …ROMカートリッジ
40 …コントローラ
50 …コントローラパック
50A …振動発生回路
501 …ケース
502 …裏蓋
503 …基板
504 …電池
505 …駆動回路
506 …端子
507 …振動源
508 …電池蓋
【0001】
【産業上の利用分野】この発明は、コントローラパックに関する。より特定的には、この発明は、ゲーム機用コントローラに着脱自在に装着され、そのコントローラに振動を発生させる、新規なコントローラパックに関する。
【0002】
【従来の技術】従来のいわゆる業務用ビデオゲーム機では、プレイヤの座るシートに振動を発生させたり、あるいはそのシートを傾けたりして、ゲームの興趣を一層た高めることができる、いわゆる体感ゲーム機が既に実用化されている。また、ジョイスティックに振動発生源を設け、たとえばシューティングゲーム機において、自機に敵機からの攻撃を受けたときに振動を発生させる、コンピュータゲームが知られている。
【0003】
【発明が解決しようとする課題】しかしながら、上述のコンピュータゲームでは、ジョイスティックに振動が発生するだけで、迫力不足である。特に、たとえば「スーパーファミコン」や「ニンテンドウ64」のような家庭用ビデオゲーム機では、プレイヤはコントローラを持ってプレイするので、ジョイスティックだけに振動が発生しても、コントローラを持つプレイヤの手にその振動が伝達されにくい。
【0004】そこで、このような振動発生源をコントローラのハウジングに内蔵することが考えられるが、この場合には、コントローラ自体を変更する必要があり、振動が付加されたゲームをプレイしようとする者は、特別なコントローラを購入する必要があり、経済的ではない。それゆえに、この発明の主たる目的は、家庭用ビデオゲーム機においてもプレイヤに体感を与えることができる、新規なコントローラパックを提供することである。
【0005】
【課題を解決するための手段】この発明は、ビデオゲーム機に接続されるコントローラに着脱自在に装着されるコントローラパックであって、ケース、ケースに取り付けられ、電源によって振動を発生する振動源、ケース内に設けられ、ビデオゲーム機から振動の強さを表す複数ビットの強さデータを受ける複数の端子、およびケース内に設けられ、ゲーム機からの指令信号に応答して振動源に電源を付与する駆動回路を備え、駆動回路は、複数の端子から与えられる強さデータに基づいて振動源にその強さデータに応じた大きさの駆動電流を付与する強さ変化手段を含む、コントローラパックである。
【0006】
【作用】ビデオゲーム機は、ゲーム用プロセサを含み、このゲーム用プロセサは所定のアドレス空間を有する。ゲーム用プロセサがその所定アドレス空間の特定アドレスに指令信号を出力すると、コントローラパックに設けられた所定の端子がその指令信号を受ける。応じて、駆動回路が、たとえばコントローラパック内に収納された電池から、振動源に電源を与える。したがって、たとえばモータのような振動源が振動を発生する。振動源はコントローラパックのケースに取り付けられているので、振動源が発生した振動はケースから、そのコントローラパックが装着されているコントローラに伝達される。コントローラはプレイヤの手で把持されているので、結果的に、振動源の振動がプレイヤの手に伝わる。
【0007】
【発明の効果】この発明によれば、ゲーム機からの指令信号によってコントローラパックすなわちコントローラに振動を発生させることができるので、家庭用ビデオゲーム機においても、いわゆる体感ゲームを楽しむことができる。さらに、この発明によれば、特定のゲームにおいて振動を発生させたいとき、コントローラパックを、振動発生源が内蔵されたコントローラパックをコントローラに装着するだけでコントローラに振動を発生させることができ、コントローラ全体を交換する必要がない。
【0008】しかも、コントローラパックで発生した振動は、コントローラパックからコントローラに直接伝達されるので、コントローラを把持するプレイヤの手に比較的強い振動を与えることができる。この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0009】
【実施例】図1はこの発明のコントローラパックが適用され得るビデオゲーム機の一例である三次元画像処理システムのシステム構成を示す外観図である。画像処理システムは、たとえばビデオゲームシステムであって、画像処理装置本体10と、外部記憶装置の一例のROMカートリッジ20と、画像処理装置本体10に接続される表示手段の一例のモニタ30と、操作手段の一例のコントローラ40と、コントローラ40に着脱自在に装着されるコントローラパック50(後に詳述する)とを含んで構成される。なお、外部記憶装置は、ゲーム等の画像処理のための画像データやプログラムデータを記憶するとともに、必要に応じて音楽や効果音等の音声データを記憶するものであり、ROMカートリッジに代えてCD−ROMや磁気ディスクを用いてもよい。操作手段は、この実施例の画像処理システムがパーソナルコンピュータに適用される場合には、キーボードやマウス等の入力装置が用いられる。
【0010】図2はこの実施例の画像処理システムのブロック図である。画像処理装置10には、中央処理ユニット(以下「CPU」)11およびバス制御回路12が内蔵される。バス制御回路12には、ROMカートリッジ20を着脱自在に装着するためのカートリッジ用コネクタ13が接続されるととともに、RAM14が接続される。また、バス制御回路12には、CPU11によって処理された音声信号を出力するための音楽信号発生回路15および画像信号を出力するための画像信号発生回路16が接続され、さらに1つまたは複数のコントローラ40の操作データおよび/またはコントローラパック50のデータをシリアルで転送するためのコントローラ制御回路17が接続される。コントローラ制御回路17には、画像処理装置10の前面に設けられるコントローラ用コネクタ(以下「コネクタ」と略称する)181〜184が接続される。コネクタ18には、接続用ジャック41およびケーブル42を介してコントローラ40が着脱自在に接続される。このように、コネクタ181〜184にコントローラ40を接続することにより、コントローラ40が画像処理装置10と電気的に接続され、相互間のデータの送受信が可能とされる。
【0011】より具体的には、バス制御回路12は、CPU11からバスを介してパラレル信号で出力されたコマンドを受け、パラレル−シリアル変換して、シリアル信号でコマンドをコントローラ制御回路17に出力し、かつコントローラ制御回路17から入力したシリアル信号のデータをパラレル信号に変換し、バスに出力する。バスから出力されたデータは、CPU11によって処理されたり、RAM14に記憶される等の処理が行われる。換言すれば、RAM14は、CPU11によって処理されるデータを一時記憶するためのメモリであって、バス制御回路12を介してデータの読出・書込が可能とされる。
【0012】なお、図2の画像処理装置10に含まれるバス制御回路12は、具体的には、図3に示すように、RISCプロセサであるRCP(Reality Co-Processor)として構成され、I/O制御121,信号プロセサ122および描画プロセサ123を含む。I/O制御121は、CPU11とRAM14との間のデータ転送を制御するだけでなく、信号プロセサ122および描画プロセサ123とRAM14およびCPU11との間のデータの流れを制御する。すなわち、CPU11からのデータはI/O制御121を介してRAM14に与えられ、さらにRAM14からのデータが信号プロセサ122および描画プロセサ123に送られて処理される。信号プロセサ122および描画プロセサ123は、RAM14から送られた音楽信号データおよび画像信号データを処理し、それを再びRAM14に格納する。そして、I/O制御121が、CPU11の指示に従ってRAM14から音楽信号データおよび画像信号データを読み出し、音楽信号発生回路(D/Aコンバータ)15および画像信号発生回路(D/Aコンバータ)16に与える。音楽信号は、コネクタ195を通して、TVモニタ30に含まれるスピーカ31に与えられる。画像信号は、コネクタ196を通して、TVモニタ30に含まれるディスプレイ32に与えられる。
【0013】なお、図3に示すように、外部ROM20に代えて、または外部ROM20と一緒に、光学ディスクや磁気ディスクからデータを読み出しまたはそれらにデータを書き込むことができるディスクドライブ21が画像処理装置10に接続されてもよい。この場合、ディスクドライブ21はコネクタ197を通して、RCP12すなわちI/O制御121に接続される。
【0014】図4はCPU11のメモリ空間に割り当てられた各メモリの領域を示す図解である。CPU11がバス制御回路すなわちRCP12を介してアクセスできるRAM14は、画像処理装置10にゲームのための画像信号を発生させるために必要な画像データを記憶した画像データ領域201と、CPU11が所定の動作を行うために必要なプログラムデータを記憶したプログラムデータ領域202とを含む。プログラム領域202には、画像データ201に基づいて画像表示を行うための画像表示プログラムと、計時処理を行うための計時プログラムと、カートリッジ20と後述の拡張装置50とが所定の関係にあることを判断するための判断プログラムとが固定的に記憶されている。RAM14は、さらに、コントロールパッドからの操作状態を示すデータを一時記憶するコントローラデータ領域141と、オブジェクトの移動速度(ディスプレイの1フレームにおいてオブジェクトが移動する移動量)のデータを格納するための速度データ領域142とを含む。
【0015】コントローラ制御回路17は、バス制御回路すなわちRCP12とコネクタ181〜184との間でデータをシリアルで送受信するために設けられ、図5に示すように、データ転送制御回路171,送信回路172,受信回路173および送受信データを一時記憶するためのRAM174を含む。データ転送制御回路171は、データ転送時にデータフォーマットを変換するためにパラレル−シリアル変換回路とシリアル−パラレル変換回路とを含むとともに、RAM174の書込み読出し制御を行う。シリアル−パラレル変換回路は、バス制御回路12から供給されるシリアルデータをパラレルデータに変換してRAM174または送信回路172に与える。パラレル−シリアル変換回路は、RAM174,または受信回路173から供給されるパラレルデータをシリアルデータに変換してバス制御回路12に与える。送信回路172は、データ転送制御回路171から供給されるコントローラ40の信号読込制御のためのデータおよびRAMカートリッジ50への書込データ(パラレルデータ)をシリアルデータに変換して、複数のコントローラ40のそれぞれに対応するチャンネルCH1〜CH4から送信する。受信回路173は、各コントローラ40に対応するチャンネルCH1〜CH4から入力される各コントローラ40の操作状態を示すデータおよびRAMカートリッジ50からの読出データをシリアルデータで受信し、パラレルデータに変換してデータ転送制御回路171に与える。
【0016】コントローラ制御回路17のRAM174は、図6のメモリマップに示すような記憶エリア174a〜174hを含む。具体的には、エリア174aには1チャンネル用のコマンドが記憶され、エリア174bには1チャンネル用の送信データおよび受信データが記憶される。エリア174cには2チャンネル用のコマンドが記憶され、エリア174dには2チャンネル用の送信データおよび受信データが記憶される。エリア174eには3チャンネル用のコマンドが記憶され、エリア174fには3チャンネル用の送信データおよび受信データが記憶される。エリア174gには4チャンネル用のコマンドが記憶され、エリア174hには4チャンネル用の送信データおよび受信データが記憶される。
【0017】したがって、データ転送制御回路171は、バス制御回路12から転送されたデータまたは受信回路173で受信されたコントローラ40の操作状態データやRAMカートリッジ50の読出データをRAM174に書込み制御したり、バス制御回路12からの命令に基づいてRAM174のデータを読出してバス制御回路12へ転送するように働く。
【0018】図7および図8はコントローラ40の表面と裏面の外観斜視図である。コントローラ40は、両手または片手で掌握可能な形状であり、そのハウジングの外部には押圧することによって電気的信号を発生する複数のボタンと、垂直に直立した操作部が突出して形成される。具体的には、コントローラ40は、上ハウジングと下ハウジングから構成される。コントローラ40のハウジングには、横長の平面形状を有する上面に操作部領域が形成される。コントローラ40の操作部領域には、左側に十字型のディジタル方向スイッチ(以下「十字スイッチ」という)403が設けられ、右側に複数のボタンスイッチ(以下単に「スイッチ」と略称する)404A〜404Fが設けられ、横方向の略中央部にスタートスイッチ405が設けられ、中央下部にアナログ入力可能なジョイスティック45が設けられる。十字スイッチ403は、主人公キャラクタまたはカーソルの移動方向を指示する方向スイッチであり、上,下,左,右の押点を有し、4方向の移動を指定するのに使用される。スイッチ404A〜404Fは、ゲームソフトによって異なるが、たとえばシューティングゲームではミサイルの発射ボタン、アクショゲームではジャンプ,キックや物を取る等の各種の動作を指示するために使用される。ジョイスティック45は、十字スイッチ403に代えて、オブジェクトの移動方向および移動速度を指示するために用いられるが、360度の全角度範囲の方向指示が可能であるので、アナログ方向指示スイッチとして利用される。
【0019】コントローラ40のハウジングには、操作部領域の3か所の下方に突出するように、3本のグリップ402L,402Cおよび402Rが形成される。グリップ402L,402Cおよび402Rは、手で握ったときに掌と中指,薬指,小指とで形作られる棒状であって、付け根部分が少し細く、中央で太くなり、解放端(図7の下方側)に向かって細く形成される。コントローラ40の下ハウジングの中央上部には、拡張装置であるRAMカートリッジ50を着脱自在に装着するための挿入口409が裏面より突出して形成される。ハウジングの上辺側面の左右には、プレイヤが左右の人指し指を延ばした位置に対応する位置にボタンスイッチ406Lおよびボタン406Rが設けられる。中央のグリップ402Cの付け根部分の裏面には、十字スイッチ403に代えてジョイスティック45を使用するときに、スイッチ406Lに代わる機能のスイッチとしてスイッチ407が設けられる。
【0020】ハウジングの下ハーフの背面側は底面方向に延長され、その先端には開口部408が形成されている。開口部408の奥にはコントローラパック50がそこに接続されるコネクタ(図示せず)が設けられている。また、開口部408に挿入されたコントローラパック50を排出するためのレバー409が開口部408に形成されている。そして、上述のコントローラパック50を挿入する開口部408のレバー409の反対側には、切欠410が形成され、この切欠410はレバー409を用いてコントローラパック50を取り出すときにコントローラパック50を引き出すためのスペースを形成する。
【0021】図9はコントローラ40およびコントローラパック50の詳細な回路図である。なお、この実施例では、コントローラパック50は、この実施例の特徴である振動発生回路50Aの他に、外部記憶装置として機能するRAM51およびそのバックアップのための電池52を含む。コントローラ40のハウジング内には、各スイッチ403〜407またはジョイスティック45等の操作状態を検出しかつその検出データをコントローラ制御回路17へ転送するために、操作信号処理回路44等の電子回路が内蔵される。操作信号処理回路44は、受信回路441,制御回路442,スイッチ信号検出回路443,カウンタ回路444,送信回路445,ジョイポート制御回路446,リセット回路447およびNORゲート448を含む。
【0022】受信回路441は、コントローラ制御回路17から送信される制御信号やコントローラパック50への書込データ等のシリアル信号をパラレル信号に変換して制御回路442に与える。制御回路442は、コントローラ制御回路17から送信される制御信号がジョイスティック45のX,Y座標のリセット信号であるとき、リセット信号を発生してNORゲート448を介してカウンタ444に含まれるX軸用カウンタ444XとY軸用カウンタ444Yの計数値をリセット(0)させる。ジョイスティック45は、レバーの傾き方向のX軸方向とY軸方向に分解して傾き量に比例したパルス数を発生するように、X軸用とY軸用のフォトインタラプトを含み、それぞれのパルス信号をカウンタ444Xとカウンタ444Yに与える。カウンタ444Xは、ジョイスティック45がX軸方向に傾けられたとき、その傾き量に応じて発生されるパルス数を計数する。カウンタ444Yは、ジョイスティック45がY軸方向に傾けられたとき、その傾き量に応じて発生されるパルス数を計数する。したがって、後述のように、カウンタ444Xおよびカウンタ444Yの計数値によって決まるX軸とY軸の合成ベクトルによって、オブジェクトまたはカーソルの移動方向と移動速度とが決定されることになる。
【0023】なお、カウンタ444Xおよびカウンタ444Yは、電源投入時にリセット信号発生回路447から与えられるリセット信号、または操作者が予め定める2つのスイッチが同時に押圧されたときにスイッチ信号検出回路443から与えられるリセット信号によっても、その計数値がリセットされる。スイッチ信号検出回路443は、制御回路442から一定周期(たとえば、テレビジョンのフレーム周期の1/30秒間隔)で与えられるスイッチ状態の出力指令信号に応答して、十字スイッチ403,スイッチ404A〜404F,405,406L,406Rおよび407の押圧状態によって変化する信号を読込み、それを制御回路442へ与える。
【0024】制御回路442は、コントローラ制御回路17からの操作状態データの読出指令信号に応答して、各スイッチ403〜407の操作状態データおよびカウンタ444X,444Yの計数値を所定のデータフォーマットの順序で送信回路445に与える。送信回路445は、制御回路442から出力されたこれらのパラレル信号をシリアルデータに変換して、変換回路43および信号線42を介してコントローラ制御回路17へ転送する。
【0025】また、制御回路442には、アドレスバスおよびデータバスならびにポートコネクタ46を介してポート制御回路446が接続される。ポート制御回路446は、拡張装置の一例であるコントローラパック50がポートコネクタ46に接続されているとき、CPU11の命令に従ってデータの入出力制御(または送受信制御)を行う。コントローラパック50は、アドレスバスおよびデータバスにRAM51を接続し、RAM51に電源を供給するための電池52を含んで構成される。RAM51は、アドレスバスを用いてアクセス可能な最大メモリ容量の半分以下の容量のRAMであって、たとえば256kビットのRAMから成る。このRAM51は、ゲームに関連するバックアップデータを記憶するものであり、コントローラパック50がポートコネクタ46から抜き取られても電池52からの電源供給を受けて記憶データを保持する。なお、コントローラパック50に含まれる振動発生回路50Aについては、後に説明する。
【0026】図10は、画像処理装置が、コントローラ40からスイッチ403〜407およびジョイスティック45の各操作状態を示すデータを読み出す際のデータフォーマットを図解したものである。コントローラ40によって発生されるデータは4バイトのデータから成る。第1バイト目のデータは、B,A,G,START,上,下,左および右、すなわちスイッチ404B,404A,407,405および十字スイッチ403の上下左右の各押点が押圧されていることを示し、たとえばBボタンすなわちスイッチ404Bが押圧されると第1バイト目の最上位ビットが「1」となる。同様に、第2バイト目は、JSRST,0(実施例では使用していない),L,R,E,D,CおよびF、すなわちスイッチ409,406L,406R,404E,404D,404C,404Fが押圧されていることを示す。第3バイト目は、ジョイスティック45のX方向の傾倒角度に応じた値であるX座標(Xカウンタ444Xの計数値)を2進数で示す。第4バイト目は、ジョイスティック45のY方向の傾斜角度に応じた値であるY座標(Yカウンタ444Yの計数値)を2進数で示す。各X,Y座標値はそれぞれ8ビットの2進数で表されるため、これを10進数に変換するとジョイスティック45の傾斜角度を0〜255までの数値を表すことができる。また、最上位ビットを負の値を示すシグネチャに用いれば、ジョイスティック45の傾斜角度を−128〜127までの数値で表すことができる。
【0027】次に、画像処理装置10とコントローラ40との間のデータの送受信、およびコントローラ40からのデータに従ったオブジェクトの移動制御に関する動作を説明する。まず、図11の画像処理装置10のCPU11のフローチャートを参照して画像処理に関する説明を行う。ステップS11で、CPU11は、図4のプログラムデータ領域202に記憶されている初期値(図示せず)に基づき、初期設定を行う。このステップS11では、CPU11は、たとえば、RAM14の速度データ領域142(図4)にオブジェクトの移動速度の初期値を設定する。
【0028】次に、ステップS12で、CPU11は、プログラムデータ領域202に記憶されているコントールパッドデータ要求コマンドをRCPないしバス制御回路12に出力する。したがって、このステップS12において、CPU11は、そのときのコントローラ40からの図10に示すようなコマンドを受け取り、それを各チャネルのコマンド収納場所174a〜174dに格納する。したがって、このとき、Xカウンタ444XおよびYカウンタ444Yのカウント値がXY座標データとして、CPU11に与えられる。
【0029】次に、ステップS13で、CPU11は、図4のプログラムデータ領域202に記憶されているプログラムにおよび画像データ領域201に基づき所定の画像処理を行う。また、CPU11がステップS13を実行しているときに、バス制御回路12は、図12に示すステップS21−S24を実行している。次に、ステップS14で、CPU11は、図4のコントロールパッドデータ領域141に記憶されているコントロールパッドデータに基づき画像データを出力する。ステップS14を終了した後は、CPU11は、ステップS12−ステップS14を繰り返し実行する。
【0030】RCPないしバス制御回路12の動作を図12を用いて説明する。ステップS21で、バス制御回路12は、CPU11がコントローラデータ要求コマンド(コントローラ40のスイッチデータまたはコントローラパック50のデータ等の要求命令)を出力したか否かを判断する。コントローラデータ要求コマンドが出力されていなければ、出力されるまで待機する。コントローラデータ要求コマンドが出力されていれば、ステップS22に移る。ステップS22で、バス制御回路12は、コントローラ制御回路17にコントローラ40のデータを読み込むためのコマンドを出力する。次に、ステップS23で、バス制御回路12は、コントローラ制御回路17がコントローラ40からデータを受信してRAM174に記憶したか否かを判断する。バス制御回路12は、コントローラ制御回路17がコントローラ40からデータを受信してRAM174に記憶していなければ、ステップS23で待機し、コントローラ制御回路17がコントローラ40からデータを受信してRAM174に記憶していれば、ステップS24に移る。ステップS24で、バス制御回路12は、コントローラ制御回路17のRAM174に記憶されているコントローラ40のデータをRAM14へ転送する。バス制御回路12は、RAM14へのデータ転送が終わるとステップS21に戻り、ステップS21−ステップS24の動作を繰り返す。
【0031】なお、図11および図12のフローチャートでは、バス制御回路12がRAM174からRAM14ヘデータを転送した後、CPU11がRAM14に記憶されたデータを処理する例を示したが、CPU11がバス制御回路12を介して直接RAM174のデータを処理してもよい。図13はコントローラ制御回路17の動作を説明するためのフローチャートである。ステップS31において、バス制御回路12からの書込み待ちの有無が判断される。書込み待ちでなければ、データ転送制御回路171はバス制御回路12からの書込み待ちが有るまで待機する。書込み待ちで有れば、次のステップS32において、データ転送制御回路171が第1〜第4チャンネルに対するコマンドおよび/またはデータ(以下「コマンド/データ」と略称する)をRAM174に記憶させる。ステップS33において、第1チャンネルのコマンド/データがコネクタ181に接続されているコントローラ40に送信される。制御回路442は、コマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。このデータの内容は、制御回路442の動作説明で後述する。ステップS34において、データ転送制御回路171が制御回路442から出力されたデータを受信し、そのデータをRAMに記憶させる。
【0032】以後、ステップS33およびS34の第1チャンネルの動作と同様にして、ステップS35において、第2チャンネルのコマンド/データがコントローラ40に送信される。制御回路442は、このコマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。ステップS36において、第2チャンネルのデータ転送および書込処理が行われる。また、ステップS37において、第3チャンネルのコマンド/データがコントローラ40に送信される。制御回路442は、このコマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。ステップS38において、第2チャンネルのデータ転送および書込処理が行われる。さらに、ステップS39において、第4チャンネルのコマンド/データがコントローラ40に送信される。コントローラ40の制御回路442は、このコマンド/データに基づいて所定の動作を行い、画像処理装置10に送信すべきデータを出力する。ステップS40において、第4チャンネルのデータ転送および書込処理が行われる。続くステップS41において、データ転送制御回路171がステップS34,S36,S38およびS40において受信したデータを一括してバス制御回路12へ転送する。
【0033】上述のようにして、第1チャンネルから第4チャンネルのデータ、すなわちコネクタ181〜184に接続されている各コントローラ40に対するコマンドおよび各コントローラ40から読出すべき操作状態データが時分割処理によってデータ転送制御回路171と各コントローラ40内の制御回路442との間で転送される。
【0034】次に、図14を参照して、コントローラパック50を詳細に説明する。コントローラパック50は、ケース501とそのケース501に取り付けられる裏蓋502とを含む。このケース501および裏蓋502で形成されたコントローラパック50が、図8の開口部408に、着脱自在に装着される。ケース501内には、基板503が収納される。基板503上には、前述のRAM51およびバックアップ電池52の他に、図9の振動発生回路50Aを構成する、電池504および駆動回路505が実装される。なお、基板503の手前側エッジには、図8のコントローラ40の開口部408に形成されたコネクタ(図示せず)に接続される複数の端子506が形成される。この端子506がゲーム機10のCPU11(図2)すなわちコントローラ制御回路17からのデータおよびアドレスを受ける。
【0035】裏蓋502には、振動発生回路50Aを構成する振動源507が固着される。実施例では、振動源507として、振動発生用モータを用いた。しかしながら、モータの他に、電源の供給を受けて振動を発生するソレノイドや他の素子が利用可能であることは勿論である。なお、振動発生用モータの一例として、東京パーツ工業株式会社製の「FM16,FM23,FM25あるいはFM29」や「CM−5」等が利用可能である。「FM」モータでは、円筒型ケースに内蔵された回転軸に偏心部材を取り付け、回転軸の回転に応じて偏心部材が回転することによって、ケースに振動が生じる。「CM」モータでは、電機子コイル自体を偏心させて装着し、その電機子が回転することによって、振動を発生する。なお、ソレノイドを用いる場合には、ソレノイド内の磁心が往復運動することによって振動が発生する。
【0036】いずれの場合も、このような振動源507は、電池504からの電源を受けて駆動回路505によって駆動され、振動を発生する。振動源507の消費電力は比較的大きく、したがって、この実施例では、RAM51のバックアップ電池52とは別に、電池504を設けた。したがって、電池504が消耗されたときには、裏蓋502に取り外し可能に設けられた電池蓋508を開いて、電池504を新しい電池に交換することができる。ただし、2つの電池52および504として、同じ電池を共通に用いることも、可能である。
【0037】ただし、コントローラケーブル42(図2)に電源線を含ませ、その電源線によって、画像処理装置本体すなわちゲーム機10から端子506を通して振動源507に電源を供給するようにしてもよい。その場合には、電源線の容量は、振動源507の必要電力を考慮して適宜選定されることはいうまでもない。さらに、この実施例では、振動源507で発生した振動が減衰することなくコントローラ40からプレイヤの手に伝達され易いように、振動源507を裏蓋502に取り付けた。つまり、振動源507で発生した振動は、裏蓋502から、その裏蓋502に接触しているコントローラ40の開口部408(図8)に伝達され、したがって、コントローラ40自体が振動する。そのため、コントローラ40を把持しているプレイヤの手に、振動源507が発生した振動が伝達されることになる。したがって、振動源507の振動がコントローラ40を通してプレイヤの手に伝達され得る限り、振動源507をケース501内の任意の位置に取り付けることができる。しかしながら、振動源507を基板503上に取り付けるのは、避けたほうがよい。その理由は、振動源507の振動が基板503上に実装された部品に悪影響を及ぼすこと、および端子506とコネクタとが弾性的に接触しているので、振動源507の振動がその弾性的接触によって減衰される可能性があること、等である。
【0038】次に、図15を参照して、駆動回路505を詳細に説明する。駆動回路505は、NANDゲート510から成るデコーダを含み、このNANDゲート510は、ゲーム機10のCPU11(図2)からのアドレスデータA2〜A14を、アドレスバスすなわち端子506(図14)を通して受ける。実施例のゲームシステムにおいては、CPU11のアドレスA15は通常用いないようにしているので、そのアドレスA15とアドレスA2〜A14の全てが「1」の場合、すなわち、アドレスFFFC〜FFFFの範囲をCPU11が指定したとき、振動モードが設定され、振動源507を駆動するためのデータをCPU11から出力するようにしている。つまり、CPUアドレスFFFC〜FFFFが指定されると、デコーダすなわちNANDゲート510の出力が「0」となる。このNANDゲート510の出力がNANDゲート511に与えられる。NANDゲート511にはさらに、CPU11からの書込信号−WEおよびチップイネーブル信号CEが与えられているので、NANDゲート511はNANDゲート510の出力および信号−WEおよびCEに応答して、ラッチ512iラッチ信号を与える。したがって、ラッチ512は、CPU11がFFFC〜FFFFアドレス5を指定したとき、すなわち、振動モードにおいて、CPUデータD0〜D2を、データバスすなわち端子506を通して、ラッチする。
【0039】このCPUデータD0〜D2は、振動源507で発生されるべき振動の強さを設定するデータであり、3ビットによって「1〜8」の強さのレベルを設定することができる。すなわち、D0〜D2が「100」のとき強さ「1」を設定し、「111」のとき強さ「8」を設定する。すなわち、ラッチ512は、3つの出力を有し、それぞれの出力が抵抗513a,513bおよび513cを介して、駆動トランジスタ514のベースに接続される。抵抗513a,513bおよび513cの抵抗値は、それぞれ、4R,2RおよびRである。したがって、3つの出力にともに「1」が出力されたとき、トランジスタ514に最も大きいベース電圧が印加され、3つの出力が「1」,「0」および「0」のとき、トランジスタ514に最も小さいベース電圧が印加される。したがって、トランジスタ514のコレクタ−エミッタ電流が変化し、それに応じて、電池504から振動源507(振動モータ)に流れる駆動電流が変化する。つまり、CPU11のデータバスのデータビットD0〜D2に適宜データを設定することによって、駆動源507で発生する振動の強さを可変的に設定することができる。
【0040】なお、図15実施例は、図16に示すように変形できる。図16実施例は、図15のデコーダ510を用いない点において、図15実施例と相違する。つまり、図16実施例では、NANDゲート511にCPU11のアドレスビットA15を直接与える。したがって、NANDゲート511は、CPU11の書込信号−WEに応答して、ラッチ信号をラッチ512に与える。したがって、図16実施例においても、CPU11のアドレスビットA15が「1」になったとき、振動モードが設定され、CPUデータビットD0〜D2をラッチ512がラッチし、そのデータに応じて駆動トランジスタ514を制御する。
【0041】なお、たとえばCPU11のデータバスのデータビットD0のみを用いて、振動源507を制御するようにしてもよい。この場合、図15または図16のラッチ512が振動モードにおいてデータビットD0のデータをラッチする。そして、ラッチ512は1つの出力のみを有し、その出力がトランジスタ514のベースに電圧を与える。したがって、この場合、トランジスタ514は、データD0の「1」または「0」によってオンまたはオフされるだけで、振動源507の振動の強さは一定である。
【0042】図17に、「釣りゲーム」における振動発生パターンの一例を示す。「釣りゲーム」においては、魚が餌をつつく「餌つつき」や、魚が針に引っ掛かったときの「食いつき」、あるいは魚を引き上げる「引き上げ」など、各場面において振動を発生させることによって、プレイヤに一層「釣りゲーム」の実感を与えることができる。
【0043】図17のタイミングt1〜t4までは、「餌つつき」のときの、振動態様を示す。「餌つつき」では、魚が針の餌をつつく状態であるため、さほど大きい振動は必要ない。したがって、この実施例では、タイミングt1において、CPU11がアドレスA15に「1」を出力するとともに、データD0,D1,D2に「110」を出力する。「110」のデータに応じて、ラッチ512の一番下の出力に「0」たとえば0Vが出力され、上2つの出力には「1」たとえば3Vが出力される。したがって、このタイミングt1で、トランジスタ514は、振動レベル「3」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt1でレベル「3」の振動が振動源507から発生され、その振動が上述のようにプレイヤの手に伝わる。したがって、プレイヤは、「餌つつき」がそのとき行われていることをその振動から実感することができる。
【0044】そして、CPU11は、タイミングt2でアドレスA15およびデータD0〜D2をいずれも「0」とする。応じて、トランジスタ514がオフし、振動源507の駆動電流がオフされ、コントローラパックすなわちコントローラの振動は停止する。再び、「餌つつき」があることをプレイヤに知らせるために、CPU11は、タイミングt3において、アドレスA15に「1」を出力するとともに、データD0〜D2に「110」を出力する。そのため、。このタイミングt3で、レベル「3」の振動が振動源507から発生され、その振動が上述のようにプレイヤの手に伝わる。したがって、プレイヤは、「餌つつき」がそのとき行われていることをその振動から実感することができる。
【0045】そして、CPU11は、タイミングt4でアドレスA15およびデータD0〜D2をいずれも「0」とする。応じて、トランジスタ514がオフし、振動源507の駆動電流がオフされ、コントローラパックすなわちコントローラの振動は停止する。次のタイミングt5〜t14は、「くいつき」の振動パターンであり、この場合、CPU11は、タイミングt5でアドレスA15を「1」として出力するとともに、データD0〜D2に「010」を出力する。「010」のデータに応じて、ラッチ512の真ん中の出力に「1」たとえば3Vが出力され、上下2つの出力には「0」たとえば0Vが出力される。したがって、このタイミングt5で、トランジスタ514は、振動レベル「2」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt5でレベル「2」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。したがって、プレイヤは、「くいつき」がそのとき行われていることを振動から実感することができる。同様に、CPU11は、タイミングt6でアドレスA15を「1」として出力するとともに、データD0〜D2に「101」を出力する。「001」のデータに応じて、ラッチ512の一番下の出力のみからたとえば3Vが出力される。したがって、このタイミングt6で、トランジスタ514は、振動レベル「4」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt6でレベル「4」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。さらに、CPU11は、タイミングt7でアドレスA15を「1」として出力するとともに、データD0〜D2に「111」を出力する。「111」のデータに応じて、ラッチ512のすべての出力からはたとえば3Vが出力される。したがって、このタイミングt7で、トランジスタ514は、振動レベル「7」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt7でレベル「7」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。
【0046】さらに、CPU11は、タイミングt8でアドレスA15を「1」として出力するとともに、データD0〜D2に「011」を出力する。「011」のデータに応じて、ラッチ512の下2つの出力からはたとえば3Vが出力される。したがって、このタイミングt8で、トランジスタ514は、振動レベル「6」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt8でレベル「6」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。
【0047】同様にして、「くいつき」の期間、CPU11は、タイミングt9,t10,t11,t12,t13およびt14において、それぞれ、データ「101」,「001」,「110」,「010」および「100」を出力する。応じて、振動源507が、タイミングt9,t10,t11,t12,t13およびt14において、それぞれ、レベル「5」,「4」,「3」,「2」および「1」で振動を発生し、それらの振動子がプレイヤに伝達される。したがって、プレイヤは、タイミングt5〜t14までの期間、漸増しそして漸減する振動レベルによって、「くいつき」が行われていることを実感することができる。
【0048】次のタイミングt15以後は、「引き上げ」の振動パターンであり、この場合、CPU11は、タイミングt15でアドレスA15を「1」として出力するとともに、データD0〜D2に「010」を出力する。「010」のデータに応じて、ラッチ512の真ん中の出力に「1」たとえば3Vが出力され、上下2つの出力には「0」たとえば0Vが出力される。したがって、このタイミングt5で、トランジスタ514は、振動レベル「2」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt5でレベル「2」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。同様に、CPU11は、タイミングt16でアドレスA15を「1」として出力するとともに、データD0〜D2に「101」を出力する。「001」のデータに応じて、ラッチ512の一番下の出力のみからたとえば3Vが出力される。したがって、このタイミングt16で、トランジスタ514は、振動レベル「4」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt6でレベル「4」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。さらに、CPU11は、タイミングt7でアドレスA15を「1」として出力するとともに、データD0〜D2に「111」を出力する。「111」のデータに応じて、ラッチ512のすべての出力からはたとえば3Vが出力される。したがって、このタイミングt6で、トランジスタ514は、振動レベル「7」に相当する大きさの駆動電流を振動源(モータ)507に与えるようにオンする。したがって、タイミングt7でレベル「7」の振動が振動源507から発生され、その振動がプレイヤの手に伝わる。このようにして、「引き上げ」の振動パターンに従って振動源507が振動を発生するので、プレイヤは、その期間「引き上げ」を行っていることを実感することができる。
【0049】なお、CPU11による振動源507の駆動および停止、ならびに振動強さの制御は、ROMカートリッジ20等のゲームプログラムに従って実行されるものである。したがって、映像および音声の変化とともに、振動の発生,停止および強さ変化が生じるようにゲームプログラムを作成しておけば、極めて実感のあるゲームを家庭用ビデオゲーム機で楽しむことができる。
【0050】また、上述の「釣りゲーム」以外に、レーシングゲームにおいて、「クラッシュ」が発生したときなど、どのゲームでどのタイミングでどのレベルの強さの振動を発生させるかは、ゲームプログラム作成者が任意に設定できる。
【図面の簡単な説明】
【図1】この発明のコントローラパックが適用され得る家庭用ビデオゲーム機の一例を示す概略図解図である。
【図2】図1のビデオゲーム機を詳細に示すブロック図である。
【図3】図2のバス制御回路をより詳細に示すブロック図である。
【図4】図2のRAMのメモリマップを示す図解図である。
【図5】図2のコントローラ制御回路を詳細に示すブロック図である。
【図6】図5のRAMのメモリマップを示す図解図である。
【図7】図2のコントローラの上から見た斜視図である。
【図8】図2のコントローラの下から見た斜視図である。
【図9】コントローラおよびコントローラパックを詳細に示すブロック図である。
【図10】コントローラのアナログジョイスティックおよび各ボタンのデータを示す図解図である。
【図11】図2のCPUの動作を示すフローチャートである。
【図12】図2のバス制御回路すなわち図3のRCP(Reality Co-Processor)の動作を示すフローチャートである。
【図13】図2のコントローラ制御回路の動作を示すフローチャートである。
【図14】この発明の一実施例であるコントローラパックを示す分解斜視図である。
【図15】図14の駆動回路の一例を示す回路図である。
【図16】図14の駆動回路の他の例を示す回路図である。
【図17】この発明の実施例のコントローラパックを用いるゲームの一例において振動源が振動を発生するタイミングを示す図解図である。
【符号の説明】
10 …画像処理装置本体(ゲーム機)
11 …CPU
17 …コントローラ制御回路
20 …ROMカートリッジ
40 …コントローラ
50 …コントローラパック
50A …振動発生回路
501 …ケース
502 …裏蓋
503 …基板
504 …電池
505 …駆動回路
506 …端子
507 …振動源
508 …電池蓋
【特許請求の範囲】
【請求項1】ビデオゲーム機に接続されるコントローラに着脱自在に装着されるコントローラパックであって、ケース、前記ケースに取り付けられ、電源によって振動を発生する振動源、前記ケース内に設けられ、前記ビデオゲーム機から振動の強さを表す複数ビットの強さデータを受ける複数の端子、および前記ケース内に設けられ、前記ゲーム機からの指令信号に応答して前記振動源に前記電源を付与する駆動回路を備え、前記駆動回路は、前記複数の端子から与えられる前記強さデータに基づいて前記振動源にその強さデータに応じた大きさの駆動電流を付与する強さ変化手段を含む、コントローラパック。
【請求項2】前記ケース内に設けられ、前記振動源に前記電源を供給する電池をさらに備える、請求項1記載のコントローラパック。
【請求項3】前記複数の端子は、前記ゲーム機から前記電源の供給を受ける端子を含む、請求項1記載のコントローラパック。
【請求項4】前記複数の端子は、前記ゲーム機から特定アドレスの指令信号を受ける端子を含み、前記駆動回路は、前記複数の端子が前記特定アドレスの指令信号を受けたことに応答して前記振動源に前記電源を付与する、請求項1ないし3のいずれかに記載のコントローラパック。
【請求項5】ビデオゲーム機と、前記ゲーム機に接続されるコントローラと、前記コントローラに着脱自在に装着されるコントローラパックとを含むゲーム機システムであって、前記ビデオゲーム機に設けられ、バスに結合されたゲーム用プロセサ、前記コントローラパックのケースに取り付けられ、電源によって振動を発生する振動源、前記コントローラに設けられ、前記バスの第1特定ビットの信号および前記バスの第2特定ビットの信号を前記コントローラパックに与える信号付与手段、前記ケース内に設けられ、前記信号付与手段から前記信号を受ける端子、前記ケース内に設けられ、前記端子からの信号に応答して前記振動源に前記電源を付与する駆動回路を備える、ゲーム機システム。
【請求項1】ビデオゲーム機に接続されるコントローラに着脱自在に装着されるコントローラパックであって、ケース、前記ケースに取り付けられ、電源によって振動を発生する振動源、前記ケース内に設けられ、前記ビデオゲーム機から振動の強さを表す複数ビットの強さデータを受ける複数の端子、および前記ケース内に設けられ、前記ゲーム機からの指令信号に応答して前記振動源に前記電源を付与する駆動回路を備え、前記駆動回路は、前記複数の端子から与えられる前記強さデータに基づいて前記振動源にその強さデータに応じた大きさの駆動電流を付与する強さ変化手段を含む、コントローラパック。
【請求項2】前記ケース内に設けられ、前記振動源に前記電源を供給する電池をさらに備える、請求項1記載のコントローラパック。
【請求項3】前記複数の端子は、前記ゲーム機から前記電源の供給を受ける端子を含む、請求項1記載のコントローラパック。
【請求項4】前記複数の端子は、前記ゲーム機から特定アドレスの指令信号を受ける端子を含み、前記駆動回路は、前記複数の端子が前記特定アドレスの指令信号を受けたことに応答して前記振動源に前記電源を付与する、請求項1ないし3のいずれかに記載のコントローラパック。
【請求項5】ビデオゲーム機と、前記ゲーム機に接続されるコントローラと、前記コントローラに着脱自在に装着されるコントローラパックとを含むゲーム機システムであって、前記ビデオゲーム機に設けられ、バスに結合されたゲーム用プロセサ、前記コントローラパックのケースに取り付けられ、電源によって振動を発生する振動源、前記コントローラに設けられ、前記バスの第1特定ビットの信号および前記バスの第2特定ビットの信号を前記コントローラパックに与える信号付与手段、前記ケース内に設けられ、前記信号付与手段から前記信号を受ける端子、前記ケース内に設けられ、前記端子からの信号に応答して前記振動源に前記電源を付与する駆動回路を備える、ゲーム機システム。
【図1】
【図2】
【図5】
【図7】
【図3】
【図4】
【図11】
【図6】
【図8】
【図10】
【図17】
【図12】
【図13】
【図14】
【図9】
【図15】
【図16】
【図2】
【図5】
【図7】
【図3】
【図4】
【図11】
【図6】
【図8】
【図10】
【図17】
【図12】
【図13】
【図14】
【図9】
【図15】
【図16】
【特許番号】特許第3514925号(P3514925)
【登録日】平成16年1月23日(2004.1.23)
【発行日】平成16年4月5日(2004.4.5)
【国際特許分類】
【出願番号】特願平8−268070
【出願日】平成8年10月9日(1996.10.9)
【公開番号】特開平9−164270
【公開日】平成9年6月24日(1997.6.24)
【審査請求日】平成14年7月22日(2002.7.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【参考文献】
【文献】国際公開97/032641(WO,A1)
【登録日】平成16年1月23日(2004.1.23)
【発行日】平成16年4月5日(2004.4.5)
【国際特許分類】
【出願日】平成8年10月9日(1996.10.9)
【公開番号】特開平9−164270
【公開日】平成9年6月24日(1997.6.24)
【審査請求日】平成14年7月22日(2002.7.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【参考文献】
【文献】国際公開97/032641(WO,A1)
[ Back to top ]