以下に、本発明の実施の形態を遊技機たるスロットマシンを例に説明する。
[1.用語の意味]
まず、本明細書で用いる用語の意味を説明する。
(ベット、規定数、貯留)
「ベットする」とは、遊技を行うために遊技媒体(遊技メダルや遊技球等(以下、遊技メダル等))を賭けることを意味する。なお、管理遊技機(封入式遊技機、メダルレス遊技機等とも称する場合がある)においては、遊技を行うための遊技媒体として電子情報を意味する。本実施形態では、遊技メダルが投入口(図4に示す遊技メダル投入口26に相当)から投入されるか、貯留されている遊技メダルをベットするためのベットスイッチ(図4に示すベットスイッチ33に相当)が操作されることで、遊技メダルがベットされる。なお、簡略のため、「(遊技メダルが)遊技メダル投入口26から投入される」ことを「手入れ(手で投入の略)される」と記述する。
「規定数」とは、1回の遊技を行う(1回の遊技の結果を得る)ためにベットする必要がある遊技媒体(遊技メダル等)の数のことを意味する。本実施形態では、規定数は「3枚」に設定されている。なお、規定数は「1枚」や「2枚」に設定されていてもよいし、「2枚」又は「3枚」のように複数の規定数が設定されていてもよい。また、規定数は、遊技状態ごとに異なる値(例:非ボーナス遊技=3枚、ボーナス遊技=2枚)が設定されていてもよい。
「貯留する」とは、遊技媒体(遊技メダル等)を貯留(クレジット)することを意味する。本実施形態では、貯留することができる遊技媒体の上限は「50(枚)」に設定されている。
例えば、遊技メダルが1枚もベットされていない状況下において、4枚の遊技メダルが手入れされたときは、3枚(規定数に達するまで)の遊技メダルがベットされ、残り1枚の遊技メダルが貯留される。すなわち、遊技メダルが手入れされたときは、ベットされる場合と貯留される場合とがある。また、45枚の遊技メダルが貯留されている状況下において、9枚の遊技メダルが払い出されるときは、5枚(50枚(上限)に達するまで)の遊技メダルが貯留され、残りの4枚の遊技メダルが払出口(図2に示す払出口53に相当)から払い出される。すなわち、遊技メダルが払い出されるときは、貯留される場合と、払出口から払い出される場合とがある。
また、遊技者が「遊技メダルを獲得する(遊技者側の視点)」ことと、遊技者に対して「遊技メダルを払い出す(スロットマシン10側の視点)」こととは同義である。
(RT)
「RT」とは、役(役の詳細は後述する)の抽選状態のことを意味する。また、「RT移行」とは、1のRTから他の1のRTに移行することを意味する。すなわち、移行の前後において、役抽選の抽選対象となる役が異なったり、役抽選の抽選対象となる役が同じであっても、何れかの役の当選確率が異なったりする。
本実施形態では、RTとして、非RT、RT1、RT2、RT3、及びRT4を有している(各RTの詳細は後述する)。ちなみに、本実施形態における「非RT」とは、RTの概念に含まれないという意味ではなく、「RT0」と同義である。
また、前述した各RTのうち、非RT、RT1、RT2、及びRT3は非内部中遊技(詳細は後述する)におけるRTであり、RT4は内部中遊技(詳細は後述する)におけるRTである。
さらに、本実施形態では、RTとして、1種BB作動時(RB作動時)も有している。なお、1種BB作動時(RB作動時)は特別遊技(詳細は後述する)におけるRTである。なお、「特別遊技」は「ボーナス遊技」や「ボーナスゲーム」とも称される。
(表示ライン)
「表示ライン」とは、複数種類の図柄がそれぞれに付された複数のリールが停止したときに、所定の表示窓を通して図柄の組合せが表示されるラインのことを意味する。表示ラインの詳細は後述する。
「有効ライン(有効化されている表示ラインの略称)」とは、表示判定の対象となる(有効化されている)表示ラインのことを意味する。また、「無効ライン(無効化されている表示ラインの略称)」とは、表示判定の対象とならない(無効化されている)表示ラインのことを意味する。なお、簡略のため、「図柄が有効ラインに表示される」ことを「図柄が表示される」と記述し、「図柄の組合せが有効ラインに表示される」ことを「図柄の組合せが表示される」と記述することがある。なお、上記の「表示判定」とは、有効ラインに表示された図柄の組合せが何れかの役に対応する図柄の組合せと一致するか否かを判定することである。なお、何れかの役に対応する図柄の組合せが表示されることを入賞と称する場合、「表示判定」は「入賞判定」とも称されることがある。また、その場合、「有効ライン」は「入賞ライン」とも称されることがある。
(再遊技、入賞、役物、役物連続作動装置)
「再遊技」とは、遊技媒体(遊技メダル等)をベットすることなく行うことができる遊技のことを意味する。本実施形態では、再遊技に係る条件装置に対応する図柄の組合せが表示されると、今回遊技を行うためにベットされていた遊技メダルの枚数と同数の遊技メダルが自動的にベットされる。なお、簡略のため、「今回遊技を行うためにベットされていた遊技メダルの枚数と同数の遊技メダルが自動的にベットされる」ことを「遊技メダルが自動的にベットされる」と記述する。
「入賞」とは、遊技媒体(遊技メダル等)を獲得するために必要な図柄の組合せが表示されることを意味する。
「普通役物(SB)」とは、入賞に係る図柄の組合せの数を増加させ、又は入賞に係る条件装置が作動する確率を上昇させる役物で、特定の図柄の組合せが表示された場合に作動し、1回の遊技が行われた(1回の遊技の結果が得られた)場合に作動を終了するものを意味する。
「第一種特別役物(RB)」とは、入賞に係る図柄の組合せの数を増加させ、又は入賞に係る条件装置が作動する確率を上昇させる役物で、あらかじめ定められた場合に作動し、12回を超えない回数の遊技が行われる(12回を超えない回数の遊技の結果が得られる)まで作動を継続することができるものを意味する。なお、第一種特別役物(RB)は、その作動中に8回を超えない回数のうちからあらかじめ定められた1の回数の入賞があったとき又は第一種特別役物に係る役物連続作動装置の作動が終了したときのうち早い方のときに、その作動を終了する。
「第二種特別役物(CB)」とは、役抽選の結果にかかわらず、入賞に係る条件装置を作動させる役物で、あらかじめ定められた場合に作動し、1回の遊技が行われた(1回の遊技の結果が得られた)場合に作動を終了するものを意味する。
「役物連続作動装置(1種BB、2種BB)」とは、第一種特別役物又は第二特別役物を連続して作動させることができる装置で、特定の図柄の組合せが表示された場合に作動し、あらかじめ定められた場合に作動を終了するものを意味する。
(条件装置、役)
「条件装置」とは、その作動が入賞、再遊技、役物又は役物連続作動装置の作動に係る図柄の組合せが表示されるために必要な条件とされている装置で、役抽選に当選した場合に作動するものを意味する。
すなわち、条件装置は、入賞に係る条件装置と、再遊技に係る条件装置と、役物又は役物連続作動装置の作動に係る条件装置とに大別される。
役物又は役物連続作動装置の作動に係る条件装置には、普通役物(SB)の作動に係る条件装置(SB)、第一種特別役物(RB)の作動に係る条件装置(RB)、第二種特別役物(CB)の作動に係る条件装置(CB)、第一種特別役物に係る役物連続作動装置の作動に係る条件装置(1種BB)、第二種特別役物に係る役物連続作動装置の作動に係る条件装置(2種BB)がある。
なお、本実施形態では、入賞に係る条件装置として、23個の入賞に係る条件装置(入賞01〜入賞23)を有している。また、再遊技に係る条件装置として、11個の再遊技に係る条件装置(再遊技01〜再遊技11)を有している。さらに、役物又は役物連続作動装置の作動に係る条件装置として、1個の役物又は役物連続作動装置の作動に係る条件装置(1種BB)を有している。
「役」とは、役抽選の抽選対象となるものを指す。本実施形態では、1つの役に1個以上の条件装置が対応している。すなわち、何れかの役に当選したときは、当選した役(当選役)に対応する1個以上の条件装置が作動するようになっている。
役は、入賞に係る条件装置が作動する「入賞役」と、再遊技に係る条件装置が作動する「再遊技役」と、役物又は役物連続作動装置の作動に係る条件装置が作動する「特別役」とに大別される。
「特別役」は「ボーナス」とも称される。なぜなら、特別役に対応する図柄の組合せが表示されると、役物又は役物連続作動装置が作動し、その作動中は遊技媒体(遊技メダル等)を獲得する(特別な利益を得る)ことに期待できるためである。
ボーナスには、普通役物(SB)の作動に係る条件装置に対応しているシングルボーナス(SB)、第一種特別役物(RB)の作動に係る条件装置に対応しているレギュラーボーナス(RB)、第二種特別役物(CB)の作動に係る条件装置に対応しているチャレンジボーナス(CB)、第一種特別役物に係る役物連続作動装置の作動に係る条件装置に対応している1種ビッグボーナス(1種BB)、第二種特別役物に係る役物連続作動装置の作動に係る条件装置に対応している2種ビッグボーナス(2種BB)がある。本実施形態では、ボーナスとして、1つのボーナス(1種BB)を有している。なお、ボーナスとして、2以上の1種BBを有していてもよいし、その他のボーナス(SB、RB、CB、または2種BB)を有していてもよい。
なお、SBやCBは、今回遊技において、当選したボーナスに対応する図柄の組合せが表示されなくても、当該ボーナスに対応する条件装置の作動が終了する。すなわち、これらのボーナスの当選情報は、次回遊技に持ち越されない。一方、RB、1種BB、及び2種BBは、当選したボーナスに対応する図柄の組合せが表示されるまで、当該ボーナスに対応する条件装置の作動が継続する。すなわち、これらのボーナスの当選情報は、次回遊技に持ち越されることがある。そして、一般的に、ボーナスに対応する条件装置の作動が継続しているときの遊技は「内部中遊技(ボーナスが内部で当選している遊技の略称)」と称され、ボーナスに対応する条件装置が作動していないときの遊技は「非内部中遊技(ボーナスが内部で当選していないときの遊技の略称)」と称されている。なお、本実施形態では、1種BBに対応する条件装置が作動したとき(1種BBに当選したとき)の遊技については、「非内部中遊技」に含めている。しかし、1種BBに対応する条件装置が作動したときの遊技については、「内部中遊技」に含めてもよい。
ボーナスに対応する図柄の組合せが表示されたときの役物又は役物連続作動装置の作動について、1種BBを例に説明する。1種BB(第一種特別役物に係る役物連続作動装置)は、当選した1種BBに対応する図柄の組合せが表示された場合に作動し、終了条件を満たすまで作動が継続する。例えば、終了条件は、285枚を超えない枚数のうちから、あらかじめ定められた1の数を超える遊技メダルが獲得されたときとすることができる。なお、終了条件は、あらかじめ定められた1の回数のRBの作動があったとき(但し、最後のRBの作動が終了したとき)や、あらかじめ定められた1の回数の遊技が行われた(1の回数の遊技の結果が得られた)ときとしてもよい。また、1種BB(第一種特別役物に係る役物連続作動装置)が作動しているときのRB(第一種特別役物)は、当選したRBに対応する図柄の組合せが表示された場合に作動してもよいし、無条件で作動してもよい。本実施形態における1種BB(第一種特別役物に係る役物連続作動装置)は、当選した1種BBに対応する図柄の組合せが表示された場合に作動し、285枚を超える遊技メダルが獲得されたときに作動を終了する。また、1種BBが作動している間は、RB(第一種特別役物)は無条件で作動し、2回の入賞又は2回の遊技があったときに作動を終了し、1種BBの終了条件を満たしていない場合には、再度、RBが作動する。
「入賞役」は「小役」とも称される。なぜなら、入賞役に対応する図柄の組合せが表示されると、遊技媒体(遊技メダル等)が払い出されるためである。換言すると、遊技媒体(遊技メダル等)を獲得するという小さな利益を得ることができるためである。本実施形態では、小役として、24の小役(入賞A1〜入賞A6、入賞B1〜入賞B3、入賞C、入賞D、入賞E、入賞F、入賞G、入賞H、入賞I、入賞J、入賞K、入賞L、入賞M、入賞N、入賞O、入賞P、入賞Q)を有している。
なお、小役は、今回遊技において、当選した小役に対応する図柄の組合せが表示されなくても、当該小役に対応する条件装置の作動が終了する。すなわち、小役の当選情報は次回遊技に持ち越されない。
「再遊技役」は「リプレイ」とも称される。なぜなら、再遊技役に対応する図柄の組合せが表示されると、遊技メダルが自動的にベットされ、再遊技を行う(リプレイ)ことができるためである。本実施形態では、リプレイとして、15のリプレイ(再遊技A1〜再遊技A6、再遊技B1〜再遊技B3、再遊技C、再遊技D、再遊技E、再遊技F、再遊技G、再遊技H)を有している。
なお、リプレイは、今回遊技において、当選したリプレイに対応する図柄の組合せが表示されなくても、当該リプレイに対応する条件装置の作動が終了する。すなわち、リプレイの当選情報は次回遊技に持ち越されない。
本実施形態では、小役の一部として、ストップスイッチ35の操作態様によって得られる遊技の結果が異なる小役(押し順ベル(入賞A群,入賞B群))を有している。また、リプレイの一部として、ストップスイッチ35の操作態様によって得られる遊技の結果が異なるリプレイ(押し順リプレイ(再遊技A群,再遊技B群))を有している。詳細は後述するが、入賞A群は入賞A1〜入賞A6の総称であり、入賞B群は入賞B1〜入賞B3の総称であり、再遊技A群は再遊技A1〜再遊技A6の総称であり、再遊技B群は再遊技B1〜再遊技B3の総称である。
ここで「ストップスイッチ35の操作態様」とは、ストップスイッチ35の押し順(押す順番)や、ストップスイッチ35を押すタイミングを指す上位概念である。
「ストップスイッチ35の有利な操作態様」とは、ストップスイッチ35の操作態様によって得られる遊技の結果が異なる場合において、有利な遊技の結果を得るための操作態様を意味する。具体的には、獲得することができる遊技媒体(遊技メダル等)の数が多い方の図柄の組合せを表示させるための操作態様や、有利なRTへの移行条件となっている図柄の組合せを表示させるための操作態様や、不利なRTへの移行条件となっている図柄の組合せを表示させないための操作態様を意味する。
なお、「ストップスイッチ35の有利な操作態様」は「ストップスイッチ35の正解操作態様」とも称される。そのため、例えば、「ストップスイッチ35の操作態様」がストップスイッチ35の押し順を指す場合には、「ストップスイッチ35の有利な操作態様」は「ストップスイッチ35の正解押し順」とも称される。
「ストップスイッチ35の不利な操作態様」とは、ストップスイッチ35の操作態様によって得られる遊技の結果が異なる場合において、不利な遊技の結果を得るための操作態様を意味する。具体的には、獲得することができる遊技媒体(遊技メダル等)の数が少ない方の図柄の組合せを表示させるための操作態様や、有利なRTへの移行条件となっている図柄の組合せを表示させないための操作態様や、不利なRTへの移行条件となっている図柄の組合せを表示させるための操作態様を意味する。
なお、「ストップスイッチ35の不利な操作態様」は「ストップスイッチ35の不正解操作態様」とも称される。そのため、例えば、「ストップスイッチ35の操作態様」がストップスイッチ35の押し順を指す場合には、「ストップスイッチ35の不利な操作態様」は「ストップスイッチ35の不正解押し順」とも称される。
そして、本実施形態における「ストップスイッチ35の有利な操作態様を有する遊技」とは、押し順ベル(入賞A群,入賞B群)に当選した遊技や、押し順リプレイ(再遊技A群,再遊技B群)に当選した遊技のことである。
本実施形態では、押し順ベル(入賞A群)に当選した遊技において、ストップスイッチ35が不正解押し順で操作されたときは、ストップスイッチが操作されたタイミングによって、作動している何れの条件装置に対応する図柄の組合せも表示されないことがある。このように、当選した役に対応する図柄の組合せが表示されないことは、「(役を)取りこぼした((役の)取りこぼしが生じた)」とも称される。そして、本実施形態では、押し順ベル(入賞A群)に当選した遊技において、押し順ベル(入賞A群)を取りこぼしたときは、パターン01またはパターン02に対応する図柄の組合せが表示される。
本実施形態では、押し順ベル(入賞B群)に当選した遊技においては、ストップスイッチ35の押し順にかかわらず、取りこぼしは生じない。すなわち、必ず、作動している何れかの条件装置に対応する図柄の組合せが表示される。なお、押し順ベル(入賞B群)に当選した遊技においても、ストップスイッチ35が不正解押し順で操作されたときは、取りこぼしが生じ得るようにしてもよい。
本実施形態では、押し順リプレイ(再遊技A群,再遊技B群)に当選した遊技においては、ストップスイッチ35の押し順にかかわらず、取りこぼしは生じない。すなわち、必ず、作動している何れかの条件装置に対応する図柄の組合せが表示される。
(指示機能)
「指示機能」とは、前述した「ストップスイッチ35の有利な操作態様」を指示(報知)する機能である。「指示機能」は、遊技を制御するメイン制御基板(図4に示すメイン制御基板60に相当)が作動させる機能であって、例えば、メイン制御基板60と電気的に接続された所定の表示装置に、ストップスイッチ35の有利な操作態様を特定することができる情報を表示(報知)する。
なお、「指示機能」は、以下のような広義及び狭義の解釈が可能であり、本実施形態では、必要に応じて、広義または狭義の何れの「指示機能」であるか注釈を付ける。
広義の「指示機能」とは、ストップスイッチ35の操作態様によって得られる遊技の結果が異なる小役やリプレイに当選した遊技において、「ストップスイッチ35の有利な操作態様」を指示する機能である。すなわち、広義の「指示機能」とは、押し順ベル(入賞A群,入賞B群)に当選した遊技や、押し順リプレイ(再遊技A群,再遊技B群)に当選した遊技において、「ストップスイッチ35の正解押し順」を指示する機能である。
狭義の「指示機能」とは、ストップスイッチ35の操作態様によって得られる遊技の結果が異なる小役に当選した遊技において、「ストップスイッチ35の有利な操作態様」を指示する機能である。すなわち、狭義の「指示機能」とは、押し順ベル(入賞A群,入賞B群)に当選した遊技において、「ストップスイッチ35の正解押し順」を指示する機能である。
また、「指示機能」は、「ストップスイッチ35の有利な操作態様」を報知する機能でもある。すなわち「指示機能」は「報知機能」でもある。
「指示機能作動遊技」とは、指示機能を作動させる遊技のことを意味する。すなわち、指示機能作動遊技は1回の遊技である。なお、ストップスイッチ35の操作態様によって得られる遊技の結果が異なる小役やリプレイに当選した遊技であっても、指示機能を作動させないときは、当該遊技は指示機能作動遊技ではない。
(その他)
「設定差」とは、設定間における差を意味する。すなわち、「当選確率に設定差がない役」とは、当選確率が全ての設定で同じ役のことを意味する。また、「当選確率に設定差がある役」とは、当選確率が少なくとも2つの設定間で異なる役のことを意味する。
「設定」とは、入賞、再遊技、役物又は役物連続作動装置の作動に係るそれぞれの条件装置が作動する確率の組合せのことを意味する。本実施形態では、設定が高いほど、出玉率が高くなるよう設計されている。具体的には、設定1〜設定6の6つの設定のうち、設定6のときの出玉率が最も高くなっている。なお、設定が低いほど、出玉率が高くなるよう設計されていてもよい。
「出玉率」とは、「払い出される遊技媒体(遊技メダル等)の数/ベットされる遊技媒体(遊技メダル等)の数」で算出される値のことを意味する。出玉率が「1」のときは、遊技媒体(遊技メダル等)が増加も減少もしていないことを意味する。また、出玉率が「1」を超えるときは、遊技媒体(遊技メダル等)が増加していることを意味する。そして、出玉率が「1」未満のときは、遊技媒体(遊技メダル等)が減少していることを意味する。
「PB=1」とは、ストップスイッチ35が操作されたタイミングにかかわらず、所望する図柄を有効ラインに表示することができることを意味する。本実施形態では、ストップスイッチ35が操作された瞬間の図柄から4個先の図柄までが表示する(引き込む)ことができる図柄となる。例えば、後述の図17を参照すると、左リール39aの図柄番号「1」のリプレイ図柄が有効ライン(左上段)に位置する瞬間に左ストップスイッチ35aが操作されたときは、そこから4個先の図柄番号「5」のベル図柄までが、有効ライン(左上段)に表示することができる図柄となる。
さらに図17を参照すると、左リール39aの図柄番号「1」のリプレイ図柄から5個先の図柄は、図柄番号「6」のリプレイ図柄である。また、左リール39aの図柄番号「6」のリプレイ図柄から5個先の図柄は、図柄番号「11」のリプレイ図柄である。さらに、左リール39aの図柄番号「11」のリプレイ図柄から5個先の図柄は、図柄番号「16」のリプレイ図柄である。そして、左リール39aの図柄番号「16」のリプレイ図柄から5個先の図柄は、図柄番号「1」のリプレイ図柄である。すなわち、左リール39aのリプレイ図柄は、左ストップスイッチ35aが操作されたタイミングにかかわらず、有効ライン(左上段)に表示することができる図柄である。すなわち、左リール39aのリプレイ図柄は「PB=1」である。なお、図柄の組合せについて、「PB=1」であるというときは、図柄の組合せを構成する図柄の全てが「PB=1」であることを意味する。
「PB≠1」とは、ストップスイッチ35が操作されたタイミングによっては、所望する図柄を有効ラインに表示することができないことを意味する。なお、図柄の組合せについて、「PB≠1」であるというときは、図柄の組合せを構成する図柄の少なくとも1つが「PB≠1」であることを意味する。
「N−1」遊技目、「N」遊技目、「N+1」遊技目、・・・(Nは2以上の整数)と遊技が行われていく場合において、現在の遊技が「N」遊技目であるとき、「N」遊技目の遊技を「今回遊技」と称する。また、「N−1」遊技目の遊技を「前回遊技」と称し、「N+1」遊技目の遊技を「次回遊技」と称する。
「差枚数」とは、「払い出された遊技メダルの枚数−ベットされた遊技メダルの枚数」で算出される値のことを意味する。
本明細書において、数値の末尾(特に、8ビットデータの末尾)に「(B)」を付した場合は、2進数の数値であることを意味する。同様に、数値の末尾に「(D)」を付した場合は、10進数の数値であることを意味する。同様に、数値の末尾に「(H)」を付した場合は、16進数の数値であることを意味する。具体的には、10進数の「16」は、2進数では「00010000(B)」と記述し、10進数では「16(D)」と記述し、16進数では「10(H)」と記述する。但し、2進数、10進数、16進数の何れであるかが自明であるときは、それぞれ「(B)」、「(D)」、「(H)」を省略する。
また、8ビットの数値以外の2進数表記においては、末尾の「(B)」を省略する。例えば、「Aレジスタの値が「0」」のような表記における「0」は、実際には「00000000(B)」の2進数を意味するものであるが、これを省略して「0」とすることがある。
また、2バイトレジスタの値を16進数表記することがある。例えば、「HLレジスタ」は、各1バイトのHレジスタとLレジスタとを合わせたものであり、全体で2バイトの情報を記憶可能なレジスタ(ペアレジスタと称される場合もある)であるが、「HLレジスタの値が「F02A(H)」」といった表記が行われる。このとき、個別のレジスタの値については、一例としてHレジスタが上位ビットを記憶してLレジスタが下位ビットを記憶する場合、Hレジスタの値が「F0(H)」すなわち「11110000(B)」で、Lレジスタの値が「2A(H)」すなわち「00101010(B)」となる。
次に、図面を参照しながら、本発明の実施の形態を説明する。
[2.スロットマシンの概略構成]
図1は、本実施形態に係るスロットマシンの外観斜視図である。
図1に示すように、本実施形態に係るスロットマシン10の筐体は、基体1と、開閉軸を支持軸として基体1の正面(前面)を開放/閉塞するフロントドア(フロントカバーまたは前扉とも称する)2とから構成されている。図1には図示しないが、フロントドア2を開けると、その開放が後述するドアスイッチ15によって検知される。
基体1の内部には、電源スイッチ11を含む電源ユニット、ホッパー50を含む遊技メダル払出装置49、3個のリール39を含む図柄表示装置38等が収容されている。遊技メダル払出装置49は、払出口53(図2参照)から遊技メダルを払い出すことができる。
また、基体1の内面側の背面には、メイン制御基板60を内部に収容する基板ケース16が取り付けられている。なお、基板ケース16及びメイン制御基板60は、フロントドア2を開放したときに、基板ケース16のかしめ部の状態を目視で容易に確認できるようにするため、図柄表示装置38よりも上方の比較的見やすい位置に取り付けられている。
基板ケース16のかしめ部は、基板ケース16を封印する封印部材であって、基板ケース16は、かしめ部を破壊しなければ開封することができないように構成される。そして、メイン制御基板60は、かしめ部によって封印される透明な基板ケース16に収容されることで、かしめ部を破壊しなければアクセスすることができないように構成され、高いセキュリティ性が確保される。また、基板ケース16の表面には、収容されているメイン制御基板が正規のメイン制御基板60であることを証明するためのシール(かしめ部の開封記録等を記載するシール)が貼付されている。また、メイン制御基板60上には、設定値を表示するための設定値表示LED66(後述するデジット5)が実装されている。
また、図1に示すように、フロントドア2の裏面側においては、表示窓17の上方部(図2に示す画像表示装置21の裏側付近)に、サブ制御基板80を内部に収容する透明な基板ケースが取り付けられている。サブ制御基板80は、メイン制御基板60と、ハーネスや光ファイバ(何れも不図示)によって電気的に接続されている。
なお、図1には明示していないが、フロントドア2を開放している状況下において、フロントドア2の裏面から表示窓17を介して、フロントドア2の前方に設けられているスタートスイッチ34が視認可能となっている。このように構成することによって、後述する設定変更中において、ホール店員がスタートスイッチ34を操作しようとするときに、フロントドア2が開放されている状況下であっても、フロントドア2の裏面から表示窓17を介して、フロントドア2の前方に設けられているスタートスイッチ34の位置を確認することができ、設定変更中におけるスタートスイッチ34の操作をスムーズに行うことができる。換言すると、フロントドア2の前方にある部品を、フロントドア2の後方から確認することができるため、フロントドア2が開放されている状況下であっても、フロントドア2の前方にある部品の操作が容易となる。
図2は、本実施形態に係るスロットマシンの正面外観図である。図2には、図1に例示したスロットマシン10を正面から見たときの外観図が示されている。
図2に示すように、スロットマシン10の正面中央付近には、リール39(図柄)の一部を視認できるように表示窓17が設けられている。表示窓17の上方には、演出等を行う(画像を表示する)画像表示装置21が設けられている。また、表示窓17の下方には、スタートスイッチ34、及びストップスイッチ35(左ストップスイッチ35a、中ストップスイッチ35b、右ストップスイッチ35c)が設けられている。さらに、スタートスイッチ34及びストップスイッチ35の上方、かつ表示窓17の下方から突出した部分には、遊技者が操作する種々の操作スイッチ等が設けられている。
図3は、本実施形態に係るスロットマシンの一部分の上面図である。図3には、上面から見たときのスロットマシン10の種々の操作スイッチ等が設けられている部分が示されている。
図3に示すように、図中の左側から順に、表示装置(貯留枚数表示LED45、獲得枚数表示LED47、状態表示LED48)、操作スイッチの一部(1ベットスイッチ33a、3ベットスイッチ33b、精算スイッチ36)、十字キー(「カーソルキー」とも称される。)22及びメニューボタン23、演出ボタン24、遊技メダル投入口26が配置されている。
なお、図1〜図3に示した各構成の配置は、本実施形態に係るスロットマシン10における配置の一例に過ぎず、必ずしも図示した位置に配置されている必要はなく、任意の位置に変更してもよい。具体的には例えば、表示装置は、表示窓17の左側に配置してもよい。また、図2及び図3に示した全ての構成が、必ずしも配置されている必要はない。具体的には例えば、メニューボタン23が有する機能を演出ボタン24が兼用するようにすれば、メニューボタン23を配置しなくてもよい。このように、機能の兼用によって構成の数を少なくする場合は、部品の製造コストを抑制できるという効果に期待できるだけでなく、操作スイッチの配置間隔を空けられることによって、遊技者による誤操作を防止できるという効果も期待できる。
図4は、本実施形態に係るスロットマシンにおける制御の概略を示すブロック図である。図4には、スロットマシン10において、各制御を行うために必要な構成の代表例が示されており、これら各構成について詳述していく。なお、図4において、構成間を結ぶ実線の矢印は信号等の入出力方向を示している。
[2−1.メイン制御基板]
まず、本実施形態に係るスロットマシン10は、代表的な制御基板として、遊技を制御するメイン制御基板(「主制御基板」、「メイン制御手段」、「主制御手段」とも称される。)60と、演出等を制御するサブ制御基板(「副制御基板」、「サブ制御手段」、「副制御手段」とも称される。)80と、を備えている。
メイン制御基板60は、入力ポート61、出力ポート62、RWM(Read Write Memory)63、ROM(Read Only Memory)64、及びメインCPU(Central Processing Unit)65を備えている。なお、図4は例示に過ぎず、メイン制御基板60の構成は、これに限定されるものではない。
入力ポート61は、遊技用の周辺機器(例えば、ベットスイッチ33等の種々の操作スイッチ)からメインCPU65に対しての信号が入力される接続部である。一般に、入力ポート61は複数のポートから構成される。本実施形態では、「入力ポート_0」、入力ポート_1、及び入力ポート_2の3個のポートを有しているとする。以降の説明では、簡略のため、上記の入力ポートを順に「入力ポート0」、「入力ポート1」、「入力ポート2」と表記する。このような表記は、次に説明する出力ポート62でも同様である。
出力ポート62は、メインCPU65から遊技用の周辺機器(例えば、モータ40等)に対しての信号が出力される接続部である。すなわち、メイン制御基板60(メインCPU65)とこれら遊技用の周辺機器とは、入力ポート61や出力ポート62を介して、電気的に接続されている。入力ポート61と同様、出力ポート62は一般には複数のポートから構成される。本実施形態では、出力ポート62は、「出力ポート0」〜「出力ポート8」の9個のポートを有しているとする。
なお、入力ポート61の数や出力ポート62の数は一例であって、上記例に限定されるものではない。
入力ポート61や出力ポート62で取り扱われる具体的な信号については、後で図9〜図16を参照しながら詳述する。
RWM63は、データの読み出しと書き込みができる記憶装置(「記憶手段」とも称する。)であって、メインCPU65(メイン制御基板60)が遊技を制御するために必要な種々のデータ(例えば、タイマ値)等を記憶する。RWM63は、メインメモリとも呼ばれる。
ROM64は、読み出し専用の記憶装置(「記憶手段」とも称する。)であって、メインCPU65(メイン制御基板60)が遊技を制御するために必要なプログラムや種々のデータ(例えば、データテーブル)等を記憶する。
メインCPU65は、メイン制御基板60に搭載されたCPUを指し、ROM64に記憶されたプログラムに従って遊技を制御する(例えば、役抽選する等)。また、メインCPU65は、Aレジスタ〜Lレジスタ(汎用レジスタとも称する)やデータ送信用のレジスタ(内蔵レジスタとも称する)等の複数のレジスタを内蔵している。
本実施形態に係るスロットマシン10のメイン制御基板60には、RWM63、ROM64、及びメインCPU65を含んで構成されるMPU(Micro Processing Unit)が搭載されている。なお、RWM63とROM64については、MPUの外部(但し、メイン制御基板60上)にも搭載してもよい。同様に、後述するサブ制御基板80には、RWM83、ROM84、及びサブCPU85を含んで構成されるMPUが搭載されているが、RWM83とROM84については、MPUの外部(但し、サブ制御基板80上)にも搭載してもよい。
メイン制御基板60では、メインCPU65(MPUと捉えてもよい)の動作によって遊技が制御され、後述するメイン制御基板60の各手段(例えば、役抽選手段69等)が実現される。これら各手段の詳細は後述する。
[2−2.遊技メダルセレクタ]
次に、遊技用の周辺機器のうち、遊技メダルセレクタ27について説明する。図4に示した遊技メダル投入口26は、遊技メダルの手入れを受け付ける投入口である。手入れされた遊技メダルは、遊技メダルセレクタ27の内部に送られる。
ここで図5,図6には、遊技メダルセレクタの詳細な構造が例示されている。図5は、遊技メダルセレクタの外観斜視図であり、図6は、遊技メダルセレクタ内に配置されたブロッカ周辺の概略図である。
図4,図5,図6に示したように、遊技メダルセレクタ27は、通路センサ28、ブロッカ29、及び投入センサ30(個別には例えば、投入センサ30a,30b)を備え、メイン制御基板60と電気的に接続されている。なお、図4において、遊技メダルセレクタ27付近に示した矢印付きの破線は、遊技メダルを手入れしたときの処理の流れを示唆している。
遊技メダル投入口26から手入れされた遊技メダルは、スロットマシン10の内部に形成された一連の通路(遊技メダル通路)に案内されて遊技メダルセレクタ27を通過するように構成されている。そして、遊技メダル通路を流下した遊技メダルは、最終的にはホッパー50に送られるか、払出口53から返却される。以下に詳しく説明する。
手入れされた遊技メダルは、入口27a(図5参照)から遊技メダルセレクタ27の内部に案内され、まずは通路センサ(セレクタ通路センサと呼ばれることもある)28によって検知される。ここで、スロットマシン10では、投入された遊技メダルの通路(遊技メダル通路)として、遊技メダルの受け入れが許可されるか否か(許可/不許可)によって2通りの遊技メダル通路が用意されている。許可/不許可は、通路センサ28の下流に設けられたブロッカ29によって振り分けられる(図6参照)。
図6に示したように、ブロッカ29は、遊技メダルの受け入れに関する許可状態/不許可状態に応じて、許可位置(ON状態)と不許可位置(OFF状態)との間で変位可能に設けられることにより、投入された遊技メダルの受け入れの許可/不許可を振り分ける機能を有する。
ブロッカ29が遊技メダルの受け入れを許可する状態であるとき(許可位置)、投入された遊技メダルは許可状態の遊技メダル通路に案内される。このとき、通路センサ28で検知された遊技メダルは、許可状態の遊技メダル通路を流下し、ブロッカ29のさらに下流に設けられた投入センサ30(例えば、複数の光学センサであって、個別には投入センサ30a,30b)によって検知された後、出口27bから遊技メダルセレクタ27の外に送られ、ホッパー50に送られる。
投入センサ30は、例えば光学センサであって、遊技メダル通路に沿って複数の投入センサが設置されてもよい。本実施形態では、一例として、上流側に配置された投入センサ30aと、下流側に配置された投入センサ30bによって、2個の投入センサ30が配置されているとする。なお、後述する説明においては、上流側の投入センサ30aを「投入センサ1」、下流側の投入センサ30bを「投入センサ2」と称する場合がある。
一方、ブロッカ29が遊技メダルの受け入れを許可しない状態であるとき(不許可位置)、投入された遊技メダルは不許可状態の遊技メダル通路に案内される。このとき、通路センサ28で検知された遊技メダルは、不許可状態の遊技メダル通路を流下することで、投入センサ30に検知されることなく、出口27cから遊技メダルセレクタ27の外に送られ、払出口53から返却される。
ブロッカ29による許可/不許可の制御について補足する。スロットマシン10において、ブロッカ29は、遊技中(リール39の回転から、全てのリール39の回転の停止まで(遊技メダルを払い出す場合は、遊技メダルの払出の終了まで))は、遊技メダルの受け入れを許可しない(不許可状態である)。すなわち、ブロッカ29が遊技メダルの受け入れを許可する(許可状態である)のは、少なくとも遊技が行われていないときである。
[2−3.操作スイッチ]
次に、遊技用の周辺機器のうち、操作スイッチ32について説明する。図4に示すように、メイン制御基板60には、遊技者が操作する操作スイッチ32として、ベットスイッチ33(1ベットスイッチ33a,3ベットスイッチ33b)、スタートスイッチ34、ストップスイッチ35(左ストップスイッチ35a,中ストップスイッチ35b,右ストップスイッチ35c)、及び精算スイッチ36が電気的に接続されている。
ベットスイッチ33は、貯留された遊技メダルをベットするときに遊技者が操作するスイッチである。本実施形態では、ベットスイッチ33として、1枚の遊技メダルをベットする1ベットスイッチ33aと、3枚(規定数、最大枚数)の遊技メダルをベットする3ベットスイッチ(MAXベットスイッチ)40bとを備えている。但し、このような構成に限定されるものではなく、例えば、2枚の遊技メダルをベットする2ベットスイッチも備えてもよいし、何れか1個のベットスイッチを備えてもよい。
なお、1ベットスイッチ33aを複数回操作することによって、複数枚の遊技メダルをベットすることができる。具体的には、1ベットスイッチ33aを2回操作することによって、2枚の遊技メダルをベットすることができ、1ベットスイッチ33aを3回操作することによって、3枚の遊技メダルをベットすることができる。また、3ベットスイッチ33bは、1枚以上(但し、3枚未満)の遊技メダルがベットされているときに操作(押下)された場合には、3枚から既にベットされている枚数を減算した枚数の遊技メダルをベットすることができる。具体的には、例えば、1枚の遊技メダルがベットされているときに、3ベットスイッチ33bが操作された場合には、2枚の遊技メダルをベットする。
スタートスイッチ34は、リール39(左リール39a,中リール39b,右リール39c)を回転させるときに遊技者が操作するスイッチである。換言すると、遊技を開始するときに遊技者が操作するスイッチである。
ストップスイッチ35は、リール39の回転を停止させるときに遊技者が操作するスイッチである。本実施形態では、ストップスイッチ35として、3個のストップスイッチ35(左ストップスイッチ35a,中ストップスイッチ35b,右ストップスイッチ35c)を備えている。3個のストップスイッチ35は、3本のリール39(左リール39a,中リール39b,右リール39c)に1対1で対応している。例えば、左ストップスイッチ35aは、左リール39aの回転を停止させるときに操作するスイッチである。
本実施形態に係るスロットマシン10では、(指示機能が作動する場合は、指示された順番でストップスイッチ35が操作されるべきであるが、)遊技者は、3本のリール39の回転を停止させるために、対応する3個のストップスイッチ35を任意の順番で操作することができる。このとき、1番目に操作されるストップスイッチ35を「第1ストップスイッチ35」と呼び、同様に、2番目に操作されるストップスイッチ35を「第2ストップスイッチ35」、3番目に操作されるストップスイッチ35を「第3ストップスイッチ35」と呼ぶ。
精算スイッチ36は、ベットされた遊技メダルを払い戻すとき、及び/又は貯留された遊技メダルを精算するときに遊技者が操作するスイッチである。
[2−4.遊技メダル等表示装置、デジット]
次に、遊技用の周辺機器のうち、表示装置について説明する。図4に示すように、メイン制御基板60には、遊技メダル等表示装置43の表示基板44が電気的に接続されている。なお、図示を省略しているが、実際には、メイン制御基板60と表示基板44との間には、中継基板が設けられ、メイン制御基板60と中継基板とが接続され、及び中継基板と表示基板44とが接続されている。メイン制御基板60と表示基板44とは、直接、ハーネス等で接続されてもよいが、間に別の基板が介在してもよい。これは図4に例示した他の制御基板等にも適用でき、具体的には例えば、メイン制御基板60とサブ制御基板80との間に1つ以上の他の別基板(中継基板等)が介在する構成であってもよい。
表示基板44には、貯留枚数表示LED45、獲得枚数表示LED47、及び状態表示LED48が搭載されている。これらの各LEDは、遊技者が操作する操作スイッチの近傍に、遊技者から常に視認可能な位置に設けられる。なお、これらの各LEDは、1つの表示基板44に全てが搭載されている必要はなく、例えば、表示基板44A,44B,…のように複数の表示基板44を備え、各LED(貯留枚数表示LED45,獲得枚数表示LED47,状態表示LED48)が複数の表示基板44に分散して搭載されてもよい。
図7は、表示装置や操作スイッチの配置例を説明するための図である。図7は、スロットマシン10の正面の一部を拡大したイメージ図であって、貯留枚数表示LED45、獲得枚数表示LED47、状態表示LED48、精算スイッチ36、1ベットスイッチ33a、及び3ベットスイッチ33bの配置例を示している。また、図7において破線で示した表示基板44は、貯留枚数表示LED45、獲得枚数表示LED47、及び状態表示LED48の奥側(すなわち、スロットマシン10の内部)に配置されている。図7の配置例を参照しながら、個々の構成について詳述する。
貯留枚数表示LED45は、貯留されている遊技メダルの枚数を表示する表示装置であり、上位桁を表示するデジット1と下位桁を表示するデジット2とから構成されている。すなわち、図7に示した貯留枚数表示LED45は、貯留されている遊技メダルの枚数を2桁で表示することができる。
「デジット」とは、表示部(ディスプレイ)を意味し、本実施形態では、1つのデジットは、セブンセグメントA〜G(英数字を表示する7個の棒状のLED)及びセグメントDP(デジマルポイント。小数点を表示する1個のドット状のLED)から構成されている。なお、図7に示すように、表示基板44に搭載されたデジットは、デジット1〜4の4個であるが、メイン制御基板60には、この他にも複数のデジットを搭載することができる(例えば、設定値表示LED66や管理情報表示LED67)。本実施形態では、メイン制御基板60に別のデジット5を実装し、このデジット5は設定値表示LED66に相当するものとしている。
貯留枚数表示LED45は、貯留されている遊技メダル(貯留メダル)の枚数を表示するが、具体的には、「00」〜「50」(整数)の2桁の数字を表示する。例えば、遊技メダルが1枚もベットされていない、かつ遊技メダルが1枚も貯留されていない状態の場合は、貯留枚数表示LED45の表示は「00」である。この状態において、遊技メダル投入口26から1枚の遊技メダルが投入されると、1枚の遊技メダルがベットされる。さらに、2枚の遊技メダルが投入されると、規定数が3枚の場合は、3枚の遊技メダルがベットされる。したがって、投入された遊技メダルが3枚までであれば、1枚も遊技メダルは貯留されない。しかし、投入された遊技メダルが3枚を超えると、超えた分の遊技メダルは貯留されるとともに、その貯留枚数が貯留枚数表示LED45によって表示される。
本実施形態に係るスロットマシン10では、最大で50枚までの遊技メダルを貯留することができる。したがって、貯留枚数が50枚であるとき(貯留枚数表示LED45が「50」を表示しているとき)は、遊技メダル投入口26から遊技メダルが投入されても、その遊技メダルは貯留されない。具体的には、貯留枚数が50枚であるときは、ブロッカ29が不許可状態である(不許可位置にある)ため、投入された遊技メダルは不許可状態の遊技メダル通路を通って払出口53から返却される。
また、本実施形態に係るスロットマシン10では、入賞に係る条件装置に対応する図柄の組合せが表示し、遊技メダルが払い出されるときは、実際に払出口53から遊技メダルが払い出されることよりも、貯留されている遊技メダルの枚数として加算される(払い出される)ことが優先される。例えば、貯留枚数が「10」であるとき(貯留枚数表示LED45が「10」を表示しているとき)に、9枚の遊技メダルが払い出されるときは、貯留枚数が「19」となるとともに、貯留枚数表示LED45が「19」を表示する。
但し、貯留されている遊技メダルの枚数として加算されることにより、貯留枚数が「50」を超える場合には、超えた分の遊技メダルが実際に払出口53から払い出される。例えば、貯留枚数が「47」であるとき(貯留枚数表示LED45が「47」を表示しているとき)に、9枚の遊技メダルが払い出されるときは、貯留されている遊技メダルの枚数として3枚が加算され、貯留枚数が「50」となるとともに、貯留枚数表示LED45が「50」を表示する。そして、残りの6枚の遊技メダルが払出口53から払い出される。
さらに、再遊技に係る条件装置に対応する図柄の組合せが表示したときは、遊技メダルが自動的にベットされる。例えば、当該遊技で3枚の遊技メダルがベットされていたときは、3枚の遊技メダルが自動的にベットされる。ちなみに、再遊技を行わせるためにベットしているのであるから、ベットされた後(再遊技を行うためのスタートスイッチ34が操作される前)に精算スイッチ36が操作されても、自動的にベットされた遊技メダルは払い戻されない。
獲得枚数表示LED47は、獲得した(払い出した)遊技メダルの枚数を表示する表示装置であり、上位桁を表示するデジット3と下位桁を表示するデジット4とから構成されている。すなわち、図7に示した獲得枚数表示LED47は、貯留枚数表示LED45と同様に、獲得した遊技メダルの枚数を2桁で表示することができる。
獲得枚数表示LED47は、例えば、1枚も遊技メダルが獲得されない(払い出されない)ときは「00」を表示するが、9枚の遊技メダルを獲得する(払い出す)ときは、1枚の遊技メダルが払い出されるごとに「00」から順に表示する(最終的に「09」を表示する)。これにより、9枚の遊技メダルを払い出している途中で、ホッパー50内の遊技メダルが空になった場合に、正確な払出状況を表示することができる。
なお、獲得枚数表示LED47は、1枚も遊技メダルが獲得されない(払い出されない)ときは、何も表示しなくてもよいし、下位桁のデジット4にのみ「0」を表示してもよい。
また、獲得枚数表示LED47は、エラーが検出された場合には、検出されたエラーを示す情報(エラー情報)を表示するエラー情報表示LEDとして機能する。例えば、スロットマシン10のフロントドア2が開かれ、ドアオープンエラーが検出された場合には、獲得枚数表示LED47には、ドアオープンエラーを示す「dE」というエラー情報が表示される。なお、後述する設定変更中は、フロントドア2が開かれている状況下であっても、ドアオープンエラーを示す「dE」というエラー情報は表示されない。ただし、設定変更が完了した後には、ドアオープンエラーを示す「dE」というエラー情報が表示されるようにしてもよい。
さらに、獲得枚数表示LED47は、指示機能を作動させる場合には、有利な操作態様(正解押し順)を指示するための情報(押し順指示情報)を表示する指示情報表示LEDとしても機能する。したがって、獲得枚数表示LED47は、獲得枚数表示LEDとしての機能、エラー情報表示LEDとしての機能、及び指示情報表示LEDとしての機能を兼ね備えた表示装置である。
ここで、獲得枚数表示LED47において、押し順指示情報の表示(下記例では「=1」)から遊技メダルの払出枚数の表示に切り替える場合の表示方法の一例として、切り替える前に表示を一旦リセットするために、他の表示が行われてもよい。具体的には例えば、リセットのために「00」を表示して最終的に9枚の遊技メダルの払出を表示する場合、「=1」→「00」→「01」→「02」→…→「09」となる。また例えば、リセットのために上位桁及び下位桁を消灯する場合、「=1」→「**」→「01」→「02」→…「09」となる。なお、デジット(LED)の表示内容を示す「*」は、消灯(非表示)を意味しており、2桁のデジットがともに消灯する場合は「**」と表現する。
また、後述するサブ制御基板80に接続された画像表示装置21は、メイン制御基板60が指示機能を作動させる場合には、有利な操作態様(正解押し順)を報知する報知装置としても機能する。
以下の本明細書では、メイン制御基板60による獲得枚数表示LED47を用いた押し順の表示を「指示機能の作動」と称し、サブ制御基板80による押し順の表示を「押し順の報知」と称する。また、有利な押し順に対応する番号を「押し順指示番号」と称し、「指示機能の作動」によって獲得枚数表示LED47に表示される押し順の表示内容を「押し順指示情報」と称する。すなわち、指示機能の作動により、獲得枚数表示LED47に押し順指示情報が表示される。
状態表示LED48は、スロットマシン10における遊技の状態等を表示する表示装置であって、本実施形態では、図7に示したように7個のLED(個別には、状態表示LED48a〜48g)から構成されている。各LEDの役割について説明する。
状態表示LED48aは、リプレイの入賞時に点灯するLED(リプレイ表示LED)である。状態表示LED48aは、リプレイの入賞に基づく自動ベットが行われると点灯することにより、自動ベット状態であることを遊技者に報知する。
状態表示LED48bは、遊技メダルを投入可能な状態において点灯するLED(投入可表示LED)である。状態表示LED48bは、遊技が終了した後、次回遊技に移行するための遊技メダルが投入される前に点灯することにより、所謂ベット待ち状態を示す。なお、本実施形態では、リプレイが作動した後においても、貯留枚数に応じてベット可能なときには状態表示LED48bが点灯する。
状態表示LED48cは、精算処理中に点灯するLED(精算表示LED)である。より具体的には、状態表示LED48cは、貯留メダル及び/又はベットメダル(リプレイ入賞時の自動ベットを除く)を有する状態において精算スイッチ36がオンされた場合に、遊技メダルを実際に払い出している最中に点灯する。
状態表示LED48dは、遊技メダルが投入されてスタートスイッチ34を操作可能な状態となったときに点灯するLED(遊技開始LED)である。したがって、状態表示LED48dは、遊技メダルが規定数までベットされていない(または、リプレイ入賞時の自動ベットがされていない)状態では点灯しない。
状態表示LED48e〜状態表示LED48gは、それぞれがベットされている遊技メダルの枚数を表示するLED(投入表示LED)である。具体的には、1枚の遊技メダルがベットされたときは、状態表示LED48e(1枚投入表示LED)が点灯する。2枚の遊技メダルがベットされたときは、状態表示LED48e(1枚投入表示LED)の他に、状態表示LED48f(2枚投入表示LED)が点灯する。3枚の遊技メダルがベットされたときは、状態表示LED48e(1枚投入表示LED)及び状態表示LED48f(2枚投入表示LED)に加えて、状態表示LED48g(3枚投入表示LED)が点灯する。
設定値表示LED66は、設定確認や設定変更の際に、現在の設定値を表示する表示装置であり、デジット5から構成されている。なお、貯留枚数表示LED45又は獲得枚数表示LED47が、設定値表示LEDとしての機能を兼ね備えてもよい。
管理情報表示LED67は、所定の管理情報を表示する表示装置であり、例えば4個のデジットから構成されている。各デジットの視認性を確保するため、例えば、1個のデジットにつき、「横幅m1×縦幅n≧36平方ミリメートル」を満たす大きさに設計することが好ましい。あるいは、横1列に並んだ4個のデジットで、「横幅m2×縦幅n÷4(桁数)≧36平方ミリメートル」を満たす大きさに設計することが好ましい。
図8は、デジットの具体的な使用例を説明するための図である。まず、図8(A)は、デジット1〜5の詳細な構成を示す図である。図8(A)に示すように、デジットは、7個の棒状のセグメントA〜Gと、1個のドット状のセグメントDPとから構成されている、セグメントLEDである。
図8(B)は、デジット1〜5のそれぞれにおけるセグメントA〜G及びセグメントDPの用途の一例をまとめたものである。
図8(B)に示すように、デジット1のセグメントA〜Gは、貯留枚数表示LED45の上位桁として用いられる。デジット2のセグメントA〜Gは、貯留枚数表示LED45の下位桁として用いられる。デジット3のセグメントA〜Gは、獲得枚数表示LED47の上位桁として用いられる。デジット4のセグメントA〜Gは、獲得枚数表示LED47の下位桁として用いられる。なお、デジット1〜デジット4のセグメントDPは、何れも未使用である。
図8(B)に示すように、デジット5のセグメントA〜Gは設定値表示LED66として用いられる。また、デジット5のセグメントDPは、設定変更中に点灯するLEDとして用いられる。すなわち、設定値表示LED66(デジット5)のうち、セグメントA〜Gのみが点灯しているときは設定確認中を意味し、セグメントA〜G及びセグメントDPが点灯しているときは設定変更中を意味する。なお、デジット5のセグメントDPは、設定変更中において、設定値を確定させたときに点灯するLEDとして用いてもよい。
図8(C)は、セグメントデータを説明するための図である。図8(C)に示すように、各デジットの表示内容を指定するためのセグメントデータは、1バイト(8ビット)のデータである。セグメントデータの各ビットは2進数で記述され、「0」は消灯を意味し、「1」は点灯を意味する。
例えば、デジット1に「0」を表示する場合には、デジット1のセグメントA〜Fを点灯させ、セグメントG及びセグメントDPを消灯させる必要がある。すなわち、この場合のセグメントデータは、「00111111(B)」となる。
[2−5.図柄表示装置、遊技メダル払出装置]
図4に示したように、メイン制御基板60には、図柄表示装置38のモータ40が電気的に接続されている。図柄表示装置38は、3個のリール39(左リール39a、中リール39b、右リール39c)と、各リール39をそれぞれ駆動するモータ40と、リール39の位置を検出するためのリールセンサ41とを含んで構成される。
リール39は、リング状のものであって、その外周面に複数種類の図柄(役に対応する図柄の組合せを構成している図柄)を印刷したリールテープを貼付したものである。なお、リール39上の図柄の具体的配置は、後述する。
また、各リール39には、1個(2個以上であってもよい)のインデックスが設けられている。インデックスは、リール39の例えば周側面に凸状に設けられており、リール39が所定位置を通過したか否か、あるいは1回転したか否か等を検出するときに用いられる。各インデックスはリールセンサ41により検知され、リールセンサ41の信号は、メイン制御基板60に電気的に接続されている。リールセンサ41がインデックスを検知する(インデックスがリールセンサ41を切る)と、その入力信号がメイン制御基板60に入力され、当該リール39が所定位置を通過したことが検知される。
また、リールセンサ41がリール39のインデックスを検知した瞬間における基準位置上の図柄は、予めROM64に記憶されている。これにより、インデックスを検知した瞬間の基準位置上の図柄を検知することができる。
図4に示したように、メイン制御基板60には、遊技メダル払出装置49が電気的に接続されている。遊技メダル払出装置49は、遊技メダルを溜めておくためのホッパー50と、ホッパー50内に溜めている遊技メダルを払い出すときに駆動するホッパーモータ51と、ホッパーモータ51を駆動することによって払い出された遊技メダルを検出する払出センサ52とを備えている。
なお、前述したように、遊技メダル投入口26から投入された(受け入れられた)遊技メダルは、所定の遊技メダル通路に送られ、ホッパー50に送られる。
払出センサ52(払出センサ52a,52b)は、所定の間隔を空けて配置された1組(2個)の光学センサである。払出センサ52によれば、払い出された遊技メダルは、一方の払出センサ52(例えば、払出センサ52a)によって検出されたときから、所定の時間が経過した後に、他方の払出センサ52(例えば、払出センサ52b)によって検出されるようになっている。そして、メイン制御基板60は、それぞれの払出センサ52からの信号に基づいて、正しく遊技メダルが払い出されているか否かを判定する。
例えば、ホッパーモータ51が駆動しているにもかかわらず、何れの払出センサ52からの信号もオフであるときには、メイン制御基板60は、ホッパー50内が空になったホッパーエラー(正しく遊技メダルが払い出されていない)と判定する。また例えば、少なくとも何れかの払出センサ52からの信号がオンのままであるときには、メイン制御基板60は、遊技メダルが詰まっている(正しく遊技メダルが払い出されていない)と判定する。
また、図4には図示していないが、スロットマシン10は、ホッパー50から溢れた遊技メダルを収容するサブタンクを備えることができ、さらに、サブタンクの遊技メダルが満杯となったことを検知するための複数の満杯センサが設けられてもよい。満杯センサは、例えば、サブタンクに収容された遊技メダルが満杯となったときに複数の満杯検知センサに遊技メダルが接触して通電する回路から構成することができ、満杯センサの検知による信号(満杯検知信号)は、メイン制御基板60に送信される(満杯エラーを実行可能とする)。
サブタンクや満杯検知センサについて補足する。一例として、スロットマシン10が、複数の満杯検知センサとして第1の満杯検知センサと第2の満杯検知センサを少なくとも有するとする(2個に限るものではない)。第1の満杯検知センサと第2の検知センサとの距離を「A」とする。また、図柄表示装置(リールユニット)38を固定するための接続部品54(例えば、図1に示したねじ54a,54b,54c)の長さを「B」とする。なお、接続部品54(ねじ54a〜54c)は、フロントドア2の開閉等(スロットマシン10による振動等も要因となり得る)によって緩みやすい部品であり、外れた場合には、筐体内部に落下する可能性を有している。例えば図1の場合、フロントドア2による開口側に配置されたねじ54cは、特に緩みやすい部品といえる。なお、説明を明瞭にするための具体例としてねじ54a〜54cを挙げるが、接続部品54として、スロットマシン10に取り付けられる他の部品に置き換えてもよい。
ここで、本実施形態のスロットマシン10では、「A>B」の関係が成り立つように、複数の満杯検知センサを配置する。なお、3個以上の満杯検知センサを有している場合においても、満杯検知センサ間の最小の距離をAとしたとき「A>B」の関係が成り立つように、これら複数の満杯検知センサを配置する。また、接続部品54(少なくとも何れかであればよく、ねじ54a〜54cの全てでなくともよい)は、自由落下した場合にサブタンクに収納されるように構成されている。換言すれば、接続部品54の鉛直下方向にサブタンクが配置される。
このように複数の満杯検知センサ及びサブタンクが配置されることにより、本実施形態のスロットマシン10では、以下のような効果を得ることができる。
まず、サブタンクが接続部品54(ねじ54a〜54c)の鉛直下方向に配置されることにより、例えばねじ54cが不意に外れてしまった場合であっても、サブタンクに収容することができるため、その紛失を防止することができる。また、ねじ54cがホッパー50に入ることを防止することで、ねじ54cの混入によるホッパー50の動作故障を防止する効果にも期待できる。
また、落下した接続部品54(例えば、ねじ54c)がサブタンクに収容された場合、仮に、ねじ54cが満杯検知センサの間に引っ掛かってしまうと、ねじ54cによって満杯センサの回路が通電することになり、遊技メダルが満杯ではなくても満杯検知信号が誤って送信されてしまい、メイン制御基板60によって満杯エラー(「FE」エラー)が誤って実行されてしまう。しかし、本実施形態では、前述したように「A>B」の関係が成り立つように複数の満杯検知センサが配置されていることから(ねじ54cの長さよりも、満杯検知センサの間隔の方が長いため)、落下したねじ54cは満杯検知センサに引っ掛からずにサブタンクに収容される。すなわち、複数の満杯検知センサ間に接続部品54(ねじ54a〜54c)が引っ掛かるおそれがないため、接続部品54が不意に外れてしまった場合でも、接続部品54の影響によって満杯検知センサの検知による信号(満杯検知信号)が送信されないようにすることができる。つまり、遊技中に接続部品54(ねじ54a〜54c)が外れた場合であっても、満杯エラーが発生しないため、遊技に支障を与えることなく、遊技を継続することができる。
[2−6.スイッチ、外部端子板]
図4に示したように、メイン制御基板60には、電源スイッチ11、設定キースイッチ12、設定変更/リセットスイッチ13、設定ドアスイッチ14、ドアスイッチ15、及び外部端子板100が電気的に接続されている。
電源スイッチ11は、スロットマシン10の電源をオン/オフするときにホール店員が操作するスイッチである。
設定キースイッチ12は、設定を確認するとき又は設定を変更するときにホール店員が操作するスイッチである。例えば、ホール店員が設定を確認するときには、電源をオンしている状況下において、設定キー挿入口に設定キーを挿入し、時計回り(右回り)に90度回転させる。また、例えば、ホール店員が設定を変更するときには、電源をオフしている状況下において、設定キー挿入口に設定キーを挿入し、時計回り(右回り)に90度回転させた後に、電源をオンする。
設定変更/リセットスイッチ13は、1つのスイッチで設定変更スイッチ(設定スイッチ)とリセットスイッチとを兼ねるスイッチである。なお、これらのスイッチは別々に設けられてもよい。
設定変更スイッチとして扱う場合、設定変更/リセットスイッチ13は、設定を変更するときにホール店員によって操作される。例えば、ホール店員が設定を変更するときには、変更したい設定になるまで設定変更/リセットスイッチ13を操作し、スタートスイッチ34を操作する。なお、設定変更/リセットスイッチ13が1回操作されるごとに、設定値は「1」加算される(「1」→「2」→・・・→「6」→「1」→・・・)。本実施形態に係るスロットマシン10では、設定1から設定6の「6段階」に設定されている。
また、リセットスイッチとして扱う場合、設定変更/リセットスイッチ13は、RWM63に記憶されている所定のデータ(例えば、エラーデータ)を初期化する(リセットする)ときに、ホール店員によって操作される。具体的には、電源をオンしている状況下において、設定変更/リセットスイッチ13がオンされると、リセットが行われる。
設定ドアスイッチ14は、設定キースイッチ12及び設定変更/リセットスイッチ13を覆うドア(不図示)の開閉を検知するスイッチである。例えば、設定ドアスイッチ14がオフ(閉鎖)で、設定キースイッチ12がオン(設定キー挿入中)であるとき等は、エラーとなる。
ドアスイッチ15は、フロントドア2の開閉を検出するためのものである。例えば、フロントドア2が開いている(基体の正面が開放している)ときは、ドアスイッチ15がオンとなる。
外部端子板100は、出力ポート62の一部から出力される外部信号(外端信号)をスロットマシン10の外部に中継・転送する基板である。
ここで「外部信号」とは、外部端子板100を介してスロットマシン10の外部(例えば、ホールコンピュータ200やホールに設置されているデータカウンタ等)に出力するための信号である。具体的には、例えば、ボーナス状態、AT状態、遊技メダルのベット数や払出枚数のような遊技に関する情報の他、エラーや電源断等のような遊技機に関する情報が、外部信号として出力される。外部信号は、メイン制御基板60(後述する外部信号送信手段77)によって出力され、外部端子板100を経由して外部に送信される。
本実施形態における具体的な外部信号の一例については、後述する図10において、出力ポート6のD0ビット〜D4ビットに示される。
[2−7.入力ポート、出力ポート]
前述したように、メイン制御基板60は、それぞれが複数のポートから構成される入力ポート61(例えば、入力ポート0〜2)及び出力ポート62(例えば、出力ポート0〜8)を備えている。以下では、これらのポートについて、本実施形態における具体例を説明する。
本実施形態において、入力ポート0〜2及び出力ポート0〜8の各ポートは、それぞれ1ビットのD0〜D7を有しており、1バイト(8ビット)を入力または出力可能なポートである。なお、本実施形態のスロットマシン10には、以下に図示する以外にも入力ポート61あるいは出力ポート62を設けることができるが、その説明は省略する。
図9は、入力ポート0〜2の一例を示す図である。また、図10は、出力ポート3〜6の一例を示す図である。
図9によれば、入力ポート0は、D0ビットに設定変更/リセットスイッチ13の信号(設定変更/リセットスイッチ信号)が入力され、D1ビットに設定キースイッチ12の信号(設定キースイッチ信号)が入力され、D2ビットにドアスイッチ15の信号(ドアスイッチ信号)が入力される。また、D6ビットには、電源断が発生したときに出力される信号(電源断検知信号)が入力され、D7ビットには、満杯センサの信号(満杯検知信号)が入力される。
なお、図9では、入力ポート0のD3ビット〜D5ビットは「未使用」としているが、図9〜図16において「未使用」と表示するポートは、実際に使用されていない場合、あるいは、説明を省略する場合の何れかを意味するものであって、必ずしも信号の入出力がないことを意味するものではない。
また、図9や図10において、ポートの各ビットには「正」や「負」が記載されているが、これは、当該ビットのデジタル回路が「正論理」であるか「負論理」であるかを意味する。例えば、図9によれば、入力ポート0のD1ビットに入力される設定キースイッチ信号は負論理とされている。この場合、設定キースイッチ12が操作されていないときにはD1ビットに「正(high)」の信号が入力され、設定キースイッチ12が操作されたときはD1ビットに「負(low)」の信号が入力される。換言すると、設定キースイッチ信号は「負(low)」の信号がアクティブ信号となる。正論理である場合は、この逆である。
図9によれば、入力ポート1は、D0ビットに左ストップスイッチ35aの信号(左ストップスイッチ信号)が入力され、D1ビットに中ストップスイッチ35bの信号(中ストップスイッチ信号)が入力され、D2ビットに右ストップスイッチ35cの信号(右ストップスイッチ信号)が入力される。また、D3ビットには、3ベットスイッチ33bの信号(3ベットスイッチ信号)が入力され、D4ビットには、1ベットスイッチ33aの信号(1ベットスイッチ信号)が入力される。また、D5ビットには、精算スイッチ36の信号(精算スイッチ信号)が入力され、D6ビットには、スタートスイッチ34の信号(スタートスイッチ信号)が入力される。D7ビットは「未使用」である。なお、スロットマシン10におけるベットスイッチ33として、1ベットスイッチ33aが設けられず、3ベットスイッチ33bのみが設けられる仕様である場合には、入力ポート0のD4ビットは「未使用」となる。
図9によれば、入力ポート2は、D0ビットに、左リール39aに対するリールセンサ41の信号(左リールセンサ信号)が入力され、D1ビットに、中リール39bに対するリールセンサ41の信号(中リールセンサ信号)が入力され、D2ビットに、右リール39cに対するリールセンサ41の信号(右リールセンサ信号)が入力される。また、D3ビットには、払出センサ52bの信号(払出しセンサ2信号)が入力され、D4ビットには、払出センサ52aの信号(払出しセンサ1信号)が入力される。同様に、D5ビットには、投入センサ30bの信号(投入センサ2信号)が入力され、D6ビットには、投入センサ30aの信号(投入センサ1信号)が入力される。また、D7ビットには、遊技メダルセレクタ27に設けられた通路センサ28の信号(セレクタ通路センサ信号)が入力される。
ここで、詳細は後述するが、スロットマシン10では、遊技を進行するためにメイン制御基板60(メインCPU65)によって実行される情報処理として、1遊技あたり1回実行するメイン処理(M_MAIN)(メインループとも呼ばれる)が設けられている。メイン処理では、投入された遊技メダルの検知や、全てのリール39が停止した後の入賞処理等が行われる。
そして、これも詳細は後述するが、メイン制御基板60(メインCPU65)は、メイン処理の実行時に、メイン処理を一旦抜けて(メイン処理に割込んで)、割込み処理(I_INTR)(タイマ割込み処理)を実行する。この割込み処理においては、入力ポート0〜2を検知する入力ポート読込処理(図55のステップS65)が実行され、その実行後、再びメイン処理に戻る処理が定期的に行われる。本実施形態では、一例として、割込み処理の実行間隔を「2.235ms」とする。すなわち、2.235ms間隔で実行される割込み処理のたびに、入力ポート0〜2のデータを取得する。
そして、メイン制御基板60(メインCPU65)は、上記のようにして取得した入力ポート0〜2のデータに基づいて、入力ポート0〜2のそれぞれについて、レベルデータ(各ビットのオン(1)/オフ(0)を示すデータ)、入力ポートの立ち上がりデータ(前回の割込み時にオフで、今回の割込み時にオンになったデータが、どのビットであるかを示すデータ)、入力ポートの立ち下がりデータ(前回の割込み時にオンで、今回の割込み時にオフになったデータが、どのビットであるかを示すデータ)を生成し、RWM63の所定のアドレスに記憶する。したがって、これらのデータは、割込み周期の2.235msごとに更新されていく。RWM63の記憶先については、後に具体例を示す(図11〜図16)。
また、本実施形態において、メイン制御基板60は、割込み処理がいつ行われるかに拘わらず、入力ポート0〜2のD0ビット〜D7ビットの全てを検知する。例えば、リール39の回転中のストップスイッチ35が操作される前は、ベットスイッチ33が操作されることに意味はない(遊技に影響する操作とはならない)ので、必ずしも3ベットスイッチ信号や1ベットスイッチ信号のデータを取得する必要はないが、状況に拘わらずベットスイッチ33の操作に基づく上記信号のデータを取得する。このようにすることで、全ビットのデータを取得できるため、例えば各操作スイッチのオン/オフ状況を知ることができる。
図10によれば、出力ポート3は、D0ビット〜D3ビットから、左リール39aのモータ40のφ0〜φ3信号を出力する。本実施形態のモータ40は、1−2相励磁によりリール39を回転させるよう構成されており、φ0〜φ3の4相の励磁の組合せでリール39を駆動するようにしているため、各相の信号が出力ポートの所定のビットから出力される。
出力ポート3のD4ビット及びD5ビットは未使用である。また、D6ビットからは、ブロッカ29の信号(ブロッカ信号)が出力され、D7ビットからは、ホッパーモータ51の信号が出力される(ホッパーモータ駆動信号)。ここで、例えばブロッカ信号が「1(ON)」であるときは、ブロッカ29は、遊技メダル投入口26とホッパー50とを連結する「許可状態の遊技メダル通路」を形成する。一方、ブロッカ信号が「0(OFF)」であるときは、ブロッカ29は、遊技メダル投入口26と払出口53とを連結する「不許可状態の遊技メダル通路」を形成する。そして、例えばブロッカ29の駆動時には、割込み処理によって出力ポート3のD6ビットからブロッカ信号が出力される。
図10によれば、出力ポート4は、D0ビット〜D3ビットから、中リール39bのモータ40のφ0〜φ3信号を出力し、出力ポート5は、D0ビット〜D3ビットから、右リール39cのモータ40のφ0〜φ3信号を出力する。これらは、前述した出力ポート3のD0ビット〜D3ビットと同様である。
出力ポート4のD5ビット〜D7ビットからは、状態表示LED48の各投入表示LEDの信号が出力される。具体的には、D5ビットからは、3枚投入表示LED(状態表示LED48g)の信号(3枚投入表示LED信号)が出力され、D6ビットからは、2枚投入表示LED(状態表示LED48f)の信号(2枚投入表示LED信号)が出力され、D7ビットからは、1枚投入表示LED(状態表示LED48e)の信号(1枚投入表示LED信号)が出力される。
なお、出力ポートのD4ビット、及び出力ポート5のD4ビット〜D7ビットは「未使用」である。
図10によれば、出力ポート6のD0ビット〜D6ビットからは、外部端子板100への外部信号(外端信号)が出力される。具体的には、本実施形態では、外部信号1〜5、メダル払出し信号、及びメダル投入信号が出力される。
より具体的には、本実施形態では一例として、フロントドア2の開放を示す外部信号5がD0ビットから出力され、スロットマシン10でエラーや電源断等が発生したことを示す外部信号4がD1ビットから出力される。また、AT(ART)の開始時から終了時までを示す外部信号3がD2ビットから出力され、AT(ART)の継続を示す外部信号2がD3ビットから出力され、AT(ART)の発動(初当り)を示す外部信号1がD4ビットから出力される。また、D5ビットからは、遊技メダルの払出を示す外部信号(メダル払出し信号)が出力され、D6ビットからは、遊技メダルの投入を示す外部信号(メダル投入信号)が出力される。
なお、出力ポート6から出力する外部信号は、上記のものに限定されるものではなく、例えば特定の遊技状態(RT状態やBB遊技状態等)を示す外部信号を出力するようにしてもよい。
以上、スロットマシン10における入力ポート61及び出力ポート62について説明した。本実施形態において、メイン制御基板60は、1回の割込み処理のなか(1割込み内)で、入力ポート0〜2に基づくデータを記憶するとともに、記憶されている制御データに基づく信号を出力ポート0〜8から出力する。
[2−8.RWMの記憶データ]
本実施形態では、RWM63の記憶領域のうち、アドレス「F000(H)」〜「F1FF(H)」の一部が使用領域に割り当てられ、残りの記憶領域がスタック領域または未使用領域に割り当てられる。そのため、遊技で使用されるデータ(スタック領域のデータを除く)を一時的に保存するために、使用領域では、アドレス「F000(H)」から順に、各データの記憶先とするアドレスが割り当てられている。また、1アドレスに記憶可能な情報量は1バイトである。
また、詳細な説明は省略するが、スロットマシン10は、RWM63の上記使用領域外に、さらに異なるプログラム(一般に、第2プログラムとも呼ばれる)を記憶するようにしてもよく、このような場合、例えば、RWM63のアドレス「F210(H)」〜「F3FF(H)」のアドレスを併用して使用することができる。
図11〜図16は、RWMに記憶されるデータの格納アドレス(番地)とその内容を示す図(その1〜その6)である。図11〜図16を参照しながら、RWM63に記憶されるデータの具体例を説明する。なお、図11〜図16に示すデータは本実施形態で用いられるデータの一例であって、RWM63に記憶されるデータはこれらに限られるものではない。具体的には例えば、外部信号の出力に関するフラグを記憶する外部信号出力フラグ「_FL_INF_OUT」等がある。
まず、図11に示した各データについて説明する。
アドレス「F000」の「_NB_BANK」は、設定値データの記憶領域である。前述したように本実施形態において、設定値は、設定1から設定6の「6段階」に設定されている(例えば、設定値が高いほど遊技者に有利とする)。そして、設定1の場合、設定値データは「0」とされ、設定値が1増加するごとに設定値データも増加する。すなわち、設定6の場合の設定値データは「5」となる。したがって、「_NB_BANK」には、現在の設定値に応じて、「0」〜「5」の何れかの値が正常値として記憶される。
詳細は後述するが、設定変更/リセットスイッチ13の操作によって設定値が変更された場合は、メイン制御基板60による設定変更処理(後述する図28参照)が行われることにより、設定値データが更新される(図28のステップS115)。また、設定値表示LED66(デジット5)の表示は設定値データを参照して行われる。
アドレス「F008」の「_PT_IN0_OLD」は、入力ポート0レベルデータの記憶領域である。1回の割込み処理ごとに、入力ポート0からの入力信号が読み込まれ、メイン制御基板60によるレベルデータの演算結果に基づいて、「_PT_IN0_OLD」の各ビットにおけるレベルデータが更新される。
アドレス「F009」の「_PT_IN0_UP」は、入力ポート0立ち上がりデータの記憶領域である。入力ポート0の立ち上がりデータは、前述した入力ポート0レベルデータの更新のたびにメイン制御基板60によって演算され、その演算結果に基づいて更新される。
次に、図12に示した各データについて説明する。
アドレス「F00A」の「_PT_IN1_OLD」は、入力ポート1レベルデータの記憶領域である。1回の割込み処理ごとに、入力ポート1からの入力信号が読み込まれ、メイン制御基板60によるレベルデータの演算結果に基づいて、「_PT_IN1_OLD」の各ビットにおけるレベルデータが更新される。
アドレス「F00B」の「_PT_IN1_UP」は、入力ポート1立ち上がりデータの記憶領域である。入力ポート1の立ち上がりデータは、前述した入力ポート1レベルデータの更新のたびにメイン制御基板60によって演算され、その演算結果に基づいて更新される。
次に、図13に示した各データについて説明する。
アドレス「F00C」の「_PT_IN2_OLD」は、入力ポート2レベルデータの記憶領域である。1回の割込み処理ごとに、入力ポート2からの入力信号が読み込まれ、メイン制御基板60によるレベルデータの演算結果に基づいて、「_PT_IN2_OLD」の各ビットにおけるレベルデータが更新される。
アドレス「F00D」の「_PT_IN2_UP」は、入力ポート2立ち上がりデータの記憶領域である。入力ポート2の立ち上がりデータは、前述した入力ポート2レベルデータの更新のたびにメイン制御基板60によって演算され、その演算結果に基づいて更新される。
次に、図14に示した各データについて説明する。
アドレス「F013」の「_FL_SUB_INF2」は、「サブ報知フラグ2」のデータ記憶領域である。「サブ報知フラグ2」には、一部の操作スイッチの受付状態の他、所定のエラーの発生に関する情報が記憶される。具体的には、図14に示したように、サブ報知フラグ2のD0〜D2ビットには、各停止ボタン(ストップスイッチ35)への操作を受付可能か否かが記憶され、D3ビットには、3枚投入ボタン(3ベットスイッチ33b)への操作を受付可能か否かが記憶される。また、サブ報知フラグ2のD4ビット〜D6ビットには、所定のエラー(順にCHエラー、C0エラー、H0エラー)の検出の有無が記憶される。
アドレス「F016」の「_CT_SEN_CHK」は、投入監視カウンタのデータ記憶領域である。投入監視カウンタは、遊技メダルセレクタ27の通路センサ28による通過異常検出を監視するためのカウンタであって、「0」〜「255」の何れかの値を持つ。
詳細は後述するが、「_CT_SEN_CHK」の値は、ブロッカON(M_BLOCKER_ON)のモジュールが実行されるときに、初期化される(図39参照)。また、「_CT_SEN_CHK」の値は、入力ポート2立ち上がりデータ(アドレス「F00D」の「_PT_IN2_UP」)においてD7ビットのセレクタ通路センサ信号が「1(ON)」であるときに「1」加算される(図57のステップS612)。そして、遊技メダルの投入に伴う手入れメダルチェック(MS_INSERT_CHK)のモジュールの実行時に、遊技メダルが正常に通過したと判断されたときに、「_CT_SEN_CHK」の値は「1」減算される(図45のステップS350)。言い換えると、「_CT_SEN_CHK」は、遊技メダルが通路センサ28に検知されると値が「+1」され、遊技メダルが投入センサ30に検知されると値が「−1」されることによって、正常時には「+1」と「0」とを繰り返すカウンタである。なお、手入れメダルチェック(MS_INSERT_CHK)では、この減算した結果と「3」を比較し、キャリー(桁下がり)が発生しなかった場合に異常(エラー)と判定する(図18AのステップS348,図45のステップS351)。
アドレス「F01C」の「_NB_CREDIT_LED」は、貯留枚数表示データの記憶領域である。貯留枚数表示データは、貯留枚数表示LED47に現時点における貯留枚数を表示するために記憶されるデータである。
ここで、本実施形態においては、「_NB_CREDIT_LED」に記憶するデータ自体は16進数(H)としながらも、貯留枚数を10進数に換算した値を記憶する。例えば、貯留枚数表示LED47に表示すべき貯留枚数が「29」であるときは、「_NB_CREDIT_LED」は「29(H)」を記憶する。換言すると、アドレス「F01C」には、「00101001(B)」が記憶される。このとき、D0〜D3の下位4ビットは、貯留枚数の下位桁(ここでは「9」)を表示するために使用され、D4〜D7の上位4ビットは、貯留枚数の上位桁(ここでは「2」)を表示するために使用されている。そして、本実施形態では、貯留枚数の上限値は「50」であるので、「_NB_CREDIT_LED」に記憶されるデータ値は「0」〜「50」の範囲となる。
なお、本実施形態では、RWM63に、貯留枚数データそのものを記憶するアドレスは設けられておらず、貯留枚数表示LED47の表示用データとして、上記の貯留枚数表示データを設けている。しかし、この貯留枚数表示データは、実質的に貯留枚数データそのものである。
アドレス「F01E」の「_FL_MEDAL_STS」は、遊技メダル管理フラグのデータ記憶領域である。遊技メダル管理フラグは、主として状態表示LED48の点灯/消灯を制御するためのフラグである。
遊技メダル管理フラグにおいて、D0ビットのスタートスイッチ受付状態は、スタートスイッチ34(スタートレバー)の受付状態を示し、スタートスイッチ34への操作が受付可能な場合(例えば、遊技メダルが規定数までベットされた遊技開始前の状態)に「1」となり、スタートスイッチ34への操作が受付不可能な場合(例えば、リール39の回転中)に「0」にされる。D0ビットに記憶されたデータ値に基づいて、遊技開始LED(状態表示LED48d)の点灯/消灯が制御される。
遊技メダル管理フラグにおいて、D2ビットのブロッカ状態は、ブロッカ29の状態を示し、ブロッカ29がON状態(許可位置)であるときは「1」となり、ブロッカ29がOFF状態(不許可位置)であるときは「0」となる。このD2ビットの値によって現在のブロッカ29がどのような状態であるかを判断可能となるので、この値に基づいて、遊技メダルが投入可能か否かを示す投入可表示LED(状態表示LED48b)の点灯/消灯が制御される。
遊技メダル管理フラグにおいて、D3ビットの再遊技表示LEDは、リプレイの入賞時に点灯するリプレイ表示LED(状態表示LED48a)の点灯/消灯を制御するためのフラグである。D3ビットは、リプレイが表示されて再遊技として遊技メダルが自動投入されるときに「1」にされ(図37のステップS241)、再遊技による遊技が終了したときに「0」にされる(図34のステップS49)。状態表示LED48aは、D3ビットが「1」のときに点灯し、D3ビットが「0」のときに消灯する。
遊技メダル管理フラグにおいて、D4ビットの精算表示LEDは、精算スイッチ36が操作されてベットメダル又は/及び貯留メダルを精算するときに「1」にされ、貯留メダルの精算が終了したときに「0」にされるデータである。D4ビットが「1」のとき、精算表示LED(状態表示LED48c)が点灯し、D4ビットが「0」のとき、精算表示LED(状態表示LED48c)は消灯する。
遊技メダル管理フラグにおいて、D6ビットの設定変更不可フラグは、設定変更が可能な状態(OFF)であるときに「0」とされ、設定変更が不可能な状態(ON)であるときに「1」とされるデータである。本実施形態では、スタートスイッチ34が操作されて遊技が進行されたときに「1」にされ(図53のステップS493)、次遊技のための遊技メダルの受付が開始されたときに「0」にされる(図37のステップS233)。
スロットマシン10において設定変更が行われようとする際は、設定変更許可フラグの値が参照され、値が「1」であるとき、設定変更は許可されない。但し、設定変更不可フラグが「1」であっても、復帰不可能エラー(例えば、割込み処理ごとに判定される乱数の更新に関する異常)と判断されたときには設定変更が許可され、設定変更に基づいて復帰不可能エラーを解除することができる、としている。なお、本実施形態では、設定変更ができない期間(状態)を設けているが、いつでも設定変更ができるように構成してもよい。その場合には、設定変更不可フラグを設けなくてもよい。
遊技メダル管理フラグにおいて、D7ビットの遊技メダル限界判定は、ベットされた遊技メダルの枚数が所定のメダル限界枚数(規定数)に達しているときに「1」とされ、達していない場合に「0」とされるデータである。
メイン制御基板60は、例えば、遊技メダルの1枚投入があった場合に、遊技メダル限界判定が「0」であれば、ベットに遊技メダルを加算する処理(メダル1枚加算(M_1MEDAL_INC))を実行し、遊技メダル限界判定が「1」であれば、クレジット(貯留)に遊技メダルを加算する処理(貯留枚数1枚加算(M_CREDIT_ADD))を実行する。このように遊技メダル限界判定のフラグを利用することにより、メイン制御基板60は、毎回ベット数を参照して規定数への到達可否を算出することなく、上記の何れの処理を実行するかを決定することができるため、全体的な処理負荷を低減することができる。
アドレス「F01F」の「_FL_ACTION」は、作動状態フラグのデータ記憶領域である。作動状態フラグは、D0ビットに再遊技(リプレイ)、D3ビットに1種BB、D4ビットにRBが割り当てられている。例えば、リプレイが入賞したときは、再遊技の作動状態となり、この遊技状態をセットするときに(図35のステップS214)、D0ビットが「1」にされる。そして再遊技による遊技が終了したときに(図34のステップS49)、D0ビットは「1」から「0」にされる。D3ビットやD4ビットについても同様に作動状態に応じて「1」または「0」が記憶される。なお、作動状態フラグの「未使用」ビットは、本実施形態では設けていないボーナス等(例えば2種BBやCB等)が追加されるような場合に、適宜割り当てることができる。
次に、図15に示した各データについて説明する。図15に示した各データは、何れもタイマとして用いられるデータであって、各タイマのタイマ値は、アドレス「F021」〜「F02D」の連続した記憶領域に記憶される。なお、本実施形態では、1バイトの記憶領域にタイマ値(1バイトタイマ値)が記憶される1バイトタイマ(1バイトタイマ群、1バイトタイマ記憶領域とも称す)と、2バイトの記憶領域にタイマ値(2バイトタイマ値)が記憶される2バイトタイマ(2バイトタイマ群、2バイトタイマ記憶領域とも称す)とを設けている。なお、これは一例に過ぎず、例えば、3バイト以上の記憶領域にタイマ値が記憶されるタイマ(例えば、3バイトタイマ)を設けるようにしてもよい。
本実施形態において、上記の各タイマ値は、1回の割込み処理が行われるごと(1割込みごと)に、「1」ずつ減算される。詳細は後述するが、割込み処理(I_INTR)(図55参照)は、メイン処理(M_MAIN)(図34参照)の実行中に、2.235ms周期で実行される処理であって、割込み処理においてタイマ計測(I_TIME_COUNT)(図56参照)のモジュールが実行されることにより、各タイマ値の減算が行われる。
ここで、本実施形態では、図15に示したように、複数の1バイトタイマ及び複数の2バイトタイマは、それぞれが連続した記憶領域に記憶されるよう構成され、かつ、これら1バイトタイマ群と2バイトタイマ群とが連続した記憶領域に記憶されるように構成されている。具体的には、7つの1バイトタイマがアドレス「F021」〜「F027」に記憶され、3つの2バイトタイマがアドレス「F028」〜「F02D」に記憶される。
なお、本実施形態では、2バイトのタイマ値を記憶する場合、タイマ値の下位桁を小さいアドレス(上位アドレス)に記憶し、タイマ値の上位桁を大きいアドレス(下位アドレス)に記憶するものとして説明するが、これに限定するものではなく、下位桁を下位アドレスに記憶し、上位桁を上位アドレスに記憶するようにしてもよい。
本実施形態では、このように連続したアドレスに複数のタイマ(タイマ値)を配置することにより、タイマ計測(I_TIME_COUNT)における各タイマ値を更新(ここでは減算)する処理の処理負担を軽減することができる。詳しくは、タイマ計測(I_TIME_COUNT)の説明で後述する。
図15に示した各タイマについて説明する。
アドレス「F021」の「_TM1_OUT_CNT」は、外部信号出力時間のタイマ記憶領域であって、メダル投入信号及びメダル払出し信号の出力時間を計測するための1バイトタイマのタイマ値が記憶される。「_TM1_OUT_CNT」は、初期値として「46」がセットされ、1割込みごとにタイマ値が「1」ずつ減算される。当該タイマ値が「0」になったと判断したときは、再度、「46」をセットし、1割込みごとに「1」減算するカウントを継続する。
アドレス「F022」の「_TM1_STOP」は、回胴停止受付待機時間のタイマ記憶領域であって、1つの停止ボタン(ストップスイッチ35a〜35c)への操作を受け付けてから次の停止ボタン(ストップスイッチ35a〜35c)への操作を受け付けるまでの待機時間を計測するための1バイトタイマのタイマ値が記憶される。本実施形態では、1つの停止ボタンへの操作受付を確認したとき、「_TM1_STOP」に初期値の「7」がセットされ、1割込みごとに「1」ずつ減算され、当該タイマ値が「0」となったときに、次の停止ボタンへの操作が受付可能とされる。そして、次の停止ボタンへの操作が受け付けられた場合には、再度「_TM1_STOP」のタイマ値に初期値の「7」がセットされ、1割込みごとに「1」減算するカウントが行われる。
アドレス「F023」の「_TM1_PAY」は、払出しセンサチェック時間のタイマ記憶領域であって、ホッパーモータ51の駆動停止後の払出検出を監視し、遊技メダル詰まりを検出するための1バイトタイマのタイマ値が記憶される。本実施形態では、後述する図48のステップS420において、「_TM1_PAY」のタイマ値に初期値の「46」がセットされ、1割込みごとに「1」ずつ減算される。
アドレス「F024」の「_TM1_COND_OUT」は、条件装置出力時間のタイマ記憶領域であって、試験信号として出力する条件装置信号(入賞及びリプレイ条件装置情報、並びに役物条件装置情報)について、その出力時間に相当する「条件装置出力時間」を計測するための1バイトタイマのタイマ値が記憶される。本実施形態では、最小遊技時間(後述する「_TM2_GAME」を参照)の経過後に、「_TM1_COND_OUT」のタイマ値に「49」がセットされ、1回の割込みごとに「1」ずつ減算される。本実施形態では、割込み処理の実行周期は2.235msに設定されていることから、48割込みにより107.28ms(2.235ms×48=107.280ms)がカウントされ、この107.28msが条件装置信号の出力時間となる。より詳細には、前半の1〜24割込みにおいて、入賞及びリプレイ条件装置情報が出力され、後半の25〜48割込みにおいて、役物条件装置情報が出力される。
アドレス「F025」の「_TM1_CH_CHK」は、セレクタ通路滞留時間のタイマ記憶領域であって、通路センサ28の異常通過(遊技メダル詰まり)を検出するための1バイトタイマのタイマ値が記憶される。本実施形態では、通路センサ28による異常検出を開始するときに、「_TM1_CH_CHK」のタイマ値に初期値の「200」をセットし、1割込みごとに「1」ずつ減算する。そして当該タイマ値が「0」となったときに、通路センサ28が遊技メダルを検知しているときは、エラーとする。
アドレス「F026」の「_TM1_BLOFF_CHK」は、ブロッカOFF時監視時間のタイマ記憶領域であって、遊技メダルセレクタ27のブロッカ29による「遊技メダルの挟み込み」を防止するための待機時間を監視するための1バイトタイマのタイマ値が記憶される。より詳しく言えば、ブロッカOFF時監視時間は、ブロッカ29をOFF状態(不許可位置)からON状態(許可位置)に変更するまでの待機時間を計測するためのタイマである。具体的には、「_TM1_BLOFF_CHK」のタイマ値は、セレクタ通路センサ信号の立ち上がり時(入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビットが「1」となったとき)に、初期値の「144」がセットされ、1割込みごとに「1」ずつ減算する。そして当該タイマ値が「0」となるまでは、ブロッカ29をOFFからONに変更する制御が許可されない。
本実施形態では、割込み処理の実行周期は2.235msに設定されていることから、144割込みによる約322ms(2.235ms×144=321.840ms)がブロッカOFF時監視時間となる。なお、本実施形態において、ブロッカOFF時監視時間は、通路センサ28によって検知された遊技メダルが遊技メダル通路を流下してブロッカ29の設置位置を通過するために十分な時間(より明確には、ブロッカ29の位置を越えてホッパー50への流下が確定する所定位置に到達するまでに十分な時間)が設定されるとし、上述した144割込み(約322ms)は、その一例である。
アドレス「F027」の「_TM1_BLON_CHK」は、ブロッカON時監視時間のタイマ記憶領域であって、遊技メダルセレクタ27のブロッカ29による「遊技メダルの飲み込み」を防止するための待機時間を監視するための1バイトタイマのタイマ値が記憶される。より詳しく言えば、ブロッカON時監視時間は、ブロッカ29をON状態(許可位置)からOFF状態(不許可位置)に変更するまでの待機時間を計測するためのタイマである。
具体的には、「_TM1_BLON_CHK」のタイマ値は、セレクタ通路センサ信号の立ち上がり時(入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビットが「1」となったとき)に、初期値の「45」がセットされ、1割込みごとに「1」ずつ減算する。そして当該タイマ値が「0」となるまでは、ブロッカ29をONからOFFに変更する制御が許可されない。
本実施形態では、割込み処理の実行周期は2.235msに設定されていることから、45割込みによる約101ms(2.235ms×48=100.575ms)がブロッカON時監視時間となる。なお、本実施形態において、ブロッカON時監視時間は、通路センサ28によって検知された遊技メダルが遊技メダル通路を流下してブロッカ29の設置位置を通過するために十分な時間(より明確には、ブロッカ29を通過して投入センサ30(30a,30b)に検知されるまでに十分な時間)が設定されるとし、上述した45割込み(約101ms)は、その一例である。なお、別の言い方をすれば、ブロッカON時監視時間の初期値「45」と最終値「0」との時間差は、通路センサ28に検知された遊技メダルが投入センサ30(30a,30b)に検知されるまでに要する時間よりも長く設定される。
アドレス「F028」,「F029」の「_TM2_HE_CHK」は、遊技メダル払出装置制御時間のタイマ記憶領域であって、遊技メダル払出装置49の制御時間を計測するための2バイトタイマのタイマ値が記憶される。具体的には、遊技メダル払出装置49による遊技メダルの精算や払出しが開始されたとき、「_TM2_HE_CHK」のタイマ値には初期値の「2686」(データ上は、下位アドレス「F029」の値が「00001010」で、上位アドレス「F028」の値が「01111110」)がセットされ、1割込みごとに「1」ずつ減算する。そして当該タイマ値が「0」となるまでは、遊技メダル払出装置49は、次の遊技メダルの精算や払出しを開始することができない。本実施形態では、割込み処理の実行周期は2.235msに設定されていることから、具体的には、遊技メダル払出装置制御時間は「約6秒」となる(2.235ms×2686≒6000ms)。
アドレス「F02A」,「F02B」の「_TM2_BACK_OFF」は、遊技待機表示開始時間のタイマ記憶領域であって、遊技待機表示を行うための待機時間を計測するための2バイトタイマのタイマ値が記憶される。具体的には、遊技開始セット(MS_GAME_SET)のモジュール実行開始時(換言すると、遊技が終了した後)に、「_TM2_BACK_OFF」のタイマ値に初期値の「26846」(データ上は、下位アドレス「F02B」の値が「01101000」で、上位アドレス「F02A」の値が「11011110」)がセットされる(図35のステップS211)。その後、この2バイトタイマのタイマ値は、1回の割込み処理ごとに「1」ずつ減算する。そして、当該タイマ値が「0」になった場合は、メダル投入待ち(MS_STANDBY_DSP)のモジュール実行において、遊技メダルの払出枚数を獲得枚数表示LED47に表示するための「遊技メダル払出し枚数データ「_NB_PAY_MEDAL」(不図示)」をクリアする(図41のステップS292)。
ここで、本実施形態では、割込み処理の実行周期は2.235msに設定されていることから、当該タイマ値が「0」になるまでに要する時間は、約60秒となる(2.235ms×26846≒60000ms=60秒)。すなわち、本実施形態では、所定時間(約60秒)に亘って遊技が行われなかった場合には、獲得枚数表示LED47の表示をクリアする処理が実行される。例えば、「9」枚の払出しがあった場合においては、獲得枚数表示LED47の表示は、払出枚数を示す「09」または「※9」から、クリア処理によって「00」、「*0」、または「**」となる(「*」は、消灯を意味する)。これにより、「9」枚の払出しがあった後に、遊技者が精算スイッチを操作し遊技を止めた場合であっても、「9」枚を払出したことを示す情報(「09」または「*9」)は、約60秒後には表示のクリア処理によって変更される。このように構成することによって、遊技者が遊技を終了して離席した場合には、他の遊技者やホール関係者に遊技が完全に終了していることを報知することができる。
但し、このような場合でも、リプレイ表示LED(状態表示LED48a)、貯留枚数表示LED45、投入表示LED(状態表示LED48e〜状態表示LED48g)の表示はクリアされないように構成している。これにより、遊技待機表示によって獲得枚数表示LED47の表示がクリアされても遊技の継続に関する情報は表示され続けることから、遊技者が一旦離席するような場合でも、他の遊技者やホール関係者に遊技を完全に終了したと誤解させないようにすることができ、遊技者が不利益を被ることを抑制できる。
アドレス「F02C」,「F02D」の「_TM2_GAME」は、最小遊技時間のタイマ記憶領域であって、1回の最小遊技時間を監視するための2バイトタイマのタイマ値が記憶される。当該タイマ値は、例えば、リール39(全リール)を回転させるための所定の処理が実行される前の所定タイミングで記憶される。「_TM2_GAME」には、初期値として「1836」(データ上は、下位アドレス「F02D」の値が「00000111」で、上位アドレス「F02C」の値が「00101100」)がセットされ、1回の割込みごとに「1」ずつ減算される。本実施形態では、割込み処理の実行周期は2.235msに設定されていることから、割込み処理の実行周期を「_TM2_GAME」の初期値に掛けた値によって、本実施形態の最小遊技時間は「4.1秒」に設定される(2.235ms×1836≒4100ms)。
次に、図16に示した各データについて説明する。
アドレス「F048」の「_NB_CND_NOR」は、入賞及びリプレイ条件装置番号のデータ記憶領域である。なお、条件装置番号を当選情報等と称することもある。役抽選が行われて当選役が決定されると、当該記憶領域に、当選役に対応する値が記憶される。本実施形態では、入賞及びリプレイ条件装置番号は「0」〜「39」が設定される(図24,図25(A)参照)ため、「_NB_CND_NOR」には「0」〜「39」の何れかが記憶される。当該記憶領域に記憶された値は、リール39の停止制御に用いる停止位置決定テーブルの選択や、AT抽選(AT中の上乗せ)、及びサブ制御基板80による演出抽選等に用いられる。
アドレス「F049」の「_NB_CND_BNS」は、役物条件装置番号のデータ記憶領域である。本実施形態では、役物条件装置として1つの1種BBが設定される(図25(B)参照)ため、1種BBの当選の有無に応じて、「_NB_CND_BNS」に「0(非当選)」または「1(当選)」が記憶される。「_NB_CND_BNS」の値は、「_NB_CND_NOR」の値と同様に、リール39の停止制御に用いる停止位置決定テーブルの選択や、AT抽選(AT中の上乗せ)、及びサブ制御基板80による演出抽選等に用いられる。
なお、複数の特別役(例えば、1つの1種BBと1つの2種BB)を設けるような場合には、「_NB_CND_BNS」には、当選した特別役の役物条件装置番号に基づいて、10進数で表すと「0」〜「2」の何れかが記憶される。また、さらに複数の特別役(例えば、1種BB(1)、1種BB(2)、2種BB(1)、2種BB(2))を設けるような場合には、「_NB_CND_BNS」には、同様に、10進数で表すと「0」〜「4」の何れかが記憶される。
また、「_NB_CND_BNS」に特別役の当選番号が記憶された場合、当選した特別役に対応する図柄の組合せが停止表示せずに当選情報が持ち越されたとき(内部中遊技)には、「_NB_CND_BNS」における当該当選番号の記憶が維持される。
アドレス「F060」の「_PT_MEDAL_LED」は、投入枚数表示LED信号データの記憶領域である。投入枚数表示LED信号データは、投入表示LEDの点灯/消灯を制御するためのデータであり、D5ビット〜D7ビットに、それぞれ3枚〜1枚の投入表示LED(状態表示LED48g、状態表示LED48f、状態表示LED48e)が割り当てられている。例えば、D7ビットだけが「1」であるときは、1枚投入表示LED(状態表示LED48e)だけが点灯するように制御される。また例えば、D7ビット及びD6ビットが「1」でD5ビットが「0」であるときは、1枚投入表示LED(状態表示LED48e)及び2枚投入表示LED(状態表示LED48f)が点灯するように制御される。
アドレス「F061」の「_PT_BLK_HPM」は、ブロッカ信号及びホッパーモータ駆動信号のデータ記憶領域であり、ブロッカ信号としてD6ビットが使われ、ホッパーモータ駆動信号としてD7ビットが使われる。ブロッカ29をON状態(許可位置)にするときは、D6ビットが「1」にされ、ブロッカ29をOFF状態(不許可位置)にするときは、D6ビットが「0」にされる。より具体的には、アドレス「F061」の「_PT_BLK_HPM」は、メイン処理(図34)において更新され、割込み処理(図55)において当該アドレスのデータに基づいて出力ポート3(図10参照)のデータが生成される。その結果、メイン制御基板60は、ブロッカ29の作動を制御する。ホッパーモータ51の駆動を制御するホッパーモータ駆動信号についても、ブロッカ信号と同様であり、ホッパーモータ51を駆動させるときは、D7ビットが「1」にされ、ホッパーモータ51を駆動させないときは、D7ビットが「0」にされる。
アドレス「F06D」の「_NB_PLAY_MEDAL」は、遊技メダル枚数データの記憶領域である。遊技メダル枚数データには、ベットされている遊技メダルの枚数(ベット数)が記憶され、本実施形態ではベット数の上限は3枚であることから、「0」〜「3」の何れかが記憶される。
アドレス「F06F」の「_CT_MEDAL_IN」は、メダル投入信号出力回数のデータ記憶領域であり、「0」〜「6」の値が記憶される。メダル投入信号出力回数は、遊技メダルのベット数を信号として外部に出力する回数を示しており、ベット数を2倍にした回数が出力される。本実施形態ではベット数の最大値は「3」であるから、メダル投入信号出力回数の最大値は「6」となる。このとき、具体的な外部信号の出力は、「オン(1回目)」、「オフ(2回目)」、「オン(3回目)」、・・・、「オフ(6回目)」のように、オンとオフとの合計が出力回数となるまで繰り返される。
アドレス「F070」の「_CT_MEDAL_OUT」は、メダル払出し信号出力回数のデータ記憶領域であり、本実施形態では「0」〜「20」の値が記憶される。メダル払出し信号出力回数は、遊技メダルの払出し枚数を信号として外部に出力する回数を示しており、払出し枚数を2倍にした回数が出力される。本実施形態では、入賞に伴う遊技メダルの払出し枚数の最大値は「10」である(例えば、図22の入賞20)ことから、メダル払出し信号出力回数の最大値は「20」となる。例えば遊技メダルの払出し枚数の最大値を「15」に設定した場合は、メダル払出し信号出力回数の最大値は「30」となる。
[2−9.サブ制御基板]
図4に示すサブ制御基板80は、遊技中及び遊技待機中において演出等を制御する。
メイン制御基板60とサブ制御基板80とは電気的に接続されており、メイン制御基板60(特に制御コマンド送信手段78)は、サブ制御基板80に、演出の出力のために必要な情報(制御コマンド)を一方向のパラレル通信によって送信する。なお、メイン制御基板60とサブ制御基板80との間は、電気的に接続されることに限定されず、光通信手段を用いて接続されてもよい。さらに、電気的接続または光通信接続の何れの場合も、パラレル通信に限定されるものではなく、シリアル通信であってもよいし、両通信を併用してもよい。
また、サブ制御基板80は、メイン制御基板60と同様に、入力ポート81、出力ポート82、RWM83、ROM84、及びサブCPU85等を備える。これらの各構成はサブ制御基板80上のMPUに搭載される。さらに、MPU内蔵のRWMとは別に、MPUの外部(但しサブ制御基板80上)にもRWM(外部RWM)が搭載される。以後、RWM83というときは、MPU内蔵のRWM及び外部RWMを含むものとする。なお、図4は例示に過ぎず、サブ制御基板80の構成は、これに限定されるものではない。
入力ポート81は、メイン制御基板60の制御コマンド送信手段78や演出用の周辺機器(例えば十字キー22や演出ボタン24等の種々の操作スイッチ)からサブCPU85に対しての信号が入力される接続部である。また、出力ポート82は、サブCPU85から演出用の周辺機器(例えばスピーカ20や画像表示装置21等)に対しての信号が出力される接続部である。すなわち、サブ制御基板80(サブCPU85)とこれら演出用の周辺機器とは、入力ポート81や出力ポート82を介して、電気的に接続されている。
RWM83は、データの読み出しと書き込みができる記憶装置(「記憶手段」とも称する。)であって、サブCPU85(サブ制御基板80)が演出等を制御するために必要な種々のデータ(例えば、画像表示装置21における演出画面の表示に関するパラメータ等)を記憶する。
ROM84は、読み出し専用の記憶装置(「記憶手段」とも称する。)であって、サブCPU85(サブ制御基板80)が演出等を制御するために必要なプログラムや種々のデータ(例えば、演出用データや演出に係る抽選を行うためのデータテーブル等)等を記憶する。
サブCPU85は、サブ制御基板80に搭載されるCPUを指し、ROM84に記憶されたプログラムに従って演出等を制御する(例えば、画像表示装置21に表示させる演出画面を決定する等)。
サブ制御基板80では、サブCPU85(MPUと捉えてもよい)の動作によって演出等が制御され、演出等の実行を制御する演出制御手段87が実現される。
演出制御手段87は、メイン制御基板60から制御コマンド送信手段78によって送信される制御コマンド(具体的には例えば、RT番号、押し順指示番号、演出グループ番号、役物条件装置番号等)に基づいて、当選役及び遊技状態等に応じてどのようなタイミングで(例えば、スタートスイッチ34の操作時や各ストップスイッチ35の操作時等)、演出用の周辺機器でどのような演出を出力するか(例えば、演出ランプ19をどのように点灯、点滅、又は消灯させるか、スピーカ20からどのようなサウンドを出力するか、及び画像表示装置21にどのような画像を表示させるか等)を抽選によって決定する。
そして演出制御手段87は、上記の決定に従って、演出用の周辺機器(演出ランプ19、スピーカ20、及び画像表示装置21)の出力を制御する。またさらに、演出制御手段87は、1種BB遊技中やAT(ART)中には、ストップスイッチ34の押し順を報知したり、獲得枚数や残りの遊技回数等を画像表示したりする。
サブ制御基板80と接続される演出用の周辺機器について説明する。
演出ランプ19は、例えばLED等で構成され、所定の条件を満たしたときにそれぞれ所定のパターンで点灯する。なお、演出ランプ19には、各リール39の内周側に配置されるバックランプ、リール39の上部からリール39上の図柄を照光する蛍光灯、及び、スロットマシン10のフロントドア2の前面に配置されて所定のタイミングで点滅する枠ランプ等が含まれる。このうち、リール39のバックランプは、リール39に表示された図柄を背後から照らすことによって、表示窓17から見えるリール39上の図柄(上段、中段、下段の各図柄)に対する視認性を高める。
スピーカ20は、遊技中または遊技待機中において、各種の演出の実行に伴って、所定のサウンドを出力する。
画像表示装置21は、遊技中に各種の演出画像等(例えば、正解押し順や、役の抽選結果に対応する演出)や、遊技情報等(例えば、役物作動時やAT中の遊技回数や獲得枚数等)を表示する表示装置である。画像表示装置21は、液晶ディスプレイ、有機ELディスプレイ、またはドットディスプレイ等からなる。なお、画像表示装置21による表示は、遊技中に限定されるものではなく、遊技待機中の表示も可能である。
十字キー22及びメニューボタン23は、遊技者が意図する情報(例えば遊技者の遊技履歴を含む二次元コード)を表示させるとき(例えば「メニュー画面」の操作に相当し、詳細は後述する)や、ホール管理者が各種の設定を変更するとき等に用いられる。
[3.メイン制御基板の具体的構成]
本実施形態に係るスロットマシン10におけるメイン制御基板60の具体的構成を説明する。スロットマシン10では、遊技者によって行われる遊技をメイン制御基板60(メインCPU65)が制御する。
ここでまず、1回の遊技の概要について説明する。遊技メダルが1枚もベットされていない状態において3ベットスイッチ33bが操作されると、3ベットスイッチ33bが操作されたことを示す信号がメインCPU65に入力され、メインCPU65は3枚の遊技メダルをベットする。3枚(規定数)の遊技メダルがベットされている状態においてスタートスイッチ34が操作されると、スタートスイッチ34が操作されたことを示す信号がメインCPU65に入力され、メインCPU65(役抽選手段69)は役抽選するとともに、メインCPU65(リール制御手段70)はモータ40を駆動させる。すなわち、メインCPU65(リール制御手段70)は全てのリール39を回転させる。
全てのリール39が回転している状態において、例えば、左ストップスイッチ35aが操作されると、左ストップスイッチ35aが操作されたことを示す信号がメインCPU65に入力され、メインCPU65(リール制御手段70)はモータ40を駆動させる。すなわち、左ストップスイッチ35aに対応する左リール39aの回転を停止させる。
全てのリール39の回転が停止している状態において、メインCPU65(表示判定手段71)は、有効ラインに表示された図柄の組合せが何れかの役に対応する図柄の組合せと一致するか否かを判定する(表示判定/入賞判定)。そして、例えば、メインCPU65(表示判定手段71)が有効ラインに表示された図柄の組合せが所定の小役に対応する図柄の組合せと一致すると判定すると、メインCPU65(払出手段72)は遊技メダルを払い出す。
図4に示したように、メイン制御基板60は、メインCPU65の動作によって実現される、役抽選手段69、リール制御手段70、表示判定手段71、払出手段72、RT制御手段75、外部信号送信手段77、及び制御コマンド送信手段78を備えている。以下では、本実施形態における図柄の配列、役、図柄の組合せ等を説明した後、メイン制御基板60における上記の各手段について説明する。
なお、図4に示したメイン制御基板60の各手段は、本実施形態における一例に過ぎず、メイン制御基板60は、別の動作を行う他の手段(例えば、役抽選の結果に基づいて押し順指示番号を選択する押し順指示番号選択手段や、役抽選の結果に対応する演出グループ番号を選択する演出グループ番号選択手段等)を備えるようにしてもよい。
[3−1.図柄の配列、役、図柄の組合せ等]
まず、本実施形態における図柄の配列、役、図柄の組合せ等について説明する。
図17は、各リールの図柄の配列を説明するための図である。図17(A)には、各リール39(左リール39a,中リール39b,右リール39c)の図柄の配列が示されている。また、図17(B)には、各図柄と、各図柄の名称がまとめられている。なお、図17(A)には、説明の便宜上、図柄の番号(図柄番号)が併記されている。ちなみに、図17における「ブランク」とは、図柄が印刷されていないことを意味するものではなく、ブランク図柄が印刷されている。
図17に示したように、各リール39に貼付されたリールテープは、それぞれ20コマに均等分割され、1コマごとに所定の図柄が印刷されている。具体的には、各リールテープには、それぞれ20個(図柄番号「0」〜「19」)の図柄が印刷されている。
図18は、リール停止時の図柄の表示について説明するための図である。図18(A)は、図柄の表示位置を説明するための図であり、図18(B)は、有効ラインを説明するための図である。
図18(A)に示したように、フロントドア2には表示窓17が設けられており、この表示窓17から9個の図柄(各リール39における連続した3個の図柄)が見えるようになっている。このとき、表示窓17から見える、左リール39aにおける連続した3個の図柄のそれぞれの表示位置は、上から順に「左上段」、「左中段」、「左下段」と称され、中リール39bにおける連続した3個の図柄のそれぞれの表示位置は、上から順に「中上段」、「中中段」、「中下段」と称され、右リール39cにおける連続した3個の図柄のそれぞれの表示位置は、上から順に「右上段」、「右中段」、「右下段」と称される。
図18(B)には、全てのリール39の回転が停止した状態の一例が示され、有効ラインが破線によって示されている。
本実施形態では、3本のリール39a〜31cに跨る直線的な表示ラインとして、左上段−中上段−右上段の表示ラインと、左中段−中中段−右中段の表示ラインと、左下段−中下段−右下段の表示ラインと、左上段−中中段−右下段の表示ラインと、左下段−中中段−右上段の表示ラインがある。なお、非直線的な表示ライン(例えば、左上段−中中段−右上段の表示ライン)があってもよい。
本実施形態では、図18(B)に示したように、左上段−中中段−右下段の表示ラインが有効ラインに設定され、その他の表示ラインは全て「無効ライン」に設定されている。なお、有効ラインに設定される表示ラインは、左上段−中中段−右下段の表示ラインに限られるものではなく、その他の表示ライン(例えば、左上段−中上段−右上段の表示ライン)が有効ラインに設定されてもよい。また、複数の表示ライン(例えば、左上段−中上段−右上段の表示ラインと左上段−中中段−右下段の表示ライン)が有効ラインに設定されてもよい。
図18(B)の場合には、「青セブン−青セブン−青セブン」が有効ラインに表示されている。すなわち、メイン制御基板60(後述する表示判定手段71)は、1種BBに対応する図柄の組合せが有効ラインに表示されていると判定する(図19参照)。
図19〜図23は、図柄の組合せを説明するための図(その1〜その5)である。図19〜図23には、図柄の組合せと、条件装置と、図柄の組合せが有効ラインに表示されたときに付与される特典とがまとめられている。なお、図19〜図23には、説明の便宜上、図柄の組合せの番号が併記されている。また、図23には、押し順ベル(入賞A群)に当選した遊技において、当該役を取りこぼしたときに表示される図柄の組合せ(「パターン01(図柄の組合せの番号「85」〜「88」)」と「パターン02(図柄の組合せの番号「89」〜「92」)」)も示されている。
前述したように、条件装置は、役物又は役物連続作動装置の作動に係る条件装置と、再遊技に係る条件装置と、入賞に係る条件装置とに大別される。
図19〜図23に示した各図柄の組合せと、各図柄の組合せに対応する条件装置について説明する。
図19に示した図柄の組合せの番号「1」は、役物又は役物連続作動装置の作動に係る条件装置に対応する図柄の組合せである。本実施形態では、役物又は役物連続作動装置の作動に係る条件装置として、1個の役物又は役物連続作動装置の作動に係る条件装置(1種BB)を有している。なお、役物又は役物連続作動装置の作動に係る条件装置として、SBや、RBや、CBや、2種BBを有していてもよい。
1種BBに対応する図柄の組合せが有効ラインに表示されると、1種BB(第一種特別役物に係る役物連続作動装置)と、RB(第一種特別役物)が作動する。換言すると、通常遊技(非RT、RT1〜RT4の何れか)から1種BB遊技(1種BB作動時(RB作動時))に移行する。1種BB遊技中は出玉率が「1」を超えるように設計されている。すなわち、1種BB遊技は、通常遊技よりも多くの遊技メダルを獲得することが期待できる、遊技者にとって有利な遊技である。
図19,図20に示した図柄の組合せの番号「2」〜「31」は、再遊技に係る条件装置に対応する図柄の組合せである。本実施形態では、再遊技に係る条件装置として、11個の再遊技に係る条件装置(再遊技01〜再遊技11)を有している。
再遊技01〜再遊技11に対応する図柄の組合せが有効ラインに表示されると、遊技メダルが自動的にベットされる。換言すると、再遊技を行う(リプレイ)ことができる。そのため、「再遊技01〜再遊技11」は「リプレイ」とも称される。
なお、再遊技01に対応する図柄の組合せが有効ラインに表示されると、RTが移行することがある。具体的には、RT1やRT2において、再遊技01に対応する図柄の組合せが有効ラインに表示されると、非RTに移行する。そのため、「再遊技01」は「RT移行リプレイ」とも称される。非RTが、RT1やRT2よりも遊技者にとって不利なRTである場合には、「再遊技01」は「降格リプレイ」とも称される。しかし、RT4においては、再遊技01に対応する図柄の組合せが有効ラインに表示されても、非RTに移行しない。
また、再遊技04に対応する図柄の組合せが有効ラインに表示されると、RTが移行する。具体的には、RT1において、再遊技04に対応する図柄の組合せが有効ラインに表示されると、RT2に移行する。そのため、「再遊技04」も「RT移行リプレイ」とも称される。RT2が、RT1よりも遊技者にとって有利なRTである場合には、「再遊技04」は「昇格リプレイ」とも称される。
図20〜図23に示した図柄の組合せの番号「32」〜「84」は、入賞に係る条件装置に対応する図柄の組合せである。本実施形態では、入賞に係る条件装置として、23個の入賞に係る条件装置(入賞01〜入賞23)を有している。
入賞01に対応する図柄の組合せが有効ラインに表示されると、9枚の遊技メダルが払い出される。また、入賞01に対応する図柄の組合せが有効ラインに表示されるときは、「ベル−ベル−ベル」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞01」は「ベル」とも称される。
後述するように、押し順ベル(入賞A群,入賞B群)に当選した遊技において、入賞01が作動する。なお、入賞01に対応する図柄の組合せは「PB=1」である。すわなち、本実施形態では、押し順ベル(入賞A群,入賞B群)に当選した遊技において、ストップスイッチ35が正解押し順で操作されたときは、入賞01に対応する図柄の組合せが必ず有効ラインに表示され、9枚の遊技メダルが払い出される。
また、共通ベル(入賞C)に当選した遊技においては、入賞01のみが作動する。前述したように、入賞01に対応する図柄の組合せは「PB=1」である。すわなち、本実施形態では、共通ベル(入賞C)に当選したときは、入賞01に対応する図柄の組合せが必ず有効ラインに表示され、9枚の遊技メダルが払い出される。
入賞02〜入賞09、入賞15、入賞16に対応する図柄の組合せが有効ラインに表示されると、1枚の遊技メダルが払い出される。
後述するように、押し順ベル(入賞A1)に当選した遊技において、入賞02、入賞04、入賞07、入賞09が作動する。押し順ベル(入賞A2)に当選した遊技において、入賞03、入賞05、入賞06、入賞08が作動する。押し順ベル(入賞A3)に当選した遊技において、入賞02、入賞05、入賞06、入賞09が作動する。押し順ベル(入賞A4)に当選した遊技において、入賞03、入賞04、入賞07、入賞08が作動する。押し順ベル(入賞A5)に当選した遊技において、入賞02、入賞05、入賞07、入賞08が作動する。押し順ベル(入賞A6)に当選した遊技において、入賞03、入賞04、入賞06、入賞09が作動する。なお、入賞02〜入賞09に対応する図柄の組合せは「PB≠1」である。
また、押し順ベル(入賞B1)に当選した遊技において、入賞02〜入賞09が作動する。押し順ベル(入賞B2)に当選した遊技において、入賞02〜入賞09、入賞15が作動する。押し順ベル(入賞B3)に当選した遊技において、入賞02〜入賞09、入賞16が作動する。なお、前述したように、入賞02〜入賞09に対応する図柄の組合せは「PB≠1」である。また、入賞15、入賞16に対応する図柄の組合せも「PB≠1」である。
入賞10〜入賞12に対応する図柄の組合せが有効ラインに表示されると、4枚の遊技メダルが払い出される。また、入賞10に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が有効ラインに表示される。そのため、「入賞10」は「斜めスイカ」とも称される。さらに、入賞11に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が無効ライン(左上段−中上段−右上段の表示ライン)に表示され、入賞12に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞11、入賞12」は「平行スイカ」とも称される。そして、「入賞10〜入賞12」は「スイカ」とも称される。
後述するように、弱スイカ(入賞D)に当選した遊技において、入賞10が作動する。なお、入賞10に対応する図柄の組合せは「PB≠1」である。すなわち、本実施形態では、弱スイカに当選した遊技において、ストップスイッチ35の操作によっては、入賞10に対応する図柄の組合せが有効ラインに表示され、4枚の遊技メダルが払い出される。
また、強スイカ(入賞E)に当選した遊技において、入賞10〜入賞12が作動する。なお、前述したように、入賞10に対応する図柄の組合せは「PB≠1」である。また、入賞11、入賞12に対応する図柄の組合せも「PB≠1」である。すなわち、本実施形態では、強スイカに当選した遊技において、ストップスイッチ35の操作によっては、入賞10〜入賞12に対応する図柄の組合せの何れかが有効ラインに表示され、4枚の遊技メダルが払い出される。
入賞13、入賞14に対応する図柄の組合せが有効ラインに表示されると、2枚の遊技メダルが払い出される。また、入賞13に対応する図柄の組合せが有効ラインに表示されるときは、「チェリー−チェリー/赤セブン−チェリー/省略」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞13」は「中段チェリー」とも称される。また、入賞14に対応する図柄の組合せが有効ラインに表示されるときは、「チェリー/省略−チェリー/赤セブン−省略」が無効ライン(左下段−中上段−右上段の表示ライン)に表示される。そのため、「入賞14」は「角チェリー」とも称される。そして、「入賞13,入賞14」は「チェリー」とも称される。
後述するように、弱チェリー(入賞F)に当選した遊技において、入賞14が作動する。なお、入賞14に対応する図柄の組合せは「PB=1」である。すなわち、本実施形態では、弱チェリーに当選したときは、入賞14に対応する図柄の組合せが必ず有効ラインに表示され、2枚の遊技メダルが払い出される。
また、強チェリー(入賞H)に当選した遊技において、入賞13、入賞14が作動する。なお、入賞13に対応する図柄の組合せは「PB≠1」である。しかし、前述したように、入賞14に対応する図柄の組合せは「PB=1」である。すなわち、本実施形態では、強チェリーに当選したときは、入賞13、入賞14に対応する図柄の組合せの何れかが必ず有効ラインに表示され、2枚の遊技メダルが払い出される。
入賞20〜入賞23に対応する図柄の組合せが有効ラインに表示されると、10枚の遊技メダルが払い出される。
後述するように、JAC1(入賞N)に当選した遊技において、入賞20〜入賞23が作動する。なお、入賞20〜入賞23に対応する図柄の組合せは「PB=1」である。すなわち、JAC1に当選したときは、入賞20〜入賞23に対応する図柄の組合せの何れかが必ず有効ラインに表示され、10枚の遊技メダルが払い出される。
また、JAC2(入賞O)に当選した遊技において、入賞21、入賞23が作動する。前述したように、入賞21、入賞23に対応する図柄の組合せは「PB=1」である。すなわち、JAC2に当選したときは、入賞21、入賞23に対応する図柄の組合せの何れかが必ず有効ラインに表示され、10枚の遊技メダルが払い出される。
また、JAC3(入賞P)に当選した遊技において、入賞20、入賞22が作動する。前述したように、入賞20、入賞22に対応する図柄の組合せは「PB=1」である。すなわち、JAC3に当選したときは、入賞20、入賞22に対応する図柄の組合せの何れかが必ず有効ラインに表示され、10枚の遊技メダルが払い出される。
また、JAC4(入賞Q)に当選した遊技において、入賞20、入賞21が作動する。前述したように、入賞20、入賞21に対応する図柄の組合せは「PB=1」である。すなわち、JAC4に当選したときは、入賞20、入賞21に対応する図柄の組合せの何れかが必ず有効ラインに表示され、10枚の遊技メダルが払い出される。
パターン01、パターン02に対応する図柄の組合せが有効ラインに表示されると、RTが移行することがある。具体的には、非RT、RT2、またはRT3において、パターン01またはパターン02に対応する図柄の組合せが有効ラインに表示されると、RT1に移行する。しかし、RT4においては、パターン01またはパターン02に対応する図柄の組合せが有効ラインに表示されても、RT1に移行しない。
本実施形態では、押し順ベル(入賞A群)に当選した遊技において、ストップスイッチ35が不正解押し順で操作されたときは、パターン01またはパターン02に対応する図柄の組合せが有効ラインに表示され、RTが移行することがある。
なお、本実施形態では、押し順ベル(入賞A群)に当選した遊技において、当該役を取りこぼしたときは、パターン01またはパターン02に対応する図柄の組合せが必ず有効ラインに表示される。しかし、押し順ベル(入賞A群)に当選した遊技において、当該役を取りこぼしたときでも、パターン01またはパターン02に対応する図柄の組合せが有効ラインに表示されないことがあってもよい。
前述した各条件装置のうち1種BBは、作動した遊技において、対応する図柄の組合せが有効ラインに表示されなければ、その作動は終了しない。しかし、再遊技01〜再遊技11や入賞01〜入賞23は、作動した遊技において、対応する図柄の組合せが有効ラインに表示されなくても、その作動は終了する。
なお、役物又は役物連続作動装置の作動に係る条件装置として、SB、RB、CB、または2種BBを有している場合は、RBや2種BBは、作動した遊技において、対応する図柄の組合せが有効ラインに表示されなければ、その作動は終了しない。しかし、SBやCBは、作動した遊技において、対応する図柄の組合せが有効ラインに表示されなくても、その作動は終了する。
[3−2.役抽選手段]
次に、役抽選手段69について説明する。役抽選手段69は、役抽選する。なお、「役抽選の結果」は、「役抽選結果」や「抽選結果」とも称される。また、「役抽選(役を抽選)する」とは、役を選択することや役を決定することである。そのため、「役抽選手段69」は、「役選択手段69」や「役決定手段69」とも称される。
役抽選手段69は、例えば、抽選用の乱数発生手段(ハードウェア乱数等)と、乱数発生手段が発生する乱数を抽出する乱数抽出手段と、乱数抽出手段が抽出した乱数値に基づいて、役の当選の有無、及び当選した役を判定する判定手段とを備える。
乱数発生手段は、所定の領域の乱数(例えば10進数で「0」〜「65535」の合計65536個の乱数)を発生させる。乱数は、例えば200ナノ秒で1カウントを行うカウンタが「0」〜「65535」の範囲を1サイクルとしてカウントし続ける乱数であり、スロットマシン10の電源が投入されている間は、乱数発生手段は乱数をカウントし続ける。
乱数抽出手段は、乱数発生手段によって発生した乱数を、所定のタイミングで(本実施形態では遊技者によってスタートスイッチ34が操作(オン)されたときに)抽出する。判定手段は、乱数抽出手段によって抽出された乱数値を役抽選テーブル(図26参照)と照合することによって、当該乱数値が属する領域に対応する役を決定する。
図24,図25は、各役を説明するための図(その1,その2)である。図24,図25には、条件装置番号、演出グループ番号、役の名称、役の通称、作動する条件装置、及びRTごとの置数の有無がまとめられている。図24,図25では、スロットマシン10で役抽選される役の一部については記載が省略されている。
なお、図24,図25に示される演出グループ番号は、当選役の種類を判別できる程度に役をグループ化した番号であって、例えば不図示の演出グループ番号選択手段によって、役抽選手段69による役抽選の結果に対応して選択され、制御コマンド送信手段78によってサブ制御基板80に送信される。演出グループ番号の詳細な説明は省略するが、本実施形態では、サブ制御基板80に対して、当選役に係る入賞及び再遊技条件装置番号そのものを送信せずに、演出グループ番号を送信することによって、サブ制御基板80側で、当選役をある程度の範囲で(例えば、入賞A群または入賞B群の何れに当選したか等の範囲で)推測することができるとともに、演出グループ番号に対応する演出を選択し、出力することを可能としている。
前述したように、役は、ボーナス(役物又は役物連続作動装置に係る条件装置が作動する)と、リプレイ(再遊技に係る条件装置が作動する)と、小役(入賞に係る条件装置が作動する)とに大別される。
そして、「条件装置番号」とは、当選した役(作動する条件装置)を特定するための番号である。すなわち、図24,図25(A)に示した「条件装置番号」は「入賞及び再遊技条件装置番号」であり、これは、当選した小役(作動する入賞に係る条件装置)や当選したリプレイ(作動する再遊技条件装置)を特定するための番号である。また、図25(B)に示した「条件装置番号」は「役物条件装置番号」であり、これは、当選したボーナス(作動する役物又は役物連続作動装置の作動に係る条件装置)を特定するための番号である。
そして、「置数の有無」欄における「〇」は、役抽選テーブル(図26参照)に置数があることを意味する。換言すると、役抽選の抽選対象となる役であることを意味する。また、「置数の有無」欄における「×」は、役抽選テーブル(図26参照)に置数がないことを意味する。換言すると、役抽選の抽選対象とならない役であることを意味する。
まず、ボーナスについて説明する。
図25(B)に示した役物条件装置番号「1」は、ボーナスである。本実施形態では、ボーナスとして、1つのボーナス(1種BB)を有している。すなわち、1種BBに当選したときは、役物条件装置番号は「1」となり、1種BBに当選しなかったときは、役物条件装置番号は「0」となる。なお、ボーナスとして、SB、RB、CB、または2種BBを有していてもよい。
1種BB(役物条件装置番号は「1」)は、ストップスイッチ35が操作されたタイミングによっては、1種BBに対応する図柄の組合せが有効ラインに表示され、1種BBとRBが作動する。換言すると、1種BB作動時(RB作動時)に移行する。
一般的に、ボーナスが当選する場合には、単独で当選する場合と、リプレイと重複して当選する場合と、小役と重複して当選する場合がある。本実施形態では、1種BBが当選する場合には、単独で当選する場合(設定2〜設定6)と、後述する再遊技Eと重複して当選する場合(設定2〜設定6)と、後述する再遊技Fと重複して当選する場合(設定1〜設定6)とがある(図26参照)。
そして一般的に、リプレイと重複して当選した場合や、小役と重複して当選した場合には、今回遊技ではリプレイや小役に対応する図柄の組合せを優先して有効ラインに表示させる。なお、今回遊技でボーナスに対応する図柄の組合せを優先して有効ラインに表示させてもよい。本実施形態では、再遊技Eと重複して当選した場合や、再遊技Fと重複して当選した場合には、今回遊技では再遊技Eや再遊技Fに対応する図柄の組合せを優先して有効ラインに表示させている。
次に、ハズレ、リプレイ、及び小役について説明する。
図24に示した入賞及び再遊技条件装置番号「0」は、ハズレである。すなわち、役抽選の結果がハズレのときは、入賞及び再遊技条件装置番号は「0」となる。なお、役物条件装置番号は、役抽選の結果がハズレであることに影響を受けない。すなわち、役物条件装置番号が「0」であるときに役抽選の結果がハズレの場合には、役物条件装置番号は「0」のままであり、役物条件装置番号が「1」であるとき(例えばボーナスの当選情報を持ち越しているとき)に役抽選の結果がハズレの場合には、役物条件装置番号は「1」のままとなる。
図24に示した入賞及び再遊技条件装置番号「1」〜「15」(一部不図示)は、リプレイである。本実施形態では、リプレイとして、15のリプレイ(再遊技A1〜再遊技A6、再遊技B1〜再遊技B3、再遊技C、再遊技D(不図示)、再遊技E、再遊技F、再遊技G(不図示)、再遊技H(不図示))を有している。なお、再遊技A1〜再遊技A6は「再遊技A群」、再遊技B1〜再遊技B3は「再遊技B群」とも総称される。
再遊技A1〜再遊技A6(入賞及び再遊技条件装置番号「1」〜「6」)は、ストップスイッチ35が正解押し順で操作されたときは、再遊技04に対応する図柄の組合せが有効ラインに表示され、RT2に移行する。また、ストップスイッチ35が不正解押し順で操作されたときは、再遊技01に対応する図柄の組合せが有効ラインに表示され、非RTに移行する。すなわち、再遊技A1〜再遊技A6は、ストップスイッチ35が何れの押し順で操作されたかによって、得られる遊技の結果が異なるリプレイである。そのため、「再遊技A1〜再遊技A6」は「押し順リプレイ」とも称される。なお、再遊技04に対応する図柄の組合せが有効ラインに表示されたときも、再遊技01に対応する図柄の組合せが有効ラインに表示されたときも、遊技メダルが自動的にベットされる。
また、再遊技A1における正解押し順は「左・中・右」とされ、再遊技A2における正解押し順は「左・右・中」とされ、再遊技A3における正解押し順は「中・左・右」とされ、再遊技A4における正解押し順は「中・右・左」とされ、再遊技A5における正解押し順は「右・左・中」とされ、再遊技A6における正解押し順は「右・中・左」とされ、再遊技04に対応する図柄の組合せが有効ラインに表示される確率は、再遊技A1〜再遊技A6の何れも「1/6」である。すなわち、再遊技A1〜再遊技A6は、6択の押し順リプレイである。
再遊技B1〜再遊技B3(入賞及び再遊技条件装置番号「7」〜「9」)は、ストップスイッチ35が正解押し順で操作されたときは、再遊技02に対応する図柄の組合せが有効ラインに表示される(RTは移行しない)。また、ストップスイッチ35が不正解押し順で操作されたときは、再遊技01に対応する図柄の組合せが有効ラインに表示され、非RTに移行する。すなわち、再遊技B1〜再遊技B3は、ストップスイッチ35が何れの押し順で操作されたかによって、得られる遊技の結果が異なるリプレイである。そのため、「再遊技B1〜再遊技B3」も「押し順リプレイ」とも称される。なお、再遊技02に対応する図柄の組合せが有効ラインに表示されたときも、再遊技01に対応する図柄の組合せが有効ラインに表示されたときも、遊技メダルが自動的にベットされる。
また、再遊技B1における正解押し順は「左第一」とされ、再遊技B2における正解押し順は「中第一」とされ、再遊技B3における正解押し順は「右第一」とされ、再遊技02に対応する図柄の組合せが有効ラインに表示される確率は、再遊技B1〜再遊技B3の何れも「1/3」である。すなわち、再遊技B1〜再遊技B3は、3択の押し順リプレイである。
再遊技C(入賞及び再遊技条件装置番号「10」)は、ストップスイッチ35が何れの押し順で操作されても、再遊技01に対応する図柄の組合せが有効ラインに表示される。すなわち、再遊技Cは、ストップスイッチ35が何れの押し順で操作されても、得られる遊技の結果が異ならないリプレイである。そのため、「再遊技C」は「リプレイ(通常リプレイ)」とも称される。
再遊技Cは、非RTとRT4でのみ役抽選の抽選対象となるリプレイである。したがって、再遊技01に対応する図柄の組合せが有効ラインに表示されても、RTは移行しない。なお、再遊技01に対応する図柄の組合せが有効ラインに表示されたときは、遊技メダルが自動的にベットされる。
再遊技E(入賞及び再遊技条件装置番号「12」)は、ストップスイッチ35が何れの押し順で操作されても、再遊技03に対応する図柄の組合せが有効ラインに表示される。すなわち、再遊技Eは、ストップスイッチ35が何れの押し順で操作されても、得られる遊技の結果が異ならないリプレイである。ただし、前述したように、再遊技Eは、1種BBと重複して当選する場合(設定2〜設定6)がある。そのため、「再遊技E」は「チャンスリプレイ」とも称される。また、再遊技03に対応する図柄の組合せが有効ラインに表示されても、RTは移行しない。なお、再遊技03に対応する図柄の組合せが有効ラインに表示されたときは、遊技メダルが自動的にベットされる。
ここで、前述したように、再遊技Eは、設定2以上の場合、その一部において1種BBとの重複当選となる(再遊技E+1種BB)。詳しく説明すると、本実施形態の場合、設定1の役抽選テーブルでは「再遊技E+1種BB」の置数は「0」とされており抽選対象とされない。一方、設定2〜6の役抽選テーブルでは、「再遊技E+1種BB」の置数に「1」以上の所定値が設定されており、重複当選の可能性がある(詳細は、図26参照)。設定2〜6の役抽選テーブルにおける置数の所定値は、各設定で同値であってもよいし、異なる値であってもよい。このように、設定によって当選確率(抽選/無抽選も含む)が異なる状況を、「設定差がある、設定差を有する」と称する。すなわち、再遊技Eは、単独当選することもあるが、その一部において1種BBとの重複当選となるリプレイであり、「再遊技E+1種BB」となる重複当選の当選確率は設定差を有する。
再遊技F(入賞及び再遊技条件装置番号「13」)は、ストップスイッチ35が何れの押し順で操作されても、再遊技03に対応する図柄の組合せが有効ラインに表示される。すなわち、再遊技Eは、ストップスイッチ35が何れの押し順で操作されても、得られる遊技の結果が異ならないリプレイである。ただし、前述したように、再遊技Fは、1種BBと重複して当選する(設定1〜設定6)。そのため、「再遊技F」も「チャンスリプレイ」とも称される。また、再遊技03に対応する図柄の組合せが有効ラインに表示されても、RTは移行しない。なお、再遊技03に対応する図柄の組合せが有効ラインに表示されたときは、遊技メダルが自動的にベットされる。
ここで、再遊技Fは、その当選時に必ず1種BBとの重複当選となる(再遊技F+1種BB)。すなわち、再遊技Fは単独当選することはない。厳密には、内部中遊技であるRT4において、再遊技Fは単独当選するが、この場合はボーナス(1種BB)の当選情報が持ち越されているため、広義で重複当選に含めている。
また、「再遊技F+1種BB」は、前述した「再遊技E+1種BB」と比較したときに、その当選確率に設定差が設けられていない点で相違している。具体的には、後述する図26によれば、設定1〜6の何れの役抽選テーブルにおいても、「再遊技F+1種BB」には「29」の置数が設定されている。以上をまとめると、再遊技Fは特別役(1種BB)との重複当選となるリプレイであって、その重複当選の当選確率は設定差を持たない。
図24に示した入賞及び再遊技条件装置番号「16」〜「39」(一部不図示)は、小役である。本実施形態では、小役として、24の小役(入賞A1〜入賞A6、入賞B1〜入賞B3、入賞C、入賞D、入賞E、入賞F、入賞G(不図示)、入賞H、入賞I(不図示)、入賞J(不図示)、入賞K(不図示)、入賞L(不図示)、入賞M(不図示)、入賞N、入賞O、入賞P、入賞Q)を有している。なお、入賞A1〜入賞A6は「入賞A群」、入賞B1〜入賞B3は「入賞B群」とも総称される。
入賞A1〜入賞A6(入賞及び再遊技条件装置番号「16」〜「21」)は、ストップスイッチ35が正解押し順で操作されたときは、入賞01に対応する図柄の組合せが有効ラインに表示され、9枚の遊技メダルが払いされる。また、ストップスイッチ35が不正解押し順で操作されたときは、ストップスイッチ35が操作されたタイミングによっては、入賞02〜入賞09(作動しているものに限る)に対応する図柄の組合せが有効ラインに表示され、1枚の遊技メダルが払い出される。なお、ストップスイッチ35が不正解押し順で操作されたときは、ストップスイッチ35が操作されたタイミングによっては、パターン01や、パターン02に対応する図柄の組合せが有効ラインに表示され、RT1に移行することがある。すなわち、入賞A1〜入賞A6は、ストップスイッチ35が何れの押し順で操作されたかによって、得られる遊技の結果が異なる小役である。さらに、前述したように、入賞01に対応する図柄の組合せが有効ラインに表示されるときは、「ベル−ベル−ベル」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞A1〜入賞A6」は「押し順ベル」とも称される。
また、入賞A1における正解押し順は「左第一」とされ、入賞A2における正解押し順は「左第一」とされ、入賞A3における正解押し順は「中第一」とされ、入賞A4における正解押し順は「中第一」とされ、入賞A5における正解押し順は「右第一」とされ、入賞A6における正解押し順は「右第一」とされ、入賞01に対応する図柄の組合せが有効ラインに表示される確率は、入賞A1〜入賞A6の何れも「1/3」である。すなわち、入賞A1〜入賞A6は、3択の押し順ベルである。
入賞B1〜入賞B3(入賞及び再遊技条件装置番号「22」〜「24」)は、ストップスイッチ35が正解押し順で操作されたときは、入賞01に対応する図柄の組合せが有効ラインに表示され、9枚の遊技メダルが払い出される。また、ストップスイッチ35が不正解押し順で操作されたときは、入賞02〜入賞09(作動しているものに限る)に対応する図柄の組合せが有効ラインに表示され、1枚の遊技メダルが払い出される。すなわち、入賞B1〜入賞B3は、ストップスイッチ35が何れの押し順で操作されたかによって、得られる遊技の結果が異なる小役である。さらに、前述したように、入賞01に対応する図柄の組合せが有効ラインに表示されるときは、「ベル−ベル−ベル」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞B1〜入賞B3」も「押し順ベル」とも称される。
また、入賞B1における正解押し順は「左第一/中第一」とされ、入賞B2における正解押し順は「中第一/右第一」とされ、入賞B3における正解押し順は「右第一/左第一」とされ、入賞01に対応する図柄の組合せが有効ラインに表示される確率は、入賞B1〜入賞B3の何れも「2/3」である。
本実施形態では、指示機能が作動しない遊技状態(非AT中)では、押し順ベル(入賞A群,入賞B群)に当選した遊技において、ストップスイッチ35が正解押し順で操作されることもあれば(遊技メダルが増加することもあれば)、ストップスイッチ35が不正解押し順で操作されることもある(遊技メダルが減少することもある)ことになり、遊技メダルの増加を抑制する遊技区間を形成することができる。一方、指示機能が作動する遊技状態(AT中)では、押し順ベル(入賞A群,入賞B群)に当選した遊技において、指示機能に従ってストップスイッチ35が正解押し順で操作される(遊技メダルが増加する)ことになり、遊技メダルが増加する遊技区間を形成することができる。
入賞C(入賞及び再遊技条件装置番号「25」)は、ストップスイッチ35が何れの押し順で操作されても、入賞01に対応する図柄の組合せが有効ラインに表示され、9枚の遊技メダルが払い出される。すなわち、入賞Cは、ストップスイッチ35が何れの押し順で操作されても、得られる遊技の結果が異ならない小役である。また、前述したように、入賞01に対応する図柄の組合せが有効ラインに表示されるときは、「ベル−ベル−ベル」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞C」は「ベル(共通ベル)」とも称される。
入賞D(入賞及び再遊技条件装置番号「26」)は、ストップスイッチ35が何れの押し順で操作されても、ストップスイッチ35が操作されたタイミングによっては、入賞10に対応する図柄の組合せが有効ラインに表示され、4枚の遊技メダルが払い出される。すなわち、入賞Dは、ストップスイッチ35が操作されたタイミングによって、得られる遊技の結果が異なる小役である。また、前述したように、入賞10に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が有効ラインに表示される。そのため、「入賞D」は「弱スイカ」とも称される。
入賞E(入賞及び再遊技条件装置番号「27」)は、ストップスイッチ35が何れの押し順で操作されても、ストップスイッチ35が操作されたタイミングによっては、入賞10〜入賞12に対応する図柄の組合せが有効ラインに表示され、4枚の遊技メダルが払い出される。すなわち、入賞Eは、ストップスイッチ35が操作されたタイミングによって、得られる遊技の結果が異なる小役である。また、前述したように、入賞10に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が有効ラインに表示される。さらに、前述したように、入賞11に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が無効ライン(左上段−中上段−右上段の表示ライン)に表示される。そして、前述したように、入賞12に対応する図柄の組合せが有効ラインに表示されるときは、「スイカ−スイカ−スイカ」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。そのため、「入賞E」は「強スイカ」とも称される。
本実施形態では、強スイカ(入賞E)に当選したときは、入賞11、入賞12に対応する図柄の組合せを優先して有効ラインに表示させている。なお、強スイカ(入賞E)に当選したときは、入賞10に対応する図柄の組合せを優先して有効ラインに表示させてもよい。
入賞F(入賞及び再遊技条件装置番号「28」)は、ストップスイッチ35が何れの押し順で操作されても、入賞14に対応する図柄の組合せが有効ラインに表示され、2枚の遊技メダルが払い出される。すなわち、入賞Fは、ストップスイッチ35が何れの押し順で操作されても、得られる遊技の結果が異ならない小役である。さらに、前述したように、入賞14に対応する図柄の組合せが有効ラインに表示されるときは、「チェリー/省略−チェリー/赤セブン−省略」が無効ライン(左下段−中中段−右上段の表示ライン)に表示される。そのため、「入賞F」は「弱チェリー」とも称される。
入賞H(入賞及び再遊技条件装置番号「30」)は、ストップスイッチ35が何れの押し順で操作されても、入賞13又は入賞14に対応する図柄の組合せが有効ラインに表示され、2枚の遊技メダルが払い出される。すなわち、入賞Hは、ストップスイッチ35が何れの押し順で操作されても、得られる遊技の結果が異ならない小役である。また、前述したように、入賞13に対応する図柄の組合せが有効ラインに表示されるときは、「チェリー−チェリー/赤セブン−チェリー/省略」が無効ライン(左中段−中中段−右中段の表示ライン)に表示される。さらに、前述したように、入賞14に対応する図柄の組合せが有効ラインに表示されるときは、「チェリー/省略−チェリー/赤セブン−省略」が無効ライン(左下段−中中段−右上段の表示ライン)に表示される。そのため、「入賞H」は「強チェリー」とも称される。
本実施形態では、強チェリー(入賞H)に当選したときは、入賞13に対応する図柄の組合せを優先して有効ラインに表示させている。なお、強チェリー(入賞H)に当選したときは、入賞14に対応する図柄の組合せを優先して有効ラインに表示させてもよい。
入賞N、入賞O、入賞P、入賞Q(入賞及び再遊技条件装置番号「36」〜「39」)は、ストップスイッチ35が何れの押し順で操作されても、入賞20〜入賞23(作動しているものに限る)に対応する図柄の組合せが有効ラインに表示され、10枚の遊技メダルが払い出される。すなわち、入賞N、入賞O、入賞P、入賞Qは、ストップスイッチ35が何れの押し順で操作されても、遊技の結果が異ならない小役である。また、入賞N、入賞O、入賞P、入賞Qの何れも、1種BB作動時(RB作動時)でのみ役抽選の抽選対象となる小役である。そのため、「入賞N、入賞O、入賞P、入賞Q」は「JAC(JAC1〜JAC4)」とも称される。
図26は、役抽選で用いられる役抽選テーブルの一例を示す図である。本実施形態では、設定(設定1〜設定6)や、RT(非RT、RT1〜RT4、1種BB作動時(RB作動時))ごとに、異なる役抽選テーブルが用いられる。図26には、設定1におけるRTごとの置数が示されている。なお、図26では、再遊技D、再遊技G、再遊技H、入賞G、及び入賞I〜入賞Mが省略されている。さらに、図26では置数の一部が省略されている。但し、省略された置数には、少なくとも1以上の値があるものとする。
図26に示した役抽選テーブルは、置数の総数(総置数)を「65536」としている。したがって、役抽選における役の当選確率は、置数を「65536」で除することによって算出される。例えば、RTにおける再遊技A1の当選確率は「1437/65536」となる。
前述したように、1種BBは、単独で当選する場合と、再遊技Eと重複して当選する場合と、再遊技Fと重複して当選する場合があり、図26ではこれらを区別して示している。具体的には、「1種BB」は1種BBが単独で当選する場合を意味し、「再遊技E+1種BB」は1種BBが再遊技Eと重複して当選する場合を意味し、「再遊技F+1種BB」は1種BBが再遊技Fと重複して当選する場合を意味する。また、「再遊技E」は再遊技Eが単独で当選する場合を意味し、「再遊技F」は再遊技Fが単独で当選する場合を意味する。
本実施形態では、再遊技Eは、設定1のときは1種BBと重複して当選する場合がなく、設定2以上のときは1種BBと重複して当選する場合がある。図26では、RT1における「再遊技E」の置数は「327」であり、「再遊技E+1種BB」の置数は何れのRTにおいても「0」であることから、設定1における再遊技Eは、単独で当選する場合があるが、1種BBと重複して当選する場合がないことがわかる。
また、図26に示したように、設定2以上では「再遊技E+1種BB」の置数は「1」以上であることから、設定2以上における再遊技Eは、1種BBと重複して当選する場合があることがわかる。すなわち、「再遊技E+1種BB」は当選確率に設定差があることがわかる。
本実施形態では、再遊技Fは、1種BBと重複して当選する場合がある。図26では、「再遊技F」の置数は非内部中遊技の何れのRTにおいても「0」であり、RT1における「再遊技F+1種BB」の置数は「29」であることから、設定1における再遊技Fは、単独で当選する場合がないが、1種BBと重複して当選する場合があることがわかる。なお、図示していないが、設定2以上でも「再遊技F+1種BB」の置数は「29」である。すなわち、「再遊技F+1種BB」は当選確率に設定差がないことがわかる。
なお、本実施形態では、「再遊技D(不図示)」、「入賞C」、「1種BB」、及び「再遊技E+1種BB」以外の役は、当選確率に設定差がない。
[3−3.リール制御手段]
リール制御手段70について説明する。リール制御手段70は、モータ40を駆動することによって、リール39を回転させる。また、リール制御手段70は、モータ40を駆動することによって、リール39の回転を停止させる。
リール制御手段70は、スタートスイッチ34が操作されると、モータ40を駆動し、リール39(左リール39a,中リール39b,右リール39c)を回転させる。そして、リール39の回転速度が一定速度(1分間で約80回転する速度)に達した後に、何れかのストップスイッチ35(左ストップスイッチ35a,中ストップスイッチ35b,右ストップスイッチ35c)が操作されると、役抽選手段69による役抽選の結果等に基づいて、当該ストップスイッチ35に対応するリール39(左リール39a,中リール39b,右リール39c)の停止位置を決定するとともに、モータ40を駆動し、決定した停止位置に当該リール39の回転を停止させる。
なお、ストップスイッチ35が操作されてから190ms以内にリール39の回転が停止するようになっているが、リール制御手段70は、できる限り、当選している役に対応する図柄の組合せが有効ラインに表示されるようにリール39の回転を停止させる(引き込み制御する)とともに、絶対に、当選していない役に対応する図柄の組合せが有効ラインに表示されないようにリール39の回転を停止させる(蹴飛ばし制御する)。
具体的には、ストップスイッチ35が操作された瞬間の図柄から4個先の図柄までが、表示する(引き込む)ことができる図柄となる。例えば、図17を参照すると、左リール39aの図柄番号「1」のリプレイ図柄が有効ライン(左上段)に位置する瞬間に、左ストップスイッチ35aが操作されたときは、当該位置から4個先の図柄番号「5」のベル図柄までが有効ライン(左上段)に表示することができる図柄となる。
なお、ストップスイッチ35が操作された瞬間の図柄からではなく、1個先の図柄から4個先の図柄までが、表示する(引き込む)ことができる図柄となるようにしてもよい。この場合は、例えば、図17を参照すると、左リール39aの図柄番号「1」のリプレイ図柄が有効ライン(左上段)に位置する瞬間に、左ストップスイッチ35aが操作されたときは、1個先の図柄番号「2」のスイカ図柄から4個先の図柄番号「6」のリプレイ図柄までが、有効ライン(左上段)に表示することができる図柄となる。
すなわち、表示する(引き込む)ことができる図柄のなかに、当選している役に対応する図柄の組合せを構成する図柄があるときは、当該図柄が表示されるようにリール39の回転を停止する(引き込み制御する)。しかし、表示する(引き込む)ことができる図柄のなかに、当選している役に対応する図柄の組合せを構成する図柄がないときは、当該役は取りこぼすことになる。
なお、リール制御手段70の制御によって表示する(引き込む)ことができる図柄のなかに、当選している役に対応する図柄の組合せを構成する図柄が複数あるときは、ストップスイッチ35が何れの押し順で操作されたかや、ストップスイッチ35が操作されたタイミングによって、優先して表示させる図柄が予め定められており、当該図柄が表示されるようにリール39の回転を停止させる(引き込み制御する)。
[3−4.表示判定手段、払出手段]
表示判定手段71について説明する。表示判定手段71は、全てのリール39の回転が停止したときに、有効ラインに表示された図柄の組合せが何れかの役に対応する図柄の組合せと一致するか否かを判定する。
次に、払出手段72について説明する。払出手段72は、表示判定手段71によって、有効ラインに表示された図柄の組合せが何れかの小役に対応する図柄の組合せと一致すると判定されたときに、当該図柄の組合せに応じた枚数の遊技メダルを払い出す。なお、払出手段72は、表示判定手段71によって、有効ラインに表示された図柄の組合せが何れかのリプレイに対応する図柄の組合せと一致すると判定されたときに、遊技メダルを自動的にベットしてもよい。
[3−5.RT制御手段]
RT制御手段75について説明する。RT制御手段75は、役抽選手段69による役抽選の結果や、表示判定手段71による判定の結果に基づいて、RTの移行条件を満たすか否かを判定し、RTの移行条件を満たすと判定されたときにRTを移行する。
全ての詳細な説明は省略するが、本実施形態におけるRTの移行条件の一部については、図24の備考欄に記載した通りである。具体的には例えば、RT1で再遊技A群に当選した遊技において、ストップスイッチ35が正解押し順で操作されたときは、再遊技04に対応する図柄の組合せが有効ラインに表示され、このとき、RT制御手段75は、RT状態をRT2に移行する。一方、RT1で再遊技A群に当選した遊技において、ストップスイッチ35が正解押し順で操作されなかったときは、再遊技01に対応する図柄の組合せが有効ラインに表示され、このとき、RT制御手段75は、RT状態を非RTに移行する。
[3−6.外部信号送信手段]
外部信号送信手段77について説明する。外部信号送信手段77は、外部端子板100に外部信号を送信する。図10を参照しながら前述したように、本実施形態では、例えば、AT(ART)に関する情報や、エラー情報や遊技メダルの払出やベットに関する情報等が、外部信号として出力ポート62(出力ポート6)から送信される。
メイン制御基板60は、毎遊技、当該遊技の終了を確認する遊技終了チェック処理(M_GAME_CHK)(図34のステップS48)を実行するが、この遊技終了チェック処理の実行時に、外部信号を送信する場合の外部信号データの生成処理が行われる。そして、割込み処理(I_INTR)において、出力ポート6から出力する外部信号の出力データがセット(Bレジスタに記憶)され、外部端子板100に外部信号が送信される(図55のステップS73,S74)。
出力ポート6から送信された外部信号は、外部端子板100に入力されると、外部端子板100に接続された外部機器(例えばホールコンピュータ200)に送信される。この結果、ホールコンピュータ200は、受信した外部信号からスロットマシン10の遊技情報(例えば、ARTの発動や継続、遊技メダルの払出し等)を得ることができるため、スロットマシン10の管理に役立てることができる。さらにホールコンピュータ200は、受信した外部信号に基づいて、データカウンタ等にスロットマシン10の遊技情報を出力させることができる。なお、スロットマシン10の近傍に配置されるデータカウンタ等の場合は、外部端子板100に接続されて外部信号を外部端子板100から直接受信するようにしてもよい。
[3−7.制御コマンド送信手段]
制御コマンド送信手段78について説明する。制御コマンド送信手段78は、サブ制御基板80が演出等を制御するときに必要な各種の情報(制御コマンド)をサブ制御基板80に送信する。
制御コマンド送信手段78によって送信される情報としては、遊技メダルが投入された旨の情報、役の抽選結果(当選役)に基づく情報、リール39の回転が開始された旨の情報、ストップスイッチ35の操作に関する情報、リール39が停止した旨の情報、各リール39の停止位置(有効ラインに停止した図柄)の情報、入賞役の情報、遊技状態(例えばAT・ARTの有無)及び内部状態の情報等が挙げられる。
[4.メイン制御基板による制御処理]
本実施形態に係るスロットマシン10におけるメイン制御基板60(主にメインCPU65によるが、以後は省略することがある)による情報処理について、フローチャートに基づいて説明する。なお、以降の説明では、メイン制御基板60による情報処理で行われる様々な処理について、各処理の概要をフローチャートに図示するが、これらの図示はメイン制御基板60による情報処理の全てを示すものではなく、概要または一部について例示するものである。また、各図において処理名と併せて英語表記が示されているもの(例えば図27に示す「プログラム開始(M_PRG_START)」等)は、プログラムモジュール名の一例である。
[4−1.プログラム開始]
図27は、プログラム開始(M_PRG_START)を示すフローチャートである。「プログラム開始(M_PRG_START)」の処理は、メイン制御基板60による情報処理の開始時に行われる処理であって、メインCPU65がROM64に記憶された所定のプログラムを読み出して実行する。なお、当該処理は、メイン処理に含まれる処理と捉えてもよい。
図27によれば、「プログラム開始」の処理が開始されると、ステップS11において、メイン制御基板60(メインCPU65)はレジスタを初期化する。
ステップS11におけるレジスタの初期化は、スロットマシン10を正常に動作させるために必要な初期値を各種レジスタに設定することを意味し、具体的な処理としては例えば、メインCPU65に設けられているシリアル通信回路の通信速度の設定、割込みの種類の設定(例えば、マスカブル割込みに設定する等)、送信する制御コマンドに付与するパリティビットの設定(例えば、偶数パリティに設定する等)を挙げることができる。
なお、本実施形態では、メイン制御基板60が利用可能な複数のレジスタが設けられており、具体的には例えば、メインCPU65は、Aレジスタ〜Lレジスタ及び送信用レジスタ等の複数のレジスタを内蔵している。各レジスタは1バイト(8ビット)の情報を記憶可能な1バイトレジスタであるが、例えば「HLレジスタ」のように2つのレジスタを合わせて使用することによって、2バイト(16ビット)の情報を記憶可能な2バイトレジスタとすることができる。
次に、ステップS12において、メイン制御基板60は、電源断処理済フラグが正常値であるか否かを判断する。電源断処理済フラグは、スロットマシン10の電源オン時に、前回の電源断が正常に行われたか否かを判断するためのフラグ(不図示)であって、電源断時に実行される「電源断処理(IS_POWER_DOWN)」においてRWM63に記憶される。電源断処理(IS_POWER_DOWN)の詳細は、図58に示される。
ステップS12において電源断処理済フラグが正常値であると判断した場合は(ステップS12のYES)、ステップS13に進む。一方、ステップS12において電源断処理済フラグが正常値ではない(すなわち異常値である)と判断した場合は(ステップS12のNO)、RWM63のチェックサム算出(ステップS13〜S14)を実行せずにステップS15に進む。
ステップS13では、メイン制御基板60は、RWM63のチェックサムの算出を実行する。具体的には、後述する電源断処理(IS_POWER_DOWN)で実行するRWM63のチェックサム算出(図58のステップS624)と同範囲(例えば、プログラムで使用する作業領域、未使用領域、スタックエリア)でチェックサムを算出する。ステップS13では、RWM63に記憶された1バイトデータを加算する。
次いでステップS14では、ステップS13のチェックサム算出が、RWM63の予定された全範囲で完了したか否かを判定する。具体的には、現時点でチェックサムを算出したRWM63のアドレスから次のアドレスを指定し、当該次のアドレスがチェックサムを算出するアドレスであるか否かを判定する。チェックサムの算出が完了していないと判定した場合は(ステップS14のNO)、ステップS13に戻り、チェックサムの算出を継続する。チェックサムの算出が完了していると判定した場合は(ステップS14のYES)、ステップS15に進む。
なお、本実施形態では、以降に説明する処理においても、RWM63の複数範囲(アドレス)に記憶されたデータを初期化する場合には、指定されたRWM63の範囲で上記と同様の処理を実行するものとする。
ステップS15では、メイン制御基板60は、電源断復帰データを所定のレジスタ(例えばBレジスタ)に記憶する。ここで、電源断処理済フラグが正常値であり、かつ、RWM63のチェックサム算出が全範囲で正常に完了したと判断したとき、すなわち、ステップS12のYESからステップS14のYESを経由してステップS15に至った場合には、電源断復帰データとして正常値を記憶する。一方、電源断処理済フラグが異常値であったとき、あるいは、RWM63のチェックサム算出において異常があったと判断したとき、すなわち、ステップS12のNOを経由してステップS15に至った場合や、ステップS13〜S14において何らかの異常(例えば、チェックサム値が異常値)が検出された場合には、電源断復帰データとして異常値を記憶する。
次のステップS16では、入力ポート0レベルデータ「_PT_IN0_OLD」(図11参照)を所定のレジスタ(例えばAレジスタ)に記憶する。
そしてステップS17では、入力ポート0レベルデータに基づいて、「指定スイッチ」がオンであるか否かを判断する。ここで「指定スイッチ」とは、入力ポート0のうち、ドアスイッチ15の信号(D2ビットのドアスイッチ信号)及び設定キースイッチ12の信号(D1ビットの設定キースイッチ信号)である。このような全ての指定スイッチがオン、すなわち、ドアスイッチ信号がオン(フロントドア2が開放)、かつ、設定キースイッチ信号がオン(設定キーが挿入されている)であるときに限り(ステップS17のYES)、設定変更が許可される。したがって、ステップS17において全ての指定スイッチがオンであるときは、設定変更処理(M_RANK_SET)に移行可能な状態であり、まずはステップS18に進む。一方、指定スイッチの何れか1つでもオンでない場合は(ステップS17のNO)、設定変更処理(M_RANK_SET)への移行が許可されず、ステップS20に進む。このように、複数のスイッチ信号からなる指定スイッチを同一の入力ポート(本例では入力ポート0)に割り当てることによって、指定スイッチがオンか否かを一遍に判断することが容易となる。
ステップS18では、メイン制御基板60は、電源断復帰異常であるか否かを判断し、異常と判断したときは(ステップS18のYES)、ステップS21に進み、異常ではないと判断したときは(ステップS18のNO)、ステップS19に進む。電源断復帰異常であるか否かは、ステップS15でレジスタに記憶した電源断復帰データの値によって判断することができ、異常値であれば電源断復帰異常であると判断し、正常値であれば電源断復帰異常ではない(電源断復帰正常)と判断する。
ステップS19では、設定変更不可であるか否かを判断し、不可と判断したときは(ステップS19のYES)、設定変更処理(M_RANK_SET)への移行が許されないためステップS20に進み、可と判断したときは(ステップS19のNO)、ステップS21に進み、設定変更処理(M_RANK_SET)を実行する。設定変更不可であるか否かは、設定変更不可フラグの値によって判断することができ、不可を示す値であれば設定変更不可と判断し、「不可」以外の値であれば設定変更可と判断する。
なお、設定変更不可フラグは、RWM63のアドレス「F01E」に記憶される遊技メダル管理フラグ「_FL_MEDAL_STS」の1つ(D6ビット)であって、図34を参照して後述するメイン処理(M_MAIN)において役抽選処理(ステップS41)から遊技終了チェック処理(ステップS49)までの間は、不可を示す値が設定される。設定変更処理(M_RANK_SET)の詳細は、図28に示される。
また、本実施形態では、設定変更不可フラグを設けている場合について説明しているが、常時設定変更が可能に構成されている場合には、設定変更不可フラグを設けなくてもよい。その場合、ステップS19に相当する処理は不要である。
ステップS20では、メイン制御基板60は、電源断復帰正常であるか否かを判断する。電源断復帰正常であるか否かは、ステップS18と同様に、ステップS15でレジスタに記憶した電源断復帰データの値によって判断することができ、正常値であれば電源断復帰正常と判断し、異常値であれば電源断復帰正常ではない(電源断復帰異常)と判断する。
メイン制御基板60は、ステップS20において電源断復帰正常と判断したときは(ステップS20のYES)、ステップS22に進み、電源復帰処理(M_POWER_ON)を実行する。電源復帰処理の詳細は、図31に示される。
また、メイン制御基板60は、ステップS20において電源断復帰異常と判断したときは(ステップS20のNO)、ステップS23に進み、復帰不可能エラー処理(SS_ERROR_STOP)を実行する。復帰不可能エラー処理の詳細は、図33に示される。なお、復帰不可能エラーは、設定変更処理が実行されない限り解除されないエラーを意味し、複数パターンのエラーが含まれる。例えば、ステップS20において電源断復帰データが正常値ではないと判断したときには、「E1」エラーの復帰不可能エラーであるとして所定のデジットにおいて「E1」エラーを示す情報が表示される。
[4−1−1.設定変更処理]
図28は、設定変更処理(M_RANK_SET)を示すフローチャートである。なお、当該処理は、メイン処理に含まれる処理と捉えてもよい。
図28によれば、まず、ステップS101において、メイン制御基板60は、RWM63の初期化範囲として、「所定範囲」をレジスタに記憶する。ステップS101の処理は、電源断処理が正常に実行されたと判断した場合に備えるためのセットであり、具体的には、設定値データ、遊技状態(例えばRT状態)、当選フラグ等を初期化しないように除外した初期化範囲を「所定範囲」とする。
次に、ステップS102では、メイン制御基板60は、図27のステップS15において記憶した電源断復帰データが正常値であるか否かを判断する。当該データが正常値であると判断したときは(ステップS102のYES)、ステップS104に進む。一方、当該データが正常値ではないと判断したときは(ステップS102のNO)、ステップS103に進む。
ステップS103では、メイン制御基板60は、RWM63の初期化範囲として「特定範囲」をレジスタに記憶する。ここで、「特定範囲」は、ステップS101の「所定範囲」とは異なる対象範囲である。具体的には、電源断が正常ではないと判断したときは、設定値データ、遊技状態、及び当選フラグ等についても初期化の対象に含むようにした初期化範囲を「特定範囲」とする。
次に、ステップS104に進み、メイン制御基板60は、ステップS101でセットした「所定範囲」またはステップS103でセットした「特定範囲」について、RWM63の初期化を開始する。次のステップS105では、ステップS104で開始した初期化が終了したか否かを判断する。初期化が終了していないと判断したときは(ステップS105のNO)、ステップS104に戻り、終了したと判断したときは(ステップS105のYES)、ステップS106に進む。
ステップS106では、割込み処理の起動設定として、割込み処理に対応する各種レジスタの設定を行う。具体的には、本実施形態では割込み処理としてタイマ割込み処理を使用するため、このタイマ割込みの周期(2.235ms)を設定する処理等に相当する。そしてステップS106の処理後に、割込み処理が実行される。換言すれば、ステップS106の「割込み起動」処理が行なわれる前は、割込み処理は実行されないように構成される。
次に、ステップS107では、設定変更開始時の出力要求セットを行う。この処理は、設定変更処理を開始することをサブ制御基板80に知らせるために、サブ制御基板80に送信する制御コマンドをレジスタにセット(記憶)する処理である。
なお、「出力要求セット」は、以降に説明する処理でもしばしば実行されるが、ステップS107における処理と同様に、サブ制御基板80に送信するための制御コマンドをセットする処理を意味する。また、ここでいう制御コマンドは、実際に送信するコマンドのみを意味するものではなく、実際に送信するコマンドの元になるコマンドも含まれる。
次に、ステップS108において、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行する。制御コマンドセット1については図29で詳述するが、制御コマンドバッファ(RWM63)に、サブ制御基板80に送信するための制御コマンドを記憶する処理である。なお、「制御コマンドセット1(R_CMD_SET)」は、以降に説明する処理においてもしばしば実行されるが、このステップS108と同様に、サブ制御基板80に送信するための制御コマンドを記憶する処理を意味する。本実施形態では、制御コマンドデータは、第1制御コマンドデータと第2制御コマンドデータとからなり、出力要求に応じて、異なる第1制御コマンドデータ及び第2制御コマンドデータが送信される。
次いでステップS109では、メイン制御基板60は、待ち時間(ウェイト時間)をセットし、次のステップS110において、ステップS109でセットした待ち時間の経過を待つウェイト処理を実行する。
本実施形態では、ステップS109において、待ち時間として割込み回数「224」がセットされ、ステップS110において、割込み回数が「224」をカウントするまで(割込み回数ごとに1減算し、セットされた割込み回数が「0」となるまで)ウェイト処理が実行される。1割込みの時間は前述したように2.235msであるから、224回の割込みを待つことによって、約500ms(2.235ms×224回=500.64ms)のウェイト処理が行なわれることになる。このウェイト時間は、サブ制御基板80によるRWM83の初期化が終了するために十分な時間が確保される時間である。また、以降の説明において「ウェイト処理」とは、所定の時間が経過するまで次の処理(ステップ)を実行しないように待機する処理を指す。但し、ウェイト処理中であっても、割込み処理(I_INTR)は実行される。
上記のように、ステップS110においてウェイト処理を実行する理由は、メイン制御基板60側におけるRWM63の初期化処理(ステップS114)が比較的短時間で終了するのに対し、サブ制御基板80側で同様に行われるRWM83の初期化処理(詳細は省略)は比較的長い時間がかかるので、メイン制御基板60側で時間調整をするためである。スロットマシン10において、サブ制御基板80からメイン制御基板60へのデータ入力は許可されないことから、メイン制御基板60側では、サブ制御基板80側で初期化処理が終了したか否かを知り得ず、したがって、メイン制御基板60側では、十分な時間調整のためにウェイト処理を実行している。
具体的な一例を挙げると、メイン制御基板60のRWM63のクリア範囲(設定変更に伴ってクリアされる範囲)は、例えばアドレス「F000(H)〜F1FF(H)」の512バイトであるのに対し、サブ制御基板80のRWM83のクリア範囲は、例えばアドレス「000000(H)〜800000(H)」の約12〜13ギガバイトである。このことから、メイン制御基板60側とサブ制御基板80側とでは初期化処理に要する時間が大きく異なる可能性があり、メイン制御基板60における制御処理の進行とサブ制御基板80による制御処理の進行とが同期しなくなることを防止するために、上記のウェイト処理を行うことが有効である。
なお、ステップS107,S108でセットした設定変更開始時の制御コマンドは、ステップS110のウェイト処理中であってもサブ制御基板80に送信される。但し、ステップS110でウェイト処理が実行されている間は、ステップS111以降の処理は開始されない(言い換えれば、メイン処理が進行しない)。このように構成することにより、サブ制御基板80では、メイン制御基板60の処理と同期したタイミングで、各種コマンドに基づいて演出の制御及び出力が可能となる。
ステップS110のウェイト処理の後は、ステップS111において、メイン制御基板60は、設定値が正常範囲であるか否かを判断する。本実施形態では、設定値は「1」〜「6」の何れかの整数であり、設定値に対応する設定値データ「_NB_BANK」がRWM63に記憶される。図11を参照して前述したように、設定値データ「_NB_BANK」の正常範囲は「0」〜「5」に相当する値である。ステップS111では、この設定値データ「_NB_BANK」の値が正常範囲であるか否かを判断し、正常範囲ではない(例えば「6」以上を示す値が記憶されている)と判断したときは(ステップS111のNO)、ステップS112を経てステップS113に進む。ステップS112では、設定値として「1」を記憶する(すなわち、設定値データ「_NB_BANK」に「0」を記憶する)。一方、ステップS111において設定値が正常範囲である(「0」〜「5」を示す値が記憶されている)と判断したときは(ステップS111のYES)、ステップS112の処理を行わずにステップS113に進む。
ステップS113では、メイン制御基板60は、設定変更中のLEDの表示制御(点灯)を行う。ステップS113の処理を行うことによって、当該処理以降に割込み処理が実行されたとき、設定変更中に表示するLED(設定値表示LED66及び獲得枚数表示LED47)の点灯が可能となる。本実施形態では、ステップS113において、設定値表示LED66に現在の設定値を表示するとともに、獲得枚数表示LED47に「−−」と表示するために、表示データの値を更新する処理を実行する。なお、上記の各値は、ステップS104において初期化されているので、更新前は「0」である。
次に、ステップS114において、メイン制御基板60は、設定変更/リセットスイッチ13の操作を検出したか否かを判断する。具体的には、入力ポート0の立ち上がりデータ「_PT_IN0_UP」を判断し、設定変更/リセットスイッチ信号が割り当てられたD0ビットが「1(ON)」であるか否かを判断する。D0ビットが「1」である場合は、設定変更/リセットスイッチ13の操作を検出したと判断し(ステップS114のYES)、ステップS115の処理を経てステップS116に進む。一方、D0ビットが「1」ではない場合は、設定変更/リセットスイッチ13の操作を検出していないと判断し(ステップS114のNO)、ステップS115の処理を行わずにステップS116に進む。
ステップS115では、設定値を更新する。具体的には、設定値に相当するデータ値を、RWM63の所定領域(「_NB_BANK」が記憶されるアドレス「F0000」)に記憶(更新)する。ステップS115の処理後に割込み処理が実行されることによって、設定値表示LED66には更新された設定値が表示される。
ステップS116では、メイン制御基板60は、スタートスイッチ34の操作を検出したか否かを判断する。具体的には、入力ポート1の立ち上がりデータ「_PT_IN1_UP」のD6ビット(スタートスイッチ信号)から判断する。本実施形態では、設定変更中にスタートスイッチ34が操作されたとき、当該時点における設定値を確定させる。したがって、ステップS116においてスタートスイッチ34が操作されていないと判断した場合は(ステップS116のNO)、ステップS114に戻り、スタートスイッチ34が操作されたと判断した場合は(ステップS116のYES)、ステップS117に進む。
なお、ステップS114でYESと判断してステップS115で設定値を更新した後に、ステップS116でNOと判断した場合には、再度、ステップS114に戻ることになる。このとき、入力ポート0の立ち上がりデータ「_PT_IN0_UP」のD0ビット(設定変更/リセットスイッチ信号)は、前述した通り、割込み処理で生成されることから、次の割込み処理が実行されるまで更新されない。換言すると、入力ポート0の立ち上がりデータ「_PT_IN0_UP」のD0ビット(設定変更/リセットスイッチ信号)は「1」が維持されるため、再度、ステップS114においてYESと判断されてしまい、意図しない設定値の更新がなされる(設定変更/リセットスイッチ信号を1回操作した場合に、設定値の更新が複数回なされる)おそれがある。
そのため、少なくとも、ステップS114でYESと判断したときには、所定期間のウェイト処理(本実施形態では、1回の割込み処理が実行されるまで待機する処理)を実行することにより、入力ポート0の立ち上がりデータ「_PT_IN0_UP」のD0ビット(設定変更/リセットスイッチ信号)が「0」にするようにし、設定変更/リセットスイッチ信号を1回操作した場合に、再度、ステップS114でYESと判断されてしまうことを防止する。このとき、後述する図15や図59の1バイトタイマ記憶領域に、ウェイト処理を実行するための割込み回数(本実施形態では、「1」)を記憶する記憶領域を有するようにしてもよい。
なお、設定変更/リセットスイッチ信号を1回操作した場合に、設定値の更新が複数回なされることを防止する方法は、上述した内容に限るものではなく、他にも例えば、一度、ステップS114でYESと判断した場合には、入力ポート0の立ち上がりデータ「_PT_IN0_UP」のD0ビットを強制的に「0」にする、といった方法を採用することも可能である。
ステップS117では、メイン制御基板60は、設定キースイッチ12がオフにされたか否かを判断する。具体的には、入力ポート0の立ち上がりデータ「_PT_IN0_UP」のD1ビット(設定キースイッチ信号)から判断する。ステップS117において設定キースイッチ12がオフにされていないと判断した場合は(ステップS117のNO)、オフにされたと判断するまでステップS117の処理を繰り返し、設定キースイッチ12がオフにされたと判断した場合は(ステップS117のYES)、ステップS118に進む。
ステップS118では、メイン制御基板60は、設定変更終了後のLED表示制御(消灯)を行う。具体的には、第1に、設定値表示LED66を消灯するためのデータをセットする。第2に、貯留枚数表示LED45及び獲得枚数表示LED47を点灯可能にするためのデータをセットする。また第3に、獲得枚数表示LED47に「00」と表示するために獲得枚数表示データの値を変更する処理を実行する。ステップS118の処理を行うことによって、当該処理以降に割込み処理が実行されたとき、設定値表示LED66が消灯し、貯留枚数表示LED45及び獲得枚数表示LED47の点灯が可能となる。
次に、ステップS119では、メイン制御基板60は、ステップS107と同様に、設定変更終了時の出力要求セットを行う。ステップS119の出力要求セットでは、設定変更処理を終了すること、及び、決定された設定値をサブ制御基板80に知らせる制御コマンドをセットする。次いで、ステップS120では、ステップS108と同様に、制御コマンドセット1を実行する。
そして、ステップS120の処理が終了した後は、メイン処理(M_MAIN)の実行に移行する。メイン処理の詳細は、図34に示される。
図29は、制御コマンドセット1(R_CMD_SET)を示すフローチャートである。
図29によれば、まず、ステップS121において、割込み禁止処理を実行する。そして、ステップS122では、制御コマンドセット2(SS_CMD_SET)を実行する。制御コマンドセット2では制御コマンドの書込みが行われ、その詳細は、図30に示される。
なお、RWM63には、サブ制御基板80に送信するための制御コマンドデータが記憶される制御コマンドバッファの記憶領域(不図示)が設定されている。本実施形態では、制御コマンドデータは32コマンド(64バイト)まで記憶可能とする。
次いで、ステップS123では、ステップS121で禁止した割込み処理を解除することによって、割込み処理の実行を許可する。すなわち、制御コマンドセット1では、制御コマンドの書込みが行われる制御コマンドセット2の実行中は割込み処理が禁止されるため、制御コマンドの書込み処理中に割込み処理が実行されることによる誤作動(正常の書込みアドレスとは異なるアドレスに書込みが行われてしまうこと等)を防止することができる。
なお、本実施形態では、割込み処理の禁止/許可(解除)を記憶するための割込みフラグ(不図示)が設けられている。割込みフラグは、ステップS121で割込み禁止をした後、次の割込み処理を実行するタイミング(割込み処理を禁止したときから2.235ms以内)が到来したときに、メインCPU65によってオンにされる。その後、メインCPU65は、割込み処理の禁止を解除するときは、割込みフラグをクリアする(オフにする)。このように、メイン制御基板60は、割込み処理を実行するタイミングが到来したときに、割込みフラグのオン/オフを判断することによって、割込み処理の禁止/許可(解除)を判断する。
図30は、制御コマンドセット2(SS_CMD_SET)を示すフローチャートである。
図30によれば、まず、ステップS131において、メイン制御基板60は、制御コマンドバッファの先頭アドレスをセットすることによって、制御コマンドバッファのアドレスをセットする。
ステップS132では、書込みポインタの取得を行う。書込みポインタとは、制御コマンドのデータをRWM63のどのアドレスに書込むかを指定するためのものであり、ステップS132では、現時点での書込みポインタが記憶されているので、その書込みポインタを読込む処理を行う。
次に、ステップS133では、指定アドレスを取得する。具体的には、制御コマンドバッファの先頭アドレスと、書込みポインタの現在位置を示すデータとから、RWM63の書込先アドレス(指定アドレス)を求める処理である。
次に、ステップS134では、指定アドレスのデータを取得する。具体的には、ステップS133で求めた指定アドレスに基づいて、当該指定アドレスが示すRWM63の記憶領域に保存されているデータを読込む処理である。
そして、ステップS135では、指定アドレスのデータが「0」であるか否かを判断する(制御コマンド<32?)。指定アドレスのデータが「0」ではないときは、指定アドレスに既にデータが存在することを意味し、換言すると、送信前のコマンドが32コマンドセットされている状態を意味する。この場合は(ステップS135のNO)、制御コマンドセット2の処理を終了する。その結果、データの書込み処理は実行されず、指定アドレスのデータの上書きが防止される。一方、指定アドレスのデータが「0」であるとき、すなわち指定アドレスにデータが存在しないときは(ステップS135のYES)、ステップS136に進む。
ステップS136では、制御コマンドバッファに書込むデータが、RWM63に記憶されているデータを参照する必要があるデータであるか否かを判断する(RWM指定?)。例えば、リプレイ入賞時の自動ベット時の遊技メダルの投入枚数は、前回遊技におけるベット数や今回遊技における遊技状態に依存するために、「RWM指定」に該当する。RWM指定に該当するか否かを判断する詳細な説明は省略するが、具体的には例えば、Dレジスタに記憶されている値のD7ビットが「0」であるか否かによって判断することができる。ステップS136においてRWM指定であると判断された場合は(ステップS136のYES)、ステップS137の処理を経てステップS138に進み、RWM指定ではないと判断された場合は(ステップS136のNO)、ステップS137の処理を行わずにステップS138に進む。
ステップS137では、第2制御コマンドを示すデータを所定のレジスタ(例えばEレジスタ)に記憶する。具体的には、第2制御コマンドとして書込むデータをRWM63から読込んで、所定のレジスタ(Eレジスタ)に記憶する。
そしてステップS138では、第1制御コマンドを示すデータをRWM63に記憶する。これは、ステップS133において取得した「指定アドレス」に、第1制御コマンドを記憶する処理であって、具体的には、制御コマンドセット2の実行前に記憶したDレジスタの値を記憶する処理である(RWM指定の場合は、Dレジスタの値に「80(H)」を加算した値を記憶している)。
次に、ステップS139では、第2制御コマンドを示すデータをRWM63に記憶する。より詳しくは、ステップS139では、ステップS138で記憶した第1制御コマンドの記憶先の次のアドレスに、第2制御コマンドを記憶する。
その後は、ステップS140において、書込みポインタの値を「+1」更新する処理を行う。なお、上述してきたように、制御コマンドセット2では、第1制御コマンド及び第2制御コマンドを示すデータを2箇所のRWM63の記憶領域に書込むが、ステップS133における指定アドレス取得の際に、書込みポインタのデータを2倍にして演算しておくことにより、書込みポインタの値としては「1」だけをインクリメントすればよい。
以上に説明したように、本実施形態では、設定変更開始時の出力要求セット(図28のステップS107)及び制御コマンドセット1(図28のステップS108)を実行することにより、設定変更開始時の制御コマンドデータが所定アドレスの制御コマンドバッファに書込まれる。そして、これらの制御コマンドデータは、後述する割込み処理によって、サブ制御基板80に送信される。なお、以降の説明で挙げられる他の「出力要求セット」及び「制御コマンドセット1」においても同様に、割込み処理によって、制御コマンドバッファに書込まれた制御コマンドデータがサブ制御基板80に送信される。
[4−1−2.電源断復帰処理]
図31は、電源復帰処理(M_POWER_ON)を示すフローチャートである。なお、当該処理は、メイン処理に含まれる処理と捉えてもよい。
図31によれば、ステップS141において、メイン制御基板60は、スタックポインタを復帰させる。ここで、スタックポインタを復帰させるとは、電源断が生じた場合に実行される電源断処理によってRWM63に退避していたスタックポインタのデータ(アドレス)を、スタックポインタ(SPレジスタ)に記憶することを指す。なお、電源断発生時のデータ(例えば、レジスタ値、割込み処理前のメイン処理の命令処理等)を保存するRWM63の領域をスタック領域と称し、スタックポインタは、スタック領域にデータを退避するためのアドレスを指定するためのデータを記憶する記憶領域(SPレジスタ)やデータそのものを指す場合がある。
次に、ステップS142では、設定値を読み込み、設定値の範囲が正常範囲であるか否か(設定値データ「_NB_BANK」の値が正常範囲であるか否か)を判断する。ステップS142において設定値が正常範囲であると判断したときは(ステップS142のYES)、ステップS143に進む。ステップS142において設定値が正常範囲でないと判断したときは(ステップS142のNO)、ステップS152に進み、「E6」エラーによる復帰不可能エラー処理(SS_ERROR_STOP)を実行する。復帰不可能エラー処理の詳細は図33に示されるが、このとき、獲得枚数表示LED47には「E6」エラーである旨が表示される。
ステップS143では、RWM63の未使用領域の初期化範囲をレジスタにセットする。そして次のステップS144において、ステップS143でセットしたRWM63の初期化範囲に対して初期化を実行する。ここで、未使用領域であってもノイズ等によりRWM63に値が記憶されてしまうことが考えられる。万が一、未使用領域に値が記憶されると、不正等のゴトにつながる可能性があるため、未使用領域は電源の投入時に(通常であれば1日に1回)初期化するようにしている。
次に、ステップS145では、ステップS144によるRWM63の初期化が終了したか否かを判断する。RWM63の初期化が終了していないと判断したときは(ステップS144のNO)、ステップS144に戻る。そして、RWM63の初期化が終了したと判断したときは(ステップS144のYES)、ステップS146に進む。
ステップS146では、入力ポート0〜2のデータをセットし、次のステップS147では、入力ポート0〜2読込み(SS_IN_READ)を実行して入力ポート0〜2の読込みを行う。入力ポート0〜2読込みの詳細は、図32に示される。ステップS146〜S147の処理が行われることにより、電源断前の入力ポート61(入力ポート0〜2)の各データ(レベルデータ、立ち上がりデータ、立ち下がりデータ)が最新のデータに更新される。
次に、ステップS148では、電源投入時の特定情報データをセットする。具体的には、RWM63に記憶されている特定情報フラグ(不図示)の電源断復帰時送信ビットを「1」にする処理に相当する。そして、ステップS149では、電源断復帰時外部信号4出力時間のセットを行う。詳細な説明は省略するが、電源断復帰時外部信号4出力時間は、RWM63に記憶されるタイマであって、ステップS149において所定値(例えば「136」)がセットされ、その後、1割込みごとにタイマ値が減算されていく。
次いで、ステップS150では、割込みを起動させる。この処理は、例えばタイマ割込みの周期を設定する等の処理であり、設定変更処理(M_RANK_SET)における割込み起動(図28のステップS106)と同様である。
その後、ステップS151では、電源断処理済フラグをクリアして(すなわち、値を「0」にして)、電源復帰処理(M_POWER_ON)を終了し、電源断が発生した処理に戻って処理を再開する。
なお、上記の電源復帰処理では、ステップS147で入力ポート0〜2の読込みを実行した後に、ステップS150で割込み処理を起動させているが、これは、入力ポート0〜2のデータが電源断前後で異なる状態となってしまうことを回避するためであり、このような処理を行うことによって、電源断復帰時には、入力ポート0〜2のRWM63の値を最新の状態に更新することができる。
図32は、入力ポート0〜2読込み(SS_IN_READ)を示すフローチャートである。
図32によればまず、ステップS161において、メイン制御基板60は、前回の入力ポート0のレベルデータをセットする。具体的には、RWM63に記憶されている入力ポート0レベルデータ「_PT_IN0_OLD」のアドレス「F008」をHLレジスタに記憶する(HL=F008)。そして、HLレジスタが示すアドレスのデータを、Bレジスタに記憶する。
ステップS162では、今回の入力ポート0のレベルデータの入力を行う。具体的には、入力ポート0に入力されているデータをAレジスタに記憶する。
次に、ステップS163では、今回の入力データを正論理に変化する。より具体的には、Aレジスタに記憶されているデータと、入力ポート0の負論理ビット(11000011)とのXOR演算によりデータを正論理に変化し、その変換後の値をAレジスタに記憶する。
次のステップS164では、入力ポート0レベルデータをセットする。より具体的には、ステップS163での演算結果であるAレジスタ値と、「11100011」とのAND演算を行い、その演算結果をAレジスタに記憶し、このAレジスタ値を入力ポート0レベルデータ「_PT_IN0_OLD」に記憶する。すなわち、ステップS164の処理により、入力ポート0レベルデータの値が更新される。また、「11100011」とのAND演算を実行するのは、未使用ビットであるD4ビット〜D6ビットを確実に「0」にするためである。
次に、ステップS165では、ステップS164でセットした入力ポート0レベルデータに基づいて、ドアスイッチ信号(D2ビット)を読込む。そしてステップS166では、ドアスイッチ信号がオン(「1」)であるか否かを判断する。ドアスイッチ信号がオンである場合には(ステップS166のYES)、ステップS168に進み、ドアスイッチ信号がオフである場合には(ステップS166のNO)、ステップS167を経てステップS168に進む。
ステップS167では、設定キースイッチ信号(D1ビット)及び設定変更/リセットスイッチ信号(D0ビット)をクリアする(「0」にする)。
そして、ステップS168では、今回と前回の変化ビットデータを生成する。具体的には、今回の入力ポート0レベルデータ(Aレジスタ値)と、前回の入力ポート0レベルデータ(Bレジスタ値)とをXOR演算し、その演算結果をAレジスタに記憶する。
次に、ステップS169において、メイン制御基板60は、入力ポート0の立ち上がりデータを生成する。具体的には、ステップS169では、以下の2つの処理が順に行われる。
第1に、ステップS168で生成した変化ビットデータ(Aレジスタ値)と、ステップS164でセットした入力ポート0レベルデータ「_PT_IN0_OLD」に記憶されている値とをAND演算し、その演算結果をAレジスタに記憶する。第2に、Lレジスタの値を「1」加算する。この結果、「HL=F009」となる。
そして、ステップS170では、ステップS169で生成した入力ポート0の立ち上がりデータをセットする。より具体的には、ステップS169の第1の処理でAレジスタに記憶した値を、HLレジスタが示すアドレス(すなわち「F009」)に記憶する。ここで、図11に示したように、アドレス「F009」は、入力ポート0立ち上がりデータ「_PT_IN0_UP」の格納アドレスであるから、ステップS169〜S170の処理によって、入力ポート0の立ち上がりデータが、入力ポート0立ち上がりデータ「_PT_IN0_UP」に記憶される。
このように、ステップS170までの処理が行われることにより、入力ポート0について、レベルデータ及び立ち上がりデータの読込みが行われる。
次に、ステップS171では、次の入力ポートのレベルデータが記憶されているRWM63のアドレスをセットする。具体的には、Lレジスタの値を「1」加算する。この結果、「HL=F00A」となる。このアドレス「F00A」は、図12に示したように、入力ポート1レベルデータ「_PT_IN1_OLD」の格納アドレスである。
そして、ステップS172〜S175では、入力ポート0についてステップS161〜S164で行ったのと同様の処理を、入力ポート1について行うことによって、入力ポート1レベルデータ「_PT_IN1_OLD」をセットする。繰り返しになるため、各処理の説明は省略する。
そしてステップS176〜S178では、入力ポート0についてステップS168〜S170で行ったのと同様の処理を、入力ポート1について行うことによって、入力ポート1立ち上がりデータ「_PT_IN1_UP」をセットする。繰り返しになるため、各処理の説明は省略する。
このように、ステップS172〜S178の処理が行われることにより、入力ポート1について、レベルデータ及び立ち上がりデータの読込みが行われる。
さらに、ステップS179では、ステップS171と同様に、次の入力ポートのレベルデータが記憶されているRWM63のアドレスをセットする。具体的には、Lレジスタの値を「1」加算する。この結果、「HL=F00C」となる。このアドレス「F00C」は、図12に示したように、入力ポート2レベルデータ「_PT_IN2_OLD」の格納アドレスである。
ステップS179によって、HLレジスタには入力ポート2レベルデータの格納アドレスがセットされたので、以後のステップS180〜S185では、入力ポート1について行ったステップS172〜S178と同様の処理が入力ポート2について行われる。その結果、入力ポート2のレベルデータ及び立ち上がりデータの読込みが行われる。
そして、ステップS185の処理が行われると、入力ポート0〜2読込み(SS_IN_READ)の処理は終了する。
[4−1−3.復帰不可能エラー処理]
図33は、復帰不可能エラー処理(SS_ERROR_STOP)を示すフローチャートである。
まず、本実施形態では、一例として以下の場合に復帰不可能エラーと判断する。但し、復帰不可能エラーはこれらに限定されるものではない。
E1エラー:プログラム開始(M_PRG_START)において電源断からの復帰が正常でないと判断されたとき(図27のステップS23)。
E5エラー:メイン処理(M_MAIN)において表示エラーが発生したと判断されたとき(図34のステップS52)。
E6エラー:電源復帰処理(M_POWER_ON)において設定値が正常範囲ではないと判断されたとき(図31のステップS152)。
E7エラー:割込み処理(I_INTR)において乱数エラーが発生したと判断されたとき(図55のステップS79)。
なお、上述した復帰不可能エラーが発生した場合には、設定変更(電源をオフにし、電源をオフにした状況下で設定キースイッチ12をONにし、その状況下で電源をオンにした後、スタートスイッチ34をONし、その後、設定キースイッチ12をOFFにする)することにより、メイン処理(M_MAIN)を実行可能とし、このような操作によって復帰不可能エラーが解除可能となる。
図33によれば、ステップS191において、メイン制御基板60は、割込み処理を禁止する。この処理は、図29のステップS121と同様であり、割込み要求信号(INT信号)が入力されても割込みが発生しないように制御する。割込み処理を禁止することにより、割込み処理によってRWM63に記憶された各種データの更新、入力/出力等が実行されないようにするとともに、誤った情報をサブ制御基板80に送信したり、外部端子板100を介してホールコンピュータ200に送信したりすることを防止している。
ステップS192では、全ての出力ポート62(例えば、出力ポート0〜6)を順次オフにする。具体的には、出力ポート0〜6を示す各アドレスから、1つの出力ポートずつ、全「0」(「00000000B」)を出力する。ステップS193では、次の出力ポートアドレスをセットする。すなわち、出力ポートを示すアドレスを「+1」加算する。
次に、ステップS194では、全出力ポートが終了したか否か、すなわち、出力ポート6まで終了したか否かを判断し、終了していないと判断したときは(ステップS194のNO)、ステップS192に戻り、終了したと判断したときは(ステップS194のYES)、ステップS195に進む。
上記のように、ステップS194までの処理によって全ての出力ポート62(出力ポート0〜6)をオフにすることで、当該処理が実行される前に出力されていたアクティブ信号がオフにされる。これにより、LEDの焼き付きやモータ40の焼き付き、遊技メダルの飲み込みを防ぐことができる。
例えば、ブロッカ信号を出力している状況(ブロッカ信号がON)において電源断が起こった場合、当該処理を実行しないとブロッカ29がON状態(許可位置)のままとなることで、遊技メダルの検知処理が発生しないにも拘わらず、許可状態の遊技メダル通路が形成している状態が続いてしまうため、遊技メダルの飲み込みが発生してしまう。
また例えば、モータ40がφ1を出力している状況(リールモータのφ1信号がON)において電源断が起こった場合、当該処理を実行しないとリセット信号が入力されるまでφ1を出力し続けることとなる。本来であればリセット信号が入力されるまでの時間は短いが、瞬間的に電源電圧が低下したことにより電源断処理が実行され、その後通常の電源電圧が供給されてしまうと、リセット信号が入力されることなくリセット待ちを繰り返すことになる。このため、φ1が出力され続ける状況も起こり得る。
ステップS195では、エラー表示データとして、下位桁をセットする。次にステップS196では、エラー表示データとして、上位桁をセットする。
そして、ステップS197では、LEDをオフにする。この処理は、出力ポート0を示すアドレスに「00000000B」を出力する処理である。したがって、ステップS197の時点では、全LEDの出力が「0」(消灯)となる。これにより、LEDのちらつきを防止することができる。
次いで、ステップS198では、出力ポート1を示すアドレスに所定値を出力する処理を行う(エラー表示出力)。これは、エラー表示内容として、「E1」、「E5」、「E6」、「E7」等が表示されるようにする処理である。
次にステップS199では、LEDをオンにする。この処理は、出力ポート0を示すアドレスに所定値を出力する処理である。そしてステップS200では、表示ウェイトが終了したか否かを判断する。具体的には、表示ウェイトは、Bレジスタの値を「−1」減算し、Bレジスタの値が「0」となったか否かを判断する処理である。
ここで、本実施形態では、ステップS198の処理開始時に、Bレジスタ値として「255」を設定する。そして、減算処理は、Bレジスタ値が「0」になるまで行う。本実施形態では、内部システムクロックが16MHzであり、おおよそ0.128ms(「1/内部システムクロック(16MHz)」×256×8(命令)+α(その他命令)≒0.128ms)で、Bレジスタのレジスタ値が「255」から「0」になるように設定される。
ステップS200において表示ウェイトが終了していないと判断したときは(ステップS200のNO)、表示ウェイトの終了が判断されるまで(Bレジスタ値が「0」になるまで)ステップS200の処理を繰り返す。そして、ステップS200において表示ウェイトが終了したと判断したときは(ステップS200のYES)、ステップS201に進み、上位桁と下位桁との切替えを実行する。その後、ステップS197に戻る。
ステップS201で上位桁と下位桁とを切り替えてからステップS197に戻ることにより、同一のプログラム処理によって下位桁の表示から上位桁の表示に切り替えることができる。また、上位桁/下位桁の切替え周期は、約0.128msとなる。したがって、上位桁を0.128msの間点灯させたら、次に下位桁を0.128msの間点灯させる処理を繰り返す。
上記ステップS197〜ステップS201の処理により、たとえば「E1」エラーを獲得枚数表示LED47で表示する場合、獲得枚数表示LED47の上位桁に「E」を約0.128msの間表示した後(この間は、獲得枚数表示LED47の下位桁は消灯)、次に、獲得枚数表示LED47の下位桁に「1」を約0.128msの間表示する(この間は獲得枚数表示LED47の上位桁は消灯)。
また、上位桁/下位桁の切替え周期は、タイマ割込み周期(2.235ms)よりも早くなり、エラー表示時の輝度が高くなる。換言すれば、LEDを用いてエラー表示を行う場合に、復帰不可能エラーの方が通常エラーよりも輝度が高いので、サブ制御基板80側の機器(演出ランプ19、スピーカ20、画像表示装置21)を用いたエラー報知を行わなくても(行えなくても)、ホール店員が気づきやすくなる。
以上のように復帰不可能エラー処理が行われることによって、タイマ割込み処理が実行されない(実行したくない)期間においてエラーが発生した場合であっても、レジスタを用いた演算処理、及びハード構成により適切にLEDを用いてエラーの表示を実行することができる。
なお、本実施形態では、上記のように表示ウェイト処理(ステップS200)を設けたが、表示ウェイト処理を設けなくても、復帰不可能エラー処理を実施可能である。この場合、ソフトウェア上で上位桁と下位桁とを高速で切り替えるので、ステップS197〜S201の処理時間は、実質上、ほぼ「0」となり、上位桁の表示と下位桁の表示の切替は、プログラムの処理速度や、LEDの応答速度に依存することとなる。そして、上記のように、約0.1ms程度のウェイト時間を設ければ、そのウェイト時間中は、一方のLEDが点灯し続けるので、LEDの一定の明るさ(光束)を確保できる。一方、近時の高性能のLEDを採用すれば、点灯時間が一瞬(ステップS199のみ)であっても目視に十分な明るさを確保することができる。
[4−2.メイン処理]
図34は、メイン処理(M_MAIN)を示すフローチャートである。また、図35〜図54は、メイン処理中のサブルーチンを示す処理である。さらに、前述したようにメイン処理中には、所定周期(2.235ms)ごとに割込み処理(I_INTR)が実行される。
図34によると、まず、ステップS31において、メイン制御基板60は、スタックポインタをセットする。ここでは、スタックポインタ(SPレジスタ)にF200(H)を記憶する処理である。
次に、ステップS32では、遊技開始セット(MS_GAME_SET)を実行する。遊技開始セットの詳細は、図35に示されるが、遊技開始セットの実行に続いて、メダル受付け開始(MS_MEDAL_START)を実行した後、ステップS33に進む。メダル受付け開始の詳細は、図37に示される。
ステップS33では、遊技メダル読込み(R_PLYMDL_READ)を実行する。この処理は、現時点においてベットされている遊技メダルの枚数(ベット数)が何枚であるかを読み込む処理であり、貯留枚数の読み込みとは異なる。遊技メダル読込みの詳細は、図36に示される。
次のステップS34では、ステップS33で読込んだベット数に基づいて、ベットメダルの有無を判断する。ベットメダルの有無は、遊技メダル読込みの処理においてセットされる「ゼロフラグ」の値によって判断することができる。
ここで、「ゼロフラグ」とは、演算した結果が「0」であるか否かを判断するためのフラグであって、MPUに設けられたフラグレジスタ(例えばFレジスタ)の特定ビットを指す。当該特定ビットが「0」(すなわち、ゼロフラグが「0」)の場合は、演算結果が「0」でないことを示し、当該特定ビットが「1」(すなわち、ゼロフラグが「1」)の場合は、演算結果が「0」であることを示す。
ここで、図36を参照しながら後述するように、遊技メダル読込みでは、遊技メダル枚数データ「_NB_PLAY_MEDAL」から読込んだ値(ベット数)を所定のレジスタ(例えばAレジスタ)に記憶し、Aレジスタのレジスタ値が「0」を示す値であれば(すなわち、ベットメダルが存在しない場合)、ゼロフラグを「1」にする。一方、Aレジスタのレジスタ値が「0」以外を示す値であれば(すなわち、ベットメダルが存在する場合)、ゼロフラグを「0」にする。したがって、ステップS34では、ゼロフラグが「0」または「1」の何れであるかによって、ベットメダルの有無を判断することができる。
ステップS34においてベットメダル有り(ゼロフラグ=「0」)と判断したときは(ステップS34のYES)、ステップS36に進む。ステップS34においてベットメダルなし(ゼロフラグ=「1」)と判断したときは(ステップS34のNO)、ステップS35に進んでメダル投入待ち(MS_STANDBY_DSP)を実行した後、ステップS36に進む。メダル投入待ちの詳細は、図41に示される。
ステップS36では、メイン制御基板60は、メダル管理(MS_MEDAL_CHK)を実行する。メダル管理は、投入された遊技メダルを管理するための処理であり、その詳細は図43に示される。
次のステップS37では、メイン制御基板60は、ソフト乱数の更新処理を行う。この処理は、役抽選手段69で使用する乱数(ハード乱数、または内蔵乱数)に、加工(演算処理)するための加工用乱数を更新(例えば「1」ずつ加算)する処理である。ソフト乱数は、例えば「0」〜「65535」の範囲を有する16ビット乱数である。なお、更新方法として、更新前の値に、割込みカウント値(割込み時にインクリメントされるカウント値(変数))を加算する処理を実行してもよい。
次のステップS38では、メイン制御基板60は、スタートスイッチチェック(M_START_CHK)を実行し、スタートスイッチ34の受付許可フラグのセット/クリアを行う。スタートスイッチチェックの詳細は、図52に示される。
次のステップS39では、メイン制御基板60は、スタートスイッチ34が操作されたか否かを判断する。スタートスイッチ34が操作されたと判断したときは(ステップS39のYES)、ステップS40に進み、スタートスイッチ34が操作されていないと判断したときは(ステップS39のNO)、ステップS33に戻る。なお、ステップS39においてスタートスイッチ34が操作されたと判断される場合は、ステップS38においてスタートスイッチ受付許可フラグがセットされている(遊技メダル管理フラグ「_FL_MEDAL_STS」のD0ビット(スタートスイッチ受付状態)が「1(許可)」となっている)ことが前提となる。
そして、ステップS40では、メイン制御基板60は、スタートスイッチ受付け(M_START_CTL)を実行する。スタートスイッチ受付けの詳細は、図53に示される。
次のステップS41では、メイン制御基板60(役抽選手段69)が、スタートスイッチ34が操作されたタイミングで、すなわちスタートスイッチ34の操作信号の受信時に、役の抽選を実行する。なお、役抽選時の乱数値は、ステップS40で実行されるスタートスイッチ受付けにおいて取得されている(図53のステップS491参照)。そしてステップS41において、メイン制御基板60(役抽選手段69)は、取得した乱数値が何れかの当選役に該当する乱数値であるか否かを、役抽選テーブルを用いて判定する。
次に、ステップS42では、メイン制御基板60(リール制御手段70)が、リール39の回転を開始する。
そしてステップS43では、リール39の停止受付けをチェックする。具体的には、ストップスイッチ35の操作信号を受信したか否かを検知し、操作信号を受信したときは、役の抽選結果とリール39の位置とに基づいてリール39の停止位置を決定し、決定した停止位置にリール39を停止させるように制御する。
次に、ステップS44では、メイン制御基板60(リール制御手段70)は、全てのリール39が停止したか否かをチェックし、ステップS45において全リール39の停止判断を行う。ステップS45において全リール39が停止したと判断したときは(ステップS45のYES)、ステップS46に進み、少なくとも何れかのリール39が停止していないと判断したときは(ステップS45のNO)、ステップS43に戻る。
ステップS46では、メイン制御基板60(表示判定手段71)が、図柄の表示判定を行う。具体的には、表示判定手段71は、有効ラインに、役に対応する図柄の組合せが停止したか否かを判断し、停止した図柄の組合せに応じて、図柄組合せフラグ(不図示)を更新する。
また、ステップS46では、遊技メダル払出し枚数データ「_NB_PAY_MEDAL」(不図示)の値も更新する。例えば1枚役が入賞し、それまでの遊技メダル払出し枚数データが「0」であるときには、データ値を「0」から「1」に更新する。
次に、ステップS47では、メイン制御基板60は、図柄の表示エラーが発生したか否かを判断する。具体的には、有効ライン上に、本来表示されてはいけない図柄(蹴飛ばし図柄)が表示されたときに、図柄の表示エラー(図柄組合せ異常エラー)が発生したと判定される。図柄の表示エラーが発生したと判断したときは(ステップS47のYES)、ステップS52に進んで、「E5」エラーによる復帰不可能エラー処理(SS_ERROR_STOP)を実行する。一方、図柄の表示エラーが発生していないと判断したときは(ステップS47のNO)、ステップS48に進む。
なお、「復帰不可能エラー」の発生時に、それを解除するためには、電源のオン/オフと、設定値の再設定とが必要となる。例えば、復帰不可能エラーが発生したときには、電源をオフにし、設定キーを差し込んで90度時計回りに回転させ(設定キースイッチ12をONにし)、電源をオンにする。これにより、RWM63の所定範囲(設定値情報、RT情報、当選役情報)がクリアされる。そして、設定値を再設定し、他のエラーがなければ、復帰処理が行われる。
一方、後述する満杯エラー等の「復帰可能エラー」の発生時は、エラー内容を表示して処理を停止するが、電源のオン/オフや設定値の再設定を必要としない。例えば、ホール店員がエラー解除操作を実行し(エラー要因を除去し)、設定変更/リセットスイッチ13を操作すると、エラーが解除されたか否かを判断して、エラーが解除されたと判断したときは、停止していた処理が再開される。
ステップS48では、メイン制御基板60(払出手段72)が、入賞によるメダル払出し(MS_WIN_PAY)を実行し、入賞役に対応する遊技メダルの払出しを行う。入賞によるメダル払出しの詳細は、図54に示される。
その後、ステップS49では、メイン制御基板60は、遊技終了チェック処理(M_GAME_CHK)を実行する。詳細な説明は省略するが、遊技終了チェック処理によって、条件装置フラグやリプレイ作動状態フラグのクリア、リプレイ表示LED(状態表示LED48a)の消灯、あるいは、ボーナス作動管理等が行われる。また、遊技終了チェック処理では、満杯センサによる満杯検知信号を判断し、当該信号がオンである場合に、満杯エラー(「FE」エラー)を表示する等の処理も行われてよい。ステップS49の処理が終了すると、ステップS50に進む。
ステップS50では、メイン制御基板60は、遊技終了時の出力要求をセットする。この処理は、1遊技が終了した旨をサブ制御基板80に送信するための制御コマンドデータをセットする処理である。
そして、次のステップS51では、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行することによって、RWM63の制御コマンドバッファに、サブ制御基板80に送信する制御コマンドデータを記憶する。
ステップS51の処理が終了すると、1遊技のメイン処理が終了するので、メイン制御基板60は、ステップS30に戻り、次回遊技のメイン処理を行う。以上が、メイン処理の主な処理手順(メインルーチン)である。
以下では、メイン処理中のサブルーチンについて、図35〜図54を参照しながら説明する。
[4−2−1.遊技開始セット]
図35は、遊技開始セット(MS_GAME_SET)を示すフローチャートである。「遊技開始セット」は、図34に示したメイン処理中のステップS32で実行されるサブルーチンである。
図35によれば、まず、ステップS211において、メイン制御基板60は、遊技待機表示時間をセットする。本実施形態では、遊技待機表示時間として、「26846」割込み(≒60000ms、すなわち約60秒)をセットする。
ステップS211で遊技待機表示時間がセットされると、この時点から割込み回数がカウント(減算)される。そして遊技待機表示時間が「0」になると、メダル投入待ち(MS_STANDBY_DSP)において(図34のステップS35、図41参照)、遊技メダル払出し枚数データがクリアされる(「_NB_PAY_MEDAL」のデータが「0」にされる)。この結果、獲得枚数表示LED47に「00」が表示される。例えば、前回遊技で払出されたメダル枚数が「9」枚であり、かつ、遊技者が精算スイッチ36の操作により精算し、遊技を終了したとしても、遊技待機表示時間が経過した約1分後には「00」(または「*0」や「**」等でもよい(「*」は、消灯を意味する))が表示される。これにより、ホールの店員や別の遊技者が空き台として認識できることにより空き台を減少させることができるという効果を有する。
ステップS211の処理後は、ステップS212の処理が行われる。ここで、ステップS212〜S217の処理は、遊技の開始前に前回遊技の結果に基づいて、リプレイ作動時や1種BB遊技であるときにはその状態をセットする処理である。
まず、ステップS212において、メイン制御基板60は、図柄組合せ表示フラグ(図柄フラグ)(不図示)のデータを取得する。具体的には、前回遊技におけるリール39の停止後における有効ライン上の図柄の組合せ、すなわち入賞役に関するデータを、RWM63に記憶された図柄組合せ表示フラグからレジスタに記憶する。
次のステップS213では、作動状態フラグ「_FL_ACTION」を生成する。そして、ステップS214では、作動状態フラグの更新及び保存を行う。例えばリプレイの入賞時には、ステップS213において、ステップS212で記憶したデータに基づいてリプレイに係る作動状態フラグを生成する。そしてステップS214において、作動状態フラグ「_FL_ACTION」のD0ビットを「1(作動)」にし、その作動状態フラグを保存(記憶)する。
次のステップS215では、ステップS212で取得した図柄フラグのデータに基づいて、リプレイの図柄の組合せが表示されたか(リプレイが入賞したか)否かを判断する。リプレイの図柄の組合せが表示されたと判断したときは(ステップS215のYES)、ステップS216に進み、表示されていないと判断したときは(ステップS215のNO)、ステップS218に進む。
ステップS216では、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行する。この処理は、リプレイが入賞した前回遊技でベットされていた遊技メダルの枚数(ベット数)を読み込む処理である。遊技メダル読込みの詳細は、図36に示される。
次のステップS217では、自動ベット数データをセットする。この処理は、ステップS216で読込んだ前回遊技(リプレイ入賞遊技)のベット数によって、自動ベットする遊技メダルの枚数(自動ベット数)を記憶するRWM63のデータ「_NB_REP_MEDAL」(不図示)を更新する処理である。
上記のS212〜S217の処理によって、前回遊技の結果に基づく状態をセットした後は、ステップS218及びステップS219の処理を行うことにより、サブ制御基板80に対し、遊技状態に係るコマンドを送信する。
ステップS218では、作動状態の出力要求をセットする。そして、ステップS219では、制御コマンドセット1(R_CMD_SET)を実行する。具体的には例えば、リプレイが作動したことや1種BBが作動したことを示す情報を、サブ制御基板80に送信する。なお、ステップS218〜S219の処理では、上記した情報の他にも、今回遊技の設定値に関する情報や、今回遊技のRT状態に関する情報等もサブ制御基板80に送信するようにしてもよい。
そして、ステップS219の処理後は、ステップS220に進み、メダル受付け開始(MS_MEDAL_START)を実行する。メダル受付け開始の詳細は、図37に示される。
図36は、遊技メダル読込み(R_PLYMDL_READ)を示すフローチャートである。
図36によれば、ステップS221において、メイン制御基板60は、RWM63に記憶された遊技メダル枚数データ「_NB_PLAY_MEDAL」の値を読み込み、読込んだ値を所定のレジスタ(例えばAレジスタ)に記憶する。図16を参照して前述したように、この値は、ベットされている遊技メダルの枚数(ベット数)である。
そして、ステップS222において、メイン制御基板60は、ステップS221で記憶したメダル枚数(ベット数)のチェックを行う。具体的には、Aレジスタのレジスタ値が「0」を示す値であれば(すなわち、ベットメダルが存在しない場合)、ゼロフラグを「1」にする。一方、Aレジスタのレジスタ値が「0」以外を示す値であれば(すなわち、ベットメダルが存在する場合)、ゼロフラグを「0」にする。
ステップS222の処理が終わると、メイン制御基板60は、遊技メダル読込みを終了する。
図37は、メダル受付け開始(MS_MEDAL_START)を示すフローチャートである。
図37によれば、まず、ステップS231において、メイン制御基板60は、遊技メダル枚数データ「_NB_PLAY_MEDAL」の値を「0」にすることによって、前回遊技におけるベット数のデータをクリアする。
次に、ステップS232では、メイン制御基板60は、投入表示LED(状態表示LED48e〜状態表示LED48g)を消灯する処理を行う。具体的には、投入枚数表示LED信号データ「_PT_MEDAL_LED」のD5〜D7ビットを「0」にする。
次のステップS233では、メイン制御基板60は、遊技メダル管理フラグの初期化を行う。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD0,D2〜D4,D6,D7ビットを「0」にする。
次のステップS234では、メイン制御基板60は、作動状態フラグをチェックする。具体的には、作動状態フラグ「_FL_ACTION」のD0ビット(再遊技)の値を読込む。そして、ステップS235では、ステップS234の読込みに基づいて、再遊技作動時であるか否かを判断する。
ステップS234で読込んだD0ビットの値が「0(未作動)」であれば、ステップS235において再遊技作動時ではないと判断し(ステップS235のNO)、ステップS246に進む。ステップS246では、ブロッカ29をON状態(許可位置)に制御するためにブロッカON(M_BLOCKER_ON)を実行し、その後、メダル受付け開始の処理を終了する。したがって、再遊技非作動時には、ブロッカ29がON状態にされることで、一律に遊技メダルの手入れ投入が許可される。なお、ブロッカONの詳細は、図39に示される。
一方、ステップS234で読込んだD0ビットの値が「1(作動)」であれば、ステップS235において再遊技作動時と判断し(ステップS235のYES)、ステップS236に進む。すなわち、図37に示すメダル受付け開始において、ステップS236以降の処理は、再遊技作動時の遊技メダルの自動ベット処理に相当する。
ステップS236では、再遊技作動時の待機時間をセットする。ステップS237では、ウェイト処理を実行する。具体的には、例えばウェイト時間を約500msとするために、割込み数のカウント値「237」を設定し、1割込みごとにカウント値を「1」ずつ減算していき、「0」になるまでウェイト処理を実行する。
ステップS237のウェイト処理を設けることによって、リプレイ表示LEDの点灯(ステップS241)や遊技メダルの自動ベット(ステップS244)が遊技終了直後に行われてしまうことを防止することができる。なお、自動ベット時のベット音は、ステップS242,ステップS243で記憶されるコマンドに基づいて出力されるため、このベット音の出力タイミングもステップS237のウェイト処理によって調整することができる。また、入賞したリプレイの種類に応じて、ウェイト時間を異ならせるようにしてもよい。
なお、図15等には図示していないが、ステップS237のウェイト処理を実行するために、RWM63は、1バイトタイマ記憶領域に、ウェイト処理でカウントする割込み数の最大値(例えば「237」)を記憶するための1バイトの記憶領域を有するようにしてよい。また、ウェイト処理でカウントする割込み数の最大値が「255」を超える場合(例えば「300」)には、1バイトの記憶領域には格納できないため、RWM63は、2バイトタイマ記憶領域に「300」を記憶するための2バイトの記憶領域を有するようにしてもよい。
ステップS237のウェイト処理の終了後は、ステップS238において、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行し、貯留されている遊技メダルの枚数(貯留枚数)を読込む。貯留枚数読込みの詳細は、図38に示される。
そして、ステップS239では、ステップS238で読込んだ貯留枚数が限界枚数(本実施形態では50枚)に達しているか否かを判断する。具体的には、ステップS238の貯留枚数読込みで取得した貯留枚数表示データ「_NB_CREDIT_LED」の値が、限界枚数の「50」を示す値になっているか否かを判断する。
ステップS239において貯留枚数が限界枚数であると判断したときは(ステップS239のYES)、ステップS241に進む。このとき、ブロッカ29はOFF状態(不許可位置)が維持される。
一方、ステップS239において貯留枚数が限界枚数ではないと判断したときは(ステップS239のNO)、ステップS240に進み、ブロッカ29をON状態(許可位置)に制御するためにブロッカON(M_BLOCKER_ON)を実行し、その後、ステップS241に進む。すなわち、貯留枚数が限界枚数ではないと判断したときは、再遊技作動時であっても、遊技メダルの手入れが許可される。なお、再遊技作動時には常に遊技メダルの手入れを許可しないように構成したい場合には、ステップS238〜S240の処理を削除すればよい。
そして、ステップS241では、リプレイ表示LED(状態表示LED48a)の点灯処理を行う。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD3ビットを「1(点灯)」にする。なお、リプレイ表示LEDを実際に点灯させる処理は、後述する割込み処理におけるLED表示制御で行われる(図55のステップS65)。
そして、ステップS242では、メイン制御基板60は、サブ制御基板80に対して自動ベットが行われた旨を示すコマンドを送信するための出力要求セット処理を行い、ステップS243では、制御コマンドセット1(R_CMD_SET)を実行する。
その後、ステップS244では、メイン制御基板60は、メダル1枚加算(M_1MEDAL_INC)を実行する。メダル1枚加算は遊技メダルを1枚加算する処理であるが、ここでは、リプレイ入賞に基づく自動ベットのために、1枚ずつ遊技メダルを自動ベット(加算)する処理を意味する。メダル1枚加算の詳細は、図40に示される。
そして次のステップS245では、ステップS244でベットされたベット数が所定の限界枚数(規定数)に達しているか否かを判断する。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD7ビットの「遊技メダル限界判定」が「1(限界)」であるか否かによって判断する。ベット数が所定の限界枚数に達していないと判断したときは(ステップS245のNO)、ステップS244に戻ってメダル1枚加算(自動ベット)を再度実行する。そして、ベット数が所定の限界枚数に達していると判断したときは(ステップS245のYES)、メダル受付け処理を終了し、メイン処理に戻る。
なお、図37では、自動ベット時の出力要求セット(ステップS242)及び自動ベット時のコマンド送信(ステップS243)を実行した後に、自動ベット処理(ステップS244〜S245)を行うとしたが、本実施形態はこれに限らず、例えば、自動ベット処理の終了後に、自動ベット時の出力要求セット及び自動ベット時のコマンド送信を行うようにしてもよい。
また、図37では、リプレイ入賞時に例えば3枚の遊技メダルを一気に自動ベットするために、自動ベットにおいて遊技メダルを1枚加算するごとのウェイト処理を設けていないが、ステップS245でNOと判断された後に、ウェイト処理を追加する等してもよい。このようにする場合、ステップS244のメダル1枚加算(M_1MEDAL_INC)がウェイト時間を挟んで実行されることから、投入枚数表示LED信号データ「_PT_MEDAL_LED」が順次更新され、投入表示LED(状態表示LED48g、状態表示LED48f、状態表示LED48e)が順次点灯するように遊技者に見せることができる。
図38は、貯留枚数読込み(R_CREDIT_READ)を示すフローチャートである。
図38によれば、まず、ステップS251において、メイン制御基板60は、貯留枚数データを読込む。具体的には、RWM63に記憶された貯留枚数表示データ「_NB_CREDIT_LED」の値を所定のレジスタ(例えばAレジスタ)に記憶する。
次に、ステップS252では、メイン制御基板60は、ステップS251で読込んだ値のゼロチェックを行う。具体的には、Aレジスタの値が「0」を示す値となっているときに、ゼロフラグを「1」にする。そして、ステップS252の処理後、貯留枚数読込みの処理を終了する。
図39は、ブロッカON(M_BLOCKER_ON)を示すフローチャートである。
図39によれば、まず、ステップS261において、メイン制御基板60は、ブロッカOFF時監視時間「_TM1_BLOFF_CHK」が経過したか否かを判断する。具体的には、RWM63のアドレス「F026」に記憶されたブロッカOFF時監視時間「_TM1_BLOFF_CHK」のタイマ値が「0」であるとき、ブロッカOFF時監視時間が経過したと判断する。ステップS261において、ブロッカOFF時監視時間が経過していないと判断されている間は(ステップS261のNO)、次の処理に進むことはできず、ブロッカOFF時監視時間が経過したと判断したとき(ステップS261のYES)、ステップS262に進む。
ここで、図15を示して説明したように、「_TM1_BLOFF_CHK」は、遊技メダルの検知によって通路センサ28がオンとなったことを示す「セレクタ通路センサ信号」の立ち上がり時(入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビットが「1」となったとき)に、初期値の「144」がセットされ、その後は1割込みごとに「1」ずつ減算する1バイトタイマである。したがって、144割込み(約322ms)が経過して「_TM1_BLOFF_CHK」のタイマ値が「0」となるまでは、ステップS262以降の処理を行うことができない。
このように制御することによって、本実施形態のスロットマシン10は、ブロッカ29による「遊技メダルの挟み込み」を防止することができる。詳しく説明すると、遊技メダルが通路センサ28(セレクタ通路センサ28)によって検知された直後に、ブロッカ29がOFF状態(不許可位置)からON状態(許可位置)に変位するように構成されていると、遊技メダル通路を流下している遊技メダルがブロッカ29によって挟み込まれてしまう、所謂「遊技メダルの挟み込み」が発生してしまうおそれがある。このような問題に対して、本実施形態のブロッカON(M_BLOCKER_ON)では、通路センサ28によって検知された遊技メダルが遊技メダル通路を流下してブロッカ29の設置位置を通過するために十分な時間(より明確には、ブロッカ29の位置を越えてホッパー50への流下が確定する所定位置に到達するまでに十分な時間)として、ブロッカOFF時監視時間(約322ms)のタイマを設定し、タイマ値が「0」になるまでは、ブロッカ29がOFF状態からON状態に変位することを許可しないことにより、「遊技メダルの挟み込み」を防止することができる。
なお、ブロッカOFF時監視時間「_TM1_BLOFF_CHK」は、RWM63の所定アドレス「F026」に記憶されるタイマであるため、タイマに初期値がセットされた後も、遊技の進行は可能となる。
次に、ステップS262において、メイン制御基板60は、割込み処理(タイマ割込み処理)による割込みを禁止する(割込み禁止)。前述したように、メイン処理の実行中には、2.235msごとにタイマ割込み処理が入るが、ステップS262の割込み禁止の実行後は、後述するステップS266において当該割込み禁止が解除されるまでの期間、割込みを許可しないように制御する。
そして、ステップS263では、メイン制御基板60は、ブロッカ信号をONにする処理を行う。具体的には、RWM63のアドレス「F061」に記憶される、ブロッカ信号及びホッパーモータ駆動信号データ「_PT_BLK_HPM」のD6ビット(ブロッカ信号)を「1(ON)」にする。なお、ステップS263でONにセットされたブロッカ信号は、即座に出力ポート62(より詳しくは出力ポート3)から出力されるのではなく、その後に実行される割込み処理によって出力ポート3から出力される。
次に、ステップS264では、メイン制御基板60は、投入監視カウンタの値をクリアする。具体的には、RWM63のアドレス「F016」に記憶される投入監視カウンタ「_CT_SEN_CHK」のデータを「0」にする。前述したように、「_CT_SEN_CHK」は、遊技メダルが通路センサ28に検知されると値が「+1」され、投入センサ30(投入センサ30a及び投入センサ30b)に検知されると値が「−1」されることによって、正常時には「+1」と「0」とを繰り返すカウンタである。ここで例えば、ブロッカ29がOFF状態にあるときに、遊技メダルが投入されたときには、通路センサ28による検知だけが行われる(遊技メダルは投入センサ30の側には案内されない)ことから、投入監視カウンタの値が上がり続けてしまう。ステップS264で投入監視カウンタの値をクリアすることによって、このような状況をリセットすることができる。
次に、ステップS265では、メイン制御基板60は、ブロッカ状態を示すフラグをONにする。具体的には、RWM63のアドレス「F01E」に記憶される遊技メダル管理フラグ「_FL_MEDAL_STS」のD2ビット(ブロッカ状態)を「1(ON)」にする。なお、「_FL_MEDAL_STS」のブロッカ状態は、「_PT_BLK_HPM」のブロッカ信号とは異なり、遊技メダルが投入可能な状態であることを示す情報であって、当該データが「1」であるときに割込み処理が行われることによって、投入可表示LED(状態表示LED48b)を点灯するように制御する。
ステップS265までの処理が終わると、ステップS266において、メイン制御基板60は、ステップS262で行った割込み禁止を解除することによって、割込み処理(タイマ割込み処理)による割込みを許可し、ブロッカONの処理を終了する。
上記のようにステップS262〜S266までの期間で割込みを禁止することによって、当該期間で実行される命令(RWM63の更新)の実行中にタイマ割込み処理が実行されないように制御することができる。その結果、ステップS263でセットされるブロッカ信号に基づいてブロッカ29の状態(不許可位置から許可位置への移行)を制御する割込みと、ステップS265でセットされるブロッカ状態に基づいて投入可表示LEDを点灯制御する割込みとが、同一の割込み処理で実行される。すなわち、ブロッカ29の位置制御と投入可表示LEDの点灯制御とが同一タイミングの割込み処理で実現されることによって、ブロッカ29のOFF状態/ON状態と、投入可表示LEDにおける表示状態との間に不整合が生じることを防止することができ、遊技者に混乱を与えないようにする効果が期待できる。
なお、図39のステップS263〜S265の各処理は、実行順序を適宜入れ替えたとしても、上述したブロッカ29の状態と投入可表示LEDの表示状態との不整合の防止(整合性の確保)という効果を得ることができる。
図40は、メダル1枚加算(M_1MEDAL_INC)を示すフローチャートである。
図40に示すメダル1枚加算の処理は、遊技メダルの手入れベット時、リプレイの表示に基づく自動ベット時、及びベットスイッチ33の操作に基づく貯留ベット時、という各ベット処理に共通して用いられる処理である。このように実行するベット処理が異なる場合であっても、共通する処理(プログラム)を用いることにより、プログラム容量を削減することができる。
図40によれば、まず、ステップS271において、メイン制御基板60は、ベットされた遊技メダルの枚数(ベット数)を読み込む。具体的には、図36で説明した遊技メダル読込み(R_PLYMDL_READ)を実行する。この処理によって、RWM63のアドレス「F06D」に記憶された遊技メダル枚数データ「_NB_PLAY_MEDAL」の値が読込まれてAレジスタに記憶される。
次のステップS272では、ステップS271で読込んだ遊技メダルのベット数を「+1」し、Cレジスタに記憶する。具体的には、Aレジスタ値に「1」を加算し、加算後のAレジスタ値を遊技メダル枚数データ「_NB_PLAY_MEDAL」に記憶(更新)する。
そして、ステップS273では、メイン制御基板60は、獲得枚数表示LED47の表示をクリアするための処理を行う。具体的には、RWM63に記憶される獲得枚数表示データ「_NB_PAY_LED」(不図示)をクリアする。なお、獲得枚数表示LED47を実際に表示する処理は、割込み処理におけるLED表示制御(図55のステップS65)で行われる。
次いで、ステップS274では、メイン制御基板60は、投入表示LED(状態表示LED48g、状態表示LED48f、状態表示LED48e)の点灯データを生成する。点灯データの生成は、例えばAレジスタの値を演算することによって実行される。
次のステップS275では、メイン制御基板60は、投入枚数分の点灯データの生成を終了したか否かを判断する。投入枚数分の点灯データの生成が終了していないと判断したときは(ステップS275のNO)、ステップS24に戻り、点灯データの生成を継続する。投入枚数分の点灯データの生成が終了したと判断したときは(ステップS275のYES)、ステップS276に進む。
ステップS276では、メイン制御基板60は、投入枚数表示LEDの点灯データをRWM63に記憶する制御を行う。具体的には、Aレジスタ値を投入枚数表示LED信号データ「_PT_MEDAL_LED」に記憶する。なお、投入枚数表示LEDを実際に点灯させる処理は、割込み処理におけるLED表示制御(図55のステップS65)で行われる。
そして、ステップS277では、メイン制御基板60は、メダル限界枚数をセットする。ここで、メダル限界枚数とは、当該遊技においてベット可能な遊技メダルの枚数の最大値(またはその遊技でベットしなければならない遊技メダルの枚数)、すなわち「規定数」を意味する。例えば、通常遊技では最大3枚の遊技メダルがベット可能で、1種BB遊技中は最大2枚の遊技メダルがベット可能とすると、通常遊技におけるメダル限界枚数は「3」で、1種BB遊技中におけるメダル限界枚数は「2」となる。
次に、ステップS278において、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行し、ベット数を読み込む。この処理は、ステップS271の処理と同じである。
そして、ステップS279では、ステップS278で読込んだベット数が、ステップS277でセットした遊技メダル限界枚数であるか否かを判断する。ベット数が遊技メダル限界枚数ではないと判断したときは(ステップS279のNO)、本フローチャートの処理を終了する。一方、遊技メダル限界枚数であると判断したときは(ステップS279のYES)、ステップS280に進み、メダル限界フラグ(遊技メダル限界判定)をセットする。ステップS280では、具体的には、RWM63のアドレス「F01E」に記憶される遊技メダル管理フラグ「_FL_MEDAL_STS」のD7ビット(遊技メダル限界判定)に「1(限界)」を記憶する。ステップS280の処理後は、本フローチャートによる処理を終了する。
[4−2−2.メダル投入待ち]
図41は、メダル投入待ち(MS_STANDBY_DSP)を示すフローチャートである。「メダル投入待ち」は、図34に示したメイン処理中のステップS35で実行されるサブルーチンである。
図41によれば、まず、ステップS281において、メイン制御基板60は、設定キースイッチ信号がONであるか否かを判断する。具体的には、入力ポート0立ち上がりデータ「_PT_IN0_UP」のD1ビット(設定キースイッチ信号)が「1」であるか否かを判断する。D1ビットが「1」である場合は、設定キースイッチ信号がONであると判断し(ステップS281のYES)、ステップS282に進む。D1ビットが「0」である場合は、設定キースイッチ信号がONではないと判断し(ステップS281のNO)、ステップS291に進む。
すなわち、遊技メダルの投入待ち状態において、設定キースイッチ12がオン(例えば、設定キー挿入中)にされると、設定確認モードとなり、ステップS282〜S290の処理が実行される。なお、設定確認モードは、現在の設定値を確認(管理者の目視による確認)するモードであり、設定値の変更はできない。
なお、本実施形態では、ステップS281の判断を、設定キースイッチ12の立ち上がりデータ(入力ポート0立ち上がりデータ)に基づいて行っているため、例えば、遊技中に設定キースイッチ12がオンにされた場合にステップS281の判断を行ったとしても、立ち上がりデータはOFFとなるため、ステップS282以降の設定確認モードには移行しない。このようにすることで、不正に設定値を確認できないようにしている。なお、このような点を考慮しない場合には、設定キースイッチ12のオン/オフを示すデータ(具体的には、入力ポート0レベルデータ「_PT_IN0_OLD」のD1(設定キースイッチ信号))に基づいて、ステップS281(並びに、後述するステップS286)の判断を行うようにしてもよい。
ステップS282では、ブロッカ29をOFF状態(不許可位置)に制御するための処理として、ブロッカOFF(M_BLOCKER_OFF)が実行される。ブロッカ29がOFF状態にされることにより、遊技メダルは遊技メダル投入口26から投入されても払出口53から返却される。ブロッカOFFの詳細は、図42に示される。
次のステップS283では、メイン制御基板60は、サブ制御基板80に対して設定値表示開始時の制御コマンドを送信するための出力要求セット処理を行い、次のステップS284では、制御コマンドセット1(R_CMD_SET)を実行する。
次いで、ステップS285では、メイン制御基板60は、設定値表示LED66を点灯させる処理を行う。この処理によって、設定値表示LED66を点灯可能とし、現在の設定値を表示することができる。なお、設定値表示LED66を実際に点灯/消灯する処理は、割込み処理におけるLED表示制御(図55のステップS65)で行われる。
次のステップS286では、メイン制御基板60は、設定キースイッチ信号がOFFになったか否かを判断し続ける。ステップS286では、入力ポート0立ち下がりデータ(不図示)のD1ビット(設定キースイッチ信号)が「1」になったか否かを判断する。D1ビットが「0」のうちは、設定キースイッチ信号がOFFになっていない(ONである)と判断し(ステップS286のNO)、ステップS286の処理を繰り返す。そして、D1ビットが「1」になった場合は、設定キースイッチ信号がOFFになったと判断し(ステップS286のYES)、ステップS287に進む。
そして、ステップS287では、メイン制御基板60は、設定値表示LED66を消灯させる処理を実行する。その後、ステップS288に進む。
ステップS288では、メイン制御基板60は、サブ制御基板80に対して設定値表示終了時の制御コマンドを送信するための出力要求セット処理を行い、次のステップS289では、制御コマンドセット1(R_CMD_SET)を実行する。
次のステップS290において、メイン制御基板60は、ブロッカ29をON状態(許可位置)に制御するために、ブロッカON(M_BLOCKER_ON)を実行する。
次いで、ステップS291では、メイン制御基板60は、遊技待機表示時間が経過したか否かを判断する(遊技待機表示開始の確認)。具体的には、遊技待機表示開始時間「_TM2_BACK_OFF」の値が「0」であるか否かを判断することによって、図35の遊技開始セット(MS_GAME_SET)のステップS211で「_TM2_BACK_OFF」にセットされた「26846」分の割込み(約60秒)が経過したか否かを判断する。
ステップS291において遊技待機表示時間が経過したと判断したときは(ステップS291のYES)、ステップS292に進み、獲得枚数表示LED47の表示をクリアするための処理を実行し、その後、本フローチャート処理を終了し、メイン処理に戻る。ステップS292の処理は、図40のステップS273の処理と同一である。一方、ステップS291において遊技待機表示時間が経過していないと判断したときは(ステップS291のNO)、そのまま本フローチャートの処理を終了し、メイン処理に戻る。
以上のように、本実施形態のメダル投入待ち(MS_STANDBY_DSP)によれば、所定時間(遊技待機表示時間である、約60秒)、遊技が行われなかった場合には、獲得枚数表示LED47の表示をクリアするが、リプレイ表示LED(状態表示LED48a)、貯留枚数表示LED45、及び投入表示LED(状態表示LED48e〜状態表示LED48g)の表示はクリアしないように制御される。このような制御によって、遊技が行われずに所定時間が経過して獲得枚数表示LED47の表示がクリアされても遊技の継続に関する情報は表示され続けることから、遊技者が一旦離席するような場合でも、他の遊技者やホール関係者に遊技を完全に終了したと誤解させないようにすることができ、遊技者が不利益を被ることを抑制できる。
また、前回遊技で遊技メダルの獲得があった旨を獲得枚数表示LED47で表示し続けることは、遊技者が遊技を終了した(精算処理等を行って離席した)としても、他の遊技者やホール関係者に対して、遊技の終了を感じさせない(まだ遊技をするつもりがあるかもしれないと感じさせる)おそれがあるため、好ましくない。そこで本実施形態では、獲得枚数表示LED47の表示をクリアするようにしている。
なお、本実施形態において、獲得枚数表示LED47の表示がクリアされる上記以外の状況としては、例えば、遊技開始セット(MS_GAME_SET)のステップS211(図35参照)やメダル投入待ち(MS_STANDBY_DSP)のステップS292(図41参照)が挙げられる。これらの場合、遊技開始時に約60秒のタイマがセットされ、遊技開始時から約60秒が経過すると、獲得枚数表示LED47の表示がクリアされる(「00」と表示される)。このような制御によって、例えばリール39の回転中(指示機能非作動中)や、全てのリール39の停止時における役の非入賞時(役の当選の有無は問わない)には、獲得枚数表示LED47の表示は「00」(または「*0」や「**」等でもよい(「*」は、消灯を意味する))となる。
また、メダル1枚加算(M_1MEDAL_INC)のステップS273(図40参照)においても、獲得枚数表示LED47の表示がクリアされる。この場合は、遊技メダルの投入があったとき(ベットメダルの投入、遊技メダルの手入れ投入、リプレイ入賞時の自動ベット時)に、獲得枚数表示LED47の表示がクリアされることとなる。
なお、本実施形態において、獲得枚数表示LED47の表示クリアに関する上記制御は一例に過ぎず、例えば、リール39の回転中や、全てのリール39の停止時における役の非入賞時、あるいは遊技メダルの投入時には、獲得枚数表示LED47には何も表示しないように構成してもよい。
図42は、ブロッカOFF(M_BLOCKER_OFF)を示すフローチャートである。ブロッカOFFの処理では、遊技メダルの手入れが有効になった後、遊技メダルの手入れが不可能(受付不可能)となったときは、ブロッカ29をOFF状態(不許可位置)にし、遊技メダル投入口26から手入れされた遊技メダルを払出口53から返却する「不許可状態の遊技メダル通路」を形成するように制御する。
図42によれば、まず、ステップS301において、メイン制御基板60は、ブロッカ信号がOFFであるか否かを判断する。具体的には、ブロッカ信号及びホッパーモータ駆動信号データ「_PT_BLK_HPM」のD6ビット(ブロッカ信号)の値が「0(OFF)」であるか否かを判断する。
ステップS301において、ブロッカ信号の値が「1」であった場合は、ブロッカ信号がOFFではないと判断し(ステップS301のNO)、ステップS302に進む。一方、ブロッカ信号の値が「0」であった場合は、ブロッカ信号がOFFであると判断し(ステップS301のYES)、本フローチャートの処理を終了する。
ステップS302では、メイン制御基板60は、割込み処理(タイマ割込み処理)による割込みを禁止する(割込み禁止)。前述したように、メイン処理の実行中には、2.235msごとにタイマ割込み処理が入るが、ステップS302の割込み禁止の実行後は、後述するステップS305において当該割込み禁止が解除されるまでの期間、割込みを許可しないように制御する。
そして、ステップS303では、メイン制御基板60は、ブロッカ信号をOFFにする処理を行う。具体的には、RWM63のアドレス「F061」に記憶される、ブロッカ信号及びホッパーモータ駆動信号データ「_PT_BLK_HPM」のD6ビット(ブロッカ信号)を「0(OFF)」にする。なお、ステップS303でOFFにセットされたブロッカ信号は、即座に出力ポート62(より詳しくは出力ポート3)から出力されるのではなく、その後に実行される割込み処理によって出力ポート3から出力される。
次に、ステップS304では、メイン制御基板60は、ブロッカ状態を示すフラグをOFFにする。具体的には、RWM63のアドレス「F01E」に記憶される遊技メダル管理フラグ「_FL_MEDAL_STS」のD2ビット(ブロッカ状態)を「0(OFF)」にする。なお、「_FL_MEDAL_STS」のブロッカ状態は、「_PT_BLK_HPM」のブロッカ信号とは異なり、遊技メダルが投入可能な状態であることを示す情報であって、当該データが「0」であるときに割込み処理が行われることによって、投入可表示LED(状態表示PLED48b)を消灯するように制御する。
ステップS304までの処理が終わると、ステップS305において、メイン制御基板60は、ステップS302で行った割込み禁止を解除することによって、割込み処理(タイマ割込み処理)による割込みを許可し、ブロッカOFFの処理を終了する。
上記のようにステップS302〜S305までの期間で割込みを禁止することによって、当該期間で実行される命令(RWM63の更新)の実行中にタイマ割込み処理が実行されないように制御することができる。その結果、ステップS303でセットされるブロッカ信号に基づいてブロッカ29の状態(許可位置から不許可位置への移行)を制御する割込みと、ステップS304でセットされるブロッカ状態に基づいて投入可表示LEDを消灯制御する割込みとが、同一の割込み処理で実行される。すなわち、ブロッカ29の位置制御と投入可表示LEDの消灯制御とが同一タイミングの割込み処理で実現されることによって、ブロッカ29のOFF状態/ON状態と、投入可表示LEDにおける表示状態との間に不整合が生じることを防止することができ、遊技者に混乱を与えないようにする効果が期待できる。
なお、図42のステップS303及びS304の各処理は、実行順序を入れ替えたとしても、上述したブロッカ29の状態と投入可表示LEDの表示状態との不整合の防止(整合性の確保)という効果を得ることができる。
[4−2−3.メダル管理]
図43は、メダル管理(MS_MEDAL_CHK)を示すフローチャートである。「メダル管理」は、図34に示したメイン処理中のステップS36で実行されるサブルーチンである。
図43によれば、まず、ステップS311において、メイン制御基板60は、ブロッカ信号がONであるか否かを判断する。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD2ビット(ブロッカ状態)が「1(ON)」であるか否かを判断する。D2ビットが「1」であることは、ブロッカ29によって許可状態の遊技メダル通路が形成されていることを意味する。ステップS311においてD2ビットが「1」であるときは、ブロッカ信号がONであると判断し(ステップS311のYES)、ステップS312に進む。一方、D2ビットが「0(OFF)」であるときは、ブロッカ信号がONではないと判断し(ステップS311のNO)、ステップS313に進む。
ステップS312では、メイン制御基板60は、投入センサ信号がONであるか否かを判断する。具体的には、入力ポート2レベルデータ「_PT_IN2_OLD」のD5ビット(投入センサ2信号)またはD6ビット(投入センサ1信号)の何れかが「1(ON)」であるか否かを判断する。
ステップS312において「_PT_IN2_OLD」のD5ビットまたはD6ビットの何れかが「1」である場合は、投入センサ信号がONであると判断し(ステップS312のYES)、このとき遊技メダルの手入れ投入を意味するので、ステップS321に進み、手入れメダルチェック(MS_INSERT_CHK)を実行して手入れ時のチェック処理を行う。手入れメダルチェックの詳細は、図44及び図45に示される。
ステップS312において「_PT_IN2_OLD」のD5ビットまたはD6ビットの何れかもが「0」である場合は、投入センサ信号がONではないと判断し(ステップS312のNO)、ステップS313に進む。
ステップS313では、メイン制御基板60は、ベットスイッチ33(1ベットスイッチ33a、3ベットスイッチ33b)によるベット操作の受付け、及び精算スイッチ36による精算操作の受付けが可能であるか否かをチェックするための要求をセットする。そして、次のステップS314では、これらの操作受付けが可能であるかをチェックする。
次に、ステップS315において、メイン制御基板60は、ステップS314でチェックした操作受付けが可能であるか否かを判断する。可能であると判断したときは(ステップS315のYES)、ステップS316に進む。可能ではないと判断したときは(ステップS315のNO)、本フローチャートの処理を終了し、メイン処理に戻る。
本実施形態では、上記のステップS313〜S315の処理が行われることによって、ベット処理または精算処理を行う前に、対応する操作スイッチ(1ベットスイッチ33a、3ベットスイッチ33b、精算スイッチ36)の操作受付けが可能な状態であるか否かを判断し、可能な状態であると判断した場合にのみ、後述する貯留ベット処理(MS_BET_IN)または遊技メダル精算(M_MEDAL_RET)の処理に移行するようにしている。具体的には例えば、ステップS313〜S315の処理により、入力ポート1のレベルデータ「_PT_IN1_OLD」及び立ち上がりデータ「_PT_IN1_UP」を読込み、これらが一致していないときには、ステップS315において操作受付けが可能ではないと判断する。
ステップS316では、メイン制御基板60は、ベットスイッチ信号及び精算スイッチ信号の確認要求をセットする。ここでは、入力ポート1の立ち上がりデータ「_PT_IN1_UP」を読込む。
次のステップS317では、ステップS316での確認(読込み)に基づいて、1ベットスイッチ33a、3ベットスイッチ33b、または精算スイッチ36のうち、何れかの信号の立ち上がりがあるか否かを判断する。具体的には、読込んだ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)、D3ビット(3ベットスイッチ信号)、D5ビット(精算スイッチ信号)の何れかが「1(ON)」であるか否かを判断する。
より具体的には、例えば、読込んだ「_PT_IN1_UP」と「00111000(B)」とした定義データとをAND演算することによって、判断対象ではないビット(D0〜D2ビット、D6ビット、D7ビット)をクリアする。そして、演算結果が「0」であるか否かを判断する。演算結果が「0」であれば、判断対象の何れの信号の立ち上がりもない(1ベットスイッチ33a、3ベットスイッチ33b、精算スイッチ36の何れも操作の変化がない)ことを意味するので(ステップS317のNO)、本フローチャートの処理を終了し、メイン処理に戻る。一方、演算結果が「0」ではなければ、判断対象の何れかの信号に立ち上がりがある(1ベットスイッチ33a、3ベットスイッチ33b、精算スイッチ36の何れかで操作の変化があった)ことを意味するので(ステップS317のYES)、ステップS318に進む。
ステップS318では、メイン制御基板60は、スタートスイッチ34の受付け許可フラグをクリアする。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD0ビット(スタートスイッチ受付状態)を「0」にする。
なお、遊技メダル管理フラグのD0ビットが「0(禁止)」のときは、スタートスイッチ34が有効にならない(操作されても無効となる)ことを示すために、遊技開始LED(状態表示LED48d)を消灯する。一方、遊技メダル管理フラグのD0ビットが「1(許可)」のときは、スタートスイッチ34が有効となっていることを示すために、遊技開始LED(状態表示LED48d)を点灯する。遊技開始LEDを実際に消灯/点灯する処理は、割込み処理におけるLED表示制御で行われる(図55のステップS65)。
そこで、本実施形態では、1ベットスイッチ33a、3ベットスイッチ33b、精算スイッチ36の何れかの信号に変化があったときは、スタートスイッチ34が有効にならないことを報知するために、遊技メダル管理フラグのデータを更新した後に、1ベットスイッチ33a、3ベットスイッチ33b、精算スイッチ36の操作に基づく処理(貯留ベット処理(MS_BET_IN)または遊技メダル精算(M_MEDAL_RET))を実行するようにしている。
なお、本実施形態では、スタートスイッチ34の操作に基づく処理(例えば役抽選処理等)は、メイン処理で実行され、貯留ベット処理や遊技メダル精算もメイン処理で実行されることから、これらの処理は同時に行われないように構成されている。具体的には例えば、遊技メダル精算の処理中は、スタートスイッチ41に基づく役抽選処理は実行されない。
次のステップS319では、メイン制御基板60は、精算スイッチ信号に係るデータの確認要求をセットする。具体的には、例えば、入力ポート1立ち上がりデータ「_PT_IN1_UP」を読込む。そしてステップS320では、メイン制御基板60は、ステップS319で読込んだ「_PT_IN1_UP」に基づいて、精算スイッチ信号の立ち上がりがあるか否かを判断する。具体的には、「_PT_IN1_UP」のD5ビット(精算スイッチ信号)が「1(ON)」か「0(OFF)」かを確認する。
ステップS320において「_PT_IN1_UP」のD5ビットが「1」であった場合は、精算スイッチ信号の立ち上がりがあると判断し(ステップS320のYES)、ステップS322に進み、遊技メダル精算(M_MEDAL_RET)を実行する。遊技メダル精算の詳細は、図47に示される。
ステップS320において「_PT_IN1_UP」のD5ビットが「0」であった場合は、精算スイッチ信号の立ち上がりがないと判断するが(ステップS320のNO)、これは言い換えれば、ベットスイッチ信号の立ち上がりがあることを意味するので、ステップS323に進み、貯留ベット処理(MS_BET_IN)を実行する。貯留ベット処理の詳細は、図51に示される。
以上に説明したように、本実施形態のメダル管理(MS_MEDAL_CHK)では、ステップS312において投入センサ信号に係るデータがONであるか否かを判断した後に、ステップS317やステップS320においてベットスイッチ信号や精算スイッチ信号に係るデータがONであるか否かを判断している。したがって、ベットスイッチ33や精算スイッチ36よりも、投入センサ30によって検知される物理的な遊技メダルの投入を優先的にチェックすることによって、「遊技メダルの飲み込み」を防止する効果に期待できる。
なお、上記の「ベットスイッチ33や精算スイッチ36よりも、投入センサ30によって検知される物理的な遊技メダルの投入を優先的にチェックする」とは、図34のメイン処理においてステップS33〜S39をループしているときであって、かつ、ブロッカ信号がONの状況下において、割込み処理によって各入力ポート61(入力ポート0〜2)に係るRWM63のデータが更新され、投入センサ信号がONで、かつ、精算スイッチ信号またはベットスイッチ信号がONになったときに、「手入れメダルチェック(ステップS321)」が、「遊技メダル精算(ステップS322)」や「貯留ベット処理(ステップS323)」よりも実行されやすいプログラム順序やプログラム処理を指す。
また、本実施形態のスロットマシン10は、遊技メダル精算を実行するためのスイッチとして1つの精算スイッチ36しか備えていないのに対し、貯留ベット処理を実行するためのスイッチとしては、1ベットスイッチ33a及び3ベットスイッチ33bの2つのスイッチを備えている。そのため、上記のステップS320において、仮に、貯留ベット処理を実行するか否かを判断しようとすると、2つのスイッチ(1ベットスイッチ33a,3ベットスイッチ33b)のそれぞれに対応する立ち上がりデータを判断しなければならない。これは、処理が複雑になり、プログラム容量が増加するおそれがある。そこで、本実施形態のメダル管理(MS_MEDAL_CHK)では、上述したようにステップS320において、「1つ」の精算スイッチ信号の立ち上がりデータを確認することによって、続く処理の実行(遊技メダル精算または貯留ベット処理)を判断している。このような処理を行うことによって、処理が簡素化され、プログラム容量が削減される。
[4−2−3−1.手入れメダルチェック]
図44,図45は、手入れメダルチェック(MS_INSERT_CHK)を示すフローチャート(その1,その2)である。なお、図44及び図45に示された[11]〜[14]の表記は、両図面間での対応を示すものであり、図44及び図45によって手入れメダルチェック(MS_INSERT_CHK)の全体のフローチャートが示される。
図44,図45によれば、まず、ステップS331において、メイン制御基板60は、スタートスイッチ34の受付け許可フラグをクリアする。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD0ビット(スタートスイッチ受付状態)を「0(禁止)」にする。
次に、ステップS332において、メイン制御基板60は、投入センサ1信号に係るデータがONであるか否かを判断する。具体的には、入力ポート2レベルデータ「_PT_IN2_OLD」のD6ビット(投入センサ1信号)が「1」であるか否かを判断する。なお、投入センサ1は投入センサ30aに相当し、投入センサ2は投入センサ30bに相当するが、以後は、原則として「投入センサ1」、「投入センサ2」の語句を用いて説明する。投入センサ1信号に係るデータがONであると判断したときは(ステップS332のYES)、ステップS333に進み、投入センサ1信号に係るデータがONではないと判断したとき(投入センサ2信号に係るデータがONであるとき)は(ステップS332のNO)、ステップS338に進む。
ステップS333では、投入センサ1の通過チェック時間(割込み回数が64、約143ms)をセットする。ここで、投入センサ1により遊技メダルが検知されると投入センサ1信号に係るデータがONとなるが、その後、所定時間を経過しても投入センサ1信号に係るデータがOFFにならないときは、遊技メダルの詰まり等が考えられるので、投入センサ1の通過チェック時間を計測する。
次にステップS334に進み、メイン制御基板60は、ステップS332と同様にして、投入センサ1信号及び投入センサ2信号に係るデータがOFFであるか否かを判断する。投入センサ1信号及び投入センサ2信号に係るデータがOFFであると判断したときは(ステップS334のNO)、本フローチャートによる処理を終了する。
ここで、ステップS332で投入センサ1信号に係るデータがONになった後、ステップS334で投入センサ1信号に係るデータがOFFと判断されることは稀であるが、ノイズや遊技メダルセレクタ27内で遊技メダルが暴れる等によって投入センサ1信号に係るデータが一時的にONとなり、ステップS332で検出される場合がある。しかし、このような稀な現象が発生しても、ステップS334の処理により、ステップS335以下に進まないようにしている。つまり、このような現象が発生しても、エラーと判定してエラー報知等を行わないので、遊技をスムーズに進行することができる。
一方、ステップS334において、投入センサ1信号及び投入センサ2信号に係るデータがOFFではないと判断したときは(ステップS334のNO)、ステップS335に進む。
ステップS335では、メイン制御基板60は、投入センサ1信号及び投入センサ2信号に係るデータがONであるか否かを判断する。投入センサ1信号及び投入センサ2信号に係るデータがONであると判断したときは(ステップS335のYES)、ステップS339に進み、ONではないと判断したときは(ステップS335のNO)、ステップS336に進む。
ステップS336では、メイン制御基板60は、投入センサ1信号に係るデータがONであるか否かを判断する。ONであると判断したときは(ステップS336のYES)、ステップS337に進み、ONではないと判断したときは(ステップS336のNO)、ステップS338に進む。
ステップS337では、メイン制御基板60は、投入センサ1の通過チェック時間が経過したか否かを判断する。すなわち、ステップS333でセットした時間が所定時間を経過したか否かを判断する。通過チェック時間を経過したと判断したときは(ステップS337のYES)、ステップS347に進み、通過チェック時間を経過していないと判断したときは(ステップS337のNO)、ステップS334に戻る。
前述したように、ステップS338は、ステップS332またはステップS336において投入センサ1信号に係るデータがONではないと判断された場合に(ステップS332のNO、ステップS336のNO)行われる処理である。また、後述するステップS341でNOと判断された場合、あるいはステップS345でNOと判断された場合も、ステップS338の処理が行われる。ステップS338では、メイン制御基板60は、メダルの不正通過エラーの表示要求をセットする。このメダル不正通過エラーは、本実施形態では「CPエラー」と称し、メダル不正通過エラーが発生したときには、獲得枚数表示LED47に「CP」と表示する処理を実行する。ステップS338の処理後は、ステップS348に進む。
ステップS348では、当該ステップに移行するまでの状況に応じたエラーを表示するための処理が行われる(M_ERROR_DSP)。エラー表示(M_ERROR_DSP)の詳細な説明は省略するが、当該処理が行われた後に割込み処理が実行されると、LED表示制御(図55のステップS65)によって、獲得枚数表示LED47にエラー内容の表示が行われる。具体的には例えば、ステップS338からステップS348に進んだ場合は、ステップS338でセットされた表示要求に基づいてメダル不正通過エラー(CPエラー)の表示が行われ、獲得枚数表示LED47に「CP」と表示される。また例えば、ステップS347からステップS348に進んだ場合は、ステップS347でセットされた表示要求に基づいてメダル滞留エラー(CEエラー)の表示が行われ、獲得枚数表示LED47に「CE」と表示される。また例えば、ステップS351からステップS348に進んだ場合は、ステップS349でセットされた表示要求に基づいてメダル異常投入エラー(C1エラー)の表示が行われ、獲得枚数表示LED47に「C1」と表示される。
一方、前述したように、ステップS335において投入センサ1信号及び投入センサ2信号に係るデータがONであると判断された場合には(ステップS335のYES)、ステップS339の処理が行われる。ステップS339では、メイン制御基板60は、投入センサ2の通過チェック時間(割込み回数が、約143ms)をセットする。
そして、次のステップS340に進み、メイン制御基板60は、投入センサ2信号に係るデータがONであるか否かを判断する。投入センサ2信号に係るデータがONであると判断したときは(ステップS340のYES)、ステップS344に進み、ONではないと判断したときは(ステップS340のNO)、ステップS341に進む。
ステップS341では、メイン制御基板60は、投入センサ1信号及び投入センサ2信号に係るデータがONであるか否かを判断する。投入センサ1信号及び投入センサ2信号に係るデータがONであると判断したときは(ステップS341のYES)、ステップS342に進む。一方、投入センサ1信号及び投入センサ2信号に係るデータがONではないと判断したときは(ステップS341のNO)、ステップS338に進む。前述したように、ステップS338ではメダルの不正通過エラー(CPエラー)の表示要求をセットし、その後のステップS348において当該エラーを表示する処理が行われる。
ステップS342では、メイン制御基板60は、投入センサ2の通過チェック時間が経過したか否かを判断する。すなわち、ステップS339でセットした時間が所定時間を経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときは(ステップS342のYES)、ステップS347に進む。一方、投入センサ2の通過チェック時間が経過していないと判断したときは(ステップS342のNO)、ステップS343に進む。
ステップS343では、メイン制御基板60は、投入センサ1の通過チェック時間が経過したか否かを判断する。投入センサ1の通過チェック時間が経過したと判断したときは(ステップS343のYES)、ステップS347に進み、通過チェック時間が経過していないと判断したときは(ステップS343のNO)、ステップS340に戻る。
次に、ステップS344は、ステップS340において投入センサ2信号に係るデータがONであると判断されたとき(ステップS340のYES)に行われる処理である。また、後述するステップS346でNOと判断された場合も、ステップS344の処理が行われる。ステップS344では、メイン制御基板60は、投入センサ1信号及び投入センサ2信号に係るデータがOFFであるか否かを判断する。投入センサ1信号及び投入センサ2信号に係るデータがOFFであると判断したときは(ステップS344のYES)、ステップS349に進む。一方、投入センサ1信号及び投入センサ2信号に係るデータがOFFではないと判断したときは(ステップS344のNO)、ステップS345に進む。
ステップS345では、メイン制御基板60は、投入センサ2信号に係るデータがONであるか否かを判断する。投入センサ2信号に係るデータがONであると判断したときは(ステップS345のYES)、ステップS346に進む。一方、投入センサ2信号に係るデータがONでないと判断したときは(ステップS345のNO)、ステップS338に進む。前述したように、ステップS338ではメダルの不正通過エラー(CPエラー)の表示要求をセットし、その後のステップS348において当該エラーを表示する処理が行われる。
ステップS346では、メイン制御基板60は、投入センサ2の通過チェック時間が経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときは(ステップS346のYES)、ステップS347に進む。投入センサ2の通過チェック時間が経過していないと判断したときは(ステップS346のNO)、ステップS344に戻る。
前述したように、ステップS347は、S342またはステップS346において投入センサ2の通過チェック時間が経過したと判断された場合(ステップS342のYES、ステップS346のYES)、あるいは、ステップS343において投入センサ1の通過チェック時間が経過したと判断された場合(ステップS343のYES)に行われる処理である。ステップS347では、メイン制御基板60は、メダル滞留エラーの表示要求をセットする。このメダル滞留エラーは、投入センサ1信号や投入センサ2信号に係るデータが、通過チェック時間の経過後もONの状態となり、遊技メダル通路に遊技メダルが滞留していることに対するエラーである。メダル滞留エラーは、本実施形態では「CEエラー」と称し、メダル滞留エラーが発生したときには、獲得枚数表示LED47に「CE」と表示する処理を実行する。ステップS347の処理後は、ステップS348に進み、CEエラーを表示する(獲得枚数表示LED47に「CE」と表示する)ための処理が行われる。
次に、ステップS349は、ステップS344において投入センサ1信号及び投入センサ2信号に係るデータがOFFであると判断されたとき(ステップS344のYES)に行われる処理である。ステップS349では、メイン制御基板60は、メダル異常投入エラーの表示要求をセットする。ここで、メダル異常投入エラーとは、通路センサ28と投入センサ1(投入センサ30a)、投入センサ2(投入センサ30b)の通過異常があったことを示すエラーである。メダル異常投入エラーは、本実施形態では「C1エラー」と称し、メダル異常投入エラーが発生したときには、獲得枚数表示LED47に「C1」と表示する処理を実行する。
但し、ステップS349においては、メダル異常投入エラー(C1エラー)の表示要求がセットされるだけであり、当該エラーを表示させる処理が行われるわけではない。C1エラーを表示させる処理は、後述するステップS351においてNOと判断された場合に、ステップS348に進むことによって行われる。すなわち、ステップS351においてYESと判断された場合には、C1エラーを表示させる処理は行われない。ステップS349の処理後はステップS350に進む。
ステップS350では、メイン制御基板60は、投入監視カウンタ「_CT_SEN_CHK」の値を「1」減算する。前述したように、「_CT_SEN_CHK」は、遊技メダルが通路センサ28に検知されると値が「+1」され、投入センサ1及び投入センサ2に検知されると値が「−1」されることによって、正常時には「+1」と「0」とを繰り返すカウンタである。
次のステップS351では、メイン制御基板60は、投入監視カウンタの値が「0」〜「3」の範囲であるか否かを判断する。上記範囲内であると判断した場合は(ステップS351のYES)、ステップS352に進む。一方、上記範囲内ではないと判断したときは(ステップS351のNO)、ステップS348に進み、エラーを表示するための処理が行われる。
ここで、ステップS351でNOと判断される具体的なケースについて補足すると、投入監視カウンタの値が「−1」となるケースとしては、遊技メダルが通路センサ28を通過せずに投入センサ1、投入センサ2を通過した場合が挙げられる。また、投入監視カウンタの値が「+4」となるケースとしては、通路センサ28を通過した遊技メダルが投入センサ1、投入センサ2を通過する前に滞留している場合が挙げられる。これらのケースは何れもメダル異常投入エラー(C1エラー)に分類される。そこで、ステップS351でNOと判断された場合には、ステップS348において、ステップS349でセットされたメダル異常投入エラー(C1エラー)の表示要求に基づいてエラー表示のための処理が行われ、獲得枚数表示LED47に「C1」と表示されることとなる。
ステップS352では、メイン制御基板60は、メダル限界枚数をセットする。そして、ステップS353において、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行し、ベット数を読込む。ステップS352〜S353の処理は、図40のステップS277〜S278の処理と同一である。さらに、ステップS354では、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行し、貯留枚数を読込む。
次のステップS355では、ステップS353及びステップS354の処理結果に基づいて、現時点のベット数及び貯留枚数の合計数を算出する。
そして、ステップS356では、遊技メダルの投入を有効とした後に遊技メダルの投入が不可能であるか否かを判断する。具体的には例えば、
「現在のベット数」+「現在の貯留枚数」−49=「メダル限界枚数」
という関係式が成立するか否かを演算することによって、遊技メダルの投入が不可能であるか否かを判断する。
例えば、現在のベット数が「2」で現在の貯留枚数が「50」であるときは、上記した式の左辺の演算結果は「3」となる。これは、本実施形態におけるメダル限界枚数「3」に一致することから、現在通過した遊技メダルの投入後は、遊技メダルのさらなる投入が不可能であると判断する。
なお、ステップS356において遊技メダルの投入が不可能であるか否かを判断するための処理(計算)は、上記の計算式に限られるものではない。また、上記の計算式を採用する場合に、さらに複数の処理(計算)を経て判断するようにしてもよい。例えば、「現在のベット数」が記憶されたアドレスをHLレジスタに読込み(処理1)、「現在の貯留枚数」をAレジスタに読込み(処理2)、HLレジスタに記憶されたデータ(現在のベット数)をAレジスタに加算し(処理3)、処理3の加算によって得られたデータ(Aレジスタ値)と「メダル限界枚数」を比較演算し(処理4)、処理4の比較演算の結果が「0」であった場合には、「現在のベット数」+「現在の貯留枚数」−49=「メダル限界枚数」(上記の計算式)が成立すると判断してもよい。換言すると、ステップS356では、少なくとも「ベット数」と「貯留枚数」とを用いた所定の演算によって、「現在のベット数」+「現在の貯留枚数」−49=「メダル限界枚数」が成立すると判断することが可能となる。
ステップS356において遊技メダルの投入が不可能であると判断した場合は(ステップS356のYES)、ステップS357に進み、ブロッカ29をOFF状態にするためにブロッカOFF(M_BLOCKER_OFF)を実行し、その後、ステップS358に進む。一方、ステップS356において遊技メダルの投入が可能であると判断した場合は(ステップS356のNO)、ステップS357をスキップしてステップS358に進む。すなわち、ステップS356でYESと判断した場合は、ブロッカ信号がOFFになって、OFF状態のブロッカ29によって不許可状態の遊技メダル通路が形成され、ステップS356でNOと判断した場合は、ブロッカ信号はONのままで、ON状態のブロッカ29によって形成された許可状態の遊技メダル通路が維持される。
そして、ステップS358では、メダル手入れ時の出力要求をセットし、次のステップS359では、制御コマンドセット1(R_CMD_SET)を実行する。
次のステップS360では、メイン制御基板60は、現時点でのベット数が所定の限界枚数(上限枚数)に達しているか否かを判断する。ベット数が限界枚数ではないと判断したときは(ステップS360のNO)、ステップS361に進み、図40に示したメダル1枚加算(M_1MEDAL_INC)を実行する。一方、ベット数が限界枚数であると判断したときは(ステップS360のYES)、ステップS362に進み、貯留枚数1枚加算(MS_CREDIT_ADD)を実行する。貯留枚数1枚加算の詳細は、図46に示される。
図46は、貯留枚数1枚加算(MS_CREDIT_ADD)を示すフローチャートである。
図46によれば、まず、ステップS371において、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行する。図38を参照して説明したように、貯留枚数読込みが実行されると、貯留枚数表示データ「_NB_CREDIT_LED」の値が所定のレジスタ(例えばAレジスタ)に記憶され、ゼロチェックが行われる。
次いで、ステップS372では、メイン制御基板60は、ステップS371でAレジスタに記憶した貯留枚数に「1」を加算する。
そして、次のステップS373では、ステップS372の加算後のAレジスタ値(貯留枚数データ)をRWM63に記憶される貯留枚数表示データ「_NB_CREDIT_LED」に記憶し、本フローチャートの処理を終了する。なお、ステップS373では、貯留枚数データを10進数データに変換した値を「_NB_CREDIT_LED」に保存する。
[4−2−3−2.遊技メダル精算]
図47は、遊技メダル精算(M_MEDAL_RET)を示すフローチャートである。
図47によると、まず、ステップS381において、メイン制御基板60は、ブロッカON時監視時間「_TM1_BLON_CHK」が経過したか否かを判断する。具体的には、RWM63のアドレス「F027」に記憶されたブロッカON時監視時間「_TM1_BLON_CHK」のタイマ値が「0」であるとき、ブロッカON時監視時間が経過したと判断し、「0」以外のときはブロッカON時監視時間が経過していないと判断する。
ステップS381においてブロッカON時監視時間が経過したと判断したときは(ステップS381のYES)、ステップS382に進む。一方、ブロッカON時監視時間が経過していないと判断したときは(ステップS381のNO)、本フローチャートの処理を終了する。すなわち、メイン制御基板60は、ブロッカON時監視時間が経過するまでは、以降の精算処理を実行しない。このような制御によって、「遊技メダルの飲み込み」を防止する効果が得られる。詳細は、本フローチャートの全処理を説明した後に説明する。
ステップS382では、メイン制御基板60は、精算開始時の出力要求をセットする。具体的には、精算を開始することを示す情報「0444(H)」をDEレジスタに記憶する。
次のステップS383では、メイン制御基板60は、再遊技作動時であるか否かを判断する。具体的には、RWM63のアドレス「F01F」に記憶される作動状態フラグ「_FL_ACTION」のD0ビット(再遊技)の値が「1(作動)」であるか否かを判断する。再遊技作動時であると判断したときは(ステップS383のYES)、ステップS394に進み、再遊技作動時ではない(再遊技非作動時である)と判断したときは(ステップS383のNO)、ステップS384に進む。
ステップS384では、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行する。この処理によって、RWM63のアドレス「F06D」に記憶された遊技メダル枚数データ「_NB_PLAY_MEDAL」の値が読込まれてAレジスタに記憶される。
そして、ステップS385では、メイン制御基板60は、遊技の用に供する遊技メダル(ベットされた遊技メダル)があるか否かを判断する。具体的には、ステップS384で記憶されたAレジスタ値が「0」以外であるか否かを判断する。Aレジスタ値が「0」である場合は、遊技の用に供する遊技メダルがないと判断し(ステップS385のNO)、ステップS394に進む。Aレジスタ値が「0」以外である場合は、遊技の用に供する遊技メダルがあると判断し(ステップS385のYES)、ステップS386に進む。
ステップS386では、メイン制御基板60は、ブロッカOFF(M_BLOCKER_OFF)を実行し、次のステップS387では、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行する。この処理によって、ステップS382でDEレジスタに記憶された情報(精算開始時の出力要求に係る制御コマンド)「0444(H)」がRWM63の制御コマンドバッファに記憶される。
次に、ステップS388では、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行する。この処理によって、RWM63のアドレス「F06D」に記憶された遊技メダル枚数データ「_NB_PLAY_MEDAL」の値が読込まれてAレジスタに記憶される。
次にステップS389では、メイン制御基板60は、遊技メダルを1枚払い出すメダル1枚払出し(M_1MEDAL_PAY)を実行する。メダル1枚払出しの詳細は、図48及び図49に示される。
そして、ステップS390では、投入表示LED(状態表示LED48e〜状態表示LED48g)において1枚減算する表示を行う。具体的には、RWM63のアドレス「F060」に記憶された投入枚数表示LED信号データ「_PT_MEDAL_LED」のデータを左にシフトさせる演算を行う。
例えば、ベット数が「3」であるとき、投入枚数表示LED信号データ「_PT_MEDAL_LED」は「11100000(B)」となる(D5ビット〜D7ビットが「1」)。このとき、ステップS390の左シフト演算を行うと、「11000000(B)」となり、これはベット数が「2」のときの投入枚数表示LED信号データに相当する(D6ビット、D7ビットが「1」)。また、さらに左シフト演算を行うと、「10000000(B)」となり、これはベット数が「1」のときの投入枚数表示LED信号データに相当する(D7ビットが「1」)。
すなわち、ステップS389のメダル1枚払出し(M_1MEDAL_PAY)の実行によって遊技メダルが1枚払い出されるごとに、ステップS390の左シフト演算を行うことにより、投入枚数表示LEDの点灯状態をベット数「3」、「2」、「1」とすることができる。言い換えれば、「3BET(状態表示LED48g)」、「2BET(状態表示LED48f)」、「1BET(状態表示LED48e)」を順に消灯させることができる(図7参照)。
次に、ステップS391では、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行する。この処理によって、RWM63のアドレス「F06D」に記憶された遊技メダル枚数データ「_NB_PLAY_MEDAL」の値が読込まれてAレジスタに記憶される。
そしてステップS392では、メイン制御基板60は、前述したステップS385と同様に、遊技の用に供する遊技メダル(ベットされた遊技メダル)があるか否かを判断する。遊技の用に供する遊技メダルがないと判断したときは(ステップS392のNO)、ステップS388に戻り、ベット数が「0」になるまでステップS388〜S392の処理を繰り返す。一方、遊技の用に供する遊技メダルがあると判断したときは(ステップS392のYES)、ステップS393に進む。
ステップS393では、メイン制御基板60は、メダル限界フラグをクリアする。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD7ビット(遊技メダル限界判定)をクリアする(「0」にする)。ステップS393の処理後は、ステップS402に進む。
ステップS394は、ステップS383において再遊技作動時であると判断されたとき(YES)、またはステップS385において遊技の用に供する遊技メダルがないと判断されたとき(NO)に実行される処理である。ステップS394では、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行し、貯留枚数を読込む。この処理によって、貯留枚数表示データ「_NB_CREDIT_LED」の値がAレジスタに記憶される。
そして次のステップS395では、貯留メダルの有無を判断する。具体的には、ステップS394で記憶したAレジスタ値が「0」であるときは貯留メダルなしと判断し、Aレジスタ値が「0」ではないときは貯留メダルありと判断する。ステップS395において貯留メダルありと判断したときは(ステップS395のYES)、ステップS396進み、貯留メダルを精算するための処理を開始する。一方、ステップS395において貯留メダルなしと判断したときは(ステップS395のNO)、精算対象の遊技メダルが存在しないので、本フローチャートの処理を終了する。
ステップS396では、メイン制御基板60は、ブロッカOFF(M_BLOCKER_OFF)を実行し、次のステップS397では、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行する。この処理によって、ステップS382でDEレジスタに記憶された情報(精算開始時の出力要求に係る制御コマンド)「0444(H)」がRWM63の制御コマンドバッファに記憶される。
次に、ステップS398では、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行し、貯留枚数を読込む。この処理によって、貯留枚数表示データ「_NB_CREDIT_LED」の値がAレジスタに記憶される。
次いでステップS399では、メイン制御基板60は、メダル1枚払出し(M_1MEDAL_PAY)を実行する。前述したように、メダル1枚払出しの詳細は、図48及び図49に示される。さらに、ステップS400において、メイン制御基板60は、貯留枚数から1枚を減算する貯留枚数1枚減算(M_CREDIT_DEC)を実行する。貯留枚数1枚減算の詳細は、図50に示される。
そして、ステップS401において、メイン制御基板60は、貯留メダルの精算が終了したか否かを判断する。具体的には、ステップS400の貯留枚数1枚減算の実行によってAレジスタに記憶されているデータ(減算後の貯留枚数データ)が「0」であるか否かを判断する。なお、Aレジスタ値の代わりに、貯留枚数表示データ「_NB_CREDIT_LED」に記憶されているデータによって判断してもよい。減算後の貯留枚数データが「0」以外であったときは、貯留メダルの精算が終了していないと判断し(ステップS401のNO)、ステップS398に戻り、減算後の貯留枚数が「0」になるまで(貯留メダルがなくなるまで)ステップS398〜S401の処理を繰り返す。一方、減算後の貯留枚数データが「0」であったときは、貯留メダルの精算が終了したと判断し(ステップS401のYES)、ステップS402に進む。
ステップS402では、メイン制御基板60は、精算終了時の出力要求をセットする。具体的には、精算を終了することを示す情報「0445(H)」をDEレジスタに記憶する。
そしてステップS403では、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行する。この処理によって、ステップS402でDEレジスタに記憶された情報(精算終了時の出力要求に係る制御コマンド)「0445(H)」がRWM63の制御コマンドバッファに記憶される。ステップS403の終了後は、ステップS404に進み、ブロッカON(M_BLOCKER_ON)を実行することによって、ブロッカ29がON状態(許可位置)に制御される。
以上のように、メイン制御基板60は遊技メダル精算(M_MEDAL_RET)を実行するが、本実施形態に係るスロットマシン10では、ステップS381においてブロッカON時監視時間「_TM1_BLON_CHK」が経過した(経過している)場合に、精算処理を実行するようにすることで、精算スイッチ36の操作に伴う「遊技メダルの飲み込み」を防止する効果が得られる。その理由について以下に詳しく説明する。
まず、図15を参照して説明したように、ブロッカON時監視時間「_TM1_BLON_CHK」は、ブロッカ29をON状態(許可位置)からOFF状態(不許可位置)に変更するまでの待機時間を計測するための1バイトタイマであり、「_TM1_BLON_CHK」のタイマ値は、セレクタ通路センサ信号の立ち上がり時(入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビットが「1」となったとき)に、初期値の「45」がセットされ、1割込みごとに「1」ずつ減算する。そして当該タイマ値が「0」となるまでは、ブロッカ29をON状態(許可位置)からOFF状態(不許可位置)に変更する制御が許可されない。
すなわち、本実施形態では、遊技メダル投入口26から遊技メダルが投入されて、遊技メダルセレクタ27において通路センサ28が遊技メダルを検知したときに、ブロッカON時監視時間がセットされ、所定時間(45割込みの約101ms)が経過するまでは、ブロッカ29をOFF状態(不許可位置)に変更できないようにしている。そしてこのブロッカON時監視時間の所定時間は、通路センサ28によって検知された遊技メダルが遊技メダル通路を流下してブロッカ29の設置位置を通過するために十分な時間(より明確には、ブロッカ29を通過して投入センサ30(30a,30b)に検知されるまでに十分な時間)である。別の言い方をすれば、ブロッカON時監視時間の初期値「45」と最終値「0」との時間差は、通路センサ28に検知された遊技メダルが投入センサ30(30a,30b)に検知されるまでに要する時間よりも長く設定される。
そして、遊技メダル精算(M_MEDAL_RET)のステップS281では、上記のようにセットされたブロッカON時監視時間が経過するまではステップS282以降の精算処理を実行しないようにすることで、このタイミングで精算スイッチ36が操作されても遊技メダルが精算されないようにしている。
ここで、仮に、ステップS281の制御が行われない(すなわち、ブロッカON時監視時間による判断をせずに、精算処理を実行可能)とすると、遊技メダル投入口26から投入された遊技メダル(通路センサ28によって検知された遊技メダル)が遊技メダルセレクタ27内を通過中に精算スイッチ36が操作された場合に、図47に示したように精算開始時の出力要求がセットされ(ステップS382)、ブロッカOFF及び制御コマンドセット1が実行される(ステップS386,S387,S396,S397)ことによって、ベットメダルまたは貯留メダルの精算を開始するための準備が行われる。その結果、遊技メダルの投入に基づく投入処理(手入れメダルチェック(MS_INSERT_CHK))が実行されなくなる。
このとき、投入処理が実行されなくても、投入された遊技メダルが、ブロッカOFFに伴って形成される「不許可状態の遊技メダル通路」を通って払出口53から返却されれば、遊技者に不利益にはならない。しかし、ブロッカ29をOFF状態(不許可位置)に変更する制御が間に合わなかった場合には、投入された遊技メダルは、投入処理が行われることなくホッパー50に収容されてしまう。すなわち、精算スイッチ36の操作に伴う「遊技メダルの飲み込み」が発生してしまい、遊技者に不利益を与えることになってしまう。
これに対し、本実施形態では、前述したように、ブロッカON時監視時間がセットされてから所定時間を経過するまでは(「_TM1_BLON_CHK」のタイマ値が「0」でない場合には)、精算スイッチ36の操作に基づく精算処理(遊技メダル精算(M_MEDAL_RET)のステップS282以降の処理)の実行を許可しないようにすることで、精算スイッチ36の操作の直前に投入された遊技メダルに対して、投入処理が確実に行われたうえでホッパー50に収容されるようにしている。つまり、この場合、精算スイッチ36の操作に伴う「遊技メダルの飲み込み」が発生しない。
以上のことをまとめると、本実施形態に係るスロットマシン10は、RWM63の所定タイマの値が特定値(「_TM1_BLON_CHK」のタイマ値が「0」)である場合に、精算スイッチ36の操作に基づく所定の処理(精算処理)を実行可能とすることで、遊技メダルが投入されている状況下において精算スイッチ36が操作された場合であっても、遊技メダルの飲み込みを防止することができる。
より具体的に言えば、本実施形態に係るスロットマシン10は、「_TM1_BLON_CHK」のタイマ値が「0」である状況下で、精算スイッチ36が操作された場合には、貯留メダル(またはベットメダル)の精算が可能となる。
また、本実施形態に係るスロットマシン10は、精算スイッチ36が操作された場合に、メイン制御基板60が「_TM1_BLON_CHK」のタイマ値が「0」であると判断したときには、貯留メダル(またはベットメダル)の精算が可能となる。
また、以上のまとめを換言すれば、本実施形態に係るスロットマシン10は、RWM63の所定タイマの値が特定値(「_TM1_BLON_CHK」のタイマ値が「0」)ではない場合に、精算スイッチ36の操作に基づく所定の処理(精算処理)を実行しないとすることで、遊技メダルが投入されている状況下において精算スイッチ36が操作された場合であっても、遊技メダルの飲み込みを防止することができる。
より具体的に言えば、本実施形態に係るスロットマシン10は、「_TM1_BLON_CHK」のタイマ値が「0」以外である状況下で、精算スイッチ36が操作された場合には、貯留メダル(またはベットメダル)を精算できない。
また、本実施形態に係るスロットマシン10は、精算スイッチ36が操作された場合に、メイン制御基板60が「_TM1_BLON_CHK」のタイマ値が「0」ではないと判断したときには、貯留メダル(またはベットメダル)の精算ができない。
図48,図49は、メダル1枚払出し(M_1MEDAL_PAY)を示すフローチャート(その1,その2)である。なお、図48及び図49に示された[21]〜[25]の表記は、両図面間での対応を示すものであり、図48及び図49によってメダル1枚払出し(M_1MEDAL_PAY)の全体のフローチャートが示される。
図48,図49によれば、まず、ステップS411において、メイン制御基板60は、エラー未検出をセットする。すなわち、初期状態としてエラーを検出していない状態をセットする。
次に、ステップS412において、メイン制御基板60は、メダル詰まりエラーの表示要求をセットする。ここで、メダル詰まりエラーとは、遊技メダル通路等に遊技メダルが詰まったことを示すエラーである。メダル詰まりエラーは、本実施形態では「HPエラー」と称し、メダル詰まりエラーが発生したときには、獲得枚数表示LED47に「HP」と表示する処理を実行する。
次に、ステップS413では、メイン制御基板60は、エラーを検出したか否かを判断する。エラーを検出したと判断したときは(ステップS413のYES)、ステップS414に進み、エラー表示(M_ERROR_DSP)を実行し他の地、ステップS415に進む。エラー表示(M_ERROR_DSP)については、図44のステップS348で説明している。一方、ステップS413においてエラーを検出していないと判断したときは(ステップS413のNO)、ステップS415に進む。
ステップS415では、メイン制御基板60は、遊技メダル払出装置49の制御時間(遊技メダル払出装置制御時間)をセットする。具体的には、RWM63のアドレス「F028」〜「F029」に記憶される遊技メダル払出装置制御時間「_TM2_HE_CHK」の2バイトタイマに、「2686」(2686割込みは、約6000msに相当)をセットし、当該タイマ(制御時間)の計時を開始する。なお、図15を参照しながら前述したように、本実施形態では、「_TM2_HE_CHK」の計時が開始された場合、当該タイマ値が「0」となるまでの間に(すなわち、上記の約6秒が経過するまでに)、遊技メダル払出装置49から遊技メダルが払出しされないと、メダル空エラーと判断されることとなる。換言すると、「_TM2_HE_CHK」のタイマ値に基づいて、メダル空エラーか否かを判断することが可能となる。
次に、ステップS416において、メイン制御基板60は、ホッパーモータ51を駆動するための処理を行う。具体的には、ブロッカ信号及びホッパーモータ駆動信号データ「_PT_BLK_HPM」のD7ビット(ホッパーモータ駆動信号)を「1(ON)」にする。この処理により、次の割込み処理時には、出力ポート3のD7ビット(ホッパーモータ駆動信号)が「1」になる。
次に、ステップS417では、メイン制御基板60は、ステップS415でセットした後の遊技メダル払出装置制御時間「_TM2_HE_CHK」の読込みを行う。そして、ステップS418では、ステップS417で読込んだタイマ値が「0」になっているか否かによって、制御時間が経過したか否かを判断する。タイマ値が「0」の場合は、制御時間を経過したと判断し(ステップS418のYES)、ステップS432に進む。一方、タイマ値が「0」以外の場合は、制御時間を経過していないと判断し(ステップS418のNO)、ステップS419に進む。
ステップS419では、メイン制御基板60は、払出しセンサ1信号に係るデータがONであるか否かを判断する。具体的には例えば、入力ポート2レベルデータ「_PT_IN2_OLD」のD4ビット(払出しセンサ1信号)が「1(ON)」であるか否かを判断する。ONであると判断したときは(ステップS419のYES)、ステップS420に進み、ONではないと判断したときは(ステップS419のNO)、ステップS417に戻る。
ステップS420では、メイン制御基板60は、払出しセンサ1の検出時間(例えば46割込み、約102.8ms)をセットし、当該タイマ(検出時間)の計時を開始する。具体的には、アドレス「F023」の「_TM1_PAY」に「46」が記憶され、タイマ割込み処理により「1」ずつ更新(減算)される。
次に、ステップS421において、メイン制御基板60は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときは(ステップS421のYES)、ステップS412に進み、前述したようにメダル詰まりエラーの表示要求をセットする。一方、メダル詰まりを検出していないと判断したときは(ステップS421のNO)、ステップS422に進む。
ステップS422では、メイン制御基板60は、払出しセンサ1信号に係るデータがONであるか否かを判断する。具体的には例えば、入力ポート2レベルデータ「_PT_IN2_OLD」のD4ビット(払出しセンサ1信号)が「1(ON)」であるか否かを判断する。ONであると判断したときは(ステップS422のYES)、ステップS423に進み、ONではないと判断したときは(ステップS422のNO)、ステップS417に戻る。
ステップS423では、メイン制御基板60は、払出しセンサ1信号及び払出しセンサ2信号に係るデータがONであるか否かを判断する。具体的には例えば、入力ポート2レベルデータ「_PT_IN2_OLD」のD4ビット(払出しセンサ1信号)及びD3ビット(払出しセンサ2信号)が「1(ON)」であるか否かを判断する。上記のD3ビット及びD4ビットが何れも「1」である場合は、払出しセンサ1信号及び払出しセンサ2信号に係るデータがONであると判断し(ステップS423のYES)、ステップS424に進む。上記のD3ビットまたはD4ビットの少なくとも1つが「1」ではなかった場合は、払出しセンサ1信号及び払出しセンサ2信号に係るデータがONではないと判断し(ステップS423のNO)、ステップS421に戻る。
ステップS424では、メイン制御基板60は、払出しセンサ2の検出時間をセットし、当該タイマ(検出時間)の計時を開始する。なお、図示はしていないが、RWM63の1バイトタイマ記憶領域に検出時間に対応する割込み回数(例えば、「23」)を記憶する記憶領域を有していても良い。
次に、ステップS425では、メイン制御基板60は、ステップS421と同様に、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときは(ステップS425のYES)、ステップS412に進み、メダル詰まりエラーの表示要求をセットする。一方、メダル詰まりを検出していないと判断したときは(ステップS425のNO)、ステップS426に進む。
ステップS426では、メイン制御基板60は、払出しセンサ2信号に係るデータがOFFであるか否かを判断する。具体的には例えば、入力ポート2レベルデータ「_PT_IN2_OLD」のD3ビット(払出しセンサ2信号)が「0(OFF)」であるか否かを判断する。OFFであると判断したときは(ステップS426のYES)、ステップS427に進み、OFFではないと判断したときは(ステップS426のNO)、ステップS425に戻る。
ステップS427では、メイン制御基板60は、メダル払出しが無効であるか否かを判断する。無効であると判断したときは(ステップS427のYES)、ステップS417に戻り、無効ではないと判断したときは(ステップS427のNO)、ステップS428に進む。
ステップS428では、メイン制御基板60は、払出しセンサ1信号に係るデータがOFFであるか否かを判断する。具体的には例えば、入力ポート2レベルデータ「_PT_IN2_OLD」のD4ビット(払出しセンサ1信号)が「0(OFF)」であるか否かを判断する。OFFであると判断したときは(ステップS428のYES)、ステップS429に進み、OFFではないと判断したときは(ステップS428のNO)、ステップS425に戻る。
ステップS429では、メイン制御基板60は、残り払出し数(カウント値)を「1」減算する。次に、ステップS430において、メダル払出しを終了したか否かを判断する。メダル払出しを終了したと判断したときは(ステップS430のYES)、ステップS431に進み、終了していないと判断したときは(ステップS430のNO)、本フローチャートの処理を終了する。
ステップS431では、メイン制御基板60は、ホッパーモータ51の駆動信号をOFFにするための処理を行う。具体的には、ブロッカ信号及びホッパーモータ駆動信号データ「_PT_BLK_HPM」のD7ビット(ホッパーモータ駆動信号)を「0(OFF)」にする。この処理により、次の割込み処理時には、出力ポート3のD7ビット(ホッパーモータ駆動信号)が「0」になる。メイン制御基板60は、ステップS431の処理後、本フローチャートの処理を終了する。
なお、前述したように、ステップS418において遊技メダル払出装置制御時間が経過したと判断した場合には(ステップS418のYES)、ステップS432の処理が行われる。
ステップS432では、メイン制御基板60は、ステップS431と同様に、ホッパーモータ51の駆動信号をOFFにするための処理を行う。そして、次のステップS433では、ステップS420と同様に、払出センサ1の検出時間をセットし、当該タイマ(検出時間)の計時を開始する。
次いで、ステップS434では、メイン制御基板60は、払出しセンサ1信号に係るデータがONであるか否かを判断する。具体的な処理は、例えばステップS419と同様である。ステップS434において払出しセンサ1信号に係るデータがONであると判断したときは(ステップS434のYES)、ステップS414に進む。一方、払出しセンサ1信号に係るデータがONではないと判断したときは(ステップS434のNO)、ステップS435に進む。
ステップS435では、メイン制御基板60は、ステップS433(またはステップS420)で計時を開始した払出しセンサ1の検出時間が所定時間を経過したか否か、すなわちタイマ値が「0」になったか否かを判断する。所定時間を経過したと判断したときは(ステップS435のYES)、ステップS436に進み、所定時間を経過していないと判断したときは(ステップS435のNO)、ステップS434に戻る。
ここで、ステップS435でYESと判断された場合とは、遊技メダル払出装置49の制御時間が経過したタイミングにおいて、払出センサ1の検出時間が経過したにも拘わらず、払出センサ1が遊技メダルを検知していない、すなわち、遊技メダルが払い出されていないことを意味する。したがって、ステップS436では、メダル空エラーの表示要求をセットする。ここで、メダル空エラーとは、本実施形態では「HEエラー」と称し、メダル空エラーが発生したときには、獲得枚数表示LED47に「HE」と表示する処理を実行する。ステップS436の処理後は、ステップ413に進む。
以上のようにして、メイン制御基板60は、1枚の遊技メダルを払出す処理を行う。
図50は、貯留枚数1枚減算(M_CREDIT_DEC)を示すフローチャートである。
図50によれば、まず、ステップS441において、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行する。図38を参照して説明したように、貯留枚数読込みが実行されると、貯留枚数表示データ「_NB_CREDIT_LED」の値が所定のレジスタ(例えばAレジスタ)に記憶され、ゼロチェックが行われる。
次いで、ステップS442では、メイン制御基板60は、ステップS441でAレジスタに記憶した貯留枚数から「1」を減算する。このとき、減算後のデータを10進数に変換し、変換したデータをAレジスタに記憶する。
そして、次のステップS443では、ステップS442の減算後に記憶されたAレジスタ値(貯留枚数データ)をRWM63に記憶される貯留枚数表示データ「_NB_CREDIT_LED」に記憶し、本フローチャートの処理を終了する。なお、ステップS443では、ステップS442で10進数に変換したデータが「_NB_CREDIT_LED」に保存される。
[4−2−3−3.貯留ベット処理]
図51は、貯留ベット処理(MS_BET_IN)を示すフローチャートである。
図51によれば、まず、ステップS451において、メイン制御基板60は、遊技メダル管理フラグ「_FL_MEDAL_STS」のD7ビット(遊技メダル限界判定)を読み込むことにより、メダル限界フラグがオン(「1(限界)」)であるか否かを判断する。メダル限界フラグがオンであると判断したときは(ステップS451のYES)、ベット数がすでに最大枚数であることを意味するので、本フローチャートによる貯留ベット処理を終了する。すなわち、図43に示したメダル管理(MS_MEDAL_CHK)のステップS320においてベットスイッチ33の操作を検知して本フローチャートに移行したとしても(ステップS320のNOからステップS323への移行)、ベット数がすでに最大枚数であるときは、貯留ベット処理を行わず、メイン処理に戻る。
一方、ステップS451においてメダル限界フラグがオンであると判断したときは(ステップS451のYES)、ステップS452に進み、ベット(投入)要求枚数として「1」をセットする。具体的にはBレジスタに「1」を記憶する。
次に、ステップS453では、メイン制御基板60は、1ベットスイッチ33aが操作されたか否か(立ち上がりの有無)を判断する。具体的には、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)が「1(ON)」であるか否かを判断する。1ベットスイッチ33aが操作されたと判断したときは(ステップS453のYES)、ステップS458に進み、1ベットスイッチ33aが操作されていないと判断したときは(ステップS453のNO)、ステップS454に進む。
なお、ステップS453以前に行われる処理(図43のステップS317,S320)において、何れかのベットスイッチ33の操作が検知されているため、ステップS453でNOと判断した場合は、3ベットスイッチ33bが操作されたと判断したことを意味する。
ステップS454では、メイン制御基板60は、メダル限界枚数をセットする。例えば通常遊技では、Cレジスタにメダル限界枚数「3」を記憶する。
そして次のステップS455では、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行し、ベット数を読込む。この処理によって、遊技メダル枚数データ「_NB_PLAY_MEDAL」の値がAレジスタに記憶される。また、ステップS454では、遊技メダル枚数データ「_NB_PLAY_MEDAL」のアドレス「F06D」をHLレジスタに記憶する。
次いで、ステップS456では、メイン制御基板60は、ベット要求枚数をセットする。具体的にはまず、Cレジスタ値をAレジスタに記憶する。ステップS454で述べたようにメダル限界枚数を「3」とする場合、Aレジスタ値は「3」となる。さらに、Aレジスタ値(メダル限界枚数)からHLレジスタが示すアドレスのデータ(ベット数)を減算し、その結果をAレジスタに記憶する。上記例において、ベット数(すでにベットされている遊技メダルの枚数)が「1」ならば、Aレジスタ値は「2」に更新される。このような演算によって算出された値(Aレジスタ値)が、新たにベットとして加算される遊技メダルの枚数になる。
次に、ステップS457では、ベット要求枚数を修正する処理として、ステップS456で算出した値を、ベット要求枚数としてセットする。具体的には、Aレジスタ値をBレジスタに記憶する。
上記ステップS451〜S457の処理をまとめると、ステップS452において初期値としてベット要求枚数を「1」としてBレジスタにセットし、1ベットスイッチ33aの操作時には(ステップS453でYESと判断した場合)、セットしたベット要求枚数をそのままとする(すなわちBレジスタ値は「1」)一方、3ベットスイッチ33bの操作時には(ステップS453でNOと判断した場合)、新たにベットとして加算される遊技メダルの枚数をステップS456で演算し、ステップS457において演算結果をベット要求枚数に再セットする(上記例ではBレジスタ値を「2」とする)ものである。
次に、ステップS458では、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行し、貯留枚数を読込む。この処理によって、貯留枚数表示データ「_NB_CREDIT_LED」の値がAレジスタに記憶される。
そして、ステップS459では、貯留メダルの有無を判断する。具体的には、ステップS458で記憶したAレジスタ値が「0」であるときは貯留メダルなしと判断し、Aレジスタ値が「0」ではないときは貯留メダルありと判断する。ステップS459において貯留メダルありと判断したときは(ステップS459のYES)、ステップS460に進み、ステップS459において貯留メダルなしと判断したときは(ステップS459のNO)、本フローチャートの処理を終了する。
ステップS460では、メイン制御基板60は、1ベットスイッチ33aが操作されたか否か(立ち上がりの有無)を判断する。具体的には、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)が「1(ON)」であるか否かを判断する。1ベットスイッチ33aが操作された(立ち上がりがある)と判断したときは(ステップS460のYES)、ステップS461を経てステップS462に進み、1ベットスイッチ33aが操作されていない(立ち上がりがない)と判断したときは(ステップS460のNO)、ステップS461を行わずにステップS462に進む。
ステップS461では、メイン制御基板60は、1ベットスイッチ信号の立ち上がりデータをクリアする。具体的には、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)を「0」にする処理を実行する。すなわち、ステップS460において1ベットスイッチ33aの操作を検知した場合は、立ち上がりデータをクリアした後に、ステップS462以降の貯留ベット処理を実行する。
ここで、上記のようにステップS461において1ベットスイッチ信号の立ち上がりデータ(1ベットスイッチ33aに係る立ち上がりデータ)をクリアする理由について、以下に詳しく説明する。
まず、前述したように、入力ポート0〜2の立ち上がりデータは、割込み処理によって生成され、記憶される。
一方、ベット処理を実行する場合には、割込み処理によって生成・記憶した1ベットスイッチ33aに係る立ち上がりデータ(「_PT_IN1_UP」の1ベットスイッチ信号)を、メイン処理内でクリアする処理を実行する。ここで、1ベットスイッチ33aに係る立ち上がりデータをクリアしなかった場合には、再度割込み処理が実行されるまで、1ベットスイッチ33aに係る立ち上がりデータ「1」が維持される。このような場合に、次の割込み処理が実行されて1ベットスイッチ33aに係る立ち上がりデータが「0」に更新される前に、図43に示したメダル管理(MS_MEDAL_CHK)のステップS317でベットスイッチ33の立ち上がりがあると判断して(YES)、貯留ベット処理(MS_BET_IN)が再度実行された場合には、1ベットスイッチ信号の立ち上がりデータが「1」であることに基づいて、再度、1枚の貯留ベット処理が実行されてしまう。すなわち、このとき、遊技者が1ベットスイッチ33aを操作して1枚の遊技メダルをベットしようとしたとき、連続して2枚や3枚の遊技メダルがベットされてしまう可能性がある。
このような不都合を回避するために、本実施形態では、貯留メダルがある場合には、ステップS462以降の貯留ベット処理の開始前に、1ベットスイッチ33aに係る立ち上がりデータをクリアしている。
なお、本実施形態では、1ベットスイッチ33aに係る立ち上がりデータのみをクリアし、3ベットスイッチ33bが操作されたときには、3ベットスイッチ33bに係る立ち上がりデータ(「_PT_IN1_UP」の3ベットスイッチ信号)をクリアする処理は実行していない。その理由は以下の通りである。
本実施形態では、3ベットスイッチ33bの操作に基づいて3枚の貯留メダルがベットされたときは、その後、後述するステップS466で実行されるメダル1枚加算(M_1MEDAL_INC)において、メダル限界フラグがセットされる(図40のステップS280)。このように制御することにより、仮に、上記した1ベットスイッチ信号のクリアに関する説明での具体例と同様に、次に割込み処理が実行されるまで、3ベットスイッチ33b信号の立ち上がりデータ「1」が維持され、図43に示したメダル管理(MS_MEDAL_CHK)のステップS317でベットスイッチ33の立ち上がりがあると判断して(YES)、貯留ベット処理(MS_BET_IN)が再度実行されたとしても、前述のステップS451においてメダル限界フラグがオンであると判断されることで(YES)、貯留ベット処理が実行されないようになっている。
また、例えば3ベットスイッチ33bが操作される前のベット数が「0」、貯留枚数が「2」であったときは、3ベットスイッチ33bの操作に基づいて、ベット数が「2」となる。このとき、ベット数は、未だ限界枚数となっていないので、メダル限界フラグは「1」にならない。この状態において、3ベットスイッチ33b信号の立ち上がりデータがクリアされておらず、次の割込み処理が実行される前に、再度、貯留ベット処理(MS_BET_IN)が実行されたとしても、ステップS451では「NO」と判断されるが、ステップS459で「NO」と判断されるため、ステップS460以降の処理が実行されることはない。
以上のことから、本実施形態では、3ベットスイッチ33bに係る立ち上がりデータをクリアしなくても、1ベットスイッチ信号の具体例のように、想定以上の貯留ベットが行われることは防止される。すなわち、本実施形態では、少なくとも1ベットスイッチ33aに係る立ち上がりデータをクリアしておけばよく、3ベットスイッチ33bに係る立ち上がりデータのクリアは必ずしも必要ではない。
しかし、3ベットスイッチ33bに係る立ち上がりデータを「1」のままにしておくと、次に割込み処理が実行されるまで、3ベットスイッチ40b信号の立ち上がりデータが「1」であることに基づいて、貯留ベット処理が実行されてしまう(図51の処理に移行する)ことはたしかである。そこで本実施形態では、これを避けるために、3ベットスイッチ33b信号の立ち上がりデータについてもクリアするようにしてもよい。具体的には、ステップS460の処理を、「1ベットスイッチ信号の立ち上がりデータを有するか否かの判断」に代えて、3ベットスイッチ33b信号の立ち上がりデータのクリア処理にすればよい。3ベットスイッチ33b信号の立ち上がりデータのクリア処理は、入力ポート1の立ち上がりデータ(_PT_IN1_UP)のD3ビットを「0」にする処理である。また、その他の方法として、入力ポート1の立ち上がりデータを記憶しているRWM63の1アドレス「F00B」をクリアする処理を採用してもよい。
また、「1ベットスイッチ信号の立ち上がりデータ」又は「3ベットスイッチ信号の立ち上がりデータ」をクリアする方法として、他の方法を採用してもよい。「1ベットスイッチ信号の立ち上がりデータ」を例にすると、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)が「1(ON)」であるか否かを判断した後、再度、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)が「1(ON)」であるか否かを判断するまでの間に、少なくとも1回の割込み処理が実行されるようなウェイト処理を実行するようにしてもよい。このようにすると、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)が「1(ON)」である状況下において、ウェイト処理の実行中に次の割込み処理が実行されることにより、入力ポート1立ち上がりデータ「_PT_IN1_UP」のD4ビット(1ベットスイッチ信号)が「0(OFF)」となるため、「1ベットスイッチ信号の立ち上がりデータ」を確実にクリアすることができる。これにより、1ベットスイッチを1回操作した場合に、複数ベットがなされてしまうことを防止できる。
貯留ベット処理における各ステップの説明に戻る。
ステップS462では、メイン制御基板60は、ステップS458で読込んだ貯留枚数が、ステップS452またはステップS457でセットしたベット要求枚数以上であるか否かを判断する。具体的には、Aレジスタ値(貯留枚数)からBレジスタ値(ベット要求枚数)を減算する処理を実行し、演算結果が「0」以上であるか否かを判断する。上記演算結果が「0」以上を示した場合は、貯留枚数がベット要求枚数以上であると判断し(ステップS462のYES)、ステップS464に進む。一方、上記演算結果が「0」未満を示した場合は、貯留枚数がベット要求枚数以上ではないと判断し(ステップS462のNO)、ステップS463を経てステップS464に進む。
ステップS463では、メイン制御基板60は、遊技メダルの貯留枚数をセットする。この処理は、全貯留枚数を別途加算枚数に設定する処理である。すなわち、ステップS462でNOと判断したときは、貯留枚数がベット枚数に満たない場合を意味するので、全貯留枚数をベット加算枚数とする処理を行う。具体的には、Aレジスタ値(貯留枚数)をBレジスタに記憶する。ステップS463の処理後はステップS464に進む。
ここで、ベット加算枚数について、以上のステップS463までの処理をまとめる。
ステップS453でYESと判断されたとき(1ベットスイッチ33aの操作時)には、ステップS452でセットしたベット要求枚数「1」がベット加算枚数としてBレジスタに記憶される。また、ステップS457において例えばベット要求枚数「3」がセットされ、ステップS462でYES(ベット要求枚数以上の貯留枚数がある)と判断された場合は、ベット要求枚数「3」がベット加算枚数としてBレジスタに記憶される。また、ステップS457において例えばベット要求枚数「3」がセットされたものの、貯留枚数が「2」であるときは、ステップS462でNO(貯留枚数がベット要求枚数に満たない)と判断され、ステップS463の処理によって「2」がベット加算枚数としてBレジスタに記憶される。
このように、ベット加算枚数(ベット要求枚数)とは、ベットスイッチ33が操作されたときに演出結果に基づいて実際にベットされる枚数を指す。
ステップS464では、メイン制御基板60は、貯留ベット時の出力要求をセットする。具体的には、制御コマンドデータ(例えば「10(H)」)をDレジスタに記憶し、Bレジスタ値をEレジスタに記憶する。ここでDレジスタ値は、貯留ベットに係ることを示す制御コマンドとなり、Eレジスタ値は、ベット加算枚数を示す制御コマンドとなる。
次にステップS465では、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行する。具体的には、制御コマンドバッファに制御コマンドデータ(DEレジスタ値)を書込む処理が行われる。
そして、ステップS466では、メイン制御基板60は、図40に示したメダル1枚加算(M_1MEDAL_INC)を実行する。メダル1枚加算処理が実行されると、遊技メダル枚数データ「_NB_PLAY_MEDAL」の値に「1」が加算される。
次に、ステップS467では、メイン制御基板60は、貯留枚数1枚減算(M_CREDIT_DEC)を実行し、貯留枚数を1枚減算する。貯留枚数1枚減算の詳細は、図50に示される。
そして、ステップS468では、メイン制御基板60は、要求枚数のベットが終了したか否かを判断する。具体的には、Bレジスタ値(ベット要求枚数)から「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」であるときは、要求枚数のベットが終了したと判断し(ステップS468のYES)、ステップ472に進む。一方、減算後のBレジスタ値が「0」ではないときは、要求枚数のベットが終了していないと判断し(ステップS468のNO)、ステップS469に進む。
ステップS469では、メイン制御基板60は、ブロッカOFF(M_BLOCKER_OFF)を実行する。そして、ステップS470において貯留ベット時の待機時間をセットする。具体的には例えば、割込み数のカウント値として「46」をセットする。そして、ステップS471では、1割込みごとにカウント値から「1」を減算していき、カウント値が「0」になるまでウェイト処理を実行する。そしてウェイト処理の終了後、ステップS466に戻る。なお、ステップS470における貯留ベット時の待機時間は、RWM63の1バイトタイマ記憶領域(図15や図59参照)の所定の記憶領域に記憶されるように構成してもよい。
なお、ステップS469でブロッカ29をOFF状態に制御するための処理が行われるのは、メダル1枚加算(M_1MEDAL_INC)を繰り返すときにウェイト処理が設定されており、このウェイト処理中に遊技メダルが手入れ投入されてしまった場合に「遊技メダルの飲み込み」が発生してしまうことを避けるためである。
以上のようにして、2枚以上の遊技メダルをベットするときは、ステップS466のメダル1枚加算(M_1MEDAL_INC)とステップS471のウェイト処理とを繰り返す。このようにウェイト処理を挟んで処理を繰り返すことにより、例えば3ベットスイッチ33bの操作に基づいて遊技メダル3枚をベットするときに、一瞬で3枚がベットされてしまう(一瞬で投入表示LED(状態表示LED48e〜状態表示LED48g)が点灯してしまう)のではなく、1枚ベットするごとに順に投入表示LEDが追加点灯していくようにすることができる。
そして、最終的にはメイン制御基板60は、ステップS468において要求枚数のベットが終了したと判断すると(ステップS468のYES)、ステップ472において、ブロッカ29をON状態(許可位置)に制御するために、ブロッカON(M_BLOCKER_ON)を実行する。そして、本フローチャートの処理を終了する。ステップS472の処理が行われることにより、貯留ベット処理の処理後はブロッカ29がON状態となるので、遊技メダルの手入れ投入が可能となる。
なお、図51では、ステップS461で1ベットスイッチ33aに係る立ち上がりデータをクリアした後に、ステップS466〜S471においてメダル1枚加算処理をベット加算枚数が「0」になるまで繰り返したが、これらの処理の実行順序を逆にしてもよい。また、本実施形態では、次のベット処理(再度の貯留ベット処理)が実行される前までに、ベットスイッチ33(特に1ベットスイッチ33a)に係る立ち上がりデータをクリアすればよい。
[4−2−4.スタートスイッチチェック]
図52は、スタートスイッチチェック(M_START_CHK)を示すフローチャートである。「スタートスイッチチェック」は、図34に示したメイン処理中のステップS38で実行されるサブルーチンである。
図52によれば、まず、ステップS481において、メイン制御基板60は、投入または払出しに関するセンサ異常をチェックする。具体的には、RWM63のアドレス「F013」に記憶されるサブ報知フラグ2「_FL_SUB_INF2」のD4ビット(CHエラー)、D5ビット(C0エラー)、D6ビット(H0エラー)の何れかが「1(検出時)」を示しているか否かを判断する。D4〜D6ビットの何れかが「1」であった場合は、検出されたエラーに基づいて、エラー表示(M_ERROR_DSP)の処理を実行する。エラー表示(M_ERROR_DSP)については、図44のステップS348で前述した通りである。
次に、ステップS482では、(ベット数が)遊技状態に応じた規定数に一致しているか否かを判断する。ベット数が遊技状態に応じた規定数に一致していると判断したときは(ステップS482のYES)、ステップS483に進む。一方、ベット数が遊技状態に応じた規定数に一致していないと判断したときは(ステップS482のNO)、スタートスイッチ34への操作を受け付けられない状況を意味するので、本フローチャートの処理を終了し、メイン処理(図34)におけるステップS33の処理に戻る。
ステップS483では、メイン制御基板60は、ブロッカON時監視時間が経過したか否かを判断する。具体的には、RWM63のアドレス「F027」に記憶されたブロッカON時監視時間「_TM1_BLON_CHK」のタイマ値が「0」であるとき、ブロッカON時監視時間が経過したと判断し、「0」以外のときはブロッカON時監視時間が経過していないと判断する。
ステップS483においてブロッカON時監視時間が経過していると判断したときは(ステップS483のYES)、ステップS484に進む。一方、ブロッカON時監視時間が経過していないと判断したときは(ステップS483のNO)、ステップS487に進む。ステップS487については後述するが、ステップS483でNOと判断したときは、スタートスイッチ34の操作を受付可能とする処理(具体的には、後述するステップS486におけるスタートスイッチ受付許可フラグのセット)が行われずに、本フローチャートの処理を終了する。すなわち、メイン制御基板60は、ブロッカON時監視時間が経過するまでは、スタートスイッチ34の操作が有効とされず(受け付けられず)、スタートスイッチ34の操作に基づく処理は実行されない。このような制御によって、「遊技メダルの飲み込み」を防止する効果が得られる。詳細は、本フローチャートの全処理を説明した後に説明する。
ステップS484では、メイン制御基板60は、スタートスイッチ34の操作受付が可能であるかのチェックを行う。この処理では、スタートスイッチ34以外の操作スイッチ(例えば、ベットスイッチ32、ストップスイッチ35、精算スイッチ36の何れか)が操作中であるか否かを確認する。スタートスイッチ34以外の操作スイッチが操作されていない場合には、スタートスイッチ操作受付可能と判断し(ステップS484のYES)、ステップS486に進む。スタートスイッチ34以外の操作スイッチが操作中である場合には、スタートスイッチ操作受付不可能と判断し(ステップS484のNO)、ステップS487に進む。
ステップS486は、ブロッカON時監視時間が経過したと判断された場合(ステップS483のYES)、かつ、スタートスイッチ操作受付可能と判断された場合(ステップS485のYES)に実行される処理である。ステップS486において、メイン制御基板60は、スタートスイッチ受付許可フラグをセットする。具体的には、RWM63のアドレス「F01E」に記憶される遊技メダル管理フラグ「_FL_MEDAL_STS」のD0ビット(スタートスイッチ受付状態)を「1(許可)」とする。
このステップS486の処理が行われることにより、次の割込み処理の実行時にLED表示制御が行われると、遊技開始LED(状態表示LED48d)が点灯する。すなわち、スタートスイッチ34が有効であること(スタートスイッチ34の操作を受付可能な状態であること)をランプで報知可能となる。ステップS486の終了後は、本フローチャートの処理を終了し、メイン処理に戻る。
一方、ステップS487は、ブロッカON時監視時間が経過していないと判断された場合(ステップS483のNO)、あるいは、スタートスイッチ操作受付不可能と判断された場合(ステップS485のNO)に実行される処理である。このような場合は何れも、スタートスイッチ34を有効にするべき状況ではないため、ステップS487において、メイン制御基板60は、スタートスイッチ受付許可フラグをクリアする。具体的には、RWM63のアドレス「F01E」に記憶される遊技メダル管理フラグ「_FL_MEDAL_STS」のD0ビット(スタートスイッチ受付状態)を「0(禁止)」とする。
このステップS487の処理が行われることにより、次の割込み処理の実行時にLED表示制御が行われると、遊技開始LED(状態表示LED48d)が消灯する。すなわち、スタートスイッチ34が有効ではないこと(操作を受付不可能な状態)をランプで報知可能となる。ステップS487の終了後は、本フローチャートの処理を終了し、メイン処理に戻る。
以上のように、メイン制御基板60はスタートレバーチェック(M_START_CHK)を実行するが、本実施形態に係るスロットマシン10では、ステップS483においてブロッカON時監視時間「_TM1_BLON_CHK」が経過した(経過している)場合に、他の操作スイッチが操作中でなければ(ステップS485のYES)、スタートスイッチ34の操作を受付可能とする(ステップS486)ことで、スタートスイッチ34の操作に基づく処理を実行可能とする。このような制御によって、スタートスイッチ34の操作に伴う「遊技メダルの飲み込み」を防止する効果が得られる。その理由について以下に詳しく説明する。
まず、図15を参照して説明したように、ブロッカON時監視時間「_TM1_BLON_CHK」は、ブロッカ29をON状態(許可位置)からOFF状態(不許可位置)に変更するまでの待機時間を計測するための1バイトタイマであり、「_TM1_BLON_CHK」のタイマ値は、セレクタ通路センサ信号の立ち上がり時(入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビットが「1」となったとき)に、初期値の「45」がセットされ、1割込みごとに「1」ずつ減算する。そして当該タイマ値が「0」となるまでは、ブロッカ29をON状態(許可位置)からOFF状態(不許可位置)に変更する制御が許可されない。
すなわち、本実施形態では、遊技メダル投入口26から遊技メダルが投入されて、遊技メダルセレクタ27において通路センサ28が遊技メダルを検知したときに、ブロッカON時監視時間がセットされ、所定時間(45割込みの約101ms)が経過するまでは、ブロッカ29をOFF状態(不許可位置)に変更できないようにしている。そしてこのブロッカON時監視時間の所定時間は、通路センサ28によって検知された遊技メダルが遊技メダル通路を流下してブロッカ29の設置位置を通過するために十分な時間(より明確には、ブロッカ29を通過して投入センサ30(30a,30b)に検知されるまでに十分な時間)である。別の言い方をすれば、ブロッカON時監視時間の初期値「45」と最終値「0」との時間差は、通路センサ28に検知された遊技メダルが投入センサ30(30a,30b)に検知されるまでに要する時間よりも長く設定される。
そして、スタートレバーチェック(M_START_CHK)のステップS483では、上記のようにセットされたブロッカON時監視時間が経過するまでは、他の操作スイッチの操作状況に関わりなく、スタートスイッチ34の操作を受付可能とする処理(ステップS486)を実行しないことで、このタイミングでスタートスイッチ34が操作されても、スタートスイッチ34の操作に基づく処理が実行されないようにしている。
ここで、仮に、ステップS483の制御が行われない(すなわち、ブロッカON時監視時間による判断が行われない)とすると、遊技メダル投入口26から投入された遊技メダルが通路センサ28によって検知されたとしても、図52に示したように、スタートスイッチ34以外の操作スイッチ(例えば、ベットスイッチ32、ストップスイッチ35、精算スイッチ36の何れか)が操作中でなければ(ステップS485のYES)、スタートスイッチ受付許可フラグのセットが行われてスタートスイッチ34の操作が受付可能となる(ステップS486)。
このような状況下で、上記遊技メダルが遊技メダルセレクタ27内を通過中にスタートスイッチ34が操作された場合には、メイン処理(M_MAIN)においてスタートスイッチ34が操作されたと判断され(図34のステップS39のYES)、スタートスイッチ34の操作に基づくスタートスイッチ受付け(M_START_CTL)等が実行されることになる(ステップS40)ため、遊技メダルの投入に基づく投入処理(手入れメダルチェック(MS_INSERT_CHK))が実行されなくなる。なお、スタートスイッチ受付け(M_START_CTL)ではブロッカOFF(M_BLOCKER_OFF)が実行される(図53のステップS494)。
このとき、投入処理が実行されなくても、投入された遊技メダルが、ブロッカOFFに伴って形成される「不許可状態の遊技メダル通路」を通って払出口53から返却されれば、遊技者に不利益にはならない。しかし、ブロッカ29をOFF状態(不許可位置)に変更する制御が間に合わなかった場合には、投入された遊技メダルは、投入処理が行われることなくホッパー50に収容されてしまう。すなわち、スタートスイッチ34の操作に伴う「遊技メダルの飲み込み」が発生してしまい、遊技者に不利益を与えることになってしまう。
これに対し、本実施形態では、前述したように、ブロッカON時監視時間がセットされてから所定時間を経過するまでは(「_TM1_BLON_CHK」のタイマ値が「0」でない場合には)、スタートスイッチ34の操作が有効とされず(スタートスイッチ受付許可フラグがセットされず)、スタートスイッチ34の操作に基づく処理が実行されないようにすることで、スタートスイッチ34の操作の直前に投入された遊技メダルに対して、投入処理が確実に行われたうえでホッパー50に収容されるようにしている。つまり、この場合、スタートスイッチ34の操作に伴う「遊技メダルの飲み込み」が発生しない。
以上のことをまとめると、本実施形態に係るスロットマシン10は、RWM63の所定タイマの値が特定値(「_TM1_BLON_CHK」のタイマ値が「0」)である場合に、スタートスイッチ34の操作に基づく所定の処理(スタートスイッチ受付け(M_START_CTL))を実行可能とすることで、遊技メダルが投入されている状況下においてスタートスイッチ34が操作された場合であっても、遊技メダルの飲み込みを防止することができる。
より具体的に言えば、本実施形態に係るスロットマシン10は、「_TM1_BLON_CHK」のタイマ値が「0」である状況下で、スタートスイッチ34が操作された場合には、スタートスイッチ34の操作に基づく処理(役抽選用の乱数取得やリール回転開始等)が実行可能となる。「スタートスイッチ34の操作に基づく処理」の具体的内容は、例えば図53のステップS491,S496,S498や、図34のステップS41,S42等に示されている。
また、本実施形態に係るスロットマシン10は、スタートスイッチ34が操作された場合に、メイン制御基板60が「_TM1_BLON_CHK」のタイマ値が「0」であると判断したときには、スタートスイッチ34の操作に基づく処理(役抽選用の乱数取得やリール回転開始等)が実行可能となる。
また、以上のまとめを換言すれば、本実施形態に係るスロットマシン10は、RWM63の所定タイマの値が特定値(「_TM1_BLON_CHK」のタイマ値が「0」)ではない場合に、スタートスイッチ34の操作に基づく所定の処理(役抽選用の乱数取得やリール回転開始等)を実行しないとすることで、遊技メダルが投入されている状況下においてスタートスイッチ34が操作された場合であっても、遊技メダルの飲み込みを防止することができる。
より具体的に言えば、本実施形態に係るスロットマシン10は、「_TM1_BLON_CHK」のタイマ値が「0」以外である状況下で、スタートスイッチ34が操作された場合には、スタートスイッチ34の操作に基づく処理(役抽選用の乱数取得やリール回転開始等)を実行しない。
また、本実施形態に係るスロットマシン10は、スタートスイッチ34が操作された場合に、メイン制御基板60が「_TM1_BLON_CHK」のタイマ値が「0」ではないと判断したときには、スタートスイッチ34の操作に基づく処理(役抽選用の乱数取得やリール回転開始等)を実行しない。
[4−2−5.スタートスイッチ受付け]
図53は、スタートスイッチ受付け(M_START_CTL)を示すフローチャートである。「スタートスイッチ受付け」は、図34に示したメイン処理中のステップS40で実行されるサブルーチンである。
図53によれば、まず、ステップS491において、メイン制御基板60は、内蔵乱数をMPUのレジスタ(乱数ソフトラッチレジスタ)に記憶する。なお、ステップS491の処理は、乱数のラッチ(取得)であり、取得した乱数が当選役に相当する乱数であるか否かの判定は、図34のステップS41(役抽選処理)で行われる。
次のステップS492では、メイン制御基板60は、スタートスイッチ34の受付け許可フラグをクリアする。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD0ビット(スタートスイッチ受付状態)を「0」にする。
次いで、ステップS493では、メイン制御基板60は、設定変更許可フラグをクリアする。具体的には、遊技メダル管理フラグ「_FL_MEDAL_STS」のD6ビット(設定変更不可フラグ)を「1(ON)」にする。この処理によって設定変更が不可となる。
次のステップS494では、メイン制御基板60は、ブロッカOFF(M_BLOCKER_OFF)を実行する。すなわち、スタートスイッチ34の操作後は、遊技メダルが投入されても受け付けないように制御する。
次のステップS495では、遊技メダル読込み(R_PLYMDL_READ)を実行し、ベット数を読み込む。読込んだベット数はAレジスタに記憶する。
次のステップS496では、メイン制御基板60は、リール回転開始の出力要求をセットする。具体的には例えば、第1制御コマンド値として「13(H)」を、第2制御コマンドとしてAレジスタ値をセットする。そして、ステップS497では、ステップS495で読込んだベット数(Aレジスタ値)をEレジスタにセットする(メダル枚数セット)。さらに、ステップS498において、メイン制御基板60は、制御コマンドセット1(R_CMD_SET)を実行することによって、ステップS496でセットした制御コマンドデータをRWM63の制御コマンドバッファに記憶する。換言すると、スタートレバー(スタートスイッチ34)が操作され、遊技が開始されることを示すコマンドをサブ制御基板80に送信するための処理を実行する。
次に、ステップS499において、メイン制御基板60は、RWM63に記憶されている設定値が正常範囲であるか否か(設定値データ「_NB_BANK」の値が正常範囲であるか否か)を判断する。設定値が「1」〜「6」の正常範囲であると判断したときは(ステップS499のYES)、ステップS500に進む。一方、設定値が正常範囲でないと判断したときは(ステップS499のNO)、ステップS505に進み、「E6」エラーによる復帰不可能エラー処理(SS_ERROR_STOP)を実行する。復帰不可能エラー処理の詳細は図33を参照して前述した通りである。
ステップS500では、メイン制御基板60は、遊技メダル読込み(R_PLYMDL_READ)を実行し、ベット数を読み込む。読込んだベット数はAレジスタに記憶する。なお、リプレイの入賞時には、自動ベットされた遊技メダルの枚数がベット数に設定される。
次に、ステップS501では、ステップS500で読込んだベット数を2倍にする。この処理では、Aレジスタ値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する。さらに、HLレジスタに、メダル投入信号出力回数「_CT_MEDAL_IN」のアドレス「F06F」を記憶する。
次のステップS502では、メイン制御基板60は、割込み処理を禁止する。この処理は、図29のステップS121等と同一であり、割込み要求信号が入力されても割込みが発生しないように制御する。
次いで、ステップS503では、メイン制御基板60は、メダル投入信号出力回数をセットする。具体的には、まず、HLレジスタが示すアドレス(この場合はステップS501で記憶した「F06F」)に記憶されている値(メダル投入信号出力回数「_CT_MEDAL_IN」)と、Aレジスタ値(この場合は、ステップS501で2倍にしたベット数)とを加算し、加算後の値をAレジスタに記憶する。さらに、Aレジスタ値を、HLレジスタが示すアドレス(「F06F」)に記憶する。このようなステップS503の処理によって、RWM63のアドレス「F06F」に記憶されたメダル投入信号出力回数「_CT_MEDAL_IN」が更新される。
そして、ステップS503の処理後はステップS504に進み、ステップS502で行なった割込み禁止を解除し(割込み許可)、本フローチャートの処理を終了する。
本実施形態では、上記のようにステップS502〜S504で割込み処理が禁止されることによって、メダル投入信号の更新途中に割込み処理が実行され、メダル投入信号出力回数を更新する処理が実行されてしまうことを防止することができる。すなわち、メダル投入信号出力回数を更新する処理の終了後、割込み処理を許可してメダル投入信号の更新を許可している。
また、上記のように、本実施形態では、ベットメダル信号を出力するときは、実際のベット数を2倍に演算した値を出力回数(メダル投入信号出力回数)としてセットする。このように制御するのは、オンとオフとを繰り返すパルス信号としてメダル投入信号を外部に出力するときに、オンとオフの2回で1枚のベット数を表すように制御するためである。このことは、メダル払出し時も同様である。すなわち、メダル払出し信号を外部に出力するときは、メダル払出し枚数を2倍に演算し、その値をメダル払出し信号出力回数に設定し、オンとオフの2回で1枚のメダル払出し枚数を表すように制御する。
[4−2−6.入賞によるメダル払出し]
図54は、入賞によるメダル払出し(MS_WIN_PAY)を示すフローチャートである。「入賞によるメダル払出し」は、図34に示したメイン処理中のステップS48で実行されるサブルーチンである。
図26によると、まず、ステップS511において、メイン制御基板60は、メダル払出し開始時の出力要求をセットする。この処理は、獲得(払出し)枚数を示す制御コマンドをレジスタに記憶する処理である。
次のステップS512では、メイン制御基板60は、制御コマンドセット1(S_CMD_SET)を実行する。具体的には、RWM63の制御コマンドバッファに制御コマンドデータを書込む(記憶する)処理が行われる。
次に、ステップS513では、メイン制御基板60は、メダル枚数セットを実行する。この処理は、以下の2つの処理に分けられる。第1の処理として、Dレジスタに、遊技メダル払出し枚数データ「_NB_PAY_MEDAL」の値を記憶する。第2の処理として、Eレジスタに、遊技メダル枚数データ「_NB_PLAY_MEDAL」の値を記憶する。
次に、ステップS514では、メイン制御基板60は、作動状態フラグをチェックする。具体的には、RWM63のアドレス「F01F」に記憶されている作動状態フラグ「_FL_ACTION」の各ビットの「1」/「0」を判断する。
そしてステップS515では、メイン制御基板60は、1種BB(特別役)作動時であるか否かを判断する。具体的には、作動状態フラグ「_FL_ACTION」のD3ビット(1種BB)が「1(作動)」であるか否かによって、1種BBの作動状態フラグを判断する。1種BBの作動状態フラグが「1」であるときは、1種BB作動時であると判断し(ステップS515のYES)、ステップS516を経てステップS517に進む。一方、1種BBの作動状態フラグが「0」であるときは、1種BB作動時ではないと判断し(ステップS515のNO)、ステップS516を行わずにステップS517に進む。
ステップS516では、メイン制御基板60は、1種BB作動時の処理を行う。この処理には、例えば、1種BB作動時(1種BB遊技)における獲得枚数のデータを更新する処理、1種BB遊技における獲得枚数のデータを取得し、1種BB遊技における獲得枚数が上限値を超えたか否かを判断し、上限値を超えたと判断したときは1種BB遊技における獲得枚数の情報をクリアする処理等が含まれる。
ステップS517では、メイン制御基板60は、メダル払出し枚数のセット処理を行う。具体的には、Eレジスタ値(ステップS513で記憶された遊技メダル枚数データ「_NB_PLAY_MEDAL」の値)をAレジスタに記憶する。この結果、Aレジスタには、遊技メダル枚数データが記憶される。
次に、ステップS518では、メイン制御基板60は、リプレイが表示されたか否かを判断する。具体的には、図柄組合せ表示フラグ(不図示)のうち、リプレイ表示を示す所定ビットの値が「1」であるか否かを判断する。リプレイ表示時ではないと判断したときは(ステップS518のNO)、リプレイ入賞時であり、ステップS519を経てステップS520に進む。リプレイ表示時であると判断したときは(ステップS518のYES)、すなわち小役入賞時であり、ステップS519を行わずにステップS520に進む。
ステップS519では、メイン制御基板60は、メダル払出し枚数のセット処理を行う。具体的には、Dレジスタ値(ステップS513で記憶された遊技メダル払出し枚数データ「_NB_PAY_MEDAL」の値)をAレジスタに記憶する。この結果、Aレジスタには遊技メダル払出し枚数データが記憶される。
以上のステップS517〜S519の処理が行われることにより、Aレジスタ値は、リプレイ入賞時には、ステップS517でセットした遊技メダル枚数データ「_NB_PLAY_MEDAL」の値となり、リプレイの入賞時でないとき(すなわち小役入賞時)には、ステップS519でセットした遊技メダル払出し枚数データ「_NB_PAY_MEDAL」の値となる。
次に、ステップS520では、メイン制御基板60は、Aレジスタに記憶された遊技メダル枚数を2倍にする。この処理では、Aレジスタ値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する。さらに、HLレジスタに、メダル払出し信号出力回数「_CT_MEDAL_OUT」のアドレス「F070」を記憶する。
次のステップS521では、メイン制御基板60は、割込み処理を禁止する。この処理は、図29のステップS121や図53のステップS502等と同一であり、割込み要求信号が入力されても割込みが発生しないように制御する。
次いで、ステップS522では、メイン制御基板60は、メダル払出し信号出力回数をセットする。具体的には、HLレジスタが示すアドレス(この場合はステップS520で記憶した「F070」に記憶されている値(メダル払出し信号出力回数「_CT_MEDAL_OUT」)と、Aレジスタ値(この場合はステップS520で2倍にした遊技メダル枚数)とを加算し、加算後の値をAレジスタに記憶する。この処理によって、メダル払出し信号出力回数の値が更新される。
そして、ステップS522の処理後はステップS523に進み、ステップS521で行なった割込み禁止を解除し(割込み許可)、ステップS524に進む。
本実施形態では、上記のようにステップS521〜S523で割込み処理が禁止されることによって、メダル払出し信号の更新途中に割込み処理が実行され、メダル払出し信号出力回数を更新する処理が実行されてしまうことを防止することができる。すなわち、メダル払出し信号出力回数を更新する処理の終了後、割込み処理を許可してメダル払出し信号の更新を許可するものである。
さらに、本実施形態では、メダルの払出し枚数は最大で10枚に設定しているが、10枚の払出しに伴うメダル払出し信号の出力中に次の遊技による払出し枚数の更新が行われる可能性は低い。しかし、開発過程においてメダル払出し枚数の変更(例えば、最大払出し枚数を10枚から15枚に変更する等)した場合に、メダル払出し信号が出力されている最中に払出し枚数が更新される可能性がある。ここで、本実施形態のように割込み禁止処理を設ければ、開発途中でメダル払出し枚数が(例えば最大15枚に)変更されたとしても、プログラムの変更を少なくすることができる。
また、ステップS522におけるメダル払出し信号出力回数をセットする処理は、遊技メダルを実際に払い出すための『払出し処理(本フローチャートにおけるステップ524以降の処理)』の前に行われることに意味がある。上述したように、メダル払出信号出力回数は、リプレイ入賞時以外は、遊技メダル払出し枚数データ「_NB_PAY_MEDAL」から作成される。このとき、仮に、メダル払出し信号出力回数をセットする前に、上記の『払出し処理』が行われるとすると、ステップS532において遊技メダル払出し枚数データ「_NB_PAY_MEDAL」が更新されてしまうため、正しい回数分のメダル払出し信号が出力されてしまうおそれがあるからである。
次に、ステップS524では、メイン制御基板60は、メダル払出しの有無を判断する。具体的には、Dレジスタ値(ステップS513で記憶された遊技メダル払出し枚数データ「_NB_PAY_MEDAL」の値)から「1」を減算し、減算後の値が「0」であるか否かを判断する。減算後の値が「0」である場合は、メダル払出しがないと判断し(ステップS524のNO)、本フローチャートの処理を終了し、メイン処理に戻る。一方、減算後の値が「0」以外である場合は、メダル払出しがあると判断し(ステップS524のYES)、ステップS525に進む。
ステップS525では、メイン制御基板60は、貯留枚数読込み(R_CREDIT_READ)を実行し、貯留されている遊技メダルの枚数(貯留枚数)を読込む。
そして、次のステップS526では、ステップS525で読込んだ貯留枚数が限界枚数(本実施形態では50枚)に達しているか否かを判断する。具体的には、ステップS525の貯留枚数読込みで取得した貯留枚数表示データ「_NB_CREDIT_LED」の値が、限界枚数の「50」を示す値になっているか否かを判断する。貯留枚数が限界枚数であると判断したときは(ステップS526のYES)、ステップS530に進み、貯留枚数が限界枚数ではないと判断したときは(ステップS526のNO)、ステップS527に進む。
ステップS527では、メイン制御基板60は、貯留メダル加算時の待機時間をセットする。次にステップS528では、ステップS527でセットした待機時間が経過するまでウェイト処理を実行する。そして待機時間の経過後、ステップS529に進む。
ステップS529では、メイン制御基板60は、図46に示した貯留枚数1枚加算(MS_CREDIT_ADD)を実行し、終了後はステップS531に進む。
ステップS530は、ステップS526において貯留枚数が限界枚数であると判断したとき(ステップS526のYES)に実行される処理である。ステップS530において、メイン制御基板60は、図48及び図49に示したメダル1枚払出し(M_1MEDAL_PAY)を実行し、終了後はステップS531に進む。
上記のステップS525〜S530の処理によれば、貯留枚数が限界枚数(50枚)になるまでは、貯留枚数を加算する処理(貯留枚数1枚加算)が実行され、貯留枚数が限界枚数であるときは、実際の遊技メダルをホッパー50から払い出す処理(メダル1枚払出し)が実行される。
次に、ステップS531では、メイン制御基板60は、獲得枚数表示を「1」加算する。この処理は、獲得枚数表示LED47に表示するデータを「+1」更新する処理であって、例えばそれまでの表示が「2」であるときは、表示を「3」に更新する。具体的には、獲得枚数表示データ「_NB_PAY_LED」の値を「1」加算する(更新する)。
次のステップS532では、メイン制御基板60は、遊技メダル払出し枚数を「1」減算する処理を行う。具体的には、遊技メダル払出し枚数データ「_NB_PAY_MEDAL」の値を「1」減算する(更新する)。
そして、ステップS533では、メイン制御基板60は、メダル払出しが終了したか否かを判断する。具体的には、ステップS532で更新した後の遊技メダル払出し枚数データ「_NB_PAY_MEDAL」の値が「0」となったか否かを判断する。当該値が「0」である場合は、メダル払出しが終了したと判断し(ステップS533のYES)、ステップ534に進む。一方、当該値が「0」ではない場合は、メダル払出しが終了していない(まだメダル払出しが残っている)と判断し(ステップS533のNO)、ステップS525に戻る。
ステップS534では、メイン制御基板60は、メダル払出し終了時の出力要求をセットする。この処理は、メダル払出しの終了を示す制御コマンドをレジスタに記憶する処理である。そして、次のステップS535では、制御コマンドセット1(S_CMD_SET)を実行する。この処理によって、RWM63の制御コマンドバッファに制御コマンドデータを書込む(記憶する)処理が行われる。ステップS535が終了すると、本フローチャートの処理を終了し、メイン処理に戻る。
[4−3.割込み処理]
図55は、割込み処理(I_INTR)を示すフローチャートである。上述したように、メイン制御基板60は、1遊技で1回実行される図34のメイン処理(メインループ)と並行して、2.235ms周期で、図55に示す割込み処理を実行する。
図55によれば、まず、ステップS61において、メイン制御基板60は、初期処理として、レジスタ値の退避処理、及び重複割込みの禁止処理を行う。ステップS61におけるレジスタ値の退避処理とは、メイン処理(メインループ)で使用しているメインCPU65(MPU)のレジスタを割込み処理で使用するために、現在のレジスタ値をRWM63のスタック領域に退避させる処理である。また、重複割込みの禁止処理とは、割込み処理中に次の割込み処理が開始されないように、割込み禁止フラグをオンにする処理である。これは、例えば、電源断処理の実行中に割込み処理の実行要求が行われるケースがあるためである。
次のステップS62では、メイン制御基板60は、電源断を検知したか否かを判断する。具体的には、メイン制御基板60には不図示の電圧監視装置(電源断検出回路)が設けられており、電源電圧が所定値以下になったときには、この電圧監視装置から入力ポート0のD6ビットに電源断検知信号が入力される。ステップS62では、この電源断検知信号の入力があったか否かを判断する。
ステップS62において電源断を検知していないと判断した場合は(ステップS62のNO)、ステップS63に進む。一方、電源断を検知したと判断した場合は(ステップS62のYES)、ステップS78に進み、電源断処理(IS_POWER_DOWN)を実行する。電源断処理の詳細は、図58に示される。
ステップS63では、メイン制御基板60は、RWM63に記憶される割込みカウンタ値「_CT_INTR」(不図示)の更新を行う。
次いで、ステップS64において、メイン制御基板60は、タイマ計測(I_TIME_COUNT)を実行する。タイマ計測は、メイン処理でセットした時間(タイマ値)を減算等する処理である。タイマ計測の詳細は、図56に示される。
次のステップS65では、メイン制御基板60は、LED表示制御(IS_LED_OUT)を行う。詳細な説明は省略するが、LED表示制御は、スロットマシン10の状況に応じて、設定値、貯留枚数、獲得枚数(払出し枚数)、またはエラー表示内容(エラーコード)等を、セグメントLED(デジット1〜5)を用いて点灯する処理である。
例えば、前述した復帰不可能エラー処理(SS_ERROR_STOP)では、メイン処理によってエラー表示を出力したが(図33のステップS198)、設定変更や設定確認中の設定値、貯留枚数、獲得枚数(払出し枚数)、及び復帰可能なエラーの表示は、割込み処理ごとに、ステップS65のLED表示制御によって行う。
次いで、ステップS66では、メイン制御基板60は、入力ポート0〜2の読込み処理を行う。この処理では、ベットスイッチ33、スタートスイッチ34、ストップスイッチ35等の操作が行われたか否かや、スイッチ信号、各種センサの入力信号が読み込まれ、入力ポート0〜2に基づくデータ(レベルデータ、立ち上がりデータ、立ち下がりデータ)を生成し、RWM63に記憶する。
次のステップS67では、メイン制御基板60は、内蔵乱数のチェック処理を行う。本実施形態では、内蔵乱数にエラーが発生するとオンになるフラグ(不図示)が設けられており、このフラグがオンであるか否かが判断される。
具体的には例えば、役抽選用の乱数のクロック周波数異常(乱数更新が遅い場合等)を検知したときは、当該エラーフラグがオンにされる。より具体的には、MPUに入力されるSCLK(発振源:12MHz)とRCK(発振源:9MHZ)を備え、RCKに基づいて内蔵乱数を更新するものとする。このとき、「RCK<SCLK/2」を満たした場合にエラーフラグがオンになる。
そして、ステップS68において、メイン制御基板60は、ステップS67でチェックした内蔵乱数にエラーが発生しているか否か(エラーフラグがオンか否か)を判断する。エラーが発生していないと判断したときは(ステップS68のNO)、ステップS69に進む。一方、エラーが発生していると判断したときは(ステップS68のYES)、ステップS79に進み、「E7」エラーによる復帰不可能エラー処理(SS_ERROR_STOP)を実行する。復帰不可能エラー処理の詳細は図33を参照して前述した通りである。
ステップS69では、メイン制御基板60は、リール39の駆動制御を行う。この制御は、各リール39(左リール39a、中リール39b、右リール39c)単位で行われるとともに、それぞれ動作状況に応じて、停止中、定速、加速、減速、減速開始、及び待機が挙げられる。リール39の駆動制御が終了すると、ステップS70に進む。
ステップS70では、メイン制御基板60は、ポート出力処理を行う。ポート出力処理では、具体的には例えば、モータ40、ホッパーモータ51の励磁出力や、ブロッカ29の励磁出力を行う。
次のステップS71では、メイン制御基板60は、遊技メダルセレクタ27に関する入力エラー(CHエラー)のチェックを行うセレクタ通路センサチェック(I_SENS_CHK)を実行する。セレクタ通路センサチェックの詳細は、図57に示される。なお、本例では図示しないが、スロットマシン10は、セレクタ通路センサチェック以外の各種センサについても、同様にエラーチェックを行うようにしてもよい。
次のステップS72では、メイン制御基板60は、制御コマンド送信(IS_CMD_SET)を実行する。制御コマンド送信の処理は、例えば、出力要求セット及び制御コマンドセット1(R_CMD_SET)でセットされた制御コマンド(すなわち、RWM63のコマンドバッファに記憶されている未送信の制御コマンド)をサブ制御基板80に送信する処理である。
より具体的には、出力要求セット及び制御コマンドセット1(R_CMD_SET)において制御コマンドがRWM63のコマンドバッファにセットされると、その時点以降の割込み処理(コマンドバッファが空の場合は、原則、その時点の次に到来する割込み処理)において、ステップS72で制御コマンド送信が実行されることによって、制御コマンドがサブ制御基板80に送信される。
次に、ステップS73では、メイン制御基板60は、RWM63に記憶されている外部信号のためのデータをレジスタに記憶する(外部信号記憶)。そして、次のステップS74において、メイン制御基板60は、レジスタに記憶されたデータを出力ポート6に書込む(セットする)処理を実行することにより、外部信号を外部端子板100に送信する(外部信号出力)。
次いで、ステップS75では、メイン制御基板60は、試験信号(条件装置情報)の出力処理を行う。この処理は、RWM63に記憶されているデータに基づいて、所定の出力ポート(市場に設置されている遊技機には非搭載)にデータを書込む(セットする)処理を実行することにより、スロットマシン10が法律に従って適切に設計されているか否かを判断するときの試験機に対して試験信号を送信する処理である。
なお、試験機に対して送信する情報名として、作動状態に関する情報を試験信号、当選役に関する情報を条件装置情報と称しているが、作動状態に関する情報を第1の試験信号、当選役に関する情報を第2の試験信号と称してもよい。また、試験機に対して上記以外の他の情報を送信してもよい。例えば、最適な停止操作態様(停止操作位置、停止操作順序)に関する情報(第3の試験信号と称す)を送信することが挙げられる。これにより、試験機側で出玉試験(シミュレーション試験とも呼ばれる)を行うことができる。
なお、前述した通り、試験信号を出力するための出力ポートは市場に設置されている遊技機には非搭載ではあるが、メイン制御手段60のROM64には、試験信号を出力するためのプログラムは記憶されている。そして、市場に設置されている遊技機においても、試験信号が出力されるわけではないが、試験信号を出力するための処理は、メイン制御基板60により実行される。
次に、ステップS76では、メイン制御基板60は、乱数更新処理を行う。そして、次のステップS77において、メイン制御基板60は、ステップS61で退避したレジスタ値を復帰させ、重複割込みの禁止を解除する(次回割込みを許可する)。具体的には、割込み処理開始時に記憶していたレジスタデータを復帰するとともに、次回の割込み処理を開始できるように、割込禁止フラグをオフにする。そして本フローチャートによる処理を終了する。
以上に説明したように、本実施形態では、2.235msごとの割込み処理によって、貯留数表示LED45、獲得枚数表示LED47、状態表示LED48(48a〜48g)、及び設定値表示LED66の点灯/消灯が制御される。
さらに、サブ制御基板80に対する未送信の制御コマンドがRWM63のコマンドバッファに記憶されているときは、割込み処理ごとに、当該制御コマンドの送信処理が行われる。
なお、図33のステップS191に示したように、復帰不可能エラー処理(SS_ERROR_STOP)の実行時には、割込み処理は許可されない。これは、復帰不可能エラーは、通常では起こり得ない重大なエラーであることを理由としており、異常データに基づく処理(入力ポート61からのデータに基づくRWM63のデータ更新や、サブ制御基板80への制御コマンドの送信)等を実行させないようにするために、割込み自体を禁止している。
換言すれば、復帰不可能エラーの発生時には、メイン制御基板60からサブ制御基板80への制御コマンドの送信が行われないので、制御コマンドセット1(R_CMD_SET)を実行しても意味がない。
さらに言えば、本実施形態では、復帰不可能エラーの発生時に、制御コマンドバッファに未送信の制御コマンドが格納されていた場合は、当該制御コマンドをサブ制御基板80に送信しない。これは、復帰不可能エラーの発生時においては、制御コマンドバッファに格納されている制御コマンド自体が正しくないおそれがあることを理由とする。
[4−3−1.タイマ計測]
図56は、タイマ計測(I_TIME_COUNT)を示すフローチャートである。タイマ計測は、割込み処理(I_INTR)の実行中に行われるサブルーチンであって、メイン処理でセットした時間(タイマ値)を減算等する処理である。
図56に示すフローチャートは、図15に示したタイマの配置例に対するタイマ計測(I_TIME_COUNT)の処理手順の一例を示すものである。
本実施形態に係るスロットマシン10では、図15に例示したように、複数の1バイトタイマ及び複数の2バイトタイマが、それぞれが連続した記憶領域(RWM63)に記憶されるように配置され、かつ、これら1バイトタイマ群(1バイトタイマ領域、1バイトタイマ記憶領域とも称す)と2バイトタイマ群(2バイトタイマ領域、2バイトタイマ記憶領域とも称す)とが連続した記憶領域に記憶されるように配置される(全体を「タイマ群」とも呼ぶ)。具体的には、7つの1バイトタイマがアドレス「F021」〜「F027」に配置され、3つの2バイトタイマがアドレス「F028」〜「F02D」に配置される。
但し、本実施形態に係るスロットマシン10において、RWM63における複数のタイマの配置は、上述した配置上の特徴を備えていれば、図15の配置例に限定されるものではなく、タイマ計測(I_TIME_COUNT)の処理手順も図56の処理手順に限定されるものではない。具体的な変形例については、図60や図61を参照して後述する。
図56によれば、まず、ステップS601において、メイン制御基板60は、計測開始タイマアドレスをセットする。図56では、RWM63における上記タイマ群の記憶領域のうち、1バイトタイマ群の最上位に配置された1バイトタイマ「_TM1_OUT_CNT(外部信号出力時間)」の先頭アドレス「F021(H)」を計測開始タイマアドレスとする場合について説明を行う。この場合、ステップS601では、HLレジスタにアドレス「F021(H)」をセットする。
次のステップS602では、メイン制御基板60は、1バイトタイマ数をセットする。具体的には、図15の場合、1バイトタイマは7個用意されているので、Bレジスタに「7」をセットする。
ステップS603では、メイン制御基板60は、1バイトタイマ値を更新する。具体的には、HLレジスタに記憶されているアドレスに記憶されている値を「1」減算する。例えば、HLレジスタ値が「F021(H)」である場合は、RWM63のアドレス「F021」に記憶されている値(「_TM1_OUT_CNT」)を「1」減算する。なお、「1」減算した結果、桁下がりが発生した場合には、当該アドレスに「0」を記憶する(このとき、キャリーフラグを加算する処理や、「1」を加算する処理等の補正処理を要しない)。桁下がりは、元のタイマ値が「0」であるところに「1」減算した場合に発生し得る。
ステップS603における処理を、具体値を用いて詳しく説明する。例えば、初めてステップS603の処理が行われる場合(ステップS603〜S605の繰り返し処理の1巡目)には、ステップS601における計測開始タイマアドレスのセットによって、HLレジスタ値は「F021(H)」となっている。したがって、ステップS603の処理では、アドレス「F021(H)」の1バイトに記憶されているデータ(すなわち、「_TM1_OUT_CNT(外部信号出力時間)」のタイマ値)から、「1」減算する。また例えば、2回目のステップS603の処理が行われる場合(ステップS603〜S605の繰り返し処理の2巡目)には、1巡目のステップS604の処理(詳細は後述する)によって、HLレジスタ値は「1」加算されて「F022(H)」となっている。したがって、ステップS603の処理では、アドレス「F022(H)」の1バイトに記憶されているデータ(すなわち、「_TM1_STOP(回胴停止受付待機時間)」のタイマ値)から、「1」減算する。
ここで具体値の第1例として、アドレス「F022(H)」に記憶されているデータが「07(H)」であるとすると(1つの停止ボタンへの操作受付が確認されて、回胴停止受付待機時間の初期値「7」がセットされた状況に相当する)、ステップS603ではこの「07(H)」から「1」減算する処理が行われ、減算後の1バイトデータは「06(H)」となる。
また、具体値の第2例として、アドレス「F022(H)」に記憶されているデータが「00(H)」であるとすると(回胴停止受付待機時間が経過して次の停止ボタンへの操作が受付可能となっており、次の停止ボタンへの操作が受け付けられるまでの間の状況に相当する)、ステップS603ではこの「00(H)」から「1」を減算する処理が行われる。このとき、「1」減算すると、演算上はキャリーフラグが立って桁下がりが発生する。しかし、本実施形態に係るスロットマシン10において、メイン制御基板60は、演算で桁下がりが発生した場合には、RWM63の対象アドレスに「00(H)」を記憶する。すなわち、1バイトデータ「00(H)」が記憶されているときにステップS603の処理(タイマ値の更新)が行われた場合には、減算後のアドレス「F022(H)」には「00(H)」が記憶される。この結果、1バイトデータをタイマ値としてみると、タイマ値が「0」である場合には、更新後のタイマ値も「0」となる。
次に、ステップS604では、メイン制御基板60は、次のタイマアドレスをセットする。具体的には、HLレジスタ値を「1」加算する。加算後の値はHLレジスタに記憶される。この結果、HLレジスタが指定するアドレスは、(現在の指定先が最後の1バイトタイマ「_TM1_BLON_CHK」である場合を除き、)下位側の次の1バイトタイマのアドレスとなる。
なお、ステップS604の処理は、次の1バイトタイマがない場合(現在の指定先が最後の1バイトタイマ「_TM1_BLON_CHK」で、次のタイマが2バイトタイマ「_TM2_HE_CHK」である場合)でも実行される。このとき、具体的には、HLレジスタが指定するアドレスは、ステップS604における演算によって「F027(H)」から「F028(H)」となり、演算後のHLレジスタが指定するアドレス「F028(H)」は、最後の1バイトタイマ「_TM1_BLON_CHK」に隣接する最初の2バイトタイマ「_TM2_HE_CHK」の下位桁アドレス(上位アドレス)となる。
ステップS605では、メイン制御基板60は、1バイトタイマのタイマ計測が終了したか否かを判断する。具体的にはBレジスタ値を「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」以外である場合は、タイマ値が更新されていない1バイトタイマが残っていることを意味するので、1バイトタイマのタイマ計測が終了していないと判断し(ステップS605のNO)、ステップS603に戻る。一方、減算後のBレジスタ値が「0」である場合は、ステップS603における1バイトタイマ値の更新処理が1バイトタイマ数の分だけ繰り返されたことを意味するので、1バイトタイマのタイマ計測が終了したと判断し(ステップS605のYES)、ステップS606に進む。
ステップS606では、メイン制御基板60は、2バイトタイマ数をセットする。具体的には、図15の場合、2バイトタイマは3個用意されているので、Bレジスタに「3」をセットする。
ステップS607では、メイン制御基板60は、2バイトタイマ値を更新する。具体的には、HLレジスタに記憶されているアドレスに記憶されている値を下位桁とし、「HL+1」レジスタに記憶されているアドレスに記憶されている値を上位桁とした2バイトのデータから「1」を減算する。なお、「1」減算した結果、2バイトデータの桁下がりが発生した場合には、当該アドレスに「0」を記憶する(このとき、キャリーフラグを加算する処理や、「1」を加算する処理等の補正処理を要しない)。桁下がりは、元のタイマ値が「0」であるところに「1」減算した場合に発生し得る(後述する具体値の第3例を参照)。
ステップS607における処理を、具体値を用いて詳しく説明する。例えば、上記した1バイトタイマのタイマ計測で最後に更新される「_TM1_BLON_CHK」の処理が終了したときには、ステップS604の処理によってHLレジスタ値は「F028(H)」となっている。このとき、「HL+1」レジスタに記憶されているアドレスは「F029(H)」となる。したがって、ステップS607の処理では、下位桁アドレス「F028(H)」及び上位桁アドレス「F029(H)」からなる2バイトに記憶されているデータから、「1」を減算する。
ここで具体値の第1例として、アドレス「F028(H)」に記憶されているデータが「05(H)」で、アドレス「F029(H)」に記憶されているデータが「01(H)」であるとすると、2バイトデータとしては「0105(H)」が記憶されているとみなし、この「0105(H)」から「1」を減算する処理が行われる。すなわち、減算後の2バイトデータは「0104(H)」となる。したがって、減算後の2バイトデータは、下位桁アドレス「F028(H)」に「04(H)」が記憶され、上位桁アドレス「F029(H)」に「01(H)」が記憶される。
また、具体値の第2例として、2バイトデータ「0100(H)」が記憶されている(すなわち、アドレス「F028(H)」に「00(H)」が記憶され、アドレス「F029(H)」に「01(H)」が記憶されている)場合には、2バイトデータを「1」減算すると「00FF(H)」になるため、下位桁アドレス「F028(H)」に「FF(H)」が記憶され、上位桁アドレス「F029(H)」に「00(H)」が記憶される。
なお、具体値の第3例として、2バイトデータとして「0000(H)」が記憶されている(すなわち、アドレス「F028(H)」に「00(H)」が記憶され、アドレス「F029(H)」に「00(H)」が記憶されている)場合は、2バイトデータを「1」減算すると、演算上はキャリーフラグが立って桁下がりが発生する。しかし、本実施形態に係るスロットマシン10において、メイン制御基板60は、演算で桁下がりが発生した場合には、RWM63の対象アドレスに「00(H)」を記憶する。すなわち、2バイトデータ「0000(H)」が記憶されているときにステップS607の処理(タイマ値の更新)が行われた場合には、減算後の下位桁アドレス「F028(H)」には「00(H)」が記憶され、上位桁アドレス「F029(H)」には「00(H)」が記憶される。この結果、2バイトデータをタイマ値としてみると、タイマ値が「0」である場合には、更新後のタイマ値も「0」となる。
ステップS608では、メイン制御基板60は、次のタイマアドレスをセットする。具体的には、HLレジスタ値を「1」加算し、さらにHLレジスタ値を「1」加算する。加算後の値はHLレジスタに記憶される。この結果、HLレジスタが指定するアドレスは「2」加算されたものとなるので、(現在の指定先が最後の2バイトタイマ「_TM2_GAME」である場合を除き、)下位側の次の2バイトタイマの下位桁アドレス(上位アドレス)となる。なお、ステップS608の処理は、次の2バイトタイマがない場合(現在の指定先が最後の2バイトタイマ「_TM2_GAME」である場合)でも実行される。
なお、ステップS608の処理は、次の2バイトタイマがない場合(現在の指定先が最後の2バイトタイマ「_TM2_GAME」である場合)でも実行される。このとき、具体的には、HLレジスタが指定するアドレスは、ステップS608における演算によって「F02C(H)」から「F02E(H)」となり、演算後のHLレジスタが指定するアドレス「F02E(H)」は、タイマ記憶領域の外側のアドレスとなるが、その後の処理では使用されない。
ステップS609では、メイン制御基板60は、2バイトタイマのタイマ計測が終了したか否かを判断する。具体的にはBレジスタ値を「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」以外である場合は、タイマ値が更新されていない2バイトタイマが残っていることを意味するので、2バイトタイマのタイマ計測が終了していないと判断し(ステップS609のNO)、ステップS607に戻る。一方、減算後のBレジスタ値が「0」である場合は、ステップS607における2バイトタイマ値の更新処理が2バイトタイマ数の分だけ繰り返されたことを意味するので、2バイトタイマのタイマ計測が終了したと判断し(ステップS609のYES)、本フローチャートの処理を終了する。
以上に説明したように、図56に示したタイマ計測(I_TIME_COUNT)では、ステップS601において計測開始タイマアドレス「F021(H)」をHLレジスタにセットした後、ステップS602〜S605において複数の1バイトタイマのタイマ値(「タイマ値」を、「カウント値」や「割込み回数」等と称してもよい)を順次更新し(1バイトタイマの計測)、ステップS606〜S609において複数の2バイトタイマのタイマ値を順次更新すること(2バイトタイマの計測)により、RWM63に連続して配置(記憶)される複数の1バイトタイマ及び複数の2バイトタイマの各タイマ値を更新する。
ここで、本実施形態では、複数のタイマが連続したアドレスに配置されることにより、ステップS604やステップS608に示した通り、HLレジスタ値を所定値だけ変更する処理を行うだけで、次のタイマの記憶先(アドレス)を指定することができる。
詳しくは、次のタイマの記憶先を指定するために、1バイトタイマの計測中は、HLレジスタ値を「+1」するという一の処理を1バイトタイマ数だけ繰り返せばよく、2バイトタイマの計測中は、HLレジスタ値を「+2」するという一の処理を2バイトタイマ数だけ繰り返せばよい(加算命令の繰り返し)。すなわち、本実施形態では、HLレジスタにRWM63のアドレスを直接書込む命令は、計測開始タイマアドレスをセットするとき(ステップS601)の1回しか必要とせず、後は、このような「加減算命令の繰り返し」(図56の場合は、減算命令のみであるが、後述する変形例では加算命令の場合もある)を行うことによって、複数のタイマの記憶先を指定することができる。したがって、従来の遊技機におけるプログラムで行われていたような、各タイマの記憶先を参照し(参照命令)、参照結果に基づいて次のタイマの記憶先をHLレジスタに指定する(指定命令)といった処理が不要となる。そして、従来のタイマごとに上記の参照命令及び指定命令を実行するプログラムと比較すると、1バイトタイマまたは2バイトタイマでそれぞれ同一の加算命令を繰り返し実行する本実施形態のプログラムのほうが、プログラム容量を削減することができ、また、処理負担を軽減することができる。
すなわち、本実施形態のタイマ計測(I_TIME_COUNT)によれば、従来の遊技機におけるタイマ計測処理と比べて、プログラム容量を低減することができる。なお、このようなプログラム容量の低減効果は、連続して配置されたタイマ数が多いほど大きくなる傾向にあり、プログラム容量の上限が規定されたなかで多数のタイマを使用する遊技機においては特に有効といえる。
また、図56に示したタイマ計測(I_TIME_COUNT)では、ステップS603やステップS607において、更新前のタイマ値がどのような値であるかに拘わらず(すなわち、減算前のタイマ値の値に拘わらず)、対象タイマのタイマ値を更新(減算)する処理が行われる(以降では、この処理を「特殊減算処理」とも呼ぶ(なお、ステップS603の処理を1バイト特殊減算処理、ステップS607の処理を2バイト特殊減算処理と分けて呼ぶこともある))。
ステップS603やステップS607で具体的な処理手順例を説明したように、この特殊減算処理では、減算前のタイマ値が「N(N≧1)」のときは、減算後のタイマ値として、当該タイマ値の記憶先(RWM63のタイマ記憶領域)に「N−1」が記憶される一方、減算前のタイマ値が「0」のときは、減算後のタイマ値として、当該タイマ値の記憶先(RWM63のタイマ記憶領域)に「0」が記憶される。
このように、本実施形態に係るスロットマシン10では、タイマ計測(I_TIME_COUNT)によって各タイマ値の更新(減算)を行う場合に、従来の遊技機で見られたようにタイマ値が「0」であるか否かを判断してから個々の減算処理を行うのではなく、上記の特殊減算処理によって一律にタイマ値を減算するようにしている。このような特殊減算処理を行うことにより、減算前のタイマ値の判断に伴う処理(例えば、タイマ値が「0」であるか否かを判断し、「0」であれば減算しない等の処理)が不要となるため、プログラム容量の増加を抑制することができ、従来の遊技機におけるタイマ計測処理と比べて、プログラム容量を低減することに期待できる。
また、具体値の第3例として詳述したように、本実施形態の特殊減算処理では、タイマ値を減算する演算を行ったときに桁下がりが発生した場合に(具体的には例えば、「FF(H)」でキャリーフラグが「1」の演算結果になる)、RWM63の対象アドレスに「00(H)」を記憶するようにしていることから、上記の「FF(H)」に改めて「1」を加算した値を対象アドレスに記憶するような命令処理や、キャリーフラグ「1」を加算するような命令処理が不要となる。したがって、本実施形態のタイマ計測(I_TIME_COUNT)によれば、プログラム容量の増加を抑制することができ、従来の遊技機におけるタイマ計測処理と比べて、プログラム容量を低減することに期待できる。
ここで、本実施形態の特殊減算処理によるプログラム容量の低減効果について補足する。
まず、1バイトデータの減算処理について、従来の1バイトデータの減算処理では、「00(H)」から「1(H)」を減算した減算結果が「FF(H)」となることが一般的である(1バイト通常減算処理)。このため、1バイト通常減算処理によって「00(H)」から「1(H)」した減算結果を「00(H)」にしようとすると、改めて「FF(H)」に「1(H)」を加算する等、別の命令を実行する必要が生じる(キャリーフラグの処理が必要な場合は、その処理のための命令も必要となる)。
これに対し、本実施形態の1バイト特殊減算処理では、「00(H)」から「1(H)」を減算した減算結果は、一の命令によって、「00(H)」となるため、プログラム容量を低減することに期待できる。
同様に、2バイトデータの減算処理についても、従来の2バイトデータの減算処理では、「0000(H)」から「1(H)」を減算した減算結果が「FFFF(H)」となることが一般的であり(2バイト通常減算処理)、減算結果を「0000(H)」とするためには、「FFFF(H)」に「1(H)」を加算する等、別の命令を実行する必要が生じる。
これに対し、本実施形態の2バイト特殊減算処理では、「0000(H)」から「1(H)」を減算した減算結果は、一の命令によって、「0000(H)」となるため、プログラム容量を低減することに期待できる。
以上の補足をまとめて換言すると、本実施形態に係るスロットマシン10では、タイマ値が「N(N≧1)」のときに特殊減算処理を実行すると、特殊減算処理の結果は「N−1」となり(タイマ値を「N−1」に更新可能とし、)、タイマ値が「0」のときに特殊減算処理を実行すると、特殊減算処理の結果は「0」となる(タイマ値は「0」のままとなる)ようにすることができる。
以上のように、本実施形態に係るスロットマシン10は、複数のタイマ値を更新するタイマ計測(I_TIME_COUNT)において、タイマ値が「0」であるときと、タイマ値が「0」以外のときとで、同一の一の命令(1ステップ)で減算処理(または加算処理でもよい)を行うことができるため、プログラム容量の増加を抑制することができる。
[4−3−2.セレクタ通路センサチェック]
図57は、セレクタ通路センサチェック(I_SENS_CHK)を示すフローチャートである。セレクタ通路センサチェック(I_SENS_CHK)は、遊技メダルセレクタ27に関する入力エラー(CHエラー)をチェックする処理である。
図57によれば、まず、ステップS611において、メイン制御基板60は、セレクタ通路センサ信号の立ち上がりがあるか否か(通路センサ28によって遊技メダルが検知されたか否か)を判断する。具体的には、RWM63のアドレス「F00D」に記憶される入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビット(セレクタ通路センサ信号)が「1(ON)」であるか否かを判断する。なお、入力ポート2立ち上がりデータ「_PT_IN2_UP」等のデータ(入力ポート0〜2の入力信号に関するデータ)は、割込み処理(I_INTR)の実行時に生成され、RWM63に記憶される(図55のステップS66)。
ステップS611においてセレクタ通路センサ信号の立ち上がりがあると判断したときは(ステップS611のYES)、ステップS612に進み、セレクタ通路センサ信号の立ち上がりがないと判断したときは(ステップS611のNO)、ステップS615に進む。
ステップS612では、メイン制御基板60は、投入監視カウンタ「_CT_SEN_CHK」の値を「1」加算する。前述したように、投入監視カウンタ「_CT_SEN_CHK」は、遊技メダルセレクタ27の通路センサ28による通過異常検出を監視するためのカウンタであって、ブロッカON(M_BLOCLER_ON)の実行時に値が初期化され(図39のステップS264)、手入れメダルチェック(MS_INSERT_CHK)において正常に遊技メダルが通過したと判断されたときに値が「1」減算される(図45のステップS350)。そして、手入れメダルチェック(MS_INSERT_CHK)で説明したように、このように状況に応じて変動する投入監視カウンタ「_CT_SEN_CHK」の値に基づいて、通過異常か否かが判定される(図45のステップS351)。
次にステップS613では、メイン制御基板60は、セレクタ通路滞留時間をセットする。具体的には、HLレジスタに「_TM1_CH_CHK」のアドレス「F025」を記憶し、HLレジスタが示すアドレス「F025」に「200(D)」を記憶する。これは、RWM63のアドレス「F025」に記憶されるセレクタ通路滞留時間「_TM1_CH_CHK」のタイマ値に初期値の「200」をセットする処理である。
次に、ステップS614において、メイン制御基板60は、ブロッカOFF時監視時間及びブロッカON時監視時間をセットする。具体的には、HLレジスタ値に「1」を加算した値が示すアドレス(すなわち、「F026」)に「144(D)」を記憶し、HLレジスタ値にさらに「1」を加算した値が示すアドレス(すなわち、「F027」)に「45(D)」を記憶する。これらは、RWM63のアドレス「F026」に記憶されるブロッカOFF時監視時間「_TM1_BLOFF_CHK」のタイマ値に初期値の「144」をセットし、アドレス「F027」に記憶されるブロッカON時監視時間「_TM1_BLON_CHK」のタイマ値に初期値の「45」をセットする処理である。
上記の具体的処理のように、本実施形態では、セレクタ通路センサ信号の検知に基づいてRWM63の複数のアドレスにタイマ値を記憶する場合に、複数のアドレスが連続していることによって、HLレジスタに「1」を加算するだけで、それぞれのタイマ値をセットするアドレスを指定することができる。したがって、それぞれのタイマ値を記憶するアドレスを毎回HLレジスタに記憶させてタイマ値をセットする場合と比較して、処理容量(メイン制御用のプログラム容量)を削減することができる。
次のステップS615では、メイン制御基板60は、セレクタ通路センサ信号がONであるか否か(通路センサ28によって遊技メダルが検知されているか否か)を判断する。具体的には、RWM63のアドレス「F00C」に記憶される入力ポート2レベルデータ「_PT_IN2_OLD」のD7ビット(セレクタ通路センサ信号)が「1(ON)」であるか否かを判断する。
ステップS615においてセレクタ通路センサ信号がONであると判断したときは(ステップS615のYES)、ステップS616に進む。一方、セレクタ通路センサ信号がONではないと判断したときは(ステップS615のNO)、通路センサ28によって遊技メダルが検知されていないことからCHエラーは発生せず、本フローチャートの処理を終了する。
ステップS616では、メイン制御基板60は、セレクタ通路滞留時間が経過したか否かを判断する。具体的には、「_TM1_CH_CHK」に記憶されているデータをAレジスタに記憶し、Aレジスタに記憶されたデータが「0」であるか否かを判断する。Aレジスタ値が「0」である場合は、セレクタ通路滞留時間が経過したと判断し(ステップS616のYES)、ステップS617に進む。一方、ステップS616においてAレジスタ値が「0」以外の場合は、セレクタ通路滞留時間が経過していないと判断し(ステップS616のNO)、本フローチャートの処理を終了する。この場合、通路センサ28によって遊技メダルが検知されていても(セレクタ通路センサ信号がON)、セレクタ通路滞留時間が経過していないことから、CHエラーの発生とは判断されないからである。
ステップS617は、通路センサ28によって遊技メダルが検知され(セレクタ通路センサ信号がON)、かつ、セレクタ通路滞留時間が経過した場合に実行される処理である。このような状況は、遊技メダルが遊技メダルセレクタ27の遊技メダル通路(セレクタ通路)内に滞留エラー(CHエラー)が発生していると判断される。
そこで、ステップS617において、メイン制御基板60は、CHエラー検出を報知するためのデータをセットする(CHエラー検出報知データセット)。具体的には、RWM63のアドレス「F013」に記憶されるサブ報知フラグ2「_FL_SUB_INF2」のD4ビット(CHエラー)を「1」にする処理を行う。ステップS617の処理後は、本フローチャートの処理を終了する。
以上が、セレクタ通路センサチェック(I_SENS_CHK)の詳細な処理手順である。
なお、ステップS611では、セレクタ通路センサ信号の立ち上がりがあるか否かの判断を、RWM63に記憶された入力ポート2立ち上がりデータ「_PT_IN2_UP」のD7ビットに基づいて判断する、と説明したが、スロットマシン10におけるセレクタ通路センサ信号の立ち上がりの判断基準はこれに限定されるものではなく、入力ポート2からの入力信号や、RWM63に記憶された入力ポート2レベルデータ「_PT_IN2_OLD」のD7ビットに基づいて判断する等してもよい。
具体的には例えば、メイン制御基板60が直接、少なくとも入力ポート2のデータを確認するようにし、入力ポート2のD7ビットに入力があった場合には、所定のタイマ値を設定する(本フローチャートで言えば、ステップS613におけるセレクタ通路滞留時間「_TM1_CH_CHK」に初期タイマ値「200」をセットする)ようにしてもよい。なお、このような方法を採用する場合には、厳密には、入力信号の立ち上がりを判断しているのではなく、通路センサ28からの入力(センサの検知)があった場合に、上記タイマ値を設定するという仕様になる。また、入力ポート2レベルデータ「_PT_IN2_OLD」のD7ビット(セレクタ通路センサ信号)のデータを確認するようにし、データが「1(ON)」であった場合には、所定のタイマ値を設定する(本フローチャートで言えば、ステップS613のセレクタ通路滞留時間セットにおいて、「_TM1_CH_CHK」に初期タイマ値「200」をセットする)ようにしてもよい。
[4−3−3.電源断処理]
図58は、電源断処理(IS_POWER_DOWN)を示すフローチャートである。図58に示す電源断処理は、割込み処理(I_INTR)のなかで電源断を検知したと判断した場合に行われる処理である(図55のステップS78参照)。
図58によれば、まず、ステップS621において、メイン制御基板60は、全ての出力ポート62(例えば、出力ポート0〜6)の出力をオフにする。
そしてステップS622では、電源断処理済フラグ(不図示)をRWM63に記憶する。ステップS622の処理は、割込み処理による電源断処理が実行されていることを示すデータ(電源断処理済フラグ)をRWM63に記憶する処理である。なお、ステップS622でセットされた電源断処理済フラグは、電源断復帰処理(M_POWER_ON)における最後の処理で、クリアされる(図31のステップS151参照)。
次に、ステップS623では、メイン制御基板60は、制御コマンド読込みポインタを偶数(1回目)に設定する。前述したように、制御コマンドを送信する場合には、第1制御コマンドと第2制御コマンド(2つの制御コマンド)とを送信する。また、後述するように、1の割込み処理により第1制御コマンドを送信する処理と第2制御コマンドを送信する処理とを、2回実行する。しかし、1回目の制御コマンドを送信した後、2回目の制御コマンドを送信する前に電源断が発生する場合がある。この場合には、再度、1回目の制御コマンドから送信し直す。
したがって、ステップS623の処理は、このような場合に、制御コマンドが記憶されているバッファのアドレスを指定する読込みポインタを偶数に設定するものである。例えば、読込みポインタが「00011111(B)」であったときは、「00011110(B)」に設定する。また、「00011110(B)」のように最初から偶数であるときは、そのままとする。この処理により、指定されるアドレスのバッファが常に偶数となり、第1制御コマンドが格納されているバッファとなる。これにより、簡素なプログラム処理により確実に2度制御コマンドを送信することが可能となる。
次のステップS624では、メイン制御基板60は、RWM63のチェックサムデータを算出する。この処理は、プログラムで使用する作業領域(RWM63)を含むチェックサムを算出するものであり、対象となるプログラム使用領域としては、プログラム作業領域、未使用領域、及びスタック領域等が挙げられる。
そして、次のステップS625では、メイン制御基板60は、チェックサムの全範囲の算出が終了したか否かを判断し、終了していないと判断したときは(ステップS625のNO)、ステップS624に戻ってチェックサムの算出を継続する。一方、チェックサムの算出が終了したと判断したときは(ステップS625のYES)、ステップS626に進む。
ステップS626では、メイン制御基板60は、ステップS624で算出したRWM63のチェックサムをRWM63に記憶する。ここで、RWM63に記憶するデータは、再度、RWM63のチェックサムを行った場合に「0」を示すデータとなる値(補数データともいう)に加工している。これにより、プログラム開始時においてRWM61のチェックサムを実行する場合に(図27のステップS14参照)、RWM63の値が正しいか否かは、チェックサムの算出結果が「0」であるか否かを判定するだけで済むため、プログラム処理の簡素化や処理時間の短縮につながる。
そして、次のステップS627に進むと、リセット待ち状態にする。メイン制御基板60では、電圧が所定値になると、電圧監視装置(電源断検出回路)からリセット信号が出力されるので、そのリセット信号の出力を待つ状態となる。ここで、電圧監視装置は、電源電圧が所定値以下になったときには、入力ポート0のD6ビットに電源断検知信号が入力され、その後、コンデンサと抵抗とからなる回路によって所定時間経過した後にリセット信号がMPUに入力されるように構成されている。このとき、電源断時の処理が正常に実行されるような時間となるようにコンデンサや抵抗値が設計されている。
[4−3−4.変形例]
これまで、本実施形態に係るスロットマシン10のメイン制御基板60によって実行される割込み処理(I_INTR)及びそのサブルーチンについて、図55〜図58のフローチャートを参照して詳しく説明した。但し、本実施形態に係るスロットマシン10における情報処理の処理手順は、これまでに図示した各フローチャートの処理手順に限定されるものではない。
以下では、[4−3−1]で詳述したタイマ計測(I_TIME_COUNT)について、図56とは異なる処理手順による変形例を説明する。より詳しくは、図56とは異なるアドレスを計測開始タイマアドレスとしてセットする場合のタイマ計測(I_TIME_COUNT)の変形例(第1,第2)を説明するものであり、具体的な処理手順は、図60及び図61に示される。
図56では、ステップS601において、タイマ記憶領域のうち、1バイトタイマ記憶領域の最上位アドレスである「F021(H)」を計測開始タイマアドレスとしてHLレジスタにセットしたが、本実施形態に係るスロットマシン10は、これに限定されるものではなく、例えば、2バイトタイマ記憶領域側からタイマ計測を開始することもできる。このようなタイマ計測を行う場合の処理手順を、第1の変形例(図60)及び第2の変形例(図61)に示して説明する。
図59は、タイマ記憶領域の構成例を示す図である。図59に示すタイマ記憶領域は、RWM63の記憶領域の一部であって、図15に示した各タイマの配置に対応している。図59に示すように、アドレス「F021(H)」〜「F027(H)」が、複数の1バイトタイマが記憶される1バイトタイマ記憶領域に相当し、アドレス「F02A(H)」〜「F02D(H)」が、複数の2バイトタイマが記憶される2バイトタイマ記憶領域に相当する。
そして、図59に示した(X)は、図56のタイマ計測(I_TIME_COUNT)における計測開始タイマアドレス「F021(H)」を指している。同様に、(Y)は、後述する第1の変形例(図60)における計測開始タイマアドレス「F02C(H)」を指し、(Z)は、後述する第2の変形例(図61)における計測開始タイマアドレス「F02E(H)」を指している。
[4−3−4−1.第1の変形例]
図60は、タイマ計測(I_TIME_COUNT)の第1の変形例を示すフローチャートである。前述したように、第1の変形例では、タイマ計測を開始するときにセットする計測開始タイマアドレスを「F02E(H)」とする。
図60によれば、まず、ステップS801において、メイン制御基板60は、計測開始タイマアドレスをセットする。具体的には、HLレジスタにアドレス「F02E(H)」をセットする。なお、「F02E(H)」はタイマ記憶領域のアドレスではなく、2バイトタイマ群の最下位に配置された2バイトタイマ「_TM2_GAME(最小遊技時間)」の下位桁アドレス(上位アドレス)「F02C(H)」に「+2」したアドレスである。
そして、ステップS802〜S805では「2バイトタイマの計測」が行われ、ステップS806〜S809では「1バイトタイマの計測」が行われる。
ステップS802では、メイン制御基板60は、2バイトタイマ数をセットする。具体的には、図15の場合、2バイトタイマは3個用意されているので、Bレジスタに「3」をセットする。
ステップS803では、メイン制御基板60は、次のタイマアドレスをセットする。具体的には、HLレジスタ値を「1」減算し、さらにHLレジスタ値を「1」減算する。減算後の値はHLレジスタに記憶される。この結果、HLレジスタが指定するアドレスは「2」減算されたものとなり、1ループ目の場合は、最下位に記憶される最初の2バイトタイマ「_TM2_GAME(最小遊技時間)」の下位桁アドレス(上位アドレス)となる。2ループ目以降では、上位側の次の2バイトタイマの下位桁アドレス(上位アドレス)となる。
なお、ステップS803の処理は、次の2バイトタイマがない場合(現在の指定先が最後の2バイトタイマ「_TM2_HE_CHK」で、次のタイマが1バイトタイマ「_TM1_BLON_CHK」である場合)には実行されない。但し、次の2バイトタイマの有無はステップS803で判断されるものではなく、このような場合は後述するステップS805で「YES」と判断されてステップS806に進み、ステップS803の処理が行われることがないからである。
ステップS804では、メイン制御基板60は、2バイトタイマ値を更新する。具体的には、HLレジスタに記憶されているアドレスに記憶されている値を下位桁とし、「HL+1」レジスタに記憶されているアドレスに記憶されている値を上位桁とした2バイトのデータから「1」を減算する。ステップS804の処理は、図56のステップS607における処理と同様であり、具体値の各例における処理や桁下がり発生時の処理も同様に適用される。すなわち、ステップS804では、2バイトタイマ値に対して、図56で説明した「特殊減算処理」が行われる。
ステップS805では、メイン制御基板60は、2バイトタイマのタイマ計測が終了したか否かを判断する。具体的にはBレジスタ値を「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」以外である場合は、タイマ値が更新されていない2バイトタイマが残っていることを意味するので、2バイトタイマのタイマ計測が終了していないと判断し(ステップS805のNO)、ステップS803に戻る。一方、減算後のBレジスタ値が「0」である場合は、ステップS804における2バイトタイマ値の更新処理が2バイトタイマ数の分だけ繰り返されたことを意味するので、2バイトタイマのタイマ計測が終了したと判断し(ステップS805のYES)、ステップS806に進む。
ステップS806では、メイン制御基板60は、1バイトタイマ数をセットする。具体的には、図15の場合、1バイトタイマは7個用意されているので、Bレジスタに「7」をセットする。
ステップS807では、メイン制御基板60は、次のタイマアドレスをセットする。具体的には、HLレジスタ値を「1」減算する。減算後の値はHLレジスタに記憶される。この結果、HLレジスタが指定するアドレスは、上位側の次の1バイトタイマのアドレスとなる。
なお、ステップS807の処理は、次の1バイトタイマがない場合(現在の指定先が最後の1バイトタイマ「_TM1_OUT_CNT」である場合)には実行されない。但し、次の1バイトタイマの有無はステップS807で判断されるものではなく、このような場合は後述するステップS809で「YES」と判断されて本フローチャートの処理が終了するためである。
ステップS808では、メイン制御基板60は、1バイトタイマ値を更新する。具体的には、HLレジスタに記憶されているアドレスに記憶されている値を「1」減算する。ステップS808の処理は、図56のステップS603における処理と同様であり、桁下がり発生時の処理も同様に適用される。すなわち、ステップS808では、1バイトタイマ値に対して、図56で説明した「特殊減算処理」が行われる。
ステップS809では、メイン制御基板60は、1バイトタイマのタイマ計測が終了したか否かを判断する。具体的にはBレジスタ値を「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」以外である場合は、タイマ値が更新されていない1バイトタイマが残っていることを意味するので、1バイトタイマのタイマ計測が終了していないと判断し(ステップS809のNO)、ステップS807に戻る。一方、減算後のBレジスタ値が「0」である場合は、ステップS808における1バイトタイマ値の更新処理が1バイトタイマ数の分だけ繰り返されたことを意味するので、1バイトタイマのタイマ計測が終了したと判断し(ステップS809のYES)、本フローチャートの処理を終了する。
以上のように、図60に示す第1の変形例では、図56に示したタイマ計測(I_TIME_COUNT)と同様に、HLレジスタ値を所定値だけ変更する処理を行うことにより、次のタイマの記憶先(アドレス)を指定することができ、また、タイマ値の更新において「特殊減算処理」が行われる。したがって、第1の変形例によるタイマ計測(I_TIME_COUNT)によっても、[4−3−1]で述べた本実施形態による効果を得ることができる。
[4−3−4−2.第2の変形例]
図61は、タイマ計測(I_TIME_COUNT)の第2の変形例を示すフローチャートである。前述したように、第2の変形例では、タイマ計測を開始するときにセットする計測開始タイマアドレスを「F02C(H)」とする
図61によれば、まず、ステップS811において、メイン制御基板60は、計測開始タイマアドレスをセットする。具体的には、HLレジスタにアドレス「F02C(H)」をセットする。なお、「F02C(H)」は、2バイトタイマ群の最下位に配置された2バイトタイマ「_TM2_GAME(最小遊技時間)」の下位桁アドレス(上位アドレス)である。
そして、ステップS812〜S815では「2バイトタイマの計測」が行われ、ステップS817〜S820では「1バイトタイマの計測」が行われる。なお、2バイトタイマの計測と1バイトタイマの計測の間のステップS816では、HLレジスタに記憶された指定アドレスを補正する処理が行われる。
ステップS812では、メイン制御基板60は、2バイトタイマ数をセットする。具体的には、図15の場合、2バイトタイマは3個用意されているので、Bレジスタに「3」をセットする。
ステップS813では、メイン制御基板60は、2バイトタイマ値を更新する。具体的には、HLレジスタに記憶されているアドレスに記憶されている値を下位桁とし、「HL+1」レジスタに記憶されているアドレスに記憶されている値を上位桁とした2バイトのデータから「1」を減算する。ステップS813の処理は、図56のステップS607における処理と同様であり、具体値の各例における処理や桁下がり発生時の処理も同様に適用される。すなわち、ステップS813では、2バイトタイマ値に対して、図56で説明した「特殊減算処理」が行われる。
ステップS814では、メイン制御基板60は、次のタイマアドレスをセットする。具体的には、HLレジスタ値を「1」減算し、さらにHLレジスタ値を「1」減算する。する。減算後の値はHLレジスタに記憶される。この結果、HLレジスタが指定するアドレスは「2」減算されたものとなるので、(現在の指定先が最後の2バイトタイマ「_TM2_HE_CHK」である場合を除き、)上位側の次の2バイトタイマの下位桁アドレス(上位アドレス)となる。
なお、ステップS814の処理は、次の2バイトタイマがない場合(現在の指定先が最後の2バイトタイマ「_TM2_HE_CHK」で、次のタイマが1バイトタイマ「_TM1_BLON_CHK」である場合)でも実行される。このとき、具体的には、HLレジスタが指定するアドレスは、ステップS814における演算によって「F028(H)」から「F026(H)」となる。この演算後のHLレジスタが指定するアドレス「F026(H)」は、最後の2バイトタイマ「_TM2_HE_CHK」に隣接する最初の1バイトタイマ「_TM1_BLON_CHK」のアドレスではなく、さらに隣の1バイトタイマ「_TM1_BLOFF_CHK」のアドレスとなる。後述するステップS816では、このような指定アドレスのずれを補正する処理を行う。
ステップS815では、メイン制御基板60は、2バイトタイマのタイマ計測が終了したか否かを判断する。具体的にはBレジスタ値を「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」以外である場合は、タイマ値が更新されていない2バイトタイマが残っていることを意味するので、2バイトタイマのタイマ計測が終了していないと判断し(ステップS815のNO)、ステップS813に戻る。一方、減算後のBレジスタ値が「0」である場合は、ステップS813における2バイトタイマ値の更新処理が2バイトタイマ数の分だけ繰り返されたことを意味するので、2バイトタイマのタイマ計測が終了したと判断し(ステップS815のYES)、ステップS816に進む。
ステップS816では、HLレジスタに記憶されている指定アドレスを補正する。具体的には、HLレジスタ値を「1」加算し、HLレジスタに記憶する。ステップS814で説明したように、ステップS816に進んだときのHLレジスタ値は「F026(H)」となっており、この指定アドレスは、本来「次のタイマアドレス」として指定するべき1バイトタイマ「_TM1_BLON_CHK」のアドレス「F027(H)」よりも「1」小さいものとなっている。そこで、ステップS816でHLレジスタ値を「1」加算することにより、指定アドレスのずれが補正(解消)され、最初の1バイトタイマ「_TM1_BLON_CHK」のアドレス「F027(H)」が指定される。したがって、この後のステップS817から、1バイトタイマの計測を開始することができる。
ステップS817では、メイン制御基板60は、1バイトタイマ数をセットする。具体的には、図15の場合、1バイトタイマは7個用意されているので、Bレジスタに「7」をセットする。
ステップS818では、メイン制御基板60は、1バイトタイマ値を更新する。具体的には、HLレジスタに記憶されているアドレスに記憶されている値を「1」減算する。ステップS818の処理は、図56のステップS603における処理と同様であり、桁下がり発生時の処理も同様に適用される。すなわち、ステップS818では、1バイトタイマ値に対して、図56で説明した「特殊減算処理」が行われる。
ステップS819では、メイン制御基板60は、次のタイマアドレスをセットする。具体的には、HLレジスタ値を「1」減算する。減算後の値はHLレジスタに記憶される。この結果、HLレジスタが指定するアドレスは、(現在の指定先が最後の1バイトタイマ「_TM1_OUT_CNT」である場合を除き、)上位側の次の1バイトタイマのアドレスとなる。
なお、ステップS819の処理は、次の1バイトタイマがない場合(現在の指定先が最後の1バイトタイマ「_TM1_OUT_CNT」である場合)でも実行される。このとき、具体的には、HLレジスタが指定するアドレスは、ステップS819における演算によって「F021(H)」から「F020(H)」となり、演算後のHLレジスタが指定するアドレス「F020(H)」は、タイマ記憶領域の外側のアドレスとなるが、その後の処理では使用されない。
ステップS820では、メイン制御基板60は、1バイトタイマのタイマ計測が終了したか否かを判断する。具体的にはBレジスタ値を「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。減算後のBレジスタ値が「0」以外である場合は、タイマ値が更新されていない1バイトタイマが残っていることを意味するので、1バイトタイマのタイマ計測が終了していないと判断し(ステップS820のNO)、ステップS818に戻る。一方、減算後のBレジスタ値が「0」である場合は、ステップS818における1バイトタイマ値の更新処理が1バイトタイマ数の分だけ繰り返されたことを意味するので、1バイトタイマのタイマ計測が終了したと判断し(ステップS820のYES)、本フローチャートの処理を終了する。
以上のように、図61に示す第2の変形例では、図56に示したタイマ計測(I_TIME_COUNT)と同様に、HLレジスタ値を所定値だけ変更する処理を行うことにより、次のタイマの記憶先(アドレス)を指定することができ、また、タイマ値の更新において「特殊減算処理」が行われる。したがって、第1の変形例と同様、第2の変形例によるタイマ計測(I_TIME_COUNT)によっても、[4−3−1]で述べた本実施形態による効果を得ることができる。
なお、本実施形態では、図59に示したように、RWM63の上位アドレス側に1バイトタイマ群が配置され、下位アドレス側に2バイトタイマ群が配置される場合を例に説明したが、各バイトタイマ群の配置関係は逆であってもよい(すなわち、1バイトタイマ群が下位アドレス側に配置され、2バイトタイマ群が上位アドレス側に配置されてもよい)。このような場合でも、図56、図60、及び図61に示したタイマ計測(I_TIME_COUNT)を適切に適用することによって、本実施形態による効果を得ることができる。また、各タイマ値の記憶領域は1バイト及び2バイトの組合せに限定されるものではなく、単一のデータサイズで構成されたり(例えば、全て2バイトタイマ)、他のデータサイズのタイマが含まれたりしてもよい。換言すると、1バイトタイマの数が「N(N≧0)」、2バイトタイマの数が「M(M≧1)」であっても、1バイトタイマの数が「N(N≧1)」、2バイトタイマの数が「M(M≧0)」であってもよい。また、1バイトタイマの数が1個の場合であっても1バイトタイマ記憶領域と称してもよいし、2バイトタイマの数が1個の場合であっても2バイトタイマ記憶領域と称してもよい。
また、本発明の遊技機では、タイマ値を記憶する記憶領域として、全てのタイマ値が連続したアドレス空間に記憶されている必要はなく、タイマ値を記憶する記憶領域の少なくとも一部が、連続したアドレスに配置されていればよい。
また、これまでの説明において示した具体的なタイマ値は一例に過ぎず、本実施形態に係るスロットマシン10では、図15や図59に示したタイマ値に限定されることなく、任意のタイマ値を用いることができる。具体的には例えば、タイマ値を記憶するタイマ記憶領域の各アドレスは、それぞれ任意に定めることができる。また例えば、タイマ値を記憶するタイマ記憶領域に記憶される値(タイマ値)のラベル、用途(内容)、及びデータ(初期値等)も、任意に定めることができる。また例えば、1のタイマ値を記憶するタイマ記憶領域のデータサイズは、1バイト(1バイトタイマ記憶領域)または2バイト(2バイトタイマ記憶領域)だけに限定されず、3バイト(3バイトタイマ記憶領域)以上であってもよい。
また、本実施形態では、図15に示したタイマの説明において、RWM63に記憶される各タイマのタイマ値は、1回の割込み処理が行われるごと(1割込みごと)に、「1」ずつ減算されるとしたが、本実施形態に係るスロットマシン10においては、タイマ値の更新は1割込みごとに限定されるものではない。例えば、2割込みごとや4割込みごとにタイマ値が更新されるものであってもよい。また、割込みの周期についても2.235msに限定されるものではない。換言すると、所定の周期でタイマ値が更新可能に構成されていればよい。
また、本実施形態では、タイマの説明において、割込み処理ごとにタイマ値を減算する減算タイマを例にとって説明したが、本実施形態による情報処理は、割込み処理ごとにタイマ値を加算する加算タイマにも適用することができる。但し、加算タイマに適用する場合は、タイマ計測(I_TIME_COUNT)におけるタイマ値の更新(例えば、図56のステップS603,S607等)において、1バイトデータ(または2バイトデータ)を加算演算した結果が桁あふれとなったときに、対象アドレスに「0」を記憶する「特殊加算処理」を行うようにする必要がある。
以上は、本発明のスロットマシン10の一形態であるが、これに限定されることはない。スロットマシン以外の遊技機、例えば、パチンコ機や、パチンコ機とスロットマシンとを融合させてなる遊技機や、遊技メダルを要さない管理遊技機(メダルレス遊技機、封入式遊技機)や、カジノマシン等であっても本発明を適用することができる。