以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。なお、以下の説明においてリーチ表示状態とは、表示結果として導出表示した図柄(リーチ図柄という)が大当り図柄の一部を構成しているときに未だ導出表示していない図柄(リーチ可変図柄という)については可変表示が行われている状態、あるいは、全て又は一部の図柄が大当り図柄の全て又は一部を構成しながら同期して可変表示している状態のことである。具体的には、予め定められた複数の表示領域に、予め定められた図柄が停止することで大当りとなる有効ラインが定められ、その有効ライン上の一部の表示領域に予め定められた図柄が停止しているときに未だ停止していない有効ライン上の表示領域において可変表示が行われている状態(例えば、左、中、右の表示領域のうち左、右の表示領域には大当り図柄の一部となる(例えば「7」)が停止表示されている状態で中の表示領域は未だ可変表示が行われている状態)、あるいは、有効ライン上の表示領域の全て又は一部の図柄が大当り図柄の全て又は一部を構成しながら同期して可変表示している状態(例えば、左、中、右の表示領域の全てで可変表示が行われてどの状態が表示されても同一の図柄が揃っている態様で可変表示が行われている状態)である。
本実施例における遊技機は、LCD等からなる画像表示装置により特図ゲームを行う遊技機であり、プリペイドカードによって球貸しを行うカードリーダ(CR:Card Reader)式のパチンコ遊技機や、LCDを搭載したスロットマシン等の遊技機である。
図1は、本実施例におけるパチンコ遊技機の正面図であり、主要部材の配置レイアウトを示す。パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3と、から構成されている。遊技盤2にはガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。この遊技領域のほぼ中央位置には、各々が識別可能な識別情報として特別図柄を可変表示可能に表示する可変表示装置4が設けられている。この可変表示装置4の下側には、普通可変入賞球装置(始動入賞口)6が配置されている。普通可変入賞球装置6の下側には、特別可変入賞球装置(大入賞口)7が配置されている。また、可変表示装置4の上部には、普通図柄表示器40が設けられている。
可変表示装置4は、複数の表示領域において識別情報としての図柄を可変表示するLCD(Liquid Crystal Display)モジュール等を備えて構成され、例えば、普通可変入賞球装置6に遊技球が入賞することが実行条件となる特図ゲームにおいて、数字、文字、図柄等から構成される3つの表示図柄(特別図柄)の可変表示を開始し、一定時間が経過すると、左、右、中の順で表示図柄を確定する。可変表示装置4には、普通可変入賞球装置6に入った有効入賞球数すなわち始動記憶数を表示する4つの始動記憶表示エリアが設けられていてもよい。
この実施の形態では、図柄番号が偶数である特別図柄を通常大当り図柄とし、図柄番号が奇数である特別図柄を確変大当り図柄とする。すなわち、可変表示装置4による特図ゲームにおいて、特別図柄の可変表示を開始した後、左・中・右の表示領域にて同一の特別図柄が表示結果として導出表示されて確定したときには、パチンコ遊技機1は、大当り遊技状態となる。ここで、可変表示装置4による特図ゲームにおいて、特別図柄の可変表示を開始した後、左・中・右の表示領域にて同一の確変大当り図柄が表示結果として導出表示されて確定したときには、パチンコ遊技機1は大当り遊技状態の終了に続いて特別遊技状態(確率向上状態)となり、以後、所定条件が成立するまで特図ゲームにおける表示結果が大当り組合せとなる確率が向上する。また、確率向上状態では、普通可変入賞球装置6の開放時間が通常遊技状態よりも長くなるとともに、その開放回数が通常遊技状態のときよりも増加するなど、大当り遊技状態とは異なる遊技者にとって有利な状態となる。なお、通常遊技状態とは、大当り遊技状態や確率向上状態以外の遊技状態のことである。
普通図柄表示器40は、発光ダイオード(LED)等を備えて構成され、遊技領域に設けられた所定の通過ゲートを遊技球が通過することを実行条件とする普通図ゲームにおいて、点灯、点滅、発色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となり、普通可変入賞球装置6を構成する電動チューリップの可動翼片を所定時間が経過するまで傾動制御する。
普通可変入賞球装置6は、ソレノイド21(図3)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)を備えて構成される。普通可変入賞球装置6への遊技球の入賞に基づく特別図柄の可変表示は、所定回数(本実施形態では、4回)まで後述する特図保留メモリ170(図25)に記憶される。
特別可変入賞球装置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に送信される表示制御コマンドの信号線等を示すブロック図である。図3に示すように、この実施の形態では、表示制御コマンドが、表示制御信号CD0〜CD7の8本の信号線で主基板11から表示制御基板12に対して送出される。また、主基板11と表示制御基板12との間には、ストローブ信号を送受するための表示制御INT信号の信号線も配線されている。
主基板11には、図3に示すように、始動入賞口スイッチ70からの配線が接続されている。また、主基板11には、大入賞口である特別可変入賞球装置7や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチからの配線も接続されている。さらに、主基板11には、普通可変入賞球装置6における可動翼片の可動制御や特別可変入賞球装置7における開成・閉成制御を行うためのソレノイド21、22への配線が接続されている。
主基板11は、遊技制御用マイクロプロセッサ100、スイッチ回路109、ソレノイド回路110などを搭載して構成される。遊技制御用マイクロプロセッサ100は、例えば1チップマイクロプロセッサであり、クロック回路101、システムリセット手段として機能するリセットコントローラ102、乱数回路103、ゲーム制御用のプログラム等を記憶するROM(Read Only Memory)104、ワークメモリとして使用されるRAM(Random Access Memory)105、制御動作を行うCPU(Central Processing Unit)106、CPUに割込要求信号を送出するCTC(Counter Timer Circuit)107及びI/O(Input/Output)ポート108を内蔵している。
クロック回路101は、システムクロック信号をCPU106に出力し、このシステムクロック信号を27(=128)分周して生成した所定の周期の基準クロック信号CLKを、乱数回路103に出力する。リセットコントローラ102は、ローレベルの信号が一定期間入力されたとき、CPU106及び乱数回路103等に所定の初期化信号を出力して、遊技制御用マイクロプロセッサ100をシステムリセットする。
図4は、乱数回路103の構成例を示すブロック図である。図4に示すように、乱数回路103は、数値更新手段として機能するカウンタ121と、更新範囲規制手段として機能する比較器122と、数値順列変更手段として機能するカウント値順列変更回路123と、乱数発生用クロック信号生成手段として機能するクロック信号出力回路124と、カウント値更新信号出力回路125と、乱数値読取信号出力回路126と、乱数更新方式選択信号出力回路127と、更新信号選択手段として機能するセレクタ128と、乱数回路起動信号出力回路130と、乱数値記憶手段として機能する乱数値記憶回路131と、反転クロック信号生成手段として機能する反転回路132と、ラッチ信号出力手段として機能するラッチ信号生成回路133と、タイマ手段として機能するタイマ回路134とから構成されている。乱数回路103は、例えば、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定する大当り判定用の乱数であるランダムRを発生する。
カウンタ121は、セレクタ128により選択されて入力される信号に応答して、出力するカウント値Cを、一定の規則に従って、初期値から最終値まで循環的に更新する。そして、カウンタ121は、カウント値Cを最終値まで更新すると、その旨を通知する通知信号をCPU106に出力し、この通知信号に応答したCPU106により初期値が変更される。この実施の形態において、カウンタ121は、セレクタ128からの信号における立ち上がりエッヂが入力される毎に、カウント値Cを「1」から「4095」まで1ずつカウントアップして行き、「4095」までカウントアップすると、その旨を通知する通知信号をCPU106に出力する。そして、この通知信号に応答したCPU106により、初期値が変更され、カウンタ121は、この変更された初期値から再び「4095」までカウントアップする。
カウント値順列変更回路123は、カウント値の更新順である順列の変更を要求するカウント値順列変更データ「01h」を格納するカウント値順列変更レジスタ(RSC)136と、更新規則選択レジスタ(RRC)142と、更新規則メモリ143と、を備える。カウント値順列変更回路123は、カウント値順列変更レジスタ136に数値順列変更データ「01h」が格納されているとき、カウント値順列変更データ「01h」が格納されていないときの順列とは異なる順列に変更する。
図5は、更新規則選択レジスタ142の構成例を示すブロック図である。図5に示すように、更新規則選択レジスタ142は、8ビットレジスタであり、その初期値は、「0(=00h)」に設定されている。更新規則選択レジスタ142は、ビット0〜ビット3が書込可能及び読出可能に、ビット4〜ビット7が書込不能及び読出不能に構成されている。したがって、更新規則選択レジスタ142のビット4〜ビット7に値を書き込んでも、その値は無効であり、ビット4〜ビット7から読み出した値は全て「0(=0000b)」となる。
更新規則選択レジスタ142の値(レジスタ値)は、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」が書き込まれたことに応答して、「0(=00h)」から「15(=0Fh)」まで循環的に更新される。すなわち、カウント値順列変更レジスタ136にカウント値順列データ「01h」が書き込まれる毎に、レジスタ値は、「0」から「1」ずつ加算され、「15」になると再び「0」に戻る。
図6は、更新規則メモリ143の構成例を示すブロック図である。図6に示すように、更新規則メモリ143は、カウント値の更新規則と、更新規則選択レジスタ142の値と、を対応付けて格納している。更新規則メモリ143には、カウンタ121の更新規則と同一の更新規則Aがレジスタ値「0」と対応して格納され、カウンタ121の更新規則とは異なる更新規則B〜Pがレジスタ値「1」〜「15」と対応して格納されている。
図4に示すカウント値順列変更回路123は、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」が書き込まれているとき、カウンタ121からカウント値の最終値「4095」が入力されると、更新されたレジスタ値に基づいて、更新規則メモリ143のうちから更新規則を選択して設定することにより、出力するカウント値の更新規則を切り替える。そして、カウント値順列変更回路123は、カウンタ121からの入力に応答して、この切り替えた更新規則に従って、カウント値を更新して出力する。
このように、カウント値順列変更回路123は、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」が書き込まれたことに応答して、更新規則を切り替えることにより、出力するカウント値の順列を変更する。
図7は、カウント値順列変更回路123におけるカウント値順列の変更動作の説明図である。図7に示すように、CPU106により所定のタイミングにカウント値順列変更データ「01h」がカウント値順列変更レジスタ136に書き込まれると、レジスタ値は、1加算され、例えば「0」から「1」に更新される。この後、カウント値順列変更回路123は、カウンタ121からカウント値の最終値「4095」が入力されるまで、更新前のレジスタ値「0」に対応する「更新規則A」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路123から出力されるカウント値の順列は、「1→2→…→4095」である。
そして、カウンタ121からカウント値の最終値「4095」が入力されると、カウント値順列変更回路123は、更新規則メモリ143から、更新後のレジスタ値「1」に対応する「更新規則B」を選択して設定する。カウント値順列変更回路123は、カウンタ121からの入力に応答して、この選択設定した「更新規則B」に従って、カウント値を更新して出力する。これにより、カウント値順列変更回路123から出力されるカウント値の順列は、「1→2→…→4095」から「4095→4094→…→1」に変更される。
この後、後述するようにカウント値順列変更レジスタ136は初期化され、カウント値順列変更回路123から出力されるカウント値の順列は、「4095→4094→…→1」のままとなる。
CPU106によりカウント値順列変更データ「01h」がカウント値順列変更レジスタ136に再度書き込まれると、レジスタ値は「1」から「2」に更新される。そして、カウンタ121からカウント値の最終値「4095」が入力されると、カウント値順列変更回路123は、更新規則メモリ143から、レジスタ値「2」に対応する「更新規則C」を選択して設定する。カウント値順列変更回路123は、カウンタ121からの入力に応答して、この選択設定した「更新規則C」に従って、カウント値を更新して出力することにより、カウント値の順列は、さらに変更され、「1→3→…→4095→2…→4094」となる。
このように、カウント値順列変更レジスタ136が初期化された後、カウント値順列データ「01h」をカウント値順列変更レジスタ136に再度書き込むことにより、変更したカウント値の順列をさらに変更することができる。
図8は、カウント値順列変更レジスタ136の構成例を示す図である。図8に示すように、カウント値順列変更レジスタ136は、読出可能な8ビットレジスタであり、その初期値は、「0(=00h)」に設定されている。また、カウント値順列変更レジスタ136は、ビット0のみが書込可能及び書込可能に構成され、したがって、ビット1〜ビット7に値を書き込んでも、その値は無効であり、ビット1〜ビット7から読み出した値は全て「0(=0000000b)」となる。
なお、カウント値順列変更回路123が、切り替えた更新規則に従ってカウント値の更新動作を開始したことに応答して、CPU106は、カウント値順列変更データ「01h」が書き込まれたカウント値順列変更レジスタ136を初期化して格納されている値を初期値である「0(=00h)」に戻す。
図4に示す比較器122は、ランダムRの最大値(乱数最大値)を指定する乱数最大値設定データを格納する乱数最大値設定レジスタ(RMX)135を備える。比較器122は、乱数最大値設定レジスタ135に格納されている乱数最大値設定データに応じて、カウンタ121によるカウント値の更新範囲を規制する。この実施の形態において、カウンタ121から入力されたカウント値と乱数最大値設定レジスタ135に格納されている乱数最大値設定データ(例えば「00FFh」)により指定される乱数最大値(例えば「255」)とを比較し、入力されたカウント値が乱数最大値以下のとき、入力されたカウント値を乱数値記憶回路131に出力し、入力されたカウント値が乱数最大値より大きいとき、カウント値更新信号をカウンタ121に出力する。
図9は、カウンタ121及び比較器122におけるカウント値の更新動作の説明図である。なお、図9では、カウント値順列変更回路123において更新規則Aが選択され、乱数最大値を「255」と設定した場合を例に説明する。
入力されるカウント値が「1」から「255」までのとき、比較器122は、この入力されたカウント値をそのまま乱数値記憶回路131に出力する。そして、入力されるカウント値が乱数最大値「255」より大きい値「256」になると、比較器122は、カウンタ121にカウント値更新信号を出力してカウント値を「257」に更新させる。このような動作を繰り返すことにより、比較器122は、入力されるカウント値をカウンタ121により「256」から「4095」まで連続的にカウントアップさせる。そして、カウンタ121は、「4095」までカウントアップすると、その旨を通知する通知信号をCPU106に出力する。
この通知信号に応答したCPU106により変更された初期値が乱数最大値「255」より大きい場合(例えば「256」)、カウンタ121は、この変更された初期値のカウント値を比較器122に出力し、比較器122は、カウンタ121にカウント値更新信号を出力してカウント値を更新させる。このような動作を繰り返すことにより、比較器122は、入力されるカウント値をカウンタ121により「4095」まで連続的にカウントアップさせ、カウンタ121に通知信号を出力させる。そして、この通知信号に応答したCPU106により、初期値がさらに変更される。このようにして、初期値は、乱数最大値以下の値になるまで変更される。そして、この通知信号に応答したCPU106により変更された初期値が乱数最大値「255」以下になった場合(例えば「15」)、カウンタ121は、この変更された初期値のカウント値を比較器122に出力し、比較器122は、入力されたカウント値をそのまま乱数値記憶回路131に出力する。
上記説明したカウンタ121及び比較器122における動作により、乱数最大値設定レジスタ135に格納されている乱数最大値以下のカウント値のみを乱数値記憶回路131に出力することにより、乱数回路103は、乱数最大値設定レジスタ135に格納した乱数最大値「255」を上限としたランダムRを発生することができる。また、初期値が乱数最大値以下になるまで変更されることにより、乱数値記憶回路131には、乱数最大値「255」以下の値が、変更された初期値として入力される。
図10は、乱数最大値設定レジスタ135の構成例を示すブロック図である。図10に示すように、乱数最大値設定レジスタ135は、16ビットレジスタであり、その初期値は、「4095(=0FFFh)」に設定されている。乱数最大値設定レジスタ135は、ビット0〜ビット11が書込可能及び読出可能に、ビット12〜ビット15が書込不能及び読出不能に構成されている。したがって、乱数最大値設定レジスタ135のビット12〜ビット15に値を書き込んでも、その値は無効であり、ビット12〜ビット15から読み出した値は全て「0(=0000b)」となる。
また、乱数最大値設定レジスタ135に下限値「4」より小さい値を指定する乱数最大値設定データ「0000h」〜「0003h」が書き込まれた場合、乱数最大値設定レジスタ135には、CPU106により、初期値「4095」を指定する乱数最大値設定データ「0FFFh」が格納される。即ち、乱数最大値設定レジスタ135に設定可能な乱数最大値は、「4」から「4095」までである。なお、CPU106は、リセットコントローラ102により遊技制御用マイクロプロセッサ100がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ135を書込不能に制御する。
図4に示すクロック信号出力回路124は、セレクタ128と反転回路132に出力するクロック信号の周期(カウント値の更新周期)を指定する周期設定データを格納する周期設定レジスタ(RPS)137を備える。クロック信号出力回路124は、周期設定レジスタ137に格納されている周期設定データに基づいて、乱数回路103外部のクロック回路101から入力される基準クロック信号CLKを分周して、乱数回路103内部で乱数値の発生に用いるクロック信号(乱数発生用クロック信号S1)を生成し、この生成した乱数発生用クロック信号S1をセレクタ128と反転回路132に出力する。例えば、周期設定レジスタ137に書き込まれた周期設定データが「0Fh(=16)」の場合、クロック信号出力回路124は、クロック回路101から入力される基準クロック信号CLKを16分周して乱数発生用クロック信号S1を生成する。このとき生成された乱数発生用クロック信号S1の周期は、「システムクロック信号の周期×128×16」となる。
図11は、周期設定レジスタ137の構成例を示すブロック図である。図11に示すように、周期設定レジスタ137は、書込可能及び読出可能な8ビットレジスタであり、その初期値は、「256(=FFh)」に設定されている。
また、周期設定レジスタ137に下限値「システムクロック信号の周期×128×7」より小さい値を指定する周期設定データ「00h〜06h」が書き込まれた場合、CPU106は、周期設定レジスタ137に下限値「システムクロック信号の周期×128×7」を指定する周期設定データ「07h」を格納する。即ち、周期設定レジスタ137に設定可能な周期は、「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までである。なお、CPU106は、リセットコントローラ102により遊技制御用マイクロプロセッサ100がシステムリセットされるまで、周期設定データが書き込まれた周期設定レジスタ137を書込不能に制御する。
図4に示すカウント値更新信号出力回路125は、カウント値の更新を要求するカウント値更新データ「01h」を格納するカウント値更新レジスタ(RGN)138を備える。カウント値更新信号出力回路125は、カウント値更新レジスタ138にカウント値更新データ「01h」が書き込まれたことに応答して、カウント値更新信号S3をセレクタ128に出力する。
図12は、カウント値更新レジスタ138の構成例を示すブロック図である。図12に示すように、カウント値更新レジスタ138は、読出不能な8ビットレジスタであり、ビット0のみが書込可能に構成され、ビット1〜ビット7に値を書き込んでも、その値は無効である。
図4に示す乱数値読取信号出力回路126は、乱数値記憶回路131へのカウント値の取込を要求する乱数値取込データ「01h」を格納する乱数値取込レジスタ(RLT)139を備える。乱数値読取信号出力回路126は、乱数値取込レジスタ139に乱数値取込データ「01h」が書き込まれたことに応答して、乱数値読取信号をラッチ信号生成回路133に出力する。
図13は、乱数値取込レジスタ139の構成例を示すブロック図である。図13に示すように、乱数値取込レジスタ139は、読出不能な8ビットレジスタであり、ビット0のみが書込可能に構成され、ビット1〜ビット7に値を書き込んでも、その値は無効である。
図4に示す乱数更新方式選択信号出力回路127は、ランダムRの値を更新する方式である第1及び第2の乱数更新方式のうちから選択された乱数更新方式を指定する乱数更新方式選択データを格納する乱数更新方式選択レジスタ(RTS)140を備える。乱数更新方式選択信号出力回路127は、乱数更新方式選択レジスタ140に乱数更新方式選択データが書き込まれたことに応答して、この書き込まれた乱数更新方式選択データにより指定される乱数更新方式に対応する乱数更新方式選択信号をセレクタ128とラッチ信号生成回路133に出力する。
図14(A)は、乱数更新方式選択レジスタ140の構成例を示すブロック図である。図14(A)に示すように、乱数更新方式選択レジスタ140は、8ビットレジスタであり、その初期値は、「00h」に設定されている。乱数更新方式選択レジスタ140は、ビット0〜ビット1が書込可能及び読出可能に、ビット2〜ビット7が書込不能及び読出不能に構成されている。したがって、乱数更新方式選択レジスタ140のビット2〜ビット7に値を書き込んでも、その値は無効であり、ビット2〜ビット7から読み出した値は全て「0(=000000b)」となる。
図14(B)は、乱数更新方式選択レジスタ140に書き込まれる乱数更新方式選択データの一例の説明図である。図14(B)に示すように、乱数更新方式選択データは、2ビットのデータから構成され、「01b」は、第1の乱数更新方式を指定するデータであり、「10b」は、第2の乱数更新方式を指定するデータである。乱数更新方式選択データ「00b」又は「11b」が乱数更新方式選択レジスタ140に書き込まれた場合、乱数回路103は起動不能となる。
図4に示すセレクタ128は、乱数更新方式選択信号出力回路127から第1の乱数更新方式に対応する乱数更新方式選択信号(第1の乱数更新方式選択信号)が入力されたとき、カウント値更新信号出力回路125から出力されるカウント値更新信号S3を選択してカウンタ121に出力する。一方、セレクタ128は、乱数更新方式選択信号出力回路127から第2の乱数更新方式に対応する乱数更新方式選択信号(第2の乱数更新方式選択信号)が入力されたとき、クロック信号出力回路124から出力される乱数発生用クロック信号S1を選択してカウンタ121に出力する。なお、セレクタ128は、乱数更新方式選択信号出力回路127から第1の更新方式選択信号が入力されたとき、カウント値更新信号出力回路125から出力されるカウント値更新信号S3に応答して、クロック信号出力回路124から出力される乱数発生用クロック信号S1に同期した数値データの更新を指示する数値更新指示信号を、カウンタ121に出力してもよい。
乱数回路起動信号出力回路130は、乱数回路103の起動を要求する乱数回路起動データ「80h」を格納する乱数回路起動レジスタ(RST)141を備える。乱数回路起動信号出力回路130は、乱数回路起動レジスタ141に乱数回路起動データ「80h」が書き込まれたことに応答して、所定の乱数回路起動信号を出力し、カウンタ121とクロック信号出力回路124とをオンして、カウンタ121によるカウント値の更新動作とクロック信号出力回路124による内部クロック信号の出力動作とを開始させることにより、乱数回路103を起動させる。
図15は、乱数回路起動レジスタ141の構成例を示すブロック図である。図15に示すように、乱数回路起動レジスタ141は、8ビットレジスタであり、その初期値は、「00h」に設定されている。乱数回路起動レジスタ141は、ビット7のみが読出可能及び読出可能に構成され、ビット0〜ビット6に値を書き込んでも、その値は無効であり、ビット0〜ビット6から読み出した値は全て「0(=0000b)」となる。
図4に示す乱数値記憶回路131は、例えば8ビットレジスタであり、後述するステップS142の入賞処理において抽出されるランダムRの値を格納する。乱数値記憶回路131は、ラッチ信号生成回路133から出力されるラッチ信号SLに応答して、カウンタ121から比較器122を介して出力されるカウント値CをランダムRの値として格納することにより、ランダムRの値を更新する。
図16は、乱数値記憶回路131の一構成例を示す回路図である。乱数値記憶回路131は、図16に示すように、2個のAND回路201,203と、2個のNOT回路202,204と、8個のフリップフロップ回路211〜218と、8個のOR回路221〜228と、から構成されている。
AND回路201の入力端子は、ラッチ信号生成回路133の出力端子とNOT回路204の出力端子とに接続され、出力端子は、NOT回路202の入力端子とフリップフロップ回路211〜218のクロック端子Clk1〜Clk8とに接続されている。NOT回路202の入力端子は、AND回路201の出力端子に接続され、出力端子は、AND回路203の一方の入力端子に接続されている。
AND回路203の入力端子は、NOT回路202の出力端子と遊技制御用マイクロプロセッサ100に内蔵されたCPU106とに接続され、出力端子は、NOT回路204の入力端子に接続されている。NOT回路204の入力端子は、AND回路203の出力端子に接続され、出力端子は、AND回路201の一方の入力端子とOR回路221〜228の各々の一方の入力端子とに接続されている。
フリップフロップ回路211〜218の入力端子D1〜D8は、比較器122の出力端子に接続されている。フリップフロップ回路211〜218のクロック端子Clk1〜Clk8は、AND回路201の出力端子に接続され、出力端子Q1〜Q8は、OR回路221〜228の各々の他方の入力端子に接続されている。
OR回路221〜228の入力端子は、NOT回路204の出力端子とフリップフロップ回路211〜218の出力端子とに接続され、出力端子は、遊技制御用マイクロプロセッサ100に内蔵されたCPU106に接続されている。
上記構成を備える乱数値記憶回路131の動作を図17に示すタイミングチャートを参照して説明する。
遊技制御用マイクロプロセッサ100に内蔵されたCPU106から出力制御信号SC(ハイレベルの信号)が入力されていない場合に(AND回路203の一方の入力がローレベルの場合に)、ラッチ信号生成回路133からラッチ信号SLが入力されると(図17に示す例では、タイミングT1,T2,T7のとき)、AND回路201の入力は、共にハイレベルとなり、その出力端子から出力される信号SRは、ハイレベルとなる。そして、AND回路201から出力された信号SRは、フリップフロップ回路211〜218のクロック端子Clk1〜Clk8に入力される。
フリップフロップ回路211〜218は、クロック端子Clk1〜Clk8から入力される信号SRの立ち上がりエッヂに応答して、比較器122から入力端子D1〜D8を介して入力されるカウント値CのビットデータC1〜C8を乱数値のビットデータR1〜R8としてラッチして記憶し、記憶したランダムRのビットデータR1〜R8を出力端子Q1〜Q8から出力する。
出力制御信号SCが入力されていない場合(図17に示す例では、タイミングT3までの期間、タイミングT6以降の期間)、AND回路203の一方の入力がローレベルとなるため、その出力端子から出力される信号SGは、ローレベルとなる。信号SGは、NOT回路204において反転され、OR回路221〜228の一方の入力端子には、ハイレベルの信号が入力される。
このようにOR回路221〜228の一方の入力がハイレベルとなるため、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、即ち、入力されるランダムRのビットデータR1〜R8の値が「0」であるか「1」であるかに関わらず、OR回路221〜228から出力される信号SO1〜SO8は、全てハイレベル(「1」)となる。これにより、乱数値記憶回路131から出力される値は、常に「255(=11111111b)」となるため、乱数値記憶回路131からランダムRを読み出すことはできなくなる。即ち、出力制御信号SCが入力されていない場合、乱数値記憶回路131は、読出不能(ディセイブル)状態となる。
そして、ラッチ信号生成回路133からラッチ信号SLが入力されていないときに、CPU106から出力制御信号SCが入力されると(図17に示す例では、タイミングT4からタイミングT6までの期間)、AND回路203の入力が共にハイレベルとなるため、その出力端子から出力される信号SGは、ハイレベルとなる。信号SGは、NOT回路204において反転され、OR回路221〜228の一方の入力端子には、ローレベルの信号が入力される。
このようにOR回路221〜228の一方の入力がローレベルとなるため、他方の入力端子に入力される信号がハイレベルのときは、その出力端子からハイレベルの信号が出力され、ローレベルのときは、ローレベルの信号が出力される。即ち、OR回路221〜228の他方の入力端子に入力されるランダムRのビットデータR1〜R8の値は、OR回路221〜228の出力端子からそのまま(ビットデータR1〜R8の値が「1」のときは「1」が、「0」のときは「0」)出力される。これにより、乱数値記憶回路131からのランダムRの読出が可能となる。即ち、出力制御信号SCが入力されている場合、乱数値記憶回路131は、読出可能(イネイブル)状態となる。
但し、CPU106から出力制御信号SCが入力される前に、ラッチ信号生成回路133からラッチ信号SLが入力されている場合、AND回路203の一方の入力がローレベルとなるため、その後、ラッチ信号SLが入力されている状態のままで、出力制御信号SCが入力されても(図17に示す例では、タイミングT3からタイミングT4の期間)、その出力端子から出力される信号SGは、ローレベルのままとなる。そして、信号SGは、NOT回路204において反転され、OR回路221〜228の一方の入力端子には、ハイレベルの信号が入力される。
このようにOR回路221〜228の一方の入力がハイレベルとなるため、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路221〜228から出力される信号SO1〜SO8は、全てハイレベルとなり、出力制御信号SCが入力されているにも関わらず、乱数値記憶回路131からランダムRを読み出すことができない状態のままとなる。即ち、ラッチ信号SLが入力されているとき、乱数値記憶回路131は、出力制御信号SCに対して受信不能状態となる。
また、ラッチ信号生成回路133からラッチ信号SLが入力される前に、CPU106から出力制御信号SCが入力されている場合、AND回路201の一方の入力がローレベルとなるため、その後、出力制御信号SCが入力されているままの状態で、ラッチ信号SLが入力されても(図17に示す例では、タイミングT5)、その出力端子から出力される信号SRは、ローレベルのままとなる。このため、フリップフロップ回路211〜218のクロック端子Clk1〜Clk8に入力される信号SRは、ローレベルからハイレベルに立ち上がらず、フリップフロップ回路211〜218に格納されているランダムRのビットデータR1〜R8は、ラッチ信号SLが入力されているにも関わらず、更新されない。即ち、出力制御信号SCが入力されているとき、乱数値記憶回路131は、ラッチ信号SLに対して受信不能状態となる。
図4に示す反転回路132は、クロック信号出力回路124から入力された乱数発生用クロック信号S1における信号レベルを反転させることにより、反転クロック信号S2を生成する。反転回路132は、生成した反転クロック信号S2をラッチ信号生成回路133に出力する。
ラッチ信号生成回路133は、セレクタ及びフリップフロップ回路等を用いて構成され、乱数値読取信号出力回路126からの乱数値読取信号と反転回路132からの反転クロック信号S2とを入力し、乱数更新方式選択信号出力回路127からの乱数更新方式選択信号によって指定された乱数値更新方式に応じて、ラッチ信号SLを出力する。すなわち、ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第1の乱数更新方式選択信号が入力されたとき、反転回路132から出力される反転クロック信号S2を選択し、ラッチ信号SLとして乱数値記憶回路131に出力する。一方、ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されたとき、乱数値読取信号出力回路126から出力される乱数値読取信号を、反転回路132から出力される反転クロック信号S2の立ち上がりエッヂに同期させて、ラッチ信号SLとして乱数値記憶回路131に出力する。
タイマ回路134は、始動入賞口スイッチ70から始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったとき、乱数値読取信号出力回路126の乱数値取込レジスタ139に乱数値取込データ「01h」を書き込む。例えば、タイマ回路134は、ハイレベルの信号が入力されたことに応答して起動するアップカウンタ又はダウンカウンタによって構成され、入力がハイレベルとなっている間、クロック回路101から順次入力される基準クロック信号CLKをアップカウント又はダウンカウントする。そして、アップカウント又はダウンカウントしたカウント値が3ミリ秒に対応する値となったとき、入力された信号が始動入賞信号SSであると判断して、始動入賞信号SSに対応した乱数値取込データ「01h」を乱数値取込レジスタ139に書き込む。
図18は、図3に示す遊技制御用マイクロプロセッサ100におけるアドレスマップの一例を示す図である。図18に示すように、0000h番地〜1FFFh番地の領域は、ROM104に割り当てられ、7E00h番地〜7FFFh番地の領域は、RAM105に割り当てられ、FD00h番地〜FE00h番地の領域は、乱数最大値設定レジスタ135等の内蔵レジスタに割り当てられている。
ROM104における0000h番地〜1F7Fh番地の領域のユーザプログラムエリアには、ユーザにより予め作成されたプログラム(ユーザプログラム)150が記憶され、1F80h番地〜1FFFh番地の領域のユーザプログラム管理エリアには、CPU106がユーザプログラム150を実行するために必要となるデータ(ユーザプログラム実行データ)が記憶されている。また、RAM105における7E00h番地〜7EFFh番地の領域は、使用されておらず、7EFFh番地〜7FFFh番地は、ワークエリアとして使用されている。
図19は、図18に示すユーザプログラム管理エリアにおけるアドレスマップの一例を示す図である。図19に示すように、1F97h番地の領域には、初期値を変更させる方式である第1,第2及び第3の初期値変更方式のうちからユーザが選択した初期値変更方式を指定する初期値変更方式設定データが記憶されている。1F98h番地の領域には、RAM105に割り当てられた7EFFh番地〜7FFFh番地のうちから、ユーザにより予め指定されたRAM105における番地(指定RAM番地)を特定するRAM番地データが下位の値として記憶されている。1F99h番地の領域には、指定RAM番地の次の番地のRAM番地データが上位の値として記憶されている。
図20は、ユーザにより選択される初期値変更方式設定データの一例の説明図である。図20に示すように、初期値変更データは、8ビットのデータから構成され、「00h」は、初期値を変更しないことを指定するデータであり、「01h」は、第1の初期値変更方式を指定するデータである。また、「02h」は、第2の初期値変更方式を指定するデータであり、「03h」は、第3の初期値変更方式を指定するデータである。
図21は、ユーザプログラム150の構成例を示す図である。この実施の形態において、ユーザプログラム150は、図21に示すように、複数種類のプログラムモジュールから構成される乱数回路設定プログラム151と、表示結果決定プログラム152と、初期値変更プログラム153と、カウント値順列変更プログラム154と、を含んで構成されている。
乱数回路設定プログラム151は、乱数回路103にランダムRの値を更新するための設定を行う乱数回路設定処理を実行するためのプログラムであり、CPU106は、この乱数回路設定プログラム151を実行することにより、乱数回路設定手段として機能する。
図22は、乱数回路設定プログラム151の構成例を示す図である。図22に示すように、乱数回路設定プログラム151は、前述した複数種類のプログラムモジュールとして、乱数最大値設定モジュール151aと、乱数更新方式選択モジュール151bと、周期設定モジュール151cと、乱数回路起動モジュール151dと、を含んで構成されている。
乱数最大値設定モジュール151aは、ユーザにより予め設定されたランダムRの最大値を乱数回路103に設定するためのプログラムモジュールである。CPU106は、この乱数最大値設定モジュール151aを実行して、ユーザにより予め設定されたランダムRの最大値を指定する乱数最大値設定データを書き込むことにより、この予め設定されたランダムRの最大値を乱数回路103に設定する。例えば、ユーザにより予め設定されたランダムRの最大値が「255」の場合、CPU106は、乱数最大値設定レジスタ135に乱数最大値設定データ「00FFh」を書き込んで、ランダムRの最大値「255」を乱数回路103に設定する。
乱数更新方式選択モジュール151bは、ユーザが第1及び第2の乱数更新方式のうちから選択した乱数更新方式を乱数回路103に設定するためのプログラムモジュールである。CPU106は、この乱数更新方式選択モジュール151bを実行して、ユーザが選択した乱数更新方式を指定する乱数更新方式選択データ「01b」又は「10b」を乱数更新方式選択レジスタ140に書き込むことにより、この選択した乱数更新方式を乱数回路103に設定する。これにより、遊技制御用マイクロプロセッサ100は、乱数回路103に設定する乱数更新方式を第1及び前記第2の乱数更新方式のうちから選択する機能を発揮することができる。
周期設定モジュール151cは、ユーザにより予め設定された内部クロック信号の周期を乱数回路103に設定するためのプログラムモジュールである。CPU106は、この周期設定モジュール151cを実行して、ユーザにより予め設定された内部クロック信号の周期を指定する周期設定データを周期設定レジスタ137に書き込むことにより、この予め設定された内部クロック信号の周期を乱数回路103に設定する。例えば、ユーザにより予め設定された内部クロック信号の周期が「システムクロック信号の周期×128×16」の場合、CPU106は、周期設定レジスタ137に周期設定データ「0Fh」を書き込んで、内部クロック信号の周期「システムクロック信号の周期×128×16」を乱数回路103に設定する。
乱数回路起動モジュール151dは、乱数回路103を起動させるためのプログラムモジュールである。CPU106は、この乱数回路起動モジュール151dを実行して、乱数回路起動データ「80h」を乱数回路起動レジスタ141に書き込むことにより、乱数回路103を起動させる。
乱数値更新プログラム155は、第1の乱数更新方式が選択されているときに、乱数値記憶回路131に格納されているランダムRの値を更新するためのプログラムである。CPU106は、この乱数値更新プログラム155を実行することにより、乱数値更新手段として機能する。CPU106は、この乱数値更新プログラム155を実行して、カウント値更新データ「01h」をカウント値更新レジスタ138に書き込むことにより、乱数値記憶回路131に格納さているランダムRの値を更新させる。
表示結果決定プログラム152は、特図ゲームにおける表示結果を大当りとするか否かを決定するためのプログラムであり、CPU106は、この表示結果決定プログラム152を実行することにより、表示結果決定手段として機能する。
CPU106は、遊技球が普通可変入賞球装置6に入賞して特別図柄の可変表示(特図ゲーム)を実行するための条件(実行条件)が成立したことに応じて、この表示結果決定プログラム152を実行することにより、乱数値記憶回路131からこの更新させたランダムRの値を読み出して、可変表示装置4による特図ゲームの表示結果を大当りとするか否かを決定する。
図23は、第1の乱数更新方式が選択されているときのCPU106によるランダムRの値の更新動作及び読出動作の説明図である。図23に示すように、第1の乱数更新方式が選択されているとき、CPU106は、カウント値更新データ「01h」をカウント値更新レジスタ138に書き込むことにより、乱数値記憶回路131に記憶されたランダムRの値(例えば「2」)を更新させる。そして、CPU106は、遊技球が普通可変入賞球装置6に入賞して特別図柄の可変表示(特図ゲーム)を実行するための条件(実行条件)が成立したことに応じて、乱数値記憶回路131からランダムRの値(例えば「2」)を読み出す。乱数値記憶回路131に記憶されているランダムRの値をさらに更新させる場合は、前回のランダムRの値を更新したときからクロック回路101により出力されるシステムクロック信号の周期以上の間隔をあけて、カウント値更新レジスタ138にカウント値更新データ「01h」を書き込まなければならない。これは、更新させたランダムRの値を乱数値記憶回路131から読み出す時間を確保するためである。
図24は、第2の乱数更新方式が選択されているときのCPU106によるランダムRの値の更新動作及び読出動作の説明図である。図24に示すように、第2の乱数更新方式が選択されているとき、CPU106は、乱数値取込コマンド「01h」を乱数値取込レジスタ139に書き込むことにより、カウンタ121から出力されるカウント値(例えば「2」)を乱数値記憶回路131に取り込ませて、乱数値記憶回路131に記憶されているランダムRの値を更新させる。そして、乱数値記憶回路131からこの更新させたランダムRの値(例えば「2」)を読み出す。
なお、CPU106が乱数値取込コマンド「01h」を乱数値取込レジスタ139に書き込まなければ、カウンタ121から出力されるカウント値が更新されていても、乱数値記憶回路131に記憶されている乱数値は更新されない。例えば、CPU106が乱数値取込コマンド「01h」を乱数値取込レジスタ139に書き込み、カウンタ121から出力されるカウント値「3」を乱数値記憶回路131に取り込ませて、乱数値記憶回路131に記憶されているランダムRの値「3」を更新させた場合、その後、CPU106が乱数値取込コマンド「01h」を乱数値取込レジスタ139に書き込まなければ、カウンタ121から出力されるカウント値が「3」から「4」や「5」に更新されていても、乱数値記憶回路131に記憶されている乱数値は更新されず、乱数値記憶回路131から読み出される乱数値は「3」のままとなる。
図21に示す初期値変更プログラム153は、カウンタ121により更新されるカウント値の初期値を変更させるためのプログラムであり、CPU106は、この初期値変更プログラム153を実行することにより、初期値変更手段として機能する。CPU106は、この初期値変更プログラム153を実行して、第1,第2及び第3の初期値変更方式のうちからユーザが選択した初期値変更方式により、カウンタ121により更新されるカウント値の初期値を変更させる。これにより、遊技制御用マイクロプロセッサ100は、初期値を変更させる方式を第1,第2及び第3の初期値変更方式のうちから選択する機能を発揮することができる。
より詳細に説明すれば、図19に示すユーザプログラム管理エリアの1F97h番地の領域に第1の初期値変更方式を指定する初期値変更方式設定データ「01h」が記憶されている場合、CPU106は、初期値を遊技制御用マイクロプロセッサ100固有のID(Identification)ナンバに基づいて設定された値に変更させる。
また、ユーザプログラム実行データエリアの1F97h番地の領域に第2の初期値変更方式を指定する初期値変更方式設定データ「02h」が記憶されている場合、CPU106は、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている番地データから指定RAM番地を特定し、特定した指定RAM番地の領域に格納されている値を読み出し、初期値を読み出した値に変更させる。
ユーザプログラム実行データエリアの1F97h番地の領域に第3の初期値変更方式を指定する初期値変更方式設定データ「03h」が記憶されている場合、CPU106は、RAM105の各番地に格納されている値を読み出し、この読み出した値を加算する。そして、CPU106は、初期値をこの加算値に変更させる。
カウント値順列変更プログラム154は、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」を書き込んで、乱数値記憶回路131に記憶されているカウント値の順列を変更するカウント値順列変更処理を実行するためのプログラムであり、CPU106は、このカウント値順列変更プログラム154を実行することにより、数値データ順列変更手段として機能する。CPU106は、このカウント値順列変更プログラム154を実行して、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」を書き込むことにより、カウント値順列変更回路123から出力され、乱数値記憶回路131に入力されるカウント値の順列を変更させる。
また、図3に示す遊技制御用マイクロプロセッサ100は、図25に示すように、特図保留メモリ170と、大当り判定用テーブルメモリ171と、フラグメモリ172と、始動入賞口スイッチタイマメモリ173と、を備えている。
特図保留メモリ170は、遊技球が普通可変入賞球装置6に入賞して特別図柄の可変表示(特図ゲーム)を実行するための条件(実行条件)が成立したが、従前の可変表示を実行中である等の理由のために可変表示を実際に開始するための条件(開始条件)が成立していない保留状態を記憶するためのメモリである。特図保留メモリ170は、4つのエントリを備え、各エントリには、普通可変入賞球装置6への入賞順に、保留番号と、その入賞に応じて乱数値記憶回路131から読み出したランダムRの値とが対応付けて格納される。主基板11から表示制御基板12へ可変表示装置4における特別図柄の可変表示の終了を指示する特別図柄確定コマンドが送出されて特別図柄の可変表示が1回終了したり、大当り遊技状態が終了したりするごとに、最上位の情報に基づいた可変表示の開始条件が成立し、最上位の情報に基づいた可変表示が実行される。このとき、第2位以下の登録情報が1位ずつ繰り上がる。また、特別図柄の可変表示中等に遊技球が普通可変入賞球装置6に新たに入賞した場合には、その入賞に基づいて乱数値記憶回路131から読み出されたランダムRの値が最上位の空エントリに登録される。
図25に示す大当り判定用テーブルメモリ171は、CPU106が特図ゲームにおける表示結果を大当りとするか否かを判定するために設定される複数の大当り判定テーブルを記憶する。具体的には、大当り判定用テーブルメモリ171は、図26(A)に示す通常時大当り判定テーブル171a、図26(B)に示す確変時大当り判定テーブル171bを格納する。
図25に示すフラグメモリ172は、パチンコ遊技機1において遊技の進行を制御するために用いられる各種のフラグが設定される。例えば、フラグメモリ172には、特別図柄プロセスフラグ、普通図柄プロセスフラグ、大当り状態フラグ、入力状態フラグ、タイマ割込フラグ、初期値変更フラグなどが設けられている。
特別図柄プロセスフラグは、後述する特別図柄プロセス処理(図32)において、どの処理を選択・実行すべきかを指示する。普通図柄プロセスフラグは、普通図柄表示器40の表示状態を所定の順序で制御するために、所定の普通図柄プロセス処理においてどの処理を選択・実行すべきかを指示する。大当り状態フラグは、可変表示装置4による特図ゲームの表示結果が大当りとなるときにオン状態にセットされ、大当り遊技状態が終了するときにクリアされてオフ状態となる。
入力状態フラグは、I/Oポート108に入力される各種信号の状態や始動入賞口スイッチ70等から入力される検出信号の状態等に応じて各々セットあるいはクリアさせる複数ビットからなるフラグである。タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。初期値変更フラグは、乱数回路103から通知信号が出力されたことに応答してオン状態にセットされ、初期値が変更されたときにクリアされてオフ状態となる。
始動入賞口スイッチタイマメモリ173は、始動入賞口スイッチ70から入力される始動入賞信号SSに応じ加算あるいはクリアされるタイマ値を記憶するためのものである。
図3に示すスイッチ回路109は、始動入賞口スイッチ70等の各入賞口スイッチからの検出信号を取り込んで、遊技制御用マイクロプロセッサ100に伝達する。ソレノイド回路110は、遊技制御用マイクロプロセッサ100からの指令に従って各ソレノイド21、22を駆動する。ソレノイド21は、リンク機構を介して普通可変入賞球装置6の可動翼片に連結されている。ソレノイド22は、リンク機構を介して特別可変入賞球装置7の開閉板に連結されている。
始動入賞口スイッチ70は、始動入賞口である普通可変入賞球装置6への遊技球の入賞等を検出したことに基づいて、始動入賞信号(ハイレベルの信号)SSを、スイッチ回路109を介して乱数回路103とCPU106とに出力する。
表示制御基板12は、主基板11から受信した制御コマンドに従って演出制御を行うためのものである。具体的には、表示制御基板12は、可変表示装置4の表示制御や、遊技効果ランプ9及び普通図柄表示器40の点灯制御を行う。
音声制御基板13、ランプ制御基板14は、主基板11から送信される制御コマンドに基づいて、音声出力制御、ランプ出力制御を、それぞれ主基板11とは独立して実行するサブ側の制御基板である。払出制御基板15は、遊技球の貸出や賞球等の払出制御を行うものである。情報端子基板16は、各種の遊技関連情報を外部に出力するためのものである。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。図27は、主基板11に搭載された遊技制御用マイクロプロセッサ100が実行する遊技制御メイン処理を示すフローチャートである。主基板11では、電源基板10からの電力が供給されると、遊技制御用マイクロプロセッサ100が起動し、CPU106が、まず、図27のフローチャートに示す遊技制御メイン処理を実行する。遊技制御メイン処理を開始すると、まず、CPU106は、割込禁止に設定し(ステップS1)、続いて、割込モードをモード2に設定する(ステップS2)。
この後、CPU106は、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、遊技制御用マイクロプロセッサ100の内蔵デバイスであるCTC107などのレジスタ設定を行う(ステップS4)。例えば、CTC107に対して、割込ベクタを設定する。
ステップS4に続いて、CPU106は、例えばRAM105に設けられたバックアップフラグ領域をチェックするなどして(ステップS5)、前回の電源断時にRAM105の全部又は一部について所定のデータ保護処理によるバックアップがなされたか否かを判別する(ステップS6)。パチンコ遊技機1では、不測の電源断が生じたときに、RAM105に記憶されたデータの全部又は一部を保護するためのデータ保護処理が行われる。このようなデータ保護処理が行われていた場合には、バックアップありと判別される。
ステップS6にてバックアップありと判別したとき(ステップS6;Yes)、CPU106は、バックアップデータのチェックとしてパリティチェックを行い、チェック結果が正常であるか否かを判別する(ステップS7)。チェック結果が正常であれば(ステップS7;Yes)、主基板11の内部状態とサブ側の各制御基板(表示制御基板12、音声制御基板13、ランプ制御基板14、及び払出制御基板15)の制御状態を電源断時の状態に戻すための遊技状態復旧処理を実行する(ステップS8)。その後、ステップS10に進む。
ステップS6にてバックアップなしと判別したときや(ステップS6;No)、ステップS7にてチェック結果が正常ではなかったとき(ステップS7;No)、CPU106は、RAM105のクリアや、所定の作業領域に対する初期設定などの初期化処理を行う(ステップS9)。
続いて、CPU106は、乱数回路設定プログラム151を実行して、乱数回路設定処理を行う(ステップS10)。この乱数回路設定処理では、乱数回路103にランダムRの値を更新させるための設定が行われる。
図28は、ステップS10の乱数回路設定処理を示すフローチャートである。この乱数回路設定処理において、CPU106は、まず、乱数回路設定プログラム151に含まれる乱数最大値設定モジュール151aを実行して、ユーザにより予め設定された乱数最大値を指定する乱数最大値設定データを乱数最大値設定レジスタ135に書き込むことにより、この予め設定されたランダムRの最大値を乱数回路103に設定する(ステップS21)。
次に、CPU106は、乱数回路設定プログラム151に含まれる乱数更新方式選択モジュール151bを実行して、乱数更新方式選択データ「10b」を乱数更新方式選択レジスタ140に書き込むことにより、第2の乱数更新方式を乱数回路103に設定する(ステップS22)。
続いて、CPU106は、乱数回路設定プログラム151に含まれる周期設定モジュール151cを実行して、ユーザにより予め設定された乱数発生用クロック信号S1の周期を指定する周期設定データを周期設定レジスタ137に書き込むことにより、この予め設定された乱数発生用クロック信号S1の周期を乱数回路103に設定する(ステップS23)。
この後、CPU106は、乱数回路設定プログラム151に含まれる乱数回路起動モジュール151dを実行して、乱数回路起動データ「80h」を乱数回路起動レジスタ141に書き込むことにより、乱数回路103を起動させる(ステップS24)。
こうして図28に示すような乱数回路設定処理が実行されることにより、乱数回路103は、例えば図29に示すようなタイミングチャートに従って動作する。
図29に示す動作例において、クロック回路101から乱数回路103へは、タイミングT11,T21,…においてローレベルからハイレベルに立ち上がる、図29(A)に示す基準クロック信号CLKが供給されるものとする。
クロック信号出力回路124は、クロック回路101から供給された基準クロック信号CLKを分周して、例えばタイミングT11,T12,…においてローレベルからハイレベルに立ち上がり、タイミングT21,T22,…においてハイレベルからローレベルに立ち下がる、図29(B)に示す乱数発生用クロック信号S1を生成する。なお、図29に示す動作例では、説明のために、クロック信号出力回路124が基準クロック信号CLKを2分周して乱数発生用クロック信号S1を生成する場合を示している。しかしながら、実際には、周期設定レジスタ137に設定可能な周期は、「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までとなっており、この範囲で周期設定レジスタ137に設定される周期設定データ「07h」〜「FFh」に対応した分周比で、基準クロック信号CLKを分周することにより乱数発生用クロック信号S1が生成されることになる。クロック信号出力回路124によって生成された乱数発生用クロック信号S1は、セレクタ128と反転回路132とに出力される。
セレクタ128は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されることに応答して、クロック信号出力回路124から出力された乱数発生用クロック信号S1を選択してカウンタ121に出力する。カウンタ121は、セレクタ128から供給される乱数発生用クロック信号S1の立ち上がりエッヂが入力される毎に、カウント値Cを更新してカウント値順列変更回路123に出力する。
反転回路132は、クロック信号出力回路124から出力された乱数発生用クロック信号S1の信号レベルを反転させることにより、例えばタイミングT11,T12,…においてハイレベルからローレベルに立ち下がり、タイミングT21,T22,…においてローレベルからハイレベルに立ち上がる、図29(C)に示す反転クロック信号S2を生成する。反転回路132によって生成された反転クロック信号S2は、ラッチ信号生成回路133に出力される。
ラッチ信号生成回路133では、図29(D)に示す始動入賞信号SSがタイマ回路134に入力されてからの経過時間が所定時間(例えば3ミリ秒)に達したときに、乱数値読取信号出力回路126からの乱数値読取信号がローレベルからハイレベルに立ち上がる。ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されることに応答して、乱数値読取信号出力回路126から入力される乱数値読取信号を、反転回路132から供給される反転クロック信号S2の立ち上がりエッヂに同期させ、図29(E)に示すラッチ信号SLを出力する。
これにより、乱数回路103は、タイミングT11,T12,T13…において、カウント値Cを更新し、タイミングT11,T12,T13とは異なるタイミングT22において、ラッチ信号SLを出力することができる。
図27に示す遊技制御メイン処理では、ステップS10の乱数回路設定処理に続いて、CPU106がCTC107によるタイマ割込みのための設定を行う(ステップS11)。具体的には、CTC107に対して、CTC107が備える複数のチャネルのうちの1つ(具体的には、第0チャネルから第3チャネルのうちの第3チャネル)に割込許可を与えてタイマモードで動作させるとともに、当該チャネルのカウント初期値を指定する。これにより、以後、所定時間(例えば2ミリ秒)ごとにCTC107から割込要求信号がCPU106へ送出され、CPU106は定期的にタイマ割込処理を実行することができる。
この後、CPU106は、CTC107からの割込要求信号によるタイマ割込が発生したか否かを監視するためのループ処理に移行する。このループ処理では、割込禁止に設定した後(ステップS12)、表示用乱数更新処理(ステップS13)が実行され、表示用乱数更新処理が完了すると、割込許可に設定する(ステップS14)。
図27に示す遊技制御メイン処理を実行したCPU106は、CTC107からの割込要求信号を受信して割込要求を受け付けると、図30に示す遊技制御割込処理の実行を開始する。
遊技制御割込処理を開始すると、CPU106は、所定の電源断処理を実行することにより、電源基板10から供給される電力が低下したときなどに所定のデータ保護処理等を実行可能とする(ステップS101)。続いて、所定のスイッチ処理を実行することにより、始動入賞口スイッチ70等の各入賞口スイッチから入力される検出信号の状態を判定する(ステップS102)。スイッチ処理では、スイッチ回路109を介して始動入賞口スイッチ70から入力される始動入賞信号SSがオン状態となっているか否かを判別する。始動入賞信号SSがオン状態である場合には、タイマ値を「1」加算して始動入賞口スイッチタイマメモリ173に格納する。一方、始動入賞信号SSがオフ状態である場合には、タイマ値をクリアする。
次に、CPU106は、表示用乱数更新処理(ステップS103)を実行する。続いて、CPU106は、初期値変更プログラム153を実行して、初期値変更処理を行う(ステップS104)。
図31は、ステップS104の初期値変更処理を示すフローチャートである。この初期値変更処理において、CPU106は、まず、フラグメモリ172に設けられた初期値変更フラグをチェックすることにより、乱数回路103から通知信号が出力されたか否かを判別する(ステップS121)。初期値フラグがオフ状態にある場合(ステップS121;No)、カウンタ121のカウント値が最終値までカウントアップされていないと判別して初期値変更処理を終了する。一方、初期値フラグがオン状態にある場合(ステップS121;Yes)、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データを読み出して、ユーザが選択した初期値変更方式を特定する(ステップS122,S123及びS124)。
第1の初期値変更方式を指定する初期値変更方式設定データ「01h」が記憶されている場合(ステップS122;Yes)、CPU106は、初期値を遊技制御用マイクロプロセッサ100固有のID(Identification)ナンバに基づいて設定された値に変更させる(ステップS125)。
第2の初期値変更方式を指定する初期値変更方式設定データ「02h」が記憶されている場合(ステップS122;No,ステップS123;Yes)、CPU106は、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されているRAM番地データから指定RAM番地を特定し、特定した指定RAM番地の領域に格納されている値を読み出す(ステップS126)。そして、CPU106は、初期値を読み出した値に変更させる(ステップS127)。
第3の初期値変更方式を指定する初期値変更方式設定データ「03h」が記憶されている場合(ステップS122;No,ステップS123;No,ステップS124;Yes)、CPU106は、RAM105の各番地に格納されている値を読み出して(ステップS128)、読み出した値を加算する(ステップS129)。そして、CPU106は、初期値をこの加算値に変更させる(ステップS130)。
また、ステップS122,ステップS123及びステップS124にてNoと判別した場合、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データを「00h」と判別し、初期値を変更せず、そのままステップS131に進む。
この後、CPU106は、初期値変更フラグをクリアしてオフ状態とし(ステップS131)、初期値変更処理を終了する。
こうして初期値変更処理が終了した後、CPU106は、カウント値順列変更プログラム154を実行して、カウント値順列変更処理を行う(ステップS105)。このカウント値順列更新処理において、CPU106は、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」を書き込むことにより、乱数値記憶回路131に入力されるカウント値Cの順列を変更させる。
続いて、CPU106は、特別図柄プロセス処理を実行する(ステップS106)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選択されて実行される。特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
また、CPU106は、普通図柄プロセス処理を実行する(ステップS107)。普通図柄プロセス処理では、普通図柄表示器40を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選択されて実行される。普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。さらに、特別図柄コマンド制御処理(ステップS108)と、普通図柄コマンド制御処理(ステップS109)と、を順次実行する。これにより、CPU106は、主基板11から表示制御基板12に対して表示制御コマンドを送ることにより、可変表示装置4の表示制御や普通図柄表示器40の点灯制御を指示する。
続いて、CPU106は、所定の情報出力処理を実行することにより、各種出力データをI/Oポート108に含まれる各出力ポートに出力する(ステップS110)。この情報出力処理では、主基板11から情報端子基板16に、大当り情報、始動情報、確率可変情報などをホール管理用コンピュータに対して出力する指令の送出も行われる。
また、CPU106は、所定の賞球処理を実行することにより、始動入賞口スイッチ70等の各入賞口スイッチから入力された検出信号に基づく賞球数の設定などを行い、払出制御基板15に対して払出制御コマンドを出力可能とする(ステップS111)。さらに、CPU106は、所定のソレノイド出力処理を実行することにより、所定の条件が成立したときに普通可変入賞球装置6における可動翼片や特別可変入賞球装置7における開閉板の開閉駆動を行う(ステップS112)。
図32は、ステップS106にて実行される特別図柄プロセス処理を示すフローチャートである。特別図柄プロセス処理を開始すると、CPU106は、まず、表示結果決定プログラム152を実行して、遊技球が普通可変入賞球装置6に入賞したか否かを、始動入賞口スイッチタイマメモリ173に記憶されているタイマ値をチェックすることにより、判別する(ステップS141)。ステップS141において、CPU106は、始動入賞口スイッチタイマメモリ173に記憶されているタイマ値をロードし、ロードしたタイマ値を所定のスイッチオン判定値(例えば「2」)と比較する。ここで、スイッチオン判定値は、遊技制御割込処理の実行回数(例えば「2」)に対応して予め定められている。これにより、CPU106は、所定回(例えば2回)の遊技制御割込処理が実行されている間(例えば4ミリ秒)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたが否かを判別することができる。
そして、この比較結果に基づいて、CPU106は、タイマ値がスイッチオン判定値「2」以上であるか否かを判別する。タイマ値がスイッチオン判定値「2」以上である場合には、遊技球が入賞しているものと判別して(ステップS141;Yes)、入賞処理を実行する(ステップS142)と共に、タイマ値をクリアする。一方、タイマ値がスイッチオン判定値「2」未満である場合には、遊技球が入賞していないものと判別して(ステップS141;No)、入賞処理をスキップする。
図33は、ステップS142の入賞処理を示すフローチャートである。この入賞処理において、CPU106は、まず、特図保留メモリ170が記憶している始動入賞記憶数が所定の最大値(例えば、「4」)であるか否かを判別する(ステップS171)。ここで、特図保留メモリ170において、例えば始動入賞記憶番号「4」に対応したランダムRが記憶されている場合には、始動入賞記憶数が最大値であると判別される。
始動入賞記憶数が最大値であるときには(ステップS171;Yes)、今回の入賞による始動検出は無効として、そのまま入賞処理が終了する。一方、始動入賞記憶数が最大値ではないときには(ステップS171;No)、乱数値記憶回路131に出力制御信号SCを送出して、乱数値記憶回路131を読出可能(イネイブル)状態に制御する(ステップS172)。
続いて、CPU106は、乱数値記憶回路131から乱数値として記憶されているランダムRの値を読み出し(ステップS173)、この読み出したランダムRの値を、例えばRAM105に設けられた所定のバッファ領域に格納した後(ステップS174)、乱数値記憶回路131への出力制御信号SCの送出を停止して、乱数値記憶回路131を読出不能(ディセイブル)状態に制御する(ステップS175)。そして、CPU106は、始動入賞記憶数を「1」加算し(ステップS176)、所定のバッファ領域に格納したランダムRの値を特図保留メモリ170の空エントリの先頭にセットする(ステップS177)。
この後、CPU106は、フラグメモリ172に格納されている特別図柄プロセスフラグの値に基づいて、図32に示すステップS150〜S158の9個の処理のいずれかを選択する。以下に、ステップS150〜S158の各処理について説明する。
ステップS150の特別図柄通常処理は、特別図柄プロセスフラグの値が初期値「0」のときに実行される処理である。この処理において、CPU106は、特図保留メモリ170が記憶している保留記憶数が「0」であるか否かを判別する。ここで、特図保留メモリ170において、保留番号「1」に対応したランダムR等の各種データが記憶されていない場合には、保留記憶数が「0」であると判別される。保留記憶数が「0」であれば、表示制御基板12を介して可変表示装置4上にデモンストレーション画面を表示するなどして、特別図柄通常処理を終了する。一方、保留記憶数が「0」ではないと判別すると、特別図柄プロセスフラグの値を大当り判定処理に対応した値である「1」に更新する。
ステップS151の大当り判定処理は、特別図柄プロセスフラグの値が「1」のときに実行される処理である。この処理において、CPU106は、図34に示すように、まず、特図保留メモリ170から保留番号「1」に対応して格納されているランダムRの値を読み出す(ステップS181)。この際、保留記憶数を1減算し、且つ、特図保留メモリ170の第2〜第4エントリ(保留番号「2」〜「4」)に格納されたランダムRの値を1エントリずつ上位にシフトする(ステップS182)。
続いて、CPU106は、確率向上状態(確変中)であるか否かを判別し(ステップS183)、確変中ではなければ(ステップS183;No)、通常遊技状態であると判断し、特図ゲームの表示結果を大当りとするか否かを判定するためのテーブルとして、図26(A)に示すような通常時大当り判定テーブル171aを設定する(ステップS184)。これに対して、確変中であれば(ステップS183;Yes)、図26(B)に示すような確変時大当り判定テーブル171bを設定する(ステップS185)。
CPU106は、ステップS181にて読み出したランダムRの値に基づき、ステップS184又はS185にて設定した大当り判定テーブル171a又は171bを用いて特図ゲームの表示結果を大当りとするか否かを判定する(ステップS186)。そして、大当りとすることに決定した場合には(ステップS186;Yes)、フラグメモリ172に設けられた大当り状態フラグをオン状態にセットし(ステップS187)、ハズレとすることに決定した場合には(ステップS186;No)、大当り状態フラグをクリアしてオフ状態とする(ステップS188)。この後、特別図柄プロセスフラグの値を確定図柄決定処理に対応した値である「2」に更新する(ステップS189)。
図32に示すステップS152の確定図柄決定処理は、特別図柄プロセスフラグの値が「2」のときに実行される処理である。この処理において、CPU106は、フラグメモリ172に設けられた大当り状態フラグがオンとなっているか否かを判別するとともに、所定のリーチ判定用乱数を抽出した結果等に基づいて、リーチとするか否かを判別する。これらの判別結果に従って、可変表示装置4による特図ゲームにおける最終的な確定図柄が設定される。その後、特別図柄プロセスフラグの値を可変表示パターン設定処理に対応した値である「3」に更新する。
ステップS153の可変表示パターン設定処理は、特別図柄プロセスフラグの値が「3」のときに実行される処理である。この処理において、CPU106は、まず、フラグメモリ172に設けられた大当り状態フラグがオンとなっているか否かを判別するとともに、上記ステップS152の確定図柄決定処理にてリーチとすることが決定されたか否かを判別し、これらの判別結果に従って、所定の可変表示パターンテーブルを設定する。そして、所定の可変表示パターン決定用乱数を抽出した結果等に基づいて、設定した可変表示パターンテーブルのうちから、今回の特図ゲームで使用する可変表示パターンを決定する。こうして可変表示パターンを決定した後、CPU106は、特別図柄プロセスフラグの値を可変表示指令処理に対応した値である「4」に更新する。
ステップS154の可変表示指令処理は、特別図柄プロセスフラグの値が「4」のときに実行される処理である。この処理において、CPU106は、可変表示装置4において特別図柄の全図柄が可変表示を開始するように制御する。具体的には、上述したステップS152の確定図柄決定処理にて決定した特別図柄の確定図柄に対応する制御データや、ステップS153の可変表示パターン設定処理にて決定した可変表示パターンに対応する制御データを、所定のコマンド送信テーブルに設定するなどして、可変表示開始コマンドと左・中・右の図柄指定コマンドを表示制御基板12に対して送出可能に設定する。そして、可変表示パターンに対応する総可変表示時間を所定の可変表示時間タイマに設定し、可変表示開始コマンドが送信されるとともにカウントダウンを開始する。この後、所定の可変表示時間タイマがタイムアウトすると、特別図柄プロセスフラグの値を可変表示停止時処理に対応した値である「5」に更新する。
ステップS155の可変表示停止時処理は、特別図柄プロセスフラグの値が「5」のときに実行される処理である。この処理において、CPU106は、主基板11から表示制御基板12に対して特別図柄確定コマンドを送出するための設定を行う。具体的には、特別図柄確定コマンドに対応する制御データを、所定のコマンド送信テーブルに設定するなどして、特別図柄確定コマンドを表示制御基板12に対して送出可能に設定する。また、パチンコ遊技機1が確率向上状態となっているときには、確率向上状態から通常遊技状態に戻すか否かを判定し、戻すと判定すると、パチンコ遊技機1における遊技状態を確率向上状態から通常遊技状態に移行させる。そして、可変表示の表示結果が大当りになるときは、特別図柄プロセスフラグの値を大入賞口開放前処理に対応した値である「6」に更新し、ハズレとなるときには、特別図柄プロセスフラグの値を「0」に更新する。
ステップS156の大入賞口開放前処理は、特別図柄プロセスフラグの値が「6」のときに実行される処理である。この処理において、CPU106は、大入賞口としての特別可変入賞球装置7を開放する制御を開始するための設定を行う。そして、特別可変入賞球装置7を開放する制御を開始するとともに、特別図柄プロセスフラグの値を大入賞口開放中処理に対応した値である「7」に更新する。
ステップS157の大入賞口開放中処理は、特別図柄プロセスフラグの値が「7」のときに実行される処理である。この処理において、CPU106は、開成された特別可変入賞球装置7への遊技球の入賞検出、賞球の払出指令、開成時間の計測、及び開成サイクルのラウンド数表示のための表示制御コマンド設定等を行う。そして、例えば、1回の大当りについて、特別可変入賞球装置7の開成回数をカウントし、開成回数が例えば16回に達していれば、特定遊技状態(大当り遊技状態)を終了する条件が終了したとして特別図柄プロセスフラグの値を大当り終了処理に対応した値である「8」に更新する。一方、開成回数が16回に達していなければ、特別可変入賞球装置7を一旦閉成した後、所定時間が経過するのを待って再度開成する。
ステップS158の大当り終了処理は、特別図柄プロセスフラグの値が「8」のときに実行される処理である。この処理において、CPU106は、表示制御基板12に対して所定の大当り終了コマンドを送出するための設定を行うなどして、大当り遊技状態を終了させる。また、CPU106は、フラグメモリ172に設けられた大当り状態フラグをクリアしてオフ状態とする。そして、特別図柄プロセスフラグの値を「0」に更新する。
以上説明したように、この実施例においては、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されることに応答して、セレクタ128がクロック信号出力回路124から出力される乱数発生用クロック信号S1を選択してカウンタ121に出力する。これにより、カウンタ121には、タイミングT11,T12,T13,…において、ローレベルからハイレベルに立ち上がる乱数発生用クロック信号S1が供給される。また、クロック信号出力回路124から出力される乱数発生用クロック信号S1は、反転回路132によって信号レベルが反転された後、反転クロック信号S2としてラッチ信号生成回路133に出力される。ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されていることに応答して、乱数値読取信号出力回路126から出力される乱数値読取信号を、反転回路132から入力される反転クロック信号S2に同期させ、タイミングT22において、ローレベルからハイレベルに立ち上がるラッチ信号SLとして乱数値記憶回路131に出力する。
このようにして、乱数回路103は、クロック信号出力回路124から出力される乱数発生用クロック信号S1がローレベルからハイレベルに立ち上がるタイミングT11,T12,T13,…においてカウント値Cを更新し、これらのタイミングT11,T12,T13,…とは異なるタイミングT21,T22,T23,…においてラッチ信号SLを出力することができる。そして、乱数値記憶回路131は、この更新されたカウント値Cをラッチ信号SLの立ち上がりエッヂに応答して、ランダムRとして記憶する。
このため、乱数回路103は、カウンタ121によるカウント値Cの更新タイミングと、ラッチ信号生成回路133によるラッチ信号SLの出力タイミング(ラッチタイミング)とを、確実に異ならせることができ、乱数値の取得を確実且つ安定的に行うことができる。
また、CPU106は、パチンコ遊技機1に電力が供給され、遊技制御メイン処理が開始された後、タイマ割込処理の実行を許可してループ処理に移行する前に、乱数回路設定プログラム151を実行して乱数回路設定処理を行うため、限られた割り込み処理時間(例えば2ミリ秒)の間で乱数発生のための処理を開始・終了する必要はなくなり、遊技制御用マイクロプロセッサ100の処理負担の増加を防止することができる。さらに、乱数回路103がCPU106とともに遊技制御用マイクロプロセッサ100に内蔵されているため、主基板11のスペースを確保することができ、また、不正基板の設置等の偽造を困難にすることができる。
なお、好適には、乱数回路設定処理は、遊技状態復旧処理の実行後又はRAM105のクリアや所定の作業領域に対する初期設定などの初期化処理の実行後、タイマ割込処理の実行を許可してループ処理に移行する前に、実行されることが望ましい。
また、CPU106は、乱数回路103が発生するランダムRの値を用いて特図ゲームおける表示結果を大当りとするか否かを決定するため、ROM104等に記憶するプログラムの容量を削減することができる。
さらに、ランダムRの値は、乱数回路103にて更新されるので、ソフトウェアで更新するものに比べて、ROM104等が記憶するプログラムの容量を少なくすることできる。
また、乱数値記憶回路131に記憶されているランダムRの値を、乱数回路設定プログラム151を実行してなされた設定に従って、更新させることができるため、パチンコ遊技機1毎に異なる設定を行うことにより、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
より詳細には、CPU106は、乱数回路設定プログラム151に含まれる乱数最大値設定モジュール151a,乱数更新方式選択モジュール151b及び周期設定モジュール151cを実行して、ユーザがパチンコ遊技機1毎に適宜設定したランダムRの最大値、乱数更新方式及び乱数発生用クロック信号S1の周期を乱数回路103に設定し、その後、乱数回路起動モジュール151dを実行して乱数回路103を起動させる。このようにして乱数回路103に設定されたランダムRの最大値、乱数更新方式及び乱数発生用クロック信号S1の周期に従って、乱数値記憶回路131に格納されているランダムRの値を更新させることにより、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
さらに、カウント値順列変更プログラム154を実行して、カウント値の更新順である順列を変更させることにより、乱数値記憶回路131に入力されるカウント値のランダム性が高まる結果、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
また、カウント値順列変更回路123が、切り替えた更新規則に従ってカウント値の更新動作を開始したことに応答して、CPU106は、カウント値順列変更データ「01h」が書き込まれたカウント値順列変更レジスタ136を初期化するため、カウント値順列変更回路123から出力され、乱数値記憶回路131に入力されるカウント値の順列が連続的に変更されるといった不具合を防止することができる。
さらに、カウント値順列変更レジスタ136が初期化された後、CPU106は、カウント値順列データ「01h」をカウント値順列変更レジスタ136に再度書き込むことにより、変更したカウント値の順列をさらに変更することができる。
また、カウンタ121により更新されるカウント値の初期値を変更させることにより、カウント値が初期値から最終値までカウントアップされる周期の検出を困難にすることができる。これにより、ステップS173にて乱数値記憶回路131から読み出されるランダムRの値と大当り判定値とが合致するタイミングを狙って所定の信号を出力し、大当りを頻発させるといった不正行為を防止することができる。
さらに、CPU106は、リセットコントローラ102によりシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ135、周期設定データが書き込まれた周期設定レジスタ137及び乱数更新方式選択データが書き込まれた乱数更新方式選択レジスタ140を書込不能に制御して乱数回路103に設定された乱数最大値、乱数発生用クロック信号S1の周期及び乱数更新方式を変更不能にする。これにより、悪質な遊技客が乱数最大値、乱数発生用クロック信号S1の周期及び乱数更新方式を変更して乱数値記憶回路131から読み出されるランダムRの値と大当り判定値とが一致するタイミングを自在に設定し、大当りを頻発させるといった不正行為を防止することができる。
また、ユーザがパチンコ遊技機1毎に適宜選択した初期値変更方式によりカウント値の初期値を変更させるため、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
さらに、乱数最大値設定レジスタ135に、下限値「4」以下の値を指定する乱数最大値設定データ「0000h」〜「0003h」が書き込まれた場合、CPU106は、この乱数最大値設定レジスタ135に「0FFFh」を格納するため、「4」以下の値が乱数最大値として乱数回路103に設定されることを防止することができる。
また、CPU106により変更された初期値が乱数最大値より大きい場合、比較器122は、カウント値更新信号を順次出力して、カウンタ121に、カウント値を変更された初期値から最終値まで連続的に更新させ、通知信号を出力させることにより、この変更された初期値をCPU106にさらに変更させることができる。これにより、乱数値記憶回路131に出力されるカウント値が乱数最大値より大きくなることを防止することができる。
さらに、周期設定レジスタ137に、下限値「システムクロック信号の周期×128×7」以下の値を指定する周期設定コマンド「00h」〜「06h」が書き込まれた場合、CPU106は、この周期設定レジスタ137に「07h」を格納するため、「システムクロック信号の周期×128×7」より小さい値が内部クロック信号の周期として乱数回路103に設定されることを防止することができる。
また、CPU106は、乱数回路103に乱数の最大値、乱数更新方式及び乱数発生用クロック信号S1の周期を設定した後に、乱数回路103を起動させるため、電力の供給開始後、乱数の最大値、乱数更新方式及び乱数発生用クロック信号S1の周期の設定を行う前に、この乱数回路103から乱数が発生してしまうといった不具合を防止することができる。
また、リセットコントローラ102によりシステムリセットされたときは、乱数回路起動レジスタ141に乱数回路起動データ「80h」を書き込むことにより、乱数回路103を再度起動させることができる。
始動入賞口スイッチ70は、始動入賞口である普通可変入賞球装置6へ遊技球が入賞したことに基づいて、始動入賞信号SSを乱数回路103とCPU106とに出力する。CPU106は、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ミリ秒)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたことに基づいて、入賞処理を実行する。この入賞処理において、CPU106は、乱数値記憶回路131に出力制御信号SCを送出して乱数値記憶回路131を読出可能(イネイブル)状態に制御した後、乱数値記憶回路131からランダムRの値を読み出す。そして、CPU106は、乱数値記憶回路131への出力制御信号SCの送出を停止して乱数値記憶回路131を読出不能(ディセイブル)状態に制御した後、読み出したランダムRの値が所定の判定値「3」などと一致するか否かを判定することにより、可変表示装置4による特図ゲームの表示結果を大当り遊技状態とするか否かを決定する。
このように、CPU106がランダムRの値を読み出すときのみ、乱数値記憶回路131を読出可能状態に制御することにより、パチンコ遊技機1は、乱数値の取得をより一層、確実且つ安定的に行うことができる。また、CPU106は、始動入賞口である普通可変入賞球装置6へ遊技球が入賞したときのみ、乱数値記憶回路131からランダムRの値を読み出すため、パチンコ遊技機1は、無駄な処理を省略することができる。
なお、乱数回路103は、始動入賞口スイッチ70から出力された始動入賞信号SSをラッチ信号生成回路133に直接入力するのではなく、一旦タイマ回路134に入力して、始動入賞信号SSの入力時間を計測し、計測した時間が予め設定された時間(3ミリ秒)になったとき、乱数値取込レジスタ139に乱数値取込データ「01h」をセットすることにより、乱数値読取信号をラッチ信号生成回路133に入力する。このため、パチンコ遊技機1は、ラッチ信号生成回路133がノイズの影響等により誤って乱数値記憶回路131にラッチ信号SLを出力することを防止することができる。また、タイマ回路134には、2回のタイマ割込処理の実行間「4ミリ秒」よりも短い「3ミリ秒」が設定されているため、CPU106が乱数値記憶回路131から読み出したランダムRの値が前回の入賞時に読み出したランダムRの値と同じ値となることを防止することができる。
また、乱数値記憶回路131は、ラッチ信号生成回路133からラッチ信号SLが入力されているとき、遊技制御用マイクロプロセッサ100から入力される出力制御信号(ハイレベルの信号)SCをローレベルの信号に変換することにより、出力制御信号SCに対して受信不能状態に制御する。これにより、乱数値記憶回路131に記憶されているランダムRの値が更新されているときに、CPU106により乱数値記憶回路131からランダムRの値が読み出されることを防止することができるため、パチンコ遊技機1は、乱数値の更新を確実且つ安定的に行うことができる。
さらに、乱数値記憶回路131は、遊技制御用マイクロプロセッサ100から出力制御信号SCが入力されているとき、ラッチ信号生成回路133から入力されるラッチ信号(ハイレベルの信号)SLをローレベルの信号に変換することにより、ラッチ信号SLに対して受信不能状態に制御する。これにより、遊技制御用マイクロプロセッサ100が乱数値記憶回路131からランダムRの値を読み出しているときに、乱数値記憶回路131に記憶されているランダムRの値が更新されることを防止することができるため、パチンコ遊技機1は、乱数値の取得を確実且つ安定的に行うことができる。
上記の実施例では、ユーザにより第2の乱数更新方式が選択された場合について説明した。これに対して、第1の乱数更新方式が選択された場合には、図27に示すステップS10の乱数回路設定処理として、図35のフローチャートに示す処理が実行される。
図35に示す乱数回路設定処理において、CPU106は、まず、乱数回路設定プログラム151に含まれる乱数最大値設定モジュール151aを実行して、ユーザにより予め設定された乱数最大値を指定する乱数最大値設定データを乱数最大値設定レジスタ135に書き込むことにより、この予め設定されたランダムRの最大値を乱数回路103に設定する(ステップS31)。次に、CPU106は、乱数回路設定プログラム151に含まれる乱数更新方式選択モジュール151bを実行して、乱数更新方式選択データ「01b」を乱数更新方式選択レジスタ140に書き込むことにより、第1の乱数更新方式を乱数回路103に設定する(ステップS32)。この後、CPU106は、乱数回路設定プログラム151に含まれる乱数回路起動モジュール151dを実行して、乱数回路起動データ「80h」を乱数回路起動レジスタ141に書き込むことにより、乱数回路103を起動させる(ステップS33)。
こうして図35に示すような乱数回路設定処理が実行されることにより、乱数回路103は、例えば図36に示すようなタイミングチャートに従って動作する。
図36に示す動作例において、クロック回路101から乱数回路103へは、タイミングT31,T41,…においてローレベルからハイレベルに立ち上がる、図36(A)に示す基準クロック信号CLKが供給されるものとする。
クロック信号出力回路124は、クロック回路101から供給された基準クロック信号CLKを分周して乱数発生用クロック信号S1を生成し、セレクタ128と反転回路132とに出力する。セレクタ128は、乱数更新方式選択信号出力回路127から第1の乱数更新方式選択信号が入力されることに応答して、カウント値更新信号出力回路125から出力されるカウント値更新信号S3を選択してカウンタ121に出力する。カウンタ121は、セレクタ128から供給されるカウント値更新信号S3の立ち上がりエッヂが入力されるタイミングにおいて、カウント値Cを更新してカウント値順列変更回路123に出力する。ここで、セレクタ128は、乱数更新方式選択信号出力回路127から第1の乱数更新方式選択信号が入力されたときに、カウント値更新信号出力回路125から出力されるカウント値更新信号S3に応答して、クロック信号出力回路124から出力される乱数発生用クロック信号S1に同期した数値データの更新を指示する数値更新信号を、カウンタ121に出力してもよい。
反転回路132は、クロック信号出力回路124から出力された乱数発生用クロック信号S1の信号レベルを反転させることにより、例えばタイミングT31,T32,…においてハイレベルからローレベルに立ち下がり、タイミングT41,T42,…においてローレベルからハイレベルに立ち上がる、図36(C)に示す反転クロック信号S2を生成する。反転回路132によって生成された反転クロック信号S2は、ラッチ信号生成回路133に出力される。
ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第1の乱数更新方式選択信号が入力されることに応答して、反転回路132から供給される反転クロック信号S2を、図36(D)に示すラッチ信号SLとして出力する。このような第1の乱数更新方式が選択された場合に、CPU106がカウント値更新レジスタ138にカウント値更新データ「01h」を書き込むタイミングを、乱数発生用クロック信号S1がローレベルからハイレベルに立ち上がるタイミングT31,T32…のいずれかとなるように制御する。なお、セレクタ128がクロック信号出力回路124から出力される乱数発生用クロック信号S1に同期した数値更新指示信号を出力可能な場合には、このような制御が行われなくても、タイミングT31,T32…のいずれかにおいて信号レベルが切り替わる数値更新指示信号がカウンタ121へ出力されることになる。これにより、乱数回路103は、タイミングT31,T41,T32,T42,T33,T43…のうち、タイミングT32において、カウント値Cを更新し、タイミングT33とは異なるタイミングT41,T42,T43…において、ラッチ信号SLを出力することができる。すなわち、第1の乱数更新方式が選択された場合でも、乱数回路103は、カウンタ121によるカウント値Cの更新タイミングと、ラッチ信号生成回路133によるラッチ信号SLの出力タイミング(ラッチタイミング)とを、確実に異ならせることができ、乱数値の取得を確実且つ安定的に行うことができる。
この第1の乱数更新方式が選択された場合、CPU106は、図30のフローチャートに示す遊技制御割込処理に代えて、図37に示す処理を実行する。
図37に示す遊技制御割込処理において、CPU106は、まず、所定の電源断処理を実行することにより、電源基板10から供給される電力が低下したときなどに所定のデータ保護処理等を実行可能とする(ステップS191)。続いて、所定のスイッチ処理を実行することにより、始動入賞口スイッチ70等の各入賞口スイッチから入力される検出信号の状態を判定する(ステップS192)。次に、CPU106は、表示用乱数更新処理(ステップS193)を実行する。続いて、CPU106は、初期値変更プログラム153を実行して、図31に示す初期値変更処理を行う(ステップS194)。さらに、CPU106は、カウント値順列変更プログラム154を実行して、カウント値順列変更処理を行う(ステップS195)。
そして、CPU106は、この乱数値更新プログラム155を実行して、乱数値更新処理を行う(ステップS196)。この乱数値更新処理において、CPU106は、クロック信号出力回路124から出力される乱数発生用クロック信号S1の立ち上がりエッヂと同期して、カウント値更新データ「01h」をカウント値更新レジスタ138に書き込むことにより、カウンタ121によりカウントされているカウント値Cを更新させる。カウンタ121におけるカウント値Cは、ラッチ信号生成回路133からラッチ信号SLとして出力される反転クロック信号S2の立ち上がりエッヂと同期して、乱数値記憶回路131に取り込まれて記憶される。
続いて、特別図柄プロセス処理を実行する(ステップS197)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選択されて実行される。特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、CPU106は、普通図柄プロセス処理を実行する(ステップS198)。普通図柄プロセス処理では、普通図柄表示器40を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選択されて実行される。普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。さらに、特別図柄コマンド制御処理(ステップS199)と、普通図柄コマンド制御処理(ステップS200)と、を順次実行する。これにより、CPU106は、主基板11から表示制御基板12に対して表示制御コマンドを送ることにより、可変表示装置4の表示制御や普通図柄表示器40の点灯制御を指示する。続いて、CPU106は、所定の情報出力処理を実行することにより、各種出力データをI/Oポート108に含まれる各出力ポートに出力する(ステップS201)。この情報出力処理では、主基板11から情報端子基板16に、大当り情報、始動情報、確率可変情報などをホール管理用コンピュータに対して出力する指令の送出も行われる。また、CPU106は、所定の賞球処理を実行することにより、始動入賞口スイッチ70等の各入賞口スイッチから入力された検出信号に基づく賞球数の設定などを行い、払出制御基板15に対して払出制御コマンドを出力可能とする(ステップS202)。さらに、CPU106は、所定のソレノイド出力処理を実行することにより、所定の条件が成立したときに普通可変入賞球装置6における可動翼片や特別可変入賞球装置7における開閉板の開閉駆動を行う(ステップS203)。
このように、ユーザの設定に応じて第1及び第2の乱数更新方式のいずれかが選択され、選択された乱数更新方式で乱数値記憶回路131にランダムRの値を記憶させることができる。このため、パチンコ遊技機1毎に異なる乱数更新方式を選択することにより、乱数値記憶回路131から読み出されるランダムRの値のランダム性を高めることができる。また、カウンタ121がカウント値Cを更新するタイミングや、乱数値記憶回路131にカウント値Cを取り込んでランダムRの値を更新するタイミングを指定することができるので、更新されていない乱数値が読み出されることを防止できる。
また、上記の実施例では、始動入賞口スイッチ70からの始動入賞信号SSが、スイッチ回路109を介して遊技制御用マイクロプロセッサ100の乱数回路103とCPU106とに入力される場合について説明した。これに対して、始動入賞口スイッチ70からの始動入賞信号SSは、CPU106に入力させ、乱数回路103には入力しないようにしてもよい。この場合には、CPU106がラッチ用始動入賞信号SNを生成して乱数回路103に供給すればよい。
図38は、CPU106にてラッチ用始動入賞信号SNを生成して乱数回路103に供給する場合における、乱数回路103の構成例を示すブロック図である。なお、図38において、図4と同様の構成には同一の符号が付されている。
図38に示す構成において、乱数値読取信号出力回路126に設けられた乱数値取込レジスタ139には、CPU106からのラッチ用始動入賞信号SNとして、乱数値取込データ「01h」が書き込まれる。乱数値読取信号出力回路126は、乱数値取込レジスタ139に乱数値取込データ「01h」が書き込まれたことに応答して、乱数値読取信号をラッチ信号生成回路133に出力する。
また、遊技制御用マイクロプロセッサ100は、図25に示すような特図保留メモリ170と、大当り判定用テーブルメモリ171と、フラグメモリ172と、始動入賞口スイッチタイマメモリ173とを備えており、フラグメモリ172には、乱数値読出フラグが設けられている。乱数値読出フラグは、CPU106がラッチ用始動入賞信号SNを乱数回路103に送出したときにオン状態にセットされ、乱数値記憶回路131からランダムRの値が読み出されるとクリアされてオフ状態となる。
図38に示すような構成の乱数回路103を備えるパチンコ遊技機1において、第2の乱数更新方式が選択された場合、CPU106は、図27のフローチャートに示すステップS10の乱数回路設定処理として、図28のフローチャートに示す処理を実行する。これにより、乱数回路103は、例えば図39に示すようなタイミングチャートに従って動作する。
図39に示す動作例において、クロック回路101から乱数回路103へは、タイミングT51,T61,…においてローレベルからハイレベルに立ち上がる、図39(A)に示す基準クロック信号CLKが供給されるものとする。
クロック信号出力回路124は、クロック回路101から供給された基準クロック信号CLKを分周して、例えばタイミングT51,T52,…においてローレベルからハイレベルに立ち上がり、タイミングT61,T62,…においてハイレベルからローレベルに立ち下がる、図39(B)に示す乱数発生用クロック信号S1を生成する。クロック信号出力回路124によって生成された乱数発生用クロック信号S1は、セレクタ128と反転回路132とに出力される。
セレクタ128は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されることに応答して、クロック信号出力回路124から出力された乱数発生用クロック信号S1を選択してカウンタ121に出力する。カウンタ121は、セレクタ128から供給される乱数発生用クロック信号S1の立ち上がりエッヂが入力される毎に、カウント値Cを更新してカウント値順列変更回路123に出力する。
反転回路132は、クロック信号出力回路124から出力された乱数発生用クロック信号S1の信号レベルを反転させることにより、例えばタイミングT51,T52,…においてハイレベルからローレベルに立ち下がり、タイミングT61,T62,…においてローレベルからハイレベルに立ち上がる、図39(C)に示す反転クロック信号S2を生成する。反転回路132によって生成された反転クロック信号S2は、ラッチ信号生成回路133に出力される。
ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されることに応答して、CPU106から入力される図39(D)に示すラッチ用始動入賞信号SNを、反転回路132から供給される反転クロック信号S2の立ち上がりエッヂに同期させて、図39(E)に示すラッチ信号SLとして出力する。より具体的には、ラッチ信号生成回路133は、CPU106から入力される図39(D)に示すようなラッチ用始動入賞信号SNを、反転回路132から供給される反転クロック信号S2の立ち上がりエッヂタイミングにおいて取り込むとともに、取り込まれたラッチ用始動入賞信号SNの信号レベルに対応して、図39(E)に示すようなラッチ信号SLを出力する。
これにより、乱数回路103は、タイミングT51,T61,T52,T62,T53,T63…のうち、タイミングT51,T52,T53…において、カウント値Cを更新し、タイミングT51,T52,T53とは異なるタイミングT62において、ラッチ信号SLを出力することができる。
また、図38に示す構成の乱数回路103を備えるパチンコ遊技機1において、第2の乱数更新方式が選択された場合、CPU106は、図30のフローチャートに示すステップS106の特別図柄プロセス処理を開始すると、図40に示すステップS251〜S262の処理を実行する。
図40に示す処理において、CPU106は、まず、フラグメモリ172に設けられた乱数値読出フラグがオンとなっているか否かを判別する(ステップS251)。乱数値読出フラグがオフであるときには(ステップS251;No)、始動入賞口スイッチタイマメモリ173に記憶されているタイマ値をチェックすることにより、判別する(ステップS252)。ステップS252において、CPU106は、始動入賞口スイッチタイマメモリ173に記憶されているタイマ値をロードし、ロードしたタイマ値を所定のスイッチオン判定値(例えば「2」)と比較する。ここで、スイッチオン判定値は、遊技制御割込処理の実行回数(例えば「2」)に対応して予め定められている。これにより、CPU106は、所定回(例えば2回)の遊技制御割込処理が実行されている間(例えば4ミリ秒)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたが否かを判別することができる。
そして、この比較結果に基づいて、CPU106は、タイマ値がスイッチオン判定値「2」以上であるか否かを判定する。タイマ値がスイッチオン判定値「2」以上である場合には、遊技球が入賞しているものと判別して(ステップS252;Yes)、特図保留メモリ170が記憶している始動入賞記憶数が所定の最大値(例えば、「4」)であるか否かを判別する(ステップS253)。ここで、特図保留メモリ170において、例えば始動入賞記憶番号「4」に対応したランダムRが記憶されている場合には、始動入賞記憶数が最大値であると判別される。
始動入賞記憶数が最大値であるときには(ステップS253;Yes)、今回の入賞による始動検出は無効とし、特別図柄プロセスフラグの値に基づいて、図32に示すステップS150〜S158の9個の処理のいずれかを選択して実行する。一方、始動入賞記憶数が最大値ではないときには(ステップS253;No)、乱数回路103にラッチ用始動入賞信号SNを送出して、乱数値読取信号出力回路126に設けられた乱数値取込レジスタ139に、乱数値取込データ「01h」を書き込む(ステップS254)。このときには、乱数値読出フラグをオン状態にセットした後(ステップS255)、図32に示すステップS150〜S158の処理のうちから特別図柄プロセスフラグの値に対応した処理が選択されて実行される。
この後に再び特別図柄プロセス処理が実行されたときには、ステップS251にて乱数値読出フラグがオンであると判別される(ステップS251;Yes)。このとき、CPU106は、乱数値記憶回路131に出力制御信号SCを送出して、乱数値記憶回路131を読出可能(イネイブル)状態に制御する(ステップS256)。続いて、CPU106は、乱数値記憶回路131から乱数値として記憶されているランダムRの値を読み出し(ステップS257)、この読み出したランダムRの値を、例えばRAM105に設けられた所定のバッファ領域に格納した後(ステップS258)、乱数値記憶回路131への出力制御信号SCの送出を停止して、乱数値記憶回路131を読出不能(ディセイブル)状態に制御する(ステップS259)。そして、CPU106は、始動入賞記憶数を「1」加算し(ステップS260)、所定のバッファ領域に格納したランダムRの値を特図保留メモリ170の空エントリの先頭にセットする(ステップS261)。この後、CPU106は、乱数値読出フラグをクリアしてオフ状態とし(ステップS262)、図32に示すステップS150〜158の処理のうちで特別図柄プロセスフラグの値に対応したものに進む。
以上のように、図38に示すような構成の乱数回路103を備えるパチンコ遊技機1においては、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されることに応答して、セレクタ128がクロック信号出力回路124から出力される乱数発生用クロック信号S1を選択してカウンタ121に出力する。これにより、カウンタ121には、タイミングT51,T52,T53,…において、ローレベルからハイレベルに立ち上がる乱数発生用クロック信号S1が供給される。また、クロック信号出力回路124から出力される乱数発生用クロック信号S1は、反転回路132によって信号レベルが反転された後、反転クロック信号S2としてラッチ信号生成回路133に出力される。ラッチ信号生成回路133は、乱数更新方式選択信号出力回路127から第2の乱数更新方式選択信号が入力されていることに応答して、乱数値読取信号出力回路126から出力される乱数値読取信号を、反転回路132から入力される反転クロック信号S2に同期させて、タイミングT62において、ローレベルからハイレベルに立ち上がるラッチ信号SLとして乱数値記憶回路131に出力する。
このようにして、図38に示す構成を有する乱数回路103は、クロック信号出力回路124から出力される乱数発生用クロック信号S1がローレベルからハイレベルに立ち上がるタイミングT51,T52,T53,…においてカウント値Cを更新し、これらのタイミングT51,T52,T53,…とは異なるタイミングT61,T62,T63,…においてラッチ信号SLを出力することができる。そして、乱数値記憶回路131は、この更新されたカウント値Cをラッチ信号SLの立ち上がりエッヂに応答して、ランダムRとして記憶する。
このため、図38に示す乱数回路103は、カウンタ121によるカウント値Cの更新タイミングと、ラッチ信号生成回路133によるラッチ信号SLの出力タイミング(ラッチタイミング)とを、確実に異ならせることができ、乱数値の取得を確実且つ安定的に行うことができる。
また、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106は、パチンコ遊技機1に電力が供給され、遊技制御メイン処理が開始された後、タイマ割込処理の実行を許可してループ処理に移行する前に、乱数回路設定プログラム151を実行して乱数回路設定処理を行う。このため、限られた割り込み処理時間(例えば2ミリ秒)の間で乱数発生のための処理を開始・終了する必要はなくなり、遊技制御用マイクロプロセッサ100の処理負担の増加を防止することができる。さらに、図38に示す乱数回路103をCPU106とともに遊技制御用マイクロプロセッサ100に内蔵させることで、主基板11のスペースを確保することができ、また、不正基板の設置等の偽造を困難にすることができる。
なお、好適には、乱数回路設定処理は、遊技状態復旧処理の実行後又はRAM105のクリアや所定の作業領域に対する初期設定などの初期化処理の実行後、タイマ割込処理の実行を許可してループ処理に移行する前に、実行されることが望ましい。
図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106は、普通可変入賞球装置6へ遊技球が入賞したものと判別したとき、乱数回路103にラッチ用始動入賞信号SNを送出し、乱数値取込レジスタ139に乱数値取込データ「01h」を書き込む。このため、パチンコ遊技機1は、始動入賞スイッチ70から乱数回路103へ始動入賞信号SSを供給するための経路を設ける必要がなく、そのハードウェア構成を簡素化することができる。
また、CPU106は、図38に示す乱数回路103が発生するランダムRの値を用いて特図ゲームおける表示結果を大当りとするか否かを決定する。これにより、ROM104等に記憶するプログラムの容量を削減することができる。
さらに、ランダムRの値は、図38に示す乱数回路103にて更新されるので、ソフトウェアで更新するものに比べて、ROM104等が記憶するプログラムの容量を少なくすることできる。
また、図38に示す乱数回路103が備える乱数値記憶回路131に記憶されているランダムRの値を、乱数回路設定プログラム151を実行してなされた設定に従って更新させる。これにより、パチンコ遊技機1毎に異なる設定を行い、特図ゲームにおける表示結果を大当りとするか否かを判定するために乱数値記憶回路131から読み出されるランダムRのランダム性を高めることができる。
より詳細には、CPU106は、乱数回路設定プログラム151に含まれる乱数最大値設定モジュール151a,乱数更新方式選択モジュール151b及び周期設定モジュール151cを実行して、ユーザがパチンコ遊技機1毎に適宜設定したランダムRの最大値、乱数更新方式及び乱数発生用クロック信号S1の周期を図38に示す構成を有する乱数回路103に設定し、その後、乱数回路起動モジュール151dを実行して図38に示す乱数回路103を起動させる。このようにして図38に示す乱数回路103に設定されたランダムRの最大値、乱数更新方式及び内部クロック信号の周期に従って、乱数値記憶回路131に格納されているランダムRの値を更新させる。これにより、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
図38に示す乱数回路103が備える比較器122には、ランダムRの最大値(乱数最大値)を指定する乱数最大値設定データが格納される乱数最大値設定レジスタ135が設けられている。比較器122は、乱数最大値設定レジスタ135に格納された乱数最大値設定データに応じて、カウンタ121によるカウント値の更新範囲を規制する。これにより、図38に示す乱数回路103を備えるパチンコ遊技機1毎に異なる乱数の最大値を設定することができ、可変表示における表示結果を特定表示結果とするか否かに用いられる乱数値のランダム性を高めることができる。
さらに、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106がカウント値順列変更プログラム154を実行して、カウント値の更新順である順列を変更させる。図38に示す乱数回路103が備えるカウント値順列変更回路123には、順列の変更を要求するカウント値順列変更データ「01h」を格納するカウント値順列変更レジスタ136が設けられている。カウント値順列変更回路123は、カウント値順列変更レジスタ136にカウント値順列変更データ「01h」が書き込まれたことに応答して更新規則を切り替えることにより、カウント値順列変更データ「01h」が格納されていないときとは異なる更新順の順列に変更する。これにより、乱数値記憶回路131に入力されるカウント値Cのランダム性が高まる結果、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
また、図38に示す乱数回路103が備えるカウント値順列変更回路123が、切り替えた更新規則に従ってカウント値の更新動作を開始したことに応答して、CPU106は、カウント値順列変更データ「01h」が書き込まれたカウント値順列変更レジスタ136を初期化する。このため、カウント値順列変更回路123から出力され、乱数値記憶回路131に入力されるカウント値の順列が連続的に変更されるといった不具合を防止することができる。
さらに、図38に示す乱数回路103に設けられたカウント値順列変更レジスタ136が初期化された後、CPU106は、カウント値順列データ「01h」をカウント値順列変更レジスタ136に再度書き込む。これにより、変更したカウント値の順列をさらに変更することができる。
また、図38に示す乱数回路103が備えるカウンタ121により更新されるカウント値の初期値を変更させることにより、カウント値が初期値から最終値までカウントアップされる周期の検出を困難にすることができる。これにより、ステップS173にて乱数値記憶回路131から読み出されるランダムRの値と大当り判定値とが合致するタイミングを狙って所定の信号を出力し、大当りを頻発させるといった不正行為を防止することができる。
さらに、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106は、リセットコントローラ102によりシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ135、周期設定データが書き込まれた周期設定レジスタ137及び乱数更新方式選択データが書き込まれた乱数更新方式選択レジスタ140を書込不能に制御して乱数回路103に設定された乱数最大値、乱数発生用クロック信号S1の周期及び乱数更新方式を変更不能にする。これにより、悪質な遊技客が乱数最大値、乱数発生用クロック信号S1の周期及び乱数更新方式を変更して乱数値記憶回路131から読み出されるランダムRの値と大当り判定値とが一致するタイミングを自在に設定し、大当りを頻発させるといった不正行為を防止することができる。
また、図38に示す乱数回路103を備えるパチンコ遊技機1のユーザがパチンコ遊技機1毎に適宜選択した初期値変更方式により、カウント値の初期値を変更させる。このため、乱数値記憶回路131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられる乱数値のランダム性を高めることができる。
さらに、図38に示す乱数回路103に設けられた乱数最大値設定レジスタ135に、下限値「4」以下の値を指定する乱数最大値設定データ「0000h」〜「0003h」が書き込まれた場合、CPU106は、この乱数最大値設定レジスタ135に「0FFFh」を格納する。このため、「4」以下の値が乱数最大値として乱数回路103に設定されることを防止することができる。
また、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106により変更された初期値が乱数最大値より大きい場合、比較器122は、カウント値更新信号を順次出力して、カウンタ121に、カウント値を変更された初期値から最終値まで連続的に更新させ、通知信号を出力させることにより、この変更された初期値をCPU106にさらに変更させることができる。これにより、乱数値記憶回路131に出力されるカウント値が乱数最大値より大きくなることを防止することができる。
さらに、図38に示す乱数回路103に設けられた周期設定レジスタ137に、下限値「システムクロック信号の周期×128×7」以下の値を指定する周期設定コマンド「00h」〜「06h」が書き込まれた場合、CPU106は、この周期設定レジスタ137に「07h」を格納する。このため、「システムクロック信号の周期×128×7」より小さい値が内部クロック信号の周期として乱数回路103に設定されることを防止することができる。
また、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106は、乱数回路103に乱数の最大値、乱数更新方式及び乱数発生用クロック信号S1の周期を設定した後に、乱数回路103を起動させる。このため、電力の供給開始後、乱数の最大値、乱数更新方式及び乱数発生用クロック信号S1の周期の設定を行う前に、この乱数回路103から乱数が発生してしまうといった不具合を防止することができる。
また、図38に示す乱数回路103を備えるパチンコ遊技機1において、リセットコントローラ102によりシステムリセットされたときは、乱数回路起動レジスタ141に乱数回路起動データ「80h」を書き込むことにより、乱数回路103を再度起動させることができる。
図38に示す乱数回路103を備えるパチンコ遊技機1において、始動入賞口スイッチ70は、始動入賞口である普通可変入賞球装置6へ遊技球が入賞したことに基づいて、始動入賞信号SSをCPU106に出力する。CPU106は、所定回(例えば2回)のタイマ割込処理が実行されている間(例えば4ミリ秒)、始動入賞口スイッチ70から始動入賞信号SSが継続して入力されたことに基づいて、普通可変入賞球装置6へ遊技球が入賞したものと判別し、乱数回路103にラッチ用始動入賞信号SNを送出し、乱数値取込レジスタ139に乱数値取込データ「01h」を書き込む。
この後、最初に行われる遊技制御割込処理において、CPU106は、乱数値記憶回路131に出力制御信号SCを送出して乱数値記憶回路131を読出可能(イネイブル)状態に制御した後、乱数値記憶回路131からランダムRの値を読み出す。そして、CPU106は、乱数値記憶回路131への出力制御信号SCの送出を停止して乱数値記憶回路131を読出不能(ディセイブル)状態に制御した後、読み出したランダムRの値が所定の判定値「3」などと一致するか否かを判定することにより、可変表示装置4による特図ゲームの表示結果を大当り遊技状態とするか否かを決定する。
このように、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106は、2回のタイマ割込処理としての遊技制御割込処理が実行されている間、始動入賞信号SSが継続して入力されたことに基づいて、普通可変入賞球装置6へ遊技球が入賞したものと判別する。このため、パチンコ遊技機1は、ノイズの影響等により誤って乱数回路103にラッチ用始動入賞信号SNが出力されることを防止することができる。
さらに、図38に示す乱数回路103を備えるパチンコ遊技機1において、CPU106がランダムRの値を読み出すときのみ、乱数値記憶回路131を読出可能状態に制御する。これにより、パチンコ遊技機1は、乱数値の取得をより一層、確実且つ安定的に行うことができる。また、CPU106は、始動入賞口である普通可変入賞球装置6へ遊技球が入賞したときのみ、乱数値記憶回路131からランダムRの値を読み出すため、パチンコ遊技機1は、無駄な処理を省略することができる。
また、図38に示す乱数回路103が備える乱数値記憶回路131は、ラッチ信号生成回路133からラッチ信号SLが入力されているとき、遊技制御用マイクロプロセッサ100から入力される出力制御信号(ハイレベルの信号)SCをローレベルの信号に変換することにより、出力制御信号SCに対して受信不能状態に制御する。これにより、乱数値記憶回路131に記憶されているランダムRの値が更新されているときに、CPU106により乱数値記憶回路131からランダムRの値が読み出されることを防止することができるため、パチンコ遊技機1は、乱数値の更新を確実且つ安定的に行うことができる。
さらに、図38に示す乱数回路103が備える乱数値記憶回路131は、遊技制御用マイクロプロセッサ100から出力制御信号SCが入力されているとき、ラッチ信号生成回路133から入力されるラッチ信号(ハイレベルの信号)SLをローレベルの信号に変換することにより、ラッチ信号SLに対して受信不能状態に制御する。これにより、遊技制御用マイクロプロセッサ100が乱数値記憶回路131からランダムRの値を読み出しているときに、乱数値記憶回路131に記憶されているランダムRの値が更新されることを防止することができるため、パチンコ遊技機1は、乱数値の取得を確実且つ安定的に行うことができる。
図38に示す乱数回路103を備えるパチンコ遊技機1において、第1の乱数更新方式が選択された場合には、図4に示す乱数回路103を備えるパチンコ遊技機1において第1の乱数更新方式が選択された場合と同様に、図27に示すステップS10の乱数回路設定処理として、図35のフローチャートに示す処理を実行する。図35に示すような乱数回路設定処理が実行されることにより、図38に示す乱数回路103は、例えば図36に示すようなタイミングチャートに従って動作する。また、第1の乱数更新方式が選択された場合には、CPU106が図30のフローチャートに示す遊技制御割込処理に代えて図37に示す処理を実行し、ステップS196にて乱数値更新処理を行う。この乱数値更新処理において、CPU106は、クロック信号出力回路124から出力される乱数発生用クロック信号S1の立ち上がりエッヂと同期してカウント値更新データ「01h」をカウント値更新レジスタ138に書き込むことにより、カウンタ121によりカウントされているカウント値Cを更新させる。カウンタ121におけるカウント値Cは、ラッチ信号生成回路133からラッチ信号SLとして出力される反転クロック信号S2の立ち上がりエッヂと同期して、乱数値記憶回路131に取り込まれて記憶される。
このように、図38に示す乱数回路103を備えるパチンコ遊技機1においても、ユーザの設定に応じて第1及び第2の乱数更新方式のいずれかが選択され、選択された乱数更新方式で乱数値記憶回路131にランダムRの値を記憶させることができる。このため、パチンコ遊技機1毎に異なる乱数更新方式を選択することにより、乱数値記憶回路131から読み出されるランダムRの値のランダム性を高めることができる。また、カウンタ121がカウント値Cを更新するタイミングや、乱数値記憶回路131にカウント値Cを取り込んでランダムRの値を更新するタイミングを指定することができるので、更新されていない乱数値が読み出されることを防止できる。
なお、この発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、この発明に適用可能な上記の実施の形態の変形態様について説明する。
上記実施の形態では、クロック信号出力回路124から出力された信号を乱数発生用クロック信号S1としてセレクタ128と反転回路132とに出力し、その信号における信号レベルを反転回路132にて反転させて生成した信号を反転クロック信号S2としてラッチ信号生成回路133に出力していた。しかしながら、本発明は、これに限定されず、クロック信号出力回路124から出力された信号をラッチ信号生成回路133に出力し、その信号における信号レベルを反転させて生成した信号をセレクタ128に出力するようにしてもよい。すなわち、カウンタ121がカウント値Cを更新するために用いる信号における信号レベルを反転させた信号と同期させて、ラッチ信号SLを乱数値記憶回路131に供給できるものであればよい。
また、カウンタ121やラッチ信号生成回路133は、乱数発生用クロック信号S1や反転クロック信号S2の立ち上がりエッヂに応答してカウント値Cの更新やラッチ信号SLの出力を行うものに限定されず、例えば、各信号の立ち下がりエッヂに応答してカウント値Cの更新やラッチ信号SLの出力を行うものであってもよい。すなわち、カウンタ121及びラッチ信号生成回路133は、例えば乱数発生用クロック信号S1あるいは反転クロック信号S2における信号レベルが予め定められた第1の信号レベルから第2の信号レベルへと変化するといった、所定の態様での信号変化に応答して、カウント値Cの更新やラッチ信号SLの出力を行うことができるものであればよい。
上記の実施の形態において、カウンタ121は、カウント値を「1」から「4095」まで1ずつカウントアップして更新していた。しかしながら、本発明は、これに限定されず、カウンタ121は、カウント値を更新する規則は、任意である。上記実施の形態では、カウンタ121はアップカウンタであったが、ダウンカウンタであってもよい。さらに、数値更新手段は、カウンタ121に限定されず、疑似乱数発生回路であってもよい。また、カウンタ121の各ビット出力端子の接続を入れ替えること等により、乱数値記憶回路131に入力されるカウント値Cのランダム性を高めてもよい。
さらに、上記の実施の形態において、更新範囲規制手段は、カウンタ121から入力されたカウント値Cと乱数最大値設定レジスタ135に格納されている乱数最大値設定データにより指定される乱数最大値とを比較し、入力されたカウント値Cが乱数最大値以下のとき、入力されたカウント値Cを乱数値記憶回路131に出力し、入力されたカウント値Cが乱数最大値より大きいとき、カウント値更新信号をカウンタ121に出力する比較器122であった。しかしながら、本発明は、これに限定されず、更新範囲規制手段は、乱数最大値設定レジスタ135に格納されている乱数最大値設定データに応じて、所定の演算を行い、カウント値の更新範囲を規制するもの等、任意である。
例えば図41に示すように、更新範囲規制手段は、カウンタ121から入力されたカウント値Cが「0」〜「99」で、乱数最大値設定レジスタ135に格納されている乱数最大値設定データにより指定される乱数最大値「9」の場合、入力カウント値「0」〜「9」のときカウント値「0」を、入力カウント値「10」〜「19」のときカウント値「1」を、…、入力カウント値「90」〜「99」のときカウント値「9」を、出力することにより、カウント値の更新範囲を「9」に規制するものであってもよい。
また、上記の実施の形態において、乱数値記憶回路131から読み出したランダムRの値を、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定する大当り判定用の乱数として用いるものとして説明した。しかしながら、本発明は、これに限定されず、この読み出したランダムRの値を、何に用いるかは任意であり、ハズレ時にリーチするか否かを決定するリーチ判定用の乱数、特別図柄及び飾り図柄の可変表示に用いる可変表示パターンを決定するための表示用の乱数、大当り時における特別図柄の確定図柄を決定するための表示用の乱数、ハズレ時における特別図柄の確定図柄を決定するための表示用の乱数、大当りを生じさせる確率が向上している高確率状態(特別遊技状態)とするか否かを決定する確変判定用の乱数や、普通図柄表示器40による普通図ゲームにおける表示結果を当りとするか否かを決定する普通図当り判定用の乱数などに用いてもよい。但し、ここに挙げた乱数の全てを乱数回路103を用いて更新する必要はなく、一部の乱数を乱数回路103を用いずに更新してもよい。例えば、これらの乱数のうちの一部を、遊技制御割込処理中に所定のプログラムを実行することによって、更新してもよく、また、リフレッシュレジスタを用いた乱数の更新方式を併用してもよい。さらに、乱数値記憶回路131から読み出したランダムRの値と、遊技制御割込処理中に所定のプログラムを実行することによって更新した乱数の値及び/又はリフレッシュレジスタを用いて更新した乱数の値と、を加算、減算、積算、乗算、除算するなど、演算して得られた値を、大当り、リーチ、可変パターン等の決定用の乱数として用いてもよい。
上記の実施の形態において、CPU106は、遊技制御メイン処理において、ステップS8による遊技状態復旧処理又はS9による初期化処理の後、ステップS11によるCTC107によるタイマ割込みのための設定をする前に、乱数回路設定処理を実行していたが、本発明は、これに限定されず、電力供給が開始された後、ループ処理に移行する前であれば任意であり、例えば、ステップS1にて割込禁止に設定した直後に行ってもよく、ステップS2にて割込モードをモード2に設定した直後に行ってもよい。また、ステップS3にてスタックポインタにスタックポインタ指定アドレスを設定した直後、ステップS4にてCTC107などのレジスタ設定を行った直後や、ステップS11にてタイマ割込みのための設定をした直後に行ってもよい。
さらに、上記実施の形態において、CPU106は、図30に示す遊技制御割込処理において、ステップS105によるカウント値順列変更処理の後、ステップS106による特別図柄プロセス処理の前に、乱数値更新処理を実行していたが、本発明は、これに限定されず、遊技制御割込処理中であれば任意であり、例えば、ステップS103による表示用乱数更新処理の前に、乱数値更新処理を実行してもよい。また、乱数値更新処理を、ステップS103による表示用乱数更新処理の後、ステップS104による初期値変更処理の前に、行ってもよく、さらには、ステップS104による初期値変更処理の後、ステップS105によるカウント値順列変更処理の前に、行ってもよい。
また、上記実施の形態において、CPU106は、入賞時に、乱数値取込データ「01h」を乱数値取込レジスタ139に書き込んで、乱数値記憶回路131に格納されているランダムRの値を更新させていた。しかしながら、本発明は、これに限定されず、タイマ割込毎に、乱数値取込データ「01h」を乱数値取込レジスタ139に書き込んで、乱数値記憶回路131に格納されているランダムRの値を更新させてもよい。
さらに、上記の実施の形態において、ユーザプログラム実行データエリアの1F97h番地の領域に第3の初期値変更方式を指定する初期値変更方式設定データ「03h」が記憶されている場合、CPU106は、カウンタ121が更新するカウント値Cの初期値を、RAM105の各番地に格納されている値の加算値に変更させた。しかしながら、本発明は、これに限定されず、初期値変更方式設定データ「03h」が記憶されている場合に、変更される値は、RAM105の予め定められた番地に格納されている値に基づくものであれば、任意である。例えば、CPU106は、カウンタ121が更新するカウント値Cの初期値を、RAM105の各番地に格納されている値の積算値や乗算値等に変更させてもよい。
また、上記実施の形態において、乱数値記憶回路131は、AND回路201,203やOR回路221〜228などの論理回路を用いてラッチ信号SL及び出力制御信号SCの受信制御,ランダムRの出力制御などのイネイブル/ディセイブル制御を行っていた。しかしながら、本発明は、これに限定されず、乱数値記憶回路131は、I/Oポート108やラッチ信号生成回路133との間にFET(Field Effect Transistor)などのスイッチング素子を設け、ラッチ信号SLや出力制御信号SCの入力に応答して、I/Oポート108やラッチ信号生成回路133との経路を導通、遮断することにより、ラッチ信号SLや出力制御信号SCのイネイブル/ディセイブル制御を行ってもよい。
上記実施の形態において、タイマ回路134は、ハイレベルの信号が入力されたことに応答して起動し、入力がハイレベルとなっている間、クロック回路101から順次入力される基準クロック信号CLKをアップカウント又はダウンカウントし、アップカウント又はダウンカウントした値が、所定の時間に対応する値となったとき、入力された信号をハイレベルの信号であると判定して乱数値取込レジスタ139に乱数値取込データ「01h」を書き込むものであった。しかしながら、本発明は、これに限定されず、タイマ回路134は、始動入賞口スイッチ70から始動入賞信号SSが入力されている時間を計測し、計測した時間が所定の時間になったとき、始動入賞信号SSを出力するものであれば任意である。
さらに、上記実施の形態において、タイマ回路134は、クロック回路101から順次入力される基準クロック信号CLKを用いて信号の入力時間を計測していたが、本発明は、これに限定されず、タイマ回路134は、基準クロック信号CLKを分周したクロック信号や、クロック回路101とは異なるクロック信号生成回路から出力されるクロック信号を用いてもよい。また、上記実施の形態において、タイマ回路134には、所定の時間として3msが設定されていたが、本発明は、これに限定されず、2回のタイマ割込処理の実行時間である4msよりも短い時間であれば任意に設定可能である。
また、上記実施の形態において、CPU106は、2回のタイマ割込処理が実行されている間、始動入賞信号SSが継続して入力されたことに基づいて、入賞処理を実行していた。しかしながら、本発明は、これに限定されず、上述したタイマ割込処理の実行回数は、任意であり、例えば、CPU106は、3回のタイマ割込処理が実行されている間、始動入賞信号SSが継続して入力されたことに基づいて、入賞処理を実行してもよい。この場合、タイマ回路134には、3回のタイマ割込処理の実行時間である6msよりも短い時間を設定すればよい。
さらに、上記の実施の形態において、乱数回路103を内蔵する遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6への入賞)が成立した後に可変表示の開始条件(例えば可変表示装置4における前回の可変表示及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報を可変表示する可変表示装置(例えば可変表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御する遊技機であった。
しかしながら、本発明は、これに限定されず、例えば、乱数回路103を内蔵する遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
この場合、乱数値記憶回路131から読み出したランダムRの値を、特定遊技状態(例えば大当り遊技状態)におけるラウンド(例えば所定の開閉部材により所定の入賞口を遊技者にとって有利な特定態様で開口させる動作)の継続上限回数の判定や、可変入賞装置(例えば可変入賞球装置)の内部構造変化に関わる判定用乱数として用いることができる。
また、乱数回路103を内蔵する遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。
こうしたパチンコ遊技機が、入賞することにより権利発生状態を発生させる入賞装置の開閉に関わる表示結果を表示する可変表示装置を備える遊技機である場合、乱数値記憶回路131から読み出した乱数を、普通図柄の事前判定用乱数として用いることができる。さらに、この種のパチンコ遊技機が、可変表示装置にて特定の表示結果が表示されたときに、可変表示装置に特定の表示結果を導出させる起因となった遊技媒体を、権利発生状態を発生させる特定検出装置に遊技球を誘導する誘導装置を備える遊技機である場合、乱数値記憶回路131から読み出した乱数を、判定図柄の事前判定用乱数として用いることができる。
さらに、本発明の遊技機は、図42に示す、1ゲームに対して賭け数を設定することによりゲームを開始させることが可能となり、可変表示装置(例えば可変表示装置1002)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて所定の入賞が発生可能であるスロットマシン(例えばスロットマシン1000)であってもよい。図42に示すスロットマシン1000は、本発明の始動信号出力手段として、遊技者によりスタートレバー1011が操作されたことに基づいて所定の始動信号を遊技制御手段(例えば主基板)や乱数発生手段(例えば乱数発生回路)に出力する図示しないスタートスイッチを備えている。なお、図42に示す液晶表示器1001は、演出手段として機能するものである。
また、本発明の遊技機は、パチンコ遊技機等の弾球遊技機において画像表示装置を有するものであれば、例えば、一般電役機、又はパチコンと呼ばれる確率設定機能付き弾球遊技機等であっても構わない。さらには、プリペイドカードによって球貸しを行うCR式パチンコ遊技機だけではなく、現金によって球貸しを行うパチンコ遊技機にも適用可能である。すなわち、LCD等からなる画像表示装置を有し、識別情報としての図柄を可変表示することが可能な遊技機であれば、どのような形態のものであっても構わない。また、本発明は、入賞球の検出に応答して所定数の賞球を払い出す払出式遊技機に限定されるものではなく、遊技球を封入し入賞球の検出に応答して得点を付与する封入式遊技機にも適用することができる。
図1、図2及び図42に示した装置構成、図3、図4、図25及び図38に示すブロック構成、図5、図8、図10〜図15に示すレジスタ構成、図18及び図19に示すアドレスマップ、図21、図22に示すプログラム構成、図6、図26に示すテーブル構成、図16に示す回路構成、図27、図28、図30〜図35、図37、図40に示すフローチャート構成や、図29、図36、図39に示すタイミングチャート構成等は、発明の趣旨を逸脱しない範囲で任意に変更及び修正が可能である。
また、パチンコ遊技機1の動作をシミュレーションするゲーム機などにも本発明を適用することができる。本発明を実現するためのプログラム及びデータは、コンピュータ装置等に対して、着脱自在の記録媒体により配布・提供される形態に限定されるものではなく、予めコンピュータ装置等の有する記憶装置にプリインストールしておくことで配布される形態を採っても構わない。さらに、本発明を実現するためのプログラム及びデータは、通信処理部を設けておくことにより、通信回線等を介して接続されたネットワーク上の、他の機器からダウンロードすることによって配布する形態を採っても構わない。
そして、ゲームの実行形態も、着脱自在の記録媒体を装着することにより実行するものだけではなく、通信回線等を介してダウンロードしたプログラム及びデータを、内部メモリ等にいったん格納することにより実行可能とする形態、通信回線等を介して接続されたネットワーク上における、他の機器側のハードウェア資源を用いて直接実行する形態としてもよい。さらには、他のコンピュータ装置等とネットワークを介してデータの交換を行うことによりゲームを実行するような形態とすることもできる。