以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。なお、以下の説明においてリーチ表示状態とは、表示結果として導出表示した図柄(リーチ図柄という)が大当り図柄の一部を構成しているときに未だ導出表示していない図柄(リーチ可変図柄という)については可変表示が行われている状態、あるいは、全て又は一部の図柄が大当り図柄の全て又は一部を構成しながら同期して可変表示している状態のことである。具体的には、予め定められた複数の表示領域に、予め定められた図柄が停止することで大当りとなる有効ラインが定められ、その有効ライン上の一部の表示領域に予め定められた図柄が停止しているときに未だ停止していない有効ライン上の表示領域において可変表示が行われている状態(例えば、左、中、右の表示領域のうち左、右の表示領域には大当り図柄の一部となる(例えば「7」)が停止表示されている状態で中の表示領域は未だ可変表示が行われている状態)、あるいは、有効ライン上の表示領域の全て又は一部の図柄が大当り図柄の全て又は一部を構成しながら同期して可変表示している状態(例えば、左、中、右の表示領域の全てで可変表示が行われてどの状態が表示されても同一の図柄が揃っている態様で可変表示が行われている状態)である。
本実施例における遊技機は、LCD等からなる画像表示装置により特図ゲームを行う遊技機であり、プリペイドカードによって球貸しを行うカードリーダ(CR:Card Reader)式のパチンコ遊技機や、LCDを搭載したスロットマシン等の遊技機である。
図1は、本実施例におけるパチンコ遊技機の正面図であり、主要部材の配置レイアウトを示す。パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3と、から構成されている。遊技盤2にはガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。この遊技領域のほぼ中央位置には、各々が識別可能な識別情報として特別図柄を可変表示可能に表示する可変表示装置4が設けられている。この可変表示装置4の下側には、普通可変入賞球装置(始動入賞口)6が配置されている。普通可変入賞球装置6の下側には、特別可変入賞球装置(大入賞口)7が配置されている。また、可変入賞球装置7の右側には、普通図柄表示器40が設けられている。
可変表示装置4は、複数の表示領域において識別情報としての図柄を可変表示するLCD(Liquid Crystal Display)モジュール等を備えて構成され、例えば、普通可変入賞球装置6に遊技球が入賞することが実行条件となる特図ゲームにおいて、数字、文字、図柄等から構成される3つの表示図柄(特別図柄)の可変表示を開始し、一定時間が経過すると、左、右、中の順で表示図柄を確定する。可変表示装置4には、普通可変入賞球装置6に入った有効入賞球数すなわち始動記憶数を表示する4つの始動記憶表示エリアが設けられていてもよい。
この実施の形態では、図柄番号が偶数である特別図柄を通常大当り図柄とし、図柄番号が奇数である特別図柄を確変大当り図柄とする。すなわち、可変表示装置4による特図ゲームにおいて、特別図柄の可変表示を開始した後、左・中・右の表示領域にて同一の特別図柄が表示結果として導出表示されて確定したときには、パチンコ遊技機1は、大当り遊技状態となる。ここで、可変表示装置4による特図ゲームにおいて、特別図柄の可変表示を開始した後、左・中・右の表示領域にて同一の確変大当り図柄が表示結果として導出表示されて確定したときには、パチンコ遊技機1は大当り遊技状態の終了に続いて特別遊技状態(確率向上状態)となり、以後、所定条件が成立するまで特図ゲームにおける表示結果が大当り組合せとなる確率が向上する。また、確率向上状態では、普通可変入賞球装置6の開放時間が通常遊技状態よりも長くなるとともに、その開放回数が通常遊技状態のときよりも増加するなど、大当り遊技状態とは異なる遊技者にとって有利な状態となる。なお、通常遊技状態とは、大当り遊技状態や確率向上状態以外の遊技状態のことである。
普通図柄表示器40は、発光ダイオード(LED)等を備えて構成され、遊技領域に設けられた所定の通過ゲートを遊技球が通過することを実行条件とする普通図ゲームにおいて、点灯、点滅、発色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となり、普通可変入賞球装置6を構成する電動チューリップの可動翼片を所定時間が経過するまで傾動制御する。
普通可変入賞球装置6は、ソレノイド21(図3)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)を備えて構成される。普通可変入賞球装置6への遊技球の入賞に基づく特別図柄の可変表示は、所定回数(本実施形態では、4回)まで後述する特図保留メモリ110(図22)に記憶される。
特別可変入賞球装置7は、ソレノイド22(図3)によって入賞領域を開成・閉成制御する開閉板を備える。この開閉板は、通常時には閉成し、普通可変入賞球装置6への遊技球の入賞に基づいて可変表示装置4による特図ゲームが行われた結果、大当り遊技状態となった場合に、ソレノイド22によって入賞領域を所定期間(例えば、29秒)あるいは所定個数(例えば、10個)の入賞球が発生するまで開成(開成サイクル)する状態となるように設定され、その開成している間に遊技領域を落下する遊技球を受け止める。そして、この開成サイクルを例えば最高16回繰り返すことができるようになっている。特別可変入賞球装置7に入賞した遊技球は、所定の検出部により検出される。入賞球の検出に応答し、後述する主基板11と払出制御基板15(図2)とにより、所定数の賞球の払い出しが行われる。
また、遊技盤2の表面には、上記した構成以外にも、ランプを内蔵した風車、アウト口等が設けられている。また、パチンコ遊技機1には、点灯又は点滅する遊技効果ランプ9や効果音を発生するスピーカ8L、8Rが設けられている。
図2は、パチンコ遊技機1の背面図であり、主要基板の配置レイアウトを示す。本実施例におけるパチンコ遊技機1は、主として、電力供給手段として機能する電源基板10と、主基板11と、表示制御基板12と、音声制御基板13と、ランプ制御基板14と、払出制御基板15と、情報端子基板16と、を備え、それぞれ適所に配設されている。なお、表示制御基板12、音声制御基板13及びランプ制御基板14は、それぞれ独立した基板として、例えば、パチンコ遊技機1の裏面において、1つのボックスに収容された状態で配置されてもよい。さらに、表示制御基板12、音声制御基板13及びランプ制御基板14を、まとめて1つの基板として構成してもよい。
電源基板10は、パチンコ遊技機1内の各回路に所定の電力を供給するものである。
主基板11は、メイン側の制御基板であり、パチンコ遊技機1における遊技の進行を制御するための各種回路が搭載されている。主基板11は、主として、所定位置に配設されたスイッチ等からの信号の入力を行う機能、表示制御基板12と音声制御基板13とランプ制御基板14と払出制御基板15となどからなるサブ側の制御基板に対して、それぞれ指令情報の一例となる制御データを出力して送信する機能、ホールの管理コンピュータに対して各種情報を出力する機能などを備えている。
主基板11から表示制御基板12へ送信される制御コマンドは表示制御コマンドである。図3は、主基板11における回路構成、及び主基板11から表示制御基板12に送信される表示制御コマンドの信号線等を示すブロック図である。
また、主基板11には、始動入賞口スイッチ70からの配線が接続されている。また、主基板11には、大入賞口である特別可変入賞球装置7や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチからの配線も接続されている。さらに、主基板11には、普通可変入賞球装置6における可動翼片の可動制御や特別可変入賞球装置7における開成・閉成制御を行うためのソレノイド21、22への配線が接続されている。
主基板11は、遊技制御用マイクロプロセッサ100、スイッチ回路107、ソレノイド回路108などを搭載して構成される。遊技制御用マイクロプロセッサ100は、例えば1チップマイクロプロセッサであり、ゲーム制御用のプログラム等を記憶するROM(Read Only Memory)101,ワークメモリとして使用されるRAM(Random Access Memory)102、制御動作を行うCPU(Central Processing Unit)103,I/O(Input/Output)ポート104,CPUに割込要求信号を送出するCTC(Counter Timer Circuit)105,クロック回路106,乱数回路17,及びリセットコントローラ109を内蔵している。
クロック回路106は、システムクロック信号を生成してCPU103や乱数回路17などに対して送出すると共に、このシステムクロック信号を分周して生成した分周クロック信号を各回路に対して送出する。リセットコントローラ109は、ローレベルの信号が一定期間入力されたとき、CPU103及び乱数回路17等に対して所定の初期化信号を送出して、遊技制御用マイクロプロセッサ100をシステムリセットする。
図4は、乱数回路17の構成例を示すブロック図である。図4に示すように、乱数回路17は、第1のセレクタ71と、分周回路72aと、第3のセレクタ72bと、カウンタ73と、カウント値列変更回路74と、カウント値取込回路75と、タイマ回路76と、第2のセレクタ77と、ラッチ信号出力回路78と、乱数値記憶回路79と、動作開始回路80と、から構成されている。乱数回路17は、例えば、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定する大当り判定用の乱数であるランダムRを発生する。
第1のセレクタ71は、クロック回路106から出力されるシステムクロック信号と分周クロック信号とのうちから基準クロック信号S0として選択された信号を指定する基準クロック信号指定データを格納する基準クロック信号指定レジスタ(RTS)71aを備えている。なお、第1のセレクタ71に入力される分周クロック信号は、システムクロック信号を分周して生成されたものであってもよいし、システムクロック信号以外のクロック信号、例えば外部の発振回路からのクロック信号、を分周して生成されたものであってもよい。
図5(A)は、基準クロック信号指定レジスタ71aの構成例を示す図である。図5(A)に示すように、基準クロック信号指定レジスタ71aは、8ビットレジスタであり、その初期値は、「00h」に設定されている。基準クロック信号指定レジスタ71aは、ビット0〜ビット1が書込可能及び読出可能に、ビット2〜ビット7が書込不能及び読出不能に構成されている。したがって、基準クロック信号指定レジスタ71aのビット2〜ビット7に値を書き込んでも、その値は無効であり、ビット2〜ビット7から読み出した値は全て「0(=000000b)」となる。
図5(B)は、基準クロック信号指定レジスタ71aに書き込まれる基準クロック信号指定データの一例の説明図である。図5(B)に示すように、基準クロック信号指定データは、2ビットのデータから構成され、「01b」は、システムクロック信号を指定するデータであり、「10b」は、分周クロック信号を指定するデータである。
このため、基準クロック信号指定レジスタ71aに基準クロック信号指定データ「01b」が書き込まれた場合、図4に示す第1のセレクタ71は、システムクロック信号を基準クロック信号S0として分周回路72aと第3のセレクタ72bとに供給し、一方、「10b」が書き込まれた場合には、基準クロック信号S0として分周クロック信号を分周回路72aと第3のセレクタ72bとに供給する。なお、基準クロック信号指定レジスタ71aに基準クロック信号指定データ「00b」又は「11b」が書き込まれた場合には、乱数回路17は起動不能となる。
分周回路72aは、第1のセレクタ71から入力される基準クロック信号S0を2分周して、分周クロック信号SDを生成する。分周回路72aは、生成した分周クロック信号SDを第3のセレクタ72bに出力する。
第3のセレクタ72bは、例えば差動ペアを形成する2つのCMOS(Complementary Metal Oxide Semiconductor)トランジスタ等から構成されている。第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDのレベルに応じて、第1のセレクタ71から入力される基準クロック信号S0を、第1及び第2の出力端子Q1,Q2のうちのいずれか一方から出力することによって、周期が同一で位相が異なるカウント用クロック信号S1とラッチ用クロック信号S2を生成し、カウント用クロック信号S1をカウンタ73に、ラッチ用クロック信号S2をラッチ信号出力回路78に、それぞれ供給する。
この実施の形態において、分周回路72aから入力される分周クロック信号SDがハイレベルのとき、第3のセレクタ72bは、第1の出力端子Q1をオンすると共に第2の出力端子Q2をオフし、第1のセレクタ71から入力される基準クロック信号S0を第1の出力端子Q1から出力する。一方、分周回路72aから入力される分周クロック信号SDがローレベルのとき、第3のセレクタ72bは、第1の出力端子Q1をオフすると共に第2の出力端子Q2をオンし、第1のセレクタ71から入力される基準クロック信号S0を第2の出力端子Q2から出力する。
カウンタ73は、カウント値Cの初期値を指定するカウンタ初期値設定データを格納するカウンタ初期値設定レジスタ(RSV)73aを格納する。カウンタ73は、第3のセレクタ72bの第1の出力端子Q1から入力されるカウント用クロック信号S1の立ち上がりエッジに応答して、出力するカウント値Cを、カウンタ初期値設定レジスタ73aに設定されたカウンタ初期値から、所定のカウンタ最終値まで循環的に更新する。
この実施の形態において、カウンタ73は、16ビットのバイナリカウンタであり、カウント用クロック信号S1の立ち上がりエッジが入力される毎に、カウント値Cを、カウンタ初期値設定レジスタ73に設定されたカウンタ初期値から、カウンタ最終値である「65535」まで1ずつカウントアップして行く。そして、カウント値Cを「65535」までカウントアップすると、カウンタ初期値に戻して、再び「65535」までカウントアップして行く。
また、カウント値Cがカウンタ最終値「65535」まで更新されたとき、カウンタ73は、カウント値が一巡したことを通知するカウント値一巡通知信号をCPU103に対して送出する。
図6は、カウンタ初期値設定レジスタ73aの構成例を示す図である。図6に示すように、カウンタ初期値設定レジスタ73aは、読出及び書込可能な16ビットレジスタであり、その初期値は、「1(=0001h)」に設定されている。この実施の形態において、カウンタ初期値設定レジスタ73aには、所定値(例えば「1」)又は遊技制御用マイクロプロセッサ100固有のIDナンバの値を示すカウンタ初期値設定データが設定される。
カウント値列変更回路74は、カウントカウント値の更新順である順列の変更を要求するカウント値順列変更データ「01h」を格納するカウント値列変更レジスタ(RSC)74aと、ビットスクランブルパターン選択回路74bと、ビットスクランブル回路74cと、から構成されている。カウント値列変更回路74は、カウンタ73から出力されたカウント値Cのビットの入れ替えや転置を行うことによって、カウンタ73から乱数値記憶回路79へと供給されるカウント値列の順序を変更する。
図7は、カウント値列変更レジスタ74aの構成例を示す図である。図7に示すように、カウント値列変更レジスタ74aは、読出可能な8ビットレジスタであり、その初期値は、「0(=00h)」に設定されている。また、カウント値列変更レジスタ74aは、ビット0のみが書込可能及び書込可能に構成され、したがって、ビット1〜ビット7に値を書き込んでも、その値は無効であり、ビット1〜ビット7から読み出した値は全て「0(=0000000b)」となる。
なお、カウント値列変更回路74がカウント値列の順番の変更を受け付けたことに応答して、CPU103は、カウント値列変更データ「01h」が書き込まれたカウント値列変更レジスタ74aを初期化して格納されている値を初期値である「0(=00h)」に戻す。
図4に示すビットスクランブルパターン選択回路74bは、カウント値Cのビットの入れ替えパターンを複数格納するビットスクランブルパターン決定用テーブル74dを備え、カウント値列変更レジスタ74aにカウント値列変更データ「01h」が書き込まれたことに応答して、所定の補助乱数の値などに基づいて、ビットスクランブルパターン決定用テーブル74dのうちからビットスクランブルパターンを選択決定する。
図8は、ビットスクランブルパターン決定用テーブルの構成例を示す図である。図8に示すように、ビットスクランブルパターン決定用テーブル74dには、ビットスクランブルパターン選択回路74bへと入力される所定の補助乱数の値と、ビットスクランブルパターンと、が対応付けて格納されている。
この実施の形態においては、カウント値Cのデータ長が16ビットであることに対応して、ビットスクランブルパターン決定用テーブル74dには、元の配置も含めて65536通りのビットスクランブルパターンが格納される。
図4に示すビットスクランブル回路74cは、ビットスクランブルパターン選択回路74bによって選択決定されたビットスクランブルパターンに従って、カウント値Cのビットの配置・転換を行い、このビットの配置・転換を行ったカウント値Cを乱数値記憶回路79に対して出力する。
このようにして、カウント値列変更回路74は、カウンタ73から乱数値記憶回路79へと供給されるカウント値列の順序を変更する。
図4に示すカウント値取込回路75は、乱数値記憶回路79へのカウント値の取込を要求するカウント値取込データ「01h」を格納するカウント値取込レジスタ(RLT)75aを備える。カウント値取込回路75は、カウント値取込レジスタ75aにカウント値取込データ「01h」が書き込まれたことに応答して、カウント値取込信号を出力する。
図9は、カウント値取込レジスタ75aの構成例を示す図である。図9に示すように、カウント値取込レジスタ75aは、読出不能な8ビットレジスタであり、ビット0のみが書込可能に構成され、ビット1〜ビット7に値を書き込んでも、その値は無効である。
図4に示すタイマ回路76は、始動入賞口スイッチ70から始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間(例えば3ms)になったとき、始動入賞信号SSを第2のセレクタ77に対して出力する。
この実施の形態において、タイマ回路76は、例えばアップカウンタ又はダウンカウンタによって構成され、ハイレベルの信号が入力されたことに応答して、起動する。タイマ回路76は、入力がハイレベルとなっている間、第1のセレクタ71から基準クロック信号S0が入力される毎に、所定のタイマ値をアップカウント又はダウンカウントして行く。そして、アップカウント又はダウンカウントしたタイマ値が、3msに対応する値となったとき、タイマ回路76は、入力された信号を始動入賞信号SSであると判定して、始動入賞信号SSを第2のセレクタ77に対して出力する。
第2のセレクタ77は、タイマ回路76から入力される始動入賞信号SSとカウント値取込回路75ら入力されるカウント値取込信号とのうちからラッチ信号として用いるものとして選択された信号を指定するラッチ信号指定データを格納するラッチ信号指定レジスタ(RTS)77aを備えている。なお、このラッチ信号指定レジスタ(RTS)77aの構成は、図5(A)に示す基準クロック信号指定レジスタ71aの構成と同一である。
図10は、ラッチ信号指定レジスタ77aに書き込まれるラッチ信号指定データの一例の説明図である。図10に示すように、ラッチ信号指定データは、基準クロック信号指定データと同様、2ビットのデータから構成され、「01b」は、始動入賞信号SSを指定するデータであり、「10b」は、カウント値取込信号を指定するデータである。
このため、ラッチ信号指定レジスタ77aにラッチ信号指定データ「01b」が書き込まれた場合、図4に示す第2のセレクタ77は、始動入賞信号SSをラッチ信号出力回路78に対して出力し、一方、「10b」が書き込まれた場合には、カウント値取込信号をラッチ信号出力回路78に対して出力する。なお、ラッチ信号指定レジスタ77aにラッチ信号指定データ「00b」又は「11b」が書き込まれた場合には、乱数回路17は起動不能となる。
なお、この実施の形態においては、始動入賞口スイッチ70から入力される始動入賞信号SSをラッチ信号SLとして用いるため、ラッチ信号指定レジスタ77aには、「01b」が設定される。
ラッチ信号出力回路78は、D型フィリップフロップ回路などによって構成されている。ラッチ信号出力回路78の入力端子Dは、第2のセレクタ77の出力端子に接続され、クロック端子CKは、第3のセレクタ72bの第2の出力端子Q2に接続されている。また、ラッチ信号出力回路78の出力端子Qは、乱数値記憶回路79に接続されている。
ラッチ信号出力回路78は、入力端子Dから入力される始動入賞信号SS又はカウント値取込信号を、クロック端子CKから入力されるラッチ用クロック信号S2の立ち上がりエッヂに同期させて、ラッチ信号SLを生成して出力端子Qから出力する。
乱数値記憶回路79は、16ビットレジスタであり、後述するステップS102の入賞処理において読み出される乱数値Rを記憶する。乱数値記憶回路79は、ラッチ信号出力回路78の出力端子Qから入力されるラッチ信号SLの立ち上がりエッヂに応答して、カウンタ73から入力されるカウント値Cを、乱数値Rとしてラッチして記憶することにより、乱数回路17に始動入賞信号SSが入力される毎に、又はカウント値取込レジスタ75aにカウント値取込データ「01h」が書き込まれる毎に、記憶する乱数値Rを順次更新する。
図11は、乱数値記憶回路79の構成例を示す回路図である。乱数値記憶回路79は、図7に示すように、2個のAND回路201,203と、2個のNOT回路202,204と、16個のフィリップフロップ回路210〜225と、16個のOR回路230〜245と、から構成されている。
AND回路201の入力端子は、ラッチ信号出力回路78の出力端子QとNOT回路204の出力端子とに接続され、出力端子は、NOT回路202の入力端子とフィリップフロップ回路210〜225のクロック端子CK0〜CK15とに接続されている。NOT回路202の入力端子は、AND回路201の出力端子に接続され、出力端子は、AND回路203の一方の入力端子に接続されている。
AND回路203の入力端子は、NOT回路202の出力端子と遊技制御用マイクロプロセッサ100のI/Oポート104とに接続され、出力端子は、NOT回路204の入力端子に接続されている。NOT回路204の入力端子は、AND回路203の出力端子に接続され、出力端子は、AND回路201の一方の入力端子とOR回路230〜245の各々の一方の入力端子とに接続されている。
フィリップフロップ回路210〜225の入力端子D0〜D15は、カウンタ73の出力端子に接続されている。フィリップフロップ回路210〜225のクロック端子CK0〜CK15は、AND回路201の出力端子に接続され、出力端子Q0〜Q15は、OR回路230〜245の各々の他方の入力端子に接続されている。
OR回路230〜245の入力端子は、NOT回路204の出力端子とフィリップフロップ回路210〜225の出力端子の各々とに接続され、出力端子は、遊技制御用マイクロプロセッサ100のI/Oポート104に接続されている。
図12は、OR回路230〜245の出力端子と遊技制御用マイクロプロセッサ100のI/Oポート104との接続の詳細を説明するための図である。この実施の形態において、OR回路230〜245の出力端子と、I/Oポート104に含まれる大当り判定用乱数の入力ポートの各ビットと、は、図12に示すように、入れ替えて接続されている。これにより、遊技制御用マイクロプロセッサ100に入力される乱数のランダム性を高めることができる。
上記構成を備える乱数値記憶回路79の動作を図13に示すタイミングチャートを参照して説明する。
遊技制御用マイクロプロセッサ100から出力制御信号SC(ハイレベルの信号)が入力されていない場合に(AND回路203の一方の入力がローレベルの場合に)、ラッチ信号出力回路78の出力端子Qから入力されるラッチ信号SLがローレベルからハイレベルに立ち上がるタイミング(図13に示す例では、タイミングT1,T2,T7)に、AND回路201の入力は、共にハイレベルとなり、その出力端子から出力される信号SRは、ハイレベルとなる。そして、AND回路201から出力された信号SRは、フィリップフロップ回路210〜225のクロック端子CK0〜CK15に入力される。
フィリップフロップ回路210〜225は、クロック端子CK0〜CK15から入力される信号SRの立ち上がりエッヂに応答して、カウンタ73から入力端子D0〜D15を介して入力されるカウント値CのビットデータC0〜C15を乱数値のビットデータR0〜R15としてラッチして格納し、格納した乱数値RのビットデータR0〜R15を出力端子Q0〜Q15から出力する。
出力制御信号SCが入力されていない場合(図13に示す例では、タイミングT3までの期間、タイミングT6以降の期間)、AND回路203の一方の入力がローレベルとなるため、その出力端子から出力される信号SGは、ローレベルとなる。信号SGは、NOT回路204において反転され、OR回路230〜245の一方の入力端子には、ハイレベルの信号が入力される。
このようにOR回路230〜245の一方の入力がハイレベルとなるため、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、即ち、入力される乱数値RのビットデータR0〜R15の値が「0」であるか「1」であるかに関わらず、OR回路230〜245から出力される信号SO0〜SO15は、全てハイレベル(「1」)となる。これにより、乱数値記憶回路79から出力される値は、常に「635535(=FFFFh)」となるため、乱数値記憶回路79から乱数値Rを読み出すことはできなくなる。即ち、出力制御信号SCが入力されていない場合、乱数値記憶回路79は、読出不能(ディセイブル)状態となる。
そして、ラッチ信号出力回路78から入力されるラッチ信号SLがローレベルのときに、遊技制御用マイクロプロセッサ100から出力制御信号SCが入力されると(図13に示す例では、タイミングT4からタイミングT6までの期間)、AND回路203の入力が共にハイレベルとなるため、その出力端子から出力される信号SGは、ハイレベルとなる。信号SGは、NOT回路204において反転され、OR回路230〜245の一方の入力端子には、ローレベルの信号が入力される。
このようにOR回路230〜245の一方の入力がローレベルとなるため、他方の入力端子に入力される信号がハイレベルのときは、その出力端子からハイレベルの信号が出力され、ローレベルのときは、ローレベルの信号が出力される。即ち、OR回路230〜245の他方の入力端子に入力される乱数値RのビットデータR0〜R15の値は、OR回路230〜245の出力端子からそのまま(ビットデータR0〜R15の値が「1」のときは「1」が、「0」のときは「0」が、)出力される。これにより、乱数値記憶回路79からの乱数値Rの読出が可能となる。即ち、出力制御信号SCが入力されている場合、乱数値記憶回路79は、読出可能(イネイブル)状態となる。
但し、遊技制御用マイクロプロセッサ100から出力制御信号SCが入力される前に、ラッチ信号出力回路78からラッチ信号SLが入力されている場合、AND回路203の一方の入力がローレベルとなるため、その後、ラッチ信号SLが入力されている状態のままの状態で、出力制御信号SCが入力されても(図13に示す例では、タイミングT3からタイミングT4の期間)、その出力端子から出力される信号SGは、ローレベルのままとなる。そして、信号SGは、NOT回路204において反転され、OR回路230〜245の一方の入力端子には、ハイレベルの信号が入力される。
このようにOR回路230〜245の一方の入力がハイレベルとなるため、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路230〜245から出力される信号SO0〜SO15は、全てハイレベルとなり、出力制御信号SCが入力されているにも関わらず、乱数値記憶回路79から乱数値Rを読み出すことができない状態のままとなる。即ち、ラッチ信号SLが入力されているとき、乱数値記憶回路79は、出力制御信号SCに対して受信不能状態となる。
また、ラッチ信号出力回路78から入力されるラッチ信号SLがハイレベルになる前に、遊技用マイクロコンピュータ100から出力制御信号SCが入力されている場合、AND回路201の一方の入力がローレベルとなるため、その後、出力制御信号SCが入力されているままの状態で、入力されるラッチ信号SLがハイレベルになっても(図13に示す例では、タイミングT5)、その出力端子から出力される信号SRは、ローレベルのままとなる。このため、フィリップフロップ回路210〜225のクロック端子CK0〜CK15に入力される信号SRは、ローレベルからハイレベルに立ち上がらず、フィリップフロップ回路210〜225に格納されている乱数値RのビットデータR0〜R15は、ラッチ信号出力回路78から入力されるラッチ信号SLが立ち上がっても、更新されない。即ち、出力制御信号SCが入力されているとき、乱数値記憶回路79は、ラッチ信号SLに対して受信不能状態となる。
図4に示す動作開始回路80は、乱数回路17の起動を要求する動作開始データ「80h」を格納する動作開始レジスタ(RST)80aを備える。動作開始回路80は、動作開始レジスタ80aに動作開始データ「80h」が書き込まれたことに応答して、所定の動作開始信号を出力し、カウンタ73をオンして、カウンタ73によるカウント値の更新動作を開始させる。
図14は、動作開始レジスタ80aの構成例を示すブロック図である。図14に示すように、動作開始レジスタ80aは、8ビットレジスタであり、その初期値は、「00h」に設定されている。動作開始レジスタ80aは、ビット7のみが読出可能及び読出可能に構成され、ビット0〜ビット6に値を書き込んでも、その値は無効であり、ビット0〜ビット6から読み出した値は全て「0(=0000b)」となる。
図15は、上記構成を備える乱数回路17の動作(作用)を説明するためのタイミングチャートである。
図15(A)に示すように、第1のセレクタ71は、例えばタイミングT10,T11,T12,…においてローレベルからハイレベルに立ち上がる基準クロック信号S0を分周回路72aと第3のセレクタ72bとに出力する。
分周回路72aは、入力された基準クロック信号S0を2分周して、T10からT11までの期間,T12からT13までの期間,…においてハイレベルとなり、T11からT12までの期間,T13からT14までの期間,…においてローレベルとなる、図15(B)に示す分周クロック信号SDを生成して第3のセレクタ72bに出力する。
第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがハイレベルのとき、即ち、T10からT11までの期間,T12からT13までの期間,…において、第1のセレクタ71から入力される基準クロック信号S0を第1の出力端子Q1から出力する。これにより、第3のセレクタ72bの第1の出力端子Q1からは、図15(C)に示すように、タイミングT10,T12,…において、ローレベルからハイレベルに立ち上がる第1のカウント用クロック信号S1が出力される。
また、第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがローレベルのとき、即ち、T11からT12までの期間,T13からT14までの期間,…において、第1のセレクタ71からから入力される基準クロック信号S2を第2の出力端子O1から出力する。これにより、第3のセレクタ72bの第2の出力端子Q2からは、図15(E)に示すように、タイミングT11,T13,…において、ローレベルからハイレベルに立ち上がるラッチ用クロック信号S2が出力される。
そして、カウンタ73は、図15(D)に示すように、第3のセレクタ72bの第1の出力端子Q1から入力されるカウント用クロック信号S1の立ち上がりエッヂに応答して、カウント値Cを更新して出力する。一方、ラッチ信号出力回路78は、入力端子Dから入力される図15(F)に示す始動入賞信号SSを、第3のセレクタ72bの第2の出力端子Q2からクロック端子CKへと入力されるラッチ用クロック信号S2の立ち上がりエッヂに同期させて、図15(G)に示すラッチ信号SLを生成して出力端子Qから出力する。
乱数値記憶回路79は、カウンタ73から入力されるカウント値Cを、ラッチ信号出力回路78の出力端子Qから入力されるラッチ信号SLの立ち上がりエッヂに応答して、乱数値Rとしてラッチして記憶することにより、図15(G)に示すように、記憶する乱数値Rを更新する。
このようにして、乱数回路17は、カウント値Cの更新タイミングとカウント値Cのラッチタイミングとを確実に異ならせることができる。
図16は、図3に示す遊技制御用マイクロプロセッサ100におけるアドレスマップの一例を示す図である。図16に示すように、0000h番地〜1FFFh番地の領域は、ROM101に割り当てられ、7E00h番地〜7FFFh番地の領域は、RAM102に割り当てられ、FD00h番地〜FE00h番地の領域は、カウンタ初期値設定レジスタ73a等の内蔵レジスタに割り当てられている。
ROM101における0000h番地〜1F7Fh番地の領域のユーザプログラムエリアには、ユーザにより予め作成されたプログラム(ユーザプログラム)が記憶され、1F80h番地〜1FFFh番地の領域のユーザプログラム管理エリアには、CPU103がユーザプログラムを実行するために必要となるデータ(ユーザプログラム実行データ)が記憶されている。また、RAM102における7E00h番地〜7EFFh番地の領域は、使用されておらず、7EFFh番地〜7FFFh番地は、ワークエリアとして使用されている。
図17は、図16に示すユーザプログラム管理エリアにおけるアドレスマップの一例を示す図である。図17に示すように、1F96h番地の領域には、システムクロック信号と分周クロック信号とのうちからユーザが基準クロック信号S0として選択した出力信号を示す基準クロック信号選択データが記憶され、1F97h番地の領域には、始動入賞信号SSとカウント値取込信号とのうちからユーザが選択した出力信号を示すラッチ信号選択データが記憶されている。
また、1F98h番地の領域には、所定値(例えば「1」)と遊技制御用マイクロプロセッサ100に固有のIDナンバが示す値とのうちからユーザがカウント初期値として選択した値を示すカウンタ初期値選択データが記憶され、1F99h番地の領域には、カウンタ値列を変更する方式である第1及び第2のカウント値列変更選択方式のうちからユーザが選択したカウント値列変更方式を示すカウント値列変更方式選択データが記憶されている。
図18は、基準クロック信号選択データの一例の説明図である。図18に示すように、基準クロック選択データは、8ビットのデータから構成され、「01h」は、基準クロック信号S0としてシステムクロック信号が選択されたことを示すデータであり、「02h」は、基準クロック信号として分周クロック信号が選択されたことを示すデータである。
図19は、ラッチ信号選択データの一例の説明図である。図19に示すように、ラッチ信号選択データは、8ビットのデータから構成され、「01h」は、ラッチ信号として始動入賞信号SSが選択されたことを示すデータであり、「02h」は、ラッチ信号としてカウント値取込信号が選択されたことを示すデータである。なお、この実施の形態においては、始動入賞信号SSを示すデータである「01h」が選択されている。
図20は、カウンタ初期値選択データの一例の説明図である。図20に示すように、初期値選択データは、8ビットのデータから構成され、「00h」は、カウンタ初期値として所定値「1」が選択されたことを示すデータであり、「01h」は、カウンタ初期値としてIDナンバの値が選択されたことを示すデータである。
図21は、カウント値列変更方式選択データの一例の説明図である。図21に示すように、カウント値列変更方式選択データは、8ビットのデータから構成され、「00h」は、カウント値列を変更しないことを示すデータであり、「01h」は、第1のカウント値列変更方式が選択されたことを示すデータであり、「02h」は、第2のカウント値列変更方式が選択されたことを示すデータである。
また、図3に示す遊技制御用マイクロプロセッサ100は、図22に示すように、特図保留メモリ110と、ランダムカウンタ111と、大当り判定用テーブルメモリ112と、フラグメモリ113と、始動入賞口スイッチタイマメモリ114と、を備えている。
特図保留メモリ110は、遊技球が普通可変入賞球装置6に入賞して特別図柄の可変表示(特図ゲーム)を実行するための条件(実行条件)が成立したが、従前の可変表示を実行中である等の理由のために可変表示を実際に開始するための条件(開始条件)が成立していない保留状態を記憶するためのメモリである。特図保留メモリ110は、4つのエントリを備え、各エントリには、普通可変入賞球装置6への入賞順に、保留番号と、その入賞に応じて乱数値記憶回路79から読み出した乱数値Rとが対応付けて格納される。主基板11から表示制御基板12へ特別図柄確定コマンドが送出されて特別図柄の可変表示が1回終了したり、大当り遊技状態が終了したりするごとに、最上位の情報に基づいた可変表示の開始条件が成立し、最上位の情報に基づいた可変表示が実行される。このとき、第2位以下の登録情報が1位ずつ繰り上がる。また、特別図柄の可変表示中等に遊技球が普通可変入賞球装置6に新たに入賞した場合には、その入賞に基づいて乱数値記憶回路79から読み出された乱数値Rが最上位の空エントリに登録される。
ランダムカウンタ111は、遊技制御に用いられる判定用乱数や表示用乱数のカウントを行うものである。図23は、ランダムカウンタ111によりカウントされる乱数を示す説明図である。ランダムカウンタ111は、図23に示すように、ランダムR200のカウントを行う。ランダムR200は、カウント値列の順番の変更を行うか否かを決定するための判定用乱数であり、「0」〜「1530」の範囲の値をとる。
大当り判定用テーブルメモリ112は、CPU103が特図ゲームにおける表示結果を大当りとするか否かを判定するために設定される複数の大当り判定用テーブルを記憶する。具体的には、大当り判定用テーブルメモリ112は、図24(A)に示す通常時大当り判定用テーブル121と、図24(B)に示す確変時大当り判定用テーブル122と、を格納する。
図24(A)に示す通常時大当り判定用テーブル121と、図24(B)に示す確変時大当り判定用テーブル122と、は、可変表示装置4による特図ゲームの表示結果を大当りとするか否かを判定するためのテーブルである。各大当り判定用テーブル121及び122では、乱数値Rと特図ゲームの表示結果を示す設定データとが対応付けて格納されている。そして、確変時大当り判定用テーブル122では、通常時大当り判定用テーブル121に比べてより多くの乱数値Rが、「大当り」の表示結果と対応付けられている。すなわち、確変時大当り判定用テーブル122を用いて特図ゲームの表示結果を決定することで、通常遊技状態のときよりも大当り遊技状態となる確率が高い確率向上状態とすることができる。
この実施の形態において、図24(A)に示す通常時大当り判定用テーブル121には、乱数回路17から発生する大当り判定用乱数R「0〜65535」のうち「2001〜2184」が「大当り」の表示結果と対応付けられている。一方、図24(B)に示す確変時大当り判定用テーブル122には、乱数回路17から発生する大当り判定用乱数R「0〜65535」のうち「2001〜3104」が「大当り」の表示結果と対応付けられている。
図22に示すフラグメモリ113は、パチンコ遊技機1において遊技の進行を制御するために用いられる各種のフラグが設定される。例えば、フラグメモリ113には、特別図柄プロセスフラグ、普通図柄プロセスフラグ、大当り状態フラグ、入力状態フラグ、カウント値一巡通知フラグ、乱数値読出フラグ、及びタイマ割込フラグなどが設けられている。
特別図柄プロセスフラグは、後述する特別図柄プロセス処理(図29)において、どの処理を選択・実行すべきかを指示する。普通図柄プロセスフラグは、普通図柄表示器40の表示状態を所定の順序で制御するために、所定の普通図柄プロセス処理においてどの処理を選択・実行すべきかを指示する。大当り状態フラグは、可変表示装置4による特図ゲームの表示結果が大当りとなるときにオン状態にセットされ、大当り遊技状態が終了するときにクリアされてオフ状態となる。
入力状態フラグは、I/Oポート104に入力される各種信号の状態等に応じて各々セットあるいはクリアさせる複数ビットからなるフラグである。カウント値一巡フラグは、乱数回路17からカウント値一巡通知信号が入力されたことに応答してオン状態にセットされ、カウント値列変更処理が実行されたときにクリアされてオフ状態となる。
乱数値読出フラグは、カウント値取込データ「01h」がカウント値取込レジスタ75aに書き込まれたときにオン状態にセットされ、乱数値記憶回路79から乱数値Rが読み出されるとクリアされてオフ状態となる。
タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。
始動入賞口スイッチタイマメモリ114は、始動入賞口スイッチ70から入力される始動入賞信号SSに応じて加算あるいはクリアされるタイマ値を記憶するためのものである。
図3に示すスイッチ回路107は、始動入賞口スイッチ70からの始動入賞信号SSを取り込んで、遊技制御用マイクロコンピュータ100に伝達する。ソレノイド回路108は、遊技制御用マイクロコンピュータ100からの指令に従って各ソレノイド21、22を駆動する。ソレノイド21は、リンク機構を介して普通可変入賞球装置6の可動翼片に連結されている。ソレノイド22は、リンク機構を介して特別可変入賞球装置7の開閉板に連結されている。
始動入賞口スイッチ70は、始動入賞口である普通可変入賞球装置6への遊技球の入賞等を検出したことに基づいて、始動入賞信号(ハイレベルの信号)SSを、スイッチ回路107を介してCPU103と乱数回路17に対して出力する。
表示制御基板12は、主基板11から受信した制御コマンドに従って演出制御を行うためのものである。具体的には、表示制御基板12は、可変表示装置4の表示制御や、遊技効果ランプ9及び普通図柄表示器40の点灯制御を行う。
音声制御基板13、ランプ制御基板14は、主基板11から送信される制御コマンドに基づいて、音声出力制御、ランプ出力制御を、それぞれ主基板11とは独立して実行するサブ側の制御基板である。払出制御基板15は、遊技球の貸出や賞球等の払出制御を行うものである。情報端子基板16は、各種の遊技関連情報を外部に出力するためのものである。
次に、本実施の形態におけるパチンコ遊技機1の動作(作用)を説明する。図25は、主基板11に搭載された遊技制御用マイクロプロセッサ100が実行する遊技制御メイン処理を示すフローチャートである。主基板11では、電源基板10からの電力が供給されると、遊技制御用マイクロプロセッサ100が起動し、CPU103が、まず、図25のフローチャートに示す遊技制御メイン処理を実行する。遊技制御メイン処理を開始すると、まず、CPU103は、割込禁止に設定し(ステップS1)、続いて、割込モードをモード2に設定する(ステップS2)。
この後、CPU103は、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、遊技制御用マイクロプロセッサ100の内蔵デバイスであるCTC105などのレジスタ設定を行う(ステップS4)。例えば、CTC105に対して、割込ベクタを設定する。
ステップS4の処理に続いて、CPU103は、例えばRAM102に設けられたバックアップフラグ領域をチェックするなどして(ステップS5)、前回の電源断時にRAM102の全部又は一部について所定のデータ保護処理によるバックアップがなされたか否かを判別する(ステップS6)。パチンコ遊技機1では、不測の電源断が生じたときに、RAM102に記憶されたデータの全部又は一部を保護するためのデータ保護処理が行われる。このようなデータ保護処理が行われていた場合には、バックアップありと判別される。
ステップS6の処理にてバックアップありと判別したとき(ステップS6;Yes)、CPU103は、バックアップデータのチェックとしてパリティチェックを行い、チェック結果が正常であるか否かを判別する(ステップS7)。チェック結果が正常であれば(ステップS7;Yes)、主基板11の内部状態とサブ側の各制御基板(表示制御基板12、音声制御基板13、ランプ制御基板14、及び払出制御基板15)の制御状態を電源断時の状態に戻すための遊技状態復旧処理を実行する(ステップS8)。その後、ステップS10の処理へと進む。
ステップS7の処理にてバックアップなしと判別したときや(ステップS6;No)、ステップS7の処理にてチェック結果が正常ではなかったとき(ステップS7;No)、CPU103は、RAM102のクリアや、所定の作業領域に対する初期設定などの初期化処理を行う(ステップS9)。
続いて、CPU103は、乱数回路設定処理を行う(ステップS10)。この乱数回路設定処理では、乱数回路17にランダムRの値を更新させるための設定が行われる。
図26は、ステップS10の乱数回路設定処理を示すフローチャートである。この乱数回路設定処理において、CPU103は、まず、ユーザプログラム実行データエリアの1F98h番地の領域に記憶されているカウンタ初期値選択データを読み出し、この読み出したカウンタ初期値選択データに基づいて、カウンタ初期値として所定値「1」が選択されているか、或いはIDナンバを示す値が選択されているかを判別する(ステップS21)。
ステップS21の処理にてカウンタ初期値として所定値「1」が選択されていると判別した場合には(ステップS21;Yes)、カウンタ初期値設定データ「0001h」をカウンタ初期値設定レジスタ73aに書き込むことにより、所定値「1」をカウンタ初期値として乱数回路17に設定する(ステップS22)。一方、IDナンバを示す値が選択されていると判定した場合には(ステップS21;No)、IDナンバの値を示すカウンタ初期値設定データをカウンタ初期値設定レジスタ73aに書き込むことにより、IDナンバの値をカウンタ初期値として乱数回路17に設定する(ステップS23)。
次に、CPU103は、ユーザプログラム実行データエリアの1F96h番地の領域に記憶されている基準クロック信号選択データを読み出し、この読み出した基準クロック信号選択データに基づいて、基準クロック信号S0としてシステムクロック信号が選択されているか、或いは分周クロック信号が選択されているかを判別する(ステップS24)。
ステップS24の処理にて基準クロック信号S0としてシステムクロック信号が選択されていると判別した場合には(ステップS24;Yes)、基準クロック信号指定データ「01b」を基準クロック信号指定レジスタ71aに書き込むことにより、システムクロック信号が出力されるように設定する(ステップS25)。一方、分周クロック信号が選択されていると判定した場合には(ステップS24;No)、基準クロック信号指定データ「10b」を基準クロック信号指定レジスタ71aに書き込むことにより、分周クロック信号が出力されるように設定する(ステップS26)。
続いて、CPU103は、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されているラッチ信号選択データを読み出し、この読み出したラッチ信号選択データに基づいて、ラッチ信号SLとして始動入賞信号SSが選択されているか、或いはカウント値取込信号が選択されているかを判別する(ステップS27)。
ステップS27の処理にてラッチ信号SLとして始動入賞信号SSが選択されていると判別した場合には(ステップS27;Yes)、ラッチ信号指定データ「01b」をラッチ信号指定レジスタ78aに書き込むことにより、始動入賞信号SSが出力されるように設定する(ステップS28)。一方、カウント値取込信号が選択されていると判定した場合には(ステップS27;No)、ラッチ信号指定データ「10b」をラッチ信号指定レジスタ78aに書き込むことにより、カウント値取込信号が出力されるように設定する(ステップS29)。
なお、この実施の形態においては、ユーザプログラム実行データエリアの1F97h番地の領域には、ラッチ信号選択データ「01h」が記憶されているため、ラッチ信号指定レジスタ78aには、ラッチ信号指定データ「01b」が書き込まれる。
その後、CPU103は、動作開始データ「80h」を動作開始レジスタ80aに書き込んで、乱数回路17の動作を開始させる(ステップS30)。
図25に示すステップS10の乱数回路設定処理に続いて、CPU103は、CTC105によるタイマ割込みのための設定を行う(ステップS11)。具体的には、CTC105に対して、CTC105が備える複数のチャネルのうちの1つ(具体的には、第0チャネルから第3チャネルのうちの第3チャネル)に割込許可を与えてタイマモードで動作させるとともに、当該チャネルのカウント初期値を指定する。これにより、以後、所定時間(例えば2ミリ秒)ごとにCTC105から割込要求信号がCPU103へ送出され、CPU103は、定期的にタイマ割込処理を実行することができる。
その後、CPU103は、CTC105からの割込要求信号によるタイマ割込が発生したか否かを監視するためのループ処理に移行する。このループ処理では、割込禁止に設定した後(ステップS12)、表示用乱数更新処理(ステップS13)が実行され、表示用乱数更新処理が完了すると、割込許可に設定する(ステップS14)。
図25に示す遊技制御メイン処理を実行したCPU103は、CTC105からの割込要求信号を受信して割込要求を受け付けると、図27に示す遊技制御割込処理の実行を開始する。
遊技制御割込処理を開始すると、CPU103は、所定の電源断処理を実行することにより、電源基板10から供給される電力が低下したときなどに所定のデータ保護処理等を実行可能とする(ステップS31)。続いて、所定のスイッチ処理を実行することにより、始動入賞口スイッチ70等の各入賞口スイッチから入力される検出信号の状態を判定する(ステップS32)。スイッチ処理では、スイッチ回路107を介して始動入賞口スイッチ70から入力される始動入賞信号SSがオン状態となっているか否かを判別する。始動入賞信号SSがオン状態である場合には、タイマ値を「1」加算して始動入賞口スイッチタイマメモリ114に格納する。一方、始動入賞信号SSがオフ状態である場合には、タイマ値をクリアする。
次に、CPU103は、ランダムR200などの判定用乱数を更新する判定用乱数更新処理(ステップS33)と、所定の表示用乱数を更新する表示用乱数更新処理(ステップS34)と、を順次実行する。
続いて、CPU103は、カウント値列変更処理を実行する(ステップS35)。
図28は、ステップS35のカウント値列変更処理を示すフローチャートである。このカウント値列変更処理において、CPU103は、まず、フラグメモリ113に設けられているカウント値一巡フラグをチェックするなどして、カウント値Cがカウンタ最終値である「65535」までカウントアップされたか否かを判別する(ステップS51)。カウント値一巡フラグがオフ状態である場合には(ステップS51;No)、カウント値Cが最終値までカウントアップされていないものと判別して、そのままカウント値列変更処理を終了する。
一方、カウント値一巡フラグがオン状態にある場合には(ステップS51;Yes)、カウント値Cがカウンタ最終値までカウントアップされ、一巡したものと判別して、ユーザプログラム実行データエリアの1F99h番地の領域に記憶されているカウント値列変更方式選択データを読み出す。CPU103は、この読み出したカウント値列変更方式選択データに基づいて、カウント値列を変更するか否かや、カウント値列を変更する場合には、第1のカウント値変更方式に従って変更するか、或いは第2のカウント値変更方式に従って変更するかを判別する(ステップS52,及びS55)。
第1のカウント値列変更方式選択データ「01b」が記憶されている場合(ステップS52;Yes)、CPU103は、ランダムカウンタ111よりランダムR200を抽出し(ステップS53)、抽出したランダムR200の値に基づいて、カウント値列の順序を変更するか否かを判別する(ステップS54)。
ステップS54の処理にてカウント値列の順序を変更するものと判別されたときには(ステップS54;Yes)、ステップS56の処理へと進む。一方、カウント値列の順序を変更しないものと判別されたときには(ステップS54;No)、ステップS57の処理へと進む。
第2のカウント値列変更方式選択データ「10b」が記憶されている場合(ステップS55;Yes)、カウント値列変更データ「01h」をカウント値列変更レジスタ74aに書き込んで、カウント値列の順序の変更を指示する(ステップS56)。
一方、ステップS52,及びS55の処理にてNoと判別された場合、CPU103は、プログラム実行データエリアの1F99h番地の領域に記憶されているカウント値列変更方式選択データが「00b」であると判別して、カウント値列の順序を変更することなく、そのままステップS57の処理へと進む。
その後、CPU103は、カウント値一巡フラグをクリアしてオフ状態とし(ステップS57)、カウント値列変更処理を終了する。
こうして初期値変更処理が終了した後、CPU103は、特別図柄プロセス処理を実行する(ステップS36)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選択されて実行される。特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
また、CPU103は、普通図柄プロセス処理を実行する(ステップS37)。普通図柄プロセス処理では、普通図柄表示器40を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選択されて実行される。普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。さらに、特別図柄コマンド制御処理(ステップS38)と、普通図柄コマンド制御処理(ステップS39)と、を順次実行する。これにより、CPU103は、主基板11から表示制御基板12に対して表示制御コマンドを送ることにより、可変表示装置4の表示制御や普通図柄表示器40の点灯制御を指示する。
続いて、CPU103は、所定の情報出力処理を実行することにより、各種出力データをI/Oポート104に含まれる各出力ポートに出力する(ステップS40)。この情報出力処理では、主基板11から情報端子基板16に、大当り情報、始動情報、確率可変情報などをホール管理用コンピュータに対して出力する指令の送出も行われる。
また、CPU103は、所定の賞球処理を実行することにより、始動入賞口スイッチ70等の各入賞口スイッチから入力された検出信号に基づく賞球数の設定などを行い、払出制御基板15に対して払出制御コマンドを出力可能とする(ステップS41)。さらに、CPU103は、所定のソレノイド出力処理を実行することにより、所定の条件が成立したときに普通可変入賞球装置6における可動翼片や特別可変入賞球装置7における開閉板の開閉駆動を行う(ステップS42)。
図29は、ステップS36にて実行される特別図柄プロセス処理を示すフローチャートである。特別図柄プロセス処理を開始すると、CPU103は、まず、遊技球が普通可変入賞球装置6に入賞したか否かを、始動入賞口スイッチタイマメモリ114に記憶されているタイマ値をチェックすることにより、判別する(ステップS101)。ステップS101の処理において、CPU103は、始動入賞口スイッチタイマメモリ114に記憶されているタイマ値をロードし、ロードしたタイマ値を所定のスイッチオン判定値(例えば「2」)と比較する。ここで、スイッチオン判定値は、タイマ割込処理の実行回数(例えば「2」)に対応して予め定められている。これにより、CPU103は、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ms)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたが否かを判別することができる。
そして、この比較結果に基づいて、CPU103は、タイマ値がスイッチオン判定値「2」以上であるか否かを判別する。タイマ値がスイッチオン判定値「2」以上である場合には、遊技球が入賞しているものと判別して(ステップS101;Yes)、入賞処理を実行する(ステップS102)と共に、タイマ値をクリアする。一方、タイマ値がスイッチオン判定値「2」未満である場合には、遊技球が入賞していないものと判別して(ステップS103;No)、入賞処理をスキップする。
図30は、ステップS103の入賞処理を示すフローチャートである。この入賞処理において、CPU103は、まず、特図保留メモリ110が記憶している始動入賞記憶数が最大値の「4」であるか否かを判別する(ステップS121)。ここで、特図保留メモリ110において、始動入賞記憶番号「4」に対応した乱数値Rが記憶されている場合には、始動入賞記憶数が「4」であると判別される。
始動入賞記憶数が「4」であるときには(ステップS121;Yes)、今回の入賞による始動検出は無効として、そのまま入賞処理が終了する。一方、始動入賞記憶数が「4」未満であるときには(ステップS121;No)、乱数値記憶回路79に出力制御信号SCを送出して、乱数値記憶回路79を読出可能(イネイブル)状態に制御する(ステップS122)。
続いて、CPU103は、乱数値記憶回路79から乱数値Rを読み出し(ステップS123)、この読み出した乱数値Rを、例えばRAM102に設けられた所定のバッファ領域に格納した後(ステップS124)、乱数値記憶回路79への出力制御信号SCの送出を停止して、乱数値記憶回路79を読出不能(ディセイブル)状態に制御する(ステップS125)。そして、CPU103は、始動入賞記憶数を「1」加算し(ステップS126)、所定のバッファ領域に格納した乱数値Rを特図保留メモリ110の空エントリの先頭にセットする(ステップS127)。
続いて、CPU103は、フラグメモリ113に格納されている特別図柄プロセスフラグの値に基づいて、図29に示すステップS110〜S118の9個の処理のいずれかを選択する。以下に、ステップS110〜S118の各処理について説明する。
ステップS110の特別図柄通常処理は、特別図柄プロセスフラグの値が初期値「0」のときに実行される処理である。この処理において、CPU103は、特図保留メモリ110が記憶している保留記憶数が「0」であるか否かを判別する。ここで、特図保留メモリ110において、保留番号「1」に対応した乱数値R等の各種データが記憶されていない場合には、保留記憶数が「0」であると判別される。保留記憶数が「0」であれば、表示制御基板12を介して可変表示装置4上にデモンストレーション画面を表示するなどして、特別図柄通常処理を終了する。一方、保留記憶数が「0」ではないと判別すると、特別図柄プロセスフラグの値を大当り判定処理に対応した値である「1」に更新する。
ステップS111の大当り判定処理は、特別図柄プロセスフラグの値が「1」のときに実行される処理である。この処理において、CPU103は、図31に示すように、まず、特図保留メモリ110から保留番号「1」に対応して格納されている乱数値Rを読み出す(ステップS141)。この際、保留記憶数を「1」減算し、且つ、特図保留メモリ110の第2〜第4エントリ(保留番号「2」〜「4」)に格納された乱数値Rを1エントリずつ上位にシフトする(ステップS142)。
続いて、CPU103は、確率向上状態(確変中)であるか否かを判別し(ステップS143)、確変中ではなければ(ステップS143;No)、通常遊技状態であると判断し、特図ゲームの表示結果を大当りとするか否かを判定するためのテーブルとして、図24(A)に示すような通常時大当り判定用テーブル121を設定する(ステップS144)。これに対して、確変中であれば(ステップS143;Yes)、図24(B)に示すような確変時大当り判定用テーブル122を設定する(ステップS145)。
CPU103は、ステップS141の処理にて読み出した乱数値Rに基づき、ステップS144又はS145にて設定した大当り判定用テーブル121又は122を用いて特図ゲームの表示結果を大当りとするか否かを判定する(ステップS146)。そして、大当りとすることに決定した場合には(ステップS146;Yes)、フラグメモリ113に設けられた大当り状態フラグをオン状態にセットし(ステップS147)、ハズレとすることに決定した場合には(ステップS146;No)、大当り状態フラグをクリアしてオフ状態とする(ステップS148)。この後、特別図柄プロセスフラグの値を確定図柄決定処理に対応した値である「2」に更新する(ステップS149)。
図29に示すステップS112の確定図柄決定処理は、特別図柄プロセスフラグの値が「2」のときに実行される処理である。この処理において、CPU103は、フラグメモリ113に設けられた大当り状態フラグがオンとなっているか否かを判別するとともに、所定のリーチ判定用乱数を抽出した結果等に基づいて、リーチとするか否かを判別する。これらの判別結果に従って、可変表示装置4による特図ゲームにおける最終的な確定図柄が設定される。その後、特別図柄プロセスフラグの値を可変表示パターン設定処理に対応した値である「3」に更新する。
ステップS113の可変表示パターン設定処理は、特別図柄プロセスフラグの値が「3」のときに実行される処理である。この処理において、CPU103は、まず、フラグメモリ113に設けられた大当り状態フラグがオンとなっているか否かを判別するとともに、上記ステップS112の確定図柄決定処理にてリーチとすることが決定されたか否かを判別し、これらの判別結果に従って、所定の可変表示パターンテーブルを設定する。そして、所定の可変表示パターン決定用乱数を抽出した結果等に基づいて、設定した可変表示パターンテーブルのうちから、今回の特図ゲームで使用する可変表示パターンを決定する。こうして可変表示パターンを決定した後、CPU103は、特別図柄プロセスフラグの値を可変表示指令処理に対応した値である「4」に更新する。
ステップS114の可変表示指令処理は、特別図柄プロセスフラグの値が「4」のときに実行される処理である。この処理において、CPU103は、可変表示装置4において特別図柄の全図柄が可変表示を開始するように制御する。具体的には、上述したステップS112の確定図柄決定処理にて決定した特別図柄の確定図柄に対応する制御データや、ステップS113の可変表示パターン設定処理にて決定した可変表示パターンに対応する制御データを、所定のコマンド送信テーブルに設定するなどして、可変表示開始コマンドと左・中・右の図柄指定コマンドを表示制御基板12に対して送出可能に設定する。そして、可変表示パターンに対応する総可変表示時間を所定の可変表示時間タイマに設定し、可変表示開始コマンドが送信されるとともにカウントダウンを開始する。この後、所定の可変表示時間タイマがタイムアウトすると、特別図柄プロセスフラグの値を可変表示停止時処理に対応した値である「5」に更新する。
ステップS115の可変表示停止時処理は、特別図柄プロセスフラグの値が「5」のときに実行される処理である。この処理において、CPU103は、主基板11から表示制御基板12に対して特別図柄確定コマンドを送出するための設定を行う。具体的には、特別図柄確定コマンドに対応する制御データを、所定のコマンド送信テーブルに設定するなどして、特別図柄確定コマンドを表示制御基板12に対して送出可能に設定する。また、パチンコ遊技機1が確率向上状態となっているときには、確率向上状態から通常遊技状態に戻すか否かを判定し、戻すと判定すると、パチンコ遊技機1における遊技状態を確率向上状態から通常遊技状態に移行させる。そして、可変表示の表示結果が大当りになるときは、特別図柄プロセスフラグの値を大入賞口開放前処理に対応した値である「6」に更新し、ハズレとなるときには、特別図柄プロセスフラグの値を「0」に更新する。
ステップS116の大入賞口開放前処理は、特別図柄プロセスフラグの値が「6」のときに実行される処理である。この処理において、CPU103は、大入賞口としての特別可変入賞球装置7を開放する制御を開始するための設定を行う。そして、特別可変入賞球装置7を開放する制御を開始するとともに、特別図柄プロセスフラグの値を大入賞口開放中処理に対応した値である「7」に更新する。
ステップS117の大入賞口開放中処理は、特別図柄プロセスフラグの値が「7」のときに実行される処理である。この処理において、CPU103は、開成された特別可変入賞球装置7への遊技球の入賞検出、賞球の払出指令、開成時間の計測、及び開成サイクルのラウンド数表示のための表示制御コマンド設定等を行う。そして、例えば、1回の大当りについて、特別可変入賞球装置7の開成回数をカウントし、開成回数が例えば16回に達していれば、特定遊技状態(大当り遊技状態)を終了する条件が終了したとして特別図柄プロセスフラグの値を大当り終了処理に対応した値である「8」に更新する。一方、開成回数が16回に達していなければ、特別可変入賞球装置7を一旦閉成した後、所定時間が経過するのを待って再度開成する。
ステップS118の大当り終了処理は、特別図柄プロセスフラグの値が「8」のときに実行される処理である。この処理において、CPU103は、表示制御基板12に対して所定の大当り終了コマンドを送出するための設定を行うなどして、大当り遊技状態を終了させる。また、CPU103は、フラグメモリ113に設けられた大当り状態フラグをクリアしてオフ状態とする。そして、特別図柄プロセスフラグの値を「0」に更新する。
以上説明したように、この実施の形態によれば、第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがハイレベルのとき、第1のセレクタ71から入力される基準クロック信号S0を第1の出力端子Q1から出力して、タイミングT10,T12,T14,…においてローレベルからハイレベルへと立ち上がるカウント用クロック信号S1をカウンタ73に供給する。一方、分周クロック信号SDがローレベルのとき、基準クロック信号S0を第2のラッチ用クロック端子Q2から出力して、タイミングT11,T13,T15,…においてローレベルからハイレベルへと立ち上がるラッチ用クロック信号S2をラッチ信号出力回路78に供給する。ラッチ信号出力回路78は、始動入賞口スイッチ70から入力される始動入賞信号SSを、この第2の出力クロック信号に同期させ、タイミングT11においてローレベルからハイレベルへと立ち上がるラッチ信号SLとして乱数値記憶回路79に出力する。
これにより、乱数回路17は、第1のセレクタ71から出力される基準クロック信号S0がローレベルからハイレベルへと立ち上がるタイミングT10,T11,T12,T13,T14,T15,…のうち、タイミングT10,T12,T14,…においてラッチ信号SLを出力することができる。そして、乱数値記憶回路79は、この更新されたカウント値Cを、ラッチ信号SLの立ち上がりエッヂに応答して、乱数値Rとして記憶する。
このため、乱数回路17は、カウンタ73によるカウント値Cの更新タイミングと、ラッチ信号出力回路78によるラッチ信号SLの出力タイミング(ラッチタイミング)と、を確実に異ならせることができ、この結果、パチンコ遊技機1は、乱数値の取得を確実且つ安定的に行うことができる。
また、CPU103は、パチンコ遊技機1に電力が供給され、遊技制御メイン処理が開始された後、タイマ割込処理の実行を許可してループ処理に移行する前に、乱数回路設定処理を行うため、限られた割り込み処理時間(例えば2ミリ秒)の間で乱数発生のための処理を開始・終了する必要はなくなり、遊技制御用マイクロプロセッサ100の処理負担の増加を防止することができる。さらに、乱数回路17がCPU103とともに遊技制御用マイクロプロセッサ100に内蔵されているため、主基板11のスペースを確保することができ、また、不正基板の設置等の偽造を困難にすることができる。
なお、好適には、乱数回路設定処理は、遊技状態復旧処理の実行後又はRAM102のクリアや所定の作業領域に対する初期設定などの初期化処理の実行後、タイマ割込処理の実行を許可してループ処理に移行する前に、実行されることが望ましい。
また、CPU103は、乱数回路17が発生するランダムRの値を用いて特図ゲームおける表示結果を大当りとするか否かを決定するため、ROM101等に記憶するプログラムの容量を削減することができる。
さらに、ランダムRの値は、乱数回路17にて更新されるので、ソフトウェアで更新するものに比べて、ROM101等が記憶するプログラムの容量を少なくすることできる。
また、乱数値記憶回路79に記憶されているランダムRの値を、乱数回路設定処理によりなされた設定に従って、更新させることができるため、パチンコ遊技機1毎に異なる設定を行うことで、乱数値記憶回路79から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
より詳細には、CPU103は、ユーザがパチンコ遊技機1毎に適宜選択したカウンタ初期値、基準クロック信号S0として用いるクロック信号を乱数回路17に設定した後、乱数回路17の動作を開始させる。これにより、乱数回路17は、CPU103により設定されたカウンタ初期値及び基準クロック信号S0として設定されたクロック信号に基づいて、乱数値記憶回路79に格納されているランダムRの値を更新するため、乱数値記憶回路79から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
さらに、カウント値列の順序を変更させることにより、乱数値記憶回路79に入力されるカウント値のランダム性が高まり、その結果、乱数値記憶回路79から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
また、カウント値列変更回路74が、CPU103からのカウント値列の順序変更の要求を受け付けたことに応答して、CPU103は、カウント値列変更データ「01h」が書き込まれたカウント値列変更レジスタ74aを初期化するので、カウント値列変更回路74から乱数値記憶回路79へと供給されるカウント値列が連続的に変更されるといった不具合を防止することができる。
さらに、カウント値列変更レジスタ74aが初期化された後、CPU103は、カウント値列変更データ「01h」をカウント値列変更レジスタ74aに再度書き込むことにより、変更したカウント値列の順序をさらに変更することができる。
また、CPU103は、リセットコントローラ109によりシステムリセットされるまで、クロック信号設定データが書き込まれた基準クロック信号指定レジスタ71a,及びカウンタ初期値設定データが書き込まれたカウンタ初期値設定レジスタ73aを書込不能に制御して乱数回路17に設定されたカウンタ初期値や、基準クロック信号S0として用いられるクロック信号を変更不能にする。これにより、悪質な遊技客がカウンタ初期値や、基準クロック信号S0を変更して乱数値記憶回路79から読み出されるランダムRの値と大当り判定値とが一致するタイミングを自在に設定し、大当りを頻発させるといった不正行為を防止することができる。
さらに、CPU103は、乱数回路17にカウンタ初期値を設定し、クロック信号、及びラッチ信号を指定した後に、乱数回路17を起動させるため、電力の供給開始後、カウンタ初期値や基準クロック信号S0として用いるクロック信号の設定を行う前に、この乱数回路17から乱数が発生してしまうといった不具合を防止することができる。
また、リセットコントローラ109によりシステムリセットされたときは、動作開始レジスタ80aに動作開始データ「80h」を書き込むことにより、乱数回路17を再度起動させることができる。
CPU103は、始動入賞口スイッチ70から始動入賞信号SSが、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ms)、継続して入力されたことを検出すると、入賞処理を実行する。
この入賞処理において、CPU103は、乱数値記憶回路79に出力制御信号SCを送出して乱数値記憶回路79を読出可能(イネイブル)状態に制御した後、乱数値記憶回路79から乱数値Rを読み出す。そして、CPU103は、乱数値記憶回路79への出力制御信号SCの送出を停止して乱数値記憶回路79を読出不能(ディセイブル)状態に制御した後、読み出した乱数値Rが所定の判定値「2001〜2184」などと一致するか否かを判定することにより、可変表示装置4による特図ゲームの表示結果を大当り遊技状態とするか否かを決定する。
このように、CPU103が乱数値Rを読み出すときのみ、乱数値記憶回路79を読出可能状態に制御することにより、パチンコ遊技機1は、乱数値の取得をより一層、確実且つ安定的に行うことができる。また、CPU103は、始動入賞口である普通可変入賞球装置6へ遊技球が入賞したときのみ、乱数値記憶回路79から乱数値Rを読み出すため、パチンコ遊技機1は、無駄な処理を省略することができる。
なお、乱数回路17は、始動入賞口スイッチ70から出力された始動入賞信号SSをラッチ信号出力回路78に直接入力するのではなく、一旦タイマ回路76に入力して、始動入賞信号SSの入力時間を計測し、計測した時間が予め設定された時間(3ms)になったとき、始動入賞信号SSをラッチ信号出力回路78に入力する。このため、パチンコ遊技機1は、ラッチ信号出力回路78がノイズの影響等により誤って乱数値記憶回路79にラッチ信号SLを出力することを防止することができる。また、タイマ回路76には、2回のタイマ割込処理の実行間「4ms」よりも短い「3ms」が設定されているため、CPU103が乱数値記憶回路79から読み出した乱数値Rが前回の入賞時に読み出した乱数値Rの値と同じ値となることを防止することができる。
また、乱数値記憶回路79は、ラッチ信号出力回路78からラッチ信号SLが入力されているとき、遊技制御用マイクロコンピュータ100から入力される出力制御信号(ハイレベルの信号)SCをローレベルの信号に変換することにより、出力制御信号SCに対して受信不能状態に制御する。これにより、乱数値記憶回路79に記憶されている乱数値Rが更新されているときに、CPU103により乱数値記憶回路79から乱数値Rが読み出されることを防止することができるため、パチンコ遊技機1は、乱数値Rの更新を確実且つ安定的に行うことができる。
さらに、乱数値記憶回路79は、遊技制御用マイクロコンピュータ100から出力制御信号SCが入力されているとき、ラッチ信号出力回路78から入力されるラッチ信号(ハイレベルの信号)SLをローレベルの信号に変換することにより、ラッチ信号SLに対して受信不能状態に制御する。これにより、遊技制御用マイクロコンピュータ100が乱数値記憶回路79から乱数値Rを読み出しているときに、乱数値記憶回路79に記憶されている乱数値Rが更新されることを防止することができるため、パチンコ遊技機1は、乱数値Rの取得を確実且つ安定的に行うことができる。
なお、本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、この発明に適用可能な上記の実施の形態の変形態様について説明する。
上記実施の形態において、始動入賞口スイッチ70は、始動入賞口である普通可変入賞球装置6への遊技球の入賞等を検出したことに基づいて、始動入賞信号SSを主基板11と乱数回路17とに出力し、そして、乱数回路17は、タイマ回路76において、始動入賞口スイッチ70から始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間(例えば3ms)になったとき、始動入賞信号SSをラッチ信号出力回路78に出力していた。
しかしながら、本発明は、これに限定されず、始動入賞口スイッチ70は、始動入賞信号SSを主基板11に対してのみ出力してもよい。この場合、ユーザプログラム実行データエリアの1F97h番地の領域には、ラッチ信号選択データ「02h」が記憶されており、ラッチ信号指定レジスタ78aには、ラッチ信号指定データ「10b」が書き込まれる。そして、主基板11に搭載されているCPU103は、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ms間)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたことに基づいて、カウント値取込データ「01h」をカウント値取込レジスタ75aに書き込む。
このような変形例に係る遊技機について、以下図面を参照して説明する。図32は、この変形例に係る乱数回路17の動作(作用)を説明するためのタイミングチャートである。
図32(A)に示すように、第1のセレクタ71は、例えばタイミングT10,T11,T12,…においてローレベルからハイレベルに立ち上がる基準クロック信号S0を分周回路72aと第3のセレクタ72bとに出力する。
分周回路72aは、入力された基準クロック信号S0を2分周して、T10からT11までの期間,T12からT13までの期間,…においてハイレベルとなり、T11からT12までの期間,T13からT14までの期間,…においてローレベルとなる、図32(B)に示す分周クロック信号SDを生成して第3のセレクタ72bに出力する。
第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがハイレベルのとき、即ち、T10からT11までの期間,T12からT13までの期間,…において、第1のセレクタ71から入力される基準クロック信号S0を第1の出力端子Q1から出力する。これにより、第3のセレクタ72bの第1の出力端子Q1からは、図32(C)に示すように、タイミングT10,T12,…において、ローレベルからハイレベルに立ち上がる第1のカウント用クロック信号S1が出力される。
また、第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがローレベルのとき、即ち、T11からT12までの期間,T13からT14までの期間,…において、第1のセレクタ71からから入力される基準クロック信号S2を第2の出力端子O1から出力する。これにより、第3のセレクタ72bの第2の出力端子Q2からは、図32(E)に示すように、タイミングT11,T13,…において、ローレベルからハイレベルに立ち上がるラッチ用クロック信号S2が出力される。
そして、カウンタ73は、図32(D)に示すように、第3のセレクタ72bの第1の出力端子Q1から入力されるカウント用クロック信号S1の立ち上がりエッヂに応答して、カウント値Cを更新して出力する。一方、ラッチ信号出力回路78は、入力端子Dから入力される図32(F)に示す乱数値取込信号を、第3のセレクタ72bの第2の出力端子Q2からクロック端子CKへと入力されるラッチ用クロック信号S2の立ち上がりエッヂに同期させて、図32(G)に示すラッチ信号SLを生成して出力端子Qから出力する。
乱数値記憶回路79は、カウンタ73から入力されるカウント値Cを、ラッチ信号出力回路78の出力端子Qから入力されるラッチ信号SLの立ち上がりエッヂに応答して、乱数値Rとしてラッチして記憶することにより、図32(G)に示すように、記憶する乱数値Rを更新する。
このようにして、乱数回路17は、カウント値Cの更新タイミングとカウント値Cのラッチタイミングとを確実に異ならせることができる。
また、この変形例において、図22に示すフラグメモリ113には、上述したフラグに加えて、乱数値読出フラグが設けられている。この乱数値読出フラグは、カウント値取込データ「01h」がカウント値取込レジスタ75aに書き込まれたときにオン状態にセットされ、乱数値記憶回路79から乱数値Rが読み出されるとクリアされてオフ状態となる。
図33は、この変形例において、ステップS36にて実行される特別図柄プロセス処理を示すフローチャートである。特別図柄プロセス処理を開始すると、CPU103は、まず、フラグメモリ113に設けられた乱数値読出フラグがオンとなっているか否かを判別する(ステップS201)。
乱数値読出フラグがオフであるときには(ステップS201;No)、遊技球が普通可変入賞球装置6に入賞したか否かを、始動入賞口スイッチタイマメモリ114に記憶されているタイマ値をチェックすることにより、判別する(ステップS202)。ステップS202の処理において、CPU103は、始動入賞口スイッチタイマメモリ114に記憶されているタイマ値をロードし、ロードしたタイマ値を所定のスイッチオン判定値(例えば「2」)と比較する。ここで、スイッチオン判定値は、タイマ割込処理の実行回数(例えば「2」)に対応して予め定められている。これにより、CPU103は、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ms間)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたが否かを判別することができる。
そして、この比較結果に基づいて、CPU103は、タイマ値がスイッチオン判定値「2」以上であるか否かを判別する。タイマ値がスイッチオン判定値「2」以上である場合には、遊技球が入賞しているものと判別して(ステップS202;Yes)、入賞処理を実行する(ステップS203)と共に、タイマ値をクリアする。一方、タイマ値がスイッチオン判定値「2」未満である場合には、遊技球が入賞していないものと判別して(ステップS202;No)、入賞処理をスキップする。
図34は、ステップS203の入賞処理を示すフローチャートである。この入賞処理において、CPU103は、まず、特図保留メモリ110が記憶している始動入賞記憶数が最大値の「4」であるか否かを判別する(ステップS221)。ここで、特図保留メモリ110において、始動入賞記憶番号「4」に対応した乱数値Rが記憶されている場合には、始動入賞記憶数が「4」であると判別される。
始動入賞記憶数が「4」であるときには(ステップS221;Yes)、今回の入賞による始動検出は無効として、そのまま入賞処理が終了する。一方、始動入賞記憶数が「4」未満であるときには(ステップS221;No)、カウント値取込データ「01h」をカウント値取込レジスタ75aに書き込んで、カウント値取込回路75からカウント値取込信号を出力させる(ステップS222)。その後、CPU103は、乱数値読出フラグをオン状態にセットする(ステップS223)。
また、ステップS201の処理にて乱数値読出フラグがオンであるときには(ステップS201;Yes)、乱数値読出処理を実行する(ステップS204)。
図35は、ステップS204の乱数値読出処理を示すフローチャートである。この乱数値読出処理において、CPU103は、まず、乱数値記憶回路79に出力制御信号SCを送出して、乱数値記憶回路79を読出可能(イネイブル)状態に制御する(ステップS231)。続いて、CPU103は、乱数値記憶回路79から乱数値Rを読み出し(ステップS232)、この読み出した乱数値Rを、例えばRAM102に設けられた所定のバッファ領域に格納した後(ステップS233)、乱数値記憶回路79への出力制御信号SCの送出を停止して、乱数値記憶回路79を読出不能(ディセイブル)状態に制御する(ステップS234)。
そして、CPU103は、始動入賞記憶数を「1」加算し(ステップS235)、所定のバッファ領域に格納した乱数値Rを特図保留メモリ110の空エントリの先頭にセットする(ステップS236)。この後、CPU103は、乱数値読出フラグをクリアしてオフ状態とする(ステップS237)。
以上説明したように、この変形例によれば、第3のセレクタ72bは、第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがハイレベルのとき、第1のセレクタ71から入力される基準クロック信号S0を第1の出力端子Q1から出力することによりカウント用クロック信号S1をカウンタ73に供給する。一方、分周クロック信号SDがローレベルのとき、第1のセレクタ71から入力される基準クロック信号S0を第2の出力端子Q2から出力することによりラッチ用クロック信号S2をラッチ信号出力回路78に供給する。
カウンタ73は、第3のセレクタ72bの第1の出力端子Q1から出力されるカウント用クロック信号S1がローレベルからハイレベルへと立ち上がるタイミングT10,T12,T14,…において、カウント値Cを順次更新して行く。
そして、始動入賞口である普通可変入賞球装置6へ遊技球が入賞すると、始動入賞口スイッチ70は、始動入賞信号SSを主基板11に対してのみ送出する。主基板11のCPU103は、始動入賞口スイッチ70から始動入賞信号SSが、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ms)、継続して入力されたことに基づいて、普通可変入賞球装置6へ遊技球が入賞したものと判別して、カウント値取込データ「01h」をカウント値取込レジスタ75aに書き込んで、カウント値取込回路75からカウント値取込信号を送出させる。
カウント値取込回路75から出力されたカウント値取込信号は、ラッチ信号出力回路78の入力端子Dへと入力される。ラッチ信号出力回路78は、この入力端子Dに入力されるカウント値取込信号を、第3のセレクタ72bの第2の出力端子Q2からクロック端子CKへと入力されるラッチ用クロック信号S2がローレベルからハイレベルへと立ち上がるタイミングT11,T13,T15,…において、ラッチ信号SLとして出力端子Qから出力する。
乱数値記憶回路79は、カウンタ73から入力端子Dへと入力されるカウント値Cを、ラッチ信号出力回路78の出力端子Qからクロック端子CKへと入力されるラッチ信号SLの立ち上がりエッヂに応答して、乱数値Rとしてラッチして記憶する。
この後、最初に行われるタイマ割込処理において、CPU103は、乱数値記憶回路79から乱数値Rを読み出し、読み出した乱数値Rが所定の判定値「2001〜2184」などと一致するか否かを判定することにより、可変表示装置4による特図ゲームの表示結果を大当り遊技状態とするか否かを決定する。
このようにして、乱数回路17は、カウンタ73によるカウント値Cの更新タイミングと、ラッチ信号出力回路78によるラッチ信号SLの出力タイミング(ラッチタイミング)と、を確実に異ならせることができ、この結果、パチンコ遊技機1は、乱数値Rの取得を確実且つ安定的に行うことができる。
また、CPU103は、普通可変入賞球装置6へ遊技球が入賞したものと判別したとき、カウント値取込データ「01h」をカウント値取込レジスタ75aに書き込むため、パチンコ遊技機1は、始動入賞口スイッチ70から乱数回路17へ始動入賞信号SSを供給するための経路を設ける必要がなく、そのハードウェア構成を簡素化することができる。
さらに、CPU103は、2回のタイマ割込処理が実行されている間、始動入賞信号SSが継続して入力されたことに基づいて、普通可変入賞球装置6へ遊技球が入賞したものと判別するため、パチンコ遊技機1は、ノイズの影響等により誤ってカウント値取込レジスタ75aにカウント値取込データ「01h」が書き込まれることを防止することができる。
また、CPU103は、普通可変入賞球装置6へ遊技球が入賞したものと判別したとき、この後、最初に行われるタイマ割込処理において、乱数値記憶回路79から乱数値Rを読み出すため、この読み出した乱数値Rが前回読み出した乱数値Rと同じ値になることを防止することができる。
また、上記実施の形態のように乱数回路17と始動入賞口スイッチ70とが接続されている構成では、始動入賞口スイッチ70から乱数回路17へと入力される始動入賞信号SSを、ラッチ用クロック信号S2に同期させてラッチ信号SLを出力する。一方、上記変形例のように乱数回路17と始動入賞口スイッチ70とが接続されていない構成では、カウント値取込データ「01h」をカウント値取込レジスタ75aに書き込んで、カウント値取込回路75からカウント値取込信号を出力させ、このカウント値取込信号をラッチ用クロック信号S2に同期させてラッチ信号SLを出力する。
このように、パチンコ遊技機1の構成に応じて、ユーザは、始動入賞信号SSをラッチ用クロック信号S2に同期させてラッチ信号SLを出力するか、或いは、カウント値取込信号をラッチ用クロック信号S2に同期させてラッチ信号SLを出力するかを選択することができる。このため、様々な構成の遊技機に対応することができる。
また、上記の実施の形態において、乱数値記憶回路79から読み出したランダムRの値を、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定する大当り判定用の乱数として用いるものとして説明した。しかしながら、本発明は、これに限定されず、この読み出したランダムRの値を、何に用いるかは任意であり、ハズレ時にリーチするか否かを決定するリーチ判定用の乱数、特別図柄及び飾り図柄の可変表示に用いる可変表示パターンを決定するための表示用の乱数、大当り時における特別図柄の確定図柄を決定するための表示用の乱数、ハズレ時における特別図柄の確定図柄を決定するための表示用の乱数、大当りを生じさせる確率が向上している高確率状態(特別遊技状態)とするか否かを決定する確変判定用の乱数や、普通図柄表示器40による普通図ゲームにおける表示結果を当りとするか否かを決定する普通図当り判定用の乱数などに用いてもよい。
さらに、遊技制御用マイクロプロセッサ100に乱数回路17を複数内蔵して、複数あるうちの一の乱数回路17から発生する乱数を、例えば特図ゲームの大当り判定に用い、その他の乱数回路17から発生する乱数を、普通図ゲームの当り判定に用いてもよい。このようにすれば、上記実施の形態における遊技制御用マイクロプロセッサ100以上に、その処理負担を低減することができる。
逆に、ここに挙げた乱数の全てを乱数回路17を用いて更新する必要はなく、一部の乱数を乱数回路17を用いずに更新してもよい。例えば、これらの乱数のうちの一部を、遊技制御割込処理中に所定のプログラムを実行することによって、更新してもよく、また、リフレッシュレジスタを用いた乱数の更新方式を併用してもよい。さらに、乱数値記憶回路79から読み出したランダムRの値と、遊技制御割込処理中に所定のプログラムを実行することによって更新した乱数の値及び/又はリフレッシュレジスタを用いて更新した乱数の値と、を加算、減算、積算、乗算、除算するなど、演算して得られた値を、大当り、リーチ、可変パターン等の決定用の乱数として用いてもよい。
上記の実施の形態において、CPU103は、遊技制御メイン処理において、ステップS8による遊技状態復旧処理又はS9による初期化処理の後、ステップS11によるCTC105によるタイマ割込みのための設定をする前に、乱数回路設定処理を実行していたが、本発明は、これに限定されず、電力供給が開始された後、ループ処理に移行する前であれば任意であり、例えば、ステップS1にて割込禁止に設定した直後に行ってもよく、ステップS2にて割込モードをモード2に設定した直後に行ってもよい。また、ステップS3にてスタックポインタにスタックポインタ指定アドレスを設定した直後、ステップS4にてCTC105などのレジスタ設定を行った直後や、ステップS11にてタイマ割込みのための設定をした直後に行ってもよい。
上記実施の形態において、第3のセレクタ72bは、分周回路72aから入力される分周クロック信号SDがハイレベルのとき、第1のセレクタ71から入力される基準クロック信号S0を第1の出力端子Q1から出力し、分周クロック信号SDがローレベルのとき、基準クロック信号S0を第2の出力端子Q2から出力されていた。しかしながら、本発明は、これに限定されず、第3のセレクタ72bは、分周クロック信号SDがローレベルのとき、基準クロック信号S0を第1の出力端子Q1から出力し、分周クロック信号SDがハイレベルのとき、基準クロック信号S0を第2の出力端子Q2から出力してもよい。
さらに、上記実施の形態において、カウンタ73は、アップカウンタであったが、本発明は、これに限定されず、ダウンカウンタであってもよい。さらに、数値更新手段は、カウンタ73に限定されず、疑似乱数発生回路であってもよい。また、カウンタ73のカウント値CのビットデータC0〜C15の出力端子と、乱数値記憶回路79のカウント値CのビットデータC0〜C15の入力端子と、の接続を替えてもよく、このようにすれば、乱数値記憶回路79に入力されるカウント値Cのランダム性を高めることができる。
また、上記実施の形態において、乱数値記憶回路79は、AND回路201,203やOR回路230〜245などの論理回路を用いてラッチ信号SL及び出力制御信号SCの受信制御,乱数値Rの出力制御などのイネイブル/ディセイブル制御を行っていた。しかしながら、本発明は、これに限定されず、乱数値記憶回路79は、I/Oポート104やラッチ信号出力回路78との間にFET(Field Effect Transistor)などのスイッチング素子を設け、ラッチ信号SLや出力制御信号SCの入力に応答して、I/Oポート104やラッチ信号出力回路78との経路を導通、遮断することにより、ラッチ信号SLや出力制御信号SCのイネイブル/ディセイブル制御を行ってもよい。
さらに、上記実施の形態において、タイマ回路76は、ハイレベルの信号が入力されたことに応答して起動し、入力がハイレベルとなっている間、第1のセレクタ71からの基準クロック信号S0の入力に応答して、タイマ値をアップカウント又はダウンカウントして行き、タイマ値が所定の時間に対応する値となったとき、入力された信号をハイレベルの信号であると判定してラッチ信号出力回路78に出力するものであった。しかしながら、本発明は、これに限定されず、タイマ回路76は、始動入賞口スイッチ70から始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間になったとき、始動入賞信号SSをラッチ信号出力回路78に出力するものであれば任意である。
また、上記実施の形態において、タイマ回路76は、基準クロック信号S0を用いて信号の入力時間を計測していたが、本発明は、これに限定されず、タイマ回路76は、基準クロック信号S0を分周したクロック信号や、第1のセレクタ71とは異なるクロック信号出力回路から出力されるクロック信号を用いてもよい。また、上記実施の形態において、タイマ回路76には、所定の時間として3msが設定されていたが、本発明は、これに限定されず、2回のタイマ割込処理の実行時間である4msよりも短い時間であれば任意に設定可能である。
さらに、上記実施の形態において、CPU103は、2回のタイマ割込処理が実行されている間、始動入賞信号SSが継続して入力されたことに基づいて、入賞処理を実行していた。しかしながら、本発明は、これに限定されず、上述したタイマ割込処理の実行回数は、任意であり、例えば、CPU103は、3回のタイマ割込処理が実行されている間、始動入賞信号SSが継続して入力されたことに基づいて、入賞処理を実行してもよい。この場合、タイマ回路76には、3回のタイマ割込処理の実行時間である6msよりも短い時間を設定すればよい。
また、上記実施の形態において、遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6への入賞)が成立した後に可変表示の開始条件(例えば可変表示装置4における前回の可変表示及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報(例えば特別図柄)を可変表示する可変表示装置(例えば可変表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御するパチンコ遊技機であった。
しかしながら、本発明は、これに限定されず、遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
また、本発明の遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。
さらに、本発明の遊技機は、図36に示す、1ゲームに対して賭け数を設定することによりゲームを開始させることが可能となり、可変表示装置(例えば可変表示装置1002)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて所定の入賞が発生可能であるスロットマシン(例えばスロットマシン1000)であってもよい。図36に示すスロットマシン1000は、本発明の始動入賞信号出力手段として、遊技者によりスタートレバー1011が操作されたことに基づいて所定の始動信号を遊技制御用CPU(例えば主基板)や乱数回路(例えば乱数回路)に出力する図示しないスタートスイッチを備えている。なお、図36に示す液晶表示器1001は、演出手段として機能するものである。
また、本発明の遊技機は、パチンコ遊技機等の弾球遊技機であってもよく、画像表示装置を有するものであれば、例えば、一般電役機、又はパチコンと呼ばれる確率設定機能付き弾球遊技機等であっても構わない。さらには、プリペイドカードによって球貸しを行うCR式パチンコ遊技機だけではなく、現金によって球貸しを行うパチンコ遊技機にも適用可能である。すなわち、LCD等からなる画像表示装置を有し、識別情報としての図柄を可変表示することが可能な遊技機であれば、どのような形態のものであっても構わない。
さらに、図1,図2,及び図36に示した装置構成、図3,図4,及び図22に示すブロック構成、図5〜図7,図9,及び図14に示したレジスタ構成、図6,図10,及び図18〜図21に示すデータ構成、図8,図24に示すテーブル構成、図13,図15,及び図32に示すタイミングチャート構成、及び図25〜図31,及び図33〜図35に示すフローチャート構成は、発明の趣旨を逸脱しない範囲で任意に変更及び修正が可能である。
また、パチンコ遊技機1の動作をシミュレーションするゲーム機などにも本発明を適用することができる。本発明を実現するためのプログラム及びデータは、コンピュータ装置等に対して、着脱自在の記録媒体により配布・提供される形態に限定されるものではなく、予めコンピュータ装置等の有する記憶装置にプリインストールしておくことで配布される形態を採っても構わない。さらに、本発明を実現するためのプログラム及びデータは、通信処理部を設けておくことにより、通信回線等を介して接続されたネットワーク上の、他の機器からダウンロードすることによって配布する形態を採っても構わない。
そして、ゲームの実行形態も、着脱自在の記録媒体を装着することにより実行するものだけではなく、通信回線等を介してダウンロードしたプログラム及びデータを、内部メモリ等にいったん格納することにより実行可能とする形態、通信回線等を介して接続されたネットワーク上における、他の機器側のハードウェア資源を用いて直接実行する形態としてもよい。さらには、他のコンピュータ装置等とネットワークを介してデータの交換を行うことによりゲームを実行するような形態とすることもできる。
また、本発明は、入賞球の検出に応答して所定数の賞球を払い出す払出式遊技機に限定されるものではなく、遊技球を封入し入賞球の検出に応答して得点を付与する封入式遊技機にも適用することができる。