以下に、本発明に係る遊技機の一例であるパチスロ機について図面に基づいて説明する。
[パチスロ機の機能フロー]
図1に示したように、遊技機としてのパチスロ機1は、遊技者によりメダルが投入され、スタートレバー6が操作されると、予め定められた数値の範囲(例えば、0〜65535)の乱数から1つの値(以下、乱数値)が抽出される。
内部当籤役決定手段(後述のメインCPU31)は、抽出された乱数値に基づいて抽籤を行い、内部当籤役を決定する。すなわち、内部当籤役決定手段は、スタートスイッチ6S(図7参照)によるスタートレバー6に対する単位遊技の開始操作の検出(所定の開始条件の成立)に基づき、複数の役の中から所定の確率で内部当籤役を決定する。
内部当籤役の決定により、後述の入賞判定ラインに沿って表示を行うことを許可する図柄の組合せが決定される。なお、図柄の組合せの種別としては、メダルの払い出し、再遊技(リプレイ)の作動、ボーナスの作動等といった特典が遊技者に与えられる「入賞」に係るものと、それ以外のいわゆる「ハズレ」に係るものとが設けられている。
続いて、複数のリール3L、3C、3Rの回転が行われた後で、遊技者により停止操作手段としてのストップボタン7L、7C、7Rが押されると、停止制御手段(後述のメインCPU31およびモータ駆動回路39)は、内部当籤役とストップボタン7L、7C、7Rが押されたタイミングとに基づいて、該当するリール3L、3C、3Rの回転を停止する制御を行う。
ここで、パチスロ機1では、基本的に、ストップボタン7L、7C、7Rが押されたときから所定時間(190msecまたは75ms)内に、該当するリール3L、3C、3Rの回転を停止する制御が行われる。本実施の形態では、上記規定時間内でのリール3L、3C、3Rの回転に伴って移動する図柄の数を「滑り駒数」と呼び、その最大数を図柄4個分(最大滑り駒数)に定める。
ただし、MB(第2種特別役物に係る役物連続作動装置)遊技状態では、複数のストップボタンのうち、少なくとも1つのストップボタンが押されたときから規定時間である75ms内に、該当リールの回転を停止する制御が行われる。
停止制御手段は、入賞に係る図柄の組合せの表示を許可する内部当籤役が決定されているときでは、上記規定時間を利用して、その図柄の組合せが入賞判定ラインに沿って極力表示されるようにリール3L、3C、3Rの回転を停止する。
その一方で、内部当籤役によってその表示が許可されていない図柄の組合せについては、上記規定時間を利用して、入賞判定ラインに沿って表示されることがないように最大滑り駒数の範囲でリール3L、3C、3Rの回転を停止する。
特に、停止制御手段は、定速回転中のリール3L、3C、3Rにおいて、更新された図柄位置情報(後述の図柄カウンタ)と決定された停止図柄位置情報(後述の停止予定位置)とが一致した場合にリールの停止制御を行うので、リール3L、3C、3Rの停止制御開始時点まで定速回転を行うことができる。よって、パチスロ機1は、従来どおりの最大滑り駒数を確保して大径のリールの停止制御を行うことができる。
さらに、停止制御手段は、後述のパルスカウンタによりカウントされるパルス数が特定の値となった場合にリール3L、3C、3Rを停止制御するので、リール3L、3C、3Rを正確に停止制御することができる。
こうして、複数のリール3L、3C、3Rの回転が全て停止されると、入賞判定手段(後述のメインCPU31)は、入賞判定ラインに沿って表示された図柄の組合せが、入賞に係るものであるか否かの判定を行う。
すなわち、入賞判定手段は、リール停止制御手段により図柄の変動が停止されたことに基づいて、入賞ライン上に停止した図柄の組合せに基づいて役の成立または不成立を判定する。
入賞に係るものであるとの判定が行われると、メダルの払い出し等の特典が遊技者に与えられる。以上のような一連の流れがパチスロ機1における1回の遊技(単位遊技)として行われる。
また、パチスロ機1では、前述した一連の流れの中で、液晶表示装置5により行う映像の表示、ランプ14により行う光の出力、スピーカ9L、9Rにより行う音の出力、あるいはこれらの組合せを利用して様々な演出が行われる。
遊技者によりスタートレバー6が操作されると、前述の内部当籤役の決定に用いられた乱数値とは別に、演出用の乱数値(以下、演出用乱数値)が抽出される。演出用乱数値が抽出されると、演出内容決定手段(後述のサブCPU81)は、内部当籤役に対応づけられた複数種類の演出内容の中から今回実行するものを抽籤により決定する。
演出内容が決定されると、演出実行手段(後述の液晶表示装置5、後述のスピーカ9L、9R、後述のランプ14)は、リール3L、3C、3Rの回転が開始されるとき、各リール3L、3C、3Rの回転がそれぞれ停止されるとき、入賞の有無の判定が行われたとき等の各契機に連動させて演出の実行を進める。
このように、パチスロ機1では、内部当籤役に対応づけられた演出内容を実行することによって、決定された内部当籤役(言い換えると、狙うべき図柄の組合せ)を知るあるいは予想する機会が遊技者に提供され、遊技者の興味の向上が図られる。
[パチスロの構造]
パチスロ機1の機能フローについての説明は以上である。次に、図2、図3を参照して、本実施の形態におけるパチスロ機1について説明する。
図2は、本実施の形態におけるパチスロ機1の正面図である。図3は、本実施の形態におけるパチスロ機1の斜視図である。
パチスロ機1は、リール3L、3C、3Rや回路基板等を収容する筐体となるキャビネット1aと、キャビネット1aの前面側F(図3におけるF側)に対して開閉可能に取り付けられるフロントドア2とフロントドア2の前面側Fにフロントパネル8とを備える。キャビネット1aの内部には、3つのリール3L、3C、3Rが横並びに設けられている。各リール3L、3C、3Rは、円筒状のフレームの外周面に、複数の図柄が回転方向に沿って連続的に配置された帯状のシートを貼り付けて構成されている。
フロントドア2の中央には、液晶表示装置5が設けられている。液晶表示装置5は、図3に示すように、フロントドア2の前面側Fであって、フロントドア2とフロントパネル8との間に設けられる。液晶表示装置5は、取付枠により、フロントドア2の上側Tの部分に固定される。
また、液晶表示装置5は、図柄表示領域21L、21C、21Rを含む表示画面5aを備え、正面から見て3つのリール3L、3C、3Rに重畳する手前側(図3におけるF側)に位置するように設けられている。図柄表示領域21L、21C、21Rは、3つのリール3L、3C、3Rのそれぞれに対応して設けられており、その背面側R(図2におけるR側)に設けられたリール3L、3C、3Rを透過することが可能な構成を備えている。
つまり、図柄表示領域21L、21C、21Rは、表示窓としての機能を果たすものであり、その背後に設けられたリール3L、3C、3Rの回転およびその停止の動作が遊技者側から視認可能となる。また、本実施の形態では、図柄表示領域21L、21C、21Rを含めた表示画面5aの全体を使って、映像の表示が行われ、演出が実行される。
図柄表示領域21L、21C、21Rは、その背後に設けられたリール3L、3C、3Rの回転が停止されたとき、リール3L、3C、3Rの表面に配された複数種類の図柄のうち、その枠内における上段、中段および下段の各領域にそれぞれ1個の図柄(合計で3個)を表示する。また、各図柄表示領域21L、21C、21Rが有する上段、中段および下段からなる3つの領域のうち予め定められた何れかをそれぞれ組合せてなる擬似的なラインを、入賞か否かの判定を行う対象となるライン(入賞判定ライン)として定義する。
フロントドア2には、遊技者による操作の対象となる各種装置が設けられている。メダル投入口10は、遊技者によって外部から投下されるメダルを受け入れるために設けられる。メダル投入口10に受け入れられたメダルは、所定枚数(例えば3枚)を上限として1回の遊技に投入され、所定枚数を超えた分はパチスロ機1内部に預けることが可能となる(いわゆるクレジット機能)。
ベットボタン11は、パチスロ機1内部に預けられているメダルから1回の遊技に投入する枚数を決定するために設けられる。精算ボタン12は、パチスロ機1内部に預けられているメダルを外部に引き出すために設けられる。
スタートレバー6は、全てのリール3L、3C、3Rの回転を開始するために設けられる。ストップボタン7L、7C、7Rは、3つのリール3L、3C、3Rのそれぞれに対応づけられ、対応するリール3L、3C、3Rの回転を停止するために設けられる。
ランプ(LED等)14は、演出内容に応じた点消灯のパターンにて光を出力する。スピーカ9L、9Rは、演出内容に応じた効果音や楽曲等の音を出力する。メダル払出口15は、排出されるメダルを外部に導く。メダル払出口15から排出されたメダルは、メダル受皿16に貯められる。
[リールユニットの構成]
図4は、各表示窓4L、4C、4Rの内部に設けられたリールユニットの構成を示す斜視図である。図4に示すように、リールユニットは、3枚の取付板80L、80C、80Rと、この各取付板80L、80C、80Rの内側に配置された3個のリール3L、3C、3Rと、リール3L、3C、3Rを個々に回転駆動する3個のモータとしてのステッピングモータ49L、49C、49Rとを備える。
リール3L、3C、3Rは、それぞれ矢印d1方向と矢印d2方向とのいずれの方向へも回転が可能なように駆動制御される。
[リールの側面図]
図5(a)は、リール3L、3C、3Rの右側面を示す図である。
図5(a)に示すように、取付板80(図示せず)には、リール3L、3C、3Rの回転半径r1内に、リール3L、3C、3Rの回転位置を検出するためのリール位置検出回路50(図7参照)が設けられている。
リール3L、3C、3Rは、リール3L、3C、3Rの中心が、取付板80の面から鉛直に向かって延びたリールポスト(図示せず)に回転可能に軸支されている。
リール3L、3C、3Rは、中心から放射状に延びた6本のアーム24と、各アーム24の延長方向の先端がわたるように一体的に形成された筒状部材16とから構成されている。
アーム24の1つには、リール位置検出回路50により検出可能な位置に、基準位置としての検出片28が設けられている。検出片28は、リール3L、3C、3Rが1回転する毎に、リール位置検出回路50を通過するように配置されている。
そして、リール位置検出回路50は、検出片28が通過して検出片28を検出する度に、検出信号を出力可能に形成されている。
筒状部材16の側周縁には、後述する図6に示すシンボルシートが貼られている。シンボルシートは、シンボルマークに、表示された図柄の中央が位置するように、接着などの方法で筒状部材16の外周表面に装着されている。
ステッピングモータ49L、49C、49Rの駆動軸とリール3L、3C、3Rの回転軸との間には、減速伝達機構が配設されている。減速伝達機構は、ステッピングモータ49L、49C、49Rの回転を所定の減速比をもってリール3L、3C、3Rを回転させる回転軸に伝達するものである。
減速伝達機構は、ステッピングモータ49L、49C、49Rの駆動側に設けられた出力側ギヤ26と、出力側ギヤ26に接触するとともに、リール3L、3C、3Rの支持軸と同一の軸心となるようにリール3L、3C、3Rに配設された入力側ギヤ27との2つのギヤを備えている。
図5(b)は、ステッピングモータ49L、49C、49Rの内部構造を示す図である。図5(b)に示すように、ステッピングモータ49L、49C、49Rは、各励磁相が順番に時計回りに配置されている。
ステッピングモータ49L、49C、49R(図7参照)に配置された相1、相2、相3、相4を励磁するパターンを変えて、リール3L、3C、3Rの回転方向を変える。この励磁パターンは、後述するモータ駆動回路39(図7参照)が発生する所定のパルス信号により実現される。
ステッピングモータ49L、49C、49Rは、2相励磁方式を採用している。2相励磁方式とは、例えば、相1−相2、相2−相3、相3−相4、相4−相1の組合せと順序のサイクルで一度に2つの相を順次励磁する方式である。モータ駆動回路39は、ステッピングモータ49L、49C、49Rに供給する1つのパルス信号によって1回の励磁を行う。
ステッピングモータ49L、49C、49Rは、相1−相2、相2−相3、相3−相4、相4−相1のサイクルで各相を励磁されると矢印d4の方向にロータが回転し、相1−相4、相4−相3、相3−相2、相2−相1のサイクルで各相を励磁されると矢印d3の方向にロータが回転する。リール3L、3C、3Rは、ロータが矢印d3の方向に回転すると、出力側ギヤ26から入力側ギヤ27に回転トルクが伝達されて矢印d1の方向に回転し、ロータが矢印d4の方向に回転するとリール3は矢印d2の方向に回転する。
なお、リール3L、3C、3Rの回転の加速は、モータ駆動回路39がステッピングモータ49L、49C、49Rに送信するパルス信号による1回の励磁の時間を、後述する加速時励磁データテーブル(図9参照)の励磁タイマに示すように順次変化させることで行われる。一方、リール3L、3C、3Rの回転の減速は、当該1回の励磁の時間を、後述する停止時励磁データテーブル(図10参照)の励磁タイマに示すように順次変化させることで行われる。
[リールの図柄配列]
図6は、各リール3L、3C、3Rに表された複数種類の図柄が21個配列された図柄列の一例を示している。各図柄には"00"〜"20"のコードナンバーが付され、データテーブルとして後で説明するメインROM32(図7参照)に格納されている。各リール3L、3C、3R上には、「青7」(図柄91)、「赤7」(図柄92)、「BAR」(図柄93)、「ベル」(図柄94)、「スイカ」(図柄95)および「チェリー」(図柄96)、そして「リプレイ」(図柄97)の図柄で構成される図柄列が表されている。
各リール3L、3C、3Rは、図柄列がそれぞれ矢印d1方向とd2方向とのいずれの方向へも移動するように回転駆動される。実施例では、「ベル」(図柄94)、「スイカ」(図柄95)、「チェリー」(図柄96)のそれぞれが有効化された入賞ラインに揃って停止することにより入賞する役を「小役」という。
[パチスロが備える回路の構成]
次に、図7を参照して、本実施の形態におけるパチスロ機1が備える回路の構成について説明する。本実施の形態におけるパチスロ機1は、主制御回路71、副制御回路72およびこれらと電気的に接続する周辺装置(アクチュエータ)を備える。
<主制御回路>
図7は、本実施の形態におけるパチスロ機1の主制御回路71の構成を示す。
(マイクロコンピュータ)
主制御回路71は、回路基板上に設置されたマイクロコンピュータ30を主たる構成要素としている。マイクロコンピュータ30は、CPU(以下、メインCPU)31、ROM(以下、メインROM)32およびRAM(以下、メインRAM)33により構成される。
メインROM32には、メインCPU31により実行される制御プログラム(後述の図12〜図22参照)、データテーブル(後述の図8〜図10参照)、副制御回路72に対して各種制御指令(コマンド)を送信するためのデータ等が記憶されている。メインRAM33には、制御プログラムの実行により決定された各種データを格納する格納領域(後述の図11参照)が設けられる。
(乱数発生器等)
メインCPU31には、クロックパルス発生回路34、分周器35、乱数発生器36およびサンプリング回路37が接続されている。クロックパルス発生回路34および分周器35は、クロックパルスを発生する。メインCPU31は、発生されたクロックパルスに基づいて、制御プログラムを実行する。乱数発生器36は、予め定められた範囲の乱数(例えば、0〜65535)を発生する。サンプリング回路37は、発生された乱数の中から1つの値を抽出する。
(スイッチ等)
マイクロコンピュータ30の入力ポートには、スイッチ等が接続されている。メインCPU31は、スイッチ等の入力を受けて、ステッピングモータ49L、49C、49R等の周辺装置の動作を制御する。停止指令手段としてのストップスイッチ7Sは、3つのストップボタン7L、7C、7Rのそれぞれが遊技者により押されたこと(停止操作)を検出したことに応じて、停止操作がされたことを示す信号を出力する。また、開始指令手段としてのスタートスイッチ6Sは、スタートレバー6が遊技者により操作されたこと(開始操作)を検出したことに応じて、開始操作がされたことを示す信号を出力する。
メダルセンサ42Sは、メダル投入口10に受け入れられたメダルがセレクタ(図示せず)内を通過したことを検出する。また、ベットスイッチ11ASは、ベットボタン11が遊技者により押されたことを検出する。また、精算スイッチ12Sは、精算ボタン12が遊技者により押されたことを検出する。
(周辺装置および回路)
マイクロコンピュータ30により動作が制御される周辺装置としては、ステッピングモータ49L、49C、49R、7セグ表示器13およびホッパー40がある。また、マイクロコンピュータ30の出力ポートには、各周辺装置の動作を制御するための回路が接続されている。
モータ駆動回路39は、各リール3L、3C、3Rに対応して設けられたステッピングモータ49L、49C、49Rの駆動を制御する。リール位置検出回路50は、発光部と受光部とを有する光センサにより、リール3L、3C、3Rが一回転したことを示すリールインデックスを各リール3L、3C、3Rに応じて検出する。
ステッピングモータ49L、49C、49Rは、運動量がパルスの出力数に比例し、回転軸を指定された角度で停止させることが可能な構成を備えている。ステッピングモータ49L、49C、49Rの駆動力は、所定の減速比をもったギアを介してリール3L、3C、3Rに伝達される。ステッピングモータ49L、49C、49Rに対して1回のパルスが出力される毎に、リール3L、3C、3Rは一定の角度で回転する。
メインCPU31は、リールインデックスを検出してからステッピングモータ49L、49C、49Rに対してパルスを出力した回数をカウントすることによって、リール3L、3C、3Rの回転角度(主に、リール3L、3C、3Rが図柄何個分だけ回転したか)を管理し、リール3L、3C、3Rの表面に配された各図柄の位置を管理するようにしている。
表示部駆動回路48は、7セグ表示器13(図2および図3では図示を省略している)の動作を制御する。また、ホッパー駆動回路41は、ホッパー40の動作を制御する。また、払出完了信号回路51は、ホッパー40に設けられたメダル検出部40Sが行うメダルの検出を管理し、ホッパー40から外部に排出されたメダルが払出枚数に達したか否かをチェックする。
ここで、本実施の形態において、メインCPU31は、リール制御手段と、内部当籤役決定手段と、図柄位置特定開始手段と、パルスカウント手段と、図柄位置情報更新手段と、停止図柄位置情報決定手段と、停止制御手段と、信号出力手段とを構成する。また、モータ駆動回路39は、リール制御手段と、パルス出力手段と、回転制御手段と、停止制御手段とを構成する。
[メインROMに記憶されているデータテーブルの構成]
次に、図8〜図10を参照して、メインROM32に記憶されている各種データテーブルの構成について説明する。
[加速時励磁データテーブル]
図8は、加速時励磁データテーブルを示す図である。加速時励磁データテーブルは、リール3L、3C、3Rの回転開始直前から定速に至るまでの間に参照されるテーブルであり、後述する図18のステップS82で参照される。図8によれば、加速時励磁データテーブルは、励磁データインデックスの値に励磁タイマの値および内容が対応付けられている。
励磁タイマの値は、1回の割り込み時間を1単位としている。メインCPU31は、後述する加速準備処理において、リール3L、3C、3Rを安定して回転開始させるために、ステッピングモータ49L、49C、49Rを動作させない「静定ホールド」を192割り込み分の時間行った後、16段階にわたってリール3L、3C、3Rが加速する。
[停止時励磁データテーブル]
図9は、停止時励磁データテーブルを示す図である。停止時励磁データテーブルは、リール3L、3C、3Rが停止してからステッピングモータ49L、49C、49Rの停止が安定するに至るまでの間に参照されるテーブルであり、後述する図20のステップS119および図21のステップS132で参照される。図9によれば、停止時励磁データテーブルは、励磁データインデックスの値に励磁タイマの値および内容が対応付けられている。
励磁タイマの値は、1回の割り込み時間を1単位としている。メインCPU31は、各ステッピングモータ49L、49C、49Rの励磁している励磁相を維持することでステッピングモータ49L、49C、49Rの停止を安定させる停止安定化を、3段階にわたって行う。ここで、3段階目の停止安定化は、各ステッピングモータ49L、49C、49Rの励磁している励磁相を210割り込み分の時間維持する「停止時静定ホールド」の直前の「プレ静定ホールド」となる。
[パルス出力データテーブル]
図10は、パルス出力データテーブルを示す図である。パルス出力データテーブルには、パルスコードカウンタの値に応じて出力するパルスデータの内容が格納され、後述する図16のステップS70で出力される。パルスコードカウンタの値は、後述する図16のステップS69で更新される。
[メインRAMに設けられる格納領域の構成]
メインROM32に記憶されているデータテーブルの内容についての説明は以上である。次に、図11を参照して、メインRAM33に設けられている格納領域の構成について説明する。
[左リール用リール制御データ格納領域]
図11は、左リール用リール制御データ格納領域の構成について示すデータテーブルである。なお、本実施の形態において、メインRAM33は、中リール用リール制御データ格納領域および右リール用リール制御データ格納領域についても同様の構成のデータテーブルであるため、説明を省略する。
図11に示すように、左リール用リール制御データ格納領域は、リール制御情報、励磁タイマ、励磁データインデックス、リールセンサ情報、パルスカウンタ、図柄位置情報としての図柄カウンタ、停止図柄位置情報としての停止予定位置および停止制御位置を格納する領域から構成されている。
リール制御情報は、1バイトからなるデータを格納する。各ビットに対してリール制御情報の各種内容が対応しており、ビットに「1」が立っているとき、該当するリール制御情報の内容が有効となる。リールセンサ情報も同様である。なお、本実施の形態において、停止予定位置のデータ「FFH」は、後述する図17のステップS75で与えられる初期値である。
リールセンサ情報は、後述する定速中処理(図19参照)においてリールインデックスが検出された場合に、センサオンに対応するビット0に「1」が格納され、一度「1」が格納された場合、リールインデックスが検出されなくなってもビット0に「1」が継続して格納される。ビット0は、後述するメインフローチャートの指定格納領域初期化処理(図12のステップS2参照)が実行された場合に「0」が格納される。
[パチスロにおいて実行されるプログラムフロー]
次に、図12〜図22を参照して、第1実施形態における主制御回路71のメインCPU31により実行されるプログラムの内容について説明する。
[主制御回路のメインCPUの制御によるメインフローチャート]
図12は、メインCPU31が実行する主たる処理を示したメインフローチャートである。
最初に、パチスロ機1に電源が投入されると、メインCPU31は、初期化処理を実行する(S1)。この初期化処理では、メインRAM33が正常であるか否かのチェックや入出力ポートの初期化等を行う。
次に、メインCPU31は、指定格納領域初期化処理を実行する(S2)。この指定格納領域初期化処理では、例えば、内部当籤役格納領域や表示役予想格納領域等に格納されているデータをクリアする。
次に、メインCPU31は、メダル受付・スタートチェック処理を実行する(S3)。なお、このメダル受付・スタートチェック処理では、遊技者により遊技可能な枚数のメダルが投入されているかを検出する処理およびスタートレバー6が操作されたかを検出する処理を行う。また、メインCPU31は、前回の単位遊技でリプレイ役に入賞した場合、今回の遊技では、自動的にメダルが投入される。
次に、メインCPU31は、抽籤用乱数値を抽出し、乱数値格納領域に格納する(S4)。次に、メインCPU31は、ステップS4の処理で抽出した抽籤用乱数値を用いて、内部抽籤処理を実行する(S5)。この内部抽籤処理では、例えば、有利な遊技状態に移行させるボーナス役、メダルの払出がなされる小役、再遊技を行い得るリプレイ役等について、抽籤によって1つまたは2つ以上決定される。
次に、メインCPU31は、リール停止初期設定処理を実行する(S6)。このリール停止初期設定処理では、ステップS5で実行された内部抽籤処理の結果(内部当籤役)に基づいて、リール3L、3C、3Rの回転を停止する制御に用いる各種データを設定する。
次に、メインCPU31は、スタートコマンドデータをメインRAM33の通信データ格納領域に格納する(S7)。スタートコマンドデータは、遊技状態、内部当籤役等の情報を含み、後述する割込処理の通信データ送信処理(図14のステップS44)において副制御回路72に送信される。これにより、副制御回路72は、開始操作に応じた処理を行うことができる。
次に、メインCPU31は、遊技時間管理タイマが0であるか否かを判断する(S8)。この判断処理では、前回の遊技開始(前回の単位遊技の開始)から所定時間(例えば、4.1秒)を経過しているか否かが判断される。
メインCPU31は、遊技時間管理タイマが0ではないと判断した場合には(NO)、遊技時間管理タイマが0になるまで待ち時間を消化する(S9)。これにより、メインCPU31は、前回の遊技開始から所定時間が経過した状態で、今回の遊技開始を開始する。
ステップS9の処理を実行した後またはステップS9において遊技時間管理タイマが0であると判断した場合には(YES)は、メインCPU31は、遊技時間管理タイマに初期値をセットする(S10)。これにより、メインCPU31は、今回の遊技開始後、所定時間を経過させた後に次回の遊技を開始することができる。ここで、ステップS8〜ステップS10の処理は、いわゆるウェイト待ちの処理である。
次に、メインCPU31は、メインRAM33のリール制御データ格納領域(図11参照)の励磁タイマ格納領域に初期値「1」を格納するとともに、リール制御情報に格納されている情報を加速準備に更新する(S11)。この処理では、後述するリール制御処理(図15参照)によって停止しているリール3L、3C、3Rを回転させるために、リール制御データ格納領域のリール制御情報の加速準備に対応するビット0を「1」に更新する。
次に、メインCPU31は、リール回転開始コマンドデータをメインRAM33の通信データ格納領域に格納する(S12)。格納されたリール回転開始コマンドは、後述する割込処理の通信データ送信処理において副制御回路72に送信される。
次に、メインCPU31は、引込優先順位格納処理を実行する(S13)。この引込優先順位格納処理では、回転中のリールの各図柄について、ステップS5で決定した内部当籤役等に基づいて、図柄コード格納領域毎に表示され得る役の中で最も優先して引き込む役を決定し、決定した引き込む役に基づく引込優先順位データを引込優先順位データ格納領域に格納する。
次に、メインCPU31は、リール停止制御処理を実行する(S14)。このリール停止制御処理では、ストップボタン7L、7C、7Rが押下された場合に、押下されたストップボタンに対応するリール3L、3C、3Rを停止する。
次に、メインCPU31は、入賞作動検索処理を行う(S15)。この入賞作動検索処理では、全リール3L、3C、3Rが停止した後に、入賞したか否かを判断し、入賞した役に基づきメダルの払出枚数の決定およびリプレイの作動を行う。
次に、メインCPU31は、入賞チェック・メダル払出処理を行う(S16)。この入賞チェック・メダル払出処理では、ステップS15の処理において入賞したと判断された場合に、入賞した役に基づき決定されるメダルの払出枚数分を払い出す。
次に、メインCPU31は、遊技状態移行制御処理を行う(S17)。この遊技状態移行制御処理では、遊技状態の開始条件または終了条件が充足している場合に、遊技状態を移行させる制御を行う。
[リール停止制御処理]
図13は、図12に示したメインフローチャートのステップS14において実行されるリール停止制御処理を示すフローチャートである。
まず、メインCPU31は、有効なストップボタン7L、7C、7Rが押されたか否かを判断する(S21)。この処理は、ストップスイッチ7Sから信号が出力されたか否かを判断する処理である。メインCPU31は、有効なストップボタンが押されていないと判断した場合には(NO)、ステップS21の処理を繰り返し実行する。
一方、メインCPU31は、有効なストップボタンが押されたと判断した場合には(YES)、押されたストップボタンを無効化し(S22)、押されたストップボタンから停止対象リールを決定する(S23)。具体的には、メインCPU31は、押されたストップボタンが左のストップボタン7Lである場合、停止対象リールとして左のリール3Lを決定し、また、押されたストップボタンが中のストップボタン7Cである場合、停止対象リールとして中のリール3Cを決定し、また、押されたストップボタンが右のストップボタン7Rである場合、停止対象リールとして右のリール3Rを決定する。
次に、メインCPU31は、メインRAM33のリール制御データ格納領域(図11参照)に格納されている停止対象リールのリール制御情報を、停止開始待ち状態に更新する(S24)。この停止対象リールのリール制御情報更新処理では、リール制御データ格納領域のリール制御情報の停止開始待ち状態に対応するビット0を「1」に更新する。
次に、メインCPU31は、ポート出力処理を実行する(S25)。このポート出力処理では、ステップS23において決定された停止対象リールがリール3L、3C、3Rのいずれであるかと、遊技者に押されたストップボタン7L、7C、7Rに対応する停止操作信号を外部に出力する。ここで、停止操作信号は、遊技者が有効なストップボタンを押したことを表す信号である。
次に、メインCPU31は、リール制御データ格納領域のパルスカウンタの値が「6」であるか否かを判断する(S26)。
ここで、メインCPU31は、プログラム上、16パルス分ステッピングモータが励磁されることにより、リール3L、3C、3Rの表面に表された図柄が図柄1つ分回転すると判断している。すなわち、メインCPU31は、パルスカウンタの値が「16」から「0」となる毎に、図柄カウンタの値を1加算することで、現在の図柄位置を認識している。
メインCPU31は、パルスカウンタの値が「6」であると判断した場合には(YES)、リール制御データ格納領域の停止開始位置チェックデータに格納されている値を1加算する(S27)。この加算処理では、後述する停止開始待ち処理(図20参照)のステップS114において参照される停止開始位置チェックデータに格納されている値を1加算する。
ステップS27の処理を実行した後またはステップS26においてパルスカウンタが「6」ではないと判断した場合には(NO)、メインCPU31は、パルスカウンタの値が「7」以上であるか否かを判断し(S28)、パルスカウンタの値が「7」未満であると判断した場合(NO)、メインRAM33のリール制御データ格納領域の図柄カウンタの値を補正する(S29)。
ここで、メインCPU31は、ストップボタンが押された時のパルスカウンタの値が「7」以上である場合、そのパルスカウンタの値が属する図柄位置、すなわち、図柄カウンタの値を基準として、最大4駒の範囲で滑り駒数を決定する。
また、メインCPU31は、ストップボタンが押された時のパルスカウンタの値が「7」未満の特定の値(本実施の形態では「6」)である場合、そのパルスカウンタの値が属する図柄位置の次の図柄位置、すなわち、ストップボタンが押された時の図柄カウンタの値を1加算した値を基準として、最大4駒の範囲で滑り駒数を決定する。
つまり、メインCPU31は、ステップS28およびステップS29の処理において、パルスカウンタの値が「7」未満である場合に、図柄カウンタの値を1加算する補正処理を実行する。なお、補正前の図柄カウンタの値が「20」である場合、メインCPU31は、図柄カウンタの値を1加算して「21」とした後に、「0」に補正する。
次に、メインCPU31は、図柄カウンタに基づいて停止開始位置を格納する(S30)。次に、メインCPU31は、リール停止初期設定データおよび引込優先順位データを参照し、内部当籤役および停止位置に基づいて、滑り駒数を決定する(S31)。
次に、メインCPU31は、ステップS31で決定された滑り駒数が最大滑り駒数(4駒)であるか否かを判断する(S32)。メインCPU31は、決定された滑り駒数が最大滑り駒数であると判断した場合(YES)、後述する停止開始待ち処理(図20参照)のステップS114において参照される停止開始位置チェックデータに格納されている値を1加算する。
ステップS23の処理を実行した後またはステップS22において決定された滑り駒数が最大滑り駒数ではないと判断した場合には(NO)、メインCPU31は、リール停止コマンドデータをメインRAM33の通信データ格納領域に格納する(S34)。ここで、リール停止コマンドは、作動ストップボタン等についての情報を含み、後述する割込処理の通信データ送信処理において副制御回路72に送信される。これにより、副制御回路72は、停止操作に応じた処理を行うことができる。
次に、メインCPU31は、停止開始位置および滑り駒数に基づいて、停止予定位置を決定し、リール制御データ格納領域に格納する(S35)。次に、メインCPU31は、有効なストップボタンがあるか否かを判断する(S36)。メインCPU31は、有効なストップボタンがないと判断した場合(NO)、リール停止制御処理を終了する。
一方、有効なストップボタンがあると判断した場合(YES)、メインCPU31は、最後の有効なストップボタンが押された第3停止時でないことから、引込優先順位格納処理を行い(S37)、ステップS21の処理に戻る。
このように、パチスロ機1では、次のリール3L、3C、3Rの回転を停止する処理が行われる前に、未だ回転しているリール3L、3C、3Rの各図柄位置について引込優先順位データを格納する処理が行われる。他方、有効なストップボタンがない場合には、第3停止時であると判断し、リール停止制御処理を終了する。
[メインCPUの制御による割込処理]
図14は、メインCPU31の制御による割込処理を示すフローチャートである。割込処理は、1.1172ミリ秒毎に実行される。
まず、メインCPU31は、レジスタの退避を行う(S41)。次に、メインCPU31は、入力ポートチェック処理を行う(S42)。この入力ポートチェック処理では、マイクロコンピュータ30へ送信される信号の有無を確認する。例えば、メインCPU31は、スタートスイッチ6S、ストップスイッチ7S等のオンエッジ、オフエッジを割込処理毎に格納する。また、メインCPU31は、各種スイッチのオンエッジ、オフエッジの情報を含む入力状態コマンドをメインRAM33の通信データ格納領域に格納する。格納された入力状態コマンドは、後述する割込処理の通信データ送信処理において副制御回路72に送信される。これにより、副制御回路72は、スタートレバー6やストップボタン7L、7C、7Rといった操作手段を用いて各種演出を実行することができる。
次に、メインCPU31は、タイマ更新処理を行う(S43)。次に、メインCPU31は、通信データ送信処理を行う(S44)。この通信データ送信処理では、通信データ格納領域に格納されたコマンドを副制御回路72へ送信する。
次に、メインCPU31は、リール制御処理を行う(S45)。このリール制御処理では、例えば、メインCPU31は、リール3L、3C、3Rの回転を制御する。より詳細には、メインCPU31は、リール3L、3C、3Rの回転を開始する旨の要求、すなわち、開始操作に応じて、リール3L、3C、3Rの回転を開始するとともに、一定の速度でリール3L、3C、3Rが回転するように制御を行う。また、メインCPU31は、停止操作に応じて、停止操作に対応するリール3L、3C、3Rの回転が停止するように制御を行う。
次に、メインCPU31は、ランプ・7SEG駆動処理を行う(S46)。このランプ・7SEG駆動処理では、例えば、メインCPU31は、クレジットされているメダルの数、払出枚数等を各種表示部に表示する。次に、メインCPU31は、レジスタの復帰を行い(S47)、割込処理を終了する。
[リール制御処理]
図15および図16は、メインCPU31の制御による割込処理のステップS45において実行されるリール制御処理を示すフローチャートである。
まず、メインCPU31は、励磁タイマが「0」か否か判断する(S51)。ここで、励磁タイマが0であると判断した場合には(YES)、メインCPU31は、リール制御処理を終了する。一方、励磁タイマが「0」でないと判断した場合には(NO)、メインCPU31は、励磁タイマを1減算する(S52)。
次に、メインCPU31は、励磁タイマが「0」か否か判断する(S53)。ここで、励磁タイマが「0」でないと判断した場合には(NO)、メインCPU31は、リール制御処理を終了する。一方、励磁タイマが「0」であると判断した場合には(YES)、メインCPU31は、リールセンサ情報を抽出し、目的のリールに応じたリールセンサ情報をセットする(S54)。この処理では、メインCPU31は、対象のリールのセンサが有効かどうか、すなわち、対象のリールのリールインデックスが検知されているか否かをチェックする。
次に、メインCPU31は、リール制御情報を取得する(S55)。この処理では、メインRAM33のリール制御データ格納領域に保存されたリール制御情報を取得する。
次に、メインCPU31は、リール制御情報が加速準備か否かを判断する(S56)。この処理では、メインRAM33のリール制御データ格納領域のリール制御情報のうち、加速準備に対応するビット0が「1」であるか否かを判断する。
ここで、リール制御情報が加速準備であると判断した場合には(YES)、メインCPU31は、加速準備処理を実行する(S57)。この加速準備処理では、停止中のリールを回転させるために、回転に必要な各初期データをセットする。
一方、リール制御情報が加速準備でないと判断した場合には(NO)、メインCPU31は、リール制御情報が加速中か否かを判断する(ステップS58)。この処理では、メインRAM33のリール制御データ格納領域のリール制御情報のうち、加速中に対応するビット1が「1」であるか否かを判断する。
ここで、リール制御情報が加速中であると判断した場合には(YES)、メインCPU31は、加速中処理を実行する(S59)。この加速中処理では、停止中のリールを回転させ、リールの回転速度が定速回転する速度になるまで加速させる。
一方、リール制御情報が加速中でないと判断した場合には(NO)、メインCPU31は、リール制御情報が定速中か否かを判断する(S60)。この処理では、メインRAM33のリール制御データ格納領域のリール制御情報のうち、定速中に対応するビット2が「1」であるか否かを判断する。
ここで、リール制御情報が定速中であると判断した場合には(YES)、メインCPU31は、定速中処理を実行する(S61)。この加速中処理では、リールを一定速度で回転させる。
一方、リール制御情報が定速中でないと判断した場合には(NO)、メインCPU31は、リール制御情報が停止開始位置待ちか否かを判断する(S62)。この処理では、メインRAM33のリール制御データ格納領域のリール制御情報のうち、停止開始位置待ちに対応するビット3が「1」であるか否かを判断する。
ここで、リール制御情報が停止開始位置待ちであると判断した場合には(YES)、メインCPU31は、停止開始位置待ち処理を実行する(S63)。この停止開始位置待ち処理では、図柄位置が停止予定位置になった場合に、リールの回転を停止させる。
一方、リール制御情報が停止開始位置待ちでないと判断した場合には(NO)、メインCPU31は、リール制御情報が停止中か否かを判断する(S64)。この処理では、メインRAM33のリール制御データ格納領域のリール制御情報のうち、停止中に対応するビット4が「1」であるか否かを判断する。
ここで、リール制御情報が停止中であると判断した場合には(YES)、メインCPU31は、停止中処理を実行する(S65)。この停止中処理では、ステッピングモータが安定して停止させるために、ステッピングモータの励磁している励磁相を210割り込み時間の間維持する。
一方、リール制御情報が停止中でないと判断した場合には(NO)、メインCPU31は、全相オフ処理を実行する(S66)。この全相オフ処理では、ステップS65で実行される停止中処理(図21参照)により、ステッピングモータを安定して停止させることができることから、ステッピングモータの励磁相を励磁をすべてオフにする。
ステップS57の処理、ステップS59の処理、ステップS61の処理、ステップS63の処理、ステップS65の処理またはステップS66の処理を実行した後、メインCPU31は、ポート出力処理を実行する(S67)。このポート出力処理は、後述する停止状態保持用ポート出力データがある場合には、停止状態保持用ポート出力データを出力し、停止状態保持用ポート出力データがない場合には、ステッピングモータの位相信号を出力することで、リールの回転状態を外部に出力する。ここで、位相信号は、ステッピングモータが現在励磁している励磁相を示す信号である。
次に、メインCPU31は、リール制御情報が全相オフか否かを判断する(S68)。ここで、リール制御情報が全相オフでないと判断した場合には(NO)、メインCPU31は、各励磁出力データに基づいてパルスコードカウンタを更新する(S69)。
ステップS69の処理を実行した後またはリール制御情報が全相オフであると判断された場合(YES)、メインCPU31は、パルスデータを出力し(S70)、リール制御処理を終了する。このパルスデータ出力処理では、パルスコードカウンタの値に応じたパルスデータを出力する。
なお、パチスロ機1の停止性能を検査する回胴式遊技機用試験装置は、リール停止制御処理(図13参照)のステップS25において送信される停止操作信号を受信してから、所定時間(190msまたは75ms)以内に、ステップS67においてステッピングモータの位相信号が出力されなくなるかによって規格が遵守されているか否かを判断する。
[加速準備処理]
図17は、リール制御処理のステップS57において実行される加速準備処理を示すフローチャートである。
まず、メインCPU31は、リール制御情報を加速中に更新する(S71)。この処理では、メインRAM33のリール制御データ格納領域(図11参照)のリール制御情報のうち、加速準備に対応するビット0に「0」を格納するとともに、加速中に対応するビット1に「1」を格納する。
次に、メインCPU31は、励磁データインデックスに0を格納する(S72)。この処理では、メインRAM33のリール制御データ格納領域の励磁データインデックスに「0」を格納する。
次に、メインCPU31は、起動時静定ホールド用の励磁タイマ「192」を格納する(S73)。この処理では、ステッピングモータを安定して回転開始するために、励磁タイマに「192」を格納し、起動時に一定の割り込み時間分ステッピングモータを動かさない起動時静定ホールドを実行させる。
次に、メインCPU31は、パルスカウンタにセンサ通過時のパルスカウンタ値を格納し(S74)、停止予定位置に初期値(FFH)を格納する(S75)。次に、メインCPU31は、起動時ホールド用励磁出力データをセットし(S76)、加速準備処理を終了する。ここで、起動時ホールド用励磁出力データは、ステッピングモータを始動するテンションを付加するデータである。
[加速中処理]
図18は、リール制御処理のステップS59において実行される加速中処理を示すフローチャートである。
まず、メインCPU31は、励磁データインデックスを1加算する(S81)。この処理では、メインRAM33のリール制御データ格納領域(図11参照)に格納されている励磁データインデックスを1加算する。
次に、メインCPU31は、加速時励磁データテーブル(図8参照)を参照し、励磁データインデックスに基づいた励磁タイマを格納する(S82)。この処理では、各励磁データインデックスに基づいた励磁タイマを格納することで、励磁タイマが「0」になるまで励磁データインデックスに基づくステッピングモータの励磁が実行される。
次に、メインCPU31は、励磁データインデックスがエンドコードであるか否かを判断する(S83)。ここで、励磁データインデックスがエンドコードであると判断した場合には(YES)、メインCPU31は、リール制御データ格納領域のリール制御情報を定速中に更新する(S84)。この処理では、リール制御データ格納領域のリール制御情報のうち、加速中に対応するビット1に「0」を格納するとともに、定速中に対応するビット2に「1」を格納する。
ステップS84の処理を実行した後または励磁データインデックスがエンドコードではないと判断した場合には(NO)、メインCPU31は、通常用励磁出力データをセットし(S85)、加速中処理を終了する。ここで、通常用励磁出力データは、ステッピングモータの励磁する励磁相を一定の割り込み時間毎にメインCPU31に変更させるデータである。
[定速中処理]
図19は、リール制御処理のステップS61において実行される定速中処理を示すフローチャートである。
まず、メインCPU31は、定速時用励磁データに基づいて励磁タイマを格納する(S91)。この処理では、定速時用励磁データに基づいて、メインRAM33のリール制御データ格納領域(図11参照)の励磁タイマに「2」を格納する。
次に、メインCPU31は、リールセンサ情報のチェックを行う(S92)。この処理では、対象のリールのリールセンサ情報をチェックし、対象のリールのリールインデックスが検出された場合には、リールセンサ情報のセンサオンに対応するビット0に「1」を格納する。
次に、メインCPU31は、リールセンサ情報が更新され、かつオンであるか否かを判断する(S93)。この処理では、前回のステップS92のチェック処理でリールセンサ情報のセンサオンに対応するビット0が「0」であり、かつ今回のステップS92のチェック処理でビット0が「1」である場合に、リールセンサ情報が更新されたと判断するとともに、ビット0が「1」である場合に、リールセンサ情報がオンであると判断する。
ここで、対象リールのセンサの情報が更新されかつオンであると判断した場合には(YES)、メインCPU31は、リール制御データ格納領域のパルスカウンタにセンサ通過時のパルスカウンタ値を格納する(S94)。
一方、対象リールのセンサの情報が更新されていないまたはオフであると判断した場合には(NO)、メインCPU31は、リール制御データ格納領域のパルスカウンタに格納されている値を1減算し(S95)、パルスカウンタが所定の値としての「0」であるか否かを判断する(S96)。
ここで、パルスカウンタが「0」であると判断した場合には(YES)、リールが図柄1駒分回転していることから、メインCPU31は、リール制御データ格納領域の図柄カウンタに格納されている値を1加算する(S97)。次に、メインCPU31は、図柄カウンタが「21」以上であるか否かを判断する(S98)。
ステップS94の処理を実行した後またはステップS98の処理において図柄カウンタが「21」以上であると判断した場合には(YES)、メインCPU31は、図柄カウンタに初期値「0」を格納する(S99)。この処理では、リールが定速回転を開始し最初にリールインデックスが検出された場合またはリールが1周した場合に図柄カウンタの値を初期値「0」にすることで、メインCPU31にリールの初期位置またはリールが1周したことを認識させる。
ステップS99の処理を実行した後またはステップS98の処理において図柄カウンタが21未満であると判断した場合には(NO)、メインCPU31は、パルスカウンタに初期値「16」を格納する(S100)。この処理では、パルスカウンタに初期値「16」を格納することにより、リールが回転し新たな図柄となったことをメインCPU31に認識させる。
ステップS100の処理を実行した後またはステップS96の処理においてパルスカウンタが「0」ではないと判断した場合には(NO)、メインCPU31は、通常用励磁出力データをセットする(S101)。
次に、メインCPU31は、停止予定位置を取得し(S102)、取得した停止予定位置が初期値「FFH」であるか否かを判断する(S103)。ここで、取得した停止予定位置が初期値「FFH」ではない場合には(NO)、メインCPU31は、リール停止制御処理(図13参照)のステップS35の処理において停止予定位置が決定されていることから、リール制御情報を停止開始位置待ちに更新する(S104)。ステップS104の処理を実行した後またはステップS103の処理において取得した停止予定位置が初期値「FFH」であると判断した場合には(YES)、メインCPU31は、定速中処理を終了する。
[停止開始位置待ち処理]
図20は、リール制御処理のステップS63において実行される停止開始位置待ち処理を示すフローチャートである。
まず、メインCPU31は、定速時用励磁データに基づいて励磁タイマを格納する(S111)。この処理では、定速時用励磁データに基づいて、メインRAM33のリール制御データ格納領域(図11参照)の励磁タイマに「2」を格納する。
次に、メインCPU31は、入賞ライン上に停止させる予定の図柄が停止予定位置にあるか否かを判断する(S112)。この処理では、リール制御データ格納領域の図柄カウンタに格納されている値と、リール停止制御処理(図13参照)のステップS35の処理において決定され、リール制御データ格納領域の停止予定位置に格納されている値とが同じか否かを判断する。
メインCPU31は、入賞ライン上に停止させる予定の図柄が停止予定位置にあると判断した場合には(YES)、リール制御データ格納領域のパルスカウンタに格納されている値が「10」であるか否かを判断する(S113)。
ここで、パルスカウンタに格納されている値が「10」であると判断した場合には(YES)、メインCPU31は、リール制御データ格納領域の停止開始位置チェックデータに格納されている値が「2」であるか否かを判断する(S114)。
一方、パルスカウンタに格納されている値が「10」ではないと判断した場合には(NO)、メインCPU31は、パルスカウンタに格納されている値が「9」であるか否かを判断する(S115)。
ステップS114の処理において停止開始位置チェックデータに格納されている値が「2」であると判断した場合(YES)またはステップS115の処理においてパルスカウンタに格納されている値が「9」であると判断した場合には(YES)、メインCPU31は、リール制御データ格納領域のリール制御情報を停止中に更新する(S116)。この処理では、図柄カウンタに格納された値と停止予定位置に格納された値とが一致し、かつパルス数が停止を開始する停止実行値(本実施の形態では「9」または「10」)となったことから、リール制御情報のうち、停止開始位置待ちに対応するビット3に「0」を格納するとともに、停止中に対応するビット4に「1」に格納し、リールを停止させる。
次に、メインCPU31は、回胴停止信号としての停止状態保持用ポート出力データをオンにする(S117)。この処理では、ステップS114の処理によってリールの回転が停止したことから、ステッピングモータが停止していることを表す停止状態保持用ポート出力データをオンにする。これにより、メインCPU31は、リール制御処理(図15参照)のステップS67において、ステッピングモータの位相信号ではなく停止状態保持用ポート出力データを外部に出力する。なお、停止状態保持用ポート出力データは、後述する停止中処理(図21参照)のステップS137の処理が実行されるまでオン状態が継続するため、停止時における励磁データインデックスがエンドコードとなるまでオン状態が継続する。
次に、メインCPU31は、励磁データインデックスに「17」を格納し(S118)、停止時励磁データテーブル(図9参照)を参照し、励磁データインデックスに基づいた励磁タイマを格納する(S119)。この処理では、励磁データインデックス17に基づいた励磁タイマを格納することで、励磁タイマが「0」になるまで励磁データインデックス17に基づくステッピングモータの励磁が実行される。
次に、メインCPU31は、停止用励磁出力データをセットし(S120)、停止開始位置待ち処理を終了する。ここで、停止用励磁出力データは、ステッピングモータが安定して停止できるようメインCPU31に制御させるデータである。
ステップS112の処理においてリールが停止予定位置にないと判断した場合(NO)、ステップS114の処理において停止開始位置チェックデータに格納されている値が「2」でないと判断した場合(NO)またはステップS115の処理においてパルスカウンタに格納されている値が「9」ではないと判断した場合には(NO)、メインCPU31は、パルスカウンタに格納されている値を1減算し(S121)、パルスカウンタが「0」であるか否かを判断する(S122)。
ここで、パルスカウンタが「0」であると判断した場合には(YES)、リールが図柄1駒分回転していることから、メインCPU31は、図柄カウンタに格納されている値を1加算する(S123)。次に、メインCPU31は、図柄カウンタが「21」以上であるか否かを判断する(S124)。
ここで、ステップS124の処理において図柄カウンタが「21」以上であると判断した場合には(YES)、メインCPU31は、図柄カウンタに初期値「0」を格納する(S125)。この処理では、リールが1周した場合に図柄カウンタの値を初期値「0」にすることで、メインCPU31にリールが1周したことを認識させる。
ステップS125の処理を実行した後またはステップS124の処理において図柄カウンタが「21」未満であると判断した場合には(NO)、メインCPU31は、パルスカウンタに初期値「16」を格納する(S126)。この処理では、パルスカウンタに初期値「16」を格納することにより、リールが回転し新たな図柄となったことをメインCPU31に認識させる。
ステップS126の処理を実行した後またはステップS122の処理においてパルスカウンタが「0」ではないと判断した場合には(NO)、メインCPU31は、通常用励磁出力データをセットし(S127)、停止開始位置待ち処理を終了する。
このように、メインCPU31は、図柄カウンタに格納された値と停止予定位置に格納された値が一致し、かつパルスカウンタに格納されるパルス数が第1の停止開始値(本実施の形態では「9」)となった場合に、リールを停止させる。
また、メインCPU31は、ストップスイッチ7Sからの指令があった場合において、パルスカウンタに格納されている値が特定の値(本実施の形態では「6」)である場合およびメインCPU31が決定した滑り駒数が最大滑り駒数(4駒)である場合に、それぞれ停止開始位置チェックデータに格納されている値を1加算する。すなわち、メインCPU31は、上記2つの条件を満たす場合に、停止開始位置チェックデータに格納される値が「2」になる。
そして、停止開始位置チェックデータに格納されている値が「2」である場合に、メインCPU31は、図柄カウンタに格納された値と停止予定位置に格納された値が一致し、かつパルスカウンタに格納されているパルス数が第1の停止開始値よりも前にカウントされる第2の停止開始値(本実施の形態では「10」)となった場合に、リールを停止させる。
このため、従来のように停止予定位置におけるパルスカウンタの値が所定の停止値であれば、一律に停止制御を行うものと比較して、ストップボタンが押された時のパルスカウンタに格納されているパルス数および現在の図柄位置から停止予定位置までに必要な滑り駒数に応じてリールの停止動作を開始するパルス数を、通常時に停止動作を開始するパルス数よりも前にカウントされるパルス数に変更するため、ストップボタンを押下してから所定時間以内に確実に回転中のリールを停止でき、規格を遵守することができる。
また、メインCPU31は、図柄カウンタに格納された値と停止予定位置に格納された値が一致し、かつパルスカウンタに格納されるパルス数が停止実行値(本実施の形態では「9」または「10」)となった場合に、停止中状態保持用ポート出力データをオンにし、リール制御処理(図15参照)のステップS67において停止中状態保持用ポート出力データを外部に出力する。
このため、従来のようにリールが停止されるべき位置で停止された場合においても、未だステッピングモータの位相信号が外部に出力されているものと比較して、リールの停止に伴いステッピングモータの位相信号の出力が停止されるため、回胴式遊技機用試験装置による検査において、ストップボタンが遊技者に押下されてから所定時間以内にリールが停止していると認識され、リールの停止操作における規格上の制約を遵守することができる。
[停止中処理]
図21は、リール制御処理のステップS65において実行される停止中処理を示すフローチャートである。
まず、メインCPU31は、メインRAM33のリール制御データ格納領域(図11参照)の励磁データインデックスに格納されている値を1加算し(S131)、停止時励磁データテーブル(図9参照)を参照し、励磁データインデックスに基づいた励磁タイマを格納する(S132)。この処理では、各励磁データインデックスに基づいた励磁タイマを格納することで、励磁タイマが「0」になるまで各励磁データインデックスに基づくステッピングモータの励磁が実行される。
次に、メインCPU31は、励磁データインデックスがエンドコードであるか否かを判断する(S133)。ここで、励磁データインデックスがエンドコードであると判断した場合には(YES)、メインCPU31は、停止時静定ホールド用にリール制御データ格納領域の励磁タイマに「210」を格納し(S134)、停止時ホールド用励磁出力データをセットする(S135)。この処理では、ステッピングモータの停止を安定化させるため、210割り込み時間が経過するまでステッピングモータの励磁している励磁相を維持する停止時静定ホールド用励磁出力データをセットする。
次に、メインCPU31は、リール制御データ格納領域のリール制御情報を全相オフに更新する(S136)。この処理では、リール制御情報のうち、停止中に対応するビット4に「0」を格納するとともに、全相オフに対応するビット5に「1」を格納する。
次に、メインCPU31は、停止中状態保持用ポート出力データをオフにし(S137)、停止中処理を終了する。
ステップS133の処理において励磁データインデックスがエンドコードではないと判断した場合には(NO)、メインCPU31は、停止用励磁出力データをセットし(S138)、停止中処理を終了する。
[全相オフ処理]
図22は、リール制御処理のステップS66において実行される全相オフ処理を示すフローチャートである。
まず、メインCPU31は、全相オフ用励磁出力データをセットし(S141)、全相オフ処理を終了する。ここで、全相オフ用励磁出力データは、メインCPU31をステッピングモータの全励磁相を励磁させない状態にするデータである。
以上のように、本実施の形態に係るパチスロ機1は、メインRAM33のリール制御データ格納領域のパルスカウンタに格納されるパルス数が「6」であり、かつメインCPU31が決定する停止させるべき図柄位置が、現在の図柄位置から最大滑り駒数(4駒)必要な場合に、メインCPU31によりカウントされるパルス数が、通常時においてリールの停止を開始する「9」ではなく「10」となった場合に、リールの停止を開始する。
したがって、従来のように停止予定位置におけるパルスカウンタの値が所定の停止値であれば、一律に停止制御を行うものと比較して、各ストップボタン7L、7C、7Rが押された時のパルスカウンタに格納されているパルス数および現在の図柄位置から停止予定位置までに必要な滑り駒数に応じて各リール3L、3C、3Rの停止動作を開始するパルス数を、通常時に停止動作を開始するパルス数よりも前にカウントされるパルス数に変更するため、各ストップボタン7L、7C、7Rを押下してから所定時間以内に確実に回転中の各リール3L、3C、3Rを停止でき、規格を遵守することができる。
また、本実施の形態に係るパチスロ機1は、メインCPU31により更新された図柄カウンタに格納された値と、メインCPU31により決定された停止予定位置に格納された値とが一致し、かつメインCPU31によりカウントされるパルス数が「9」または「10」となった場合に、各ステッピングモータ49L、49C、49Rの位相信号ではなく停止中状態保持用ポート出力データを出力する。
したがって、従来のようにリールが停止されるべき位置で停止された場合においても、未だステッピングモータの位相信号が外部に出力されているものと比較して、各リール3L、3C、3Rの停止に伴い各ステッピングモータ49L、49C、49Rの位相信号の出力が停止されるため、回胴式遊技機用試験装置による検査において、ストップボタン7L、7C、7Rが遊技者に押下されてから所定時間以内に各リール3L、3C、3Rが停止していると認識され、リールの停止操作における規格上の制約を遵守することができる。
なお、本実施の形態において、ステッピングモータ49L、49C、49Rは、2相励磁方式のステッピングモータが採用されているが、これに限らず、例えば、1相励磁方式または1−2相励磁方式のいずれかのステッピングモータであってもよい。
また、本実施の形態において、メインCPU31は、定速中処理(図19参照)および停止開始位置待ち処理(図20参照)において、メインRAM33のリール制御データ格納領域(図11参照)のパルスカウンタに格納された値を減算し、パルスカウンタに格納された値が「0」になった場合に、リール制御データ格納領域の図柄カウンタに格納された値を1加算するが、これに限らず、例えば、パルスカウンタに格納された値を加算し、パルスカウンタに格納された値が「16」になった場合に、図柄カウンタに格納された値を1加算してもよい。また、この場合、第2の停止開始値は、第1の停止開始値よりも少ない値となる。
また、本実施の形態において、メインCPU31は、定速中処理(図19参照)および停止開始位置待ち処理(図20参照)において、リール制御データ格納領域の図柄カウンタに格納された値を加算し、図柄カウンタに格納された値が「21」になった場合に、図柄カウンタに初期値「0」を格納するが、これに限らず、例えば、図柄カウンタに格納された値を減算し、図柄カウンタに格納された値が「−1」になった場合に、図柄カウンタに初期値として「20」を格納してもよい。
本発明に係る遊技機は、上記目的達成のため、複数種類の図柄が外周面に付された複数のリール(3L、3C、3R)と、前記複数のリールを駆動するモータ(ステッピングモータ49L、49C、49R)と、前記複数のリールの回転開始を指令する開始指令手段(スタートスイッチ6S)と、前記複数のリールの回転の停止を指令する停止指令手段(ストップスイッチ7S)と、前記開始指令手段又は前記停止指令手段からの指令に基づいて、前記リールの駆動を制御するリール制御手段(メインCPU31、モータ駆動回路39)とを備えた遊技機であって、前記リール制御手段は、前記モータの励磁相を励磁するためのパルスを出力するパルス出力手段(モータ駆動回路39)と、前記開始指令手段からの指令に基づいて、励磁相を順次励磁することにより、前記複数のリールを回転させる回転制御手段(モータ駆動回路39)と、前記モータの位相信号を外部に出力することで、前記複数のリールの回転状態を外部に出力する信号出力手段(メインCPU31)と、前記回転制御手段により、前記複数のリールが定速に回転されたことに基づいて、前記複数のリールにおける前記図柄の位置の特定を開始する図柄位置特定開始手段(メインCPU31)と、前記図柄位置特定開始手段により、前記図柄の位置の特定が開始されたことに基づいて、前記パルス出力手段により出力されるパルスをカウントするパルスカウント手段(メインCPU31)と、前記パルスカウント手段によりカウントされるパルス数が所定の値となったことに基づいて、図柄位置情報(図柄カウンタ)を更新する図柄位置情報更新手段(メインCPU31)と、前記停止指令手段からの指令があった場合に、現在の図柄位置から所定の図柄数分の移動量(最大滑り駒数)の範囲内で、停止させるべき停止図柄位置情報(停止予定位置)を決定する停止図柄位置情報決定手段(メインCPU31)と、前記図柄位置情報更新手段により更新された図柄位置情報と、前記停止図柄位置情報決定手段により決定された停止図柄位置情報とが一致し、前記パルスカウント手段によりカウントされるパルス数が第1の停止開始値(「9」)となった場合に、前記複数のリールを停止させる停止制御手段(メインCPU31、モータ駆動回路39)とを含み、前記停止指令手段からの指令があった場合において、前記パルスカウント手段によりカウントされるパルス数が特定の値であり、かつ前記停止図柄位置情報決定手段が決定する停止させるべき図柄位置が、現在の図柄位置から所定の図柄数分の移動量が必要な場合に、前記図柄位置情報更新手段により更新された図柄位置情報と、前記停止図柄位置情報決定手段により決定された停止図柄位置情報とが一致し、前記パルスカウント手段によりカウントされるパルス数が第2の停止開始値(「10」)となった場合に、前記複数のリールを停止させ、前記第2の停止開始値は、前記パルスカウント手段によって前記第1の停止開始値よりも前にカウントされるパルス数であり、
前記停止制御手段は、前記停止指令手段からの指令があった場合において、前記パルスカウント手段によりカウントされるパルス数が、特定の値(「6」)を含み、前記特定の値以降にカウントされるパルス数である場合には、前記図柄位置情報の値に1を加算した図柄位置情報を基準にして前記所定の図柄数分の移動量を決定する。
この構成により、本発明に係る遊技機は、図柄位置情報更新手段により更新された図柄位置情報と、停止図柄位置情報決定手段により決定された停止図柄位置情報とが一致し、かつパルスカウント手段によりカウントされるパルス数が停止実行値となった場合に、モータの位相信号ではなく回胴停止信号を出力する。さらに、従来のように停止予定位置におけるパルスカウンタの値が所定の停止値であれば、一律に停止制御を行うものと比較して、ストップボタンが押された時のパルスカウンタに格納されているパルス数および現在の図柄位置から停止予定位置までに必要な滑り駒数に応じてリールの停止動作を開始するパルス数を、通常時に停止動作を開始するパルス数よりも前にカウントされるパルス数に変更するため、ストップボタンを押下してから所定時間以内に確実に回転中のリールを停止でき、規格を遵守することができる。