以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。図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とは別個に設けられてもよい。
普通可変入賞球装置6は、ソレノイド81(図3)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)を備えて構成されている。普通可変入賞球装置6は、普通図柄表示器40による普通図柄の可変表示(普通図ゲーム)で表示結果が「当り」となったときに、電動チューリップの可動翼片を所定時間が経過するまで傾動位置に制御することで、可動翼片を垂直位置としたときに比べて遊技球が始動入賞口に入賞しやすくなる。普通可変入賞球装置6に入賞した遊技球は、始動口スイッチ22(図2、図3)によって検出される。始動口スイッチ22によって遊技球が検出されたことに基づいて、所定個数(例えば4個)の賞球の払い出しが行われる。
特別可変入賞球装置7は、ソレノイド82(図3)によって大入賞口を開成及び閉成制御する開閉板を備えて構成されている。この開閉板は、特別図柄表示装置4による特図ゲームでの変動表示結果などに基づいて大当り遊技状態となった場合に、所定期間あるいは所定個数の入賞球が発生するまでの期間において、遊技者にとって有利な第1の状態としてソレノイド82により大入賞口を開放した状態となった後に、閉鎖する。他方、例えばパチンコ遊技機1の電源投入後に大当り遊技状態が発生する以前までのような通常時には、遊技者にとって不利な第2の状態としてソレノイド82により大入賞口を閉鎖した状態にある。特別可変入賞球装置7にて開閉板が大入賞口を開放しているときに大入賞口に遊技球が入賞した場合には、カウントスイッチ24(図2、図3)によって当該遊技球が検出されたことに基づいて、所定個数(例えば15個)の賞球の払い出しが行われる。なお、大入賞口に入賞して遊技盤2の背面に導かれた遊技球のうち一方の領域(V入賞領域;特別領域)に入ったものはV入賞スイッチ23(図3)で検出された後にカウントスイッチ24で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ24で検出されるようにしてもよい。この場合、遊技盤2の背面には、大入賞口内の経路を切り替えるためのソレノイドが設けられていてもよい。あるいは、V入賞領域を設けずに、大当り遊技状態における最終ラウンド以外のラウンドでは、常に次のラウンドへと移行できるようにしてもよい。
また、遊技盤2には、複数の入賞口42A〜42Dが設けられ、遊技球の入賞口42A〜42Dへの入賞は、それぞれ入賞口スイッチ25A〜25D(図2、図3)によって検出される。各入賞口42A〜42Dによって遊技球が検出されたことに基づいて、所定個数(例えば7個)の賞球の払い出しが行われる。すなわち、各入賞口42A〜42Dは、遊技媒体としての遊技球を受け入れて入賞を許容する領域として遊技盤2に設けられる入賞領域を構成している。また、普通可変入賞球装置6に形成された始動入賞口や、特別可変入賞球装置7に形成された大入賞口も、遊技媒体としての遊技球を受け入れて入賞を許容する入賞領域を構成する。
図2は、遊技盤2に設けられている入賞口などの入賞領域に入賞した遊技球を検出するための各スイッチの関係を示す説明図である。図2に示すように、始動口スイッチ22、カウントスイッチ24、及び入賞口スイッチ25A〜25Dのそれぞれで検出された遊技球は、例えば遊技盤2の背面において、全入賞球検出スイッチ29の設置位置に誘導され、全入賞球検出スイッチ29によって検出される。ここで、全入賞球検出スイッチ29の設置位置は、例えば各入賞球通路が合流する位置、またはその位置の下流側となる所定位置であればよい。
普通図柄表示器40は、例えばLED等から構成され、遊技領域に設けられた通過ゲート41を通過した遊技球がゲートスイッチ21(図3)によって検出されたことを始動条件とする普通図ゲームにおいて、点灯、点滅、発色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となる。ここで、前述の高確率状態と時間短縮状態では、普通図柄表示器40による普通図ゲームにおける可変表示時間が通常遊技状態のときよりも短くなるとともに、各回の普通図ゲームで表示結果が当り図柄となる確率が向上するようにしてもよい。このときにはさらに、普通可変入賞球装置6における可動翼片の傾動時間が通常遊技状態のときよりも長くなるとともに、その傾動回数が通常遊技状態のときよりも増加するようにしてもよい。このように、高確率状態や時間短縮状態では、大当り遊技状態とは異なる遊技者にとって有利な遊技状態となる。ここで、時間短縮状態では、確変制御が行われず、大当り遊技状態となる確率は通常遊技状態のときと同じであるので、高確率状態の方が時間短縮状態よりも遊技者にとって有利である。
また、遊技盤2の遊技領域には、上記した構成以外にも、装飾ランプを内蔵した風車やアウト口等が設けられている。遊技領域外側の左右上部には、効果音を発する2つのスピーカ8L、8Rが設けられている。遊技領域の外周には、点灯又は点滅する遊技効果ランプ9が設けられている。遊技領域外側の右下位置には、遊技球を遊技領域に向けて発射させるために遊技者等が操作する操作ノブ30が設けられている。加えて、遊技領域の外側左部には、賞球残数があるときに点灯する賞球ランプが設けられていてもよい。遊技領域の外側上部には、補給球が切れたときに点灯する球切れランプが設けられていてもよい。
さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、カードユニットという)70も示されている。カードユニット70には、使用可能状態であるか否かを示す使用可表示ランプ、カードユニット70がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット70内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、及びカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット70を開放するためのカードユニット錠などが設けられている。
パチンコ遊技機1には、例えば図3に示すような電源基板10、主基板11、演出制御基板12、音声制御基板13、ランプ制御基板14、払出制御基板15、発射制御基板17といった、各種の制御基板が搭載されている。また、パチンコ遊技機1には、主基板11と演出制御基板12との間で伝送される各種の制御信号を中継するための中継基板18なども搭載されている。なお、音声制御基板13やランプ制御基板14は、演出制御基板12とは別個の独立した基板によって構成されてもよいし、演出制御基板12にまとめられて1つの基板として構成されてもよい。その他、パチンコ遊技機1の背面には、例えば情報端子基板などといった、各種の制御基板が配置されている。
電源基板10は、主基板11、演出制御基板12、払出制御基板15等の各制御基板と独立して設置され、パチンコ遊技機1内の各制御基板及び機構部品が使用する電圧を生成する。例えば、電源基板10では、図4に示すように、AC24V、VLP(直流+24V)、VSL(直流+30V)、VDD(直流+12V)、VCC(直流+5V)及びVBB(直流+5V)を生成する。電源基板10は、例えば図4に示すように、変圧回路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といった、遊技媒体を検出する各種スイッチに供給され、これらのスイッチを作動させるために用いられる。
図4に示すように、変圧回路301から出力されたAC24Vは、例えば所定のコネクタや電源ラインを介して、払出制御基板15へと伝送される。VLPは、例えば所定のコネクタや電源ラインを介して、ランプ制御基板14へと伝送される。VSL、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、音声制御基板13、ランプ制御基板14、及び払出制御基板15へと伝送される。なお、演出制御基板12には、音声制御基板13又はランプ制御基板14(この実施の形態では、ランプ制御基板14)を経由してリセット信号が伝送されればよい。さらに、リセット信号を出力する回路は、電源監視回路303とは別個に設けられたウォッチドッグタイマ内蔵IC、あるいはシステムリセットICなどを用いて構成されてもよい。
パチンコ遊技機1への電力供給が停止するときには、電源監視回路303が、電源断信号を出力(ローレベルに設定)してから所定期間が経過したときに、リセット信号を出力(ローレベルに設定)する。ここでの所定期間は、例えば主基板11に搭載されている遊技制御用マイクロコンピュータ100及び払出制御基板15に搭載されている払出制御用マイクロコンピュータ150が、後述する電源断処理(図36に示すメイン側電源断処理、及び図55に示す払出側電源断処理)を実行するのに十分な時間であればよい。すなわち、電源監視回路303は、停電信号としての電源断信号を出力した後、遊技制御用マイクロコンピュータ100及び払出制御用マイクロコンピュータ150が所定の電源断処理を実行完了してから、動作停止信号としてのリセット信号を出力(ローレベルに設定)する。電源監視回路303から出力されたリセット信号を受信した遊技制御用マイクロコンピュータ100や、払出制御用マイクロコンピュータ150、音声制御基板13に搭載された音声データ生成回路及びスピーカドライバ、ランプ制御基板14に搭載されたランプデータ生成回路及びランプドライバ、さらにはランプ制御基板14を経由して入力されるリセット信号を受信した演出制御基板12は、動作停止状態となり、各種の制御処理の実行が停止される。また、パチンコ遊技機1への電力供給が開始され、例えば所定電圧(一例としてVCC)が所定値(一例として+5V強)を超えたときに、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)する。
図5は、パチンコ遊技機1への電力供給が開始されたとき、及び電力供給が停止するときにおける、AC24V、VLP、VCC、リセット信号及び電源断信号の状態を、模式的に示すタイミング図である。図5に示すように、パチンコ遊技機1への電力供給が開始されたときに、VLP及びVCCは徐々に規定値(直流+24V及び直流+5V)に達する。このとき、VLPが第1の所定値を超えると、電源監視回路303は電源断信号の出力を停止(ハイレベルに設定)してオフ状態とする。また、VCCが第2の所定値を超えると、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)してオフ状態とする。他方、パチンコ遊技機1への電力供給が停止するときに、VLP及びVCCは徐々に低下する。このとき、VLPが第1の所定値にまで低下すると、電源監視回路303は電源断信号をオン状態として出力(ローレベルに設定)する。また、VCCが第2の所定値にまで低下すると、電源監視回路303はリセット信号をオン状態として出力(ローレベルに設定)する。
図4に示す電源基板10が備えるクリアスイッチ304は、例えば押しボタン構造を有し、押下などの操作に応じてクリア信号を出力する。クリア信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。クリアスイッチ304から出力されたクリア信号は、例えば所定のコネクタや信号ラインを介して、主基板11へと伝送される。また、クリアスイッチ304の操作がなされていないときには、クリア信号の出力を停止(ハイレベルに設定)する。なお、クリアスイッチ304は、押しボタン構造以外の他の構成(例えばスライドスイッチ構造やトグルスイッチ構造、ダイヤルスイッチ構造など)であってもよい。
この実施の形態では、図6に示すように、電源基板10及び払出制御基板15は遊技機用枠3に設置され、主基板11は遊技盤2に設置されている。そして、電源基板10から払出制御基板15へと電源断信号が伝送され、払出制御基板15を経由して主基板11に電源断信号が入力される。また、電源基板10から主基板11へとクリア信号が伝送され、主基板11を経由して払出制御基板15にクリア信号が入力される。
図3に示す主基板11は、メイン側の制御基板であり、パチンコ遊技機1における遊技の進行を制御するための各種回路が搭載されている。主基板11は、主として、特図ゲームにおいて用いる乱数の設定機能、所定位置に配設されたスイッチ等からの信号の入力を行う機能、演出制御基板12や払出制御基板15などからなるサブ側の制御基板に宛てて、それぞれに指令情報の一例となる制御コマンドを制御信号として出力して送信する機能、ホールの管理コンピュータに対して各種情報を出力する機能などを備えている。また、主基板11は、特別図柄表示装置4を構成する各セグメントの点灯/消灯制御を行うことにより特別図柄表示装置4における特別図柄の変動表示を制御する一方で、普通図柄表示器40の点灯/点滅/発色制御を行うことにより普通図柄表示器40における普通図柄の変動表示を制御する。
図3に示すように、主基板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の表示制御を行うための指令信号を送信するための配線が接続されている。また、主基板11には、エラー解除スイッチ31からの検出信号を受信するための配線が接続されている。ここで、エラー解除スイッチ31は、遊技制御用マイクロコンピュータ100が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。
主基板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に画像データ信号を伝送する配線などが接続されている。なお、音声制御基板13に演出制御用マイクロコンピュータ120を搭載して、音声制御基板13が中継基板18を介して主基板11から送信される制御コマンドを受信するようにしてもよい。この場合、演出制御基板12に代えて画像表示装置5における表示動作を制御する表示制御基板を設けるようにし、音声制御基板13には、表示制御基板やランプ制御基板14に制御信号を伝送するための配線や、スピーカ8L、8Rに音声信号を伝送する配線が接続されるように構成すればよい。また、ランプ制御基板14が中継基板18を介して主基板11から送信される制御コマンドを受信するようにしてもよく、この場合、ランプ制御基板14には、表示制御基板や音声制御基板13に制御信号を伝送するための配線や、遊技効果ランプ9にランプ駆動信号を伝送する配線が接続されるように構成すればよい。また、音声制御基板13には、音声データ生成回路と、スピーカドライバと、が搭載されている。音声データ生成回路は、演出制御基板12からの制御信号に基づき、音声を合成して音声データを生成する。スピーカドライバは、音声データ生成回路から出力される音声データにデジタル/アナログ変換を施すなどして音声信号を生成してスピーカ8L、8Rに供給することによって音声を出力させる。また、ランプ制御基板14には、ランプデータ生成回路と、スピーカドライバと、が搭載されている。ランプデータ生成回路は、演出制御基板12からの制御信号に基づき、ランプデータ生成する。ランプドライバは、ランプデータ生成回路から出力されるランプデータに応じたランプ駆動信号を生成し、遊技効果ランプ9に供給することによってランプの点灯/消灯切換を行う。
主基板11と払出制御基板15との間では、例えば双方向でシリアル通信を行うことにより、各種の制御コマンドや通知信号が伝送される。払出制御基板15は、主基板11とは独立したサブ側の制御基板であり、主基板11から送信された制御コマンドや通知信号を受信して、払出モータ51による遊技球の払出動作を制御するための各種回路が搭載されている。すなわち、払出制御基板15は、払出モータ51による賞球の払出動作を制御する機能を備えている。また、払出制御基板15は、カードユニット70との通信結果に応じて払出モータ51の駆動制御を行って、球貸し動作を制御する機能を備えている。払出制御基板15には、満タンスイッチ26や球切れスイッチ27からの検出信号を受信するための配線や、払出モータ位置センサ71や払出カウントスイッチ72、エラー解除スイッチ73からの検出信号を受信するための配線が接続されている。加えて、払出制御基板15には、払出モータ51における遊技球の払出制御を行うための指令信号を送信するための配線や、エラー表示用LED74における表示制御を行うための指令信号を送信するための配線、カードユニット70との間で通信を行うための配線などが接続されている。また、払出制御基板15には、カードユニット70からの接続信号を分岐させて発射制御基板17に伝送させるための配線が接続されていてもよい。
ここで、満タンスイッチ26は、例えば遊技盤2の背面下方にて打球供給皿と余剰球受皿の間を連通する余剰球通路の側壁に設置され、余剰球受皿の満タンを検出するためのものである。賞球または球貸し要求に基づく遊技球が多数払い出されて打球供給皿が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は余剰球通路を経て余剰球受皿へと導かれる。さらに遊技球が払い出されると、例えば所定の感知レバーが満タンスイッチ26を押圧してオンする。
また、球切れスイッチ27は、例えば遊技盤2の背面にて遊技球を払出モータ51が設置された払出装置へと誘導する誘導レールの下流に設置され、誘導レールの下流にてカーブ樋を介して連通された2列の球通路内における遊技球の有無を検出するためのものである。一例として、球切れスイッチ27は、球通路に27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止され、球貸しの一単位の最大払出個数(例えば100円分に相当する25個)以上が確保されていることを確認可能にする。なお、誘導レールは、遊技盤2の背面上方にて補給球としての遊技球を貯留する貯留タンクからの遊技球を払出装置へと誘導するものであり、球通路の下部には、払出モータ51が設置された払出装置が固定されている。
エラー解除スイッチ73は、払出制御用マイクロコンピュータ150が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。エラー表示用LED74は、例えば7セグメントLEDにより構成され、払出制御用マイクロコンピュータ150にてセットされたエラーフラグなどに基づいて、各種のエラーに対応するエラーコードを表示するためのものである。
図3に示す発射制御基板17は、操作ノブ30の操作量に応じて、所定の発射装置による遊技球の発射動作を制御するためのものである。発射制御基板17には、例えば電源基板10あるいは主基板11からの駆動信号を伝送する配線や、カードユニット70からの接続信号を伝送する配線、及び操作ノブ30からの配線が接続されるとともに、発射モータ61への配線が接続されている。なお、カードユニット70からの接続信号は、払出制御基板15にて分岐されて発射制御基板17に伝送されてもよいし、カードユニット70から払出制御基板15を経由せずに発射制御基板17に伝送されてもよい。発射制御基板17は、操作ノブ30の操作量に対応して発射モータ61の駆動力を調整する。発射モータ61は、例えば発射制御基板17により調整された駆動力により発射バネを弾性変形させ、発射バネの付勢力を打撃ハンマに伝達して遊技球を打撃することにより、遊技球を操作ノブ30の操作量に対応した速度で遊技領域に向けて発射させる。
中継基板18を介して主基板11から演出制御基板12に対して送信される制御コマンドは、例えば電気信号として伝送される演出制御コマンドである。演出制御コマンドには、例えば画像表示装置5における画像表示動作を制御するために用いられる表示制御コマンドや、スピーカ8L、8Rからの音声出力を制御するために用いられる音声制御コマンド、遊技効果ランプ9や装飾用LEDの点灯動作などを制御するために用いられるランプ制御コマンドが含まれている。図7は、この実施の形態で用いられる表示制御コマンドの内容の一例を示す説明図である。表示制御コマンドは、例えば2バイト構成であり、1バイト目はMODE(コマンドの分類)を示し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(第7ビット[ビット7])は必ず“1”とされ、EXTデータの先頭ビットは“0”とされる。なお、図7に示された表示制御コマンドの形態は一例であって、他のコマンド形態を用いてもよい。また、この例では、表示制御コマンドが2バイト構成であるとしているが、表示制御コマンドを構成するバイト数は、1であってもよいし、3以上の複数であってもよい。この実施の形態では、表示制御コマンドとして、可変表示開始コマンド、表示結果通知コマンド、大当り開始コマンド、大当り終了コマンド、初期化通知コマンド、復旧報知コマンド、メイン側払出異常報知開始コマンド、メイン側払出異常報知終了コマンド、賞球過多報知コマンド、賞球不足報知コマンド、払出側異常報知開始コマンド、払出側異常報知終了コマンド、シリアル通信異常報知開始コマンド、シリアル通信異常報知終了コマンドなどが、予め用意されている。
図7に示す例において、コマンド80XXhは、特別図柄表示装置4による特図ゲームで特別図柄の変動表示を開始するときに送信される可変表示開始コマンドである。なお、XXhは、不特定の16進数であることを示し、表示制御コマンドによる指示内容に応じて任意に設定される値であればよい。可変表示開始コマンドは、例えば特別図柄表示装置4における特別図柄の変動表示を開始してから確定特別図柄を停止表示するまでの時間である特別図柄の可変表示時間(総変動時間)や、飾り図柄の可変表示態様をリーチとしてからハズレとなるリーチハズレとするか、リーチとすることなくハズレとなる通常ハズレとするかなどを示すEXTデータを含んでいる。
ここで、リーチとは、画像表示装置5にて導出表示した飾り図柄が大当り組合せの一部を構成しているときに未だ導出表示していない飾り図柄(リーチ変動図柄という)については変動表示が行われている表示態様、あるいは、全て又は一部の飾り図柄が大当り図柄の全て又は一部を構成しながら同期して変動表示している表示態様のことである。具体的には、予め定められた組合せ有効ライン上の一部の可変表示部に予め定められた大当り組合せを構成する図柄を停止表示しているときに未だ停止表示していない組合せ有効ライン上の可変表示部において変動表示が行われている表示態様(例えば、表示領域に設けられた「左」、「中」、「右」の可変表示部のうち「左」、「右」の可変表示部には大当り図柄の一部となる(例えば「7」)が停止表示されている状態で「中」の可変表示部は未だ変動表示が行われている表示態様)、あるいは、有効ライン上の可変表示部の全て又は一部の飾り図柄が大当り図柄の全て又は一部を構成しながら同期して変動表示している表示態様(例えば、表示領域に設けられた「左」、「中」、「右」の可変表示部の全てで変動表示が行われてどの状態が表示されても同一の飾り図柄が揃っている態様で変動表示が行われている表示態様)である。また、リーチの際に、通常と異なる演出がランプや音などで行われることがある。この演出をリーチ演出という。また、リーチの際に、画像表示装置5にてキャラクタ(人物等を模した演出表示であり、飾り図柄とは異なるもの)を表示させたり、背景の表示態様を変化させたり、飾り図柄の変動表示態様を変化させたりすることがある。このキャラクタの表示や背景の表示態様、飾り図柄の変動態様の変化を、リーチ演出表示という。
コマンド90XXhは、特別図柄表示装置4における特図ゲームでの確定特別図柄や、遊技状態が高確率状態となる確変大当りとなるか否かなどを示す表示結果通知コマンドである。具体的な一例として、コマンド9000hは、特図ゲームでの確定特別図柄がハズレ図柄となることを示すコマンドである。また、コマンド9001hは、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であること、及び遊技状態が高確率状態にはならない通常大当りであることを示すコマンドである。さらに、コマンド9002hは、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であること、及び遊技状態が高確率状態になる確変大当りであることを示すコマンドである。こうした表示結果通知コマンドに基づき、演出制御基板12の側では、飾り図柄の可変表示が行われた後に停止表示される飾り図柄の表示結果の種類をハズレとするか通常大当りとするか確変大当りとするかを決定することが可能になる。
コマンドA000hは、特別図柄表示装置4による特図ゲームや画像表示装置5における飾り図柄の可変表示にて大当りとなったことにより、大当り遊技状態が開始されることを示す大当り開始コマンドである。コマンドA100hは、大当り遊技状態が終了することを示す大当り終了コマンドである。
コマンドD000hは、パチンコ遊技機1への電力供給が開始されたときに、遊技制御用マイクロコンピュータ100により所定の初期化処理が実行された旨を通知する初期化通知コマンドである。コマンドD001hは、パチンコ遊技機1への電力供給が開始されたときに、遊技制御用マイクロコンピュータ100に内蔵されたRAM106(図10)の保存データに基づく所定の復旧処理が実行された旨を示す復旧通知コマンドである。
コマンドD002hは、主基板11の側において賞球の払出に関わる異常発生が検出された旨の報知を開始させるためのメイン側払出異常報知開始コマンドである。コマンドD003hは、メイン側払出異常報知開始コマンドに基づいて開始された報知を終了させるためのメイン側払出異常報知終了コマンドである。コマンドD004hは、賞球の過大な払出である賞球過多が生じた旨を報知させるための賞球過多報知コマンドである。コマンドD005hは、賞球の過小な払出である賞球不足が生じた旨を報知させるための賞球不足報知コマンドである。
コマンドD006hは、払出制御基板15の側において賞球の払出に関わる異常が発生した旨の報知を開始させるための払出側異常報知開始コマンドである。コマンドD007hは、払出側異常報知開始コマンドに基づいて開始された報知を終了させるための払出側異常報知終了コマンドである。コマンドD008hは、主基板11と払出制御基板15との間で行われるシリアル通信における動作異常が発生した旨の報知を開始させるためのシリアル通信異常報知開始コマンドである。コマンドD009hは、シリアル通信異常報知開始コマンドに基づいて開始された報知を終了させるためのシリアル通信異常報知終了コマンドである。
主基板11から払出制御基板15に対して送信される制御コマンドは、例えば電気信号として伝送される払出制御コマンドである。また、払出制御基板15から主基板11に対しては、例えば電気信号としての払出通知コマンドなどが送信される。なお、以下の説明では、主基板11及び払出制御基板15のいずれか一方から他方に対する所定動作の指令だけでなく、一方での動作状態を他方に通知する通知信号も、払出制御コマンドや払出通知コマンドに含まれるものとする。
図8は、主基板11と払出制御基板15との間で送受信されるコマンドの構成例を示す説明図である。図8(A)に示すように、主基板11から払出制御基板15に対して送信される払出制御コマンドと、払出制御基板15から主基板11に対して送信される払出通知コマンドは、いずれも2バイト構成であり、1バイト目を反転させることで2バイト目となるように構成されている。そして、各バイトの先頭ビット(第7ビット[ビット7])をヘッダとして、そのヘッダを異ならせることにより、1バイト目と2バイト目の区別を可能にしている。例えば、1バイト目におけるヘッダは“0”の固定値に設定されている一方で、2バイト目におけるヘッダは“1”の固定値に設定されている。
主基板11から払出制御基板15に対して送信される払出制御コマンドには、払出用初期化コマンド、払出数指定コマンド、ACKフィードバックコマンドが含まれている。払出用初期化コマンドは、パチンコ遊技機1への電力供給が開始されたときに、遊技制御用マイクロコンピュータ100により所定の初期化処理が実行された旨を示すコマンドであり、例えば図8(B)に示すようなビット値(16進数表示ではCF30h)で構成されている。払出数指定コマンドは、払い出すべき賞球の数を示すコマンドであり、例えば図8(C)に示すようなビット値で構成されている。ここで、払出数指定コマンドにおける1バイト目及び2バイト目の第3〜第0ビット[ビット3−0]は、払い出すべき賞球の個数に応じて設定される値であればよい。図8(D)には、この実施の形態で用いられる払出数指定コマンドが16進数表示で示されている。図8(D)に示すコマンドE11Ehは、払い出すべき賞球個数が15個であることを示す第1払出数指定コマンドである。コマンドE916hは、払い出すべき賞球個数が7個であることを示す第2払出数指定コマンドである。コマンドEC13hは、払い出すべき賞球個数が4個であることを示す第3払出数指定コマンドである。この実施の形態では、始動口スイッチ22で遊技球が検出されると4個の賞球払出を行い、入賞口スイッチ25A〜25Dのいずれかで遊技球が検出されると7個の賞球払出を行い、カウントスイッチ24で遊技球が検出されると15個の賞球払出を行う。
払出制御基板15の払出制御に応じて遊技球を払い出すための回転動作を行う払出モータ51は、例えば図9に示すような3つのケース91、92、93から構成された払出ケースの内部に設けられた払出装置に含まれている。ケース91、92の上部には、それぞれ球通路と連通する穴85、86が設けられており、遊技球は、この穴85、86から払出装置内へと流入する。また、払出モータ51の回転軸にはギア87が嵌合されており、払出ケースの内部には、ギア87と噛み合うギア88と、ギア88の中心軸に嵌合して球載置部を有するカム89と、カム89の下方における球通路90とが設けられている。例えば、穴85、86から流入した遊技球は、カム89の球載置部が1/3回転するごとに1個ずつ交互に球通路90を経て落下する。さらに、払出ケースの内部には、例えば発光素子(LED)と受光素子とから構成される払出モータ位置センサ71が設けられている。払出モータ位置センサ71は、払出モータ51の回転位置、即ち払出モータ51の回転量(払出の動作量)を検出するためのセンサであり、遊技球の詰まり、いわゆる球噛みを検出するために用いられる。払出ケースの内部に設けられた球通路90の下部には、例えば近接スイッチによる払出カウントスイッチ72が配置されている。払出カウントスイッチ72は、球通路90から1個の遊技球が落下するごとにオンして、所定の検出信号を払出制御基板15に送信する。
図8(D)に示すコマンドF00Fhは、払出制御基板15から主基板11に対して送信された賞球ACKコマンドを主基板11の側で受信したことを示す受信確認受付信号となるACKフィードバックコマンドである。
図8(F)は、払出制御基板15から主基板11に対して送信される払出通知コマンドの構成例を示す説明図である。払出通知コマンドには、賞球ACKコマンド、払出エラー通知コマンド、払出エラー解除コマンドが含まれている。図8(F)に示すコマンドA0F5hは、主基板11から払出制御基板15に対して送信された払出数指定コマンドを払出制御基板15の側で受信したことを示す受信確認信号となる賞球ACKコマンドである。コマンドB0F4hは、払出制御基板15の側において遊技球の払出に関わる異常が発生した旨を主基板11の側に通知するための払出エラー通知コマンドである。コマンドB1E4hは、払出制御基板15の側で発生したエラーが解除された旨を主基板11の側に通知するための払出エラー解除コマンドである。
図3に示すように、主基板11には、遊技制御用マイクロコンピュータ100やスイッチ回路111、ソレノイド回路112が搭載されている。スイッチ回路111には、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24、入賞口スイッチ25A〜25D、全入賞球検出スイッチ29、エラー解除スイッチ31などの各種スイッチからの検出信号が入力される。スイッチ回路111は、これらの検出信号を取り込んで、遊技制御用マイクロコンピュータ100に伝送する。ソレノイド回路112は、遊技制御用マイクロコンピュータ100からの指令に従って各ソレノイド81、82に対する駆動信号を出力する。
図10は、主基板11に搭載された遊技制御用マイクロコンピュータ100の構成例を示す図である。図10に示す遊技制御用マイクロコンピュータ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ビット乱数などといった、更新範囲が互いに異なる複数種類の乱数を生成する回路である。図11は、乱数回路103の構成例を示すブロック図である。図11に示すように、乱数回路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の方式は、数値データが最終値まで更新されたときに、自動的に順列を変更する方式であり、12ビット乱数列変更レジスタであるARSC175Aや16ビット乱数列変更レジスタであるBRSC175Bにおける格納値に関わらず、順列の変更が行われる。また、第2の方式は、数値データが最終値まで更新されたときに、ARSC175AやBRSC175Bに所定の数値順列変更データが設定されていることに応じて順列を変更する方式である。第3の方式は、数値データが最終値まで更新されたときでも、順列の変更は行わない方式であり、乱数列変更回路176A、176Bが常に一定の規則に従った順序で乱数値となる数値データR1、R2を出力する。
図12(A)は、ARSC175Aの構成例を示すブロック図であり、図12(B)は、BRSC175Bの構成例を示すブロック図である。図12(A)に示すARSC175Aは、ユーザプログラムによる書込みと、セレクタ174Aを介した乱数列変更回路176Aによる読出しが可能な8ビットのレジスタであり、その初期値は“0”(=00h)に設定されている。なお、ユーザプログラムによるARSC175Aに対する書込みは、第0ビット[ビット0]に対する“1”の書込みだけが有効である。順列を変更する方式として、セレクタ174Aによって前述した第2の方式が選択されているときに、ARSC175Aの第0ビット[ビット0]に対して“1”が書き込まれると、数値データが最終値まで更新された次の周期の始めから、乱数列変更回路176Aが数値データを出力する順序を定める規則である更新規則を、変更することができる。図12(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は、例えばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの更新順である順列の変更を行うことができる。
図13は、12ビット乱数用に設けられた乱数列変更回路176Aにおける動作の一例として、セレクタ174Aによって前述した第1の方式が選択されているときの順列変更動作を示す説明図である。セレクタ174Aによって第1の方式が選択されているときには、乱数生成回路173Aから出力される数値データ列C1が所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更回路176Aが自動的に順列を変更する。図13に示す動作例では、始めに乱数列変更回路176Aから出力される数値データ列R1は、「1→2→…→4095」である。
そして、乱数生成回路173Aから出力された数値データ列C1の値が所定の最終値に達したときには、乱数生成回路173Aから出力された乱数一巡信号RIJ1が、セレクタ174Aを介して乱数列変更回路176Aに入力される。乱数列変更回路176Aは、乱数一巡信号RIJ1が入力されたことに応答して、数値データの更新規則を変更する。このとき、乱数列変更回路176Aは、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしてもよい。あるいは、乱数列変更回路176Aは、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしてもよい。図13に示す動作例では、1回目の更新規則の変更による順列変更により、乱数列変更回路176Aから出力される数値データ列R1が、「4095→4094→…→1」となる。その後、2回目の更新規則の変更による順列変更が行われることにより、乱数列変更回路176Aから出力される数値データ列R1は、「1→3→…→4095→2→…→4094」となる。図13に示す動作例では、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の並びを変更する。
図14は、12ビット乱数用に設けられた乱数列変更回路176Aにおける動作の他の一例として、セレクタ174Aによって前述した第2の方式が選択されているときの順列変更動作を示す説明図である。セレクタ174Aによって第2の方式が選択されているときには、乱数生成回路173Aから出力される数値データ列C1が所定の初期値から所定の最終値まで循環的に更新され、かつ、12ビット乱数列変更レジスタであるARSC175Aに数値順列変更データとなる“1”(=01h)が設定されていることに応答して、数値データの更新規則を変更する。図14に示す動作例では、始めに乱数列変更回路176Aから出力される数値データ列R1は、「1→2→…→4095」である。この後、CPU104がROM105に格納されたユーザプログラムを実行することによって、所定のタイミングでARSC175Aに数値順列変更データとなる“1”(=01h)が書き込まれて設定されたものとする。
そして、セレクタ174Aによって第2の方式が選択されているときには、ARSC175Aに設定された数値順列変更データが乱数列変更回路176Aによって読み出され、数値データの更新規則を変更するための設定が行われる。このとき、乱数列変更回路176Aは、乱数生成回路173Aから出力された数値データ列C1の値が所定の最終値に達したことに応じて、例えば複数種類の更新規則のいずれかを選択することなどにより、更新規則を変更する。図14に示す動作例では、乱数列変更回路176Aが乱数生成回路173Aから出力された数値データ列C1における最終値に対応する数値データ「4095」を出力した後、数値順列変更データが設定されたことに応じて更新規則を変更する。その後、乱数列変更回路176Aは、変更後の更新規則に従った数値データ列R1として、「4095→4094→…→1」を出力する。ARSC175Aは、乱数列変更回路176Aによって数値順列変更データが読み出されたときに初期化される。そのため、再びARSC175Aに数値順列変更データが設定されるまでは、乱数列変更回路176Aから出力される数値データ列R1が、「4095→4094→…→1」となる。
CPU104がROM105に格納されたユーザプログラムを実行することによって、数値順列変更データとなる“1”(=01h)がARSC175Aに再び設定されると、数値データの更新規則が再度変更される。図14に示す動作例では、乱数列変更回路176Aが乱数生成回路173Aから出力された数値データ列C1における最終値に対応する数値データ「1」を出力した後、数値順列変更データが設定されたことに応じて更新規則を変更する。その後、乱数列変更回路176Aは、変更後の更新規則に従った数値データ列R1として、「1→3→…→4095→2→…4094」を出力する。
16ビット乱数用に設けられた乱数列変更回路176Bは、セレクタ174Bによって前述した第2の方式が選択されているときには、乱数生成回路173Bから出力される数値データ列C2が所定の初期値から所定の最終値まで循環的に更新され、かつ、16ビット乱数列変更レジスタであるBRSC175Bに数値順列変更データとなる“1”(=01h)が設定されていることに応答して、数値データの更新規則を変更する。こうして、乱数列変更回路176Bは、変更後の更新規則に従った数値データ列R2を出力することができる。
図11に示す最大値比較回路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ビットの乱数値として出力できるようにする。
図15は、12ビット乱数用に設けられた最大値比較回路177Aによる数値データの再設定動作を示す説明図である。図15に示す動作例では、図15(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に入力させることができる。
図10に示す反転回路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から出力される数値データを乱数値として格納する。図16(A)は、12ビット乱数値レジスタ(ARND)となる乱数値レジスタ181Aの構成例を示すブロック図であり、図16(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には、図16(C)に示すような12ビット乱数最大値読出レジスタ(ARMX)や、図16(D)に示すような16ビット乱数最大値読出レジスタ(BRMX)が設けられていてもよい。図16(C)に示す12ビット乱数最大値読出レジスタ(ARMX)は、ROM105のユーザプログラム管理エリアに設定された12ビット乱数最大値(KRMS)を確認可能とするレジスタであり、16ビットのレジスタのうちで、上位8ビット用のレジスタARMX(H)の第7〜第4ビット[ビット7−4]における格納値を無効とすることにより、12ビットの数値を格納するレジスタとして用いられる。図16(D)に示す16ビット乱数最大値読出レジスタ(BRMX)は、ROM105のユーザプログラム管理エリアに設定された16ビット乱数最大値(KRXS)を確認可能とする16ビットのレジスタである。
図10に示すCPU104は、ROM105に記憶されているユーザプログラムやデータを読出し、RAM106をワークエリアとして使用して、プログラムに従った制御動作を行う。図17は、遊技制御用マイクロコンピュータ100におけるアドレスマップの一例を示す図である。図17に示すように、0000h番地〜01FFh番地の領域は、RAM106に割り当てられたワークエリアである。また、1000h番地〜101Ch番地の領域は、乱数回路103やタイマ回路107、シリアル通信回路108等の内蔵レジスタに割り当てられた内蔵レジスタエリアである。2000h番地〜200Fh番地の領域は、遊技制御用マイクロコンピュータ100に内蔵されたアドレスデコーダに割り当てられたチップセレクト信号デコードエリアである。E000h番地〜FFFFhの領域は、ROM105に割り当てられており、ユーザプログラム管理エリアとユーザプログラム/データエリアとを含んでいる。
ROM105におけるE080h番地〜FFFFh番地の領域であるユーザプログラム/データエリアには、ユーザにより予め作成されたユーザプログラムやユーザデータが記憶される。ROM105におけるE000h番地〜E07Fh番地の領域であるユーザプログラム管理エリアには、CPU104がユーザプログラムを実行する際に用いられてパチンコ遊技機1の動作内容を設定するためのユーザプログラム管理データが記憶される。
図18は、図17に示すユーザプログラム管理エリアにおけるアドレスマップの一例を示す図である。図18に示すように、E01Bh番地の領域には、遊技制御用マイクロコンピュータ100にて発生する複数種類のIクラス割込み(IRQ)の要因のうちで、最も優先度を高くするものを設定する最優先割込み設定(KHPR)を示すデータが記憶される。図19(A)は、E01Bh番地の領域に記憶される最優先割込み設定データの設定例を示す説明図である。また、図19(B)は、最優先割込み設定データの具体的な設定の一例として、デフォルトにおける割込み要因の優先順位と、E01Bh番地の領域に「05h」を設定した場合における割込み要因の優先順位とを示している。
図19(B)に示すように、E01Bh番地の領域に最優先割込み設定データを設定しないデフォルトの状態では、所定のIRQ端子への信号入力による割込み要因が最も優先順位が高く、続いてタイマ回路107の各チャネル(CH0〜CH3)からの割込み要求の優先順位が高く、シリアル通信回路108からのエラー割込み要求、受信割込み要求、送信割込み要求の順番で優先順位が低くなるように設定されている。すなわち、デフォルトの状態でも、シリアル通信回路108からの割込み要求のうちではエラー割込み要求が、受信割込み要求や送信割込み要求といった他の割込み要因に比べて優先度が高くなっている。そのため、シリアル通信回路108からのエラー割込み要求に基づく割込み処理は、シリアル通信回路108からのエラー割込み要求とは異なる受信割込み要求や送信割込み要求などに基づく割込み処理に比べて、優先して実行されることになる。
また、E01Bh番地の領域に最優先割込み設定データとして「05h」を設定した場合には、シリアル通信回路108からのエラー割込み要求の優先順位が、IRQ端子への信号入力による割込み要因や、タイマ回路107からの割込み要求の優先順位よりも高くなり、遊技制御用マイクロコンピュータ100にて発生する複数種類のIクラス割込み(IRQ)の要因のうちで、最も優先度が高くなる。このように、E01Bh番地の領域に最優先割込み設定データを設定することで、複数種類のIクラス割込み(IRQ)の要因における優先順位を、デフォルトの設定から変更することができる。
図18に示すE01Ch番地の領域と、E01Dh番地の領域には、乱数回路103の初期設定を行うために用いられる第1の乱数初期設定(KRSS1)を示すデータと、第2の乱数初期設定(KRSS2)を示すデータが記憶される。図20(A)は、E01Ch番地の領域に記憶される第1の乱数初期設定(KRSS1)を示すデータの内容を例示する説明図である。図20(B)は、E01Dh番地の領域に記憶される第2の乱数初期設定(KRSS2)を示すデータの内容を例示する説明図である。
図20(A)及び(B)に示すように、第1及び第2の乱数初期設定データはいずれも8ビットのデータから構成されるが、第1の乱数初期設定データの第7〜第5ビット[ビット7−5]は、未使用となっている。図20(A)に示す第1乱数初期設定データの第4及び第3ビット[ビット4−3]は、乱数回路103にて生成される12ビット乱数と16ビット乱数のうちで使用する乱数を示している。図20(A)に示す例では、第1乱数初期設定データの第4及び第3ビット[ビット4−3]が“00”であるときには12ビット乱数及び16ビット乱数のいずれも使用しないことを示し、“01”であるときには12ビット乱数のみを使用することを示し、“10”であるときには16ビット乱数のみを使用することを示し、“11”であるときには12ビット乱数及び16ビット乱数の双方を使用することを示している。第1乱数初期設定データの第2ビット[ビット2]は、乱数回路103にて生成される16ビット乱数の更新周期についての設定を示している。図20(A)に示す例では、第1乱数初期設定データの第2ビット[ビット2]が“0”であるときには16ビット乱数を内部システムクロックCLKの周期で更新することを示し、“1”であるときには16ビット乱数を内部システムクロックCLKの16倍の周期で更新することを示している。
第1乱数初期設定データの第1及び第0ビット[ビット1−0]は、12ビット乱数における2周目以降のスタート値についての設定を示している。図20(A)に示す例では、第1乱数初期設定データの第1及び第0ビット[1−0]が“00”であるときにはスタート値の変更を行わないことを示し、“01”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づく値に変更することを示し、“10”であるときにはユーザRAMであるRAM106における格納データの加算値に変更することを示し、“11”であるときにはユーザRAMであるRAM106における指定アドレスの格納値に変更することを示している。
図20(B)に示す第2乱数初期設定データの第7ビット[ビット7]は、12ビット乱数における1周目のスタート値についての設定を示している。図20(B)に示す例では、第2乱数初期設定データの第7ビット[ビット7]が“0”であるときには12ビット乱数における1周目のスタート値をデフォルト値である「001h」(12ビット値の16進数表示)とすることを示し、“1”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づく値とすることを示している。
第2乱数初期設定データの第6及び第5ビット[ビット6−5]は、12ビット乱数における乱数列の変更方法についての設定を示している。図20(B)に示す例では、第2乱数初期設定データの第6及び第5ビット[ビット6−5]が“00”であるときには順列を変更しない(第3の方式とする)ことを示し、“10”であるときには2周目以降にてユーザプログラムによる変更を可能とする(第2の方式とする)ことを示し、“11”であるときには2周目以降にて自動的に変更する(第1の方式とする)ことを示している。
第2乱数初期設定データの第4ビット[ビット4]は、16ビット乱数における1周目のスタート値についての設定を示している。図20(B)に示す例では、第2乱数初期設定データの第4ビット[ビット4]が“0”であるときには16ビット乱数における1周目のスタート値をデフォルト値である「0001h」(16ビット値の16進数表示)とすることを示し、“1”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づく値とすることを示している。
第2乱数初期設定データの第3及び第2ビット[ビット3−2]は、16ビット乱数における2周目以降のスタート値についての設定を示している。図20(B)に示す例では、第2乱数初期設定データの第3及び第2ビット[ビット3−2]が“00”であるときにはスタート値の変更を行わないことを示し、“01”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づく値に変更することを示し、“10”であるときにはユーザRAMであるRAM106における格納データの加算値に変更することを示し、“11”であるときにはユーザRAMであるRAM106における指定アドレスの格納値に変更することを示している。
第2乱数初期設定データの第1及び第0ビット[ビット1−0]は、16ビット乱数における乱数列の変更方法についての設定を示している。図20(B)に示す例では、第2乱数初期設定データの第1及び第0ビット[ビット1−0]が“00”であるときには順列を変更しない(第3の方式とする)ことを示し、“10”であるときには2周目以降にてユーザプログラムによる変更を可能とする(第2の方式とする)ことを示し、“11”であるときには2周目以降にて自動的に変更する(第1の方式とする)ことを示している。
図18に示すE01Eh番地の領域と、E01Fh番地の領域には、乱数回路103にて生成される12ビット乱数の最大値を設定するために用いられる12ビット乱数最大値(KRMS)を示すデータが記憶される。図18に示す例では、E01Eh番地の領域に、12ビット乱数最大値(KRMS)を示すデータの上位バイト(8ビット)が記憶され、E01Fh番地の領域に、12ビット乱数最大値(KRMS)を示すデータの下位バイト(8ビット)が記憶される。
E020h番地の領域と、E021h番地の領域には、乱数回路103にて生成される16ビット乱数の最大値を設定するために用いられる16ビット乱数最大値(KRXS)を示すデータが記憶される。図18に示す例では、E020h番地の領域に、16ビット乱数最大値(KRXS)を示すデータの上位バイト(8ビット)が記憶され、E021h番地の領域に、16ビット乱数最大値(KRXS)を示すデータの下位バイト(8ビット)が記憶される。
E022h番地の領域と、E023h番地の領域には、シリアル通信回路108の初期設定を行うために用いられる第1のシリアル通信初期設定(KSCM1)を示すデータと、第2のシリアル通信初期設定(KSCM2)を示すデータが記憶される。図21(A)は、E022h番地の領域に記憶される第1のシリアル通信初期設定(KSCM1)を示すデータの内容を例示する説明図である。図21(B)は、E023h番地の領域に記憶される第2のシリアル通信初期設定(KSCM2)を示すデータの内容を例示する説明図である。
図21(A)及び(B)に示すように、第1及び第2のシリアル通信初期設定データはいずれも8ビットのデータから構成されるが、第1のシリアル通信初期設定データの第7及び第6ビット[ビット7−6]と、第2のシリアル通信初期設定データの第7〜第4ビット[ビット7−4]は、未使用となっている。図21(A)に示す第1シリアル通信初期設定データの第5ビット[ビット5]は、送信データエンプティ時の割込みを使用するか否かの設定を示している。ここで、送信データエンプティ時の割込みは、シリアル通信回路108の送信動作部202(図25)に設けられた送信データレジスタから送信用シフトレジスタにデータが転送されたときに発生する割込みであり、シリアル通信回路108にて発生する送信割込みに含まれる。図21(A)に示す例では、第1シリアル通信初期設定データの第5[ビット5]が“0”であるときには送信データエンプティ時の割込みを発生させないことを示し、“1”であるときには送信データエンプティ時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第4ビット[ビット4]は、送信完了時の割込みを使用するか否かの設定を示している。ここで、送信完了時の割込みは、シリアル通信回路108の送信動作部202によるデータ送信動作が完了したときに発生する割込みであり、シリアル通信回路108にて発生する送信割込みに含まれる。図21(A)に示す例では、第1シリアル通信初期設定データの第4ビット[ビット4]が“0”であるときには送信完了時の割込みを発生させないことを示し、“1”であるときには送信完了時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第3ビット[ビット3]は、受信データ転送時の割込みを使用するか否かの設定を示している。ここで、受信データ転送時の割込みは、シリアル通信回路108の受信動作部201(図25)に設けられた受信用シフトレジスタの値が受信データレジスタに転送されたときに発生する割込みであり、シリアル通信回路108にて発生する受信割込みに含まれる。図21(A)に示す例では、第1シリアル通信初期設定データの第3ビット[ビット3]が“0”であるときには受信データ転送時の割込みを発生させないことを示し、“1”であるときには受信データ転送時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第2ビット[ビット2]は、アイドルライン検出時の割込みを使用するか否かの設定を示している。ここで、アイドルライン検出時の割込みは、シリアル通信回路108の受信動作部201における受信データとして1フレーム分の“1”からなるアイドルラインが検出されたときに発生する割込みであり、シリアル通信回路108にて発生する受信割込みに含まれる。図21(A)に示す例では、第1シリアル通信初期設定データの第2ビット[ビット2]が“0”であるときにはアイドルライン検出時の割込みを発生させないことを示し、“1”であるときにはアイドルライン検出時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第1ビット[ビット1]は、シリアル通信回路108の送信動作部202を使用するか否かの設定を示している。図21(A)に示す例では、第1シリアル通信初期設定データの第1ビット[ビット1]が“0”であるときには送信動作部202によるシリアル送信を使用しないことを示し、“1”であるときには送信動作部202によるシリアル送信を使用することを示している。
第1シリアル通信初期設定データの第0ビット[ビット0]は、シリアル通信回路108の受信動作部201を使用するか否かの設定を示している。図21(A)に示す例では、第1シリアル通信初期設定データの第0ビット[ビット0]が“0”であるときには受信動作部201によるシリアル受信を使用しないことを示し、“1”であるときには受信動作部201によるシリアル受信を使用することを示している。
図21(B)に示す第2シリアル通信初期設定データの第3ビット[ビット3]は、オーバーランエラー時の割込みを使用するか否かの設定を示している。ここで、オーバーランエラー時の割込みは、シリアル通信回路108における受信データがユーザプログラムによって読出される以前に、受信動作部201に設けられた受信用シフトレジスタが次のデータを受信したときに発生するエラーに基づく割込みであり、シリアル通信回路108にて発生するエラー割込みに含まれる。図21(B)に示す例では、第2シリアル通信初期設定データの第3ビット[ビット3]が“0”であるときにはオーバーランエラー時の割込みを発生させないことを示し、“1”であるときにはオーバーランエラー時の割込みを発生させることを示している。
第2シリアル通信初期設定データの第2ビット[ビット2]は、ノイズエラー時の割込みを使用するか否かの設定を示している。ここで、ノイズエラー時の割込みは、シリアル通信回路108にて受信したデータのノイズを検出したときに発生するエラーに基づく割込みであり、シリアル通信回路108にて発生するエラー割込みに含まれる。図21(B)に示す例では、第2シリアル通信初期設定データの第2ビット[ビット2]が“0”であるときにはノイズエラー時の割込みを発生させないことを示し、“1”であるときにはノイズエラー時の割込みを発生させることを示している。
第2シリアル通信初期設定データの第1ビット[ビット1]は、フレーミングエラー時の割込みを使用するか否かの設定を示している。ここで、フレーミングエラー時の割込みは、シリアル通信回路108にて受信したデータのストップビットに“0”を検出したときに発生するエラーに基づく割込みであり、シリアル通信回路108にて発生するエラー割込みに含まれる。図21(B)に示す例では、第2シリアル通信初期設定データの第1ビット[ビット1]が“0”であるときにはフレーミングエラー時の割込みを発生させないことを示し、“1”であるときにはフレーミングエラー時の割込みを発生させることを示している。
第2シリアル通信初期設定データの第0ビット[ビット0]は、パリティエラー時の割込みを使用するか否かの設定を示している。ここで、パリティエラー時の割込みは、シリアル通信回路108にて受信したデータのバリティと受信データ内におけるパリティビットとが一致しないときに発生するエラーに基づく割込みであり、シリアル通信回路108にて発生するエラー割込みに含まれる。図21(B)に示す例では、第2シリアル通信初期設定データの第0ビット[ビット0]が“0”であるときにはパリティエラー時の割込みを発生させないことを示し、“1”であるときにはパリティエラー時の割込みを発生させることを示している。
このように、シリアル通信回路108にて発生するエラー割込みには、パリティエラー時の割込みと、オーバーランエラー時の割込みと、フレーミングエラー時の割込みと、ノイズエラー時の割込みといった、4種類の割込みが含まれている。
図10に示す遊技制御用マイクロコンピュータ100が備えるROM105には、ゲーム制御用のユーザプログラムの他にも、遊技の進行を制御するために用いられる各種のデータテーブルが格納されている。例えば、ROM105は、CPU104が各種の判定や決定を行うために用意された複数の判定テーブルや決定テーブルを構成するテーブルデータを記憶する。判定テーブルとしては、特別図柄表示装置4による特図ゲームにおける確定特別図柄を大当り図柄として可変表示結果を大当りとするか否かを判定するために参照される大当り判定テーブルや、大当りとするときに確変大当りとするか通常大当りとするかを判定するために参照される確変判定テーブル、ハズレとするときに飾り図柄の可変表示態様をリーチとするか否かを判定するために参照されるリーチ判定テーブルなどが含まれている。例えば、大当り判定テーブルは、可変表示結果を大当りとするか否かの判定結果と、乱数回路103から読出される乱数値(一例としては、16ビット乱数の値)とを対応付ける判定データなどから構成されていればよい。
また、ROM105に記憶される判定テーブルには、特図ゲームでの可変表示結果として導出表示する確定特別図柄を決定するための確定特別図柄決定テーブルや、特別図柄表示装置4による特図ゲームや画像表示装置5における飾り図柄の可変表示中での図柄等の可変表示パターンを決定するための可変表示パターン決定テーブル、各種の演出表示を実行するか否かを決定するための演出表示実行決定テーブルなどが含まれている。
遊技制御用マイクロコンピュータ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からのエラー割込み要求に応答してオン状態にセットされる。通信エラー報知フラグは、シリアル通信エラーフラグがオン状態となったことに応じて、画像表示装置5における表示により異常が発生した旨の報知が開始されるときに、オン状態にセットされる。
送信設定可能フラグは、シリアル通信回路108にてデータ送信を行うための設定が可能となったことを示す。例えば、送信設定可能フラグは、シリアル通信回路108からの送信データエンプティ時の割込み要求に応答してオン状態にセットされる。送信完了フラグは、シリアル通信回路108にてデータ送信が完了したことを示す。例えば、送信完了フラグは、シリアル通信回路108からの送信完了時の割込み要求に応答してオン状態にセットされる。
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に対応して実行される特別図柄プロセス処理(図40のステップS78、及び図51)において、どの処理を選択・実行すべきかを示す。大当りフラグは、特別図柄表示装置4による特図ゲームを開始するときに、その特図ゲームにおける可変表示結果が大当りとなる旨の判定がなされると、オン状態にセットされる。その後、特図ゲームにて大当りとなったことに基づく大当り遊技状態が終了するときには、大当りフラグはクリアされてオフ状態となる。確変中フラグは、特別図柄表示装置4による特図ゲームにおける可変表示結果が確変大当りとなり、大当りとなったことに基づく大当り遊技状態が終了するときなどに、オン状態にセットされる。他方、確変中フラグは、例えば高確率状態における特図ゲームの実行回数が所定の確変終了基準値に達したときや、特図ゲームにおける可変表示結果が通常大当りとなるときなどに、クリアされてオフ状態となる。
賞球プロセスフラグは、賞球個数の設定などを行う賞球処理(図40のステップS75、及び図44(A))において、どの処理を選択・実行すべきかを示す。再送信フラグは、払出制御基板15に対して払出制御コマンドを送信するための設定を行った後、払出制御基板15からの賞球ACKコマンドを受信できずに所定の賞球ACK待ち時間が経過したときに、オン状態にセットされる。他方、再送信フラグは、賞球ACK待ち時間が経過する前に賞球ACKコマンドを受信できたときなどに、クリアされてオフ状態となる。
賞球ACK受信フラグは、払出制御基板15からの賞球ACKコマンドを受信できたか否かを示す。すなわち、賞球ACK受信フラグは、賞球ACKコマンドを受信したときにオン状態にセットされる。払出異常報知フラグは、再送信フラグや払出用通信エラー検出フラグがオン状態となったことに応じて、画像表示装置5における表示により異常が発生した旨の報知が開始されるときに、オン状態にセットされる。
払出エラー通知フラグは、払出制御基板15からの払出エラー通知コマンドを受信したか否かを示す。すなわち、払出エラー通知フラグは、払出エラー通知コマンドを受信したときにオン状態にセットされる。払出エラー報知フラグは、払出エラー通知フラグがオン状態となったことに応じて、画像表示装置5における表示により異常が発生した旨の報知が開始されるときに、オン状態にセットされる。払出エラー解除フラグは、払出制御基板15からの払出エラー解除コマンドを受信したか否かを示す。すなわち、払出エラー解除フラグは、払出エラー解除コマンドを受信したときにオン状態にセットされる。
遊技制御タイマ設定部134には、例えば賞球制御タイマや可変表示時間タイマなどが設けられている。賞球制御タイマは、主基板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による特図ゲームや普通図ゲームの制御に用いられる。
図10に示す遊技制御用マイクロコンピュータ100が備えるタイマ回路107は、例えば8ビットのプログラマブルカウンタを4チャネル(CH0〜CH3)内蔵して構成され、リアルタイム割込みの発生や時間計測を可能とする回路である。例えば、タイマ回路107では、チャネルごとに予め設定したカウント値から所定周期でのカウントダウンを開始し、カウント値が「00」となったチャネルがあるときには、そのチャネルに対応した割込みフラグをオン状態にセットする。このとき、割込み許可状態であれば、タイマ回路107がCPU104に対して割込み要求を発生する。
遊技制御用マイクロコンピュータ100が備えるシリアル通信回路108は、例えば全二重、非同期、標準NRZ(Non Return to Zero)フォーマットで通信データを取扱う回路であり、図25に例示するような構成を有している。図25に例示するシリアル通信回路108は、受信動作部201と、送信動作部202と、シリアル通信データレジスタ203と、シリアルステータスレジスタ204と、シリアル制御レジスタ205とを備えている。
受信動作部201は、シリアル制御レジスタ205の所定ビットにおける設定に基づいた受信動作により、シリアル通信で伝送される受信データをサンプリングして取得し、取得した受信データをシリアル通信データレジスタ203に転送可能とする。また、受信動作部201は、受信動作における動作状態などに応じて、シリアルステータスレジスタ204の所定ビットを“0”または“1”に設定する。受信動作部201は、例えばシリアル通信で順次に伝送された受信データをシフトさせながら格納する受信用シフトレジスタや、受信用シフトレジスタから読出した受信データを一時的に格納する受信データレジスタ、シリアル通信における受信動作に関わる割込み要因の発生を制御する割込み制御回路などを備えて構成されている。
送信動作部202は、シリアル制御レジスタ205の所定ビットにおける設定に基づいた送信動作により、シリアル通信データレジスタ203からの読出データに対応する送信データを生成し、シリアル通信による送信を可能にする。また、送信動作部202は、送信動作における動作状態などに応じて、シリアルステータスレジスタ204の所定ビットを“0”または“1”に設定する。送信動作部202は、例えばシリアル通信データレジスタ203から読出したデータを一時的に格納する送信データレジスタや、シリアル通信で順次に送信する送信データを格納してシフトさせながら出力する送信用シフトレジスタ、シリアル通信における送信動作に関わる割込み要因の発生を制御する割込み制御回路などを備えて構成されている。
シリアル通信データレジスタ203は、受信動作部201にて取得した受信データを格納したり、送信動作部202に供給するデータを格納したりすることで、シリアル通信回路108とCPU104との間での通信データのやり取りを可能にする回路であり、例えば1バイト(8ビット)で構成されている。
シリアルステータスレジスタ204は、シリアル通信回路108における動作状態を確認するためのレジスタであり、例えば図26(A)に示すように、第1レジスタSIST1と、第2レジスタSIST2とを備えて構成されている。図26(A)に示す第1レジスタSIST1の第7ビット[ビット7]は、送信データエンプティフラグを示すビット(TDRE)である。例えば、送信動作部202が備える送信用データレジスタから送信用シフトレジスタにデータが転送されたときに、第1レジスタSIST1の第7ビット[ビット7]が“1”に設定されてオン状態となる。
図26(A)に示す第1レジスタSIST1の第6ビット[ビット6]は、送信完了フラグを示すビット(TC)である。例えば、送信動作部202が備える送信用シフトレジスタに格納されたデータの送信が完了したときに、第1レジスタSIST1の第6ビット[ビット6]が“1”に設定されてオン状態となる。第1レジスタSIST1の第5ビット[ビット5]は、受信データフルフラグを示すビット(RDRF)である。例えば、受信動作部201が備える受信用シフトレジスタに格納されたデータが受信データレジスタに転送されたときに、第1レジスタSIST1の第5ビット[ビット5]が“1”に設定されてオン状態となる。
図26(A)に示す第1レジスタSIST1の第4ビット[ビット4]は、アイドルライン検出フラグを示すビット(IDLE)である。例えば、受信動作部201における受信データ内で所定のアイドルラインが検出されたときに、第1レジスタSIST1の第4ビット[ビット4]が“1”に設定されてオン状態となる。第1レジスタSIST1の第3ビット[ビット3]は、オーバーランフラグを示すビット(OR)である。例えば、受信動作部201における受信動作中にオーバーランが検出されたときに、第1レジスタSIST1の第3ビット[ビット3]が“1”に設定されてオン状態となる。
図26(A)に示す第1レジスタSIST1の第2ビット[ビット2]は、ノイズエラーフラグを示すビット(NF)である。例えば、受信動作部201における受信動作中にノイズエラーが検出されたときに、第1レジスタSIST1の第2ビット[ビット2]が“1”に設定されてオン状態となる。第1レジスタSIST1の第1ビット[ビット1]は、フレーミングエラーフラグを示すビット(FE)である。例えば、受信動作部201における受信動作中にフレーミングエラーが検出されたときに、第1レジスタSIST1の第1ビット[ビット1]が“1”に設定されてオン状態となる。
図26(A)に示す第1レジスタSIST1の第0ビット[ビット0]は、パリティエラーフラグを示すビット(PF)である。例えば、受信動作部201における受信データのパリティと、その受信データ内のパリティビットとが一致しないときに、第1レジスタSIST1の第0ビット[ビット0]が“1”に設定されてオン状態となる。第2レジスタSIST2の第0ビット[ビット0]は、受信アクティブフラグを示すビット(RAF)である。例えば、受信動作部201がスタートビットとして“0”を検出したときに、第2レジスタSIST2の第0ビット[ビット0]が“1”に設定されてオン状態となる。
シリアル制御レジスタ205は、シリアル通信回路108における通信フォーマットや各種エラー割込み要求の許可/禁止などを設定するためのレジスタであり、例えば図26(B)に示すように、第1〜第3レジスタSICL1〜SICL3を備えて構成されている。図26(B)に示す第1レジスタSICL1の第4ビット[ビット4]は、シリアル通信におけるデータ長を選択するためのビット(M)である。例えば、第1レジスタSICL1の第4ビット[ビット4]が“0”であるときにはスタートビットが1ビットでデータビットが8ビットでストップビットが1ビットに設定され、“1”であるときにはスタートビットが1ビットでデータビットが9ビットでストップビットが1ビットに設定される。第1レジスタSICL1の第3ビット[ビット3]は、ウエイクアップ方式を選択するためのビット(WAKE)である。例えば、第1レジスタSICL1の第3ビット[ビット3]が“0”であるときにはアイドルラインの認識による受信動作部201のウエイクアップに設定され、“1”であるときにはアドレスマークの認識による受信動作部201のウエイクアップに設定される。
図26(B)に示す第1レジスタSICL1の第2ビット[ビット2]は、アイドルラインの検出方式を選択するためのビット(ILT)である。例えば、第1レジスタSICL1の第2ビット[ビット2]が“0”であるときにはスタートビットの後から検出する方式に設定され、“1”であるときにはストップビットの後から検出する方式に設定される。第1レジスタSICL1の第1ビット[ビット1]は、パリティ機能を使用するか否かを設定するためのビット(PE)である。例えば、第1レジスタSICL1の第1ビット[ビット1]が“0”であるときにはパリティ機能を使用しないものと設定され、“1”であるときにはパリティ機能を使用するものと設定される。
図26(B)に示す第1レジスタSICL1の第0ビット[ビット0]は、パリティ機能を使用する場合におけるパリティの種類を選択するためのビット(PT)である。例えば、第1レジスタSICL1の第0ビット[ビット0]が“0”であるときには偶数パリティを使用するものと設定され、“1”であるときには奇数パリティを使用するものと設定される。
図26(B)に示す第2レジスタSICL2の第7ビット[ビット7]は、送信割込み要求の許可/禁止を設定するためのビット(TIE)である。例えば、第2レジスタSICL2の第7ビット[ビット7]が“0”であるときには送信割込み要求が禁止され、“1”であるときには送信割込み要求が許可される。第2レジスタSICL2の第6ビット[ビット6]は、送信完了割込み要求の許可/禁止を設定するためのビット(TCIE)である。例えば、第2レジスタSICL2の第6ビット[ビット6]が“0”であるときには送信完了割込み要求が禁止され、“1”であるときには送信完了割込み要求が許可される。
図26(B)に示す第2レジスタSICL2の第5ビット[ビット5]は、受信割込み要求の許可/禁止を設定するためのビット(RIE)である。例えば、第2レジスタSICL2の第5ビット[ビット5]が“0”であるときには受信割込み要求が禁止され、“1”であるときには受信割込み要求が許可される。第2レジスタSICL2の第4ビット[ビット4]は、アイドルライン割込み要求の許可/禁止を設定するためのビット(ILIE)である。例えば、第2レジスタSICL2の第4ビット[ビット4]が“0”であるときにはアイドルライン割込み要求が禁止され、“1”であるときにはアイドルライン割込み要求が許可される。
図26(B)に示す第2レジスタSICL2の第3ビット[ビット3]は、送信動作部202を使用するか否かを設定するためのビット(TE)である。例えば、第2レジスタSICL2の第3ビット[ビット3]が“0”であるときには送信動作部202を使用しないものと設定され、“1”であるときには送信動作部202を使用するものと設定される。第2レジスタSICL2の第2ビット[ビット2]は、受信動作部201を使用するか否かを設定するためのビット(RE)である。例えば、第2レジスタSICL2の第2ビット[ビット2]が“0”であるときには受信動作部201を使用しないものと設定され、“1”であるときには受信動作部201を使用するものと設定される。
図26(B)に示す第2レジスタSICL2の第1ビット[ビット1]は、受信ウエイクアップを使用するか否かを設定するためのビット(RWU)である。例えば、第2レジスタSICL2の第1ビット[ビット1]が“0”であるときには受信ウエイクアップを使用しないものと設定され、“1”であるときには受信ウエイクアップを使用するものと設定される。第2レジスタSICL2の第0ビット[ビット0]は、ブレークコード送信を使用するか否かを設定するためのビット(SBK)である。例えば、第2レジスタSICL2の第0ビット[ビット0]が“0”であるときにはブレークコード送信を使用しないものと設定され、“1”であるときにはブレークコード送信を使用するものと設定される。
図26(B)に示す第3レジスタSICL3の第7ビット[ビット7]は、データビットを9ビットに設定したときに受信データにおける9ビット目を格納するためのビット(R8)である。第3レジスタSICL3の第6ビット[ビット6]は、データビットを9ビットに設定したときに送信データにおける9ビット目を格納するためのビット(T8)である。
図26(B)に示す第3レジスタSICL3の第3ビット[ビット3]は、オーバーランエラー時における割込み要求の許可/禁止を設定するためのビット(ORIE)である。例えば、第3レジスタSICL3の第3ビット[ビット3]が“0”であるときにはオーバーランエラー時における割込み要求が禁止され、“1”であるときにはオーバーランエラー時における割込み要求が許可される。第3レジスタSICL3の第2ビット[ビット2]は、ノイズエラー時における割込み要求の許可/禁止を設定するためのビット(NEIE)である。例えば、第3レジスタSICL3の第2ビット[ビット2]が“0”であるときにはノイズエラー時における割込み要求が禁止され、“1”であるときにはノイズエラー時における割込み要求が許可される。
図26(B)に示す第3レジスタSICL3の第1ビット[ビット1]は、フレーミングエラー時における割込み要求の許可/禁止を設定するためのビット(FEIE)である。例えば、第3レジスタSICL3の第1ビット[ビット1]が“0”であるときにはフレーミングエラー時における割込み要求が禁止され、“1”であるときにはフレーミングエラー時における割込み要求が許可される。第3レジスタSICL3の第0ビット[ビット0]は、パリティエラー時における割込み要求の許可/禁止を設定するためのビット(PEIE)である。例えば、第3レジスタSICL3の第0ビット[ビット0]が“0”であるときにはパリティエラー時における割込み要求が禁止され、“1”であるときにはパリティエラー時における割込み要求が許可される。
図10に示す遊技制御用マイクロコンピュータ100が備える外部バスインタフェース109は、アドレスバスやデータバス、及び各制御信号の方向制御や駆動制御を行うインタフェース回路である。
図3に示すように、演出制御基板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ポート内の出力ポートや所定のコネクタを介して、ランプ制御基板14へと出力される。
なお、演出制御基板12と画像表示装置5の間には、画像データにおける解像度を変換するためのスケーラ回路が設けられていてもよい。この場合、演出制御基板12に搭載されたVDPが演出制御用マイクロコンピュータ120からの描画コマンドに応じて生成した画像データは、スケーラ回路により解像度が変換された後、画像表示装置5に供給される。具体的な一例として、スケーラ回路は、VDPによって生成された第1の解像度による画像データを入力し、垂直方向及び水平方向のいずれか一方あるいは双方について、以下のような処理を施すことにより、入力された画像データを第1の解像度とは異なる第2の解像度に変換する。
例えば、垂直方向における解像度を変換する場合には、入力された画像データの垂直方向に沿って第1のサンプルレートでアップサンプリングを行った後、予め用意されたフィルタ(例えばFIRフィルタ)によるフィルタリング処理を施す。その後、垂直方向に沿って所定のスケーリング係数に対応する第2のサンプルレートでダウンサンプリングを行うようにすればよい。また、水平方向における解像度を変換する場合には、入力された画像データの水平方向に沿って、垂直方向と同じようなアップサンプリング、フィルタリング処理及びダウンサンプリングを行うようにすればよい。具体的な一例として、VDPによってVGAモード(640×480ピクセル)の画像データが生成された場合に、スケーラ回路における変換処理により、その画像データをSXGAモード(1280×1024ピクセル)、あるいは他のモードに変換することが可能になる。
図3に示すように、払出制御基板15には、払出制御用マイクロコンピュータ150やスイッチ回路161が搭載されている。スイッチ回路161には、満タンスイッチ26、球切れスイッチ27、払出モータ位置センサ71、払出カウントスイッチ72、エラー解除スイッチ73などの各種スイッチやセンサからの検出信号が入力される。スイッチ回路161は、これらの検出信号を取り込んで、払出制御用マイクロコンピュータ150に伝送する。
図27は、払出制御基板15に搭載された払出制御用マイクロコンピュータ150の構成例を示す図である。図27に示す払出制御用マイクロコンピュータ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には、遊技球の払出動作などを制御するために用いられる各種のデータを保持する領域として、例えば図28に示すような払出制御用データ保持エリア140が設けられている。また、RAM216の少なくとも一部は、電源基板10において作成されるバックアップ電源によってバックアップされているバックアップRAMである。すなわち、パチンコ遊技機1への電力供給が停止しても、所定時間は、RAM216の少なくとも一部の内容は保存される。この実施の形態では、RAM216の全体がバックアップされているバックアップRAMであるものとする。図28に示す払出制御用データ保持エリア140は、払出制御フラグ設定部141と、払出制御タイマ設定部142と、払出制御カウンタ設定部143と、払出制御バッファ設定部144とを備えている。
払出制御フラグ設定部141には、例えば払出バックアップフラグや、払出制御プロセスフラグ、賞球払出動作プロセスフラグ、球貸し動作プロセスフラグ、払出動作中賞球増加フラグ、送信設定可能フラグ、送信完了フラグ、賞球ACK送信フラグ、フィードバック受信フラグ、受信確認中フラグ、エラーフラグなどが設けられている。
払出制御プロセスフラグは、払出モータ51による遊技球の払出動作を制御するための払出動作制御処理(図57のステップS555、及び図60)において、どの処理を選択・実行すべきかを示す。賞球払出動作プロセスフラグは、払出モータ51を駆動して賞球となる遊技球を払い出すために実行される賞球払出動作処理(図60のステップS663、及び図63)において、どの処理を選択・実行すべきかを示す。球貸し動作プロセスフラグは、払出モータ51を駆動して貸し球となる遊技球を払い出すために実行される球貸し払出動作処理(図60のステップS664、及び図67)において、どの処理を選択・実行すべきかを示す。払出動作中賞球増加フラグは、賞球となる遊技球の払出動作中に、主基板11からの払出数指定コマンドを受信して賞球の未払出数が増加したことを示す。例えば、払出動作中賞球増加フラグは、賞球払出動作中フラグの値が賞球払出駆動処理(図63のステップS745、及び図65)に対応する値である“1”のときに、主基板11から払出数指定コマンドを受信したことに応答して、オン状態にセットされ、この払出数指定コマンドによって指定される払出数が、払出制御カウンタ設定部143に設けられた後述する払出モータ回転カウンタにおけるカウント値に加算され更新されたときに、クリアされオフ状態となる。
送信設定可能フラグは、シリアル通信回路218にてデータ送信を行うための設定が可能となったことを示す。例えば、送信設定可能フラグは、シリアル通信回路218からの送信データエンプティ時の割込み要求に応答してオン状態にセットされる。送信完了フラグは、シリアル通信回路218にてデータ送信が完了したことを示す。例えば、送信完了フラグは、シリアル通信回路218からの送信完了時の割込み要求に応答してオン状態にセットされる。
賞球ACK送信フラグは、主基板11からの払出数指定コマンドを受信したときに、賞球ACKコマンドを送信する旨を示す。すなわち、賞球ACK送信フラグは、第1〜第3払出数指定コマンドのいずれかを受信したときに、オン状態にセットされる。フィードバック受信フラグは、主基板11からのACKフィードバックコマンドを受信できたか否かを示す。すなわち、フィードバック受信フラグは、ACKフィードバックコマンドを受信したときにオン状態にセットされる。
受信確認中フラグは、主基板11に対して賞球ACKコマンドを送信した後、主基板11からのACKフィードバックコマンドについて受信確認中であることを示す。すなわち、受信確認中フラグは、賞球ACKコマンドが送信されるときにオン状態にセットされた後、ACKフィードバックコマンドを受信したとき、あるいはACKフィードバックコマンドを受信することなく所定期間が経過したときに、クリアされてオフ状態となる。
払出制御フラグ設定部141に設けられたエラーフラグは、払出モータ51を駆動することによる遊技球の払出動作状態や、主基板11との間におけるコマンドの送受信状態などに基づき、所定のエラー発生が検出されたときにオン状態にセットされる複数種類のフラグを含んで構成されている。例えば、エラーフラグは、主基板通信エラーフラグ、多量未払出エラーフラグ、球切れエラーフラグ、カードユニット未接続エラーフラグ、球詰まりエラーフラグ、満タンエラーフラグ、球噛みエラーフラグ、空切り(奥)エラーフラグ、空切り(手前)エラーフラグ、シリアル通信エラーフラグなどを含んでいる。
ここで、主基板通信エラーフラグは、主基板11との間における通信状態にエラーが発生したときに、オン状態にセットされる。多量未払出エラーフラグは、主基板11からの払出数指定コマンドにより払い出しが指示された後に未だ払い出されていない未払出の賞球数が所定個数を超えたときに、オン状態にセットされる。球切れエラーフラグは、球切れスイッチ27からの検出信号がオン状態となったことに応じて、オン状態にセットされる。カードユニット未接続エラーフラグは、カードユニット70との間における通信状態にエラーが発生したときに、オン状態にセットされる。球詰まりエラーフラグは、例えば払出カウントスイッチ72からの検出信号が所定時間(具体的な一例として、0.5秒)以上継続してオン状態となったことに応じて、オン状態にセットされる。満タンエラーフラグは、例えば満タンスイッチ26からの検出信号が所定期間以上(具体的な一例として、0.1秒)以上継続してオン状態となったことに応じて、オン状態にセットされる。球噛みエラーフラグは、例えば払出モータ51を駆動したときに払出モータ位置センサ71が所定時間以上継続してオン状態またはオフ状態であることに応じて、オン状態にセットされる。空切り(奥)エラーフラグは、例えば払出モータ51を駆動したときに、図9に示すような払出装置における球通路90の奥側(穴85から流入した遊技球の通路)での遊技球の通過が払出カウントスイッチ72により検出できなかったことに応じて、オン状態にセットされる。空切り(手前)エラーフラグは、例えば払出モータ51を駆動したときに、図9に示すような払出装置における球通路90の手前側(穴86から流入した遊技球の通路)での遊技球の通過が払出カウントスイッチ72により検出できなかったことに応じて、オン状態にセットされる。シリアル通信エラーフラグは、シリアル通信回路218からのエラー割込み要求に応答してオン状態にセットされる。
払出制御タイマ設定部142には、例えば通信制御タイマや、送信動作制御タイマなどが設けられている。通信制御タイマは、主基板11との間でコマンドを送受信する通信動作において様々な時間を計測するために用いられる。送信動作制御タイマは、シリアル通信回路218によるシリアル通信で通信データを送信させてからの経過時間を計測するために用いられる。
払出制御カウンタ設定部143には、例えば賞球未払出カウンタや、加算前未払出カウンタ、球貸し未払出カウンタ、初期化コマンド受信回数カウンタ、払出動作不良回数カウンタ、払出モータ回転カウンタ、コマンド受信個数カウンタ、コマンド送信待ちカウンタなどが設けられている。
賞球未払出カウンタは、主基板11から送信される第1〜第3払出数指定コマンドに基づき、賞球として払い出すべき遊技球の個数を、賞球未払出カウント値として更新可能に記憶することにより、カウントするためのものである。加算前未払出カウンタは、主基板11から送信された最新の第1〜第3払出数指定コマンドによって指定される払出数が加算される以前の賞球未払出カウンタにおけるカウント値を記憶するためのものである。球貸し未払出カウンタは、カードユニット70からの球貸し要求に基づき、貸し球として払い出すべき遊技球の個数を、球貸し未払出カウント値として更新可能に記憶することにより、カウントするためのものである。初期化コマンド受信回数カウンタは、主基板11からの払出用初期化コマンドを受信した回数を、初期化コマンド受信回数カウント値として更新可能に記憶することにより、カウントするためのものである。払出動作不良回数カウンタは、遊技球を払い出すために払出モータ51を駆動したときに払出動作の不良が検出された回数を、払出動作不良回数カウント値として更新可能に記憶することにより、カウントするためのものである。払出モータ回転カウンタは、賞球または貸し球として払い出すべき遊技球の個数に応じた払出モータ回転カウント値を更新可能に記憶し、払出モータ51の駆動量(回転量)を設定するために用いられる。
コマンド受信個数カウンタは、主基板11から受信したコマンドの個数を特定可能にカウントするためのものである。コマンド送信待ちカウンタは、主基板11に対して送信待ちとなっているコマンドの個数を特定可能にカウントするためのものである。
払出制御バッファ設定部144には、例えば払出チェックサムバッファや、受信コマンドバッファ、送信コマンドバッファなどが設けられている。払出チェックサムバッファは、パチンコ遊技機1への電力供給が停止されたときにRAM216の特定領域における記憶データを用いて算出されたチェックサムを保存するためのものである。受信コマンドバッファは、払出制御基板15にて主基板11から受信したコマンドを一時的に格納するために用いられる。送信コマンドバッファは、払出制御基板15から主基板11に対して送信するコマンドを一時的に格納するために用いられる。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。主基板11では、電源基板10からの電力供給が開始され遊技制御用マイクロコンピュータ100へのリセット信号がハイレベル(オフ状態)になったことに応じて、遊技制御用マイクロコンピュータ100が起動し、図29及び図30のフローチャートに示すような遊技制御メイン処理が実行される。なお、以下に説明する各処理は、遊技制御用マイクロコンピュータ100が備えるCPU104によって実行されるものとする。また、遊技制御用マイクロコンピュータ100が備えるタイマ回路107やシリアル通信回路108などで発生した各種の割込み要因に基づく割込み要求は、CPU104に所定の割込み処理を実行させるためのものである。そして、CPU104やCPU104以外の各種回路を含んだ概念を遊技制御用マイクロコンピュータ100ということもあるものとする。図29及び図30に示す遊技制御メイン処理を開始すると、遊技制御用マイクロコンピュータ100は、まず、割込禁止に設定し(図29のステップ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の作業領域はバックアップ電源によってバックアップされており、バックアップ時設定テーブルには、作業領域のうちで初期化してもよい領域についての初期化データが設定されていてもよい。ステップS17の処理を実行したときには、演出制御基板12に対して復旧報知コマンドを送信するための設定を行う(ステップS18)。具体的な一例として、ステップS18の処理では、ROM106に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し、バックアップ時コマンド送信テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部136の送信コマンドバッファに含まれる演出用送信コマンドバッファにセットすることなどにより、主基板11から演出制御基板12に対して復旧報知コマンドを送信させる。
また、ステップS13にてクリアフラグがオンであるときや(ステップS13;Yes)、ステップS14にてチェック結果が正常ではないとき(ステップS14;No)、あるいはステップS15にてメインバックアップフラグがオフであるときには(ステップS15;No)、RAM106の初期化を行う(ステップS19)。ステップS19の処理に続いて、遊技制御用マイクロコンピュータ100の内部状態などを初期状態とするための初期化時における設定を行う(ステップS20)。具体的な一例として、ステップS20の処理では、ROM105に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し、初期化時設定テーブルの内容を順次、RAM106内の作業領域に設定する。また、ステップS20の処理では、遊技制御カウンタ設定部135に設けられたコマンド送信回数カウンタに、所定のカウント初期値(例えば「200」)を設定する。ステップS19、S20の処理を実行したときには、演出制御基板12に対して初期化通知コマンドを送信するための設定と(ステップS21)、払出制御基板15に対して払出用初期化コマンドを送信するための設定とを行う(ステップS22)。具体的な一例として、ステップS21の処理では、ROM105に格納されている初期化時演出コマンド送信テーブルの先頭アドレスをポインタに設定し、初期化時演出コマンド送信テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部136の送信コマンドバッファに含まれる演出用送信コマンドバッファにセットすることなどにより、主基板11から演出制御基板12に対して初期化通知コマンドを送信させる。また、ステップS22の処理では、ROM105に格納されている初期化時払出コマンド送信テーブルの先頭アドレスをポインタに設定し、初期化時払出コマンド送信テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部136の送信コマンドバッファに含まれる払出用送信コマンドバッファ192にセットすることなどにより、主基板11から払出制御基板15に対して払出用初期化コマンドを送信させる。
ステップS18またはステップS22の処理を実行した後には、例えば遊技制御用マイクロコンピュータ100が備えるタイマ回路107のレジスタ設定などを行うことにより、所定時間(例えば2ミリ秒)ごとにタイマ割込みが発生するように遊技制御用マイクロコンピュータ100の内部設定を行う(ステップS23)。この後、CPU104がROM105に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し(図30のステップS24)、読出した値に基づいて乱数生成動作の初期設定を行う(ステップS25)。図31は、ステップS25にて実行される処理内容の一例を示す説明図である。
ステップS24における読出値が「00」であるときには、ステップS25の処理としては何らの処理も実行されずに、ステップS26の処理に進む。なお、このときには、ステップS25の処理として、乱数回路103における12ビット乱数と16ビット乱数の双方について、その生成動作を停止させるための処理が実行されてもよい。ステップS24における読出値が「01」であるときには、ステップS25の処理として、12ビット乱数初期設定処理が実行される。なお、このときには、乱数回路103における16ビット乱数について、その生成動作を停止させるための処理が実行されてもよい。ステップS24における読出値が「10」であるときには、ステップS25の処理として、16ビット乱数初期設定処理が実行される。なお、このときには、乱数回路103における12ビット乱数について、その生成動作を停止させるための処理が実行されてもよい。ステップS24における読出値が「11」であるときには、ステップS25の処理として、12ビット乱数初期設定処理と16ビット乱数初期設定処理が実行される。
ステップS25の処理に続いて、シリアル通信動作の初期設定を行うための処理として、シリアル通信初期設定処理を実行する(ステップS26)。この後、割込み要求に基づいて実行される割込み処理に関する初期設定を行うための処理として、割込み初期設定処理を実行する(ステップS27)。そして、遊技制御用マイクロコンピュータ100は割込許可状態に設定して(ステップS28)、各種割込みの発生を待機する。このときには、電源断信号がオン状態となったか否か(出力されたか否か)の判定を行い(ステップS29)、オフであれば(ステップS29;No)、そのまま各種割込みの発生を待機する。また、電源断信号がオン状態となったときには(ステップS29;Yes)、メイン側電源断処理を実行した後(ステップS30)、所定のループ処理を実行して、電力供給の停止による遊技制御用マイクロコンピュータ100の動作停止まで待機する。なお、ステップS29の処理では、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。なお、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。このように電源断信号の状態を複数回確認する場合には、例えば確認動作を開始するときや1回目の確認結果と2回目の確認結果とを比較して不一致であったときなどに、遊技制御用マイクロコンピュータ100に内蔵されたWDT(ウォッチドッグ・タイマ)をクリアするリトリガを行う。そして、リトリガが何らかの原因(例えばプログラムの暴走)で所定時間内に発生しなくなった場合には、WDTから出力されるタイムアウト信号に基づくユーザリセットを発生させ、リセット/割込みコントローラ102、CPU104、タイマ回路107、シリアル通信回路108などの各回路を初期化した後、所定のベクタテーブルで示されるアドレスからユーザプログラムの実行を開始して、自動復旧を行うようにしてもよい。
図32は、ステップS25にて実行される処理に含まれる12ビット乱数初期設定処理の一例を示すフローチャートである。図32に示す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の処理では、遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま12ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、12ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。例えば、遊技制御用マイクロコンピュータ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)、読出値が12ビット乱数用の最大値として設定可能な範囲内であるか否かを判定する(ステップS108)。例えば、12ビット乱数の最大値を「256」から「4095」までの範囲内で任意に設定できる場合には、ステップS107での読出値が「256」から「4095」までの範囲内であるか否かを判定する。
ステップS108にて読出値が設定可能な範囲内である旨の判定がなされたときには(ステップS108;Yes)、ステップS107での読出値を乱数回路103が備える最大値比較回路177Aに設定する(ステップS109)。他方、ステップS108にて読出値が設定可能な範囲内ではない旨の判定がなされたときには(ステップS108;No)、12ビット乱数用の最大値として設定可能な範囲内の所定値を最大値として再設定し、乱数回路103が備える最大値比較回路177Aにセットする(ステップS110)。例えば、ステップS107での読出値が「256」から「4095」までの範囲内ではないときには、その範囲内の値である「4095」を、最大値として再設定すればよい。なお、ステップS109、S110の処理では、CPU104が最大値比較回路177Aの動作を直接制御して12ビット乱数用の最大値を設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられて最大値比較回路177Aが参照可能な所定のレジスタに12ビット乱数用の最大値を示す制御データをセットすることなどにより、最大値比較回路177Aの動作を間接的に制御するようにしてもよい。ステップS109、S110にてレジスタに制御データをセットした場合には、例えば乱数列変更回路176Aから出力される数値データ列R1の値が更新されるごとに最大値比較回路177Aがレジスタに記憶された制御データを参照し、その制御データにより示された12ビット乱数用の最大値と乱数列変更回路176Aから出力される数値データとを比較することにより、最大値以下となる数値データだけを乱数値レジスタ181Aに格納される12ビットの乱数値として出力することができる。
ステップS109、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周目以降のスタート値に関する設定を参照できるような初期設定が行われればよい。
図33は、ステップS25にて実行される処理に含まれる16ビット乱数初期設定処理の一例を示すフローチャートである。図33に示す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の処理では、遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま16ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、16ビット乱数を生成するための1周目のスタート値に設定するようにしてもよい。例えば、遊技制御用マイクロコンピュータ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)、読出値が16ビット乱数用の最大値として設定可能な範囲内であるか否かを判定する(ステップS130)。例えば、16ビット乱数の最大値を「512」から「65535」までの範囲内で任意に設定できる場合には、ステップS129での読出値が「512」から「65535」までの範囲内であるか否かを判定する。
ステップS130にて読出値が設定可能な範囲内である旨の判定がなされたときには(ステップS130;Yes)、ステップS129での読出値を乱数回路103が備える最大値比較回路177Bに設定する(ステップS131)。他方、ステップS130にて読出値が設定可能な範囲内ではない旨の判定がなされたときには(ステップS130;No)、16ビット乱数用の最大値として設定可能な範囲内の所定値を最大値として再設定し、乱数回路103が備える最大値比較回路177Bにセットする(ステップS132)。例えば、ステップS129での読出値が「512」から「65535」までの範囲内ではないときには、その範囲内の値である「65535」を、最大値として再設定すればよい。なお、ステップS131、S132の処理では、CPU104が最大値比較回路177Bの動作を直接制御して16ビット乱数用の最大値を設定してもよいし、例えば乱数回路103の内部あるいは外部に設けられて最大値比較回路177Bが参照可能な所定のレジスタに16ビット乱数用の最大値を示す制御データをセットすることなどにより、最大値比較回路177Bの動作を間接的に制御するようにしてもよい。ステップS131、S132にてレジスタに制御データをセットした場合には、例えば乱数列変更回路176Bから出力される数値データ列R2の値が更新されるごとに最大値比較回路177Bがレジスタに記憶された制御データを参照し、その制御データにより示された16ビット乱数用の最大値と乱数列変更回路176Bから出力される数値データとを比較することにより、最大値以下となる数値データだけを乱数値レジスタ181Bに格納される16ビットの乱数値として出力することができる。
ステップS131、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周目以降のスタート値に関する設定を参照できるような初期設定が行われればよい。
図34は、図30に示すステップS26にて実行されるシリアル通信初期設定処理の内容の一例を示す説明図である。このシリアル通信初期設定処理では、まず、CPU104がROM105に記憶されている第1及び第2シリアル通信初期設定データ(KSCM1及びKSCM2)を読出し、読出値に基づいてシリアル通信回路108が備えるシリアル制御レジスタ205の設定を行う。
例えば、第1シリアル通信初期設定データ(KSCM1)の第5ビット[ビット5]が“0”であるときにはシリアル制御レジスタ205における第2レジスタSICL2の第7ビット[ビット7]であるTIEを“0”に設定する一方、“1”であるときにはTIEを“1”に設定する。第1シリアル通信初期設定データ(KSCM1)の第4ビット[ビット4]が“0”であるときにはシリアル制御レジスタ205における第2レジスタSICL2の第6ビット[ビット6]であるTCIEを“0”に設定する一方、“1”であるときにはTCIEを“1”に設定する。第1シリアル通信初期設定データ(KSCM1)の第3ビット[ビット3]が“0”であるときにはシリアル制御レジスタ205における第2レジスタSICL2の第5ビット[ビット5]であるRIEを“0”に設定する一方、“1”であるときにはRIEを“1”に設定する。
第1シリアル通信初期設定データ(KSCM1)の第2ビット[ビット2]が“0”であるときにはシリアル制御レジスタ205における第2レジスタSICL2の第4ビット[ビット4]であるILIEを“0”に設定する一方、“1”であるときにはILIEを“1”に設定する。第1シリアル通信初期設定データ(KSCM1)の第1ビット[ビット1]が“0”であるときにはシリアル制御レジスタ205における第2レジスタSICL2の第3ビット[ビット3]であるTEを“0”に設定する一方、“1”であるときにはTEを“1”に設定する。第1シリアル通信初期設定データ(KSCM1)の第0ビット[ビット0]が“0”であるときにはシリアル制御レジスタ205における第2レジスタSICL2の第2ビット[ビット2]であるREを“0”に設定する一方、“1”であるときにはREを“1”に設定する。
第2シリアル通信初期設定データ(KSCM2)の第3ビット[ビット3]が“0”であるときにはシリアル制御レジスタ205における第3レジスタSICL3の第3ビット[ビット3]であるORIEを“0”に設定する一方、“1”であるときにはORIEを“1”に設定する。第2シリアル通信初期設定データ(KSCM2)の第2ビット[ビット2]が“0”であるときにはシリアル制御レジスタ205における第3レジスタSICL3の第2ビット[ビット2]であるNEIEを“0”に設定する一方、“1”であるときにはNEIEを“1”に設定する。第2シリアル通信初期設定データ(KSCM2)の第1ビット[ビット1]が“0”であるときにはシリアル制御レジスタ205における第3レジスタSICL3の第1ビット[ビット1]であるFEIEを“0”に設定する一方、“1”であるときにはFEIEを“1”に設定する。第2シリアル通信初期設定データ(KSCM2)の第0ビット[ビット0]が“0”であるときにはシリアル制御レジスタ205における第3レジスタSICL3の第0ビット[ビット0]であるPEIEを“0”に設定する一方、“1”であるときにはPEIEを“1”に設定する。
図35は、図30に示すステップS27にて実行される割込み初期設定処理の一例を示すフローチャートである。この割込み初期設定処理では、CPU104がROM105に記憶されている最優先割込み設定(KHPR)を読出し(ステップS141)、読出値に基づいて最優先割込みを設定する(ステップS142)。例えば、ステップS142の処理では、ステップS141での読出値が「00h」から「07h」のいずれであるかを特定し、特定された値に対応するIクラス割込み(IRQ)の要因が最も優先順位の高い割込み要因となるように、割込みベクタの設定などを行う。
図36は、図30に示すステップS30にて実行されるメイン側電源断処理の一例を示すフローチャートである。図36に示すメイン側電源断処理において、遊技制御用マイクロコンピュータ100では、まず、CPU104が割込禁止に設定する(ステップS151)。続いて、例えばCPU104が遊技制御用マイクロコンピュータ100に設けられた出力ポートの所定ビットにクリアデータをセットするなどして、ソレノイド81、82の駆動制御に関する設定を初期化する(ステップS152)。このときには、出力ポートの所定ビット以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。ステップS152の処理を実行した後には、例えばRAM106の特定領域における記憶データを用いてチェックサムを算出するなどして、チェックデータの作成を行うとともに(ステップS153)、遊技制御フラグ設定部133に設けられたメインバックアップフラグをオン状態にセットする(ステップS154)。このとき作成されたチェックデータは、例えば遊技制御バッファ設定部136に設けられたメインチェックサムバッファなどといった、RAM106の所定領域に格納される。そして、遊技制御用マイクロコンピュータ100では、例えばCPU104が所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM106へのアクセスを禁止する(ステップS155)。これにより、電力供給の停止に伴ってプログラムの暴走が生じても、RAM106の記憶内容が破損することを防止できる。こうしたメイン側電源断処理が実行された後には、待機状態(ループ処理)に入ることになる。
また、ステップS30にて図36に示すようなメイン側電源断処理を実行した後には、例えば電源断信号がオフ状態となったか否かを定期的に判定し、オフ状態となったときには、CPU104が図29に示すステップS1から再び処理を進めることなどにより、瞬断に対応して処理を再開できるようにしてもよい。あるいは、ステップS30にて図36に示すようなメイン側電源断処理を実行した後、例えばWDTからタイムアウト信号が出力されるまでの所要時間よりも長い時間として予め定められた所定時間が経過しても電源基板10からの電力供給が継続しているときに、CPU104が図29に示すステップS1から再び処理を進めることなどにより、瞬断に対応して処理を再開できるようにしてもよい。
図30に示すステップS28の処理を実行することにより割込許可状態となった後、例えばタイマ回路107やシリアル通信回路108などにて同時に複数の割込み要因が生じたときには、図35に示すステップS142での設定に基づき、リセット/割込みコントローラ102によって優先順位の高い割込み要因が受け付けられる。リセット/割込みコントローラ102が受け付けた割込み要因はCPU104に通知され、その割込み要因のベクタアドレスを先頭アドレスとするプログラムがCPU104によって実行されることにより、各割込み要因に基づく割込み処理が開始される。これにより、複数の割込み要因が同時に発生したときには、例えば図19(B)に示すようなデフォルト時の優先順位、あるいはROM105に記憶されている最優先割込み設定(KHPR)により変更された優先順位において、優先順位の高い割込み要因に基づく割込み処理が、優先順位の低い割込み要因に基づく割込み処理よりも優先的に実行される。
例えば、ROM105に記憶されている最優先割込み設定(KHPR)が「06h」であるときには、図35に示すステップS142での設定により、図19(B)に示すようなデフォルト時の優先順位が、図19(A)に示すようにシリアル通信回路108からの受信割込み要求を最優先とする優先順位に変更される。この場合には、シリアル通信回路108からのエラー割込み要求に基づく割込み処理よりもシリアル通信回路108からの受信割込み要求に基づく割込み処理の方が優先的に実行されることになる。また、図19(B)に示すように、デフォルト時では、タイマ回路107からの割込み要求に基づく割込み処理の方がシリアル通信回路108からの割込み要求に基づく割込み処理よりも優先的に実行される設定となっている。これに対して、ROM105に記憶されている最優先割込み設定(KHPR)が「05h」、「06h」、「07h」のいずれかであるときには、それぞれ、シリアル通信回路108からのエラー割込み要求に基づく割込み処理、受信割込み要求に基づく割込み処理、送信割込み要求に基づく割込み処理の方が、タイマ回路107からの割込み要求に基づく割込み処理よりも優先的に実行されることになる。
図37は、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路108にてエラー割込みが発生するごとに実行されるシリアル通信エラー割込み処理の一例を示すフローチャートである。ここで、シリアル通信回路108では、シリアル制御レジスタ205に含まれる第3レジスタSICL3の第3〜第0ビット[ビット3−0]における設定に基づき、オーバーランエラーの発生によりシリアルステータスレジスタ204に含まれる第1レジスタSIST1の第3ビット[ビット3]が“1”に設定されてオン状態となったこと、ノイズエラーの発生により第1レジスタSIST1の第2ビット[ビット2]が“1”に設定されてオン状態となったこと、フレーミングエラーの発生により第1レジスタSIST1の第1ビット[ビット1]が“1”に設定されてオン状態となったこと、パリティエラーの発生により第1レジスタSIST1の第0ビット[ビット0]が“1”に設定されてオン状態となったことのいずれかの割込み要因が発生したときに、エラー割込みを発生させる。
図37に示すシリアル通信エラー割込み処理において、遊技制御用マイクロコンピュータ100では、まず、CPU104がシリアル通信回路108に設けられた送信動作部202を未使用状態に設定する(ステップS41)。具体的な一例として、CPU104は、シリアル通信回路108が備えるシリアル制御レジスタ205における第2レジスタSICL2の第3ビット[ビット3]であるTEを“0”に設定することにより、送信動作部202を使用しないものと設定する。続いて、CPU104がシリアル通信回路108に設けられた受信動作部201を未使用状態に設定する(ステップS42)。具体的な一例として、CPU104は、シリアル通信回路108が備えるシリアル制御レジスタ205における第2レジスタSICL2の第2ビット[ビット2]であるREを“0”に設定することにより、受信動作部201を使用しないものと設定する。この後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御フラグ設定部133に設けられた払出用通信エラー検出フラグをオン状態にセットするとともに(ステップS43)、シリアル通信エラーフラグをオン状態にセットする(ステップS44)。
図38は、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路108にて受信割込みが発生するごとに実行されるシリアル受信割込み処理の一例を示すフローチャートである。図38に示すシリアル受信割込み処理において、遊技制御用マイクロコンピュータ100では、まず、遊技制御カウンタ設定部135に設けられたコマンド受信個数カウンタの値であるコマンド受信個数カウント値が所定のカウント最大値(例えば「11」)となっているか否かを、CPU104が判定する(ステップS51)。
ステップS51にてカウント最大値となっているときには(ステップS51;Yes)、コマンド受信個数カウンタの値を所定の初期値(例えば「0」)に設定する(ステップS52)。他方、ステップS51にてカウント最大値となっていないときには(ステップS51;No)、コマンド受信個数カウンタの値を1加算する(ステップS53)。ステップS52、S53の処理のいずれかを実行した後には、CPU104がシリアル通信回路108に設けられたシリアル通信データレジスタ203の記憶データを読出し(ステップS54)、その読出データを、払出用受信コマンドバッファ191に設けられた受信コマンドバッファ#1〜#12のうちでコマンド受信個数カウンタの値に対応するものに格納する(ステップS55)。
図39は、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路108にて送信割込みが発生するごとに実行されるシリアル送信割込み処理の一例を示すフローチャートである。図39に示すシリアル送信割込み処理において、遊技制御用マイクロコンピュータ100では、まず、CPU104が、発生した送信割込みは送信データエンプティ時の割込みであるか否かを判定する(ステップS61)。そして、送信データエンプティ時の割込みであるときには(ステップS61;Yes)、遊技制御フラグ設定部133に設けられた送信設定可能フラグをオン状態にセットする(ステップS62)。
ステップS61にて送信データエンプティ時の割込みではないときには(ステップS61;No)、その送信割込みは送信完了時の割込みであるか否かを判定する(ステップS63)。そして、送信完了時の割込みであるときには(ステップS63;Yes)、遊技制御フラグ設定部133に設けられた送信完了フラグをオン状態にセットする(ステップS64)。ステップS63にて送信完了時の割込みではないときには(ステップS63;No)、発生した送信割込みの種類に対応するフラグをオン状態にセットする(ステップS65)。
図40は、遊技制御用マイクロコンピュータ100にてタイマ割込みが発生するごとに実行される遊技制御用タイマ割込み処理の一例を示すフローチャートである。図40に示す遊技制御用タイマ割込み処理において、遊技制御用マイクロコンピュータ100は、まず、内部レジスタを退避した後(ステップS71)、所定のスイッチ処理を実行することにより、スイッチ回路111を介して各スイッチから入力される検出信号の状態を判定する(ステップS72)。続いて、遊技制御用マイクロコンピュータ100では、例えばCPU104がROM105から読み出したユーザプログラムにより乱数の2周目以降におけるスタート値を変更するための乱数スタート値変更設定処理を実行する(ステップS73)。また、例えばCPU104がROM105から読み出したユーザプログラムにより乱数の2周目以降における順列を変更するための乱数順列変更設定処理を実行する(ステップS74)。
ステップS74にて乱数順列変更設定処理を実行した後、遊技制御用マイクロコンピュータ100は、ステップS72におけるスイッチ処理の実行結果に基づき、入賞検出信号の入力に応じて賞球個数の設定などを行う賞球処理を実行する(ステップS75)。また、遊技制御用マイクロコンピュータ100は、賞球過多や賞球不足、その他の払出異常が発生した場合に対応して、異常の発生を報知するための設定などを行う異常動作報知設定処理を実行する(ステップS76)。続いて、シリアル通信により払出制御基板15から送信されたコマンドを受信するためのメイン側受信処理を実行する(ステップS77)。
この後、遊技制御用マイクロコンピュータ100は、特別図柄プロセス処理を実行する(ステップS78)。特別図柄プロセス処理では、遊技制御フラグ設定部133に設けられた特別図柄プロセスフラグの値をパチンコ遊技機1における遊技の進行状況に応じて更新し、特別図柄表示装置4における表示動作の制御や特別可変入賞球装置7における大入賞口開閉動作の設定などを所定の手順で行うために、各種の処理が選択されて実行される。特別図柄プロセス処理に続いて、普通図柄プロセス処理が実行される(ステップS79)。遊技制御用マイクロコンピュータ100は、普通図柄プロセス処理を実行することにより、普通図柄表示器40における表示動作(例えばLEDの点灯、消灯など)を制御して、普通図柄の可変表示(例えば、点灯・点滅表示など)や普通可変入賞球装置6における可動翼片の傾動制御の設定などを可能にする。また、遊技制御用マイクロコンピュータ100は、所定の情報出力処理を実行することにより、例えばパチンコ遊技機1の外部に設置されたホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する(ステップS80)。
さらに、遊技制御用マイクロコンピュータ100は、払出用コマンド制御処理を実行することにより、主基板11から払出制御基板15に対して払出制御コマンドを送信させる(ステップS81)。また、遊技制御用マイクロコンピュータ100は、演出用コマンド制御処理を実行することにより、主基板11から演出制御基板12に対して演出制御コマンドを送信させる(ステップS82)。この後、遊技制御用マイクロコンピュータ100は、メイン側エラー解除処理を実行して、エラー解除スイッチ31からの検出信号がオン状態となったときに所定のエラーの解除を可能にする(ステップS83)。そして、ステップS71にて退避したレジスタの内容を復帰させてから(ステップS84)、遊技制御用タイマ割込み処理を終了する。
図41及び図42は、図40に示すステップS73にて実行される乱数スタート値変更設定処理の一例を示すフローチャートである。この乱数スタート値変更設定処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が遊技制御フラグ設定部133に設けられた12ビット乱数用スタート値変更フラグがオンとなっているか否かを判定する(図41のステップS201)。このとき、12ビット乱数用スタート値変更フラグがオンであれば(ステップS201;Yes)、CPU104が12ビット乱数における2周目以降のスタート値に関する設定を読出し(ステップS202)、読出値が「01」であるか否かを判定する(ステップS203)。ステップS202における処理の具体的な一例としては、乱数回路103もしくはCPU104に内蔵された所定のレジスタや、RAM106の所定領域に格納された12ビット乱数における2周目以降のスタート値に関する設定データを、CPU104が読み出す処理などであればよい。
ステップS203にて読出値が「01」であると判定されたときには(ステップS203;Yes)、乱数回路103において12ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づいて決定する(ステップS204)。ここで、ステップS204の処理では、遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま12ビット乱数を生成するためのスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、12ビット乱数を生成するためのスタート値に設定するようにしてもよい。例えば、遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
また、ステップS203にて読出値が「01」ではないと判定されたときには(ステップS203;No)、その読出値は「10」であるか否かを判定する(ステップS205)。そして、読出値が「10」であると判定されたときには(ステップS205;Yes)、乱数回路103において12ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、RAM106の格納データに基づく値に決定するための処理を実行する。すなわち、CPU104は、RAM106の各番地における格納値を読出し(ステップS206)、読出した格納値を順次に加算する(ステップS207)。そして、12ビット乱数を生成するためのスタート値を、ステップS207における加算処理によって算出された加算値に変更する(ステップS208)。なお、ステップS208の処理では、ステップS207における加算処理によって算出された加算値が最大値を超えているか否かを判定し、超えていない場合には加算値をそのままスタート値に設定する一方、超えている場合には最大値以下となる所定値(例えば「1」など)をスタート値として再設定すればよい。
ステップS205にて読出値が「10」ではないと判定されたときには(ステップS205;No)、その読出値は「11」であるか否かを判定する(ステップS209)。そして、読出値が「11」であると判定されたときには(ステップS209;Yes)、RAM106における指定番地(指定RAM番地)の格納値を読出し(ステップS210)、12ビット乱数を生成するためのスタート値を、ステップS210での読出値に変更する(ステップS211)。
なお、ステップS204、S206〜S208、S210及びS211の各処理は、乱数回路103が備える初期値設定回路172Aによって実行されるようにしてもよい。例えば、CPU104がステップS203にて読出値が「01」であると判定したときには、乱数回路103に所定の第1初期値変更信号を送る。乱数回路103がCPU104から第1初期値変更信号を受けたときには、初期値設定回路172Aが所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための2周目以降のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づいた値に設定する(ステップS204に相当する処理)。他方、CPU104がステップS203にて読出値が「01」ではないと判定した後、ステップS205にて読出値が「10」であると判定したときには、乱数回路103に所定の第2初期値変更信号を送る。乱数回路103がCPU104から第2初期値変更信号を受けたときには、初期値設定回路172AがRAM106の各番地における格納値を読出し、読出した格納値を順次に加算することにより得られた加算値を乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための2周目以降のスタート値を、RAM106の格納データに基づく値に設定する(ステップS206〜S208に相当する処理)。また、CPU104がステップS205にて読出値が「10」ではないと判定した後、ステップS209にて読出値が「11」であると判定したときには、乱数回路103に所定の第3初期値変更信号を送る。乱数回路103がCPU104から第3初期値変更信号を受けたときには、初期値設定回路172AがRAM106における指定番地の格納値を読出し、読出した格納値を乱数生成回路173Aに設定することなどにより、12ビット乱数を生成するための2周目以降のスタート値を、読出した格納値に変更するように設定する(ステップS210、S211に相当する処理)。さらに、CPU104は、初期値設定回路172Aの動作を直接制御してステップS204、S206〜S208、S210及びS211に相当する処理を実行させてもよいし、例えば乱数回路103の内部または外部に初期値変更制御用として設けられて初期値設定回路172Aが参照可能な所定のレジスタにステップS202での読出値に対応した制御データをセットすること(このデータセット処理は、図32に示すステップS111にてROM105から第1乱数初期設定データ(KRSS1)の第1及び第0ビット[ビット1−0]を読出した後、ステップS112の処理として実行されてもよい。)などにより、初期値設定回路172Aの動作を間接的に制御するようにしてもよい。CPU104が初期値変更制御用のレジスタに制御データをセットした場合には、例えば乱数回路103にて乱数生成回路173Aが乱数一巡信号RIJ1を出力したときに初期値設定回路172Aが初期値変更制御用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値変更動作を行うことにより、ステップS202での読出値に応じた2周目以降のスタート値を生成して、乱数生成回路173Aに設定することができる。
ステップS204、S208、S211の処理のいずれかを実行した後や、ステップS209にて読出値が「11」ではないと判定されたときには(ステップS209;No)、12ビット乱数用スタート値変更フラグをクリアしてオフ状態とする(ステップS212)。ステップS212の処理を実行した後や、ステップS201にて12ビット乱数用スタート値変更フラグがオフであると判定されたときには(ステップS201;No)、遊技制御フラグ設定部133に設けられた16ビット乱数用スタート値変更フラグがオンとなっているか否かを判定する(図42のステップS213)。このとき、16ビット乱数用スタート値変更フラグがオフであれば(ステップS213;No)、乱数スタート値変更設定処理を終了する。他方、16ビット乱数用スタート値変更フラグがオンであれば(ステップS213;Yes)、16ビット乱数における2周目以降のスタート値に関する設定を読出し(ステップS214)、読出値が「01」であるか否かを判定する(ステップS215)。ステップS214における処理の具体的な一例としては、乱数回路103もしくはCPU104に内蔵された所定のレジスタや、RAM106の所定領域に格納された16ビット乱数における2周目以降のスタート値に関する設定データを、CPU104が読み出す処理などであればよい。
ステップS215にて読出値が「01」であると判定されたときには(ステップS215;Yes)、乱数回路103において16ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づいて決定する(ステップS216)。ここで、ステップS216の処理では、遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま16ビット乱数を生成するためのスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、16ビット乱数を生成するためのスタート値に設定するようにしてもよい。例えば、遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
また、ステップS215にて読出値が「01」ではないと判定されたときには(ステップS215;No)、その読出値は「10」であるか否かを判定する(ステップS217)。そして、読出値が「10」であると判定されたときには(ステップS217;Yes)、乱数回路103において16ビット乱数を生成するためのスタート値(2周目以降のスタート値)を、RAM106の格納データに基づく値に決定するための処理を実行する。すなわち、CPU104は、RAM106の各番地における格納値を読出し(ステップS218)、読出した格納値を順次に加算する(ステップS219)。そして、16ビット乱数を生成するためのスタート値を、ステップS219における加算処理によって算出された加算値に変更する(ステップS220)。なお、ステップS220の処理では、ステップS219における加算処理によって算出された加算値が最大値を超えているか否かを判定し、超えていない場合には加算値をそのままスタート値に設定する一方、超えている場合には最大値以下となる所定値(例えば「1」など)をスタート値として再設定すればよい。
ステップS217にて読出値が「10」ではないと判定されたときには(ステップS217;No)、その読出値は「11」であるか否かを判定する(ステップS221)。そして、読出値が「11」であると判定されたときには(ステップS221;Yes)、RAM106における指定番地(指定RAM番地)の格納値を読出し(ステップS222)、16ビット乱数を生成するためのスタート値を、ステップS222での読出値に変更する(ステップS223)。ステップS216、S220、S223の処理のいずれかを実行した後や、ステップS221にて読出値が「11」ではないと判定されたときには(ステップS221;No)、16ビット乱数用スタート値変更フラグをクリアしてオフ状態とする(ステップS224)。
なお、ステップS216、S218〜S220、S222及びS223の各処理は、乱数回路103が備える初期値設定回路172Bによって実行されるようにしてもよい。例えば、CPU104がステップS215にて読出値が「01」であると判定したときには、乱数回路103に所定の第4初期値変更信号を送る。乱数回路103がCPU104から第4初期値変更信号を受けたときには、初期値設定回路172Bが所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための2周目以降のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づいた値に設定する(ステップS216に相当する処理)。他方、CPU104がステップS215にて読出値が「01」ではないと判定した後、ステップS217にて読出値が「10」であると判定したときには、乱数回路103に所定の第5初期値変更信号を送る。乱数回路103がCPU104から第5初期値変更信号を受けたときには、初期値設定回路172BがRAM106の各番地における格納値を読出し、読出した格納値を順次に加算することにより得られた加算値を乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための2周目以降のスタート値を、RAM106の格納データに基づく値に設定する(ステップS218〜S220に相当する処理)。また、CPU104がステップS217にて読出値が「10」ではないと判定した後、ステップS221にて読出値が「11」であると判定したときには、乱数回路103に所定の第6初期値変更信号を送る。乱数回路103がCPU104から第6初期値変更信号を受けたときには、初期値設定回路172BがRAM106における指定番地の格納値を読出し、読出した格納値を乱数生成回路173Bに設定することなどにより、16ビット乱数を生成するための2周目以降のスタート値を、読出した格納値に変更するように設定する(ステップS222、S223に相当する処理)。さらに、CPU104は、初期値設定回路172Bの動作を直接制御してステップS216、S218〜S220、S222及びS223に相当する処理を実行させてもよいし、例えば乱数回路103の内部または外部に初期値変更制御用として設けられて初期値設定回路172Bが参照可能な所定のレジスタにステップS214での読出値に対応した制御データをセットすること(このデータセット処理は、図33に示すステップS111にてROM105から第2乱数初期設定データ(KRSS2)の第3及び第2ビット[ビット3−2]を読出した後、ステップS134の処理として実行されてもよい。)などにより、初期値設定回路172Bの動作を間接的に制御するようにしてもよい。CPU104が初期値変更制御用のレジスタに制御データをセットした場合には、例えば乱数回路103にて乱数生成回路173Bが乱数一巡信号RIJ2を出力したときに初期値設定回路172Bが初期値変更制御用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値変更動作を行うことにより、ステップS214での読出値に応じた2周目以降のスタート値を生成して、乱数生成回路173Bに設定することができる。
図43は、図40に示すステップS74にて実行される乱数順列変更設定処理の一例を示すフローチャートである。この乱数順列変更設定処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第6及び第5ビット[ビット6−5]を読出し(ステップS231)、読出値が「10」であるか否かを判定する(ステップS232)。
ステップS232にて読出値が「10」であると判定されたときには(ステップS232;Yes)、遊技制御フラグ設定部133に設けられた12ビット乱数順列変更フラグがオンとなっているか否かを判定する(ステップS233)。このとき、12ビット乱数順列変更フラグがオンであれば(ステップS233;Yes)、例えばCPU104が乱数回路103に設けられたARSC175Aの第0ビット[ビット0]に“1”を設定する(ステップS234)。このときには、12ビット乱数順列変更フラグをクリアしてオフ状態とする(ステップS235)。
ステップS232にて読出値が「10」ではないと判定されたときや(ステップS232;No)、ステップS233にて12ビット乱数順列変更フラグがオフであると判定されたとき(ステップS233;No)、あるいはステップS235の処理を実行した後には、例えばCPU104がROM105に記憶されている第2乱数初期設定データ(KRSS2)の第1及び第0ビット[ビット1−0]を読出し(ステップS236)、読出値が「10」であるか否かを判定する(ステップS237)。このとき、読出値が「10」以外であれば(ステップS237;No)、乱数順列変更設定処理を終了する。
他方、ステップS237にて読出値が「10」であると判定されたときには(ステップS237;Yes)、遊技制御フラグ設定部133に設けられた16ビット乱数順列変更フラグがオンとなっているか否かを判定する(ステップS238)。このとき、16ビット乱数順列変更フラグがオフであれば(ステップS238;No)、乱数順列変更設定処理を終了する。これに対して、16ビット乱数順列変更フラグがオンであれば(ステップS238;Yes)、例えばCPU104が乱数回路103に設けられたBRSC175Bの第0ビット[ビット0]に“1”を設定する(ステップS239)。このときには、16ビット乱数順列変更フラグをクリアしてオフ状態とする(ステップS240)。
図44(A)は、図40に示すステップS75にて実行される賞球処理の一例を示すフローチャートである。図44(A)に示す賞球処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図40に示すステップS72におけるスイッチ処理の実行結果に基づき、始動口スイッチ22、カウントスイッチ24、及び入賞口スイッチ25A〜25Dといった各入賞口スイッチからの入賞検出信号がオン状態となっているか否かをチェックする(ステップS251)。続いて、ステップS251でのチェック結果に基づき、遊技制御カウンタ設定部135に設けられた第1〜第3払出数指示カウンタや総賞球数カウンタにおけるカウント値の設定を行う(ステップS252)。
図44(B)は、ステップS252における処理内容の一例を示す説明図である。ステップS252の処理では、各入賞口スイッチからの入賞検出信号がオン状態となっているか否か(入力されているか否か)の判定が行われる。そして、カウントスイッチ24からの入賞検出信号がオン状態であるときには、遊技制御カウンタ設定部135に設けられた第1払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を15加算する。また、左右の袖入賞口スイッチとなる入賞口スイッチ25A、25Bのいずれかからの入賞検出信号がオン状態であるときには、遊技制御カウンタ設定部135に設けられた第2払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を7加算する。左右の落とし入賞口スイッチとなる入賞口スイッチ25C、25Dのいずれかからの入賞検出信号がオン状態であるときにも、遊技制御カウンタ設定部135に設けられた第2払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を7加算する。さらに、始動口スイッチ22からの入賞検出信号がオン状態であるときには、遊技制御カウンタ設定部135に設けられた第3払出数指示カウンタの値を1加算するとともに、総賞球数カウンタの値を4加算する。このようなステップS252での処理を実行した後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御フラグ設定部133に設けられた賞球プロセスフラグの値に応じて、以下のようなステップS253〜S255の各処理を実行する。
ステップS253の賞球送信処理は、賞球プロセスフラグの値が“0”のときに実行される。図45は、賞球送信処理として、図44(A)に示すステップS253にて実行される処理の一例を示すフローチャートである。図45に示す賞球送信処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が遊技制御フラグ設定部133に設けられたシリアル通信エラーフラグがオンとなっているか否かを判定する(ステップS301)。このとき、シリアル通信エラーフラグがオンであれば(ステップS301;Yes)、そのまま賞球送信処理を終了する。
ステップS301にてシリアル通信エラーフラグがオフであると判定されたときには(ステップS301;No)、遊技制御フラグ設定部133に設けられた再送信フラグがオンとなっているか否かを判定する(ステップS302)。ここで、再送信フラグは、後述する図46に示すステップS336の処理が実行されたときにオン状態にセットされる一方、図46に示すステップS323の処理が実行されたときにはクリアされてオフ状態となる。ステップS302にて再送信フラグがオフであるときには(ステップS302;No)、遊技制御カウンタ設定部135に設けられた第1〜第3払出数指示カウンタの値をチェックするために用いられる変数Nの値を、初期値となる「1」に設定する(ステップS303)。
続いて、第1〜第3払出数指示カウンタのうちで変数Nの値に対応するいずれかにおける値が、「0」となっているか否かを判定する(ステップS304)。例えば、変数Nの値が「1」であるときには、第1払出数指示カウンタの値が「0」となっているか否かを判定し、変数Nの値が「2」であるときには、第2払出数指示カウンタの値が「0」となっているか否かを判定し、変数Nの値が「3」であるときには、第3払出数指示カウンタの値が「0」となっているか否かを判定する。ステップS304にて判定の対象となった払出数指示カウンタの値が「0」であるときには(ステップS304;Yes)、変数Nの値が「3」であるか否かを判定し(ステップS305)、「3」であるときには(ステップS305;Yes)、賞球送信処理を終了する。これに対して、ステップS305にて変数Nの値が「3」以外の値であるときには(ステップS305;No)、変数Nの値を1加算した後(ステップS306)、ステップS304の処理にリターンする。
ステップS302にて再送信フラグがオンであるときや(ステップS302;Yes)、ステップS304にて判定の対象となった払出数指示カウンタの値が「0」以外の値であるときには(ステップS304;No)、変数Nの値が「1」であるか否かを判定する(ステップS307)。そして、変数Nの値が「1」であるときには(ステップS307;Yes)、払出制御基板15に対して第1払出数指定コマンドを送信するための設定を行う(ステップS308)。具体的な一例として、ステップS308の処理では、ROM105に格納されている第1払出数指定コマンド設定テーブルの先頭アドレスをポインタに設定し、第1払出数指定コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部136の送信コマンドバッファに含まれる払出用送信コマンドバッファ192にセットする。ステップS307にて変数Nの値が「1」以外の値であるときには(ステップS307;No)、その変数Nの値は「2」であるか否かを判定する(ステップS309)。
ステップS309にて変数Nの値が「2」である場合には(ステップS309;Yes)、払出制御基板15に対して第2払出数指定コマンドを送信するための設定を行う(ステップS310)。具体的な一例として、ステップS310の処理では、ROM105に格納されている第2払出数指定コマンド設定テーブルの先頭アドレスをポインタに設定し、第2払出数指定コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを払出用送信コマンドバッファ192にセットする。ステップS309にて変数Nの値が「2」ではない場合には(ステップS309;No)、変数Nの値が「3」であるものと判断して、払出制御基板15に対して第3払出数指定コマンドを送信するための設定を行う(ステップS311)。具体的な一例として、ステップS311の処理では、ROM105に格納されている第3払出数指定コマンド設定テーブルの先頭アドレスをポインタに設定し、第3払出数指定コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを払出用送信コマンドバッファ192にセットする。
ステップS308、S310、S311の処理のいずれかを実行した後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御タイマ設定部134に設けられた賞球制御タイマに賞球ACK用初期値として予め定められたタイマ初期値を設定する(ステップS312)。そして、賞球プロセスフラグの値を“1”に更新する(ステップS313)。
図44(A)に示すステップS254の賞球ACK待ち処理は、賞球プロセスフラグの値が“1”のときに実行される。図46は、賞球ACK待ち処理として、図44(A)に示すステップS254にて実行される処理の一例を示すフローチャートである。図46に示す賞球ACK待ち処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が遊技制御フラグ設定部133に設けられた賞球ACK受信フラグがオンとなっているか否かを判定する(ステップS321)。
ステップS321にて賞球ACK受信フラグがオンであると判定されたときには(ステップS321;Yes)、賞球ACK受信フラグをクリアしてオフ状態にするとともに(ステップS322)、再送信フラグをクリアしてオフ状態とする(ステップS323)。続いて、第1〜第3払出数指示カウンタのうちで変数Nの値に対応するいずれかにおける値を1減算するとともに(ステップS324)、遊技制御カウンタ設定部135に設けられたコマンド送信回数カウンタにおける値であるコマンド送信回数カウント値を1加算する(ステップS325)。
ステップS325の処理を実行した後には、変数Nの値が「1」であるか否かを判定する(ステップS326)。このとき、変数Nの値が「1」であれば(ステップS326;Yes)、第1払出数指定コマンドの送信により15個の賞球を払い出すための指示が完了したと判断して、総賞球数カウンタの値を15減算する(ステップS327)。ステップS326にて変数Nの値が「1」以外の値であるときには(ステップS326;No)、その変数Nの値は「2」であるか否かを判定する(ステップS328)。
ステップS328にて変数Nの値が「2」である場合には(ステップS328;Yes)、第2払出数指定コマンドの送信により7個の賞球を払い出すための指示が完了したと判断して、総賞球数カウンタの値を7減算する(ステップS329)。ステップS328にて変数Nの値が「2」ではない場合には(ステップS328;No)、変数Nの値が「3」であることに対応した第3払出数指定コマンドの送信により4個の賞球を払い出すための指示が完了したと判断して、総賞球数カウンタの値を4減算する(ステップS330)。
ステップS327、S329、S330の処理のいずれかを実行した後には、払出制御基板15に対してACKフィードバックコマンドを送信するための設定を行う(ステップS331)。具体的な一例として、ステップS331の処理では、ROM105に格納されているACKフィードバックコマンド設定テーブルの先頭アドレスをポインタに設定し、ACKフィードバックコマンド設定テーブルの内容に基づいてコマンド送信用の制御データを払出用送信コマンドバッファ192にセットする。ステップS331の処理に続いて、例えばCPU104が賞球制御タイマにフィードバック用初期値として予め定められたタイマ初期値を設定する(ステップS332)。そして、賞球プロセスフラグの値を“2”に更新する(ステップS333)。
また、ステップS321にて賞球ACK受信フラグがオフであると判定されたときには(ステップS321;No)、賞球制御タイマにおけるタイマ値を、例えば1減算するなどして更新する(ステップS334)。そして、ステップS334での更新により賞球制御タイマがタイムアウトしたか否かを判定することなどにより、賞球ACK待ち時間が経過したか否かを判定する(ステップS335)。このとき、賞球ACK待ち時間が経過していなければ(ステップS335;No)、賞球ACK待ち処理を終了する。これに対して、賞球ACK待ち時間が経過したときには(ステップS335;Yes)、再送信フラグをオン状態にセットするとともに(ステップS336)、賞球プロセスフラグの値を“0”に更新する(ステップS337)。
図44(A)に示すステップS255の賞球送信完了処理は、賞球プロセスフラグの値が“2”のときに実行される。図47は、賞球送信完了処理として、図44(A)に示すステップS255にて実行される処理の一例を示すフローチャートである。図47に示す賞球送信完了処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が賞球制御タイマにおけるタイマ値を、1減算するなどして更新する(ステップS341)。続いて、ステップS341での更新により賞球制御タイマがタイムアウトしたか否かを判定することなどにより、フィードバック送信待ち時間が経過したか否かを判定する(ステップS342)。
ステップS342にてフィードバック送信待ち時間が経過していないときには(ステップS342;No)、賞球送信完了処理を終了する。これに対して、フィードバック送信待ち時間が経過したときには(ステップS342;Yes)、賞球制御タイマを初期化するとともに(ステップS343)、賞球プロセスフラグの値を“0”に更新する(ステップS344)。
図48及び図49は、図40に示すステップS76にて実行される異常動作報知設定処理の一例を示すフローチャートである。この異常動作報知設定処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図40に示すステップS72におけるスイッチ処理の実行結果に基づき、全入賞球検出スイッチ29からの検出信号がオン状態となっているか否かを判定する(図48のステップS261)。
ステップS261にて全入賞球検出スイッチ29からの検出信号がオン状態であるときには(ステップS261;Yes)、コマンド送信回数カウンタの値を1減算する(ステップS262)。これに対して、ステップS261にて全入賞球検出スイッチ29からの検出信号がオフ状態であるときには(ステップS261;No)、ステップS262の処理をスキップする。その後、遊技制御用マイクロコンピュータ100では、例えばCPU104がシリアル通信エラーフラグがオンとなっているか否かを判定する(ステップS263)。そして、ステップS263にてシリアル通信エラーフラグがオンであるときには(ステップS263;Yes)、遊技制御フラグ設定部133に設けられた通信エラー報知フラグがオンとなっているか否かを判定する(ステップS264)。なお、通信エラー報知フラグは、後述するステップS266の処理が実行されたときにオン状態にセットされる一方、ステップS269の処理が実行されたときにクリアされてオフ状態となる。
ステップS264にて通信エラー報知フラグがオンであるときには(ステップS264;Yes)、既にシリアル通信エラーが発生した旨の報知が行われていると判断して、異常動作報知設定処理を終了する。他方、ステップS264にて通信エラー報知フラグがオフであるときには(ステップS264;No)、演出制御基板12に対してシリアル通信異常報知開始コマンドを送信するための設定を行う(ステップS265)。具体的な一例として、ステップS265の処理では、ROM105に格納されているシリアル通信異常報知開始コマンド設定テーブルの先頭アドレスをポインタに設定し、シリアル通信異常報知開始コマンド設定テーブルの内容に基づいてコマンド送信用の制御データを、遊技制御バッファ設定部136の演出用送信コマンドバッファにセットする。また、ステップS265の処理を実行したときには、通信エラー報知フラグをオン状態にセットする(ステップS266)。
ステップS263にてシリアル通信エラーフラグがオフであるときには(ステップS263;No)、通信エラー報知フラグがオンとなっているか否かを判定する(ステップS267)。そして、通信エラー報知フラグがオンであるときには(ステップS267;Yes)、演出制御基板12に対してシリアル通信異常報知終了コマンドを送信するための設定を行う(ステップS268)。具体的な一例として、ステップS268の処理では、ROM105に格納されているシリアル通信異常報知終了コマンド設定テーブルの先頭アドレスをポインタに設定し、シリアル通信異常報知終了コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。ステップS268の処理を実行した後には、通信エラー報知フラグをクリアしてオフ状態にする(ステップS269)。
ステップS267にて通信エラー報知フラグがオフであるときや(ステップS267;No)、ステップS269の処理を実行した後には、コマンド送信回数カウンタの値が予め定められた賞球過多基準値(例えば「250」)以上となっているか否かを、例えばCPU104が判定する(ステップS270)。そして、コマンド送信回数カウンタの値が賞球過多基準値以上であるときには(ステップS270;Yes)、演出制御基板12に対して賞球過多報知コマンドを送信するための設定を行う(ステップS271)。具体的な一例として、ステップS271の処理では、ROM105に格納されている賞球過多報知コマンド設定テーブルの先頭アドレスをポインタに設定し、賞球過多報知コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。他方、ステップS270にてコマンド送信回数カウンタの値が賞球過多基準値未満であるときには(ステップS270;No)、コマンド送信回数カウンタの値が予め定められた賞球不足基準値(例えば「0」)に達したか否かを判定する(ステップS272)。
ステップS272にてコマンド送信回数カウンタの値が賞球不足基準値に達しているときには(ステップS272;Yes)、演出制御基板12に対して賞球不足報知コマンドを送信するための設定を行う(ステップS273)。具体的な一例として、ステップS273の処理では、ROM105に格納されている賞球不足報知コマンド設定テーブルの先頭アドレスをポインタに設定し、賞球不足報知コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。ステップS271、S273のいずれかの処理を実行した後には、コマンド送信回数カウンタに、所定のカウント初期値(例えば「200」)を設定する(ステップS274)。
ステップS272にてコマンド送信回数カウンタの値が賞球不足基準値に達していないときや(ステップS272;No)、ステップS274の処理を実行した後には、再送信フラグがオンとなっているか否かを判定する(ステップS275)。このとき、再送信フラグがオフであれば(ステップS275;No)、払出用通信エラー検出フラグがオンとなっているか否かを判定する(ステップS276)。そして、ステップS275にて再送信フラグがオンであるとき(ステップS275;Yes)、またはステップS276にて払出用通信エラー検出フラグがオンであるときには(ステップS276;Yes)、遊技制御フラグ設定部133に設けられた払出異常報知フラグがオンとなっているか否かを判定する(ステップS277)。なお、払出異常報知フラグは、後述するステップS279の処理が実行されたときにオン状態にセットされる一方、図49に示すステップS282の処理が実行されたときにクリアされてオフ状態となる。
ステップS277にて払出異常報知フラグがオンであるときには(ステップS277;Yes)、既に払出動作の異常が発生した旨の報知が行われていると判断して、異常動作報知設定処理を終了する。他方、ステップS277にて払出異常報知フラグがオフであるときには(ステップS277;No)、演出制御基板12に対してメイン側払出異常報知開始コマンドを送信するための設定を行う(ステップS278)。具体的な一例として、ステップS278の処理では、ROM105に格納されているメイン側払出異常報知開始コマンド設定テーブルの先頭アドレスをポインタに設定し、払出異常報知開始コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。また、ステップS278の処理を実行したときには、払出異常報知フラグをオン状態にセットする(ステップS279)。
ステップS276にて払出用通信エラー検出フラグがオフであるときには(ステップS276;No)、払出異常報知フラグがオンとなっているか否かを判定する(図49のステップS280)。そして、払出異常報知フラグがオンであるときには(ステップS280;Yes)、演出制御基板12に対してメイン側払出異常報知終了コマンドを送信するための設定を行う(ステップS281)。具体的な一例として、ステップS281の処理では、ROM105に格納されているメイン側払出異常報知終了コマンド設定テーブルの先頭アドレスをポインタに設定し、払出異常報知終了コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。ステップS281の処理を実行した後には、払出異常報知フラグをクリアしてオフ状態にする(ステップS282)。
ステップS280にて払出異常報知フラグがオフであるときには(ステップS280;No)、遊技制御フラグ設定部133に設けられた払出エラー通知フラグがオンとなっているか否かを判定する(ステップS283)。そして、払出エラー通知フラグがオンであるときには(ステップS283;Yes)、遊技制御フラグ設定部133に設けられた払出エラー報知フラグがオンとなっているか否かを判定する(ステップS284)。なお、払出エラー報知フラグは、後述するステップS286の処理が実行されたときにオン状態にセットされる一方、ステップS289の処理が実行されたときにクリアされてオフ状態となる。
ステップS284にて払出エラー報知フラグがオンであるときには(ステップS284;Yes)、既に払出制御基板15で異常が発生した旨の報知が行われていると判断して、異常動作報知設定処理を終了する。他方、ステップS284にて払出エラー報知フラグがオフであるときには(ステップS284;No)、演出制御基板12に対して払出側異常報知開始コマンドを送信するための設定を行う(ステップS285)。具体的な一例として、ステップS285の処理では、ROM105に格納されている払出側異常報知開始コマンド設定テーブルの先頭アドレスをポインタに設定し、払出側異常報知開始コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。また、ステップS285の処理を実行したときには、払出エラー報知フラグをオン状態にセットする(ステップS286)。
ステップS283にて払出エラー通知フラグがオフであるときには(ステップS283;No)、払出エラー報知フラグがオンとなっているか否かを判定する(ステップS287)。そして、払出エラー報知フラグがオフであるときには(ステップS287;No)、異常動作報知設定処理を終了する。これに対して、ステップS287にて払出エラー報知フラグがオンであるときには(ステップS287;Yes)、演出制御基板12に対して払出側異常報知終了コマンドを送信するための設定を行う(ステップS288)。具体的な一例として、ステップS288の処理では、ROM105に格納されている払出側異常報知終了コマンド設定テーブルの先頭アドレスをポインタに設定し、払出側異常報知開始コマンド設定テーブルの内容に基づいて、コマンド送信用の制御データを演出用送信コマンドバッファにセットする。また、ステップS288の処理を実行したときには、払出エラー報知フラグをクリアしてオフ状態にする(ステップS289)。
図50は、図40に示すステップS77にて実行されるメイン側受信処理の一例を示すフローチャートである。このメイン側受信処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、払出用通信エラー検出フラグがオンとなっているか否かを、例えばCPU104が判定する(ステップS401)。ステップS401にて払出用通信エラー検出フラグがオンであるときには(ステップS401;Yes)、そのままメイン側受信処理を終了する。これにより、主基板11において払出制御基板15との間での通信に関するエラーが発生しているときには、払出制御基板15から送信される払出通知コマンドの受信を停止する状態に制御されることになる。
他方、ステップS401にて払出用通信エラー検出フラグがオフであるときには(ステップS401;No)、例えばCPU104が遊技制御カウンタ設定部135に設けられたコマンド受信個数カウンタの値が「0」以外であるか否かを判定することなどにより、受信コマンドがあるか否かを判定する(ステップS402)。このとき、受信コマンドがない旨の判定がなされると(ステップS402;No)、メイン側受信処理を終了する。
ステップS402にて受信コマンドがある旨の判定がなされたときには(ステップS402;Yes)、払出用受信コマンドバッファ191に設けられた受信コマンドバッファ#1〜#12のうちでコマンド受信個数カウンタの値に対応したものから格納データを読出し(ステップS403)、コマンド受信個数カウンタの値を、例えばステップS403にて読出した格納データの個数だけ減算するなどして更新する(ステップS404)。続いて、ステップS403にて読出した受信コマンドが払出制御基板15から送信される適正なコマンドであるか否かのチェックを行う(ステップS405)。具体的な一例として、受信コマンドの1バイト目と2バイト目との排他的論理和を演算し、算出された演算結果が正常値となっているか否かを判定することで、受信コマンドが適正なコマンドであるか否かをチェックすることができる。この実施の形態では、払出制御基板15から主基板11に対して送信されるコマンドは、1バイト目を反転させることで2バイト目となるように構成されていることから、受信コマンドの1バイト目と2バイト目との排他的論理和を演算した結果、全ビット値が“1”となれば、受信コマンドが適正なコマンドであると判断することができる。
ステップS405におけるチェックの結果、受信コマンドが適正なコマンドではないと判定されたときには(ステップS405;No)、払出用通信エラー検出フラグをオン状態にセットして(ステップS406)、メイン側受信処理を終了する。これに対して、ステップS405におけるチェックの結果、受信コマンドが適正なコマンドであると判定されたときには(ステップS405;Yes)、その受信コマンドは賞球ACKコマンドであるか否かを判定する(ステップS407)。そして、受信コマンドが賞球ACKコマンドであるときには(ステップS407;Yes)、賞球ACK受信フラグをオン状態にセットする(ステップS408)。
他方、ステップS407にて受信コマンドが賞球ACKコマンドではないと判定されたときには(ステップS407;No)、その受信コマンドが払出エラー通知コマンドであるか否かを判定する(ステップS409)。そして、受信コマンドが払出エラー通知コマンドであるときには(ステップS409;Yes)、払出エラー通知フラグをオン状態にセットする(ステップS410)。ステップS409にて受信コマンドが払出エラー通知コマンドではないと判定されたときには(ステップS409;No)、その受信コマンドが払出エラー解除コマンドであるか否かを判定する(ステップS411)。そして、受信コマンドが払出エラー解除コマンドであるときには(ステップS411;Yes)、払出エラー解除フラグをオン状態にセットする(ステップS412)。ステップS411にて受信コマンドが払出エラー解除コマンドではないと判定されたときには(ステップS411;No)、受信したコマンドの種類に対応するコマンド受信フラグをオン状態にセットすればよい(ステップS413)。
図51は、図40に示すステップS78にて実行される特別図柄プロセス処理の一例を示すフローチャートである。この特別図柄プロセス処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図40に示すステップS72におけるスイッチ処理の実行結果に基づき、始動口スイッチ22からの始動入賞信号がオン状態となっているか否かを判定する(ステップS421)。ここで、ステップS421の処理では、例えば始動口スイッチ22からの始動入賞信号がオン状態となっている期間を計測するための始動口スイッチタイマにおけるタイマ値をロードし、ロードしたタイマ値を所定のスイッチオン判定値(例えば「2」)と比較する。ここで、スイッチオン判定値は、図40に示す遊技制御用タイマ割込み処理の実行回数(例えば「2」)に対応して予め定められていればよい。これにより、所定回(例えば2回)の遊技制御用タイマ割込み処理が実行されている期間(例えば4ミリ秒)にわたり始動口スイッチ22からの始動入賞信号が継続してオン状態となっているか否かを判定することができる。このように、スイッチオン判定値は、乱数回路103が備えるタイマ回路179において始動入賞信号SSの入力時間の計測を開始してから出力信号がローレベルからハイレベルに立上がるまでに要する期間(3ミリ秒)よりも長い期間にわたり始動入賞信号がオン状態であることを特定できるように定められていればよい。ステップS421の処理では、ロードしたタイマ値がスイッチオン判定値に達しているときに、始動入賞信号がオン状態となっている旨の判定を行うようにすればよい。
ステップS421にて始動入賞信号がオン状態である旨の判定がなされたときには(ステップS421;Yes)、所定の入賞処理を実行して、大当り判定用となる乱数値を示す数値データの抽出などを行う(ステップS422)。他方、ステップS421にて始動入賞信号がオフ状態である旨の判定がなされたときには(ステップS421;No)、ステップS422の入賞処理をスキップする。
ステップS422の入賞処理では、特図保留記憶部131が記憶している大当り判定用の乱数値を示す数値データの個数である保留記憶数が、所定の上限値(例えば「4」)となっているか否かを判定する。このとき、保留記憶数が上限値となっていれば、今回の入賞による始動検出は無効として、そのまま入賞処理を終了する。これに対して、保留記憶数が上限値未満であるときには、例えばCPU104が乱数回路103に16ビット乱数用として設けられた乱数値レジスタ181Bなどから大当り判定用の乱数値を示す数値データを抽出し、抽出した乱数値を示す数値データを、特図保留記憶部131における空エントリの先頭にセットする。
この後、遊技制御用マイクロコンピュータ100では、例えばCPU104が遊技制御フラグ設定部133に設けられた特別図柄プロセスフラグの値に応じて、以下のようなステップS430〜S436の各処理を実行する。
ステップS430の特別図柄通常処理は、特別図柄プロセスフラグの値が“0”のときに実行される。この特別図柄通常処理において、遊技制御用マイクロコンピュータ100では、特図保留記憶部131における保留記憶数が「0」となっているか否かを、例えばCPU104が判定する。そして、保留記憶数が「0」であるときには、特図ゲームの開始条件が成立する前提となる始動条件が成立していないと判断して、そのまま特別図柄通常処理を終了する。これに対して、保留記憶数が「0」以外であるときには、特別図柄プロセスフラグの値を“1”に更新する。
ステップS431の可変表示開始時処理は、特別図柄プロセスフラグの値が“1”のときに実行される。この可変表示開始時処理は、特別図柄表示装置4による特図ゲームにおける確定特別図柄を決定する処理や、特別図柄の可変表示時間(総変動時間)及び画像表示装置5における飾り図柄の可変表示態様を決定する処理などを含んでいる。具体的な一例として、ステップS431の可変表示開始時処理では、まず、特図保留記憶部131から保留番号「1」に対応して記憶されている大当り判定用の乱数値を示す数値データを読み出すとともに、保留番号「1」よりも下位のエントリ(例えば保留番号「2」〜「4」に対応するエントリ)に記憶された乱数値を示す数値データを、1エントリずつ上位にシフトする。
こうして特図保留記憶部131から読み出した乱数値を示す数値データに基づき、例えばROM105に格納されている大当り判定テーブルを参照することなどにより、特図ゲームや飾り図柄の可変表示における表示結果を大当りとするか否かの判定を行う。このとき、大当りとする旨の判定がなされると、遊技制御フラグ設定部133に設けられた大当りフラグをオン状態にセットするとともに、確変判定用の乱数値を示す数値データを抽出する。続いて、抽出した確変判定用の乱数値を示す数値データに基づき、例えばROM105に格納されている確変判定テーブルを参照することなどにより、大当り遊技状態の終了後における遊技状態を確変制御による高確率状態とするか否かの判定を行う。そして、高確率状態とする旨の判定がなされたときには、遊技制御フラグ設定部133に設けられた確変確定フラグをオン状態にセットする。また、ステップS431の可変表示開始時処理では、例えば特別図柄表示装置4における各セグメントや各ドットの点灯/消灯動作を開始させるなどといった、特別図柄表示装置4において特別図柄の可変表示を開始する設定を行う。この後、特別図柄プロセスフラグの値を“2”に更新する。
ステップS432の可変表示制御処理は、特別図柄プロセスフラグの値が“2”のときに実行される。この可変表示制御処理は、可変表示時間タイマの値に基づいて、特別図柄表示装置4による特図ゲームにおける特別図柄の残りの可変表示時間を計測する処理を含んでいる。そして、特別図柄の可変表示時間(総変動時間)が経過したときには、特別図柄プロセスフラグの値を“3”に更新する。
ステップS433の可変表示停止時処理は、特別図柄プロセスフラグの値が“3”のときに実行される。この可変表示停止時処理では、特別図柄や飾り図柄の可変表示結果が大当りであるかハズレであるかが判定される。また、パチンコ遊技機1が高確率状態となっているときには、遊技状態を高確率状態から通常遊技状態に戻すか否かを判定し、戻すと判定すると、パチンコ遊技機1における遊技状態を高確率状態から通常遊技状態に移行させる。具体的な一例として、高確率状態にて実行された特図ゲームの回数が所定の確変終了基準値(例えば「100」)に達すると、高確率状態から通常遊技状態に戻すと判定する。そして、可変表示結果が大当りであるときには特別図柄プロセスフラグの値が“4”に更新される一方で、ハズレであるときには特別図柄プロセスフラグの値が“0”に更新される。
ステップS434の大入賞口開放前処理は、特別図柄プロセスフラグの値が“4”のときに実行される。この大入賞口開放前処理では、大当り遊技状態において特別可変入賞球装置7が備える開閉板により大入賞口を開放する各ラウンドにおける大入賞口の最長開放期間の設定などを行う。この後、大当り開始コマンドを演出制御基板12に対して送信するための設定を行って、特別図柄プロセスフラグの値を“5”に更新する。
ステップS435の大入賞口開放中処理は、特別図柄プロセスフラグの値が“5”のときに実行される。この大入賞口開放中処理では、大入賞口開放前処理での設定に従ってソレノイド82の駆動制御を行うことにより、特別可変入賞球装置7が備える開閉板により大入賞口を開閉させる。そして、大当り遊技状態における最終のラウンドが終了したときには、特別図柄プロセスフラグの値を“6”に更新する。ステップS436の大当り終了処理は、特別図柄プロセスフラグの値が“6”のときに実行される。この大当り終了処理では、大当り終了コマンドを演出制御基板12に対して送信するための設定などを行った後、特別図柄プロセスフラグの値を“0”に更新する。また、大当り終了処理では、確変確定フラグがオンとなっているか否かを判定し、オンであるときには、確変確定フラグをクリアしてオフ状態にするとともに、遊技制御フラグ設定部133に設けられた確変中フラグをオン状態にセットする。
図52は、図40に示すステップS81にて実行される払出用コマンド制御処理の一例を示すフローチャートである。この払出用コマンド制御処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、シリアル通信エラーフラグがオンとなっているか否かを、例えばCPU104が判定する(ステップS451)。このとき、シリアル通信エラーフラグがオンであれば(ステップS451;Yes)、シリアル通信回路108を用いて払出制御基板15に対して払出制御コマンドを送信することができないと判断して、払出用コマンド制御処理を終了する。
他方、ステップS451にてシリアル通信エラーフラグがオフであるときには(ステップS451;No)、例えば遊技制御タイマ設定部134に設けられた払出用通信制御タイマによる経過時間の計測が行われているか否か(タイマ値が「0」以外であるか否か)を判定することなどにより、払出制御コマンドの送信完了を待機中であるか否かを判定する(ステップS452)。ステップS452にて送信完了の待機中ではない旨の判定がなされたときには(ステップS452;No)、例えばCPU104が遊技制御カウンタ設定部135に設けられたコマンド送信待ちカウンタの値が「0」以外であるか否かを判定することなどにより、送信コマンドがあるか否かを判定する(ステップS453)。このとき、送信コマンドがない旨の判定がなされると(ステップS453;No)、払出用コマンド制御処理を終了する。
ステップS453にて送信コマンドがある旨の判定がなされたときには(ステップS453;Yes)、送信設定可能フラグがオンとなっているか否かを判定する(ステップS454)。このとき、送信設定可能フラグがオフであれば(ステップS454;No)、シリアル通信回路108にコマンド送信用のデータを設定するための準備ができていないと判断して、払出用コマンド制御処理を終了する。他方、ステップS454にて送信設定可能フラグがオンであるときには(ステップS454;Yes)、送信設定可能フラグをクリアしてオフ状態とする(ステップS455)。
ステップS455の処理を実行した後には、払出用送信コマンドバッファ192に設けられた送信コマンドバッファ#1〜#12のうちでコマンド送信待ちカウンタの値に対応したものから格納データを読出し(ステップS456)、読出したデータをシリアル通信回路108に設けられたシリアル通信データレジスタ203にセットする(ステップS457)。また、コマンド送信待ちカウンタの値を、例えばステップS456にて読出した格納データの個数だけ減算するなどして更新する(ステップS458)。続いて、払出用通信制御タイマに送信完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS459)、払出用コマンド制御処理を終了する。
また、ステップS452にて送信完了の待機中である旨の判定がなされたときには(ステップS452;Yes)、送信完了フラグがオンとなっているか否かを、例えばCPU104が判定する(ステップS460)。ステップS460にて送信完了フラグがオンであるときには(ステップS460;Yes)、送信完了フラグをクリアしてオフ状態にするとともに(ステップS461)、払出用通信制御タイマを初期化した後(ステップS462)、前述したステップS453の処理に進む。
ステップS460にて送信完了フラグがオフであるときには(ステップS460;No)、払出用通信制御タイマの値を、例えば1減算するなどして更新する(ステップS463)。そして、例えばステップS463での更新により払出用通信制御タイマがタイムアウトしたか否かを判定することなどにより、送信完了待ち時間が経過したか否かを判定する(ステップS464)。このとき、送信完了待ち時間が経過していれば(ステップS464;Yes)、払出制御基板15に対する払出制御コマンドの送信が送信完了待ち時間内に完了できなかったと判断して、払出用通信エラー検出フラグをオン状態にセットする(ステップS465)。他方、ステップS464にて送信完了待ち時間が経過していなければ(ステップS464;No)、ステップS465の処理をスキップして払出用コマンド制御処理を終了する。
図53は、図40に示すステップS83にて実行されるメイン側エラー解除処理の一例を示すフローチャートである。このメイン側エラー解除処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、例えばCPU104が図40に示すステップS72におけるスイッチ処理の実行結果に基づき、エラー解除スイッチ31からの検出信号がオン状態となっているか否かを判定する(ステップS481)。
ステップS481にてエラー解除スイッチ31からの検出信号がオン状態となっているときには(ステップS481;Yes)、払出用通信エラー検出フラグがオンとなっているか否かを判定する(ステップS482)。このとき、払出用通信エラー検出フラグがオフであれば(ステップS482;No)、メイン側エラー解除処理を終了する。他方、ステップS482にて払出用通信エラー検出フラグがオンであるときには(ステップS482;Yes)、払出用通信エラー検出フラグをクリアしてオフ状態とする(ステップS483)。
ステップS483の処理に続いて、シリアル通信エラーフラグがオンとなっているか否かを判定する(ステップS484)。このとき、シリアル通信エラーフラグがオフであれば(ステップS484;No)、メイン側エラー解除処理を終了する。他方、ステップS484にてシリアル通信エラーフラグがオンであるときには(ステップS484;Yes)、例えば図30に示すステップS26と同様のシリアル通信初期設定処理を実行することにより(ステップS485)、シリアル通信回路108の初期設定を行う。ステップS485の処理を実行したときには、シリアル通信エラーフラグをクリアしてオフ状態とし(ステップS486)、メイン側エラー解除処理を終了する。
また、ステップS481にてエラー解除スイッチがオフであるときには(ステップS481;No)、払出エラー解除フラグがオンとなっているか否かを判定する(ステップS487)。そして、払出エラー解除フラグがオンであるときには(ステップS487;Yes)、払出制御基板15からエラーが解除された旨を示す払出エラー解除コマンドを受信したと判断して、払出エラー通知フラグをクリアしてオフ状態とする(ステップS488)。ステップS487にて払出エラー解除フラグがオフであるときには(ステップS487;No)、ステップS488の処理をスキップしてメイン側エラー解除処理を終了する。
次に、払出制御基板15における動作を説明する。払出制御基板15では、電源基板10からの電力供給が開始され払出制御用マイクロコンピュータ150へのリセット信号がハイレベル(オフ状態)になったことに応じて、払出制御用マイクロコンピュータ150が起動し、図54のフローチャートに示すような払出制御メイン処理が実行される。なお、以下に説明する各処理は、払出制御用マイクロコンピュータ150が備えるCPU214によって実行されるものとする。また、払出制御用マイクロコンピュータ150が備えるタイマ回路217やシリアル通信回路218などで発生した各種の割込み要因に基づく割込み要求は、CPU214に所定の割込み処理を実行させるためのものである。そして、CPU214やCPU214以外の各種回路を含んだ概念を払出制御用マイクロコンピュータ150ということもあるものとする。図54に示す払出制御メイン処理を開始すると、払出制御用マイクロコンピュータ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により実行される図34に示す処理と同様の処理であればよい。また、CPU214は、割込み要求に基づいて実行される割込み処理に関する初期設定を行うための処理として、割込み初期設定処理を実行する(ステップS519)。この割込み初期設定処理は、主基板11の側で遊技制御用マイクロコンピュータ100により実行される図35に示す処理と同様の処理であればよい。そして、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などの各回路を初期化した後、所定のベクタテーブルで示されるアドレスからユーザプログラムの実行を開始して、自動復旧を行うようにしてもよい。
図55は、図54に示すステップS522にて実行される払出側電源断処理の一例を示すフローチャートである。図55に示す払出側電源断処理において、払出制御用マイクロコンピュータ150では、まず、CPU214が割込禁止に設定する(ステップS531)。続いて、例えばCPU214が払出制御用マイクロコンピュータ150に設けられた出力ポートの所定ビットにクリアデータをセットするなどして、払出モータ51の動作を停止させるための設定を行う(ステップS532)。このときには、出力ポートの所定ビット以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。ステップS532の処理を実行した後には、例えばRAM216の特定領域における記憶データを用いてチェックサムを算出するなど、チェックデータの作成を行うとともに(ステップS533)、払出制御フラグ設定部141に設けられた払出バックアップフラグをオン状態にセットする(ステップS534)。このとき作成されたチェックデータは、例えば払出制御バッファ設定部144に設けられた払出チェックサムバッファなどといった、RAM216の所定領域に格納される。そして、払出制御用マイクロコンピュータ150は、例えば所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM216へのアクセスを禁止する(ステップS535)。
払出制御用マイクロコンピュータ150では、シリアル通信回路218にて発生した割込み要因に対応して、主基板11に搭載された遊技制御用マイクロコンピュータ100が実行する割込み処理を払出制御用マイクロコンピュータ150に適合させた処理が、実行されればよい。例えば、図56は、払出制御用マイクロコンピュータ150に設けられたシリアル通信回路218にてエラー割込みが発生するごとに実行されるシリアル通信エラー割込み処理の一例を示すフローチャートであり、図37に示す処理を払出制御用マイクロコンピュータ150に適合させた処理となっている。
図56に示すシリアル通信エラー割込み処理において、払出制御用マイクロコンピュータ150では、まず、CPU214がシリアル通信回路218に設けられた送信動作部を未使用状態に設定する(ステップS541)。具体的な一例として、CPU214は、シリアル通信回路218が備えるシリアル制御レジスタにおける第2レジスタSICL2の第3ビット[ビット3]であるTEを“0”に設定することにより、送信動作部を使用しないものと設定する。続いて、CPU214がシリアル通信回路218に設けられた受信動作部を未使用状態に設定する(ステップS542)。具体的な一例として、CPU214は、シリアル通信回路218が備えるシリアル制御レジスタにおける第2レジスタSICL2の第2ビット[ビット2]であるREを“0”に設定することにより、受信動作部を使用しないものと設定する。この後、払出制御用マイクロコンピュータ150では、例えばCPU214が払出制御フラグ設定部141に設けられた主基板通信エラーフラグをオン状態にセットするとともに(ステップS543)、シリアル通信エラーフラグをオン状態にセットする(ステップS544)。
また、シリアル通信回路218にて受信割込みが発生するごとに、払出制御用マイクロコンピュータ150は図38に示す処理を払出制御用マイクロコンピュータ150に適合させたシリアル受信割込み処理を実行し、シリアル通信回路218にて送信割込みが発生するごとに、払出制御用マイクロコンピュータ150は図39に示す処理を払出制御用マイクロコンピュータ150に適合させたシリアル送信割込み処理を実行すればよい。
図57は、払出制御用マイクロコンピュータ150にてタイマ割込みが発生するごとに実行される払出制御用タイマ割込み処理の一例を示すフローチャートである。この払出制御用タイマ割込み処理は、主基板11から送信された払出制御コマンドに応じて払出モータ51を制御する払出制御処理となる処理である。図57に示す払出制御用タイマ割込み処理において、払出制御用マイクロコンピュータ150は、所定の入出力処理を実行して(ステップS551)、例えば払出制御用マイクロコンピュータ150に設けられた入力ポートにおける所定ビットの状態をチェックしたり、払出制御用マイクロコンピュータ150に設けられた出力ポートにおける所定ビットに対して所定の制御データをセットしたりする。
続いて、払出制御用マイクロコンピュータ150は、プリペイドカードユニット処理を実行して、カードユニット70との間での通信を行う(ステップS552)。また、シリアル通信により主基板11から送信された払出制御コマンドを受信するための払出側受信処理を実行する(ステップS553)。そして、主基板11からの払出数指定コマンドを受信したときに賞球ACKコマンドを送信する設定などを行う賞球受信確認処理を実行する(ステップS554)。さらに、カードユニット70からの球貸し要求や、主基板11からの払出数指定コマンドに応じて、遊技球の払出動作を制御する払出動作制御処理を実行する(ステップS555)。
ステップS555の処理に続いて、払出制御用マイクロコンピュータ150は、例えば払出制御フラグ設定部141に設けられた各種のエラーフラグにおける状態に応じてエラー表示用LED74に所定の表示を行う7セグ表示処理を実行する(ステップS556)。また、主基板11に対して払出通知コマンドを送信するための払出側送信処理を実行する(ステップS557)。この後、払出制御用マイクロコンピュータ150は、払出側エラー解除処理を実行して、エラー解除スイッチ73からの検出信号がオン状態となったときに所定のエラーの解除を可能とし(ステップS558)、払出制御用タイマ割込み処理を終了する。
図58は、図57に示すステップS553にて実行される払出側受信処理の一例を示すフローチャートである。この払出側受信処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS601)。ステップS601にて主基板通信エラーフラグがオンであるときには(ステップS601;Yes)、そのまま払出側受信処理を終了する。これにより、払出制御基板15において主基板11との間での通信に関するエラーが発生しているときには、主基板11から送信される払出制御コマンドの受信を停止する状態に制御されることになる。
他方、ステップS601にて主基板通信エラーフラグがオフであるときには(ステップS601;No)、例えばCPU214が払出制御カウンタ設定部143に設けられたコマンド受信個数カウンタの値が「0」以外であるか否かを判定することなどにより、受信コマンドがあるか否かを判定する(ステップ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)、払出制御カウンタ設定部143に設けられた初期化コマンド受信回数カウンタの値が所定のエラー判定値(例えば「0」)となっているか否かを判定する(ステップS608)。ステップS608にてエラー判定値となっているときには(ステップS608;Yes)、主基板通信エラーフラグをオン状態にセットして(ステップS609)、払出側受信処理を終了する。他方、ステップS608にて初期化コマンド受信回数カウンタの値がエラー判定値ではないときには(ステップS608;No)、例えば初期化コマンド受信回数カウンタの値を1減算するなどして、そのカウント値を更新する(ステップS610)。
また、ステップS607にて受信コマンドが払出用初期化コマンドではないと判定したときには(ステップS607;No)、受信コマンドは払出数指定コマンドであるか否かを判定する(ステップS611)。そして、受信コマンドが払出数指定コマンドであるときには(ステップS611;Yes)、そのコマンドによって指定された賞球の払出数を賞球未払出カウンタの値に加算して格納する(ステップS612)。このときには、払出制御フラグ設定部141に設けられた賞球ACK送信フラグをオン状態にセットして(ステップS613)、払出制御カウンタ設定部143に設けられた払出動作不良回数カウンタに所定のカウント初期値(例えば「9」)を設定するとともに(ステップS614)、初期化コマンド受信回数カウンタに所定のカウント初期値(例えば「1」)を設定する(ステップS615)。
ステップS611にて受信コマンドが払出数指定コマンドではないと判定したときには(ステップS611;No)、受信コマンドはACKフィードバックコマンドであるか否かを判定する(ステップS616)。そして、受信コマンドがACKフィードバックコマンドであるときには(ステップS616;Yes)、払出制御フラグ設定部141に設けられたフィードバック受信フラグをオン状態にセットする(ステップS617)。ステップS616にて受信コマンドがACKフィードバックコマンドではないと判定されたときには(ステップS616;No)、受信したコマンドの種類に対応するコマンド受信フラグをオン状態にセットすればよい(ステップS618)。
図59は、図57に示すステップS554にて実行される賞球受信確認処理の一例を示すフローチャートである。この賞球受信確認処理を開始すると、払出制御用マイクロコンピュータ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の処理では、図58に示すステップS612にて賞球未払出カウンタの値に加算した払出数を、賞球未払出カウンタの値から減算して格納する。また、このときには、受信確認中フラグをクリアしてオフ状態とする(ステップS646)。
図60は、図57に示すステップS555にて実行される払出動作制御処理の一例を示すフローチャートである。図60に示す払出動作制御処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が未払出の賞球個数に関する記憶に異常が発生したか否かを判定するための払出数記憶異常判定処理を実行する(ステップS661)。ステップS661にて払出数記憶異常判定処理を実行した後には、払出制御フラグ設定部141に設けられた払出制御プロセスフラグの値に応じて、図60に示すようなステップS662〜S664の各処理を実行する。ここで、ステップS662の払出制御通常処理は、払出制御プロセスフラグの値が“0”のときに実行される。ステップS663の賞球払出動作処理は、払出制御プロセスフラグの値が“1”のときに実行される。ステップS664の球貸し払出動作処理は、払出制御プロセスフラグの値が“2”のときに実行される。
図61は、図60に示すステップS661にて実行される払出数記憶異常判定処理の一例を示すフローチャートである。この払出数記憶異常判定処理では、まず、賞球未払出カウンタの値と加算前未払出カウンタの値とを比較して、賞球未払出カウンタの値が加算前未払出カウンタの値よりも大きいか否かを判定する(ステップS701)。ステップS701にて賞球未払出カウンタの値が加算前未払出カウンタの値よりも大きいと判定したときには(ステップS701;Yes)、払出数指定コマンドを受信したことにより、賞球未払出カウンタにおけるカウント値が増加したものと判断して、このカウント値の増加分を特定する(ステップS702)。例えば、ステップS702の処理では、賞球未払出カウンタの値と加算前未払出カウンタの値との差分をとることにより、図58に示すステップS612の処理にて加算されたカウント値の増加分が特定される。
続いて、ステップS702にて特定したカウント値の増加分が、所定の賞球増加上限値(例えば「15」)以下となっているか否かを判定する(ステップS703)。この実施の形態では、主基板11から払出制御基板15に対して送信される払出制御コマンドにより指定される払出数の最大値は、図8(D)に示す第1払出数指定コマンドによって指定される「15」となっている。そして、払出制御用マイクロコンピュータ150にてタイマ割込みがあったと判定されたときには、図57に示すステップS553の払出側受信処理が1回実行される。したがって、前回の払出動作制御処理が実行されてから今回の払出動作制御処理が実行されるまでの間に、賞球未払出カウンタにおけるカウント値の増加分は、最大でも第1払出数指定コマンドによって指定される「15」となる。そこで、ステップS703にてカウント値の増加分が賞球増加上限値を超えていると判定したときには(ステップS703;No)、賞球未払出カウンタにおけるカウント値が異常に増加したため、その値は無効であると判断して、賞球未払出カウンタ及び加算前未払出カウンタをクリアしてカウント値を初期化する(ステップS704及びS705)。
これに対して、ステップS703にてカウント値の増加分が賞球増加上限値以下であるときには(ステップS703;Yes)、賞球未払出カウンタの値である未払出数を加算前未払出カウンタにセットすることにより、加算前未払出カウンタの値を更新する(ステップS706)。続いて、払出制御用マイクロコンピュータ150は、払出制御フラグ設定部141に設けられた賞球動作プロセスフラグの値が“1”となっているか否かを判定する(ステップS707)。ステップS707にて賞球動作プロセスフラグの値が“1”であるときには(ステップS707;Yes)、ステップS745の賞球払出駆動処理が実行中であると判断して、ステップS702にて特定した賞球未払出カウント値の増加分を示すデータを、払出制御用データ保持エリア140に設けられた増加分格納領域に記憶するとともに(ステップS708)、払出制御フラグ設定部141に設けられた払出動作中賞球増加フラグをオン状態にセットする(ステップS709)。このとき、増加分格納領域に既に賞球未払出カウンタ値の増加分を示すデータが記憶されている場合には、ステップS702にて特定した増加分を示すデータを、増加分格納領域の記憶データに加算して更新するようにすればよい。
ステップS701にて賞球未払出カウンタの値が加算前未払出カウンタの値と等しいときや(ステップS701;No)、ステップS707にて賞球動作プロセスフラグの値が“1”以外の数値であるとき(ステップS707;No)、ステップS709の処理を実行した後には、払出制御カウンタ設定部143に設けられた球貸し未払出カウンタに格納されているカウント値における増加分を特定する(ステップS710)。そして、ステップS710にて特定したカウント値の増加分が、所定の球貸し増加上限値(例えば「25」)以下となっているか否かを判定する(ステップS711)。このとき、カウント値の増加分が球貸し増加上限値を超えていれば(ステップS711;No)、球貸し未払出カウンタにおけるカウント値が異常に増加したため、その値は無効であると判断して、球貸し未払出カウンタをクリアしてカウント値を初期化する(ステップS712)。
ステップS711にてカウント値の増加分が球貸し増加上限値以下であるときや(ステップS711;Yes)、ステップS705、S712のいずれかの処理を実行した後には、賞球未払出カウンタの値が予め定められた多量未払出上限値(例えば「50」)未満であるか否かを判定する(ステップS713)。このとき、多量未払出上限値未満であると判定されれば(ステップS713;Yes)、払出制御フラグ設定部141に設けられた多量未払出エラーフラグをクリアしてオフ状態とする(ステップS714)。これに対して、多量未払出上限値以上であるときには(ステップS713;No)、多量未払出エラーフラグをオン状態にセットする(ステップS715)。
図62は、図60に示すステップS662にて実行される払出制御通常処理の一例を示すフローチャートである。この払出制御通常処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS721)。そして、ステップS721にて主基板通信エラーフラグがオンであるときには(ステップS721;Yes)、そのまま払出制御通常処理を終了する。これにより、払出制御基板15にて主基板11との間での通信に関するエラーが発生しているときには、賞球や貸し球となる遊技球の払出制御を停止する状態に制御されることになる。
他方、ステップS721にて主基板通信エラーフラグがオフであるときには(ステップS721;No)、賞球未払出カウンタの値が「0」以外の値となっているか否かを判定する(ステップS722)。このとき、賞球未払出カウンタの値が「0」以外の値であれば(ステップS722;Yes)、例えば払出制御フラグ設定部141に設けられた球切れエラーフラグをチェックすることなどにより、球切れ状態となっているか否かを判定する(ステップ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)、例えば払出制御フラグ設定部141に設けられた球切れエラーフラグや、カードユニット未接続エラーフラグをチェックすることなどにより、球貸し可能な状態となっているか否かを判定する(ステップS727)。そして、例えば球切れエラーフラグとカードユニット未接続エラーフラグのいずれかがオン状態となっていることなどにより、球貸し可能な状態ではないと判定されたときには(ステップS727;No)、払出制御通常処理を終了する。これに対して、ステップS727にて球貸し可能な状態となっているときには(ステップS727;Yes)、球貸し未払出カウンタに球貸し用初期値として予め定められたカウント初期値(例えば「25」)を設定する(ステップS728)。そして、払出制御プロセスフラグの値を球貸し払出動作処理に対応した値である“2”に更新する(ステップS729)。
図63は、図60に示すステップS663にて実行される賞球払出動作処理の一例を示すフローチャートである。この賞球払出動作処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が図57に示すステップS551における入出力処理の実行結果に基づき、払出カウントスイッチ72からの検出信号がオン状態となっているか否かを判定する(ステップS741)。そして、払出カウントスイッチ72からの検出信号がオン状態であるときには(ステップS741;Yes)、払出制御カウンタ設定部143に設けられた賞球未払出カウンタの値と加算前未払出カウンタの値とを1減算する(ステップS742及びS743)。これに対して、ステップS741にて払出カウントスイッチ72からの検出信号がオフ状態であるときには(ステップS741;No)、ステップS742及びS743の処理をスキップする。この後、払出制御フラグ設定部141に設けられた賞球払出動作プロセスフラグの値に応じて、図63に示すステップS744、S745及びS746の処理のいずれかを選択して実行する。ここで、ステップS744の賞球払出回数算出処理は、賞球払出動作プロセスフラグの値が“0”のときに実行される。ステップS745の賞球払出駆動処理は、賞球払出動作プロセスフラグの値が“1”のときに実行される。ステップS746の賞球払出完了待ち処理は、賞球払出動作プロセスフラグの値が“2”のときに実行される。
図64は、図63に示すステップS744にて実行される賞球払出回数算出処理の一例を示すフローチャートである。この賞球払出回数算出処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS801)。そして、ステップS801にて主基板通信エラーフラグがオンであるときには(ステップS801;Yes)、そのまま賞球払出回数算出処理を終了する。これにより、払出制御基板15にて主基板11との間での通信に関するエラーが発生しているときには、未払出の賞球となる遊技球の払出制御を停止する状態に制御されることになる。
他方、ステップS801にて主基板通信エラーフラグがオフであるときには(ステップS801;No)、賞球となる遊技球の払出動作が可能な状態となっているか否かを判定する(ステップS802)。具体的な一例として、ステップS802の処理では、球詰まりエラーフラグや空切りエラーフラグ、球噛みエラーフラグ、球切れエラーフラグ、満タンエラーフラグなどをチェックして、いずれかのエラーフラグがオン状態となっているときには、賞球となる遊技球の払出動作が不可能な状態であると判断する。他方、いずれのエラーフラグもオフ状態となっているときには、賞球となる遊技球の払出動作が可能な状態であると判断する。
ステップS802にて払出動作が可能な状態であるときには(ステップS802;Yes)、賞球未払出カウンタの値が「0」であるか否かを判定する(ステップS803)。ステップS803にて賞球未払出カウンタの値が「0」以外であるときには(ステップS803;No)、賞球未払出カウンタの値である未払出数を、払出制御カウンタ設定部143に設けられた払出モータ回転カウンタにセットする(ステップS804)。そして、賞球払出動作プロセスフラグの値を賞球払出駆動処理に対応した値である“1”に更新する(ステップS805)。これに対して、ステップS802にて払出動作が不可能な状態であるときや(ステップS802;No)、ステップS803にて賞球未払出カウンタの値が「0」であるときには(ステップS803;Yes)、払出制御プロセスフラグの値を“0”に更新する(ステップS806)。
図65は、図63に示すステップS745にて実行される賞球払出駆動処理の一例を示すフローチャートである。この賞球払出駆動処理を開始すると、払出制御用マイクロコンピュータ150では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS811)。ステップS811にて主基板通信エラーフラグがオンであるときには(ステップS811;Yes)、払出モータ51の駆動を停止するための設定を行うとともに(ステップS812)、払出モータ回転カウンタをクリアしてカウント値を初期化する(ステップS813)。そして、賞球払出動作プロセスフラグの値を“0”に更新する(ステップS814)。このように、ステップS811にて主基板通信エラーフラグがオンであるときにはステップS812の処理に進んで払出モータ51の駆動を停止することにより、払出制御基板15にて主基板11との間での通信に関するエラーが発生しているときに、未払出の賞球となる遊技球の払出制御を停止する状態に制御することができる。
これに対して、ステップS811にて主基板通信エラーフラグがオフであるときには(ステップS811;No)、払出制御フラグ設定部141に設けられた払出動作中賞球増加フラグがオンとなっているか否かを判定する(ステップS815)、ステップS815にて払出動作中賞球増加フラグがオンであれば(ステップS815;Yes)、賞球の払出動作中に賞球未払出カウンタにおけるカウント値が増加したものと判断して、払出制御用データ保持エリア140に設けられた増加分格納領域の記憶データを読み出すことにより、このカウント値の増加分を特定する(ステップS816)。そして、払出制御用マイクロコンピュータ150は、ステップS816にて特定した増加分を、払出モータ回転カウンタにおけるカウント値に加算することにより、払出モータ回転カウンタの値を更新する(ステップS817)。この後、払出制御用マイクロコンピュータ150は、増加分格納領域の記憶データをクリアして初期化するとともに、払出動作中賞球増加フラグをクリアしてオフ状態とする(ステップS818)。
ステップS815にて払出動作中賞球増加フラグがオフであるときや(ステップS815;No)、ステップS818の処理を実行した後には、例えば払出モータ51の励磁時間などから、賞球となる遊技球を1個分払い出すための払出動作中であるか否かを判定する(ステップS819)。そして、遊技球を1個分払い出すための払出動作中ではないときには(ステップS819;Yes)、払出モータ回転カウンタにおけるカウント値を1減算して更新するとともに(ステップS820)、更新後の払出モータ回転カウンタの値が「0」であるか否かを判定する(ステップS821)。
ステップS821にて払出モータ回転カウンタの値が「0」以外の値であるときには(ステップS821;No)、例えば所定の励磁パターンテーブルの先頭アドレスをポインタに設定するなどといった、遊技球を1個分払い出すための払出動作に関する設定を行う(ステップS822)。これに対して、ステップS821にて払出モータ回転カウンタの値が「0」であるときには(ステップS821;Yes)、払出モータ51の駆動を停止するための設定を行うとともに(ステップS823)、払出動作制御タイマに払出完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS824)、賞球払出動作プロセスフラグの値を“2”に更新した後(ステップS825)、賞球払出駆動処理を終了する。なお、払出完了待ち初期値は、払出モータ51を駆動することによる遊技球の払出動作を行ってから、払出カウントスイッチ72により遊技球の払出が検出されるまでに要する最大時間に対応して予め定められたタイマ初期値であればよい。
また、ステップS819にて遊技球を1個分払い出すための払出動作中であるときには(ステップS819;No)、例えば払出制御フラグ設定部141に設けられた各種のエラーフラグの状態を確認することなどにより、払出モータ51による払出動作にエラーが発生したかどうかをチェックする(ステップS826)。このとき、払出動作にエラーが発生していれば(ステップS826;No)、例えばステップS812やS823と同様にして払出モータ51の駆動を停止するための設定を行うなど、払出モータ51による払出動作中に発生したエラーに対応した設定を行う(ステップS827)。他方、ステップS826にて払出動作にエラーが発生していないと判定されたときには(ステップS826;Yes)、ステップS827の処理をスキップして賞球払出駆動処理を終了する。
図66は、図63に示すステップS746にて実行される賞球払出完了待ち処理の一例を示すフローチャートである。この賞球払出完了待ち処理では、まず、主基板通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS831)。ステップS831にて主基板通信エラーフラグがオフであるときには(ステップS831;No)、払出動作制御タイマの値を、例えば1減算するなどして更新する(ステップS832)。続いて、払出制御用マイクロコンピュータ150は、例えばステップS832での更新により払出動作制御タイマがタイムアウトしたか否かを判定することなどにより、払出完了待ち時間が経過したか否かを判定する(ステップS833)。このとき、払出完了待ち時間が経過していなければ(ステップS833;No)、賞球払出駆動処理を終了する。
これ対して、ステップS833にて払出完了待ち時間が経過しているときには(ステップS833;Yes)、賞球未払出カウンタの値が「0」となっているか否かを判定する(ステップS834)。ここで、ステップS834にて賞球未払出カウンタの値が「0」以外の数値であるときには(ステップS834;No)、賞球となる遊技球の払出動作に不良が生じたか、あるいは払出動作中に払出数指定コマンドを受信したことにより、賞球未払出カウンタの値が増加したものと判断して、払出制御カウンタ設定部143に設けられた払出動作不良回数カウンタの値を1加算して更新する(ステップS835)。
続いて、払出制御用マイクロコンピュータ150は、払出動作不良回数カウンタの値が所定の不良回数上限値(例えば「9」)を超えているか否かを判定する(ステップS836)。このように、ステップS836にて払出動作不良回数カウンタの値と比較される不良回数上限値を適切な値(例えば「9」)に定めておくことで、途中で払出数指定コマンドを受信した場合でも直ちにエラーと判定されることを防止しつつ、払出装置における球詰まりなどの発生による払出動作の不良を適切に検出することができる。
ステップS836にて不良回数上限値以下であるときには(ステップS836;No)、賞球未払出カウンタの値である未払出数を、払出モータ回転カウンタにセットするとともに(ステップS837)、賞球払出動作プロセスフラグの値を“1”に更新する(ステップS838)。これにより、払出モータ51の動作不良により払い出されなかった遊技球や、払出動作中に払出数指定コマンドを受信したことにより増加した遊技球の払出を行うことができる。これに対して、ステップS836にて不良回数上限値を超えていれば(ステップS836;Yes)、払出制御フラグ設定部141に設けられた球詰まりエラーフラグをオン状態にセットする(ステップS839)。
ステップS834にて賞球未払出カウンタの値が「0」となっているときや(ステップS834;Yes)、ステップS839の処理を実行した後には、払出動作不良カウンタ及び加算前未払出カウンタをクリアしてカウント値を初期化する(ステップS840及びS841)。そして、ステップS831にて主基板通信エラーフラグがオンであるときや(ステップS831;Yes)、ステップS841の処理を実行した後には、賞球払出動作プロセスフラグの値を“0”に更新して(ステップS842)、賞球払出完了待ち処理を終了する。
図67は、図60に示すステップS664にて実行される球貸し払出動作処理の一例を示すフローチャートである。この球貸し払出動作処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が図57に示すステップS551における入出力処理の実行結果に基づき、払出カウントスイッチ72からの検出信号がオン状態となっているか否かを判定する(ステップS761)。そして、払出カウントスイッチ72からの検出信号がオン状態であるときには(ステップS761;Yes)、払出制御カウンタ設定部143に設けられた球貸し未払出カウンタの値を1減算する(ステップS762)。これに対して、ステップS761にて払出カウントスイッチ72からの検出信号がオフ状態であるときには(ステップS761;No)、ステップS762の処理をスキップする。この後、払出制御フラグ設定部141に設けられた球貸し動作プロセスフラグの値に応じて、図67に示すステップS763、S764及びS765の処理のいずれかを選択して実行する。ここで、ステップS763の球貸し払出回数算出処理は、球貸し動作プロセスフラグの値が“0”のときに実行される。ステップS764の球貸し払出駆動処理は、球貸し動作プロセスフラグの値が“1”のときに実行される。ステップS765の球貸し払出完了待ち処理は、球貸し払出動作プロセスフラグの値が“2”のときに実行される。
図68は、図67に示すステップS763にて実行される球貸し払出回数算出処理の一例を示すフローチャートである。この球貸し払出回数算出処理を開始すると、払出制御用マイクロコンピュータ150では、まず、貸し球となる遊技球の払出動作が可能な状態となっているか否かを判定する(ステップS851)。具体的な一例として、ステップS851の処理では、球詰まりエラーフラグや空切りエラーフラグ、球噛みエラーフラグ、球切れエラーフラグ、満タンエラーフラグ、カードユニット未接続エラーフラグなどをチェックして、いずれかのエラーフラグがオン状態となっているときには、貸し球となる遊技球の払出動作が不可能な状態であると判断する。他方、いずれのエラーフラグもオフ状態となっているときには、貸し球となる遊技球の払出動作が可能な状態であると判断する。
ステップS851にて払出動作が可能な状態であるときには(ステップS851;Yes)、球貸し未払出カウンタの値が「0」であるか否かを判定する(ステップS852)。ステップS852にて球貸し未払出カウンタの値が「0」以外であるときには(ステップS852;No)、球貸し未払出カウンタの値である未払出数を、払出制御カウンタ設定部143に設けられた払出モータ回転カウンタにセットする(ステップS853)。そして、球貸し払出動作プロセスフラグの値を球貸し払出駆動処理に対応した値である“1”に更新する(ステップS854)。これに対して、ステップS851にて払出動作が不可能な状態であるときや(ステップS851;No)、ステップS852にて球貸し未払出カウンタの値が「0」であるときには(ステップS852;Yes)、払出制御プロセスフラグの値を“0”に更新する(ステップS855)。
図69は、図67に示すステップS764にて実行される球貸し払出駆動処理の一例を示すフローチャートである。この球貸し払出駆動処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えば払出モータ51の励磁時間などから、貸し球となる遊技球を1個分払い出すための払出動作中であるか否かを判定する(ステップS861)。そして、遊技球を1個分払い出すための払出動作中ではないときには(ステップS861;Yes)、払出モータ回転カウンタにおけるカウント値を1減算して更新するとともに(ステップS862)、更新後の払出モータ回転カウンタの値が「0」であるか否かを判定する(ステップS863)。
ステップS863にて払出モータ回転カウンタの値が「0」以外の値であるときには(ステップS863;No)、例えば所定の励磁パターンテーブルの先頭アドレスをポインタに設定するなどといった、遊技球を1個分払い出すための払出動作に関する設定を行う(ステップS864)。これに対して、ステップS863にて払出モータ回転カウンタの値が「0」であるときには(ステップS863;Yes)、払出モータ51の駆動を停止するための設定を行うとともに(ステップS865)、払出動作制御タイマに払出完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS866)、球貸し払出動作プロセスフラグの値を“2”に更新した後(ステップS867)、球貸し払出駆動処理を終了する。
また、ステップS861にて遊技球を1個分払い出すための払出動作中であるときには(ステップS861;No)、例えば払出制御フラグ設定部141に設けられた各種のエラーフラグの状態を確認することなどにより、払出モータ51による払出動作にエラーが発生したかどうかをチェックする(ステップS868)。このとき、払出動作にエラーが発生していれば(ステップS868;No)、例えばステップS865と同様にして払出モータ51の駆動を停止するための設定を行うなど、払出モータ51による払出動作中に発生したエラーに対応した設定を行う(ステップS869)。他方、ステップS868にて払出動作にエラーが発生していないと判定されたときには(ステップS868;Yes)、ステップS869の処理をスキップして球貸し払出駆動処理を終了する。
図70は、図67に示すステップS765にて実行される球貸し払出完了待ち処理の一例を示すフローチャートである。この球貸し払出完了待ち処理では、まず、払出動作制御タイマの値を、例えば1減算するなどして更新する(ステップS871)。続いて、払出制御用マイクロコンピュータ150は、例えばステップS871での更新により払出動作制御タイマがタイムアウトしたか否かを判定することなどにより、払出完了待ち時間が経過したか否かを判定する(ステップS872)。このとき、払出完了待ち時間が経過していなければ(ステップS872;No)、球貸し払出駆動処理を終了する。
これ対して、ステップS872にて払出完了待ち時間が経過しているときには(ステップS872;Yes)、球貸し未払出カウンタの値が「0」となっているか否かを判定する(ステップS873)。ここで、ステップS873にて球貸し未払出カウンタの値が「0」以外の数値であるときには(ステップS873;No)、貸し球となる遊技球の払出動作に不良が生じたものと判断して、払出制御カウンタ設定部143に設けられた払出動作不良回数カウンタの値を1加算して更新する(ステップS874)。
続いて、払出制御用マイクロコンピュータ150は、払出動作不良回数カウンタの値が所定の不良回数上限値(例えば「9」)を超えているか否かを判定する(ステップS875)。ステップS875にて不良回数上限値以下であるときには(ステップS875;No)、球貸し未払出カウンタの値である未払出数を、払出モータ回転カウンタにセットするとともに(ステップS876)、球貸し払出動作プロセスフラグの値を“1”に更新する(ステップS877)。これにより、払出モータ51の動作不良により払い出されなかった遊技球の払出を行うことができる。これに対して、ステップS875にて不良回数上限値を超えていれば(ステップS875;Yes)、払出制御フラグ設定部141に設けられた球詰まりエラーフラグをオン状態にセットする(ステップS878)。
そして、ステップS873にて球貸し未払出カウンタの値が「0」となっているときや(ステップS873;Yes)、ステップS878の処理を実行した後には、払出動作不良カウンタをクリアしてカウント値を初期化するとともに(ステップS879)、球貸し払出動作プロセスフラグの値を“0”に更新して(ステップS880)、球貸し払出完了待ち処理を終了する。
図57に示すステップS556にて実行される7セグ表示処理では、例えば払出制御用マイクロコンピュータ150に設けられたCPU214が払出制御フラグ設定部141に設けられた各種のエラーフラグの状態をチェックする。そして、オン状態となっているエラーフラグに対応してエラー表示用LED74の点灯動作を制御するための制御データを、払出制御用マイクロコンピュータ150に設けられた所定の出力ポートにセットする。図71は、エラーの種類とエラー表示用LED74の表示との関係などを示す説明図である。
図71に示すように、主基板通信エラーフラグがオン状態になった場合には、払出制御用マイクロコンピュータ150は、主基板通信エラーとして、エラー表示用LED74に「0」を表示する制御を行う。球切れエラーフラグがオン状態になった場合には、球切れエラーとして、エラー表示用LED74に「1」を表示する制御を行う。球噛みエラーフラグがオン状態になった場合には、球噛みエラーとして、エラー表示用LED74に「2」を表示する制御を行う。空切りエラーフラグがオン状態になった場合には、空切りエラーとして、エラー表示用LED74に「3」を表示する制御を行う。シリアル通信エラーフラグがオン状態になった場合には、シリアル通信エラーとして、エラー表示用LED74に「4」を表示する制御を行う。球詰まりエラーフラグがオン状態になった場合には、球詰まりエラーとして、エラー表示用LED74に「5」を表示する制御を行う。カードユニット未接続エラーフラグがオン状態になった場合には、カードユニット未接続エラーとして、エラー表示用LED74に「7」を表示する制御を行う。多量未払出エラーフラグがオン状態になった場合には、多量未払出エラーとして、エラー表示用LED74に「9」を表示する制御を行う。
図72は、図57に示すステップS557にて実行される払出側送信処理の一例を示すフローチャートである。この払出側送信処理を開始すると、払出制御用マイクロコンピュータ150では、まず、シリアル通信エラーフラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS671)。このとき、シリアル通信エラーフラグがオンであれば(ステップS671;Yes)、シリアル通信回路218を用いて主基板11に対して払出通知コマンドを送信することができないと判断して、払出側送信処理を終了する。
他方、ステップS671にてシリアル通信エラーフラグがオフであるときには(ステップS671;No)、払出制御フラグ設定部141に設けられたシリアル通信エラーフラグ以外のエラーフラグがオン状態となっているか否かを判定する(ステップS672)。このとき、いずれかのエラーフラグがオンとなっていれば(ステップS672;Yes)、主基板11に対して払出エラー通知コマンドを送信するための設定を行う(ステップS673)。具体的な一例として、ステップS673の処理では、ROM215に格納された払出エラー通知コマンド設定テーブルの先頭アドレスをポインタに設定し、払出エラー通知コマンド設定テーブルの内容に基づき、コマンド送信用の制御データを払出制御バッファ設定部144に設けられた送信コマンドバッファにセットする。これに対して、ステップS672にていずれのエラーフラグもオフであるときには(ステップS672;No)、ステップS673の処理をスキップする。
この後、例えば払出制御タイマ設定部142に設けられた送信動作制御タイマによる経過時間の計測が行われているか否か(タイマ値が「0」以外であるか否か)を判定することなどにより、払出通知コマンドの送信完了を待機中であるか否かを判定する(ステップS674)。ステップS674にて送信完了の待機中ではない旨の判定がなされたときには(ステップS674;No)、例えばCPU214が払出制御カウンタ設定部143に設けられたコマンド送信待ちカウンタのカウント値が「0」以外であるか否かを判定することなどにより、送信コマンドがあるか否かを判定する(ステップS675)。このとき、送信コマンドがない旨の判定がなされると(ステップS675;No)、払出側送信処理を終了する。
ステップS675にて送信コマンドがある旨の判定がなされたときには(ステップS675;Yes)、払出制御フラグ設定部141に設けられた送信設定可能フラグがオンとなっているか否かを判定する(ステップS676)。このとき、送信設定可能フラグがオフであれば(ステップS676;No)、シリアル通信回路218にコマンド送信用のデータを設定するための準備ができていないと判断して、払出側送信処理を終了する。他方、ステップS676にて送信設定可能フラグがオンであるときには(ステップS676;Yes)、送信設定可能フラグをクリアしてオフ状態とする(ステップS677)。
ステップS677の処理を実行した後には、払出制御バッファ設定部144に設けられた送信コマンドバッファのうちでコマンド送信待ちカウンタの値に対応したものから格納データを読出し(ステップS678)、読出したデータをシリアル通信回路218に設けられたシリアル通信データレジスタにセットする(ステップS679)。また、コマンド送信待ちカウンタの値を、例えばステップS678にて読出した格納データの個数だけ減算するなどして更新する(ステップS680)。続いて、送信動作制御タイマに送信完了待ち初期値として予め定められたタイマ初期値をセットして(ステップS681)、払出側送信処理を終了する。
また、ステップS674にて送信完了の待機中である旨の判定がなされたときには(ステップS674;Yes)、払出制御フラグ設定部141に設けられた送信完了フラグがオンとなっているか否かを、例えばCPU214が判定する(ステップS682)。ステップS682にて送信完了フラグがオンであるときには(ステップS682;Yes)、送信完了フラグをクリアしてオフ状態にするとともに(ステップS683)、送信動作制御タイマを初期化した後(ステップS684)、前述したステップS675の処理に進む。
ステップS682にて送信完了フラグがオフであるときには(ステップS682;No)、送信動作制御タイマの値を、例えば1減算するなどして更新する(ステップS685)。そして、例えばステップS685での更新により払出用通信制御タイマがタイムアウトしたか否かを判定することなどにより、送信完了待ち時間が経過したか否かを判定する(ステップS686)。このとき、送信完了待ち時間が経過していれば(ステップS686;Yes)、主基板11に対する払出通知コマンドの送信が送信完了待ち時間内に完了できなかったと判断して、主基板通信エラーフラグをオン状態にセットする(ステップS687)。他方、ステップS686にて送信完了待ち時間が経過していなければ(ステップS686;No)、ステップS687の処理をスキップして払出側送信処理を終了する。
図73は、図57に示すステップS558にて実行される払出側エラー解除処理の一例を示すフローチャートである。この払出側エラー解除処理を開始すると、払出制御用マイクロコンピュータ150では、まず、例えばCPU214が図57に示すステップS551における入出力処理の実行結果に基づき、エラー解除スイッチ73からの検出信号がオン状態となっているか否かを判定する(ステップS691)。このとき、エラー解除スイッチ73からの検出信号がオフ状態であれば(ステップS691;No)、そのまま払出側エラー解除処理を終了する。
他方、ステップS691にてエラー解除スイッチ73からの検出信号がオン状態となっているときには(ステップS691;Yes)、主基板通信エラーフラグがオンとなっているか否かを判定する(ステップS692)。そして、主基板通信エラーフラグがオンであるときには(ステップS692;Yes)、主基板通信エラーフラグをクリアしてオフ状態とする(ステップS693)。続いて、払出制御フラグ設定部141に設けられたシリアル通信エラーフラグがオンとなっているか否かを判定する(ステップS694)。このとき、シリアル通信エラーフラグがオンであれば(ステップS694;Yes)、所定のシリアル通信初期設定処理を実行することにより(ステップS695)、シリアル通信回路218の初期設定を行う。ここで、ステップS695にて実行されるシリアル通信初期設定処理は、例えば図30に示すステップS26や図53に示すステップS485にて実行されるシリアル通信初期設定処理を、払出制御用マイクロコンピュータ150に適合させた処理であればよい。ステップS695の処理を実行したときには、払出制御フラグ設定部141に設けられたシリアル通信エラーフラグをクリアしてオフ状態とする(ステップS696)。
また、ステップS692にて主基板通信エラーフラグがオフであるときや(ステップS692;No)、ステップS694にてシリアル通信エラーフラグがオフであるとき(ステップS694;No)、あるいはステップS696の処理を実行した後には、その他にエラー解除スイッチ73の操作により解除可能なエラーが発生しているか否かを判定する(ステップS697)。具体的な一例として、ステップS697の処理では、払出制御フラグ設定部141に設けられた球噛みエラーフラグや球詰まりエラーフラグ、空切りエラーフラグなどといった、所定のエラーフラグがオンとなっているか否かを判定し、いずれかのエラーフラグがオンとなっているときには、エラー解除スイッチ73の操作により解除可能なエラーが発生していると判定する。
ステップS697にて解除可能なエラーが発生している旨の判定がなされたときには(ステップS697;Yes)、例えば対応するエラーフラグをクリアしたり、払出モータ51の駆動制御を行ったりするなど、発生したエラーを解除するための設定を行う(ステップS698)。他方、ステップS697にて解除可能なエラーが発生していない旨の判定がなされたときには(ステップS697;No)、ステップS698の処理をスキップして、払出側エラー解除処理を終了する。
次に、演出制御基板12における動作を説明する。演出制御基板12では、電源基板10からの電力供給が開始され演出制御用マイクロコンピュータ120へのリセット信号がハイレベル(オフ状態)になったことに応じて、演出制御用マイクロコンピュータ120が起動し、図74のフローチャートに示すような演出制御メイン処理が実行される。図74に示す演出制御メイン処理を開始すると、演出制御用マイクロコンピュータ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)。
図75は、図74に示すステップS905にて実行される演出制御プロセス処理の一例を示すフローチャートである。この演出制御プロセス処理において、演出制御用マイクロコンピュータ120では、例えばCPU123がRAM122の所定領域(演出制御フラグ設定領域など)に設けられた演出制御プロセスフラグの値に応じて、以下のようなステップS920〜S925の各処理を実行する。
ステップS920の可変表示開始コマンド受信待ち処理は、演出制御プロセスフラグの値が“0”のときに実行される。この可変表示開始コマンド受信待ち処理において、演出制御用マイクロコンピュータ120では、例えばCPU123が主基板11から送信された可変表示開始コマンドを受信したか否かを判定する。そして、可変表示開始コマンドを受信していないときには、そのまま可変表示開始コマンド受信待ち処理を終了する。他方、可変表示開始コマンドを受信したときには、演出制御プロセスフラグの値を“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”に更新する。
図76及び図77は、図74に示すステップS907にて実行される報知処理の一例を示すフローチャートである。この報知処理を開始すると、演出制御用マイクロコンピュータ120では、まず、例えばCPU123が主基板11からの復旧報知コマンドを受信したか否かを判定する(図76のステップS941)。そして、復旧報知コマンドを受信したときには(ステップS941;Yes)、図78(A)に例示するような復旧画面となる画像を画像表示装置5に表示させるための設定を行う(ステップS942)。他方、ステップS941にて復旧報知コマンドを受信していないときには(ステップS941;No)、主基板11からの初期化通知コマンドを受信したか否かを判定する(ステップS943)。このとき、初期化通知コマンドを受信していれば(ステップS943;Yes)、図78(B)に例示するような初期化画面となる画像(例えば初期設定飾り図柄として予め定められた組み合わせの飾り図柄の停止表示画像)を画像表示装置5に表示させるための設定を行う(ステップS944)。
演出制御用マイクロコンピュータ120では、例えばCPU123が復旧画面や初期化画面を表示させる設定を行った後、予め定められた表示期間が経過したときに、それらの表示を消去するように制御を行ってもよい。あるいは、復旧画面や初期化画面の表示を開始した後、主基板11からの可変表示開始コマンドを受信するまでは、それらの表示を継続して行うようにしてもよい。予め定められた表示期間が経過したときに表示を消去する場合には、その後、デモンストレーション画面となる所定の画像を画像表示装置5に表示させるようにしてもよい。なお、予め定められた表示期間が経過したときに表示を消去する場合であっても、その表示期間が経過するより以前に主基板11からの可変表示開始コマンドを受信したときには、その可変表示開始コマンドを受信したことに基づく飾り図柄の可変表示を開始できるようにすればよい。
ステップS943にて初期化通知コマンドを受信していないときや(ステップS943;No)、ステップS942、S944の処理のいずれかを実行した後には、シリアル通信エラーの報知を行っているか否かを、例えばCPU123が所定の報知中フラグをチェックすることなどにより、判定する(ステップS945)。このとき、シリアル通信エラーの報知を行っていれば(ステップS945;Yes)、主基板11からのシリアル通信異常報知終了コマンドを受信したか否かを判定する(ステップS946)。そして、シリアル通信異常報知終了コマンドを受信していなければ(ステップS946;No)、報知処理を終了する。他方、ステップS946にてシリアル通信異常報知終了コマンドを受信したときには(ステップS946;Yes)、例えば画像表示装置5における表示動作を初期化する設定などといった、シリアル通信の異常発生を報知する動作を終了させるための設定を行う(ステップS947)。
ステップS945にてシリアル通信エラーの報知を行っていない旨の判定がなされたときや(ステップS945;No)、ステップS947の処理を実行した後には、主基板11からのシリアル通信異常報知開始コマンドを受信したか否かを判定する(ステップS948)。そして、シリアル通信異常報知開始コマンドを受信したときには(ステップS948;Yes)、図78(C)に例示するようなシリアル通信異常報知画面となる画像を画像表示装置5に表示させるための設定を行う(ステップS949)。
ステップS948にてシリアル通信異常報知開始コマンドを受信していないときには(ステップS948;No)、主基板11の側(メイン側)における払出制御に関する異常発生の報知(メイン側払出異常報知)を行っているか否かを、例えばCPU123が所定の報知中フラグをチェックすることなどにより、判定する(ステップS950)。このとき、メイン側払出異常報知を行っていれば(ステップS950;Yes)、主基板11からのメイン側払出異常報知終了コマンドを受信したか否かを判定する(ステップS951)。このとき、メイン側払出異常報知終了コマンドを受信していなければ(ステップS951;No)、報知処理を終了する。他方、ステップS951にてメイン側払出異常報知終了コマンドを受信したときには(ステップS951;Yes)、例えば画像表示装置5における表示動作を初期化する設定などといった、メイン側払出異常報知を終了させるための設定を行う(ステップS952)。
ステップS950にてメイン側払出異常報知を行っていない旨の判定がなされたときや(ステップS950;No)、ステップS952の処理を実行した後には、主基板11からのメイン側払出異常報知開始コマンドを受信したか否かを判定する(ステップS953)。そして、メイン側払出異常報知開始コマンドを受信したときには(ステップS953;Yes)、図78(D)に例示するようなメイン側払出異常報知画面となる画像を画像表示装置5に表示させるための設定を行う(ステップS954)。
ステップS953にてメイン側払出異常報知開始コマンドを受信していないときには(ステップS953;No)、払出制御基板15の側(払出側)における各種制御に関する異常発生の報知(払出側異常報知)を行っているか否かを、例えばCPU123が所定の報知中フラグをチェックすることなどにより、判定する(図77のステップS955)。このとき、払出側異常報知を行っていれば(ステップS955;Yes)、主基板11からの払出側異常報知終了コマンドを受信したか否かを判定する(ステップS956)。このとき、払出側異常報知終了コマンドを受信していなければ(ステップS956;No)、報知処理を終了する。他方、ステップS956にて払出側異常報知終了コマンドを受信したときには(ステップS956;Yes)、例えば画像表示装置5における表示動作を初期化する設定などといった、払出側異常報知を終了させるための設定を行う(ステップS957)。
ステップS955にて払出側異常報知を行っていない旨の判定がなされたときや(ステップS955;No)、ステップS957の処理を実行した後には、主基板11からの払出側異常報知開始コマンドを受信したかを判定する(ステップS958)。そして、払出側異常報知開始コマンドを受信したときには(ステップS958;Yes)、図78(E)に例示するような払出側異常報知画面となる画像を画像表示装置5に表示させるための設定を行う(ステップS959)。
ステップS958にて払出側異常報知開始コマンドを受信していないときには(ステップS958;No)、賞球過多または賞球不足の報知を行っているか否かを判定する(ステップS960)。そして、賞球過多または賞球不足の報知を行っている旨の判定がなされたときには(ステップS960;Yes)、例えばRAM122の所定領域などに設けられて報知を終了するまでの経過時間を計測するための報知タイマにおけるタイマ値を、例えば1減算するなどして更新する(ステップS961)。そして、ステップS961にて更新された報知タイマの値に基づき、賞球過多または賞球不足の報知を終了するタイミングに達したか否かを判定する(ステップS962)。このとき、報知を終了するタイミングに達していなければ(ステップS962;No)、報知処理を終了する。他方、ステップS962にて報知を終了するタイミングに達していれば(ステップS962;Yes)、例えば画像表示装置5における表示動作を初期化する設定などといった、賞球過多または賞球不足の報知を終了するための設定を行う(ステップS963)。
ステップS960にて賞球過多または賞球不足の報知を行っていない旨の判定がなされたときや(ステップS960;No)、ステップS963の処理を実行した後には、主基板11からの賞球過多コマンドを受信したか否かを判定する(ステップS964)。そして、賞球過多コマンドを受信したときには(ステップS964;Yes)、図78(F)に例示するような賞球過多報知画面となる画像を画像表示装置5に表示させることにより賞球過多の報知を開始するための設定を行う(ステップS965)。このときには、報知タイマに、賞球過多の報知に対応した報知時間を示すタイマ初期値を設定する(ステップS966)。
また、ステップS964にて賞球過多コマンドを受信していないときには(ステップS964;No)、主基板11からの賞球不足コマンドを受信したか否かを判定する(ステップS967)。そして、賞球不足コマンドを受信したときには(ステップS967;Yes)、図78(G)に例示するような賞球不足報知画面となる画像を画像表示装置5に表示させることにより賞球不足の報知を開始するための設定を行う(ステップS968)。このときには、報知タイマに、賞球不足の報知に対応した報知時間を示すタイマ初期値を設定する(ステップS969)。ステップS967にて賞球不足コマンドを受信していないときには(ステップS967;No)、ステップS968、S969の処理を実行せずに、報知処理を終了する。
次に、遊技制御用マイクロコンピュータ100が備える乱数回路103の具体的な動作例について説明する。図79は、乱数回路103の動作を説明するためのタイミングチャートである。乱数回路103に設けられたクロック信号出力回路171のクロック入力端子やタイマ回路179のクロック入力端子には、図79(A)に示すような内部システムクロックCLKが入力される。内部システムクロックCLKは、遊技制御用マイクロコンピュータ100が備えるクロック回路101にて生成されたものであればよい。図79(A)に示すように、内部システムクロックCLKは、タイミングT11、T21、…においてローレベルからハイレベルに立上がるクロック信号である。
クロック信号出力回路171は、内部システムクロックCLKを分周して、例えばタイミングT11、T12、…においてローレベルからハイレベルに立上がり、タイミングT21、T22、…においてハイレベルからローレベルに立下がる、図79(B)に示すクロック信号S1を生成する。なお、図79に示す動作例では、説明のために、クロック信号出力回路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、…においてローレベルからハイレベルに立上がる、図79(C)に示すような反転クロック信号S2を生成する。反転回路178によって生成された反転クロック信号S2は、反転回路178から出力されてラッチ信号生成回路180に入力される。
図79(D)に示す始動入賞信号SSがタイマ回路179に入力されたときには、その立上がりエッジからの経過時間が所定時間(例えば3ミリ秒)に達すると、タイマ回路179からの出力信号がローレベルからハイレベルに立上がる。このタイマ回路179からの出力信号は、ラッチ信号生成回路180に入力され、反転クロック信号S2の立上がりエッジと同期して、図79(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の取得を確実かつ安定的に行うことが可能になる。
以上説明したように、上記実施の形態によれば、主基板11から払出制御基板15に対して送信された払出制御コマンドが払出数指定コマンドである場合、図58の払出側受信処理では、この払出数指定コマンドによって指定された賞球の払出数が賞球未払出カウンタの値に加算される一方で(ステップS612)、加算前未払出カウンタの値には加算されない。このため、加算前未払出カウンタには、払出数指定コマンドを受信する前の賞球の未払出数を示すデータが、賞球未払出カウンタには、払出数指定コマンドを受信した後の賞球の未払出数を示すデータが記憶されていることとなる。
また、図61の払出数記憶異常判定処理では、タイマ割込みが発生する毎に、賞球未払出カウンタの値と加算前未払出カウンタの値との比較が行われ(ステップS701)、賞球未払出カウンタの値が加算前未払出カウンタの値よりも大きくなったときには(ステップS701;Yes)、払出数指定コマンドを受信したことにより賞球の未払出数が増加したものとして、賞球未払出カウンタの値から加算前未払出カウンタの値を減算することにより、増加した未払出数(増加分)の特定が行われる(ステップS702)。そして、増加分の特定が行われた後、加算前未払出カウンタには、賞球未払出カウンタの値が上書きされる(ステップS706)。さらに、賞球払出動作フラグの値が賞球払出駆動処理に対応した値である“1”であるときには、賞球となる遊技球の払出制御が行われているとして、ステップS702にて特定された増加分が増加分格納領域に記憶されるとともに(ステップS708)、払出動作中賞球増加フラグがオン状態にセットされる(ステップS709)。
このとき、図65の賞球払出駆動処理では、払出動作中賞球増加フラグがオンとなっていることから(ステップS815;Yes)、賞球となる遊技球の払出動作中に賞球の未払出数が増加したものと判断され、増加分格納領域の記憶データが読み出されて増加した未払出数(増加分)が特定されるとともに(ステップS816及びS817)、この特定された増加分が払出モータ回転カウンタにおけるカウント値に加算されることにより、払出モータ51の駆動量(回転量)が増加される(ステップS817)。
これにより、払出制御用マイクロコンピュータ150は、主基板11から送信された払出数指定コマンドを受信したときには、賞球となる遊技球の払出動作中であっても、その払出動作を停止することなく、払出モータ回転カウンタの値を更新することができるようになるため、迅速な賞球の払出を実現することができる。また、払出制御用マイクロコンピュータ150は、払出数指定コマンドを受信する前の賞球の未払出数を示すデータを記憶する加算前未払出カウンタの値と、払出数指定コマンドを受信した後の賞球の未払出数を示すデータを記憶する賞球未払出カウンタの値と、を用いることで、払出数指定コマンドを受信したことにより増加した賞球の未払出数を正確に特定することができる。そして、増加した未払出数を特定した後、賞球未払出数カウンタにおけるカウント値を、加算前未払出数カウンタに上書きすることで、払出制御用データ保持エリア140の記憶領域を最小限にすることができる。
また、賞球払出駆動処理では、賞球未払出カウンタの値に関わらず、払出モータ回転カウンタの値が「0」となったときに(ステップS821;Yes)、払出モータ51の駆動を停止するための設定が行われる(ステップS823)。続いて、払出動作制御タイマには、払出完了待ち初期値として予め定められたタイマ初期値がセットされるとともに(ステップS824)、賞球払出動作プロセスフラグの値が賞球払出完了待ち処理に対応する値である“2”に更新される(ステップS825)。そして、図66の賞球払出完了待ち処理では、払出完了待ち時間が経過すると(ステップS833;Yes)、賞球未払出カウンタの値が「0」となっているか否かの判定が行われる(ステップS834)。
このとき、賞球未払出カウンタの値が「0」であれば(ステップS834;Yes)、賞球となる遊技球が過不足なく払い出されたものと判断され、加算前未払出カウンタがクリアされた後(ステップS841)、賞球払出動作プロセスフラグの値が“0”に更新されることにより(ステップS842)、一連の払出動作が終了する。これに対して、賞球未払出カウンタの値が「0」以外の数値であれば(ステップS834;No)、未払出の賞球があるものと判断され、賞球未払出カウンタにおけるカウント値で示される未払出数が、払出モータ回転カウンタにセットされた後(ステップS837)、賞球払出動作プロセスフラグの値が、賞球払出駆動処理に対応する値である“1”に更新されることにより(ステップS838)、払出モータ51が再駆動される。この後、賞球未払出カウンタの値が「0」となったときには(ステップS834;Yes)、賞球となる遊技球が過不足なく払い出されたものと判断され、一連の払出動作が終了する。
このように、払出制御用マイクロコンピュータ150は、賞球未払出カウンタの値、即ち実際に払い出されて払出カウントスイッチ72によって検出された賞球の払出数ではなく、払出モータ回転カウンタの値、即ち払出モータ51の駆動量(回転量)に基づいて、払出モータ51の駆動を停止するため、賞球となる遊技球が過剰に払い出されることを防止することができる。他方、未払出の賞球がある場合には、一旦停止させた払出モータ51を再駆動して、未払出の賞球を払い出させることで、不足が生じることも防止することができる。これにより、払出制御用マイクロコンピュータ150は、賞球の払出数を正確に管理して、賞球となる遊技球を過不足なく払い出させることができる。
また、電力供給が開始されたときに、遊技制御用マイクロコンピュータ100が図29に示すステップS7にてクリア信号がオン状態となっているか否かを判定した後に、ステップS9での設定に基づき、ステップS10、S11にて所定の遅延時間が経過するまで待機してから、遊技の進行を制御するための遊技制御処理の実行を可能にする。そして、ここでの遅延時間は、遊技制御処理が実行可能な状態となったときから、少なくとも払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されるまでは遅延させるように設定されている。これにより、電源基板10に搭載されたクリアスイッチ304に対する操作に応じて遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150とが確実に初期化時における設定を行うための初期化処理を実行することができ、制御状態の整合がとれなくなることを防止できる。また、払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されてから遊技制御用マイクロコンピュータ100による遊技制御処理の実行が開始されるので、払出制御用マイクロコンピュータ150は遊技制御用マイクロコンピュータ100からの払出制御コマンドを確実に受信することができる。
加えて、演出制御基板12に搭載された演出制御用マイクロコンピュータ120は、払出制御用マイクロコンピュータ150と同様に、パチンコ遊技機1への電力供給が開始されたときに遅延処理を実行しない。そのため、遊技制御処理は演出制御用マイクロコンピュータ120による制御が開始された後に開始されたことになる。したがって、主基板11から演出制御基板12に対して演出制御コマンド(例えば初期化通知コマンドや復旧報知コマンド)を送信する際に、演出制御用マイクロコンピュータ120は確実にコマンドを受信して、受信したコマンドに基づく報知処理(例えば図78(A)に示す復旧画面や図78(B)に示す初期化画面となる画像を画像表示装置5に表示させる処理)を実行することができる。
さらに、遊技制御用マイクロコンピュータ100では、例えばCPU104がステップS9での設定に基づく遅延処理を実行するより前のステップS7にてクリア信号の状態を確認しているので、払出制御用マイクロコンピュータ150との制御状態の整合がとれなくなる可能性を低減することができる。
また、オーバーランエラーやノイズエラー、フレーミングエラー、パリティエラーなどといった、シリアル通信回路108でのエラー発生を示すシリアルステータスレジスタ204(第1レジスタSIST1の第3〜第0ビット[ビット3−0])の状態、及びシリアル通信回路108でのエラー発生に対応する割込み発生の設定を示すエラー発生シリアル制御レジスタ205(第3レジスタSICL3の第3〜第0ビット[ビット3−1])の設定に基づくエラー割込み要求がCPU104に通知されたときには、例えばCPU104が図37に示すステップS41、S42の処理を実行してシリアル通信回路108が備える送信動作部202と受信動作部201を未使用状態に設定することなどにより、シリアル通信回路108でのシリアル通信動作を直ちに停止させることができる。これにより、シリアル通信での異常発生により誤った情報が伝送されることを防止できる。
遊技制御用マイクロコンピュータ100では、例えばCPU104が図45に示すステップS308、S310、S311のいずれかでの設定により第1〜第3払出数指定コマンドのいずれかを払出制御基板15に対して送信させた後、図46に示すステップS335にて賞球ACK待ち時間が経過したと判定したときには、ステップS336にて再送信フラグをオン状態にセットすることなどにより、払出数指定コマンドを再送信させる。これにより、払出制御基板15に搭載された払出制御用マイクロコンピュータ150によって払出数指定コマンドが受信されていないと判断される場合に、払出数指定コマンドを再送信することによって払出制御に支障を来さないようにして、遊技者の不利益を防止することができる。また、図48に示すステップS275にて再送信フラグがオンであると判定したときに、ステップS277にて払出異常報知フラグがオフであると判定すれば、ステップS278での設定によりメイン側払出異常報知開始コマンドを演出制御基板12に対して送信させる。そして、演出制御用マイクロコンピュータ120は、図76に示すステップS953にて主基板11からのメイン側払出異常報知開始コマンドを受信したと判定したときに、ステップS954での設定により図78(D)に例示するようなメイン側払出異常報知画面となる画像を画像表示装置5に表示させることで、払出異常が生じたことを報知させる。これにより、払出制御に関する通信の異常をパチンコ遊技機1の外部で容易に認識できるようになる。
払出制御用マイクロコンピュータ150では、例えばCPU214が図59に示すステップS634での設定により賞球ACKコマンドを主基板11に対して送信させた後、ステップS643にてフィードバック待機時間が経過したと判定したときには、ステップS644にて主基板通信エラーフラグをオン状態にセットする。こうして主基板通信エラーフラグがオンとなったときには、図62に示すステップS721の処理が実行されることにより、ステップS722以降の処理が実行されずに払出制御通常処理が終了し、また、図64に示すステップS801の処理が実行されることにより、ステップS802以降の処理が実行されずに賞球払出回数算出処理が終了する。そのため、主基板11からのACKフィードバックコマンドを受信していない旨の判定がなされたときには、賞球未払出カウンタの値が「0」以外の値となって未払出の賞球となる遊技球があることを示していても払出制御を停止する状態に制御されることになる。これにより、確実な払出制御を実行して、例えば通信エラーや通信線に対する不正行為などによる異常が発生したときに、賞球となる遊技球を過剰に払い出してしまうことを防止できる。
また、払出制御用マイクロコンピュータ150では、例えばCPU124が図59に示すステップS644にて主基板通信エラーフラグをオン状態にセットしたときには、図58に示すステップS601の処理が実行されることにより、ステップS602以降の処理が実行されずに払出側受信処理が終了する。そのため、主基板11からのACKフィードバックコマンドを受信していない旨の判定がなされたときには、主基板11から送信される払出数指定コマンドの受信を停止する状態に制御されることになる。これにより、確実な払出制御を実行して、例えば通信エラーや通信線に対する不正行為などによる異常が発生したときに、賞球となる遊技球を過剰に払い出してしまうことを防止できる。
払出制御用マイクロコンピュータ150では、例えばCPU214が図73に示すような払出側エラー解除処理を実行することで、エラー解除スイッチ73が操作されてエラー解除信号が出力されたときに、各種のエラーフラグをクリアしてオフ状態とすることなどにより、払出制御が禁止された状態を解除することができる。これにより、例えば遊技店員等が異常に対する点検を行った後に、点検前の制御状態を維持したまま遊技を続行させることができる。
パチンコ遊技機1への電力供給が開始されたときに、遊技制御用マイクロコンピュータ100では、例えばCPU104が図30に示すステップS27にて図35に示すような割込み初期設定処理を実行することで、ROM105に記憶されている最優先割込み設定(KHPR)を読出し、その読出値に基づいて最優先割込みを設定することで、割込み処理の優先順位を図19(B)に示すデフォルト時の設定から変更することができる。その後、例えばCPU104が図30に示すステップS28の処理を実行することなどによって、遊技制御用マイクロコンピュータ100が割込許可状態に設定される。また、払出制御用マイクロコンピュータ150では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU214が図54に示すステップS519にて図35に示す処理と同様の処理を実行することで、ROM215に記憶されている最優先割込み設定(KHPR)を読出し、その読出値に基づいて最優先割込みを設定することで、割込み処理の優先順位を図19(B)に示すデフォルト時の設定から変更することができる。その後、例えばCPU214が図54に示すステップS520の処理を実行することなどによって、払出制御用マイクロコンピュータ150が割込許可状態に設定される。これにより、割込み処理の実行が許可された後に、変更された優先順位に従って確実に割込み処理を実行することができる。また、割込み処理の実行が許可される以前に割込み処理の優先順位を初期設定から変更することで、各種の割込みが発生するごとに割込み処理を所定の優先順位に従って実行させるように制御するプログラムを実行する必要がなくなるので、設計の自由度を増大させることができる。
図35に示すステップS142の処理を実行することによる最優先割込みの設定では、例えば図19(A)に示すような最優先割込み設定データに対応して、タイマ割込み要求に基づく割込み処理と、シリアル通信回路108から通知される割込み要求に基づく割込み処理との優先順位を設定することができる。これにより、割込み処理の実行が許可された後、設定された優先順位に従って確実に割込み処理を実行することができる。また、割込み処理の実行が許可される以前に割込み処理の優先順位を任意に設定可能とすることで、各種の割込みが発生するごとに割込み処理を所定の優先順位に従って実行させるように制御するプログラムを実行する必要がなく、また、予め定めた任意の割込み処理を優先的に実行させることができるので、設計の自由度を増大させることができる。
遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図29に示すステップS7にてクリア信号がオン状態となっているか否かを判定するより前に実行するステップS5の処理にて、電源基板10に搭載された電源監視回路303から出力される電源断信号がオフ状態となったか否かの判定を行う。そして、電源断信号がオフ状態となってから、ステップS7にてクリア信号がオン状態となっているか否かの判定を行うようにしている。また、払出制御用マイクロコンピュータ150も、パチンコ遊技機1への電力供給が開始されたときには、例えばCPU214が図54に示すステップS508にてクリア信号がオン状態となっているか否かを判定するより前に実行するステップS505の処理にて、電源基板10からの電源断信号がオフ状態となったか否かを判定し、オフ状態となってからステップS508の処理に進むようにしている。このように、電源基板10から供給される電源電圧の安定が確認されてからクリア信号の状態をチェックすることで、クリア信号の出力状態(オン状態であるかオフ状態であるか)を確実に特定することができ、例えばクリア信号がオフ状態となっているにもかかわらずオン状態であると検出したり、クリア信号がオン状態となっているにもかかわらずオフ状態であると検出したりするといった、誤検出を防止することができる。
図4に示したように、電源監視回路303は電源基板10に搭載されている。そして、電源監視回路303から出力された電源断信号は、払出制御基板15に入力された後、払出制御基板15から主基板11へと伝送される。これにより、電源基板10から払出制御基板15及び主基板11の双方に電源断信号を伝送するための配線を接続する場合に比べて配線構成を簡略化でき、パチンコ遊技機1のコストを低減させることができる。また、電源監視回路303から出力されたリセット信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して演出制御基板12を経由することなく直接ランプ制御基板14へと伝送される。このため、演出制御基板12に異常が生じているときであっても、ランプ制御基板14を確実にリセットすることができる。また、図6に示したように、電源基板10と払出制御基板15は遊技機用枠3に設置される一方で、主基板11は遊技盤2に設置される。これにより、電源基板10からの電源断信号を伝送するための配線構成を簡略化でき、配線長が短くなってノイズの影響を受けにくくすることができる。
パチンコ遊技機1への電力供給が開始されたときに、遊技制御用マイクロコンピュータ100では、例えばCPU104が図30に示すステップS24でROM105に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し、その読出値に基づいてステップS25の処理を実行して乱数回路103に乱数を発生させるための設定を行う。その後、CPU104がステップS28の処理を実行することなどによって、遊技制御用マイクロコンピュータ100が割込許可状態に設定される。そして、ステップS25にて実行される処理としては、図32に示すような12ビット乱数初期設定処理や図33に示す16ビット乱数初期設定処理がある。図32に示す12ビット乱数初期設定処理では、CPU104がステップS101でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第7ビット[ビット7]を読出し、その読出値が“1”であるときに、ステップS104の処理を実行することにより乱数回路103において12ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づいて決定する。また、図33に示す16ビット乱数初期設定処理では、CPU104がステップS123でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第4ビット[ビット4]を読出し、その読出値が“1”であるときに、ステップS126の処理を実行することにより乱数回路103において16ビット乱数を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号であるIDナンバーに基づいて決定する。これにより、電力供給が開始された後に更新が開始される乱数の初期値を複数のパチンコ遊技機1でそれぞれ異ならせることができ、このようにして生成される乱数値を用いて特別図柄表示装置4による特図ゲームなどにおける可変表示結果を大当りとするか否かの判定を行うことで、乱数のランダム性を高めて不正に大当りが発生させられてしまうことを防止できる。
遊技制御用マイクロコンピュータ100に設けられた乱数回路103は、例えば12ビット乱数と16ビット乱数などのように、数値データの更新範囲が異なる乱数を生成するための回路を複数内蔵するように構成されている。そして、遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図30に示すステップS24でROM105に記憶されている第1乱数初期設定データ(KRSS1)の第4及び第3ビット[ビット4−3]を読出し、その読出値に基づくステップS25での処理として、図32に示す12ビット乱数初期設定処理や図33に示す16ビット乱数初期設定処理を実行可能にする。そして、図32に示す12ビット乱数初期設定処理が実行されることにより乱数回路103での12ビット乱数の生成が可能になり、図33に示す16ビット乱数初期設定処理が実行されることにより乱数回路103での16ビット乱数の生成が可能になる。他方、ステップS25での処理として12ビット乱数初期設定処理が実行されないときには、乱数回路103における12ビット乱数についての生成動作を停止させる処理を実行し、ステップS25での処理として16ビット乱数初期設定処理が実行されないときには、乱数回路103における16ビット乱数についての生成動作を停止させる処理を実行することで、使用すると設定された乱数とは異なる更新範囲の乱数を生成する回路の機能を停止させることができる。これにより、例えば特別図柄表示装置4による特図ゲームでの可変表示結果を大当りとするか否かの判定などのように、各種の判定に応じて用いる乱数に対応した回路の設定を行い、判定に要する処理負担を軽減することができる。
遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図32に示すステップS107でROM105に記憶されている12ビット乱数最大値(KRMS)を読出し、その読出値が12ビット乱数用の最大値として設定可能な範囲内であるか否かをステップS108にて判定する。そして、ステップS108にて設定可能な範囲内ではない旨の判定がなされたときに、ステップS110にて12ビット乱数用の最大値として設定可能な範囲内の所定値を再設定する。また、例えばCPU104が図33に示すステップS129でROM105に記憶されている16ビット乱数最大値(KRXS)を読出し、その読出値が16ビット乱数用の最大値として設定可能な範囲内であるか否かをステップS130にて判定する。そして、ステップS130にて設定可能な範囲内ではない旨の判定がなされたときに、ステップS132にて16ビット乱数用の最大値として設定可能な範囲内の所定値を再設定する。これにより、乱数値の使用範囲を詳細に設定可能とし、判定に要する処理負担を軽減することができるとともに、誤動作や不正により極端に狭い範囲で乱数が更新されることを防止できる。
乱数回路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が図33に示すステップS121にてROM105に記憶されている第1乱数初期設定データ(KRSS1)の第2ビット[ビット2]を読出し、その読出値に基づいて乱数回路103に設けられたクロック信号出力回路171における動作設定を、ステップS122にて行う。これにより、乱数値の更新方式を異ならせて乱数のランダム性を高めることができる。
図32に示すステップS104の処理や、図33に示すステップS126の処理では、例えば遊技制御用マイクロコンピュータ100ごとに付与された固有のIDナンバーに所定のスクランブル処理を施す演算や、そのIDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を12ビット乱数や16ビット乱数を生成するためのスタート値に設定することができる。これにより、電力供給が開始された後に更新が開始される乱数の初期値を複数のパチンコ遊技機1でそれぞれ異ならせることができ、このようにして生成される乱数値を用いて特別図柄表示装置4による特図ゲームなどにおける可変表示結果を大当りとするか否かの判定を行うことで、乱数のランダム性を高めて不正に大当りが発生させられてしまうことを防止できる。また、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別番号からスタート値を特定することが困難になるので、不正に大当りが発生させられてしまうことを、より確実に防止することができる。
遊技制御用マイクロコンピュータ100では、パチンコ遊技機1への電力供給が開始されたときに、例えばCPU104が図32に示すステップS105でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第6及び第5ビット[ビット6−5]を読出し、その読出値に基づいて12ビット乱数用のセレクタとして乱数回路103に設けられたセレクタ174Aにおける選択動作の設定を、ステップS106にて行う。これにより、乱数列変更回路176Aが12ビット乱数用の数値データR1を更新する際の更新順である順列を、2周目以降において自動的に変更する第1の方式や、2周目以降においてユーザプログラムにより変更可能とする第2の方式により、変更させることができる。あるいは、2周目以降においては変更させない第3の方式とすることもできる。また、例えばCPU104が図33に示すステップS127でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第1及び第0ビット[ビット1−0]を読出し、その読出値に基づいて16ビット乱数用のセレクタとして乱数回路103に設けられたセレクタ174Bにおける選択動作の設定を、ステップS128にて行う。これにより、乱数列変更回路176Bが16ビット乱数用の数値データR2を更新する際の更新順である順列を、2周目以降において自動的に変更する第1の方式や、2周目以降においてユーザプログラムにより変更可能とする第2の方式により、変更させることができる。あるいは、2周目以降においては変更させない第3の方式とすることもできる。そして、2周目以降においてユーザプログラムにより変更可能とする第2の方式に設定したときには、例えばCPU104が図43に示すステップS234にてARSC175Aの第0ビット[ビット0]に“1”を設定したり、図43に示すステップS239にてBRSC175Bの第0ビット[ビット0]に“1”を設定したりすることで、数値順列変更データを設定する。乱数回路103では、例えばセレクタ174Aによって第2の方式が選択されているときには、ARSC175Aに設定された数値順列変更データが乱数列変更回路176Aによって読み出され、乱数生成回路173Aから出力された数値データ列C1の値が所定の最終値に達したことに応じて、数値データC1の順列を定める更新規則を変更する。また、例えばセレクタ174Bによって第2の方式が選択されているときには、BRSC175Bに設定された数値順列変更データが乱数列変更回路176Bによって読み出され、乱数生成回路173Bから出力された数値データ列C2の値が所定の最終値に達したことに応じて、数値データC2の順列を定める更新規則を変更する。これにより、所定の初期値から所定の最終値まで数値データC1や数値データC2が更新されたときに、順列を様々に変更して乱数のランダム性を高めることができる。
遊技制御用マイクロコンピュータ100では、例えばCPU104が図41に示すステップS202でROM105に記憶されている第1乱数初期設定データ(KRSS1)の第1及び第0ビット[ビット1−0]を読出し、その読出値に基づいてステップS204、S208、S211の処理のいずれかを実行したときに、乱数回路103にて12ビット乱数を生成するために用いられる数値データC1におけるスタート値を変更する設定を行う。また、例えばCPU104が図42に示すステップS214でROM105に記憶されている第2乱数初期設定データ(KRSS2)の第3及び第2ビット[ビット3−2]を読出し、その読出値に基づいてステップS216、S220、S223の処理のいずれかを実行したときに、乱数回路103にて16ビット乱数を生成するために用いられる数値データC2におけるスタート値を変更する設定を行う。乱数回路103では、12ビット乱数用に設けられた乱数生成回路173Aが所定の最終値まで数値データを更新したときには乱数一巡信号RIJ1を出力する一方、16ビット乱数用に設けられた乱数生成回路173Bが所定の最終値まで数値データを更新したときには乱数一巡信号RIJ2を出力する。そして、乱数生成回路173Aが乱数一巡信号RIJ1を出力したときには、例えば初期値設定回路172AがCPU104によって設定されたスタート値を乱数生成回路173Aに設定する一方、乱数生成回路173Bが乱数一巡信号RIJ2を出力したときには、例えば初期値設定回路172BがCPU104によって設定されたスタート値を乱数生成回路173Bに設定することで、12ビット乱数や16ビット乱数を生成するためのスタート値を変更することができる。これにより、所定の初期値から所定の最終値まで数値データC1や数値データC2が更新されたときに、次の周期における初期値となるスタート値を変更して、乱数のランダム性を高めることができる。
始動口スイッチ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から今回読出した乱数値が前回読出した乱数値と同じ値になることを防止することができる。
乱数回路103では、例えば乱数生成回路173Bがクロック信号出力回路171から入力されるクロック信号S1の入力に基づいて、数値データC2を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序(例えば「1→2→…→65535」の順序)に従って循環的に更新する。これに対して、ラッチ信号生成回路180は、始動入賞信号SSの入力に応じたタイマ回路179からの出力信号を、反転回路178により出力された反転クロック信号S2に同期して、ラッチ信号SLとして出力する。これにより、乱数値の取得を確実かつ安定的に行うことができる。
また、遊技制御用マイクロコンピュータ100では、例えばCPU104が図46に示すステップS321にて賞球ACK受信フラグがオンである旨の判定をしたときにステップS325にてコマンド送信回数カウンタの値を1加算する一方で図48に示すステップS261にて全入賞球検出スイッチ29からの検出信号がオン状態である旨の判定をしたときにステップS262にてコマンド送信回数カウンタの値を1減算することで、コマンド送信回数カウンタの値により、第1〜第3払出数指定コマンドのいずれかを送信した回数と、全入賞球検出スイッチ29からの検出信号に応じて検出された遊技球の個数との差を入賞個数差として特定する。そして、図48に示すステップS270の処理を実行して入賞個数差が異常判定値の1つである賞球過多基準値に達したと判定したときには、ステップS271の処理を実行して賞球過多報知コマンドを演出制御基板12に対して送信させる。また、図48に示すステップS272の処理を実行して入賞個数差が異常判定値の1つである賞球不足基準値に達したと判定したときには、ステップS273の処理を実行して賞球不足報知コマンドを演出制御基板12に対して送信させる。演出制御基板12の側では、図77に示すステップS964の処理を実行して賞球過多報知コマンドを受信した旨の判定をしたときにはステップS965の処理を実行して賞球過多が発生した旨の報知を行う。また、図77に示すステップS967の処理を実行して賞球不足報知コマンドを受信した旨の判定をしたときにはステップS968の処理を実行して賞球不足が発生した旨の報知を行う。これにより、賞球として払い出される遊技球の個数を直接カウントすることなく、賞球として払い出される遊技球の個数に異常が生じたことを検出できる。また、入賞口に入賞した遊技球の個数は、賞球として払い出される遊技球の個数に比べて少ないことから、データの記憶量を少なくすることができる。さらに、1つのコマンド送信回数カウンタにおけるカウント値を更新するだけで払出数指定コマンドの送信回数と全入賞球検出スイッチ29によって検出された遊技球の個数との差を入賞個数差として特定することができるから、制御負担の増大を抑制して、賞球として払い出される遊技球の個数に異常が発生したか否かを判定することができる。加えて、1つのコマンド送信回数カウンタにおけるカウント値を記憶するだけでよいことから、複数のカウンタにおけるカウント値を用いる場合に比べて、データの記憶量を少なくすることができる。
遊技制御用マイクロコンピュータ100がシリアル通信回路108を備えるとともに払出制御用マイクロコンピュータ150がシリアル通信回路218を備え、双方向のシリアル通信を行うことができる。そして、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150との間では、例えば図8(A)に示すように2バイト構成の1バイト目を反転させて2バイト目とした払出制御コマンドや払出通知コマンドを生成して送受信する。そして、遊技制御用マイクロコンピュータ100では、例えばCPU104が図50に示すステップS405にて受信コマンドの1バイト目と2バイト目との排他的論理和を演算することにより、払出制御用マイクロコンピュータ150を搭載した払出制御基板15から送信された払出通知コマンドを正しく受信できたか否かの判定を行う。他方、払出制御用マイクロコンピュータ150では、例えばCPU214が図58に示すステップS605にて受信コマンドの1バイト目と2バイト目との排他的論理和を演算することにより、遊技制御用マイクロコンピュータ100を搭載した主基板11から送信された払出制御コマンドを正しく受信できたか否かの判定を行う。これにより、主基板11と払出制御基板15との間で送受信されるコマンドの管理が容易かつ確実になり、コマンド送受信中における誤りの発生を容易かつ確実に検出して誤ったコマンドを受信する可能性を低減することができ、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150との整合をとりやすくなる。
また、例えば遊技制御用マイクロコンピュータ100に設けられたCPU104が図50に示すステップS405にて払出通知コマンドを正しく受信できなかったと判定したときには、ステップS406にて払出用通信エラー検出フラグがオン状態にセットされることから、図48に示すステップS277にて払出異常報知フラグがオフであれば、ステップS278での設定に基づき主基板11から演出制御基板12に対してメイン側払出異常報知開始コマンドが送信されることになる。このメイン側払出異常報知開始コマンドに応答して、演出制御基板12では図76に示すステップS954の処理が実行されることにより、図78(D)に例示するようなメイン側払出異常報知画面となる画像が画像表示装置5に表示される。他方、払出制御用マイクロコンピュータ150に設けられたCPU214が図58に示すステップS605にて払出制御コマンドを正しく受信できなかったと判定したときには、ステップS606にて主基板通信エラーフラグがオン状態にセットされることから、図72に示すステップS673での設定に基づき払出制御基板15から主基板11に対して払出エラー通知コマンドが送信される。そして、主基板11では、払出エラー通知フラグを受信したことに応答して、図50に示すステップS410にて払出エラー通知フラグがオン状態にセットされることから、図49に示すステップS285での設定に基づき主基板11から演出制御基板12に対して払出側異常報知開始コマンドが送信されることになる。この払出側異常報知開始コマンドに応答して、演出制御基板12では図77に示すステップS959の処理が実行されることにより、図78(E)に例示するような払出側異常報知画面となる画像が画像表示装置5に表示される。これにより、払出制御コマンドや払出通知コマンドの送受信が正しく行われなかったときに、その旨をパチンコ遊技機1の外部で容易に認識できるようになる。また、払出制御コマンドや払出通知コマンドでは、例えば図8(A)に示すように、各バイトの先頭ビット(第7ビット[ビット7])をヘッダとして、そのヘッダを異ならせることにより1バイト目と2バイト目の区別を可能にしていることから、1バイト目と2バイト目を間違えることなく送受信することができる。
図4に示したように、クリアスイッチ304は電源基板10に搭載されている。そして、クリアスイッチ304から出力されたクリア信号は、主基板11に入力された後、主基板11から払出制御基板15へと伝送される。これにより、電源基板10から主基板11及び払出制御基板15の双方にクリア信号を伝送するための配線を接続する場合に比べて配線構成を簡略化でき、パチンコ遊技機1のコストを低減させることができるとともに、配線長が短くなってノイズの影響を受けにくくすることができる。
以上に述べた実施の形態では、乱数回路103が備えるクロック信号出力回路171から出力されたクロック信号S1は、反転回路178に入力され、反転回路178によってクロック信号S1の信号レベルを反転させることで生成された反転クロック信号S2をラッチ信号生成回路180に入力することで、ラッチ信号生成回路180がタイマ回路179からの出力信号を反転クロック信号S2に同期させて、ラッチ信号SLとして出力するように構成されている。これに対して、クロック信号出力回路171から出力されたクロック信号S1を、このクロック信号S1の周期の整数倍の期間とは異なる期間だけ遅延させて生成した遅延クロック信号を、ラッチ信号生成回路180に入力するようにしてもよい。図80は、遅延クロック信号をラッチ信号生成回路180に入力する構成の一例を示すブロック図である。
図80に示す構成において、遅延回路182は、クロック信号出力回路171から出力されたクロック信号S1を、このクロック信号S1の周期の整数倍の期間とは異なる期間だけ遅延させて、遅延クロック信号S3を生成する。遅延回路182は、生成した遅延クロック信号S3をラッチ信号生成回路180に出力する。ラッチ信号生成回路180は、タイマ回路179からの出力信号を、遅延回路182から出力される遅延クロック信号S3の立上がりエッジに同期して出力することにより、ラッチ信号SLを生成する。
図81は、図80に示す構成を有する乱数回路103の動作を説明するためのタイミングチャートである。乱数回路103に設けられたクロック信号出力回路171のクロック入力端子やタイマ回路179のクロック入力端子には、図81(A)に示すような内部システムクロックCLKが入力される。内部システムクロックCLKは、遊技制御用マイクロコンピュータ100が備えるクロック回路101にて生成されたものであればよい。
クロック信号出力回路171は、内部システムクロックCLKを分周して、例えばタイミングT31、T32、…においてローレベルからハイレベルに立上がる、図81(B)に示すクロック信号S1を生成する。ここで、クロック信号出力回路171から出力されるクロック信号S1の周期をTとする。なお、図81に示す動作例では、説明のために、クロック信号出力回路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の、図81(C)に示す遅延クロック信号S3を生成する。遅延回路182によって生成された遅延クロック信号S3は、ラッチ信号生成回路180に出力される。
図81(D)に示す始動入賞信号SSがタイマ回路179に入力されたときには、その立上がりエッジからの経過時間が所定時間(例えば3ミリ秒)に達すると、タイマ回路179からの出力信号がローレベルからハイレベルに立上がる。このタイマ回路179からの出力信号は、ラッチ信号生成回路180に入力され、遅延クロック信号S3の立上がりエッジと同期して、図81(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として出力する。これにより、乱数値の取得を確実かつ安定的に行うことができる。
この発明は上記実施の形態に限定されるものではなく、様々な変形及び応用が可能である。例えば図11に示すように構成された乱数回路103では、クロック信号出力回路171から出力されたクロック信号S1が乱数生成回路173Bと反転回路178に入力され、反転回路178がクロック信号S1の信号レベルを反転させて生成した反転クロック信号S2をラッチ信号生成回路180に入力させる。これに対して、クロック信号出力回路171から出力されたクロック信号S1をラッチ信号生成回路180と所定の反転回路に入力し、その反転回路がクロック信号S1の信号レベルを反転させて生成した反転クロック信号を乱数生成回路173Bに入力するように構成してもよい。この場合、乱数生成回路173Bは、反転回路により出力された反転クロック信号の入力に基づいて、数値データC2を更新可能な所定の範囲において所定の初期値から所定の最終値まで、予め定められた順序に従って循環的に更新する。これに対して、ラッチ信号生成回路180は、始動入賞信号SSの入力に応じたタイマ回路179からの出力信号を、クロック信号出力回路171から出力されたクロック信号S1に同期して、ラッチ信号SLとして出力する。このような構成によっても、乱数値の取得を確実かつ安定的に行うことが可能になる。
また、例えば図80に示すように構成された乱数回路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)を整流、平滑した直流電源(DC30V)を監視して、監視している直流電源が所定の電圧以下になったことを検出すると電源断信号を出力するものを例示したが、これに限らず、交流電源(AC24V)を直流に変換する途中における全波整流波形の有無を監視し、波形が所定期間検出できなかったときに電源断信号を出力するものでもよい。さらに交流電源を直接監視し、交流波形が所定期間検出できなかったときに電源断信号を出力するものでもよい。つまり、監視する対象は電圧に限らず、全波整流波形でも半波整流波形でもよく、遊技機への供給電力が低下していることを検出できるものであればよい。
電源断信号は、遊技制御用マイクロコンピュータ、払出制御用マイクロコンピュータにおける入力ポートに入力し、電源断信号がオンである旨の判定がされたときに電源断処理を実行してもよい。あるいは、電源断信号をNMI端子へ入力し、ノンマスカブル割込処理にて電源断処理を実行するものでもよい。また、電源断信号をNMI端子へ入力し、電源断信号の入力に応じて電断フラグをセットし、タイマ割込処理あるいはメイン処理にて電断フラグの状態を監視して、オンであれば電源断処理を実行するものでもよい。
上記実施の形態では、電源断処理にてチェックサムデータの作成や、バックアップフラグのセットを行い、それらを電源投入時に確認するものを例示したが、これに限らず電源断処理にて所定の出力ポートをクリアする処理や、電源状態が復帰したか否かを監視する処理(瞬停時に復帰させる処理)を実行してもよい。また、それらの処理の順番は本件実施の形態に限定されるものではない。
上記実施の形態では、遊技制御カウンタ設定部135に総賞球数カウンタと第1〜第3払出数指示カウンタとが設けられ、図44(A)に示すステップS252の処理では、総賞球数カウンタの値と第1〜第3払出数指示カウンタのいずれかの値に、所定値が加算されて更新される。また、図46に示すステップS324では、変数Nの値に対応した第1〜第3払出数指示カウンタのいずれかの値が1減算されて更新される一方で、ステップS327、S329、S330のいずれかの処理が実行されることにより、変数Nの値に対応した所定値が総賞球数カウンタの値から減算されて更新されるようにしている。このように、上記実施の形態では、遊技制御用マイクロコンピュータ100にて払出制御基板15からの賞球ACKコマンドを受信した旨の判定がなされたときに、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしている。しかしながら、この発明はこれに限定されるものではなく、例えば払出数指定コマンドを送信するときに、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしてもよい。この場合には、図45に示すステップS308、S310、S311の処理のいずれかにより払出数指定コマンドを送信するための設定を行う以前に、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしてもよいし、図45に示すステップS308、S310、S311の処理のいずれかを実行して払出数指定コマンドを送信するための設定を行った後、払出制御基板15からの賞球ACKコマンドを受信したか否かの判定を行うより以前に、第1〜第3払出数指示カウンタの更新や総賞球数カウンタの更新を行うようにしてもよい。
また、遊技制御カウンタ設定部135に総賞球数カウンタと第1〜第3払出数指示カウンタとを備えるものに限定されず、遊技制御用マイクロコンピュータ100が賞球として払い出すべき遊技球の個数を特定可能なデータを記憶できる任意の構成を有するものであればよい。例えば、遊技制御カウンタ設定部135には総賞球数カウンタが設けられる一方で、第1〜第3払出数指示カウンタは設けられていなくてもよい。この場合には、図8(C)に示す払出数指定コマンドの1バイト目及び2バイト目における第3〜第0ビット[ビット3−0]のビット値により、遊技球の払出数として「1」〜「16」のいずれでも指定可能とする。そして、総賞球数カウンタの値から払い出すべき賞球の個数を特定し、特定した賞球の個数を払出数として指示する払出数指定コマンドを、主基板11から払出制御基板15に対して送信するようにすればよい。このとき、総賞球数カウンタの値が払出数指定コマンドで指示することが可能な払出数の最大値(例えば「16」)よりも大きな値となっているときには、最大の払出数を指示する払出数指定コマンドを送信するとともに総賞球数カウンタの値を更新し、更新後の総賞球数カウンタの値に基づいて、さらに払出数指定コマンドの送信を行うようにすればよい。
あるいは、遊技制御カウンタ設定部135には第1〜第3払出数指示カウンタが設けられる一方で、総賞球数カウンタは設けられていなくてもよい。この場合には、図44(A)に示すステップS252にてオン状態のスイッチに対応して第1〜第3払出数指示カウンタのいずれかの値を更新すればよく、図46に示すステップS325の処理を実行した後には、ステップS331の処理に進むようにすればよい。
上記実施の形態では、図46に示すステップS321にて賞球ACK受信フラグがオンであることにより払出制御基板15からの賞球ACKコマンドを受信した旨の判定がなされたときに、ステップS325の処理を実行してコマンド送信回数カウンタの値を1加算している。しかしながら、この発明はこれに限定されるものではなく、例えば払出数指定コマンドを送信するときに、コマンド送信回数カウンタの値を1加算するようにしてもよい。この場合には、図45に示すステップS308、S310、S311の処理のいずれかにより払出数指定コマンドを送信するための設定を行う以前に、コマンド送信回数カウンタの値を1加算するようにしてもよいし、図45に示すステップS308、S310、S311の処理のいずれかを実行して払出数指定コマンドを送信するための設定を行った後、払出制御基板15からの賞球ACKコマンドを受信したか否かの判定を行うより以前に、コマンド送信回数カウンタの値を1加算するようにしてもよい。このように払出数指定コマンドを送信するときにコマンド送信回数カウンタの値を1加算することによっても、賞球として払い出される遊技球の個数を直接カウントすることなく、賞球として払い出される遊技球の個数に異常が生じたことを検出できる。また、入賞口に入賞した遊技球の個数は、賞球として払い出される遊技球の個数に比べて少ないことから、データの記憶量を少なくすることができる。さらに、1つのコマンド送信回数カウンタにおけるカウント値を更新するだけで払出数指定コマンドの送信回数と全入賞球検出スイッチ29によって検出された遊技球の個数との差を入賞個数差として特定することができるから、制御負担の増大を抑制して、賞球として払い出される遊技球の個数に異常が発生したか否かを判定することができる。加えて、1つのコマンド送信回数カウンタにおけるカウント値を記憶するだけでよいことから、複数のカウンタにおけるカウント値を用いる場合に比べて、データの記憶量を少なくすることができる。なお、第1〜第3払出数指定コマンドの送信回数をカウントするためのカウンタと、全入賞球検出スイッチ29によって検出された遊技球の個数をカウントするためのカウンタとを別個に設けて、双方のカウンタにおける値の差分を、入賞個数差として特定するようにしてもよい。
上記実施の形態では、図40に示すような遊技制御用タイマ割込み処理にてステップS72のスイッチ処理とステップS78の特別図柄プロセス処理が実行される。ここで、例えばステップS72のスイッチ処理で始動口スイッチ22からの検出信号がオン状態であるときに、始動口スイッチタイマにおけるタイマ値が1ずつ加算される。そして、ステップS78の特別図柄プロセス処理では、例えば図51に示すステップS421にて始動口スイッチタイマにおけるタイマ値が所定のスイッチオン判定値(例えば「2」)となっている旨の判定がなされたときに、ステップS422の入賞処理にて乱数回路103が備える乱数値レジスタ181Bなどから乱数値が読み出されることになる。これに対して、遊技制御用のタイマ割込み処理では始動口スイッチ22からの検出信号がオン状態となっているか否かに応じた始動口スイッチタイマの更新を行って、そのタイマ値が所定のスイッチオン判定値となったときに所定の始動入賞フラグをオン状態にセットする一方で、乱数回路103からの乱数値の読み出しは、図30に示すステップS29にて電源断信号がオフ状態であるときに実行されるループ処理内にて行うようにしてもよい。
この場合、遊技制御用タイマ割込み処理では、例えば図40に示す各処理のうち、ステップS71、S72、S84の処理だけを実行するようにする。そして、ステップS72のスイッチ処理では、始動口スイッチ22からの検出信号がオン状態であるときに、始動口スイッチタイマにおけるタイマ値を1ずつ加算するように更新する一方、始動口スイッチ22からの検出信号がオフ状態であるときには、始動口スイッチタイマをクリアする。そして、始動口スイッチタイマにおけるタイマ値がスイッチオン判定値に達したときには、遊技制御フラグ設定部133に設けられた始動入賞フラグをオン状態にセットする。他方、図30に示すステップS29にて電源断信号がオフ状態であるときには、図40に示すステップS73〜S83の各処理を実行してから、ステップS29の処理にリターンするようにする。ここで、ステップS78の特別図柄プロセス処理では、図51に示すステップS421の処理として、始動入賞フラグがオンとなっているか否かの判定処理を実行する。そして、始動入賞フラグがオンであるときには、ステップS422の入賞処理を実行して、乱数回路103から乱数値を読み出して特図保留記憶部131に格納するようにしてもよい。これにより、タイマ割込みが発生したときに遊技制御用マイクロコンピュータ100が備えるCPU104での処理量が増大することを防止して、タイマ割込み発生時における制御負担を軽減することができる。
上記実施の形態では、演出制御用マイクロコンピュータ120が図76に示すステップS948にてシリアル通信異常報知開始コマンドを受信したと判定したときに、図78(C)に例示するようなシリアル通信異常報知画面となる画像を画像表示装置5に表示させた後、図76に示すステップS946にてシリアル通信異常報知終了コマンドを受信したと判定されるまでは、シリアル通信異常報知画面の表示が継続して行われる。また、図76に示すステップS953にてメイン側払出異常報知開始コマンドを受信したと判定したときに、図78(D)に例示するようなメイン側払出異常報知画面となる画像を画像表示装置5に表示させた後、図76に示すステップS951にてメイン側払出異常終了コマンドを受信したと判定されるまでは、メイン側払出異常報知画面の表示が継続して行われる。図77に示すステップS958にて払出側異常報知開始コマンドを受信したと判定したときに、図78(E)に例示するような払出側異常報知画面となる画像を画像表示装置5に表示させた後、図77に示すステップS956にて払出側異常終了コマンドを受信したと判定されるまでは、払出側異常報知画面の表示が継続して行われる。しかしながら、この発明はこれに限定されるものではなく、例えば図78(F)に例示した賞球過多報知画面や図78(G)に例示した賞球不足報知画面を表示する場合と同様に、報知を終了するタイミングに達したときには、シリアル通信異常報知画面やメイン側払出異常報知画面、払出側異常報知画面などの表示を終了させるようにしてもよい。この場合には、主基板11から演出制御基板12に対して異常報知の終了を指示するコマンドを送信する必要がないので、遊技制御用マイクロコンピュータ100における制御負担を軽減することができる。
上記実施の形態では、図64に示す賞球払出回数算出処理におけるステップS801にて主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはそのまま賞球払出回数算出処理を終了する。また、図65に示す賞球払出駆動処理におけるステップS811にて主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはステップS812の処理に進むことで払出モータ51による遊技球の払出動作を停止させる。そして、図66に示す賞球払出完了待ち処理におけるステップS831にて主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはステップS842の処理に進むことで払出モータ51による遊技球の払出動作を停止させる。その一方で、図68に示す球貸し払出回数算出処理や、図69に示す球貸し払出駆動処理、図70に示す球貸し払出完了待ち処理では、主基板通信エラーフラグがオンとなっているか否かの判定は行われない。しかしながら、この発明はこれに限定されるものではなく、例えば図68に示す球貸し払出回数算出処理を開始したときには、まず主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはそのまま球貸し払出回数算出処理を終了するようにしてもよい。また、図69に示す球貸し払出駆動処理を開始したときには、まず主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはステップS812〜S814と同様の処理を実行することで払出モータ51による遊技球の払出動作を停止させるようにしてもよい。そして、図70に示す球貸し払出完了待ち処理を開始したときには、まず主基板通信エラーフラグがオンとなっているか否かを判定し、オンであるときにはステップS880の処理に進むことで払出モータ51による遊技球の払出動作を停止させるようにしてもよい。これにより、主基板11からのACKフィードバックコマンドを受信していない旨の判定がなされたときには、球貸し未払出カウンタの値が「0」以外の値となって未払出の貸し球となる遊技球があることを示していても払出制御を停止する状態に制御されることになる。これにより、確実な払出制御を実行して、例えば通信エラーや通信線に対する不正行為などによる異常が発生したときに、貸し球となる遊技球を過剰に払い出してしまうことを防止できる。
また、上記実施の形態では、連続して払い出される賞球の個数には、上限が設けられていなかったが、この発明はこれに限定されるものではなく、連続して払い出される賞球の個数に上限値(賞球連続払出上限値)を設けるようにしてもよい。例えば賞球払出上限値として、1単位の貸し球の払出数(例えば25個)に相当する値である「25」が設定されている場合、図64に示す賞球払出回数算出処理では、賞球未払出カウンタの値が「0」以外の数値であれば(ステップS803;No)、さらに賞球未払出カウンタの値が賞球連続払出上限値である「25」以下か否かを判定するようにし、賞球未払出カウンタの値が「25」以下であれば、ステップS804の処理に進んで賞球未払出カウンタの値で示される未払出数を、払出モータ回転カウンタにセットするようにすればよい。これに対して、賞球未払出カウンタの値が「25」より大きいときには、賞球連続払出上限値である「25」を払出モータ回転カウンタにセットするようにすればよい。また、図65に示す賞球払出駆動処理では、増加分格納領域の記憶データから特定される賞球未払出カウンタの増加分と、払出モータ回転カウンタの値と、の加算値を求め、この加算値が賞球連続払出上限値である「25」以下であるか否かを判定するようにする。ここで、加算値が「25」以下のときには、ステップS817の処理に進んで賞球未払出カウンタの増加分を払出モータ回転カウンタの値に加算して更新するようにすればよい。これに対して、加算値が「25」より大きいときには、賞球連続払出上限値である「25」を払出モータ回転カウンタにセットするようにすればよい。そして、図66に示す賞球払出完了待ち処理では、賞球未払出カウンタの値が「0」以外の数値で、且つ払出動作不良回数カウンタの値が不良回数上限値である「9」以下であれば(ステップS834;No、ステップS836;No)、さらに賞球未払出カウンタの値が賞球連続払出上限値である「25」以下か否かを判定するようにし、賞球未払出カウンタの値が「25」以下であれば、ステップS837の処理に進んで賞球未払出カウンタの値で示される未払出数を、払出モータ回転カウンタにセットするようにすればよい。これに対して、賞球未払出カウンタの値が「25」より大きいときには、賞球連続払出上限値である「25」を払出モータ回転カウンタにセットするようにすればよい。これにより、上限値を「25」とした賞球となる遊技球の連続的な払出の実行が可能となる。
上記実施の形態において、払出モータ51の駆動量(回転量)は、賞球となる遊技球を1個分払い出すための払出動作が完了したときに(ステップS819;Yes)、払出モータ回転カウンタにおけるカウント値を1減算して更新することによって(ステップS820)、検出されるものとして説明した。しかしながら、この発明はこれに限定されず、例えば賞球となる遊技球を1個分払い出すための払出動作が完了したときに(ステップS819;Yes)、カウント値が1加算されて更新されるアップカウンタ(払出動作量加算手段)を払出制御カウンタ設定部143に別途設けるようにし、この一方で、払出モータ回転カウンタにおけるカウント値を、賞球となる遊技球を1個分払い出すための払出動作が完了しても更新しないようにする。そして、更新したアップカウンタの値が、払出モータ回転カウンタの値(終了値)と合致したときに、払出モータ51の駆動を停止するための設定を行うようにすればよい(ステップS823)。
上記実施の形態では、始動口スイッチ22から出力された検出信号が、始動入賞信号SSとして乱数回路103に設けられたタイマ回路179に入力される。そして、タイマ回路179において、始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、始動入賞信号SSをラッチ信号生成回路180に出力していた。しかしながら、この発明はこれに限定されるものではなく、始動口スイッチ22からの検出信号をCPU104に入力し、CPU104が所定回(例えば2回)の遊技制御用タイマ割込み処理を実行する期間(例えば4ミリ秒間)にわたり、始動口スイッチ22からの検出信号が継続してオン状態であるときに、ラッチ用始動入賞信号SNをラッチ信号生成回路180に送出するようにしてもよい。この場合、図11に示すような乱数回路103が備えるタイマ回路179は不要であり、例えばラッチ信号生成回路180が備えるD入力端子に、CPU104から出力されるラッチ用始動入賞信号SNを入力させる。そして、ラッチ信号生成回路180が備えるクロック入力端子には、反転回路178から出力される反転クロック信号S2や遅延回路182から出力される遅延クロック信号S3を入力させればよい。ラッチ信号生成回路180は、D入力端子に入力されるラッチ用始動入賞信号SNを、クロック入力端子に入力される反転クロック信号S2や遅延クロック信号S3の立上がりエッジに同期させて出力することにより、ラッチ信号SLを生成して出力する。
また、上記実施の形態において、タイマ回路179は、内部システムクロックCLKを用いて始動入賞信号SSの入力時間を計測していたが、これに限定されず、内部システムクロックCLKを分周したクロック信号や、クロック回路101によって生成される内部システムクロックCLKとは異なるクロック信号を用いてもよい。例えば、タイマ回路179は、クロック信号出力回路171から出力されたクロック信号S1を用いて始動入賞信号SSの入力時間を計測してもよい。また、上記実施の形態において、タイマ回路179には、所定の時間として3ミリ秒が設定されていたが、これに限定されず、2回の遊技制御用タイマ割込み処理の実行時間である4ミリ秒よりも短い時間であれば任意に設定可能である。
さらに、上記実施の形態において、CPU104は、2回の遊技制御用タイマ割込み処理が実行されている期間(4ミリ秒)にわたり始動入賞信号が継続して入力されたことに基づいて、図51に示すステップS422の入賞処理を実行していた。しかしながら、本発明は、これに限定されず、上述した遊技制御用タイマ割込み処理の実行回数は、任意であり、例えば、CPU104は、3回の遊技制御用タイマ割込み処理が実行されている期間(6ミリ秒)にわたり始動入賞信号が継続して入力されたことに基づいて、入賞処理を実行してもよい。この場合、タイマ回路179には、3回の遊技制御用タイマ割込処理の実行時間である6ミリ秒よりも短い時間を設定すればよい。
上記実施の形態では、「0」〜「9」を示す数字等から構成される特別図柄のうちで、「7」を示す特別図柄を大当り図柄とし、それ以外の数値を示す特別図柄をハズレ図柄とし、遊技状態が高確率状態となる確変大当りとなるか否かは、特別図柄とは別個に決定されるものとして説明した。しかしながら、この発明はこれに限定されるものではなく、遊技状態が高確率状態となる確変大当りのときの大当り図柄である確変大当り図柄と、遊技状態が高確率状態にはならない通常大当りのときの大当り図柄である通常大当り図柄とを、互いに異なる特別図柄としてもよい。例えば、「3」を示す特別図柄を通常大当り図柄とし、「7」を示す特別図柄を確変大当り図柄としてもよい。この場合には、表示結果通知コマンドとなるコマンド90XXhのうち、コマンド9001hを特図ゲームでの確定特別図柄が通常大当り図柄としての「3」を示す特別図柄であることを通知するコマンドとし、コマンド9002hを特図ゲームでの確定特別図柄が確変大当り図柄としての「7」を示す特別図柄であることを通知するコマンドとすればよい。
また、上記実施の形態において、遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6に設けられた始動入賞口に遊技球が入賞すること)が成立した後に可変表示の開始条件(例えば特別図柄表示装置4による前回の特図ゲーム及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報(例えば特別図柄)を可変表示する可変表示装置(例えば特別図柄表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御するパチンコ遊技機であった。
しかしながら、本発明は、これに限定されず、遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
また、本発明の遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。