以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。なお、以下の説明においてリーチ表示状態とは、表示結果として導出表示した図柄(リーチ図柄という)が大当り図柄の一部を構成しているときに未だ導出表示していない図柄(リーチ可変図柄という)については可変表示が行われている状態、あるいは、全て又は一部の図柄が大当り図柄の全て又は一部を構成しながら同期して可変表示している状態のことである。具体的には、予め定められた複数の表示領域に、予め定められた図柄が停止することで大当りとなる有効ラインが定められ、その有効ライン上の一部の表示領域に予め定められた図柄が停止しているときに未だ停止していない有効ライン上の表示領域において可変表示が行われている状態(例えば、左、中、右の表示領域のうち左、右の表示領域には大当り図柄の一部となる(例えば「7」)が停止表示されている状態で中の表示領域は未だ可変表示が行われている状態)、あるいは、有効ライン上の表示領域の全て又は一部の図柄が大当り図柄の全て又は一部を構成しながら同期して可変表示している状態(例えば、左、中、右の表示領域の全てで可変表示が行われてどの状態が表示されても同一の図柄が揃っている態様で可変表示が行われている状態)である。
本実施例における遊技機は、LCD等からなる画像表示装置により特図ゲームを行う遊技機であり、プリペイドカードによって球貸しを行うカードリーダ(CR:Card Reader)式の第1種パチンコ遊技機や、LCDを搭載したスロットマシン等の遊技機である。
また、遊技機は、パチンコ遊技機等の弾球遊技機であってもよく、画像表示装置を有するものであれば、例えば、第2種あるいは第3種に分類されるパチンコ遊技機や、一般電役機、又はパチコンと呼ばれる確率設定機能付き弾球遊技機等であっても構わない。さらには、プリペイドカードによって球貸しを行うCR式パチンコ遊技機だけではなく、現金によって球貸しを行うパチンコ遊技機にも適用可能である。すなわち、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(図21)に記憶される。
特別可変入賞球装置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に示すように、始動入賞口である普通可変入賞球装置6や、大入賞口である特別可変入賞球装置7、その他の入賞口への遊技球の入賞等を検出するための各入賞口スイッチ70からの配線も接続されている。さらに、主基板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)分週して生成した基準クロック信号を乱数回路103に出力する。リセットコントローラ102は、ローレベルの信号が一定期間入力されたとき、CPU106及び乱数回路103等に所定の初期化信号を出力して、遊技制御用マイクロプロセッサ100をシステムリセットする。
図4は、乱数回路103の構成例を示すブロック図である。図4に示すように、乱数回路103は、数値更新手段として機能するカウンタ121と、更新範囲規制手段として機能する比較器122と、カウント値順列変更回路123と、クロック信号生成手段としての機能を含むクロック信号出力回路124と、カウント値取込信号出力回路126と、乱数回路起動信号出力回路130と、乱数値格納手段として機能する乱数値レジスタ(RND)131と、から構成されている。乱数回路103は、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定する大当り判定用の乱数であるランダムRを発生する。
カウンタ121は、カウント値の更新を指示するカウント値更新信号に応答して、出力するカウント値を、一定の規則に従って、初期値から最終値まで循環的に更新する。そして、カウンタ121は、カウント値を最終値まで更新すると、その旨を通知する通知信号をCPU106に出力し、この通知信号に応答したCPU106により初期値が変更される。この実施の形態において、カウンタ121は、カウント値更新信号が入力される毎に、カウント値を「1」から「4095」まで1ずつカウントアップして行き、「4095」までカウントアップすると、その旨を通知する通知信号をCPU106に出力する。そして、この通知信号に応答したCPU106により、初期値が変更され、カウンタ121は、この変更された初期値から再び「4095」までカウントアップする。
カウント値順列変更回路123は、カウント値の更新順である順列の変更を要求するカウント値順列変更データ「01h」を格納するカウント値順列変更レジスタ(RSC)133と、更新規則選択レジスタ(RRC)141と、更新規則メモリ142と、を備える。カウント値順列変更回路123は、カウント値順列変更レジスタに数値順列変更データ「01h」が格納されているとき、カウント値順列変更データ「01h」が格納されていないときの順列とは異なる順列に変更する。
図5は、更新規則選択レジスタ141の構成例を示すブロック図である。図5に示すように、更新規則選択レジスタ141は、8ビットレジスタであり、その初期値は、「0(=00h)」に設定されている。更新規則選択レジスタ141は、ビット0〜ビット3が書込可能及び読出可能に、ビット4〜ビット7が書込不能及び読出不能に構成されている。したがって、更新規則選択レジスタ141のビット4〜ビット7に値を書き込んでも、その値は無効であり、ビット4〜ビット7から読み出した値は全て「0(=0000b)」となる。
更新規則選択レジスタ141の値(レジスタ値)は、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」が書き込まれたことに応答して、「0(=00h)」から「15(=0Fh)」まで循環的に更新される。すなわち、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」が書き込まれる毎に、レジスタ値は、「0」から「1」ずつ加算され、「15」になると再び「0」に戻る。
図6は、更新規則メモリ142の構成例を示すブロック図である。図6に示すように、更新規則メモリ142は、カウント値の更新規則と、更新規則選択レジスタ141の値と、を対応付けて格納している。更新規則メモリ142には、カウンタ121の更新規則と同一の更新規則Aがレジスタ値「0」と対応して格納され、カウンタ121の更新規則とは異なる更新規則B〜Pがレジスタ値「1」〜「15」と対応して格納されている。
図4に示すカウント値順列変更回路123は、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」が書き込まれているとき、カウンタ121からカウント値の最終値「4095」が入力されると、更新されたレジスタ値に基づいて、更新規則メモリ142のうちから更新規則を選択して設定することにより、出力するカウント値の更新規則を切り替える。そして、カウント値順列変更回路123は、カウンタ121からの入力に応答して、この切り替えた更新規則に従って、カウント値を更新して出力する。
このように、カウント値順列変更回路123は、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」が書き込まれたことに応答して、更新規則を切り替えることにより、出力するカウント値の順列を変更する。
図7は、カウント値順列変更回路123におけるカウント値順列の変更動作の説明図である。図7に示すように、CPU106により所定のタイミングにカウント値順列変更データ「01h」がカウント値順列変更レジスタ133に書き込まれると、レジスタ値は、1加算され、例えば「0」から「1」に更新される。この後、カウント値順列変更回路123は、カウンタ121からカウント値の最終値「4095」が入力されるまで、更新前のレジスタ値「0」に対応する「更新規則A」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路123から出力されるカウント値の順列は、「1→2→…→4095」である。
そして、カウンタ121からカウント値の最終値「4095」が入力されると、カウント値順列変更回路123は、更新規則メモリ142から、更新後のレジスタ値「1」に対応する「更新規則B」を選択して設定する。カウント値順列変更回路123は、カウンタ121からの入力に応答して、この選択設定した「更新規則B」に従って、カウント値を更新して出力する。これにより、カウント値順列変更回路123から出力されるカウント値の順列は、「1→2→…→4095」から「4095→4094→…→1」に変更される。
この後、後述するようにカウント値順列変更レジスタ133は初期化され、カウント値順列変更回路123から出力されるカウント値の順列は、「4095→4094→…→1」のままとなる。
CPU106によりカウント値順列変更データ「01h」がカウント値順列変更レジスタ133に再度書き込まれると、レジスタ値は「1」から「2」に更新される。そして、カウンタ121からカウント値の最終値「4095」が入力されると、カウント値順列変更回路123は、更新規則メモリ142から、レジスタ値「2」に対応する「更新規則C」を選択して設定する。カウント値順列変更回路123は、カウンタ121からの入力に応答して、この選択設定した「更新規則C」に従って、カウント値を更新して出力することにより、カウント値の順列は、さらに変更され、「1→3→…→4095→2…→4094」となる。
このように、カウント値順列変更レジスタ133が初期化された後、カウント値順列変更データ「01h」をカウント値順列変更レジスタ133に再度書き込むことにより、変更したカウント値の順列をさらに変更することができる。
図8は、カウント値順列変更レジスタ133の構成例を示す図である。図8に示すように、カウント値順列変更レジスタ133は、読出可能な8ビットレジスタであり、その初期値は、「0(=00h)」に設定されている。また、カウント値順列変更レジスタ123は、ビット0のみが書込可能及び書込可能に構成され、したがって、ビット1〜ビット7に値を書き込んでも、その値は無効であり、ビット1〜ビット7から読み出した値は全て「0(=0000000b)」となる。
なお、カウント値順列変更回路123が、切り替えた更新規則に従ってカウント値の更新動作を開始したことに応答して、CPU106は、カウント値順列変更データ「01h」が書き込まれたカウント値順列変更レジスタ133を初期化して格納されている値を初期値である「0(=00h)」に戻す。
比較器122は、ランダムRの最大値(乱数最大値)を指定する乱数最大値設定データを格納する乱数最大値設定レジスタ(RMX)132を備える。比較器122は、乱数最大値設定レジスタ132に格納されている乱数最大値設定データに応じて、カウンタ121によるカウント値の更新範囲を規制する。この実施の形態において、カウンタ121から入力されたカウント値と乱数最大値設定レジスタ132に格納されている乱数最大値設定データ(例えば「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における動作により、乱数最大値設定レジスタ132に格納されている乱数最大値以下のカウント値のみを乱数値レジスタ131に出力することにより、乱数回路103は、乱数最大値設定レジスタ131に格納した乱数最大値「255」を上限としたランダムRを発生することができる。また、初期値が乱数最大値以下になるまで変更されることにより、乱数値レジスタ131には、乱数最大値「255」以下の値が、変更された初期値として入力される。
図10は、乱数最大値設定レジスタ132の構成例を示すブロック図である。図10に示すように、乱数最大値設定レジスタ132は、16ビットレジスタであり、その初期値は、「4095(=0FFFh)」に設定されている。乱数最大値設定レジスタ132は、ビット0〜ビット11が書込可能及び読出可能に、ビット12〜ビット15が書込不能及び読出不能に構成されている。したがって、乱数最大値設定レジスタ132のビット12〜ビット15に値を書き込んでも、その値は無効であり、ビット12〜ビット15から読み出した値は全て「0(=0000b)」となる。
また、乱数最大値設定レジスタ132に下限値「4」より小さい値を指定する乱数最大値設定データ「0000h」〜「0003h」が書き込まれた場合、乱数最大値設定レジスタ132には、CPU106により、初期値「4095」を指定する乱数最大値設定データ「0FFFh」が格納される。即ち、乱数最大値設定レジスタ132に設定可能な乱数最大値は、「4」から「4095」までである。なお、CPU106は、リセットコントローラ102により遊技制御用マイクロプロセッサ100がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ132を書込不能に制御する。
図4に示すクロック信号出力回路124は、乱数値レジスタ131に出力するクロック信号の周期(カウント値の更新周期)を指定する周期設定コマンドを格納する周期設定レジスタ(RPS)134を備える。クロック信号出力回路124は、周期設定レジスタ134に格納されている周期設定コマンドに基づいて、乱数回路103外部のクロック回路101から入力される基準クロック信号を分週して、乱数回路103内部で用いるクロック信号(内部クロック信号)を生成し、この生成した内部クロック信号を乱数値レジスタ131に出力する。
例えば、周期設定レジスタ134に書き込まれた周期設定コマンドが「0Fh(=16)」の場合、クロック信号出力回路124は、クロック回路101から入力される基準クロック信号を16分週して内部クロック信号を生成する。この生成された内部クロック信号の周期は、「システムクロック信号の周期×128×16」となる。
図11は、周期設定レジスタ134の構成例を示すブロック図である。図11に示すように、周期設定レジスタ134は、書込可能及び読出可能な8ビットレジスタであり、その初期値は、「256(=FFh)」に設定されている。
また、周期設定レジスタ134に下限値「システムクロック信号の周期×128×7」より小さい値を指定する周期設定コマンド「00h〜06h」が書き込まれた場合、CPU106は、周期設定レジスタ134に下限値「システムクロック信号の周期×128×7」を指定する周期設定コマンド「07h」を格納する。即ち、周期設定レジスタ134に設定可能な周期は、「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までである。なお、CPU106は、リセットコントローラ102により遊技制御用マイクロプロセッサ100がシステムリセットされるまで、周期設定コマンドが書き込まれた周期設定レジスタ134を書込不能に制御する。
図4に示すカウント値取込信号出力回路126は、カウント値の取込を要求するカウント値取込コマンド「01h」を格納するカウント値取込レジスタ(RLT)136を備える。カウント値信号出力回路126は、カウント値取込レジスタ136にカウント値取込コマンド「01h」が書き込まれたことに応答して、カウント値取込信号を乱数値レジスタ131に出力する。
図12は、カウント値取込レジスタ136の構成例を示すブロック図である。図12に示すように、カウント値取込レジスタ136は、読出不能な8ビットレジスタであり、ビット0のみが書込可能に構成され、ビット1〜ビット7に値を書き込んでも、その値は無効である。
乱数値レジスタ131は、後述するステップS122の入賞処理において抽出されるランダムRの値を格納する。乱数値レジスタ131は、第2のセレクタ129から出力されるカウント値取込信号を応答して、カウンタ121から比較器122を介して出力されるカウント値をランダムRの値として格納することにより、ランダムRの値を更新する。
図13は、乱数値レジスタ131の構成例を示すブロック図である。図13に示すように、乱数値レジスタ131は、書込不能な16ビットレジスタであり、その初期値は、「0001h」に設定されている。乱数値レジスタ131は、ビット0〜ビット11が読出可能に、ビット12〜ビット15が読出不能に構成されている。したがって、乱数値レジスタ131のビット12〜ビット15から読み出した値は全て「0(=0000b)」となる。
図4に示す乱数回路起動信号出力回路130は、乱数回路103の起動を要求する乱数回路起動データ「80h」を格納する乱数回路起動レジスタ(RST)140を備える。乱数回路起動信号出力回路130は、乱数回路起動レジスタ140に乱数回路起動データ「80h」が書き込まれたことに応答して、所定の乱数回路起動信号を出力し、カウンタ121とクロック信号出力回路124とをオンして、カウンタ121によるカウント値の更新動作とクロック信号出力回路124による内部クロック信号の出力動作とを開始させることにより、乱数回路103を起動させる。
図14は、乱数回路起動レジスタ140の構成例を示すブロック図である。図14に示すように、乱数回路起動レジスタ140は、8ビットレジスタであり、その初期値は、「00h」に設定されている。乱数回路起動レジスタ140は、ビット7のみが読出可能及び読出可能に構成され、ビット0〜ビット6に値を書き込んでも、その値は無効であり、ビット0〜ビット6から読み出した値は全て「0(=0000b)」となる。
図15は、図3に示す遊技制御用マイクロプロセッサ100におけるアドレスマップの一例を示す図である。図15に示すように、0000h番地〜1FFFh番地の領域は、ROM104に割り当てられ、7E00h番地〜7FFFh番地の領域は、RAM105に割り当てられ、FD00h番地〜FE00h番地の領域は、乱数最大値設定レジスタ132等の内蔵レジスタに割り当てられている。
ROM104における0000h番地〜1F7Fh番地の領域のユーザプログラムエリアには、ユーザにより予め作成されたプログラム(ユーザプログラム)150が記憶され、1F80h番地〜1FFFh番地の領域のユーザプログラム管理エリアには、CPU106がユーザプログラム150を実行するために必要となるデータ(ユーザプログラム実行データ)が記憶されている。また、RAM105における7E00h番地〜7EFFh番地の領域は、使用されておらず、7EFFh番地〜7FFFh番地は、ワークエリアとして使用されている。
図16は、図15に示すユーザプログラム実行データエリアにおけるアドレスマップの一例を示す図である。図16に示すように、1F97h番地の領域には、初期値を変更する方式である第1,第2及び第3の初期値変更方式のうちからユーザが選択した初期値変更方式を指定する初期値変更方式設定コマンドが記憶されている。1F98h番地の領域には、RAM105に割り当てられた7EFFh番地〜7FFFh番地のうちから、ユーザにより予め指定されたRAM105における番地(指定RAM番地)を特定するRAM番地データが下位の値として記憶されている。1F99h番地の領域には、指定RAM番地の次の番地のRAM番地データが上位の値として記憶されている。
図17は、ユーザにより選択される初期値変更方式設定コマンドの一例の説明図である。図17に示すように、初期値変更コマンドは、8ビットのデータから構成され、「00h」は、初期値を変更しないことを指定するコマンドであり、「01h」は、第1の初期値変更方式を指定するコマンドである。また、「02h」は、第2の初期値変更方式を指定するコマンドであり、「03h」は、第3の初期値変更方式を指定するコマンドである。
図18は、ユーザプログラム150の構成例を示す図である。この実施の形態において、ユーザプログラム150は、図18に示すように、複数種類のプログラムモジュールから構成される乱数回路設定プログラム151と、表示結果決定プログラム152と、初期値変更プログラム153と、カウント値順列変更プログラム154と、を含んで構成されている。
乱数回路設定プログラム151は、乱数回路103にランダムRの値を更新させるための設定を行う乱数回路設定処理を実行するためのプログラムであり、CPU106は、この乱数回路設定プログラム151を実行することにより、乱数回路設定手段として機能する。
図19は、乱数回路設定プログラム151の構成例を示す図である。図19に示すように、乱数回路設定プログラム151は、前述した複数種類のプログラムモジュールとして、乱数最大値設定モジュール151aと、周期設定モジュール151cと、乱数回路起動モジュール151dと、を含んで構成されている。
乱数最大値設定モジュール151aは、ユーザにより予め設定されたランダムRの最大値を乱数回路103に設定するためのプログラムモジュールである。CPU106は、この乱数最大値設定モジュール151aを実行して、ユーザにより予め設定されたランダムRの最大値を指定する乱数最大値設定データを書き込むことにより、この予め設定されたランダムRの最大値を乱数回路103に設定する。例えば、ユーザにより予め設定されたランダムRの最大値が「255」の場合、CPU106は、乱数最大値設定レジスタ132に乱数最大値設定データ「00FFh」を書き込んで、ランダムRの最大値「255」を乱数回路103に設定する。
周期設定モジュール151cは、ユーザにより予め設定された内部クロック信号の周期を乱数回路103に設定するためのプログラムモジュールである。CPU106は、この周期設定モジュール151cを実行して、ユーザにより予め設定された内部クロック信号の周期を指定する周期設定コマンドを周期設定レジスタ134に書き込むことにより、この予め設定された内部クロック信号の周期を乱数回路103に設定する。例えば、ユーザにより予め設定された内部クロック信号の周期が「システムクロック信号の周期×128×16」の場合、CPU106は、周期設定レジスタ134に周期設定コマンド「0Fh」を書き込んで、内部クロック信号の周期「システムクロック信号の周期×128×16」を乱数回路103に設定する。
乱数回路起動モジュール151dは、乱数回路103を起動させるためのプログラムモジュールである。CPU106は、この乱数回路起動モジュール151dを実行して、乱数回路起動コマンド「80h」を乱数回路起動レジスタ140に書き込むことにより、乱数回路103を起動させる。
表示結果決定プログラム152は、特図ゲームにおける表示結果を大当りとするか否かを決定するためのプログラムであり、CPU106は、この表示結果決定プログラム152を実行することにより、表示結果決定手段として機能する。
CPU106は、遊技球が普通可変入賞球装置6に入賞して特別図柄の可変表示(特図ゲーム)を実行するための条件(実行条件)が成立したことに応じて、この表示結果決定プログラム152を実行することにより、乱数値レジスタ131に格納されているランダムRの値を更新させ、乱数値レジスタ131からこの更新させたランダムRの値を読み出して、可変表示装置4による特図ゲームの表示結果を大当りとするか否かを決定する。
図20は、CPU106によるランダムRの値の更新動作の説明図である。図20に示すように、CPU106は、カウント値取込コマンド「01h」をカウント値取込レジスタ136に書き込むことにより、カウンタ121から出力されるカウント値(例えば「2」)を乱数値レジスタ131に取り込ませて、乱数値レジスタ131に格納されているランダムRの値を更新させる。そして、乱数値レジスタ131からこの更新させたランダムRの値(例えば「2」)を読み出す。
なお、CPU106がカウント値取込コマンド「01h」をカウント値取込レジスタ136に書き込まなければ、カウンタ121から出力されるカウント値が更新されていても、乱数値レジスタ131に格納されている乱数値は更新されない。例えば、CPU106がカウント値取込コマンド「01h」をカウント値取込レジスタ136に書き込み、カウンタ121から出力されるカウント値「3」を乱数値レジスタ131に取り込ませて、乱数値レジスタ131に格納されているランダムRの値「3」を更新させた場合、その後、CPU106がカウント値取込コマンド「01h」をカウント値取込レジスタ136に書き込まなければ、カウンタ121から出力されるカウント値が「3」から「4」や「5」に更新されていても、乱数値レジスタ131に格納されている乱数値は更新されず、乱数値レジスタ131から読み出される乱数値は「3」のままとなる。
図18に示す初期値変更プログラム153は、カウンタ121により更新されるカウント値の初期値を変更させるためのプログラムであり、CPU106は、この初期値変更プログラム153を実行することにより、初期値変更手段として機能する。CPU106は、この初期値変更プログラム153を実行して、第1,第2及び第3の初期値変更方式のうちからユーザが選択した初期値変更方式により、カウンタ121により更新されるカウント値の初期値を変更させる。これにより、遊技制御用マイクロプロセッサ100は、初期値を変更させる方式を第1,第2及び第3の初期値変更方式のうちから選択する機能を発揮することができる。
より詳細に説明すれば、図16に示すユーザプログラム実行データエリアの1F97h番地の領域に第1の初期値変更方式を指定する初期値変更方式設定データ「01h」が記憶されている場合、CPU106は、初期値を遊技制御用マイクロプロセッサ100固有のID(Identification)ナンバに基づいて設定された値に変更させる。
また、ユーザプログラム実行データエリアの1F97h番地の領域に第2の初期値変更方式を指定する初期値変更方式設定データ「02h」が記憶されている場合、CPU106は、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている番地データから指定RAM番地を特定し、特定した指定RAM番地の領域に格納されている値を読み出し、初期値を読み出した値に変更させる。
ユーザプログラム実行データエリアの1F97h番地の領域に第3の初期値変更方式を指定する初期値変更方式設定データ「03h」が記憶されている場合、CPU106は、RAM105の各番地に格納されている値を読み出し、この読み出した値を加算する。そして、CPU106は、初期値をこの加算値に変更させる。
図18に示すカウント値順列変更プログラム154は、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」を書き込んで、乱数値レジスタ131に格納されているカウント値の順列を変更するカウント値順列変更処理を実行ためのプログラムであり、CPU106は、このカウント値順列変更プログラム154を実行することにより、数値データ順列変更手段として機能する。CPU106は、このカウント値順列更新プログラム154を実行して、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」を書き込むことにより、カウント値順列変更回路123から出力され、乱数値レジスタ131に入力されるカウント値の順列を変更させる。
また、図3に示す遊技制御用マイクロプロセッサ100は、図21に示すように、特図保留メモリ170と、大当り判定テーブルメモリ171と、フラグメモリ172と、を備えている。
特図保留メモリ170は、遊技球が普通可変入賞球装置6に入賞して特別図柄の可変表示(特図ゲーム)を実行するための条件(実行条件)が成立したが、従前の可変表示を実行中である等の理由のために可変表示を実際に開始するための条件(開始条件)が成立していない保留状態を記憶するためのメモリである。特図保留メモリ170は、4つのエントリを備え、各エントリには、普通可変入賞球装置6への入賞順に、保留番号と、その入賞に応じて乱数値レジスタ131から読み出したランダムRの値とが対応付けて格納される。主基板11から表示制御基板12へ特別図柄確定コマンドが送出されて特別図柄の可変表示が1回終了したり、大当り遊技状態が終了したりするごとに、最上位の情報に基づいた可変表示の開始条件が成立し、最上位の情報に基づいた可変表示が実行される。このとき、第2位以下の登録情報が1位ずつ繰り上がる。また、特別図柄の可変表示中等に遊技球が普通可変入賞球装置6に新たに入賞した場合には、その入賞に基づいて乱数値レジスタ131から読み出されたランダムRの値が最上位の空エントリに登録される。
図21に示す大当り判定テーブルメモリ171は、CPU106が特図ゲームにおける表示結果を大当りとするか否かを判定するために設定される複数の大当り判定テーブルを記憶する。具体的には、大当り判定テーブルメモリ171は、図22(A)に示す通常時大当り判定テーブル171a、図22(B)に示す確変時大当り判定テーブル171bを格納する。
図22(A)に示す通常時大当り判定テーブル171aと、図22(B)に示す確変時大当り判定テーブル171bと、は、可変表示装置4による特図ゲームの表示結果を大当りとするか否かを判定するためのテーブルである。各大当り判定テーブル171a、171bでは、ランダムRの値と特図ゲームの表示結果を示す設定データとが対応付けて格納されている。そして、確変時大当り判定テーブル171bでは、通常時大当り判定テーブル171aに比べてより多くのランダムRの値が、「大当り」の表示結果と対応付けられている。すなわち、確変時大当り判定テーブル171bを用いて特図ゲームの表示結果を決定することで、通常遊技状態のときよりも大当り遊技状態となる確率が高い確率向上状態とすることができる。
図21に示すフラグメモリ172は、パチンコ遊技機1において遊技の進行を制御するために用いられる各種のフラグが設定される。例えば、フラグメモリ172には、特別図柄プロセスフラグ、普通図柄プロセスフラグ、大当り状態フラグ、入力状態フラグ、タイマ割込フラグ、初期値変更フラグなどが設けられている。
特別図柄プロセスフラグは、後述する特別図柄プロセス処理(図27)において、どの処理を選択・実行すべきかを指示する。普通図柄プロセスフラグは、普通図柄表示器40の表示状態を所定の順序で制御するために、所定の普通図柄プロセス処理においてどの処理を選択・実行すべきかを指示する。大当り状態フラグは、可変表示装置4による特図ゲームの表示結果が大当りとなるときにオン状態にセットされ、大当り遊技状態が終了するときにクリアされてオフ状態となる。
入力状態フラグは、I/Oポート108に入力される各種信号の状態や各入賞口スイッチ70から入力される検出信号の状態等に応じて各々セットあるいはクリアさせる複数ビットからなるフラグである。タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。初期値変更フラグは、乱数回路103から通知信号が出力されたことに応答してオン状態にセットされ、初期値が変更されたときにクリアされてオフ状態となる。
図3に示すスイッチ回路109は、各入賞口スイッチ70からの検出信号を取り込んで、遊技制御用マイクロプロセッサ100に伝達する。ソレノイド回路110は、遊技制御用マイクロプロセッサ100からの指令に従って各ソレノイド21、22を駆動する。ソレノイド21は、リンク機構を介して普通可変入賞球装置6の可動翼片に連結されている。ソレノイド22は、リンク機構を介して特別可変入賞球装置7の開閉板に連結されている。
表示制御基板12は、主基板11から受信した制御コマンドに従って演出制御を行うためのものである。具体的には、表示制御基板12は、可変表示装置4の表示制御や、遊技効果ランプ9及び普通図柄表示器40の点灯制御を行う。
音声制御基板13、ランプ制御基板14は、主基板11から送信される制御コマンドに基づいて、音声出力制御、ランプ出力制御を、それぞれ主基板11とは独立して実行するサブ側の制御基板である。払出制御基板15は、遊技球の貸出や賞球等の払出制御を行うものである。情報端子基板16は、各種の遊技関連情報を外部に出力するためのものである。
図23は、遊技制御用マイクロプロセッサ100にてCPU106が実行する遊技制御メイン処理のフローチャートである。パチンコ遊技機1に対する電源が投入されると、遊技制御メイン処理が開始され、まず、CPU106は、割込禁止に設定し(ステップS1)、続いて、割込モードをモード2に設定する(ステップS2)。
この後、CPU106は、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、遊技制御用マイクロプロセッサ100の主基板11の内蔵デバイスであるCTC107などのレジスタ設定を行う(ステップS4)。例えば、CTC107に対して、割込ベクタを設定する。
ステップS4に続いて、CPU106は、例えばRAM105に設けられたバックアップフラグ領域をチェックするなどして(ステップS5)、前回の電源断時にRAM104の全部又は一部について所定のデータ保護処理によるバックアップがなされたか否かを判別する(ステップ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の値を更新させるための設定が行われる。
図24は、ステップS10の乱数回路設定処理を示すフローチャートである。この乱数回路設定処理において、CPU106は、まず、乱数回路設定プログラム151に含まれる乱数最大値設定モジュール151aを実行して、ユーザにより予め設定された乱数最大値を指定する乱数最大値設定データを乱数最大値設定レジスタ132に書き込むことにより、この予め設定されたランダムRの最大値を乱数回路103に設定する(ステップS21)。
続いて、CPU106は、乱数回路設定プログラム151に含まれる周期設定モジュール151cを実行して、ユーザにより予め設定された内部クロック信号の周期を指定する周期設定コマンドを周期設定レジスタ134に書き込むことにより、この予め設定された内部クロック信号の周期を乱数回路103に設定する(ステップS22)。
この後、CPU106は、乱数回路設定プログラム151に含まれる乱数回路起動モジュール151dを実行して、乱数回路起動コマンド「80h」を乱数回路起動レジスタ140に書き込むことにより、乱数回路103を起動させる(ステップS23)。
ステップS10の乱数回路設定処理に続いて、CPU106は、CTC107によるタイマ割込みのための設定を行う(ステップS11)。具体的には、CTC107に対して、CTC107が備える複数のチャネルのうちの1つ(具体的には、第0チャネルから第3チャネルのうちの第3チャネル)に割込許可を与えてタイマモードで動作させるとともに、当該チャネルのカウント初期値を指定する。これにより、以後、所定時間(例えば2ミリ秒)ごとにCTC107から割込要求信号がCPU106へ送出され、CPU106は定期的にタイマ割込処理を実行することができる。
この後、CPU106は、CTC107からの割込要求信号によるタイマ割込が発生したか否かを監視するためのループ処理に移行する。このループ処理では、割込禁止に設定した後(ステップS12)、表示用乱数更新処理(ステップS13)が実行され、表示用乱数更新処理が完了すると、割込許可に設定する(ステップS14)。
図23に示す遊技制御メイン処理を実行したCPU106は、CTC107からの割込要求信号を受信して割込要求を受け付けると、図25に示す遊技制御割込処理の実行を開始する。
遊技制御割込処理を開始すると、CPU106は、所定の電源断処理を実行することにより、電源基板10から供給される電力が低下したときなどに所定のデータ保護処理等を実行可能とする(ステップS101)。続いて、所定のスイッチ処理を実行することにより、各入賞口スイッチ70から入力される検出信号の状態を判定する(ステップS102)。
次に、CPU106は、表示用乱数更新処理(ステップS103)を実行する。続いて、CPU106は、初期値変更プログラム153を実行して、初期値変更処理を行う(ステップS104)。
図26は、ステップS104の初期値変更処理を示すフローチャートである。この初期値変更処理において、CPU106は、まず、フラグメモリ172に設けられた初期値変更フラグをチェックすることにより、乱数回路103から通知信号が出力されたか否かを判別する(ステップS171)。初期値フラグがオフ状態にある場合(ステップS171;No)、カウンタ121のカウント値が最終値までカウントアップされていないと判別して初期値変更処理を終了する。一方、初期値フラグがオン状態にある場合(ステップS171;Yes)、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データを読み出して、ユーザが選択した初期値変更方式を特定する(ステップS172,S173及びS174)。
第1の初期値変更方式を指定する初期値変更方式設定データ「01h」が記憶されている場合(ステップS172;Yes)、CPU106は、初期値を遊技制御用マイクロプロセッサ100固有のID(Identification)ナンバに基づいて設定された値に変更させる(ステップS175)。
第2の初期値変更方式を指定する初期値変更方式設定データ「02h」が記憶されている場合(ステップS172;No,ステップS173;Yes)、CPU106は、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されているRAM番地データから指定RAM番地を特定し、特定した指定RAM番地の領域に格納されている値を読み出す(ステップS176)。そして、CPU106は、初期値を読み出した値に変更させる(ステップS177)。
第3の初期値変更方式を指定する初期値変更方式設定データ「03h」が記憶されている場合(ステップS172;No,ステップS173;No,ステップS174;Yes)、CPU106は、RAM105の各番地に格納されている値を読み出して(ステップS178)、読み出した値を加算する(ステップS179)。そして、CPU106は、初期値をこの加算値に変更させる(ステップS180)。
また、ステップS172,ステップS173及びステップS174にてNoと判別した場合、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データを「00h」と判別し、初期値を変更せず、そのままステップS181に進む。
この後、CPU106は、初期値変更フラグをクリアしてオフ状態とし(ステップS181)、初期値変更処理を終了する。
続いて、CPU106は、カウント値順列変更プログラム154を実行して、カウント値順列変更処理を行う(ステップS105)。このカウント値順列更新処理において、CPU106は、カウント値順列変更レジスタ133にカウント値順列変更データ「01h」を書き込むことにより、乱数値レジスタ131に入力されるカウント値の順列を変更させる。
そして、特別図柄プロセス処理を実行する(ステップS106)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選択されて実行される。特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
また、CPU106は、普通図柄プロセス処理を実行する(ステップS107)。普通図柄プロセス処理では、普通図柄表示器40を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選択されて実行される。普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。さらに、特別図柄コマンド制御処理(ステップS108)と、普通図柄コマンド制御処理(ステップS109)と、を順次実行する。これにより、CPU106は、主基板11から表示制御基板12に対して表示制御コマンドを送ることにより、可変表示装置4の表示制御や普通図柄表示器40の点灯制御を指示する。
続いて、CPU106は、所定の情報出力処理を実行することにより、各種出力データをI/Oポート108に含まれる各出力ポートに出力する(ステップS110)。この情報出力処理では、主基板11から情報端子基板16に、大当り情報、始動情報、確率可変情報などをホール管理用コンピュータに対して出力する指令の送出も行われる。
また、CPU106は、所定の賞球処理を実行することにより、各入賞口スイッチ70から入力された検出信号に基づく賞球数の設定などを行い、払出制御基板15に対して払出制御コマンドを出力可能とする(ステップS111)。さらに、CPU103は、所定のソレノイド出力処理を実行することにより、所定の条件が成立したときに普通可変入賞球装置6における可動翼片や特別可変入賞球装置7における開閉板の開閉駆動を行う(ステップS112)。
図27は、ステップS104にて実行される特別図柄プロセス処理を示すフローチャートである。特別図柄プロセス処理を開始すると、CPU106は、まず、表示結果決定プログラム152を実行して、遊技球が普通可変入賞球装置6に入賞したか否かを、各入賞口スイッチ70に含まれる始動球検出スイッチから入力される検出信号や、フラグメモリ172に設けられた入力状態フラグなどをチェックすることにより、判別する(ステップS121)。遊技球が入賞して始動球検出スイッチからの検出信号がオン状態となった場合(ステップS121;Yes)、入賞処理を実行し(ステップS122)、遊技球が入賞していない場合(ステップS121;No)、入賞処理をスキップする。
図28は、ステップS122の入賞処理を示すフローチャートである。この入賞処理において、CPU106は、まず、特図保留メモリ170が記憶している始動入賞記憶数が最大値の「4」であるか否かを判別する(ステップS141)。ここで、特図保留メモリ170において、始動入賞記憶番号「4」に対応したランダムRの値が記憶されている場合には、始動入賞記憶数が「4」であると判別される。
始動入賞記憶数が「4」であるときには(ステップS141;Yes)、今回の入賞による始動検出は無効として、そのまま入賞処理が終了する。一方、始動入賞記憶数が「4」未満であるときには(ステップS141;No)、カウント値取込データ「01h」をカウント値取込レジスタ136に書き込んで、乱数値レジスタ131に格納されているランダムRの値を更新させる(ステップS142)。
続いて、CPU106は、乱数値レジスタ131からこの更新させたランダムRの値を読み出し(ステップS143)、この読み出したランダムRの値を、例えばRAM105に設けられた所定のバッファ領域に格納した後(ステップS144)、始動入賞記憶数を「1」加算する(ステップS145)。そして、CPU106は、所定のバッファ領域に格納したランダムRの値を特図保留メモリ170の空エントリの先頭にセットする(ステップS146)。
この後、CPU106は、フラグメモリ172に格納されている特別図柄プロセスフラグの値に基づいて、図27に示すステップS130〜S138の9個の処理のいずれかを選択する。以下に、ステップS130〜S138の各処理について説明する。
ステップS130の特別図柄通常処理は、特別図柄プロセスフラグの値が初期値「0」のときに実行される処理である。この処理において、CPU106は、特図保留メモリ170が記憶している保留記憶数が「0」であるか否かを判別する。ここで、特図保留メモリ170において、保留番号「1」に対応したランダムR1の値等の各種データが記憶されていない場合には、保留記憶数が「0」であると判別される。保留記憶数が「0」であれば、表示制御基板12を介して可変表示装置4上にデモンストレーション画面を表示するなどして、特別図柄通常処理を終了する。一方、保留記憶数が「0」ではないと判別すると、特別図柄プロセスフラグの値を大当り判定処理に対応した値である「1」に更新する。
ステップS131の大当り判定処理は、特別図柄プロセスフラグの値が「1」のときに実行される処理である。この処理において、CPU106は、図29に示すように、まず、特図保留メモリ170から保留番号「1」に対応して格納されているランダムRの値を読み出す(ステップS151)。この際、保留記憶数を1減算し、且つ、特図保留メモリ170の第2〜第4エントリ(保留番号「2」〜「4」)に格納されたランダムRの値を1エントリずつ上位にシフトする(ステップS152)。
続いて、CPU106は、確率向上状態(確変中)であるか否かを判別し(ステップS153)、確変中ではなければ(ステップS153;No)、通常遊技状態であると判断し、特図ゲームの表示結果を大当りとするか否かを判定するためのテーブルとして、図22(A)に示すような通常時大当り判定テーブル171aを設定する(ステップS154)。これに対して、確変中であれば(ステップS153;Yes)、図22(B)に示すような確変時大当り判定テーブル171bを設定する(ステップS155)。
CPU106は、ステップS151にて読み出したランダムRの値に基づき、ステップS154又はS155にて設定した大当り判定テーブル171a又は171bを用いて特図ゲームの表示結果を大当りとするか否かを判定する(ステップS156)。そして、大当りとすることに決定した場合には(ステップS156;Yes)、フラグメモリ172に設けられた大当り状態フラグをオン状態にセットし(ステップS157)、ハズレとすることに決定した場合には(ステップS156;No)、大当り状態フラグをクリアしてオフ状態とする(ステップS158)。この後、特別図柄プロセスフラグの値を確定図柄決定処理に対応した値である「2」に更新する(ステップS159)。
図27に示すステップS132の確定図柄決定処理は、特別図柄プロセスフラグの値が「2」のときに実行される処理である。この処理において、CPU106は、フラグメモリ172に設けられた大当り状態フラグがオンとなっているか否かを判別するとともに、所定のリーチ判定用乱数を抽出した結果等に基づいて、リーチとするか否かを判別する。これらの判別結果に従って、可変表示装置4による特図ゲームにおける最終的な確定図柄が設定される。その後、特別図柄プロセスフラグの値を可変表示パターン設定処理に対応した値である「3」に更新する。
ステップS133の可変表示パターン設定処理は、特別図柄プロセスフラグの値が「3」のときに実行される処理である。この処理において、CPU106は、まず、フラグメモリ172に設けられた大当り状態フラグがオンとなっているか否かを判別するとともに、上記ステップS132の確定図柄決定処理にてリーチとすることが決定されたか否かを判別し、これらの判別結果に従って、所定の可変表示パターンテーブルを設定する。そして、所定の可変表示パターン決定用乱数を抽出した結果等に基づいて、設定した可変表示パターンテーブルのうちから、今回の特図ゲームで使用する可変表示パターンを決定する。こうして可変表示パターンを決定した後、CPU106は、特別図柄プロセスフラグの値を可変表示指令処理に対応した値である「4」に更新する。
ステップS134の可変表示指令処理は、特別図柄プロセスフラグの値が「4」のときに実行される処理である。この処理において、CPU106は、可変表示装置4において特別図柄の全図柄が可変表示を開始するように制御する。具体的には、上述したステップS132の確定図柄決定処理にて決定した特別図柄の確定図柄に対応する制御データや、ステップS133の可変表示パターン設定処理にて決定した可変表示パターンに対応する制御データを、所定のコマンド送信テーブルに設定するなどして、可変表示開始コマンドと左・中・右の図柄指定コマンドを表示制御基板12に対して送出可能に設定する。そして、可変表示パターンに対応する総可変表示時間を所定の可変表示時間タイマに設定し、可変表示開始コマンドが送信されるとともにカウントダウンを開始する。この後、所定の可変表示時間タイマがタイムアウトすると、特別図柄プロセスフラグの値を可変表示停止時処理に対応した値である「5」に更新する。
ステップS135の可変表示停止時処理は、特別図柄プロセスフラグの値が「5」のときに実行される処理である。この処理において、CPU106は、主基板11から表示制御基板12に対して特別図柄確定コマンドを送出するための設定を行う。具体的には、特別図柄確定コマンドに対応する制御データを、所定のコマンド送信テーブルに設定するなどして、特別図柄確定コマンドを表示制御基板12に対して送出可能に設定する。また、パチンコ遊技機1が確率向上状態となっているときには、確率向上状態から通常遊技状態に戻すか否かを判定し、戻すと判定すると、パチンコ遊技機1における遊技状態を確率向上状態から通常遊技状態に移行させる。そして、可変表示の表示結果が大当りになるときは、特別図柄プロセスフラグの値を大入賞口開放前処理に対応した値である「6」に更新し、ハズレとなるときには、特別図柄プロセスフラグの値を「0」に更新する。
ステップS136の大入賞口開放前処理は、特別図柄プロセスフラグの値が「6」のときに実行される処理である。この処理において、CPU106は、大入賞口としての特別可変入賞球装置7を開放する制御を開始するための設定を行う。そして、特別可変入賞球装置7を開放する制御を開始するとともに、特別図柄プロセスフラグの値を大入賞口開放中処理に対応した値である「7」に更新する。
ステップS137の大入賞口開放中処理は、特別図柄プロセスフラグの値が「7」のときに実行される処理である。この処理において、CPU106は、開成された特別可変入賞球装置7への遊技球の入賞検出、賞球の払出指令、開成時間の計測、及び開成サイクルのラウンド数表示のための表示制御コマンド設定等を行う。そして、例えば、1回の大当りについて、特別可変入賞球装置7の開成回数をカウントし、開成回数が例えば16回に達していれば、特定遊技状態(大当り遊技状態)を終了する条件が終了したとして特別図柄プロセスフラグの値を大当り終了処理に対応した値である「8」に更新する。一方、開成回数が16回に達していなければ、特別可変入賞球装置7を一旦閉成した後、所定時間が経過するのを待って再度開成する。
ステップS138の大当り終了処理は、特別図柄プロセスフラグの値が「8」のときに実行される処理である。この処理において、CPU106は、表示制御基板12に対して所定の大当り終了コマンドを送出するための設定を行うなどして、大当り遊技状態を終了させる。また、CPU106は、フラグメモリ172に設けられた大当り状態フラグをクリアしてオフ状態とする。そして、特別図柄プロセスフラグの値を「0」に更新する。
以上説明したように、この実施の形態によれば、CPU106は、パチンコ遊技機1に電源が投入され、遊技制御メイン処理が開始された後、タイマ割込処理の実行を許可してループ処理に移行する前に、乱数回路設定プログラム151を実行して乱数回路設定処理を行うため、限られた割り込み処理時間(例えば2ミリ秒)の間で乱数発生のための処理を開始・終了する必要はなくなり、遊技制御用マイクロプロセッサ100の処理負担の増加を防止することができる。
なお、好適には、この乱数回路設定処理は、遊技状態復旧処理の実行後又はRAM105のクリアや所定の作業領域に対する初期設定などの初期化処理の実行後、タイマ割込処理の実行を許可してループ処理に移行する前に、実行されることが望ましい。
また、CPU106は、乱数回路103が発生するランダムRを用いて特図ゲームおける表示結果を大当りとするか否かを決定するため、ROM105等に記憶するプログラムの容量を削減することができる。
さらに、ランダムRの値は、乱数回路103にて更新されるので、ソフトウェアで更新するものに比べて、ROM104等が記憶するプログラムの容量を少なくすることできる。
さらに、乱数値レジスタ131に格納されているランダムRの値を、乱数回路設定プログラム151を実行してなされた設定に従って、更新させることができるため、パチンコ遊技機1毎に異なる設定を行うことにより、乱数値レジスタ131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられるランダムRのランダム性を高めることができる。
より詳細には、CPU106は、乱数値設定プログラム151に含まれる乱数最大値設定モジュール151a及び周期設定モジュール151cを実行して、ユーザがパチンコ遊技機1毎に適宜設定したランダムRの最大値及び内部クロック信号の周期(カウント値の更新周期)を乱数回路103に設定し、その後、乱数回路起動モジュール151dを実行して乱数回路103を起動させる。このようにして乱数回路103に設定されたランダムRの最大値及び内部クロック信号の周期に従って、乱数値レジスタ131に格納されているランダムRの値を更新させることにより、乱数値レジスタ131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられるランダムRのランダム性を高めることができる。
また、カウント値順列変更プログラム154を実行して、カウント値の更新順である順列を変更させることにより、乱数値レジスタ131に入力されるカウント値のランダム性が高まる結果、乱数値レジスタ131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられるランダムRのランダム性を高めることができる。
さらに、カウント値順列変更回路123が、切り替えた更新規則に従ってカウント値の更新動作を開始したことに応答して、CPU106は、カウント値順列変更データ「01h」が書き込まれたカウント値順列変更レジスタ132を初期化するため、カウント値順列変更回路123から出力され、乱数値レジスタ131に入力されるカウント値の順列が連続的に変更されるといった不具合を防止することができる。
また、カウント値順列変更レジスタ133が初期化された後、CPU106は、カウント値順列変更データ「01h」をカウント値順列変更レジスタ133に再度書き込むことにより、変更したカウント値の順列をさらに変更することができる。
さらに、乱数値レジスタ131に格納されているランダムRの値を更新させるタイミング、即ち、CPU106がカウント値取込レジスタ136にカウント値取込データ「01h」を予め指定しておくことにより、更新されていないランダムRの値が乱数値レジスタ131から読み出されることを防止することができる。
また、カウンタ121により更新されるカウント値の初期値を変更させることにより、カウント値が初期値から最終値までカウントアップされる周期の検出を困難にすることができる。これにより、ステップS143にて乱数値レジスタ131から読み出されるランダムRの値と大当り判定値とが合致するタイミングを狙って所定の信号を出力し、大当りを頻発させるといった不正行為を防止することができる。
さらに、CPU106は、リセットコントローラ102によりシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ132及び周期設定データが書き込まれた周期設定レジスタ134を書込制御して乱数回路103に設定された乱数最大値及び内部クロック信号の周期を変更不能にする。これにより、悪質な遊技客が乱数最大値及び内部クロック信号の周期を変更して乱数値レジスタ131から読み出されるランダムRの値と大当り判定値とが一致するタイミングを自在に設定し、大当りを頻発させるといった不正行為を防止することができる。
また、ユーザがパチンコ遊技機1毎に適宜選択した初期値変更方式によりカウント値の初期値を変更させるため、乱数値レジスタ131から読み出され、特図ゲームおける表示結果を大当りとするか否かを判定するのに用いられるランダムRのランダム性を高めることができる。
さらに、乱数最大値設定レジスタ132に、下限値「4」以下の値を指定する乱数最大値設定データ「0000h」〜「0003h」が書き込まれた場合、CPU106は、この乱数最大値設定レジスタ132に「0FFFh」を格納するため、「4」以下の値が乱数最大値として乱数回路103に設定されることを防止することができる。
また、CPU106により変更された初期値が乱数最大値より大きい場合、比較器122は、カウント値更新信号を順次出力して、カウンタ121に、カウント値を変更された初期値から最終値まで連続的に更新させ、通知信号を出力させることにより、この変更された初期値をCPU106にさらに変更させることができる。これにより、乱数値レジスタ131に出力されるカウント値が乱数最大値より大きくなることを防止することができる。
さらに、周期設定レジスタ134に、下限値「システムクロック信号の周期×128×7」以下の値を指定する周期設定コマンド「00h」〜「06h」が書き込まれた場合、CPU106は、この乱数最大値設定レジスタ132に「07h」を格納するため、「システムクロック信号の周期×128×7」より小さい値が内部クロック信号の周期として乱数回路103に設定されることを防止することができる。
また、CPU106は、乱数回路103に乱数の最大値及び内部クロック信号の周期を設定した後に、乱数回路103を起動させるため、電源の投入後、乱数の最大値及び内部クロック信号の周期の設定を行う前に、この乱数回路103から乱数が発生してしまうといった不具合を防止することができる。
さらに、リセットコントローラ102によりシステムリセットされたときは、乱数回路起動レジスタ140に乱数回路起動データ「80h」を書き込むことにより、乱数回路103を再度起動させることができる。
また、乱数回路103が遊技制御用マイクロプロセッサ100に内蔵されているため、主基板11のスペースを確保することができ、また、不正基盤の設置等の偽造を困難にすることができる。
なお、この発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、この発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態において、カウンタ121は、カウント値を「1」から「4095」まで1ずつカウントアップして更新していた。しかしながら、本発明は、これに限定されず、カウンタ121は、カウント値を更新する規則は、任意である。また、カウンタ121の各ビット出力端子の接続を入れ替えること等により、乱数値レジスタ131に入力されるカウント値のランダム性を高めてもよい。
また、上記の実施の形態において、更新範囲規制手段は、カウンタ121から入力されたカウント値と乱数最大値設定レジスタ132に格納されている乱数最大値設定データにより指定される乱数最大値とを比較し、入力されたカウント値が乱数最大値以下のとき、入力されたカウント値を乱数値レジスタ131に出力し、入力されたカウント値が乱数最大値より大きいとき、カウント値更新信号をカウンタ121に出力する比較器122であった。
しかしながら、本発明は、これに限定されず、更新範囲規制手段は、乱数最大値設定レジスタ132に格納されている乱数最大値設定データに応じて、所定の演算を行い、カウント値の更新範囲を規制するもの等、任意である。
例えば図30に示すように、更新範囲規制手段は、カウンタ121から入力されたカウント値が「0」〜「99」で、乱数最大値設定レジスタ132に格納されている乱数最大値設定データにより指定される乱数最大値「9」の場合、入力カウント値「0」〜「9」のときカウント値「0」を、入力カウント値「10」〜「19」のときカウント値「1」を、…、入力カウント値「90」〜「99」のときカウント値「9」を、出力することにより、カウント値の更新範囲を「9」に規制するものであってもよい。
また、上記の実施の形態において、乱数値レジスタ131から読み出した乱数を、大当りを発生させてパチンコ遊技機1を大当り遊技状態とするか否かを決定する大当り判定用の乱数として用いられていた。しかしながら、本発明は、これに限定されず、この読み出した乱数を、何に用いるかは任意であり、ハズレ時にリーチするか否かを決定するリーチ判定用の乱数、特別図柄及び飾り図柄の可変表示に用いる可変表示パターンを決定するための表示用の乱数、大当り時における特別図柄の確定図柄を決定するための表示用の乱数、ハズレ時における特別図柄の確定図柄を決定するための表示用の乱数、大当りを生じさせる確率が向上している高確率状態(特別遊技状態)とするか否かを決定する確変判定用の乱数や、普通図柄表示器40による普通図ゲームにおける表示結果を当りとするか否かを決定する普通図当り判定用の乱数などに用いてもよい。但し、ここに挙げた乱数の全てを乱数回路103を用いて更新する必要はなく、一部の乱数を乱数回路103を用いずに更新してもよい。例えば、これらの乱数のうちの一部を、遊技制御割込処理中に所定のプログラムを実行することによって、更新してもよく、また、リフレッシュレジスタを用いた乱数の更新方式を併用してもよい。さらに、乱数値レジスタ131から読み出した乱数の値と、遊技制御割込処理中に所定のプログラムを実行することによって更新した乱数の値及び/又はリフレッシュレジスタを用いて更新した乱数の値と、を加算、減算、積算、乗算、除算するなど、演算して得られた値を、大当り、リーチ、可変パターン等の決定用の乱数として用いてもよい。
さらに、上記の実施の形態において、乱数回路103を内蔵する遊技機は、第1種パチンコ遊技機、即ち、可変表示の実行条件(例えば普通可変入賞球装置6への入賞)が成立した後に可変表示の開始条件(例えば可変表示装置4における前回の可変表示及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報を可変表示する可変表示装置(例えば可変表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御する遊技機であった。
しかしながら、本発明は、これに限定されず、例えば、乱数回路103を内蔵する遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させる第2種パチンコ遊技機であってもよい。
この場合、乱数値レジスタ131から読み出した乱数を、特定遊技状態(例えば大当り遊技状態)におけるラウンドの継続上限回数の判定や、可変入賞装置(例えば可変入賞球装置)の内部構造変化に関わる判定用乱数として用いることができる。
また、乱数回路103を内蔵する遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能な第3種パチンコ遊技機であってもよい。
この第3種パチンコ遊技機が、入賞することにより権利発生状態を発生させる入賞装置の開閉に関わる表示結果を表示する可変表示装置を備える遊技機(いわゆる普通図柄タイプの第3種パチンコ遊技機)である場合、乱数値レジスタ131から読み出した乱数を、普通図柄の事前判定用乱数として用いることができる。
また、第3種パチンコ遊技機が、可変表示装置にて特定の表示結果が表示されたときに、可変表示装置に特定の表示結果を導出させる起因となった遊技媒体を、権利発生状態を発生させる特定検出装置に遊技球を誘導する誘導装置を備える遊技機(いわゆる判定図柄タイプの第3種遊技機)場合、乱数値レジスタ131から読み出した乱数を、判定図柄の事前判定用乱数として用いることができる。
また、上記の実施の形態において、CPU106は、遊技制御メイン処理において、ステップS8による遊技状態復旧処理又はS9による初期化処理の後、ステップS11によるCTC107によるタイマ割込みのための設定をする前に、乱数回路設定処理を実行していたが、本発明は、これに限定されず、電源が投入された後、ループ処理に移行する前であれば任意であり、例えば、ステップS1にて割込禁止に設定した直後に行ってもよく、ステップS2にて割込モードをモード2に設定した直後に行ってもよい。また、ステップS3にてスタックポインタにスタックポインタ指定アドレスを設定した直後、ステップS4にてCTC107などのレジスタ設定を行った直後や、ステップS11にてタイマ割込みのための設定をした直後に行ってもよい。
さらに、上記実施の形態において、CPU106は、入賞時に、カウント値取込データ「01h」をカウント値取込レジスタ136に書き込んで、乱数値レジスタ131に格納されているランダムRの値を更新させていた。しかしながら、本発明は、これに限定されず、タイマ割込毎に、カウント値取込データ「01h」をカウント値取込レジスタ136に書き込んで、乱数値レジスタ131に格納されているランダムRの値を更新させてもよい。
また、上記の実施の形態において、ユーザプログラム実行データエリアの1F97h番地の領域に第3の初期値変更方式を指定する初期値変更方式設定データ「03h」が記憶されている場合、CPU106は、カウンタ121が更新するカウント値の初期値を、RAM105の各番地に格納されている値の加算値に変更させた。しかしながら、本発明は、これに限定されず、初期値変更方式設定データ「03h」が記憶されている場合に、変更される値は、RAM105の予め定められた番地に格納されている値に基づくものであれば、任意である。例えば、CPU106は、カウンタ121が更新するカウント値の初期値を、RAM105の各番地に格納されている値の積算値や乗算値等に変更させてもよい。
さらに、図1及び図2に示した装置構成、図3,図4及び図21に示すブロック構成、図5,図8及び図10〜図14に示すレジスタ構成、図18,図19に示すプログラム構成、図6,図22に示すテーブル構成や、図23〜図29に示すフローチャート構成は、発明の趣旨を逸脱しない範囲で任意に変更及び修正が可能である。
また、パチンコ遊技機1の動作をシミュレーションするゲーム機などにも本発明を適用することができる。本発明を実現するためのプログラム及びデータは、コンピュータ装置等に対して、着脱自在の記録媒体により配布・提供される形態に限定されるものではなく、予めコンピュータ装置等の有する記憶装置にプリインストールしておくことで配布される形態を採っても構わない。さらに、本発明を実現するためのプログラム及びデータは、通信処理部を設けておくことにより、通信回線等を介して接続されたネットワーク上の、他の機器からダウンロードすることによって配布する形態を採っても構わない。
そして、ゲームの実行形態も、着脱自在の記録媒体を装着することにより実行するものだけではなく、通信回線等を介してダウンロードしたプログラム及びデータを、内部メモリ等にいったん格納することにより実行可能とする形態、通信回線等を介して接続されたネットワーク上における、他の機器側のハードウェア資源を用いて直接実行する形態としてもよい。さらには、他のコンピュータ装置等とネットワークを介してデータの交換を行うことによりゲームを実行するような形態とすることもできる。
また、本発明は、入賞球の検出に応答して所定数の賞球を払い出す払出式遊技機に限定されるものではなく、遊技球を封入し入賞球の検出に応答して得点を付与する封入式遊技機にも適用することができる。