JP2016083257A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2016083257A
JP2016083257A JP2014218973A JP2014218973A JP2016083257A JP 2016083257 A JP2016083257 A JP 2016083257A JP 2014218973 A JP2014218973 A JP 2014218973A JP 2014218973 A JP2014218973 A JP 2014218973A JP 2016083257 A JP2016083257 A JP 2016083257A
Authority
JP
Japan
Prior art keywords
data
medal
game
winning
bell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014218973A
Other languages
English (en)
Other versions
JP5717161B1 (ja
Inventor
健二 松田
Kenji Matsuda
健二 松田
卓也 中野渡
Takuya Nakanowatari
卓也 中野渡
直輝 小幡
Naoteru Obata
直輝 小幡
吉野 純一
Junichi Yoshino
純一 吉野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sammy Corp
Original Assignee
Sammy Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sammy Corp filed Critical Sammy Corp
Priority to JP2014218973A priority Critical patent/JP5717161B1/ja
Application granted granted Critical
Publication of JP5717161B1 publication Critical patent/JP5717161B1/ja
Publication of JP2016083257A publication Critical patent/JP2016083257A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】簡素な演算処理により、正確な払出し数を外部信号として出力する。
【解決手段】払出し数データを記憶する払出し数データ記憶手段と、払出し信号を外部に出力するか否かを定めるデータを記憶する払出し信号データ記憶手段と、払出し信号を外部に出力する回数を記憶する払出し信号出力回数記憶手段とを備える。メイン処理では、払出し数データ記憶手段に記憶された払出し数データを読み込み)ステップS453)、読み込んだ払出し数データを2倍にする演算aを実行し(ステップS460)、払出し信号出力回数記憶手段に記憶されている回数に、演算aにより求めた値を加算することにより、払出し信号出力回数記憶手段に記憶されている回数を更新する(ステップS462)。
【選択図】図63

Description

本発明は、遊技媒体の払出し信号を外部に出力する遊技機に関するものである。
従来より、遊技機の一例であるスロットマシンでは、役の入賞時には、その役に対応する枚数のメダルが払い出される。メダルが払い出されると、払出し枚数分に相当する信号を外部に送信していた。その信号の送信は、たとえばオンとオフとを繰り返す処理を行うものであった。
特開2009−066171号公報
前述の従来の技術において、外部に送信するメダルの払出し信号は、単に、払出し枚数だけオンとオフとを繰り返す信号であり、ある程度のプログラム容量を必要としていた。このため、プログラム容量の削減が望まれていた。
本発明が解決しようとする課題は、遊技媒体の払出し信号を外部に送信する遊技機において、簡素な演算処理により、正確な払出し数を外部信号として出力可能にすることである。
本発明は、以下の解決手段によって上述の課題を解決する。なお、かっこ書きで、対応する実施形態の構成を示す。
本発明は、
遊技の進行を制御するメイン処理(M_MAIN)と、
前記メイン処理の実行中に、前記メイン処理とは異なる処理を割込みによって実行する割込み処理(I_INTR)と
を有し、
入賞役に応じた遊技媒体の払出し数に対応する払出し信号を外部に出力する遊技機であって、
払出し数データを記憶する払出し数データ記憶手段(F06E;メダル払出し枚数データ)と、
前記払出し信号を外部に出力するか否かを定めるデータを記憶する払出し信号データ記憶手段(F027;メダル信号データのD5ビット)と、
前記払出し信号を外部に出力する回数を記憶する払出し信号出力回数記憶手段と(F070;メダル払出し信号出力回数)と
を備え、
前記メイン処理では、
前記払出し数データ記憶手段に記憶された払出し数データを読み込み(ステップS453、S457、S459)、読み込んだ払出し数データを2倍にする演算aを実行し(ステップS460)、
前記払出し信号出力回数記憶手段に記憶されている回数に、演算aにより求めた値を加算することにより、前記払出し信号出力回数記憶手段に記憶されている回数を更新し(ステップS462)、
前記割込み処理では、
所定時間が経過したか否かを判断し(ステップS961)、
前記所定時間が経過したと判断したときは、前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないか否かを判断し(ステップS966)、
前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないと判断したときは、前記払出し信号出力回数記憶手段に記憶されている回数の減算処理(ステップS967)と、前記払出し信号データ記憶手段に記憶されているデータの更新処理(ステップS968)とを実行し、
前記払出し信号データ記憶手段に記憶されたデータが前記払出し信号を外部に出力することを示すデータであるときに、前記払出し信号を外部に出力する(ステップS970)
ことを特徴とする。
本発明によれば、簡素な演算処理により、払出し数に対応する数の払出し信号を外部に正しく送信することができる。
本実施形態のスロットマシン(遊技機)を示す外観斜視図である。 図1中、スロットマシンのフロントカバーを内面側から見た(遊技者側を見た)正面図である。 図1中、フロントカバーを開放し、基体部の内部を遊技者側から見た正面図である。 図1中、貯留数表示LED、獲得数表示LED及び情報表示LEDを拡大して示す平面図である。 本実施形態におけるスロットマシンの制御の概略を示すブロック図である。 メイン制御基板に設けられた入力ポート0〜2を示す図である。 メイン制御基板に設けられた出力ポート3〜6を示す図である。 立ち上がりデータ及び立ち下がりデータの生成例を示す図である。 RWMの記憶領域の一部のデータ(入力ポート0レベルデータ等)を示す図である。 RWMの記憶領域の一部のデータ(入力ポート1レベルデータ等)を示す図である。 RWMの記憶領域の一部のデータ(入力ポート1立ち下がりデータ等)を示す図である。 RWMの記憶領域の一部のデータ(特定情報フラグ等)を示す図である。 RWMの記憶領域の一部のデータ(投入監視カウンタ等)を示す図である。 RWMの記憶領域の一部のデータ(作動状態フラグ等)を示す図である。 RWMの記憶領域の一部のデータ(投入枚数表示LED信号データ等)を示す図である。 RWMの記憶領域の一部のデータ(外部信号出力時間等)を示す図である。 RWMの記憶領域の一部のデータ(自動投入枚数データ等)を示す図である。 メダル投入又は払出し信号等を説明する図(タイムチャート等)である。 メダル払出し信号の更新を説明する図である。 メダル投入信号及びメダル払出し信号を示すタイムチャートである。 外部信号1〜3を示すタイムチャートである。 リールの図柄配列を示す図である。 スロットマシンのフロントマスク部(前面扉。図示せず。)に設けられた表示窓(透明窓)と、各リールの位置関係と、有効ラインとを示す図である。 役の種類、払出し枚数、及び役に対応する図柄の組合せを示す図である。 役の種類、払出し枚数、及び役に対応する図柄の組合せを示す図である。 役の種類、払出し枚数、及び役に対応する図柄の組合せを示す図である。 当選の種類と、当選役と、押し順との関係を示す図である。 当選の種類と、当選役と、押し順との関係を示す図である。 当選の種類と、遊技状態ごとの当選確率(置数)を示す図(役抽選テーブル)である。 ベルA1〜B4当選時における押し順ごとの置数及びメダル獲得期待値を示す図である。 遊技状態及び内部状態の移行を示す図である。 メイン制御基板によるプログラムを開始するときの処理(M_PRG_START )を示すフローチャートである。 ステップS22における設定変更処理(M_RANK_SET)を示すフローチャートである。 制御コマンドセット1(S_CMD_SET )を示すフローチャートである。 ステップS503における制御コマンドセット2(SS_CMD_SET)を示すフローチャートである。 ステップS23の電源復帰処理(M_POWER_ON)を示すフローチャートである。 入力ポート0〜2読み込み処理(SS_IN_READ)を示すフローチャートである。 ステップS24の復帰不可能エラー処理(SS_ERROR_STOP )を示すフローチャートである。 本実施形態におけるメイン処理(M_MAIN)処理を示すフローチャートである。 ステップS52における遊技開始セット(MS_GAME_SET)を示すフローチャートである。 ステップS121における遊技状態セット(MS_ACTION_SET )を示すフローチャートである。 ステップS128における遊技状態出力(MS_STATUS_OUT )を示すフローチャートである。 メダル受け付け開始(MS_MEDAL_START)を示すフローチャートである。 メダルの読み込み処理(S_PLAYM_READ)を示すフローチャートである。 貯留枚数読み込み(S_CREDIT_READ )を示すフローチャートである。 ブロッカオン(MS_BLOCKER_ON )を示すフローチャートである。 メダル1枚の加算処理(MS_MEDAL_INC)を示すフローチャートである。 メダル限界枚数のセット処理(MS_MMAX_SET )を示すフローチャートである。 ステップS55におけるメダル投入待ち(MS_STANDBY_DSP)を示すフローチャートである。 ステップS56におけるメダル管理処理(MS_MEDAL_CHK)を示すフローチャートである。 ステップS222における手入れメダルチェック処理(MS_INSERT_CHK )を示すフローチャートである。 図51に続くフローチャートである。 ブロッカオフ(MS_BLOCKER_OFF)を示すフローチャートである。 貯留枚数1枚加算(MS_CREDIT_ADD )を示すフローチャートである。 ステップS223における貯留ベット処理(MS_BET_IN )を示すフローチャートである。 貯留枚数1枚減算処理(MS_CREDIT_DEC )を示すフローチャートである。 ステップS221における精算処理(MS_MEDAL_RET)を示すフローチャートである。 ステップS325における貯留メダルの精算処理(MS_CREDIT_RET )を示すフローチャートである。 メダル1枚の払出し処理(MS_1MEDAL_PAY )を示すフローチャートである。 図59に続くフローチャートである。 エラー表示(MS_ERROR_DSP)を示すフローチャートである。 スタートスイッチ受付け処理(MS_START_CTL)を示すフローチャートである。 入賞によるメダル払出し処理(MS_WIN_PAY)を示すフローチャートである。 割込み処理(I_INTR)を示すフローチャートである。 ステップS618における電源断処理(IS_POWER_DOWN )を示すフローチャートである。 入力エラーチェック処理(IS_ERROR_CHK)を示すフローチャートである。 図66に続くフローチャートである。 エラー番号、エラーの種類及び内容を示す図である。 入力エラーセット処理(IS_ERROR_SET)を示すフローチャートである。 ステップS613における制御コマンド送信(IS_CMD_SET)を示すフローチャートである。 外部信号出力データ管理(IS_INF_CTL)を示すフローチャートである。 外部信号出力(IS_COUNTER_OUT)を示すフローチャートである。 サブ制御基板のプログラム開始処理及びサブ側のメイン処理を示すフローチャートである。 サブ制御基板における電源断処理を示すフローチャートである。 サブ制御基板における設定変更開始処理を示すフローチャートである。
本明細書において、用語の意味は、以下の通りである。
「遊技媒体」とは、遊技の用に供する媒体をいい、本実施形態では「メダル(遊技メダル)」である。ただしこれに限らず、遊技球を使用することも可能である。また、遊技媒体には、実際のメダルの他に、遊技機内部に電気的に貯留(クレジット、記憶)された遊技媒体(遊技媒体に係るデータ)も含まれる。
なお、「遊技媒体」は「数」と称し、「メダル」は「枚数」と称する。
「ベット」とは、遊技を行うためにメダル(遊技媒体)を賭けることをいう。本実施形態において、1遊技での最大ベット枚数(限界枚数)は、通常遊技では3枚、1BB遊技中では2枚に設定されている。なお、これに限らず、1BB遊技中の最大ベット数を1枚又は3枚(通常遊技と同じ)に設定することも可能である。
また、「規定数」とは、スタートスイッチ41の操作が可能、すなわち遊技開始可能なメダル枚数を指し、当該遊技における最大ベット枚数である「限界枚数」とは異なる。
「貯留」とは、上記「ベット」とは異なり、スロットマシン10内部にメダルをクレジットすることをいう。「貯留」は、ベットを含む意味で用いられる場合もあるが、本明細書では、「貯留」というときは、「ベット」を含まない意味で使用する。本実施形態において、貯留可能な最大枚数(上限枚数)は、遊技状態等にかかわらず、50枚に設定されている。
「手入れ」とは、遊技者が、後述するメダル投入口44からメダルを直接投入することをいう。
「手入れベット」とは、遊技者が、メダル投入口44からメダルを手入れすることにより、メダルをベットする(ベット数を加算する)ことをいう。
「手入れ貯留」とは、遊技者が、メダル投入口44からメダルを手入れすることにより、メダルを貯留する(クレジット数(貯留枚数)を加算する)ことをいう。
「ベットメダル」とは、ベットされているメダルをいう。
「貯留メダル」とは、クレジットとして貯留されているメダルをいう。
「貯留ベット」とは、遊技者が後述するベットスイッチ40を操作することにより、当該遊技でベット可能な範囲内において、クレジットとして貯留されているメダルの一部又は全部を、遊技を行うためにベットすることをいう。
「自動ベット」とは、リプレイが入賞したときに、スロットマシン10の内部制御処理により、前回遊技でベットされていた数のメダルを自動でベットすることをいう。なお、上記の手入れベットしたメダル、貯留ベットしたメダル、及び貯留メダルは、その後に精算可能であるが、リプレイの入賞により自動ベットされたメダルは精算を行うことができないように設定されている。
「投入」とは、上記の手入れベット、手入れ貯留、貯留ベット、及び自動ベットを含み、メダルをベット又は貯留することをいう。
「精算」とは、ベットメダル及び/又は貯留メダルを遊技者に対して払い出すことをいう。
「払出し」とは、精算によりメダルを払い出すこと、又は役の入賞に基づきメダルを遊技者に払い出すことをいう。さらに、役の入賞に基づきメダルを遊技者に払い出すときは、クレジットとして貯留すること、又は払出し口14からの実際のメダルを払い出すことをいう。本実施形態における払出しは、50枚を限界枚数として貯留し、役の入賞に基づき貯留枚数が50枚を超えた分のメダルは、遊技者に対して払い出すように制御する。また、役の入賞によって遊技者が獲得するメダル枚数を指す「獲得枚数」は、払出し枚数と同義である。
また、「メダルの飲み込み」とは、メダル投入口44からメダルが投入された場合において、ブロッカ47がオンとなっている状態で(メダルが返却されず)、メダルが正しくベット又は貯留されないことをいう。
以下、図面等を参照して、本発明の一実施形態について説明する。
図1は、本実施形態のスロットマシン10(遊技機)を示す外観斜視図である。
また、図2は、図1中、スロットマシン10のフロントカバー11を内面側から見た(遊技者側を見た)正面図である。
さらに、図3は、図1中、フロントカバー11を開放し、基体部12の内部を遊技者側から見た正面図である。
以下の図1〜図3の説明では、スロットマシン10に設けられている各装置の配置を中心に説明し、各装置の具体的説明は、後述する図4(ブロック図)等において行う。
図1に示すように、スロットマシン10の筐体は、フロントカバー11(「前扉」ともいう。)と、フロントカバー11によって前面側を閉じられた基体部12(「裏箱」又は「キャビネット」ともいう。)とから構成されている。図1では図示しないが、フロントカバー11を開けると、その開放が後述するドアスイッチ16によって検知される。
このフロントカバー11は、基体部12の前面(開口面)を覆うようにして、基体部12に開閉可能に取り付けられたものである。図1に示すように、フロントカバー11の遊技者側には、ベットスイッチ40、スタートスイッチ41、3つのストップスイッチ42、メダル投入口44等が配置されている。さらに、ベットスイッチ40の左側には、貯留数表示LED71、獲得数表示LED72及び状態表示LED73が設けられている。
また、フロントカバー11の略中央部には、内部に配置されたリール31の一部が透視可能に形成された表示窓13が形成されている。
なお、表示窓13上(たとえば、リール31の視認領域の左側)に、貯留数表示LED71、獲得数表示LED72及び情報表示LED73を設けることも可能である。この場合、後述する表示基板70は、表示窓13の裏面側に配置される。
さらにまた、フロントカバー11の上方部及び側面部には、略枠状に演出ランプ21(フロントカバー11に設けられた当該ランプを枠ランプ21と称する場合がある)が配置されている。さらに、表示窓13の上方部には、画像表示装置23が設けられ、さらにその両側にはスピーカ22が配置されている。
さらに、フロントカバー11の下方部には、メダル払出し口14と、メダル受け皿15が設けられている。さらにまた、メダル払出し口14の両側にもスピーカ22が設けられている。
図2に示すように、フロントカバー11の裏面側において、表示窓13の上方部、すなわち画像表示装置23が配置されている部分には、画像表示装置23に重なるように、透明な基板ケース19が設けられている。そして、この基板ケース19内に、サブ制御基板(サブ制御手段)80が配置されている。
一方、基体部12は、木材等を組み立てて、前面側が開口する中空箱形に構成したものである。そして、図3に示すように、基体部12の内部において、その下方部には、スロットマシン10の電源をオン/オフする電源スイッチ51を有する電源ユニット50と、ホッパータンク35aを含むメダル払出し装置35が設けられている。なお、図3中、ホッパー35aの右側には、ホッパー35aからあふれたメダルを収容するためのサブタンク35bが配置されている。
また、メダル払出し装置35の上方部には、板状のリールベースが固定されており、このリールベース上に、3つのリール31を含む図柄表示装置30が設けられている。そして、リール31上には、後述するように図柄が配置されており、リール31上の図柄が表示窓13を通して遊技者から視認可能となっている。
さらにまた、基体部12の内面側であって、図柄表示装置30の上側には、透明な基板ケース17が設けられ、この基板ケース17内にメイン制御基板(メイン制御手段)60が配置されている。基板ケース17は、メイン制御基板60の不正(ROM交換等)を防止するため、メイン制御基板60を内部に収容した後、かしめや、溶着(超音波による溶着、UV硬化剤による溶着、電熱による溶着等)により封止されている。このメイン制御基板60は、上述したサブ制御基板80と、図示しないハーネスや光ファイバー(電気配線の束)によって電気的に接続されている。
また、メイン制御基板60上には、設定値を表示するための設定値表示LED63(セブンセグメントLED)が実装されている。
さらに、図3に示すように、基板ケース17の右側に隣接するように、透明なドア(設定ドア)18が設けられ、このドア18の内側に、メイン制御基板60とは別の基板(メイン制御基板60と電気的に接続されている基板)が設けられている。そして、この基板上に設定キースイッチ52及び設定変更/リセットスイッチ53が実装されている。したがって、設定キースイッチ52及び設定変更/リセットスイッチ53は、ドア18によって覆われている。また、ドア18を開閉したか否かを検知するための設定ドアスイッチ54(後述)が設けられている。
図4は、図1中、貯留数表示LED71、獲得数表示LED72及び状態表示LED73を拡大して示す平面図である。図2に示すように、これらのLED71〜73は、表示基板70上に搭載されている。
貯留数表示LED71は、貯留メダル枚数を表示するLEDであり、2桁を表示するために、2つのセブンセグメントディスプレイ(いわゆる7セグ)から構成されている。
貯留数表示LED71は、本実施形態では、「00」〜「50」(整数)の間の数字を表示する。
たとえば、ベット枚数が0枚、かつ貯留枚数が0枚の状態では、貯留数表示LED71の表示は、「00」となっている。ここで、1枚のメダルが手入れされると、当該遊技のためにその1枚のメダルがベットされる。さらに2枚を追加投入すると、当該遊技のために3枚のメダルがベットされる(ベット限界枚数が3枚の場合)。したがって、限界枚数が3枚の場合において、それ以前のベット枚数が0枚であれば、手入れされたメダルが3枚までのときは、そのメダルはベットされ、貯留されない。さらにメダルが手入れされ続けると、そのメダルが貯留されるとともに、その貯留枚数が貯留数表示LED71によって表示される。
したがって、たとえばベットメダル枚数が0枚、貯留メダル枚数が0枚の状態において、当該遊技におけるベットメダル限界枚数が3枚であるとき、4枚のメダルをメダル投入口44から投入すると、3枚のメダルがベットされるとともに1枚のメダルが貯留される。その結果、貯留数表示LED71には「01」と表示される。
本実施形態では、最大で50枚までのメダルを貯留可能となっている。したがって、貯留枚数が50枚となったとき(貯留数表示LED71に「50」と表示されたとき)は、それ以上、メダルは貯留されない。この状態で、仮に、メダル投入口44からメダルが手入れされると、ブロッカ47により、手入れされたメダルは、払出し口14から返却される。
獲得数表示LED72は、役の入賞時に、払出し枚数(遊技者の獲得枚数)を表示するLEDであり、貯留数表示LED71と同様に、2つのセブンセグメントディスプレイから構成されている。
なお、獲得数表示LED72は、通常は獲得枚数を表示するが、エラー発生時にはエラーの内容(種類)を表示するLEDとして機能するため、「獲得数(又はエラー)表示LED72」と称する場合もある。
獲得数表示LED72は、払い出されるメダルがないときは、表示は「00」であるが、たとえば後述する1枚ベルが入賞して1枚のメダルが払い出されると、獲得数表示LED72の表示は、「00」から「01」となる。
なお、獲得数表示LED72は、払い出されるメダルがないときは、消灯するように制御してもよい。
ここで、メダル払出しのある役(リプレイを除く)が入賞してその役に対応するメダルが払い出されるときは、払出し口14から払い出されることよりも優先して、メダルが貯留される。たとえば、ベル02入賞前の貯留枚数が「10」であるときは、ベル02の入賞により、獲得数表示LED72の表示が「00」から「01」に更新されるとともに、貯留数表示LED71の表示が「10」から「11」に更新される。
さらにまた、役の入賞時に、貯留枚数が50枚を超えるときは、50枚を超えた分については払出し口14から払い出さされる。たとえば、役の入賞前に貯留枚数が47枚であり、ベル01の入賞によって8枚のメダルが払い出されるとき、3枚は貯留されて貯留枚数が50枚となり、50枚を超える分に相当する5枚については払出し口14から払い出される。
さらに、リプレイの入賞時は、メダルの貯留及び払出しは行われず、当該遊技でベットされていた枚数のメダルが再遊技のために自動ベットされる。たとえば、当該遊技を2ベット(2枚)で行い、リプレイが入賞したときは、2枚のメダルが自動ベットされる。同様に、当該遊技を3ベット(3枚)で行い、リプレイが入賞したときは、3枚のメダルが自動ベットされる。そして、リプレイの入賞に基づく自動ベットは、再遊技を行うためのメダルの投入であるので、その後に精算(返却)操作を行っても、当該メダルを精算することはできない。また、リプレイ入賞後にメダルを投入することは可能であり、投入されたメダルはクレジットとして貯留される。
なお、「遊技機の認定及び型式の検定等に関する規則」では、リプレイに対応する図柄の組合せが有効ラインに停止したときは、メダル等の投入をすることによらずに行う遊技を付与することとされ、「入賞(メダル等を獲得するための図柄の組合せが表示されること)」ではないと解釈されている。しかし、本願(本明細書等)では、リプレイについても役の1つとして扱い(再遊技役)、リプレイに対応する図柄の組合せが有効ラインに停止したことを「リプレイの入賞」と称する。
また、状態表示LED73は、本実施形態では、図4に示す7個のLED73a〜73gを備える。
リプレイ表示LED73aは、リプレイの入賞時に点灯するLEDである。リプレイの入賞に基づく自動ベットが行われると、リプレイ表示LED73aが点灯し、自動ベット状態であることを遊技者に知らせる。
投入可表示LED73bは、メダルを投入(ベット)可能な状態のときに点灯するLEDである。すなわち、遊技が終了し、次遊技に移行するためのメダルが投入される前に点灯し、いわゆるベット待ち状態を示す。なお、本実施形態ではリプレイが作動した後であっても貯留枚数に応じてベット可能なときには点灯する。
精算表示LED73cは、本実施形態では、精算処理中に点灯するLEDである。貯留メダル及び/又はベットメダル(リプレイ入賞時の自動ベットを除く)を有する状態で、精算スイッチ43がオンされたときに、メダルを実際に払い出している最中に点灯する。
遊技開始LED73dは、規定数のメダルがベットされ、スタートスイッチ41を操作可能な状態となったときに点灯するLEDである。したがって、規定数のメダルがベットされていない(又はリプレイの自動投入がされていない)状態では点灯しない。本実施形態では、限界枚数が「2枚」であるときは規定数は「2枚」となり、限界枚数が「3枚」であるときは規定数は「3枚」となるように定められている。
(1枚、2枚、3枚)投入表示LED73e〜73gは、それぞれ、ベットされているメダル枚数を表示するLEDである。1枚のメダルがベットされたときは1枚投入表示LED73eが点灯し、2枚のメダルがベットされたときは、1枚投入表示LED73e及び2枚投入表示LED73fが点灯し、3枚のメダルがベットされたときは、1枚投入表示LED73e、2枚投入表示LED73f及び3枚投入表示LED73gが点灯する。
図5は、本実施形態におけるスロットマシン10の制御の概略を示すブロック図である。
スロットマシン10は、上述したようにメイン制御基板60とサブ制御基板80とを備える。
メイン制御基板60は、入力ポート(0〜2)及び出力ポート(0〜6)を有し、RWM(メインメモリ)61、メインCPU62等を備える(図5で図示したもののみを備える意味ではない)。
なお、実際には、メイン制御基板60上には、メインCPU62、RWM61、ROM、及びレジスタを含むMPUが搭載される。なお、ROMは、MPU内部に搭載されるもの以外に、外部ROMを備えていてもよい。一方、RWM61は、現行規則により、MPU内部にのみ設けられる。また、後述するサブ制御基板80については、MPU外部にRWMを設けることができる。
したがって、メインCPU62というときは、MPUを含む意味で使用する。
また、RWM61(記憶手段)というときは、MPU内蔵のRWM61、ROM(内部/外部)、及びレジスタ(記憶回路)を含む意味で使用する。
メイン制御基板60と、ベットスイッチ40等の操作スイッチを含む遊技進行用の周辺機器とは、入力ポート又は出力ポートを介して電気的に接続されている。入力ポートは、操作スイッチ等の信号が入力される接続部であり、出力ポートは、モータ32等の周辺機器に対して信号を送信する接続部である。
なお、図5において、入力用の周辺機器は、その周辺機器からの信号がメイン制御基板60に向かう矢印で表示しており、出力用の周辺機器は、メイン制御基板60からその周辺機器に向かう矢印で示している。
RWM(メインメモリ)61は、遊技の進行等に基づいた各種データを記憶(更新)可能な記憶媒体である。
ROMは、遊技の進行に必要なプログラムや各種データ(たとえば、データテーブル)等を記憶しておく記憶媒体である。
メインCPU62は、メイン制御基板60上に設けられたCPUを指し、遊技の進行に必要なプログラムの実行、演算等を行い、具体的には、役の抽選、リール31の駆動制御、及び入賞時の払出し等を実行する。
メダル投入口44から投入されたメダルは、メダルセレクタ45を通過するように構成されている。
メダルセレクタ45は、図5に示すように、通路センサ46、ブロッカ47、投入センサ48a及び48bを備え(ただし、これらに限定されるものではない)、メイン制御基板60と電気的に接続されている。
メダル投入口44からメダルが投入されると、最初に、通路センサ46により検知されるように構成されている。
さらに、通路センサ46の下流側には、ブロッカ47が設けられている。ブロッカ47は、メダルの通路中に設けられ、メダルの通過(投入)を許可/不許可にするためのものであり、メダルの投入が不許可状態のときは、メダル投入口44から投入されたメダルを払出し口14から返却するメダル通路を形成する。これに対し、メダルの投入が許可状態のときは、メダル投入口44から投入されたメダルをホッパー35aに案内するメダル通路を形成する。
また、後述するように、ブロッカ47の状態として、メダルの投入を許可する状態をオン状態と称し、メダルの投入を不許可する状態をオフ状態と称する。
ここで、ブロッカ47は、遊技中(リール31の回転開始時から、全リール31が停止し、役の入賞時には入賞役に対応する払出しの終了時まで)は、メダルの投入を不許可(オフ)状態とする。すなわち、ブロッカ47がメダルの投入を許可するのは、少なくとも遊技が行われていないときである。
ブロッカ47のさらに下流側には、投入センサ48a及び48b(光学センサ)が設けられている。したがって、メダル投入口44から投入されたメダルは、通路センサ46によって検知された後、さらに、投入センサ48a(上流側)及び48b(下流側)により検知されるように構成されている。なお、図5に示すように、後述する説明においては、上流側の投入センサ48aを投入センサ1、下流側の投入センサ48bを投入センサ2と称する場合もある。
また、図5に示すように、メイン制御基板60には、遊技者が操作する操作スイッチとして、精算スイッチ43、ベットスイッチ40、スタートスイッチ41、(左、中、右)ストップスイッチ42が電気的に接続されている。
精算スイッチ43は、スロットマシン10内部に貯留(クレジット)されたメダルを払い戻す(ペイアウトする)ときに遊技者が操作するスイッチである。
ベットスイッチ40は、貯留されたメダルを当該遊技のためにベットするときに遊技者が操作するスイッチである。本実施形態におけるベットスイッチ40は、1枚(1遊技における最小枚数)をベットするための1ベットスイッチ40aと、当該遊技でベット可能な最大枚数のメダルをベットするための3ベットスイッチ40bとを備える。
なお、これに限らず、2枚ベット用のベットスイッチを設けてもよい。また、1枚、2枚、3枚ベット用のベットスイッチ40のうち、スロットマシン10の仕様に応じて、2つ又は3つ設けることも可能である。
そして、「ベットスイッチに対応するベット枚数」とは、ベットスイッチが1ベットスイッチ40aであるときは1枚、3ベットスイッチ40bであるときは3枚を意味する。また、2枚ベット用のベットスイッチを設けたときは、そのベットスイッチに対応するベット数は2枚となる。
3ベットスイッチ40bは、いずれにしてもそのときにベット可能な最大枚数を加算するベットスイッチであるので、マックスベットスイッチとも称される。本実施形態では、説明の便宜上、3ベットスイッチ40bと称する。
ここで、1遊技の限界枚数は、上述したように、1BB遊技中では2枚、1BB遊技中以外(通常遊技)では3枚である。
たとえば通常遊技において、既にベットされているメダル枚数(既ベット枚数)が0枚の場合に、3ベットスイッチ40bが操作され、かつ貯留枚数が3枚以上であるときは、3枚がベットされる。
また、通常遊技において、既ベット枚数が0枚の場合に、3ベットスイッチ40bが操作され、かつ貯留枚数が2枚であるときは、ベット可能な最大枚数は2枚であるので、2枚がベットされる。
さらにまた、通常遊技において、既ベット枚数が1枚の場合に、3ベットスイッチ40bが操作され、かつ貯留枚数が2枚以上であるときは、ベット可能な最大枚数は2枚であるので、2枚がベット(それまでのベット枚数に加算)される。
さらに、通常遊技において、既ベット枚数が3枚の場合に、3ベットスイッチ40bが操作されたときは、貯留枚数を有するときであっても、ベット(加算)可能な枚数は0枚であるので、ベット枚数は加算されない。
また、通常遊技において、既ベット枚数が1枚であり、かつ貯留枚数が1枚である場合に、3ベットスイッチ40bが操作されたときは、ベット可能な最大枚数は1枚であるので、1枚がベットされる。その結果、それまでの既ベット数である1枚に新たにベット枚数1枚が加算され、3ベットスイッチ40bの操作後のベット枚数は2枚となる。
さらにまた、1BB遊技において、既ベット枚数が0枚の場合に、3ベットスイッチ40bが操作され、かつ貯留枚数が2枚以上であるときは、ベット可能な最大枚数は2枚であるので、2枚がベットされる。
スタートスイッチ41は、(左、中、右のすべての)リール31を始動させるときに遊技者が操作するスイッチである。
さらにまた、ストップスイッチ42は、3つ(左、中、右)のリール31に対応して3つ設けられ、対応するリール31を停止させるときに遊技者が操作するスイッチである。
また、図5に示すように、メイン制御基板60には、表示基板70が電気的に接続されている。なお、実際には、メイン制御基板60と表示基板70との間には、中継基板が設けられ、メイン制御基板60と中継基板、及び中継基板と表示基板70とが接続されているが、図5では中継基板の図示を省略している。このように、メイン制御基板60と表示基板70とは、直接ハーネス等で接続されていてもよいが、両者間に別の基板が介在してもよい。
さらに、制御基板同士が直接(ハーネス等で)接続されていることに限らず、他の別基板(中継基板等)を介して接続されていてもよい。たとえば、メイン制御基板60とサブ制御基板80との間に1つ以上の他の別基板(中継基板等)が介在してもよい。
表示基板70には、上述した貯留数表示LED71、獲得数表示LED72、及び状態表示LED73が接続されている。これらのLED71〜73は、図1に示すように、遊技者が操作する操作スイッチの左側端部に設けられ、遊技者が常に視認できる位置に設けられている。なお、1つの表示基板70上にすべてのLED71〜73が設けられている必要はなく、たとえば表示基板70A、70B、・・・のように複数の表示基板70を備え、いずれかの表示基板70にいずれかのLED71〜73が設けられていればよい。
さらに、表示窓13上(たとえば、リール31の視認領域の左側)に、貯留数表示LED71、獲得数表示LED72及び情報表示LED73を設けることも可能である。この場合、表示基板70は、表示窓13の裏面側に配置される。
メイン制御基板60には、図柄表示装置30のモータ32等が電気的に接続されている。
図柄表示装置30は、図柄を表示する(本実施形態では3つの)リール31と、各リール31をそれぞれ駆動するモータ32と、リール31の位置を検出するためのリールセンサ39とを含む。
モータ32は、リール31を回転させるためのものであり、各リール31の回転中心部に連結され、後述するリール制御手段62cによって制御される。ここで、リール31は、左リール31、中リール31、右リール31からなり、左リール31を停止させるときに操作するストップスイッチ42が左ストップスイッチ42であり、中リール31を停止させるときに操作するストップスイッチ42が中ストップスイッチ42であり、右リール31を停止させるときに操作するストップスイッチ42が右ストップスイッチ42である。
リール31は、リング状のものであって、その外周面には複数種類の図柄(役に対応する図柄の組合せを構成している図柄)を印刷したリールテープを貼付したものである。なお、リール31上の図柄の具体的配置は、後述する(図22)。
また、各リール31には、1個(2個以上であってもよい)のインデックスが設けられている。インデックスは、リール31の例えば周側面に凸状に設けられており、リール31が所定位置を通過したか否かや、1回転したか否か等を検出するときに用いられる。そして、各インデックスは、リールセンサ39により検知される。リールセンサ39の信号は、メイン制御基板60に電気的に接続されている。そして、リールセンサ39がインデックスを検知する(切る)と、その入力信号がメイン制御基板60に入力され、そのリール31が所定位置を通過したことが検知される。
また、リールセンサ39がリール31のインデックスを検知した瞬間の基準位置上の図柄を予めRWM61(メインROM)に記憶している。これにより、インデックスを検知した瞬間の基準位置上の図柄を検知することができる。
また、メイン制御基板60には、メダル払出し装置35が電気的に接続されている。メダル払出し装置35は、メダルを溜めておくためのホッパー35aと、ホッパー35aのメダルを払出し口14から払い出すときに駆動するホッパーモータ36と、ホッパー35aから払い出されたメダルを検出するための払出しセンサ37a及び37bを備える。
メダル投入口44から手入れされ、受け付けられたメダルは、所定の通路(「シュート部」とも称する。)を通してホッパー35a内に収容されるように形成されている。
払出しセンサ37a及び37bは、投入センサ48a及び48bと同様に、上流側に払出しセンサ37aが設けられ、下流側に払出しセンサ37bが設けられている。
払出しセンサ37aと37bとは、所定距離を隔てて配置され、メダルが払出しセンサ37aにより検知されてから所定時間を経過した後に払出しセンサ37bにより検知されるように構成されている。そして、払出しセンサ37a及び37bがそれぞれオン/オフとなるタイミングに基づいて、メダルが正しく払い出されたか否かを判断する。
たとえば、ホッパーモータ36が駆動しているにもかかわらず、払出しセンサ37a及び37bの信号がいずれもオフであるときは、メダルが払い出されていないと判断し、ホッパーエラー(メダルなし)と検知される。
一方、払出しセンサ37a又は37bの信号の少なくとも1つがオンのままとなったときは、メダル詰まりが生じたと検知する。なお、払出しセンサ37を1つだけ設け、上記エラーを検知するようにしてもよい。
満杯センサ38は、ホッパー35aから溢れたメダルを収容するサブタンク35b(図3参照)の満杯を検知するセンサであり、サブタンク35bのメダルが満杯となったときにメダルが接触することで通電する回路から構成される。
また、ドアスイッチ16は、スロットマシン10のフロントカバー11を開けたときにオンとなるスイッチであり、フロントカバー11の開閉状態を検知するためのものである。
また、電源スイッチ51は、スロットマシン10の電源のオン/オフを行うスイッチである。
設定キースイッチ52は、設定キー挿入口から設定キーが挿入され、右90度に回転しているときにオンとなるスイッチであり、設定確認時や設定変更時にオンとする。
設定変更/リセットスイッチ53は、1つのスイッチで設定変更スイッチとリセットスイッチとを兼ねているスイッチである。なお、設定変更スイッチとリセットスイッチとは、別々に設けられていてもよい。
設定変更/リセットスイッチ53は、設定値を変更するときに操作される。また、設定キースイッチ52をオンにしつつ電源スイッチ51がオンにされると、リセットすなわち初期化処理が行われ、RWM61に記憶されている所定のデータがクリアされる。
設定ドアスイッチ54は、上述した設定ドア(設定キースイッチ52及び設定変更/リセットスイッチ53を覆うドア)の開閉を検知するスイッチである。たとえば設定ドアスイッチ54がオフ、すなわち設定ドアが開けられていない状態で設定キースイッチ52がオンであるとき等は、エラーとなる。
図6は、メイン制御基板60に設けられた入力ポート0〜2を示す図である。また、図7は、メイン制御基板60に設けられた出力ポート3〜6を示す図である。なお、出力ポート0〜2については、図面を用いた説明を割愛する。
本実施形態の入力ポート0〜2及び出力ポート0〜6は、D0〜D7の8ビットが入力又は出力可能な1バイトのポートである。
なお、入力ポート及び出力ポートは、図示したもの以外にも設けられているが、本実施形態では説明を省略する。
また、図6及び図7中、未使用と表示したポートは、実際に使用されていないか、又は本実施形態において説明を省略する信号の入出力ポートを意味する(信号の入出力がないポートは、すべて未使用という意味ではない)。
図6及び図7に示す入力ポート0〜2及び出力ポート3〜6において、「正」、「負」とは、それぞれ入力又は出力される信号を意味し、たとえば入力ポート0のD0ビット(特定のビットを指すときには「ビット目」ともいうが、以下の説明では「ビット」という。)における精算スイッチ信号では、操作されていないときにはD0ビットに「正(high)」の信号が入力され、操作されたときはD0ビットに「負(low )」の信号が入力される。換言すると、「負(low )」の信号がアクティブ信号となる。一方、たとえば3ベットスイッチ信号では、操作されていないときにはD2ビットに「負(low )」の信号が入力され、操作されたときはD2ビットに「正(high)」の信号が入力される。換言すると、「正(high)」の信号がアクティブ信号となる。
さらにまた、入力ポート0において、精算スイッチ信号及び1ベットスイッチ信号は、そのスイッチの操作時にいずれも操作時に負の信号が入力されるが、3ベットスイッチ信号は、そのスイッチの操作時に正の信号が入力される。これは、本実施形態では、精算スイッチ43及び1ベットスイッチ40aと、3ベットスイッチ40bとで、異なるスイッチを用いているためである。
たとえば、精算スイッチ43及び1ベットスイッチ40aは、押されること(あるいは押圧)に応じて接地/非接地を検出するボタンスイッチであり、押圧された場合に電流が流れる回路を備えるスイッチである。これに対し、3ベットスイッチ40bは、フォトセンサを内蔵したボタンスイッチであり、フォトセンサの受光素子が遮光片により発光素子側の光を遮光したときに電圧が変化するスイッチである。
このように、設計上の都合に応じて、同じベットスイッチ40であっても異なる構造のスイッチを採用している。なお、これに限らず、同一構造のスイッチを用いることも勿論可能である。
入力ポート0は、操作スイッチである精算スイッチ43、ベットスイッチ40(1ベットスイッチ40a及び3ベットスイッチ40b)、スタートスイッチ41、及び(左、中、右)ストップスイッチ42の各信号が入力される。
また、入力ポート1には、通路センサ46、ドアスイッチ16、設定ドアスイッチ54、設定キースイッチ52、設定変更/リセットスイッチ53、(左、中、右)リールセンサ39の各信号が入力される。なお、設定ドアスイッチ54を設けていない仕様のスロットマシン10であるときには、入力ポート1のD2ビットは未使用となる。
さらにまた、入力ポート2には、電断信号(電断が発生したときに出力される信号)、投入センサ1(48a)及び2(48b)の信号、払出しセンサ1(37a)及び2(37b)の信号、満杯センサ38の信号が入力される。
そして、後述するように、遊技を進行する情報処理として、1遊技あたり1回行うメイン処理(メインループ)(M_MAIN)が設けられている。メイン処理では、投入されたメダルの検知に基づいて行われる手入れメダルチェック処理や、全リール31が停止した後の入賞処理等が行われる処理である。
このメイン処理中に、メイン処理を一旦抜けて、割込み処理(タイマ割込み処理)を実行する。そして、割込み処理では、入力ポート0〜2を検知する処理(後述する図64のステップS607)を実行し、その処理の実行後、再度、メイン処理に戻ることを定期的に行っている。その割込み時間の間隔は、本実施形態では2.235msである。すなわち、2.235ms間隔の割込み処理ごとに、入力ポート0〜2のデータを取得する。そして、取得したデータに基づいて、入力ポートのレベルデータ(各ビットのオン/オフを示すデータ)、入力ポートの立ち上がりデータ(前回割込み時がオフで、今回割込み時がオンになったデータがどのビットであるかを示すデータ)、入力ポートの立ち下がりデータ(前回割込み時がオンで、今回割込み時がオフになったデータがどのビットであるかを示すデータ)を生成し、記憶する。したがって、これらのデータは、2.235msごとに更新されていく。
本実施形態では、入力ポート0については、レベルデータ及び立ち上がりデータを生成する。また、入力ポート1については、レベルデータ、立ち上がりデータ、及び立ち下がりデータを生成する。さらにまた、入力ポート2については、レベルデータのみを生成する。入力ポート1については、設定キースイッチ52の操作信号が入力されるため、オンからオフになったことを検知する必要があるためである。
一方、入力ポート2については、各種センサからの入力信号であるため、センサからの入力に基づいて制御を行うだけでよいので、立ち上がりデータを生成する必要はないからである。
また、割込み処理がいつ行われたかにかかわらず、入力ポート0〜2のD0〜D7ビットのすべてを検知する。たとえば、リール31の回転中(ストップスイッチ42が操作される前)は、遊技者によってベットスイッチ40が操作されることはあり得ない(操作に基づいてベット処理が実行されることがない)ので、必ずしも入力ポート0のD1及びD2ビットのデータを取得する必要はないが、本発明では、すべてのビットのデータを取得する。そして、全ビットのデータを取得すれば、エラー判定を行うことも可能となる。さらに、リール31の回転中であっても当該処理を実行することにより、リール31の回転中には取得しない等の判断を行うことを要しないため、プログラム容量(ROM)の削減にもなる。
さらにまた、たとえばリール31の回転中にベットスイッチ40の立ち上がりデータがオンになった場合に、サブ制御基板80側で実行する演出を変化させるように制御することや、リール31の回転態様を変化させるように制御すること等が挙げられる。
このように、入力ポート0の1バイトデータ(8ビット)を取得すれば、すべての操作スイッチのオン/オフの状況を知ることができるだけでなく、ブログラム容量の削減という効果や、演出制御の変更等の契機に使用することもできる。
図7において、出力ポート3では、D0〜D3ビットからは、左リール31のモータ32の各φ0〜φ3信号が出力される。本実施形態のモータ32は、1−2相励磁によりリール31を回転するように構成されており、φ0〜φ3の4相の励磁の組合せでリール31を駆動するようにしているため、各相の信号がそれぞれ所定のビットから出力される。
また、D6ビットからは、ブロッカ47の信号が出力される。さらにまた、D7ビットからは、ホッパーモータ36の駆動信号が出力される。
ここで、ブロッカ47は、ブロッカの信号が「1」(オン)であるときは、メダル投入口44とホッパー35aとを連結するメダル通路を形成し、メダルの受付けを許可する。これに対し、「0」(オフ)であるときは、メダル投入口44と払出し口14とを連結する通路(返却通路)を形成し、メダルの受付けを不許可とする。
そして、たとえばブロッカ47の駆動時には、割込み処理によって、出力ポート3のD6ビットからブロッカ信号を出力する。
出力ポート4のD0〜D3ビットからは、中リール31のモータ32の各φ0〜φ3信号が出力される。同様に、出力ポート5のD0〜D3ビットからは、右リール31のモータ32の各φ0〜φ3信号が出力される。
また、出力ポート4のD5〜D7ビットからは、状態表示LED73中、1枚〜3枚投入表示LED73e〜73gの信号が出力される。
さらにまた、出力ポート6からは、外部集中端子板100への外部信号が出力され、本実施形態では、外部信号1〜5、メダル払出し信号、及びメダル投入(ベット)信号が出力される。
ここで、「外部信号」とは、外部集中端子板100を介してスロットマシン10の外部(ホールコンピュータや、ホールに設置されているデータカウンタ等)に出力するための信号である。本実施形態では、ART発動(初当たり)を示す外部信号1、ART継続を示す外部信号2、ARTの開始時から終了時までを示す外部信号3、スロットマシン10で生じたエラーや電源断が発生したこと等を示す外部信号4、スロットマシン10のフロントドアの開放を示す外部信号5を設けている。
ただし、これに限らず、外部信号1を1BB遊技中を示す信号としたり、外部信号2を特定のRT状態と定めること等も可能であり、外部信号1〜3は、必ずしもARTに限られるものではない。
これらの出力信号の詳細については、後述するが、本実施形態では、出力ポート6から出力される信号がBレジスタに記憶され、「外部出力信号データ」となる。
次に、入力ポート0〜2から入力された信号に基づいて生成するレベルデータ、立ち上がりデータ、及び立ち上がりデータについて説明する。
図6に示すように、入力ポート0のD0〜D7(ただし、D4を除く)には、正又は負の信号が入力されるが、入力ポート0に入力された信号を取得した後、正論理又は負論理に変換(演算)した後のデータが、入力ポート0レベルデータとして記憶される。たとえば、入力ポート0において、D0、D1、D3ビットには、操作時には負の信号が入力され、入力された信号が「負」の場合は「1」、「正」の場合は「0」となるように演算する。
一方、入力ポート0において、D2、D5、D6、D7ビットには、操作時には正の信号が入力されるので、入力された信号が「正」の場合は「1」、「負」の場合は「0」となるように演算する。
上記の論理変換処理をより具体的に説明する。
まず、入力ポート0〜2にそれぞれ入力された論理を統一するために、定義データ(ROMに記憶されているデータ)に相当する負論理ビットを設ける。たとえば、入力ポート0の負論理ビットは、図6に記載したように、「00001011」である。
そして、入力ポート0に信号が入力されると仮定する。ここでは、1ベットスイッチ40aがオンにされたものとする。1ベットスイッチ信号は、オンのときは負の信号が入力されるので、入力される信号は「0」である。また、入力ポート0における他のスイッチは操作されないものとすると、精算スイッチ信号(D0ビット)及びスタートスイッチ信号(D3ビット)は「1」、その他は「0」であるので、
入力データ:00001001
となる。
この入力データは、MPU内の所定のレジスタ(たとえばAレジスタ)に記憶される。
次に、上記入力データと、定義データに相当する入力ポート0負論理ビット「00001011」とを排他的論理和(XOR;エクスクルーシブオア)による論理演算を行う。これにより、
00001001:入力データ
00001011:入力ポート0負論理ビット
00000010:演算後データ
となり、操作されたスイッチである1ベットスイッチ40aに係るデータ(D1ビット)のみが「1」となる。
上記のように演算することで、1ベットスイッチ40aのみが操作されたことを検知することができる。
この演算後データ、すなわち「00000010」が、当該割込み時における「入力ポート0レベルデータ」となる。
また、入力ポート0のD4ビットのように未使用ビットを有する場合には、この未使用ビットに対応するデータを確実に「0」にするために、上記の演算後データと定義データ「11101111」(未使用ビットのみを「0」としたデータ)とを「AND」演算(論理積)してもよい。これにより、
00000010:演算後データ
11101111:定義データ
00000010:演算後データ(AND後)
となる。
なお、未使用ビットを有さないときは、最初の演算後データの算出までで十分であり、演算後データ(AND後)の算出は不要である。また、未使用ビットを有する場合であっても、最初の演算後データの算出で終了することも可能であり、演算後データ(AND後)の算出は、ノイズをより確実に除去するために行われる。
以上のようにして、一割込み処理時に、入力ポート0〜2の信号に基づいて、入力ポート0レベルデータ、入力ポート1レベルデータ、入力ポート2レベルデータを作成する。
入力ポート1レベルデータは、実際に入力された信号と、図6に示す入力ポート1負論理ビット「00010001」とを排他的論理和(XOR)による演算を実行したものである。
また、入力ポート2レベルデータは、実際に入力された信号と、図6に示す入力ポート2負論理ビット「00101111」とを排他的論理和(XOR)による演算を実行したものである。
作成された入力ポート0レベルデータ〜入力ポート2レベルデータは、RWM61内の所定の番地(後述)に記憶される。
さらに、本実施形態では、入力ポート0レベルデータから、入力ポート0立ち上がりデータを作成する。また、入力ポート1レベルデータから、入力ポート1立ち上がりデータ及び入力ポート1立ち下がりデータを作成する。
図8は、入力ポート1の立ち上がりデータ及び立ち下がりデータを作成する演算例を示す図である。
図8において、前回割込み時の入力ポート1レベルデータ(データB0)が「00000010」(D1ビットのドアスイッチ信号のみがオン)であり、今回割込み時の入力ポート1レベルデータ(データA0)が「00000110」(D1ビットのドアスイッチ信号及びD2ビットの設定ドアスイッチ信号がオン)となった例である。したがって、設定ドアスイッチ信号について立ち上がりを有する例である。
この場合、図8に示すように、まず、データA0(今回割込み時のレベルデータ)とデータB0(前回割込み時のレベルデータ)とを排他的論理和(XOR)による演算を実行する。その演算結果をデータC0とすると、データC0は、入力ポート1の変化ビットを示すデータとなる。
次に、データA0(今回割込み時のレベルデータ)とデータC0(変化ビットを示すデータ)とを論理積(AND)により演算を実行する。これにより作成されるデータD0が、入力ポート1立ち上がりデータとなる。
また、立ち下がりを求める場合には、以下のように演算を行う。
前回割込み時の入力ポート1レベルデータ(データB1)が「00000010」(D1ビットのドアスイッチ信号のみがオン)であり、今回割込み時の入力ポート1レベルデータ(データA1)が「00000000」(全ビットがオフ)となった例である。したがって、ドアスイッチ信号について立ち下がりを有する例である。
この場合、まず、データA1(今回割込み時のレベルデータ)とデータB1(前回割込み時のレベルデータ)とを排他的論理和(XOR)による演算を実行する。その演算結果をデータC1とすると、データC1は、上記のデータC0と同様に、入力ポート1の変化ビットを示すデータとなる。
次に、データB1(前回回割込み時のレベルデータ)とデータC1(変化ビットを示すデータ)とを論理積(AND)により演算を実行する。これにより作成されるデータD1が、入力ポート1立ち下がりデータとなる。
さらに、上記の例では、入力ポートのデータを一割込みで1回取得した例を示したが、ノイズやチャタリング防止のために、一割込み内で複数回、入力ポートの信号を取得してもよい。
たとえば、入力ポート0を例にあげると、一割込み内で、2回、入力ポート0のデータを取得する。なお、データを2回取得する場合の時間間隔は任意であるが、たとえば1回目のデータ取得時から50μS(マイクロ秒)経過後に2回目のデータを取得することが挙げられる。
具体的に、1ベットスイッチ40aが操作されたことにより、D1ビットがオンになったとき、
00000100:取得データ1回目(正常)
00000100:取得データ2回目(正常)
であったと仮定する。なお、上記例では、1回目及び2回目のいずれも正常なデータを取得し、両データに変化がない例を示している。そして、これら2つのデータを論理積(AND)による演算を実行する。その結果、
00000100:AND演算後
となる。このAND演算後のデータを当該割込み処理時におけるレベルデータとする。
これに対し、ノイズやチャタリングが発生し、2回の取得データが異常となった場合には、以下のようになる。たとえば、2回目のデータ取得時に3ベットスイッチ40bの信号を誤検知し、「1」となったときは、
00000100:取得データ1回目(正常)
00000110:取得データ2回目(異常)
となる。そして、両データを上記のように論理積(AND)による演算を実行すると、
00000100:AND演算後
となり、上記と同じ結果を得る。すなわち、AND演算を実行することで、取得データ2回目のD1ビットを「0」にすることができ、これによってノイズやチャタリング等を防止することができる。
図9〜図17は、RWM61に記憶されるデータの格納番地とその内容を示す図である。なお、図9〜図17で示したデータは、本実施形態の説明で用いるためのデータであり、RWM61に記憶されるデータは、これらのデータに限られるものではない。
図9において、番地「F008」の「_PT_IN0_OLD 」は、入力ポート0レベルデータの記憶領域である。一割込み処理ごとに、入力ポート0からの入力信号が読み込まれ、上述したように演算された後、レベルデータが更新されていく。
番地「F009」の「_PT_IN0_UP」は、入力ポート0立ち上がりデータの記憶領域である。入力ポート0レベルデータの更新ごとに演算され、入力ポート0立ち上がりデータも更新されていく。
図10において、番地「F00A」の「_PT_IN1_OLD 」は、入力ポート1レベルデータの記憶領域である。一割込み処理ごとに、入力ポート1からの入力信号が読み込まれ、上述したように演算された後、データが更新されていく。
また、番地「F00B」の「_PT_IN1_UP」は、入力ポート1立ち上がりデータの記憶領域である。入力ポート1レベルデータの更新ごとに演算され、入力ポート1立ち上がりデータも更新されていく。
さらにまた、図11において、番地「F00C」の「_PT_IN1_DOWN」は、入力ポート1立ち下がりデータの記憶領域である。入力ポート1レベルデータの更新ごとに演算され、入力ポート1立ち下がりデータも更新されていく。
また、番地「F00D」の「_PT_IN2_OLD 」は、入力ポート2レベルデータの記憶領域である。一割込み処理ごとに、入力ポート2からの入力信号が読み込まれ、上述したように演算された後、データが更新されていく。
図12において、番地「F00F」の「_FL_ERROR_INF 」は、特定情報フラグのデータ記憶領域である。ここで、特定情報フラグは、本実施形態では、ドアスイッチ情報(D1)、設定ドアスイッチ情報(D2)、設定キースイッチ情報(D3)、設定/リセットスイッチ情報(D4)、電源断復帰時送信ビット(D6)から構成されている。
ドアスイッチ情報(D1)、設定ドアスイッチ情報(D2)、設定キースイッチ情報(D3)、及び設定/リセットスイッチ情報(D4)は、入力ポート1レベルデータの各ビットと対応している。そして、たとえばドアスイッチ16のオンが検知されると、入力ポート1レベルデータのD1ビットがオン(「1」)となるが、これに併せて、特定情報フラグのD1ビットがオン(「1」)となる。設定キースイッチ情報(D3)、及び設定/リセットスイッチ情報(D4)についても同様である。
また、D6ビットの「電源復帰時送信ビット」は、電源断からの復帰を検知した後、所定時間を経過するまでの間、オン(「1」)となるフラグである。特定情報フラグは、電源断からの復帰時から所定時間を経過したか否かと、上述の設定変更に関するスイッチのオン/オフの状況とを同時に判断するために、1フラグ内(1バイトデータ内)に、これらの情報を記憶している。したがって、特定情報フラグにアクセスして各ビットのオン/オフを判断すれば、設定変更に係るスイッチのオン/オフと、電源断からの復帰後所定時間を経過したか否かを同時に判断可能となる。
また、番地「F010」の「_FL_IN_ABNML」は、異常入力フラグのデータ記憶領域であり、本実施形態では、D4〜D6ビットのデータは、それぞれ通路センサ46の滞留異常が生じたとき、投入センサ2(44b)の異常入力が生じたとき、及び払出しセンサ37の異常入力が生じたときにオンとなる。
図13において、番地「F012」の「_CT_SEN_CHK 」は、投入監視カウンタのデータ記憶領域であり、通路センサ46の通過異常検出を監視するものである。本実施形態では、入力ポート1立ち上がりデータ(番地「F00B」の「_PT_IN1_UP」)において、通路センサ46(D0ビット)が「1」であるときに「1」加算され(後述する図66のステップS908)、メダルが正常に通過したと判断したときに「1」減算される(後述する図52のステップS250)。また、このカウント値を、複数遊技にわたる累積値としないようにするため、後述する図46のステップS165においてクリアする。
また、番地「F013」の「_WK_H0_CHK1 」は、払出しセンサ1(37a)異常検出データの記憶領域であり、払出しセンサ1(37a)への異常入力を検出するためのデータである。その範囲は、「0」〜「4」をとり、後述するように、発生したエラー番号を特定するときに用いられる。
番地「F014」の「_WK_H0_CHK2 」は、払出しセンサ2(37b)異常検出データの記憶領域であり、払出しセンサ2(37b)への異常入力を検出するためのデータである。上記の払出しセンサ1(37a)異常検出データと同様に、「0」〜「4」の範囲をとり、発生したエラー番号を特定するときに用いられる。
さらにまた、番地「F019」の「_NB_CREDIT_LED」は、貯留枚数表示データの記憶領域であり、上述した貯留数表示LED71にその時点での貯留枚数を表示するためのデータを記憶している。ここで、本実施形態では、データそのものは16進数(H)であるが、貯留枚数を10進数に換算した値を記憶する。たとえば、表示すべき貯留枚数が「29」であるとき、「29(H)」という値を記憶する。換言すると、番地「F019」には、「00101001(B)」を記憶する。これにより、番地「F019」のD0〜D3の下位4ビットは、貯留枚数の下位桁(本例では「9」)を表示するために使用し、D4〜D7の上位4ビットは、貯留枚数の上位桁(本例では「2」)を表示するためのデータとして記憶している。なお、本実施形態では、貯留枚数の上限値は「50」であるので、記憶されるデータ値は、「0」〜「50」の範囲となる。
さらに、番地「F01B」の「_FL_MEDAL_STS 」は、メダル管理フラグのデータ記憶領域である。このメダル管理フラグは、主として状態表示LED73の点灯/消灯を制御するためのフラグである。メダル管理フラグにおいて、D0ビットは、スタートスイッチ41受付け状態を示し、スタートスイッチ41を受け付けているとき、すなわちスタートスイッチ41が操作可能であるとき(たとえばメダルがベットされ、遊技開始前の状態)に「1」となり、スタートスイッチ41の操作受付けが不可能状態であるとき(たとえばリール31の回転中)は「0」にされる。
D2ビットのブロッカ状態は、ブロッカ47がオンであるときは「1」となり、オフであるときは「0」にされるデータである。このD2ビットの値を判断することにより、現在のブロッカ47がどのような状態であるか(オンかオフか)を判断可能となる。
D3ビットのリプレイ表示LEDは、リプレイが表示され、再遊技としてメダルが自動投入されるとき(図43のステップS144)に、「1」にされるデータである。このデータが「1」のときに、上述した状態表示LED73のうちのリプレイ表示LED73aが点灯する。また、再遊技による遊技が終了したとき(図39のステップS68)に、「0」にされるデータである。このデータが「0」のとき、リプレイ表示LED73aが消灯する。
D4ビットの精算表示LEDは、精算スイッチ43が操作され、貯留メダルを精算するとき(図57のステップS324)に、「1」にされるデータである。このデータが「1」のとき、上述した状態表示LED73のうちの精算表示LED73cが点灯する。また、貯留メダルの精算が終了したとき(図57のステップS326)に、「0」にされるデータである。
このように、本実施形態では、最大50枚まで記憶可能な貯留メダルの精算を実行しているときに精算表示LED73cが点灯するように形成されているが、一度にベットメダルと貯留メダルとを精算するように形成されている場合には、ベット又は貯留メダルを精算するときに「1」にされるように(精算表示LED73cが点灯するように)形成されていることが好ましい。
D6ビットの設定変更不可フラグは、設定変更が可能な状態であるときに「0」となり、それ以外は「1」となるデータである。本実施形態では、スタートスイッチ41が操作されて遊技が進行されたとき(図62のステップS433)に、「1」にされるデータであり、次遊技のメダル受付けが開始されたとき(図43のステップS136)に、「0」にされるデータである。設定変更に際しては、設定変更許可フラグの値が参照され、設定変更不可フラグが「1」であるときは設定変更は許可されない。ただし、設定変更不可フラグが「1」のときであっても復帰不可能エラー(たとえば、割込み処理ごとに判定される乱数の更新異常)と判断されたときは設定変更が許可され、設定変更に基づいて復帰不可能エラーを解除することが可能となる。
D7ビットのメダル限界設定判定は、ベットメダル枚数がメダル限界枚数に達しているときは「1」となり、メダル限界枚数に達していないときは「0」となるデータである。上述したように、限界枚数は、本実施形態では、通常遊技中は3枚、1BB遊技中は2枚に設定されており、これらの3枚又は2枚がメダル限界枚数である。したがって、たとえば通常遊技中において、ベットメダル枚数が0、1、又は2枚であるときはメダル限界枚数に達していないので「0」となり、3枚であるときはメダル限界枚数に達しているので「1」となる。
図14において、番地「F01C」の「_FL_ACTION」は、作動状態フラグのデータ記憶領域であり、本実施形態では、D0ビットにリプレイ、D1ビットに1BBが割り当てられている。
たとえばリプレイが入賞したときは、リプレイの作動状態となり、遊技状態をセットするとき(図41のステップS124)に、D0ビットが「1」にされる。このD0ビットが「1」から「0」にされるのは、再遊技による遊技が終了したとき(図39のステップS68)である。
番地「F023」の「_PT_BLK_HPM 」は、ブロッカ信号及びホッパーモータ駆動信号のデータの記憶領域であり、ブロッカ信号としてD6ビット、ホッパーモータ駆動信号としてD7ビットが用いられる(D0〜D5ビットは未使用)。ブロッカ47をオンにするときは、D6ビットが「1」となり、ホッパーモータ36をオンにするときはD7ビットが「1」にされる。より具体的には、メイン処理内で番地「F023」を更新し、割込み処理内で番地「F023」のデータに基づいて出力ポート3のデータを生成し、ブロッカ47を制御している。
図15において、番地「F025」の「_PT_MEDAL_LED 」は、投入枚数表示LEDデータの記憶領域であり、D5〜D7ビットにそれぞれ3枚〜1枚投入表示LED73g〜73eが割り当てられている。たとえば、D7ビットのみが「1」であるときは、1枚投入表示LED73eのみが点灯するように制御される。また、D7及びD6ビットが「1」であるときは、1枚投入表示LED73e及び2枚投入表示LED73fが点灯するように制御される。
番地「F027」の「_PT_MEDAL_IO」は、メダル信号データの記憶領域であり、D5ビットにメダル払出し信号、D6ビットにメダル投入(ベット)信号が割り当てられている。このビットの割り当ては、出力ポート6(図7)のメダル払出し信号及びメダル投入(ベット)信号の割り当てビットと同一になるように設定されている。メダル払出し信号は、外部にメダル払出し信号を出力するとき(送信しているとき)にオンとなる。同様に、メダル投入信号は、外部にメダル投入(ベット)信号を出力するときにオンとなる。
なお、本実施形態において、メダル投入信号は、ベットメダル枚数データ(何枚ベットされて遊技が開始されたか)を外部に送信するものであり、貯留枚数データは含まれない。
図16において、番地「F02A」の「_TM1_OUT_CNT」(外部信号出力時間)は、メダル投入信号及びメダル払出し信号の出力時間を計測するためのタイマ値の記憶領域である。本実施形態では、タイマ値が「0」になったと判断したときは、再度、タイマ値「46」にセットし、一割込みごとに「1」減算するカウントを継続する。
番地「F02F」の「_TM1_MDL_SENS 」は、投入センサ48a及び48bの異常入力検出を行うためのタイマ値の記憶領域である。本実施形態では、ブロッカ47がオフになったときに初期値として「224」をセットし、一割込みごとに「1」ずつ減算する。そして、詳細は後述するが、この値が「0」となったときに、投入センサ48a及び48bがメダルを検知しているときはエラーとする。
番地「F031」の「_TM1_CH_CHK 」は、通路センサ46の異常通過検出を行うためのタイマ値の記憶領域である。本実施形態では、通路センサ46の異常検出を開始するときに「200」の値をセットし、一割込みごとに「1」ずつ減算する。そして、「0」となったときでも通路センサ46がメダルを検知しているときはエラーとする。
番地「F032」の「_TM1_BLOFF_CHK」は、メダルセレクタ45とブロッカ47との間でメダルの挟み込みを防止するための時間を監視するタイマ値の記憶領域である。通路センサ46の立ち上がりデータを検知したときに、初期値として「45」をセットし、一割込みごとに「1」ずつ減算する。そして、この値が「0」となる前まではブロッカ47をオフからオンにしない。
番地「F033」の「_TM1_POWER_ON 」は、電断復帰時に外部信号4(出力ポート6のD1ビット)を出力する時間をカウントするタイマ値の記憶領域である。本実施形態では、電源断からの復帰を検知すると、この値の初期値として「136」をセットし、一割込みごとに「1」ずつ減算する。そして、この値が「0」になるまで、外部信号4を出力すると判断する。
番地「F040」の「_FL_WIN 」は、図柄組合せ表示フラグの記憶領域であり、本実施形態では、D0ビットにリプレイ、D1ビットに1BBが割り当てられている。たとえばリプレイ図柄が停止したと判断したときは、D0ビットが「1」にされる。そして、このビットが「1」から「0」にされるのは、次遊技の遊技開始時(スタートスイッチ41の操作時)である。
図17において、番地「F06C」の「_NB_REP_MEDAL 」は、自動投入枚数データ(リプレイ入賞時に自動ベットするメダル枚数を示すデータ)の記憶領域であり、本実施形態では「3」が記憶される。
番地「F06D」の「_NB_PLAY_MEDAL」は、メダルベット枚数データの記憶領域であり、本実施形態では、「0」〜「3」のいずれかが記憶される。
番地「F06E」の「_NB_PAY_MEDAL 」は、メダル払出し枚数データの記憶領域であり、本実施形態では、「0」〜「8」の値のいずれかが記憶される。なお、本実施形態では、1遊技におけるメダルの最大払出し枚数が8枚であるため、メダル払出し枚数データの最大値は「8」である。ただし、たとえば15枚払出し役を設けたときは、メダル払出し枚数データは、「0」〜「15」となる。
番地「F06F」の「_CT_MEDAL_IN」は、メダル投入(ベット)信号出力回数のデータ記憶領域であり、「0」〜「6」の値が記憶される。本実施形態では、このメダル投入信号出力回数は、メダルのベット枚数を信号として外部に出力する回数を示し、ベット枚数を2倍にした回数を出力する。したがって、本実施形態では、ベット枚数の最大値は「3」であるので、メダル投入信号出力回数の最大値は「6」となる。
番地「F070」の「_CT_MEDAL_OUT 」は、メダル払出し信号出力回数のデータ記憶領域であり、「0」〜「16」の値が記憶される。このメダル払出し信号出力回数は、メダル払出し枚数を信号として外部に出力する回数を示し、払出し枚数を2倍にした回数を出力する。したがって、本実施形態では、払出し枚数の最大値は「8」であるので、メダル払出し信号出力回数の最大値は「16」となる。上述したように、払出し枚数の最大値をたとえば「15」に設定した場合には、メダル払出し信号出力回数の最大値は「30」となる。
番地「F0E2」の「_FL_INF_OUT 」は、外部信号出力フラグの記憶領域であり、外部信号1〜3を出力するときに、それぞれ該当するビットが「1」となるデータである。これらの外部信号1〜3は、出力ポート6(図7)の外部信号1〜3と同一であり、これらの外部信号1〜3のビットの割り当ては、出力ポート6の外部信号1〜3のビットの割り当てと一致するように設定されている。
続いて、メダル信号(メダル投入信号、及びメダル払出し信号)について説明する。
図18(A)は、メダル信号の送信状態を説明するタイムチャートである。図18(A)に示すように、本実施形態では、メダル投入又は払出し信号は、メダル1枚につき、オン信号が1回送信される。たとえば、ベットメダルが3枚であるときは、メダル投入信号は、オン→オフ→オン→オフ→オン→オフとなる。同様に、たとえばメダル払出し枚数が1枚であるときは、メダル払出し信号は、オン→オフとなる。
また、図18(A)に示すように、本実施形態では、メダル信号を送信するときは、上述した外部信号出力時間としてカウント値が「0」(又は「46」の再セット)になったときにメダル信号をオンにし、再度、カウント値が「0」になるまで(すなわちメダル信号をオンにした後、46割込みをカウントするまで)メダル信号のオン状態を維持する。カウント値が「0」になる(割込み回数が「46」カウントされる)と、メダル信号をオフにし、再度、カウント値が「0」になるまで、すなわちメダル信号をオフにした後、46割込みをカウントするまでメダル信号のオフ状態を維持する。
本実施形態では、一割込み時間が2.235msであるので、46割込みを時間に換算すると、102.81(ms)(約100ms)となる。
上記のようなメダル信号の出力(オン/オフ)を、メダル枚数分だけ繰り返す。
図18(B)は、メダル払出し信号(メダル信号データ(_PT_MEDAL_IO)のD5ビット)とメダル払出し信号出力回数(_CT_MEDAL_OUT )との関係を示す図である。メダル払出し信号が「1」のとき、図18(A)のオン信号に相当し、「0」のとき、図18(A)のオフ信号に相当する。また、メダル払出し信号出力回数とは、オン又はオフになる回数を示す。したがって、本実施形態では、実際のメダル払出し枚数を2倍した値となる。
図18(B)において、まず、最初(更新前)(図中、左端側)は、メダル払出し信号は「0」となっている例を示す。そして、3枚のメダルが払い出されたときは、メダル払出し信号出力回数は、「6」に更新される。
また、Cレジスタ値は、
メダル払出し信号出力回数の値が「0」より大きいとき:00100000(D5ビットが「1」)
メダル払出し信号出力回数の値が「0」のとき:00000000(D5ビットが「0」)
に設定される。
具体的には、後述する図72のステップS966でメダル払出し信号出力回数が「0」より大きいと判断したときはステップS968でCレジスタのD5ビットを「1」に設定する。
したがって、上記例のように、メダル払出し信号出力回数が「6」に更新されると、Cレジスタ値のD5ビットは「1」となる。
次に、更新前メダル払出し信号と、CレジスタのD5ビット値とをXOR演算し、その値を更新後のメダル払出し信号とする。この例では、更新前メダル払出し信号が「0」、Cレジスタ値のD5ビットが「1」であるので、更新後メダル払出し信号は「1」となる。この更新後メダル払出し信号が「1」であるときは、図18(B)の下段図に示すようにオン信号となり、それが約100ms間継続される。
次の更新では、更新前メダル払出し信号は、前回と異なり、「1」となる。また、1回、メダル払出し信号出力を実行したので、メダル払出し信号出力回数は、「6」から「1」を減算して「5」に更新される。よって、Cレジスタ値のD5ビットは「1」となり、更新後のメダル払出し信号は「0」となる。これにより、次の約100ms間は、メダル払出し信号はオフとなる。
以上のように、約100msごとに演算していくと、更新前のメダル払出し信号が「0」であるときは更新後のメダル払出し信号は「1」となり、更新前のメダル払出し信号が「1」であるときは更新後のメダル払出し信号は「0」となる。よって、メダル払出し信号の出力を終了するまでは、更新後のメダル払出し信号は、「0」と「1」とを繰り返し、図18(B)の下段に示すような波形となる。
また、メダル払出し信号出力回数は、最後には「0」となる。メダル払出し信号出力回数が「0」になると、Cレジスタ値のD5ビット値も「0」となる。よって、最終的には、更新前メダル払出し信号、メダル払出し信号出力回数、Cレジスタ値のD5ビット値、及び更新後メダル払出し信号のすべてが「0」となる(図18(B))。
以上のように、本実施形態では、メダル払出し信号出力回数(F070;_CT_MEDAL_OUT )として、メダル払出し枚数データ(F06E;_NB_PAY_MEDAL )(リプレイ入賞時はメダル投入枚数データ(F06D;_NB_PLAY_MEDAL))を2倍にした値を記憶する。
このことは、後述するメダル投入信号出力回数(F06F;_CT_MEDAL_IN)についても同様であり、メダル投入枚数データ(F06D;_NB_PLAY_MEDAL)を2倍にした値を記憶する。
このように設定したのは、「1」を示すデータと「0」を示すデータとをそれぞれ生成するためである。このようにすれば、前回のメダル払出し(又は投入)信号が「1」であるか否かという判断を行うことなく、単純な演算処理で正しいメダル払出し(又は投入)信号を生成することができるからである。
図19は、図18(B)に示したように、メダル払出し信号とメダル払出し信号出力回数との関係を示す図である。図19(A)は割込み禁止なし時を示し、図19(B)は割込み禁止あり時を示す。
図19(A)に示すように、更新前のメダル払出し信号が「1」、メダル払出し信号出力回数が「3」である場合においては、更新後のメダル払出し信号は、「0」となる。その後、次にメダル払出し信号が更新される前に、メダル払出し信号出力回数が「3」から「5」に更新されると仮定する。
図19(A)に示すように、まず、処理1により、メダル払出し信号出力回数「3」に、メダル1枚に相当する「2」を加算した値「5」を、Aレジスタに記憶する。次に、Aレジスタ値「5」を、メダル払出し信号出力回数として更新する前に、割込み処理が実行され、メダル払出し信号出力回数が「3」から「1」を減算する処理が実行されたものとする(後述する図72のステップS967)。この割込み処理後、Aレジスタ値「5」を、メダル払出し信号出力回数として更新したものとする(処理2)。
この場合、図19(A)に示すように、メダル払出し信号は「0」、メダル払出し信号出力回数が「5」となるので、Cレジスタ値のD5ビットは「1」、更新後のメダル払出し信号は「1」となる。
これにより、図18で説明したように、メダル払出し信号を出力し続けていったときに、最後には、メダル払出し信号出力回数が「0」、かつ、Cレジスタ値のD5ビットが「0」となるにもかかわらず、メダル払出し信号は「1」となる。したがって、これ以降は、メダル払出し信号が「1」のままとなり、「0」にはならなくなってしまう。
このような不都合は、後述する図72のステップS961において、「外部信号出力時間終了?」で「Yes」と判断されたとき(ステップS962〜S969の処理が実行されるとき)に起こり得る。
上記のような不都合を回避するために、本実施形態では、メダル払出し信号出力回数の更新前後では、割込み禁止処理を実行する。その例が、図19(B)である。
図19(B)の例では、最初の段階では、同図(A)と同様に、メダル払出し信号が「1」、メダル払出し信号出力回数が「3」、Cレジスタ値のD5ビットが「1」となっている。この時点で、メダルが1枚払い出され、メダル払出し信号出力回数を更新しようとしたときは、割込みを禁止する(処理0)。
次に、処理1により、メダル払出し信号出力回数「3」に、メダル1枚の払出しに相当する「1」の2倍値「2」を加算した「5」を、Aレジスタに記憶する。そして、Aレジスタ値「5」を、メダル払出し信号出力回数として更新する。
この更新後に、処理3により、禁止していた割込み処理を許可する。この許可により割込み処理が実行されると、メダル払出し信号出力回数「5」から「1」を減算する処理(ステップS967)が実行される。
これにより、メダル払出し信号を出力し続けていったときに、最後には、メダル払出し信号出力回数が「0」、Cレジスタ値のD5ビットが「0」、かつメダル払出し信号が「0」となる。
以上のように、メダル払出し信号出力回数の更新前後で割込み処理を禁止し、メダル払出し信号出力回数の減算処理を禁止すれば、最後には、メダル払出し信号を「0」にすることができる。
なお、上述した割込み禁止処理は、図63のステップS461〜S463に相当する。
また、図18(B)及び図19は、メダル投入信号(メダル信号データ(_PT_MEDAL_IO)のD6ビット)、メダル投入信号出力回数(_CT_MEDAL_IN)についても同様に当てはまる。
具体的に説明すると、たとえば図18(B)において、最初(更新前)(図中、左端側)は、メダル投入信号は「0」となっている状態で、3枚のメダルが投入されると、メダル投入信号出力回数は、「6」に更新される。
また、Cレジスタ値は、
メダル投入信号出力回数の値が「0」より大きいとき:01000000(D6ビットが「1」)
メダル投入信号出力回数の値が「0」のとき:00000000(D6ビットが「0」)
に設定される。
この処理は、後述する図72のステップS963でメダル投入信号出力回数が「0」より大きいと判断したときはステップS965でCレジスタ値のD6ビットを「1」に設定する処理である。
したがって、メダル投入信号出力回数が「6」に更新されると、Cレジスタ値のD6ビットは「1」となる。
次に、更新前メダル投入信号と、CレジスタのD6ビット値とをXOR演算し、その値を更新後のメダル投入信号とする。図18(B)の例では、更新前メダル投入信号が「0」、Cレジスタ値のD6ビットが「1」であるので、更新後メダル投入信号は「1」となる。この更新後メダル投入信号が「1」であるときは、図18(A)に示すようにオンとなり、それが約100ms間継続される。
次の更新では、更新前メダル投入信号は、前回と異なり、「1」となる。また、1回、メダル投入信号出力を実行したので、メダル投入信号出力回数は、「6」から「1」を減算して「5」に更新される。よって、Cレジスタ値のD6ビットは「1」、更新後のメダル投入信号は「0」となる。これにより、次の約100ms間は、メダル投入信号はオフとなる。
以上のように、約100msごとに演算していくと、更新前のメダル投入信号が「0」であるときは更新後のメダル投入信号は「1」となり、更新前のメダル投入信号が「1」であるときは更新後のメダル投入信号は「0」となる。よって、メダル投入信号の出力を終了するまでは、更新後のメダル投入信号は、「0」と「1」とを繰り返し、図18(B)の下段に示すような波形となる。
また、メダル投入信号出力回数は、最後には「0」となる。メダル投入信号出力回数が「0」になると、Cレジスタ値のD6ビットも「0」となる。よって、最終的には、更新前メダル投入信号、メダル投入信号出力回数、Cレジスタ値のD6ビット、及び更新後メダル投入信号のすべてが「0」となる。
なお、メダル払出し時と同様に、メダル投入時にも、図19(B)のように割込み禁止処理を実行する。メダル投入時の割込み禁止処理は、図62のステップS442〜S444に相当する。
図20(A)、(B)は、それぞれ、メダル投入信号及びメダル払出し信号の送信タイミングを示すタイムチャートである。
上述したように、本実施形態では、メダル投入信号及びメダル払出し信号のいずれも、46割込み間、オンとなり、次に、46割込み間、オフとなる信号である。
外部信号出力時間は、カウントが開始されると、46割込み間(102.81ms)、割込み回数をカウントし、割込み回数のカウント値が「46」に到達すると、再度、値を「0」にリセットして、割込み回数のカウントを繰り返す。したがって、割込み回数「46」を繰り返すタイマである。
図20(A)において、メダルが3枚投入(ベット)されると、メダル投入信号を出力ポート6のD6ビットから出力する。上述したように、ベット枚数「3」のデータは2倍され、メダル投入信号出力回数は「6」となり、その数に対応するメダル投入信号が出力される。ここで、信号出力のタイミングは、外部信号出力時間の割込み回数のカウント値が「46」になった時である。したがって、メダル投入信号の送信準備が完了した後、次に外部信号出力時間の割込み回数のカウント値が「46」になった時が、送信開始タイミングとなる。
そして、その信号は出力され続け、次に外部信号出力時間の割込み回数のカウント値が「46」になった時に、オンからオフにされる。また、メダル投入信号出力回数が「0」でないときは、次に外部信号出力時間の割込み回数のカウント値が「46」になった時に、オフからオンにされる。このようにして、外部信号出力時間の割込み回数のカウント値が「46」になった時が、信号のオン/オフの契機となる。
図20(A)では、全リール31の停止時に、1枚役が入賞したときの例を示している。払出し枚数が「1」であるとき、上述したように、メダル払出し信号出力回数は、その値を2倍にした「2」となる。そして、メダル払出し信号の送信準備が完了した後、次に外部信号出力時間の割込み回数のカウント値が「46」になった時が、送信開始タイミングとなり、メダル払出し信号出力回数に対応するメダル払出し信号が出力される。出力信号がオンからオフ、及びオフからオンになるタイミングは、上記のメダル投入信号と同様である。
図20(B)は、メダル投入信号とメダル払出し信号との他の例を示している。図20(B)の例では、本実施形態では設けられていないが、15枚役(1遊技で払出し可能な最大枚数)が入賞したときのメダル払出し信号と次遊技との関係を示している。
全リール31が停止し、15枚役が入賞すると、メダル払出し信号出力回数として「30」が設定される(その直前のメダル払出し信号出力回数は「0」とする)。そして、上記と同様に、外部信号出力時間の割込み回数のカウント値が「46」になったタイミングで、メダル払出し信号の送信が開始される。上記のように、メダル払出し信号は、1つあたり約100msであるので、メダル払出し信号出力回数「30」に対応する時間は、約3秒となる。したがって、すべてのメダル払出し信号の送信が完了する前に、次遊技に移行し、さらに次遊技の全リール31が停止するまで遊技が進行する場合がある。
図20(B)の例では、メダル払出し信号出力回数が残り「13」となったときに3枚のメダルがベットされた例を示している。3枚のメダルがベットされると、メダル投入信号出力回数に「6」がセットされ、メダル投入信号がD6ビットから出力される。したがって、このメダル投入信号が出力されているときは、同時に、メダル払出し信号についてもD5ビットから出力されている。
また、本実施形態では、メダル投入信号の出力が完了する前であっても、遊技の開始が可能であるので、たとえば3ベットスイッチ40bが操作された直後にスタートスイッチ41が操作されたとき等は、メダル投入信号の出力完了前であってもリール31の回転が開始され、遊技が開始される。
そして、全リール31が停止したときに、図20(B)の例では、前遊技における15枚役の払出し信号の出力が未だ終了していない状態を示している。
さらに、この遊技では、8枚役が入賞したものとする。この場合、メダル払出し信号出力回数に、8枚の払出しに対応するメダル払出し信号出力回数「16」が加算される。この例では、メダル払出し信号出力回数が残り「2」のときに8枚払出し信号を受信し、メダル払出し信号出力回数(残り)が、「1+16=17」に更新された例を示している。
図21は、出力ポート6のD2〜D4ビットから出力される外部信号1〜3を示すタイムチャートである。ART発動、ART継続、ART中であることを示す外部信号の出力タイミングとしては種々挙げられるが、本実施形態では、以下のように制御する。
本実施形態では、押し順正解カウンタ及び押し順不正解カウンタを備える。
押し順正解カウンタは、後述するベル当選時に正解押し順でストップスイッチ42が操作された回数をカウントする。また、連続して正解しないとカウンタは加算されない。
たとえば、1回目のベル当選時に正解押し順でストップスイッチ42が操作されると、押し順正解カウンタは「+1」となる。次に、2回目のベル当選時に正解押し順でストップスイッチ42が操作されると、押し順正解カウンタは「+2」となる。しかし、2回目のベル当選時に不正解押し順でストップスイッチ42が操作されると、押し順正解カウンタのカウント値は「0」にクリアされる。このように、ベル当選時に、正解押し順でストップスイッチ42が操作されるごとに「+1」加算するが、ベル当選時に、不正解押し順でストップスイッチ42が操作されると「0」にクリアされる。
また、押し順正解カウンタは、ベル当選時に不正解押し順でストップスイッチ42が操作された回数をカウントする。また、連続して不正解にならないとカウンタは加算されない。たとえば、1回目のベル当選時に不正解押し順でストップスイッチ42が操作されると、押し順不正解カウンタは「+1」となる。次に、2回目のベル当選時に不正解押し順でストップスイッチ42が操作されると、押し順不正解カウンタは「+2」となる。しかし、2回目のベル当選時に正解押し順でストップスイッチ42が操作されると、「0」にクリアされる。
これにより、ART遊技中は、遊技者の操作ミスによりベル当選時に不正解押し順でストップスイッチ42が操作されたとしても、2連続で操作ミスをしない限り、押し順不正解カウンタの値は「+2」にはならない。
さらにまた、非ART遊技中において、ベル当選時に、3回連続で、正解押し順となり、押し順正解カウンタが「+3」になることは極めて稀である。
さらに、本実施形態では、ART中の遊技回数をカウントする遊技回数カウンタを備える。遊技回数カウンタは、押し順正解カウンタが「+1」になると、同時に「1」となり、押し順正解カウンタが「+3」になることなく「0」にクリアされたときは、同時に「0」にクリアされる。
押し順正解カウンタが「+3」になったときは、それ以降、ベル当選時の押し順正解/不正解にかかわらず、遊技ごとにカウント値を「+1」する。
ARTが開始されると、サブ制御基板80側で正解押し順が報知される。メイン制御基板60は、押し順正解カウンタが「+3」となったときは外部信号1及び3を出力する。
また、図21の例では、ARTは、1セットが50遊技からなり、当選等によって複数セットが継続可能に設定されている。本実施形態では、メイン制御基板60は、遊技回数カウンタが「50」となったときは、次のベル当選時に押し順正解カウンタが「+1」となったか否かを判断する。「+1」となったと判断したときは、外部信号1の出力を終了する。また、遊技回数カウンタが「50」となった後、押し順不正解カウンタが「+2」となったときは、外部信号1及び3の出力を終了する。
一方、ART継続を示す外部信号2は、押し順正解カウンタが「+3」となったときに、その時点からT1時間(たとえば1500ms)経過後に出力を開始する。そして、そして、遊技回数カウンタが「50」となった後、押し順正解カウンタが「+1」になるか、又は押し順不正解カウンタが「+2」になるまで出力を継続する。
図21の例では、ARTが3セット継続した例を示している。このような場合、遊技回数カウンタが「50」となった後、押し順正解カウンタが「+1」になったときは、その時点から外部信号2をオフにし、さらに、T2時間(たとえば1000ms)経過後に外部信号2の出力を再開する。
以上のようにして、図20及び図21に示すように、出力ポート6のD2〜D4ビットから外部信号1〜3(ART信号)が出力され、及びD5〜D6ビットからメダル投入又は払出し信号が出力される。
なお、上記例では、ベル当選時の正解押し順となった回数をカウントし、そのカウント値に基づいてARTに係る外部信号を送信した。しかし、これに限らず、後述するようにARTに移行したときはRT状態が移行(RT2に移行)するので、RT2となったときにART信号を送信するように構成してもよい。
また、出力ポート6(図7)に示すように、D0ビットからは外部信号5が出力され、D1ビットからは外部信号4が出力されるが、これらの信号出力については後述する。
次に、メイン制御基板60の具体的構成について説明する。
図5に示すように、メイン制御基板60のメインCPU62は、以下の設定変更手段62a等を備える。なお、本実施形態における以下の各手段は例示であり、本実施形態で示した手段に限定されるものではない。
設定変更手段62aは、設定値を変更・決定する手段である。
ここで、設定値とは、遊技者の有利度、より具体的にはメダルの投入枚数に対する払出し枚数の期待値(遊技者が獲得できるメダル)の程度を定めるものであり、本実施形態では設定1〜設定6の6段階を設けている。
そして、設定値が高くなるほど、少なくとも一部の役の当選確率が高く設定される等、遊技者にとっての有利度が高くなるように設定している。
また、設定値が高くなるほど、ARTに移行する確率が高くなり、遊技者にとっての有利度が高くなるように設定している。
なお、ARTに移行する確率を高くすることのみに限られるものではなく、たとえばAT中の遊技回数や払出し枚数を上乗せする確率を高くしたり、ARTを継続する確率を高くしてもよい。
設定値を設定・変更するには、電源スイッチ51、設定キースイッチ52、設定変更/リセットスイッチ53が用いられる。
本実施形態では、電源スイッチ51を一旦オフにし、電源断をした後に、設定キー挿入口に設定キーを差し込み、これを時計回りに90度回転させると、設定キースイッチ52がオンとなる。この状態で電源スイッチ51を再度オンにすると、設定変更中、すなわち設定変更モードになる。この場合、通常の立ち上げ処理は行われない。したがって、設定変更中にするためには、電源スイッチ51のオン/オフ操作が必要である。
設定変更モードでは、設定変更手段62aは、設定値表示LED63に、現在の設定値を表示する。
また、設定変更手段62aは、設定変更/リセットスイッチ53が1回操作(オン)されるごとに、設定値の表示を、・・・→「1」→「2」→「3」→「4」→「5」→「6」→「1」→「2」→・・・と順次変化させる。
さらに、設定変更手段62aは、スタートスイッチ41がオンにされると、このときに設定値表示LED63に表示していた数値で設定値を決定し、設定値が決定されたことを示す「0」を設定値表示LED63に表示する。
そして、設定変更手段62aは、設定キーを反時計回りに90度回転させて設定キースイッチ52をオフにすることで、決定した設定値をRWM61中の所定の記憶領域に記憶し、設定変更後の設定値で遊技が可能となる。
なお、本実施形態では、設定キースイッチ52のオフの判定は、設定キースイッチ52の立下りデータに基づいて実行されるように構成されているが、設定キースイッチ52のオン/オフの状態に基づいて実行されるように構成してもよい。
また、設定キー挿入口から設定キーを抜かなければ設定変更後の設定値で遊技ができないように構成してもよい。
さらに、設定キーを反時計回りに90度回転させて設定キースイッチ52をオフにし、設定キー挿入口から設定キーを抜き、この状態で電源スイッチ51を一旦オフにした後に再度オンにしなければ、設定変更後の設定値で遊技ができないように構成してもよい。
また、メダルがベットされていない状態で、かつ役抽選が行われていない状態(スタートスイッチ41の操作前)で、設定キーが設定キー挿入口に挿入され、設定キースイッチ52がオンにされると、「設定確認中」になる。すなわち、設定値を確認するだけの場合には、電源スイッチ51のオン/オフは不要である。設定確認中は、設定変更中と同様に、現時点での設定値が設定表示LED63に表示される。
さらにまた、設定キースイッチ52がオンにされた状態で、電源スイッチ51がオンにされると、リセット、すなわち初期化処理が行われる。この初期化処理については後述する。
役抽選手段62bは、遊技ごとに、遊技開始時に、役の抽選を行うものである。
ここで、本実施形態の役、図柄の組合せ等について説明する。
図22は、本実施形態におけるリール31の図柄配列を示す図である。図22では、図柄番号を併せて図示している。たとえば、左リール31において、図柄番号16番の図柄は、「ベル」である。
図22に示すように、本実施形態では、各リール31は、16コマ(図柄)に等分割され、各コマに所定の図柄が表示されている。なお、スロットマシン10の仕様によっては、20コマや21コマであってもよい。
また、図23は、スロットマシン10のフロントカバー11に設けられた表示窓13(透明窓)と、各リール31の位置関係と、有効ラインとを示す図である。
各リール31は、本実施形態では横方向に並列に3つ(左リール31、中リール31、及び右リール31)設けられている。さらに、各リール31は、表示窓13から、上下に連続する3図柄が見えるように配置されている。よって、スロットマシン10の表示窓13から、合計9個の図柄が見えるように配置されている。なお、各図柄の右下の数字は図柄番号を示している。
なお、本明細書では、図6中、左リール31の「スイカ(01番)」、中リール31の「リプレイ(16番)」、及び右リール31の「青7(14番)」の図柄が停止している位置を「上段」と称し、左リール31の「ベル(16番)」、中リール31の「ベル(15番)」、及び右リール31の「リプレイ(13番)」の図柄が停止している位置を「中段」と称し、左リール31の「リプレイ(15番)」、中リール31の「白7(14番)」、及び右リール31の「ベル(12番)」の図柄が停止している位置を「下段」と称する。
さらにまた、図23に示すように、表示窓13から見える9個の図柄に対し、有効ラインが設定されている。
ここで、「有効ライン」とは、リール31の停止時における図柄の並びラインであって図柄の組合せを形成させる図柄組合せラインであり、かつ、いずれかの役に対応する図柄の組合せがそのラインに停止したときに、その役の入賞となるラインである。本実施形態では、図6に示すように、水平方向中段の有効ライン(1本)のみが定められ、他の図柄組合せラインは、全て無効ラインとなっている。
たとえば、図23中、各リール31の上段を通過する図柄組合せラインや、左リール31の下段、中リール31の中段、及び右リール31の上段を通過する図柄組合せラインも考えられるが、このようなラインは、本実施形態では無効ラインとなっている。無効ラインは、図柄組合せラインのうち、有効ラインとして設定されないラインであって、いずれかの役に対応する図柄の組合せがそのラインに停止した場合であっても、その役に応じた利益の付与(メダルの払出し等)を行わないラインである。すなわち、無効ラインは、そもそも図柄の組合せの成立対象となっていないラインである。
また、従来より、メダルのベット枚数に応じて有効ライン数が異なるスロットマシンが知られている。たとえば、メダルベット枚数が1枚のときは有効ラインは1本、メダルベット枚数が2枚のときは有効ライン数は3本、メダルベット枚数が3枚のときは有効ライン数は5本に設定すること等が挙げられる。これに対し、本実施形態では、遊技中は、3枚又は2枚のメダルをベットして遊技を行うとともに、すべての遊技において、常に水平方向中段の1本のみが有効ラインとなる。なお、有効ラインはメダルのベット枚数に応じて予め定められていればよい。
図24〜図26は、本実施形態における役の種類、払出し枚数、及び図柄の組合せを示す図である。図24〜図26中、「役」の欄にかっこ書きで表示されたメダル枚数は、その役の入賞時の払出し枚数を示す。
また、たとえば図24のベル02aの場合には、ベル02aの図柄の組合せとして、「リプレイ」−「赤7」−「赤7」と、「リプレイ」−「赤7」−「BAR」の2種類を有するという意味である(他の役において、複数の図柄の組合せを有する場合も、同様の意味である。)。
本実施形態の役は、大別して、特別役、リプレイ、小役を有する。
そして、各役に対応する図柄の組合せ及び入賞時の払出し枚数等が定められている。すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止する(役が入賞する。以下同じ。)と、その役に対応する枚数のメダルが払い出される。
なお、「遊技機の認定及び型式の検定等に関する規則」では、リプレイに対応する図柄の組合せが有効ラインに停止したときは、メダル等の投入をすることによらずに行う遊技を付与することとされ、「入賞(メダル等を獲得するための図柄の組合せが表示されること)」ではないと解釈されている。しかし、本願(本明細書等)では、リプレイについても役の1つとして扱い(再遊技役)、リプレイに対応する図柄の組合せが有効ラインに停止したことを「リプレイの入賞」と称している。
まず、特別役とは、通常遊技から特別遊技に移行させる役である。本実施形態では、特別役として、1BB(第1種ビッグボーナス)が設けられている。
なお、特別役としては、他に、RB(レギュラーボーナス)、SB(シングルボーナス)、MB(ミドルボーナス。第2種ビッグボーナス(2BB)ともいう。)が挙げられるが、本実施形態では設けられていない。
1BBが入賞すると、当該遊技におけるメダルの払い出しはないが、次遊技から、特別遊技に相当する1BB遊技に移行する。
なお、1BB遊技は、出率が「1」を超えるように設定されていることで、通常遊技以上にメダル獲得が期待できる、遊技者にとって有利な遊技である。
また、リプレイ(再遊技役)とは、当該遊技で投入したメダル枚数を維持した(メダルを自動ベットする)再遊技が行えるようにした役である。
本実施形態のリプレイは、ノーマルリプレイに相当するリプレイと、2種類の特殊リプレイ(特殊リプレイ1及び2)を備え、それぞれ図柄の組合せが異なる。
特殊リプレイ1は、RT1において入賞すると、RT1からRT2に遊技状態を昇格させる役であり、昇格リプレイとも称される。
一方、特殊リプレイ2は、RT2において入賞すると、RT2からRT1に遊技状態を降格させる役であり、転落リプレイとも称される。
さらにまた、小役は、大別してベルとチェリーとからなる。
そして、ベルは、入賞時に8枚の払出しのあるベル01と、入賞時に1枚の払出しのあるベル02a〜09dを備える。
チェリーは、チェリー01〜04の4種類を有し、いずれも、入賞時の払出し枚数は1枚に設定されている。
上述した各役において、役に当選した遊技でその役に対応する図柄の組合せが有効ラインに停止しなかったときは、次遊技に持ち越される役と、持ち越されない役とが定められている。
持ち越される役は、特別役である1BBである。1BBに当選したときは、1BBが入賞するまでの遊技において、1BBの当選を次遊技に持ち越すように制御される。
一方、1BBの当選は持ち越されるのに対し、1BB以外の小役及びリプレイは、持ち越されない。役の抽選において、小役又はリプレイに当選したときは、当該遊技でのみその当選役が有効となり、その当選は次遊技に持ち越されない。すなわち、これらの役に当選した遊技では、その当選した役に対応する図柄の組合せが入賞可能にリール31が停止制御されるが、その当選役の入賞の有無にかかわらず、その遊技の終了時に、その当選役に係る権利(つまり、情報)は消滅する。
なお、特別役(1BB)に当選していない遊技中(特別役の当選が持ち越されていない遊技中)を、「非内部中」という。また、当該遊技以前の遊技において特別役に当選しているが、当選した特別役が入賞していない遊技中(特別役の当選が持ち越されている遊技中)を「内部中」という。
説明を図5に戻す。
役抽選手段62bは、たとえば、役抽選用の乱数発生手段(ハードウェア乱数や、MPUに備えられている乱数生成回路等)と、この乱数発生手段が発生する乱数を抽出する乱数抽出手段と、乱数抽出手段が抽出した乱数値に基づいて、役の当選の有無及び当選役を判定する判定手段とを備えている。
乱数発生手段は、所定の領域(たとえば10進法で0〜65535)の乱数を発生させる。乱数は、たとえば200n(ナノ)secで1カウントを行うカウンターが0〜65535の範囲を1サイクルとしてカウントし続ける乱数(ハードウェア乱数)や予め定められたランダムな数値順序(数列)に対してMPUに入力されるクロックの周期毎に更新する乱数(内蔵乱数)であり、スロットマシン10の電源が投入されている間は、乱数をカウントし続ける。
乱数抽出手段は、乱数発生手段によって発生した乱数を、所定の時、本実施形態では遊技者によりスタートスイッチ41が操作(オン)された時に抽出する。判定手段は、乱数抽出手段により抽出された乱数値を、役抽選テーブルと照合することにより、その乱数値が属する領域に対応する役を決定する。たとえば、抽出した乱数値が1BBの当選領域に属する場合は、1BBの当選と判定し、非当選領域に属する場合は、非当選と判定する。
なお、抽出した乱数を演算により加工して役抽選テーブルと照合してもよい。
役抽選テーブルは、抽選される役の種類と、各役の当選確率とを定めたものである。役抽選テーブルは、遊技状態ごとに設けられ、それぞれ所定の範囲の抽選領域を有し、この抽選領域は、各役の当選領域及び非当選領域に分けられているとともに、抽選される役が、予め設定された当選確率となるように所定の割合に設定されている。
図27及び図28は、本実施形態における当選の種類を示す図である。本実施形態における当選は、当選番号「0」〜「16」を有する。役抽選手段62bで役の抽選が行われると、当選番号「0」〜「16」のいずれか、又は非当選となる。
当選番号「0」の1BBの当選、及び当選番号「2」のリプレイの当選は、それぞれ、1BB及びリプレイの単独当選である。
これに対し、当選番号「3」〜「16」は、複数種類の役の重複当選である。
当選番号「2」〜「13」は、ベル当選を示し、いずれも、8枚役であるベル01と、1枚役である3種類のベル(合計4種類)との重複当選である。たとえば、ベルA1は、ベル01、ベル02a、ベル03、ベル04aの4つのベルの重複当選を意味する。
また、当選番号「14」のチェリー重複は、チェリー01〜04の4つのチェリーが重複当選するものである。
さらにまた、当選番号「15」のリプレイ重複当選1は、特殊リプレイ1及び特殊リプレイ2の重複当選であり、当選番号「16」のリプレイ重複当選2は、特殊リプレイ1、特殊リプレイ2、及びリプレイの重複当選である。
なお、図27及び図28では、「備考」欄において、ストップスイッチ42の押し順と入賞役との関係を示しているが、この点については後述する。
図29は、上述した当選番号「0」〜「16」の遊技状態ごとの当選確率を示す図である。いいかえれば、図29は、遊技状態ごとの役抽選テーブルを示すものである。
図29において、「置数」とは、乱数値がとる全範囲「65536」のうち、当選となる範囲を示す値である。したがって、「当選確率=置数/65536」となる。たとえば、RT1等の遊技状態において、1BBの置数は「218」であるので、1BBの当選確率は、「218/65536」=「約1/300」である。
なお、1BBは、上述した設定値に応じて異なるように設定されており、図29の例は、いずれか1つの設定値における置数を示している。
また、本実施形態の「遊技状態」としては、通常遊技と1BB遊技(特別遊技)とを有する。通常遊技は、1BBの非内部中遊技と内部中遊技とを有する。内部中遊技におけるリプレイの当選確率は、8978/65536(約1/7.3)である。
また、非内部中遊技は、RT1及びRT2を有する。RT1では、当選番号「1」と、当選番号「15」及び「16」の合算の確率は、「約1/7.3」であり、内部中遊技にけるリプレイの当選確率とほぼ同一である。
ここで、RT1は、リプレイの当選確率が通常確率に設定されたRT(非RTとも称される)状態である。なお、RT1がいわゆる「通常中(非ARTかつ非内部中)」と称される遊技状態である。
また、RT2は、リプレイの当選確率が高確率に設定されたRTである。RT2では、当選役により、非当選をほとんど有さない(1/65536)ように設定されている。
なお、内部中遊技におけるリプレイの当選確率を、通常時(RT1等)よりも高く設定したとき、内部中RTと称する場合もある。
また、本実施形態では、RT1は非ARTであり、RT2はARTである。
したがって、非内部中遊技では、非ARTであるときとARTであるきとを有するが、内部中遊技では、常に非ARTである。
これらの各遊技状態ごとに役抽選テーブルが設けられているとともに、図29に示すように、抽選される役の種類や当選確率が設定されている。
非内部中遊技では、1BBが抽選される。そして、1BBに当選したときは、次遊技から内部中遊技に移行する。内部中遊技に移行すると、1BBは抽選されない。
1BB遊技以外の遊技状態において、内部中遊技では、リプレイは、当選番号「1」のみが抽選される。これに対し、非内部中であるRT1及びRT2では、リプレイの当選として、当選番号「1」、「15」、「16」を有する。
また、ベル当選の種類としては、ベルA1〜A8及びB1〜B4を有する。そして、詳細は後述するが、ベルA1〜A8当選時は、変則押し(中又は右第一停止)が正解押し順となるベル当選であり、ベルB1〜B4当選時は、順押し(左第一停止)が正解押し順となるベル当選である。
さらに、ベルA1〜A8当選は、いずれも、置数として「1260」が割り当てられているが、ベルB1〜B4当選には、いずれも置数として「1620」が割り当てられており、ベルA1〜A8当選よりも当選確率が高い。
また、1BB遊技では、ベル当選のうち、ベルB1に当選するように設定されている。さらにまた、本実施形態の1BB遊技では、リプレイの抽選を行わないが、リプレイの抽選を行うようにすることは、もちろん可能である。
図5において、メインCPU62は、役抽選手段62bによる役の抽選結果に基づいて、各役に対応する当選フラグのオン/オフを制御する。本実施形態では、すべての役について、各役ごとに当選フラグ(RWM61の記憶領域の一部)を備える。そして、役抽選手段62bによる役の抽選においていずれかの当選となったときは、当該当選に対応する役の当選フラグをオンにする(当選フラグを立てる)。
たとえば、非内部中遊技において、ベルA1に当選したときは、ベル01、02a、03、04a(合計4個)に係る当選フラグがオンとなり、それ以外の役の当選フラグはオフとなる。
さらに、上述したように、特別役以外の小役及びリプレイの当選は持ち越されないので、当該遊技で小役又はリプレイに当選し、これらの役の当選フラグがオンにされても、当該遊技の終了時にその当選フラグがオフにされる。
これに対し、1BBの当選は持ち越されるので、当該遊技で1BBに当選し、当選した1BBに係る当選フラグが一旦オンになったときは、その1BBが入賞するまでオンの状態が維持され、その1BBが入賞した時点でオフにされる。
たとえば役抽選手段62bで1BBに当選し、当該遊技で1BBが入賞しなかった場合において、次遊技(内部中遊技)でベルA1に当選したときは、前遊技で当選した1BB、及び当該遊技で当選したベル01、02a、03、04a(合計5個)の当選フラグがオンにされる。そして、この遊技で1BBが入賞しなかったときは、1BBの当選フラグのオンの状態は維持される。これに対し、当該遊技での遊技結果(入賞/非入賞)にかかわらず、当該遊技の終了時にベルA1に係る4個の当選フラグはオフにされる。
なお、本実施形態における「遊技結果」とは、役抽選手段62bにより当選した当選役に対応したリール31の停止表示結果を指す。
図5において、リール制御手段62cは、リール31の回転開始命令を受けたとき、特に本実施形態ではスタートスイッチ41が操作されたときに、すべて(3つ)のリール31の回転を開始するように制御するものである。さらに、リール制御手段62cは、役抽選手段62bにより役の抽選が行われた後、当該遊技における当選フラグのオン/オフを参照して当選フラグのオン/オフに対応する停止位置決定テーブルを選択するとともに、ストップスイッチ42が操作されたときに、ストップスイッチ42が操作されたときのタイミングに基づいて、そのストップスイッチ42に対応するリール31の停止位置を決定するとともに、モータ32を駆動制御して、その決定した位置にそのリール31を停止させるように制御するものである。
たとえば、リール制御手段62cは、少なくとも1つの当選フラグがオンである遊技では、リール31の停止制御の範囲内において、当選役(当選フラグがオンになっている役)に対応する図柄の組合せを有効ラインに停止可能にリール31を停止制御するとともに、当選役以外の役(当選フラグがオフになっている役)に対応する図柄の組合せを有効ラインに停止させないようにリール31を停止制御する。
ここで、「リール31の停止制御の範囲内」とは、ストップスイッチ42が操作された瞬間からリール31が実際に停止するまでの時間又はリール31の回転量(移動コマ(図柄)数)の範囲内を意味する。
本実施形態では、リール31は、定速時は1分間で約80回転する速度で回転される。
そして、ストップスイッチ42が操作されたときは、ストップスイッチ42が操作された瞬間からリール31を停止させるまでの時間が190ms以内に設定されている。これにより、本実施形態では、ストップスイッチ42が操作された瞬間の図柄からリール31が停止するまでの最大移動コマ数が3コマに設定されている。
そして、ストップスイッチ42の操作を検知した瞬間に、リール31の停止制御の範囲内にある図柄のいずれかが所定の有効ラインに停止させるべき図柄であるときは、ストップスイッチ42が操作されたときに、その図柄が所定の有効ラインに停止するように制御される。
すなわち、役の当選時にストップスイッチ42が操作された瞬間に直ちにリール31を停止させると、当選した役に係るその図柄が所定の有効ラインに停止しないときには、リール31を停止させるまでの間に、リール31の停止制御の範囲内においてリール31を回転移動制御することで、当選した役に係る図柄をできる限り所定の有効ラインに停止させるように制御する(引込み停止制御)。
また逆に、ストップスイッチ42が操作された瞬間に直ちにリール31を停止させると、当選していない役に対応する図柄の組合せが有効ラインに停止してしまうときは、リール31の停止時に、リール31の停止制御の範囲内においてリール31を回転移動制御することで、当選していない役に対応する図柄の組合せを有効ラインに停止させないように制御する(蹴飛ばし停止制御)。
さらに、複数の役に当選している遊技では、入賞させる役の優先順位が予め定められており、所定の優先順位によって、最も優先する図柄の引込み停止制御を行う。
さらに、リール制御手段62cは、ストップスイッチ42の押し順(操作順番)を検出する。
ストップスイッチ42が操作されると、そのストップスイッチ42が操作された旨の信号がリール制御手段62cに入力される。この信号を判別することで、どのストップスイッチ42が操作されたかを検出する。
さらに、本実施形態では、非ART中(後述するART準備中を除く)は、最初に操作すべき(第一停止の)ストップスイッチ42は、左(順押し)と定めている(左第一停止指示)。ここで、中又は右第一停止(変則押し)でストップスイッチ42が操作されたときは、たとえば所定遊技回数の間、ペナルティ期間に設定するための条件としている。つまり、変則押しをしても必ずしもペナルティ期間に設定されるわけではない。たとえば、いずれかのベルに当選し、かつ押し順正解となり、8枚の払出しとなったときにペナルティ期間に設定するようにする。しかし、変則押しを抑制するために、当選役等によらずにペナルティの押し順であることを、音、画像、ランプ等により警告報知している。
これにより、遊技者は、変則押し(第一停止が中又は右)の押し順報知が行われたとき以外は、常に左第一停止として遊技を消化する。
なお、ART中に押し順報知が行われた場合において、その報知内容が中又は右第一停止であるときはペナルティは設定されない。
また、変則押し時に設定するペナルティは、種々挙げられるが、本実施形態では、ペナルティ期間中は、ART抽選を遊技者にとって不利な確率で実行する(たとえば、後述する低確率よりもさらに不利な確率で実行する)こと、及び当選役の報知を行わないことに設定されている。
停止位置決定テーブルは、当選フラグのオン/オフの状態ごと、すなわち役抽選手段62bによる役の抽選結果ごとに対応して設けられており、ストップスイッチ42が操作された瞬間のリール31の位置に対する、リール31の停止位置を定めたものである。そして、各停止位置決定テーブルには、たとえば01番の図柄(左リール31であれば「スイカ」)が中段(有効ライン)を通過する瞬間にストップスイッチ42が操作されたときは、何図柄だけ移動制御して、何番の図柄を中段に停止させる、というように停止位置が事前に定められている。
停止位置決定テーブルは、以下のものを備える。
1BBテーブルは、1BBの当選フラグ66aのみがオンであるとき、すなわち当該遊技で1BBに当選したとき、又は当該遊技以前に1BBに当選し、かつ当該遊技で非当選であるときに用いられ、リール31の停止制御の範囲内において、1BBに対応する図柄の組合せを有効ラインに停止させるとともに、1BB以外の役に対応する図柄の組合せを有効ラインに停止させないように、リール31の停止時の図柄の組合せを定めたものである。
本実施形態において、1BBに係る図柄は、全リール31ともに「BAR」図柄である。そして、「BAR」図柄は、各リール31に1個ずつ設けられている。したがって、任意の位置でストップスイッチ42を操作しても、常に「BAR」図柄が有効ラインに引き込まれるものではなく、有効ラインに「BAR」図柄が停止するように狙ってストップスイッチ42を操作すること(目押し)が必要である。
ここで、上記のように、適切なリール31の位置で(対象図柄を最大移動コマ数の範囲内において停止可能な操作タイミングで)ストップスイッチ42を操作しなければ、対象図柄を有効ラインに停止させる(有効ラインまで引き込む)ことができないことを、「PB(引込み率)≠1」と称する。
これに対し、ストップスイッチ42が操作された瞬間のリール31がどの位置であっても(ストップスイッチ42の操作タイミングにかかわらず)、対象図柄を常に有効ラインに停止させる(引き込む)ことができることを、「PB=1」と称する。
そして、「PB=1」は、その役について、全リール31がそのようになっている場合と、特定の(一部の)リール31についてのみそのようになっている場合とを有する。
上述したように、第1実施形態では、最大移動コマ数は「3」であるので、4図柄以内の間隔で対象図柄が配列されているときは、「PB=1」となり、5図柄以上の間隔で配列されているときは、「PB≠1」となる。
リプレイテーブルは、リプレイの(単独)当選となったときに用いられ、リール31の停止制御の範囲内において、リプレイを入賞させるとともに、リプレイ以外の役を入賞させないように、リール31の停止時の図柄の組合せを定めたものである。
ここで、図22に示すように、すべてのリール31において、「リプレイ」の図柄は、4図柄以内の間隔で配置されている。したがって、リプレイについては、ストップスイッチ42の操作タイミングにかかわらず、リプレイを常に入賞させることができる(PB=1)。
非内部中遊技及び内部中遊技のいずれも、リプレイの当選時は、「PB=1」でリプレイが入賞する。
リプレイ重複1テーブルは、当選番号「15」のリプレイ重複1に当選したときに用いられ、リール31の停止制御の範囲内において、ストップスイッチ42の押し順が中第一停止であるときは特殊リプレイ1を入賞させ、左又は右第一停止であるときは、特殊リプレイ2を入賞させるように、リール31の停止時の図柄の組合せを定めたものである。
具体的に説明すると、リプレイ重複1テーブルが用いられた遊技において、中第一停止であるときは、中リール31の停止時に中段に「ベル」図柄を停止させる。次の第二停止が左又は右であるかは不問であり、左リール31の停止時には中段に「リプレイ」図柄を停止させ、右リール31の停止時には中段に「リプレイ」図柄を停止させる。
これに対し、左第一停止であるときは、左リール31の停止時に中段に「ベル」図柄を停止させる。そして、この場合、中リール31の停止時には中段に「リプレイ」図柄を停止させ、右リール31の停止時には中段に「ベル」図柄を停止させる。
同様に、右一停止であるときは、右リール31の停止時に中段に「ベル」図柄を停止させる。そして、この場合、左リール31の停止時には中段に「ベル」図柄を停止させ、中リール31の停止時には中段に「リプレイ」図柄を停止させる。
また、リプレイ重複当選2テーブルは、当選番号「16」のリプレイ重複2に当選したときに用いられ、リール31の停止制御の範囲内において、ストップスイッチ42の押し順が右第一停止であるときは特殊リプレイ1を入賞させ、左又は中第一停止であるときは、特殊リプレイ2を入賞させるように、リール31の停止時の図柄の組合せを定めたものである。
リール31の停止制御については、リプレイ重複1テーブルと同様であり、右第一停止であるときは「リプレイ」−「ベル」−「リプレイ」(特殊リプレイ1)を有効ラインに停止させ、左又は中第一停止であるときは「ベル」−「リプレイ」−「ベル」(特殊リプレイ2)を有効ラインに停止させる。
ベルA1テーブルは、ベルA1の当選となったとき(ベル01、02a、03、04aの各当選フラグ66aオン時)に用いられ、リール31の停止制御の範囲内において、ストップスイッチ42の押し順及び操作タイミングに応じて、当選したベルを入賞させる(入賞可能となる)ように、リール31の停止時の図柄の組合せを定めたものである。
ここで、複数の役が同時に当選(重複当選)している場合にリール31を停止制御する方法として、「枚数優先」と「個数優先」とが挙げられる。
「枚数優先」とは、重複当選している役に係る図柄の組合せのうち、払出し枚数の最も多い役に係る図柄の組合せを構成する図柄を優先して有効ラインに停止させる(引き込む)ように、リール31の停止位置を定めている。
一方、「個数優先」とは、リール31の停止時に、その図柄を有効ラインに停止させたときに、入賞可能となる図柄の組合せの数が最も多くなるように、リール31の停止位置を定めている。
本実施形態では、ベルA1の当選時は、8枚役のベル01、1枚役のベル02a、03、04aの重複当選となる。
他のベル当選時においても、8枚役のベル01と、1枚役の3種類のベルとの重複当選になることは、同様である。
そして、本実施形態では、いずれかのベル当選時において、ストップスイッチ42の押し順が正解押し順であるときは枚数優先に基づく停止制御を行い、押し順が不正解押し順であるときは個数優先に基づく停止制御を行う。
以下、ベルA1当選時を例に挙げ、停止制御について説明する。
図27及び図28では、「名称」の欄に、かっこ書きで正解押し順を表示している。さらに、「備考」欄に、ストップスイッチ42の押し順と入賞役との関係を示している。
たとえばベルA1において、「備考」中、「213」とは、中左右の押し順を示し、「231」とは、中右左の押し順を示す(「1」=左、「2」=中、「3」=右)。
また、「1−−」とは、左第一停止(第二及び第三停止の押し順は任意)を意味し、「3−−」とは、右第一停止(第二及び第三停止の押し順は任意)を意味する。
さらに、「231:1枚(ベル03)」とは、「231」すなわち中右左の不正解押し順時には、「PB=1」で1枚役であるベル03が入賞することを意味する。
「備考」欄に記載した他の内容についても上記と同様に解釈する。
ベルA1当選時の正解押し順は、中左右である。したがって、中左右の押し順でストップスイッチ42が操作されたときは、ベル01が入賞し、8枚の払出しとなる。ここで、ベル01の図柄の組合せは、「ベル」−「ベル」−「リプレイ」であるが、右リール31の「リプレイ」は、上述したように、「PB=1」の配列である。
また、図22に示すように、全リール31ともに、「ベル」図柄は、「PB=1」の配列である。よって、ベルA1当選時に、正解押し順である中左右でストップスイッチ42が操作されたときは、有効ラインに、ベル01である「ベル」−「ベル」−「リプレイ」が停止する。
なお、16コマのリール31上に4図柄間隔で均等に配置すれば、「PB=1」の図柄に設定することができる。
一方、ベルA1当選時に、中第一停止であったが(第一停止時点では正解押し順)、右第二停止であり不正解押し順となった場合には、以下のように停止制御する。
中第一停止時には、この時点では正解押し順であるので、リール制御手段62cは、中リール31の停止時に中段に「ベル」を停止させる。この時点では、押し順正解であるので、枚数優先により中リール31を停止させている。
次に、右第二停止時には、この時点で押し順不正解となるので、リール制御手段62cは、個数優先制御を行うことにより、右リール31の停止時に中段に「リプレイ」を停止させない。
なお、中リール31の停止時には「ベル」図柄が停止しているので、中リール31の図柄が「ベル」である図柄の組合せを有効ラインに停止させるように制御する必要がある。
ベルA1当選時に、当選している役のうち、ベル01以外の役は、
「リプレイ」−「赤7」−「赤7」(ベル02a)
「リプレイ」−「赤7」−「BAR」(ベル02a)
「スイカ」−「ベル」−「スイカ」(ベル03)
「スイカ」−「ベル」−「チェリー」(ベル03)
「チェリー」−「ベル」−「スイカ」(ベル03)
「チェリー」−「ベル」−「チェリー」(ベル03)
「赤7」−「スイカ」−「ベル」(ベル04a)
「BAR」−「スイカ」−「ベル」(ベル04a)
である。
これにより、右リール31の停止時に「スイカ」図柄を有効ラインに停止させたときは、その時点で、「スイカ」−「ベル」−「スイカ」又は「チェリー」−「ベル」−「スイカ」の2種類の図柄の組合せが停止可能な状態となる。
同様に、右リール31の停止時に「チェリー」図柄を有効ラインに停止させたときは、その時点で、「スイカ」−「ベル」−「チェリー」又は「チェリー」−「ベル」−「チェリー」の2種類の図柄の組合せが停止可能な状態となる。
一方、右リール31の停止時に「リプレイ」図柄を停止させたときは、その時点で入賞可能となる図柄の組合せは、「ベル」−「ベル」−「リプレイ」(ベル01)の1種類となる。
よって、個数優先により、右リール31の停止時には、「スイカ」図柄又は「チェリー」図柄を優先して停止させることが可能となる。
図22に示すように、右リール31において、「スイカ」図柄は、07番及び15番に配置され、「チェリー」図柄は、03番及び11番に配置されている。したがって、「スイカ」又は「チェリー」図柄のいずれかは、4図柄間隔で配置されていることとなる。よって、上述したように、「スイカ」図柄又は「チェリー」図柄のいずれかを、「PB=1」で有効ラインに停止させることができる。
なお、左及び中リール31においても、右リール31のように、「スイカ」図柄又は「チェリー」図柄のいずれかは、4図柄間隔配置となっている。たとえば左リール31では、「スイカ」図柄又は「チェリー」図柄は、01番、05番、09番、13番に配置されている。また、中リール31では、「スイカ」図柄又は「チェリー」図柄は、01番、05番、09番、13番に配置されている。
仮に、右リール31の停止時に有効ラインに「スイカ」図柄を停止させたときは、その時点では、「回転中」−「ベル」−「スイカ」となる。そして、最後に左リール31を停止させるときは、「スイカ」又は「チェリー」図柄を有効ラインに停止させるように制御する。
また、右リール31の停止時に有効ラインに「チェリー」図柄を停止させたときは、その時点では、「回転中」−「ベル」−「チェリー」となる。そして、最後に左リール31を停止させるときは、上記と同様に、「スイカ」又は「チェリー」図柄を有効ラインに停止させるように制御する。
よって、ベルA1当選時に、中右左の押し順でストップスイッチ42が操作されたときは、「PB=1」(1/1の確率)でベル03を入賞させることができる。
次に、ベルA1当選時において、左第一停止であるときは、以下のように停止制御される。
左第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先によってリール31を停止制御する。
ベルA1当選時における左第一停止時に、有効ラインに「リプレイ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「リプレイ」−「赤7」−「赤7」
「リプレイ」−「赤7」−「BAR」
である(合計2種類)。
また、左第一停止時に、有効ラインに「スイカ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「スイカ」−「ベル」−「スイカ」
「スイカ」−「ベル」−「チェリー」
である(合計2種類)。
さらにまた、左第一停止時に、有効ラインに「チェリー」を停止させると、この時点で入賞可能となる図柄の組合せは、
「チェリー」−「ベル」−「スイカ」
「チェリー」−「ベル」−「チェリー」
である(合計2種類)。
さらに、左第一停止時に、有効ラインに「赤7」を停止させると、この時点で入賞可能となる図柄の組合せは、「赤7」−「スイカ」−「ベル」である(1種類)。
同様に、左第一停止時に、有効ラインに「BAR」を停止させると、この時点で入賞可能となる図柄の組合せは、「BAR」−「スイカ」−「ベル」である(1種類)。
以上において、入賞可能となる図柄の組合せが1種類の場合は、個数優先の対象にはならない。したがって、入賞可能となる図柄の組合せが2種類となる「リプレイ」、「スイカ」、「チェリー」のいずれかである。
このように、個数が同一となる図柄の組合せを複数有する場合には、いずれを採用してもよく、事前に決定しておけばよい。本実施形態では、ベルA1当選時の左第一停止時は、「リプレイ」図柄を有効ラインに停止させると定めている。なお、左リール31の停止時に、「リプレイ」図柄を「PB=1」で有効ラインに停止させることができる。
よって、左第一停止時に「リプレイ」図柄を有効ラインに停止させたとき、その時点で有効ラインに停止可能となるのは、
「リプレイ」−「赤7」−「赤7」
「リプレイ」−「赤7」−「BAR」
の2種類である。
次に、中停止時には、有効ラインに「赤7」図柄を停止可能であるときは「赤7」図柄を停止させ、「赤7」を停止不可能であるときは、他の図柄を停止させる。
図5に示すように、中リール31において、「赤7」図柄は、02番にのみ設けられている。したがって、15番〜16番又は01番〜02番が有効ラインを通過する瞬間(直前)に中ストップスイッチ42が操作されたときは「赤7」図柄を有効ラインに停止させることができる。それ以外の位置で中ストップスイッチ42が操作されたときは、「赤7」図柄を有効ラインに停止させることができない。このため、中リール31の停止時に「赤7」図柄を有効ラインに停止させることができる確率は「1/4」となる。
また、右停止時には、有効ラインに「赤7」又は「BAR」図柄を停止させる。図5において、「赤7」図柄は10番に配置され、「BAR」図柄は06番に配置されている。したがって、03番〜06番又は07番〜10番が有効ラインを通過する瞬間(直前)に右ストップスイッチ42が操作されたときは「赤7」又は「BAR」図柄を有効ラインに停止させることができる。それ以外の位置で右ストップスイッチ42が操作されたときは、「赤7」又は「BAR」図柄を有効ラインに停止させることができない。このため、右リール31の停止時に「赤7」又は「BAR」図柄を有効ラインに停止させることができる確率は「1/2」となる。
以上より、ベルA1当選時に、左第一停止であるとき、「リプレイ」−「赤7」−「赤7」、又は「リプレイ」−「赤7」−「BAR」を有効ラインに停止させることができる確率は、
1/1(左リール31)×1/4(中リール31)×1/2(右リール31)
=1/8
となる。
よって、「備考」欄に記載した通り、「1/8」の確率で1枚ベルが入賞する。
となる。
続いて、ベルA1当選時において、右第一停止であるときは、以下のように停止制御する。
右第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先によってリール31を停止制御する。
ベルA1当選時における右第一停止時に、有効ラインに「赤7」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、「リプレイ」−「赤7」−「赤7」である(1種類)。
また、右第一停止時に、有効ラインに「BAR」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、「リプレイ」−「赤7」−「BAR」である(1種類)。
さらにまた、右第一停止時に、有効ラインに「スイカ」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「スイカ」−「ベル」−「スイカ」
「チェリー」−「ベル」−「スイカ」
である(2種類)。
さらに、右第一停止時に、有効ラインに「チェリー」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「スイカ」−「ベル」−「チェリー」
「チェリー」−「ベル」−「チェリー」
である(2種類)。
また、右第一停止時に、有効ラインに「ベル」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「赤7」−「スイカ」−「ベル」
「BAR」−「スイカ」−「ベル」
である(2種類)。
よって、本実施形態では、個数2種類となる場合のうち、有効ラインに「ベル」図柄を停止させ、「赤7」−「スイカ」−「ベル」又は「BAR」−「スイカ」−「ベル」を停止させるように定める。
右第一停止時には、「PB=1」で有効ラインに「ベル」図柄を停止させることができる。
また、左停止時には、有効ラインに「赤7」又は「BAR」図柄を停止可能であるときは「赤7」又は「BAR」図柄を停止させる。図22に示すように、「赤7」又は「BAR」図柄は、06番及び14番に配置されている。したがって、上述と同様に計算すれば、1/2の確率で、「赤7」又は「BAR」図柄を有効ラインに停止させることができる。
さらにまた、中停止時には、有効ラインに「スイカ」図柄を停止可能であるときは「スイカ」図柄を停止させる。図22に示すように、「スイカ」図柄は、05番及び13番に配置されている。したがって、上記と同様に、1/2の確率で、「スイカ」図柄を有効ラインに停止させることができる。
以上より、ベルA1当選時に、右第一停止であるとき、「赤7」−「スイカ」−「ベル」又は「BAR」−「スイカ」−「ベル」を停止させることができる確率は、
1/2(左リール31)×1/2(中リール31)×1/1(右リール31)
=1/4
となる。
よって、「備考」欄に記載した通りとなる。
以上のようにして、ベルA1及びA2当選時は、213(中左右)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、231(中右左)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、右第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
同様にして、図27に示すように、ベルA3及びA4当選時は、231(中右左)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、213(中左右)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、右第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
さらに同様に、ベルA5及びA6当選時は、312(右左中)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、321(右中左)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、中第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
図28に示すように、ベルA7及びA8当選時は、321(右中左)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、312(右左中)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、中第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
続いて、ベルB1当選時の停止制御について説明する。
ベルB1当選時には、正解押し順は、123(左中右;順押し)である。したがって、左中右の押し順でストップスイッチ42が操作されたときは、ベル01が入賞し、8枚の払出しとなる。ベル01の図柄の組合せは、「ベル」−「ベル」−「リプレイ」であり、上述したように、左及び中リール31の「ベル」図柄、並びに右リール31の「リプレイ」図柄は、いずれも、「PB=1」配置であるから、常に、有効ラインに停止させることができる。
よって、ベルB1当選時に、正解押し順である左中右でストップスイッチ42が操作されたときは、有効ラインに、ベル01である「ベル」−「ベル」−「リプレイ」が停止する。
一方、ベルB1当選時に、左第一停止であったが(第一停止時点では正解)、右第二停止であり押し順不正解となった場合には、以下のように停止制御する。
左第一停止時には、この時点では正解押し順であるので、リール制御手段62cは、左リール31の停止時に中段に「ベル」を停止させる。この時点では、押し順正解であるので、枚数優先により左リール31を停止させている。
次に、右第二停止時には、この時点で押し順不正解となるので、リール制御手段62cは、個数優先制御を行うことにより、右リール31の停止時に中段に「ベル」を停止させない。
ベルB1当選時に、当選している役のうち、ベル01以外の役は、
「ベル」−「スイカ」−「スイカ」(ベル07)
「ベル」−「スイカ」−「チェリー」(ベル07)
「ベル」−「チェリー」−「スイカ」(ベル07)
「ベル」−「チェリー」−「チェリー」(ベル07)
「リプレイ」−「リプレイ」−「ベル」(ベル08)
「赤7」−「リプレイ」−「ベル」(ベル09a)
である。
そして、左リール31の図柄は「ベル」図柄であることが既に確定しているので、この時点で停止可能となる図柄の組合せは、ベル07に係る図柄の組合せ(4種類)である。したがって、右リール31の停止時には、「スイカ」又は「チェリー」図柄を停止させる。「スイカ」又は「チェリー」図柄のいずれを停止させても、その時点で、停止可能となる図柄の組合せは2種類(たとえば、右リール31の停止時に「スイカ」図柄を停止させたときは、停止可能となる図柄の組合せは、「ベル」−「スイカ」−「スイカ」又は「ベル」−「チェリー」−「スイカ」)となる。
ここで、図22に示すように、右リール31の「スイカ」又は「チェリー」図柄のいずれかの図柄は、4図柄間隔、すなわち「PB=1」で配置されている。したがって、右リール31の停止時に、「スイカ」又は「チェリー」図柄のいずれかの図柄を有効ラインに停止させることができる。
そして、中第三停止時には、「スイカ」又は「チェリー」図柄を有効ラインに停止させる。図22に示すように、中リール31の「スイカ」又は「チェリー」のいずれかの図柄は、4図柄間隔、すなわち「PB=1」で配置されている。したがって、中リール31の停止時に、「スイカ」又は「チェリー」図柄のいずれかの図柄を有効ラインに停止させることができる。
以上より、ベルB1当選時に、左右中の押し順でストップスイッチ42が操作されたときは、
左リール(1/1)×中リール(1/1)×右リール(1/1)
=1/1(PB=1)
の確率で、1枚ベル(ベル07)を停止させることができる。
次に、ベルB1当選時において、中第一停止であるときは、以下のように停止制御する。
中第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先制御によってリール31を停止制御する。
ベルB1当選時における中第一停止時に、有効ラインに「スイカ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「スイカ」−「スイカ」
「ベル」−「スイカ」−「チェリー」
である(2種類)。
また、中第一停止時に、有効ラインに「チェリー」を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「チェリー」−「スイカ」
「ベル」−「チェリー」−「チェリー」
である(2種類)。
さらにまた、中第一停止時に、有効ラインに「リプレイ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「リプレイ」−「リプレイ」−「ベル」
「赤7」−「リプレイ」−「ベル」
である(2種類)。
以上において、本実施形態では、中第一停止時には、個数2種類となる場合のうち、有効ラインに「リプレイ」図柄を停止させるように定める。
中リール31の停止時に、「リプレイ」図柄は「PB=1」であるから、常に有効ラインに停止させることができる。
また、左リール31の停止時には、有効ラインに「赤7」図柄を停止可能であるときは「赤7」図柄を有効ラインに停止させる。なお、左リール31の「赤7」図柄は「PB≠1」配置である。一方、「赤7」図柄を停止させることができないときは、「リプレイ」図柄を有効ラインに停止させる。左リール31の「リプレイ」図柄は「PB=1」配置であるから、「リプレイ」図柄を常に有効ラインに停止させることができる。
さらにまた、右停止時には、有効ラインに「ベル」図柄を停止させる。右リール31の「ベル」図柄は「PB=1」配置であるから、「ベル」図柄を常に有効ラインに停止させることができる。
以上より、ベルB1当選時に、中第一停止であるとき、1枚ベルを有効ラインに停止させることができる確率は、
1/1(左リール31)×1/1(中リール31)×1/1(右リール31)
=1/1(PB=1)
となる。
次に、ベルB1当選時において、右第一停止であるときは、以下のように停止制御する。
右第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先制御によってリール31を停止制御する。
ベルB1当選時における右第一停止時に、有効ラインに「ベル」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「リプレイ」−「リプレイ」−「ベル」
「赤7」−「リプレイ」−「ベル」
である(2種類)。
また、右第一停止時に、有効ラインに「スイカ」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「スイカ」−「スイカ」
「ベル」−「チェリー」−「スイカ」
である(2種類)。
さらにまた、右第一停止時に、有効ラインに「チェリー」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「スイカ」−「チェリー」
「ベル」−「チェリー」−「チェリー」
である(2種類)。
以上において、本実施形態では、右第一停止時には、個数2種類となる場合のうち、有効ラインに「ベル」図柄を停止させるように定める。
したがって、右リール31の「ベル」図柄、左リール31の「赤7」又は「リプレイ」図柄、及び中リール31の「リプレイ」図柄は、いずれも、当該リール31において「PB=1」配置であるから、常に、これらの図柄を有効ラインに停止させることができる。
以上より、ベルB1当選時に、右第一停止であるとき、1枚ベルを有効ラインに停止させることができる確率は、
1/1(左リール31)×1/1(中リール31)×1/1(右リール31)
=1/1(PB=1)
となる。
ベルB2当選時においては、ベルB1当選時と同様に、123(左中右)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、132(左右中)の押し順、中第一停止、及び右第一停止時には、いずれも、「PB=1」で1枚ベルが入賞する。
同様に、ベルB3又はB4の当選時においては、132(左右中)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、123(左中右)の押し順、中第一停止、及び右第一停止時には、いずれも、「PB=1」で1枚ベルが入賞する。
図30は、ベルA1〜B4当選時における押し順ごとの置数及びメダル獲得期待値を示す図である。
図30に示すように、ベルA1〜B4当選時のうち、ベルA1〜A8当選時については、置数が「1260」に設定されており、ベルB1〜B4当選については、置数が「1620」に設定されている。これにより、ベル当選の合計置数は「16560」となり、合算の当選確率は、「16560/65536」≒「1/4」である。
また、図30では、各ベル当選において、押し順ごとのメダル獲得期待値を表示している。たとえばベルA1当選時の場合、正解押し順「213」であるときは、「PB=1」でベル01が入賞するので、メダル獲得期待値は「8」となる。また、押し順「231」であるときは、「PB=1」で1枚ベルが入賞するので、メダル獲得期待値は「1」となる。
さらにまた、左第一停止時は、「1/8」の確率で1枚役が入賞する。したがって、押し順「123」及び「132」のいずれであっても、メダル獲得期待値は、「0.125」となる。
さらに、右第一停止時は、「1/4」の確率で1枚役が入賞する。したがって、押し順「312」及び「321」のいずれであっても、メダル獲得期待値は、「0.25」となる。
そして、ベル押し順A1〜A8においては、いずれも、メダル獲得期待値は、正解押し順(1つ)で「8」であり、不正解押し順のうち1つ(第一停止時押し順正解時)で「1」、2つで「0.125」、2つで「0.25」となる。よって、その合計は、「9.75」となる。したがって、いずれかのベルA1〜A8当選であるときに、いずれか1つの押し順をランダムに選択したとき(ここでは、ペナルティ押し順を含める)のメダル獲得期待値は、「1.625(枚)」となる。
また、ベルB1当選時の場合、正解押し順「123」であるときは、「PB=1」でベル01が入賞するので、メダル獲得期待値は「8」となる。また、不正解押し順では、いずれの不正解押し順であっても、「PB=1」で1枚ベルが入賞するので、メダル獲得期待値は「1」となる。よって、その合計は、「13」となる。したがって、いずれかのベルB1〜B4当選であるときに、いずれか1つの押し順をランダムに選択したとき(ペナルティ押し順を含める)のメダル獲得期待値は、「約2.17(枚)」となる。
次に、いずれか1つの押し順を固定とし、その押し順をずっと継続した場合には、以下のようになる。たとえば、変則押しがペナルティ押し順に設定されることにより、非ART中は、ずっと「左中右」の押し順で遊技を消化するとする。この場合、図30に示すように、「置数×当該押し順のメダル獲得期待値」の合計は、
(1260×0.125)×8+1620×8×2+1620×1×2
=30420
となる。
そして、図30に示すように、この値は、いずれの押し順であっても同一値となる。
この値を「65536」で割ると、
30420/65536
≒0.46(枚)(ベル当選に基づくメダル獲得期待値)
となる。
以上より、ずっと同一押し順で遊技を消化したとき(ペナルティ押し順を含む)、押し順による優劣はなく、ベル当選によるメダル獲得期待値は、1遊技あたり、「0.46(枚)」となる。
さらに、いずれの押し順であってもベル当選に基づくメダル獲得期待値は同一であるので、押し順をランダムにして遊技を進行したとき(ペナルティ押し順を含む)と、上記のようにずっと同一押し順(たとえば左中右の順押し)で遊技を消化したときとで、メダル獲得期待値は同一となる。
ここで、従来技術との対比について説明する。
従来技術において、順押し時の正解(出率)が低くなり、変則押し時の正解(出率)が高くなるように押し順ベルの当選比率を割り当てたスロットマシンが知られている。具体的には、順押し時には押し順ベルの正解押し順となる確率を低く設定し、変則押し時には押し順ベルの正解押し順となる確率を高く設定したものである。
このように設定した場合、ストップスイッチ42の押し順をランダムにして遊技を消化したとき、出率は一定値となる。しかし、たとえば押し順を順押しに固定して遊技を消化したときは出率は低くなり、押し順を変則押しに固定して遊技を消化すると出率は高くなる。このため、変則押しをペナルティ押し順に設定し、遊技者には、非ART中は順押しで遊技を消化させることで、非ART中(通常時)のベースを下げることでができた。さらに、その分、ART中の出率を高く設定することができた。
しかし、近時、どの押し順に固定して遊技を消化しても、出率が一定値を満たすように(たとえば55%以上になるように)設定すべきとの考えがある。なお、この出率は、特別役当選時に特別遊技に移行したときの獲得メダルを含めた値である。
そこで、本実施形態では、図30に示したように、どの押し順に固定して遊技を消化しても、ベル当選に基づくメダル獲得期待値は、
30420/65536≒0.46(枚)
となるように設定した。
これにより、どの押し順に固定して遊技を消化しても、ベル当選に基づくメダル獲得枚数期待値に変化はないので、公平性を担保することができる。さらに、どの押し順に固定して遊技を消化しても、出率に有利/不利が生じないので、遊技者は、あえて変則押しで遊技を行う実益がなくなる。同時に、スロットマシン10の出率からみると、変則押しで遊技が行われたとしても、ベル当選に基づくメダル獲得期待値は変化しないので、変則押しをペナルティに設定する必要性も薄れる。これにより、ペナルティの設定が不要になる可能性がある。
ただし、本実施形態では、変則押しをすると、リプレイ重複当選時に特殊リプレイ1が入賞する可能性があり、特殊リプレイ1が入賞すると、リプレイ当選確率が高いRT2に移行するおそれがある。そこで、リプレイ当選確率が高いRT2に移行してしまうことを防止するためには、ペナルティの設定が必要となる可能性もある。
チェリー重複テーブルは、チェリー01〜04の重複当選となったときに用いられ、チェリー01〜04のいずれかを有効ラインに停止させるように、リール31の停止時の図柄の組合せを定めたものである。
図26に示すように、チェリー01〜04の左リール31の図柄は、いずれも「チェリー」図柄である。そして、図22に示すように、左リール31では、05番及び13番に「チェリー」図柄が配置されている。したがって、「チェリー」図柄は、「PB≠1」配置である。ただし、チェリー重複当選時にその旨が遊技者に報知され、遊技者が「チェリー」図柄が有効ラインに停止するように左リール31を目押しすれば、「チェリー」図柄を有効ラインに停止させることができる。また、左リール31を任意の位置で停止させたとき、「1/2」の確率で「チェリー」図柄が有効ラインに停止する。
また、中リール31の図柄は、「ANY」であるので、中リール31の停止時には、いずれの図柄を有効ラインに停止させてもよい。
さらにまた、右リール31の停止時には、「赤7」、「BAR」、「青7」、又は「白7」図柄のいずれかを有効ラインに停止させる。これら4つのうちのいずれかの図柄を有効ラインに停止させれば、いずれかのチェリー01〜04が入賞可能となるからである。
ここで、図22に示すように、「赤7」、「BAR」、「青7」、「白7」図柄は、4図柄間隔配置である。したがって、「PB=1」で、いずれかの図柄を有効ラインに停止させることができる。
これにより、チェリー当選時には、左リール31のみ、目押しが必要となる。また、チェリー重複当選時に、全く目押しを行うことなく全リール31を停止させたときに、いずれかのチェリーが入賞する確率は、「1/2」となる。
非当選テーブルは、すべての当選フラグ66aがオフであるときに用いられ、いずれの役に対応する図柄の組合せも有効ラインに停止しないように、リール31の停止時の図柄の組合せを定めたものである。
1BBの当選を持ち越しているとき(内部中)にいずれかの小役又はリプレイに当選したときは、小役又はリプレイの入賞を優先する停止位置決定テーブルを用いてリール31を停止制御する。
先ず、内部中遊技のリプレイ当選時は、リプレイの入賞を優先するが、リプレイは、常に入賞可能(PB=1)である。したがって、当該遊技で1BBが入賞する場合はない。
また、内部中遊技のチェリー当選時は、チェリーの入賞を優先するが、左第一停止時に、有効ラインに「チェリー」図柄を停止させることができないが、1BBに係る「BAR」図柄を停止可能であるときは、「BAR」図柄を停止させ、1BBを入賞可能な停止形とする。
さらにまた、内部中遊技のベル当選時は、ベルの入賞を優先するが、順押し時に、1枚ベルに係る図柄を有効ラインに停止させることができないが、1BBに係る「BAR」図柄を停止可能であるときは、「BAR」図柄を停止させ、1BBを入賞可能な停止形とする。
図5において、メインCPU62の入賞判定手段62dは、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したか否かを判断する。入賞判定手段62dは、たとえばリールセンサ39がインデックスを検知してからのモータ32のステップ数を検知することにより、有効ライン上の図柄を判断する。ただし、入賞判定手段62dは、ストップスイッチ42が操作され、リール31の停止位置が決定された時に、そのリール31が停止したか否かにかかわらず、停止図柄を判断することが可能である。
払出し手段62eは、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したと判断され、その役の入賞となったときに、その入賞役に応じて所定枚数のメダルを遊技者に対して払い出す。払出しは、上述したように、貯留枚数として加算するか、又は貯留枚数が「50」を超えるときは実際にメダルを払出し口14から払い出す。メダルを実際に払い出すときは、ホッパーモータ36を駆動制御して、所定枚数のメダルを払い出す。メダルの払出し時には、払い出されたメダルを払出しセンサ37a及び37bにより検知し、正しく払い出されたか否かをチェックする。
遊技状態制御手段62fは、遊技状態の移行条件を満たすか否かを判断し、満たすと判断したときは、遊技状態を移行させるように制御する。さらに、遊技状態制御手段62fは、ARTを実行するか否かを(抽選で)決定する。
図31は、遊技状態(内部状態を含む)の移行を説明する図である。以下、図31を参照しつつ、状態制御手段62fついて説明する。
本実施形態の遊技状態としては、通常遊技と1BB遊技(特別遊技)とを備える。さらに、通常遊技は、非内部中遊技と内部中遊技とを備える。さらに、非内部中遊技は、RT1及びRT2を備える。
遊技状態制御手段62fは、非内部中遊技(RT1及びRT2)において1BBに当選し、当該遊技で1BBが入賞しなかったときは、次遊技から、内部中遊技に移行させるように制御する。さらに、内部中遊技において、1BBが入賞したときは、次遊技から、1BB遊技に移行させるように制御する。そして、1BB遊技において1BB遊技の終了条件を満たすときは、次遊技から、非内部中遊技(RT1)に移行させるように制御する。
なお、RT2は、ART遊技に設定されている。したがって、RT2中に1BBに当選したときは、RT2をその時点で中断し、内部中遊技に移行する。そして、1BB遊技の終了後、RT2に戻って、残りのARTを実行する。
なお、ART(RT2)中に1BBに当選したときは、1BBが非入賞であれば、ARTを継続し(内部中ARTとする)、ARTの終了後に1BBを入賞させてもよい。
RT1は、非ATかつリプレイ当選確率が通常確率に設定された、いわゆる「通常中」である。そして、遊技状態制御手段62fは、このRT1中に、ARTの抽選を実行する。RT1においてARTに当選し、特殊リプレイ1が入賞すると、RT2(ART)に移行する。RT2(ART)は、AT遊技であって、かつ、役抽選テーブルはRT1と異なる(リプレイ当選確率が高確率に設定された)遊技である。RT2は、ATかつRT(リプレイの当選確率が高いことを意味するRT)であるので、「ART」と称している。
また、本実施形態における「AT」は、ストップスイッチ42の操作態様に応じて、当該遊技の遊技結果又はその後の遊技において有利/不利が生じる役に当選したときに、遊技者にとって最も有利となるストップスイッチ42の操作態様を遊技者に対して報知する遊技(報知遊技)をいう。特に本実施形態では、第1に、ベル当選時に、正解押し順(8枚の払出しとなる押し順)を報知する。さらに第2に、リプレイ重複当選時には、特殊リプレイ1を入賞させる押し順を報知する。これにより、RT1(非ART)であるときは、RT2(ART)に移行することが可能となり、RT2(ART)中は、ARTの終了条件を満たさない限り、RT1に転落することがなくなる。
非ART中は、ベル当選時に正解押し順を報知しない。さらに、非ART中は、左第一停止指示であり、変則押し(中又は右第一停止)はペナルティとなる。
図31に示すように、非ARTは、内部状態として、ARTに当選する確率が異なる低確率、通常確率、及び高確率と、ART当選後の前兆とを備える。ここで、「内部状態」とは、遊技状態とは異なる概念であって、一つの遊技状態中に、複数の内部状態を備えるものである。本実施形態では、RT1(非ART)において、上記4つの内部状態を備える。
さらに、低確率、通常確率、又は高確率中にARTに当選すると、ARTに当選しているがARTの開始前の遊技期間である前兆に移行する。この前兆中において、ARTに当選していることを遊技者に報知する。
また、前兆の終了後、リプレイ重複当選となったときに、特殊リプレイ1を入賞させる押し順を報知する。当該遊技で特殊リプレイ1が入賞すると、RT1からRT2(ART)への移行条件を満たし、次遊技からRT2を開始する。
さらにまた、RT2(ART)は、内部状態として、ARTの遊技回数が上乗せされる期待値が異なる通常確率と高確率とを備える。
これらの内部状態の移行は、当該遊技における当選役によって行われる。また、一つの内部状態から他の内部状態に移行するときは、前記一つの内部状態における遊技終了時(全リール31が停止して当該遊技の遊技結果を表示した時)に行われる。
本実施形態では、前兆に移行することに決定したときが、ARTの当選に相当する。したがって、ARTを実行するか否かの抽選は、遊技状態制御手段62fによって実行される。このため、遊技状態制御手段62fは、ART(報知遊技)制御手段を兼ねるものである。
RT1の内部状態では、低確率、通常確率、高確率間を移行する。たとえば、以下のように設定される。
(1)低確率中
チェリー当選時、40%の確率で通常確率に移行し、5%の確率で高確率に移行し、1%の確率で前兆に移行する(54%の確率で移行なし)。
(2)通常確率中
a)チェリー当選時、50%の確率で高確率に移行し、10%の確率で前兆に移行する(40%の確率で移行なし)。
b)リプレイ当選時、5%の確率で低確率に移行する(95%の確率で移行なし)。
(3)高確率中
a)チェリー当選時、100%の確率で前兆に移行する。
d)リプレイ当選時、5%の確率で通常確率に移行し、3%の確率で低確率に移行する(92%の確率で移行なし)。
なお、通常確率中及び高確率中に、変則押しが行われたことによりペナルティ状態に設定された場合には、ARTの当選確率がそれまでよりも低い内部状態に移行させるか、又は内部状態はそのままにして、ペナルティ状態中はARTの抽選を行わない(あるいは、極めて低確率でしか当選しない特殊な状態とする)ことが挙げられる。
なお、変則押し(ペナルティ状態に設定)に基づき内部状態を移行させたときは、ペナルティ状態を終了するときは、変則押し前の内部状態に移行させる。内部状態をペナルティ状態前の状態に戻すことが、実質上のペナルティ状態の解除となる。
以上のことは、ART中も同様に設定可能である。ART中は、一切、ペナルティ状態に設定しないようにしてもよい。一方、たとえば、報知した押し順と異なる押し順でストップスイッチ42を操作した場合には、ペナルティ状態に設定し、内部状態が高確率であるときは、(所定確率で)低確率に移行させるか、あるいは内部状態はそのままにしてARTの遊技回数の上乗せ抽選を行わない(あるいは、極めて低確率でしか上乗せされない特殊な状態とする)ことが挙げられる。
(4)前兆中
遊技状態制御手段69は、上記のような抽選において前兆に移行することに決定したときは、前兆の遊技回数を、「1」〜「32」の範囲内において抽選で決定し、カウンターにその値をセットする。そして、カウンター値を毎遊技「1」ずつ減算し、「0」となったときは、前兆を終了する。また、前兆中のいずれかの時点で、ARTの当選報知を行う。なお、一旦前兆に移行したときは、前兆から、低確率、通常確率、又は高確率に移行する場合はない。また、ARTに当選したときは、その時点でART確定である旨を報知し、前兆を経由しなくてもよい(前兆の遊技回数を「0」にする)。
また、前兆の終了時は、ART確定演出を表示し、リプレイ重複当選となるまで待機する。そして、RT1においてリプレイ重複当選となったときに、特殊リプレイ1を入賞させる押し順を報知する。なお、前兆終了後は、リプレイ重複当選時に特殊リプレイ1を入賞させる押し順を報知するが、ベル当選時には正解押し順を報知しない。
なお、RT1において、非ART中は、順押しで遊技が消化されるので、リプレイ重複当選となった遊技では、特殊リプレイ2が入賞する。そして、RT1において特殊リプレイ2が入賞してもRT移行はない。
RT1において特殊リプレイ1が入賞すると、次遊技から、RT2(ART)に移行する。
RT2(ART)では、ARTの終了条件を満たすまで、ベル当選時に正解押し順が報知される。また、リプレイ重複当選時に特殊リプレイ1を入賞させる押し順を報知する。なお、RT2において特殊リプレイ2が入賞するとRT1に移行するが、特殊リプレイ1が入賞してもRT移行はない。
また、ARTに当選していない非ART(報知なし時)において、リプレイ重複当選時に遊技者が変則押しをし、特殊リプレイ1を入賞させても、遊技状態制御手段62fは、ARTを開始しない。また、次遊技から、ペナルティ状態に設定する。
ただし、RT1において特殊リプレイ1が入賞すると、次遊技からRT2に移行する。しかし、偶然にRT1からRT2に移行しても、そのRT2で順押しを継続していれば、リプレイ重複当選時に特殊リプレイ2が入賞してRT1に戻る。
特に、本実施形態のように、ストップスイッチ42の押し順が左第一停止以外はペナルティ状態となるように設定するとともに、リプレイ重複当選時に左第一停止時には特殊リプレイ2が入賞するように設定しておけば、RT2に移行してしまう可能性を低く設定することができる。
なお、意図的な変則押しによりRT2に移行し、リプレイの当選確率が高くなったとしても、ペナルティ状態に設定されるので、遊技者には不利となる。また、意図的に変則押しをしてRT2に滞在しても、ベル当選時に正解押し順は報知されない。その結果、出率は、100%を下回るので、そのような操作がされたとしても攻略法にはならない。
ARTの終了条件としては、種々挙げられる。たとえば、
(1)遊技回数が所定回数(たとえば初期遊技回数を「50」とし、この「50」に「N」が上乗せされた場合には、「50+N」)に到達したとき
(2)払出し枚数又は差枚数(払出し枚数から投入枚数を引いた枚数)が所定枚数(たとえば、300枚)に到達したとき
(2)ベル当選回数(正解押し順時)が所定回数(たとえば40回)に到達したとき
が挙げられる。
また、ART中は、上述したように、内部状態として、通常確率と高確率とを有する。たとえば第1に、ARTの開始時は常に通常確率に設定する方法と、ARTを開始するまでに、ARTの初期内部状態を通常確率とするか高確率とするかを抽選で決定する方法とが挙げられる。
本実施形形態では、ART中にレア小役であるチェリーに当選したときには、ARTの上乗せ抽選を行う。そして、通常確率よりも高確率の方が、上乗せされる確率が高く、かつ遊技回数が多くなるように設定する。
たとえば、ARTの終了条件を遊技回数とし、遊技回数の初期値を「50」に設定する。そして、チェリー当選時に、遊技回数を上乗せするか否か、及び上乗せ遊技回数を抽選で決定する。上乗せ遊技回数を決定したときは、その時点でのARTの残り遊技回数に上乗せ遊技回数を加算する処理を行う。
たとえば、以下のようなパターンが挙げられる。なお、上乗せ数「0」とは、上乗せ抽選で非当選であることを意味する。
(1)通常確率中
チェリー当選時、上乗せ数は、「10」(30%)、「30」(50%)、「50」(20%)の中から抽選で決定する。
(2)高確率中
チェリー当選時、上乗せ数は、「30」(30%)、「50」(40%)、「100」(30%)の中から抽選で決定する。
また、ART中における通常確率と高確率の移行は、役の抽選結果や、役抽選とは別個に行う抽選で行うことが挙げられる。
役抽選結果に基づいて内部状態を移行する場合、たとえば、通常確率中は、チェリー当選時の50%で高確率に移行することが挙げられる。
また、高確率中は、リプレイ当選時の10%で通常確率に移行することが挙げられる。
遊技状態制御手段62fは、RT2への移行後は、特殊リプレイ2が入賞しない限り、RT2に滞在し続ける。RT2で特殊リプレイ2が入賞して初めて、RT1に移行する。
これに対し、RT2においてARTを終了したときは、次遊技から、リプレイ重複当選時に特殊リプレイ1を入賞させる押し順や、ベル当選時の正解押し順を報知しない。したがって、遊技状態の移行(RT2からRT1への移行)と、ARTの終了のタイミングとは必ずしも一致するものではない。
なお、非ATとATとで、同一のRT状態(リプレイの当選確率が同一)に設定することも可能である。
たとえば、ATにおけるリプレイの当選確率を、非ATにおけるリプレイの当選確率(約1/7.3)と同一に設定することが挙げられる。
また、非ATとATとで、リプレイの当選確率を、たとえば1/2程度の確率(1/7.3よりも高い確率)に設定してもよい。
しかし、本実施形態のように、ATとなるRT2でのみリプレイの当選確率を高く設定し(ARTとし)、非ATであるRT1では、リプレイの当選確率を通常確率である約1/7.3程度に設定すれば、非AT中におけるリプレイを含む出率(ベース)を下げることができる。これにより、左第一停止時に押し順正解となるベルを設けることが十分に可能となる。
ただし、非AT中におけるリプレイの当選確率を約1/2程度に設定した場合であっても、左第一停止時に押し順正解となるベルを設けることができないわけではない。左第一停止時に押し順正解となるベルの当選確率を調整することによって、適切なベースに設定することができる。
コマンド送信手段62gは、サブ制御基板80に対し、各種の情報(コマンド)を送信するものである。送信される情報としては、メダルが投入された旨の情報、スタートスイッチ41が操作された旨の情報、役の抽選結果(当選役)の情報、リール31の回転が開始された旨の情報、ストップスイッチ42が操作されたかの情報、リール31が停止した旨の情報、各リール31の停止位置(有効ラインに停止した図柄)の情報、入賞役の情報、遊技状態(ARTの有無)及び内部状態の情報等が挙げられる。
また、図5において、メイン制御基板60は、外部集中端子板100と電気的に接続されている。そして、メイン制御基板60は、ARTを実行することに決定したときに、外部集中端子板100に対して外部信号(ARTを開始する又は開始したことを示す信号。以下、ART信号ともいう。)を送信する。その外部信号は、たとえば外部集中端子板100から、遊技情報表示装置やホールコンピュータ等に送信される。
本実施形態では、図21に示したように、ARTの発動時、継続時、ART中には、それぞれその旨の外部信号(ART信号)を送信する。なお、外部信号は、上述したように出力ポート6から出力される。
以上説明したように、遊技の開始時には、遊技者は、ベットスイッチ40を操作して予め貯留されたメダルを投入するか、又はメダル投入口44からメダルを投入し、スタートスイッチ41を操作(オン)する。スタートスイッチ41が操作されると、リール制御手段62cは、すべてのモータ32を駆動制御して、すべてのリール31を回転させるように制御する。このようにしてリール31がモータ32によって回転されることで、リール31上の図柄は、所定の速度で表示窓13内で上下方向に移動表示される。また、スタートスイッチ41が操作されると、役抽選手段62bは、役の抽選を行う。
そして、遊技者は、ストップスイッチ42を押すことで、そのストップスイッチ42に対応するリール31(たとえば、左ストップスイッチ42に対応する左リール31)の回転を停止させる。ストップスイッチ42が操作されると、リール制御手段62cは、そのストップスイッチ42に対応するモータ32を駆動制御して、そのモータ32に係るリール31の停止制御を行う。
そして、すべてのリール31の停止時における図柄の組合せにより、当該遊技の遊技結果を表示する。さらに、いずれかの役に対応する図柄の組合せが有効ラインに停止したとき(その役の入賞となったとき)は、入賞した役に対応するメダルの払出し等が行われる。
図5において、サブ制御基板80は、遊技中及び遊技待機中における演出(情報)の選択や出力等を制御するものである。
メイン制御基板60とサブ制御基板80とは、電気的に接続されており、メイン制御基板60のメインCPU62内にあるシリアル通信回路により、サブ制御基板80に一方向で演出等に必要な情報(信号、データ、制御コマンド等)を送信する。
なお、メイン制御基板60とサブ制御基板80とは、電気的に接続されることに限らず、光通信手段を用いた接続であってもよい。さらに、電気的接続及び光通信接続のいずれも、シリアル通信に限らず、パラレル通信であってもよく、シリアル通信とパラレル通信とを併用してもよい。
また、メイン制御基板60と同様に、サブ制御基板80は、RWM81、及びサブCPU82等を備える。
ここで、サブ制御基板80上には、RWM81、サブCPU82、及びROMを含むMPUが搭載される。さらに、MPU内蔵のRWMとは別個に、MPUの外部(サブ制御基板80上)にRWMが搭載される。また、MPUの外部にROMを設けることも可能である。このため、RWM81というときは、MPU内蔵のRWM、外部RWM、ROM(内部/外部)を含む意味で使用する。
RWM(サブメモリ)81は、サブCPU82が演出を制御するときに取り込んだデータ等を一時的に記憶可能な記憶媒体である。
また、ROM(サブROM)は、演出用データとして、演出に係る抽選を行うとき等のプログラムや各種データ等を記憶しておく記憶媒体である。
サブ制御基板80には、入力ポート又は出力ポート(図5では図示を省略する)を介して、以下のような演出用の周辺機器が電気的に接続されている。
演出ランプ21は、たとえばLED等からなり、所定の条件を満たしたときに、それぞれ所定のパターンで点灯する。なお、演出ランプ21には、各リール31の内周側に配置され、リール31に表示された図柄(表示窓13から見える上下に連続する3図柄)を背後から照らすためのバックランプ、リール31の上部からリール31上の図柄を照光する蛍光灯、スロットマシン10のフロントカバー11前面に配置され、役の入賞時等に点滅する枠ランプ21(図1参照)等が含まれる。
また、スピーカ22は、遊技中に各種の演出を行うべく、所定の条件を満たしたときに、所定のサウンドを出力するものである。
さらにまた、画像表示装置23は、液晶ディスプレイ、有機ELディスプレイ、ドットディスプレイ等からなるものであり、遊技中に各種の演出画像(フリーズ中の演出画像、ART中の押し順、役の抽選結果に対応する演出等)や、遊技情報(ART中の遊技回数や獲得枚数等)等を表示するものである。
スロットマシン10におけるスピーカ22及び画像表示装置23の配置は、図1等で説明した通りである。
また、プッシュボタン24及び十字キー25は、遊技者が意図する情報を表示させたりするときや、ホール管理者(店長等)が各種の設定を変更するとき等に用いられる。
サブCPU82は、演出出力制御手段82aを備える。
演出出力制御手段82aは、当選役及び遊技状態等に応じて、どのようなタイミングで(スタートスイッチ41の操作時や各ストップスイッチ42の操作時等)、どのような演出を出力するか(ランプ21をどのように点灯、点滅又は消灯させるか、スピーカ22からどのようなサウンドを出力するか、及び画像表示装置23にどのような画像を表示させるか等)を抽選によって決定する。
そして、演出出力制御手段82aは、その決定に従い、演出ランプ21、スピーカ22、画像表示装置23の出力を制御する。また、ART中は、ストップスイッチ42の押し順等を報知し、ART中や1BB遊技中は、それぞれART中や1BB遊技中の獲得枚数、残り遊技回数等を画像表示する。
続いて、メイン制御基板60(メインCPU62)による情報処理について、フローチャートに基づき説明する。
本実施形態において説明するメイン制御基板60による情報処理は、以下の図32〜図72である。以下に、各図の処理概要を示す。
図32;プログラム開始(M_PRG_START )
図33;設定変更処理(M_RANK_SET)
図34;制御コマンドセット1(S_CMD_SET )
図35;制御コマンドセット2(SS_CMD_SET)
図36;電源復帰処理(M_POWER_ON)
図37;入力ポート0〜2読み込み(SS_IN_READ)
図38;復帰不可能エラー処理(SS_ERROR_STOP )
図39;メイン処理(M_MAIN)
図40;遊技開始セット(MS_GAME_SET )
図41;遊技状態セット(MS_ACTION_SET )
図42;遊技状態出力(MS_STATUS_SET )
図43;メダル受付け開始(MS_MEDAL_START)
図44;メダルの読み込み(S_PLAYM_READ)
図45;貯留枚数読み込み(S_CREDIT_READ )
図46;ブロッカオン(MS_BLOCKER_ON )
図47;メダル1枚の加算(MS_MEDAL_INC)
図48;メダル限界枚数のセット(MS_MMAX_SET )
図49;メダル投入待ち(MS_STANDBY_DSP)
図50;メダル管理(MS_MEDAL_CHK)
図51及び図52;メダルの手入れ時のチェック(MS_INSERT_CHK )
図53;ブロッカオフ(MS_BLOCKER_OFF)
図54;貯留枚数1枚加算(MS_CREDIT_ADD )
図55;貯留ベット処理(MS_BET_IN )
図56;貯留枚数から1枚を減算する処理(MS_CREDIT_DEC )
図57;精算処理(MS_MEDAL_RET)
図58;貯留メダルの精算処理(MS_CREDIT_RET )
図59及び図60;メダル1枚の払出し処理(MS_1MEDAL_PAY )
図61;エラー表示(MS_ERROR_DSP)
図62;スタートスイッチ受付け(MS_START_CTL)
図63;入賞によるメダル払出し(MS_WIN_PAY)
図64;割込み処理(I_INTR)
図65:電源断処理(IS_POWER_DOWN )
図66及び図67;入力エラーチェック(IS_ERROR_CHK)
図69;入力エラーセット(IS_ERROR_SET)
図70;制御コマンド送信(IS_CMD_SET)
図71;外部信号出力データ管理(IS_INF_CTL)
図72;外部信号出力(IS_COUNTER_OUT)
図32は、メイン制御基板60によるプログラムを開始するときの処理(M_PRG_START )を示すフローチャートである。
図32において、ステップS11でプログラムが開始されると、次のステップS12において、メイン制御基板60は、レジスタを初期化する。具体的処理としては、たとえば、メインCPU62に設けられているシリアル通信回路の通信速度の設定、割込みの種類の設定(たとえば、マスカブル割込みに設定すること等)、送信する制御コマンドに付与するパリティビットの設定(たとえば、偶数パリティに設定すること等)が挙げられる。
いいかえれば、スロットマシン10を正常に動作させるために必要な初期値を各種レジスタに設定する。
なお、本実施形態では、レジスタは複数(たとえばAレジスタ〜Lレジスタや及び送信用レジスタ等)設けられている。
次にステップS13に進み、メイン制御基板60は、電源断処理済フラグ(_FL_POWER_OFF )が正常値であるか否かを判断する。本実施形態では、図示しないが、電源断処理済フラグが設けられており、電源断時に、後述するステップS652(図65)において、電源断処理済フラグを「1」に記憶する。この電源断処理済フラグは、電源オン時に、前回の電源断が正常に行われたか否かを判断するためのフラグである。そして、電源断処理済フラグが正常値(「1」)であると判断したときは、ステップS14に進み、正常値でない(「0」等)と判断したときはステップS16に進む。
ステップS14では、RWM61のチェックサムの算出を実行する。具体的には、電源断処理によって実行したRWM61のチェックサムと同範囲(たとえば、プログラムで使用する作業領域、未使用領域、スタックエリア)のチェックサム算出を実行する。ここで、ステップS14では、RWM61に記憶された1バイトデータを加算する。
ステップS15では、チェックサムを算出するRWM61の範囲が完了したか否かを判定する。具体的には、現時点でのチェックサムを算出したRWM61のアドレスから次のアドレスを指定し、次のアドレスがチェックサムを算出するアドレスであるか否かを判断する。チェックサムの算出が終了していないと判断したときはステップS14に進む。一方、チェックサムを算出するRWM61の範囲が完了したと判断したときはステップS16に進む。
また、以降の処理においてもRWM61の複数範囲(アドレス)に記憶されたデータを初期化する場合には、本実施形態では指定されたRWM61の範囲で同様の処理を実行するものとする。
なお、ステップS13において電源断処理済フラグが正常値でないと判断されたときは、RWM61のチェックサム算出を実行せずに、電源断復帰データとして異常値をセットする。
ステップS16では、メイン制御基板60は、電源断復帰データを所定のレジスタ(たとえば、Bレジスタ)に記憶する。ここで、電源断処理済フラグが正常値であり、かつRWM61のチェックサム算出(全範囲)が正常終了したと判断したときは、電源断復帰データとして正常値を記憶する。一方、電源断処理済フラグが異常値であったとき、及び/又はRWM61のチェックサム算出(全範囲)時に異常があったと判断したときは、電源断復帰データとして異常値を記憶する。
次のステップS17では、入力ポート1レベルデータを所定のレジスタ(たとえば、Aレジスタ)に記憶する。次にステップS18に進み、入力ポート1レベルデータに基づいて、指定スイッチがオンであるか否かを判断する。ここで「指定スイッチ」とは、本実施形態では、入力ポート1レベルデータのうち、ドアスイッチ(16)信号(D1)、設定ドアスイッチ(54)信号(D2)、設定キースイッチ(52)信号(D3)の3つである。
そして、ドアスイッチ(16)信号がオンであり(フロントカバー11が開けられており)、設定ドアスイッチ(54)信号がオンであり(設定ドアが開けられており、)、かつ、設定キースイッチ(52)信号がオンであるとき(設定キーが挿入されているとき)に限り設定変更を許可する。3個全ての指定スイッチがオンであるときは、ステップS22の設定変更処理に移行可能となるが、少なくとも1つの指定スイッチがオンでないときは、ステップS22の設定変更処理に移行することを許可しない。
つまり、ドアスイッチ(16)信号がオフのとき(フロントカバー11が閉じられているとき)や、設定ドアスイッチ(54)信号がオフのとき(設定ドアが閉じられているとき)にもかかわらず、設定キースイッチ(52)信号がオンになることはあり得ず、不正の可能性が高いことから、設定変更処理への移行を許可しない。
したがって、ステップS18で全指定スイッチがオンであると判断したときはステップS19に進み、オンでないと判断したときはステップS21に進む。
ステップS19では、メイン制御基板60は、電源断復帰データが異常であるか否かを判断する。この電源断復帰データは、ステップS16でレジスタに記憶したデータである。
そして、電源断復帰データが異常であると判断したときはステップS22の設定変更処理(M_RANK_SET)に進み、異常でないと判断したときはステップS20に進む。ステップS20では、設定変更不可フラグ(メダル管理フラグのD6ビット)がオンであるか否かを判断する。設定変更不可フラグがオンであるときはステップS21に進み、オンでないときはステップS22の設定変更処理(M_RANK_SET)に進む。
なお、本実施形態では、設定変更不可フラグを設けたが、常時設定変更が可能に構成されている場合には、設定変更不可フラグを設けなくてもよい。その場合、ステップS20に相当する処理は不要となる。
ステップS21では、メイン制御基板60は、電源断復帰データが正常値であるか否かを判断する。この処理は、ステップS19と同等の処理である。そして、電源断復帰データが正常値であると判断したときはステップS23に進んで電源復帰処理(M_POWER_ON)を行う。これに対し、電源断復帰データが正常値でないと判断したときはステップS24に進んで復帰不可能エラー処理(SS_ERROR_STOP )を行う。ステップS21において電源断復帰データが正常値でないと判断されたときのエラーは、本実施形態では「E1」エラーと称し、「E1」である旨を獲得数表示LED72に表示する(後述)。復帰不可能エラーは、設定変更処理が実行されないと解除されないエラーである。
図33は、ステップS22における設定変更処理(M_RANK_SET)を示すフローチャートである。
先ず、ステップS801において、RWM61の初期化範囲として、「所定範囲」をレジスタに記憶する。ここでは、電源断処理が正常に実行されたと判断した場合に備えるためのセットであり、設定値データ、遊技状態(たとえば、RT状態)、当選フラグを初期化しないようにした初期化範囲を「所定範囲」とする。
次にステップS802に進み、メイン制御基板60は、電源断復帰データ(ステップS16で記憶した値)が正常値であるか否かを判断する。電源断復帰データが正常値であると判断されたときは、ステップS804に進み、ステップS801における「所定範囲」の記憶を維持する。一方、ステップS802において電源断復帰データが正常値でないと判断されたときはステップS803に進み、メイン制御基板60は、RWM61の初期化範囲として、「特定範囲」をレジスタに記憶する。ここで、電源断が正常でないと判断したときは、設定値データ、遊技状態、当選フラグについても初期化の対象とした初期化範囲として、「特定範囲」とする。
そして、ステップS804に進み、ステップS801でセットした所定範囲又はステップS803でセットした特定範囲の初期化を開始する。次のステップS805では、ステップS804で開始した初期化が終了したか否かを判断する。初期化が終了したと判断したときはステップS806に進む。
ステップS806では、割込み処理の起動設定を行う。ここでは、ステップS12で指定した割込み処理に対応する各種レジスタの設定を行う。本実施形態では割込み処理としてタイマ割込み処理を使用しているため、タイマ割込みの周期(本実施形態では、「2.235ms」)を設定する処理等が対応する。そして、このステップS806の処理後に割込み処理が実行される。いいかえれば、「割込み起動」前は、割込み処理が実行されないように構成されている。次のステップS807では、設定変更開始時の出力要求セットを行う。この処理は、設定変更処理を開始することをサブ制御基板80側に知らせるために、サブ制御基板80に送信する制御コマンドをレジスタにセット(記憶)する処理である。
なお、「出力要求セット」とは、以下に説明する処理においてもしばしば実行されるものであるが、このステップS807と同様に、サブ制御基板80に送信するための制御コマンドをセットする処理を意味する。また、ここでの制御コマンドは、実際に送信するコマンドのみを意味しているものではなく、実際に送信するコマンドの元となるコマンドも意味している。
次にステップS808に進み、メイン制御基板60は、制御コマンドセット1を実行する。この処理は、制御コマンドバッファ(RWM61)に、サブ制御基板80に送信するための制御コマンドを記憶する処理である。なお、「制御コマンドセット1」は、以下に説明する処理においてもしばしば実行されるものであるが、このステップS808と同様に、サブ制御基板80に送信するための制御コマンドを記憶する処理を意味する。
本実施形態では、制御コマンドデータは、第1制御コマンドデータ及び第2制御コマンドデータからなり、出力要求に応じて、異なる第1制御コマンドデータ及び第2制御コマンドデータが送信される。
次にステップS809に進み、メイン制御基板60は、待ち時間をセットし、次のステップS810においてその待ち時間の間、ウェイト処理を実行する。本実施形態では、待ち時間として、割込み回数「224」がセットされる。そして、ステップS810において、割込み回数が「224」をカウントするまで(割込み回数ごとに1減算し、セットされた割込み回数が「0」となるまで)ウェイト処理が実行される。
これにより、1割込みあたり、上述したように「2.235ms」であるので、「2.235ms×224回=500.64ms(約0.5秒)」のウェイト処理が行われることとなる。
以降、「ウェイト処理」とは、所定の時間が経過するまで次の処理(ステップ)を実行しないように待機する処理を指す。ただし、後述する図64の割込み処理は実行される。
この処理は、メイン制御基板60側におけるRWM61の初期化処理(ステップS804)は比較的短時間で終了するのに対し、サブ制御基板80側のRWM81の初期化処理(後述する図73のステップS702)には時間がかかるため、メイン制御基板60側でウェイト処理を実行している。特に、メイン制御基板60側では、サブ制御基板80側で初期化処理が終了したか否かを知り得ないからである。
具体的には、メイン制御基板60のRWM61のクリア範囲(設定変更に伴いクリアされる範囲)は、たとえばアドレス「F000(H)〜F1FF(H)」(バイト数で512バイト)であり、サブ制御基板80のRWM81のクリア範囲は、たとえばアドレス「000000(H)〜800000(H)」(バイト数で約12〜13ギガバイト)である。
したがって、サブ制御基板80側で未だ初期化処理中のときに、メイン制御基板60側では初期化を既に終了し、さらに処理が進んで、メイン制御基板60の制御処理の進行と、サブ制御基板80の制御処理の進行とが同期しなくなることを防止することができる。
また、設定変更開始時の出力要求セット及び制御コマンドセット1の実行後、サブ制御基板80がRWM81の初期化を開始するが、RWM81の初期化が終了するために十分な時間をウェイト時間として設定する。これにより、サブ制御基板80側でRWM81の初期化処理を終了した後に、メイン制御基板60側でステップS41以降の処理に進むようにする。
なお、ステップS807及びステップS808においてセットした設定変更開始時の制御コマンドは、ステップS810のウェイト処理中であってもサブ制御基板80に送信される。ただし、ステップS810でウェイト処理が実行されている間は、ステップS811以降の処理には進まない(メイン処理が進行しない)。
このように構成することによって、サブ制御基板80に対し、設定変更開始時の制御コマンドを送信することができる。また、ステップS811以降の処理(設定変更の終了や、遊技の開始等)を、ウェイト時間だけ遅延させることができる。さらにまた、ステップS811以降の処理の遅延により、ステップS811以降の処理に付随する各種制御コマンド(設定変更終了時のコマンド、ベットスイッチ40の操作時のコマンド、スタートスイッチ41の操作に基づく役抽選結果に関するコマンド等)の送信タイミングを遅らせることができる。これにより、サブ制御基板80は、メイン制御基板60の処理と同期したタイミングで、各種コマンドに基づいて演出の制御及び出力が可能となる。
これに対し、ステップS810のウェイト処理を実行しなかった場合には、メイン制御基板60の処理が先に実行されてしまう。その結果、たとえばスタートスイッチ41の操作に基づき役抽選結果Aとなり、リール31の回転開始時に演出aを出力したいとき、リール31の回転開始のタイミングで演出aが出力されず、少し遅れて演出aが出力されてしまう。
ウェイト処理の終了後、ステップS811に進み、設定値が正常範囲であるか否かを判断する。本実施形態では、設定値は、「1」〜「6」のいずれか(整数)であるので、これら「1」〜「6」のいずれかであるかを判断する。設定値が正常範囲であると判断したときはステップS813に進み、設定値が正常範囲でない(設定値を記憶するRWM61の記憶領域に「7」や「255」などを示す値が記憶されている)と判断したときはステップS812に進む。ステップS812では、設定値として「1」を記憶する。
ステップS813では、設定変更中のLEDの表示制御(点灯)を行う。これにより、当該処理以降に割込み処理が実行されたとき、設定変更中に表示するLED(設定値表示LED63及び獲得数表示LED72)の点灯が可能となる。本実施形態では、設定値表示LED63に現在の設定値を表示するとともに、獲得数表示LED72に「−−」と表示するために、表示データの値を更新する処理を実行する。
なお、上記の各値は、ステップS804において初期化されているので、更新前は「0」である。
次にステップS814に進み、設定変更スイッチ53の操作を検出したか否かを判断する。ここでは、入力ポート1立ち上がりデータを判断し、D4ビットが「1」であるか否かを判断する。設定変更スイッチ53の操作を検出したと判断したときはステップS815に進み、検出していないと判断したときはステップS816に進む。
ステップS815では、設定値を更新する。具体的には、設定値をRWM61の所定領域に記憶(更新)する。また、設定値が更新された後に割込み処理が実行されることにより、設定値表示LED63には更新された値を表示する。
次のステップS816では、スタートスイッチ41の操作を検出したか否かを判断する。本実施形態では、設定変更中にスタートスイッチ41が操作されたときは、その時点における設定値を確定させる。
スタートスイッチ41が操作されたと判断したときはステップS817に進み、操作されていないと判断したときはステップS814に戻る。
ステップS817では、設定キースイッチ52がオフにされたか否かを判断する。設定キースイッチ52がオフにされたと判断すると、ステップS818に進み、設定変更終了後のLED表示制御(消灯)を行う。具体的には、第1に、設定値表示LED63を消灯する。第2に、貯留数表示LED71及び獲得数表示LED72を点灯可能にする。また第3に、獲得数表示LED72に「00」と表示するために獲得枚数表示データの値を更新する処理を実行する。
これにより、当該処理以降に割込み処理が実行されたとき、設定値表示LED63が消灯し、貯留数表示LED71及び獲得数表示LED72の点灯が可能となる。
次にステップS819に進み、ステップS807と同様に、設定変更終了時の出力要求セットを行う。この処理は、設定変更処理を終了すること、及び決定された設定値をサブ制御基板80側に知らせ制御コマンドをセットする処理である。次に、ステップS820に進み、ステップS808と同様に、メイン制御基板60は、制御コマンドセット1を実行する。そして、ステップS50のメイン処理(M_MAIN)(図39)に移行する。
続いて、図33のステップS808等における制御コマンドセット1(S_CMD_SET )について、より詳しく説明する。
RWM61内には、複数アドレスが設けられ、各アドレスごとに、制御コマンドバッファの記憶領域が設定されており、これらの記憶領域には、サブ制御基板80に送信するための制御コマンドデータ(本実施形態では、32コマンド(64バイト))が記憶される。なお、RWM61内に制御コマンドバッファの記憶領域のみが複数アドレス設けられているという意味ではない。
図34は、図33のステップS808等における制御コマンドセット1(S_CMD_SET )を示すフローチャートである。
RWM61内には、複数のアドレスが設けられ、各アドレスごとに、制御コマンドバッファの記憶領域が設定されており、これらの記憶領域には、サブ制御基板80に送信するための制御コマンドデータ(本実施形態では、32コマンド(64バイト))が記憶される。なお、RWM61内に制御コマンドバッファの記憶領域のみが複数アドレス設けられているという意味ではない。
まず、ステップS502では、割込み禁止処理を実行する。次のステップS503では、制御コマンドセット2(SS_CMD_SET)(図35)を実行する。そしてステップS504に進み、ステップS502で禁止した割込み処理を解除(すなわち割込み許可)を実行する。以上の処理により、制御コマンドセット2の実行中は、割込み処理が禁止される。
そして、制御コマンドセット2では、以下に示すように、制御コマンドの書き込みを行うが、制御コマンドセット2の実行中は、上述したように割込み処理が禁止されている。したがって、制御コマンドの書き込み処理中に割込み処理が実行されることによる誤作動(正常の書き込み番地とは異なる番地に書き込んでしまうこと等)を防止することができる。
ここで、割込みの禁止/解除を記憶するための割込みフラグが設けられている。割込みフラグは、ステップS502で割込み処理を禁止した後、次の割込み処理を実行するタイミング(割込み処理を禁止した時から2.235ms以内)が到来したときにオンにされる。そして、メインCPU62は、禁止した割込み処理を解除するときは、その後、割込みフラグをクリアする。
メイン制御基板60は、割込み処理を実行するタイミングが到来したときは、割込みフラグのオン/オフを判断し、割込み処理の禁止/許可を判断する。
図35は、制御コマンドセット2(SS_CMD_SET)を示すフローチャートである。
まず、ステップS511では、制御コマンドバッファのアドレスをセットする。この処理は、制御コマンドバッファの先頭アドレスをセットする処理である。
次のステップS512では、書き込みポインタの取得を行う。書き込みポインタとは、制御コマンドのデータを、RWM61のどのアドレスに書き込むかを指定するためのものであり、現時点での書き込みポインタが記憶されているので、その書き込みポインタを読み込む処理を行う。
次のステップS513では、指定アドレスを取得する。この処理は、制御コマンドバッファの先頭アドレスと、書き込みポインタの現在位置を示すデータとから、書き込む(RWM61の)アドレスを求めるものである。
次にステップS514に進み、指定アドレスのデータを取得する。この処理は、前処理のステップS513で求めたアドレスのRWM61の記憶領域に保存されているデータを読み込む処理である。
次のステップS515における「制御コマンド<32?」では、指定アドレスのデータが「0」であるか否かを判断する処理を行う。指定アドレスのデータが「0」でないときは、指定アドレスに既にデータが存在することである。換言すると、送信前のコマンドが32コマンドセットされている状態である。そして、指定アドレスのデータが「0」であるとき、すなわち指定アドレスにデータがないときはステップS516に進み、「0」でないときは本フローチャートによる処理を終了する。すなわち、指定アドレスにデータがあるときは、データの書き込み処理を実行しない。これにより、指定アドレスにデータがあるときは、上書きが防止される。
次のステップS516の「RWM指定?」では、制御コマンドバッファに書き込むデータが、RWM61に記憶されているデータを参照する必要があるデータであるか否かを判断する。たとえば、リプレイ入賞時の自動ベット時のメダル投入枚数は、前回遊技に依存するために、RWM指定となる(なお、RWM指定となるか否かについての詳細な説明は割愛するが、Dレジスタに記憶されている値のD7ビットが0か否かで判断する)。
RWM指定であると判断されたときはステップS517に進み、RWM指定でないと判断されたときはステップS518に進む。
ステップS517では、第2制御コマンドを示すデータを所定のレジスタ(Eレジスタ)に記憶する。この処理は、第2制御コマンドとして書き込むデータをRWM61から読み込んで、レジスタに記憶する処理を行う。そしてステップS518に進む。
ステップS518では第1制御コマンドを示すデータをRWM61に記憶する。ここでは、ステップS513における「指定アドレス取得」で取得したアドレスに、第1制御コマンドを記憶する処理である。具体的には、制御コマンドセット2処理の前に記憶したDレジスタの値を記憶する処理である(RWM指定の場合は、Dレジスタの値に80(H)を加算した値を記憶している。)。
次にステップS519に進み、第2制御コマンドを示すデータをRWM61に記憶する。この処理は、ステップS513で算出したアドレスの次のアドレス(第1制御コマンドを記憶した次のアドレス)に第2制御コマンドを記憶する処理を行う。
そしてステップS520に進み、書き込みポインタの値を「+1」更新する処理を行う。なお、第1制御コマンド及び第2制御コマンドを示すデータを、2か所のRWM61の記憶領域に書き込むが、ステップS513における「指定アドレス取得」処理の演算において、書き込みポインタのデータを2倍にして演算を行うので、書き込みポインタの値としては「1」だけインクリメントする。
以上説明したように、たとえば図33中、ステップS807における設定変更開始時の出力要求セット及びステップS808における制御コマンドセット1(S_CMD_SET )を実行することにより、設定変更開始時の制御コマンドデータ(サブ制御基板80に送信するデータ)が所定番地の制御コマンドバッファに書き込まれる。そして、これらの制御コマンドデータは、後述する割込み処理により、サブ制御基板80に送信される。他の「出力要求セット」及び「制御コマンドセット1」のときも同様である。
図36は、図32中、ステップS23の電源復帰処理(M_POWER_ON)を示すフローチャートである。
先ず、ステップS831では、スタックポインタを復帰させる。ここで、スタックポインタとは、電断が生じた場合に、電断発生時のデータ(例えば、レジスタ値、割込み処理前のメイン処理の命令処理等)を保存するRWM61の領域を指す。
次のステップS832では、設定値を読み込み、設定値の範囲が正常範囲であるか(「1」〜「6」であるか)否かを判断する。設定値が正常範囲であると判断したときはステップS833に進み、設定値が正常範囲でないと判断したときはステップS842に進み、復帰不可能エラー処理(SS_ERROR_STOP )に移行する。この場合のエラーは、本実施形態では「E6」エラーと称し、「E6」である旨を獲得数表示LED72に表示する。
ステップS833に進むと、RWM61の未使用領域の初期化範囲をレジスタにセットする。そして次のステップS834において、ステップS833でセットした範囲のRWM61の初期化を実行する。ここで、未使用領域であってもノイズ等によりRWM61に値が記憶されてしまうことが考えられる。万が一、未使用領域に値が記憶されると、不正等のゴトにつながる可能性があるため、未使用領域は電源の投入時に(通常であれば1日に1回)初期化するようにしている。
次のステップS835では、RWM61の初期化を終了したか否かを判断し、終了したと判断したときはステップS836に進む。ステップS836では、入力ポート0〜2のデータをセットし、次のステップS837で入力ポート0〜2の読み込みを行う。この処理は、電源断前の入力ポートの各データ(レベルデータ、立ち上がりデータ、立ち下がりデータ)を最新のデータに更新するための処理である。
次にステップS838に進み、電源投入時の特定情報データをセットする。この処理は、特定情報フラグ(_FL_ERROR_INF )のD6ビット(電断復帰時送信ビット)を「1」にする処理である。次のステップS839では、電源断復帰時外部信号4出力時間のセットを行う。この処理は、電源断復帰時外部信号4出力時間(TM1_POWER_ON)として「136」をセットする。これにより、一割込みごとに、この値が減算されていく。
次のステップS840では、割込みを起動させる。この処理は、たとえばタイマ割込みの周期を設定する処理等であり、上述したステップS806と同様である。
次にステップS841に進み、電源断処理済フラグ(_FL_POWER_OFF )をクリア、すなわち「0」にする。そして本フローチャートによる処理を終了する。
上記の電源復帰処理においては、入力ポート0〜2の読み込みを実行した(ステップS837)後に、割込み処理を起動(ステップS840)させている。その理由は、以下の通りである。
後述するように、遊技待機中に、設定キーを挿入して、設定値の確認ができるように構成されている。ここで、設定キースイッチ52の立ち下がり信号が「1」になったときに、設定値の確認を終了したと判断している。
しかし、たとえば設定確認中に電源断が生じ、この電源断中に設定キースイッチ52をオフにして(設定キーを抜いて)電源を立ち上げたと仮定する。
この場合、電源断復帰後の割込み処理により、設定キースイッチ52がオフであることに基づいて、設定キースイッチ52の立ち下がり信号が「1」になるので、設定キースイッチの立ち下がりが検知される。
その結果、電源断復帰時の状態と、電源断前の状態とで、異なる状態となってしまう。具体的には、電源断前の状態では、設定キースイッチ52の立ち下がり信号が「0」であるのに対し、電源断復帰時に、設定キースイッチ52の立ち下がり信号が「1」となる。
よって、このように、電源断前後で異なる状態となってしまうことを回避するため、電源断復帰時には、入力ポート0〜2のRWM61の値を最新の状態に更新するため、入力ポート0〜2読み込み処理を実行した後、割込み処理を起動させている。
図37は、図36のステップS837における入力ポート0〜2読み込み処理(SS_IN_READ)を示すフローチャートである。
まず、ステップS851では、前回の入力ポート0レベルデータをセットする。この処理では、RWM61に記憶されている入力ポート0レベルデータ(_PT_IN0_OLD )のアドレス(F008)をHLレジスタに記憶する(HL=F008)。そして、HLレジスタが示すアドレスのデータを、Bレジスタに記憶する。
次のステップS852では、今回の入力ポート0レベルデータをセットする。この処理では、入力ポート0に入力されているデータをAレジスタに記憶する。
次にステップS853に進み、今回の入力データを正論理に変化する。この処理は、Aレジスタに記憶されているデータと、上述した入力ポート0負論理ビット(00001011)とのXOR演算によりデータを正論理に変化し、その変換後の値をAレジスタに記憶する。
次のステップS854では、入力ポート0レベルデータをセットする。この処理は、ステップS853での演算結果であるAレジスタ値と、「11101111」とのAND演算し、その演算結果をAレジスタに記憶し、このAレジスタ値を入力ポート0レベルデータ(_PT_IN0_OLD )に記憶する。すなわちこの処理により、入力ポート0レベルデータの値が更新される。また、「11101111」とのAND演算を実行するのは、未使用ビットであるD4ビットを確実に「0」にするためである。
次にステップS855に進み、今回と前回の変化ビットデータを生成する。この処理では、今回の入力ポート0レベルデータ(Aレジスタ値)と、前回の入力ポート0レベルデータ(Bレジスタ値)とをXOR演算し、その演算結果をAレジスタに記憶する。
そして次のステップS856では、入力ポート0立ち上がりデータを生成する。この処理では、
1)ステップS855で生成した変化ビット値(Aレジスタ値)と、ステップS854でセットした入力ポート0レベルデータ(「_PT_IN0_OLD 」に記憶されている値)とをAND演算し、その演算結果をAレジスタに記憶する。
2)次に、Lレジスタ値を「1」加算する。これにより、「HL=F009」となる。
3)次に、Aレジスタに記憶した値を、HLレジスタが示すアドレス、すなわち「F009」(入力ポート0立ち上がりデータ)(_PT_IN0_UP)に記憶する。
次にステップS858に進み、次の入力ポートデータのRWM61のアドレスをセットする。この処理は、Lレジスタ値を「1」加算する処理である。これにより、「L=0A」となるので、「HL=F00A」となる。すなわち、入力ポート1レベルデータを示すアドレスとなる。
ステップS859からステップS862までは、入力ポート1に対し、ステップS851からステップS854までと同様の処理を実行する。ここでは、これらの処理の説明を省略する。
ステップS863では、ステップS862でセットした入力ポート1レベルデータに基づいて、ドアスイッチ信号(D1ビット)及び設定ドアスイッチ信号(D2ビット)を読み込む。次のステップS864では、これらのデータがオン(「1」)であるか否かを判断する。双方がオンであるときはステップS866に進み、双方がオンでないと判断したときはステップS865に進む。ステップS865では、設定キースイッチ信号(D3ビット)及び設定変更/リセットスイッチ信号(D4ビット)をクリアする(「0」にする)。そしてステップS866に進む。
ステップS866〜ステップS868では、入力ポート1について、ステップS855〜ステップS857と同様の処理を行う。この処理については説明を省略する。
次のステップS869〜ステップS871では、入力ポート1の立ち下がりデータを生成する。立ち下がりデータを生成するのは、入力ポート1のみである。これは、設定確認時に、設定キースイッチ52がオンからオフになったことを検知する必要があるためである。
ステップS869では、入力ポート1立ち上がりデータのRWM61のアドレスをセットする。この処理は、Lレジスタ値を「1」加算し(この時点におけるLレジスタ値は「0B」である。)「L=0C」とする。これにより、「HL=F00C」となり、入力ポート1立ち下がりデータを示すアドレスとなる。
次にステップS870に進み、立ち下がりデータを生成する。立ち下がりデータの生成は、図8で説明した通りであり、今回の入力ポート1レベルデータと前回の入力ポート1レベルデータとをXOR演算し、変化データを生成する。そして、その変化データと今回の入力ポート1レベルデータとをAND演算すれば、入力ポート1の立ち上がりデータを得る。
次にステップS871に進み、ステップS870で生成した入力ポート1立ち下がりデータをセットする。この処理は、生成した立ち下がりデータを、入力ポート1立ち下がりデータ(_PT_IN1_DOWN)に記憶する。すなわちこの処理により、入力ポート1立ち下がりデータの値が更新される。
次のステップS872では、ステップS858と同様に、次の入力ポートデータのRWM61のアドレスをセットする。この処理は、Lレジスタ値を「1」加算する処理である。これにより、「L=0D」となるので、「HL=F00D」となる。すなわち、入力ポート2レベルデータを示すアドレスとなる。
次のステップS873〜ステップS875は、ステップS852〜ステップS854と同様であり、入力ポート2のレベルデータをセットする処理を実行する。そして、本フローチャートによる処理を終了する。
図38は、図32におけるステップS24等の復帰不可能エラー処理(SS_ERROR_STOP )を示すフローチャートである。
先ず、ステップS881において、メイン制御基板60は、割込み処理を禁止する。この処理は、上述したステップS502と同様である。割込み要求信号(INT信号)が入力されても割込みが発生しないように制御するものである。いいかえれば、タイマ割り込みの周期(2.235ms)が到来してもタイマ割込み処理を実行しない。これにより、割込み処理によってRWM61に記憶された各種データの更新、入力/出力等は実行されないようにするとともに、誤った情報をサブ制御基板80に送信したり、ホールコンピュータに送信したりすることを防止している。
次にステップS882に進み、出力ポート0〜6を順次オフにする。具体的には、出力ポート0〜6を示す各アドレスから、1つの出力ポートずつ、全「0」(「00000000」)を出力する。ステップS883では、次の出力ポートアドレスをセットする。すなわち、出力ポートを示すアドレスを「1」インクリメントする。たとえば、出力ポート0のアドレスが「0F1(H)」であるときは、次のアドレスとして、出力ポート1のアドレス「0F2(H)」をセットする。
次にステップS884に進み、全出力ポートが終了したか否か、すなわち出力ポート6まで終了したか否かを判断する。終了していないと判断したときはステップS882に戻り、終了したと判断したときはステップS885に進む。
つまり、全出力ポート0〜6をオフにすることにより、当該処理が実行される前に出力されていたアクティブ信号がオフされることとなる。これにより、LEDの焼き付きやモータ32の焼き付き、メダルの飲み込みを防ぐことができる。たとえば、ブロッカ信号を出力している状況において電源断が起こった場合、当該処理を実行しないとブロッカ47がオンの状態(メダル流路を形成している状態)が続くことになる(メダルの検知処理は起こらないのでメダルが飲み込まれる)。
また、モータ32がφ1を出力している状況において電源断が起こった場合、当該処理を実行しないとリセット信号が入力されるまでφ1を出力し続けることとなる。本来であればリセット信号が入力されるまでの時間は短いが、瞬間的に電源電圧が低下したことにより電源断処理が実行され、その後通常の電源電圧が供給されてしまうと、リセット信号が入力されることなくリセット待ちを繰り返すことになる。このため、φ1が出力され続ける状況も起こり得る。
ステップS885では、エラー表示データとして、下位桁をセットする。次にステップS886に進み、エラー表示データとして、上位桁をセットする。
次にステップS887に進み、LEDをオフにする。この処理は、出力ポート0を示すアドレスに「00000000」を出力する処理である。したがって、ステップS887の時点では、全LEDの出力が「0」(消灯)となる。これにより、LEDのちらつきを防止することができる。
そして、次のステップS888の「エラー表示出力」処理は、出力ポート1を示すアドレスに所定値を出力する処理を行う。ここでは、エラー表示内容として、「E1」、「E5」、「E6」、「E7」等が表示されるようにする処理である。
次にステップS889に進み、LEDをオンにする。この処理は、出力ポート0を示すアドレスに所定値を出力する処理である。次のステップS890では、表示ウェイトが終了したか否かを判断する。ここで、表示ウェイトは、Bレジスタの値を「−1」減算し、Bレジスタの値が「0」となったか否かを判断する処理である。
本実施形態では、ステップS888の処理開始時に、Bレジスタの値として「255」を設定する。そして、減算処理は、Bレジスタ値が「0」になるまで行う。本実施形態では、内部システムクロックが16MHzであり、おおよそ、
「1/内部システムクロック(16MHz)」×256×8(命令)+α(その他命令)≒0.128ms
の時間で、Bレジスタが「255」→「0」になるように設定されている。
そして、表示ウェイトが終了したと判断したときはステップS891に進む。ステップS891では、上位桁と下位桁との切替えを実行する。そして、ステップS887に戻る。
これにより、同一のプログラム処理により下位桁の表示から上位桁の表示に切り替えることができる。また、上位桁/下位桁の切替え周期は、約0.128msとなる。したがって、上位桁を0.128msの間点灯させたら、次に下位桁を0.128msの間点灯させる処理を繰り返す。
上記ステップS887〜ステップS891の処理により、たとえば「E1」エラーを獲得数表示LED72で表示する場合、獲得数表示LED72の上位桁に「E」を約0.128msの間表示した後(この間は、獲得数表示LED72の下位桁は消灯)、次に、獲得数表示LED72の下位桁に「1」を約0.128msの間表示する(この間は獲得数表示LED72の上位桁は消灯)。
また、上位桁/下位桁の切替え周期は、タイマ割込み周期(2.235ms)よりも早くなり、エラー表示時の輝度が高くなる(詳細は後述する)。
いいかえれば、LEDを用いてエラー表示を行う場合に、復帰不可能エラーの方が通常エラーよりも輝度が高いので、サブ制御基板80側の機器(演出ランプ21、スピーカ22、画像表示装置23)を用いたエラー報知を行わなくても(行えなくても)、ホール店員が気づきやすくなる。
以上の通り、タイマ割込み処理が実行されない(実行したくない)期間においてエラーが発生した場合であっても、レジスタを用いた演算処理、及びハード構成により適切にLEDを用いてエラーの表示を実行することができる。
図39は、本実施形態におけるメイン処理(M_MAIN)処理を示すフローチャートである。
そして、このメイン処理中に、2.235msごとに割込み処理(図64)を行う。
図18において、ステップS51では、スタックポインタをセットする。スタックポインタとは、上記のように、電断が生じた場合に、電断発生時のデータ(例えば、レジスタ値、割込み処理前のメイン処理の命令処理等)を保存するRWM61の領域を指し、スタックポインタのセットとは、そのRWM61の領域において、レジスタ値を初期値にセットする処理である。
次のステップS52では、遊技開始セット処理(MS_GAME_SET )を行う。ステップS52に進むと、後述する図40の処理に移行する。
次のステップS53ではベットメダルの読み込み(S_PLAYM_READ)を行う。この処理は、現時点においてベットされているメダル枚数が何枚であるかを読み込む処理であり、貯留枚数の読み込みとは異なる。このベットメダルの読み込み処理については後述する(図44)。
次のステップS54では、ステップS53で読み込んだベット枚数に基づき、ベットメダルの有無を判断する。
ステップS54でベットメダルあり(後述するゼロフラグが「0」)と判断したときはステップS56に進み、ベットメダルなし(ゼロフラグが「1」)と判断したときはステップS55に進んでメダル投入待ち処理(MS_STANDBY_DSP;図49)を行い、ステップS56に進む。
ステップS56では、投入されたメダルの管理処理(MS_MEDAL_CHK)を行う。ステップS106に進むと、後述する図50の処理に移行する。
次のステップS57では、ソフト乱数の更新処理を行う。この処理は、役抽選手段62bで使用する乱数(ハード乱数、又は内蔵乱数)に加工(演算処理)するための加工用乱数を更新(たとえば「1」ずつ加算)する処理である。ソフト乱数は、0〜65535の範囲を有する16ビット乱数である。なお、更新方法として、更新前の値に、割込みカウント値(割込み時にインクリメントされるカウント値(変数))を加算する処理を実行してもよい。
次のステップS58では、メイン制御基板60は、スタートスイッチ41が操作されたか否かを判断する。スタートスイッチ41が操作されたと判断したときは、ステップS59に進み、スタートスイッチ41が操作されていないと判断したときはステップS53に戻る。なお、スタートスイッチ41が操作された場合であっても、ベット数が当該遊技の規定数に達していないときは、ステップS58で「No」と判断される。また、規定数に達しているときは、スタートスイッチ受付け許可フラグ(メダル管理フラグの「D0」ビット)をオンにする。
ステップS59では、スタートスイッチ受付け時の処理(MS_START_CTL)を実行するステップS59に進むと、後述する図62の処理に移行する。
ステップS60では、役抽選手段62bは、スタートスイッチ41が操作されたタイミングで、すなわちスタートスイッチ41の操作信号の受信時に、役の抽選を実行する。なお、役抽選時の乱数値はステップS59で取得する。そして、ステップS60において、取得した乱数値が、いずれかの当選役に該当する乱数値であるか否かを役抽選テーブルを用いて判定する処理を行う。
次のステップS61では、リール制御手段62cは、リール31の回転を開始する。次にステップS62に進み、リール31の停止受付けをチェックする。ここでは、ストップスイッチ42の操作信号を受信したか否かを検知し、操作信号を受信したときは、役の抽選結果とリール31の位置とに基づいてリール31の停止位置を決定し、その決定した位置にリール31を停止させるように制御する。
次のステップS63では、リール制御手段62cは、全リール31が停止したか否かをチェックし、ステップS64に進む。ステップS64では、全リール31が停止したか否かを判断し、全リール31が停止したと判断したときはステップS65に進み、全リール31が停止していないと判断したときはステップS62に戻る。
ステップS65では、図柄の表示判定を行う。ここでは、入賞判定手段62dにより、有効ラインに、役に対応する図柄の組合せが停止したか否かを判断する。そして、停止した図柄の組合せに応じて、図柄組合せフラグ(_FL_WIN )を更新する。たとえばリプレイの図柄組合せが有効ラインに停止したと判断したときは、図柄組合せフラグのD0ビットを「1」にする。
また、ステップS65では、メダル払出し枚数データ(_NB_PAY_MEDAL )の値を更新する。たとえば1枚役が入賞し、それまでのメダル払出し枚数データが「0」であるとき、「0」から「1」に更新する。
次にステップS66に進み、図柄の表示エラーが発生したか否かを判断する。図柄の表示エラーが発生したと判断したときはステップS71に進み、表示エラーが発生していないと判断したときはステップS67に進む。
ここで、リール31の停止は、停止位置決定テーブルに基づき実行されるので、通常は、停止位置決定テーブルで定められた位置以外の位置でリール31が停止する場合はない。しかし、図柄の表示判定の結果、有効ライン上に、本来表示されてはいけない図柄(蹴飛ばし図柄)が表示されたときは、異常であると判定し、ステップS71に進んだときは、復帰不可能エラー処理を実行する。この図柄組合せ異常エラーは、「E5」エラーと称し、獲得数表示LED72に「E5」と表示し、メイン処理を停止する。
なお、復帰不可能エラー(後述する復帰不可能エラーも同様)の発生時に、それを解除するためには、電源のオン/オフと、設定値の再設定が必要となる。復帰不可能エラーの発生時には、電源をオフにし、設定キーを差し込んで90度時計回りに回転させ、電源をオンにする。これにより、RWM61の所定範囲(設定値情報、RT情報、当選役情報)がクリアされる。そして、設定値を設定し、他のエラーがなければ、復帰処理が行われる。
一方、後述する満杯エラー等の復帰可能エラーの発生時は、エラー内容を表示して処理を停止するが(たとえば後述する図51のステップS239等)、ホール店員がエラー解除操作を実行し(エラー要因を除去し)、リセットスイッチ53を操作すると、エラーが解除されたか否かを判断して、エラーが解除されたと判断したときは、処理を再開する。
次にステップS67では、役の入賞があったときは、払出し手段62eは、入賞役に対応するメダルの払出しを行う(MS_WIN_PAY;図63)。次にステップS68に進み、メイン制御基板60は、遊技終了チェックを行う。この処理は、当選役フラグ(RWM61)のクリア、ストップスイッチ42の押し順判定処理、ウェイトのセット、フリーズを行う場合にフリーズ状態の移行処理、外部信号を送信する場合の外部信号データの生成処理等を実行する処理である。なお、作動状態フラグ(_FL_ACTION)は、当該遊技の開始時(役抽選後(ステップS60))に、当選役に応じてオンとなり、このステップS68においてオフにされる。ただし、1BB当選時には、作動状態フラグのD1ビットがオンとなり、このD1ビットのオン状態は、1BBが入賞しない限り、次回遊技に持ち越される。
また、ステップS68では、入力ポート2のD5ビットである満杯センサ38の信号を判断し、オンであるときは、満杯エラーを表示する。満杯エラーは、本実施形態では「FEエラー」と称し、獲得数表示LED72に「FE」と表示する。
次のステップS69では、遊技終了時の出力要求をセットする。この処理は、1遊技が終了した旨をサブ制御基板80に送信するための制御コマンドデータをセットする処理である。
次にステップS70に進み、メイン制御基板60は、制御コマンドセット1を実行する。この処理は、制御コマンドバッファ(RWM61)に、サブ制御基板80に送信する制御コマンドデータを記憶する処理である。
そして、ステップS70の処理を終了すると、再度、ステップS50に戻る。
図40は、図39のステップS52における遊技開始セット(MS_GAME_SET )を示すフローチャートである。
まず、ステップS120では、遊技待機表示時間をセットする。本実施形態では、遊技待機表示時間としては、「26846」割込み(≒60000ms、すなわち約60秒(1分))をセットする。このステップS121で遊技待機表示時間がセットされると、この時点から割込み回数がカウント(減算)される。
遊技待機表示時間が「0」となると、図39のステップS55においてメダル払出し枚数データをクリアする(「_NB_PAY_MEDAL 」を「0」にする処理)。つまり、獲得数表示LED72に「00」が表示される。たとえば、前回遊技に払い出されたメダル枚数が「8」枚であり、かつ、遊技者が精算スイッチ43の操作により精算し、遊技を終了したとしても、約1分後には「00」が表示される。これにより、ホールの店員や別の遊技者が空き台として認識できることにより空き台を減少させることができるという効果を有する。
次のステップS121では、メイン制御基板60は、遊技状態のセット処理(MS_ACTION_SET )を行う(図41)。
図41は、図40のステップS121における遊技状態のセット処理(MS_ACTION_SET )を示すフローチャートである。この処理は、遊技の開始前に前回遊技の結果に基づきリプレイ作動時や1BB遊技であるときにはその状態をセットする処理である。
まず、ステップS122では、図柄組合せ表示フラグのデータを取得する。この処理では、前遊技でのリール31の停止後における有効ライン上の図柄組合せ、すなわち入賞役に関するデータをRWM61(図柄組合せ表示フラグ;_FL_WIN )からレジスタに記憶する処理である。
次のステップS123では、作動状態フラグ(_FL_ACTION)を生成する。たとえばリプレイの入賞時には、ステップS122で記憶したデータに基づいてリプレイに係る作動状態フラグを生成する。次のステップS124では、作動状態フラグの更新及び保存を行う。すなわち、それまでの作動状態フラグに代えて、ステップS124で生成した作動状態フラグに置き換える(たとえばリプレイの入賞時は、「_FL_ACTION」のD0ビットを「1」にする)。そして、その作動状態フラグを保存(記憶)する。
次のステップS125では、ステップS122で取得した図柄フラグデータに基づいて、リプレイの図柄の組合せが表示されたか(リプレイが入賞したか)否かを判断する。リプレイの図柄の組合せが表示されたと判断したときはステップS126に進み、表示されていなと判断したときはステップS128に進む。
ステップS126では、メイン制御基板60は、ベットメダルの読み込みを行う(図44)。この処理は、前回遊技でベットされていたメダル枚数を読み込む処理である。次にステップS127に進み、自動ベット数データをセットする。この処理は、自動ベット数を記憶した「_NB_REP_MEDAL 」のデータを更新する処理である。そして、ステップS128に進み、遊技状態出力処理(MS_STATUS_OUT )に移行する。
図42は、図41のステップS128における遊技状態出力処理(MS_STATUS_OUT )を示すフローチャートである。この処理は、サブ制御基板80に対し、遊技状態に係るコマンドを送信する処理である。
まず、ステップS129では、作動状態の出力要求をセットする。次のステップS130では、制御コマンドセット1を実行する。具体的には、リプレイが作動したことや1BBが作動したことを示す情報をサブ制御基板80に送信する。なお、図示していないが、今回遊技の設定値に関する情報や、今回遊技のRT状態に関する情報等も送信している。そして、ステップS131のメダル受付け開始処理(MS_MEDAL_START)に移行する。
図43は、図42のステップS131におけるメダル受付け開始(MS_MEDAL_START)を示すフローチャートである。
まず、ステップS134では、ベットダル枚数のデータをクリアする。すなわち、前遊技におけるベット枚数をクリアする処理であり、具体的には、メダルベット枚数データ(_NB_PLAY_MEDAL)の値を「0」にする処理を行う。
次にステップS135に進み、投入表示LED(73e〜73g)を消灯する処理を行う。具体的には、投入表示LED信号データ(_PT_MEDAL_LED )のD5〜D7ビットを「0」にする処理を行う。
次のステップS136では、メダル管理フラグの初期化を行う。具体的には、メダル管理フラグ(_FL_MEDAL_STS )のD0、D2〜D4、D6、及びD7ビットを「0」にする処理を行う。
次のステップS137では、メイン制御基板60は、作動状態フラグをチェックする。ここで作動状態フラグをチェックするのは、次のステップS138において、リプレイ作動時であるか否かを判断するためである。本実施形態では、ステップS138では、作動状態フラグ(_FL_ACTION)のD0ビット(リプレイ)の値を読み込む。
次にステップS138に進み、ステップS137における読み込みに基づいて、リプレイ作動時であるか否か、すなわちD0ビットが「1」であるか否かを判断する。D0ビットが「1」、すなわちリプレイ作動時であると判断したときはステップS139に進み、リプレイ作動時でないと判断したときはステップS149に進む。
リプレイ作動時でないと判断され、ステップS149に進むと、ブロッカ47をオンにする処理を実行し、本フローチャートによる処理を終了する。すなわち、リプレイ非作動時には、一律に、メダルの手入れ投入を許可する。
したがって、本フローチャートのメダル受け付け開始処理において、ステップS139以降の処理は、リプレイ作動時のメダルの自動ベット処理に相当する。
ステップS139では、リプレイ作動時の待機時間をセットする。そして、次のステップS140で、ウェイト処理を実行する。本実施形態では、ウェイト時間として、約500msを設定するために、割込み数のカウント値「237」(237×2.235ms=約529.7ms)を設定する。そして、一割込みごとにこのカウント値を減算していき、「0」になるまで、ウェイト処理を実行する。このウェイト処理を設けるのは、遊技終了直後にリプレイ表示LED73aが点灯してしまう(ステップS144)ことや、遊技終了直後に自動ベットされてしまう(ステップS147)ことを防止するためである(見た目上、この好ましくないからである)。
なお、自動ベット時のベット音は、ステップS145及びステップS146で記憶されるコマンドに基づいて出力される。
さらにまた、入賞したリプレイの種類に応じてウェイト時間を異ならせることが可能である。たとえば特殊リプレイ1入賞時(すなわち、ART開始時)には、1秒以上のウェイト時間を設定してもよい。
次にステップS141に進み、貯留枚数の読み込みを行う(図45;S_CREDIT_READ )。次のステップS142では、貯留枚数が限界枚数(本実施形態では、50枚)であるか否かを判断する。限界枚数であると判断したときはステップS144に進み、限界枚数でないと判断したときはステップS143に進む。ここでの処理は、貯留枚数表示データ(_NB_CREDIT_LED)を読み込み、貯留枚数をチェックする。
ステップS143では、ブロッカをオン(図46;MS_BLOCKER_ON )、すなわちメダルの受付けを許可するように制御する。そしてステップS144に進む。
以上より、第1に、リプレイ作動時でないときは、常にブロッカ47をオンにし、メダルの受付けを許可する。リプレイ作動時でないときは、前回遊技で貯留枚数が上限枚数(50枚)であったとしても、ベットメダル(通常遊技では3枚)については消費しており、その分についてはベット可能だからである。
また第2に、リプレイ作動時において、貯留メダル枚数が限界枚数でないときは、ブロッカ47をオンにし、メダルの受付けを許可する。貯留メダル枚数が限界枚数でないときは、メダルの手入れにより、少なくとも貯留枚数の追加が可能だからである。
さらにまた第3に、リプレイ作動時において、貯留メダル枚数が限界枚数であるときは、ブロッカ47をオンにしない(それまでのブロッカ47のオフ状態を維持する)。リプレイ作動時かつ貯留メダル枚数が上限枚数であるときは、メダルをベットできず、かつ貯留メダル枚数の追加ができないので、メダルの受付けを行わないためである。
ステップS144では、リプレイ表示LEDの点灯処理を行う。このステップS144では、メダル管理フラグ(_FL_MEDAL_STS )のD3ビットをオン(「1」)にする処理を実行する。
なお、リプレイ表示LED73aを実際に点灯させる処理は、後述する割込み処理(図64)におけるステップS606のLED表示制御にて行う。
そして、次のステップS145では、サブ制御基板80に対し、自動ベットが行われたことを示すコマンドを送信するための出力要求セット処理を行い、次のステップS146で制御コマンドセット1処理を実行する。
次のステップS147では、メダルを1枚加算する処理(ここでは、自動ベット処理を意味する)、すなわち、リプレイの入賞に基づき、自動ベットを行うために、1枚ずつメダルの自動ベット(加算)処理を行う。なお、メダル1枚加算処理の詳細については後述する(図47;MS_MEDAL_INC)。次のステップS148では、メダル限界枚数になったか否か(たとえば通常遊技時では、3枚)を判断し、メダル限界枚数となったと判断したときは、本フローチャートによる処理を終了する。
一方、メダル限界枚数になっていないと判断したときはステップS147に戻り、メダル1枚加算(自動ベット)処理を再度実行する。
なお、上記処理では、自動ベット時の出力要求セット処理及び自動ベット時のコマンドの送信(ステップS145及びS146)後に自動ベット処理(ステップS147〜S148)を行うが、これに限らず、自動ベット処理の終了後に、自動ベット時の出力要求セット処理及び自動ベット時のコマンドの送信を行ってもよい。
また、本実施形態では、リプレイ入賞時には、たとえば3枚のメダルを一気に自動ベットするためにウェイト処理を設けていないが、ウェイト処理を設けることも可能である。たとえば、ステップS148において、メダル限界枚数でないと判断したときは、ステップS139及びステップS140に示したような待機時間セット及びウェイト処理を実行し、その後、ステップS147に戻るように制御すればよい。
このようにウェイト処理を設けた場合には、後述するメダル1枚加算処理が所定時間経過するごとに実行されるため、投入枚数表示LED信号データ(_PT_MEDAL_LED )は所定時間経過するごとに更新される。これにより、投入表示LED73e〜73gが順次点灯するように遊技者に見せることができる。
さらにまた、図43の例では、ステップS142において貯留限界枚数であるか否かを判断し、貯留限界枚数でないときは、メダルの手入れ投入を可能にするためにブロッカ47をオンにする処理(ステップS143)を実行したが、たとえばリプレイ入賞時には、メダルの手入れ投入を不可に設定することも可能である。このように制御する場合には、ステップS138においてリプレイ作動時であると判断したときは、ステップS139及びステップS140の処理後、ステップS144に進む(ステップS141〜S143の処理をなくす)ようにすればよい。
図44は、メダルの読み込み処理(S_PLAYM_READ)(図39のステップS53等)を示すフローチャートである。先ず、ステップS151において、メイン制御基板60は、メダル枚数データを読み込む。ここでは、RWM61に記憶されたメダルベット枚数データ(_NB_PLAY_MEDAL)の値を読み込み、読み込んだベットメダル枚数データを所定のレジスタ(Aレジスタ)に記憶する処理である。
次にステップS152において、メイン制御基板60は、ステップS151で読み込んだメダル枚数のチェックを行う。具体的には、Aレジスタの値が「0」を示す値となっているときに、ゼロフラグ(フラグレジスタ)を「1」にする。そして、本フローチャートによる処理を終了する。
図45は、図43のステップS141等における貯留枚数読み込み処理(S_CREDIT_READ )を示すフローチャートである。先ず、ステップS155において、メイン制御基板60は、貯留枚数のデータを読み込む。ここでの処理は、RWM61に記憶された貯留枚数表示データ(_NB_CREDIT_LED)の値を所定のレジスタ(たとえばAレジスタ)に記憶する処理である。次にステップS156において、ステップS155で読み込んだ貯留枚数のチェックを行う。具体的には、Aレジスタの値が「0」を示す値となっているときに、ゼロフラグ(フラグレジスタ)を「1」にする。そして本フローチャートによる処理を終了する。
図46は、図43のステップS143等におけるブロッカオンの処理(MS_BLOCKER_ON )を示すフローチャートである。
先ず、ステップS161において、メイン制御基板60は、ブロッカ監視時間の経過をチェックする。ブロッカ監視時間は、予め所定値(46割り込み:約102ms)に設定されており、通路センサ46がオンとなったとき(メダルを検知したとき)に計時を開始する。次にステップS162に進み、タイマによる所定時間が経過したか否かを判断する。経過したと判断したときはステップS163に進み、経過していないと判断したときはステップS161に戻る。
このように制御するのは、ブロッカ47によりメダルを挟み込んでしまうことを防止するためである。具体的には、通路センサ46によりメダルを検知してから約102ms経過していれば、通路センサ46により検知されたメダルはブロッカ47を既に通り過ぎていると判断できるからである。換言すれば、通路センサ46がオンとなってから約102ms以内にブロッカ47を駆動すると、通路センサ46により検知したメダルをブロッカ47が挟み込んでしまうおそれがあるためである。
ステップS163では、メイン制御基板60は、この時点からの割込みを禁止する。上述したように、メイン処理(M_MAIN)の実行中には、2.235msごとに1回のタイマ割込み処理が入るが、ステップS163における「割込み禁止」の処理の実行後は、当該割込み禁止が解除されるまで、割込みを許可しないように制御する。
次のステップS164では、メイン制御基板60は、ブロッカ信号をオンにする処理を行う。この処理は、出力ポート3のD6ビットの信号を「1」にするためのRWM61にデータを記憶する処理である。具体的には、「ブロッカ信号及びホッパーモータ駆動信号データ(_PT_BLK_HPM )」中、D6ビット(ブロッカ信号)を「1」にする処理である。
なお、本実施形態では、出力ポート3に限らず各出力ポートに対して最大8つのデータを出力することが可能である。また、割込み処理により出力を実行している。つまり、このタイミングにおいて、出力ポート3のD6ビットをオンにするのではなく、一度RWM61に記憶した後、出力ポート3を出力する処理時にRWM61に記憶されたデータに基づいて出力している。
さらに次のステップS165では、投入監視カウンタの値をクリアする。ここで、投入監視カウンタとは、通路センサ46がメダルを検知すると、「+1」とし、投入センサ48a及び48bがメダルを検知すると、「0」とするカウンタである。すなわち、正常時には、「+1」と「0」とを繰り返すカウンタである。ブロッカ47をオン、すなわちブロッカ47によりメダル通路を形成したときは、通路センサ46をメダルが検知するようになるからである。
次のステップS166では、ブロッカ信号状態のフラグをオンにする。ここでは、上述したメダル管理フラグ(_FL_MEDAL_STS )のD2ビットをオン(「1」)にする処理を行う。そしてステップS167に進み、ステップS163で設定した割込み禁止の解除、すなわち割込みを許可する。そして、本フローチャートによる処理を終了する。
上記において、ステップS164〜ステップS166の処理間に割込みを発生させないのは、以下の理由による。
本実施形態では、ステップS164において、ブロッカ信号をオンにし、ステップS166において、ブロッカ状態信号をオンにする処理を行う。この場合、ステップS164とステップS166との間に割込みが入ると、一方がオン、他方がオフの状態になってしまう。具体的には、途中で入った割込み処理により、ブロッカ47に対してはオンを出力するのにもかかわらず、投入可表示LED73bにはオンを出力しない(非点灯)という不整合が生じることとなる。つまり、そのような状態を避け、双方の値を一気に更新するために、割込み処理を禁止することにより、遊技者に混乱を与えないように制御することを可能としている。なお、本実施形態でステップS164、S165、S166の順で処理を実行しているが、これらの順序は本実施形態と同様の処理順序ではなくてもよい。たとえば、ステップSS166、S165、S164の順序でもよい。
また、本実施形態では、通路センサ46がメダルを検知してから約100ms経過後にブロッカ47がオンとなり、メダル通路を形成する。このように設定したのは、投入されたメダル(通路センサ46により検知されたメダル)がブロッカ47に到達した瞬間にブロッカ47がオンとなり、メダルがブロッカ47に挟まることを防止するためである。よって、通路センサ46がメダルを検知した後、所定時間(メダルが挟まる可能性のある時間)を経過するまで、ブロッカ47をオンにしないように制御している。
図47は、図43のステップS147等におけるメダル1枚の加算処理(MS_MEDAL_INC)を示すフローチャートである。
なお、この図47におけるメダル1枚の加算処理は、メダルの手入れベット時、リプレイの表示に基づく自動ベット時、及びベットスイッチ40の操作に基づく貯留ベット時に、共通して用いられる処理である。このように、実行するベット処理が異なる場合であっても、共通する処理(プログラム)を用いることにより、プログラム容量を削減することができる。
先ず、ステップS171では、メイン制御基板60は、ベットされたメダルの読み込みを行う(図44;S_PLAYM_READ)。次のステップS172では、ベットメダル枚数を「1」加算する処理(「+1」)を行う。そして、その演算結果をCレジスタに記憶する。たとえば、それまでのベットメダル枚数が「0」枚であったときは、「1」を加算することにより、
Cレジスタ値=00000001
となる。
ここでの処理は、RWM61に記憶されたメダルベット枚数データ(_NB_PLAY_MEDAL)の値を読み込み、読み込んだベットメダル枚数データを所定のレジスタ(たとえばAレジスタ)に記憶し、Aレジスタの値に「1」を加算し、加算後のAレジスタ値をメダルベット枚数データに記憶(更新)する処理である。
たとえば、読み込んだベットメダル枚数データ(_NB_PLAY_MEDAL)が「0」であったときは、
_NB_PLAY_MEDAL=0
Aレジスタ値=00000000
Aレジスタ値=00000001(「1」加算後)
_NB_PLAY_MEDAL=1
となる。
次のステップS175では、メイン制御基板60は、獲得数表示LED72の表示のクリア処理を行う。本実施形態では図示していないが、RWM61には、獲得枚数表示データ(_NB_PAY_LED )が記憶されている。そして、このステップS175では、この獲得枚数表示データをクリアする処理である。
この処理は、Aレジスタの値が「0」となるように演算(たとえば、Aレジスタ値とAレジスタ値との排他的論理和を演算)し、演算後のAレジスタ値を獲得枚数表示データに記憶(更新)する処理を実行する。
なお、獲得数表示LED72を実際に表示する処理は、割込み処理でのLED表示制御(ステップS606)にて行われる。
次にステップS176に進み、メイン制御基板60は、投入表示LED73e〜73gの点灯データを生成する。なお、投入表示LED73e〜73gを実際に点灯させる処理は、上記と同様に、後述する割込み処理でのLED表示制御(ステップS606)にて行われる。
先ず、Aレジスタの値に「1」を加算する。加算前のAレジスタ値は、ステップS175の処理により「0」であるため、
Aレジスタ値(加算前):00000000
Aレジスタ値(加算後):00000001
となる。
次に、Aレジスタ値を右に一桁シフトする。本シフト処理は、単に右シフトを行うだけでなく、D0ビット目の値をD7にする循環的なシフト命令であるため、ローテートシフトとも呼ばれる。この処理により、
Aレジスタ値(シフト前):00000001
Aレジスタ値(シフト後):10000000
となる。
次のステップS177では、メイン制御基板60は、投入枚数分の点灯データの生成を終了したか否かを判断する。具体的には、以下の通りである。
先ず、Cレジスタ値から「1」を減算する。Cレジスタ値は、上記のように、「1」であるので、
Cレジスタ値(演算前):00000001
Cレジスタ値(演算後):00000000
となる。
そして、Cレジスタ値が「0」でないときは、ステップS177で「No」となり、「0」であるときは「Yes」となる。
ステップS177において投入枚数分を終了していないと判断したときはステップS176に戻り、点灯データの生成を継続する。一方、投入枚数分を終了したと判断したときはステップS178に進み、メイン制御基板60は、投入枚数表示LEDの点灯データをRWM61に記憶する制御を行う。
実際に投入枚数表示LED信号データを用いて点灯制御を実行するのは、後述する割込み処理にて実行される。
ステップS178の処理は、具体的には、以下の通りである。
先ず、Aレジスタ値を、投入枚数表示LED信号データ(_PT_MEDAL_LED )に記憶する。したがって、
投入表示LED信号データ:10000000
となる。
なお、既に1枚のメダルが投入されていたときは、以下のようになる。
ステップS172では、
Cレジスタ値=00000010
となる。
また、ステップS176では、
Aレジスタ値(加算前):00000000
Aレジスタ値(加算後):00000001
となる。
さらに、
Aレジスタ値(シフト前):00000001
Aレジスタ値(シフト後):10000000
となる。
次のステップS177では、
Cレジスタ値(演算前):00000010
Cレジスタ値(演算後):00000001
となる。
したがって、Cレジスタ値≠「0」であるので、ステップS176に戻る。
そして、ステップS176では、
Aレジスタ値(加算前):10000000
Aレジスタ値(加算後):10000001
となる。
さらに、
Aレジスタ値(シフト前):10000001
Aレジスタ値(シフト後):11000000
となる。
次に、ステップS177に進み、
Cレジスタ値(演算前):00000001
Cレジスタ値(演算後):00000000
となる。
そして、Cレジスタ値=「0」であるので、ステップS177で「Yes」となり、ステップS178に進む。
これにより、ステップS178では、
投入枚数表示LED信号データ:11000000
となる。
このようにして、レジスタ(Cレジスタ、Aレジスタ)とシフト処理を用いることで、少ないプログラム処理(簡素なプログラム)で対応したデータに投入枚数表示LED信号データを記憶することができる。
ステップS178の後、ステップS179に進み、メイン制御基板60は、メダル限界枚数をセットする(MS_MMAX_SET )(後述する図48)。
メダル限界枚数とは、当該遊技においてベット可能なメダル枚数の最大値(又はその遊技でベットしなければいけないメダル枚数)を意味する。具体的には、本実施形態ではベット可能な最大メダル枚数が遊技状態で異なっているので、その遊技状態でベット可能な最大メダル枚数を意味する。特に本実施形態では、通常遊技では、最大3枚のメダルがベット可能であり、MBゲーム中では、最大で2枚のメダルをベット可能である。よって、MBゲーム中を除くメダル限界枚数は3枚となり、MBゲーム中のメダル限界枚数は2枚となる。
次にステップS180に進み、メイン制御基板60は、ベットされたメダルの読み込み処理(S_PLAYM_READ)を行う(ステップS171と同一)。
そして、次のステップS181において、メイン制御基板60は、ベット枚数が限界枚数であるか否かを判断する。具体的には、メダル限界枚数(Aレジスタの値)からベット枚数(Cレジスタの値)を減算することにより、「0」であればベット枚数が限界枚数であると判断する。ベット枚数が限界枚数でないと判断したときは本フローチャートによる処理を終了し、限界枚数であると判断したときはステップS182に進む。ステップS182では、メダル限界フラグをセットする。ここでは、メダル管理フラグ(_FL_MEDAL_STS )のD7ビットを「1」にする処理を実行する。そして本フローチャートによる処理を終了する。
図48は、図47のステップS179等におけるメダル限界枚数のセット処理(MS_MMAX_SET )を示すフローチャートである。ステップS201では、自動ベット時の限界枚数をセットする。なお、自動ベットとは、リプレイ入賞時に自動でメダルが投入されることである。本実施形態では、「_NB_REP_MEDAL 」の値をCレジスタに記憶する処理に相当する。たとえば「_NB_REP_MEDAL 」の値が「3」であれば、Cレジスタ値=「3」となる。
次のステップS202では、作動状態フラグ(_FL_ACTION)の値を読み込む。
そして、次のステップS203では、メイン制御基板60は、ステップS202で読み込んだ作動状態フラグのD0ビットが「1」であるか否か(リプレイ作動時であるか否か)を判断する。ここでは、たとえば、ステップS202で読み込んだデータのD0ビットが「1」であるときはリプレイ作動時であると判断し、「0」であるときはリプレイ非作動時であると判断する。リプレイ作動時であるときは、本フローチャートによる処理を終了し、リプレイ作動時でないときはステップS204に進む。すなわち、リプレイ作動時には、Cレジスタ値「3」が自動ベット数となる。
一方、ステップS204に進むと、メダルの限界枚数として、Cレジスタに「2」を記憶する。
次にステップS205に進み、メイン制御基板60は、当該遊技がメダル限界枚数2枚の遊技時であるか否かを判断する。上述したように、たとえば通常遊技であるときはメダル限界枚数が2枚でないと判断し、1BB遊技中であるときはメダル限界枚数が2枚であると判断する。たとえばステップS202で読み込んだデータのD2ビットが「0」であるときはメダル限界枚数2枚の遊技時(1BB遊技中)でないと判断し、「1」であるときはメダル限界枚数2枚の遊技時(1BB遊技中)であると判断する方法が挙げられる。
メダル限界枚数が2枚であるときは、本フローチャートによる処理を終了する。これにより、メダル限界枚数は「2」に設定される。一方、メダル限界枚数が2枚でないと判断したときはステップS206に進み、Cレジスタ値に「1」を加算する。これにより、Cレジスタ値は「3」となり、この「3」をメダル限界枚数としてセットする。
図49は、図39のステップS55におけるメダル投入待ち(MS_STANDBY_DSP)を示すフローチャートである。
先ず、ステップS411では、メイン制御基板60は、設定キースイッチ52の信号がオンであるか否かを判断する。ここでは、入力ポート1立ち上がりデータにおいて、D3ビットが「1」であるか否かを判断する。設定キースイッチ52の立ち上がりデータがオンであるときはステップS412に進み、オンでないと判断したときはステップS421に進む。すなわち、メダル投入待ち状態において、設定キースイッチ52がオンにされると(設定キー挿入口から設定キーが挿入されると)、設定確認モードとなり、ステップS412〜ステップS420の処理が実行される。設定確認モードは、現設定値を確認(管理者が目視にて確認)するモードであり、設定値の変更はできない。
なお、本実施形態では、設定キースイッチ52の立ち上がりデータによってステップS411の判断を行っている。これにより、たとえば遊技中に設定キースイッチ52がオンにされた場合において、ステップS411による判断を行っても立ち上がりデータはオフ(設定キースイッチ52はオン)であるため、設定確認モードには移行しないようにし、不正に設定値を確認できないようにしている。もちろん、これらを考慮しない場合には、設定キースイッチ52のオン、オフによりステップS411や、後述するステップS416の判断を行ってもよい。
ステップS412では、ブロッカ47がオフにされる(MS_BLOCKER_OFF;後述する図53)。これにより、メダルがメダル投入口44から投入されても払出し口14から返却される。
次のステップS413では、メイン制御基板60は、設定値表示開始時の出力要求をセットする。そして、次のステップS414で、サブ制御基板80に対して送信する、設定値表示開始時の制御コマンドデータをセットする。
次にステップS415に進み、メイン制御基板60は、設定値表示LED63を点灯させる処理を行う。これにより、設定値表示LED63を点灯可能とし、現在の設定値を表示することができる。なお、設定値表示LED63を実際に点灯/消灯する処理は、割込み処理におけるLED表示制御(ステップS606)にて行われる。
次にステップS416に進み、設定キースイッチ52の信号がオフになったか否かを判断し続ける。この処理は、ステップS411とは反対に、入力ポート1のD3ビットの立ち下がりデータが「1」になったか否かを判断する。設定キースイッチ52の信号がオフになったと判断されたときはステップS417に進み、メイン制御基板60は、設定値表示LED63を消灯させる処理を実行する。
次に、ステップS418に進み、メイン制御基板60は、設定値表示終了時時の出力要求をセットする。そして、次のステップS419で、サブ制御基板80に対して送信する、設定値表示終了時の制御コマンドデータをセットする。
次のステップS420では、メイン制御基板60は、ブロッカをオンにする処理(MS_BLOCKER_ON ;図46)を行う。次にステップS421に進み、メイン制御基板60は、遊技待機表示時間が、ステップS120(図40)でセットした「26846」割込み(約60秒)を経過したか否かを判断する。
遊技待機表示時間を経過したと判断したときは、ステップS422に進み、獲得数表示LED72の表示をクリアする処理を実行する。この処理は、上述した図47のステップS175の処理と同一である。そして、本フローチャートによる処理を終了する。一方、ステップS421において、遊技待機表示時間を経過していないと判断したときは、本フローチャートによる処理を終了する。
つまり、本実施形態では、所定時間、遊技が行われなかった場合には、獲得数表示LED72の表示をクリアするが、リプレイ表示LED73a、貯留数表示LED71、投入表示LED73e〜73gはクリアしないように構成している。これにより、ベットされていること、再遊技が可能なこと、又は精算可能な貯留枚数は、表示され続けているため、遊技者が一旦離席しようとしたときに、他の遊技者やホール関係者に対してその遊技者が遊技を終了したとは感じさせないことが可能となる。これにより、遊技者が不利益を被ることを少なくすることができる。
また、獲得枚数(たとえば8枚)の獲得があった旨を表示し続けることは、遊技者が遊技を終了(精算処理等を行って離席)したときに、獲得枚数が表示され続けることによって、他の遊技者やホール関係者に対してその遊技者が遊技を終了したとは感じさせないこと(まだ遊技者が遊技をしようとしているかも)と混同してしまうため、獲得枚数はクリアしている。
図40のステップS120及び図49のステップS421、ステップS422の処理により、遊技開始時には、約60秒のタイマがセットされ、遊技開始時から60秒を経過すると、獲得数表示LED72の表示内容をクリアする(「00」にする)。
これにより、たとえば、リール31の回転中や、全リール31の停止時における役の非入賞時(役の当選を有無を問わない)には、獲得数表示LED72には「00」が表示された状態である。また、たとえば全リール31の停止時にベル01が入賞したとき(通常遊技中)は、獲得数表示LED72の表示が「00」から「08」となる。
また、図47のメダル1枚加算(MS_MEDAL_INC)においては、ステップS175で獲得枚数の表示がクリアされるので、メダル投入があったとき(ベットメダルの投入、メダルの手入れ投入、リプレイ入賞時のメダルの自動投入時)は、獲得枚数の表示がクリアされることとなる。
なお、上記の制御は一例であるので、たとえば、リール31の回転中、全リール31の停止時における役の非入賞時、メダル投入時には、獲得数表示LED72には何も表示しないようにしてもよい。
さらに本実施形態では、ステップS416における設定キースイッチ52オフ時の操作スイッチの操作に基づいて、サブ状態の消費電力を異ならせる制御を備える。
具体的には、「通常モード」と「省電力(エコノミー)モード」とを有し、これらのモードに応じて、遊技待機中や遊技中の演出ランプ21の点灯の種類や輝度の低下、通常時の音量(ボリューム)の低下等が異なるように制御する。
本実施形態では、設定キースイッチ52をオフにしたときに、左及び右ストップスイッチ42のオン/オフにより、通常モードを省電力モードとを設定する。
具体的には、以下の通りである。
1)左ストップスイッチ42オフ、右ストップスイッチ42オフ:モード移行なし
2)左ストップスイッチ42オン、右ストップスイッチ42オフ:通常モードに移行
3)左ストップスイッチ42オフ、右ストップスイッチ42オン:省電力モードに移行
4)左ストップスイッチ42オン、右ストップスイッチ42オン:モード移行なし
また、情報処理は、以下の通りである。
ステップS416において、設定キースイッチ52がオフであると判断されたときは、入力ポート0のレベルデータを取得する。そして、入力ポート0のレベルデータをAレジスタに記憶する。
次に、入力ポート0のレベルデータ(Aレジスタに記憶したデータ)と、「10100000」とをAND(論理積)演算し、演算結果をAレジスタに記憶する。
入力ポート0のD5ビットが左ストップスイッチ42の信号であり、D7ビットが右ストップスイッチ42の信号である。よって、入力ポート0のレベルデータと、「10100000」とをAND演算すれば、左又は右ストップスイッチ42がオンであるか否かのデータを作成することができる。
次に、Aレジスタに記憶したデータを、第2制御コマンドデータとするために、演算結果を1桁右にシフトする。たとえば、Aレジスタ値が「10100000」であったとき(左及び右ストップスイッチ42オン時)は、「01010000」となる。また、Aレジスタ値が「10000000」であったとき(右ストップスイッチ42オン時)は、「01000000」となる。さらにまた、Aレジスタ値が「00000000」であったとき(左及び右ストップスイッチ42オフ時)は、「00000000」のままである。
このように制御するのは、本実施形態では、メイン制御基板60からサブ制御基板80に送信する制御コマンドは、第1制御コマンドと第2制御コマンドとからなり、サブ制御基板80は、受信したコマンドのうち、最上位ビットが「1」であるか「0」であるかによって、第1制御コマンドであるか第2制御コマンドであるかを判断する。本実施形態では、最上位ビットが「1」の制御コマンドは第1制御コマンドであり、最上位ビットが「0」の制御コマンドは第2制御コマンドである。したがって、最上位ビットを「0」にするために、ビット値を右側に一桁シフトを行う。
そして、ステップS418における設定値表示終了時の出力要求セットにおいて、Aレジスタ値をEレジスタに記憶する。本実施形態では、設定値表示終了時の制御コマンドのうち、第1制御コマンドはDレジスタに記憶され、その値は「10001111」(8F(H))である。また、第2制御コマンド(Eレジスタ値)は、左及び右ストップスイッチ42のオン/オフに応じて、
1)01000000(40(H))(右ストップスイッチ42オン時)
2)00010000(10(H))(左ストップスイッチ42オン時)
3)01010000(50(H))(左及び右ストップスイッチ42オン時)
4)00000000(0(H))(左及び右ストップスイッチ42オフ時)
のいずれかとなる。
そして、ステップS419における制御コマンドセット1において、Dレジスタ値を第1制御コマンドデータとしてセットし、Eレジスタ値を第2制御コマンドデータとしてセットする。
そして、これらのデータがサブ制御基板80に送信されると、サブ制御基板80は、通常モードであるか省電力モードであるかに応じて、それぞれ所定のパターンで、遊技待機中の演出ランプ21の点灯を制御する。
図50は、図39のステップS56におけるメダル管理処理(MS_MEDAL_CHK)を示すフローチャートである。
図50において、ステップS211では、メイン制御基板60は、ブロッカ信号がオンであるか否かを検知する。ブロッカ信号がオンであるときはステップS212に進み、ブロッカ信号がオンでないときはステップS213に進む。ここで、「ブロッカ信号がオン」であるというのは、ブロッカ47によりメダル通路が形成されている場合に相当する。本実施形態では、メダル管理フラグ(_FL_MEDAL_STS )のD2ビットのデータがオンであるか否かを検知する。
ステップS212では、メイン制御基板60は、投入センサ信号に係るデータがオンであるか否かを検知する。ここでは、入力ポート2レベルデータのD1又はD2ビットのいずれかが「1」であるか否かを判断する。投入センサ信号に係るデータがオンであると判断したときは、メダルの手入れ投入を意味するので、ステップS222(MS_INSERT_CHK :図51)に進み、メダルの手入れ時のチェック処理を実行する。これに対し、オンでないと判断したときは、ステップS213に進む。
ステップS213では、1ベットスイッチ40a、3ベットスイッチ40bのベット操作、精算操作の受付けが可能であるか否かをチェックする要求をセットする。そして、次のステップS214において、これらの操作受付けが可能であるか否かをチェックする。
次にステップS215に進み、メイン制御基板60は、操作受付けが可能であるか否かを判断する。可能であると判断したときはステップS216に進み、可能でないと判断したときは本フローチャートによる処理を終了し、メイン処理に戻る。
上記のステップS213〜S215の処理により、ベット処理又は精算処理を行う前に、1ベットスイッチ40a、3ベットスイッチ40b及び精算スイッチ43の操作受付けが可能な状態であるか否かを判断し、可能な状態である場合のみ、ベット処理又は精算処理に移行するようにしている。たとえば、上記のステップS213〜S215の処理により、入力ポート0レベルデータ、及び入力ポート0立ち上がりデータを読み込み、入力ポート0レベルデータと入力ポート0立ち上がりデータとが一致していないときに、操作受付可能ではないと判断している。
ステップS216では、ベットスイッチ信号及び精算スイッチ信号の確認要求をセットする。ここでは、入力ポート0立ち上がりデータ(_PT_IN0_UP)を読み込む。
次のステップS217では、ステップS216での確認に基づき、1ベットスイッチ40a、3ベットスイッチ40b又は精算スイッチ43のうち、いずれかの信号の立ち上がりがあるか否かを判断する。ここでの判断は、ステップS213で読み込んだ入力ポート0立ち上がりデータのうち、D0、D1、D2ビットが「1」であるか否かを判断する。
具体的には、たとえば読み込んだ入力ポート0立ち上がりデータと、「00000111」(定義データ)とをAND演算し、D3〜D7ビットをクリアする。そして、演算結果が「0」であるか否かを判断する。
演算結果が「0」であるときは、いずれの信号の立ち上がりもないと判断し(すなわち、1ベットスイッチ40a、3ベットスイッチ40b及び精算スイッチ43のいずれも操作の変化がないと判断し)、本フローチャートによる処理を終了してメイン処理に戻る。
ステップS217で、演算結果が「0」でないと判断したとき、すなわちいずれかの信号の立ち上がりがあると判断されたときはステップS218に進む。ステップS218では、スタートスイッチ41の受付け許可フラグをクリアする。この処理は、上述したメダル管理フラグのD0ビットを「0」にする処理である。メダル管理フラグのD0ビットが「0」のときは、スタートスイッチ41は有効にはならない(操作されても無効となる)ことを示すために、遊技開始LED73dを消灯する。一方、メダル管理フラグのD0ビットが「1」のときは、スタートスイッチ41が有効となっていることを示すために、遊技開始LED73dを点灯する。なお、遊技開始LED73dの点灯/消灯の実際の出力は、割込み処理(図64のステップS606)で実行される。
したがって、1ベットスイッチ40a、3ベットスイッチ40b又は精算スイッチ43のうち、いずれかの信号に変化があったときは、スタートスイッチ41を受付けを許可しないことを報知するために、メダル管理フラグのデータを更新してから、1ベットスイッチ40a、3ベットスイッチ40b又は精算スイッチ43の操作に基づく処理(図50中、精算処理(MS_MEDAL_RET)、又は貯留ベット処理(MS_BET_IN ))を実行する。
なお、スタートスイッチ41に基づく処理(たとえば役抽選処理等)は、メイン処理で実行され、精算処理や貯留ベット処理もメイン処理で実行されることから、たとえば精算処理中にスタートスイッチ41に基づく処理が実行されないように構成されている。
次にステップS219に進み、メイン制御基板60は、精算スイッチ43信号に係るデータの確認要求をセットする。ここでの処理は、たとえば入力ポート0立ち上がりデータのD0ビットが「0」か「1」かを確認する処理である。
そして、次のステップS220で、メイン制御基板60は、ステップS219での確認に基づき、精算スイッチ43信号の立ち上がりがあるか否かを判断する。ここでの処理は、たとえばD0ビットが「0」であるときは、精算スイッチ43信号に係る立ち上がりデータがないと判断し、D0ビットが「1」であるときは、精算スイッチ43信号に係る立ち上がりデータを有すると判断する。
精算スイッチ43信号の立ち上がりがあると判断したときはステップS221に進み、精算処理(MS_MEDAL_RET:図57)を実行する。一方、精算スイッチ信号の立ち上がりがないと判断したときは、ベットスイッチ信号の立ち上がりがあることを意味するので、ステップS223に進み、貯留ベット処理(MS_BET_IN :図55)を実行する。
以上のメダル管理処理において、ステップS212で投入センサ信号に係るデータがオンであるか否かを判断し、オンであるときは手入れメダルチェックに進み、オンでないと判断したときは、ベットスイッチ40信号又は精算スイッチ43信号に係るデータがオンであるか否かを判断する。
したがって、ベットスイッチ40や精算スイッチ43よりも、物理的なメダルの投入を優先的にチェックするので、メダルの飲み込みを防止することができる。
ここで、「ベットスイッチ40や精算スイッチ43よりも、物理的なメダルの投入を優先的にチェックする」とは、図39のステップS53〜S58をループしているときであって、かつブロッカ信号がオンの状況下において、割込み処理によって各入力ポートに係るRWM61のデータが更新され、入力ポート2レベルデータのD1又はD2ビットのいずれかが「1」、及び入力ポート0立ち上がりデータのD0、D1又はD2ビットのいずれかが「1」のときに、「手入れメダルチェック(ステップS222)」が「精算処理(ステップS221)」や「貯留ベット処理(ステップS223)」よりも実行されやすいプログラム順序やプログラム処理を指す。
また、ステップS220では、精算スイッチ43の立ち上がりデータを確認し、続く処理の実行(精算処理又はベット処理)を判断している。
この理由の1つとして、本実施形態では貯留ベット処理を実行するためのスイッチとして1ベットスイッチ40a、3ベットスイッチ40bの2つのスイッチを備えているのに対し、精算処理を実行するためのスイッチとしては精算スイッチ43の1つしか備えていない。そのため、入力ポート0立ち上がりデータのうち、D0ビット(特定ビット)がオンか否かを判断するだけで、精算処理又は貯留ベット処理の判断が可能となる。換言すると、「D1ビット又はD2ビットがオン?」と判定するより処理が簡素化され、プログラム容量が削減される。
図51及び図52は、図50のステップS222におけるメダルの手入れ時のチェック処理(MS_INSERT_CHK )を示すフローチャートである。図52は、図51に続くフローチャートである。
図51において、ステップS231では、メイン制御基板60は、スタートスイッチ41の受付け許可フラグ(上述したように、メダル管理フラグのD0ビット)をクリアする。
次にステップS232に進み、メイン制御基板60は、投入センサ1(48a)信号に係るデータがオンであるか否かを判断する。
投入センサ1信号に係るデータがオンであるときはステップS233に進み、オンでないとき(投入センサ2信号に係るデータがオンであるとき)はステップS238に進む。ステップS233では、投入センサ1の通過チェック時間(割り込み回数が64、約143ms)をセットする。ここで、投入センサ1によりメダルが検知されると投入センサ1信号に係るデータがオンとなるが、その後、所定時間を経過しても投入センサ1信号に係るデータがオフにならないときは、メダル詰まり等が考えられるので、投入センサ1の通過チェック時間を計測する。
次にステップS234に進み、メイン制御基板60は、ステップS232と同様にして、投入センサ1及び2信号に係るデータがオフであるか否かを判断する。投入センサ1及び2信号に係るデータがオフであると判断したときは本フローチャートによる処理を終了する。
ここで、ステップS232で投入センサ1信号に係るデータがオンになった後、ステップS234で投入センサ1信号に係るデータがオフと判断されることは稀であるが、ノイズやメダルセレクタ45内でメダルが暴れる等により投入センサ1信号に係るデータが一時的にオンとなり、ステップS232でそのオンが検出される場合がある。そして、ノイズやメダルセレクタ45内でメダルが暴れる等により投入センサ1信号に係るデータが一時的にオンとなっても、ステップS234の処理により、ステップS235以下に進まないようにしている。つまり、このような現象が発生しても、エラーと判定してエラー報知等を行わないので、遊技をスムーズに進行することができる。
ステップS234において、投入センサ1及び2信号に係るデータがオフでないと判断したときはステップS235に進む。ステップS235では、投入センサ1及び2信号に係るデータがオンであるか否かを判断する。投入センサ1及び2信号に係るデータがオンであると判断したときはステップS240に進み、オンでないと判断したときはステップS236に進む。
ステップS236では、メイン制御基板60は、投入センサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS237に進み、オンでないと判断したときはステップS238に進む。
ステップS237では、メイン制御基板60は、投入センサ1の通過チェック時間が経過したか否かを判断する。すなわち、ステップS233でセットした時間が所定時間を経過したか否かを判断する。通過チェック時間を経過したと判断したときはステップS248に進み、通過チェック時間を経過していないと判断したときはステップS234に戻る。
ステップS232において投入センサ1信号に係るデータがオンでないと判断されたとき、又はステップS236において投入センサ1信号に係るデータがオンでないと判断されてステップS238に進むと、メイン制御基板60は、メダルの不正通過エラーの表示要求をセットする。このメダル不正通過エラーは、本実施形態では「CPエラー」と称し、獲得数表示LED72に「CP」と表示する制御処理を実行する。そしてステップS239に進み、エラー表示(図61;MS_ERROR_DSP)に移行する。
また、ステップS235において投入センサ1及び2信号に係るデータがオンであると判断され、ステップS240に進むと、メイン制御基板60は、投入センサ2の通過チェック時間(割り込み回数が、約143ms)をセットする。次にステップS241に進み、メイン制御基板60は、投入センサ2信号に係るデータがオンであるか否かを判断する。投入センサ2信号に係るデータがオンであるときはステップS245に進み、オンでないときはステップS242に進む。ステップS242では、メイン制御基板60は、投入センサ1及び2信号に係るデータがオンであるか否かを判断する。オンであるときはステップS243に進み、オンでないときはステップS238に進む。
ステップS243では、メイン制御基板60は、投入センサ2の通過チェック時間が経過したか否かを判断する。すなわち、ステップS240でセットした時間が所定時間を経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときはステップS248に進み、通過チェック時間が経過していないと判断したときはステップS244に進む。ステップS244では、メイン制御基板60は、投入センサ1の通過チェック時間が経過したか否かを判断する。投入センサ1の通過チェック時間が経過したと判断したときはステップS248に進み、通過チェック時間が経過していないと判断したときはステップS241に戻る。
ステップS241において投入センサ2信号に係るデータがオンであると判断され、ステップS245に進むと、メイン制御基板60は、投入センサ1及び2信号に係るデータがオフであるか否かを判断する。投入センサ1及び2信号に係るデータがオフであると判断したときは図52のステップS249に進み、オフでないと判断したときはステップS246に進む。ステップS246では、メイン制御基板60は、投入センサ2信号に係るデータがオンであるか否かを判断する。
投入センサ2信号に係るデータがオンでないと判断したときはステップS238に進み、オンであると判断したときはステップS247に進む。ステップS247では、メイン制御基板60は、投入センサ2の通過チェック時間が経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときはステップS248に進み、通過チェック時間が経過していないと判断したときはステップS245に戻る。
ステップS248に進むと、メダル滞留エラーの表示要求をセットする。メダル滞留エラーとは、投入センサ1や2信号に係るデータが、通過チェック時間の経過後もオンの状態となり、メダル通路にメダルが滞留していることを意味するので、そのエラーを表示するためである。このメダル滞留エラーは、本実施形態では「CEエラー」と称し、獲得数表示LED72に「CE」と表示する制御処理を実行する。そしてステップS239に進み、エラー表示に移行する。
ステップS245において投入センサ1及び2信号に係るデータがオフであると判断し、図52のステップS249に進むと、メイン制御基板60は、メダル異常投入エラーの表示要求をセットする。ここで、メダル異常投入エラーとは、通路センサ46と投入センサ1、2の通過異常があったことを示すエラーである。メダル異常投入エラーは、本実施形態では「C1エラー」と称し、このメダル異常投入エラーが発生したときは、獲得数表示LED72に「C1」と表示する制御処理を実行する。
次にステップS250に進み、メイン制御基板60は、投入監視カウンタの値を「1」減算する。ここで、投入監視カウンタとは、上述したように、通路センサ46がメダルを検知すると、「+1」とし、投入センサ1及び2がメダルを検知すると、「0」とするカウンタである。すなわち、正常時には、「+1」と「0」とを繰り返す。
次にステップS251に進み、メイン制御基板60は、投入監視カウンタの値が「0」〜「3」の範囲であるか否かを判断する。当該範囲内であると判断したときはステップS252に進み、範囲内でないと判断したときは、図51のステップS239に進み、上記と同様にエラー表示に移行する。
たとえば、当該カウンタの値が「−1」となるのは、通路センサ46を通過せずに投入センサ1、2を通過した場合が挙げられる。
また、当該カウンタの値が「+4」となるのは、通路センサ46を通過したメダルが投入センサ1、2を通過する前に滞留している場合が挙げられる。
ステップS252では、メダル限界枚数をセットする(MS_MMAX_SET :図48)。次にステップS253に進み、ベットメダル(現時点でベットされているメダル枚数)の読み込みを実行する(S_PLAYM_READ:図44)。
次のステップS254では、貯留枚数の読み込みを実行する(S_CREDIT_READ :図45)。
次にステップS255に進み、メイン制御基板60は、現時点でベットされているメダル枚数及び貯留枚数の合計数を算出する。次のステップS256では、メダルの投入を有効とした後に、その後のメダル投入は不可能であるか否かを判断する。本実施形態では、
「現在のベット枚数」+「現在の貯留枚数」−49=「メダル限界枚数」
という式が成立するか否かを演算する。
ここで、「現在のベット枚数」とは、現在通過したメダルを加算する前のメダル枚数を指す。たとえば、現在のベット数が「2」であり、現在の貯留数が「50」であるとき、メダル限界枚数は「3」となり、この式が成立するので、現在通過したメダルの投入後は、その後のメダル投入は不可能であると判断する。
そして、投入不可能と判断したときはステップS257に進んでブロッカ47をオフにする処理を実行する(MS_BLOCKER_OFF:図53)。そしてステップS258に進む。一方、投入可能と判断したときは、ステップS257をスキップしてステップS258に進む。
そして、ブロッカ信号がオンであるときは、投入センサ1及び2を通過するメダル通路を形成させ、オフであるときは、メダル投入口44から投入されたメダルを払出し口14から返却するメダル通路を形成する。
次のステップS258では、メイン制御基板60は、メダル手入れ時の出力要求をセットし、次のステップS259では、制御コマンドセット1を実行する。
次のステップS260では、メイン制御基板60は、現時点でメダルのベット枚数が限界枚数(上限枚数)であるか否かを判断する。ベット枚数が限界値であると判断したときはステップS262に進み、貯留(クレジット)枚数の加算処理(MS_CREDIT_ADD :図54)を実行する。これに対し、ベット枚数が限界枚数でないと判断したときはステップS261に進み、メダル1枚のベット加算処理を行う(MS_MEDAL_INC:図47)。
図53は、ブロッカオフの処理(MS_BLOCKER_OFF)を示すフローチャートである。上述したように、メダルの手入れが有効になった後、メダルの手入れが不可能(受付け不可能)となったときは、ブロッカ47をオフにし、メダル投入口44から手入れされたメダルを払出し口14から返却するメダル通路を形成するように制御する。
先ず、ステップS271において、メイン制御基板60は、ブロッカ信号の確認処理を行う。ここでは、RWM61に記憶されたブロッカ信号及びホッパーモータ駆動信号データのD6ビット(ブロッカ信号データ)を確認する。
次にステップS272に進み、メイン制御基板60は、ブロッカ信号がオフ(上記のブロッカ信号データが「0」)であるか否かを判断する。オフでないと判断したときはステップS273に進み、オフであると判断したときは本フローチャートによる処理を終了する。すなわち、既にブロッカ47がオフであるときは、ブロッカ47をオフにする本処理を進めることなく本フローチャートによる処理を終了する。
ステップS272においてブロッカ信号がオフでないと判断し、ステップS273に進むと、メイン制御基板60は、この時点からの割込みを禁止する。上述したように、メイン処理(M_MAIN)の実行中には、2.235msごとに1回のタイマ割込み処理が入るが、ステップS273のような「割込み禁止」の記述があるときは、当該割込み禁止が解除されるまで、割込みを許可しないように制御する。
次のステップS274では、メイン制御基板60は、ブロッカ信号をオフにする処理を行う。この処理は、出力ポート3のD6ビットを「0」にするための処理である。具体的には、上記のブロッカ信号データ(D6ビット)を「0」にすることにより、次の割込み処理時に出力ポート3のD6ビットが「0」となる。さらに次のステップS275では、ブロッカ信号状態をオフにする処理を行う。この処理は、メダル管理フラグのD2ビットを「0」にする処理である。
そしてステップS276に進み、メイン制御基板60は、投入センサ2の異常入力の検出時間をセットする。
ここで、本実施形態では、ブロッカ47をオン(メダル通過)からオフ(メダル返却)にした後、所定時間を経過する前には投入センサ2のオン信号を検出しても投入センサ2の異常入力とは判断しないが、所定時間を経過した後に投入センサ2のオン信号を検出したときは投入センサ2の異常入力と判断する。具体的には、ブロッカ47が物理的にオフになった直後やオフに制御している途中でメダルが投入センサ48a(1)や48b(2)を通過することがあり得るため、そのような場合においてエラーとして検知しない(正常の通過とみなす)ようにするためである。このため、ステップS276のタイミングで、投入センサ異常入力の検出時間(500.64ms)をセットする。
ステップS276で投入センサ異常入力の検出時間をセットすると、ステップS277に進み、ステップS273で設定した割込み禁止の解除、すなわち割込みを許可する。そして、本フローチャートによる処理を終了する。
上記処理において、ステップS274〜ステップS276の処理間に割込みを発生させないのは、ブロッカオンの処理時と同様である。
すなわち、ブロッカ信号をオフにする処理、及びブロッカ状態信号をオフにする処理との間に割込みが入ると、一方がオフ、他方がオンの状態になってしまうが、そのような状態を避け、双方の値を一気に更新するために、割込み処理を禁止している。
また、ステップS274においてブロッカ信号をオフにし、ステップS276において投入センサ2異常入力検出開始時間をセットした後、ステップS277で割込み許可をするのは、以下の理由による。
ステップS274でブロッカ信号をオフにした後、ステップS276の処理が実行される前に割込み処理が実行されると、後述する図64のステップS607において入力ポート読込み処理が行われ、図66の入力エラーチェック処理に進んで、投入センサ2がメダルを検知したときはエラーを検出してしまう。そこで、ステップS276の処理の実行後に、ステップS277で割込み処理を許可している。
図54は、図52のステップS262における貯留枚数1枚加算(MS_CREDIT_ADD )を示すフローチャートである。
ステップS278では、貯留枚数の読み込みを実行する(S_CREDIT_READ ;図45)。すなわち、貯留枚数表示データ「_NB_CREDIT_LED」から貯留枚数表示データを読み込み、Aレジスタに記憶する。
次のステップS279では、貯留枚数に「1」を加算する処理(「+1」)を行う。この処理は、Aレジスタ値に「1」を加算する処理である。次のステップS280では、貯留枚数データを保存、すなわち演算後のAレジスタ値を貯留枚数表示データ「_NB_CREDIT_LED」に記憶する。そして、本フローチャートによる処理を終了する。なお、ステップS280では、貯留枚数データを10進数データに変換した値を貯留枚数表示データとして保存する。
図55は、図50のステップS223における貯留ベット処理(MS_BET_IN )を示すフローチャートである。
先ず、ステップS281において、メイン制御基板60は、メダル管理フラグのD7ビットを読み込むことにより、メダル限界フラグがオン(「1」)であるか否かを判断する。メダル限界フラグがオンであるときは、ベット枚数が既に最大枚数であることを意味するので、本フローチャートによるベット処理を終了する。すなわち、図50のステップS220においてベットスイッチ40の操作を検知し、「MS_BET_IN 」の処理に移行したとしても、ベット枚数が既に最大枚数であるときは、貯留ベット処理を行わない。
ステップS281においてメダル限界フラグがオンでないと判断したときはステップS282に進み、ベット(投入)要求枚数として「1」をセットする。この処理は、Bレジスタに「1」を記憶する。したがって、
Bレジスタ値=1
となる。
次にステップS283に進み、入力ポート0立ち上がりデータのD1ビットが「1」であるか否か、すなわち1ベットスイッチ40aが操作されたか否かを判断する。1ベットスイッチ40aが操作されたと判断したときはステップS288に進み、1ベットスイッチ40aが操作されていないと判断したときはステップS284に進む。
なお、ステップS283以前の処理(図50のステップS217、ステップS220)において、いずれかのベットスイッチ40の操作を検知しているので、ステップS283において「No」となったときは、3ベットスイッチ40bが操作されたことを意味する。
ステップS284では、メダル限界枚数(たとえば、通常遊技では3枚)をセットする(MS_MMAX_SET ;図48)。ここでは、Cレジスタにメダル限界枚数を記憶する。たとえば通常遊技であるときは、
Cレジスタ値=3
となる。
次のステップS285では、(ベット)メダルの読み込み処理を行う(S_PLAYM_READ;図44)。したがって、上述したように、メダルベット枚数データ(_NB_PLAY_MEDAL)の値を読み込み、読み込んだベットメダル枚数データをAレジスタに記憶する処理である。また、メダルベット枚数データの番地「F06D」をHLレジスタに記憶する。これにより、
HLレジスタ値=F06D
となる。
次に、ステップS286に進み、ベット要求枚数をセットする。この処理では、まず、Cレジスタ値(メダル限界枚数)をAレジスタに記憶する。Cレジスタ値がたとえば上記のように「3」であるときは、Aレジスタ値=「3」とする処理である。さらに、Aレジスタ値(この時点では、メダル限界枚数を示している)から、HLレジスタが示す番地のデータ(メダルベット枚数データ)を減算し、その結果をAレジスタに記憶する。たとえばAレジスタ値(メダル限界枚数)が「3」であり、メダルベット枚数データ(すでにベットされている枚数)が「1」であるとき、「3−1=2」により、Aレジスタ値は「2」に更新される。この値が、新たにベットとして加算されるメダル枚数となる。
次にステップS287に進み、ベット要求枚数修正処理を行う。すなわち、ステップS286で算出した値をベット要求枚数としてセットする処理である。具体的には、Aレジスタ値をBレジスタに記憶する処理を実行する。
上述したステップS282では、初期値として、ベット要求枚数を「1」(Bレジスタ値=「1」)にセットしたが、1ベットスイッチ40aの操作時にはそのままとし、3ベットスイッチ40bの操作時には、ステップS282でセットした「1」に代えて、ステップS286で演算した値を再セットするものである。
次に、ステップS288に進み、現時点における貯留枚数の読み込みを行う(図45;S_CREDIT_READ )。すなわち、「_NB_CREDIT_LED」の値を読み込み、読み込んだデータをAレジスタに記憶する。
次のステップS289では、メイン制御基板60は、メダルの貯留の有無を判断する。ステップS288で記憶したAレジスタ値が「0」であるときはメダルの貯留なしと判断し、Aレジスタ値が「0」でないときはメダルの貯留ありと判断する。
そして、メダルの貯留なしと判断したときは本フローチャートによる処理を終了し、メダルの貯留有りと判断したときはステップS290に進む。
ステップS290では、1ベットスイッチ40a信号の立ち上がりデータを有するか否か(入力ポート0立ち上がりデータのD1ビットが「1」であるか否か)を判断する。1ベットスイッチ40a信号の立ち上がりデータを有すると判断したときはステップS291に進み、1ベットスイッチ40a信号の立ち上がりデータを有さないと判断したときはステップS291をスキップしてステップS292に進む。
ステップS291では、1ベットスイッチ40a信号の立ち上がりデータをクリアする。すなわち、入力ポート0立ち上がりデータ(_PT_IN0_UP)のD1ビットを「0」にする処理を実行する。このようにして、ステップS289で貯留メダルありの場合には、1ベットスイッチ40a信号の立ち上がりデータの有無を判断し、立ち上がりデータを有するときは、そのデータをクリアした後、ベット処理を実行する。
上述したように、入力ポート0〜2の立ち上がりデータは、割込み処理によって生成され、記憶される。
一方、ベット処理を実行する場合には、割込み処理によって生成・記憶した1ベットスイッチ40aに係る立ち上がりデータを、メイン処理内でクリアする処理を実行する。
ここで、1ベットスイッチ40aに係る立ち上がりデータをクリアしなかった場合には、再度割込み処理が実行されるまで、1ベットスイッチ40aに係る立ち上がりデータ「1」が維持される。
この場合、次の割込み処理が実行されて1ベットスイッチ40aに係る立ち上がりデータが「0」に更新される前に、図50のメダル管理(MS_MEDAL_CHK)からステップS217で「Yes」となり、図55の貯留ベット処理(MS_BET_IN )が再度実行され、1ベットスイッチ40a信号の立ち上がりデータが「1」であることに基づいて、再度、1枚のベット処理が実行されてしまう。したがって、たとえば遊技者が1ベットスイッチ40aを操作して1枚のメダルをベットしようとしたとき、連続して2枚や3枚のメダルがベットされてしまう可能性がある。
このような不都合を回避するために、メダルの貯留がある場合には、ベット処理の開始前に、1ベットスイッチ40aに係る立ち上がりデータをクリアしている。
なお、本実施形態では、1ベットスイッチ40aに係る立ち上がりデータのみをクリアし、3ベットスイッチ40bが操作されたときには、3ベットスイッチ40bに係る立ち上がりデータをクリアする処理は実行していない。
3ベットスイッチ40bの操作に基づき3枚が貯留ベットされたときは、その後、ステップS296のメダル1枚加算において、メダル限界フラグがセットされる(図47のステップS182)。
これにより、仮に、上記と同様に、次に割込み処理が実行されるまで、3ベットスイッチ40b信号の立ち上がりデータ「1」が維持され、図50のメダル管理(MS_MEDAL_CHK)からステップS217で「Yes」となり、図55の貯留ベット処理(MS_BET_IN )が再度実行されると、ステップS281で「Yes」となり、貯留ベット処理は実行されないからである。
また、たとえば3ベットスイッチ40bが操作される前のベット枚数が「0」、貯留枚数が「2」であったときは、3ベットスイッチ40bの操作に基づいて、ベット枚数が「2」となる。このとき、ベット枚数は、未だ限界枚数となっていないので、メダル限界フラグは「1」にならない。
この状態において、3ベットスイッチ40b信号の立ち上がりデータがクリアされておらず、次の割込み処理が実行される前に、再度、貯留ベット処理が実行されると、ステップS281では、「No」となるが、ステップS289で「No」となるので、ステップS290以降の処理が実行されることはない。
このため、3ベットスイッチ40bに係る立ち上がりデータのクリアは、必ずしも必要でない(少なくとも1ベットスイッチ40aに係る立ち上がりデータをクリアすればよい)。
しかし、3ベットスイッチ40bに係る立ち上がりデータを「1」のままにしておくと、次に割込み処理が実行されるまで、3ベットスイッチ40b信号の立ち上がりデータが「1」であることに基づいて、貯留ベット処理が実行されてしまう(図55の処理に移行する)ことはたしかである。したがって、これを避ける場合には、3ベットスイッチ40b信号の立ち上がりデータについてもクリアしてもよい。3ベットスイッチ40b信号の立ち上がりデータをクリアする場合には、ステップS290の処理を、「1ベットスイッチ40a信号の立ち上がりデータを有するか否かの判断」に代えて、「3ベットスイッチ40b信号の立ち上がりデータのクリア処理」にすればよい。3ベットスイッチ40b信号の立ち上がりデータのクリア処理は、入力ポート0立ち上がりデータ(_PT_IN0_UP)のD2ビットを「0」にする処理である。
ステップS292に進むと、メダル貯留枚数(ステップS288で読み込んだ枚数)が、ベット要求枚数(ステップS282又はステップS287でセットした枚数)以上であるか否かを判断する。具体的には、Aレジスタ値(メダル貯留枚数)からBレジスタ値(ベット要求枚数)を減算する処理を実行し、「0」以上であるか否かを判断する。
そして、メダル貯留枚数がベット要求枚数以上であると判断したときはステップS294に進み、メダル貯留枚数がベット要求枚数以上でないと判断したときはステップS293に進む。
ステップS293では、メダル貯留枚数をセットする。この処理は、全貯留枚数をベット加算枚数に設定する処理である。すなわち、ステップS292で「No」のときは、貯留枚数がベット枚数に満たない場合であるので、この場合には全貯留枚数をベット加算枚数とする処理を行う。具体的には、Aレジスタ値をBレジスタに記憶する処理である。そしてステップS294に進む。
以上より、ステップS283で「Yes」であるとき(1ベットスイッチ40a操作時)は、ステップS282でセットしたベット要求枚数「1」がベット加算枚数とされ、その値がBレジスタに記憶される(Bレジスタ値=「00000001」)。
一方、ステップS287においてたとえばベット要求枚数として「3」がセットされ、ステップS292で「Yes」であるときは、ベット要求枚数「3」がベット加算枚数とされ、その値がBレジスタに記憶される(Bレジスタ値=「00000011」)。
また、ステップS287においてベット要求枚数として「3」がセットされたが、貯留枚数が「2」であるときは、ステップS292で「No」となり、ステップS293で「2」がベット加算枚数とされ、その値がBレジスタに記憶される(Bレジスタ値=「00000010」)。
このように、ベット加算枚数(ベット要求枚数)とは、ベットスイッチ40が操作されたときに演算結果に基づいて実際にベットされる枚数を指す。
ステップS294では、貯留ベット時の出力要求をセットする。具体的には、制御コマンドデータである「10(H)」をDレジスタに記憶し、Bレジスタ値をEレジスタに記憶する。ここで、Dレジスタ値は、貯留ベットに係ることを示す制御コマンドとなり、Eレジスタ値は、ベット加算枚数を示す制御コマンドとなる。
次にステップS295に進み、制御コマンドセット1を実行する。ここでの処理は、制御コマンドバッファに制御コマンドデータ(DEレジスタ値)を書き込む処理である。
次のステップS296では、メダル1枚の加算(ベット)処理を行う(図47;MS_MEDAL_INC)。このメダル1枚加算処理が実行されると、メダルメット枚数データ「_NB_PLAY_MEDAL」の値に「1」を加算する処理が行われる。
次にステップS297に進み、貯留枚数から1枚を減算する処理を行う(MS_CREDIT_DEC :後述する図56)。次のステップS298では、メイン制御基板60は、要求枚数のベットが終了したか否かを判断する。ここでは、Bレジスタ値(ベット要求枚数)から「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。たとえば、メダル1枚加算処理前のBレジスタ値が「00000011」(3)であるとき、メダル1枚加算処理により、Bレジスタ値は、「00000010」(2)に更新される。
そして、演算後のBレジスタ値が「0」であると判断したときは要求枚数のベットが終了したと判断し、演算後のBレジスタ値が「0」でないと判断したときは要求枚数のベットが終了していないと判断する。
要求枚数のベットが終了したと判断したときはステップS302に進み、終了していないと判断したときはステップSステップS299に進む。
ステップS299では、ブロッカ47をオフにする(MS_BLOCKER_OFF;図53)。次にステップS300に進み、待機時間をセットする。ステップS300では、約105msの待機時間をセットするために、割込み数のカウント値として「47」をセットする。次にステップS301に進み、一割込みごとにカウント値から「1」を減算していき、カウント値が「0」になるまでウェイト処理を実行する。そして、ウェイト処理の終了後、ステップS296に戻る。
上記の処理において、ステップS299でブロッカ47をオフにするのは、メダル1枚加算処理を繰り返すときに、ウェイト処理を設けているので、この間にメダルが手入れ投入されてしまい、メダルの飲み込みが発生してしまうことを避けるためである。
以上のようにして、2枚以上をベットするときは、メダル1枚加算処理(ステップS296)とステップS301におけるウェイト処理とを繰り返す。
なお、上記のようにウェイト処理を設ければ、たとえば3ベットスイッチ40bに基づいて3枚をベットするときに、一瞬で3枚がベットされてしまう(一瞬で投入表示LED73e〜73gが点灯してしまう)ことをなくすことができる。
ステップS298において要求枚数のベットが終了したと判断され、ステップS302に進むと、ブロッカをオンにする(図46)。そして、本フローチャートによる処理を終了する。
これにより、貯留ベット処理の終了後は、ブロッカ47がオンとなるので、メダルの手入れ投入が可能となる。
また、図55の処理では、1ベットスイッチ40aに係る立ち上がり信号をクリアした後、メダル1枚加算処理をベット加算枚数が「0」になるまで繰り返したが、これらの処理を逆にしてもよい。
具体的には、メダル1枚加算処理をベット加算枚数が「0」になるまで繰り返した後、ステップS302のブロッカオンの前又は後に、ステップS291における立ち上がりデータのクリア処理を実行してもよい。
本実施形態では、次のベット処理(再度、図55の処理)が実行される前までに、ベットスイッチ40(特に、1ベットスイッチ40a)の立ち上がりデータのクリア処理を実行すればよい。
図56は、図55のステップS297における貯留枚数から1枚を減算する処理(MS_CREDIT_DEC )を示すフローチャートである。
ステップS305では、貯留枚数の読み込みを実行する(図45;S_CREDIT_READ )。すなわち、貯留枚数表示データ「_NB_CREDIT_LED」から貯留枚数表示データを読み込み、Aレジスタに記憶する。
次のステップS306では、貯留枚数から「1」を減算する処理(「−1」)を行う。この処理は、図54のステップS279と逆の処理であり、Aレジスタ値から「1」を減算する。次のステップS307において、貯留枚数データを保存、すなわち演算後のAレジスタ値を貯留枚数表示データ「_NB_CREDIT_LED」に記憶する。そして、本フローチャートによる処理を終了する。なお、ステップS307では、ステップS280と同様に、貯留枚数データを10進数データに変換した値を貯留枚数表示データとして保存する。
図57は、図50のステップS221における精算処理(MS_MEDAL_RET)を示すフローチャートである。
先ず、ステップS311では、メイン制御基板60は、貯留枚数の読み込み処理(図45;S_CREDIT_READ )を行う。次のステップS312では、メイン制御基板60は、(ベット)メダルの読み込み処理(図44;S_PLAYM_READ)を行う。
次に、ステップS313に進み、メイン制御基板60は、作動状態フラグ(_FL_ACTION)をチェックする。続いて、ステップS314では、メイン制御基板60は、当該遊技がリプレイ作動時であるか否か(リプレイの作動状態フラグがオンであるか否か)を判断する。
ステップS314においてリプレイ作動時でないときはステップS316に進み、リプレイ作動時であるときはステップS315に進む。
ステップS315では、精算可能なベット数をクリアする。この処理は、ステップS312で読み込んだベット枚数を、リプレイ作動時には「0」にする処理である。
なお、本フローチャートに示すように、リプレイの作動による自動ベットを有するときであっても、その自動ベットを維持した状態で、貯留メダルの精算が可能である。
次のステップS316では、メイン制御基板60は、精算可能なメダルの有無を判断する。この処理は、ステップS311で読み込んだ貯留(クレジット)枚数と、ステップS312で読み込んだベット数とを「OR」演算し、精算可能なメダルの有無を判断する。なお、ステップS311で読み込んだ貯留枚数及びステップS312で読み込んだベット枚数(又はステップS315による処理後のベット枚数)は、いずれも、上述したようにレジスタに記憶されている。ここで、リプレイ作動時の場合には、ステップS315において精算可能なベットメダル枚数を「0」(クリア)にしているため、貯留枚数がある場合にのみ「Yes」となる。
ステップS316において精算可能なメダルありと判断したときはステップS317以降の処理に進むが、精算可能なメダルなしと判断したときは、本フローチャートによる処理を終了する。
ステップS317では、ブロッカ47をオフにする処理(図53;MS_BLOCKER_OFF)を行う。
次に、ステップS318に進み、メインCPU62は、精算開始時の出力要求をセットし、次のステップS319では制御コマンドセット1を実行する。
次のステップS320及びステップS321の処理は、上述したステップS313及びステップS314の処理と同一である。
そして、ステップS321において、リプレイ作動時であると判断したときはステップS324に進み、リプレイ作動時でないと判断したときはステップS322に進む。
ステップS322では、メダル(現在ベットされているメダル枚数)の読み込み処理(S_PLAYM_READ)(ステップS312と同じ)を行う。
次にステップS323に進み、メイン制御基板60は、ベットメダルの有無を判断する。ベットメダルありと判断されたときはステップS327以降の処理に進み、ベットメダルなしと判断されたときはステップS324以降の処理に進む。
ここで、ベットメダルありの場合には、ステップS327以降の処理を行うことによって、ベットメダルの精算処理を行う。これに対し、ベットメダルなしの場合には、ステップS324以降の処理を行うことによって、貯留メダル、すなわちクレジットされているメダルの精算処理を行う。
したがって、ベットメダル及び貯留メダルの双方を有する場合には、ベットメダルの精算を先に行う。
ステップS323からステップS324に進むと、メイン制御基板60は、精算表示LED73cを点灯する処理を行う。本実施形態では、貯留メダルの精算処理を行っている間は、精算表示LED73cを点灯させる。
ステップS324では、上述したステップS146と同様の処理を行う。具体的には、RWM61に記憶されているメダル管理フラグ(_FL_MEDAL_STS )中、D4ビット(精算処理中であるときに「1」)をオンにする処理である。
なお、精算表示LED73cを実際に点灯させる処理は、割込み処理でのLED表示制御(ステップS606)にて行う。
次にステップS325に進み、貯留メダルの精算処理(MS_CREDIT_RET )を行う(後述する図58)。この精算処理後は、ステップS326に進み、ステップS324で点灯させた精算表示LED73cの消灯処理を行う。この処理は、ステップS324とは逆の処理であり、上記のメダル管理フラグ中、D4ビット(精算処理中であるときに「1」)をオフ(「0」)にする処理である。そして、ステップS336に進む。
一方、ステップS323においてベットメダルありと判断され、ステップS327に進むと、メイン制御基板60は、メダル1枚の払出し処理(MS_1MEDAL_PAY )を行う(後述する図59〜図60)。
次にステップS328に進み、メイン制御基板60は、投入数を表示するLED(投入表示LED73e〜73g)のいずれか1つを消灯する処理を実行する。
たとえば、現時点で3枚のメダルがベットされているときは、投入表示LED73e〜73gの3個全てが点灯状態にある。そして、この状態でステップS328に進んだときは、3枚投入表示LED73gのみを消灯する(1枚投入表示LED73e及び2枚投入表示LED73fの点灯は維持)するように制御する。
また、1枚投入表示LED73e及び2枚投入表示LED73fが点灯している状態でステップS328に進んだときは、2枚投入表示LED73fのみを消灯する(1枚投入表示LED73eの点灯は維持)するように制御する。
さらにまた、1枚投入表示LED73eのみが点灯している状態でステップS328に進んだときは、1枚投入表示LED73eを消灯する(これにより、投入表示LED73e〜73gが全消灯となる)ように制御する。
また、ステップS328では、上述したステップS176〜S178と同様に、記憶している投入表示LED信号データを更新する処理を行う。上述のように、投入枚数表示LED信号データ(_PT_MEDAL_LED )は、投入数に応じて、
投入枚数表示LED信号データ(1枚投入時):10000000
投入枚数表示LED信号データ(2枚投入時):11000000
投入枚数表示LED信号データ(3枚投入時):11100000
となっている。
したがって、ステップS328の直前で、投入枚数表示LED信号データが3枚投入時の「11100000」であるときは、2枚投入時の投入枚数表示LED信号データとなるように、演算を行って「11000000」とする。
つまり、左にシフトする命令を出すことで、「11100000」→「11000000」となる(先述したローテート式ではない命令を用いている。)。
次のステップS329では、(ベット)メダルの読み込みを行う(S_PLAYM_READ;図44)。次にステップS330に進み、メダル枚数の減算処理を行う。この処理は、RWM61に記憶しているメダルベット枚数データ(_NB_PLAY_MEDAL)から「1」を減算する処理を行う。
次のステップS331では、メダル枚数表示の出力要求をセットする。この処理は、1枚のメダルを減算した後のメダル枚数の表示の要求である。次のステップS332では、メイン制御基板60は、制御コマンドセット1を実行する。
さらに、次のステップS333で(ベット)メダルの読み込みを行う(S_PLAYM_READ;図44)。このステップS333では、1枚減算後のメダル枚数が読み込まれる。
そしてステップS334に進み、メイン制御基板60は、ステップS323と同様に、ベットメダルの有無を判断する。ベットメダルありと判断されたときはステップS327に戻り、上記と同様に、メダル1枚の払い出し処理を行う。これに対し、ベットメダルなしと判断されたときはステップS335に進み、メイン制御基板60は、メダル限界フラグ(メダル管理フラグのD7ビット)をクリアする処理を行う。次にステップS336に進み、メイン制御基板60は、精算終了時の出力要求をセットする。次のステップS337では、メイン制御基板60は、制御コマンドセット1を実行する。そして次に、ステップS338に進んでブロッカ47をオンにする処理(MS_BLOCKER_ON ;図46)に移行する。
以上の精算処理において、ステップS318及びステップS319では、精算を開始したことをサブ制御基板80に送信するため、制御コマンドデータのセットを行う。
また、ステップS336及びステップS337では、精算を終了したことをサブ制御基板80に送信するため、制御コマンドデータのセットを行う。
図58は、図57のステップS325における貯留メダルの精算処理(MS_CREDIT_RET )を示すフローチャートである。
図58において、まず、ステップS341では、メインCPU62は、現時点における貯留枚数の読み込み処理(S_CREDIT_READ ;図45)を行う。次にステップS342に進み、メイン制御基板60は、ステップS341で読み込んだ結果に基づいて、貯留メダル、すなわちクレジットの有無を判断する。貯留メダルあり(ゼロフラグが「0」)と判断したときはステップS343に進み、貯留メダルなし(ゼロフラグが「1」)と判断したときは本フローチャートによる処理を終了する。
ステップS343では、貯留メダルから、メダル1枚の払出し処理(MS_1MEDAL_PAY )(後述する図59〜図60)を行う。次にステップS334に進み、貯留メダル枚数から1枚を減算する処理(MS_CREDIT_DEC ;図56)を行う。その後、ステップS341に戻る。つまり、貯留メダル精算では、貯留メダルが「0」となるまで処理が実行される。このとき、後述する図59〜図60の処理により正常に1枚のメダルが払い出されるよう制御されたときに、約100msの時間を要するように設計されている。いいかえれば、1枚のメダルを払い出す際に貯留枚数表示データが約100msの間隔で更新され、この間に割込み処理が実行されることにより、貯留数表示LED71の表示が1枚ずつ減算されることが視認できるように構成されている。
図59及び図60は、図57のステップS327等におけるメダル1枚の払出し処理(MS_1MEDAL_PAY )を示すフローチャートである。図60は、図59に続くフローチャートである。
図59のステップS351では、メイン制御基板60は、エラー未検出をセットする。すなわち、初期状態ではエラーを検出していない状態をセットする。次のステップS352では、メイン制御基板60は、メダル詰まりエラー表示要求をセットする。
なお、メダル詰まりエラーは、本実施形態では「HPエラー」と称し、このメダル詰まりエラーが発生したときは、獲得数表示LED72に「HP」と表示する処理を実行する。
次にステップS353に進み、メイン制御基板60は、エラーを検出したか否かを判断する。エラーを検出したと判断したときはステップS354に進んでエラー表示(図61;MS_ERROR_DSP)を行う。そしてステップS355に進む。一方、ステップS353でエラーを検出していないと判断したときはステップS355に進む。
ステップS355では、メイン制御基板60は、メダル払出し装置35の制御時間(たとえば2686割込み、約6000ms)をセットする。ここでは、制御時間の計時を開始する。次にステップS356に進み、ホッパーモータ36を駆動するための処理を行う。具体的には、ブロッカ信号及びホッパーモータ駆動信号データ中、ホッパーモータ駆動信号データを示すD7ビットを「1」にすることにより、次の割込み処理時に出力ポート3のD7ビットが「1」となる。次にステップS357に進み、メイン制御基板60は、ステップS355でセット後の制御時間の読み込みを行う。
そして、次のステップS358において、メイン制御基板60は、制御時間が所定時間を経過したか否かを判断する。所定時間を経過したと判断したときはステップS361に進み、所定時間を経過していないと判断したときはステップS359に進む。
ステップS361では、ホッパーモータ36の駆動信号をオフにするための処理を行う。具体的には、上述したホッパモータ駆動信号データを「0」にすることにより、次の割込み処理時に出力ポート3のD7ビットが「0」となる。そして、次のステップS362では、払出しセンサ1の検出時間(たとえば27割り込み、約60ms)をセットし、検出時間の計時を開始する。次にステップS363に進み、メイン制御基板60は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS355に進み、オンでないと判断したときはステップS364に進む。
ステップS364では、メイン制御基板60は、払出しセンサ1の検出時間が所定時間を経過したか否かを判断する。所定時間を経過したと判断したとき、すなわち払出しセンサ1信号に係るデータがオンでなく、かつ払出しセンサ1の検出時間が所定時間を経過したときは、メダルが払い出されていないこととなるので、ステップS365に進み、メイン制御基板60は、メダル空エラーの表示要求をセットする。メダル空エラーは、本実施形態では「HEエラー」と称し、このメダル空エラーが発生したときは、獲得数表示LED72に「HE」と表示する処理を実行する。そしてステップS353に進む。
一方、ステップS364において払出しセンサ1の検出時間が所定時間を経過していないと判断したときはステップS363に戻る。
ステップS358において制御時間が所定時間を経過していないと判断され、ステップS359に進むと、メイン制御基板60は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS360に進み、オンでないと判断したときはステップS357に戻る。
ステップS360では、払出しセンサ1の検出時間をセットする。この処理は、ステップS362と同様である。次にステップS366に進み、メイン制御基板60は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときはステップS352に進み、検出していないと判断したときはステップS367に進む。
ステップS367では、メイン制御基板60は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断されたときはステップS368に進み、オンでないと判断されたときはステップSステップS357に進む。
ステップS368では、メイン制御基板60は、払出しセンサ1及び2信号に係るデータがオンであるか否かを判断する。双方がオンであると判断されたときはステップS369に進み、双方がオンでないと判断されたときはステップS366に戻る。
ステップS369では、メイン制御基板60は、払出しセンサ2の検出時間をセットする。次に、図60のステップS370に進み、メイン制御基板60は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときはステップS352に進み、検出していないと判断したときはステップS371に進む。
ステップS371では、メイン制御基板60は、払出しセンサ2信号に係るデータがオフであるか否かを判断する。払出しセンサ2信号に係るデータがオフでないと判断したときはステップS370に戻り、オフであると判断したときはステップS372に進む。
ステップS372では、メイン制御基板60は、メダル払出しが無効であるか否かを判断する。無効であると判断したときはステップS357に進み、無効でないと判断したときはステップS373に進む。ステップS373では、メイン制御基板60は、払出しセンサ1信号に係るデータがオフであるか否かを判断する。オフであると判断したときはステップS374に進み、オフでないと判断したときはステップS370に戻る。
ステップS374では、残り払出し数(カウント値)を「−1」(「1」減算)する。次にステップS375に進み、メイン制御基板60は、メダル払出しを終了したか否かを判断する。メダル払出しを終了したと判断したときはステップS376に進み、終了していないと判断したときは本フローチャートを終了する。ステップS376では、メイン制御基板60は、ホッパーモータ36の駆動信号をオフにするための処理を行う。具体的には、上述したホッパモータ駆動信号データを「0」にすることにより、次の割込み処理時に出力ポート3のD7ビットが「0」となる。そして本フローチャートによる処理を終了する。
図61は、エラー表示処理(MS_ERROR_DSP)を示すフローチャートである。なお、図61のエラー表示処理は、復帰可能なエラーが発生したときの処理であり、リセットスイッチ53のオン等により復旧する。図61の処理が実行されるときのエラーは、スロットマシン10のホール関係者(管理者)によって解決可能なエラーであり、重大なエラーでない可能性が高いので、割込み禁止のような処理は行わない。
これに対し、上述した「復帰不可能エラー」時には、図61の処理は行われない。復帰不可能エラーの発生時には、上述した図38の処理が行われる(割込みが禁止される)。
図61において、先ず、ステップS381では、今回発生したエラー番号を保存する。具体的には、エラー発生前の所定のレジスタ(たとえばEレジスタ)の値をRWM61の所定領域(エラー番号データ)に保存する。なお、各種エラーは、後述する図68に表示している。
なお、復帰可能エラーは、本実施形態で挙げたエラーに限られるものではなく、他にも種類があるが、本実施形態では説明を省略する。
次のステップS382では、エラーが発生する前のブロッカ(45)信号とホッパーモータ(36)駆動信号の状態を退避させる(記憶する)。具体的には、上述したブロッカ信号データ及びホッパーモータ駆動信号データ(「0」又は「1」)を所定のレジスタ(たとえばCレジスタ)に記憶する。
次に、ステップS383に進み、ホッパーモータ(36)駆動信号をオフにする。具体的には、ホッパモータ駆動信号データを「0」にする。これにより、ホッパーモータ36が駆動中であるときは、次の割込み処理からその駆動が停止する。
次のステップS384では、ブロッカ47をオフにする(MS_BLOCKER_OFF;図53)。また、次のステップS385では、スタートスイッチ41の受付け許可フラグをクリアする。この処理は、メダル管理フラグのD0ビットをオフにする処理である。
次に、ステップS386に進み、獲得枚数の表示を退避する。この処理は、獲得数表示LED72に現時点で表示されている枚数を一時退避し(記憶しておき)、エラー要因の除去後に再表示させるためである。具体的には、RWM61の所定の記憶領域に記憶されている獲得枚数表示データを、所定のレジスタ(たとえばBレジスタ)に記憶する。
次のステップS387では、獲得数表示LED72にエラー情報を表示する処理を行う。具体的には、図61が実行される前に記憶されたDレジスタの値を記憶する。たとえばステップS381において、保存したエラーがCPエラーであるときは、獲得数表示LED72に「CP」と表示するための獲得枚数表示データ値を記憶する。
なお、エラー情報のLED表示は、後述する割込み処理(ステップS606)によって行われる。
そしてステップS388に進み、エラー表示開始時の出力要求をセットし、次のステップS389で制御コマンドセット1を実行する。具体的には、Dレジスタに、エラー表示開始を示す「01」を記憶し、Eレジスタに、エラー番号が記憶されているRWM61のエラー番号データ(CPエラーの場合は「05」;図68参照)を記憶する。ステップS388〜ステップS389により、エラー表示を開始すべき旨の制御コマンド(第1サブ制御手段80に送信すべきコマンド)がセットされる。
次にステップS390に進み、リセットスイッチ53の立ち上がりがあるか(操作されたか)否かを検知し続ける。この処理は、入力ポート1のD4ビットの立ち上がり信号がオンとなったか否かを判断することにより行う。リセットスイッチ53の立ち上がりがあったと判断されたときはステップS391に進み、リセットスイッチ信号の立ち上がりデータをクリアする。次にステップS392に進み、満杯検知信号の検査データをセットする。この処理は、満杯センサ38に係るエラーが発生しているか否か(サブタンク35bがメダルで満杯となっているか否か)を判断するための検査データをセットする処理である。
そして、次のステップS393に進み、満杯エラーであるか否かを判断する。満杯エラーであると判断されたときはステップS397に進み、満杯エラーでないと判断されたときはステップS394に進む。
ステップS394では、払出しセンサ37a及び37bの検査データをセットする。この処理は、払出しセンサ37a及び37bに係る異常を検知したか否かを判断するための検査データをセットする処理である。
次にステップS395に進み、払出しセンサ37a及び37bに係るエラーであるか否かを判断する。払出しセンサ37a及び37bに係るエラーであると判断したときはステップS397に進み、当該エラーでないと判断したときはステップS396に進む。
ステップS396では、投入センサ48a及び48b並びに通路センサ46の検査データをセットする。この処理は、これらのセンサに係る異常であるか否かを判断するための検査データをセットする処理である。
そして、ステップS397に進み、ステップS392、ステップS394、又はステップS396でセットした検査データに基づき、エラーチェックを行う。
次にステップS398に進み、ステップS397のエラーチェック結果に基づいて、エラー要因が除去されたか否かを判断する。除去されたと判断したときはステップS399に進み、除去されていないと判断したときはステップS390に戻る。ステップS399では、ステップS381でRWM61に保存したエラー番号データをクリアする。次にステップS400に進み、ステップS386で退避した(Bレジスタに一時記憶していた)獲得枚数を、RWM61の所定の記憶領域である獲得枚数表示データに復帰する。したがって、当該処理の以降に実行される割込み処理により、獲得数表示LED72の表示内容がエラー発生前に戻る。
そしてステップS401に進み、エラー表示終了時の出力要求をセットし、次のステップS402で制御コマンドセット1を実行する。ステップS401〜ステップS402により、エラー表示を終了すべき旨の制御コマンド(第1サブ制御手段80に送信すべきコマンド)がセットされる。
次のステップS403では、ステップS382で退避する前の状態に戻す処理を行う。したがって、ステップS382で記憶したエラー発生前のブロッカ信号とホッパーモータ駆動信号との状態を読み込む。具体的には、ステップS382で退避した所定のレジスタ(たとえばCレジスタ)の値に基づいて復帰させる。次にステップS404に進み、所定のレジスタ(たとえばCレジスタ)の値に基づいて、エラー発生前のホッパーモータ駆動信号データを更新する。次のステップS405では、所定のレジスタ(たとえばCレジスタ)の値に基づいて、エラー発生前のブロッカ信号データの値が「1」であったか否かを判断する。この値が「1」であったと判断したときはステップS406に進み、「1」でないと判断したときは本フローチャートによる処理を終了する。ステップS405では、ブロッカ47をオンにし(MS_BLOCKER_ON ;図46)、本フローチャートによる処理を終了する。
以上のようにして、図61のエラー処理では、エラー表示開始時及びエラー表示終了時に、サブ制御基板80に対して制御コマンドを送信するので、エラーが生じている間、サブ制御基板80(実質的には第2サブ制御基板90)は、発生したエラーに関する報知(演出ランプ21、スピーカ22及び画像表示装置23を用いた報知)を行うことができる。
図62は、図39中、ステップS59におけるスタートスイッチ受付け(MS_START_CTL)を示すフローチャートである。
ステップS431では、内蔵乱数をMPUのレジスタ(乱数ソフトラッチレジスタ)に記憶する。ここでは、乱数のラッチ(取得)を行うものであり、取得した乱数が当選役に相当する乱数であるか否かを判定するのは、図39のステップS60である。
次のステップS432では、スタートスイッチ受付け許可フラグをクリアする。すなわち、メダル管理フラグのD0ビットをクリアする(「0」にする)。
次にステップS433に進み、設定変更許可フラグをクリアする。この処理は、ステップS432と同じメダル管理フラグのD6ビットを「1」にする。これにより、設定変更が不可となる。
次のステップS434では、ブロッカ47をオフにする(図53)。すなわち、スタートスイッチ41の操作後は、メダルが投入されても受け付けないように制御する。次のステップS435では、ベットメダルの読み込み(S_PLAYM_READ)を実行する(図44)。ここで読み込んだベットメダル枚数をAレジスタに記憶する。次のステップS436では、メイン制御基板60は、リール回転開示の出力要求をセットする。ここでは、第1制御コマンド値として「13(H)」、第2制御コマンドとしてAレジスタ値をセットする。
次にステップS437に進み、ステップS435で読み込んだベットメダル枚数(Aレジスタ値)をEレジスタにセットする。
次のステップS438では、制御コマンドセット1を実行する。この処理は、ステップS436でセットした制御コマンドをバッファに記憶する処理である。
次にステップS439に進み、メイン制御基板60は、RWM61に記憶されている設定値が正常範囲(1〜6)であるか否かを判断する。正常範囲であると判断したときはステップS440に進み、正常範囲でないと判断したときはステップS445に進んで復帰不可能エラー処理(E6エラー)を実行する。
ステップS440では、ベットメダルの読み込み(S_PLAYM_READ)を実行する(図44)。そして、読み込んだベットメダル枚数をAレジスタに記憶する。なお、リプレイの入賞時には、自動投入されたメダル枚数がベットメダル枚数に設定される。次にステップS441に進み、読み込んだベットメダル枚数を2倍にする。この処理は、Aレジスタ値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する処理である。さらに、HLレジスタに、メダル投入信号出力回数(_CT_MEDAL_IN)のアドレス(F06F)を記憶する。
次のステップS442では、割込み処理を禁止する。次にステップS443に進み、メダル投入信号出力回数をセットする。この処理は、HLレジスタが示すアドレスに記憶されている値(メダル投入信号出力回数(_CT_MEDAL_IN))とAレジスタ(2倍後のベットメダル枚数)とを加算し、その加算後の値をAレジスタに記憶する処理である。さらに、Aレジスタの値を、HLレジスタが示すアドレス(F06F)に記憶する。これにより、メダル投入信号出力回数(_CT_MEDAL_IN)が更新される。そして、ステップS444にすすみ、割込み処理を許可する。
以上のステップS442〜ステップS444の処理は、上述した図19(B)の処理に相当するものである。すなわち、メダル投入信号出力回数の更新前後で割込みを禁止するものである。この割込み禁止により、上述した図19(A)に示すように、メダル投入信号の更新途中に割込み処理が実行され、メダル投入信号出力回数を更新する処理が実行されてしまうことを防止することができる。すなわち、メダル投入信号出力回数を更新する処理の終了後、割込み処理を許可してメダル投入信号の更新を許可するものである。
図63は、図39のステップS67に示す入賞によるメダル払出し処理(MS_WIN_PAY)を示すフローチャートである。
まず、ステップS451では、メダル払出し開始時の出力要求をセットする。この処理は、獲得(払出し)枚数を示すコマンドをレジスタに記憶する処理である。次のステップS452では、制御コマンドセット1(S_CMD_SET )を実行する。この処理は、RWM61のコマンドバッファにコマンドを記憶する処理である。
次にステップS453に進み、メダル枚数セットを実行する。この処理は、以下の2つに分けられる。この処理の1つ目として、Dレジスタに、メダル払出し枚数データ(_NB_PAY_MEDAL )を記憶する。2つ目として、Eレジスタに、メダル投入枚数データ(_NB_PLAY_MEDAL)を記憶する。次のステップS454では、作動フラグをチェックする。この処理は、作動状態フラグ(_FL_ACTION)の各ビットのオン/オフを判断する処理である。
次のステップS455では、1BB(特別役)作動時であるか否かを判断する。本実施形態では、作動状態フラグのD1ビットが「1」であるか否かにより、1BBの作動状態フラグを判断する。そして、1BBの作動状態フラグが「1」であると判断したときはステップS456に進み、1BBの作動状態フラグが「1」でないと判断したときはステップS457に進む。
ステップS456では、1BB作動時の処理を行う。この処理は、1BB作動時(1BB遊技)での獲得枚数のデータを更新する処理や、1BB作動時(1BB遊技)の獲得枚数のデータを取得し、1BB作動時(1BB遊技)での獲得枚数が上限値を超えたか否かを判断し、上限値を超えたと判断したときは、1BB作動時の獲得枚数の情報をクリアする処理等が挙げられる。
次のステップS457では、メダル払出し枚数のセット処理を行う。この処理は、Eレジスタ値(上述したように、メダル投入枚数データ(_NB_PLAY_MEDAL))をAレジスタに記憶する処理である。これにより、Aレジスタにはメダル投入枚数データ(_NB_PLAY_MEDAL)が記憶される。
次にステップS458に進み、リプレイが表示されたか否かを判断する。この処理は、図柄組合せ表示フラグ(_FL_WIN )のD0ビットが「1」であるか否かを判断する処理である。そして、リプレイ表示時であると判断したときはステップS460に進み、リプレイ表示時でないと判断したときはステップS459に進む。
ステップS459では、メダル払出し枚数のセット処理を行う。この処理は、Dレジスタ値(上述したメダル払出し枚数データ(_NB_PAY_MEDAL ))をAレジスタに記憶する処理である。これにより、Aレジスタにはメダル払出し枚数データ(_NB_PAY_MEDAL )が記憶される。
以上のステップS458及びステップS459の処理により、リプレイ入賞時には、Aレジスタ値は、ステップS457でセットしたメダル投入枚数データ(_NB_PLAY_MEDAL)値となり、リプレイの入賞時でないとき(すなわち小役入賞時)には、Aレジスタ値は、ステップS459でセットしたメダル払出し枚数データ(_NB_PAY_MEDAL )値となる。
次にステップS460に進み、Aレジスタに記憶されたメダル枚数を2倍にする処理を実行する。この処理は、Aレジスタ値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する処理である。また、HLレジスタに、メダル払出し信号出力回数(_CT_MEDAL_OUT )のアドレスを記憶する。
次にステップS461に進み、割込み処理を禁止する。次のステップS462では、メダル払出し信号出力回数をセットする。この処理は、HLレジスタが示すアドレスに記憶されている値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する処理である。この処理により、メダル払出し信号出力回数の値が更新される。次のステップS463では、割込み処理を許可する。
以上の処理により、メダル払出し信号出力回数の値の更新前後で割込み処理が禁止される。
この割込み禁止により、上述した図19(A)に示すように、メダル払出し信号の更新途中に割込み処理が実行され、メダル払出し信号出力回数を更新する処理が実行されてしまうことを防止することができる。すなわち、メダル払出し信号出力回数を更新する処理の終了後、割込み処理を許可してメダル払出し信号の更新を許可するものである。
さらに、本実施形態では、メダルの払出し枚数は最大で8枚に設定しているが、8枚の払出しに伴うメダル払出し信号の出力中に次の遊技による払出し枚数の更新が行われる可能性は低い(図20(B)で示したケース)。しかし、開発過程においてメダル払出し枚数の変更(たとえば、最大払出し枚数を8枚から15枚に変更する等)した場合に、メダル払出し信号が出力されている最中に払出し枚数が更新される可能性がある。ここで、本実施形態のように、割込み禁止処理を設ければ、開発途中でメダル払出し枚数が(たとえば最大15枚に)変更されたとしても、プログラムの変更を少なくすることができる。
また、ステップS462では、実際のメダルの払出し処理前に、メダル払出し信号出力回数をセットすることに意味がある。具体的には、メダル払出し信号出力回数は、リプレイ入賞時以外は、メダル払出し枚数データ(_NB_PAY_MEDAL )から作成する。このとき、メダル払出し信号出力回数をセットする前に、払出し処理(図63中、ステップS464以降)を行うと、メダル払出し枚数データが更新されてしまい、正しい回数分のメダル払出し信号が出力されなくなってしまうおそれがあるからである。
次のステップS464では、メダル払出しがあるか否かを判断する。ここでの処理は、Dレジスタ値(メダル払出し枚数データ(_NB_PAY_MEDAL ))から「1」を減算し、減算後の値が「0」であるか否かを判断する。「0」であるときは、メダル払出しがないと判断する。メダル払出しがあると判断したときはステップS465に進み、メダル払出しがないと判断したときは本フローチャートによる処理を終了する。
ステップS465では、貯留枚数読み込み(S_CREDIT_READ )を行う。次にステップS466に進み、メダル貯留枚数が限界値となっているか否かを判断する。貯留枚数が「50」であるときは貯留枚数が限界値になっていると判断してステップS470に進み、貯留枚数が限界になっていないと判断したときはステップS467に進む。
ステップS467では、貯留メダル加算時の待機時間をセットする。次にステップS468に進み、ステップS467でセットした時間だけウェイト処理を実行する。ウェイト時間の経過後、ステップS469に進み、貯留枚数1枚加算処理(MS_CREDIT_ADD )を実行する。そしてステップS470に進む。
ステップS466からステップS470に進むと、メダル1枚払出し処理(MS_1MEDAL_PAY )を実行する。以上の処理により、貯留枚数が限界値になるまでは貯留枚数を加算し、貯留枚数が限界であるときは、実際のメダルをホッパーから払い出す処理を実行する。
ステップS471では、獲得数表示を「+1」にする。この処理は、獲得数表示LED72に表示するデータを「+1」更新する処理である。たとえばそれまでの表示が「2」であるときは、表示を「3」に更新する処理に相当する。
次のステップS472では、メダル払出し枚数データ(_NB_PAY_MEDAL )から「1」を減算する処理を行う。次にステップS473に進み、メダル払出しが終了したか否かを判断する。この処理は、更新後のメダル払出し枚数データ(_NB_PAY_MEDAL )が「0」となったか否かを判断する。メダル払出し枚数が「0」であると判断したときはステップS474に進み、メダル払出し枚数が「0」でないと判断したときはステップS465に進む。
ステップS474では、メダル払出し終了時の出力要求をセットする。この処理は、メダル払出しの終了を示すコマンドをレジスタに記憶する処理である。次のステップS475では、制御コマンドセット1(S_CMD_SET )を実行する。この処理は、RWM61のコマンドバッファにコマンドを記憶する処理である。そして本フローチャートによる処理を終了する。
図64は、メイン制御基板60(メインCPU62)による割込み処理(I_INTR)を示すフローチャートである。上述したように、メイン制御基板60は、図39のメイン処理と並行して、2.235ms周期で、図64に示す割込み処理を行う。
先ず、ステップS601の割込み処理に移行すると、ステップS602では、初期処理として、レジスタ値の退避及び重複割込みの禁止処理を行う。ここでは、メイン処理で使用しているメインCPU62のレジスタを割込み処理で使用するため、現在のレジスタ値をRWM61のスタック領域に退避する。さらに、割込み処理中に次の割込み処理が開始されないように、割込み禁止フラグをオンにする。このようにするのは、たとえば電源断処理の実行中に割込み処理の実行要求が行われるときがあるからである。
次のステップS603では、電源断を検知したか否かを判断する。ここでは、(図示しない)メイン制御基板60上に設けられた電圧監視装置(電源断検出回路)により、電源電圧が所定値以下になったときには、図6中、入力ポート2のD0ビットに電源断検知信号が入力されるので、その信号の入力があったか否かを検知する。
そして、電源断を検知したときはステップS618の電源断処理(IS_POWER_DOWN ;後述する図65)に進み、電源断を検知していないと判断したときはステップS604に進む。
ステップS604では、制御用カウンタ値の更新を行う。たとえば割込み処理ごとに値を更新するカウンターが設けられているので(たとえば、割込み処理回数に基づき所定時間の経過をカウントする場合等が挙げられる)、そのカウンター値の更新を行う。
次のステップS605では、タイマ計測を行う。この計測は、前回の遊技開始時から今回の遊技開始時までに4.1秒を経過したか否か(ウェイト処理)の計測や、図51中、ステップS237の処理で投入センサ1の所定時間を経過したか否か等の計測である。いいかえれば、メイン処理でセットした時間を減算する処理を実行する。
次に、ステップS606に進み、LED表示制御を行う。ここでは、スロットマシン10の状態に応じて、設定値、貯留枚数、獲得枚数、エラー表示内容(エラーコード)等をLED71〜73を用いて点灯する処理である。
次にステップS607に進み、入力ポート0〜2の読み込み処理を行う。これにより、ベットスイッチ40、スタートスイッチ41、ストップスイッチ42等の操作が行われたか否かや、スイッチ信号、各種センサの入力信号が読み込まれ、入力ポート0〜2に基づくデータ(レベルデータ、立ち上がりデータ、立ち下がりデータ)を生成し、RWM61の所定の記憶領域に記憶する。次のステップS608では、内蔵乱数のチェック処理を行う。本実施形態では、内蔵乱数にエラーが発生するとオンになるフラグが設けられており、このフラグがオンであるか否かが判断される。
具体的には、たとえば役抽選用の乱数のクロック周波数異常(乱数更新が遅い場合等)を検知したときは、当該エラーフラグがオンにされる。より具体的には、MPUに入力されるSCLK(発振源:12MHz)とRCK(発振源:9MHZ)を備え、RCKに基づいて内蔵乱数を更新するものとする。このとき、「RCK<SCLK/2」を満たした場合にエラーフラグがオンになる。
そして、ステップS609に進み、内蔵乱数にエラーが発生しているか否か(エラーフラグがオンか否か)を判断し、エラーが発生していないと判断されたときはステップS610に進み、エラーが発生していると判断したときは、ステップS619に進んで、復帰不可能エラー処理(SS_ERROR_STOP )に移行する。このときのエラー表示内容は、「E7」となる。
ステップS610では、リール31の駆動制御を行う。この制御は、リール31単位(左、中、右)で行われるとともに、それぞれ動作状態に応じて、停止中、揺れ変動(後述)中、定速、加速、減速、減速開始、待機が挙げられる。リール31の駆動制御が終了するとステップS611に進み、ポート出力処理を行う。この処理は、(リール用)モータ32、ホッパーモータ36の励磁出力や、ブロッカ47の励磁出力を行う。
次のステップS612では、入力エラーチェック処理(IS_ERROR_CHK;後述する図66)を実行する。この処理は、各種センサに異常がないか否かを判断する処理である。次のステップS613では、制御コマンドの送信(IS_CMD_OUT;後述する図70)を行う。この処理は、たとえば出力要求セット及び制御コマンドセット1でセットされた制御コマンド(RWM61のコマンドバッファに記憶されている未送信の制御コマンド)をサブ制御基板80に送信する処理である。
具体的には、たとえば上述した図39中、ステップS69(出力要求セット)及びステップS70(制御コマンドセット1)において制御コマンドがコマンドバッファにセットされると、その時点以降の割込み処理(コマンドバッファが空の場合は、原則としては、その時点の次に到来する割込み処理)において、このステップS613によって制御コマンドがサブ制御基板80に送信される。
次のステップS614では、外部信号出力データ管理(IS_INF_CTL;後述する図71)を行い、次のステップS615では、外部信号出力処理(IS_COUNTER_OUT;後述する図72)を行う。これらの処理は、出力ポート6から出力する外部信号の出力データをセット(レジスタに記憶)し、図5に示す外部集中端子板100に対して信号を送信する処理である。
次のステップS616では、乱数更新処理を行う。この処理は、リール31の回転開始時のランダム遅延を行うとき(擬似遊技を終了し、通常遊技を開始するときのタイミングを決定するとき)等に、乱数を更新し、各リール31ごとに乱数値に基づく遅延処理を実行する。なお、擬似遊技、ランダム遅延については後述する。
次のステップS617では、ステップS602で退避したレジスタ値を復帰させ、次回割込みの許可を行う。具体的には、割込み処理開始時に記憶していたレジスタデータを復帰するとともに、次回の割込み処理を開始できるように、割込禁止フラグをオフにする。そして本フローチャートによる処理を終了する。
以上の処理に示すように、2.235msごとの割込み処理において、ステップS606の処理により、貯留数表示LED71、獲得数表示LED72、状態表示LED73(73a〜73g)、設定値表示LED63の点灯/消灯が制御される。
さらに、割込み処理ごとに、サブ制御基板80に未送信の制御コマンドがコマンドバッファに記憶されているときは、その送信処理が行われる。
なお、復帰不可能エラー処理時には、割込み処理を行わない。復帰不可能エラーは、通常では起こり得ない重大なエラーであり、異常データに基づく処理(入力ポートからのデータに基づくRWM61のデータ更新や、サブ制御基板80への制御コマンドの送信)等を実行させないようにするために、割込み自体を禁止している。
いいかえれば、復帰不可能エラー時には、メイン制御基板60からサブ制御基板80への制御コマンドの送信が行われないので、制御コマンドセット1を実行しても意味がない。
さらに、復帰不可能エラーの発生時に、制御コマンドのバッファに未送信のコマンドが格納されていた場合は、当該コマンドをサブ制御基板80に送信しない。バッファに格納されている制御コマンドが正しくないおそれがあるからである。
図65は、図64において、電源断を検知し、ステップS618に進んだときの電源断処理(IS_POWER_DOWN )を示すフローチャートである。
先ず、ステップS651では、全出力ポート(0〜6)の出力をオフにする。次にステップS652に進み、電源断処理済フラグ(図32のステップS13等を参照)をRWM61に記憶する。この処理は、電源断割込み処理が正常に実行されていることを示すデータ(「1」)を、RWM61に記憶する処理である。
次のステップS653では、制御コマンド読み込みポインタを偶数(1回目)に設定する。上述したように、制御コマンドを送信する場合には、第1制御コマンドと第2制御コマンド(2つの制御コマンド)とを送信する。また、後述するように、1の割込み処理により第1制御コマンドを送信する処理と第2制御コマンドを送信する処理とを、2回実行する。しかし、1回目の制御コマンドを送信した後、2回目の制御コマンドを送信する前に電源断が発生する場合がある。この場合には、再度、1回目の制御コマンドから送信し直す。
したがって、ステップS653の処理は、このような場合に、制御コマンドが記憶されているバッファのアドレスを指定する読み込みポインタを偶数に設定するものである。たとえば、読み込みポインタが「00011111」であったときは、「00011110」に設定する。また、「00011110」のように最初から偶数であるときは、そのままとする。この処理により、指定されるアドレスのバッファが常に偶数となり、第1制御コマンドが格納されているバッファとなる。これにより、簡素なプログラム処理により確実に2度制御コマンドを送信することが可能となる。
次のステップS654では、RWM61のチェックサムデータを算出する。この処理は、プログラムで使用する作業領域(RWM61)を含むチェックサムを算出するものであり、対象となるプログラム使用領域としては、プログラム作業領域、未使用領域、スタックエリア等が挙げられる。
そして、次のステップS655で、チェックサムの全範囲の算出が終了したか否かを判断し、終了していないと判断したときはステップS654に戻ってチェックサムの算出を継続する。一方、チェックサムの算出が終了したと判断したときはステップS656に進む。
ステップS656では、RWM61のチェックサムをRWM61に記憶する。ここで、RWM61に記憶するデータは、再度、RWM61のチェックサムを行うと、「0」を示すデータとなる値(補数データともいう)に加工している。これにより、プログラム開始時においてRWM61のチェックサムを実行する場合に、RWM61の値が正しいか否かは「0」か否かを判定するだけで済むため、プログラム処理の簡素化や処理時間の短縮につながる。そして、ステップS657に進み、リセット待ち状態にする。ここでは、電圧が所定値になると、メイン制御基板60に設けられた電圧監視装置(電源断検出回路)からリセット信号が出力されるので、そのリセット信号の出力を待つ状態となる。
ここで、電圧監視装置は、電源電圧が所定値以下になったときには、入力ポート2のD0ビットに電源断検知信号が入力され、その後、コンデンサと抵抗からなる回路によって所定時間経過した後にリセット信号がMPUに入力されるように構成されている。このとき、電源断時の処理が正常に実行されるような時間となるようにコンデンサや抵抗値が設計されている。
図66及び図67は、図64のステップS612における入力エラーチェック処理(IS_ERROR_CHK)を示すフローチャートである。図67は、図66に続くフローチャートである。また、図68は、メダルに関するエラーの番号、種類及び内容を示す図である。
図66及び図67において、ステップS901〜ステップS906は、C0エラーの有無を判断し、ステップS907〜ステップS912は、CHエラーの有無を判断し、ステップS914〜ステップSステップS927は、H0エラーの有無を判断している。
図66において、ステップS901では、投入関連エラーであるか否かを判断する。ここで、「投入関連エラー」とは、図68中、エラー番号「4」〜「8」のいずれかを指す。
ステップS901では、以下の処理を実行する。
(1)「_NB_ERR_** 」の値をAレジスタに記憶する。
(2)CレジスタにAレジスタ値を記憶する。
(3)Aレジスタから「_NB_ERR_CE」(=「4」)を減算し、減算結果をAレジスタに記憶する。
(4)Aレジスタ値から「5」を減算し、演算結果が「0」未満のときは、「C(キャリーフラグ)=1」とする。
(5)「C=1」であるとき、投入関連エラーであると判断する。
たとえばHPエラー時では、
Aレジスタ値=1
「1」−「4」=「253」(=「−3」)
「253」−「5」>0
よって、C≠1
となる。
また、CEエラー時には、
Aレジスタ値=4
「4」−「4」=「0」
「0」−「5」<0
よって、C=1
となる。
次のステップS902では、ブロッカ信号オンの検査を実行する。ここでは、ブロッカ信号及びホッパーモータ駆動信号データ(_PT_BLK_HPM )の値をAレジスタに記憶する。そして、Aレジスタ値と「01000000」とのAND演算を実行し、その演算結果をAレジスタに記憶する。この処理により、Aレジスタ値は、
ブロッカ信号オン時:「01000000」
ブロッカ信号オフ時:「00000000」
のいずれかとなる。
次のステップS903における「投入センサ異常入力検出開始時間有効検査」は、Aレジスタ値と、投入センサ異常入力検出開始時間データ(_TM1_MDL_SENS )とをOR演算する処理を実行する。
ここで、投入センサ異常入力検出開始時間データ(_TM1_MDL_SENS )は、上述したように、ブロッカ47がオフになったときに初期値として「224」をセットし、この値を一割込みごとに「1」ずつ減算し、「0」となったときに投入センサ48がメダルを検知しているときはエラーとする。
このように処理するのは、ブロッカ47がオフになった後、「224」割込み(約500ms)間は、投入センサ48がメダルを検知する可能性があるので、ブロッカ47がオフになった後、「224」割込み時間の経過後に、投入センサ48の入力を判断するようにしている。
次にステップS904に進み、投入センサ異常検出検査の有無を判断する。ここでは、ステップS903での演算結果が「0」(ゼロフラグが「1」)であるか否かを判断し、「0」であるときは「Yes」(投入センサ異常検出検査有り)と判断する。なお、投入センサ異常検出検査とは、ブロッカ47が正常にオフになっており、かつ、投入センサ異常入力検出開始時間データが「0」であるときに、投入センサ48のオン/オフを判断し、ゴト器具等が挿入されていないか等を判断するための検査である。
ステップS904で「Yes」であるときはステップS905に進み、ステップS904で「No」であるときはステップS907に進む。
ここで、ステップS904で「Yes」であるときは、Eレジスタに「00100000」を記憶する。このEレジスタ値は、ステップS906における入力エラーセット処理で使用する。
ステップS905では、投入センサ2(48b)の異常検出があるか否かを判断する。ここでは、入力ポート2レベルデータ(_PT_IN2_OLD )のD2ビットが「1」であるか否かを判断する。D2ビットが「1」であるときは「Yes」と判断し、ステップS906に進み、「No」と判断したときはステップS907に進む。
ここで、ステップS905において「Yes」ということは、ブロッカ47がオフ、かつ投入センサ異常入力検出開始時間データが「0」であるにもかかわらず、投入センサ48bがメダルを検知したこと(すなわち、不正等の異常であること)を意味する。
ステップS906では、入力エラーセット処理(IS_ERROR_SET;後述する図69)を行う。そしてステップS907に進む。
ステップS907では、通路センサ46の立ち上がりがあるか否かを判断する。ここでは、入力ポート1立ち上がりデータ(_PT_IN1_UP)のD0ビットが「1」であるか否かを判断する。D0ビットが「1」であるとき、「Yes」と判断してステップS908に進み、「No」と判断したときはステップS910に進む。
ステップS908では、投入監視カウンタを「+1」にする。この処理は、投入監視カウンタ(_CT_SEN_CHK )の値に「1」を加算する処理である。次にステップS909に進み、通路センサ滞留時間及びブロッカオフ時監視時間をセットする。この処理は、通路センサ滞留時間(_TM1_CH_CHK )に初期値「200」をセットし、かつ、ブロッカオフ時監視時間(_TM1_BLOFF_CHK)に初期値「45」をセットする処理である。これらの値は、割込み処理時ごとに「1」ずつ減算される。
次にステップS910に進み、通路センサ46がオンであるか否かを判断する。この処理は、入力ポート1レベルデータ(_PT_IN1_OLD )のD0ビットが「1」であるか否かを判断し、「1」であるときは「Yes」と判断してステップS911に進み、「1」でないときは「No」と判断してステップS913に進む。ここで、ステップS910で「Yes」であるときは、Eレジスタに「00010000」を記憶する。このEレジスタ値は、ステップS912における入力エラーセット処理で使用する。
ステップS911では、通路センサ46の滞留時間を経過したか否かを判断する。この処理は、通路センサ滞留時間(_TM1_CH_CHK )の値をAレジスタに記憶し、Aレジスタ値が「0」であるとき、「Yes」と判断する。ステップS911で「Yes」と判断したときはステップS912に進み、「No」と判断したときはステップS913に進む。
ステップS912では、入力エラーセット処理(IS_ERROR_SET)を行う。そしてステップS913に進む。
ステップS913では、HPエラー(エラー番号1)時であるか否かを判断する。ここでは、Cレジスタ値から「1」を減算し、その演算結果が「0」であるときはHPエラー時であると判断し、「0」でないときはHPエラー時でないと判断する。なお、Cレジスタには、ステップS901において、エラー番号に対応する値が記憶されている。
HPエラー時であると判断したときは図67のステップS928に進み、HPエラー時でないと判断したときはステップS914に進む。
ステップS914における「払出しセンサ1(37a)異常検出データRWMアドレスセット」では、払出しセンサ1異常検出データ(_WK_H0_CHK1 )をHLレジスタに記憶する処理を行う。
次のステップS915における「払出しセンサ2(37b)異常検出データRWM下位アドレスセット」では、払出しセンサ2異常検出データ(_WK_H0_CHK2 )をDEレジスタに記憶する処理を行う。
次のステップS916における「払出しセンサ1マスクデータ及び払出しセンサ1ビットセット」では、Bレジスタ及びCレジスタに「00001000」を記憶する処理を実行する。
次にステップS917に進み、ホッパーモータ36の駆動信号がオンであるか否かを判断する。この処理は、「ブロッカ信号及びホッパーモータ駆動信号データ(_PT_BLK_HPM )」のD7ビットが「1」であるか否かを判断し、「1」であるときは「Yes」と判断する。ステップS917で「Yes」のときはステップS918に進み、「No」であるときはステップS919に進む。また、ステップS917で「Yes」のときは、DEレジスタ値とHLレジスタ値とを交換する。これにより、HLレジスタ値は「払出しセンサ2異常検出データ(_WK_H0_CHK2 )」となり、DEレジスタ値は「払出しセンサ1異常検出データ(_WK_H0_CHK1 )」となる。このように処理するのは、ホッパーモータ駆動信号がオンであるときは払出しセンサ2を検査対象とし、ホッパーモータ駆動信号がオフであるときは払出しセンサ1を検査対象とするためである。
ステップS918における「払出しセンサ1,2マスク及び払出しセンサ2ビットセット」では、Bレジスタに「00011000」を記憶し、Cレジスタに「00010000」を記憶する処理を実行する。
次のステップS919では、払出しセンサチェック用データを生成する。この処理は、具体的には、以下の処理からなる。
(1)入力ポート2レベルデータ(_PT_IN2_OLD )をAレジスタに記憶する。
(2)Aレジスタ値とBレジスタ値とをAND演算し、その演算結果をAレジスタに記憶する。
具体的には、ステップS917で「Yes」のときは、Bレジスタ値は「00011000」であるので、この値と入力ポート2レベルデータ値とAND演算すると、D3及びD4ビット以外が「0」となる。
一方、ステップS917で「No」のときは、Bレジスタ値は、ステップS916でセットした値(00001000)になるので、この値と入力ポート2レベルデータ値とAND演算すると、D3ビット以外が「0」となる。
(3)Aレジスタ値からCレジスタ値を減算し、Aレジスタ値とCレジスタ値とが一致すると判断したとき、すなわち減算結果が「0」であるとき、ゼロフラグを「1」にする。このゼロフラグは後の処理で用いられる。
具体的には、ステップS917で「Yes」のときは、Aレジスタ値は、D3及びD4ビット以外が「0」であるので、この値からCレジスタ値(00010000)を減算し、減算結果が「0」であるとき(すなわちゼロフラグが「1」となるとき)は、払出しセンサ1(37a)がオフ、かつ払出しセンサ2(37b)がオンであるときを意味する。
また、ステップS917で「No」のときは、Aレジスタ値はD3ビット以外が「0」であるので、この値からCレジスタ値(00001000)を減算し、減算結果が「0」であるとき(すなわちゼロフラグが「1」となるとき)は、払出しセンサ1(37a)がオンであるときを意味する。
次のステップS920における「異常検出データクリア用データセット」では、Aレジスタに「0」を記憶する処理を実行する。次のステップS921における「チェックを行わないセンサの異常検出データクリア」では、DEレジスタ値が示す番地、すなわち「払出しセンサ1異常検出データ(_WK_H0_CHK1 )」又は「払出しセンサ2異常検出データ(_WK_H0_CHK2 )」のデータに、Aレジスタ値「0」を記憶する。
次にステップS922に進み、払出しセンサ(1又は2)の異常を検出したか否かを判断する。ここでは、上述のゼロフラグが「1」であるか否かを判断する。ゼロフラグが「1」であるときは異常を検出したと判断してステップS923に進む。一方、ゼロフラグが「1」でないときは異常を検出しないと判断してステップS925(図67)に進む。
上述したように、ゼロフラグが「1」となるのは、ステップS917で「Yes」のときは払出しセンサ1(37a)がオフ、かつ払出しセンサ2(37b)がオンであるときであり、ステップS917で「No」のときは、払出しセンサ1(37a)がオンであるときである。
ステップS923では、払出しセンサ(1又は2)の異常検出時間が経過したか否かを判断する。上述したように、ステップS917で「Yes」のときは払出しセンサ2(37b)の時間が対象となり、ステップS917で「No」のときは、払出しセンサ1(37a)の時間が対象となる。ここでの処理は、Aレジスタ値を、HLレジスタが示す番地、すなわち「払出しセンサ1異常検出データ(_WK_H0_CHK1 )」又は「払出しセンサ2異常検出データ(_WK_H0_CHK2 )」に記憶する。そして、Aレジスタ値から「4」を減算し、その演算結果が「0」未満であるときは、C(キャリーフラグ)=「1」とする。そして、C(キャリーフラグ)が「1」であるか否かを判断し、「1」でないときは「Yes」、「1」であるときは「No」と判断する。
たとえば、Aレジスタ値=「1」のとき、
1−4<0
となるので、C(キャリーフラグ)=「1」となり、「No」と判断する。
また、たとえばAレジスタ値=「4」のとき、
4−4=0
となるので、C(キャリーフラグ)≠「1」となり、「Yes」と判断する。
ステップS923で「Yes」のときはステップS925に進み、「No」のときはステップS924に進む。
ステップS924における「払出しセンサ1又は2異常検出データ+1データ生成」では、Aレジスタ値を「1」加算する処理を実行する。
次のステップS925における「払出しセンサ1又は2異常検出データ更新」では、Aレジスタ値をHLレジスタが示す番地に記憶する。そして、Aレジスタ値から「4」を減算し、その演算結果が「0」未満であるときは、C(キャリーフラグ)=「1」とする。また、Eレジスタに「01000000」を記憶する。このEレジスタ値は、ステップS927における入力エラーセット処理で使用する。
次にステップS926では、払出しセンサ1又は2の異常検出時間が経過したか否かを判断する。この処理は、C(キャリーフラグ)=「1」であるか否かを判断し、「1」でないときは「Yes」、「1」であるときは「No」と判断する処理を実行する。
ステップS926で「Yes」と判断したときはステップS927に進み、ステップS926で「No」と判断したときはステップS928に進む。ステップS927では、入力エラーセット処理(IS_ERROR_SET)を実行する。そしてステップS928に進む。
ステップS928では、前回の特定情報の取り出しを実行する。この処理は、HLレジスタに、特定情報フラグ(_FL_ERROR_INF )の番地(F00F)を記憶し、HLレジスタが示す番地のデータをCレジスタに記憶(退避)する処理を実行する。これにより、前回の特定情報がCレジスタに記憶される。
次にステップS929に進み、ドアスイッチ情報、設定ドアスイッチ情報、設定キースイッチ情報、及び設定/リセットスイッチ情報をセットする。ここでは、入力ポート1レベルデータ(_PT_IN1_OLD )のデータをAレジスタに記憶し、Aレジスタ値と「00011110」とをAND演算し(D0及びD5〜D7ビットを「0」にするため)、その演算結果をAレジスタに記憶する処理を実行する。
次のステップS930では、最新の特定情報を保存する。ここでは、HLレジスタが示す番地(特定情報フラグ(_FL_ERROR_INF ))にAレジスタの値を記憶する処理を実行する。次のステップS931における「電断復帰時以外の特定情報の出力要求セット」では、Dレジスタに「00110100」を記憶し、EレジスタにAレジスタ値を記憶する。
そして、ステップS932では、電源断からの復帰時であるか否かを判断する。この処理は、CレジスタのD6ビットが「0」であるか否かを判断する処理である。なお、Cレジスタ値は、ステップS928において、前回の特定情報が記憶されている。そして、そのD6ビットが「1」であるときとは、電源断復帰時送信ビットが「1」であることを意味する。
電源断復帰時であると判断したときはステップS933に進み、電源断復帰時でないと判断したときはステップS934に進む。
ステップS933では、電源断復帰時の特定情報の出力要求セットを行う。この処理は、Eレジスタ値のD6ビットを「1」にする処理である。なお、Eレジスタには、ステップSステップS930において、最新の特定情報が保存されている。そしてステップS934に進む。
ステップS934では、前回の特定情報と最新の特定情報との変化データをチェックする。この処理は、Aレジスタ値とCレジスタ値とをXOR演算し、その演算結果をAレジスタに記憶する処理である。
次にステップS935に進み、特定情報を送信すべきか否かを判断する。この処理は、Aレジスタ値が「0」であるか否かを判断し、「0」であるときは「No」(特定情報を送信しない)、「0」でないときは「Yes」(特定情報を送信する)と判断する。「No」であると判断されたときは本フローチャートによる処理を終了する。「Yes」と判断されたときはステップS936に進む。ステップS936では、制御コマンドセット2(SS_CMD_SET)を実行する。これにより、特定情報が第1制御コマンドデータ及び第2制御コマンドデータとしてRWM61に記憶される。そして本フローチャートによる処理を終了する。
ここで、電源断からの復帰時のときは、図36のステップS838で特定情報フラグのD6ビットが「1」とされるので、電源断からの復帰後の最初の割込み処理では、図67中、ステップS928で必ず前回の特定情報フラグのD6ビットが「1」となる。さらに、ステップS929及びS930の処理により、最新の特定情報フラグのD6ビットは「0」となる。これにより、電源断からの復帰後の最初の割込み処理では、特定情報フラグのD6ビットに変化ありと判断されるので、ステップS935では、「Yes」と判断される。
また、ステップS934及びS935では、前回の特定情報フラグと最新の特定情報フラグとで変化ビットを有する場合には、特定情報を送信することに決定されるので、たとえばドアスイッチ16がオフからオンになったような場合であっても、特定情報を必ずサブ制御基板80に送信することができる。また、変化ビットを有するときのみ特定情報をサブ制御基板80に送信するので、コマンドバッファが満杯になることを防止することができる。
本実施形態では、第1制御コマンドデータは、たとえば「B4(H)」のように所定値に定められたデータが用いられる。
また、第2制御コマンドデータは、特定情報フラグを表す1バイトデータである。
たとえば第2制御コマンドデータが「01001000」であるとき、電源断復帰時に(D6ビットが「1」)、設定キーは回っているものの(D3ビットが「1」)、ドアスイッチ及び設定ドアスイッチはオフ(D1及びD2ビットが「0」)であることを示すコマンドとなる。
なお、上記のような特定情報は、電断復帰時に限らず、特定情報に変化があった場合に送信するように構成されている。たとえば、設定変更時に、設定キーは回っているものの、ドアスイッチ及び設定ドアスイッチはオフであるとき、特定情報フラグは「00001000」となるので、この情報を送信することができる。
サブ制御基板80は、上記コマンドを受信したときは、受信したコマンドに応じて、エラー報知を行う。この点については後述する。
図69は、図66及び図67における「入力エラーセット処理(IS_ERROR_SET)」を示すフローチャートである。
ステップS941における「異常入力フラグ更新」では、以下の処理を実行する。
(1)異常入力フラグ(_FL_IN_ABNML)に記憶されているデータをAレジスタに記憶する。
(2)Aレジスタ値をDレジスタに記憶(退避)する。
(3)Aレジスタ値とEレジスタ値とをOR演算し、その演算結果をAレジスタに記憶する。なお、上述したように、入力エラーセット処理がたとえばステップS906の処理であるときは、ステップS904で「Yes」となったときにEレジスタに「00100000」が記憶される。
(4)Aレジスタ値を、異常入力フラグ(_FL_IN_ABNML)に記憶(更新)する。
次に、エラーを送信するか否かのデータと、送信する場合のコマンドを生成する。
(5)Dレジスタ値をAレジスタに記憶する。
(6)Aレジスタ値とEレジスタ値(ステップS904、S910、又はS925で設定された値)とをAND演算し、その演算結果をAレジスタに記憶する。
たとえば、ステップS910でEレジスタに「00010000」が記憶され、ステップS912で入力エラーセット処理を実行する場合を例に挙げると、Aレジスタ値が「01000000」であるとき、
Aレジスタ値:01000000
Eレジスタ値:00010000
Aレジスタ値:00000000(AND演算後)
となる。
また、たとえば、ステップS925でEレジスタに「01000000」が記憶され、ステップS927で入力エラーセット処理を実行する場合を例に挙げると、Aレジスタ値が「01010000」であるとき、
Aレジスタ値:01010000
Eレジスタ値:01000000
Aレジスタ値:01000000(AND演算後)
となる。
(7)Aレジスタ値とEレジスタ値とをXOR演算する。
たとえば、
Aレジスタ値:00000000
Eレジスタ値:00010000
Aレジスタ値:00010000(XOR演算後)
となる。
また、たとえば、
Aレジスタ値:01000000
Eレジスタ値:01000000
Aレジスタ値:00000000(XOR演算後)
となる。
次にステップS942に進み、異常入力エラー検出時であるか否かを判断する。ここでは、Aレジスタ値が「0」(ゼロフラグ=「1」)であるときは「No」と判断し、Aレジスタ値が「0」でないときは「Yes」と判断する。「No」と判断したときは本フローチャートによる処理を終了し、「Yes」と判断したときはステップS943に進む。
以上の処理により、ステップS941における異常入力フラグの更新前後で変化があった場合にのみ、ステップS942で異常入力エラーが検出される。
ステップS943では、エラー表示開始時の出力要求セット処理を行う。この処理は、Dレジスタに「00000001」を記憶する処理である。そして、ステップS944に進み、制御コマンドセット2(SS_CMD_SET)を実行する。これにより、制御コマンドデータがRWM61に記憶され、エラーコマンドがサブ制御基板80に送信される。そして本フローチャートによる処理を終了する。
なお、スタートスイッチ41の操作後にエラーを検出したときは、全リール31が停止した後(図39中、ステップS64とS65との間)にエラー処理(図61)を実行する。また、全リール31の停止後にエラーを検出したときは、図39中、ステップS58の直前にエラー処理を実行する。
換言すると、メイン制御基板60は、入力エラーチェック処理においてエラーコマンドを送信した後、すぐに遊技を停止させることはないものの、後述するように、サブ制御基板80は、すぐにエラー報知を行う。このように構成することにより、遊技者による遊技については特定の処理が実行されるまでは進行することができるとともに、エラー報知についてはすぐに実行されるため、ホール店員等はすぐにエラーが発生したことを知ることができる。これにより、エラー発生に伴う不利益を遊技者やホールに与えることがない効率的なプログラムを実現できる。
図70は、図64のステップS613における制御コマンド送信を示すフローチャートである。
先ず、ステップS661では、制御コマンドバッファのアドレスをセットする。メイン制御基板60からサブ制御基板80に送信する制御コマンドのデータは、RWM61内において、アドレスに対応付けられたバッファに記憶されている。また、どのアドレスの制御コマンドデータを読み込むかを指定する読み込みポインタを示すデータについても、アドレスに対応付けられてRWM61に記憶されている。このため、ステップS661では、制御コマンドバッファの先頭アドレスと、RWM61に記憶されている読み込みポインタを記憶しているアドレスを取得する。
次にステップS662に進み、読み込みポインタを取得する。この処理は、RWM61の読み込みポインタを記憶している領域から、現在の読み込みポインタを取得する処理である。
次のステップS663では、送信対象となる制御コマンドバッファのアドレスをセットする。この処理は、制御コマンドバッファの先頭アドレスと、読み込みポインタとから、次に読み込みを行うRWM61の制御コマンドバッファのアドレスを算出する処理である。
そして、ステップS664に進み、(送信すべき)制御コマンドを有するか否かを判断する。ステップS663でセットしたアドレスに制御コマンドデータがあるときは制御コマンドありと判断され、そのアドレスのデータが「0」であるときは制御コマンドなしと判断する。制御コマンドありと判断されたときはステップS665に進み、制御コマンドなしと判断されたときは本フローチャートによる処理を終了する。
ステップS665では、SCU3データレジスタにアドレスをセットする。本実施形態では、送信用の制御コマンドデータを保存する記憶領域として、SCU3データレジスタを使用しており、このレジスタのアドレスをセットする。
次にステップS666に進み、ステップS665でセットしたアドレス(SCU3データレジスタ)に、第1制御コマンドデータを書き込む。これにより、その第1制御コマンドデータがサブ制御基板80に送信される。また、送信対象となる制御コマンドバッファのアドレスのデータを「+1」にする。これにより、第2制御コマンドデータが記憶されているアドレスがセットされる。
次にステップS677に進み、ステップS666と同様に、送信対象となる第2制御コマンドデータをSCU3データレジスタに書き込む。これにより、その第2制御コマンドデータがサブ制御基板80に送信される。
次のステップS668では、制御コマンドの送信が完了したか否かを判断する。ここでは、読み込みポインタのデータが奇数であるか否かを判断する。奇数であるときは、2回目の送信であることを示し、偶数であるときは、1回目の送信であることを示す。
このような処理を行うのは、本実施形態では、同一の制御コマンド(第1制御コマンド及び第2制御コマンド)を、2回続けて(2割込みで)サブ制御基板80に送信するためである。
ステップS668において制御コマンドを送信した(読み込みポインタのデータが奇数である)と判断したときはステップS669に進み、送信していないと判断したときはステップS670に進む。
ステップS669では、送信済みの制御コマンドデータをクリアする。すなわち、制御コマンドバッファに記憶されているデータを消去し、RWM61の領域を空にする。
次にステップS670に進み、読み込みポインタのデータを「+1」更新する。そして本フローチャートによる処理を終了する。
図71は、図64のステップS614における「外部信号出力データ管理(IS_INF_CTL)」を示すフローチャートである。
まず、ステップS951では、外部信号出力フラグ(_FL_INF_OUT ;図17)を取得する。ここで取得した値をBレジスタに記憶する。ここで取得されるビットは、8ビットのうち、D2〜D4ビット(外部信号1〜3)である。これらのD2〜D4ビット(外部信号1〜3)は、出力ポート6に対応している。
また、本実施形態において、Bレジスタは、外部信号出力データを記憶するレジスタに用いている。
次にステップS952に進み、ドアスイッチ信号又は設定ドアスイッチ信号がオンであるか否かを判断する。ここでの処理は、入力ポート1レベルデータ(_PT_IN1_OLD )のアドレス(F00A)をHLレジスタに記憶する。次に、HLレジスタが示すアドレスのデータをAレジスタに記憶する。そして、Aレジスタ値と「00000110」とをAND演算し、演算結果が「0」であるとき(Zフラグ=0のとき)、「No」と判断する。
ドアスイッチ信号又は設定ドアスイッチ信号がオンであると判断したときはステップS953に進み、オンでないと判断したときはステップS954に進む。
ステップS953では、外部信号5出力データのセット処理を行う。この処理は、Bレジスタ値に「1」を加算する。ここで、それまでのBレジスタ値のD0ビットは「0」であるが、この処理によりBレジスタのD0ビットが「1」にされる。そしてステップS954に進む。このD0ビットは、出力ポート6のD0ビットに対応している。
ステップS954では、設定キースイッチ信号がオンであるか否かを判断する。この処理は、HLレジスタが示すアドレスのデータ(入力ポート1レベルデータ(_PT_IN1_OLD ))において、D3ビットが「1」であるか否かを判断する。設定キースイッチ信号がオンであると判断したときはステップS957に進み、オンでないと判断したときはステップS955に進む。
次のステップS955における「異常入力フラグ及び電源断復帰時外部信号4出力時間データチェック」では、異常入力フラグ(_FL_IN_ABNML)のデータをAレジスタに記憶する。なお、異常入力フラグは、入力エラーチェック処理(IS_ERROR_CHK)時に生成されている(より具体的には、ステップS941)。さらに電源断復帰時外部信号4出力時間(_TM1_POWER_ON )の値とAレジスタ値とをOR演算し、その演算結果をAレジスタに記憶する。
そして、次のステップS956における「全データなし?」では、Aレジスタ値(ステップS955で演算した値)が「0」であるか否かを判断する。Aレジスタ値が「0」であるとき(ゼロフラグ=1)は、「Yes」と判断し、本フローチャートによる処理を終了する。
これに対し、ステップS956で「No」と判断されたときはステップS957に進み、BレジスタのD1ビットを「1」にする。このD1ビットは、出力ポート6のD1ビットに対応している。そして本フローチャートによる処理を終了する。
以上の「外部信号出力データ管理(IS_INF_CTL)」により、BレジスタのD0〜D4ビットが所定値に設定される。
図72は、図64のステップS615における「外部信号出力(IS_COUNTER_OUT)」を示すフローチャートである。
まず、ステップS961における「外部信号出力時間終了?」では、以下の処理を実行する。
(1)メダル信号データ(_PT_MEDAL_IO)を記憶しているRWM61のアドレス(F027)を、DEレジスタに記憶する。
(2)外部信号出力時間(_TM1_OUT_CNT)(F02A)をAレジスタに記憶する。
(3)Aレジスタ値が「0」であるとき(ゼロフラグ=1のとき)、「Yes」と判断する。「Yes」と判断したときはステップS962に進み、「No」と判断したときはステップS971に進む。
ステップS962では、外部信号出力時間(_TM1_OUT_CNT)に、「46」(初期値)をセットする。以上の処理により、外部信号出力時間(_TM1_OUT_CNT)が「0」であるときは「46」をセットし、「0」でないときは、当該セットを行わない。
次のステップS963における「メダル投入信号出力回数有?」では、以下の処理を実行する。
(1)メダル投入信号出力回数(_CT_MEDAL_IN)を記憶しているRWM61のアドレス(F06F)を、HLレジスタに記憶する。
(2)HLレジスタが示すアドレスに記憶された値をAレジスタに記憶する。
(3)Aレジスタ値が「0」であるとき(TZフラグ=0であるとき)、「No」と判断する。ステップS963で「Yes」であると判断されたときはステップS964に進み、「No」であると判断されたときはステップS966に進む。
次のステップS964における「メダル投入信号出力回数−1」では、HLレジスタが示すアドレスに記憶された値(メダル投入信号出力回数(_CT_MEDAL_IN))「1」減算する。
次のステップS965における「メダル投入信号出力データビットオン」では、CレジスタのD6ビットを「1」にする。なお、このD6ビットは、出力ポート6のD6ビット(メダル投入信号)に対応している。
次のステップS966における「メダル払出し信号出力回数有?」では、以下の処理を実行する。
(1)HLレジスタに記憶されたアドレス値を「+1」にする。これにより、HLレジスタ値は、「F06F」から「F070」となる。
(2)HLレジスタが示すアドレスに記憶された値(メダル払出し信号出力回数(_CT_MEDAL_OUT ))をAレジスタに記憶する。
(3)Aレジスタ値が「0」でないとき(TZフラグ≠0であるとき)、「Yes」と判断する。ステップS966で「Yes」と判断したときはステップS967に進み、「No」と判断したときはステップS969に進む。
ステップS967では、メダル払出し出力回数から「1」を減算する。具体的には、HLレジスタが示すアドレス(F070)に記憶された値を「−1」する。
次のステップS968における「メダル払出し信号出力データビットオン」では、CレジスタのD5ビットを「1」にする。なお、このD5ビットは、出力ポート6のD5ビット(メダル払出し信号)に対応している。そしてステップS969に進む。
ステップS969では、出力ビットのオン/オフ反転を行う。ここでは、以下の処理を実行する。
(1)DEレジスタが示すアドレス(F027)に記憶された値(メダル信号データ(_PT_MEDAL_IO))をAレジスタに記憶する。
(2)Aレジスタ値とCレジスタ値とをXOR演算し、演算結果をAレジスタに記憶する。
(3)Aレジスタ値を、DEレジスタが示すアドレス(F027;メダル信号データ(_PT_MEDAL_IO))に記憶する。
ここで、Cレジスタ値は、図18等で説明したように、メダル払出し信号出力回数が「0」でないときは、D5ビットが常に「1」となる。また、メダル投入信号出力回数が「0」でないときは、D6ビットが常に「1」となる。
一方、Aレジスタ値であるメダル信号データ(F027)では、メダル払出し信号がオンのときはD5ビットが「1」であり、オフのときはD5ビットは「0」である。同様に、メダル信号データでは、メダル投入信号がオンのときはD6ビットが「1」であり、オフのときはD6ビットは「0」である。
よって、たとえば、メダル払出し信号が「1」であり、メダル払出し信号出力回数が「0」でないときは、
Aレジスタ値:00100000
Cレジスタ値:00100000
XOR演算後:00000000(更新後のAレジスタ値)
となり、更新後のメダル払出し信号は「0」となる。
また、メダル払出し信号が「0」であり、メダル払出し信号出力回数が「0」でないときは、
Aレジスタ値:00000000
Cレジスタ値:00100000
XOR演算後:00100000(更新後のAレジスタ値)
となり、更新後のメダル払出し信号は「1」となる。
メダル投入信号についても同様である。たとえばメダル払出し信号が「0」、メダル投入信号が「1」、メダル払出し信号出力回数が「0」でなく、メダル投入信号出力回数が「0」でないときは、
Aレジスタ値:01000000
Cレジスタ値:01100000
XOR演算後:00100000(更新後のAレジスタ値)
となり、更新後のメダル払出し信号は「1」、メダル投入信号は「0」となる。
同様に、たとえばメダル払出し信号が「1」、メダル投入信号が「0」、メダル払出し信号出力回数が「0」でなく、メダル投入信号出力回数が「0」でないときは、
Aレジスタ値:00100000
Cレジスタ値:01100000
XOR演算後:01000000(更新後のAレジスタ値)
となり、更新後のメダル払出し信号は「0」、メダル投入信号は「1」となる。
次にステップS970に進み、メダル投入信号及びメダル払出し信号の出力データをセットする。この処理は、DEレジスタが示すアドレス(F027;メダル信号データ(_PT_MEDAL_IO))に記憶された値をAレジスタに記憶する処理である。
この処理により、メダル投入信号がオンであるときは、AレジスタのD6ビットが「1」となり、メダル投入信号がオンであるときは、AレジスタのD5ビットが「1」となる。
次のステップS971における「外部信号、メダル投入信号及びメダル払出し信号出力データセット」では、Bレジスタ値とAレジスタ値とをOR演算し、演算結果をAレジスタに記憶する。ここで、Bレジスタ値は、図71の「外部信号出力データ管理(IS_INF_CTL)」により記憶された値であり、D0〜D4ビット(外部信号1〜5)が定められている。
また、Aレジスタには、本フローチャートにより、メダル投入信号及びメダル払出し信号データが記憶されている。したがって、Bレジスタ値とAレジスタ値とをOR演算することにより、外部信号1〜5のデータと、メダル投入信号及びメダル払出し信号データがAレジスタ(1バイト)に合成される。さらに、Aレジスタ値を出力ポート6に記憶する。これにより、出力ポート6から外部信号が送信される。そして本フローチャートによる処理を終了する。
次に、サブ制御基板80側の情報処理について説明する。
図73は、サブ制御基板80のプログラム開始処理及びサブ側のメイン処理を示すフローチャートである。
図73において、ステップS700で電源が投入され、サブ制御基板80のプログラムが開始されると、先ず、ステップS701において、サブ制御基板80は、割込み処理を禁止する。次のステップS702では、サブ制御基板80は、各種初期化処理を実行する。初期化処理としては、サブCPU82やRWM81の初期化が挙げられる。
なお、ここで初期化するRWM81は、サブCPU82に内蔵されたRWM(レジスタ)ではなく、サブ制御基板80上に搭載されるととともにMPU(サブCPU82)の外部に設けられたRWMを指す。そして、以下の説明においてRWM81というときは、この外部RWMを示す。また、ステップS702における当該RWM81の初期化は、電源断によって初期化すべき範囲の初期化(電源断で消去すべきデータの消去)を意味する。
次のステップS703では、サブ制御基板80は、チェックサムが一致するか否かを判断する。この処理は、電源投入時にチェックサムを算出し、電源断時にRWM81に記憶していたチェックサムと対比することで、一致するか否かを判断する。
チェックサムが一致すると判断したときはステップS704に進み、チェックサムが一致しないと判断したときはステップS705に進む。
ステップS704では、サブ制御基板80側のメイン処理、すなわち本図のステップS710における「1コマンド処理」中に電源断が発生したか否かを判断する。そして、1コマンド処理中に電源断が発生したと判断したとき(ステップS704で「Yes」のとき)は、本フローチャートによる処理を終了し、電源断前に実行していた1コマンド処理中のプログラムに戻る。これに対し、1コマンド処理中に電源断が発生していないと判断したときはステップS706に進む。
一方、ステップS703からステップS705に進むと、RWM81をクリアする。ここでのRWM81のクリアは、ステップS702で初期化の対象となっていなかったデータについてもクリアすることを意味する。たとえば、RWM81には、電源断ごとに消去(クリア)するデータと、電源断のみでは消去しないデータとが記憶される。電源断のみでは消去しないデータとしては、たとえば演出ステージ等が挙げられる。
ステップS704又はステップS705からステップS706に進むと、サブ制御基板80側のメイン処理が開始される。
まず、ステップS706では、サブ制御基板80は、実装されているウォッチドッグタイマをクリアする。次にステップS707に進み、ウォッチドッグタイマの動作処理(計測)を開始する。ウォッチドッグタイマは、サブCPU82の暴走判定用のパルスを出力するとともに、このパルスの出力数をカウントし続ける。そして、後述するようにウォッチドッグタイマがクリアされるまでにパルス数のカウント値(時間値)が所定値(たとえば「500ms」)となったときは、サブCPU82が暴走していると判定し、サブ制御基板80の処理を電源投入時の処理に移行する。
次に、ステップS708に進み、(ステップS701で禁止していた)割込み処理を許可する。このステップS708において割込み処理が許可されると、割込み処理が行われる。
次のステップS709では、16ms毎処理(1フレーム毎処理)を行う。サブ制御基板80で実行する処理は、16ms毎に1回行う処理(16ms毎処理、又は1フレーム処理)と、16ms以内で行う1コマンド処理とを有する。そして、ステップS709では、これらの処理のうち、16ms毎処理を実行する。
16ms毎処理としては、画像表示装置23(液晶ディスプレイ)が正常に動作しているか否かの監視、スピーカ22の音源アンプが正常に動作しているか否かの監視、電源投入時間の計測、プッシュボタン24や十字キー25の操作に基づくレベルデータや立ち上がりデータ等の生成、エラー時間やリール31の駆動時間の計測等を実行する。
次に、ステップS710に進み、1コマンド処理(一命令に対する処理)を実行する。1コマンド処理としては、たとえば演出抽選や、メイン制御基板60からのコマンドを受信し、エラー報知等を行うことが挙げられる。
たとえば、ステップS388及びS389(図61)により送信されたエラー表示開始のコマンドを受信すると、受信したコマンドに従い、演出ランプ21、スピーカ22、及び画像表示装置23によってエラーを検出した旨やエラー内容を報知する。
また、ステップS935及びS936(図67)により送信された特定情報のコマンドを受信すると、受信したコマンドに従って、上記と同様にエラーを検出した旨及びエラー内容を報知する。
上述したように、たとえば第1制御コマンドデータが「B4(H)」、第2制御コマンドデータが「01001000」(電源断検知及び設定キースイッチのオンを検知時)であるときは、設定変更異常である旨を報知する。具体的には、スピーカ22から警告音の出力、演出ランプ21の高速点滅、及び画像表示装置23による設定変更操作エラーである旨の画像表示が挙げられる。
また、第1制御コマンドデータが「B4(H)」、第2制御コマンドデータが「00001000」(設定キースイッチのオンを検知時)であるときは、設定キー異常である旨を報知する、具体的には、スピーカ22から警告音の出力、演出ランプ21の高速点滅、及び画像表示装置23による設定キーが異常である旨の画像表示が挙げられる。
さらにまた、ステップS943及びS944(図69)により送信された異常検出時のコマンドを受信したときも同様に、エラー報知を行う。
なお、ART中の押し順報知を行う遊技でエラーが発生した場合には、遊技者に有利な押し順を報知しないようにしてもよく、あるいは、エラーの報知に使用しない他の演出ランプ(たとえば、ストップスイッチ42に設けられたストップスイッチLED等)によって報知を行うようにしてもよい。
さらに、1コマンド処理として、系統の異なるコマンド(たとえば、第1系統コマンドと第2系統コマンド)を受信した場合には、それぞれのコマンドに対して1コマンド処理を実行する。
たとえば、第1系統コマンドとして、遊技の進行をスムーズに行うために必要なコマンド(役抽選結果を示すコマンド、エラー番号のコマンド、設定変更の開始のコマンド等)とし、第2系統コマンドとして、遊技の進行に直接影響を与えないコマンド(役抽選を行わないときのスタートスイッチ41が操作されたコマンド、リール31の停止制御を行わないときのストップスイッチ42が操作されたコマンド等の入力ポートに入力された情報)としている。
そのような場合、1コマンド処理では、第1系統コマンド→第2系統コマンドのように一連の順序でコマンド処理を実行している。
なお、この1コマンド処理中に電断が生じたときは、完全復帰処理を行う。完全復帰処理では、1コマンド処理中の電断が生じたタイミングから復帰する。
一方、1コマンド処理中以外で電断が生じたときは、通常復帰処理を行う。通常復帰処理では、サブCPU82及びRWM81を初期化し、サブ処理の最初から処理を実行する。
1コマンド処理の実行後はステップS711に進み、16msを経過したか否かを判断する。16msを経過したか否かの判断は、本実施形態では、割込み処理ごと(1msごと)に「+1」するカウンタを設け、このカウンタ値が「+16」となったか否かを判断することにより行う。
16msを経過していないと判断したときはステップS710に戻り、1コマンド処理を継続する。一方、ステップS711において16msを経過したと判断したときは、16msをカウントするカウンタ値をリセットし、ステップS706に戻り、ステップS707で開始したウォッチドッグタイマをクリアする。したがって、この時点で、カウントしていたウォッチドッグタイマのパルス数(時間)がクリアされる。
なお、図73に示すように、ウォッチドッグタイマは、16msごとにクリアされるが、一定時間(たとえば500ms)クリアされなかったときは、ウォッチドッグタイマ割込み処理を発生させ、ステップS701に戻るように制御する。
図74は、サブ制御基板80における電源断処理を示すフローチャートである。この処理は、サブ制御基板80が電源断を検知したときに実行される。本実施形態では、電源断は、割込み処理ごと(1msごと)に検出している。
なお、本実施形態のスロットマシン10では、メイン制御基板60とサブ制御基板80とには、それぞれ電源が供給されており、電源断が発生すると、サブ制御基板80の方がメイン制御基板60よりも遅れて検知するように構成されている。たとえば、サブ制御基板80は、8V電圧が供給されたときに電源復帰処理を行い、メイン制御基板60は、9V電圧が供給されたときに電源復帰処理を行う。このように構成することにより、メイン制御基板60から送信されてくる制御コマンドの受信漏れを防止することができる。
図74において、電源断が検知されると、ステップS721に進み、サブ制御基板80は、ウォッチドッグタイマを停止する。次のステップS722では、プログラム処理中であったか否かを判断する。電源断を検知したときに、図73のプログラム開始処理中又はサブメイン処理中のいずれであるかを判断する。プログラム開始処理中であると判断されたときはステップS725に進み、サブメイン処理中であると判断されたときはステップS723に進む。
ステップS723では、チェックサムを算出する。そして、次のステップS724において、各種データをRWM81に退避する。ここで、各種データとしては、チェックサムを算出した結果、実行していたプログラム等が挙げられる。
ステップS722又はステップS724からステップS725に進むと、電源断を検知した時から500msを経過したか否かを判断する。500msを経過していないと判断したときはステップS726に進み、500msを経過したと判断したときは本フローチャートによる処理を終了する。
ステップS726では、電源から復帰したか否かを判断する。復帰したと判断したときは、ステップS727に進んで瞬断処理に移行し、復帰していないと判断したときはステップS725に戻る。
図75は、サブ制御基板80における設定変更開始処理を示すフローチャートである。メイン制御基板60において設定値の変更が開始されると、図33の設定変更処理(M_RANK_SET)において、ステップS807で設定変更開始時の出力要求がセットされ、次のステップS808で制御コマンドセット1が実行される。
そして、メイン制御基板60による割込み処理(図64)において、ステップS613の制御コマンド送信(図70)で、設定変更が開始された旨の制御コマンドが送信されるので、サブ制御基板80は、この制御コマンドを受信すると、メイン制御基板60側で設定値の変更が開始されたと判断する。これを受けて、図75の処理を開始する。
なお、サブ制御基板80は、メイン制御基板60からの制御コマンドを取りこぼすことを防止するため、上述した1ms割込み処理やその他の割込み処理よりも優先度の高い割込み処理(NMIでも良い)により制御コマンド受信処理を実行し、受信した制御コマンドは、サブ制御基板80の所定の記憶領域を有するRWM81(チップ内の回路でも良い)に順次記憶していく。
この記憶領域は、設定変更処理においても消去されない記憶領域である。これにより、サブ制御基板80の初期化時にメイン制御基板60から制御コマンドが送信された場合であっても、当該コマンドに基づく処理が正常に実行されるようになっている。
設定変更開始処理は、図73のステップS710(1コマンド処理)内において行われる処理である。
図75において、ステップS750で設定変更処理が開始されると、ステップS751で、割込み処理を禁止する。なお、メイン制御基板60からサブ制御基板80に送信される制御コマンドの割込み(2.235msごと)は禁止されない。また、制御コマンド受信処理は、制御コマンドの取りこぼし防止のため、割込み禁止としない。
たとえば、1ms割込みによりプッシュボタン24の入力ポートを検知し、検知結果をRWM81に記憶しておき、16回(ループ回数)のすべての割込みでプッシュボタン24がオンであることを検知したときは、16ms毎処理(1フレーム処理;ステップS709)でプッシュボタン24が操作されたと判断する仕様が考えられる。この場合、初期化中に1ms割込みが実行されてしまうと、プッシュボタン24の入力に関するRWM81の記憶領域のデータが更新されてしまう可能性がある。つまり、RWM81のデータの初期化中であるにもかかわらず、プッシュボタン24の操作に応じて新たなデータに更新されてしまう可能性がある。そこで、初期化中は、割込み処理を禁止することにより、RWM81の記憶領域のデータ更新をなくすことができる。
次のステップS752では、サブ制御基板80は、ウォッチドッグタイマを停止する。この処理は、その後に実行するRWM81の初期化処理中に、ウォッチドッグタイマのクリア処理が実行されてしまわないようにするためである。いいかえれば、暴走と判断してしまうと、初期化処理が途中で中断してしまうからである。
次にステップS753に進み、サブ制御基板80は、RWM81の初期化を開始するアドレスを指定する。ここでは、初期化を行うアドレスの範囲を指定する。次にステップS754に進んで、当該範囲の初期化処理を実行する。
ステップS755では、RWM81の初期化処理が終了したか否かを判断する。初期化処理が終了していないと判断したときは初期化処理を継続し、初期化処理を終了したと判断したときはステップS756に進み、初期化処理を未だ終了していないと判断したときはステップS754に戻って初期化処理を継続する。
ステップS756では、ステップS752で停止したウォッチドッグタイマの停止を解除する。停止の解除とは、ウォッチドッグタイマが停止した途中から計時を開始することを採用する場合と、ウォッチドッグタイマが停止した途中からの計時ではなく、初期値から計時を開始する場合とが考えられる。
次のステップS757では、ステップS751で禁止した割込みを許可する。そして本フローチャートによる処理を終了する。
以上のようにして、サブ制御基板80は、メイン制御基板60から設定変更開始の制御コマンドを受信したときは、サブ制御基板80側において、RWM81の所定範囲の初期化を実行する。
また、上記処理において、ウォッチドッグタイマを停止させてからRWM81の初期化処理に移行するので、初期化処理中にウォッチドッグタイマによる再起動処理が実行しないようにすることができる。
なお、本実施形態では、設定変更開始処理時には、ステップS752においてウォッチドッグタイマを停止したが、これに代えて、ウォッチドッグタイマをクリアする処理とすることも可能である。
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、たとえば、以下のような種々の変形が可能である。
(1)フリーズ及び擬似遊技
スロットマシン10において、フリーズを実行することが可能である。
ここで「フリーズ」とは、遊技の進行を、所定期間一時停止状態にして、遅延させることであり、たとえば、メダルの受付け、ベットスイッチ40の操作の受付け、スタートスイッチ41、ストップスイッチ42の操作の受付け(リール31の停止操作の受付け)に関する機能を一時停止状態にすることである。このようなフリーズを実行するとともに、このフリーズ期間中に、各種の演出を出力することが挙げられる。
さらに、フリーズ期間中に、擬似遊技を実行してもよい。
ここで、本遊技と擬似遊技とについて説明する。
「本遊技」とは、操作スイッチの本来の機能(ベットスイッチ40は遊技を開始するためにメダルを投入する機能、スタートスイッチ41は遊技を開始するためにリール31の回転を開始する機能、ストップスイッチ42は、回転中のリール31を役の抽選結果に基づいて最大移動コマ数の範囲内において停止させる機能)が遊技を進行して遊技結果を得るためのものとして有効になっている遊技を指す。
本遊技では、ベットスイッチ40が操作されたときにメダルが投入され、スタートスイッチ41が操作されたときにリール31の回転を開始し(及び役の抽選を行い)、ストップスイッチ42が操作されたときに、役の抽選結果に基づいてリール31を停止させ、リール31の停止時における図柄の組合せによってその遊技における遊技結果を表示する。
これに対し、フリーズ中は、ベットスイッチ40を操作してもメダルが投入されないこと、スタートスイッチ41を操作してもリール31の回転が開始しないこと、ストップスイッチ42を操作しても、リール31が遊技結果を表示しない(リール31が停止しない)こと等は、操作スイッチの機能が本遊技を進行して本遊技での遊技結果を得るためのものとして有効になっていない状態である。
そして、「擬似遊技」とは、このフリーズ中に実行される遊技であって、本遊技と異なり、少なくとも1つの操作スイッチについて、その機能が、本遊技を進行して遊技結果を得るためのものとして有効になっていない遊技を指す。特に、スタートスイッチ41が操作された時から、リール31が定速となってストップスイッチ42の操作受付け可能となるまで(ストップスイッチ42の機能が遊技結果を得るためのものとして有効になるまで)の間に、擬似遊技を実行する。
擬似遊技の実行のタイミングとしては、たとえば前兆終了後の次遊技である。この次遊技に、擬似遊技で停止させる図柄の組合せ、たとえば「赤7」揃い(ART作動図柄)を狙わせる報知を行う。
擬似遊技を実行することに決定したときは、次遊技において、本遊技の開始前に擬似遊技を開始する。
遊技者によりスタートスイッチ41が操作されると、役の抽選を行うとともに、擬似遊技を開始する。一方、スタートスイッチ41が操作されると、リール31の回転を開始する。スタートスイッチ41が操作されたことによりリール31を回転させる場合において、当該遊技で、本遊技の前に擬似遊技を実行する場合には、そのスタートスイッチ41の操作によるリール31の回転開始時は擬似遊技となる。
また、擬似遊技では、遊技者によるストップスイッチ42の操作を契機として、そのストップスイッチ42に対応するリール31を変動させ、遊技結果を表示する停止とは異なる図柄の表示状態とすることにより、遊技結果を示すものではない図柄の組合せの表示状態(リール31の停止に近い状態)となるように制御する。すなわち、ストップスイッチ42の機能は遊技結果を表示するものとして有効になっていないものの、ストップスイッチ42の操作を契機としてリール31の変動を行う。
このときに、ストップスイッチ42の操作を契機として上述したART作動図柄を表示させることで、ART実行の演出とする。また、ART作動図柄を表示した時に、外部信号を送信してもよい。
なお、擬似遊技中に、ストップスイッチ42の操作を契機としてART作動図柄を表示させる場合には、そのART作動図柄は、本遊技における停止位置決定テーブルを用いる停止制御(最大スベリコマ数が3コマ)と同様の制御を行ってもよいが、ストップスイッチ42の操作タイミングにかかわらず(最大スベリコマ数が3コマを超える場合であっても)、ART作動図柄を常に有効ラインに表示するようにリール31を制御してもよい。擬似遊技は、本遊技における最大スベリコマ数の制約を受けないためである。
さらに、擬似遊技中の図柄の表示状態は、リール31(図柄)が一定位置に完全にとどまることなく、揺れ変動を伴うものとする。
ここで、「揺れ変動」とは、図柄が一定の振幅(揺れ幅)をもって上下移動を繰り返すものであり、常に上下移動を繰り返す場合や、静止及び移動を繰り返す場合、たとえば有効ラインを基準として上寄りの位置で所定時間静止した後、下寄りに移動してその位置で所定時間静止した後、再度上寄りに移動して所定時間静止することを繰り返す等の動作である。
より具体的には、図柄の表示状態とした時から約390msその位置にとどまり、上寄り位置に移動してその位置で約10msとどまり、次に下寄り位置に移動してその位置で約10msとどまる、というように、最初は約390msとどまり、次に移動及び約10msとどまることを繰り返すパターンが挙げられる。
なお、最初のとどまる時間を約390msに設定したのは、とどまる時間を500ms未満とすることで、遊技結果を表示する停止と区別するためである。
「リール31を停止させること」は、遊技結果を表示することを意味するものなる。そして、遊技結果を一旦表示した後は、その一遊技内で、遊技結果を表示したリール31の再変動を行うことはできない。したがって、擬似遊技中にリール31を停止させてしまうと、その後に本遊技においてリール31を停止させて遊技結果を表示することはできない。
そこで、擬似遊技中は、ストップスイッチ42の操作を契機として、リール31の停止に近い状態(一時的な仮停止、擬似停止ともいう。)である、揺れ変動を伴う図柄の表示状態とする。すなわち、擬似遊技中の図柄の表示状態は、遊技結果を示す停止ではない。いいかえれば、ストップスイッチ42を操作しても、当該遊技における遊技結果を示すようにリール31が停止することはない。
このため、擬似遊技中の図柄の表示状態は、役に対応する図柄の組合せが有効ラインに停止したこと、すなわち役の入賞を意味するものではない。よって、小役入賞時のようなメダルの払出しや、リプレイ入賞時のようなメダルの自動投入が行われることはない。
このようにして、擬似遊技では、すべてのリール31について図柄の表示状態とした後、遊技者によりスタートスイッチ41が操作されることを待ち、スタートスイッチ41が操作されたときは、擬似遊技及びフリーズを終了し、全リール31の再変動を行う。なお、このときのスタートスイッチ41の操作は、スタートスイッチ41の機能が遊技結果を得るためのものとして有効になっていない状態での操作であり、遊技者が自ら擬似遊技を終了させる(フリーズを解除ないしキャンセルする)操作である。また、リール31の再変動は、ランダム遅延によって、各リール31ごとに、再変動の回転開始タイミングをばらばらにする制御を行う。これにより、擬似遊技後の遊技において目押しの補助にならないように制御を行っている。
(2)マイスロ遊技
スロットマシン10を利用して、マイスロ遊技を実行することも可能である。
ここで、「マイスロ遊技」とは、以下の内容である。
スロットマシン10は、遊技者の遊技履歴(遊技回数、ART当選回数等)を記憶しておく。遊技終了時に、スロットマシン10は、遊技履歴を二次元コードとして画像表示装置23に画像表示する。
遊技者は、その二次元コードを遊技者自身の携帯通信端末(二次元コードを読み取り可能なCCDを備えるスマートフォン等)で読み取り、スロットマシン10の製造メーカ等が運営するサーバーコンピュータにアクセスする。サーバーコンピュータには、その遊技者の最新の遊技履歴が記憶される。また、サーバーコンピュータは、遊技者が保有する携帯通信端末に対し、パスワードを発行する。遊技者は、遊技開始時に、そのパスワードを入力して遊技を開始すれば、遊技履歴を引き継ぐことができるというものである。
このようなマイスロ遊技では、遊技履歴は、RWM81に記憶しておく。そして、単なる電源のオン/オフ時におけるRWM81の初期化時には、その遊技履歴を消去するように設定する場合と、消去しないように設定する場合とが挙げられる。
また、設定変更を開始した場合の初期化時には、遊技履歴を含めて消去する。
たとえば、電源がオフからオンになったときに遊技履歴を消去するようにしておくことにより、設定変更を開始したときの挙動と同じになることで、マイスロ遊技を用いて設定変更をしたか否かということを遊技者には知らせないことが可能となる。
また、電源のオフからオンになったときに遊技履歴を一律に消去してしまうと、遊技中に意図しない電源断が生じた場合に遊技者に不利益を与えてしまう。そこで、電源のオフから時間を計時し、所定時間(例えば2時間)経過した場合は電源のオン時に遊技履歴を消去し、所定時間経過前の場合には、電源オン時に遊技履歴を保持するようにしてもよい。
この遊技履歴は、上述したマイスロ遊技に限らず、例えば画像表示装置23に表示されている遊技に関する実行回数(通常ゲーム数、ARTゲーム数、チャンスゾーン中を示すゲーム数)も同様に制御するようにすることができる。
(3)上記実施形態では、遊技状態(RT)の移行を行い、RT2に移行したときにARTを実行した。
これに対し、以下のように遊技状態を制御することも可能である。
まず、当選を持ち越すMB(特別役)を設け、MBに当選したときであってもMBが入賞しにくいように制御する。たとえば、MBは、押し順が右中左であることを条件として入賞可能とし、かつ、当該押し順をペナルティ押し順に設定する。これにより、遊技者が意図的に逆押ししたり操作ミスをしない限り、当該押し順でストップスイッチ42が操作されることはない。このため、MBが入賞することはない。したがって、MBの当選後は、MBが入賞しない状態、すなわちMB内部中遊技がずっと継続することとなる。よって、当選したMBが入賞することは稀であるから、MB遊技が実行されることも稀である。このため、MB内部中遊技は、ずっと継続される。
そして、MB内部中遊技において、内部状態として非AT、AT準備中、及びATを設け、非ATからATへの移行は、RT(遊技状態)移行を伴わないようにする。
さらに、非ATは、ATに当選する確率が異なる低確率、通常確率、及び高確率を備える。これらの低確率、通常確率、高確率中にATに当選すると、ATに当選しているがATの開始前の遊技期間である前兆に移行する。この前兆中において、ATに当選していることが遊技者に報知される。
また、前兆の終了後、AT開始時までの間の期間は、AT準備中となる。さらにまた、ATは、ATの遊技回数が上乗せされる期待値が異なる通常確率と高確率とを備える。
これらの内部状態の移行は、当該遊技における当選役によって行われる。また、一つの内部状態から他の内部状態に移行するときは、前記一つの内部状態における遊技終了時(全リール31が停止して当該遊技の遊技結果を表示した時)に行われる。
本実施形態では、内部状態のうち、前兆に移行することに決定したときが、ATの当選に相当する。
以上のような遊技状態及び内部状態からなるものであってもよい。
(4)メイン制御基板60に関する他の例
本実施形態では、メイン制御基板60は、1つとしたが、これに限らず、複数個の別体から構成してもよい(メイン制御基板60A、60B、・・・)。各メイン制御基板は、独立してCPU及びRWMを備える。また、メイン制御基板60をたとえば2個設けたときは、両者は、双方向通信で情報の送受信が可能に構成する。そして、いずれか1つのメイン制御基板60とサブ制御基板80とを、メイン制御基板60からサブ制御基板80への一方向通信となるように接続する。
さらに、メイン制御基板60を複数設ける場合には、図5において、どのメイン制御基板60と、どの遊技用周辺機器とを接続するかについては任意に設定することができる。たとえば、メイン制御基板60を、第1メイン制御基板60Aと第2メイン制御基板60Bとから構成し、第1メイン制御基板60Aは、役の抽選、リール31の停止制御、ARTの制御を担当し、第2メイン制御基板60Bは、メダルの投入(ベット)、払出し、貯留、精算等の制御を担当するものとする。この場合、第1メイン制御基板60Aには、スタートスイッチ41、ストップスイッチ42、モータ32等が接続され、第2メイン制御基板60Bには、ベットスイッチ40、精算スイッチ43等が接続される。
さらに、メイン制御基板60を複数個設ける場合には、すべてのメイン制御基板60について基板ケース内に収容し、かしめ等を行う。
(5)ペナルティ状態に関する他の例
本実施形態では、非ART中に変則押しを行った場合には、ペナルティ状態に設定したが、このペナルティ状態を解除可能に設定してもよい。
たとえば、電源のオン/オフによってペナルティ状態が解除されるように設定することが挙げられる。非ART中の変則押しによってペナルティ状態に設定されたときは、ペナルティフラグをオンにする(RWM61に記憶する)。そして、電源のオフ時又はオン時のいずれか一方において、RWM61に記憶したペナルティフラグのオンをオフにする(クリアする)ことが挙げられる。
また、ペナルティ状態に設定されたときは、時間を計測し、所定時間が経過したときは、ペナルティ状態を自動で解除することも可能である。このように設定すれば、ホール店員による電源のオン/オフを行うことなく、自動でペナルティ状態を解除することができる。さらに、ペナルティ操作(変則押し)を意図的に頻繁に繰り返す遊技者がいたとしても、1回のペナルティ操作ごとに所定時間を待つ必要があるので、短時間の間に繰り返してペナルティ操作を行うことを防止することができる。
さらに、たとえば1回目の変則押し時には、10秒間のペナルティ状態を設定し(タイマにより10秒をカウントしたときはペナルティ状態を解除する)、2回目の変則押し時には30秒間のペナルティ状態を設定し、3回目の変則押し時には電源をオン/オフしなければペナルティ状態を解除できないように設定してもよい。
また、電源のオン/オフを行うことなく、遊技者又はホール店員等(店長等の管理者を含む。以下同じ。)による操作スイッチの特定の操作(特定パターンの入力)により、ペナルティ状態が解除されるように設定する。たとえば、複数のスイッチの同時押しや、複数のスイッチの所定順番での操作が挙げられる。
さらにまた、たとえばスロットマシン10のフロントカバー11を開放し、ドアスイッチ16のオン/オフを検知したこと、及びリセットスイッチ53がオンにされたことを条件として、ペナルティ状態を解除してもよい。これにより、ホール店員が容易にペナルティ状態を解除することができる。
さらにまた、ホール側で、ペナルティ状態に設定された台を容易に把握できるようにするため、ペナルティ状態に設定されたときに、ペナルティ信号(外部信号)を外部集中端子板100に送信し、その情報をホールコンピュータで受信する。
これにより、ホール側では、どの台がペナルティ状態に設定されたかを容易に把握することができ、店員に対し、その台のペナルティ状態を解除するように指示を出すことも可能となる。
特に、頻繁にペナルティ押し順を繰り返せば、それだけその旨の信号がホールコンピュータに送信される。これにより、ホール側は、挙動不審な遊技者を容易に特定することが可能となる。
また、上記実施形態では、ペナルティ状態に設定したときは、ATの抽選等で遊技者に不利になるものの、遊技を進行すること自体は支障がない。これに対し、ペナルティ状態に設定されているときは、遊技を進行できないように制御することも可能である。遊技を進行できなくする方法としては、たとえばフリーズを利用することが挙げられる。
そして、ペナルティ状態の解除条件を満たしたときに、フリーズを解除し、そのペナルティ状態を解除するように制御する。
また、上記実施形態では、遊技者が変則押しをしてペナルティ状態に設定したときであっても、ペナルティ状態中にその旨を報知していない。なお、変則押しが行われたときには、その時点で(たとえば非ART中に右第一停止が行われたときに、右ストップスイッチ42が操作された時点で)警告音を出力すること等は可能である。
そこで、現在がペナルティ状態に設定されているか否かを遊技者が判断可能にするために、画像表示装置23等を用いて、ペナルティ状態に設定されている間は、ペナルティ状態である旨の報知を行うことも可能である。たとえば、画像表示装置23に「!」マークを表示することや、演出ランプ21をペナルティ状態特有の色、点灯(点滅)パターンで点灯することが挙げられる。
さらに、メイン制御基板60と電気的に接続された(メイン側の)報知手段を設け、その報知手段を用いてペナルティ状態であることを報知してもよい(メイン側によるペナルティ状態の報知)。
画像表示装置23等に、ペナルティ状態である旨の報知が行われている場合に、遊技者がその台で遊技を開始したいときは、たとえばホール店員を呼び、電源のオン/オフを行ってもらうことによりペナルティ状態を解除することができる。これにより、遊技者は、ペナルティ状態から遊技を開始してしまうことをなくすことができ、遊技の公正を担保することができる。あるいは、ペナルティ状態が上述したような経過時間で解除される場合、ペナルティ状態が解除されるまで、その台で遊技を行うのを待つことができる。
なお、ペナルティ状態が解除されたときは、ペナルティ状態である旨の報知、表示を終了するように制御する。
上記実施形態では、ベル当選時に変則押し(ペナルティ押し順で操作)するとペナルティ状態に設定した。これに対し、変則押しをしただけではペナルティ状態に設定せず、変則押しをした結果、ベルを入賞させたときにペナルティ状態に設定し、その旨を報知することも可能である。
第1に、ベル01(8枚役)を入賞させたときのみ、ペナルティ状態に設定し、その旨を報知することが挙げられる。
たとえば非ART中にベル当選A1となった場合において、中第一停止で操作されたときは、8枚役が入賞する可能性を有するので、この時点で、ペナルティ予備状態に設定する。これに対し、右第一停止時には、8枚役の入賞可能性を有さないので、ペナルティ状態に設定しない。
また、中第一停止後、左第二停止となったときは、この時点で、8枚役の入賞が確定するので、ペナルティ状態に設定する。すなわち、最後の右ストップスイッチ42が操作されておらず、ベル01が入賞していないが、中第一停止及び左第二停止の時点でベル01の入賞が確定するので、この時点でペナルティ状態に設定する。なお、これに限らず、右第三停止が行われ、全リール31が停止し、かつベル01が入賞したと判断した後にペナルティ状態に設定してもよい。
一方、中第一停止後、右第二停止となったときは、その時点で、ベル01(8枚役)の非入賞が確定するので、中第一停止時におけるペナルティ予備状態を解除する(ペナルティ予備状態である旨の報知を終了する)。したがって、ベル当選A1時に中右左の押し順でストップスイッチ42が操作されたときは、ペナルティ状態に設定しない。
他のベル当選A2〜A8も同様に、ベル01(8枚)が入賞したとき(又は入賞が確定したとき)はペナルティ状態に設定し、1枚ベル入賞時又はベルコボシ時にはペナルティ状態に設定しない。
なお、ベルB1〜B4当選時に、順押し又は順挟み押しによりベル01(8枚)を入賞させたとしても、変則押し(ペナルティ押し順)ではないので、当然、ペナルティ状態に設定しない。
また、第2に、ベル01(8枚役)又は1枚ベルを入賞させたときにペナルティ状態に設定し、ベルを取りこぼしたときにはペナルティ状態に設定しないことが挙げられる。
たとえばベル当選A1となったときに、中第一停止時には、ベル01(8枚ベル)又は1枚ベルの入賞が確定するので、この時点でペナルティ状態に設定する。なお、これに限らず、第三停止が行われ、全リール31が停止し、かつ1枚又は8枚ベルが入賞したと判断した後にペナルティ状態に設定してもよい。
また、右第一停止時には、この時点で、ペナルティ状態となる可能性を有するので、ペナルティ予備状態に設定する。
これに対し、左第一停止時には、「1/8」の確率で1枚役が入賞する可能性があるが、その押し順はペナルティ押し順ではないので、仮に順押しで1枚役が入賞してもペナルティ状態には設定しない。
右第一停止時には、「1/4」の確率で1枚ベルが入賞するが、1枚ベルを入賞させたときはペナルティ状態に設定し、ベルを入賞させなかったとき(ベルコボシ時)にはペナルティ状態に設定しない。
他のベル当選A2〜A8も同様に、ベル01(8枚)又は1枚ベルが入賞したときはペナルティ状態に設定し、ベルコボシ時にはペナルティ状態に設定しない。
なお、ベル当選B1〜B4時に、変則押しをしたことによりベル01を入賞させなかったとき(1枚ベル入賞時)は、本実施形態ではペナルティ状態に設定しない。しかし、これに限らず、ベル当選B1〜4時に、変則押しをした時点でペナルティ状態に設定してもよい。
また、上記のようにペナルティ予備状態に設定したり、ペナルティ状態に設定しなかったり制御する場合には、以下のように報知を制御する。
たとえば、ベル当選A1時に、ベル01(8枚役)を入賞させたときのみ、ペナルティ状態に設定するものとする。
この場合、左又は右第一停止時には、ペナルティ状態に設定しないので、ペナルティ状態に関する報知は一切行わないか、又は右第一停止時には「変則押し注意!」のような報知を行う。
一方、中第一停止時には、ベル01の入賞可能性を有し、ペナルティ予備状態に設定されるので、この時点で、たとえば画像表示装置23による画像表示状態を暗転させる等して注意を促す。すなわち、ペナルティ状態に設定される可能性を有すること(ペナルティ予備状態であること)を報知する。
次に、遊技者が第二停止として左ストップスイッチ42を操作したときは、その時点でペナルティ状態が確定するので、ペナルティ状態に設定される旨の報知を行う。たとえば画像表示装置に「ペナルティ発生」、「ペナルティ中」等と表示する。
これに対し、遊技者が第二停止として右ストップスイッチ42を操作したときは、その時点で、ペナルティ状態に設定されないことが確定するので、上述した画像表示状態の暗転等(ペナルティ予備状態である旨の報知)を元の状態に戻す制御を実行する。
(6)RT状態に応じて、ベル当選時の押し順に対応するリール31の停止制御を異ならせることが可能である。
1BBに当選していない非内部中遊技と、1BBの当選を持ち越している内部中遊技とでは、当該遊技における当選フラグが異なる。このため、当該遊技で当選を持ち越さない小役やリプレイに当選したときに、非内部中遊技と内部中遊技とで、リール31の停止制御を異ならせることができる。
そこで、RT状態に応じて、押し順により遊技結果が異なる役に当選したときに、リール31の停止制御を異ならせる。
1BB等の特別役の当選は「役物作動」であるが、RT状態の変更が役物作動に類似するものととらえると、RT状態に応じてリール31の停止制御を異ならせることが可能となる。
たとえば、RT1においてベルA1〜B4の当選となったときのリール31の停止制御は、上記実施形態で説明した通りとする。
これに対し、RT2においてベル当選となったときは、6択の押し順を、3択に変更することが挙げられる。
たとえばベルA1当選時について説明すると、中左右時には、上記実施形態と同様に中左右時(押し順正解時)の停止位置決定テーブルを用い、中右左時にも、中左右時(押し順正解時)の停止位置決定テーブルを用いることが挙げられる。これにより、中第一停止時には、押し順正解となり、ベル01(8枚)が入賞する。
さらに、左第一停止時には、上記実施形態の中右左時の停止位置決定テーブルを用いる。これにより、左第一停止時には、「PB=1」でベル03を入賞させる。
また、右第一停止時には、上記実施形態と同様に、右第一停止時の停止位置決定テーブルを用いる。これにより、右第一停止時には、「1/4」の確率でベル04aを入賞させる。
以上のような停止制御の変更は、他のベル当選についても適用する。
さらに、上記のRT状態に応じてリール31の停止制御を異ならせることのほか、ATの有無(ATフラグのオン/オフ)に基づいてリール31の停止制御を変更することが挙げられる。すなわち、特別役に係る当選フラグと同様にATフラグを取り扱うことで、たとえRT状態が異ならなくても、ATフラグのオン/オフに基づいてリール31の停止制御を異ならせる。非ATのとき(ATフラグオフ時)は上記実施形態と同様にベル当選時に6択押し順とし、ATのとき(ATフラグオン時)は上述したように押し順を3択に変更することが挙げられる。
(7)押し順ベル当選時のメダル獲得枚数期待値の変更
遊技者に対し、確実に順押しで遊技を消化させるためには、たとえば左中右の押し順が最も有利となる(出率が最も高くなる)ように設定することが挙げられる。
具体的には、ベルB1及びB2当選の置数を高めることにより、左中右の押し順時の出率を高めるようにする。
たとえば、上記実施形態において、ベルB1及びB2の当選置数を「1890」程度に設定することが挙げられる。この場合、ベルB3及びB4の当選置数を、ベルA1当選時等と同じ「1260」に設定する。このように設定すれば、「左中右」時の「置数×当該押し順のメダル獲得期待値」の合計は、
(1260×0.125)×8+1890×8×2+1260×1×2
=30420(メダル獲得期待値=約0.46枚)
となり、上記実施形態と同一となる。
一方、他の押し順では、たとえば「左右中」を例にとると、「置数×当該押し順のメダル獲得期待値」の合計は、
(1260×0.125)×8+1890×1×2+1260×8×2
=25200(メダル獲得期待値=約0.38枚)
となる。
このように設定すれば、左中右の押し順が最も有利となるので、遊技者は、左中右の押し順で遊技を消化するはずである。したがって、変則押し時のペナルティ状態が不要になる可能性がある。
さらに、順押し時には1枚ベルの取得率を高く設定することで、通常時(非ART中)における出率(ベース)を高くする方法が挙げられる。通常時における順押し時のベースを上げることができれば、「順押しで遊技を消化しても出率が一定値を満たす」というニースにこたえることがより容易になる。
たとえば、ベルA1〜A8当選のいずれであっても、左第一停止時は、「PB=1」で1枚ベルが入賞するように設定する。これにより、左第一停止で遊技を消化すれば、ベル当選時に取りこぼすことがない。なお、ベルB1〜B4当選時は、上記実施形態においても、ベルの取りこぼしがないように設定されている。
(8)本実施形態では、設定変更/リセットスイッチ53を覆う設定ドアを設け、設定ドアスイッチ54のオン/オフを検知することにより、設定ドアの開閉を検知した。しかし、設定ドアは必ずしも設ける必要はない。設定ドア(設定ドアスイッチ54)を設けない場合には、入力ポート1のD2ビットや、入力ポート1レベルデータ等のD2ビットは未使用となる。
(9)本実施形態では、精算スイッチ43に係る立ち上がりデータに基づいて精算処理を開始するように制御した。すなわち、精算スイッチ43が操作されることで精算処理を開始するようにした。
しかし、これに限らず、精算スイッチ43を一定時間操作し続けること(押しっぱなし)により精算処理を開始するようにしてもよい。
たとえば、精算スイッチ43に係るレベルデータが、500回の割込み(≒約1100ms)の間、連続でオンであるときに精算処理を開始することが挙げられる。
(10)実施形態では、精算スイッチ43が操作された場合において、ベットメダルを有するときは、ベットメダルを先に精算するように制御している。したがって、ベットメダルと貯留メダルの双方を有する場合において、双方を精算するときは、精算スイッチ43を2回操作する必要がある。
しかし、これに限らず、1回の精算スイッチ43の操作で、ベットメダルと貯留メダルの双方を精算できるように制御してもよい(ただし、リプレイ非作動時に限る)。
(11)本実施形態では、8ビット1バイトデータ(データ列)として、遊技者が操作可能な操作スイッチ(精算スイッチ43、ベットスイッチ40、スタートスイッチ41、ストップスイッチ42)のデータを記憶したが、これに限らず、個々の操作スイッチのレベルデータ等をそれぞれ所定の格納領域(番地)に記憶するものでもよい。たとえば、本実施形態では、ベットスイッチ40と精算スイッチ43との各信号のデータを1バイト中に記憶し、同時に処理するようにしたが、それぞれ個々に記憶することも可能である。
ただし、本実施形態のように、各操作スイッチのデータを1バイトデータとして記憶し、一括して読み取るようにすれば、一度の読み取り処理で全操作スイッチのデータを取得することができ、処理速度の向上や、処理の簡素化を図ることができる。
さらに、これらのデータは、立ち上がりデータに基づいてメイン処理内で制御処理が実行されるものであることから、一括で立ち上がりデータを生成することも可能となり、処理の簡素化をより図ることができる。
(12)1回の割込み処理において、入力ポートのデータを1回だけ取得して、入力ポートレベルデータ及び入力ポート立ち上がりデータを生成する方法と、1回の割込み処理においてデータを複数回取得し、入力ポート立ち上がりデータを生成する方法とを示した。
ここで、1回の割込み処理においてデータを複数回取得したときに、複数回取得したデータのうち、一部のビットの信号は一致しているが、他の一部のビットの信号は一致していない場合が考えられる。
このような場合に、上述したように、AND演算を行うことでそのビットのレベルデータを生成したが、これに限らず、一致していないビットの信号については当該割込み処理におけるレベルデータを記憶しないことも可能である。さらに、当該割込み処理において記憶しなかったビットのレベルデータについては、前回の割込み処理におけるそのビットのレベルデータを使用することが挙げられる。
(13)本実施形態では、エラー番号は、獲得数表示LED72で表示するようにしたが、これに代えて、貯留数表示LED71で表示してもよい。
また、設定変更中は、貯留数表示LED71を表示せず、かつ獲得数表示LED72に「−−」を表示したが、設定確認中と同じ表示を行ってもよい。
さらにまた、設定値表示LED63を設けずに、貯留数表示LED71又は獲得数表示LED72のいずれかを、設定値表示LEDと兼用してもよい。たとえば、獲得数表示LED72を設定値表示LEDと兼用する場合には、設定変更中又は設定確認中となったときは、上位桁を消灯にし、下位桁を点灯かつ設定値表示とすればよい。
(14)設定値表示LED63は、セブンセグメントにさらに「.」を加えた8つの素子から構成し、設定変更時は、設定値と「.」とを表示し、スタートスイッチ41の操作によって設定値が確定されると「.」を消灯するように構成してもよい。この場合、設定確認時は、「.」を消灯させることが好ましい。
(15)メダルがベットされているとき(リプレイの入賞に基づく自動ベットを含む)には、設定確認ができないように構成してもよい。
(16)本実施形態では、設定キースイッチ信号がオンであるときは外部信号4を出力するように制御した。ここで、設定キースイッチ信号のオンを1回検知したときは、所定時間を経過するまで外部信号4を出力し続けてもよい。このようにすれば、設定変更処理時に設定変更キーが抜かれても外部信号4を出力し続けることができるので、設定変更ゴト行為等を防止することに役立てることができる。
(17)設定変更又は設定確認処理中は、サブ制御基板80側では、プッシュボタン24や十字キー25(サブ側のボタン)を用いて、各種設定を可能としたもよい。たとえば、スピーカ22の音量の変更、マイスロ遊技における二次元コードの表示の変更、遊技履歴の表示内容の変更、演出ランプ21の点灯モードの変更、エラー履歴の確認、時刻設定等が挙げられる。
(18)本実施形態では、図68に示すように、「C0」エラーは、投入センサ2の異常に係るエラーである。しかし、これに限らず、投入センサ1の異常を検出したときにも、「C0」エラー又は他のエラーとして検出してもよい。
(19)メダル払出し信号の出力は、メダル払出し処理後に実行してもよく、あるいは、メダル払出し処理と同時に行ってもよい。
(20)払出しセンサ1、2は、本実施形態では2個設けたが、1個であってもよい。
(21)本実施形態で示したフローチャートにおいて、処理の順序は、図で示した順序に限られるものではなく、処理の順序を入替え可能な場合には、処理の順序を入れ替えることも可能である。
(22)本実施形態では、遊技機の一例としてスロットマシン10を例に挙げたが、弾球遊技機や封入式遊技機等にも適用可能である。
(23)本実施形態及び上記の各種の変形例は、単独で実施されることに限らず、適宜組み合わせて実施することが可能である。
<付記>
本願の出願当初の請求項に係る発明(当初発明)が解決しようとする課題、当初発明に係る課題を解決するための手段及び当初発明の効果は、以下の通りである。
(a)当初発明が解決しようとする課題
従来の技術において、外部に送信するメダルの払出し信号は、単に、払出し枚数だけオンとオフとを繰り返す信号であり、ある程度のプログラム容量を必要としていた。このため、プログラム容量の削減が望まれていた。
当初発明が解決しようとする課題は、遊技媒体の払出し信号を外部に送信する遊技機において、簡素な演算処理により、正確な払出し数を外部信号として出力可能にすることである。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明は、以下の解決手段によって上述の課題を解決する。なお、かっこ書きで、対応する実施形態の構成を示す。
当初発明は、
遊技の進行を制御するメイン処理(M_MAIN)と、
前記メイン処理の実行中に、前記メイン処理とは異なる処理を割込みによって実行する割込み処理(I_INTR)と
を有し、
入賞役に応じた遊技媒体の払出し数に対応する払出し信号を外部に出力する遊技機であって、
払出し数データを記憶する払出し数データ記憶手段(F06E;メダル払出し枚数データ)と、
前記払出し信号を外部に出力するか否かを定めるデータを記憶する払出し信号データ記憶手段(F027;メダル信号データのD5ビット)と、
前記払出し信号を外部に出力する回数を記憶する払出し信号出力回数記憶手段と(F070;メダル払出し信号出力回数)と
を備え、
前記メイン処理では、
前記払出し数データ記憶手段に記憶された払出し数データを読み込み(ステップS453、S457、S459)、読み込んだ払出し数データを2倍にする演算aを実行し(ステップS460)、
前記払出し信号出力回数記憶手段に記憶されている回数に、演算aにより求めた値を加算することにより、前記払出し信号出力回数記憶手段に記憶されている回数を更新し(ステップS462)、
前記割込み処理では、
所定時間が経過したか否かを判断し(ステップS961)、
前記所定時間が経過したと判断したときは、前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないか否かを判断し(ステップS966)、
前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないと判断したときは、前記払出し信号出力回数記憶手段に記憶されている回数の減算処理(ステップS967)と、前記払出し信号データ記憶手段に記憶されているデータの更新処理(ステップS968)とを実行し、
前記払出し信号データ記憶手段に記憶されたデータが前記払出し信号を外部に出力することを示すデータであるときに、前記払出し信号を外部に出力する(ステップS970)
ことを特徴とする。
(c)当初発明の効果
当初発明によれば、簡素な演算処理により、払出し数に対応する数の払出し信号を外部に正しく送信することができる。
10 スロットマシン(遊技機)
11 フロントカバー
12 基体部
13 表示窓
14 払出し口
15 メダル受け皿
16 ドアスイッチ
21 演出ランプ
22 スピーカ
23 画像表示装置
24 プッシュボタン
25 十字キー
31 リール
32 モータ
35 メダル払出し装置
35a ホッパー
35b サブタンク
36 ホッパーモータ
37a、37b 払出しセンサ
38 満杯センサ
39 リールセンサ
40 ベットスイッチ
41 スタートスイッチ
42 ストップスイッチ
43 精算スイッチ
44 メダル投入口
45 メダルセレクタ
46 通路センサ
47 ブロッカ
48a、48b 投入センサ
50 電源ユニット
51 電源スイッチ
52 設定キースイッチ
53 設定変更/リセットスイッチ
54 設定ドアスイッチ
60 メイン制御基板(メイン制御手段、遊技制御手段(基板)、主制御手段(基板))
61 RWM
62 メインCPU
62a 設定変更手段
62b 役抽選手段
62c リール制御手段
62d 入賞判定手段
62e 払出し手段
62f 遊技状態制御手段
62g コマンド制御手段
63 設定値表示LED
70 表示基板
71 貯留数表示LED
72 獲得数表示LED
73 状態表示LED
73a リプレイ表示LED
73b 投入可表示LED
73c 精算表示LED
73d 遊技開始LED
73e 1枚投入表示LED
73f 2枚投入表示LED
73g 3枚投入表示LED
80 サブ制御基板(サブ制御手段、演出制御手段(基板)、副制御手段(基板))
81 RWM
82 サブCPU
82a 演出出力制御手段
100 外部集中端子板
本発明は、以下の解決手段によって上述の課題を解決する。なお、かっこ書きで、対応する実施形態の構成を示す。
本発明は、
遊技の進行を制御するメイン処理(M_MAIN)と、
前記メイン処理の実行中に、前記メイン処理とは異なる処理を割込みによって実行する割込み処理と
を有し、
遊技媒体(メダル)のベット数に対応するベット信号を外部に出力する遊技機であって、
ベット数データを記憶するベット数データ記憶手段(F06D;_NB_PLAY_MEDAL)と、
前記ベット信号を外部に出力するか否かを定めるデータを記憶するベット信号データ記憶手段(F027;_PT_MEDAL_IOのD6ビット)と、
前記ベット信号を外部に出力する回数を記憶するベット信号出力回数記憶手段(F06F;_CT_MEDAL_IN)と
を備え、
前記メイン処理では、
前記ベット数データ記憶手段に記憶されたベット数データを読み込み、読み込んだベット数データを2倍にする演算a(ステップS440〜S441)を実行し、
前記ベット信号出力回数記憶手段に記憶されている回数に、演算aにより求めた値を加算することにより、前記ベット信号出力回数記憶手段に記憶されている回数を更新し(S441)、
前記払出し信号出力回数記憶手段に記憶されている回数を更新した後、遊技媒体の払出しがあるときは払出し処理を実行し、
前記割込み処理では、
所定時間が経過したか否かを判断し(ステップS961)、
前記所定時間が経過したと判断したときは、前記ベット信号出力回数記憶手段に記憶されている回数が「0」でないか否かを判断し(ステップS963)、
前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないと判断したときは、A)前記払出し信号出力回数記憶手段に記憶されている回数の減算処理(ステップS964)と、B)前記払出し信号データ記憶手段に記憶されているデータの更新処理であって、前記払出し信号データ記憶手段に記憶されているデータが前記払出し信号を外部に出力することを示すデータであるときは前記払出し信号を外部に出力しないことを示すデータに更新し、前記払出し信号を外部に出力しないことを示すデータであるときは前記払出し信号を外部に出力することを示すデータに更新する処理(ステップS965)とを実行し、
前記払出し信号データ記憶手段に記憶されたデータが前記払出し信号を外部に出力することを示すデータであるときに、前記払出し信号を外部に出力する処理(ステップS970、ステップS971)を実行し、
前記払出し信号出力回数記憶手段に記憶されている回数が「0」になるまで、前記払出し信号出力回数記憶手段に記憶されている回数の減算処理と、前記払出し信号データ記憶手段に記憶されているデータの更新処理とを、繰り返し実行する
ことを特徴とする。

Claims (1)

  1. 遊技の進行を制御するメイン処理と、
    前記メイン処理の実行中に、前記メイン処理とは異なる処理を割込みによって実行する割込み処理と
    を有し、
    入賞役に応じた遊技媒体の払出し数に対応する払出し信号を外部に出力する遊技機であって、
    払出し数データを記憶する払出し数データ記憶手段と、
    前記払出し信号を外部に出力するか否かを定めるデータを記憶する払出し信号データ記憶手段と、
    前記払出し信号を外部に出力する回数を記憶する払出し信号出力回数記憶手段と
    を備え、
    前記メイン処理では、
    前記払出し数データ記憶手段に記憶された払出し数データを読み込み、読み込んだ払出し数データを2倍にする演算aを実行し、
    前記払出し信号出力回数記憶手段に記憶されている回数に、演算aにより求めた値を加算することにより、前記払出し信号出力回数記憶手段に記憶されている回数を更新し、
    前記割込み処理では、
    所定時間が経過したか否かを判断し、
    前記所定時間が経過したと判断したときは、前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないか否かを判断し、
    前記払出し信号出力回数記憶手段に記憶されている回数が「0」でないと判断したときは、前記払出し信号出力回数記憶手段に記憶されている回数の減算処理と、前記払出し信号データ記憶手段に記憶されているデータの更新処理とを実行し、
    前記払出し信号データ記憶手段に記憶されたデータが前記払出し信号を外部に出力することを示すデータであるときに、前記払出し信号を外部に出力する
    ことを特徴とする遊技機。
JP2014218973A 2014-10-28 2014-10-28 遊技機 Active JP5717161B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014218973A JP5717161B1 (ja) 2014-10-28 2014-10-28 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014218973A JP5717161B1 (ja) 2014-10-28 2014-10-28 遊技機

Publications (2)

Publication Number Publication Date
JP5717161B1 JP5717161B1 (ja) 2015-05-13
JP2016083257A true JP2016083257A (ja) 2016-05-19

Family

ID=53277386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014218973A Active JP5717161B1 (ja) 2014-10-28 2014-10-28 遊技機

Country Status (1)

Country Link
JP (1) JP5717161B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160731B1 (ja) * 2016-03-31 2017-07-12 サミー株式会社 スロットマシン

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006034325A (ja) * 2004-07-22 2006-02-09 Fujishoji Co Ltd 遊技機
JP2006034324A (ja) * 2004-07-22 2006-02-09 Fujishoji Co Ltd 遊技機
JP2009066171A (ja) * 2007-09-13 2009-04-02 Daito Giken:Kk 遊技台
JP2014218972A (ja) * 2013-05-10 2014-11-20 トヨタ自動車株式会社 燃料圧力制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006034325A (ja) * 2004-07-22 2006-02-09 Fujishoji Co Ltd 遊技機
JP2006034324A (ja) * 2004-07-22 2006-02-09 Fujishoji Co Ltd 遊技機
JP2009066171A (ja) * 2007-09-13 2009-04-02 Daito Giken:Kk 遊技台
JP2014218972A (ja) * 2013-05-10 2014-11-20 トヨタ自動車株式会社 燃料圧力制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160731B1 (ja) * 2016-03-31 2017-07-12 サミー株式会社 スロットマシン
JP2017176627A (ja) * 2016-03-31 2017-10-05 サミー株式会社 スロットマシン

Also Published As

Publication number Publication date
JP5717161B1 (ja) 2015-05-13

Similar Documents

Publication Publication Date Title
JP5901034B1 (ja) 遊技機
JP5717160B1 (ja) 遊技機
JP5717162B1 (ja) 遊技機
JP6299557B2 (ja) 遊技機
JP5813897B1 (ja) 遊技機
JP6380231B2 (ja) 遊技機
JP5717163B1 (ja) 遊技機
JP6168027B2 (ja) 遊技機
JP6260574B2 (ja) 遊技機
JP6358151B2 (ja) 遊技機
JP5871349B1 (ja) 遊技機
JP6213442B2 (ja) 遊技機
JP6252432B2 (ja) スロットマシン
JP2016214433A (ja) 遊技機
JP2016214434A (ja) 遊技機
JP6421695B2 (ja) 遊技機
JP6358383B2 (ja) 遊技機
JP6032687B2 (ja) 遊技機
JP5717161B1 (ja) 遊技機
JP6260572B2 (ja) 遊技機
JP6358152B2 (ja) 遊技機
JP6260573B2 (ja) 遊技機
JP5959030B2 (ja) 遊技機
JP6299631B2 (ja) 遊技機
JP6365407B2 (ja) 遊技機

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150311

R150 Certificate of patent or registration of utility model

Ref document number: 5717161

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250