以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。図1は、本実施例におけるパチンコ遊技機1の正面図であり、主要部材の配置レイアウトを示す。パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3とから構成されている。遊技盤2にはガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。
この遊技領域の中央位置上方には、識別可能な識別情報としての特別図柄を可変表示する特別図柄表示装置4が設けられている。特別図柄表示装置4の下方には、特別図柄とは異なる飾り図柄の可変表示や所定の演出表示となる画像表示などを行うことができる画像表示装置5が設けられている。画像表示装置5の下方には、始動入賞口を形成する普通可変入賞球装置6が配置されている。普通可変入賞球装置6の下方には、大入賞口を形成する特別可変入賞球装置7や、普通図柄表示器40が設けられている。
特別図柄表示装置4は、例えば7セグメントやドットマトリクスのLED等から構成されている。特別図柄表示装置4は、普通可変入賞球装置6への遊技球の入賞により始動条件が成立したことに基づいて行われる可変表示ゲームとしての特図ゲームにおいて、例えば「0」〜「9」を示す数字等から構成され、各々が識別可能な複数種類の識別情報として機能する特別図柄を可変表示する。各特別図柄には、例えば各図柄が示す数字と同一の番号といった、各々の特別図柄に対応した図柄番号が付されている。なお、特別図柄表示装置4は、遊技者に特定の停止図柄を把握しづらくさせるために、例えば「00」〜「99」を示す数字など、より多種類の図柄を可変表示するように構成されていてもよい。
特別図柄表示装置4により行われる特図ゲームでは、特別図柄の変動を開始させた後、所定時間が経過すると、特別図柄の可変表示結果となる確定特別図柄を停止表示(導出表示)する。このとき、特別図柄表示装置4にて特図ゲームでの確定特別図柄として特定の特別図柄(大当り図柄)が停止表示されれば特定表示結果としての「大当り」となり、大当り図柄以外の特別図柄が停止表示されれば「ハズレ」となる。特図ゲームでの変動表示結果が「大当り」になると、特別可変入賞球装置7が備える開閉板を開閉させることによる特定遊技状態としての大当り遊技状態に制御される。この実施の形態におけるパチンコ遊技機1では、具体的な一例として、「7」を示す特別図柄を大当り図柄とし、それ以外の数値を示す特別図柄をハズレ図柄としている。
特別図柄表示装置4による特図ゲームでの確定特別図柄として大当り図柄である「7」を示す特別図柄が停止表示されたことに基づく大当り遊技状態では、特別可変入賞球装置7の開閉板により、所定の開放期間(例えば29秒)あるいは所定個数(例えば10個)の入賞球が発生するまでの期間において大入賞口が開放され、開放されている間は遊技盤2の表面を落下する遊技球が受け止められて大入賞口への入賞が可能となり、その後に大入賞口を閉鎖することで1回のラウンドが終了する。そして、この開閉サイクルとしてのラウンドを所定の上限回数(例えば15ラウンド)まで繰り返すことができる。
画像表示装置5は、例えばLCD等から構成され、多数の画素(ピクセル)を用いたドットマトリクス方式による画面表示を行うものであればよい。画像表示装置5の表示画面では、特別図柄表示装置4による特図ゲームにおける特別図柄の変動表示に対応して、例えば3つに分割された表示領域としての可変表示部にて、各々が識別可能な複数種類の飾り図柄を変動可能に表示する可変表示を行う。具体的な一例として、画像表示装置5には、「左」、「中」、「右」の可変表示部が配置され、各可変表示部にて飾り図柄が可変表示される。そして、特別図柄表示装置4における特別図柄の変動表示が開始されるときには、画像表示装置5における「左」、「中」、「右」の各可変表示部にて飾り図柄の変動表示(例えば切替表示やスクロール表示)を開始させ、その後、特別図柄表示装置4における特別図柄の変動表示結果として確定特別図柄が停止表示されるときに、画像表示装置5における「左」、「中」、「右」の各可変表示部にて確定飾り図柄となる飾り図柄が停止表示されることで、可変表示結果となる飾り図柄の組合せが停止表示(導出表示)される。
例えば、「左」、「中」、「右」の各可変表示部では、10種類の数字「0」〜「9」を示す図柄が飾り図柄として変動可能に表示される。各飾り図柄には、例えば各図柄が示す数字と同一の番号といった、各々の飾り図柄に対応した図柄番号が付されている。そして、「左」、「中」、「右」の各可変表示部では、飾り図柄の変動表示が開始されると、例えば図柄が示す番号の小さいものから大きいものへと切替表示やスクロール表示が行われ、「9」を示す飾り図柄が表示されると、次に「0」を示す飾り図柄が表示される。そして、特別図柄表示装置4における特図ゲームでの確定特別図柄が大当り図柄である場合すなわち大当り発生時には、「左」、「中」、「右」の可変表示部にて所定の組合せからなる確定飾り図柄が停止表示される。具体的には、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であるときには、「左」、「中」、「右」の可変表示部にて同一の飾り図柄が停止表示される。
この実施の形態において、図柄番号が奇数である「1」、「3」、「5」、「7」または「9」を示す飾り図柄は確変大当り用の飾り図柄(確変図柄)として用いられ、図柄番号が偶数である「0」、「2」、「4」、「6」または「8」を示す飾り図柄は通常大当り用の飾り図柄(通常図柄)として用いられる。飾り図柄の可変表示結果として「左」、「中」、「右」の可変表示部にて同一の確変図柄(確変大当り組合せの飾り図柄)が停止表示されたときには、確変大当りとなる。確変大当りとなったときには、その確変大当りに基づく大当り遊技状態が終了した後、所定回数(例えば100回)の特図ゲームが実行されるまで、あるいは特図ゲームにおける可変表示結果が大当りとなるまで、特別遊技状態の1つとして、継続して確率変動制御(確変制御)が行われる高確率状態(確率向上状態)となる。この高確率状態では、特図ゲームにおいて可変表示結果として大当り図柄が停止表示されて大当り遊技状態に制御される確率が、通常遊技状態時よりも向上する。なお、通常遊技状態とは、大当り遊技状態や特別遊技状態以外の遊技状態のことであり、特図ゲームにおける確定特別図柄として大当り図柄が停止表示されて大当りとなる確率が、電源投入直後などの初期設定状態と同一に制御されている。
また、飾り図柄における可変表示結果として「左」、「中」、「右」の可変表示部にて同一の通常図柄(通常大当り組合せの飾り図柄)が停止表示されたときには、通常大当りとなる。この通常大当りとなるときには、確変制御が行われないため、特図ゲームにおける可変表示結果が大当りとなって大当り遊技状態に制御される確率は向上しない。その一方で、通常大当りとなるときには、所定回数(例えば100回)の特図ゲームの実行が開始されるまで、または、大当りとなる特図ゲームの実行が開始されるまで、高確率状態とは異なる特別遊技状態の1つとして、継続して時間短縮制御(時短制御)が行われる時間短縮状態となるようにしてもよい。時短制御が行われる時間短縮状態では、各特図ゲームにて大当りとなって大当り遊技状態に制御される確率は通常遊技状態と同一であるが、特図ゲームにおいて特別図柄の可変表示が開始されてから表示結果となる確定特別図柄が停止表示されるまでの時間である可変表示時間は、通常遊技状態よりも短くなるように制御される。
「左」、「中」、「右」の各可変表示部では、アルファベットを示す複数種類の図柄が飾り図柄として変動可能に表示されてもよいし、所定のモチーフに関連する複数種類のキャラクタ図柄を飾り図柄として可変表示してもよい。また、画像表示装置5では、特別図柄表示装置4による特図ゲームの実行中において、様々な演出態様のいずれかによる演出表示を行うことができる。なお、可変表示部は固定的な領域であってもよいが、遊技進行中に、画像表示装置5の表示領域において移動したり大きさが変化してもよい。
加えて、画像表示装置5には、普通可変入賞球装置6に設けられた始動入賞口へ入った有効入賞球数すなわち保留記憶数(始動入賞記憶数)を表示する特別図柄始動記憶表示エリアが設けられていてもよい。特別図柄始動記憶表示エリアでは、保留記憶数が所定の上限値(例えば「4」)未満のときの有効始動入賞に対応して、入賞表示が行われる。具体的な一例として、通常青色であった表示を赤色表示に変化させる。この場合、飾り図柄の表示エリア(可変表示部)と特別図柄始動記憶表示エリアとを区分けして設けることで、飾り図柄の可変表示中も保留記憶数が表示された状態とすることができる。なお、特別図柄始動記憶表示エリアを飾り図柄の表示エリアの一部に設けるようにしてもよい。この場合には、飾り図柄の可変表示中には保留記憶数の表示を中断するようにすればよい。このように画像表示装置5に設けられた特別図柄始動記憶表示エリアにて保留記憶数を表示する場合には、演出制御基板12に搭載された演出制御用マイクロコンピュータ120(図2)によって、特別図柄始動記憶表示エリアにおける保留記憶数の表示動作が制御されることになる。他方、特別図柄始動記憶表示エリアにて保留記憶数を表示する場合でも、主基板11に搭載された遊技制御用マイクロコンピュータ100(図2)の制御により保留記憶数が表示される表示器(特別図柄始動記憶表示器)が、画像表示装置5とは別個に設けられてもよい。
普通可変入賞球装置6は、ソレノイド81(図2)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)を備えて構成されている。普通可変入賞球装置6は、普通図柄表示器40による普通図柄の可変表示(普通図ゲーム)で表示結果が「当り」となったときに、電動チューリップの可動翼片を所定時間が経過するまで傾動位置に制御することで、可動翼片を垂直位置としたときに比べて遊技球が始動入賞口に入賞しやすくなる。普通可変入賞球装置6に入賞した遊技球は、始動口スイッチ22(図2)によって検出される。始動口スイッチ22によって遊技球が検出されたことに基づいて、所定個数(例えば4個)の賞球の払い出しが行われる。
特別可変入賞球装置7は、ソレノイド82(図2)によって大入賞口を開成及び閉成制御する開閉板を備えて構成されている。この開閉板は、特別図柄表示装置4による特図ゲームでの変動表示結果などに基づいて大当り遊技状態となった場合に、所定期間あるいは所定個数の入賞球が発生するまでの期間において、遊技者にとって有利な第1の状態としてソレノイド82により大入賞口を開放した状態となった後に、閉鎖する。他方、例えばパチンコ遊技機1の電源投入後に大当り遊技状態が発生する以前までのような通常時には、遊技者にとって不利な第2の状態としてソレノイド82により大入賞口を閉鎖した状態にある。特別可変入賞球装置7にて開閉板が大入賞口を開放しているときに大入賞口に遊技球が入賞した場合には、カウントスイッチ24(図2)によって当該遊技球が検出されたことに基づいて、所定個数(例えば15個)の賞球の払い出しが行われる。なお、大入賞口に入賞して遊技盤2の背面に導かれた遊技球のうち一方の領域(V入賞領域;特別領域)に入ったものはV入賞スイッチ23(図2)で検出された後にカウントスイッチ24で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ24で検出されるようにしてもよい。この場合、遊技盤2の背面には、大入賞口内の経路を切り替えるためのソレノイドが設けられていてもよい。あるいは、V入賞領域を設けずに、大当り遊技状態における最終ラウンド以外のラウンドでは、常に次のラウンドへと移行できるようにしてもよい。
普通図柄表示器40は、例えばLED等から構成され、遊技領域に設けられた通過ゲートを通過した遊技球がゲートスイッチ21(図2)によって検出されたことを始動条件とする普通図ゲームにおいて、点灯、点滅、発色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となる。ここで、前述の高確率状態と時間短縮状態では、普通図柄表示器40による普通図ゲームにおける可変表示時間が通常遊技状態のときよりも短くなるとともに、各回の普通図ゲームで表示結果が当り図柄となる確率が向上するようにしてもよい。このときにはさらに、普通可変入賞球装置6における可動翼片の傾動時間が通常遊技状態のときよりも長くなるとともに、その傾動回数が通常遊技状態のときよりも増加するようにしてもよい。このように、高確率状態や時間短縮状態では、大当り遊技状態とは異なる遊技者にとって有利な遊技状態となる。ここで、時間短縮状態では、確変制御が行われず、大当り遊技状態となる確率は通常遊技状態のときと同じであるので、高確率状態の方が時間短縮状態よりも遊技者にとって有利である。
また、遊技盤2の遊技領域には、上記した構成以外にも、装飾ランプを内蔵した風車やアウト口等が設けられている。遊技領域外側の左右上部には、効果音を発する2つのスピーカ8L、8Rが設けられている。遊技領域の外周には、点灯又は点滅する遊技効果ランプ9が設けられている。遊技領域外側の右下位置には、発射モータ61(図2)を駆動して遊技球を遊技領域に向けて発射させるために遊技者等が操作する操作ノブ30が設けられている。
さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、カードユニットという)70も示されている。カードユニット70には、使用可能状態であるか否かを示す使用可表示ランプ、カードユニット70がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット70内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、及びカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット70を開放するためのカードユニット錠などが設けられている。
パチンコ遊技機1には、例えば図2に示すような電源基板10、主基板11、演出制御基板12、音声制御基板13、ランプ制御基板14、払出制御基板15、発射制御基板17といった、各種の制御基板が搭載されている。主基板11と演出制御基板12との間には、主基板11から演出制御基板12へと伝送される各種の制御信号を中継するための中継基板18なども設けられている。また、払出制御基板15とカードユニット70との間には、インタフェース基板20が介在している。なお、音声制御基板13やランプ制御基板14は、演出制御基板12とは別個の独立した基板によって構成されてもよいし、演出制御基板12にまとめられて1つの基板として構成されてもよい。その他、パチンコ遊技機1の背面には、例えば情報端子基板などといった、各種の制御基板が配置されている。
電源基板10は、主基板11、演出制御基板12、払出制御基板15等の各制御基板と独立して設置され、パチンコ遊技機1内の各制御基板及び機構部品が使用する電圧を生成する。例えば、電源基板10では、図3に示すように、AC24V、VLP(直流+24V)、VSL(直流+30V)、VDD(直流+12V)、VCC(直流+5V)及びVBB(直流+5V)を生成する。電源基板10は、例えば図3に示すように、変圧回路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といった、遊技媒体を検出する各種スイッチに供給され、これらのスイッチを作動させるために用いられる。
図3に示すように、変圧回路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へと伝送され、払出制御基板15から主基板11へと伝送される。なお、外部からパチンコ遊技機1に供給される電力の供給停止を検出するための条件としては、パチンコ遊技機1において用いられる所定電圧が所定値以下になったことに限られず、外部からの電力が途絶えたことを検出できる任意の条件であればよい。例えば、AC24V等の交流波そのものを監視して交流波が途絶えたことを検出条件としてもよいし、交流波をデジタル化した信号を監視して、デジタル信号が平坦になったことをもって交流波が途絶えたことの検出条件としてもよい。
また、電源監視回路303は、例えば所定電圧(一例としてVCC)が所定値(一例として+5V強)以下になったときに、リセット信号を出力してもよい。リセット信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。電源監視回路303から出力されたリセット信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、主基板11、ランプ制御基板14及び払出制御基板15へと伝送される。なお、演出制御基板12には、ランプ制御基板14を経由してリセット信号が伝送されればよい。さらに、リセット信号を出力する回路は、電源監視回路303とは別個に設けられたウォッチドッグタイマ内蔵IC、あるいはシステムリセットICなどを用いて構成されてもよい。
パチンコ遊技機1への電力供給が停止するときには、電源監視回路303が、電源断信号を出力(ローレベルに設定)してから所定期間が経過したときに、リセット信号を出力(ローレベルに設定)する。ここでの所定期間は、例えば主基板11に搭載されている遊技制御用マイクロコンピュータ100及び払出制御基板15に搭載されている払出制御用マイクロコンピュータ150が、所定の電源断処理(例えば図28に示すステップS26のメイン側電源断処理や、図50に示すステップS720の払出側電源断処理など)を実行するのに十分な時間であればよい。すなわち、電源監視回路303は、停電信号としての電源断信号を出力した後、遊技制御用マイクロコンピュータ100及び払出制御用マイクロコンピュータ150が所定の電源断処理を実行完了してから、動作停止信号としてのリセット信号を出力(ローレベルに設定)する。電源監視回路303から出力されたリセット信号を受信した遊技制御用マイクロコンピュータ100や払出制御用マイクロコンピュータ150は、動作停止状態となり、各種の制御処理の実行が停止される。また、パチンコ遊技機1への電力供給が開始され、例えば所定電圧(一例としてVCC)が所定値(一例として+5V強)を超えたときに、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)する。
図4は、パチンコ遊技機1への電力供給が開始されたとき、及び電力供給が停止するときにおける、AC24V、VLP、VCC、リセット信号及び電源断信号の状態を、模式的に示すタイミング図である。図4に示すように、パチンコ遊技機1への電力供給が開始されたときに、VLP及びVCCは徐々に規定値(直流+24V及び直流+5V)に達する。このとき、VLPが第1の所定値を超えると、電源監視回路303は電源断信号の出力を停止(ハイレベルに設定)してオフ状態とする。また、VCCが第2の所定値を超えると、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)してオフ状態とする。他方、パチンコ遊技機1への電力供給が停止するときに、VLP及びVCCは徐々に低下する。このとき、VLPが第1の所定値にまで低下すると、電源監視回路303は電源断信号をオン状態として出力(ローレベルに設定)する。また、VCCが第2の所定値にまで低下すると、電源監視回路303はリセット信号をオン状態として出力(ローレベルに設定)する。
図3に示す電源基板10が備えるクリアスイッチ304は、例えば押しボタン構造を有し、押下などの操作に応じてクリア信号を出力する。クリア信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。クリアスイッチ304から出力されたクリア信号は、例えば所定のコネクタや信号ラインを介して、主基板11へと伝送され、主基板11から払出制御基板15へと伝送される。また、クリアスイッチ304の操作がなされていないときには、クリア信号の出力を停止(ハイレベルに設定)する。なお、クリアスイッチ304は、押しボタン構造以外の他の構成(例えばスライドスイッチ構造やトグルスイッチ構造、ダイヤルスイッチ構造など)であってもよい。
図2に示す主基板11は、メイン側の制御基板であり、パチンコ遊技機1における遊技の進行を制御するための各種回路が搭載されている。主基板11は、主として、特図ゲームにおいて用いる乱数の設定機能、所定位置に配設されたスイッチ等からの信号の入力を行う機能、演出制御基板12や払出制御基板15などからなるサブ側の制御基板に宛てて、それぞれに指令情報の一例となる制御コマンドを制御信号として出力して送信する機能、ホールの管理コンピュータに対して各種情報を出力する機能などを備えている。また、主基板11は、特別図柄表示装置4を構成する各セグメントの点灯/消灯制御を行うことにより特別図柄表示装置4における特別図柄の変動表示を制御する一方で、普通図柄表示器40の点灯/点滅/発色制御を行うことにより普通図柄表示器40における普通図柄の変動表示を制御する。
図2に示すように、主基板11には、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24からの検出信号を受信するための配線が接続されている。なお、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24は、例えばセンサと称されるものなどのように、遊技媒体としての遊技球を検出できる任意の構成を有するものであればよい。ここで、始動口スイッチ22は、遊技球が始動入賞口に入賞したことを検出し、特別図柄表示装置4による特図ゲームを実行するための始動条件が成立したことを示す始動入賞信号を出力する始動入賞検出スイッチとなる。
加えて、主基板11には、普通可変入賞球装置6における可動翼片の傾動制御を行うための指令信号をソレノイド81に送信するための配線や、特別可変入賞球装置7における開閉板の開閉制御を行うための指令信号をソレノイド82に送信するための配線が接続されている。さらに、主基板11には、特別図柄表示装置4や普通図柄表示器40の表示制御を行うための指令信号を送信するための配線が接続されている。
主基板11から演出制御基板12に向けて出力される制御信号は、中継基板18によって中継される。ここで、主基板11には、例えば中継基板18に対応して主基板側コネクタが設けられるとともに、この主基板側コネクタと遊技制御用マイクロコンピュータ100との間に、出力バッファ回路が接続されていてもよい。この出力バッファ回路は、例えば主基板11から中継基板18を介して演出制御基板12へ向かう方向にのみ制御信号を通過させることができ、中継基板18から主基板11への信号の入力を阻止する。従って、演出制御基板12や中継基板18の側から主基板11の側に信号が伝わる余地はない。
中継基板18には、例えば主基板11から演出制御基板12に対して出力される制御信号を伝送するための配線毎に、伝送方向規制回路が設けられていればよい。各伝送方向規制回路は、主基板11に対応して設けられた主基板用コネクタにアノードが接続されるとともに演出制御基板12に対応して設けられた演出制御基板用コネクタにカソードが接続されたダイオードと、一端がダイオードのカソードに接続されるとともに他端がグランド(GND)接続された抵抗とから構成されている。この構成により、各伝送方向規制回路は、演出制御基板12から中継基板18への信号の入力を阻止して、主基板11から演出制御基板12へ向かう方向にのみ信号を通過させることができる。従って、演出制御基板12の側から主基板11側に信号が伝わる余地はない。なお、主基板への不正な信号の入力を防ぐために、主基板とサブ基板との間にサブ基板から主基板への信号入力を規制する一方向データ転送手段を設けたものは既に提案されている(例えば、特開平8−224339号公報などを参照)。しかしながら、主基板と一方向データ転送手段との間には主基板への信号入力を規制するものがないため、一方向データ転送手段に改変を加えることで主基板に不正な信号を入力させることが可能であった。この実施の形態では、中継基板18において制御信号を伝送するための配線毎に伝送方向規制回路を設けるとともに、主基板11にて遊技制御用マイクロコンピュータ100と主基板側コネクタの間に出力バッファ回路を設けることで、外部から主基板11への不正な信号の入力を、より確実に防止することができる。
演出制御基板12は、主基板11とは独立したサブ側の制御基板であり、中継基板18を介して主基板11から送信された制御コマンドを受信して、画像表示装置5、スピーカ8L、8R及び遊技効果ランプ9といった演出用の電気部品を制御するための各種回路が搭載されている。すなわち、演出制御基板12は、画像表示装置5における表示動作や、スピーカ8L、8Rからの音声出力動作、遊技効果ランプ9におけるランプの点灯動作及び消灯動作などを制御する機能を備えている。演出制御基板12には、音声制御基板13やランプ制御基板14に制御信号を伝送する配線や、画像表示装置5に画像データ信号を伝送する配線などが接続されている。
主基板11と払出制御基板15との間では、例えば双方向でシリアル通信を行うことにより、各種の制御コマンドや通知信号が伝送される。払出制御基板15は、主基板11とは独立したサブ側の制御基板であり、主基板11から送信された制御コマンドや通知信号を受信して、払出モータ51による遊技球の払出動作を制御するための各種回路が搭載されている。すなわち、払出制御基板15は、払出モータ51による賞球の払出動作を制御する機能を備えている。また、払出制御基板15は、インタフェース基板20を介したカードユニット70との通信結果に応じて払出モータ51の駆動制御を行って、球貸し動作を制御する機能を備えている。払出制御基板15には、満タンスイッチ26や球切れスイッチ27からの検出信号を受信するための配線や、払出モータ位置センサ71や払出カウントスイッチ72、エラー解除スイッチ73からの検出信号を受信するための配線が接続されている。加えて、払出制御基板15には、払出モータ51における遊技球の払出制御を行うための指令信号を送信するための配線や、エラー表示用LED74における表示制御を行うための指令信号を送信するための配線、インタフェース基板20を介してカードユニット70との間で通信を行うための配線などが接続されている。
ここで、満タンスイッチ26は、例えば遊技盤2の背面下方にて打球供給皿と余剰球受皿の間を連通する余剰球通路の側壁に設置され、余剰球受皿の満タンを検出するためのものである。賞球または球貸し要求に基づく遊技球が多数払い出されて打球供給皿が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は余剰球通路を経て余剰球受皿へと導かれる。さらに遊技球が払い出されると、例えば所定の感知レバーが満タンスイッチ26を押圧してオンする。
また、球切れスイッチ27は、例えば遊技盤2の背面にて遊技球を払出モータ51が設置された払出装置へと誘導する誘導レールの下流に設置され、誘導レールの下流にてカーブ樋を介して連通された2列の球通路内における遊技球の有無を検出するためのものである。一例として、球切れスイッチ27は、球通路に27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止され、球貸しの一単位の最大払出個数(例えば100円分に相当する25個)以上が確保されていることを確認可能にする。なお、誘導レールは、遊技盤2の背面上方にて補給球としての遊技球を貯留する貯留タンクからの遊技球を払出装置へと誘導するものであり、球通路の下部には、払出モータ51が設置された払出装置が固定されている。
エラー解除スイッチ73は、払出制御用マイクロコンピュータ150が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。エラー表示用LED74は、例えば7セグメントLEDにより構成され、払出制御用マイクロコンピュータ150にてセットされたエラーフラグなどに基づいて、各種のエラーに対応するエラーコードを表示するためのものである。
図2に示す発射制御基板17は、操作ノブ30の操作量に応じて、所定の発射装置による遊技球の発射動作を制御するためのものである。発射制御基板17には、例えば電源基板10あるいは主基板11からの駆動信号を伝送する配線や、インタフェース基板20及び払出制御基板15を介してカードユニット70からの接続信号を伝送する配線、及び操作ノブ30からの配線が接続されるとともに、発射モータ61への配線が接続されている。なお、カードユニット70からの接続信号は、払出制御基板15にて分岐されて発射制御基板17に伝送されてもよいし、カードユニット70からインタフェース基板20を介し、払出制御基板15を経由せずに発射制御基板17に伝送されてもよい。発射制御基板17は、操作ノブ30の操作量に対応して発射モータ61の駆動力を調整する。発射モータ61は、例えば発射制御基板17により調整された駆動力により発射バネを弾性変形させ、発射バネの付勢力を打撃ハンマに伝達して遊技球を打撃することにより、遊技球を操作ノブ30の操作量に対応した速度で遊技領域に向けて発射させる。
中継基板18を介して主基板11から演出制御基板12に対して送信される制御コマンドは、例えば電気信号として伝送される演出制御コマンドである。演出制御コマンドには、例えば画像表示装置5における画像表示動作を制御するために用いられる表示制御コマンドや、スピーカ8L、8Rからの音声出力を制御するために用いられる音声制御コマンド、遊技効果ランプ9や装飾用LEDの点灯動作などを制御するために用いられるランプ制御コマンドが含まれている。図5は、この実施の形態で用いられる表示制御コマンドの内容の一例を示す説明図である。表示制御コマンドは、例えば2バイト構成であり、1バイト目はMODE(コマンドの分類)を示し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(第7ビット[ビット7])は必ず“1”とされ、EXTデータの先頭ビットは“0”とされる。なお、図5に示された表示制御コマンドの形態は一例であって、他のコマンド形態を用いてもよい。また、この例では、表示制御コマンドが2バイト構成であるとしているが、表示制御コマンドを構成するバイト数は、1であってもよいし、3以上の複数であってもよい。この実施の形態では、表示制御コマンドとして、可変表示開始コマンド、表示結果通知コマンド、大当り開始コマンド、大当り終了コマンド、エラー報知開始#1〜#3のコマンドなどが、予め用意されている。
図5に示す例において、コマンド80XXhは、特別図柄表示装置4による特図ゲームで特別図柄の変動表示を開始するときに送信される可変表示開始コマンドである。なお、XXhは、不特定の16進数であることを示し、表示制御コマンドによる指示内容に応じて任意に設定される値であればよい。可変表示開始コマンドは、例えば特別図柄表示装置4における特別図柄の変動表示を開始してから確定特別図柄を停止表示するまでの時間である特別図柄の可変表示時間(総変動時間)や、飾り図柄の可変表示態様をリーチとしてからハズレとなるリーチハズレとするか、リーチとすることなくハズレとなる通常ハズレとするかなどを示すEXTデータを含んでいる。
ここで、リーチとは、画像表示装置5にて導出表示した飾り図柄が大当り組合せの一部を構成しているときに未だ導出表示していない飾り図柄(リーチ変動図柄という)については変動表示が行われている表示態様、あるいは、全て又は一部の飾り図柄が大当り図柄の全て又は一部を構成しながら同期して変動表示している表示態様のことである。具体的には、予め定められた組合せ有効ライン上の一部の可変表示部に予め定められた大当り組合せを構成する図柄を停止表示しているときに未だ停止表示していない組合せ有効ライン上の可変表示部において変動表示が行われている表示態様(例えば、表示領域に設けられた「左」、「中」、「右」の可変表示部のうち「左」、「右」の可変表示部には大当り図柄の一部となる(例えば「7」)が停止表示されている状態で「中」の可変表示部は未だ変動表示が行われている表示態様)、あるいは、有効ライン上の可変表示部の全て又は一部の飾り図柄が大当り図柄の全て又は一部を構成しながら同期して変動表示している表示態様(例えば、表示領域に設けられた「左」、「中」、「右」の可変表示部の全てで変動表示が行われてどの状態が表示されても同一の飾り図柄が揃っている態様で変動表示が行われている表示態様)である。また、リーチの際に、通常と異なる演出がランプや音などで行われることがある。この演出をリーチ演出という。また、リーチの際に、画像表示装置5にてキャラクタ(人物等を模した演出表示であり、飾り図柄とは異なるもの)を表示させたり、背景の表示態様を変化させたり、飾り図柄の変動表示態様を変化させたりすることがある。このキャラクタの表示や背景の表示態様、飾り図柄の変動態様の変化を、リーチ演出表示という。
コマンド90XXhは、特別図柄表示装置4における特図ゲームでの確定特別図柄や、遊技状態が高確率状態となる確変大当りとなるか否かなどを示す表示結果通知コマンドである。具体的な一例として、コマンド9000hは、特図ゲームでの確定特別図柄がハズレ図柄となることを示すコマンドである。また、コマンド9001hは、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であること、及び遊技状態が高確率状態にはならない通常大当りであることを示すコマンドである。さらに、コマンド9002hは、特図ゲームでの確定特別図柄が大当り図柄としての「7」を示す特別図柄であること、及び遊技状態が高確率状態になる確変大当りであることを示すコマンドである。こうした表示結果通知コマンドに基づき、演出制御基板12の側では、飾り図柄の可変表示が行われた後に停止表示される飾り図柄の表示結果の種類をハズレとするか通常大当りとするか確変大当りとするかを決定することが可能になる。
コマンドA000hは、特別図柄表示装置4による特図ゲームや画像表示装置5における飾り図柄の可変表示にて大当りとなったことにより、大当り遊技状態が開始されることを示す大当り開始コマンドである。コマンドA100hは、大当り遊技状態が終了することを示す大当り終了コマンドである。
コマンドD000hは、主基板11に搭載された乱数回路112にて乱数を発生させるために生成されるクロック信号に異常が発生したことにより、乱数回路112での乱数生成動作に異常が発生した旨の報知を開始させるために送信されるエラー報知開始#1のコマンドである。コマンドD001hは、画像表示装置5における飾り図柄の可変表示態様をリーチとする旨の決定が所定回数(例えば10回)の可変表示を超えて連続して行われたときに、乱数回路112での乱数生成動作に異常が発生した旨の報知を開始させるために送信されるエラー報知開始#2のコマンドである。コマンドD002hは、画像表示装置5における飾り図柄の可変表示態様をリーチとすることなくハズレとする通常ハズレの決定が所定回数(例えば50回)の可変表示を超えて連続して行われたときに、乱数回路112での乱数生成動作に異常が発生した旨の報知を開始させるために送信されるエラー報知開始#3のコマンドである。
主基板11から払出制御基板15に対して送信される制御コマンドは、例えば電気信号として伝送される払出制御コマンドである。なお、払出制御コマンドは、主基板11に搭載された遊技制御用マイクロコンピュータ100が備えるCPU103(図9)によって払出制御コマンドを送信するための設定が行われ、その設定に基づいて遊技制御用マイクロコンピュータ100が備えるシリアル通信回路107(図9)により払出制御基板15に対して送信されるものである。以下の説明では、主基板11から払出制御基板15に対する払出制御コマンドの送信動作に、こうした遊技制御用マイクロコンピュータ100に設けられたCPU103やシリアル通信回路107による一連の動作が含まれているものとする。また、払出制御基板15から主基板11に対しては、例えば電気信号としての払出通知コマンドなどが送信される。なお、払出通知コマンドは、払出制御基板15に搭載された払出制御用マイクロコンピュータ150が備えるCPU213(図27)によって払出通知コマンドを送信するための設定が行われ、その設定に基づいて払出制御用マイクロコンピュータ150が備えるシリアル通信回路217(図27)により主基板11に対して送信されるものである。以下の説明では、払出制御基板15から主基板11に対する払出通知コマンドの送信動作に、こうした払出制御用マイクロコンピュータ150に設けられたCPU213やシリアル通信回路217による一連の動作が含まれているものとする。加えて、以下の説明では、主基板11及び払出制御基板15のいずれか一方から他方に対する所定動作の指令だけでなく、一方での動作状態を他方に通知する通知信号も、払出制御コマンドや払出通知コマンドに含まれるものとする。
図6は、主基板11と払出制御基板15との間で送受信されるコマンドの構成例を示す説明図である。図6(A)に示すように、主基板11から払出制御基板15に対して送信される払出制御コマンドと、払出制御基板15から主基板11に対して送信される払出通知コマンドは、いずれも2バイト構成であり、1バイト目を反転させることで2バイト目となるように構成されている。そして、各バイトの先頭ビット(第7ビット[ビット7])をヘッダとして、そのヘッダを異ならせることにより、1バイト目と2バイト目の区別を可能にしている。例えば、1バイト目におけるヘッダは“0”の固定値に設定されている一方で、2バイト目におけるヘッダは“1”の固定値に設定されている。
主基板11から払出制御基板15に対して送信される払出制御コマンドには、払出数指定コマンドやACKフィードバックコマンドが含まれている。払出数指定コマンドは、払い出すべき賞球の数を示すコマンドであり、例えば図6(B)に示すようなビット値で構成されている。ここで、払出数指定コマンドにおける1バイト目及び2バイト目の第3〜第0ビット[ビット3−0]は、払い出すべき賞球の個数に応じて設定される値であればよい。図6(C)には、この実施の形態で用いられる払出数指定コマンドが16進数表示で示されている。図6(C)に示すコマンドE11Ehは、払い出すべき賞球個数が15個であることを示す第1払出数指定コマンドである。コマンドEC13hは、払い出すべき賞球個数が4個であることを示す第2払出数指定コマンドである。この実施の形態では、始動口スイッチ22で遊技球が検出されると4個の賞球払出を行い、カウントスイッチ24で遊技球が検出されると15個の賞球払出を行う。
払出制御基板15の払出制御に応じて遊技球を払い出すための回転動作を行う払出モータ51は、例えば図7に示すような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の回転位置を検出するためのセンサであり、カム89の回転不能による球噛みを検出するために用いられる。払出ケースの内部に設けられた球通路90の下部には、例えば近接スイッチによる払出カウントスイッチ72が配置されている。払出カウントスイッチ72は、球通路90から1個の遊技球が落下するごとにオンして、所定の検出信号を払出制御基板15に送信する。
図6(C)に示すコマンドF00Fhは、払出制御基板15から主基板11に対して送信された賞球ACKコマンドを主基板11の側で受信したことを示す受信確認受付信号となるACKフィードバックコマンドである。
図6(D)は、払出制御基板15から主基板11に対して送信される払出通知コマンドの構成例を示す説明図である。払出通知コマンドには、賞球ACKコマンド、払出エラー通知コマンド、払出エラー解除コマンドが含まれている。図6(D)に示すコマンドA0F5hは、主基板11から払出制御基板15に対して送信された払出数指定コマンドを払出制御基板15の側で受信したことを示す受信確認信号となる賞球ACKコマンドである。コマンドB0F4hは、払出制御基板15の側において遊技球の払出に関わる異常が発生した旨を主基板11の側に通知するための払出エラー通知コマンドである。コマンドB1E4hは、払出制御基板15の側で発生したエラーが解除された旨を主基板11の側に通知するための払出エラー解除コマンドである。
図2に示すように、主基板11には、遊技制御用マイクロコンピュータ100や基準クロック信号生成回路111、乱数回路112、スイッチ回路114、ソレノイド回路115が搭載されている。
遊技制御用マイクロコンピュータ100は、例えば1チップのマイクロコンピュータであり、パチンコ遊技機1における遊技の進行を制御するための各種処理を実行する。基準クロック信号生成回路111は、所定の周波数(例えば20MHz)を有する内部システムクロックとして用いられる基準クロック信号CLKを生成する。乱数回路112は、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定するために用いられる大当り判定用の乱数値R1を発生する。スイッチ回路114は、ゲートスイッチ21、始動口スイッチ22、V入賞スイッチ23、カウントスイッチ24などの各種スイッチからの検出信号や、各種センサからの検出信号を取り込み、遊技制御用マイクロコンピュータ100に伝送する。ソレノイド回路115は、遊技制御用マイクロコンピュータ100からの指令に従って各ソレノイド81、82に対する駆動信号を出力する。
図8は、乱数回路112の一構成例を示すブロック図である。また、図8には、始動口スイッチ22や遊技制御用マイクロコンピュータ100、基準クロック信号生成回路111なども示されている。乱数回路112は、図8に示すように、クロック信号出力回路171と、初期値設定回路172と、乱数生成回路173と、タイマ回路174と、ラッチ信号生成回路175と、乱数値レジスタ176とを備えている。
クロック信号出力回路171は、基準クロック信号生成回路111から供給される基準クロック信号CLKを入力して、例えば基準クロック信号CLKと同一周期を有するクロック信号、あるいは基準クロック信号CLKを16分周したクロック信号を、乱数生成用のクロック信号S1として出力する。また、クロック信号出力回路171は、クロック信号S1と同一周期で位相が異なるクロック信号S2を出力する。例えば、クロック信号出力回路171は、クロック信号S1を遅延回路あるいは反転回路に入力することにより、クロック信号S1と同一周期で立上がりタイミングや立下がりタイミングが異なるクロック信号S2を生成してもよい。
また、クロック信号出力回路171は、例えば基準クロック信号CLKと同一周期を有するクロック信号S1を生成する場合に、基準クロック信号CLKを2逓倍した信号をD型フリップフロップ回路のクロック端子に入力し、逆相出力端子(反転出力端子)からの出力信号をD入力端子に接続することで、正相出力端子(非反転出力端子)からクロック信号S1を出力させる一方、逆相出力端子(反転出力端子)からクロック信号S2を出力させるようにしてもよい。この場合、D型フリップフロップ回路の正相出力端子(非反転出力端子)からは基準クロック信号CLKと同一周波数のクロック信号S1が出力される一方、逆相出力端子(反転出力端子)からはクロック信号S1の逆相信号、すなわちクロック信号S1と同一周波数でクロック信号S1とは位相がπ(=180°)だけ異なるクロック信号S2が出力されることになる。
クロック信号出力回路171から出力されたクロック信号S1は、乱数生成回路173のクロック端子に入力されて、カウント用クロック信号として用いられる。また、クロック信号S1は、遊技制御用マイクロコンピュータ100にも入力される。クロック信号出力回路171から出力されたクロック信号S2は、ラッチ信号生成回路175のクロック端子に入力されて、ラッチ用クロック信号として用いられる。
初期値設定回路172は、パチンコ遊技機1への電力供給が開始された後に乱数回路112にて乱数の発生を開始する際における1周目の初期値の設定や、乱数生成回路173が所定の初期値から所定の最終値まで循環的に数値データを更新したときに新たな初期値の設定などを行う。初期値設定回路172は、設定した初期値を示す初期値設定信号SKを出力して、乱数生成回路173に入力させる。
乱数生成回路173は、例えばクロック信号出力回路171から供給されるクロック信号S1の立上がりエッジなどに応答して、出力するカウント値Cを所定の初期値から所定の最終値まで、予め定められた順序に従って循環的に更新する。具体的な一例として、乱数生成回路173は、16ビットのバイナリカウンタを用いて構成され、クロック信号S1の立上がりエッジに応答して、「1」から「65535」までの範囲内で設定された初期値から「65535」までカウント値Cを1ずつカウントアップする。そして、「65535」までカウントアップした後には、「1」から初期値よりも1小さい最終値となる数値まで1ずつカウントアップすることで、数値データを循環的に更新する。
また、乱数生成回路173は、例えばカウント値Cを所定の初期値から所定の最終値まで循環的に更新したときなどに、カウント値Cの更新順である順列を変更するようにしてもよい。具体的な一例として、乱数生成回路173は、クロック信号S1の立上がりエッジに応答して「1」から「65535」までの範囲内で所定の初期値から所定の最終値まで1ずつカウントアップするカウンタと、カウンタから出力された数値データを所定の更新規則に従った順列に変更可能とする乱数列変更回路とを備え、乱数列変更回路がカウンタから出力された数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行することで、カウント値Cの更新順である順列を任意に設定できるようにしてもよい。
タイマ回路174は、始動口スイッチ22からオン状態の始動入賞信号SS1が入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、始動入賞信号SS1を出力して、ラッチ信号生成回路175に入力させる。例えば、タイマ回路174は、アップカウンタまたはダウンカウンタを用いて構成され、始動入賞信号SS1がオン状態となったことに応答して起動する。この場合、タイマ回路174は、始動入賞信号SS1がオン状態となっている期間において、基準クロック信号生成回路111から入力される基準クロック信号CLKの立上がりエッジなどに応答して所定のタイマ値をアップカウントまたはダウンカウントすることにより、始動入賞信号SS1がオン状態である時間を計測する。そして、アップカウントまたはダウンカウントしたタイマ値が3ミリ秒に対応する値に達したときに、ラッチ信号生成回路175への出力信号をオン状態とすることで、始動入賞信号SS1を出力する。
ラッチ信号生成回路175は、例えばD型フリップフロップ回路などを用いて構成される。具体的な一例として、ラッチ信号生成回路175を構成するD型フリップフロップ回路のD入力端子にタイマ回路174の出力端子からの配線が接続され、クロック端子にクロック信号出力回路171から出力されるクロック信号S2を伝送する配線が接続されていればよい。ラッチ信号生成回路175は、タイマ回路174から出力される始動入賞信号SS1を、クロック信号出力回路171から出力されるクロック信号S2の立上がりエッジに同期して出力することにより、ラッチ信号SLを生成し、乱数値レジスタ176に入力させる。
乱数値レジスタ176は、例えば16ビットレジスタなどを用いて構成され、乱数生成回路173から出力されるカウント値Cを、大当り判定用の乱数値R1として格納する。より具体的には、乱数値レジスタ176は、ラッチ信号生成回路175から入力されるラッチ信号SLの立上がりエッジに応答して、乱数生成回路173から入力されるカウント値Cを、大当り判定用の乱数値R1としてラッチして記憶することで、乱数回路112に始動口スイッチ22からの始動入賞信号SS1が入力されるごとに、記憶する大当り判定用の乱数値R1を更新する。また、乱数値レジスタ176は、遊技制御用マイクロコンピュータ100からの出力制御信号SCがオフ状態であるときに読出不能(ディセイブル)状態となり、出力制御信号SCがオン状態であるときに読出可能(イネイブル)状態となる。加えて、乱数値レジスタ176は、出力制御信号SCがオン状態であるときには、ラッチ信号SLに対して受信不能状態となり、ラッチ信号生成回路175から入力されるラッチ信号SLが立ち上がっても記憶データが更新されないようにしてもよい。
図9は、主基板11に搭載された遊技制御用マイクロコンピュータ100の一構成例を示すブロック図である。図9に示す遊技制御用マイクロコンピュータ100は、クロック回路101と、リセット/割込みコントローラ102と、CPU103と、ROM104と、RAM105と、タイマ回路(PIT)106と、シリアル通信回路(SCI)107と、入出力ポート108とを備えている。
遊技制御用マイクロコンピュータ100では、遊技の進行を制御するために、各種の乱数となる数値データが用いられる。具体的な一例として、CPU103は、乱数回路112による乱数生成動作の設定や、遊技制御用マイクロコンピュータ100内に設けられたランダムカウンタの設定などを行い、数値データを所定の手順に従って定期的(あるいは不定期)に更新させる。図10は、主基板11の側にてカウントされる乱数値を例示する説明図である。図10に示すように、この実施の形態では、主基板11の側において、大当り判定用の乱数値R1、確変判定用の乱数値R2、初期値決定用の乱数値R3、リーチ判定用の乱数値R4を示す数値データを、カウント可能に制御する。なお、遊技効果を高めるために、例えば可変表示パターン決定用の乱数値などといった、上記以外の乱数値が用いられてもよい。この実施の形態では、乱数回路112により大当り判定用の乱数値R1がカウントされる一方、乱数回路112とは異なるランダムカウンタの値をソフトウェアにより更新することで、確変判定用の乱数値R2や初期値決定用の乱数値R3、リーチ判定用の乱数値R4などがカウントされる。
大当り判定用の乱数値R1は、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かの判定を行うために用いられる乱数値であり、「1」〜「65535」の範囲の値をとる。すなわち、大当り判定用の乱数値R1は、特別図柄表示装置4による特図ゲームにおける可変表示結果の種類を大当りとするかハズレとするかの判定を行うために用いられる。確変判定用の乱数値R2は、特図ゲームにて大当りとする旨の判定がなされたときに、確変大当りとするか通常大当りとするかを判定するために用いられる乱数値であり、例えば「1」〜「100」の範囲の値をとる。初期値決定用の乱数値R3は、確変判定用の乱数値R2におけるカウント初期値を決定するために用いられる乱数値であり、確変判定用の乱数値R2と同様に、例えば「1」〜「100」の範囲の値をとる。リーチ判定用の乱数値R4は、飾り図柄の可変表示態様をリーチとするか否かを判定するために用いられる乱数値であり、例えば「1」〜「10」の範囲の値をとる。
クロック回路101は、遊技制御用マイクロコンピュータ100内の各回路にクロック信号を供給するための回路である。具体的な一例として、クロック回路101は、その入力端子に入力された外部クロックを分周するなどして、内部システムクロックとなるクロック信号を生成し、生成したクロック信号をCPU103などの遊技制御用マイクロコンピュータ100内の各回路に供給する。
リセット/割込みコントローラ102は、遊技制御用マイクロコンピュータ100内で発生する各種リセット、割込み要求を制御するためのものである。リセット/割込みコントローラ102が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、所定のSRST端子に一定の期間にわたりローレベルの信号が入力されたときに発生するリセットである。ユーザリセットは、所定のURST端子に一定の期間にわたりローレベルの信号が入力されたことや、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したこと、指定エリア外走行禁止(IAT)信号が発生したこと、あるいは、インターバルリセット信号が発生したことなど、所定の要因により発生するリセットである。
また、リセット/割込みコントローラ102が制御する割込みには、Xクラス割込み(XIRQ)、Iクラス割込み(IRQ)、ソフトウェア割込み(SWI)、イリーガルオペコードトラップ(ILGOP)といった4種類の割込みが含まれている。Xクラス割込みは、所定のXIRQ端子に一定の期間にわたりローレベルの信号が入力されたときに発生する割込みである。Iクラス割込みは、ユーザプログラムにより割込み要求の受付を許可/禁止できる割込みであり、所定のIRQ端子に一定の期間にわたりローレベルの信号が入力されたことや、タイマ回路106からの割込み要求信号が発生したこと、シリアル通信回路107からの割込み要求信号が発生したことなど、予め定められた各種の割込み要因により発生する割込みである。
CPU103は、ROM104に記憶されているユーザプログラムやデータを読み出し、RAM105をワークエリアとして使用して、プログラムに従った制御動作を行う。図11は、遊技制御用マイクロコンピュータ100におけるアドレスマップの一例を示す図である。図11に示すように、0000h番地〜01FFh番地の領域は、RAM105に割り当てられたワークエリアである。また、1000h番地〜101Ch番地の領域は、タイマ回路106やシリアル通信回路107等が備える内蔵レジスタに割り当てられた内蔵レジスタエリアである。2000h番地〜200Fh番地の領域は、遊技制御用マイクロコンピュータ100に内蔵されたアドレスデコーダに割り当てられたチップセレクト信号デコードエリアである。E000h番地〜FFFFhの領域は、ROM104に割り当てられており、ユーザプログラム管理エリアとユーザプログラム/データエリアとを含んでいる。
ROM104に割り当てられたE080h番地〜FFFFh番地の領域であるユーザプログラム/データエリアには、ユーザにより予め作成されたユーザプログラムやユーザデータが記憶される。ROM104に割り当てられたE000h番地〜E07Fh番地の領域であるユーザプログラム管理エリアには、CPU103がユーザプログラムを実行する際に用いられてパチンコ遊技機1の動作内容を設定するためのユーザプログラム管理データが記憶される。
図12は、図11に示すユーザプログラム管理エリアにおけるアドレスマップの一例を示す図である。図12に示すように、ユーザプログラム管理エリアに含まれるE00Ah番地〜E011h番地の領域には、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーなどといった、所定のマイクロコンピュータ固有値が記憶されている。
ユーザプログラム管理エリアに含まれるE01Bh番地の領域には、遊技制御用マイクロコンピュータ100にて発生する複数種類のIクラス割込み(IRQ)の要因のうちで、最も優先度を高くするものを設定する最優先割込み設定(KHPR)を示すデータが記憶される。図13(A)は、E01Bh番地の領域に記憶される最優先割込み設定データの設定例を示す説明図である。また、図13(B)は、最優先割込み設定データの具体的な設定の一例として、デフォルトにおける割込み要因の優先順位と、E01Bh番地の領域に「05h」を設定した場合における割込み要因の優先順位とを示している。
図13(B)に示すように、E01Bh番地の領域に最優先割込み設定データを設定しないデフォルトの状態では、リセット/割込みコントローラ102が備えるIRQ端子への信号入力による割込み要因が最も優先順位が高く、続いてタイマ回路106の各チャネル(CH0〜CH3)からの割込み要求の優先順位が高く、シリアル通信回路107からのエラー割込み要求、受信割込み要求、送信割込み要求の順番で優先順位が低くなるように設定されている。すなわち、デフォルトの状態でも、シリアル通信回路107からの割込み要求のうちではエラー割込み要求が、受信割込み要求や送信割込み要求といった他の割込み要因に比べて優先度が高くなっている。そのため、シリアル通信回路107からのエラー割込み要求に基づく割込み処理は、シリアル通信回路107からのエラー割込み要求とは異なる受信割込み要求や送信割込み要求などに基づく割込み処理に比べて、優先して実行されることになる。
また、E01Bh番地の領域に最優先割込み設定データとして「05h」を設定した場合には、シリアル通信回路107からのエラー割込み要求の優先順位が、IRQ端子への信号入力による割込み要因や、タイマ回路106からの割込み要求の優先順位よりも高くなり、遊技制御用マイクロコンピュータ100にて発生する複数種類のIクラス割込み(IRQ)の要因のうちで、最も優先度が高くなる。このように、E01Bh番地の領域に最優先割込み設定データを設定することで、複数種類のIクラス割込み(IRQ)の要因における優先順位を、デフォルトの設定から変更することができる。
図12に示すE01Ch番地の領域には、乱数回路112の初期設定を行うために用いられる乱数初期設定(KRSS)を示すデータが記憶される。図14は、E01Ch番地の領域に記憶される乱数初期設定(KRSS)を示すデータの内容を例示する説明図である。
図14に示すように乱数初期設定データは8ビットのデータとして構成されるが、第7及び第6ビット[ビット7−6]は未使用となっている。乱数初期設定データの第5ビット[ビット5]は、乱数回路112にて生成される乱数値の更新周期についての設定を示している。図14に示す例では、乱数初期設定データの第5ビット[ビット5]が“0”であるときには乱数回路112にて生成する乱数値を内部システムクロックとなる基準クロック信号CLKの周期で更新することを示し、“1”であるときには乱数回路112にて生成される乱数値を内部システムクロックとなる基準クロック信号CLKの16倍の周期で更新することを示している。
図14に示す乱数初期設定データの第4ビット[ビット4]は、乱数回路112にて生成される乱数値における1周目のスタート値となる初期値についての設定を示している。図14に示す例では、乱数初期設定データの第4ビット[ビット4]が“0”であるときには乱数値における1周目のスタート値をデフォルト値である「0000h」(16ビット値の16進数表示)とすることを示し、“1”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値とすることを示している。
図14に示す乱数初期設定データの第3及び第2ビット[ビット3−2]は、乱数回路112にて生成される乱数値における2周目以降のスタート値となる初期値についての設定を示している。図14に示す例では、乱数初期設定データの第3及び第2ビット[ビット3−2]が“00”であるときには乱数値におけるスタート値の変更を行わないことを示し、“01”であるときには遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値をスタート値とすることを示し、“10”であるときにはユーザRAMであるRAM105における格納データの加算値をスタート値とすることを示し、“11”であるときにはユーザRAMであるRAM105における指定アドレスの格納値をスタート値とすることを示している。
図14に示す乱数初期設定データの第1及び第0ビット[ビット1−0]は、乱数回路112にて生成される乱数値における乱数列(順列)の変更方法についての設定を示している。図14に示す例では、乱数初期設定データの第1及び第0ビット[ビット1−0]が“00”であるときには順列を変更しないことを示し、“10”であるときには2周目以降にてユーザプログラムによる変更を可能とすることを示し、“11”であるときには2周目以降にて自動的に変更することを示している。
図12に示すE022h番地の領域と、E023h番地の領域には、シリアル通信回路107の初期設定を行うために用いられる第1のシリアル通信初期設定(KSCM1)を示すデータと、第2のシリアル通信初期設定(KSCM2)を示すデータが記憶される。図15(A)は、E022h番地の領域に記憶される第1のシリアル通信初期設定(KSCM1)を示すデータの内容を例示する説明図である。図15(B)は、E023h番地の領域に記憶される第2のシリアル通信初期設定(KSCM2)を示すデータの内容を例示する説明図である。
図15(A)及び(B)に示すように、第1及び第2のシリアル通信初期設定データはいずれも8ビットのデータから構成されるが、第1のシリアル通信初期設定データの第7及び第6ビット[ビット7−6]と、第2のシリアル通信初期設定データの第7〜第4ビット[ビット7−4]は、未使用となっている。図15(A)に示す第1シリアル通信初期設定データの第5ビット[ビット5]は、送信データエンプティ時の割込みを使用するか否かの設定を示している。ここで、送信データエンプティ時の割込みは、シリアル通信回路107の送信動作部202(図20)に設けられた送信データレジスタから送信用シフトレジスタにデータが転送されたときに発生する割込みであり、シリアル通信回路107にて発生する送信割込みに含まれる。図15(A)に示す例では、第1シリアル通信初期設定データの第5[ビット5]が“0”であるときには送信データエンプティ時の割込みを発生させないことを示し、“1”であるときには送信データエンプティ時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第4ビット[ビット4]は、送信完了時の割込みを使用するか否かの設定を示している。ここで、送信完了時の割込みは、シリアル通信回路107の送信動作部202によるデータ送信動作が完了したときに発生する割込みであり、シリアル通信回路107にて発生する送信割込みに含まれる。図15(A)に示す例では、第1シリアル通信初期設定データの第4ビット[ビット4]が“0”であるときには送信完了時の割込みを発生させないことを示し、“1”であるときには送信完了時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第3ビット[ビット3]は、受信データ転送時の割込みを使用するか否かの設定を示している。ここで、受信データ転送時の割込みは、シリアル通信回路107の受信動作部201(図20)に設けられた受信用シフトレジスタの値が受信データレジスタに転送されたときに発生する割込みであり、シリアル通信回路107にて発生する受信割込みに含まれる。図15(A)に示す例では、第1シリアル通信初期設定データの第3ビット[ビット3]が“0”であるときには受信データ転送時の割込みを発生させないことを示し、“1”であるときには受信データ転送時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第2ビット[ビット2]は、アイドルライン検出時の割込みを使用するか否かの設定を示している。ここで、アイドルライン検出時の割込みは、シリアル通信回路107の受信動作部201における受信データとして1フレーム分の“1”からなるアイドルラインが検出されたときに発生する割込みであり、シリアル通信回路107にて発生する受信割込みに含まれる。図15(A)に示す例では、第1シリアル通信初期設定データの第2ビット[ビット2]が“0”であるときにはアイドルライン検出時の割込みを発生させないことを示し、“1”であるときにはアイドルライン検出時の割込みを発生させることを示している。
第1シリアル通信初期設定データの第1ビット[ビット1]は、シリアル通信回路107の送信動作部202を使用するか否かの設定を示している。図15(A)に示す例では、第1シリアル通信初期設定データの第1ビット[ビット1]が“0”であるときには送信動作部202によるシリアル送信を使用しないことを示し、“1”であるときには送信動作部202によるシリアル送信を使用することを示している。
第1シリアル通信初期設定データの第0ビット[ビット0]は、シリアル通信回路107の受信動作部201を使用するか否かの設定を示している。図15(A)に示す例では、第1シリアル通信初期設定データの第0ビット[ビット0]が“0”であるときには受信動作部201によるシリアル受信を使用しないことを示し、“1”であるときには受信動作部201によるシリアル受信を使用することを示している。
図15(B)に示す第2シリアル通信初期設定データの第3ビット[ビット3]は、オーバーランエラー時の割込みを使用するか否かの設定を示している。ここで、オーバーランエラー時の割込みは、シリアル通信回路107における受信データがユーザプログラムによって読出される以前に、受信動作部201に設けられた受信用シフトレジスタが次のデータを受信したときに発生するエラーに基づく割込みであり、シリアル通信回路107にて発生するエラー割込みに含まれる。図15(B)に示す例では、第2シリアル通信初期設定データの第3ビット[ビット3]が“0”であるときにはオーバーランエラー時の割込みを発生させないことを示し、“1”であるときにはオーバーランエラー時の割込みを発生させることを示している。
第2シリアル通信初期設定データの第2ビット[ビット2]は、ノイズエラー時の割込みを使用するか否かの設定を示している。ここで、ノイズエラー時の割込みは、シリアル通信回路107にて受信したデータのノイズを検出したときに発生するエラーに基づく割込みであり、シリアル通信回路107にて発生するエラー割込みに含まれる。図15(B)に示す例では、第2シリアル通信初期設定データの第2ビット[ビット2]が“0”であるときにはノイズエラー時の割込みを発生させないことを示し、“1”であるときにはノイズエラー時の割込みを発生させることを示している。
第2シリアル通信初期設定データの第1ビット[ビット1]は、フレーミングエラー時の割込みを使用するか否かの設定を示している。ここで、フレーミングエラー時の割込みは、シリアル通信回路107にて受信したデータのストップビットに“0”を検出したときに発生するエラーに基づく割込みであり、シリアル通信回路107にて発生するエラー割込みに含まれる。図15(B)に示す例では、第2シリアル通信初期設定データの第1ビット[ビット1]が“0”であるときにはフレーミングエラー時の割込みを発生させないことを示し、“1”であるときにはフレーミングエラー時の割込みを発生させることを示している。
第2シリアル通信初期設定データの第0ビット[ビット0]は、パリティエラー時の割込みを使用するか否かの設定を示している。ここで、パリティエラー時の割込みは、シリアル通信回路107にて受信したデータのパリティと受信データ内におけるパリティビットとが一致しないときに発生するエラーに基づく割込みであり、シリアル通信回路107にて発生するエラー割込みに含まれる。図15(B)に示す例では、第2シリアル通信初期設定データの第0ビット[ビット0]が“0”であるときにはパリティエラー時の割込みを発生させないことを示し、“1”であるときにはパリティエラー時の割込みを発生させることを示している。
このように、シリアル通信回路107にて発生するエラー割込みには、パリティエラー時の割込みと、オーバーランエラー時の割込みと、フレーミングエラー時の割込みと、ノイズエラー時の割込みといった、4種類の割込みが含まれている。
図9に示す遊技制御用マイクロコンピュータ100が備えるROM104には、ゲーム制御用のユーザプログラムの他にも、遊技の進行を制御するために用いられる各種のデータテーブルが格納されている。例えば、ROM104は、CPU103が各種の判定や決定を行うために用意された複数の判定テーブルや決定テーブルを構成するテーブルデータを記憶する。この判定テーブルには、特別図柄表示装置4による特図ゲームにて確定図柄を大当り図柄とするか否かを判定するために参照される大当り判定テーブルや、画像表示装置5における飾り図柄の可変表示態様をリーチとするか否かを判定するために参照されるリーチ判定テーブルなどが含まれている。ROM104に記憶される大当り判定テーブルの一例として、この実施の形態では、図16(A)に示す通常時大当り判定テーブル140と、図16(B)に示す確変時大当り判定テーブル141とが、予め用意されている。
通常時大当り判定テーブル140及び確変時大当り判定テーブル141はそれぞれ、大当り判定用の乱数値R1が、特図ゲームの表示結果を大当りとすることを示す大当り判定値データと合致するか、特図ゲームの表示結果をハズレとすることを示すハズレ判定値データと合致するかを、判定可能にする設定データなどから構成されている。そして、確変時大当り判定テーブル141では、通常時大当り判定テーブル140に比べてより多くの乱数値R1が、大当り判定値データと合致するように設定されている。すなわち、確率向上状態では確変時大当り判定テーブル141を用いて特図ゲームの表示結果を決定することで、通常時大当り判定テーブル140を用いて特図ゲームの表示結果を決定する通常遊技状態のときよりも高い確率で、大当り遊技状態とする旨の判定がなされることになる。
この実施の形態において、図16(A)に示す通常時大当り判定テーブル140では、乱数回路112にて生成される大当り判定用の乱数値R1がとる値の範囲である「1」〜「65335」のうち「2001」〜「2184」が「大当り」とすることを示す大当り判定値データと合致する旨の判定がなされるように設定される。これに対して、図16(B)に示す確変時大当り判定テーブル141では、乱数回路112にて生成される大当り判定用の乱数値R1がとる値の範囲である「1」〜「65335」のうち「2001」〜「3104」が「大当り」とすることを示す大当り判定値データと合致する旨の判定がなされるように設定される。
また、ROM104に記憶されるリーチ判定テーブルの一例として、この実施の形態では、図17に示すリーチ判定テーブル142が予め用意されている。リーチ判定テーブル142は、リーチ判定用の乱数値R4が、飾り図柄の可変表示態様をリーチとすることを示すリーチ判定値データと合致するか、飾り図柄の可変表示態様をリーチとしないことを示す通常ハズレ判定値データと合致するかを、判定可能にする設定データなどから構成されている。
大当り判定テーブルやリーチ判定テーブル以外の判定テーブルとしては、特図ゲームにおける可変表示結果を「大当り」とするときに確変大当りとするか通常大当りとするかを判定するために参照される確変判定テーブルなどがある。また、ROM104に記憶される決定テーブルには、特図ゲームでの可変表示結果として導出表示する確定特別図柄を決定するための確定特別図柄決定テーブルや、特別図柄表示装置4による特図ゲームや画像表示装置5における飾り図柄の可変表示中での図柄等の可変表示パターンを決定するための可変表示パターン決定テーブル、各種の演出表示を実行するか否かを決定するための演出表示実行決定テーブルなどが含まれている。可変表示パターン決定テーブルとしては、大当り時可変表示パターン決定テーブル、リーチ時可変表示パターン決定テーブル、通常ハズレ時可変表示パターン決定テーブルなどが、予め用意されていればよい。各可変表示パターン決定テーブルは、可変表示パターン決定用の乱数値に基づいて、特別図柄表示装置4にて開始される特図ゲームや画像表示装置5において開始される飾り図柄の可変表示にて使用する可変表示パターンを決定するための決定用データから構成されていればよい。
遊技制御用マイクロコンピュータ100が備えるRAM105には、パチンコ遊技機1における遊技状態などを制御するために用いられる各種のデータを保持する領域として、例えば図18に示すような遊技制御用データ保持エリア130が設けられている。また、RAM105の少なくとも一部は、電源基板10において作成されるバックアップ電源によってバックアップされているバックアップRAMである。すなわち、パチンコ遊技機1への電力供給が停止しても、所定期間はRAM105の少なくとも一部の内容は保存される。この実施の形態では、RAM105の全体がバックアップされているバックアップRAMであるものとする。図18に示す遊技制御用データ保持エリア130は、特図保留記憶部131と、確定特別図柄記憶部132と、遊技制御フラグ設定部133と、遊技制御タイマ設定部134と、遊技制御カウンタ設定部135と、遊技制御バッファ設定部136とを備えている。
特図保留記憶部131は、普通可変入賞球装置6に設けられた始動入賞口に遊技球が入賞して特別図柄表示装置4による特図ゲームを実行するための始動条件が成立したものの、従前の特図ゲームを実行中である等の理由のために可変表示を開始するための開始条件が成立していない特図ゲームに関する保留情報を記憶する。例えば、特図保留記憶部131は、始動入賞口への入賞順に保留番号と関連付けて、その入賞による始動条件の成立に基づいて乱数回路112から読み出された大当り判定用の乱数値R1を示す数値データを保留データとして、その数が所定の上限値(例えば「4」)に達するまで記憶する。
確定特別図柄記憶部132は、特別図柄表示装置4による特図ゲームにて可変表示結果として導出表示される確定特別図柄を示すデータを記憶する。遊技制御フラグ設定部133は、パチンコ遊技機1における遊技状態やスイッチ回路114を介して各入賞口スイッチ等から伝送された信号などに応じて、各々セットあるいはクリアされる複数種類のフラグを設定するためのデータを記憶する。遊技制御タイマ設定部134は、パチンコ遊技機1での遊技制御に用いられる複数種類のタイマ値を示すデータを記憶する。遊技制御カウンタ設定部135は、パチンコ遊技機1での遊技制御に用いられる複数種類のカウント値を示すデータを記憶する。遊技制御バッファ設定部136は、パチンコ遊技機1での遊技制御に用いられる各種のデータを一時的に記憶する。なお、フラグ設定やカウンタ/タイマに用いる回路は、RAM105とは別に設けたレジスタ回路などによって構成してもよい。
遊技制御フラグ設定部133には、例えばクリアフラグや、メインバックアップフラグ、シリアル通信エラーフラグ、送信設定可能フラグ、送信完了フラグ、始動入賞フラグ、特別図柄プロセスフラグ、大当りフラグ、確変中フラグ、確変確定フラグなどが設けられている。
クリアフラグは、パチンコ遊技機1への電力供給が開始されたときに電源基板10が備えるクリアスイッチ304からのクリア信号がオン状態となっているか否かを示す。すなわち、電力供給の開始時にクリア信号がオン状態であればクリアフラグがオン状態にセットされる一方、クリア信号がオフ状態であればクリアフラグはオフ状態に保持される。メインバックアップフラグは、パチンコ遊技機1への電力供給が停止されたときに遊技制御用マイクロコンピュータ100により所定の記憶保護処理が実行されたか否かを示す。例えば、メインバックアップフラグの値として「55H」が設定されているときにはバックアップあり(オン状態)を示す一方、「55H」以外の値が設定されているときにはバックアップなし(オフ状態)を示している。
シリアル通信エラーフラグは、シリアル通信回路107での通信動作においてエラーが発生したことを示す。例えば、シリアル通信エラーフラグは、シリアル通信回路107からのエラー割込み要求に応答してオン状態にセットされる。送信設定可能フラグは、シリアル通信回路107にてデータ送信を行うための設定が可能となったことを示す。例えば、送信設定可能フラグは、シリアル通信回路107からの送信データエンプティ時の割込み要求に応答してオン状態にセットされる。送信完了フラグは、シリアル通信回路107にてデータ送信が完了したことを示す。例えば、送信完了フラグは、シリアル通信回路107からの送信完了時の割込み要求に応答してオン状態にセットされる。始動入賞フラグは、始動口スイッチ22から入力される始動入賞信号SS1が所定期間(例えば4ミリ秒間)にわたり継続してオン状態であるときにオン状態にセットされる一方、始動入賞信号SS1がオフ状態であるときにクリアされてオフ状態となる。
特別図柄プロセスフラグは、特別図柄表示装置4に対応して実行される特別図柄プロセス処理(図35のステップS78、及び図39)において、どの処理を選択・実行すべきかを示す。大当りフラグは、特別図柄表示装置4による特図ゲームを開始するときに、その特図ゲームにおける可変表示結果が大当りとなる旨の判定がなされると、オン状態にセットされる。その後、特図ゲームにて大当りとなったことに基づく大当り遊技状態が終了するときには、大当りフラグはクリアされてオフ状態となる。確変中フラグは、特別図柄表示装置4による特図ゲームにおける可変表示結果が確変大当りとなり、大当りとなったことに基づく大当り遊技状態が終了するときなどに、オン状態にセットされる。他方、確変中フラグは、例えば高確率状態における特図ゲームの実行回数が所定の確変終了基準値に達したときや、特図ゲームにおける可変表示結果が通常大当りとなるときなどに、クリアされてオフ状態となる。確変確定フラグは、特別図柄表示装置4による特図ゲームを開始するときに、可変表示結果を確変大当りにする旨の判定がなされると、オン状態にセットされる。他方、大当り遊技状態が終了するときには、確変確定フラグはクリアされてオフ状態となる。
遊技制御タイマ設定部134には、例えば第1及び第2監視用タイマ、始動口スイッチタイマ、可変表示時間タイマなどが設けられている。第1監視用タイマは、乱数回路112が備えるクロック信号出力回路171から供給されるクロック信号S1がハイレベルであることに応じて加算される一方、ローレベルであることに応じてクリアされるタイマである。第2監視用タイマは、乱数回路112が備えるクロック信号出力回路171から供給されるクロック信号S1がローレベルであることに応じて加算される一方、ハイレベルであることに応じてクリアされるタイマである。
始動口スイッチタイマは、始動口スイッチ22から入力される始動入賞信号SS1がオン状態である期間を計測するために用いられるタイマであり、例えば始動入賞信号SS1がオン状態であるときにタイマ値を定期的に1ずつアップカウントまたはダウンカウントする。他方、始動入賞信号SS1がオフ状態であるときには、始動口スイッチタイマがクリアされて所定のタイマ初期値に設定される。可変表示時間タイマは、特図ゲームにおける特別図柄の可変表示時間(総変動時間)を計測するためのものである。
遊技制御カウンタ設定部135には、例えばウェイトカウンタや、払出通知コマンド受信カウンタ、払出制御コマンド送信カウンタ、リーチ回数カウンタ、通常ハズレ回数カウンタ、確変判定用乱数カウンタ、初期値決定用乱数カウンタなどが設けられている。また、遊技制御カウンタ設定部135には、高確率状態や時間短縮状態における特図ゲームの実行回数をカウントするための可変表示回数カウンタなどが設けられていてもよい。
ウェイトカウンタは、パチンコ遊技機1への電力供給が開始されて遊技制御用マイクロコンピュータ100による遊技制御処理(遊技の進行を制御するための処理)の実行が可能な状態となったときに、遊技制御処理の実行を開始するタイミングを遅延させるために用いられる。例えば、ウェイトカウンタには、パチンコ遊技機1への電力供給が開始されて遊技制御用マイクロコンピュータ100が起動したときに、所定の遅延時間に対応した初期化ウェイト回数指定値がセットされる。その後、ウェイトカウンタの値であるウェイトカウント値を順次に減算するなどの更新処理が行われ、その値が所定の遅延終了判定値に達したときに、遊技制御処理の実行が開始される。
払出通知コマンド受信カウンタは、払出制御基板15から受信したコマンドの個数を特定可能にカウントするためのものである。払出制御コマンド送信カウンタは、払出制御基板15に対して送信待ちとなっているコマンドの個数を特定可能にカウントするためのものである。
リーチ回数カウンタは、画像表示装置5における飾り図柄の可変表示態様をリーチとする旨の判定が連続して行われた回数をカウントするためのものである。通常ハズレ回数カウンタは、画像表示装置5における飾り図柄の可変表示態様をリーチとはせずにハズレの可変表示結果を導出表示する旨の判定が連続して行われた回数をカウントするためのものである。
確変判定用乱数カウンタは、確変判定用の乱数値R2のカウントを行うために用いられるカウンタである。初期値決定用乱数カウンタは、初期値決定用の乱数値R3のカウントを行うために用いられるカウンタである。ここで、確変判定用の乱数値R2における更新周期と初期値決定用の乱数値R3における更新周期との同期を防止するために、例えば、遊技制御用タイマ割込み処理(図35)が実行されるごとに、確変判定用の乱数値R2が1ずつアップカウントされるのに対して、初期値決定用の乱数値R3は3ずつアップカウントされるようにしてもよい。
遊技制御バッファ設定部136には、例えばメインチェックサムバッファや乱数初期値バッファ、コマンド受信用バッファ、コマンド送信用バッファなどが設けられている。メインチェックサムバッファは、パチンコ遊技機1への電力供給が停止されるときにRAM105の特定領域における記憶データを用いて算出されたチェックサムを保存するためのものである。乱数初期値バッファは、CPU103が初期値決定用乱数カウンタから読み出した初期値決定用の乱数値R3を、確変判定用の乱数値R2における初期値として記憶しておくためのものである。
コマンド受信用バッファは、主基板11にてサブ側の制御基板から受信したコマンドを一時的に格納するために用いられる。図19は、コマンド受信用バッファに含まれる払出用受信コマンドバッファ191の構成例を示す図である。払出用受信コマンドバッファ191は、払出制御基板15から受信したコマンドを一時的に格納するためのものである。図19に示す払出用受信コマンドバッファ191は、12個の受信コマンドバッファ#1〜#12を備えており、払出制御基板15から受信したコマンドを格納する受信コマンドバッファは、払出通知コマンド受信カウンタで指定される。各受信コマンドバッファ#1〜#12は、例えば1バイト(8ビット)で構成され、複数の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の受信コマンドを6個格納することができる。
コマンド送信用バッファは、主基板11からサブ側の制御基板に対して送信するコマンドを一時的に格納するために用いられる。図20は、コマンド送信用バッファに含まれる払出用送信コマンドバッファ192の構成例を示す図である。払出用送信コマンドバッファ192は、主基板11から払出制御基板15に対して送信するコマンドを一時的に格納するためのものである。図20に示す払出用送信コマンドバッファ192は、12個の送信コマンドバッファ#1〜#12を備えており、主基板11から払出制御基板15に対して送信待ちとなるコマンドを格納するコマンドバッファは、払出制御コマンド送信カウンタで指定される。各送信コマンドバッファ#1〜#12は、例えば1バイト(8ビット)で構成され、複数の送信コマンドバッファをリングバッファとして使用することにより、2バイト構成の送信コマンドを6個格納することができる。また、コマンド送信用バッファには、主基板11から演出制御基板12に対して送信するコマンドを一時的に格納するための演出用送信コマンドバッファが含まれてもよい。
その他にも、遊技制御用データ保持エリア130には、通過ゲートを通過した遊技球がゲートスイッチ21によって検出されて普通図柄表示器40による普通図ゲームを実行するための始動条件が成立したものの、従前の普通図ゲームを実行中である等の理由のために可変表示を開始するための開始条件が成立していない普通図ゲームに関する保留情報を記憶する普通図保留記憶部などを備えていてもよい。このように、特図ゲームや普通図ゲームに関する保留情報は、主基板11に設けられた遊技制御用データ保持エリア130などに記憶され、CPU103による特図ゲームや普通図ゲームの制御に用いられる。
図9に示す遊技制御用マイクロコンピュータ100が備えるタイマ回路106は、例えば8ビットのプログラマブルカウンタを4チャネル(CH0〜CH3)内蔵して構成され、リアルタイム割込みの発生や時間計測を可能とする回路である。例えば、タイマ回路106では、チャネルごとに予め設定したカウント値から所定周期でのカウントダウンを開始し、カウント値が「00」となったチャネルがあるときには、そのチャネルに対応した割込みフラグをオン状態にセットする。このとき、割込許可状態であれば、タイマ回路106がリセット/割込みコントローラ102に対して割込み要求を発生する。
遊技制御用マイクロコンピュータ100が備えるシリアル通信回路107は、例えば全二重、非同期、標準NRZ(Non Return to Zero)フォーマットで通信データを取扱う回路であり、図21に例示するような構成を有している。図21に例示するシリアル通信回路107は、受信動作部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に供給するデータを格納したりすることで、シリアル通信回路107とCPU103との間での通信データのやり取りを可能にする回路であり、例えば1バイト(8ビット)で構成されている。
シリアルステータスレジスタ204は、シリアル通信回路107における動作状態を確認するためのレジスタであり、例えば図22(A)に示すように、第1レジスタSIST1と、第2レジスタSIST2とを備えて構成されている。図22(A)に示す第1レジスタSIST1の第7ビット[ビット7]は、送信データエンプティフラグを示すビット(TDRE)である。例えば、送信動作部202が備える送信用データレジスタから送信用シフトレジスタにデータが転送されたときに、第1レジスタSIST1の第7ビット[ビット7]が“1”に設定されてオン状態となる。
図22(A)に示す第1レジスタSIST1の第6ビット[ビット6]は、送信完了フラグを示すビット(TC)である。例えば、送信動作部202が備える送信用シフトレジスタに格納されたデータの送信が完了したときに、第1レジスタSIST1の第6ビット[ビット6]が“1”に設定されてオン状態となる。第1レジスタSIST1の第5ビット[ビット5]は、受信データフルフラグを示すビット(RDRF)である。例えば、受信動作部201が備える受信用シフトレジスタに格納されたデータが受信データレジスタに転送されたときに、第1レジスタSIST1の第5ビット[ビット5]が“1”に設定されてオン状態となる。
図22(A)に示す第1レジスタSIST1の第4ビット[ビット4]は、アイドルライン検出フラグを示すビット(IDLE)である。例えば、受信動作部201における受信データ内で所定のアイドルラインが検出されたときに、第1レジスタSIST1の第4ビット[ビット4]が“1”に設定されてオン状態となる。第1レジスタSIST1の第3ビット[ビット3]は、オーバーランエラーフラグを示すビット(OR)である。例えば、受信動作部201における受信動作中にオーバーランエラーが検出されたときに、第1レジスタSIST1の第3ビット[ビット3]が“1”に設定されてオン状態となる。
図22(A)に示す第1レジスタSIST1の第2ビット[ビット2]は、ノイズエラーフラグを示すビット(NF)である。例えば、受信動作部201における受信動作中にノイズエラーが検出されたときに、第1レジスタSIST1の第2ビット[ビット2]が“1”に設定されてオン状態となる。第1レジスタSIST1の第1ビット[ビット1]は、フレーミングエラーフラグを示すビット(FE)である。例えば、受信動作部201における受信動作中にフレーミングエラーが検出されたときに、第1レジスタSIST1の第1ビット[ビット1]が“1”に設定されてオン状態となる。
図22(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は、シリアル通信回路107における通信フォーマットや各種エラー割込み要求の許可/禁止などを設定するためのレジスタであり、例えば図22(B)に示すように、第1〜第3レジスタSICL1〜SICL3を備えて構成されている。図22(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のウエイクアップに設定される。
図22(B)に示す第1レジスタSICL1の第2ビット[ビット2]は、アイドルラインの検出方式を選択するためのビット(ILT)である。例えば、第1レジスタSICL1の第2ビット[ビット2]が“0”であるときにはスタートビットの後から検出する方式に設定され、“1”であるときにはストップビットの後から検出する方式に設定される。第1レジスタSICL1の第1ビット[ビット1]は、パリティ機能を使用するか否かを設定するためのビット(PE)である。例えば、第1レジスタSICL1の第1ビット[ビット1]が“0”であるときにはパリティ機能を使用しないものと設定され、“1”であるときにはパリティ機能を使用するものと設定される。
図22(B)に示す第1レジスタSICL1の第0ビット[ビット0]は、パリティ機能を使用する場合におけるパリティの種類を選択するためのビット(PT)である。例えば、第1レジスタSICL1の第0ビット[ビット0]が“0”であるときには偶数パリティを使用するものと設定され、“1”であるときには奇数パリティを使用するものと設定される。
図22(B)に示す第2レジスタSICL2の第7ビット[ビット7]は、送信割込み要求の許可/禁止を設定するためのビット(TIE)である。例えば、第2レジスタSICL2の第7ビット[ビット7]が“0”であるときには送信割込み要求が禁止され、“1”であるときには送信割込み要求が許可される。第2レジスタSICL2の第6ビット[ビット6]は、送信完了割込み要求の許可/禁止を設定するためのビット(TCIE)である。例えば、第2レジスタSICL2の第6ビット[ビット6]が“0”であるときには送信完了割込み要求が禁止され、“1”であるときには送信完了割込み要求が許可される。
図22(B)に示す第2レジスタSICL2の第5ビット[ビット5]は、受信割込み要求の許可/禁止を設定するためのビット(RIE)である。例えば、第2レジスタSICL2の第5ビット[ビット5]が“0”であるときには受信割込み要求が禁止され、“1”であるときには受信割込み要求が許可される。第2レジスタSICL2の第4ビット[ビット4]は、アイドルライン割込み要求の許可/禁止を設定するためのビット(ILIE)である。例えば、第2レジスタSICL2の第4ビット[ビット4]が“0”であるときにはアイドルライン割込み要求が禁止され、“1”であるときにはアイドルライン割込み要求が許可される。
図22(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を使用するものと設定される。
図22(B)に示す第2レジスタSICL2の第1ビット[ビット1]は、受信ウエイクアップを使用するか否かを設定するためのビット(RWU)である。例えば、第2レジスタSICL2の第1ビット[ビット1]が“0”であるときには受信ウエイクアップを使用しないものと設定され、“1”であるときには受信ウエイクアップを使用するものと設定される。第2レジスタSICL2の第0ビット[ビット0]は、ブレークコード送信を使用するか否かを設定するためのビット(SBK)である。例えば、第2レジスタSICL2の第0ビット[ビット0]が“0”であるときにはブレークコード送信を使用しないものと設定され、“1”であるときにはブレークコード送信を使用するものと設定される。
図22(B)に示す第3レジスタSICL3の第7ビット[ビット7]は、データビットを9ビットに設定したときの受信データにおける9ビット目を格納するためのビット(R8)である。第3レジスタSICL3の第6ビット[ビット6]は、データビットを9ビットに設定したときの送信データにおける9ビット目を格納するためのビット(T8)である。
図22(B)に示す第3レジスタSICL3の第3ビット[ビット3]は、オーバーランエラー時における割込み要求の許可/禁止を設定するためのビット(ORIE)である。例えば、第3レジスタSICL3の第3ビット[ビット3]が“0”であるときにはオーバーランエラー時における割込み要求が禁止され、“1”であるときにはオーバーランエラー時における割込み要求が許可される。第3レジスタSICL3の第2ビット[ビット2]は、ノイズエラー時における割込み要求の許可/禁止を設定するためのビット(NEIE)である。例えば、第3レジスタSICL3の第2ビット[ビット2]が“0”であるときにはノイズエラー時における割込み要求が禁止され、“1”であるときにはノイズエラー時における割込み要求が許可される。
図22(B)に示す第3レジスタSICL3の第1ビット[ビット1]は、フレーミングエラー時における割込み要求の許可/禁止を設定するためのビット(FEIE)である。例えば、第3レジスタSICL3の第1ビット[ビット1]が“0”であるときにはフレーミングエラー時における割込み要求が禁止され、“1”であるときにはフレーミングエラー時における割込み要求が許可される。第3レジスタSICL3の第0ビット[ビット0]は、パリティエラー時における割込み要求の許可/禁止を設定するためのビット(PEIE)である。例えば、第3レジスタSICL3の第0ビット[ビット0]が“0”であるときにはパリティエラー時における割込み要求が禁止され、“1”であるときにはパリティエラー時における割込み要求が許可される。
図9に示す遊技制御用マイクロコンピュータ100が備える入出力ポート108は、遊技制御用マイクロコンピュータ100に伝送された各種信号を取り込むための入力ポートと、遊技制御用マイクロコンピュータ100の外部へと各種信号を伝送するための出力ポートとを含んで構成されている。
図23は、入出力ポート108に含まれる入力ポートにおけるビット割当ての一例を示す説明図である。図23に示すように、入力ポート#0のビット0〜7には、それぞれ、払出制御基板15からの電源断信号、乱数回路112からのクロック信号S1、電源基板10からのクリア信号、リセット信号、V入賞スイッチ23からの検出信号、カウントスイッチ24からの検出信号、ゲートスイッチ21からの検出信号、始動口スイッチ22からの検出信号(始動入賞信号SS1)が入力される。入力ポート#1、#2には、乱数回路112からの乱数値出力信号SO0〜SO15が入力される。乱数値出力信号SO0〜SO15は、乱数回路112から読み出した大当り判定用の乱数値R1となる16ビットデータにおける各ビット値を示している。
図24は、入出力ポート108に含まれる出力ポートにおけるビット割当ての一例を示す説明図である。図24に示すように、出力ポート#0からは、特別可変入賞球装置7において大入賞口を開閉するためのソレノイド82に対する駆動信号や、普通可変入賞球装置6において可動翼片を傾動させるためのソレノイド81に対する駆動信号が出力される。また、出力ポート#0からは、払出制御基板15に対するクリア信号、あるいは演出制御基板12に対する演出制御INT信号、乱数回路112に対する出力制御信号SCも出力される。演出制御INT信号は、演出制御コマンドを構成する8ビットのデータを取り込む(受信する)ことを演出制御基板12に対して指令するための取込信号である。出力ポート#1は、演出制御基板12に対して送信される演出制御コマンドを示す8ビットのデータ(演出制御出力データD0〜D7)の出力ポートである。
図2に示すように、演出制御基板12には、演出制御用マイクロコンピュータ120が搭載されている。また、演出制御基板12には、演出制御コマンドの受信に用いられるコマンド受信回路や、演出制御用マイクロコンピュータ120からの描画コマンドに応じて画像データを生成するVDP(Video Display Processor)などが搭載されていてもよい。演出制御用マイクロコンピュータ120は、例えば1チップマイクロコンピュータであり、ROM121と、RAM122と、CPU123と、I/Oポート124とを含んでいる。また、演出制御用マイクロコンピュータ120は、CPU123とは独立して乱数値を示す数値データの生成を行う乱数回路などを含んでいてもよい。中継基板18を介して主基板11から送信された制御信号は、所定のコネクタやI/Oポート124内の入力ポートを介して、CPU123に入力される。また、音声制御基板13に対する制御信号は、CPU123からI/Oポート124内の出力ポートや所定のコネクタを介して、音声制御基板13へと出力される。ランプ制御基板14に対する制御信号は、CPU123からI/Oポート124内の出力ポートや所定のコネクタを介して、ランプ制御基板14へと出力される。
なお、演出制御基板12と画像表示装置5の間には、画像データにおける解像度を変換するためのスケーラ回路が設けられていてもよい。この場合、演出制御基板12に搭載されたVDPが演出制御用マイクロコンピュータ120からの描画コマンドに応じて生成した画像データは、スケーラ回路により解像度が変換された後、画像表示装置5に供給される。具体的な一例として、スケーラ回路は、VDPによって生成された第1の解像度による画像データを入力し、垂直方向及び水平方向のいずれか一方あるいは双方について、以下のような処理を施すことにより、入力された画像データを第1の解像度とは異なる第2の解像度に変換する。
例えば、垂直方向における解像度を変換する場合には、入力された画像データの垂直方向に沿って第1のサンプルレートでアップサンプリングを行った後、予め用意されたフィルタ(例えばFIRフィルタ)によるフィルタリング処理を施す。その後、垂直方向に沿って所定のスケーリング係数に対応する第2のサンプルレートでダウンサンプリングを行うようにすればよい。また、水平方向における解像度を変換する場合には、入力された画像データの水平方向に沿って、垂直方向と同じようなアップサンプリング、フィルタリング処理及びダウンサンプリングを行うようにすればよい。具体的な一例として、VDPによってVGAモード(640×480ピクセル)の画像データが生成された場合に、スケーラ回路における変換処理により、その画像データをSXGAモード(1280×1024ピクセル)、あるいは他のモードに変換することが可能になる。
演出制御用マイクロコンピュータ120が備えるROM121には、演出の進行を制御するために用いられる各種のデータテーブル等が格納されている。例えば、ROM121は、主基板11からの可変表示開始コマンドにおけるEXTデータや表示結果通知コマンドで通知された特図ゲームでの確定特別図柄などに基づいてCPU123が演出に関する各種の判定や決定を行うために用意された複数種類の判定テーブルや決定テーブルを記憶する。
演出制御用マイクロコンピュータ120が備えるRAM122には、画像表示装置5における表示やスピーカ8L、8Rからの音声出力などによる演出動作を制御するために用いられる各種のデータを保持する領域として、例えば図25に示すような演出制御用データ保持エリア220が設けられている。図25に示す演出制御用データ保持エリア220は、確定飾り図柄記憶部221と、演出制御フラグ設定部222と、演出制御タイマ設定部223と、演出制御カウンタ設定部224と、演出制御バッファ設定部225とを備えている。
確定飾り図柄記憶部221は、画像表示装置5における飾り図柄の可変表示にて可変表示結果として導出表示される確定飾り図柄を示すデータを記憶する。演出制御フラグ設定部222は、例えば画像表示装置5の表示状態などといった演出動作状態や主基板11から送信された演出制御コマンド等に応じて、各々セットあるいはクリアされる複数種類のフラグを設定するためのデータを記憶する。演出制御タイマ設定部223は、例えば画像表示装置5での表示制御などといった演出制御に用いられる複数種類のタイマ値を示すデータを記憶する。演出制御カウンタ設定部224は、例えば画像表示装置5での表示制御などといった演出制御に用いられる複数種類のカウント値を示すデータを記憶する。なお、フラグ設定やカウンタ/タイマに用いる回路は、RAM122とは別に設けたレジスタ回路などによって構成してもよい。
演出制御フラグ設定部222には、例えばタイマ割込みフラグやエラー報知開始フラグ、演出制御プロセスフラグなどが設けられている。タイマ割込みフラグは、所定時間が経過して演出制御用マイクロコンピュータ120にてタイマ割込みが発生するごとにオン状態にセットされる。エラー報知開始フラグは、主基板11から送信されるエラー報知開始#1〜#3のコマンドのいずれかを受信したことに対応して、予め用意された複数種類の演出のいずれを選択・実行すべきかを示す。演出制御プロセスフラグは、演出の進行を制御するために実行される演出制御プロセス処理(図44のステップS505、及び図47)において、どの処理を選択・実行すべきかを示す。
演出制御タイマ設定部223には、例えば表示制御タイマなどが設けられている。表示制御タイマは、例えば画像表示装置5における飾り図柄の可変表示時間などといった、画像表示装置5の表示制御に関する時間を計測するためのものである。
演出制御カウンタ設定部224には、例えば演出制御コマンド受信カウンタなどが設けられている。演出制御コマンド受信カウンタは、主基板11から送信された演出制御コマンドの受信個数を特定可能にカウントするためのものである。
演出制御バッファ設定部225には、例えば図26に示すような演出側受信コマンドバッファ231などが設けられている。演出側受信コマンドバッファ231は、演出制御基板12にて受信した主基板11からのコマンドを一時的に格納するためのものである。図26に示す演出側受信コマンドバッファ231は、12個の受信コマンドバッファ#1〜#12を備えており、受信したコマンドを格納する受信コマンドバッファは、演出制御コマンド受信カウンタで指定される。各受信コマンドバッファ#1〜#12は、例えば1バイト(8ビット)で構成され、複数の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の受信コマンドを6個格納することができる。
図2に示すように、払出制御基板15には、払出制御用マイクロコンピュータ150やスイッチ回路161が搭載されている。スイッチ回路161には、満タンスイッチ26、球切れスイッチ27、払出モータ位置センサ71、払出カウントスイッチ72、エラー解除スイッチ73などの各種スイッチやセンサからの検出信号が入力される。スイッチ回路161は、これらの検出信号を取り込んで、払出制御用マイクロコンピュータ150に伝送する。
図27は、払出制御基板15に搭載された払出制御用マイクロコンピュータ150の構成例を示す図である。図27に示す払出制御用マイクロコンピュータ150は、例えば遊技制御用マイクロコンピュータ100と同様の1チップマイクロコンピュータであり、クロック回路211と、リセット/割込みコントローラ212と、CPU213と、ROM214と、RAM215と、タイマ回路(PIT)216と、シリアル通信回路(SCI)217と、入出力ポート218とを備えて構成されている。なお、払出制御用マイクロコンピュータ150が備えるクロック回路211などの各回路は、遊技制御用マイクロコンピュータ100が備える各回路と同様の構成を有するものであればよい。
払出制御用マイクロコンピュータ150が備えるROM214には、払出制御用のプログラムが記憶されている。払出制御用マイクロコンピュータ150では、例えばCPU213がROM214に記憶されている払出制御用のプログラムを読み出し、主基板11から送信された払出制御コマンドやカードユニット70との通信結果などに基づいて各種の処理を実行することにより、遊技球の払出動作を制御する。
払出制御用マイクロコンピュータ150が備えるRAM215には、遊技球の払出動作などを制御するために用いられる各種のデータを保持するための領域が設けられている。そして、払出制御用マイクロコンピュータ150が備えるRAM215の少なくとも一部は、電源基板10において作成されるバックアップ電源によってバックアップされているバックアップRAMであってもよい。すなわち、パチンコ遊技機1への電力供給が停止しても、所定時間は、払出制御用マイクロコンピュータ150が備えるRAM215の少なくとも一部の内容は保存される。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。主基板11では、電源基板10からの電力供給が開始され遊技制御用マイクロコンピュータ100へのリセット信号がハイレベル(オフ状態)になったことに応じて、遊技制御用マイクロコンピュータ100が起動し、図28のフローチャートに示すような遊技制御メイン処理が実行される。なお、以下に説明する各処理は、遊技制御用マイクロコンピュータ100が備えるCPU103によって実行されるものとする。また、遊技制御用マイクロコンピュータ100が備えるタイマ回路106やシリアル通信回路107などで発生した各種の割込み要因に基づく割込み要求は、CPU103に所定の割込み処理を実行させるためのものである。そして、CPU103やCPU103以外の各種回路を含んだ概念を遊技制御用マイクロコンピュータ100ということもあるものとする。図28に示す遊技制御メイン処理を開始すると、遊技制御用マイクロコンピュータ100では、まず、CPU103が割込禁止に設定し(ステップS1)、割込モードの設定を行う(ステップS2)。例えば、ステップS2では、遊技制御用マイクロコンピュータ100の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビットは“0”)とを合成することにより、あるいはCPU103がROM104の所定領域(例えば割込ベクタ領域)における記憶データを読み出すことにより、割込アドレスが生成されるマスク可能割込の割込モードが設定される。マスク可能な割込みが発生したときには、遊技制御用マイクロコンピュータ100が自動的に割込禁止状態となる設定を行うとともに、プログラムカウンタの内容がスタックにセーブされればよい。
続いて、例えばスタックポインタ指定アドレスの設定など、スタックポインタに関わる設定を行う(ステップS3)。また、内蔵デバイスレジスタの設定(初期化)を行う(ステップS4)。例えば、ステップS4の処理では、タイマ回路106や入出力ポート108といった内蔵デバイス(内蔵周辺回路)の設定(初期化)などが行われるとよい。
ステップS4の処理を実行した後には、例えば入出力ポート108に含まれる入力ポート#0における第0ビット[ビット0](図23)の状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定する(ステップS5)。パチンコ遊技機1への電力供給が開始されたときには、VCCなどの各種電源電圧が徐々に上昇して規定値に達する。ステップS5の処理では、電源断信号が出力されていないオフ状態(ハイレベル)となっていることを確認する。ここで、遊技制御用マイクロコンピュータ100は、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。なお、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
ステップS5にて電源断信号がオン状態であるときには(ステップS5;No)、所定時間(例えば0.1秒)が経過するまで待機した後(ステップS6)、ステップS5の処理に戻って、電源断信号がオフ状態となっているか否かの判定を再び行うようにする。これにより、遊技制御用マイクロコンピュータ100は、電源電圧が安定したことを確認することができる。そして、ステップS5にて電源断信号がオフ状態であるときには(ステップS5;Yes)、例えば入出力ポート108に含まれる入力ポート#0における第2ビット[ビット2](図23)の状態をチェックすることなどにより、クリア信号がオン状態となっているか否かを判定する(ステップS7)。このとき、クリア信号がオン状態であれば(ステップS7;Yes)、例えば遊技制御フラグ設定部133に設けられたクリアフラグをオン状態にセットする(ステップS8)。他方、クリア信号がオフ状態であるときには(ステップS7;No)、ステップS8の処理をスキップして、クリアフラグをオフ状態のままとする。
ここで、遊技制御用マイクロコンピュータ100は、入力ポートを介して1回だけクリア信号の状態を確認するようにしてもよいが、クリア信号の状態を複数回確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、クリア信号の状態をもう1回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
その後、遊技の進行を制御するための遊技制御処理の開始タイミングをソフトウェアの実行により遅延させる遅延処理の設定を行う(ステップS9)。具体的な一例として、遊技制御カウンタ設定部135に設けられたウェイトカウンタに、初期化ウェイト回数指定値をセットする。続いて、ステップS9での設定に基づく遅延処理を開始して、例えばウェイトカウンタにおけるカウント値を1減算するなど、遅延処理の実行に関わる設定の更新を行う(ステップS10)。そして、例えばウェイトカウンタにおけるカウント値が所定の遅延終了判定値に達したか否かを判定することなどにより、所定の遅延時間が経過したか否かを判定する(ステップS11)。ここで、遅延終了判定値を示すデータは、ROM104などに予め記憶されていればよい。例えば、遅延終了判定値は、遊技制御処理が実行可能状態となったときから、少なくとも払出制御基板15に搭載された払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されるまでの時間に比べて遅延時間の方が長くなるように、予め定められた基準値であればよい。
ステップS11にて遅延時間が経過していないときには(ステップS11;No)、ステップS10の処理に戻り、遅延時間が経過しているときには(ステップS11;Yes)、RAM105をアクセス可能に設定する(ステップS12)。続いて、クリアフラグがオンとなっているか否かを判定する(ステップS13)。クリアフラグがオフであるときには(ステップS13;No)、RAM105のデータチェックを行い、チェック結果が正常であるか否かを判定する(ステップS14)。ステップS14の処理では、例えばRAM105の特定領域における記憶データを用いてチェックサムを算出し、算出されたチェックサムとメインチェックサムバッファに記憶されているチェックサムとを比較する。ここで、メインチェックサムバッファには、前回の電力供給停止時に、同様の処理によって算出されたチェックサムが記憶されている。そして、比較結果が不一致であれば、RAM105の特定領域におけるデータが電力供給停止時のデータとは異なっていることから、チェック結果が正常でないと判断される。
ステップS14におけるチェック結果が正常であるときには(ステップS14;Yes)、遊技制御フラグ設定部133に設けられたメインバックアップフラグがオンとなっているか否かを判定する(ステップS15)。メインバックアップフラグの状態は、電力供給が停止するときに、遊技制御フラグ設定部133に設定される。そして、このメインバックアップフラグの設定箇所がバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、メインバックアップフラグの状態は保存されることになる。ステップS15では、例えばメインバックアップフラグの値として「55H」が遊技制御フラグ設定部133に設定されていれば、バックアップあり(オン状態)であると判断される。これに対して、「55H」以外の値が設定されていればバックアップなし(オフ状態)であると判断される。なお、ステップS15のようなメインバックアップフラグがオンとなっているか否かの判定を、ステップS14のようなチェック結果の判定よりも先に行い、メインバックアップフラグがオンであるときにRAM105のデータチェック結果が正常であるか否かを判定するようにしてもよい。
ステップS15にてメインバックアップフラグがオンであるときには(ステップS15;Yes)、メインバックアップフラグをクリアしてオフ状態とした後(ステップS16)、遊技制御用マイクロコンピュータ100の内部状態などを電力供給が停止されたときの状態に戻すための復旧時における設定を行う(ステップS17)。具体的な一例として、ステップS17の処理では、ROM104に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し、バックアップ時設定テーブルの内容を順次に、RAM105内の作業領域に設定する。ここで、RAM105の作業領域はバックアップ電源によってバックアップされており、バックアップ時設定テーブルには、作業領域のうちで初期化してもよい領域についての初期化データが設定されていてもよい。
また、ステップS13にてクリアフラグがオンであるときや(ステップS13;Yes)、ステップS14にてチェック結果が正常ではないとき(ステップS14;No)、あるいはステップS15にてメインバックアップフラグがオフであるときには(ステップS15;No)、RAM105の初期化を行う(ステップS18)。ステップS18の処理に続いて、遊技制御用マイクロコンピュータ100の内部状態などを初期状態とするための初期化時における設定を行う(ステップS19)。具体的な一例として、ステップS19の処理では、ROM104に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し、初期化時設定テーブルの内容を順次、RAM105内の作業領域に設定する。
ステップS17またはステップS19の処理を実行した後には、例えば遊技制御用マイクロコンピュータ100が備えるタイマ回路106のレジスタ設定などを行うことにより、所定時間(例えば2ミリ秒)ごとにタイマ割込みが発生するように遊技制御用マイクロコンピュータ100の内部設定を行う(ステップS20)。この後、CPU103がROM104から読み出した乱数初期設定データ(KRSS)に基づいて乱数生成動作の初期設定を行うための乱数初期設定処理を実行する(ステップS21)。
ステップS21の乱数初期設定処理に続いて、シリアル通信動作の初期設定を行うためのシリアル通信初期設定処理を実行する(ステップS22)。この後、割込み要求に基づいて実行される割込み処理に関する初期設定を行うための割込み初期設定処理を実行する(ステップS23)。そして、遊技制御用マイクロコンピュータ100は割込許可状態に設定して(ステップS24)、各種割込みの発生を待機する。このときには、電源断信号がオン状態となったか否か(出力されたか否か)の判定を行い(ステップS25)、オフであれば(ステップS25;No)、そのまま各種割込みの発生を待機する。また、電源断信号がオン状態となったときには(ステップS25;Yes)、メイン側電源断処理を実行した後(ステップS26)、所定のループ処理を実行して、電力供給の停止による遊技制御用マイクロコンピュータ100の動作停止まで待機する。なお、ステップS25の処理では、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。また、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。さらに、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。このように電源断信号の状態を複数回確認する場合には、例えば確認動作を開始するときや1回目の確認結果と2回目の確認結果とを比較して不一致であったときなどに、遊技制御用マイクロコンピュータ100に内蔵されたWDT(ウォッチドッグ・タイマ)をクリアするリトリガを行う。そして、リトリガが何らかの原因(例えばプログラムの暴走)で所定時間内に発生しなくなった場合には、WDTから出力されるタイムアウト信号に基づくユーザリセットを発生させ、リセット/割込みコントローラ102、CPU103、タイマ回路106、シリアル通信回路107などの各回路を初期化した後、所定のベクタテーブルで示されるアドレスからユーザプログラムの実行を開始して、自動復旧を行うようにしてもよい。
ステップS26のメイン側電源断処理では、例えばCPU103が割込禁止に設定した後、入出力ポート108に含まれる出力ポート#0の第1及び第0ビット[ビット1−0]にクリアデータをセットするなどして、ソレノイド81、82の駆動制御に関する設定を初期化する。このときには、出力ポート#0の第1及び第0ビット[ビット1−0]以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。続いて、例えばRAM105の特定領域における記憶データを用いてチェックサムを算出するなどして、チェックデータの作成を行うとともに、遊技制御フラグ設定部133に設けられたメインバックアップフラグをオン状態にセットする。このとき作成されたチェックデータは、例えば遊技制御バッファ設定部136に設けられたメインチェックサムバッファなどといった、RAM105の所定領域に格納される。そして、遊技制御用マイクロコンピュータ100では、例えばCPU103が所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM105へのアクセスを禁止する。これにより、電力供給の停止に伴ってプログラムの暴走が生じても、RAM105の記憶内容が破損することを防止できる。こうしたメイン側電源断処理が実行された後には、待機状態(ループ処理)に入ることになる。
また、ステップS26にてメイン側電源断処理を実行した後には、例えば電源断信号がオフ状態となったか否かを定期的に判定し、オフ状態となったときには、CPU103が図28に示すステップS1から再び処理を進めることなどにより、瞬断に対応して処理を再開できるようにしてもよい。あるいは、ステップS26にてメイン側電源断処理を実行した後、例えばWDTからタイムアウト信号が出力されるまでの所要時間よりも長い時間として予め定められた所定時間が経過しても電源基板10からの電力供給が継続しているときに、CPU103が図28に示すステップS1から再び処理を進めることなどにより、瞬断に対応して処理を再開できるようにしてもよい。
図29は、図28のステップS21にて実行される乱数初期設定処理の一例を示すフローチャートである。図29に示す乱数初期設定処理において、遊技制御用マイクロコンピュータ100では、まず、CPU103がROM104に記憶されている乱数初期設定データ(KRSS)の第5ビット[ビット5]を読み出し(ステップS101)、読出値に基づいて乱数回路112に設けられたクロック信号出力回路171における動作設定を行う(ステップS102)。例えば、ステップS101での読出値が“0”であるときには、クロック信号出力回路171が出力するクロック信号S1を、基準クロック信号生成回路111により生成される内部システムクロックとしての基準クロック信号CLKと同一周期のクロック信号となるように設定する。また、ステップS101での読出値が“1”であるときには、クロック信号出力回路171が出力するクロック信号S1を、内部システムクロックとしての基準クロック信号CLKの16倍の周期を有するクロック信号となるように設定する。なお、ステップS102の処理では、CPU103がクロック信号出力回路171の動作を直接制御してステップS101での読出値に対応したクロック信号を出力させるように設定してもよいし、例えば乱数回路112の内部あるいは外部に設けられてクロック信号出力回路171が参照可能な所定のレジスタにステップS101での読出値に対応した制御データをセットすることなどにより、クロック信号出力回路171の動作を間接的に制御するようにしてもよい。ステップS102にてレジスタに制御データをセットした場合には、例えば乱数回路112にて乱数値の生成を開始するときにクロック信号出力回路171がレジスタに記憶されている制御データを参照し、その制御データに従ったクロック信号の出力動作を行うことにより、ステップS102での設定に応じたクロック信号を出力することができる。
ステップS102の処理に続いて、CPU103がROM104に記憶されている乱数初期設定データ(KRSS)の第4ビット[ビット4]を読み出し(ステップS103)、読出値が“0”であるか否かを判定する(ステップS104)。このとき、ステップS103での読出値が“0”であれば(ステップS104;Yes)、乱数回路112において生成する乱数値における1周目のスタート値を、デフォルト値である「0001h」に設定する旨の決定を行う(ステップS105)。他方、ステップS103での読出値が“1”であれば(ステップS104;No)、乱数回路112において生成する乱数値における1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する(ステップS106)。ここで、ステップS106の処理では、例えばCPU103がROM104から読み出した遊技制御用マイクロコンピュータ100のIDナンバーを、そのまま乱数値を生成するための1周目のスタート値に設定するようにしてもよい。あるいは、遊技制御用マイクロコンピュータ100のIDナンバーを用いて所定の演算を実行することにより算出された値を、乱数値を生成するための1周目のスタート値に設定するようにしてもよい。例えば、CPU103がROM104から読み出した遊技制御用マイクロコンピュータ100のIDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算を実行して、算出された値を用いるようにすればよい。
ステップS105またはステップS106にて決定されたスタート値は、乱数回路112が備える初期値設定回路172に入力されることで、乱数回路112により乱数値を生成するための1周目のスタート値として設定される。なお、ステップS105やステップS106の処理は、乱数回路112が備える初期値設定回路172が実行するようにしてもよい。例えば、CPU103がステップS104にて読出値が“0”であると判定したときには、乱数回路112に所定の第1初期値設定信号を送る。乱数回路112がCPU103から第1初期値設定信号を受けたときには、初期値設定回路172が所定のレジスタの記憶データを読み出し、その読出値を示す初期値設定信号SKを乱数生成回路173に入力させることなどにより、乱数値を生成するための1周目のスタート値を、デフォルト値である「0001h」に設定する(ステップS105に相当する処理)。他方、CPU103がステップS104にて読出値が“1”であると判定したときには、乱数回路112に第1初期値設定信号とは異なる第2初期値設定信号を送る。乱数回路112がCPU103から第2初期値設定信号を受けたときには、初期値設定回路172が所定のレジスタに記憶されたIDナンバーに基づいて生成されるデータを選択し、その選択したデータを示す初期値設定信号SKを乱数生成回路173に入力させることなどにより、乱数値を生成するための1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいた値に設定する(ステップS106に相当する処理)。ここで、所定のレジスタに記憶されたIDナンバーは、乱数値の最大値である「65535」以下となる桁の数値のみが抽出されて乱数生成回路173に設定されてもよい。あるいは、所定のレジスタに記憶されたIDナンバーが初期値設定回路172に内蔵された演算回路(例えば乗算回路)に入力されることにより、例えばIDナンバーの各桁における数値を用いた所定の演算が実行され、この演算により算出された値を示すデータが乱数生成回路173に設定されてもよい。また、CPU103は、初期値設定回路172の動作を直接制御してステップS105、S106に相当する処理を実行させてもよいし、例えば乱数回路112の内部または外部に初期値設定制御用として設けられて初期値設定回路172が参照可能な所定のレジスタにステップS103での読出値に対応した制御データをセットすることなどにより、初期値設定回路172の動作を間接的に制御するようにしてもよい。CPU103が初期値設定制御用のレジスタに制御データをセットした場合には、例えば乱数回路112にて乱数値の生成を開始するときに初期値設定回路172が初期値設定用のレジスタに記憶されている制御データを参照し、その制御データに従った初期値設定動作を行うことにより、ステップS103での読出値に応じた1周目のスタート値を生成して、乱数生成回路173に設定することができる。
ステップS105、S106の処理のいずれかを実行した後には、CPU103がROM104に記憶されている乱数初期設定データ(KRSS)の第1及び第0ビット[ビット1−0]を読み出し(ステップS107)、読出値に基づいて乱数回路112における乱数値の更新方式を設定する(ステップS108)。例えば、ステップS107での読出値が「00」であるときには、乱数値の更新順である順列を変更しないように設定する。また、ステップS107での読出値が「10」であるときには、乱数値の2周目以降における順列をユーザプログラムにより変更可能とするように設定する。さらに、ステップS107での読出値が「11」であるときには、乱数値の2周目以降における順列を自動的に変更するように設定する。なお、ステップS108の処理では、CPU103が乱数回路112を直接制御してステップS107での読出値に対応した乱数更新方式を設定してもよいし、例えば乱数回路112の内部あるいは外部に設けられて乱数生成回路173が参照可能な所定のレジスタにステップS107での読出値に対応した制御データをセットすることなどにより、乱数生成回路173での乱数更新方式を間接的に制御するようにしてもよい。ステップS107にてレジスタに制御データをセットした場合には、例えば乱数生成回路173がレジスタに記憶されている制御データを参照し、その制御データに従った乱数更新動作を行うことにより、ステップS108で設定された乱数更新方式に従って、乱数値を生成するための順列を変更または保持させることができる。
ステップS108の処理に続いて、乱数回路112にて生成される乱数値における最大値の設定を行う(ステップS109)。例えば、ステップS109では、CPU103がROM104から読み出した乱数最大値設定データを乱数回路112の乱数生成回路173に設定するなどして、乱数回路112にて生成される乱数値における最大値を設定できるようにすればよい。
この後、CPU103がROM104に記憶されている乱数初期設定データ(KRSS)の第3及び第2ビット[ビット3−2]を読み出す(ステップS110)。そして、ステップS110での読出値に基づき、乱数回路112にて生成される乱数値における2周目以降のスタート値に関する初期設定を行う(ステップS111)。具体的な一例として、ステップS111の処理では、CPU103がROM104から読み出した乱数初期設定データ(KRSS)の第3及び第2ビット[ビット3−2]を示す読出データを、乱数回路112もしくはCPU103に内蔵された所定のレジスタや、RAM105の所定領域に格納して記憶させることなどにより、CPU103が遊技制御用のタイマ割込み処理を実行中に16ビット乱数における2周目以降のスタート値に関する設定を参照できるような初期設定が行われればよい。
図30は、図28に示すステップS22にて実行されるシリアル通信初期設定処理の内容の一例を示す説明図である。このシリアル通信初期設定処理では、まず、CPU103がROM104に記憶されている第1及び第2シリアル通信初期設定データ(KSCM1及びKSCM2)を読み出し、読出値に基づいてシリアル通信回路107が備えるシリアル制御レジスタ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”に設定する。
図31は、図28に示すステップS23にて実行される割込み初期設定処理の一例を示すフローチャートである。この割込み初期設定処理では、CPU103がROM104に記憶されている最優先割込み設定(KHPR)を読み出し(ステップS121)、読出値に基づいて最優先割込みを設定する(ステップS122)。例えば、ステップS122の処理では、ステップS121での読出値が「00h」から「07h」のいずれであるかを特定し、特定された値に対応するIクラス割込み(IRQ)の要因が最も優先順位の高い割込み要因となるように、所定レジスタにおける格納データの読出順位の設定などを行う。この読出順位の設定を示すデータは、例えばCPU103の内部レジスタなどに格納しておけばよい。この場合、CPU103は、リセット/割込みコントローラ102からIクラス割込み(IRQ)端子などに入力される割込み要求信号がオン状態となったときに、内部レジスタの格納データを確認することで、優先的に実行する割込み処理を特定することができる。
図28に示すステップS24の処理を実行することにより割込許可状態となった後、例えばタイマ回路106やシリアル通信回路107などにて同時に複数の割込み要因が生じたときには、図31に示すステップS122での設定に基づき、リセット/割込みコントローラ102によって優先順位の高い割込み要因が受け付けられる。リセット/割込みコントローラ102が割込み要因を受け付けたときには、例えばCPU103が備えるIクラス割込み(IRQ)端子などに、オン状態の割込み要求信号が入力される。CPU103にてIRQ端子にオン状態の割込み要求信号が入力されたときには、例えば内部レジスタの格納データを確認した結果などに基づき、図31に示すステップS122での設定に基づく読出順位に応じた順番で、例えばタイマ回路106が備えるタイマ制御レジスタやシリアル通信回路107が備えるシリアルステータスレジスタ204といった、所定レジスタにおける格納データのビット値を読み出せばよい。こうして読み出したレジスタの格納データから、発生した割込み要因を特定し、特定された割込み要因に対応するベクタアドレスを先頭アドレスとするプログラムを実行することにより、各割込み要因に基づく割込み処理を開始することができる。
具体的な一例として、最優先割込み設定(KHPR)が「05h」であるときには、まず、シリアルステータスレジスタ204が備える第1レジスタSIST1の第3〜第0ビット[ビット3−0]を読み出し、何れかのビット値が「1」となっているか否かを判定する。このとき、何れかのビット値が「1」となっていれば、シリアル通信回路107にて発生したエラー割込み要因に対応する割込み処理(例えば図32に示すシリアル通信エラー割込み処理)を実行するものと判断して、例えばROM104の所定領域に格納されている割込みベクタを取得し、そのベクタアドレスを先頭アドレスとするプログラムを実行する。また、第1レジスタSIST1の第3〜第0ビット[ビット3−0]におけるビット値がいずれも「0」であるときには、遊技制御用マイクロコンピュータ100に設けられたIRQ端子にオン状態の割込み要求信号が一定期間入力されたことによる外部割込み要因が発生したか否かを判定する。このとき、外部割込み要因が発生していれば、その外部割込み要因に対応する割込み処理を実行する一方、外部割込み要因が発生していなければ、タイマ回路106が備えるタイマ制御レジスタにおける格納データを読み出し、その読出値に基づいてタイマ回路106にてタイマ割込み要因が発生したか否かを判定する。このとき、タイマ回路106にてタイマ割込み要因が発生していれば、そのタイマ割込み要因に対応するタイマ割込み処理(例えば図35に示す遊技制御用タイマ割込み処理)を実行する一方、タイマ割込み要因が発生していなければ、シリアルステータスレジスタ204が備える第1レジスタSIST1の第5及び第4ビット[ビット5−4]を読み出し、何れかのビット値が「1」となっているか否かを判定する。このとき、何れかのビット値が「1」となっていれば、シリアル通信回路107にて発生した受信割込み要因に対応する受信割込み処理(例えば図33に示すシリアル受信割込み処理)を実行する一方、いずれのビット値も「0」であれば、シリアルステータスレジスタ204が備える第1レジスタSIST1の第7及び第6ビット[ビット7−6]を読み出し、何れかのビット値が「1」となっているか否かを判定する。このとき、何れかのビット値が「1」となっていれば、シリアル通信回路107にて発生した送信割込み要因に対応する送信割込み処理(例えば図34に示すシリアル送信割込み処理)を実行する。
このように図31に示すステップS122での設定に基づく優先順位に応じた順番で割込み要因が発生したか否かを確認することで、複数の割込み要因が同時に発生したときには、例えば図13(B)に示すようなデフォルト時の優先順位、あるいはROM104に記憶されている最優先割込み設定(KHPR)により変更された優先順位において、優先順位の高い割込み要因に基づく割込み処理が、優先順位の低い割込み要因に基づく割込み処理よりも優先的に実行される。
例えば、ROM104に記憶されている最優先割込み設定(KHPR)が「06h」であるときには、図31に示すステップS122での設定により、図13(B)に示すようなデフォルト時の優先順位が、図13(A)に示すようにシリアル通信回路107からの受信割込み要求を最優先とする優先順位に変更される。この場合には、シリアル通信回路107からのエラー割込み要求に基づく割込み処理よりもシリアル通信回路107からの受信割込み要求に基づく割込み処理の方が優先的に実行されることになる。また、図13(B)に示すように、デフォルト時では、タイマ回路106からの割込み要求に基づく割込み処理の方がシリアル通信回路107からの割込み要求に基づく割込み処理よりも優先的に実行される設定となっている。これに対して、ROM104に記憶されている最優先割込み設定(KHPR)が「05h」、「06h」、「07h」のいずれかであるときには、それぞれ、シリアル通信回路107からのエラー割込み要求に基づく割込み処理、受信割込み要求に基づく割込み処理、送信割込み要求に基づく割込み処理の方が、タイマ回路106からの割込み要求に基づく割込み処理よりも優先的に実行されることになる。
図32は、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路107にてエラー割込みが発生するごとに実行されるシリアル通信エラー割込み処理の一例を示すフローチャートである。ここで、シリアル通信回路107では、シリアル制御レジスタ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”に設定されてオン状態となったことのいずれかの割込み要因が発生したときに、エラー割込みを発生させる。より具体的には、シリアル通信回路107にてエラー割込み要因が発生したときに、シリアル通信回路107からリセット/割込みコントローラ102に割込み要求が送信され、前述したようにリセット/割込みコントローラ102が割込み要因を受け付けた場合には、CPU103が備えるIRQ端子にオン状態の割込み要求信号が入力されることで、CPU103に割込みの発生が通知される。
図32に示すシリアル通信エラー割込み処理において、遊技制御用マイクロコンピュータ100では、まず、CPU103がシリアル通信回路107に設けられた送信動作部202を未使用状態に設定する(ステップS41)。具体的な一例として、CPU103は、シリアル通信回路107が備えるシリアル制御レジスタ205における第2レジスタSICL2の第3ビット[ビット3]であるTEを“0”に設定することにより、送信動作部202を使用しないものと設定する。続いて、CPU103がシリアル通信回路107に設けられた受信動作部201を未使用状態に設定する(ステップS42)。具体的な一例として、CPU103は、シリアル通信回路107が備えるシリアル制御レジスタ205における第2レジスタSICL2の第2ビット[ビット2]であるREを“0”に設定することにより、受信動作部201を使用しないものと設定する。この後、遊技制御用マイクロコンピュータ100では、例えばCPU103が遊技制御フラグ設定部133に設けられたシリアル通信エラーフラグをオン状態にセットする(ステップS43)。
図33は、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路107にて受信割込みが発生するごとに実行されるシリアル受信割込み処理の一例を示すフローチャートである。図33に示すシリアル受信割込み処理において、遊技制御用マイクロコンピュータ100では、まず、遊技制御カウンタ設定部135に設けられた払出通知コマンド受信カウンタの値である払出通知コマンド受信カウント値が所定のカウント最大値(例えば「11」)となっているか否かを、CPU103が判定する(ステップS51)。
ステップS51にてカウント最大値となっているときには(ステップS51;Yes)、払出通知コマンド受信カウンタの値を所定の初期値(例えば「0」)に設定する(ステップS52)。他方、ステップS51にてカウント最大値となっていないときには(ステップS51;No)、払出通知コマンド受信カウンタの値を1加算する(ステップS53)。ステップS52、S53の処理のいずれかを実行した後には、CPU103がシリアル通信回路107に設けられたシリアル通信データレジスタ203の記憶データを読み出し(ステップS54)、その読出データを、払出用受信コマンドバッファ191に設けられた受信コマンドバッファ#1〜#12のうちで払出通知コマンド受信カウンタの値に対応するものに格納する(ステップS55)。
図34は、遊技制御用マイクロコンピュータ100に設けられたシリアル通信回路107にて送信割込みが発生するごとに実行されるシリアル送信割込み処理の一例を示すフローチャートである。図34に示すシリアル送信割込み処理において、遊技制御用マイクロコンピュータ100では、まず、CPU103が、発生した送信割込みは送信データエンプティ時の割込みであるか否かを判定する(ステップS61)。そして、送信データエンプティ時の割込みであるときには(ステップS61;Yes)、遊技制御フラグ設定部133に設けられた送信設定可能フラグをオン状態にセットする(ステップS62)。
ステップS61にて送信データエンプティ時の割込みではないときには(ステップS61;No)、その送信割込みは送信完了時の割込みであるか否かを判定する(ステップS63)。そして、送信完了時の割込みであるときには(ステップS63;Yes)、遊技制御フラグ設定部133に設けられた送信完了フラグをオン状態にセットする(ステップS64)。ステップS63にて送信完了時の割込みではないときには(ステップS63;No)、発生した送信割込みの種類に対応するフラグをオン状態にセットする(ステップS65)。
図35は、遊技制御用マイクロコンピュータ100にてタイマ割込みが発生するごとに実行される遊技制御用タイマ割込み処理の一例を示すフローチャートである。図35に示す遊技制御用タイマ割込み処理において、遊技制御用マイクロコンピュータ100では、まず、CPU103が内部レジスタを退避した後(ステップS71)、所定のスイッチ処理を実行することにより、スイッチ回路114を介して各スイッチから入力される検出信号の状態を判定する(ステップS72)。続いて、所定のエラー処理を実行することにより、パチンコ遊技機1の異常診断を行い、その診断結果に応じて必要ならば警告を発生可能とする(ステップS73)。その後、所定の情報出力処理を実行することにより、例えばパチンコ遊技機1の外部に設置されたホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する(ステップS74)。
情報出力処理に続いて、確変判定用の乱数値R2や初期値決定用の乱数値R3を更新するためのソフトウェア乱数更新処理を実行する(ステップS75)。次に、例えばステップS72におけるスイッチ処理の実行結果に基づき、始動口スイッチ22からの始動入賞信号SS1の入力やカウントスイッチ24からの検出信号の入力などに応じて、賞球となる遊技球の払出個数の設定などを行う賞球処理を実行する(ステップS76)。また、CPU103は、シリアル通信により払出制御基板15から受信した払出通知コマンドに応じた各種の設定を行うためのメイン側受信処理を実行する(ステップS77)。
ステップS77のメイン側受信処理では、遊技制御バッファ設定部136の払出用受信コマンドバッファ191に受信コマンドが格納されているか否かを判定し、格納されているときには、その受信コマンドを読み出す。そして、例えば読み出した受信コマンドの種類に応じたフラグをセットあるいはクリアする処理などといった、受信コマンドの種類に対応した処理を実行する。また、ステップS77のメイン側受信処理を開始したときには、まず、シリアル通信エラーフラグがオンとなっているか否かを判定し、オンであるときには、そのままメイン側受信処理を終了するようにしてもよい。これにより、シリアル通信回路107の動作にエラーが発生しているときには、払出制御基板15から送信される払出通知コマンドの受信を停止する状態に制御することができる。さらに、ステップS77のメイン側受信処理にて払出用受信コマンドバッファ191から受信コマンドを読み出したときには、その受信コマンドにおける1バイト目と2バイト目との排他的論理和を演算し、算出された演算結果が正常値となっているか否かを判定することで、受信コマンドが適正なコマンドであるか否かをチェックするようにしてもよい。この実施の形態では、払出制御基板15から主基板11に対して送信される払出通知コマンドが、1バイト目を反転させることで2バイト目となるように構成されていることから、受信コマンドの1バイト目と2バイト目との排他的論理和を演算した結果、全ビット値が“1”となれば、受信コマンドが適正なコマンドであると判断することができる。
この後、CPU103は、特別図柄プロセス処理を実行する(ステップS78)。特別図柄プロセス処理では、遊技制御フラグ設定部133に設けられた特別図柄プロセスフラグの値をパチンコ遊技機1における遊技の進行状況に応じて更新し、特別図柄表示装置4における表示動作の制御や特別可変入賞球装置7における大入賞口開閉動作の設定などを所定の手順で行うために、各種の処理が選択されて実行される。特別図柄プロセス処理に続いて、普通図柄プロセス処理が実行される(ステップS79)。CPU103は、普通図柄プロセス処理を実行することにより、普通図柄表示器40における表示動作(例えばLEDの点灯、消灯など)を制御して、普通図柄の可変表示(例えば、点灯・点滅表示など)や普通可変入賞球装置6における可動翼片の傾動制御の設定などを可能にする。
さらに、CPU103は、払出用コマンド制御処理を実行することにより、主基板11から払出制御基板15に対して払出制御コマンドを送信させる(ステップS80)。例えば、払出用コマンド制御処理では、遊技制御バッファ設定部136の払出用送信コマンドバッファ192に送信コマンドが格納されているか否かを判定し、格納されているときには、その送信コマンドに対応する格納データを読み出す。そして、読み出したデータをシリアル通信回路107に設けられたシリアル通信データレジスタ203にセットする。また、ステップS80の払出用コマンド制御処理を開始したときには、まず、シリアル通信エラーフラグがオンとなっているか否かを判定し、オンであるときには、そのまま払出用コマンド制御処理を終了するようにしてもよい。これにより、シリアル通信回路107の動作にエラーが発生しているときには、払出制御基板15に対する払出制御コマンドの送信を停止する状態に制御することができる。さらに、ステップS80の払出用コマンド制御処理にて送信コマンドに対応するデータをシリアル通信データレジスタ203にセットするときには、遊技制御フラグ設定部133に設けられた送信設定可能フラグや送信完了フラグをチェックすることで、データセットが可能か否かの判定や、コマンドの送信が完了したか否かの判定などを行うようにしてもよい。
ステップS80の払出用コマンド制御処理を実行した後、CPU103は、演出用コマンド制御処理を実行することにより、主基板11から演出制御基板12に対して演出制御コマンドを送信させる(ステップS81)。この後、ステップS71にて退避したレジスタの内容を復帰させてから(ステップS82)、遊技制御用タイマ割込み処理を終了する。
図36は、図35のステップS72にて実行されるスイッチ処理の一例を示すフローチャートである。図36に示すスイッチ処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU103が入出力ポート108に含まれる入力ポート#0の第7ビット[ビット7]の状態をチェックすることなどにより、始動口スイッチ22から伝送される始動入賞信号SS1がオン状態となっているか否かを判定する(ステップS201)。このとき、始動口スイッチ22からの始動入賞信号SS1がオン状態であれば(ステップS201;Yes)、遊技制御タイマ設定部134に設けられた始動口スイッチタイマの値を1加算して更新する(ステップS202)。
ステップS202の処理に続いて、CPU103は、始動口スイッチタイマの値が予め定められたスイッチオン判定値(例えば「2」)となったか否かを判定する(ステップS203)。ステップS203にて始動口スイッチタイマの値がスイッチオン判定値であるときには(ステップS203;Yes)、所定回(例えば2回)の遊技制御用タイマ割込み処理が実行されている期間(例えば4ミリ秒間)にわたり始動口スイッチ22からの始動入賞信号SS1が継続してオン状態であったものと判断して、遊技制御フラグ設定部133に設けられた始動入賞フラグをオン状態にセットする(ステップS204)。このように、ステップS203での判定に用いられるスイッチオン判定値は、乱数回路112が備えるタイマ回路174において始動入賞信号SS1の入力時間の計測を開始してから出力信号がオン状態となるまでに要する期間(例えば3ミリ秒間)よりも長い期間にわたり始動入賞信号SS1がオン状態であることを特定できるように定められていればよい。
また、ステップS201にて始動口スイッチ22からの始動入賞信号SS1がオフ状態であれば(ステップS201;No)、始動入賞フラグをクリアしてオフ状態にするとともに(ステップS205)、始動口スイッチタイマをクリアして所定のタイマ初期値(例えば「0」)に設定する(ステップS206)。
ステップS203にて始動口スイッチタイマの値がスイッチオン判定値とは異なるときや(ステップS203;No)、ステップS204、S206の処理のいずれかを実行した後には、その他のスイッチに関するチェック処理を実行して、各スイッチから入力される検出信号の状態に応じたタイマ値の更新やフラグのセットまたはクリアなどを行う(ステップS207)。
図37は、図35のステップS73にて実行されるエラー処理の一例を示すフローチャートである。図37に示すエラー処理において、遊技制御用マイクロコンピュータ100では、まず、例えばCPU103が入出力ポート108に含まれる入力ポート#0の第1ビット[ビット1]の状態をチェックすることなどにより、乱数回路112のクロック信号出力回路171から伝送されるクロック信号S1がハイレベルとなっているかローレベルとなっているかを判定する(ステップS221)。
ステップS221にてクロック信号S1がハイレベルであるときには(ステップS221;Yes)、遊技制御タイマ設定部134に設けられた第2監視用タイマをクリアして初期化するとともに(ステップS222)、第1監視用タイマにおけるタイマ値を1加算する(ステップS223)。他方、ステップS221にてクロック信号S1がローレベルであるときには(ステップS221;No)、第1監視用タイマをクリアして初期化するとともに(ステップS224)、第2監視用タイマにおけるタイマ値を1加算する(ステップS225)。
ステップS223、S225の処理のいずれかを実行した後、CPU103は、第1及び第2監視用タイマのいずれかおけるタイマ値が、信号監視上限値として予め定められた所定値に達したか否かを判定する(ステップS226)。このとき、タイマ値が信号監視上限値に達していれば(ステップS226;Yes)、基準クロック信号生成回路111やクロック信号出力回路171に異常が発生したと判断して、演出制御基板12に対してエラー報知開始#1のコマンドを送信するための設定を行う(ステップS227)。例えば、ステップS227の処理では、CPU103がエラー報知開始#1のコマンド送信用としてROM104に記憶されている制御データを読み出し、入出力ポート108に含まれる出力ポート#1の各ビット[ビット0〜7]にセットすればよい。
ステップS227の処理を実行した後には、所定の初期化処理を実行する(ステップS228)。例えば、ステップS228の処理では、RAM105の特定領域における記憶データを用いてチェックサムを算出するなどしてチェックデータを作成し、そのチェックデータを遊技制御バッファ設定部136のメインチェックサムバッファに格納する。また、ステップS228の処理では、RAM105をアクセス禁止状態に設定する。この際、CPU103は、乱数回路112に設けられた各回路を初期化する初期化信号を送出して、乱数回路112の動作をリセットするようにしてもよい。続いて、CPU103は、HALT(停止)状態に移行することで(ステップS229)、入力状態初期確認処理が終了するとともに、CPU103による遊技の進行を制御する処理の実行が停止される。なお、ステップS227の処理を実行した後には、初期化処理のみを行って入力状態初期確認処理を終了するようにしてもよいし、あるいはHALT状態への移行のみを行い、その後にユーザリセットなどにより各部が初期化されるようにしてもよい。
また、ステップS226にて第1及び第2監視用タイマのタイマ値がいずれも信号監視上限値に達していなければ(ステップS226;No)、遊技制御カウンタ設定部135に設けられたリーチ回数カウンタの値であるリーチ回数カウント値が、リーチ連続上限値として予め定められた所定値(例えば「10」)を超えているか否かを判定する(ステップS230)。このとき、リーチ回数カウント値がリーチ連続上限値を超えていれば(ステップS230;Yes)、乱数回路112での乱数生成動作における異常発生が検出されたと判断して、演出制御基板12に対してエラー報知開始#2のコマンドを送信するための設定を行う(ステップS231)。ステップS231の処理を実行した後には、前述したステップS227の処理に進む。
ステップS230にてリーチ回数カウント値がリーチ連続上限値以下であれば(ステップS230;No)、遊技制御カウンタ設定部135に設けられた通常ハズレ回数カウンタの値である通常ハズレ回数カウント値が、通常ハズレ連続上限値として予め定められた所定値(例えば「50」)を超えているか否かを判定する(ステップS232)。このとき、通常ハズレ連続カウント値が通常ハズレ連続上限値以下であれば(ステップS232;No)、エラー処理を終了する。他方、ステップS232にて通常ハズレ連続カウント値が通常ハズレ連続上限値を超えていれば(ステップS232;Yes)、乱数回路112での乱数生成動作における異常発生が検出されたと判断して、演出制御基板12に対してエラー報知開始#3のコマンドを送信するための設定を行う(ステップS233)。ステップS233の処理を実行した後には、前述したステップS227の処理に進む。
図38は、図35のステップS75にて実行されるソフトウェア乱数更新処理の一例を示すフローチャートである。図38に示すソフトウェア乱数更新処理において、遊技制御用マイクロコンピュータ100では、まず、CPU103が遊技制御カウンタ設定部135に設けられた確変判定用乱数カウンタの値である確変判定用乱数カウント値を1加算して更新する(ステップS241)。このときには、ステップS241での更新後の確変判定用乱数カウント値が予め定められたカウント最大値である「100」を超えたか否かを判定する(ステップS242)。
ステップS242にて確変判定用乱数カウント値がカウント最大値を超えているときには(ステップS242;Yes)、確変判定用の乱数値R2における最小値となる「1」を、確変判定用乱数カウント値に設定する(ステップS243)。他方、ステップS242にて確変判定用乱数カウント値がカウント最大値以下であるときには(ステップS242;No)、ステップS243の処理をスキップする。
続いて、CPU103は、確変判定用乱数カウント値を、遊技制御バッファ設定部136に設けられた乱数初期値バッファの記憶データが示す確変判定用の乱数値R2における初期値と比較する(ステップS244)。ステップS244での比較結果として、CPU103は、確変判定用乱数カウント値が初期値に戻ったか否かを判定する(ステップS245)。
ステップS245にて確変判定用乱数カウント値が初期値に戻っているときには(ステップS245;Yes)、遊技制御カウンタ設定部135に設けられた初期値決定用乱数カウンタの格納データを取得することにより、初期値決定用の乱数値R3を読み出す(ステップS246)。そして、ステップS246にて読み出した乱数値R3を、確変判定用の乱数値R2における新たな初期値として、確変判定用乱数カウンタにセットする(ステップS247)。このときには、ステップS246にて読み出した乱数値R3を、乱数初期値バッファに格納しておく(ステップS248)。また、ステップS245にて確変判定用乱数カウント値が初期値に戻っていないときには(ステップS245;No)、ステップS246〜S248の処理をスキップする。
この後、遊技制御用マイクロコンピュータ100にてソフトウェアにより更新されるその他の判定用乱数を更新するための処理を実行する(ステップS249)。また、CPU103は、例えば初期値決定用カウンタの値である初期値決定用カウント値を3加算するなどして、初期値決定用の乱数値R3を更新する(ステップS250)。ステップS250の処理では、更新後の初期値決定用カウント値が予め定められたカウント最大値である「100」を超えたか否かを判定し、超えているときには、例えば「1」、「2」、「3」のいずれかの値を初期値決定用カウンタに設定すればよい。
図39は、図35に示すステップS78にて実行される特別図柄プロセス処理の一例を示すフローチャートである。図39に示す特別図柄プロセス処理において、遊技制御用マイクロコンピュータ100では、まず、CPU103が遊技制御フラグ設定部133に設けられた始動入賞フラグがオンであるか否かを判定する(ステップS261)。ステップS261にて始動入賞フラグがオンであるときには(ステップS261;Yes)、入賞処理を実行した後(ステップS262)、始動入賞フラグをクリアしてオフ状態とする(ステップS263)。他方、ステップS261にて始動入賞フラグがオフであるときには(ステップS261;No)、ステップS262の入賞処理とステップS263の処理をスキップする。
図40(A)は、ステップS262にて実行される入賞処理の一例を示すフローチャートである。図40(A)に示す入賞処理において、CPU103は、まず、特図保留記憶部131に記憶されている大当り判定用の乱数値R1を示す数値データの個数である保留記憶数が、所定の上限値(例えば「4」)となっているか否かを判定する(ステップS301)。このとき、保留記憶数が上限値となっていれば(ステップS301;Yes)、今回の入賞による始動検出は無効として、そのまま入賞処理を終了する。
ステップS301にて保留記憶数が上限値未満であるときには(ステップS301;No)、乱数回路112の乱数値レジスタ176における格納値を、大当り判定用の乱数値R1として読み出す(ステップS302)。例えば、ステップS302の処理では、入出力ポート108に含まれる出力ポート#0の第7ビット[ビット7]に所定の制御データをセットするなどして出力制御信号SCをオン状態に設定した後、入力ポート#1、#2の各ビット[ビット0〜7]に入力される乱数値出力信号SO0〜SO15を取り込むことにより、乱数値レジスタ176から読み出された乱数値R1を取得する。
続いて、ステップS302にて読み出された乱数値R1を、特図保留記憶部131における空きエントリの先頭にセットする(ステップS303)。このときには、特図保留記憶部131における保留記憶数を1加算して更新する(ステップS304)。ステップS304の処理を実行した後には、ステップS302にて乱数回路112の乱数値レジスタ176から読み出した読出値に対応するリーチ判定用の乱数値R4を設定する(ステップS305)。例えば、ステップS305の処理では、図40(B)に示すように、ステップS302での読出値に対応して、リーチ判定用の乱数値R4を「1」〜「10」のいずれかに設定して、遊技制御カウンタ設定部135に設けられたリーチ判定用乱数カウンタにセットする。これにより、リーチ判定用乱数カウンタでは、乱数値レジスタ176から読み出される大当り判定用の乱数値R1に同期して、リーチ判定用の乱数値R4が更新されることになる。
図39に示すステップS261にて始動入賞フラグがオフであるときや、ステップS263の処理を実行した後には、例えばCPU104が遊技制御フラグ設定部133に設けられた特別図柄プロセスフラグの値に応じて、以下のようなステップS270〜S276の各処理を実行する。
ステップS270の特別図柄通常処理は、特別図柄プロセスフラグの値が“0”のときに実行される。図41は、ステップS270にて実行される特別図柄通常処理の一例を示すフローチャートである。この特別図柄通常処理を開始すると、CPU103は、まず、特図保留記憶部131における保留記憶数が「0」となっているか否かを判定する(ステップS311)。そして、保留記憶数が「0」であるときには(ステップS311;Yes)、そのまま特別図柄通常処理を終了する。
ステップS311にて保留記憶数が「0」以外であるときには(ステップS311;No)、特図ゲームを実行するための始動条件が成立していると判断して、特図保留記憶部131から保留番号「1」に対応して格納されている大当り判定用の乱数値R1を読み出す(ステップS312)。このときには、特図保留記憶部131における保留記憶数を1減算するとともに、特図保留記憶部131における下位のエントリ(例えば保留番号「2」〜「4」に対応した第2〜第4エントリ)に格納されている大当り判定用の乱数値R1を、1エントリずつ上位にシフトさせる(ステップS313)。
この後、ステップS312にて読み出した大当り判定用の乱数値R1などに基づいて大当り確変判定処理を実行する(ステップS314)。ステップS314にて大当り確変判定処理を実行した後には、特別図柄プロセスフラグの値を“1”に更新して(ステップS315)、特別図柄通常処理を終了する。
図42は、ステップS314にて実行される大当り確変判定処理の一例を示すフローチャートである。図42に示す大当り確変判定処理において、CPU103は、まず、例えば遊技制御フラグ設定部133に設けられた確変中フラグがオンとなっているか否かをチェックすることなどにより、高確率状態(確変中)であるか否かを判定する(ステップS401)。
ステップS401にて確変中であるときには(ステップS401;Yes)、特図ゲームや飾り図柄の可変表示での表示結果を「大当り」とするか否かを判定するためのテーブルとして、図16(B)に示すような確変時大当り判定テーブル141を設定する(ステップS402)。これに対して、ステップS401にて確変中でなければ(ステップS401;No)、通常遊技状態であると判断して、図16(A)に示すような通常時大当り判定テーブル140を設定する(ステップS403)。
ステップS402、S403の処理のいずれかを実行した後には、図41のステップS312にて読み出した大当り判定用の乱数値R1が大当り判定値データと合致するか否かを判定することにより、「大当り」とするか否かの判定を行う(ステップS404)。ステップS404にて乱数値R1が大当り判定値データと合致しなければ(ステップS404;No)、そのまま大当り確変判定処理を終了する。
他方、ステップS404にて乱数値R1が大当り判定値データと合致したときには(ステップS404;Yes)、遊技制御フラグ設定部133に設けられた大当りフラグをオン状態にセットする(ステップS405)。このときには、遊技制御カウンタ設定部135に設けられた確変判定用乱数カウンタの値を読み出すことにより、確変判定用の乱数値R2を抽出する(ステップS406)。そして、ステップS406にて抽出した乱数値R2が予め定められた確変判定値データ(例えば奇数を示す数値データなど)と合致するか否かを判定する(ステップS407)。
ステップS407にて乱数値R2が確変判定値データと合致したときには(ステップS407;Yes)、遊技制御フラグ設定部133に設けられた確変確定フラグをオン状態にセットする(ステップS408)。他方、ステップS407にて乱数値R2が確変判定値データと合致しなかったときには(ステップS407;No)、確変確定フラグをクリアしてオフ状態とする(ステップS409)。
図39に示すステップS271の可変表示開始時処理は、特別図柄プロセスフラグの値が“1”のときに実行される。図43は、ステップS271にて実行される可変表示開始時処理の一例を示すフローチャートである。この可変表示開始時処理を開始すると、CPU103は、まず、大当りフラグがオンであるか否かを判定する(ステップS331)。そして、大当りフラグがオンであれば(ステップS331;Yes)、可変表示パターンを決定するために用いるテーブルとして、ROM104の所定領域などに記憶された大当り時可変表示パターン決定テーブルを設定する(ステップS332)。このときには、リーチ回数カウンタ及び通常ハズレ回数カウンタをクリアして初期化する(ステップS333)。
ステップS331にて大当りフラグがオフであれば(ステップS331;No)、リーチ判定用乱数カウンタに記憶されているリーチ判定用の乱数値R4を読み出す(ステップS334)。そして、図17に示すリーチ判定テーブル142を参照して、ステップS334での読出値がリーチ判定値データと合致するか否かを判定することにより、画像表示装置5における飾り図柄の可変表示態様をリーチとするか否かを判定する(ステップS335)。
ステップS335にてリーチとする旨の判定がなされると(ステップS335;Yes)、可変表示パターンを決定するために用いるテーブルとして、ROM104の所定領域などに記憶されたリーチ時可変表示パターン決定テーブルを設定する(ステップS336)。このときには、通常ハズレ回数カウンタをクリアして初期化する一方で(ステップS337)、リーチ回数カウンタにおけるカウント値であるリーチ回数カウント値を1加算する(ステップS338)。
ステップS335にてリーチとしない旨の判定がなされると(ステップS335;No)、可変表示パターンを決定するために用いるテーブルとして、ROM104の所定領域などに記憶された通常ハズレ時可変表示パターン決定テーブルを設定する(ステップS339)。このときには、リーチ回数カウンタをクリアして初期化する一方で(ステップS340)、通常ハズレ回数カウンタにおけるカウント値である通常ハズレ回数カウント値を1加算する(ステップS341)。
ステップS333、S338、S341の処理のいずれかを実行した後には、例えば所定の乱数カウンタから取得した可変表示パターン決定用の乱数値に基づき、ステップS333、S338、S341のいずれかにて設定した可変表示パターン決定テーブルを参照するなどして、開始条件が成立した特図ゲーム及び飾り図柄の可変表示にて使用する可変表示パターンを決定する(ステップS342)。
ステップS342の処理を実行した後、CPU103は、演出制御基板12に対して表示結果通知コマンドを送信するための設定を行う(ステップS343)。例えば、ステップS343の処理では、特図ゲームでの確定特別図柄に決定した特別図柄や、確変確定フラグがオンであるか否かに対応した制御データを、遊技制御バッファ設定部136に設けられた演出用送信コマンドバッファに設定すればよい。ここで、特図ゲームでの確定特別図柄は、大当りフラグがオンであるか否かの判定結果や所定の乱数カウンタから読み出した確定図柄決定用の乱数値などに基づいて決定されればよい。具体的な一例として、大当りフラグがオンであるときには、特図ゲームでの確定特別図柄が大当り図柄である「7」に決定される。他方、大当りフラグがオフであるときには、所定の乱数カウンタから読み出した確定図柄決定用の乱数値に基づいて、所定のハズレ図柄決定テーブルを参照することなどにより、ハズレ図柄のうちから特図ゲームにおける確定特別図柄となるものを決定すればよい。特図ゲームでの確定特別図柄が大当り図柄である「7」に決定され、かつ、確変確定フラグがオンであれば、特図ゲームでの確定特別図柄が大当り図柄である「7」となり、確変大当りとなることを示す表示結果通知コマンド(例えばコマンド9002h)を送信するための制御データが、演出用送信コマンドバッファに設定される。特図ゲームでの確定特別図柄が大当り図柄である「7」に決定され、かつ、確変確定フラグがオフであれば、特図ゲームでの確定特別図柄が大当り図柄である「7」となり、通常大当りとなることを示す表示結果通知コマンド(例えばコマンド9001h)を送信するための制御データが、演出用送信コマンドバッファに設定される。特図ゲームでの確定特別図柄が大当り図柄である「7」以外に決定されたときには、特図ゲームでの確定特別図柄がハズレ図柄となることを示す表示結果通知コマンド(例えばコマンド9000h)を送信するための制御データが、演出用送信コマンドバッファに設定される。
続いて、CPU103は、ステップS342にて決定した可変表示パターンに対応する可変表示開始コマンドを演出制御基板12に対して送信するための設定を行う(ステップS344)。例えば、ステップS344の処理では、ステップS342にて決定した可変表示パターンに対応する制御データを、演出用送信コマンドバッファに設定すればよい。ステップS344の処理を実行した後には、特別図柄プロセスフラグの値を“2”に更新して(ステップS345)、可変表示開始時処理を終了する。
図39に示すステップS272の可変表示制御処理は、特別図柄プロセスフラグの値が“2”のときに実行される。この可変表示制御処理は、可変表示時間タイマの値に基づいて、特別図柄表示装置4による特図ゲームにおける特別図柄の残りの可変表示時間を計測する処理を含んでいる。そして、特別図柄の可変表示時間(総変動時間)が経過したときには、特別図柄プロセスフラグの値を“3”に更新する。
ステップS273の可変表示停止時処理は、特別図柄プロセスフラグの値が“3”のときに実行される。この可変表示停止時処理では、特別図柄や飾り図柄の可変表示結果が大当りであるかハズレであるかが判定される。また、パチンコ遊技機1が高確率状態となっているときには、遊技状態を高確率状態から通常遊技状態に戻すか否かを判定し、戻すと判定すると、パチンコ遊技機1における遊技状態を高確率状態から通常遊技状態に移行させる。具体的な一例として、高確率状態にて実行された特図ゲームの回数が所定の確変終了基準値(例えば「100」)に達すると、高確率状態から通常遊技状態に戻すと判定する。そして、可変表示結果が大当りであるときには特別図柄プロセスフラグの値が“4”に更新される一方で、ハズレであるときには特別図柄プロセスフラグの値が“0”に更新される。
ステップS274の大入賞口開放前処理は、特別図柄プロセスフラグの値が“4”のときに実行される。この大入賞口開放前処理では、大当り遊技状態において特別可変入賞球装置7が備える開閉板により大入賞口を開放する各ラウンドにおける大入賞口の最長開放期間の設定などを行う。この後、大当り開始コマンドを演出制御基板12に対して送信するための設定を行って、特別図柄プロセスフラグの値を“5”に更新する。
ステップS275の大入賞口開放中処理は、特別図柄プロセスフラグの値が“5”のときに実行される。この大入賞口開放中処理では、大入賞口開放前処理での設定に従ってソレノイド82の駆動制御を行うことにより、特別可変入賞球装置7が備える開閉板により大入賞口を開閉させる。そして、大当り遊技状態における最終のラウンドが終了したときには、特別図柄プロセスフラグの値を“6”に更新する。ステップS276の大当り終了処理は、特別図柄プロセスフラグの値が“6”のときに実行される。この大当り終了処理では、大当り終了コマンドを演出制御基板12に対して送信するための設定などを行った後、特別図柄プロセスフラグの値を“0”に更新する。また、大当り終了処理では、確変確定フラグがオンとなっているか否かを判定し、オンであるときには、確変確定フラグをクリアしてオフ状態にするとともに、遊技制御フラグ設定部133に設けられた確変中フラグをオン状態にセットする。
次に、演出制御基板12における動作を説明する。演出制御基板12では、電源基板10からの電力供給が開始され演出制御用マイクロコンピュータ120へのリセット信号がハイレベル(オフ状態)になったことに応じて、演出制御用マイクロコンピュータ120が起動し、図44のフローチャートに示すような演出制御メイン処理が実行される。なお、以下に説明する各処理は、演出制御用マイクロコンピュータ120が備えるCPU123によって実行されるものとする。また、演出制御用マイクロコンピュータ120が備えるCPU123やCPU123以外の各種回路を含んだ概念を演出制御用マイクロコンピュータ120ということもあるものとする。図44に示す演出制御メイン処理を開始すると、演出制御用マイクロコンピュータ120では、まず、CPU123がRAM122のクリアや各種初期値の設定、また演出制御の実行間隔を決めるためのタイマ初期設定等を行う初期化処理を実行する(ステップS501)。その後、CPU123は、例えばタイマ割込みフラグを監視することなどにより、タイマ割込みが発生したか否かを判定する(ステップS502)。そして、タイマ割込みが発生するまでは(ステップS502;No)、ステップS502の処理を繰り返し実行するループ処理に入る。タイマ割込みが発生したときには(ステップS502;Yes)、タイマ割込みフラグをクリアしてオフ状態とした後(ステップS503)、以下のような演出制御処理を実行する。
ここで、演出制御用マイクロコンピュータ120におけるタイマ割込みは、例えば2ミリ秒ごとに発生する。すなわち、演出制御処理は、例えば2ミリ秒ごとに実行される。この実施の形態では、タイマ割込みの発生に応答して所定のタイマ割込み処理が実行されることにより、タイマ割込みフラグがオン状態にセットされ、具体的な演出制御処理は演出制御メイン処理内において実行される。これに対して、タイマ割込み処理内において演出制御処理が実行されるようにしてもよい。
演出制御処理において、演出制御用マイクロコンピュータ120では、まず、例えばCPU123が主基板11から中継基板18を介して受信した演出制御コマンドを解析するための演出コマンド解析処理を実行する(ステップS504)。続いて、演出制御用マイクロコンピュータ120では、例えばCPU123が演出制御プロセス処理を実行する(ステップS505)。演出制御プロセス処理では、演出用の電気部品となる画像表示装置5やスピーカ8L、8R、遊技効果ランプ9などの制御状態に応じて、各種の処理が選択されて実行される。この後、演出制御用マイクロコンピュータ120においてカウントされる各種の乱数を更新するための乱数更新処理が実行される(ステップS506)。さらに、主基板11からの演出制御コマンドによる報知指示などに基づく報知動作を制御するための報知処理を実行する(ステップS507)。
CPU123では、定期的に発生するタイマ割込みとは別に、主基板11からの演出制御コマンドを受信するための割込みが発生する。この割込みは、主基板11からの演出制御INT信号がオン状態となることにより発生する割込みである。演出制御INT信号がオン状態となることによる割込みが発生すると、CPU123は、自動的に割込禁止状態に設定するが、自動的に割込禁止状態にならないCPUを用いている場合には、割込禁止命令(DI命令)を発行することが好ましい。
主基板11からの演出制御INT信号がオン状態となることによりCPU123において割込みが発生することで、図45のフローチャートに示すコマンド受信割込み処理の実行が開始される。このコマンド受信割込み処理において、CPU123は、まず、各レジスタの値をスタックに退避する(ステップS521)。続いて、例えばI/Oポート124のうちで演出制御コマンドデータの入力に割り当てられて主基板11から送信された制御信号を受信する所定の入力ポートなどから、演出制御コマンドを読み込む(ステップS522)。そして、2バイト構成の演出制御コマンドのうちの1バイト目であるか否かを判別する(ステップS523)。ここで、演出制御コマンドの1バイト目(MODE)と2バイト目(EXT)とは、受信側で直ちに区別可能に構成されている。すなわち、先頭ビットによって、MODEとしてのデータを受信したのかEXTとしてのデータを受信したのかを、受信側において直ちに検出できる。受信したコマンドの先頭ビットが「1」である場合には、2バイト構成である演出制御コマンドのうちの有効な1バイト目(MODEデータ)を受信したと判別される。
ステップS523の処理にて1バイト目のMODEデータであると判別したときには(ステップS523;Yes)、演出制御バッファ設定部225に設けられた演出側受信コマンドバッファ231にて、演出制御コマンド受信カウンタにより指定される受信コマンドバッファに、受信したコマンドを格納する(ステップS524)。他方、ステップS523にて演出制御コマンドの1バイト目でないと判別したときには(ステップS523;No)、1バイト目のMODEデータを既に受信したか否かを判別する(ステップS525)。1バイト目のMODEデータを既に受信したか否かは、受信コマンドバッファに格納されているコマンドデータを確認することにより、判別することができる。
1バイト目を既に受信している場合には(ステップS525;Yes)、今回受信した1バイトのうちの先頭ビットが「0」であるか否かを判別し、先頭ビットが「0」であれば、有効な2バイト目を受信したとして、演出制御コマンド受信カウンタにより指定される次の受信コマンドバッファに、受信したコマンドを格納する(ステップS526)。ステップS526の処理にて2バイト目のコマンドデータを格納すると、演出制御コマンド受信カウンタの値を2加算し(ステップS527)、その値が「12」以上であるか否かを判別する(ステップS528)。「12」以上であれば(ステップS528;Yes)、演出制御コマンド受信カウンタをクリアして、その値を「0」に戻す(ステップS529)。
ステップS524の処理を実行した後や、ステップS525にて1バイト目のMODEデータを受信していない場合(ステップS525;No)、ステップS528にて演出制御コマンド受信カウンタの値が「12」未満である場合(ステップS528;No)、あるいはステップS529の処理を実行した後には、ステップS521の処理にて退避されていたレジスタを復帰し(ステップS530)、割込許可に設定する(ステップS531)。こうしたコマンド受信割込み処理により、主基板11から送信された演出制御コマンドが演出側受信コマンドバッファ231に格納される。その一方で、図44に示すステップS502の処理にて、タイマ割込みの発生が確認される。
図46は、図44のステップS504にて実行される演出制御コマンド解析処理の一例を示すフローチャートである。図46に示す演出制御コマンド解析処理において、CPU123は、まず、例えば演出側受信コマンドバッファ231に主基板11から送信された演出制御コマンドが格納されているか否かを確認することなどにより、受信コマンドがあるか否かを判定する(ステップS601)。このとき、受信コマンドがなければ(ステップS601;No)、そのまま演出制御コマンド解析処理を終了する。
ステップS601にて受信コマンドがあるときには(ステップS601;Yes)、CPU123が演出側受信コマンドバッファ231から受信コマンドを読み出し(ステップS602)、読み出された受信コマンドがエラー報知開始#1のコマンドであるか否かを判定する(ステップS603)。そして、エラー報知開始#1のコマンドである旨の判定がなされると(ステップS603;Yes)、演出制御フラグ設定部222に設けられたエラー報知開始フラグの値を“1”に設定する(ステップS604)。
ステップS603にてエラー報知開始#1のコマンドではない旨の判定がなされると(ステップS603;No)、ステップS602にて読み出された受信コマンドがエラー報知開始#2のコマンドであるか否かを判定する(ステップS605)。そして、エラー報知開始#2のコマンドである旨の判定がなされると(ステップS605;Yes)、エラー報知開始フラグの値を“2”に設定する(ステップS606)。
ステップS605にてエラー報知開始#2のコマンドではない旨の判定がなされると(ステップS605;No)、ステップS602にて読み出された受信コマンドがエラー報知開始#3のコマンドであるか否かを判定する(ステップS607)。そして、エラー報知開始#3のコマンドである旨の判定がなされると(ステップS607;Yes)、エラー報知開始フラグの値を“3”に設定する(ステップS608)。ステップS607にてエラー報知開始#3のコマンドではない旨の判定がなされると(ステップS607;No)、受信コマンドに対応したコマンド受信フラグをオン状態にセットする(ステップS609)。また、ステップS607にてエラー報知開始#3のコマンドではない旨の判定がなされたときには、可変表示開始コマンドであるか否かを判定し、可変表示開始コマンドであれば、例えばEXTデータをRAM122の所定領域(例えばパターン格納領域)に記憶させることなどにより、可変表示開始コマンドにて示された可変表示パターンを格納する処理などが実行されてもよい。ステップS604、S606、S608、S609の処理のいずれかが実行された後には、ステップS601の処理に戻る。
図47は、図44のステップS505にて実行される演出制御プロセス処理の一例を示すフローチャートである。図47に示す演出制御プロセス処理において、演出制御用マイクロコンピュータ120では、例えばCPU123が演出制御フラグ設定部222に設けられた演出制御プロセスフラグの値に応じて、以下のようなステップS620〜S625の各処理を実行する。
ステップS620の可変表示開始コマンド受信待ち処理は、演出制御プロセスフラグの値が“0”のときに実行される。この可変表示開始コマンド受信待ち処理において、演出制御用マイクロコンピュータ120では、例えばCPU123が主基板11から送信された可変表示開始コマンドを受信したか否かを判定する。このとき、可変表示開始コマンドを受信していなければ、そのまま可変表示開始コマンド受信待ち処理を終了する。また、可変表示開始コマンド受信待ち処理にて可変表示開始コマンドを受信した旨の判定がなされたときには、演出制御プロセスフラグの値を“1”に更新する。
ステップS621の演出表示制御設定処理は、演出制御プロセスフラグの値が“1”のときに実行される。この演出表示制御設定処理は、特別図柄表示装置4による特図ゲームにて特別図柄が変動表示されることに対応して、画像表示装置5における飾り図柄の可変表示を含めた各種の表示による演出を行うために、画像表示装置5の表示動作を設定するための処理を含んでいる。具体的な一例として、ステップS621の演出表示制御設定処理では、まず、主基板11からの可変表示開始コマンドにより指定された可変表示パターンが大当りパターンであるか否かを判定し、大当りパターンではないと判定されたときには、リーチハズレパターンであるか否かを判定する。そして、リーチハズレパターンではないと判定されたときには、通常ハズレパターンが指定されたものと判断して、通常ハズレ組合せとなる確定飾り図柄を決定するための通常ハズレ図柄決定処理を実行する。また、可変表示開始コマンドにより指定された可変表示パターンがリーチハズレパターンであるときには、リーチハズレ組合せとなる確定飾り図柄を決定するためのリーチハズレ図柄決定処理を実行する。
さらに、可変表示開始コマンドにより指定された可変表示パターンが大当りパターンであるときには、大当り組合せとなる確定飾り図柄を決定するための大当り図柄決定処理を実行する。このときには、例えばCPU123が主基板11から送信された表示結果通知コマンドを読み取ることなどにより、遊技状態が高確率状態となる確変大当りであるか、高確率状態にはならない通常大当りであるかを判定する。そして、確変大当りであると判定したときには、例えば図柄番号が奇数である確変図柄としての飾り図柄「1」、「3」、「5」、「7」または「9」のうちで、同一の確変図柄を、画像表示装置5における飾り図柄の可変表示における表示結果として「左」、「中」、「右」の各可変表示部にて導出表示する確定飾り図柄に決定する。他方、通常大当りであると判定したときには、例えば図柄番号が偶数である通常図柄としての飾り図柄「0」、「2」、「4」、「6」または「8」のうちで、同一の通常図柄を、画像表示装置5における飾り図柄の可変表示における表示結果として「左」、「中」、「右」の各可変表示部にて導出表示する確定飾り図柄に決定する。
これらの処理を実行することにより確定飾り図柄を決定した後、演出表示制御設定処理では、可変表示開始コマンドにより指定された可変表示パターンに対応する図柄表示制御パターンを決定し、その図柄表示制御パターンに対応した描画コマンドをVDPに送出するなどして、飾り図柄の可変表示を開始するための設定を行う。このときには、図柄表示制御パターンに対応して飾り図柄の可変表示時間を計測するためのタイマ設定なども行われる。この後、演出制御プロセスフラグの値を“2”に更新して、演出表示制御設定処理を終了する。
ステップS622の飾り図柄可変表示処理は、演出制御プロセスフラグの値が“2”のときに実行される。この飾り図柄可変表示処理では、例えば飾り図柄の可変表示を開始してからの経過時間に応じて図柄表示制御パターンにおける読出位置を切り替え、その読出位置から読み出された表示制御データに対応する描画コマンドをVDPに送出するなどして、画像表示装置5における表示動作の制御を行う。そして、飾り図柄の可変表示を終了するタイミングに達すると、大当り開始コマンド受信待ち時間の設定を行うとともに、演出制御プロセスフラグの値を“3”に更新する。
ステップS623の飾り図柄停止時処理は、演出制御プロセスフラグの値が“3”のときに実行される。この飾り図柄停止時処理では、主基板11から送信された大当り開始コマンドの受信があったか否かを判定する。そして、大当り開始コマンドを受信せずに大当り開始コマンド受信待ち時間が経過したときには、飾り図柄の可変表示結果がハズレであると判断して、演出制御プロセスフラグの値を“0”に更新する。また、飾り図柄停止時処理にて大当り開始コマンドを受信した旨の判定がなされたときには、飾り図柄の可変表示結果が大当りであると判断して、演出制御プロセスフラグの値を“4”に更新する。
ステップS624の大当り演出処理は、演出制御プロセスフラグの値が“4”のときに実行される。この大当り演出処理では、画像表示装置5における表示動作を制御することにより、大当り遊技状態に応じた画像を表示する制御を行う。そして、主基板11からの大当り終了コマンドを受信したか否かの判定を行い、受信した旨の判定がなされたときには、演出制御プロセスフラグの値を“5”に更新する。
ステップS625の大当り終了演出処理は、演出制御プロセスフラグの値が“5”のときに実行される。この大当り終了演出処理は、画像表示装置5にて大当り遊技状態が終了した旨を報知する演出表示などを実行するための制御を行う処理を含んでいる。その後、各種の演出表示が終了したときには、演出制御プロセスフラグの値を“0”に更新する。
図48は、図44のステップS507にて実行される報知処理の一例を示すフローチャートである。図48に示す報知処理において、CPU123は、まず、演出制御フラグ設定部222に設けられたエラー報知開始フラグの値が“1”であるか否かを判定する(ステップS641)。このとき、エラー報知開始フラグの値が“1”であれば(ステップS641;Yes)、エラー報知開始フラグの値を“0”に更新した後(ステップS642)、例えば図49(A)に示すような信号異常報知画面となる画像を画像表示装置5に表示させるための設定などといった、信号異常報知を開始するための設定を行う(ステップS643)。
ステップS641にてエラー報知開始フラグの値が“1”ではない旨の判定がなされると(ステップS641;No)、エラー報知開始フラグの値が“2”であるか否かを判定する(ステップS644)。そして、エラー報知開始フラグの値が“2”であれば(ステップS644;Yes)、エラー報知開始フラグの値を“0”に更新した後(ステップS645)、例えば図49(B)に示すようなリーチ回数異常報知画面となる画像を画像表示装置5に表示させるための設定などといった、リーチ回数異常報知を開始するための設定を行う(ステップS646)。
ステップS644にてエラー報知開始フラグの値が“2”ではない旨の判定がなされると(ステップS644;No)、エラー報知開始フラグの値が“3”であるか否かを判定する(ステップS647)。そして、エラー報知開始フラグの値が“3”であれば(ステップS647;Yes)、エラー報知開始フラグの値を“0”に更新した後(ステップS648)、例えば図49(C)に示すような通常ハズレ回数異常報知画面となる画像を画像表示装置5に表示させるための設定などといった、通常ハズレ回数異常報知を開始するための設定を行う(ステップS649)。
次に、払出制御基板15における動作を説明する。払出制御基板15では、電源基板10からの電力供給が開始され払出制御用マイクロコンピュータ150へのリセット信号がハイレベル(オフ状態)になったことに応じて、払出制御用マイクロコンピュータ150が起動し、図50のフローチャートに示すような払出制御メイン処理が実行される。なお、以下に説明する各処理は、払出制御用マイクロコンピュータ150が備えるCPU213によって実行されるものとする。また、払出制御用マイクロコンピュータ150が備えるタイマ回路216やシリアル通信回路217などで発生した各種の割込み要因に基づく割込み要求は、CPU213に所定の割込み処理を実行させるためのものである。そして、CPU213やCPU213以外の各種回路を含んだ概念を払出制御用マイクロコンピュータ150ということもあるものとする。図50に示す払出制御メイン処理を開始すると、払出制御用マイクロコンピュータ150は、まず、割込禁止に設定し(ステップS701)、割込モードの設定を行う(ステップS702)。続いて、例えばスタックポインタ指定アドレスの設定など、スタックポインタに関わる設定を行う(ステップS703)。また、内蔵デバイスレジスタの設定(初期化)を行う(ステップS704)。例えば、ステップS704の処理では、タイマ回路216や入出力ポート218といった内蔵デバイス(内蔵周辺回路)の設定(初期化)などが行われるとよい。
ステップS704の処理を実行した後には、例えば入出力ポート218に含まれる入力ポートにおける所定ビットの状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定する(ステップS705)。例えば、ステップS705の処理では、電源断信号が出力されていないオフ状態(ハイレベル)となっていることを確認する。
ステップS705にて電源断信号がオン状態であるときには(ステップS705;No)、所定時間(例えば0.1秒)が経過するまで待機した後(ステップS706)、ステップS705の処理に戻って、電源断信号がオフ状態となっているか否かの判定を再び行うようにする。これにより、払出制御用マイクロコンピュータ150は、電源電圧が安定したことを確認することができる。そして、ステップS705にて電源断信号がオフ状態であるときには(ステップS705;Yes)、RAM215をアクセス可能に設定する(ステップS707)。
ステップS707の処理を実行した後には、例えば入出力ポート218に含まれる入力ポートにおける所定ビットの状態をチェックすることなどにより、クリア信号がオン状態となっているか否かを判定する(ステップS708)。ここで、CPU213は、入力ポートを介して1回だけクリア信号の状態を確認するようにしてもよいが、クリア信号の状態を複数回確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、クリア信号の状態をもう1回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
ステップS708にてクリア信号がオフ状態である旨の判定がなされたときには(ステップS708;No)、RAM215のデータチェックを行い、チェック結果が正常であるか否かを判定する(ステップS709)。ステップS709の処理では、例えばRAM215の特定領域における記憶データを用いてチェックサムを算出し、算出されたチェックサムと払出チェックサムバッファに記憶されているチェックサムとを比較する。ここで、払出チェックサムバッファには、前回の電力供給停止時に、同様の処理によって算出されたチェックサムが記憶されている。そして、比較結果が不一致であれば、RAM215の特定領域におけるデータが電力供給停止時のデータとは異なっていることから、チェック結果が正常でないと判断される。
ステップS709におけるチェック結果が正常であるときには(ステップS709;Yes)、例えばRAM215の所定領域等に設けられた払出バックアップフラグがオンとなっているか否かを判定する(ステップS710)。払出バックアップフラグの状態は、電力供給が停止するときに、RAM215の所定領域等に設定される。そして、この払出バックアップフラグの設定箇所がバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、払出バックアップフラグの状態は保存されることになる。なお、ステップS710のような払出バックアップフラグがオンとなっているか否かの判定を、ステップS709のようなチェック結果の判定よりも先に行い、払出バックアップフラグがオンであるときにRAM215のデータチェック結果が正常であるか否かを判定するようにしてもよい。
ステップS710にて払出バックアップフラグがオンであるときには(ステップS710;Yes)、払出バックアップフラグをクリアしてオフ状態とした後(ステップS711)、払出制御用マイクロコンピュータ150の内部状態などを電力供給が停止されたときの状態に戻すための復旧時における設定を行う(ステップS712)。
また、ステップS708にてクリア信号がオンであるときや(ステップS708;Yes)、ステップS709にてチェック結果が正常ではないとき(ステップS709;No)、あるいはステップS710にて払出バックアップフラグがオフであるときには(ステップS710;No)、RAM215の初期化を行う(ステップS713)。続いて、払出制御用マイクロコンピュータ150の内部状態などを初期状態とするための初期化時における設定を行う(ステップS714)。例えば、ステップS714の処理では、RAM215の所定領域等に設けられた各種のフラグや各種のタイマ、あるいは各種のカウンタなどに、それぞれの初期値を設定すればよい。
ステップS712またはステップS714の処理を実行した後には、例えば払出制御用マイクロコンピュータ150が備えるタイマ回路216のレジスタ設定などを行うことにより、所定時間(例えば2ミリ秒)ごとにタイマ割込みが発生するように払出制御用マイクロコンピュータ150の内部設定を行う(ステップS715)。
この後、CPU213は、シリアル通信回路217によるシリアル通信動作の初期設定を行うためのシリアル通信初期設定処理を実行する(ステップS716)。このシリアル通信初期設定処理は、主基板11の側で遊技制御用マイクロコンピュータ100により実行される図27に示すステップS23の処理と同様の処理であればよい。また、CPU213は、割込み要求に基づいて実行される割込み処理に関する初期設定を行うための割込み初期設定処理を実行する(ステップS717)。この割込み初期設定処理は、主基板11の側で遊技制御用マイクロコンピュータ100により実行される図27に示すステップS24の処理と同様の処理であればよい。そして、CPU213は割込許可状態に設定して(ステップS718)、各種割込みの発生を待機する。このときには、電源断信号がオン状態となったか否か(出力されたか否か)の判定を行い(ステップS719)、オフであれば(ステップS719;No)、そのまま各種割込みの発生を待機する。また、電源断信号がオン状態となったときには(ステップS719;Yes)、払出側電源断処理を実行した後(ステップS720)、所定のループ処理を実行して、電力供給の停止による払出制御用マイクロコンピュータ150の動作停止まで待機する。なお、ステップS719の処理では、入力ポートを介して1回だけ電源断信号の状態を確認するようにしてもよいが、電源断信号の状態を複数回確認するようにしてもよい。例えば、電源断信号がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、電源断信号をもう1回確認する。このとき、電源断信号がオフ状態であれば、電源断信号がオフ状態である旨の判定を行うようにする。他方、このときに電源断信号の状態がオン状態であれば、所定時間が経過した後に、電源断信号の状態を再び確認するようにしてもよい。なお、電源断信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。このように電源断信号の状態を複数回確認する場合には、例えば確認動作を開始するときや1回目の確認結果と2回目の確認結果とを比較して不一致であったときなどに、払出制御用マイクロコンピュータ150に内蔵されたWDT(ウォッチドッグ・タイマ)をクリアするリトリガを行う。そして、リトリガが何らかの原因(例えばプログラムの暴走)で所定時間内に発生しなくなった場合には、WDTから出力されるタイムアウト信号に基づくユーザリセットを発生させ、リセット/割込みコントローラ212、CPU213、タイマ回路216、シリアル通信回路217などの各回路を初期化した後、所定のベクタテーブルで示されるアドレスからユーザプログラムの実行を開始して、自動復旧を行うようにしてもよい。
ステップS720の払出側電源断処理では、例えばCPU213が割込禁止に設定した後、入出力ポート218に含まれる出力ポートの所定ビットにクリアデータをセットするなどして、払出モータ51の動作を停止させるための設定を行う。このときには、出力ポートの所定ビット以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。続いて、例えばRAM215の特定領域における記憶データを用いてチェックサムを算出するなどして、チェックデータの作成を行うとともに、RAM215の所定領域等に設けられた払出バックアップフラグをオン状態にセットする。このとき作成されたチェックデータは、例えばRAM215の所定領域等に設けられた払出チェックサムバッファなどに格納される。そして、払出制御用マイクロコンピュータ150は、例えば所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM215へのアクセスを禁止する。
払出制御用マイクロコンピュータ150では、シリアル通信回路217にて発生した割込み要因に対応して、主基板11に搭載された遊技制御用マイクロコンピュータ100が実行する割込み処理を払出制御用マイクロコンピュータ150に適合させたシリアル通信エラー割込み処理が、実行されればよい。例えば、払出制御用マイクロコンピュータ150に設けられたシリアル通信回路217にてエラー割込みが発生するごとに、図32に示す処理を払出制御用マイクロコンピュータ150に適合させた処理が実行されればよい。この処理では、例えば払出制御用マイクロコンピュータ150が備えるシリアル通信回路217に設けられた送信動作部を未使用状態に設定するとともに、シリアル通信回路217に設けられた受信動作部を未使用状態に設定する。この後、払出制御用マイクロコンピュータ150では、例えばCPU213がシリアル通信エラーフラグなどの所定フラグをオン状態にセットするなどの処理が実行されればよい。
また、払出制御用マイクロコンピュータ150が備えるシリアル通信回路217にて受信割込みが発生するごとに、図33に示す処理を払出制御用マイクロコンピュータ150に適合させたシリアル受信割込み処理を実行し、払出制御用マイクロコンピュータ150が備えるシリアル通信回路217にて送信割込みが発生するごとに、図34に示す処理を払出制御用マイクロコンピュータ150に適合させたシリアル送信割込み処理を実行すればよい。
図51は、払出制御用マイクロコンピュータ150にてタイマ割込みが発生するごとに実行される払出制御用タイマ割込み処理の一例を示すフローチャートである。この払出制御用タイマ割込み処理は、主基板11から送信された払出制御コマンドに応じて払出モータ51を制御する払出制御処理となる処理である。図51に示す払出制御用タイマ割込み処理において、払出制御用マイクロコンピュータ150では、まず、CPU213が所定の入出力処理を実行して(ステップS731)、例えば入出力ポート218に含まれる入力ポートにおける所定ビットの状態をチェックしたり、出力ポートにおける所定ビットに対して所定の制御データをセットしたりする。
続いて、CPU213は、プリペイドカードユニット処理を実行して、インタフェース基板20を介して接続されたカードユニット70との間での通信を行う(ステップS732)。また、シリアル通信により主基板11から送信された払出制御コマンドを受信するための払出側受信処理を実行する(ステップS733)。そして、主基板11からの払出数指定コマンドを受信したときに賞球ACKコマンドを送信する設定などを行う賞球受信確認処理を実行する(ステップS734)。さらに、カードユニット70からの球貸し要求や、主基板11からの払出数指定コマンドに応じて、遊技球の払出動作を制御する払出動作制御処理を実行する(ステップS735)。
ステップS735の処理に続いて、CPU213は、例えばRAM215の所定領域等に設けられた各種のエラーフラグにおける状態に応じてエラー表示用LED74に所定の表示を行う7セグ表示処理を実行する(ステップS736)。また、主基板11に対して払出通知コマンドを送信するための払出側送信処理を実行する(ステップS737)。この後、CPU213は、払出側エラー解除処理を実行して、エラー解除スイッチ73からの検出信号がオン状態となったときに所定のエラーの解除を可能とし(ステップS738)、払出制御用タイマ割込み処理を終了する。
以上説明したように、上記実施の形態におけるパチンコ遊技機1では、電力供給が開始されると、例えば図28に示すステップS21にて乱数初期設定処理を実行することにより、乱数回路112に大当り判定用の乱数値R1となる乱数を発生させるための設定を行う。その後、CPU103がステップS24の処理を実行することなどによって、遊技制御用マイクロコンピュータ100が割込許可状態に設定される。そして、ステップS21では、例えば図29に示すような処理が乱数初期設定処理として実行されて、ステップS103にてROM104に記憶されている乱数初期設定データ(KRSS)の第4ビット[ビット4]を読み出し、その読出値が“1”であれば、ステップS106の処理を実行することにより乱数回路112により生成される乱数値における1周目のスタート値を、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づいて決定する。これにより、電力供給が開始された後に更新が開始される乱数の初期値を、複数のパチンコ遊技機1でそれぞれ異ならせることができ、このようにして生成される乱数値を大当り判定用の乱数値R1として用いて特別図柄表示装置4による特図ゲームなどにおける可変表示結果を「大当り」とするか否かの判定を行うことで、乱数のランダム性を高めて不正に大当りが発生させられてしまうことを防止できる。
また、遊技制御用マイクロコンピュータ100が備えるCPU103は、図40(A)のステップS302にて乱数回路112の乱数値レジスタ176から大当り判定用の乱数値R1となる格納値を読み出すごとに、読出値に対応するリーチ判定用の乱数値R4を、ステップS305にてリーチ判定用乱数カウンタにセットするなどして設定する。これにより、リーチ判定用乱数カウンタに記憶されるリーチ判定用の乱数値R4は、乱数回路112の乱数値レジスタ176から読み出される大当り判定用の乱数値R1に同期して更新されることになる。リーチ判定用乱数カウンタにセットされたリーチ判定用の乱数値R4は、図43のステップS334にてCPU103により読み出され、ステップS335にてリーチとするか否かの判定を行うために使用される。そのため、乱数回路112における乱数生成動作に異常が発生して乱数値R1の更新が行われていないときには、リーチ判定用の乱数値R4も更新されないことになり、画像表示装置5における複数回の飾り図柄の可変表示において、その可変表示態様が連続してリーチとなったり、あるいは長期間にわたりリーチとなることなく通常ハズレの表示結果となる。
こうした飾り図柄の可変表示態様により、遊技者は、乱数回路112における乱数生成動作に異常が発生したか否かを推定することができ、異常が発生した場合に著しい不利益を蒙ることを防止できる。一般に、飾り図柄の可変表示態様がリーチとなる確率は、可変表示結果が大当りとなる確率よりも高くなるように設定されていることから、長期間にわたり可変表示結果が大当りとならないことにより乱数回路112の乱数生成動作に異常が発生したと推定する場合に比べて短い期間のうちに、異常発生を推定することができる。
遊技制御用マイクロコンピュータ100が備えるCPU103は、遊技制御カウンタ設定部135に設けられた第1及び第2監視用カウンタを用いて、乱数回路112が備えるクロック信号出力回路171から供給されたクロック信号S1のレベル変化を、タイマ割込みが発生するごとにチェックする。ここで、クロック信号出力回路171は、ROM104に記憶された乱数初期設定データ(KRSS)の第5ビット[ビット5]の値が「1」であれば、基準クロック信号生成回路111から供給された内部システムクロックとしての基準クロック信号CLKを16分周することにより、乱数回路112にて発生させる乱数の更新周期を、内部システムクロックの16倍とする。そして、クロック信号出力回路171から入力されるクロック信号S1のレベルの変化が所定期間以上検出されないことにより、基準クロック信号生成回路111や乱数回路112に設けられたクロック信号出力回路171に異常が発生したものと判断することができる。
CPU103は、図37のステップS226にて第1及び第2監視用タイマのいずれかにおけるタイマ値が信号監視上限値に達している旨の判定がなされると、ステップS227の処理を実行することにより演出制御基板12に対してエラー報知開始#1のコマンドを送信させる。また、CPU103は、図43のステップS335にてリーチ判定用の乱数値R4がリーチ判定値データと合致してリーチとする旨の判定がなされると、ステップS338にてリーチ回数カウンタにおけるカウント値を1加算する一方、リーチ判定用の乱数値R4がリーチ判定値データと合致せずにリーチとしない旨の判定がなされると、ステップS341にて通常ハズレ回数カウンタにおけるカウント値を1加算する。そして、図37のステップS230にてリーチ回数カウンタにおけるカウント値がリーチ連続上限値を超えている旨の判定がなされると、ステップS231の処理を実行することにより演出制御基板12に対してエラー報知開始#2のコマンドを送信させる。加えて、図37のステップS232にて通常ハズレ回数カウンタにおけるカウント値が通常ハズレ連続上限値を超えている旨の判定がなされると、ステップS233の処理を実行することにより演出制御基板12に対してエラー報知開始#3のコマンドを送信させる。
演出制御基板12の側では、演出制御用マイクロコンピュータ120に設けられたCPU123が、図46のステップS603にてエラー報知開始#1のコマンドを受信したと判定したことによりステップS604にてエラー報知開始フラグの値を“1”に設定する。そして、エラー報知開始フラグの値を“1”に設定したことに対応して、図48のステップS643にて図49(A)に例示するような信号異常報知画面となる画像を画像表示装置5に表示させる設定などを行うことにより、信号異常報知を開始させる。また、CPU123は、図46のステップS605にてエラー報知開始#2のコマンドを受信したと判定したことにより、ステップS606にてエラー報知開始フラグの値を“2”に設定する。そして、エラー報知開始フラグの値を“2”に設定したことに対応して、図48のステップS646にて図49(B)に例示するようなリーチ回数異常報知画面となる画像を画像表示装置5に表示させる設定などを行うことにより、リーチ回数異常報知を開始させる。さらに、CPU123は、図46のステップS607にてエラー報知開始#3のコマンドを受信したと判定したことにより、ステップS608にてエラー報知開始フラグの値を“3”に設定する。そして、エラー報知開始フラグの値を“3”に設定したことに対応して、図48のステップS649にて図49(C)に例示するような通常ハズレ回数異常報知画面となる画像を画像表示装置5に表示させる設定などを行うことにより、通常ハズレ回数異常報知を開始させる。このように、乱数回路112での乱数生成動作における異常発生が検出されたときには、乱数回路112に異常が発生した旨を報知するための演出を実行することで、乱数回路112での異常発生をパチンコ遊技機1の外部において容易に認識可能とし、遊技者が乱数回路112に異常が発生したままの状態で遊技を継続することを防止できる。
図37に示すステップS227、S231、S233の処理のいずれかが実行されたときには、CPU123がステップS229の処理を実行することによりHALT(停止)状態に移行することで、CPU103による遊技の進行を制御する処理の実行が停止される。これにより、乱数回路112での乱数生成動作において異常が発生したときに、パチンコ遊技機1における遊技の進行を停止させることができる。
ROM104に記憶されている最優先割込み設定(KHPR)が「06h」、「07h」以外の値であるときには、シリアル通信回路107からのエラー割込み要求に基づく割込み処理が、シリアル通信回路107からの受信割込み要求や送信割込み要求に基づく割込み処理に比べて優先的に実行されることになる。そして、オーバーランエラーやノイズエラー、フレーミングエラー、パリティエラーなどといった、シリアル通信回路107でのエラー発生に対応したエラー割込み要求がCPU103に通知されると、例えばCPU103が図32に示すステップS41、S42の処理を実行してシリアル通信回路107が備える送信動作部202と受信動作部201を未使用状態に設定することなどにより、シリアル通信回路107でのシリアル通信動作を直ちに停止させることができる。これにより、シリアル通信での異常発生により誤った情報が伝送されることを防止できる。
特図ゲームや飾り図柄の可変表示での表示結果を「大当り」とするか否かの判定には乱数回路112により生成される大当り判定用の乱数値R1が用いられる。その一方で、高確率状態とするか否かの判定には、例えばCPU103が図35に示すステップS75にて図38に示すようなソフトウェア乱数更新処理を実行することにより更新される確変判定用の乱数値R2が用いられる。このように、大当り判定用と確変判定用とでそれぞれ更新手法が異なる乱数値を用いることで、これら2つの判定に周期性が生じてしまうことを防止して、判定結果間でのランダム性を高めることができる。さらに、図38に示すステップS244での比較結果に基づき、ステップS245にて確変判定用乱数カウント値が確変判定用の乱数値R2における初期値と合致する旨の判定がなされると、ステップS246にて初期値決定用乱数カウンタから読み出した初期値決定用の乱数値R3を用いて、確変判定用の乱数値R2における初期値を変更する。こうして確変判定用の乱数値R2における更新が一巡するごとに初期値が変更されることにより、高確率状態とするか否かの判定におけるランダム性を高めることができる。
なお、リーチ判定用の乱数値R4を大当り判定用の乱数値R1と同期して更新するものとしては、大当り判定用の乱数値R1そのものをリーチ判定用の乱数値R4として用いるものであってもよい。この場合、リーチ判定テーブル142は、図52に示すように、大当り判定用の乱数値R1を、リーチ判定値データと通常ハズレ判定値データのいずれかに対応付ける設定データから構成される。そして、図40のステップS305では、ステップS302にて乱数回路112が備える乱数値レジスタ176から読み出した格納値そのものを、リーチ判定用の乱数値R4としてリーチ判定用乱数カウンタにセットすればよい。
大当り判定用の乱数値R1と同期して更新する数値データは、リーチ判定用の乱数値R4に限定されるものではなく、例えば予告演出における演出態様を決定するために用いられる予告決定用の乱数値や、飾り図柄の可変表示態様などを定める可変表示パターンを決定するために用いられる可変表示パターン決定用の乱数値を、大当り判定用の乱数値R1と同期して更新するようにしてもよい。この場合には、上記実施の形態におけるリーチ判定用の乱数値R4と同様に、例えば図40(A)のステップS305にて、大当り判定用の乱数値R1と各々の乱数値とを対応付けるテーブルを参照するなどして、乱数回路112から読み出した大当り判定用の乱数値R1に応じた乱数値に更新すればよい。また、大当り判定用の乱数値R1そのものを、各種の乱数値として用いるようにしてもよい。そして、例えば予告決定用の乱数値を大当り判定用の乱数値R1と同期して更新する場合には、乱数回路112での乱数生成動作に異常が発生して乱数値R1の更新が行われていないときに、予告決定用の乱数値も更新されないことになるので、複数回の特図ゲームや飾り図柄の可変表示において、同一の演出態様となる予告演出が連続して実行されたり、あるいは長期間にわたり予告演出が実行されないことになる。こうした予告演出の実行態様により、遊技者は、乱数回路112での乱数生成動作に異常が発生したか否かを推定することができ、異常が発生した場合に著しい不利益を蒙ることを防止できる。
以上に述べた実施の形態では、リーチ判定用の乱数値R4が乱数回路112の乱数値レジスタ176から読み出される大当り判定用の乱数値R1に同期して更新されるように構成することで、飾り図柄の可変表示態様が連続してリーチとなったり、あるいは長期間にわたりリーチとなることなく通常ハズレの表示結果となったときに、乱数回路112での乱数生成動作における異常発生を推定できるようにしていた。これに対して、遊技制御用マイクロコンピュータ100にてCPU103が乱数回路112から読み出した大当り判定用の乱数値R1を保持しておき、所定回数にわたり乱数回路112から読み出した乱数値R1が同一の値となっているときに、乱数回路112での乱数生成動作における異常発生を推定できるようにしてもよい。以下に、乱数回路112から読み出した乱数値R1を保持することで乱数回路112での乱数生成動作における異常発生を推定可能としたパチンコ遊技機1の一例について説明する。
この実施の形態では、例えば遊技制御用データ保持エリア130に、図53に示すような大当り判定用乱数値保持部137を設けておく。大当り判定用乱数値保持部137には、乱数回路112から読み出した大当り判定用の乱数値R1がセットされて保持される。また、遊技制御カウンタ設定部135には、一致回数カウンタを設けておく。この一致回数カウンタは、大当り判定用乱数値保持部137に保持されている乱数値R1と乱数回路112から読み出した乱数値R1とが連続して一致した回数をカウントするためのものである。
図54は、この実施の形態における入賞処理として、図39のステップS262にて実行される処理の一例を示すフローチャートである。図54に示すステップS301〜S304の処理は、図40(A)に示すステップS301〜S304の処理と同一である。図54に示す入賞処理では、ステップS304の処理を実行した後に、大当り判定用乱数値保持部137に保持されている乱数値R1が、ステップS302にて乱数回路112から読み出した乱数値レジスタ176の格納値と一致するか否かを判定する(ステップS361)。
ステップS361にて保持されている乱数値R1とステップS302での読出値とが異なれば(ステップS361;No)、一致回数カウンタをクリアしてカウント値を「0」に設定した後(ステップS362)、ステップS302にて乱数回路112から読み出した乱数値R1を大当り判定用乱数値保持部137にセットして保持させる(ステップS363)。
また、ステップS361にて保持されている乱数値R1とステップS302での読出値とが一致していれば(ステップS361;Yes)、一致回数カウンタにおけるカウント値を1加算する(ステップS364)。そして、ステップS364にて1加算された一致回数カウンタにおけるカウント値が、一致回数上限値として予め定められた所定値(例えば「10」)と合致しているか否かを判定する(ステップS365)。このとき、一致回数カウンタにおけるカウント値が一致回数上限値未満であれば(ステップS365;No)、入賞処理を終了する。
これに対して、ステップS365にて一致回数カウンタにおけるカウント値が一致回数上限値に達していれば(ステップS365;Yes)、乱数回路112での乱数生成動作に異常が発生したと判断して、演出制御基板12に対してエラー報知開始#4のコマンドを送信するための設定を行う(ステップS366)。ステップS366の処理を実行した後には、所定の初期化処理を実行し(ステップS367)、HALT(停止)状態に移行することで(ステップS368)、入賞処理が終了するとともに、CPU103による遊技の進行を制御する処理の実行が停止される。なお、ステップS366の処理を実行した後には、初期化処理のみを行って入賞処理を終了するようにしてもよいし、あるいはHALT状態への移行のみを行い、その後にユーザリセットなどにより各部が初期化されるようにしてもよい。
演出制御基板12の側では、CPU123が図44に示すステップS504にて実行される演出制御コマンド解析処理を実行することにより、主基板11から送信されたエラー報知開始#4のコマンドを受信した旨の判定がなされると、例えばエラー報知開始フラグの値を“4”に設定する。そして、エラー報知開始フラグの値を“4”に設定したことに対応して、予め用意されたエラー報知画面となる画像を画像表示装置5に表示させる設定などを行うことにより、所定のエラー報知を開始させる。
以上説明したように、この実施の形態によれば、図54のステップS302にて乱数回路112から乱数値R1が読み出されるごとに、読み出された乱数値と大当り判定用乱数値保持部137に保持されている乱数値とが一致するか否かを、ステップS361にて判定する。そして、一致しないと判定されることにより、乱数回路112から読み出した乱数値R1を大当り判定用乱数値保持部137にセットして保持させる一方で、一致すると判定されることにより、一致回数カウンタにおけるカウント値を1加算することで、一致する旨の判定が連続してなされた回数をカウントする。そして、ステップS365にて一致回数カウンタにおけるカウント値が一致回数上限値に達した旨の判定がなされたことにより、乱数回路112での乱数生成動作における異常発生が検出されたと判断することができる。
また、CPU103は、ステップS366の処理を実行することにより演出制御基板12に対してエラー報知開始#4のコマンドを送信させ、演出制御基板12の側では、主基板11から送信されたエラー報知開始#4のコマンドを受信したことに対応して、所定のエラー報知を開始させる。このようにして、乱数回路112に異常が発生した旨を報知するための演出を実行することで、乱数回路112での異常発生をパチンコ遊技機1の外部において容易に認識可能とし、遊技者が乱数回路112に異常が発生したままの状態で遊技を継続することを防止できる。
なお、大当り判定用乱数値保持部137に保持されている乱数値が更新されずに所定期間が経過したときに、乱数回路112での異常発生が検出されたと判断するようにしてもよい。この場合には、例えば、大当り判定用乱数値保持部137に乱数回路112から読み出した乱数値R1がセットされてからの経過時間を計測する経過時間タイマを設けておく。そして、図54のステップS302にて乱数回路112の乱数値レジスタ176から乱数値R1を読み出したときには、ステップS361と同様にして読み出した乱数値と保持されている乱数値とが一致しているか否かを判定し、一致しないと判定されると、読み出した乱数値を大当り判定用乱数値保持部137にセットするとともに、経過時間タイマによる経過時間の計測を開始させる。
他方、乱数回路112から読み出した乱数値と大当り判定用乱数値保持部137に保持されている乱数値とが一致すると判定されると、経過時間タイマによって計測された経過時間が予め定められた異常発生検出時間に達しているか否かを判定する。そして、異常発生検出時間に達していると判定されたことにより、乱数回路112での異常発生が検出されたと判断すればよい。なお、遊技者がパチンコ遊技機1での遊技を終了した時点で、経過時間タイマによる経過時間の計測も終了させるようにしてもよい。例えばパチンコ遊技機1が備える操作ノブ30の操作がなされているか否かをタッチセンサなどによって検出し、操作が行われていないときには経過時間タイマをクリアして経過時間の計測を終了させるようにすればよい。これにより、パチンコ遊技機1での遊技が行われないために乱数回路112から乱数値R1が読み出されず、それに伴って大当り判定用乱数値保持部137に保持されている乱数値の更新も行われないために、経過時間タイマにより計測される経過時間が異常発生検出時間に達してしまい、乱数回路112に故障が発生したと誤って検出されてしまうことを防止できる。
上記実施の形態では、パチンコ遊技機1が普通可変入賞球装置6に設けられた1つの始動入賞口を備えるものとして説明したが、本発明はこれに限定されるものではなく、遊技領域に複数の始動入賞口が設けられていてもよい。この場合、始動入賞口の個数に応じて始動口スイッチを複数設置し、各始動入賞口に入賞した遊技球を検出できるようにすればよい。また、乱数回路112では、初期値設定回路、乱数生成回路、タイマ回路、ラッチ信号生成回路、乱数値レジスタを、始動入賞口の個数に応じてそれぞれ複数設けて、複数の始動入賞口に遊技球が同時期に入賞したことに基づいて読み出される大当り判定用の乱数値R1を、各始動入賞口への入賞に応じて異ならせるようにするとよい。
図55は、パチンコ遊技機1の遊技領域に複数の始動入賞口が設けられる場合の一例として、遊技領域に左右2つの始動入賞口が設けられた場合における乱数回路112の一構成例を示すブロック図である。この場合には、左右2つの始動入賞口それぞれに対応して、左始動口スイッチ22Aと、右始動口スイッチ22Bとを設けておく。左始動口スイッチ22Aは、左の始動入賞口に入賞した遊技球を検出したときにオン状態となる始動入賞信号SSAを出力する。右始動口スイッチ22Bは、右の始動入賞口に入賞した遊技球を検出したときにオン状態となる始動入賞信号SSBを出力する。また、図55に示す乱数回路112は、左の始動入賞口に対応して、初期値設定回路172Aと、乱数生成回路173Aと、タイマ回路174Aと、ラッチ信号生成回路175Aと、乱数値レジスタ176Aとを備えている。加えて、図55に示す乱数回路112は、右の始動入賞口に対応して、初期値設定回路172Bと、乱数生成回路173Bと、タイマ回路174Bと、ラッチ信号生成回路175Bと、乱数値レジスタ176Bとを備えている。
このような構成において、初期値設定回路172A、172Bは、それぞれ独立して、パチンコ遊技機1への電力供給が開始された後に乱数回路112にて乱数の発生を開始する際における1周目の初期値の設定を行う。また、初期値設定回路172Aは、乱数生成回路173Aが所定の初期値から所定の最終値まで循環的に数値データを更新したときに新たな初期値の設定を行う。他方、初期値設定回路172Bは、乱数生成回路173Bが所定の初期値から所定の最終値まで循環的に数値データを更新したときに新たな初期値の設定を行う。初期値設定回路172Aは設定した初期値を示す初期値設定信号SKAを出力して乱数生成回路173Aに入力させる一方、初期値設定回路172Bは設定した初期値を示す初期値設定信号SKBを出力して乱数生成回路173Bに入力させる。
乱数生成回路173A、173Bは、例えばクロック信号出力回路171から供給されるクロック信号S1の立上がりエッジなどに応答して、それぞれが互いに独立して出力するカウント値CA、CBを所定の初期値から所定の最終値まで、予め定められた順序に従って循環的に更新する。タイマ回路174Aは、左始動口スイッチ22Aからオン状態の始動入賞信号SSAが入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、ラッチ信号生成回路175Aに対する出力信号をオン状態とする。タイマ回路174Bは、右始動口スイッチ22Bからオン状態の始動入賞信号SSBが入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、ラッチ信号生成回路175Bに対する出力信号をオン状態とする。
ラッチ信号生成回路175Aは、タイマ回路174Aからの入力信号を、クロック信号出力回路171から出力されるクロック信号S2の立上がりエッジに同期して出力することにより、ラッチ信号SLAを生成し、乱数値レジスタ176Aに入力させる。ラッチ信号生成回路175Bは、タイマ回路174Bからの入力信号を、クロック信号出力回路171から出力されるクロック信号S2の立上がりエッジに同期して出力することにより、ラッチ信号SLBを生成し、乱数値レジスタ176Bに入力させる。
乱数値レジスタ176Aは、乱数生成回路173Aから入力されるカウント値CAを、ラッチ信号生成回路175Aから入力されるラッチ信号SLAの立上がりエッジに応答してラッチし、大当り判定用の乱数値R1として記憶する。また、乱数値レジスタ176Aは、遊技制御用マイクロコンピュータ100からの出力制御信号SCAがオフ状態であるときに読出不能(ディセイブル)状態となる一方、出力制御信号SCAがオン状態であるときに読出可能(イネイブル)状態となって有効な乱数値を示す乱数値出力信号SOAを出力する。乱数値レジスタ176Bは、乱数生成回路173Bから入力されるカウント値CBを、ラッチ信号生成回路175Bから入力されるラッチ信号SLBの立上がりエッジに応答してラッチし、大当り判定用の乱数値R1として記憶する。また、乱数値レジスタ176Bは、遊技制御用マイクロコンピュータ100からの出力制御信号SCBがオフ状態であるときに読出不能(ディセイブル)状態となる一方、出力制御信号SCBがオン状態であるときに読出可能(イネイブル)状態となって有効な乱数値を示す乱数値出力信号SOBを出力する。
この場合にも、クロック信号出力回路171から出力されるクロック信号S1を遊技制御用マイクロコンピュータ100が備える入出力ポート108に含まれる入力ポート#0の第1ビット[ビット1]に入力させ、クロック信号S1のレベルの変化を監視すればよい。このような構成により、左右の始動入賞口に遊技球が同時に入賞したような場合でも、カウント値CA、CBはそれぞれ独立して乱数値レジスタ176A、176Bに記憶される。そして、乱数値レジスタ176A、176Bに同時期に記憶された乱数値(カウント値CA、CB)は、1回の遊技制御用タイマ割込み処理にてそれぞれが実行される複数種類の入賞処理のうちで対応する入賞処理が実行されることによって読み出され、特図保留記憶部131に記憶されればよい。これにより、CPU103は、複数の始動入賞口に遊技球が同時期に入賞したことに基づく大当り判定用の乱数値R1を、タイミングをずらさずに乱数回路112から読み出すことができ、遊技者に不公平感を与えることがない。また、このような構成でも、基準クロック信号生成回路111や乱数回路112内のクロック信号出力回路171などは共通したものを用いることができるので、製造コストの増大を抑制することができる。
その他にも、この発明は上記実施の形態に限定されるものではなく、様々な変形及び応用が可能である。例えば上記実施の形態では、始動口スイッチ22から出力された検出信号が、始動入賞信号SS1として乱数回路112に設けられたタイマ回路174に入力される。そして、タイマ回路174において、始動入賞信号SS1が入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、始動入賞信号SS1をラッチ信号生成回路175に出力していた。しかしながら、この発明はこれに限定されるものではなく、始動口スイッチ22からの検出信号を遊技制御用マイクロコンピュータ100が備えるCPU103に入力し、CPU103が所定回(例えば2回)の遊技制御用タイマ割込み処理を実行する期間(例えば4ミリ秒間)にわたり、始動口スイッチ22からの検出信号が継続してオン状態であると判定したときに、ラッチ用始動入賞信号SNを乱数回路112のラッチ信号生成回路175に送出するようにしてもよい。この場合、図8に示すような乱数回路112が備えるタイマ回路174は不要であり、例えばラッチ信号生成回路175が備えるD型フリップフロップ回路のD入力端子に、CPU103から出力されるラッチ用始動入賞信号SNを入力させる。そして、ラッチ信号生成回路175が備えるクロック端子には、クロック信号出力回路171から出力されるクロック信号S2を入力させればよい。ラッチ信号生成回路175は、D入力端子に入力されるラッチ用始動入賞信号SNを、クロック端子に入力されるクロック信号S2の立上がりエッジに同期させて出力することにより、ラッチ信号SLを生成して出力する。
また、この場合には、図36に示すステップS203の判定処理で用いられるスイッチオン判定値を、始動口スイッチ22からの検出信号がオン状態となってからオン状態のラッチ用始動入賞信号SNをラッチ信号生成回路175に送出するまでに要する期間よりも長い時間にわたり始動口スイッチ22からの検出信号がオン状態であるときに、始動口スイッチ22からの始動入賞信号がオン状態であると判定するための判定値となるように設定すればよい。具体的な一例として、2回の遊技制御用タイマ割込み処理を実行する期間である4ミリ秒間にわたり始動口スイッチ22からの検出信号が継続してオン状態であるときにオン状態のラッチ用始動入賞信号SNをラッチ信号生成回路175に送出する場合には、ステップS203にて始動口スイッチタイマにおけるタイマ値と比較するスイッチオン判定値を、「2」よりも大きな値(例えば「3」)に予め定めておく。そして、ステップS203にて始動口スイッチタイマにおけるタイマ値がスイッチオン判定値に達しているときには、始動入賞信号がオン状態であると判断して、ステップS204にて始動入賞フラグをオン状態にセットする。これにより、遊技制御用タイマ割込み処理の実行回数がスイッチオン判定値に対応した所定回に達するまでの間、始動口スイッチ22からの検出信号が継続してオン状態であるときに、特別図柄表示装置4による特図ゲームの実行条件が成立したと判定されることになる。その一方で、ラッチ用始動入賞信号SNは、遊技制御用タイマ割込み処理の実行回数がスイッチオン判定値に対応した所定回数に達するまでの時間よりも短い時間である4ミリ秒間にわたり始動口スイッチ22からの検出信号が継続してオン状態であることを条件に、オン状態となる。
上記実施の形態では、図40(A)に示すステップS302にて乱数回路112が備える乱数値レジスタ176から格納値を読み出したときに、ステップS305の処理を実行することにより、リーチ判定用の乱数値R4を大当り判定用の乱数値R1と同期して更新させるものとして説明した。しかしながら、この発明はこれに限定されるものではなく、例えば図41に示すステップS312にて特図保留記憶部131から大当り判定用の乱数値R1が読み出されたときに、図40(A)に示すステップS305と同様の処理を実行することにより、その読出値に対応するリーチ判定用の乱数値R4を設定するようにしてもよい。この場合には、特図ゲームでや飾り図柄の可変表示における表示結果を大当りとするか否かの判定に用いられる大当り判定用の乱数値R1に対応する値に設定されるリーチ判定用の乱数値R4を用いて、飾り図柄の可変表示態様をリーチとするか否かの判定を行うことになる。このようにしても、乱数回路112における乱数生成動作に異常が発生して乱数値R1の更新が行われていないときには、リーチ判定用の乱数値R4も更新されないことになり、画像表示装置5における複数回の飾り図柄の可変表示において、その可変表示態様が連続してリーチとなったり、あるいは長期間にわたりリーチとなることなく通常ハズレの表示結果となるので、乱数回路112での乱数生成動作における異常発生を推定することができる。
上記実施の形態において、乱数回路112が備えるタイマ回路174は、基準クロック信号生成回路111により生成された基準クロック信号CLKを用いて始動入賞信号SS1の入力時間を計測していたが、これに限定されず、基準クロック信号CLKを分周したクロック信号や、基準クロック信号生成回路111により生成される基準クロック信号CLKとは異なるクロック信号を用いてもよい。例えば、タイマ回路174は、クロック信号出力回路171から出力されたクロック信号S1やクロック信号S2を用いて始動入賞信号SS1の入力時間を計測してもよい。また、上記実施の形態において、タイマ回路174には、所定の時間として3ミリ秒が設定されていたが、これに限定されず、2回の遊技制御用タイマ割込み処理の実行時間である4ミリ秒よりも短い時間であれば任意に設定可能である。
さらに、上記実施の形態において、CPU103は、2回の遊技制御用タイマ割込み処理が実行されている期間(4ミリ秒)にわたり始動口スイッチ22からの検出信号である始動入賞信号SS1が継続してオン状態であることに基づいて、図39に示すステップS262の入賞処理を実行していた。しかしながら、本発明は、これに限定されず、上述した遊技制御用タイマ割込み処理の実行回数は、任意であり、例えば、CPU103は、3回の遊技制御用タイマ割込み処理が実行されている期間(6ミリ秒)にわたり始動入賞信号SS1が継続してオン状態であることに基づいて、入賞処理を実行してもよい。この場合、乱数回路112が備えるタイマ回路174には、3回の遊技制御用タイマ割込処理の実行時間である6ミリ秒よりも短い時間を設定すればよい。
上記実施の形態では、遊技制御用マイクロコンピュータ100がシリアル通信回路107を備えるとともに、払出制御用マイクロコンピュータ150がシリアル通信回路217を備えるように構成され、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150の双方がシリアル通信を行うものとして説明した。しかしながら、この発明はこれに限定されるものではなく、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150の少なくともいずれか一方が、シリアル通信を行うための構成を備えていればよい。以下では、遊技制御用マイクロコンピュータ100と払出制御用マイクロコンピュータ150のうちでシリアル通信回路を備える一方のマイクロコンピュータを第1のマイクロコンピュータとし、シリアル通信回路を備えない他方のマイクロコンピュータを第2のマイクロコンピュータとする。この場合、第2のマイクロコンピュータでは、例えばシリアル通信線を介して第1のマイクロコンピュータから伝送されたデータをパラレルデータに変換するシリアル−パラレル変換回路(例えばシフトレジスタ)を備えていてもよい。あるいは、第2のマイクロコンピュータでは、第1のマイクロコンピュータから伝送されるデータを所定周期でサンプリングして、シリアル通信線を介して伝送されたデータを取得するようにしてもよい。
また、第2のマイクロコンピュータから第1のマイクロコンピュータに対しては、複数のデータ通信線を用いたパラレル通信により通信データを伝送してもよい。そして、第1のマイクロコンピュータには、複数のデータ通信線に対応した入力ポートを設け、パラレル通信により伝送された通信データを取得するようにしてもよい。この場合、第1のマイクロコンピュータが備えるシリアル通信回路では、送信動作部のみを用いるようにすればよく、受信動作部は未使用状態に設定しておけばよい。
上記実施の形態では、遊技制御用マイクロコンピュータ100が備える入出力ポート108に含まれる入力ポート#0の第1ビット[ビット1]には、乱数回路112のクロック信号出力回路171から出力されるクロック信号S1を入力させ、クロック信号S1のレベルの変化を監視するものとして説明した。しかしながら、この発明はこれに限定されるものではなく、例えばクロック信号出力回路171から出力されるクロック信号S2を入出力ポート108に入力させて、クロック信号S2のレベルの変化を監視するようにしてもよい。また、主基板11に搭載された基準クロック信号生成回路111とは別個に、乱数回路112内に基準クロック信号CLKを生成するためのクロック信号生成回路が設けられる場合には、そのクロック信号生成回路から出力される基準クロック信号CLKを入出力ポート108に入力させて、基準クロック信号CLKのレベルの変化を監視するようにしてもよい。さらに、クロック信号S1、S2や基準クロック信号CLKを入出力ポート108に含まれる所定の入力ポートに直接入力させるものに限定されず、クロック信号S1、S2や基準クロック信号CLKを所定の分周回路に入力させて分周させた後の信号を、入出力ポート108に含まれる所定の入力ポートに直接入力させて、入力ポートに入力された分周信号のレベルの変化を監視するようにしてもよい。このような構成においても、乱数回路112の動作状態に異常が発生したことを検出して、遊技者が不利益を受けるといった事態を防止することができる。
上記実施の形態では、乱数回路112から読み出される大当り判定用の乱数値R1に同期してリーチ判定用の乱数値R4を更新させ、飾り図柄の可変表示態様が連続してリーチとなったり、あるいは長期間にわたりリーチとなることなく通常ハズレの表示結果となることにより、乱数回路112での異常発生を推定可能にするとともに、クロック信号出力回路171から供給されるクロック信号S1のレベルの変化を監視して、クロック信号S1のレベルの変化が所定時間以上検出されないことにより、基準クロック信号生成回路111や乱数回路112に設けられたクロック信号出力回路171に異常が発生したものと判断できるようにしている。しかしながら、この発明はこれに限定されるものではなく、飾り図柄の可変表示態様が連続してリーチとなったり、あるいは長期間にわたりリーチとなることなく通常ハズレの表示結果となることにより、乱数回路112での異常発生を推定可能にする構成と、クロック信号出力回路171から供給されるクロック信号S1のレベルの変化を監視して、クロック信号S1のレベルの変化が所定時間以上検出されないことにより、基準クロック信号生成回路111や乱数回路112に設けられたクロック信号出力回路171における異常発生を検出可能にする構成との、少なくともいずれかの構成が設けられていればよい。さらに、飾り図柄の可変表示態様を連続してリーチとする旨の判定がなされた回数がリーチ連続上限値を超えたときに、乱数回路112に異常が発生したと判断する構成のみを備えていてもよい。あるいは、飾り図柄の可変表示態様を連続してリーチとせずに通常ハズレの表示結果とする旨の判定がなされた回数が通常ハズレ連続上限値を超えたときに、乱数回路112に異常が発生したと判断する構成のみを備えていてもよい。
上記実施の形態では、乱数回路112が主基板11上にて遊技制御用マイクロコンピュータ100の外部に設けられるものとして説明したが、これに限定されるものではなく、1チップのマイクロコンピュータである遊技制御用マイクロコンピュータ100に乱数回路112が内蔵されていてもよい。乱数回路112を遊技制御用マイクロコンピュータ100に内蔵させた場合には、基板スペースを確保することが可能になるとともに、不正基板の設置等によって乱数回路112で発生させた乱数値を示す数値データを外部から書き換えることが困難になり、偽造の防止を図ることができる。
上記実施の形態では、「0」〜「9」を示す数字等から構成される特別図柄のうちで、「7」を示す特別図柄を大当り図柄とし、それ以外の数値を示す特別図柄をハズレ図柄とし、遊技状態が高確率状態となる確変大当りとなるか否かは、特別図柄とは別個に決定されるものとして説明した。しかしながら、この発明はこれに限定されるものではなく、遊技状態が高確率状態となる確変大当りのときの大当り図柄である確変大当り図柄と、遊技状態が高確率状態にはならない通常大当りのときの大当り図柄である通常大当り図柄とを、互いに異なる特別図柄としてもよい。例えば、「3」を示す特別図柄を通常大当り図柄とし、「7」を示す特別図柄を確変大当り図柄としてもよい。この場合には、表示結果通知コマンドとなるコマンド90XXhのうち、コマンド9001hを特図ゲームでの確定特別図柄が通常大当り図柄としての「3」を示す特別図柄であることを通知するコマンドとし、コマンド9002hを特図ゲームでの確定特別図柄が確変大当り図柄としての「7」を示す特別図柄であることを通知するコマンドとすればよい。
上記実施の形態では、主基板11から演出制御基板12に対してエラー報知開始#1〜#4のコマンドのいずれかが送信されると、演出制御用マイクロコンピュータ120のCPU123が画像表示装置5に所定の画像を表示させて、乱数回路112での乱数生成動作において異常が発生したことを報知するものとして説明した。しかしながら、この発明はこれに限定されるものではなく、乱数回路112にて異常が発生したことをパチンコ遊技機1の外部から認識可能とする任意の報知動作が行われればよい。例えば、演出制御用マイクロコンピュータ120のCPU123は、主基板11から送信されたエラー報知開始#1〜#4のいずれかを受信したことに応答して、音声制御基板13に対してエラー報知用の音声制御信号を送出し、スピーカ8L、8Rからの音声出力によって乱数回路112での異常発生を報知してもよい。あるいは、演出制御用マイクロコンピュータ120のCPU123は、ランプ制御基板14に対してエラー報知用のランプ制御信号を送出し、遊技効果ランプ9に含まれるエラー報知用ランプの点灯・点滅などによって乱数回路112での異常発生を報知してもよい。また、図37に示すステップS227、S231、S233の処理や図54に示すステップS366の処理では、遊技制御用マイクロコンピュータ100のCPU103が入出力ポート108に含まれる出力ポートの所定ビットに制御データをセットするなどして、乱数回路112にて異常が発生したことを報知するためのランプを点灯・点滅させたり、音声を出力させたりしてもよい。
上記実施の形態では、図35のフローチャートに示すような遊技制御用タイマ割込処理にて、ステップS73のエラー処理として図37のフローチャートに示すような処理が実行されることで、クロック信号出力回路171から供給されるクロック信号S1のレベルの変化を監視するものとして説明した。これに対して、パチンコ遊技機1への電力供給が開始された後、遊技制御用マイクロコンピュータ100にて割込みが許可される以前に、乱数回路112が備えるクロック信号出力回路171から供給されるクロック信号S1におけるレベル変化の有無を確認するようにしてもよい。具体的な一例として、図28に示すステップS23にて割込み初期設定処理を実行した後などに、以下のような入力信号初期確認処理を実行する。
入力信号初期確認処理を開始すると、CPU103は、入出力ポート108に含まれる入力ポート#0の第1ビット[ビット1]の状態をチェックすることなどにより、クロック信号出力回路171から供給されるクロック信号S1がハイレベルとなっているか否かを判定する。このとき、クロック信号S1がハイレベルであれば第1監視用タイマにおけるタイマ値を1加算するとともに第2監視用タイマをクリアする一方、クロック信号S1がローレベルであれば第2監視用タイマにおけるタイマ値を1加算するとともに第1監視用タイマをクリアする。そして、所定時間(例えば5ミリ秒)待機した後に、再びクロック信号S1がハイレベルとなっているか否かを判定し、判定結果に応じて第1及び第2監視用タイマにおけるタイマ値を加算又はクリアする処理を、所定回数(例えば5回)まで繰り返し実行する。その後、第1及び第2監視用タイマにおけるタイマ値のいずれかが、信号監視上限値として予め定められた所定値に達しているか否かを判定し、いずれかが信号監視上限値に達していれば、乱数回路112における乱数生成動作に異常が発生していると判断して、図37に示すステップS227〜S229と同様の処理を実行すればよい。このように、割込み許可状態となる以前に入力ポートにおける信号入力状態を確認することで、パチンコ遊技機1での遊技が開始される以前に乱数回路112の動作状態が正常であるか否かを確認することができる。
また、上記実施の形態では、パチンコ遊技機1が1つの特別図柄表示装置4と1つの画像表示装置5とを備えるものとして説明したが、これに限定されるものではなく、例えば遊技領域に設けられた複数の始動入賞口のそれぞれに対応させて、複数の特別図柄表示装置や複数の画像表示装置を備えるようにしてもよい。例えば、左右2つの始動入賞口が設けられる場合には、左右2つの特別図柄表示装置と左右2つの画像表示装置とを備え、左の始動入賞口に遊技球が入賞したことにより、左の特別図柄表示装置による特図ゲームの実行条件が成立し、右の始動入賞口に遊技球が入賞したことにより、右の特別図柄表示装置による特図ゲームの実行条件が成立するようにしてもよい。この場合、左の特別図柄表示装置による特図ゲームが実行されるときには、左の画像表示装置にて飾り図柄を可変表示させ、右の特別図柄表示装置による特図ゲームが実行されるときには、右の画像表示装置にて飾り図柄を可変表示させればよい。あるいは、遊技領域に複数の始動入賞口を設けた場合に、特別図柄表示装置は1つのままとして、画像表示装置を複数備えるようにしてもよい。例えば、左右2つの始動入賞口が設けられる場合には、左右2つの画像表示装置を備え、左右2つの始動入賞口のいずれに遊技球が入賞しても、1つの特別図柄表示装置による特図ゲームの実行条件が成立するものとする。そして、左の始動入賞口に遊技球が入賞したことにより実行条件が成立した特図ゲームにおいては、左右2つの画像表示装置のうち、左の画像表示装置にて飾り図柄を可変表示させ、右の始動入賞口に遊技球が入賞したことにより実行条件が成立した特図ゲームにおいては、右の画像表示装置にて飾り図柄を可変表示させればよい。
CPU103がROM104などから読み出したプログラム等に基づきソフトウェアに従って更新する乱数は、確変判定用の乱数値R2や、初期値決定用の乱数値R3に限られず、その他の判定用乱数や表示用乱数もCPU103がソフトウェアに従って更新するものとしてもよい。例えば特図ゲームにおける可変表示時間や飾り図柄の可変表示中における演出態様などを定める可変表示パターンを決定するために用いられる可変表示パターン決定用の乱数値や、可変表示時間が通常遊技状態よりも短くなるようにする時短制御を行うか否かを判定するために用いられる時短判定用の乱数値、大当り遊技状態にて実行可能なラウンド数を決定するために用いられるラウンド数決定用の乱数値、高確率状態を通常遊技状態に転落させるか否かの抽選を行うために用いられる確変転落抽選用の乱数値等を、CPU103がソフトウェアに従って更新するものとしてもよい。
また、上記実施の形態において、遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6に設けられた始動入賞口に遊技球が入賞すること)が成立した後に可変表示の開始条件(例えば特別図柄表示装置4による前回の特図ゲーム及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報(例えば特別図柄)を可変表示する可変表示装置(例えば特別図柄表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御するパチンコ遊技機であった。
しかしながら、本発明は、これに限定されず、遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
また、本発明の遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。
さらに、本発明の遊技機は、1ゲームに対して賭け数を設定することによりゲームを開始させることが可能となり、所定の可変表示装置にて表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて所定の入賞が発生可能であるスロットマシンであってもよい。こうしたスロットマシンには、遊技者により所定のスタートレバーが操作されたことに基づいて所定の始動信号を遊技制御手段(例えば主基板)や乱数回路(例えば乱数回路)に出力するスタートスイッチが、始動入賞信号出力手段として設けられていればよい。また、スロットマシンには、演出手段として機能する液晶表示器などが設けられていればよい。