(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明に係る遊技機の実施の形態について、次の順序で説明する。なお、実施の形態ではスロットマシンを例に挙げる。
<1.回胴遊技機の機構構成>
<2.回胴遊技機の制御構成>
<3.メダル投入に係る構成>
<4.回胴回転に係る構成及び回転リール>
<5.メモリ領域について>
<6.スタート処理>
<7.電源断処理>
<8.電源復帰処理>
<9.設定変更処理>
<10.メイン処理>
[10-1.メイン処理]
[10-2.停止制御処理]
[10-3.入賞メダルの払出処理]
<11.タイマ割込み処理>
[11-1.タイマ割込み処理]
[11-2.LED表示データの作成処理]
[11-3.エラー解除判定処理]
[11-4.メダル投入処理]
[11-5.貯留メダルの精算処理]
[11-6.メダル払出処理]
[11-7.回胴制御処理]
<12.実施の形態のまとめ>
<13.まとめ及び変形例>
【0011】
<1.回胴遊技機の機構構成>
先ず、
図1〜
図4により実施の形態のスロットマシンの外観構成を説明する。
図1はスロットマシンの正面図、
図2Aは平面図、
図2Bは右側面図、
図3は前面パネル2の背面図、
図4は本体ケース1の正面図である。
【0012】
本実施の形態のスロットマシンは、
図2からわかるように、矩形箱状の本体ケース1と、各種の遊技部材を装着した前面パネル2とが、図示しないヒンジ機構を介して連結され、前面パネル2が本体ケース1に対して開閉可能に構成されている。
【0013】
図4に示すように、本体ケース1の略中央には、3つの回転リール(回胴)4a,4b,4cを備える図柄回転ユニット3が配置されている。また、その下側に、メダル払出装置5が配置されている。
各回転リール4a,4b,4cには、後述する各種図柄、例えばBB(ビッグボーナス)やRB(レギュラーボーナス)用の図柄や、各種のフルーツ図柄、リプレイ図柄などが描かれている。
メダル払出装置5は、メダルを貯留するメダルタンク5aを有する。また払出ケース5b内に、
図5で後述する払出モータ75、払出接続基板73、ホッパー基板74、メダル払出センサ76等が収納されている。
メダルタンク5aに貯留されたメダルは、払出モータ75の回転に基づいて、払出口5cから図面手前方向に向けて導出される。なお、限界量を越えて貯留されたメダルは、超過メダル導出部5dを通して、補助タンク6に落下するよう構成されている。
補助タンク6に対しては、該補助タンク6における貯留メダルが限界量に達したことを検出するためのオーバーフローセンサが設けられている。
【0014】
メダル払出装置5に隣接して電源基板41が配置される。また、図柄回転ユニット3の上方に主制御基板40が配置され、主制御基板40に隣接して回胴設定基板71が配置されている。
また図柄回転ユニット3の内部には、
図5に示す回胴LED(Light Emitting Diode)中継基板56と回胴中継基板53とが設けられ、図柄回転ユニット3に隣接して外部集中端子板70が配置されている。
【0015】
さらに、本体ケース1においては、図柄回転ユニット3の側方に前面パネル2の開放(ドアの開放)を検知するためのドア開放センサ35が設けられている。
【0016】
図1に示すように、前面パネル2の上部にはLCD(Liquid Crystal Display)ユニット7が配置されている。このLCDユニット7には、遊技動作を盛り上げるためなどに各種のキャラクタが表示される。
またLCDユニット7の下部には、回転リール4a,4b,4cを表出させる表示窓8が形成されている。この表示窓8を通しては、各回転リール4a,4b,4cの回転方向に、各々3個程度の図柄が見えるようにされている。そして、例えば、合計9個の図柄の水平方向の二本(又は三本)と、対角線方向の二本が仮想的な停止ラインとなる。
【0017】
なお、図柄回転ユニット3の内部には、回転リール4a,4b,4cが停止した状態において視認される9個の図柄それぞれを内側から照射可能な位置に回胴用LEDが配置されている(不図示)。それぞれの回胴用LEDはそれぞれの回転リール4の回転状態や停止状態、或いは各種演出に応じて点灯・消灯される。
【0018】
表示窓8の下方には、遊技状態を示すLED群9や、遊技成果として払出されるメダル数を表示する払出表示部10や、貯留数表示部11が設けられている。
LED群9は、例えば、当ゲームに投入されたメダルの枚数を示すLEDや再遊技状態を示すLED、回胴を回転させる準備が整ったことを示すLED(当ゲームの遊技に要する所定枚数のメダルの投入が完了したことを示すLED:いわゆるスタートランプ)、メダルの投入の受付状態を示すLEDなどで構成されている。
払出表示部10は、7セグメントLEDを2個連設して構成されており、払出メダル数を特定すると共に、何らかの異常事態の発生時には、異常内容を表示するエラー表示器としても機能する。
貯留数表示部11は、クレジットとして貯留されているメダルの数が表示されている。
【0019】
表示窓8の上方、左、右には、LED演出部15a,15b,15cが設けられている。LED演出部15a,15b,15cは、所定の絵柄、意匠が施され、内側に配置されたLEDによって光による演出が実行されるように構成されている。LED演出部15a,15b,15cで実行される演出は、例えば、BBやRBに当選したことを示す演出や、AT(アシストタイム)やART(アシストリプレイタイム)等の状態を示す演出、AT中やART中のアシスト演出等である。
なお、個々の説明は省略するが、前面パネル2には、演出や動作状態を提示するためのLEDとして他のLEDが各種配置されている。
【0020】
前面パネル2の中央右側には、メダルを投入するメダル投入口12が設けられ、これに近接して、メダル投入口12に詰まったメダルを返却させるための返却ボタン13が設けられている。返却ボタン13の右側には、専用のキーを差し込むための鍵穴が設けられている。前面パネル2が本体ケース1に対して閉じた状態において、鍵穴に差し込まれたキーを右へ回すことにより前面パネル2が解錠され(以下「解錠動作」と表記)、前面パネル2の本体ケース1に対する開閉が可能となる。また、鍵穴に差し込まれたキーを左へ回すことにより、打ち止めやエラーによる遊技の中止状態が解除される(以下「中止解除動作」と表記)。
また、前面パネル2の中央左側には、クレジット状態のメダル(クレジットとして貯留されているメダル)を払出すクレジット精算ボタン14と、クレジット状態のメダルを擬似的に3枚投入するマックスベットボタン16とが設けられている。
【0021】
また、前面パネル2には、回転リール4a,4b,4cの回転を開始させるためのスタートレバー17と、回転中の回転リール4a,4b,4cを停止させるための停止ボタン18a,18b,18cが設けられている。
遊技者がスタートレバー17を操作すると、通常は、3つの回転リール4a,4b,4cが正方向に回転を開始する。但し、内部当選状態を予告するリール演出のために、回転リール4a,4b,4cの全部又は一部が、変則的に回転(いわゆる「演出回転」)した上で正方向の回転を開始する場合もある。
リール演出としては具体的内容が各種考えられ、例えば、
・極めてゆっくり正方向に回転(正回転)して静止するスロー演出
・正回転と逆回転を繰り返した後に、所定時間だけ逆回転して静止する逆回転演出
・第1の所定時間だけ正回転と逆回転を繰り返した後に静止する第1の揺動演出
・第2の所定時間だけ正回転と逆回転を繰り返した後に静止する第2の揺動演出
・第2の所定時間だけ正回転と逆回転を繰り返した後に静止し、さらに、極めてゆっくり正回転した後に静止するスロー揺動演出
・第2の時間だけ正回転と逆回転を繰り返した後に静止し、さらに、所定時間だけ逆回転した後に静止する揺動逆回転演出
・所定速度で正回転又は逆回転した後に所定の図柄に揃えて静止する演出
などが用意されている。そして、このようなリール演出時には、LCDユニット7におけるキャラクタ演出や、LEDランプを点滅させるランプ演出や、スピーカを駆動する音声演出の全部又は一部が適宜に選択されて実行される。
【0022】
前面パネル2の下方には、メダルを蓄える横長の受け皿19と、払出装置5の払出口5cに連通するメダル排出口20とが設けられている。
また前面パネル2の上方左右、及び下方左右にはスピーカ30a,30b,30c,30dが配置されている。
【0023】
図3に示すように、前面パネル2の裏側は、
図1で示したメダル投入口12に投入されたメダルの選別を行うメダルセレクタ21と、メダルセレクタ21により不適正と判別されたメダルをメダル排出口20に案内する返却通路22とが設けられている。
また、前面パネル2の裏側上部には、基板ケース23が配置されている。この基板ケース23には、
図5で述べる演出制御基板42、演出インターフェース基板43、液晶制御基板44、液晶インターフェース基板45などが収容されている。
またメダルセレクタ21の側方には、
図1に示す各種の遊技部材と主制御基板40との間の信号を中継する遊技中継基板60(
図5で後述する)が設けられている。
【0024】
本実施の形態のスロットマシンにおいては、メダル投入口12を介したメダルの投入、又はマックスベットボタン16の操作により賭数の設定が可能とされる。スロットマシンでは、1ゲームに対して所定数の賭数(本例では回転リール4の数と同数の「3」)を設定することによりゲームが開始可能となると共に、表示態様を変化させることが可能な可変表示装置(本例では図柄回転ユニット3)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされている。
【0025】
<2.回胴遊技機の制御構成>
次に本実施の形態のスロットマシンの制御系の構成について説明する。
図5は、スロットマシンの内部の制御構成の概略的なブロック図である。本実施の形態のスロットマシンは、その制御構成が主制御基板40を中心に構成されている。
主制御基板40は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を備えたマイクロコンピュータやインターフェースのための回路等が搭載され、スロットマシンの遊技動作全般に係る統括的な制御を行う。例えば主制御基板40が回転リール4a,4b,4cを含む各種の遊技部材の動作を制御するとともに、動作状況を把握する。また遊技動作に応じて演出を実行させる。
主制御基板40は、電源基板41、演出インターフェース基板43、回胴中継基板53、遊技中継基板60、外部集中端子板70、回胴設定基板71、払出接続基板73との間で各種信号(コマンドや検出信号等)のやりとりを行う。
【0026】
電源基板41は、AC24Vを受けて、これを整流・平滑して直流電圧を得る。そして電源基板41はコンバータ回路を備えて各部に必要な電源電圧を生成する。図では主制御基板40を介して各部に与えられる主制御電源電圧V1、及び演出インターフェース基板43を介して各部に与えられる演出制御電源電圧V2を示している。
また電源基板41には電源遮断状態を検出する電源監視回路や、主制御基板40にバックアップ電源電圧を供給するバックアップ電源回路なども設けられている。
【0027】
演出制御基板42は、CPU、ROM、RAM等を備えたマイクロコンピュータやインターフェースのための回路等が搭載され、スロットマシンの演出動作に関する制御を行う。
演出制御基板42は、演出インターフェース基板43を介して主制御基板40からのコマンドを受け取る。例えば主制御基板40は、演出制御基板42に対して、スピーカ30(30a〜30d)による音演出、LEDランプや冷陰極線管放電管によるランプ演出、LCDユニット7による図柄演出を実現するための制御コマンドを出力し、演出制御基板42はその制御コマンドに応じた演出制御処理を行う。
また演出制御基板42では、主制御基板40から内部抽選結果を特定する制御コマンド(遊技開始コマンド)受けると、内部抽選結果に対応してアシストタイム当選状態とするか否かのAT抽選を実行する。
なお、演出制御基板42においてAT抽選に当選した後の所定回数のゲーム(AT中)では、小役当選状態において、その図柄を停止ラインに整列できるよう、3つの回転リール4の停止順序を遊技者に報知している。
また演出制御基板42は、主制御基板40からのリール演出実行を示す制御コマンドを受けると、主制御基板40で実行するリール演出に対応する演出動作を開始する。
これらのような演出制御動作のため、演出制御基板42は、演出インターフェース基板43を通して各部と必要な通信を行う。
【0028】
演出制御基板42は、演出インターフェース基板43、及び液晶インターフェース基板45を介して液晶制御基板44に接続されている。
液晶制御基板44は、LCDユニット7における画像表示による演出の制御を行う。この液晶制御基板44には、VDP(Video Display Processor)、画像ROM、VRAM(Video RAM)、液晶制御CPU、液晶制御ROM、液晶制御RAM等が搭載される。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う。
画像ROMには、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されている。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域とされる。
液晶制御CPUは、VDPが表示制御を行うために必要な制御データを出力する。
液晶制御ROMには、液晶制御CPUの表示制御動作手順を記述したプログラムやその表示制御に必要な種々のデータが格納される。
液晶制御RAMは、ワークエリアやバッファメモリとして機能する。
このような液晶制御基板44は、演出制御基板42からの表示演出に関するコマンドを受け付け、それに応じて表示駆動信号を生成する。そして液晶インターフェース基板45を介してLCDユニット7に表示駆動信号を供給し、画像表示を実行させる。
【0029】
また、演出制御基板42は、演出インターフェース基板43を介してスピーカ中継基板47を制御し、スピーカ30a〜30dを用いた音演出を実行させる。
また演出制御基板42は、演出インターフェース基板43を介して、LED基板48や回胴LED中継基板56を経由して各種のLEDによるランプ演出を実現している。
LED基板48には、例えば
図1に示したLED演出部15a,15b,15cとしてのLEDが配置されている。
回胴LED中継基板56は、第1回胴LED基板50a、第2回胴LED基板50b、第3回胴LED基板50cについて演出制御基板42からのLED駆動信号を中継する。
第1回胴LED基板50aには、回転リール4aの図柄を内側から照射する回胴用LEDが配置されている。第2回胴LED基板50bには、回転リール4bの図柄を内側から照射する回胴用LEDが配置されている。また、第3回胴LED基板50cには、回転リール4cの図柄を内側から照射する回胴用LEDが配置されている。
【0030】
主制御基板40は、遊技中継基板60を介して、
図5のようにスロットマシンの各種遊技部材に接続されている。
遊技表示基板61は、遊技状態を示すLED群9や、7セグメントLEDを有した払出表示部10や、同じく7セグメントLEDを有した貯留数表示部11を搭載している。主制御基板40は、遊技表示基板61に対して、遊技中継基板60を介して制御コマンドを送信し、遊技状態に応じた表示を実行させるように制御している。
【0031】
始動スイッチ基板62には、スタートレバー17の操作に応じてONされる始動スイッチが搭載されている。
停止スイッチ基板63には停止ボタン18a、18b、18cの操作に応じてそれぞれONされる停止スイッチが搭載されている。また、図示は省略したが、本例の停止スイッチ基板63には、停止ボタン18a、18b、18cのそれぞれに対して設けられ、対応する停止ボタン18を発光させるための停止ボタンLEDも搭載されている。
貯留メダル投入スイッチ基板64には、マックスベットボタン16の操作に応じてONされる投入スイッチが搭載されている。また、図示は省略したが、本例の貯留メダル投入スイッチ基板64には、マックスベットボタン16を発光させるためのマックスベットLEDも搭載されている。
精算スイッチ基板65には清算ボタン14の操作に応じてONされる清算スイッチが搭載されている。
主制御基板40は、これらの基板(61,62,63,64,65)のスイッチによる遊技者操作の検出信号を、遊技中継基板60を介して受信する。
【0032】
ドアセンサ66は、前面パネル2の前述した鍵穴に対して設けられたセンサである。ドアセンサ66によって、前述した遊技の中止解除動作を認識可能とされている。
セレクタセンサ67及び投入メダル関連センサ68は、メダル投入口12から投入されたメダルを検出するために設けられている。これらセレクタセンサ67及び投入メダル関連センサ68については後に改めて説明する。
主制御基板40は、これらのセンサ(66,67,68)の検出信号を、遊技中継基板60を介して受信する。さらに、主制御基板40は、受信したセンサの検出信号により投入されたメダルの投入時間や通過方向を検出し、所定の規定に合致した場合にのみ投入メダルとして受け付け、それ以外の場合には投入メダルエラーとして処理する。
ブロッカーソレノイド69は、不正メダルの通過を阻止するブロッカーをON/OFFに駆動する。主制御基板40は、遊技中継基板60を介してブロッカーソレノイド69を制御する。
【0033】
また、主制御基板40は、回胴中継基板53を経由して、回転リール4a,4b,4cを回転させる3つのステッピングモータ54(第1回胴ステッピングモータ54a、第2回胴ステッピングモータ54b、第3回胴ステッピングモータ54c)と接続されている。
さらに主制御基板40は、回胴中継基板53を経由して、回転リール4a,4b,4cの原点位置(後述する原点位置101)を検出するための3つのインデックスセンサ55(第1回胴インデックスセンサ55a、第2回胴インデックスセンサ55b、第3回胴インデックスセンサ55c)に接続されている。
主制御基板40は、ステッピングモータ54a,54b,54cを駆動又は停止させることによって、回転リール4a,4b,4cの回転動作と、目的位置での停止動作を実現している。また主制御基板40は、インデックスセンサ55a,55b,55cの検出信号に基づき、回転リール4a,4b,4cの原点位置を検知できる。
【0034】
また、主制御基板40は、払出接続基板73を介してメダル払出のための装置部にも接続されている。メダル払出のための装置部として、メダル払出制御を行うホッパー基板74と、払出モータ75と、メダル払出センサ76が設けられている。
ホッパー基板74は、主制御基板40からの制御コマンドに基づいて払出モータ75を回転させて、所定量のメダルを払出しする。
メダル払出センサ76は、払出メダルの通過を検出する。メダル払出センサ76による検出信号は、払出メダル枚数が不足したり払出動作が行われないなどの払出異常状態の検出に用いられる。
【0035】
また主制御基板40は、外部集中端子板70に接続されている。外部集中端子板70は、例えばホールコンピュータに接続されており、主制御基板40は、外部集中端子板70を通して、メダルの投入枚数やメダルの払出枚数などをホールコンピュータに出力している。
【0036】
また主制御基板40は、回胴設定基板71にも接続されている。回胴設定基板71に対しては設定キーの操作に応じてON/OFFされる設定キースイッチ72aとリセットボタンの操作に応じてON/OFFされるリセットスイッチ72bとが設けられている。回胴設定基板71は、係員が上記の設定キーやリセットボタンを用いて設定した設定値vdを示す信号などを出力している。
ここで、設定値vdとは、当該スロットマシンで実行される抽選処理の当選確率、換言すれば、遊技者に有利な遊技状態に当選させるか否かの確率についての段階を表す値であり、遊技ホールの営業戦略に基づいて適宜に設定される。本例では、当選確率の段階は6段階とされ、設定値vdとしては設定「1」〜設定「6」までの6段階のうち任意の段階を表す値を設定可能とされている。この際、設定値vd自体の値としては、「0」〜「5」が割り当てられる。
本例では、設定「1」〜設定「6」の順で当選確率が高くされている。
【0037】
ホールの係員等は、所定の操作により設定値vdの変更を行うことができる。具体的に、設定値vdの変更を行うにあたっては、先ず、前面パネル2を開放し、設定キースイッチ72aをONにしたまま(本例では設定キーを右に回したまま)で電源をONにする。すると、回胴設定基板71に対して設けられた表示器に現在設定されている段階を表す設定の値(「1」〜「6」の何れか)が表示され、この状態でリセットボタンを押す(リセットスイッチ72bがONとなる)ごとに表示値が+1される(表示値「6」の次は「1」に戻る)。さらに、このようなリセットボタンによる値の選択後、スタートレバー17を操作することで、設定値vdが選択した値に応じた値に確定され、その後、設定キースイッチ72aをOFFする(本例では設定キーを左に回す)ことで、設定値vdの変更が終了する。
【0038】
続いて、
図6で主制御基板40の回路構成を説明する。
図示の通り、主制御基板40は、ワンチップマイコンによるコントローラ80と、8ビットパラレルデータを入出力するI/Oポート回路83と、カウンタ回路81と、各部とのインターフェース部を有して構成されている。
【0039】
コントローラ80は、CPU80a、ROM80b、RAM80cの他、割込コントローラ80dやCTC(Counter/Timer Circuit) 80e等を内蔵している。
CTC80eは、8ビットのカウンタやタイマを集積した回路であり、CPU80aの処理における周期的割り込みや一定周期のパルス出力作成機能(ビットレートジェネレータ)、時間計測の機能を付与するものである。本例では、CTC80eを利用して、CPU80aに1.49ms(ミリ秒)の時間間隔でタイマ割込みをかけている。
【0040】
カウンタ回路81はハードウェア的に乱数値を生成する回路である。コントローラ80(CPU80a)はカウンタ回路81で生成された乱数値を利用して抽選処理を行う。
【0041】
主制御基板40には、コントローラ80と
図5に示した各基板等とのインターフェースが設けられる。
電源インターフェース82は電源基板41の電源回路との間のインターフェースである。
遊技インターフェース84は遊技中継基板60との間のインターフェースである。コントローラ80は、遊技インターフェース84を介して各種スイッチ、センサの検出信号の入力や、LED制御、ブロッカーソレノイド制御のためのコマンド送信を行う。
回胴モータ駆動部85は回胴中継基板53との間のインターフェースである。コントローラ80は、回胴モータ駆動部85によりステッピングモータ54a,54b,54cに対するモータ駆動信号(後述する励磁データφ1〜φ4)の出力を行うと共に、回胴モータ駆動部85を経由して入力されるインデックスセンサ55a,55b,55cからの検出信号を取得する。
演出制御インターフェース86は、コントローラ80が演出インターフェース基板43を介して演出制御基板42へのコマンド送信を行うためのインターフェースである。具体的には例えば8ビットパラレルポートである。
払出接続インターフェース87は払出接続基板73とのインターフェースである。
【0042】
外部インターフェース88は、外部集中端子板70を介したホールコンピュータとのインターフェースである。
回胴設定インターフェース89は、回胴設定基板71との間のインターフェースである。
【0043】
<3.メダル投入に係る構成>
続いて、
図7乃至
図9を参照して、メダル投入に係る構成について説明する。
図7A及び
図8Aは、本実施の形態のスロットマシンに設けられたメダルセレクタ21の構造を示す断面図、
図7Bは
図7AのA−A断面図、
図8Bは
図8AのB−B断面図である。
【0044】
図7Aに示すように、メダルセレクタ21には、メダル投入口12から投入されたメダルが流下する投入流路21a及び投入流路21aを流下したメダルをメダルタンク5aへ案内する取込側流路21bが形成されている。また、
図7A、
図7Bに示すように、投入流路21aの下方には、前述したブロッカーソレノイド69の励磁により軸21daを支点として揺動する流路切替板21d及び投入流路21aから落下したメダルをメダル排出口20に案内する排出側流路21cが設けられている。
【0045】
流路切替板21dは、ブロッカーソレノイド69が励磁されていない状態において、
図7A、
図7Bに示すように、その上端部21dbがメダルセレクタ21本体に設けられた凹部21e内に収容された状態とされ、投入流路21aと排出側流路21cとが連通した状態となるため、投入流路21aを流下するメダルは排出側流路21cに落下してメダル排出口20より排出される。
また、流路切替板21dは、ブロッカーソレノイド69が励磁された状態において、
図8A、
図8Bに示すように、流路切替板21dの上部が軸21daを支点として図中左方向(矢印方向)に揺動することで、流路切替板21dの上端部21dbが凹部21eより突出した状態となるため、投入流路21aを流下するメダルは流路切替板21dの上端部21dbに沿って取込側流路21b内に流下し、メダルタンク5aに案内される。
【0046】
また、取込側流路21bには、
図8Aに示すように、取込側流路21bを流下するメダルの通過を検出するための第1投入メダルセンサ68a、第2投入メダルセンサ68bが設けられている。これら第1投入メダルセンサ68a、第2投入メダルセンサ68bは、前述した投入メダル関連センサ68(
図5参照)として設けられたものである。
図のように第1投入メダルセンサ68aは、取込側流路21bにおいて第2投入メダルセンサ68bよりも上流側に設けられ、取込側流路21bを流下する円盤状のメダルの通過を第1投入メダルセンサ68a→第2投入メダルセンサ68bの順で検出することが可能とされている。
これら第1投入メダルセンサ68a、第2投入メダルセンサ68bは、1枚のメダルの通過時において、第1投入メダルセンサ68aのみがON、第1投入メダルセンサ68a及び第2投入メダルセンサ68bの双方がON、第2投入メダルセンサ68bのみがONの順で状態が遷移するように近接配置されている。
また、第1投入メダルセンサ68a及び第2投入メダルセンサ68bは、メダルの端部(本例ではメダル上端部)を検出するように配置されているため、メダルを連続投入した場合は、1枚目のメダルが第2投入メダルセンサ68bを通過して該第2投入メダルセンサ68bがOFFとなった後に、後続のメダルが第1投入メダルセンサ68aを通過して該第1投入メダルセンサ68aがONとなるようにされており、これにより連続投入された個々のメダルを確実に検出することが可能とされている。
【0047】
図9は、これら第1投入メダルセンサ68a、第2投入メダルセンサ68bを含む、メダル投入口12からメダルタンク5aまでの流下経路に設けられたメダル検出に係る各種のセンサを模式的に示している。
図7、
図8では図示を省略したが、メダルセレクタ21における投入流路21aには、セレクタセンサ67が設けられている。また、メダルセレクタ21における取込側流路21dとメダルタンク5aとを連通するメダルの流下経路には、前述の投入メダル関連センサ68の一つとして通過後センサ68cが設けられている。
【0048】
これらセレクタセンサ67、通過後センサ68c、及び第1投入メダルセンサ68a、第2投入メダルセンサ68bは、例えばフォトセンサで構成され、それぞれ投光部と受光部とを備え、投光部と受光部との間をメダルが通過した際の投光部からの光の遮断を受光部が検知することでメダルの通過が検出される。
なお、以下の説明においては、第1投入メダルセンサ68a、第2投入メダルセンサ68bについてはそれぞれ「センサ1」「センサ2」と表記することもある。
【0049】
<4.回胴回転に係る構成及び回転リール>
回転リール4を回転させるための構成及び回転リール4に形成された図柄とステップ位置との関係について
図10乃至
図12を参照して説明する。
図10は、回転リール4a、4b、4cに対する原点検出に係る構成についての説明図である。原点検出とは、各回転リール4a、4b、4cに設けられた特定の位置、すなわち、原点位置101の検出である。
なお、原点検出に係る構成は、回転リール4a〜4cのそれぞれについて同様であるため、ここでは代表して一つの回転リール(回転リール4と表記)のみを図示している。
図10Aは原点検出に係る構成を斜視図により示し、
図10Bは回転リール4に形成された被検出部410dと原点位置101との関係を概略断面図により示している。
【0050】
図10Aには、回転リール4を回転駆動するステッピングモータ54が備えるロータ54rの中心軸(「回転軸Ra」と表記)を一点鎖線により示している。回転リール4には、回転軸Raの軸周りに回転駆動されるリールドラム401と、リールドラム401の内側に配置されたバックライト部402と、リールドラム401を直接的又は間接的に支持するベース体403とを備えている。
【0051】
ベース体403は、例えば合成樹脂で構成され、略板状に形成されたベース板403bと、ベース板403bから回転軸Raに沿った方向に突出する突出部403tを有している。ベース板403bは、リールドラム401の左右方向の一方側(ここでは右側)に沿って配置されている。ステッピングモータ54は、ロータ54r(回転軸Ra)を左右方向の一方側(ここでは左側)に向けた状態で、ベース体403の一面側(ここでは左面側)に固定されている。
この場合、突出部403tは、ベース板403bから左側方向に突出している。
【0052】
リールドラム401は、二つのリールフレーム410,411と、これらリールフレーム410,411の外周に円筒状に装着される帯状のリールシート420とを有して構成されている。リールフレーム410,411は、例えば光透過性を有しないか又は光透過率が極めて低い黒色の合成樹脂製で構成されており、それぞれ外周部がリム部410r、411rとして形成されている。リールフレーム410のリム部410r、リールフレーム411のリム部411rは、それぞれリールシート420の左右の縁部に沿う円環状に形成されている。
リールフレーム410は、ステッピングモータ54のロータ54rに着脱自在に固定されたハブ部410hと、リム部410rとハブ部410hとの間を半径方向に連結する複数のスポーク部410sとを有している。
【0053】
ここで、本例の場合、リールフレーム411は、リールフレーム410に対して直接的には連結されておらず、リールフレーム411のリム部411rはリールシート420を介してリールフレーム410のリム部410rに支持されている(勿論、リム部411rとリム部410rとの間を周方向の1又は複数箇所で例えば一体に連結することもできる)。
【0054】
リールシート420は、例えば無色透明の合成樹脂製シートにより一定幅の帯状に形成され、リールフレーム410、411のリム部410r,411rに巻き付けられ、例えば接着剤により貼着されている。この図では図示を省略したが、リールシート420上には、複数の図柄が印刷により形成されている。
リールシート420における図柄形成領域は比較的光透過率が高くされており、バックライト部402におけるLEDが点灯したとき、その発光領域が明るく発光するようになっている。
【0055】
インデックスセンサ55は、例えば透過型フォトセンサにより構成され、図のように本例ではベース板403bからリールドラム401に突出する突出部403tの先端部分に装着されている。インデックスセンサ55は、発光面、受光面がリールフレーム410の半径方向において互いに対向するように配置された発光部551と受光部552を有している。
【0056】
本例の場合、リールドラム410の所定のスポーク部410sには、インデックスセンサ55と対向する向きに突出する被検出部410dが形成されている。この被検出部410dは、リールドラム401の回転に伴い、インデックスセンサ55の発光部551と受光部552との間の空間を通過する位置に形成されている。
【0057】
このような構成により、透過型フォトセンサとしてのインデックスセンサ55によっては、リールドラム401(回転リール4)の回転の一周回につき1回、発光部551と受光部552との間を被検出部410dが通過することに伴うONパルスの出現する検出信号が得られる。
【0058】
ここで、
図10Bに示すように、被検出部410dは、回転方向R(正回転方向)に平行な方向おける両エッジ(端部)のうち一方のエッジが原点位置101と同じ回転角度に位置するように位置決めされている。具体的に、本例の被検出部410dは、正回転方向(R)への回転進行方向側のエッジが原点位置101と同じ回転角度に位置するように位置決めされている。
【0059】
なお、原点検出のための構成は、上記で説明したものに限定されるべきものではない。例えば、突起状の被検出部410dに代えて、切欠部による被検出部を設けた構成とすることもできる。この場合、インデックスセンサ55の発光部551と受光部552は、回転リール4の回転に伴い切欠部が到来したときに発光部551の発した光が受光部552で受光されるように配置すればよい。
インデックスセンサ55としては、透過型のフォトセンサに限らず、反射型のフォトセンサを用いることもできる。
【0060】
続いて、回転リール4a,4b,4cを回転駆動するためのステッピングモータ54a,54b,54cについて説明する。
本実施の形態において、ステッピングモータ54a,54b,54cはユニポーラ駆動のステッピングモータとされ、それぞれセンタータップされた2つの駆動巻線を有している。本実施の形態の場合、ステッピングモータ54a,54b,54cの駆動は1相励磁と2相励磁とを交互に繰り返す1−2相励磁によって行われる。
【0061】
図11Aは、ステッピングモータ54a,54b,54cがそれぞれ有する2つの固定子と、各固定子に巻回された駆動巻線と、回転子の回転位置(矢印)との関係を表した図である。図のようにユニポーラ駆動のステッピングモータにおいては駆動巻線がセンタータップされ、一方の駆動巻線においてセンタータップを境に分割形成されたそれぞれの巻線部を巻線部A、巻線部Aバーと表記する。また、他方の駆動巻線においてセンタータップを境に分割形成されたそれぞれの巻線部を巻線部B、巻線部Bバーと表記する。
【0062】
図11Bは、1−2相励磁において巻線部A、Aバー、B、Bバーに与えられる駆動信号φ(駆動電流)を表している。図のように巻線部Bバーの駆動信号をφ1、巻線部Aバーの駆動信号をφ2、巻線部Bの駆動信号をφ3、巻線部Aの駆動信号をφ4とそれぞれ表記する。
図11Bに示すように、1−2相励磁においては、駆動信号φ1〜φ4による駆動態様について図中の0〜7の8つのステップが繰り返される。具体的には、
・0ステップ目:φ1=on、φ2=off、φ3=off、φ4=off
・1ステップ目:φ1=on、φ2=off、φ3=off、φ4=on
・2ステップ目:φ1=off、φ2=off、φ3=off、φ4=on
・3ステップ目:φ1=off、φ2=off、φ3=on、φ4=on
・4ステップ目:φ1=off、φ2=off、φ3=on、φ4=off
・5ステップ目:φ1=off、φ2=on、φ3=on、φ4=off
・6ステップ目:φ1=off、φ2=on、φ3=off、φ4=off
・7ステップ目:φ1=on、φ2=on、φ3=off、φ4=off
が繰り返される。このように1−2相励磁においては、2つの駆動巻線が同時駆動される(つまり2つの固定子が同時励磁される)ステップ(0,2,4,6)と、一方の駆動巻線のみが駆動される(一方の固定子のみが励磁される)ステップ(1,3,5,7)とが交互に繰り返される。
【0063】
上記のような1−2相励磁により、回転子は、
図11Aに示すように0→1→2→3→4→5→6→7→0の位置に間欠的に移動することになり、2相励磁、すなわち0→2→4→6→0の位置に間欠移動する場合と比較してステップ角を半分にできる。具体的に、ステッピングモータ54a,54b,54cのステップ角は360°÷8=45°である。
【0064】
なお、上記説明からも理解されるように、ここで言う「ステップ」とは、ステッピングモータ54a,54b,54cの最小回転駆動量と換言できるものである。
【0065】
図11Cは、上記のような1−2相励磁を実現するために参照される励磁データテーブルについての説明図である。
励磁データテーブルにおいては、励磁ポインタ(励磁相ポインタ)PTの0〜7が上記の0〜7のステップにそれぞれ対応しており、励磁ポインタPTの0〜7のそれぞれに対しては駆動信号φ1〜φ4のon/offを表す4ビットの励磁データが対応付けられている。なお、
図11Cでは、それぞれの励磁データの16進数表記と励磁ポインタPTの0〜7のそれぞれに対応する2相励磁/1相励磁の別も併せて示している。
ここで以下、駆動信号φ1〜φ4の各々に関して、各駆動信号φのon/offを表す各1ビットのデータのことを「励磁データ」と表記する。また、駆動信号φ1についての励磁データについては「励磁データφ1」、駆動信号φ2についての励磁データについては「励磁データφ2」と表記する。同様に、駆動信号φ3についての励磁データは「励磁データφ3」、駆動信号φ4についての励磁データは「励磁データφ4」と表記する。
【0066】
後述もするが、主制御基板40のCPU80aは、このような励磁データテーブルを参照した結果に基づきステッピングモータ54a,54b,54cの駆動制御を行う。具体的には、励磁ポインタPTを0→1→2→・・・→7→0→・・・と循環させつつ、現在の励磁ポインタPTの値に対応する励磁データφ1〜φ4に基づいてステッピングモータ54a,54b,54cが駆動されるように制御を行う。
励磁ポインタPTの最短更新周期は、1.49msごとに起動されるタイマ割込み処理(
図24)ごとの周期とされる。
なお、励磁データテーブルは、ROM80b等のCPU80aが読み出し可能な記憶手段に対して記憶されている。
【0067】
図12は、回転リール4a,4b,4cに形成された図柄についての説明図である。
本例において、回転リール4a,4b,4cの表面には、回転方向に沿って21コマ分の図柄が配置されている。回転リール4a,4b,4cのそれぞれにおいて、図柄の種類は例えば10種類(赤7、白7、バー、キャラ、チェリー、すいか、ベル、リプレイ、はずれ1、はずれ2)とされ、それらが所定の順序で配列されている。図中では、回転リール4aに形成された21コマの図柄をそれぞれ図柄4a1,4a2,・・・,4a21と表している。同様に、回転リール4bに形成された21コマの図柄を図柄4b1,4b2,・・・,4b21、回転リール4cに形成された21コマの図柄を図柄4c1,4c2,・・・,4c21と表している。各図柄の符号の末尾に付した番号は、その図柄の番号を表している。
【0068】
回転リール4a,4b,4cにおいて、各図柄は等間隔で配置され、図中では図柄の切れ目位置を破線で表している。回転リール4a,4b,4cにおいては、所定の図柄切れ目位置が原点位置101とされている。本例における原点位置101は、それぞれ1番目の図柄である図柄4a1,4b1,4c1と、21番目の図柄である図柄4a21,4b21,4c21との間の図柄切れ目位置にそれぞれ設定されている。
【0069】
図中の矢印Rは、定常回転中(正方向回転中)における回転リール4a,4b,4cの回転方向を表している。このことから理解されるように、各図柄に付した番号は、原点位置101を起点として、定常回転中において図柄が遷移する順番を表している。
【0070】
ここで、本例においては、ステッピングモータ54a,54b,54cが1回転すると回転リール4a,4b,4cがそれぞれ1/63回転するようにステッピングモータ54a,54b,54cと回転リール4a,4b,4cとの間の回転比が設定されている。換言すれば、回転リール4a,4b,4cを1回転させるにはステッピングモータ54a,54b,54cを63回転させることを要する。
このため、本例においては、回転リール4a,4b,4cを1回転させるために必要なステッピングモータ54a,54b,54cの駆動ステップ数は8×63=504とされている。
【0071】
本例における回転リール4a,4b,4cには21コマの図柄が等間隔で形成されているため、図柄1コマ当たりのステップ数は504÷21=24ステップである。
これに応じ、各図柄については、ステップ位置として計24の位置を検出可能とされている。ここで、図柄中のステップ位置は、後の
図37で説明するステップS1511の処理によってタイマ割込みごとに図柄ステップ数がデクリメント(−1)されていくことで検出可能とされる。すなわち、各図柄中で検出可能なステップ位置は、24番(先頭ステップ位置)〜1番(最終ステップ位置)の24個である。このとき、
図37の処理では、図柄ステップ数=0、すなわちその図柄の最終ステップ位置に到達すると、その後のステップS1513の処理で即座に図柄ステップ数=「24」とされる。このため、0番のステップ位置は、次の図柄における24番のステップ位置と同義となる。
【0072】
また、各図柄については、24(0)番〜1番のステップ位置のうち所定のステップ位置がその図柄の停止を許可すべき位置(停止許可ステップ位置)として定められている。具体的には、7番のステップ位置が図柄の停止許可ステップ位置として定められている。回転リール4の停止時には停止図柄が決定され、該停止図柄で回転リール4を停止させるが、この際、回転リール4を停止させる位置は停止図柄中のどのステップ位置でも良いわけではなく、7番のステップ位置に達したことに応じて停止を許可するように定められている。
【0073】
<5.メモリ領域について>
図13は、主制御基板40におけるメモリに設定された領域(メモリ領域)についての説明図である。具体的には、ROM80b及びRAM80cとしての、CPU80aがアクセス可能なメモリに設定された領域についての説明図である。
【0074】
CPU80aがアクセス可能なメモリには、第1のメモリ領域と第2のメモリ領域とが設定されている。第1のメモリ領域は、CPU80aが遊技動作(ゲーム)の進行にあたって用いる所定のプログラム及びデータを配置するための領域として定められたものである。第2のメモリ領域は、第1のメモリ領域外に配置することが許可されたプログラム及びデータを配置するための領域として定められている。
本例において、第2のメモリ領域への配置が許可されているのは、不正行為(いわゆるゴト)への対策を講じるためのプログラム及びデータとされている。具体的には、例えばメダルの不正な投入や払出を検知するためのプログラム及びデータや、設定値vd、乱数の異常を検知するためのプログラム及びデータ等である。
第1のメモリ領域、第2のメモリ領域のそれぞれには、プログラムを格納する制御領域、プログラムにより使用するデータを格納するデータ領域、及びプログラムによる処理の過程で生成される各種のフラグやタイマ値等を書き替え可能に格納するR/W領域(Read/Write領域)が設定されている。
なお、第1のメモリ領域及び第2のメモリ領域は、電源基板41に設けられた共通のバックアップ電源により電源遮断後も記憶情報を保持可能とされている。
【0075】
図14は、第1のメモリ領域と第2のメモリ領域とについて定められた規制について説明図である。
第1、第2のメモリ領域のそれぞれにおいて、制御領域におけるプログラムは、自身の領域内におけるR/W領域のデータを参照及び更新(記録)することが許可されている。一方、第1、第2のメモリ領域のそれぞれにおいて、制御領域におけるプログラムは、他方のメモリ領域におけるR/W領域のデータについて参照のみが許可され、更新については不許可とされている。例えば、第2のメモリ領域のプログラムが該第2のメモリ領域内のR/W領域に記録したフラグについては、第1のメモリ領域内のプログラムは参照のみが可能とされて更新を行うことはできない。
なお、図示は省略したが、データ領域におけるデータについては、同一メモリ領域内のプログラムのみが参照を許可されている。すなわち、第1のメモリ領域内のプログラムが第2のメモリ領域内のデータ領域のデータを参照したり、第2のメモリ領域内のプログラムが第1のメモリ領域内のデータ領域のデータを参照するといったことは許可されていない。
【0076】
<6.スタート処理>
以下、主制御基板40のCPU80aが実行する各種の処理について説明していく。
先ずは
図15のフローチャートにより、スロットマシンの起動時(電源投入時)に対応して実行されるスタート処理について説明する。
このスタート処理は、電源投入時とコントローラ80におけるウォッチドッグタイマ(WDT)のタイムアウト時のそれぞれで発生するリセット信号に応じてCPU80aが実行するものである。すなわち、スタート処理は、スロットマシンの電源投入に伴うコントローラ80の起動時と、コントローラ80の動作が何らかの不具合により所定時間以上停滞したことに伴う再起動時に実行されるものである。
【0077】
図15において、CPU80aはステップS101で、内蔵レジスタを設定する処理を実行する。すなわち、スタート処理時に内蔵レジスタに設定すべき値を例えばROM80bより読み出し、内蔵レジスタに設定する。
【0078】
続くステップS102でCPU80aは、スタックポインタへのスタック初期値の設定を行い、ステップS103で電源基板41からの電断信号の状態(ON/OFF状態)を確認する。電断信号がONであれば、CPU80aはステップS101に戻って内蔵レジスタの設定、及びスタックポインタ設定をやり直す。
一方、電断信号がOFFであれば、CPU80aはステップS104に進み、RAM80cへのアクセスを許可する設定を行った上で、ステップS105で電断キーワードが所定値(例えば「5AA5h」)であるか否かを判定する。なお、電断キーワードは、電断時における後述するステップS404(
図18)の処理で設定されるものである。電断キーワードが所定値であることは、電断時においてRAM80cにデータが確実に退避されていることを表す(
図18のステップS402を参照)
【0079】
電断キーワードが所定値であれば、CPU80aはステップS106に進み、設定キースイッチ72aの状態(ON/OFF状態)を確認する。設定キースイッチ72aがOFFであれば、CPU80aは後述する電源復帰処理(
図16)に移行する。
一方、設定キースイッチ72aがONである場合、CPU80aはステップS107に進んでドア開放センサ35による検出信号に基づいてドア(前面パネル2)が開放状態であるか否かを判定する。ドアが開放状態でない場合、CPU80aは電源復帰処理に移行する。
ドアが開放状態であれば、CPU80aは後述する設定変更処理に移行する。
なお、上記説明から理解されるように、ステップS106で設定キースイッチ72aがONであっても、ステップS107でドアが開放状態でなければ、設定変更処理は行われない。つまり、この場合における設定キー操作は無効扱いとされる。このようにドアが開放されていない場合の設定キー操作を無効扱いとすることで、設定値vdを改竄する不正行為の防止が図られている(後述するステップS109、S110についても同様)。
【0080】
また、先のステップS105において、電断キーワードが所定値でなければ、CPU80aはステップS108に進み、RAMクリア処理として、例えばRAM80cの全ての記憶領域を初期化する処理を行う。なお、次の電源投入時の設定変更処理(
図17参照)でRAMクリアが行われるため、ステップS108のRAMクリア処理は省略することも可能である。
ステップS108のRAMクリア処理を実行すると、CPU80aはステップS109に進み、先のステップS106と同様に設定キースイッチ72aの状態を確認し、設定キースイッチ72aがONであれば、ステップS110において先のステップS107と同様にドアが開放状態であるか否かを判定する。ドアが開放状態であれば、CPU80aは設定変更処理に移行する。
【0081】
一方、ステップS109で設定キースイッチ72aがOFFであった場合と、ステップS110でドアが開放状態でなかった場合のそれぞれにおいて、CPU80aはステップS111に進みRAMエラーをセットする処理を行い、無限ループ状態に移行する。このRAMエラーセット処理でRAMエラーがセットされると、後述するタイマ割込み処理側でエラー報知のための処理が行われる。なお、上記無限ループ状態からは、電源を入れ直した後、新たな設定値vdを設定することで遊技が開始できるようになる。
【0082】
<7.電源復帰処理>
図16は、電源復帰処理のフローチャートである。
図16において、CPU80aはステップS201で、電断キーワードをクリアする処理を実行し、ステップS202で電断時のスタックポインタを復帰する処理を行う。すなわち、電断時にRAM80cのワーク領域に記憶しておいたスタックポインタの値(
図18のステップS403参照)を読み出し、スタックポインタに再設定(本設定)する。
【0083】
続くステップS203でCPU80aは、回転リール4が起動中又は回転中であるか否かを判定する。すなわち、後述する起動中フラグFG1又は回転中フラグFG2(
図38参照)の少なくとも何れかがそれぞれ起動中、回転中を表す「1」であるか否かを判定する。このステップS203の処理は、3つの回転リール4(4a〜4c)のうち対象とする一つの回転リール4について逐次行われる。後述するステップS205で否定結果が得られた場合に、対象とする回転リール4が切り替えられる。
【0084】
ステップS203において、回転リール4が起動中又は回転中であった場合、CPU80aはステップS204でセンサ未通過フラグFmtをセット(未通過である旨を表す「1」を設定)した上で、ステップS205に処理を進める。なお、センサ未通過フラグFmtは、前述したインデックスセンサ55により原点位置101を未検出であるか否かを表すためのフラグである。このようにステップS204でセンサ未通過フラグFmtをセットすることで、後述するタイマ割込み処理により回転リール4が再起動される。
一方、回転リール4が起動中又は回転中でなければ、CPU80aはステップS204をパスしてステップS205に進む。
【0085】
ステップS205でCPU80aは、全ての回転リール4についてステップS203の判定処理(及び必要に応じたステップS204のフラグセット処理)を実行したか否かを判定し、全ての回転リール4について実行していなければステップS203に戻り、実行したのであればステップS206に処理を進める。
【0086】
ステップS206でCPU80aは、電源復帰コマンドセット処理として、RAM80cにおける所定領域に電源復帰コマンドをセットする処理を実行する。この電源復帰コマンドは、電源断時の状態に復帰したことを表すコマンドであり、セットされたコマンドは
図24で後述するタイマ割込み処理において演出制御基板42側に出力される(ステップS816参照)。
【0087】
続くステップS207でCPU80aは、全レジスタ復帰処理として、レジスタの状態を電源断処理(
図18)が実行される直前の状態に復帰させる処理を行う。すなわち、電断時にRAM80cにおけるレジスタ退避領域に記憶しておいた各レジスタの値(ステップS402参照)を読み出し、各レジスタに再設定する処理を行う。
そして、CPU80aは続くステップS208で、割込み許可の設定を行い、
図16に示す電源復帰処理を終了する。
以降、CPU80aが、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、スロットマシンは電源断時の状態に復帰する。
【0088】
<8.設定変更処理>
図17は、設定変更処理のフローチャートである。
図17において、CPU80aはステップS301で、設定変更時のRAMクリア処理を実行する。すなわち、RAM80cにおける設定変更時に対応して定められた領域(設定値vdの格納領域は含まず)をクリアする処理を行う。
続くステップS302でCPU80aは、設定変更中であるか否かを表すための設定中フラグをセット(設定変更中である旨を表す「1」を設定)し、さらに続くステップS303でRAM80cに格納されている設定値vdを取得する。
【0089】
ステップS303で設定値vdを取得すると、CPU80aはステップS304で、設定値vdが「0」〜「5」の範囲外なら設定値vdを0クリアする処理を行う。これは、後述するステップS309でリセットボタン操作に応じて設定値vdが+1されたことに伴い設定値vdが「5」を超えたときに、設定値vdが「0」(設定「1」に対応する値)に戻されるようにするための処理となる。
【0090】
続くステップS305でCPU80aは、設定値vdを7セグ表示するための処理を実行する。すなわち、前述した回胴設定基板71に対して設けられた表示器(7セグメント表示器)に現在の設定値vdに応じた値(「1」〜「6」の何れか)を表示させるための処理を行う。なお、ここで言う現在の設定値vdとは、ステップS303で取得され、ステップS304の処理を経た後の設定値vdを意味する。
【0091】
次のステップS306でCPU80aは、2タイマ割込み分の待機処理(1.49ms×2)を行う。この待機処理の間、割込み処理が許可される。
【0092】
続くステップS307でCPU80aは、スタートレバー17(始動スイッチ)の状態(ON/OFF状態)を確認する。これは、設定値vdの確定操作の有無を確認していることに相当する。
スタートレバー17がOFFであれば、CPU80aはステップS308に進んでリセットスイッチ72bの状態(ON/OFF状態)、すなわち設定値vdの送り操作の有無を確認し、リセットスイッチ72bがOFFであればステップS306の2割込み待機処理に戻る。
これにより、スタートレバー17による設定値vdの確定操作、又はリセットボタンによる設定値vdの送り操作の何れかが行われるまで、ステップS306の待機処理が繰り返し行われる。
【0093】
ステップS308において、リセットスイッチ72bがONであれば、CPU80aはステップS309に進んで設定値vdをインクリメント(+1)した上で、先のステップS304に戻る。
【0094】
また、ステップS307において、スタートレバー17がONであれば、CPU80aはステップS310に進み、現在の設定値vdをRAM82cの所定領域に保存(記憶)させる。
【0095】
ステップS310で設定値vdをRAM82cに保存させると、CPU80aはステップS311で設定値確定LEDをONさせる処理、すなわち回胴設定基板71に設けられた設定値確定を表すためのLEDをONさせるための処理を行う。
【0096】
そして、CPU80aは、続くステップS312で、設定値vdの変更終了操作を待機するための処理を実行する。すなわち、設定キースイッチ72aの状態を確認し、ONである場合にはステップS312に戻る。
【0097】
設定キースイッチ72aがOFFであれば、CPU80aはステップS313に進み、設定値コマンドをセットする処理を行う。設定値コマンドとは、ステップS310でRAM80cに保存した設定値vdを演出制御基板42側に対して通知するためのコマンドである。なお、セットされたコマンドは、タイマ割込み処理(
図24)において演出制御基板42側に出力される(ステップS816)。
CPU80aは、ステップS313のコマンドセット処理を実行したことに応じ、
図17に示す設定変更処理を終了する。
CPU80aは、設定変更処理を終了したことに応じて、
図19に示すメイン処理に移行する。
【0098】
<9.電源断処理>
図18は、電源断処理のフローチャートである。
この電源断処理は、電源断信号が入力されたことに応じて発生する割込み処理である(いわゆるINT割込み)。なお、割込みの優先順位は「タイマ割込み>INT割込み」である。
【0099】
図18において、CPU80aはステップS401で、電源基板41からの電源断信号の状態を確認する。電源断信号がOFFであった場合、CPU80aは電源断処理を終了する。
【0100】
電源断信号がONであれば、CPU80aはステップS402で、全レジスタの値をRAM80cにおけるレジスタ退避領域に退避させる処理を実行し、ステップS403でスタックポインタ(先のステップS102を参照)をRAM80cのワーク領域にセットし、ステップS404で電断キーワードとして前述した所定値をセットする。
【0101】
さらに、CPU80aは続くステップS405で、RAM80cへのアクセスを禁止とする設定を行い、ステップS406で全ての出力ポートをクリアして、無限ループ状態に移行する。
【0102】
<10.メイン処理>
[10-1.メイン処理]
図19は、メイン処理のフローチャートである。
メイン処理は、1ゲームごとに繰り返し実行される無限ループ状の処理である。なお、本例において、1ゲームの期間は、回転リール4を回転させて抽選結果に基づく停止態様で停止させるまでの期間となる。
【0103】
メイン処理において、CPU80aはステップS501で、遊技状態コマンドをセットする。遊技状態コマンドは、例えばRB状態やRT状態等、現在の遊技状態を演出制御基板42側に通知するためのコマンドである。
【0104】
続くステップS502でCPU80aは、補助タンク6に対して設けられたオーバーフローセンサの状態(ON/OFF状態)を確認し、オーバーフローセンサがONであれば貯留メダルがオーバーフロー状態である旨を表すためのエラーフラグをセットし、ステップS502に戻る。すなわち、オーバーフロー状態である限り処理がステップS502→S503→S502…とループしてメイン処理の進行が中断される。
【0105】
一方、オーバーフローセンサがOFFであれば、CPU80aはステップS504に進み、遊技開始時の初期設定として、遊技開始時に対応した各種の設定処理を行った上で、ステップS505で再遊技フラグを確認する。再遊技フラグは、直前のゲームにおいて再遊技に当選(入賞)していたか否かを表すフラグである。
再遊技フラグが再遊技への当選を表すON(例えば「1」)であった場合、CPU80aはステップS506に進み、再遊技の自動投入処理として、所定数の賭数を設定するためのメダル自動投入処理(擬似投入処理)を行い、ステップS507に処理を進める。
一方、再遊技フラグが再遊技への否当選を表すOFF(例えば「0」)であった場合、CPU80aはステップS506の処理をパスしてステップS507に処理を進める。
【0106】
ステップS507でCPU80aは、所定時間(例えば1.49ms)分の割込み待機処理を実行し、続くステップS508で設定確認処理を実行する。設定確認処理は、スロットマシンの電源がONの状態において、ドアが開放され設定キーがONとされた状態でリセットボタンが操作されたことに応じて、設定値vd確認用の表示器に現在の設定値vdに応じた値を表示させるための処理である。具体的に、設定確認処理においてCPU80aは、確認条件(本例ではドアセンサ66、設定キースイッチ72a、及びリセットスイッチ72bがON)が成立している場合に、現在の設定値vdに応じた値を上記の表示器に表示させるための情報をセットする。具体的には、設定確認中フラグをONとする。この設定確認中フラグがONとされたことに応じて、後述するタイマ割込み処理におけるLEDデータの作成処理(ステップS802:
図25参照)で設定値vdの表示のための処理が行われる。
【0107】
さらに、続くステップS509でCPU80aは、精算ボタン有効フラグFas及び投入可能フラグFaiの双方をONとする。精算ボタン有効フラグFasは、精算ボタン14の受付を有効とするか否かを表すためのフラグであり、投入可能フラグFaiは、メダル投入口12を介したメダルの投入受付についての可/不可を表すフラグである。投入メダルの受付、精算ボタン14の受付は後述するタイマ割込み処理により行われる。
【0108】
次のステップS510でCPU80aは、メダルの投入枚数(賭数)が最大投入枚数(所定数:前述のように本例では「3」)であるか否かを判定する。例えば、上記したステップS506の自動投入処理が行われていれば、該ステップS510で最大投入枚数であると判定される。また、メダル投入口12を介して3枚のメダル投入が行われた場合や、クレジット数が3枚以上の状態でマックスベットボタン16が操作された場合等においても、該ステップS510で最大投入枚数であると判定される。
CPU80aは、ステップS510で最大投入枚数でないと判定した場合は、先のステップS507に戻って該S507の待機処理、S508の確認処理、及びS509のフラグ設定処理を再度実行する。すなわち、最大投入枚数と判定されるまで、これらの処理が繰り返される。
【0109】
一方、最大投入枚数であると判定した場合、CPU80aはステップS511に進んで前述したスタートランプ(LED群9におけるLED)を点灯させるための処理を実行し、ステップS512でスタートレバー17の状態を確認する。具体的には、前述した始動スイッチ基板62に設けられた、スタートレバー17の操作に応じてONされる始動スイッチによる検出信号の状態を確認する。なお、始動スイッチの検出信号のONエッジ検出はタイマ割込み処理(S804参照)で実行されるものである。
該始動スイッチの検出信号がOFF状態であれば、CPU80aはステップS511に戻り、該検出信号がONエッジであれば、ステップS513で乱数(カウンタ回路81で生成された乱数値)の取り込みが完了したか否かを判定する。
ステップS513において、乱数の取り込みが完了していなければ、CPU80aはステップS511に戻る。すなわち、スタートレバー17のONが検知されても、乱数の取り込みが完了していない場合には、再びスタートレバー17がONされるまで待機するようにされる。なお、カウンタ回路81の乱数値は、スタートレバー17がONされる度にラッチされるものである。最新のスタートレバー17のONに伴いラッチされた乱数値は後述する抽選処理(S518)での役抽選に用いられる。
【0110】
一方、ステップS513において乱数の取り込みが完了していれば、CPU80aはステップS514でメダル投入中であるか否かを判定する。なお、メダル投入中であるか否かは、例えば、前述した第1投入メダルセンサ68a(センサ1)、又は第2投入メダルセンサ68b(センサ2)の何れかがメダルを検出中であるか否かに基づいて判定することができる。メダル投入中であれば、CPU80aはステップS511に戻る。すなわち、メダル投入中にスタートレバー17がONされても該ON操作は無効として扱われ、再びスタートレバー17がONされるまで待機するようにされる。
【0111】
一方、メダル投入中ではない場合、CPU80aはステップS515に進んで精算ボタン有効フラグFas及び投入可能フラグFaiの双方をOFFとする。これらフラグのOFFにより、タイマ割込み処理側での精算ボタン14の受付や投入メダルの受付が禁止状態とされる。
さらに、CPU80aは続くステップS516で、投入信号カウンタに投入枚数をセットする。投入信号カウンタは、投入メダル枚数(設定された賭数)を外部集中端子板70を通してホールコンピュータに通知するために用いられるカウンタである。
【0112】
続くステップS517でCPU80aは、遊技開始時に対応した通知を演出制御基板42側に対して行うための遊技開始コマンドをセットする処理を実行し、
図20に示すステップS518に処理を進める。
【0113】
図20に示すステップS518において、CPU80aは前述した乱数値に基づいて抽選処理(図柄抽選処理)を実行する。抽選処理では、ボーナス図柄への当選か否か、小役図柄への当選か否か、再遊技を示すリプレイ図柄への当選か否かが決定され、決定された抽選結果を示す制御コマンドが演出制御インターフェース86における送信バッファにセットされ、後述するタイマ割込み処理によって演出制御基板42側に送信される。なお、小役図柄としては、例えば、「チェリー図柄」(4a10,4b3,4c9)、「ベル図柄」(4a4,4b5,4c3等)、「すいか図柄」(4a9,4b12,4c1等)などを例示することができる。
【0114】
続くステップS519でCPU80aは、リール演出を実行するか否かを決定するリール演出抽選処理を実行する。なお、リール演出抽選処理において選出可能な演出は、上記の内部抽選処理の結果に対応して定められている。例えば、「すいか図柄」等の所定の図柄に内部当選状態であれば、所定の当選確率に基づいて「極めてゆっくり正方向に回転して静止するスロー演出」等の所定のリール演出が選出可能となる。
【0115】
さらに、CPU80aは次のステップS520で、リール演出対応処理を実行する。リール演出対応処理では、リール演出抽選に当選している場合に対応して、回転リール4a,4b,4cを演出回転させるための各種の設定処理が実行される。リール演出に当選していなければ、該設定処理はパスされる。
【0116】
なお、遊技者は、リール演出が実行された場合には、そのリール演出の種類に応じた所定の図柄に内部当選していることを推理できる。遊技者は、このような推理から目標とした図柄が停止ライン上に揃うように停止操作を行う。推理が当った場合であって、且つ、停止タイミングが適切な場合に限り、内部当選状態が実効化され、遊技者に遊技価値が付与される。
【0117】
上記のリール演出対応処理を実行したことに応じ、CPU80aはステップS521で4.1秒待機処理を実行し、続くステップS522で4.1秒セット処理を実行する。4.1秒は、ゲーム間の間隔として最低限空けるべき時間長である。このようにゲーム間の間隔として最低限の間隔が定められていることで、遊技者がメダルを過大消費してしまうことの防止が図られている。
ステップS521の待機処理では、1ゲーム前に実行されたステップS522のセット処理によりセットされた4.1秒分のウェイトタイマの値が「0」となるまで待機する。なお、該ウェイトタイマの値は後述するタイマ割込み処理で逐次デクリメント(減算)される。
ここで、4.1秒は一例であって、ゲーム間の最低時間間隔は適宜変更が可能である。
【0118】
ステップS522のセット処理を実行したことに応じ、CPU80aはステップS523で、回転開始コマンドを演出制御インターフェース86における送信バッファにセットする処理を行う。回転開始コマンドは、回転リール4a〜4cの回転開始時に対応した情報を演出制御基板42側に通知するためのコマンドである。
【0119】
続くステップS524でCPU80aは、回転リール4a〜4cについての起動設定処理を実行する。該起動設定処理としては、タイマ割込み処理における回胴制御処理(
図37参照)で回転リール4a〜4cの起動に要する情報を設定する処理となる。具体的に、該起動設定処理では、少なくとも、センサ未通過フラグFmt、及び起動要求フラグFrrを全ての回転リール4についてセット(ONを表す「1」を設定)する処理を行う。
なお、起動要求フラグFrrは、タイマ割込み処理(回転制御処理)側に回転リール4の起動(回転開始)を要求するためのフラグである。
【0120】
さらに、次のステップS525でCPU80aは、759.9msの待機処理を実行する。この待機処理は、510回分のタイマ割込み待ち処理に相当する。
上記のように起動要求フラグFrrがセットされることで、タイマ割込み処理における回胴制御処理により、回転リール4a〜4cの起動処理が開始される。ステップS525の待機処理は、このようなタイマ割込み側の回胴制御処理により回転リール4a〜4cが回転状態となるまで待機するための処理として機能する。なお、ステップS525による待機時間は上記の時間に限定されるものではない。
【0121】
続くステップS526でCPU80aは、センサ未通過フラグFmt、エラーフラグの何れかがONであればOFFになるまで待機する処理を実行し、次のステップS527で全リール分の停止ボタンLED(つまり停止ボタン18a〜18cを発光させるための各LED)をONさせるための処理を実行する。
ここで、スロットマシンにおいては、回転リール4が回転を開始した後、対応するインデックスセンサ55により該回転リール4の原点位置101が検出されたことを条件として対応する停止ボタン18の受付を許可するようにされている。このため、ステップS526でセンサ未通過フラグFmtがONである場合には、ステップS527による停止ボタンLEDのON処理に処理を進めず、センサ未通過フラグFmtがOFFになるまで待機するようにされている。
【0122】
また、上記の説明から理解されるように、ステップS526の処理が実行される時点では、回転リール4a〜4cの回転が開始されている(停止ボタン18の操作が行われる前の回転状態)。ステップS526の待機処理は、このように回転リール4a〜4cが回転中に生じたエラーへの対処処理としても機能している。すなわち、ステップS526の待機処理は、回転リール4a〜4cが回転中においてエラーの発生が認められた場合(エラーフラグがONの場合)に、回転リール4a〜4cの回転を維持した状態で遊技動作の進行を停止し、エラーが解除されたことに応じて遊技動作の進行を再開するための処理として機能している。
なお、ステップS526で対象とするエラーフラグとしては、少なくとも、主基板エラー(主制御基板40のエラー)、RWMエラー(RAM80cに係るエラー)、投入メダルエラー(メダル投入に係るエラー)、払出メダル無しエラー、払出センサエラー(メダル払出センサ76のエラー)、不当入賞エラー、オーバーフローエラー、ドア開放エラーに関するフラグがある。
【0123】
ステップS527に続くステップS528でCPU80aは、センサ未通過フラグFmt、エラーフラグの何れかがONであればOFFになるまで待機する。この際、待機中においては、停止ボタンLEDをOFFとする。なお、このステップS528における待機処理の意義については後述する。
【0124】
ステップS528の処理を実行したことに応じ、CPU80aはステップS529で有効な停止ボタン操作が行われているか否かを判定する。すなわち、停止ボタン18a〜18cのうち1つの停止ボタン18を押圧するという有効な停止ボタン操作が行われているか否かを判定する。
有効な停止ボタン操作が行われていない場合、CPU80aは先のステップS528に戻る。ここで、回転リール4が回転中にエラーが生じるケースとしては、ステップS528の処理の実行後からステップS529の処理が開始されるまでの間にエラーが生じるケースが考えられる。そのようなタイミングでエラーが生じた場合において、ステップS529で有効な停止ボタン操作が行われていないと判定されると、処理がステップS528に戻りエラーフラグがOFFになるまで待機が行われる。すなわち、ステップS529による停止ボタン操作の受付が中断される。
この点からも理解されるように、ステップS528の処理は、回転中にエラーが生じた場合において、停止ボタン18の操作受付を中断して、エラーの解除を待つための処理として機能する。
【0125】
一方、有効な停止ボタン操作が行われていれば、CPU80aはステップS530に進んで停止情報ビット(当該リールの停止情報ビット)をセットし、次のステップS531で当該リールの停止ボタンLEDをOFFするための処理を行う。ここで、当該リールとは、有効な停止ボタン操作が行われた回転リール4を意味する。
続くステップS532でCPU80aは、停止順データをセットする。停止順データは、停止操作に応じた回転リール4a〜4cの停止順序を表すためのデータである。
【0126】
さらに、次のステップS533でCPU80aは、停止制御処理を実行する。ステップS533の停止制御処理は、回転リール4の停止位置(停止図柄)を最大滑りコマ数を考慮して設定したり、タイマ割込み処理側の回胴制御処理によって当該リールの回転を停止させるために必要な情報を設定する等の処理が行われるが、詳細については
図21により後述する。
【0127】
ステップS533の停止制御処理を実行したことに応じ、CPU80aはステップS534で全ての回転リール4が停止したか否かを判定する。全ての回転リール4が停止していないと判定した場合、CPU80aは先のステップS528に戻る。
【0128】
ここで、ステップS528の待機処理が設けられることによると、或る回転リール4について有効な停止ボタン操作が検知(S529)された後、ステップS533の停止制御処理により該回転リール4の回転が停止されるまでの間にエラーの発生が認められた場合は、該エラーが解除(エラーフラグがOFF)されるまでメイン処理の進行が中断されることになる。この際、停止操作が行われた回転リール4については、該エラーの発生有無に拘わらずステップS533で停止制御処理が実行されるため、該回転リール4の回転は停止されることになる。
この点からも理解されるように、ステップS528の待機処理は、回転リール4について有効な停止ボタン操作が行われてから回転リール4の回転が停止されるまでにエラーの発生が認められた場合に、停止制御を中断せずに該回転リール4を停止させ、該回転リール4が停止した後に遊技動作の進行を中断し、該エラーが解除されたことに応じて遊技動作の進行を再開するための処理として機能する。
【0129】
ステップS534において、全ての回転リール4が停止したと判定した場合、CPU80aはステップS535に進み、停止後の入賞判定処理を実行する。該入賞判定処理では、停止ライン上に当選図柄(当選役)が揃ったか否かを判定すると共に、該判定結果に応じた入賞枚数(入賞に応じて遊技者に付与すべきメダル枚数)を算出する。
なお、入賞判定処理では、停止ライン上に当選図柄が揃ったか否かの判定結果を示す制御コマンド(入賞情報コマンド)を演出制御基板42に送信するべく、入賞情報コマンドを演出制御インターフェース86における送信バッファにセットする処理も行われる。
【0130】
ステップS535の入賞判定処理を実行したことに応じ、CPU80aはステップS536で入賞メダルの払出処理を実行する。なお、該払出処理の詳細は
図23により後述する。
【0131】
続くステップS537でCPU80aは、状態管理処理として、必要に応じてRB状態やCB(チャンスボーナス)状態、RT(リプレイタイム)状態に対応した情報の管理処理を実行する。
【0132】
CPU80aは、ステップS537の状態管理処理を実行したことに応じて、
図19に示したステップS101に戻る。このようにメイン処理は、ループ状の処理とされている。
【0133】
[10-2.停止制御処理]
図21は、停止制御処理(ステップS533)のフローチャートである。なお、上記説明からも理解されるように、ステップS533の停止制御処理は、ステップS529で有効な停止ボタン操作が検知された回転リール4を対象として行われるものである。
【0134】
図21において、CPU80aはステップS601で、停止コマンドをセットする。停止コマンドは、少なくとも停止操作が受け付けられた旨を演出制御基板42に通知するためのコマンドであり、CPU80aは停止コマンドを演出制御インターフェース86における送信バッファにセットする。
【0135】
続くステップS602でCPU80aは、停止制御開始時の初期設定を行う。停止制御開始時の初期設定としては、最短停止間隔タイマの値のセット、引き込むコマ数の値のクリア、最大滑りコマ数(4コマ)の設定等を行う。なお、最短停止間隔は、或る停止ボタン18が操作されてから他の停止ボタン18の操作を受付可能とするまでの最短間隔を定めたものであり、本例では最短停止間隔タイマの値として210.09msに応じた値(タイマ割込み141回分)を設定する。
【0136】
ステップS602の初期設定を行ったことに応じ、CPU80aはステップS603で停止可能なステップ位置か否かを判定する。
本例では、図柄ステップ位置が5番以下の図柄ステップ位置である場合には、現在の図柄を停止操作時図柄(停止操作が行われたときの図柄)とはせず、次の図柄を停止操作時図柄とする。このため、CPU80aは、ステップS603で現在の図柄ステップ位置が24番〜6番の停止処理可能なステップ位置(以下「停止処理可能位置」と表記)か否かを判定し、停止処理可能位置でなければ再びステップS603の処理を実行し、停止処理可能位置であればステップS604に処理を進める。
なお、現在の図柄ステップ位置(図柄ステップ数)は、後述するステップカウンタの値に基づき取得される。ステップカウンタの値は、タイマ割込み処理における回胴制御処理(
図37参照)によってカウントされる。
【0137】
確認のため、
図22を参照して停止処理可能位置の概念について説明しておく。
図示するように本例では24番〜6番のステップ位置が停止処理可能位置、5番〜1番のステップ位置が停止処理不可能位置として定められている。上記したステップS603の処理により、停止ボタン操作が検知されたときの図柄ステップ位置が停止処理可能位置であれば現在の図柄が停止操作時図柄とされ、停止処理不可能位置であれば現在の図柄の次の図柄が停止操作時図柄とされる。
本例において、現在のステップ位置が5番〜1番の停止処理不可能位置である場合に現在の図柄を停止操作時図柄とせず次の図柄を停止操作時図柄とするのは、以下で説明する滑りコマ数の決定処理(S604)が比較的長く処理時間を要した場合に意図しない図柄で停止されてしまう事態が発生する虞があり、その防止を図るためである。
【0138】
なお、本例では、7番のステップ位置が前述した停止許可ステップ位置とされている。タイマ割込み処理側では、現在の図柄が下記で説明する停止図柄(「停止操作時図柄+滑りコマ数」で特定される図柄)に達したとき、ステップ位置が7番に達したことに応じてブレーキ制御を行うことが許可される(
図37の回胴制御処理を参照)。
【0139】
図21に戻り、ステップS604でCPU80aは、滑りコマ数を決定するための処理を行う。すなわち、現在の図柄位置(停止操作時図柄)と図柄抽選処理の抽選結果とに基づき、滑りコマ数を決定する。ここで決定された滑りコマ数を停止操作時図柄の図柄番号に加算して特定される図柄が、対象とする回転リール4を停止させるべき図柄(停止図柄)となる。
なお、現在の図柄位置は、後述する図柄カウンタの値に基づき取得される。図柄カウンタの値としてもタイマ割込み処理における回胴制御処理によってカウントされている。
【0140】
続くステップS605でCPU80aは、停止図柄に到達しているか否かを判定する。すなわち、図柄カウンタの値に基づき、現在の図柄位置が停止図柄としての図柄位置と一致しているか否かを判定する。
停止図柄に到達していなければ、CPU80aは再びステップS605の処理を実行し、停止図柄に到達してればステップS606に処理を進める。
【0141】
ステップS606でCPU80aは、当該リールに対応する停止要求フラグFrsをONとする(「1」を設定する)。後述もするが、停止要求フラグFrsがONとされることで、タイマ割込み処理における回胴制御処理にて当該リール(停止ボタン操作が行われた回転リール4)のブレーキ制御が開始される。
【0142】
続くステップS607でCPU80aは、1タイマ割込み分の待機処理を実行する。この待機処理は、タイマ割込み処理側(回胴制御処理)でステッピングモータ54の全相をONする処理(ブレーキ処理)が開始されるまで待機する処理として機能する。
【0143】
さらに、次のステップS608でCPU80aは、第2停止処理中フラグFG4の状態(ON/OFF状態)を確認する。後述するように、第2停止処理中フラグFG4は、タイマ割込み処理における回胴制御処理でステッピングモータ54の全相がONされることに応じてONされるフラグ(つまり全相励磁状態か否かを表すフラグ)である。
【0144】
ステップS608において、第2停止処理中フラグFG4がOFFであれば、CPU80aはステップS607に戻る。すなわち、停止処理中フラグFG4がONとなるまで1タイマ割込み分の待機処理が繰り返される。
【0145】
第2停止処理中フラグFG4がONであれば、CPU80aはステップS609に進み、演出制御基板42側に当該リールの停止位置(停止図柄)を通知する停止位置コマンドを送信するための処理を実行し、続くステップS610で最短停止間隔タイマ(先のステップS602で設定)の値が「0」であるか否かを判定する。最短停止間隔タイマの値が「0」でなければ、CPU80aは再びステップS610の判定処理を実行する。
一方、最短停止間隔タイマの値が「0」であれば、CPU80aはステップS533の停止制御処理を終える。
【0146】
[10-3.入賞メダルの払出処理]
図23は、入賞メダルの払出処理(ステップS536)についての説明図である。
先ず、CPU80aはステップS701で、入賞枚数が「0」であるか否かを判定する。前述のように入賞枚数は、ステップS535の入賞判定処理にて設定されるものである。入賞枚数が「0」であれば、CPU80aは入賞メダルの払出処理を終了する。
【0147】
入賞枚数が「0」でなければ、CPU80aはステップS702に進み、エラー中であるか否かを判定する。なお、ステップS702で対象とするエラーとしては、スロットマシンで検出可能な各種のエラーであり、少なくとも前述した主基板エラー、RWMエラー、投入メダルエラー、払出メダル無しエラー、払出センサエラー、不当入賞エラー、オーバーフローエラー、ドア開放エラーを含む。
ステップS702において、エラー中であると判定した場合、CPU80aは再度ステップS702の判定処理を実行する。すなわち、エラーが解除されるまで、メイン処理の進行(ゲームの進行)が中断される。
【0148】
一方、エラー中ではないと判定した場合、CPU80aはステップS703に進み、払出の開始を演出制御基板42側に通知するための払出開始コマンドを送信バッファにセットする処理を実行する。
【0149】
続くステップS704でCPU80aは、タイマ割込み処理の実行待ち処理を行う。この待ち処理は、以下で説明するクレジットの加算処理中にタイマ割込み処理が入ることの防止を意図したものである。
【0150】
ステップS704の待ち処理を実行したことに応じ、CPU80aはステップS705でクレジットの値がMAX(最大値:本例では「50」)であるか否かを判定する。クレジットの値がMAXでなければ、CPU80aはステップS706、S707、S708の処理によりそれぞれクレジットの値のインクリメント(+1)、払出信号カウンタの値のインクリメント、払出表示枚数のインクリメントをそれぞれ行い、次のステップS709で90msの待機処理を行った上で、ステップS710で入賞枚数の値をデクリメント(−1)する処理を行う。
なお、ステップS707において、払出信号カウンタは、ホールコンピュータに対する払出枚数の通知、すなわち入賞(再遊技を含む)に応じて遊技者に付与したメダルの枚数の通知を行うために用いられるカウンタである。メイン処理において払出信号カウンタの値を入賞枚数の範囲内で上記のように逐次インクリメントする一方で、後述するタイマ割込み処理側の「投入、及び払出信号出力処理」(ステップS809)では、払出信号カウンタの値が「0」以外である場合に対応して払出信号カウンタの値をデクリメントし且つ払出信号ビットをホールコンピュータに出力するための処理が行われる。ホールコンピュータでは、該払出信号ビットの出力回数に基づいてスロットマシンの払出枚数を管理可能とされている。
また、上記ステップS708において、払出表示枚数は、前述した払出表示部10に表示すべき当該ゲームでの払出枚数を意味する。本例では、払出表示部10における枚数表示は、入賞枚数からの1枚単位での付与が行われるごとに値をインクリメントさせる態様で行われるため、ステップS708で払出表示枚数の値を逐次インクリメントさせている。なお、図示による説明は省略したが、CPU80aは、払出表示枚数の値を例えばメダル投入又はスタートレバー17のONタイミング等、次ゲーム開始までの間の所定タイミングで「0」リセットする(つまり払出表示部10における枚数表示は「0」から「入賞枚数」に向けて逐次インクリメントされた後、次ゲーム開始タイミングまでにクリアされる)。なお、払出表示枚数の値の0リセットは、メダル投入又はスタートレバー17のON操作が行われずとも、所定時間の経過に応じて行ってもよい。
【0151】
ステップS710で入賞枚数の値をデクリメントしたことに応じ、CPU80aはステップS711で入賞枚数が「0」であるか否かを判定する。入賞枚数の値が「0」でなければ、CPU80aは先のステップS704に戻る。すなわち、入賞枚数分のメダル付与処理が完了していなければ、タイマ割込み処理の実行待ち処理を行った上で、ステップS705のクレジットMAX判定処理を再度実行する。クレジットの値がMAXでなければ、上記したステップS706〜S711の処理が再度実行される。
【0152】
一方、ステップS711で入賞枚数の値が「0」であれば、CPU80aはステップS715で払出終了を演出制御基板42側に通知するための払出終了コマンドを送信バッファにセットする処理を実行し、入賞メダルの払出処理(S536)を終える。
【0153】
また、先のステップS705において、クレジットの値がMAXであれば、CPU80aはステップS712で払出要求をONとする。
ここで、クレジットの値がMAXである場合には、クレジットの加算ではなくメダル払出装置5を用いたメダルの払出(メダル排出口20を介したメダル払出)が行われる。このようなメダル払出装置5を用いたメダル払出のための制御処理はタイマ割込み処理側で実行され(
図36のメダル払出処理を参照)、払出要求は、該制御処理の実行を要求するものである。
【0154】
続くステップS713でCPU80aは、タイマ割込み処理の実行待ち処理を実行し、ステップS714で入賞枚数の値が「0」であるか否かを判定する。なお、後の説明から理解されるように、タイマ割込み処理におけるメダル払出処理では、メダルを1枚払い出すごとに入賞枚数の値がデクリメントされる。
【0155】
ステップS714において、入賞枚数の値が「0」でなければ、CPU80aはステップS712に戻る。
一方、入賞枚数の値が「0」であれば、CPU80aは先のステップS715のコマンドセット処理を実行し、入賞メダルの払出処理を終える。
【0156】
<11.タイマ割込み処理>
[11-1.タイマ割込み処理]
続いて、所定時間ごと(本例では1.49msごと)に起動されるタイマ割込み処理について説明する。
図24は、タイマ割込み処理のフローチャートである。
図24において、CPU80aは、先ずステップS801でレジスタの値を退避させた上で(レジスタ退避処理)、ステップS802でLEDデータの作成処理を実行する。該LEDデータの作成処理は、遊技表示基板61に搭載された払出表示部10や貯留枚数表示部11としての7セグメントLEDや、LED群9として設けられた各種LED、すなわち投入されたメダルの枚数を示すLED、再遊技状態を示すLED、スタートランプとしてのLED、メダルの投入の受付状態(投入の許可/不許可)を示すLEDや、設定値の表示を行うための7セグメントLEDによる情報表示を実現するために必要とされるデータを作成する処理である。なお、該作成処理についての詳細は
図25により後述する。
【0157】
続くステップS803でCPU80aは、コマンド作成処理として、各種のコマンドのデータを作成して演出制御インターフェース86における送信バッファにセットする処理を実行する。なお、セットされたコマンドは、後述する出力処理(S816)にて演出制御基板42側に出力される。
【0158】
さらに、CPU80aは次のステップS804で、入力ポートの読み込み処理を行う。すなわち、各種スイッチ信号やセンサ信号を受ける入力ポートのデータを取得し、例えばRAM80cの所定領域に記憶させる。なお、センサ信号には、セレクタセンサ67や投入メダル関連センサ68、第1回胴インデックスセンサ55a、第2回胴インデックスセンサ55b及び第3回胴インデックスセンサ55cの各インデックスセンサ55、及びドアセンサ66等からの検出信号が含まれる。
ステップS804の読み込み処理では、スイッチ信号やセンサ信号のONエッジ、OFFエッジのデータが作成され、RAM80cに記憶される。
【0159】
続くステップS805でCPU80aは、タイマの減算処理として、デモタイマやウェイトタイマ等の所定のタイマの値の減算を行い、ステップS806でメダル払出処理を実行する。メダル払出処理は、後述する精算要求(精算ボタン14の操作に基づき後述するステップS814にてONされる)や払出要求(先のステップS712を参照)に応じてメダルの払出を行うための処理であるが、詳細は
図36により後述する。
【0160】
ステップS806のメダル払出処理を実行したことに応じ、CPU80aはステップS807でタイマ割込みカウンタをインクリメント(+1)する処理を実行し、続くステップS808でタイマ割込みカウンタの値が所定値(本例では「42」)か否かを判定する。タイマ割込みカウンタの値が所定値であれば、CPU80aはステップS809の投入、及び払出信号出力処理を実行してステップS810に進み、タイマ割込みカウンタの値が所定値でなければ、CPU80aはステップS809をパスしてステップS810に進む。
【0161】
ステップS809の投入、及び払出信号出力処理は、スロットマシンにおけるメダルの投入枚数や払出枚数を通知するための情報(投入信号ビット、払出信号ビット)をホールコンピュータに対して出力するための処理である。
上記のステップS808の処理が設けられることで、ステップS809の出力処理はタイマ割込み処理42回分の間隔(本例では62.58ms)を空けて実行される。
なお、図示は省略したが、タイマ割込みカウンタの値は、ステップS809の出力処理において0リセットされる(つまり「42」に達するごとに0リセットされる)。
【0162】
ステップS810のエラー解除判定処理は、例えば投入メダルエラーや払出センサエラー、ドア開放エラー等の各種のエラーについて、エラー発生時に対応してエラー状態が解除されたか否かを判定するための処理である。なお、該エラー解除判定処理の詳細は
図26により後述する。
【0163】
ステップS810のエラー解除判定処理を実行したことに応じ、CPU80aはステップS811、続くステップS812でそれぞれエラー種別に応じたエラーフラグのセット処理及び外部出力端子の出力処理を行う。具体的に、ステップS811でCPU80aは、発生エラーがドア開放エラーであった場合にはドア開放エラーフラグをセットして、外部集中端子板70における対応する外部出力端子を介した信号出力を行うための処理を実行する。また、ステップS812でCPU80aは、発生エラーが主基板エラー、RWMエラー、投入メダルエラー、払出センサエラー、不当入賞エラーの何れかであった場合にはそれぞれ対応するエラーフラグをセットして、外部集中端子板70における対応する外部出力端子を介した信号出力を行うための処理を実行する。
【0164】
ステップS812の処理を実行したことに応じ、CPU80aはステップS813でメダル投入処理を実行する。メダル投入処理は、メダル投入口12を介したメダルの投入やマックスベットボタン16の操作に応じて投入枚数やクレジットの値を更新する処理であるが、詳細については
図27により後述する。
【0165】
続くステップS814でCPU80aは、貯留メダルの精算処理を実行する。貯留メダルの精算処理は、精算ボタン14の操作有無等、様々な条件の判定を行って精算要求をONするための処理であるが、詳細については
図35により後述する。
【0166】
また、CPU80aは、ステップS814に続くステップS815で、回胴制御処理を実行する。回胴制御処理では、回転リール4を回転/停止させるためのステッピングモータ54の駆動制御に係る処理が行われるが、詳細については
図37により後述する。
【0167】
ステップS815の回胴制御処理を実行したことに応じ、CPU80aはステップS816で出力処理を実行する。この出力処理では、セットされた各種のデータを対応する出力先に出力するための処理が行われる。出力するデータには、前述した各種のコマンド(演出制御基板42に対するコマンド)やステッピングモータ54を駆動するためのデータ(前述した励磁データφ1〜φ4)も含まれる。
【0168】
ステップS816の出力処理を実行したことに応じ、CPU80aはステップS817のレジスタ復帰処理として、先のステップS801の処理で退避したレジスタの値を復帰させる処理を実行し、タイマ割込み処理を終える。
【0169】
[11-2.LED表示データの作成処理]
図25は、LED表示データの作成処理(S802)のフローチャートである。
前述のように、LED表示データの作成処理は、払出表示部10、貯留枚数表示部11としてのそれぞれの7セグメントLEDや、LED群9として設けられた投入メダルの枚数を示すLED、再遊技状態を示すLED、スタートランプとしてのLED、メダルの投入の許可/不許可を示すLEDや、設定値の表示を行うための7セグメントLEDを表示させるためのデータを作成する処理である。
【0170】
本例では、これらのLEDはいわゆるダイナミック制御により点灯制御される。具体的に、本例では、払出表示部10における1桁目の7セグメントLED(以下「払出枚数1桁目」)、2桁目の7セグメントLED(以下「払出枚数2桁目」)、貯留枚数表示部11における1桁目の7セグメントLED(以下「クレジット1桁目」)、2桁目の7セグメントLED(以下「クレジット2桁目」)、投入メダルの枚数を示す三つのLED(以下「投入枚数表示1〜3」)、再遊技状態を示すLED(以下「再遊技」)、スタートランプとしてのLED(以下「スタートLED」)、メダルの投入の許可/不許可を示すLED(以下「INSERT」)、設定値の表示を行うための7セグメントLED(以下「設定表示」)が、それぞれ以下のようにコモン0〜コモン6として区分されている。
コモン0…払出枚数1桁目
コモン1…払出枚数2桁目
コモン2…クレジット1桁目
コモン3…クレジット2桁目
コモン4…投入枚数表示1〜3
コモン5…INSERT、再遊技、スタートLED
コモン6…設定表示
そして、これらのコモン0〜6をタイマ割込み周期で順番にONして行きつつ、表示データをコモン0〜6に共通に出力するという制御手法が採られている。すなわち、ONとされたコモンのLEDのみが、共通出力された表示データに従って点灯制御されるものである。
【0171】
上記の前提を踏まえ、
図25の処理について説明する。
図25において、CPU80aは、先ずステップS901でエラー中であるか否かを判定する。エラー中であれば、CPU80aはエラー種別に対応したエラー表示コードをRAM82cのワークにおける払出枚数表示用のセット領域にセットし、ステップS903に進む。
一方、エラー中でなければ、CPU80aはステップS902のセット処理をパスしてステップS903に進む。
【0172】
ステップS903でCPU80aは、今回コモンを指定するデータをRAM82cのワークにおける所定領域(コモン指定データセット領域)にセットする。すなわち、例えば今回点灯制御の対象とすべきコモンがコモン0であれば、今回コモンとして該コモン0を指定するためのデータをセットする。
【0173】
続くステップS904でCPU80aは、今回コモン番号に対応する出力データをRAM82cのワークにおける所定領域(出力データセット領域)にセットする。
なお、今回コモン番号がコモン0又はコモン1(払出枚数1桁目又は2桁目)であって、先のステップS901でエラー中との判定結果が得られた場合には、ステップS904のセット処理では、先のステップS902でセットしたエラー表示コードに対応した出力データがセットされる。
【0174】
さらに、次のステップS905でCPU80aは、設定確認中フラグ(先のステップS508参照)の状態を確認し、設定確認中フラグがONであればステップS906に進んで現在の設定値vdに対応する出力データをRAM82cのワークにおける出力データセット領域にセットし、LEDデータの作成処理を終える。
一方、設定確認中フラグがOFFであれば、CPU80aはステップS906の処理をパスしてLEDデータの作成処理を終える。
【0175】
なお、上記の処理でワークにセットされたコモン指定データ及び出力データ(表示制御データ)に基づくLED側への信号出力は、
図24に示した出力処理(ステップS816)にて行われる。
【0176】
ここで、エラーの発生時においては、上記のLEDデータの作成処理に基づき、払出枚数1桁目、2桁目としての7セグメントLEDを用いたエラー表示(エラー報知)が行われる。この際、エラーの検知(検出信号のONエッジ検知)はタイマ割込み処理(ステップS804「入力ポートの読み込み処理」参照)で実行され、エラー検知に応じたエラー報知としても同じくタイマ割込み処理(LEDデータの作成処理)に基づいて行われる。従って、エラー報知はエラーの発生に応じて即座に実行されるものである。
【0177】
[11-3.エラー解除判定処理]
図26は、エラー解除判定処理(S810)のフローチャートである。
図26において、CPU80aはステップS1001で、エラーフラグに基づきエラー中であるか否かを判定する。エラー中でなければ、CPU80aはエラー解除判定処理を終える。
【0178】
一方、エラー中であれば、CPU80aはステップS1002で、エラーが解除されたか否かを判定する。前述のようにエラーの種別としては、主基板エラー、RWMエラー、投入メダルエラー、払出メダル無しエラー、払出センサエラー、不当入賞エラー、オーバーフローエラー、ドア開放エラーがある。ステップS1002ではこれらエラーについて、下記の解除条件に基づきエラー解除判定を行う。
主基板エラー…主制御基板40の交換
RWMエラー…設定変更処理(
図17)の実行
投入メダルエラー…リセットスイッチ72bのON
払出メダル無しエラー…リセットスイッチ72bのON、及びドアセンサ66(前述した中止解除動作の検知)
払出センサエラー…リセットスイッチ72bのON
不当入賞エラー…リセットスイッチ72bのON
オーバーフローエラー…リセットスイッチ72bのON、及びドアセンサ66(前述した中止解除動作の検知)
ドア開放エラー…ドアセンサ66(前述した中止解除動作の検知)
なお、主基板エラー、RWMエラーについては、リセットスイッチ72b、ドアセンサ66に基づくエラー解除が不能とされている。
【0179】
ステップS1002において、エラーが解除されていなければ、CPU80aはエラー解除判定処理を終える。
【0180】
一方、エラーが解除されていれば、CPU80aはステップS1003でエラー表示をクリアするための処理を実行する。具体的には、前述した払出枚数1桁目及び払出枚数2桁目としての7セグメントLEDを用いたエラー表示をクリア(例えば非点灯)するための処理を実行する。
【0181】
続くステップS1004でCPU80aは、エラーフラグをクリアする処理を実行し、さらに続くステップS1005で払出枚数表示を復帰させるための処理を実行して、エラー解除判定処理を終える。
【0182】
[11-4.メダル投入処理]
図27及び
図28は、メダル投入処理(S813)のフローチャートである。
図27において、CPU80aはステップS1101で、遷移及び滞留チェック処理を実行する。遷移及び滞留チェック処理は、メダル投入に係る不正検知のための処理であり、前述したセレクタセンサ67、投入メダル関連センサ68(第1投入メダルセンサ68a、第2投入メダルセンサ68b)、及び通過後センサ68cに対するメダルの通過態様が予め定められた異常通過態様に該当するか否かを判定し、異常が認められたことに応じて投入エラー監視フラグFeiをセットする(ONとする)処理である。
【0183】
遷移及び滞留チェック処理の説明に先立ち、先ずは本例における投入メダルエラーの検知手法を
図29を参照して説明しておく。
図29Aでは、メダル投入口12を介して1枚のメダルが正常に投入された場合におけるセレクタセンサ67、第1投入メダルセンサ68a(センサ1)、第2投入メダルセンサ68b(センサ2)、通過後センサ68cの検出信号の遷移を示している。なお、先の
図9で説明したように、これらのセンサはメダル投入口12から取込側流路21bにかけてのメダル通過経路において上流側から上記の順に配置されている。
【0184】
メダルが正常に投入された場合、セレクタセンサ67、センサ1、センサ2、通過後センサ68cは同順で順次ONされていく。このとき、セレクタセンサ67とセンサ1との配置間隔は、セレクタセンサ67がONからOFFに転じた後にセンサ1がONとなるように設定されている。また、センサ1とセンサ2との配置間隔は、センサ1がONとされている期間にセンサ2がONとなり、且つセンサ1のOFFタイミングがセンサ2のON期間内に訪れるように設定されている。さらに、センサ2と通過後センサ68cとの配置間隔は、センサ2のOFFタイミングの後に通過後センサ68cがONとなるように設定されている。
ここで、図のようにセレクタセンサ67がONに転じる時点を時点t1、OFFに転じる時点を時点t2、センサ1がONに転じる時点を時点t3、センサ2がONに転じる時点を時点t4、センサ1がOFFに転じる時点を時点t5、センサ2がOFFに転じる時点を時点t6、通過後センサ68cがONに転じる時点を時点t7、OFFに転じる時点を時点t8と表記する。
【0185】
本例の投入メダルエラーの検知手法では、センサ1、センサ2をメダルが通過する順番が所定の順番であるか否かという観点と、セレクタセンサ67、センサ1、センサ2、通過後センサ68cの検出信号のエッジ間の間隔がそれぞれ所定の時間内であるか否かという観点とに基づき、投入メダルエラーの検知を行う。
【0186】
図29Bは、メダルが正常に投入された場合におけるセンサ1、センサ2のON/OFF状態の変化の順番を示している。
正常なメダル投入に応じては、「センサ1=OFF、センサ2=OFF」の順番「0」の状態→「センサ1=ON、センサ2=OFF」の順番「1」の状態→「センサ1=ON、センサ2=ON」の順番「2」の状態→「センサ1=OFF、センサ2=ON」の順番「3」の状態、の順でセンサ1、センサ2のON/OFF状態が遷移する。
従って、センサ1、センサ2のON/OFF状態の変化の順番がこのような「0」→「1」→「2」→「3」の順番に合致しない場合には、投入メダルエラーとして扱う。
【0187】
但し、投入されたメダルが排出側流路21cを介して排出される際には、
図30Aに示すように、投入されたメダルがセンサ1(第1投入メダルセンサ68a)で検出された後に排出側流路21c側に落下してしまうことが起こり得る。この場合、センサ1、センサ2のON/OFF状態変化の順番が上記の順番に合致せず、投入メダルエラーとして検知されてしまうことになる。
具体的に、この場合におけるセンサ1、センサ2のON/OFF状態変化の順番は、
図30Bに示すように「センサ1、2共にOFF」→「センサ1=ON、センサ2=OFF」→「センサ1、2共にOFF」の順番、すなわち上記の順番表記に従えば「0」→「1」→「0」の順番で変化しているため、エラー検知の対象とされてしまうものである。
スロットマシンにおいて、メダルが排出側流路21cを介して排出されるケースは特段エラーとすべきケースではないため、上記のように投入メダルエラーとして検知されてしまうことは投入メダルエラー検知の適正性を保つ上で望ましくない。
【0188】
そこで、本例では、センサ1、センサ2のON/OFF状態変化の順番が「0」→「1」→「0」である場合には、
図29Bに示した正規の順番に合致していなくても、例外的に投入メダルエラーとして検知しないものとしている。
これにより、投入メダルエラー検知の適正性が担保される。
【0189】
また、本例では、セレクタセンサ67、センサ1、センサ2、通過後センサ68cの検出信号のエッジ間の時間に基づく投入メダルエラー検知のために、第1監視タイマ、第2監視タイマ、第3監視タイマ、第4監視タイマ、メダル通過第1カウンタ、メダル通過第2カウンタ及び通過後センサONタイマを用いる。
これら各種タイマやカウンタを用いた投入メダルエラーの検出手法は、
図29Aに示した各時点tに照らして記載すると、以下のようになる。なお、各タイマは、タイマ割込みごとに減算(−1)される。
[時点t1]
・第1監視タイマに所定値(例えば402ms相当のタイマ割込み数)をセット。
第1監視タイマが0になったら投入メダルエラーとする(セレクタセンサ67の連続ON時間が過大であるためエラーとする)。
[時点t2]
・メダル通過第1カウンタを0クリア
・第2監視タイマに所定値(例えば250ms相当のタイマ割込み数)をセット。
第2監視タイマが0になったら投入メダルエラーとする(セレクタセンサ67通過からセンサ1がONするまでの時間が過大であるためエラーとする)。
[時点t3〜t5の各時点]
・第3監視タイマに所定値(例えば101ms相当のタイマ割込み数)をセット。
第3監視タイマが0になったら投入メダルエラーとする(センサ1又はセンサ2の連続ON時間が過大であるためエラーとする)。
[時点t6]
・第4監視タイマに所定値(例えば150ms相当のタイマ割込み数)をセット。
第4監視タイマが0となったら投入メダルエラーとする(センサ1、2通過から通過後センサ68c通過までの時間が過大であるためエラーとする)。
・メダル通過第1カウンタ、メダル通過第2カウンタをそれぞれ+1。
メダル通過第1カウンタが「5」となったら投入メダルエラーとする(セレクタセンサ67の通過メダル枚数とセンサ1、2の通過メダル枚数とのずれが5枚に達したらエラー)。
メダル通過第2カウンタが「5」となったら投入メダルエラーとする(通過後センサ68cの通過メダル枚数とセンサ1、2の通過メダル枚数とのずれが5枚に達したらエラー)。
これら通過メダル枚数に基づくエラー検知は、メダルが連続投入された場合を想定している。本例では、セレクタセンサ67及び通過後センサ68cはメダルが連続投入された際に検出信号が連続ONする場合があるのに対し、センサ1、2はメダルが連続投入されても各メダルを検出できるように構成されている。
[時点t7]
・通過後センサ68cがONである間は通過後センサONタイマを+1する。
通過後センサONタイマが所定値(例えば101ms相当のタイマ割込み数)に達したら投入メダルエラーとする(通過後センサ68cの連続ON時間が過大であるためエラーとする)。
[時点t8]
・メダル通過第2カウンタを0クリア。
【0190】
上記の説明を踏まえ、
図31を参照して遷移及び滞留チェック処理(S1101)を説明する。
図31において、CPU80aはステップS1201で、全レジスタの値をRAM80cにおけるレジスタ退避領域に退避させる処理を実行し、ステップS1202で投入エラー監視フラグFeiをクリアする処理を実行する。
【0191】
ここで、ステップS1101の遷移及び滞留チェック処理は、不正行為への対策を講じるための処理であり、該遷移及び滞留チェック処理を実現するためのプログラム及びデータは、前述した第2のメモリ領域(
図13及び
図14参照)に格納されている。ステップS1202における投入エラー監視フラグFeiは該遷移及び滞留チェック処理により更新されるべきフラグ(データ)であるため、該投入エラー監視フラグFeiとしても第2のメモリ領域(第2のメモリ領域のR/W領域)に記憶される。また、上述した第1監視タイマ、第2監視タイマ、第3監視タイマ、第4監視タイマ、メダル通過第1カウンタ、メダル通過第2カウンタ及び通過後センサONタイマについても遷移及び滞留チェック処理で更新されるべきデータであるため、第2のメモリ領域(同じくR/W領域)に記憶される。
【0192】
ステップS1202で投入エラー監視フラグFeiをクリアすると、CPU80aはステップS1203でセンサの時間監視処理を実行する。すなわち、時間に基づく投入メダルエラー検知条件とされた第1監視タイマ、第2監視タイマ、第3監視タイマ、第4監視タイマ、及び通過後センサONタイマの値について、それぞれ上述した所定値に達したか否かを判定する。
続くステップS1204でCPU80aは、ステップS1203の監視処理の結果に基づきエラーであるか否かを判定する。すなわち、第1監視タイマ、第2監視タイマ、第3監視タイマ、第4監視タイマ、及び通過後センサONタイマの値のうち何れかが対応する所定値に達したか否かを判定する。
ステップS1204でエラーであると判定した場合、CPU80aはステップS1205で投入エラー監視フラグFeiをセットし、ステップS1206に処理を進める。
また、エラーでないと判定した場合、CPU80aはステップS1205をパスしてステップS1206に処理を進める。
【0193】
ステップS1206〜S1209では、センサ1、2のON/OFF状態変化の順番に基づく投入メダルエラー検知のための処理が行われる。
ステップS1206でCPU80aは、センサ1、2から入力される検出信号に変化があったか否かを判定する。すなわち、センサ1、センサ2の何れかの検出信号にONエッジ又はOFFエッジが検出されたか否かを判定する。センサ1、2の検出信号に変化がなければCPU80aは後述するステップS1210に処理を進める。
【0194】
一方、センサ1、2の検出信号に変化があれば、CPU80aはステップS1207で変化の順番が正常であるか否か、すなわち前述した「0」「1」「2」「3」の順番に合致するか否かを判定する。具体的には、これまでのセンサ1、2のON/OFF状態変化の順番が「0」→「1」→「2」→「3」の順番に合致しているか否かを判定する。
変化の順番が正常であれば、CPU80aはステップS1209のフラグセット処理をパスしてステップS1210に処理を進める。
【0195】
一方、変化の順番が正常でなければ、CPU80aはステップS1208で変化の順番が「1」→「0」(「0」→「1」→「0」)、すなわち前述した例外の順番に該当するか否かを判定する。変化の順番が「1」→「0」に該当していれば、CPU80aはステップS1209のフラグセット処理をパスしてステップS1210に処理を進める。これにより、メダルの排出が誤って投入メダルエラーとして検知されてしまうことの防止が図られ、投入メダルエラー検知の適正性を担保できる。
【0196】
また、ステップS1208において、変化の順番が「1」→「0」に該当していなければ、CPU80aはステップS1209に進み、投入エラー監視フラグFeiをセットし、ステップS1210に処理を進める。
【0197】
ステップS1210〜S1218では、前述したメダル通過第1カウンタ、メダル通過第2カウンタの値に基づくメダルエラー検知のための処理が行われる。
先ず、ステップS1210でCPU80aは、セレクタセンサ67の検出信号がOFFエッジであるか否かを判定し、OFFエッジであればステップS1211でメダル通過第1カウンタの値を0クリアしてステップS1212に進み、OFFエッジでなければステップS1211をパスしてステップS1212に進む。
【0198】
ステップS1212でCPU80aは、センサ1、2を正常に通過したか否かを判定する。具体的には、先のステップS1203で監視される時間の要素、及びステップS1207で監視される順番の要素の双方の面でメダルがセンサ1、2を正常に通過したか否かを判定する。
なお、メダルがセンサ2を通過したタイミングは該センサ2の検出信号がOFFに転じたタイミングであるため、ステップS1212で「正常に通過」と判定されるのは、センサ2の検出信号がOFFに転じた(OFFエッジが検知された)タイミングで実行されたタイマ割込み処理においてのみとなる。
【0199】
ステップS1212において、センサ1、2を正常に通過したと判定した場合、CPU80aはステップS1213でメダル通過第1カウンタ、メダル通過第2カウンタのそれぞれの値をインクリメント(+1)してステップS1214に進み、センサ1、2を正常に通過していないと判定した場合にはステップS1213をパスしてステップS1214に進む。
【0200】
ステップS1214でCPU80aは、メダル通過第1カウンタの値が5以上であるか否かを判定し、5以上でなければ(4以下であれば)ステップS1215でメダル通過第2カウンタの値が5以上であるか否かを判定する。
これらステップS1214、S1215において、メダル通過第1カウンタの値、メダル通過第2カウンタの値が5以上であれば、CPU80aはステップS1216で投入エラー監視フラグFeiをセットし、ステップS1217に処理を進める。
また、CPU80aは、ステップS1215でメダル通過第2カウンタの値が5以上でなければ、ステップS1216をパスしてステップS1217に処理を進める。
【0201】
ステップS1217でCPU80aは、通過後センサ68cの検出信号がOFFエッジであるか否かを判定し、OFFエッジであればステップS1218でメダル通過第2カウンタの値を0クリアしてステップS1219で全レジスタの復帰処理を実行した上で遷移及び滞留チェック処理を終える。一方、通過後センサ68cの検出信号がOFFエッジでなければ、CPU80aはステップS1218をパスしてステップS1219で全レジスタの復帰処理を実行し、遷移及び滞留チェック処理を終える。
【0202】
説明をメダル投入処理(
図27、
図28)に戻す。
ステップS1101の遷移及び滞留チェック処理を終えると、CPU80aはステップS1102で投入エラー監視フラグFeiの状態(ON/OFF状態)をチェックする。投入エラー監視フラグFeiがONであれば、CPU80aはステップS1123に進み、投入エラーフラグFerをセットする(ONとする)。そして、続くステップS1124でCPU80aは、投入メダルエラーである場合に対応して、ブロッカーソレノイド、及び「INSERT」LED(前述したLED群9におけるメダルの投入の許可/不許可を示すLED)をそれぞれOFFとするための処理(RAM80cのワークにおける対応値の更新処理)を実行し、メダル投入処理を終える。
【0203】
ここで、上記説明から理解されるように、メダル投入処理では、遷移及び滞留チェック処理(第2のメモリ領域におけるプログラム)でセットされた投入エラー監視フラグFeiに基づき、新たに投入エラーフラグFerをセットしている。
メダル投入処理における「遷移及び滞留チェック処理」を除く処理は、不正行為への対策を講じるためのプログラムには該当せず、従ってこれらの処理を実現するためのプログラムは第1のメモリ領域に格納されている。
前述のように、第1のメモリ領域におけるプログラムは、第1のメモリ領域におけるR/W領域のデータを参照及び更新することができるが、第2のメモリ領域のR/W領域に記憶されたデータについては参照のみが可能で更新は不許可とされている。すなわち、メダル投入処理(遷移及び滞留チェック処理は除く)では、第2のメモリ領域のR/W領域に記憶された投入エラー監視フラグFeiの参照のみは可能であるが、更新することまでは許可されない。
そこで、本例では、第2のメモリ領域のR/W領域に記憶された投入エラー監視フラグFeiをステップS1102で参照した結果に基づき、ステップS1123で投入エラーフラグFerを第1のメモリ領域のR/W領域においてセットするようにしている。すなわち、第1のメモリ領域のプログラムが自ら更新可能なフラグとして改めてセットしているものである。
【0204】
投入エラーフラグFerは、例えば先の
図25におけるステップS901や
図26におけるステップS1001等、第1のメモリ領域のプログラムによりエラー中であるか否かの判定において参照され、また
図26のエラー解除判定処理においてはエラーの解除に応じてステップS1004でクリア(OFF)される。このことからも理解されるように、不正検知に係るエラーフラグについては、第1のメモリ領域のプログラムが更新可能であることが要請されるものであり、上記のステップS1102、S1123の処理は、そのような第1のメモリ領域のプログラムが更新可能なフラグを実現しているものである。
【0205】
ここで、第1のメモリ領域の記憶容量は有限であるため、近年におけるスロットマシンの処理内容の充実化に対応するためには、全てのプログラムを第1のメモリ領域に格納することが困難となる場合があり、所定種類のプログラム、特に不正対策処理のプログラムを領域外に置くということが要請される。
本例のスロットマシンは、このように不正対策処理のプログラムを領域外に置いたことで必要とされる領域外フラグと領域内フラグとの連携を実現していることで、不正対策処理のプログラムを領域外に置くことへの対応を図っている。換言すれば、このようなフラグ連携の実現により、不正対策処理のプログラムを第1のメモリ領域に置く必要性を無くしているものであり、領域内に格納可能なプログラム容量の拡大化を図って、領域内プログラムによる処理内容の充実化を図ることができる。
【0206】
ところで、上記もしているように領域内用のエラーフラグ(投入エラーフラグFer)は、領域内プログラムによってセットされた(S1123)後は、同じく領域内プログラムによるエラー解除処理においてエラー解除の検知に応じてクリアされる(S1004)が、領域外用のエラー監視フラグ(投入エラー監視フラグFei)については、エラー解除の検知に応じてこれをクリアする処理は存在しない。
このため、領域外プログラムによる遷移及び滞留チェック処理(
図31)では、処理の開始にあたってエラー監視フラグを毎回クリアするようにしている(S1202)。これにより、エラー検知の適正性を確保することができる。
【0207】
なお、上記では不正対策に係るエラーフラグの例として投入エラーに係るエラーフラグを例示したが、他のエラーフラグ、例えば主基板エラー、RWMエラー、投入メダルエラー、払出メダル無しエラー、払出センサエラー、不当入賞エラー、オーバーフローエラー、ドア開放エラーに係るエラーフラグに関しても、同様に第2のメモリ領域のプログラムがエラー検知に応じて第2のメモリ領域のR/W領域にエラー監視フラグをセットし、第1のメモリ領域のプログラムが該エラー監視フラグを参照した結果に基づき対応するエラーフラグを第1のメモリ領域のR/W領域にセットすることもできる。
【0208】
再び説明を
図27に戻す。
CPU80aは、ステップS1102で投入エラー監視フラグFeiがOFFであった場合には、ステップS1103以降の処理により、正常なメダル投入に応じた投入枚数(賭数)やクレジットの値の更新、マックスベットボタン16の操作に応じた投入枚数(賭数)やクレジットの値の更新等を行う。
【0209】
この際、マックスベットボタン16の操作に応じた投入処理(マックスベット処理)では、ベットカウンタとベットタイマとが用いられる。
図32は、これらベットカウンタとベットタイマとを用いて行われる本例のマックスベット処理の概要を示したタイミングチャートである。
本例のマックスベット処理では、マックスベットボタン16がONされたことに応じて、ベットタイマに所定値(本例では50ms相当のタイマ割込み数)がセットされ、ベットタイマの値が消費されて「0」になると、賭数を設定するための投入処理(+1)が実行される。ベットカウンタは、このようにベットタイマ=0となって投入処理を実行する回数を規定するためのカウンタとされている。本例では、マックスベットボタン16がONされると、クレジットの値が許容する範囲内において、ベットカウンタの値がセットされる。具体的には、クレジットの値が「3」以上であれば「3」がセットされ、クレジットの値が「2」以下である場合にはクレジットの値と同値がセットされる。
なお、マックスベットボタン16は投入枚数が「1」以上の状況においてもONされ得るものであり、その場合には、クレジットの値が許容する回数分の投入処理を行うべきでない(賭数の上限=「3」であるため)。本例のメダル投入処理(S813)では、上記のようにベットカウンタの値をクレジットの値のみに基づきセットしても、マックスベット処理による投入枚数が賭数の上限値を超えないように工夫しているが、これについては後述する。
【0210】
上記説明を踏まえ、
図27におけるステップS1103以降の処理を説明する。
CPU80aはステップS1103で、メダル投入中であるか否か、具体的にはメダルがセンサ1又はセンサ2の何れかを通過中であるか否かを判定する。
メダル投入中であれば、CPU80aは後述するステップS1111に処理を進める。
【0211】
一方、メダル投入中でなければ、CPU80aはステップS1104に進み、ベットカウンタの値が「0」か否かを判定する。なお、ベットカウンタの値は、後述するステップS1128でマックスベットボタン16のONエッジが検出されたことに応じて、ステップS1129でセットされるものであり、該ステップS1104でベットカウンタの値が「0」でないということは、マックスベット処理中であることを意味する。
【0212】
ステップS1104において、ベットカウンタの値が「0」であれば(つまりマックスベット処理中でなければ)、CPU80aはステップS1111に処理を進める。
一方、ベットカウンタの値が「0」でなければ(マックスベット処理中であれば)、CPU80aはステップS1105でベットタイマの値をデクリメント(−1)し、ステップS1106でベットタイマの値が「0」であるか否かを判定する。これは、ベットタイマ=「0」に応じて投入処理(+1)を実行すべきか否かを判定していることに相当する。
【0213】
ベットタイマの値が「0」であれば、CPU80aはステップS1107に処理を進めて、投入処理に係る処理を実行する。
具体的に、CPU80aは、先ずステップS1107でベットカウンタの値をデクリメントする(つまり投入回数を1消費する)。
【0214】
そして、続くステップS1108でCPU80aは、投入枚数が「3」であるか否かを判定する。これは、マックスベットによる投入処理が不要であるか否かを判定していることに相当する。具体的には、メダル投入口12を介したメダル投入の影響でマックスベットによる投入処理回数が「3」未満の状態で投入枚数=「3」に達したため、マックスベットによる投入処理が不要となったケースであるか否かを判定するものである。
該ステップS1108の判定処理が設けられていることで、上述のようにベットカウンタの値としてクレジットの値のみに基づいた値(投入枚数は考慮しない値)を設定することが許容される。
【0215】
投入枚数が「3」であれば、CPU80aは後述するステップS1111に処理を進める。すなわち、マックスベットによる投入処理(以下で説明するステップS1110)は実行されない。
一方、投入枚数が「3」でなければ、CPU80aはステップS1109でベットタイマをセットし、続くステップS1110でクレジットの値のデクリメント(−1)、投入枚数のインクリメント、及び投入音コマンドのセットを行い、ステップS1111に処理を進める。なお、投入音コマンドは、演出制御基板42側にメダルの投入時に出力すべき効果音の出力指示を行うためのコマンドである。
【0216】
ステップS1111〜S1118の処理は、各種の条件判定を行った結果に基づきブロッカーソレノイド69とLED群9における「INSERT」LEDのON/OFFを制御するための処理である。
先ず、CPU80aはステップS1111で、エラー中か否か(各種エラーの少なくとも1つが生じているか否か)を判定し、エラー中であれば、ステップS1118でブロッカーソレノイド69及び「INSERT」LEDをOFFとするための処理(RAM82cのワークにおける対応値を更新する処理)を実行する。すなわち、エラーの発生に応じては、メダル投入口12から投入されたメダルがメダル排出口20から排出される状態となると共に、「INSERT」LEDのOFFにより遊技者にメダル投入が不許可の状態であることが報知される(メダル投入が不許可の状態)。
【0217】
一方、エラー中でなければ、CPU80aはステップS1112で投入可能フラグFaiを確認(ON/OFFの確認)する。投入可能フラグFaiは、メイン処理側でメダルの受付を開始すべきタイミングでONされ、スタートレバー17の操作に基づきOFFされるフラグである(
図19を参照)。
投入可能フラグFaiがOFFであれば、CPU80aは上記したステップS1118の処理を実行する。すなわち、投入可能フラグFaiがOFFであればメダル投入が不許可の状態となる。
【0218】
また、CPU80aは、投入可能フラグFaiがONであればステップS1113でメダルが払出中であるか否かを判定する。払出中であるか否かは、例えば後述する払出要求、又は精算要求の何れかがONであるか否かにより判定できる。
メダルが払出中であれば、CPU80aは上記したステップS1118の処理を実行してメダル投入が不許可の状態とし、払出中でなければステップS1114に処理を進める。
【0219】
ステップS1114でCPU80aは、ベット3枚(投入枚数=「3」)且つクレジット50枚の状態であるか否かを判定する。ベット3枚且つクレジット50枚の状態であれば、CPU80aは上記したステップS1118の処理を実行してメダル投入が不許可の状態とし、払出中でなければステップS1115に処理を進める。
【0220】
ステップS1115でCPU80aは、通過中のメダルを加味してベット3枚且つクレジット50枚の状態となるか否かを判定する。具体的には、現在がベット2枚且つクレジット50枚の状態であって、先のステップS1103でメダル投入中(センサ1又はセンサ2の何れかを通過中)と判定されか否かを判定する。これは、メダルがあと1枚取り込まれるとメダルの受付が禁止される受付禁止前状態において、センサ1、センサ2の何れかがメダルを検出中であるか否かを判定していることに相当する。
【0221】
ステップS1115において、通過中のメダルを加味してベット3枚且つクレジット50枚の状態とならない場合には、CPU80aはステップS1116に進み、ブロッカーソレノイド69及び「INSERT」LEDをONとするための処理を実行する。すなわち、この場合はメダル投入が許可の状態となる。
【0222】
一方、通過中のメダルを加味してベット3枚且つクレジット50枚の状態となる場合には、CPU80aはステップS1117に進み、ブロッカーソレノイド69をOFF、「INSERT」LEDをONとするための処理を実行する。すなわち、メダルの受付禁止前状態においてセンサ1、センサ2の何れかがメダルを検出中である場合には、メダル投入口12から投入されたメダルがメダル排出口20から排出される状態となる一方で、遊技者に対する「INSERT」LEDによる報知としては、メダル投入が許可である旨の報知が行われる。
【0223】
ここで、本例のスロットマシンでは、ブロッカーソレノイド69のOFFとマックスベットボタン16の受付の無効化とが連動するように処理が組まれている。具体的には、タイマ割込み処理における貯留メダルの精算処理(S814、
図35を参照)において、ブロッカーソレノイド69がOFFであるとマックスベットLEDをOFFとするための処理が実行される(S1303→S1307)。そして、マックスベットLEDのOFFに応じては、後述するステップS1125の処理(
図28)により、マックスベットボタン16の受付が無効化されるようになっている。具体的には、ステップS1128によるマックスベットボタン16のONエッジ検知確認のための処理がパスされるためマックスベットボタン16の操作受付が無効化される。
この結果、本例のスロットマシンにおいては、メダルの受付禁止前状態においてセンサ1、センサ2の何れかがメダルを検出中である場合には、ブロッカーソレノイド69のOFFに連動して、マックスベットボタン16の操作受付が無効化される。
【0224】
また、一方で、上記したステップS1103、S1115〜S1117の処理によると、メダルの受付禁止前状態以外の状態(ベット2枚且つクレジット50枚の状態以外の状態)にあっては、センサ1、センサ2の何れかがメダルを検出中であるか否かに関わらずブロッカーソレノイド69がOFFとされず、マックスベットボタン16の操作受付が無効化されない(但し、エラー中(S1111)、投入可能フラグFai=OFF(S1112)、払出中(S1113)、メダル受付禁止状態(S1114)は除く)。換言すれば、メダルの受付禁止前状態以外の状態においては、センサ1、センサ2の何れかがメダルを検出中であっても、マックスベットボタン16の操作受付が無効化されないものである。
【0225】
上記のように本例のスロットマシンにおいては、メダルがあと1枚取り込まれるとメダルの受付が禁止される受付禁止前状態において、センサ1、センサ2の何れかがメダルを検出中である場合にはマックスベットボタン16の操作受付を無効とする一方で、受付禁止前状態以外の状態においては、センサ1、センサ2の何れかがメダルを検出中であっても、マックスベットボタン16の操作受付を無効としないように処理を行っている。
メダルの受付禁止前状態においてセンサ1、センサ2の何れかがメダルを検出中である場合にマックスベットボタン16の操作受付を有効としてしまうと、いわゆるメダルの飲み込み(メダルが検出もされず返却もされずに取り込まれてしまうこと)を誘発する虞がある。
本例のスロットマシンでは、上記のような処理によってメダルの飲み込み防止を図っている。
【0226】
図27において、CPU80aは、上記したステップS1116、S1117又はS1118の処理を実行したことに応じて、
図28に示すステップS1119に処理を進める。
【0227】
図28に示すステップS1119〜S1129の処理は、主にメダルの正常な通過に応じて投入枚数又はクレジットの値をインクリメントし、またマックスベットボタン16の操作に応じて前述したベットカウンタやベットタイマの値をセットするための処理となる。
【0228】
先ず、ステップS1119でCPU80aは、センサ1、センサ2を正常に通過したか否かを判定する。該ステップS1119の処理は、前述したステップS1212(
図31)と同様の処理であり、「正常に通過」と判定されるのは、センサ2の検出信号がOFFに転じたことが検知されたタイミングで実行されたタイマ割込み処理においてのみとなる。換言すれば、該ステップS1119で「正常に通過」していないと判定される場合には、メダルがセンサ1、センサ2の何れかを通過中である場合も含まれるものである。
【0229】
ステップS1119において、センサ1、2を正常に通過したと判定した場合、CPU80aはステップS1120に進み、「INSERT」LEDのON/OFFを確認し、「INSERT」LEDがOFFであれば先に説明したステップS1123(
図27)に処理を進める。すなわち、先のステップS1119でセンサ1、センサ2を正常に通過したと判定されたにも関わらず投入許可中ではないと判定された場合に対応して、投入エラーフラグFerがセットされた上で(S1123)、メダル投入が不許可の状態とされる(S1124)。
【0230】
一方、「INSERT」LEDがONであれば、CPU80aはステップS1121で投入枚数又はクレジットの値をインクリメントし、投入音コマンドをセットする処理を実行する。ステップS1121において、投入枚数の値のインクリメントは、投入枚数の値が「2」以下である場合に行い、クレジットの値のインクリメントは投入枚数の値が「3」である場合に行う。
【0231】
続くステップS1122でCPU80aは、表示LEDデータの更新処理を実行する。すなわち、ステップS1121で投入枚数又はクレジットの値をインクリメントしたことに応じて、RAM82cのワークにおける対応する表示LEDデータ、すなわち投入枚数のインクリメントであれば前述したコモン4(投入枚数表示1〜3:
図25のLED表示データの作成処理を参照)として設定されるべきデータを更新し、クレジットのインクリメントであればコモン2、3として設定されるべきデータを更新する。
ステップS1122の更新処理を実行すると、CPU80aはメダル投入処理(S813)を終える。
【0232】
また、CPU80aは、先のステップS1119でセンサ1、2を正常に通過していないと判定した場合には、ステップS1125に処理を進める。
ステップS1125でCPU80aは、マックスベットLEDのON/OFFを確認し、マックスベットLEDがOFFであれば、メダル投入処理を終える。つまり、前述したようにマックスベットLEDのOFFに連動してマックスベットボタン16のONエッジ検知確認のための処理(S1128)が実行されないこととなり、マックスベットボタン16の操作受付が無効化されるものである。
【0233】
一方、マックスベットLEDがONであれば、CPU80aはステップS1126に進み、投入枚数の値が「3」であるか否かを判定する。投入枚数の値が「3」であれば、CPU80aはメダル投入処理を終える。投入枚数の値が「3」であれば、マックスベット処理は不要なためである。
【0234】
また、投入枚数の値が「3」でなければ、CPU80aはステップS1127に進み、ベットカウンタが「0」であるか否かを判定し、ベットカウンタが「0」でなければメダル投入処理を終える。ベットカウンタが「0」でないということはマックスベット処理中であることを意味するので、その場合にはマックスベットボタン16のONエッジ検知確認(S1128)やベットカウンタ及びベットタイマをセット(S1129)する処理は不要であるため、これらの処理をパスしてメダル投入処理を終えるものである。
【0235】
ベットカウンタが「0」であれば、CPU80aはマックスベットボタン16のONエッジ(前述した貯留メダル投入スイッチ基板64における投入スイッチによる検出信号のONエッジ)が検出されているか否かを判定する。マックスベットボタン16のONエッジが検出されていなければ、CPU80aはメダル投入処理を終える。
【0236】
一方、マックスベットボタン16のONエッジが検出されていれば、CPU80aはステップS1129に進み、クレジットからの投入が可能ならベットカウンタ及びベットタイマをセットする処理を実行する。具体的には、クレジットの値が「2」以下である場合にはベットカウンタにクレジットの値と同値をセットすると共にベットタイマをセットし、クレジットの値が「3」以上である場合にはベットカウンタに「3」をセットすると共にベットタイマをセットする。
CPU80aは、ステップS1129の処理を実行したことに応じ、メダル投入処理を終える。
【0237】
なお、上記のようにマックスベットボタン16のON操作に応じてベットカウンタ及びベットタイマがセットされると、以降で実行されるタイマ割込み処理におけるメダル投入処理では、先のステップS1104(
図27)でベットカウンタが「0」でないと判定されてステップS1105でベットタイマが消費される。そして、ベットタイマが「0」となったことに応じて(S1106)、先に説明したステップS1107以降の処理が実行されて、クレジットからの投入(S1110:クレジットを−1、投入枚数を+1)が実現される。
【0238】
ここで、
図27及び
図28に示したメダル投入処理によると、本例のスロットマシンでは、マックスベット処理中においても、メダル投入口12を介したメダルの投入が許可される。これは、ステップS1104でベットカウンタが「0」でないと判定された場合にもステップS1121による投入枚数又はクレジットのインクリメントが行われ得ることからも明らかである。
【0239】
本例のメダル投入処理では、このようにマックスベット処理中においてメダルの投入が行われた場合には、センサ1、センサ2の何れかがメダルを検出中の間はマックスベット処理が中断され、メダルが正常に投入されたと判定されてからマックスベット処理が再開される。さらに、マックスベット処理の中断の間に投入枚数が「3」(所定数)に至った場合は、マックスベット処理が終了するようになっている。
【0240】
図33は、マックスベット処理中にメダル投入した場合の動作についての説明図である。
図33では、投入枚数=「0」時にベットカウンタ=「3」と設定されたマックスベット処理中において、1枚分のベットが行われた(ベットカウンタの値が「1」消費された)直後にメダル投入が検知(センサ1、センサ2の何れかがメダル検知)された場合の動作を例示している。
【0241】
メダル投入口12を介して投入されたメダルがセンサ1、センサ2の何れかで検出されている間は、
図27に示すステップS1103でメダル投入中と判定されるため、ステップS1105〜S1110の処理が実行されず、ベットタイマの値やベットカウンタの値が消費されない。すなわち、マックスベット処理が中断される。
図33の例では、1枚分のベット直後におけるメダル通過中の期間に、ベットタイマの減算が中断される様子が示されている。
【0242】
メダルがセンサ1、2を通過し終えると、ベットタイマの減算が再開し(S1105)、ベットタイマ=「0」となると(S1106)、ベットカウンタの値が減算(S1107)され、投入枚数が「3」に至っていなければ(S1108)ベットタイマがセット(S1109)された上でクレジットからの投入(S1110)が行われる。
【0243】
このとき、ベットタイマの減算の再開によりマックスベット処理が再開された以降においては、ベットカウンタの値が「0」に至っていないにも関わらず投入枚数が「3」に至ってしまうことがある。具体的に、
図33の例では、マックスベット処理による1枚目の投入と2枚目の投入の間にメダル投入口12経由のメダル投入が行われたことで、上記2枚目の投入が行われた時点では、ベットカウンタの値が「0」に至っていないにも関わらず投入枚数が「3」に至ってしまう。
このようなケースにおいて、
図27及び
図28に示したメダル投入処理では、上記2枚目の投入の開始タイミング、すなわちベットカウンタ=「2」の状態でベットタイマ=「0」に至ったタイミングにおいて、ステップS1106からS1107に遷移してベットカウンタ=「1」に減じられた上で、S1108で投入枚数=「3」でないと判定され(この時点では投入枚数=「2」)、S1109でベットタイマがセットされた上で、ステップS1110でクレジットからの投入が行われる(投入枚数が「3」に至る)。
次のタイマ割込み以降では、ベットカウンタ=「1」且つ投入枚数「3」の状態にて、ステップS1105の処理によってベットタイマの値が徐々に消費されていく。そして、ベットタイマ=「0」まで消費されると、ステップS1106からS1107に遷移してベットカウンタが「1」→「0」に減じられた上で、S1108で投入枚数=「3」と判定される。つまり、クレジットからの投入(S1110)は実行されない。
【0244】
上記のような処理の結果、マックスベット処理による2枚目の投入(投入枚数=「3」に至る投入)以降は、
図33に示すように該2枚目の投入に応じてセットされたベットタイマの消費は行われるものの、該ベットタイマが「0」に達しても投入枚数の加算は行われない。
【0245】
また、
図27及び
図28に示したメダル投入処理によると、メダル投入によりマックスベット処理を中断している間に投入枚数=「3」に至った場合は、マックスベット処理が終了することになる。
この点について、例えば投入枚数=「2」、ベットカウンタ=「1」、ベットタイマ≠「0」の状態で1枚のメダルが正常に投入された場合を例に説明する。
先ず、メダルが正常に投入されると(S1119)、ステップS1121の処理により投入枚数=「3」に変化する。その後のタイマ割込みにおいては、メダル投入中とは判定されないため(S1103)、ベットタイマの消費が行われる(S1105)。そして、ベットタイマ=「0」に至ると、処理がS1106→S1107に遷移し、ベットカウンタが「1」→「0」に変化する。この場合、ステップS1108では投入枚数=「3」と判定されるため、ベットタイマのセット(S1109)、及びクレジットからの投入(S1110)は行われない。
さらに、それ以降のタイマ割込みでは、ステップS1104でベットカウンタ=「0」と判定されるようになるため、ステップS1105〜S1110の処理が行われなくなり、マックスベット処理が終了する。
【0246】
ここで、上記説明から理解されるように、本例のスロットマシンでは、マックスベット処理を実行中においてもメダル投入口12を介したメダルの投入受け付けを有効とし、センサ1、2の何れかがメダルを検出中である場合はマックスベット処理を中断し、該メダルが投入されたと判定されてからマックスベット処理を再開する共に、マックスベット処理の中断の間に投入枚数が所定数(「3」)に至った場合は、マックスベット処理を終了するようにしている。
これにより、メダルの飲み込み防止を図っている。
【0247】
また、
図27及び
図28に示したメダル投入処理によると、本例のスロットマシンにおいては、メダル投入口12を介したメダルの投入中においてもマックスベットボタン16の操作受付が行われる。
これは、ステップS1103でセンサ1、2の何れかをメダルが通過中であると判定された場合にもステップS1129によるONエッジ検知の確認処理が行われ得ることからも明らかである。
【0248】
本例のメダル投入処理では、メダル投入中においてマックスベットボタン16が操作された場合には、メダルが正常に投入されたと判定されてからマックスベット処理を行う。
【0249】
図34は、メダル投入中にマックスベットボタンが操作された場合の動作についての説明図である。
なお、
図34ではメダルの投入が投入枚数=「0」の状態で行われた場合を前提としている。
【0250】
先ず、センサ1、2の何れかをメダルが通過中である場合には、
図27及び
図28に示すメダル投入処理では、処理がステップS1103からS1111に遷移するため、ステップS1128でマックスベットボタン16のONエッジが確認されても、ステップS1129のマックスベット操作時の初期設定は実行されるものの、ステップS1106〜S1110の処理が実行されず、マックスベット処理は開始されない(ステップS1129でセットされたベットタイマの消費が行われない)。
この状態からステップS1119でメダルが正常に通過したと判定されると、投入枚数が加算(S1121)されて「0」→「1」となる。そして、次回以降のタイマ割込みでは、投入メダルの通過によりステップS1103でメダル投入中ではないと判定されるため、ベットタイマの消費(S1105)が開始される。すなわち、マックスベット処理が開始される。
【0251】
その後は、開始されたマックスベット処理によって、ベットタイマ=「0」のタイミングでベットカウンタの減算(S1107)、ベットタイマのセット(S1109)、及びクレジットからの投入(S1110)が行われるが、前述のように投入枚数が「3」に至った場合はステップS1108の処理によりクレジットからの投入は行われなくなる。
なお、この場合は、ステップS1107でベットカウンタの値が「1」に至ってステップS1110によるクレジットからの投入として2回目の投入が行われたことにより投入枚数が「3」に至ることになるが、このようなケースでは、前述もしたように、
図27及び
図28に示す処理によれば該2回目の投入に応じてセットされたベットタイマの消費は行われるものの、該ベットタイマが「0」に達しても投入枚数の加算は行われない。
【0252】
本例のスロットマシンでは、上記のようにメダル投入中においてマックスベットボタン16の操作を受け付けるものとし、さらに、センサ1、2の何れかがメダルを検出中においてマックスベットボタン16が操作された場合は、該メダルが正常に投入されたと判定されてからマックスベット処理を行うようにしている。
これにより、メダルの飲み込み防止を図っている。
【0253】
[11-5.貯留メダルの精算処理]
図35は、貯留メダルの精算処理(S814)のフローチャートである。
前述のように貯留メダルの精算処理は、精算ボタン14の操作有無等、様々な条件の判定を行って精算要求をONするための処理である。
図35において、CPU80aはステップS1301で、精算ボタン有効フラグFasがONであるか否かを判定する。精算ボタン有効フラグFasは、前述したメイン処理側でクレジット精算ボタン14の受付を有効とすべきタイミングでONされ、スタートレバー17の操作に基づきOFFされるフラグである(
図19を参照)。
精算ボタン有効フラグFasがONでなければ、CPU80aは貯留メダルの精算処理を終える。
【0254】
一方、精算ボタン有効フラグFasがONであれば、CPU80aはステップS1302に処理を進める。ステップS1302〜S1307の処理は、各種条件判定に応じてマックスベットLEDのON/OFFを制御するための処理とされる。
先ず、ステップS1302でCPU80aは、マックスベットボタン16のON/OFFを確認し、マックスベットボタン16がONである場合には、ステップS1307でマックスベットLEDをOFFとするための処理を実行する。すなわち、マックスベットボタン16が押されている間はマックスベットLEDはOFFとされる。
【0255】
なお、先の説明において、マックスベットLED=OFFに応じてはマックスベットボタン16の操作が無効化されることを言及(S1125参照)したが、
図24を参照して分かるように、タイマ割込み処理ではメダル投入処理の方が貯留メダルの精算処理よりも先に実行されるため、マックスベットボタン16が操作された際には、S1307でマックスベットLEDがOFFされるよりも前に、S1128でマックスベットボタン16のONエッジ検知が確認される。従って、上記のようにS1302からS1307に処理が遷移されても、マックスベットボタン16の操作に応じてマックスベット処理が開始されることについて支障が来されるものではない。
【0256】
ステップS1302でマックスベットボタン16がOFFであった場合、CPU80aはステップS1303でブロッカーソレノイド69のON/OFFを確認し、ブロッカーソレノイド69がOFFであれば上記したステップS1307でマックスベットLEDのOFF処理を実行する。先の
図27(メダル投入処理)で説明したように、ブロッカーソレノイド69は、投入中を加味してベット3枚且つクレジット50枚のとき(S1117)、各種エラー時、投入可能フラグFaiがOFF時、払出中、及びベット3枚且つクレジット50枚のとき(S1118)、さらには投入エラー時(S1124)にOFFされるので、これらの場合にはマックスベットLEDがOFF(つまりマックスベットボタン16の操作受付が無効な状態)される。
【0257】
ステップS1303でブロッカーソレノイド69がONであった場合、CPU80aはステップS1304でクレジット=「0」か否かを判定し、クレジット=「0」であればステップS1307のマックスベットLEDのOFF処理を実行する。すなわち、クレジットが0枚であれば投入するものがないためマックスベットボタン16の操作受付を無効化する。
【0258】
ステップS1304でクレジット=「0」でなかった場合、CPU80aはステップS1305で投入枚数=「3」か否かを判定し、投入枚数=「3」であればステップS1307のマックスベットLEDのOFF処理を実行する。すなわち、投入枚数が最大投入枚数に達している場合はマックスベットボタン16の操作受付を無効化する。
【0259】
ステップS1305で投入枚数=「3」でなかった場合、CPU80aはステップS1306でマックスベットLEDをONするための処理を実行する。すなわち、ステップS1302〜S1305の各条件が満たされた場合、マックスベットボタン16の操作受付を有効とする。
【0260】
CPU80aは、ステップS1306又はS1307の処理を実行したことに応じ、ステップS1308に処理を進める。ステップS1308〜S1315までの各判定処理は、精算要求をONとするか否かの各種の条件判定処理となる。
先ず、ステップS1308でCPU80aは、エラー中であるか否かを判定し、エラー中であれば貯留メダルの精算処理を終える。すなわち、エラー中は後述するステップS1312の精算ボタンON/OFF判定処理、及びステップS1316の精算要求ON処理が実行されず、従って精算ボタン14が無効化され、精算不許可状態となる。
【0261】
一方、エラー中でなければ、CPU80aはステップS1309に進みメダル投入中であるか否かの判定(先のステップS1103と同様にセンサ1、2の何れかを通過中であるか否かの判定)を行い、メダル投入中であれば貯留メダルの精算処理を終える。つまり、センサ1、2の何れかがメダルを検出中である場合は、精算ボタン14が無効化される。
【0262】
ここで、センサ1、2の何れかがメダルを検出中である場合においてメダルの精算処理(精算要求に応じたメダルの払出処理)が開始されてしまうと、払い出すべきメダル枚数に該検出中のメダルが含まれるか否かが定かでなくなる事態を誘発し、該検出中のメダルが飲み込まれてしまう虞がある。
そこで、本例のスロットマシンでは、上記のようにセンサ1、2の何れかがメダルを検出中である場合に精算ボタン14を無効化することで、メダルの飲み込み防止を図っている。
【0263】
CPU80aは、ステップS1309でメダル投入中でないと判定した場合は、ステップS1310でベットカウンタ≠「0」であるか否か、すなわち
図27及び
図28に示したメダル投入処理においてマックスベット処理中であるか否かを判定する。
ステップS1310において、ベットカウンタ≠「0」であれば、CPU80aは貯留メダルの精算処理を終える。つまり、マックスベット処理を実行中である場合は精算ボタン14が無効化される。
【0264】
ここで、マックスベット処理を実行中にメダルの精算処理が実行されてしまうと、払い出すべきメダル枚数にマックスベット処理で投入されたメダルが含まれるか否かが定かでなくなる事態を誘発し、メダルの飲み込みが発生する虞がある。
そこで、本例のスロットマシンでは、上記のようにマックスベット処理を実行中である場合に精算ボタン14を無効化することで、メダルの飲み込み防止を図っている。
【0265】
ステップS1310において、ベットカウンタ≠「0」ではないと判定した場合、CPU80aはステップS1311に進み、払出(精算)中か否かを判定する。払出中か否かは、後述するメダル払出処理(S806:
図36参照)でON/OFFが管理される払出制御信号がONであるか否かにより判定することができる。
ステップS1311において払出中と判定した場合、CPU80aは貯留メダルの精算処理を終える。すなわち、精算ボタン14が無効化され、精算不許可状態となる。
【0266】
一方、ステップS1311において払出中でないと判定した場合、CPU80aはステップS1312に進み精算ボタン14がONであるか否かを判定し、精算ボタン14がONでなければ貯留メダルの精算処理を終える。
【0267】
精算ボタン14がONであれば、CPU80aはステップS1313に進み、クレジット≠「0」であるか否かを判定し、クレジット≠「0」でなけばステップS1314で再遊技中か否かを判定し、再遊技中であれば貯留メダルの精算処理を終える。つまり、クレジット=「0」で再遊技中(つまり実質の投入枚数=「0」の状態)である場合は払い出すべきメダル枚数が「0」であることを意味するため、精算ボタン14がONとされても精算要求をONとしない。
【0268】
また、ステップS1314において再遊技中でなければ、CPU80aはステップS1315で投入枚数=「0」か否かを判定し、投入枚数=「0」であれば貯留メダルの精算処理を終える。
【0269】
ステップS1315で投入枚数=「0」でなかった場合と、先のステップS1313でクレジット≠「0」であった場合のそれぞれにおいて、CPU80aはステップS1316に進み精算要求をONとする。
そして、続くステップS1317で精算コマンドをセットし、貯留メダルの精算処理を終える。なお、精算コマンドは、少なくとも精算による払出が行われる旨を演出制御基板42側に通知するためのコマンドとされる。
【0270】
[11-6.メダル払出処理]
図36は、メダル払出処理(S806)のフローチャートである。
メダル払出処理は、前述した払出要求(入賞によるメダル払出の要求:
図23を参照)、又は精算要求に応じてメダル払出装置5における払出モータ75を駆動制御するための処理とされる。
【0271】
図36において、CPU80aはステップS1401で、メダルセンサ通過中タイマ=「0」であるか否かを判定する。メダルセンサ通過中タイマは、前述したメダル払出センサ76がONし続けてしまうエラーを検出するための時間計測を行うタイマであり、メダル払出センサ76がONに変化したことに応じて後述するステップS1412で所定値がセットされる。メダルセンサ通過中タイマの初期値は「0」であり、従って払出要求又は精算要求に応じて払出モータ75が駆動される前の段階ではメダルセンサ通過中タイマ=「0」である。
【0272】
メダルセンサ通過中タイマ=「0」であれば、CPU80aはステップS1402に進んで払出要求又は精算要求がONであるか否かを判定し、払出要求又は精算要求がONであれば、ステップS1403でエラー中(ドアエラー以外)であるか否かを判定する。すなわち、各種のエラーのうちドアエラーを除いたエラーの何れかが発生中であるか否かを判定する。
ステップS1403でエラー中でないと判定した場合、CPU80aはステップS1405に進み、メダル払出センサ76のON/OFFを確認する。なお、払出要求や精算要求がONであることが判定された時点では、後述する払出制御信号(払出モータ75の駆動を指示する信号)が未だONとされていないため、メダル払出センサ76はOFFである。
【0273】
ステップS1405においてメダル払出センサ76がOFFであった場合、CPU80aはステップS1406に進み、払出ビジーフラグFbeのON/OFFを確認する。払出ビジーフラグFbeは、払出制御信号のONと連動してONされるフラグであるため(ステップS1407参照)、払出要求や精算要求がONに変化した直後のタイマ割込みでは、払出ビジーフラグFbeはOFFである。
【0274】
ステップS1406において払出ビジーフラグFbeがOFFであった場合、CPU80aはステップS1407で払出制御信号をONとすると共に払出ビジーフラグFbeをONとする。そして、続くステップS1408でホッパーメダル無しタイマに所定値(本例では2.5秒に相当するタイマ割込み数)をセットして、ステップS1409に進む。
ホッパーメダル無しタイマは、払出制御信号がONとされて払出モータ75が駆動されているにも関わらずメダルの払出が行われていない時間を計測するためのタイマであり、メダルタンク5aにメダルが無いことを検知するためのタイマとして機能する。具体的には、以下で説明するように該ホッパーメダル無しタイマの値が「0」まで消費されたことで、払出メダル無しエラーがセットされるものである(ステップS1411参照)。
【0275】
ステップS1406において払出ビジーフラグがONであった場合、CPU80aは上記のステップS1407及びS1408をパスしてステップS1409に進む。
【0276】
ステップS1409でCPU80aは、ホッパーメダル無しタイマの値をデクリメント(−1)し、続くステップS1410でホッパーメダル無しタイマ=「0」であるか否かを判定する。ホッパーメダル無しタイマ=「0」でなければ、CPU80aはメダル払出処理を終える。
一方、ホッパーメダル無しタイマ=「0」であれば、CPU80aはステップS1411で払出メダル無しエラーをセットする。
【0277】
ステップS1411で払出メダル無しエラーをセットしたことに応じ、CPU80aはステップS1426で払出制御信号をOFFし、ステップS1427で払出ビジーフラグFbeをOFFとした上で、ステップS1428でメダルセンサ通過中タイマをクリアしてメダル払出処理を終える。
なお、払出メダル無しエラーがセットされた以降のタイマ割込みで実行されるメダル払出処理では、処理がステップS1401→S1402→S1403と経由し、該S1403でエラー中と判定されるため、CPU80aはステップS1404で払出ビジーフラグFbeのON/OFFを確認する。上記のように払出メダル無しエラーがセットされたことに応じては払出ビジーフラグFbeがOFFとされる(S1427)ため、該ステップS1404では払出ビジーフラグFbeがOFFと判定され、処理がステップS1426に遷移する。この点から理解されるように、払出メダル無しエラーがセットされた以降は払出モータ75を駆動するための処理がパスされ、メダルの払出処理が停止状態となる。
なお、ステップS1404において、払出ビジーフラグFbeがONであれば、CPU80aは前述したステップS1405に処理を進める。
【0278】
上記では払出要求又は精算要求に応じて払出制御信号がON(S1407)されることを説明したが、該払出制御信号のONに応じて払出モータ75により1枚のメダルが払い出されると、メダル払出センサ76がONとなる。
ステップS1405においてメダル払出センサ76がONであると判定した場合、CPU80aはステップS1412に進み、メダルセンサ通過中タイマに所定値(本例では98.34ms相当のタイマ割込み数)をセットし、ステップS1413に進む。
ステップS1413でCPU80aは、メダル払出センサ76のON/OFFを確認(つまり払出メダルがセンサ通過中/通過完了かの確認)し、メダル払出センサ76がON(通過中)であればステップS1423に処理を進める。
【0279】
ここで、メダルセンサ通過中タイマに所定値がセットされることで、以降のタイマ割込みで実行されるメダル払出処理では、先のステップS1401でメダルセンサ通過中タイマ=「0」でないと判定され、処理がステップS1413に進む。この際、メダル払出センサ76がON状態を継続していれば、処理がステップS1423に進む。
【0280】
ステップS1423〜S1425の処理は、メダル払出センサ76が所定時間以上ONし続けるエラーを検知するための処理である。
具体的に、ステップS1423でCPU80aは、メダルセンサ通過中タイマの値をデクリメント(−1)し、続くステップS1424でメダルセンサ通過中タイマ=「0」か否かを判定する。メダルセンサ通過中タイマ=「0」であれば、ステップS1425で払出センサエラーをセットし、前述したステップS1426に処理を進める。
なお、この場合もエラーがセットされた以降の処理の流れは上述した払出メダル無しエラーがセットされた以降の流れと同様となるため重複説明は避ける。
【0281】
一方、メダルセンサ通過中タイマ=「0」でなければ、CPU80aはメダル払出処理を終える。すなわち、メダル払出センサ76のON継続時間が正常範囲内である間は、ステップS1425のエラーセット処理が実行されず、次回のタイマ割込みでは、引き続きメダル払出センサ76がONであれば、処理がS1401→S1413→S1423→S1424と進み、減算後のメダルセンサ通過中タイマの値が「0」か否かが再度判定される。このような処理の流れにより、メダル払出センサ76のON継続時間(メダル通過中と検出されている時間)が監視されている。
【0282】
メダル払出センサ76に異常が無く、払出メダルがメダル払出センサ76を通過し終えると、先のステップS1413でメダル払出センサ76がOFFであることが確認され、処理がステップS1414に進む。
ステップS1414〜S1421の処理は、要求の種類が払出要求である場合、精算要求である場合のそれぞれに対応して、メダルの払出に応じて更新されるべき値を更新するための処理である。
先ず、ステップS1414でCPU80aは、先のステップS1402で確認された要求が払出要求であるか否かを判定する。払出要求であれば、CPU80aはステップS1415に処理を進め、払出要求でなければ(つまり精算要求であれば)ステップS1418に処理を進める。
【0283】
ステップS1415でCPU80aは、払出信号カウンタの値のインクリメント、払出表示枚数の値のインクリメント、及び入賞枚数の値のデクリメントを行う。なお、これら払出信号カウンタの値のインクリメント、払出表示枚数の値のインクリメント、及び入賞枚数の値のデクリメントの各処理については、先の
図23におけるステップS707、S708、及びS710の処理と同様となるため重複説明は避ける。
【0284】
ステップS1415の処理を実行したことに応じ、CPU80aはステップS1416で払出終了か否かを判定する。具体的には、入賞枚数=「0」であるか否かを判定する。
払出終了でなければ、CPU80aはステップS1420に進んでエラー中(ドアエラー以外)か否かを判定し、エラー中でなければステップS1427で払出ビジーフラグFbeをOFFとし、ステップS1428でメダルセンサ通過中タイマを0クリアした上でメダル払出処理を終える。
このようにメダルが1枚払い出され対応値が更新された場合には払出ビジーフラグFbeがOFFされ、メダルセンサ通過中タイマがクリアされる。このことで、次回のタイマ割込みでは、処理がステップS1401→S1402→S1403→S1405→S1406と進められ、該S1406で払出ビジーフラグFbeがOFFと判定され、S1407で払出制御信号及び払出ビジーフラグFbeがONとされる。これにより、入賞枚数=「0」となるまで、メダルの払出、及びステップS1415での対応値の更新が繰り返される。
【0285】
なお、ステップS1420でエラー中と判定された場合は、ステップS1426に処理が進められる。このようにエラー中であることに応じてステップS1426に進んだ以降の処理の流れについては説明済みであるため、重複説明は避ける。
【0286】
一方、ステップS1416において払出終了であれば、CPU80aはステップS1417で払出要求をOFFとし、ステップS1426に進む。
このように払出要求がOFFとされて処理がステップS1426に進められることで、次回のタイマ割込みでは、処理がステップS1401→S1402と進められ、該ステップS1402で払出要求又は精算要求がONでないと判定すると、CPU80aはステップS1422に処理を進め、メダル払出センサ76のON/OFFを確認する。
ステップS1422においてメダル払出センサ76がONであった(つまり払出要求及び精算要求がOFFであるのにメダル払出センサ76がONであった)場合、CPU80aはステップS1425に進んで払出センサエラーをセットし、ステップS1426に処理を進める。
一方、ステップS1422においてメダル払出センサ76がOFFであった場合、CPU80aは払出センサエラーをセットせずステップS1426に処理を進める。つまりこの場合、次回以降のタイマ割込みでは、払出要求又は精算要求がONとされるまで処理がステップS1401→S1402→S1422→S1426〜S1428と実行される。
【0287】
また、先のステップS1414において払出要求ではないと判定された場合(つまり精算要求と判定された場合)、CPU80aはステップS1418でクレジット又は投入枚数の値をデクリメント(−1)する。すなわち、例えば投入枚数≠「0」であれば投入枚数の値をデクリメントし、投入枚数=「0」であればクレジットの値をデクリメントする。
なお、再遊技による投入枚数については精算対象とはされないため、再遊技後においては投入枚数≠「0」であっても投入枚数のデクリメントは行わない。
【0288】
続くステップS1419でCPU80aは、精算終了か否か、すなわち精算可能なメダル数についての精算を終えたか否かを判定する。精算終了でなければ、CPU80aは先に説明したステップS1420に処理を進める。該ステップS1420でエラー中と判定された場合、又はエラー中でないと判定された場合のそれぞれの処理の流れは既に説明済みであるため重複説明を避ける。S1420でエラー中と判定されなければ、精算要求の場合は、精算終了となるまでメダルの払出及びステップS1418での対応値の更新が繰り返される。
【0289】
ステップS1419で精算終了と判定した場合、CPU80aはステップS1421で精算要求をOFFとすると共に精算終了コマンドをセットし、ステップS1426に処理を進める。すなわち、精算による払出が終了した場合も、以降は払出要求又は精算要求がONとされるまで処理がステップS1401→S1402→S1422→S1426〜S1428と実行される。
なお、精算終了コマンドは、少なくとも精算による払出処理が終了した旨を演出制御基板42側に通知するためのコマンドである。
【0290】
[11-7.回胴制御処理]
図37は、タイマ割込み処理における回胴制御処理(S815)のフローチャートである。
先ず、具体的な処理内容の説明に先立ち、回胴制御処理で用いられる回転リール4のステータスを表す各種フラグについて説明しておく。具体的には、以下の七つのフラグである。
・起動要求フラグFrr
・起動中フラグFG1
・センサ未通過フラグFmt
・回転中フラグFG2
・停止要求フラグFrs
・第1停止処理中フラグFG3
・第2停止処理中フラグFG4
これら七つのフラグは回転リール4ごとに設けられ、CPU80aは回転リール4ごとのステータスを把握することが可能とされている。
【0291】
図38は、回転リール4の回転/停止に係るステータスと上記各種フラグとの関係を説明するための図である。
先ず、図中の起動要求フラグFrrは、スタートレバー17がONされたことに応じて前述したメイン処理側でセットされる(
図19及び
図20を参照)。メイン処理側で起動要求フラグFrrがセットされると、その後のタイマ割込みにて起動中フラグFG1がセットされ(S1502)、回転リール4の起動回転が開始される。
本例では、回転リール4の起動回転(加速回転)は後述する起動タイムテーブルで定められた時間分行われ、起動回転が終了すると回転リール4が定速回転を維持する(前述した定常回転)。起動回転の終了に応じては、回転中フラグFG2がセットされる(S1507)。回転中フラグFG2は、回転リール4が定速回転を開始した後のステータスにあるか否かを表すフラグとして機能する。
【0292】
センサ未通過フラグFmtは、スタートレバー17がONされたことに応じてメイン処理側で起動要求フラグFrrと共にセットされるフラグであり、該センサ未通過フラグFmtがセット状態であることは、起動後における回転リール4の原点位置101が対応するインデックスセンサ55を未通過であることを表す。起動後における回転リール4の原点位置101が対応するインデックスセンサ55を通過すると、センサ未通過フラグFmtがクリアされ(「0」とされ)、これに応じて図柄カウンタ、ステップカウンタによる現在の図柄位置、図柄ステップ数のカウントがそれぞれ開始される(S1510、S1511)。
【0293】
停止要求フラグFrsは、停止ボタン18の操作に応じてメイン処理側でセットされるフラグである(
図20、
図21を参照)。具体的に、停止要求フラグFrsは、先に説明したように停止ボタン18の操作に応じて滑りコマ数が決定された後(S604)、対応する回転リール4(停止ボタン18が操作された回転リール4)が停止図柄に到達(S605)したことに応じてセット(S606)されるものである。
【0294】
第1停止処理中フラグFG3は、停止要求フラグFrsがセットされた後(つまり停止図柄に到達した後)、所定の停止ステップ条件が成立したことに応じてセットされるフラグである。具体的に本例では、第1停止処理中フラグFG3は現在の図柄ステップ位置が7番(前述した停止許可ステップ位置)以下で且つステッピングモータ54の励磁状態が2相励磁状態であることを条件としてセットされる(S1517〜S1519)。
なお、本例では、現在の図柄ステップ位置が停止許可ステップ位置に達したことに応じて即座に全相ONによるブレーキ制御を開始せず、所定数のタイマ割込み回数分の2相ONホールド状態を維持した上で全相ONによるブレーキ制御を開始するものとしている。これにより、回転リール4の停止がスムーズに行われるように図られている。具体的には、停止初期に回転リール4がカクつく等の不自然な動作の防止が図られる。
【0295】
第2停止処理中フラグFG4は、上記の2相ONホールドが終了したことに応じてセットされるフラグである(S1523)。第2停止処理中フラグFG4がセットされることで、対応するステッピングモータ54の全相ONによるブレーキ制御が開始される(S1524)。この全相ONの状態は所定時間継続され、その後にステッピングモータ54の励磁状態は全相OFFの状態に遷移する。
なお、本例では、センサ未通過フラグFmtを除いた起動要求フラグFrr、起動中フラグFG1、回転中フラグFG2、停止要求フラグFrs、第1停止処理中フラグFG3、及び第2停止処理中フラグFG4の各フラグは、上記の全相OFFが開始されるタイミングで一斉にクリアされる(S1529参照)。
【0296】
上記の説明を踏まえ、
図37の回胴制御処理について説明する。
先ず、CPU80aはステップS1501で、対象リール(処理対象の回転リール4)のステータスを確認する。すなわち、対象リールのステータスが起動要求状態(起動要求フラグFrr=「1」)、起動中状態(起動中フラグFG1=「1」)、回転中状態(回転中フラグFG2=「1」)、第1停止処理中状態(第1停止処理中フラグFG3=「1」)、第2停止処理中状態(第2停止処理中フラグFG4=「1」)、又は全フラグがOFFの状態の何れであるかを確認する。
具体的に、ステップS1501においては、第2停止処理中フラグFG4、第1停止処理中フラグFG3、回転中フラグFG2、起動中フラグFG1、起動要求フラグFrrの順でフラグ=「1」か否かを順番に判定していくようにされており、該判定において「1」と判定された時点で、該「1」と判定されたフラグに対応するステータスを現在のステータスとする。或いは、最後に判定した起動要求フラグFrrが「0」であれば、全フラグOFFのステータスに該当するとの判定結果を得る。
【0297】
ここで、本例では、回胴の起動から第2停止処理までにおけるステータスの判定について、上記のように起動処理から第2停止処理にかけての処理の順番とは逆順にフラグを確認していき、ONであることが確認されたフラグに対応するステータスを現在のステータスとして判定するものとしている。
ステータスの判定手法としては、例えば、対象とするフラグのみが「1」であるか否かを確認する手法(例えば、起動中状態であるか否かの判定を起動中フラグFG2のみが「1」であるか否かにより判定する等)も考えられるが、その場合には、ステータスの遷移に応じて前ステータスのフラグをクリアする処理を要してしまう。上記したステータス判定手法によれば、このようなステータス遷移に応じた前ステータスフラグの逐次のクリア処理を省略できる利点がある。
【0298】
ステップS1501において、全フラグOFFのステータスであった場合、CPU80aはステップS1533に進んで励磁データφ1〜φ4として全相OFFのデータをセットし、ステップS1531でそれら励磁データφ1〜φ4を出力バッファにセットした上で、後述するステップS1532に処理を進める。すなわち、全フラグOFFのステータスにある回転リール4については、ステッピングモータ54がOFF状態で維持される。
【0299】
また、ステップS1501において、対象リールのステータスが起動要求状態(図中、起動要求フラグ=「1」)であれば、CPU80aはステップS1502に進み、起動中フラグFG1のセット、及び図柄カウンタのクリアを行い、ステップS1505に処理を進める。
【0300】
ステップS1505でCPU80aは、起動タイムテーブルに基づいて相更新タイマの値をセットする。起動タイムテーブルは、回転リール4の起動回転を実現するための時間情報を格納したテーブルである。
【0301】
図39は、起動タイムテーブルの例を示している。
図示するように起動タイムテーブルは、インデックスの値ごとに、相更新タイマにセットすべきタイマ値が格納されたテーブル情報とされる。CPU80aは、インデックスの値の昇順でタイマ値を逐次取得(相更新タイマ値が「0」となるごとに取得:S1504を参照)し、取得したタイマ値を相更新タイマにセットする。なお、インデックスの値の初期値は「0」である。
【0302】
図37において、ステップS1505の処理は、対象リールについての現在のインデックスの値に応じて、起動タイムテーブルから対応するタイマ値を取得し、取得したタイマ値を相更新タイマにセットする処理となる。
【0303】
ここで、相更新タイマの値は、上記のようにステップS1502で起動中フラグFG1がセットされてからステップS1505で起動タイムテーブルからインデックス=「0」に対応したタイマ値がセットされた以降は、ステップS1503でデクリメントされる。すなわち、相更新タイマ値はタイマ割込みごとに逐次デクリメントされるものである。
この点から理解されるように、起動タイムテーブルに格納されたタイマ値は、タイマ割込み単位(本例では1.49ms単位)での時間情報を表すものである。
【0304】
起動タイムテーブルにおいて、インデックスごとに格納されたこのようなタイマ割込み単位での時間情報は、起動時におけるステッピングモータ54の2相励磁状態、1相励磁状態それぞれの維持時間を規定する情報として機能する。
具体的に、先の
図11を参照して説明したように、本例のステッピングモータ54は1−2相励磁により駆動されるものであり、具体的な励磁態様は、励磁ポインタ(励磁相ポインタ)PTの値により循環的に指し示される。後の説明により明らかとなるが、励磁ポインタPTの値は、ステップS1502で起動中フラグFG1がONとされたタイマ割込み(つまりステップS1505で起動タイムテーブルにおけるインデックス=「0」に対応した「1」がセットされたタイマ割込み)では、ステップS1530、S1531により先ずは1相励磁用の値(1,3,5,7の何れか)にセットされる。以降、起動中(起動中フラグFG1がON中)におけるタイマ割込みでは、励磁ポインタPTの値は、ステップS1504で相更新タイマの値が「0」となるごとに次の値に送られる(S1530)。すなわち、ステップS1504で相更新タイマの値が「0」となるごとに、励磁データφ1〜φ4として2相励磁用のデータ→1相励磁用のデータ→2相励磁用のデータ…と交互に設定されていく。
【0305】
この点からも理解されるように、起動タイムテーブルにおいて偶数のインデックス(「0」を含む)に対応するタイマ値は、1相励磁状態の維持時間を表し、奇数のインデックスに対応するタイマ値は2相励磁状態の維持時間を表すものとなる。
【0306】
図37において、CPU80aはステップS1505のタイマ値セット処理を実行したことに応じ、ステップS1506で相更新タイマ値=「0」であるか否かを判定する。これは、直前のステップS1505でセットしたタイマ値が「0」であるか否かを判定していることに相当する。
本例の起動タイムテーブルにおいては、最終インデックス(本例では「19」)に対応するタイマ値として「0」が格納されており、該「0」により起動処理の終了を表すこととしている。従って、インデックスの値が「19」に達し、ステップS1505でセットしたタイマ値が「0」となると、直後のステップS1506で相更新タイマ値=「0」と判定される。
ステップS1506で相更新タイマ値=「0」と判定した場合、CPU80aはステップS1507で回転中フラグFG2をセットし、ステップS1508に処理を進める。
【0307】
一方、ステップS1506で相更新タイマ値=「0」でないと判定した場合、CPU80aはステップS1530に進み、励磁ポインタPTをインクリメント(+1)して励磁ポインタPTに対応する励磁データφ1〜φ4を取得し、続くステップS1531で励磁データφ1〜φ4を出力バッファにセットする。
なお、ステップS1530で励磁ポインタPTを+1することで、起動時における励磁状態を1相励磁状態から開始することができる(後述のように本例では停止時の励磁ポインタPTは2相励磁状態に対応した値とされるため)。
【0308】
ステップS1531で励磁データφ1〜φ4のセット処理を実行したことに応じ、CPU80aはステップS1532で全リール終了か否かを判定する。すなわち、今回のタイマ割込みにおいて、ステップS1501からの処理を全ての回転リール4(4a〜4c)について実行したか否かを判定する。全リール終了でなければ、CPU80aは対象リールを次の回転リール4とした上でステップS1501に戻り、全リール終了であれば回胴制御処理を終了する。
【0309】
上記で説明した処理の流れにより、起動要求フラグFrrのONに応じて起動中フラグFG1をONとし、ステップS1505で起動タイムテーブルのインデックス=「0」に対応したタイマ値を相更新タイマにセットしたタイマ割込みでは、1相励磁に対応した励磁データφ1〜φ4がセットされ、対象リールの起動が1相励磁状態から開始される。
【0310】
起動中フラグFG1がONとされた直後のタイマ割込みでは、ステップS1501のステータス確認処理において、起動中状態であることが確認され、処理がステップS1503に進められる。ステップS1503でCPU80aは、相更新タイマの値をデクリメント(−1)し、続くステップS1504で相更新タイマ値=「0」か否かを判定する。
起動中フラグFG1がONされたタイマ割込みでは相更新タイマ値=「1」がセットされるため、その直後のタイマ割込みではステップS1504で相更新タイマ値=「0」と判定される。
このようにステップS1504で相更新タイマ値=「0」と判定した場合、CPU80aは先に説明したステップS1505に処理を進める。これにより、相更新タイマには、起動タイムテーブルにおける次のインデックスの値に対応したタイマ値が新たにセットされる。
【0311】
続くステップS1505では、前述したようにS1505でセットしたタイマ値が「0」であるか否かが判定され、「0」でなければ前述のようにステップS1530に処理が進められる。これにより、起動中フラグFG1がONされた直後のタイマ割込みでは、ステッピングモータ54の励磁状態が1相励磁状態から2相励磁状態に遷移される。
【0312】
さらに、起動中における以降のタイマ割込みでは、ステップS1503によるデクリメント後の相更新タイマ値が「0」となるまで、処理がステップS1501→S1503→S1504→S1532と遷移する。つまりこれにより、ステッピングモータ54の励磁状態は、相更新タイマにセットされたタイマ値に応じた時間長にわたってステップS1531でセットされた励磁データφ1〜φ4に対応する励磁状態で維持される。
また、このようにセットタイマ値に応じた時間長にわたり励磁状態が維持された以降のタイマ割込みにおいて、ステップS1504で相更新タイマ値=「0」と判定された場合には、処理がステップS1505に進められ、さらに次のインデックスの値に対応したタイマ値が相更新タイマにセットされ、以降、ステッピングモータ54は1相励磁状態/2相励磁状態のうち新たな励磁状態によりセットタイマ値に応じた時間長にわたって駆動される。
このように起動タイムテーブルの格納情報に従ってステッピングモータ54の1相励磁状態/2相励磁状態が交互に所定回数繰り返されることで、対象リールの起動回転が実現される。
【0313】
対象リールの起動回転の終了時には、処理がステップS1501→S1503→S1504→S1505→S1506→S1507→S1508と進められる。ステップS1508以降の処理(S1508〜S1515及びS1530〜S1532)は、定速回転中に対応した処理となる。
【0314】
先ず、ステップS1508でCPU80aは、停止要求フラグFrsがONであるか否かを判定する。停止要求フラグFrsがONでなければ、CPU80aはステップS1509でインデックスセンサ55(対象リールについての)のONエッジが検出されているか否かを判定する。
インデックスセンサ55のONエッジが検出されていれば、CPU80aはステップS1510でセンサ未通過フラグFmtのクリア、図柄カウンタのクリア(「1」をセット)、及びステップカウンタへの「25」(24+1)のセットを行う。
「25」にセットされたステップカウンタの値は、ステップS1510に続くステップS1511でデクリメントされることで「24」となる。このため、原点位置101の通過に応じては、図柄カウンタの値は「1」、ステップカウンタの値は「24」となる。つまり、1番の図柄の24番目の図柄ステップ位置が指し示される。
【0315】
一方、インデックスセンサ55のONエッジが検出されていなければ、CPU80aはステップS1510をパスしてステップS1511に進む。
【0316】
ステップS1511でCPU80aは、ステップカウンタの値をデクリメント(−1)し、次のステップS1512でステップカウンタの値=「0」か否かを判定する。すなわち、原点位置101の通過に応じて「24」にセットされたステップカウンタの値がタイマ割込みごとにステップS1511で減算されて「0」に達したか否かが判定される。
【0317】
ステップS1512において、ステップカウンタの値=「0」でなければ(つまり図柄切れ目位置でなければ)、CPU80aは前述したステップS1530以降の処理を実行する。これにより、定速回転中においてもステッピングモータ54が1相励磁状態、2相励磁状態を交互に繰り返す態様により駆動される。但し、定速回転中においては、1相励磁状態、2相励磁状態の切替周期はタイマ割込み周期(1タイマ割込みごとの切替)となる。
【0318】
また、ステップS1512においてステップカウンタの値=「0」であれば、CPU80aはステップS1513に進み、ステップカウンタへの「24」のセット、及び図柄カウンタの値のインクリメント(+1)を行った上で、ステップS1514で図柄カウンタの値が「22」以上であるか否かを判定する。これは、図柄カウンタが異常な値を示しているか否かを判定していることに相当する(回転リール4における図柄数は「21」)。
図柄カウンタの値が「22」以上であれば、CPU80aはステップS1515で回転リール4の再起動のための処理を行う。具体的には、対象リールについてのセンサ未通過フラグFmt、及び起動要求フラグFrrをセットすると共に、回転中フラグFG2、及び起動中フラグFG1をクリアする。この結果、次回のタイマ割込みでは処理がステップS1501→S1502を経由して実行されるものとなり、対象リールが再起動される。
ステップS1515の処理を実行すると、CPU80aはステップS1530に処理を進める。
【0319】
一方、ステップS1514において図柄カウンタの値が「22」以上でなければ、CPU80aは異常時に対応した上記ステップS1515の処理はパスして、ステップS1530以降の処理を実行する。
【0320】
なお、ステップS1515による再起動のための処理は、ステップS1508で停止要求フラグFrsがOFFであると判定された場合に実行される。この点からも理解されるように、本例のスロットマシンでは、停止のための処理の開始時以降には回転リール4の再起動が行われない。
【0321】
続いて、メイン処理側で停止要求フラグFrsがセットされた以降に実行される処理について説明する。換言すれば、停止図柄への到達が検知された以降に実行される処理である。
停止要求フラグFrsがセットされた直後のタイマ割込みでは、ステップS1508で停止要求フラグFrs=「ON」と判定され、ステップS1516以降の処理が実行される。
【0322】
先ず、ステップS1516でCPU80aは、ステップカウンタの値をデクリメントした上で、ステップS1517でステップカウンタの値が「8」未満であるか否かを判定する。これは、現在のステップ位置が停止図柄における前述した「停止許可ステップ位置」(本例では7番のステップ位置)以降の図柄ステップ位置(ステップ番号が7以下のステップ位置)に到達したか否かを判定していることに相当する。
ステップカウンタの値が「8」未満でなければ、CPU80aはステップS1530以降の処理を実行する。すなわち、この場合は対象リールが定速回転状態で維持される。
一方、ステップカウンタの値が「8」未満であれば、CPU80aはステップS1518に進み、以降で説明する停止のための処理を実行することになる。
【0323】
ここで、上記のステップS1517の処理は、先の
図21に示したステップS606で停止要求フラグFrs=ONとされたこと(換言すればステップS605で停止図柄に到達していることが確認されたこと)に応じて実行されるものである。このとき、ステップS602からステップS603に処理が遷移した時点(停止操作が行われた時点)での図柄ステップ位置が7番よりも十分に手前(ステップ番号的に大きい)であった場合、或いは5番以下であって該ステップS603の処理で次の図柄まで待機が行われた場合や、ステップS604で決定された滑りコマ数が1以上であった場合には、ステップS606で停止図柄への到達が確認されるときの図柄ステップ位置は7番よりも十分に手前であることになる。従って、これらのケースでは、ステップS1516からステップS1517に処理が遷移した時点での図柄ステップ位置は7番以上となる。
一方、ステップS602からステップS603に処理が遷移した時点での図柄ステップ位置が6番であり且つステップS604で決定された滑りコマ数が「0」であった場合には、ステップS606で停止図柄への到達が確認されるときの図柄ステップ位置は6番となるため、ステップS1516からステップS1517に処理が遷移した時点での図柄ステップ位置は6番以下となる。
従って、ブレーキの開始タイミングは、基本的には停止図柄における7番以下の図柄ステップ位置とされるが、後者のケース、すなわち停止操作時の図柄ステップ位置が6番で且つ滑りコマ数が「0」のケースでは6番以下の図柄ステップ位置とされる。
【0324】
CPU80aはステップS1518で、励磁ポインタPTの値が奇数であるか否かを判定する。これは、対象リールについてのステッピングモータ54の励磁状態が2相励磁状態であるか否かを判定していることに相当する(
図11Cを参照)。
図38で説明したように本例では回転リール4の停止にあたり2相励磁状態を所定時間維持した上で全相励磁によるブレーキをかけるため、ステップS1518の判定処理を設けている。
【0325】
ステップS1518において励磁ポインタPTの値が奇数でなければ、CPU80aはステップS1530以降の処理を実行する(つまり定速回転状態が維持される)。
一方、励磁ポインタPTの値が奇数であれば、CPU80aはステップS1519で第1停止処理中フラグFG3をセットした上で、ステップS1520で相更新タイマをセットする。具体的に、本例では2相励磁状態を維持するための時間として2.98msに相当するタイマ割込み数(「2」)を相更新タイマにセットする。
【0326】
続くステップS1521でCPU80aは、相更新タイマ値をデクリメントし、ステップS1522で相更新タイマ値=「0」であるか否かを判定する。相更新タイマ値=「0」でなければ、CPU80aはステップS1532に進む。すなわち、これにより2相励磁状態が維持(ホールド)される。
一方、相更新タイマ値=「0」である場合、すなわち2タイマ割込み分の2相励磁状態のホールドが完了した場合、CPU80aはステップS1523に進み、第2停止処理中フラグFG4をセットする。さらに、続くステップS1524でCPU80aは、励磁データφ1〜φ4として全相ONに対応したデータをセットすると共に全相ON用のタイマ値の相更新タイマへのセットを行い、ステップS1531に進む。これにより、対象リールについて全相ONによるブレーキ制御が開始される。
本例では、全相ONホールドにあたってステップS1524でセットするタイマ値は「255」とされる。すなわち、全相ONホールドの時間長は約380msとされる。
【0327】
上記のように全相ONがセットされた以降のタイマ割込みでは、第2停止処理中フラグFG4がセットされたことに応じて、処理がステップS1501→S1525と進められる。ステップS1525でCPU80aは、相更新タイマ値をデクリメントし、ステップS1526で相更新タイマ値=「0」か否かを判定する。相更新タイマ値=「0」でなければ、CPU80aはステップS1532に進む。すなわち、相更新タイマ値=「0」となるまで全相ON状態が維持される。
【0328】
一方、相更新タイマ値=「0」であれば、CPU80aはステップS1527に進み、励磁ポインタPTの値に所定値を加算する。具体的に、本例では「4」を加算する。なお、このように全相励磁によるブレーキ制御の終了後に励磁ポインタPTの値に所定値を加算する意義については改めて説明する。
【0329】
その上で、CPU80aはステップS1528で励磁データφ1〜φ4として全相OFFに対応するデータをセットし、ステップS1529でステータスのクリア処理、具体的には起動要求フラグFrr、起動中フラグFG1、回転中フラグGF2、停止要求フラグFrs、第1停止処理中フラグFG3、及び第2停止処理中フラグFG4をクリアする処理を実行して、ステップS1531の励磁データセット処理を実行する。これにより、全相励磁によるブレーキ制御の終了に応じて、ステッピングモータ54の励磁状態は全相OFFの状態に移行され、さらに回転リール4の起動・停止に係る各種フラグがOFFに切り替えられる。これら各種フラグのOFFにより、以降もステッピングモータ54の励磁状態は全相OFFの状態で維持される(S1501→S1533→S1531のパスを参照)。
【0330】
ここで、回転リール4については、ステッピングモータ54に対するブレーキ制御を開始しても、ブレーキをかけたステップ位置で停止するものとはならず、或る程度進んだステップ位置において停止する。具体的に、本例のスロットマシンにおいては、ブレーキをかけたステップ位置(全相ONとしたステップ位置)から4ステップ進んだステップ位置で回転リール4が停止する(定常回転からの停止時)。
このため本例では、ブレーキ制御に応じて回転リール4が停止した以降において、励磁ポインタPTの値を「+4」している。具体的に、上記したステップS1527の処理によると、所定時間にわたる全相ONホールドが終了したタイミングで励磁ポインタPTの値が「+4」される。
【0331】
これにより、ブレーキをかけたステップ位置と実際に回転リール4が停止したステップ位置とのずれに応じて励磁ポインタPTの位置を進めることができ、正確なリール制御の実現を図ることができる。
【0332】
なお、上記では励磁ポインタPTの位置を所定数進めた位置に更新するタイミングを全相ONホールドの終了時点とする例を挙げたが、該タイミングは、対象リールの次回の起動回転が更新後の励磁ポインタPTの位置を基準として開始されるように設定されればよく、例えば、ステップS1502のタイミングとする等、他のタイミングとすることもできる。
【0333】
<12.実施の形態のまとめ>
上記のように実施の形態の遊技機(スロットマシン)は、メダル投入口(同12)から投入されたメダルを取り込むための取込経路(取込側流路21b)と、メダル投入口から投入されたメダルを返却するための返却経路(排出側流路21c)と、メダル投入口から投入されたメダルの流下経路を、返却経路または取込経路のいずれかの流下経路に切り替える流路切替手段(流路切替板21d、ブロッカーソレノイド69)と、取込経路において配置された第1投入メダルセンサ(同68a)、及び第1投入メダルセンサよりも取込経路における下流側に配置された第2投入メダルセンサ(同68b)と、第1投入メダルセンサと第2投入メダルセンサによるメダルの検出態様に基づき、メダル投入についてのエラー判定を行うエラー判定手段(CPU80a)とを備える。
そして、エラー判定手段は、メダルの検出態様が、第1及び第2投入メダルセンサの双方がメダルを非検出である第1状態(順番「0」)、第1投入メダルセンサがメダルを検出し第2投入メダルセンサがメダルを非検出である第2状態(順番「1」)、第1及び第2投入メダルセンサの双方がメダルを検出している第3状態(順番「2」)、第1投入メダルセンサがメダルを非検出で第2投入メダルセンサがメダルを検出している第4状態(順番「3」)、の順番で遷移する検出態様である場合に正常にメダルが通過したとの判定をする一方、前記順番とは異なる状態遷移による検出態様である場合にエラーとの判定をする検出順序判定手段を含み、検出順序判定手段は、第2状態の次に第1状態に遷移した場合には、エラーではないとの判定をしている(
図31等を参照)。
【0334】
これにより、投入メダルエラー検知の適正性が担保され、適正なメダル投入エラー判定を行うことができる。
【0335】
また、実施の形態の遊技機は、1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となると共に、表示態様を変化させることが可能な可変表示装置(図柄回転ユニット3)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされた遊技機であって、メダル投入口から投入されたメダルを賭数の設定に用いるために取り込むための取込経路と、取込経路において配置された第1投入メダルセンサ、及び第1投入メダルセンサよりも取込経路における下流側に配置された第2投入メダルセンサと、メダル投入口を介して取り込まれクレジットとして貯留されているメダルが賭数の設定に用いられるように指示するためのベット操作手段(マックスベットボタン16)と、ベット操作手段の操作受付を有効又は無効に制御する操作受付制御手段(CPU80a)とを備えている。
そして、操作受付制御手段は、メダルがあと1枚取り込まれるとメダルの受付が禁止される受付禁止前状態において、第1又は第2投入メダルセンサの何れかがメダルを検出中である場合にはベット操作手段の操作受付を無効とする一方で、受付禁止前状態以外の状態においては、第1又は第2投入メダルセンサの何れかがメダルを検出中であっても、ベット操作手段の操作受付を無効としない(
図27等を参照)。
【0336】
これにより、メダルの飲み込み防止を図ることができる。
【0337】
また、実施の形態の遊技機は、メダル投入口から投入されたメダルを取り込むための取込経路と、取込経路に沿って配置された複数の投入メダルセンサと、クレジットとして貯留されたメダルの精算を指示するためのメダル精算操作手段(精算ボタン14)と、メダル精算操作手段に対する操作に基づき、メダルの精算のための処理を行う精算処理手段(CPU80a)とを備えている。
そして、精算処理手段は、複数の投入メダルセンサの何れかがメダルを検出中である場合に、メダル精算操作手段を無効化している(
図35等を参照)。
【0338】
これにより、メダルの飲み込み防止を図ることができる。
【0339】
また、実施の形態の遊技機は、1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となると共に、表示態様を変化させることが可能な可変表示装置の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされた遊技機であって、メダル投入口から投入されたメダルを賭数の設定に用いるために取り込むための取込経路と、取込経路において配置された第1投入メダルセンサ、及び第1投入メダルセンサよりも取込経路における下流側に配置された第2投入メダルセンサと、第1投入メダルセンサと前記第2投入メダルセンサによるメダルの検出態様が正常である場合にメダルが投入されたことを判定する投入判定手段(CPU80a)と、賭数が所定数に満たない状態において投入判定手段によりメダルが投入されたと判定されたことに応じて、賭数を増加させる処理を行う投入メダルベット処理手段(CPU80a)と、クレジットとして貯留されているメダルが所定数の賭数の設定に用いられるように指示するためのマックスベット操作手段と、マックスベット操作手段に対する操作に基づき、クレジットとして貯留されているメダル数が許容する範囲内において、賭数を所定数に達するまで増加させるためのマックスベット処理を行うマックスベット処理手段(CPU80a)とを備えている。
そして、マックスベット処理手段は、第1又は第2投入メダルセンサの何れかがメダルを検出中においてマックスベット操作手段が操作された場合は、投入判定手段により該メダルが投入されたと判定されてから、マックスベット処理を行っている(
図34等を参照)。
【0340】
これにより、メダルの飲み込み防止を図ることができる。
【0341】
また、実施の形態の遊技機は、1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となると共に、表示態様を変化させることが可能な可変表示装置の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされた遊技機であって、メダル投入口から投入されたメダルを賭数の設定に用いるために取り込むための取込経路と、メダル投入口を介して取り込まれクレジットとして貯留されているメダルが所定数の賭数の設定に用いられるように指示するためのマックスベット操作手段と、賭数が所定数に満たない状態においてマックスベット操作手段が操作された場合に、クレジットとして貯留されているメダル数が許容する範囲内において、賭数を所定数に達するまで増加させるためのマックスベット処理を行うマックスベット処理手段と、クレジットとして貯留されたメダルの精算を指示するためのメダル精算操作手段と、メダル精算操作手段に対する操作に基づき、メダルの精算のための処理を行う精算処理手段とを備えている。
そして、精算処理手段は、マックスベット処理手段がマックスベット処理を実行中である場合に、メダル精算操作手段を無効化している(
図35等を参照)。
【0342】
これにより、メダルの飲み込み防止を図ることができる。
【0343】
また、実施の形態の遊技機は、1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となると共に、表示態様を変化させることが可能な可変表示装置の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされた遊技機であって、メダル投入口から投入されたメダルを賭数の設定に用いるために取り込むための取込経路と、取込経路において配置された第1投入メダルセンサ、及び第1投入メダルセンサよりも取込経路における下流側に配置された第2投入メダルセンサと、第1投入メダルセンサと第2投入メダルセンサによるメダルの検出態様が正常である場合にメダルが投入されたことを判定する投入判定手段と、賭数が所定数に満たない状態において投入判定手段によりメダルが投入されたと判定されたことに応じて、賭数を増加させる処理を行う投入メダルベット処理手段と、クレジットとして貯留されているメダルが前記所定数の賭数の設定に用いられるように指示するためのマックスベット操作手段と、マックスベット操作手段に対する操作に基づき、クレジットとして貯留されているメダル数が許容する範囲内において、賭数を所定数に達するまで増加させるためのマックスベット処理を行うマックスベット処理手段とを備えている。
そして、投入メダルベット処理手段は、マックスベット処理手段がマックスベット処理を実行中においてもメダル投入口を介したメダルの投入受け付けを有効とし、マックスベット処理手段は、第1投入メダルセンサ又は第2投入メダルセンサの何れかがメダルを検出中である場合はマックスベット処理を中断し、投入判定手段により該メダルが投入されたと判定されてからマックスベット処理を再開し、中断の間に賭数が所定数に至った場合はマックスベット処理を終了している(
図27及び
図28等を参照)。
【0344】
これにより、メダルの飲み込み防止を図ることができる。
【0345】
また、実施の形態の遊技機は、回転方向に沿って複数の図柄が表示された回胴(回転リール4)と、複数の励磁相を具備するモータにより、回胴を所定のステップ角を最小回転単位として回転駆動する回転駆動手段(ステッピングモータ54、回胴モータ駆動部85)と、遊技動作を進行させるための処理を実行する制御手段(CPU80a)とを備えている。
そして、制御手段は、回胴の回転開始命令に応じて回胴を徐々に加速させるように起動させる起動処理を行う回胴起動手段と、起動処理の後、回胴を定常回転させる定常回転手段と、定常回転中において回胴の有効な回転停止操作が行われたことに応じて、該回転停止操作が行われたときの図柄位置に基づいて所定の最大滑りコマ範囲内で停止位置を決定する停止位置決定手段と、停止位置決定手段が決定した停止位置に対応する図柄の特定の停止ステップ位置に達したことに応じて、回胴を停止させるための停止制御を開始する停止手段とを含む。
また、回胴起動手段及び定常回転手段は、モータの励磁相ごとにセットされるべき励磁データを循環的に指し示す励磁相ポインタ(励磁ポインタPT)を用いて、該励磁相ポインタが指し示す励磁データに基づく駆動信号を逐次モータに出力して回胴を回転させる。
さらに、制御手段は、停止手段が停止制御を開始した以降において、励磁相ポインタの位置を停止制御が開始された時点での位置よりも所定数進めた位置に更新するポインタ位置更新手段をさらに含み、回胴起動手段は、ポインタ位置更新手段により更新された励磁相ポインタの位置を基準として起動処理を開始している(
図37等を参照)。
【0346】
これにより、ブレーキをかけたステップ位置と実際に回胴が停止したステップ位置とのずれに応じて励磁相ポインタの位置を進めることができ、正確なリール制御の実現を図ることができる。
【0347】
また、実施の形態の遊技機は、回転方向に沿って複数の図柄が表示された複数の回胴と、回胴ごとに設けられ対応する前記回胴を回転駆動する複数の回転駆動手段と、遊技動作を進行させるための処理を実行する制御手段とを備えている。
そして、制御手段は、回胴の回転開始命令に応じて前記回胴を徐々に加速させるように起動させる起動処理を行う回胴起動手段と、起動処理の後、回胴を定常回転させる定常回転手段と、定常回転中において回胴の有効な回転停止操作が行われたことに応じて、該回転停止操作が行われたときの図柄位置に基づいて所定の最大滑りコマ範囲内で停止位置を決定する停止位置決定手段と、停止位置決定手段が決定した停止位置に対応する図柄位置で回胴を停止させるための停止制御を行う停止手段とを含む。
また、タイマ割込み処理において、エラーを監視してエラーの有無に応じたエラーフラグをセットするエラー監視手段と、タイマ割込み処理において、エラーフラグに応じてエラー報知のための処理を実行するエラー報知手段とを含む。
さらに、エラーフラグに基づき、回胴が回転中においてエラーの発生が認められた場合に、該回胴の回転を維持した状態で遊技動作の進行を停止し、エラーが解除されたことに応じて遊技動作の進行を再開する第1遊技進行制御手段と、エラーフラグに基づき、回転停止操作が行われてから該当する回胴が停止されるまでにエラーの発生が認められた場合に、停止制御を中断せずに該回胴を停止させ、該回胴が停止した後に遊技動作の進行を中断し、エラーが解除されたことに応じて遊技動作の進行を再開する第2遊技進行制御手段とを含んでいる(
図20、
図24、
図25、
図27、
図31等を参照)。
【0348】
上記構成によれば、回胴の回転中にエラーが生じた場合、回胴の回転を維持した状態で遊技動作が中断される。一方、停止操作を受け付けてから回胴が停止されるまで(滑り中)にエラーが生じた場合は、停止制御を中断せずに当該回胴が停止され、停止された後に遊技動作が中断される。そして、上記の何れの場合も、エラーが解除されると遊技動作が再開され、またエラーが発生したことに応じ即座にエラー報知が行われる(エラーフラグのセット及びエラー報知は共にタイマ割込み処理で行われるため)。
これにより、回胴の回転状況に応じた適切なエラー対処を実現することができる。
【0349】
また、上記した遊技機においては、第1遊技進行制御手段は、遊技動作の進行の停止として、回胴の回転停止を指示するための回転停止操作の受け付けを停止し(S526及びS529を参照)、第2遊技進行制御手段は、遊技動作の進行の中断として、停止された回胴以外の回胴の回転停止操作の受け付けを中断する(S528及びS529を参照)。
【0350】
上記のように遊技動作の進行の停止、中断としてそれぞれ回転停止操作の受け付けを停止、中断することで、遊技動作の進行(ゲームの進行)を確実に停止、中断することができる。
【0351】
また、実施の形態の遊技機は、1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となると共に、表示態様を変化させることが可能な可変表示装置の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされた遊技機であって、ゲームを進行させるための処理を実行する制御手段(CPU80a)と、制御手段による情報の読み出し/書き込みが可能とされ、第1の領域(第1のメモリ領域)と第2の領域(第2のメモリ領域)とを有する記憶手段と、を備えている。
そして、制御手段は、エラーを監視して、エラーの有無に応じてエラー監視フラグを記憶手段における第2の領域にセットする監視手段と、エラー監視フラグを読み出してエラーが認められた場合に、記憶手段における第1の領域にエラーフラグをセットする確認手段と、エラーフラグに応じてエラー報知のための処理を実行する報知手段とを含んでいる(
図13、
図14、
図27、
図31等を参照)。
【0352】
これにより、不正対策処理のプログラムを第1のメモリ領域に置く必要性を無くし、領域内に格納可能なプログラム容量の拡大化を図って領域内プログラムによる処理内容の充実化を図る等、従来にない新しい遊技機を提供することができる。
【0353】
<13.まとめ及び変形例>
以上で説明したCPU80aの処理により、遊技動作の進行を制御負荷の低減を図りつつ効率的に実現できる。また、遊技動作の進行に要するメモリ容量も削減することができる。
【0354】
なお、本発明は実施の形態で挙げた例に限らず多様な変形例や適用例が考えられる。
例えば上記では、本発明がスロットマシンに適用される例を示したが、本発明は遊技機に広く好適に適用できる。
【0355】
また、上記では、賭数の設定を指示する操作手段としてマックスベットボタン14を例示したが、賭数の設定を1枚単位で指示可能なベットボタンが設けられてもよく、その場合にも本発明は好適に適用できる。