以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。図1は、本実施例におけるパチンコ遊技機1の正面図であり、主要部材の配置レイアウトを示す。パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3とから構成されている。遊技盤2にはガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。
この遊技領域の中央位置上方には、識別可能な識別情報としての特別図柄を可変表示する特別図柄表示装置4が設けられている。特別図柄表示装置4の下方には、特別図柄とは異なる飾り図柄の可変表示や所定の演出表示となる画像表示などを行うことができる画像表示装置5が設けられている。画像表示装置5の下方には、始動入賞口を形成する普通可変入賞球装置6が配置されている。普通可変入賞球装置6の下方には、大入賞口を形成する特別可変入賞球装置7や、普通図柄表示器40が設けられている。
特別図柄表示装置4は、例えば7セグメントやドットマトリクスのLED等から構成されている。特別図柄表示装置4は、普通可変入賞球装置6への遊技球の入賞により始動条件が成立したことに基づいて行われる可変表示ゲームとしての特図ゲームにおいて、例えば「0」〜「9」を示す数字等から構成され、各々が識別可能な複数種類の識別情報として機能する特別図柄を可変表示する。各特別図柄には、例えば各図柄が示す数字と同一の番号といった、各々の特別図柄に対応した図柄番号が付されている。なお、特別図柄表示装置4は、遊技者に特定の停止図柄を把握しづらくさせるために、例えば「00」〜「99」を示す数字など、より多種類の図柄を可変表示するように構成されていてもよい。
特別図柄表示装置4により行われる特図ゲームでは、特別図柄の変動を開始させた後、所定時間が経過すると、特別図柄の可変表示結果となる確定特別図柄を停止表示(導出表示)する。このとき、特別図柄表示装置4にて特図ゲームでの確定特別図柄として特定の特別図柄(大当り図柄)が停止表示されれば特定表示結果としての「大当り」となり、大当り図柄以外の特別図柄が停止表示されれば「ハズレ」となる。特図ゲームでの変動表示結果が「大当り」になると、特別可変入賞球装置7が備える開閉板を開閉させることによる特定遊技状態としての大当り遊技状態に制御される。この実施の形態におけるパチンコ遊技機1では、具体的な一例として、「7」を示す特別図柄を大当り図柄とし、それ以外の数値を示す特別図柄をハズレ図柄としている。
特別図柄表示装置4による特図ゲームでの確定特別図柄として大当り図柄である「7」を示す特別図柄が停止表示されたことに基づく大当り遊技状態では、特別可変入賞球装置7の開閉板により、所定の開放期間(例えば29秒)あるいは所定個数(例えば10個)の入賞球が発生するまでの期間において大入賞口が開放され、開放されている間は遊技盤2の表面を落下する遊技球が受け止められて大入賞口への入賞が可能となり、その後に大入賞口を閉鎖することで1回のラウンドが終了する。そして、この開閉サイクルとしてのラウンドを所定の上限回数(例えば15ラウンド)まで繰り返すことができる。
画像表示装置5は、例えばLCD等から構成され、多数の画素(ピクセル)を用いたドットマトリクス方式による画面表示を行うものであればよい。画像表示装置5の表示画面では、特別図柄表示装置4による特図ゲームにおける特別図柄の変動表示に対応して、例えば3つに分割された表示領域としての可変表示部にて、各々が識別可能な複数種類の飾り図柄を変動可能に表示する可変表示を行う。具体的な一例として、画像表示装置5には、「左」、「中」、「右」の可変表示部が配置され、各可変表示部にて飾り図柄が可変表示される。そして、特別図柄表示装置4における特別図柄の変動表示が開始されるときには、画像表示装置5における「左」、「中」、「右」の各可変表示部にて飾り図柄の変動表示(例えば切替表示やスクロール表示)を開始させ、その後、特別図柄表示装置4における特別図柄の変動表示結果として確定特別図柄が停止表示されるときに、画像表示装置5における「左」、「中」、「右」の各可変表示部にて確定飾り図柄となる飾り図柄が停止表示されることで、可変表示結果となる飾り図柄の組合せが停止表示(導出表示)される。
例えば、「左」、「中」、「右」の各可変表示部では、10種類の数字「0」〜「9」を示す図柄が飾り図柄として変動可能に表示される。各飾り図柄には、例えば各図柄が示す数字と同一の番号といった、各々の飾り図柄に対応した図柄番号が付されている。そして、「左」、「中」、「右」の各可変表示部では、飾り図柄の変動表示が開始されると、例えば図柄が示す番号の小さいものから大きいものへと切替表示やスクロール表示が行われ、「9」を示す飾り図柄が表示されると、次に「0」を示す飾り図柄が表示される。そして、特別図柄表示装置4における特図ゲームでの確定特別図柄が大当り図柄である場合すなわち大当り発生時には、「左」、「中」、「右」の可変表示部にて所定の組合せからなる確定飾り図柄が停止表示される。具体的には、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であるときには、「左」、「中」、「右」の可変表示部にて同一の飾り図柄が停止表示される。
この実施の形態では、図柄番号が奇数である飾り図柄「1」、「3」、「5」、「7」または「9」は確変大当り用の飾り図柄(確変図柄)として用いられ、図柄番号が偶数である飾り図柄「0」、「2」、「4」、「6」または「8」は通常大当り用の飾り図柄(通常図柄)として用いられる。飾り図柄の可変表示結果として「左」、「中」、「右」の可変表示部にて同一の確変図柄(確変大当り組合せの飾り図柄)が停止表示されたときには、確変大当りとなる。確変大当りとなったときには、その確変大当りに基づく大当り遊技状態が終了した後、所定回数(例えば100回)の特図ゲームが実行されるまで、あるいは特図ゲームにおける可変表示結果が大当りとなるまで、特別遊技状態の1つとして、継続して確率変動制御(確変制御)が行われる高確率状態(確率向上状態)となる。この高確率状態では、特図ゲームにおいて可変表示結果として大当り図柄が停止表示されて大当り遊技状態に制御される確率が、通常遊技状態時よりも向上する。なお、通常遊技状態とは、大当り遊技状態や特別遊技状態以外の遊技状態のことであり、特図ゲームにおける確定特別図柄として大当り図柄が停止表示されて大当りとなる確率が、電源投入直後などの初期設定状態と同一に制御されている。
また、飾り図柄における可変表示結果として「左」、「中」、「右」の可変表示部にて同一の通常図柄(通常大当り組合せの飾り図柄)が停止表示されたときには、通常大当りとなる。この通常大当りとなるときには、確変制御が行われないため、特図ゲームにおける可変表示結果が大当りとなって大当り遊技状態に制御される確率は向上しない。その一方で、通常大当りとなるときには、所定回数(例えば100回)の特図ゲームの実行が開始されるまで、または、大当りとなる特図ゲームの実行が開始されるまで、高確率状態とは異なる特別遊技状態の1つとして、継続して時間短縮制御(時短制御)が行われる時間短縮状態となるようにしてもよい。時短制御が行われる時間短縮状態では、各特図ゲームにて大当りとなって大当り遊技状態に制御される確率は通常遊技状態と同一であるが、特図ゲームにおいて特別図柄の可変表示が開始されてから表示結果となる確定特別図柄が停止表示されるまでの時間である可変表示時間は、通常遊技状態よりも短くなるように制御される。
「左」、「中」、「右」の各可変表示部では、アルファベットを示す複数種類の図柄が飾り図柄として変動可能に表示されてもよいし、所定のモチーフに関連する複数種類のキャラクタ図柄を飾り図柄として可変表示してもよい。また、画像表示装置5では、特別図柄表示装置4による特図ゲームの実行中において、様々な演出態様のいずれかによる演出表示を行うことができる。なお、可変表示部は固定的な領域であってもよいが、遊技進行中に、画像表示装置5の表示領域において移動したり大きさが変化してもよい。
加えて、画像表示装置5には、普通可変入賞球装置6に設けられた始動入賞口へ入った有効入賞球数すなわち保留記憶数(始動入賞記憶数)を表示する特別図柄始動記憶表示エリアが設けられていてもよい。特別図柄始動記憶表示エリアでは、保留記憶数が所定の上限値(例えば「4」)未満のときの有効始動入賞に対応して、入賞表示が行われる。具体的な一例として、通常青色であった表示を赤色表示に変化させる。この場合、飾り図柄の表示エリア(可変表示部)と特別図柄始動記憶表示エリアとを区分けして設けることで、飾り図柄の可変表示中も保留記憶数が表示された状態とすることができる。なお、特別図柄始動記憶表示エリアを飾り図柄の表示エリアの一部に設けるようにしてもよい。この場合には、飾り図柄の可変表示中には保留記憶数の表示を中断するようにすればよい。このように画像表示装置5に設けられた特別図柄始動記憶表示エリアにて保留記憶数を表示する場合には、演出制御基板12に搭載された演出制御用マイクロコンピュータ120(図5)によって、特別図柄始動記憶表示エリアにおける保留記憶数の表示動作が制御されることになる。他方、特別図柄始動記憶表示エリアにて保留記憶数を表示する場合でも、主基板11に搭載された遊技制御用マイクロコンピュータ100(図5)の制御により保留記憶数が表示される表示器(特別図柄始動記憶表示器)が、画像表示装置5とは別個に設けられるとよい。
普通可変入賞球装置6は、ソレノイド81(図5)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)を備えて構成されている。普通可変入賞球装置6は、普通図柄表示器40による普通図柄の可変表示(普通図ゲーム)で表示結果が「当り」となったときに、電動チューリップの可動翼片を所定時間が経過するまで傾動位置に制御することで、可動翼片を垂直位置としたときに比べて遊技球が始動入賞口に入賞しやすくなる。普通可変入賞球装置6に入賞した遊技球は、始動口スイッチ22(図2、図5)によって検出される。始動口スイッチ22によって遊技球が検出されたことに基づいて、所定個数(例えば4個)の賞球の払い出しが行われる。
特別可変入賞球装置7は、ソレノイド82(図5)によって大入賞口を開成及び閉成制御する開閉板を備えて構成されている。この開閉板は、特別図柄表示装置4による特図ゲームでの変動表示結果などに基づいて大当り遊技状態となった場合に、所定期間あるいは所定個数の入賞球が発生するまでの期間において、遊技者にとって有利な第1の状態としてソレノイド82により大入賞口を開放した状態となった後に、閉鎖する。他方、例えばパチンコ遊技機1の電源投入後に大当り遊技状態が発生する以前までのような通常時には、遊技者にとって不利な第2の状態としてソレノイド82により大入賞口を閉鎖した状態にある。特別可変入賞球装置7にて開閉板が大入賞口を開放しているときに大入賞口に遊技球が入賞した場合には、カウントスイッチ24(図2、図5)によって当該遊技球が検出されたことに基づいて、所定個数(例えば15個)の賞球の払い出しが行われる。なお、大入賞口に入賞して遊技盤2の背面に導かれた遊技球のうち一方の領域(V入賞領域;特別領域)に入ったものはV入賞スイッチ23(図5)で検出された後にカウントスイッチ24で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ24で検出されるようにしてもよい。この場合、遊技盤2の背面には、大入賞口内の経路を切り替えるためのソレノイドが設けられていてもよい。あるいは、V入賞領域を設けずに、大当り遊技状態における最終ラウンド以外のラウンドでは、常に次のラウンドへと移行できるようにしてもよい。
また、遊技盤2には、複数の入賞口42A〜42Dが設けられ、遊技球の入賞口42A〜42Dへの入賞は、それぞれ入賞口スイッチ25A〜25D(図2、図5)によって検出される。各入賞口42A〜42Dによって遊技球が検出されたことに基づいて、所定個数(例えば7個)の賞球の払い出しが行われる。すなわち、各入賞口42A〜42Dは、遊技媒体としての遊技球を受け入れて入賞を許容する領域として遊技盤2に設けられる入賞領域を構成している。また、普通可変入賞球装置6に形成された始動入賞口や、特別可変入賞球装置7に形成された大入賞口も、遊技媒体としての遊技球を受け入れて入賞を許容する入賞領域を構成する。
図2は、遊技盤2に設けられている入賞口などの入賞領域に入賞した遊技球を検出するための各スイッチの関係を示す説明図である。図2に示すように、始動口スイッチ22、カウントスイッチ24、及び入賞口スイッチ25A〜25Dのそれぞれで検出された遊技球は、例えば遊技盤2の背面において、全入賞球検出スイッチ29の設置位置に誘導され、全入賞球検出スイッチ29によって検出される。ここで、全入賞球検出スイッチ29の設置位置は、例えば各入賞球通路が合流する位置、またはその位置の下流側となる所定位置であればよい。
普通図柄表示器40は、例えばLED等から構成され、遊技領域に設けられた通過ゲート41を通過した遊技球がゲートスイッチ21(図5)によって検出されたことを始動条件とする普通図ゲームにおいて、点灯、点滅、発色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となる。ここで、前述の高確率状態と時間短縮状態では、普通図柄表示器40による普通図ゲームにおける可変表示時間が通常遊技状態のときよりも短くなるとともに、各回の普通図ゲームで表示結果が当り図柄となる確率が向上するようにしてもよい。このときにはさらに、普通可変入賞球装置6における可動翼片の傾動時間が通常遊技状態のときよりも長くなるとともに、その傾動回数が通常遊技状態のときよりも増加するようにしてもよい。このように、高確率状態や時間短縮状態では、大当り遊技状態とは異なる遊技者にとって有利な遊技状態となる。ここで、時間短縮状態では、確変制御が行われず、大当り遊技状態となる確率は通常遊技状態のときと同じであるので、高確率状態の方が時間短縮状態よりも遊技者にとって有利である。
また、遊技盤2の遊技領域には、上記した構成以外にも、装飾ランプを内蔵した風車やアウト口等が設けられている。遊技領域外側の左右上部には、効果音を発する2つのスピーカ8L、8Rが設けられている。遊技領域の外周には、点灯又は点滅する遊技効果ランプ9が設けられている。加えて、遊技領域の外側左部には、賞球残数があるときに点灯する賞球ランプが設けられていてもよい。遊技領域の外側上部には、補給球が切れたときに点灯する球切れランプが設けられていてもよい。
遊技領域の下部表面には、打球供給皿としての上皿32が設けられている。上皿32に貯留された遊技球は、球送り装置62(図5)が駆動することにより、発射装置19(図5)に供給される。上皿32の下部には、上皿32に収容しきれない遊技球を貯留する余剰球受皿としての下皿33が設けられている。遊技領域外側の右下位置には、発射装置19を駆動して遊技球を遊技領域に向けて発射させるために遊技者等が操作する操作ノブ30が設けられている。操作ノブ30には、静電容量の変化に基づいて遊技者が操作ノブ30に触れていることを検出するためのタッチセンサ75(図5)や、所定間隔での遊技球発射を単発打ち制御に切り替える単発発射スイッチ(図示せず)などが設けられている。単発打ち制御は、単発発射スイッチからの信号の入力タイミングに応じて遊技球を発射する制御である。
さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、カードユニットという)70も示されている。カードユニット70には、使用可能状態であるか否かを示す使用可表示ランプ、カードユニット70がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット70内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、及びカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット70を開放するためのカードユニット錠などが設けられている。
図3は、パチンコ遊技機1の背面図である。パチンコ遊技機1の背面上方には、補給球としての遊技球を貯留する貯留タンク65と、貯留タンク65に貯留された遊技球を払出ケース17へ誘導する誘導レール66とが設けられている。誘導レール66の下流は、カーブ樋を介して2列の球通路80a、80bに連通されている。球通路80a、80bの上流には、球切れスイッチ27が設置されている。一例として、球切れスイッチ27は、球通路80a、80bに27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止され、球貸しの一単位の最大払出個数(例えば100円分に相当する25個)以上が確保されていることを確認可能にする。
球通路80a、80bの下部には、払出ケース17が固定されている。また、操作ノブ30の背面付近には、遊技球を発射して遊技領域に打ち込むための発射装置19が設けられている。さらに、パチンコ遊技機1の背面下方にて打球供給皿としての上皿32と余剰球受皿としての下皿33との間を連通する余剰球通路の側壁には、満タンスイッチ26が設けられている。例えば、賞球または球貸し要求に基づく遊技球が多数払い出されて上皿32が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は余剰球通路を経て下皿33へと導かれる。なおも遊技球が払い出されて下皿33に所定量以上の遊技球が貯留されたときには、例えば所定の感知レバーが満タンスイッチ26を押圧してオンする。
図4は、払出ケース17で覆われた払出装置の構成例を示す分解斜視図である。この例では、払出ケース17としての3つのケース91、92、93の内部に払出装置が形成されている。ケース91、92の上部には、それぞれ球通路80a、80bと連通する穴85、86が設けられており、遊技球は、この穴85、86から払出装置内へと流入する。払出装置は、賞球または球貸し要求に基づく遊技球を払い出すものであり、駆動源となる払出モータ51を含む。払出モータ51は、例えばステッピングモータを用いて構成されていればよい。この場合、払出モータ51は、その1相目から4相目(φ1〜φ4)が払出制御基板15から送られる払出駆動信号に従って励磁されることにより、回転動作が制御される。
払出モータ51の回転軸にはギア87が嵌合されており、払出ケース17の内部には、ギア87と噛み合うギア88と、ギア88の中心軸に嵌合して球載置部を有するカム89と、カム89の下方における球通路90とが設けられている。例えば、穴85、86から流入した遊技球は、カム89の球載置部が1/3回転するごとに1個ずつ交互に球通路90を経て落下する。さらに、払出ケース17の内部には、例えば発光素子(LED)と受光素子とから構成される払出モータ位置センサ71が設けられている。払出モータ位置センサ71は、払出モータ51の回転位置を検出するためのセンサであり、払出モータ51における遊技球の詰まり、いわゆる球噛みを検出するために用いられる。払出ケース17の内部に設けられた球通路90の下部には、例えば近接スイッチによる払出カウントスイッチ72が配置されている。払出カウントスイッチ72は、球通路90から1個の遊技球が落下するごとにオンして、所定の検出信号を払出制御基板15に送信する。
また、パチンコ遊技機1の背面には、電源基板10、主基板11、演出制御基板12、音声制御基板13、ランプ制御基板14、払出制御基板15、情報端子基板16といった主要基板が、それぞれ適所に配置されている。図5は、電源基板10、主基板11、演出制御基板12、音声制御基板13、ランプ制御基板14といった、各種の制御基板を中心としたシステム構成例を示すブロック図である。主基板11と演出制御基板12との間には、主基板11から演出制御基板12へと伝送される各種の制御信号を中継するための中継基板18なども設けられている。また、払出制御基板15とカードユニット70との間には、インタフェース基板20が介在している。なお、音声制御基板13やランプ制御基板14は、演出制御基板12とは別個の独立した基板によって構成されてもよいし、演出制御基板12にまとめられて1つの基板として構成されてもよい。
電源基板10は、主基板11、演出制御基板12、払出制御基板15等の各制御基板と独立して設置され、パチンコ遊技機1内の各制御基板及び機構部品が使用する電圧を生成する。例えば、電源基板10では、図6に示すように、AC24V、VLP(直流+24V)、VSL(直流+30V)、VDD(直流+12V)、VCC(直流+5V)及びVBB(直流+5V)を生成する。電源基板10は、例えば図6に示すように、変圧回路301と、直流電圧生成回路302と、電源監視回路303と、クリアスイッチ304とを備えて構成されている。また、電源基板10には、バックアップ電源となるコンデンサが設けられていてもよい。このコンデンサは、例えばVBB(直流+5V)の電源ラインから充電されるものであればよい。加えて、電源基板10には、パチンコ遊技機1内の各制御基板及び機構部品への電力供給を実行または遮断するための電源スイッチが設けられていてもよい。あるいは、電源スイッチは、パチンコ遊技機1において、電源基板10の外に設けられていてもよい。
変圧回路301は、例えば商用電源が入力側(一次側)に印加されるトランスや、トランスの入力側に設けられた過電圧保護回路としてのバリスタなどを備えて構成されたものであればよい。ここで、変圧回路301が備えるトランスは、商用電源と電源基板10の内部とを電気的に絶縁するためのものであればよい。変圧回路301は、その出力電圧として、AC24Vを生成する。直流電圧生成回路302は、例えばAC24Vを整流素子で整流昇圧することによってVSLを生成する整流平滑回路を含んでいる。VSLは、ソレノイド駆動用の電源電圧として用いられる。また、直流電圧生成回路302は、例えばAC24Vを整流素子で整流することによってVLPを生成する整流回路を含んでいる。VLPは、ランプ点灯用の電源電圧として用いられる。加えて、直流電圧生成回路302は、例えばVSLに基づいてVDDおよびVCCを生成するDC−DCコンバータを含んでいる。このDC−DCコンバータは、例えば1つまたは複数のスイッチングレギュレータと、そのスイッチングレギュレータの入力側に接続された比較的大容量のコンデンサとを含み、外部からパチンコ遊技機1への電力供給が停止したときに、VSL、VDD、VBB等の直流電圧が比較的緩やかに低下するように構成されたものであればよい。VDDは、例えばゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24、入賞口スイッチ25A〜25D、全入賞球検出スイッチ29といった、遊技媒体を検出する各種スイッチに供給され、これらのスイッチを作動させるために用いられる。
図6に示すように、変圧回路301から出力されたAC24Vは、例えば所定のコネクタや電源ラインを介して、払出制御基板15へと伝送される。VLPは、例えば所定のコネクタや電源ラインを介して、ランプ制御基板14へと伝送される。VSLは、例えば所定のコネクタや電源ラインを介して、主基板11、ランプ制御基板14、払出制御基板15、発射装置19、球送り装置62へと伝送される。発射装置19に伝送されたVSLは、発射用ソレノイド19C(図8)を駆動(励磁)して遊技球を発射するための駆動電圧(ソレノイド駆動電圧)として用いられる。球送り装置62に伝送されたVSLは、球送り用のソレノイドまたはモータを駆動して遊技球を発射装置19に供給するための駆動電圧として用いられる。なお、発射装置19や球送り装置62に供給される駆動電圧は、電源基板10から直接に供給されてもよいし、主基板11などの他の制御基板を介して供給されてもよい。VDD及びVCCは、例えば所定のコネクタや電源ラインを介して、主基板11、ランプ制御基板14及び払出制御基板15へと伝送される。VBBは、例えば所定のコネクタや電源ラインを介して、主基板11及び払出制御基板15へと伝送される。なお、演出制御基板12及び音声制御基板13には、ランプ制御基板14を経由して各電圧が供給されればよい。
電源監視回路303は、例えば停電監視リセットモジュールICを用いて構成され、電源断信号を出力する電源監視手段を実現する回路である。例えば、電源監視回路303は、パチンコ遊技機1において用いられる所定電圧(一例としてVLP)が所定値(一例として+20V)以下になった期間が、予め決められている時間(一例として56ミリ秒)以上継続したときに、電源断信号を出力する。あるいは、電源監視回路303は、パチンコ遊技機1において用いられる所定電圧が所定値以下になると、直ちに電源断信号を出力するようにしてもよい。電源断信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。電源監視回路303から出力された電源断信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、払出制御基板15へと伝送される。なお、外部からパチンコ遊技機1に供給される電力の供給停止を検出するための条件としては、パチンコ遊技機1において用いられる所定電圧が所定値以下になったことに限られず、外部からの電力が途絶えたことを検出できる任意の条件であればよい。例えば、AC24V等の交流波そのものを監視して交流波が途絶えたことを検出条件としてもよいし、交流波をデジタル化した信号を監視して、デジタル信号が平坦になったことをもって交流波が途絶えたことの検出条件としてもよい。
また、電源監視回路303は、例えば所定電圧(一例としてVCC)が所定値(一例として+5V強)以下になったときに、リセット信号を出力してもよい。リセット信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。電源監視回路303から出力されたリセット信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、主基板11、ランプ制御基板14及び払出制御基板15へと伝送される。なお、演出制御基板12には、ランプ制御基板14を経由してリセット信号が伝送されればよい。さらに、リセット信号を出力する回路は、電源監視回路303とは別個に設けられたウォッチドッグタイマ内蔵IC、あるいはシステムリセットICなどを用いて構成されてもよい。
パチンコ遊技機1への電力供給が停止するときには、電源監視回路303が、電源断信号を出力(ローレベルに設定)してから所定期間が経過したときに、リセット信号を出力(ローレベルに設定)する。ここでの所定期間は、例えば主基板11に搭載されている遊技制御用マイクロコンピュータ100及び払出制御基板15に搭載されている払出制御用マイクロコンピュータ150が、所定の電源断処理(例えば図27に示すステップS27のメイン側電源断処理や、図46に示すステップS522の払出側電源断処理など)を実行するのに十分な時間であればよい。すなわち、電源監視回路303は、停電信号としての電源断信号を出力した後、遊技制御用マイクロコンピュータ100及び払出制御用マイクロコンピュータ150が所定の電源断処理を実行完了してから、動作停止信号としてのリセット信号を出力(ローレベルに設定)する。電源監視回路303から出力されたリセット信号を受信した遊技制御用マイクロコンピュータ100や払出制御用マイクロコンピュータ150は、動作停止状態となり、各種の制御処理の実行が停止される。また、パチンコ遊技機1への電力供給が開始され、例えば所定電圧(一例としてVCC)が所定値(一例として+5V強)を超えたときに、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)する。
図7は、パチンコ遊技機1への電力供給が開始されたとき、及び電力供給が停止するときにおける、AC24V、VLP、VCC、リセット信号及び電源断信号の状態を、模式的に示すタイミング図である。図7に示すように、パチンコ遊技機1への電力供給が開始されたときに、VLP及びVCCは徐々に規定値(直流+24V及び直流+5V)に達する。このとき、VLPが第1の所定値を超えると、電源監視回路303は電源断信号の出力を停止(ハイレベルに設定)してオフ状態とする。また、VCCが第2の所定値を超えると、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)してオフ状態とする。他方、パチンコ遊技機1への電力供給が停止するときに、VLP及びVCCは徐々に低下する。このとき、VLPが第1の所定値にまで低下すると、電源監視回路303は電源断信号をオン状態として出力(ローレベルに設定)する。また、VCCが第2の所定値にまで低下すると、電源監視回路303はリセット信号をオン状態として出力(ローレベルに設定)する。
図6に示す電源基板10が備えるクリアスイッチ304は、例えば押しボタン構造を有し、押下などの操作に応じてクリア信号を出力する。クリア信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。クリアスイッチ304から出力されたクリア信号は、例えば所定のコネクタや信号ラインを介して、主基板11へと伝送される。また、クリアスイッチ304の操作がなされていないときには、クリア信号の出力を停止(ハイレベルに設定)する。なお、クリアスイッチ304は、押しボタン構造以外の他の構成(例えばスライドスイッチ構造やトグルスイッチ構造、ダイヤルスイッチ構造など)であってもよい。
図5に示す主基板11は、メイン側の制御基板であり、パチンコ遊技機1における遊技の進行を制御するための各種回路が搭載されている。主基板11は、主として、特図ゲームにおいて用いる乱数の設定機能、所定位置に配設されたスイッチ等からの信号の入力を行う機能、演出制御基板12や払出制御基板15などからなるサブ側の制御基板に宛てて、それぞれに指令情報の一例となる制御コマンドを制御信号として出力して送信する機能、ホールの管理コンピュータに対して各種情報を出力する機能などを備えている。また、主基板11は、特別図柄表示装置4を構成する各セグメントの点灯/消灯制御を行うことにより特別図柄表示装置4における特別図柄の変動表示を制御する一方で、普通図柄表示器40の点灯/点滅/発色制御を行うことにより普通図柄表示器40における普通図柄の変動表示を制御する。
加えて、主基板11は、発射装置19や球送り装置62を駆動させるか停止させるかの判定処理を実行し、駆動させるときには所定の許可信号を送信する機能を備えている。例えば、発射装置19を駆動させるときには、主基板11から発射装置19に対してオン状態の発射許可信号が送信される。また、球送り装置62を駆動させるときには、主基板11から球送り装置62に対してオン状態の供給許可信号が送信される。
図8は、この実施の形態で用いられる発射装置19の一構成例を示すブロック図である。図8に示す発射装置19は、AND回路19Aと、ソレノイド駆動電圧生成回路19Bと、発射用ソレノイド19Cとを備えて構成される。AND回路19Aは、その入力端子に主基板11から伝送された発射許可信号と、インタフェース基板20を介してカードユニット70から伝送された接続信号であるVL信号とが入力される。そして、AND回路19Aからの出力信号は、ソレノイド駆動電圧生成回路19Bに入力される。ソレノイド駆動電圧生成回路19Bは、AND回路19Aからの出力信号がオン状態であるときに、電源基板10から供給されたVSLを用いて操作ノブ30からの操作量検出信号に応じたソレノイド駆動電圧を生成する。他方、AND回路19Aからの出力信号がオフ状態であるときには、ソレノイド駆動電圧が生成されない。発射用ソレノイド19Cは、ソレノイド駆動電圧生成回路19Bからソレノイド駆動電圧の供給を受けて励磁され、その中心励磁磁気力により、例えば遊技球を直接加速させたり、あるいは打球槌を加速させて遊技球を打撃したりすることで、遊技球を遊技領域に向けて発射させる。
なお、ソレノイド駆動電圧生成回路19Bは、操作ノブ30からの操作量検出信号に応じたソレノイド駆動電圧を生成するものに限定されず、AND回路19Aからの出力信号がオン状態であるときに、電源基板10から供給されたVSLを用いて一定のソレノイド駆動電圧を生成するものであってもよい。そして、例えば操作ノブ30の操作量に応じて、遊技球の発射位置を調整することや、打球槌の移動量を調整することなどといった、機械的な制御により、遊技球の発射速度を変更できるようにしてもよい。また、カードユニット70から出力されたVL信号は、インタフェース基板20から発射装置19に直接入力されてもよいし、例えば払出制御基板15などの制御基板を介して発射装置19に入力されてもよい。
図5に示すように、主基板11には、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24、入賞口スイッチ25A〜25D、全入賞球検出スイッチ29からの検出信号を受信するための配線が接続されている。なお、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24、入賞口スイッチ25A〜25D、全入賞球検出スイッチ29は、例えばセンサと称されるものなどのように、遊技媒体としての遊技球を検出できる任意の構成を有するものであればよい。ここで、始動口スイッチ22、カウントスイッチ24、及び入賞口スイッチ25A〜25Dの各スイッチは、遊技領域に設けられた複数の入賞領域それぞれに対応して設けられ、各入賞領域への遊技球の入賞を検出して入賞検出信号を出力する入賞口スイッチとなる。また、ゲートスイッチ21のような通過ゲート41を通過した遊技球を検出するものであっても、賞球の払い出しが行われるものであれば、入賞領域への遊技球の入賞を検出して入賞検出信号を出力する入賞口スイッチに含まれることになる。さらに、始動口スイッチ22は、遊技球が始動入賞口に入賞したことを検出し、特別図柄表示装置4による特図ゲームを実行するための始動条件が成立したことを示す始動入賞信号を出力する始動入賞検出スイッチとなる。
加えて、主基板11には、普通可変入賞球装置6における可動翼片の傾動制御を行うための指令信号をソレノイド81に送信するための配線や、特別可変入賞球装置7における開閉板の開閉制御を行うための指令信号をソレノイド82に送信するための配線が接続されている。さらに、主基板11には、特別図柄表示装置4や普通図柄表示器40の表示制御を行うための指令信号を送信するための配線や、エラー解除スイッチ31からの検出信号を受信するための配線が、接続されている。ここで、エラー解除スイッチ31は、遊技制御用マイクロコンピュータ100が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。また、主基板11には、遊技者が操作ノブ30に触れているか否かを検出するタッチセンサ75からのタッチセンサ検出信号が入力される。タッチセンサ75は、タッチリングにより操作ノブ30における遊技者の接触が検出されたときにオン状態となるタッチセンサ検出信号を、主基板11へと出力する。
主基板11から演出制御基板12に向けて出力される制御信号は、中継基板18によって中継される。ここで、主基板11には、例えば中継基板18に対応して主基板側コネクタが設けられるとともに、この主基板側コネクタと遊技制御用マイクロコンピュータ100との間に、出力バッファ回路が接続されていてもよい。この出力バッファ回路は、例えば主基板11から中継基板18を介して演出制御基板12へ向かう方向にのみ制御信号を通過させることができ、中継基板18から主基板11への信号の入力を阻止する。従って、演出制御基板12や中継基板18の側から主基板11の側に信号が伝わる余地はない。
中継基板18には、例えば主基板11から演出制御基板12に対して出力される制御信号を伝送するための配線毎に、伝送方向規制回路が設けられていればよい。各伝送方向規制回路は、主基板11に対応して設けられた主基板用コネクタにアノードが接続されるとともに演出制御基板12に対応して設けられた演出制御基板用コネクタにカソードが接続されたダイオードと、一端がダイオードのカソードに接続されるとともに他端がグランド(GND)接続された抵抗とから構成されている。この構成により、各伝送方向規制回路は、演出制御基板12から中継基板18への信号の入力を阻止して、主基板11から演出制御基板12へ向かう方向にのみ信号を通過させることができる。従って、演出制御基板12の側から主基板11側に信号が伝わる余地はない。なお、主基板への不正な信号の入力を防ぐために、主基板とサブ基板との間にサブ基板から主基板への信号入力を規制する一方向データ転送手段を設けたものは既に提案されている(例えば、特開平8−224339号公報などを参照)。しかしながら、主基板と一方向データ転送手段との間には主基板への信号入力を規制するものがないため、一方向データ転送手段に改変を加えることで主基板に不正な信号を入力させることが可能であった。この実施の形態では、中継基板18において制御信号を伝送するための配線毎に伝送方向規制回路を設けるとともに、主基板11にて遊技制御用マイクロコンピュータ100と主基板側コネクタの間に出力バッファ回路を設けることで、外部から主基板11への不正な信号の入力を、より確実に防止することができる。
演出制御基板12は、主基板11とは独立したサブ側の制御基板であり、中継基板18を介して主基板11から送信された制御コマンドを受信して、画像表示装置5、スピーカ8L、8R及び遊技効果ランプ9といった演出用の電気部品を制御するための各種回路が搭載されている。すなわち、演出制御基板12は、画像表示装置5における表示動作や、スピーカ8L、8Rからの音声出力動作、遊技効果ランプ9におけるランプの点灯動作及び消灯動作などを制御する機能を備えている。演出制御基板12には、音声制御基板13やランプ制御基板14に制御信号を伝送する配線や、画像表示装置5に画像データ信号を伝送する配線などが接続されている。
主基板11と払出制御基板15との間では、例えば双方向でシリアル通信を行うことにより、各種の制御コマンドや通知信号が伝送される。払出制御基板15は、主基板11とは独立したサブ側の制御基板であり、主基板11から送信された制御コマンドや通知信号を受信して、払出モータ51による遊技球の払出動作を制御するための各種回路が搭載されている。すなわち、払出制御基板15は、払出モータ51による賞球の払出動作を制御する機能を備えている。また、払出制御基板15は、インタフェース基板20を介したカードユニット70との通信結果に応じて払出モータ51の駆動制御を行って、球貸し動作を制御する機能を備えている。払出制御基板15には、払出モータ位置センサ71や払出カウントスイッチ72、エラー解除スイッチ73からの検出信号を受信するための配線が接続されている。加えて、払出制御基板15には、払出モータ51における遊技球の払出制御を行うための指令信号を送信するための配線や、エラー表示用LED74における表示制御を行うための指令信号を送信するための配線、インタフェース基板20を介してカードユニット70との間で通信を行うための配線などが接続されている。また、払出制御基板15には、カードユニット70からの接続信号であるVL信号を分岐させて発射装置19に伝送させるための配線が接続されていてもよい。
エラー解除スイッチ73は、払出制御用マイクロコンピュータ150が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。エラー表示用LED74は、例えば7セグメントLEDにより構成され、払出制御用マイクロコンピュータ150にてセットされたエラーフラグなどに基づいて、各種のエラーに対応するエラーコードを表示するためのものである。
中継基板18を介して主基板11から演出制御基板12に対して送信される制御コマンドは、例えば電気信号として伝送される演出制御コマンドである。演出制御コマンドには、例えば画像表示装置5における画像表示動作を制御するために用いられる表示制御コマンドや、スピーカ8L、8Rからの音声出力を制御するために用いられる音声制御コマンド、遊技効果ランプ9や装飾用LEDの点灯動作などを制御するために用いられるランプ制御コマンドが含まれている。図9は、この実施の形態で用いられる表示制御コマンドの内容の一例を示す説明図である。表示制御コマンドは、例えば2バイト構成であり、1バイト目はMODE(コマンドの分類)を示し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(第7ビット[ビット7])は必ず“1”とされ、EXTデータの先頭ビットは“0”とされる。なお、図9に示された表示制御コマンドの形態は一例であって、他のコマンド形態を用いてもよい。また、この例では、表示制御コマンドが2バイト構成であるとしているが、表示制御コマンドを構成するバイト数は、1であってもよいし、3以上の複数であってもよい。この実施の形態では、表示制御コマンドとして、可変表示開始コマンド、表示結果通知コマンド、大当り開始コマンド、大当り終了コマンド、デモ表示コマンド、賞球過多報知コマンド、賞球不足報知コマンド、満タン報知開始コマンド、満タン報知終了コマンドなどが、予め用意されている。
図9に示す例において、コマンド80XXhは、特別図柄表示装置4による特図ゲームで特別図柄の変動表示を開始するときに送信される可変表示開始コマンドである。なお、XXhは、不特定の16進数であることを示し、表示制御コマンドによる指示内容に応じて任意に設定される値であればよい。可変表示開始コマンドは、例えば特別図柄表示装置4における特別図柄の変動表示を開始してから確定特別図柄を停止表示するまでの時間である特別図柄の可変表示時間(総変動時間)や、飾り図柄の可変表示態様をリーチとしてからハズレとなるリーチハズレとするか、リーチとすることなくハズレとなる通常ハズレとするかなどを示すEXTデータを含んでいる。
ここで、リーチとは、画像表示装置5にて導出表示した飾り図柄が大当り組合せの一部を構成しているときに未だ導出表示していない飾り図柄(リーチ変動図柄という)については変動表示が行われている表示態様、あるいは、全て又は一部の飾り図柄が大当り図柄の全て又は一部を構成しながら同期して変動表示している表示態様のことである。具体的には、予め定められた組合せ有効ライン上の一部の可変表示部に予め定められた大当り組合せを構成する図柄を停止表示しているときに未だ停止表示していない組合せ有効ライン上の可変表示部において変動表示が行われている表示態様(例えば、表示領域に設けられた「左」、「中」、「右」の可変表示部のうち「左」、「右」の可変表示部には大当り図柄の一部となる(例えば「7」)が停止表示されている状態で「中」の可変表示部は未だ変動表示が行われている表示態様)、あるいは、有効ライン上の可変表示部の全て又は一部の飾り図柄が大当り図柄の全て又は一部を構成しながら同期して変動表示している表示態様(例えば、表示領域に設けられた「左」、「中」、「右」の可変表示部の全てで変動表示が行われてどの状態が表示されても同一の飾り図柄が揃っている態様で変動表示が行われている表示態様)である。また、リーチの際に、通常と異なる演出がランプや音などで行われることがある。この演出をリーチ演出という。また、リーチの際に、画像表示装置5にてキャラクタ(人物等を模した演出表示であり、飾り図柄とは異なるもの)を表示させたり、背景の表示態様を変化させたり、飾り図柄の変動表示態様を変化させたりすることがある。このキャラクタの表示や背景の表示態様、飾り図柄の変動態様の変化を、リーチ演出表示という。
コマンド90XXhは、特別図柄表示装置4における特図ゲームでの確定特別図柄や、遊技状態が高確率状態となる確変大当りとなるか否かなどを示す表示結果通知コマンドである。具体的な一例として、コマンド9000hは、特図ゲームでの確定特別図柄がハズレ図柄となることを示すコマンドである。また、コマンド9001hは、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であること、及び遊技状態が高確率状態にはならない通常大当りであることを示すコマンドである。さらに、コマンド9002hは、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であること、及び遊技状態が高確率状態になる確変大当りであることを示すコマンドである。こうした表示結果通知コマンドに基づき、演出制御基板12の側では、飾り図柄の可変表示が行われた後に停止表示される飾り図柄の表示結果の種類をハズレとするか通常大当りとするか確変大当りとするかを決定することが可能になる。
コマンドA000hは、特別図柄表示装置4による特図ゲームや画像表示装置5における飾り図柄の可変表示にて大当りとなったことにより、大当り遊技状態が開始されることを示す大当り開始コマンドである。コマンドA100hは、大当り遊技状態が終了することを示す大当り終了コマンドである。コマンドB000hは、画像表示装置5における画像表示等によるデモンストレーション表示(デモ表示)が可能になったことを示すデモ表示コマンドである。
コマンドD000hは、賞球の過大な払出である賞球過多が生じた旨を報知させるための賞球過多報知コマンドである。コマンドD001hは、賞球の過小な払出である賞球不足が生じた旨を報知させるための賞球不足報知コマンドである。コマンドD004hは、下皿33に所定量以上の遊技球が貯留された旨を報知させるための満タン報知開始コマンドである。コマンドD005hは、満タン報知開始コマンドに基づいて開始された報知を終了させるための満タン報知終了コマンドである。
主基板11から払出制御基板15に対して送信される制御コマンドは、例えば電気信号として伝送される払出制御コマンドである。なお、払出制御コマンドは、主基板11に搭載された遊技制御用マイクロコンピュータ100が備えるCPU104(図11)によって払出制御コマンドを送信するための設定が行われ、その設定に基づいて遊技制御用マイクロコンピュータ100が備えるシリアル通信回路108(図11)により払出制御基板15に対して送信されるものである。以下の説明では、主基板11から払出制御基板15に対する払出制御コマンドの送信動作に、こうした遊技制御用マイクロコンピュータ100に設けられたCPU104やシリアル通信回路108による一連の動作が含まれているものとする。また、払出制御基板15から主基板11に対しては、例えば電気信号としての払出通知コマンドなどが送信される。なお、払出通知コマンドは、払出制御基板15に搭載された払出制御用マイクロコンピュータが備えるCPUによって払出通知コマンドを送信するための設定が行われ、その設定に基づいて払出制御用マイクロコンピュータ150が備えるシリアル通信回路により主基板11に対して送信されるものである。以下の説明では、払出制御基板15から主基板11に対する払出通知コマンドの送信動作に、こうした払出制御用マイクロコンピュータ150に設けられたCPUやシリアル通信回路による一連の動作が含まれているものとする。加えて、以下の説明では、主基板11及び払出制御基板15のいずれか一方から他方に対する所定動作の指令だけでなく、一方での動作状態を他方に通知する通知信号も、払出制御コマンドや払出通知コマンドに含まれるものとする。
図10は、主基板11と払出制御基板15との間で送受信されるコマンドの構成例を示す説明図である。図10(A)に示すように、主基板11から払出制御基板15に対して送信される払出制御コマンドと、払出制御基板15から主基板11に対して送信される払出通知コマンドは、いずれも2バイト構成であり、1バイト目を反転させることで2バイト目となるように構成されている。そして、各バイトの先頭ビット(第7ビット[ビット7])をヘッダとして、そのヘッダを異ならせることにより、1バイト目と2バイト目の区別を可能にしている。例えば、1バイト目におけるヘッダは“0”の固定値に設定されている一方で、2バイト目におけるヘッダは“1”の固定値に設定されている。
主基板11から払出制御基板15に対して送信される払出制御コマンドには、払出数指定コマンドやACKフィードバックコマンドが含まれている。払出数指定コマンドは、払い出すべき賞球の数を示すコマンドであり、例えば図10(B)に示すようなビット値で構成されている。ここで、払出数指定コマンドにおける1バイト目及び2バイト目の第3〜第0ビット[ビット3−0]は、払い出すべき賞球の個数に応じて設定される値であればよい。図10(C)には、この実施の形態で用いられる払出数指定コマンドが16進数表示で示されている。図10(C)に示すコマンドE11Ehは、払い出すべき賞球個数が15個であることを示す第1払出数指定コマンドである。コマンドE916hは、払い出すべき賞球個数が7個であることを示す第2払出数指定コマンドである。コマンドEC13hは、払い出すべき賞球個数が4個であることを示す第3払出数指定コマンドである。この実施の形態では、始動口スイッチ22で遊技球が検出されると4個の賞球払出を行い、入賞口スイッチ25A〜25Dのいずれかで遊技球が検出されると7個の賞球払出を行い、カウントスイッチ24で遊技球が検出されると15個の賞球払出を行う。
図10(C)に示すコマンドF00Fhは、払出制御基板15から主基板11に対して送信された賞球ACKコマンドを主基板11の側で受信したことを示す受信確認受付信号となるACKフィードバックコマンドである。
図10(D)は、払出制御基板15から主基板11に対して送信される払出通知コマンドの構成例を示す説明図である。払出通知コマンドには、賞球ACKコマンドが含まれている。賞球ACKコマンドは、主基板11から払出制御基板15に対して送信された払出数指定コマンドを払出制御基板15の側で受信したことを示す受信確認信号となるコマンドA0F5hである。
図5に示すように、主基板11には、遊技制御用マイクロコンピュータ100やスイッチ回路111、ソレノイド回路112が搭載されている。スイッチ回路111には、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24、入賞口スイッチ25A〜25D、満タンスイッチ26、球切れスイッチ27、全入賞球検出スイッチ29、エラー解除スイッチ31などの各種スイッチからの検出信号や、タッチセンサ75などの各種センサからの検出信号が入力される。スイッチ回路111は、これらの検出信号を取り込んで、遊技制御用マイクロコンピュータ100に伝送する。ソレノイド回路112は、遊技制御用マイクロコンピュータ100からの指令に従って各ソレノイド81、82に対する駆動信号を出力する。
図11は、主基板11に搭載された遊技制御用マイクロコンピュータ100の構成例を示す図である。図11に示す遊技制御用マイクロコンピュータ100は、例えば1チップマイクロコンピュータであり、クロック回路101と、リセット/割込みコントローラ102と、乱数回路103と、CPU(Central Processing Unit)104と、ROM(Read Only Memory)105と、RAM(Random Access Memory)106と、タイマ回路(PIT)107と、シリアル通信回路(SCI)108と、外部バスインタフェース109とを備えて構成されている。
クロック回路101は、例えばCPU104といった、遊技制御用マイクロコンピュータ100内の各回路に供給するクロック信号を生成する回路である。具体的な一例として、クロック回路101は、所定のクロック入力端子に入力された外部クロックを4分周して内部システムクロックCLKを生成し、生成した内部システムクロックCLKをCPU104などの遊技制御用マイクロコンピュータ100内の各回路に供給する。
リセット/割込みコントローラ102は、遊技制御用マイクロコンピュータ100内で発生する各種リセット、割込み要求を制御するためのものである。リセット/割込みコントローラ102が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、所定のSRST端子に一定の期間にわたりローレベルの信号が入力されたときに発生するリセットである。ユーザリセットは、所定のURST端子に一定の期間にわたりローレベルの信号が入力されたことや、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したこと、指定エリア外走行禁止(IAT)信号が発生したこと、あるいは、インターバルリセット信号が発生したことなど、所定の要因により発生するリセットである。
また、リセット/割込みコントローラ102が制御する割込みには、Xクラス割込み(XIRQ)、Iクラス割込み(IRQ)、ソフトウェア割込み(SWI)、イリーガルオペコードトラップ(ILGOP)といった4種類の割込みが含まれている。Xクラス割込みは、所定のXIRQ端子に一定の期間にわたりローレベルの信号が入力されたときに発生する割込みである。Iクラス割込みは、ユーザプログラムにより割込み要求の受付を許可/禁止できる割込みであり、所定のIRQ端子に一定の期間にわたりローレベルの信号が入力されたことや、タイマ回路107からの割込み要求信号が発生したこと、シリアル通信回路108からの割込み要求信号が発生したことなど、予め定められた各種の割込み要因により発生する割込みである。
乱数回路103は、例えば12ビット乱数と16ビット乱数などといった、更新範囲が互いに異なる複数種類の乱数を生成する回路である。図12は、乱数回路103の構成例を示すブロック図である。図12に示すように、乱数回路103は、クロック信号出力手段としての機能の全部または一部を備えるクロック信号出力回路171と、初期値設定手段としての機能の全部または一部を備える初期値設定回路172A、172Bと、数値更新手段としての機能を備える乱数生成回路173A、173Bと、順列変更方式選択手段としての機能を備えるセレクタ174A、174Bと、数値順列変更レジスタとしての機能を備えるARSC175A、BRSC175Bと、数値順列変更手段としての機能を備える乱数列変更回路176A、176Bと、最大値比較回路177A、177Bと、クロック信号反転手段としての機能を備える反転回路178と、タイマ手段としての機能を備えるタイマ回路179と、ラッチ信号出力手段としての機能を備えるラッチ信号生成回路180と、乱数値格納手段としての機能を備える乱数値レジスタ181A、181Bとから構成されている。なお、初期値設定回路172A、乱数生成回路173A、セレクタ174A、ARSC175A、乱数列変更回路176A、最大値比較回路177A、乱数値レジスタ181Aは、12ビット乱数を生成するために用いられる第1の乱数回路を構成する。また、クロック信号出力回路171、初期値設定回路172B、乱数生成回路173B、セレクタ174B、BRSC175B、乱数列変更回路176B、最大値比較回路177B、反転回路178、タイマ回路179、ラッチ信号生成回路180、乱数値レジスタ181Bは、16ビット乱数を生成するために用いられる第2の乱数回路を構成する。
クロック信号出力回路171は、クロック回路101から供給される内部システムクロックCLKを入力して、この内部システムクロックCLKと同一周期を有するクロック信号、あるいは内部システムクロックCLKを16分周したクロック信号を出力して、乱数生成回路173Bと反転回路178とに入力させる。初期値設定回路172A、172Bは、発生する乱数列のスタート値を設定するためのものである。例えば、初期値設定回路172A、172Bは、パチンコ遊技機1への電力供給が開始された後に乱数回路103にて乱数値の発生を開始するに際して1周目の初期値の設定や、乱数生成回路173A、173Bが所定の初期値から所定の最終値まで循環的に数値データを更新したときに新たな初期値の設定などを行う。初期値設定回路172Aは、設定した初期値を示す初期値設定信号SK1を出力して、乱数生成回路173Aに入力させる。初期値設定回路172Bは、設定した初期値を示す初期値設定信号SK2を出力して、乱数生成回路173Bに入力させる。
乱数生成回路173A、173Bは、例えば所定ビット数のカウンタなどから構成され、クロック信号出力回路171から出力されるクロック信号などの入力に基づき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。例えば乱数生成回路173Aは、所定のクロック入力端子への入力信号における立上がりエッジに応答して、「1」から「4095」までの範囲内で設定された初期値から「4095」まで1ずつカウントアップして行く。そして、「4095」までカウントアップした後には、「1」から初期値よりも1小さい最終値となる数値まで1ずつカウントアップすることで、数値データを循環的に更新する。なお、この実施の形態では、乱数生成回路173Aのクロック入力端子には、乱数値レジスタ181Aからの格納値更新信号KTと最大値比較回路177Aからの再設定信号MS1とを合成した信号(例えば格納値更新信号KTと再設定信号MS1とを入力信号とするOR回路からの出力信号としての和信号)が入力される。また、例えば乱数生成回路173Bは、所定のクロック入力端子への入力信号における立上がりエッジに応答して、「1」から「65535」までの範囲内で設定された初期値から「65535」まで1ずつ数値データをカウントアップして行く。そして、「65535」までカウントアップした後には、「1」から初期値よりも1小さい最終値となる数値まで1ずつカウントアップすることで、数値データを循環的に更新する。なお、この実施の形態では、乱数生成回路173Bのクロック入力端子には、クロック信号出力回路171から出力されるクロック信号と最大値比較回路177Bからの再設定信号MS2とを合成した信号(例えばクロック信号と再設定信号S2とを入力信号とするOR回路からの出力信号としての和信号)が入力される。乱数生成回路173Aが所定の最終値まで数値データを更新したときには、乱数一巡信号RIJ1を出力する。また、乱数生成回路173Bが所定の最終値まで数値データを更新したときには、乱数一巡信号RIJ2を出力する。
セレクタ174A、174Bは、それぞれ乱数生成回路173A、173Bにより乱数一巡信号RIJ1、RIJ2が出力されたことに応じて、数値データの更新順である順列を変更する方式を選択するための回路である。この実施の形態では、数値データが所定の初期値から所定の最終値まで更新されたときに順列を変更する方式として、予め複数の方式が定められている。例えば、第1の方式は、数値データが最終値まで更新されたときに、セレクタ174Aやセレクタ174Bが乱数生成回路173Aから出力された乱数一巡信号RIJ1や乱数生成回路173Bから出力された乱数一巡信号RIJ2を選択して出力することにより、自動的に順列を変更する方式であり、12ビット乱数列変更レジスタであるARSC175Aや16ビット乱数列変更レジスタであるBRSC175Bにおける格納値に関わらず、順列の変更が行われる。また、第2の方式は、数値データが最終値まで更新されたときに、ARSC175AやBRSC175Bに所定の数値順列変更データが設定されていることに応じて順列を変更する方式である。第3の方式は、数値データが最終値まで更新されたときでも、順列の変更は行わない方式であり、乱数列変更回路176A、176Bが常に一定の規則に従った順序で乱数値となる数値データR1、R2を出力する。
図13(A)は、ARSC175Aの構成例を示すブロック図であり、図13(B)は、BRSC175Bの構成例を示すブロック図である。図13(A)に示すARSC175Aは、ユーザプログラムによる書込みと、セレクタ174Aを介した乱数列変更回路176Aによる読出しが可能な8ビットのレジスタであり、その初期値は“0”(=00h)に設定されている。なお、ユーザプログラムによるARSC175Aに対する書込みは、第0ビット[ビット0]に対する“1”の書込みだけが有効である。順列を変更する方式として、セレクタ174Aによって前述した第2の方式が選択されているときに、ARSC175Aの第0ビット[ビット0]に対して“1”が書き込まれると、数値データが最終値まで更新された次の周期の始めから、乱数列変更回路176Aが数値データを出力する順序を定める規則である更新規則を、変更することができる。図13(B)に示すBRSC175Bは、ユーザプログラムによる書込みと、セレクタ174Bを介した乱数列変更回路176Bによる読出しが可能な8ビットのレジスタであり、その初期値は“0”(=00h)に設定されている。なお、ユーザプログラムによるBRSC175Bに対する書込みは、第0ビット[ビット0]に対する“1”の書込みだけが有効である。順列を変更する方式として、セレクタ174Bによって前述した第2の方式が選択されているときに、BRSC175Bの第0ビット[ビット0]に対して“1”が書き込まれると、数値データが最終値まで更新された次の周期の始めから、乱数列変更回路176Bが数値データを出力する順序を定める規則である更新規則を、変更することができる。
乱数列変更回路176A、176Bは、それぞれ乱数生成回路173A、173Bにより生成された数値データを、所定の更新規則に従った順列に変更可能とする回路である。例えば、乱数列変更回路176Aは、乱数生成回路173Aから出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する一方、乱数列変更回路176Bは、乱数生成回路173Bから出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する。また、乱数列変更回路176A、176Bは、例えばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの更新順である順列の変更を行うことができる。
図14は、12ビット乱数用に設けられた乱数列変更回路176Aにおける動作の一例として、セレクタ174Aによって前述した第1の方式が選択されているときの順列変更動作を示す説明図である。セレクタ174Aによって第1の方式が選択されているときには、乱数生成回路173Aから出力される数値データ列C1が所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更回路176Aが自動的に順列を変更する。図14に示す動作例では、始めに乱数列変更回路176Aから出力される数値データ列R1が、「1→2→…→4095」となっている。
そして、乱数生成回路173Aから出力された数値データ列C1の値が所定の最終値に達したときには、乱数生成回路173Aから出力された乱数一巡信号RIJ1が、セレクタ174Aを介して乱数列変更回路176Aに入力される。乱数列変更回路176Aは、乱数一巡信号RIJ1が入力されたことに応答して、数値データの更新規則を変更する。このとき、乱数列変更回路176Aは、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしてもよい。あるいは、乱数列変更回路176Aは、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしてもよい。図14に示す動作例では、1回目の更新規則の変更による順列変更により、乱数列変更回路176Aから出力される数値データ列R1が、「4095→4094→…→1」となる。その後、2回目の更新規則の変更による順列変更が行われることにより、乱数列変更回路176Aから出力される数値データ列R1は、「1→3→…→4095→2→…→4094」となる。図14に示す動作例では、3回目の更新規則の変更による順列変更が行われることにより、乱数列変更回路176Aから出力される数値データ列R1は、「4095→1→…→2047」となる。4回目の更新規則の変更による順列変更が行われたときには、乱数列変更回路176Aから出力される数値データ列R1が、「1023→3072→…→3071」となる。5回目の更新規則の変更による順列変更が行われたときには、乱数列変更回路176Aから出力される数値データ列R1が、「5→4→…→4091」となる。また、乱数生成回路173Aが所定の初期値から所定の最終値まで循環的に数値データを更新したときに、初期値設定回路172Aにより新たな初期値の設定が行われる場合には、乱数列変更回路176Aが乱数一巡信号RIJ1の入力に応答して数値データの更新規則を変更するとともに、初期値設定回路172Aが乱数一巡信号RIJ1の入力に応答して新たな初期値を乱数生成回路173Aに設定する。その後、乱数生成回路173Aは初期値設定回路172Aによる変更後の初期値から循環的に数値データを更新し、乱数列変更回路176Aは変更後の更新規則に従って乱数生成回路173Aから出力された数値データ列C1の並びを変更する。
16ビット乱数用に設けられた乱数列変更回路176Bも、乱数生成回路173Bから出力される16ビット乱数生成用の数値データ列R2に対して乱数列変更回路176Aと同様の処理を施すことにより、更新規則に従った順序で数値データ列R2を出力する。そして、セレクタ174Bによって前述した第1の方式が選択されているときには、乱数生成回路173Bから出力される数値データ列C2が所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更回路176Bが自動的に順列を変更する。また、乱数生成回路173Bが所定の初期値から所定の最終値まで循環的に数値データを更新したときに、初期値設定回路172Bにより新たな初期値の設定が行われる場合には、乱数列変更回路176Bが乱数一巡信号RIJ2の入力に応答して数値データの更新規則を変更するとともに、初期値設定回路172Bが乱数一巡信号RIJ2の入力に応答して新たな初期値を乱数生成回路173Bに設定する。その後、乱数生成回路173Bは初期値設定回路172Bによる変更後の初期値から循環的に数値データを更新し、乱数列変更回路176Bは変更後の更新規則に従って乱数生成回路173Bから出力された数値データ列C2の並びを変更する。
図15は、12ビット乱数用に設けられた乱数列変更回路176Aにおける動作の他の一例として、セレクタ174Aによって前述した第2の方式が選択されているときの順列変更動作を示す説明図である。セレクタ174Aによって第2の方式が選択されているときには、乱数生成回路173Aから出力される数値データ列C1が所定の初期値から所定の最終値まで循環的に更新され、かつ、12ビット乱数列変更レジスタであるARSC175Aに数値順列変更データとなる“1”(=01h)が設定されていることに応答して、数値データの更新規則を変更する。図15に示す動作例では、始めに乱数列変更回路176Aから出力される数値データ列R1が、「1→2→…→4095」となっている。この後、CPU104がROM105に格納されたユーザプログラムを実行することによって、所定のタイミングでARSC175Aに数値順列変更データとなる“1”(=01h)が書き込まれて設定されたものとする。
そして、セレクタ174Aによって第2の方式が選択されているときには、ARSC175Aに設定された数値順列変更データが乱数列変更回路176Aによって読み出され、数値データの更新規則を変更するための設定が行われる。このとき、乱数列変更回路176Aは、乱数生成回路173Aから出力された数値データ列C1の値が所定の最終値に達したことに応じて、例えば複数種類の更新規則のいずれかを選択することなどにより、更新規則を変更する。図15に示す動作例では、乱数列変更回路176Aが乱数生成回路173Aから出力された数値データ列C1における最終値に対応する数値データ「4095」を出力した後、数値順列変更データが設定されたことに応じて更新規則を変更する。その後、乱数列変更回路176Aは、変更後の更新規則に従った数値データ列R1として、「4095→4094→…→1」を出力する。ARSC175Aは、乱数列変更回路176Aによって数値順列変更データが読み出されたときに初期化される。そのため、再びARSC175Aに数値順列変更データが設定されるまでは、乱数列変更回路176Aから出力される数値データ列R1が、「4095→4094→…→1」となる。
CPU104がROM105に格納されたユーザプログラムを実行することによって、数値順列変更データとなる“1”(=01h)がARSC175Aに再び設定されると、数値データの更新規則が再度変更される。図15に示す動作例では、乱数列変更回路176Aが乱数生成回路173Aから出力された数値データ列C1における最終値に対応する数値データ「1」を出力した後、数値順列変更データが設定されたことに応じて更新規則を変更する。その後、乱数列変更回路176Aは、変更後の更新規則に従った数値データ列R1として、「1→3→…→4095→2→…4094」を出力する。
16ビット乱数用に設けられた乱数列変更回路176Bは、セレクタ174Bによって前述した第2の方式が選択されているときには、乱数生成回路173Bから出力される数値データ列C2が所定の初期値から所定の最終値まで循環的に更新され、かつ、16ビット乱数列変更レジスタであるBRSC175Bに数値順列変更データとなる“1”(=01h)が設定されていることに応答して、数値データの更新規則を変更する。こうして、乱数列変更回路176Bは、変更後の更新規則に従った数値データ列R2を出力することができる。
図12に示す最大値比較回路177A、177Bは、それぞれ乱数列変更回路176A、176Bから出力される数値データ列R1、R2を所定の最大値と比較することにより、数値データ列R1、R2のうちで使用範囲内の数値データのみを出力する回路である。最大値比較回路177Aは、乱数列変更回路176Aから出力される数値データをROM105のユーザプログラム管理エリアに設定された12ビット乱数最大値(KRMS)と比較する。そして、数値データが最大値以下であるときには、その数値データを最大値比較回路177Aが出力して、乱数値レジスタ181Aに入力させる。他方、数値データが最大値より大きいときには、最大値比較回路177Aが再設定信号MS1を出力する。最大値比較回路177Aから出力された再設定信号MS1が乱数生成回路173Aのクロック入力端子に入力されることにより、乱数生成回路173Aから出力される数値データ、及び乱数列変更回路176Aから出力される数値データが変更される。この変更後に乱数列変更回路176Aから出力される数値データが最大値より大きければ、最大値以下となるまで再設定信号MS1の出力を繰り返す。こうした再設定信号MS2の出力動作を、例えば乱数値レジスタ181Aから出力される格納値更新信号KTの周期よりも十分に短い期間内に行うことにより、最大値以下となる数値データだけを乱数値レジスタ181Aに格納される12ビットの乱数値として出力できるようにする。
最大値比較回路177Bは、乱数列変更回路176Bから出力される数値データをROM105のユーザプログラム管理エリアに設定された16ビット乱数最大値(KRXS)と比較する。そして、数値データが最大値以下であるときには、その数値データを最大値比較回路177Bが出力して、乱数値レジスタ181Bに入力させる。他方、数値データが最大値より大きいときには、最大値比較回路177Bが再設定信号MS2を出力する。最大値比較回路177Bから出力された再設定信号MS2が乱数生成回路173Bのクロック入力端子に入力されることにより、乱数生成回路173Bから出力される数値データ、及び乱数列変更回路176Bから出力される数値データが変更される。この変更後に乱数列変更回路176Bから出力される数値データが最大値より大きければ、最大値以下となるまで再設定信号MS2の出力を繰り返す。こうした再設定信号MS2の出力動作を、クロック信号出力回路171から出力されるクロック信号S1の周期よりも十分に短い期間内に行うことにより、最大値以下となる数値データだけを乱数値レジスタ181Bに格納される16ビットの乱数値として出力できるようにする。
図16は、12ビット乱数用に設けられた最大値比較回路177Aによる数値データの再設定動作を示す説明図である。図16に示す動作例では、図16(A)に示すように、12ビット乱数最大値(KRMS)が「512」に設定され、乱数列変更回路176Aから出力される数値データ列R1が、「1→2→…→4096」となっているものとする。
この場合、最大値比較回路177Aは、乱数列変更回路176Aから出力される数値データが「1」から「512」までの期間では、その数値データを出力して、乱数値レジスタ181Aに入力させる。他方、乱数列変更回路176Aから出力される数値データが「512」よりも大きくなると、最大値比較回路177Aは、再設定信号MS1を出力して、乱数生成回路173Aに入力させる。再設定信号MS1の出力動作を繰り返すことにより、最大値比較回路177Aは、乱数列変更回路176Aから出力される数値データを「513」から「4095」まで連続的に変更させ、その後、「1」に戻させる。なお、このとき最大値比較回路177Aから出力される数値データは「512」のままである。そして、この再設定信号MS1の出力動作を通常における乱数値の更新周期よりも十分に短い期間内で行って、数値データ「1」が乱数列変更回路176Aから出力されると、最大値比較回路177Aがこの数値データをそのまま出力して、乱数値レジスタ181Aに入力させる。このような最大値比較回路177Aによる数値データの再設定動作により、12ビット乱数最大値(KRMS)として設定された最大値以下の数値データのみを乱数値レジスタ181Aに入力させることができる。
図12に示す反転回路178は、クロック信号出力回路171から入力されるクロック信号S1を反転させて反転クロック信号S2を生成する。反転回路178は、生成した反転クロック信号S2を出力して、ラッチ信号生成回路180に入力させる。タイマ回路179は、始動口スイッチ22から始動入賞信号SSが入力されている時間を計測し、計測した時間が所定時間(例えば3ミリ秒)に達したときに、始動入賞信号SSを出力して、ラッチ信号生成回路180に入力させる。例えば、タイマ回路179は、アップカウンタまたはダウンカウンタによって構成され、始動入賞信号SSがオン状態となったことに応答して起動する。この場合、タイマ回路179は、始動入賞信号SSがオン状態となっている期間において、内部システムクロックCLKをアップカウントまたはダウンカウントする。そして、アップカウントまたはダウンカウントしたカウント値が3ミリ秒に対応する値となったときに、タイマ回路179が入力された信号を始動入賞信号SSであると判定して、その始動入賞信号SSを出力し、ラッチ信号生成回路180に入力させる。
ラッチ信号生成回路180は、例えばフリップフロップなどを用いて構成される。例えばラッチ信号生成回路180がDフリップフロップを用いて構成されている場合には、D入力端子がタイマ回路179の出力端子に接続され、クロック入力端子が反転回路178の出力端子に接続されていればよい。ラッチ信号生成回路180は、タイマ回路179から出力される始動入賞信号SSを、反転回路178から出力される反転クロック信号S2の立上がりエッジに同期して出力することにより、ラッチ信号SLを生成する。
乱数値レジスタ181A、181Bは、それぞれ最大値比較回路177A、177Bから出力される数値データを乱数値として格納する。図17(A)は、12ビット乱数値レジスタ(ARND)となる乱数値レジスタ181Aの構成例を示すブロック図であり、図17(B)は、16ビット乱数値レジスタ(BRND)となる乱数値レジスタ181Bの構成例を示すブロック図である。乱数値レジスタ181A、181Bはいずれも16ビットのレジスタであるが、12ビット乱数値レジスタ(ARND)となる乱数値レジスタ181Aについては、上位8ビット用のレジスタARND(H)の第7〜第4ビット[ビット7−4]における格納値が無効であり、12ビットの乱数を格納するレジスタとして用いられる。
この実施の形態において、12ビット乱数用に設けられた乱数値レジスタ181Aは、例えばCPU104から供給されるレジスタリード信号がオン状態となったことに応答して、最大値比較回路177Aから入力されている数値データを乱数値として取り込んで格納する。乱数値レジスタ181Aが乱数値を格納したときには、例えば格納値更新信号KTを所定期間にわたりオン状態とした後にオフ状態とする。こうして乱数値レジスタ181Aから出力された格納値更新信号KTの立上がりエッジに応答して、乱数生成回路173Aは数値データを更新することができればよい。他方、16ビット乱数用に設けられた乱数値レジスタ181Bは、ラッチ信号生成回路180から出力されるラッチ信号SLがオン状態となったことに応答して、最大値比較回路177Bから入力される数値データを乱数値として取り込んで格納する。
また、乱数回路103には、図17(C)に示すような12ビット乱数最大値読出レジスタ(ARMX)や、図17(D)に示すような16ビット乱数最大値読出レジスタ(BRMX)が設けられていてもよい。図17(C)に示す12ビット乱数最大値読出レジスタ(ARMX)は、ROM105のユーザプログラム管理エリアに設定された12ビット乱数最大値(KRMS)を確認可能とするレジスタであり、16ビットのレジスタのうちで、上位8ビット用のレジスタARMX(H)の第7〜第4ビット[ビット7−4]における格納値を無効とすることにより、12ビットの数値を格納するレジスタとして用いられる。図17(D)に示す16ビット乱数最大値読出レジスタ(BRMX)は、ROM105のユーザプログラム管理エリアに設定された16ビット乱数最大値(KRXS)を確認可能とする16ビットのレジスタである。
図11に示すCPU104は、ROM105に記憶されているユーザプログラムやデータを読出し、RAM106をワークエリアとして使用して、プログラムに従った制御動作を行う。図18は、遊技制御用マイクロコンピュータ100におけるアドレスマップの一例を示す図である。図18に示すように、0000h番地〜01FFh番地の領域は、RAM106に割り当てられたワークエリアである。また、1000h番地〜101Ch番地の領域は、乱数回路103やタイマ回路107、シリアル通信回路108等の内蔵レジスタに割り当てられた内蔵レジスタエリアである。2000h番地〜200Fh番地の領域は、遊技制御用マイクロコンピュータ100に内蔵されたアドレスデコーダに割り当てられたチップセレクト信号デコードエリアである。E000h番地〜FFFFhの領域は、ROM105に割り当てられており、ユーザプログラム管理エリアとユーザプログラム/データエリアとを含んでいる。
ROM105におけるE080h番地〜FFFFh番地の領域であるユーザプログラム/データエリアには、ユーザにより予め作成されたユーザプログラムやユーザデータが記憶される。ROM105におけるE000h番地〜E07Fh番地の領域であるユーザプログラム管理エリアには、CPU104がユーザプログラムを実行する際に用いられてパチンコ遊技機1の動作内容を設定するためのユーザプログラム管理データが記憶される。
図19は、図18に示すユーザプログラム管理エリアにおけるアドレスマップの一例を示す図である。図19に示すように、E01Bh番地の領域には、遊技制御用マイクロコンピュータ100にて発生する複数種類のIクラス割込み(IRQ)の要因のうちで、最も優先度を高くするものを設定する最優先割込み設定(KHPR)を示すデータが記憶される。図20(A)は、E01Bh番地の領域に記憶される最優先割込み設定データの設定例を示す説明図である。また、図20(B)は、最優先割込み設定データの具体的な設定の一例として、デフォルトにおける割込み要因の優先順位と、E01Bh番地の領域に「05h」を設定した場合における割込み要因の優先順位とを示している。
図20(B)に示すように、E01Bh番地の領域に最優先割込み設定データを設定しないデフォルトの状態では、所定のIRQ端子への信号入力による割込み要因が最も優先順位が高く、続いてタイマ回路107の各チャネル(CH0〜CH3)からの割込み要求の優先順位が高く、シリアル通信回路108からのエラー割込み要求、受信割込み要求、送信割込み要求の順番で優先順位が低くなるように設定されている。すなわち、デフォルトの状態でも、シリアル通信回路108からの割込み要求のうちではエラー割込み要求が、受信割込み要求や送信割込み要求といった他の割込み要因に比べて優先度が高くなっている。そのため、シリアル通信回路108からのエラー割込み要求に基づく割込み処理は、シリアル通信回路108からのエラー割込み要求とは異なる受信割込み要求や送信割込み要求などに基づく割込み処理に比べて、優先して実行されることになる。
また、E01Bh番地の領域に最優先割込み設定データとして「05h」を設定した場合には、シリアル通信回路108からのエラー割込み要求の優先順位が、IRQ端子への信号入力による割込み要因や、タイマ回路107からの割込み要求の優先順位よりも高くなり、遊技制御用マイクロコンピュータ100にて発生する複数種類のIクラス割込み(IRQ)の要因のうちで、最も優先度が高くなる。このように、E01Bh番地の領域に最優先割込み設定データを設定することで、複数種類のIクラス割込み(IRQ)の要因における優先順位を、デフォルトの設定から変更することができる。
図19に示すE01Ch番地の領域と、E01Dh番地の領域には、乱数回路103の初期設定を行うために用いられる第1の乱数初期設定(KRSS1)を示すデータと、第2の乱数初期設定(KRSS2)を示すデータが記憶される。図21(A)は、E01Ch番地の領域に記憶される第1の乱数初期設定(KRSS1)を示すデータの内容を例示する説明図である。図21(B)は、E01Dh番地の領域に記憶される第2の乱数初期設定(KRSS2)を示すデータの内容を例示する説明図である。
図21(A)及び(B)に示すように、第1及び第2の乱数初期設定データはいずれも8ビットのデータから構成されるが、第1の乱数初期設定データの第7〜第5ビット[ビット7−5]は、未使用となっている。図21(A)に示す第1乱数初期設定データの第4及び第3ビット[ビット4−3]は、乱数回路103にて生成される12ビット乱数と16ビット乱数のうちで使用する乱数を示している。図21(A)に示す例では、第1乱数初期設定データの第4及び第3ビット[ビット4−3]が“00”であるときには12ビット乱数及び16ビット乱数のいずれも使用しないことを示し、“01”であるときには12ビット乱数のみを使用することを示し、“10”であるときには16ビット乱数のみを使用することを示し、“11”であるときには12ビット乱数及び16ビット乱数の双方を使用することを示している。第1乱数初期設定データの第2ビット[ビット2]は、乱数回路103にて生成される16ビット乱数の更新周期についての設定を示している。図21(A)に示す例では、第1乱数初期設定データの第2ビット[ビット2]が“0”であるときには16ビット乱数を内部システムクロックCLKの周期で更新することを示し、“1”であるときには16ビット乱数を内部システムクロックCLKの16倍の周期で更新することを示している。
第1乱数初期設定データの第1及び第0ビット[ビット1−0]は、12ビット乱数における2周目以降のスタート値についての設定を示している。図21(A)に示す例では、第1乱数初期設定データの第1及び第0ビット[1−0]が“00”であるときにはスタート値の変更を行わないことを示し、“01”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値に変更することを示し、“10”であるときにはユーザRAMであるRAM106における格納データの加算値に変更することを示し、“11”であるときにはユーザRAMであるRAM106における指定アドレスの格納値に変更することを示している。
図21(B)に示す第2乱数初期設定データの第7ビット[ビット7]は、12ビット乱数における1周目のスタート値についての設定を示している。図21(B)に示す例では、第2乱数初期設定データの第7ビット[ビット7]が“0”であるときには12ビット乱数における1周目のスタート値をデフォルト値である「001h」(12ビット値の16進数表示)とすることを示し、“1”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値とすることを示している。
第2乱数初期設定データの第6及び第5ビット[ビット6−5]は、12ビット乱数における乱数列の変更方法についての設定を示している。図21(B)に示す例では、第2乱数初期設定データの第6及び第5ビット[ビット6−5]が“00”であるときには順列を変更しない(第3の方式とする)ことを示し、“10”であるときには2周目以降にてユーザプログラムによる変更を可能とする(第2の方式とする)ことを示し、“11”であるときには2周目以降にて自動的に変更する(第1の方式とする)ことを示している。
第2乱数初期設定データの第4ビット[ビット4]は、16ビット乱数における1周目のスタート値についての設定を示している。図21(B)に示す例では、第2乱数初期設定データの第4ビット[ビット4]が“0”であるときには16ビット乱数における1周目のスタート値をデフォルト値である「0001h」(16ビット値の16進数表示)とすることを示し、“1”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値とすることを示している。
第2乱数初期設定データの第3及び第2ビット[ビット3−2]は、16ビット乱数における2周目以降のスタート値についての設定を示している。図21(B)に示す例では、第2乱数初期設定データの第3及び第2ビット[ビット3−2]が“00”であるときにはスタート値の変更を行わないことを示し、“01”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値に変更することを示し、“10”であるときにはユーザRAMであるRAM106における格納データの加算値に変更することを示し、“11”であるときにはユーザRAMであるRAM106における指定アドレスの格納値に変更することを示している。
第2乱数初期設定データの第1及び第0ビット[ビット1−0]は、16ビット乱数における乱数列の変更方法についての設定を示している。図21(B)に示す例では、第2乱数初期設定データの第1及び第0ビット[ビット1−0]が“00”であるときには順列を変更しない(第3の方式とする)ことを示し、“10”であるときには2周目以降にてユーザプログラムによる変更を可能とする(第2の方式とする)ことを示し、“11”であるときには2周目以降にて自動的に変更する(第1の方式とする)ことを示している。
図19に示すE01Eh番地の領域と、E01Fh番地の領域には、乱数回路103にて生成される12ビット乱数の最大値を設定するために用いられる12ビット乱数最大値(KRMS)を示すデータが記憶される。図19に示す例では、E01Eh番地の領域に、12ビット乱数最大値(KRMS)を示すデータの上位バイト(8ビット)が記憶され、E01Fh番地の領域に、12ビット乱数最大値(KRMS)を示すデータの下位バイト(8ビット)が記憶される。
E020h番地の領域と、E021h番地の領域には、乱数回路103にて生成される16ビット乱数の最大値を設定するために用いられる16ビット乱数最大値(KRXS)を示すデータが記憶される。図19に示す例では、E020h番地の領域に、16ビット乱数最大値(KRXS)を示すデータの上位バイト(8ビット)が記憶され、E021h番地の領域に、16ビット乱数最大値(KRXS)を示すデータの下位バイト(8ビット)が記憶される。
図11に示す遊技制御用マイクロコンピュータ100が備えるROM105には、ゲーム制御用のユーザプログラムの他にも、遊技の進行を制御するために用いられる各種のデータテーブルが格納されている。例えば、ROM105は、CPU104が各種の判定や決定を行うために用意された複数の判定テーブルや決定テーブルを構成するテーブルデータを記憶する。判定テーブルとしては、特別図柄表示装置4による特図ゲームにおける確定特別図柄を大当り図柄として可変表示結果を大当りとするか否かを判定するために参照される大当り判定テーブルや、大当りとするときに確変大当りとするか通常大当りとするかを判定するために参照される確変判定テーブル、ハズレとするときに飾り図柄の可変表示態様をリーチとするか否かを判定するために参照されるリーチ判定テーブルなどが含まれている。例えば、大当り判定テーブルは、可変表示結果を大当りとするか否かの判定結果と、乱数回路103から読出される乱数値(一例としては、16ビット乱数の値)とを対応付ける判定データなどから構成されていればよい。
また、ROM105に記憶される判定テーブルには、特図ゲームでの可変表示結果として導出表示する確定特別図柄を決定するための確定特別図柄決定テーブルや、特別図柄表示装置4による特図ゲームや画像表示装置5における飾り図柄の可変表示中での図柄等の可変表示パターンを決定するための可変表示パターン決定テーブル、各種の演出表示を実行するか否かを決定するための演出表示実行決定テーブルなどが含まれている。その他にも、遊技制御用マイクロコンピュータ100が備えるROM105には、例えば遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーなどといった、所定の固定情報が記憶されている。
遊技制御用マイクロコンピュータ100が備えるRAM106には、パチンコ遊技機1における遊技状態などを制御するために用いられる各種のデータを保持する領域として、例えば図22に示すような遊技制御用データ保持エリア130が設けられている。また、RAM106の少なくとも一部は、電源基板10において作成されるバックアップ電源によってバックアップされているバックアップRAMである。すなわち、パチンコ遊技機1への電力供給が停止しても、所定期間はRAM106の少なくとも一部の内容は保存される。この実施の形態では、RAM106の全体がバックアップされているバックアップRAMであるものとする。図22に示す遊技制御用データ保持エリア130は、特図保留記憶部131と、確定特別図柄記憶部132と、遊技制御フラグ設定部133と、遊技制御タイマ設定部134と、遊技制御カウンタ設定部135と、遊技制御バッファ設定部136とを備えている。
特図保留記憶部131は、普通可変入賞球装置6に設けられた始動入賞口に遊技球が入賞して特別図柄表示装置4による特図ゲームを実行するための始動条件が成立したものの、従前の特図ゲームを実行中である等の理由のために可変表示を開始するための開始条件が成立していない特図ゲームに関する保留情報を記憶する。例えば、特図保留記憶部131は、始動入賞口への入賞順に保留番号と関連付けて、その入賞による始動条件の成立に基づいてCPU104により乱数回路103から抽出された大当り判定用の乱数値を示す数値データを保留データとして、その数が所定の上限値(例えば「4」)に達するまで記憶する。
確定特別図柄記憶部132は、特別図柄表示装置4による特図ゲームにて可変表示結果として導出表示される確定特別図柄を示すデータを記憶する。遊技制御フラグ設定部133は、パチンコ遊技機1における遊技状態やスイッチ回路111を介して各入賞口スイッチ等から伝送された信号などに応じて、各々セットあるいはクリアされる複数種類のフラグを設定するためのデータを記憶する。遊技制御タイマ設定部134は、パチンコ遊技機1での遊技制御に用いられる複数種類のタイマ値を示すデータを記憶する。遊技制御カウンタ設定部135は、パチンコ遊技機1での遊技制御に用いられる複数種類のカウント値を示すデータを記憶する。遊技制御バッファ設定部136は、パチンコ遊技機1での遊技制御に用いられる各種のデータを一時的に記憶する。なお、フラグ設定やカウンタ/タイマに用いる回路は、RAM106とは別に設けたレジスタ回路などによって構成してもよい。
遊技制御フラグ設定部133には、例えばクリアフラグや、メインバックアップフラグ、払出用通信エラー検出フラグ、シリアル通信エラーフラグ、満タン報知中フラグ、デモ表示フラグ、12ビット乱数用スタート値変更フラグ、16ビット乱数用スタート値変更フラグ、12ビット乱数順列変更フラグ、16ビット乱数順列変更フラグ、特別図柄プロセスフラグ、大当りフラグ、確変中フラグ、賞球プロセスフラグ、再送信フラグ、賞球ACK受信フラグ、払出エラー通知フラグ、払出エラー報知フラグ、払出エラー解除フラグなどが設けられている。
クリアフラグは、パチンコ遊技機1への電力供給が開始されたときに電源基板10が備えるクリアスイッチ304からのクリア信号がオン状態となっているか否かを示す。すなわち、電力供給の開始時にクリア信号がオン状態であればクリアフラグがオン状態にセットされる一方、クリア信号がオフ状態であればクリアフラグはオフ状態に保持される。メインバックアップフラグは、パチンコ遊技機1への電力供給が停止されたときに遊技制御用マイクロコンピュータ100により所定の記憶保護処理が実行されたか否かを示す。例えば、メインバックアップフラグの値として「55H」が設定されているときにはバックアップあり(オン状態)を示す一方、「55H」以外の値が設定されているときにはバックアップなし(オフ状態)を示している。
払出用通信エラー検出フラグは、主基板11と払出制御基板15との間での通信動作においてエラーが発生したことを示す。すなわち、主基板11において払出制御基板15との通信を行うための処理を実行中に所定のエラーが発生すると払出用通信エラー検出フラグがオン状態にセットされる。シリアル通信エラーフラグは、シリアル通信回路108での通信動作においてエラーが発生したことを示す。例えば、シリアル通信エラーフラグは、シリアル通信回路108からのエラー割込み要求に応答してオン状態にセットされる。満タン報知中フラグは、満タンスイッチ26からの検出信号がオン状態であることに応じて、画像表示装置5における表示などにより下皿33が満タン状態である旨の報知が開始されるときに、オン状態にセットされる。デモ表示フラグは、主基板11から演出制御基板12に対してデモ表示コマンドが送信されるときにオン状態にセットされる一方で、特別図柄表示装置4による特図ゲームが開始されるとともに画像表示装置5における飾り図柄の可変表示が開始されるときにクリアされてオフ状態となる。あるいは、デモ表示フラグは、例えば特別図柄表示装置4による特図ゲームでの確定特別図柄としてハズレ図柄が停止表示されたときや、大当り遊技状態が終了したときなどのように、予め定められた所定のタイミングにてクリアされてオフ状態となってもよい。
12ビット乱数用スタート値変更フラグは、乱数回路103にて発生する12ビット乱数の2周目以降におけるスタート値をユーザプログラムにより変更するか否かを示す。例えば、乱数回路103に設けられた乱数生成回路173Aからの乱数一巡信号RIJ1がCPU104に対して出力される場合には、乱数一巡信号RIJ1がオン状態となったことに応答してCPU104により12ビット乱数用スタート値変更フラグをオン状態にセットするようにすればよい。あるいは、CPU104が所定のタイマ割込み処理を実行中において予め定められた所定時間の経過を検出したときに、12ビット乱数用スタート値変更フラグをオン状態にセットするようにしてもよい。12ビット乱数用スタート値変更フラグがオン状態であるときには、乱数回路103にて発生する12ビット乱数における次の周期のスタート値を変更するための処理が、CPU104によって実行される。
16ビット乱数用スタート値変更フラグは、乱数回路103にて発生する16ビット乱数の2周目以降におけるスタート値をユーザプログラムにより変更するか否かを示す。例えば、乱数回路103に設けられた乱数生成回路173Bからの乱数一巡信号RIJ2がCPU104に出力される場合には、乱数一巡信号RIJ2がオン状態となったことに応答してCPU104により16ビット乱数用スタート値変更フラグをオン状態にセットするようにすればよい。あるいは、CPU104が所定のタイマ割込み処理を実行中において予め定められた所定時間の経過を検出したときに、16ビット乱数用スタート値変更フラグをオン状態にセットするようにしてもよい。16ビット乱数用スタート値変更フラグがオン状態であるときには、乱数回路103にて発生する16ビット乱数における次の周期のスタート値を変更するための処理が、CPU104によって実行される。
12ビット乱数順列変更フラグは、乱数回路103にて発生する12ビット乱数の2周目以降における順列をユーザプログラムにより変更するか否かを示す。例えば、乱数回路103に設けられた乱数生成回路173Aからの乱数一巡信号RIJ1がCPU104に対して出力される場合には、乱数一巡信号RIJ1がオン状態となったことに応答してCPU104により12ビット乱数順列変更フラグをオン状態にセットするようにすればよい。あるいは、CPU104が所定のタイマ割込み処理を実行中において予め定められた所定時間の経過を検出したときに、12ビット乱数順列変更フラグをオン状態にセットするようにしてもよい。12ビット乱数順列変更フラグがオン状態であるときには、乱数回路103にて発生する12ビット乱数における次の周期の順列を変更するための処理が、CPU104によって実行される。
16ビット乱数順列変更フラグは、乱数回路103にて発生する16ビット乱数の2周目以降における順列をユーザプログラムにより変更するか否かを示す。例えば、乱数回路103に設けられた乱数生成回路173Bからの乱数一巡信号RIJ2がCPU104に対して出力される場合には、乱数一巡信号RIJ2がオン状態となったことに応答してCPU104により16ビット乱数順列変更フラグをオン状態にセットするようにすればよい。あるいは、CPU104が所定のタイマ割込み処理を実行中において予め定められた所定時間の経過を検出したときに、16ビット乱数順列変更フラグをオン状態にセットするようにしてもよい。16ビット乱数順列変更フラグがオン状態であるときには、乱数回路103にて発生する16ビット乱数における次の周期の順列を変更するための処理が、CPU104によって実行される。
特別図柄プロセスフラグは、特別図柄表示装置4に対応して実行される特別図柄プロセス処理(図31のステップS80、及び図43)において、どの処理を選択・実行すべきかを示す。大当りフラグは、特別図柄表示装置4による特図ゲームを開始するときに、その特図ゲームにおける可変表示結果が大当りとなる旨の判定がなされると、オン状態にセットされる。その後、特図ゲームにて大当りとなったことに基づく大当り遊技状態が終了するときには、大当りフラグはクリアされてオフ状態となる。確変中フラグは、特別図柄表示装置4による特図ゲームにおける可変表示結果が確変大当りとなり、大当りとなったことに基づく大当り遊技状態が終了するときなどに、オン状態にセットされる。他方、確変中フラグは、例えば高確率状態における特図ゲームの実行回数が所定の確変終了基準値に達したときや、特図ゲームにおける可変表示結果が通常大当りとなるときなどに、クリアされてオフ状態となる。
賞球プロセスフラグは、賞球個数の設定などを行う賞球処理(図31のステップS77、及び図37(A))において、どの処理を選択・実行すべきかを示す。再送信フラグは、払出制御基板15に対して払出制御コマンドを送信するための設定を行った後、払出制御基板15からの賞球ACKコマンドを受信できずに所定の賞球ACK待ち時間が経過したときに、オン状態にセットされる。他方、再送信フラグは、賞球ACK待ち時間が経過する前に賞球ACKコマンドを受信できたときなどに、クリアされてオフ状態となる。賞球ACK受信フラグは、払出制御基板15からの賞球ACKコマンドを受信できたか否かを示す。すなわち、賞球ACK受信フラグは、賞球ACKコマンドを受信したときにオン状態にセットされる。
払出エラー通知フラグは、払出制御基板15からの払出エラー通知コマンドを受信したか否かを示す。すなわち、払出エラー通知フラグは、払出エラー通知コマンドを受信したときにオン状態にセットされる。払出エラー報知フラグは、払出エラー通知フラグがオン状態となったことに応じて、画像表示装置5における表示により異常が発生した旨の報知が開始されるときに、オン状態にセットされる。払出エラー解除フラグは、払出制御基板15からの払出エラー解除コマンドを受信したか否かを示す。すなわち、払出エラー解除フラグは、払出エラー解除コマンドを受信したときにオン状態にセットされる。
遊技制御タイマ設定部134には、例えば発射制御タイマ、発射許可制御タイマ、供給許可制御タイマ、賞球制御タイマ、可変表示時間タイマなどが設けられている。発射制御タイマは、発射装置19や球送り装置62の動作を定期的に制御するための発射制御時間を計測するためのものである。発射許可制御タイマは、発射装置19にオン状態の発射許可信号を送信する期間を計測するためのものである。供給許可制御タイマは、球送り装置62にオン状態の供給許可信号を送信する期間を計測するためのものである。賞球制御タイマは、主基板11において賞球の払出に関する各種の処理を実行する際に様々な時間を計測するために用いられる。可変表示時間タイマは、特図ゲームにおける特別図柄の可変表示時間(総変動時間)を計測するためのものである。
遊技制御カウンタ設定部135には、例えばウェイトカウンタや、総賞球数カウンタ、第1〜第3払出数指示カウンタ、コマンド送信回数カウンタ、コマンド受信個数カウンタ、コマンド送信待ちカウンタなどが設けられている。また、遊技制御カウンタ設定部135には、高確率状態や時間短縮状態における特図ゲームの実行回数をカウントするための可変表示回数カウンタなどが設けられていてもよい。
ウェイトカウンタは、パチンコ遊技機1への電力供給が開始されて遊技制御用マイクロコンピュータ100による遊技制御処理(遊技の進行を制御するための処理)の実行が可能な状態となったときに、遊技制御処理の実行を開始するタイミングを遅延させるために用いられる。例えば、ウェイトカウンタには、パチンコ遊技機1への電力供給が開始されて遊技制御用マイクロコンピュータ100が起動したときに、所定の遅延時間に対応した初期化ウェイト回数指定値がセットされる。その後、ウェイトカウンタの値であるウェイトカウント値を順次に減算するなどの更新処理が行われ、その値が所定の遅延終了判定値に達したときに、遊技制御処理の実行が開始される。
総賞球数カウンタは、各入賞口スイッチで遊技球が検出されたことに基づき払い出すべき賞球のうちで、主基板11から払出制御基板15に対して払出しの指示が未だ完了していない賞球の総数をカウントするためのものである。例えば、遊技制御用マイクロコンピュータ100においてカウントスイッチ24からの入賞検出信号がオン状態であると判定されたときには、総賞球数カウンタの値である総賞球数カウント値が15加算される。また、入賞口スイッチ25A〜25Dのいずれかからの入賞検出信号がオン状態であると判定されたときには、総賞球数カウント値が7加算され、始動口スイッチ22からの入賞検出信号がオン状態であると判定されたときには、総賞球数カウント値が4加算される。他方、例えば主基板11から払出制御基板15に対して第1払出数指定コマンドが送信された後に遊技制御用マイクロコンピュータ100において払出制御基板15から送信される賞球ACKコマンドを受信したときには、総賞球数カウント値が15減算される。また、例えば主基板11から払出制御基板15に対して第2払出数指定コマンドが送信された後に賞球ACKコマンドを受信したときには、総賞球数カウント値が7減算され、例えば第3払出数指定コマンドが送信された後に賞球ACKコマンドを受信したときには、総賞球数カウント値が4減算される。なお、総賞球数カウント値を減算するタイミングは、主基板11から払出制御基板15に対して第1〜第3払出数指定コマンドのいずれかを送信した後に賞球ACKコマンドを受信したときに限られず、第1〜第3払出数指定コマンドを送信するための設定を行う前の段階であってもよい。このように、始動口スイッチ22、カウントスイッチ24、入賞口スイッチ25A〜25Dからの入賞検出信号に応じて、総賞球数カウンタが払い出すべき賞球の総数をカウントすることで、払い出すべき賞球の数を特定可能な景品遊技媒体数データを含む遊技の進行状態を示すデータが、RAM106に記憶されることになる。
第1〜第3払出数指示カウンタは、各入賞口スイッチで遊技球が検出されたことに基づいて、主基板11から払出制御基板15に対して第1〜第3払出数指定コマンドのそれぞれを送信すべき回数をカウントするためのものである。例えば、遊技制御用マイクロコンピュータ100においてカウントスイッチ24からの入賞検出信号がオン状態であると判定されたときには、第1払出数指示カウンタの値である第1払出数指示カウント値が1加算される。また、入賞口スイッチ25A〜25Dのいずれかからの入賞検出信号がオン状態であると判定されたときには、第2払出数指示カウンタの値である第2払出数指示カウント値が1加算され、始動口スイッチ22からの入賞検出信号がオン状態であると判定されたときには、第3払出数指示カウンタの値である第3払出数指示カウント値が1加算される。他方、例えば主基板11から払出制御基板15に対して第1払出数指定コマンドが送信された後に遊技制御用マイクロコンピュータ100が賞球ACKコマンドを受信したときには、第1払出数指示カウント値が1減算される。また、例えば主基板11から払出制御基板15に対して第2払出数指定コマンドが送信された後に遊技制御用マイクロコンピュータ100が賞球ACKコマンドを受信したときには、第2払出数指示カウント値が1減算され、例えば主基板11から払出制御基板15に対して第3払出数指定コマンドが送信された後に遊技制御用マイクロコンピュータ100が賞球ACKコマンドを受信したときには、第3払出数指示カウント値が1減算される。なお、第1〜第3払出数指示カウント値のそれぞれを減算するタイミングは、例えば主基板11から払出制御基板15に対して第1〜第3払出数指定コマンドのそれぞれを送信した後であって、賞球ACKコマンドを受信する前の段階であってもよい。
コマンド送信回数カウンタは、払出制御基板15に対して第1〜第3払出数指定コマンドのいずれかを送信した回数をカウントし、全入賞球検出スイッチ29からの検出信号に応じて検出された遊技球の個数との差を、入賞個数差として特定するためのものである。例えば、コマンド送信回数カウンタには、パチンコ遊技機1への電力供給が開始されたときに、所定のカウント初期値(例えば「200」)が設定される。そして、主基板11から払出制御基板15に対して第1〜第3払出数指定コマンドのいずれかが送信された後に賞球ACKコマンドを受信したときに、コマンド送信回数カウンタの値であるコマンド送信回数カウント値が1加算される一方、全入賞球検出スイッチ29からの検出信号がオン状態となったときには、コマンド送信回数カウント値が1減算される。
コマンド受信個数カウンタは、払出制御基板15といったサブ側の制御基板から受信したコマンドの個数を特定可能にカウントするためのものである。コマンド送信待ちカウンタは、演出制御基板12や払出制御基板15といったサブ側の制御基板に対して送信待ちとなっているコマンドの個数を特定可能にカウントするためのものである。
遊技制御バッファ設定部136には、例えばメインチェックサムバッファや、受信コマンドバッファ、送信コマンドバッファなどが設けられている。メインチェックサムバッファは、パチンコ遊技機1への電力供給が停止されるときにRAM106の特定領域における記憶データを用いて算出されたチェックサムを保存するためのものである。
受信コマンドバッファは、主基板11にてサブ側の制御基板から受信したコマンドを一時的に格納するために用いられる。図23は、受信コマンドバッファに含まれる払出用受信コマンドバッファ191の構成例を示す図である。払出用受信コマンドバッファ191は、払出制御基板15から受信したコマンドを一時的に格納するためのものである。図23に示す払出用受信コマンドバッファ191は、12個の受信コマンドバッファ#1〜#12を備えており、払出制御基板15から受信したコマンドを格納する受信コマンドバッファは、コマンド受信個数カウンタで指定される。各受信コマンドバッファ#1〜#12は、例えば1バイト(8ビット)で構成され、複数の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の受信コマンドを6個格納することができる。
送信コマンドバッファは、主基板11からサブ側の制御基板に対して送信するコマンドを一時的に格納するために用いられる。図24は、送信コマンドバッファに含まれる払出用送信コマンドバッファ192の構成例を示す図である。払出用送信コマンドバッファ192は、主基板11から払出制御基板15に対して送信するコマンドを一時的に格納するためのものである。図24に示す払出用送信コマンドバッファ192は、12個の送信コマンドバッファ#1〜#12を備えており、主基板11から払出制御基板15に対して送信待ちとなるコマンドを格納するコマンドバッファは、コマンド送信待ちカウンタで指定される。各送信コマンドバッファ#1〜#12は、例えば1バイト(8ビット)で構成され、複数の送信コマンドバッファをリングバッファとして使用することにより、2バイト構成の送信コマンドを6個格納することができる。また、送信コマンドバッファには、主基板11から演出制御基板12に対して送信するコマンドを一時的に格納するための演出用送信コマンドバッファが含まれてもよい。
その他にも、遊技制御用データ保持エリア130には、通過ゲート41を通過した遊技球がゲートスイッチ21によって検出されて普通図柄表示器40による普通図ゲームを実行するための始動条件が成立したものの、従前の普通図ゲームを実行中である等の理由のために可変表示を開始するための開始条件が成立していない普通図ゲームに関する保留情報を記憶する普通図保留記憶部などを備えていてもよい。このように、特図ゲームや普通図ゲームに関する保留情報は、主基板11に設けられた遊技制御用データ保持エリア130などに記憶され、CPU104による特図ゲームや普通図ゲームの制御に用いられる。
図11に示す遊技制御用マイクロコンピュータ100が備えるタイマ回路107は、例えば8ビットのプログラマブルカウンタを4チャネル(CH0〜CH3)内蔵して構成され、リアルタイム割込みの発生や時間計測を可能とする回路である。例えば、タイマ回路107では、チャネルごとに予め設定したカウント値から所定周期でのカウントダウンを開始し、カウント値が「00」となったチャネルがあるときには、そのチャネルに対応した割込みフラグをオン状態にセットする。このとき、割込み許可状態であれば、タイマ回路107がCPU104に対して割込み要求を発生する。
遊技制御用マイクロコンピュータ100が備えるシリアル通信回路108は、例えば全二重、非同期、標準NRZ(Non Return to Zero)フォーマットで通信データを取扱う回路である。例えば、シリアル通信回路108は、受信動作部と、送信動作部と、シリアル通信データレジスタと、シリアルステータスレジスタと、シリアル制御レジスタとを備えて構成される。
シリアル通信回路108の受信動作部は、シリアル制御レジスタの所定ビットにおける設定に基づいた受信動作により、シリアル通信で伝送される受信データをサンプリングして取得し、取得した受信データをシリアル通信データレジスタに転送可能とする。また、この受信動作部は、受信動作における動作状態などに応じて、シリアルステータスレジスタの所定ビットを“0”または“1”に設定する。さらに、受信動作部には、例えばシリアル通信で順次に伝送された受信データをシフトさせながら格納する受信用シフトレジスタや、受信用シフトレジスタから読出した受信データを一時的に格納する受信データレジスタ、シリアル通信における受信動作に関わる割込み要因の発生を制御する割込み制御回路などが設けられていればよい。
シリアル通信回路108の送信動作部は、シリアル制御レジスタの所定ビットにおける設定に基づいた送信動作により、シリアル通信データレジスタからの読出データに対応する送信データを生成し、シリアル通信による送信を可能にする。また、この送信動作部は、送信動作における動作状態などに応じて、シリアルステータスレジスタの所定ビットを“0”または“1”に設定する。さらに、送信動作部には、例えばシリアル通信データレジスタから読出したデータを一時的に格納する送信データレジスタや、シリアル通信で順次に送信する送信データを格納してシフトさせながら出力する送信用シフトレジスタ、シリアル通信における送信動作に関わる割込み要因の発生を制御する割込み制御回路などが設けられていればよい。
シリアル通信回路108のシリアル通信データレジスタは、受信動作部にて取得した受信データを格納したり、送信動作部に供給するデータを格納したりすることで、シリアル通信回路108とCPU104との間での通信データのやり取りを可能にする回路であり、例えば1バイト(8ビット)で構成されている。
シリアル通信回路108のシリアルステータスレジスタは、シリアル通信回路108における動作状態を確認するためのレジスタであり、例えばシリアル通信回路108における動作状態に応じて各々がセットまたはクリアされる複数のフラグを示すビット値を記憶可能に構成されていればよい。
シリアル通信回路108のシリアル制御レジスタは、シリアル通信回路108における通信フォーマットや各種エラー割込み要求の許可/禁止などを設定するためのレジスタであり、例えばシリアル通信回路108における各部位の動作を制御するために用いられる制御データが記憶されるように構成されていればよい。
図11に示す遊技制御用マイクロコンピュータ100が備える外部バスインタフェース109は、アドレスバスやデータバス、及び各制御信号の方向制御や駆動制御を行うインタフェース回路である。
図5に示すように、演出制御基板12には、演出制御用マイクロコンピュータ120が搭載されている。また、演出制御基板12には、演出制御用マイクロコンピュータ120からの描画コマンドに応じて画像データを生成するVDP(Video Display Processor)などが搭載されていてもよい。演出制御用マイクロコンピュータ120は、例えば1チップマイクロコンピュータであり、ROM121と、RAM122と、CPU123と、I/Oポート124とを含んでいる。また、演出制御用マイクロコンピュータ120は、CPU123とは独立して乱数値を示す数値データの生成を行う乱数回路などを含んでいてもよい。中継基板18を介して主基板11から送信された制御信号は、所定のコネクタやI/Oポート124内の入力ポートを介して、CPU123に入力される。また、音声制御基板13に対する制御信号は、CPU123からI/Oポート124内の出力ポートや所定のコネクタを介して、音声制御基板13へと出力される。ランプ制御基板14に対する制御信号は、CPU123からI/Oポート124内の出力ポートや所定のコネクタを介して、ランプ制御基板14へと出力される。
なお、演出制御基板12と画像表示装置5の間には、画像データにおける解像度を変換するためのスケーラ回路が設けられていてもよい。この場合、演出制御基板12に搭載されたVDPが演出制御用マイクロコンピュータ120からの描画コマンドに応じて生成した画像データは、スケーラ回路により解像度が変換された後、画像表示装置5に供給される。具体的な一例として、スケーラ回路は、VDPによって生成された第1の解像度による画像データを入力し、垂直方向及び水平方向のいずれか一方あるいは双方について、以下のような処理を施すことにより、入力された画像データを第1の解像度とは異なる第2の解像度に変換する。
例えば、垂直方向における解像度を変換する場合には、入力された画像データの垂直方向に沿って第1のサンプルレートでアップサンプリングを行った後、予め用意されたフィルタ(例えばFIRフィルタ)によるフィルタリング処理を施す。その後、垂直方向に沿って所定のスケーリング係数に対応する第2のサンプルレートでダウンサンプリングを行うようにすればよい。また、水平方向における解像度を変換する場合には、入力された画像データの水平方向に沿って、垂直方向と同じようなアップサンプリング、フィルタリング処理及びダウンサンプリングを行うようにすればよい。具体的な一例として、VDPによってVGAモード(640×480ピクセル)の画像データが生成された場合に、スケーラ回路における変換処理により、その画像データをSXGAモード(1280×1024ピクセル)、あるいは他のモードに変換することが可能になる。
図5に示すように、払出制御基板15には、払出制御用マイクロコンピュータ150やスイッチ回路161が搭載されている。スイッチ回路161には、払出モータ位置センサ71、払出カウントスイッチ72、エラー解除スイッチ73などの各種スイッチやセンサからの検出信号が入力される。スイッチ回路161は、これらの検出信号を取り込んで、払出制御用マイクロコンピュータ150に伝送する。
図25は、払出制御基板15に搭載された払出制御用マイクロコンピュータ150の構成例を示す図である。図25に示す払出制御用マイクロコンピュータ150は、例えば遊技制御用マイクロコンピュータ100と同様の1チップマイクロコンピュータであり、クロック回路211と、リセット/割込みコントローラ212と、乱数回路213と、CPU214と、ROM215と、RAM216と、タイマ回路(PIT)217と、シリアル通信回路(SCI)218と、外部バスインタフェース219とを備えて構成されている。なお、乱数回路213は、遊技制御用マイクロコンピュータ100が備える乱数回路103と同様の構成を有するものであればよく、シリアル通信回路218は、遊技制御用マイクロコンピュータ100が備えるシリアル通信回路108と同様の構成を有するものであればよい。また、払出制御用マイクロコンピュータ150には、乱数回路213が設けられていなくてもよい。
払出制御用マイクロコンピュータ150が備えるROM215には、払出制御用のプログラムが記憶されている。払出制御用マイクロコンピュータ150では、例えばCPU214がROM215に記憶されている払出制御用のプログラムを読出し、主基板11から送信された払出制御コマンドやカードユニット70との通信結果などに基づいて各種の処理を実行することにより、遊技球の払出動作を制御する。
払出制御用マイクロコンピュータ150が備えるRAM216には、遊技球の払出動作などを制御するために用いられる各種のデータを保持する領域として、例えば図26に示すような払出制御用データ保持エリア140が設けられている。また、RAM216の少なくとも一部は、電源基板10において作成されるバックアップ電源によってバックアップされているバックアップRAMである。すなわち、パチンコ遊技機1への電力供給が停止しても、所定時間は、RAM216の少なくとも一部の内容は保存される。この実施の形態では、RAM216の全体がバックアップされているバックアップRAMであるものとする。図26に示す払出制御用データ保持エリア140は、払出制御フラグ設定部141と、払出制御タイマ設定部142と、払出制御カウンタ設定部143と、払出制御バッファ設定部144とを備えている。
払出制御フラグ設定部141には、例えば払出バックアップフラグや、払出制御プロセスフラグ、賞球払出動作プロセスフラグ、球貸し動作プロセスフラグ、賞球ACK送信フラグ、フィードバック受信フラグ、受信確認中フラグ、エラーフラグなどが設けられている。
払出制御プロセスフラグは、払出モータ51による遊技球の払出動作を制御するための払出動作制御処理(図47のステップS535、及び図50)において、どの処理を選択・実行すべきかを示す。賞球払出動作プロセスフラグは、払出モータ51を駆動して賞球となる遊技球を払い出すために実行される賞球払出動作処理(図50のステップS663、及び図53)において、どの処理を選択・実行すべきかを示す。球貸し動作プロセスフラグは、払出モータ51を駆動して貸し球となる遊技球を払い出すために実行される球貸し払出動作処理(図50のステップS664、及び図57)において、どの処理を選択・実行すべきかを示す。
賞球ACK送信フラグは、主基板11からの払出数指定コマンドを受信したときに、賞球ACKコマンドを送信する旨を示す。すなわち、賞球ACK送信フラグは、第1〜第3払出数指定コマンドのいずれかを受信したときに、オン状態にセットされる。フィードバック受信フラグは、主基板11からのACKフィードバックコマンドを受信できたか否かを示す。すなわち、フィードバック受信フラグは、ACKフィードバックコマンドを受信したときにオン状態にセットされる。
受信確認中フラグは、主基板11に対して賞球ACKコマンドを送信した後、主基板11からのACKフィードバックコマンドについて受信確認中であることを示す。すなわち、受信確認中フラグは、賞球ACKコマンドが送信されるときにオン状態にセットされた後、ACKフィードバックコマンドを受信したとき、あるいはACKフィードバックコマンドを受信することなく所定期間が経過したときに、クリアされてオフ状態となる。
払出制御フラグ設定部141に設けられたエラーフラグは、払出モータ51を駆動することによる遊技球の払出動作状態や、主基板11との間におけるコマンドの送受信状態などに基づき、所定のエラー発生が検出されたときにオン状態にセットされる複数種類のフラグを含んで構成されている。例えば、エラーフラグは、主基板通信エラーフラグ、多量未払出エラーフラグ、カードユニット未接続エラーフラグ、球詰まりエラーフラグ、球噛みエラーフラグ、空切り(奥)エラーフラグ、空切り(手前)エラーフラグ、シリアル通信エラーフラグなどを含んでいる。
ここで、主基板通信エラーフラグは、主基板11との間における通信状態にエラーが発生したときに、オン状態にセットされる。多量未払出エラーフラグは、主基板11からの払出数指定コマンドにより払い出しが指示された後に未だ払い出されていない未払出の賞球数が所定個数を超えたときに、オン状態にセットされる。カードユニット未接続エラーフラグは、カードユニット70との間における通信状態にエラーが発生したときに、オン状態にセットされる。球詰まりエラーフラグは、例えば払出カウントスイッチ72からの検出信号が所定時間(具体的な一例として、0.5秒)以上継続してオン状態となったことに応じて、オン状態にセットされる。球噛みエラーフラグは、例えば払出モータ51を駆動したときに払出モータ位置センサ71が所定時間以上継続してオン状態またはオフ状態であることに応じて、オン状態にセットされる。空切り(奥)エラーフラグは、例えば払出モータ51を駆動したときに、図4に示すような払出装置における球通路90の奥側(穴85から流入した遊技球の通路)での遊技球の通過が払出カウントスイッチ72により検出できなかったことに応じて、オン状態にセットされる。空切り(手前)エラーフラグは、例えば払出モータ51を駆動したときに、図4に示すような払出装置における球通路90の手前側(穴86から流入した遊技球の通路)での遊技球の通過が払出カウントスイッチ72により検出できなかったことに応じて、オン状態にセットされる。シリアル通信エラーフラグは、シリアル通信回路218からのエラー割込み要求に応答してオン状態にセットされる。
払出制御タイマ設定部142には、例えば通信制御タイマや、送信動作制御タイマなどが設けられている。通信制御タイマは、主基板11との間でコマンドを送受信する通信動作において様々な時間を計測するために用いられる。送信動作制御タイマは、シリアル通信回路218によるシリアル通信で通信データを送信させてからの経過時間を計測するために用いられる。
払出制御カウンタ設定部143には、例えば賞球未払出カウンタや、前回未払出カウンタ、球貸し未払出カウンタ、払出個数カウンタ、払出動作不良回数カウンタ、払出モータ回転カウンタ、コマンド受信個数カウンタ、コマンド送信待ちカウンタなどが設けられている。
賞球未払出カウンタは、主基板11から送信される第1〜第3払出数指定コマンドに基づき、賞球として払い出すべき遊技球の個数を、賞球未払出カウント値として更新可能に記憶することにより、カウントするためのものである。前回未払出カウンタは、例えば主基板11から送信された第1〜第3払出数指定コマンドのいずれかを受信したことにより賞球未払出カウント値が更新されたときなどに、払出モータ51による払出動作量を示す払出モータ回転カウント値が払出モータ回転カウンタに記憶されることに応じて、賞球未払出カウンタにより記憶された賞球未払出カウント値を、前回未払出カウント値として記憶するためのものである。
球貸し未払出カウンタは、カードユニット70からの球貸し要求に基づき、貸し球として払い出すべき遊技球の個数を、球貸し未払出カウント値として更新可能に記憶することにより、カウントするためのものである。払出個数カウンタは、払出モータ51を駆動することによって払出カウントスイッチ72により検出された遊技球の個数を、払出個数カウント値として更新可能に記憶することにより、カウントするためのものである。払出動作不良回数カウンタは、遊技球を払い出すために払出モータ51を駆動したときに払出動作の不良が検出された回数を、払出動作不良回数カウント値として更新可能に記憶することにより、カウントするためのものである。払出モータ回転カウンタは、賞球または貸し球として払い出すべき遊技球の個数に応じた払出モータ回転カウント値を更新可能に記憶して、払出モータ51の駆動量(回転量)を設定するために用いられる。
コマンド受信個数カウンタは、主基板11から受信したコマンドの個数を特定可能にカウントするためのものである。コマンド送信待ちカウンタは、主基板11に対して送信待ちとなっているコマンドの個数を特定可能にカウントするためのものである。
払出制御バッファ設定部144には、例えば払出チェックサムバッファや、受信コマンドバッファ、送信コマンドバッファなどが設けられている。払出チェックサムバッファは、パチンコ遊技機1への電力供給が停止されたときにRAM216の特定領域における記憶データを用いて算出されたチェックサムを保存するためのものである。受信コマンドバッファは、払出制御基板15にて主基板11から受信したコマンドを一時的に格納するために用いられる。送信コマンドバッファは、払出制御基板15から主基板11に対して送信するコマンドを一時的に格納するために用いられる。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。主基板11では、電源基板10からの電力供給が開始され遊技制御用マイクロコンピュータ100へのリセット信号がハイレベル(オフ状態)になったことに応じて、遊技制御用マイクロコンピュータ100が起動し、図27のフローチャートに示すような遊技制御メイン処理が実行される。なお、以下に説明する各処理は、遊技制御用マイクロコンピュータ100が備えるCPU104によって実行されるものとする。また、遊技制御用マイクロコンピュータ100が備えるタイマ回路107やシリアル通信回路108などで発生した各種の割込み要因に基づく割込み要求は、CPU104に所定の割込み処理を実行させるためのものである。そして、CPU104やCPU104以外の各種回路を含んだ概念を遊技制御用マイクロコンピュータ100ということもあるものとする。図27に示す遊技制御メイン処理を開始すると、遊技制御用マイクロコンピュータ100は、まず、割込禁止に設定し(ステップS1)、割込モードの設定を行う(ステップS2)。例えば、ステップS2では、遊技制御用マイクロコンピュータ100の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビットは“0”)とを合成することにより割込アドレスが生成されるマスク可能割込の割込モードが設定される。マスク可能な割込みが発生したときには、遊技制御用マイクロコンピュータ100が自動的に割込禁止状態となる設定を行うとともに、プログラムカウンタの内容がスタックにセーブされればよい。
続いて、例えばスタックポインタ指定アドレスの設定など、スタックポインタに関わる設定を行う(ステップS3)。また、内蔵デバイスレジスタの設定(初期化)を行う(ステップS4)。例えば、遊技制御用マイクロコンピュータ100がCTC(カウンタ/タイマ)及びPIO(パラレル入出力ポート)を内蔵している場合には、ステップS4の処理が実行されることにより、内蔵デバイス(内蔵周辺回路)としてのCTCやPIOの設定(初期化)などが行われるとよい。
ステップS4の処理を実行した後には、例えば遊技制御用マイクロコンピュータ100に設けられた入力ポートにおける所定ビットの状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定する(ステップS5)。パチンコ遊技機1への電力供給が開始されたときには、VCCなどの各種電源電圧が徐々に上昇して規定値に達する。ステップS5の処理では、電源断信号が出力されていないオフ状態(ハイレベル)となっていることを確認する。ここで、遊技制御用マイクロコンピュータ100は、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。なお、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
ステップS5にて電源断信号がオン状態であるときには(ステップS5;No)、所定時間(例えば0.1秒)が経過するまで待機した後(ステップS6)、ステップS5の処理に戻って、電源断信号がオフ状態となっているか否かの判定を再び行うようにする。これにより、遊技制御用マイクロコンピュータ100は、電源電圧が安定したことを確認することができる。そして、ステップS5にて電源断信号がオフ状態であるときには(ステップS5;Yes)、例えば遊技制御用マイクロコンピュータ100に設けられた入力ポートにおける所定ビットの状態をチェックすることなどにより、クリア信号がオン状態となっているか否かを判定する(ステップS7)。このとき、クリア信号がオン状態であれば(ステップS7;Yes)、例えば遊技制御フラグ設定部133に設けられたクリアフラグをオン状態にセットする(ステップS8)。他方、クリア信号がオフ状態であるときには(ステップS7;No)、ステップS8の処理をスキップして、クリアフラグをオフ状態のままとする。
ここで、遊技制御用マイクロコンピュータ100は、入力ポートを介して1回だけクリア信号の状態を確認するようにしてもよいが、クリア信号の状態を複数回確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、クリア信号の状態をもう1回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
その後、遊技の進行を制御するための遊技制御処理の開始タイミングをソフトウェアの実行により遅延させる遅延処理の設定を行う(ステップS9)。具体的な一例として、遊技制御カウンタ設定部135に設けられたウェイトカウンタに、初期化ウェイト回数指定値をセットする。続いて、ステップS9での設定に基づく遅延処理を開始して、例えばウェイトカウンタにおけるカウント値を1減算するなど、遅延処理の実行に関わる設定の更新を行う(ステップS10)。そして、例えばウェイトカウンタにおけるカウント値が所定の遅延終了判定値に達したか否かを判定することなどにより、所定の遅延時間が経過したか否かを判定する(ステップS11)。ここで、遅延終了判定値を示すデータは、ROM105などに予め記憶されていればよい。例えば、遅延終了判定値は、遊技制御処理が実行可能状態となったときから、少なくとも払出制御基板15に搭載された払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されるまでの時間に比べて遅延時間の方が長くなるように、予め定められた基準値であればよい。
ステップS11にて遅延時間が経過していないときには(ステップS11;No)、ステップS10の処理に戻り、遅延時間が経過しているときには(ステップS11;Yes)、RAM106をアクセス可能に設定する(ステップS12)。続いて、遊技制御用マイクロコンピュータ100は、クリアフラグがオンとなっているか否かを判定する(ステップS13)。クリアフラグがオフであるときには(ステップS13;No)、RAM106のデータチェックを行い、チェック結果が正常であるか否かを判定する(ステップS14)。ステップS14の処理では、例えばRAM106の特定領域における記憶データを用いてチェックサムを算出し、算出されたチェックサムとメインチェックサムバッファに記憶されているチェックサムとを比較する。ここで、メインチェックサムバッファには、前回の電力供給停止時に、同様の処理によって算出されたチェックサムが記憶されている。そして、比較結果が不一致であれば、RAM106の特定領域におけるデータが電力供給停止時のデータとは異なっていることから、チェック結果が正常でないと判断される。
ステップS14におけるチェック結果が正常であるときには(ステップS14;Yes)、遊技制御フラグ設定部133に設けられたメインバックアップフラグがオンとなっているか否かを判定する(ステップS15)。メインバックアップフラグの状態は、電力供給が停止するときに、遊技制御フラグ設定部133に設定される。そして、このメインバックアップフラグの設定箇所がバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、メインバックアップフラグの状態は保存されることになる。ステップS15では、例えばメインバックアップフラグの値として「55H」が遊技制御フラグ設定部133に設定されていれば、バックアップあり(オン状態)であると判断される。これに対して、「55H」以外の値が設定されていればバックアップなし(オフ状態)であると判断される。なお、ステップS15のようなメインバックアップフラグがオンとなっているか否かの判定を、ステップS14のようなチェック結果の判定よりも先に行い、メインバックアップフラグがオンであるときにRAM106のデータチェック結果が正常であるか否かを判定するようにしてもよい。
ステップS15にてメインバックアップフラグがオンであるときには(ステップS15;Yes)、メインバックアップフラグをクリアしてオフ状態とした後(ステップS16)、遊技制御用マイクロコンピュータ100の内部状態などを電力供給が停止されたときの状態に戻すための復旧時における設定を行う(ステップS17)。具体的な一例として、ステップS17の処理では、ROM105に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し、バックアップ時設定テーブルの内容を順次に、RAM106内の作業領域に設定する。ここで、RAM106の作業領域はバックアップ電源によってバックアップされており、バックアップ時設定テーブルには、作業領域のうちで初期化してもよい領域についての初期化データが設定されていてもよい。
また、ステップS13にてクリアフラグがオンであるときや(ステップS13;Yes)、ステップS14にてチェック結果が正常ではないとき(ステップS14;No)、あるいはステップS15にてメインバックアップフラグがオフであるときには(ステップS15;No)、RAM106の初期化を行う(ステップS18)。ステップS18の処理に続いて、遊技制御用マイクロコンピュータ100の内部状態などを初期状態とするための初期化時における設定を行う(ステップS19)。具体的な一例として、ステップS19の処理では、ROM105に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し、初期化時設定テーブルの内容を順次、RAM106内の作業領域に設定する。また、ステップS19の処理では、遊技制御カウンタ設定部135に設けられたコマンド送信回数カウンタに、所定のカウント初期値(例えば「200」)を設定する。
ステップS17またはステップS19の処理を実行した後には、例えば遊技制御用マイクロコンピュータ100が備えるタイマ回路107のレジスタ設定などを行うことにより、所定時間(例えば2ミリ秒)ごとにタイマ割込みが発生するように遊技制御用マイクロコンピュータ100の内部設定を行う(ステップS20)。この後、CPU104がROM105に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し(ステップS21)、読出した値に基づいて乱数生成動作の初期設定を行う(ステップS22)。図28は、ステップS22にて実行される処理内容の一例を示す説明図である。
ステップS21における読出値が「00」であるときには、ステップS22の処理としては何らの処理も実行されずに、ステップS23の処理に進む。このときには、ステップS22の処理として、乱数回路103における12ビット乱数と16ビット乱数の双方について、その生成動作を停止させるための処理が実行されてもよい。ステップS21における読出値が「01」であるときには、ステップS22の処理として、12ビット乱数初期設定処理が実行される。このときには、乱数回路103における16ビット乱数について、その生成動作を停止させるための処理が実行されてもよい。ステップS21における読出値が「10」であるときには、ステップS22の処理として、16ビット乱数初期設定処理が実行される。このときには、乱数回路103における12ビット乱数について、その生成動作を停止させるための処理が実行されてもよい。ステップS21における読出値が「11」であるときには、ステップS22の処理として、12ビット乱数初期設定処理と16ビット乱数初期設定処理が実行される。
ステップS22の処理に続いて、シリアル通信動作の初期設定を行うための処理として、シリアル通信初期設定処理を実行する(ステップS23)。ステップS23のシリアル通信初期設定処理では、例えばCPU104がROM105の所定領域に格納されてシリアル通信回路108の動作設定を行うために用いられるシリアル通信初期設定データを読出し、読出値に基づいてシリアル通信回路108が備えるシリアル制御レジスタを所定の初期動作状態に設定する処理などを実行する。シリアル通信初期設定処理を実行した後、割込み要求に基づいて実行される割込み処理に関する初期設定を行うための処理として、割込み初期設定処理を実行する(ステップS24)。ステップS24の割込み初期設定処理では、例えばCPU104が図19に示すようなROM105におけるE01Bh番地の領域に格納された最優先割込み設定(KHPR)を読出し、読出値に基づいて最優先割込みの設定を行う処理などを実行する。より具体的には、CPU104が読出した最優先割込み設定(KHPR)の値が「00h」から「07h」のいずれであるかを特定し、特定された値に対応するIクラス割込み(IRQ)の要因が最も優先順位の高い割込み要因となるように、所定レジスタにおける格納データの読出順位の設定などが行われればよい。この読出順位の設定を示すデータは、例えばCPU104の内部レジスタなどに格納しておけばよい。この場合、CPU104は、リセット/割込みコントローラ102からIクラス割込み(IRQ)端子などに入力される割込み要求信号がオン状態となったときに、内部レジスタの格納データを確認することで、優先的に実行する割込み処理を特定することができる。
続いて、遊技制御用マイクロコンピュータ100は割込許可状態に設定して(ステップS25)、各種割込みの発生を待機する。このときには、電源断信号がオン状態となったか否か(出力されたか否か)の判定を行い(ステップS26)、オフであれば(ステップS26;No)、そのまま各種割込みの発生を待機する。また、電源断信号がオン状態となったときには(ステップS26;Yes)、メイン側電源断処理を実行した後(ステップS27)、所定のループ処理を実行して、電力供給の停止による遊技制御用マイクロコンピュータ100の動作停止まで待機する。なお、ステップS26の処理では、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。なお、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。このように電源断信号の状態を複数回確認する場合には、例えば確認動作を開始するときや1回目の確認結果と2回目の確認結果とを比較して不一致であったときなどに、遊技制御用マイクロコンピュータ100に内蔵されたWDT(ウォッチドッグ・タイマ)をクリアするリトリガを行う。そして、リトリガが何らかの原因(例えばプログラムの暴走)で所定時間内に発生しなくなった場合には、WDTから出力されるタイムアウト信号に基づくユーザリセットを発生させ、リセット/割込みコントローラ102、CPU104、タイマ回路107、シリアル通信回路108などの各回路を初期化した後、所定のベクタテーブルで示されるアドレスからユーザプログラムの実行を開始して、自動復旧を行うようにしてもよい。
ステップS27のメイン側電源断処理では、例えばCPU104が割込禁止に設定した後、遊技制御用マイクロコンピュータ100に設けられた出力ポートの所定ビットにクリアデータをセットするなどして、ソレノイド81、82の駆動制御に関する設定を初期化する。このときには、出力ポートの所定ビット以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。続いて、例えばRAM106の特定領域における記憶データを用いてチェックサムを算出するなどして、チェックデータの作成を行うとともに、遊技制御フラグ設定部133に設けられたメインバックアップフラグをオン状態にセットする。このとき作成されたチェックデータは、例えば遊技制御バッファ設定部136に設けられたメインチェックサムバッファなどといった、RAM106の所定領域に格納される。そして、遊技制御用マイクロコンピュータ100では、例えばCPU104が所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM106へのアクセスを禁止する。これにより、電力供給の停止に伴ってプログラムの暴走が生じても、RAM106の記憶内容が破損することを防止できる。こうしたメイン側電源断処理が実行された後には、待機状態(ループ処理)に入ることになる。
また、ステップS27にてメイン側電源断処理を実行した後には、例えば電源断信号がオフ状態となったか否かを定期的に判定し、オフ状態となったときには、CPU104が図26に示すステップS1から再び処理を進めることなどにより、瞬断に対応して処理を再開できるようにしてもよい。あるいは、ステップS27にてメイン側電源断処理を実行した後、例えばWDTからタイムアウト信号が出力されるまでの所要時間よりも長い時間として予め定められた所定時間が経過しても電源基板10からの電力供給が継続しているときに、CPU104が図26に示すステップS1から再び処理を進めることなどにより、瞬断に対応して処理を再開できるようにしてもよい。
図29は、ステップS25にて実行される処理に含まれる12ビット乱数初期設定処理の一例を示すフローチャートである。図29に示す12ビット乱数初期設定処理において、遊技制御用マイクロコンピュータ100では、まず、CPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第7ビット[ビット7]を読出し(ステップS101)、読出値が“0”であるか否かを判定する(ステップS102)。このとき、ステップS101での読出値が“0”であれば(ステップS102;Yes)、乱数回路103において12ビット乱数を生成するための1周目のスタート値を、デフォルト値である「001h」に設定する旨の決定を行う(ステップS103)。他方、ステップS101での読出値が“1”であれば(ステップS102;No)、乱数回路103において12ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する(ステップS104)。ここで、ステップS104の処理では、例えばCPU104がROM105から読み出した遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま12ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、12ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。例えば、CPU104がROM105から読み出した遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
ステップS103またはステップS104にて決定されたスタート値は、乱数回路103が備える初期値設定回路172Aに入力されることで、12ビット乱数を生成するための1周目のスタート値として設定される。なお、ステップS103やステップS104の処理は、乱数回路103が備える初期値設定回路172Aが実行するようにしてもよい。例えば、CPU104がステップS102にて読出値が“0”であると判定したときには、乱数回路103に所定の第1初期値設定信号を送る。乱数回路103がCPU104から第1初期値設定信号を受けたときには、初期値設定回路172Aが所定のレジスタの記憶データを読出し、その読出値を乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための1周目のスタート値を、デフォルト値である「001h」に設定する(ステップS103に相当する処理)。他方、CPU104がステップS102にて読出値が“1”であると判定したときには、乱数回路103に第1初期値設定信号とは異なる第2初期値設定信号を送る。乱数回路103がCPU104から第1初期値設定信号を受けたときには、初期値設定回路172Aが所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいた値に設定する(ステップS104に相当する処理)。ここで、所定のレジスタに記憶されたIDナンバーは、12ビット乱数の最大値以下となる桁の数値のみが抽出されて乱数生成回路173Aに設定されてもよい。あるいは、所定のレジスタに記憶されたIDナンバーが初期値設定回路172Aに内蔵された演算回路(例えば乗算回路)に入力されることにより、例えばIDナンバーの各桁における数値を用いた所定の演算が実行され、この演算により算出された値を示すデータが乱数生成回路173Aに設定されてもよい。また、CPU104は、初期値設定回路172Aの動作を直接制御してステップS103、S104に相当する処理を実行させてもよいし、例えば乱数回路103の内部または外部に初期値設定制御用として設けられて初期値設定回路172Aが参照可能な所定のレジスタにステップS101での読出値に対応した制御データをセットすることなどにより、初期値設定回路172Aの動作を間接的に制御するようにしてもよい。CPU104が初期値設定制御用のレジスタに制御データをセットした場合には、例えば乱数回路103にて12ビット乱数の生成を開始するときに初期値設定回路172Aが初期値設定用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値設定動作を行うことにより、ステップS101での読出値に応じた1周目のスタート値を生成して、乱数生成回路173Aに設定することができる。
ステップS103、S104の処理のいずれかを実行した後には、CPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第6及び第5ビット[ビット6−5]を読出し(ステップS105)、読出値に基づいて12ビット乱数用のセレクタとして乱数回路103に設けられたセレクタ174Aにおける選択動作の設定を行う(ステップS106)。例えば、ステップS105での読出値が「00」であるときには、セレクタ174Aの出力信号が常にオフ状態となるように設定する。これにより、12ビット乱数の更新順である順列を変更しない第3の方式が設定されることになる。また、ステップS105での読出値が「10」であるときには、セレクタ174AがARSC175Aからの出力信号を選択して出力するように設定する。このときには、セレクタ174Aが、ARSC175Aからの出力信号を乱数生成回路173Aから出力される乱数一巡信号RIJ1と同期して出力するようになればよい。これにより、12ビット乱数の2周目以降における順列をユーザプログラムにより変更可能とする第2の方式が設定されることになる。また、ステップS105での読出値が「11」であるときには、セレクタ174Aが乱数生成回路173Aから出力される乱数一巡信号RIJ1を選択して出力するように設定する。これにより、12ビット乱数の2周目以降における順列を自動的に変更する第1の方式が設定されることになる。なお、ステップS106の処理では、CPU104がセレクタ174Aの信号出力動作を直接制御してステップS105での読出値に対応した信号を出力させるように設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられてセレクタ174Aが参照可能な所定のレジスタにステップS105での読出値に対応した制御データをセットすることなどにより、セレクタ174Aの信号出力動作を間接的に制御するようにしてもよい。ステップS106にてレジスタに制御データをセットした場合には、例えば乱数生成回路173Aから乱数一巡信号RIJ1が出力されたときにセレクタ174Aがレジスタに記憶されている制御データを参照し、その制御データに従った信号出力動作を行うことにより、ステップS106での設定に応じた信号を乱数列変更回路176Aに出力して、12ビット乱数を生成するための順列を変更または保持させることができる。
ステップS106の処理に続いて、CPU104がROM105に記憶されている12ビット乱数最大値(KRMS)を読出し(ステップS107)、その読出値を乱数回路103が備える最大値比較回路177Aに設定する(ステップS108)。このときには、ステップS107での読出値が12ビット乱数用の最大値として設定可能な範囲内であるか否かを判定する(ステップS109)。例えば、12ビット乱数の最大値を「256」から「4095」までの範囲内で任意に設定できる場合には、ステップS107での読出値が「256」から「4095」までの範囲内であるか否かを判定する。
ステップS109にて読出値が設定可能な範囲内ではない旨の判定がなされたときには(ステップS109;No)、12ビット乱数用の最大値として設定可能な範囲内の所定値を最大値として再設定し、乱数回路103が備える最大値比較回路177Aにセットする(ステップS110)。例えば、ステップS107での読出値が「256」から「4095」までの範囲内ではないときには、その範囲内の値である「4095」を、最大値として再設定すればよい。なお、ステップS108、S110の処理では、CPU104が最大値比較回路177Aの動作を直接制御して12ビット乱数用の最大値を設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられて最大値比較回路177Aが参照可能な所定のレジスタに12ビット乱数用の最大値を示す制御データをセットすることなどにより、最大値比較回路177Aの動作を間接的に制御するようにしてもよい。ステップS108、S110にてレジスタに制御データをセットした場合には、例えば乱数列変更回路176Aから出力される数値データ列R1の値が更新されるごとに最大値比較回路177Aがレジスタに記憶された制御データを参照し、その制御データにより示された12ビット乱数用の最大値と乱数列変更回路176Aから出力される数値データとを比較することにより、最大値以下となる数値データだけを乱数値レジスタ181Aに格納される12ビットの乱数値として出力することができる。また、ステップS109にて読出値が設定可能な範囲内である旨の判定がなされたときには(ステップS109;Yes)、ステップS110の処理をスキップする。
この後、CPU104がROM105に記憶されている第1乱数初期設定データ(KRSS1)の第1及び第0ビット[ビット1−0]を読み出す(ステップS111)。そして、ステップS111での読出値に基づき、12ビット乱数における2周目以降のスタート値に関する初期設定を行う(ステップS112)。具体的な一例として、ステップS112の処理では、CPU104がROM105から読出した第1乱数初期設定データ(KRSS1)の第1及び第0ビット[ビット1−0]を示す読出データを、乱数回路103もしくはCPU104に内蔵された所定のレジスタや、RAM106の所定領域に格納して記憶させることなどにより、CPU104が遊技制御用のタイマ割込み処理を実行中に12ビット乱数における2周目以降のスタート値に関する設定を参照できるような初期設定が行われればよい。
図30は、ステップS22にて実行される処理に含まれる16ビット乱数初期設定処理の一例を示すフローチャートである。図30に示す16ビット乱数初期設定処理において、遊技制御用マイクロコンピュータ100では、まず、CPU104がROM105に記憶されている第1乱数初期設定データ(KRSS1)の第2ビット[ビット2]を読出し(ステップS121)、読出値に基づいて乱数回路103に設けられたクロック信号出力回路171における動作設定を行う(ステップS122)。例えば、ステップS121での読出値が“0”であるときには、クロック信号出力回路171が出力するクロック信号S1を、クロック信号出力回路171のクロック入力端子に入力される内部システムクロックCLKと同一周期のクロック信号となるように設定する。また、ステップS121での読出値が“1”であるときには、クロック信号出力回路171が出力するクロック信号S1を、クロック信号出力回路171のクロック入力端子に入力される内部システムクロックCLKの16倍の周期を有するクロック信号となるように設定する。なお、ステップS122の処理では、CPU104がクロック信号出力回路171の動作を直接制御してステップS121での読出値に対応したクロック信号を出力させるように設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられてクロック信号出力回路171が参照可能な所定のレジスタにステップS121での読出値に対応した制御データをセットすることなどにより、クロック信号出力回路171の動作を間接的に制御するようにしてもよい。ステップS122にてレジスタに制御データをセットした場合には、例えば乱数回路103にて16ビット乱数の生成を開始するときにクロック信号出力回路171ががレジスタに記憶されている制御データを参照し、その制御データに従ったクロック信号の出力動作を行うことにより、ステップS121での設定に応じたクロック信号を出力することができる。
ステップS122の処理に続いて、CPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第4ビット[ビット4]を読出し(ステップS123)、読出値が“0”であるか否かを判定する(ステップS124)。このとき、ステップS123での読出値が“0”であれば(ステップS124;Yes)、乱数回路103において16ビット乱数を生成するための1周目のスタート値を、デフォルト値である「0001h」に設定する旨の決定を行う(ステップS125)。他方、ステップS123での読出値が“1”であれば(ステップS124;No)、乱数回路103において16ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する(ステップS126)。ここで、ステップS126の処理では、例えばCPU104がROM105から読み出した遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま16ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、16ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。例えば、CPU104がROM105から読み出した遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
ステップS125またはステップS126にて決定されたスタート値は、乱数回路103が備える初期値設定回路172Bに入力されることで、16ビット乱数を生成するための1周目のスタート値として設定される。なお、ステップS125やステップS126の処理は、乱数回路103が備える初期値設定回路172Bが実行するようにしてもよい。例えば、CPU104がステップS124にて読出値が“0”であると判定したときには、乱数回路103に所定の第3初期値設定信号を送る。乱数回路103がCPU104から第3初期値設定信号を受けたときには、初期値設定回路172Bが所定のレジスタの記憶データを読出し、その読出値を乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための1周目のスタート値を、デフォルト値である「0001h」に設定する(ステップS125に相当する処理)。他方、CPU104がステップS124にて読出値が“1”であると判定したときには、乱数回路103に第3初期値設定信号とは異なる第4初期値設定信号を送る。乱数回路103がCPU104から第4初期値設定信号を受けたときには、初期値設定回路172Bが所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいた値に設定する(ステップS126に相当する処理)。ここで、所定のレジスタに記憶されたIDナンバーは、16ビット乱数の最大値以下となる桁の数値のみが抽出されて乱数生成回路173Bに設定されてもよい。あるいは、所定のレジスタに記憶されたIDナンバーが初期値設定回路172Bに内蔵された演算回路(例えば乗算回路)に入力されることにより、例えばIDナンバーの各桁における数値を用いた所定の演算が実行され、この演算により算出された値を示すデータが乱数生成回路173Bに設定されてもよい。また、CPU104は、初期値設定回路172Bの動作を直接制御してステップS125、S126に相当する処理を実行させてもよいし、例えば乱数回路103の内部または外部に初期値設定制御用として設けられて初期値設定回路172Bが参照可能な所定のレジスタにステップS123での読出値に対応した制御データをセットすることなどにより、初期値設定回路172Bの動作を間接的に制御するようにしてもよい。CPU104が初期値設定制御用のレジスタに制御データをセットした場合には、例えば乱数回路103にて16ビット乱数の生成を開始するときに初期値設定回路172Bが初期値設定用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値設定動作を行うことにより、ステップS123での読出値に応じた1周目のスタート値を生成して、乱数生成回路173Bに設定することができる。
ステップS125、S126の処理のいずれかを実行した後には、CPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第1及び第0ビット[ビット1−0]を読出し(ステップS127)、読出値に基づいて16ビット乱数用のセレクタとして乱数回路103に設けられたセレクタ174Bにおける選択動作の設定を行う(ステップS128)。例えば、ステップS127での読出値が「00」であるときには、セレクタ174Bの出力信号が常にオフ状態となるように設定する。これにより、16ビット乱数の更新順である順列を変更しない第3の方式が設定されることになる。また、ステップS127での読出値が「10」であるときには、セレクタ174BがBRSC175Bからの出力信号を選択して出力するように設定する。このときには、セレクタ174Bが、BRSC175Bからの出力信号を乱数生成回路173Bから出力される乱数一巡信号RIJ2と同期して出力するようになればよい。これにより、16ビット乱数の2周目以降における順列をユーザプログラムにより変更可能とする第2の方式が設定されることになる。また、ステップS127での読出値が「11」であるときには、セレクタ174Bが乱数生成回路173Bから出力される乱数一巡信号RIJ2を選択して出力するように設定する。これにより、16ビット乱数の2周目以降における順列を自動的に変更する第1の方式が設定されることになる。なお、ステップS128の処理では、CPU104がセレクタ174Bの信号出力動作を直接制御してステップS127での読出値に対応した信号を出力させるように設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられてセレクタ174Bが参照可能な所定のレジスタにステップS127での読出値に対応した制御データをセットすることなどにより、セレクタ174Bの信号出力動作を間接的に制御するようにしてもよい。ステップS127にてレジスタに制御データをセットした場合には、例えば乱数生成回路173Bから乱数一巡信号RIJ2が出力されたときにセレクタ174Bがレジスタに記憶されている制御データを参照し、その制御データに従った信号出力動作を行うことにより、ステップS128での設定に応じた信号を乱数列変更回路176Bに出力して、16ビット乱数を生成するための順列を変更または保持させることができる。
ステップS128の処理に続いて、CPU104がROM105に記憶されている16ビット乱数最大値(KRXS)を読出し(ステップS129)、その読出値を乱数回路103が備える最大値比較回路177Bに設定する(ステップS130)。このときには、ステップS129での読出値が16ビット乱数用の最大値として設定可能な範囲内であるか否かを判定する(ステップS131)。例えば、16ビット乱数の最大値を「512」から「65535」までの範囲内で任意に設定できる場合には、ステップS129での読出値が「512」から「65535」までの範囲内であるか否かを判定する。
ステップS131にて読出値が設定可能な範囲内ではない旨の判定がなされたときには(ステップS131;No)、16ビット乱数用の最大値として設定可能な範囲内の所定値を最大値として再設定し、乱数回路103が備える最大値比較回路177Bにセットする(ステップS132)。例えば、ステップS129での読出値が「512」から「65535」までの範囲内ではないときには、その範囲内の値である「65535」を、最大値として再設定すればよい。なお、ステップS130、S132の処理では、CPU104が最大値比較回路177Bの動作を直接制御して16ビット乱数用の最大値を設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられて最大値比較回路177Bが参照可能な所定のレジスタに16ビット乱数用の最大値を示す制御データをセットすることなどにより、最大値比較回路177Bの動作を間接的に制御するようにしてもよい。ステップS130、S132にてレジスタに制御データをセットした場合には、例えば乱数列変更回路176Bから出力される数値データ列R2の値が更新されるごとに最大値比較回路177Bがレジスタに記憶された制御データを参照し、その制御データにより示された16ビット乱数用の最大値と乱数列変更回路176Bから出力される数値データとを比較することにより、最大値以下となる数値データだけを乱数値レジスタ181Bに格納される16ビットの乱数値として出力することができる。また、ステップS131にて読出値が設定可能な範囲内である旨の判定がなされたときには(ステップS131;Yes)、ステップS132の処理をスキップする。
この後、CPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第3及び第2ビット[ビット3−2]を読み出す(ステップS133)。そして、ステップS133での読出値に基づき、16ビット乱数における2周目以降のスタート値に関する初期設定を行う(ステップS134)。具体的な一例として、ステップS134の処理では、CPU104がROM105から読出した第2乱数初期設定データ(KRSS2)の第3及び第2ビット[ビット3−2]を示す読出データを、乱数回路103もしくはCPU104に内蔵された所定のレジスタや、RAM106の所定領域に格納して記憶させることなどにより、CPU104が遊技制御用のタイマ割込み処理を実行中に16ビット乱数における2周目以降のスタート値に関する設定を参照できるような初期設定が行われればよい。
図27に示すステップS25の処理を実行することにより割込許可状態となった後、例えばタイマ回路107やシリアル通信回路108などにて同時に複数の割込み要因が生じたときには、ステップS24にて実行される割込み初期設定処理などでの設定に基づき、リセット/割込みコントローラ102によって優先順位の高い割込み要因が受け付けられる。リセット/割込みコントローラ102が割込み要因を受け付けたときには、例えばCPU104が備えるIクラス割込み(IRQ)端子などに対して、オン状態の割込み要求信号を出力する。CPU104にてIRQ端子にオン状態の割込み要求信号が入力されたときには、例えば内部レジスタの格納データを確認した結果などに基づき、ステップS24にて実行した割込み初期設定処理での設定に基づく読出順位に応じた順番で、例えばタイマ回路107が備えるタイマ制御レジスタやシリアル通信回路108が備えるシリアルステータスレジスタ204といった、所定レジスタにおける格納データのビット値を読み出せばよい。こうして読み出したレジスタの格納データから、発生した割込み要因を特定し、特定された割込み要因に対応するベクタアドレスを先頭アドレスとするプログラムを実行することにより、各割込み要因に基づく割込み処理を開始することができる。
具体的な一例として、最優先割込み設定(KHPR)が「05h」であるときには、まず、シリアルステータスレジスタ204が備える第1レジスタSIST1の第3〜第0ビット[ビット3−0]を読出し、何れかのビット値が「1」となっているか否かを判定する。このとき、何れかのビット値が「1」となっていれば、シリアル通信回路108にて発生したエラー割込み要因に対応する割込み処理を実行するものと判断して、例えばROM105の所定領域に格納されている割込みベクタを取得し、そのベクタアドレスを先頭アドレスとするプログラムを実行する。また、第1レジスタSIST1の第3〜第0ビット[ビット3−0]におけるビット値がいずれも「0」であるときには、遊技制御用マイクロコンピュータ100に設けられたIRQ端子にオン状態の割込み要求信号が一定期間入力されたことによる外部割込み要因が発生したか否かを判定する。このとき、外部割込み要因が発生していれば、その外部割込み要因に対応する割込み処理を実行する一方、外部割込み要因が発生していなければ、タイマ回路107が備えるタイマ制御レジスタにおける格納データを読出し、その読出値に基づいてタイマ回路107にてタイマ割込み要因が発生したか否かを判定する。このとき、タイマ回路107にてタイマ割込み要因が発生していれば、そのタイマ割込み要因に対応するタイマ割込み処理を実行する一方、タイマ割込み要因が発生していなければ、シリアルステータスレジスタ204が備える第1レジスタSIST1の第5及び第4ビット[ビット5−4]を読出し、何れかのビット値が「1」となっているか否かを判定する。このとき、何れかのビット値が「1」となっていれば、シリアル通信回路108にて発生した受信割込み要因に対応する受信割込み処理を実行する一方、いずれのビット値も「0」であれば、シリアルステータスレジスタ204が備える第1レジスタSIST1の第7及び第6ビット[ビット7−6]を読出し、何れかのビット値が「1」となっているか否かを判定する。このとき、何れかのビット値が「1」となっていれば、シリアル通信回路108にて発生した送信割込み要因に対応する送信割込み処理を実行する。
このように、図27に示すステップS24にて実行した割込み初期設定処理での設定に基づく優先順位に応じた順番で割込み要因が発生したか否かを確認することで、複数の割込み要因が同時に発生したときには、例えば図20(B)に示すようなデフォルト時の優先順位、あるいはROM105に記憶されている最優先割込み設定(KHPR)により変更された優先順位において、優先順位の高い割込み要因に基づく割込み処理が、優先順位の低い割込み要因に基づく割込み処理よりも優先的に実行される。
例えば、ROM105に記憶されている最優先割込み設定(KHPR)が「06h」であるときには、ステップS24にて実行される割込み初期設定処理などでの設定により、図20(B)に示すようなデフォルト時の優先順位が、図20(A)に示すようにシリアル通信回路108からの受信割込み要求を最優先とする優先順位に変更される。この場合には、シリアル通信回路108からのエラー割込み要求に基づく割込み処理よりもシリアル通信回路108からの受信割込み要求に基づく割込み処理の方が優先的に実行されることになる。また、図20(B)に示すように、デフォルト時では、タイマ回路107からの割込み要求に基づく割込み処理の方がシリアル通信回路108からの割込み要求に基づく割込み処理よりも優先的に実行される設定となっている。これに対して、ROM105に記憶されている最優先割込み設定(KHPR)が「05h」、「06h」、「07h」のいずれかであるときには、それぞれ、シリアル通信回路108からのエラー割込み要求に基づく割込み処理、受信割込み要求に基づく割込み処理、送信割込み要求に基づく割込み処理の方が、タイマ回路107からの割込み要求に基づく割込み処理よりも優先的に実行されることになる。
例えば、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路108にてエラー割込みが発生したときには、シリアル通信エラー割込み処理として予め定められた処理が実行される。ここで、シリアル通信回路108では、シリアル制御レジスタでの設定に基づき、オーバーランエラーの発生や、ノイズエラーの発生、フレーミングエラーの発生、あるいはパリティエラーの発生といった、所定のエラー割込み要因が発生したときに、エラー割込みを発生させることができる。なお、オーバーランエラーは、シリアル通信回路108における受信データがユーザプログラムによって読出される以前に、シリアル通信回路108の受信動作部に設けられた受信用シフトレジスタが次のデータを受信したときに発生するエラーである。また、ノイズエラーは、シリアル通信回路108にて受信したデータのノイズを検出したときに発生するエラーである。フレーミングエラーは、シリアル通信回路108にて受信したデータのストップビットに“0”を検出したときに発生するエラーである。パリティエラーは、シリアル通信回路108にて受信したデータのパリティと受信データ内におけるパリティビットとが一致しないときに発生するエラーである。例えば、シリアル通信回路108にてエラー割込み要因が発生したときに、シリアル通信回路108からリセット/割込みコントローラ102に割込み要求が送信され、前述したようにリセット/割込みコントローラ102が割込み要因を受け付けた場合には、CPU104が備えるIRQ端子にオン状態の割込み要求信号が入力されることで、CPU104に割込みの発生が通知される。
シリアル通信エラー割込み処理を開始したときに、遊技制御用マイクロコンピュータ100では、例えばCPU104がシリアル通信回路108に設けられた送信動作部と受信動作部を未使用状態に設定して、シリアル通信回路108による送受信動作を行わないものと設定すればよい。また、シリアル通信エラー割込み処理を実行したときには、例えばCPU104が遊技制御フラグ設定部133に設けられたシリアル通信エラーフラグをオン状態にセットすればよい。
加えて、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路108にて受信割込みが発生したときには、シリアル受信割込み処理として予め定められた処理が実行される。このシリアル受信割込み処理が実行されることにより、シリアル通信回路108にて払出制御基板15から受信したコマンドが遊技制御バッファ設定部136に設けられた払出用受信コマンドバッファ191に格納される。さらに、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路108にて送信割込みが発生したときには、シリアル送信割込み処理として予め定められた処理が実行される。このシリアル送信割込み処理では、シリアル通信回路108にて発生した送信割込みの種類を特定して、特定された割込みの種類に応じたフラグをセットまたはクリアするなどといった、送信割込みの種類に対応する各種の処理が実行されればよい。
図31は、遊技制御用マイクロコンピュータ100にてタイマ割込みが発生するごとに実行される遊技制御用タイマ割込み処理の一例を示すフローチャートである。図31に示す遊技制御用タイマ割込み処理において、遊技制御用マイクロコンピュータ100は、まず、内部レジスタを退避した後(ステップS71)、所定のスイッチ処理を実行することにより、スイッチ回路111を介して各スイッチから入力される検出信号の状態を判定する(ステップS72)。次に、スイッチ回路111を介して満タンスイッチ26から入力される検出信号や、タッチセンサ75から入力されるタッチセンサ検出信号に基づき、発射装置19や球送り装置62を駆動あるいは停止させて遊技球の発射制御を行うための発射制御処理を実行する(ステップS73)。その後、所定の情報出力処理を実行することにより、例えばパチンコ遊技機1の外部に設置されたホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する(ステップS74)。また、ステップS74の情報出力処理では、発射装置19に発射許可信号を送信したり、球送り装置62に供給許可信号を送信したりするための設定が行われる。
ステップS74の情報出力処理に続いて、遊技制御用マイクロコンピュータ100では、例えばCPU104がROM105から読み出したユーザプログラムにより乱数の2周目以降におけるスタート値を変更するための乱数スタート値変更設定処理を実行する(ステップS75)。また、例えばCPU104がROM105から読み出したユーザプログラムにより乱数の2周目以降における順列を変更するための乱数順列変更設定処理を実行する(ステップS76)。
ステップS76にて乱数順列変更設定処理を実行した後、遊技制御用マイクロコンピュータ100は、ステップS72におけるスイッチ処理の実行結果に基づき、入賞検出信号の入力に応じて賞球個数の設定などを行う賞球処理を実行する(ステップS77)。また、遊技制御用マイクロコンピュータ100は、賞球過多や賞球不足、その他の動作エラーが発生した場合に対応して、異常動作の発生を報知するための設定などを行う異常動作報知設定処理を実行する(ステップS78)。続いて、シリアル通信により払出制御基板15から送信されたコマンドを受信するためのメイン側受信処理を実行する(ステップS79)。
この後、遊技制御用マイクロコンピュータ100は、特別図柄プロセス処理を実行する(ステップS80)。特別図柄プロセス処理では、遊技制御フラグ設定部133に設けられた特別図柄プロセスフラグの値をパチンコ遊技機1における遊技の進行状況に応じて更新し、特別図柄表示装置4における表示動作の制御や特別可変入賞球装置7における大入賞口開閉動作の設定などを所定の手順で行うために、各種の処理が選択されて実行される。特別図柄プロセス処理に続いて、普通図柄プロセス処理が実行される(ステップS81)。遊技制御用マイクロコンピュータ100は、普通図柄プロセス処理を実行することにより、普通図柄表示器40における表示動作(例えばLEDの点灯、消灯など)を制御して、普通図柄の可変表示(例えば、点灯・点滅表示など)や普通可変入賞球装置6における可動翼片の傾動制御の設定などを可能にする。
さらに、遊技制御用マイクロコンピュータ100は、払出用コマンド制御処理を実行することにより、主基板11から払出制御基板15に対して払出制御コマンドを送信させる(ステップS82)。また、遊技制御用マイクロコンピュータ100は、演出用コマンド制御処理を実行することにより、主基板11から演出制御基板12に対して演出制御コマンドを送信させる(ステップS83)。この後、遊技制御用マイクロコンピュータ100は、メイン側エラー解除処理を実行して、エラー解除スイッチ31からの検出信号がオン状態となったときに所定のエラーの解除を可能にする(ステップS84)。そして、ステップS71にて退避したレジスタの内容を復帰させてから(ステップS85)、遊技制御用タイマ割込み処理を終了する。
ステップS83のメイン側エラー解除処理では、例えばCPU104がステップS72におけるスイッチ処理の実行結果などに基づきエラー解除スイッチ31からの検出信号がオン状態となっているか否かを判定する。このとき、エラー解除スイッチ31からの検出信号がオン状態となっていれば、例えば払出用通信エラー検出フラグがオンとなっているか否かを判定する。そして、払出用通信エラー検出フラグがオンであれば、払出用通信エラー検出フラグをクリアしてオフ状態とする。また、エラー解除スイッチ31からの検出信号がオン状態となっているときには、シリアル通信エラーフラグがオンとなっているか否かを判定する。そして、シリアル通信エラーフラグがオンであるときには、例えば図27に示すステップS23と同様のシリアル通信初期設定処理を実行することにより、シリアル通信回路108の初期設定を行ってから、シリアル通信エラーフラグをクリアしてオフ状態とする。さらに、ステップS83のメイン側エラー解除処理では、払出エラー解除フラグがオンとなっているか否かを判定し、オンであるときには、払出制御基板15からエラーが解除された旨を示す払出エラー解除コマンドを受信したと判断して、払出エラー通知フラグをクリアしてオフ状態とするようにしてもよい。
図32は、図31に示すステップS73にて実行される発射制御処理の一例を示すフローチャートである。この発射制御処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104がスイッチ回路111を介してタッチセンサ75から入力されたタッチセンサ検出信号がオン状態となっているか否かを判定する(ステップS201)。このとき、タッチセンサ検出信号がオン状態であれば(ステップS201;Yes)、スイッチ回路111を介して満タンスイッチ26から入力された検出信号がオン状態となっているか否かを判定する(ステップS202)。
ステップS202にて満タンスイッチ26からの検出信号がオフ状態であるときには(ステップS202;No)、例えば遊技制御タイマ設定部134に設けられた発射制御タイマがタイムアウトしているか否かを判定する(ステップS203)。なお、発射制御タイマには、後述するステップS208にて、発射制御用初期値となるタイマ初期値が設定される。そして、ステップS203にて発射制御タイマがタイムアウトしていないときには(ステップS203;No)、発射制御タイマのタイマ値を、例えば1減算するなどして更新する(ステップS204)。その後、例えばステップS204での更新により発射制御タイマがタイムアウトしたか否かを判定することなどにより、発射制御時間が経過したか否かを判定する(ステップS205)。
ステップS205にて発射制御時間が経過していなければ(ステップS205;No)、発射制御処理を終了する。これに対して、ステップS205にて発射制御時間が経過しているときには(ステップS205;Yes)、遊技制御タイマ設定部134が備える供給許可制御タイマに、供給出力用初期値として予め定められたタイマ初期値を設定する(ステップS206)。ここで、供給出力用初期値は、発射制御時間が経過するごとに定期的に出力される供給許可信号の出力時間(例えば12ミリ秒)に対応して予め定められたタイマ初期値であればよい。ステップS206の処理に続いて、遊技制御タイマ設定部134が備える発射許可制御タイマに、発射出力用初期値として予め定められたタイマ初期値を設定する(ステップS207)。ここで、発射出力用初期値は、発射制御時間が経過するごとに定期的に出力される発射許可信号の出力時間(例えば74ミリ秒)に対応して予め定められたタイマ初期値であればよい。
ステップS201にてタッチセンサ75から入力されたタッチセンサ検出信号がオフ状態であるとき(ステップS201;No)、ステップS202にて満タンスイッチ26からの検出信号がオン状態であるとき(ステップS202;Yes)、ステップS203にて発射制御タイマがタイムアウトしたとき(ステップS203;Yes)、あるいはステップS207の処理を実行した後には、発射制御タイマに発射制御用初期値として予め定められたタイマ初期値を設定する(ステップS208)。なお、発射制御用初期値は、主基板11から発射装置19への発射許可信号や、主基板11から球送り装置62への供給許可信号を、定期的に送信するための制御時間(例えば602ミリ秒)に対応して予め定められたタイマ初期値であればよい。
このように、ステップS201にてタッチセンサ75から入力されたタッチセンサ検出信号がオフ状態であるときや、ステップS202にて満タンスイッチ26からの検出信号がオン状態であるときには、ステップS206の処理やステップS207の処理が実行されずに、ステップS208の処理に進むことになる。そのため、タッチセンサ75からのタッチセンサ検出信号がオン状態であり、かつ、満タンスイッチ26からの検出信号がオフ状態であれば、主基板11から発射装置19への発射許可信号や主基板11から球送り装置62への供給許可信号の出力が可能になる一方で、タッチセンサ75からのタッチセンサ検出信号がオフ状態であるとき、または、満タンスイッチ26からの検出信号がオン状態であるときには、主基板11から発射装置19への発射許可信号や主基板11から球送り装置62への供給許可信号が出力されないことになる。
図33は、図31に示すステップS74にて実行される情報出力処理の一例を示すフローチャートである。この情報出力処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、発射許可制御タイマがタイムアウトしているか否かを、例えばCPU104が判定する(ステップS221)。このとき、発射許可制御タイマがタイムアウトしていなければ(ステップS221;No)、発射許可制御タイマのタイマ値を、例えば1減算するなどして更新する(ステップS222)。ステップS222の処理に続いて、発射許可信号を発射装置19に対して出力するための設定を行う(ステップS223)。具体的な一例として、ステップS223では、発射許可信号をオン状態とするための制御データを、遊技制御用マイクロコンピュータ100が備える出力ポートにて発射許可信号の出力用に設けられた所定ビットにセットすればよい。
ステップS221にて発射許可制御タイマがタイムアウトしているときや(ステップS221;Yes)、ステップS223の処理を実行した後には、供給許可制御タイマがタイムアウトしているか否かを判定する(ステップS224)。このとき、供給許可制御タイマがタイムアウトしていなければ(ステップS224;No)、供給許可制御タイマのタイマ値を、例えば1減算するなどして更新する(ステップS225)。ステップS225の処理に続いて、供給許可信号を球送り装置62に対して出力するための設定を行う(ステップS226)。具体的な一例として、ステップS226では、供給許可信号をオン状態とするための制御データを、遊技制御用マイクロコンピュータ100が備える出力ポートにて供給許可信号の出力用に設けられた所定ビットにセットすればよい。ステップS224にて供給許可制御タイマがタイムアウトしているときや(ステップS224;Yes)、ステップS226の処理を実行した後には、パチンコ遊技機1における各種情報を出力するための設定を行えばよい(ステップS227)。
図34及び図35は、図31に示すステップS73にて実行される乱数スタート値変更設定処理の一例を示すフローチャートである。この乱数スタート値変更設定処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が遊技制御フラグ設定部133に設けられた12ビット乱数用スタート値変更フラグがオンとなっているか否かを判定する(図34のステップS241)。このとき、12ビット乱数用スタート値変更フラグがオンであれば(ステップS241;Yes)、CPU104が12ビット乱数における2周目以降のスタート値に関する設定を読出し(ステップS242)、読出値が「01」であるか否かを判定する(ステップS243)。ステップS242における処理の具体的な一例としては、乱数回路103もしくはCPU104に内蔵された所定のレジスタや、RAM106の所定領域に格納された12ビット乱数における2周目以降のスタート値に関する設定データを、CPU104が読み出す処理などであればよい。
ステップS203にて読出値が「01」であると判定されたときには(ステップS243;Yes)、乱数回路103において12ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する(ステップS244)。ここで、ステップS244の処理では、遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま12ビット乱数を生成するためのスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、12ビット乱数を生成するためのスタート値に設定するようにしてもよい。例えば、遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
また、ステップS243にて読出値が「01」ではないと判定されたときには(ステップS243;No)、その読出値は「10」であるか否かを判定する(ステップS245)。そして、読出値が「10」であると判定されたときには(ステップS245;Yes)、乱数回路103において12ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、RAM106の格納データに基づく値に決定するための処理を実行する。すなわち、CPU104は、RAM106の各番地における格納値を読出し(ステップS246)、読出した格納値を順次に加算する(ステップS247)。そして、12ビット乱数を生成するためのスタート値を、ステップS247における加算処理によって算出された加算値に変更する(ステップS248)。なお、ステップS248の処理では、ステップS247における加算処理によって算出された加算値が最大値を超えているか否かを判定し、超えていない場合には加算値をそのままスタート値に設定する一方、超えている場合には最大値以下となる所定値(例えば「1」など)をスタート値として再設定すればよい。
ステップS245にて読出値が「10」ではないと判定されたときには(ステップS245;No)、その読出値は「11」であるか否かを判定する(ステップS249)。そして、読出値が「11」であると判定されたときには(ステップS249;Yes)、RAM106における指定番地(指定RAM番地)の格納値を読出し(ステップS250)、12ビット乱数を生成するためのスタート値を、ステップS250での読出値に変更する(ステップS251)。
なお、ステップS244、S246〜S248、S250及びS251の各処理は、乱数回路103が備える初期値設定回路172Aによって実行されるようにしてもよい。例えば、CPU104がステップS243にて読出値が「01」であると判定したときには、乱数回路103に所定の第1初期値変更信号を送る。乱数回路103がCPU104から第1初期値変更信号を受けたときには、初期値設定回路172Aが所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための2周目以降のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいた値に設定する(ステップS244に相当する処理)。他方、CPU104がステップS203にて読出値が「01」ではないと判定した後、ステップS205にて読出値が「10」であると判定したときには、乱数回路103に所定の第2初期値変更信号を送る。乱数回路103がCPU104から第2初期値変更信号を受けたときには、初期値設定回路172AがRAM106の各番地における格納値を読出し、読出した格納値を順次に加算することにより得られた加算値を乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための2周目以降のスタート値を、RAM106の格納データに基づく値に設定する(ステップS246〜S248に相当する処理)。また、CPU104がステップS245にて読出値が「10」ではないと判定した後、ステップS249にて読出値が「11」であると判定したときには、乱数回路103に所定の第3初期値変更信号を送る。乱数回路103がCPU104から第3初期値変更信号を受けたときには、初期値設定回路172AがRAM106における指定番地の格納値を読出し、読出した格納値を乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための2周目以降のスタート値を、読出した格納値に変更するように設定する(ステップS250、S251に相当する処理)。さらに、CPU104は、初期値設定回路172Aの動作を直接制御してステップS244、S246〜S248、S250及びS251に相当する処理を実行させてもよいし、例えば乱数回路103の内部または外部に初期値変更制御用として設けられて初期値設定回路172Aが参照可能な所定のレジスタにステップS202での読出値に対応した制御データをセットすること(このデータセット処理は、図29に示すステップS111にてROM105から第1乱数初期設定データ(KRSS1)の第1及び第0ビット[ビット1−0]を読出した後、ステップS112の処理として実行されてもよい。)などにより、初期値設定回路172Aの動作を間接的に制御するようにしてもよい。CPU104が初期値変更制御用のレジスタに制御データをセットした場合には、例えば乱数回路103にて乱数生成回路173Aが乱数一巡信号RIJ1を出力したときに初期値設定回路172Aが初期値変更制御用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値変更動作を行うことにより、ステップS242での読出値に応じた2周目以降のスタート値を生成して、乱数生成回路173Aに設定することができる。
ステップS244、S248、S251の処理のいずれかを実行した後や、ステップS249にて読出値が「11」ではないと判定されたときには(ステップS249;No)、12ビット乱数用スタート値変更フラグをクリアしてオフ状態とする(ステップS252)。ステップS252の処理を実行した後や、ステップS241にて12ビット乱数用スタート値変更フラグがオフであると判定されたときには(ステップS241;No)、遊技制御フラグ設定部133に設けられた16ビット乱数用スタート値変更フラグがオンとなっているか否かを判定する(図35のステップS253)。このとき、16ビット乱数用スタート値変更フラグがオフであれば(ステップS253;No)、乱数スタート値変更設定処理を終了する。他方、16ビット乱数用スタート値変更フラグがオンであれば(ステップS253;Yes)、16ビット乱数における2周目以降のスタート値に関する設定を読出し(ステップS254)、読出値が「01」であるか否かを判定する(ステップS255)。ステップS254における処理の具体的な一例としては、乱数回路103もしくはCPU104に内蔵された所定のレジスタや、RAM106の所定領域に格納された16ビット乱数における2周目以降のスタート値に関する設定データを、CPU104が読み出す処理などであればよい。
ステップS255にて読出値が「01」であると判定されたときには(ステップS255;Yes)、乱数回路103において16ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する(ステップS256)。ここで、ステップS256の処理では、遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま16ビット乱数を生成するためのスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、16ビット乱数を生成するためのスタート値に設定するようにしてもよい。例えば、遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
また、ステップS255にて読出値が「01」ではないと判定されたときには(ステップS255;No)、その読出値は「10」であるか否かを判定する(ステップS257)。そして、読出値が「10」であると判定されたときには(ステップS257;Yes)、乱数回路103において16ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、RAM106の格納データに基づく値に決定するための処理を実行する。すなわち、CPU104は、RAM106の各番地における格納値を読出し(ステップS258)、読出した格納値を順次に加算する(ステップS259)。そして、16ビット乱数を生成するためのスタート値を、ステップS259における加算処理によって算出された加算値に変更する(ステップS260)。なお、ステップS260の処理では、ステップS259における加算処理によって算出された加算値が最大値を超えているか否かを判定し、超えていない場合には加算値をそのままスタート値に設定する一方、超えている場合には最大値以下となる所定値(例えば「1」など)をスタート値として再設定すればよい。
ステップS257にて読出値が「10」ではないと判定されたときには(ステップS257;No)、その読出値は「11」であるか否かを判定する(ステップS261)。そして、読出値が「11」であると判定されたときには(ステップS261;Yes)、RAM106における指定番地(指定RAM番地)の格納値を読出し(ステップS262)、16ビット乱数を生成するためのスタート値を、ステップS262での読出値に変更する(ステップS263)。ステップS256、S260、S263の処理のいずれかを実行した後や、ステップS261にて読出値が「11」ではないと判定されたときには(ステップS261;No)、16ビット乱数用スタート値変更フラグをクリアしてオフ状態とする(ステップS264)。
なお、ステップS256、S258〜S260、S262及びS263の各処理は、乱数回路103が備える初期値設定回路172Bによって実行されるようにしてもよい。例えば、CPU104がステップS255にて読出値が「01」であると判定したときには、乱数回路103に所定の第4初期値変更信号を送る。乱数回路103がCPU104から第4初期値変更信号を受けたときには、初期値設定回路172Bが所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための2周目以降のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいた値に設定する(ステップS256に相当する処理)。他方、CPU104がステップS255にて読出値が「01」ではないと判定した後、ステップS257にて読出値が「10」であると判定したときには、乱数回路103に所定の第5初期値変更信号を送る。乱数回路103がCPU104から第5初期値変更信号を受けたときには、初期値設定回路172BがRAM106の各番地における格納値を読出し、読出した格納値を順次に加算することにより得られた加算値を乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための2周目以降のスタート値を、RAM106の格納データに基づく値に設定する(ステップS258〜S260に相当する処理)。また、CPU104がステップS257にて読出値が「10」ではないと判定した後、ステップS261にて読出値が「11」であると判定したときには、乱数回路103に所定の第6初期値変更信号を送る。乱数回路103がCPU104から第6初期値変更信号を受けたときには、初期値設定回路172BがRAM106における指定番地の格納値を読出し、読出した格納値を乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための2周目以降のスタート値を、読出した格納値に変更するように設定する(ステップS262、S263に相当する処理)。さらに、CPU104は、初期値設定回路172Bの動作を直接制御してステップS256、S258〜S260、S262及びS263に相当する処理を実行させてもよいし、例えば乱数回路103の内部または外部に初期値変更制御用として設けられて初期値設定回路172Bが参照可能な所定のレジスタにステップS254での読出値に対応した制御データをセットすること(このデータセット処理は、図30に示すステップS133にてROM105から第2乱数初期設定データ(KRSS2)の第3及び第2ビット[ビット3−2]を読出した後、ステップS134の処理として実行されてもよい。)などにより、初期値設定回路172Bの動作を間接的に制御するようにしてもよい。CPU104が初期値変更制御用のレジスタに制御データをセットした場合には、例えば乱数回路103にて乱数生成回路173Bが乱数一巡信号RIJ2を出力したときに初期値設定回路172Bが初期値変更制御用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値変更動作を行うことにより、ステップS254での読出値に応じた2周目以降のスタート値を生成して、乱数生成回路173Bに設定することができる。
図36は、図31に示すステップS76にて実行される乱数順列変更設定処理の一例を示すフローチャートである。この乱数順列変更設定処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第6及び第5ビット[ビット6−5]を読出し(ステップS271)、読出値が「10」であるか否かを判定する(ステップS272)。
ステップS272にて読出値が「10」であると判定されたときには(ステップS272;Yes)、遊技制御フラグ設定部133に設けられた12ビット乱数順列変更フラグがオンとなっているか否かを判定する(ステップS273)。このとき、12ビット乱数順列変更フラグがオンであれば(ステップS273;Yes)、例えばCPU104が乱数回路103に設けられたARSC175Aの第0ビット[ビット0]に“1”を設定する(ステップS274)。このときには、12ビット乱数順列変更フラグをクリアしてオフ状態とする(ステップS275)。
ステップS272にて読出値が「10」ではないと判定されたときや(ステップS272;No)、ステップS273にて12ビット乱数順列変更フラグがオフであると判定されたとき(ステップS273;No)、あるいはステップS275の処理を実行した後には、例えばCPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第1及び第0ビット[ビット1−0]を読出し(ステップS276)、読出値が「10」であるか否かを判定する(ステップS277)。このとき、読出値が「10」以外であれば(ステップS277;No)、乱数順列変更設定処理を終了する。
他方、ステップS277にて読出値が「10」であると判定されたときには(ステップS277;Yes)、遊技制御フラグ設定部133に設けられた16ビット乱数順列変更フラグがオンとなっているか否かを判定する(ステップS278)。このとき、16ビット乱数順列変更フラグがオフであれば(ステップS278;No)、乱数順列変更設定処理を終了する。これに対して、16ビット乱数順列変更フラグがオンであれば(ステップS278;Yes)、例えばCPU104が乱数回路103に設けられたBRSC175Bの第0ビット[ビット0]に“1”を設定する(ステップS279)。このときには、16ビット乱数順列変更フラグをクリアしてオフ状態とする(ステップS280)。
図37(A)は、図31に示すステップS77にて実行される賞球処理の一例を示すフローチャートである。図37(A)に示す賞球処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図31に示すステップS72におけるスイッチ処理の実行結果に基づき、始動口スイッチ22、カウントスイッチ24、及び入賞口スイッチ25A〜25Dといった各入賞口スイッチからの入賞検出信号がオン状態となっているか否かをチェックする(ステップS291)。続いて、ステップS291でのチェック結果に基づき、遊技制御カウンタ設定部135に設けられた第1〜第3払出数指示カウンタや総賞球数カウンタにおけるカウント値の設定を行う(ステップS292)。
図37(B)は、ステップS292における処理内容の一例を示す説明図である。ステップS292の処理では、各入賞口スイッチからの入賞検出信号がオン状態となっているか否か(入力されているか否か)の判定が行われる。そして、カウントスイッチ24からの入賞検出信号がオン状態であるときには、遊技制御カウンタ設定部135に設けられた第1払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を15加算する。また、左右の袖入賞口スイッチとなる入賞口スイッチ25A、25Bのいずれかからの入賞検出信号がオン状態であるときには、遊技制御カウンタ設定部135に設けられた第2払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を7加算する。左右の落とし入賞口スイッチとなる入賞口スイッチ25C、25Dのいずれかからの入賞検出信号がオン状態であるときにも、遊技制御カウンタ設定部135に設けられた第2払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を7加算する。さらに、始動口スイッチ22からの入賞検出信号がオン状態であるときには、遊技制御カウンタ設定部135に設けられた第3払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を4加算する。このようなステップS292での処理を実行した後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御フラグ設定部133に設けられた賞球プロセスフラグの値に応じて、以下のようなステップS293〜S295の各処理を実行する。
ステップS293の賞球送信処理は、賞球プロセスフラグの値が“0”のときに実行される。図38は、賞球送信処理として、図37(A)に示すステップS293にて実行される処理の一例を示すフローチャートである。図38に示す賞球送信処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が遊技制御フラグ設定部133に設けられたシリアル通信エラーフラグがオンとなっているか否かを判定する(ステップS401)。このとき、シリアル通信エラーフラグがオンであれば(ステップS401;Yes)、そのまま賞球送信処理を終了する。
ステップS401にてシリアル通信エラーフラグがオフであると判定されたときには(ステップS401;No)、遊技制御フラグ設定部133に設けられた再送信フラグがオンとなっているか否かを判定する(ステップS402)。ここで、再送信フラグは、後述する図39に示すステップS436の処理が実行されたときにオン状態にセットされる一方、図39に示すステップS423の処理が実行されたときにはクリアされてオフ状態となる。ステップS402にて再送信フラグがオフであるときには(ステップS402;No)、遊技制御カウンタ設定部135に設けられた第1〜第3払出数指示カウンタの値をチェックするために用いられる変数Nの値を、初期値となる「1」に設定する(ステップS403)。
続いて、第1〜第3払出数指示カウンタのうちで変数Nの値に対応するいずれかにおける値が、「0」となっているか否かを判定する(ステップS404)。例えば、変数Nの値が「1」であるときには、第1払出数指示カウンタの値が「0」となっているか否かを判定し、変数Nの値が「2」であるときには、第2払出数指示カウンタの値が「0」となっているか否かを判定し、変数Nの値が「3」であるときには、第3払出数指示カウンタの値が「0」となっているか否かを判定する。ステップS404にて判定の対象となった払出数指示カウンタの値が「0」であるときには(ステップS404;Yes)、変数Nの値が「3」であるか否かを判定し(ステップS405)、「3」であるときには(ステップS405;Yes)、賞球送信処理を終了する。これに対して、ステップS405にて変数Nの値が「3」以外の値であるときには(ステップS405;No)、変数Nの値を1加算した後(ステップS406)、ステップS404の処理に戻る。
ステップS402にて再送信フラグがオンであるときや(ステップS402;Yes)、ステップS404にて判定の対象となった払出数指示カウンタの値が「0」以外の値であるときには(ステップS404;No)、変数Nの値が「1」であるか否かを判定する(ステップS407)。そして、変数Nの値が「1」であるときには(ステップS407;Yes)、払出制御基板15に対して第1払出数指定コマンドを送信するための設定を行う(ステップS408)。具体的な一例として、ステップS408の処理では、ROM105に格納されている第1払出数指定コマンド設定テーブルの先頭アドレスをポインタに設定し、第1払出数指定コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部136の送信コマンドバッファに含まれる払出用送信コマンドバッファ192にセットする。ステップS407にて変数Nの値が「1」以外の値であるときには(ステップS407;No)、その変数Nの値は「2」であるか否かを判定する(ステップS409)。
ステップS409にて変数Nの値が「2」である場合には(ステップS409;Yes)、払出制御基板15に対して第2払出数指定コマンドを送信するための設定を行う(ステップS410)。具体的な一例として、ステップS410の処理では、ROM105に格納されている第2払出数指定コマンド設定テーブルの先頭アドレスをポインタに設定し、第2払出数指定コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを払出用送信コマンドバッファ192にセットする。ステップS409にて変数Nの値が「2」ではない場合には(ステップS409;No)、変数Nの値が「3」であるものと判断して、払出制御基板15に対して第3払出数指定コマンドを送信するための設定を行う(ステップS411)。具体的な一例として、ステップS411の処理では、ROM105に格納されている第3払出数指定コマンド設定テーブルの先頭アドレスをポインタに設定し、第3払出数指定コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを払出用送信コマンドバッファ192にセットする。
ステップS408、S410、S411の処理のいずれかを実行した後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御タイマ設定部134に設けられた賞球制御タイマに賞球ACK用初期値として予め定められたタイマ初期値を設定する(ステップS412)。そして、賞球プロセスフラグの値を“1”に更新する(ステップS413)。
図37(A)に示すステップS294の賞球ACK待ち処理は、賞球プロセスフラグの値が“1”のときに実行される。図39は、賞球ACK待ち処理として、図37(A)に示すステップS294にて実行される処理の一例を示すフローチャートである。図39に示す賞球ACK待ち処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が遊技制御フラグ設定部133に設けられた賞球ACK受信フラグがオンとなっているか否かを判定する(ステップS421)。
ステップS421にて賞球ACK受信フラグがオンであると判定されたときには(ステップS421;Yes)、賞球ACK受信フラグをクリアしてオフ状態にするとともに(ステップS422)、再送信フラグをクリアしてオフ状態とする(ステップS423)。続いて、第1〜第3払出数指示カウンタのうちで変数Nの値に対応するいずれかにおける値を1減算するとともに(ステップS424)、遊技制御カウンタ設定部135に設けられたコマンド送信回数カウンタにおける値であるコマンド送信回数カウント値を1加算する(ステップS425)。
ステップS425の処理を実行した後には、変数Nの値が「1」であるか否かを判定する(ステップS426)。このとき、変数Nの値が「1」であれば(ステップS426;Yes)、第1払出数指定コマンドの送信により15個の賞球を払い出すための指示が完了したと判断して、総賞球数カウンタの値を15減算する(ステップS427)。ステップS426にて変数Nの値が「1」以外の値であるときには(ステップS426;No)、その変数Nの値は「2」であるか否かを判定する(ステップS428)。
ステップS428にて変数Nの値が「2」である場合には(ステップS428;Yes)、第2払出数指定コマンドの送信により7個の賞球を払い出すための指示が完了したと判断して、総賞球数カウンタの値を7減算する(ステップS429)。ステップS428にて変数Nの値が「2」ではない場合には(ステップS428;No)、変数Nの値が「3」であることに対応した第3払出数指定コマンドの送信により4個の賞球を払い出すための指示が完了したと判断して、総賞球数カウンタの値を4減算する(ステップS430)。
ステップS427、S429、S430の処理のいずれかを実行した後には、払出制御基板15に対してACKフィードバックコマンドを送信するための設定を行う(ステップS431)。具体的な一例として、ステップS431の処理では、ROM105に格納されているACKフィードバックコマンド設定テーブルの先頭アドレスをポインタに設定し、ACKフィードバックコマンド設定テーブルの内容に基づいてコマンド送信用の制御データを払出用送信コマンドバッファ192にセットする。ステップS431の処理に続いて、例えばCPU104が賞球制御タイマにフィードバック用初期値として予め定められたタイマ初期値を設定する(ステップS432)。そして、賞球プロセスフラグの値を“2”に更新する(ステップS433)。
また、ステップS421にて賞球ACK受信フラグがオフであると判定されたときには(ステップS421;No)、賞球制御タイマにおけるタイマ値を、例えば1減算するなどして更新する(ステップS434)。そして、ステップS434での更新により賞球制御タイマがタイムアウトしたか否かを判定することなどにより、賞球ACK待ち時間が経過したか否かを判定する(ステップS435)。このとき、賞球ACK待ち時間が経過していなければ(ステップS435;No)、賞球ACK待ち処理を終了する。これに対して、賞球ACK待ち時間が経過したときには(ステップS435;Yes)、再送信フラグをオン状態にセットするとともに(ステップS436)、賞球プロセスフラグの値を“0”に更新する(ステップS437)。
図37(A)に示すステップS295の賞球送信完了処理は、賞球プロセスフラグの値が“2”のときに実行される。図40は、賞球送信完了処理として、図37(A)に示すステップS295にて実行される処理の一例を示すフローチャートである。図40に示す賞球送信完了処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が賞球制御タイマにおけるタイマ値を、1減算するなどして更新する(ステップS441)。続いて、ステップS441での更新により賞球制御タイマがタイムアウトしたか否かを判定することなどにより、フィードバック送信待ち時間が経過したか否かを判定する(ステップS442)。
ステップS442にてフィードバック送信待ち時間が経過していないときには(ステップS442;No)、賞球送信完了処理を終了する。これに対して、フィードバック送信待ち時間が経過したときには(ステップS442;Yes)、賞球制御タイマを初期化するとともに(ステップS443)、賞球プロセスフラグの値を“0”に更新する(ステップS444)。
図41は、図31に示すステップS78にて実行される異常動作報知設定処理の一例を示すフローチャートである。この異常動作報知設定処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図31に示すステップS72におけるスイッチ処理の実行結果に基づき、全入賞球検出スイッチ29からの検出信号がオン状態となっているか否かを判定する(ステップS301)。
ステップS301にて全入賞球検出スイッチ29からの検出信号がオン状態であるときには(ステップS301;Yes)、コマンド送信回数カウンタの値を1減算する(ステップS302)。これに対して、ステップS301にて全入賞球検出スイッチ29からの検出信号がオフ状態であるときには(ステップS301;No)、ステップS302の処理をスキップする。その後、コマンド送信回数カウンタの値が予め定められた賞球過多基準値(例えば「250」)以上となっているか否かを、例えばCPU104が判定する(ステップS303)。そして、コマンド送信回数カウンタの値が賞球過多基準値以上であるときには(ステップS303;Yes)、演出制御基板12に対して賞球過多報知コマンドを送信するための設定を行う(ステップS304)。具体的な一例として、ステップS304の処理では、ROM105に格納されている賞球過多報知コマンド設定テーブルの先頭アドレスをポインタに設定し、賞球過多報知コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。他方、ステップS303にてコマンド送信回数カウンタの値が賞球過多基準値未満であるときには(ステップS303;No)、コマンド送信回数カウンタの値が予め定められた賞球不足基準値(例えば「0」)に達したか否かを判定する(ステップS305)。
ステップS305にてコマンド送信回数カウンタの値が賞球不足基準値に達しているときには(ステップS305;Yes)、演出制御基板12に対して賞球不足報知コマンドを送信するための設定を行う(ステップS306)。具体的な一例として、ステップS306の処理では、ROM105に格納されている賞球不足報知コマンド設定テーブルの先頭アドレスをポインタに設定し、賞球不足報知コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。ステップS304、S306のいずれかの処理を実行した後には、コマンド送信回数カウンタに、所定のカウント初期値(例えば「200」)を設定する(ステップS307)。
ステップS305にてコマンド送信回数カウンタの値が賞球不足基準値に達していないときや(ステップS305;No)、ステップS307の処理を実行した後には、満タンスイッチ26からの検出信号がオン状態となっているか否かを判定する(ステップS308)。そして、ステップS308にて満タンスイッチ26からの検出信号がオン状態であるときには(ステップS308;Yes)、遊技制御フラグ設定部133に設けられた満タン報知中フラグがオンとなっているか否かを判定する(ステップS309)。なお、満タン報知中フラグは、後述するステップS311の処理が実行されたときにオン状態にセットされる一方、ステップS314の処理が実行されたときにクリアされてオフ状態となる。
ステップS309にて満タン報知中フラグがオンであるときには(ステップS309;Yes)、既に満タン状態である旨の報知が行われていると判断して、異常動作報知設定処理を終了する。他方、ステップS309にて満タン報知中フラグがオフであるときには(ステップS309;No)、演出制御基板12に対して満タン報知開始コマンドを送信するための設定を行う(ステップS310)。具体的な一例として、ステップS310の処理では、ROM105に格納されている満タン報知開始コマンド設定テーブルの先頭アドレスをポインタに設定し、満タン報知開始コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。ステップS310の処理を実行したときには、満タン報知中フラグをオン状態にセットする(ステップS311)。
ステップS308にて満タンスイッチ26からの検出信号がオフ状態であるときには(ステップS308;No)、満タン報知中フラグがオンとなっているか否かを判定する(ステップS312)。そして、満タン報知中フラグがオフであるときには(ステップS312;No)、異常動作報知設定処理を終了する。他方、ステップS312にて満タン報知中フラグがオンであるときには(ステップS312;Yes)、演出制御基板12に対して満タン報知終了コマンドを送信するための設定を行う(ステップS313)。具体的な一例として、ステップS313の処理では、ROM105に格納されている満タン報知終了コマンド設定テーブルの先頭アドレスをポインタに設定し、満タン報知終了コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。ステップS313の処理を実行した後には、満タン報知中フラグをクリアしてオフ状態にする(ステップS314)。
また、異常動作報知設定処理では、再送信フラグがオンとなっているか否かを判定し、再送信フラグがオフであれば、払出用通信エラー検出フラグがオンとなっているか否かを判定するようにしてもよい。そして、再送信フラグと払出用通信エラー検出フラグのいずれかがオンであるときには、遊技制御フラグ設定部133に設けられた所定フラグ(例えば払出異常報知フラグ)がオンとなっているか否かを判定し、オフであるときには、演出制御基板12に対してメイン側払出異常報知開始コマンドとなる所定コマンドを送信するための設定を行うようにすればよい。メイン側払出異常報知開始コマンドを送信するための設定を行ったときには、遊技制御フラグ設定部133に設けられた払出異常報知フラグをオン状態にセットしておく。その一方で、再送信フラグと払出用通信エラー検出フラグがいずれもオフであるときには、払出異常報知フラグがオンとなっているか否かを判定し、オンであれば、演出制御基板12に対してメイン側払出異常報知終了コマンドとなる所定コマンドを送信するための設定を行うようにすればよい。演出制御基板12の側では、主基板11からのメイン側払出異常報知開始コマンドを受信したことに応じて、例えば画像表示装置5に所定の画像を表示させることなどにより、主基板11の側で払出制御に関するエラーが発生した旨を報知するメイン側払出異常報知を行うための処理が実行される一方、主基板11からのメイン側払出異常報知終了コマンドを受信したことに応じて、メイン側払出異常報知を終了するための処理が実行されるようにすればよい。
図42は、図31に示すステップS79にて実行されるメイン側受信処理の一例を示すフローチャートである。このメイン側受信処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、払出用通信エラー検出フラグがオンとなっているか否かを、例えばCPU104が判定する(ステップS331)。なお、払出用通信エラー検出フラグは、後述するステップS336の処理が実行されたときにオン状態にセットされる一方、エラー解除スイッチ31の操作などに応じてクリアされてオフ状態となればよい。ステップS331にて払出用通信エラー検出フラグがオンであるときには(ステップS331;Yes)、そのままメイン側受信処理を終了する。これにより、主基板11において払出制御基板15との間での通信に関するエラーが発生しているときには、払出制御基板15から送信される払出通知コマンドの受信を停止する状態に制御されることになる。
他方、ステップS331にて払出用通信エラー検出フラグがオフであるときには(ステップS331;No)、例えばCPU104が遊技制御カウンタ設定部135に設けられたコマンド受信個数カウンタの値が「0」以外であるか否かを判定することなどにより、受信コマンドがあるか否かを判定する(ステップS332)。このとき、受信コマンドがない旨の判定がなされると(ステップS332;No)、メイン側受信処理を終了する。
ステップS332にて受信コマンドがある旨の判定がなされたときには(ステップS332;Yes)、払出用受信コマンドバッファ191に設けられた受信コマンドバッファ#1〜#12のうちでコマンド受信個数カウンタの値に対応したものから格納データを読出し(ステップS333)、コマンド受信個数カウンタの値を、例えばステップS333にて読出した格納データの個数だけ減算するなどして更新する(ステップS334)。続いて、ステップS333にて読出した受信コマンドが払出制御基板15から送信される適正なコマンドであるか否かのチェックを行う(ステップS335)。具体的な一例として、受信コマンドの1バイト目と2バイト目との排他的論理和を演算し、算出された演算結果が正常値となっているか否かを判定することで、受信コマンドが適正なコマンドであるか否かをチェックすることができる。この実施の形態では、払出制御基板15から主基板11に対して送信されるコマンドは、1バイト目を反転させることで2バイト目となるように構成されていることから、受信コマンドの1バイト目と2バイト目との排他的論理和を演算した結果、全ビット値が“1”となれば、受信コマンドが適正なコマンドであると判断することができる。
ステップS335におけるチェックの結果、受信コマンドが適正なコマンドではないと判定されたときには(ステップS335;No)、払出用通信エラー検出フラグをオン状態にセットして(ステップS336)、メイン側受信処理を終了する。これに対して、ステップS335におけるチェックの結果、受信コマンドが適正なコマンドであると判定されたときには(ステップS335;Yes)、その受信コマンドは賞球ACKコマンドであるか否かを判定する(ステップS337)。そして、受信コマンドが賞球ACKコマンドであるときには(ステップS337;Yes)、賞球ACK受信フラグをオン状態にセットする(ステップS338)。
他方、ステップS337にて受信コマンドが賞球ACKコマンドではないと判定されたときには(ステップS337;No)、その受信コマンドが払出エラー通知コマンドであるか否かを判定する(ステップS339)。そして、受信コマンドが払出エラー通知コマンドであるときには(ステップS339;Yes)、払出エラー通知フラグをオン状態にセットする(ステップS340)。ステップS339にて受信コマンドが払出エラー通知コマンドではないと判定されたときには(ステップS339;No)、その受信コマンドが払出エラー解除コマンドであるか否かを判定する(ステップS341)。そして、受信コマンドが払出エラー解除コマンドであるときには(ステップS341;Yes)、払出エラー解除フラグをオン状態にセットする(ステップS342)。ステップS341にて受信コマンドが払出エラー解除コマンドではないと判定されたときには(ステップS341;No)、受信したコマンドの種類に対応するコマンド受信フラグをオン状態にセットすればよい(ステップS343)。
図43は、図31に示すステップS80にて実行される特別図柄プロセス処理の一例を示すフローチャートである。この特別図柄プロセス処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図31に示すステップS72におけるスイッチ処理の実行結果に基づき、始動口スイッチ22からの始動入賞信号がオン状態となっているか否かを判定する(ステップS351)。ここで、ステップS351の処理では、例えば始動口スイッチ22からの始動入賞信号がオン状態となっている期間を計測するための始動口スイッチタイマにおけるタイマ値をロードし、ロードしたタイマ値を所定のスイッチオン判定値(例えば「2」)と比較する。ここで、スイッチオン判定値は、図41に示す遊技制御用タイマ割込み処理の実行回数(例えば「2」)に対応して予め定められていればよい。これにより、所定回(例えば2回)の遊技制御用タイマ割込み処理が実行されている期間(例えば4ミリ秒)にわたり始動口スイッチ22からの始動入賞信号が継続してオン状態となっているか否かを判定することができる。このように、スイッチオン判定値は、乱数回路103が備えるタイマ回路179において始動入賞信号SSの入力時間の計測を開始してから出力信号がローレベルからハイレベルに立上がるまでに要する期間(3ミリ秒)よりも長い期間にわたり始動入賞信号がオン状態であることを特定できるように定められていればよい。ステップS351の処理では、ロードしたタイマ値がスイッチオン判定値に達しているときに、始動入賞信号がオン状態となっている旨の判定を行うようにすればよい。
ステップS351にて始動入賞信号がオン状態である旨の判定がなされたときには(ステップS351;Yes)、所定の入賞処理を実行して、大当り判定用となる乱数値を示す数値データの抽出などを行う(ステップS352)。他方、ステップS351にて始動入賞信号がオフ状態である旨の判定がなされたときには(ステップS351;No)、ステップS352の入賞処理をスキップする。
ステップS352の入賞処理では、特図保留記憶部131が記憶している大当り判定用の乱数値を示す数値データの個数である保留記憶数が、所定の上限値(例えば「4」)となっているか否かを判定する。このとき、保留記憶数が上限値となっていれば、今回の入賞による始動検出は無効として、そのまま入賞処理を終了する。これに対して、保留記憶数が上限値未満であるときには、例えばCPU104が乱数回路103に16ビット乱数用として設けられた乱数値レジスタ181Bなどから大当り判定用の乱数値を示す数値データを抽出し、抽出した乱数値を示す数値データを、特図保留記憶部131における空エントリの先頭にセットする。
この後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御フラグ設定部133に設けられた特別図柄プロセスフラグの値に応じて、以下のようなステップS360〜S366の各処理を実行する。
ステップS360の特別図柄通常処理は、特別図柄プロセスフラグの値が“0”のときに実行される。図45は、ステップS340にて実行される特別図柄通常処理の一例を示すフローチャートである。この特別図柄通常処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、特図保留記憶部131における保留記憶数が「0」となっているか否かを、例えばCPU104が判定する(ステップS461)。そして、保留記憶数が「0」であるときには(ステップS461;Yes)、遊技制御フラグ設定部133に設けられたデモ表示フラグがオンとなっているか否かを判定する(ステップS462)。なお、デモ表示フラグは、後述するステップS465の処理が実行されたときにオン状態にセットされる一方、ステップS466の処理が実行されたときにクリアされてオフ状態となる。ステップS462にてデモ表示フラグがオンであれば(ステップS462;Yes)、既に演出制御基板12に対してデモ表示コマンドの送信が行われたと判断して、特別図柄通常処理を終了する。
ステップS462にてデモ表示フラグがオフであるときには(ステップS462;No)、タッチセンサ75からのタッチセンサ検出信号がオン状態となっているか否かを判定する(ステップS463)。このとき、タッチセンサ検出信号がオン状態であれば(ステップS463;Yes)、遊技者が操作ノブ30に触れて遊技を行っているため画像表示装置5におけるデモ表示は行わないと判断して、特別図柄通常処理を終了する。他方、ステップS463にてタッチセンサ検出信号がオフ状態であるときには(ステップS463;No)、演出制御基板12に対してデモ表示コマンドを送信するための設定を行う(ステップS464)。具体的な一例として、ステップS464の処理では、ROM105に格納されているデモ表示コマンド設定テーブルの先頭アドレスをポインタに設定し、デモ表示コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを、演出用送信コマンドバッファにセットする。ステップS464の処理を実行したときには、デモ表示フラグをオン状態にセットする(ステップS465)。
ステップS461にて保留記憶数が「0」以外であるときには(ステップS461;No)、特図ゲームを実行するための始動条件が成立していると判断して、デモ表示フラグをクリアしてオフ状態とする(ステップS466)。そして、特別図柄プロセスフラグの値を“1”に更新する(ステップS467)。
図43に示すステップS361の可変表示開始時処理は、特別図柄プロセスフラグの値が“1”のときに実行される。この可変表示開始時処理は、特別図柄表示装置4による特図ゲームにおける確定特別図柄を決定する処理や、特別図柄の可変表示時間(総変動時間)及び画像表示装置5における飾り図柄の可変表示態様を決定する処理などを含んでいる。具体的な一例として、ステップS361の可変表示開始時処理では、まず、特図保留記憶部131から保留番号「1」に対応して記憶されている大当り判定用の乱数値を示す数値データを読み出すとともに、保留番号「1」よりも下位のエントリ(例えば保留番号「2」〜「4」に対応するエントリ)に記憶された乱数値を示す数値データを、1エントリずつ上位にシフトする。
こうして特図保留記憶部131から読み出した乱数値を示す数値データに基づき、例えばROM105に格納されている大当り判定テーブルを参照することなどにより、特図ゲームや飾り図柄の可変表示における表示結果を大当りとするか否かの判定を行う。このとき、大当りとする旨の判定がなされると、遊技制御フラグ設定部133に設けられた大当りフラグをオン状態にセットするとともに、確変判定用の乱数値を示す数値データを抽出する。続いて、抽出した確変判定用の乱数値を示す数値データに基づき、例えばROM105に格納されている確変判定テーブルを参照することなどにより、大当り遊技状態の終了後における遊技状態を確変制御による高確率状態とするか否かの判定を行う。そして、高確率状態とする旨の判定がなされたときには、遊技制御フラグ設定部133に設けられた確変確定フラグをオン状態にセットする。また、ステップS361の可変表示開始時処理では、例えば特別図柄表示装置4における各セグメントや各ドットの点灯/消灯動作を開始させるなどといった、特別図柄表示装置4において特別図柄の可変表示を開始する設定を行う。この後、特別図柄プロセスフラグの値を“2”に更新する。
ステップS362の可変表示制御処理は、特別図柄プロセスフラグの値が“2”のときに実行される。この可変表示制御処理は、可変表示時間タイマの値に基づいて、特別図柄表示装置4による特図ゲームにおける特別図柄の残りの可変表示時間を計測する処理を含んでいる。そして、特別図柄の可変表示時間(総変動時間)が経過したときには、特別図柄プロセスフラグの値を“3”に更新する。
ステップS363の可変表示停止時処理は、特別図柄プロセスフラグの値が“3”のときに実行される。この可変表示停止時処理では、特別図柄や飾り図柄の可変表示結果が大当りであるかハズレであるかが判定される。また、パチンコ遊技機1が高確率状態となっているときには、遊技状態を高確率状態から通常遊技状態に戻すか否かを判定し、戻すと判定すると、パチンコ遊技機1における遊技状態を高確率状態から通常遊技状態に移行させる。具体的な一例として、高確率状態にて実行された特図ゲームの回数が所定の確変終了基準値(例えば「100」)に達すると、高確率状態から通常遊技状態に戻すと判定する。そして、可変表示結果が大当りであるときには特別図柄プロセスフラグの値が“4”に更新される一方で、ハズレであるときには特別図柄プロセスフラグの値が“0”に更新される。
ステップS364の大入賞口開放前処理は、特別図柄プロセスフラグの値が“4”のときに実行される。この大入賞口開放前処理では、大当り遊技状態において特別可変入賞球装置7が備える開閉板により大入賞口を開放する各ラウンドにおける大入賞口の最長開放期間の設定などを行う。この後、大当り開始コマンドを演出制御基板12に対して送信するための設定を行って、特別図柄プロセスフラグの値を“5”に更新する。
ステップS365の大入賞口開放中処理は、特別図柄プロセスフラグの値が“5”のときに実行される。この大入賞口開放中処理では、大入賞口開放前処理での設定に従ってソレノイド82の駆動制御を行うことにより、特別可変入賞球装置7が備える開閉板により大入賞口を開閉させる。そして、大当り遊技状態における最終のラウンドが終了したときには、特別図柄プロセスフラグの値を“6”に更新する。ステップS366の大当り終了処理は、特別図柄プロセスフラグの値が“6”のときに実行される。この大当り終了処理では、大当り終了コマンドを演出制御基板12に対して送信するための設定などを行った後、特別図柄プロセスフラグの値を“0”に更新する。また、大当り終了処理では、確変確定フラグがオンとなっているか否かを判定し、オンであるときには、確変確定フラグをクリアしてオフ状態にするとともに、遊技制御フラグ設定部133に設けられた確変中フラグをオン状態にセットする。
図45は、図31に示すステップS81にて実行される払出用コマンド制御処理の一例を示すフローチャートである。この払出用コマンド制御処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えば遊技制御タイマ設定部134に設けられた払出用通信制御タイマによる経過時間の計測が行われているか否か(タイマ値が「0」以外であるか否か)を判定することなどにより、払出制御コマンドの送信完了を待機中であるか否かを判定する(ステップS371)。ステップS371にて送信完了の待機中ではない旨の判定がなされたときには(ステップS371;No)、例えばCPU104が遊技制御カウンタ設定部135に設けられたコマンド送信待ちカウンタの値が「0」以外であるか否かを判定することなどにより、送信コマンドがあるか否かを判定する(ステップS372)。このとき、送信コマンドがない旨の判定がなされると(ステップS372;No)、払出用コマンド制御処理を終了する。
ステップS372にて送信コマンドがある旨の判定がなされたときには(ステップS372;Yes)、例えばシリアル通信エラーフラグがオフであるか否かを判定することなどにより、シリアル通信回路108により払出制御コマンドを送信可能な状態であるか否かを判定する(ステップS373)。このとき、シリアル通信エラーフラグがオンであるなどして送信可能な状態ではないと判定すると(ステップS373;No)、払出用コマンド制御処理を終了して払出制御コマンドの送信を行わないようにする。他方、ステップS373にて送信可能な状態である旨の判定がなされたときには(ステップS373;Yes)、払出用送信コマンドバッファ192に設けられた送信コマンドバッファ#1〜#12のうちでコマンド送信待ちカウンタの値に対応したものから格納データを読出し(ステップS374)、読出したデータをシリアル通信回路108にセットする(ステップS375)。より具体的に、ステップS375では、ステップS374にて読出したデータをシリアル通信回路108が備えるシリアル通信データレジスタにセットすればよい。このときには、コマンド送信待ちカウンタの値を、例えばステップS374にて読出した格納データの個数だけ減算するなどして更新する(ステップS376)。続いて、払出用通信制御タイマに送信完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS377)、払出用コマンド制御処理を終了する。
また、ステップS371にて送信完了の待機中である旨の判定がなされたときには(ステップS371;Yes)、例えば送信完了フラグとして遊技制御フラグ設定部133に設けられた所定のフラグがオンとなっているか否かを判定するなどして、シリアル通信回路108による送信動作が完了したか否かを判定する(ステップS378)。ステップS378にて送信動作が完了しているときには(ステップS378;Yes)、払出用通信制御タイマを初期化した後(ステップS379)、前述したステップS372の処理に進む。
ステップS378にて送信動作が完了していないときには(ステップS378;No)、払出用通信制御タイマの値を、例えば1減算するなどして更新する(ステップS380)。そして、例えばステップS380での更新により払出用通信制御タイマがタイムアウトしたか否かを判定することなどにより、送信完了待ち時間が経過したか否かを判定する(ステップS381)。このとき、送信完了待ち時間が経過していれば(ステップS381;Yes)、払出制御基板15に対する払出制御コマンドの送信が送信完了待ち時間内に完了できなかったと判断して、例えば払出用通信エラー検出フラグをオン状態にセットする処理などといった、コマンド送信エラー時の処理を実行する(ステップS382)。他方、ステップS381にて送信完了待ち時間が経過していなければ(ステップS381;No)、ステップS382の処理をスキップして払出用コマンド制御処理を終了する。
次に、払出制御基板15における動作を説明する。払出制御基板15では、電源基板10からの電力供給が開始され払出制御用マイクロコンピュータ150へのリセット信号がハイレベル(オフ状態)になったことに応じて、払出制御用マイクロコンピュータ150が起動し、図46のフローチャートに示すような払出制御メイン処理が実行される。なお、以下に説明する各処理は、払出制御用マイクロコンピュータ150が備えるCPU214によって実行されるものとする。また、払出制御用マイクロコンピュータ210が備えるタイマ回路217やシリアル通信回路218などで発生した各種の割込み要因に基づく割込み要求は、CPU214に所定の割込み処理を実行させるためのものである。そして、CPU214やCPU214以外の各種回路を含んだ概念を払出制御用マイクロコンピュータ150ということもあるものとする。図46に示す払出制御メイン処理を開始すると、払出制御用マイクロコンピュータ150は、まず、割込禁止に設定し(ステップS501)、割込モードの設定を行う(ステップS502)。続いて、例えばスタックポインタ指定アドレスの設定など、スタックポインタに関わる設定を行う(ステップS503)。また、内蔵デバイスレジスタの設定(初期化)を行う(ステップS504)。例えば、払出制御用マイクロコンピュータ150がCTC(カウンタ/タイマ)及びPIO(パラレル入出力ポート)を内蔵している場合には、ステップS504の処理が実行されることにより、内蔵デバイス(内蔵周辺回路)としてのCTCやPIOの設定(初期化)などが行われるとよい。
ステップS504の処理を実行した後には、例えば払出制御用マイクロコンピュータ150に設けられた入力ポートにおける所定ビットの状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定する(ステップS505)。例えば、ステップS505の処理では、電源断信号が出力されていないオフ状態(ハイレベル)となっていることを確認する。
ステップS505にて電源断信号がオン状態であるときには(ステップS505;No)、所定時間(例えば0.1秒)が経過するまで待機した後(ステップS506)、ステップS505の処理に戻って、電源断信号がオフ状態となっているか否かの判定を再び行うようにする。これにより、払出制御用マイクロコンピュータ150は、電源電圧が安定したことを確認することができる。そして、ステップS505にて電源断信号がオフ状態であるときには(ステップS505;Yes)、RAM216をアクセス可能に設定する(ステップS507)。
ステップS507の処理を実行した後には、例えば払出制御用マイクロコンピュータ150に設けられた入力ポートにおける所定ビットの状態をチェックすることなどにより、クリア信号がオン状態となっているか否かを判定する(ステップS508)。ここで、払出制御用マイクロコンピュータ150は、入力ポートを介して1回だけクリア信号の状態を確認するようにしてもよいが、クリア信号の状態を複数回確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、クリア信号の状態をもう1回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
ステップS508にてクリア信号がオフ状態である旨の判定がなされたときには(ステップS508;No)、RAM216のデータチェックを行い、チェック結果が正常であるか否かを判定する(ステップS509)。ステップS509の処理では、例えばRAM216の特定領域における記憶データを用いてチェックサムを算出し、算出されたチェックサムと払出チェックサムバッファに記憶されているチェックサムとを比較する。ここで、払出チェックサムバッファには、前回の電力供給停止時に、同様の処理によって算出されたチェックサムが記憶されている。そして、比較結果が不一致であれば、RAM216の特定領域におけるデータが電力供給停止時のデータとは異なっていることから、チェック結果が正常でないと判断される。
ステップS509におけるチェック結果が正常であるときには(ステップS509;Yes)、払出制御フラグ設定部141に設けられた払出バックアップフラグがオンとなっているか否かを判定する(ステップS510)。払出バックアップフラグの状態は、電力供給が停止するときに、払出制御フラグ設定部141に設定される。そして、この払出バックアップフラグの設定箇所がバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、払出バックアップフラグの状態は保存されることになる。なお、ステップS510のような払出バックアップフラグがオンとなっているか否かの判定を、ステップS509のようなチェック結果の判定よりも先に行い、払出バックアップフラグがオンであるときにRAM216のデータチェック結果が正常であるか否かを判定するようにしてもよい。
ステップS510にて払出バックアップフラグがオンであるときには(ステップS510;Yes)、払出バックアップフラグをクリアしてオフ状態とした後(ステップS511)、払出制御用マイクロコンピュータ150の内部状態などを電力供給が停止されたときの状態に戻すための復旧時における設定を行う(ステップS512)。例えば、パチンコ遊技機1への電力供給が停止されるときに、払出制御カウンタ設定部143に設けられた賞球未払出カウンタの値がRAM216のバックアップ領域に格納される場合には、ステップS512の処理においてRAM216のバックアップ領域の記憶データを読み出して、賞球未払出カウンタにセットするようにすればよい。
また、ステップS508にてクリア信号がオンであるときや(ステップS508;Yes)、ステップS509にてチェック結果が正常ではないとき(ステップS509;No)、あるいはステップS510にて払出バックアップフラグがオフであるときには(ステップS510;No)、RAM216の初期化を行う(ステップS513)。続いて、払出制御用マイクロコンピュータ150の内部状態などを初期状態とするための初期化時における設定を行う(ステップS514)。例えば、ステップS514の処理では、払出制御フラグ設定部141に設けられた各種のフラグや、払出制御タイマ設定部142に設けられた各種のタイマ、あるいは払出制御カウンタ設定部143に設けられた各種のカウンタなどに、それぞれの初期値を設定すればよい。具体的な一例として、ステップS514の処理では、払出制御カウンタ設定部143に設けられた初期化コマンド受信回数カウンタの値を所定のカウント初期値(例えば「1」)に設定する。
ステップS512またはステップS514の処理を実行した後には、例えば払出制御用マイクロコンピュータ150が備えるタイマ回路217のレジスタ設定などを行うことにより、所定時間(例えば2ミリ秒)ごとにタイマ割込みが発生するように払出制御用マイクロコンピュータ150の内部設定を行う(ステップS515)。この後、CPU214がROM215に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し(ステップS516)、読出した値に基づいて乱数生成動作の初期設定を行う(ステップS517)。例えば、払出制御基板15の側では払出制御用マイクロコンピュータ150が備える乱数回路213を使用しない場合には、ステップS517の処理において、乱数回路213における12ビット乱数と16ビット乱数の双方について、その生成動作を停止させるための処理が実行されればよい。
ステップS517の処理に続いて、CPU214は、シリアル通信動作の初期設定を行うための処理として、シリアル通信初期設定処理を実行する(ステップS518)。このシリアル通信初期設定処理は、主基板11の側で遊技制御用マイクロコンピュータ100により実行される図27に示すステップS23の処理と同様の処理であればよい。また、CPU214は、割込み要求に基づいて実行される割込み処理に関する初期設定を行うための処理として、割込み初期設定処理を実行する(ステップS519)。この割込み初期設定処理は、主基板11の側で遊技制御用マイクロコンピュータ100により実行される図27に示すステップS24の処理と同様の処理であればよい。そして、CPU214は割込許可状態に設定して(ステップS520)、各種割込みの発生を待機する。このときには、電源断信号がオン状態となったか否か(出力されたか否か)の判定を行い(ステップS521)、オフであれば(ステップS521;No)、そのまま各種割込みの発生を待機する。また、電源断信号がオン状態となったときには(ステップS521;Yes)、払出側電源断処理を実行した後(ステップS522)、所定のループ処理を実行して、電力供給の停止による払出制御用マイクロコンピュータ150の動作停止まで待機する。なお、ステップS521の処理では、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。なお、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。このように電源断信号の状態を複数回確認する場合には、例えば確認動作を開始するときや1回目の確認結果と2回目の確認結果とを比較して不一致であったときなどに、払出制御用マイクロコンピュータ150に内蔵されたWDT(ウォッチドッグ・タイマ)をクリアするリトリガを行う。そして、リトリガが何らかの原因(例えばプログラムの暴走)で所定時間内に発生しなくなった場合には、WDTから出力されるタイムアウト信号に基づくユーザリセットを発生させ、リセット/割込みコントローラ212、CPU214、タイマ回路217、シリアル通信回路218などの各回路を初期化した後、所定のベクタテーブルで示されるアドレスからユーザプログラムの実行を開始して、自動復旧を行うようにしてもよい。
ステップS522の払出側電源断処理では、例えばCPU214が割込禁止に設定した後、払出制御用マイクロコンピュータ150に設けられた出力ポートの所定ビットにクリアデータをセットするなどして、払出モータ51の動作を停止させるための設定を行う。このときには、出力ポートの所定ビット以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。続いて、例えばRAM216の特定領域における記憶データを用いてチェックサムを算出するなどして、チェックデータの作成を行うとともに、払出制御フラグ設定部141に設けられた払出バックアップフラグをオン状態にセットする。このとき作成されたチェックデータは、例えば払出制御バッファ設定部144に設けられた払出チェックサムバッファなどといった、RAM216の所定領域に格納される。そして、払出制御用マイクロコンピュータ150は、例えば所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM216へのアクセスを禁止する。
払出制御用マイクロコンピュータ150では、シリアル通信回路218にて発生した割込み要因に対応して、主基板11に搭載された遊技制御用マイクロコンピュータ100が実行する割込み処理を払出制御用マイクロコンピュータ150に適合させた処理が、実行されればよい。例えば、払出制御用マイクロコンピュータ150に設けられたシリアル通信回路218にてエラー割込みが発生するごとに、シリアル通信エラー割込み処理として予め定められた処理が、CPU214によって実行されればよい。例えば、CPU214が実行するシリアル通信エラー割込み処理には、例えばシリアル通信回路218に設けられた送信動作部と受信動作部を未使用状態に設定する処理や、払出制御フラグ設定部141に設けられたシリアル通信エラーフラグをオン状態にセットする処理などが含まれていればよい。
また、シリアル通信回路218にて受信割込みが発生するごとに、シリアル受信割込み処理として予め定められた処理が、CPU214によって実行されてもよい。このCPU214が実行するシリアル受信割込み処理には、シリアル通信回路218にて主基板11から受信したコマンドを払出制御バッファ設定部144に設けられた受信コマンドバッファに格納する処理などが含まれていればよい。さらに、シリアル通信回路218にて送信割込みが発生するごとに、シリアル送信割込み処理として予め定められた処理が、CPU214によって実行されてもよい。このCPU214が実行するシリアル送信割込み処理には、シリアル通信回路218にて発生した送信割込みの種類を特定して、特定された割込みの種類に応じたフラグをセットまたはクリアする処理などといった、送信割込みの種類に対応する各種の処理が含まれていればよい。
図47は、払出制御用マイクロコンピュータ150にてタイマ割込みが発生するごとに実行される払出制御用タイマ割込み処理の一例を示すフローチャートである。この払出制御用タイマ割込み処理は、主基板11から送信された払出制御コマンドに応じて払出モータ51を制御する払出制御処理となる処理である。図47に示す払出制御用タイマ割込み処理において、払出制御用マイクロコンピュータ150は、所定の入出力処理を実行して(ステップS531)、例えば払出制御用マイクロコンピュータ150に設けられた入力ポートにおける所定ビットの状態をチェックしたり、払出制御用マイクロコンピュータ150に設けられた出力ポートにおける所定ビットに対して所定の制御データをセットしたりする。
続いて、払出制御用マイクロコンピュータ150は、プリペイドカードユニット処理を実行して、インタフェース基板20を介して接続されたカードユニット70との間での通信を行う(ステップS532)。また、シリアル通信により主基板11から送信された払出制御コマンドを受信するための払出側受信処理を実行する(ステップS533)。そして、主基板11からの払出数指定コマンドを受信したときに賞球ACKコマンドを送信する設定などを行う賞球受信確認処理を実行する(ステップS534)。さらに、カードユニット70からの球貸し要求や、主基板11からの払出数指定コマンドに応じて、遊技球の払出動作を制御する払出動作制御処理を実行する(ステップS535)。
ステップS535の処理に続いて、払出制御用マイクロコンピュータ150は、例えば払出制御フラグ設定部141に設けられた各種のエラーフラグにおける状態に応じてエラー表示用LED74に所定の表示を行う7セグ表示処理を実行する(ステップS536)。また、主基板11に対して払出通知コマンドを送信するための払出側送信処理を実行する(ステップS537)。例えば、払出側送信処理では、払出制御フラグ設定部141に設けられたシリアル通信エラーフラグがオンとなっているか否かを判定し、オンであるときには、シリアル通信回路218を用いて主基板11に対して払出通知コマンドを送信することができないと判断して、払出側送信処理を終了する。他方、シリアル通信エラーフラグがオフであるときには、払出制御フラグ設定部141に設けられたシリアル通信エラーフラグ以外のエラーフラグがオン状態となっているか否かを判定する。このとき、いずれかのエラーフラグがオンとなっていれば、例えば払出制御バッファ設定部144に設けられた送信コマンドバッファにコマンド送信用の制御データをセットすることなどといった、主基板11に対して払出エラー通知コマンドを送信するための設定を行う。その後、送信コマンドバッファに送信対象となるコマンドが格納されているか否かを判定し、格納されているときには、そのコマンドに対応する格納データを読み出して、シリアル通信回路218に設けられたシリアル通信データレジスタにセットする。このときには、払出制御フラグ設定部141に設けられた送信設定可能フラグや送信完了フラグをチェックすることで、データセットが可能か否かの判定や、コマンドの送信が完了したか否かの判定などを行うようにしてもよい。
この後、払出制御用マイクロコンピュータ150は、払出側エラー解除処理を実行して、エラー解除スイッチ73からの検出信号がオン状態となったときに所定のエラーの解除を可能とし(ステップS538)、払出制御用タイマ割込み処理を終了する。ステップS538の払出側エラー解除処理では、例えばCPU214がステップS531における入出力処理の実行結果などに基づきエラー解除スイッチ73からの検出信号がオン状態となっているか否かを判定する。このとき、エラー解除スイッチ73からの検出信号がオン状態となっていれば、例えば主基板通信エラーフラグがオンとなっているか否かを判定する。そして、主基板通信エラーフラグがオンであれば、主基板通信エラーフラグをクリアしてオフ状態とする。また、エラー解除スイッチ73からの検出信号がオン状態となっているときには、シリアル通信エラーフラグがオンとなっているか否かを判定し、オンであれば、所定のシリアル通信初期設定処理を実行することにより、シリアル通信回路218の初期設定を行ってもよい。このとき実行されるシリアル通信初期設定処理は、例えば図27に示すステップS23にて実行されるシリアル通信初期設定処理を、払出制御用マイクロコンピュータ150に適合させた処理であればよい。シリアル通信初期設定処理を実行したときには、シリアル通信エラーフラグをクリアしてオフ状態とする。さらに、エラー解除スイッチ73からの検出信号がオン状態であるときには、その他に解除可能なエラーが発生しているか否かを判定し、発生していれば、そのエラーを解除するための設定が行われてもよい。具体的な一例として、球噛みエラーフラグや球詰まりエラーフラグ、空切りエラーフラグなどといった、所定のエラーフラグがオンとなっているか否かを判定し、いずれかのエラーフラグがオンとなっていれば、エラー解除スイッチ73の操作により解除可能なエラーが発生していると判定する。この場合には、例えば対応するエラーフラグをクリアしたり、払出モータ51の駆動制御を行ったりするなど、発生したエラーを解除するための設定を行うようにすればよい。
図48は、図47に示すステップS533にて実行される払出側受信処理の一例を示すフローチャートである。この払出側受信処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS601)。ステップS601にて主基板通信エラーフラグがオンであるときには(ステップS601;Yes)、そのまま払出側受信処理を終了する。これにより、払出制御基板15において主基板11との間での通信に関するエラーが発生しているときには、主基板11から送信される払出制御コマンドの受信を停止する状態に制御されることになる。
他方、ステップS601にて主基板通信エラーフラグがオフであるときには(ステップS601;No)、例えば払出制御カウンタ設定部143に設けられたコマンド受信個数カウンタの値が「0」以外であるか否かをCPU214が判定することなどにより、受信コマンドがあるか否かを判定する(ステップS602)。このとき、受信コマンドがない旨の判定がなされると(ステップS602;No)、払出側受信処理を終了する。
ステップS602にて受信コマンドがある旨の判定がなされたときには(ステップS602;Yes)、払出制御バッファ設定部144に設けられた受信コマンドバッファのうちでコマンド受信個数カウンタの値に対応したものから格納データを読出し(ステップS603)、コマンド受信個数カウンタの値を、例えばステップS603にて読出した格納データの個数だけ減算するなどして更新する(ステップS604)。続いて、ステップS603にて読出した受信コマンドが主基板11から送信される適正なコマンドであるか否かのチェックを行う(ステップS605)。具体的な一例として、受信コマンドの1バイト目と2バイト目との排他的論理和を演算し、算出された演算結果が正常値となっているか否かを判定することで、受信コマンドが適正なコマンドであるか否かをチェックすることができる。この実施の形態では、主基板11から払出制御基板15に対して送信されるコマンドは、1バイト目を反転させることで2バイト目となるように構成されていることから、受信コマンドの1バイト目と2バイト目との排他的論理和を演算した結果、全ビット値が“1”となれば、受信コマンドが適正なコマンドであると判断することができる。
ステップS605におけるチェックの結果、受信コマンドが適正なコマンドではないと判定されたときには(ステップS605;No)、主基板通信エラーフラグをオン状態にセットして(ステップS606)、払出側受信処理を終了する。これに対して、ステップS605におけるチェックの結果、受信コマンドが適正なコマンドであると判定されたときには(ステップS605;Yes)、その受信コマンドは払出数指定コマンドであるか否かを判定する(ステップS607)。そして、受信コマンドが払出数指定コマンドであるときには(ステップS607;Yes)、そのコマンドによって指定された賞球の払出数を賞球未払出カウンタの値に加算して格納する(ステップS608)。これにより、賞球未払出カウンタには、払出数指定コマンドに示された遊技媒体の払出数が累積的に記憶されることになる。ステップS608の処理を実行したときには、払出制御フラグ設定部141に設けられた賞球ACK送信フラグをオン状態にセットして(ステップS609)、払出制御カウンタ設定部143に設けられた払出動作不良回数カウンタに所定のカウント初期値(例えば「0」)を設定する(ステップS610)。
ステップS607にて受信コマンドが払出数指定コマンドではないと判定したときには(ステップS607;No)、受信コマンドはACKフィードバックコマンドであるか否かを判定する(ステップS611)。そして、受信コマンドがACKフィードバックコマンドであるときには(ステップS611;Yes)、払出制御フラグ設定部141に設けられたフィードバック受信フラグをオン状態にセットする(ステップS612)。ステップS611にて受信コマンドがACKフィードバックコマンドではないと判定されたときには(ステップS611;No)、受信したコマンドの種類に対応するコマンド受信フラグをオン状態にセットすればよい(ステップS613)。
図49は、図47に示すステップS534にて実行される賞球受信確認処理の一例を示すフローチャートである。この賞球受信確認処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS631)。ステップS631にて主基板通信エラーフラグがオンであるときには(ステップS631;Yes)、そのまま賞球受信確認処理を終了する。
他方、ステップS631にて主基板通信エラーフラグがオフであるときには(ステップS631;No)、払出制御フラグ設定部141に設けられた受信確認中フラグがオンとなっているか否かを判定する(ステップS632)。ここで、受信確認中フラグは、後述するステップS637の処理が実行されたときにオン状態にセットされる一方、ステップS641、S646の処理のいずれかが実行されたときにクリアされてオフ状態となる。
ステップS632にて受信確認中フラグがオフであるときには(ステップS632;No)、賞球ACK送信フラグがオンとなっているか否かを判定する(ステップS633)。そして、ステップS633にて賞球ACK送信フラグがオフであるときには(ステップS633;No)、賞球受信確認処理を終了する。他方、ステップS633にて賞球ACK送信フラグがオンであるときには(ステップS633;Yes)、主基板11に対して賞球ACKコマンドを送信するための設定を行う(ステップS634)。具体的な一例として、ステップS634の処理では、ROM215に格納されている賞球ACKコマンド設定テーブルの先頭アドレスをポインタに設定し、賞球ACKコマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを払出制御バッファ設定部144に設けられた送信コマンドバッファにセットする。ステップS634の処理を実行したときには、払出制御タイマ設定部142に設けられた通信制御タイマにフィードバック待機用初期値として予め定められたタイマ初期値を設定する(ステップS635)。また、このときには、賞球ACK送信フラグをクリアしてオフ状態にするとともに(ステップS636)、受信確認中フラグをオン状態にセットする(ステップS637)。
また、ステップS632にて受信確認中フラグがオンであるときには(ステップS632;Yes)、フィードバック受信フラグがオンとなっているか否かを判定する(ステップS638)。そして、フィードバック受信フラグがオンであるときには(ステップS638;Yes)、フィードバック受信フラグをクリアしてオフ状態にするとともに(ステップS639)、通信制御タイマを初期化し(ステップS640)、受信確認中フラグをクリアしてオフ状態とする(ステップS641)。
ステップS638にてフィードバック受信フラグがオフであるときには(ステップS638;No)、通信制御タイマの値を、例えば1減算するなどして更新する(ステップS642)。そして、例えばステップS642での更新により通信制御タイマがタイムアウトしたか否かを判定することなどにより、フィードバック待機時間が経過したか否かを判定する(ステップS643)。このとき、フィードバック待機時間が経過していなければ(ステップS643;No)、賞球受信確認処理を終了する。他方、ステップS643にてフィードバック待機時間が経過しているときには(ステップS643;Yes)、主基板通信エラーフラグをオン状態にセットするとともに(ステップS644)、主基板11から受信した払出数指定コマンドが無効であると判断して、その払出数指定コマンドで示された払出数を賞球未払出カウンタから減算する(ステップS645)。すなわち、ステップS645の処理では、図48に示すステップS608にて賞球未払出カウンタの値に加算した払出数を、賞球未払出カウンタの値から減算して格納する。また、このときには、受信確認中フラグをクリアしてオフ状態とする(ステップS646)。
図50は、図47に示すステップS535にて実行される払出動作制御処理の一例を示すフローチャートである。図50に示す払出動作制御処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が未払出の賞球個数に関する記憶に異常が発生したか否かを判定するための払出数記憶異常判定処理を実行する(ステップS661)。ステップS661にて払出数記憶異常判定処理を実行した後には、払出制御フラグ設定部141に設けられた払出制御プロセスフラグの値に応じて、図50に示すようなステップS662〜S664の各処理を実行する。ここで、ステップS662の払出制御通常処理は、払出制御プロセスフラグの値が“0”のときに実行される。ステップS663の賞球払出動作処理は、払出制御プロセスフラグの値が“1”のときに実行される。ステップS664の球貸し払出動作処理は、払出制御プロセスフラグの値が“2”のときに実行される。
図51は、図50に示すステップS661にて実行される払出数記憶異常判定処理の一例を示すフローチャートである。この払出数記憶異常判定処理では、まず、賞球未払出カウンタに格納されているカウント値における増加分を特定する(ステップS701)。例えば、ステップS701の処理では、前回未払出カウンタの値と、賞球未払出カウンタの値との差分をとることにより、カウント値における増加分を特定することができる。
続いて、ステップS701にて特定したカウント値の増加分が、所定の賞球増加上限値以下となっているか否かを判定する(ステップS702)。この実施の形態では、主基板11から払出制御基板15に対して送信される払出制御コマンドにより指定される払出数の最大値は、図10(C)に示す第1払出数指定コマンドによって指定される「15」となっている。そして、払出制御用マイクロコンピュータ150にてタイマ割込みがあったと判定されたときには、図47に示すステップS533の払出側受信処理が1回実行される。他方、前回未払出カウンタの値は、後述する図54に示すステップS815の処理や、図56に示すステップS845の処理が実行されたときに、賞球未払出カウンタの値と同一の値に設定される。そこで、ステップS702にてカウント値の増加分が賞球増加上限値として予め定めた所定値を超えていると判定したときには(ステップS702;No)、賞球未払出カウンタにおけるカウント値が異常に増加したため、その値は無効であると判断して、賞球未払出カウンタをクリアしてカウント値を初期化する(ステップS703)。あるいは、ステップS703の処理では、例えば前回未払出カウンタの値を賞球未払出カウンタにセットすることなどにより、異常に増加したカウント値に相当する部分だけ無効とするようにしてもよい。この場合には、例えば賞球未払出カウンタの記憶データに誤りが発生したときなどに、必要以上に未払出の遊技球数を無効にしてしまい遊技者が不利益を受けることを防止できる。
ステップS702にてカウント値の増加分が賞球増加上限値以下であるときには(ステップS702;Yes)、払出制御カウンタ設定部143に設けられた球貸し未払出カウンタに格納されているカウント値における増加分を特定する(ステップS704)。そして、ステップS704にて特定したカウント値の増加分が、所定の球貸し増加上限値(例えば「25」)以下となっているか否かを判定する(ステップS705)。このとき、カウント値の増加分が球貸し増加上限値を超えていれば(ステップS705;No)、球貸し未払出カウンタにおけるカウント値が異常に増加したため、その値は無効であると判断して、球貸し未払出カウンタをクリアしてカウント値を初期化する(ステップS706)。
ステップS705にてカウント値の増加分が球貸し増加上限値以下であるときや(ステップS705;Yes)、ステップS703、S706のいずれかの処理を実行した後には、賞球未払出カウンタの値が予め定められた多量未払出上限値(例えば「50」)未満であるか否かを判定する(ステップS707)。このとき、多量未払出上限値未満であると判定されれば(ステップS707;Yes)、払出制御フラグ設定部141に設けられた多量未払出エラーフラグをクリアしてオフ状態とする(ステップS708)。これに対して、多量未払出上限値以上であるときには(ステップS707;No)、多量未払出エラーフラグをオン状態にセットする(ステップS709)。
図52は、図50に示すステップS662にて実行される払出制御通常処理の一例を示すフローチャートである。この払出制御通常処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS721)。そして、ステップS721にて主基板通信エラーフラグがオンであるときには(ステップS721;Yes)、そのまま払出制御通常処理を終了する。これにより、払出制御基板15にて主基板11との間での通信に関するエラーが発生しているときには、賞球や貸し球となる遊技球の払出制御を停止する状態に制御されることになる。
他方、ステップS721にて主基板通信エラーフラグがオフであるときには(ステップS721;No)、賞球未払出カウンタの値が「0」以外の値となっているか否かを判定する(ステップS722)。このとき、賞球未払出カウンタの値が「0」以外の値であれば(ステップS722;Yes)、例えば主基板11からの所定コマンド(例えば球切れ通知コマンドなど)を受信したか否かをチェックすることなどにより、球切れ状態となっているか否かを判定する(ステップS723)。そして、球切れ状態となっているときには(ステップS723;Yes)、払出制御通常処理を終了する。これに対して、ステップS723にて球切れ状態ではない場合には(ステップS723;No)、払出制御プロセスフラグの値を賞球払出動作処理に対応した値である“1”に更新する(ステップS724)。
また、ステップS722にて賞球未払出カウンタの値が「0」であるときには(ステップS722;No)、カードユニット70から伝送されるBRDY信号がオン状態となっているか否かを判定する(ステップS725)。このとき、BRDY信号がオフ状態であれば(ステップS725;No)、払出制御通常処理を終了する。これに対して、ステップS725にてBRDY信号がオン状態であるときには(ステップS725;Yes)、カードユニット70から伝送される球貸し要求信号(BRQ信号)がオン状態となっているか否かを判定する(ステップS726)。そして、球貸し要求信号がオフ状態であるときには(ステップS726;No)、払出制御通常処理を終了する。
ステップS726にて球貸し要求信号がオン状態であるときには(ステップS726;Yes)、例えば主基板11からの所定コマンド(例えば球切れ通知コマンドなど)を受信したか否かや払出制御フラグ設定部141に設けられたカードユニット未接続エラーフラグをチェックすることなどにより、球貸し可能な状態となっているか否かを判定する(ステップS727)。そして、例えば球切れ通知コマンドを受信したことやカードユニット未接続エラーフラグがオン状態となっていることなどにより、球貸し可能な状態ではないと判定されたときには(ステップS727;No)、払出制御通常処理を終了する。これに対して、ステップS727にて球貸し可能な状態となっているときには(ステップS727;Yes)、球貸し未払出カウンタに球貸し用初期値として予め定められたカウント初期値(例えば「25」)を設定する(ステップS728)。そして、払出制御プロセスフラグの値を球貸し払出動作処理に対応した値である“2”に更新する(ステップS729)。
図53は、図50に示すステップS663にて実行される賞球払出動作処理の一例を示すフローチャートである。この賞球払出動作処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が図47に示すステップS531における入出力処理の実行結果に基づき、払出カウントスイッチ72からの検出信号がオン状態となっているか否かを判定する(ステップS741)。そして、払出カウントスイッチ72からの検出信号がオン状態であるときには(ステップS741;Yes)、払出制御カウンタ設定部143に設けられた払出個数カウンタの値を1加算する(ステップS742)。これに対して、ステップS741にて払出カウントスイッチ72からの検出信号がオフ状態であるときには(ステップS741;No)、ステップS742の処理をスキップする。この後、払出制御フラグ設定部141に設けられた賞球払出動作プロセスフラグの値に応じて、図53に示すステップS743、S744の処理のいずれかを選択して実行する。ここで、ステップS743の賞球払出回数算出処理は、賞球払出動作プロセスフラグの値が“0”のときに実行される。ステップS744の賞球払出駆動処理は、賞球払出動作プロセスフラグの値が“1”のときに実行される。
図54は、図53に示すステップS743にて実行される賞球払出回数算出処理の一例を示すフローチャートである。この賞球払出回数算出処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS801)。そして、ステップS801にて主基板通信エラーフラグがオンであるときには(ステップS801;Yes)、そのまま賞球払出回数算出処理を終了する。これにより、払出制御基板15にて主基板11との間での通信に関するエラーが発生しているときには、未払出の賞球となる遊技球の払出制御を停止する状態に制御されることになる。
他方、ステップS801にて主基板通信エラーフラグがオフであるときには(ステップS801;No)、賞球未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているか否かを判定する(ステップS802)。ここで、ステップS802にて賞球未払出カウンタの値が払出個数カウンタの値と等しいか、それよりも小さな値となっているときには(ステップS802;No)、賞球未払出カウンタの値に対応した遊技球の払出動作が完了したと判断される。このときには、払出制御カウンタ設定部143に設けられた払出動作不良回数カウンタをクリアしてカウント値を初期化するとともに(ステップS803)、賞球未払出カウンタをクリアしてカウント値を初期化する(ステップS804)。
ステップS802にて賞球未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているときには(ステップS802;Yes)、賞球未払出カウンタによってカウントされている遊技球個数のうちに、未だ払出動作が完了していないものが含まれていると判断される。そこで、賞球未払出カウンタの値である未払出数から、払出個数カウンタの値である払出個数を減算することにより、未だ払出動作が完了していない遊技球の個数を特定する(ステップS805)。続いて、ステップS805での減算処理により特定された値としての減算値を、払出制御カウンタ設定部143に設けられた払出モータ回転カウンタにセットする(ステップS806)。
ステップS806の処理に続いて、払出動作不良回数カウンタの値が所定の不良回数上限値(例えば「9」)を超えているか否かを判定する(ステップS807)。このとき、不良回数上限値を超えていれば(ステップS807;Yes)、払出制御フラグ設定部141に設けられた球詰まりエラーフラグをオン状態にセットするとともに(ステップS808)、払出動作不良回数カウンタをクリアしてカウント値を初期化する(ステップS809)。他方、ステップS807にて不良回数上限値以下であるときには(ステップS807;No)、賞球となる遊技球の払出動作が可能な状態となっているか否かを判定する(ステップS810)。具体的な一例として、ステップS810の処理では、球詰まりエラーフラグや空切りエラーフラグ、球噛みエラーフラグなどをチェックして、いずれかのエラーフラグがオン状態となっているときには、賞球となる遊技球の払出動作が不可能な状態であると判断する。他方、いずれのエラーフラグもオフ状態となっているときには、賞球となる遊技球の払出動作が可能な状態であると判断する。
ステップS804の処理を実行した後や、ステップS810にて払出動作が不可能な状態であるときには(ステップS810;No)、払出制御プロセスフラグの値を“0”に更新するとともに(ステップS811)、払出個数カウンタをクリアしてカウント値を初期化する(ステップS812)。また、払出モータ回転カウンタをクリアしてカウント値を初期化する(ステップS813)。これに対して、ステップS810にて払出動作が可能な状態であるときには(ステップS810;Yes)、ステップS805にて得られた減算値を賞球未払出カウンタにセットすることにより、賞球未払出カウンタの値を更新する(ステップS814)。また、ステップS805にて得られた減算値を前回未払出カウンタにセットすることにより、前回未払出カウンタの値を更新する(ステップS815)。このステップS815の処理が実行されることにより、ステップS806にて払出モータ回転カウンタに払出動作量を示すカウント値が記憶されたことを条件に、賞球未払出カウンタの値と同一の値が前回未払出カウンタにもセットされることになる。ステップS815の処理を実行した後には、賞球払出動作プロセスフラグの値を賞球払出駆動処理に対応した値である“1”に更新する(ステップS816)。
図55及び図56は、図53に示すステップS744にて実行される賞球払出駆動処理の一例を示すフローチャートである。この賞球払出駆動処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(図55に示すステップS821)。ステップS821にて主基板通信エラーフラグがオフであるときには(ステップS821;No)、賞球未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているか否かを判定する(ステップS822)。ここで、ステップS822にて賞球未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているときには(ステップS822;Yes)、賞球となる遊技球の正常な払出動作が行われていると判断される。このときには、例えば払出制御タイマ設定部142に設けられた払出動作制御タイマによる経過時間の計測が行われているか否か(タイマ値が「0」以外であるか否か)を判定することなどにより、賞球払出動作の完了を待機中であるか否かを判定する(ステップS823)。
ステップS823にて賞球払出動作の待機中ではない旨の判定がなされたときには(ステップS823;No)、例えば払出モータ51の励磁時間あるいは払出モータ位置センサ71による検出結果などから、賞球となる遊技球を1個分払い出すための払出動作中であるか否かを判定する(ステップS824)。そして、遊技球を1個分払い出すための払出動作中ではないときには(ステップS824;No)、払出モータ回転カウンタの値が「0」であるか否かを判定する(ステップS825)。ステップS825にて払出モータ回転カウンタの値が「0」であるときには(ステップS825;Yes)、払出モータ51の駆動を停止するための設定を行うとともに(ステップS826)、払出動作制御タイマに払出完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS827)、賞球払出駆動処理を終了する。なお、払出完了待ち初期値は、払出モータ51を駆動することによる遊技球の払出動作を行ってから、払出カウントスイッチ72により遊技球の払出が検出されるまでに要する最大時間に対応して予め定められたタイマ初期値であればよい。
ステップS825にて払出モータ回転カウンタの値が「0」以外の値であるときには(ステップS825;No)、例えば所定の励磁パターンテーブルの先頭アドレスをポインタに設定するなどといった、遊技球を1個分払い出すための払出動作に関する設定を行う(ステップS828)。このときには、払出モータ回数カウンタの値を1減算することにより更新する(ステップS829)。このように、ステップS825にて払出モータ回転カウンタの値が「0」以外の値であるときにステップS828にて払出動作に関する設定が行われることから、払出モータ回転カウンタに「0」以外の値を設定することにより、実際に遊技球の払出動作が実行されることになる。
また、ステップS824にて遊技球を1個分払い出すための払出動作中であるときには(ステップS824;Yes)、例えば払出制御フラグ設定部141に設けられた各種のエラーフラグの状態を確認することなどにより、払出モータ51による払出動作にエラーが発生したかどうかをチェックする(ステップS830)。このとき、払出動作にエラーが発生していれば(ステップS830;No)、例えばステップS826と同様にして払出モータ51の駆動を停止するための設定を行うなど、払出モータ51による払出動作中に発生したエラーに対応した設定を行う(ステップS831)。
ステップS823にて賞球払出動作の完了を待機中である旨の判定がなされたときには(ステップS823;Yes)、払出動作制御タイマの値を、例えば1減算するなどして更新する(ステップS832)。続いて、払出個数カウンタの値が賞球未払出カウンタの値に達しているか否かを判定する(ステップS833)。このとき、払出個数カウンタの値が賞球未払出カウンタの値に達していなければ(ステップS833;No)、例えばステップS832での更新により払出動作制御タイマがタイムアウトしたか否かを判定することなどにより、払出完了待ち時間が経過したか否かを判定する(ステップS834)。このとき、払出完了待ち時間が経過していれば(ステップS834;Yes)、払出モータ51を駆動することにより既に払い出された遊技球として払出個数カウンタでカウントされた遊技球の個数が、払い出すべき賞球として賞球未払出カウンタでカウントされた遊技球の個数に達するより以前に、賞球払出動作の完了を待機する待ち時間が経過したと判断される。そこで、払出動作不良回数カウンタの値を1加算して更新する(ステップS836)。
ステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達しているときや(ステップS833;Yes)、ステップS835の処理を実行した後には、払出動作制御タイマをクリアして初期化するとともに(ステップS836)、前回未払出カウンタをクリアして初期化する(ステップS837)。その後、賞球払出制御プロセスフラグの値を“0”に更新する(ステップS838)。なお、ステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達した後、図53に示すステップS743の賞球払出回数算出処理が実行されるより前の段階で図48に示すステップS607にて払出数指定コマンドを受信した旨の判定がなされた場合には、図54に示すステップS802にて賞球未払出カウンタの値が払出個数カウンタの値よりも大きな値であると判定されることがある。この実施の形態では、図54に示すステップS807にて払出動作不良回数カウンタの値と比較される不良回数上限値を適切な値(例えば「9」)に定めておくことで、図55に示すステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達した後、図53に示すステップS743の賞球払出回数算出処理が実行されるより前の段階で払出数指定コマンドを受信した場合でも直ちにエラーと判定されることを防止しつつ、払出モータ51あるいは払出ケース17における球詰まりなどの発生による払出動作の不良を適切に検出することができる。
ステップS821にて主基板通信エラーフラグがオンであるときや(ステップS821;Yes)、ステップS822にて賞球未払出カウンタの値が払出個数カウンタの値と等しいか、それよりも小さな値となっているときには(ステップS822;No)、ステップS826と同様にして払出モータ51の駆動を停止するための設定を行うとともに(ステップS839)、賞球払出動作プロセスフラグの値を“0”に更新する(ステップS840)。このように、ステップS821にて主基板通信エラーフラグがオンであるときにはステップS839の処理に進んで払出モータ51の駆動を停止することにより、払出制御基板15にて主基板11との間での通信に関するエラーが発生しているときに、未払出の賞球となる遊技球の払出制御を停止する状態に制御することができる。
また、ステップS829の処理を実行した後や、ステップS830にて払出動作にエラーが発生していないとき(ステップS830;Yes)、あるいはステップS834にて払出完了待ち時間が経過していないときには(ステップS834;No)、賞球未払出カウンタの値と前回未払出カウンタの値とを比較する(図56に示すステップS841)。続いて、ステップS841での比較結果に基づき、賞球未払出カウンタの値が増加したか否かの判定を行う(ステップS842)。例えば、ステップS842の処理では、ステップS841での比較結果から賞球未払出カウンタの値が前回未払出カウンタの値よりも大きい値であると判断されたときに、賞球未払出カウンタの値が増加した旨の判定がなされる。ステップS842にて賞球未払出カウンタの値が増加していないときには(ステップS842;No)、賞球払出駆動処理を終了する。
ステップS842にて賞球未払出カウンタの値が増加した旨の判定がなされたときには(ステップS842;Yes)、賞球未払出カウンタの値から前回未払出カウンタの値を減算する(ステップS843)。このステップS843における減算処理を実行することにより得られた減算値は、賞球未払出カウンタの値における増加分であり、賞球として払い出すべき遊技球の個数を示す未払出数における増加分となる。そして、ステップS843での減算処理により得られた減算値を払出モータ回転カウンタにおけるカウント値に加算して(ステップS844)、払出モータ回転カウンタにおけるカウント値を更新する。この後、賞球未払出カウンタの値を前回未払出カウンタにセットするとともに(ステップS845)、払出動作制御タイマをクリアして初期化を行った後に(ステップS846)、賞球払出駆動処理を終了する。
図57は、図50に示すステップS664にて実行される球貸し払出動作処理の一例を示すフローチャートである。この球貸し払出動作処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が図47に示すステップS531における入出力処理の実行結果に基づき、払出カウントスイッチ72からの検出信号がオン状態となっているか否かを判定する(ステップS761)。そして、払出カウントスイッチ72からの検出信号がオン状態であるときには(ステップS761;Yes)、払出制御カウンタ設定部143に設けられた払出個数カウンタの値を1加算する(ステップS762)。これに対して、ステップS761にて払出カウントスイッチ72からの検出信号がオフ状態であるときには(ステップS761;No)、ステップS762の処理をスキップする。この後、払出制御フラグ設定部141に設けられた球貸し動作プロセスフラグの値に応じて、図57に示すステップS763、S764の処理のいずれかを選択して実行する。ここで、ステップS763の球貸し払出回数算出処理は、球貸し動作プロセスフラグの値が“0”のときに実行される。ステップS764の球貸し払出駆動処理は、球貸し動作プロセスフラグの値が“1”のときに実行される。
図58は、図57に示すステップS763にて実行される球貸し払出回数算出処理の一例を示すフローチャートである。この球貸し払出回数算出処理を開始すると、払出制御用マイクロコンピュータ150では、まず、球貸し未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているか否かを、例えばCPU214が判定する(ステップS861)。ここで、ステップS861にて球貸し未払出カウンタの値が払出個数カウンタの値と等しいか、それよりも小さな値となっているときには(ステップS861;No)、球貸し未払出カウンタの値に対応した遊技球の払出動作が完了したと判断される。このときには、払出動作不良回数カウンタをクリアしてカウント値を初期化するとともに(ステップS862)、球貸し未払出カウンタをクリアしてカウント値を初期化する(ステップS863)。
他方、ステップS861にて球貸し未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているときには(ステップS861;Yes)、球貸し未払出カウンタによってカウントされている遊技球個数のうちに、未だ払出動作が完了していないものが含まれていると判断される。そこで、球貸し未払出カウンタの値である未払出数から、払出個数カウンタの値である払出個数を減算することにより、未だ払出動作が完了していない遊技球の個数を特定する(ステップS864)。続いて、ステップS864での減算処理により特定された値としての減算値を、払出モータ回転カウンタにセットする(ステップS865)。
ステップS865の処理に続いて、払出動作不良回数カウンタの値が所定の不良回数上限値(例えば「9」)を超えているか否かを判定する(ステップS866)。このとき、不良回数上限値を超えていれば(ステップS866;Yes)、球詰まりエラーフラグをオン状態にセットするとともに(ステップS867)、払出動作不良回数カウンタをクリアしてカウント値を初期化する(ステップS868)。他方、ステップS866にて不良回数上限値以下であるときには(ステップS866;No)、貸し球となる遊技球の払出動作が可能な状態となっているか否かを判定する(ステップS869)。具体的な一例として、ステップS869の処理では、球詰まりエラーフラグや空切りエラーフラグ、球噛みエラーフラグ、カードユニット未接続エラーフラグなどをチェックして、いずれかのエラーフラグがオン状態となっているときには、貸し球となる遊技球の払出動作が不可能な状態であると判断する。また、主基板11から満タン状態であることを通知する所定コマンド(例えば満タン通知コマンドなど)や球切れ状態であることを通知する所定コマンド(例えば球切れ通知コマンドなど)を受信したときにも、貸し球となる遊技球の払出動作が不可能な状態であると判断する。他方、いずれのエラーフラグもオフ状態となっており、かつ、主基板11から満タン通知コマンドや球切れ通知コマンドなどを受信していないときには、貸し球となる遊技球の払出動作が可能な状態であると判断する。
ステップS863の処理を実行した後や、ステップS869にて払出動作が不可能な状態であるときには(ステップS869;No)、払出制御プロセスフラグの値を“0”に更新するとともに(ステップS870)、払出個数カウンタをクリアしてカウント値を初期化する(ステップS871)。また、払出モータ回転カウンタをクリアしてカウント値を初期化する(ステップS872)。これに対して、ステップS869にて払出動作が可能な状態であるときには(ステップS869;Yes)、ステップS864にて得られた減算値を賞球未払出カウンタにセットすることにより、球貸し未払出カウンタの値を更新する(ステップS873)。そして、球貸し動作プロセスフラグの値を球貸し払出駆動処理に対応した値である“1”に更新する(ステップS874)。
図59は、図57に示すステップS764にて実行される球貸し払出駆動処理の一例を示すフローチャートである。この球貸し払出駆動処理を開始すると、払出制御用マイクロコンピュータ150では、まず、球貸し未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているか否かを、例えばCPU214が判定する(ステップS881)。ここで、ステップS881にて球貸し未払出カウンタの値が払出個数カウンタの値よりも大きな値となっているときには(ステップS881;Yes)、貸し球となる遊技球の正常な払出動作が行われていると判断される。このときには、例えば払出制御タイマ設定部142に設けられた払出動作制御タイマによる経過時間の計測が行われているか否か(タイマ値が「0」以外であるか否か)を判定することなどにより、球貸しにおける払出動作の完了を待機中であるか否かを判定する(ステップS882)。
ステップS882にて払出動作の待機中ではない旨の判定がなされたときには(ステップS882;No)、例えば払出モータ51の励磁時間あるいは払出モータ位置センサ71による検出結果などから、貸し球となる遊技球を1個分払い出すための払出動作中であるか否かを判定する(ステップS883)。そして、遊技球を1個分払い出すための払出動作中ではないときには(ステップS883;No)、払出モータ回転カウンタの値が「0」であるか否かを判定する(ステップS884)。ステップS884にて払出モータ回転カウンタの値が「0」であるときには(ステップS884;Yes)、払出モータ51の駆動を停止するための設定を行うとともに(ステップS885)、払出動作制御タイマに払出完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS886)、球貸し払出駆動処理を終了する。
ステップS884にて払出モータ回転カウンタの値が「0」以外の値であるときには(ステップS884;No)、例えば所定の励磁パターンテーブルの先頭アドレスをポインタに設定するなどといった、遊技球を1個分払い出すための払出動作に関する設定を行う(ステップS887)。このときには、払出モータ回数カウンタの値を1減算することにより更新してから(ステップS888)、球貸し払出駆動処理を終了する。
また、ステップS883にて遊技球を1個分払い出すための払出動作中であるときには(ステップS883;Yes)、例えば払出制御フラグ設定部141に設けられた各種のエラーフラグの状態を確認することなどにより、払出モータ51による払出動作にエラーが発生したかどうかをチェックする(ステップS889)。このとき、払出動作にエラーが発生していれば(ステップS889;No)、例えばステップS885と同様にして払出モータ51の駆動を停止するための設定を行うなど、払出モータ51による払出動作中に発生したエラーに対応した設定を行う(ステップS890)。他方、ステップS889にて払出動作にエラーが発生していないと判定されたときには(ステップS889;Yes)、ステップS890の処理をスキップして球貸し払出駆動処理を終了する。
ステップS882にて球貸しにおける払出動作の完了を待機中である旨の判定がなされたときには(ステップS882;Yes)、払出動作制御タイマの値を、例えば1減算するなどして更新する(ステップS891)。続いて、払出個数カウンタの値が球貸し未払出カウンタの値に達しているか否かを判定する(ステップS892)。このとき、払出個数カウンタの値が球貸し未払出カウンタの値に達していれば(ステップS892;Yes)、払い出すべき貸し球としての遊技球の払出が正常に完了したと判断して、球貸し動作プロセスフラグの値を“0”に更新した後(ステップS893)、球貸し払出駆動処理を終了する。他方、ステップS892にて払出個数カウンタの値が球貸し未払出カウンタの値に達していなければ(ステップS892;No)、例えばステップS891での更新により払出動作制御タイマがタイムアウトしたか否かを判定することなどにより、払出完了待ち時間が経過したか否かを判定する(ステップS894)。このとき、払出完了待ち時間が経過していなければ(ステップS894;No)、球貸し払出駆動処理を終了する。これに対して、ステップS894にて払出完了待ち時間が経過しているときには(ステップS894;Yes)、払出モータ51を駆動することにより既に払い出された遊技球として払出個数カウンタでカウントされた遊技球の個数が、払い出すべき貸し球として球貸し未払出カウンタでカウントされた遊技球の個数に達するより以前に、球貸しにおける払出動作の完了を待機する待ち時間が経過したと判断される。このときには、払出動作不良回数カウンタの値を1加算して更新した後(ステップS895)、ステップS893の処理に進んで、球貸し動作プロセスフラグの値を“0”に更新する。
ステップS881にて球貸し未払出カウンタの値が払出個数カウンタの値と等しいか、それよりも小さな値となっているときには(ステップS881;No)、ステップS885と同様にして払出モータ51の駆動を停止するための設定を行うとともに(ステップS896)、球貸し動作プロセスフラグの値を“0”に更新する(ステップS897)。
図47に示すステップS536にて実行される7セグ表示処理では、例えば払出制御用マイクロコンピュータ150に設けられたCPU214が払出制御フラグ設定部141に設けられた各種のエラーフラグの状態をチェックする。そして、オン状態となっているエラーフラグに対応してエラー表示用LED74の点灯動作を制御するための制御データを、払出制御用マイクロコンピュータ150に設けられた所定の出力ポートにセットする。図60は、エラーの種類とエラー表示用LED74の表示との関係などを示す説明図である。
図60に示すように、主基板通信エラーフラグがオン状態になった場合には、払出制御用マイクロコンピュータ150は、主基板通信エラーとして、エラー表示用LED74に「0」を表示する制御を行う。球噛みエラーフラグがオン状態になった場合には、球噛みエラーとして、エラー表示用LED74に「1」を表示する制御を行う。空切りエラーフラグがオン状態になった場合には、空切りエラーとして、エラー表示用LED74に「2」を表示する制御を行う。シリアル通信エラーフラグがオン状態になった場合には、シリアル通信エラーとして、エラー表示用LED74に「3」を表示する制御を行う。球詰まりエラーフラグがオン状態になった場合には、球詰まりエラーとして、エラー表示用LED74に「4」を表示する制御を行う。カードユニット未接続エラーフラグがオン状態になった場合には、カードユニット未接続エラーとして、エラー表示用LED74に「5」を表示する制御を行う。多量未払出エラーフラグがオン状態になった場合には、多量未払出エラーとして、エラー表示用LED74に「6」を表示する制御を行う。
次に、演出制御基板12における動作を説明する。演出制御基板12では、電源基板10からの電力供給が開始され演出制御用マイクロコンピュータ120へのリセット信号がハイレベル(オフ状態)になったことに応じて、演出制御用マイクロコンピュータ120が起動し、図61のフローチャートに示すような演出制御メイン処理が実行される。図61に示す演出制御メイン処理を開始すると、演出制御用マイクロコンピュータ120では、まず、RAM122のクリアや各種初期値の設定、また演出制御の実行間隔を決めるためのタイマ初期設定等を行う初期化処理を実行する(ステップS901)。その後、演出制御用マイクロコンピュータ120は、例えばタイマ割込みフラグを監視することなどにより、タイマ割込みが発生したか否かを判定する(ステップS902)。そして、タイマ割込みが発生するまでは(ステップS902;No)、ステップS902の処理を繰り返し実行するループ処理に入る。タイマ割込みが発生したときには(ステップS902;Yes)、タイマ割込みフラグをクリアしてオフ状態とした後(ステップS903)、以下のような演出制御処理を実行する。
ここで、演出制御用マイクロコンピュータ120におけるタイマ割込みは、例えば2ミリ秒ごとに発生する。すなわち、演出制御処理は、例えば2ミリ秒ごとに実行される。この実施の形態では、タイマ割込みの発生に応答して所定のタイマ割込み処理が実行されることにより、タイマ割込みフラグがオン状態にセットされ、具体的な演出制御処理は演出制御メイン処理内において実行される。これに対して、タイマ割込み処理内において演出制御処理が実行されるようにしてもよい。
演出制御処理において、演出制御用マイクロコンピュータ120では、まず、例えばCPU123が主基板11から中継基板18を介して受信した演出制御コマンドを解析するための演出コマンド解析処理を実行する(ステップS904)。続いて、演出制御用マイクロコンピュータ120では、例えばCPU123が演出制御プロセス処理を実行する(ステップS905)。演出制御プロセス処理では、演出用の電気部品となる画像表示装置5やスピーカ8L、8R、遊技効果ランプ9などの制御状態に応じて、各種の処理が選択されて実行される。この後、演出制御用マイクロコンピュータ120においてカウントされる各種の乱数を更新するための乱数更新処理が実行される(ステップS906)。さらに、主基板11からの演出制御コマンドによる報知指示などに基づく報知動作を制御するための報知処理を実行する(ステップS907)。
図62は、図61に示すステップS905にて実行される演出制御プロセス処理の一例を示すフローチャートである。この演出制御プロセス処理において、演出制御用マイクロコンピュータ120では、例えばCPU123がRAM122の所定領域(演出制御フラグ設定領域など)に設けられた演出制御プロセスフラグの値に応じて、以下のようなステップS920〜S925の各処理を実行する。
ステップS920の可変表示開始コマンド受信待ち処理は、演出制御プロセスフラグの値が“0”のときに実行される。この可変表示開始コマンド受信待ち処理において、演出制御用マイクロコンピュータ120では、例えばCPU123が主基板11から送信された可変表示開始コマンドを受信したか否かを判定する。そして、可変表示開始コマンドを受信していないときには、デモ表示コマンドを受信したか否かを判定する。このとき、デモ表示コマンドを受信していれば、そのデモ表示コマンドを受信してから所定時間が経過したときに、画像表示装置5の表示動作を制御して所定のデモ表示を行わせる。また、可変表示開始コマンド受信待ち処理にて可変表示開始コマンドを受信した旨の判定がなされたときには、画像表示装置5におけるデモ表示を終了させるとともに、演出制御プロセスフラグの値を“1”に更新する。
ステップS921の演出表示制御設定処理は、演出制御プロセスフラグの値が“1”のときに実行される。この演出表示制御設定処理は、特別図柄表示装置4による特図ゲームにて特別図柄が変動表示されることに対応して、画像表示装置5における飾り図柄の可変表示を含めた各種の表示による演出を行うために、画像表示装置5の表示動作を設定するための処理を含んでいる。具体的な一例として、ステップS921の演出表示制御設定処理では、まず、主基板11からの可変表示開始コマンドにより指定された可変表示パターンが大当りパターンであるか否かを判定し、大当りパターンではないと判定されたときには、リーチハズレパターンであるか否かを判定する。そして、リーチハズレパターンではないと判定されたときには、通常ハズレパターンが指定されたものと判断して、通常ハズレ組合せとなる確定飾り図柄を決定するための通常ハズレ図柄決定処理を実行する。また、可変表示開始コマンドにより指定された可変表示パターンがリーチハズレパターンであるときには、リーチハズレ組合せとなる確定飾り図柄を決定するためのリーチハズレ図柄決定処理を実行する。
さらに、可変表示開始コマンドにより指定された可変表示パターンが大当りパターンであるときには、大当り組合せとなる確定飾り図柄を決定するための大当り図柄決定処理を実行する。このときには、例えばCPU123が主基板11から送信された表示結果通知コマンドを読み取ることなどにより、遊技状態が高確率状態となる確変大当りであるか、高確率状態にはならない通常大当りであるかを判定する。そして、確変大当りであると判定したときには、例えば図柄番号が奇数である確変図柄としての飾り図柄「1」、「3」、「5」、「7」または「9」のうちで、同一の確変図柄を、画像表示装置5における飾り図柄の可変表示における表示結果として「左」、「中」、「右」の各可変表示部にて導出表示する確定飾り図柄に決定する。他方、通常大当りであると判定したときには、例えば図柄番号が偶数である通常図柄としての飾り図柄「0」、「2」、「4」、「6」または「8」のうちで、同一の通常図柄を、画像表示装置5における飾り図柄の可変表示における表示結果として「左」、「中」、「右」の各可変表示部にて導出表示する確定飾り図柄に決定する。
これらの処理を実行することにより確定飾り図柄を決定した後、演出表示制御設定処理では、可変表示開始コマンドにより指定された可変表示パターンに対応する図柄表示制御パターンを決定し、その図柄表示制御パターンに対応した描画コマンドをVDPに送出するなどして、飾り図柄の可変表示を開始するための設定を行う。このときには、図柄表示制御パターンに対応して飾り図柄の可変表示時間を計測するためのタイマ設定なども行われる。この後、演出制御プロセスフラグの値を“2”に更新して、演出表示制御設定処理を終了する。
ステップS922の飾り図柄可変表示処理は、演出制御プロセスフラグの値が“2”のときに実行される。この飾り図柄可変表示処理では、例えば飾り図柄の可変表示を開始してからの経過時間に応じて図柄表示制御パターンにおける読出位置を切り替え、その読出位置から読み出された表示制御データに対応する描画コマンドをVDPに送出するなどして、画像表示装置5における表示動作の制御を行う。そして、飾り図柄の可変表示を終了するタイミングに達すると、大当り開始コマンド受信待ち時間の設定を行うとともに、演出制御プロセスフラグの値を“3”に更新する。
ステップS923の飾り図柄停止時処理は、演出制御プロセスフラグの値が“3”のときに実行される。この飾り図柄停止時処理では、主基板11から送信された大当り開始コマンドの受信があったか否かを判定する。そして、大当り開始コマンドを受信せずに大当り開始コマンド受信待ち時間が経過したときには、飾り図柄の可変表示結果がハズレであると判断して、演出制御プロセスフラグの値を“0”に更新する。また、飾り図柄停止時処理にて大当り開始コマンドを受信した旨の判定がなされたときには、飾り図柄の可変表示結果が大当りであると判断して、演出制御プロセスフラグの値を“4”に更新する。
ステップS924の大当り演出処理は、演出制御プロセスフラグの値が“4”のときに実行される。この大当り演出処理では、画像表示装置5における表示動作を制御することにより、大当り遊技状態に応じた画像を表示する制御を行う。そして、主基板11からの大当り終了コマンドを受信したか否かの判定を行い、受信した旨の判定がなされたときには、演出制御プロセスフラグの値を“5”に更新する。
ステップS925の大当り終了演出処理は、演出制御プロセスフラグの値が“5”のときに実行される。この大当り終了演出処理は、画像表示装置5にて大当り遊技状態が終了した旨を報知する演出表示などを実行するための制御を行う処理を含んでいる。その後、各種の演出表示が終了したときには、演出制御プロセスフラグの値を“0”に更新する。
図63は、図61に示すステップS907にて実行される報知処理の一例を示すフローチャートである。この報知処理を開始すると、演出制御用マイクロコンピュータ120では、まず、賞球過多または賞球不足の報知を行っているか否かを、例えばCPU123がRAM122の所定領域などに設けられた報知タイマの値をチェックすることなどにより判定する(ステップS941)。ここで、報知タイマは、賞球過多または賞球不足の報知を開始してから、その報知を終了するまでの経過時間を計測するために用いられるタイマであればよい。そして、ステップS941にて報知タイマがタイムアウトしているときには賞球過多または賞球不足の報知が行われていないと判定する一方、報知タイマがタイムアウトしていないときには賞球過多または賞球不足の報知が行われていると判定すればよい。ステップS941にて賞球過多または賞球不足の報知を行っている旨の判定がなされたときには(ステップS941;Yes)、報知タイマにおけるタイマ値を、例えば1減算するなどして更新する(ステップS942)。そして、ステップS942にて更新された報知タイマの値に基づき、賞球過多または賞球不足の報知を終了するタイミングに達したか否かを判定する(ステップS943)。このとき、報知を終了するタイミングに達していなければ(ステップS943;No)、報知処理を終了する。他方、ステップS943にて報知を終了するタイミングに達していれば(ステップS943;Yes)、例えば画像表示装置5における表示動作を初期化する設定などといった、賞球過多または賞球不足の報知を終了するための設定を行う(ステップS944)。
ステップS941にて賞球過多または賞球不足の報知を行っていない旨の判定がなされたときや(ステップS941;No)、ステップS944の処理を実行した後には、主基板11からの賞球過多コマンドを受信したか否かを判定する(ステップS945)。そして、賞球過多コマンドを受信したときには(ステップS945;Yes)、図64(A)に例示するような賞球過多報知画面となる画像を画像表示装置5に表示させることにより賞球過多の報知を開始するための設定を行う(ステップS946)。このときには、報知タイマに、賞球過多の報知に対応した報知時間を示すタイマ初期値を設定する(ステップS947)。
また、ステップS945にて賞球過多コマンドを受信していないときには(ステップS945;No)、主基板11からの賞球不足コマンドを受信したか否かを判定する(ステップS948)。そして、賞球不足コマンドを受信したときには(ステップS948;Yes)、図64(B)に例示するような賞球不足報知画面となる画像を画像表示装置5に表示させることにより賞球不足の報知を開始するための設定を行う(ステップS949)。このときには、報知タイマに、賞球不足の報知に対応した報知時間を示すタイマ初期値を設定する(ステップS950)。ステップS948にて賞球不足コマンドを受信していないときには(ステップS948;No)、満タンの報知を行っているか否かを、例えばCPU123が所定の満タン報知中フラグをチェックすることなどにより、判定する(ステップS951)。このとき、満タンの報知を行っていれば(ステップS951;Yes)、主基板11からの満タン報知終了コマンドを受信したか否かを判定する(ステップS952)。そして、満タン報知終了コマンドを受信していなければ(ステップS952;No)、報知処理を終了する。他方、ステップS952にて満タン報知終了コマンドを受信したときには(ステップS952;Yes)、例えば画像表示装置5における表示動作を初期化する設定などといった、下皿33が満タンである旨の報知を終了させるための設定を行う(ステップS953)。
ステップS951にて満タンの報知を行っていない旨の判定がなされたときや(ステップS951;No)、ステップS953の処理を実行した後には、主基板11からの満タン報知開始コマンドを受信したか否かを判定する(ステップS954)。このとき、満タン報知開始コマンドを受信していなければ(ステップS954;No)、報知処理を終了する。他方、満タン報知開始コマンドを受信したときには(ステップS954;Yes)、図64(C)に例示するような満タン報知画面となる画像を画像表示装置5に表示させるための設定を行う(ステップS955)。
次に、遊技制御用マイクロコンピュータ100が備える乱数回路103の具体的な動作例について説明する。図65は、乱数回路103の動作を説明するためのタイミングチャートである。乱数回路103に設けられたクロック信号出力回路171のクロック入力端子やタイマ回路179のクロック入力端子には、図65(A)に示すような内部システムクロックCLKが入力される。内部システムクロックCLKは、遊技制御用マイクロコンピュータ100が備えるクロック回路101にて生成されたものであればよい。図65(A)に示すように、内部システムクロックCLKは、タイミングT11、T21、…においてローレベルからハイレベルに立上がるクロック信号である。
クロック信号出力回路171は、内部システムクロックCLKを分周して、例えばタイミングT11、T12、…においてローレベルからハイレベルに立上がり、タイミングT21、T22、…においてハイレベルからローレベルに立下がる、図65(B)に示すクロック信号S1を生成する。なお、図65に示す動作例では、説明のために、クロック信号出力回路171が内部システムクロックCLKを2分周してクロック信号S1を生成する場合を示している。しかしながら、実際には、16ビット乱数を更新する周期として、内部システムクロックCLKの周期と内部システムクロックCLKの16倍の周期のいずれかを設定することとしている。したがって、クロック信号出力回路171は、内部システムクロックCLKをそのままクロック信号S1として出力する場合と、内部システムクロックCLKを16分周した信号をクロック信号S1として出力する場合とを、切り替えることができればよい。クロック信号出力回路171から出力されたクロック信号S1は、16ビット乱数の生成用に設けられた乱数生成回路173Bと反転回路178とに入力される。
乱数生成回路173Bは、そのクロック入力端子に入力されるクロック信号S1の立上がりエッジに応答して数値データC2を更新し、その数値データC2を乱数列変更回路176Bに出力する。反転回路178は、クロック信号出力回路171から出力されたクロック信号S1の信号レベルを反転させることにより、例えばタイミングT11、T12、…においてハイレベルからローレベルに立下がり、タイミングT21、T22、…においてローレベルからハイレベルに立上がる、図65(C)に示すような反転クロック信号S2を生成する。反転回路178によって生成された反転クロック信号S2は、反転回路178から出力されてラッチ信号生成回路180に入力される。
図65(D)に示す始動入賞信号SSがタイマ回路179に入力されたときには、その立上がりエッジからの経過時間が所定時間(例えば3ミリ秒)に達すると、タイマ回路179からの出力信号がローレベルからハイレベルに立上がる。このタイマ回路179からの出力信号は、ラッチ信号生成回路180に入力され、反転クロック信号S2の立上がりエッジと同期して、図65(E)に示すようなラッチ信号SLとして出力される。これにより、乱数生成回路173BはタイミングT11、T12、…において数値データC1を更新する一方、ラッチ信号生成回路180はタイミングT11、T12、…とは異なるタイミングT22において立上がるラッチ信号SLを出力することができる。ここで、乱数列変更回路176Bが乱数生成回路173Bから出力された数値データC2の並びを変更する動作と、最大値比較回路177Bが乱数列変更回路176Bから出力された乱数値となる数値データR2を所定の最大値と比較して最大値以下の値となるまで再設定を繰り返す動作とを、内部システムクロックCLKの周期に比べて十分に短い期間内に行うことで、最大値比較回路177Bから乱数値レジスタ181Bには、クロック信号S1の立上がりエッジから十分に短い経過時間内に、更新後の乱数値となる数値データR2が出力されることになる。そして、ラッチ信号SLが反転クロック信号S2と同期してローレベルからハイレベルに立上がることで、更新後の乱数値となる数値データR2の取得を確実かつ安定的に行うことが可能になる。
以上説明したように、上記実施の形態におけるパチンコ遊技機1では、パチンコ遊技機1への電力供給が開始されたときに、例えば図27に示すステップS21で遊技制御用マイクロコンピュータ100が備えるCPU104によってROM105に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し、その読出値に基づいてステップS22の処理を実行して乱数回路103に乱数を発生させるための設定を行う。その後、CPU104がステップS25の処理を実行することなどによって、遊技制御用マイクロコンピュータ100が割込許可状態に設定される。そして、ステップS22にて実行される処理としては、図29に示すような12ビット乱数初期設定処理や図30に示す16ビット乱数初期設定処理がある。図29に示す12ビット乱数初期設定処理では、CPU104がステップS101でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第7ビット[ビット7]を読出し、その読出値が“1”であるときに、ステップS104の処理を実行することにより乱数回路103において12ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する。また、図30に示す16ビット乱数初期設定処理では、CPU104がステップS123でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第4ビット[ビット4]を読出し、その読出値が“1”であるときに、ステップS126の処理を実行することにより乱数回路103において16ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する。これにより、電力供給が開始された後に更新が開始される乱数の初期値を複数のパチンコ遊技機1でそれぞれ異ならせることができ、このようにして生成される乱数値を用いて特別図柄表示装置4による特図ゲームなどにおける可変表示結果を大当りとするか否かの判定を行うことで、乱数のランダム性を高めて不正に大当りが発生させられてしまうことを防止できる。
図48に示すステップS608では、払出数指定コマンドによって指定された賞球の払出数が賞球未払出カウンタの値に加算され、図54に示すステップS814では、ステップS805における減算処理により得られた減算値が賞球未払出カウンタにセットされることで、賞球未払出カウンタには賞球として払い出すべき遊技球の個数となる未払出数が記憶される。他方、図54に示すステップS806では、ステップS805における減算処理により得られた減算値が払出モータ回転カウンタにセットされ、図56に示すステップS844では、ステップS843における減算処理により得られた減算値が払出モータ回転カウンタにセットされることで、賞球未払出カウンタに未払出数が記憶されたことに対応して払出モータ51の駆動量となる払出動作量が払出モータ回転カウンタに記憶される。そして、払出モータ回転カウンタの値は図55に示すステップS829の処理が実行されるごとに1減算されて、ステップS825にて払出モータ回転カウンタの値が「0」である旨の判定がなされるまでは、ステップS828の処理で遊技球を1個分払い出すための設定が行われることから、払出モータ51により賞球となる遊技球の払出を開始させた後には、ステップS825にて払出モータ回転カウンタの値が「0」である旨の判定がなされるまで、連続して払出モータ51に遊技球の払出動作を実行させる連続払出が行われることになる。ここで、図56に示すステップS842にて賞球未払出カウンタの値が増加した旨の判定がなされたときには、ステップS843の減算処理を実行することにより特定された未払出数における増加分を、ステップS844にて払出モータ回転カウンタの値に加算することで、払出モータ51による払出動作の実行中に受信した払出数指定コマンドで示された遊技球の払出数に対応した払出モータ51の駆動量を払出モータ回転カウンタの値に加算するように設定して、その後にステップS825にて払出モータ回転カウンタの値が「0」である旨の判定がなされるまで、連続して払出モータ51に遊技球の払出動作を実行させる。これにより、払出モータ51による払出動作の実行中に受信した払出数指定コマンドで示された遊技球の払出数も含めて賞球の連続した払出動作が可能となり、賞球となる遊技球を迅速に払い出すことができる。
図55に示すステップS825にて払出モータ回転カウンタの値が「0」である旨の判定がなされたときには、ステップS826での設定により、払出モータ51による払出動作が停止される。その一方で、賞球未払出カウンタの値は、払出個数カウンタの値に基づき、図54に示すステップS804の処理が実行されたときにクリアされたり、ステップS814の処理が実行されたときにステップS805で得られた減算値に更新されたりする。このときには、払出モータ51による払出動作が停止していることから、賞球となる遊技球が過剰に払い出されることを防止できる。そして、ステップS806の処理では、ステップS805にて賞球未払出カウンタの値から払出個数カウンタの値を減算して得られた減算値がセットされることから、未払出の賞球があるときには払出モータ51による払出動作を再開させることができ、賞球の払出数が不足することも防止できる。このようにして、賞球の払出制御における確実性を向上させることができる。
図56に示すステップS841では、賞球未払出カウンタの値と前回未払出カウンタの値とを比較し、その比較結果に基づいて、ステップS842では賞球未払出カウンタの値が増加したか否かの判定を行う。ここで、前回未払出カウンタの値は、例えば図54に示すステップS806の処理に続いてステップS815の処理が実行されたときや、図56に示すステップS844の処理に続いてステップS845の処理が実行されたときのように、払出モータ回転カウンタに払出モータ51の駆動量を示すカウント値が記憶されたときに、賞球未払出カウンタの値と同一の値となるように設定される。そして、図56に示すステップS842にて賞球未払出カウンタの値が増加した旨の判定がなされたときには、ステップS843にて賞球未払出カウンタの値から前回未払出カウンタの値を減算することにより、賞球未払出カウンタの値における増加分を特定する。このように、賞球未払出カウンタとは別に前回未払出カウンタを設けるだけで、払出モータ51による払出動作の実行中に賞球未払出カウンタの値が増加したか否かの判定や、賞球未払出カウンタの値が増加した場合における増加分の特定が可能となり、簡単な構成と単純な動作で賞球となる遊技球の未払出数における増加分を確実に特定することができる。
図55に示すステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達した旨の判定がなされることにより、賞球となる遊技球の払出が完了したときには、ステップS837にて前回未払出カウンタの値がクリアされる。これにより、図56に示すステップS842の判定処理を実行するときや、ステップS843の減算処理を実行するときに、前回未払出カウンタに不適切な過去の数値が記憶されていることがないようにして、賞球となる遊技球の払出における誤動作を確実に防止することができる。
主基板11に搭載された遊技制御用マイクロコンピュータ100では、例えばCPU104が図32に示すステップS201、S202の処理を実行し、タッチセンサ75からのタッチセンサ検出信号がオン状態であり、かつ、満タンスイッチ26からの検出信号がオフ状態であるときに、図32に示すステップS206、S207や図33に示すステップS222、S225の処理を実行可能とすることで、発射装置19による遊技球の発射や球送り装置62による発射装置19への遊技球の供給を可能にする。このような構成により、遊技者等が操作ノブ30に接触していること、及び、下皿33が満タン状態ではないことを条件に、遊技球の発射を許可する許可信号を出力することができる。他方、遊技者等が操作ノブ30に接触していないときや、下皿33が満タン状態であるときには、遊技球の発射が許可されないので、例えば操作ノブ30の回転部と支持部との隙間にコイン等の異物を挿入させて操作ノブ30を固定することで操作ノブ30を遊技者自身が操作せずに遊技球を発射させるといった不正行為により遊技球が発射されることや、遊技球が下皿33の許容量を超えて払い出されてしまうことを防止できる。
球送り装置62は、主基板11からの供給許可信号がオン状態であるときに駆動されて、上皿32に貯留された遊技球を発射装置19に供給する。そして、主基板11に搭載された遊技制御用マイクロコンピュータ100では、例えばCPU104が図33に示すステップS225の処理を実行することで、球送り装置62に対してオン状態の供給許可信号を出力させる。これにより、発射装置19に遊技球を供給する球送り装置62の制御により遊技球の発射を停止させることができ、発射装置19の駆動を制御する場合に比べて遊技制御用マイクロコンピュータ100における制御負担を軽減することができる。
また、図41に示すステップS308にて満タンスイッチ26からの検出信号がオン状態であるときに、ステップS309にて満タン報知中フラグがオフであると判定すれば、ステップS310での設定により満タン報知開始コマンドを演出制御基板12に対して送信させる。そして、演出制御用マイクロコンピュータ120は、図63に示すステップS954にて主基板11からの満タン報知開始コマンドを受信したと判定したときに、ステップS955での設定により図64(C)に例示するような満タン報知画面となる画像を画像表示装置5に表示させることで、下皿33が満タン状態であることを報知させる。これにより、下皿33における遊技球の貯留量が所定量に達したことをパチンコ遊技機1の外部で容易に認識できるようになる。
遊技制御用マイクロコンピュータ100に設けられた乱数回路103は、例えば12ビット乱数と16ビット乱数などのように、数値データの更新範囲が異なる乱数を生成するための回路を複数内蔵するように構成されている。そして、遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図27に示すステップS21でROM105に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し、その読出値に基づくステップS22での処理として、図29に示す12ビット乱数初期設定処理や図30に示す16ビット乱数初期設定処理を実行可能にする。そして、図29に示す12ビット乱数初期設定処理が実行されることにより乱数回路103での12ビット乱数の生成が可能になり、図30に示す16ビット乱数初期設定処理が実行されることにより乱数回路103での16ビット乱数の生成が可能になる。他方、ステップS22での処理として12ビット乱数初期設定処理が実行されないときには、乱数回路103における12ビット乱数についての生成動作を停止させる処理を実行し、ステップS22での処理として16ビット乱数初期設定処理が実行されないときには、乱数回路103における16ビット乱数についての生成動作を停止させる処理を実行することで、使用すると設定された乱数とは異なる更新範囲の乱数を生成する回路の機能を停止させることができる。これにより、例えば特別図柄表示装置4による特図ゲームでの可変表示結果を大当りとするか否かの判定などのように、各種の判定に応じて用いる乱数に対応した回路の設定を行い、判定に要する処理負担を軽減することができる。
遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図29に示すステップS107でROM105に記憶されている12ビット乱数最大値(KRMS)を読出し、その読出値をステップS108にて乱数回路103が備える最大値比較回路177Aに設定した後、その読出値が12ビット乱数用の最大値として設定可能な範囲内であるか否かを、ステップS109にて判定する。そして、ステップS109にて設定可能な範囲内ではない旨の判定がなされたときには、ステップS110にて12ビット乱数用の最大値として設定可能な範囲内の所定値を再設定する。また、例えばCPU104が図30に示すステップS129でROM105に記憶されている16ビット乱数最大値(KRXS)を読出し、その読出値をステップS130にて乱数回路103が備える最大値比較回路177Bに設定した後、その読出値が16ビット乱数用の最大値として設定可能な範囲内であるか否かを、ステップS131にて判定する。そして、ステップS131にて設定可能な範囲内ではない旨の判定がなされたときに、ステップS132にて16ビット乱数用の最大値として設定可能な範囲内の所定値を再設定する。
こうした12ビット乱数用や16ビット乱数用の最大値を所定範囲内で任意に設定できるようにすることで、乱数値の使用範囲を詳細に設定可能となり、判定に要する処理負担を軽減することができる。具体的な一例として、1/400(400分の1)の確率で所定の判定値データと合致する乱数値を生成する場合に、乱数値の使用範囲が「1」から「4000」までに固定されている場合には、判定値データとして「1」から「4000」までに含まれる10個の数値を示すデータを予め用意して、抽出した乱数値が10個の数値のいずれかと合致するか否かの判定を実行(最大で10回の判定を実行)する必要がある。これに対して、乱数値の使用範囲を「1」から「400」までに設定できれば、判定値データとして1個の数値を示すデータを予め用意して、抽出した乱数値が当該1個の数値と合致するか否かの判定を1回実行するだけでよい。また、誤動作や不正により極端に狭い範囲で乱数が更新されることも防止できる。
乱数回路103では、例えば12ビット乱数用に設けられた乱数生成回路173Aが、乱数値レジスタ181Aからの格納値更新信号KTがローレベルからハイレベルに立上がったことに応答して、数値データC1を更新する。その一方で、16ビット乱数用に設けられた乱数生成回路173Bが、クロック信号出力回路171からのクロック信号S1がローレベルからハイレベルに立上がったことに応答して、数値データC2を更新する。そして、クロック信号出力回路171から出力されるクロック信号S1の周期を、ROM105に記憶されている第1乱数初期設定データ(KRSS1)の第2ビット[ビット2]における設定に応じて、内部システムクロックCLKの周期と、内部システムクロックCLKの16倍の周期のいずれかに設定することで、乱数生成回路173Bが数値データC2を更新する周期を複数種類の周期のいずれかに設定することができる。このように、乱数回路103では、12ビット乱数を生成するために用いられる数値データC1や16ビット乱数を生成するために用いられる数値データC2を、複数の更新方式のいずれかにより更新することができる。遊技制御用マイクロコンピュータ100では、例えばCPU104が図30に示すステップS121にてROM105に記憶されている第1乱数初期設定データ(KRSS1)の第2ビット[ビット2]を読出し、その読出値に基づいて乱数回路103に設けられたクロック信号出力回路171における動作設定を、ステップS122にて行う。これにより、乱数値の更新方式を異ならせて乱数のランダム性を高めることができる。
図29に示すステップS104の処理や、図30に示すステップS126の処理では、例えば遊技制御用マイクロコンピュータ100ごとに付与された固有のIDナンバーに所定のスクランブル処理を施す演算や、そのIDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を12ビット乱数や16ビット乱数を生成するためのスタート値に設定することができる。これにより、電力供給が開始された後に更新が開始される乱数の初期値を複数のパチンコ遊技機1でそれぞれ異ならせることができ、このようにして生成される乱数値を用いて特別図柄表示装置4による特図ゲームなどにおける可変表示結果を大当りとするか否かの判定を行うことで、乱数のランダム性を高めて不正に大当りが発生させられてしまうことを防止できる。また、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報からスタート値を特定することが困難になるので、不正に大当りが発生させられてしまうことを、より確実に防止することができる。
始動口スイッチ22は、遊技球が始動入賞口に入賞したことを検出し、特別図柄表示装置4による特図ゲームを実行するための始動条件が成立したことを示す始動入賞信号を出力する。そして、乱数回路103では、始動口スイッチ22から出力された始動入賞信号がタイマ回路179に入力され、タイマ回路179からの出力信号がラッチ信号生成回路180に入力されることにより、始動入賞信号が出力されたことに応じてラッチ信号SLを出力することができる。そして、タイマ回路179では、始動入賞信号SSの入力時間を計測し、計測した時間が予め設定された時間(3ミリ秒)になったとき、出力信号をローレベルからハイレベルに立上げる。ラッチ信号生成回路180では、反転回路178から出力される反転クロック信号S2に同期してタイマ回路179からの出力信号をラッチ信号SLとして出力する。このため、パチンコ遊技機1は、ラッチ信号生成回路180がノイズの影響等により誤って乱数値レジスタ181Bにラッチ信号SLを出力することを防止することができる。また、タイマ回路179には、2回のタイマ割込処理の実行期間「4ミリ秒」よりも短い「3ミリ秒」が設定されているため、CPU104が乱数値レジスタ181Bから今回読出した乱数値が前回読出した乱数値と同じ値になることを防止することができる。
遊技制御用マイクロコンピュータ100では、例えばCPU104が図29に示すステップS111でROM105に記憶されている第1乱数初期設定データ(KRSS1)の第1及び第0ビット[ビット1−0]を読出し、その読出値に基づいてステップS112の処理を実行して12ビット乱数における2周目以降のスタート値に関する設定を行う。そして、図34に示すステップS242で設定を読出し、その読出値に基づいてステップS244、S248、S251の処理のいずれかを実行したときに、乱数回路103にて12ビット乱数を生成するために用いられる数値データC1におけるスタート値を変更する設定を行う。また、例えばCPU104が図30に示すステップS133でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第3及び第2ビット[ビット3−2]を読出し、その読出値に基づいてステップS134の処理を実行して16ビット乱数における2周目以降のスタート値に関する設定を行う。そして、図35に示すステップS254で設定を読出し、その読出値に基づいてステップS256、S260、S263の処理のいずれかを実行したときに、乱数回路103にて16ビット乱数を生成するために用いられる数値データC2におけるスタート値を変更する設定を行う。乱数回路103では、12ビット乱数用に設けられた乱数生成回路173Aが所定の最終値まで数値データを更新したときには乱数一巡信号RIJ1を出力する一方、16ビット乱数用に設けられた乱数生成回路173Bが所定の最終値まで数値データを更新したときには乱数一巡信号RIJ2を出力する。そして、乱数生成回路173Aが乱数一巡信号RIJ1を出力したときには、例えば初期値設定回路172AがCPU104によって設定されたスタート値を乱数生成回路173Aに設定する一方、乱数生成回路173Bが乱数一巡信号RIJ2を出力したときには、例えば初期値設定回路172BがCPU104によって設定されたスタート値を乱数生成回路173Bに設定することで、12ビット乱数や16ビット乱数を生成するためのスタート値を変更することができる。これにより、所定の初期値から所定の最終値まで数値データC1や数値データC2が更新されたときに、次の周期における初期値となるスタート値を変更して、乱数のランダム性を高めることができる。
遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図29に示すステップS105でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第6及び第5ビット[ビット6−5]を読出し、その読出値に基づいてステップS106の処理を実行することで12ビット乱数用のセレクタとして乱数回路103に設けられたセレクタ174Aにおける選択動作の設定を行う。これにより、乱数列変更回路176Aが12ビット乱数用の数値データR1を更新する際の更新順である順列を、2周目以降において自動的に変更する第1の方式や、2周目以降においてユーザプログラムにより変更可能とする第2の方式により、変更させることができる。あるいは、2周目以降においては変更させない第3の方式とすることもできる。また、例えばCPU104が図30に示すステップS127でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第1及び第0ビット[ビット1−0]を読出し、その読出値に基づいてステップS128の処理を実行することで16ビット乱数用のセレクタとして乱数回路103に設けられたセレクタ174Bにおける選択動作の設定を行う。これにより、乱数列変更回路176Bが16ビット乱数用の数値データR2を更新する際の更新順である順列を、2周目以降において自動的に変更する第1の方式や、2周目以降においてユーザプログラムにより変更可能とする第2の方式により、変更させることができる。あるいは、2周目以降においては変更させない第3の方式とすることもできる。そして、2周目以降においてユーザプログラムにより変更可能とする第2の方式に設定したときには、例えばCPU104が図36に示すステップS274にてARSC175Aの第0ビット[ビット0]に“1”を設定したり、図36に示すステップS279にてBRSC175Bの第0ビット[ビット0]に“1”を設定したりすることで、数値順列変更データを設定する。乱数回路103では、例えばセレクタ174Aによって第2の方式が選択されているときには、ARSC175Aに設定された数値順列変更データが乱数列変更回路176Aによって読み出され、乱数生成回路173Aから出力された数値データ列C1の値が所定の最終値に達したことに応じて、数値データC1の順列を定める更新規則を変更する。また、例えばセレクタ174Bによって第2の方式が選択されているときには、BRSC175Bに設定された数値順列変更データが乱数列変更回路176Bによって読み出され、乱数生成回路173Bから出力された数値データ列C2の値が所定の最終値に達したことに応じて、数値データC2の順列を定める更新規則を変更する。これにより、所定の初期値から所定の最終値まで数値データC1や数値データC2が更新されたときに、順列を様々に変更して乱数のランダム性を高めることができる。
また、電力供給が開始されたときに、遊技制御用マイクロコンピュータ100が図27に示すステップS7にてクリア信号がオン状態となっているか否かを判定した後に、ステップS9での設定に基づき、ステップS10、S11にて所定の遅延時間が経過するまで待機してから、遊技の進行を制御するための遊技制御処理の実行を可能にする。そして、ここでの遅延時間は、遊技制御処理が実行可能な状態となったときから、少なくとも払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されるまでは遅延させるように設定されている。このようにステップS7での判定処理を実行してからステップS10、S11にて所定の遅延時間が経過するまで待機することで、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150において、クリアスイッチ304からの検出信号がオン状態となっているか否かを判定するタイミングに差違が生じないため、電源基板10に搭載されたクリアスイッチ304に対する操作に応じて遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150とが確実に初期化時における設定を行うための初期化処理を実行することができ、制御状態の整合がとれなくなることを防止できる。加えて、パチンコ遊技機1への電力供給を開始するときに、所定の遅延時間が経過するまでクリアスイッチ304を操作し続けなくても、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150の双方にて確実に初期化処理を実行させることができる。また、払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されてから遊技制御用マイクロコンピュータ100による遊技制御処理の実行が開始されるので、払出制御用マイクロコンピュータ150は遊技制御用マイクロコンピュータ100からの払出制御コマンドを確実に受信することができる。
加えて、演出制御基板12に搭載された演出制御用マイクロコンピュータ120は、払出制御用マイクロコンピュータ150と同様に、パチンコ遊技機1への電力供給が開始されたときに遅延処理を実行しない。そのため、遊技制御処理は演出制御用マイクロコンピュータ120による制御が開始された後に開始されることになる。したがって、主基板11から演出制御基板12に対して演出制御コマンドを送信する際に、演出制御用マイクロコンピュータ120は確実にコマンドを受信して、受信したコマンドに基づく報知処理などを実行することができる。
さらに、遊技制御用マイクロコンピュータ100では、例えばCPU104がステップS9での設定に基づく遅延処理を実行するより前のステップS7にてクリア信号の状態を確認しているので、払出制御用マイクロコンピュータ150との制御状態の整合がとれなくなる可能性を低減することができる。
遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図27に示すステップS7にてクリア信号がオン状態となっているか否かを判定するより前に実行するステップS5の処理にて、電源基板10に搭載された電源監視回路303から出力される電源断信号がオフ状態となったか否かの判定を行う。そして、電源断信号がオフ状態となってから、ステップS7にてクリア信号がオン状態となっているか否かの判定を行うようにしている。また、払出制御用マイクロコンピュータ150も、パチンコ遊技機1への電力供給が開始されたときには、例えば図46に示すステップS508にてクリア信号がオン状態となっているか否かを判定するより前に実行するステップS505の処理にて、電源基板10からの電源断信号がオフ状態となったか否かを判定し、オフ状態となってからステップS508の処理に進むようにしている。このように、電源基板10から供給される電源電圧の安定が確認されてからクリア信号の状態をチェックすることで、クリア信号の出力状態(オン状態であるかオフ状態であるか)を確実に特定することができ、例えばクリア信号がオフ状態となっているにもかかわらずオン状態であると検出したり、クリア信号がオン状態となっているにもかかわらずオフ状態であると検出したりするといった、誤検出を防止することができる。
図6に示したように、電源監視回路303は電源基板10に搭載されている。そして、電源監視回路303から出力された電源断信号は、払出制御基板15に入力された後、払出制御基板15から主基板11へと伝送することで、電源基板10から払出制御基板15及び主基板11の双方に電源断信号を伝送するための配線を接続する場合に比べて配線構成を簡略化でき、パチンコ遊技機1のコストを低減させることができる。また、電源基板10と払出制御基板15を遊技機用枠3に設置する一方で、主基板11は遊技盤2に設置することで、電源基板10からの電源断信号を伝送するための配線構成を簡略化でき、配線長が短くなってノイズの影響を受けにくくすることができる。
遊技制御用マイクロコンピュータ100では、例えばCPU104が図39に示すステップS421にて賞球ACK受信フラグがオンである旨の判定をしたときにステップS425にてコマンド送信回数カウンタの値を1加算する一方で図41に示すステップS301にて全入賞球検出スイッチ29からの検出信号がオン状態である旨の判定をしたときにステップS302にてコマンド送信回数カウンタの値を1減算することで、コマンド送信回数カウンタの値により、第1〜第3払出数指定コマンドのいずれかを送信した回数と、全入賞球検出スイッチ29からの検出信号に応じて検出された遊技球の個数との差を入賞個数差として特定する。そして、図41に示すステップS303の処理を実行して入賞個数差が異常判定値の1つである賞球過多基準値に達したと判定したときには、ステップS304の処理を実行して賞球過多報知コマンドを演出制御基板12に対して送信させる。また、図41に示すステップS305の処理を実行して入賞個数差が異常判定値の1つである賞球不足基準値に達したと判定したときには、ステップS306の処理を実行して賞球不足報知コマンドを演出制御基板12に対して送信させる。演出制御基板12の側では、図63に示すステップS945の処理を実行して賞球過多報知コマンドを受信した旨の判定をしたときにはステップS946の処理を実行して賞球過多が発生した旨の報知を行う。また、図63に示すステップS948の処理を実行して賞球不足報知コマンドを受信した旨の判定をしたときにはステップS949の処理を実行して賞球不足が発生した旨の報知を行う。これにより、賞球として払い出される遊技球の個数を直接カウントすることなく、賞球として払い出される遊技球の個数に異常が生じたことを検出できる。また、入賞口に入賞した遊技球の個数は、賞球として払い出される遊技球の個数に比べて少ないことから、データの記憶量を少なくすることができる。さらに、1つのコマンド送信回数カウンタにおけるカウント値を更新するだけで払出数指定コマンドの送信回数と全入賞球検出スイッチ29によって検出された遊技球の個数との差を入賞個数差として特定することができるから、制御負担の増大を抑制して、賞球として払い出される遊技球の個数に異常が発生したか否かを判定することができる。加えて、1つのコマンド送信回数カウンタにおけるカウント値を記憶するだけでよいことから、複数のカウンタにおけるカウント値を用いる場合に比べて、データの記憶量を少なくすることができる。
遊技制御用マイクロコンピュータ100がシリアル通信回路108を備えるとともに払出制御用マイクロコンピュータ150がシリアル通信回路218を備え、双方向のシリアル通信を行うことができる。そして、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150との間では、例えば図10(A)に示すように2バイト構成の1バイト目を反転させて2バイト目とした払出制御コマンドや払出通知コマンドを生成して送受信する。そして、遊技制御用マイクロコンピュータ100では、例えばCPU104が図42に示すステップS335にて受信コマンドの1バイト目と2バイト目との排他的論理和を演算することにより、払出制御用マイクロコンピュータ150を搭載した払出制御基板15から送信された払出通知コマンドを正しく受信できたか否かの判定を行う。他方、払出制御用マイクロコンピュータ150では、例えばCPU214が図48に示すステップS605にて受信コマンドの1バイト目と2バイト目との排他的論理和を演算することにより、遊技制御用マイクロコンピュータ100を搭載した主基板11から送信された払出制御コマンドを正しく受信できたか否かの判定を行う。これにより、主基板11と払出制御基板15との間で送受信されるコマンドの管理が容易かつ確実になり、コマンド送受信中における誤りの発生を容易かつ確実に検出して誤ったコマンドを受信する可能性を低減することができ、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150との整合をとりやすくなる。
図6に示したように、クリアスイッチ304は電源基板10に搭載されている。そして、クリアスイッチ304から出力されたクリア信号は、主基板11に入力された後、主基板11から払出制御基板15へと伝送することで、電源基板10から主基板11及び払出制御基板15の双方にクリア信号を伝送するための配線を接続する場合に比べて配線構成を簡略化でき、パチンコ遊技機1のコストを低減させることができるとともに、配線長が短くなってノイズの影響を受けにくくすることができる。
乱数回路103では、例えば乱数生成回路173Bがクロック信号出力回路171から入力されるクロック信号S1の入力に基づいて、数値データC2を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序(例えば「1→2→…→65535」の順序)に従って循環的に更新する。これに対して、ラッチ信号生成回路180は、始動入賞信号SSの入力に応じたタイマ回路179からの出力信号を、反転回路178により出力された反転クロック信号S2に同期して、ラッチ信号SLとして出力する。これにより、乱数値の取得を確実かつ安定的に行うことができる。
また、例えばオーバーランエラーやノイズエラー、フレーミングエラー、パリティエラーなどといった、シリアル通信回路108でのエラー発生に対応するエラー割込み要求がCPU104に通知されたときには、例えばCPU104がシリアル通信エラー割込み処理として予め定められた処理を実行して、シリアル通信回路108に設けられた送信動作部と受信動作部を未使用状態に設定する。加えて、ROM105に記憶された最優先割込み設定(KHPR)が「06h」、「07h」以外の値であれば、図20(A)及び(B)などに示すように、シリアル通信回路108により複数種類の割込み要求が同時に発生したときには、エラー割込み要求が、受信割込み要求や送信割込み要求といった他の割込み要求よりも優先してCPU104に通知されることになる。これにより、シリアル通信回路108でのエラー発生時にはシリアル通信動作を直ちに停止させて、シリアル通信での異常発生により誤った情報が伝送されることを防止できる。
パチンコ遊技機1への電力供給が開始されたときに、例えば遊技制御用マイクロコンピュータ100が備えるCPU104によって図27に示すステップS24にて割込み初期設定処理を実行することで、ROM105に記憶されている最優先割込み設定(KHPR)を読出し、その読出値に基づいて最優先割込みを設定する。この処理を実行することで、割込み処理の優先順位を図20(B)に示すデフォルト時の設定から変更することができる。その後、例えばCPU104が図27に示すステップS25の処理を実行することなどによって、遊技制御用マイクロコンピュータ100が割込許可状態に設定される。また、払出制御用マイクロコンピュータ150でも、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU214が図44に示すステップS519にてステップS24と同様の処理を実行することで、ROM215に記憶されている最優先割込み設定(KHPR)を読出し、その読出値に基づいて最優先割込みを設定することによって、割込み処理の優先順位を図20(B)に示すデフォルト時の設定から変更することができる。その後、図46に示すステップS520の処理を実行することなどによって、払出制御用マイクロコンピュータ150が割込許可状態に設定される。これにより、割込み処理の実行が許可された後に、変更された優先順位に従って確実に割込み処理を実行することができる。また、割込み処理の実行が許可される以前に割込み処理の優先順位を初期設定から変更することで、各種の割込みが発生するごとに割込み処理を所定の優先順位に従って実行させるように制御するプログラムを実行する必要がなくなるので、設計の自由度を増大させることができる。
ステップS24、S519にて割込み初期設定処理を実行することによる最優先割込みの設定では、例えば図20(A)に示すような最優先割込み設定データに対応して、タイマ割込み要求に基づく割込み処理と、シリアル通信回路108、218から通知される割込み要求に基づく割込み処理との優先順位を設定することができる。これにより、割込み処理の実行が許可された後、設定された優先順位に従って確実に割込み処理を実行することができる。また、割込み処理の実行が許可される以前に割込み処理の優先順位を任意に設定可能とすることで、各種の割込みが発生するごとに割込み処理を所定の優先順位に従って実行させるように制御するプログラムを実行する必要がなく、また、予め定めた任意の割込み処理を優先的に実行させることができるので、設計の自由度を増大させることができる。
払出制御用マイクロコンピュータ150では、例えばCPU214が図49に示すステップS634での設定により賞球ACKコマンドを主基板11に対して送信させた後、ステップS643にてフィードバック待機時間が経過したと判定したときには、ステップS644にて主基板通信エラーフラグをオン状態にセットする。こうして主基板通信エラーフラグがオンとなったときには、図52に示すステップS721の処理が実行されることにより、ステップS722以降の処理が実行されずに払出制御通常処理が終了し、また、図54に示すステップS801の処理が実行されることにより、ステップS802以降の処理が実行されずに賞球払出回数算出処理が終了する。そのため、主基板11からのACKフィードバックコマンドを受信していない旨の判定がなされたときには、賞球未払出カウンタの値が「0」以外の値となって未払出の賞球となる遊技球があることを示していても払出制御を停止する状態に制御されることになる。これにより、確実な払出制御を実行して、例えば通信エラーや通信線に対する不正行為などによる異常が発生したときに、賞球となる遊技球を過剰に払い出してしまうことを防止できる。
また、払出制御用マイクロコンピュータ150では、例えばCPU124が図49に示すステップS644にて主基板通信エラーフラグをオン状態にセットしたときには、図48に示すステップS601の処理が実行されることにより、ステップS602以降の処理が実行されずに払出側受信処理が終了する。そのため、主基板11からのACKフィードバックコマンドを受信していない旨の判定がなされたときには、主基板11から送信される払出数指定コマンドの受信を停止する状態に制御されることになる。これにより、確実な払出制御を実行して、例えば通信エラーや通信線に対する不正行為などによる異常が発生したときに、賞球となる遊技球を過剰に払い出してしまうことを防止できる。
図47に示すステップS538の払出側エラー解除処理では、エラー解除スイッチ73からの検出信号がオン状態となったか否かを判定し、オン状態であると判定したときには、各種のエラーフラグをクリアしてオフ状態とすることなどにより、払出制御が禁止された状態を解除することができる。これにより、例えば遊技店員等が異常に対する点検を行った後に、点検前の制御状態を維持したまま遊技を続行させることができる。
以上に述べた実施の形態では、乱数回路103が備えるクロック信号出力回路171から出力されたクロック信号S1は、反転回路178に入力され、反転回路178によってクロック信号S1の信号レベルを反転させることで生成された反転クロック信号S2をラッチ信号生成回路180に入力することで、ラッチ信号生成回路180がタイマ回路179からの出力信号を反転クロック信号S2に同期させて、ラッチ信号SLとして出力するように構成されている。これに対して、クロック信号出力回路171から出力されたクロック信号S1を、このクロック信号S1の周期の整数倍の期間とは異なる期間だけ遅延させて生成した遅延クロック信号を、ラッチ信号生成回路180に入力するようにしてもよい。図66は、遅延クロック信号をラッチ信号生成回路180に入力する構成の一例を示すブロック図である。
図66に示す構成において、遅延回路182は、クロック信号出力回路171から出力されたクロック信号S1を、このクロック信号S1の周期の整数倍の期間とは異なる期間だけ遅延させて、遅延クロック信号S3を生成する。遅延回路182は、生成した遅延クロック信号S3をラッチ信号生成回路180に出力する。ラッチ信号生成回路180は、タイマ回路179からの出力信号を、遅延回路182から出力される遅延クロック信号S3の立上がりエッジに同期して出力することにより、ラッチ信号SLを生成する。
図67は、図66に示す構成を有する乱数回路103の動作を説明するためのタイミングチャートである。乱数回路103に設けられたクロック信号出力回路171のクロック入力端子やタイマ回路179のクロック入力端子には、図67(A)に示すような内部システムクロックCLKが入力される。内部システムクロックCLKは、遊技制御用マイクロコンピュータ100が備えるクロック回路101にて生成されたものであればよい。
クロック信号出力回路171は、内部システムクロックCLKを分周して、例えばタイミングT31、T32、…においてローレベルからハイレベルに立上がる、図67(B)に示すクロック信号S1を生成する。ここで、クロック信号出力回路171から出力されるクロック信号S1の周期をTとする。なお、図67に示す動作例では、説明のために、クロック信号出力回路171が内部システムクロックCLKを2分周してクロック信号S1を生成する場合を示している。しかしながら、実際には、16ビット乱数を更新する周期として、内部システムクロックCLKの周期と内部システムクロックCLKの16倍の周期のいずれかを設定することとしている。したがって、クロック信号出力回路171は、内部システムクロックCLKをそのままクロック信号S1として出力する場合と、内部システムクロックCLKを16分周した信号をクロック信号S1として出力する場合とを、切り替えることができればよい。クロック信号出力回路171から出力されたクロック信号S1は、16ビット乱数の生成用に設けられた乱数生成回路173Bと遅延回路182とに入力される。
乱数生成回路173Bは、そのクロック入力端子に入力されるクロック信号S1の立上がりエッジに応答して数値データC2を更新し、その数値データC2を乱数列変更回路176Bに出力する。遅延回路182は、クロック信号出力回路171から出力されたクロック信号S1をΔT(≠nT:nは整数)だけ遅延させて、例えばタイミングT41、T42、…においてローレベルからハイレベルに立上がる周期Tの、図67(C)に示す遅延クロック信号S3を生成する。遅延回路182によって生成された遅延クロック信号S3は、ラッチ信号生成回路180に出力される。
図67(D)に示す始動入賞信号SSがタイマ回路179に入力されたときには、その立上がりエッジからの経過時間が所定時間(例えば3ミリ秒)に達すると、タイマ回路179からの出力信号がローレベルからハイレベルに立上がる。このタイマ回路179からの出力信号は、ラッチ信号生成回路180に入力され、遅延クロック信号S3の立上がりエッジと同期して、図67(E)に示すようなラッチ信号SLとして出力される。これにより、乱数生成回路173BはタイミングT31、T32、…において数値データC1を更新する一方、ラッチ信号生成回路180はタイミングT31、T32、…とは異なるタイミングT43において立上がるラッチ信号SLを出力することができる。
以上のような構成によれば、乱数回路103では、例えば乱数生成回路173Bがクロック信号出力回路171から入力されるクロック信号S1の入力に基づいて、数値データC2を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序(例えば「1→2→…→65535」の順序)に従って循環的に更新する。これに対して、ラッチ信号生成回路180は、始動入賞信号SSの入力に応じたタイマ回路179からの出力信号を、遅延回路182により出力された遅延クロック信号S3に同期して、ラッチ信号SLとして出力する。これにより、乱数値の取得を確実かつ安定的に行うことができる。
この発明は上記実施の形態に限定されるものではなく、様々な変形及び応用が可能である。例えば図12に示すように構成された乱数回路103では、クロック信号出力回路171から出力されたクロック信号S1が乱数生成回路173Bと反転回路178に入力され、反転回路178がクロック信号S1の信号レベルを反転させて生成した反転クロック信号S2をラッチ信号生成回路180に入力させる。これに対して、クロック信号出力回路171から出力されたクロック信号S1をラッチ信号生成回路180と所定の反転回路に入力し、その反転回路がクロック信号S1の信号レベルを反転させて生成した反転クロック信号を乱数生成回路173Bに入力するように構成してもよい。この場合、乱数生成回路173Bは、反転回路により出力された反転クロック信号の入力に基づいて、数値データC2を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序に従って循環的に更新する。これに対して、ラッチ信号生成回路180は、始動入賞信号SSの入力に応じたタイマ回路179からの出力信号を、クロック信号出力回路171から出力されたクロック信号S1に同期して、ラッチ信号SLとして出力する。このような構成によっても、乱数値の取得を確実かつ安定的に行うことが可能になる。
また、例えば図66に示すように構成された乱数回路103では、クロック信号出力回路171から出力されたクロック信号S1が乱数生成回路173Bと遅延回路182に入力され、遅延回路182がクロック信号S1を遅延させて生成した遅延クロック信号S3をラッチ信号生成回路180に入力させる。これに対して、クロック信号出力回路171から出力されたクロック信号S1をラッチ信号生成回路180と所定の遅延回路に入力し、その遅延回路がクロック信号S1を遅延させて生成した遅延クロック信号を乱数生成回路173Bに入力するように構成してもよい。この場合、乱数生成回路173Bは、遅延回路により出力された遅延クロック信号の入力に基づいて、数値データC2を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序に従って循環的に更新する。これに対して、ラッチ信号生成回路180は、始動入賞信号SSの入力に応じたタイマ回路179からの出力信号を、クロック信号出力回路171から出力されたクロック信号S1に同期して、ラッチ信号SLとして出力する。このような構成によっても、乱数値の取得を確実かつ安定的に行うことが可能になる。
上記実施の形態では、12ビット乱数用に設けられた乱数生成回路173Aのクロック入力端子に乱数値レジスタ181Aからの格納値更新信号KTが入力され、この格納値更新信号KTがローレベルからハイレベルに立上がったことに応答して、数値データC1を更新するものとして説明した。しかしながら、この発明はこれに限定されるものではなく、例えば乱数生成回路173Aのクロック入力端子に所定周期のクロック信号を入力させることで、数値データC1を一定周期で更新させるようにしてもよい。一例として、クロック信号出力回路171から出力されたクロック信号S1を乱数生成回路173Aにも入力し、16ビット乱数用に設けられた反転回路178、タイマ回路179、ラッチ信号生成回路180と同様の構成を、12ビット乱数用にも設けるようにすればよい。また、クロック信号出力回路171とは別個に設けられたクロック信号出力回路から出力されたクロック信号を乱数生成回路173Aに入力するようにしてもよい。この場合、乱数生成回路173Aに入力されるクロック信号を生成するクロック信号出力回路は、上記実施の形態におけるクロック信号出力回路171と同様に、クロック回路101から供給される内部システムクロックCLKを入力して、この内部システムクロックCLKと同一周期を有するクロック信号、あるいは内部システムクロックCLKを16分周したクロック信号を出力できるようにしてもよい。これにより、12ビット乱数についても、例えば乱数生成回路173Aが所定のクロック信号の入力に基づいて、数値データC1を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序(例えば「1→2→…→4095」の順序)に従って循環的に更新するのに対して、12ビット乱数用に設けられたラッチ信号生成回路は、始動入賞信号SSなどの外部信号の入力に応じたタイマ回路からの出力信号を、反転回路により出力された反転クロック信号に同期して、ラッチ信号として出力することができ、12ビット乱数の取得を確実かつ安定的に行うことができる。また、この場合には、16ビット乱数用の構成と同様に、12ビット乱数用の反転回路を遅延回路に置き換えてもよいし、クロック信号出力回路と乱数生成回路173Aとの間に反転回路や遅延回路を設けるようにしてもよい。その他にも、上記実施の形態において12ビット乱数を生成するための構成が16ビット乱数を生成するための構成と同様の機能を有していてもよいし、16ビット乱数を生成するための構成が12ビット乱数を生成するための構成と同様の機能を有していてもよい。
上記実施の形態では、遊技制御用マイクロコンピュータ100がシリアル通信回路108を備えるとともに、払出制御用マイクロコンピュータ150がシリアル通信回路218を備えるように構成され、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150の双方がシリアル通信を行うものとして説明した。しかしながら、この発明はこれに限定されるものではなく、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150の少なくともいずれか一方が、シリアル通信を行うための構成を備えていればよい。以下では、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150のうちでシリアル通信回路を備える一方のマイクロコンピュータを第1のマイクロコンピュータとし、シリアル通信回路を備えない他方のマイクロコンピュータを第2のマイクロコンピュータとする。この場合、第2のマイクロコンピュータでは、例えばシリアル通信線を介して第1のマイクロコンピュータから伝送されたデータをパラレルデータに変換するシリアル−パラレル変換回路(例えばシフトレジスタ)を備えていてもよい。あるいは、第2のマイクロコンピュータでは、第1のマイクロコンピュータから伝送されるデータを所定周期でサンプリングして、シリアル通信線を介して伝送されたデータを取得するようにしてもよい。
また、第2のマイクロコンピュータから第1のマイクロコンピュータに対しては、複数のデータ通信線を用いたパラレル通信により通信データを伝送してもよい。そして、第1のマイクロコンピュータには、複数のデータ通信線に対応した入力ポートを設け、パラレル通信により伝送された通信データを取得するようにしてもよい。この場合、第1のマイクロコンピュータが備えるシリアル通信回路では、送信動作部のみを用いるようにすればよく、受信動作部は未使用状態に設定しておけばよい。
上記実施の形態では、最大値比較回路177A、177Bが、それぞれ乱数列変更回路176A、176Bから出力される数値データ列R1、R2を所定の最大値と比較して、数値データが最大値以下となるまで再設定信号MS1、MS2の出力を繰り返す動作を短期間に行うことにより、格納値更新信号KTやクロック信号S1の立上がりエッジから十分に短い経過時間内に、更新後の乱数値となる数値データR1、R2を出力するものとして説明した。しかしながら、この発明はこれに限定されるものではなく、最大値比較回路177A、177Bからの出力信号によって乱数生成回路173A、173Bがクリア(初期化)されるものであってもよい。
例えば、最大値比較回路177Aは、12ビット乱数用に設定された最大値とスタート値を参照可能とし、乱数列変更回路176Aは、乱数生成回路173Aから出力された数値データC1を、12ビット乱数用に設定された最大値以下の範囲内で、予め定められた順列となるように並び替える。そして、最大値比較回路177Aは、最大値とスタート値との差分を特定し、乱数列変更回路176Aから出力される数値データ列R1の更新回数が、その差分に一致したか否かを判定する。このとき、数値データ列R1の更新回数が最大値とスタート値との差分に達したときには、乱数生成回路173Aから出力される数値データC1の値が12ビット乱数用に設定された最大値に達していることから、最大値比較回路177Aは所定のカウントクリア信号を乱数生成回路173Aに入力して、乱数生成回路173Aにて生成される数値データC1をクリア(初期化)する。この後、乱数生成回路173Aは、クリア後に出力される数値データC1の最小値から順次にカウントアップすることなどにより、例えばスタート値よりも1小さい最終値に達したときに、乱数一巡信号RIJ1を出力する。
また、最大値比較回路177Bは、16ビット乱数用に設定された最大値とスタート値を参照可能とし、乱数列変更回路176Bは、乱数生成回路173Bから出力された数値データC2を、16ビット乱数用に設定された最大値以下の範囲内で、予め定められた順列となるように並び替える。そして、最大値比較回路177Bは、最大値とスタート値との差分を特定し、乱数列変更回路176Bから出力される数値データ列R2の更新回数が、その差分に一致したか否かを判定する。このとき、数値データ列R1の更新回数が最大値とスタート値との差分に達したときには、乱数生成回路173Bから出力される数値データC2の値が16ビット乱数用に設定された最大値に達していることから、最大値比較回路177Bは所定のカウントクリア信号を乱数生成回路173Bに入力して、乱数生成回路173Bにて生成される数値データC2をクリア(初期化)する。この後、乱数生成回路173Bは、クリア後に出力される数値データC2の最小値から順次にカウントアップすることなどにより、例えばスタート値よりも1小さい最終値に達したときに、乱数一巡信号RIJ2を出力する。
このような構成による場合には、12ビット乱数用のスタート値が12ビット乱数用の最大値以下となり、16ビット乱数用のスタート値が16ビット乱数用の最大値以下となるように、スタート値と最大値の設定を行うようにする。また、乱数列変更回路176A、176Bのいずれかにより順列を変更したときに、12ビット乱数用の最大値や16ビット乱数用の最大値よりも大きな値を含んだ数値データ列R1、R2が出力されないように設定する。
上記実施の形態では、電源基板10に電源監視回路303が搭載されるものとして説明したが、この発明はこれに限定されるものではなく、例えば電源監視回路を払出制御基板15に搭載してもよい。この場合、払出制御基板15では、電源基板10から供給された電源電圧の少なくとも一部(例えばVSLとVCC)を電源監視回路に入力して、電源電圧の低下が検出されたときには電源断信号がオン状態となるように構成する。そして、電源監視回路から出力された電源断信号は、払出制御用マイクロコンピュータ150が備える所定の入力ポートに入力させるとともに、例えば所定の出力回路を介して、主基板11へと伝送できるように構成すればよい。このような構成によれば、電源基板10から払出制御基板15に対して電源断信号を伝送するための配線を設ける必要がないので、配線構成をさらに簡略化できる。また、電源断信号を伝送する配線の全体的な長さが短くなるので、電源断信号にノイズが乗る可能性を低減することができる。
上記実施の形態では、電源基板10にクリアスイッチ304が搭載されるものとして説明したが、この発明はこれに限定されるものではなく、例えばクリアスイッチを主基板11に搭載してもよい。この場合、クリアスイッチから出力されたクリア信号は、遊技制御用マイクロコンピュータ100が備える所定の入力ポートに入力させるとともに、例えば所定の出力回路を介して、払出制御基板15へと伝送できるよう構成すればよい。このような構成によれば、電源基板10から主基板11に対してクリア信号を伝送するための配線を設ける必要がないので、配線構成をさらに簡略化できる。また、クリア信号を伝送する配線の全体的な長さが短くなるので、クリア信号にノイズが乗る可能性を低減することができる。
上記実施の形態では、電源基板10に搭載された電源監視回路303がリセット信号を出力するものとして説明したが、これに限定されるものではなく、例えば主基板11を含めた各制御基板にリセット信号を出力するリセット回路を搭載してもよい。あるいは、複数の制御基板のうちのいずれか(1つまたは複数の制御基板)にリセット回路を搭載し、そのリセット回路から出力されたリセット信号を、リセット回路が搭載されていない他の制御基板に供給するようにしてもよい。リセット回路を各制御基板に搭載した場合には、リセット信号がハイレベルとなるときの電圧値を、それぞれのリセット回路に応じて異ならせるようにしてもよい。例えば、主基板11に搭載されたリセット回路から出力されるリセット信号がハイレベルとなるときの電圧値を、他の制御基板に搭載されたリセット回路から出力されるリセット信号がハイレベルとなるときの電圧値に比べて高くなるようにして、遊技制御用マイクロコンピュータ100に入力されるリセット信号がオフ状態となるタイミングが最も遅くなるように設定してもよい。
上記実施の形態では、パチンコ遊技機1への電力供給が開始されたときに、電源基板10に搭載されたクリアスイッチ304における押下などの操作に応じてクリア信号がオン状態となっているときに、遊技制御用マイクロコンピュータ100及び払出制御用マイクロコンピュータ150が初期化時における設定を行うものとして説明した。しかしながら、この発明はこれに限定されるものではなく、パチンコ遊技機1への電力供給が開始されたときに、例えばパチンコ遊技機1の外部から入力される初期化指令信号がオン状態となっていることなどの所定条件が成立しているときには、遊技制御用マイクロコンピュータ100及び払出制御用マイクロコンピュータ150が初期化時における設定を行うようにしてもよい。具体的な一例として、初期化指令信号は、ホールの管理コンピュータから出力されてパチンコ遊技機1に入力されるものであってもよいし、パチンコ遊技機1への侵入物や接触物を検出するセンサなどから出力されてパチンコ遊技機1に入力されるものであってもよい。
上記実施の形態では、電源断を検出するための電源監視手段として交流電源(AC24V)を整流、平滑した後に得られた直流電圧VLP(直流+24V)を監視して、監視している直流電圧が所定の電圧以下になったことを検出すると電源断信号を出力するものを例示したが、これに限らず、交流電源(AC24V)を直流に変換する途中における全波整流波形の有無を監視し、波形が所定期間検出できなかったときに電源断信号を出力するものでもよい。さらに交流電源を直接監視し、交流波形が所定期間検出できなかったときに電源断信号を出力するものでもよい。つまり、監視する対象は電圧に限らず、全波整流波形でも半波整流波形でもよく、遊技機への供給電力が低下していることを検出できるものであればよい。また、監視する直流電圧は、VLP(直流+24V)に限定されず、VSL(直流+30V)やVDD(直流+12V)などであってもよい。
電源断信号は、遊技制御用マイクロコンピュータ、払出制御用マイクロコンピュータにおける入力ポートに入力し、電源断信号がオンである旨の判定がされたときに電源断処理を実行してもよい。あるいは、電源断信号をNMI端子へ入力し、ノンマスカブル割込処理にて電源断処理を実行するものでもよい。また、電源断信号をNMI端子へ入力し、電源断信号の入力に応じて電断フラグをセットし、タイマ割込処理あるいはメイン処理にて電断フラグの状態を監視して、オンであれば電源断処理を実行するものでもよい。
上記実施の形態では、電源断処理にてチェックサムデータの作成や、バックアップフラグのセットを行い、それらを電源投入時に確認するものを例示したが、これに限らず電源断処理にて所定の出力ポートをクリアする処理や、電源状態が復帰したか否かを監視する処理(瞬停時に復帰させる処理)を実行してもよい。また、それらの処理の順番は本件実施の形態に限定されるものではない。
上記実施の形態では、遊技制御カウンタ設定部135に総賞球数カウンタと第1〜第3払出数指示カウンタとが設けられ、図37(A)に示すステップS292の処理では、総賞球数カウンタの値と第1〜第3払出数指示カウンタのいずれかの値に、所定値が加算されて更新される。また、図39に示すステップS424では、変数Nの値に対応した第1〜第3払出数指示カウンタのいずれかの値が1減算されて更新される一方で、ステップS427、S429、S430のいずれかの処理が実行されることにより、変数Nの値に対応した所定値が総賞球数カウンタの値から減算されて更新されるようにしている。このように、上記実施の形態では、遊技制御用マイクロコンピュータ100にて払出制御基板15からの賞球ACKコマンドを受信した旨の判定がなされたときに、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしている。しかしながら、この発明はこれに限定されるものではなく、例えば払出数指定コマンドを送信するときに、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしてもよい。この場合には、図38に示すステップS408、S410、S411の処理のいずれかにより払出数指定コマンドを送信するための設定を行う以前に、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしてもよいし、図38に示すステップS408、S410、S411の処理のいずれかを実行して払出数指定コマンドを送信するための設定を行った後、払出制御基板15からの賞球ACKコマンドを受信したか否かの判定を行うより以前に、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしてもよい。
また、遊技制御カウンタ設定部135に総賞球数カウンタと第1〜第3払出数指示カウンタとを備えるものに限定されず、遊技制御用マイクロコンピュータ100が賞球として払い出すべき遊技球の個数を特定可能なデータを記憶できる任意の構成を有するものであればよい。例えば、遊技制御カウンタ設定部135には総賞球数カウンタが設けられる一方で、第1〜第3払出数指示カウンタは設けられていなくてもよい。この場合には、図10(C)に示す払出数指定コマンドの1バイト目及び2バイト目における第3〜第0ビット[ビット3−0]のビット値により、遊技球の払出数として「1」〜「15」のいずれでも指定可能とする。そして、総賞球数カウンタの値から払い出すべき賞球の個数を特定し、特定した賞球の個数を払出数として指示する払出数指定コマンドを、主基板11から払出制御基板15に対して送信するようにすればよい。このとき、総賞球数カウンタの値が払出数指定コマンドで指示することが可能な払出数の最大値(例えば「15」)よりも大きな値となっているときには、最大の払出数を指示する払出数指定コマンドを送信するとともに総賞球数カウンタの値を更新し、更新後の総賞球数カウンタの値に基づいて、さらに払出数指定コマンドの送信を行うようにすればよい。
あるいは、遊技制御カウンタ設定部135には第1〜第3払出数指示カウンタが設けられる一方で、総賞球数カウンタは設けられていなくてもよい。この場合には、図37(A)に示すステップS292にてオン状態のスイッチに対応して第1〜第3払出数指示カウンタのいずれかの値を更新すればよく、図39に示すステップS425の処理を実行した後には、ステップS431の処理に進むようにすればよい。
上記実施の形態では、図39に示すステップS421にて賞球ACK受信フラグがオンであることにより払出制御基板15からの賞球ACKコマンドを受信した旨の判定がなされたときに、ステップS425の処理を実行してコマンド送信回数カウンタの値を1加算している。しかしながら、この発明はこれに限定されるものではなく、例えば払出数指定コマンドを送信するときに、コマンド送信回数カウンタの値を1加算するようにしてもよい。この場合には、図38に示すステップS408、S410、S411の処理のいずれかにより払出数指定コマンドを送信するための設定を行う以前に、コマンド送信回数カウンタの値を1加算するようにしてもよいし、図38に示すステップS408、S410、S411の処理のいずれかを実行して払出数指定コマンドを送信するための設定を行った後、払出制御基板15からの賞球ACKコマンドを受信したか否かの判定を行うより以前に、コマンド送信回数カウンタの値を1加算するようにしてもよい。このように払出数指定コマンドを送信するときにコマンド送信回数カウンタの値を1加算することによっても、賞球として払い出される遊技球の個数を直接カウントすることなく、賞球として払い出される遊技球の個数に異常が生じたことを検出できる。また、入賞口に入賞した遊技球の個数は、賞球として払い出される遊技球の個数に比べて少ないことから、データの記憶量を少なくすることができる。さらに、1つのコマンド送信回数カウンタにおけるカウント値を更新するだけで払出数指定コマンドの送信回数と全入賞球検出スイッチ29によって検出された遊技球の個数との差を入賞個数差として特定することができるから、制御負担の増大を抑制して、賞球として払い出される遊技球の個数に異常が発生したか否かを判定することができる。加えて、1つのコマンド送信回数カウンタにおけるカウント値を記憶するだけでよいことから、複数のカウンタにおけるカウント値を用いる場合に比べて、データの記憶量を少なくすることができる。なお、第1〜第3払出数指定コマンドの送信回数をカウントするためのカウンタと、全入賞球検出スイッチ29によって検出された遊技球の個数をカウントするためのカウンタとを別個に設けて、双方のカウンタにおける値の差分を、入賞個数差として特定するようにしてもよい。
上記実施の形態では、図31に示すような遊技制御用タイマ割込み処理にてステップS72のスイッチ処理とステップS80の特別図柄プロセス処理が実行される。ここで、例えばステップS72のスイッチ処理で始動口スイッチ22からの検出信号がオン状態であるときに、始動口スイッチタイマにおけるタイマ値が1ずつ加算される。そして、ステップS80の特別図柄プロセス処理では、例えば図43に示すステップS351にて始動口スイッチタイマにおけるタイマ値が所定のスイッチオン判定値(例えば「2」)となっている旨の判定がなされたときに、ステップS352の入賞処理にて乱数回路103が備える乱数値レジスタ181Bなどから乱数値が読み出されることになる。これに対して、遊技制御用のタイマ割込み処理では始動口スイッチ22からの検出信号がオン状態となっているか否かに応じた始動口スイッチタイマの更新を行って、そのタイマ値が所定のスイッチオン判定値となったときに所定の始動入賞フラグをオン状態にセットする一方で、乱数回路103からの乱数値の読み出しは、図27に示すステップS26にて電源断信号がオフ状態であるときに実行されるループ処理内にて行うようにしてもよい。
この場合、遊技制御用タイマ割込み処理では、例えば図31に示す各処理のうち、ステップS71、S72、S85の処理だけを実行するようにする。そして、ステップS72のスイッチ処理では、始動口スイッチ22からの検出信号がオン状態であるときに、始動口スイッチタイマにおけるタイマ値を1ずつ加算するように更新する一方、始動口スイッチ22からの検出信号がオフ状態であるときには、始動口スイッチタイマをクリアする。そして、始動口スイッチタイマにおけるタイマ値がスイッチオン判定値に達したときには、遊技制御フラグ設定部133に設けられた始動入賞フラグをオン状態にセットする。他方、図27に示すステップS26にて電源断信号がオフ状態であるときには、図31に示すステップS73〜S84の各処理を実行してから、ステップS26の処理に戻るようにする。ここで、ステップS80の特別図柄プロセス処理では、図43に示すステップS351の処理として、始動入賞フラグがオンとなっているか否かの判定処理を実行する。そして、始動入賞フラグがオンであるときには、ステップS352の入賞処理を実行して、乱数回路103から乱数値を読み出して特図保留記憶部131に格納するようにしてもよい。これにより、タイマ割込みが発生したときに遊技制御用マイクロコンピュータ100が備えるCPU104での処理量が増大することを防止して、タイマ割込み発生時における制御負担を軽減することができる。
上記実施の形態では、演出制御用マイクロコンピュータ120が図63に示すステップS954にて満タン報知開始コマンドを受信したと判定したときに、図64(C)に例示するような満タン報知画面となる画像を画像表示装置5に表示させた後、図63に示すステップS952にて満タン報知終了コマンドを受信したと判定されるまでは、満タン報知画面の表示が継続して行われる。しかしながら、この発明はこれに限定されるものではなく、例えば図64(A)に例示した賞球過多報知画面や図64(B)に例示した賞球不足報知画面を表示する場合と同様に、報知を終了するタイミングに達したときには、満タン報知画面などの表示を終了させるようにしてもよい。この場合には、主基板11から演出制御基板12に対して報知の終了を指示するコマンドを送信する必要がないので、遊技制御用マイクロコンピュータ100における制御負担を軽減することができる。
上記実施の形態では、図54に示す賞球払出回数算出処理におけるステップS801にて主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはそのまま賞球払出回数算出処理を終了する。また、図55に示す賞球払出駆動処理におけるステップS821にて主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはステップS839の処理に進むことで払出モータ51による遊技球の払出動作を停止させる。その一方で、図58に示す球貸し払出回数算出処理や図59に示す球貸し払出駆動処理では、主基板通信エラーフラグがオンとなっているか否かの判定は行われない。しかしながら、この発明はこれに限定されるものではなく、例えば図58に示す球貸し払出回数算出処理を開始したときには、まず主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはそのまま球貸し払出回数算出処理を終了するようにしてもよい。また、図59に示す球貸し払出駆動処理を開始したときには、まず主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはステップS896の処理に進んで払出モータ51による遊技球の払出動作を停止させるようにしてもよい。これにより、主基板11からのACKフィードバックコマンドを受信していない旨の判定がなされたときには、球貸し未払出カウンタの値が「0」以外の値となって未払出の貸し球となる遊技球があることを示していても払出制御を停止する状態に制御されることになる。これにより、確実な払出制御を実行して、例えば通信エラーや通信線に対する不正行為などによる異常が発生したときに、貸し球となる遊技球を過剰に払い出してしまうことを防止できる。
上記実施の形態では、始動口スイッチ22から出力された検出信号が、始動入賞信号SSとして乱数回路103に設けられたタイマ回路179に入力される。そして、タイマ回路179において、始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、始動入賞信号SSをラッチ信号生成回路180に出力していた。しかしながら、この発明はこれに限定されるものではなく、始動口スイッチ22からの検出信号をCPU104に入力し、CPU104が所定回(例えば2回)の遊技制御用タイマ割込み処理を実行する期間(例えば4ミリ秒間)にわたり、始動口スイッチ22からの検出信号が継続してオン状態であるときに、ラッチ用始動入賞信号SNをラッチ信号生成回路180に送出するようにしてもよい。この場合、図12に示すような乱数回路103が備えるタイマ回路179は不要であり、例えばラッチ信号生成回路180が備えるD入力端子に、CPU104から出力されるラッチ用始動入賞信号SNを入力させる。そして、ラッチ信号生成回路180が備えるクロック入力端子には、反転回路178から出力される反転クロック信号S2や遅延回路182から出力される遅延クロック信号S3を入力させればよい。ラッチ信号生成回路180は、D入力端子に入力されるラッチ用始動入賞信号SNを、クロック入力端子に入力される反転クロック信号S2や遅延クロック信号S3の立上がりエッジに同期させて出力することにより、ラッチ信号SLを生成して出力する。加えて、図43に示すステップS341の処理では、始動口スイッチ22からの検出信号がオン状態となってからオン状態のラッチ用始動入賞信号SNをラッチ信号生成回路180に送出するまでに要する期間よりも長い時間にわたり始動口スイッチ22からの検出信号がオン状態であるときに、始動口スイッチ22からの始動入賞信号がオン状態である旨の判定がなされるようにすればよい。具体的な一例として、2回の遊技制御用タイマ割込み処理を実行する期間である4ミリ秒間にわたり始動口スイッチ22からの検出信号が継続してオン状態であるときにオン状態のラッチ用始動入賞信号SNをラッチ信号生成回路180に送出する場合には、ステップS341にて始動口スイッチタイマにおけるタイマ値と比較するスイッチオン判定値を、「2」よりも大きな値(例えば「3」)に予め定めておく。そして、始動口スイッチタイマにおけるタイマ値がスイッチオン判定値に達しているときには始動入賞信号がオン状態であると判定してステップS342の入賞処理を実行する。これにより、遊技制御用タイマ割込み処理の実行回数がスイッチオン判定値に対応した所定回に達するまでの間、始動口スイッチ22からの検出信号が継続してオン状態であるときに、特別図柄表示装置4による特図ゲームの実行条件が成立したと判定されることになる。その一方で、ラッチ用始動入賞信号SNは、遊技制御用タイマ割込み処理の実行回数がスイッチオン判定値に対応した所定回数に達するまでの時間よりも短い時間である4ミリ秒間にわたり始動口スイッチ22からの検出信号が継続してオン状態であることを条件に、オン状態となる。
また、上記実施の形態において、タイマ回路179は、内部システムクロックCLKを用いて始動入賞信号SSの入力時間を計測していたが、これに限定されず、内部システムクロックCLKを分周したクロック信号や、クロック回路101によって生成される内部システムクロックCLKとは異なるクロック信号を用いてもよい。例えば、タイマ回路179は、クロック信号出力回路171から出力されたクロック信号S1を用いて始動入賞信号SSの入力時間を計測してもよい。また、上記実施の形態において、タイマ回路179には、所定の時間として3ミリ秒が設定されていたが、これに限定されず、2回の遊技制御用タイマ割込み処理の実行時間である4ミリ秒よりも短い時間であれば任意に設定可能である。
さらに、上記実施の形態において、CPU104は、2回の遊技制御用タイマ割込み処理が実行されている期間(4ミリ秒)にわたり始動入賞信号が継続して入力されたことに基づいて、図43に示すステップS352の入賞処理を実行していた。しかしながら、本発明は、これに限定されず、上述した遊技制御用タイマ割込み処理の実行回数は、任意であり、例えば、CPU104は、3回の遊技制御用タイマ割込み処理が実行されている期間(6ミリ秒)にわたり始動入賞信号が継続して入力されたことに基づいて、入賞処理を実行してもよい。この場合、タイマ回路179には、3回の遊技制御用タイマ割込処理の実行時間である6ミリ秒よりも短い時間を設定すればよい。
上記実施の形態では、「0」〜「9」を示す数字等から構成される特別図柄のうちで、「7」を示す特別図柄を大当り図柄とし、それ以外の数値を示す特別図柄をハズレ図柄とし、遊技状態が高確率状態となる確変大当りとなるか否かは、特別図柄とは別個に決定されるものとして説明した。しかしながら、この発明はこれに限定されるものではなく、遊技状態が高確率状態となる確変大当りのときの大当り図柄である確変大当り図柄と、遊技状態が高確率状態にはならない通常大当りのときの大当り図柄である通常大当り図柄とを、互いに異なる特別図柄としてもよい。例えば、「3」を示す特別図柄を通常大当り図柄とし、「7」を示す特別図柄を確変大当り図柄としてもよい。この場合には、表示結果通知コマンドとなるコマンド90XXhのうち、コマンド9001hを特図ゲームでの確定特別図柄が通常大当り図柄としての「3」を示す特別図柄であることを通知するコマンドとし、コマンド9002hを特図ゲームでの確定特別図柄が確変大当り図柄としての「7」を示す特別図柄であることを通知するコマンドとすればよい。
上記実施の形態では、図41に示すステップS308にて満タンスイッチ26からの検出信号がオン状態であるときに、ステップS310での設定により満タン報知開始コマンドを演出制御基板12に対して送信させ、演出制御用マイクロコンピュータ120が図63に示すステップS955の処理を行うことにより、図64(C)に例示するような満タン報知画面となる画像を画像表示装置5に表示させて下皿33が満タン状態であることを報知するものとして説明した。しかしながら、この発明はこれに限定されるものではなく、下皿33が満タン状態であることを外部から認識可能に報知する任意の動作を行うものであればよい。例えば、ステップS310の処理では、遊技制御用マイクロコンピュータ100が備える出力ポートの所定ビットに制御データをセットするなどして、下皿33が満タン状態であることを報知するためのランプを点灯または点滅させたり、音声を出力させたりしてもよい。
上記実施の形態では、発射装置19を駆動させるときには、主基板11から発射装置19に対してオン状態の発射許可信号を送信し、球送り装置62を駆動させるときには、主基板11から球送り装置62に対してオン状態の供給許可信号を送信するようにしている。そして、発射装置19では、主基板11からの発射許可信号がオン状態となっていることを条件に、電源基板10から伝送されたVSLを用いて発射用ソレノイド19Cを駆動(励磁)して遊技球を発射可能とする一方、球送り装置62では、主基板11からの供給許可信号がオン状態となっていることを条件に、電源基板10から伝送されたVSLを用いて球送り用のソレノイドまたはモータを駆動して遊技球を発射装置19に供給可能としている。しかしながら、この発明はこれに限定されるものではなく、発射装置19や球送り装置62を駆動させるときには、主基板11から発射装置19や球送り装置62に対して駆動電圧(例えばVSL)を供給する一方、発射装置19や球送り装置62を停止させるときには、主基板11から発射装置19や球送り装置62に対する駆動電圧の供給を停止するようにしてもよい。この場合、遊技制御用マイクロコンピュータ100に設けられたCPU104は、図33に示すステップS223の処理として、発射装置19に対して駆動電圧を供給するための処理を実行し、図33に示すステップS226の処理として、球送り装置62に対して駆動電圧を供給するための処理を実行すればよい。具体的な一例として、ステップS223の処理では、電源基板10から主基板11を介して発射装置19に駆動電圧を供給する伝送回路に設けられた発射駆動スイッチをオン状態に設定することで発射装置19に対する駆動電圧の供給を行う一方、ステップS221にて発射許可制御タイマがタイムアウトしている旨の判定がなされたときには、発射駆動スイッチをオフ状態に設定することで発射装置19に対する駆動電圧の供給を停止すればよい。また、ステップS226の処理では、電源基板10から主基板11を介して球送り装置62に駆動電圧を供給する伝送回路に設けられた供給駆動スイッチをオン状態に設定することで球送り装置62に対する駆動電圧の供給を行う一方、ステップS224にて供給許可制御タイマがタイムアウトしている旨の判定がなされたときには、供給駆動スイッチをオフ状態に設定することで球送り装置62に対する駆動電圧の供給を停止すればよい。
また、発射装置19を駆動させるときには、主基板11から発射装置19に対してオン状態の発射許可信号を送信するものとして説明したが、これに限定されるものではなく、主基板11から球送り装置62に対して供給許可信号を送信することで球送り装置62を駆動あるいは停止させる一方、発射装置19は主基板11の制御によらずに発射用ソレノイド19Cを駆動して遊技球を打出可能な状態となるようにしてもよい。具体的な一例として、発射装置19が備えるAND回路19Aには、カードユニット70からインタフェース基板20を介して伝送されたVL信号と、タッチセンサ75から主基板11を介することなく伝送された検出信号とが、入力されてもよい。この場合、発射装置19が備えるソレノイド駆動電圧生成回路19Bは、VL信号とタッチセンサ75からの検出信号とがともにオン状態であるときに、電源基板10から供給されたVSLを用いて操作ノブ30からの操作量検出信号に応じたソレノイド駆動電圧を生成することになる。あるいは、発射装置19が備えるソレノイド駆動電圧生成回路19Bは、カードユニット70からインタフェース基板20を介して伝送されたVL信号やタッチセンサ75からの検出信号のいずれかがオン状態であるときに、電源基板10から供給されたVSLを用いて操作ノブ30からの操作量検出信号に応じたソレノイド駆動電圧を生成してもよい。このような場合でも、球送り装置62は、主基板11からの供給許可信号がオフ状態である期間においては発射装置19に遊技球を供給しないことから、発射装置19によって遊技球が発射されないようにすることができる。すなわち、タッチセンサ75からのタッチセンサ検出信号がオン状態であり、かつ、満タンスイッチ26からの検出信号がオフ状態であるときに、主基板11から球送り装置62への供給許可信号がオン状態となることで球送り装置62が駆動されて遊技球が発射装置19に供給されることで、遊技球の発射が可能になる。また、主基板11において発射装置19を駆動するための制御を行う必要がないので、主基板11における制御負担を軽減することができる。
さらに、主基板11から発射装置19に対して送出される発射許可信号や、主基板11から球送り装置62に対して送出される供給許可信号は、主基板11にてスイッチ回路111を介して遊技制御用マイクロコンピュータ100に入力された満タンスイッチ26からの検出信号やタッチセンサ75からのタッチセンサ検出信号に基づき、遊技制御用マイクロコンピュータ100が図31に示すステップS73の発射制御処理やステップS74の入出力処理を実行することにより生成されるものとして説明した。しかしながら、この発明はこれに限定されるものではなく、例えば主基板11において遊技制御用マイクロコンピュータ100の外部に設けられたAND回路に、満タンスイッチ26からの検出信号とタッチセンサ75からのタッチセンサ検出信号とを入力させ、そのAND回路からの出力信号を発射許可信号や供給許可信号として、発射装置19や球送り装置62に対して送出するようにしてもよい。
また、上記実施の形態では、満タンスイッチ26や球切れスイッチ27からの検出信号を受信するための配線が主基板11に接続され、図52に示すステップS723などでは、主基板11からの球切れ通知コマンドを受信したか否かをチェックすることにより、球切れ状態となっているか否かを判定するものとして説明した。しかしながら、この発明はこれに限定されるものではなく、満タンスイッチ26や球切れスイッチ27からの配線が払出制御基板15に接続され、払出制御基板15から主基板11に対して、満タンスイッチ26や球切れスイッチ27からの検出信号が入力されるようにしてもよい。この場合には、満タンスイッチ26や球切れスイッチ27からスイッチ回路161を介して払出制御用マイクロコンピュータ150に検出信号が入力され、それらの検出信号の状態に応じた払出通知コマンドを払出制御基板15から主基板11に対して送信させるようにしてもよい。あるいは、払出制御基板15において払出制御用マイクロコンピュータ150の外部に設けられた分岐回路により、満タンスイッチ26や球切れスイッチ27からの検出信号を分岐させて、一方を払出制御用マイクロコンピュータ150に入力させるとともに、他方を主基板11に対して伝送するようにしてもよい。そして、図52に示すステップS723などでは、球切れスイッチ27から払出制御用マイクロコンピュータ150に入力される検出信号がオン状態となっているか否かをチェックすることにより、球切れ状態となっているか否かを判定すればよい。
あるいは、満タンスイッチ26や球切れスイッチ27からの検出信号を受信するための配線が主基板11に接続され、例えば主基板11において遊技制御用マイクロコンピュータ100の外部に設けられた分岐回路により、満タンスイッチ26や球切れスイッチ27からの検出信号を分岐させて、一方を遊技制御用マイクロコンピュータ100に入力させるとともに、他方を払出制御基板15に対して伝送するようにしてもよい。また、満タンスイッチ26や球切れスイッチ27からの検出信号を主基板11や払出制御基板15の外部において分岐させて、一方を主基板11に伝送するとともに、他方を払出制御基板15に伝送するようにしてもよい。
上記実施の形態では、連続して払い出される賞球の個数には、上限が設けられていなかったが、この発明はこれに限定されるものではなく、連続して払い出される賞球の個数に上限値(賞球連続払出上限値)を設けるようにしてもよい。例えば賞球払出上限値として、1単位の貸し球の払出数(例えば25個)に相当する値である「25」が設定されている場合、図54に示す賞球払出回数算出処理では、ステップS805での減算処理により得られた値が「25」以下であれば、ステップS806の処理に進んでステップS805にて得られた減算値を払出モータ回転カウンタにセットするようにすればよい。これに対して、ステップS805での減算処理により得られた値が「25」より大きいときには、賞球連続払出上限値である「25」を賞球未払出カウンタ、前回未払出カウンタ、及び払出モータ回転カウンタにセットする。このときには、ステップS805にて得られた減算値から、さらに賞球連続払出上限値である「25」を減算した値を繰越未払出数として、例えばRAM216に設けられた繰越未払出数記憶部などといった所定の記憶領域に記憶させておく。そして、図54に示す賞球払出回数算出処理では、ステップS801にて主基板通信エラーフラグがオフである旨の判定がなされたとき、あるいはステップS802にて賞球未払出カウンタの値が払出個数カウンタの値以下であると判定されたときに、繰越未払出数記憶部などに「0」以外の値が記憶されているか否かを判定する。この判定処理を実行した際に「0」以外の値が記憶されていれば、さらに繰越未払出数が「25」以下であるか否かを判定する。ここで、繰越未払出数が「25」以下であれば、繰越未払出数を賞球未払出カウンタ、前回未払出カウンタ、及び払出モータ回転カウンタにセットするとともに、繰越未払出数の記憶をクリアして「0」に初期化する。他方、繰越未払出数が「25」より大きいときには、賞球連続払出上限値である「25」を賞球未払出カウンタ、前回未払出カウンタ、及び払出モータ回転カウンタにセットするとともに、繰越未払出数から「25」を減算した値を、新たな繰越未払出数として記憶させればよい。
加えて、図55及び図56に示す賞球払出駆動処理では、ステップS843での減算処理により得られた値と、払出モータ回転カウンタの値とを加算し、得られた加算値が賞球連続払出上限値である「25」以下であるか否かを判定する。このとき、加算値が「25」以下であれば、ステップS844の処理に進んで賞球未払出カウンタの値における増加分を払出モータ回転カウンタの値に加算して更新すればよい。これに対して、加算値が「25」より大きいときには、賞球連続払出上限値である「25」を払出モータ回転カウンタにセットするとともに、賞球未払出カウンタの値から払出モータ回転カウンタの値における増加分を減算して、得られた減算値を賞球未払出カウンタにセットすればよい。
上記実施の形態では、図54に示すステップS802にて賞球未払出カウンタの値が払出個数カウンタの値と等しいか、それよりも小さな値となっているときに、ステップS803、S804、S812、S813の処理を実行して、賞球となる遊技球の払出動作を制御するための設定を初期化するものとして説明した。これに対して、賞球となる遊技球の払出が正常に終了したときに、賞球となる遊技球の払出動作を制御するための設定を初期化するようにしてもよい。より具体的には、図55に示すステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達した旨の判定がなされたときに、ステップS803、S804、S812、S813に相当する処理を実行してもよい。
上記実施の形態では、図54に示すステップS807にて払出動作不良回数カウンタの値と比較される不良回数上限値を適切な値(例えば「9」)に設定することで、図55に示すステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達した後、図53に示すステップS743の賞球払出回数算出処理が実行されるより前の段階で払出数指定コマンドを受信した場合でも、直ちにエラーと判定されることを防止しつつ、払出モータ51あるいは払出ケース17における球詰まりなどの発生による払出動作の不良を適切に検出することができるようにするものとして説明した。しかしながら、この発明はこれに限定されるものではなく、例えば図55に示すステップS833にて払出個数カウンタの値が賞球未払出カウンタの値に達した旨の判定がなされたときに、払出動作不良回数カウンタをクリアして初期化するようにしてもよい。これにより、払出モータ51による払出動作が終了した後、払出完了待ち時間が経過する以前に払出カウントスイッチ72によって検出された遊技球の個数が賞球未払出カウンタの値と等しくなったときには、賞球となる遊技球の払出動作が適切に完了したと判断して、払出動作不良回数カウンタの値を直ちに初期値に設定することができる。
上記実施の形態では、図55に示すステップS824にて賞球となる遊技球を1個分払い出すための払出動作中ではないと判定したときに、ステップS825にて払出モータ回転カウンタの値が「0」であるか否かを判定し、「0」以外であれば、ステップS828にて遊技球を1個分払い出すための払出動作に関する設定を行うものとして説明した。しかしながら、この発明はこれに限定されるものではなく、ステップS825にて払出モータ回転カウンタの値が「0」以外である旨の判定がなされたときに、ステップS828にて払出モータ回転カウンタの値に対応した個数分の遊技球を払い出すための払出動作に関する設定を行うようにしてもよい。この場合には、ステップS828の処理として、例えば遊技球を払出モータ回転カウンタの値に対応した個数に達するまで連続して払い出す払出動作を払出モータ51に実行させる励磁パターンや励磁期間を設定する処理などが実行されればよい。具体的な一例として、まず、払出モータ51が遊技球を1個分払い出す払出動作に対応した励磁パターンを、ROM215の所定領域などに予め用意しておく。そして、ステップS828の処理では、ROM215の所定領域から読み出した励磁パターンに従った励磁信号を、払出モータ51に対して払出モータ回転カウンタの値に対応した回数だけ繰り返し出力するように、励磁期間や励磁パターンの繰り返し回数などの設定を行えばよい。このときには、ステップS829にて払出モータ回転カウンタをクリアして、そのカウント値を「0」に設定する。また、ステップS824では、例えば払出モータ51の励磁時間あるいは払出モータ位置センサ71による検出結果などから、ステップS828にて設定された払出動作の実行中であるか否かを判定すればよい。加えて、図59に示すステップS884にて払出モータ回転カウンタの値が「0」以外である旨の判定がなされたときにも、ステップS887にて払出モータ回転カウンタの値に対応した個数分の遊技球を払い出すための払出動作に関する設定を行うようにしてもよい。この場合には、ステップS887の処理として、前述したステップS828での設定と同様の設定を行う処理を実行した後、ステップS888にて払出モータ回転カウンタをクリアして、そのカウント値を「0」に設定する。また、ステップS883では、例えば払出モータ51の励磁時間あるいは払出モータ位置センサ71による検出結果などから、ステップS887にて設定された払出動作の実行中であるか否かを判定すればよい。
上記実施の形態では、図29に示すステップS107にて読み出した12ビット乱数最大値(KRMS)を、ステップS108にて乱数回路103が備える最大値比較回路177Aに一旦設定した後に、ステップS109にて12ビット乱数用の最大値として設定可能な範囲内ではない旨の判定がなされたときには、ステップS110にて所定値を最大値として再設定するものとして説明した。また、図30に示すステップS129にて読み出した16ビット乱数最大値(KRXS)を、ステップS130にて乱数回路103が備える最大値比較回路177Bに一旦設定した後に、ステップS131にて16ビット乱数用の最大値として設定可能な範囲内ではない旨の判定がなされたときには、ステップS132にて所定値を最大値として再設定するものとして説明した。しかしながら、この発明はこれに限定されず、ROM105からの読出値が最大値として設定可能な範囲内であるか否かを判定してから、範囲内であれば、その読出値を最大値比較回路177A、177Bに設定し、範囲内でなければ、所定値を最大値として設定するようにしてもよい。より具体的には、ステップS107にて12ビット乱数最大値(KRMS)を読み出した後には、まず、その読出値が12ビット乱数用の最大値として設定可能な範囲内であるか否かを判定し、範囲内であれば、そのままステップS107での読出値を最大値比較回路177Aに設定する。他方、ステップS107での読出値が12ビット乱数用の最大値として設定可能な範囲内でなければ、12ビット乱数用の最大値として設定可能な範囲内の所定値を最大値として最大値比較回路177Aに設定すればよい。また、ステップS129にて16ビット乱数最大値(KRXS)を読出した後には、まず、その読出値が16ビット乱数用の最大値として設定可能な範囲内であるか否かを判定し、範囲内であれば、そのままステップS129での読出値を最大値比較回路177Bに設定する。他方、ステップS129での読出値が16ビット乱数用の最大値として設定可能な範囲内でなければ、16ビット乱数用の最大値として設定可能な範囲内の所定値を最大値として最大値比較回路177Bに設定すればよい。このような処理により、最大値比較回路177A、177Bに最大値を設定する処理を1回実行すれば、再設定をする必要がなくなるので、最大値を設定するための制御負担を軽減することができる。
上記実施の形態では、図27に示す遊技制御メイン処理におけるステップS26にて電源断信号がオン状態となったか否かの判定を行い、オン状態であるときにはステップ27にてメイン側電源断処理が実行されるものとして説明した。しかしながら、この発明はこれに限定されるものではなく、例えば図31に示す遊技制御用タイマ割込み処理が実行されるごとに、電源断信号がオン状態となったか否かの判定を行い、オン状態であるときにはメイン側電源断処理を実行するようにしてもよい。この場合、例えば遊技制御用タイマ割込み処理の実行が開始されるごとに電源断信号がオン状態であるか否かをチェックして、オン状態であれば電源断信号がオン状態である期間を計測するための電源断信号タイマにおけるタイマ値を1加算するなどして更新する一方、オフ状態であれば電源断信号タイマをクリアして初期化するようにしてもよい。そして、電源断信号タイマにおけるタイマ値を所定の電源断判定値(例えば「2」)と比較する。これにより、所定回(例えば2回)の遊技制御用タイマ割込み処理が実行されている期間(例えば4ミリ秒)にわたり電源断信号が継続してオン状態となっているか否かを判定することができる。このとき、電源断信号タイマにおけるタイマ値が電源断判定値に達していれば、メイン側電源断処理を実行すればよい。
図46に示す払出制御メイン処理におけるステップS521にて行われる電源断信号がオン状態となったか否かの判定や、ステップS522にて実行される払出側電源断処理も、これに限定されるものではなく、例えば図47に示す払出制御用タイマ割込み処理が実行されるごとに、電源断信号がオン状態となったか否かの判定を行い、オン状態であるときには払出側電源断処理を実行するようにしてもよい。この場合、例えば払出制御用タイマ割込み処理の実行が開始されるごとに電源断信号がオン状態であるか否かをチェックして、オン状態であれば電源断信号がオン状態である期間を計測するための電源断信号タイマにおけるタイマ値を1加算するなどして更新する一方、オフ状態であれば電源断信号タイマをクリアして初期化するようにしてもよい。そして、電源断信号タイマにおけるタイマ値を所定の電源断判定値(例えば「2」)と比較する。これにより、所定回(例えば2回)の払出制御用タイマ割込み処理が実行されている期間(例えば4ミリ秒)にわたり電源断信号が継続してオン状態となっているか否かを判定することができる。このとき、電源断信号タイマにおけるタイマ値が電源断判定値に達していれば、払出側電源断処理を実行すればよい。
図39に示すステップS436にて再送信フラグをオン状態にセットすることにより払出数指定コマンドを再送信するための設定が行われたときには、例えば画像表示装置5にメイン側払出異常報知画面となる画像を表示させることなどにより、払出異常が生じたことを報知させるようにしてもよい。より具体的には、図31に示すステップS78の異常動作報知設定処理にて、再送信フラグがオンであるときに、例えば遊技制御フラグ設定部133に設けられた払出異常報知フラグがオンであるか否かを判定する。このとき、払出異常報知フラグがオフであれば、例えばメイン側払出異常報知開始コマンドなどといった、払出異常が生じたことを報知させるために予め用意された演出制御コマンドを送信するための設定を行う。演出制御基板12の側では、例えば図61に示すステップS907で実行される報知処理にて、主基板11からのメイン側払出異常報知開始コマンドを受信したか否かを判定し、受信した旨の判定がなされたときには、メイン側払出異常報知画面となる画像を画像表示装置5に表示させるための設定を行う。これにより、払出制御に関する通信の異常をパチンコ遊技機1の外部で容易に認識できるようになる。また、賞球送信処理にて払出数指定コマンドを再送信するための設定が行われることから、払出制御基板15に搭載された払出制御用マイクロコンピュータ150によって払出数指定コマンドが受信されていないと判断される場合に、払出数指定コマンドを再送信して払出制御に支障を来さないようにすることで、遊技者の不利益を防止することができる。
また、上記実施の形態において、遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6に設けられた始動入賞口に遊技球が入賞すること)が成立した後に可変表示の開始条件(例えば特別図柄表示装置4による前回の特図ゲーム及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報(例えば特別図柄)を可変表示する可変表示装置(例えば特別図柄表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御するパチンコ遊技機であった。
しかしながら、本発明は、これに限定されず、遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
また、本発明の遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。