(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、図面等を参照して、本発明の一実施形態について説明する。
図1は、本実施形態におけるスロットマシン10(遊技機)の制御の概略を示すブロック図である。スロットマシン10は、メイン制御基板50とサブ制御基板80とを備える。
メイン制御基板50は、入力ポート51、出力ポート52、メモリ53、メインCPU54等を備える(
図1で図示したもののみを備える意味ではない)。
メイン制御基板50と、
図1で図示した操作スイッチ等の遊技進行用の周辺機器とは、入力ポート51又は出力ポート52を介して電気的に接続されている。入力ポート51は、操作スイッチ等の信号が入力される接続部であり、出力ポート52は、モータ32等の周辺機器に対して信号を送信する接続部である。
【0016】
なお、
図1において、入力用の周辺機器は、その周辺機器からの信号がメイン制御基板50又はサブ制御基板80に向かう矢印で表示しており、出力用の周辺機器は、メイン制御基板50又はサブ制御基板80からその周辺機器に向かう矢印で示している。
【0017】
メモリ53は、遊技の進行等に必要なプログラム等を記憶しておくROM、及びメインCPU54が各種の制御を行うときに取り込んだデータ等を一時的に記憶しておくRAMからなる。
メインCPU54は、メイン制御基板50上に設けられたCPUを指し、遊技の進行に必要なプログラムの実行、演算等を行い、具体的には、役の抽選、リール31の駆動制御、及び入賞時の払出し等を実行する。
【0018】
また、サブ制御基板80は、遊技中及び遊技待機中における演出(情報)の選択・出力等を制御するものである。サブ制御基板80と、演出用の周辺機器とは、入力ポート81又は出力ポート82を介して電気的に接続されている。また、メイン制御基板50と同様に、サブ制御基板80は、メモリ83及びサブCPU84を備える。
【0019】
メモリ83は、演出用のデータ等(演出パターン等)を記憶しておくROM、サブCPU84が各種の演出を出力するときに取り込んだデータ等を一時的に記憶しておくRAMからなる。
サブCPU84は、所定のプログラムに従って、演出の決定及び実行、ATに関する抽選等を実行する。
【0020】
また、サブ制御基板80は、メイン制御基板50の下位に属する制御基板である。そして、メイン制御基板50とサブ制御基板80とは電気的に接続されており、メイン制御基板50の出力ポート52から、サブ制御基板80の入力ポート81に、一方向で、演出の出力に必要な信号や情報(コマンド)を送信する。
【0021】
メイン制御基板50からサブ制御基板80に送信される情報としては、たとえば、メダルが投入された旨の情報、スタートスイッチ41が操作された旨の情報、役の抽選結果(当選役)の情報、リール31の回転が開始された旨の情報、ストップスイッチ42が操作された旨の情報、リール31が停止した旨の情報、各リール31の停止位置(停止図柄)の情報、入賞役の情報、メダルの払出しの情報、遊技状態の情報、フリーズに関する情報等が挙げられる。
【0022】
図1において、メダル投入口43は、遊技者が実際にメダルを投入する部分であり、スロットマシン10の筐体前面側に設けられている。メダル投入口43からメダルが投入されると、最初に、通路センサ43aにより検知されるように構成されている。さらに、通路センサ43aの下流側には、ブロッカ45が設けられている。ブロッカ45は、メダルの投入を許可/不許可にするためのものであり、メダルの投入が不許可状態のときは、メダル投入口43から投入されたメダルを払出し口から返却するメダル通路を形成する。これに対し、メダルの投入が許可状態のときは、メダル投入口43から投入されたメダルをスロットマシン10内部のホッパー(メダル溜め)に案内するメダル通路を形成する。
【0023】
ブロッカ45のさらに下流側には、投入センサ44a及び44b(光学センサ)が設けられている。したがって、メダル投入口43から投入されたメダルは、通路センサ43aによって検知された後、さらに、投入センサ44a(上流側)及び44b(下流側)により検知されるように構成されている。なお、
図1に示すように、後述する説明においては、上流側の投入センサ44aを投入センサ1、下流側の投入センサ44bを投入センサ2と称する場合もある。
【0024】
また、
図1に示すように、メイン制御基板50には、遊技者が操作する操作スイッチとして、精算スイッチ46、1ベットスイッチ40a、3ベットスイッチ40b、スタートスイッチ41、(左、中、右)ストップスイッチ42が電気的に接続されている。
【0025】
精算スイッチ46は、スロットマシン10内部に電気的に貯留されたメダルを払い戻す(ペイアウトする)ときに遊技者が操作するスイッチである。
ベットスイッチ40は、貯留されたメダルを当該遊技のためにベットするときに遊技者が操作するスイッチであり、本実施形態では、1枚投入用の1ベットスイッチ40aと、3枚投入用の3ベットスイッチ40bとを備える。なお、これに限らず、2枚投入用のベットスイッチを設けてもよい。また、1枚、2枚、3枚投入用のベットスイッチのうち、スロットマシン10の仕様に応じて、2つ又は3つ設けることも可能である。
なお、「ベットスイッチ40」というときは、1ベットスイッチ40a及び/又は3ベットスイッチ40bを指すものとする。
【0026】
また、スタートスイッチ41は、(左、中、右のすべての)リール31を始動させるときに遊技者が操作するスイッチである。
さらにまた、ストップスイッチ42は、3つ(左、中、右)のリール31に対応して3つ設けられ、対応するリール31を停止させるときに遊技者が操作するスイッチである。
【0027】
図1に示すように、メイン制御基板50には、貯留枚数表示装置47bが電気的に接続されている。貯留枚数表示装置47bは、スロットマシン10内部に貯留されているメダルをセグメント表示するものであり、本実施形態では、「00」〜「50」の間の数字を表示する。
【0028】
たとえば、メダルが全く投入されていない状態で、1枚のメダルが投入されると、当該遊技のためにその1枚のメダルがベットされる。ベットされたメダルは、ベット枚数表示装置47aによって表示される。さらに2枚を追加投入すると、当該遊技のために3枚のメダルがベットされる。したがって、投入されたメダルが3枚までのときは、そのメダルはベットされ、貯留されない。さらにメダルが投入され続けると、スロットマシン10内部にメダルが貯留されるとともに、その貯留枚数が貯留枚数表示装置47bによって表示される。貯留されたメダル枚数は、メモリ53の所定の格納領域に記憶される。
【0029】
上述のように、本実施形態では、最大で50枚までのメダルを貯留可能となっている。したがって、貯留枚数が50枚となったとき(貯留枚数表示装置47bに「50」と表示されたとき)は、それ以上、メダルは貯留されない。この状態で、仮に、メダル投入口43からメダルが投入されると、ブロッカ45により、投入されたメダルは返却口から返却される。
【0030】
また、たとえば役(リプレイを除く)が入賞してその役に対応するメダルが払い出されるときは、払出し口から払い出されることよりも優先して、スロットマシン10内部にメダルが貯留される。たとえば、役の入賞時、その役の入賞に対応する払出し枚数が8枚であり、役の入賞前の貯留枚数が「10」であるときは、その役の入賞により、貯留枚数が「10」から「18」に変更されるとともに、貯留枚数表示装置47bによる表示数も「10」から「18」に更新される。
【0031】
さらにまた、役の入賞時に、貯留枚数が「50」を超えるときは、「50」を超えた分については払出し口から払い出さされる。たとえば、役の入賞前に貯留枚数が「47」であり、役の入賞によって8枚のメダルが払い出されるとき、3枚は貯留されて貯留枚数が「50」となり、「50」を超える5枚については払出し口から払い出される。
【0032】
さらに、リプレイの入賞時は、メダルの払出し(貯留)は行われず、当該遊技で投入した枚数のメダルが再遊技のために自動投入される。たとえば、当該遊技を1ベット(1枚)で行い、リプレイが入賞したときは、1枚のメダルが自動投入される。同様に、当該遊技を3ベット(3枚)で行い、リプレイが入賞したときは、3枚のメダルが自動投入される。そして、リプレイの入賞に基づくメダルの投入は、再遊技を行うためのメダルの投入であるので、その後に精算(返却)操作を行っても、当該メダルを精算することはできない。
【0033】
なお、「遊技機の認定及び型式の検定等に関する規則」では、リプレイに対応する図柄の組合せが有効ラインに停止したときは、再遊技(リプレイ)に係る条件装置の作動であって「入賞」ではないと解釈されている。しかし、本願(本明細書等)では、再遊技についても役の1つとして扱い、リプレイに対応する図柄の組合せが有効ラインに停止したことを「リプレイの入賞」と称する。
【0034】
また、本実施形態では、入賞役が「ベル」等、すなわち遊技者には小役に見せるようにしたリプレイ(ベルリプレイ)を有する。
本実施形態では、左、中、右リール31のそれぞれ上下に連続する3図柄を含む図柄が表示窓から見えるように形成し、上下に連続する図柄をそれぞれ上側から上段、中段、下段と称する。
【0035】
そして、左、中、右リール31において、それぞれ上段、中段、下段のいずれか1図柄を通過するラインを「図柄組合せライン」と称する。このように規定したとき、図柄組合せラインは、3の3乗=27本となるが、その27本の図柄組合せラインのうち、少なくとも1本を有効ラインとし、残りを無効ラインに設定する。ここで、「有効ライン」とは、役に対応する図柄の組合せが停止したときに、その役に応じた利益の付与(メダルの払出し等)を行うラインである。これに対し、「無効ライン」とは、いずれかの役に対応する図柄の組合せがそのラインに停止した場合であっても、その役に応じた利益の付与(メダルの払出し等)を行わないラインである。すなわち、無効ラインは、そもそも図柄の組合せの成立対象となっていないラインである。
【0036】
有効ライン及び無効ラインは、メダルの投入枚数や遊技状態等に応じて設定されるが、本実施形態では、メダルのベット枚数にかかわらず、「中段」−「中段」−「中段」(中段ライン)の1本を有効ラインに設定し、他のラインは無効ラインに設定している。そして、その1本の有効ラインに、役に対応する図柄の組合せが停止したとき、その役の入賞とし、入賞した役に対応するメダル枚数を払い出す。
【0037】
なお、本実施形態では、ベット可能なメダル枚数(そのベット枚数で遊技可能な枚数)は、2枚又は3枚に設定されている(ベット数1枚では遊技を行うことができないように設定されている)が、これに限らず、ベット数1枚でも遊技可能としてもよい。さらに、ベット数に応じて、有効ライン数が増減するように設定することも可能である。
【0038】
ベルリプレイの当選時には、中段ライン(有効ライン)には、リプレイに対応する図柄の組合せであって、バラケ目、たとえば「リプレイ」−「ベル」−「チェリー」のような図柄の組合せを停止させるとともに、「上段」−「中段」−「下段」のライン(無効ライン)に、「ベル」−「ベル」−「ベル」(「ベル」揃い)を停止させる。あるいは、中段ラインには、「ベル」を含まないリプレイの図柄の組合せを停止させるとともに、「上段」−「上段」−「上段」(無効ライン)に「ベル」揃いを停止させる。
そして、そのリプレイの入賞時には、有効ライン上の図柄ではなく、「ベル」の図柄を点滅する等して、「ベル」が入賞したかのような演出を出力する。
【0039】
さらに、ベルリプレイの入賞時に、直ちにメダルの自動投入を行うと、リプレイの入賞に見えてしまうため、たとえばベルリプレイの入賞と同時にフリーズを実行する。
ここで「フリーズ」とは、遊技の進行を所定期間一時停止状態にして遅延させることであり、たとえば、メダルの受付け、ベットスイッチ40の操作の受付け、スタートスイッチ41の操作の受付け、又は、リール31の停止操作の受付けに関する機能を一時停止状態にすることである。
【0040】
本実施形態では、ベルリプレイの入賞と同時にフリーズを開始するとともに、その経過時間を計測する。そして、所定時間(たとえば20秒)を経過する前にベットスイッチ40が操作されたときは、そのベットスイッチ42の操作を契機としてフリーズを解除する。メインCPU54は、フリーズを解除すると、リプレイの入賞に基づくメダルの自動投入を行うように制御する。
【0041】
よって、3枚のメダルをベットして遊技を行い、リプレイが入賞したとき、その入賞時から20秒を経過する前に遊技者がベットスイッチ40(3ベットスイッチ40b)を操作したときは、3枚のメダルが自動投入される。これにより、遊技者に対し、3ベットスイッチ40bの操作により3枚のメダルが投入された印象を与えることができるので、ベルリプレイを、擬似的に小役に見せることができる。
【0042】
また、フリーズの解除は、ベットスイッチ40の操作時に限らず、遊技者によるメダル投入口43からのメダル投入時に行うことも可能である。
ベルリプレイの入賞時に、遊技者は、ベルリプレイを小役であると認識していれば、3枚のメダルがクレジットに加算されると判断する。したがって、その3枚のクレジットを用いて次遊技を開始することができる。したがって、3ベットスイッチ40bの操作により次遊技を開始できると考える。
【0043】
しかし、小役入賞時に、さらにメダルを投入して遊技を行うことも、当然に可能である。ここで、ベルリプレイの入賞時に、遊技者がメダルを投入したとき、そのメダルを受け付けずに、払出し口から返却してしまうと、ベルリプレイを小役のように見せることができない。そこで、ベルリプレイの入賞時に、メダル投入口43からのメダルの投入を検出したときに、フリーズを解除するとともに、そのメダルの受付けを行うように制御する。
【0044】
具体的には、通路センサ43aによりメダルが検知された時にフリーズを解除するとともに、ベルリプレイの入賞に基づくメダルの自動投入を行う。さらに、投入されたメダルについては、貯留処理を行う。なお、通路センサ43aに限らず、投入センサ44によりメダルが検知されたときにフリーズを解除してもよい。
【0045】
メイン制御基板50の出力ポート52には、図柄表示装置30のモータ32等が電気的に接続されている。
図柄表示装置30は、図柄を表示する(本実施形態では3つの)リール31と、各リール31をそれぞれ駆動するモータ32と、リール31の位置を検出するためのインデックスセンサ33を含む。
【0046】
モータ32は、リール31を回転させるためのものであり、各リール31の回転中心部に連結され、後述するリール制御手段62によって制御される。ここで、リール31は、左リール31、中リール31、右リール31からなり、左リール31を停止させるときに操作するストップスイッチ42が左ストップスイッチ42であり、中リール31を停止させるときに操作するストップスイッチ42が中ストップスイッチ42であり、右リール31を停止させるときに操作するストップスイッチ42が右ストップスイッチ42である。
【0047】
リール31は、リング状のものであって、その外周面には複数種類の図柄(役に対応する図柄の組合せを構成している図柄)を印刷したリールテープを貼付したものである。また、図柄配列としては、たとえば各リール31ごとに、21個の図柄表示領域が等間隔で配置されているとともに(図柄コマ数が21個)、各図柄表示領域にそれぞれ所定の図柄が表示されている。なお、図柄コマ数は、21個以外に、20個の場合が挙げられる。
【0048】
また、各リール31には、1個(2個以上であってもよい)のインデックスが設けられている。インデックスは、リール31の例えば周側面に凸状に設けられており、リール31が所定位置を通過したかや、1回転したか否か等を検出するときに用いられる。そして、各インデックスを検知するための(左、中、右)インデックスセンサ33が設けられている。各インデックスセンサ33は、メイン制御基板50の入力ポート51に電気的に接続されている。そして、インデックスがインデックスセンサ33を検知する(切る)と、その入力信号がメイン制御基板50に入力され、そのリール31が所定位置を通過したことが検知される。
【0049】
また、インデックスセンサ33がリール31のインデックスを検知した瞬間の基準位置上の図柄が予めメモリ53に記憶されている。これにより、インデックスを検知した瞬間の基準位置上の図柄を検知することができる。
【0050】
また、メイン制御基板50には、メダル払出し装置35が電気的に接続されている。メダル払出し装置35は、メダルの貯留部となるホッパーのメダルを払出し口から払い出すときに駆動するホッパーモータ36と、ホッパーモータ36から払い出されたメダルを検出するための払出しセンサ37a及び37bと、ホッパーの満杯を検出するための満杯センサ38とを備える。
【0051】
メダル投入口43から投入され、受け付けられたメダルは、所定の通路を通してホッパー内に収容されるように形成されている。
払出しセンサ37a及び37bは、投入センサ44a及び44bと同様に、上流側に払出しセンサ37aが設けられ、下流側に払出しセンサ37bが設けられている。
なお、
図1に示すように、後述する説明においては、上流側の払出しセンサ37aを払出しセンサ1、下流側の払出しセンサ37bを払出しセンサ2と称する場合もある。
【0052】
払出しセンサ37aと37bとは、所定距離を隔てて配置され、メダルが払出しセンサ37aにより検知されてから所定時間を経過した後に払出しセンサ37bにより検知されるように構成されている。そして、払出しセンサ37a及び37bがそれぞれオン/オフとなるタイミングに基づいて、メダルが正しく払い出されたか否かを判断する。
【0053】
たとえば、ホッパーモータ36が駆動しているにもかかわらず、払出しセンサ37a及び37bの信号がいずれもオフであるときは、メダルが払い出されていないと判断し、ホッパーエラー(メダルなし)と検知される。
一方、払出しセンサ37a及び37bの信号がオンのままとなったときは、メダル詰まりが生じたと検知する。
【0054】
満杯センサ38は、ホッパー自体、あるいはホッパーから溢れたメダルを収容するサブタンクの満杯を検知するセンサであり、たとえばホッパー又はサブタンクのメダルが満杯となったときにメダルが接触することで通電する回路から構成される。
【0055】
さらに、
図1において、サブ制御基板80の出力ポート82には、ランプ21、スピーカ22、及び画像表示装置23等の演出用の周辺機器が電気的に接続されている。
ランプ21は、スロットマシン10の演出用のランプ(LED等)であり、所定の条件を満たしたときに、それぞれ所定のパターンで点灯する。なお、ランプ21には、各リール31の内周側に配置され、リール31に表示された図柄(表示窓11から見える上下に連続する3図柄)を背後から照らすためのバックランプ(図示せず)や、スロットマシン10の筐体前面に配置され、役の入賞時等に点滅する上部ランプ及びサイドランプ(図示せず)等が含まれる。
【0056】
また、スピーカ22は、遊技中に各種の演出を行うべく、所定の条件を満たしたときに、所定のサウンドを出力するものである。
さらにまた、画像表示装置23は、液晶ディスプレイ、有機ELディスプレイ、ドットディスプレイ等からなるものであり、遊技中に各種の演出画像(フリーズ中の演出画像、AT中の押し順、役の抽選結果に対応する演出等)や、遊技情報等(AT中の遊技回数や獲得枚数等)を表示するものである。
【0057】
遊技の開始時には、遊技者は、ベットスイッチ40を操作して予め貯留されたメダルを投入(ベット)するか、又はメダル投入口43からメダルを投入する。遊技開始前にメダルが貯留されているときは、その貯留枚数の範囲内で、1ベットスイッチ40aを操作すれば1枚のメダルが投入され、3ベットスイッチ40bが操作されれば3枚のメダルが投入される。また、貯留の有無にかかわらず、メダル投入口43から1枚のメダルが投入されると1ベットされ、3枚のメダルが投入されれば3ベットされる。ベットが行われたときは、その信号がメイン制御基板50に入力される。さらに、ベットが行われた状態でスタートスイッチ41が操作されると、その信号がメイン制御基板50に送信される。
【0058】
メイン制御手段50(具体的には、後述するリール制御手段62)は、スタートスイッチ41の操作信号を受信すると、すべてのモータ32を駆動制御して、すべてのリール31を回転させるように制御する(ただし、フリーズの実行時には回転させない場合もある)。このようにしてリール31がモータ32によって回転されることで、リール31上の図柄は、所定の速度で表示窓内で上下方向(図柄が上段から下段に移動する方向)に移動表示される。
【0059】
また、メイン制御基板50の役抽選手段61は、スタートスイッチ41が操作された信号を検知したときは、役の抽選を行う。スタートスイッチ41が操作されたときに乱数値を抽出し、その乱数値がどの当選役に該当するかを抽選テーブルを照合することにより、当該遊技での当選役を決定する。
【0060】
そして、遊技者は、ストップスイッチ42の操作受付けが有効となっているときにストップスイッチ42を押すことで、そのストップスイッチ42に対応するリール31(例えば、左ストップスイッチ42に対応する左リール31)の回転を停止させる。ストップスイッチ42が操作されると、その信号がメイン制御基板50に入力される。
【0061】
メイン制御手段50(具体的にはリール制御手段62)は、この信号を受信すると、役抽選手段61での役抽選結果と、ストップスイッチ42が操作された瞬間のリール31の位置とから、そのストップスイッチ42に対応するモータ32を駆動制御し、そのモータ32に係るリール31の停止制御を行う。
そして、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したとき(すなわち、その役の入賞時)は、入賞した役に対応するメダルの払出し等が行われる。
【0062】
次に、入賞判定手段63は、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したか否かを判断する。入賞判定手段63は、たとえばインデックスセンサ33がインデックスを検知してからのモータ32のステップ数を検知することにより、有効ライン上の図柄を判断する。ただし、入賞判定手段63は、ストップスイッチ42が操作され、リール31の停止位置が決定された時に、そのリール31が停止したか否かにかかわらず、停止図柄を判断することが可能である。
【0063】
払出し手段64は、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したと判断され、その役の入賞となったときに、その入賞役に応じて所定枚数のメダルを遊技者に対して払い出すか、又は貯留枚数の加算等の処理を行う。メダルを実際に払い出すときは、ホッパーモータ36を駆動制御して、所定枚数のメダルを払い出す。メダルの払出し時には、払い出されたメダルを払出しセンサ37により検知し、正しく払い出されたか否かをチェックする。
【0064】
また、サブ制御基板80は、上述したランプ21、スピーカ22、及び画像表示装置23からの演出の出力を制御する。
サブ制御基板80は、遊技ごとに、遊技の開始時に、役抽選手段61による役の抽選結果(メイン制御基板50側から送信された役抽選結果の情報)に基づいて、ソフトウェア乱数を用いた抽選によって、演出を選択する。
【0065】
具体的には、遊技の進行に伴って、どのようなタイミングで(スタートスイッチ41の操作時や各ストップスイッチ42の操作時等)、どのような演出を出力するか(ランプ21をどのように点灯、点滅又は消灯させるか、スピーカ22からどのようなサウンドを出力するか、及び画像表示装置23にどのような画像を表示させるか等)を選択する。そして、この選択に従って、演出を出力する。
したがって、これらのランプ21、スピーカ22、及び画像表示装置23からの演出の出力は、サブ制御基板80側で制御されるものであり、メイン制御基板50側で制御されるものではない。
【0066】
図2は、メイン制御基板50の入力ポート51及び出力ポート52と、各周辺機器の信号の入出力との関係を示す図である。
図2に示すように、入力ポート51として、入力ポート51a、51b、51c、・・・を備え、出力ポート52として、出力ポート52a、52b、52c、・・・を備える。本実施形態の入力ポート51及び出力ポート52は、D0〜D7の8ビットが入力又は出力可能な1バイトのポートである。
【0067】
図2において、「正」、「負」とは、入力又は出力される信号を意味し、たとえば入力ポート51aのD0ビットにおける精算スイッチ信号では、操作されていないときにはD0ビットに「正(high)」の信号が入力され、操作されたときはD0ビットに「負(low )」の信号が入力される。一方、たとえば3ベットスイッチ信号では、操作されていないときにはD2ビットに「負(low )」の信号が入力され、操作されたときはD2ビットに「正(high)」の信号が入力される。
【0068】
また、
図2中、信号の入力又は出力を図示していないポート(たとえば、入力ポート51aのD4)は、未使用であるか、又は本実施形態において説明を省略する信号の入出力ポートを意味する(信号の入出力がないポートは、すべて未使用という意味ではない)。
【0069】
さらにまた、入力ポート51aにおいて、精算スイッチ信号及び1ベットスイッチ信号は、そのスイッチの操作時にいずれも操作時に負の信号が入力されるが、3ベットスイッチ信号は、そのスイッチの操作時に正の信号が入力される。これは、本実施形態では、精算スイッチ46及び1ベットスイッチ40aと、3ベットスイッチ40bとで、異なるスイッチを用いているためである。
【0070】
たとえば、精算スイッチ46及び1ベットスイッチ40aは、押されること(あるいは押圧)に応じて接地/非接地を検出するボタンスイッチであり、押圧された場合に電流が流れる回路を備えるスイッチである。これに対し、3ベットスイッチ40bは、フォトセンサを内蔵したボタンスイッチであり、フォトセンサの受光素子が遮光片により発光素子側の光を遮光したときに電圧が変化するスイッチである。
このように、設計上の都合に応じて、同じベットスイッチ40であっても異なる構造のスイッチを採用している。なお、これに限らず、同一構造のスイッチを用いることも勿論可能である。
【0071】
図2に示すように、入力ポート51bのD0ビットには、電断信号(電断が発生したときに出力される信号)が入力される。また、D1〜D5ビットには、それぞれメダル払出し装置35の所定の信号が入力される。そして、割込み処理時ごとに、これらの信号に基づくデータが、後述する
図4のデータAとして記憶される。
さらに、出力ポート52bにおいては、D6ビットからは、ブロッカ45の信号が出力される。また、D7ビットからは、ホッパーモータ36を駆動するための信号が出力される。これらの信号の出力は、後述する
図4のデータCのそれぞれD6及びD7ビットの値に基づき行う。
【0072】
図3及び
図4は、本実施形態において、メモリ53に記憶されるデータの一部を示す図である。
まず、
図3において、入力ポート51aレベルデータとは、入力ポート51aに入力されているデータを示している。番地「7E00」とは、メモリ53内における入力ポート51aレベルデータの番地(アドレス)を示しており、入力ポート51aと同様に、D0ビット〜D7ビットからなる1バイトデータであり、各ビットの値は、「0」又は「1」である。このように、本実施形態では、1バイトで8個のスイッチのデータ(8ビットのデータ列)を記憶できるように構成されている。
【0073】
図2で示したように、入力ポート51aのD0〜D7(ただし、D4を除く)には、正又は負の信号が入力されるが、入力ポート51aに入力された信号を取得した後、正論理又は負論理に変換(演算)した後のデータが、入力ポート51aレベルデータとして記憶される。たとえば、入力ポート51aにおいて、D0、D1、D3ビットには、操作時には負の信号が入力され、入力された信号が「負」の場合は「1」、「正」の場合は「0」となるように記憶する。
【0074】
一方、入力ポート51aにおいて、D2、D5、D6、D7ビットには、操作時には正の信号が入力されるので、入力された信号が「正」の場合は「1」、「負」の場合は「0」となるように記憶する。
【0075】
上記の論理変換処理をより具体的に説明する。
まず、定義データとして、以下の定義データ1及び定義データ2を備える。
定義データ1:0,0,0,0,1,0,1,1
定義データ2:1,1,1,0,1,1,1,1
そして、たとえば入力ポート51aに信号が入力されると仮定する。ここでは、1ベットスイッチ40aがオンにされたものとする。1ベットスイッチ信号は、オンのときは負の信号が入力されるので、入力される信号は「0」である。また、入力ポート51aにおける他のスイッチは操作されないものとすると、精算スイッチ信号(D0ビット)及びスタートスイッチ信号(D3ビット)は「1」、その他は「0」であるので、
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,1,0,0,1):データX
となる。
このデータXは、たとえばメモリ53内のAレジスタに記憶される。
【0076】
次に、上記データXと、定義データ1とを排他的論理和(XOR;エクスクルーシブオア)による論理演算を行う。これにより、
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,0,0,1,0):データY
となり、操作されたスイッチに係るデータ(D1ビット)のみが「1」となる。
したがって、上記のように演算することで、1ベットスイッチ40aのみが操作されたことを検知することができる。
【0077】
また、入力ポート51aのD4ビットのように未使用ビットを有する場合には、この未使用ビットに対応するデータを確実に「0」にするために、上記のデータYと定義データ2とを「AND」演算(論理積)してもよい。これにより、
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,0,0,1,0):データZ
となる。
なお、未使用ビットを有さないときは、データYの算出までで十分であり、データZの算出は不要である。また、未使用ビットを有する場合であっても、データYの算出で終了することも可能であり、データZの算出は、ノイズをより確実に除去するために行われる。
そして、上述したように、上記の演算、記憶等の処理は、1割込み内で行われる。
【0078】
後述する
図8に示すように、遊技を進行する情報処理として、1遊技あたり1回行うメインループないしメイン処理(M_MAIN)が設けられている。メインループは、投入されたメダルの検知から、全リール31が停止して入賞処理が行われるまでの処理である。このメインループ中に、メインループを一旦抜けて、割込み処理として、入力ポート51aを検知する処理を実行し、その処理の実行後、再度、メインループに戻る処理を定期的に行っている。その割込み時間の間隔は、2.235msである。すなわち、2.235ms間隔の割込み処理ごとに、入力ポート51aのデータを取得する。そして、取得したデータに基づいて、入力ポート51aレベルデータ及び入力ポート51a立ち上がりデータを生成し、記憶する。したがって、これらのデータは、2.235msごとに更新されていく。
【0079】
また、割込み処理がいつ行われたかにかかわらず、D0〜D7ビットのすべてを検知する。たとえば、リール31の回転中(ストップスイッチ42が操作される前)は、遊技者によってベットスイッチ40が操作されることはあり得ないので、必ずしもD1及びD2ビットのデータを取得する必要はないが、本発明では、すべてのビットのデータを取得する。そして、全ビットのデータを取得すれば、エラー判定を行うことも可能となる。たとえばリール31の回転中にベットスイッチ40の入力がオフからオンになった場合が挙げられる。
また、番地「7E00」、すなわち一の格納領域における1バイトのデータ列を取得すれば、操作スイッチのオン/オフの状況をすべて知ることができる。
【0080】
なお、詳細は後述するが、メインループ内で、割込み処理を行わせたくない場合がある。たとえば、A処理とB処理とを一連で行いたいときには、A処理とB処理との間には割込み処理を入れたくない事情がある。この場合には、A処理の前に割込み禁止処理を入れ、B処理後に割込み許可処理を入れる。
【0081】
以上のようにして、2.235msごとの割込み処理で、入力ポート51aの各ビットの信号(「正」又は「負」)を取得し、正論理又は負論理演算によって「0」又は「1」のデータに変換し、記憶する。これが、
図3に示す入力ポート51aレベルデータ(8ビットのデータ列である1バイトデータ)である。
さらに、今回の割込み処理でレベルデータを生成したとき、その1つ前(前回)、すなわち2.235ms前に生成したレベルデータを保持しておく。
【0082】
そして、前回のレベルデータと今回のレベルデータとを「XOR」演算し、その結果を、
図3に示すように入力ポート51a立ち上がりデータ(8ビットのデータ列である1バイトデータ)として記憶する。
なお、「XOR」演算では、前回及び今回「0」、又は前回及び今回「1」の場合、すなわち前回と今回で変化なしの場合は「0」となり、前回「0」で今回「1」、あるいは前回「1」で今回「0」のときは、「1」となる。
【0083】
すなわち、入力ポート51aレベルデータは、その割込み処理時に、実際の操作の有無を示す操作スイッチのデータであり、操作時が「1」、非操作時が「0」で示されるデータである。
また、入力ポート51a立ち上がりデータは、前回の割込み処理には非操作と検知されたが、今回の割込み処理では操作されたと検知された操作スイッチのデータであり、前回の割込み処理時から変化のあった操作スイッチが「1」、変化のなかった操作スイッチが「0」で示されるデータである。
【0084】
図3に示すように、入力ポート51aのレベルデータ及び立ち上がりデータとして、1バイト(8ビット)内のデータとして、精算スイッチ46、1ベットスイッチ40a、3ベットスイッチ40bの信号のデータが記憶される。これにより、1つの番地のデータを読み取ることにより、精算スイッチ46、1ベットスイッチ40a、3ベットスイッチ40bのデータを同時に読み取ることができるので、ベット処理や精算処理をスムーズに実行できるようになる。
なお、
図3に示すように、入力ポート51aレベルデータの格納番地(7E00)と、入力ポート51a立ち上がりデータの格納番地(7E01)とは異なっている。
【0085】
図4は、データA〜データDを示す図である。
図2で示したように、入力ポート51bのD0〜D5ビットには、正又は負の信号が入力されるが、入力ポート51bに入力された信号を取得した後、正論理又は負論理に変換(演算)した後のデータが、
図4に示すようにデータAとして(割込み処理時ごとに)記憶される。
【0086】
また、データBは、役の抽選結果に係る作動フラグを記憶するためのデータである。
図4に示すように、D0、D1、D2の各ビットには、それぞれリプレイ(再遊技)、MB(2種BB)、CBが割り当てられており、たとえばリプレイ作動時は、D0ビットのみが「1」(オン)となる。
本実施形態では、遊技状態に応じて、ベット可能なメダル枚数が異なるので、データBの作動フラグを判別することで、遊技状態、ひいてはベット可能なメダル枚数を判別可能となる。また、リプレイ作動時と非作動時とで、たとえばメダルの精算処理が異なるので、当該処理時に、リプレイの作動フラグをチェックする。
【0087】
さらに、
図4に示すように、データC(番地:7E04)には、ブロッカ信号及びホッパーモータ信号のオン/オフ状態を示すデータを記憶する。
図2に示すように、出力ポート52bからは、ブロッカ信号及びホッパーモータ信号が出力されるが、データCの値を参照し、これらの信号を出力するか否かを決定する。データCのデータが「1」の場合には、正論理によりオン(出力)となり、「0」の場合には、オフ(出力なし)となる。
【0088】
ここで、ブロッカ信号が「1」(オン)であるときは、メダル投入口43とホッパーとを連結するメダル通路を形成し、「0」(オフ)であるときは、メダル投入口43と払出し口とを連結する通路(返却通路)を形成する。
【0089】
さらにまた、データD(番地:7E05)として、スタートスイッチ受付け状態、ブロッカ信号状態、メダル限界判定を含むデータを記憶する(その他は説明を省略する)。スタートスイッチ受付け状態としては、受付け可能時は「1」、受付け不可時は「0」が記憶される。
また、ブロッカ信号状態は、上記のブロッカ信号と同義であるが、制御上、別個に使用されるために、別個の番地に記憶しておくデータである。このデータは、メダル管理時等において、ブロッカ45が現在どのようになっているかを知るための制御で用いるものである。
【0090】
ブロッカ45の駆動時には、割込み処理によって、出力ポート52bのD6ビットからブロッカ信号を出力する。
なお、ブロッカ信号状態が入力ポート51に入力されたり、出力ポート52から出力されたりすることはない。ブロッカ信号とブロッカ信号状態とを分けて記憶することにより、出力に用いられる番地(7E04)と、出力に用いられない番地(7E05)とを分けている。
【0091】
以上のようにして、1割込み内で、入力ポート51a、51bの信号に基づくデータを記憶するとともに、出力ポート52bに対しては、データCに基づき信号を送信する。
【0092】
次に、入力ポート51aの立ち上がりデータの生成について、具体例を挙げて説明する。
図5は、立ち上がりデータの生成の第1例を示す図である。
図5では、3ベットスイッチ40bがオンされた状態で、1ベットスイッチ40aがオンされた場合の例であって、正常にデータを取得した例である。なお、実際の遊技では、遊技者が意図的に操作しない限り、双方のベットスイッチ40が同時にオンされるケースはない。
【0093】
先ず、
図5(A)に示すように、今回の割込み処理において、入力ポート51aの信号を取得し、オンが「1」、かつオフが「0」となるように論理変換したデータを取得し、それをCレジスタに記憶する。なお、以下の説明のように、レジスタ(メモリ53内の記憶手段の一部)としてAレジスタ〜Cレジスタを備えるものとする。
【0094】
図5(A)において、1ベットスイッチ40a及び3ベットスイッチ40bがオンであるので、入力ポート51aのD1及びD2ビットのデータが「1」となり、他は「0」となる。
次に、同図(B)に示すように、前回の割込み処理時に生成したレベルデータを、Bレジスタに記憶する。ここで、割込み処理時に生成したレベルデータは、次の割込み処理時に使用するため、メモリ53のいずれかの番地に記憶しておく。
【0095】
次に、同図(C)に示すように、今回の割込み処理において、入力ポート51aの信号を再度取得する。そして、
図5の例では、正常にデータを取得した例であるので、(A)のデータと(C)のデータとは、一致している(D1及びD2ビットデータが「1」)。
【0096】
割込み処理が開始されると、先ず、
図5(A)に示す1回目のデータ取得を行い、50μS(マイクロ秒)の経過後、2回目のデータ取得を行う。なお、この50μS間にも、割込み処理時における所定の処理、たとえばタイマ減算処理等を実行している。また、割込み処理で実行される処理の時間は、500μS(0.5ms)程度である。
【0097】
次に、同図(D)に示すように、CレジスタとAレジスタの各データとを「AND」演算(論理積)し、その生成したデータを入力ポートレベルデータとする。CレジスタとAレジスタとを「AND」演算すれば、両者ともデータが「1」である場合に限り「1」となる。
次に、同図(E)に示すように、Bレジスタのデータと、(D)で生成したデータすなわち入力ポートレベルデータとを「XOR」演算(排他的論理和)し、変化ビットデータを生成する。これにより、変化があったデータのみが「1」となる。この例では、D1ビットのデータのみが「1」となる。
【0098】
次に、同図(F)に示すように、(D)で生成したデータすなわち入力ポートレベルデータと、(E)で生成した変化ビットデータとを「AND」演算し、その生成したデータを入力ポート立ち上がりデータとする。これにより、変化があったD1ビットのデータのみが「1」となる。
この立ち上がりデータにより、1ベットスイッチ40aの立ち上がりデータは生成される(「1」となる)が、3ベットスイッチ40bの立ち上がりデータは生成されない(「0」となる)ことを意味する。
【0099】
特に、
図5の例では、3ベットスイッチ40bがオンの状態で1ベットスイッチ40aがオンされた場合であるので、3ベットスイッチ40bのオン/オフは変化がなく、1ベットスイッチ40aのみがオフからオンに変化している。この変化を示すデータが、入力ポート立ち上がりデータとなり、D1ビットすなわち1ベットスイッチ信号のみが「1」(オン)となっている。
また、3ベットスイッチ40bがオンの状態で1ベットスイッチ40aがオンされた場合には、3ベットスイッチ40b及び1ベットスイッチ40aの双方がオンであるので、入力ポートレベルデータでは、D1及びD2ビットの双方のデータが「1」となっている。
【0100】
図6(第2例)は、
図5と同一条件(3ベットスイッチ40bがオンされた状態で、1ベットスイッチ40aがオンされた場合)であるが、異常なデータを取得した場合の例である。
先ず、
図6(A)に示すように、今回の割込み処理において、入力ポート51aの信号を取得し(1回目)、オンが「1」、かつオフが「0」となるように論理変換したデータを取得し、それをCレジスタに記憶する。1回目のデータ取得は、正常なデータを取得した例である。
【0101】
次に、同図(B)に示すように、前回の割込み処理時に生成したレベルデータを、Bレジスタに記憶する。このレベルデータは、
図5(B)と同一である。
次に、同図(C)に示すように、今回の割込み処理において、入力ポート51aの信号を再度取得する(2回目)。このときに、ノイズ等が発生し、D1ビットにおける1ベットスイッチ40aの信号を「正」と読み取り、AレジスタのD1ビットにはデータを「0」として記憶した例である。
【0102】
次に、同図(D)に示すように、CレジスタとAレジスタの各データとを「AND」演算し、その生成したデータを入力ポートレベルデータとする。CレジスタとAレジスタとを「AND」演算すれば、両者ともデータが「1」である場合に限り「1」となるので、D1ビットは「0」、D2ビットは「1」となる。この(D)の処理により、1回目の取得データと2回目の取得データとで異なる場合には、データを「0」にすることができる。したがって、チャタリングやノイズがあった場合には、そのデータを「0」にすることができる。
次に、同図(E)に示すように、Bレジスタのデータと、(D)で生成した入力ポートレベルデータとを「XOR」演算し、変化ビットデータを生成する。これにより、変化があったデータのみが「1」となるが、この例では、全ビットのデータが「0」となる。
【0103】
次に、同図(F)に示すように、(D)で生成した入力ポートレベルデータと、(E)で生成した変化ビットデータとを「AND」演算し、その生成したデータを入力ポート立ち上がりデータとする。これにより、変化があったビットのデータのみが「1」となるが、この例では全ビットのデータが「0」となる。
【0104】
以上より、変化があったビットのデータが「1」となるが、この例のように、1回目の取得データと2回目の取得データとが異なっていた場合には、全ビットのデータを「0」とすることができる。
このように、1回の割込み処理でデータを2回(複数回)取得する場合には、取得した双方のデータが一致している場合のみレベルデータを記憶し、一致していない場合には、そのレベルデータを記憶しない(「0」とする)。
【0105】
図7は、立ち上がりデータの生成の第3例を示す図である。
この例では、前回割込み処理時には、全ストップスイッチ42がオンにされており、今回の割込み処理時には、右ストップスイッチ42及び精算スイッチ46がオンにされた状態を示している。
先ず、
図7(A)に示すように、今回の割込み処理において、入力ポート51aの論理変換したデータを取得し、それをCレジスタに記憶する。右ストップスイッチ42及び精算スイッチ46がオンであるので、D0及びD7ビットのデータが「1」、その他のビットのデータは「0」である。
【0106】
次に、同図(B)に示すように、前回の割込み処理時に生成したレベルデータを、Bレジスタに記憶する。前回の割込み処理時には、全ストップスイッチ42がオンであるので、D5、D6、D7ビットのデータが「1」、その他のビットのデータは「0」である。
次に、同図(C)に示すように、今回の割込み処理において、入力ポート51aの信号を再度取得し、Aレジスタに記憶する。
図7の例では、異常にデータを取得した例として、左ストップスイッチ42をオンと検知し(1回目のデータ取得時はオフ)、かつ精算スイッチをオフ(1回目のデータ取得時はオン)と検知したために、2回目のデータ取得時には、D5ビットのデータを「1」と取得し、D0ビットのデータを「0」と取得した例である。
【0107】
次に、同図(D)に示すように、CレジスタとAレジスタの各データとを「XOR」演算することにより、同一割込み内(図中、(A)と(C))での変化ビットを示すデータを生成する。さらに、同図(E)に示すように、(D)におけるデータを反転させる(「NOT」(否定)演算する)。
次いで、同図(F)に示すように、(B)における前回割込み時の入力ポートレベルデータと、(D)で生成したデータとを「AND」演算する。
さらに、同図(G)に示すように、(C)におけるAレジスタのデータと、(E)で生成したデータとを「AND」演算する。
【0108】
さらにまた、同図(H)に示すように、(F)で生成したデータと、(G)で生成したデータとを「OR」演算(論理和)したデータを生成し、このデータを、今回の割込み処理時における入力ポートレベルデータとする。
【0109】
上記(D)〜(H)の演算を行うことで、1回目と2回目の取得データが不一致のときは、前回の入力ポートレベルデータを採用するように演算される。
具体的には、同図(A)及び(C)に示すように、D0ビット及びD5ビットは、いずれも、1回目と2回目の取得データが異なっている。この場合には、上記演算を行うことで、これらのビットのデータは、前回の割込み処理時のデータ(同図(B))となる。すなわち、D0ビットは「0」、D5ビットは「1」となる。
【0110】
したがって、
図4及び
図5の例では、1回目と2回目の取得データが不一致のときは、当該ビットのデータについては常に「0」となる演算を行ったが、
図6の例では、1回目と2回目の取得データが不一致のときは、当該ビットのデータについては前回割込み時の値となる。
【0111】
ここで、前回割込み時のデータを用いることにより、以下の効果を有する。
たとえば
図4及び
図5の例において、前回割込み時のデータが「1」であり、今回割込み時には、1回目と2回目の取得データが不一致であったために「0」になったと仮定する。そうすると、前回割込み時のデータが「1」、今回割込み時のデータが「0」となり、変化ビットのデータ(「1」から「0」に変化する、立ち下がり)を生成してしまう。ここで、立ち下がりデータを有するときに所定の制御(たとえば設定変更)を実行する場合がある。よって、チャタリングやノイズが入ったために、立ち下がりデータを生成し、意図しない制御を実行してしまうおそれがある。
これに対し、
図6のように前回割込み時のデータを用いるようにすれば、チャタリングやノイズによって立ち上がりデータ及び立ち下がりデータのいずれも生成しないので、立ち上がり/立ち下がりデータに基づく意図しない処理が実行されてしまうことはない。
【0112】
次に、同図(I)に示すように、前回の割込み処理での入力ポートレベルデータ(Bレジスタのデータ)と、今回の割込み処理における入力ポートレベルデータ(図中、(H)のデータ)とを「XOR」演算することにより、前回割込みと今回割込みとの変化ビットデータを生成する。
【0113】
そして、同図(J)に示すように、入力ポートレベルデータ(図中、(H)のデータ)と変化ビットデータ(図中、(I)のデータ)との各データを「AND」演算し、その生成したデータを入力ポート立ち上がりデータとする。これにより、この例では全ビットのデータが「0」となる。
【0114】
続いて、本実施形態における情報処理の流れを、フローチャートに基づき説明する。
図8は、本実施形態におけるメインループ(M_MAIN)処理を示すフローチャートである。そして、このメインループの処理の実行中に、2.235msごとに割込み処理を行い、入力ポートレベルデータ、及び入力ポート立ち上がりデータを生成、記憶する。
【0115】
図8において、ステップS101では、スタックポインタをセットする。ここで、スタックポインタとは、電断が生じた場合に、電断発生時のデータを保存するRAM領域を指し、スタックポインタのセットとは、そのRAM領域のレジスタ値を初期値にセットする処理である。
次のステップS102では、遊技開始セットを行う。この処理は、たとえば遊技状態のセット、前遊技でリプレイが入賞したときはメダルの自動投入する処理、作動フラグ(
図4のデータB)をクリアする処理、ホッパーの満杯検知等の処理である。
【0116】
ステップS103ではメダルの読み込みを行う。この処理は、現時点においてベットされているメダル枚数が何枚であるかを読み込む処理である。以下の説明において、「メダル読み込み」とは、ベット数の読み込みを指し、貯留枚数の読み込みとは異なるものである。
次のステップS104では、ステップS103で読み込んだベット数に基づき、ベットメダルの有無を判断する。
【0117】
ステップS104でベットメダルありと判断したときはステップS106に進み、ベットメダルなしと判断したときはステップS105に進んでメダル投入待ち表示(メダルの投入可能を示す表示)を行い、ステップS106に進む。
【0118】
ステップS106では、投入されたメダルの管理処理(MS_MEDAL_CHK)を行う。ステップS106に進むと、後述する
図9の処理に移行する。
次のステップS107では、ソフト乱数の更新処理を行う。この処理は、役抽選手段61で使用する乱数を更新(「1」加算)する処理である。ソフト乱数は、0〜65535の範囲を有する16ビット乱数であり、更新時には、更新前の値に、割込みカウント値(割込み時にインクリメントされるカウント値)を加算する処理を実行する。
【0119】
次のステップS108では、スタートスイッチ41の受付けフラグをセットする(オン(「1」)にする処理を行う)。なお、後述するように、スタートスイッチ41の受付けを許可するか否かを記憶するためのフラグが設けられており、このフラグがオンであるときにスタートスイッチ41が操作されると、その操作は有効となる。
次のステップS109では、メインCPU54は、スタートスイッチ41が操作されたか否かを判断する。スタートスイッチ41が操作されたと判断したときは、ステップS110に進み、スタートスイッチ41が操作されていないと判断したときはステップS103に戻る。
【0120】
ステップS110では、役抽選手段61は、スタートスイッチ41が操作されたタイミングで、すなわちスタートスイッチ41の操作信号の受信時に、乱数値を抽出し、役の抽選を実行する。
次のステップS111では、リール制御手段62は、リール31の回転を開始する。次にステップS112に進み、リール31の停止受付けをチェックする。ここでは、ストップスイッチ42の操作信号を受信したか否かを検知し、操作信号を受信したときは、役の抽選結果とリール31の位置とに基づいてリール31の停止位置を決定し、その決定した位置にリール31を停止させるように制御する。
【0121】
次のステップS113では、リール制御手段62は、全リール31が停止したか否かをチェックし、ステップS114に進む。ステップS114では、全リール31が停止したか否かを判断し、全リール31が停止したと判断したときはステップS115に進み、全リール31が停止していないと判断したときはステップS112に戻る。
【0122】
ステップS115では、図柄の表示判定を行う。ここでは、入賞判定手段63により、有効ラインに、役に対応する図柄の組合せが停止したか否かを判断する。
次にステップS116に進み、役の入賞があったときは、払出し手段64は、入賞役に対応するメダルの払出しを行う。
【0123】
次にステップS117に進み、メインCPU54は、遊技終了チェックを行う。この処理は、役抽選結果によって立てた当選フラグのクリア、ウエイトのセット等を実行する処理である。
次のステップS118では、遊技終了時の出力要求をセットする。この処理は、1遊技が終了した旨をサブ制御基板80に送信するためのコマンドデータをセットする処理である。なお、「出力要求のセット」は、以下に説明する処理においてもしばしば実行されるものであるが、このステップS118と同様に、サブ制御基板80に送信するためのコマンドデータをセットする処理を意味するものとする。
【0124】
次にステップS119に進み、メインCPU54は、制御コマンドのセットを行う。この処理は、メモリ53内の所定の制御コマンドバッファに、サブ制御基板80に送信するためのコマンドデータを記憶する処理である。なお、「制御コマンドのセット」は、以下に説明する処理においてもしばしば実行されるものであるが、このステップS119と同様に、サブ制御基板80に送信するためのコマンドデータを記憶する処理を意味するものとする。
そして、ステップS119の処理を終了すると、再度、ステップS101に戻る。
【0125】
図9は、
図8のステップS106におけるメダル管理処理(MS_MEDAL_CHK)を示すフローチャートである。
図9において、ステップS131では、メインCPU54は、ブロッカ信号がオンであるか否かを検知する。ブロッカ信号がオンであるときはステップS132に進み、ブロッカ信号がオンでないときはステップS133に進む。ここで、「ブロッカ信号がオン」であるというのは、ブロッカ45によりメダル通路が形成されている場合に相当する。すなわち、
図3中、データAのD6ビットのデータを取得し、オン(「1」)であるか否かを検知する。
【0126】
ステップS132では、メインCPU54は、
図4のデータAの内容を確認することにより、投入センサ信号に係るデータ(D1及びD2ビット)がオン(「1」)であるか否かを検知する。投入センサ信号に係るデータがオンであると判断したときは、メダルの投入を意味するので、ステップS142(MS_INSERT_CHK :
図10)に進み、メダル投入時の処理を実行する。これに対し、オンでないと判断したときは、ステップS133に進む。
【0127】
ステップS133では、1枚投入、3枚投入、精算操作の受付けが可能であるか否かをチェックする要求をセットする。そして、次のステップS134において、これらの操作受付けが可能であるか否かをチェックする。
次にステップS135に進み、メインCPU54は、操作受付けが可能であるか否かを判断する。可能であると判断したときはステップS136に進み、可能でないと判断したときは本フローチャートによる処理を終了し、メインループに戻る。
上記のステップS133〜S135の処理により、ベット処理又は精算処理を行う前に、ベットスイッチ40及び精算スイッチ46の操作受付けが可能な状態であるか否かを判断し、可能な状態である場合のみ、ベット処理又は精算処理に移行するようにしている。
【0128】
ステップS136では、ベットスイッチ信号及び精算スイッチ信号の確認要求をセットする。この処理は、
図3の入力ポート51aレベルデータ(D2〜D0ビット)の内容を確認する処理である。
【0129】
次のステップS137では、ステップS136での確認に基づき、1ベットスイッチ40a、3ベットスイッチ40b、精算スイッチ46のうち、いずれかの立ち上がりデータが「1」であるか否かを判断する。いずれの立ち上がりデータも「1」でないと判断したとき、すなわち1ベットスイッチ40a、3ベットスイッチ40b、及び精算スイッチ46のいずれも操作の変化がないと判断したときは本フローチャートによる処理を終了し、メインループに戻る。
【0130】
ステップS137で、いずれかの立ち上がりデータが「1」であると判断されたときはステップS138に進む。ステップS138では、スタートスイッチ41の受付け許可フラグをクリアする。ここで、スタートスイッチ41の受付け許可フラグは、「0」又は「1」の値をとり、クリアとは、「0」にすることである。そして、スタートスイッチ41の受付け許可フラグが「0」であるときは、スタートスイッチ41は有効にはならない(操作されても無効となる)。一方、スタートスイッチ41の受付け許可フラグが「1」のときは、スタートスイッチ41が有効となっているときである。
なお、その後にスタートスイッチ41の受付け許可フラグが有効になるのは、メインループのステップS108である。
【0131】
したがって、1ベットスイッチ40a、3ベットスイッチ40b、精算スイッチ46のうち、いずれかに変化があったとき(立ち上がりデータ「1」時)は、スタートスイッチ41を受付けを許可しないようにしてから、ベットスイッチ又は精算スイッチの操作に基づく処理(
図9中、MS_MEDAL_RET、又はMS_BET_IN )を実行する。
【0132】
次にステップS139に進み、メインCPU54は、精算スイッチ信号に係るデータの確認要求をセットする。この処理は、
図3の入力ポート51aレベルデータ(D0ビット)の内容を確認する処理である。
そして、次のステップS140で、メインCPU54は、ステップS139での確認に基づき、精算スイッチ信号の立ち上がりデータが「1」であるか否かを判断する。精算スイッチ信号の立ち上がりデータが「1」であるときはステップS141に進み、精算処理(MS_MEDAL_RET:
図20)を実行する。一方、精算スイッチ信号の立ち上がりデータが「1」でないと判断したときは、ベットスイッチ信号の立ち上がりデータが「1」であることを意味するので、ステップS143に進み、ベット処理(MS_BET_IN :
図17)を実行する。
【0133】
図10及び
図11は、
図9のステップS142におけるメダル投入処理(MS_INSERT_CHK )を示すフローチャートである。
図11は、
図10に続くフローチャートである。
図10において、ステップS151では、メインCPU54は、スタートスイッチ41の受付け許可フラグをクリアする(「0」にする)。
次にステップS152に進み、メインCPU54は、
図4のデータA(D1ビット)の内容を確認し、投入センサ1(44a)信号に係るデータがオンであるか否かを判断する。
なお、以下の説明では、
図4中、データAのD1ビットのデータを「投入センサ1信号に係るデータ」と称し、D2ビットのデータを「投入センサ2信号に係るデータ」と称する。また、「1」の場合はデータがオンであり、「0」の場合はデータがオフである。
【0134】
投入センサ1信号に係るデータがオンであるときはステップS153に進み、オンでないときはステップS158に進む。ステップS153では、投入センサ1の通過チェック時間をセットする。ここで、投入センサ1によりメダルが検知されると投入センサ1信号に係るデータがオンとなるが、その後、所定時間を経過しても投入センサ1信号に係るデータがオフにならないときは、メダル詰まり等が考えられるので、投入センサ1の通過チェック時間を計測する。
【0135】
次にステップS154に進み、メインCPU54は、ステップS152と同様にして、投入センサ1及び2信号に係るデータがオフであるか否かを判断する。投入センサ1及び2信号に係るデータがオフであると判断したときは本フローチャートによる処理を終了する。
ここで、ステップS152で投入センサ1信号に係るデータがオンになった後、ステップS154で投入センサ1信号に係るデータがオフと判断されることは稀であるが、ノイズ等により投入センサ1信号に係るデータが一時的にオンとなり、ステップS152でそのオンが検出される場合がある。そして、ノイズ等により投入センサ1信号に係るデータが一時的にオンとなっても、ステップS154の処理により、ステップS155以下に進まないようにしている。
【0136】
ステップS154において、投入センサ1及び2信号に係るデータがオフでないと判断したときはステップS155に進む。ステップS155では、投入センサ1及び2信号に係るデータがオンであるか否かを判断する。投入センサ1及び2信号に係るデータがオンであると判断したときはステップS159に進み、オンでないと判断したときはステップS156に進む。
【0137】
ステップS156では、メインCPU54は、投入センサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS157に進み、オンでないと判断したときはステップS158に進む。
ステップS157では、メインCPU54は、投入センサ1の通過チェック時間が経過したか否かを判断する。すなわち、ステップS153でセットした時間が所定時間を経過したか否かを判断する。通過チェック時間を経過したと判断したときはステップS167に進み、通過チェック時間を経過していないと判断したときはステップSステップS154に戻る。
【0138】
ステップS152において投入センサ1信号に係るデータがオンでないと判断されたとき、又はステップS156において投入センサ1信号に係るデータがオンでないと判断されてステップS158に進むと、メインCPU54は、メダルの不正通過エラーの表示要求をセットする。そしてステップS180に進み、本処理(MS_INSERT_CHK )からメダルエラー処理(MS_ERROR_DSP)(図示せず)に移行する。
【0139】
また、ステップS155において投入センサ1及び2信号に係るデータがオンであると判断され、ステップS159に進むと、メインCPU54は、投入センサ2の通過チェック時間をセットする。次にステップS160に進み、メインCPU54は、投入センサ2信号に係るデータがオンであるか否かを判断する。投入センサ2信号に係るデータがオンであるときはステップS164に進み、オンでないときはステップS161に進む。ステップS161では、メインCPU54は、投入センサ1及び2信号に係るデータがオンであるか否かを判断する。オンであるときはステップS162に進み、オンでないときはステップS158に進む。
【0140】
ステップS162では、メインCPU54は、投入センサ2の通過チェック時間が経過したか否かを判断する。すなわち、ステップS159でセットした時間が所定時間を経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときはステップS167に進み、通過チェック時間が経過していないと判断したときはステップS163に進む。ステップS163では、メインCPU54は、投入センサ1の通過チェック時間が経過したか否かを判断する。投入センサ1の通過チェック時間が経過したと判断したときはステップS167に進み、通過チェック時間が経過していないと判断したときはステップS160に戻る。
【0141】
ステップS160において投入センサ2信号に係るデータがオンであると判断され、ステップS164に進むと、メインCPU54は、投入センサ1及び2信号に係るデータがオフであるか否かを判断する。投入センサ1及び2信号に係るデータがオフであると判断したときは
図11のステップS168に進み、オフでないと判断したときはステップS165に進む。ステップS165では、メインCPU54は、投入センサ2信号に係るデータがオンであるか否かを判断する。
【0142】
投入センサ2信号に係るデータがオンでないと判断したときはステップS158に進み、オンであると判断したときはステップS166に進む。ステップS166では、メインCPU54は、投入センサ2の通過チェック時間が経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときはステップS167に進み、通過チェック時間が経過していないと判断したときはステップS164に戻る。
【0143】
ステップS167に進むと、メダル滞留エラーの表示要求をセットする。メダル滞留エラーとは、投入センサ1や2信号に係るデータが、通過チェック時間の経過後もオンの状態となり、メダル通路にメダルが滞留していることを意味するので、そのエラーを表示するためである。そして、上記と同様に、本処理を終了してエラー処理に移行する。
【0144】
ステップS164において投入センサ1及び2信号に係るデータがオフであると判断し、
図11のステップS168に進むと、メインCPU54は、メダル異常投入エラーの表示要求をセットする。ここで、メダル異常投入エラーとは、通路センサ43aと投入センサ1、2の通過異常があったことを示すエラーである。
【0145】
次にステップS169に進み、メインCPU54は、投入監視カウンタの値を「1」減算する。ここで、投入監視カウンタとは、通路センサ43aがメダルを検知すると、「+1」とし、投入センサ1及び2がメダルを検知すると、「0」とするカウンタである。すなわち、正常時には、「+1」と「0」とを繰り返す。
【0146】
次にステップS170に進み、メインCPU54は、投入監視カウンタの値が「0」〜「3」の範囲であるか否かを判断する。当該範囲内であると判断したときはステップS171に進み、範囲内でないと判断したときは、
図10のステップS180に進み、上記と同様にエラー処理に移行する。
たとえば、当該カウンタの値が「−1」となるのは、通路センサ43aを通過せずに投入センサ1、2を通過した場合が挙げられる。
また、当該カウンタの値が「+4」となるのは、通路センサ43aを通過したメダルが投入センサ1、2を通過する前に滞留している場合が挙げられる。
【0147】
ステップS171では、メダル限界をセットする(MS_MMAX_SET :
図12)。ここで、メダル限界とは、そのスロットマシン10で投入可能となっているメダル枚数の最大値を意味する。たとえば、どの遊技状態においても、常に、最大で3枚のメダルを投入できるときは、メダル限界は、3枚となる。
【0148】
これに対し、投入可能な最大メダル枚数が遊技状態で異なっているときは、その遊技状態で投入可能な最大メダル枚数を意味する。たとえば、通常遊技では、最大3枚のメダルが投入可能であり、ボーナスゲーム(たとえばMBゲーム)中には、最大で2枚のメダルを投入可能である場合において、ボーナスゲーム中を除くメダル限界は3枚となり、ボーナスゲーム中のメダル限界は2枚となる。
【0149】
次にステップS172に進み、メダル読み込みを実行する(S_PLAYM_READ:
図13)。ここで、メダル読み込みとは、現時点でベットされているメダル枚数を読み込む処理である。
次のステップS173では、貯留枚数の読み込みを実行する(S_CREDIT_READ :
図14)。
次にステップS174に進み、メインCPU54は、現時点でベットされているメダル枚数及び貯留枚数の合計数を算出する。次のステップS175では、メダルの投入を有効とした後に、メダル投入は不可であるか否かを判断する。そして、投入不可と判断したときはステップS176に進んでブロッカ45をオフにする処理を実行する(MS_BLOCKER_OFF:
図15)。そしてステップS177に進む。一方、投入不可でないと判断したときは、ステップS176をスキップしてステップS177に進む。
【0150】
ここで、後述したように、ブロッカ信号は、オン時には正の信号を出力し、正論理により、オン時は「1」が記憶される(
図3中、データAのD6ビット)。
そして、ブロッカ信号がオンであるときは、投入センサ1及び2を通過するメダル通路を形成させ、オフであるときは、メダル投入口43から投入されたメダルを返却口から返却するメダル通路を形成する。
【0151】
次のステップS177では、メインCPU54は、メダル投入時の出力要求をセットする。そして、次のステップS178では、制御コマンドをセットする。
次のステップS179では、メインCPU54は、現時点でメダル枚数が限界値(上限値)であるか否かを判断する。メダル枚数が限界値であると判断したときはステップS180に進む(MS_CREDIT_ADD :詳細は省略)。これに対し、メダル枚数が限界値でないと判断したときはステップS181に進み、メダルの(1枚)加算処理を行う(MS_MEDAL_INC:
図18)。
【0152】
図12は、
図11のステップS171におけるメダル限界セット処理(MS_MMAX_SET )を示すフローチャートである。ステップS191では、自動投入時の限界枚数をセットする。ここで、自動投入とは、リプレイ入賞時におけるメダルの自動投入を意味する。当該遊技で投入された枚数が自動投入時の限界枚数となる。次のステップS192では、作動フラグをチェックする。この処理は、
図4中、データBの内容を確認する処理である。
そして、次のステップS193では、メインCPU54は、リプレイ作動時、すなわち上記データBにおいてD0ビットがオンであるか否かを判断する。オンであるときは、本フローチャートによる処理を終了し、オンでないときはステップS194に進む。ステップS194では、メダルの限界枚数として2枚をセットする。
【0153】
次にステップS195に進み、メインCPU54は、当該遊技がメダル限界枚数2枚の遊技時であるか否かを判断する。上述したように、たとえば通常遊技であるときはメダル限界枚数が2枚でないと判断し、MBゲーム中であるときはメダル限界枚数が2枚であると判断する。ここでの処理は、上記と同様に、
図4中、データBを確認する処理である。そして、たとえばD1及びD2ビットがオンであるとき(すなわちMB遊技中)は、メダル限界枚数が2枚であると判断し、オフであるときはメダル限界枚数が3枚であると判断する。
メダル限界枚数が2枚であるときは、既にステップS194で2枚をセットしているので本フローチャートによる処理を終了する。一方、メダル限界枚数が2枚でないと判断したときはステップS196に進み、メダル限界枚数3枚をセットする。そして、本フローチャートによる処理を終了する。
【0154】
図13は、
図11のステップS172におけるメダル読み込み処理(S_PLAYM_READ)を示すフローチャートである。先ず、ステップS201において、メインCPU54は、メダル枚数のデータを読み込む。次にステップS202において、メインCPU54は、ステップS201で読み込んだメダル枚数のチェックを行う。ここでチェックを行うのは、たとえば読み取った値が正常の範囲内であるか否かをチェックするためである。そして、本フローチャートによる処理を終了する。
【0155】
また、
図14は、
図11のステップS173における貯留枚数読み込み処理(S_CREDIT_READ )を示すフローチャートである。先ず、ステップS211において、メインCPU54は、貯留枚数のデータを読み込む。次にステップS212において、ステップS211で読み込んだ貯留枚数のチェックを行う。そして本フローチャートによる処理を終了する。
【0156】
図15は、
図11のステップS176におけるブロッカオフの処理(MS_BLOCKER_OFF)を示すフローチャートである。
図11で示したように、メダルの投入が有効になった後、メダルの投入が不可となったときは、ブロッカ45を駆動して、メダル投入口43からメダルが投入されたときであってもそのメダルを返却口から返却するメダル通路を形成するように制御する。
【0157】
先ず、ステップS221において、メインCPU54は、ブロッカ信号の確認処理を行う。この処理は、
図4中、データCにおいて、D6ビットのデータ(「0」又は「1」)を確認する処理である。ここで、D6ビットのデータが「0」であるときは、既にブロッカ45がオフにされていることを意味する。
次にステップS222に進み、メインCPU54は、ブロッカ信号がオフであるか否かを判断する。オフでないと判断したときはステップS223に進み、オフであると判断したときは本フローチャートによる処理を終了する。すなわち、既にブロッカがオフであるときは、ブロッカをオフにする本処理を進めることなく本フローチャートによる処理を終了する。
【0158】
ステップS222においてブロッカ信号がオフでないと判断し、ステップS223に進むと、メインCPU54は、この時点からの割込みを禁止する。上述したように、メインループ(M_MAIN)の実行中には、2.235msごとに1回のタイマ割り込み処理が入るが、ステップS223のような「割込み禁止」の記述があるときは、当該割込み禁止が解除されるまで、割込みを許可しないように制御する。
【0159】
このように制御するのは、たとえば一連の処理を行う場合であって、その一連の処理間には割込み処理を実行させたくない場合が挙げられる。特に本実施形態では、ステップS224におけるブロッカ信号の制御と、ステップS225におけるブロッカ信号状態の制御とを行う間に割込みを発生させたくないという理由から、そのような制御を行っている。
【0160】
次のステップS224では、メインCPU54は、ブロッカ信号をオフにする処理を行う。さらに次のステップS225では、ブロッカ信号状態をオフにする処理を行う。
そしてステップS226に進み、メインCPU54は、投入センサ2の異常入力の検出時間をセットする。
【0161】
ここで、本実施形態では、ブロッカ45をオン(通過)からオフ(返却)にした後、所定時間を経過する前には投入センサ2のオン信号を検出しても投入センサ2の異常入力とは判断しないが、所定時間を経過した後に投入センサ2のオン信号を検出したときは投入センサ2の異常入力と判断する。このため、ステップS226のタイミングで、投入センサ異常入力の検出時間(以下の500.64ms)をセットする。
【0162】
図16は、ブロッカ45のオン/オフと、投入センサ2信号に係るデータのオン/オフと、エラー監視とのタイミングを示すタイムチャートである。
図16に示すように、ブロッカ45がオンからオフになったタイミングで、時間の計測を開始し、所定時間、特にこの例では、500.64msの経過前までに投入センサ2信号に係るデータのオンを検出しても、その間は、エラー監視をしていないので、エラーと判断されることはない。
図16の例では、ブロッカ45をオフにした後、エラー監視を有効にする前に、投入センサ2信号に係るデータがオンとなっている(メダルが投入センサ2により検知されている)。この場合、当該メダルはエラーと判断されず(遊技の進行を邪魔せず)、ベットされる。
なお、500.64msの計測は、割込み回数のカウント値「224」をセットすることにより行う(1割込みの時間「2.235ms」×回数「224」=500.64ms)。
【0163】
次に、所定時間(500.64ms)の経過後、エラー監視を開始する。エラー監視を開始した後、投入センサ2のオン信号を検出したときは、その時点からエラー監視を無効とする。また、エラーを検知してから一定時間を経過したときはエラー表示を開始する。エラー表示後は、エラーが解除されるまで、エラー表示が継続するとともに遊技停止状態となる。
エラー要因が除去され、投入センサ2の信号がオフとなったときは、その後、エラーを解除し、エラー監視を再度有効にする。
【0164】
図15において、ステップS226で投入センサ異常入力の検出時間をセットすると、ステップS227に進み、ステップS223で設定した割込み禁止の解除、すなわち割込みを許可する。そして、本フローチャートによる処理を終了する。
【0165】
図17は、
図9のステップS143におけるベット処理(MS_BET_IN )を示すフローチャートである。
先ず、ステップS231において、メインCPU54は、メダル限界フラグがオン(「1」)であるか否かを判断する。ここで、メダル限界フラグは、
図3中、データBのD7ビットのデータを判断することにより行う。メダルが限界枚数(たとえば通常遊技では3枚)までベットされているときはメダル限界フラグがオンとされ、
図3中、データBのD7ビットのデータとして「1」が記憶される。そして、メインCPU54は、データBのD7ビットのデータを読み込むことにより、メダル限界フラグがオン(「1」)であるか否かを判断する。
【0166】
ステップS231において、メダル限界フラグがオンであるときは、既に最大ベット状態であることを意味するので、本フローチャートによるベット処理を終了する。すなわち、
図9のステップS140においてベットスイッチの操作を検知し、「MS_BET_IN 」の処理に移行したとしても、最大ベットが既になされているときは、ベット処理は行われない。
【0167】
メダル限界フラグがオンでないと判断したときはステップS232に進み、投入要求枚数として「1枚」をセットする。次にステップS233に進み、
図3中、入力ポート立ち上がりデータのうち、1ベットスイッチ信号に係るデータ(D1ビットのデータ)がオン(「1」)であるか否かを判断する。1ベットスイッチ信号に係るデータがオンであるときはステップS238に進み、1ベットスイッチ信号に係るデータがオンでないときはステップS234に進む。
【0168】
ステップS234では、メダル限界(たとえば、通常遊技では3枚)をセットする。この処理は、
図12で示した「MS_MMAX_SET 」と同じである。
次のステップS235では、メダル読み込み処理を行う。この処理は、
図13で示した「S_PLAYM_READ」と同じである。次に、ステップS236に進み、投入要求枚数を演算する。この処理は、メダル限界セット(ステップS234)の値から、メダル読み込み(ステップS233)で読み込んだ値を減算する処理である。たとえばメダル限界セットで3枚がセットされ、メダル読み込みで1枚が既にベットされていると判断されたときは、「3−1」を実行する処理に相当する。
次に、ステップS237に進み、投入要求枚数修正を行う。この処理は、ステップS236で算出した値を投入要求枚数としてセットする処理である。
【0169】
次に、ステップS238に進み、現時点における貯留枚数の読み込みを行う。この処理は、
図14で示した「S_CREDIT_READ 」と同じである。
次のステップS239では、メインCPU54は、メダルの貯留の有無を判断する。メダルの貯留なしと判断したときは本フローチャートによる処理を終了し、メダルの貯留有りと判断したときはステップS240に進む。
【0170】
ステップS240では、3ベットスイッチ信号の立ち上がりデータをクリアする。具体的には、
図3中、入力ポート51aの立ち上がりデータのうち、D2ビットのデータを「0」にする。
次のステップS241では、1ベットスイッチ信号の立ち上がりデータをクリアする。具体的には、上記と同様に、入力ポート51aの立ち上がりデータのうち、D1ビットのデータを「0」にする。そして、ステップS242に進む。
【0171】
以上の処理のように、ステップS239で貯留メダルありの場合には、3ベットスイッチ信号及び1ベットスイッチ信号の立ち上がりデータをクリアした後、ベット処理を実行する。
上述したように、
図3で示した(入力ポートの)立ち上がりデータは、割込み処理によって生成され、記憶される。
一方、ベット処理を実行する場合には、割込み処理によって生成・記憶した立ち上がりデータを、メインループ内でクリアする処理を実行する。
【0172】
ここで、立ち上がりデータをクリアしなかった場合には、再度割込み処理が実行されるまで、立ち上がりデータが維持される。この場合、メインループのベット処理では、立ち上がりデータが「1」であることに基づいて、再度、1ベット処理が実行されてしまう。
このような不都合を回避するために、メダルの貯留(クレジット)がある場合には、ベット処理の開始前に、立ち上がりデータをクリアしている。
【0173】
ステップS242では、メダル貯留枚数(ステップS238で読み込んだ枚数)が、投入要求枚数(ステップS236でセットした枚数)以上であるか否かを判断する。メダル貯留枚数が投入要求枚数以上であると判断したときはステップS244に進み、メダル貯留枚数が投入要求枚数以上でないと判断したときはステップS243に進む。
ステップS243では、メダル貯留枚数をセットする。この処理は、貯留枚数(クレジット数)をベット(投入)する処理である。すなわち、ステップS242で「No」のときは、貯留枚数が投入枚数に満たない場合であるので、この場合には貯留枚数を投入枚数とする処理を行う。そしてステップS244に進む。
【0174】
ステップS244では、貯留投入時の出力要求をセットする。次にステップS245に進み、制御コマンドをセットする。
次のステップS246では、ベット枚数としてメダルを1枚加算する処理を行う(MS_MEDAL_INC:
図18)。次にステップS247に進み、貯留枚数から1枚を減算する処理を行う(MS_CREDIT_DEC :
図19)。次のステップS248では、メインCPU54は、要求枚数の投入(ベット)が終了したか否かを判断する。終了したと判断したときは本フローチャートによる処理を終了し、終了していないと判断したときはステップS246に戻る。これにより、2枚以上をベットするときは、1枚ベットの処理(ステップS246及びS247)を複数回繰り返す。
【0175】
図18は、
図17のステップS246におけるメダル1枚の加算処理(MS_MEDAL_INC)を示すフローチャートである。
先ず、ステップS251では、メインCPU54は、メダルの読み込みを行う(S_PLAYM_READ)。この処理は、上述した
図13の処理と同一である。
次のステップS252では、メダル枚数を1加算する処理(「+1」)を行う。次にステップS253に進んで、メダル枚数表示の出力要求セットを行う。次のステップS254では、制御コマンドをセットする。
【0176】
次のステップS255では、メインCPU54は、獲得枚数表示クリアを行う。この処理では、前遊技でたとえば小役が入賞したときには、その入賞に基づく獲得枚数が表示されるが、その表示をクリアする処理である。
次にステップS256に進み、メインCPU54は、投入枚数表示LED点灯データを生成する。これは、メダルが1枚投入されるごとに点灯するLEDが設けられているので、メダル1枚投入に対して1つのLEDを点灯させる処理を行うため、そのデータを生成する。
【0177】
次のステップS257では、メインCPU54は、投入枚数分の点灯データの生成を終了したか否かを判断する。投入枚数分の点灯データの生成を終了していないと判断したときはステップS256に戻り、点灯データの生成を継続する。一方、投入枚数分の点灯データの生成を終了したと判断したときはステップS258に進み、メインCPU54は、生成した点灯データに対応する投入枚数表示LEDを点灯する。
次にステップS259に進み、メインCPU54は、メダル限界をセットする(
図12の「MS_MMAX_SET 」と同一)。次にステップS260に進み、メインCPU54は、メダル読み込み処理(S_PLAYM_READ)を行う(ステップS251と同一)。
【0178】
そして、次のステップS261において、メインCPU54は、メダル枚数が限界値(上限値)であるか否かを判断する。メダル枚数が限界値でないと判断したときは本フローチャートによる処理を終了し、限界値であると判断したときはステップS262に進む。ステップS262では、メダル限界フラグをセットする。すなわち、現時点でメダル限界値になっていることを示すフラグをオンにし(
図3中、データBのD7ビット)、本フローチャートによる処理を終了する。
【0179】
図19は、
図17のステップS247における貯留枚数から1枚を減算する処理(MS_CREDIT_DEC )を示すフローチャートである。
ステップS271では、貯留枚数の読み込み処理(S_CREDIT_READ )を行う。この処理は、
図14の処理と同一である。
次のステップS272では、貯留枚数から「1」を減算する処理(「−1」)を行う。そして本フローチャートによる処理を終了する。
【0180】
図20は、
図9のステップS141における精算処理(MS_MEDAL_RET)を示すフローチャートである。
先ず、ステップS281では、メインCPU54は、貯留枚数の読み込み処理(S_CREDIT_READ )を行う。この処理は、
図14の処理と同一である。次のステップS282では、メインCPU54は、メダル読み込み処理(S_PLAYM_READ)を行う。この処理は、
図13の処理と同一である。
【0181】
次に、ステップS283に進み、メインCPU54は、作動フラグをチェックする。続いて、ステップS284では、メインCPU54は、当該遊技でリプレイの作動フラグがオンであるか否かを判断する。このステップS283及びS284の処理は、上述したステップS192及びS193と同様である。
ステップS284においてリプレイ作動時でないときはステップS286に進み、リプレイ作動時であるときはステップS285に進む。
【0182】
ステップS285では、精算可能なベット数をクリアする。この処理は、ステップS282で読み込んだベット数を、リプレイ作動時には「0」にする処理である。
次のステップS286では、メインCPU54は、精算可能なメダルの有無を判断する。この処理は、ステップS281で読み込んだ貯留枚数(クレジット枚数)と、ステップS282で読み込んだベット数とを「OR」演算し、精算可能なメダルの有無を判断する。ここで、リプレイ作動時の場合には、ステップS285において値を「0」(クリア)にしているため、貯留枚数がある場合にのみ「Yes」となる。
ステップS286において精算可能なメダルありと判断したときはステップS287以降の処理に進むが、精算可能なメダルなしと判断したときは、本フローチャートによる処理を終了する。
【0183】
ステップS287では、ブロッカ45をオフにする処理(MS_BROCKER_OFF)を行う。この処理は、上述した
図15の処理と同じである。
次に、ステップS288に進み、メインCPU54は、精算開始時の出力要求をセットし、次のステップS289では制御コマンドをセットする。
次のステップS290及びステップS291の処理は、上述したステップS283及びステップS284の処理と同一である。
【0184】
そして、ステップS291において、リプレイ作動時であると判断したときはステップS294に進み、リプレイ作動時でないと判断したときはステップS292に進む。
ステップS292では、メダルの読み込み処理(S_PLAYM_READ)(ステップS282と同じ)を行う。この処理は、現在ベットされているメダル枚数を読み込む処理である。
【0185】
次にステップS293に進み、メインCPU54は、ベットメダルの有無を判断する。ベットメダルありと判断されたときはステップS297以降の処理に進み、ベットメダルなしと判断されたときはステップS294以降の処理に進む。
ここで、ベットメダルありの場合には、ステップS297以降の処理を行うことによって、ベットメダルの精算処理を行う。これに対し、ベットメダルなしの場合には、ステップS294以降の処理を行うことによって、貯留メダル、すなわちクレジットされているメダルの精算処理を行う。
【0186】
ステップS293からステップS294に進むと、メインCPU54は、打ち止め表示LEDを点灯する処理を行う。本実施形態では、貯留メダルの精算処理を行っている間は、打ち止め表示LEDを点灯させる。次にステップS295に進み、貯留メダルの精算処理(MS_CREDIT_RET )を行う(後述する
図21)。この精算処理後は、ステップS296に進み、ステップS294で点灯させた打ち止め表示LEDの消灯処理を行う。そして、ステップS306に進む。
なお、打ち止め表示LEDの点灯/消灯を示すデータは、
図3中、データBのD4ビットに記憶される。
【0187】
一方、ステップS293においてベットメダルありと判断され、ステップS297に進むと、メインCPU54は、メダル1枚の払出し処理(MS_1MEDAL_PAY )を行う(後述する
図22)。
【0188】
次にステップS298に進み、メインCPU54は、投入枚数を表示するLEDを1減算するように制御する。次のステップS299では、メダルの読み込みを行う(S_PLAYM_READ)。次にステップS300に進み、メダル枚数の減算処理を行う。次のステップS301では、メダル枚数表示の出力要求をセットする。この処理は、1枚のメダルを減算した後のメダル枚数の表示の要求である。次のステップS302では、メインCPU54は、制御コマンドをセットし、次のステップS303でメダル読み込みを行う(S_PLAYM_READ)。このステップS303では、1枚減算後のメダル枚数が読み込まれる。
【0189】
そしてステップS304に進み、メインCPU54は、ステップS293と同様に、ベットメダルの有無を判断する。ベットメダルありと判断されたときはステップS297に戻り、上記と同様に、メダル1枚の払い出し処理を行う。これに対し、ベットメダルなしと判断されたときはステップS305に進み、メインCPU54は、メダル限界フラグをクリアする処理を行う。次にステップS306に進み、メインCPU54は、精算要求時の出力要求をセットする。次のステップS307では、メインCPU54は、制御コマンドをセットする。そして次に、ブロッカ45をオンにする処理(MS_BROCKER_ON )に移行する。
【0190】
図21は、
図20のステップS295における貯留メダルの精算処理(MS_CREDIT_RET )を示すフローチャートである。
図21において、まず、ステップS311では、メインCPU54は、現時点における貯留枚数の読み込み処理(S_CREDIT_READ )を行う。次にステップS312に進み、メインCPU54は、ステップS311で読み込んだ結果に基づいて、貯留メダル、すなわちクレジットの有無を判断する。貯留メダルありと判断したときはステップS313に進み、貯留メダルなしと判断したときは本フローチャートによる処理を終了する。
【0191】
ステップS313では、貯留メダルから、メダル1枚の払出し処理(MS_1MEDAL_PAY :
図22)を行う。次にステップS314に進み、貯留メダル枚数から1枚を減算する処理(MS_CREDIT_DEC )(
図19)を行う。その後、ステップS311に戻る。
【0192】
図22及び
図23は、
図20のステップS297(及び
図21のステップS313)におけるメダル1枚の払出し処理(MS_1MEDAL_PAY )を示すフローチャートである。
図23は、
図22に続くフローチャートである。
図22のステップS321では、メインCPU54は、エラー未検出をセットする。すなわち、初期状態ではエラーを検出していない状態をセットする。次のステップS322では、メインCPU54は、メダル詰まりエラー表示要求をセットする。
【0193】
次にステップS323に進み、メインCPU54は、エラーを検出したか否かを判断する。エラーを検出したと判断したときはステップS324に進んでエラー表示を行う。そしてステップS325に進む。一方、ステップS323でエラーを検出していないと判断したときはステップS325に進む。
ステップS325では、メインCPU54は、メダル払出し装置35の制御時間をセットする。ここでは、制御時間の計時を開始する。次にステップS326に進み、ホッパーモータ36を駆動する。次にステップS327に進み、メインCPU54は、ステップS325でセット後の制御時間の読み込みを行う。
【0194】
そして、次のステップS328において、メインCPU54は、制御時間が所定時間を経過したか否かを判断する。所定時間を経過したと判断したときはステップS331に進み、所定時間を経過していないと判断したときはステップS329に進む。
ステップS331では、ホッパーモータ36の駆動信号をオフにする処理を行う。そして、次のステップS332では、払出しセンサ1の検出時間をセットする。ここでは、検出時間の計時を開始する。次にステップS333に進み、メインCPU54は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS325に進み、オンでないと判断したときはステップS334に進む。
【0195】
ステップS334では、メインCPU54は、払出しセンサ1の検出時間が所定時間を経過したか否かを判断する。所定時間を経過したと判断したとき、すなわち払出しセンサ1信号に係るデータがオンでなく、かつ払出しセンサ1の検出時間が所定時間を経過したときは、メダルが払い出されていないこととなるので、ステップS335に進み、メインCPU54は、メダル空エラーの表示要求をセットする。そしてステップS323に進む。一方、ステップS334において払出しセンサ1の検出時間が所定時間を経過していないと判断したときはステップS333に戻る。
【0196】
ステップS328において制御時間が所定時間を経過していないと判断され、ステップS329に進むと、メインCPU54は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS330に進み、オンでないと判断したときはステップS327に戻る。
【0197】
ステップS330では、払出しセンサ1の検出時間をセットする。この処理は、ステップS332と同様である。次にステップS336に進み、メインCPU54は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときはステップS322に進み、検出していないと判断したときはステップS337に進む。
ステップS337では、メインCPU54は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断されたときはステップS338に進み、オンでないと判断されたときはステップSステップS327に進む。
【0198】
ステップS328では、メインCPU54は、払出しセンサ1及び2信号に係るデータがオンであるか否かを判断する。双方がオンであると判断されたときはステップS339に進み、双方がオンでないと判断されたときはステップS336に戻る。
ステップS339では、メインCPU54は、払出しセンサ2の検出時間をセットする。次に、
図23のステップS340に進み、メインCPU54は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときはステップS322に進み、検出していないと判断したときはステップS341に進む。
【0199】
ステップS341では、メインCPU54は、払出しセンサ2信号に係るデータがオフであるか否かを判断する。払出しセンサ2信号に係るデータがオフでないと判断したときはステップS340に戻り、オフであると判断したときはステップS342に進む。
ステップS342では、メインCPU54は、メダル払出しが無効であるか否かを判断する。無効であると判断したときはステップS327に進み、無効でないと判断したときはステップS343に進む。ステップS343では、メインCPU54は、払出しセンサ1信号に係るデータがオフであるか否かを判断する。オフであると判断したときはステップS344に進み、オフでないと判断したときはステップS340に戻る。
【0200】
ステップS344では、残り払出し数(カウント値)を「−1」(「1」減算)する。次にステップS345に進み、メインCPU54は、メダル払出しを終了したか否かを判断する。メダル払出しを終了したと判断したときはステップS346に進み、終了していないと判断したときは本フローチャートを終了する。ステップS346では、メインCPU54は、ホッパーモータ36の駆動信号をオフにする。そして本フローチャートによる処理を終了する。
【0201】
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、以下のような種々の変形が可能である。
(1)本実施形態では、8ビット1バイトデータ(データ列)として、操作スイッチのデータを記憶したが、これに限らず、個々の操作スイッチのデータをそれぞれ所定の格納領域に記憶するものでもよい。たとえば、本実施形態では、ベットスイッチ40と精算スイッチ46との各信号のデータを1バイト中に記憶し、同時に処理するようにしたが、それぞれ個々に記憶することも可能である。
【0202】
ただし、本実施形態のように、各操作スイッチのデータを1バイトデータとして記憶し、一括して読み取るようにすれば、一度の読み取り処理で全操作スイッチのデータを取得することができ、処理速度の向上や、処理の簡素化を図ることができる。
【0203】
(2)1回の割込み処理において、入力ポートのデータを1回だけ取得して、入力ポートレベルデータ及び入力ポート立ち上がりデータを生成してもよい。
また、1回の割込み処理においてデータを複数回取得し、複数回取得したデータのうち、一部のビットの信号は一致しているが、他の一部のビットの信号は一致していない場合が考えられる。たとえば
図7において、D7ビットの信号は、Cレジスタに記憶したデータ(1回目取得時)とAレジスタに記憶したデータ(2回目取得時)とで、いずれも「1」であり一致する。これに対し、D0ビットの信号は、1回目取得時と2回目取得時とでデータが異なる。
【0204】
このような場合に、一致しているビットの信号については当該割込み処理におけるレベルデータとして記憶するが、一致していないビットの信号については当該割込み処理におけるレベルデータを記憶しないことも可能である。さらに、当該割込み処理において記憶しなかったビットのレベルデータについては、前回の割込み処理におけるそのビットのレベルデータを使用することが挙げられる。
【0205】
(3)本実施形態では、ベット処理(
図20)において、3枚ベット後は、1ベットにすることはできないが、そのようなベット数の変更を可能としてもよい。3枚ベット後、1ベットスイッチ40aが操作されたときは、ベット数を「−2」にする処理を行うとともに、2枚分を貯留枚数に加算するか又は精算処理(払出し)を行うようにすることが挙げられる。
【0206】
(4)本実施形態では、精算スイッチ46に係る立ち上がりデータに基づいて精算処理を開始するように制御した。すなわち、精算スイッチ46が操作されることで精算処理を開始するようにした。
しかし、これに限らず、精算スイッチ46を一定時間操作し続けること(押しっぱなし)により精算処理を開始するようにしてもよい。
たとえば、精算スイッチ46に係るレベルデータが、500回の割込み(≒約1100ms)の間、連続でオンであるときに精算処理を開始することが挙げられる。また、この500回の割込みの間にメダルの投入を検知したときは、メダルの投入処理を実行することが挙げられる。
【0207】
ここで、
図5及び
図6の例では、1回目割込み時と2回目割込み時とで取得したデータが異なる場合には、今回割込み時のデータを「0」とした。一方、
図7の例では、1回目割込み時と2回目割込み時とで取得したデータが異なる場合には、前回割込み時のデータを採用した。
そして、上記のような精算スイッチ46の押しっぱなしを検出する場合には、
図7の方法を採用することが好ましい。精算スイッチ46が押しっぱなしとされた場合には、立ち上がりデータはずっと「1」のままとなるが、その途中でチャタリングやノイズ等によって「0」のデータを稀に単発で取得しても、その場合には前回割込み時のデータを採用することで、立ち上がりデータをずっと「1」にすることができる。これにより、精算スイッチ46の押しっぱなしを正しく検知することができる。
【0208】
(5)実施形態(
図20)では、精算スイッチ46が操作された場合において、ベットメダルを有するときは、ベットメダルを先に精算するように制御している。したがって、ベットメダルと貯留メダルの双方を有する場合において、双方を精算するときは、精算スイッチ46を2回操作する必要がある。
しかし、これに限らず、1回の精算スイッチ46の操作で、ベットメダルと貯留メダルの双方を精算できるように制御してもよい(ただし、リプレイ非作動時に限る)。
【0209】
(6)本実施形態及び上記の各種の変形例は、単独で実施されることに限らず、適宜組み合わせて実施することが可能である。
<付記>
本願の出願当初の請求項に係る発明(当初発明)が解決しようとする課題、当初発明に係る課題を解決するための手段及び当初発明の効果は、以下の通りである。
(a)当初発明が解決しようとする課題
従来の技術において、たとえば遊技者が1ベットスイッチを1回操作したとき、遊技機側では、1ベットスイッチの操作信号が入力されることにより1ベットスイッチの操作が検知される。そして、1ベット処理が行われる。このとき、チャタリングやノイズ等により、再度、遊技者が1ベットスイッチを操作したと誤検知される場合があった。この場合には、再度、1ベット処理が行われる。
このように誤検知されると、1ベットスイッチを1回操作しただけであるのに、1枚のメダルが連続投入される結果、2枚あるいは3枚のベット処理が行われる場合があった。さらに、2枚又は3枚ベット後に、ベット数を変更することができない仕様の遊技機であるときは、遊技者が意図しないベット数で遊技を行わなければならなかった。
当初発明が解決しようとする課題は、ベットスイッチ等の操作スイッチにおいて、チャタリングやノイズ等による誤検知を抑制し、遊技者が意図しない操作が行われることを少なくすることである。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
第1の解決手段(遊技機)は、
遊技媒体(メダル)を貯留する貯留手段(メモリ53、貯留枚数表示装置47b等)と、
遊技者が遊技を進行する上で操作する操作スイッチ(1ベットスイッチ40a、3ベットスイッチ40b、スタートスイッチ41、ストップスイッチ42)と
を備え、
前記操作スイッチとして、前記貯留手段に貯留されている遊技媒体を投入するときに遊技者が操作する操作スイッチであって、遊技媒体の投入数が異なる複数の投入スイッチ(1ベットスイッチ40a、3ベットスイッチ40b)を有し、
前記投入スイッチを含む所定の前記操作スイッチの操作信号が入力される入力ポート(51a)を備え、
遊技の進行に係る情報処理として、
遊技の進行を制御するメイン処理と、
前記メイン処理の実行中に、前記メイン処理とは異なる処理を割込みによって実行する割込み処理と
を有し、
前記割込み処理は、
前記入力ポートに入力された操作信号の取得を1割込み時間内で複数回行うとともに、その取得ごとに、前記操作スイッチのオン/オフを示すレベルデータを生成し、
生成した複数個のレベルデータの値が一致するときは、そのレベルデータを今回の割込み処理におけるレベルデータとして記憶し、
生成した複数個のレベルデータの値が一致しないときは、今回の割込み処理におけるレベルデータを記憶しないようし、
今回の割込み処理におけるレベルデータを記憶しなかったときは、前回の割込み処理におけるレベルデータを用いて処理を実行し、
今回の割込み処理で記憶したレベルデータと、前回の割込み処理で記憶したレベルデータとから、前記操作スイッチのオン/オフの変化を示す立ち上がりデータを生成し、
前記メイン処理は、
生成した立ち上がりデータに基づいていずれかの前記投入スイッチの操作を検知したときは、前記投入スイッチの操作受付けが有効であり、かつ投入可能な遊技媒体が前記貯留手段に貯留されていることを条件として、立ち上がりデータの前記投入スイッチに係るデータをオフにした後、前記貯留手段に貯留されている遊技媒体の投入処理を実行する
ことを特徴とする。
第2の解決手段は、第1の解決手段において、
前記操作スイッチとして、前記貯留手段に貯留されている遊技媒体を返却するときに遊技者が操作する精算スイッチ(46)を備え、
前記入力ポートには、前記精算スイッチの操作信号が入力され、
前記メイン処理は、立ち上がりデータに基づいて前記精算スイッチの操作を検知したときは、前記精算スイッチの操作受付けが有効であり、かつ返却可能な遊技媒体が前記貯留手段に貯留されていることを条件として、前記貯留手段に貯留されている遊技媒体の返却処理を実行する
ことを特徴とする。
第3の解決手段は、第1又は第2の解決手段において、
生成した複数個のレベルデータにおいて、一部の前記操作スイッチに係るレベルデータが一致し、他の前記操作スイッチに係るレベルデータが一致していないときは、一致しているレベルデータは今回の割込み処理におけるレベルデータとして記憶し、一致していないレベルデータは前回の割込み処理におけるレベルデータを記憶する
ことを特徴とする。
当初発明においては、1割込み時間内において、操作スイッチの信号の取得を複数回行い、取得ごとに、操作スイッチのオン/オフを示すレベルデータを生成する。そして、生成した複数個のレベルデータの値が一致するときはその割込み処理におけるレベルデータとして記憶するが、一致しないときはその割込み処理におけるレベルデータを記憶しない。
また、今回の割込み処理におけるレベルデータと、前回の割込み処理におけるレベルデータとから、操作スイッチのオン/オフの変化を示す立ち上がりデータを生成する(今回の割込み処理におけるレベルデータを記憶しなかったときは、前回の割込み処理におけるレベルデータを用いる)。
そして、立ち上がりデータに基づいて、いずれかの投入スイッチの操作を検知したときは、立ち上がりデータの投入スイッチに係るデータをオフにした後、遊技媒体の投入処理を実行する。
(c)当初発明の効果
当初発明によれば、複数個のレベルデータの値が一致したときはその割込み処理におけるレベルデータとして記憶し、一致しないときは今回の割込み処理におけるレベルデータを記憶しないので、ノイズやチャタリング等のデータを除去することができる。
また、割込み処理によって、操作スイッチの操作を意味する立ち上がりデータを生成し、投入(ベット)処理を実行するときは、立ち上がりデータの投入スイッチに係るデータをオフにした後に実行するので、遊技者が意図しない投入が行われることを防止することができる。