以下に、本発明に好適な実施形態について図面に基づいて説明する。なお、以下において説明する実施形態においては、本発明に係る遊技機に好適な実施形態として本発明を第1種パチンコ遊技機(「デジパチ」とも称される)に適用した場合を示す。
[遊技機の構成]
まず、遊技機の概観について図1乃至図4を用いて説明する。図1は、本実施形態におけるパチンコ遊技機10の概観を示す斜視図である。また、図2は、本実施形態におけるパチンコ遊技機10の概観を示す分解斜視図である。また、図3は、本実施形態におけるパチンコ遊技機10のランプユニット53の概観を示す正面図である。また、図4は、本実施形態におけるパチンコ遊技機10の概観を示す正面図である。
図1乃至図4に示すように、パチンコ遊技機10は、前面に開口12aが形成された外枠12と、その外枠12に対して回動可能に軸着されている本体枠11と、外枠12の開口12aに臨むように本体枠11に取り付けられる各種の部品と、本体枠11の前方に開閉自在に軸着された扉とから構成されている。この扉は、図1に示すように、開口12aを前面から閉鎖するためのものであり、通常閉鎖した状態で遊技が行われる。また、本体枠11の前面には、上皿20、下皿22、発射ハンドル26などが配設されている。
本体枠11には、液晶表示装置32、遊技盤14などが配設されている。なお、遊技盤14、スペーサー31、液晶表示装置32以外の各種の部品(図示せず)については、理解を容易にするために説明を省略する。
遊技盤14は、その全部が透過性を有する板形状の樹脂(透過性を有する部材)によって形成されている。この透過性を有する部材としては、例えば、アクリル樹脂、ポリカーボネート樹脂、メタクリル樹脂など各種の材質が該当する。また、遊技盤14は、その前面側に、発射された遊技球が転動可能な遊技領域15を有している。この遊技領域15は、ガイドレール30(具体的には後述の図4に示す外レール30a)に囲まれ、遊技媒体の一例である遊技球が転動可能な領域である。また、遊技盤14における遊技領域15には、複数の遊技釘13が打ちこまれている。
液晶表示装置32は、遊技盤14の後方(背面側)に配設されている。すなわち、液晶表示装置32は、遊技盤14の透過性を有する部材の背後に配置されている。この液晶表示装置32は、遊技に関する画像の表示を可能とする表示領域32aを有している。この表示領域32aは、遊技盤14の全部又は一部に、背面側から重なるように配設される。言い換えると、この表示領域32aは、少なくとも、遊技盤14における遊技領域15の全部又は一部と重なるように遊技盤14の後方に配設される。具体的には、液晶表示装置32は、その表示領域32aが遊技領域15の全部又は一部と、遊技領域外域16の全部又は一部とに重なるように遊技盤14の後方に配設される。この液晶表示装置32における表示領域32aには、演出用の演出画像、装飾用の装飾画像など、各種の画像が表示される。特に、液晶表示装置32における表示領域32aでは、大当たり遊技状態(特別遊技状態)に移行後、特別遊技の実行中に演出用の演出画像が表示される。
このように、本実施形態において、液晶表示装置32などの演出表示手段を遊技盤14の背後に設けることにより、例えば、遊技釘13の植設領域や役物、装飾部材といった遊技部材を設ける領域を大きくし、レイアウトの自由度もさらに大きくすることが可能である。
スペーサー31は、遊技盤14の後方(背面側)に配設され、液晶表示装置32の前方(前面側)に、遊技球の流路となる空間を構成している。このスペーサー31は、透過性を有した材料で形成されている。なお、本実施形態においてスペーサーは、透過性を有した材料で形成されているが、本発明はこれに限定されず、例えば、一部が透過性を有する材料で形成されてもよい。また、透過性を有さない材料で形成されてもよい。
扉17には、透過性を有する保護板19が配設されている。この保護板19は、扉17が閉鎖された状態で遊技盤14の前面に対面するように配設されている。
発射ハンドル26は本体枠11に対して回動自在に設けられている。また、発射ハンドル26の裏側には、駆動装置である発射ソレノイド(図示せず)が設けられている。さらに、発射ハンドル26の周縁部には、タッチセンサ(図示せず)が設けられている。このタッチセンサが遊技者により触接されたときには、遊技者により発射ハンドル26が握持されたと検知される。発射ハンドル26が遊技者によって握持され、かつ、時計回り方向へ回動操作されたときには、その回動角度に応じて発射ソレノイドに電力が供給され、上皿20に貯留された遊技球が遊技盤14に順次発射され、遊技が進められる。
遊技盤14の左下方には、ランプユニット53が設けられている。図3に示されるように、ランプユニット53には、特別図柄表示器35、普通図柄表示器33、特別図柄保留ランプ34a〜34d、普通図柄保留ランプ50a〜50d、ラウンド数表示器51a〜51dが設けられている。
特別図柄表示器35は、複数の7セグメントLEDで構成されている。この7セグメントLEDは、所定の特別図柄の変動表示開始条件の成立により、所定の態様によって、点灯・消灯を繰り返す。この特別図柄として、特定の図柄(例えば、“21”、“50”又は“64”などの数字図柄)が停止表示された場合は、通常遊技状態から遊技者に有利な状態である大当たり遊技状態(特別遊技状態)に遊技状態が移行する。この大当たり遊技状態となった場合には、後述するように、シャッタ40(図4参照)が開放状態に制御され、大入賞口39(図4参照)に遊技球が受け入れ可能な状態となる。一方、特別図柄として、特定の図柄以外の図柄(例えば、“‐‐”などの記号図柄)が停止表示された場合は、通常遊技状態が維持される。以上のように、特別図柄が変動表示された後、停止表示され、その結果によって遊技状態が移行又は維持されるゲームを「特別図柄ゲーム」という。
特別図柄表示器35の下方には、普通図柄表示器33が設けられている。普通図柄表示器33は、2つの表示用ランプで構成されており、これら表示用ランプが交互に点灯・消灯を繰り返すことによって、普通図柄として変動表示される。
普通図柄表示器33の下方には、特別図柄保留ランプ34a〜34dが設けられている。この特別図柄保留ランプ34a〜34dは、点灯又は消灯によって保留されている特別図柄の変動表示の実行回数(いわゆる、「保留個数」、「特別図柄に関する保留個数」)を表示する。例えば、特別図柄の変動表示の実行が1回分保留されている場合には、特別図柄保留ランプ34aが点灯する。
普通図柄表示器33の下方には、普通図柄保留ランプ50a〜50dが設けられている。この普通図柄保留ランプ50a〜50dは、点灯又は消灯によって保留されている普通図柄の変動表示の実行回数(いわゆる、「保留個数」、「普通図柄に関する保留個数」)を表示する。特別図柄と同様に、普通図柄の変動表示の実行が1回分保留されている場合には、普通図柄保留ランプ50aが点灯する。
特別図柄表示器35の左側には、ラウンド数表示器51a〜51dが設けられている。このラウンド数表示器51a〜51dは、特別遊技の実行中において最大ラウンド数を表示する。なお、このラウンド数表示器51a〜51dは、4つのLEDから構成されており、LED毎に点灯と消灯の2つのパターンがあるので、少なくとも16パターンの表示が可能である(2の4乗パターン)。なお、ラウンド数表示器51は、複数の7セグメントLED、液晶表示部、透過性を有する液晶表示部などから構成される場合もある。
また、遊技盤14の後方(背面側)に配設されている液晶表示装置32の表示領域32aでは、特別図柄表示器35において表示される特別図柄と関連する演出画像が表示される。
例えば、特別図柄表示器35で表示される特別図柄の変動表示中においては、液晶表示装置32の表示領域32aにおいて、数字や記号などからなる演出用の識別図柄(例えば、“0”から“9”までの数字)が変動表示される。また、特別図柄表示器35において変動表示されていた特別図柄が停止表示されるとともに、液晶表示装置32の表示領域32aでも演出用の識別情報が停止表示される。
また、特別図柄表示器35において特別図柄として特定の図柄が停止表示された場合には、大当たりであることを遊技者に把握させる演出画像が液晶表示装置32の表示領域32aにおいて表示される。具体的には、特別図柄表示器35において特別図柄として特定の図柄が停止表示された場合には、液晶表示装置32の表示領域32aにおいて表示される演出用の識別情報の組み合わせが特定の表示態様(例えば、複数の図柄列のそれぞれに“1”から“9”のいずれかが全て揃った状態で停止表示される態様)となり、さらに、「大当たり!!」などの文字画像とともに、喜んでいるキャラクタ画像が液晶表示装置32の表示領域32aにおいて表示される。
図4を用いて、パチンコ遊技機10の概観をさらに説明する。図4に示すように、パチンコ遊技機10の遊技盤14上には、2つのガイドレール30(30a及び30b)、ステージ55、通過ゲート54a、54b、ステージ57、始動口25、シャッタ40、大入賞口39、一般入賞口56a、56b、56c、56dなどの遊技部材が設けられている。さらに、扉17の上部には、スピーカ46が設けられている。
遊技盤14の上部にはステージ55が設けられ、遊技盤14の略中央にはステージ57が設けられている。
遊技盤14の左側に設けられている2つのガイドレール30は、遊技領域15を区画(画定)する外レール30aと、その外レール30aの内側に配設された内レール30bとから構成される。発射された遊技球は、遊技盤14上に設けられたガイドレール30に案内されて、遊技盤14の上部に移動し、複数の遊技釘(図2参照)、遊技盤14上に設けられたステージ55などとの衝突により、その進行方向を変えながら遊技盤14の下方に向かって流下する。
また、遊技領域15の左端部には、入球口24が形成されている。この入球口24に遊技球が入賞すると、遊技盤14の背後において、ワープ経路47を経由し、ステージ57の背後に導かれる。ステージ57の背後に導かれた遊技球は、ステージ57に囲まれた排出口(図示せず)から遊技盤14の表側に排出され、当該遊技盤14へと流下する。
前述した始動口25内には入賞領域が設けられている。この入賞領域には始動入賞球センサ116(図5参照)を備える。遊技球などの遊技媒体が、始動入賞球センサ116で検出された場合、遊技球が入賞したと判定される。遊技球が入賞した場合には、特別図柄表示器35による特別図柄の変動表示が開始される。また、特別図柄の変動表示中に遊技球が入賞した場合には、変動表示中の特別図柄が停止表示されるまで、始動口25への遊技球の入賞に基づく特別図柄の変動表示の実行(開始)が保留される。その後、変動表示していた特別図柄が停止表示された場合には、保留されていた特別図柄の変動表示が開始される。なお、特別図柄の変動表示の実行が保留される回数には上限が設定されており、例えば、4回を上限として特別図柄の変動表示が保留される。
また、その他の(所定の特別図柄の変動表示開始)条件としては、特別図柄が停止表示されていることである。つまり、所定の特別図柄の変動表示開始条件が成立する毎に特別図柄の変動表示が開始される。
遊技盤14の略中央の左右両側には通過ゲート54a、54bが設けられている。この通過ゲート54a、54bには、後述する通過球センサ114、115(図5参照)が設けられている。通過球センサ114、115は、遊技球が通過ゲート54a、54bを通過したことを検出する。そして、通過球センサ114、115によって遊技球の通過が検出されたときには、普通図柄表示器33において普通図柄の変動表示が開始され、所定の時間が経過した後、普通図柄の変動表示が停止する。
この普通図柄が所定の図柄で停止表示されたときには、始動口25の左右の両側に設けられている羽根部材(いわゆる、普通電動役物)が閉鎖状態から開放状態となり、始動口25に遊技球が入りやすくなるようになる。また、羽根部材を開放状態とした後、所定の時間が経過したときには、羽根部材を閉鎖状態として、始動口25に遊技球が入りにくくなるようにする。以上のように、普通図柄が変動表示された後、停止表示され、その結果によって羽根部材の開放・閉鎖状態が異なってくるゲームを「普通図柄ゲーム」という。
また、特別図柄の変動表示と同じように、普通図柄の変動表示中において通過ゲート54a、54bを遊技球が通過した場合には、変動表示中の普通図柄が停止表示されるまで、当該通過ゲート54a、54bへの遊技球の通過に基づく普通図柄の変動表示の実行(開始)が保留される。その後、変動表示していた普通図柄が停止表示された場合には、保留されていた普通図柄の変動表示が開始される。
大入賞口39には、その前面側(前方)に開閉自在なシャッタ40が設けられている。このシャッタ40は、特別図柄表示器35において特別図柄として特定の図柄が停止表示され、遊技状態が大当たり遊技状態に移行された場合は、遊技球を受け入れやすい開放状態となるように駆動される。その結果、大入賞口39は、遊技球を受け入れやすい開放状態(第1の状態)となる。
一方、シャッタ40の背面側(後方)に設けられた大入賞口39には、カウントセンサ104(図5参照)を有する領域(図示せず)があり、その領域を遊技球が所定個数(例えば10個)通過するか、又は、所定時間(例えば30秒)が経過するまでシャッタ40が開放状態に駆動される。そして、開放状態において大入賞口39への所定数の遊技球の入賞又は所定時間の経過のいずれかの条件が成立すると、シャッタ40は、遊技球を受け入れ難い閉鎖状態になるように駆動される。その結果、大入賞口39は、遊技球を受け入れ難い閉鎖状態となる(第2の状態)。なお、大入賞口39が遊技球を受け入れやすい状態となっている開放状態(第1の状態)から大入賞口39が遊技球を受け入れ難い状態となっている閉鎖状態(第2の状態)までの遊技をラウンドゲームという。従って、シャッタ40は、ラウンドゲーム時に開放し、各ラウンドゲーム間では閉鎖することになる。また、ラウンドゲームは、“1”ラウンド、“2”ラウンドなどのラウンド数として計数される。例えば、ラウンドゲームの1回目を第1ラウンド、2回目を第2ラウンドと呼称する場合がある。
続いて、開放状態から閉鎖状態(第2の状態)に駆動されたシャッタ40は、所定のインターバル時間の経過後、再度開放状態に駆動される。つまり、シャッタ40の閉鎖後所定時間が経過すると、次のラウンドゲームへ継続して進むことができる。なお、第1ラウンドのラウンドゲームから、次のラウンドゲームに継続して進むことができない(最終の)ラウンドゲームが終了するまでの遊技を特別遊技という。
特別遊技の実行中において、最初のラウンド数から最後のラウンドゲームまでのラウンド数(最大継続ラウンド数)は、停止表示された特別図柄によって異なる。例えば、本実施形態において、特別図柄表示器35に停止表示される数字図柄が“64”の場合は、最大継続ラウンド数は15ラウンドであり、特別図柄表示器35に停止表示される数字図柄が“21”の場合は、最大継続ラウンド数は15ラウンドであり、特別図柄表示器35に停止表示される数字図柄が“50”の場合は、最大継続ラウンド数は2ラウンドとなる。なお、最大継続ラウンド数は2ラウンド又は15ラウンドに限定されない。例えば、最大継続ラウンド数は、ラウンド数抽選手段(メインCPU66を含む主制御回路60(図5参照))による抽選により、“1”ラウンドから“15”ラウンドまでの間から選択されるようにしてもよい。
また、前述した一般入賞口56a〜56d、大入賞口39における所定の領域に遊技球が入賞又は通過したときには、それぞれの入賞口の種類に応じて予め設定されている数の遊技球が上皿20又は下皿22に払い出される。
また、前述した始動口25において入賞と判定されたときには、それぞれの入賞口の種類に応じて予め設定されている数の遊技球が上皿20又は下皿22に払い出される。
なお、本実施形態において、演出手段の一例として、液晶表示装置を記載したが、本発明はこれに限定されない。演出手段は、プラズマディスプレイ、リアプロジェクションディスプレイ、CRTディスプレイなどの画像演出手段や、ランプなどの発光演出手段や、スピーカなどの音演出手段や可動役物などの可動演出手段などの演出手段であってもよい。
[遊技機の電気的構成]
本実施形態におけるパチンコ遊技機10の制御回路について図5を用いて説明する。図5は、本実施形態におけるパチンコ遊技機10の制御回路を示すブロック図である。
遊技制御手段としての主制御回路60は、図5に示すように、制御手段であるメインCPU66、メインROM(読み出し専用メモリ)68、記憶手段の一例であるメインRAM(読み書き可能メモリ)70を備えている。この主制御回路60は、遊技の進行を制御する。
メインCPU66は、レジスタや、リセット端子66aを備えている。また、メインCPU66には、メインROM68、メインRAM70などが接続されており、メインROM68に記憶されたプログラムに従って、各種の処理を実行する機能を有する。また、メインCPU66のリセット端子66aがリセット信号を受信した場合、システムリセット状態となる。このように、メインCPU66は、遊技の進行を制御する遊技制御手段の一例である。
メインROM68には、メインCPU66によりパチンコ遊技機10の動作を制御するためのプログラムが記憶されており、その他には、乱数抽選によって大当たり判定をする際に参照される各種のテーブルも記憶されている。
メインRAM70は、メインCPU66の一時記憶領域として種々のフラグや変数の値を記憶する機能を有する。メインRAM70に記憶されるデータの具体例としては、以下のようなものがある。
メインRAM70には、制御状態フラグ、大当たり判定用乱数カウンタ、初期値乱数カウンタ、大当たり図柄決定用乱数カウンタ、リーチ用乱数カウンタ、演出条件選択用乱数カウンタ、大入賞口開放回数カウンタ、大入賞口入賞カウンタ、待ち時間タイマ、大入賞口開放時間タイマ、特別図柄に関する保留球数を示すデータ、普通図柄に関する保留球数を示すデータ、後述する副制御回路200にコマンドを供給するためのコマンドデータ、各種変数などが位置付けられている。
制御状態フラグは、特別図柄ゲームの制御状態を示すものである。大当たり判定用乱数カウンタは、特別図柄の大当たりを判定するためのものである。初期値乱数カウンタは、大当たり判定用乱数カウンタの示す値が所定値(例えば、大当たりとなる値)となる周期を変化させることによって体感器などを用いた不正行為を防止するためのカウンタである。大当たり図柄決定用乱数カウンタは、特別図柄の大当たりを判定した場合に、停止表示される特別図柄を決定するためのものである。リーチ用乱数カウンタは、リーチパターンを実行するか否かを決定するためのものである。演出条件選択用乱数カウンタは、演出用の変動パターンを決定するためのものである。これらのカウンタは、メインCPU66により順次“1”増加するように記憶更新されており、所定のタイミングで各カウンタから乱数値を抽出することにより、メインCPU66の各種の機能を実行することとなる。なお、本実施形態においては、このような乱数カウンタを備え、プログラムに従って、メインCPU66が、乱数カウンタを“1”増加させるように記憶更新する構成としたが、これに限らず、別個に、乱数発生器のような装置を備えるように構成してもよい。
待ち時間タイマは、主制御回路60と副制御回路200とにおいて実行される処理の同期を取るためのものである。また、大入賞口開放時間タイマは、シャッタ40を駆動させ、大入賞口39を開放する時間を計測するためのものである。なお、本実施形態におけるタイマは、メインRAM70において、所定の周期で、その所定の周期だけ減算されるように記憶更新されるが、これに限らず、CPUなど自体がタイマを備えていてもよい。
大入賞口開放回数カウンタは、大当たり遊技状態における大入賞口の開放回数(いわゆるラウンド数)を示すものである。また、大入賞口入賞カウンタは、1ラウンド中に大入賞口に入賞し、カウントセンサ104を通過した遊技球の数を示すものである。さらに、特別図柄に関する保留球数を示すデータは、始動口25へ遊技球が入賞したが、特別図柄の変動表示が実行できないときに、特別図柄ゲームの開始を保留するが、その保留されている特別図柄ゲームの保留回数を示すものである。さらに、普通図柄に関する保留球数を示すデータは、遊技球が通過ゲート54a、54bを通過したが、普通図柄の変動表示が実行できないときに、普通図柄ゲームの開始を保留するが、その保留されている普通図柄ゲームの保留回数を示すものである。このように、メインRAM70は、遊技に基づくデータを記憶する記憶手段の一例である。
また、この主制御回路60は、所定の周波数のクロックパルスを生成するクロックパルス発生回路62、電源投入時においてリセット信号を生成する初期リセット回路64、後述する副制御回路200に対してコマンドを供給するためのシリアル通信用IC72を備えている。また、これらのクロックパルス発生回路62、初期リセット回路64、シリアル通信用IC72は、メインCPU66に接続されている。なお、このクロックパルス発生回路62は、後述するシステムタイマ割込処理を実行するために、所定の周期(例えば2ミリ秒)毎にクロックパルスを発生する。
初期リセット回路64は、ウォッチドッグタイマを備え、このウォッチドッグタイマによって一定時間の経過を検知すると、メインCPU66のリセット端子66aに対してリセット信号を送信する。また、初期リセット回路64は、メインCPU66から所定の制御信号を受信することによって、ウォッチドッグタイマのクリアを行う。
シリアル通信用IC72は、メインCPU66と副制御回路200と払出・発射制御回路126と接続され、副制御通信用バッファ72aと、払出・発射制御回路用バッファ72bとを備える。
また、主制御回路60には、各種の装置が接続されており、例えば、図5に示すように、カウントセンサ104、一般入賞球センサ106、108、110、112、通過球センサ114、115、始動入賞球センサ116、普通電動役物ソレノイド118、大入賞口ソレノイド120、バックアップクリアスイッチ124が接続されている。
カウントセンサ104は、大入賞口39における所定の領域に設けられている。このカウントセンサ104は、大入賞口39における一般領域を遊技球が通過した場合に、所定の検知信号を主制御回路60に供給する。
一般入賞球センサ106、108、110、112は、一般入賞口56a〜56dにそれぞれ設けられている。この一般入賞球センサ106、108、110、112は、各一般入賞口56a〜56dを遊技球が通過した場合に、所定の検知信号を主制御回路60に供給する。
通過球センサ114、115は、通過ゲート54a、54bにそれぞれ設けられている。この通過球センサ114、115は、通過ゲート54a、54bをそれぞれ遊技球が通過した場合に、所定の検知信号を主制御回路60に供給する。
始動入賞球センサ116は、始動口25に設けられている。この始動入賞球センサ116は、始動口25を遊技球が通過した場合に、所定の検知信号を主制御回路60に供給する。
普通電動役物ソレノイド118は、リンク部材(図示せず)を介して始動口25に設けられる羽根部材に接続されており、メインCPU66から供給される駆動信号に応じて、羽根部材を開放状態又は閉鎖状態とする。
大入賞口ソレノイド120は、図4に示すシャッタ40に接続されており、メインCPU66から供給される駆動信号に応じて、シャッタ40を駆動させ、大入賞口39を開放状態又は閉鎖状態とする。
バックアップクリアスイッチ124は、パチンコ遊技機10に内蔵されており、電断時などにおけるバックアップデータを遊技場の管理者の操作に応じてクリアする機能を有する。例えば、電源投入時に操作することにより、メインRAM70のデータが初期化される。
また、主制御回路60には、払出・発射制御回路126が接続されている。この払出・発射制御回路126には、遊技球の払出を行う払出装置128、遊技球の発射を行う発射装置130、カードユニット150が接続されている。
この払出・発射制御回路126は、主制御回路60から供給される賞球制御コマンド、カードユニット150から供給される貸し球制御信号を受け取り、払出装置128に対して所定の信号を送信することにより、払出装置128に遊技球を払い出させる制御を行う。また、払出・発射制御回路126は、発射装置130に対して発射信号を供給することにより、遊技球を発射させる制御を行う。
また、発射装置130には、前述した発射ソレノイド、タッチセンサなどの遊技球を発射させるための装置が備えられている。発射ハンドル26が遊技者によって握持され、かつ、時計回り方向へ回動操作されたときには、その回動角度に応じて発射ソレノイドに電力が供給され、上皿20に貯留された遊技球が発射ソレノイドにより遊技盤14に順次発射される。
さらに、主制御回路60には、ランプ74が接続されている。主制御回路60は、ランプ74に対してランプ(LED)制御信号を供給する。なお、ランプ74には、白熱電球、LEDなど、具体的には、特別図柄保留ランプ34a〜34d、普通図柄保留ランプ50a〜50d、特別図柄表示器35(7セグメントLED)、普通図柄表示器33(表示用ランプ)などが含まれる。
一方、シリアル通信用IC72には、副制御回路200が接続されている。この副制御回路200は、主制御回路60から供給される各種のコマンドに応じて、液晶表示装置32における表示制御、スピーカ46から発生させる音声に関する制御、ランプ132の制御などを行う。なお、ランプ132には、白熱電球、LEDなど、具体的には、遊技盤14上を明暗表示する装飾ランプ(図示せず)などが含まれる。
なお、本実施形態においては、主制御回路60から副制御回路200に対してコマンドを供給するとともに、副制御回路200から主制御回路60に対して信号を供給できないように構成したが、これに限らず、副制御回路200から主制御回路60に対して信号を送信できるように構成しても問題ない。
演出制御手段である副制御回路200は、サブCPU206、プログラムROM208、ワークRAM210、液晶表示装置32における表示制御を行うための表示制御手段としての表示制御回路250、スピーカ46から発生させる音声に関する制御を行う音声制御回路230、ランプや可動役物に関する制御を行う駆動回路240を備える。副制御回路200は、主制御回路60からの指令に応じて遊技の進行に応じた演出を実行する。
サブCPU206には、プログラムROM208、ワークRAM210などが接続されている。サブCPU206は、このプログラムROM208に記憶されたプログラムに従って、各種の処理を実行する機能を有する。特に、サブCPU206は、主制御回路60から供給される各種のコマンドに従って、副制御回路200の制御を行う。サブCPU206は、後述する各種の手段として機能することとなる。
プログラムROM208には、サブCPU206によりパチンコ遊技機10の遊技演出を制御するためのプログラム、各種テーブルが記憶されている。
また、プログラムROM208には、複数種類の演出パターンが記憶されている。この演出パターンは、特別図柄の変動表示に関連して実行される演出表示の進行に関するものである。その他にも、プログラムROM208には、複数種類の特別遊技の実行中の演出パターンが記憶されている。この特別遊技の実行中の演出パターンは、特別遊技におけるラウンドゲームに関連して実行される演出表示の進行に関するものである。
なお、本実施形態においては、プログラム、テーブルなどを記憶する記憶手段として、主制御回路60ではメインROM68を、副制御回路200ではプログラムROM208を用いるように構成したが、これに限らず、制御手段を備えたコンピュータにより読み取り可能な記憶媒体であれば別態様であってもよく、例えば、ハードディスク装置、CD−ROM及びDVD−ROM、ROMカートリッジなどの記憶媒体に、プログラム、テーブルなどが記録されていてもよい。もちろん、プログラムROM208の代替としてメインROM68を用いてもよい。また、これらのプログラムは、予め記録されているものでなくとも、電源投入後にこれらのプログラムをダウンロードし、主制御回路60ではメインRAM70、副制御回路200ではワークRAM210などに記録されるものでもよい。さらにまた、プログラムの各々が別々の記憶媒体に記録されていてもよい。
ワークRAM210は、サブCPU206の一時記憶領域として種々のフラグや変数の値を記憶する機能を有する。例えば、リーチ演出時間を制御するためのタイマ変数、演出パターンを選択するための演出表示選択用乱数カウンタなど、各種の変数などが位置付けられている。
なお、本実施形態においては、メインCPU66の一時記憶領域としてメインRAM70を、サブCPU206の一時記憶領域としてワークRAM210を用いているが、これに限らず、読み書き可能な記憶媒体であればよい。
駆動回路240は、ドライブ回路242と、装飾データROM244を備え、サブCPU206に接続されている。ドライブ回路を介してランプ132の発光を制御する。
表示制御回路250は、画像データプロセッサ(以下、VDPと称する)212、各種の画像データを記憶する画像データROM216、画像データを画像信号として変換するD/Aコンバータ218、電源投入時においてリセット信号を生成する初期リセット回路220から構成されている。
上述したVDP212は、サブCPU206、画像データROM216、D/Aコンバータ218、初期リセット回路220と接続されている。
このVDP212は、いわゆるスプライト回路、スクリーン回路、及びパレット回路などの回路を含み、液晶表示装置32に画像を表示させるための種々の処理を行うことができる装置である。つまり、VDP212は、液晶表示装置32に対する表示制御を行う。また、VDP212には、液晶表示装置32の表示領域32aに画像を表示するためのバッファとしての記憶媒体(例えば、ビデオRAM)を備えている。この記憶媒体の所定の記憶領域に画像データを記憶することによって、所定のタイミングで液晶表示装置32の表示領域32aに画像が表示されることとなる。
画像データROM216には、背景画像データ、演出画像データなどの各種の画像データが別個に記憶されている。もちろん、関連画像を示す関連画像データも記憶されている。
VDP212は、サブCPU206から供給される画像表示命令に応じて、画像データROM216から、背景画像データ、演出画像データなど、各種の画像データを読み出し、液晶表示装置32に表示させる画像データを生成する。VDP212は、生成した画像データを、後方に位置する画像データから順に重ね合わせてバッファに記憶し、所定のタイミングでD/Aコンバータ218に供給する。このD/Aコンバータ218は、画像データを画像信号として変換し、この画像信号を液晶表示装置32に供給することにより、液晶表示装置32に画像を表示させる。
また、音声制御回路230は、音声に関する制御を行う音源IC232、各種の音声データを記憶する音声データROM234、音声信号を増幅するための増幅器236(以下、AMPと称する。)から構成されている。
この音源IC232は、サブCPU206、初期リセット回路220、音声データROM234、AMP236と接続されている。この音源IC232は、スピーカ46から発生させる音声の制御を行う。
[メイン処理]
図6及び図7を用いて、メイン処理について以下に説明する。
ステップS602においては、ウォッチドッグタイマの初期設定処理を行う。この処理において、メインCPU66は、ウォッチドッグタイマの初期設定をする処理を行う。この処理が終了した場合、ステップS604に処理を移す。
ステップS604においては、チップセレクト初期設定処理を行う。この処理において、メインCPU66は、チップセレクトの初期設定をする処理を行う。この処理が終了した場合、ステップS606に処理を移す。
ステップS606においては、ウォッチドッグ出力データにクリアデータ(H01)をセットする処理を行う。この処理において、メインCPU66は、ウォッチドッグ出力データにクリアデータ(H01)をセットする処理を行う。この処理が終了した場合、ステップS608に処理を移す。
ステップS608においては、ウェイトタイマ(500ms)をセットする処理を行う。この処理において、メインCPU66は、ウェイトタイマ(500ms)をメインRAM70にセットする処理を行う。この処理が終了した場合、ステップS610に処理を移す。
ステップS610においては、ウォッチドッグ出力データを反転する処理を行う。この処理において、メインCPU66は、ウォッチドッグ出力データを反転させる処理を行う。この処理が終了した場合、ステップS612に処理を移す。
ステップS612においては、ウォッチドッグ出力データを出力する処理を行う。この処理において、メインCPU66は、初期リセット回路64へウォッチドッグ出力データを出力する処理を行う。この処理が終了した場合、ステップS614に処理を移す。
ステップS614においては、メインCPU66は500msを経過しているか否かを判断する。500msを経過している場合には、ステップS616に処理を移し、500msを経過していない場合にはステップS610に処理を移す。
ステップS616においては、メインCPU66は、電断検知信号の出力レベルがH(高)であるか否かを判断し、電断検知信号の出力レベルがH(高)である場合には、ステップS618に処理を移し、電断検知信号の出力レベルがHでない場合にはステップS616を再度実行する。ところで、本実施例では、種々の電源電圧を生成してパチンコ遊技機10を駆動するための図示しない電源基板が設けられており、この電源基板には、当該電源基板において生成された所定の電源電圧(33V)を監視し、この電源電圧が所定の閾値(約28V)を下回ったか否かによって出力電圧を変化させる電断検知信号を出力する電源監視回路が設けられている。この電断検知信号は、通常の動作状態においては、出力レベルがH(高)となっているが、電源電圧の低下を検出すると出力レベルがL(低)となる。メインCPU66は、この電断検知信号の入力状態を監視し、電断検知信号の出力レベルがHからLへの立下りを検出すると実行中の処理を中断して、後述する電源断時処理を実行する。
ステップS618においては、RAMアクセスを許可する処理を行う。この処理において、メインCPU66はメインRAM70に対してアクセスを許可する処理を行う。この処理が終了した場合、ステップS620に処理を移す。
ステップS620においては、メインCPU66は、バックアップクリアスイッチの入力があるか否かを判断する。バックアップクリアスイッチの入力がある場合には、ステップS702に処理を移し、バックアップクリアスイッチの入力がない場合には、ステップS622に処理を移す。
ステップS622において、メインCPU66は、電断検知フラグがあるか否かを判断する。電断検知フラグがある場合には、ステップS624に処理を移し、電断検知フラグがない場合には、ステップS702に処理を移す。
ステップS624においては、作業領域損傷チェック処理を行う。この処理において、メインCPU66は、メインRAM70の作業領域にあるデータが電源断前の状態と同じであるか否かをチェックすることによって、作業領域が損傷しているか否かをチェックする処理を行う。より具体的には、メインCPU66は、作業領域のデータに基づいてチェック用データを生成し、電源断時処理において生成されたチェック用データと比較し、一致していれば損傷なしと判定する。この処理が終了した場合、ステップS626に処理を移す。
ステップS626において、メインCPU66は、作業領域損傷があるか否かを判断する。作業領域損傷がある場合には、ステップS702に処理を移し、作業領域損傷がない場合には、ステップS628に処理を移す。
ステップS628においては、スタックポインタを復帰させる処理を行う。この処理において、メインCPU66は、スタックポインタを復帰させる処理を行う。この処理が終了した場合、ステップS630に処理を移す。
ステップS630においては、スイッチ入力バッファクリア処理を行う。この処理において、メインCPU66は、スイッチ入力バッファをクリアする処理を行う。この処理が終了した場合、ステップS632に処理を移す。
ステップS632においては、CTC動作設定処理を行う。この処理において、メインCPU66は、CTC(Counter
Timer Circuit)の動作を設定する処理を行う。この処理が終了した場合、ステップS634に処理を移す。
ステップS634においては、SIO動作設定処理を行う。この処理において、メインCPU66は、SIO(シリアル入出力)の動作を設定する処理を行う。この処理が終了した場合、ステップS636に処理を移す。
ステップS636においては、LED出力ポートリフレッシュ処理を行う。この処理において、メインCPU66は、ランプ74へ信号出力するためのLED出力ポートをリフレッシュさせる処理を行う。この処理が終了した場合、ステップS640に処理を移す。
ステップS640においては、電断復帰コマンド送信処理を行う。この処理において、メインCPU66は電断復帰コマンドを送信する処理を行う。この処理が終了した場合、ステップS642に処理を移す。
ステップS642において、メインCPU66は割込フラグが禁止状態であるか否かを判断する。メインCPU66は、割込フラグが禁止状態である場合には、ステップS646に処理を移し、割込フラグが禁止状態でない場合には、ステップS644に処理を移す。
ステップS644においては、割込許可処理を行う。この処理において、メインCPU66はタイマ割込処理(図8参照)を許可する処理を行う。この処理が終了した場合、ステップS646に処理を移す。
ステップS646においては、スタックエリアにおけるレジスタを復帰する処理を行う。より具体的には、この処理において、メインCPU66は、例えば、電源断時に実行されていたプログラムアドレスを示すレジスタ(プログラムカウンタ)などを復帰する。このプログラムカウンタを復帰することによって、電源断前の処理に復帰することが可能になる。この処理が終了した場合には、後述する電源断時処理の実行前のプログラムアドレスに復帰する。
ステップS702においては、スタックポインタを初期化する処理を行う。この処理において、メインCPU66は、スタックポインタを初期化する処理を行う。この処理が終了した場合、ステップS704に処理を移す。
ステップS704においては、作業領域の先頭アドレスをセットする処理を行う。この処理において、メインCPU66は、レジスタにメインRAM70の作業領域の先頭アドレスをセットする処理を行う。この処理が終了した場合、ステップS706に処理を移す。
ステップS706においては、クリアデータをセットする処理を行う。この処理において、メインCPU66は、クリアデータをセットする処理を行う。この処理が終了した場合、ステップS708に処理を移す。
ステップS708において、メインCPU66は、セットされたアドレスのデータがクリアされたか否かを判断する。セットされたアドレスのデータがクリアされた場合は、ステップS710に処理を移し、クリアされなかった場合は、ステップS702に処理を移す。
ステップS710においては、クリアしたアドレスの次のアドレスをセットする処理を行う。この処理において、メインCPU66は、クリアしたアドレスの次のアドレスをセットする処理を行う。この処理が終了した場合、ステップS712に処理を移す。
ステップS712において、メインCPU66は作業領域最終アドレスか否かを判断する。メインCPU66は、作業領域最終アドレスである場合には、ステップS714に処理を移し、作業領域最終アドレスでない場合には、ステップS706に処理を移す。このように、ステップS704からステップS712の処理が実行されることによって、メインRAM70の記録内容の初期化が行われる。
ステップS714においては、特別図柄に関するデータの初期化処理を行う。この処理において、メインCPU66は特別図柄に関するデータを初期化する処理を行う。この処理が終了した場合、ステップS716に処理を移す。
ステップS716においては、CTC動作設定処理を行う。この処理において、メインCPU66は、CTC動作を設定する処理を行う。この処理が終了した場合、ステップS718に処理を移す。
ステップS718においては、SIO動作設定処理を行う。この処理において、メインCPU66は、SIO動作を設定する処理を行う。この処理が終了した場合、ステップS720に処理を移す。
ステップS720においては、LED出力ポートリフレッシュ処理を行う。この処理において、メインCPU66は、LED出力ポートをリフレッシュさせる処理を行う。この処理が終了した場合、ステップS724に処理を移す。
ステップS724においては、初期化コマンド送信処理を行う。この処理において、メインCPU66は、初期化コマンドを送信する処理を行う。この処理が終了した場合、ステップS726に処理を移す。
ステップS726においては、割込許可処理を行う。この処理において、メインCPU66は、タイマ割込処理(図8参照)の実行を許可する処理を行う。この処理が終了した場合、ステップS728に処理を移す。
ステップS728においては、割込禁止処理を行う。この処理において、メインCPU66は、割込処理を禁止する処理を行う。すなわち、クロックパルス発生回路からの割込信号がマスクされた状態となり、この状態においては、割込信号の入力に基づくタイマ割込処理の実行が待機されることとなる。この処理が終了した場合、ステップS730に処理を移す。
ステップS730においては、初期値乱数更新処理を行う。この処理において、メインCPU66は、初期値乱数カウンタを更新する処理を行う。この処理が終了した場合、ステップS732に処理を移す。
ステップS732においては、割込許可処理を行う。この処理において、メインCPU66は、割込処理を許可する処理を行う。この処理が終了した場合、ステップS734に処理を移す。
ステップS734において、メインCPU66は、システムタイマ監視タイマ値が3以上であるか否かを判断する。この処理において、メインCPU66は、メインRAM70に記憶されるシステムタイマ監視タイマ値を参照し、システムタイマ監視タイマ値が3以上である場合には、ステップS736に処理を移し、システムタイマ監視タイマ値が3未満の場合には、ステップS728に処理を移す。このように、メインCPU66によって実行されるステップS734は、第1の処理において、記憶手段に記憶された計数値が所定の判定値以上であるか否かを判定する割込回数判定処理の一例である。
ステップS736においては、システムタイマの値を3減算する処理を行う。この処理において、メインCPU66は、メインRAM70に記憶されるシステムタイマ監視タイマを3減算する処理を行う。この処理が終了した場合、ステップS738に処理を移す。なお、本実施例においては、システムタイマ監視タイマの値を3減算したが、本発明はこれに限定されず、例えば、ステップS734などにおいてシステムタイマの値を判定するために使用される判定値と同じ値を減算することとなれば、どのような値であってもよい。このように、メインCPU66によって実行されるステップS736は、第2の処理の実行を契機として、記憶手段に記憶された計数値から判定値と同値の減算を行い、減算後の値を計数値として記憶手段に記憶する割込回数減算処理の一例である。
ステップS738においては、タイマ更新処理を行う。この処理において、メインCPU66は、メインRAM70の所定領域に記憶されるタイマ更新処理を行う。タイマ更新処理については、後述する。この処理が終了した場合、ステップS740に処理を移す。メインCPU66は、この処理によって更新されるタイマの値に基づいて、遊技の進行を管理する。このように、メインRAM70は、遊技の進行を管理する計時手段の一例である。また、このように、メインCPU66は、第2の処理において、計時手段の更新を行うタイマ更新処理を実行する遊技制御手段の一例である。
ステップS740においては、特別図柄制御処理を行う。詳しくは後述するが、この処理において、メインCPU66は、始動入賞球センサ116からの検知信号に応じて抽出された、大当たり判定用乱数値と大当たり図柄決定用乱数値に基づき、メインROM68に記憶される大当たり当選テーブルを参照し、大当たり抽選が当選したか否かを判定し、判定の結果をメインRAM70に記憶する処理を行う。なお、本実施形態において、高確率状態とは、いわゆる確変状態のことであり、低確率状態より、大当たり抽選に当選する確率が向上する状態である。この処理が終了した場合、ステップS742に処理を移す。
ステップS742においては、普通図柄制御処理を行う。この処理において、メインCPU66は、普通図柄制御処理を行う。この処理において、メインCPU66は、通過球センサ114、115からの検知信号に応じて抽出された乱数値に基づき、メインROM68に記憶される普通図柄当選テーブルを参照し、普通図柄抽選が当選したか否かを判定し、判定の結果をメインRAM70に記憶する処理を行う。なお、普通図柄抽選に当選した場合、所定期間、始動口25(図4参照)の羽根部材が開放状態となって、遊技球が入球しやすくなる。この処理が終了した場合、ステップS744に処理を移す。
ステップS744においては、図柄表示装置制御処理を行う。この処理において、メインCPU66は、ステップS740、ステップS742でメインRAM70に記憶された特別図柄制御処理の結果と、普通図柄制御処理の結果に応じて、特別図柄表示器35と、普通図柄表示器33と、ラウンド数表示器51とを駆動するためのデータをメインRAM70に更新記憶する処理を行う。なお、更新されたデータに基づいて、ステップS750のポート出力処理において、各LEDへ駆動信号が出力される。この処理が終了した場合、ステップS746に処理を移す。
ステップS746においては、遊技情報データ生成処理を行う。この処理において、メインCPU66は、台コンピュータ又はホールコンピュータへ信号を出力するための遊技情報データを生成し、メインRAM70に記憶する処理を行う。この処理が終了した場合、ステップS748に処理を移す。
ステップS748においては、図柄保留個数データ生成処理を行う。この処理において、メインCPU66は、後述するシステムタイマ割込処理におけるスイッチ入力処理(図8、ステップS810)にて検出される始動入賞球センサ116及び通過球センサ114、115からの検知信号や、特別図柄及び普通図柄の変動表示の実行に応じて更新されるメインRAM70に記憶された保留個数データの更新結果に基づいて、特別図柄保留ランプ34a〜34d及び普通図柄保留ランプ50a〜50dを駆動するための制御信号をメインRAM70に記憶する処理を行う。この処理が終了した場合、ステップS750に処理を移す。
ステップS750においては、ポート出力処理を行う。この処理において、メインCPU66は、上記のステップなどでメインRAM70に記憶される制御信号を各ポートに出力する処理を行う。具体的には、ランプ74にLED点灯のためのLED電源(コモン信号)やソレノイド駆動のためのソレノイド電源を供給する。この処理が終了した場合、ステップS752に処理を移す。
ステップS752においては、入賞口関連コマンド制御処理を行う。この処理において、メインCPU66は、入賞口関連コマンドを制御する処理を行う。入賞口関連コマンド制御処理については、後述する。この処理が終了した場合、ステップS754に処理を移す。
ステップS754においては、記憶・遊技状態コマンド制御処理を行う。記憶・遊技状態コマンド制御処理を行う。この処理において、メインCPU66は、メインRAM70の所定領域に確変フラグもしくは時短状態フラグがセットされているか判定し、確変フラグもしくは時短状態フラグがセットされていると判定した場合、確変状態コマンド、時短状態コマンドを生成し、副制御回路200に送信する処理を行う。記憶・遊技状態コマンド制御処理については、後述する。この処理が終了した場合、ステップS756に処理を移す。なお、本実施形態において、時短状態とは、普通図柄及び特別図柄の変動表示時間が、通常遊技時よりも短く、持ち玉の減少が抑制されつつ短時間で多くの特別図柄が変動される状態であるが、これに限定されず、例えば、さらに、普通図柄の抽選の当選確率が通常状態よりも高い状態となってもよい。
ステップS756においては、コマンド出力制御処理を行う。この処理において、メインCPU66は、コマンド出力を制御する処理を行う。コマンド出力制御処理については、後述する。この処理が終了した場合、ステップS758に処理を移す。このように、メインCPU66によって実行されるステップS756は、第2の処理において実行する遊技制御手段のコマンド送信処理の一例である。
ステップS758においては、払出処理を行う。この処理において、メインCPU66は、大入賞口39、始動口25、一般入賞口56a〜56dに遊技球が入賞したか否かのチェックを行い、入賞があった場合、それぞれに対応する払出要求コマンドを払出・発射制御回路126の払出制御用CPUに送信する。払出処理については後述する。この処理が終了した場合、ステップS728に処理を移す。このように、メインCPU66によって実行されるメイン処理(ステップS602からステップS758)は、遊技の進行を制御するルーチンであって、電源供給開始後、所定の電源投入時処理を行った後は、所定の第1の処理を繰り返し実行するメインルーチンの一例である。また、このように、メインCPU66によって実行されるメイン処理のステップS736からステップS758は、メインルーチンにおいて実行され、割込回数判定処理にて計数値が所定の判定値以上であると判定された場合に、所定の処理を行った後に第1の処理へ移行する処理を行う第2の処理の一例である。また、このように、主制御回路60は、メインルーチンを実行するとともに、遊技の進行に応じて演出制御回路へ演出時間が特定可能な演出コマンドを送信するコマンド送信処理を実行する遊技制御手段を備える主制御回路の一例である。
[タイマ割込処理]
メインCPU66は、メイン処理を実行している状態であっても、メイン処理を中断させ、システムタイマ割込処理を実行する場合がある。クロックパルス発生回路62から所定の周期(例えば2ミリ秒)毎に発生されるクロックパルスに応じて、以下のシステムタイマ割込処理を実行する。図8を用いて、タイマ割込処理について以下に説明する。
ステップS802においては、レジスタ退避処理を行う。この処理において、メインCPU66は、レジスタを退避させる処理を行う。この処理が終了した場合、ステップS804に処理を移す。
ステップS804においては、システムタイマ監視タイマの値を+1する処理を行う。この処理において、メインCPU66は、メインRAM70に記憶されるシステムタイマ監視タイマの値に1を加算する処理を行う。なお、システムタイマ監視タイマは、所定の処理(特別図柄制御処理など)をタイマ割込処理の所定回数(3回)の起動を条件として実行させるための監視タイマである。この処理が終了した場合、ステップS806に処理を移す。このように、メインCPU66によって実行されるステップS804は、割込ルーチンにおいて実行され、割込ルーチンが実行された回数を計数し、記憶手段に計数値として記憶する割込回数計数処理の一例である。
ステップS806においては、ウォッチドッグ出力データにクリアデータ(01H)をセットする処理を行う。この処理において、メインCPU66は、ウォッチドッグ出力データにクリアデータ(01H)をセットする。さらに、メインCPU66は、ウォッチドッグ出力データに基づく制御信号を初期リセット回路64に送信する。初期リセット回路64は、受信した制御信号に基づいてウォッチドッグタイマのクリアを行う。
なお、初期リセット回路64に設けられるウォッチドッグタイマでは、クリアされてから初期リセット回路64に接続されたコンデンサの容量で決定される所定時間(本実施形態では、3100ms)が経過すると、初期リセット回路64からメインCPU66へシステムリセット信号が出力される。メインCPU66はこの初期リセット回路64からのシステムリセット信号がリセット端子66aへ入力されるとシステムリセット状態となる。この処理が終了した場合、ステップS808に処理を移す。
ステップS808においては、乱数更新処理を行う。この処理において、メインCPU66は、乱数を更新する処理を行う。例えば、メインCPU66は、大当たり判定用乱数カウンタ、大当たり図柄決定用乱数カウンタ、普通図柄判定用乱数カウンタなどの乱数を更新する。なお、大当たり判定用乱数カウンタ及び大当たり図柄決定用乱数カウンタは、カウンタ値の更新タイミングが不定であると、公正さに欠けるものとなってしまうため、これを担保するために2ms毎の決まったタイミングで更新を行うようにしている。この処理が終了した場合、ステップS810に処理を移す。
ステップS810においては、スイッチ入力処理を行う。この処理において、メインCPU66は、スイッチに入力があったか否か判定する処理を行う。例えば、メインCPU66は、大入賞口39(図4参照)に設けられたカウントセンサ104(図5参照)や、一般入賞口56a、56b、56c、56d(図4参照)に設けられた一般入賞球センサ106、108、110、112(図5参照)や、通過ゲート54a、54b(図4参照)に設けられた通過球センサ114、115(図5参照)や、始動口25(図4参照)に設けられた始動入賞球センサ116(図5参照)からの検知信号を受信することによって、各スイッチが遊技球を検知したか判定する。メインCPU66は、検知したと判定した場合、検知に応じて、始動口入賞検知チェックカウンタや、大入賞口賞球カウンタや、一般入賞口賞球カウンタや、始動口賞球カウンタなどを更新する。
なお、スイッチ入力処理においては、上記のように各スイッチの入力状態を検出しており、チャタリングによる誤検出を防止するために、連続して2回の入力を検出したときに、遊技球の通過と判定している。この入力状態の検出タイミングについては、間隔が長いと、複数の遊技球が短時間に通過した場合に、正しく検出できなくなる可能性があるため、タイマ割込処理にて実行している。この処理が終了した場合、ステップS812に処理を移す。
ステップS812においては、レジスタ復帰処理を行う。この処理において、メインCPU66は、割込処理前の処理へ復帰するためにレジスタを復帰させる処理を行う。この処理が終了した場合には、本サブルーチンを終了する。このように、メインCPU66によって実行されるタイマ割込処理(ステップS802からステップS812)は、メインルーチンの実行中において、所定時間毎に発生する割込条件を契機として実行する割込ルーチンの一例である。
なお、本実施形態において、処理の一例を説明してきたが、本発明はこれに限定されず、コマンド送信に関する処理をシステムタイマ割込処理の所定回数実行した後に行うようにし、スイッチ入力処理をシステムタイマ割込処理にて実行するようにしていれば、メイン処理における他の処理(例えば、特別図柄制御処理)についてはシステムタイマ割込処理にて実行するようにしてもよい。
[電源断時処理]
図9を用いて、メインCPU66が電断検知信号のHからLへの信号の立下りを検知した際に実行される電源断時処理について以下に説明する。
ステップS902においては、レジスタ(AF)退避処理を行う。この処理において、メインCPU66は、レジスタを退避する処理を行う。この処理が終了した場合、ステップS904に処理を移す。
ステップS904において、メインCPU66は、電断検知信号がLであるか否かを判断する。電断検知信号がL(低)である場合には、ステップS908に処理を移し、電断検知信号がLでない場合には、ステップS906に処理を移す。なお、この処理において、電断検知信号の状態を検知することによって、電断検知信号の立下りがチャタリングによるものか否か判定することが可能である。
ステップS906においては、レジスタ復帰処理を行う。この処理において、メインCPU66は、レジスタを復帰させる処理を行う。この処理が終了した場合には、本処理の割込前の処理に復帰する。
ステップS908においては、レジスタ退避処理を行う。この処理において、メインCPU66は、レジスタを退避する処理を行う。この処理が終了した場合、ステップS910に処理を移す。
ステップS910においては、割込状態を割込フラグに反映させる処理を行う。この処理において、メインCPU66は、割込状態を割込フラグに反映させる処理を行う。この処理が終了した場合、ステップS912に処理を移す。
ステップS912においては、スタックポインタを退避させる処理を行う。この処理において、メインCPU66は、スタックポインタを退避させる処理を行う。この処理が終了した場合、ステップS914に処理を移す。
ステップS914においては、作業領域損傷チェック用データ生成処理を行う。この処理において、メインCPU66は、作業領域損傷チェック用データの生成処理を行う。この処理が終了した場合、ステップS916に処理を移す。
ステップS916においては、電断検知フラグをセットする処理を行う。この処理において、メインCPU66は、電断検知フラグをセットする処理を行う。この処理が終了した場合、ステップS918に処理を移す。
ステップS918においては、RAMアクセス禁止処理を行う。この処理において、メインCPU66は、RAMアクセスを禁止する処理を行う。この処理が終了した場合には、本サブルーチンを終了する。
[特別図柄制御処理]
図7のステップS740において実行されるサブルーチンについて図10を用いて説明する。なお、図10において、ステップS72からステップS81の側方に描いた数値は、それらのステップに対応する制御状態フラグを示し、その制御状態フラグの数値に応じて、その数値に対応する1つのステップが実行され、特別図柄ゲームが進行することになる。
最初に、図10に示すように、制御状態フラグをロードする処理を実行する(ステップS71)。この処理において、メインCPU66は、制御状態フラグを読み出す。この処理が終了した場合には、ステップS72に処理を移す。
なお、後述するステップS72からステップS81において、メインCPU66は、後述するように、制御状態フラグの値に基づいて、各ステップにおける各種の処理を実行するか否かを判断する。この制御状態フラグは、特別図柄ゲームの遊技の状態を示すものであり、ステップS72からステップS81における処理のいずれかを実行可能にするものである。また、それに加えて、メインCPU66は、各ステップに対して設定された待ち時間タイマなどに応じて決定される所定のタイミングで各ステップにおける処理を実行する。なお、この所定のタイミングに至る前においては、各ステップにおける処理を実行することなく終了することになり、他のサブルーチンを実行することになる。もちろん、所定の周期でタイマ割込処理(図8参照)も実行する。
ステップS72においては、特別図柄記憶チェック処理を実行する。詳しくは図11を用いて後述する。この処理が終了した場合には、ステップS73に処理を移す。
ステップS73においては、特別図柄変動時間管理処理を実行する。この処理において、メインCPU66は、制御状態フラグが特別図柄変動時間管理を示す値(01)であり、変動時間が経過した場合に、特別図柄表示時間管理を示す値(02)を制御状態フラグにセットするとともに、図柄停止コマンドを後述する演出制御コマンドデータとしてセットし、確定後待ち時間(例えば1秒)を待ち時間タイマにセットする。つまり、確定後待ち時間が経過した後、ステップS74の処理を実行するように設定する。また、上述のようにしてセットされた図柄停止コマンドは、図14において後述するコマンド出力制御処理にてコマンド出力される。この処理が終了した場合には、ステップS74に処理を移す。
ステップS74においては、特別図柄表示時間管理処理を実行する。この処理においては、メインCPU66は、制御状態フラグが特別図柄表示時間管理を示す値(02)であり、確定後待ち時間が経過した場合に、大当たりか否かを判断する。メインCPU66は、大当たりである場合に、大当たり開始インターバル管理を示す値(03)を制御状態フラグにセットするとともに、大当たり開始コマンドを後述する演出制御コマンドデータとしてセットし、大当たり開始インターバルに対応する時間(例えば10秒)を待ち時間タイマにセットする。つまり、大当たり開始インターバルに対応する時間が経過した後、ステップS75の処理を実行するように設定するのである。また、上述のようにしてセットされた大当たり開始コマンドは、図14において後述するコマンド出力制御処理にてコマンド出力される。一方、メインCPU66は、大当たりではない場合に、特別図柄ゲーム終了を示す値(07)をセットする。つまり、ステップS81の処理を実行するように設定するのである。この処理が終了した場合には、ステップS75に処理を移す。
ステップS75においては、大当たり開始インターバル管理処理を実行する。この処理において、メインCPU66は、制御状態フラグが大当たり開始インターバル管理を示す値(03)であり、その大当たり開始インターバルに対応する時間が経過した場合に、メインROM68から読み出された大入賞口39を開放させるためのデータをメインRAM70に記憶する。そして、メインCPU66は、図7のステップS750の処理において、メインRAM70に記憶された大入賞口39を開放させるためのデータを読み出し、大入賞口39を開放させる旨の信号を、大入賞口ソレノイド120に供給する。このように、メインCPU66などは、大入賞口39の開閉制御を行う。つまり、所定の有利な遊技状態(大入賞口39が遊技球を受け入れやすい開放状態から大入賞口39が遊技球を受け入れ難い閉鎖状態までの遊技状態)が提供される一のラウンドゲームを複数回繰り返し行う可能性がある特別遊技が実行されることになる。
さらに、メインCPU66は、大入賞口開放中を示す値(04)を制御状態フラグにセットするとともに、開放上限時間(例えば30秒)を大入賞口開放時間タイマにセットする。つまり、ステップS78の処理を実行するように設定するのである。さらに、メインCPU66は、メインRAM70内の特別遊技実行時間タイマを使用して特別遊技の実行時間の計測を開始する。また、メインCPU66は、「ラウンド1」を示す大入賞口開放コマンド(例えば、A201など)を演出制御コマンドデータとしてメインRAM70にセットする。このようにしてセットされた大入賞口開放コマンドは、図14において後述するコマンド出力制御処理にてコマンド送信される。この処理が終了した場合には、ステップS77に処理を移す。
ステップS77においては、大入賞口再開放前待ち時間管理処理を実行する。この処理において、メインCPU66は、制御状態フラグが大入賞口再開放前待ち時間管理を示す値(05)であり、ラウンド間インターバルに対応する時間が経過した場合に、大入賞口開放回数カウンタを“1”増加するように記憶更新する。メインCPU66は、大入賞口開放中を示す値(04)を制御状態フラグにセットする。メインCPU66は、開放上限時間(例えば30秒)を大入賞口開放時間タイマにセットする。つまり、ステップS78の処理を実行するように設定するのである。また、メインCPU66は、大入賞口開放回数カウンタを参照してこれに対応する大入賞口開放コマンド(例えば、大入賞口開放回数カウンタが8であれば「ラウンド8」に対応するA208)を演出制御コマンドデータとしてメインRAM70にセットする。このようにしてセットされた大入賞口開放コマンドは、図14において後述するコマンド出力制御処理にてコマンド送信される。これによって、副制御回路200において、実行するラウンドに対応するラウンドゲームの表示が実行されることになる。この処理が終了した場合には、ステップS78に処理を移す。
ステップS78においては、大入賞口開放中処理を実行する。この処理において、メインCPU66は、制御状態フラグが大入賞口開放中を示す値(04)である場合に、大入賞口入賞カウンタが“10”以上であるという条件、開放上限時間を経過した(大入賞口開放時間タイマが“0”である)という条件のいずれかを満たすか否かを判断する。メインCPU66は、いずれかの条件を満たした場合に、大入賞口39を閉鎖させるために,メインRAM70に位置付けられた変数を更新する。そして、大入賞口開放回数カウンタが大入賞口開放回数最大値以上である(最終ラウンドである)という条件を満たすか否かを判断する。メインCPU66は、この条件を満たした場合に、大当たり終了インターバルを示す値(06)を制御状態フラグにセットするとともに大当たり終了コマンド(例えば、確変大当たりA300、通常大当たりA301など)を後述する演出制御コマンドデータとしてセットし、大当たり終了インターバルに対応する時間を待ち時間タイマにセットする。つまり、大当たり終了インターバルに対応する時間が経過した後、ステップS80の処理を実行するように設定するのである。また、上述のようにしてセットされた大当たり終了コマンドは、図14において後述するコマンド出力制御処理にてコマンド送信される。一方、メインCPU66は、この条件を満たさない場合に、大入賞口再開放前待ち時間管理を示す値(05)を制御状態フラグにセットする。また、メインCPU66は、ラウンド間インターバルに対応する時間を待ち時間タイマにセットする。つまり、ラウンド間インターバルに対応する時間が経過した後、ステップS77の処理を実行するように設定するのである。また、メインCPU66は、ラウンド間インターバル表示コマンド(例えば、A100)を演出制御コマンドデータとしてメインRAM70にセットする。このようにしてセットされたラウンド間インターバル表示コマンドは、図14において後述するコマンド出力制御処理にてコマンド送信される。この処理が終了した場合には、ステップS80に処理を移す。
ステップS80においては、大当たり終了インターバル処理を実行する。この処理において、メインCPU66は、制御状態フラグが大当たり終了インターバルを示す値(06)であり、大当たり終了インターバルに対応する時間が経過した場合に、特別図柄ゲーム終了を示す値(07)を制御状態フラグにセットする。つまり、ステップS81の処理を実行するように設定するのである。また、メインCPU66は、確変状態となる場合には、確変フラグをメインRAM70の所定領域にセットする。また、メインCPU66は、時短状態となる場合には、メインRAM70の所定領域に時短状態フラグをセットし、時短回数に100をセットする。また、メインCPU66は、遊技状態コマンド(例えば、高確率状態(確変大当たり時)B001、低確率状態(通常大当たり時)B002など)を遊技状態コマンドデータとしてメインRAM70にセットする。このようにしてセットされた遊技状態コマンドは図13において後述する記憶・遊技状態コマンド制御処理にてコマンド送信される。これによって、副制御回路200において、遊技状態が認識可能となる。この処理が終了した場合には、ステップS81に処理を移す。なお、本実施形態において、時短回数に100がセットされているが、本発明はこれに限定されず、例えば、時短回数は150、200、300など他の時短回数であってもよい。また、この時短回数は、ステップS74の特別図柄表示時間管理処理において、大当たりではないと判定された場合に、時短状態であれば“1”減算され、“0”になると時短状態フラグをクリアして時短状態から通常遊技状態へ移行するとともに、遊技状態コマンド(例えば、低確率状態B000など)が遊技状態コマンドデータとしてメインRAM70にセットされる。
ステップS81においては、特別図柄ゲーム終了処理を実行する。この処理において、メインCPU66は、制御状態フラグが特別図柄ゲーム終了を示す値(07)である場合に、特別図柄に関する保留球数を示すデータ(始動記憶情報)を“1”減少するように記憶更新する。そして、メインCPU66は、次回の変動表示を行うために、特別図柄記憶領域の更新を行う。メインCPU66は、特別図柄記憶チェックを示す値(00)をセットする。つまり、ステップS72の処理を実行するように設定するのである。この処理が終了した場合には、本サブルーチンを終了する。
前述したように、制御状態フラグをセットすることにより、特別図柄ゲームが実行されることとなる。具体的には、メインCPU66は、図10に示すように、大当たり遊技状態ではない場合において、大当たり判定の結果がハズレであるときには、制御状態フラグを“00”、“01”、“02”、“08”と順にセットすることにより、図10に示すステップS72、ステップS73、ステップS74、ステップS81の処理を所定のタイミングで実行することとなる。また、メインCPU66は、大当たり遊技状態ではない場合において、大当たり判定の結果が大当たりであるときには、制御状態フラグを“00”、“01”、“02”、“03”と順にセットすることにより、図10に示すステップS72、ステップS73、ステップS74、ステップS75の処理を所定のタイミングで実行し、大当たり遊技状態への制御を実行することになる。さらには、メインCPU66は、大当たり遊技状態への制御が実行された場合には、制御状態フラグを“04”、“05”と順にセットすることにより、図10に示すステップS78、ステップS77の処理を所定のタイミングで実行し、特別遊技を実行することとなる。なお、特別遊技(大当たり遊技状態)の終了条件(特別遊技終了条件、大当たり遊技終了条件)が成立した場合には、“04”、“05”、“06”、“07”と順にセットすることにより、図10に示すステップS78からステップS81の処理を所定のタイミングで実行し、特別遊技を終了することになる。また、本実施形態においては、最大継続ラウンド数(本実施形態においては、“2”ラウンド又は“15”ラウンド)のラウンドゲームが終了することが特別遊技終了条件である。
[特別図柄記憶チェック処理]
図10のステップS72において実行されるサブルーチンについて、図11を用いて説明する。
最初に、図11に示すように、メインCPU66は、制御状態フラグが特別図柄記憶チェックを示す値(00)であるか否かを判断する(ステップS101)。制御状態フラグが特別図柄記憶チェックを示す値であると判断した場合には、ステップS102に処理を移し、制御状態フラグが特別図柄記憶チェックを示す値でないと判断した場合には、本サブルーチンを終了する。
ステップS102において、メインCPU66は、特別図柄に関する保留個数が“0”であるか否かを判断する。特別図柄に関する保留球数を示すデータが“0”であると判断した場合には、ステップS103に処理を移し、保留球数を示すデータが“0”でないと判断した場合には、ステップS104に処理を移す。
ステップS103においては、デモ表示処理を実行する。この処理において、メインCPU66は、副制御回路200にデモ表示を行わせるためにデモ表示コマンド(例えば、低確率時には、D000、高確率時には、D001、低確率時短時には、D002)を演出制御コマンドデータとしてメインRAM70にセットする。このようにしてセットされたデモ表示コマンドは図14において後述するコマンド出力制御処理としてコマンド出力される。これによって、副制御回路200において、デモ画面の表示が実行されることになる。この処理が終了した場合には、本サブルーチンを終了する。
ステップS104においては、制御状態フラグとして特別図柄変動時間管理を示す値(01)をセットする処理を実行する。この処理において、メインCPU66は、特別図柄変動時間管理を示す値を制御状態フラグに記憶する。この処理が終了した場合には、ステップS105に処理を移す。
ステップS105においては、大当たり判断処理を実行する。この処理において、メインCPU66は、現在の遊技状態(低確率時、高確率時(確変時))に対応する大当たり判定用テーブルを読み出し、始動入賞時に抽出された大当たり判定用乱数値と、読み出された大当たり判定用テーブルに割り当てられた大当たり判定値とを比較し、一致するか否かによって遊技者に有利な大当たり遊技状態とするか否かの判定を行う。
ステップS106においては、図柄決定処理を実行する。この処理において、メインCPU66は、ステップS105における判定結果が大当たりであれば、始動入賞時に抽出された大当たり図柄用乱数値を抽出し、この大当たり図柄用乱数値に基づいて、特別図柄表示器35に停止表示させる特別図柄(特定の図柄)を決定し、その特別図柄を示すデータをメインRAM70の所定領域に記憶する。一方、ステップS105における判定結果がハズレであれば、特別図柄表示器35に停止表示させる特別図柄を特定の図柄以外の図柄に決定し、その特別図柄を示すデータをメインRAM70の所定領域に記憶する。
また、メインCPU66は、決定した特別図柄に対応する停止図柄指定コマンド(例えば、81xx(停止図柄に応じて下位データが変化))を演出制御コマンドデータとしてメインRAM70にセットする。このようにしてセットされた停止図柄指定コマンドは、図14において後述するコマンド出力制御処理にてコマンド送信される。この処理が終了した場合には、ステップS109に処理を移す。
ステップS109においては、変動パターン決定処理を実行する。この処理において、メインCPU66は、演出条件選択用乱数値を抽出する。メインCPU66は、ステップS106により決定された特別図柄に基づいて、メインROM68に記憶される変動パターンテーブルから実行する変動パターンを選択する。
そして、メインCPU66は、選択した変動パターンに対応する変動パターン指定コマンド(例えば、82xx(変動パターンに応じて下位データが変化))を演出制御コマンドデータとしてメインRAM70にセットする。このようにしてセットされた変動パターン指定コマンドは、図14において後述するコマンド出力制御処理にてコマンド送信される。この処理が終了した場合には、ステップS110に処理を移す。
ステップS110においては、選択した変動パターンに対応する変動時間を待ち時間タイマにセットする処理を実行する。この処理において、メインCPU66は、ステップS109の処理により選択された変動パターンに対応する変動時間をテーブルより読み出し、その変動時間を示す値を待ち時間タイマに記憶する。そして、今回の変動表示に用いられた大当たり判定用乱数値などが記憶された記憶領域をクリアする処理を実行する(ステップS111)。この処理が終了した場合には、本サブルーチンを終了する。
[入賞口関連コマンド制御処理]
図12を用いて、入賞口関連コマンド制御処理について以下に説明する。
ステップS1002においては、カウントスイッチ異常入賞カウンタロード処理を行う。この処理において、メインCPU66は、カウントスイッチ異常入賞カウンタをロードする処理を行う。より詳しくは、メインCPU66は、アタッカー非開放時(大入賞口39が第2状態時)におけるカウントスイッチの検知毎値が増加されるカウントスイッチ異常入賞カウンタ値をロードする。この処理が終了した場合、ステップS1004に処理を移す。
ステップS1004において、メインCPU66は、カウンタ値が0より大きいか否かを判断する。メインCPU66が、カウントスイッチ異常入賞カウンタ値が0より大きいと判断した場合には、ステップS1006に処理を移し、カウントスイッチ異常入賞カウンタ値が0より大きいと判断しない場合には、ステップS1012に処理を移す。
ステップS1006においては、カウントスイッチ異常入賞カウンタの値を−1する処理を行う。この処理において、メインCPU66は、カウントスイッチ異常入賞カウンタの値を−1する処理を行う。この処理が終了した場合、ステップS1008に処理を移す。
ステップS1008においては、カウンタ異常入賞コマンドデータロード(D000)処理を行う。この処理において、メインCPU66は、カウンタ異常入賞コマンドデータ(D000)をロードしてコマンド出力データ格納領域へセットする処理を行う。この処理が終了した場合、ステップS1010に処理を移す。
ステップS1010においては、1コマンド送出処理を行う。この処理において、メインCPU66は、1コマンドを送出する処理を行う。1コマンド送出処理については、後述する。この処理が終了した場合、ステップS1012に処理を移す。
ステップS1012においては、始動口入賞検知チェックカウンタロード処理を行う。この処理において、メインCPU66は、始動口入賞検知チェックカウンタをロードする処理を行う。より詳しくは、メインCPU66は、始動入賞球センサ116の検知毎にカウンタ値を増加(図8のステップS810参照)される始動口入賞検知チェックカウンタをロードする。この処理が終了した場合、ステップS1014に処理を移す。
ステップS1014において、メインCPU66は、カウンタ値が0より大きいか否かを判断する。始動口入賞検知チェックカウンタ値が0より大きいと判断した場合には、ステップS1016に処理を移し、始動口入賞検知チェックカウンタ値が0より大きいと判断しない場合には、本サブルーチンを終了する。
ステップS1016においては、始動口入賞検知チェックカウンタの値を−1する処理を行う。この処理において、メインCPU66は、始動口入賞検知チェックカウンタの値を−1する処理を行う。この処理が終了した場合、ステップS1018に処理を移す。
ステップS1018においては、始動入賞コマンドデータロード(D100)処理を行う。この処理において、メインCPU66は、始動入賞コマンドデータ(D100)をロードしてコマンド出力データ格納領域にセットする処理を行う。この処理が終了した場合、ステップS1020に処理を移す。
ステップS1020においては、1コマンド送出処理を行う。この処理において、メインCPU66は、1コマンドを送出する処理を行う。1コマンド送出処理については、後述する。この処理が終了した場合には、本サブルーチンを終了する。
[記憶・遊技状態コマンド制御処理]
図13を用いて、記憶・遊技状態コマンド制御処理について以下に説明する。
ステップS1102においては、遊技状態コマンドデータロード処理を行う。この処理において、メインCPU66は、遊技状態の変化時に遊技状態に関する遊技状態コマンドデータ(B000=低確率状態
B001=高確率状態 B002=低確率時短状態)をロードしてコマンド出力データ格納領域へセットする処理を行う。この処理が終了した場合、ステップS1104に処理を移す。
ステップS1104において、メインCPU66は、遊技状態コマンドがコマンド出力データ格納領域にセットされたか否かを判断する。メインCPU66は、ステップS1102において遊技状態コマンドがセットされた場合には、ステップS1106に処理を移し、遊技状態コマンドがセットされていない場合には、ステップS1108に処理を移す。
ステップS1106においては、1コマンド送出処理を行う。この処理において、メインCPU66は、1コマンドを送出する処理を行う。1コマンド送出処理については、後述する。この処理が終了した場合には、ステップS1108に処理を移す。
ステップS1108においては、特別図柄記憶表示コマンドデータロード処理を行う。この処理において、メインCPU66は、特別図柄に関する保留球データが変更したことに伴う特別図柄記憶表示コマンドデータをロードする処理を行う。より具体的には、メインCPU66は、保留球数が1個から0個に変化したときは、特別図柄記憶表示コマンドデータとして、E000をロードする。メインCPU66は、保留球数が2個、0個から1個に変化したときは、特別図柄記憶表示コマンドデータとして、E001をロードする。メインCPU66は、保留球数が3個、1個から2個に変化したときは、特別図柄記憶表示コマンドデータとして、E002をロードする。メインCPU66は、保留球数が4個、2個から3個に変化したときは、特別図柄記憶表示コマンドデータとして、E003をロードする。メインCPU66は、保留球数が3個から4個に変化したときは、特別図柄記憶表示コマンドデータとして、E004をロードする。これらのコマンドデータがロードされた場合にはコマンド出力データ格納領域にセットされる。この処理が終了した場合には、ステップS1110に処理を移す。
ステップS1110において、メインCPU66は、特別記憶表示コマンドがコマンド出力データ格納領域にセットされたか否かを判断する。特別記憶表示コマンドがセットされた場合には、ステップS1112に処理を移し、特別記憶表示コマンドがセットされていない場合には、本サブルーチンを終了する。
ステップS1112においては、1コマンド送出処理を行う。この処理において、メインCPU66は、1コマンドを送出する処理を行う。1コマンド送出処理については、後述する。この処理が終了した場合には、本サブルーチンを終了する。
[コマンド出力制御処理]
図14を用いて、コマンド出力制御処理について以下に説明する。
ステップS1202においては、演出制御コマンドデータロード処理を行う。この処理において、メインCPU66は、特別図柄制御処理(図10、図11参照)の結果に基づいてセットされた演出制御コマンドデータをロードし、コマンド出力データ格納領域にセットする処理を行う。より具体的には、メインCPU66は、遊技の進行に応じて以下のコマンドデータをコマンド出力データ格納領域にセットする。メインCPU66は、デモ表示開始時(図11のステップS103)にはデモ表示コマンドとして、低確率時には、D000、高確率時には、D001、低確率時短時には、D002をコマンド出力データ格納領域にセットする。また、メインCPU66は、特別図柄変動開始時(図11のステップS109)には、変動パターン指定コマンドを送信し、さらに次の本処理にて停止図柄指定コマンドを送信する。この際、メインCPU66は、変動パターン指定コマンドとして、82xx(、変動パターンに応じて下位データが変化)、停止図柄指定コマンドとして、81xx(停止図柄に応じて下位データが変化)をコマンド出力データ格納領域にセットする。メインCPU66は、特別図柄変動停止時(図10のステップS73)には、図柄停止コマンドとして、8000をコマンド出力データ格納領域にセットする。メインCPU66は、大当たり開始時(図10のステップS74)には、大当たり開始コマンドとして、A000をコマンド出力データ格納領域にセットする。メインCPU66は、大入賞口開放開始(図10のステップS75、S77)には、大入賞口開放中コマンドとして、A2xx(ラウンドに応じて下位データが変化)をコマンド出力データ格納領域にセットする。メインCPU66は、ラウンド間インターバル開始時(図10のステップS78)には、ラウンド間インターバル表示コマンドとして、A100をコマンド出力データ格納領域にセットする。メインCPU66は、大当たり終了時(図10のステップS78)には、大当たり終了コマンドとして、A300(確変大当たり)、A301(通常大当たり)をコマンド出力データ格納領域にセットする。この処理が終了した場合、ステップS1204に処理を移す。
ステップS1204において、メインCPU66は、演出制御コマンドがセットされたか否かを判断する。演出制御コマンドがセットされた場合には、ステップS1206に処理を移し、演出制御コマンドがセットされていない場合には、本サブルーチンを終了する。
ステップS1206においては、1コマンド送出処理を行う。この処理において、メインCPU66は、1コマンドを送出する処理を行う。1コマンド送出処理については、後述する。この処理が終了した場合には、本サブルーチンを終了する。
[1コマンド送出処理]
図15を用いて、図12のステップS1010、ステップS1020、図13のS1106、ステップS1112、図14のステップS1206において実行される1コマンド送出処理について以下に説明する。
ステップS1302においては、コマンド出力データ格納領域にセットされたコマンドの上位バイトをセットする処理を行う。この処理において、メインCPU66は、コマンド出力データ格納領域にセットされたコマンドの上位バイトをシリアル通信用IC72の副制御通信用バッファ72aにセットする処理を行う。この処理が終了した場合、ステップS1304に処理を移す。
ステップS1304においては、コマンド1バイト送出処理を行う。この処理において、メインCPU66は、コマンド1バイトを送出する処理を行う。コマンド1バイト送出処理については、後述する。この処理が終了した場合には、ステップS1306に処理を移す。
ステップS1306においては、コマンド出力データ格納領域にセットされたコマンドの下位バイトをセットする処理を行う。この処理において、メインCPU66は、コマンド出力データ格納領域にセットされたコマンドの下位バイトをシリアル通信用IC72の副制御通信用バッファ72aにセットする処理を行う。この処理が終了した場合、ステップS1308に処理を移す。
ステップS1308においては、コマンド1バイト送出処理を行う。この処理において、メインCPU66は、コマンド1バイトを送出する処理を行う。コマンド1バイト送出処理については、後述する。この処理が終了した場合には、ステップS1310に処理を移す。
ステップS1310においては、コマンド出力データ格納領域にクリアデータをセットする処理を行う。この処理において、メインCPU66は、コマンド出力データ格納領域にクリアデータをセットする処理を行う。この処理が終了した場合、本サブルーチンを終了する。
[コマンド1バイト送出処理]
図16を用いて、図15のステップS1304、ステップS1310において実行されるコマンド1バイト送出処理について以下に説明する。
ステップS1402においては、ループカウンタに60をセットする処理を行う。この処理において、メインCPU66は、メインRAM70に記憶されるループカウンタの値に60をセットにする処理を行う。この処理が終了した場合、ステップS1404に処理を移す。なお、本実施形態において、期間を300μsより少し長くするため、ループカウンタの値として、60がセットされているが、本発明はこれに限定されず、通信不良が発生した場合に、セットされたコマンドの送信を防げるいかなるカウント数であってもよい。
ステップS1404においては、SIOステータスポート(出力バッファ)チェック処理を行う。この処理において、メインCPU66は、SIOステータスポート(出力バッファ)をチェックする処理を行う。なお、本実施形態において、1バイトコマンド送信時間は約298.9μsである。また、コマンド送信完了まではシリアル通信用IC72の出力バッファ(副制御通信用バッファ72a)にデータが存在する。データが存在する限りは次バイトのコマンドデータの送信を待機させている。この処理が終了した場合、ステップS1406に処理を移す。
ステップS1406において、メインCPU66は、シリアル通信用IC72の出力バッファ(副制御通信用バッファ72a)が1であるか否かを判断する。出力バッファが1である場合には、ステップS1408に処理を移し、出力バッファが1でない場合には、ステップS1412に処理を移す。
ステップS1408においては、ループカウンタの値を−1する処理を行う。この処理において、メインCPU66は、ループカウンタの値を−1する処理を行う。この処理が終了した場合、ステップS1410に処理を移す。
ステップS1410において、メインCPU66は、ループカウンタの値が0であるか否かを判断する。ループカウンタの値が0である場合には、通信不良と判断してコマンド送信を行わず、本サブルーチンを終了し、ループカウンタが0でない場合には、ステップS1404に処理を移す。
ステップS1412においては、セットされたコマンドをシリアル通信用ICへ出力する処理を行う。この処理において、メインCPU66は、セットされたコマンドをシリアル通信用IC72へ出力する処理を行う。この処理が終了した場合、本サブルーチンを終了する。
[払出処理]
図17と図18とを用いて、払出処理について以下に説明する。
ステップS1502においては、大入賞口賞球カウンタロード処理を行う。この処理において、メインCPU66は、大入賞口賞球カウンタをロードする処理を行う。この処理が終了した場合、ステップS1504に処理を移す。
ステップS1504において、メインCPU66は、カウンタ値が0より大きいか否かを判断する。大入賞口賞球カウンタ値が0より大きいと判断した場合(入賞がある場合)には、ステップS1514に処理を移し、大入賞口賞球カウンタ値が0より大きいと判断しない場合には、ステップS1506に処理を移す。
ステップS1506においては、一般入賞口賞球カウンタロード処理を行う。この処理において、メインCPU66は、一般入賞口賞球カウンタをロードする処理を行う。この処理が終了した場合、ステップS1508に処理を移す。
ステップS1508において、メインCPU66は、カウンタ値が0より大きいか否かを判断する。一般入賞口賞球カウンタ値が0より大きいと判断した場合(入賞がある場合)には、ステップS1516に処理を移し、一般入賞口賞球カウンタ値が0より大きいと判断しない場合には、ステップS1510に処理を移す。
ステップS1510においては、始動口賞球カウンタロード処理を行う。この処理において、メインCPU66は、始動口賞球カウンタをロードする処理を行う。この処理が終了した場合、ステップS1512に処理を移す。
ステップS1512において、メインCPU66は、カウンタ値が0より大きいか否かを判断する。始動口賞球カウンタ値が0より大きいと判断した場合(入賞がある場合)には、ステップS1518に処理を移し、始動口賞球カウンタ値が0より大きいと判断しない場合には、本サブルーチンを終了する。
ステップS1514においては、賞球コマンド(8F)をセットする処理を行う。この処理において、メインCPU66は、15球分の賞球を示す賞球コマンド(8F)をセットする処理を行う。この処理が終了した場合、ステップS1602(図18参照)に処理を移す。
ステップS1516においては、賞球コマンド(8A)をセットする処理を行う。この処理において、メインCPU66は、10球分の賞球を示す賞球コマンド(8A)をセットする処理を行う。この処理が終了した場合、ステップS1602に処理を移す。
ステップS1518においては、賞球コマンド(83)をセットする処理を行う。この処理において、メインCPU66は、3球分の賞球を示す賞球コマンド(83)をセットする処理を行う。この処理が終了した場合、ステップS1602に処理を移す。
ステップS1602においては、SIOステータスポート(出力バッファ)チェック処理を行う。この処理において、メインCPU66は、SIOステータスポート(シリアル通信用IC72の出力バッファ)をチェックする処理を行う。この処理が終了した場合、ステップS1604に処理を移す。
ステップS1604において、メインCPU66は、出力バッファが1であるか否かを判断する。シリアル通信用IC72の出力バッファ(払出・発射制御回路用バッファ72b)が1であると判断した場合には、本サブルーチンを終了し、出力バッファが1でないと判断した場合には、ステップS1606に処理を移す。
ステップS1606においては、ロードされた賞球カウンタ値を−1する処理を行う。この処理において、メインCPU66は、ロードされた賞球カウンタ値を−1する処理を行う。この処理が終了した場合、ステップS1608に処理を移す。
ステップS1608においては、セットされた賞球コマンドをシリアル通信用ICへ出力する処理を行う。この処理において、メインCPU66は、セットされた賞球コマンドをシリアル通信用IC72へ出力する処理を行う。この処理が終了した場合、本サブルーチンを終了する。
[サブ制御メイン処理]
図19を用いて、サブ制御メイン処理を説明する。
ステップS1710においては、初期化処理を行う。この処理において、サブCPU206は、電源投入に応じて、プログラムROM208から起動プログラムを読み込むとともに、ワークRAM210に記憶されるフラグなどを初期化し、設定する処理を行う。この処理が終了した場合には、ステップS1720に処理を移す。
ステップS1720においては、乱数更新処理を行う。この処理において、サブCPU206は、ワークRAM210に記憶される乱数を更新する処理を行う。この処理が終了した場合には、ステップS1730に処理を移す。
ステップS1730においては、コマンド解析制御処理を行う。この処理において、サブCPU206は、主制御回路60から受信し、ワークRAM210の受信バッファに格納されるコマンドを解析する処理を行う。この処理が終了した場合には、ステップS1740に処理を移す。
ステップS1740においては、表示制御処理を行う。この処理において、サブCPU206は、液晶表示装置32において表示を行うためのデータを表示制御回路250に送信する。表示制御回路250は、表示を行うためのデータを表示制御回路250に送信する。表示制御回路250において、VDP212は、サブCPU206からの演出画像を表示するためのデータに基づいて、背景画像データ、演出用画像データなど、各種の画像データを画像データROM216から読み出し、重ね合わせて、液晶表示装置32の表示領域32a上に表示させる。この処理が終了した場合には、ステップS1750に処理を移す。このように、液晶表示装置32は、遊技の進行に応じて所定の演出を行う演出手段の一例である。
ステップS1750においては、音制御処理を行う。この処理において、サブCPU206は、音を出力するためのデータを音声制御回路230に送信する。音声制御回路230は、サブCPU206からの音を出力するためのデータに基づいて、音声データROM234から曲データ、効果音データ、声データなどの、各種音データを読み出し、音を重ね合わせ、AMP236で増幅し、スピーカ46から出力する。この処理が終了した場合には、ステップS1760に処理を移す。このように、スピーカ46は、遊技の進行に応じて所定の演出を行う演出手段の一例である。
ステップS1760においては、ランプ制御処理を行う。この処理において、サブCPU206は、ランプを点灯するためのデータを駆動回路240に送信する。駆動回路240は、サブCPU206からのランプを点灯するためのデータに基づいて、装飾データROM244から各種の点灯パターンデータを読み出し、ランプ132を点灯する。この処理が終了した場合には、ステップS1720に処理を移す。なお、ステップS1740からS1760における各種演出は、ワークRAM210に記憶されるタイマによって、それぞれの演出時間が管理される。このように、ランプ132は、遊技の進行に応じて所定の演出を行う演出手段の一例である。また、このように、副制御回路200は、演出手段の制御を行うための演出制御処理を実行する演出制御回路の一例である。また、このように、サブCPU206によって実行されるステップS1740からS1760は、演出時間管理処理による演出時間の管理に基づいて演出手段の制御を行う処理の一例である。
[タイマ割込処理]
また、サブCPU206は、サブ制御メイン処理を実行している状態であっても、サブ制御メイン処理を中断させ、タイマ割込処理を実行する場合がある。サブCPU206は、所定の周期毎にクロックパルスを発生させ、これに応じて、以下のタイマ割込処理を実行する。図20を用いて、タイマ割込処理を説明する。
ステップS2010においては、各レジスタを退避させる処理を行う。この処理において、サブCPU206は、ワークRAM210の各レジスタ(記憶領域)に記憶される実行中のプログラムにおいて使用されていた値を退避させる処理を行う。この処理が終了した場合には、ステップS2020に処理を移す。
ステップS2020においては、タイマ更新処理を行う。この処理において、サブCPU206は、ワークRAM210に記憶されるタイマの値を更新する処理を行う。この処理が終了した場合、ステップS2030に処理を移す。このように、サブCPU206によって実行されるステップS2020は、主制御回路から送信された演出コマンドに応じて演出コマンドに対応する演出時間の管理を独自に行う演出時間管理処理の一例である。
ステップS2030においては、コマンド受信処理を行う。この処理において、サブCPU206は、主制御回路60から送信されたコマンドを受信バッファに記憶する処理を行う。この処理が終了した場合には、ステップS2040に処理を移す。
ステップS2040においては、各レジスタを復帰させる処理を行う。この処理において、サブCPU206は、ステップS2010で退避した値を各レジスタに復帰させる処理を行う。この処理が終了した場合には、本サブルーチンを終了する。
[従来の制御との比較]
図21を用いて、本発明と従来の遊技機における制御とを対比して説明する。図21(A)は、従来の遊技機で行われている制御を示すタイムチャートである。図21(B)は、本実施形態における制御を示すタイムチャートである。図21(A)、図21(B)ともに、上に書かれた数字は、割込回数カウンタ値(システムタイマ監視タイマの値)を示し、上向きの矢印は、割り込み回数の判定時期を示している。
本実施例においては、メイン処理(図6、図7)にて、電源復帰時処理を行った後、初期値乱数カウンタの更新を行う初期値乱数更新処理(ステップS730)と、後述するシステムタイマ監視タイマ値の判定を行う処理(ステップS734)と、(これらが第1の処理に該当)をループする。
図21(A)や図21(B)に示すように、従来の制御でも本実施形態の制御においても、メイン処理(第1の処理)の実行中に割込タイマが2msの経過を検出した場合には、割込禁止状態(マスク状態)でないことを条件にタイマ割込処理(図8参照)を実行する。なお、マスク状態にあるときは、マスクが解除されたときにタイマ割込処理を実行する。
タイマ割込処理においては、システムタイマ監視タイマ(ステップS804)をインクリメントするとともに、2ms毎の動作の必要性のある大当たり判定用乱数カウンタ値、大当たり図柄決定用乱数カウンタ値及び普通図柄当たり判定用乱数カウンタ値の更新を行う乱数更新処理(ステップS808)と、各入賞口やゲートを通過した遊技球を検出するスイッチ入力処理(ステップS810)を実行する。
なお、タイマ割込処理は2ms毎の実行が確保されなけれる必要があり、また、タイマ割込処理における処理があまりにも多いと、タイマ割込処理の実行中に上記割込発生条件が成立することとなってしまい、多重割込みや割込不能といった事態が引き起こされる可能性があるため、タイマ割込処理においては、極力処理数が少ない方が好ましい。このため、時間管理の必要性がありながら、2ms毎の実行の担保の必要がない処理については、後述する第2の処理中において実行されることとなる。これにより、遊技の制御にゆとりを持たせることができるとともに、時間管理の正確性が確保される。
また、図21(A)や図21(B)に示すように、従来の制御でも本実施形態の制御においても、システムタイマ監視タイマ値の判定においては(ステップS734)、システムタイマ監視タイマ値が「3」以上であるか、すなわち、タイマ割込処理が2ms毎に行われるため、6msが経過しているか否かが判定される。
システムタイマ監視タイマ値が「3」以上を示している場合には、6msが経過したものと判定し、図7に記載された各処理(ステップS736からステップS758
第2の処理)を実行し、その後、上記第1の処理を実行する。
第2の処理においては、まず、システムタイマ監視タイマ値を「3」減算する処理を行う(ステップS736)。図21(A)に示すように、従来の制御では、システムタイマ監視タイマ値をクリアしていたが、クリアしてしまうと、システムタイマ監視タイマ値が「4」以上を示していた場合には6ms毎の第2の処理の実行が担保できなくなってしまう。
このように、システムタイマ監視タイマ値をクリアした場合は、前回の第2の処理から今回の処理まで8msかかっていた場合でも、次回の第2の処理の実行については、6ms経過後になされてしまうので、6msあたりの第2の処理の実行回数は「1」を満たないものとなってしまい、遊技の進行の正確性が担保されないものとなってしまう。
また、パチンコ遊技機においては、主制御回路60と、副制御回路200とは、それぞれ割込処理(例えば、図8、図20参照)を行っている。また、パチンコ遊技機においては、主制御回路60から副制御回路200へのデータの移動は、主制御回路60から副制御回路200への一方向にしか移動しない。このため、従来の制御では、主制御回路60と、副制御回路200との処理のタイミングがずれる可能性があり、遊技機を長期間実行していった場合、この処理のタイミングのずれが累積してしまうため、遊技の進行に異常をきたす可能性がある。
これに対して、本実施形態においては、図21(B)に示すように、システムタイマ監視タイマ値を「3」減算するようにしたので、システムタイマ監視タイマ値が「4」以上を示していた場合には、そのときは前回の第2の処理から今回の処理まで8msかかっていたとしても、次回の第2の処理の実行については、4ms経過後にされることから、帳尻が合い、長時間のスパンで見た場合に、6msあたり1回の第2の処理の実行が確保されることとなるため、遊技の進行の正確性が担保できる。
[別実施形態]
2ms毎に実行される割込処理は2ms以内であって、メイン処理を行う必要があることから、かなりの時間的余裕を持たせて組まなければならないため、処理数は少ないほうが好ましいが、第2の処理内のサブルーチンの一部を割込処理にて実行させるようにしてもよい。なお、コマンド出力制御処理と試験信号が出力される遊技情報データ生成処理については、第2の処理にて行うのが好ましい。
以上、説明したように、本実施形態によれば、割込回数判定処理にて計数値(例えば、割込み回数カウンタの値)が所定の判定値(例えば、「3」)以上であると判定された場合に、所定の処理を行った後に第1の処理へ移行する第2の処理を行い、この第2の処理の実行を契機として、記憶手段(例えば、メインRAM70)に記憶された計数値(例えば、割込み回数カウンタの値)から判定値(例えば、「3」)と同値の減算を行い、減算後の値を計数値として記憶手段(例えば、メインRAM70)に記憶する割込回数減算処理とを行う。これにより、例えば、計数値(例えば、割込み回数カウンタの値)が「4」の場合、判定値(例えば、「3」)と同値の減算を行うことによって、計数値(例えば、割込み回数カウンタの値)が「1」となり、割込ルーチンがあと2回実行されると、第2の処理が実行される。このように、第2の処理が一定時間あたりに一度は必ず実行されることになるので、長時間の動作においても遊技制御の正確性が担保でき、信頼性の高い遊技機を提供することができる。
また、本実施形態によれば、一定時間あたりに一度は必ず実行される第2の処理において、計時手段(例えば、タイマ)の更新を行うタイマ更新処理が実行される。このため、長時間の動作においても、一定時間あたりに一度は計時手段が更新されるため時間の管理がほぼ正確に行うことが可能となる。このように、長時間の動作においても遊技制御の正確性が担保でき、信頼性の高い遊技機を提供することができる。
また、本実施形態によれば、一定時間あたりに1度は必ず実行される第2の処理において、主制御回路60から演出制御回路(副制御回路200)へ演出時間が特定可能な演出コマンドを送信するコマンド送信処理を実行する。さらに、演出制御回路(副制御回路200)は、演出コマンドに応じて演出コマンドに対応する演出時間の管理を独自に行い、この演出時間の管理にもとついて演出手段(例えば、液晶表示装置32やスピーカ46)の制御を行う。このため、長時間の動作においても、一定時間当たり一度は演出コマンドが送信され得るため、主制御回路60の処理と、演出制御回路(副制御回路200)との処理のタイミングが一致し、主制御回路60における処理と演出制御回路(副制御回路200)における処理とで、同期が取れるので動作に矛盾が生じないため、制御負担の軽減とともに、動作の正確性が担保できる。このように、長時間の動作においても遊技制御の正確性が担保でき、信頼性の高い遊技機を提供することができる。
以上、本発明の実施形態を説明したが、具体例を例示したに過ぎず、特に本発明を限定するものではない。すなわち、本発明は、主に、遊技の進行を制御する遊技制御手段と、遊技に基づくデータを記憶する記憶手段とを備え、前記遊技制御手段は、遊技の進行を制御するルーチンであって、電源供給開始後、所定の電源投入時処理を行った後は、所定の第1の処理を繰り返し実行するメインルーチンと、前記メインルーチンの実行中において、所定時間毎に発生する割込条件を契機として実行する割込ルーチンと、前記割込ルーチンにおいて実行され、前記割込ルーチンが実行された回数を計数し、前記記憶手段に計数値として記憶する割込回数計数処理と、前記第1の処理において、前記記憶手段に記憶された計数値が所定の判定値以上であるか否かを判定する割込回数判定処理と、前記メインルーチンにおいて実行され、前記割込回数判定処理にて計数値が所定の判定値以上であると判定された場合に、所定の処理を行った後に第1の処理へ移行する処理を行う第2の処理と、前記第2の処理の実行を契機として、前記記憶手段に記憶された計数値から判定値と同値の減算を行い、減算後の値を計数値として前記記憶手段に記憶する割込回数減算処理とを行うことを特徴とする遊技機であるが、遊技制御手段、記憶手段などの具体的構成は、適宜設計変更可能である。
なお、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。