以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明の実施の形態におけるゲームシステムの全体構成を示す図である。図1に示すように、このゲームシステムは、ゲーム装置1、及び、テレビジョンモニタ100、を備える。
ゲーム装置1は、ハウジング3を含む。このハウジング3には、決定ボタン5、ハンドル7、コイン投入部9、電源スイッチ6、及び、キャンセルボタン11、が設けられ、さらに、コイン放出口13が形成される。
ゲーム装置1と、テレビジョンモニタ100とは、AVケーブル102で接続される。さらに、ゲーム装置1には、ACアダプタ103により直流電源電圧が供給される。ただし、ACアダプタ103に代えて、電池(図示せず)により、直流電源電圧を与えることもできる。なお、テレビジョンモニタ100の前面には、スクリーン101が設けられる。
図2は、図1のゲーム装置1のコイン投入部9の斜視図である。なお、図2において、図1と同様の部分については、同一の参照符号を付している。図2に示すように、コイン投入部9は、コイン投入口91を有している。そして、コイン投入部9には、コイン投入口91から延びる経路を挟むように、フォトダイオード92とフォトトランジスタ93とが配置される。
コイン8が、コイン投入口91に投入されと、フォトダイオード92が発光する光が一瞬遮られる。この遮光をフォトトランジスタ93で検出することにより、コイン8が投入されたことを検知できる。このようにして、投入されたコイン8の枚数をカウントする。
この場合、コイン8の側面81で、光を遮るので、コイン8の表面82で光を遮る場合と比較して次の利点がある。つまり、コイン8の表面82で光を遮るようにすると、貫通孔が形成されているコイン8が投入された場合、1枚のコイン8を投入したときでも、フォトトランジスタ93により、複数回の遮光が検出され、コイン8の正確な投入枚数を検知できないことも生じうる。コイン8の側面81で光を遮るようにすると、このような不都合を回避できる。
図3(a)は、図1のハンドル7の構造を、ハウジング3の内部から見た図であって、ハンドル7が基準位置に位置している状態を示す図である。図3(b)は、図1のハンドル7の構造を、ハウジング3の内部から見た図であって、ハンドル7が反時計回りに90度回転した状態を示す図である。ここで、反時計回りとは、ハウジング3の外部から見た場合の反時計回りである。なお、図3(a)及び図3(b)において、図1と同様の部分については、同一の参照符号を付している。
図3(a)に示すように、ハンドル7の裏面の中心部には、紙面に垂直に突き出ている円柱状の凸部71、紙面に垂直に突き出ている板状の凸部74、及び、紙面に垂直に突き出ている角柱状の凸部72,73、が形成される。また、ハウジング3には、下方に延びるように、ストッパ31が形成される。
凸部71には、金属製のトーションスプリング76が、装着される。そして、凸部71に、接合プレート75が取り付けられる。これにより、トーションスプリング76が、凸部71から外れることが防止される。
図3(a)の基準位置にあるハンドル7を、プレイヤが、例えば、図3(b)に示すように、反時計回りに回転させたとする。この場合、凸部72が、ストッパ31で停止するまで、回転させることができる。同様に、凸部73が、ストッパ31で停止するまで、時計回りの回転が可能である。従って、凸部72,73の位置により、ハンドル7の最大回転角度が定められる。
また、ハンドル7が回転した状態で、トーションスプリング76の一方端が、ストッパ31により固定され、他方端が、凸部74に押され、これにより、トーションスプリング76が、開いた状態となる。従って、プレイヤが、ハンドル7を離すと、トーションスプリング76の弾性力により、ハンドル7が基準位置に復帰する。なお、図3(a)のトーションスプリング76の状態を閉じた状態と呼ぶ。
図4は、図1のハンドル7の回転量を検出するロータリエンコーダの斜視図である。なお、図4において、図3(a)及び図3(b)と同様の部分については、同一の参照符号を付している。図4に示すように、ロータリエンコーダ77の接合部材79が、接合プレート75に嵌め込まれる。接合部材79がロータリエンコーダ77の回転軸78に取り付けられ、かつ、接合プレート75が、図3(a)のハンドル7の凸部71に取り付けられるため、ハンドル7の回転に伴って、ロータリエンコーダ77の円板85が回転する。
円板85にはスリットが形成されているため、円板85が回転すると、フォトダイオード86が発光する光が、間欠的にフォトダトランジスタユニット87に入力される。従って、フォトトランジスタユニット87が出力するパルス信号をカウントすることで、ハンドル7の回転量を検知できる。また、フォトトランジスタユニット87は、上下に配置された2つのフォトトランジスタからなるため、ハンドル7の回転方向も知ることができる。
図5は、図1のハウジング3の内部に設置されるホッパーの平面図である。図6は、図5のA−A線による断面図である。なお、図6において、図1と同様の部分については、同一の参照符号を付している。
図5及び図6に示すように、ホッパー35の底部には、回転円板32が、モータユニット40により回転可能に取り付けられる。回転円板32には、コイン8を受け入れるための2つの貫通孔33が形成される。従って、モータユニット40により、回転板32を回転させることで、貫通孔33に取り込まれたコイン8を、ホッパー35の底部に形成されたコイン落下口34まで、押し出すことができる。これにより、そのコイン8は、コイン落下口34から、案内部材36,37を介して、図1のコイン放出口13から外部に放出される。
ここで、ホッパー35の内部側面には、コイン起立防止部材38が取り付けられる。これは、コイン8が起立するのを防止して、貫通孔33にコイン8が取り込まれ易くすることにより、円滑にコイン8を外部に放出できるように設けられたものである。特に、これは、ホッパー35に蓄積されたコイン8が少なくなったときに有効となる。コイン起立防止部材38は、このような機能を有するため、図6に示すように、回転円板32から、コイン起立部材38の頂点部までの距離Hは、コイン8の直径より長く設定することが好ましい。
また、ホッパー35は、水平面110から所定角度傾斜して、ハウジング3の内部に設置される。これは、ホッパー35に蓄積されたコイン8が少なくなった場合でも、ホッパー35の最下部にコイン8を集中させて、コイン8が貫通孔33に取り込まれ易くするためである。従って、コイン起立防止部材38は、ホッパー35の最下部を中心に取り付けられる。一方、コイン落下口34は、ホッパー35の底部において、最も高い位置に形成される。
さらに、コイン落下口34の直上には、回転円板32を挟むように、プレート39が設けられる。このプレート39は、貫通孔33に一旦取り込まれたコイン8が、再び貫通孔33から外れることを防止して、確実にコイン8をコイン落下口34から落下させるようにしたものである。
なお、図6に示すように、コイン投入部9から投入されたコイン8は、ホッパー35に蓄積される。また、図6では、回転円板32の貫通孔33の図示を省略している。また、図示していないが、ハウジング3には、コイン投入部9とは別に、ホッパー35にコイン8を入れるための、蓋付きの投入口が形成されている。
図7は、図6のモータユニット40の透視図である。なお、図7において、図6と同様の部分については、同一の参照符号を付している。図7に示すように、モータユニット40は、直流モータ401、ギア402〜409、及び、回転軸410、を含む。直流モータ401を駆動することで、ギア402〜409を介して、回転軸410を回転させる。この回転軸410は、図6に示す回転円板32の中心部に、ビス411により固定されている。従って、直流モータ401により回転軸410を回転させることで、回転円板32を回転させることができる。
ここで、モータユニット40、回転板32、及び、プレート39、は払い出し機構を構成する。
図8は、図6の案内部材36の説明図である。なお、図8において、図6と同様の部分については、同一の参照符号を付している。図8に示すように、図6のコイン落下口34に接続される案内部材36には、その内部の経路を挟むように、フォトダイオード361とフォトトランジスタ362とが配置される。フォトダイオード361及びフォトトランジスタ362によるコイン8の検知方法は、コイン投入部9のフォトダイオード92及びフォトトランジスタ93による検知方法と同様であり、コイン8の側面8による遮光を検出して、コイン8の通過を検知する。
このようにして、コイン落下口34から落下したコイン8の枚数をカウントする。なお、図6では、フォトダイオード361のみが図示されているが、その反対側に対向して、フォトトランジスタ362が配置される。また、フォトダイオード361及びフォトトランジスタ362は、コイン8の検出の精度を上げる為に、コイン落下口34の近傍に配置される。
ここで、ゲーム内容について、いくつかの例を挙げながら説明する。まず、電源スイッチ6をオンにするとゲーム選択画面が、テレビジョンモニタ100のスクリーン101に表示される。
図9は、本実施の形態によるゲーム選択画面の例示図である。図9に示すように、図1の電源スイッチ6がオンにされると、テレビジョンモニタ100のスクリーン101には、ゲーム選択画面が表示される。図9の例では、プレイヤは、ゲームA〜ゲームFまでの6種類の中から、所望のゲームを選択できる。
具体的には、最初はゲームAの表示が点灯しており、プレイヤが、ハンドル7を時計回りに回転させると、ゲームBの表示が点灯し、ハンドル7を基準位置に戻して再び時計回りに回転させると、ゲームCの表示が点灯し…、というように、ハンドル7を操作することで、ゲーム内容を選択していくことができる。ハンドル7を反時計回りに回転させると、点灯方向が逆になる。そして、プレイヤにより決定キー5が押下されると、その時選択されている(その時点灯している)ゲーム内容の実行が確定する。プレイヤの選択に従って、以下のようなゲームプログラムが実行される。
図10は、図9のゲームAのゲーム画面の例示図である。図9に示すように、プレイヤがゲームAを選択すると、スクリーン101に、シーソーゲームの画面が表示される。
プレイヤが、コイン投入部9からコイン8を投入すると、コイン8の投入に同期して、スクリーン101に、コイン8を模したコイン画像301が出現する。このコイン画像301は、上(出現位置)から下へ移動していき、シーソー画像300に到達する。
プレイヤが、ハンドル7を反時計回りに回転させると、スクリーン101上のシーソー画像300が、反時計回りに回転し、一方、プレイヤが、ハンドル7を時計回りに回転させると、スクリーン101上のシーソー画像300が、時計回りに回転する。この場合、ハンドル7の回転量に応じて、シーソー画像300の回転量が異なってくる。
従って、プレイヤは、ハンドル7を操作して、シーソー画像300の動きを制御することで、シーソー画像300に到達したコイン画像301の移動を制御できる。そして、プレイヤが、その様な制御を行いながら、コイン画像301を、左右に移動する船の画像302に落とすことができれば、コイン放出口13から、所定枚数のコインが払い出される。
図11は、図9のゲームBのゲーム画面の例示図である。図11に示すように、プレイヤがゲームBを選択すると、スクリーン101に、船の画像303及び魚の画像304が表示される。
プレイヤが、ハンドル7を反時計回りに回転させると、スクリーン101上の船の画像303が、左方向に移動し、一方、プレイヤが、ハンドル7を時計回りに回転させると、スクリーン101上の船の画像303が、右方向に移動する。この場合、ハンドル7の回転量に応じて、船の画像303の移動量が異なってくる。
そして、プレイヤが、コイン投入部9からコイン8を投入すると、コイン8の投入に同期して、船の画像303の下部にコイン画像301が出現する。このコイン画像301は、上(出現位置)から下へ移動していく。
プレイヤが、ハンドル7を操作して、船の画像303を移動させて、適切な位置で、コイン8を投入すると、出現したコイン画像301が、魚の画像304に衝突する。すると、コイン放出口13から、所定枚数のコインが払い出される。
図12は、図9のゲームCのゲーム画面の例示図である。図12に示すように、プレイヤがゲームCを選択すると、スクリーン101に、穴の画像306、ゴール画像307、押し出し体の画像305、及び、経路の画像308、が表示される。
プレイヤが、コイン投入部9からコイン8を投入すると、コイン8の投入に同期して、スクリーン101に、コイン8を模したコイン画像301が出現する。このコイン画像301は、上(出現位置)から下へ移動していき、経路の画像308に到達し、経路の画像308に沿って押し出し体の画像305まで転がっていく。
プレイヤが、ハンドル7を時計回りに回転させると、スクリーン101の右側面に表示された押し出し体の画像305が収縮動作(ばね画像が縮む動作)を行い、続けて、ハンドル7を反時計回りに回転させると、その押し出し体の画像305が伸長動作(ばね画像が伸びる動作)を行って、コイン画像301が、押し出し体の画像305により、押し出される。
一方、プレイヤが、ハンドル7を反時計回りに回転させると、スクリーン101の左側面に表示された押し出し体の画像305が収縮動作(ばね画像が縮む動作)を行い、続けて、ハンドル7を時計回りに回転させると、その押し出し体の画像305が伸長動作(ばね画像が伸びる動作)を行って、コイン画像301が、押し出し体の画像305により、押し出される。
プレイヤは、以上のようにハンドル7を操作して、押し出し体の画像305を駆動して、コイン画像301を押し出す。すると、コイン画像301は、経路308に沿って移動する。この場合、コイン画像301は、ハンドル7の回転量に応じた強さで押し出されるため、コイン画像301の移動量は、ハンドル7の回転量で制御できる。
プレイヤは、ハンドル7により、押し出し体の画像305の伸縮動作を巧みに制御して、コイン画像301を穴の画像306に落とさないように、ゴール画像307まで導くことができれば、コイン放出口13から、所定枚数のコインが払い出される。
図13は、図9のゲームDのゲーム画面の例示図である。図13に示すように、プレイヤがゲームDを選択すると、スクリーン101に、的当てゲームの画面が表示される。
プレイヤが、ハンドル7を反時計回りに回転させると、スクリーン101の大砲の画像309が、左に向きを変え、一方、プレイヤが、ハンドル7を時計回りに回転させると、スクリーン101の大砲の画像309が、右に向きを変える。この場合、ハンドル7の回転量に応じて、大砲の画像309の移動量が異なってくる。
プレイヤが、コイン投入部9からコイン8を投入すると、コイン8の投入に同期して、大砲の画像309から、コイン画像301が出現する。このコイン画像301は、大砲の画像309(出現位置)から奥の壁の画像311へ移動する。この場合、コイン画像301は、大砲の画像309の向きに応じた方向に移動していく。
プレイヤが、ハンドル7を操作して、大砲の画像309の向きを上手く制御することで、コイン画像301を、移動する的の画像310に当てることができれば、コイン放出口13から、所定枚数のコインが払い出される。
図14は、図9のゲームEのゲーム画面の例示図である。図14に示すように、プレイヤがゲームEを選択すると、スクリーン101に、コリントゲームの画面が表示される。
スクリーン101の上部にコイン投入体の画像312が表示される。このコイン投入体の画像312は、左右に移動している。また、スクリーン101には、釘の画像313、及び、点数ボックスの画像314が表示される。
プレイヤが、コイン投入部9からコイン8を投入すると、コイン8の投入に同期して、コイン投入体の画像312から、コイン画像301が出現する。このコイン画像301は、上(出現位置)から下へ移動する。この場合、コイン画像301は、釘の画像313に衝突しながら、落下していく。
プレイヤが、コイン投入体の画像312が適切な位置に来たときに、コイン8を投入すれば、その時出現したコイン画像301が、釘の画像313に衝突しながらも、点数ボックスの画像314に到達する。そうすると、点数ボックスの画像314に表示されている数と同じ枚数のコイン8が、コイン放出口13から払い出される。
図15は、図9のゲームFのゲーム画面の例示図である。図15に示すように、プレイヤがゲームFを選択すると、スクリーン101に、スロットマシンゲームの画面が表示される。
この画面には、投入されたコイン8の枚数を表示する枚数表示部316が含まれる。また、3つのドラムの画像315が表示される。
プレイヤが、コイン8を投入し、決定ボタン5を押下すると、ドラムの画像315が回転する。そして、プレイヤが、ハンドル7を操作して、ドラムの画像315を選択し、決定ボタン5を押下すると、選択したドラムの画像315が停止する。このようにして、3つのドラムの画像315を停止させ、同じ図柄が3つ揃えば、投入したコイン8の枚数に応じた枚数のコイン8が、コイン放出口13から払い出される。
図16は、図1のゲーム装置1の電気的構成を示す図である。図16に示すように、ゲーム装置1は、高速プロセッサ50、画像信号出力端子51、楽音信号出力端子52、ROM(read only memory)53、バス54、投入コイン検出回路55、放出コイン検出回路56、ハンドル回転検出回路57、モータ回路58、及び、キースイッチ群59、を含む。
投入コイン検出回路55は、図2のコイン投入部9のフォトダイオード92及びフォトトランジスタ93を含む。そして、投入コイン検出回路55は、フォトトランジスタ93からの信号aを、高速プロセッサ50に与える。高速プロセッサ50は、投入コイン検出回路55からの信号aのH(High)レベルからL(Low)レベルへの遷移を検出して、コイン8が投入されたことを検知する。また、高速プロセッサ50は、HレベルからLレベルへの遷移の回数をカウントする。このカウント値が、投入されたコイン8の枚数となる。
放出コイン検出回路56は、図8の案内部材36のフォトダイオード361及びフォトトランジスタ362を含む。そして、放出コイン検出回路56は、フォトトランジスタ362からの信号bを、高速プロセッサ50に与える。高速プロセッサ50は、放出コイン検出回路56からの信号bのHレベルからLレベルへの遷移を検出して、コイン8が放出されたことを検知する。また、高速プロセッサ50は、HレベルからLレベルへの遷移の回数をカウントする。このカウント値が、放出されたコイン8の枚数となる。
ハンドル回転検出回路57は、図4のロータリエンコーダ77のフォトダイオード86及びフォトトランジスタユニット87を含む。そして、ハンドル回転検出回路57は、フォトトランジスタユニット87の2つのフォトトランジスタが出力する2本のパルス信号A,Bを、高速プロセッサ50に与える。高速プロセッサ50は、2本のパルス信号A,Bの状態遷移の回数をカウントして、ハンドル7の回転量を検知する。また、ハンドル7の回転方向により、2本のパルス信号A,Bの位相差が異なるため、これを検出することで、高速プロセッサ50は、ハンドル7の回転方向を検知する。
モータ回路58は、図7の直流モータ401を含む。高速プロセッサ50は、制御信号cをモータ回路58に与えることにより、直流モータ401の駆動を制御する。つまり、高速プロセッサ50は、制御信号cをモータ回路58に与えることで、ホッパー35に設けられた回転円板32の回転を制御する。
キースイッチ群59は、図1の決定キー5及びキャンセルキー11を含む。高速プロセッサ50は、キースイッチ群59の各キー5,11からのオン/オフ信号を受けて、各キー5,11により指示された処理を実行する。
高速プロセッサ50は、バス54を介して、ROM53にアクセスすることができ、ROM53に格納されたゲームプログラムを実行する。そして、ROM53に格納された画像データ及び楽音データを読み出して、必要な処理を施し、画像信号及び楽音信号を生成する。このようにして生成した画像信号及び楽音信号は、それぞれ、画像信号出力端子51及び楽音信号出力端子52に与えられ、AVケーブル102により、テレビジョンモニタ100に出力される。
図17は、図16の高速プロセッサ50の詳細を示すブロック図である。なお、図17において、図16と同様の部分については、同一の参照符号を付している。図17に示すように、この高速プロセッサ50は、中央演算処理装置(CPU:central processing unit)201、グラフィックプロセッサ202、サウンドプロセッサ203、DMA(direct memory access)コントローラ204、第1バス調停回路205、第2バス調停回路206、内部メモリ207、A/Dコンバータ(ADC:analog to digital converter)208、入出力制御回路209、タイマ回路210、DRAM(dynamic random access memory)リフレッシュ制御回路211、外部メモリインタフェース回路212、クロックドライバ213、PLL(phase−locked loop)回路214、低電圧検出回路215、第1バス218、及び、第2バス219、を含む。
CPU201は、メモリ(内部メモリ207、又は、ROM53)に格納されたプログラムに従い、各種演算やシステム全体の制御を行う。CPU201は、第1バス218及び第2バス219のバスマスタであり、それぞれのバスに接続された資源にアクセスが可能である。
グラフィックプロセッサ202は、第1バス218及び第2バス219のバスマスタであり、内部メモリ207、又は、ROM53に格納されたデータを基に、画像信号を生成して、画像信号出力端子51へ出力する。グラフィックプロセッサ202は、第1バス218を通じて、CPU201により制御される。また、グラフィックプロセッサ202は、CPU201に対して、割込み要求信号220を発生する機能を有する。
サウンドプロセッサ203は、第1バス218及び第2バス219のバスマスタであり、内部メモリ207、又は、ROM53に格納されたデータを基に、楽音信号を生成して、楽音信号出力端子52へ出力する。サウンドプロセッサ203は、第1バス218を通じて、CPU201により制御される。また、サウンドプロセッサ203は、CPU201に対して、割込み要求信号220を発生する機能を有する。
DMAコントローラ204は、ROM53から、内部メモリ207へのデータ転送を司る。また、DMAコントローラ204は、データ転送の完了を通知するために、CPU201に対する割込み要求信号220を発生する機能を有する。DMAコントローラ204は、第1バス218及び第2バス219のバスマスタである。DMAコントローラ204は、第1バス218を通じてCPU201により制御される。
内部メモリ207は、マスクROM、SRAM(static random access memory)、及び、DRAMのうち、必要なものを備える。バッテリによるSRAMのデータ保持が必要とされる場合、バッテリ217が必要となる。DRAMが搭載される場合、定期的にリフレッシュと呼ばれる記憶内容保持のための動作が必要とされる。
第1バス調停回路205は、第1バス218の各バスマスタからの第1バス使用要求信号を受け付け、調停を行い、各バスマスタへの第1バス使用許可信号を発行する。各バスマスタは、第1バス使用許可信号を受領することによって第1バス218に対するアクセスが許可される。ここで、第1バス使用要求信号及び第1バス使用許可信号は、図17では、第1バス調停信号222として示されている。
第2バス調停回路206は、第2バス219の各バスマスタからの第2バス使用要求信号を受け付け、調停を行い、各バスマスタへの第2バス使用許可信号を発行する。各バスマスタは、第2バス使用許可信号を受領することによって第2バス219に対するアクセスが許可される。ここで、第2バス使用要求信号及び第2バス使用許可信号は、図17では、第2バス調停信号223として示されている。
入出力制御回路209は、外部入出力装置や外部の半導体素子との通信等を入出力信号を介して行う。入出力信号は、第1バス218を介して、CPU201からリード/ライトされる。また、入出力制御回路209は、CPU201に対して、割込み要求信号220を発生する機能を有する。
ここで、入出力制御回路209は、投入コイン検出回路55からの信号a、放出コイン検出回路56からの信号b、ハンドル回転検出回路57からの信号A,B、及び、キースイッチ群59からの信号、を受け付ける。また、入出力制御回路209は、直流モータ401の制御信号cを、モータ回路58に出力する。
タイマ回路210は、設定された時間間隔に基づき、CPU201に対する割込み要求信号220を発生する機能を有する。時間間隔等の設定は、第1バス218を介してCPU201によって行われる。
ADC208は、アナログ入力信号をデジタル信号に変換する。このデジタル信号は、第1バス218を介してCPU201によってリードされる。また、ADC208は、CPU201に対して、割込み要求信号220を発生する機能を有する。
PLL回路214は、水晶振動子216より得られる正弦波信号を逓倍した高周波クロック信号を生成する。
クロックドライバ213は、PLL回路214より受け取った高周波クロック信号を、各ブロックへクロック信号225を供給するのに十分な信号強度へ増幅する。
低電圧検出回路215は、電源電圧VCCを監視し、電源電圧VCCが一定電圧以下のときに、PLL回路214のリセット信号226、その他のシステム全体のリセット信号227を発行する。また、内部メモリ207がSRAMで構成されており、かつ、SRAMのバッテリ217によるデータ保持が要求される場合、電源電圧VCCが一定電圧以下のときに、バッテリバックアップ制御信号224を発行する機能を有する。
外部メモリインタフェース回路212は、第2バス219を外部バス62に接続するための機能、及び、第2バス219のサイクル終了信号228を発行することにより、第2バスのバスサイクル長を制御する機能、を有する。
DRAMリフレッシュ制御回路211は、一定期間毎に第1バス218の使用権を無条件に獲得し、DRAMのリフレッシュ動作を行う。なお、DRAMリフレッシュ制御回路211は、内部メモリ207がDRAMを含む場合に設けられる。
図18は、図16の投入コイン検出回路55の回路図である。なお、図18において、図2と同様の部分については、同一の参照符号を付している。図18に示すように、コイン投入検出回路55は、フォトダイオード92、フォトトランジスタ93、及び、抵抗素子550,560、を含む。
フォトダイオード92のカソードは、接地GNDに接続され、アノードは、抵抗素子550の一方端に接続される。抵抗素子550の他方端は、電源VCCに接続される。一方、フォトトランジスタ93のコレクタは、電源VCCに接続される。抵抗素子560の一方端は、接地GNDに接続される。ノードN1には、フォトトランジスタ93のエミッタ及び抵抗素子560の他方端が接続される。そして、ノードN1が、入出力制御回路209に接続される。
フォトダイオード92から発光された光は、フォトトランジスタ93により検知され、Hレベルの信号aがノードN1から出力される。コイン8により、光が遮られると、信号aがHレベルからLレベルになるので、CPU201は、このような遷移を検出して、コイン8が投入されたことを検知する。
なお、図16の放出コイン検出回路56の回路図は、図18に示した投入コイン検出回路55の回路図と同様であり、説明を省略する。
図19は、図16のモータ回路58の回路図である。図19に示すように、モータ回路58は、直流モータ401、抵抗素子570,571、コンデンサ572〜574、ダイオード575、及び、トランジスタ576、を含む。
トランジスタ576のコレクタはノードN3に接続され、ベースは、ノードN2に接続され、エミッタは、抵抗素子571を介して、接地GNDに接続される。ノードN3には、ダイオード575のアノード、コンデンサ574の一方端、及び、直流モータ401のマイナス端子、が接続される。ノードN4には、バッテリ577のプラス端子、ダイオード575のカソード、コンデンサ574の他方端、及び、直流モータ401のプラス端子、が接続される。抵抗素子570及びコンデンサ572は、ノードN4とノードN3との間に直列に接続される。コンデンサ573は、ノードN4と接地GNDとの間に接続される。直流モータ401のケースは接地GNDに接続される。
トランジスタ576のベースに接続されるノードN2は、入出力制御回路209に接続される。従って、CPU201は、入出力制御回路209を介して、Hレベルの制御信号cをノードN2に与えると、トランジスタ576がオンして、ノードN3に、接地電圧が供給される。これにより、直流モータ401が駆動する。
図20は、図16のハンドル回転検出回路57の回路図である。なお、図20において、図4と同様の部分については、同一の参照符号を付している。図20に示すように、ハンドル回転検出回路57は、フォトダイオード86、フォトトランジスタユニット87、及び、抵抗素子580〜582、を含む。フォトトランジスタユニット87は、フォトトランジスタ583,584を含む。
フォトダイオード86のカソードは、接地GNDに接続され、アノードは、抵抗素子582の一方端に接続される。抵抗素子582の他方端は、電源VCCに接続される。一方、フォトトランジスタ583,584のコレクタは、電源VCCに接続される。フォトトランジスタ583のエミッタは、ノードN5に接続され、フォトトランジスタ584のエミッタは、ノードN6に接続される。抵抗素子580は、ノードN5と接地GNDとの間に接続される。抵抗素子581は、ノードN6と接地GNDとの間に接続される。ノードN5,N6は、入出力制御回路209に接続される。
フォトトランジスタ583が、ロータリエンコーダ77の円板85の回転に伴って、間欠的な光を受光すると、ノードN5からパルス信号Aが出力される。同様に、フォトトランジスタ584が、ロータリエンコーダ77の円板85の回転に伴って、間欠的な光を受光すると、ノードN6からパルス信号Bが出力される。この場合、フォトトランジスタ583とフォトトランジスタ584とは、一定間隔離して設けられているため、パルス信号Aとパルス信号Bとで位相がずれている。
ここで、ハンドル7の回転量、即ち、ロータリエンコーダ77の円板85の回転量、の検出について詳しく説明する。
図21(a)は、図1のハンドル7を時計回りに回転させたときの、フォトトランジスタ583,584が出力するパルス信号を示す図である。図21(b)は、図1のハンドル7を反時計回りに回転させたときの、フォトトランジスタ583,584が出力するパルス信号を示す図である。なお、図21(a)及び図21(b)においては、説明の便宜のため、ハンドル7が一定の角速度で回転した場合のパルス信号を示している。
図21(a)及び図21(b)に示すように、フォトトランジスタ583とフォトトランジスタ584との間隔に従って、フォトトランジスタ583が出力するパルス信号Aとフォトトランジスタ584が出力するパルス信号Bとの位相差は、それぞれ(90度)及び(−90度)になっている。そこで、ハンドル7を時計回りに回転させたときと、反時計回りに回転させたときとで、パルス信号A,Bの状態遷移の方向が異なる。この点を詳しく説明する。
図22は、フォトトランジスタ583,584が出力するパルス信号A,Bの状態遷移を示す図である。ハンドル7を時計回り回転させた場合は(図21(a)に対応)、図22に示すように、パルス信号A,Bの状態は、時計回りに遷移する。一方、ハンドル7を反時計回り回転させた場合は(図21(b)に対応)、図22に示すように、パルス信号A,Bの状態は、反時計回りに遷移する。
このような状態遷移を検知することで、ハンドル7の回転方向を求めることができる。つまり、パルス信号A,Bの状態が、時計回りに遷移する場合は、ハンドル7が時計回りに回転していることを意味し、パルス信号A,Bの状態が、反時計回りに遷移する場合は、ハンドル7が反時計回りに回転していることを意味する。この状態遷移の検出には、図17の入出力制御回路209に含まれるカウンタが利用される。
図23は、図17の入出力制御回路209のブロック図である。図23に示すように、入出力制御回路209は、カウンタ290及びエッジ検出回路293,294を含む。カウンタ290は、遷移検出回路291及びレジスタ292を含む。
遷移検出回路291は、ロータリエンコーダ77のフォトトランジスタ583,584から入力されるパルス信号A,Bの状態遷移を検知し、遷移回数をカウントする。そして、遷移検出回路291は、カウント値をレジスタ292に格納する。
ここで、遷移検出回路291は、図22に示す時計回りの状態遷移を検知した場合は(図21(a)に対応)、カウント値の符号を正とする。一方、遷移検出回路291は、図22に示す反時計回りの状態遷移を検知した場合は(図21(b)に対応)、カウント値の符号を負とする。
図21(a)の例では、パルス信号A,Bの状態遷移の方向は時計回りであるため、遷移検知回路291は、状態遷移を検知する度に、1、2、…、とカウントを行い、レジスタ292にカウント値を格納する。図21(b)の例では、パルス信号A,Bの状態遷移の方向は反時計回りであるため、遷移検知回路291は、状態遷移を検知する度に、−1、−2、…、とカウントを行い、レジスタ292にカウント値を格納する。
従って、CPU201は、レジスタ292に格納されたカウント値の符号を見ることで、状態遷移の方向が分かり、それにより、ハンドル7の回転方向を知ることができる。さらに、レジスタ292のカウント値は、ハンドル7の回転量を表す。カウント値の絶対値が大きければ、回転量が大きく、小さければ、回転量は小さい。
CPU201は、レジスタ292を参照することで、ハンドル7の回転方向情報及び回転量情報を取得する。
ここで、レジスタ292に格納されたカウント値Cが、「0」の場合は、ハンドル7が静止していると判断される。また、カウント値Cが、−C1<C<C1、の場合に、ハンドル7が静止していると判断するようにすることもできる。「C1」は自然数である。
さて、エッジ検出回路293は、コイン投入検出回路55からの信号aのダウンエッジを検出する。エッジ検出回路293は、ダウンエッジを検出したときに、CPU201に対して、投入コイン検知信号を出力する。CPU201は、この投入コイン検知信号をカウントして、コイン8の投入枚数情報を取得する。なお、コイン投入検出回路55からの信号aにダウンエッジが発生したということは、コイン8による遮光が発生したこと(コイン8が通過したこと)を意味する。
同様に、エッジ検出回路294は、コイン放出検出回路56からの信号bのダウンエッジを検出する。エッジ検出回路294は、ダウンエッジを検出したときに、CPU201に対して、放出コイン検知信号を出力する。CPU201は、この放出コイン検知信号がカウントして、コイン8の放出枚数情報を取得する。なお、コイン放出検出回路56からの信号bにダウンエッジが発生したということは、コイン8による遮光が発生したこと(コイン8が通過したこと)を意味する。
図24は、図17のCPU201の動作の説明図である。図24に示すように、CPU201は、ROM53に格納されたゲームプログラムを実行することで、コイン出現処理手段260、操作オブジェクト駆動処理手段261、自動オブジェクト駆動処理手段262、コイン運動処理手段263、画像表示制御手段264、グラフィックドライバ265、サウンドドライバ266、及び、コイン払い出し手段267、として機能する。
コイン出現処理手段260は、入出力制御回路209からコイン投入検知信号を受けたとき、即ち、コイン投入部9にコインが投入されたとき、コイン画像の出現位置を示す座標データ、及び、そのコイン画像データの格納位置データ、を内部メモリ207に格納する。そして、グラフィックドライバ265は、垂直ブランキング期間に、それらのデータをグラフィックプロセッサ202に与える。
グラフィックプロセッサ202は、与えられた格納位置データに基づいて、ROM53から、コイン画像データを読み出して、そのコイン画像データ及び与えられた座標データを基に画像信号を生成し、画像信号出力端子51に出力する。これにより、コイン画像が、テレビジョンモニタ100のスクリーン101に表示される。つまり、コイン8が投入されたことに同期して、スクリーン101にコイン画像が出現する。
操作オブジェクト駆動処理手段261は、入出力制御回路209から、ハンドル7の回転方向情報及び回転量情報を取得する。そして、操作オブジェクト駆動処理手段261は、それらの情報に応じた変位後の操作オブジェクトの座標データ、及び、変位後の操作オブジェクトの画像データの格納位置データ、を内部メモリ207に格納する。そして、グラフィックドライバ265は、垂直ブランキング期間に、それらのデータをグラフィックプロセッサ202に与える。
グラフィックプロセッサ202は、与えられた格納位置データに基づいて、ROM53から、変位後の操作オブジェクトの画像データを読み出して、その画像データ及び与えられた座標データを基に画像信号を生成し、画像信号出力端子51に出力する。これにより、変位後の操作オブジェクトが、テレビジョンモニタ100のスクリーン101に表示される。つまり、ハンドル7の運動に同期して、スクリーン101に表示された操作オブジェクトが変位する。
ここで、操作オブジェクトとは、ハンドル7の回転に同期して、変位するオブジェクトのことである。例えば、図10のシーソー画像300、図11の船の画像303、図12の押し出し体の画像305、及び、図13の大砲の画像309、等である。つまり、操作オブジェクトは、プレイヤが動きを制御できるオブジェクトである。
自動オブジェクト駆動処理手段262は、例えば、所定の初速度に基づいて、自動オブジェクトの座標を計算する。そして、グラフィックドライバ265は、垂直ブランキング期間に、その自動オブジェクトの格納位置データ、及び、自動オブジェクト駆動処理手段262が計算した座標データを、グラフィックプロセッサ202に与える。
グラフィックプロセッサ202は、与えられた格納位置データに基づいて、自動オブジェクトの画像データを、ROM53から読み出して、その画像データ及び与えられた座標データを基に画像信号を生成し、画像信号出力端子51に出力する。これにより、移動した自動オブジェクトが、テレビジョンモニタ100のスクリーン101に表示される。このようにして、自動オブジェクトは、スクリーン101を移動する。
ここで、自動オブジェクトとは、ハンドル7の操作に関係なく、移動するオブジェクトのことである。例えば、図10の船の画像302、図11の魚の画像304、図13の的の画像310、及び、図14のコイン投入体の画像312、等である。つまり、自動オブジェトとは、プレイヤが運動を制御できないオブジェクトである。
コイン運動処理手段263は、コイン画像301の運動を制御する。例えば、コイン運動処理手段263は、コイン画像301が出現してから、操作オブジェクト又は自動オブジェクトなどの他のオブジェクトに接触するまでの落下処理を行う。
この場合は、コイン運動処理手段263は、例えば、所定の初速度に基づいて、座標を計算する。そして、グラフィックドライバ265は、垂直ブランキング期間に、コイン画像301の格納位置データ、及び、コイン運動処理手段263が計算した座標データを、グラフィックプロセッサ202に与える。
グラフィックプロセッサ202は、与えられた格納位置データに基づいて、ROM53から、コイン画像の画像データを読み出して、その画像データ及び与えられた座標データを基に画像信号を生成し、画像信号出力端子51に出力する。これにより、下方に移動したコイン画像301が、テレビジョンモニタ100のスクリーン101に表示される。
また、例えば、コイン運動処理手段263は、コイン画像301が操作オブジェクト又は自動オブジェクトなどの他のオブジェクトに接触した後の移動処理を行う。
この場合も落下処理と同様に、コイン運動処理手段263は、移動後の座標を求める。そして、グラフィックドライバ265は、垂直ブランキング期間に、コイン画像301の格納位置データ、及び、コイン運動処理手段263が計算した座標データを、グラフィックプロセッサ202に与える。
グラフィックプロセッサ202は、与えられた格納位置データに基づいて、ROM53から、コイン画像の画像データを読み出して、その画像データ及び与えられた座標データを基に画像信号を生成し、画像信号出力端子51に出力する。これにより、移動したコイン画像301が、テレビジョンモニタ100のスクリーン101に表示される。
なお、グラフィックドライバ265は、垂直ブランキング期間に、自動オブジェクト/コイン画像の識別データ、及び、自動オブジェクト駆動処理手段262/コイン運動処理手段263が計算した座標データを、グラフィックプロセッサ202に与えることもできる。つまり、これらの画像を既に表示していて、グラフィックプロセッサ202は、既にこれらの画像データの格納位置データを保持している場合は、格納位置データの代わりに、識別データを、グラフィックプロセッサ202に与える。従って、この場合は、グラフィックプロセッサ202は、与えられた識別データが示す自動オブジェクト/コイン画像の画像データを、ROM53から読み出して、その画像データ及び与えられた座標データを基に画像信号を生成し、画像信号出力端子51に出力する。
さて、画像表示制御手段264は、操作オブジェクト、自動オブジェクト、及び、コイン画像、以外の画像の表示制御を行う。例えば、背景画像の表示を制御する。また、例えば、図15のドラム画像315の回転処理を行う。
サウンドドライバ266は、楽音、音声、あるいは効果音、等の波形データの格納位置データを、サウンドプロセッサ203に与える。サウンドプロセッサ203は、与えられた格納位置データを基に、ROM53から波形データを読み出して、必要な処理を施して、楽音信号を生成し、楽音信号出力端子52に与える。これにより、テレビジョンモニタ100のスピーカ(図示せず)から、その楽音信号に応じた音が発生される。
コイン払い出し手段267は、各ゲーム内容に応じた払い出し条件が満足された場合に、制御信号cにより直流モータ401を駆動して、ホッパー35の回転円板32を回転させる。これにより、コイン8が、コイン落下口34、案内部材36,37を介して、コイン放出口13から放出される。
この場合、コイン払い出し手段267は、入出力制御回路209からのコイン放出検知信号をカウントして、放出されたコイン8の枚数をカウントする。そして、コイン払い出し手段267は、ゲームプログラムで指示された枚数のコイン8の放出が完了したら、直流モータ401を停止させる。
さて、次に、フローチャートを用いて、ゲーム装置1による処理の流れの一例を説明する。
図25は、ゲーム装置1の全体の処理の流れをフローチャートである。図25に示すように、ステップS1にて、CPU201は、システムの初期設定を実行する。
ステップS2にて、CPU201は、ゲーム選択画面(図9参照)を、テレビジョンモニタ100のスクリーン101に表示する。プレイヤが、決定ボタン5を押下して、ゲームの選択を確定すると、ステップS3に進む。
ステップS3にて、CPU201は、プレイヤが選択したゲームのゲームプログラムを実行する(ゲーム処理)。
ステップS4では、CPU201は、ビデオ同期の割込み待ちかどうかを判断する。本実施の形態では、CPU201は、テレビジョンモニタ100の表示画面を更新するため画像データを、垂直ブランキング期間の開始後にグラフィックプロセッサ202に与える。従って、表示画面を更新するための演算処理が完了したら、ビデオ同期割込みがあるまで処理を進めないようにしている。
ステップS4で「YES」であれば、即ち、ビデオ同期の割込み待ちであれば(ビデオ同期信号による割り込みがなければ)、同じステップS4に戻る。一方、ステップS4で「NO」であれば、即ち、ビデオ同期の割込み待ちでなければ(ビデオ同期信号による割り込みがあれば)、ステップS3に進む。
図26は、図25のステップS3のゲーム処理の流れを示すフローチャートである。このフローチャートは、例えば、図10〜図13に示されるような、プレイヤが、ハンドル7を操作して、操作オブジェクトを制御しながら、ゲームが進行するゲーム処理に適用される。ただし、図12のゲームでは、ステップS32をスキップする。また、図14のゲームに対しては、ステップS33以外の処理が実行される。
さて、図26に示すように、ステップS31にて、コイン出現処理手段260は、コイン8が投入されたことに同期して、スクリーン101に、コイン画像301を出現させる。
ステップS32にて、自動オブジェクト駆動処理手段262は、自動オブジェクトの移動処理を行う。
ステップS33にて、操作オブジェクト駆動処理手段261は、ハンドル7の回転に応じて、操作オブジェクトを変位させる。
ステップS34にて、コイン運動処理手段263は、コイン画像301の移動処理を行う。
ステップS35にて、コイン払い出し手段267は、コインの払い出し条件が満足されたときに、直流モータ401を駆動して、コイン放出口13からコイン8を払いだす。
CPU201は、ゲーム終了でなければ、図25のメインルーチンに戻り、ゲーム終了であれば、ゲームを終了する(ステップS36)。
図27は、図26のステップS31のコイン出現処理の流れを示すフローチャートである。図27に示すように、コイン出現処理手段260は、コイン8が投入された場合、つまり、入出力制御回路209から投入コイン検知信号が入力された場合は、ステップS312へ進み、投入されていない場合は、図26のステップS32に処理を進める(ステップS311)。
ステップS312にて、コイン出現処理手段260は、スクリーン101にコイン画像301を出現させる処理を行う。
図28は、図26のステップS33の操作オブジェクト駆動処理の流れを示すフローチャートである。図28に示すように、ステップS331にて、操作オブジェクト駆動処理手段261は、図23のレジスタ292を参照して、ハンドル7が回転したかどうかをチェックする。
操作オブジェクト駆動処理手段261は、ハンドル7が回転した場合は、ステップS333に進み、回転していない場合は、図26のステップS34に処理を進める(ステップS332)。ここで、操作オブジェクト駆動処理手段261は、例えば、レジスタ292のカウント値Cが、−2<C<2の場合は、ハンドル7が静止していると判断する。
ステップS333にて、操作オブジェクト駆動処理手段261は、ハンドル7の回転方向情報及び回転量情報を基に、操作オブジェクトの駆動処理を行う。そして、処理を図26のステップS34に進める。
図29は、図26のステップS34のコイン運動処理の流れを示すフローチャートである。図29に示すように、ステップS341にて、コイン運動処理手段263は、コイン画像301が、操作オブジェクト又は自動オブジェクトなどの他のオブジェクトに接触したかどうかをチェックする。
コイン運動処理手段263は、コイン画像301が、操作オブジェクト又は自動オブジェクトなどの他のオブジェクトに接触していない場合は、ステップS343に進み、接触した場合は、ステップS344に進む(ステップS342)。
ステップS343にて、コイン運動処理手段263は、コイン画像301の落下処理を行い、処理を図26のステップS35に進める。
一方、ステップS344にて、コイン運動処理手段263は、コイン画像301の移動処理を行い、処理を図26のステップS35に進める。
図30は、図26のステップS35のコイン払い出し処理の流れを示すフローチャートである。図30に示すように、ステップS351にて、コイン払い出し手段267は、コインの払い出し条件を満足したかどうかをチェックする。
払い出し条件を満足していなければ、図26のステップS36に進み、払い出し条件を満足していれば、ステップS353に進む(ステップS352)。
ステップS353にて、コイン払い出し手段267は、直流モータ401を駆動して、コイン8を放出する。
ステップS354にて、コイン払い出し手段267は、放出コイン検出信号をカウントする。
そのカウント値(放出されたコインの枚数)が規定払い出し枚数Mに等しくなった場合は、ステップS356に進み、そうでない場合は、図26のステップS36に進む(ステップS355)。
ステップS356にて、コイン払い出し手段267は、直流モータ401を停止させて、図26のステップS36に進む。
さて、以上のように、本発明の実施の形態によれば、プレイヤからのコイン8の入力に同期して、コイン8を模したコイン画像301がスクリーン101に表示される。そして、そのコイン画像301は、スクリーン101上を運動する。そして、さらに、所定の条件を満足すれば、コイン8が払い出される。このように、実在のコイン8の投入→実在のコイン8を模したコイン画像301の運動→実在のコイン8の払い出し、というように、実在の世界とゲームの世界とが密接に関連しあって、ゲームが実行される。このため、プレイヤは、よりゲームに没頭することができ、よりゲームを楽しむことができる。
ここで、一般的に、実在のコインの投入→実在のコインの運動→実在のコインの払い出し、というように、全ての過程を実在の世界で実行すると、ゲーム装置が大掛かりなものとなり、それ故、高価になったり、装置自体が大きくなったりして、個人が簡単に購入できず、簡易に家庭内でゲームを楽しむことができない。
この点、本発明の実施の形態によれば、画像ではあるが、コイン8の運動を取り入れたゲームを簡易に楽しむことができる。
また、本実施の形態によれば、プレイヤは、時計回り及び反時計回りに回転可能なハンドル7により、操作オブジェクト画像を操作できるため、プレイヤが決定ボタンだけを操作できる場合と比較して、より多くの種類のゲームプログラムを実装可能となる。その結果、プレイヤが、より一層楽しむことができる、円板体を使用するゲーム装置を提供できる。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
(1)上記では、円板体の例として、コインを例に挙げたが、これに限定されない。例えば、メダル等、でもよい。また、円板体の材質も問わない。例えば、金属、プラスチック、等でもよい。
(2)上記では、6種類のゲームを例に挙げたが、これらに限定されない。また、コインの払い出し条件は、ゲーム製作者が任意に設定できる。
(3)図16の高速プロセッサ50として、任意の種類のプロセッサを使用できるが、本件出願人が既に特許出願している高速プロセッサ(商品名:XaviX)を用いることが好ましい。この高速プロセッサは、例えば、特開平10−307790号公報およびこれに対応するアメリカ特許第6,070,205号に詳細に開示されている。