[第1実施形態]
以下、本発明の好適な実施の形態を図面に基づいて説明する。なお、遊技機の説明における前後左右とは、遊技中の遊技者から見た方向を指すものとする。
〔遊技機全体図〕
図1は、遊技機を説明する図である。
遊技機10は島設備に固定される枠11に、ヒンジを介して開閉回動自在に取り付けられる開閉枠を備える。開閉枠は、前面枠12(本体枠)及びガラス枠15によって構成されている。
前面枠12には、遊技盤30(図2参照)が配設されるとともに、遊技盤30の前面を覆うカバーガラス14を有するガラス枠15が取り付けられる。カバーガラス14は、遊技盤30に形成される遊技領域32(図2参照)を視認可能とする遊技視認領域として機能する。
前面枠12及びガラス枠15は、それぞれ個別に開放することが可能となっている。例えば、ガラス枠15のみを開放することで、遊技盤30の遊技領域32にアクセスすることができる。また、前面枠12をガラス枠15が開放されていない状態で開放することで、遊技盤30の裏面側に配設された遊技制御装置(主基板)100(図3参照)等にアクセスすることができる。
ガラス枠15のカバーガラス14周囲の縁部分には、種々の枠構成部材が配設されている。
ガラス枠15の上部中央及び左側部には、遊技状態に応じて発光演出可能な装飾装置18a,18bが配設されている。装飾装置18a,18bは、内部にLED等の照明部材を収容しており、遊技状態に応じた発光演出を行う。これら装飾装置18a,18bの内部に配設される照明部材は、枠装飾装置18(図4参照)の一部を構成している。
ガラス枠15の上右角部分及び上左角部分には、上スピーカ19aがそれぞれ配設される。これら上スピーカ19aとは別に遊技機10の下部には、2つの下スピーカ19bが設けられている。下スピーカ19bは、ガラス枠15の下左角部分及び前面枠12の下右角部分に配設されている。これら上スピーカ19a及び下スピーカ19bは、効果音や警報音、報知音等を発するものである。
ガラス枠15の右側部には、遊技機10の上下方向に延設されるとともに、前方(遊技者側)に向かって突出する突出演出ユニット13が配設されている。突出演出ユニット13は、遊技の進行状態に応じて発光演出等を行う演出装置である。突出演出ユニット13の内部に配設される照明部材も枠装飾装置18(図4参照)の一部を構成している。
ガラス枠15の下部には、遊技球を貯留可能な上皿21を有する上皿ユニットが取り付けられている。上皿21は、上面が開口した箱状に形成されている。上皿21に貯留されている遊技球は、一球ずつ球発射装置(図示省略)に供給される。
上皿ユニットは、遊技者からの入力操作を受け付ける演出操作装置と、遊技者からの入力操作を受け付ける球貸操作装置と、遊技状態に応じて発光演出等を行う装飾装置22と、をさらに備える。
演出操作装置は、演出ボタン25にタッチパネル25bを組み込んだ操作装置であり、遊技者が操作しやすいように上皿ユニットの上部中央に設けられている。
遊技者が演出操作装置を操作することによって、表示装置41(図2参照)に表示される特図変動表示ゲーム等において遊技者の操作を介入させた演出を行うことができる。例えば、演出パターン(演出態様)を選択したり、始動記憶に対応する変動表示ゲームの結果を事前に予告する予告演出を実行したりすることができる。なお、変動表示ゲームには特図変動表示ゲームが含まれ、単に変動表示ゲームとした場合には、本明細書では特図変動表示ゲームを指すものとする。
また、変動表示ゲームの実行中だけでなく、非実行中に遊技者が演出操作装置を操作することによっても演出パターンを変更するようにしてもよい。
なお、変動表示ゲームが実行される際の遊技状態は、複数の遊技状態からなる。通常遊技状態(通常状態)とは、特別な遊技状態が発生していない遊技状態である。また、特別な遊技状態とは、例えば、特定遊技状態としての時短状態や変動表示ゲームにおいて特別結果(例えば大当り)の発生確率が高い状態(確変状態、確率変動状態)、大当り状態(特別遊技状態)、小当り遊技状態(小当り状態)である。
ここで、確変状態(特定遊技状態)は、次の大当りが発生するまで継続するもの(ループタイプ)、所定回数の変動表示ゲームが実行されるまで継続するもの(回数切りタイプ、ST)、及び所定の確率転落抽選に当選するまで継続するもの(転落抽選タイプ)等がある。
さらに、確変状態を発生させるか否かを大当り図柄乱数によって決定せずに、大当りが発生した場合に必ず確変状態を発生させるようにしてもよいし、特定領域を備える入賞装置等を設け、特定領域を遊技球が通過した場合に確変状態を発生させるようにしてもよい。
球貸操作装置は、遊技者が遊技球を借りる場合に操作する操作装置であって、上皿ユニットの上部右側に設けられている。球貸操作装置は、球貸ボタン27と、返却ボタン28と、残高表示部26と、を備えている。球貸ボタン27は遊技球を借りる場合に遊技者が操作するボタンであり、返却ボタン28は遊技機10に隣接するように配置されるカードユニット(図示省略)からプリペイドカード等を排出させる場合に遊技者が操作するボタンである。残高表示部26は、プリペイドカード等の残高が表示される表示領域である。
装飾装置22は、内部にLED等の照明部材を収容しており、遊技状態に応じて発光演出等を行う装置であって、上皿ユニットの前側部分に設けられている。装飾装置22の内部に配設される照明部材は、枠装飾装置18(図4参照)の一部を構成している。
上記した上皿ユニット等を備えるガラス枠15の下方であって、前面枠12の下部には、球発射装置(図示省略)の動作を制御するための操作ハンドル24と、遊技球を貯留可能な下皿23とが設けられている。
操作ハンドル24は、前面枠12の右下部であって、右側の下スピーカ19bの下方に配置されている。遊技者が操作ハンドル24を回動操作することによって、球発射装置は上皿21から供給された遊技球を遊技盤30の遊技領域32に発射する。球発射装置から発射される遊技球の発射速度は、操作ハンドル24の回動操作量が大きくなるほど速くなるように設定されている。即ち、球発射装置は、遊技領域に遊技球を発射する勢(速度)である発射勢を、遊技者による操作ハンドル24の操作に対応して変更でき、発射勢の異なる種々の発射態様で遊技球を発射できる。発射態様には、遊技領域32の左側において遊技球を流下させる左打ち(通常打ち)と、遊技領域32の右側において遊技球を流下させる右打ちが含まれる。
下皿23は、上皿ユニットに対して所定の間隔をあけて、上皿ユニットの下方に配置されている。下皿23は、当該下皿23の底面を上下方向に貫通する球抜き穴23aと、球抜き穴23aを開閉するための開閉操作部23bと、を有している。遊技者が開閉操作部23bを操作して、球抜き穴23aを開くことによって、下皿23に貯留されていた遊技球を球抜き穴23aを通じて外部に排出することができる。
〔遊技盤〕
続いて、図2Aを参照して、遊技機10の遊技盤30について説明する。図2Aは、遊技機10に備えられる遊技盤30の正面図である。
図2Aに示すように、遊技盤30は、各種部材の取付ベースとなる平板状の遊技盤本体30aを備える。遊技盤本体30aは木製又は合成樹脂製であって、当該遊技盤本体30aの前面にはガイドレール31で囲まれた遊技領域32が設けられている。遊技機10は、ガイドレール31で囲まれた遊技領域32内に球発射装置から遊技球を発射して遊技を行うように構成されている。遊技領域32には遊技球の流下方向を変換する部材として風車や障害釘等が配設されており、発射された遊技球はこれら部材により転動方向を変えながら遊技領域32を流下する。
遊技領域32の略中央には、変動表示ゲームの表示領域となる窓部を形成するセンターケース(前面構成体)40が取り付けられている。センターケース40に形成された窓部の後方には、複数の識別情報を変動表示(可変表示)する演出表示装置(変動表示装置)としての表示装置41(表示手段)が配置されている。表示装置41は、例えば、液晶ディスプレイを備え、センターケース40の窓部を介して遊技盤30の前面側から表示内容が視認可能となるように配置される。なお、表示装置41は、液晶ディスプレイを備えるものに限らず、ELやCRT等のディスプレイを備えるものであってもよい。
表示装置41の表示画面(表示部)には、複数の変動表示領域が設けられており、各変動表示領域に識別情報(特別図柄)や変動表示ゲームを演出するキャラクタが表示される。その他、表示画面には遊技の進行に基づく画像(大当り表示やファンファーレ表示、エンディング表示等)が表示される。
また、センターケース40には、遊技領域32を流下する遊技球をセンターケース40の内側に導くためのワープ通路40eへの流入口40aと、ワープ通路40eを通過した遊技球が転動可能なステージ部40bとが設けられている。センターケース40のステージ部40bは、始動入賞口36及び普通変動入賞装置37の上方に配置されているため、ステージ部40b上で転動した遊技球は始動入賞口36又は普通変動入賞装置37に入賞しやすくなっている。
センターケース40の上部及び右側部には、それぞれ上部演出ユニット40c及び側部演出ユニット40dが設けられる。上部演出ユニット40c及び側部演出ユニット40dは、盤装飾装置46(図4参照)及び盤演出装置44(図4参照)の一部を構成している。
センターケース40の右側方の遊技領域32には、普通図柄始動ゲート(普図始動ゲート)34が設けられている。普図始動ゲート34の内部には、当該普図始動ゲート34を通過した遊技球を検出するためのゲートスイッチ(SW)34a(図3参照)が設けられている。遊技領域32内に打ち込まれた遊技球が普図始動ゲート34を通過すると、普図変動表示ゲームが実行される。
センターケース40の左下方の遊技領域32には一般入賞口35(一般入賞領域)が配置されており、センターケース40の右下方の遊技領域32にも一般入賞口35が配置されている。これら一般入賞口35への遊技球の入賞は、一般入賞口35に備えられた入賞口スイッチ(SW)35a〜35n(図3参照)によって検出される。本実施形態では、左の一般入賞口35の入賞口スイッチ35aと右の一般入賞口35の入賞口スイッチ35bの二つがある。
センターケース40の下方の遊技領域32には、特図変動表示ゲームの開始条件を付与する始動入賞口(第1始動入賞領域)36が設けられ、その直下には第2始動入賞口(第2始動入賞領域)を備えた普通変動入賞装置37が設けられる。普通変動入賞装置37は、上端側が手前側に倒れる方向に回動することで、遊技球が流入し易い状態に変換する可動部材(可動片)37bを備える。可動部材37bが閉状態である場合には遊技球が普通変動入賞装置37に入賞できないようになっている。遊技球が始動入賞口36又は普通変動入賞装置37に入賞した場合には、補助遊技として特図変動表示ゲームが実行される。
可動部材37bは、所謂ベロ型の普通電動役物であり、普図変動表示ゲームの結果が所定の停止表示態様となった場合に、普電ソレノイド37c(図3参照)を介して回動して開いて、遊技球が普通変動入賞装置37に流入しやすい開状態(遊技者にとって有利な入賞容易状態)に変化する。
なお、可動部材37bは、後述する遊技制御装置100によって制御される。遊技制御装置100は、普図変動表示ゲームの変動時間を短縮したり普図変動表示ゲームの当り確率を通常よりも高確率としたりすることで入賞容易状態の発生頻度を高めたり、通常遊技状態で発生する入賞容易状態よりも入賞容易状態の発生時間を長くしたりすることで、前述の特定遊技状態として時短状態(普電サポート状態)を発生させる。なお、確変状態(潜伏確変状態を除く)においても、重複して時短状態(普電サポート状態)が発生する。
普通変動入賞装置37の右下方の遊技領域32には、大入賞口ソレノイド(39b)(図3参照)によって上端側が手前側に倒れる方向に回動することで大入賞口を開放するアタッカ形式の開閉扉39cを有する特別変動入賞装置39が設けられている。特別変動入賞装置39は、特図変動表示ゲームの結果によって大入賞口を閉じた状態(遊技者にとって不利な閉塞状態)から開放状態(遊技者にとって有利な特別遊技状態)に変換し、大入賞口内への遊技球の流入を容易にさせることで、遊技者に所定の遊技価値(賞球)を付与するようになっている。なお、大入賞口内には、当該大入賞口に入った遊技球を検出する検出手段としてカウントスイッチ39a(図3参照)が配設されている。
以上のように、遊技領域32には、特に条件なく遊技球が入賞可能な複数の入賞領域として、一般入賞口35と始動入賞口36(第1始動入賞口)が設けられている。また、所定の条件(特図変動表示ゲームや普図変動表示ゲームの所定の結果)が成立することによって作動して遊技球が入賞可能となる変動入賞装置として、普通変動入賞装置37(第2始動入賞口)と特別変動入賞装置39(大入賞口)が設けられている。
一般入賞口35、始動入賞口36、普通変動入賞装置37、及び、特別変動入賞装置39(大入賞口)に遊技球が入賞すると、払出制御装置200(図3参照)は、入賞した入賞口の種類に応じた数の賞球を払出装置から上皿21に排出する。なお、本実施形態では、普通変動入賞装置37(第2始動入賞口)、始動入賞口36(第1始動入賞口)、一般入賞口35、及び特別変動入賞装置39(大入賞口)の賞球数は、それぞれ、2個、3個、10個、14個であり、この順番に大きくなる。
また、普通変動入賞装置37の下方の遊技領域32には、入賞口等に入賞しなかった遊技球を回収するアウト口30bが設けられている。アウト口30bに入って遊技領域32の外部に排出される遊技球を検出する検出手段としてアウト球検出スイッチ65(図3参照)が配設されている。
また、遊技領域32の外側であって遊技盤本体30aの右下角部には、特図変動表示ゲーム(特図1変動表示ゲーム、特図2変動表示ゲーム)及び普図変動表示ゲームを実行する一括表示装置50が設けられている。一括表示装置50は、現在の遊技状態等の情報を表示する表示部51〜60を備える。
一括表示装置50は、7セグメント型の表示器(LEDランプ)等で構成された変動表示ゲーム用の第1特図変動表示部51(特図1表示器、ランプD1)及び第2特図変動表示部52(特図2表示器、ランプD2)と、普図変動表示ゲーム用の変動表示部53(普図表示器、ランプD10、D18)と、各変動表示ゲームの始動(保留)記憶数報知用の記憶表示部(特図1保留表示器54、特図2保留表示器55、普図保留表示器56)と、を有している。特図1保留表示器54はランプD11、D12により構成される。特図2保留表示器55は、ランプD13、D14により構成される。普図保留表示器56は、ランプD15、D16により構成される。
また、一括表示装置50には、右打ち時(右打ちすべき時)又は左打ち時(通常打ち時)であることを報知する第1遊技状態表示部57(第1遊技状態表示器、ランプD8)、時短状態が発生すると点灯して時短状態発生を報知する第2遊技状態表示部58(第2遊技状態表示器、ランプD9)、遊技機10の電源投入時に大当りの確率状態が高確率状態となっていることを表示する第3遊技状態表示部59(第3遊技状態表示器、確率状態表示部、ランプD17)、大当り時のラウンド数(特別変動入賞装置39の開閉回数)を表示するラウンド表示部60(ランプD3−D7)が設けられている。
特図1表示器51と特図2表示器52において、変動表示ゲームは、識別情報(例えば、中央のセグメント)の点灯消灯(点滅)を繰り返す変動表示によって実行される。なお、特図1表示器51、特図2表示器52は、このようなセグメント型の表示部に限らず、複数のLEDの集合体により構成されていてもよいし、変動表示を実行する場合に、表示器として設けられるすべてのLEDにより全点灯全消灯(全LEDの同時点滅)や、循環点灯(何れか1のLEDから所定時間毎に所定の順序で点灯し、消灯する)、または複数のLEDのうちの所定数のLEDによる点灯消灯(点滅)や循環点灯によって行ってもよい。普図表示器53においても、変動表示ゲームは、ランプD10、D18の点灯消灯を繰り返す変動表示(点滅)によって実行される。また、普図表示器53も特図1表示器51、特図2表示器52と同様に適宜構成することが可能である。
さらに、一括表示装置50には、遊技機10の排出球数を表示する排出球数表示部66、遊技機10の出玉率を表示する出玉率表示部67、遊技機10の役物比率を表示する役物比率表示部68が設けられている。排出球数表示部66、出玉率表示部67、役物比率表示部68は、各々、複数(一つでも可)の7セグメント型の表示器(LEDランプ)等で構成されており、これら表示部は、排出球数、出玉率、役物比率を表示する表示手段を構成する。
なお、排出球数表示部66、出玉率表示部67、役物比率表示部68は、それぞれ、排出球数、出玉率、役物比率を直接的に表示するものに限られずに、排出球数、出玉率、役物比率を間接的に表示するものでもよい(例えば、後述の排出球数のカウントダウン表示など)。即ち、排出球数表示部66、出玉率表示部67、役物比率表示部68は、それぞれ、排出球数、出玉率、役物比率に関する情報を表示できればよい。また、排出球数表示部66、出玉率表示部67、役物比率表示部68は、排出球数、出玉率、役物比率を、7セグメント型の表示器により数値で表示するのではなく、レベルメータなどで表示してよい。
ここで、排出球数は、遊技領域32から排出された遊技球の数であり、入賞口を通過した遊技球の数とアウト口30bを通過した遊技球の数との合計である。排出球数は、球発射装置から遊技領域32に発射された遊技球の個数である発射球数と基本的に同じになる。本実施形態では、入賞口には、一般入賞口35、始動入賞口36(第1始動入賞口、始動口1)、普通変動入賞装置37(第2始動入賞口、始動口2)、及び、特別変動入賞装置39(大入賞口)が含まれる。なお、後述のように、排出球数(発射球数)をカウントするカウント手段が設けられる。そして、排出球数表示部66(排出球数表示手段)が、排出球数を表示することで、遊技者は遊技領域32に発射された遊技球の個数を把握でき、利便性が向上する。
出玉率は、排出球数(或は発射球数)に対する賞球数の合計の比率(割合)であり、(獲得球数÷排出球数)×100(%)で計算される。即ち、出玉率は、排出球数100個当りの獲得球数(賞球数の合計)となる。この定義による出玉率は、入賞時に賞球数がカウントされるので、球切れ等で実際の賞球の払い出しが行われなくても得ることができる。なお、出玉率は、本実施形態のように排出球数が100個になる度に、排出球数が0から100個になるまでの間の獲得球数から簡易に求めてもよいし、遊技機の電源投入から現在まで積算した獲得球数(賞球数の合計)と排出球数を用いて、上記の定義から正確に算出してもよい。なお、従来は出玉率を表示することは行われていなかったが、本実施形態では、出玉率表示部67(出玉率表示手段)が出玉率を表示することで、遊技者に一般入賞口35への興味と関心を抱かせることができる。そして、遊技の興趣を高めることができる。
また、役物比率は、遊技機10の電源投入から現在までに入賞口に入賞したことで得られた全賞球数(賞球の合計数)のうち、大当り状態中(即ちファンファーレ、エンディング中は除外)に大入賞口に入賞したことで得られた賞球数(役物別獲得球数)の割合(%)(いわゆる連続役物比率)である。なお、役物比率は、全賞球数(賞球の合計数)のうち、大入賞口に入賞したことで得られた賞球数(大当り状態中と小当り状態中)の割合(大入賞口比率)でもよいし、或は、大入賞口及び普通変動入賞装置37(第2始動入賞口)に入賞したことで得られた賞球数の割合(一般的に使用されるいわゆる役物比率(全役物比率))でもよい。役物比率は、入賞時に賞球数がカウントされるので、球切れ等で実際の賞球の払い出しが行われなくても計算できる。本実施形態では、役物比率表示部68(役物比率表示手段)が役物比率を表示することで、遊技の興趣が向上するとともに、遊技者は変動入賞装置へ入賞し易い印象(開状態が多く発生する印象)を持つため、遊技者が継続して遊技を行う動機となる。また、役物比率表示は、遊技者が継続して遊技を行うべきか判断するための指標となる。さらに、役物比率に一般入賞口35への入賞が影響するため、役物比率表示を通して、遊技者に一般入賞口35への興味と関心を抱かせることができる。
図2Bを参照して、排出球数表示部66の表示態様について説明する。排出球数表示部66は、2つの7セグメント型(点部分を含めると8セグメント型)の表示器(LEDランプ)から構成される。図2B(I)のように、排出球数表示部66において、排出球数は、カウントダウン表示され、(100−排出球数)が表示される。また、排出球数は、100個(所定個数)までしかカウントされない。なお、後述のように、排出球数が100個(所定個数)になる度に、出玉率表示部67に表示される出玉率は、排出球数が1から100個に変化するまでの間の最新の出玉率へと更新される。これにより、出玉率表示部67に獲得球数(賞球数の合計)をそのまま表示すれば、出玉率が表示されることになる。
本実施形態では、排出球数表示部66において、排出球数は「99」から「00」へとカウントダウン表示されるが、「00」から「99」へとカウントアップ表示する構成でもよい。なお、排出球数が100個になると、排出球数表示部66に「00」が表示される。本実施形態では、排出球数表示部66に「00」を表示するタイミングで、出玉率表示部67の出玉率表示が最新のものに更新される。なお、排出球数表示部66は、電源投入後(停電復旧含む)は、「00」の表示からカウントダウン表示を開始する。また、排出球数は大当り終了のタイミングで0クリアされ、排出球数表示部66は大当り終了後に「00」の表示からカウントダウン表示を開始する。
図2B(II)のように、遊技球の発射中以外の状態や客待ちデモ状態で、排出球数表示部66は表示器のセグメント(発光部)が消灯して非表示の状態となってよい。なお、遊技球の発射中以外の状態や客待ちデモ状態をまとめて「客待ち状態」と呼ぶ。遊技球の発射中以外の状態とは、操作ハンドル24に設けられたタッチスイッチからのタッチスイッチ信号がオフ信号となった状態である。また、遊技制御装置100(図3)が演出制御装置300(図4)に客待ちデモコマンドを送信した場合に、遊技機10は客待ちデモ状態(客待ちデモ中の状態)となる。一方、客待ちデモ中でない状態や遊技球の発射中の状態では、排出球数表示部66において、遊技中の遊技者が認識できるよう表示器のセグメント(発光部)が点灯してカウントダウン表示を実行する。これは、遊技中の遊技者に対する特典となるため、遊技機10の稼働を上げることができる。
図2B(III)のように、排出球数表示部66は、遊技に影響のあるエラーや不正の発生中に、遊技者に報知するためにエラー表示(「EE」表示)を実行する。ここで、遊技に影響のあるエラーや不正とは、ガラス枠開放や前面枠開放に関するエラーや不正(後述のガラス枠開放エラー、前面枠開放エラー)であり、球切れやオーバーフロー(満杯)に関するエラー(後述のシュート球切れエラー、オーバーフローエラー)は含まない。なお、枠開放中は手で遊技球を入賞口に入れることは可能なので、排出球数表示部66の表示は更新されないが、遊技機内部の遊技制御装置100で排出球数をカウントしている。
図2Cを参照して、出玉率表示部67の表示態様について説明する。出玉率表示部67は、2つの7セグメント型(点部分を含めると8セグメント型)の表示器(LEDランプ)から構成される。図2C(I)のように、出玉率表示部67において、出玉率は0から99までしか表示されず、出玉率が100以上になると「99」を点滅表示又は点灯表示させるか「FF」と表示する。
なお、前述のように、出玉率表示部67の出玉率表示は、排出球数が100個(所定個数)になる度に、排出球数が1から100個に変化するまでの間の最新の出玉率へと更新される。出玉率表示部67は、出玉率表示を更新する毎に、セグメント(発光部)の発光色を変化させて、出玉率表示を更新したことを明示する。この場合、遊技者は、出玉率の更新を認識しやすくなる。例えば、出玉率表示部67は、出玉率表示を更新する毎に、赤から緑或は緑から赤へ変化する。なお、色を変化させずに、出玉率表示部67は、常に単色で出玉率表示をする構成も可能である。
また、出玉率表示部67は、設計値(例えば、通常遊技状態でのベース値40)を基準として、出玉率に応じて出玉率表示の色を変化させてよい。これにより、出玉率の設計値からの乖離を報知警告できる。例えば、出玉率は、30〜50の範囲で緑色に表示し、10〜29と51〜60の範囲で黄色に表示し、0〜9と61以上の範囲で赤色に表示する。また、大当り中は、出玉率が非常に大きくなるため、赤色でなく別の色(白やレインボー)などで表示してもよい。なお、色を変化させずに単色で出玉率を表示する構成では、出玉率が設計値から大きく乖離した場合(所定値以上又は所定値以下の場合)に、出玉率表示を点滅表示してよい。
さらに、出玉率表示部67は、電源投入後(停電復旧含む)は「00」の表示となる。また、出玉率は大当り終了するタイミングで0クリアし、出玉率表示部67は「00」の表示となる。
図2C(II)のように、遊技球の発射中以外の状態や客待ちデモ状態(即ち客待ち状態)で、出玉率表示部67は表示器のセグメントが消灯して非表示の状態となってよい。一方、客待ちデモ中でない状態や遊技球の発射中の状態では、出玉率表示部67において表示器のセグメントは点灯し、遊技中の遊技者が認識できるよう出玉率を表示する。これは、遊技中の遊技者に対する特典となるため、遊技機10の稼働を上げることができる。さらに、遊技機10の電源投入後に排出球数が100個になるまで、出玉率が得られないため、出玉率表示部67は非表示の状態となってよい。
なお、逆に、遊技球の発射中以外の状態や客待ちデモ状態で、出玉率表示部67は出玉率を表示し、客待ちデモ中でない状態や遊技球の発射中の状態で出玉率を非表示にする構成としてもよい。これにより、遊技者は、出玉率を考慮して、遊技する遊技機や遊技台を選択することができる。
図2C(III)のように、出玉率表示部67は、遊技に影響のあるエラーや不正の発生中に、遊技者に報知するためにエラー表示(「EE」表示)を実行する。ここで、遊技に影響のあるエラーや不正とは、ガラス枠開放や前面枠開放に関するエラーや不正(後述のガラス枠開放エラー、前面枠開放エラー)であり、球切れやオーバーフロー(満杯)に関するエラー(後述のシュート球切れエラー、オーバーフローエラー)は含まない。なお、枠開放中は手で遊技球を入賞口に入れることは可能なので、出玉率表示部67の表示は更新されないが、遊技機内部の遊技制御装置100で出玉率を計算(更新)している。
図2Dを参照して、役物比率表示部68の表示態様について説明する。役物比率表示部68は、3つの7セグメント型(点部分を含めると8セグメント型)の表示器(LEDランプ)から構成される。図2D(I)のように、役物比率表示部68は、「00.0」から「99.9」の小数第1位までの役物比率(%)の値を表示する。役物比率が100%の時は「100」と表示とする。なお、例えば、役物比率表示部68が4つの7セグメント型の表示器(LEDランプ)から構成される場合には、小数第2位までの役物比率(%)の値を表示する。
また、役物比率表示部68は、規則で定まった基準値(例えば、役物連続作動による賞球である連続役物比率60%)を基準として、役物比率に応じて役物比率表示の色を変化させてよい。これにより、役物比率の基準値からの乖離を報知警告できる。例えば、役物比率が連続役物比率に相当する場合、役物比率は、00.0%〜55.0%の範囲で緑色に表示し、55.1%〜60.0%の範囲で黄色に表示し、60.1%〜100%の範囲で赤色に表示する。また、大当り中は、役物比率が大きくなるため、別の色(白やレインボー)などで表示してもよい。また、例えば、役物比率が、一般的に使用されるいわゆる役物比率(全賞球数のうち、全役物(特別変動入賞装置39及び普通変動入賞装置37)に入賞したことで得られた賞球数の割合)に相当する場合、基準値を70%として、役物比率は、00.0%〜65.0%の範囲で緑色に表示し、65.1%〜70.0%の範囲で黄色に表示し、70.1%〜100%の範囲で赤色に表示する。なお、色を変化させずに単色で役物比率を表示する構成では、役物比率が設計値から大きく乖離した場合(所定値以上又は所定値以下の場合)に、役物比率表示を点滅表示してよい。
役物比率表示部68の役物比率を計算するための役物別賞球数(役物別獲得球数)は、遊技機10の電源を切るまで累積し、電源投入でクリアされる。電源投入後(停電復旧含む)に、役物比率表示は「00.0」と表示される。その後、役物比率表示部68において、入賞の発生する度に役物比率が随時更新される。なお、所定回数(例えば400回)の特図変動表示ゲームを1セットとして、1セットごとの役物別獲得球数(役物獲得球数とも呼ぶ)を複数のブロック(所定バイトの記憶領域)からなるリングバッファに順番に記憶する構成も可能であるが、この場合には、役物別獲得球数は電源投入時にもクリアせず保持される。
図2D(II)のように、遊技球の発射中以外の状態や客待ちデモ状態(即ち客待ち状態)で、役物比率表示部68は表示器のセグメント(発光部)が消灯して非表示の状態となってよい。一方、客待ちデモ中でない状態や遊技球の発射中の状態では、役物比率表示部68において表示器のセグメント(発光部)は点灯し、遊技中の遊技者が認識できるよう役物比率を表示する。これは、遊技中の遊技者に対する特典となるため、遊技機10の稼働を上げることができる。
なお、逆に、遊技球の発射中以外の状態や客待ちデモ状態で、役物比率表示部68は役物比率を表示し、客待ちデモ中でない状態や遊技球の発射中の状態で役物比率を非表示にする構成としてもよい。これにより、遊技者は、役物比率を考慮して、遊技する遊技機や遊技台を選択することができる。
図2D(III)のように、役物比率表示部68は、遊技に影響のあるエラーや不正の発生中に、遊技者に報知するためにエラー表示(「EEE」表示)を実行する。ここで、遊技に影響のあるエラーや不正とは、ガラス枠開放や前面枠開放に関するエラーや不正(後述のガラス枠開放エラー、前面枠開放エラー)であり、球切れやオーバーフロー(満杯)に関するエラー(後述のシュート球切れエラー、オーバーフローエラー)は含まない。なお、枠開放中は手で遊技球を入賞口に入れることは可能なので、役物比率表示部68の表示は更新されないが、遊技機内部の遊技制御装置100で役物比率を計算(更新)している。
次に、遊技機10における遊技の流れ、普図変動表示ゲーム及び特図変動表示ゲームの詳細について説明する。
遊技機10では、図示しない球発射装置から遊技領域32に向けて遊技球が打ち出されることによって遊技が行われる。打ち出された遊技球は、遊技領域32内の各所に配置された障害釘や風車等によって転動方向を変えながら遊技領域32を流下し、普図始動ゲート34、一般入賞口35、始動入賞口36、普通変動入賞装置37、又は特別変動入賞装置39に入賞するか、遊技領域32の最下部に設けられたアウト口30bへ流入し、遊技領域32から排出される。そして、一般入賞口35、始動入賞口36、普通変動入賞装置37、又は特別変動入賞装置39に遊技球が入賞すると、入賞した入賞口の種類に応じた数の賞球が払出装置を介して上皿21に排出される。
普図始動ゲート34には、当該普図始動ゲート34を通過した遊技球を検出するゲートスイッチ34a(図3参照)が設けられている。遊技球が普図始動ゲート34を通過すると、ゲートスイッチ34aによって検出され、このときに抽出された当り判定用乱数値の判定結果に基づき普図変動表示ゲームが実行される。
普図変動表示ゲームを開始できない状態、例えば、既に普図変動表示ゲームが行われており当該普図変動表示ゲームが終了していない場合や、普図変動表示ゲームの結果が当りとなって普通変動入賞装置37が開放状態に変換されている場合に、遊技球が普図始動ゲート34を通過すると、普図始動記憶数が上限数未満ならば当該記憶数が加算(+1)される。
普図始動記憶には普図変動表示ゲームの当りはずれを決定するための当り判定用乱数値が記憶されており、この当り判定用乱数値が判定値と一致した場合に、当該普図変動表示ゲームが当りとなって特定の結果態様(特定結果)が導出される。
普図変動表示ゲームは、一括表示装置50に設けられた普図表示器53で実行されるようになっている。普図表示器53は、普通識別情報(普図)として点灯状態の場合に当りを示し、消灯状態の場合にはずれを示すLEDから構成され、このLEDを点滅表示することで普通識別情報の変動表示を行い、所定の変動表示時間の経過後、LEDを点灯又は消灯することで結果を表示するようになっている。
普図始動ゲート34通過時に抽出された普図乱数値が当り値である場合には、普図表示器53に表示される普通図柄が当り状態で停止し、当り状態となる。このとき、普電ソレノイド37c(図3参照)が駆動されることにより、可動部材37bが所定の時間(例えば0.3秒間)だけ開状態に変換され、普通変動入賞装置37への遊技球の入賞が許容される。
遊技球の始動入賞口36への入賞及び普通変動入賞装置37への入賞は、始動口1スイッチ36a(図3参照)及び始動口2スイッチ37a(図3参照)によって検出される。始動入賞口36に入賞した遊技球は特図1変動表示ゲームの始動入賞球として検出され、所定の上限数を限度に記憶されるとともに、普通変動入賞装置37に入賞した遊技球は特図2変動表示ゲームの始動入賞球として検出され、所定の上限数を限度に記憶される。
特図変動表示ゲームの始動入賞球の検出時には、大当り乱数値や大当り図柄乱数値、各変動パターン乱数値等が抽出される。これら乱数値は、遊技制御装置100の特図保留記憶領域(RAMの一部)に特図始動入賞記憶として各々所定回数分(例えば最大で8回分)を限度に記憶される。特図始動入賞記憶の記憶数は、一括表示装置50の始動入賞数報知用の特図1保留表示器54や特図2保留表示器55に表示されるとともに、表示装置41の表示画面にも表示される。
遊技制御装置100は、始動入賞口36への入賞若しくは第1始動記憶に基づいて、特図1表示器51で特図1変動表示ゲームを実行する。また、遊技制御装置100は、普通変動入賞装置37への入賞若しくは第2始動記憶に基づいて、特図2表示器52で特図2変動表示ゲームを実行する。
特図1変動表示ゲーム(第1特図変動表示ゲーム)及び特図2変動表示ゲーム(第2特図変動表示ゲーム)は、特図1表示器51及び特図2表示器52において識別情報(特別図柄、特図)を変動表示した後に所定の結果態様を停止表示することで行われる。また、表示装置41では、各特図変動表示ゲームに対応して複数種類の識別情報(例えば、数字、記号、キャラクタ図柄など)を変動表示させる飾り特図変動表示ゲームが実行される。
表示装置41における飾り特図変動表示ゲームは、前述した数字等で構成される飾り特別図柄(識別情報)が左(第一特別図柄)、右(第二特別図柄)、中(第三特別図柄)の順に変動表示(スクロール表示)を開始して、所定時間後に変動している図柄を順次停止させて、特図変動表示ゲームの結果を表示することで行われる。また、表示装置41では、興趣向上のためにキャラクタの出現等の多様な演出表示が行われる。
始動入賞口36又は普通変動入賞装置37への遊技球の入賞が所定のタイミングでなされた場合(入賞検出時の大当り乱数値が大当り値である場合)には、特図変動表示ゲームの結果として表示図柄により特定の結果態様(特別結果態様)が導出され、大当り状態(特別遊技状態)となる。これに対応して、表示装置41の表示態様は特別結果態様(例えば「7,7,7」等の数字が揃った状態)となる。
このとき、特別変動入賞装置39は、大入賞口ソレノイド(39b)(図3参照)への通電によって、大入賞口が所定の時間(例えば30秒)だけ閉状態から開状態に変換される。すなわち、特別変動入賞装置39に備えられた大入賞口が所定の時間又は所定数の遊技球が入賞するまで大きく開き、この間遊技者は多くの遊技球を獲得することができるという特典が付与される。
第1始動入賞口36又は普通変動入賞装置37への遊技球の入賞が所定のタイミングでなされた場合(入賞検出時の大当り乱数値が小当り値である場合)には、特図変動表示ゲームの結果として表示図柄により特定結果態様(小当り結果態様)が導出され、小当り状態となる。これに対応して、表示装置41の表示態様は小当り結果態様となる。なお、本実施形態では、小当りの判定にも大当り乱数値が使用されるが、小当り値(小当り判定値)は、大当り値(大当り判定値)と異なる。
このとき、特別変動入賞装置39は、大入賞口ソレノイド39b(図3参照)への通電によって、大入賞口が所定の短時間だけ閉状態から開状態に変換される。
ここで、大当りと小当りとの違いについて説明する。
大当りとは条件装置の作動を伴う特別結果であり、小当りとは条件装置の作動を伴わない特定結果である。条件装置とは、特図変動表示ゲームで大当りが発生(大当り図柄の停止表示)した場合に作動するもので、条件装置が作動するとは、例えば大当り状態が発生して特別電動役物としての特別変動入賞装置39を連続して作動させるための特定のフラグがセットされることを意味する。条件装置が作動しないとは、例えば小当り抽選に当選した場合のように上述の特定のフラグがセットされないことを意味する。なお、「条件装置」は、上記のようなソフトウェア的にオンオフされるフラグのようなソフトウェア手段であっても良いし、電気的にオンオフされるスイッチのようなハードウェア手段であっても良い。また、「条件装置」は、その作動が電動役物の連続作動に必要条件とされる装置として、パチンコ遊技機の分野においては一般的に使用されている用語であり、本明細書においても同様の意味を有する用語として使用している。
具体的には、大当りの場合は、大当りフラグが設定されることにより特別変動入賞装置が開放されるのに対して、小当りの場合は、小当りフラグが設定されることにより特別変動入賞装置が開放される。
なお、特図1表示器51及び特図2表示器52は、別々の表示器として構成してもよいし同一の表示器として構成してもよいが、各特図変動表示ゲームが同時に実行されないように設定される。
表示装置41における飾り特図変動表示ゲームについては、特図1変動表示ゲームと特図2変動表示ゲームとを別々の表示装置や別々の表示領域で実行するようにしてもよいし、同一の表示装置や表示領域で実行するようにしてもよい。この場合、特図1変動表示ゲーム及び特図2変動表示ゲームに対応する飾り特図変動表示ゲームが同時に実行されないようにする。なお、特図2変動表示ゲームは、特図1変動表示ゲームよりも優先して実行されるようになっており、特図1変動表示ゲームと特図2変動表示ゲームの始動記憶があり、特図変動表示ゲームの実行が可能な状態になった場合は特図2変動表示ゲームが実行される。
なお、以下の説明において、特図1変動表示ゲームと特図2変動表示ゲームを区別しない場合は、単に特図変動表示ゲームと称する。
また、特に限定されるわけではないが、上記始動入賞口36内の始動口1スイッチ36a、普通変動入賞装置37内の始動口2スイッチ37a、ゲートスイッチ34a、入賞口スイッチ35a〜35n、カウントスイッチ(39a)には、磁気検出用のコイルを備え該コイルに金属が近接すると磁界が変化する現象を利用して遊技球を検出する非接触型の磁気近接センサ(以下、近接スイッチと称する)が使用されている。また、遊技機10のガラス枠15等に設けられたガラス枠開放検出スイッチ63や前面枠(遊技枠)12等に設けられた前面枠開放検出スイッチ64(本体枠開放検出スイッチ)には、機械的な接点を有するマイクロスイッチを用いることができる。
〔遊技制御装置〕
図3は、遊技機10の遊技制御系のブロック図である。遊技機10は遊技制御装置100(主基板)を備え、遊技制御装置100は、遊技を統括的に制御する主制御装置(主基板)であって、遊技用マイクロコンピュータ(以下、遊技用マイコンと称する)111を有するCPU部110と、入力ポートを有する入力部120と、出力ポートやドライバなどを有する出力部130、CPU部110と入力部120と出力部130との間を接続するデータバス140などからなる。
CPU部110は、アミューズメントチップ(IC)と呼ばれる遊技用マイコン(CPU)111と、水晶振動子のような発振子を備え、CPUの動作クロックやタイマ割込み、乱数生成回路の基準となるクロックを生成する発振回路(水晶発振器)113などを有する。遊技制御装置100及び該遊技制御装置100によって駆動されるソレノイドやモータなどの電子部品には、電源装置400で生成されたDC32V,DC12V,DC5Vなど所定のレベルの直流電圧が供給されて動作可能にされる。
電源装置400は、24Vの交流電源からDC32Vの直流電圧を生成するACDCコンバータやDC32Vの電圧からDC12V,DC5Vなどのより低いレベルの直流電圧を生成するDC−DCコンバータなどを有する通常電源部410と、遊技用マイコン111の内部のRAMに対して停電時に電源電圧を供給するバックアップ電源部420と、停電監視回路を有し、遊技制御装置100に停電の発生、回復を知らせる停電監視信号やリセット信号などの制御信号を生成して出力する制御信号生成部430などを備える。
本実施形態では、電源装置400は、遊技制御装置100と別個に構成されているが、バックアップ電源部420及び制御信号生成部430は、別個の基板上あるいは遊技制御装置100と一体、すなわち、主基板上に設けるように構成してもよい。遊技盤30及び遊技制御装置100は機種変更の際に交換の対象となるので、実施例のように、電源装置400若しくは主基板とは別の基板にバックアップ電源部420及び制御信号生成部430を設けることにより、交換の対象から外しコストダウンを図ることができる。
バックアップ電源部420は、電解コンデンサのような大容量のコンデンサ1つで構成することができる。バックアップ電源は、遊技制御装置100の遊技用マイコン111(特に内蔵RAM)に供給され、停電中あるいは電源遮断後もRAMに記憶されたデータが保持されるようになっている。制御信号生成部430は、例えば通常電源部410で生成された32Vの電圧を監視してそれが例えば17V以下に下がると停電発生を検出して停電監視信号を変化させるとともに、所定時間後にリセット信号を出力する。また、電源投入時や停電回復時にもその時点から所定時間経過後にリセット信号を出力する。
また、遊技制御装置100には初期化スイッチ112が設けられている。初期化スイッチ112が操作されると初期化スイッチ信号が生成され、これに基づき遊技用マイコン111内のRAM111c及び払出制御装置200内のRAMに記憶されている情報を強制的に初期化する処理が行われる。特に限定されるわけではないが初期化スイッチ信号は電源投入時に読み込まれ、停電監視信号は遊技用マイコン111が実行するメインプログラムのメインループの中で繰り返し読み込まれる。リセット信号は強制割込み信号の一種であり、制御システム全体をリセットさせる。
遊技用マイコン111は、CPU(中央処理ユニット:マイクロプロセッサ)111a、読出し専用のROM(リードオンリメモリ)111b及び随時読出し書込み可能なRAM(ランダムアクセスメモリ)111cを備える。
ROM111bは、遊技制御のための不変の情報(プログラム、固定データ、各種乱数の判定値等)を不揮発的に記憶し、RAM111cは、遊技制御時にCPU111aの作業領域や各種信号や乱数値の記憶領域として利用される。ROM111b又はRAM111cとして、EEPROMのような電気的に書換え可能な不揮発性メモリを用いてもよい。
また、ROM111bは、例えば、特図変動表示ゲームの実行時間、演出内容、リーチ状態の発生の有無などを規定する変動パターン(変動態様)を決定するための変動パターンテーブルを記憶している。変動パターンテーブルとは、始動記憶として記憶されている変動パターン乱数1〜3をCPU111aが参照して変動パターンを決定するためのテーブルである。また、変動パターンテーブルには、結果がはずれとなる場合に選択されるはずれ変動パターンテーブル、結果が大当りとなる場合に選択される大当り変動パターンテーブル等が含まれる。さらに、これらのパターンテーブルには、リーチ状態となった後の変動パターンである後半変動パターンを決定するためのテーブル(後半変動グループテーブルや後半変動パターン選択テーブル等)、リーチ状態となる前の変動パターンである前半変動パターンを決定するためのテーブル(前半変動グループテーブルや前半変動パターン選択テーブル等)が含まれている。
ここでリーチ(リーチ状態)とは、表示状態が変化可能な表示装置を有し、該表示装置が時期を異ならせて複数の表示結果を導出表示し、該複数の表示結果が予め定められた特別結果態様となった場合に、遊技状態が遊技者にとって有利な遊技状態(特別遊技状態)となる遊技機10において、複数の表示結果の一部がまだ導出表示されていない段階で、既に導出表示されている表示結果が特別結果態様となる条件を満たしている表示状態をいう。また、別の表現をすれば、リーチ状態とは、表示装置の変動表示制御が進行して表示結果が導出表示される前段階にまで達した時点でも、特別結果態様となる表示条件からはずれていない表示態様をいう。そして、例えば、特別結果態様が揃った状態を維持しながら複数の変動表示領域による変動表示を行う状態(いわゆる全回転リーチ)もリーチ状態に含まれる。また、リーチ状態とは、表示装置の表示制御が進行して表示結果が導出表示される前段階にまで達した時点での表示状態であって、表示結果が導出表示される以前に決定されている複数の変動表示領域の表示結果の少なくとも一部が特別結果態様となる条件を満たしている場合の表示状態をいう。
よって、例えば、特図変動表示ゲームに対応して表示装置に表示される飾り特図変動表示ゲームが、表示装置における左、中、右の変動表示領域の各々で所定時間複数の識別情報を変動表示した後、左、右、中の順で変動表示を停止して結果態様を表示するものである場合、左、右の変動表示領域で、特別結果態様となる条件を満たした状態(例えば、同一の識別情報)で変動表示が停止した状態がリーチ状態となる。他に、すべての変動表示領域の変動表示を一旦停止した時点で、左、中、右のうちいずれか二つの変動表示領域で特別結果態様となる条件を満たした状態(例えば、同一の識別情報となった状態、ただし特別結果態様は除く)をリーチ状態とし、リーチ状態から残りの一つの変動表示領域を変動表示するようにしてもよい。
そして、リーチ状態には複数のリーチ演出が含まれ、特別結果態様が導出される可能性が異なる(期待値が異なる)リーチ演出の系統として、ノーマルリーチ(Nリーチ)、スペシャル1リーチ(SP1リーチ)、スペシャル2リーチ(SP2リーチ)、スペシャル3リーチ(SP3リーチ)、プレミアリーチが設定されている。なお、期待値は、リーチなし<ノーマルリーチ<スペシャル1リーチ<スペシャル2リーチ<スペシャル3リーチ<プレミアリーチの順に高くなるようになっている。また、リーチ状態は、少なくとも特図変動表示ゲームで特別結果態様が導出される場合(大当りとなる場合)における変動表示態様に含まれるようになっている。すなわち、特図変動表示ゲームで特別結果態様が導出されないと判定する場合(はずれとなる場合)における変動表示態様に含まれることもある。よって、リーチ状態が発生した状態は、リーチ状態が発生しない場合と比較して大当りとなる可能性の高い状態である。
CPU111aは、ROM111b内の遊技制御用プログラムを実行して、払出制御装置200や演出制御装置300に対する制御信号(コマンド)を生成したりソレノイドや表示装置の駆動信号を生成して出力して遊技機10全体の制御を行う。また、図示しないが、遊技用マイコン111は、特図変動表示ゲームの大当りを判定するための大当り乱数や大当りの図柄を決定するための大当り図柄乱数、小当りの図柄を決定するための小当り図柄乱数、特図変動表示ゲームでの変動パターン(各種リーチやリーチなしの変動表示における変動表示ゲームの実行時間等を含む)を決定するための変動パターン乱数等を生成するための乱数生成回路と、発振回路113からの発振信号(原クロック信号)に基づいてCPU111aに対する所定周期(例えば、4msec(ミリ秒))のタイマ割込み信号や乱数生成回路の更新タイミングを与えるクロックを生成するクロックジェネレータを備えている。
また、CPU111aは、特図変動表示ゲームに関する処理において、ROM111bに記憶されている複数の変動パターンテーブルの中から、いずれか一の変動パターンテーブルを取得する。具体的には、CPU111aは、特図変動表示ゲームの遊技結果(大当りあるいははずれ)や、現在の遊技状態としての特図変動表示ゲームの確率状態(通常確率状態あるいは高確率状態)、始動記憶数などに基づいて、複数の変動パターンテーブルの中から、いずれか一の変動パターンテーブルを選択して取得する。ここで、CPU111aは、特図変動表示ゲームを実行する場合に、ROM111bに記憶された複数の変動パターンテーブルのうち、いずれか一の変動パターンテーブルを取得する変動振り分け情報取得手段をなす。
払出制御装置200は、CPU、ROM、RAM、入力インタフェース、出力インタフェース等を備え、遊技制御装置100からの賞球払出し指令(コマンドやデータ)に従って、払出ユニットの払出モータ91を駆動させ、賞球を払い出させるための制御を行う。また、払出制御装置200は、カードユニット600からの貸球要求信号に基づいて払出ユニットの払出モータ91を駆動させ、貸球を払い出させるための制御を行う。
遊技用マイコン111の入力部120には、遊技機に対する電波の発射を検出する電波センサ62(盤電波センサ)、普図始動ゲート34のゲートスイッチ34a、第1始動入賞口36内の始動口1スイッチ36a、第2始動入賞口37内の始動口2スイッチ37a、入賞口スイッチ35a〜35n、特別変動入賞装置39の大入賞口スイッチ39aに接続され、これらのスイッチから供給されるハイレベルが11Vでロウレベルが7Vのような負論理の信号が入力され、0V−5Vの正論理の信号に変換するインタフェースチップ(近接I/F)121が設けられている。
近接I/F121の出力は、第2入力ポート123又は第3入力ポート124に供給されデータバス140を介して遊技用マイコン111に読み込まれる。なお、近接I/F121の出力のうち、ゲートスイッチ34a、始動口1スイッチ36a、始動口2スイッチ37a、入賞口スイッチ35a〜35n、大入賞口スイッチ39aの検出信号は第3入力ポート124に入力される。
また、近接I/F121の出力のうち、電波センサ62の検出信号及びセンサやスイッチの異常を検出した際に出力される異常検知信号は第2入力ポート123に入力される。
また、第2入力ポート123には、遊技機10の前面枠12等に設けられた不正検出用の磁気センサスイッチ61の検出信号、アウト口30bに入った遊技球を検出するアウト球検出スイッチ65の検出信号、払出制御装置200から出力される枠電波不正信号、払出ビジー信号が入力される。なお、振動を検出する振動センサスイッチを遊技機に設け、検出信号が第2入力ポート123に入力されるようにしてもよい。枠電波不正信号は前面枠12(本体枠)に設けられた枠電波センサが電波を検出することに基づき出力される信号であり、払出ビジー信号は払出制御装置200がコマンドを受付可能な状態か否かを示す信号である。
また、近接I/F121の出力のうち、第3入力ポート124への出力は、遊技制御装置100から中継基板70を介して図示しない試射試験装置へも供給されるようになっている。さらに、近接I/F121の出力のうち始動口1スイッチ36aと始動口2スイッチ37aの検出信号は、第3入力ポート124の他、遊技用マイコン111に入力されるように構成されている。
前述のように近接I/F121は、信号のレベル変換機能を有する。このようなレベル変換機能を可能にするため、近接I/F121には、電源装置400から通常のICの動作に必要な例えば5Vのような電圧の他に、12Vの電圧が供給されるようになっている。
第3入力ポート124が保持しているデータは、遊技用マイコン111が第3入力ポート124に割り当てられているアドレスをデコードすることによってイネーブル信号CE2をアサート(有効レベルに変化)することよって、読み出すことができる。第2入力ポート123や後述の第1入力ポート122も同様である。
また、入力部120には、遊技機10のガラス枠15等に設けられたガラス枠開放検出スイッチ63、前面枠12等に設けられた前面枠開放検出スイッチ64からの信号、払出異常を示すステータス信号、払出前の遊技球の不足を示すシュート球切れスイッチ信号、オーバーフローを示すオーバーフロースイッチ信号、操作ハンドル24に設けられたタッチスイッチの入力に基づくタッチスイッチ信号を取り込んでデータバス140を介して遊技用マイコン111に供給する第1入力ポート122が設けられている。オーバーフロースイッチ信号は、下皿23に遊技球が所定量以上貯留されていること(満杯になったこと)を検出したときに出力される信号である。
また、入力部120には、電源装置400からの停電監視信号やリセット信号などの信号を遊技用マイコン111等に入力するためのシュミットバッファ125が設けられており、シュミットバッファ125はこれらの入力信号からノイズを除去する機能を有する。電源装置400からの停電監視信号や、初期化スイッチ112からの初期化スイッチ信号は、一旦第1入力ポート122に入力され、データバス140を介して遊技用マイコン111に取り込まれる。つまり、前述の各種スイッチからの信号と同等の信号として扱われる。遊技用マイコン111に設けられている外部からの信号を受ける端子の数には制約があるためである。
一方、シュミットバッファ125によりノイズ除去されたリセット信号RSTは、遊技用マイコン111に設けられているリセット端子に直接入力されるとともに、出力部130の各ポートに供給される。また、リセット信号RSTは出力部130を介さずに直接中継基板70に出力することで、試射試験装置に出力するために中継基板70のポート(図示省略)に保持される試射試験信号をオフするように構成されている。
また、リセット信号RSTを中継基板70を介して試射試験装置に出力可能に構成するようにしてもよい。なお、リセット信号RSTは入力部120の各ポート122,123,124には供給されない。リセット信号RSTが入る直前に遊技用マイコン111によって出力部130の各ポートに設定されたデータはシステムの誤動作を防止するためリセットする必要があるが、リセット信号RSTが入る直前に入力部120の各ポートから遊技用マイコン111が読み込んだデータは、遊技用マイコン111のリセットによって廃棄されるためである。
出力部130には、遊技用マイコン111から演出制御装置300への通信経路及び遊技用マイコン111から払出制御装置200への通信経路に配されるシュミットバッファ132が設けられている。遊技制御装置100から演出制御装置300及び払出制御装置200へは、シリアル通信でデータが送信される。なお、演出制御装置300の側から遊技制御装置100へ信号を入力できないようにした片方向通信とされている。
さらに、出力部130には、データバス140に接続され図示しない認定機関の試射試験装置へ変動表示ゲームの特図図柄情報を知らせるデータや大当りの確率状態を示す信号などを中継基板70を介して出力するバッファ133が実装可能に構成されている。バッファ133は遊技店に設置される実機(量産販売品)としてのパチンコ遊技機の遊技制御装置(主基板)には実装されない部品である。なお、前記近接I/F121から出力される始動口スイッチなど加工の必要のないスイッチの検出信号は、バッファ133を通さずに中継基板70を介して試射試験装置に供給される。
一方、磁気センサスイッチ61や電波センサ62のようにそのままでは試射試験装置に供給できない検出信号は、一旦遊技用マイコン111に取り込まれて他の信号若しくは情報に加工されて、例えば遊技機が遊技制御できない状態であることを示すエラー信号としてデータバス140からバッファ133、中継基板70を介して試射試験装置に供給される。
なお、中継基板70には、バッファ133から出力された信号を取り込んで試射試験装置に供給するポートや、バッファを介さないスイッチの検出信号の信号線を中継して伝達するコネクタなどが設けられている。中継基板70上のポートには、遊技用マイコン111から出力されるチップイネーブル信号CEも供給され、該信号CEにより選択制御されたポートの信号が試射試験装置に供給されるようになっている。
また、出力部130には、データバス140に接続され普通変動入賞装置37を開放させるソレノイド(普電ソレノイド)37c、特別変動入賞装置39を開放させるソレノイド(大入賞口ソレノイド)39bの開閉データを出力するための第2出力ポート134が設けられている。
また、出力部130には、一括表示装置50に表示する内容に応じてLEDのアノード端子が接続されているセグメント線のオン/オフデータを出力するための第3出力ポート135−1、135−2、一括表示装置50のLEDのカソード端子が接続されているデジット線のオン/オフデータを出力するための第4出力ポート136が設けられている。
また、出力部130には、大当り情報など遊技機10に関する情報を外部情報端子71に出力するための第5出力ポート137が設けられている。外部情報端子71にはフォトリレーが備えられ、例えば遊技店に設置された外部装置(情報収集端末や遊技場内部管理装置(ホールコンピュータ)など)に接続可能であり、遊技機10に関する情報を外部装置に供給することができるようになっている。また、第5出力ポート137からはシュミットバッファ132を介して払出制御装置200に発射許可信号も出力される。
さらに、出力部130には、第2出力ポート134から出力される普電ソレノイド37cや大入賞口ソレノイド39bの開閉データ信号を受けてソレノイド駆動信号を生成し出力する第1ドライバ(駆動回路)138a、第3出力ポート135−1、135−2から出力される一括表示装置50の電流供給側のセグメント線のオン/オフ駆動信号を出力する第2ドライバ138b−1、138b−2、第4出力ポート136から出力される一括表示装置50の電流引き込み側のデジット線のオン/オフ駆動信号を出力する第3ドライバ138c、第5出力ポート137から管理装置等の外部装置に供給する外部情報信号を外部情報端子71に出力する第4ドライバ138dが設けられている。なお、第2ドライバ138b−2は、一括表示装置50のうち、排出球数表示部66、出玉率表示部67、及び、役物比率表示部68用のセグメント線のオン/オフ駆動信号を出力し、第2ドライバ138b−1は、一括表示装置50のその他の表示部(表示器)用のセグメント線のオン/オフ駆動信号を出力する。
第1ドライバ138aには、32Vで動作するソレノイドを駆動できるようにするため、電源電圧としてDC32Vが電源装置400から供給される。また、一括表示装置50のセグメント線を駆動する第2ドライバ138bには、DC12Vが供給される。デジット線を駆動する第3ドライバ138cは、表示データに応じたデジット線を電流で引き抜くためのものであるため、電源電圧は12V又は5Vのいずれであってもよい。
12Vを出力する第2ドライバ138bによりセグメント線を介してLEDのアノード端子に電流を流し込み、接地電位を出力する第3ドライバ138cによりカソード端子よりセグメント線を介して電流を引き抜くことで、ダイナミック駆動方式で順次選択されたLEDに電源電圧が流れて点灯される。外部情報信号を外部情報端子71に出力する第4ドライバ138dは、外部情報信号に12Vのレベルを与えるため、DC12Vが供給される。なお、バッファ133や第2出力ポート134、第1ドライバ138a等は、遊技制御装置100の出力部130、すなわち、主基板ではなく、中継基板70側に設けるようにしてもよい。
さらに、出力部130には、外部の検査装置250へ各遊技機の識別コードやプログラムなどの情報を送信するためのフォトカプラ139が設けられている。フォトカプラ139は、遊技用マイコン111が検査装置500との間でシリアル通信によってデータの送受信を行えるように双方通信可能に構成されている。なお、かかるデータの送受信は、通常の汎用マイクロプロセッサと同様に遊技用マイコン111が有するシリアル通信端子を利用して行われるため、入力ポート122,123,124のようなポートは設けられていない。
〔演出制御装置〕
次に、図4を用いて、演出制御装置300(サブ基板)の構成について説明する。図4は、遊技機10の演出制御系のブロック図である。
演出制御装置300は、遊技用マイコン111と同様にアミューズメントチップ(IC)からなる主制御用マイコン(CPU)311と、主制御用マイコン311からのコマンドやデータに従って表示装置41への映像表示のための画像処理を行うグラフィックプロセッサとしてのVDP(Video Display Processor)312と、各種のメロディや効果音などをスピーカ19から再生させるため音の出力を制御する音源LSI314を備えている。
主制御用マイコン311には、CPUが実行するプログラムや各種データを格納したPROM(プログラマブルリードオンリメモリ)からなるプログラムROM321、作業領域を提供するRAM322、停電時に電力が供給されなくとも記憶内容を保持可能なFeRAM323、現在の日時(年月日や曜日、時刻など)を示す情報を生成する計時手段をなすRTC(リアルタイムクロック)338が接続されている。なお、主制御用マイコン311の内部にも作業領域を提供するRAMが設けられている。
また、主制御用マイコン311にはWDT(ウォッチドッグ・タイマ)回路324が接続されている。主制御用マイコン311は、遊技用マイコン111からのコマンドを解析し、演出内容を決定してVDP312に出力映像の内容を指示したり、音源LSI314への再生音の指示、装飾ランプの点灯、モータやソレノイドの駆動制御、演出時間の管理などの処理を実行する。
VDP312には、作業領域を提供するRAM312aや、画像を拡大、縮小処理するためのスケーラ312bが設けられている。また、VDP312にはキャラクタ画像や映像データが記憶された画像ROM325や、画像ROM325から読み出されたキャラクタなどの画像データを展開したり加工したりするのに使用される超高速なVRAM(ビデオRAM)326が接続されている。
特に限定されるわけではないが、主制御用マイコン311とVDP312との間は、パラレル方式でデータの送受信が行われるように構成されている。パラレル方式でデータを送受信することで、シリアルの場合よりも短時間にコマンドやデータを送信することができる。
VDP312から主制御用マイコン311へは、表示装置41の映像とガラス枠15や遊技盤30に設けられている装飾ランプの点灯を同期させるための垂直同期信号VSYNC、データの送信タイミングを与える同期信号STSが入力される。なお、VDP312から主制御用マイコン311へは、VRAMへの描画の終了等処理状況を知らせるため割込み信号INT0〜n及び主制御用マイコン311からのコマンドやデータの受信待ちの状態にあることを知らせるためのウェイト信号WAITなども入力される。
演出制御装置300には、LVDS(小振幅信号伝送)方式で表示装置41に送信する映像信号を生成する信号変換回路313が設けられている。VDP312から信号変換回路313へは、映像データ、水平同期信号HSYNC及び垂直同期信号VSYNCが入力されるようになっており、VDP312で生成された映像は、信号変換回路313を介して表示装置41に表示される。
音源LSI314には音声データが記憶された音ROM327が接続されている。主制御用マイコン311と音源LSI314は、アドレス/データバス340を介して接続されている。また、音源LSI314から主制御用マイコン311へは割込み信号INTが入力されるようになっている。演出制御装置に300には、ガラス枠15に設けられた上スピーカ19a及び前面枠12に設けられた下スピーカ19bを駆動するオーディオパワーアンプなどからなるアンプ回路337が設けられており、音源LSI314で生成された音声はアンプ回路337を介して上スピーカ19a及び下スピーカ19bから出力される。
また、演出制御装置300には、遊技制御装置100から送信されるコマンドを受信するインタフェースチップ(コマンドI/F)331が設けられている。コマンドI/F331を介して、遊技制御装置100から演出制御装置300に送信された飾り特図保留数コマンド、飾り特図コマンド、変動コマンド、停止情報コマンド等を、演出制御指令信号(演出コマンド)として受信する。遊技制御装置100の遊技用マイコン111はDC5Vで動作し、演出制御装置300の主制御用マイコン311はDC3.3Vで動作するため、コマンドI/F331には信号のレベル変換の機能が設けられている。
また、演出制御装置300には、遊技盤30(センターケース40を含む)に設けられているLED(発光ダイオード)を有する盤装飾装置46を駆動制御する盤装飾LED制御回路332、ガラス枠15に設けられているLED(発光ダイオード)を有する枠装飾装置(例えば枠装飾装置18等)を駆動制御する枠装飾LED制御回路333、遊技盤30(センターケース40を含む)に設けられている盤演出装置44(例えば表示装置41における演出表示と協働して演出効果を高める可動役物等)を駆動制御する盤演出可動体制御回路334が設けられている。
ランプやモータ及びソレノイドなどを駆動制御するこれらの制御回路332〜334は、アドレス/データバス340を介して主制御用マイコン311と接続されている。なお、ガラス枠15に設けられているモータ等の枠演出装置を駆動制御する枠演出可動体制御回路を備えていてもよい。
さらに、演出制御装置300には、ガラス枠15に設けられた演出ボタン25に内蔵されている演出ボタンスイッチ25a、演出ボタン25の表面に設けられているタッチパネル25b、盤演出装置44内のモータの初期位置等を検出する演出役物スイッチ47(演出モータスイッチ)のオン/オフ状態を検出して主制御用マイコン311に検出信号を入力する機能や、演出制御装置300に設けられた音量調節スイッチ335の状態を検出して主制御用マイコン311に検出信号を入力するスイッチ入力回路336が設けられている。
電源装置400の通常電源部410は、前述のような構成を有する演出制御装置300やそれによって制御される電子部品に対して所望のレベルの直流電圧を供給するため、モータやソレノイドを駆動するためのDC32V、液晶パネルからなる表示装置41、モータやLEDを駆動するためのDC12V、コマンドI/F331の電源電圧となるDC5Vの他に、モータやLED、スピーカを駆動するためのDC15Vの電圧を生成するように構成されている。
さらに、主制御用マイコン311として、3.3Vあるいは1.2Vのような低電圧で動作するLSIを使用する場合には、DC5Vに基づいてDC3.3VやDC1.2Vを生成するためのDC−DCコンバータが演出制御装置300に設けられる。なお、DC−DCコンバータは通常電源部410に設けるようにしてもよい。
電源装置400の制御信号生成部430により生成されたリセット信号は、主制御用マイコン311に供給され、当該デバイスをリセット状態にする。また、主制御用マイコン311から出力される形で、VDP312(VDPRESET信号)、音源LSI314、スピーカを駆動するアンプ回路337(SNDRESET信号)、ランプやモータなどを駆動制御する制御回路332〜334(IORESET信号)に供給され、これらをリセット状態にする。また、演出制御装置300には遊技機10の各所を冷却する冷却FAN45が接続され、演出制御装置300の電源が投入された状態では冷却FAN45が駆動するようにされている。
次に、これらの制御回路において行われる遊技制御について説明する。遊技制御装置100の遊技用マイコン111のCPU111aでは、普図始動ゲート34に備えられたゲートスイッチ34aからの遊技球の検出信号の入力に基づき、普図の当り判定用乱数値を抽出してROM111bに記憶されている判定値と比較し、普図変動表示ゲームの当り外れを判定する。
そして、普図表示器に、識別図柄を所定時間変動表示した後、停止表示する普図変動表示ゲームを表示する。普図変動表示ゲームの結果が当りの場合は、普図表示器に特別の結果態様を表示するとともに、普電ソレノイド37cを動作させ、普通変動入賞装置37の可動部材37bを所定時間(例えば、0.3秒間)前述のように開放する制御を行う。すなわち、遊技制御装置100が、変換部材(可動部材37b)の変換制御を行う変換制御実行手段をなす。なお、普図変動表示ゲームの結果がはずれの場合は、普図表示器にはずれの結果態様を表示する制御を行う。
また、始動入賞口36に備えられた始動口1スイッチ36aからの遊技球の検出信号の入力に基づき始動入賞(始動記憶)を記憶し、始動記憶に基づき、特図1変動表示ゲームの大当り判定用乱数値を抽出してROM111bに記憶されている判定値と比較し、特図1変動表示ゲームの当り外れを判定する。
また、普通変動入賞装置37に備えられた始動口2スイッチ37aからの遊技球の検出信号の入力に基づき始動記憶を記憶し、始動記憶に基づき、特図2変動表示ゲームの大当り判定用乱数値を抽出してROM111bに記憶されている判定値と比較し、特図2変動表示ゲームの当り外れを判定する。
そして、遊技制御装置100のCPU111aは、特図1変動表示ゲームや特図2変動表示ゲームの判定結果を含む制御信号(演出制御コマンド)を、演出制御装置300に出力する。そして、特図1表示器51や特図2表示器52に、識別図柄を所定時間変動表示した後、停止表示する特図変動表示ゲームを表示する。すなわち、遊技制御装置100が、遊技領域32を流下する遊技球の始動入賞領域(第1始動入賞口36、普通変動入賞装置37)への入賞に基づき変動表示ゲームの進行制御を行う遊技制御手段をなす。
また、演出制御装置300では、遊技制御装置100からの制御信号に基づき、表示装置41で特図変動表示ゲームに対応した飾り特図変動表示ゲームを表示する。さらに、演出制御装置300では、遊技制御装置100からの制御信号に基づき、演出状態の設定や、スピーカ19a,19bからの音の出力、各種LEDの発光を制御する処理等を行う。すなわち、演出制御装置300が、遊技(変動表示ゲーム等)に関する演出を制御する演出制御手段をなす。
そして、遊技制御装置100のCPU111aは、特図変動表示ゲームの結果が当りの場合は、特図1表示器51や特図2表示器52に特別結果態様を表示するとともに、特別遊技状態を発生させる。特別遊技状態を発生させる処理においては、CPU111aは、例えば、大入賞口ソレノイド39bにより特別変動入賞装置39の開閉扉39cを開放させ、大入賞口内への遊技球の流入を可能とする制御を行う。
そして、大入賞口に所定個数(例えば、10個)の遊技球が入賞するか、大入賞口の開放から所定の開放可能時間(例えば、27秒又は0.05秒)が経過するかのいずれかの条件が達成されるまで大入賞口を開放することを1ラウンド(R)とし、これを所定ラウンド回数(例えば、16回又は4回)継続する(繰り返す)制御(サイクル遊技)を行う。すなわち、遊技制御装置100が、停止結果態様が特別結果態様となった場合に、大入賞口を開閉する制御を行う大入賞口開閉制御手段をなす。また、特図変動表示ゲームの結果がはずれの場合は、特図1表示器51や特図2表示器52にはずれの結果態様を表示する制御を行う。
また、遊技制御装置100は、特図変動表示ゲームの結果態様に基づき、特別遊技状態の終了後に、遊技状態として高確率状態を発生可能となっている。高確率状態(確変状態)は、特図変動表示ゲームにて当り結果となる確率が、通常確率状態と比較して高い状態である。また、特図1変動表示ゲーム及び特図2変動表示ゲームのどちらの特図変動表示ゲームの結果態様に基づき高確率状態となっても、特図1変動表示ゲーム及び特図2変動表示ゲームの両方が高確率状態となる。
また、遊技制御装置100は、特図変動表示ゲームの結果態様に基づき、特別遊技状態の終了後に、遊技状態として時短状態(特定遊技状態)を発生可能となっている。時短状態においては、普図変動表示ゲーム及び普通変動入賞装置37を時短動作状態とする制御を行い、普通変動入賞装置37が通常動作状態である場合よりも、単位時間当りの普通変動入賞装置37の開放時間が実質的に多くなるように制御するため、普電サポート状態となる。なお、潜伏確変状態を除く高確率状態(通常の確変状態)でも、重複して時短状態にして普電サポートを実行する。
例えば、時短状態においては、前述の普図変動表示ゲームの実行時間(普図変動時間)を通常の第1変動表示時間よりも短い第2変動表示時間にする時間短縮変動が可能である(例えば、10000msecが1000msec)。なお、時短状態においては、特図変動表示ゲームの実行時間(特図変動時間)も通常より短縮され、特図変動表示ゲームの時間短縮変動も実行する。
また、時短状態においては、普図変動表示ゲームの結果を表示する普図停止時間を第1停止時間(例えば1604msec)よりも短い第2停止時間(例えば704msec)となるように制御することが可能である。
また、時短状態においては、普図変動表示ゲームが当り結果となって普通変動入賞装置37が開放される場合に、開放時間(普電開放時間)が通常状態の第1開放時間(例えば100msec)よりも長い第2開放時間(例えば1352msec)となるように制御することが可能である。
また、時短状態においては、普図変動表示ゲームの1回の当り結果に対して、普通変動入賞装置37の開放回数(普電開放回数)を第1開放回数(例えば2回)よりも多い回数(例えば、4回)の第2開放回数に設定することが可能である。また、時短状態においては、普図変動表示ゲームの当り結果となる確率(普図確率)を通常動作状態である場合の通常確率(低確率)よりも高い高確率とすることが可能である。
時短状態においては、普図変動時間、普図停止時間、普電開放回数、普電開放時間、普図確率のいずれか一つ又は複数を変化させることで普通変動入賞装置37を開状態に状態変換する時間を通常よりも延長するようにする。これにより、時短状態では、通常遊技状態よりも普通変動入賞装置37への入賞が容易化して、単位時間当たりの特図変動表示ゲームの実行回数が通常遊技状態よりも増加可能である。また、変化させるものが異なる複数種類の時短状態を設定することも可能である。また、通常動作状態において可動部材37bを開放しないように設定(普図確率が0)してもよい。また、当りとなった場合に第1開放態様と第2開放態様のいずれかを選択するようにしてもよい。この場合、第1開放態様と第2開放態様の選択確率を異ならせてもよい。また、高確率状態と時短状態は、それぞれ独立して発生可能であり、両方を同時に発生することも可能であるし一方のみを発生させることも可能である。
[遊技制御装置の制御]
以下、このような遊技を行う遊技機の制御について説明する。まず、上記遊技制御装置100の遊技用マイクロコンピュータ(遊技用マイコン)111によって実行される制御について説明する。遊技用マイコン111による制御処理は、主に図5A及び図5Bに示すメイン処理と、所定時間周期(例えば4msec)で行われる図9に示すタイマ割込み処理とからなる。
〔メイン処理(遊技制御装置)〕
まず、メイン処理について説明する。図5A及び図5Bは、遊技制御装置100によるメイン処理の手順を示すフローチャートである。メイン処理は、電源が投入されることで開始される。なお、遊技制御装置100が実行する処理のフローチャートにおいて、ステップの符号(番号)は「A****」と表されている。
図5Aに示すように、遊技制御装置100は、メイン処理を開始すると、まず、割込みを禁止する処理を実行する(A1001)。さらに、割込み発生時にレジスタ等の値を退避する領域の先頭アドレスであるスタックポインタを設定するスタックポインタ設定処理を実行する(A1002)。
続いて、使用するレジスタバンクとしてレジスタバンク0を指定し(A1003)、所定のレジスタにRAM先頭アドレスの上位アドレスをセットする(A1004)。例えば、RAMのアドレスが0000h〜01FFhの範囲である場合に、上位アドレスとして00hをセットする。
次に、遊技制御装置100は、発射禁止の信号を出力して発射許可信号を禁止状態に設定する(A1005)。発射許可信号は遊技制御装置100と払出制御装置200の少なくとも一方が発射禁止の信号を出力している場合に禁止状態に設定され、遊技球の発射が禁止されるようになっている。その後、遊技制御装置100は、入力ポート1(第1入力ポート122)の状態を読み込む(A1006)。
さらに、遊技制御装置100は、電源ディレイタイマを設定する(A1007)。電源ディレイタイマに所定の初期値を設定することにより、主制御手段をなす遊技制御装置100からの指示に従い種々の制御を行う従制御手段(例えば、払出制御装置200や演出制御装置300)のプログラムが正常に起動するまで待機するための待機時間(例えば3秒)が設定される。これにより、電源投入の際に仮に遊技制御装置100が先に立ち上がって従制御装置(例えば払出制御装置200や演出制御装置300)が立ち上がる前にコマンドを従制御装置に送ってしまい、従制御装置がコマンドを取りこぼすことを回避することができる。すなわち、遊技制御装置100が、電源投入時において、主制御手段(遊技制御装置100)の起動を遅らせて従制御装置(払出制御装置200、演出制御装置300等)の起動を待つための所定の待機時間を設定する待機手段をなす。
また、電源ディレイタイマの計時は、RAMの正当性判定(チェックサム算出)の対象とならない記憶領域(正当性判定対象外のRAM領域又はレジスタ等)を用いて行われる。これにより、RAM領域のチェックサム等のチェックデータを算出する際に、一部のRAM領域を除外して算出する必要がないため電源投入時の制御が複雑になることを防止することができる。
なお、第1入力ポート122には初期化スイッチ信号が入力されるようになっており、待機時間の開始前に第1入力ポート122の状態を読み込むことで、初期化スイッチ112の操作を確実に検出できる。すなわち、待機時間の経過後に初期化スイッチ112の状態を読み込むようにすると、待機時間の経過を待ってから初期化スイッチ112を操作したり、電源投入から待機時間の経過まで初期化スイッチ112を操作し続けたりする必要がある。しかし、待機時間の開始前に状態を読み込むことで、このような煩わしい操作を行わなくても電源投入後すぐに操作を行うことで検出されるようになり、電源投入時に行った初期化の操作が受け付けられないような事態を防止できる。
電源ディレイタイマを設定すると(A1007)、遊技制御装置100は、待機時間の計時と、待機時間中における停電の発生を監視する処理とを実行する(A1008からA1012)。
停電監視処理が開始されると、遊技制御装置100は、まず、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックする回数(例えば2回)を設定し(A1008)、停電監視信号がオンである否かを判定する(A1009)。
遊技制御装置100は、停電監視信号がオンである場合には(A1009の結果が「Y」)、ステップA1008の処理で設定したチェック回数分停電監視信号のオン状態が継続しているか否かを判定する(A1010)。そして、チェック回数分停電監視信号のオン状態が継続していない場合には(A1010の結果が「N」)、ステップA1009の停電監視信号がオンであるか否かを判定する処理に戻る。
また、遊技制御装置100は、チェック回数分停電監視信号のオン状態が継続している場合(A1010の結果が「Y」)、すなわち、停電が発生していると判定した場合には、遊技機の電源が遮断されるまで待機する。このように、所定期間に亘り停電監視信号を受信し続けた場合に停電が発生したと判定することで、ノイズなどにより停電を誤検知することを防止でき、電源投入時における不具合に適切に対処することができる。
すなわち、遊技制御装置100が、所定の待機時間において停電の発生を監視する停電監視手段をなす。これにより、主制御手段をなす遊技制御装置100の起動を遅らせている期間において発生した停電に対応することが可能となり、電源投入時における不具合に適切に対処することができる。なお、待機時間の終了まではRAMへのアクセスが許可されておらず、前回の電源遮断時の記憶内容が保持されたままとなっているため、ここでの停電発生時にはバックアップの処理等は行う必要がない。したがって、待機時間中に停電が発生してもRAMのバックアップを取る必要がなく、制御の負担を軽減することができる。
一方、遊技制御装置100は、停電監視信号がオンでない場合(A1009の結果が「N」)、すなわち、停電が発生していない場合には、電源投入ディレイタイマを−1更新し(A1011)、タイマの値が0であるか否かを判定する(A1012)。タイマの値が0でない場合(A1012の結果が「N」)、すなわち、待機時間が終了していない場合には、ステップA1008の停電監視信号のチェック回数を設定する処理に戻る。
また、遊技制御装置100は、タイマの値が0である場合(A1012の結果が「Y」)、すなわち、待機時間が終了した場合には、RAMやEEPROM等の読出し書込み可能なRWM(リードライトメモリ)のアクセスを許可し(A1013)、全出力ポートにオフデータを出力(出力が無い状態に設定)する(A1014)。
次に、遊技制御装置100は、シリアルポート(遊技用マイコン111に予め搭載されているポートで、本実施形態では、演出制御装置300や払出制御装置200との通信に使用)を設定する(A1015)。さらに、先に読み込んだ第1入力ポート122の状態から初期化スイッチがオンにされたか否かを判定する(A1016)。
遊技制御装置100は、初期化スイッチがオフである場合には(A1016の結果が「N」)、RWM内の停電検査領域1の値が正常な停電検査領域チェックデータであるか否かを判定する(A1017)。そして、正常であれば(A1017の結果が「Y」)、RWM内の停電検査領域2の値が正常な停電検査領域チェックデータであるか否かを判定する(A1018)。
さらに、遊技制御装置100は、停電検査領域2の値が正常であれば(A1018の結果が「Y」)、RWM内の所定領域のチェックサムを算出するチェックサム算出処理を実行し(A1019)、正当性判定として、算出されたチェックサムと電源断時のチェックサムが一致するか否かを判定する(A1020)。なお、出玉や獲得球数に関する情報を記憶する領域(例えば、排出球数領域、獲得球数領域、役物別獲得球数領域)を正当性判定の対象から外してもよい。チェックサムが一致する場合には(A1020の結果が「Y」)、図5BのステップA1021の処理に移行し、停電から正常に復旧した場合の処理を実行する。
また、遊技制御装置100は、初期化スイッチがオンである場合(A1016の結果が「Y」)、停電検査領域のチェックデータが正常なデータでないと判定された場合(A1017の結果が「N」、又は、A1018の結果が「N」)、チェックサムが正常でない場合には(A1020の結果が「N」)、図5BのステップA1026の処理に移行して初期化処理を実行する。すなわち、初期化スイッチが外部からの操作が可能な初期化操作部をなし、遊技制御装置100が、初期化操作部が操作されたことに基づきRAMに記憶されたデータを初期化する初期化手段をなす。
遊技制御装置100は、初期化すべき領域に停電復旧時(電源投入時)の初期値をセーブする(A1021)。初期化すべき領域とは、停電検査領域、チェックサム領域及びエラー不正監視に係る領域である。また、初期化すべき領域は、後述の排出球数領域、獲得球数領域、役物別獲得球数領域を含み、これら領域は0クリア(初期値=0)によって初期化される。これにより、排出球数、獲得球数、役物別獲得球数、さらには、獲得球数から得られる出玉率、役物別獲得球数から計算される役物比率も0クリアされることになる。なお、役物別獲得球数領域(ひいては役物比率)は、0クリアしない構成も可能である。また、払出制御装置200がコマンドを受付可能な状態か否かを示す信号である払出ビジー信号の状態を記憶するビジー信号ステータス領域もクリアされ、払出ビジー信号の状態を確定していないことを示す不定状態とされる。その後、遊技制御装置100は、RWM内の遊技状態を記憶する領域を調べて遊技状態が高確率状態であるか否かを判定する(A1022)。
ここで、遊技制御装置100は、遊技状態が高確率状態でない場合には(A1022の結果が「N」)、ステップA1023及びステップA1024の処理をスキップして、ステップA1025の処理に移行する。また、遊技状態が高確率状態である場合には(A1022の結果が「Y」)、高確率報知フラグ領域にオン情報をセーブし(A1023)、例えば一括表示装置50に設けられる高確率報知LED(エラー表示器)のオン(点灯)データをセグメント領域にセーブする(A1024)。そして、後述の特図ゲーム処理を合理的に実行するために用意されている処理番号に対応する停電復旧時のコマンドを演出制御基板(演出制御装置300)に送信し(A1025)、ステップA1031の処理を実行する。
一方、ステップA1016,A1017,A1018,A1020の実行後にステップA1026の処理を実行する場合には、遊技制御装置100は、RAMアクセス禁止領域をアクセス許可に設定する(A1026)。さらに、ビジー信号ステータス領域を含むすべてのRAM領域を0クリアし(A1027)、RAMアクセス禁止領域をアクセス禁止に設定する(A1028)。
そして、遊技制御装置100は、初期化すべき領域にRAM初期化時の初期値をセーブする(A1029)。初期化すべき領域とは、客待ちデモ領域及び演出モードの設定に係る領域である。さらに、遊技制御装置100は、RAM初期化時のコマンドを演出制御基板に送信し(A1030)、ステップA1031の処理を実行する。
なお、ステップA1025の処理で送信される停電復旧時のコマンド及びステップA1030の処理で送信されるRAM初期化時のコマンドには、遊技機の種類を示す機種指定コマンド、特図1,2の保留数を示す飾り特図1保留数コマンド及び飾り特図2保留数コマンド、確率の状態を示す確率情報コマンドが含まれる。また、電源遮断時や電源投入時の状態に応じて、電源遮断時に特図変動表示ゲームの実行中であった場合は復旧画面コマンド、電源遮断時に客待ち中であった場合は客待ちデモコマンド、電源投入時に初期化された場合は電源投入コマンドが含まれる。さらに、機種によって演出モードの状態を示す演出モード情報コマンド、時短状態での残りゲーム数を示す時短回数情報コマンドが含まれる。RAM初期化時のコマンドには、RAM初期化のコマンドも含まれる。
遊技制御装置100は、遊技用マイコン111(クロックジェネレータ)内のタイマ割込み信号及び乱数更新トリガ信号(CTC)を発生するCTC(Counter/Timer Circuit)回路を起動する(A1031)。なお、CTC回路は、遊技用マイコン111内のクロックジェネレータに設けられている。クロックジェネレータは、発振回路113からの発振信号(原クロック信号)を分周する分周回路と、分周された信号に基づいてCPU111aに対して所定周期(例えば、4ミリ秒)のタイマ割込み信号及び乱数生成回路に供給する乱数更新のトリガを与える信号CTCを発生するCTC回路とを備えている。
ステップA1031のCTC起動処理の実行後、遊技制御装置100は、乱数生成回路を起動設定する(A1032)。具体的には、乱数生成回路内の所定のレジスタ(CTC更新許可レジスタ)に乱数生成回路を起動させるためのコード(指定値)の設定などがCPU111aによって行われる。また、乱数生成回路のハードウェアで生成されるハード乱数(ここでは大当り乱数)のビット転置パターンの設定も行われる。
ビット転置パターンとは、抽出した乱数のビット配置(上段のビット転置前の配置)を、予め定められた順で入れ替えて異なるビット配置(下段のビット転置後の配置)として格納する際の入れ替え方を定めるパターンである。
本実施形態では、ビット転置パターンに従い乱数のビットを入れ替えることで、乱数の規則性を崩すことができるとともに、乱数の秘匿性を高めることができる。なお、ビット転置パターンは、固定された単一のパターンであってもよいし、予め用意された複数のパターンから選択するようにしてもよい。また、ユーザーが任意に設定できるようにしてもよい。
その後、遊技制御装置100は、電源投入時の乱数生成回路内の所定のレジスタ(ソフト乱数レジスタ1〜n)の値を抽出し、対応する各種初期値乱数(大当り図柄を決定する乱数(大当り図柄乱数1、大当り図柄乱数2)、小当り図柄を決定する乱数(小当り図柄乱数)、普図の当りを決定する乱数(当り乱数)、普図の当り図柄を決定する乱数(当り図柄乱数)等)の初期値(スタート値)としてRWMの所定領域にセーブし(A1033)、割込みを許可する(A1034)。本実施形態で使用するCPU111a内の乱数生成回路においては、電源投入ごとにソフト乱数レジスタの初期値が変わるように構成されているため、この値を各種初期値乱数の初期値(スタート値)とすることで、ソフトウェアで生成される乱数の規則性を崩すことができ、遊技者による不正な乱数の取得を困難にすることができる。
続いて、遊技制御装置100は、各種初期値乱数の値を更新して乱数の規則性を崩すための初期値乱数更新処理を実行する(A1035)。なお、特に限定されるわけではないが、本実施形態においては、大当り乱数、大当り図柄乱数、当り乱数は乱数生成回路において生成される乱数を使用して生成するように構成されている。ただし、大当り乱数はCPUの動作クロックと同等以上の速度のクロックを基にして更新される所謂「高速カウンタ」であり、大当り図柄乱数、当り乱数はプログラムの処理単位であるタイマ割込み処理と同周期となるCTC出力(タイマ割込み処理のCTC(CTC0)とは別のCTC(CTC2))を基にして更新される「低速カウンタ」である。
また、大当り図柄乱数、当り図柄乱数においては、乱数が一巡するごとに各々の初期値乱数(ソフトウェアで生成)を用いてスタート値を変更する所謂「初期値変更方式」を採用している。なお、前記各乱数は、+1あるいは−1によるカウンタ式更新でもよいし、一巡するまで範囲内のすべての値が重複なくバラバラに出現するランダム式更新でもよい。つまり、大当り乱数はハードウェアのみで更新される乱数であり、大当り図柄乱数、当り乱数はハードウェア及びソフトウェアで更新される乱数である。
ステップA1035の初期値乱数更新処理の後、遊技制御装置100は、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックする回数を設定し(A1036)、停電監視信号がオンであるか否かを判定する(A1037)。停電監視信号がオンでない場合には(A1037の結果が「N」)、ステップA1035の初期値乱数更新処理に戻る。すなわち、停電が発生していない場合には、初期値乱数更新処理と停電監視信号のチェック(ループ処理)を繰り返し行う。初期値乱数更新処理(A1035)の前に割込みを許可する(A1034)ことによって、初期値乱数更新処理中にタイマ割込みが発生すると割込み処理が優先して実行されるようになり、タイマ割込みが初期値乱数更新処理によって待機させられることで割込み処理が圧迫されることを回避することができる。
なお、ステップA1035の初期値乱数更新処理は、メイン処理のほか、タイマ割込み処理の中においても初期値乱数更新処理を行う方法もあり、そのような方法を採用した場合には両方で初期値乱数更新処理が実行されることを回避するため、メイン処理で初期値乱数更新処理を行う場合には割込みを禁止してから更新して割込みを解除する必要がある。一方、本実施形態のようにタイマ割込み処理の中での初期値乱数更新処理はせず、メイン処理内のみにした場合には初期値乱数更新処理の前に割込みを解除しても何ら問題はなく、それによってメイン処理が簡素化されるという利点がある。
停電監視信号がオンである場合には(A1037の結果が「Y」)、遊技制御装置100は、ステップA1036の処理で設定したチェック回数分停電監視信号のオン状態が継続しているか否かを判定する(A1038)。そして、チェック回数分停電監視信号のオン状態が継続していない場合には(A1038の結果が「N」)、ステップA1037に戻り、停電監視信号がオンであるか否かを判定する。
また、遊技制御装置100は、チェック回数分停電監視信号のオン状態が継続している場合(A1038の結果が「Y」)、すなわち、停電が発生していると判定した場合には、一旦割込みを禁止し(A1039)、全出力ポートにオフデータを出力する(A1040)。
その後、遊技制御装置100は、停電検査領域1に停電検査領域チェックデータ1をセーブし(A1041)、停電検査領域2に停電検査領域チェックデータ2をセーブする(A1042)。さらに、RWMの電源遮断時のチェックサムを算出するチェックサム算出処理を実行し(A1043)、さらに、算出したチェックサムをセーブする(A1044)。最後に、RWMへのアクセスを禁止する処理を実行し(A1045)、遊技機の電源が遮断されるまで待機する。
このように、停電検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
以上のことから、遊技を統括的に制御する主制御手段(遊技制御装置100)と、該主制御手段からの指示に従い種々の制御を行う従制御手段(払出制御装置200、演出制御装置300等)と、を備える遊技機において、主制御手段は、電源投入時において、当該主制御手段の起動を遅らせて従制御装置の起動を待つための所定の待機時間を設定する待機手段(遊技制御装置100)と、当該所定の待機時間において停電の発生を監視する停電監視手段(遊技制御装置100)と、を備えていることとなる。
また、各種装置に電力を供給する電源装置400を備え、当該電源装置400は、停電の発生を検出した際に停電監視信号を出力するように構成され、停電監視手段(遊技制御装置100)は、所定期間に亘り停電監視信号を受信し続けた場合に停電が発生したと判定するようにしていることとなる。
また、主制御手段(遊技制御装置100)は、データを記憶可能なRAM111cと、外部からの操作が可能な初期化操作部(初期化スイッチ)と、初期化操作部が操作されたことに基づきRAM111cに記憶されたデータを初期化する初期化手段(遊技制御装置100)と、を備え、当該初期化手段の操作状態を待機時間の開始前に読み込むようにしていることとなる。
また、主制御手段(遊技制御装置100)は、待機時間の経過後にRAM111cへのアクセスを許可するようにしていることとなる。
〔チェックサム算出処理〕
図6は、チェックサム算出処理の手順を示すフローチャートである。チェックサム算出処理は、図5A及び図5Bに示したメイン処理のステップA1019及びA1043にて実行される。
遊技制御装置100は、まず、算出アドレスの開始値としてRWMの先頭アドレスを設定する(A1101)。そして、繰り返し数を設定し(A1102)、さらに、算出値として「0」を設定する(A1103)。繰り返し数には使用しているRAMのバイト数が設定される。
その後、遊技制御装置100は、算出アドレスの内容に算出値を加算した値を新たな算出値とし(A1104)、算出アドレスを+1更新し(A1105)、繰り返し数を−1更新する(A1106)。そして、チェックサムの算出が終了したか否かを判定する(A1107)。
遊技制御装置100は、チェックサムの算出が終了していない場合には(A1107の結果が「N」)、ステップA1104からステップA1107までの処理を繰り返す。また、チェックサムの算出が終了した場合には(A1107の結果が「Y」)、チェックサム算出処理を終了する。
〔初期値乱数更新処理〕
図7は、初期値乱数更新処理の手順を示すフローチャートである。初期値乱数更新処理は、図5A及び図5Bに示したメイン処理のステップA1035にて実行される。
遊技制御装置100は、まず、大当り図柄初期値乱数を+1更新(1だけ増加)し(A1201)、小当り図柄初期値乱数を+1更新する(A1202)。続いて、当り初期値乱数を+1更新し(A1203)、当り図柄初期値乱数を+1更新し(A1204)、初期値乱数更新処理を終了する。
ここで、「大当り図柄初期値乱数」は特図の大当り停止図柄を決定する乱数の初期値となる乱数のことであり、「小当り図柄初期値乱数」は特図の小当り停止図柄を決定する乱数の初期値となる乱数のことである。また、「当り初期値乱数」は、普図変動ゲームの当りを決定する乱数の初期値となる乱数のことであり、「当り図柄初期値乱数」は普図の当り停止図柄を決定する乱数の初期値となる乱数のことである。
以上のように、メイン処理において時間が許す限り初期値乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにしている。
〔タイマ割込み処理〕
次に、タイマ割込み処理について説明する。図8は、タイマ割込み処理の手順を示すフローチャートである。タイマ割込み処理は、クロックジェネレータ内のCTC回路で生成される周期的なタイマ割込み信号がCPU111aに入力されることで開始される。遊技用マイコン111においてタイマ割込みが発生すると、タイマ割込み処理が開始される。
タイマ割込み処理が開始されると、遊技制御装置100は、まず、使用するレジスタバンクとしてレジスタバンク1を指定し(A1301)、所定のレジスタにRAM先頭アドレスの上位アドレスをセットする(A1302)。タイマ割込み処理の開始時にメイン処理で使用するレジスタバンク0からレジスタバンク1に切り替えることで、メイン処理で使っているレジスタを退避したのと同等になる。なお、タイマ割込み処理が開始されると、自動的に割込み禁止状態になる。
次に、遊技制御装置100は、各種センサやスイッチからの入力や、信号の取り込み、すなわち、各入力ポートの状態を読み込む入力処理を実行する(A1303)。さらに、各種処理でセットされた出力データに基づき、ソレノイド(大入賞口ソレノイド39b)等のアクチュエータの駆動制御などを行うための出力処理を実行する(A1304)。なお、メイン処理におけるステップA1005の処理で発射禁止の信号を出力した場合は、この出力処理が行われることで発射許可の信号が出力され、発射許可信号を許可状態に設定可能な状態とされる。
次に、遊技制御装置100は、各種処理で送信バッファにセットされたコマンドを払出制御装置200に出力する払出コマンド送信処理を実行し(A1305)、さらに、乱数更新処理1(A1306)、乱数更新処理2(A1307)を実行する。その後、始動口1スイッチ36a、始動口2スイッチ37a、ゲートスイッチ34a、入賞口スイッチ35a〜35n、大入賞口スイッチ39aから正常な信号の入力があるか否かの監視や、エラーの監視(前面枠やガラス枠が開放されていないかなど)を行う入賞口スイッチ/状態監視処理を実行する(A1308)。
さらに、特図変動表示ゲームに関する処理を行う特図ゲーム処理を実行し(A1309)、次に、普図変動表示ゲームに関する処理を行う普図ゲーム処理を実行する(A1310)。
次に、遊技制御装置100は、遊技機10に設けられ、特図変動ゲームの表示や遊技に関する各種情報を表示するセグメントLEDを所望の内容を表示するように駆動するセグメントLED編集処理を実行する(A1311)。
さらに、遊技制御装置100は、磁気センサスイッチ61からの検出信号をチェックして異常がないか否かを判定する磁石不正監視処理を実行する(A1312)。さらに、遊技盤の電波センサ62からの検出信号をチェックして異常がないか否かを判定する電波不正監視処理(盤電波不正監視処理)を実行する(A1313)。
その後、遊技制御装置100は、外部の各種装置に出力する信号を出力バッファにセットする外部情報編集処理を実行する(A1314)。その後、タイマ割込み処理を終了する。なお、タイマ割込み処理のリターンの際、割込み禁止状態の復元やレジスタバンクの指定の復元は、自動的に行われる構成とするが、使用するCPUによっては、外部情報編集処理の後に、割込みを許可する処理やレジスタバンクの指定をレジスタバンク0に戻す処理を行ってもよい。
〔入力処理〕
次に、タイマ割込み処理における入力処理(A1303)の詳細について説明する。図9は、入力処理の手順を示すフローチャートである。
遊技制御装置100は、まず、入力ポート1、すなわち、第1入力ポート122に取り込まれたスイッチの検出信号の状態を読み込む(A1401)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(A1402)。
次に、遊技制御装置100は、読み込まれた入力ポート1、すなわち、第1入力ポート122の状態をRWM内のスイッチ制御領域1にセーブ(格納)する(A1403)。続いて、入力ポート2、すなわち、第2入力ポート123のアドレスを準備した後(A1404)、RWM内のスイッチ制御領域2のアドレスを準備する(A1405)。続いて、未使用のビットデータを準備し(A1406)、さらに、反転するビットデータを準備する(A1407)。そして、スイッチ読込み処理を実行する(A1408)。ここで、本実施形態において「準備」とは、レジスタに値をセットすることを意味するが、これに限らず、RWM、その他のメモリに値をセットするようにしてもよい。
次に、遊技制御装置100は、RWM内のスイッチ制御領域3のアドレスを準備し(A1409)、入力ポート3、すなわち、第3入力ポート124のアドレスを準備する(A1410)。さらに、未使用のビットデータを準備し(A1411)、反転するビットデータを準備する(A1412)。さらに、その後、スイッチ読込み処理を実行し(A1413)、入力処理を終了する。
〔スイッチ読込み処理〕
次に、前述の入力処理におけるスイッチ読込み処理(A1408、A1413)の詳細について説明する。図10は、スイッチ読込み処理の手順を示すフローチャートである。
遊技制御装置100は、まず、対象の入力ポートに取り込まれた信号の状態を読み込む(A1501)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアし(A1502)、反転の必要なビットを反転し(A1503)、対象のスイッチ制御領域のポート入力状態にセーブ(格納)する(A1504)。その後、2回目の読込みまでのディレイ時間(0.1ms)が経過するまで待機する(A1505)。
ディレイ時間(0.1ms)が経過すると、遊技制御装置100は、対象の入力ポートに取り込まれた信号の状態の2回目の読込みを行う(A1506)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアし(A1507)、反転の必要なビットを反転し(A1508)、対象のスイッチ制御領域のポート入力状態(1回目データ)をロードし、反転後データ(2回目データ)をセーブする(A1509)。その後、1回目と2回目の読込みで状態が同じビットを1、違うビットを0とした確定ビットパターンを作成し(A1510)、確定ビットパターンとポート入力状態2との論理積をとり、今回確定ビットとする(A1511)。
次に、遊技制御装置100は、1回目と2回目の読込みで状態が同じビットを0、違うビットを1とした未確定ビットパターンを作成し(A1512)、未確定ビットパターンと前回割込み時の確定状態との論理積をとり、前回保持ビットとする(A1513)。これにより、スイッチのチャタリング等によるノイズを除去した信号の状態を得ることができる。
そして、遊技制御装置100は、今回確定ビットと前回保持ビットとを合成し、今回確定状態としてセーブする(A1514)。さらに、前回と今回の確定状態との排他的論理和をとり、立上りエッジとしてセーブする(A1515)。その後、スイッチ読み込み処理を終了する。
なお、スイッチの読込みは、タイマ割込みの周期が短い場合(例えば2ms)には、各割込みの処理ごとにそれぞれ1回ずつスイッチの読込みを行って前回の読込みの結果と比較することで信号が変化したか否か判定する方法があるが、そのようにすると次の割込み処理までに前回の割込みで読み込んだスイッチの状態が失われた場合、正しく判定できないおそれがある。これに対し、本実施形態のように、所定の時間差をおいて1回の割込み処理の中で2回のスイッチ読込み処理を行うことで、上記のような不具合を回避することが可能となる。
〔出力処理〕
次に、前述のタイマ割込み処理における出力処理(A1304)の詳細について説明する。図11は、出力処理の手順を示すフローチャートである。
遊技制御装置100は、まず、一括表示装置(LED)50のセグメントのデータを出力するポート135−1、135−2(図3参照)にオフデータを出力(リセット)する(A1601)。次に、大入賞口ソレノイド39bのデータを出力するソレノイド出力ポート134に出力するデータを合成して出力する(A1602)。
そして、遊技制御装置100は、一括表示装置(LED)50のデジット線を順次スキャンするためのデジットカウンタの値を、例えば0〜4の範囲で、+1更新する(A1603)。さらに、デジットカウンタの値に対応するLEDのデジット線の出力データを取得する(A1604)。そして、取得したデータと外部情報データを合成し(A1605)、合成したデータをデジット出力・外部情報出力ポート136に出力する(A1606)。その後、デジットカウンタの値に対応するRWM内のセグメント領域からセグメント線の出力データをロードし(A1607)、ロードしたデータをセグメント出力用のポート135−1に出力する(A1608)。
その後、遊技制御装置100は、操作ハンドル24に設けられたタッチスイッチ(発射タッチスイッチ)からのタッチスイッチ信号がオン信号であるか否かを判定する(A1609)。即ち、操作ハンドル24が操作されているか否かを判定する。タッチスイッチからのタッチスイッチ信号がオン信号である場合(A1609の結果が「Y」)、デジットカウンタに対応するセグメント領域からセグメント出力データをロードし(A1610)、セグメント出力データをセグメント出力ポート2(ポート135−2)に出力する(A1612)。ここで出力するセグメント出力データは、排出球数表示部66、出玉率表示部67、及び、役物比率表示部68用のセグメント出力データである。これにより、操作ハンドル24が操作されている場合に、排出球数表示部66での排出球数表示、出玉率表示部67での出玉率表示、及び、役物比率表示部68での役物比率表示が可能になる。
一方、遊技制御装置100は、タッチスイッチからのタッチスイッチ信号がオフ信号である場合(A1609の結果が「N」)、7セグメント型の表示器(LEDランプ)を消灯(LEDオフ)するためのセグメント出力データを設定し(A1611)、セグメント出力データをセグメント出力ポート2(ポート135−2)に出力する(A1612)。これにより、操作ハンドル24が操作されていない場合に、排出球数表示部66での排出球数表示、出玉率表示部67での出玉率表示、及び、役物比率表示部68での役物比率表示は非表示になる。
なお、ステップA1609では、操作ハンドル24のタッチスイッチがオンであるか否か判定する代わりに、客待ちデモ中(客待ちデモ状態)であるか否かを判定してよい。そして、客待ちでデモ中である場合に、排出球数表示部66、出玉率表示部67、及び、役物比率表示部68で表示を実行し(A1610、A1612)、客待ちでデモ中でない場合に、排出球数表示部66、出玉率表示部67、及び、役物比率表示部68を非表示としてよい(A1611、A1612)。なお、後述のように、客待ちデモ状態(客待ちデモ中の状態)であることを示す客待ちデモ中フラグがセットされている場合(図27のA3210)、即ち、遊技制御装置100が演出制御装置300に客待ちデモコマンドを送信した場合に、客待ちデモ中であると判定できる。
続いて、遊技制御装置100は、外部情報端子71に出力するデータをロードして合成し(A1613)、さらに、合成したデータと発射許可の出力データを合成し(A1614)、最終的に合成したデータを外部情報・発射許可信号出力ポート137に出力する(A1615)。次に、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート1に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート1に合成したデータを出力する(A1616)。その後、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート2に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート2に合成したデータを出力する(A1617)。
次に、遊技制御装置100は、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート3に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート3へ合成したデータを出力する(A1618)。さらに、試射試験装置の試験信号を出力する中継基板70上の試験端子出力ポート4に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート4に合成したデータを出力する(A1619)。そして、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート5に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート5に合成したデータを出力する(A1620)。次に、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート6、7に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート6、7に合成したデータを出力する(A1621)。ステップA1621のデータは、出玉率のデータである。そして、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート8、9に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート8、9に合成したデータを出力し(A1622)、出力処理を終了する。ステップA1622のデータは、役物比率のデータである。
〔払出コマンド送信処理〕
次に、前述のタイマ割込み処理における払出コマンド送信処理(A1305)の詳細について説明する。図12は、払出コマンド送信処理の手順を示すフローチャートである。
遊技制御装置100は、まず、入賞数カウンタ領域2にカウントがあるか否かをチェックする(A1701)。入賞数カウンタ領域は遊技制御装置100のRAM111cに設けられ、入賞数カウンタ領域1と入賞数カウンタ領域2が設けられている。入賞数カウンタ領域1は、払出制御装置200に対して賞球の払い出しを指示するための払出コマンド(賞球指令)を送信するために用いる領域であって、払出コマンドを未だ送信していない賞球に対応する入賞のデータが記憶される。すなわち、入賞数カウンタ領域1が、賞球指令に関する情報を記憶可能な賞球指令カウンタをなす。
入賞数カウンタ領域2は、入賞口への入賞により発生した賞球数(払出予定数)が所定数(ここでは10個)になる毎に外部装置に出力するメイン賞球信号を送信するために用いる領域であって、メイン賞球信号の生成処理を行っていない賞球に対応する入賞のデータが記憶される。すなわち、入賞数カウンタ領域2が、メイン賞球信号に関する情報を記憶可能なメイン賞球信号カウンタをなす。なお、外部装置には、このメイン賞球信号の他に、払出制御装置200からも実際に払い出した賞球数が所定数(ここでは10個)になる毎に払出賞球信号が出力されるようになっており、この二つの信号を照合することで、不正な払い出しを監視することが可能となっている。
これらの入賞数カウンタ領域にはそれぞれ、各入賞口に対して設定された賞球数別(例えば、2個賞球、3個賞球、10個賞球、14個賞球)に入賞数カウンタ領域が設けられており、入賞口への入賞に基づき対応する入賞数カウンタ領域のカウント数が1加算されるようになっている。つまり、入賞領域への一の入賞を単位として当該入賞の情報を記憶可能とされている。なお、入賞数カウンタ領域1は入賞数カウンタ領域2よりも広い領域が割り当てられ、より多くの入賞のデータを記憶できるようにされている。これは、メイン賞球信号が送信先の状態に関係なく送信可能であることに対し、払出コマンドが送信先である払出制御装置200の状態により送信を保留する場合もあり、より多くの未送信データが蓄積される可能性があるためである。
遊技制御装置100は、ステップA1701の入賞数カウンタ領域2にカウントがあるか否かをチェックする処理においては、賞球数別に設けられた複数の入賞数カウンタ領域のうち、チェック対象とされた入賞数カウンタ領域に「0」でないカウント数があるか否かを判定する。
遊技制御装置100は、入賞数カウンタ領域2にカウント数がない場合には(A1701の結果が「N」)、チェック対象となる入賞数カウンタ領域2のアドレスを更新する(A1702)。さらに、すべての入賞数カウンタ領域のカウント数のチェックが終了したか否かを判定する(A1703)。
遊技制御装置100は、すべてのチェックが終了した場合には(A1703の結果が「Y」)、ステップA1712の処理に移行する。一方、すべてのチェックが終了していない場合には(A1703の結果が「N」)、ステップA1701の処理に戻り、ステップA1701からステップA1703までの処理を繰り返す。
また、遊技制御装置100は、カウント数がある場合には(A1701の結果が「Y」)、対象の入賞数カウンタ領域のカウント数を減算(−1)し(A1704)、入賞数カウンタ領域2のアドレスに対応する払出数を取得する(A1705)。そして、賞球残数領域の値と払出数を加算して(A1706)、加算結果を新たな賞球残数として賞球残数領域にセーブする(A1707)。なお、ステップA1707の処理の前における賞球残数領域の値としては、メイン賞球信号の出力の基準となる所定数に満たなかった端数が記憶されている。
その後、遊技制御装置100は、加算結果から10を減算し(A1708)、減算結果が0以上か否かを判定する(A1709)。そして、0以上でない場合には(A1709の結果が「N」)、ステップA1712の処理に移行する。一方、0以上である場合には(A1709の結果が「Y」)、メイン賞球信号出力回数領域の値を+1更新し(A1710)、減算結果を賞球残数領域にセーブし(A1711)、さらに、ステップA1708の処理に戻る。
以上の処理により、ホールコンピュータなどの外部の装置にメイン賞球信号が出力されるようになる。すなわち、遊技制御装置100が、所定の入賞領域への遊技球の入賞に伴い払い出しが決定された賞球数に関する情報を含むメイン賞球信号を遊技機の外部に出力する外部情報出力手段をなす。なお、メイン賞球信号を出力するようにすることで、大当り中などの遊技球の払い出しが集中する場合に、遊技球の払い出しとともに賞球信号の出力が遅延して、大当り中に発生した正確な賞球数が計数することができないといった不具合を防止することができる。
遊技制御装置100は、払出コマンド送信タイマが0でなければ−1更新し(A1712)、払出コマンド送信タイマが0になったか否かを判定する(A1713)。払出コマンド送信タイマが0でない場合には(A1713の結果が「N」)、払出コマンド送信処理を終了する。また、払出コマンド送信タイマが0である場合には(A1713の結果が「Y」)、払出ビジー信号ステータス(フラグ)がビジー状態(ビジー状態フラグ)であるか否かを判定する(A1714)。
払出ビジー信号は、払出制御装置200が払出制御を即座に開始可能な状態か否かを示す信号であって、払出制御を即座に開始可能でない場合には払出ビジー信号がオン状態(ビジー状態)とされる。つまり、払出ビジー信号は、払出コマンド(賞球指令)を受付可能な状態であるか否かを示す信号ともいえる。すなわち、払出ビジー信号が、払出制御手段(払出制御装置200)が払出制御を開始可能であるか否を示す状態信号をなす。払出ビジー信号ステータス(フラグ)は、払出ビジー信号の状態に基づき払出制御装置200が払出制御を即座に開始可能な状態か否かを設定した情報であって、払出制御を即座に開始可能なアイドル状態、払出制御を即座に開始可能でないビジー状態、状態が不定である不定状態のいずれかが設定される。
遊技制御装置100は、払出ビジー信号ステータスがビジー状態である場合には(A1714の結果が「Y」)、払出コマンド送信処理を終了する。ビジー状態でない場合には、アイドル状態である場合と不定状態である場合が含まれる。このように払出制御装置200が払出制御を即座に開始可能でなく、払出コマンドを送信しない場合は、払出コマンドの送信に関する以降の処理を行わないようにすることで、無駄な処理を行うことを防止し制御の負担を軽減するようにしている。
なお、不定状態は、例えば電源投入時の処理でビジー信号ステータス領域がクリアされることで設定される。この不定状態は、払出ビジー信号の状態が、払出制御を即座に開始可能なこと又は不能なことを示す状態に所定期間に亘り維持されることに基づき、アイドル状態又はビジー状態が設定されることで解消する。つまり、停電が発生し該停電から復帰した場合には、払出制御装置200から払出制御を開始可能であることを示す状態信号が出力されていたとしても、直ちに賞球指令を払出制御装置200に送信せず、払出制御装置200から払出制御を開始可能であることを示す状態信号が所定期間に亘って継続して出力されたことに対応して賞球指令を払出制御装置200に送信する。これにより、払出制御装置200が賞球指令を受信して即座に払出処理が可能なことを確実に把握してから賞球指令を送信するようになり、賞球指令に対応する払出制御が行われないことを防止できる。
遊技制御装置100は、払出ビジー信号ステータスがビジー状態でない場合には(A1714の結果が「N」)、入賞数カウンタ領域1にカウントがあるか否かをチェックする(A1715)。入賞数カウンタ領域1にカウントがあるかをチェックする処理においては、賞球数別に設けられた複数の入賞数カウンタ領域のうち、チェック対象とされた入賞数カウンタ領域に「0」でないカウント数があるか否かを判定する。
そして、遊技制御装置100は、カウント数がない場合には(A1715の結果が「N」)、チェック対象となる入賞数カウンタ領域1のアドレスを更新し(A1716)、すべての入賞数カウンタ領域のカウント数のチェックが終了したか否かを判定する(A1717)。すべてのチェックが終了した場合には(A1717の結果が「Y」)、払出コマンド送信処理を終了する。一方、すべてのチェックが終了していない場合には(A1717の結果が「N」)、ステップA1715の処理に戻り、ステップA1715からA1717までの処理を繰り返す。
また、遊技制御装置100は、カウント数がある場合には(A1715の結果が「Y」)、対象の入賞数カウンタ領域のカウント数を減算(−1)し(A1718)、対象の入賞数カウンタ領域に対応する払出コマンドを取得する(A1719)。そして、払出コマンド(払出数コマンド)を払出用シリアル送信バッファに格納し(A1720)、払出コマンド送信タイマに初期値を設定し(A1721)、その後、払出コマンド送信処理を終了する。払出コマンド送信タイマは送信間隔を管理するためのもので、初期値として例えば200msが設定される。
これにより、入賞領域への一の入賞を単位とした払出コマンド(賞球指令)が生成され、払出制御装置200に送信されるようになる。払出制御装置200はこの払出コマンドに基づき所定数の賞球を払い出す制御を行う。すなわち、遊技制御装置100が、払出制御手段(払出制御装置200)から出力される当該払出制御手段が払出制御を開始可能であるか否かを示す状態信号が払出制御を開始可能であることを示している場合に賞球指令を払出制御手段に送信する賞球指令送信手段をなす。
このように遊技制御装置100が、払出制御装置200から出力される状態信号に基づいて賞球指令を送信する制御を行うので、払出制御装置200が即座に払出制御を実行可能な場合にのみ賞球指令が送信されることとなる。これにより、未だ払い出しが行われていない入賞に対応するデータは遊技制御装置100側で保持されるようになるので停電発生時には遊技制御装置100でバックアップされるようになり、払出制御装置200にバックアップするための機能を備えなくとも正確な払出制御を実現できる。
従来の遊技機(例えば、特開2000−312759号公報の遊技機)では、何らかの原因により電源の遮断状態が発生した場合、払出制御装置200は自身の記憶手段にデータをバックアップし、電源遮断直前のデータによる払出制御状態を維持するようにしている。しかしながら、従来の遊技機では、バックアップするための機能が必要となるため、コストアップにつながるという問題があった。本実施形態によれば、払出制御装置200にバックアップするための機能を備えなくとも正確な払出制御を実現できるようにすることができる。
また、外部の装置に送信されるメイン賞球信号は払出ビジー信号の状態に関係なく出力されるので、遅滞なくメイン賞球信号を出力でき、ホールコンピュータなどの外部の装置では賞球の払い出しの時期を正確に把握でき、例えばベース値を正確に把握できるようになる。また、賞球指令に関する情報を記憶可能な賞球指令カウンタと、メイン賞球信号に関する情報を記憶可能なメイン賞球信号カウンタとを別々に備えるので、送信タイミングが異なる賞球指令とメイン賞球信号の情報を別々に管理でき、情報を確実に管理することができる。
以上のことから、統括的に遊技制御を行うとともに、遊技領域32に設けられた入賞領域(第1始動入賞口36、第2始動入賞口37、一般入賞口35、特別変動入賞装置39)への遊技球の入賞に基づいて賞球指令を送信する遊技制御手段(遊技制御装置100)と、遊技制御手段から送信される賞球指令に基づいて、遊技球の払出制御を行う払出制御手段(払出制御装置200)と、を備え、遊技制御手段は、払出制御手段から出力される当該払出制御手段が払出制御を開始可能であるか否を示す状態信号(ビジー信号)に基づいて賞球指令を払出制御手段に送信する制御を行い、停電が発生し該停電から復帰した場合には、払出制御手段から払出制御を開始可能であることを示す状態信号が出力されていたとしても、直ちに賞球指令を払出制御手段に送信せず、払出制御手段から払出制御を開始可能であることを示す状態信号が所定期間に亘って継続して出力されたことに対応して賞球指令を払出制御手段に送信するようにしていることとなる。
また、遊技領域32に賞球数の異なる入賞領域(第1始動入賞口36、第2始動入賞口37、一般入賞口35、特別変動入賞装置39)を複数設け、遊技制御手段(遊技制御装置100)は、賞球数毎に、遊技球の払出制御を指示する賞球指令の未送信の有無を特定可能な賞球指令カウンタ(遊技制御装置100)を備え、状態信号が払出制御を開始可能であることを示し、かつ、各賞球指令カウンタに未送信の賞球指令がある場合に、賞球指令を払出制御手段(払出制御装置200)に送信するようにし、状態信号が当該払出制御手段が払出制御を開始可能であるか否かの特定を、各賞球指令カウンタに未送信の賞球指令があるか否かの特定よりも先に行うようにしていることとなる。
また、統括的に遊技制御を行うとともに、所定の入賞領域(第1始動入賞口36、第2始動入賞口37、一般入賞口35、特別変動入賞装置39)への遊技球の入賞に基づいて賞球指令を送信する遊技制御手段(遊技制御装置100)と、遊技制御手段から送信される賞球指令に基づいて、遊技球の払出制御を行う払出制御手段(払出制御装置200)と、を備え、遊技制御手段は、払出制御手段から出力される当該払出制御手段が払出制御を開始可能であるか否を示す状態信号が払出制御を開始可能であることを示している場合に賞球指令を払出制御手段に送信する賞球指令送信手段(遊技制御装置100)と、所定の入賞領域への遊技球の入賞に伴い払い出しが決定された賞球数に関する情報を含む賞球信号(メイン賞球信号)を遊技機の外部に出力する外部情報出力手段(遊技制御装置100)と、を備え、外部情報出力手段は、払出制御手段から出力される状態信号が、払出制御手段が払出制御を開始可能であるか否かに関係なく賞球信号の出力を行うようにしたこととなる。
また、賞球指令送信手段(遊技制御装置100)は、停電が発生し該停電から復帰した場合には、状態信号が払出制御を開始可能であることを示していたとしても、直ちに賞球指令を払出制御手段(払出制御装置200)に送信せず、状態信号が払出制御を開始可能であることを示している状態が所定期間に亘って継続していることに対応して賞球指令を払出制御手段に送信するようにしたこととなる。
また、遊技制御手段(遊技制御装置100)は、賞球指令に関する情報を記憶可能な賞球指令カウンタ(遊技制御装置100)と、賞球信号(メイン賞球信号)に関する情報を記憶可能な賞球信号カウンタ(遊技制御装置100)と、を備え、賞球指令送信手段(遊技制御装置100)は、所定の入賞領域(第1始動入賞口36、第2始動入賞口37、一般入賞口35、特別変動入賞装置39)への一の入賞を単位として賞球指令を生成し、状態信号が払出制御を開始可能であることを示している場合に一の賞球指令を払出制御手段(払出制御装置200)に送信するように構成され、賞球指令カウンタ(遊技制御装置100)は、所定の入賞領域への一の入賞を単位として当該入賞の情報を記憶可能であり、所定の入賞領域への遊技球の入賞時に更新を行うとともに、払出制御手段への賞球指令への送信に対応させて更新を行うことで、送信していない賞球指令の数を記憶可能とし、外部情報出力手段は、所定の入賞領域への遊技球の入賞に伴い払い出しが決定された賞球数を累積し、累積値が所定数に達する毎に賞球信号を遊技機の外部に出力するように構成され、賞球信号カウンタは、所定の入賞領域への一の入賞を単位として当該入賞の情報を記憶可能であり、所定の入賞領域への遊技球の入賞時に更新を行うとともに、外部情報出力手段による賞球数の累積処理に対応させて更新を行うことで、未だ累積処理を行っていない賞球数を記憶可能であることとなる。
〔乱数更新処理1〕
図13は、乱数更新処理1の手順を示すフローチャートである。乱数更新処理1は、タイマ割込処理のステップA1306にて実行される。乱数更新処理1は、初期値乱数更新処理の対象となっている大当り図柄乱数、小当り図柄乱数、当り乱数、当り図柄乱数の初期値(スタート値)を更新するための処理である。
遊技制御装置100は、まず、大当り図柄乱数が次回の初期値(スタート値)設定待ちであるか否かを判定する(A1801)。
遊技制御装置100は、大当り図柄乱数が初期値設定待ちでない場合には(A1801の結果が「N」)、ステップA1804以降の処理を実行する。一方、大当り図柄乱数が初期値設定待ちである場合には(A1801の結果が「Y」)、次回初期値として大当り図柄初期値乱数をロードする(A1802)。そして、ロードした大当り図柄乱数の次回初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定する(A1803)。
次に、遊技制御装置100は、小当り図柄乱数が次回の初期値(スタート値)設定待ちであるか否かを判定する(A1804)。小当り図柄乱数が初期値設定待ちでない場合には(A1804の結果が「N」)、ステップA1807以降の処理を実行する。
一方、遊技制御装置100は、小当り図柄乱数が初期値設定待ちである場合には(A1804の結果が「Y」)、次回初期値として小当り図柄初期値乱数をロードする(A1805)。そして、ロードした小当り図柄乱数の次回初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定する(A1806)。
次に、遊技制御装置100は、当り乱数が次回の初期値(スタート値)設定待ちであるか否かを判定する(A1807)。当り乱数が初期値設定待ちでない場合には(A1807の結果が「N」)、ステップA1810以降の処理を実行する。
一方、遊技制御装置100は、当り乱数が初期値設定待ちである場合には(A1807の結果が「Y」)、次回初期値として当り初期値乱数をロードする(A1808)。そして、ロードした当り乱数の次回初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定する(A1809)。
次に、遊技制御装置100は、当り図柄乱数が次回の初期値(スタート値)設定待ちであるか否かを判定する(A1810)。当り図柄乱数が初期値設定待ちでない場合には(A1810の結果が「N」)、乱数更新処理1を終了する。
一方、遊技制御装置100は、当り図柄乱数が初期値設定待ちである場合には(A1810の結果が「Y」)、次回初期値として当り図柄初期値乱数をロードする(A1811)。そして、ロードした当り図柄乱数の次回初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定し(A1812)、乱数更新処理1を終了する。
〔乱数更新処理2〕
図14は、乱数更新処理2の手順を示すフローチャートである。乱数更新処理2は、タイマ割込処理のステップA1307にて実行される。乱数更新処理2は、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する処理である。
なお、本実施形態の遊技機では、変動パターン乱数として1バイトの乱数(変動パターン乱数2、3)と、2バイトの乱数(変動パターン乱数1)があり、乱数更新処理2は、両方を更新対象とし、割込みが発生するごとに更新対象を切り替えて処理する。さらに、更新対象の乱数が2バイトの場合には、上位のバイトと下位のバイトに対して異なる割込み時に更新処理を行うようになっている。すなわち、メイン処理に対する一の割込み処理において実行される乱数更新処理2による2バイトの変動パターン乱数1(リーチ変動態様決定用乱数)の更新は、上位1バイト若しくは下位1バイトのいずれかについて実行されるように構成されている。
遊技制御装置100は、まず、更新すべき複数の乱数のうちいずれの乱数を今回の更新処理の対象とするかを順番に指定するための乱数更新スキャンカウンタを更新する(A1901)。次に、乱数更新スキャンカウンタの値に対応する演出乱数更新テーブルのアドレスを算出する(A1902)。そして、算出されたアドレスに基づいて参照したテーブルから乱数の上限判定値を取得する(A1903)。このとき参照するテーブルには、乱数の種類ごとに上限判定値、すなわち、乱数が一巡したか否かを判定するための値が格納されている。
続いて、遊技制御装置100は、ランダムな値が設定されるM1カウンタの値をロードする(A1904)。
次に、遊技制御装置100は、M1カウンタの値をマスクするためのマスク値を取得し、M1カウンタの値をマスクする(A1905)。なお、マスク値は、更新対象の乱数によって異なるビット数、例えば、変動パターン乱数1の下位1バイトを更新する場合には、M1カウンタの下位3ビットに、また、変動パターン乱数1の上位1バイトを更新する場合には、M1カウンタの下位4ビットに設定されている。乱数の種類によって上限値が異なるためである。なお、マスク値として、変動パターン乱数1の下位1バイトを更新する場合には、M1カウンタの下位3ビットを、また、変動パターン乱数1の上位1バイトを更新する場合には、M1カウンタの下位4ビットを例示したが、数値は一例であってこれに限られるものではない。
次に、遊技制御装置100は、更新する乱数領域(乱数カウンタ)が2バイト乱数の上位1バイトであるか否かを判定する(A1906)。そして、乱数領域が2バイト乱数の上位1バイトである場合には(A1906の結果が「Y」)、加算値として上位1バイトをマスク値によってM1カウンタの値をマスクすることによって残った値(以下、これを「マスクした値」と称する)に「1」を加算したマスク更新値に設定し、下位1バイトを「0」に設定し(A1907)、ステップA1909の処理に移行する。
また、遊技制御装置100は、乱数領域が2バイト乱数の上位1バイトでない場合には(A1906の結果が「N」)、加算値として上位1バイトを「0」に設定し、下位1バイトを上記マスク更新値に設定し(A1908)、ステップA1909の処理に移行する。なお、マスクした値に「1」を加算する理由は、マスクした値が「0」になる場合があり、「0」を加算して値が変化しないことを避けるためである。
続いて、遊技制御装置100は、更新する乱数が2バイト乱数か否かを判定する(A1909)。そして、2バイト乱数である場合には(A1909の結果が「Y」)、更新する乱数領域の値(2バイト)を設定し(A1910)、ステップA1912の処理に移行する。一方、更新する乱数が2バイト乱数でない場合には(A1909の結果が「N」)、乱数値の上位1バイトとして「0」を設定し、乱数値の下位1バイトとして、更新する乱数領域の値(1バイト)を設定し(A1911)、ステップA1912の処理に移行する。
遊技制御装置100は、乱数値にステップA1907又はA1908の処理で決定された加算値を加算した値を新たな乱数値とし、新たな乱数値がA1903の処理で取得した上限判定値よりも大きいか否かを判定する(A1913)。
そして、遊技制御装置100は、新たな乱数値が上限判定値より大きくない場合には(A1913の結果が「N」)、新たな乱数値を1バイト乱数又は2バイト乱数の下位の乱数領域にセーブする(A1915)。また、新たな乱数値が上限判定値より大きい場合には(A1913の結果が「Y」)、新たな乱数値から上限判定値を減算した値を再度の新たな乱数値とし(A1914)、新たな乱数値を1バイト乱数又は2バイト乱数の下位の乱数領域にセーブする(A1915)。
次に、遊技制御装置100は、更新した乱数が2バイト乱数であるか否かを判定する(A1916)。そして、2バイト乱数でない場合には(A1916の結果が「N」)、乱数更新処理2を終了する。一方、2バイト乱数である場合には(A1916の結果が「Y」)、新たな乱数値(再度の新たな乱数値を算出した場合はその値)を2バイト乱数の上位の乱数領域にセーブし(A1917)、乱数更新処理2を終了する。
このように、CPU111aは、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する。したがって、CPU111aは、第1始動入賞口36や第2始動入賞口37の始動領域への遊技球の流入に基づいて抽出される各種乱数のうち、特図変動表示ゲームの変動態様(変動パターン)を決定するための変動パターン乱数を更新する乱数更新手段をなす。
〔入賞口スイッチ/状態監視処理〕
図15Aは、入賞口スイッチ/状態監視処理の手順を示すフローチャートである。入賞口スイッチ/状態監視処理は、タイマ割込み処理におけるステップA1308にて実行される。入賞口スイッチ/状態監視処理は、各入賞口への入賞を監視して、入賞があった場合には所定の処理を実行する監視手段を構成する。所定の処理としては、排出球数を+1更新(1だけ加算)したり、当該入賞による賞球数に関して加算処理を実行して出玉率(賞球数の合計)や役物比率を算出することなどがある。
遊技制御装置100は、まず、大入賞口(特別変動入賞装置39)内の大入賞口スイッチ39a(2個)の一方に対応する入賞口監視テーブル1を準備する(A2001)。そして、大入賞口が開いていないにもかかわらず大入賞口に不正な入賞がないかを監視するとともに正常な入賞を検出する不正&入賞監視処理を実行する(A2002)。不正&入賞監視処理の詳細については、後述する。
その後、遊技制御装置100は、大入賞口(特別変動入賞装置39)内の大入賞口スイッチ39a(2個)の他方に対応する入賞口監視テーブル2を準備する(A2003)。そして、不正入賞を監視するとともに正常な入賞を検出する不正&入賞監視処理を実行する(A2004)。次に、普電サポート状態中であるか否か、即ち、時短状態又は確変状態(潜伏確変状態を除く)中であるか否かを判定する(A2005)。
そして、遊技制御装置100は、普電サポート状態中である場合(A2005の結果が「Y」)、普通変動入賞装置37内の始動口2スイッチ37aに対応する入賞口監視テーブルを準備する(A2006)。そして、不正入賞を監視するとともに正常な入賞を検出する不正&入賞監視処理を実行する(A2007)。続いて、不正監視が不要な入賞口スイッチの入賞口監視テーブルを準備する(A2008)。不正監視が不要な入賞口スイッチは、本実施形態では、左右の一般入賞口35の入賞口スイッチ(SW)35a、35b、及び、始動口1スイッチ36aである。次に、入賞数を更新する入賞数カウンタ更新処理を実行する(A2009)。
一方、遊技制御装置100は、普電サポート状態中でない場合(A2005の結果が「N」)、不正監視が不要な入賞口スイッチの入賞口監視テーブルを準備する(A2010)。不正監視が不要な入賞口スイッチは、本実施形態では、左右の一般入賞口35の入賞口スイッチ(SW)35a、35b、及び、始動入賞口36(第1始動入賞口)の始動口1スイッチ36aである。次に、入賞数を更新する入賞数カウンタ更新処理を実行する(A2011)。普通変動入賞装置37内の始動口2スイッチ37aに対応する入賞口監視テーブルを準備する(A2012)。そして、不正入賞を監視するとともに正常な入賞を検出する不正&入賞監視処理を実行する(A2013)。
図15Bは、遊技状態ごとに、入賞口監視に関する優先順位を示すテーブルである。この優先順位は、入賞口スイッチ/状態監視処理(図15A)と後述の入賞数カウンタ更新処理(図17A)における入賞口監視の順番によって実現されるものである。
ここで、入賞口監視とは、不正&入賞監視処理又は入賞数カウンタ更新処理(不正&入賞監視処理でも実行される)において、入賞数のカウント、排出球数の更新(計算)、出玉率の計算、役物比率の計算などを実行することである。特に、同時に入賞口への入賞があった場合でも、図15Bのように予め定められた優先順位に基づいて、所定の入賞口への入賞を優先して出玉率や役物比率の計算が行われる。なお、通常遊技状態と普電サポート状態の場合には、不正がない限り大入賞口は開放されないので、優先順位のテーブルには加えていない。
図15B(I)のように、遊技状態に応じて、入賞口監視に関する優先順位を変更できる(ステップA2005〜A2013)。即ち、普電サポート状態であるか否かの判定(A2005)に応じて、入賞数カウンタ更新処理(不正&入賞監視処理でも実行される)を、普通変動入賞装置37(第2始動入賞口)と不正監視が不要な入賞口(一般入賞口35、始動入賞口36(第1始動入賞口))のどちらに対して先に行うかが設定(決定)できる。
特に、普電サポート状態中である場合(A2005の結果が「Y」)、普通変動入賞装置37(第2始動入賞口)に対して、不正監視が不要な入賞口スイッチ(始動口1スイッチ36a)を有する始動入賞口36(第1始動入賞口)よりも先に、入賞口監視(即ち、入賞数のカウント、排出球数の更新、獲得球数の加算など)を実行できる。なお、後述のように、不正監視が不要な入賞口スイッチを有する入賞口のうちでは、一般入賞口35の入賞口監視を始動入賞口36(第1始動入賞口)よりも先に優先的に実行するものとする。また、普電サポート状態中でない場合(A2005の結果が「N」)、即ち、通常遊技状態や特別遊技状態等では、不正監視が不要な入賞口スイッチ(始動口1スイッチ36a)を有する始動入賞口36(第1始動入賞口)に対して、普通変動入賞装置37(第2始動入賞口)よりも先に、入賞口監視を実行できる。
なお、図15B(II)のように、普電サポート状態中である場合(A2005の結果が「Y」)に、不正監視が不要な入賞口スイッチの始動入賞口のうち、一般入賞口35に対する入賞口監視だけ(入賞数カウンタ更新処理)を普通変動入賞装置37(第2始動入賞口)の入賞口監視(A2006、A2007)よりも先に実行すれば、普通変動入賞装置37(第2始動入賞口)よりも賞球数の多い一般入賞口35に対する入賞口監視を普通変動入賞装置37(第2始動入賞口)の入賞口監視よりも優先的に実行できる。
また、普電サポート状態以外の遊技状態(特別遊技状態や通常遊技状態など)では、得られる賞球(賞球数)の多い入賞口の順に、入賞口監視を優先的に行う。これにより、可能な限り大きな出玉率が優先的に求められ、遊技者の遊技に対する期待感を向上できる。
さらに、変形例として、図15Cに示すように、図15Aの入賞口スイッチ/状態監視処理のステップA2005〜A2009の処理を削除して、ステップA2010〜A2013の処理をステップA2004の後に実行してもよい。この場合には、全ての遊技状態で(遊技状態に依存せずに)、得られる賞球(賞球数)の多い入賞口の順(大入賞口→一般入賞口→第1始動入賞口→第2始動入賞口の順)に、入賞口監視を優先して実行できる。この場合には、可能な限り大きな出玉率が優先的に求められ、遊技者の遊技に対する期待感を向上できる。図15Cの入賞口スイッチ/状態監視処理は、得られる賞球数の多い順に各入賞口への入賞を監視して入賞があった場合には当該入賞の賞球数を加算して出玉率(賞球数の合計)や役物比率を算出する監視手段を構成する。
そして、遊技制御装置100は、ステップA2009又はA2013の後、アウト球検出スイッチ65に入力があるか否かを判定する(A2014)。アウト球検出スイッチ65に入力がある場合(A2014の結果が「Y」)、排出球数を1だけ加算するために排出球数を記憶する排出球数領域の値を+1更新し(A2015)、後述の出玉性能監視処理を実行する(A2016)。そして、アウト口30bへの入球があったことを示すアウト球検出コマンドを払出用シリアル送信バッファに書き込む(A2017)。その後、エラーが発生しているかなどの状態を監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するための状態スキャンカウンタを更新する(A2018)。
なお、本実施形態では、アウト球検出スイッチ65と各入賞口スイッチが遊技領域32の外部に排出される遊技球を検出することにより、排出球数を+1更新してカウントする(A2015、A2210)。しかし、球発射装置から発射される発射球の数が遊技領域32の外部に排出される遊技球の数に基本的に等しいため、球発射装置からの発射球を直接的に検出するスイッチ(センサ)を設けて、排出球数をカウントしてもよい。なお、球発射装置からの発射球には球発射装置への戻りがあるため、本実施形態のように、アウト球検出スイッチ65と各入賞口スイッチを使用した方が、排出球数は正確にカウントできる。
遊技制御装置100は、アウト球検出スイッチ65に入力がない場合(A2014の結果が「N」)、状態スキャンカウンタを更新する(A2018)。状態スキャンカウンタは0から3の範囲で更新される。状態スキャンカウンタの値に応じて、監視する状態を設定するための遊技機状態監視テーブル1を準備する(A2019)。そして、エラーが発生しているかなどの状態を判定する遊技機状態チェック処理を実行する(A2020)。なお、遊技機状態チェック処理の詳細は、後述する。
状態スキャンカウンタの値を遊技機状態監視テーブル1に参照することで、状態スキャンカウンタの値が0である場合はスイッチのコネクタ抜けなどの発生により出力される異常検知信号1に基づく状態(スイッチ異常1エラー)の監視が設定され、状態スキャンカウンタの値が1である場合は払出制御装置200からのシュート玉切れスイッチ信号に基づく状態(シュート球切れエラー)の監視が設定される。状態スキャンカウンタの値が2である場合はオーバーフロースイッチ信号に基づく状態(オーバーフローエラー)の監視が設定され、状態スキャンカウンタの値が3である場合は払出異常ステータス信号に基づく状態(払い出し異常エラー)の監視が設定される。
次に、遊技制御装置100は、状態スキャンカウンタの値に応じて、監視する状態を設定するための遊技機状態監視テーブル2を準備する(A2021)。そして、エラーが発生しているかなどの状態を判定する遊技機状態チェック処理を実行する(A2022)。
状態スキャンカウンタの値を遊技機状態監視テーブル2に参照することで、状態スキャンカウンタの値が0である場合はガラス枠開放検出スイッチから出力される信号に基づく状態(ガラス枠開放エラー)の監視が設定され、状態スキャンカウンタの値が1である場合は前面枠開放検出スイッチから出力される信号に基づく状態(本体枠開放エラー、前面枠開放エラー)の監視が設定される。また、状態スキャンカウンタの値が2である場合は枠電波不正信号に基づく状態(枠電波不正)の監視が設定され、状態スキャンカウンタの値が3である場合はタッチスイッチ信号に基づく状態の監視が設定される。
次に、遊技制御装置100は、状態スキャンカウンタの値が0であるか否かを判定する(A2023)。そして、エラースキャンカウンタの値が0でない場合には(A2023の結果が「N」)、入賞口スイッチ/状態監視処理を終了する。この場合は、次に参照する遊技機状態監視テーブル3に状態の監視対象がない場合である。
また、遊技制御装置100は、エラースキャンカウンタの値が0である場合には(A2023の結果が「Y」)、遊技機状態監視テーブル3を準備し(A2024)、エラーが発生しているかなどの状態を判定する遊技機状態チェック処理を実行する(A2025)。
状態スキャンカウンタの値を遊技機状態監視テーブル3に参照することで、状態スキャンカウンタの値が0である場合はスイッチのコネクタ抜けなどの発生により出力される異常検知信号2に基づく状態(スイッチ異常2エラー)の監視が設定される。なお、遊技機状態監視テーブル3には状態スキャンカウンタが1から3の場合は定義されていない。
その後、遊技制御装置100は、払出制御装置200が払出制御を開始可能であるかを示す払出ビジー信号に基づきビジー信号ステータス(払出ビジー信号フラグ)を設定する払出ビジー信号チェック処理を実行し(A2026)、入賞口スイッチ/状態監視処理を終了する。なお、払出ビジー信号チェック処理の詳細は、後述する。
なお、ステップA2024からA2026までの処理は、タイマ割込み毎に更新される状態スキャンカウンタの値が0の場合のみ実行されるため、4回のタイマ割込みに1回の割合で実行されることとなる。すなわち、タイマ割込みが4ms毎に行われる場合は、16ms毎にA2024からA2026までの処理が行われることとなる。
〔不正&入賞監視処理〕
図16は、不正&入賞監視処理の手順を示すフローチャートである。不正&入賞監視処理は、図15Aに示した入賞口スイッチ/状態監視処理におけるステップA2002、A2004、A2007、A2013にて実行される。
不正&入賞監視処理は、特別変動入賞装置39の大入賞口スイッチ39a、普通変動入賞装置37内の入賞口スイッチ(始動口2スイッチ37a)に対して行われる処理である。第2始動入賞口(普通変動入賞装置37)や大入賞口(特別変動入賞装置39)については、ピアノ線や不正用の機材等を用いて無理やり開閉部材を開いて遊技球を入れて賞球を払い出させる不正が行われ易いため、入賞の検出の他に不正の監視をする。
遊技制御装置100は、まず、エラー監視対象の入賞口スイッチの不正監視期間フラグをチェックし(A2101)、不正監視期間中であるか否かを判定する(A2102)。例えば、不正監視期間とは、エラー監視対象の入賞口スイッチが大入賞口スイッチ39aである場合に特別変動入賞装置39を開放する特別遊技状態中以外の期間である。
そして、遊技制御装置100は、不正監視期間である場合には(A2102の結果が「Y」)、対象の入賞口スイッチに入力があるか否かを判定する(A2103)。対象の入賞口スイッチに入力がない場合には(A2103の結果が「N」)、対象の報知タイマ更新情報をロードする(A2112)。また、対象の入賞口スイッチに入力がある場合には(A2103の結果が「Y」)、対象の不正入賞数を+1更新し(A2104)、加算後の不正入賞数が監視対象の不正発生判定個数(例えば5個)以上であるか否かを判定する(A2105)。
判定個数を5個としている理由は、例えば、開状態にある大入賞口が閉状態に変換した際に遊技球が大入賞口の扉部材に挟まり、その遊技球がカウントスイッチの有効期間を過ぎて入賞した場合や信号にノイズがのった場合などを不正と判断しないようにするためであり、不正でないにもかかわらず容易にエラーと判定しないようにするためである。
そして、遊技制御装置100は、判定個数以上でない場合には(A2105の結果が「N」)、対象の入賞口スイッチの入賞口監視テーブルを準備する(A2110)。また、判定個数以上の場合には(A2105の結果が「Y」)、不正入賞数を不正発生判定個数に留め(A2106)、対象の不正入賞報知タイマ領域に初期値(例えば60000ms)をセーブする(A2107)。
次に、遊技制御装置100は、対象の不正発生コマンドを演出コマンドとして準備し(A2108)、さらに、不正フラグとして不正入賞発生フラグを準備する(A2109)。そして、準備した不正フラグを対象の不正フラグ領域の値と比較する(A2120)。
一方、遊技制御装置100は、不正監視期間でない場合には(A2102の結果が「N」)、対象の入賞口スイッチの入賞口監視テーブルを準備し(A2110)、賞球の設定を行う入賞数カウンタ更新処理を実行する(A2111)。入賞数カウンタ更新処理の詳細については、後述する。
そして、遊技制御装置100は、対象の報知タイマ更新情報をロードし(A2112)、報知タイマの更新許可の有無を判定する(A2113)。報知タイマの更新が許可されない場合には(A2113の結果が「N」)、不正&入賞監視処理を終了する。一方、報知タイマの更新が許可される場合には(A2113の結果が「Y」)、対象の報知タイマが0でなければ−1更新する(A2114)。なお、報知タイマの最小値は0に設定されている。
報知タイマの更新は、エラー監視対象の入賞口スイッチが普通変動入賞装置37内の入賞口スイッチ(始動口2スイッチ37a)である場合は許可される。また、報知タイマの更新は、エラー監視対象の入賞口スイッチが一方の大入賞口スイッチ39aである場合は許可され、エラー監視対象の入賞口スイッチが他方の大入賞口スイッチ39aである場合は許可されない。これにより、特別変動入賞装置39についての不正報知について、報知タイマの更新が倍の頻度で行われてしまい、規定時間(例えば60000ms)の半分でタイムアップしてしまうことを防止している。
その後、遊技制御装置100は、報知タイマの値が0であるか否かを判定し(A2115)、値が0でない場合(A2115の結果が「N」)、すなわち、タイムアップしていない場合には、不正&入賞監視処理を終了する。また、報知タイマの値が0である場合(A2115の結果が「Y」)、すなわち、タイムアップした又は既にタイムアップしていた場合は、対象の不正解除コマンドを演出コマンドとして準備し(A2116)、不正フラグとして不正入賞解除フラグを準備する(A2117)。そして、報知タイマの値が0になった瞬間であるか否かを判定する(A2118)。
遊技制御装置100は、報知タイマの値が0になった瞬間である場合(A2118の結果が「Y」)、すなわち、今回の不正&入賞監視処理で報知タイマの値が0になった場合には、対象の不正入賞数をクリアする(A2119)。
また、遊技制御装置100は、ステップA2119の処理が終了後、又は、報知タイマの値が0になった瞬間でない場合(A2118の結果が「N」)、すなわち、前回以前の不正&入賞監視処理で報知タイマの値が0になった場合には、準備した不正フラグを対象の不正フラグ領域の値と比較する(A2120)。
そして、遊技制御装置100は、準備した不正フラグと対象の不正フラグ領域の値が一致した場合には(A2120の結果が「Y」)、不正&入賞監視処理を終了する。また、準備した不正フラグと対象の不正フラグ領域の値が一致しない場合には(A2120の結果が「N」)、準備した不正フラグを対象の不正フラグ領域にセーブし(A2121)、演出コマンド設定処理を実行する(A2122)。その後、不正&入賞監視処理を終了する。
以上の処理により、不正の発生に伴い不正発生コマンドが演出制御装置300に送信され、不正の解除に伴い不正解除コマンドが演出制御装置300に送信されて、不正の報知の開始、終了が設定されることとなる。
〔入賞数カウンタ更新処理〕
図17Aは、入賞数カウンタ更新処理の手順を示すフローチャートである。入賞数カウンタ更新処理は、図15Aに示した入賞口スイッチ/状態監視処理のステップA2009、A2011、及び、図16に示した不正&入賞監視処理のステップA2111にて実行される。
遊技制御装置100は、まず、入賞口監視テーブルから監視する入賞口スイッチの個数を取得し(A2201)、対象の入賞口スイッチに入力(正確には入力の変化)があるか否かを判定する(A2202)。入力がない場合には(A2202の結果が「N」)、テーブルアドレスを次レコードのアドレスに更新し(A2216)、全スイッチの監視が終了したか否かを判定する(A2217)。なお、対象の入賞口スイッチが、左の入賞口スイッチ35a、右の入賞口スイッチ35b、始動口1スイッチ36aの順番に変わるように、テーブルアドレスが更新されていき、一般入賞口35の入賞口監視が、始動入賞口36(第1始動入賞口)よりも先に優先的に実行される。
一方、遊技制御装置100は、対象の入賞口スイッチに入力がある場合には(A2202の結果が「Y」)、対象の入賞数カウンタ領域1の値をロードし(A2203)、ロードした値を+1更新する(A2204)。なお、入賞数カウンタ領域では、対象の入賞口への入賞ごとにカウント数が+1更新(1だけ加算)され、対象の入賞口の入賞数(入賞回数)が記憶される。さらに、更新された値によってオーバーフローが発生するか否かを判定する(A2205)。
遊技制御装置100は、オーバーフローが発生していない場合には(A2205の結果が「N」)、更新後の値を入賞数カウンタ領域1にセーブする(A2206)。次に、対象の入賞数カウンタ領域1(対象の入賞口)に対応する賞球数を設定する(A2207)。そして、設定した賞球数を獲得球数領域の値に加算し(A2208)、設定した賞球数を対象の役物別獲得球数領域の値に加算し(A2209)、排出球数領域の値を+1更新する(A2210)。その後、出玉率と役物比率の算出や、排出球数表示部66、出玉率表示部67、役物比率表示部68の表示制御などを実行する出玉性能監視処理(後述)を実行する。
ステップA2204とA2209の処理では、所定期間(例えば、1分間)における一般入賞口35又は始動入賞口36、37への入賞数の変化が所定数(例えば、5個)を超えた場合、入賞数(入賞数カウンタ領域の値)を+1更新しないとともに、賞球数を役物別獲得球数領域の値に加算しない構成としてよい。即ち、このような場合、所定数を超えた分の入賞に関しては、役物比率を算出するための賞球数や入賞数のカウントを停止してよい。この構成によって、例えば、何等かの不具合の発生によって遊技者に適切に賞球を付与できなかった場合に、ホール(遊技店)の係員の補填処理によって極端に入賞数が増加してしまったとしても、役物比率を適切に算出することが可能となる。また、悪意のある者が一般入賞口35への入賞数を操作するために短時間で一般入賞口35等へ多数の遊技球を入賞させるような不正を未然に防止することができる。
なお、本実施形態では、アウト球検出スイッチ65と各入賞口スイッチが遊技領域32の外部に排出される遊技球を検出し、遊技制御装置100が排出球数を+1更新しカウントすることによって(A2015、A2210)、排出球数をカウントする排出球数カウント手段が構成されている。しかし、球発射装置から発射される遊技球の発射球数が遊技領域32の外部に排出される遊技球の排出球数に基本的に等しいため、球発射装置からの発射球を検出するスイッチ(センサ)を設けて、遊技制御装置100が発射球数をカウントすることによって、発射球数をカウントする排出球数カウント手段が、排出球数カウント手段の代わりに構成されてもよい。なお、球発射装置からの発射球には球発射装置への戻りがあるため、アウト球検出スイッチ65と各入賞口スイッチで遊技球を使用した方が、排出球数は正確にカウントできる。
遊技制御装置100は、ステップA2211の処理の終了後、又は、オーバーフローが発生した場合には(A2205の結果が「Y」)、対象の入賞数カウンタ領域2の値をロードする(A2212)。その後、遊技制御装置100は、ロードした値を+1更新し(A2213)、更新した値によってオーバーフローが発生するか否かを判定する(A2214)。
遊技制御装置100は、オーバーフローが発生しない場合には(A2214の結果が「N」)、更新後の値を入賞数カウンタ領域2にセーブする(A2215)。ステップA2215の処理の終了後、又は、オーバーフローが発生した場合には(A2214の結果が「Y」)、テーブルアドレスを次レコードのアドレスに更新する(A2216)。そして、全スイッチの監視が終了したか否かを判定する(A2217)。
遊技制御装置100は、全スイッチの監視が終了していない場合には(A2217の結果が「N」)、対象の入賞口スイッチに入力があるか否かを判定するステップA2202の処理に戻る。また、全スイッチの監視が終了した場合には(A2217の結果が「Y」)、入賞数カウンタ更新処理を終了する。以上の処理により、入賞領域への入賞に基づき入賞数カウンタ領域1及び2が更新されて入賞の情報(入賞数、入賞回数)が記憶されることとなる。
次に、図17Bを参照して、排出球数を記憶する排出球数領域、排出球数100個当りにおける獲得球数(賞球数の合計)を記憶する獲得球数領域、電源投入からの役物別獲得球数を記憶する役物別獲得球数領域について説明する。排出球数領域、獲得球数領域、役物別獲得球数領域は、遊技制御装置100のRWM(リードライトメモリ:RAMやEEPROM等)に設けられる。
獲得球数は、出玉率を得るために使用される。役物別獲得球数は、役物比率を計算するために使用される。各役物別獲得球数は、入賞口(役物)ごとの獲得球数である(ただし、大入賞口に関しては大当り状態中と小当り状態中を区別している)。また、各役物別獲得球数の合計値(合計数)を算出すると、入賞口に入賞したことで得られた全賞球数が得られる。役物比率は、例えば、各役物別獲得球数の合計値に対して、大当り中の大入賞口への入賞による賞球数の合計が占める割合である。
図17B(I)のように、排出球数領域は、1バイトのサイズの記憶領域であり、本実施形態では、0〜99の値を記憶するために用いられる。図17B(II)のように、獲得球数領域は、2バイトのサイズの記憶領域であり、0〜1500の値を記憶するために用いられる。
図17B(III)のように、各役物別獲得球数領域は、2バイトのサイズの記憶領域であり、0〜65535の値を記憶するために用いられる。なお、各役物別獲得球数領域は、3バイトのサイズ以上の記憶領域としてもよい。また、上限を超える場合は上限値(65535)に留める。各役物別獲得球数領域は、複数の一般入賞口35への入賞による賞球数の合計を記憶する領域、第1始動入賞口36(始動口1)への入賞による賞球数の合計を記憶する領域、普通変動入賞装置37(始動口2)への入賞による賞球数の合計を記憶する領域、大当り中の大入賞口への入賞による賞球数の合計を記憶する領域、小当り中(大当り中以外)の大入賞口への入賞による賞球数の合計を記憶する領域に対応する。
〔出玉性能監視処理〕
図18は、出玉性能監視処理の手順を示すフローチャートである。出玉性能監視処理は、入賞数カウンタ更新処理のステップA2211にて実行される。
遊技制御装置100は、まず、排出球数が100個(所定個数)以上であるか否かを判定する(A2301)。排出球数が100個より小さい場合(A2301の結果が「N」)、ステップA2313の処理に移行する。排出球数が100個以上の場合(A2301の結果が「Y」)、出玉率表示部67に表示される出玉率を最新の出玉率へ更新するために、獲得球数領域(RWM内)の値をロードする(A2302)。獲得球数領域には、排出球数100個当りの獲得球数(賞球数の合計)、即ち、出玉率が記憶されている。そして、獲得球数が100以上であるか否か判定する(A2303)。
遊技制御装置100は、獲得球数が100より小さい場合(A2303の結果が「N」)、出玉率表示部67のセグメント(発光部)の発光色(本実施形態では赤又は緑)を示すカラーナンバーを記憶するセグメントカラーナンバー領域(RWM内)の値を更新し(A2304)、獲得球数(即ち出玉率%)に対応するセグメントデータをカラーナンバーに対応するセグメント領域にセーブする(A2305)。なお、カラーナンバーに対応しないセグメント領域は0クリアする。このようにして、出玉率表示部67において、発光色を変化させて出玉率表示を更新表示することができ(例えば赤から緑へと)、出玉率を更新したことを遊技者に認識させることができる。
このように、ステップA2301〜A2305の処理によって、排出球数が100個(所定個数)になる毎に出玉率(獲得球数、賞球数の合計)を出玉率表示部67に更新表示できる。なお、排出球数が100個になるタイミングで複数の入賞口に同時に複数の入賞があった場合には、図15Bのように各入賞口に対して予め定めた優先順位に基づいて、複数の入賞のうち優先順位の高い入賞口への入賞を採用し、採用された入賞の賞球数を加算して出玉率(獲得球数、賞球数の合計)が算出される(優先算出手段)。これにより、特に通常遊技状態と特別遊技状態において、排出球数が100個(所定個数)になるタイミングで、可能な限り大きな出玉率が求められ、遊技者の遊技に対する期待感を向上できる。また、特定遊技状態(普電サポート状態)では、普通変動入賞装置37への入賞が多いため、普通変動入賞装置37への入賞が優先して採用される。なお、複数の入賞のうち採用されなかった入賞による賞球数は、次回のタイマ割込み処理における出玉性能監視処理において出玉率(獲得球数、賞球数の合計)に加算される。
また、図15Cのように、得られる賞球(賞球数)の多い入賞口の順(大入賞口→一般入賞口→第1始動入賞口→第2始動入賞口の順)に、入賞口監視(出玉率の計算)を優先する場合には、排出球数が100個になるタイミングで、可能な限り大きな出玉率が求められ、遊技者の遊技に対する期待感を向上できる。
遊技制御装置100は、獲得球数が100以上である場合(A2303の結果が「Y」)、セグメントカラーナンバー領域の値を初期値(例えば赤に対応)に設定し(A2306)、「99」の点滅表示用のセグメントデータをカラーナンバーに対応するセグメント領域にセーブする(A2307)。出玉率表示部67において出玉率は0から99までしか表示できないため、このようにして獲得球数(出玉率)が100以上になると「99」を一色(例えば赤)だけで点滅表示させる。特に、特別遊技状態(大当り)中において出玉率が100以上になるが、出玉率表示を更新する場合も一色にして頻繁に出玉率表示の色が変化することを防止する。なお、特別遊技状態(大当り)中において、出玉率表示部67を消灯して出玉率を非表示にする構成も可能であるが、この場合には、獲得球数(出玉率)が100以上で出玉率表示を更新する場合に、出玉率表示の色変化を行ってもよい。
遊技制御装置100は、獲得球数に対応するコマンドを演出コマンドとして準備し(A2308)、演出コマンド設定処理を実行する(A2309)。これにより、演出制御装置300は、表示装置41において、出玉率(獲得球数)を表示できる。なお、ここでのコマンドは、出玉率表示部67において表示する100未満の数値の出玉率(獲得球数)(1バイトの範囲)に対応する。
次に、遊技制御装置100は、出玉率に関する信号データをRWM内の試験信号出力データ領域にセーブする(A2310)。これにより、遊技情報出力手段としての出力処理(図11のA1621)を介して、中継基板70さらに外部の試射試験装置へ出玉率に関する信号データが出力される。そして、試射試験装置に出力した出玉率と試射試験装置で求めた出玉率を比較してエラー(不一致)が生じていないか確認できる。ここでの出玉率は、獲得球数領域からロードされた値をそのまま用い、100以上の値であってよい。なお、出玉率に関する信号データとして、特定の入賞口へ入賞があったことを示す情報と排出球数のデータをそのまま外部の試射試験装置に出力して、試射試験装置で出玉率を算出する構成も可能である。また、出玉率が所定値以上又は所定値以下の異常値である場合に、出玉率に関する信号データ(数値)ではなく、異常を報知する信号データ(オン信号)を試験信号出力データ領域にセーブして試射試験装置へ出力する構成も可能である(正常値である場合にはオフ信号)。次に、獲得球数領域を0クリアし(A2311)、排出球数領域を0クリアする(A2312)。
遊技制御装置100は、ステップA2312の後、又は、排出球数が100個より小さい場合(A2301の結果が「N」)、図17B(III)に示した各役物別獲得球数領域の値の合計値(全賞球数)を算出する(A2313)。次に、大当り状態中の大入賞口への入賞による賞球数の合計である役物獲得球数(大入賞口(大当り分))をロードし(A2314)、役物獲得球数(大入賞口(大当り分))に基づいて、役物比率として(役物獲得球数÷合計値)×100(%)を算出する(A2315)。ここで、合計値は、各役物別獲得球数を合計したもので、入賞口に入賞したことで得られた全賞球数に対応する。役物比率は小数第1位まで算出するが、小数が扱い難いため、役物比率の10倍の値を算出してよい。
なお、役物比率の算出に用いる役物獲得球数には、役物獲得球数(大入賞口(大当り分))だけでなく、役物獲得球数(大入賞口(小当り分))及び/又は役物獲得球数(普通変動入賞装置)を含めてよい。なお、役物獲得球数(大入賞口(小当り分))は、小当り状態中に大入賞口に入賞したことで得られた賞球数の合計であり、役物獲得球数(普通変動入賞装置)は、普通変動入賞装置37(第2始動入賞口)に入賞したことで得られた賞球数の合計である。
その後、遊技制御装置100は、算出結果に対応するセグメントデータを、役物比率表示部68のセグメントに対応するセグメント領域にセーブする(A2316)。これにより、出力処理(図11のA1610)を介して、役物比率表示部68において役物比率を表示することができる。次に、役物比率の算出結果(A2315)に対応するコマンドを演出コマンドとして準備し(A2317)、演出コマンド設定処理を実行する(A2318)。これにより、演出制御装置300は、表示装置41において、役物比率を表示できる。なお、ここでのコマンドは、役物比率の10倍の値(0〜1000)(2バイトの範囲)に対応させてよい。
次に、遊技制御装置100は、役物比率に関する信号データを試験信号出力データ領域にセーブする(A2319)。これにより、遊技情報出力手段としての出力処理(図11のA1622)を介して、中継基板70さらに外部の試射試験装置へ役物比率に関する信号データが出力し、役物比率に関する情報が報知(表示)できる。そして、試射試験装置に出力した役物比率と試射試験装置で求めた役物比率を比較してエラー(不一致)が生じていないか確認できる。なお、役物比率に関する信号データとして、各役物獲得球数のデータをそのまま外部の試射試験装置に出力して、試射試験装置で役物比率を算出する構成も可能である。
次に、遊技制御装置100は、排出球数領域の値をロードし(A2320)、(100−排出球数)の値を算出し(A2321)、この算出結果に対応するセグメントデータを、排出球数表示部66のセグメントに対応するセグメント領域にセーブする(A2322)。これにより、出力処理(図11のA1610)を介して、排出球数表示部66において排出球数がカウントダウン表示で表示される。なお、カウントアップ表示する場合には、排出球数領域の値に対応するセグメントデータをそのままセグメント領域にセーブすればよい。また、この算出結果に対応するコマンドを演出コマンドとして準備し(A2323)、演出コマンド設定処理を実行する(A2324)。これにより、演出制御装置300は、表示装置41において、排出球数をカウントダウン表示によって表示できる。なお、ここでのコマンドは、排出球数表示部66において表示する100未満の数値の排出球数(1バイトの範囲)に対応する。その後、出玉性能監視処理を終了する。
なお、変形例として、排出球数の値、獲得球数の値、各役物別獲得球数領域の値をデータとして演出制御装置300に送信し、演出制御装置300において、出玉率や役物比率を計算してもよい。また、ステップA2310とA2319において、出玉率や役物比率に関する信号データや、出玉率や役物比率が異常値(所定値以上又は所定値以下の値)であることを報知する信号データなどを、外部情報信号として、遊技店に設置された外部装置(情報収集端末や遊技場内部管理装置(ホールコンピュータ)など)に出力し、出玉率や役物比率に関する情報や異常値であることを報知(表示)可能としてもよい。
〔遊技機状態チェック処理〕
図19は、遊技機状態チェック処理の手順を示すフローチャートである。遊技機状態チェック処理は、図15Aに示した入賞口スイッチ/状態監視処理におけるステップA2020、A2022及びA2025にて実行される。
遊技制御装置100は、まず、状態スキャンカウンタに対応する状態監視テーブルを取得する(A2401)。状態スキャンカウンタは遊技状態に対応して0から3の範囲の値が設定されている。なお、状態監視テーブルと状態スキャンカウンタとの関係については、図15Aに示した入賞口スイッチ/状態監視処理にて説明した通りである。
続いて、遊技制御装置100は、チェック対象の信号がオンであるか否かを判定する(A2402)。チェック対象の信号がオンでない場合(A2402の結果が「N」)、すなわち、チェック対象の信号がオフの場合には、状態フラグとして状態オフフラグを準備し(A2403)、対象の状態オフコマンドを取得し、準備する(A2404)。さらに、対象の状態オフ監視タイマ比較値を取得する(A2405)。状態オフフラグは、エラー系の信号に関しては、正常状態を示し、タッチスイッチ信号に関しては、タッチ無しの状態を示す。
一方、遊技制御装置100は、チェック対象の信号がオンの場合には(A2402の結果が「Y」)、状態フラグとして状態オンフラグを準備し(A2406)、対象の状態オンコマンドを取得し、準備する(A2407)。さらに、対象の状態オン監視タイマ比較値を取得する(A2408)。状態オンフラグは、エラー系の信号に関しては、異常又は不正状態を示し、タッチスイッチ信号に関しては、タッチ有りの状態を示す。
ステップA2405又はステップA2408の処理が終了すると、遊技制御装置100は、対象の信号制御領域の値が取得された信号の状態と一致するか否かを判定する(A2409)。一致する場合には(A2409の結果が「Y」)、ステップA2412の処理に移行する。一致していない場合には(A2409の結果が「N」)、対象の信号制御領域に取得した信号状態をセーブし(A2410)、対象の状態監視タイマをクリアする(A2411)。
続いて、遊技制御装置100は、対象の状態監視タイマを+1更新する(A2412)。さらに、更新された状態監視タイマの値が対応するタイマ比較値以上であるか否かを判定する(A2413)。更新された状態監視タイマの値が対応するタイマ比較値未満の場合には(A2413の結果が「N」)、遊技機状態チェック処理を終了する。
一方、遊技制御装置100は、更新された状態監視タイマの値が対応するタイマ比較値以上の場合には(A2413の結果が「Y」)、状態監視タイマを−1更新し、タイマ比較値−1の値に留める(A2414)。さらに、準備した状態フラグが対象の状態フラグ領域の値と一致するか否かを判定する(A2415)。一致している場合には(A2415の結果が「Y」)、遊技機状態チェック処理を終了する。
一方、遊技制御装置100は、準備した状態フラグが対象の状態フラグ領域の値と一致していない場合には(A2415の結果が「N」)、準備した状態フラグを対象の状態フラグ領域にセーブする(A2416)。最後に、演出コマンドを設定する演出コマンド設定処理を実行し(A2417)、遊技機状態チェック処理を終了する。ここでの演出コマンドは、状態オフコマンドか状態オンコマンドの何れかである。状態オンコマンドがエラー系のコマンドであれば、演出制御装置300にエラー報知を開始させる。
〔払出ビジー信号チェック処理〕
図20は、払出ビジー信号チェック処理の手順を示すフローチャートである。払出ビジー信号チェック処理は、図15Aに示した入賞口スイッチ/状態監視処理におけるステップA2026にて実行される。
遊技制御装置100は、まず、払出制御装置200から入力される払出ビジー信号がオンであるか否かを判定する(A2501)。なお、払出ビジー信号は、払出制御装置200が払出制御を開始できない場合にオン状態とされるようになっている。
遊技制御装置100は、払出ビジー信号がオンでない場合には(A2501の結果が「N」)、判定ステータスとしてアイドル状態フラグを準備し(A2502)、オフ確定監視タイマ比較値(例えば32msec)を設定する(A2503)。一方、払出ビジー信号がオンである場合には(A2501の結果が「Y」)、判定ステータスとしてビジー状態フラグを準備し(A2504)、オン確定監視タイマ比較値(例えば32msec)を設定する(A2505)。
その後、遊技制御装置100は、ビジー信号状態領域の値が今回の払出ビジー信号の状態(オン/オフ)に一致するものであるか否かを判定する(A2506)。一致する場合(A2506の結果が「Y」)、ステップA2509の処理に移行する。一致しない場合(A2506の結果が「N」)、ビジー信号状態領域に今回の払出ビジー信号の状態をセーブし(A2507)、ビジー信号監視タイマを0クリアする(A2508)。
次に、遊技制御装置100は、ビジー信号監視タイマを+1更新し(A2509)、監視タイマはタイマ比較値以上であるか否かを判定する(A2510)。監視タイマがタイマ比較値未満である場合(A2510の結果が「N」)、払出ビジー信号チェック処理を終了する。
遊技制御装置100は、監視タイマはタイマ比較値以上である場合(A2510の結果が「Y」)、ビジー信号監視タイマを−1更新して、タイマ比較値より1だけ小さい値に留め(A2511)、準備した状態フラグを払出ビジー信号フラグ領域(ビジー信号ステータス領域)にセーブし(A2512)、払出ビジー信号チェック処理を終了する。
払出ビジー信号チェック処理により、払出ビジー信号に基づき払出ビジー信号フラグ(ビジー信号ステータス)が設定される。この際に、払出ビジー信号の状態が変化してもすぐにはビジー信号フラグを変更せず、タイマ比較値に亘り変化した状態が継続した場合にビジー信号フラグを変更するようにしており、ノイズ等の影響を受け難くしている。
また、電源投入時にビジー信号フラグがクリアされるので、いずれかの信号状態がタイマ比較値に亘り継続するまではビジー信号フラグは設定されず不定状態となる。これにより、停電が発生し該停電から復帰した場合には、払出制御装置200から払出制御を開始可能であることを示す状態信号が出力されていたとしても、直ちに賞球指令が払出制御装置200に送信されないようになり、払出制御装置200から払出制御を開始可能であることを示す状態信号が所定期間に亘って継続して出力されたことに対応して賞球指令が払出制御装置200に送信されるようになる。これにより、払出制御装置200が賞球指令を受信して即座に払出処理が可能なことを確実に把握してから賞球指令を送信するようになり、賞球指令に対応する払出制御が行われないことを防止できる。
〔特図ゲーム処理〕
次に、前述のタイマ割込み処理における特図ゲーム処理(A1309)の詳細について説明する。図21は、特図ゲーム処理の手順を示すフローチャートである。特図ゲーム処理では、始動口1スイッチ36a及び始動口2スイッチ37aの入力の監視と、特図変動表示ゲームに関する処理全体の制御、特図の表示の設定を行う。
遊技制御装置100は、まず、始動口1スイッチ36a及び始動口2スイッチ37aの入賞を監視する始動口スイッチ監視処理を実行する(A2601)。始動口スイッチ監視処理では、始動入賞口36、第2始動入賞口をなす普通変動入賞装置37に遊技球が入賞すると、各種乱数(大当り乱数など)を抽出し、当該入賞に基づく特図変動表示ゲームの開始前の段階で入賞に基づく遊技結果を事前に判定する遊技結果事前判定を行う。なお、始動口スイッチ監視処理の詳細については後述する。
次に、遊技制御装置100は、大入賞口スイッチ監視処理を実行する(A2602)。大入賞口スイッチ監視処理では、特別変動入賞装置39内に設けられたカウントスイッチ39aでの遊技球の検出を監視する。なお、大入賞口スイッチ監視処理の詳細については後述する。
次に、遊技制御装置100は、特図ゲーム処理タイマが0でなければ−1更新する(1だけ減算する)(A2603)。特図ゲーム処理タイマは、−1更新によって、タイマ割込み処理の割込み周期(4msec)の分だけ計時されることになる。なお、特図ゲーム処理タイマの最小値は0に設定されている。次に、特図ゲーム処理タイマが0であるか否かを判定する(A2604)。特図ゲーム処理タイマが0でない場合(A2604の結果が「N」)、ステップA2619の処理に移行する。
遊技制御装置100は、特図ゲーム処理タイマが0である場合(A2604の結果が「Y」)、すなわち、タイムアップした又は既にタイムアップしていた場合には、特図ゲーム処理番号に対応する処理に分岐させるために参照する特図ゲームシーケンス分岐テーブルをレジスタに設定する(A2605)。さらに、特図ゲームシーケンス分岐テーブルを用いて特図ゲーム処理番号に対応する処理の分岐先アドレスを取得する(A2606)。続いて、特図ゲーム処理番号によるサブルーチンコールを行って、特図ゲーム処理番号に応じたゲーム分岐処理を実行する(A2607)。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「0」の場合には、特図変動表示ゲームの変動開始を監視し、特図変動表示ゲームの変動開始の設定、演出の設定や、特図変動中処理を行うために必要な情報の設定等を行う特図普段処理を実行する(A2608)。なお、特図普段処理の詳細については、図27にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「1」の場合には、特図の停止表示時間の設定や、特図表示中処理を行うために必要な情報の設定等を行う特図変動中処理を実行する(A2609)。なお、特図変動中処理の詳細については、図41にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「2」の場合には、特図変動表示ゲームの遊技結果が大当りであれば、大当りの種類に応じたファンファーレコマンドの設定や、各大当りの大入賞口開放パターンに応じたファンファーレ時間の設定、ファンファーレ/インターバル中処理を行うために必要な情報の設定等を行う特図表示中処理を実行する(A2610)。なお、特図表示中処理の詳細については、図42にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「3」の場合には、大入賞口の開放時間の設定や開放回数の更新、大入賞口開放中処理を行うために必要な情報の設定等を行うファンファーレ/インターバル中処理を実行する(A2611)。なお、ファンファーレ/インターバル中処理の詳細については、図47にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「4」の場合には、大当りラウンドが最終ラウンドでなければインターバルコマンドを設定する一方で最終ラウンドであればエンディングコマンドを設定する処理や、大入賞口残存球処理を行うために必要な情報の設定等を行う大入賞口開放中処理を実行する(A2612)。なお、大入賞口開放中処理の詳細については、図48にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「5」の場合には、大当りラウンドが最終ラウンドであれば大入賞口内にある残存球が排出されるための時間を設定する処理や、大当り終了処理を行うために必要な情報の設定等を行う大入賞口残存球処理を実行する(A2613)。なお、大入賞口残存球処理の詳細については、図49にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「6」の場合には、特図普段処理を実行するために必要な情報の設定等を行う大当り終了処理を実行する(A2614)。なお、大当り終了処理の詳細については、図50にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「7」の場合には、大入賞口の開放時間の設定や開放回数の更新、小当り中処理を行うために必要な情報の設定等を行う小当りファンファーレ中処理を実行する(A2615)。なお、小当りファンファーレ中処理の詳細については、図54にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「8」の場合には、小当り残存球処理を行うために必要な情報の設定等を行う小当り中処理を実行する(A2616)。なお、小当り中処理の詳細については、図55にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「9」の場合には、小当り終了処理を行うために必要な情報の設定等を行う小当り残存球処理を実行する(A2617)。なお、小当り残存球処理の詳細については、図57にて後述する。
遊技制御装置100は、ステップA2607にてゲーム処理番号が「10」の場合には、特図普段処理を実行するために必要な情報の設定等を行う小当り終了処理を実行する(A2618)。なお、小当り終了処理の詳細については、図58にて後述する。
特図ゲーム処理番号に基づく処理が終了すると、遊技制御装置100は、特図1表示器51の変動を制御するための特図1変動制御テーブルを準備した後(A2619)、特図1表示器51に係る図柄変動制御処理を実行する(A2620)。そして、特図2表示器52の変動を制御するための特図2変動制御テーブルを準備した後(A2621)、特図2表示器52に係る図柄変動制御処理を実行する(A2622)。なお、図柄変動制御処理の詳細については、図60にて後述する。
〔始動口スイッチ監視処理〕
次に、特図ゲーム処理における始動口スイッチ監視処理(A2601)の詳細について説明する。図22は、始動口スイッチ監視処理の手順を示すフローチャートである。
遊技制御装置100は、まず、始動入賞口36(始動口1)に対する入賞監視テーブルを準備し(A2701)、ハード乱数取得処理を実行し(A2702)、始動入賞口36への入賞があるか否かを判定する(A2703)。始動入賞口36への入賞がない場合(A2703の結果が「N」)には、ステップA2709以降の処理を実行する。一方、始動入賞口36への入賞がある場合(A2703の結果が「Y」)、特図時短中(普電サポート状態中)であるか否かを判定する(A2704)。
遊技制御装置100は、特図時短中(普電サポート状態中)でないと判定した場合(A2704の結果が「N」)、ステップA2707以降の処理を実行する。一方、特図時短中(普電サポート状態中)である場合(A2704の結果が「Y」)、右打ち指示報知コマンドを演出コマンドとして準備して(A2705)、演出コマンド設定処理を実行する(A2706)。
即ち、普電サポート状態(時短状態)であれば、変動表示ゲームの確率状態(高確率状態/低確率状態)にかかわらず、右打ち指示報知コマンドを準備して、演出コマンド設定処理を実行する。本実施形態の場合、始動入賞口36へは左打ちでないと入賞せず、普通変動入賞装置37へは右打ちでないと入賞しない。また、右打ちでないと、遊技球が普図始動ゲート34を通過しない。したがって、普電サポート状態(時短状態)は、左打ちよりも右打ちの方が有利となるが、普電サポート状態中に始動入賞口36に入賞があった場合(すなわち、普電サポート状態中に左打ちされた場合)には、右打ち指示報知コマンドを演出制御装置300に送信し、演出制御装置300は、右打ちするよう指示する報知(警告)を表示装置41等によって実行する。
次に、遊技制御装置100は、始動入賞口36(始動口1)による保留の情報を設定するテーブルを準備した後(A2707)、特図始動口スイッチ共通処理を実行する(A2708)。そして、第2始動入賞口(普通変動入賞装置37)に対する入賞監視テーブルを準備し(A2709)、ハード乱数取得処理を実行し(A2710)、第2始動入賞口への入賞があるか否かを判定する(A2711)。第2始動入賞口への入賞がない場合(A2711の結果が「N」)には、始動口スイッチ監視処理を終了する。
一方、遊技制御装置100は、第2始動入賞口への入賞がある場合(A2711の結果が「Y」)には、普通電動役物(普通変動入賞装置37)が作動中であるか否か、すなわち、普通変動入賞装置37が作動して遊技球の入賞が可能な開状態となっているか否かを判定する(A2712)。普通電動役物が作動中である場合(A2712の結果が「Y」)、ステップA2714の処理に移行する。
一方、遊技制御装置100は、普通電動役物が作動中でない場合(A2712の結果が「N」)、普電不正発生中であるかを判定する(A2713)。普通変動入賞装置37への不正入賞数が不正発生判定個数(例えば5個)以上である場合に普電不正発生中であると判定する。普通変動入賞装置37は、閉状態では遊技球が入賞不可能であり、開状態でのみ遊技球が入賞可能である。従って、閉状態で遊技球が入賞した場合は何らかの異常や不正が発生した場合であり、このような閉状態で入賞した遊技球があった場合はその数を不正入賞数として計数する。そして、このように計数された不正入賞数が所定の不正発生判定個数(上限値)以上である場合に不正発生中と判定する。
遊技制御装置100は、普電不正発生中でない場合(A2713の結果が「N」)、第2始動入賞口(普通変動入賞装置37)による保留の情報を設定するテーブルを準備した後(A2714)、特図始動口スイッチ共通処理を実行し(A2715)、始動口スイッチ監視処理を終了する。また、A2713にて、普電不正発生中である(A2713の結果が「Y」)と判定した場合にも、始動口スイッチ監視処理を終了する。すなわち、第2始動記憶をそれ以上発生させないようにする。
〔ハード乱数取得処理〕
次に、始動口スイッチ監視処理におけるハード乱数取得処理(A2702、A2710)の詳細について説明する。図23は、ハード乱数取得処理の手順を示すフローチャートである。
遊技制御装置100は、まず、始動口入賞がないことを示す始動口入賞なし情報を設定する(A2801)。次に、対象のスイッチに入力があった否かを判定し(A2802)、対象のスイッチに入力がなかった場合(A2802の結果が「N」)、ハード乱数取得処理を終了する。なお、対象のスイッチは、ステップA2702のハード乱数取得処理では、始動口1スイッチ36aであり、ステップA2710のハード乱数取得処理では、始動口2スイッチ37aである。
遊技制御装置100は、対象のスイッチに入力があった場合(A2802の結果が「Y」)、乱数ラッチレジスタステータス(乱数ラッチレジスタの状態)を読み込み、対象の乱数ラッチレジスタにラッチデータあるか否かを判定する(A2803、A2804)。対象の乱数ラッチレジスタにラッチデータない場合(A2804の結果が「N」)、ハード乱数取得処理を終了する。
遊技制御装置100は、対象の乱数ラッチレジスタにラッチデータある場合(A2804の結果が「Y」)、対象のハード乱数ラッチレジスタに抽出された大当り乱数をロードして準備し(A2805)、始動口入賞があることを示す始動口入賞あり情報を設定する(A2806)。なお、準備した大当り乱数は、特図始動口スイッチ共通処理で使用される。
〔特図始動口スイッチ共通処理〕
次に、始動口スイッチ監視処理における特図始動口スイッチ共通処理(A2708、A2715)の詳細について説明する。図24は、特図始動口スイッチ共通処理の手順を示すフローチャートである。特図始動口スイッチ共通処理は、始動口1スイッチ36aや始動口2スイッチ37aの入力があった場合に、各々の入力について共通して行われる処理である。
遊技制御装置100は、まず、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチへの入賞の回数に関する情報を遊技機10の外部の管理装置に対して出力する回数である始動口信号出力回数をロードし(A2901)、ロードした値を+1更新して(A2902)、出力回数がオーバーフローするか否かを判定する(A2903)。出力回数がオーバーフローしない場合(A2903の結果が「N」)、更新後の値をRWMの始動口信号出力回数領域にセーブして(A2904)、ステップA2905の処理に移行する。一方、出力回数がオーバーフローする場合(A2903の結果が「Y」)、ステップA2905の処理に移行する。本実施形態では、始動口信号出力回数領域に「0」から「255」までの値を記憶することができる。そして、ロードした値が「255」である場合には+1更新によって更新後の値は「0」になり、出力回数がオーバーフローすると判定するよう構成されている。
次に、遊技制御装置100は、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチに対応する更新対象の特図保留数(始動記憶数)が上限値未満か否かを判定する(A2905)。更新対象の特図保留数が上限値未満でない場合(A2905の結果が「N」)は、特図始動口スイッチ共通処理を終了する。また、更新対象の特図保留数が上限値未満である場合(A2905の結果が「Y」)は、更新対象の特図保留数(特図1保留数又は特図2保留数)を+1更新して(A2906)、対象の始動口入賞フラグをセーブする(A2907)。
次に、遊技制御装置100は、監視対象の始動口スイッチ及び特図保留数に対応する乱数格納領域のアドレスを算出して(A2908)、ステップA2805にて準備した大当り乱数をRWMの大当り乱数格納領域にセーブする(A2909)。次に、監視対象の始動口スイッチの大当り図柄乱数を抽出し、準備して(A2910)、RWMの大当り図柄乱数格納領域にセーブする(A2911)。
次に、遊技制御装置100は、始動入賞口36(始動口1)への入賞であるか否かを判定する(A2912)。始動入賞口36への入賞でない場合(A2912の結果が「N」)には、ステップA2915の処理に移行する。一方、始動入賞口36への入賞である場合(A2912の結果が「Y」)、小当り図柄乱数を抽出し、準備して(A2913)、RWMの小当り図柄乱数格納領域にセーブする(A2914)。
次に、遊技制御装置100は、変動パターン乱数1から3を対応するRWMの変動パターン乱数格納領域にセーブして(A2915)、特図保留情報判定処理を実行する(A2916)。そして、監視対象の始動口スイッチ及び特図保留数に対応する飾り特図保留数コマンドを演出コマンドとして準備し(A2917)、演出コマンド設定処理(A2918)を実行して、特図始動口スイッチ共通処理を終了する。
ここで、遊技制御装置100(RAM111c)は、始動入賞口36や普通変動入賞装置37の始動入賞領域への遊技球の流入に基づき、所定の乱数を抽出し前記変動表示ゲームの実行権利となる始動記憶として所定数を上限に記憶する始動記憶手段をなす。また、始動記憶手段(遊技制御装置100)は、第1始動入賞口(始動入賞口36)への遊技球の入賞に基づき抽出した各種の乱数値を、所定数を上限に第1始動記憶として記憶し、第2始動入賞口(普通変動入賞装置37)への遊技球の入賞に基づき抽出した各種の乱数値を、所定数を上限に第2始動記憶として記憶する。
〔特図保留情報判定処理〕
次に、始動口スイッチ共通処理における特図保留情報判定処理(A2916)の詳細について説明する。図25は、特図保留情報判定処理の手順を示すフローチャートである。特図保留情報判定処理は、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に当該始動記憶に対応した結果関連情報の判定を行う先読み(事前判定)処理である。
遊技制御装置100は、まず、ステップA2907にてセーブした始動口入賞フラグをチェックして、始動入賞口36(始動口1)への入賞であるか否かを判定する(A3001)。始動入賞口36への入賞でない場合(A3001の結果が「N」)、ステップA3004の処理に移行する。一方、始動入賞口36への入賞である場合(A3001の結果が「Y」)には、特図時短中(普電サポート状態中)であるか否かを判定する(A3002)。
遊技制御装置100は、特図時短中(普電サポート状態中)である場合(A3002の結果が「Y」)、特図保留情報判定処理を終了する。一方、特図時短中でない場合(A3002の結果が「N」)には、大当り中または小当り中であるか否かを判定する(A3003)。大当り中または小当り中である場合(A3003の結果が「Y」)、特図保留情報判定処理を終了する。
一方、遊技制御装置100は、大当り中または小当り中でない場合(A3003の結果が「N」)、大当り乱数値が大当り判定値と一致するか否かにより大当りであるかを判定する大当り判定処理を実行する(A3004)。そして、判定結果が大当りである場合(A3005の結果が「Y」)は、対象の始動口スイッチに対応する大当り図柄乱数チェックテーブルを設定し(A3006)、ステップA2910にて準備した大当り図柄乱数に対応する停止図柄情報を取得して(A3007)、ステップA3014の処理に移行する。
遊技制御装置100は、判定結果が大当りでない場合(A3005の結果が「N」)は、第1始動口(始動入賞口36)への入賞であるか否かを判定する(A3008)。始動入賞口36への入賞でない場合(A3008の結果が「N」)、はずれの停止図柄情報を設定して(A3013)、ステップA3014の処理に移行する。
遊技制御装置100は、始動入賞口36への入賞である場合(A3008の結果が「Y」)、大当り乱数値が小当り判定値と一致するか否かにより小当りであるかを判定する小当り判定処理を実行する(A3009)。そして、判定結果が小当りでない場合(A3010の結果が「N」)、はずれの停止図柄情報を設定して(A3013)、ステップA3014の処理に移行する。一方、判定結果が小当りである場合(A3010の結果が「Y」)には、小当り図柄乱数チェックテーブルを設定し(A3011)、ステップA143にて準備した小当り図柄乱数に対応する停止図柄情報を取得して(A3012)、ステップA3014の処理に移行する。
次に、遊技制御装置100は、対象の始動口スイッチ及び停止図柄情報に対応する先読み停止図柄コマンドを演出コマンドとして準備し(A3014)、演出コマンド設定処理を実行する(A3015)。次に、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理を行い(A3016)、特図変動表示ゲームの変動態様を設定する変動パターン設定処理を実行する(A3017)。
その後、遊技制御装置100は、特図変動表示ゲームの変動態様における前半変動パターンを示す前半変動番号及び後半変動パターンを示す後半変動番号に対応する先読み変動パターンコマンドを演出コマンドとして準備して(A3018)、演出コマンド設定処理を行い(A3019)、特図保留情報判定処理を終了する。なお、ステップA3016における特図情報設定処理、ステップA3017における変動パターン設定処理は、特図普段処理で特図変動表示ゲームの開始時に実行される処理と同様である。
以上の処理により、先読み対象の始動記憶に基づく特図変動表示ゲームの結果を含む先読み図柄コマンドと、当該始動記憶に基づく特図変動表示ゲームでの変動パターンの情報を含む先読み変動パターンコマンドが準備され、演出制御装置300に送信される。これにより、始動記憶に対応した結果関連情報(大当りか否かや変動パターンの種類)の判定結果(先読み結果)を、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に演出制御装置300に対して知らせることができ、特に表示装置41に表示される飾り特図始動記憶表示を変化させるなどして、その特図変動表示ゲームの開始タイミングより前に遊技者に結果関連情報を報知することが可能となる。
すなわち、遊技制御装置100が、始動記憶手段(遊技制御装置100)に始動記憶として記憶される乱数を、当該始動記憶に基づく変動表示ゲームの実行前に判定する(例えば特別結果となるか否か等を判定)事前判定手段をなす。なお、始動記憶に対応して記憶された乱数値を事前に判定する時期は、当該始動記憶が発生した始動入賞時だけではなく、当該始動記憶に基づく変動表示ゲームが行われる前であればいつでもよい。
〔大入賞口スイッチ監視処理〕
次に、特図ゲーム処理における大入賞口スイッチ監視処理(A2602)の詳細について説明する。図26は、大入賞口スイッチ監視処理の手順を示すフローチャートである。
遊技制御装置100は、まず、特図ゲーム処理番号の値が「4」であるか、すなわち大入賞口開放中処理中であるか否かを判定する(A3101)。大入賞口開放中処理中である場合(A3101の結果が「Y」)、ステップA3105の処理に移行する。また、大入賞口開放中処理中でない場合(A3101の結果が「N」)、特図ゲーム処理番号の値が「5」であるか、すなわち大入賞口残存球処理中であるか否かを判定する(A3102)。
遊技制御装置100は、大入賞口残存球処理中である場合(A3102の結果が「Y」)、ステップA3105の処理に移行する。また、大入賞口残存球処理中でない場合(A3105の結果が「N」)、特図ゲーム処理番号の値が「8」であるか、すなわち小当り中処理中であるか否かを判定する(A3103)。小当り中処理中である場合(A3104の結果が「Y」)、ステップA3105の処理に移行する。また、小当り中処理中でない場合(A3103の結果が「N」)、特図ゲーム処理番号の値が「9」であるか、すなわち小当り残存球処理中であるか否かを判定する(A3104)。特図ゲーム処理タイマが0になるまで特図ゲーム処理番号は次に移行しないため、このように特図ゲーム処理番号によって遊技の進行状態をチェックすることができる。
遊技制御装置100は、小当り残存球処理中でない場合(A3104の結果が「N」)、大入賞口スイッチ監視処理を終了する。また、小当り残存球処理中である場合(A3104の結果が「Y」)は、ステップA3105の処理に移行する。そして、入賞カウンタに0をセットして(A3105)、大入賞口スイッチ1(一方の大入賞口スイッチ39a)に入力があるか否かを判定する(A3106)。
遊技制御装置100は、大入賞口スイッチ1に入力がない場合(A3106の結果が「N」)、大入賞口スイッチ2(他方の大入賞口スイッチ39a)に入力があるか否かを判定する(A3110)。また、大入賞口スイッチ1に入力がある場合(A3106の結果が「Y」)、大入賞口カウントコマンドを演出コマンドとして準備して(A3107)、演出コマンド設定処理(A3108)を実行する。そして、入賞カウンタを+1更新し(A3109)、大入賞口スイッチ2(他方の大入賞口スイッチ39a)に入力があるか否かを判定する(A3110)。
遊技制御装置100は、大入賞口スイッチ2に入力がない場合(A3110の結果が「N」)、入賞カウンタの値が0であるか否かを判定する(A3114)。また、大入賞口スイッチ2に入力がある場合(A3110の結果が「Y」)、大入賞口カウントコマンドを演出コマンドとして準備して(A3111)、演出コマンド設定処理(A3112)を実行する。そして、入賞カウンタを+1更新し(A3113)、入賞カウンタの値が0であるか否かを判定する(A3114)。
遊技制御装置100は、入賞カウンタの値が0である場合(A3114の結果が「Y」)は、大入賞口スイッチ監視処理を終了する。また、入賞カウンタの値が0でない場合(A3114の結果が「N」)、大入賞口残存球処理中であるか否かを判定する(A3115)。大入賞口残存球処理中である場合(A3115の結果が「Y」)、大入賞口スイッチ監視処理を終了し、大入賞口残存球処理中でない場合(A3115の結果が「N」)、小当り残存球処理中であるか否かを判定する(A3116)。
遊技制御装置100は、小当り残存球処理中である場合(A3116の結果が「Y」)は、大入賞口スイッチ監視処理を終了し、小当り残存球処理中でない場合(A3116の結果が「N」)、入賞カウンタの値(1又は2)を大入賞口カウント数に加算し(A3117)、大入賞口カウント数が上限値(一のラウンドで入賞可能な遊技球数。例えば「9」)以上となったか否かを判定する(A3118)。
遊技制御装置100は、大入賞口カウント数が上限値以上となっていない場合(A3118の結果が「N」)、大入賞口スイッチ監視処理を終了する。また、大入賞口カウント数が上限値以上となった場合(A3118の結果が「Y」)、大入賞口カウント数を上限値に留め(A3119)、特図ゲーム処理タイマ領域を0クリアして(A3120)、小当り中処理中であるかを判定する(A3121)。
遊技制御装置100は、小当り中処理中でない場合(A3121の結果が「N」)、大入賞口スイッチ監視処理を終了し、小当り中処理中である場合(A3121の結果が「Y」)、大入賞口制御ポインタ領域に小当り開放動作終了の値をセーブして(A3122)、大入賞口スイッチ監視処理を終了する。これにより大入賞口が閉鎖されて一のラウンドが終了することとなる。
〔特図普段処理〕
次に、特図ゲーム処理における特図普段処理(A2608)の詳細について説明する。図27は、特図普段処理の手順を示すフローチャートである。
遊技制御装置100は、まず、特図2保留数(第2始動記憶数)が0であるか否かを判定する(A3201)。特図2保留数が0である場合(A3201の結果が「Y」)、特図1保留数(第1始動記憶数)が0であるか否かを判定する(A3205)。そして、特図1保留数が0である場合(A3205の結果が「Y」)、客待ちデモが開始済みであるか否かを判定し(A3209)、客待ちデモが開始済みでない場合(A3209の結果が「N」)は、客待ちデモフラグ領域に、客待ちデモ状態(客待ちデモ中の状態)であることを示す客待ちデモ中フラグをセットする(A3210)。
続けて、遊技制御装置100は、客待ちデモコマンドを演出コマンドとして準備して(A3211)、演出コマンド設定処理を行い(A3212)、処理番号として特図普段処理に係る「0」を設定する(A3213)。一方、ステップA3209にて、客待ちデモが開始済みである場合(A3209の結果が「Y」)も、処理番号として特図普段処理に係る「0」を設定する(A3213)。その後、特図ゲーム処理番号領域に処理番号をセーブして(A3214)、変動図柄判別フラグ領域をクリアする(A3215)。そして、大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブして(A3216)、特図普段処理を終了する。
このように、客待ちデモコマンドは、特図1保留数(第1始動記憶数)と特図2保留数(第2始動記憶数)が0である場合に送信され、客待ちデモコマンドを受信した演出制御装置300は、表示装置41等に客待ちデモを表示する設定を行う。なお、遊技制御装置100は、操作ハンドル24のタッチスイッチからのタッチスイッチ信号がオフ信号となった場合にのみ、客待ちデモコマンドを送信する構成も可能である。
また、遊技制御装置100は、特図2保留数が0でない場合(A3201の結果が「N」)、特図2変動開始処理を実行し(A3202)、特図2保留数に対応する飾り特図保留数コマンド(飾り特図2保留数コマンド)を演出コマンドとして準備して(A3203)、演出コマンド設定処理を実行し(A3204)、特図普段処理を終了する。
また、遊技制御装置100は、特図1保留数が0でない場合(A3205の結果が「N」)、特図1変動開始処理を実行し(A3206)、特図1保留数に対応する飾り特図保留数コマンド(飾り特図1保留数コマンド)を演出コマンドとして準備して(A3207)、演出コマンド設定処理を実行し(A3208)、特図普段処理を終了する。
このように、特図2保留数のチェックを特図1保留数のチェックよりも先に行うことで、特図2保留数が0でない場合には特図2変動開始処理(A3202)が実行されることとなる。すなわち、特図2変動表示ゲームが特図1変動表示ゲームに優先して実行されることとなる。つまり、遊技制御装置100が、第2始動記憶手段(遊技制御装置100)に第2始動記憶がある場合には、当該第2始動記憶に基づく変動表示ゲームを、第1始動記憶に基づく変動表示ゲームよりも優先的に実行する優先制御手段をなす。
〔特図1変動開始処理〕
次に、特図普段処理における特図1変動開始処理(A3206)の詳細について説明する。図28は、特図1変動開始処理の手順を示すフローチャートである。特図1変動開始処理は、特図1変動表示ゲームの開始時に行う処理である。
遊技制御装置100は、実行する特図変動表示ゲームの種別(ここでは特図1)を示す特図1変動フラグを変動図柄判別フラグ領域にセーブする(A3401)。続いて、特図1変動表示ゲームが大当りであるか否かを判別するための大当りフラグ1にはずれ情報や大当り情報を設定する大当りフラグ1設定処理を実行する(A3402)。大当りフラグ1設定処理の詳細については後述する。
次に、遊技制御装置100は、特図1停止図柄(図柄情報)の設定に係る特図1停止図柄設定処理を実行する(A3403)。特図1停止図柄設定処理の詳細については後述する。さらに、遊技制御装置100は、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理を実行する(A3404)。特図情報設定処理の詳細については後述する。
続いて、遊技制御装置100は、特図1変動表示ゲームの変動パターンの設定に関する種々の情報を参照するための情報が設定されたテーブルである特図1変動パターン設定情報テーブルを準備する(A3405)。その後、遊技制御装置100は、特図1変動表示ゲームにおける変動態様である変動パターンを設定する変動パターン設定処理を実行する(A3406)。変動パターン設定処理の詳細については後述する。
次に、遊技制御装置100は、特図1変動表示ゲームの変動開始の情報を設定する変動開始情報設定処理を実行し(A3407)、特図1変動開始処理を終了する。変動開始情報設定処理の詳細については後述する。
そして、遊技制御装置100は、処理番号として特図変動中処理に係る「1」を設定し(A3408)、特図ゲーム処理番号領域に処理番号をセーブする(A3409)。
そして、遊技制御装置100は、客待ちデモフラグ領域をクリアし(A3410)、特図1の変動開始に関する信号を試験信号出力データ領域にセーブする(A3411)。その後、特図1変動制御フラグ領域に変動中フラグをセーブし(A3412)、特図1点滅制御タイマ領域に点滅制御タイマ(特図1表示器51の点滅の周期のタイマ)の初期値(例えば100ms)を設定する(A3413)。続いて、特図1変動図柄番号領域に初期値(例えば0)をセーブし(A3414)、特図1変動開始処理を終了する。
〔特図2変動開始処理〕
次に、特図普段処理における特図2変動開始処理(A3202)の詳細について説明する。図29は、特図2変動開始処理の手順を示すフローチャートである。特図2変動開始処理は、特図2変動表示ゲームの開始時に行う処理であって、図28に示した特図1変動開始処理での処理と同様の処理を、第2始動記憶を対象として行うものである。
遊技制御装置100は、まず、実行する特図変動表示ゲームの種別(ここでは特図2)を示す特図2変動フラグを変動図柄判別フラグ領域にセーブする(A3501)。続いて、特図2変動表示ゲームが大当りであるか否かを判別するための大当りフラグ2にはずれ情報や大当り情報を設定する大当りフラグ2設定処理を実行する(A3502)。
次に、遊技制御装置100は、特図2停止図柄(図柄情報)の設定に係る特図2停止図柄設定処理を実行する(A3503)。さらに、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理を実行する(A3504)。続いて、特図2変動表示ゲームの変動パターンの設定に関する種々の情報を参照するための情報が設定されたテーブルである特図2変動パターン設定情報テーブルを準備する(A3505)。
その後、遊技制御装置100は、特図2変動表示ゲームの変動パターンを設定する変動パターン設定処理を実行する(A3506)。そして、特図2変動表示ゲームの変動開始の情報を設定する変動開始情報設定処理を実行する(A3507)。
次に、遊技制御装置100は、まず、処理番号として特図変動中処理に係る「1」を設定し(A3508)、特図ゲーム処理番号領域に処理番号をセーブする(A3509)。
そして、遊技制御装置100は、客待ちデモフラグ領域をクリアし(A3510)、特図2の変動開始に関する信号を試験信号出力データ領域にセーブする(A3511)。その後、特図2変動制御フラグ領域に変動中フラグをセーブし(A3512)、特図2点滅制御タイマ領域に点滅制御タイマ(特図2表示器52の点滅の周期のタイマ)の初期値(例えば100ms)を設定する(A3513)。続いて、特図2変動図柄番号領域に初期値(例えば0)をセーブし(A3414)、特図2変動開始処理を終了する。
〔大当りフラグ1設定処理〕
次に、特図1変動開始処理における大当りフラグ1設定処理(A3402)の詳細について説明する。図30は、大当りフラグ1設定処理の手順を示すフローチャートである。
遊技制御装置100は、まず、小当りフラグ領域にはずれ情報をセーブして(A3601)、大当りフラグ1領域にはずれ情報をセーブする(A3602)。次に、RWMの特図1大当り乱数格納領域(保留数1用)から大当り乱数をロードし、準備して(A3603)、当該特図1大当り乱数格納領域(保留数1用)を0クリアする(A3604)。なお、保留数1用とは、消化順序が最先(ここでは特図1のうちで最先)の特図始動記憶についての情報(乱数等)を格納する領域である。その後、準備した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか否かを判定する大当り判定処理を実行する(A3605)。
遊技制御装置100は、大当り判定処理(A3605)の判定結果が大当りである場合(A3606の結果が「Y」)、ステップA3602にてはずれ情報をセーブした大当りフラグ1領域に大当り情報を上書きしてセーブし(A3607)、大当りフラグ1設定処理を終了する。一方、大当り判定処理(A3605)の判定結果が大当りでない場合(A3606の結果が「N」)、準備した大当り乱数値が小当り判定値と一致するか否かに応じて小当りであるか否かを判定する小当り判定処理を実行する(A3608)。
遊技制御装置100は、小当り判定処理(A3608)の判定結果が小当りである場合(A3609の結果が「Y」)、ステップA3601にてはずれ情報をセーブした小当りフラグ領域に小当り情報を上書きしてセーブし(A3610)、大当りフラグ1設定処理を終了する。一方、小当り判定処理(A3608)の判定結果が小当りでない場合(A3609の結果が「N」)は、大当りフラグ1領域にも小当りフラグ領域にもはずれ情報をセーブしたまま大当りフラグ1設定処理を終了する。このように、本実施形態において、特図1変動表示ゲームの結果は、「大当り」、「小当り」、及び「はずれ」のうちの何れかとなる。
〔大当りフラグ2設定処理〕
次に、特図2変動開始処理における大当りフラグ2設定処理(A3502)の詳細について説明する。図31は、大当りフラグ2設定処理の手順を示すフローチャートである。この処理は、図30に示した大当りフラグ1設定処理での処理と同様の処理を、第2始動記憶を対象として行うものである。
遊技制御装置100は、まず、大当りフラグ2領域にはずれ情報をセーブする(A3701)。次に、RWMの特図2大当り乱数格納領域(保留数1用)から大当り乱数をロードし、準備して(A3702)、当該特図2大当り乱数格納領域(保留数1用)を0クリアする(A3703)。なお、保留数1用とは、消化順序が最先(ここでは特図2のうちで最先)の特図始動記憶についての情報(乱数等)を格納する領域である。その後、準備した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか否かを判定する大当り判定処理を実行する(A3704)。
遊技制御装置100は、大当り判定処理(A3704)の判定結果が大当りである場合(A3705の結果が「Y」)、ステップA3701にてはずれ情報をセーブした大当りフラグ2領域に大当り情報を上書きしてセーブし(A3706)、大当りフラグ2設定処理を終了する。一方、大当り判定処理(A3704)の判定結果が大当りでない場合(A3705の結果が「N」)、大当りフラグ2にはずれ情報をセーブしたまま大当りフラグ2設定処理を終了する。このように、本実施形態において、特図2変動表示ゲームの結果は、「大当り」及び「はずれ」のうちの何れかとなる。
〔大当り判定処理〕
次に、大当りフラグ1設定処理と大当りフラグ2設定処理等における大当り判定処理(A3605、A3704)の詳細について説明する。図32は、大当り判定処理の手順を示すフローチャートである。なお、大当り判定処理は、タイマ割込み処理中に実行される他の処理における大当り判定処理に共通する処理であり、特図保留情報判定処理のステップA3004などでも実行される。
遊技制御装置100は、まず、大当り判定値の下限判定値を設定し(A3801)、対象の大当り乱数の値が下限判定値未満であるか否かを判定する(A3802)。なお、大当りであるとは大当り乱数が大当り判定値と一致することである。大当り判定値は連続する複数の値であり、大当り乱数が、大当り判定値の下限の値である下限判定値以上で、かつ、大当り判定値の上限の値である上限判定値以下である場合に、大当りであると判定される。
遊技制御装置100は、対象の大当り乱数の値が下限判定値未満である場合(A3802の結果が「Y」)、判定結果としてはずれ(大当り以外)を設定し(A3807)、大当り判定処理を終了する。
また、遊技制御装置100は、大当り乱数の値が下限判定値未満でない場合には(A3802の結果が「N」)、大当りの発生確率が高確率状態(確変状態)であるか否かを判定する(A3803)。そして、高確率状態である場合には(A3803の結果が「Y」)、高確率中の上限判定値を設定する(A3804)。一方、高確率状態でない場合には(A3803の結果が「N」)、低確率中の上限判定値を設定する(A3805)。
遊技制御装置100は、大当り乱数の値の上限判定値を設定すると、対象の大当り乱数の値が上限判定値より大きいか否かを判定する(A3806)。大当り乱数の値が上限判定値より大きい場合(A3806の結果が「Y」)、判定結果としてはずれ(大当り以外)を設定する(A3807)。一方、大当り乱数の値が上限判定値より大きくない場合(A3806の結果が「N」)、判定結果として大当りを設定する(A3808)。判定結果を設定すると、大当り判定処理を終了する。
〔小当り判定処理〕
次に、大当りフラグ1設定処理における小当り判定処理(A3608)の詳細について説明する。図33は、小当り判定処理の手順を示すフローチャートである。なお、小当り判定処理は、タイマ割込み処理中に実行される他の処理における小当り判定処理に共通する処理であり、特図保留情報判定処理のステップA3009などでも実行される。
遊技制御装置100は、まず、対象(特図1)の大当り乱数の値が小当り下限判定値未満であるか否かを判定する(A3901)。なお、小当りであるとは大当り乱数が小当り判定値と一致することである。小当り判定値は連続する複数の値であり、大当り乱数が、小当り判定値の下限の値である小当り下限判定値以上で、かつ、小当り判定値の上限の値である小当り上限判定値以下である場合に、小当りであると判定される。
当然ながら、同じ特図変動表示ゲームの結果が小当り且つ大当りとなることを避けるべく、小当り判定値の範囲(小当り下限判定値と小当り上限判定値の間)は、前述の大当り判定値の範囲(下限判定値と上限判定値の間)とは重ならない。なお、本実施形態では、独自に小当り乱数を設けることはせず、小当りの判定にも大当り乱数を利用するが、独自の小当り乱数を設ける構成も可能である。
遊技制御装置100は、対象(特図1)の大当り乱数の値が小当り下限判定値未満である場合(A3901の結果が「Y」)、判定結果としてはずれを設定し(A3903)、小当り判定処理を終了する。
また、遊技制御装置100は、大当り乱数の値が小当り下限判定値未満でない場合には(A3901の結果が「N」)、対象(特図1)の大当り乱数の値が小当り上限判定値より大きいか否かを判定する(A3902)。大当り乱数の値が小当り上限判定値より大きい場合(A3902の結果が「Y」)、判定結果としてはずれを設定する(A3903)。一方、大当り乱数の値が小当り上限判定値より大きくない場合(A3902の結果が「N」)、判定結果として小当りを設定する(A3904)。判定結果を設定すると、小当り判定処理を終了する。
〔特図1停止図柄設定処理〕
次に、特図1変動開始処理における特図1停止図柄設定処理(A3403)の詳細について説明する。図34は、特図1停止図柄設定処理の手順を示すフローチャートである。
遊技制御装置100は、まず、大当りフラグ1が大当りか否かを判定し(A4001)、大当りである場合(A4001の結果が「Y」)、特図1大当り図柄乱数格納領域(保留数1用)から大当り図柄乱数をロードする(A4002)。次に、特図1大当り図柄テーブルを設定する(A4003)。
続いて、ロードした大当り図柄乱数に対応する停止図柄番号を取得し、特図1停止図柄番号領域にセーブする(A4004)。この処理により特別結果の種類(大当りの種類)が選択される。
その後、遊技制御装置100は、特図1大当り停止図柄情報テーブルを設定して(A4005)、停止図柄番号に対応する停止図柄パターンを取得し、停止図柄パターン領域にセーブする(A4006)。停止図柄パターンとは、特図表示器(ここでは特図1表示器51)での停止図柄や表示装置41での停止図柄を設定するためのものである。次に、停止図柄番号に対応するラウンド数上限値情報を取得し、ラウンド数上限値情報領域にセーブする(A4007)。
次に、遊技制御装置100は、停止図柄番号に対応する時間短縮判定データを取得し、時間短縮判定データ領域にセーブする(A4008)。時間短縮判定データには、大当り状態終了後の普電サポート状態(時短状態)の有無の情報が含まれる。
その後、遊技制御装置100は、停止図柄パターン及び確率状態に対応する演出モード移行情報をセーブする(A4009)。そして、遊技制御装置100は、停止図柄パターンに対応する飾り特図コマンドを準備する(A4018)。
なお、演出モード移行情報は、演出モードを移行させるための情報である。ここでの演出モード移行情報は、大当りの場合(A4001の結果が「Y」)に設定され後述の大当り終了処理で使用される。即ち、演出モード移行情報によって、大当りを契機に演出モードを移行させることができる。また、上記のように演出モード移行情報は大当りの停止図柄パターン(確変大当り図柄/通常大当り図柄であるか等)に応じて設定されるため、大当り図柄の種類(大当りの種類)で、大当り終了後に移行する演出モードの移行先が変化することになる。また、上記のように演出モード移行情報は確率状態に応じて設定されるため、現在特図高確率状態(確変状態)中か否かによっても、演出モードの移行先が影響を受ける。
一方、遊技制御装置100は、大当りフラグ1が大当りでない場合(A4001の結果が「N」)、小当りフラグが小当りか否かを判定し(A4010)、小当りである場合(A4011の結果が「Y」)、特図1小当り図柄乱数格納領域(保留数1用)から小当り図柄乱数をロードする(A4011)。次に、特図1小当り図柄テーブルを設定し(A4012)、ロードした小当り図柄乱数に対応する停止図柄番号を取得し、特図1停止図柄番号領域にセーブする(A4013)。
その後、遊技制御装置100は、停止図柄番号に対応する停止図柄パターンを取得し、停止図柄パターン領域にセーブして(A4014)、停止図柄パターンに対応する演出モード移行情報をセーブする(A4015)。ここでの演出モード移行情報は、小当りの場合(A4010の結果が「Y」)に設定され、小当りを契機に演出モードを移行させることができる。そして、停止図柄パターンに対応する飾り特図コマンドを準備する(A4018)。
また、小当りフラグが小当りでない場合(A4010の結果が「N」)は、はずれ時の停止図柄番号を特図1停止図柄番号領域にセーブし(A4016)、はずれ停止図柄パターンを停止図柄パターン領域にセーブして(A4017)、停止図柄パターンに対応する飾り特図コマンドを準備する(A4018)。以上の処理により、特図変動表示ゲームの結果に対応した停止図柄が設定される。
その後、飾り特図コマンドを飾り特図コマンド領域にセーブし(A4019)、演出コマンド設定処理を実行する(A4020)。この飾り特図コマンドは、後に演出制御装置300に送信される。そして、停止図柄番号に対応する図柄データを試験信号出力データ領域にセーブし(A4021)、特図1大当り図柄乱数格納領域(保留数1用)を0クリアし(A4022)、特図1小当り図柄乱数格納領域(保留数1用)を0クリアして(A4023)、特図1停止図柄設定処理を終了する。
〔特図2停止図柄設定処理〕
次に、特図2変動開始処理における特図2停止図柄設定処理(A3503)の詳細について説明する。図35は、特図2停止図柄設定処理の手順を示すフローチャートである。
遊技制御装置100は、まず、大当りフラグ2が大当りか否かを判定し(A4101)、大当りである場合(A4101の結果が「Y」)、特図2大当り図柄乱数格納領域(保留数1用)から大当り図柄乱数をロードする(A4102)。次に、特図2大当り図柄テーブルを設定する(A4103)。続いて、ロードした大当り図柄乱数に対応する停止図柄番号を取得し、特図2停止図柄番号領域にセーブする(A4104)。この処理により特別結果の種類(大当りの種類)が選択される。
その後、遊技制御装置100は、特図2大当り停止図柄情報テーブルを設定して(A4105)、停止図柄番号に対応する停止図柄パターンを取得し、停止図柄パターン領域にセーブする(A4106)。停止図柄パターンとは、特図表示器(ここでは特図2表示器52)での停止図柄や表示装置41での停止図柄を設定するためのものである。次に、停止図柄番号に対応するラウンド数上限値情報を取得し、ラウンド数上限値情報領域にセーブする(A4107)。
次に、遊技制御装置100は、停止図柄番号に対応する時間短縮判定データを取得し、時間短縮判定データ領域にセーブする(A4108)。時間短縮判定データには、大当り状態終了後の普電サポート状態(時短状態)の有無の情報が含まれる。
その後、遊技制御装置100は、停止図柄パターン及び確率状態に対応する演出モード移行情報をセーブする(A4109)。ここでの演出モード移行情報は、大当りの場合(A4101の結果が「Y」)に設定され後述の大当り終了処理で使用される。そして、遊技制御装置100は、停止図柄パターンに対応する飾り特図コマンドを準備する(A4112)。
一方、遊技制御装置100は、大当りフラグ2が大当りでない場合(A4101の結果が「N」)、はずれ時の停止図柄番号を特図2停止図柄番号領域にセーブし(A4110)、はずれ停止図柄パターンを停止図柄パターン領域にセーブして(A4111)、停止図柄パターンに対応する飾り特図コマンドを準備する(A4112)。以上の処理により、特図変動表示ゲームの結果に対応した停止図柄が設定される。
その後、飾り特図コマンドを飾り特図コマンド領域にセーブし(A4113)、演出コマンド設定処理を実行する(A4114)。この飾り特図コマンドは、後に演出制御装置300に送信される。そして、停止図柄番号に対応する図柄データを試験信号出力データ領域にセーブし(A4115)、特図2大当り図柄乱数格納領域(保留数1用)を0クリアし(A4116)、特図2停止図柄設定処理を終了する。
〔特図情報設定処理〕
次に、特図1変動開始処理と特図2変動開始処理における特図情報設定処理(A3404、A3504)の詳細について説明する。図36は、特図情報設定処理の手順を示すフローチャートである。本実施形態において、確率状態(低確率/高確率、時短あり/なし)は変動の振り分けに直接影響せず、遊技制御装置100が管理している演出モードが変動の振り分けに影響する。演出モードは、確率状態、時短状態の有無、特図変動表示ゲームの進行状況などに応じて、複数の演出モードから一の演出モードが設定されるようになっている。
遊技制御装置100は、まず、前半変動グループ選択ポインタテーブルを設定して(A4201)、演出モード情報に対応する前半変動グループ選択ポインタを取得する(A4202)。次いで、前半変動グループ選択オフセットテーブルを設定して(A4203)、対象の特図保留数(特図1保留数又は特図2保留数)と停止図柄パターンに対応するオフセットデータを取得する(A4204)。
次に、遊技制御装置100は、前半変動グループ選択ポインタとオフセットデータを加算して(A4205)、加算して得た値を変動振分情報1領域にセーブする(A4206)。これにより変動振分情報1領域には、停止図柄の種類、保留数、及び演出モードに基づいて生成された変動振分情報1がセーブされる。この変動振分情報1は、前半変動(リーチ開始前までの変動態様)を振り分けるためのテーブルポインタであり、後に変動グループを選択するために用いられる。ただし、機種の仕様次第であるが、保留数が多い時に変動時間を短くするのははずれの場合のみであるため、はずれ以外の場合には、結果として保留数は前半変動の振り分けに影響しない。なお、変動グループとは複数の変動パターンが含まれたもので、変動パターンを決定する際には、まず変動グループを選択し、さらにこの変動グループの中から一の変動パターンを選択するようになっている。
次に、遊技制御装置100は、後半変動グループ選択ポインタテーブルを設定して(A4207)、演出モード情報に対応する後半変動グループ選択ポインタを取得する(A4208)。次いで、後半変動グループ選択オフセットテーブルを設定して(A4209)、対象の特図保留数と停止図柄パターンに対応するオフセットデータを取得する(A4210)。
次に、遊技制御装置100は、後半変動グループ選択ポインタとオフセットデータを加算して(A4211)、加算して得た値を変動振分情報2領域にセーブして(A4212)、特図情報設定処理を終了する。これにより変動振分情報2領域には、停止図柄の種類、保留数、及び演出モードに基づいて生成された変動振分情報2がセーブされる。この変動振分情報2は、後半変動(リーチの種類(リーチなしも含む。))を振り分けるためのテーブルポインタであり、後に変動グループを選択するために用いられる。ただし、はずれの場合のみ保留数に応じてリーチの発生率が変化する(保留数が多い時にリーチの発生率が低くなる)ため、はずれ以外の場合には、結果として保留数は後半変動の振り分けに影響しない。
〔変動パターン設定処理〕
次に、特図1変動開始処理及び特図2変動開始処理における変動パターン設定処理(A3406、A3506)の詳細について説明する。図37は、変動パターン設定処理の手順を示すフローチャートである。
変動パターンは、特図変動表示ゲームの開始からリーチ状態となるまでの変動態様である前半変動パターンと、リーチ状態となってから特図変動表示ゲームの終了までの変動態様である後半変動パターンとからなり、先に後半変動パターンを設定してから前半変動パターンを設定する。
遊技制御装置100は、まず、変動グループ選択アドレステーブルを設定し(A4301)、変動振分情報2に対応する後半変動グループテーブルのアドレスを取得し、準備して(A4302)、対象の変動パターン乱数1格納領域(保留数1用)から変動パターン乱数1をロードし、準備する(A4303)。本実施形態において、後半変動グループテーブルの構造は、当り用とはずれ用とで構造が異なる。具体的には、当り用は1バイトサイズ、はずれ用は2バイトサイズとなっている。はずれの発生率よりも当りの発生率が低く、1バイトでも足りるため、データ容量の節約の観点から、当り用は1バイトサイズになっている。したがって、当り時は、2バイトの変動パターン乱数1の下位の値だけを使用している。また、当りの発生率よりもはずれの発生率は高く、より多様な演出を出現させたいため、はずれ用は2バイトサイズになっている。
そして、遊技制御装置100は、特図変動表示ゲームの結果がはずれであるかを判定し(A4304)、はずれである場合(A4304の結果が「Y」)、2バイト振り分け処理(A4305)を行って、ステップA4307の処理に移行する。また、はずれでない場合(A4304の結果が「N」)、振り分け処理(A4306)を行って、ステップA4307の処理に移行する。
次に、遊技制御装置100は、振り分けられた結果得られた後半変動選択テーブル(後半変動パターン選択テーブル)のアドレスを取得し、準備して(A4307)、対象の変動パターン乱数2格納領域(保留数1用)から変動パターン乱数2をロードし、準備する(A4308)。そして、振り分け処理を実行し(A4309)、振り分けられた結果得られた後半変動番号を取得し、後半変動番号領域にセーブする(A4310)。この処理により、後半変動パターンが設定されることとなる。
次に、遊技制御装置100は、前半変動グループテーブルを設定し(A4311)、変動振分情報1と後半変動番号を基にテーブル選択ポインタを算出する(A4312)。そして、算出したポインタに対応する前半変動選択テーブル(前半変動パターン選択テーブル)のアドレスを取得し、準備して(A4313)、対象の変動パターン乱数3格納領域(保留数1用)から変動パターン乱数3をロードし、準備する(A4314)。その後、振り分け処理(A4315)を行い、振り分けられた結果得られた前半変動番号を取得し、前半変動番号領域にセーブして(A4316)、変動パターン設定処理を終了する。この処理により、前半変動パターンが設定され、特図変動表示ゲームの変動パターンが設定されることとなる。すなわち、遊技制御装置100が、ゲームの実行態様である変動パターンを複数のうちから設定する変動パターン設定手段をなす。
〔2バイト振り分け処理〕
次に、変動パターン設定処理における2バイト振り分け処理(A4305)の詳細について説明する。図38は、2バイト振り分け処理の手順を示すフローチャートである。2バイト振り分け処理は、変動パターン乱数1に基づいて後半変動グループテーブルから特図変動表示ゲームの後半変動選択テーブルを選択するための処理である。
遊技制御装置100は、まず、選択テーブル(A4302にて準備した後半変動グループテーブル)の先頭のデータが振り分けなしのコード(すなわち「0」)であるかをチェックする(A4401)。ここで、後半変動グループテーブルは、少なくとも一の後半変動選択テーブルと対応付けて所定の振り分け値を記憶しているが、後半変動パターンが「リーチなし」となる後半変動選択テーブルのみを規定する後半変動グループテーブル(例えば、結果がはずれの場合の一部の変動グループテーブル)にあっては、振り分けの必要がないため、振り分け値「0」、すなわち、振り分けなしのコードが先頭に規定されている。
そして、遊技制御装置100は、選択テーブル(後半変動グループテーブル)の先頭のデータが振り分けなしのコードである場合(A4402の結果が「Y」)は、振り分けた結果に対応するデータのアドレスに更新して(A4407)、2バイト振り分け処理を終了する。一方、選択テーブル(後半変動グループテーブル)の先頭のデータが振り分けなしのコードでない場合(A4402の結果が「N」)は、選択テーブル(後半変動グループテーブル)に最初に規定されている一の振り分け値を取得する(A4403)。
続けて、ステップA4303にて準備した乱数値(変動パターン乱数1の値)からステップA4403にて取得した振り分け値を減算して新たな乱数値を算出し(A4404)、当該算出した新たな乱数値が「0」よりも小さいかを判定する(A4405)。そして、新たな乱数値が「0」よりも小さくない場合(A4405の結果が「N」)は、次の振り分け値のアドレスに更新した後(A4406)、ステップA4403の処理に移行して、それ以降の処理を行う。すなわち、選択テーブル(後半変動グループテーブル)に次に規定されている振り分け値を取得し(A4403)、その後、前回のステップA4405にて判定済みの乱数値から振り分け値を減算することで新たな乱数値を算出して(A4404)、算出した新たな乱数値が「0」よりも小さいか否かを判定する(A4405)。
上記の処理をステップA4405にて新たな乱数値が「0」よりも小さいと判定(A4405の結果が「Y」)するまで実行する。これにより、選択テーブル(後半変動グループテーブル)に規定されている少なくとも一の後半変動選択テーブルの中から何れか一の後半変動選択テーブルが選択される。そして、ステップA4405にて、新たな乱数値が「0」よりも小さいと判定すると(A4405の結果が「Y」)、振り分けた結果に対応するデータのアドレスに更新して(A4407)、2バイト振り分け処理を終了する。
〔振り分け処理〕
次に、変動パターン設定処理における振り分け処理(A4306、A4309、A4315)の詳細について説明する。図39は、振り分け処理の手順を示すフローチャートである。振り分け処理は、変動パターン乱数2に基づいて、後半変動選択テーブル(後半変動パターングループ)から特図変動表示ゲームの後半変動パターンを選択したり、変動パターン乱数3に基づいて、前半変動選択テーブル(前半変動パターングループ)から特図変動表示ゲームの前半変動パターンを選択したりするための処理である。
遊技制御装置100は、まず、対象の選択テーブル(A4302にて準備した後半変動グループテーブル、ステップA4307にて準備した後半変動選択テーブル、又はステップA4313にて準備した前半変動選択テーブル)の先頭のデータが振り分けなしのコード(すなわち「0」)であるかをチェックする(A4501)。ここで、後半変動グループテーブル、後半変動選択テーブル、及び前半変動選択テーブルは、少なくとも一の後半変動選択テーブルや後半変動パターン(後半変動番号)や前半変動パターン(前半変動番号)と対応付けて所定の振り分け値を記憶しているが、振り分けの必要がない選択テーブルの場合、振り分け値「0」、すなわち、振り分けなしのコードが先頭に規定されている。
そして、遊技制御装置100は、対象の選択テーブル(後半変動グループテーブルや後半変動選択テーブルや前半変動選択テーブル)の先頭のデータが振り分けなしのコードである場合(A4502の結果が「Y」)、振り分けた結果に対応するデータのアドレスに更新して(A4507)、振り分け処理を終了する。一方、対象の選択テーブル(後半変動グループテーブルや後半変動選択テーブルや前半変動選択テーブル)の先頭のデータが振り分けなしのコードでない場合(A4502の結果が「N」)、対象の選択テーブル(後半変動グループテーブルや後半変動選択テーブルや前半変動選択テーブル)に最初に規定されている一の振り分け値を取得する(A4503)。
続けて、遊技制御装置100は、ステップA4303やA4308やA4314にて準備した乱数値(変動パターン乱数1や変動パターン乱数2や変動パターン乱数3の値)からステップA4503にて取得した振り分け値を減算して新たな乱数値を算出し(A4504)、当該算出した新たな乱数値が「0」よりも小さいかを判定する(A4505)。そして、新たな乱数値が「0」よりも小さくない場合(A4505の結果が「N」)は、次の振り分け値のアドレスに更新した後(A4506)、ステップA4503の処理に移行して、それ以降の処理を行う。
すなわち、対象の選択テーブル(後半変動グループテーブルや後半変動選択テーブルや前半変動選択テーブル)に次に規定されている振り分け値を取得し(A4503)、その後、前回のステップA4505にて判定済みの乱数値から振り分け値を減算することで新たな乱数値を算出して(A4504)、算出した新たな乱数値が「0」よりも小さいか否かを判定する(A4505)。上記の処理をステップA4505にて新たな乱数値が「0」よりも小さいと判定(A4505の結果が「Y」)するまで実行する。これにより、対象の選択テーブル(後半変動グループテーブルや後半変動選択テーブルや前半変動選択テーブル)に規定されている少なくとも一の後半変動選択テーブルや後半変動パターン(後半変動番号)や前半変動パターン(前半変動番号)の中から何れか一の後半変動選択テーブルや後半変動パターン(後半変動番号)や前半変動パターン(前半変動番号)が選択される。
そして、遊技制御装置100は、ステップA4505にて、新たな乱数値が「0」よりも小さいと判定すると(A4505の結果が「Y」)、振り分けた結果に対応するデータのアドレスに更新して(A4507)、振り分け処理を終了する。
〔変動開始情報設定処理〕
次に、特図1変動開始処理及び特図2変動開始処理における変動開始情報設定処理(A3407、A3507)の詳細について説明する。図40は、変動開始情報設定処理の手順を示すフローチャートである。
遊技制御装置100は、まず、対象の変動パターン乱数1〜3の乱数格納領域をクリアする(A4601)。次に、前半変動時間値テーブルを設定し(A4602)、前半変動番号に対応する前半変動時間値を取得する(A4603)。さらに、後半変動時間値テーブルを設定し(A4604)、後半変動番号に対応する後半変動時間値を取得する(A4605)。
そして、遊技制御装置100は、前半変動時間値と後半変動時間値を加算し(A4606)、加算値を特図ゲーム処理タイマ領域にセーブする(A4607)。その後、前半変動番号に対応する変動コマンド(MODE)を準備し(A4608)、後半変動番号に対応する変動コマンド(ACTION)を演出コマンドとして準備して(A4609)、演出コマンド設定処理を行う(A4610)。次に、変動図柄判別フラグに対応する特図保留数を−1更新して(A4611)、変動図柄判別フラグに対応する乱数格納領域のアドレスを設定する(A4612)。次いで、乱数格納領域をシフトし(A4613)、シフト後の空き領域をクリアして(A4614)、変動開始情報設定処理を終了する。
以上の処理により、特図変動表示ゲームの開始に関する情報が設定される。すなわち、遊技制御装置100が、始動記憶手段(遊技制御装置100)に記憶された各種の乱数値の判定を行う判定手段をなす。また、遊技制御装置100が、始動記憶の判定情報に基づいて、変動表示ゲームで実行する識別情報の変動パターンを決定することが可能な変動パターン決定手段をなす。
そして、これらの特図変動表示ゲームの開始に関する情報は後に演出制御装置300に送信され、演出制御装置300では、特図変動表示ゲームの開始に関する情報の受信に基づき、決定された変動パターンに応じて飾り特図変動表示ゲームでの詳細な演出内容を設定する。これらの特図変動表示ゲームの開始に関する情報としては、始動記憶数(保留数)に関する情報を含む飾り特図保留数コマンド、停止図柄に関する情報を含む飾り特図コマンド、特図変動表示ゲームの変動パターンに関する情報を含む変動コマンド、停止時間の延長に関する情報を含む停止情報コマンドが挙げられ、この順でコマンドが演出制御装置300に送信される。特に、飾り特図コマンドを変動コマンドよりも先に送信することで、演出制御装置300での処理を効率よく進めることができる。
〔特図変動中処理〕
次に、特図ゲーム処理における特図変動中処理(A2609)の詳細について説明する。図41は、特図変動中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、変動中の図柄に対応する図柄停止コマンド(特図1図柄停止コマンド又は特図2図柄停止コマンド)を演出コマンドとして準備し(A4701)、演出コマンド設定処理を実行する(A4702)。変動中の図柄は、変動図柄判別フラグ(特図1変動フラグ又は特図2変動フラグ)から判別できる。図柄停止コマンドを受信した演出制御装置300は、対応する飾り特図変動表示ゲーム(飾り特図1変動表示ゲーム又は飾り特図2変動表示ゲーム)を停止する。
次に、遊技制御装置100は、停止図柄パターンを示す停止図柄パターン番号に対応する表示時間を設定して(A4703)、設定した表示時間を特図ゲーム処理タイマ領域にセーブする(A4704)。本実施形態の場合、停止図柄パターンがはずれ図柄パターンである場合には表示時間として800msecを設定し、停止図柄パターンが大当り図柄パターンである場合には表示時間として2000msecを設定する。
次いで、遊技制御装置100は、特図表示中処理に係る処理番号「2」を設定し(A4705)、特図ゲーム処理番号領域に処理番号をセーブする(A4706)。
次に、遊技制御装置100は、特図1の変動終了に関する信号を試験信号出力データ領域にセーブし(A4707)、さらに、特図2の変動終了に関する信号を試験信号出力データ領域にセーブする(A4708)。
続いて、遊技制御装置100は、特図変動表示ゲームの実行回数に係る図柄確定回数信号を外部情報端子に出力する際に使用する図柄確定回数信号制御タイマ領域に制御タイマ初期値(例えば256msec)をセーブする(A4709)。
その後、遊技制御装置100は、特図1表示器51における特図1変動表示ゲームの制御用の情報として、特図1表示器51での変動停止に係る停止フラグを特図1変動制御フラグ領域にセーブする(A4710)。さらに、特図2表示器52における特図2変動表示ゲームの制御用の情報として、特図2表示器52での変動停止に係る停止フラグを特図2変動制御フラグ領域にセーブし(A4711)、特図変動中処理移行設定処理を終了する。
〔特図表示中処理〕
次に、特図ゲーム処理における特図表示中処理(A2610)の詳細について説明する。図42は、特図表示中処理の手順を示すフローチャートである。図42Aは、特図表示中処理の前半部分を示し、図42Bは、特図表示中処理の後半部分を示す。
遊技制御装置100は、まず、特図1変動開始処理における大当りフラグ1設定処理にて設定された小当りフラグをロードして(A5101)、RWMの小当りフラグ領域をクリアする(A5102)。続いて、特図1変動開始処理における大当りフラグ1設定処理にて設定された大当りフラグ1と、特図2変動開始処理における大当りフラグ2設定処理にて設定された大当りフラグ2と、をロードして(A5103)、RWMの大当りフラグ1領域及び大当りフラグ2領域をクリアする(A5104)。
そして、遊技制御装置100は、ロードされた大当りフラグ2が大当りか否かを判定して(A5105)、大当りである場合(A5105の結果が「Y」)、第2特図変動表示ゲームの大当り(特図2大当り)の開始に関する試験信号(例えば、条件装置作動中信号をオン、役物連続作動装置作動中信号をオン、特別図柄2当り信号をオン)をRWMの試験信号出力データ領域にセーブして(A5108)、ラウンド数上限値テーブルを設定する(A5109)。
一方、遊技制御装置100は、大当りフラグ2のチェックの結果、大当りでない場合(A5105の結果が「N」)、ロードされた大当りフラグ1が大当りか否かを判定して(A5106)、大当りである場合(A5106の結果が「Y」)、第1特図変動表示ゲームの大当り(特図1大当り)の開始に関する試験信号(例えば、条件装置作動中信号をオン、役物連続作動装置作動中信号をオン、特別図柄1当り信号をオン)をRWMの試験信号出力データ領域にセーブし(A5107)、ラウンド数上限値テーブルを設定する処理を実行する(A5109)。
その後、遊技制御装置100は、ラウンド数上限値情報に対応するラウンド数上限値(例えば、4、16)を取得し、RWMのラウンド数上限値領域にセーブする(A5110)。続けて、ラウンド数上限値情報に対応するラウンドLEDポインタを取得し、RWMのラウンドLEDポインタ領域にセーブする(A5111)。
次に、遊技制御装置100は、停止図柄パターンに対応した飾り特図コマンドをRWMの飾り特図コマンド領域からロードし、演出コマンドとして準備して(A5112)、演出コマンド設定処理を実行する(A5113)。その後、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報に係る確率情報コマンドを演出コマンドとして準備して(A5114)、演出コマンド設定処理を実行する(A5115)。続けて、ラウンド数上限値に対応するファンファーレコマンドを演出コマンドとして準備して(A5116)、演出コマンド設定処理を実行する(A5117)。
次に、遊技制御装置100は、停止図柄番号に対応する大入賞口開放情報と、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率の状態に対応する信号をRWMの外部情報出力データ領域にセーブする(A5118)。本実施形態において、大入賞口開放情報と確率の状態に対応する信号として、大当り2信号と大当り3信号をセーブする。なお、大当り2信号と大当り3信号のオン/オフは大入賞口開放情報と確率の状態とで決まる。例えば、大当り2信号は、出玉のある大当り(大入賞口開放情報が大入賞口開放情報1以外)である場合にはオン、出玉のない大当り(所謂、突確大当りなど。大入賞口開放情報が大入賞口開放情報1)である場合には、時短状態中での大当り時であればオン、それ以外ではオフとなる。また、大当り3信号は、出玉のある大当りである場合にはオン、出玉のない大当りである場合にはオフとなる。
その後、遊技制御装置100は、大入賞口開放情報と、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率の状態に対応する大当りファンファーレ時間(例えば5000msec、4700msec、7700msec又は300msec)を設定して(A5119)、設定した大当りファンファーレ時間を特図ゲーム処理タイマ領域にセーブする(A5120)。そして、特図ゲームモードフラグをロードし、ロードしたフラグを特図ゲームモードフラグ退避領域にセーブする(A5121)。これにより特別結果が発生した際における特図の確率状態、時短状態(普電サポート状態)の情報が記憶される。そして、後に記憶した情報に基づき特別遊技状態の終了後の演出モードが決定される。
そして、遊技制御装置100は、大入賞口開放情報に対応する大入賞口(特別変動入賞装置39)の大入賞口不正入賞数領域をクリアし(A5122)、大入賞口開放情報に対応する大入賞口の大入賞口不正監視期間フラグ領域に不正監視期間外フラグをセーブする(A5123)。その後、ファンファーレ/インターバル中処理移行設定処理1を実行し(A5124)、特図表示中処理を終了する。すなわち、遊技制御装置100が、第1特図変動表示ゲームと第2特図変動表示ゲームの何れかで結果が特別結果となることに基づき、特別変動入賞装置39を開状態に変換する特別遊技状態を発生する特別遊技状態発生手段をなす。
一方、遊技制御装置100は、大当りフラグ1が大当りでない場合(A5106の結果が「N」)、ロードした小当りフラグが小当りか否かを判定する(A5125)。小当りフラグが小当りである場合(A5125の結果が「Y」)、特図高確率状態における特図変動表示ゲームの実行回数を管理する高確率変動回数を更新する高確率変動回数更新処理を実行する(A5126)。続いて、演出モードの設定に関する演出モード情報チェック処理を実行して(A5127)、特図高確率中(特図変動表示ゲームの特別結果(大当り)の発生確率が高確率状態中)であるか否かを判定する(A5128)。
遊技制御装置100は、特図高確率中でない場合(A5128の結果が「N」)、飾り特図コマンド領域から飾り特図コマンドをロードし、演出コマンドとして準備して(A5129)、演出コマンド設定処理を実行する(A5130)。次いで、小当りファンファーレコマンドを演出コマンドとして準備し(A5131)、演出コマンド設定処理を実行し(A5132)、ステップA5133の処理に移行する。
また、遊技制御装置100は、特図高確率中である場合(A5128の結果が「Y」)、ステップA5133の処理に移行する。このように、本実施形態の遊技機10においては、特図高確率中(確変状態中)である場合には、小当りの発生で大入賞口は開くが、小当りの発生を遊技者に意識させないようにするために、表示装置41に表示される画面を変化させないようになっている。
そして、遊技制御装置100は、特図ゲームモードフラグをロードし、ロードしたフラグを特図ゲームモードフラグ退避領域にセーブする(A5133)。その後、小当りファンファーレ中処理移行設定処理1(A5134)を行い、特図表示中処理を終了する。
一方、遊技制御装置100は、小当りフラグが小当りでない場合(A5125の結果が「N」)、高確率変動回数更新処理(A5135)、演出モードの設定に関する演出モード情報チェック処理を実行する(A5136)。そして、演出モード番号に対応する切替準備残り回転数(切替準備残りゲーム数)を設定して(A5137)、演出残り回転数(演出残りゲーム数)と切替準備残り回転数とが一致するか否かを判定する(A5138)。なお、切替準備残り回転数は、複数の演出モードのうちの全ての演出モードにおいて異なる値(回転数)であってもよいし、複数の演出モードのうちの何れかの演出モードにおいて同一の値(回転数)であってもよいし、複数の演出モードのうちの全ての演出モードにおいて同一の値(回転数)であってもよい。
遊技制御装置100は、演出残り回転数と切替準備残り回転数とが一致しない場合(A5138の結果が「N」)、処理番号として特図普段処理に係る「0」を設定する(A5141)。
一方、遊技制御装置100は、演出残り回転数と切替準備残り回転数とが一致する場合(A5138の結果が「Y」)、演出モード切替準備コマンドを演出コマンドとして準備して(A5139)、演出コマンド設定処理(A5140)を行った後に、処理番号として特図普段処理に係る「0」を設定する(A5141)。演出モード切替準備コマンドは、演出モードが切り替わる数回転前(数ゲーム前)から先読み演出を行わないようにするためのコマンドであり、演出モード切替準備コマンドを演出制御装置300に送信することによって、モードをまたいで演出に矛盾等が生じないようにすることができる。
その後、特図ゲーム処理番号領域に処理番号をセーブして(A5142)、変動図柄判別フラグ領域をクリアし(A5143)、特図表示中処理を終了する。
〔高確率変動回数更新処理〕
次に、特図表示中処理における高確率変動回数更新処理(A5126、A5135)の詳細について説明する。図43は、高確率変動回数更新処理の手順を示すフローチャートである。
遊技制御装置100は、まず、特図高確率中(確変状態中)であるか否かを判定する(A5201)。特図高確率中でない場合(A5201の結果が「N」)、高確率変動回数更新処理を終了する。
遊技制御装置100は、特図高確率中である場合(A5201の結果が「Y」)、高確率変動回数を−1更新(1だけ減算)して(A5202)、高確率変動回数が0となったか否かを判定する(A5203)。高確率変動回数が0でない場合(A5203の結果が「N」)、すなわち、次の特図変動表示ゲームでも高確率状態が継続する場合には、高確率変動回数更新処理を終了する。
遊技制御装置100は、高確率変動回数が0となった場合(A5203の結果が「Y」)、すなわち、今回の特図変動表示ゲームで高確率状態が終了する場合には、高確率報知フラグ領域をクリアして(A5204)、高確率状態の終了に関する信号(例えば、大当り2信号をオフ)を外部情報出力データ領域にセーブする(A5205)。
次に、遊技制御装置100は、高確率状態と時短状態の終了に関する信号(例えば、特別図柄1高確率状態信号をオフ、特別図柄2高確率状態信号をオフ、特別図柄1変動時間短縮状態信号をオフ、特別図柄2変動時間短縮状態信号をオフ、普通図柄1高確率状態信号をオフ)を試験信号出力データ領域にセーブする(A5206)。なお、特図高確率中でも、普図は確率状態しか変化しないので、普通図柄1変動時間短縮状態信号及び普通電動役物1開放延長状態信号は常時オフされている。その後、遊技状態表示番号領域に時短なしの番号をセーブして(A5207)、普図ゲームモードフラグ領域に普図低確率フラグをセーブする(A5208)。
そして、遊技制御装置100は、特図ゲームモードフラグ領域に特図低確率&時短なしフラグをセーブする(A5209)。そして、左打ち指示に関する信号(例えば、発射位置指定信号1をオフ)を試験信号出力データ領域にセーブし(A5210)、第1遊技状態表示部57を消灯させるために遊技状態表示番号2領域に左打ち状態中の番号をセーブし(A5211)、高確率変動回数更新処理を終了する。
〔演出モード情報チェック処理〕
次に、特図表示中処理における演出モード情報チェック処理(A5127、A5136)の詳細について説明する。図44は、演出モード情報チェック処理の手順を示すフローチャートである。なお、演出モード情報チェック処理は、特図変動表示ゲームの結果が大当り以外(小当り又ははずれ)の場合に実行される。
遊技制御装置100は、まず、次モード移行情報が更新なしコードであるか否かを判定する(A5401)。次モード移行情報が更新なしコードである場合(A5401の結果が「Y」)は、演出モード情報チェック処理を終了する。この場合は、実行した特図変動表示ゲームの回数に応じた演出モードの変更が行われない場合であって、例えば高確率状態において次回の大当りまで継続する演出モードが選択されている場合である。
また、遊技制御装置100は、次モード移行情報が更新なしコードでない場合(A5401の結果が「N」)は、演出モードの変更までの特図変動表示ゲームの実行可能回数である演出残り回転数を−1更新し(A5402)、演出残り回転数が0となったか否かを判定する(A5403)。演出残り回転数が0となっていない場合(A5403の結果が「N」)には、演出モード情報チェック処理を終了する。また、演出残り回転数が0となった場合(A5403の結果が「Y」)、すなわち次の特図変動表示ゲームから演出モードを変更する場合は、演出モード情報アドレステーブルを設定し(A5404)、次モード移行情報に対応するテーブルのアドレスを取得する(A5405)。
そして、遊技制御装置100は、移行する演出モードの演出モード番号を取得し、RWM内の演出モード番号領域にセーブして(A5406)、移行する演出モードの演出残り回転数(初期値)を取得し、RWM内の演出残り回転数領域にセーブして(A5407)、移行する演出モードの次モード移行情報を取得し、RWM内の次モード移行情報領域にセーブする(A5408)。その後、新たに設定された演出モード番号に対応する確率情報コマンドを準備し(A5409)、準備した確率情報コマンドが停電復旧時送信コマンド領域の値と一致するか否かを判定する(A5410)。準備した確率情報コマンドが停電復旧時送信コマンド領域の値と一致する場合(A5410の結果が「Y」)、すなわち確率の状態が変化していない場合には、演出モード情報チェック処理を終了する。
また、準備した確率情報コマンドが停電復旧時送信コマンド領域の値と一致しない場合(A5410の結果が「N」)には、準備した確率情報コマンドを停電復旧時送信コマンド領域にセーブして(A5411)、演出コマンド設定処理を実行する(A5412)。
次いで、新しく設定された演出残り回転数に対応する演出回転数コマンドを演出コマンドとして準備して(A5413)、演出コマンド設定処理を実行する(A5414)。
次に、遊技制御装置100は、高確率変動回数に対応する高確率変動回数コマンドを演出コマンドとして準備して(A5415)、演出コマンド設定処理(A5416)を実行する。次いで、新たな演出モードは左打ちするモードであるか否かを判定し(A5417)、左打ちするモードでない場合(A5417の結果が「N」)には、演出モード情報チェック処理を終了する。また、左打ちするモードである場合(A5417の結果が「Y」)には、左打ち指示報知コマンドを演出コマンドとして準備し(A5418)、演出コマンド設定処理を実行して(A5419)、演出モード情報チェック処理を終了する。これにより、演出モードの切替の規定回転数前から切替を予告する演出を行うことが可能となる。このように遊技制御装置100で演出モードを管理するようにしたことで、例えば特定の演出モードでのみ特定のリーチを発生させる等の制御が可能となり、遊技の興趣を向上することができる。
〔ファンファーレ/インターバル中処理移行設定処理1〕
次に、特図表示中処理におけるファンファーレ/インターバル中処理移行設定処理1(A5124)の詳細について説明する。図45は、ファンファーレ/インターバル中処理移行設定処理1の手順を示すフローチャートである。
遊技制御装置100は、まず、ファンファーレ/インターバル中処理に係る処理番号である「3」を設定し(A5501)、特図ゲーム処理番号領域に処理番号をセーブする(A5502)。
次に、遊技制御装置100は、大当り(特別遊技状態)の開始に関する信号(例えば、大当り1信号をオン(大当り+小当りで出力)、大当り4信号をオン(大当りで出力))を外部情報出力データ領域にセーブし(A5503)、高確率状態と時短状態の終了に関する信号(例えば、特別図柄1高確率状態信号をオフ、特別図柄2高確率状態信号をオフ、特別図柄1変動時間短縮状態信号をオフ、特別図柄2変動時間短縮状態信号をオフ、普通図柄1高確率状態信号をオフ)を試験信号出力データ領域にセーブする(A5504)。なお、特図高確率中でも、普図は確率状態しか変化しないので、普通図柄1変動時間短縮状態信号及び普通電動役物1開放延長状態信号は常時オフされている。その後、特別遊技状態で実行したラウンド数を管理するためのラウンド数領域をクリアし(A5505)、遊技状態表示番号領域に時短なしの番号をセーブして(A5506)、普図ゲームモードフラグ領域に普図低確率フラグをセーブする(A5507)。
そして、遊技制御装置100は、変動図柄判別フラグ領域をクリアし(A5508)、高確率状態の表示に係る遊技盤30に設けた遊技状態表示LED(第3遊技状態表示部)59を消灯させるために高確率報知フラグ領域をクリアして(A5509)、特図ゲームモードフラグ領域に特図低確率&時短なしフラグをセーブする(A5510)。次に、停電復旧時に演出制御装置300に出力されるコマンドをセーブする停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブし(A5511)、高確率状態で実行可能な特図変動表示ゲームの回数を管理するための高確率変動回数領域をクリアする(A5512)。これにより高確率状態及び時短状態(普電サポート状態)が終了する。
その後、遊技制御装置100は、演出モード番号領域に演出モード1の番号をセーブし(A5513)、演出残り回転数領域をクリアして(A5514)、次モード移行情報領域に更新なしコードをセーブする(A5515)。そして、右打ち指示に関する信号(例えば、発射位置指定信号1をオン)を試験信号出力データ領域にセーブし(A5516)、右打ち中の表示LED(第1遊技状態表示部57)を点灯させるため、遊技状態表示番号2領域に右打ち状態中の番号をセーブして(A5517)、ファンファーレ/インターバル中処理移行設定処理1を終了する。これにより、特別遊技状態(大当り状態)の発生に伴い演出モードの情報が一旦クリアされることとなる。
〔小当りファンファーレ中処理移行設定処理1〕
次に、特図表示中処理における小当りファンファーレ中処理移行設定処理1(A5134)の詳細について説明する。図46は、小当りファンファーレ中処理移行設定処理1の手順を示すフローチャートである。
遊技制御装置100は、まず、処理番号として小当りファンファーレ中処理にかかる「7」を設定して(A5601)、当該処理番号を特図ゲーム処理番号領域にセーブする(A5602)。
次に、遊技制御装置100は、小当りファンファーレ時間(例えば0.3秒)を特図ゲーム処理タイマ領域にセーブし(A5603)、小当り遊技の開始に関する信号(例えば、大当り1信号をオン(大当り+小当りで出力))を外部情報出力データ領域にセーブして(A5604)、小当り遊技の開始に関する信号(例えば、特別図柄1小当り信号をオン)を試験信号出力データ領域にセーブする(A5605)。
次いで、遊技制御装置100は、大入賞口不正入賞数領域をクリアして(A5606)、大入賞口不正監視期間フラグ領域に不正監視期間外フラグをセーブする(A5607)。次いで、右打ち指示に関する信号(発射位置指定信号1をオン)を試験信号出力データ領域にセーブし(A5608)、右打ち中の表示LED(第1遊技状態表示部57)を点灯させるため、遊技状態表示番号2領域に右打ち状態中の番号をセーブして(A5609)、小当りファンファーレ中処理移行設定処理1を終了する。
〔ファンファーレ/インターバル中処理〕
次に、特図ゲーム処理におけるファンファーレ/インターバル中処理(A2611)の詳細について説明する。図47は、ファンファーレ/インターバル中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、特別遊技状態のラウンド数(R)を+1更新し(A5701)、特別遊技状態(大当り状態)のラウンド数に対応するラウンドコマンドを演出コマンドとして準備して(A5702)、演出コマンド設定処理(A5703)を行う。
その後、遊技制御装置100は、大入賞口動作判定テーブルを設定し(A5704)、停止図柄番号に対応する大入賞口開放情報に応じた開放切替判定値を取得する(A5705)。そして、特別遊技状態のラウンド数が、取得した開放切替判定値よりも大きいか否かを判定する(A5706)。ラウンド数が開放切替判定値よりも大きい場合(A5706の結果が「Y」)、短開放用の大入賞口開放時間(例えば0.2秒)を特図ゲーム処理タイマ領域にセーブし(A5707)、ラウンド数が開放切替判定値以下の場合(A5706の結果が「N」)、長開放用の大入賞口開放時間(例えば29秒)を特図ゲーム処理タイマ領域にセーブする(A5708)。
その後、遊技制御装置100は、処理番号を大入賞口開放中処理にかかる「4」に設定し(A5709)、処理番号を特図ゲーム処理番号領域にセーブする(A5710)。その後、大入賞口の開放開始に関する信号(例えば、特別電動役物1作動中信号をON)を試験信号出力データ領域にセーブして(A5711)、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアする(A5712)。そして、大入賞口ソレノイド出力データ領域にオンデータをセーブして(A5713)、ファンファーレ/インターバル中処理を終了する。
なお、本実施形態においては、大当りパターンを示す大入賞口開放情報として、大入賞口開放情報1(4R:全て短開放)、大入賞口開放情報2(16R:全て長開放)、大入賞口開放情報3(16R:1〜4Rは長開放、5〜16Rは短開放)、大入賞口開放情報4(4R:全て長開放)、大入賞口開放情報5(16R:全て長開放)、大入賞口開放情報6(16R:1〜8Rは長開放、9〜16Rは短開放)、大入賞口開放情報7(16R:1〜4Rは長開放、5〜16Rは短開放)が設定されている。
従って、大入賞口動作判定テーブルには、大入賞口開放情報1データと開放切替判定値「0」とが、大入賞口開放情報2データと開放切替判定値「16」とが、大入賞口開放情報3データと開放切替判定値「4」とが、大入賞口開放情報4データと開放切替判定値「4」とが、大入賞口開放情報5データと開放切替判定値「16」とが、大入賞口開放情報6データと開放切替判定値「8」とが、大入賞口開放情報7データと開放切替判定値「4」とが対応付けて記憶されている。そして、ラウンド数が開放切替判定値以下である間は長開放、ラウンド数が開放切替判定値を上回ると短開放となる開放動作を行うようになっている。
〔大入賞口開放中処理〕
次に、特図ゲーム処理における大入賞口開放中処理(A2612)の詳細について説明する。図48は、本実施形態の大入賞口開放中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるかを判定する(A5901)。そして、最終ラウンドでない場合(A5901の結果が「N」)、大入賞口動作判定テーブルを設定し(A5902)、大入賞口開放情報に対応する開放切替判定値を取得して(A5903)、特別遊技状態のラウンド数が、取得した開放切替判定値よりも大きいか否かを判定する(A5904)。
遊技制御装置100は、ラウンド数が開放切替判定値よりも大きい場合(A5904の結果が「Y」)には、短閉鎖用の残存球処理時間(例えば1.4秒)を特図ゲーム処理タイマ領域にセーブし(A5905)、ラウンド間のインターバルに係るインターバルコマンドを演出コマンドとして準備して(A5907)、演出コマンド設定処理を実行する(A5910)。
遊技制御装置100は、ラウンド数が開放切替判定値以下の場合(A5904の結果が「N」)には、長閉鎖用の残存球処理時間(例えば1.9秒)を特図ゲーム処理タイマ領域にセーブし(A5906)、インターバルコマンドを演出コマンドとして準備して(A5907)、演出コマンド設定処理を実行する(A5910)。
遊技制御装置100は、最終ラウンドである場合(A5901の結果が「Y」)、残存球処理時間(最終用)(例えば1.9秒)を特図ゲーム処理タイマ領域にセーブし(A5908)、特別遊技状態の終了の際におけるエンディング表示画面の表示制御等に係るエンディングコマンドを演出コマンドとして準備して(A5909)、演出コマンド設定処理を実行する(A5910)。
その後、遊技制御装置100は、処理番号を大入賞口残存球処理に係る「5」に設定し(A5911)、処理番号を特図ゲーム処理番号領域にセーブする(A5912)。その後、大入賞口ソレノイド39bをオフさせるためのオフデータを大入賞口ソレノイド出力データ領域にセーブし(A5913)、大入賞口開放中処理を終了する。
〔大入賞口残存球処理〕
次に、特図ゲーム処理における大入賞口残存球処理(A2613)の詳細について説明する。図49は、大入賞口残存球処理の手順を示すフローチャートである。
遊技制御装置100は、まず、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるかを判定する(A6101)。
そして、遊技制御装置100は、特別遊技状態における現在のラウンドが最終ラウンドでない場合(A6101の結果が「N」)、大入賞口動作判定テーブルを設定し(A6102)、大入賞口開放情報に対応する開放切替判定値を取得して(A6103)、通常用のインターバル時間(例えば0.1秒)を設定する(A6104)。
次に、遊技制御装置100は、特別遊技状態のラウンド数が、取得した開放切替判定値よりも大きいか否かを判定し(A6105)、ラウンド数が開放切替判定値よりも大きい場合(A6105の結果が「Y」)、ステップA6109の処理に移行する。また、ラウンド数が開放切替判定値以下の場合(A6105の結果が「N」)、大入賞口開放情報がランクダウン演出系の値であるか否かを判定する(ステップA6106)。
ここで、ランクダウン演出とは、大当りラウンドが継続するか否かを報知するラウンド継続報知演出を実行し、該ラウンド継続報知演出において大当りラウンドが継続されないことを報知する演出が該当する。具体的には、大当りパターンを示す大入賞口開放情報が、大入賞口開放情報2(16R:全て長開放)と大入賞口開放情報3(16R:1〜4Rは長開放、5〜16Rは短開放)との何れかが選択された場合に、大当りラウンドの1R〜3Rまで表示装置41の表示画面に所定の大当りラウンド演出を表示し、4R目でラウンド継続報知演出を実行する。大入賞口開放情報が大入賞口開放情報2であれば、ラウンド継続報知演出においてラウンド継続が報知され、5R目以降のラウンドにおいても大入賞口が長開放で開放され、大入賞口開放情報が大入賞口開放情報3であれば、ラウンド継続報知演出においてラウンド非継続が報知され、5R目以降のラウンドにおいて大入賞口が短開放で開放されることとなる。
遊技制御装置100は、大入賞口開放情報がランクダウン演出系の値でない場合(A6106の結果が「N」)、ステップA6109の処理に移行する。また、大入賞口開放情報がランクダウン演出系の値である場合(A6106の結果が「Y」)、ラウンド数が特殊演出ラウンドの値(例えば、4R)であるかを判定する(A6107)。ラウンド数が特殊演出ラウンドの値でない場合(A6107の結果が「N」)は、ステップA6109の処理に移行する。
また、遊技制御装置100は、ラウンド数が特殊演出ラウンドの値である場合(A6107の結果が「Y」)、例えばラウンド数が4Rである場合は、ランクダウン演出用のインターバル時間(例えば3.6秒)を設定して(A6108)、ステップA6109の処理に移行する。なお、特殊ラウンド数は1種類に限らず、例えば4Rと8Rというように複数種類設けても良い。
そして、遊技制御装置100は、ステップA6104又はA6108にて設定したインターバル時間を特図ゲーム処理タイマ領域にセーブし(ステップA6109)、ファンファーレ/インターバル中処理に係る処理番号である「3」を設定する(A6110)。次に、特図ゲーム処理番号領域に処理番号をセーブし(A6111)、大入賞口(特別変動入賞装置39)の開放終了に関する信号(例えば、特別電動役物1作動中信号をオフ)を試験信号出力データ領域にセーブし(A6122)、大入賞口残存球処理を終了する。
一方、遊技制御装置100は、特別遊技状態における現在のラウンドが最終ラウンドである場合(A6101の結果が「Y」)、特別結果が導出された際の演出モードを記憶する特図ゲームモードフラグ退避領域からフラグをロードし(A6112)、ロードしたフラグと大入賞口開放情報と停止図柄パターンとに対応するエンディング時間を設定して(A6113)、設定したエンディング時間(例えば1.9秒)を特図ゲーム処理タイマ領域にセーブする(A6114)。
その後、遊技制御装置100は、大当り終了処理に係る処理番号として「6」を設定し(A6115)、処理番号を特図ゲーム処理番号領域にセーブする(A6116)。その後、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアし(A6117)、特別遊技状態のラウンド数を記憶するラウンド数領域の情報をクリアして(A6118)、特別遊技状態のラウンド数の上限値を記憶するラウンド数上限値領域の情報をクリアする(A6119)。
そして、遊技制御装置100は、ラウンド数の上限値判定用のフラグを記憶するラウンド数上限値情報領域の情報をクリアし(A6120)、大入賞口の開放情報判定用のフラグを記憶する大入賞口開放情報領域の情報をクリアして(A6121)、大入賞口(特別変動入賞装置39)の開放終了に関する信号(例えば、特別電動役物1作動中信号をオフ)を試験信号出力データ領域にセーブし(A6122)、大入賞口残存球処理を終了する。
〔大当り終了処理〕
次に、特図ゲーム処理における大当り終了処理(A2614)の詳細について説明する。図50は、大当り終了処理の手順を示すフローチャートである。
遊技制御装置100は、まず、時間短縮判定データが、時短作動データあるか否かを判定する(A6201)。時短作動データでない場合(A6201の結果が「N」)は、大当り終了設定処理1を実行し(A6202)、時短作動データである場合(A6201の結果が「Y」)は、大当り終了設定処理2を実行する(A6203)。
次に、遊技制御装置100は、演出モード情報アドレステーブルを設定し(A6204)、変動開始時の停止図柄設定処理(特にA4009、A4109)で設定した演出モード移行情報に対応するテーブルのアドレスを取得し(A6205)、特別遊技状態(大当り状態)の終了後に設定される演出モードの演出モード番号(演出モードの番号)を取得してセーブする(A6206)。
次に、遊技制御装置100は、特別遊技状態の終了後に設定される演出モードの演出残り回転数(初期値)を取得してセーブし(A6207)、特別遊技状態の終了後に設定される演出モードの次モード移行情報を取得してセーブする(A6208)。
続いて、遊技制御装置100は、新たに設定された演出モード番号に対応する確率情報コマンドを準備し(A6209)、準備した確率情報コマンドを停電復旧時送信コマンド領域に演出コマンドとしてセーブし(A6210)、演出コマンド設定処理を実行する(A6211)。
ここで、確率情報コマンドには、特別遊技状態(大当り状態)の終了後における確率状態、時短(普電サポート)の有無、演出モードの情報が含まれる。確率情報コマンドとして、「高確率・時短あり」、「高確率・時短なし」の何れかに、更に演出モードの情報が含まれた複数のコマンドがある。本実施形態では、大当りが終了すると必ず確変状態になる(所謂ST状態に必ずなる)ので、確率情報コマンドとして、「高確率・時短あり・演出モードA」、「高確率・時短あり・演出モードB」、「高確率・時短あり・演出モードC」、「高確率・時短なし・演出モードA」がある。なお、この処理では使われないが、他に「低確率・時短なし・演出モードA」、「低確率・時短なし・演出モードB」、「低確率・時短なし・演出モードC」がある。
次に、遊技制御装置100は、演出残り回転数に対応する演出回転数コマンドを演出コマンドとして準備し(A6212)、演出コマンド設定処理を実行する(A6213)。そして、高確率変動回数に対応する高確率変動回数コマンドを演出コマンドとして準備し(A6214)、演出コマンド設定処理を実行する(A6215)。
次に、遊技制御装置100は、大当り終了後に時短(普電サポート)があるか否かを判定する(A6216)。時短(普電サポート)がある場合(A6216の結果が「Y」)、ステップA6219の処理に移行する。時短(普電サポート)がない場合(A6216の結果が「N」)、左打ち指示報知コマンドを演出コマンドとして準備し(A6217)、演出コマンド設定処理を実行し(A6218)、ステップA6219の処理に移行する。
次に、遊技制御装置100は、特図普段処理移行設定処理2を実行し(A6219)、大当り終了処理を終了する。
〔大当り終了設定処理1〕
次に、大当り終了処理における大当り終了設定処理1(A6202)の詳細について説明する。図51は、大当り終了設定処理1の手順を示すフローチャートである。
遊技制御装置100は、まず、時短状態なしに関する信号(例えば、大当り2信号をオフ)を外部情報出力データ領域にセーブして(A6301)、高確率状態と時短状態なしの開始に関する信号(例えば、特別図柄1高確率状態信号をオン、特別図柄2高確率状態信号をオン、特別図柄1変動時間短縮状態信号をオフ、特別図柄2変動時間短縮状態信号をオフ、普通図柄1高確率状態信号をオフ)を試験信号出力データ領域にセーブする(A6302)。
次に、遊技状態表示番号領域に時短状態なしの番号をセーブし(A6303)、普図ゲームモードフラグ領域に普図低確率フラグをセーブして(A6304)、特図ゲームモードフラグ領域に特図高確率&時短なしフラグをセーブする(A6305)。その後、高確率変動回数領域に初期値(例えば100回)をセーブし(A6306)、左打ち指示に関する信号(例えば、発射位置指定信号1をオフ)を試験信号出力データ領域にセーブし(A6307)、右打ち中の表示LED(第1遊技状態表示部57)を消灯させるため、遊技状態表示番号2領域に左打ち状態中の番号をセーブして(A6308)、大当り終了設定処理1を終了する。
〔大当り終了設定処理2〕
次に、大当り終了処理における大当り終了設定処理2(A6203)の詳細について説明する。図52は、大当り終了設定処理2の手順を示すフローチャートである。
遊技制御装置100は、まず、時短状態の開始に関する信号(例えば、大当り2信号をオン)を外部情報出力データ領域にセーブする(A6401)。時短状態の開始に関する信号は、大当り中から出力されているので継続する形で、外部情報出力データ領域にセーブされる。次いで、高確率状態と時短状態の開始に関する信号(例えば、特別図柄1高確率状態信号をオン、特別図柄2高確率状態信号をオン、特別図柄1変動時間短縮状態信号をオン、特別図柄2変動時間短縮状態信号をオン、普通図柄1高確率状態信号をオン)を試験信号出力データ領域にセーブする(A6402)。
次に、遊技状態表示番号領域に時短状態ありの番号をセーブし(A6403)、普図ゲームモードフラグ領域に普図高確率フラグをセーブして(A6404)、特図ゲームモードフラグ領域に特図高確率&時短ありフラグをセーブする(A6405)。その後、高確率変動回数領域に初期値(例えば100回)をセーブして(A6406)、大当り終了設定処理2を終了する。なお、本実施形態の場合、時短状態中は右打ちモードであるが、大当り中から右打ちモードが設定されているので、大当り終了設定処理2では右打ちに関する設定を行わない。
〔特図普段処理移行設定処理2〕
図53は、特図普段処理移行設定処理2の手順を示すフローチャートである。特図普段処理移行設定処理2は、図50に示した大当り終了処理におけるステップA6219にて実行される。
遊技制御装置100は、まず、特図普段処理に係る処理番号として「0」を設定し(A6501)、処理番号を特図ゲーム処理番号領域にセーブする(A6502)。
その後、遊技制御装置100は、大当りの終了に関する信号(例えば、大当り1信号をオフ、大当り3信号をオフ、大当り4信号をオフ)を外部情報出力データ領域にセーブして(A6503)、大当りの終了に関する信号(例えば、条件装置作動中信号をオフ、役物連続作動装置作動中信号をオフ、特別図柄1当り信号をオフ、特別図柄2当り信号をオフ)を試験信号出力データ領域にセーブする(A6504)。
続いて、遊技制御装置100は、時間短縮判定フラグ領域の情報をクリアし(A6505)、大当りのラウンド回数を示すラウンドLEDのポインタ領域の情報をクリアして(A6506)、演出モード移行情報領域の情報をクリアする(A6507)。そして、特図ゲームモードフラグ退避領域の情報をクリアし(A6508)、大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブする(A6509)。
次に、遊技制御装置100は、RWMの排出球数領域を0クリアし(A6510)、排出球数の「00」表示のセグメントデータを排出球数表示部66のセグメントに対応するセグメント領域にセーブする(A6511)。これにより、出力処理(図11のA1610)を介して、大当り終了の際に排出球数表示部66において排出球数を「00」と表示することができる。
また、遊技制御装置100は、RWMの獲得球数領域を0クリアし(A6512)、セグメントカラーナンバー領域の値を初期値(例えば赤に対応)に設定し(A6513)、出玉率の「00」表示のセグメントデータをカラーナンバーに対応するセグメント領域(例えば赤表示領域)にセーブする(A6514)。なお、カラーナンバーに対応しないセグメント領域(例えば緑表示領域)は0クリアする。これにより、出力処理(図11のA1610)を介して、大当り終了の際に出玉率表示部67において出玉率を「00」と表示することができる。その後、特図普段処理移行設定処理2を終了する。
なお、大当り状態(特別遊技状態)中では、排出球数100個当りの賞球数の合計である獲得球数(即ち出玉率)が非常に大きくなっている。このため、大当り状態終了の際に、排出球数領域(ひいては排出球数)と獲得球数領域(ひいては出玉率)を0クリアして、再度、獲得球数(即ち出玉率)の正確な計測を開始するようにしている。また、大当り状態終了の際に、排出球数表示と出玉率表示は、リセットされ「00」表示となる。しかし、役物比率は、遊技機10の電源投入から継続して計測した方が正確であるため、大当り状態終了後も役物別獲得球数領域(ひいては役物比率)は0クリアしない。そして、役物比率表示は、リセットされず大当りの前後で継続して表示される。
以上のように、ステップA6510〜A6514の処理は、大当り終了の際(大当り終了時)に、排出球数、出玉率(賞球数の合計)、排出球数表示、及び、出玉率表示をリセットして初期値(ここでは0又は「00」)に設定するリセット手段を構成する。
〔小当りファンファーレ中処理〕
次に、特図ゲーム処理における小当りファンファーレ中処理(A2615)の詳細について説明する。図54は、小当りファンファーレ中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、処理番号として小当り中処理にかかる「8」を設定して(A6701)、当該処理番号を特図ゲーム処理番号領域にセーブする(A6702)。
次いで、遊技制御装置100は、小当り遊技における大入賞口の開放時間(例えば0.2秒)を特図ゲーム処理タイマ領域にセーブして(A6703)、小当り動作の開始に関する信号(例えば、特別電動役物1作動中信号をオン)を試験信号出力データ領域にセーブする(A6704)。次いで、特別変動入賞装置39の開閉扉39cを開放するために、大入賞口ソレノイド39bをオンさせるためのオンデータを大入賞口ソレノイド出力データ領域にセーブする(A6705)。
その後、遊技制御装置100は、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアし(A6706)、小当り中制御ポインタ領域に小当り動作初期値(例えば「0」)をセーブして(A6707)、小当りファンファーレ中処理を終了する。
〔小当り中処理〕
次に、特図ゲーム処理における小当り中処理(A2616)の詳細について説明する。図55は、小当り中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、小当り中制御ポインタの値をロードして(A6801)、ロードした値が小当り動作終了値(例えば「6」)以上であるか否かを判定する(A6802)。ロードした値が小当り動作終了値以上でない場合(A6802の結果が「N」)、小当り中制御ポインタを+1更新し(A6803)、小当り動作移行設定処理を実行して(A6804)、小当り中処理を終了する。
一方、遊技制御装置100は、ロードした値が小当り動作終了値以上である場合(A6802の結果が「Y」)には、特図ゲームモードフラグ退避領域からフラグをロードし(A6805)、ロードしたフラグが特図高確率中に関するフラグであるか否かを判定する(A6806)。これにより、特図高確率中での小当りか否かを判定する。なお、ここでは、時短状態中であるか否かは問わない。
遊技制御装置100は、ロードしたフラグが特図高確率中に関するフラグである場合(A6806の結果が「Y」)、処理番号として小当り残存球処理にかかる「9」を設定する(A6809)。また、ロードしたフラグが特図高確率中に関するフラグでない場合(A6806の結果が「N」)、小当り終了画面のコマンドを演出コマンドとして準備し(A6807)、演出コマンド設定処理を実行して(A6808)、処理番号として小当り残存球処理にかかる「9」を設定する(A6809)。
その後、遊技制御装置100は、当該処理番号を特図ゲーム処理番号領域にセーブする(A6810)。次いで、小当り残存球処理時間(例えば1.9秒)を特図ゲーム処理タイマ領域にセーブし(A6811)、大入賞口ソレノイド出力データ領域にオフデータをセーブして(A6812)、小当り中処理を終了する。
〔小当り動作移行設定処理〕
次に、小当り中処理における小当り動作移行設定処理(A6804)の詳細について説明する。図56は、小当り動作移行設定処理の手順を示すフローチャートである。
遊技制御装置100は、まず、制御ポインタ(小当り中制御ポインタ)に応じて分岐処理を実行する(A6901)。制御ポインタが0、2、4の場合は、制御ポインタに対応するウェイト時間(例えば1500msec)を特図ゲーム処理タイマ領域にセーブし(A6902)、大入賞口ソレノイド出力データ領域にオフデータをセーブして(A6903)、小当り動作移行設定処理を終了する。
一方、遊技制御装置100は、制御ポインタが1、3、5の場合は、制御ポインタに対応する大入賞口開放時間(例えば200msec)を特図ゲーム処理タイマ領域にセーブし(A6904)、大入賞口ソレノイド出力データ領域にオンデータをセーブして(A6905)、小当り動作移行設定処理を終了する。
ここで、本実施形態の場合、300msecの小当りファンファーレ時間の後に、200msecの開放と1500msecの閉鎖とを交互に行い、開放の終了時及び閉鎖の終了時に小当り中制御ポインタが順次更新される。具体的には、1回目の200msec開放の終了時(すなわち、1回目の200msec開放から1回目の1500msec閉鎖への切り替わり時)に小当り中制御ポインタが0に更新され、1回目の1500msec閉鎖の終了時(すなわち、1回目の1500msec閉鎖から2回目の200msec開放への切り替わり時)に小当り中制御ポインタが1に更新され、2回目の200msec開放の終了時に小当り中制御ポインタが2に更新され、2回目の1500msec閉鎖の終了時に小当り中制御ポインタが3に更新され、3回目の200msec開放の終了時に小当り中制御ポインタが4に更新され、3回目の1500msec閉鎖の終了時に小当り中制御ポインタが5に更新される。そして、4回目の200msec開放の終了時に小当り中制御ポインタが6に更新され、1900msecの小当り残存球時間と、その後の100msecの小当りエンディング時間との経過後に、小当り状態が終了する。したがって、4回目の200msec開放の後に、2000msec間閉鎖されるので、見た目のエンディング時間は2000msecとなる。
〔小当り残存球処理〕
次に、特図ゲーム処理における小当り残存球処理(A2617)の詳細について説明する。図57は、小当り残存球処理の手順を示すフローチャートである。
遊技制御装置100は、まず、処理番号として小当り終了処理にかかる「10」を設定して(A7201)、当該処理番号を特図ゲーム処理番号領域にセーブする(A7202)。
次に、遊技制御装置100は、小当りエンディング時間(例えば0.1秒)を特図ゲーム処理タイマ領域にセーブして(A7203)、小当り動作の終了に関する信号(例えば、特別電動役物1作動中信号をオフ)を試験信号出力データ領域にセーブする(A7204)。次いで、大入賞口カウント数領域の情報をクリアし(A7205)、小当り中制御ポインタ領域の情報をクリア(例えば0クリア)して(A7206)、小当り残存球処理を終了する。
〔小当り終了処理〕
次に、特図ゲーム処理における小当り終了処理(A2618)の詳細について説明する。図58は、小当り終了処理の手順を示すフローチャートである。
遊技制御装置100は、まず、特図ゲームモードフラグ退避領域からフラグをロードし(A7301)、ロードしたフラグが特図高確率中に関するフラグであるかを判定する(A7302)。ロードしたフラグが特図高確率中に関するフラグでない場合(A7302の結果が「N」)は、演出モード情報アドレステーブルを設定して(A7303)、変動開始時(停止図柄設定時)に設定された演出モード移行情報に対応するテーブルのアドレスを取得する(A7304)。
そして、遊技制御装置100は、移行する演出モードの演出モード番号を取得し、RWM内の演出モード番号領域にセーブして(A7305)、移行する演出モードの演出残り回転数を取得し、RAM内の演出残り回転数領域にセーブして(A7306)、移行する演出モードの次モード移行情報を取得し、RWM内の次モード移行情報領域にセーブする(A7307)。その後、演出モード番号に対応する確率情報コマンドを準備し(A7308)、準備した確率情報コマンドが停電復旧時送信コマンド領域の値と一致するかを判定する(A7309)。準備した確率情報コマンドが停電復旧時送信コマンド領域の値と一致する場合(A7309の結果が「Y」)は、ステップA7319の処理に移行する。
また、遊技制御装置100は、準備した確率情報コマンドが停電復旧時送信コマンド領域の値と一致しない場合(A7309の結果が「N」)には、準備した確率情報コマンドを停電復旧時送信コマンド領域にセーブして(A7310)、演出コマンド設定処理を実行する(A7311)。次に、演出残り回転数に対応する演出回転数コマンドを演出コマンドとして準備して(A7312)、演出コマンド設定処理を実行する(A7313)。さらに、高確率変動回数に対応する高確率変動回数コマンドを演出コマンドとして準備して(A7314)、演出コマンド設定処理を実行する(A7315)。
次に、遊技制御装置100は、新たな演出モードは左打ちするモードであるかを判定し(A7316)、左打ちするモードでない場合(A7316の結果が「N」)、ステップA7319の処理に移行する。また、左打ちするモードである場合(A7316の結果が「Y」)には、左打ち指示報知コマンドを演出コマンドとして準備して(A7317)、演出コマンド設定処理(A7318)を行った後に、ステップA7319の処理に移行する。
そして、遊技制御装置100は、特図ゲームモードフラグ退避領域からフラグをロードし(A7319)、ロードしたフラグが特図時短中(時短状態中)に関するフラグであるかを判定する(A7320)。ロードしたフラグが特図時短中に関するフラグである場合(A7320の結果が「Y」)には、ステップA7323の処理に移行する。また、ロードしたフラグが特図時短中に関するフラグでない場合(A7320の結果が「N」)、左打ち指示に関する信号(例えば、発射位置指定信号1をオフ)を試験信号出力データ領域にセーブし(A7321)、右打ち中の表示LED(第1遊技状態表示部57)を消灯させるため、遊技状態表示番号2領域に左打ち状態中の番号をセーブして(A7322)、ステップA7323の処理に移行する。
次に、遊技制御装置100は、処理番号として特図普段処理にかかる「0」を設定して(A7323)、当該処理番号を特図ゲーム処理番号領域にセーブする(A7324)。小当りの終了に関する信号(例えば、大当り1信号をオフ)を外部情報出力データ領域にセーブして(A7325)、小当りの終了に関する信号(例えば、特別図柄1小当り信号をオフ)を試験信号出力データ領域にセーブする(A7326)。
次に、遊技制御装置100は、変動図柄判別フラグ領域の情報をクリアし(A7327)、演出モード移行情報領域の情報をクリアして(A7328)、特図ゲームモードフラグ退避領域の情報をクリアする(A7329)。そして、大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブして(A7330)、小当り終了処理を終了する。
〔演出コマンド設定処理〕
図59は、演出制御装置300に送信する演出コマンドを設定するための演出コマンド設定処理の手順を示すフローチャートである。この演出コマンド設定処理は、タイマ割込み処理中に実行される処理における演出コマンド設定処理に共通する処理である。
遊技制御装置100は、まず、演出用シリアル送信バッファのステータスを読み込む(A7401)。さらに、送信バッファが満杯か否かを判定する(A7402)。
また、遊技制御装置100は、送信バッファが満杯でない場合には(A7402の結果が「N」)、コマンドデータ(MODE(上位バイト))をシリアル送信バッファに書き込む(A7403)。
遊技制御装置100は、送信バッファが満杯である場合には(A7402の結果が「Y」)、ステップA7401の処理に戻る。
さらに、遊技制御装置100は、演出用シリアル送信バッファのステータスを読み込み(A7404)、送信バッファが満杯か否かを判定する(A7405)。送信バッファが満杯である場合には(A7405の結果が「Y」)、ステップA7404の処理に戻る。
また、遊技制御装置100は、送信バッファが満杯でない場合には(A7405の結果が「N」)、コマンドデータ(ACTION(下位バイト))をシリアル送信バッファに書き込んだ後(A7406)、演出コマンド設定処理を終了する。
以上のように、演出制御装置300に対してはシリアル通信で演出コマンドを送信するようにしたことで、遊技制御装置100の負担を軽減できるとともに、演出コマンドの解析を困難にすることができる。また、コマンドの送出タイミングが早まるとともに、データ線の本数を減らすことができる。さらに、演出制御装置300においてもストローブ内でのコマンドの取り込みが必要なくなり、負担を軽減することができる。
〔図柄変動制御処理〕
図60に、前述の特図ゲーム処理における図柄変動制御処理(A2620、A2622)、後述の普図ゲーム処理における図柄変動制御処理を示した。図柄変動制御処理は、特別図柄(第1特図、第2特図等)や普通図柄(普図)の変動の制御と、特別図柄や普通図柄の表示データの設定を行う処理である。
遊技制御装置100は、まず、制御対象の図柄(例えば、第1特図、第2特図、及び普図の何れか)にかかる変動制御フラグが変動中であるかチェックし判定する(A7501、A7502)。本実施形態の場合、ステップA2619、ステップA2621、ステップA7614にて準備した変動制御テーブル上に、変動制御フラグ領域の下位アドレス、点滅制御タイマの初期値、変動図柄番号上限判定値、表示テーブル2(停止用)のアドレス、表示テーブル1(変動用)のアドレスが定義されている。
遊技制御装置100は、制御対象の図柄にかかる変動中フラグが変動中である場合(A7502の結果が「Y」)、制御対象の図柄に対応する図柄表示テーブル(変動用)を取得する(A7503)。本実施形態の場合、ステップA2619、ステップA2621、ステップA7614にて準備した変動制御テーブル上に、図柄表示テーブル(変動用)のアドレスが定義されている。
次に、遊技制御装置100は、制御対象の点滅制御タイマを−1更新し(A7504)、更新後の点滅制御タイマが0であるかを判定して(A7505)、更新後の点滅制御タイマが0でない場合(A7505の結果が「N」)、制御対象の変動図柄番号領域の値に対応する表示データを取得する(A7508)。そして、取得した表示データを対象のセグメント領域にセーブして(A7511)、図柄変動制御処理を終了する。
また、更新後の点滅制御タイマが0である場合(A7505の結果が「Y」)は、対象の点滅タイマ領域に対応する点滅制御タイマ初期値をセーブし(A7506)、制御対象の変動図柄番号を対応する範囲で+1更新して(A7507)、制御対象の変動図柄番号領域の値に対応する表示データを取得する(A7508)。そして、取得した表示データを対象のセグメント領域にセーブして(A7511)、図柄変動制御処理を終了する。
一方、遊技制御装置100は、制御対象の図柄にかかる変動中フラグが変動中でない場合(A7502の結果が「N」)は、制御対象の図柄に対応する図柄表示テーブル(停止用)を取得する(A7509)。本実施形態の場合、ステップA2619、ステップA2621、ステップA7614にて準備した変動制御テーブル上に、図柄表示テーブル(停止用)のアドレスが定義されている。次に、制御対象の停止図柄番号領域の値に対応する表示データを取得し(A7510)、取得した表示データを対象のセグメント領域にセーブして(A7511)、図柄変動制御処理を終了する。
ステップA7506でセーブする点滅制御タイマ初期値は、処理対象のゲームに応じて準備されている変動制御テーブルにおいて定義された値がセーブされる。ここでは、点滅制御タイマ初期値として100msecに相当する値が定義されている。この点滅制御タイマ初期値は、一括表示装置50において変動時間中に点灯パターンを更新する間隔である。
また、ステップA7507における対応する範囲は、処理対象のゲームに応じて準備されている変動制御テーブルにおいて定義された変動図柄番号上限判定値により規定される。ステップA7507において変動図柄番号を+1更新することで変動図柄番号上限値に達した場合は変動図柄番号を0にするようにされており、変動図柄番号は0〜(変動図柄番号上限判定値−1)の範囲で順次更新される。ステップA7508、A7511ではこの変動図柄番号に応じた表示データ(点灯パターン)を取得して表示する設定を行うようになっており、変動図柄番号上限判定値に等しい回数の点灯パターンの更新(変更)が行われることで一巡する表示が繰り返し行われることとなる。
このように処理対象のゲームに応じて準備されている変動制御テーブルにおいて点滅制御タイマ初期値と変動図柄番号上限値を定義することで、一括表示装置50において点灯パターンを更新させる間隔や表示が一巡する更新回数をゲームごとに設定することができる。
〔普図ゲーム処理〕
次に、タイマ割込み処理における普図ゲーム処理(A1310)の詳細について説明する。図61は、普図ゲーム処理の手順を示すフローチャートである。普図ゲーム処理では、ゲートスイッチ34aの入力の監視と、普図変動表示ゲームに関する処理全体の制御、普図の表示の設定等を行う。
遊技制御装置100は、まず、ゲートスイッチ34aからの入力を監視するゲートスイッチ監視処理を実行する(A7601)。ゲートスイッチ監視処理の詳細については、後述する。
続いて、遊技制御装置100は、始動口2スイッチ37aからの入力を監視する普電入賞スイッチ監視処理を実行する(A7602)。普電入賞スイッチ監視処理の詳細については、後述する。
次に、遊技制御装置100は、普図ゲーム処理タイマが0でなければ−1更新する(1だけ減算する)(A7603)。なお、普図ゲーム処理タイマの最小値は0に設定されている。そして、遊技制御装置100は、普図ゲーム処理タイマの値が0となったか否かを判定する(A7604)。
遊技制御装置100は、普図ゲーム処理タイマの値が0である場合(A7604の結果が「Y」)、すなわち、タイムアップした又はすでにタイムアップしていた場合には、普図ゲーム処理番号に対応する処理に分岐させるために参照する普図ゲームシーケンス分岐テーブルをレジスタに設定する(A7605)。
さらに、遊技制御装置100は、設定された普図ゲームシーケンス分岐テーブルに基づいて普図ゲーム処理番号に対応する処理の分岐先アドレスを取得する(A7606)。そして、普図ゲーム処理番号によるサブルーチンコールを行って、普図ゲーム処理番号に応じたゲーム分岐処理を実行する(A7607)。
遊技制御装置100は、ステップA7607にてゲーム処理番号が「0」の場合には、普図変動表示ゲームの変動開始を監視し、普図変動表示ゲームの変動開始の設定や演出の設定や、普図変動中処理を行うために必要な情報の設定等を行う普図普段処理を実行する(A7608)。普図普段処理の詳細については、図64にて後述する。
また、遊技制御装置100は、ステップA7607にてゲーム処理番号が「1」の場合には、普図表示中処理を行うために必要な情報の設定等を行う普図変動中処理を実行する(A7609)。普図変動中処理の詳細については、図66にて後述する。
また、遊技制御装置100は、ステップA7607にてゲーム処理番号が「2」の場合には、普図変動表示ゲームの結果が当りであれば、時短状態中であるか否かに応じた普電開放時間の設定や、普図当り中処理を行うために必要な情報の設定等を行う普図表示中処理を実行する(A7610)。普図表示中処理の詳細については、図67にて後述する。
また、遊技制御装置100は、ステップA7607にてゲーム処理番号が「3」の場合は、普図当り中処理の継続、あるいは普電残存球処理を行うために必要な情報の設定等を行う普図当り中処理を実行する(A7611)。普図当り中処理の詳細については、図68にて後述する。
また、遊技制御装置100は、ステップA7607にてゲーム処理番号が「4」の場合は、普図当り終了処理を行うために必要な情報の設定等を行う普電残存球処理を実行する(A7612)。普図残存球処理の詳細については、図70にて後述する。
また、遊技制御装置100は、ステップA7607にてゲーム処理番号が「5」の場合は、普図普段処理(A7608)を行うために必要な情報の設定等を行う普図当り終了処理を実行する(A7613)。普図当り終了処理の詳細については、図71にて後述する。
その後、遊技制御装置100は、普図表示器53による普通図柄の変動を制御するための普図変動制御テーブルを準備する(A7614)。その後、普図表示器53による普通図柄の変動の制御に係る図柄変動制御処理を実行し(A7615)、普図ゲーム処理を終了する。
一方、遊技制御装置100は、普図ゲーム処理タイマの値が0でない場合(A7604の結果が「N」)、すなわち、タイムアップしていない場合には、ステップA7614以降の処理を実行する。
〔ゲートスイッチ監視処理〕
図62は、ゲートスイッチ監視処理の手順を示すフローチャートである。ゲートスイッチ監視処理は、図61に示した普図ゲーム処理におけるステップA7601にて実行される。
遊技制御装置100は、まず、ゲートスイッチ34aに入力があるか否かを判定する(A7701)。そして、ゲートスイッチ34aに入力がある場合(A7701の結果が「Y」)、右打ちする遊技状態であるか否かを判定する(A7702)。右打ちする遊技状態は、大当り状態、小当り状態、時短状態(普電サポート状態)である。右打ちする遊技状態である場合(A7702の結果が「Y」)、ステップA7705の処理に移行する。右打ちする遊技状態でない場合(A7702の結果が「N」)、左打ち指示報知コマンド(左打ち指示コマンド)を演出コマンドとして準備し(A7703)、演出コマンド設定処理を実行する(A7704)。左打ち指示報知コマンドを受信した演出制御装置300は、左打ちするよう指示する報知(警告)を表示装置41等によって実行する。
次に、遊技制御装置100は、普図保留数を取得して当該普図保留数が上限値(例えば4)未満であるか否かを判定する(A7705)。遊技制御装置100は、普図保留数が上限値未満である場合には(A7705の結果が「Y」)、普図保留数を+1更新し(A7706)、更新後の普図保留数に対応する当り乱数格納領域のアドレスを算出する(A7707)。そして、当り乱数を抽出してRWMの当り乱数格納領域にセーブし(A7708)、当り図柄乱数を抽出し、当り図柄乱数格納領域にセーブし(A7709)、ゲートスイッチ監視処理を終了する。
一方、遊技制御装置100は、ゲートスイッチ34aに入力がない場合(A7701の結果が「N」)、又は、普図保留数が上限値未満でないと判定された場合には(A7705の結果が「N」)、ゲートスイッチ監視処理を終了する。
〔普電入賞スイッチ監視処理〕
次に、普図ゲーム処理における普電入賞スイッチ監視処理(A7602)の詳細について説明する。図63は、普電入賞スイッチ監視処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図当り中か否か、すなわち、普図変動表示ゲームが当り状態となって普通変動入賞装置37が所定回数の開放動作を実行中であるか否かを判定する(A7801)。そして、普図当り中である場合には(A7801の結果が「Y」)、始動口2スイッチ37aに入力があるか否かを判定する(A7802)。始動口2スイッチ37aに入力がある場合には(A7802の結果が「Y」)、普電カウンタのカウント数を+1更新する(A7803)。
次に、遊技制御装置100は、更新後の普電カウンタのカウント数が上限値(例えば、6)に達したか否かを判定する(A7804)。そして、カウント数が上限値に達した場合には(A7804の結果が「Y」)、普図当り中制御ポインタ領域に当り動作終了の値(例えば、4)をセーブする(A7805)。
そして、遊技制御装置100は、ロードしたポインタを普図当り中制御ポインタ領域にセーブする(A7805)。最後に、普図ゲーム処理タイマをクリアし(A7806)、普電入賞スイッチ監視処理を終了する。すなわち、普図の当り状態中に上限値以上の普電入賞があった場合には、その時点で普図当り中処理制御ポインタ領域に当り終了の値をセーブし、普通変動入賞装置37が閉じられて普図の当り状態が途中で終了するようにする。
一方、遊技制御装置100は、普図当り中でないと判定された場合(A7801の結果が「N」)、始動口2スイッチ37aに入力がないと判定された場合(A7802の結果が「N」)、又は、カウント数が上限値に達していないと判定された場合には(A7804の結果が「N」)、普電入賞スイッチ監視処理を終了する。
〔普図普段処理〕
次に、普図ゲーム処理における普図普段処理(A7608)の詳細について説明する。図64は、普図普段処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図保留数が0であるか否かを判定する(A7901)。普図保留数が0である場合には(A7901の結果が「Y」)、普図普段処理に移行するための処理番号として「0」を設定し(A7921)、処理番号を普図ゲーム処理番号領域にセーブする(A7922)。その後、普電不正監視期間フラグ領域に不正監視期間中フラグをセーブし(A7923)、普図普段処理を終了する。
また、遊技制御装置100は、普図保留数が0でない場合には(A7901の結果が「N」)、RWMの普図当り乱数格納領域(保留数1用)から当り乱数をロードし、RWMの普図当り図柄乱数格納領域(保留数1用)から当り図柄乱数をロードする(A7902)。そして、普図当り乱数格納領域(保留数1用)と普図当り図柄乱数格納領域(保留数1用)を0クリアする(A7903)。さらに、普図変動表示ゲームにて当り結果となる確率が通常よりも高い普図高確率中(高確率状態中)であるか否か、すなわち、時短状態(普電サポート状態)であるか否かを判定する(A7904)。なお、高確率中の普図当り確率は250/251であり、低確率中での普図当り確率は0/251である。
遊技制御装置100は、普図高確率中でない場合(A7904の結果が「N」)、普図低確率中の下限判定値である低確率下限判定値(ここでは251)を設定し(A7905)、普図高確率中である場合(A7904の結果が「Y」)、普図高確率中の下限判定値である高確率下限判定値(ここでは1)を設定し(A7906)、ステップA7907の処理に移行する。
遊技制御装置100は、当り乱数が上限判定値(ここでは251)以上であるか否か判定する(A7907)。なお、ここでの上限判定値は、普図高確率中と普図低確率中とで共通する。当り乱数が上限判定値以上である場合(A7907の結果が「Y」)、即ち、はずれの場合、ステップA7909の処理に移行する。当り乱数が上限判定値未満である場合(A7907の結果が「N」)、当り乱数が下限判定値未満であるか否かを判定する(A7908)。
遊技制御装置100は、当り乱数が下限判定値未満である場合(A7908の結果が「Y」)、即ち、はずれの場合、当りフラグ領域にはずれ情報をセーブする(A7909)。さらに、普図停止図柄番号としてはずれ停止図柄番号を設定し(A7910)、はずれ図柄情報を普図停止図柄情報領域にセーブし(A7911)、ステップA7915の処理に移行する。
遊技制御装置100は、当り乱数が下限判定値未満でない場合(A7908の結果が「N」)、即ち、当りの場合、当りフラグ領域に当り情報をセーブし(A7912)、ロードした当り図柄乱数に対応する当り停止図柄番号を設定し(A7913)、当り停止図柄番号に対応する当り停止図柄情報を普図停止図柄情報領域にセーブし(A7914)、ステップA7915の処理に移行する。なお、当り停止図柄は、数種類存在してよい。
次に、遊技制御装置100は、停止図柄番号を普図停止図柄領域にセーブし(A7915)、停止図柄番号を試験信号出力データ領域にセーブし(A7916)、普図当り乱数格納領域をシフトし(A7917)、シフト後の空き領域を0クリアした後(A7918)、普図保留数を−1更新する(A7919)。
すなわち、最も古い普図保留数1に関する普図変動表示ゲームが実行されることに伴い、普図保留数1以降に保留となっている普図保留数2〜4の順位を1つずつ繰り上げる。この処理により、普図当り乱数格納領域の普図保留数2用から普図保留数4用の値が、普図当り乱数格納領域の普図保留数1用から普図保留数3用に移動することとなる。そして、普図当り乱数格納領域の普図保留数4用の値がクリアされて、普図保留数が1デクリメントされる。
次に、遊技制御装置100は、普図変動中処理移行設定処理を実行し(A7920)、普図普段処理を終了する。なお、普図変動中処理移行設定処理については後述する。
〔普図変動中処理移行設定処理〕
図65は、普図変動中処理移行設定処理の手順を示すフローチャートである。普図変動中処理移行設定処理は、図64に示した普図普段処理におけるステップA7920にて実行される。
遊技制御装置100は、まず、普図変動中処理に移行するための処理番号として「1」を設定し(A8101)、処理番号を普図ゲーム処理番号領域にセーブする(A8102)。
その後、遊技制御装置100は、普図変動時間(例えば500msec)を普図ゲーム処理タイマ領域にセーブする(A8103)。ここでの普図変動時間は、普図高確率中と普図低確率中とで共通する。普図変動表示ゲームの開始に関する信号(普通図柄1変動中信号をオン)を試験信号出力データ領域にセーブし(A8104)、普図変動表示ゲームが変動中であることを示す変動中フラグを普図変動制御フラグ領域にセーブする(A8105)。そして、普図表示器の点滅周期のタイマの初期値である点滅制御タイマ初期値(例えば100msec)を普図点滅制御タイマ領域にセーブし(A8106)、普図変動中図柄番号領域に初期値(ここでは、ブランク図柄を示す「0」)をセーブし(A8107)、その後、普図変動中処理移行設定処理を終了する。
〔普図変動中処理〕
次に、普図ゲーム処理における普図変動中処理(A7609)の詳細について説明する。図66は、普図変動中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図表示中処理に移行するための設定処理として処理番号を「2」に設定し(A8301)、処理番号を普図ゲーム処理番号領域にセーブする(A8302)。その後、遊技制御装置100は、普図表示器における普図変動表示ゲームの結果の表示時間である普図表示時間(例えば、0.6秒)を普図ゲーム処理タイマ領域にセーブする(A8303)。
さらに、遊技制御装置100は、普図の変動終了に関する信号(普通図柄1変動中信号をオフ)を試験信号出力データ領域にセーブする(A8304)。そして、普図変動表示ゲームが停止中であることを示す停止フラグを普図変動制御フラグ領域にセーブし(A8305)、普図変動中処理を終了する。
〔普図表示中処理〕
次に、普図ゲーム処理における普図表示中処理(A7610)の詳細について説明する。図67は、普図表示中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図普段処理にて設定された当りフラグ(当り情報又ははずれ情報)をロードし(A8401)、RWMの当りフラグ領域をクリアする(A8402)。そして、ロードされた当りフラグに当り情報が設定されているか否かを判定する(A8403)。
遊技制御装置100は、当りフラグに当り情報が設定されていない場合には(A8403の結果が「N」)、普図普段処理に移行するための処理番号として「0」を設定し(A8414)、処理番号を普図ゲーム処理番号領域にセーブする(A8415)。その後、普電不正監視期間フラグ領域に不正監視期間中フラグをセーブし(A8416)、普図表示中処理を終了する。
一方、遊技制御装置100は、当りフラグに当り情報が設定されている場合には(A8403の結果が「Y」)、当り中処理設定テーブルを設定し(A8404)、普図停止図柄情報に対応する当り開始ポインタ値(ここでは0、2、4のいずれか)を取得し、普図当り中制御ポインタ領域にセーブする(A8405)。次いで、普図停止図柄情報に対応する普電開放時間(例えば500msec又は1700msec)を取得し、普図ゲーム処理タイマ領域にセーブする(A8406)。以上の処理により時短状態中での普通変動入賞装置37の開放態様が設定され、例えば3回の開放が可能となる。
続いて、遊技制御装置100は、普図当り中処理に移行するための処理番号として「3」を設定し(A8407)、処理番号を普図ゲーム処理番号領域にセーブする(A8408)。その後、普図変動表示ゲームの当りに関する信号(普通図柄1当り中信号をオン)と、普電作動開始に関する信号(普通電動役物1作動中信号をオン)を試験信号出力データ領域にセーブする(A8409)。さらに、普電ソレノイドを駆動(オン)する信号を出力するために普電ソレノイド出力データ領域にオンデータをセーブする(A8410)。
さらに、遊技制御装置100は、普通変動入賞装置37への入賞数を記憶する普電カウント数領域の情報をクリアし(A8411)、普電不正監視期間における普通変動入賞装置37への入賞数を記憶する普電不正入賞数領域の情報をクリアする(A8412)。最後に、普通変動入賞装置37の不正監視期間外を規定するフラグを普電不正監視期間フラグ領域にセーブし(A8413)、普図表示中処理を終了する。
〔普図当り中処理〕
次に、普図ゲーム処理における普図当り中処理(A7611)の詳細について説明する。図68は、普図当り中処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図当り中制御ポインタをロードして準備し(A8601)、ロードされた普図当り中制御ポインタの値が普図当り中制御ポインタ上限値領域の値(当り終了の値)に達したか否かを判定する(A8602)。
そして、遊技制御装置100は、普図当り中制御ポインタの値が普図当り中制御ポインタ上限値領域の値に達していない場合には(A8602の結果が「N」)、普図当り中制御ポインタを+1更新する(A8603)。さらに、普電作動移行設定処理を実行し(A8604)、普図当り中処理を終了する。なお、普電作動移行設定処理の詳細については後述する。
また、遊技制御装置100は、普図当り中制御ポインタの値が普図当り中制御ポインタ上限値領域の値(当り終了の値)に達した場合には(A8602の結果が「Y」)、ステップA8603における普図当り中処理制御ポインタ領域を更新(+1)する処理を実行せずに、普電作動移行設定処理を実行し(A8604)、普図当り中処理を終了する。
〔普電作動移行設定処理〕
次に、普図当り中処理における普電作動移行設定処理(A8604)の詳細について説明する。図69は、普電作動移行設定処理の手順を示すフローチャートである。普電作動移行設定処理は、普通変動入賞装置37を開閉するための普電ソレノイド37cの駆動制御を行う処理であり、制御ポインタの値に応じて処理を分岐するようにしている。
遊技制御装置100は、まず、制御ポインタの値に応じて処理を分岐させる(A8701)。制御ポインタの値が0,2のいずれかであった場合には、ステップA8702の処理に移行して普通変動入賞装置37の閉塞を制御するため、制御ポインタに対応する普通変動入賞装置37の閉塞後のウェイト時間(例えば、200msec)を普図ゲーム処理タイマ領域にセーブする(A8702)。
さらに、遊技制御装置100は、普電ソレノイド37cをオフさせるために普電ソレノイド出力データ領域にオフデータを設定し(A8703)、普電作動移行設定処理を終了する。
また、制御ポインタの値が1,3のいずれかであった場合には、遊技制御装置100は、ステップA8704の処理に移行して普通変動入賞装置37の開放を制御するため、制御ポインタに対応する普通変動入賞装置37の開放時間である普電開放時間(例えば、1700msec)を普図ゲーム処理タイマ領域にセーブする(A8704)。さらに、普電ソレノイド37cをオンさせるために普電ソレノイド出力データ領域にオンデータを設定し(A8705)、普電作動移行設定処理を終了する。
さらに、制御ポインタの値が4のいずれかであった場合には、遊技制御装置100は、ステップA8706に移行して普通変動入賞装置37の開放制御を終了して普電残存球処理(A7612)を実行するために、処理番号として「4」を設定し(A8706)、処理番号を普図ゲーム処理番号領域にセーブする(A8707)。
続いて、遊技制御装置100は、普電残存球処理時間(例えば600msec)を普図ゲーム処理タイマ領域にセーブする(A8708)。その後、普電ソレノイド37cをオフに設定するために普電ソレノイド出力データ領域にオフデータをセーブし(A8709)、普電作動移行設定処理を終了する。
〔普電残存球処理〕
次に、普図ゲーム処理における普電残存球処理(A7612)の詳細について説明する。図70は、普電残存球処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図当り終了処理に係る処理番号「5」を設定し(A8901)、処理番号を普図ゲーム処理番号領域にセーブする(A8902)。その後、普図エンディング時間(例えば、100msec)を普図ゲーム処理タイマ領域にセーブする(A8903)。
さらに、遊技制御装置100は、普通変動入賞装置37の作動終了に関する信号(普通電動役物1作動中信号をオフ)を試験信号出力データ領域にセーブする(A8904)。続いて、普通変動入賞装置37への入賞数を計数する普電カウント数領域をクリアし(A8905)、さらに、普図当り中制御ポインタ領域をクリアする(A8906)。その後、普電残存球処理を終了する。
〔普図当り終了処理〕
次に、普図ゲーム処理における普図当り終了処理(A7613)の詳細について説明する。図71は、普図当り終了処理の手順を示すフローチャートである。
遊技制御装置100は、まず、普図普段処理に係る処理番号「0」を設定し(A9101)、さらに、処理番号を普図ゲーム処理番号領域にセーブする(A9102)。その後、普図変動ゲームの当り終了に関する信号(普通図柄1当り中信号をオフ)を試験信号出力データ領域にセーブする(A9103)。
さらに、遊技制御装置100は、普通変動入賞装置37の不正監視期間を規定するフラグ(不正監視期間中フラグ)を普電不正監視期間フラグ領域にセーブし(A9104)、その後、普図当り終了処理を終了する。
〔セグメントLED編集処理〕
次に、タイマ割込み処理におけるセグメントLED編集処理(A1311)の詳細について説明する。図72は、セグメントLED編集処理の手順を示すフローチャートである。セグメントLED編集処理では、一括表示装置50に設けられた特図1保留表示器54、特図2保留表示器55、普図保留表示器56、第1遊技状態表示部57、第2遊技状態表示部58、第3遊技状態表示部59、ラウンド表示部60を構成するセグメントLEDの駆動に関する設定等を行う。
遊技制御装置100は、まず、点滅制御タイマを+1更新し(A9201)、出力オンタイミングであるか否かを判定する(A9202)。点滅制御タイマの特定ビットが1である場合に、出力オンタイミングであると判定する。本実施形態では、特定ビットはビット5であるため、128msの点滅周期を作ることができる(図2B参照)。
遊技制御装置100は、出力オンタイミングである場合(A9202の結果が「Y」)、普図保留数表示テーブル1を設定し(A9203)、出力オンタイミングでない場合(A9202の結果が「N」)、普図保留数表示テーブル2を設定し(A9204)、普図保留数に対応する表示データを取得して普図保留表示器56(ランプD15、D16)のセグメント領域にセーブする(A9205)。保留数が0〜2なら、普図保留数表示テーブル1、2のどちらのテーブルでも表示データは同じになるため、普図保留表示器56は点滅しないが、保留数が3〜4なら、普図保留数表示テーブル1の表示データと普図保留数表示テーブル2の表示データは異なるため、普図保留表示器56は点滅する(図2B参照)。
次に、遊技制御装置100は、出力オンタイミングであるか否かを判定する(A9206)。出力オンタイミングである場合(A9206の結果が「Y」)、特図1保留数表示テーブル1を設定し(A9207)、出力オンタイミングでない場合(A9206の結果が「N」)、特図1保留数表示テーブル2を設定し(A9208)、特図1保留数に対応する表示データを取得して特図1保留表示器54(ランプD11、D12)のセグメント領域にセーブする(A9209)。
次に、遊技制御装置100は、出力オンタイミングであるか否かを判定する(A9210)。出力オンタイミングである場合(A9210の結果が「Y」)、特図2保留数表示テーブル1を設定し(A9211)、出力オンタイミングでない場合(A9210の結果が「N」)、特図2保留数表示テーブル2を設定し(A9212)、特図2保留数に対応する表示データを取得して特図2保留表示器55(ランプD13、D14)のセグメント領域にセーブする(A9213)。
その後、遊技制御装置100は、ラウンド表示部60(ランプD3−D7)での表示態様が規定されたラウンド表示LED表示テーブルを設定し(A9214)、ラウンド表示LED出力ポインタに対応する表示データを取得してラウンド表示部60のセグメント領域にセーブする(A9215)。
次に、遊技制御装置100は、第2遊技状態表示部58(ランプD9)や第3遊技状態表示部59(ランプD17)等での表示態様が規定された遊技状態表示テーブル1を設定する(A9216)。さらに、遊技状態表示番号に対応する表示データを取得して各遊技状態表示部のセグメント領域にセーブする(A9217)。
次いで、遊技制御装置100は、第1遊技状態表示部57(ランプD8)での表示態様が規定された遊技状態表示テーブル2を設定する(A9218)。さらに、遊技状態表示番号2に対応する表示データを取得して第1遊技状態表示部57のセグメント領域にセーブする(A9219)。その後、セグメントLED編集処理を終了する。
〔磁石不正監視処理〕
次に、タイマ割込み処理における磁石不正監視処理(A1312)において行われる磁石不正監視処理の詳細について説明する。図73は、磁石不正監視処理の手順を示すフローチャートである。磁石不正監視処理では、磁気センサスイッチ61からの検出信号に基づき異常の有無を判定し、不正報知の開始や終了の設定等を行う。
遊技制御装置100は、まず、磁気センサスイッチ61から出力されて第2入力ポート123(入力ポート2)に取り込まれる検出信号の状態から、磁石センサ(磁気センサスイッチ61)がオン、すなわち、異常な磁気を検出した状態であるか否かを判定する(A9301)。
遊技制御装置100は、磁石センサがオンである場合(A9301の結果が「Y」)、すなわち、異常な磁気を検出した場合には、異常な磁気の検出期間を計時する磁石不正監視タイマを+1更新し(A9302)、当該タイマがタイムアップしたか否かを判定する(A9303)。
遊技制御装置100は、磁石不正監視タイマがタイムアップした場合(A9303の結果が「Y」)、すなわち、異常な磁気を一定期間継続して検出した場合には、磁石不正監視タイマをクリアし(A9304)、磁石不正報知タイマ初期値(例えば60秒)を磁石不正報知タイマ領域にセーブする(A9305)。
そして、遊技制御装置100は、磁石不正報知のコマンドを演出コマンドとして準備し(A9306)、磁石不正が発生したことを示す磁石不正発生フラグを磁石不正フラグとして準備する(A9307)。さらに、準備した磁石不正フラグが磁石不正フラグ領域の値と一致するか否かを判定する(A9313)。すなわち、磁気センサスイッチ61が磁石不正監視タイマで設定した一定期間(例えば8回の割込み)連続してオンであった場合に、異常が発生していると判定するようにしている。
一方、遊技制御装置100は、磁石センサ(磁気センサスイッチ61)がオンでない場合(A9301の結果が「N」)、すなわち、異常な磁気を検出していない場合には、磁石不正監視タイマをクリアする(A9308)。そして、磁石不正の報知時間を規定する磁石不正報知タイマが0でなければ−1更新する(A9309)。なお、磁石不正報知タイマの最小値は0に設定されている。
そして、遊技制御装置100は、磁石不正報知タイマの値が0であるか否かを判定する(A9310)。なお、磁石不正監視タイマがタイムアップしていない場合についても(A9303の結果が「N」)、ステップA9309の処理に移行する。
遊技制御装置100は、磁石不正報知タイマの値が0でない場合(A9310の結果が「N」)、すなわち、タイムアップしていない場合には、磁石不正監視処理を終了する。
また、遊技制御装置100は、磁石不正報知タイマの値が0である場合(A9310の結果が「Y」)、すなわち、タイムアップした又はすでにタイムアップしていた場合であって、不正報知の期間が終了した場合又は当初から不正報知が行われていない場合には、磁石不正報知終了のコマンドを演出コマンドとして準備する(A9311)。
さらに、遊技制御装置100は、磁石不正フラグとして磁石不正解除フラグを準備し(A9312)、準備した磁石不正フラグが磁石不正フラグ領域の値と一致するか否かを判定する(A9313)。
そして、遊技制御装置100は、準備した磁石不正フラグが磁石不正フラグ領域の値と一致する場合には(A9313の結果が「Y」)、磁石不正監視処理を終了する。一方、準備した磁石不正フラグが磁石不正フラグ領域の値と一致しない場合には(A9313の結果が「N」)、準備した磁石不正フラグを磁石不正フラグ領域にセーブし(A9314)、演出コマンド設定処理を実行する(A9315)。その後、磁石不正監視処理を終了する。
〔盤電波不正監視処理〕
次に、タイマ割込み処理における盤電波不正監視処理(A1313)の詳細について説明する。図74は、盤電波不正監視処理の手順を示すフローチャートである。盤電波不正監視処理では、遊技盤の電波センサ62(盤電波センサ)からの検出信号に基づき異常の有無を判定し不正報知の開始や終了の設定等を行う。
遊技制御装置100は、まず、電波センサ62から出力されて近接I/F121を経由して第2入力ポート123(入力ポート2)に取り込まれる検出信号の状態から、電波センサ62がオン、すなわち、異常な電波を検出した状態であるか否かを判定する(A9401)。電波センサがオンである場合(A9401の結果が「Y」)、すなわち、異常な電波を検出した場合には、電波不正報知タイマ初期値(例えば60秒)を電波不正報知タイマ領域にセーブする(A9402)。
そして、遊技制御装置100は、盤電波不正報知のコマンドを演出コマンドとして準備し(A9403)、盤電波不正が発生したことを示す盤電波不正発生フラグを盤電波不正フラグとして準備する(A9404)。さらに、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致するか否かを判定する(A9409)。すなわち、電波不正の場合は磁気不正の場合とは異なり、異常な電波を検出した時点で異常が発生していると判定している。
一方、遊技制御装置100は、電波センサがオンでない場合(A9401の結果が「N」)、すなわち、異常な電波を検出していない場合には、電波不正の報知時間を規定する電波不正報知タイマが0でなければ−1更新する(A9405)。なお、電波不正報知タイマの最小値は0に設定されている。
そして、遊技制御装置100は、電波不正報知タイマの値が0であるか否かを判定する(A9406)。電波不正報知タイマの値が0でない場合(A9406の結果が「N」)、すなわち、タイムアップしていない場合には、盤電波不正監視処理を終了する。
また、遊技制御装置100は、電波不正報知タイマの値が0である場合(A9406の結果が「Y」)、すなわち、タイムアップした又はすでにタイムアップしていた場合であって、不正報知の期間が終了した場合又は当初から不正報知が行われていない場合には、電波不正報知終了のコマンドを演出コマンドとして準備する(A9407)。さらに、盤電波不正フラグとして盤電波不正解除フラグを準備し(A9408)、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致するか否かを判定する(A9409)。
そして、遊技制御装置100は、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致する場合には(A9409の結果が「Y」)、盤電波不正監視処理を終了する。また、値が一致しない場合には(A9409の結果が「N」)、準備した盤電波不正フラグを盤電波不正フラグ領域にセーブし(A9410)、演出コマンド設定処理を実行する(A9411)。その後、盤電波不正監視処理を終了する。
〔外部情報編集処理〕
次に、タイマ割込み処理における外部情報編集処理(A1314)の詳細について説明する。図75は、外部情報編集処理の手順を示すフローチャートである。図75Aは外部情報編集処理の前半部分を示し、図75Bは外部情報編集処理の後半部分を示す。外部情報編集処理では、払出コマンド送信処理(A1305)、入賞口スイッチ/状態監視処理(A1308)、磁石不正監視処理(A1312)、盤電波不正監視処理(A1313)での監視結果に基づいて、情報収集端末や遊技場内部管理装置等の外部装置や試射試験装置に出力する情報を作成して出力バッファにセットする処理等を行う。
遊技制御装置100は、まず、ガラス枠開放エラーが発生中であるか否かを判定する(A9501)。ガラス枠開放エラーが発生中でない場合(A9501の結果が「N」)、本体枠開放エラー(前面枠開放エラー)が発生中であるか否かを判定する(A9502)。本体枠開放エラーが発生中でない場合(A9502の結果が「N」)、扉・枠開放信号のオフデータを外部情報出力データ領域にセーブし(A9503)、セキュリティ信号のオフデータを外部情報出力データ領域にセーブする(A9504)。
遊技制御装置100は、ガラス枠開放エラーが発生中である場合(A9501の結果が「Y」)、又は、本体枠開放エラーが発生中である場合(A9502の結果が「Y」)、扉・枠開放信号のオンデータを外部情報出力データ領域にセーブし(A9505)、遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブする(A9506)。
遊技制御装置100は、ステップA9504、A9506の後、セキュリティ信号制御タイマが0でなければ−1更新し(A9507)、セキュリティ信号制御タイマが0であるか否か(タイムアップしたか否か)を判定する(A9508)。セキュリティ信号制御タイマの初期値は、初期化スイッチの操作等によりRAMに記憶されたデータが初期化されたときに、所定時間(例えば256msec)が設定される(メイン処理のA1029)。そして、セキュリティ信号制御タイマはRAM初期化時から計時されることになる。
遊技制御装置100は、セキュリティ信号制御タイマが0でない場合(A9508の結果が「N」)、セキュリティ信号のオンデータを外部情報出力データ領域にセーブし(A9509)、ステップA9510の処理に移行する。即ち、RAMに記憶されたデータの初期化が行われたことが外部情報として出力される。
遊技制御装置100は、セキュリティ信号制御タイマが0である場合(A9508の結果が「Y」)、磁石不正が発生中であるか否かを判定する(A9510)。なお、磁石不正フラグ領域に磁石不正発生フラグがセーブされている場合に、磁石不正が発生中であると判定できる。磁石不正が発生中でない場合(A9510の結果が「N」)、さらに、盤電波不正が発生中であるか否かを判定する(A9511)。なお、盤電波不正フラグ領域に盤電波不正発生フラグがセーブされている場合に、盤電波不正が発生中であると判定できる。
遊技制御装置100は、盤電波不正が発生中でない場合(A9511の結果が「N」)、さらに、枠電波不正が発生中であるか否かを判定する(A9512)。枠電波不正が発生中でない場合(A9512の結果が「N」)、さらに、普電不正発生中であるか否かを判定する(A9513)。普電不正発生中でない場合(A9513の結果が「N」)、さらに、大入賞口不正が発生中であるか否か判定する(A9514)。なお、大入賞口に関しての不正入賞発生フラグが不正フラグ領域にセーブされている場合、大入賞口不正が発生中であると判定できる。大入賞口不正が発生中でない場合(A9514の結果が「N」)、遊技機エラー状態信号のオフデータを試験信号出力データ領域にセーブする(A9515)。
一方、遊技制御装置100は、磁石不正が発生中である場合(A9510の結果が「Y」)、盤電波不正が発生中である場合(A9511の結果が「Y」)、枠電波不正が発生中である場合(A9512の結果が「Y」)、普電不正発生中である場合(A9513の結果が「Y」)、又は、大入賞口不正が発生中である場合(A9514の結果が「Y」)、セキュリティ信号のオンデータを外部情報出力データ領域にセーブし(A9516)、遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブする(A9517)。セキュリティ信号のオンデータの設定によって、セキュリティ信号が外部情報として外部装置(ホールコンピュータなど)に出力される。
遊技制御装置100は、ステップA9515、A9517の後、払出予定の賞球数に関する情報を設定するメイン賞球信号編集処理を実行する(A9518)。メイン賞球信号編集処理の詳細については後述する。続いて、遊技制御装置100は、始動口の入賞信号を編集する始動口信号編集処理を実行する(A9519)。始動口信号編集処理の詳細については後述する。
次に、遊技制御装置100は、特図変動表示ゲームの実行回数に係る情報の出力時間を制御するための図柄確定回数制御タイマが0でなければ−1更新する(A9520)。なお、図柄確定回数制御タイマの最小値は0に設定されている。
そして、遊技制御装置100は、図柄確定回数制御タイマの値が0であるか否かを判定する(A9521)。図柄確定回数制御タイマの値が0である場合(A9521の結果が「Y」)、すなわち、タイムアップした又はすでにタイムアップしていた場合には、図柄確定回数信号のオフデータを外部情報出力データ領域にセーブし(A9522)、外部情報編集処理を終了する。
また、遊技制御装置100は、図柄確定回数制御タイマの値が0でない場合(A9521の結果が「N」)、すなわち、タイムアップしていない場合には、図柄確定回数信号のオンデータを外部情報出力データ領域にセーブし(A9523)、外部情報編集処理を終了する。
〔メイン賞球信号編集処理〕
次に、外部情報編集処理におけるメイン賞球信号編集処理(A9518)の詳細について説明する。図76は、メイン賞球信号編集処理の手順を示すフローチャートである。メイン賞球信号編集処理は、入賞口への入賞により発生した賞球数(払出予定数)が所定数(ここでは10個)になる毎に生成されるメイン賞球信号を外部装置に出力する処理である。
遊技制御装置100は、まず、メイン賞球信号出力制御タイマが0でなければ−1更新する(A9601)。なお、メイン賞球信号出力制御タイマの最小値は0に設定されている。そして、遊技制御装置100は、メイン賞球信号出力制御タイマの値が0であるか否かを判定する(A9602)。
遊技制御装置100は、メイン賞球信号出力制御タイマの値が0である場合には(A9602の結果が「Y」)、さらに、メイン賞球信号出力回数が0であるか否かを判定する(A9603)。
そして、遊技制御装置100は、メイン賞球信号出力回数が0でない場合には(A9603の結果が「N」)、メイン賞球信号出力回数を−1更新し(A9604)、メイン賞球信号出力制御タイマ領域にメイン賞球信号出力制御タイマ初期値(例えば、128msec)をセーブする(A9605)。
その後、遊技制御装置100は、メイン賞球信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブし(A9607)、メイン賞球信号編集処理を終了する。また、メイン賞球信号出力回数が0である場合には(A9603の結果が「Y」)、外部装置用のメイン賞球信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブし(A9608)、メイン賞球信号編集処理を終了する。
一方、遊技制御装置100は、メイン賞球信号出力制御タイマの値が0でない場合には(A9602の結果が「N」)、メイン賞球信号出力制御タイマが出力オン区間中であるか否かを判定する(A9606)。なお、メイン賞球信号出力制御タイマが出力オン区間中であるとは、メイン賞球信号出力制御タイマの値が所定時間(例えば64msec)以上であることである。
遊技制御装置100は、メイン賞球信号出力制御タイマが出力オン区間中である場合には(A9606の結果が「Y」)、メイン賞球信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブする(A9607)。また、メイン賞球信号出力制御タイマが出力オン区間中でない場合には(A9606の結果が「N」)、外部装置用のメイン賞球信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(A9608)、メイン賞球信号編集処理を終了する。
〔始動口信号編集処理〕
次に、外部情報編集処理における始動口信号編集処理(A9519)の詳細について説明する。図77は、始動口信号編集処理の手順を示すフローチャートである。始動口信号編集処理は、始動口1スイッチ36aや始動口2スイッチ37aの入力があった場合に、各々の入力について共通して行われる処理である。
遊技制御装置100は、まず、始動口信号出力制御タイマが0でなければ−1更新する(A9701)。なお、始動口信号出力制御タイマの最小値は0に設定されている。そして、遊技制御装置100は、始動口信号出力制御タイマの値が0であるか否かを判定する(A9702)。
遊技制御装置100は、始動口信号出力制御タイマの値が0である場合には(A9702の結果が「Y」)、始動口信号出力回数が0であるか否かを判定する(A9703)。そして、始動口信号出力回数が0でない場合には(A9703の結果が「N」)、始動口信号出力回数を−1更新し(A9704)、始動口信号出力制御タイマ領域に始動口信号出力制御タイマ初期値(例えば、128msec)をセーブする(A9705)。
その後、遊技制御装置100は、始動口信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブし(A9707)、始動口信号編集処理を終了する。
また、遊技制御装置100は、始動口信号出力回数が0である場合には(A9703の結果が「Y」)、外部装置用の始動口信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブし(A9708)、始動口信号編集処理を終了する。
一方、遊技制御装置100は、始動口信号出力制御タイマの値が0でない場合には(A9702の結果が「N」)、始動口信号出力制御タイマが出力オン区間中であるか否かを判定する(A9706)。なお、始動口信号出力制御タイマが出力オン区間中であることとは、始動口信号出力制御タイマの値が所定時間(例えば64ms)以上であることである。
遊技制御装置100は、始動口信号出力制御タイマが出力オン区間中である場合には(A9706の結果が「Y」)、始動口信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブし(A9707)、始動口信号編集処理を終了する。
また、遊技制御装置100は、始動口信号出力制御タイマが出力オン区間中でない場合には(A9706の結果が「N」)、外部装置用の始動口信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブし(A9708)、始動口信号編集処理を終了する。
[演出制御装置の制御]
以下に、演出制御装置300が演出制御用プログラムによって実行する制御(処理)を説明する。
〔メイン処理(演出制御装置)〕
最初に、演出制御装置300によって実行されるメイン処理の詳細を説明する。図78は、演出制御装置300によって実行されるメイン処理(メインプログラム)の手順を示すフローチャートである。メイン処理は、遊技機10に電源が投入されると主制御用マイコン311(演出用マイコン)によって実行される。なお、演出制御装置300が実行する処理のフローチャートにおいて、ステップの符号(番号)は「B****」と表されている。
演出制御装置300は、メイン処理の実行が開始されると、まず、割込みを禁止する(B1001)。次にCPU311及びVDP312の初期設定を実行し(B1002、B1003)、割込みを許可する(B1004)。割込みが許可されると、遊技制御装置100から送信されたコマンドを受信するコマンド受信割込み処理を実行可能な状態となる。
次に、演出制御装置300は、表示装置41等に表示する表示用データの生成を許可し(B1005)、乱数生成に用いる乱数シードを設定する(B1006)。そして、初期化すべき領域に電源投入時の初期値をセーブする(B1007)。
続いて、演出制御装置300は、WDT(ウォッチドックタイマ)をクリアする(B1008)。WDTは、上述したCPU初期設定(B1002)で起動され、CPU311が正常に動作しているかどうかを監視する。WDTが一定周期を経過してもクリアされない場合は、WDTがタイムアップしてCPU311がリセットされる。
次に、演出制御装置300は、遊技者による演出ボタン25の操作信号(演出ボタンスイッチ25a又はタッチパネル25bの信号)を検出したり、検出した信号に応じて演出内容(設定)を変更したりする演出ボタン入力処理を実行する(B1009)。続いて、遊技者や遊技店(ホール)関係者等によるLEDや液晶の輝度、音量の変更などの操作(演出ボタン25などの操作手段の操作)を受け付けるホール・遊技者設定モード処理を実行する(B1010)。また、ホール・遊技者設定モードにおいて、遊技者は表示装置41での表示や演出をカスタマイズすることができる。
次に、演出制御装置300は、演出ポイントの加算やクリアを実行する演出ポイント制御処理を実行する(B1011)。演出ポイントの加算対象となる演出や操作が実行されることで演出ポイントが加算される処理がされ、また、演出ポイントを次回の遊技に繰り越せるよう遊技終了時などに、例えば、演出ポイントの情報等を含む情報をQRコード(登録商標)として表示装置41に表示できる。例えば、演出制御装置300は、ホール・遊技者設定モード処理において、QRコード(登録商標)を表示装置41に表示できる。
次に、演出制御装置300は、演出乱数などの乱数を更新するための乱数更新処理を実行し(B1012)、遊技制御装置100から受信した受信コマンドを解析して対応する受信コマンドチェック処理を実行する(B1013)。なお、受信コマンドチェック処理の詳細については、図79にて後述する。
次に、演出制御装置300は、表示装置41等に表示する内容(演出)に合わせて各種データの更新を行ったり、表示装置41に表示する描画を表示フレームバッファに設定したりする演出表示編集処理を実行する(B1014)。このとき設定される描画データは、フレーム周期1/30秒(約33.3msec)以内にVDP312が描画を完了することができるものであれば問題なく表示装置41の画像を更新することができる。そして、表示フレームバッファへの描画準備を完了させて描画コマンド準備終了設定を実行する(B1015)。
続いて、演出制御装置300は、フレーム切替タイミングであるか否かを判定する(B1015)。フレーム切替タイミングでない場合は(B1016の結果が「N」)、フレーム切替タイミングになるまでB1016の処理を繰り返し、フレーム切替タイミングである場合は(B1016の結果が「Y」)、表示装置41への画面描画を指示する(B1017)。本実施形態のフレーム周期は1/30秒なので、例えば1/60秒(フレーム周期の1/2)毎の周期的なVブランク(画像更新)が2回実行されるとフレームの切り替えが行われる。なお、1/60秒で画像を更新せず、さらに間隔を大きくしてもよい。
また、演出制御装置300は、スピーカ19から出力される音を制御するサウンド制御処理を実行する(B1018)。
また、演出制御装置300は、LED等からなる装飾装置(盤装飾装置46、枠装飾装置18)を制御する装飾制御処理を実行する(B1019)。装飾制御処理では、例えば、LED等の装飾装置の発光制御を実行する。
さらに、演出制御装置300は、モータ及びソレノイドで駆動される電動役物などの演出装置(盤演出装置44)を制御する可動体制御処理を実行する(B1020)。可動体制御処理では、例えば、ソレノイドを駆動して役物動作演出を実行する。
そして、演出制御装置300は、前述のB1020の処理を終えると、B1008の処理に戻る。以降、B1008からB1020までの処理を繰り返す。
〔受信コマンドチェック処理〕
次に、図79を参照して、上述したメイン処理(図78)における受信コマンドチェック処理(B1013)の詳細について説明する。図79は、演出制御装置300によって実行される受信コマンドチェック処理の手順を示すフローチャートである。
演出制御装置300は、まず、遊技制御装置100から受信したコマンド数をチェックするためにRAMのコマンド受信カウンタ領域のコマンド受信カウンタの値をコマンド受信数としてロードする(B1101)。そして、コマンド受信数が0でないか否かを判定する(B1102)。コマンド受信数が0である場合、すなわち、遊技制御装置100から受信したコマンドがない場合には(B1102の結果が「N」)、解析するコマンドがないので、受信コマンドチェック処理を終了する。
一方、演出制御装置300は、コマンド受信数が0でない場合、すなわち、遊技制御装置100からコマンドを受信している場合には(B1102の結果が「Y」)、コマンド受信カウンタ領域のコマンド受信カウンタ値をコマンド受信数分減算した後(B1103)、RAMの受信コマンドバッファの内容を解析用のコマンド領域にコピーする(B1104)。ここで、受信コマンドバッファはリングバッファなので、バッファ内の内容をコマンド領域にコピーする前にコマンド受信数を減算しても問題ない。また、コピー中に新たにコマンドを受信してもデータが上書きされることはない。
そして、演出制御装置300は、コマンド読出インデックスを0〜31の範囲で+1更新(1だけ加算)する(B1105)。受信コマンドバッファは受信したコマンドを32個まで保存できるよう構成されている。受信したコマンドは、コマンド読出インデックス0〜31の順に受信コマンドバッファに格納されており、ここではインデックス順に受信したコマンドを読み出して、解析用のコマンド領域にコピーする。なお、解析用のコマンド領域へのコピーが完了したタイミングで、読みだしたコマンド読出インデックスに対応する受信コマンドバッファの格納領域内はクリアされる。
演出制御装置300は、ステップB1101の処理にてロードしたコマンド受信数分のコマンドのコピーが完了したか否かを判定し(B1106)、コピーが完了していない場合は(B1106の結果が「N」)、ステップB1104からB1106の処理を繰り返す。
遊技制御装置100から送信されたコマンドを演出制御装置300が受信すると、受信コマンドバッファに受信したコマンドの内容が保存されると同時にコマンド受信カウンタ領域のコマンド受信カウンタ値が加算更新される。受信コマンドバッファには32個分のコマンドを保存することができるが、受信したコマンドの解析は、別途、解析用のコマンド領域で行われる。そして、解析用のコマンド領域に受信したコマンドの内容がコピーされると、受信コマンドバッファ及びコマンド受信カウンタ値はクリアされる。このように、受信コマンドバッファ内で直接解析を行わずに常に空き領域を確保しておくことで、コマンドの大量受信に備えることができる。
続いて、演出制御装置300は、コピーが完了した場合には(B1106の結果が「Y])、解析用のコマンド領域の受信したコマンド内容をロードし(B1107)、内容を解析する受信コマンド解析処理を実行する(B1108)。なお、受信コマンド解析処理の詳細については、次の図80にて後述する。また、解析用のコマンド領域のアドレスを更新する(B1109)。その後、ステップB1101の処理にてロードしたコマンド受信数分のコマンドの解析が完了したか否かを判定し(B1110)、解析が完了していない場合は(B1110の結果が「N」)、ステップB1107からB1110の処理を繰り返す。解析が完了した場合には(B1110の結果が「Y])、受信コマンドチェック処理を終了する。
〔受信コマンド解析処理〕
次に、図80を参照して、前述した受信コマンドチェック処理(図79)における受信コマンド解析処理(B1108)の詳細について説明する。図80は、演出制御装置300によって実行される受信コマンド解析処理の手順を示すフローチャートである。
演出制御装置300は、まず、受信したコマンドの上位バイトをMODE部、下位バイトをACTION部(ACT部)として分離する(B1201)。遊技制御装置100から演出制御装置300に送信されるコマンドは、MODE部(MODEコマンド)及びACTION部(ACTIONコマンド)によって構成されており、通常、コマンドの種類を示すMODE部から連続して送信される。従って、受信したコマンドの上位、下位はMODE部、ACTION部の順に構成される。
次に、演出制御装置300は、MODE部が正常範囲であるか否かを判定する(B1202)。すなわち、コマンドの種類を示すMODE部が取り得る値(種類を示すコマンド仕様として割り当てられた値)であるか否かを判定する。そして、MODE部が正常範囲である場合には(B1202の結果が「Y」)、同様にACTION部が正常範囲であるか否かを判定する(B1203)。すなわち、コマンドの内容(具体的な演出指示等)を示すACTION部が取り得る値(内容を示すコマンド仕様として割り当てられた値)であるか否かを判定する。そして、ACTION部が正常範囲である場合には(B1203の結果が「Y」)、さらに、MODE部に対するACTION部は正しい組み合せか否かを判定する(B1204)。すなわち、ACTION部の値が、MODE部によって特定される種類のコマンドが取り得る値であるのか否かを判定する。そして、正しい組み合せである場合には(B1204の結果が「Y」)、B1205以降の処理でコマンドの系統に応じたコマンド処理を実行する。
演出制御装置300は、まず、MODE部の値が変動系コマンドの範囲か否かを判定する(B1205)。なお、変動系コマンドは、飾り特別図柄の変動パターンを指令するコマンドであり、変動コマンド(A4608とA4609)がある。そして、MODE部が変動系コマンドを表す場合には(B1205の結果が「Y」)、変動系コマンド処理を実行し(B1206)、受信コマンド解析処理を終了する。
演出制御装置300は、MODE部が変動系コマンドを表していない場合には(B1205の結果が「N」)、次に、MODE部が大当り系コマンドの範囲か否かを判定する(B1207)。なお、大当り系コマンドは、大当り中の演出に関する動作(ファンファーレ画面やラウンド画面の表示など)を指令するコマンドであり、例えば、ファンファーレコマンド(A5116)、ラウンドコマンド(A5702)、インターバルコマンド(A5907)、エンディングコマンド(A5909)などである。そして、MODE部が大当り系コマンドを表す場合には(B1207の結果が「Y」)、大当り系コマンド処理を実行し(B1208)、受信コマンド解析処理を終了する。
演出制御装置300は、MODE部が大当り系コマンドを表していない場合には(B1207の結果が「N」)、次に、MODE部が図柄系コマンドの範囲か否かを判定する(B1209)。なお、図柄系コマンドには、停止図柄パターンに対応する飾り特図コマンド(A4018、A4112)がある。そして、MODE部が図柄系コマンドを表す場合には(B1209の結果が「Y」)、図柄系コマンド処理を実行し(B1210)、受信コマンド解析処理を終了する。
演出制御装置300は、MODE部が図柄系コマンドを表していない場合には(B1209の結果が「N」)、次に、MODE部が単発系コマンドの範囲か否かを判定する(B1211)。そして、MODE部が単発系コマンドを表す場合には(B1211の結果が「Y」)、単発系コマンド処理を実行し(B1212)、受信コマンド解析処理を終了する。
なお、演出制御装置300は、排出球数に関するコマンド(図18のA2323)、出玉率(獲得球数)に対応するコマンド(図18のA2308)、役物比率の算出結果に対応するコマンド(図18のA2317)を演出コマンド(単発系コマンド)として受信し、単発系コマンド処理において、排出球数、出玉率、役物比率を表示するための表示設定処理を行ってよい。なお、演出制御装置300は、停電時でも記憶内容を保持可能なFeRAM323に、排出球数、出玉率、役物比率をバックアップ(記憶)してよい。
その他、単発系コマンド処理において、演出制御装置300は、例えば、以下のような処理を実行する。MODE部がRAM初期化のコマンドを表す場合に、RAM初期化の報知等を行うRAM初期化設定処理を実行する。MODE部が停電復旧時のコマンドや客待ちデモコマンドを表す場合に、停電復旧のための停電復旧設定処理や、表示装置41等に客待ちデモを表示するための客待ちデモ設定処理を実行する。MODE部が飾り特図1保留数コマンドや飾り特図2保留数コマンドを表す場合に、特図1保留情報設定処理や特図2保留情報設定処理を実行する。MODE部が確率情報コマンドを表す場合に、確率情報設定処理を実行する。MODE部がエラー/不正系のコマンドを表す場合に、エラーや不正の報知や報知解除をするためのエラー/不正設定処理を実行する。なお、エラー/不正系のコマンドとして、例えば、不正発生コマンド(A2108)、不正解除コマンド(A2116)、状態オフコマンド(A2404)、状態オンコマンド(A2407)がある。MODE部が演出モード切替用のコマンドを表す場合には、演出モード切替設定処理を実行する。
演出制御装置300は、MODE部が単発系コマンドを表していない場合には(B1211の結果が「N」)、次に、MODE部が先読み図柄系コマンドの範囲か否かを判定する(B1213)。先読み図柄系コマンドには、前述の先読み停止図柄コマンド(A3014)がある。そして、MODE部が先読み図柄系コマンドを表す場合には(B1213の結果が「Y」)、先読み図柄系コマンド処理を実行し(B1214)、受信コマンド解析処理を終了する。
演出制御装置300は、MODE部が先読み図柄系コマンドを表していない場合には(B1213の結果が「N」)、次に、MODE部が先読み変動系コマンドの範囲か否かを判定する(B1215)。先読み変動系コマンドには、前述の先読み変動パターンコマンド(A3018)がある。そして、MODE部が先読み変動系コマンドを表す場合には(B1215の結果が「Y」)、先読み変動系コマンド処理を実行し(B1216)、受信コマンド解析処理を終了する。
一方、演出制御装置300は、MODE部が先読み変動系コマンドを表していない場合には(B1215の結果が「N」)、予期しないコマンド(例えば、テストモード中のみ使用するコマンド)を受信した可能性があるので、受信コマンド解析処理を終了する。また、MODE部が正常範囲でない場合(B1202の結果が「N」)、ACTION部が正常範囲でない場合(B1203の結果が「N」)、もしくは、MODE部に対するACTION部が正しい組合せでない場合も(B1204の結果が「N」)、受信コマンド解析処理を終了する。
〔表示画面のレイアウト例〕
図81は、表示装置41の表示画面(表示部)のレイアウト例を示す図である。
表示装置41の表示画面には、排出球数を表示する排出球数表示部691、出玉率を表示する出玉率表示部692、役物比率を表示する役物比率表示部693が設けられる。図81では、排出球数、出玉率、役物比率は、各々、57、36、59.3の値が表示されている。
なお、排出球数、出玉率、役物比率を表示装置41の表示画面に常時表示しても邪魔になるので、例えば、ガラス枠や前面枠を開放した時にエラーメッセージ(ガラス枠開放エラー、前面枠開放エラーの表示)とともに、排出球数、出玉率、役物比率を表示するようにしてもよい。
その他、遊技者等による操作を受け付けるホール・遊技者設定モード(B1010)で、遊技者等による選択によって、排出球数、出玉率、役物比率の表示/非表示を切り替えたり、排出球数、出玉率、役物比率のいずれを表示するか選択できるようにしてもよい。また、ホール・遊技者設定モード(B1010)で、遊技者等による選択によって、排出球数を表示装置41でカウントダウン表示するかカウントアップ表示するか選択できるようにしてもよい。なお、選択は、選択肢を表示装置41にメニュー表示して、遊技者による演出ボタン25等の操作手段の操作により行ってよい。
さらに、客待ちデモ中に、表示装置41での排出球数、出玉率、役物比率は、非表示にしてもよい。なお、表示装置41での客待ちデモ中に、直近(最新)の排出球数、出玉率、役物比率を表示してもよいが、この場合には、客待ちデモ中のみ表示サイズをそれ以外の場合よりも大きくすれば、遊技していない遊技店の来店者にアピールできる。
表示装置41の表示画面には、複数の変動表示領域610(左領域610a、右領域610b、中領域610c)が設けられ、左領域610aでは第一特別図柄、右領域610bでは第二特別図柄、中領域610cでは第三特別図柄が変動表示される(図81では、停止図柄が表示されている)。なお、排出球数表示部691、出玉率表示部692、役物比率表示部693は、変動表示領域610の上側に設けられるが、これに限定されない。
また、排出球数、出玉率、役物比率は、変動表示領域610の変動表示や表示装置41でのその他の演出の邪魔になる場合に非表示にしたり表示サイズを小さくしてよいし、変動表示が停止して停止図柄が表示された場合のみ表示したり表示サイズを大きくしてよい。
また、同様に、表示装置41の表示画面の右下隅の複数の変動表示領域615において、三つの飾り縮小図柄(飾り特別図柄より小さい特別図柄)が変動表示される。表示画面の中央でムービー系のリーチ演出などが行われる場合に、変動表示領域615において飾り縮小図柄が変動表示されてよい。また、変動表示領域615において、常時、飾り縮小図柄が変動表示されてもよい。変動表示領域615は、特図1変動表示ゲームと特図2変動表示ゲームで共通に使用される。変動表示領域610の大きい飾り特別図柄と、変動表示領域615の小さい特別図柄は、相似形でも良いし、全く異なるものでもよい。
保留表示部630(始動記憶表示部)に表示される保留表示633(始動記憶表示)は、飾り特図1保留数コマンドから設定された特図1保留情報と、飾り特図2保留数コマンドから設定された特図2保留情報とに基づいて、画面描画されるものである(B1014−B1017)。保留表示633は、実行前の特図変動表示ゲームに係る保留(始動記憶)を示す。保留表示633として、特図1保留表示と特図2保留表示を入賞順(保留発生順)に保留表示部630に並べまとめて表示する。
保留表示部630には、球状(円状)の保留表示633が、左側を低くして傾斜した樋635に並べた態様で表示される。さらに、実行中の特図変動表示ゲームに係る保留(消化中の保留)に対応する保留対応表示633a(変動中保留表示)が、地球儀の枠を模した保留消化領域640に表示される(枠内の地球として)。保留表示部630に表示された保留表示633は、特図変動表示ゲームの開始毎に、樋635の左側から保留消化領域640に移動する。
さらに、表示装置41の表示画面の右上隅には、特図1保留数を数字で表示する特図1保留数表示部650と、特図2保留数を数字で表示する特図2保留数表示部660が設けられている。
表示装置41の表示画面の中央下部において、ナビキャラ670が表示される。ナビキャラ670は、通常、消化中の保留を示す保留対応表示633a(保留消化領域640)に隣り合わせで隣接するように配置されている。ナビキャラ670は、本体670aの他に、キャラクタ名の表示部分670bやメータ表示部を含む。また、ナビキャラ670に関連付けて、ナビキャラ670が発するように見せたセリフ(セリフ予告でもよい)がセリフ表示部680に表示される。なお、セリフは、表示するだけでなく、音声としても出力されてよい。また、ナビキャラ670の画面上での動作に応じて、排出球数、出玉率、役物比率を表示してよい(ナビキャラ670が動いて排出球数、出玉率、役物比率を表示するような演出を行う)。
[第1実施形態の作用・効果]
上記の第1実施形態では、払出制御手段(払出制御装置200等)は、遊技球が入賞領域(一般入賞口35や始動入賞口36)又は変動入賞装置(普通変動入賞装置37や特別変動入賞装置39)に入賞すると、入賞領域と変動入賞装置ごとに定められた賞球数の賞球を払い出し可能である。表示手段(役物比率表示部68、表示装置41等)は、払い出された賞球の合計数のうち、変動入賞装置に入賞したことによって払い出された賞球の数が占める割合(役物比率)を表示可能である。従って、遊技の興趣が向上するとともに、遊技者は変動入賞装置へ入賞し易い印象(開状態が多く発生する印象)を持つため、遊技者が継続して遊技を行う動機(指標)となる。
カウント手段(ステップA2015とA2210の処理を実行する遊技制御装置100等)は、遊技領域から排出された遊技球の数である排出球数、又は、遊技領域に発射された遊技球の数である発射球数をカウントする。表示手段(出玉率表示部67、表示装置41等)は、排出球数又は発射球数に対する、入賞により得られた賞球数の合計の比率(出玉率)を表示可能である。従って、遊技者に一般入賞口35への興味と関心を抱かせることができる。そして、遊技の興趣を高めることができる。
表示手段(排出球数表示部66、出玉率表示部67、役物比率表示部68、表示装置41等)は、遊技機が客待ち状態である場合に、排出球数、出玉率、役物比率を非表示の状態としてよい。即ち、遊技機が客待ち状態でない場合のみ、表示手段は、排出球数、出玉率、役物比率の表示を行ってよい。これは、遊技中の遊技者に対する特典となり、遊技機10の稼働を上げることができる。
表示手段(出玉率表示部67、表示装置41等)は、カウント手段によってカウントされた遊技球の数が所定個数になる毎に、当該所定個数の遊技球によって得られた賞球数の合計を表示可能である。従って、賞球数の合計として出玉率を簡易に表示できる。また、遊技者に一般入賞口35への興味と関心を抱かせることができ、遊技の興趣を高めることができる。
算出手段(入賞口スイッチ/状態監視処理を実行する遊技制御装置100等)は、所定個数となるタイミングで各入賞領域と変動入賞装置のうちいずれか複数に同時に入賞があった場合に、各入賞領域と変動入賞装置に対して定められた優先順位に基づいて、当該複数の入賞のうちの一つの入賞によって得られた賞球数を加算して賞球数の合計を算出する。従って、特に、普電サポート状態以外の通常遊技状態と特別遊技状態において、カウント手段によってカウントされた遊技球の数が所定個数になるタイミングで、可能な限り大きな賞球数の合計(出玉率)が求められ、遊技者の遊技に対する期待感を向上できる。
算出手段(入賞口スイッチ/状態監視処理を実行する遊技制御装置100等)は、特定遊技状態(普電サポート状態)が発生したか否かに応じて、賞球数を加算する対象の入賞領域(各入賞領域又は変動入賞装置)の優先順位を変更可能である。従って、特定遊技状態(普電サポート状態)では、普通変動入賞装置37への入賞が多いため、普通変動入賞装置37への入賞を優先して採用し、賞球数の合計を算出できる。
リセット手段(ステップA6510〜A6514の処理を実行する遊技制御装置100等)は、特別遊技状態の終了の際に、賞球数の合計(出玉率)をリセットして初期値に設定可能である。大当り状態(特別遊技状態)中では、賞球数の合計が非常に大きくなっているが、大当り状態終了後に賞球数の合計(出玉率)の正確な計測を開始できる。また、リセット手段は、特別遊技状態の終了の際に、払い出された賞球の合計数のうち変動入賞装置に入賞したことによって払い出された賞球の数が占める割合(役物比率)はリセットせずそのまま維持する。これにより、大当り状態(特別遊技状態)に関係なく、役物比率を正確に計測できる。
遊技情報出力手段(出力処理を実行する遊技制御装置100等)は、賞球数の合計(出玉率)に関する情報と、役物比率に関する情報とを外部の装置に出力可能である。従って、試射試験装置等の外部の装置に出力した賞球数の合計(出玉率)と外部の装置で求めた賞球数の合計(出玉率)を比較して不一致が生じていないか確認できる。
監視手段(入賞口スイッチ/状態監視処理を実行する遊技制御装置100等)は、得られる賞球数の多い順に各入賞領域と前記変動入賞装置への入賞を監視して、監視している際に入賞があった場合には当該入賞の賞球数を加算して賞球数の合計を算出する。従って、可能な限り大きな賞球数の合計(出玉率)が優先的に求められ、遊技者の遊技に対する期待感を向上できる。
[第2実施形態]
図82と図83を参照して、第2実施形態について説明する。第2実施形態では、遊技制御装置100により表示制御が実行される排出球数表示部66、出玉率表示部67、役物比率表示部68の他に、払出制御装置200により表示制御が実行される排出球数表示部851、出玉率表示部852、役物比率表示部853が備えられる。なお、以下で述べる以外の構成は、第1実施形態と同様でよい。
第2実施形態では、排出球数表示部66、出玉率表示部67、役物比率表示部68は、第1実施形態と同様に、遊技機10の前面の一括表示装置50に設けられ、排出球数表示部851、出玉率表示部852、役物比率表示部853は、遊技機10の裏面に設けられた払出制御装置200に備えられる。なお、これに限られず、払出制御装置200により表示制御される排出球数表示部851、出玉率表示部852、役物比率表示部853は、上皿ユニットに設けてもよい。このように、排出球数表示部851、出玉率表示部852、役物比率表示部853は、払出制御装置200や上皿ユニットに設けられる場合、遊技盤30を他の遊技盤と交換しても、廃棄されることなくそのまま使用が継続できるため、コストの削減につながる。
また、排出球数表示部851、出玉率表示部852、役物比率表示部853は、それぞれ、排出球数表示部66、出玉率表示部67、役物比率表示部68と同じく、複数(2つ又は3つ)の7セグメント型(点部分を含めると8セグメント型)の表示器(LEDランプ、表示装置)から構成される。
図82は、遊技機10の裏面図である。遊技盤30の裏面には、スイッチベース738を介して遊技を統括的に制御する遊技制御装置100(主基板)が配設され、スイッチベース738の上方の制御ベース733を介して遊技制御装置100から送信される演出制御指令に基づいて表示装置41等を制御する演出制御装置300が配設される。演出制御装置300の後方には、演出制御装置300の裏面及び遊技制御装置100の裏面上部を覆う保護カバー737が設けられる。このように構成された遊技盤30が前面枠12の収納部に収納された状態では、遊技盤30の裏面に配設された保護カバー737及び遊技制御装置100は、前面枠12の後方に突出する。
前面枠12の裏面上部には、島設備に設けられた補給装置(図示省略)から補給される遊技球を貯留するとともに、貯留した遊技球を整列させて流下させる貯留ユニット750が配設される。前面枠12の一方の内側部には、貯留ユニット750から流下してきた遊技球を上皿21(図1参照)に払い出す払出ユニット790が配設される。
また、前面枠12の裏面下部には、遊技制御装置100から送信されるデータに基づいて払出ユニット790の動作を制御する払出制御装置200と、操作ハンドル24の回動操作に基づいて遊技球を発射する球発射装置742と、カードユニット(図示省略)と接続する接続端子743と、各種装置に電力を供給する電源装置400とが配設される。
排出球数表示部851、出玉率表示部852、役物比率表示部853は、払出制御装置200(払出制御基板)の後面(背面)に配置され、排出球数表示部66、出玉率表示部67、役物比率表示部68と異なり、遊技機10の裏面側からのみ視認可能である。排出球数表示部851、出玉率表示部852、役物比率表示部853は、一般の遊技者に見せず、遊技店の関係者(従業員等)だけに視認可能である。なお、排出球数表示部66、出玉率表示部67、役物比率表示部68は、遊技機10の前面側からのみ視認可能となっている。
なお、排出球数、出玉率、役物比率の表示を一般の遊技者に見せたくない場合には、遊技機10の前面の排出球数表示部66、出玉率表示部67、役物比率表示部68を省略できる。この場合には、遊技機10の裏面側からのみ、排出球数表示部851、出玉率表示部852、役物比率表示部853によって排出球数、出玉率、役物比率の表示を確認できる。
また、払出制御装置200は、払出コマンドに基づいて、排出球数、出玉率(獲得球数、賞球数の合計)、役物比率を算出するとともに、払出制御装置200に設けられた排出球数表示部851、出玉率表示部852、役物比率表示部853に表示する表示制御を行う。なお、ここでの払出コマンドには、入賞口(入賞領域)への一の入賞を単位とした払出コマンド(A1719)とアウト球検出コマンド(A2017)の両方を含むものとする。なお、払出制御装置200が、遊技制御装置100で算出した排出球数、出玉率、役物比率を受信して、払出制御装置200に設けられた排出球数表示部851、出玉率表示部852、役物比率表示部853に表示する構成も可能である。
払出制御装置200は、CPU(マイコン)やRAM等のメモリから構成され、遊技制御装置100と同様に、排出球数を記憶する排出球数領域、排出球数100個当りにおける獲得球数(賞球数の合計)を記憶する獲得球数領域、役物別獲得球数を記憶する役物別獲得球数領域をメモリ内に有する(図17B参照)。排出球数、出玉率(獲得球数、賞球数の合計)、役物比率の計算方法は、第1実施形態と同じである。なお、アウト球検出コマンドは、排出球数の+1更新に用いられる。
図83は、払出コマンド(払出数コマンド)の構成例を示す。払出コマンドは、1バイト(8ビット)で構成される。払出コマンドにおいて、最上位ビット(第1ビット)は、アウト口30bへの入球があったことを示すアウト球フラグであり、第2ビットから第4ビットは、入賞口への入賞があった場合にその入賞口を特定するための入賞口情報を示し、第5ビットから第8ビットは、賞球数をそのまま示す。第2ビットから第4ビットの入賞口情報は、「001」が一般入賞口35を、「010」が始動口1(始動入賞口36)を、「011」が普通変動入賞装置37(始動口2)を、「100」が大入賞口(大当り中に入賞)を、「101」が大入賞口(小当り等の大当り中以外に入賞)を示す。なお、アウト球フラグが1(オン)に設定された場合、即ちアウト口30bへの入球があった場合には、賞球数は0である。第1実施形態と同じく、賞球数の合計は、獲得球数領域に記憶され、入賞口ごとの賞球数の合計は、役物別獲得球数として役物別獲得球数領域に記憶される。
例えば、払出コマンドは、16進数で表現すると、一般入賞口35への入賞による10個賞球は「1AH」であり、始動口1への入賞による3個賞球は「23H」であり、始動口2への入賞による2個賞球は「32H」であり、大入賞口への入賞による14個賞球(大当り)は「4EH」であり、大入賞口への入賞による14個賞球(小当り)は「5EH」であり、アウト球検出による通知(アウト球検出コマンド)は「80H」である。
[第2実施形態の作用・効果]
上記の第2実施形態では、第1実施形態と同様の作用効果を奏するとともに、払出制御装置200の後面(背面)に配置された排出球数表示部851、出玉率表示部852、役物比率表示部853によって、排出球数、出玉率、役物比率が、遊技機10の裏面側からでも視認できるようになる。
〔第1実施形態と第2実施形態のその他の変形例〕
第1実施形態と第2実施形態を以下のように変形した実施形態も可能である。
図84のように、遊技制御装置100により制御される排出球数表示部66、出玉率表示部67、役物比率表示部68は、遊技機10の前面ではなく、遊技機10の裏面に配置されてもよい。図84では、排出球数表示部66、出玉率表示部67、役物比率表示部68は、遊技機10の裏面に設けられる遊技制御装置100の後面(背面)に設けられ、遊技機10の裏面側からのみ視認可能である。この場合に、排出球数表示部66、出玉率表示部67、役物比率表示部68も、一般の遊技者に見せず、遊技店の関係者(従業員等)だけに見せることができる。なお、排出球数表示部66、出玉率表示部67、役物比率表示部68を遊技機10の裏面に配置すると、一般の遊技者に対して遊技機10の美観を損なわない可能性もある。また、排出球数表示部66、出玉率表示部67、役物比率表示部68は、遊技制御装置100の基板(主基板)上に設置される。遊技制御装置100の基板(主基板)はケース内に開封できないように密封されていなるため(かしめられているため)、排出球数表示部66、出玉率表示部67、役物比率表示部68の表示に対して不正を行うことはできない。
排出球数、出玉率、役物比率は、遊技機10の前面の一括表示装置50に設けた表示部(排出球数表示部66、出玉率表示部67、役物比率表示部68)と、遊技機10の裏面の払出制御装置200に設けた表示部(排出球数表示部851、出玉率表示部852、役物比率表示部853)と、表示装置41のうち全部ではなく1つ又は2つのみに表示してよい。さらに、排出球数、出玉率、役物比率の全てを表示せず、少なくとも一つを表示する構成でもよい。即ち、排出球数表示部66、出玉率表示部67、役物比率表示部68のいずれかを省略したり、排出球数表示部851、出玉率表示部852、役物比率表示部853のいずれかを省略してもよい。また、7セグメント型の表示器(LEDランプ)の数を増やして、役物比率表示部68として、連続役物比率を表示する第1表示部と、一般的に使用されるいわゆる役物比率(全役物比率)を表示する第2表示部との2つを設けて、連続役物比率といわゆる役物比率(全役物比率)の両方を同時に表示する構成も可能である。また、初期化スイッチ(RAMクリアスイッチ)(A1016)が押されてオンすることによって、役物比率表示部853において、全役物比率と連続役物比率を交互に表示切替できるようにしてもよい。
さらに、排出球数表示部66、出玉率表示部67、役物比率表示部68を個別に設けずに、4個の7セグメント型の表示器を横方向に並べた共通の表示器を1つだけ設けて、排出球数、出玉率、役物比率を表示する構成も可能である。このような共通の表示器では、初期化スイッチ(RAMクリアスイッチ)をオンする毎に、排出球数、出玉率、役物比率のうちいずれを表示するか順次切り替えられる。この場合、共通の表示器では、何を表示しているかを示す識別記号(アルファベット等)と一緒に排出球数、出玉率、役物比率のいずれか一つを表示する。例えば、排出球数は「h55」、出玉率は「d30」、全役物比率は「y50.8」、連続役物比率「r58.4」のように表示する。
また、遊技機10の遊技制御装置100や払出制御装置200のマイコン(CPU)の内部に排出球数、出玉率、役物比率を情報として保持しておき、遊技機10の表示部や表示装置41では排出球数、出玉率、役物比率を一切表示せず、外部の装置(試射試験装置等)に排出球数、出玉率、役物比率を出力(又は表示)するだけでもよい(もちろん、排出球数、出玉率、役物比率を、遊技機10の表示部や表示装置41で表示しつつ、外部の装置に出力してもよい)。
さらに、排出球数、出玉率、役物比率は、第1実施形態及び第2実施形態のように、遊技制御装置100、払出制御装置200、及び/又は、演出制御装置300においてユーザプログラムによって算出する以外に、遊技制御装置100、払出制御装置200、及び/又は、演出制御装置300のCPU自身に算出機能(ハード的な算出機能)を持たせて、内部レジスタにパラメータをセットすること(遊技球の発射(排出)、入賞を検知する毎に情報をセットするなど)によって、排出球数、出玉率、役物比率が自動的に算出されるようにしてもよい。そして、遊技制御装置100、払出制御装置200、及び/又は、演出制御装置300から外部の装置(検査装置500など)にハード的な算出機能(算出手段)によって算出された排出球数、出玉率、役物比率を出力してもよい。
電源投入からの排出球数の総計が所定個数(例えば、5000個)を超えた場合や、電源投入からの変動表示ゲームの実行回数が所定回数(例えば、100)を超えた場合に、特典として出玉率、役物比率を表示する構成としてよい。このようにすれば、遊技店の開店直後などに遊技機の稼働が上昇する可能性があるし、正確な役物比率を表示できる。
第1実施形態及び第2実施形態において、役物比率は、遊技機10の電源投入から現在までの全期間での賞球数(全賞球数)に対して算出されるが、所定期間や所定回数(例えば400回)の特図変動表示ゲームにおいて獲得した賞球数に対して計算されてもよい。例えば、所定期間は、1回分の大当りに関連する期間(大当り前の通常遊技状態から大当り終了まで)や、1回の連チャン(連荘)に関連する期間(大当り前の通常遊技状態から確変・時短(電サポ)が完全に終了するまで)であり、役物比率はこのような所定期間ごとに分けて算出されるようにしてもよい。
演出制御装置300は、払出コマンド(A1719)とアウト球検出コマンド(A2017)を受信して、自ら、排出球数、出玉率(獲得球数、賞球数の合計)、役物比率を計算してもよい。この場合に、演出制御装置300は、停電時でも記憶内容を保持可能なFeRAM323に、排出球数、出玉率、役物比率の計算結果をバックアップ(記憶)してよい。このようにすれば、停電復旧後(電源投入後)にすぐに表示装置41に排出球数、出玉率、役物比率を表示できる。また、この場合には、ホール・遊技者設定モード(B1010)で、遊技者等による選択によって、表示装置41に表示する役物比率の計算方法を切り替えて、演出制御装置300は、選択された計算方法に従って役物比率の計算し、表示装置41に表示してよい。なお、前述のように、役物比率の計算方法は、役物比率に、大当り状態中に大入賞口に入賞したことで得られた賞球数の全賞球数に対する割合(%)だけでなく、普通変動入賞装置37や小当り状態中の大入賞口に入賞したことで得られた賞球数の割合(%)を含めるかなどによって異なる。
また、獲得球数(払出賞球数)100個を1セット(1単位)として、1セットごとの役物による獲得球数(役物獲得球数)や役物以外の入賞口による獲得球数(入賞口獲得球数)をリングバッファに保存して、役物比率や出玉率などの算出に利用する構成が可能である。ここでの役物は、特別変動入賞装置39(大入賞口)及び普通変動入賞装置37(第2始動入賞口)であり、役物以外の入賞口は、一般入賞口35と始動入賞口36(第1始動入賞口)である。リングバッファは不正を防止するためクリア不可とし、時間や特図変動表示ゲーム回数に関係なく常に獲得球数を蓄積する。リングバッファに保存した役物獲得球数や入賞口獲得球数によって、所定期間や所定の獲得球数(払出賞球数)ごとに柔軟に役物比率や出玉率などを算出できる。
なお、保存形態として、役物獲得球数と入賞口獲得球数の両者を、例えば、各1バイトずつ合計2バイトのセット(ブロック)にして、リングバッファに保存してよい。また、役物獲得球数と入賞口獲得球数のうち一方を100から減算すれば他方を算出できるため、役物獲得球数と入賞口獲得球数のうち一方だけをリングバッファに保存してよい。さらに、役物獲得球数と入賞口獲得球数として、前述の役物(入賞口)ごとの役物別獲得球数(図17B参照)をリングバッファに保存してもよい。
リングバッファは、遊技制御装置100(主基板)、払出制御装置200(払出基板)、演出制御装置300(サブ基板)の何れかに搭載したフラッシュメモリなどの不揮発性メモリに設けてよい。これにより、役物獲得球数と入賞口獲得球数を特別にバックアップする必要がなくなる。リングバッファのサイズは、例えば、600セット分とする。球発射装置の1分間の発射球数が約100個で出玉率100%と仮定すると、1分間に100個(1セット)の賞球の払い出しがあるため、600セットなら出玉率100%で約10時間分の獲得球数の保存が可能になる。
リングバッファに空きがある場合は、その旨を報知してもよい。演出用の表示装置41は、画面上にリングバッファに空きがあること示す表示を出して報知してよい。この報知は、遊技中(客待ち状態以外)、客待ち状態、又は、ホール設定モードでのみ行ってよい。また、一括表示装置50や遊技制御装置100などに専用のLEDを設け、点灯や点滅による報知を行ってよい。専用のLEDを設けず、既存のLEDを通常と異なる点灯態様(色や点滅)にして報知してもよい。リングバッファに空きがあることを示す空き情報を試射試験信号や外部情報信号として送信し、試射試験装置や外部装置に表示してリングバッファに空きがあることを報知してよい。その他、上スピーカ19a又は下スピーカ19bの音声によって、報知を行ってよい。
[第3実施形態]
図85から図99を参照して、第3実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態又は第2実施形態と共通の構成が適用できる。
第3実施形態では、大当り終了タイミング、高確率終了タイミング、及び/又は、時短終了タイミングにおいて、表示装置41に役物比率(全役物比率(いわゆる役物比率)と連続役物比率)が表示される。また、役物比率は、所定ラウンド回数のラウンド遊技からなる特別遊技(大当り)毎に区分けした値(特別遊技終了毎にリセットして計測した値)が特別遊技に関する大当り履歴情報に含めて保存され、大当り履歴情報に含めて表示装置41に表示可能である。
〔第3実施形態の出玉性能監視処理〕
図85は、第3実施形態に係る出玉性能監視処理の手順を示すフローチャートである。出玉性能監視処理は、入賞数カウンタ更新処理(図17A)のステップA2211にて、遊技制御装置100によって実行される。なお、図18の出玉性能監視処理と同じ内容のステップは、ステップ番号を同じにして説明を省略する。
遊技制御装置100は、ステップA2313において、図17B(III)に示した各役物別獲得球数領域の値の合計値(全賞球数)を算出した後、各役物獲得球数を各役物別獲得球数領域からロードする(A9801)。ここでの各役物獲得球数は、大当り中の大入賞口への入賞による賞球数の合計、小当り中(大当り中以外)の大入賞口への入賞による賞球数の合計、普通変動入賞装置37(始動口2)への入賞による賞球数の合計である。
次に、遊技制御装置100は、役物獲得球数に基づいて、役物比率として(役物獲得球数÷合計値)×100(%)を算出する(A9802)。ここで、役物比率として、いわゆる連続役物比率(大当り状態中に大入賞口に入賞したことで得られた賞球数の割合(%))と、一般的に使用されるいわゆる役物比率(全役物比率:大入賞口及び普通変動入賞装置37に入賞したことで得られた賞球数の割合(%))の両方が算出される。連続役物比率を算出する場合に、役物獲得球数として、大当り中の大入賞口への入賞による賞球数の合計を用いる。全役物比率を算出する場合に、役物獲得球数として、大当り中の大入賞口への入賞による賞球数の合計、小当り中(大当り中以外)の大入賞口への入賞による賞球数の合計、及び、普通変動入賞装置37(始動口2)への入賞による賞球数の合計を足し合わせたもの(総計)を用いる。なお、ここで、連続役物比率と全役物比率の他に、大入賞口比率(全賞球数のうち大当り状態中と小当り状態中に大入賞口に入賞したことで得られた賞球数の割合)など、他の役物比率を算出してもよい。
続いて、遊技制御装置100は、連続役物比率と全役物比率の算出結果うち一方の算出結果を役物比率表示部68に表示するために、この一方の算出結果に対応するセグメントデータを、役物比率表示部68のセグメントに対応するセグメント領域にセーブする(A9803)。
そして、遊技制御装置100は、現在、大当り終了タイミングであるか否かを判定する(A9804)。ここで、大当り終了タイミングは、大当り状態(特別遊技状態)が終了したと認識できるタイミングであれば種々に設定可能である。例えば、大当り終了タイミングは、残存球処理時間(最終用)が経過することによって(A5908)、大入賞口残存球処理(図49)で最終ラウンドであると判定され(A6101の結果が「Y」)、ステップA6112からA6122の処理が実行されたタイミング(エンディング開始時)でよい。また、大当り終了タイミングは、エンディング中や、エンディング終了時、即ちエンディング時間(A6114)の経過時でもよい。
遊技制御装置100は、現在、大当り終了タイミングである場合(A9804の結果が「Y」)、連続役物比率と全役物比率の算出結果(A9802)に対応するコマンドを演出コマンドとして準備し(A2317)、演出コマンド設定処理を実行する(A2318)。
これにより、特別遊技状態が終了するタイミング(大当り終了タイミング)において、演出制御装置300は、表示装置41において連続役物比率と全役物比率(いわゆる役物比率)を表示できる。なお、特別遊技状態(大当り状態)中において、特別変動入賞装置39(大入賞口)の開放によって連続役物比率と全役物比率が通常遊技状態よりも大きく変化するため、ここでの役物比率を表示しても遊技者が混乱するだけであり無駄が多い。そこで、大きく変化した直後の大当り終了タイミングで連続役物比率と全役物比率を表示している。
遊技制御装置100は、現在、大当り終了タイミングでない場合(A9804の結果が「N」)、現在、高確率終了タイミング又は時短終了タイミングであるか否かを判定する(A9805)。ここで、高確率終了タイミング又は時短終了タイミング(特定遊技状態終了タイミング)は、高確率状態又は時短状態(普電サポート状態)が終了したと認識できるタイミングであれば種々に設定可能である。第1実施形態のように大当りが終了すると必ず確変状態になる(所謂ST状態に必ずなる)場合には、高確率終了タイミングと時短終了タイミングとは同じタイミングであり、例えば、高確率変動回数が0となり(A5203の結果が「Y」)、ステップA5204からA5211までの処理が実行されたタイミングである。なお、第1実施形態と異なり、低確率での時短状態(普電サポート状態)が存在する機種では、高確率終了タイミングとは異なる時短終了タイミングが存在することになる。
遊技制御装置100は、現在、高確率終了タイミング又は時短終了タイミングである場合(A9805の結果が「Y」)、連続役物比率と全役物比率の算出結果(A9802)に対応するコマンドを演出コマンドとして準備し(A2317)、演出コマンド設定処理を実行する(A2318)。
これにより、特定遊技状態が終了するタイミング(高確率終了タイミング又は時短終了タイミング)において、演出制御装置300は、表示装置41において連続役物比率と全役物比率(いわゆる役物比率)を表示できる。なお、特定遊技状態中において、普電サポートによる普通変動入賞装置37(第2始動入賞口)の開放によって連続役物比率と全役物比率の変化が通常遊技状態よりも大きくなるため、ここでの比率を表示しても遊技者が混乱するだけであり無駄が多い。そこで、大きく変化した直後の特定遊技状態終了タイミングで連続役物比率と全役物比率を表示している。
遊技制御装置100は、現在、高確率終了タイミングでも時短終了タイミングでもない場合(A9805の結果が「N」)、ステップA2317とステップA2318の処理を実行せずに、ステップA2319に移行する。
以上の処理によって、出玉性能監視処理が実行された場合(入賞が発生した場合)に、常に連続役物比率と全役物比率を算出しておき、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミング(役物比率が大きく変化した直後のタイミング)において、演出制御装置300は、連続役物比率と全役物比率を表示装置41に表示できる。なお、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミングのいずれかのみにおいて、連続役物比率と全役物比率が表示装置41に表示される構成としてもよい。
なお、大当り終了設定処理1(図51)が実行された場合に高確率且つ時短なし(普電サポートなし)の潜伏確変状態となるが、大当り終了後に潜伏確変状態となり所定回数の特図変動表示ゲームが実行された場合には、連続役物比率と全役物比率の算出結果(A9802)に対応するコマンドを演出コマンドとして準備し(A2317)、演出コマンド設定処理を実行する構成としてもよい(A2318)。
図86は、第3実施形態に係る出玉性能監視処理の変形例を示すフローチャートである。
図86では、ステップA9804、A9805と、ステップA2313、A9801−A9803の順序が入れ替わっており、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミングでのみ、連続役物比率と全役物比率を算出し(A9802)、算出結果に対応するコマンドを演出コマンドとして準備し(A2317)、演出コマンド設定処理を実行する。図86では、出玉性能監視処理が実行された場合に、常に連続役物比率と全役物比率が算出されるわけではなく、計算の負荷が減少する。
以上のように、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミング(役物比率が大きく変化した直後のタイミング)において、連続役物比率と全役物比率が算出され、演出制御装置300は、連続役物比率と全役物比率を表示装置41に表示できる。なお、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミングのいずれかのみにおいて、連続役物比率と全役物比率が算出され、表示装置41に表示される構成としてもよい。
〔第3実施形態の特図普段処理移行設定処理2〕
図87は、第3実施形態に係る特図普段処理移行設定処理2の手順を示すフローチャートである。特図普段処理移行設定処理2は、大当り終了処理(図50)のステップA6219にて、遊技制御装置100によって実行される。なお、図53の特図普段処理移行設定処理2と同じ内容のステップは、ステップ番号を同じにして説明を省略する。
大当り終了の際に、ステップA6510からA6514において、遊技制御装置100は、排出球数領域と獲得球数領域を0クリア(リセット)し、排出球数と出玉率の表示を初期表示(「00」)にする設定を行う。
次に、遊技制御装置100は、全ての役物別獲得球数領域を0クリア(リセット)し(A6515)、役物比率の初期表示「00.0」のセグメントデータを役物比率表示部68のセグメントに対応するセグメント領域にセーブする(A6516)。これにより、出力処理(図11のA1610)を介して、大当り終了の際に役物比率表示部68において役物比率を「00.0」と表示することができる。
また、特別遊技(大当り)が終了する度に全ての役物別獲得球数領域が0クリアされるため、各役物別獲得球数領域は、前回の特別遊技の終了時(初回の特別遊技終了前は遊技機10の電源投入時)からの賞球数を記憶する。従って、ステップA9802によって算出される役物比率(連続役物比率と全役物比率)や、ステップA2318によって演出制御装置300に送信される役物比率(連続役物比率と全役物比率)は、所定ラウンド回数のラウンド遊技からなる特別遊技毎に区分けされた役物比率(特別遊技毎にリセットして計測された役物比率)となる。即ち、特別遊技(大当り)毎に区分けされた役物比率は、1つの特別遊技の終了時から(初回の特別遊技終了前は遊技機10の電源投入時から)、次の特別遊技の終了時又は特定遊技状態(高確率状態や時短状態)の終了時までの期間における賞球数に対して算出された役物比率である。
役物比率(連続役物比率と全役物比率)は基準値(例えば、連続役物比率で60%、全役物比率で70%)以下にすることが規則等で要請されているが、遊技機10の電源投入から現在までの全期間での賞球数に対する役物比率は、遊技機10の稼働時間が長くならないと安定しない。例えば、稼働時間が短い間に特別遊技(大当り)が発生して役物比率が基準値を超えた場合に、全期間での賞球数に対する役物比率が異常値を示していると遊技者等に誤判断されてしまう可能性がある。
一方、特別遊技毎に区分けされた役物比率は、不安定な値であり、基準値から大きく離れた値になり得ることが予めわかっている。そこで、全期間での役物比率ではなく、最初から、特別遊技毎に区分けされた役物比率を算出して表示装置41に表示しておくことにより、遊技者等は、基準値以外に自身の知識や情報に基づいて役物比率が異常値であるか否か判断することになり、誤判断が少なくなる。
なお、第1実施形態と第2実施形態と同様に、図53の特図普段処理移行設定処理2(ステップA6515とA6516がない)を実行して、遊技制御装置100は、遊技機10の電源投入から現在までの全期間での賞球数(獲得球数)に対して役物比率を算出する構成としてもよい。また、RWM内に、各役物別獲得球数領域の役物獲得球数を累積して記憶する領域を各役物別獲得球数領域に対応して設けて、遊技制御装置100は、遊技機10の電源投入から現在までの全期間での賞球数(獲得球数)に対する役物比率を、特別遊技(大当り)毎に区分けされた役物比率と共に算出する構成としてもよい。
〔単発系コマンド処理〕
図88は、第3実施形態に係る単発系コマンド処理の手順を示すフローチャートである。単発系コマンド処理は、受信コマンド解析処理(図80)のステップB1212にて、演出制御装置300によって実行される。
演出制御装置300は、まず、MODE部が遊技機の種類を示す機種指定コマンドを表すか否かを判定する(B1301)。そして、MODE部が機種指定コマンドを表す場合には(B1301の結果が「Y」)、遊技機の種類を設定する機種設定処理を実行し(B1302)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が機種指定コマンドを表していない場合には(B1301の結果が「N」)、次に、MODE部がRAM初期化のコマンドを表すか否かを判定する(B1303)。そして、MODE部がRAM初期化のコマンドを表す場合には(B1303の結果が「Y」)、RAM初期化の報知等を行うRAM初期化設定処理を実行し(B1304)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部がRAM初期化のコマンドを表していない場合には(B1303の結果が「N」)、次に、MODE部が停電復旧時のコマンドを表すか否かを判定する(B1305)。そして、MODE部が停電復旧時のコマンドを表す場合には(B1305の結果が「Y」)、停電復旧設定処理を実行し(B1306)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が停電復旧時のコマンドを表していない場合には(B1305の結果が「N」)、次に、MODE部が客待ちデモコマンドを表すか否かを判定する(B1307)。そして、MODE部が客待ちデモコマンドを表す場合には(B1307の結果が「Y」)、客待ちデモ設定処理を実行し(B1308)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が客待ちデモコマンドを表していない場合には(B1307の結果が「N」)、次に、MODE部が飾り特図1保留数コマンド(A3207)を表すか否かを判定する(B1309)。そして、MODE部が飾り特図1保留数コマンドを表す場合には(B1309の結果が「Y」)、特図1保留情報設定処理を実行し(B1310)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が飾り特図1保留数コマンドを表していない場合には(B1309の結果が「N」)、次に、MODE部が飾り特図2保留数コマンド(A3203)を表すか否かを判定する(B1311)。そして、MODE部が飾り特図2保留数コマンドを表す場合には(B1311の結果が「Y」)、特図2保留情報設定処理を実行し(B1312)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が飾り特図2保留数コマンドを表していない場合には(B1311の結果が「N」)、次に、MODE部が確率情報コマンドを表すか否かを判定する(B1313)。そして、MODE部が確率情報コマンドを表す場合には(B1313の結果が「Y」)、確率情報設定処理を実行し(B1314)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が確率情報コマンドを表していない場合には(B1313の結果が「N」)、次に、MODE部がエラー/不正系のコマンドを表すか否かを判定する(B1315)。なお、エラー/不正系のコマンドとして、例えば、不正発生コマンド(A2108)、不正解除コマンド(A2116)、状態オフコマンド(A2404)、状態オンコマンド(A2407)がある。そして、MODE部がエラー/不正系のコマンドを表す場合には(B1315の結果が「Y」)、エラーや不正の報知や報知解除をするためのエラー/不正設定処理を実行し(B1316)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部がエラー/不正系のコマンドを表していない場合には(B1315の結果が「N」)、次に、MODE部が演出モード切替用のコマンド(例えば、A5139の演出モード切替準備コマンド)を表すか否かを判定する(B1317)。そして、MODE部が演出モード切替用のコマンドを表す場合には(B1317の結果が「Y」)、演出モード切替設定処理を実行し(B1318)、単発系コマンド処理を終了する。
演出制御装置300は、MODE部が演出モード切替用のコマンドを表していない場合には(B1317の結果が「N」)、次に、MODE部がカウントのコマンド(A3107、A3111の大入賞口カウントコマンド)を表すか否かを判定する(B1319)。そして、MODE部がカウントのコマンドを表す場合には(B1319の結果が「Y」)、カウント情報設定処理を実行し(B1320)、単発系コマンド処理を終了する。カウント情報設定処理の詳細は、後述する。
演出制御装置300は、MODE部がカウントのコマンドを表していない場合には(B1319の結果が「N」)、次に、MODE部が賞球に関する情報(A2317の役物比率の算出結果に対応するコマンド)を表すか否かを判定する(B1321)。そして、MODE部が賞球に関する情報を表す場合には(B1321の結果が「Y」)、役物比率設定処理を実行し(B1322)、単発系コマンド処理を終了する。役物比率設定処理の詳細は、後述する。
演出制御装置300は、MODE部が賞球に関する情報を表していない場合には(B1321の結果が「N」)、次に、MODE部が図柄停止のコマンドを表すか否かを判定する(B1323)。なお、図柄停止のコマンドには、例えば、特図1の図柄停止コマンドと特図2の図柄停止コマンドがある。そして、MODE部が図柄停止のコマンドを表す場合には(B1323の結果が「Y」)、演出制御装置300は、次に、MODE部のコマンドが正常なコマンドであるか否かを判定する(B1324)。
MODE部のコマンドが正常なコマンドである場合には(B1324の結果が「Y」)、演出制御装置300は、対応する特図の停止態様を設定し(B1325)、全図柄が停止した後に遊技状態フラグを通常状態に設定して(B1326)、単発系コマンド処理を終了する。B1326の処理では、一例として、遊技状態フラグを通常状態に設定しているが、本処理が実行されるタイミングによって、遊技状態フラグは、「変動中」「大当り中」「小当り中」のフラグが設定される。
一方、MODE部が図柄停止のコマンドを表していない場合(B1323の結果が「N」)、または、MODE部のコマンドが正常ではない場合(B1324の結果が「N」)には、演出制御装置300は、単発系コマンド処理を終了する。
〔カウント情報設定処理〕
次に、図89を参照して、前述した単発系コマンド処理(図88)におけるカウント情報設定処理(B1320)の詳細について説明する。図89は、演出制御装置300によって実行されるカウント情報設定処理の手順を示すフローチャートである。カウント情報設定処理は、特別遊技状態における獲得出玉数をカウントするものであり、単発系のコマンドとして受信したコマンドのうち、MODE部がカウントを表す場合に実行される。
演出制御装置300は、まず、受信したカウントのコマンド(大入賞口カウントコマンド)が正常なコマンドであるか否かを判定する(B1401)。コマンドが正常である場合には(B1401の結果が「Y」)、演出制御装置300は、次に、現在の遊技機10が大当り動作中(大当り状態中)であるか否かを判定する(B1402)。
大当り動作中である場合には(B1402の結果が「Y」)、演出制御装置300は、現在のラウンド中のカウント数を+1更新して、獲得出玉数に大入賞口の賞球数(ここでは14)を加算する(B1403、B1404)。なお、大当りのエンディングが終了する時点で、獲得出玉数は0クリアされる。獲得出玉数は、RAM内(例えばRAM322内)の出玉数領域に保存される。
次に、演出制御装置300は、出玉数表示の更新設定を行い(B1405)、カウント情報設定処理を終了する。出玉数表示として、獲得出玉数を表示装置41等に表示する。
一方、受信したコマンドが正常ではない場合(B1401の結果が「N」)、又は現在の遊技機1が大当り動作中ではない場合には(B1402の結果が「N」)、カウント情報設定処理を終了する。
〔役物比率設定処理〕
次に、図90を参照して、前述した単発系コマンド処理(図88)における役物比率設定処理(B1322)の詳細について説明する。図90は、演出制御装置300によって実行される役物比率設定処理の手順を示すフローチャートである。役物比率設定処理は、全役物比率(いわゆる役物比率)と連続役物比率を保存し、これらを表示設定するものであり、演出制御装置300が単発系のコマンドとして賞球に関する情報(A2317の役物比率の算出結果に対応するコマンド)を受信した場合に実行される。
演出制御装置300は、まず、受信した賞球に関する情報のコマンドが正常なコマンドであるか否かを判定する(B1501)。コマンドが正常でない場合には(B1501の結果が「N」)、役物比率設定処理を終了する。
演出制御装置300は、コマンドが正常である場合(B1501の結果が「Y」)、受信したコマンドが全役物比率の算出結果に対応するか否か判定する(B1502)。受信したコマンドが全役物比率の算出結果に対応しない場合(B1502の結果が「N」)、ステップB1505の処理に移行する。受信したコマンドが全役物比率の算出結果に対応する場合(B1502の結果が「Y」)、全役物比率をRAM内に保存し(B1503)、全役物比率を表示装置41に表示するための表示設定を実行する(B1504)。
次に、演出制御装置300は、受信したコマンドが連続役物比率の算出結果に対応するか否か判定する(B1505)。受信したコマンドが連続役物比率の算出結果に対応しない場合(B1505の結果が「N」)、役物比率設定処理を終了する。受信したコマンドが連続役物比率の算出結果に対応する場合(B1505の結果が「Y」)、連続役物比率をRAM内に保存し(B1506)、連続役物比率を表示装置41に表示するための表示設定を実行し(B1507)、役物比率設定処理を終了する。
なお、大当り終了タイミングで受信した全役物比率と連続役物比率は、大当り終了タイミングでの獲得出玉数(大当り中の最終的な獲得出玉数)と共に、1つのセットとして、RAM内(例えばRAM322内)の大当り履歴領域に保存される(B1503、B1506)。なお、大当り履歴領域には、遊技機10の電源投入から発生した大当りの順に、大当り履歴1、大当り履歴2、大当り履歴3、・・・が保存されており、大当り履歴毎に、全役物比率と連続役物比率と獲得出玉数がセットになって保存されている。また、全役物比率と連続役物比率は、表示設定(B1504、B1507)によって、大当り終了タイミングにおいて、大当り履歴として表示装置41に表示される。大当り終了タイミングにおいて表示される役物比率は、ある1つの特別遊技の終了時(初回の特別遊技終了前は遊技機10の電源投入時)から、次の特別遊技(大当り)の終了時までの期間に得た賞球数に対して算出される役物比率である。
また、RAM内において、高確率終了タイミングや時短終了タイミングにおいて略同じタイミングで受信した全役物比率と連続役物比率は1つのセット(ペア)として関連付けて保存される。また、全役物比率と連続役物比率は、表示設定(B1504、B1507)によって、高確率終了タイミング、及び、時短終了タイミングにおいて同時に表示装置41に表示される。高確率終了タイミングや時短終了タイミングにおいて表示される役物比率は、前回の特別遊技の終了時から、特定遊技状態(高確率状態や時短状態)が終了するまでの期間に得た賞球数に対して算出される役物比率である。
〔図柄系コマンド処理〕
次に、図91を参照して、第3実施形態に係る図柄系コマンド処理の詳細について説明する。図柄系コマンド処理は、受信コマンド解析処理(図80)のステップB1210で実行される。図91は、演出制御装置300によって実行される図柄系コマンド処理の手順を示すフローチャートである。
演出制御装置300は、受信した図柄系コマンド(飾り特図1コマンド又は飾り特図2コマンド)のMODE部に対応する特図種別を設定する(B1801)。特図種別は、特図1又は特図2である。そして、図柄系コマンドのMODE部とACTION部(ACT部)の組合せに対応する図柄種別を設定し、RAM内の所定領域にセーブする(B1802)。ここで、特図1と特図2では、図柄の振分け割合が変わるので、MODE毎にテーブルを使用して、図柄種別を設定する。なお、本実施形態において、図柄種別は、はずれ図柄や、4R確変大当り図柄、16R確変大当り図柄などがある。
〔変動系コマンド処理〕
次に、図92を参照して、第3実施形態に係る変動系コマンド処理の詳細について説明する。変動系コマンド処理は、受信コマンド解析処理(図80)におけるステップB1206において実行される。図92は、演出制御装置300によって実行される変動系コマンド処理の手順を示すフローチャートである。
演出制御装置300は、受信した変動系コマンド(変動コマンド)の特図種別(特図1又は特図2)が未確定であるか否かを判定する(B1901)。特図種別が未確定である場合(B1901の結果が「Y」)、変動系コマンド処理を終了する。特図種別が未確定でない場合(B1901の結果が「N」)、受信した変動系コマンドと図柄系コマンドの組合せをチェックし(B1902)、変動系コマンドと図柄種別が不整合であるか否かを判定する(B1903)。ここで、不整合とは、はずれの変動系コマンドを受信したのに大当り図柄の図柄系コマンドを受信していた場合など、演出を行う上で矛盾してしまうことである。変動系コマンドと図柄種別が不整合である場合(B1903の結果が「Y」)、変動系コマンド処理を終了する。
演出制御装置300は、変動系コマンドと図柄種別が不整合でない場合(B1903の結果が「N」)、変動系コマンド(変動コマンド)から変動パターン種別を判別し(B1904)、変動中の演出である変動演出を設定する変動演出設定処理を実行する(B1905)。なお、同じ変動系コマンドに対して、複数の演出が存在する。続いて、遊技状態(P機状態)を示す遊技状態フラグに特図変動中を設定し(B1906)、連続演出等の先読み演出回数が0でなければ−1更新する(B1907)。そして、特図変動回数を+1更新し(B1908)、変動系コマンド処理を終了する。なお、特図変動回数は、遊技機10の電源投入からの特図変動表示ゲームの実行回数(スタート数)であり、更新後の特図変動回数は、RAM内(例えばRAM322内)の特図変動回数領域に保存される。
〔大当り系コマンド処理〕
次に、図93を参照して、第3実施形態に係る大当り系コマンド処理の詳細について説明する。大当り系コマンド処理は、受信コマンド解析処理(図80)におけるステップB1208において実行される。図93は、演出制御装置300によって実行される大当り系コマンド処理の手順を示すフローチャートである。
演出制御装置300は、まず、受信した大当り系コマンドのMODE部がファンファーレを表すか否かを判定する(B2101)。大当り系コマンドのMODE部がファンファーレを表す場合(B2101の結果が「Y」)、即ち、大当り系コマンドがファンファーレコマンドである場合、ファンファーレ演出を設定するためのファンファーレ演出設定処理を実行する(B2102)。なお、ファンファーレコマンドには、今回の大当りのラウンド数上限値の情報が含まれている。続いて、現在の遊技機10の遊技状態(P機状態)を示す遊技状態フラグにファンファーレ中を設定し(B2103)、大当り系コマンド処理を終了する。なお、ラウンド数上限値は、図柄系コマンド(停止図柄パターンに対応する飾り特図コマンド)から判定される図柄種別からも得ることができる。
演出制御装置300は、受信した大当り系コマンドのMODE部がファンファーレを表さない場合には(B2101の結果が「N」)、大当り系コマンドのMODE部がラウンドを表すか否かを判定する(B2104)。MODE部がラウンドを表す場合(B2104の結果が「Y」)、即ち、大当り系コマンドがラウンドコマンドである場合、演出制御装置300は、ラウンド演出設定処理を実行し、現在の遊技機10の遊技状態(P機状態)を示す遊技状態フラグにラウンド中を設定し(B2105、B2106)、大当り系コマンド処理を終了する。
受信した大当り系コマンドのMODE部がラウンドを表さない場合には(B2104の結果が「N」)、演出制御装置300は、大当り系コマンドのMODE部がインターバルを表すか否かを判定する(B2107)。MODE部がインターバルを表す場合(B2107の結果が「Y」)、即ち、大当り系コマンドがインターバルコマンドである場合、演出制御装置300は、インターバル演出設定処理を実行し、現在の遊技機10の遊技状態(P機状態)を示す遊技状態フラグにインターバル中を設定し(B2108、B2109)、大当り系コマンド処理を終了する。
受信した大当り系コマンドのMODE部がインターバルを表さない場合には(B2107の結果が「N」)、演出制御装置300は、大当り系コマンドのMODE部がエンディングを表すか否かを判定する(B2110)。MODE部がエンディングを表す場合(B2110の結果が「Y」)、即ち、大当り系コマンドがエンディングコマンドである場合、演出制御装置300は、役物比率と大当り中の獲得出玉数に対応する演出ポイントを加算する際の演出表示としてポイント加算演出表示を設定する(B2111)。なお、ポイント加算演出表示では、例えば、表示装置41にキャラクタを出現させる。
続いて、演出制御装置300は、役物比率(全役物比率と連続役物比率の両方またはいずれか)に対応したエンディング演出を設定するためのエンディング演出設定処理を実行し(B2112)、現在の遊技機10の遊技状態(P機状態)を示す遊技状態フラグにエンディング中を設定し(B2113)、大当り系コマンド処理を終了する。なお、エンディング演出を最終的な獲得出玉数にも対応させて設定してもよい。
なお、受信した大当り系コマンドのMODE部がエンディングを表さない場合には(B2110の結果が「N」)、演出制御装置300は、いずれの処理も実行せずに、大当り系コマンド処理を終了する。
〔演出ポイント制御処理〕
次に、図94を参照して、第3実施形態に係る演出ポイント制御処理の詳細について説明する。演出ポイント制御処理は、メイン処理(図78)におけるステップB1011において実行される。図94は、演出制御装置300によって実行される演出ポイント制御処理の手順を示すフローチャートである。なお、演出ポイントには、過去の遊技から現在までに獲得したポイントの累計である所有ポイントと、今回の遊技中(所定期間)に獲得したポイントである遊技中獲得ポイントがある。
演出制御装置300は、まず、演出ポイント対象(演出ポイントを付与する対象)の先読み演出が実行されたか否かを判定する(B2501)。なお、先読み演出は、先読み図柄系コマンドと先読み変動系コマンドに基づいて実行される演出であって、連続演出(連続予告)、保留変化予告、先読みゾーン予告などの演出である。演出ポイント対象の先読み演出が実行されていない場合(B2501の結果が「N」)、ステップB2504の処理に移行する。演出ポイント対象の先読み演出が実行された場合(B2501の結果が「Y」)、所有ポイント数に演出に対応するポイントを加算し(B2502)、遊技中獲得ポイント数に演出に対応するポイントを加算する(B2503)。
次に、演出制御装置300は、演出ポイント対象の変動演出が実行されたか否かを判定する(B2504)。ここで、変動演出は、現在実行中の特図変動表示ゲームの結果に関連する演出(予告演出等)である。演出ポイント対象の変動演出が実行されていない場合(B2504の結果が「N」)、ステップB2507の処理に移行する。演出ポイント対象の変動演出が実行された場合(B2504の結果が「Y」)、所有ポイント数に演出に対応するポイントを加算し(B2505)、遊技中獲得ポイント数に演出に対応するポイントを加算する(B2506)。
続いて、演出制御装置300は、演出ポイント対象となる入力条件が成立したか否かを判定する(B2507)。演出ポイントが付与される演出ポイント対象の演出ボタン操作があった場合、この入力条件が成立したと判定される。演出ポイント対象となる入力条件が成立していない場合(B2507の結果が「N」)、ステップB2510の処理に移行する。演出ポイント対象となる入力条件が成立した場合(B2507の結果が「Y」)、所有ポイント数に入力(ここでは演出ボタン操作)に対応するポイントを加算し(B2508)、遊技中獲得ポイント数に入力(ここでは演出ボタン操作)に対応するポイントを加算する(B2509)。
その後、演出制御装置300は、大当りのエンディングでの加算タイミングであるか否かを判定する(B2510)。大当りのエンディングでの加算タイミングでない場合(B2510の結果が「N」)、ステップB2513の処理に移行する。大当りのエンディングでの加算タイミングである場合(B2510の結果が「Y」)、所有ポイント数に役物比率(全役物比率と連続役物比率の両方またはいずれか)と今回の大当りにおける獲得出玉数に対応するポイントを加算し(B2511)、遊技中獲得ポイント数に役物比率(全役物比率と連続役物比率の両方またはいずれか)と今回の大当りにおける獲得出玉数に対応するポイントを加算する(B2512)。
次に、演出制御装置300は、遊技中獲得ポイント数に関してキャラクタレベルアップ条件が成立したか否かを判定する(B2513)。例えば、遊技中獲得ポイント数が所定値以上の場合にキャラクタレベルアップ条件が成立したと判定できる。キャラクタレベルアップ条件が成立していない場合(B2513の結果が「N」)、ステップB2516の処理に移行する。遊技中獲得ポイント数に関してキャラクタレベルアップ条件が成立した場合(B2513の結果が「Y」)、キャラクタの態様(例えばコスチューム)に対応するキャラクタレベル(Lv)を更新し(B2514)、キャラクタの態様のレベルアップ(態様変化)に関連するキャラクタレベルアップ演出の描画設定を行う(B2515)。なお、キャラクタレベルアップ演出は、前述のナビキャラ670のレベルアップでもよいし、ナビキャラ670以外のキャラクタの態様のレベルアップに使用されるものでよい。
続いて、演出制御装置300は、パスワード入力によるポイント復活条件が成立したか否かを判定する(B2516)。パスワード入力は、例えば、演出ボタン25の操作による入力であり、パスワードは携帯端末連動サービスによって携帯端末(携帯電話等)によって取得できる。ポイント復活条件は、例えば、パスワードが正しいものであることである。ポイント復活条件が成立していない場合(B2516の結果が「N」)、ステップB2519に移行する。ポイント復活条件が成立している場合(B2516の結果が「Y」)、所有ポイント数をパスワード内容に対応した値に設定し(B2517)、パスワード内容に対応するキャラクタレベル(Lv)や演出カスタマイズ情報を復元する(B2518)。なお、演出カスタマイズ情報は機種毎の情報である。
次に、演出制御装置300は、二次元コードを表示装置41に描画するための二次元コード描画操作があった否かを判定する(B2519)。例えば、二次元コード描画操作は、演出ボタン25の所定操作(タッチパネルへの操作や押下操作など)である。二次元コード描画操作がない場合(B2519の結果が「N」)、演出ポイント制御処理を終了する。二次元コード描画操作があった場合(B2520の結果が「Y」)、所有ポイント数、キャラクタLv、演出カスタマイズ情報に基づいてパスワードを生成し(B2520)、生成したパスワードに対応する二次元コードの描画設定を行う(B2521)。その後、演出ポイント制御処理を終了する。
〔ホール・遊技者設定モード処理〕
まず、図95を参照して、前述したメイン処理(図78)における第3実施形態に係るホール・遊技者設定モード処理(B1010)の詳細について説明する。図95は、演出制御装置300によって実行されるホール・遊技者設定モード処理の手順を示すフローチャートである。ホール・遊技者設定モード処理によって、ホール(遊技店)の係員等が遊技機10の各種設定を行えるホール設定モード、又は、遊技者が遊技機10の各種設定を行える遊技者設定モードを起動させることができる。
演出制御装置300は、まず、ホール設定モード中であるか否か判定する(B2701)。後述のホール設定モード中フラグが設定されている場合に、ホール設定モード中であると判定できる。ホール設定モード中である場合に(B2701の結果が「Y」)、B2706−B2716の処理を行って、ホール(遊技店)の係員等による演出ボタン25(演出ボタンスイッチ25a、タッチパネル25b)の操作に基づいて、各種設定や各種調整を行う。
演出制御装置300は、ホール設定モード中でない場合に(B2701の結果が「N」)、遊技者設定モード中であるか否か判定する(B2702)。後述の遊技者設定モード中フラグが設定されている場合に、遊技者設定モード中であると判定できる。遊技者設定モード中である場合に(B2702の結果が「Y」)、B2720−B2725の処理を行って、遊技者による演出ボタン25の操作に基づいて各種設定や各種調整を行う。
演出制御装置300は、遊技者設定モード中でない場合に(B2702の結果が「N」)、ホール設定モード開始条件が成立したか否か判定する(B2703)。例えば、客待ち中に、ホール設定モードに入るための演出ボタン25の操作が操作信号として演出ボタン入力処理(B1009)で検出された場合などに、ホール設定モード開始条件が成立したと判定できる。なお、客待ち中とは、例えば、前述の客待ち状態中のことであり、表示装置41に客待ち用の映像(客待ちデモ)が表示されるような客待ちデモ状態を含む。ホール設定モード開始条件が成立していない場合に(B2703の結果が「N」)、B2717の処理を実行する。
演出制御装置300は、ホール設定モード開始条件が成立した場合に(B2703の結果が「Y」)、ホール設定モードにおける表示装置41に対する画面描画(ホール設定画面の描画)を開始するための画面描画開始設定を行う(B2704)。そして、ホール設定モード中フラグを設定する(B2705)。
次に、演出制御装置300は、ホールの係員等による演出ボタン25の操作に基づいて、上スピーカ19a及び下スピーカ19bの音量を調整するホール音量調整処理(B2706)、枠装飾装置18や盤装飾装置46のLEDの輝度を調整するホールLED輝度調整処理(B2707)、表示装置41の表示部(液晶ディスプレイ等)の輝度を調整する液晶輝度調整処理(B2708)、省電力の設定を行う省電力設定処理(B2709)を実行する。
次に、演出制御装置300は、ロゴ役物の発行色等を設定するロゴカラー設定処理を実行する(B2710)。そして、設定確定操作入力があったか否か判定する(B2711)。演出ボタン25の設定確定操作による操作信号が演出ボタン入力処理(B1009)で検出された場合に、設定確定操作入力があったと判定できる。設定確定操作入力がない場合に(B2711の結果が「N」)、ホール・遊技者設定モード処理を終了する。
演出制御装置300は、設定確定操作入力があった場合に(B2711の結果が「Y」)、工場出荷時の設定で確定したか否か判定する(B2712)。設定確定操作以外に演出ボタン25の操作がなかった場合に、工場出荷時の設定で確定したと判定できる。工場出荷時の設定で確定しなかった場合に(B2712の結果が「N」)、B2714の処理に進む。工場出荷時の設定で確定した場合に(B2712の結果が「Y」)、工場出荷時の設定で各種設定や各種調整を行う工場出荷時設定処理を実行する(B2713)。工場出荷時の設定は、ROM321等のメモリに記憶されているデフォルトの設定である。次に、B2706−B2710やB2713で決定された音量や各種輝度などのホール設定データ(又はホール調整データ)をバックアップメモリ(例えばFeRAM323)に書き込む(B2714)。
次に、演出制御装置300は、ホール設定モードにおける表示装置41に対する画面描画を終了するための画面描画終了設定を行う(B2715)。そして、ホール設定モード中フラグをクリアする(B2716)。
演出制御装置300は、ホール設定モード開始条件が成立していない場合に(B2703の結果が「N」)、遊技者設定モード開始条件が成立したか否か判定する(B2717)。客待ち中において、遊技者設定モードに入るための演出ボタン25の操作が操作信号として演出ボタン入力処理(B1009)で検出された場合などに、遊技者設定モード開始条件が成立したと判定できる。なお、客待ち中とは、例えば、前述の客待ち状態中のことであり、表示装置41に客待ち用の映像(客待ちデモ)が表示されるような客待ちデモ状態を含む。遊技者設定モード開始条件が成立していない場合に(B2717の結果が「N」)、ホール・遊技者設定モード処理を終了する。
演出制御装置300は、遊技者設定モード開始条件が成立した場合に(B2717の結果が「Y」)、遊技者設定モードにおける表示装置41に対する画面描画を開始するための画面描画開始設定を行う(B2718)。なお、この画面描画によって、各種選択をするためのメニュー表示と役物比率(連続役物比率と全役物比率)が、音量調整のための音量調整表示(ゲージ、メータ等)、LED輝度調整のための輝度調整表示(ゲージ、メータ等)などと共に、表示装置41に表示される。そして、遊技者設定モード中フラグを設定する(B2719)。
次に、演出制御装置300は、遊技者による演出ボタン25の操作に基づいて、上スピーカ10a及び下スピーカ10bの音量を調整する遊技者音量調整処理(B2720)と、枠装飾装置18や盤装飾装置46のLEDの輝度を調整する遊技者LED輝度調整処理(B2721)を実行する。
次に、演出制御装置300は、遊技者による演出ボタン25等の操作に基づいて演出をカスタマイズ(個別設定)する演出カスタマイズ処理を実行する(B2722)。そして、設定確定操作入力があったか否か判定する(B2723)。設定確定操作入力がない場合に(B2723の結果が「N」)、ホール・遊技者設定モード処理を終了する。設定確定操作入力があった場合に(B2723の結果が「Y」)、遊技者設定モードにおける表示装置41に対する画面描画を終了するための画面描画終了設定を行う(B2724)。そして、遊技者設定モード中フラグをクリアする(B2725)。なお、B2720−B2721で決定された音量や輝度などの遊技者設定データ(又は遊技者調整データ)は、消えてもよいため、バックアップメモリに書き込まない。
なお、上記において、一旦ホール設定モード又は遊技者設定モードに入った後の描画更新設定(メニュー表示におけるハイライト項目の更新など)は、演出ボタン入力処理(B1009)の方で行うものとする。
[画面遷移]
図96Aと図96Bは、第3実施形態において、表示装置41の表示画面を時系列で示した画面遷移図であり、遊技全体の画面遷移の一例である。
図96Aの(ア)は、特図変動表示ゲームを開始する直前の表示画面である。複数の変動表示領域610(左領域610a、右領域610b、中領域610c)には、前回の特図変動表示ゲームのはずれ停止図柄が表示されている。また、四角形枠の保留消化領域640が表示画面の中央下部に表示される。
第3実施形態において、保留表示部630(始動記憶表示部)は、第1始動記憶を第1保留表示(第1始動記憶表示)として表示する第1保留表示部630aと、第2始動記憶を第2保留表示(第2始動記憶表示)として表示する第2保留表示部630bからなる。第1保留表示部630aに第1保留表示として保留表示633が3つ表示されている。第2保留表示部630bには、現時点で、保留表示633は表示されていない。なお、保留表示633b(黒)は、保留変化予告により通常態様から色が変化した保留表示である。
表示装置41の表示画面の右上隅の特図1保留数表示部650と特図2保留数表示部660には、それぞれ、特図1保留数を示す数字「3」と特図2保留数を示す数字「0」が表示されている。
(イ)は、特図変動表示ゲームを開始するタイミングでの表示画面である。保留消化領域640に第1保留表示部630aの右端の保留表示633が移動するような演出が行われる。以後、実行中の特図変動表示ゲームに係る保留(この特図変動表示ゲームの実行権利となっていた始動記憶)を示す保留対応表示633a(変動中保留表示)が、保留消化領域640に表示されることになる。そして、飾り特別図柄の変動(↓↓↓)が変動表示領域610で開始し、同時に、飾り縮小図柄の変動(↓↓↓)が変動表示領域615で開始する。また、特図1保留数表示部650において、特図1保留数を示す数字が「2」に減少する。なお、特図変動表示ゲームの結果が大当りの場合に、変動表示領域615と変動表示領域610の停止結果(停止図柄)は共通の態様(共通の数字)となるが、はずれの場合には、共通の態様でなくててよい。
その後、(ウ)では、左領域610aと右領域610bにおいて、同一の飾り特別図柄(識別情報)が停止して、リーチが発生している。そして、種々のリーチ演出が実行された後、(エ)では、大当りの停止図柄が表示され、以降、特別遊技状態(大当り状態)において、所定ラウンド回数(ここでは16回)だけ特別変動入賞装置39の開閉回数が繰り返されることによって、所定ラウンド回数分のラウンド遊技が実行される。
(オ)は、大当り状態(特別遊技状態)中の途中の8Rの表示画面を示す。ここで、大当りラウンド演出が行われるとともに、大当り状態中に獲得した獲得出玉数(図89のB1404、B1405)が大入賞口への入賞が発生する度に更新されて表示されている。(カ)は、最終ラウンド(16R)の画面を示す。
図96Bの(キ)は、大当り状態終了の際のエンディング中における表示装置41の表示画面を示す。エンディング中に、大当り履歴として、大当り中に獲得した獲得出玉数と、大当り終了タイミングで演出制御装置300が受信した全役物比率と連続役物比率が、大当り履歴表示部760に表示されている。大当り履歴表示部760は、役物比率を表示する役物比率表示領域800を含む。なお、全役物比率は、一般的に使用されるいわゆる役物比率であるため、「役物比率」と表示されている。ここで表示される役物比率は、1つの特別遊技の終了時(初回の特別遊技終了前は遊技機10の電源投入時)から次の特別遊技(大当り)が終了するまでの期間に得た賞球数に対して算出される役物比率であるが、遊技機10の電源投入から各特別遊技の終了までの全期間に得た賞球数に対して算出される役物比率でもよい。
また、大当り履歴(履歴情報)は、直近の3つ(ここでは、大当り履歴1、大当り履歴2、大当り履歴3)が表示されているが、大当り履歴を大当り履歴表示部760に何個表示するかは、遊技者設定モードで遊技者が設定可能である。大当り履歴(獲得出玉数、全役物比率、連続役物比率)は、他の表示と重ならないように表示されるか、重なっても前面側に優先して表示される。なお、全役物比率と連続役物比率を数字ではなく、円グラフや棒グラフで表示することも可能である。
また、大当り中の獲得出玉数と役物比率に応じた演出ポイントを加算する際のポイント加算演出として、例えば、表示装置41にキャラクタ770を出現させるとともに、キャラクタ770のセリフを表示するセリフ表示部770aに、獲得出玉数と演出ポイントの加算値(ここでは100ポイント)が表示される。キャラクタ770やその形態は、演出ポイントの加算値(ひいては獲得出玉数と役物比率)に応じて設定されてよい。
さらに、エンディング中に実行されるエンディング演出(図93のB2112)として、流れ星が流れるような演出(装飾)が表示されている。エンディング演出(背景含む)は、獲得出玉数などの賞球に関連する情報や役物比率に応じて、設定されてよい。役物比率に応じた演出によって、役物比率さらには遊技機の状態を判断可能となるとともに、遊技の興趣が向上する。なお、エンディング演出は、遊技盤30のセンターケース40の近傍に設けられているLED(盤装飾装置46)を役物比率に応じた色(例えば、「緑」、「黄」、「青」の順に役物比率が低くなる)で発光させる装飾演出を含んでよい。また、役物比率が低いほど、大当りまでに消化した特図変動表示ゲームの回数が多い可能性があるため、労をねぎらうために、遊技者に対して良い印象を与えるエンディング演出が設定されてよい。また、獲得出玉数が大きいほど、讃えるために遊技者に対して良い印象を与えるエンディング演出が設定されてよい。なお、エンディング演出以外の演出(例えば変動演出)を役物比率に応じて設定する構成も可能である。
(ク)では、大当り状態終了後に特定遊技状態(高確率状態又は時短状態)「RUSH」が発生した場合の表示画面を示す。(ケ)では、特定遊技状態において、特図1特図変動表示ゲーム又は特図2特図変動表示ゲームが実行されている。第1保留表示部630aに第1保留表示として保留表示633が1つ表示されている。第2保留表示部630bには、第2保留表示として保留表示633が2つ表示されている。
(コ)では、特定遊技状態(高確率状態又は時短状態)「RUSH」の終了の際における表示装置41の表示画面を示す。特定遊技状態終了タイミング(高確率終了タイミング又は時短終了タイミング)において演出制御装置300が受信した全役物比率と連続役物比率が、役物比率表示領域800に表示されている。特定遊技状態終了タイミングは、例えば、高確率変動回数が0となるタイミングである。ここで表示される役物比率は、1つの特別遊技の終了時から特定遊技状態が終了するまでの期間に得た賞球数に対して算出される役物比率であるが、遊技機10の電源投入から特定遊技状態が終了するまでの全期間に得た賞球数に対して算出される役物比率でもよい。また、この特定遊技状態終了タイミングにおいて、役物比率に応じた演出を実行してもよい。
なお、全役物比率は、一般的に使用されるいわゆる役物比率であるため、「役物比率」と表示されている。全役物比率と連続役物比率は、他の表示と重ならないように表示されるか、重なっても前面側に優先して表示される。なお、全役物比率と連続役物比率を数字ではなく、円グラフや棒グラフで表示することも可能である。その後、通常遊技状態に移行する。
図97は、図96Bの(キ)に対応し、大当り状態終了の際のエンディングにおける表示装置41の表示画面の他の例を示す。図97では、獲得出玉数と全役物比率と連続役物比率に追加して、遊技機10の電源投入からの特図変動表示ゲームの実行回数であるスタート数(図92のB1908の特図変動回数)が、大当り履歴表示部760に表示されている。これにより、遊技者等は、基準値以外にスタート数に基づいて役物比率が異常値であるか否か判断することになり、誤判断が少なくなる。例えば、スタート数が少ない場合(例えば図97では10)に大当りが発生していれば、役物比率が基準値(例えば、連続役物比率で60%、全役物比率で70%)を超えても、異常でないと判断できる。
なお、この場合に、大当り終了タイミングで受信した全役物比率と連続役物比率は、大当り終了タイミングでの獲得出玉数とスタート数と共に、1つのセットとして、RAM内(例えばRAM322内)の大当り履歴領域に保存される(B1503、B1506)。
また、図97では、全役物比率と連続役物比率が遊技者に馴染みのないものである可能性があるため、ナビキャラ670が登場して、セリフ表示部680に全役物比率と連続役物比率の説明や定義が表示されている。これにより、遊技者が役物比率に興味を抱くことになる。
なお、図96Bの(コ)においても、特定遊技状態(高確率状態又は時短状態)「RUSH」の終了の際における表示装置41の表示画面で、全役物比率と連続役物比率に追加して、スタート数を役物比率表示領域800に表示してもよい。
[客待ち中の表示画面]
図98は、客待ち中の遊技者設定モード(図95のB2718)での表示画面の一例を示す。大当り履歴が大当り履歴表示部760に表示される。連続役物比率と全役物比率(「役物比率」と表示)が、大当り履歴表示部760内の役物比率表示領域800に表示される。音量調整のための音量調整表示810(ゲージ)とLED輝度調整のための輝度調整表示815(ゲージ)が、表示画面に表示されている。
なお、演出制御装置300は、客待ち中(客待ち状態中)にのみ連続役物比率と全役物比率を表示装置41の表示画面に表示し、客待ち中以外の状態、即ち、客待ちデモ中でない状態や遊技球の発射中の状態では、連続役物比率と全役物比率を表示装置41の表示画面に表示しない構成としてもよい。つまり、役物比率設定処理(図90)のB1504、B1507を省略する構成も可能である。
さらに、表示装置41の表示画面において、メニュー表示として、大当り履歴の表示個数を選択する第1選択部820と、役物比率の表示内容(表示態様)を選択する第2選択部825が表示されている。第1選択部820により、RAM内の大当り履歴領域に保存された大当り履歴(獲得出玉数、全役物比率(役物比率)、連続役物比率、スタート数のセット)のうち何個の大当り履歴(図96B、図97、図98では3つ)を表示するか選択できる。第2選択部825により、全役物比率と連続役物比率のいずれか又は両方を表示するか選択できる。
遊技者は、演出ボタン25のタッチパネル25bでの上下方向の指の動き(タッチ箇所の動き)によるタッチ操作を行い、設定する対象を選択する。このタッチ操作によって、ハイライト表示等の特定表示態様(音量調整表示810の黒枠参照)で表示される設定対象の項目(設定項目)が、選択される。即ち、ハイライト表示等の特定表示態様で表示される項目が、タッチ操作によって変更されていく。なお、メニュー表示としての第1選択部820と第2選択部825などにおけるハイライト項目の更新は、演出ボタン入力処理(B1009)で実行される。なお、左右方向の指の動き(タッチ箇所の動き)によるタッチ操作で、音量や明るさの値の選択(図95のB2720、B2721)を行う。また、タッチパネル25bの中央部にタッチすることによって、表示された値やキャラクタの選択が確定するようにしてよい(図95のB2723等)。また、上下方向又は左右方向の指の動きを促すように、演出ボタン25のLED690部が点灯されてよい。
このように、客待ち中の遊技者設定モードでは、メニュー表示によって、遊技者は、大当り履歴の表示個数や役物比率の表示内容(表示態様)を選択できる。また、客待ち中の遊技者設定モードでは、音量調整表示810(ゲージ)と輝度調整表示815(ゲージ)が表示され、遊技者の好みの音量や明るさに調整できる。
[サブ表示装置]
図99は、サブ表示装置830を備えた遊技盤30を示す。上記では、表示装置41の表示画面で、全役物比率と連続役物比率等を表示する例を示したが、図99に示すように動作可能なサブ表示装置830(可動役物)に全役物比率と連続役物比率等を表示する構成も可能である。なお、サブ表示装置830(可動役物)は、盤演出装置44として、演出制御装置300によって動作が制御される。
サブ表示装置830は、通常位置では、上部演出ユニット40cの裏側の空間に収容されて正面視で大部分が視認できないが、動作位置では、表示装置41の前側に移動して全部が正面視で視認できる。そして、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミングにおいて、演出制御装置300は、サブ表示装置830を動作位置に動作させ、サブ表示装置830において連続役物比率と全役物比率を表示する。従って、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミングにおいて、遊技者は、サブ表示装置830に表示された連続役物比率と全役物比率に注目することになる。
[第3実施形態の作用・効果]
上記の第3実施形態では、遊技制御手段(遊技制御装置100)は、賞球に関連する情報を演出制御手段(演出制御装置300)に送信する。演出制御手段(演出制御装置300)は、払出制御手段(払出制御装置200等)によって払い出された賞球の合計数のうち、変動入賞装置に入賞したことによって払い出された賞球の数が占める割合である役物比率を表示手段(例えば、表示装置41又はサブ表示装置830)に表示可能である。なお、賞球に関連する情報は、役物比率の算出結果そのものや、役物比率の算出するための情報(役物比率の元となる賞球数)などである。
従って、役物比率に関する表示によって遊技機の状態(変動入賞装置に入賞し易いか、一般入賞口35等に入賞し易いかなど)を判断可能となる。また、遊技の興趣が向上するとともに、遊技者は変動入賞装置へ入賞し易い印象(開状態が多く発生する印象)を持つため、遊技者が継続して遊技を行う動機(指標)となる。さらに、役物比率が低い場合には一般入賞口35等への入賞が比較的多いため、表示手段に役物比率を表示することによって、遊技者は一般入賞口35にも関心を持つことになり、遊技の興趣が向上する。
演出制御手段(演出制御装置300)は、所定回数分(例えば3回)の特別遊技に関する履歴情報(大当り履歴)を表示手段(例えば、表示装置41又はサブ表示装置830)に表示可能である。この場合、所定ラウンド回数のラウンド遊技からなる特別遊技毎に区分けした役物比率を履歴情報に含めて表示可能である。ここで、特別遊技毎に区分けした役物比率は、特別遊技の終了毎にリセットして計測した役物比率を含む。
従って、全期間での役物比率ではなく、特別遊技毎に区分けされた役物比率(不安定な値となることが予めわかっている)を算出して表示手段に表示しておくことにより、遊技者等は、基準値以外に自身の知識や情報に基づいて役物比率が異常値であるか否か判断することを促され、誤判断が少なくなる。
また、遊技制御手段(遊技制御装置100)は、所定の条件を満たすと所定回数(例えば100回)の特図変動表示ゲームの間、特定遊技(高確率状態や時短状態)を発生させてよい。さらに、遊技制御手段(遊技制御装置100)は、役物比率の算出を行い、算出された役物比率を賞球に関する情報として、特別遊技又は前記特定遊技が終了した際に演出制御手段(演出制御装置300)に送信してよい。この場合、役物比率が大きく変化した直後のタイミング(特別遊技又は前記特定遊技が終了したタイミング)において、役物比率を表示できる。また、算出された役物比率をそのまま演出制御手段(演出制御装置300)に送信して表示手段に表示すると、遊技制御手段(遊技制御装置100)から演出制御装置300への送信の回数が最小限になり、送信負荷が減少する。
[第4実施形態]
図100から図106を参照して、第4実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第3実施形態までのいずれかの実施形態と共通の構成が適用できる。
第4実施形態は第3実施形態をベースとするものであるが、第3実施形態と異なり、演出制御装置300は、払出コマンド(図101)(払出コマンド(A1719)とアウト球検出コマンド(A2017)の両方を含む)を受信して、自ら、役物比率(連続役物比率と全役物比率)を算出する。さらに、演出制御装置300は、一般入賞口35の賞球数合計や入賞回数を算出(計数)したり、一般入賞口比率を算出してもよい。なお、一般入賞口比率は、全賞球数(賞球の合計数)のうち、一般入賞口35に入賞したことで得られた賞球数の割合である。図85の出玉性能監視処理のうち、役物比率の算出結果を演出制御装置300に送信する処理(ステップA9804、A9805、A2317、A2318)は不要なため、第4実施形態では実行されない。
図100は、第4実施形態に係る排出球数領域、獲得球数領域、役物別獲得球数領域について説明する図である。排出球数領域、獲得球数領域、役物別獲得球数領域は、遊技制御装置100のRWM(リードライトメモリ:RAMやEEPROM等)に設けられる。排出球数領域、獲得球数領域に関しては、第1実施形態の図17Bと同じであるが、役物別獲得球数領域に関して、一般入賞口35に関して、2つの領域、即ち、左の一般入賞口35への入賞による賞球数の合計を記憶する領域と、右の一般入賞口35への入賞による賞球数の合計を記憶する領域とが、設けられている。これにより、遊技制御装置100は、左右別々に一般入賞口35の賞球数の合計を算出(計数)できる。
図101は、第4実施形態に係る払出コマンドを示す図である。第4実施形態に係る払出コマンド(図101)は、第2実施形態の図83の払出コマンドと異なり、一般入賞口35への入賞による払出コマンドが、左右の一般入賞口に対応して2種類ある。例えば、入賞口情報は、「000」が左一般入賞口35を示し、「001」が右一般入賞口35を示し、払出コマンドは、16進数で表現すると、左一般入賞口35への入賞による10個賞球は「0AH」であり、右一般入賞口35への入賞による10個賞球は「1AH」である。
第4実施形態において、遊技制御装置100は、払出制御装置200だけでなく、演出制御装置300にも、図101の払出コマンドを送信する。遊技制御装置100は、払出コマンド送信処理(図12)のステップA1719において、払出制御装置200へ送信する払出コマンドだけでなく、演出制御装置300へ送信する払出コマンドを演出コマンドとして準備し、その後、払出コマンド送信処理において演出コマンド設定処理(図59)を実行する構成とする。同様に、遊技制御装置100は、入賞口スイッチ/状態監視処理(図15A)のステップA2017において、払出制御装置200へ送信するアウト球検出コマンドだけでなく、演出制御装置300へ送信するアウト球検出コマンドを演出コマンドとして準備し、その後、入賞口スイッチ/状態監視処理において演出コマンド設定処理(図59)を実行する構成とする。なお、演出制御装置300へ送信する払出コマンドとアウト球検出コマンドには、賞球に関する情報であることを表すMODE部が付与される。
また、第4実施形態において、演出制御装置300は、払出コマンド(図101)から取得した役物獲得球数を記憶する役物別獲得球数領域を図100(III)と同様にRAM内(例えばRAM322内)に有する。
〔単発系コマンド処理〕
図102は、第4実施形態に係る単発系コマンド処理の手順を示すフローチャートである。単発系コマンド処理は、受信コマンド解析処理(図80)のステップB1212にて、演出制御装置300によって実行される。なお、第3実施形態に係る単発系コマンド処理(図88)と同じ処理には同じステップ番号を付して説明を省略する。
なお、第4実施形態に係る図102の賞球に関する情報は、遊技制御装置100から送信される図101の払出コマンドであり、第3実施形態に係る図88の賞球に関する情報が、役物比率の算出結果に対応するコマンドであることとは異なっている。
演出制御装置300は、MODE部が図柄停止のコマンドを表していない場合には(B1323の結果が「N」)、MODE部が高確率変動回数に対応する高確率変動回数コマンドを表すか否かを判定する(B1327)。MODE部が高確率変動回数コマンドを表わす場合(B1327の結果が「Y」)、演出制御装置300は、高確率(時短)終了処理を実行して(B1328)、単発系コマンド処理を終了する。MODE部が高確率変動回数コマンドを表していない場合(B1327の結果が「N」)、演出制御装置300は、そのまま単発系コマンド処理を終了する。
〔役物比率設定処理〕
図103は、第4実施形態に係る役物比率設定処理の手順を示すフローチャートである。役物比率設定処理は、単発系コマンド処理(図103)のステップB1322にて、演出制御装置300によって実行される。
第4実施形態に係る役物比率設定処理において、演出制御装置300は、払出コマンドに示された賞球数に基づいて、演出制御装置300のRAM内の役物別獲得球数領域に役物獲得球数を加算・累積する。そして、全役物比率と連続役物比率の他、左右一般入賞口比率を算出、保存する。役物比率設定処理は、演出制御装置300が賞球に関する情報として払出コマンド(図101)を受信した場合に実行される。
演出制御装置300は、まず、受信した払出コマンド(図101)が正常なコマンドであるか否かを判定する(B3001)。払出コマンドが正常ではない場合(B3001の結果が「N」)、役物比率設定処理を終了する。払出コマンドが正常である場合(B3001の結果が「Y」)、演出制御装置300のRAM内において、払出コマンド(即ち、払出コマンドに示された入賞口情報)に対応する役物別獲得球数領域の値に、払出コマンドに示された賞球数を加算する(B3002)。次に、各役物別獲得球数領域の値から全役物比率と連続役物比率を算出して、RAM内の全役物比率領域と連続役物比率領域に保存する(B3003)。
なお、遊技機10の電源投入から現在までの全期間で役物獲得球数(役物別賞球数)を役物別獲得球数領域に加算、累積する場合に、演出制御装置300は、遊技機10の電源投入から現在までの全期間での賞球数(獲得球数)に対する役物比率を算出できる。特別遊技(大当り)が終了する度に全ての役物別獲得球数領域(演出制御装置300のRAM内にある)を0クリア(リセット)する場合、演出制御装置300は、前回の特別遊技の終了時から(初回の特別遊技終了前は遊技機10の電源投入時から)現在までの期間での役物比率を算出できる。
続いて、演出制御装置300は、左右の一般入賞口用の役物別獲得球数領域の値から左一般入賞口比率と右一般入賞口比率を算出して、RAM内の左一般入賞口比率領域と右一般入賞口比率領域に保存する(B3004)。ここで、左一般入賞口比率と右一般入賞口比率は、それぞれ、全賞球数のうち、左と右の一般入賞口35に入賞したことで得られた賞球数の割合である。なお、全賞球数は、全ての役物別獲得球数領域の値の合計である。
演出制御装置300は、遊技機10の電源投入から現在までの全期間での一般入賞口比率を算出できる。特別遊技(大当り)が終了する度に全ての役物別獲得球数領域(演出制御装置300のRAM内にある)を0クリアする場合、演出制御装置300は、前回の特別遊技の終了時から(初回の特別遊技終了前は遊技機10の電源投入時から)現在までの期間での一般入賞口比率を算出できる。
また、ステップB3004において、左一般入賞口比率と右一般入賞口比率を足し合わせて一般入賞口比率を算出してもよい。さらに、左右の一般入賞口比率に加えて、一般入賞口以外の各入賞口(始動口1、始動口2、大入賞口)の入賞口比率を算出して、RAM内の対応する領域に保存してもよい。ここで、入賞口比率は、全賞球数のうち、該当する入賞口に入賞したことで得られた賞球数の割合である。
次に、演出制御装置300は、ステップB3002で賞球数が加算された役物別獲得球数領域が、左又は右の一般入賞口35の賞球用であるか否かを判定する(B3005)。即ち、左又は右の一般入賞口35に入賞があったか否かを判定する。加算された役物別獲得球数領域が、一般入賞口35の賞球用でない場合(B3005の結果が「N」)、即ち、左又は右の一般入賞口35に入賞がなかった場合、役物比率設定処理を終了する。
演出制御装置300は、加算された役物別獲得球数領域が、一般入賞口35の賞球用である場合(B3005の結果が「Y」)、即ち、左又は右の一般入賞口35に入賞があった場合、ステップB3002で加算された役物別獲得球数領域の値を表示設定する(B3006)。ここで、加算された役物別獲得球数領域は、左一般入賞口35に入賞があった場合に左一般入賞口35の賞球用の役物別獲得球数領域であり、右一般入賞口35に入賞があった場合に右一般入賞口35の賞球用の役物別獲得球数領域である。加算された役物別獲得球数領域の値は、左又は右の一般入賞口35への入賞による賞球数の合計である。なお、一方の一般入賞口35だけに入賞があった場合でも、両方の一般入賞口35の役物別獲得球数領域の値を表示設定するようにしてもよい。また、ここで、左又は右の一般入賞口35の賞球数の合計だけでなく、左又は右の一般入賞口35への入賞回数又は全一般入賞口35への入賞回数を計数して、表示設定する構成も可能である。
以上により、一般入賞口35に入賞があり一般入賞口用の役物別獲得球数領域の値に賞球数が加算された場合に、少なくとも今回入賞があった一般入賞口35の賞球数合計(獲得球数)が表示装置41(又は、図99のサブ表示装置830)に表示できる。
演出制御装置300は、遊技機10の電源投入から現在までの全期間での一般入賞口35の賞球数合計を表示できる。特別遊技(大当り)が終了する度に全ての役物別獲得球数領域(演出制御装置300のRAM内にある)を0クリアする場合、演出制御装置300は、前回の特別遊技の終了時から(初回の特別遊技終了前は遊技機10の電源投入時から)現在までの期間での一般入賞口35の賞球数合計を表示できる。
続いて、一般入賞口35への入賞に対応して演出を行う演出設定を実行し(B3007)、役物比率設定処理を終了する。一般入賞口35への入賞に対応する演出として、一般入賞口35近傍に設けられたLED(盤装飾装置46)が発光したり、スピーカから音が出力されたり、可動役物(盤演出装置44)が動作する。この演出により、遊技の興趣を高めることができるとともに、遊技者の一般入賞口35への関心が増加する。
なお、演出制御装置300は、一般入賞口35以外の各入賞口(始動口1、始動口2、大入賞口)の役物別獲得球数領域が加算された場合にも、加算された役物別獲得球数領域の値を表示設定してもよい。これにより、表示装置41(又は、図99のサブ表示装置830)に、各入賞口の賞球数合計(獲得球数)を表示できる。
さらに、役物比率設定処理において、演出制御装置300は、払出コマンドに基づいて、排出球数、出玉率も算出してよい。この場合に、演出制御装置300は、排出球数を記憶する排出球数領域、賞球数の合計(獲得球数)を記憶する獲得球数領域をRAM内に有する。なお、排出球数は払出コマンド(図101)を受信した回数に相当し、出玉率は、全賞球数の排出球数に対する比率(割合)%である。
また、演出制御装置300は、FeRAM323に、役物比率設定処理における算出結果(役物別獲得球数領域の値、役物比率、一般入賞口比率など)をバックアップするようにしてよい。
〔高確率(時短)終了処理〕
図104は、第4実施形態に係る高確率(時短)終了処理の手順を示すフローチャートである。高確率(時短)終了処理は、単発系コマンド処理(図103)のステップB1328にて、演出制御装置300によって実行される。
演出制御装置300は、まず、受信した高確率変動回数コマンドが正常なコマンドであるか否かを判定する(B3201)。高確率変動回数コマンドが正常ではない場合(B3201の結果が「N」)、高確率(時短)終了処理を終了する。高確率変動回数コマンドが正常である場合(B3201の結果が「Y」)、高確率変動回数が0であるか否かを判定する(B3202)。なお、本実施形態では、高確率変動回数は、時短変動回数にもなっている。
演出制御装置300は、高確率変動回数(時短変動回数)が0でない場合(B3202の結果が「N」)、そのまま高確率(時短)終了処理を終了する。一方、高確率変動回数(時短変動回数)が0である場合(B3202の結果が「Y」)、役物比率(連続役物比率と全役物比率)と左右の一般入賞口比率の表示設定を実行して、高確率(時短)終了処理を終了する。なお、左右の一般入賞口比率の和を一般入賞口比率として表示設定してもよい。
このようにして、演出制御装置300は、払出コマンドを受信する度に常に役物比率(連続役物比率と全役物比率)と左右一般入賞口比率を算出しておき、高確率終了タイミング、及び、時短終了タイミングにおいて、表示装置41やサブ表示装置830において役物比率と左右一般入賞口比率を表示できる。
〔大当り系コマンド処理〕
図105は、第4実施形態に係る大当り系コマンド処理の手順を示すフローチャートである。大当り系コマンド処理は、受信コマンド解析処理(図80)におけるステップB1208において実行される。なお、第3実施形態の大当り系コマンド処理(図93)と同じ内容のステップは、ステップ番号を同じにして説明を省略する。
演出制御装置300は、大当り系コマンドのMODE部がエンディングを表すか否かを判定する(B2110)。MODE部がエンディングを表す場合(B2110の結果が「Y」)、即ち、大当り系コマンドがエンディングコマンドである場合、演出制御装置300は、役物比率と大当り中の獲得出玉数に対応する演出ポイントを加算する際の演出表示としてポイント加算演出表示を設定する(B2111)。
次に、演出制御装置300は、最終的な獲得出玉数を役物比率(連続役物比率と全役物比率)と左右一般入賞口比率と共に、1セットの大当り履歴として、RAM内の大当り履歴領域に保存する(B3401)。そして、エンディング演出を設定するためのエンディング演出設定処理を実行する(B3402)。エンディング演出設定処理において、エンディング演出の一環として、役物比率(連続役物比率と全役物比率)と左右一般入賞口比率の表示の設定も実行される。なお、左右の一般入賞口比率の和を一般入賞口比率として表示設定してもよい。エンディング演出は、最終的な獲得出玉数、役物比率、左右一般入賞口比率に対応させて設定してもよい。
このようにして、演出制御装置300は、払出コマンドを受信する度に常に役物比率(連続役物比率と全役物比率)と左右一般入賞口比率を算出しておき、大当り終了タイミング(エンディング)において、表示装置41やサブ表示装置830において役物比率と左右一般入賞口比率を表示できる。
なお、演出制御装置300は、大当り終了タイミング、高確率終了タイミング、及び、時短終了タイミングにおいてのみ、役物比率と左右一般入賞口比率を算出して、表示装置41やサブ表示装置830において役物比率と左右一般入賞口比率を表示する構成も可能である。
[画面遷移]
図106Aと図106Bは、第4実施形態において、表示装置41の表示画面を時系列で示した画面遷移図であり、遊技全体の画面遷移の一例である。図106A(ア)−(カ)と図106B(キ)−(コ)は、各々、図96A(ア)−(カ)と図96B(キ)−(コ)に対応するため、以下で説明する構成以外は、図106Aと図106Bと同じである。
図106Aの(ウ)では、左一般入賞口35に入賞があったため、左一般入賞口35の賞球用の役物別獲得球数領域(演出制御装置300のRAM内)の値が表示される(図103のB3006)。即ち、左一般入賞口35への入賞により獲得した賞球数の合計が、賞球数合計表示「左一般入賞口賞球合計122個」によって表示されている。ここで、左一般入賞口35への入賞回数を表示する構成も可能である。また、賞球数合計表示は、他の演出(ここではリーチ演出)と重ならないように表示されているが、表示範囲が他の演出に重なり邪魔になる時は、賞球数合計表示は表示されなくてもよい。
なお、一般入賞口以外の各入賞口(始動口1、始動口2)に入賞があった場合にも、各入賞口への入賞により獲得した賞球数の合計や、入賞回数を表示してもよい。
図106Bの(キ)では、図96Bの(キ)の大当り履歴表示部760において、左右の一般入賞口比率を表示する一般入賞口比率表示領域842が設けられ、大当り終了タイミング(エンディング)で一般入賞口比率表示領域842に左右の一般入賞口比率が表示される。なお、1つの大当り履歴中に、獲得出玉数と役物比率(連続役物比率と全役物比率)と左右一般入賞口比率が含まれて保存されている(図106のB3401)。また、連続役物比率の表示は、省略しているが、表示されてよい。さらに、客待ち中の遊技者設定モード(図98)において、メニュー表示(第2選択部825)によって、一般入賞口比率を表示するか否か選択できる構成としてもよい。
一般入賞口比率は、遊技機10の電源投入から各特別遊技の終了までの全期間に一般入賞口への入賞により得た賞球数に対して算出されたものでもよいし、1つの特別遊技の終了時から(初回の特別遊技終了前は遊技機10の電源投入時から)、次の特別遊技の終了までの期間に一般入賞口への入賞により得た賞球数に対して算出されたものでもよい。
図106Bの(ケ)では、右一般入賞口35に入賞があったため、右一般入賞口35の賞球用の役物別獲得球数領域(演出制御装置300のRAM内)の値が表示される(図103のB3006)。即ち、右一般入賞口35への入賞により獲得した賞球数の合計が、賞球数合計表示「右一般入賞口賞球合計152個」によって表示されている。ここで、右一般入賞口35への入賞回数を表示する構成も可能である。
図106Bの(コ)では、特定遊技状態(高確率状態又は時短状態)の終了の際に、役物比率に加えて、一般入賞口比率表示領域842において、左右の一般入賞口比率を表示される。なお、連続役物比率の表示は省略しているが、表示されてよい。一般入賞口比率は、遊技機10の電源投入から特定遊技状態の終了までの全期間に一般入賞口への入賞により得た賞球数に対して算出されたものでもよいし、特別遊技の終了時から(初回の特別遊技終了前は遊技機10の電源投入時から)特定遊技状態の終了までの期間に一般入賞口への入賞により得た賞球数に対して算出されたものでもよい。
[第4実施形態の作用・効果]
上記の第4実施形態では、遊技制御手段(遊技制御装置100)は、賞球に関連する情報として、払出コマンド(図101)を演出制御手段(演出制御装置300)に送信する。演出制御手段(演出制御装置300)は、払出コマンド(図101)を受信して、自ら役物比率を算出して、表示手段(表示装置41又はサブ表示装置830)に表示可能である。従って、役物比率に関する表示によって遊技機の状態(変動入賞装置に入賞し易いか、一般入賞口35等に入賞し易いかなど)を判断可能となる。また、役物比率が低い場合には一般入賞口35等への入賞が比較的多いため、表示手段に役物比率を表示することによって、遊技者は一般入賞口35にも関心を持つことになる。
さらに、演出制御手段(演出制御装置300)は、受信した払出コマンドから一般入賞口比率を算出して表示手段に表示可能である。このため、遊技者はさらに一般入賞口35にも関心を持つことになる。また、一般入賞口35に入賞があった場合に、受信した払出コマンドから一般入賞口35の賞球数合計や入賞回数を算出して表示手段に表示できる。これにより、遊技者の一般入賞口35への関心が増加する。
[第5実施形態]
図107と図108を参照して、第5実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第4実施形態までの実施形態と共通の構成でよい。
図107は、第5実施形態に係る遊技盤の正面図である。図107では、図2Aの遊技盤に対して、一括表示装置50の排出球数表示部66、出玉率表示部67、役物比率表示部68が削除されている一方、一括表示装置50に第1役物比率警告表示部844(第1表示器)と第2役物比率警告表示部846(第2表示器)が設けられている。
なお、演出制御装置300は、排出球数、出玉率、及び/又は、役物比率の具体的な数値を、図81、図96−図98のように表示装置41に表示する。この場合、演出制御装置300は、客待ち中(客待ち状態中)にのみ役物比率を表示装置41の表示画面に表示し、客待ち中以外の状態、即ち、客待ちデモ中でない状態や遊技球の発射中の状態では、役物比率を表示装置41の表示画面に表示しない構成としてもよい。つまり、図90のステップB1504、B1507、図104の高確率(時短)終了処理、図105のステップB3402における役物比率の表示設定等を省略する構成も可能である。
第1警告報知部としての第1役物比率警告表示部844は、一つのLED(発光部)から構成され、全役物比率が基準値(所定値70%)を超えた場合に点灯して、全役物比率が基準値を超えたことを示す警告表示を実行する。第2警告報知部としての第2役物比率警告表示部846は、一つのLED(発光部)から構成され、連続役物比率が基準値(所定値60%)を超えた場合に点灯して、連続役物比率が基準値を超えたことを示す警告表示を実行する。
排出球数表示部66、出玉率表示部67、役物比率表示部68は、数値を表示するため7セグメント型の表示器から構成され高コストとなるが、排出球数表示部66、出玉率表示部67、役物比率表示部68をなくして、第1役物比率警告表示部844(LED)と第2役物比率警告表示部846(LED)を設けたため、コストが低下する。また、一括表示装置50の第1役物比率警告表示部844と第2役物比率警告表示部846は、試射試験機関での検査の対象となる遊技制御装置100(主基板)により制御されるため、表示の信頼性が担保される。
なお、第1役物比率警告表示部844と第2役物比率警告表示部846は、遊技機10の裏面に設けられる遊技制御装置100の後面(背面)に設けられ、遊技機10の裏面側からのみ視認可能としてもよい。そして、第1役物比率警告表示部844と第2役物比率警告表示部846は、遊技制御装置100の基板(主基板)上に設置されてよい。この場合に、遊技制御装置100の基板(主基板)はケース内に開封できないように密封されていなるため(かしめられているため)、第1役物比率警告表示部844と第2役物比率警告表示部846の表示に対して不正を行うことができなくなる。
また、役物比率の警告表示を常時表示せずに、例えば、ガラス枠や前面枠を開放した時にエラーメッセージ(ガラス枠開放エラー、前面枠開放エラーの表示)とともに、役物比率の警告を表示するようにしてもよい。
〔出玉性能監視処理〕
図108は、第5実施形態に係る出玉性能監視処理の手順を示すフローチャートである。出玉性能監視処理は、入賞数カウンタ更新処理(図17A)のステップA2211にて、遊技制御装置100によって実行される。図108は、図85のステップA9803をステップA9803a、A9803bに置き換えたものである。なお、図85の出玉性能監視処理と同じ内容のステップは、ステップ番号を同じにして説明を省略する。
遊技制御装置100は、役物獲得球数に基づいて、全役物比率と連続役物比率の両方を算出した後(A9801、A9802)、算出結果が基準値を超えた場合に警告表示を設定する(A9803a)。全役物比率の算出結果が基準値(70%)を超えた場合に、第1役物比率警告表示部844(LED)を点灯させる警告表示を設定する。連続役物比率の算出結果が基準値(60%)を超えた場合に、第2役物比率警告表示部846(LED)を点灯させる警告表示を設定する。全役物比率と連続役物比率の算出結果がそれぞれの基準値を超えた場合には、第1役物比率警告表示部844(LED)と第2役物比率警告表示部846(LED)の両方を点灯させる警告表示を設定する。
次に、遊技制御装置100は、警告表示に対応するセグメントデータをセグメント領域にセーブする。これによって、警告表示を行う場合には、第1役物比率警告表示部844及び/又は第2役物比率警告表示部846が点灯する。
なお、第1役物比率警告表示部844と第2役物比率警告表示部846に追加して、第2実施形態と同様に、払出制御装置200により表示制御が実行される第1役物比率警告表示部と第2役物比率警告表示部が払出制御装置200にも設けられてもよい。払出制御装置200は、払出コマンドに基づいて、役物比率を算出し、役物比率の算出結果が基準値を超えた場合に、第1役物比率警告表示部と第2役物比率警告表示部を点灯させる。第1役物比率警告表示部と第2役物比率警告表示部は、上皿ユニットに設けてもよい。
また、表示装置41の表示画面に警告報知部(第1役物比率警告表示部844及び/又は第2役物比率警告表示部846)を設けて、役物比率が基準値(所定値)を超えた場合に、表示装置41の警告報知部に、役物比率が基準値を超えたことを示す警告表示を表示してよい。この場合、演出制御装置300は、払出コマンド(図101)に基づいて自ら算出した役物比率、又は、遊技制御装置100から受信した役物比率が、基準値を超えたか否か判定し、役物比率が基準値を超えた場合に表示装置41の警告報知部に警告表示を表示する。さらに、上スピーカ19a及び/又は下スピーカ19bを警告報知部として使用し、演出制御装置300は、役物比率が基準値を超えた場合に、警告報知部からの音声によって報知する構成も可能である。また、役物比率が基準値を超えた場合に、外部情報端子71を介して外部装置(ホールコンピュータなど)に、役物比率が基準値を超えたことを報知してもよい。
[第5実施形態の作用・効果]
上記の第5実施形態では、遊技制御手段(遊技制御装置100)は、役物比率が所定値を超えた場合に、役物比率が所定値を超えたことを報知可能である。このように、役物比率が所定値を超えたことが報知(表示)された場合には、役物比率に関する報知(表示)によって遊技機の状態(変動入賞装置に入賞し易いか、一般入賞口35等に入賞し易いかなど)を判断可能となる。また、役物比率が所定値を超えたことが報知された場合、一般入賞口35等への入賞が少ない可能性があるため、遊技者は一般入賞口35にも関心を持つことになり、遊技の興趣が向上する。
警告表示手段(第1役物比率警告表示部844及び/又は第2役物比率警告表示部846)は、遊技制御手段(遊技制御装置100)によって制御されて役物比率が所定値を超えたことを表示可能である。警告表示手段は例えば1つのLEDから構成できるが、役物比率の数値を直接表示する表示器(役物比率表示部68)が不要となり、コストが削減できる。なお、遊技制御手段(遊技制御装置100)は、賞球に関連する情報を演出制御手段(演出制御装置300)に送信し、演出制御手段(演出制御装置300)は、役物比率を表示手段にも表示可能である。従って、遊技者等は、数値で役物比率を確認できるが、演出制御手段(演出制御装置300)によって制御される表示手段は通常の遊技機に備わっているものであり、大きなコストの増加はない。
演出制御手段(演出制御装置300)は、客待ち中(客待ち状態中)にのみ役物比率を表示手段(表示装置41又はサブ表示装置830)の表示画面に表示してよい。この場合に、使用する遊技機(遊技台)を選択中の遊技者等のみに役物比率を示し、遊技中は役物比率を表示しない。従って、遊技中の表示装置41の演出に対して役物比率の表示が邪魔になるようなことがない。また、演出制御手段(演出制御装置300)の制御が簡単な構成となる。
また、演出制御手段(演出制御装置300)は、所定回数分(例えば3回)の特別遊技に関する履歴情報(大当り履歴)を表示手段(例えば、表示装置41又はサブ表示装置830)に表示可能である。この場合、所定ラウンド回数のラウンド遊技からなる特別遊技毎に区分けした役物比率を履歴情報に含めて表示可能である。ここで、特別遊技毎に区分けした役物比率は、特別遊技の終了毎にリセットして計測した役物比率を含む。
従って、全期間での役物比率ではなく、特別遊技毎に区分けされた役物比率(不安定な値となることが予めわかっている)を算出して表示手段に表示しておくことにより、遊技者等は、基準値以外に自身の知識や情報に基づいて役物比率が異常値であるか否か判断しようとし、誤判断が少なくなる。
[第6実施形態]
図109から図113を参照して、第6実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第5実施形態までの実施形態と共通の構成でよい。
第6実施形態において、特別変動入賞装置39の大入賞口への一回の大当りラウンドにおける入賞回数である大入賞口カウント数が、上限値(例えば9)を超えて第1閾値(例えば10〜11)に達した場合に、超過入賞(いわゆるオーバー入賞)が発生したことを報知する第1オーバー入賞報知を行う。さらに、大入賞口カウント数が第1閾値を超えて第2閾値(例えば12、第1閾値が10であれば11でも可)に達した場合に、異常な超過入賞を警告するための第2オーバー入賞報知を行う。第2オーバー入賞報知は、第1オーバー入賞報知とは異なる態様の報知である。即ち、第6実施形態において、大入賞口カウント数に応じて2段階でオーバー入賞報知を実行する。
〔オーバー入賞報知処理〕
図109は、第6実施形態に係るオーバー入賞報知処理の手順を示すフローチャートである。
オーバー入賞報知処理は、特別変動入賞装置39の大入賞口への遊技球の入賞が発生する度に演出制御装置300によって実行されるものである。オーバー入賞報知処理は、前述の単発系コマンド処理(図88、図102)のステップB1319において、大入賞口への入賞に関する情報としてカウントのコマンド(大入賞口カウントコマンド)を受信した場合に、カウント情報設定処理(B1320:図89)内で現在のラウンド中のカウント数(大入賞口カウント数)が+1更新された後(ステップB1403の後)に実行されるものでよい。なお、大入賞口カウント数は、1回の開状態(開放状態、ラウンド)における大入賞口への入賞回数を意味する。また、大入賞口カウント数は、一回の大当りラウンドにおいて、大入賞口への入賞に関する情報の演出制御装置300での受信回数又は遊技制御装置100からの送信回数に等しくなる。
また、オーバー入賞報知処理は、単発系コマンド処理(図102)のステップB1321において賞球に関する情報(遊技球の入賞に関する情報)として払出コマンド(図83、図101)を受信した場合に、役物比率設定処理(B1322:図103)内で実行されるものでよい。即ち、カウント情報設定処理(図89)でのカウント数に代えて、現在のラウンド中の大入賞口への入賞に対応する払出コマンドの受信回数を大入賞口カウント数として使用することもできる。
なお、第6実施形態においても、第4実施形態と同様に、遊技制御装置100は、払出制御装置200だけでなく、演出制御装置300にも、払出コマンド(図101)を送信する。即ち、遊技制御装置100は、払出コマンド送信処理(図12)のステップA1719において演出制御装置300へ送信する払出コマンドを準備して、演出コマンド設定処理(図59)を実行するものとする。
オーバー入賞報知処理において、演出制御装置300は、まず、大入賞口カウント数(カウント数)の+1更新があったか否か、即ち、大入賞口へ入賞があったか否かを判定する(B3801)。大入賞口カウント数の+1更新がなかった場合、即ち、大入賞口へ入賞がなかった場合(B3801の結果が「N」)、オーバー入賞報知処理を終了する。なお、一回の大当りラウンドが終了する度に、大入賞口カウント数は0クリアされる。
演出制御装置300は、大入賞口カウント数の+1更新があった場合、即ち、大入賞口へ入賞があった場合(B3801の結果が「Y」)、大入賞口カウント数が第1閾値以上であるか否かを判定する(B3802)。なお、第1閾値は、大入賞口カウント数の上限値(例えば9)より大きい値(例えば10〜11)である。大入賞口カウント数が第1閾値以上でない場合(B3802の結果が「N」)、オーバー入賞報知処理を終了する。
演出制御装置300は、大入賞口カウント数が第1閾値以上である場合(B3802の結果が「Y」)、オーバー入賞による出玉数を示すオーバー入賞出玉数(超過入賞出玉数)に大入賞口の賞球数(ここでは14)を加算する(B3803)。なお、オーバー入賞出玉数は、1回の大当り中(所定遊技状態中)にオーバー入賞によって払い出された賞球数の合計となる。大当りのエンディングが終了する時点で、オーバー入賞出玉数は0クリアされる。
次に、演出制御装置300は、大入賞口カウント数が第2閾値以上であるか否かを判定する(B3804)。第2閾値は、大入賞口カウント数の第1閾値より大きい値(例えば12、第1閾値が10であれば11でも可)であり、後述のようにホール・遊技者設定モード処理によって、ホール(遊技店)の係員等のホール関係者が変更可能である。
大入賞口カウント数が第2閾値以上でない場合(B3804の結果が「N」)、即ち、大入賞口カウント数が第1閾値以上で第2閾値未満の場合、大入賞口カウント数が上限値(例えば9)を超えたこと(即ちオーバー入賞の発生)を報知する第1オーバー入賞報知を実行する(B3805)。なお、ステップB3805の処理は第1報知手段を構成する。また、上限値は、特別変動入賞装置39(大入賞口)が閉鎖を開始する大入賞口カウント数である。
一方、演出制御装置300は、大入賞口カウント数が第2閾値以上である場合(B3804の結果が「Y」)、即ち、大入賞口カウント数が第1閾値を超えてさらに第2閾値(例えば12)に達した場合、異常なオーバー入賞(超過入賞)であることを報知警告するための第2オーバー入賞報知を実行する(B3806)。なお、ステップB3806の処理は第2報知手段を構成する。
なお、遊技者が通常の遊技を行っていても、偶然に大入賞口カウント数が第1閾値に到達することはある。また、大当りラウンド中の演出として、特別変動入賞装置39の上部に配置した滞留部に遊技球を所定期間滞留させて、その後に滞留部を開放して遊技球を特別変動入賞装置39に一気に落下させるような構成の遊技機が存在するが、このような構成を有する場合には、大入賞口カウント数は第1閾値に比較的容易に到達する。しかし、第2閾値には、遊技者が特殊な打法として変則打ちを行うか、又は、糸を付けた遊技球を特別変動入賞装置39に侵入させて大入賞口へ出し入れを繰り返し行うような不正を行わないと到達することが困難である。
〔オーバー入賞報知態様〕
図110Aは、第1オーバー入賞報知と第2オーバー入賞報知の報知態様の一例を示すテーブルである。例えば、第1オーバー入賞報知及び第2オーバー入賞報知は、報知方法として音声及び/又は画像表示を用いて実行される。
第1オーバー入賞報知において、演出制御装置300は、上スピーカ19a及び下スピーカ19bからキャラクタAの音声(例えば「すごいね!」)を流し、表示装置41にキャラクタAとそのセリフ(例えば「すごいね!」)を画像表示する。第2オーバー入賞報知において、演出制御装置300は、上スピーカ19a及び下スピーカ19bからキャラクタBの音声(例えば「コラー!」)を流し、表示装置41にキャラクタBとそのセリフ(例えば「コラー!」)を画像表示する。キャラクタAとキャラクタBは、異なるキャラクタであり、例えば、キャラクタA、Bは、各々、演出のモチーフ(題材)における主人公とその敵のキャラクタでよい。
このように、第2オーバー入賞報知は、第1オーバー入賞報知は異なる態様の報知であり、第1オーバー入賞報知が快適な印象を遊技者に与えるのに対して、第2オーバー入賞報知は、不快な印象を遊技者に与えて警告となる。
なお、音声として、声ではなく単純な音や音楽を用いてもよい。例えば、第1オーバー入賞報知として祝福音(遊技者に快い感情を生じさせる音)で報知し、第2オーバー入賞報知として警告音(遊技者に不快な感情を生じさせる音)で報知してもよい。
図110Bは、第1オーバー入賞報知と第2オーバー入賞報知の報知態様の他の例として、大入賞口内を照らすLEDの発光態様を示すテーブルである。第1オーバー入賞報知及び第2オーバー入賞報知は、報知方法として音声、画像表示の他、又は、音声、画像表示に追加して、大入賞口内を照らすLEDの発光を用いて実行されてもよい。大入賞口内を照らすLEDは、盤装飾装置46の一つとして、特別変動入賞装置39に設けられる。
演出制御装置300は、第1オーバー入賞報知において、オーバー入賞を祝福する意味で、大入賞口内を照らすLEDを黄色に発光させ、第2オーバー入賞報知において、オーバー入賞を警告する意味で、大入賞口内を照らすLEDを赤色に発光させる。なお、大入賞口内を照らすLEDは、通常、白色で発光している。他の発光態様では、第1オーバー入賞報知又は第2オーバー入賞報知として、このLEDをそれぞれ異なる態様で点滅させることもできる。
[画面遷移]
図111は、第6実施形態において、表示装置41の表示画面を時系列で示した画面遷移図であり、大当りラウンド中から大当り終了時(エンディング時)の画面遷移の一例である。
図111の(サ)は、図96Aの(オ)と同じであり、大当りの第8ラウンド(8R)の画面を示す。
(シ)では、第8ラウンド(8R)において、大入賞口カウント数が大入賞口の閉塞が開始する上限値を超えて第1閾値(例えば10)に達したため、第1オーバー入賞報知が実行されている。第1オーバー入賞報知において、表示装置41にキャラクタA(蛙)とそのセリフ(例えば「すごいね!」)が表示されている。同時に、上スピーカ19a及び下スピーカ19bが、キャラクタAの音声(例えば「すごいね!」)を発する。なお、第1オーバー入賞報知における表示や音声として、大入賞口カウント数が第1閾値に達したことをより直接的に報知してもよい(例えば「すごいね!10個達成!」)。
(ス)では、第8ラウンドにおいて、大入賞口カウント数が第1閾値を超えて第2閾値(例えば11)に達したため、第2オーバー入賞報知が実行されている。第2オーバー入賞報知において、表示装置41にキャラクタB(蛇)とそのセリフ(例えば「コラー!」)が表示されている。同時に、上スピーカ19a及び下スピーカ19bが、キャラクタBの音声(例えば「コラー!」)を発する。なお、第2オーバー入賞報知における表示や音声として、大入賞口カウント数が第2閾値に達したことをより直接的に報知してもよい(例えば「11個は多すぎだよ。コラー!」)。
図111の(セ)は、図96Aの(カ)と同じであり、大当りの最終ラウンド(16R)の画面を示す。
図111の(ソ)は、図96Bの(キ)に対応するが、特別遊技状態(大当り)終了の際のエンディング中の表示装置41において、1回の大当り中に大入賞口へのオーバー入賞によって獲得した出玉数(賞球数)が、凄腕出玉数として「224両」と表示されている。なお、ここで「両」は個数を意味するが、「両」は個数を反映するものであれば正確に個数に対応しなくてもよい。例えば、「両」を2個単位として、「112両」と表示することも可能である。
なお、オーバー入賞によって獲得した出玉数(賞球数)を表示することによって、遊技者はオーバー入賞を多数発生させることができたという優越感を持つことができ、遊技の興趣が向上する。また、ホール係員等のホール関係者は、オーバー入賞によって獲得した出玉数が極端に大きいことを確認した場合に、遊技者が変則打ちをしている可能性や不正行為を行っている可能性があるので、当該遊技者を注意対象者としてマークすることができる。
また、(ソ)のエンディング画面において、取得出玉数が「2016両」と表示されているが、14個賞球×9カウント(カウント数上限値)×16ラウンド=2016個に相当するものである。即ち、取得出玉数は、1回の大当りで最終的に獲得した獲得出玉数(2240個)から、オーバー入賞によって獲得した出玉数(凄腕出玉数)を減算したものである。さらに、大当り中に一般入賞口35への入賞によって獲得した出玉数(賞球数)が、「おまけ」として表示されている。ここでは、10個賞球×1R当り約3回入賞×16R=480個が、一般入賞口35への入賞によって獲得した出玉数として例示されている。
なお、図111の(ソ)では、図96Bの(キ)で記載を省略した、遊技者に右打ちするように指示する報知である右打ち表示(「右打ちだ!→」)がエンディング中にも実行されている。ここで、右打ち表示は、遊技者の操作部への操作(操作ハンドル24の回動操作量を大きくすること)に関する情報であるため、他の表示よりも優先して前面側に表示されている。ここで、遊技者の操作に関する情報としての右打ち表示は濃く表示し、他の表示は薄く表示してもよいし、他の表示と右打ち表示の表示範囲が重なる場合には、他の表示を表示しなくてもよい。また、他の表示と右打ち表示の表示範囲が重なる場合には、それらの表示を交互に表示するようにしてもよい。すなわち、種々の表示が混在した場合に表示すべき情報を予め設定した優先順位に基づいて表示することで、遊技者が表示内容を誤認しないようにすることができる。また、他の表示は、流れ星が流れるような演出画像表示やセリフ表示部770a内の表示であるが、キャラクタ770や大当り履歴表示部760内の表示も含んでよい。
図111の(タ)は、図96Bの(ク)に対応し、大当り状態終了後に特定遊技状態(高確率状態又は時短状態)「RUSH」が発生した場合の表示画面を示す。(ソ)に引き続き右打ち表示が実行されている。
〔ホール・遊技者設定モード処理〕
図112は、第6実施形態に係るホール・遊技者設定モード処理(図78のB1010)の手順を示すフローチャートである。図112では、第3実施形態のホール・遊技者設定モード処理(図95)に対して、オーバー入賞設定処理(B4001)が追加されているが、他のステップは同じであり同じステップ番号を付して説明を省略する。
例えば、所定のタイミングで演出ボタン25の所定の操作が行われたり、遊技機10の裏側の所定のスイッチが操作された場合に、ホール設定モード開始条件が成立して(B2703の結果が「Y」)、ホール設定モード(B2704−B2716)に入ることができる。
演出制御装置300は、ホールLED輝度調整処理(B2707)に続いて、オーバー入賞設定処理(B4001)を実行し、その後に液晶輝度調整処理(B2708)を実行する。オーバー入賞設定処理において、異常なオーバー入賞(超過入賞)であることを報知警告するための第2閾値を設定する。
[ホール設定モードの表示画面]
図113は、ホール設定モードにおける表示装置41の表示画面の一例を示す図である。画面描画開始設定(B2704)による画面描画によって、各種調整を行うための各種調整表示(メータ、ゲージ等)や各種選択をするためのメニュー表示などが、表示装置41に表示される。
各種調整表示には、音量の選択設定のための音量設定表示861、LED輝度の選択設定のための輝度設定表示863、第2閾値の選択設定のためのオーバー入賞警告設定表示865、液晶輝度(表示装置41の輝度)の選択設定のための液晶輝度設定表示867がある。メニュー表示には、省電力の選択設定を行うための省電力設定表示869、ロゴ役物の発行色等を選択設定するためのロゴカラー設定表示871、選択設定を確定するために選択されて操作者の設定確定操作(演出ボタン25を押す操作)があると設定を確定する設定確定操作表示873、工場出荷時の設定にするか否かの選択設定を行うための工場出荷時設定表示875がある。
その他、ホール設定モードにおける表示画面には、演出ボタン25の操作方法を示唆する操作方法表示877や、特図変動表示ゲームの第4図柄の設定を行う第4図柄設定表示879が表示される。なお、第4図柄(第四特別図柄)は、飾り特図変動表示ゲームにおいて、表示装置41での左(第一特別図柄)、右(第二特別図柄)、中(第三特別図柄)の図柄以外の飾り特別図柄(識別情報)として、点灯表示と消灯表示の繰り返し(点滅)などによって変動して、特図変動表示ゲームの実行中であることを示す。第4図柄の変動表示は、表示装置41やそれ以外のサブ表示装置、又は、LEDランプで表示される。
オーバー入賞警告設定表示865は、デフォルトでメータが1目盛(1段階)だけ表示され、第2閾値のデフォルト値を示す。第1閾値は、遊技機10の機種(スペック)に応じて異なるため、第2閾値のデフォルト値も遊技機10の機種(スペック)に応じて異なる。演出制御装置300は、受信した機種指定コマンド(機種情報)に応じて、第2閾値のデフォルト値と第1閾値を機種設定処理(図88又は図102のB1302)において設定できる。このように、第2閾値のデフォルト値が遊技機10の機種に応じた値となるため、第2閾値の選択設定が簡便にできる。
例えば、オーバー入賞の第1閾値が10であれば、第2閾値のデフォルト値は11である。操作者(特に、遊技店の係員)は、演出ボタン25の上下方向のタッチ操作によってオーバー入賞警告設定表示865を特定表示態様(ハイライト表示(黒枠参照))で表示させ、演出ボタン25の左右方向のタッチ操作によって、第2閾値の値を増減させる。演出ボタン25を右方向にタッチ操作すると、オーバー入賞警告設定表示865において、表示されるメータが2目盛(2段階)に増えて、メータの横に第2閾値が12と表示される。メータは1〜5目盛(1〜5段階)で調整できる。演出ボタン25の上下方向のタッチ操作によって設定確定操作表示873が選択されて、演出ボタン25の設定確定操作(演出ボタン25を押す操作)が行われると、選択された第2閾値が確定する。このようにして、第2閾値を遊技店(ホール)側の意向に応じて柔軟に設定(変更)できることとなる。
以上の第6実施形態の変形例として、次のような構成も可能である。
オーバー入賞が発生する度にオーバー入賞報知(第1オーバー入賞報知又は第2オーバー入賞報知)が実行される構成としたが、大入賞口カウント数が第1閾値又は第2閾値に達した際(直後)にのみオーバー入賞報知が実行され、大入賞口カウント数が第1閾値と第2閾値以外の場合ではオーバー入賞報知が実行されない構成としてもよい。
所定回数のラウンド遊技からなる特別遊技状態において、特定のラウンド(特定のラウンド遊技)でのみ第1オーバー入賞報知又は第2オーバー入賞報知を実行する構成としてもよい。特に、最終ラウンドでは、エンディングまでの時間が少ないため、エンディングと重ならないように、第1オーバー入賞報知又は第2オーバー入賞報知を実行しなくてもよい。
また、遊技制御装置100から払出コマンド(図83、図101)を外部装置としての遊技場内部管理装置(ホールコンピュータ)に送信し、外部装置において図109のオーバー入賞報知処理を実行することもできる。この場合には、外部装置において、第1オーバー入賞報知を必ずしも実行する必要はないが、第2オーバー入賞報知を実行する。
さらに、第6実施形態のオーバー入賞報知を、大入賞口のオーバー入賞のみならず、普通変動入賞装置37(第2始動入賞口)のオーバー入賞に適用することもできる。例えば、所定遊技状態(特定遊技状態、普電サポート状態など)において、演出制御装置300は、普通変動入賞装置37の一回の開放中に、第2始動入賞口への入賞回数が基準値(例えば2個)より大きい第1閾値(例えば3個)に達した場合に第1オーバー入賞報知を実行し、さらに第2閾値(例えば4個)に達した場合に第2オーバー入賞報知を実行してよい。なお、演出制御装置300は、遊技制御装置100から払出コマンド(図83、図101)を受信することにより、普通変動入賞装置37(第2始動入賞口)への入賞回数をカウント数としてカウントすることができ、図109のオーバー入賞報知処理を適用できる。これにより、普通変動入賞装置37に関しても、2段階で異なるオーバー入賞報知を実行し、遊技の興趣を高めつつ、異常な超過入賞(オーバー入賞)に対して警告することができる。
[第6実施形態の作用・効果]
上記の第6実施形態では、遊技機10は、ゲーム(特図変動表示ゲームや普図変動表示ゲーム)の結果が所定の結果となった場合に遊技者に有利な所定遊技状態(特別遊技状態や特定遊技状態(普電サポート状態))を発生可能である。変動入賞装置(特別変動入賞装置39や普通変動入賞装置37)は、所定遊技状態において開状態(開放状態、動作状態)となり、当該開状態において閉状態(非開放状態、非動作状態)よりも遊技球の入賞が容易になる。検出手段(カウントスイッチ39a(大入賞口スイッチ)や始動口2スイッチ37a)は、変動入賞装置への遊技球の入賞を検出する。
さらに、遊技制御手段(遊技制御装置100)は、検出手段によって変動入賞装置への遊技球の入賞が検出された場合に、遊技球の入賞に関する情報(大入賞口カウントコマンドや払出コマンド)を演出制御手段(演出制御装置300)へ送信する。演出制御手段(演出制御装置300)の第1報知手段(図109のB3805)は、変動入賞装置への遊技球の入賞回数(又は、遊技球の入賞に関する情報の送信回数)が、1回の開状態において第1閾値に達した場合に、第1超過入賞報知(第1オーバー入賞報知)を実行する。演出制御手段(演出制御装置300)の第2報知手段(図109のB3806)は、変動入賞装置への遊技球の入賞回数が、1回の開状態において第1閾値より大きい第2閾値に達した場合に、第2超過入賞報知(第2オーバー入賞報知)を実行する。例えば、第2超過入賞報知の報知態様は、第1超過入賞報知の報知態様と異なり、警告となってよい。
変動入賞装置への遊技球の入賞回数が、上限値(規定回数、基準値)や第1閾値を超えて第2閾値以上になった場合に、入賞回数が異常に大きく偶然の可能性が低い。しかし、上記の構成によって、このような異常な超過入賞(オーバー入賞)が生じた場合に、第2超過入賞報知(第2オーバー入賞報知)によって警告することができる。
また、第6実施形態において、演出制御手段(演出制御装置300)は、遊技者が操作可能な操作手段(演出ボタン25)への操作(タッチ操作など)に応じて、第2閾値を変更可能である。従って、警告を行う第2閾値を遊技店(ホール)の意向に応じて簡便に変更できることとなる。
さらに、第6実施形態において、演出制御手段(演出制御装置300)は、1回の所定遊技状態(特別遊技状態や特定遊技状態)において、変動入賞装置への入賞回数が第1閾値以上である場合に払い出された賞球数を合計し(図109のB3803)、当該所定遊技状態が終了するタイミングでこの賞球数の合計を表示手段(表示装置41)に表示する。従って、遊技者はオーバー入賞を当該所定遊技状態においてどのくらい発生させることができか知ることができ、遊技の興趣が向上する。また、ホール係員等のホール関係者は、オーバー入賞によって獲得した出玉数を示す当該合計数が極端に大きい場合に、遊技者が変則打ちをしている可能性や不正行為を行っている可能性を認識できる。
[第7実施形態]
図114と図115を参照して、第7実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第6実施形態までの実施形態と共通の構成でよい。
第7実施形態において、演出制御装置300は、前述の変動演出設定処理(図92のB1905)によって、変動中の演出(変動演出)として飾り特図変動表示ゲームの演出態様を、仮停止態様(揺れ変動)を含むように設定する。なお、演出制御装置300が実行する変動演出設定処理(図92のB1905)等は、仮停止実行手段を構成する。
図114は、第7実施形態による飾り特図変動表示ゲームにおける各飾り特別図柄(識別情報:左図柄、右図柄、中図柄)の動き状態を説明するタイミングチャートである。飾り特図変動表示ゲームの開始時において、左図柄891(第一特別図柄)、右図柄892(第二特別図柄)、中図柄893(第三特別図柄)が全て変動を開始する。そして、変動開始から所定時間Ta経過後に、左図柄891が仮停止して、仮停止した左図柄(第1停止図柄)が振動動作によって揺れる揺れ変動を行う。この揺れ変動は、その後、右図柄892が停止したときにリーチ状態となる可能性があることを予告する予告演出となる。例えば、リーチが発生することなく飾り特図変動表示ゲームが停止する場合と比較して、左図柄891が仮停止した後の揺れ変動の揺れ幅(動作幅)を大きくすることで、リーチが発生する可能性があることを遊技者に報知するようにしている。
次に、変動開始から所定時間Tb経過後に、右図柄892が仮停止してリーチ状態となり、仮停止した左図柄891と仮停止した右図柄892(第2停止図柄)の両方が振動動作によって揺れる揺れ変動を行う。その後、変動開始から所定時間Tc経過後に、中図柄893が仮停止して図柄確定待ち状態になり、仮停止した左図柄891、仮停止した右図柄892、及び、仮停止した中図柄893(第3停止図柄)が振動動作によって揺れる揺れ変動を行う。そして、変動開始から所定時間Td経過後に、揺れ変動が終了し三つの停止図柄が完全に停止して図柄が確定し、飾り特図変動表示ゲームの結果(停止図柄)が大当り結果(特別結果態様)又ははずれ結果に確定する。
なお、図柄が確定しない場合には、所定時間Td経過前に再変動が開始して擬似連続予告となるようにしてもよい。特に、擬似連続予告では、中図柄893として再変動図柄が仮停止してもよい。擬似連続予告(擬似連続演出)では、飾り特別図柄を特別結果態様以外の停止態様で仮停止(擬似的に停止)させてその後に擬似変動(再変動)させることを繰り返して、複数回の変動表示ゲームが連続して行われているかのような演出を行う。
図柄が確定する図柄確定タイミングTd以降、確定した飾り特別図柄を表示しておく時間(期間)が図柄停止表示時間となる(例えばTdから次の飾り特図変動表示ゲームが開始するまでの時間などで、例えば600msec)。なお、本実施形態では、中図柄893が仮停止する中図柄停止タイミングTcから図柄確定タイミングTdまでの図柄確定待ち状態の時間(Td−Tc)は、図柄停止表示時間より長く設定される。このため、図柄確定待ち状態で、再変動する期待感を遊技者に十分抱かせることができる。
図115は、第7実施形態において、表示装置41の表示画面を時系列で示した画面遷移図であり、(ナ)の1つの図柄の仮停止(リーチ予告状態)から(ニ)のリーチ発生を経て、(ヌ)の三つの図柄の仮停止(図柄確定待ち状態)までの飾り特図変動表示ゲームの様子を示す画面遷移の一例である。
図115の(ナ)は、所定時間Taの経過直後に相当し、1回目の仮停止状態として、左図柄891のみが揺れ変動によって仮停止してリーチ予告を開始する。このリーチ予告時において、仮停止した左図柄891は、大きな動作幅V1(第1動作幅)で揺れ変動(振動動作)を行っている。左図柄891の動作幅(振幅)が大きいため、遊技者は注目して、右図柄892がどのような図柄で仮停止すればリーチとなるか十分に知ることができる。
なお、左図柄891は、基準位置を中心にして、上下方向(縦方向)内でのみ揺れ変動を行っているが、代わりに、左右方向(横方向)内でのみ大きな動作幅(振幅)W1の揺れ変動を行ってもよい。左右方向の動作幅W1は、上下方向の動作幅V1と同じでもよいし、異なってもよい。また、左図柄891は、上下方向及び左右方向の両方で振動する場合に、上下方向及び左右方向での振動の位相を同位相又は逆位相にして斜め方向に揺れ変動を行ってもよい。さらに、左図柄891は、上下方向及び左右方向での振動の位相を同位相又は逆位相からずらして、円状又は楕円状に動くこともできる。
図115の(ニ)は、所定時間Tbの経過直後に相当し、2回目の仮停止状態として、右図柄892が左図柄891に続いて仮停止してリーチが発生する。ここでは、仮停止した左図柄891と仮停止した右図柄892が第2動作幅(V2又はW2)で振動して揺れ変動を行う。左図柄891と右図柄892は、揺れ変動で動作しているため、完全に止まっていない仮停止状態であることを遊技者に報知できる。
仮停止した左図柄891と仮停止した右図柄892の揺れ変動の態様(各図柄の揺れ変動の方向や動作幅など)は、同じでもよいし、異なってもよい。同じであれば、左図柄891と右図柄892の協調感により遊技の興趣が高まるし、異なる場合には遊技者に驚きを与えることができる。
このリーチ発生時での図柄の上下方向における動作幅V2(又は左右方向における動作幅W2)は、(ナ)のリーチ予告時での図柄の上下方向における動作幅V1(又は左右方向における動作幅W1)よりも小さい(V1>V2、W1>W2)。従って、(ニ)における揺れ変動は、ムービー等のリーチ演出の邪魔にならない。
図115の(ヌ)は、所定時間Tcの経過直後に相当し、3回目の仮停止状態として、中図柄893も、左図柄891と右図柄892に続いて仮停止して、3つの図柄が揺れ変動を開始する。ここでは、仮停止した左図柄891、仮停止した右図柄892、及び、仮停止した中図柄893が、第3動作幅(V3又はW3)で振動して揺れ変動を行う。仮停止した全図柄の揺れ変動の態様(各図柄の揺れ変動の方向や動作幅など)は、同じでもよいし、それぞれ異なってもよい。また、第3動作幅は、特図変動表示ゲームが特別結果(大当り)になるか否かに応じて設定してよい。例えば、第3動作幅は、飾り特図変動表示ゲームの結果がはずれの場合に、大当りの場合よりも大きくなるように設定してよい。即ち、この場合、はずれの場合でも再変動が行われる期待感を高めて遊技の興趣を向上できる。
この図柄確定待ち状態での図柄の上下方向における動作幅V3(又は左右方向における動作幅W3)は、(ナ)のリーチ予告時での図柄の上下方向における動作幅V1(又は左右方向における動作幅W1)よりも小さく(V1>V3、W1>W3)、さらに、(ニ)のリーチ発生時での図柄の上下方向における動作幅V2(又は左右方向における動作幅W2)以下である(V2≧V3、W2≧W3)。
以上のように、仮停止実行手段(変動演出設定処理等)は、第1仮停止(先の仮停止)の後に、仮停止する識別情報の数が第1仮停止よりも多くなる第2仮停止(後の仮停止)を実行し、第1仮停止における識別情報の振動する幅を、第2仮停止における識別情報の振動する幅より大きく設定可能である。なお、第1仮停止(先の仮停止)は、先に実行される仮停止であり、第2仮停止(後の仮停止)が2回目の仮停止(図115の(ニ))なら1回目の仮停止(図115の(ナ))に対応する。第1仮停止は、第2仮停止が3回目の仮停止(図115の(ヌ))なら1回目又は2回目の仮停止(図115の(ナ)(ニ))に対応する。
以上のように、第7実施形態は、以下の発明を具体化したものである。
(1)複数の識別情報(飾り特別図柄)を変動表示する変動表示ゲーム(飾り特図変動表示ゲーム)を表示可能な表示装置と、前記表示装置における前記変動表示ゲームの表示を制御可能な演出制御手段を備えた遊技機において、
前記演出制御手段は、前記表示装置において少なくとも1つの識別情報を振動させて表示する仮停止を、1回の変動表示ゲームにおいて複数回実行することが可能な仮停止実行手段を備え(図92のB1905、図114、図115)、
前記仮停止実行手段は、第1仮停止(例えば図115の(ナ))の後に、仮停止する識別情報の数が前記第1仮停止よりも多くなる第2仮停止(例えば図115の(ニ)又は(ヌ))を実行し、前記第1仮停止における識別情報の振動する幅(振幅V1)を、前記第2仮停止における識別情報の振動する幅(振幅V2又はV3)より大きく設定可能であることを特徴とする遊技機。
(2)前記演出制御手段は、前記表示装置において、仮停止と当該仮停止後の擬似変動とを繰り返す擬似連続演出を実行可能であることを特徴とする(1)に記載の遊技機。
(3)前記演出制御手段は、仮停止における識別情報の振動する幅を、前記変動表示ゲームが特別結果(大当り)になるか否かに応じて設定することを特徴とする(1)又は(2)に記載の遊技機。
[第7実施形態の作用・効果]
上記の第7実施形態では、識別情報の振動する幅が、先に実行される第1仮停止(例えば図115の(ナ))よりも、第1仮停止の後に実行される第2仮停止(例えば図115の(ニ)又は(ヌ))で小さくなる。従って、飾り特図変動表示ゲームに終了(識別情報の確定)に向けて、仮停止状態における識別情報の振動する幅を段階的に小さくでき、これまでにない斬新な演出を行うことができ、遊技の興趣が向上する。なお、従来の遊技機では、仮停止状態における識別情報の振動する幅について考慮されず、遊技の興趣について改善の余地があった。
〔第7実施形態の変形例1〕
図116と図117を参照して、第7実施形態の変形例1について説明する。図116は、変形例1による飾り特図変動表示ゲームにおける各飾り特別図柄の動き状態を説明するタイミングチャートである。図117は、変形例1において、表示装置41の表示画面を時系列で示した画面遷移図である。なお、図117の(ニ)と(ヌ)は、図115の(ニ)と(ヌ)と同じである。
第7実施形態の変形例1では、リーチがSPリーチに発展する例を示す。図117(ニ)のように、変動開始からの時間Tbaで、右図柄892が仮停止してリーチ状態となる。その後、時間Tbbにおいて、リーチはSPリーチに発展する。SPリーチ発展後において、表示装置41の表示画面の中央でSPリーチ演出(ムービー等)を表示するため、図117(ネ)のように、左図柄891と右図柄892が、各々、左上と右上の隅に移動する。そして、隅に移動した左図柄891と右図柄892は、数字部分だけを残して他を消去するように通常態様から特殊態様に変更され、仮停止状態で揺れ変動を行う。即ち、隅に位置した左図柄891と右図柄892は、通常サイズの通常態様(図117(ニ))よりも縮小した縮小サイズの特殊態様で表示されて仮停止している。その後、図117(ヌ)のように、中図柄仮停止タイミングTcにおいて、SPリーチが終了して仮停止した3つの図柄が振動して揺れ変動を行う。ここでは、左図柄891と右図柄892は、通常サイズに復帰している。
ここで、演出制御装置300が実行する変動演出設定処理(図92のB1905)等は、識別情報(飾り特別図柄)を通常態様から特殊態様に変更することが可能な識別情報変更手段を構成する。そして、識別情報変更手段(変動演出設定処理等)は、識別情報が特殊態様に変更される前に第1仮停止(先の仮停止)を実行し、識別情報が特殊態様に変更された後に第2仮停止(後の仮停止)を実行する。従って、第1仮停止と第2仮停止の間の時間で、識別情報(飾り特別図柄)の変更によって遊技の興趣を高めることができるし、表示画面に特別な演出(SPリーチ演出等)を表示するスペースを空けることができる。
ところで、本変形例では、第1仮停止(先の仮停止)は2回目の仮停止(図117の(ニ))に対応し、第2仮停止(後の仮停止)は3回目の仮停止(図117の(ヌ))に対応している。しかし、これに限られず、第1仮停止(先の仮停止)を1回目の仮停止(図115の(ナ))に対応させ、第2仮停止(後の仮停止)を2回目又は3回目の仮停止(図117の(ニ)(ヌ))に対応させてもよい。
なお、図柄確定待ち状態の時間(Td−Tc)は、時間Tbaから時間Tbbまでの時間(Tbb−Tba)よりも長く設定される。このため、図柄確定待ち状態で、再変動する期待感を遊技者に十分抱かせることができる。
また、図116において、仮停止した左図柄891、仮停止した右図柄892、及び/又は、仮停止した中図柄893の揺れ変動における動作幅(V1、V2、W1、W2、V3、W3)が大きいほど、揺れ変動の継続する時間(期間)を短く設定してもよい。逆に、揺れ変動における動作幅が小さいほど、揺れ変動の継続する時間(期間)を長く設定してもよい。例えば、揺れ変動における動作幅に反比例させて、揺れ変動の継続する時間を長くする。即ち、揺れ変動の変動動作が大きいときは、飾り特別図柄の揺れ変動が続くという遊技者の期待感が高いため、逆に揺れ変動の時間は短く設定する。揺れ変動の変動動作が小さいときは、揺れ変動が続く期待感が低くなるため、逆に揺れ変動の時間を長く設定する。これにより、図柄確定タイミングを適宜調整して、大当り遊技者の大当りへの期待をじらしつつ、大当りの期待感を持続させることができる。
〔第7実施形態の変形例2〕
図118と図119を参照して、第7実施形態の変形例2について説明する。図118は、変形例2による飾り特図変動表示ゲームにおける各飾り特別図柄の動き状態を説明するタイミングチャートであり、(A)は、特図変動表示ゲームの結果が大当りになる当り変動の場合を示し、(B)は、特図変動表示ゲームの結果がはずれになるはずれ変動の場合を示す。図119は、変形例2において、図柄確定待ち状態における表示装置41の表示画面であり、(ヌ―1)は飾り特図変動表示ゲームの結果が大当りとなる場合を示し、(ヌ―2)は、飾り特図変動表示ゲームの結果がはずれとなる場合を示す。なお、図119の(ヌ―1)と(ヌ―2)は、図115の(ヌ)に対応する。
特図変動表示ゲームの結果が大当りになる場合よりもはずれになる場合の方が、中図柄が仮停止してから図柄確定タイミングとなるまでの揺れ変動の動作時間(図柄確定待ち状態の期間)を長くし、且つ/又は、この動作時間において揺れ変動の動作幅を大きくしても良い。従って、はずれの場合でも再変動が行われる期待感を高めて遊技の興趣を向上できる。
即ち、図118のように、特図変動表示ゲームの結果が大当りになる場合とはずれになる場合の図柄確定タイミングをそれぞれ時間Tda、Tdbとすると、はずれになる場合の図柄確定待ち状態の期間(Tdb−Tc)は、大当りになる場合の図柄確定待ち状態の期間(Tda−Tc)よりも長くしてよい。図119の(ヌ―1)と(ヌ―2)のように、図柄確定待ち状態において、仮停止した図柄の揺れ変動の動作幅は、はずれになる場合の動作幅V4、W4の方が、大当りになる場合の動作幅V3、W3よりも大きくしてよい(V4>V3、W4>W3)。なお、はずれになる場合の動作幅V4、W4は、リーチ状態における動作幅V2、W2より大きくてもよいし(V4>V2、W4>W2)、リーチ状態における動作幅V2、W2以下でもよい(V4≦V2、W4≦W2)。
なお、図120の(ヌ―3)(ヌ―4)のように、変形例2を、再抽選なしの大当りの場合と、再抽選ありの大当りの場合に適用してもよい。即ち、図119の(ヌ―1)(ヌ―2)の大当りの場合とはずれの場合をそれぞれ再抽選なしの大当りと再抽選ありの大当りの場合に置き換えて、変形例2を適用してもよい。なお、再抽選とは、例えば、一度仮停止させた通常大当り図柄(又は確変大当り図柄)を、再抽選に当選した場合に再変動させて確変大当り図柄(又は通常大当り図柄)に変更することなどをいう。
図120の(ヌ―3)では、確変大当り図柄が例えば「七、七、七」と表示され、図120の(ヌ―4)では、通常大当り図柄が例えば「二、二、二」と表示されている。図柄確定待ち状態において、仮停止した図柄の揺れ変動の動作幅は、再抽選ありの大当りの場合の動作幅V4、W4の方が、再抽選なしの大当りの場合の動作幅V3、W3よりも大きくしてよい(V4>V3、W4>W3)。これにより、再抽選ありの大当りの場合に、再抽選による再変動の可能性を遊技者に報知することができる。
[第8実施形態]
図121から図133を参照して、第8実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第7実施形態までの実施形態と共通の構成でよい。
図121Aは、第8実施形態に係る遊技用マイコン111のCPU111aの内部構成を示すブロック図である。第8実施形態においては、CPU111aは、CPUコア102として示されている。CPUコア102はZ80系のCPUとして構成されている。第8実施形態において、CPUコア102は、従来技術(例えば、特開2013−233285)とは異なるレジスタ構成を有する。
図121Aに示すCPUコア102(CPU111a)は、それぞれ8ビットの幅を有する、Wレジスタ1201A、Aレジスタ1202A、Bレジスタ1204A、Cレジスタ1205A、Dレジスタ1207A、Eレジスタ1208A、Hレジスタ1210A、Lレジスタ1211Aを備えている。
これらの汎用レジスタは、Wレジスタ1201AとAレジスタ1202Aとを組み合わせて、16ビットの幅を有するWAレジスタ1203A(ペアレジスタ、レジスタペア)として使用することも可能である。同様に、Bレジスタ1204AとCレジスタ1205Aとを組み合わせたBCレジスタ1206A(ペアレジスタ、レジスタペア)、Dレジスタ1207AとEレジスタ1208Aとを組み合わせたDEレジスタ1209A(ペアレジスタ、レジスタペア)、Hレジスタ1210AとLレジスタ1211Aとを組み合わせたHLレジスタ1212A(ペアレジスタ、レジスタペア)を使用することも可能である。
さらに、CPUコア102(CPU111a)は、それぞれ16ビットの幅を有する、IXレジスタ1231a、IYレジスタ1232aを備えている。IXレジスタ1231a、IYレジスタ1232aは、後述の命令解釈実行回路1242がデータにアクセスする際のインデックスとして用いられる。また、後述のように、IYレジスタ1232aは、アドレス空間(又は、メモリ空間)におけるRAM111c(作業領域用記憶手段)の先頭アドレスを設定するための先頭アドレス指定レジスタとして使用できる。
なお、これらの汎用レジスタは、1つの汎用レジスタ群(レジスタバンク0のレジスタ群)1220Aを形成している。一方、CPUコア102は、レジスタバンク0のレジスタ群1220Aに含まれる汎用レジスタと同一(又は同様)の構成を有する、もう1つの汎用レジスタ群(レジスタバンク1のレジスタ群)1220Bを備えている。
このレジスタバンク1のレジスタ群1220Bには、レジスタバンク0のWレジスタ1201A〜Lレジスタ1211Aと同一の機能を有する、Wレジスタ1201B〜Lレジスタ1211Bを備えている。これらのレジスタも、レジスタバンク0同様に、WAレジスタ1203B〜HLレジスタ1212Bとして、16ビットのレジスタとして使用することが可能である。また、レジスタバンク1のレジスタ群1220Bには、IXレジスタ1231a、IYレジスタ1232aと同一の機能を有する、IXレジスタ1231b、IYレジスタ1232bを備えている。
さらに、CPUコア102は、8ビットの幅を有するフラグレジスタ1200を備えている。
フラグレジスタ1200は、図121Bで詳細を説明するが、レジスタを用いた演算結果が格納される。また、フラグレジスタ1200の、レジスタバンクセレクタ(RBS)1301(図121Bで後述)によって、2つの汎用レジスタ群1220A、1220Bのうちのいずれを、演算対象として用いるかが選択される。
レジスタバンクセレクタ(RBS)1301により選択されたレジスタ群に属する各レジスタは、後述の命令解釈実行回路1242によって演算に用いられる。一方、選択されていないレジスタ群に属する各レジスタは、レジスタバンクセレクタ(RBS)1301の値が変更されて選択対象となるまでは、値を保持する。
また、CPUコア102は、DPレジスタ1230を備えている。DPレジスタ1230は、例えば、アドレス空間(又は、メモリ空間)におけるROM111bのデータエリア(ユーザプログラム用)の先頭アドレスを格納するために使用できる。データエリアには、各種のテーブルやデータ等が記憶されている。
さらに、CPUコア102は、それぞれ16ビットの幅を有する、スタックポインタとして機能するSPレジスタ1233、及びプログラムカウンタとして機能するPCレジスタ1234を備えている。
スタックポインタ1233は、スタックエリアにデータを格納する(又はデータを取り出す)際の領域の位置を示す。プログラムカウンタ1234は、後述の命令解釈実行回路1242で実行されている命令が格納されているアドレスを示している。
命令解釈実行回路1242は、遊技制御プログラムを実行して、CPUコア102内部の各レジスタを用いた演算処理を行う。具体的には、ROM111bにて、プログラムカウンタ1234に示されるアドレスに記憶されたデータを読み出すとともに、読み出したデータをコードと見なして、コードに対応する命令を実行する。命令解釈実行回路1242は、所定の命令セットに含まれる命令を解釈実行である。
故に、本実施形態においては、CPUコア102(CPU111a)自体を演算処理手段として例示しているが、CPUコア102の内部では、命令解釈実行回路1242が主体となって演算処理手段の機能を果たしている。なお、RAM111cは、演算処理手段(CPU111a、CPUコア102)によって更新される情報が記憶される更新情報記憶手段となるとともに、バックアップ電源によって停電が発生したとしても記憶された情報の記憶保持が可能な保持記憶手段となる。
なお、命令解釈実行回路1242は、遊技制御プログラム(遊技制御用プログラム)の命令に対応して、アクセス回路1243、アドレスバス721、及びデータバス722を介して、CPUコア102外部のROM111b(ユーザプログラムROM)、RAM111c(ユーザワークRAM)、及び他の回路との間で、データの授受を行う場合もある。アドレスバス721は、16ビットの信号線によって構成され、CPUコア102は、アドレスバス721に指定したアドレスを出力し、データバス722を介して指定したアドレス(ROM111b、RAM111c等のアドレス)に格納されたデータを入出力する。
また、命令解釈実行回路1242は、ROM111bの命令を1つずつ実行する毎に、次の命令が格納されているアドレスをプログラムカウンタ1234に格納する。このようにして命令の実行と、プログラムカウンタ1234の更新を繰り返すことで、遊技制御プログラムが順次実行される。なお、遊技用マイコン111に設けられている割込制御回路724からの割込信号を受け付けると、プログラムカウンタ1234の値は、予め設定された割込処理のアドレスの値に切り替えられる。
この命令解釈実行回路1242及びCPUコア102に備える各レジスタは、内部バス1235によって、データが授受される。
初期値設定回路1241は、CPUコア102に備える各レジスタに初期値をハード的に設定する回路である。
内蔵リセット回路1240は、遊技用マイコン111に設けられているセキュリティ回路725からのリセット信号を受信すると、初期値設定回路1241を起動させ、CPUコア102に備える各レジスタに初期値を設定させたのちに、命令解釈実行回路1242を起動させる。
図121Bは、第8実施形態に係るフラグレジスタ1200の構成を説明する図である。フラグレジスタ1200の各ビットの値は、図121Bにおける命令解釈実行回路1242によって設定される。
割込マスタ許可フラグ(IMF)1300は、割込信号による割込処理の許否を設定するフラグであり、セット(値が「1」)で許可、クリア(値が「0」)で禁止となる。
レジスタバンクセレクタ(RBS)1301は、図121Aにおける命令解釈実行回路1242が演算処理を行う際に、2つの汎用レジスタ群1220A、1220Bのうちのいずれを用いるかを選択するフラグであり、セット(値が「1」)でレジスタバンク1のレジスタ群1220B、クリア(値が「0」)でレジスタバンク0のレジスタ群1220Aが選択される。
オーバーフローフラグ(VF)1302は、所定の演算によって演算対象の汎用レジスタに桁溢れ(オーバーフロー)が発生するとセット(値が「1」)され、他の場合はクリア(値が「0」)される。
サインフラグ(SF)1303は、所定の演算によって演算対象の汎用レジスタの最上位ビットが「1」になるとセット(値が「1」)され、他の場合はクリア(値が「0」)される。
ハーフキャリーフラグ(HF)1304は、8ビット演算を行った結果として演算対象の汎用レジスタの4ビット目に桁上がり(キャリー)や桁借り(ボロー)が発生するとセット(値が「1」)され、他の場合はクリア(値が「0」)される。
キャリーフラグ(CF)1305は、所定の演算によって桁上がり(キャリー)や桁借り(ボロー)が発生するとセット(値が「1」)され、他の場合はクリア(値が「0」)される。
ゼロフラグ(ZF)1306は、所定の演算算結果が「0」となった場合にセット(値が「1」)され、他の場合はクリア(値が「0」)される。
ジャンプステータスフラグ(JF)1307は、キャリーフラグ(CF)1305又はゼロフラグ(ZF)1306の少なくとも一方がセットされた場合にはセット(値が「1」)される。若しくは、演算処理を行わない場合であっても、汎用レジスタの値が「00h」の値になった場合は、セット(値が「1」)される。このような条件をいずれも満たさない場合は、クリア(値が「0」)される。
なお、CPUコア102がリセットされた場合には、フラグレジスタの全ビットが0に設定される。
図122は、第8実施形態において、遊技機10の電源投入時に各装置(遊技制御装置100、払出制御装置200、及び演出制御装置300)が実行する電源投入時処理の手順を示すフローチャートである。
具体的には、図122(A)は、遊技制御装置100の電源投入時処理のフローチャートであり、図122(B)は、払出制御装置200の電源投入時処理のフローチャートであり、図122(C)は、演出制御装置300の電源投入時処理のフローチャートである。
最初に、遊技制御装置100の電源投入時処理(図122(A))から説明する。この電源投入時処理は、ROM111b(図3参照)に記憶された遊技制御プログラムによって実行される処理ではなく、遊技制御装置100に備わる各種ハードウェア(CPUコア102周辺のハードウェア)によって実行される処理である。
まず、遊技制御装置100は、電源装置400から出力されたリセット信号が伝達される(A10101)。
このリセット信号は、電源装置400から、シュミットバッファ125を介して、遊技用マイコン111に設けられているセキュリティ回路725(図121A参照)、遊技用マイコン111に設けられているRAMアクセス規制回路(図示せず)におけるフリップフロップ回路のリセット端子、及び遊技用マイコン111に設けられているシリアル通信回路(図示せず)のリセット端子に入力される。なお、遊技用マイコン111は、シリアル通信回路によって、演出制御装置300及び払出制御装置200へ、シリアル通信でデータを送信する。具体的には、これらのリセット端子には、電源が投入されると、所定時間、所定の電圧(例えば、5V)以下の電圧が印加されることによってリセット信号が入力され、所定時間経過後に所定の電圧が印加されることによって、リセット信号が入力されなくなる。
なお、セキュリティ回路725は、電源装置400からリセット信号が入力されると、後述のセキュリティチェック処理が終了するまでCPUコア102のリセット端子にリセット信号を出力し続けて、CPUコア102の起動を待機させる。
また、リセット信号は、電源装置400から、シュミットバッファ125を介して、各種入力ポート(第1入力ポート122等)、及び、各種出力ポート(第2出力ポート134、第3出力ポート135−1、135−2、第4出力ポート136、第5出力ポート137)のリセット端子に入力される。
そして、シリアル通信回路のリセット端子にリセット信号が入力されると、シリアル通信回路の入力端子及び出力端子の電圧レベルがローに制御され、シリアル通信回路がハードウェアにより初期化されることになる(A10102)。また、各種出力ポートのリセット端子にリセット信号が入力されるとすべて0に設定され、各種出力ポートは、ハードウェアにより初期化されることになる(A10102)。
次に、遊技用マイコン111に設けられているRAMアクセス規制回路によって、RAM111cへの書き込み規制がされるRAM書込禁止状態が発生する(A10103)。電源投入時にRAM書込禁止状態を発生させることによって、誤ったタイミングでRAM111cが更新されることを防ぐことが可能となる。
次に、リセット信号が入力されたセキュリティ回路725(図121A)が自己診断処理を実行する(A10104)。自己診断処理は、セキュリティ回路725が初期化されているか否かを判定する処理である。
そして、自己診断処理によって、セキュリティ回路725が初期化されていると判定された場合には、セキュリティ回路725は、セキュリティチェック処理を実行する(A10105)。セキュリティチェック処理は、遊技用マイコン111のHWパラメータROM(図示せず)に記憶された正当性確認情報を用いて、ROM111b(図3参照)に記憶されたプログラムの正当性の判定を行う処理である。
ステップA10105の処理で、セキュリティチェック処理を実行すると、遊技制御装置プログラム開始準備処理へ移行する。このとき、セキュリティ回路725は、CPUコア102のリセット端子に出力していたリセット信号を停止することで、CPUコア102が起動する。このため、遊技制御装置プログラム開始準備処理は、CPUコア102によって実行される。遊技制御装置プログラム開始準備処理は図123にて後述する。
次に、払出制御装置200の電源投入時処理(図122(B))を説明する。払出制御装置200は、遊技用マイコン111と同じ構成のマイコンの他、各種入力ポート、各種出力ポートなどを備えるものとする。
まず、払出制御装置200は、電源装置400から出力されたリセット信号がシュミットバッファ132を介して伝達される(A10111)。なお、ステップA10111の処理は、ステップA10101の処理と同じである。
そして、払出制御装置200のシリアル通信回路のリセット端子にリセット信号が入力されると、シリアル通信回路の入力端子及び出力端子の電圧レベルがローに制御され、シリアル通信回路がハードウェアにより初期化されることになる(A10112)。また、払出制御装置200の各種出力ポートのリセット端子にリセット信号が入力されるとすべて0に設定され、各種出力ポートは、ハードウェアにより初期化されることになる(A10112)。
次に、払出制御装置200のRAMアクセス規制回路640によって、RAM214への書き込み規制されるRAM書込禁止状態が発生する(A10113)。なお、ステップA10113の処理の具体的な説明は、ステップA10103の処理と同じである。
次に、リセット信号が入力された払出制御装置200のセキュリティ回路725が自己診断処理を実行する(A10114)。なお、ステップA10114の処理の具体的な説明は、ステップA10104の処理と同じである。
そして、自己診断処理によって、セキュリティ回路725が初期化されていると判定された場合には、セキュリティ回路725は、セキュリティチェック処理を実行する(A10115)。なお、ステップA10115の処理の具体的な説明は、ステップA10105の処理と同じである。
そして、払出制御装置200は、電源投入時の初期化処理を実行する(A10116)。電源投入時の初期化処理は、RAM等を初期化する処理であって、払出制御装置200のマイコンのCPUによって実行される。また、RAMを初期化する前に、ステップA10113の処理で発生したRAM書込禁止状態が解除されて、RAMはRAM書込可能状態となる。
次に、払出制御装置200は、遊技制御装置100からの指令を受信可能な状態を発生させる(A10117)。そして、払出制御装置200のCPUは、遊技制御装置100から送信された指令が初期化指令であるか否かを判定する(A10118)。ステップA10118の処理で、遊技制御装置100から送信された指令が初期化指令でないと判定された場合には(A10118の結果が「N」)、初期化指令が取り込まれるまで待機する。
一方、遊技制御装置100から送信された指令が初期化指令であると判定された場合には(A10118の結果が「Y」)、払出制御装置200は通信開始時の初期化処理を実行し(A10119)、払出制御装置メイン処理へ移行する。
次に、演出制御装置300(図4)の電源投入時処理(図122(C))を説明する。
まず、演出制御装置300(図4)は、電源装置400から出力されたリセット信号が伝達される(A10121)。なお、ステップA10121の処理は、ステップA10101の処理と同じである。
そして、演出制御装置300にリセット信号が入力されると、演出制御装置300の出力ポートとシリアル通信回路(インタフェースチップ(コマンドI/F)331)がハードウェアにより初期化される(A10122)。
そして、演出制御装置300は、電源投入時の初期化処理を実行する(A10123)。電源投入時の初期化処理は、RAM322等を初期化する処理であって、CPU311によって実行される。
次に、演出制御装置300は、遊技制御装置100からの指令を受信可能な状態を発生させる(A10124)。そして、遊技制御装置100から送信された指令が初期化指令であるか否かを判定する(A10125)。
演出制御装置300は、遊技制御装置100から送信された指令が初期化指令でないと判定された場合には(A10125の結果が「N」)、初期化指令が取り込まれるまで待機する。
一方、演出制御装置300は、遊技制御装置100から送信された指令が初期化指令であると判定された場合(A10125の結果が「Y」」、演出制御装置300は通信開始時の初期化処理を実行し(A10126)、演出制御装置メイン処理へ移行する。
図123は、第8実施形態の遊技制御装置プログラム開始準備処理を説明するフローチャートである。なお、遊技制御装置プログラム開始準備処理の前半(プログラムカウンタ1234にリセットアドレスを設定するまでの間)は、ROM111b(図3参照)に記憶された遊技制御プログラムによって実行される処理ではなく、CPUコア102に備わる初期値設定回路1241(図121A参照)によって実行される処理である。
CPUコア102は、セキュリティ回路725からのリセット信号を受け入れると、内蔵リセット回路1240により、初期値設定回路1241を動作させる。このとき、内蔵リセット回路1240は、初期値設定回路1241が各レジスタに初期値を設定するまで、命令解釈実行回路1242の動作を待機させる。
初期値設定回路1241が動作を開始すると、スタックポインタ1233に初期値「29FFh」を設定し、IYレジスタ1232a、1232bに初期値「2800h」(RAM111cの先頭アドレス)を設定し、DPレジスタ1230に初期値「5000h」(ROM111bのデータエリア(ユーザプログラム用)の先頭アドレス)を設定し、HLレジスタ1212Aにリセットアドレスである「4000h」を設定し、他のレジスタには「00h」の値(16ビットレジスタには「0000h」の値)を設定する(A10201)。なお、リセットアドレスは「0000h」としてもよい。
次いで、初期値設定回路1241は、プログラムカウンタ1234に、リセットアドレスである「4000h」の値を設定する(A10202)。これにより、各レジスタに初期値が設定される。次いで、内蔵リセット回路1240は、待機させていた命令解釈実行回路1242を動作させると、命令解釈実行回路1242は、プログラムカウンタ1234が示すアドレス(遊技制御プログラムが記憶されたROM111bのリセットアドレスに相当)からプログラムの実行を開始する。命令解釈実行回路1242がプログラムを実行開始した後の処理は、図124Aの遊技制御装置メイン処理にて説明する。
図124A及び図124Bは、第8実施形態に係るメイン処理の手順を示すフローチャートである。メイン処理は、遊技制御装置100によって実行される。なお、第1実施形態に係るメイン処理(図5A及び図5B)と同じ処理には同じステップ番号を付して説明を省略する。
図124A及び図124Bでは、図5A及び図5BのステップA1004、A1013、A1015、A1034、A1038、A1039、A1045は削除され、ステップA10301−A10304、A10401−A10405が新たに設けられている。
遊技制御装置100は、ステップA10301において、所定のレジスタ(IYレジスタ1232a)にRAM111cの先頭アドレス(ここでは「2800h」)を設定する。遊技制御装置100は、ステップA10302において、所定のレジスタ(DPレジスタ1230)にROM111bのデータエリア(ユーザプログラム用)の先頭アドレス(ここでは「5000h」)を設定する。
このように、RAM111cの先頭アドレスやROM111bのデータエリアの先頭アドレスを基準アドレスとして所定のレジスタに設定しておくことによって、以後のコード(命令)におけるアドレス指定を基準アドレスからの相対アドレスやオフセットアドレス(基準アドレスに対する差分)で行えば済む場合がある。そして、この場合に、相対アドレスやオフセットアドレスを1バイト(2バイトアドレス「xxxxh」の下位アドレスに相当する)で表せる範囲に制限すれば、コード(機械語命令)のバイト数が減少し(例えば3バイトの命令から2バイトの命令へ減少)、プログラム全体がコンパクトになりROM111bに記憶するために必要な記憶容量も減少する。
なお、ステップA1001からA10302までの処理は、遊技制御装置プログラム開始準備処理(図123)においてもハードウェア(初期値設定回路1241)によって実行されているため省略可能であるが、重複してソフトウェア(プログラム)でも設定処理を実行することにより、ノイズ環境でも正常にCPU111aを動作させることが可能となる。
遊技制御装置100は、ステップA10303において、RAMやEEPROM等の読出し書込み可能なRWM(リードライトメモリ)の書込許可状態に設定する。なお、第8実施形態において、RWMは常に読込許可状態であってよい。
遊技制御装置100は、ステップA10304において、遊技用マイコン111のシリアル通信回路(演出制御装置300や払出制御装置200との通信に使用するもの)を設定する。
遊技制御装置100は、ステップA10401において割込みを禁止した後、初期値乱数更新処理(A1035)と乱数更新処理2(A10402)を実行する。第8実施形態の乱数更新処理2(図126)は、変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する処理であるが、第1実施形態の乱数更新処理2と異なっており後述する。
続いて、遊技制御装置100は、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックする回数(例えば2回)を設定し(A1036)、停電監視信号がオンである場合には(A1037の結果が「Y」)、遊技制御装置100は、ステップA1036の処理で設定したチェック回数分停電監視信号のオン状態が継続しているか否かを判定する(A10404)。そして、チェック回数分停電監視信号のオン状態が継続していない場合には(A10404の結果が「N」)、ステップA1037に戻り、停電監視信号がオンであるか否かを判定する。また、遊技制御装置100は、チェック回数分停電監視信号のオン状態が継続している場合(A10404の結果が「Y」)、すなわち、停電が発生していると判定した場合には、全出力ポートにオフデータを出力する(A1040)。
一方、遊技制御装置100は、停電監視信号がオンでない場合には(A1037の結果が「N」)、割込みを許可した後(A10403)、ステップA10401の処理に戻り、割込みを禁止する。すなわち、停電が発生していない場合には、ステップA10401からA10403までの割込み禁止期間中に初期値乱数更新処理と乱数更新処理2と停電監視信号のチェック(ループ処理)を繰り返し行う。
割込みの禁止されている割込み禁止期間中には、タイマ割込み処理(図125参照)等の割込み処理によるレジスタ内の情報(レジスタに格納されたデータ)の変更や破壊がなく、初期値乱数更新処理と乱数更新処理2と停電監視信号のチェックを正常に行える。一方、ステップA10403からA10401への移行期間が割込みの許可されている割込み許可期間となるが、この割込み許可期間では割込み処理以外の処理は実行されていないため、割込み処理によるレジスタ内の情報の変更等があっても問題が生じない。
なお、第1実施形態(図5B)のように、割込み許可期間中(ステップA1034からA1039)に、初期値乱数更新処理と停電監視信号のチェックを実行する場合には、割込み処理によってレジスタ内の情報が変更や破壊を受けることを回避すべく、メイン処理で使用するレジスタバンク0を割込み処理で使用するレジスタバンク1へ切り換えたり(A1003、A1301)、他の方法では、割込み処理の開始時にメイン処理で使用したレジスタの情報をRAM111cのスタック領域に退避(PUSH)させたりしている。しかし、第8実施形態では、割込み処理時に、レジスタバンクの切り替えやレジスタの情報の退避は必要ない。即ち、第8実施形態では、基本的にレジスタバンク0だけを使用して問題ない。
図125は、第8実施形態に係るタイマ割込み処理の手順を示すフローチャートである。タイマ割込み処理は、遊技制御装置100によって実行される。なお、第1実施形態に係るタイマ割込み処理(図8)と同じ処理には同じステップ番号を付して説明を省略する。
図125では、図8のA1301とA1302は削除され、ステップA10501とA10502が新たに設けられている。
遊技制御装置100は、ステップA10501において、ステップA10301と同様に、所定のレジスタ(IYレジスタ)にRAM111cの先頭アドレス「2800h」を設定する。遊技制御装置100は、ステップA10502において、ステップA10302と同様に、所定のレジスタ(DPレジスタ)にROM111bのデータエリア(ユーザプログラム用)の先頭アドレス「5000h」を設定する。このように、アドレス空間(又は、メモリ空間)におけるRAM111cの先頭アドレスやROM111bのデータエリアの先頭アドレスを基準アドレスとして所定のレジスタに設定しておくことによって、以後のコード(命令)におけるアドレス指定を基準アドレスからの相対アドレス又はオフセットアドレス(基準アドレスに対する差分)で行える場合もあり、コード(機械語命令)のバイト数(記憶容量)が減少する。
図126は、第8実施形態に係る乱数更新処理2の手順を示すフローチャートである。乱数更新処理2は、遊技制御装置100によって実行される。乱数更新処理2は、変動パターン乱数1、変動パターン乱数2、変動パターン乱数3を更新する処理である。第8実施形態に係る乱数更新処理2は、命令解釈実行回路1242が解釈実行可能な命令セットに含まれる従来にない命令(コード)(後述の図141参照)によって実行されるもので、第1実施形態(図14)の乱数更新処理2より簡略化されている。
遊技制御装置100は、まず、変動パターン乱数1をインクリメント(1だけ増加)して更新する(A10601)。ここで、変動パターン乱数1は、2バイトのデータサイズであり、0〜65535の範囲を循環する。
次に、遊技制御装置100は、変動パターン乱数2をインクリメント(1だけ増加)して更新し(A10602)、続いて、変動パターン乱数3をデクリメント(1だけ減少)して更新する(A10603)。変動パターン乱数2は1バイトであり、0から240の範囲を循環し、240に達した後に0に戻る。変動パターン乱数3は1バイトであり、238から0の範囲を循環し、0に達した後に238に戻る。
第7実施形態の変動パターン乱数1〜変動パターン乱数3は、いずれも上限値が設けられないため、値が循環する乱数となる。
なお、本明細書では、変動パターン乱数1〜3は、各種情報を記憶する情報記憶部であるRAM111cの記憶領域(乱数生成領域)に格納されるが、乱数生成回路内のメモリなどの他の情報記憶部に格納されてもよい。
図127は、第8実施形態に係るハード乱数取得処理の手順を示すフローチャートである。ハード乱数取得処理は、遊技制御装置100によって実行される。なお、第1実施形態に係るハード乱数取得処理(図23)と同じ処理には同じステップ番号を付して説明を省略する。
図127では、図23のステップA2805に代えて、ステップA10701が新たに設けられている。ステップA10701では、対象のハード乱数ラッチレジスタのアドレスを準備する。ハード乱数ラッチレジスタは、遊技用マイコン111内に設けられ、乱数生成回路で生成されるハード乱数(ここでは大当り乱数)を保持する。ハード乱数ラッチレジスタのアドレスは、後述の特図始動口スイッチ共通処理(図128)で、大当り乱数を抽出するために使用する。
図128は、第8実施形態に係る特図始動口スイッチ共通処理の手順を示すフローチャートである。特図始動口スイッチ共通処理は、遊技制御装置100によって実行される。なお、第1実施形態に係る特図始動口スイッチ共通処理(図24)と同じ処理には同じステップ番号を付して説明を省略する。
図128では、図24のステップA2901−A2904の代わりにステップA10801が設けられ、図24のA2909の代わりにステップA10802が設けられ、図24のA2910とA2911の代わりにステップA10803が設けられ、図24のA2913とA2914の代わりにステップA10804が設けられる。
遊技制御装置100は、ステップA10801において、始動口信号出力回数を所定値(ここでは255)を上限に+1更新(1だけ増加)する。後述のように、ステップA10801の処理は、命令解釈実行回路1242で解釈実行される命令セットに設けられる1つの命令(従来なかった命令)のみを使用して実行される。本実施形態では、始動口信号出力回数領域に+1更新によって「0」から「255」までの値を記憶することができる。そして、始動口信号出力回数が「255」である場合には、更新後の値は「0」になる。
遊技制御装置100は、ステップA10802において、ハード乱数取得処理(図127)で準備したハード乱数ラッチレジスタのアドレス(A10701)の領域から、大当り乱数を抽出し、RAM111cの大当り乱数格納領域にセーブする。
遊技制御装置100は、ステップA10803において、大当り図柄乱数を抽出し、大当り図柄乱数格納領域にセーブする。
遊技制御装置100は、ステップA10804において、小当り図柄乱数を抽出し、小当り図柄乱数格納領域にセーブする。
図129は、第8実施形態に係る特図保留情報判定処理の手順を示すフローチャートである。特図保留情報判定処理は、遊技制御装置100によって実行される。なお、第1実施形態に係る特図保留情報判定処理(図25)と同じ処理には同じステップ番号を付して説明を省略する。
図129では、図25に対してステップA10901が追加され、図25のA3007の代わりにステップA10902とA10903が設けられ、図25のA3012の代わりにステップA10904とA10905が設けられる。
遊技制御装置100は、ステップA10901において、大当り判定処理(A3004)に使用するため、対象の領域から大当り乱数をロードする。ここで、対象の領域とは、特図1の保留(第1始動記憶)又は特図2の保留(第2始動記憶)に関する乱数格納領域(特図1保留記憶領域又は特図2保留記憶領域)の最新保留の領域である。
遊技制御装置100は、ステップA10902において、対象の領域から大当り図柄乱数をロードする。ここで、対象の領域とは、特図1の保留(第1始動記憶)又は特図2の保留(第2始動記憶)に関する乱数格納領域の最新保留の領域である。そして、大当り図柄乱数に対応する停止図柄情報を取得する(A10903)。
遊技制御装置100は、ステップA10904において、対象の領域から小当り図柄乱数をロードする。ここで、対象の領域とは、特図2変動表示ゲームの結果に小当りがないため、特図1の保留(第1始動記憶)に関する乱数格納領域(特図1保留記憶領域)の最新保留の領域となる。そして、小当り図柄乱数に対応する停止図柄情報を取得する(A10905)。
図130から図133は、第8実施形態に係る遊技制御装置100のCPU111a(CPUコア102)が実行する遊技制御プログラムの一部のプログラム構造を示すプログラムリストである。各プログラムリストは、8ビットマイクロプロセッサであるZ80に対応したアセンブリ言語(ソースコード)による命令のリストであり、擬似命令(アセンブラに対する命令)等を除いて、ROM111b(遊技制御プログラム記憶手段)に記憶される機械語命令(マシンコード)に1対1に対応する。いずれの命令も機械語命令として命令解釈実行回路1242が解釈実行可能な命令セットに含まれる。
各プログラムリストにおける命令(コード)の記載は、左側より、便宜のために付した「行番号」、命令の操作内容(演算内容)を示す「ニーモニック」、命令対象の「オペランド」、説明の便宜のために付した「コメント」に分けられる。プログラムリストの命令は、サブルーチンを呼び出す命令やジャンプ命令(分岐命令)等がない限り、基本的に行番号の順に(小さなものから大きなものへ)プログラムリストの上から下へ実行される。
図130は、第8実施形態に係るメイン処理(図124A)の一部のプログラム構造を示すプログラムリストである。
行番号0510は、メイン処理(図124A)のA1001に対応する命令(コード)であり、割込みを禁止する(コード「DI」)。
行番号0520は、メイン処理のA1002に対応し、SPレジスタにスタックポインタとして値「29FFh」をロードする(コード「LD SP,29FFH」)。
行番号0530は、メイン処理のA1003に対応し、レジスタバンクセレクタ(RBS)に0をロードする(コード「LD RBS,0」)。これにより、レジスタバンク0を設定する。
行番号0540は、メイン処理のA10301に対応し、IYレジスタにRAM111cの先頭アドレスとして「2800h」をロードする(コード「LD IY,2800H」)。
行番号0550は、メイン処理のA10302に対応し、DPレジスタにROM111bのデータエリア(ユーザプログラム用)の先頭アドレスとして「5000h」をロードする(コード「LD DP,5000h」)。
行番号0560と行番号0570は、メイン処理のA1005に対応する。行番号0560では、ラベルC_SHOT_NGに対応する数値(発射停止を意味する数値)をAレジスタにロードする(コード「LD A,C_SHOT_NG」)。
行番号0570では、ポートC_OUT01(即ち、ラベルC_OUT01に対応する数値の番号のポート)にAレジスタの数値を出力する(コード「OUT (C_OUT01),A」)。
行番号0580は、メイン処理のA1006に対応し、ポートC_INPUT1(即ち、ラベルC_INPUT1に対応する数値の番号のポート)から数値をAレジスタに入力する(コード「IN A,(C_INPUT1)」)。
行番号0610と行番号0620は、メイン処理(図124B)のA1031に対応する。行番号0610では、CTC回路を起動又は使用するために必要なデータテーブル(CTCTBL)のアドレス(ラベルD_CTCTBLに対応する数値)を、相対アドレス(D_CTCTBL−5000H)にして、HLレジスタにロードする(コード「LQDD HL,D_CTCTBL−5000H」)。相対アドレスは、ユーザプログラム用のデータエリアの先頭アドレス「5000h」を基準とするアドレスである。
「LQDD」命令は、オペランドにアドレス空間の先頭からの絶対アドレス(2バイト)ではなく、相対アドレス(実質的に1バイト)を用いるため、機械語命令のバイト数が通常のLD命令よりも1バイト分だけ減少する(3バイトから2バイトへ減少)。なお、相対アドレスは本来2バイトになるが、相対アドレスの上位バイトの値に対応してニーモニック(機械語命令部)を異ならせているので、実質的に相対アドレスは下位バイト(1バイト)で示せる。
行番号0620では、デバイス(ここではCTC回路)を設定するサブルーチン(ラベルP_DEVSET)を呼び出す(コード「CALLR P_DEVSET」)。なお、「CALLR」命令は、従来のCALL命令から必要なバイト数を少なくすることが可能な命令である。なお、「CALLR」命令は、所定のアドレス値(例えば4C00h)よりも前の処理を呼び出す場合は2バイトの機械語命令に変換され、前記所定のアドレス値以降の処理を呼び出す場合は3バイトの機械語命令に変換される。
なお、CPUコア102に(命令解釈実行回路1242)に、「LQDD」命令や「CALLR」の命令を実行する専用論理回路を設けてよい。
行番号0630と行番号0640は、メイン処理(図124B)のA1032に対応する。行番号0630では、乱数生成回路を起動又は使用するために必要なデータテーブル(RNDSET)のアドレス(ラベルD_RNDSETに対応する数値)を、相対アドレス(D_RNDSET−5000H)にして、HLレジスタにロードする(コード「LQDD HL,D_RNDSET−5000H」)。相対アドレスは、ユーザプログラム用のデータエリアの先頭アドレス「5000h」を基準とするアドレスである。
行番号0640では、デバイス(ここでは乱数生成回路)を設定するサブルーチン(ラベルP_DEVSET)を呼び出す(コード「CALLR P_DEVSET」)。
行番号0650から行番号0730は、メイン処理のA1033に対応し、RAM111cの所定領域においてアドレスを更新しながら各種初期値乱数(ここでは電源投入時の初期値)を順に格納する。
行番号0650では、ラベルR_RNDZINIに対応する数値をHLレジスタにロードする。ラベルR_RNDZINIは、RAM111cにおいて各種初期値乱数を格納する所定領域の先頭アドレスの数値を示す。
行番号0660では、乱数生成回路内の所定のレジスタ「C_SRND0_L」の値(ここでは下位バイト)をAレジスタに入力する(コード「IN A,(C_SRND0_L)」)。所定のレジスタは、ソフト乱数レジスタ0である。
行番号0670では、大当り図柄初期値乱数としてAレジスタの値をRAM内の所定領域の先頭アドレスにロード(格納)した後、HLレジスタ内のアドレスを先頭アドレスから次のアドレスに更新する(コード「LQD (HL+),A」)。「HL+」は、ロード後にHLレジスタ内のアドレスを次のアドレスに更新することを意味する。大当り図柄初期値乱数は1バイトであり、ロード(格納)するAレジスタも1バイトであるため、HLレジスタ内のアドレス値は+1される。
この「LQD」命令では、HLレジスタ(他のレジスタでも良い)に設定されたアドレス(数値)に対応する領域(RAM内)に値が格納された後に、HLレジスタの値を更新する(ここでは+1更新)。これにより、連続した領域(RAM内)に連続的に値を格納でき、従来のように格納先のアドレスを算出することが不要になる。なお、CPUコア102に(命令解釈実行回路1242)に、この「LQD」命令を実行する専用論理回路を設けてよい。
行番号0680では、乱数生成回路内の所定のレジスタ(C_SRND1_L)の値をAレジスタに入力する(コード「IN A,(C_SRND1_L)」)。
行番号0690では、小当り図柄初期値乱数としてAレジスタの値を、現時点でHLレジスタに格納(記憶)されているアドレスの領域にロード(格納)した後、HLレジスタ内のアドレスを次のアドレスに更新する(「LQD (HL+),A」)。小当り図柄初期値乱数は、1バイトであるため、HLレジスタ内のアドレス値は+1される。
行番号0700では、乱数生成回路内の所定のレジスタ(C_SRND2_L)の値をAレジスタに入力する(コード「IN A,(C_SRND2_L)」)。
行番号0710では、当り初期値乱数としてAレジスタの値を、現時点でHLレジスタに格納(記憶)されているアドレスの領域にロード(格納)した後、HLレジスタ内のアドレスを次のアドレスに更新する(コード「LQD (HL+),A」)。当り初期値乱数は、1バイトであるため、HLレジスタ内のアドレス値は+1される。
行番号0720では、乱数生成回路内の所定のレジスタ(C_SRND3_L)の値をAレジスタに入力する(コード「IN A,(C_SRND3_L)」)。
行番号0730では、当り図柄初期値乱数としてAレジスタの値を、現時点でHLレジスタに格納されているアドレスの領域にロード(格納)する。ここでは、次に格納する初期値乱数がないため、HLレジスタに記憶されるアドレスを更新しない(コード「LD (HL),A」)。
行番号0750は、メイン処理のA10401に対応する命令であり、割込みを禁止する(コード「DI」)。
行番号0760は、メイン処理のA1035に対応する命令であり、初期値乱数更新処理を実行するためのサブルーチン(ラベルP_RNDINI)を呼び出す(コード「CALLR P_RNDINI」)。
行番号0770は、メイン処理のA10402に対応する命令であり、乱数更新処理2を実行するためのサブルーチン(ラベルP_RNDINC2)を呼び出す(コード「CALLR P_RNDINC2」)。
行番号0780では、Wレジスタの値同士について排他的論理和をとることによって、Wレジスタの値をクリアして0に設定しておく(コード「XOR W,W」)。
行番号0800から行番号0820は、メイン処理のA1037に対応し、停電監視信号がオンであるか否かを判定する。行番号0800では、停電監視信号が入ってくるポートC_INPUT1から数値をAレジスタに入力する(コード「IN A,(C_INPUT1)」)。
行番号0810では、Aレジスタの値と停電監視信号がオフであることを示す値C_PDWNSW(例えば、負論理で00000001B)の論理積をとる(コード「AND A,C_PDWNSW」)。行番号0810の論理積の演算結果は、停電監視信号がオン(例えば、負論理で00000000B)の停電発生状態であれば、ゼロになる。
行番号0820では、行番号0810の演算結果がゼロ(Z)の場合(即ち停電発生状態の場合)に、ラベルMAIN90に対応するROM内アドレス(ROM111bのアドレス、分岐先)へジャンプ(条件分岐)して、行番号0860以降の命令を実行する(コード「JR Z,MAIN90」)。行番号0810の演算結果がゼロ(Z)でない場合(即ち停電が発生していない場合)に、行番号0830の命令に移行する。なお、演算結果がゼロの場合、ゼロフラグ(ZF)がセットされている。
行番号0830は、メイン処理のA10403に対応する命令であり、割込みを許可する(コード「EI」)。
行番号0840は、メイン処理のA10403からA10401への移行に対応し、ラベルMAIN70に対応するROM内アドレス(ROM111b内のアドレス)へジャンプして、行番号0750以降の命令を実行する(コード「JR MAIN70」)。
行番号0860から行番号0880は、メイン処理のA10404に対応し、チェック回数分停電監視信号のオン状態が継続しているか否かを判定する。
行番号0860では、停電監視信号がオン状態(停電発生状態)の場合に、オン状態の検出回数を示すWレジスタの値を+1更新(1だけ増加)させる(コード「INC W」)。
行番号0870では、Wレジスタの値とチェック回数である「2」を比較する(コード「CP W,2」)。Wレジスタの値がチェック回数より小さい場合に、比較の演算結果としてキャリーフラグ(CF)がセットされる(C)。行番号0880では、キャリーフラグ(CF)がセットされている場合(オン状態の検出回数がチェック回数に達していない場合)に、ラベルMAIN80に対応するROM内アドレスへジャンプして、行番号0800以降の命令を実行する(コード「JR C,MAIN80」)。キャリーフラグ(CF)がセットされていない場合(オン状態の検出回数がチェック回数に達した場合)に、行番号0890に移行する。
行番号0890は、メイン処理のA1040に対応し、全出力ポートにオフデータを出力するサブルーチンP_OUTCLRを呼び出す(コード「CALLR P_OUTCLR」)。
図131は、第8実施形態に係るタイマ割込み処理(図125)のプログラム構造を示すプログラムリストである。
行番号1000は、タイマ割込み処理を示すラベルP_TINTである。行番号1010は、タイマ割込み処理のA10501に対応し、IYレジスタにRAM111cの先頭アドレスとして「2800h」をロードする(コード「LD IY,2800H」)。
行番号1020は、タイマ割込み処理のA10502に対応し、DPレジスタにROMのデータエリア(ユーザプログラム用)の先頭アドレスとして「5000h」をロードする(コード「LD DP,5000H」)。行番号1010と行番号1020の命令は、メイン処理(図130の行番号0540と行番号0550)で既に実行されているため、省略可能である。
行番号1030から行番号1140では、各々、タイマ割込み処理(図125)におけるステップA1303からA1314に対応するサブルーチンを「CALLR」命令によって呼び出す。行番号1150は、タイマ割込み処理からメイン処理に復帰する「RETI」命令である。
図132は、第8実施形態に係る始動口スイッチ監視処理(図22)の一部のプログラム構造を示すプログラムリストである。
行番号1500は、始動口スイッチ監視処理に対応するラベル(P_SIDOSW)であり、始動口スイッチ監視処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。始動口スイッチ監視処理は、特図ゲーム処理(図21)において「CALLR」命令によって呼び出されるサブルーチンである。
行番号1510は、始動口スイッチ監視処理のA2701に対応し、始動口1入賞監視テーブルのアドレス(ラベルD_SIDCHK1に対応する数値)を、相対アドレス(D_SIDCHK1−5000H)にして、HLレジスタにロードする(コード「LQDD
HL,D_SIDCHK1−5000H」)。これにより、始動口1入賞監視テーブルが準備される。
行番号1520は、始動口スイッチ監視処理のA2702に対応し、ハード乱数取得処理(図23)のサブルーチン(ラベルP_HRNDGET)を「CALLR」命令によって呼び出す(コード「CALLR P_HRNDGET」)。
行番号1530は、始動口スイッチ監視処理のA2703に対応し、対象の始動入賞口36(始動口1)に始動口入賞がなくキャリーフラグ(CF)がセットされていない場合(NCの場合)に、ラベルSIDOSW20に対応するROM内アドレスへジャンプ(条件分岐)する(コード「JR NC,SIDOSW20」)。なお、キャリーフラグ(CF)は、ハード乱数取得処理(図23)のステップA2806で始動口入賞があればセットされている。
行番号1540と行番号1550は、始動口スイッチ監視処理のA2704に対応する。行番号1540では、アドレス「IY+R_TGAMEFLG」に格納された値と、特図時短中(普電サポート状態中)であることを示すラベルC_JTNの値を比較して、一致するか(T:真)、一致しないか(F:偽)を判定する(コード「CHK (IY+R_TGAMEFLG),C_JTN」)。一致する場合(T)には、例えば所定のフラグをセットする。
なお、アドレス「IY+R_TGAMEFLG」は、IYレジスタの値「2800h」にラベルR_TGAMEFLGに対応するオフセットアドレスを加算した加算アドレスである。オフセットアドレスは、IYレジスタの値「2800h」を基準とする相対アドレス(差分アドレス)である。ここで、オフセットアドレスは、1バイト(2バイトアドレス「xxxxh」の下位アドレスに相当する)で表せる範囲に制限され、行番号1540のコード「CHK (IY+R_TGAMEFLG),C_JTN」は3バイトの命令とすることができる。これにより、プログラム容量(コード量)が削減できる。なお、オフセットアドレスを用いない場合には、アドレスは2バイトとなり行番号1540の命令は、4バイトの命令となる。
行番号1550では、特図時短中である場合、即ち、行番号1540の比較結果が一致(T)の場合に、ラベルSIDOSW10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号1590以降の命令を実行する(コード「JRS T,SIDOSW10」)。
行番号1560は、始動口スイッチ監視処理のA2705に対応し、右打ち指示報知コマンド(ラベルC_RIGHTCOMに対応する数値)をBCレジスタにロードする(コード「LD BC,C_RIGHTCOM」)。
行番号1570は、始動口スイッチ監視処理のA2706に対応し、演出コマンド設定処理のサブルーチン(P_COMSET)を呼び出して実行する(コード「CALLR P_COMSET」)。
行番号1590は、始動口スイッチ監視処理のA2707に対応し、始動入賞口36(始動口1)による保留の情報を設定するテーブルのアドレス(ラベルD_T1HOINF)を、相対アドレス(D_T1HOINF−5000H)にして、HLレジスタにロードする(コード「LQDD HL,D_T1HOINF−5000H」)。
行番号1600は、始動口スイッチ監視処理のA2708に対応し、特図始動口スイッチ共通処理のサブルーチン(ラベルP_TSIDOSW)を呼び出して実行する(コード「CALLR P_TSIDOSW」)。
図133Aは、第8実施形態に係るハード乱数取得処理(図127)の一部のプログラム構造を示すプログラムリストである。
行番号2000は、ハード乱数取得処理に対応するラベル(P_HRNDGET)であり、ハード乱数取得処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。ハード乱数取得処理は、始動口スイッチ監視処理(図22)のA2702とA2710において「CALLR」命令によって呼び出されるサブルーチンである。
行番号2010は、ハード乱数取得処理のA2801に対応し、始動口入賞がないことを示す始動口入賞なし情報として、キャリーフラグ(CF)をゼロクリアする(コード「CLR CF」)。
行番号2020から行番号2040は、ハード乱数取得処理のA2802に対応し、対象のスイッチに入力があったか否かを判定する。行番号2020では、現時点でHLレジスタに格納されているアドレスの領域(例えばROMのデータエリア内)に記憶された値をAレジスタにロードした後、HLレジスタ内のアドレスを次のアドレスに更新する(コード「LD A,(HL+)」)。現時点でHLレジスタに格納(記憶)されているアドレスは、始動口スイッチ監視処理(図132)の行番号1510で設定されている。そして、このアドレスの領域に記憶された値は、対象のスイッチのスイッチビットデータ(ゼロ以外の判定値)であり、例えば、「00000001B」である。なお、対象のスイッチは、ステップA2702のハード乱数取得処理では、始動口1スイッチ36aであり、ステップA2710のハード乱数取得処理では、始動口2スイッチ37aである。
行番号2030では、対象のスイッチに関する情報が格納されたスイッチ制御領域のうち立ち上がり情報が格納されるアドレスR_SWCTL+2から立ち上がり情報を取得して、Aレジスタのスイッチビットデータ(判定値)と論理積を取って、当該スイッチがオンしたか否かの判定を行う(コード「AQND A,(R_SWCTL+2)」)。なお、スイッチ制御領域とは、遊技機に備えられた各種スイッチの検出状態をタイマ割込毎に記憶しておく記憶領域のことであり、本実施形態ではRAM111c内に設けられる。立ち上がり情報は、対象のスイッチがオフからオンに変化したことを示す情報である。
なお、R_SWCTLはスイッチ制御領域の先頭アドレスであり、後述の論理レベルの情報が先頭アドレスから1番目のアドレスR_SWCTL+1に記憶され、立ち上がり情報が先頭アドレスから2番目のアドレスR_SWCTL+2に記憶されている。対象のスイッチがオフからオンに変化した場合に、アドレスR_SWCTL+2の8ビットのデータのうち対象のビットが0から1になる。
対象の始動口(始動口1又は始動口2)に入賞(入球)がなく対象のスイッチがオフの場合、対象のスイッチに対応する立ち上がり情報(対象のビット)はゼロであり、演算結果(論理積)はゼロになり、ゼロフラグ(ZF)がセットされる。立ち上がり情報がスイッチビットデータ(判定値)と同じである場合(例えば、「00000001B」で対象のスイッチのビットがオンした場合)に、演算結果(論理積)はゼロ以外(例えば、「00000001B」)になり、ゼロフラグ(ZF)がセットされない。
この「AQND」命令は、スイッチ制御領域に格納記憶された値をレジスタに取得する命令を実行することなく、スイッチがオンしたか否かの判定を行うことがきる。スイッチのオンオフの判定をレジスタを介することなく行うようにしたため、レジスタに不具合が発生しても確実に判定ができる。また、スイッチ制御領域に格納記憶された値をレジスタに取得する命令が不要となるため、遊技制御プログラム全体のコード量も減少する。なお、CPUコア102に(命令解釈実行回路1242)に、この「AQND」命令を実行する専用論理回路を設けてよい。
行番号2040では、演算結果(論理積)がゼロになりゼロフラグ(ZF)がセットされている場合に、サブルーチンを終了して、始動口スイッチ監視処理に復帰する(コード「RET Z」)。即ち、対象の始動口(始動口1又は始動口2)に入賞がなく対象のスイッチがオフである場合に、始動口スイッチ監視処理に復帰する。
図133Bは、スイッチの立ち上がりである「立ち上がり情報」を検出する手順を示すタイムチャートである。なお、図中のfは割込周期であり、割込周期の先頭でタイマ割込が発生する。また、dは遅延時間を示す。スイッチの立ち上がり、すなわち、スイッチがオンになったか否かの判定は、タイマ割込処理(図125)のA1303の入力処理で行われる。なお、以下に示す、第1物理レベル、第2物理レベル、論理レベル、立ち上がり情報は、タイマ割込が発生する毎に更新され、遊技機に備えられたスイッチ毎に整理されてスイッチ制御領域に記憶される。
まず、スイッチの立ち上がり時(23401)及び立ち下がり時(23402)について説明する。CPU111aは、タイマ割込発生時の入出処理(図125のA1303)において、スイッチの検出信号のレベルが、前回設定された第1物理レベルと相違すると(ローレベルからハイレベル、又は、ハイレベルからローレベルに変化)、第1物理レベルを検出信号のレベルに新たに設定する。そして、所定の遅延時間dが経過した後、スイッチの検出信号が、前回設定された第2物理レベルと相違する場合には、第2物理レベルを検出信号のレベルに設定する。なお、第1物理レベルと第2物理レベルとは、検出タイミングが異なるだけである。
このとき、第1物理レベルと、第2物理レベルとが一致していれば、検出信号が変化したものと判断し、論理レベルに当該レベルを設定する。そして、論理レベルがローレベルからハイレベルに変化した場合には、次のタイマ割込発生から遅延時間が経過するまで、立ち上がり情報をオンに設定する。すなわち、立ち上がり情報をオンに設定した後、次のタイマ割込発生でオフに設定する。
また、第1物理レベルと第2物理レベルの信号レベルが相違する場合、すなわち、23403に示すように、第1物理レベル検出時と、第2物理レベル検出時とで、スイッチの検出信号のレベルが相違する場合には、ノイズが発生したものとして、論理レベルを変更しないように構成されている。
再び、図133Aに戻ると、行番号2050は、ハード乱数取得処理のA2803に対応し、乱数ラッチレジスタステータスをポートC_HRDCNT(即ち、ラベルC_HRDCNTに対応する数値の番号のポート)からAレジスタに入力する(コード「IN A,(C_HRDCNT)」)。
行番号2060と行番号2070は、ハード乱数取得処理のA2804に対応し、対象の乱数ラッチレジスタにラッチデータあるか否かを判定する。行番号2060では、現時点でHLレジスタに格納されているアドレスの領域(例えばROMのデータエリア内)に記憶された判定値(判定データ)とAレジスタの値との論理積をとる(コード「AND A,(HL+)」)。その後、HLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。判定値はゼロ以外で例えば「00000010B」であり、行番号2060の演算結果(論理積)は、Aレジスタの値である乱数ラッチレジスタステータスが判定値に一致しない場合に、ゼロになりゼロフラグ(ZF)がセットされ、乱数ラッチレジスタステータスが判定値に一致する場合に、ゼロ以外(例えば「00000010B」)になりゼロフラグ(ZF)がセットされない。なお、対象の乱数ラッチレジスタにラッチデータがない場合に、対象の乱数ラッチレジスタに対応する乱数ラッチレジスタステータスのビットは0であり、乱数ラッチレジスタステータスが判定値に一致せず、演算結果(論理積)はゼロになる。
行番号2070では、行番号2060の演算結果がゼロ(Z)の場合(即ち対象の乱数ラッチレジスタにラッチデータがない場合)に、サブルーチンを終了して、始動口スイッチ監視処理に復帰する(コード「RET Z」)。
行番号2080は、ハード乱数取得処理のA10701に対応し、対象のハード乱数ラッチレジスタのアドレスを準備するため、現時点でHLレジスタに格納されているアドレスの領域(例えばROMのデータエリア内)に記憶された値(対象のハード乱数ラッチレジスタのアドレス)をEレジスタにロードする(コード「LD E,(HL)」)。
行番号2090では、ハード乱数取得処理のA2806に対応し、始動口入賞があることを示す始動口入賞あり情報として、キャリーフラグ(CF)をセットする(コード「SET CF」)。
行番号2100では、サブルーチンを終了して、始動口スイッチ監視処理に復帰する(コード「RET」)。
上記のように、一般的に「AQND r,(R_SWCB)」と記載されるコードは、レジスタrに格納される判定値と、アドレスR_SWCBのスイッチ制御領域の値(立ち上がり情報)の論理積を取ってスイッチの検出状態(スイッチビットのオン/オフ)を判定できる。なお、本実施形態では、R_SWCBはスイッチ制御領域の立ち上がり情報のアドレスである。スイッチの検出があると立ち上がり情報の所定のビット(スイッチビット)がオンする。
なお、CPUコア102に(命令解釈実行回路1242)に、コード「AQND r,(R_SWCB)」を実行する専用論理回路を設けてよい。
[第8実施形態の作用・効果]
第8実施形態によると、遊技機は、所定のスイッチ(ゲートスイッチ34a、始動口1スイッチ36a、始動口2スイッチ37a等の各種のスイッチやセンサ)の検出状態に基づいて変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、複数の汎用レジスタからなるレジスタ群(レジスタバンク0、1)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。更新情報記憶手段は、複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。更新情報記憶手段は、所定のアドレスに対応して設けられてスイッチの検出状態を記憶可能なスイッチ制御領域を備える。演算処理手段は、汎用レジスタに更新情報記憶手段のいずれかの記憶領域の値を格納することなく、記憶領域の値と所定の汎用レジスタに格納された判定値とに基づいて、記憶領域に格納された値の状態を判定可能な命令(例えば「AQND A,(R_SWCTL+2)」)を実行可能に構成される。演算処理手段は、この命令によって、スイッチの検出状態を判定する。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、この命令を含んでよい。
このように、第8実施形態において、スイッチ制御領域に格納記憶された値を汎用レジスタに取得する命令を実行することなく、スイッチがオンしたか否かの判定を行うことがきる。スイッチの判定を汎用レジスタを介することなく行うようにしたため、所定の汎用レジスタ以外の汎用レジスタに不具合が発生しても確実に判定ができる。また、スイッチ制御領域に格納記憶された値をレジスタに取得する命令が不要となるため、遊技制御プログラム全体のコード量も減少する。
[第9実施形態]
図134から図135を参照して、第9実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第8実施形態までの実施形態と共通の構成でよい。
図134Aは、第9実施形態に係る特図始動口スイッチ共通処理(図128)の一部のプログラム構造を示すプログラムリストである。
行番号2500は、特図始動口スイッチ共通処理に対応するラベル(P_TSIDOSW)であり、特図始動口スイッチ共通処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。特図始動口スイッチ共通処理は、始動口スイッチ監視処理(図22)のA2708とA2715において「CALLR」命令によって呼び出されるサブルーチンである。
行番号2510は、特図始動口スイッチ共通処理のA10801に対応する。行番号2510のコード「IQCP (IY+R_SIDOSIG),255」は、「IQCP」命令によって、アドレス空間内の絶対アドレスとしての加算アドレス「IY+R_SIDOSIG」の領域に記憶された値(IY+R_SIDOSIG)が255よりも小さい場合に+1更新し、255よりも小さくない場合に0を代入して値(IY+R_SIDOSIG)を初期化する。始動口信号出力回数である値(IY+R_SIDOSIG)は、255を上限として加算される。「IQCP」命令は、後述のプログラムリスト(図141)において詳述する。なお、始動口信号出力回数である値(IY+R_SIDOSIG)は、図24のA2901〜A2904のように、255以上は0に戻さず255に留めるようにしてもよい。
行番号2520から2550は、特図始動口スイッチ共通処理のA2905に対応する。行番号2520では、保留情報テーブル(現時点のHLレジスタのアドレスの領域)に記憶された値を、保留数領域のオフセットアドレスとしてWレジスタにロードする(コード「LD W,(HL+)」)。その後、現時点のHLレジスタ内のアドレスを次のアドレスに更新する。例えば、対象の始動口が始動口1であれば、現時点のHLレジスタ内のアドレス(例えばROMのデータエリア内)は、行番号1590でロードした値である。保留情報テーブル(A2707、A2714)は、始動入賞口36(始動口1)又は第2始動入賞口(普通変動入賞装置37、始動口2)への入賞による保留に関する情報を設定したテーブル(例えばROMのデータエリア内)である。
行番号2530では、加算アドレスIY+Wに記憶された値(保留数)をAレジスタにロードする(コード「LD A,(IY+W)」)。加算アドレスIY+Wは、Wレジスタに格納された値(保留数領域のオフセットアドレス)とIYレジスタに格納された値(RAM先頭アドレス「2800h」)を加算したものである。加算アドレスIY+Wは、保留数領域の絶対アドレスとなる。即ち、行番号2530では、保留数領域の現時点での保留数をAレジスタに格納するが、現時点での保留数(始動記憶の数)は、行番号2560(A2906)で今回の入賞によって+1更新する前の保留数である。
行番号2540では、Aレジスタの保留数を上限値(ここでは4)と比較して、上限値より小さい場合にキャリーフラグ(CF)をセットし、上限値以上の場合にキャリーフラグ(CF)をセットしない(コード「CP A,4」)。
行番号2550では、保留数が上限値に達してキャリーフラグ(CF)をセットしない場合に(NC)、始動口スイッチ監視処理(図22)に復帰する(コード「RET NC」)。
行番号2560は、特図始動口スイッチ共通処理のA2906に対応する。行番号2560では、対象の特図保留数(特図1保留数又は特図2保留数)として、RAM内アドレスIY+Wに対応する保留数領域の値である保留数を+1更新する(コード「IQNC (IY+W)」)。RAM内アドレスIY+Wは、IYレジスタに格納された値とWレジスタに格納された値を加算したアドレスである。
なお、「IQNC」という命令は、アドレス先の領域に記憶されている1バイトの値を、図121Aのレジスタ(少なくとも汎用レジスタ)に格納することなく(アドレス先の領域に記憶されている値をレジスタに一旦取り込むことなく)、直接+1更新(1だけ加算)する命令である。このため、「IQNC」という命令を用いることで、レジスタへのロード、レジスタでの加算処理、アドレス先の領域へのロードという3個のコードの記述が不要となり、従来のプログラムに比べてプログラムがコンパクトになる。また、「IQNC」によってアドレス先の領域に記憶された値を直接加算することは、汎用レジスタを使用しないため、割込み処理が発生しても問題が生じない。
行番号2570から2600は、特図始動口スイッチ共通処理のA2907に対応する。行番号2570では、Aレジスタに格納された保留数(+1更新する前の保留数)をCレジスタにロードする(コード「LD C,A」)。
行番号2580では、現時点のHLレジスタのアドレスの領域に記憶された値(始動口入賞フラグ)をBレジスタにロードする(コード「LD B,(HL+)」)。即ち、保留情報テーブルから始動口入賞フラグ(特図1又は特図2を示す値)を取得する。その後、HLレジスタ内の値を次のアドレスに更新する(HL+)。
行番号2590では、加算アドレスIY+R_SIDOFLGの領域(RAM内)に、Bレジスタに格納された値(始動口入賞フラグ)をロードする(コード「LQD (IY+R_SIDOFLG),B」。加算アドレスIY+R_SIDOFLGは、IYレジスタに格納された値(RAM先頭アドレス「2800h」)にラベルR_SIDOFLGに対応する値を加算したものである。
行番号2600では、BCレジスタの値をRAMのスタック領域に退避する(コード「PUSH BC」)。
行番号2610から2650は、特図始動口スイッチ共通処理のA2908に対応する。行番号2610では、現時点のHLレジスタに格納されたアドレスに記憶された値(1つの保留に対するバイト数(7又は8))をWレジスタにロードする(コード「LD W,(HL+)」)。即ち、保留情報テーブルから1つの保留に対するバイト数(7又は8)を取得する。その後、HLレジスタ内のアドレスを次のアドレスに更新する。
なお、図135AのRAM111cの特図1保留記憶領域に示すように、特図1保留記憶領域の各保留の乱数格納領域には、2バイトの大当り乱数、1バイトの大当り図柄乱数、1バイトの小当り図柄乱数、2バイトの変動パターン乱数1、1バイトの変動パターン乱数2、1バイトの変動パターン乱数3が格納され、各特図1保留(第1始動記憶)に対して割り当てられたバイト数(保留バイト数)は8バイトになる。一方、図135BのRAM111cの特図2保留記憶領域に示すように、特図2保留記憶領域の各保留の乱数格納領域には、2バイトの大当り乱数、1バイトの大当り図柄乱数、2バイトの変動パターン乱数1、1バイトの変動パターン乱数2、1バイトの変動パターン乱数3が格納され、各特図2保留(第2始動記憶)に対して割り当てられたバイト数(保留バイト数)は7バイトになる。特図2変動表示ゲームに小当りはないため、特図2保留記憶領域の各保留の乱数格納領域には、1バイトの小当り図柄乱数は格納されない。
行番号2620では、Wレジスタに格納された保留バイト数(7又は8)と、Aレジスタに格納された保留数(+1更新する前の保留数であり0から3)とを乗算し、WAレジスタに演算結果(保留数×保留バイト数)を格納する(コード「MUL W,A」)。演算結果は0から24であるため、演算結果は実質的に下位バイトのAレジスタに格納される。なお、保留数は、始動記憶の数(始動記憶数)であり、保留バイト数は、保留毎(始動記憶毎)に割り当てられたバイト数である。
行番号2630では、現時点のHLレジスタに格納されたアドレスに記憶された値(乱数格納領域のアドレス)をLレジスタにロードする(コード「LD L,(HL)」)。即ち、保留情報テーブルから乱数格納領域のアドレス(先頭アドレス)を取得する。乱数格納領域(保留記憶領域)の先頭アドレスは、特図1保留記憶領域(図135A)では2830hであり、特図2保留記憶領域(図135B)では2850hである。
行番号2640では、Aレジスタに格納された値(保留数×保留バイト数)を、Lレジスタに格納された乱数格納領域の先頭アドレスに加算する(コード「ADD L,A」)。加算の結果、Lレジスタの値は、保留数(+1更新する前の保留数)に対応する領域のアドレス、即ち、今回の入賞により発生した保留の乱数格納領域の先頭アドレスになる。例えば、今回の入賞により発生した保留が保留3なら、特図1保留記憶領域(図135A)に関して、保留数に対応する領域のアドレスは、オフセットアドレス(下位バイト)で30h+2×8=40hとなり、特図2保留記憶領域(図135B)では、オフセットアドレス(下位バイト)で50h+2×7=5Ehとなる。
行番号2650では、保留数に対応する領域のアドレスの上位アドレスとして、Hレジスタに数値「28h」をロードする(コード「LD H,28H」)。
行番号2660から2670は、特図始動口スイッチ共通処理のA10802に対応する。行番号2660では、Eレジスタに格納されているアドレス(対象のハード乱数ラッチレジスタのアドレス)から2バイトの領域に記憶されている値(2バイトの大当り乱数)を入力する(コード「INW WA,(E)」)。
行番号2670では、現時点でHLレジスタに格納されているアドレスの領域(RAM内)、即ち、今回の入賞により発生した保留の乱数格納領域(保留数に対応する領域)に、WAレジスタの大当り乱数をロード(記憶)する(コード「LQD (HL+),WA」)。その後、HLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。大当り乱数は2バイトであるため、例えば現在のHLレジスタに格納されたアドレスが2840hなら次のアドレスは2842hである。なお、大当り乱数の下位バイト(Aレジスタの値)が上位バイト(Wレジスタの値)よりも先に小さいアドレスのRAM内領域に記憶される。
このように、コード「LQD (HL+),WA」では、HLレジスタ内のアドレスを次回の格納先である次のアドレスに自動的に更新するため、乱数格納領域などの連続したRAM内領域における次回の格納先のアドレスを算出する命令が不要となる。従って、遊技制御プログラム全体のコード量も減少する。
行番号2680から2690は、特図始動口スイッチ共通処理のA10803に対応する。行番号2680では、乱数生成回路内の所定のレジスタ「C_SRND0_L」の値(ここでは下位バイト)をAレジスタに入力する(コード「IN A,(C_SRND0_L)」)。所定のレジスタは、ソフト乱数レジスタ0である。
行番号2690では、大当り図柄乱数としてのAレジスタの値を、現時点のHLレジスタに格納されているアドレスの領域にロードする(コード「LQD (HL+),A」)。その後、現時点のHLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。大当り図柄乱数は1バイトであるため、例えば現在のHLレジスタに格納されたアドレスが2842hなら次のアドレスは2843hである。
行番号2700から2710は、特図始動口スイッチ共通処理のA2912に対応する。
行番号2700では、始動口入賞フラグ(特図1又は特図2を示す値)としてBレジスタの値を、ラベルC_SIDO1に対応する数値(特図1を示す値)と比較して、一致するか(T)、一致しないか(F)を判定する(コード「CPJ B,C_SIDO1」)。一致する場合(T)には、例えば所定のフラグをセットする。
行番号2710では、行番号2700の比較結果が不一致(F)の場合、即ち、対象の始動口が始動口2である場合(始動口入賞フラグが特図2を示す場合)に、ラベルTSIDOSW10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号2750以降の命令を実行する(コード「JRS F,TSIDOSW10」)。特図2変動表示ゲームでは小当りがなく、小当り図柄乱数を取得格納する必要がないためである。
行番号2720から2730は、特図始動口スイッチ共通処理のA10804に対応する。行番号2720では、乱数生成回路内の所定のレジスタ「C_SRND1_L」の値をAレジスタに入力する(コード「IN A,(C_SRND1_L)」)。
行番号2730では、小当り図柄乱数としてAレジスタの値を、現時点のHLレジスタに格納されているアドレスの領域にロードする(コード「LQD (HL+),A」。その後、現時点のHLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。大小り図柄乱数は1バイトであるため、例えば現在のHLレジスタに格納されたアドレスが2843hなら次のアドレスは2844hである。
行番号2750から2780は、特図始動口スイッチ共通処理のA2915に対応する。行番号2750では、加算アドレスIY+R_RNDHEN1の領域(RAM内)に記憶された値(即ち、変動パターン乱数1)を、WAレジスタにロードする(コード「LQD WA,(IY+R_RNDHEN1)」)。加算アドレスは、IYレジスタに格納された値(RAM先頭アドレス「2800h」)にラベルR_RNDHEN1に対応する値(変動パターン乱数1が生成される生成領域のオフセットアドレス)を加算したものである。なお、加算アドレスIY+R_RNDHEN1は、変動パターン乱数1が生成される生成領域の絶対アドレスになる。
ここで、オフセットアドレスR_RNDHEN1は、1バイトで表せる範囲に制限され、行番号2750のコード「LQD WA,(IY+R_RNDHEN1)」は2バイトの命令とすることができる。これにより、プログラム容量(コード量)が削減できる。なお、オフセットアドレスを用いない場合には、アドレスは2バイトとなり行番号2750の命令は、3バイトの命令となる。
行番号2760では、現時点でHLレジスタに格納されているアドレスから2バイトの領域(RAM内)に、WAレジスタの変動パターン乱数1をロードする(コード「LQD
(HL+),WA」)。その後、HLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。変動パターン乱数1は2バイトであるため、例えば現在のHLレジスタに格納されたアドレスが2844hなら次のアドレスは2846hである。
行番号2770では、加算アドレスIY+R_RNDHEN2から2バイトの領域(RAM内)に記憶された値(即ち、変動パターン乱数2、3)をWAレジスタにロードする(コード「LQD WA,(IY+R_RNDHEN2)」)。加算アドレスは、IYレジスタに格納された値(RAM先頭アドレス「2800h」)にラベルR_RNDHEN2に対応する値(変動パターン乱数2が生成される生成領域のオフセットアドレス)を加算したものである。なお、加算アドレスIY+R_RNDHEN2は、変動パターン乱数2が生成される生成領域の絶対アドレスになる。変動パターン乱数2(1バイト)と変動パターン乱数3(1バイト)が生成される生成領域は連続しており、合計2バイトとなる。このため、一つの命令で、変動パターン乱数2と変動パターン乱数3とを同時にWAレジスタにロードできる。
行番号2780では、現時点でHLレジスタに格納されているアドレスの領域(RAM内2バイト)に、WAレジスタの変動パターン乱数2、3をロードする(コード「LD (HL),WA」)。例えば現在のHLレジスタに格納されたアドレスが2846hなら変動パターン乱数2、3は2846hと2847hにロードされる。
行番号2790は、特図始動口スイッチ共通処理のA2916に対応し、特図保留情報判定処理(図129)のサブルーチン(ラベルP_THOINF)を呼び出す(コード「CALLR P_THOINF」)。
行番号2800から2820は、特図始動口スイッチ共通処理のA2917に対応する。行番号2800では、RAMのスタック領域からBCレジスタの値を復帰する(コード「POP BC」)。Bレジスタの値は、始動口入賞フラグ(特図1又は特図2を示す値)であり、Cレジスタの値は、保留数(+1更新する前の保留数)である。
行番号2810では、Bレジスタの値に、ラベルC_THOMDに対応する数値(特図保留モードを示す数値)を加算する(コード「ADD B,C_THOMD」)。
行番号2820では、Cレジスタの値に2を加算する(コード「ADD C,2」)。
行番号2830は、特図始動口スイッチ共通処理のA2918に対応する。演出コマンド設定処理のサブルーチン(P_COMSET)を呼び出して実行する(コード「CALLR P_COMSET」)。演出コマンド設定処理は、BレジスタとCレジスタの値に基づいて実行されることになる。
行番号2840では、始動口スイッチ監視処理(図22)に復帰する(コード「RET」)。
上記のように、一般的に「LQD (qq+),r(又はdd)」と記載されるコードは、格納命令として、ペアレジスタqqに設定されたアドレス値が示すRAM内領域(特に乱数格納領域)に、レジスタr(又はペアレジスタdd)の値を記憶した後、ペアレジスタqqのアドレス値を所定の加算値だけ加算更新して、次のアドレス値にする。なお、rは任意のレジスタであり、qqとdd(qqと異なる)は任意のペアレジスタである。所定の加算値は、レジスタのバイト数に対応し、レジスタrに対しては1であり、ペアレジスタddに対しては2である。なお、2つのレジスタから構成されるペアレジスタは、レジスタペアとも呼ぶ。
なお、CPUコア102に(命令解釈実行回路1242)に、コード「LQD (qq+),r(又はdd)」を実行する専用論理回路を設けてよい。
[第9実施形態の作用・効果]
第9実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、複数のレジスタからなるレジスタ群(レジスタバンク0、1)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。レジスタ群には、2つのレジスタから各々構成される複数のレジスタペアが構成される。更新情報記憶手段には複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。記憶手段(例えば遊技制御装置100のCPU111a)は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立に基づき、乱数を抽出し変動表示ゲームの実行権利として更新情報記憶手段(例えばRAM111c)の乱数格納領域に記憶させることができる。演算処理手段(例えばCPU111a)は、所定のレジスタペア又は所定のレジスタに記憶された値を、他のレジスタペアに設定されたアドレスに対応して更新情報記憶手段のいずれかの記憶領域に格納した後、当該他のレジスタペアに設定されたアドレスを更新する格納命令を実行可能に構成される。演算処理手段は、格納命令によって、所定のレジスタペア又は所定のレジスタに記憶された乱数を、更新情報記憶手段の乱数格納領域に格納する。格納命令は、例えば、「LQD (HL+),WA」や「LQD (HL+),A」である。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような格納命令を含んでよい。
格納命令によって格納先のアドレスが自動的に更新されるため、連続した記憶領域(例えばRAM内領域)に連続して値を格納する場合に、従来では必要であった個々の格納先のアドレス算出のための命令が不要となる。従って、遊技制御プログラム全体のコード量も減少する。
従って、第9実施形態において、乱数格納領域(例えばRAM内領域)に連続して乱数を格納する場合に、従来では必要であった個々の格納先のアドレス算出のための命令が不要となる。従って、遊技制御プログラム全体のコード量も減少する。
[第9実施形態の変形例]
図134Bは、第9実施形態の変形例に係る特図始動口スイッチ共通処理(図128)の一部のプログラム構造を示すプログラムリストである。なお、第9実施形態の図134Aと同じ内容のコードには、同じ行番号を付して説明を省略する。
行番号2500から行番号2670は、第9実施形態の図134Aと同じであるが、行番号2670の次に実行される行番号12010では、WAレジスタとWA’レジスタの値を交換する(コード「XQCH WA,WA’」)。本実施形態では、WAレジスタは、レジスタバンク0のWAレジスタ1203A(表レジスタ)であり、WA’レジスタは、レジスタバンク1のWAレジスタ1203B(裏レジスタ)である。これにより、現時点でレジスタバンク0のWAレジスタに格納されている大当り乱数(2バイト)を、レジスタバンク0のWAレジスタ1203Aの値が変更(破壊)される前にレジスタバンク1のWA’レジスタに一時的に退避することができる。
行番号2790で、特図保留情報判定処理のサブルーチン(ラベルP_THOINF)を呼び出す際に、再度、ペアレジスタであるWAレジスタとWA’レジスタの値を交換する(コード「XQCH WA,WA’」)。これにより、レジスタバンク1のWA’レジスタに退避(格納)されていた大当り乱数を、特図保留情報判定処理を実行する際(実行する直前)にレジスタバンク0のWAレジスタに戻させ(復帰させ)、特図保留情報判定処理の大当り判定処理で使用することができる。そして、特図保留情報判定処理において、RAMの乱数格納領域から大当り乱数を取り出す(読み出す)必要がないため、プログラム容量(コード数やコード量)も減少できる。また、RAMのスタック領域に退避しないため、RAM容量の増加も防止できる。
行番号12020と行番号12030は、行番号2690と同様であるが、行番号2680で取得した大当り図柄乱数を後の特図保留情報判定処理で使用できるようにするために、大当り図柄乱数をAレジスタの他にEレジスタにも格納しておく(コード「LD E,A」)。
行番号12040と行番号12050は、行番号2730と同様であるが、行番号2720で取得した小当り図柄乱数を後の特図保留情報判定処理で使用できるようにするために、小当り図柄乱数をAレジスタの他にDレジスタにも格納しておく。
上記のように、一般的に「XQCH dd,dd’」と記載されるコードは、交換命令として、第1のレジスタバンク(例えばレジスタバンク0)のペアレジスタddの値と、ペアレジスタddに対応する第2のレジスタバンク(例えばレジスタバンク1)のペアレジスタdd’の値を交換する。従って、第1のレジスタバンクのペアレジスタddに格納された大当り乱数(2バイト)を、第2のレジスタバンクのペアレジスタdd’に一時的に退避することができる。そして、退避されていた大当り乱数を所望のタイミングで第1のレジスタバンクのペアレジスタddに戻し(復帰させ)、利用することができる。さらに、RAMのスタック領域などを使用することなく、退避することができる。従って、特図保留情報判定処理などにおいて、RAMの乱数格納領域から大当り乱数を取り出す(読み出す)命令が必要ないため、遊技制御プログラム全体のコード量も減少できる。なお、2つのレジスタから構成されるペアレジスタは、レジスタペアとも呼ぶ。
なお、CPUコア102に(命令解釈実行回路1242)に、コード「XQCH dd,dd’」を実行する専用論理回路を設けてよい。
[第9実施形態の変形例の作用・効果]
第9実施形態の変形例によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所定の演算処理を行う演算処理手段(例えばCPU111a)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。遊技制御手段は、第1のレジスタ群(例えばレジスタバンク0)と、第1のレジスタ群と同一の構成のレジスタ群からなる第2のレジスタ群(例えばレジスタバンク1)と、を備える。演算処理手段は、第1のレジスタ群に記憶される値と、第2のレジスタ群に記憶される値とを交換して、それぞれのレジスタ群において記憶させる交換命令(例えば「XQCH」命令)を実行可能に構成される。演算処理手段は、所定の始動条件の成立に基づき、変動表示ゲームで特別遊技状態を発生させるか否かの抽選に使用する乱数(大当り乱数)を抽出し、該抽出した乱数を第1のレジスタ群に記憶させた状態で、交換命令により第1のレジスタ群に記憶された乱数を第2のレジスタ群に退避させる。演算処理手段は、乱数に基づき特別遊技状態を発生させるか否かの事前判定を行う前に、交換命令により第2のレジスタ群に退避させた乱数を第1のレジスタ群に復帰させ、第1のレジスタ群に復帰させた乱数を使用して事前判定を行う。
従って、交換命令によって、第1のレジスタ群(例えばレジスタバンク0)に格納された値(例えば、大当り乱数)を、第2のレジスタ群(例えばレジスタバンク1)に一時的に退避することができる。そして、交換命令によって、退避されていた値(例えば、大当り乱数)を所望のタイミングで第1のレジスタ群に戻し(復帰させ)、利用することができる。従って、RAMのスタック領域などを使用することなく、第1のレジスタ群に格納された値を退避することができる。また、第2のレジスタ群に値を退避できるため、RAMからこの値を取り出す(読み出す)命令が不要なため、遊技制御プログラム全体のコード量も減少できる。特に、遊技制御において重要な値である乱数に関して交換命令を適用し、第1のレジスタ群から第2のレジスタ群に乱数を退避させて保護できる。事前判定を行う直前などの所望のタイミングで退避させた乱数を第1のレジスタ群に復帰させ、第1のレジスタ群に復帰させた乱数を使用して事前判定を行う。このため、第1のレジスタ群は、退避させた後所望のタイミングまで自由に使用できる。
[第10実施形態]
図136Aを参照して、第10実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第9実施形態までの実施形態と共通の構成でよい。
図136Aは、第10実施形態に係る特図保留情報判定処理(図129)の一部のプログラム構造を示すプログラムリストである。
行番号3000は、特図保留情報判定処理に対応するラベル(P_THOINF)であり、特図保留情報判定処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。特図保留情報判定処理は、特図始動口スイッチ共通処理(図128)のA2916(図134の行番号2790)において「CALLR」命令によって呼び出されるサブルーチンである。
行番号3010から3050は、特図保留情報判定処理のA3001に対応する。
行番号3010では、特図2保留数の保留数記憶領域に対応するアドレス(ラベルR_T2HORYUに対応する値)をDEレジスタにロードする(コード「LDY DE,R_T2HORYU」)。R_T2HORYUは、IYレジスタの値「2800h」を基準とするオフセットアドレスであり、保留数記憶領域の下位アドレスのみをR_T2HORYUとして指定するだけで済む。従って、DEレジスタに値をロードするための従来のコード(機械語命令)は3バイトであったところ、この「LDY」命令によるコード(機械語命令)では2バイトとなる。
行番号3020では、特図2保留の乱数格納領域(特図2保留記憶領域)の先頭アドレス(ラベルR_T2RNDMEMに対応する数値)から7(特図2保留の保留バイト数)を減算した値「R_T2RNDMEM−7」を、特図2保留の乱数格納領域のアドレスに関連する値(基準値)としてHLレジスタにロードする(コード「LDY HL,R_T2RNDMEM−7」)。
行番号3030では、特図2保留に対する保留バイト数「7」をWレジスタにロードする(コード「LD W,7」)。
行番号3040では、加算アドレスIY+R_SIDOFLGの領域(RAM内)に記憶された始動口入賞フラグを、ラベルC_SIDO1に対応する数値(特図1を示す値)と比較する(コード「CP (IY+R_SIDOFLG),C_SIDO1」)。加算アドレスは、IYレジスタに格納された値(RAM先頭アドレス「2800h」)にラベルR_SIDOFLGに対応する値を加算したものである。始動口入賞フラグが特図1を示し比較結果が一致する場合には、ゼロフラグがセットされ(Z)、始動口入賞フラグが特図2を示し比較結果が一致しない場合には、ゼロフラグがセットされない(NZ)。
行番号3050では、始動口入賞フラグが特図2を示しゼロフラグがセットされない場合に(NZ)、ラベルTHOINF10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号3140以降の命令を実行する(コード「JR NZ,THOINF10」)。即ち、始動口1の入賞でなければ分岐する。
行番号3060から3100は、特図保留情報判定処理のA3002に対応する。
行番号3060では、特図1保留数の保留数記憶領域に対応するラベルR_T1HORYUに対応するアドレスをDEレジスタにロードする(コード「LDY DE,R_T1HORYU」)。
行番号3070では、特図1保留の乱数格納領域(特図1保留記憶領域)の先頭アドレス(ラベルR_T1RNDMEMに対応する数値)から8(特図1保留の保留バイト数)を減算した値「R_T1RNDMEM−8」を、特図1保留の乱数格納領域のアドレスに関連する値(基準値)としてHLレジスタにロードする(コード「LDY HL,R_T1RNDMEM−8」)。
行番号3080では、現時点で7であるWレジスタの値を+1更新(1だけ増加)して、特図1保留に対する保留バイト数「8」にする(コード「INC W」)。
行番号3090では、行番号1540と同じく、アドレス「IY+R_TGAMEFLG」に格納された値と、特図時短中(普電サポート状態中)であることを示すラベルC_JTNの値を比較する(コード「CHK (IY+R_TGAMEFLG),C_JTN」)。特図時短中であり比較結果が一致する場合には、演算結果はゼロとならずゼロフラグがセットされず(NZ)、特図時短中でなく比較結果が一致しない場合には、ゼロフラグがセットされる(Z)。
行番号3100では、特図時短中である場合、即ち、比較結果が一致する場合には(NZ)、特図始動口スイッチ共通処理(図128)に復帰する(コード「RET NZ」)。
行番号3110から3120は、特図保留情報判定処理のA3003に対応する。
行番号3110では、アドレス「IY+R_TGAME」に格納された値と、大当り中又は小当り中であることを示すラベルC_TFANの値を比較する(コード「CP (IY+R_TGAME),C_TFAN」)。ここで、ラベルR_TGAMEに対応するオフセットアドレスは、IYレジスタの値「2800h」を基準として、特図ゲーム処理番号(A2606)を記憶するRAM内領域を示す。ラベルC_TFANの値は、ファンファーレ/インターバル中処理の特図ゲーム処理番号「3」である。大当り中又は小当り中であり、アドレス「IY+R_TGAME」に格納された値が3以上の場合には、キャリーフラグ(CF)がセットされず(NC)、大当り中でも小当り中でもなく3より小さい場合には、キャリーフラグ(CF)がセットされる(C)。
行番号3120では、大当り中又は小当り中でありキャリーフラグ(CF)がセットさていない(NC)場合に、特図始動口スイッチ共通処理(図128)に復帰する(コード「RET NC」)。
行番号3140から3170は、特図保留情報判定処理のA10901に対応する。
行番号3140では、DEレジスタのアドレスに対応する保留数記憶領域に記憶されている保留数(特図1保留数又は特図2保留数)をAレジスタにロードする(コード「LD
A,(DE)」)。
行番号3150では、Wレジスタに格納された保留バイト数(7又は8)と、Aレジスタに格納された保留数(特図1保留数又は特図2保留数)(ここでは1から4)とを乗算し、WAレジスタに演算結果(保留数×保留バイト数)を格納する(コード「MUL W,A」)。演算結果は7から31であるため、演算結果は実質的に下位バイトのAレジスタに格納される。
行番号3160では、WAレジスタの値をRAMのスタック領域に退避する(コード「PUSH WA」)。
行番号3170では、合計アドレス値HL+Aに対応する領域(2バイト)の値を、WAレジスタにロード(読み出し)する(コード「LQD WA,(HL+A)」)。合計アドレス値は、HLレジスタの値とAレジスタの値(保留数×保留バイト数)との合計である。HLレジスタの値は、乱数格納領域の先頭アドレスから保留バイト数を引いた値であり、乱数格納領域に関連する値である。Aレジスタの値は、保留数×保留バイト数であり、保留数(始動記憶の数)と保留毎(始動記憶毎)に割り当てられたバイト数との乗算値に基づく値である。
なお、HLレジスタの値を、乱数格納領域の先頭アドレスとして、Aレジスタの値を(保留数−1)×保留バイト数とする構成も可能である。
ここで、合計アドレス値HL+Aは、最も新しく発生した最新保留の乱数格納領域の先頭アドレスになる(図135Aと図135Bの最も左側)。そして、合計アドレス値に対応する領域には、最新保留の大当り乱数が記憶されているが、最新保留の大当り乱数の下位バイトがAレジスタに、上位バイトがWレジスタに取得される(読み出される)。
行番号3180は、特図保留情報判定処理のA3004に対応し、大当り判定処理のサブルーチン(ラベルP_BHITJUD)を呼び出す(コード「CALLR P_BHITJUD」)。大当り判定処理では、最新保留の大当り乱数に基づいて、大当りか否かを判定する。
行番号3190から3200は、特図保留情報判定処理のA3005に対応する。行番号3190では、行番号3160でスタック領域に退避したWAレジスタの値を、スタック領域からWAレジスタに戻す(コード「POP WA」)。
行番号3200では、大当り判定処理の結果が大当りでない場合(キャリーフラグがセットされていない場合(NCの場合))、行番号3300以後の処理(図129のA3008以降の処理)を行うべく、ラベルTHOINF30に対応するROM内アドレスへジャンプ(条件分岐)する(コード「JR NC,THOINF30」)。
行番号3210から3240は、特図保留情報判定処理のA3006に対応する。行番号3210では、特図1用の大当り図柄乱数チェックテーブルD_ZCHKTBL1のアドレス(先頭アドレス)をDEレジスタにロードする(コード「LD DE,D_ZCHKTBL1」)。
行番号3220は、行番号3040と同じコードであり、加算アドレスIY+R_SIDOFLGの領域(RAM内)に記憶された始動口入賞フラグを、ラベルC_SIDO1に対応する数値(特図1を示す値)と比較する(コード「CP (IY+R_SIDOFLG),C_SIDO1」)。
行番号3230では、始動口入賞フラグが特図1を示しゼロフラグがセットされる(Z)場合に、ラベルTHOINF20に対応するROM内アドレスへジャンプ(条件分岐)して、行番号3260以降の命令を実行する(コード「JR Z,THOINF20」)。即ち、始動口1の入賞であれば分岐する。
行番号3240では、特図2用の大当り図柄乱数チェックテーブルD_ZCHKTBL2のアドレス(先頭アドレス)をDEレジスタにロードして上書きする(コード「LD DE,D_ZCHKTBL2」)。
行番号3260から3270は、特図保留情報判定処理のA10902に対応する。行番号3260では、Aレジスタの値に2を加算する(コード「ADD A,2」)。Aレジスタには、(保留数×保留バイト数)に「2」を加算した値が格納されることになる。
行番号3270では、合計アドレス値HL+Aに対応する領域(1バイト)の値を、Aレジスタにロード(読み出し)する(コード「LQD A,(HL+A)」)。現在、合計アドレス値は、HLレジスタの値(乱数格納領域の先頭アドレスから保留バイト数を引いた値)とAレジスタの値(保留数×保留バイト数+2)との合計である。HLレジスタの値は、乱数格納領域に関連する値であり、Aレジスタの値は、保留数と保留毎に割り当てられたバイト数との乗算値に基づく値である。ここで、合計アドレス値は、最も新しく発生した最新保留の乱数格納領域の先頭アドレスに「2」を加算したものである。そして、合計アドレス値に対応する領域には、最も新しく発生した最新保留の大当り図柄乱数が記憶されているが、最新保留の大当り図柄乱数がAレジスタに取得される(読み出される)。
行番号3280から3290は、特図保留情報判定処理のA10903に対応する。
行番号3280では、合計アドレス値DE+Aに対応する領域(1バイト)の値を、Aレジスタにロード(読み出し)する(コード「LQD A,(DE+A)」)。合計アドレス値は、DEレジスタに格納された値(大当り図柄乱数チェックテーブルの先頭アドレス)とAレジスタの値(大当り図柄乱数の値)との合計である。そして、合計アドレス値に対応する領域には、大当り図柄乱数に対応する停止図柄情報が記憶されているため、最新保留の停止図柄情報がAレジスタに取得される(読み出される)。このように、大当り図柄乱数に対応して停止図柄情報が取得される。
行番号3290では、ラベルTHOINF100に対応するROM内アドレスへジャンプする(コード「JR THOINF100」)。
上記のように、一般的に「LQD qq(又はr’),(dd+r)」と記載されるコードは、読出命令として、ddレジスタの値とrレジスタの値に基づいて指定されるアドレス(ここでは、合計アドレスdd+r)が示すRAM内領域(乱数格納領域)の値(乱数)を、ペアレジスタqq(又はレジスタr’)に格納する。なお、rとr’は任意のレジスタであり、r’はrと異なっても同じでもよい。qqとddは任意のペアレジスタであり、qqはddと異なっても同じでもよい。合計アドレス値dd+rは、ペアレジスタddの値(乱数格納領域の先頭アドレスに基づいて導出される基準アドレス)とrレジスタの値(保留数×保留バイト数に基づいて導出される値)の合計であり、各保留の特定の乱数のアドレス(領域)を指定できる。なお、2つのレジスタから構成されるペアレジスタは、レジスタペアとも呼ぶ。
従って、従来と異なり、各保留の特定の乱数を取得しようとする度にこの乱数の格納されるアドレスを直接的に算出するコードを実行する必要がなくなり、当該アドレスを効率良く指定できるとともに特定の乱数を効率良く取得でき、遊技制御プログラム全体のコード量を削減できる。
なお、CPUコア102に(命令解釈実行回路1242)に、ペアレジスタddとレジスタrの値から特定したRAM内アドレスに記憶される値を取得するためのコード「LQD qq(又はr’),(dd+r)」を実行する専用論理回路を設けてよい。
[第10実施形態の作用・効果]
第10実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、複数のレジスタからなるレジスタ群(レジスタバンク0、1)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。レジスタ群には、2つのレジスタから各々構成される複数のレジスタペアが構成される。更新情報記憶手段には複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。記憶手段(例えば遊技制御装置100のCPU111a)は、所定の始動条件の成立に基づき、乱数を抽出し変動表示ゲームの実行権利として更新情報記憶手段(例えばRAM111c)の乱数格納領域に記憶させることができる。演算処理手段(例えばCPU111a)は、所定のレジスタ及び所定のレジスタペアに記憶される値に基づいて指定されるアドレスに対応して更新情報記憶手段のいずれかの記憶領域の値を1つのレジスタ又は1つのレジスタペアに記憶させる読出命令を実行可能に構成される。演算処理手段は、読出命令によって、更新情報記憶手段の乱数格納領域に記憶された乱数を読み出す。読出命令は、例えば、「LQD WA,(HL+A)」や「LQD A,(HL+A)」である。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような読出命令を含んでよい。
このような読出命令によって、いずれかの記憶領域の値を取得しようとする度にこの値の格納されるアドレスを直接的に算出する命令を実行する必要がなくなり、当該いずれかの記憶領域のアドレスとその領域に格納される値を効率良く取得でき、遊技制御プログラム全体のコード量を削減できる。
例えば、所定のレジスタペア(例えばHLレジスタ)には、乱数格納領域のアドレスに関連する値が格納され、所定のレジスタ(例えばAレジスタ)には、始動記憶の数と始動記憶毎に割り当てられたバイト数との乗算値に基づく値が格納される。
このように、第10実施形態において、乱数格納領域のいずれかの領域の乱数を取得しようとする度に乱数の格納されるアドレスを直接的に算出する命令を実行する必要がなくなり、当該いずれかの領域のアドレスとその領域に格納される乱数を効率良く取得でき、遊技制御プログラム全体のコード量を削減できる。
[第10実施形態の変形例]
図136Bは、第10実施形態の変形例に係る特図保留情報判定処理(図129)の一部のプログラム構造を示すプログラムリストである。なお、第10実施形態の図136Aと同じ内容のコードには、同じ行番号を付して説明を省略する。
第10実施形態の変形例は、第9実施形態の変形例の特図始動口スイッチ共通処理(図134B)が実行される場合に対応して実行される特図保留情報判定処理である。図134Bの特図始動口スイッチ共通処理では、大当り乱数を一時的にWA’レジスタに退避し、特図保留情報判定処理を実行する際(実行する直前)に元のWAレジスタに復帰させている。このため、図136Bの特図保留情報判定処理において、RAMの乱数格納領域から大当り乱数を取り出す処理(図136Aの行番号3000から行番号3030までの処理、行番号3060から行番号3080までの処理、及び、行番号3130から行番号3170までの処理)が不要となる。
行番号13010と行番号13020は、図136Aの行番号3040と行番号3050同様である。
行番号13010では、始動口入賞フラグ(特図1又は特図2を示す値)としてBレジスタの値を、ラベルC_SIDO1に対応する数値(特図1を示す値)と比較して、一致するか(T)、一致しないか(F)を判定する(コード「CPJ B,C_SIDO1」)。
行番号13020では、行番号13010の比較結果が不一致(F)の場合、即ち、対象の始動口が始動口2である場合(始動口入賞フラグが特図2を示す場合)に、ラベルTHOINF10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号3180以降の命令を実行する(コード「JRS F,THOINF10」)。
行番号3180では、大当り判定処理のサブルーチン(ラベルP_BHITJUD)を呼び出し、WAレジスタの大当り乱数を用いて大当り判定処理を実行する。このように、大当り判定処理の際にRAMの乱数格納領域から大当り乱数を取り出す(読み出す)必要がない。
行番号13030から行番号13060は、行番号3210から行番号3240に対応する。
行番号13030では、特図1用の大当り図柄乱数チェックテーブルD_ZCHKTBL1の相対アドレス(先頭アドレス)をHLレジスタにロードする(コード「LQDD HL,D_ZCHKTBL1−5000H」)。
行番号13040では、行番号13010と同じく、始動口入賞フラグ(特図1又は特図2を示す値)としてBレジスタの値を、ラベルC_SIDO1に対応する数値(特図1を示す値)と比較して、一致するか(T)、一致しないか(F)を判定する(コード「CPJ B,C_SIDO1」)。
行番号13050では、行番号13040の比較結果が一致(T)の場合、即ち、対象の始動口が始動口1である場合(始動口入賞フラグが特図1を示す場合)に、ラベルTHOINF20に対応するROM内アドレスへジャンプ(条件分岐)して、行番号13070以降の命令を実行する(コード「JRS T,THOINF20」)。
行番号13060では、特図2用の大当り図柄乱数チェックテーブルD_ZCHKTBL2の相対アドレス(先頭アドレス)をHLレジスタにロードする(コード「LQDD HL,D_ZCHKTBL1−5000H」)。
行番号13070では、図134Bの行番号12020でEレジスタに格納された大当り図柄乱数をAレジスタに格納する(LD A,E)。従って、特図保留情報判定処理において、大当り図柄乱数をRAMの乱数格納領域から取り出す(読み出す)必要がない。
行番号13080では、図136Aの行番号3280と同じく、大当り図柄乱数に対応して停止図柄情報が取得される。行番号13080では、合計アドレス値HL+Aに対応する領域(1バイト)の値を、Aレジスタにロード(読み出し)する(コード「LQD A,(HL+A)」)。合計アドレス値は、HLレジスタに格納された値(大当り図柄乱数チェックテーブルの先頭アドレス)とAレジスタの値(大当り図柄乱数の値)との合計である。そして、合計アドレス値に対応する領域には、大当り図柄乱数に対応する停止図柄情報が記憶されているため、最新保留の停止図柄情報がAレジスタに取得される。
[第10実施形態の変形例の作用・効果]
第10実施形態によると、一般的に「XQCH dd,dd’」と記載されるコードによって退避されていた大当り乱数を用いて、特図保留情報判定処理の大当り判定処理を実行する。このように、大当り判定処理の際にRAMの乱数格納領域から大当り乱数を取り出す必要がなくなり、プログラム容量(コード数やコード量)を削減できる。
[第11実施形態]
図137を参照して、第11実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第10実施形態までの実施形態と共通の構成でよい。
図137は、第11実施形態に係る変動開始情報設定処理(図40)の一部のプログラム構造を示すプログラムリストである。
行番号3500は、変動開始情報設定処理に対応するラベル(P_TSTASET)であり、変動開始情報設定処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。
行番号3510から3580は、変動開始情報設定処理のA4601に対応する。行番号3510では、アドレス「IY+R_TZINF」の変動図柄判別フラグ領域の値(変動図柄判別フラグ)と、ラベルC_TZ1HENに対応する値(特図1を示す値)を比較する(コード「CP (IY+R_TZINF),C_TZ1HEN」)。ラベルR_TZINFは、IYレジスタの値「2800h」を基準とする変動図柄判別フラグ領域のオフセットアドレスを示す。変動図柄判別フラグが特図1を示し比較結果が一致する場合には、ゼロフラグがセットされ(Z)、変動図柄判別フラグが特図2を示し比較結果が一致しない場合には、ゼロフラグがセットされない(NZ)。
行番号3520では、変動図柄判別フラグが特図2を示し比較結果が一致しない場合に(NZ)、ラベルTSTASET10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号3570以降の命令を実行する(コード「JR NZ,TSTASET10」)。
行番号3530では、特図1保留の乱数格納領域(特図1保留記憶領域)の先頭アドレス(ラベルR_T1RNDMEMに対応する数値、例えば2830h)に4を加算したアドレスの領域(2バイト)、即ち、乱数格納領域のうち消化される保留1の変動パターン乱数1の領域(例えば図135Aのアドレス2834hと2835hの領域)がクリアされる(コード「CQLRW (R_T1RNDMEM+4)」)。
行番号3540では、特図1保留の乱数格納領域(特図1保留記憶領域)の先頭アドレス(ラベルR_T1RNDMEMに対応する数値、例えば2830h)に6を加算したアドレスの領域(2バイト)、即ち、乱数格納領域うち消化される保留1の変動パターン乱数2、3の領域(例えば図135Aのアドレス2836hと2837hの領域)がクリアされる(コード「CQLRW (R_T1RNDMEM+6)」)。
特図1保留記憶領域において、消化される保留1の大当り乱数、大当り図柄乱数、小当り図柄乱数は、既にクリアされているため(A3604、A4022、A4023)、さらに保留1の変動パターン乱数1から3の乱数格納領域をクリアすることによって、乱数格納領域のシフト(保留のシフト)を行うことができる(A4613)。
行番号3550では、ラベルTSTASET20に対応するROM内アドレスにジャンプする(コード「JR TSTASET20」)。
行番号3570では、特図2保留の乱数格納領域(特図2保留記憶領域)の先頭アドレス(ラベルR_T2RNDMEMに対応する数値、例えば2850h)に3を加算したアドレスの領域(2バイト)、即ち、乱数格納領域のうち消化される保留1の変動パターン乱数1の領域(例えば図135Bの2853hと2854h)がクリアされる(コード「CQLRW (R_T2RNDMEM+3)」)。
行番号3580では、特図2保留の乱数格納領域(特図2保留記憶領域)の先頭アドレス(ラベルR_T2RNDMEMに対応する数値、例えば2850h)に5を加算したアドレスの領域(2バイト)、即ち、乱数格納領域うち消化される保留1の変動パターン乱数1の領域(例えば図135Bの2855hと2856h)がクリアされる(コード「CQLRW (R_T2RNDMEM+5)」)。
特図2保留記憶領域において、消化される保留1の大当り乱数、大当り図柄乱数は、既にクリアされているため(A3703、A4116)、さらに保留1の変動パターン乱数1から3の乱数格納領域をクリアすることによって、乱数格納領域のシフト(保留のシフト)を行うことができる(A4613)。
行番号3600は、変動開始情報設定処理のA4602に対応し、相対アドレスで表した前半変動時間値テーブルの先頭アドレス「D_TZENTIM−5000H」を、HLレジスタにロードする(コード「LQDD HL,D_TZENTIM−5000H」)。
行番号3610から行番号3650は、変動開始情報設定処理のA4603に対応する。行番号3610では、加算アドレスIY+R_TZENNUMで示される前半変動番号領域(A4316)から前半変動番号(例えば1から10)をBレジスタにロードする(コード「LQD B,(IY+R_TZENNUM)」)。ラベルR_TZENNUMは、IYレジスタの値「2800h」を基準とする前半変動番号領域のオフセットアドレスである。
行番号3620では、Bレジスタの値を−1更新(1だけ減算)する(コード「DEC
B」)。Bレジスタの値は、例えば0から9の値になり、変動コマンド(MODE)を準備するためにも使用できるようになる。
行番号3630では、HLレジスタの値(前半変動時間値テーブルの先頭アドレス)に、Bレジスタの値(例えば0から9の値)を加算する(コード「ADD HL,B」)。
行番号3640では、さらにHLレジスタの値に、Bレジスタの値(例えば0から9の値)を加算する(コード「ADD HL,B」)。
行番号3630と行番号3640の命令によって、前半変動時間値が並べられた前半変動時間値テーブルの先頭アドレスに、Bレジスタの値の2倍の値(例えば0から18までの偶数値)が加算される。これは、前半変動時間値が2バイトであるため、偶数値を加算する必要があるためである。行番号3640の命令が実行された後、HLレジスタに格納されたアドレスの領域(ROM内の2バイト)に記憶された値が、前半変動番号に対応する前半変動時間値になっている。
行番号3650では、現時点でHLレジスタに格納されたアドレスの領域から、前半変動番号に対応する前半変動時間値をWAレジスタにロード(取得)する(コード「LD WA,(HL)」)。
行番号3660は、変動開始情報設定処理のA4604に対応し、相対アドレスで表した後半変動時間値テーブルの先頭アドレス「D_TKOUTIM−5000H」を、HLレジスタにロードする(コード「LQDD HL,D_TKOUTIM−5000H」)。
行番号3670から行番号3720は、変動開始情報設定処理のA4605とA4606に対応する。行番号3670では、加算アドレスIY+R_TKOUNUMで示される後半変動番号領域(A4310)から後半変動番号(例えば1から10)をCレジスタにロードする(コード「LQD C,(IY+R_TKOUNUM))」)。ラベルR_TKOUNUMは、IYレジスタの値「2800h」を基準とする後半変動番号領域のオフセットアドレスである。
行番号3680では、Cレジスタの値を−1更新(1だけ減算)する(コード「DEC
C」)。Cレジスタの値は、例えば0から9の値になる。
行番号3690では、HLレジスタの値(後半変動時間値テーブルの先頭アドレス)に、Cレジスタの値(例えば0から9の値)を加算する(コード「ADD HL,C」)。
行番号3700では、さらにHLレジスタの値に、Cレジスタの値(例えば0から9の値)を加算する(コード「ADD HL,C」)。
行番号3690と行番号3700の命令によって、後半変動時間値が並べられた後半変動時間値テーブルの先頭アドレスに、Cレジスタの値の2倍の値(例えば0から18までの偶数値)が加算される。これは、後半変動時間値が2バイトであるため、偶数値を加算する必要があるためである。行番号3640の命令が実行された後、HLレジスタに格納されたアドレスの領域(ROM内の2バイト)に記憶された値が、後半変動番号に対応する後半変動時間値になっている。
行番号3710では、Cレジスタの値が+1更新(1だけ加算)されて、変動コマンド(ACTION)を準備するためにも使用できるようになる(コード「INC C」)。
行番号3720では、現時点でHLレジスタに格納されたアドレスの領域から取得した後半変動番号に対応する後半変動時間値を、WAレジスタに加算する(コード「ADD WA,(HL)」)。WAレジスタには、全変動時間値(前半変動時間値+後半変動時間値)が格納されることになる。
行番号3730は、変動開始情報設定処理のA4607に対応し、WAレジスタの値(行番号3720の命令による加算値(全変動時間値))が、特図ゲーム処理タイマ領域(加算アドレス=IY+R_TGAME+1から2バイトの領域)に記憶される(コード「LQD (IY+R_TGAME+1),WA」)。なお、ここでは、R_TGAME+1は、IYレジスタの値「2800h」を基準とする特図ゲーム処理タイマ領域のオフセットアドレスである。特図ゲーム処理タイマ領域は、アドレスIY+R_TGAME+1及びアドレスIY+R_TGAME+2の2バイトの領域である。
行番号3740では、ラベルC_THMD_C0に対応する値がBレジスタの値に加算される(コード「ADD B,C_THMD_C0」)。
行番号3750は、変動開始情報設定処理のA4610に対応し、演出コマンド設定処理のサブルーチン(P_COMSET)を呼び出して実行する(コード「CALLR P_COMSET」)。
上記のように、一般的に「CQLRW (R_THIT_MEM)」と記載されるコードは、クリア命令として、乱数格納領域の一部としてアドレス値R_THIT_MEMの領域を、図121Aのレジスタにクリアデータ(例えばゼロ値)を格納することなく(少なくとも汎用レジスタを使用せず)クリアする。図121Aのレジスタとは、命令解釈実行回路1242の外部にある汎用レジスタ(Wレジスタ、Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、IXレジスタ、IYレジスタ)や特殊用途レジスタ(フラグレジスタ、DPレジスタ、SPレジスタ、PCレジスタ)である。従って、レジスタに不具合が発生しても乱数格納領域の一部に記憶された乱数を確実にクリアできる。なお、従来において、クリアデータ(例えばゼロ値)をレジスタに格納する命令や、格納したクリアデータを乱数格納領域に記憶する命令を実行することで、乱数格納領域をクリアしていた。従って、また、遊技制御プログラム全体のコード量が削減される。
[第11実施形態の作用・効果]
第11実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、複数の汎用レジスタからなるレジスタ群(レジスタバンク0、1)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。更新情報記憶手段には複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。記憶手段(例えば遊技制御装置100のCPU111a)は、所定の始動条件の成立に基づき、乱数を抽出し変動表示ゲームの実行権利として更新情報記憶手段の乱数格納領域に記憶させることができる。演算処理手段(例えばCPU111a)は、汎用レジスタを使用せずに更新情報記憶手段の記憶領域の一部をクリアするクリア命令(例えば「CQLRW」命令)を実行可能に構成される。演算処理手段は、クリア命令によって、更新情報記憶手段の乱数格納領域をクリアする。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、クリア命令を含んでよい。
このように、第11実施形態において、クリアデータ(例えばゼロ値)を汎用レジスタに格納する命令や、格納したクリアデータを乱数格納領域に記憶する命令を実行する必要がなくなり、汎用レジスタに不具合が発生しても乱数格納領域の一部に記憶された乱数を確実にクリアできる。また、遊技制御プログラム全体のコード量が削減される。
また、第11実施形態によると、遊技制御手段(遊技制御装置100)は、遊技制御プログラムを記憶するとともに、当該遊技制御プログラム用のデータを記憶するデータエリアを有する記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、当該演算処理手段のアドレス空間におけるデータエリアの先頭アドレスを格納するレジスタ(DPレジスタ)を備える。データエリアには、少なくとも、変動表示ゲームに関する変動時間値からなる変動時間値テーブルが含まれる。演算処理手段は、前記レジスタ(DPレジスタ)に格納された先頭アドレスを基準とする相対アドレスによって、データエリア内の領域を指定する命令(例えば「LQDD HL,D_TKOUTIM−5000H」)を実行可能に構成される。演算処理手段は、この命令によって、変動時間値テーブルのアドレスを指定する。なお、命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような命令を含んでよい。
このように、第11実施形態において、アドレス空間の先頭からの絶対アドレス(例えば2バイト)ではなく、レジスタに格納されたデータエリアの先頭アドレスを基準とする相対アドレス(例えば1バイト)によって、データエリア内の変動時間値テーブルのアドレスを指定できる。このため、機械語命令(機械語コード)のバイト数が減少するとともに、遊技制御プログラム全体のコード量が削減される。特に、変動時間値テーブルは、前半変動時間値テーブルと後半変動時間値テーブルの2つのテーブルがあり、参照されることも多いため、コード量の削減の利益が多い。
[第12実施形態]
図138を参照して、第12実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第11実施形態までの実施形態と共通の構成でよい。
図138は、第12実施形態に係るゲートスイッチ監視処理(図62)の一部のプログラム構造を示すプログラムリストである。
行番号4010は、ゲートスイッチ監視処理に対応するラベル(P_GATESW)であり、ゲートスイッチ監視処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。
行番号4020と4030は、ゲートスイッチ監視処理のA7701に対応する。行番号4020では、アドレスR_SWCTL+2から対象のスイッチ(ここではゲートスイッチ34a)の立ち上がり情報を取得して、ラベルC_GATEに対応するスイッチビットデータ(判定値)と論理積を取って、当該スイッチがオンしたか否かの判定を行う(コード「CHK (R_SWCTL+2),C_GATE」)。ここで、スイッチ制御領域とは、遊技機に備えられた各種スイッチの検出状態をタイマ割込毎に記憶しておく記憶領域のことである。立ち上がり情報(図133B参照)は、対象のスイッチ(ここではゲートスイッチ34a)がオフからオンに変化したことを示す情報である。アドレスR_SWCTL+2の領域には、対象のスイッチ(ここではゲートスイッチ34a)に関する情報が格納されたスイッチ制御領域のうち立ち上がり情報が格納される。
普図始動ゲート34に遊技球の通過がなくゲートスイッチ34aがオフの場合、ゲートスイッチ34aに対応する立ち上がり情報(対象のビット)はゼロであり、演算結果(論理積)はゼロになり、ゼロフラグ(ZF)がセットされる。立ち上がり情報がスイッチビットデータ(判定値)と同じである場合(例えば、「00000100B」でスイッチのビットがオンした場合)に、演算結果(論理積)はゼロ以外(例えば、「00000100B」)になり、ゼロフラグ(ZF)がセットされない。
行番号4030では、演算結果(論理積)がゼロになりゼロフラグ(ZF)がセットされている場合に、サブルーチンを終了して、普図ゲーム処理(図61)に復帰する(コード「RET Z」)。即ち、普図始動ゲート34に遊技球の通過がなくゲートスイッチ34aがオフである場合に、普図ゲーム処理(図61)に復帰する。
行番号4040から4070は、ゲートスイッチ監視処理のA7702に対応する。行番号4040では、行番号1540、行番号3090と同じく、アドレス「IY+R_TGAMEFLG」に格納された値と、特図時短中(普電サポート状態中)であることを示すラベルC_JTNの値を比較する(コード「CHK (IY+R_TGAMEFLG),C_JTN」)。特図時短中であり比較結果が一致する場合には、演算結果はゼロとならずゼロフラグがセットされず(NZ)、特図時短中でなく比較結果が一致しない場合には、ゼロフラグがセットされる(Z)。
行番号4050では、特図時短中である場合、即ち、比較結果が一致する場合には(NZ)、ラベルGATESW10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号4110以降の命令を実行する(コード「JR NZ,GATESW10」)。
行番号4060では、行番号3110と同じく、アドレス「IY+R_TGAME」に格納された値と、大当り中又は小当り中であることを示すラベルC_TFANの値を比較する(コード「CP (IY+R_TGAME),C_TFAN」)。ここで、ラベルR_TGAMEに対応するオフセットアドレスは、IYレジスタの値「2800h」を基準として、特図ゲーム処理番号(A2606)を記憶するRAM内領域(特図ゲーム処理番号領域)を示す。ラベルC_TFANの値は、ファンファーレ/インターバル中処理の特図ゲーム処理番号「3」である。大当り中又は小当り中であり、アドレス「IY+R_TGAME」に格納された値が3以上の場合には、キャリーフラグ(CF)がセットされず(NC)、大当り中でも小当り中でもなく3より小さい場合には、キャリーフラグ(CF)がセットされる(C)。
行番号4070では、大当り中又は小当り中でありキャリーフラグ(CF)がセットさていない(NC)場合に、ラベルGATESW10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号4110以降の命令を実行する(コード「JR NC,GATESW10」)。
行番号4080は、ゲートスイッチ監視処理のA7703に対応し、左打ち指示報知コマンド(ラベルC_LEFTCOMに対応する数値)をBCレジスタにロードする(コード「LD BC,C_LEFTCOM」)。
行番号4090は、ゲートスイッチ監視処理のA7704に対応し、演出コマンド設定処理のサブルーチン(P_COMSET)を呼び出して実行する(コード「CALLR P_COMSET」)。
行番号4110から4130は、ゲートスイッチ監視処理のA7705に対応する。行番号4110では、加算アドレスIY+R_FHORYUの普図保留数記憶領域(RAM内)に格納された値(普図保留数)を、Aレジスタをロードする(コード「LQD A,(IY+R_FHORYU)」)。ラベルR_FHORYUは、IYレジスタの値「2800h」を基準とする普図保留数記憶領域のオフセットアドレスである。
行番号4120では、Aレジスタの普図保留数を上限値(ここでは4)と比較して、上限値より小さい場合にキャリーフラグ(CF)をセットし、上限値以上の場合にキャリーフラグ(CF)をセットしない(コード「CP A,4」)。
行番号4130では、普図保留数が上限値に達してキャリーフラグ(CF)をセットしない場合に(NC)、普図ゲーム処理(図61)に復帰する(コード「RET NC」)。
行番号4140は、ゲートスイッチ監視処理のA7706に対応し、RAM内アドレスIY+R_FHORYUの普図保留数領域の値である普図保留数を+1更新する(コード「IQNC (IY+R_FHORYU)」)。RAM内アドレスIY+R_FHORYUは、IYレジスタに格納された値「2800h」とラベルR_FHORYUに対応する値を加算した加算アドレスである。ここでは、アドレスIY+R_FHORYの普図保留数領域に記憶されている1バイトの値(普図保留数)を、図121Aのレジスタ(少なくとも汎用レジスタ)に格納することなく、直接+1更新できる。
行番号4150から4170は、ゲートスイッチ監視処理のA7707に対応する。行番号4150では、普図保留の乱数格納領域(普図保留記憶領域)の先頭アドレス(ラベルR_FRNDMEMに対応する数値)をHLレジスタにロードする(コード「LDY HL,R_FRNDMEM」)。
行番号4160では、Aレジスタの値(+1更新する前の普図保留数であり0から3)を2倍するために、Aレジスタの値にAレジスタの値を加算する(コード「ADD A,A」)。この結果、Aレジスタの値は、0から6の値になる。
行番号4170では、Aレジスタの値(0から6の値)を、HLレジスタの値(普図保留記憶領域の先頭アドレス)に加算する(コード「ADD HL,A」)。この時点で、HLレジスタの値は、最も新しく発生した最新普図保留に対する当り乱数格納領域のアドレスになっている。
行番号4180から4190は、ゲートスイッチ監視処理のA7708に対応する。行番号4180では、当り乱数として、乱数生成回路内の所定のレジスタ(C_SRND2_L)の値をAレジスタに入力する(コード「IN A,(C_SRND2_L)」)。
行番号4190では、当り乱数としてAレジスタの値を、現時点でHLレジスタに格納されているアドレスの領域(最新普図保留の当り乱数格納領域)にロード(格納)した後、HLレジスタ内のアドレスを次のアドレスに更新する(コード「LQD (HL+),A」)。当り乱数は1バイトであり、ロード(格納)するAレジスタも1バイトであるため、HLレジスタ内のアドレス値は+1される。
行番号4200では、当り図柄乱数として、乱数生成回路内の所定のレジスタ(C_SRND3_L)の値をAレジスタに入力する(コード「IN A,(C_SRND3_L)」)。
行番号4210では、当り図柄乱数としてAレジスタの値を、現時点でHLレジスタに格納されているアドレスの領域(最新普図保留の当り図柄乱数格納領域)にロード(格納)する(コード「LD (HL),A」)。ここでは、次に格納する乱数がないため、HLレジスタに記憶されるアドレスを更新しない。
行番号4220では、普図ゲーム処理(図61)に復帰する(コード「RET」)。
上記のように、一般的に「CHK (R_SWCB),n」と記載されるコードは、判定値nとスイッチ制御領域の値(立ち上がり情報)の論理積を取ってスイッチの検出状態(スイッチビットのオン/オフ)を判定できる。なお、R_SWCBはスイッチ制御領域の立ち上がり情報のアドレスである。なお、スイッチの検出があると立ち上がり情報の所定のビット(スイッチビット)がオンする。この「CHK」命令は、スイッチ制御領域に格納記憶された値をレジスタに取得する命令を実行することなく、スイッチがオンしたか否かの判定を行うことがきる。スイッチの検出状態の判定をレジスタを介することなく行うようにしたため、レジスタに不具合が発生しても確実に判定がきる。また、遊技制御プログラム全体のコード量が削減される。なお、CPUコア102に(命令解釈実行回路1242)に、コード「CHK (R_SWCB),n」を実行する専用論理回路を設けてよい。
[第12実施形態の作用・効果]
第12実施形態によると、遊技機は、所定のスイッチ(ゲートスイッチ34a、始動口1スイッチ36a、始動口2スイッチ37a等の各種のスイッチやセンサ)の検出状態に基づいて変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、複数の汎用レジスタからなるレジスタ群(レジスタバンク0、1)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。更新情報記憶手段は、複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。更新情報記憶手段は、所定のアドレスに対応して設けられてスイッチの検出状態を記憶可能なスイッチ制御領域を備える。演算処理手段は、汎用レジスタに更新情報記憶手段のいずれかの記憶領域の値を格納することなく、記憶領域の値と所定の判定値とに基づいて、記憶領域に格納された値の状態を判定可能な命令(例えば「CHK (R_SWCTL+2),C_GATE」)を実行可能に構成される。演算処理手段は、この命令によって、スイッチの検出状態を判定する。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、この命令を含んでよい。
このように、第12実施形態において、スイッチ制御領域に格納記憶された値を汎用レジスタに取得する命令を実行することなく、スイッチの検出状態の判定を行うことがきる。スイッチの検出状態の判定を汎用レジスタを介することなく行うようにしたため、汎用レジスタに不具合が発生しても確実に判定がきるとともに、遊技制御プログラム全体のコード量が削減される。
[第13実施形態]
図139を参照して、第13実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第12実施形態までの実施形態と共通の構成でよい。第13実施形態は、各種編集処理のプログラム構造に関する実施形態である。
図139Aは、第13実施形態に係るセグメントLED編集処理(図72)の一部のプログラム構造を示すプログラムリストである。図139Bは、LED編集処理の従来のプログラム構造を示すプログラムリストである。
図139Aの行番号4500は、セグメントLED編集処理に対応するラベル(P_SEGEDIT)であり、セグメントLED編集処理に対応するプログラムモジュールのROM内アドレスを示す。
行番号4510は、セグメントLED編集処理(図72)のステップA9201に対応し、加算アドレスIY+R_DSPTIMの領域の値(点滅制御タイマ)を+1更新する(コード「IQNC (IY+R_DSPTIM)」)。ラベルR_DSPTIMは、IYレジスタの値「2800h」を基準とする点滅制御タイマ領域のオフセットアドレスである。ここでは、加算アドレスIY+R_DSPTIMの領域に記憶されている1バイトの値(普図保留数)を、図121Aのレジスタ(少なくとも汎用レジスタ)に格納することなく、直接+1更新できる。
行番号4520と行番号4530は、セグメントLED編集処理のA9202に対応する。行番号4520では、点滅制御タイマ領域として、加算アドレスIY+R_DSPTIMの領域の値(点滅制御タイマ)が、出力オンタイミング20hに一致するか否か比較判定する(コード「CHK (IY+R_DSPTIM),20H」)。即ち、出力オンタイミングを示す20hと論理積を取って、点滅制御タイマ領域の所定のビット(この場合はビット0を最下位としてビット5)が0であるか1であるかを判定する。なお、出力オンタイミング20h(00100000B)は、10進数で32であり128ms(=割込み周期(4ms)×32)に相当する。加算アドレスIY+R_DSPTIMの領域の値は4ms毎に+1更新されることから、そのビット5は128ms毎に0と1の交互変化を繰り返しており、前記比較判定を行うことによって所望のタイミングを知ることができる。比較判定が一致する場合(T)には、例えば所定のフラグをセットする。
行番号4530では、点滅制御タイマが出力オンタイミングに一致する場合、即ち、行番号4520の比較結果が一致(T)の場合に、ラベルEDIT10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号4570以降の命令を実行する(コード「JRS T,EDIT10」)。
行番号4540と行番号4550は、セグメントLED編集処理のA9204に対応する。行番号4540では、普図保留数表示テーブル2の先頭アドレス(ラベルD_FHOLED2に対応する数値)を、相対アドレス(D_FHOLED2−5000H)にして、HLレジスタにロードする(コード「LQDD HL,D_FHOLED2−5000H」)。これにより、普図保留数表示テーブル2が設定される。相対アドレスは、ユーザプログラム用のデータエリア(ROM内)の先頭アドレス「5000h」を基準とするアドレスである。
この「LQDD」命令は、オペランドにアドレス空間の先頭からの絶対アドレス(2バイト)ではなく、相対アドレス(実質的に1バイト)を用いるため、機械語命令のバイト数が通常のLD命令よりも1バイト分だけ減少する(例えば3バイトから2バイトへ減少)。なお、相対アドレス(例えば000h〜BFFh)は本来2バイトになるが、相対アドレスの上位バイトの値(例えば0〜B)に対応してニーモニック(機械語命令部)を異ならせば、実質的に相対アドレスは下位バイト(1バイト)で示せる。
行番号4550では、ラベルEDIT20に対応するROM内アドレスへジャンプ(分岐)する(コード「JR EDIT20」)。
行番号4570は、セグメントLED編集処理のA9203に対応し、普図保留数表示テーブル1の先頭アドレス(ラベルD_FHOLED1に対応する数値)を、相対アドレス(D_FHOLED1−5000H)にして、HLレジスタにロードする(コード「LQDD HL,D_FHOLED1−5000H」)。これにより、普図保留数表示テーブル1が設定される。
行番号4590から行番号4630は、セグメントLED編集処理のA9205に対応する。行番号4590では、行番号4110と同じく、加算アドレスIY+R_FHORYUの普図保留数記憶領域(RAM内)に格納された値(普図保留数)を、Aレジスタをロードする(コード「LQD A,(IY+R_FHORYU)」)。ラベルR_FHORYUは、IYレジスタの値「2800h」を基準とする普図保留数記憶領域のオフセットアドレスである。加算アドレスIY+R_FHORYUは、IYレジスタに格納された値(RAM先頭アドレス「2800h」)にラベルR_FHORYUに対応するオフセットアドレスを加算したものである。オフセットアドレスは、IYレジスタの値「2800h」を基準とする相対アドレス(差分アドレス)である。
オフセットアドレスは、1バイト(2バイトアドレス「xxxxh」の下位アドレスに相当する)で表せる範囲に制限され、行番号4590のコード「LQD A,(IY+R_FHORYU)」は2バイトの命令とすることができる。これにより、プログラム容量が削減できる。なお、オフセットアドレスを用いない場合には、アドレスは2バイトとなり行番号4590の命令は、3バイトの命令となる。
行番号4610では、普図保留数に対応する表示データとして、合計アドレス値HL+Aに対応する領域(1バイト)の値を、Aレジスタにロード(読み出し)する(コード「LQD A,(HL+A)」)。合計アドレス値は、HLレジスタの値(普図保留数表示テーブルの先頭アドレス)とAレジスタの値(普図保留数)との合計である。行番号4610では、普図保留数表示テーブルから普図保留数に対応して表示データが取得されることになる。
ここで、図139Cを参照して、普図保留数に対応する表示データについて説明する。図139C(I)は、普図保留表示器56のランプD15、D16の点灯態様(点灯、消灯、点滅)を示す。図139C(II)は、普図保留数表示テーブル1、2を示す。普図保留数表示テーブル1、2には、それぞれ、先頭アドレスから順に1バイトごとに、普図保留数1から4に対応する表示データ(1バイト)が並べられ記憶されている。従って、普図保留数表示テーブルの先頭アドレスと普図保留数との合計である合計アドレスには、普図保留数に対応する表示データが記憶されている。
保留数が0〜2なら、普図保留数表示テーブル1、2のどちらのテーブルでも表示データは同じになるため、普図保留表示器56は点滅しないが、保留数が3〜4なら、普図保留数表示テーブル1の表示データと普図保留数表示テーブル2の表示データは異なるため、普図保留表示器56は点滅する。ビット0を最下位とすると、本実施形態では、ランプD15を点灯させる場合に、表示データのビット5がオン「1」に設定され、ランプD16を点灯させる場合に、表示データのビット4がオン「1」に設定される。例えば、普図保留数が2では、表示データが「00110000B」であり、ビット4とビット5がオン「1」であり、普図保留表示器56のランプD15、D16を点灯させる。保留数3〜4で普図保留表示器56が点滅する場合、出力オンタイミングで点滅制御タイマ領域のビット5(又はビット4)が1となる間はランプD15(又は、ランプD16)が点灯し、0となる間はランプD15(又は、ランプD16)が消灯する。
行番号4620では、普図保留表示器56のセグメント領域(1バイト)としての加算アドレスIY+R_SEGDAT+3の領域の値と、「11001111B」の論理積をとり、セグメント領域のデータのビット4、5をゼロクリアする(コード「AQND (IY+R_SEGDAT+3),11001111B」)。
行番号4630では、普図保留数に対応する表示データとして、Aレジスタの値を普図保留表示器56のセグメント領域(加算アドレスIY+R_SEGDAT+3の領域)にセーブ(設定)する(コード「OR (IY+R_SEGDAT+3),A」)。
図139Bの従来構造のプログラムモジュールでは、行番号5010と行番号5020の2つのコード「LD HL,R_DSPTIM」「IQNC (HL)」が、図139Aの行番号4510のコード「IQNC (IY+R_DSPTIM)」に対応する。なお、「IQNC (HL)」は従来の命令ではない。図139Aの行番号4510のコードが機械語で2バイト「AA77」であるのに対して、この2つの命令は全体で4バイト必要になり、プログラム容量が増加している。特に、行番号5010では、R_DSPTIMは、オフセットアドレス(1バイト「77h」)ではなく絶対アドレス(2バイト「2877h」)として使用されているため、プログラム容量が増加する原因となっている。なお、図139Bのように、ROMに記憶される機械語では2バイトアドレスの先頭が下位バイト、次が上位バイトになっている。
また、従来構造のプログラムモジュール(図139B)では、行番号6000のコード「LD A,(R_FHORYU)」が、図139Aの行番号4590のコード「LQD
A,(IY+R_FHORYU)」に対応する。行番号6000では、R_FHORYUは、オフセットアドレス(1バイト「61h」)ではなく絶対アドレス(2バイト「2861h」)として使用されているため、コードのバイト数が行番号4590よりも1バイト増加する。従って、遊技制御プログラム全体のコード量も増加する。
また、従来構造のプログラムモジュール(図139B)では、行番号5050のコード「LD HL,D_FHOLED2」と行番号5080のコード「LD HL,D_FHOLED1」が、各々、図139Aの行番号4540のコード「LQDD HL,D_FHOLED2−5000H」と行番号4570のコード「LQDD HL,D_FHOLED1−5000H」に対応する。行番号5050と行番号5080のコードでは、アドレス指定を相対アドレス(基準アドレス「5000h」に対する差分、例えば「3F」「37」)ではなく、絶対アドレス(例えば「503F」「5037」)で行うため、コードのバイト数が1バイトだけ増加している(2バイトから3バイトへ)。従って、遊技制御プログラム全体のコード量も増加する。
また、従来構造のプログラムモジュール(図139B)では、図139Aの行番号4610のコード「LQD A,(HL+A)」がないため、行番号6000から6070にかけてプログラム数が増加している。
さらに、従来構造のプログラムモジュール(図139B)では、行番号6040と行番号6050の2つのコード「LD A,(R_SEGDAT+3)」「AND 11001111B」が、図139Aの行番号4620のコード「AQND (IY+R_SEGDAT+3),11001111B」に対応する。行番号6040と行番号6050では、2つのコードが使用されているため、コードのバイト数が行番号4620よりも1バイト増加する。
図140は、第13実施形態に係る外部情報編集処理(図75)の一部のプログラム構造を示すプログラムリストである。
行番号5500は、外部情報編集処理に対応するラベル(P_INFEDIT)であり、外部情報編集処理に対応するプログラムモジュールのROM内アドレス(先頭アドレス)を示す。
行番号5510から行番号5530は、外部情報編集処理のA9501からA9502に対応する。行番号5510では、加算アドレスIY+R_GLASSのガラス枠開放エラー領域(RAM内)に格納された値を、Aレジスタをロードする(コード「LQD A,(IY+R_GLASS)」)。ラベルR_GLASSは、IYレジスタの値「2800h」を基準とするガラス枠開放エラー領域のオフセットアドレスである。ガラス枠開放エラー領域(1バイト)の値は、ガラス枠開放エラー発生中であれば所定のビットが「1」にセットされている。
行番号5520では、加算アドレスIY+R_WAKUの本体枠開放エラー領域(RAM内)に格納された値とAレジスタの値の論理和を演算する(コード「OR A,(IY+R_WAKU)」)。ラベルR_WAKUは、IYレジスタの値「2800h」を基準とする本体枠開放エラー領域のオフセットアドレスである。本体枠開放エラー領域(1バイト)の値は、本体枠開放エラー発生中であれば所定のビットが「1」にセットされている。
行番号5530では、ガラス枠開放エラー又は本体枠開放エラーが発生中で論理和がゼロでない場合(F)に、ラベルINFEDIT10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号5570以降の命令を実行する(コード「JRS F,INFEDIT10」)。
行番号5540は、外部情報編集処理のA9503とA9504に対応する。行番号5540では、外部情報出力データ領域(1バイト)としてのアドレスR_INFDAT2の領域の値と、クリア用の値(クリアデータ)「11001111B」の論理積をとり、扉・枠開放信号とセキュリティ信号のオフデータを外部情報出力データ領域にセーブする(コード「AQND (R_INFDAT2),11001111B」)。外部情報出力データ領域は、ビット毎に各種の異常の検出状態(異常信号のオン/オフ)を示す異常制御領域となる。外部情報出力データ領域(異常制御領域)のビット4が扉・枠開放信号の異常状態(オン)を設定するビットであり、ビット5がセキュリティ信号の異常状態(オン)を設定するビットであるが、ここでゼロクリアされる。
行番号5550では、ラベルINFEDIT20に対応するROM内アドレスへジャンプ(条件分岐)して、行番号5600以降の命令を実行する(コード「JR INFEDIT20」)。
行番号5570は、外部情報編集処理のA9505に対応する。行番号5570では、外部情報出力データ領域(アドレスR_INFDAT2の領域)の値と扉・枠開放信号のオンデータ「00010000B」との論理和を演算して、外部情報出力データ領域(異常制御領域)に扉・枠開放信号のオンデータをセーブ(オン設定)する(コード「OQR
(R_INFDAT2),00010000B」)。
行番号5580では、外部情報編集処理のA9506に対応する。行番号5580では、試験信号出力データ領域(アドレスR_SKNDATの領域)の値と遊技機エラー状態信号のオンデータ「01000000B」との論理和を演算して、試験信号出力データ領域(異常制御領域)に遊技機エラー状態信号のオンデータをセーブ(オン設定)する(コード「OQR (R_SKNDAT),01000000B」)。
行番号5600は、外部情報編集処理のA9507に対応する。行番号5600では、加算アドレスIY+R_SECUTIMのセキュリティ信号制御タイマ領域の値(セキュリティ信号制御タイマ)が0でなければ−1更新し、0であれば0を維持する(コード「DQCP (IY+R_SECUTIM),0」)。ラベルR_SECUTIMは、セキュリティ信号制御タイマ領域のオフセットアドレスである。この「DQCP」命令は、セキュリティ信号制御タイマ領域に記憶された値をジレスタに取得することなく減少させる。
行番号5610は、外部情報編集処理のA9508に対応する。行番号5610では、行番号5600の演算結果がゼロ(Z)の場合、即ちセキュリティ信号制御タイマが0の場合に、ラベルINFEDIT30に対応するROM内アドレスへジャンプ(条件分岐)して、行番号5640以降の命令を実行する(コード「JR Z,INFEDIT30」)。
行番号5620では、外部情報編集処理のA9509に対応する。セキュリティ信号のオンデータ「00100000B」を、アドレスR_INFDAT2の外部情報出力データ領域(異常制御領域)にセーブ(オン設定)する(コード「OQR (R_INFDAT2),00100000B」)。
上記のように、一般的に「AQND (R_ERR),・・・0・・・・B」と記載されるコードは、ラベルR_ERRのアドレス値が示す異常制御領域(RAM内)に記憶された値と、クリア用の値(クリアデータ)「・・・0・・・・B」の論理積をとり、異常制御領域の所定のビットをクリアする。異常制御領域の各ビットは、所定の異常(エラー信号)が発生したことを示す。従って、異常制御領域に記憶された値をレジスタに取得する命令を実行することなく、異常が発生したことを示すビットをクリアできる。このため、レジスタに不具合が生じても、異常制御領域において異常が発生したことを示すビットを確実にクリアできる。また、遊技制御プログラム全体のコード量が削減される。
また、上記のように、一般的に「OQR (R_ERR),・・・1・・・・B」と記載されるコードは、ラベルR_ERRのアドレス値が示す異常制御領域(RAM内)に記憶された値と、セット用の値(設定データ)「・・・1・・・・B」の論理和をとり、異常制御領域の所定のビットをオン設定する。従って、異常制御領域に記憶された値をレジスタに取得する命令を実行することなく、異常が発生したことを示すビットをオン設定できる。このため、レジスタに不具合が生じても、異常制御領域において異常が発生したことを示すビットを確実にオン設定できる。また、遊技制御プログラム全体のコード量が削減される。
なお、CPUコア102に(命令解釈実行回路1242)に、コード「AQND (R_ERR),・・・0・・・・B」やコード「OQR (R_ERR),・・・1・・・・B」を実行する専用論理回路を設けてよい。
[第13実施形態の作用・効果]
第13実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所要の演算処理を行う演算処理手段(例えばCPU111a)と、複数の汎用レジスタからなるレジスタ群(レジスタバンク0、1)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。更新情報記憶手段は、複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。更新情報記憶手段は、所定のアドレスに対応して設けられて当該遊技機の異常の検出状態をビット単位で示す異常制御領域を備える。演算処理手段は、汎用レジスタを使用せずに更新情報記憶手段のいずれかの記憶領域の所定のビットを設定する命令(例えば「OQR」命令)を実行可能に構成される。演算処理手段は、当該遊技機の異常が検出された場合に、この命令によって、更新情報記憶手段の異常制御領域の所定のビットを設定する。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような命令を含んでよい。
このように、第13実施形態において、汎用レジスタに不具合が生じても、異常が発生したことを示す異常制御領域のビットを確実に設定できる。そして、レジスタに異常制御領域の値を格納する命令が不要なため、遊技制御プログラム全体のコード量が削減される。
また、第13実施形態によると、遊技制御手段(遊技制御装置100)は、遊技制御プログラムを記憶するとともに、当該遊技制御プログラム用のデータを記憶するデータエリアを有する記憶手段(例えばROM111b)を備える。遊技制御装置100は、演算処理手段のアドレス空間におけるデータエリアの先頭アドレスを格納するレジスタ(DPレジスタ)を備える。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、レジスタ(DPレジスタ)に格納された先頭アドレスを基準とする相対アドレスによって、データエリア内の領域を指定する命令(例えば「LQDD HL,D_FHOLED2−5000H」)を含む。
従って、アドレス空間の先頭からの絶対アドレス(例えば2バイト)ではなく、レジスタに格納されたデータエリアの先頭アドレスを基準とする相対アドレス(例えば1バイト)によって、データエリア内の領域を指定する命令を使用できる。このため、機械語命令(機械語コード)のバイト数が減少するとともに、遊技制御プログラム全体のコード量が削減される。
また、第13実施形態によると、遊技制御手段(遊技制御装置100)は、演算処理手段のアドレス空間における更新情報記憶手段の先頭アドレスを格納する先頭アドレス指定レジスタ(IYレジスタ)を備える。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、先頭アドレス指定レジスタに格納された先頭アドレスを基準とするオフセットアドレスによって、更新情報記憶手段内の領域を指定する命令(例えば「LQD A,(IY+R_FHORYU)」)を含む。
従って、アドレス空間の先頭からの絶対アドレス(例えば2バイト)ではなく、レジスタに格納された更新情報記憶手段の先頭アドレスを基準とするオフセットアドレス(例えば1バイト)によって、更新情報記憶手段内の領域を指定する命令を使用できる。このため、機械語命令(機械語コード)のバイト数が減少するとともに、遊技制御プログラム全体のコード量が削減される。
さらに、記憶手段(例えば遊技制御装置100のCPU111a)は、所定の始動条件の成立に基づき、変動表示ゲームの実行権利となる始動記憶の数を所定の上限数まで更新情報記憶手段の保留数領域に記憶させることができる。演算処理手段(例えばCPU111a)は、先頭アドレス指定レジスタに格納された先頭アドレスを基準とするオフセットアドレスによって、更新情報記憶手段のいずれかの記憶領域を指定し、当該記憶領域の値を所定の汎用レジスタに読み出す命令(例えば「LQD A,(IY+R_FHORYU)」)を実行可能に構成される。演算処理手段(例えばCPU111a)は、この命令によって、保留数領域に記憶された始動記憶の数を読み出す。
従って、アドレス空間の先頭からの絶対アドレス(例えば2バイト)ではなく、レジスタに格納された更新情報記憶手段の先頭アドレスを基準とするオフセットアドレス(例えば1バイト)によって、更新情報記憶手段内の保留数領域を指定する命令を使用できる。このため、機械語命令(機械語コード)のバイト数が減少するとともに、遊技制御プログラム全体のコード量が削減される。特に、保留数領域は遊技制御プログラムの各種処理において参照されることが多いため、コード量の削減の利益が多い。
[第14実施形態]
これまでの遊技機では、複数の命令を組み合わせて条件分岐と分岐先での各実行内容をCPUに実行させていたが、本実施形態では、1つの命令によって条件分岐と分岐先での各実行内容とをCPUに実行させる。その結果、従来と同一の制御内容であっても、プログラムのコード量を従来よりも小さくすることができ、当該プログラムを記憶するROMにおいて、プログラムコードの記憶に要する容量をコンパクトにすることができる。なお、以下で述べる以外の構成は、第1実施形態から第13実施形態までの実施形態と共通の構成でよい。以下、プログラムコード(プログラムリスト)を参照しつつ説明する。
図141は、第14実施形態に係るプログラム構造の一部を説明するプログラムリストである。ここでは、一例として本実施形態特有の命令を使用する乱数更新処理2のプログラムコードを説明するとともに、本実施形態の要旨となる「IQNCW」「IQCP」「DQCP」の3個の命令(ニーモニック)について主に説明する。乱数更新処理2は「P_RNDINC2」とラベルされ、メイン処理(図124A)のステップA10402とタイマ割込み処理(図125)のステップA1307において呼び出される。
行番号6010のコード「IQNCW (R_RNDHEN1)」は、乱数更新処理2(図126)のA10601に対応する。このコードは、「IQNCW」という命令(ニーモニック)によって、2バイト乱数である変動パターン乱数1(R_RNDHEN1)を2バイトのまま値を+1加算する内容(命令)である。ここで、R_RNDHEN1は、変動パターン乱数1が格納される(記憶される)乱数領域の先頭アドレスを示すラベルであり、以下に登場するR_RNDHEN2は、変動パターン乱数2が格納される(記憶される)乱数領域のアドレスを示すラベルであり、R_RNDHEN3は、変動パターン乱数3が格納される(記憶される)乱数領域のアドレスを示すラベルである。乱数領域は、当該乱数領域において乱数が加算又は減算されるため乱数カウンタ領域とも呼ばれる。なお、本明細書では、変動パターン乱数1〜3は、演算処理手段(CPU111a、CPUコア102)によって更新される情報が記憶される更新情報記憶手段であるRAM111cの記憶領域に格納されるが、他の情報記憶手段(レジスタを除く)に格納されてもよい。
つまり、「IQNCW」という命令は、アドレス先の領域に記憶されている2バイトの値を、図121Aのレジスタ(少なくとも汎用レジスタ)を使用せずに(アドレス先の領域に記憶されている値を図121Aのレジスタに一旦取り込むことなく)、直接+1加算する命令である。なお、アドレス(番地)に対応する記憶領域をアドレス先の領域又はアドレス先と呼ぶ。このため、「IQNCW」という命令を用いることで、レジスタへのロード、レジスタでの加算処理、アドレス先へのロードという3個のコードの記述が不要となり、従来のプログラムに比べてプログラムがコンパクトになる。また、「IQNCW」によってアドレス先に記憶された値を直接加算することは、レジスタを使用しないため、レジスタへのロードからアドレス先へのロードの間に割込み処理が発生することを禁止するか、割込みを許可する場合のスタックへの退避もしくはバンクの切り替えを行う必要がない。なお、図121Aのレジスタとは、命令解釈実行回路1242の外部にある汎用レジスタ(Wレジスタ、Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、LレジスタIXレジスタ、IYレジスタ)や特殊用途レジスタ(フラグレジスタ、DPレジスタ、SPレジスタ、PCレジスタ)である。
なお、後述するように、「IQNCW」と類似する命令として、所定の2バイト領域をデクリメントする「DQECW」という命令があり、「DQECW」は、図121Aのレジスタ(少なくとも汎用レジスタ)を使用せずにアドレス先の領域に記憶されている2バイトの値を直接−1減算する命令である。また、アドレス先の2バイト領域に対する加算命令である「IQNCW」と類似する命令としてアドレス先の1バイト領域に対する加算命令である前述した「IQNC」という命令があり、「DQECW」に類似する命令としてアドレス先の1バイト領域に対する減算命令である「DQEC」という命令がある。
行番号6030のコード「IQCP (R_RNDHEN2),240」は、図126のA10602に対応する。このコードは、「IQCP」という命令によって、R_RNDHEN2の値(アドレス先に格納されている変動パターン乱数2の値)が240よりも小さい場合にR_RNDHEN2の値を+1加算更新(インクリメント処理)し、R_RNDHEN2の値が240よりも小さくない場合にR_RNDHEN2に0を代入して変動パターン乱数2を初期化する内容である。つまり、変動パターン乱数2は、240を上限として0から240の範囲を循環し、240に達した後に0に戻る。
改めて「IQCP」という命令を説明すると、オペランドにおけるカンマの前が対象となる値(アドレス先に格納されている値)と定義し、カンマの後が判定値(ここでは240)と定義され、対象となるアドレスに記憶された値が判定値よりも小さいか否かを判定するとともに、小さい場合には対象となるアドレスに記憶された値をインクリメントし、小さくない場合には初期値として0を対象となるアドレスに記憶された値に代入して初期化する命令である。
従来であれば、当該命令を実行するためには、R_RNDHEN2が240よりも小さい場合と240よりも小さくない場合とに条件を分けて条件分岐するコード(「JP」、「JR」等)が記述されていた。さらに、条件の分岐先の命令として、R_RNDHEN2が240よりも小さい場合にはR_RNDHEN2をインクリメントするコートが記述され、R_RNDHEN2が240よりも小さくない場合には、R_RNDHEN2に0を代入するコードが記述されていた。つまり、従来は少なくとも3個のコード(命令)が記述されていたが、本実施形態では1つのコードによって記述されるため、プログラム容量が削減される。なお、例えば、アドレスを直接指定する場合のコード「IQCP (vw),n」(vwはアドレスの直値)の機械語命令は5バイトであるが、アドレスを任意のレジスタqq(=WA,BC,DE,HL,IX,IY)に一旦入れてからアドレスを間接指定する場合のコード「IQCP (qq),n」の機械語命令は3バイトになる(但しアドレスをペアレジスタqqにロードする命令が必要になる)。
行番号6050のコード「DQCP (R_RNDHEN3),238」は、図126のA10603に対応する。このコードは、「DQCP」という命令によって、R_RNDHEN3の値(アドレス先に格納されている変動パターン乱数3の値)が0である場合にR_RNDHEN3に238を代入してR_RNDHEN3を初期化し、それ以外の場合(つまり0以外の場合)にはR_RNDHEN3の値を−1減算更新(デクリメント処理)する内容である。つまり、変動パターン乱数3は、238を上限として238から0の範囲を循環し、デクリメントの結果0に達した後に238に戻る(初期値の238がセットされる)。このように「DQCP」という命令では、所定アドレスの領域の値の0判定を行い、所定アドレスの領域の値が0の時にオペランドで指定した数値を所定領域に格納する。
改めて「DQCP」という命令を説明すると、カンマの前が対象となる値(アドレス先に格納されている値)であり、カンマの後が初期値(ここでは238)となり、対象となるアドレスに記憶された値が0であるか否かを判定するとともに、0ではない場合には対象となるアドレスに記憶された値をデクリメントし、0である場合には初期値を対象となるアドレスに記憶された値に代入して初期化する命令である。
「DQCP」の命令も「IQCP」の命令と同様に、従来は少なくとも3個のコードで記述されていた内容が1個のコードで記述が可能となるものである。また、「DQCP」及び「IQCP」は、「IQNCW」と同様に、レジスタ1220A、1220Bを使用せずにCPUコア102に(命令解釈実行回路1242に)命令内容を実行させるものであることから、割込み禁止の設定が不要であるか、または、レジスタの値のPUSH及びPOP命令が不要となるか、もしくは、バンク切り替えが不要となる。なお、CPUコア102に(命令解釈実行回路1242に)、「DQCP」「IQCP」「IQNCW」の命令を実行する専用論理回路を設けてよい。
なお、ここでは、本実施形態の要旨となる「IQNCW」「IQCP」「DQCP」の3個の命令について、乱数の更新を対象としたコードを説明したが、「IQNCW」「IQCP」「DQCP」は、それぞれタイマの更新やカウンタの更新に用いてもよい。
さらに、「IQNCW」は、アドレス値そのものを加算するものでもよく、「IQCP」「DQCP」は、それぞれ、アドレス値そのものを判定して判定の結果に応じてアドレス値を初期化する/アドレス値を加算(増加)もしくは減算(減少)することができる。
また、ここに挙げた乱数更新処理2のプログラムコードは、乱数更新処理2における制御内容を実現するための一例であり、変動パターン乱数1はインクリメントによって乱数値を更新し、変動パターン乱数2はインクリメントによって乱数値を更新し、変動パターン乱数3はデクリメントによって乱数値を更新したが、各乱数値の更新にあたり、インクリメントを行う命令を用いるかデクリメントを行う命令を用いるかは、任意に組み合わせることができる。
図142は、第14実施形態に係る特図ゲーム処理の一部を説明するプログラムリストである。ここでは、一例として、本実施形態特有の命令を使用する特図ゲーム処理のプログラムコードを説明するとともに、本実施形態の要旨となる「DQECW」という1個の命令(ニーモニック)について主に説明する。特図ゲーム処理はラベル「P_TGAMEPRC」に対応し、タイマ割込み処理(図8及び図125)のステップA1309において呼び出される。
行番号6510のコードは、特図ゲーム処理(図21)のA2601に対応する。このコードは、ラベル「P_SIDOSW」に対応するサブルーチン(始動口スイッチ監視処理)を呼び出す内容である。
行番号6520のコードは、図21のA2602に対応する。このコードは、ラベル「P_CNTSW」に対応するサブルーチン(大入賞口スイッチ監視処理)を呼び出す内容である。
行番号6540のコード「DQCPW (R_TGAME+1),0」は、図21のA2603に対応する。前述のように、ラベルR_TGAMEは、特図ゲーム処理番号(A2606)を記憶する特図ゲーム処理番号領域のアドレス(ここでは絶対アドレス)を示し、当該アドレスに1を加算したアドレス「R_TGAME+1」は、2バイト領域である特図ゲーム処理タイマ領域の先頭アドレス(ここでは絶対アドレス)を示す。このコードは、アドレス「R_TGAME+1」の領域についての命令となる。具体的には、R_TGAME+1のアドレス先の領域の値が0でなければ、2バイト数値である特図ゲーム処理タイマの値を−1更新し、同アドレス先の領域の値が0であれば、特図ゲーム処理タイマの値としてオペランドで指定した数値(=0)を代入して0を維持する命令である。このように「DQCPW」という命令では、所定アドレスの領域の値の0判定を行い、所定アドレスの領域の値が0の時にオペランドで指定した数値を所定領域に格納する。なお、「DQCPW (IY+R_TGAME+1),0」という加算アドレスを使用したコードも使用可能である。「R_TGAME+1」として絶対アドレスを使用したコード「DQCPW (R_TGAME+1),0」は機械語命令で6バイトであるのに対して、「R_TGAME+1」としてオフセットアドレスを使用したコード「DQCPW (IY+R_TGAME+1),0」は機械語命令で5バイトとなり、バイト数(容量)が小さい。
行番号6550のコードは、図21のA2604に対応し、R_TGAME+1のアドレスの先(特図ゲーム処理タイマ領域)の値が0でなければ(タイムアップでなければ)、行番号6610のラベル「TGAMEPRC10」に対応するROM内アドレスへジャンプして行番号6620以降の命令を実行し、そうでなければ(タイムアップであれば)次の行のコードを読み込む内容である。
行番号6570のコードは、図21のA2605に対応し、HLレジスタに特図ゲームシーケンス分岐テーブルの先頭アドレスD_TGAMEPRCをロードする内容である。
行番号6580から行番号6600のコードは、図21のA2606とA2607に対応する。
行番号6580では、加算アドレスIY+R_TGAMEの特図ゲーム処理番号領域(RAM内)に格納された値(特図ゲーム処理番号)を、Aレジスタにロードする(コード「LQD A,(IY+R_TGAME))」)。ラベルR_TGAMEは、IYレジスタの値「2800H」を基準とする特図ゲーム処理番号領域のオフセットアドレスである。
行番号6590では、Aレジスタの値である特図ゲーム処理番号を2倍する。
行番号6600では、まず、HLレジスタに格納された特図ゲームシーケンス分岐テーブルの先頭アドレスに2倍した後のAレジスタの値を加算することによって、合計アドレスHL+Aを取得する。2倍する理由は、特図ゲームシーケンス分岐テーブル内の分岐先アドレス値が2バイトであるため、偶数値を加算する必要があるためである(特図ゲーム処理番号は奇数値を含む)。
そして、行番号6600のコード「CALL (HL+A)」は、合計アドレスHL+Aの領域(特図ゲームシーケンス分岐テーブル内の領域)に記憶された分岐先アドレス値によって、処理番号によるサブルーチンコールを行う内容である。なお、このコードによってHLレジスタの値は(HLレジスタの値+Aレジスタの値)に変化せず、特図ゲームシーケンス分岐テーブルの先頭アドレスの値が維持される。サブルーチンコールは、図21のA2608からA2618に対応する。分岐先アドレス値は、サブルーチンの先頭アドレスである。なお、本実施形態では、特図ゲーム処理における特図ゲームシーケンステーブルの分岐処理において、「CALL (HL+A)」の命令が、合計アドレスHL+Aの領域に記憶された分岐先アドレス値を参照してサブルーチンコールを行うことを説明したが、「CALL (HL+A)」は、普図ゲーム処理における普図ゲームシーケンステーブルの分岐処理において用いられてもよい。つまり、図61に示す普図ゲーム処理のA7607のコードとして「CALL (HL+A)」が用いられる。
続いて、行番号6620のコードは、図21のA2619に対応し、行番号6630のコードは、図21のA2620に対応する。また、行番号6650のコードは、図21のA2621に対応し、行番号6660のコードは、図21のA2622に対応する。
ここで、改めて「DQCPW」という命令を説明すると、カンマの前が対象となる値(アドレス先に格納されている2バイトの値)であり、カンマの後が初期値(ここでは0)となり、対象となる値が0であるか否かを判定するとともに、0ではない場合には対象となる値をデクリメントし、0である場合には初期値を対象となる値に代入する命令である。「DQCPW」は、上述の「DQCP」の2バイト版の命令となる。つまり、対象となる値について2バイト分を直接判定し、判定の結果に応じて対象となる値について2バイトの値から直接−1更新をする命令である。
また、「IQCP」の2バイト版の命令として「IQCPW」も2バイトの値を格納する領域の操作のために、本願発明において特に考案されるものであり、対象となる値について2バイト分を直接判定し、判定の結果に応じて対象となる値について2バイトの値から直接+1更新をする命令である。即ち、「IQCPW」命令では、上限値を定義し、所定領域に格納された2バイトの値が上限値よりも小さい場合に直接+1更新し、上限値に達している場合に2バイトの値を0に戻す。
図143は、第14実施形態に係る特図ゲームシーケンス分岐テーブルの一部を説明するプログラムリストである。上述のとおり、特図ゲームシーケンス分岐テーブルは、「D_TGAMEPRC」とラベルされ、特図ゲーム処理のサブルーチンコールのために参照される。
コードの中に「DW」のニーモニックがあるが、このニーモニックは、テーブルの1段が2バイトのデータであることをアセンブラに指定する擬似命令である。
図143では、特図ゲームシーケンス分岐テーブルは、サブルーチン名(ラベル)を分岐先アドレス値に対応付けて設定するための擬似命令の命令群として示されているが、実際には、特図ゲームシーケンス分岐テーブルは、これら命令群によってROM111b内に順番に設定(記憶)される分岐先アドレス値(サブルーチンの先頭アドレス)のリストである。即ち、図143のラベル(P_TUSUL、P_TSTOPなど)を分岐先アドレス値に置き換えたものがROM111b内の特図ゲームシーケンス分岐テーブルとなる。
行番号7010の擬似命令は、図21のA2608のサブルーチンの分岐先アドレス値の設定に対応し、行番号7020の擬似命令は、A2609のサブルーチンの分岐先アドレス値の設定に対応する。また、行番号7030の擬似命令は、A2610のサブルーチンの分岐先アドレス値の設定に対応し、行番号7040の擬似命令は、A2611のサブルーチンの分岐先アドレス値の設定に対応する。また、行番号7050の擬似命令は、A2612のサブルーチンの分岐先アドレス値の設定に対応し、行番号7060の擬似命令は、A2613のサブルーチンの分岐先アドレス値の設定に対応する。
また、行番号7070の擬似命令は、A2614のサブルーチンの分岐先アドレス値の設定に対応し、行番号7080の擬似命令は、A2615のサブルーチンの分岐先アドレス値の設定に対応する。また、行番号7090の擬似命令は、A2616のサブルーチンの分岐先アドレス値の設定に対応し、行番号7100の擬似命令は、A2617のサブルーチンの分岐先アドレス値の設定に対応し、行番号7110の擬似命令は、A2618のサブルーチンの分岐先アドレス値の設定に対応する。
[第14実施形態の作用・効果]
第14実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所定の演算処理を行う演算処理手段(例えばCPU111a)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。更新情報記憶手段は、複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。更新情報記憶手段は、所定のアドレスに対応して設けられて、変動表示ゲームの態様を決定するための2バイトの乱数値(例えば変動パターン乱数1)を記憶可能な乱数領域、又は、遊技制御の進行に関して計時する2バイトのタイマ値(例えば特図ゲーム処理タイマの値)を記憶可能な2バイトタイマ領域を備える。演算処理手段は、対象となるアドレスに記憶された2バイトの値を汎用レジスタに格納することなく加算する加算命令(例えば「IQNCW (R_RNDHEN1)」)を実行可能に構成される。また、演算処理手段は、対象となるアドレスに記憶された2バイトの値を汎用レジスタに格納することなく減算する減算命令(例えば「DQCPW (R_TGAME+1),0」)を実行可能に構成される。演算処理手段は、加算命令又は減算命令によって、乱数領域(例えば変動パターン乱数1の乱数生成領域)の2バイトの乱数値、又は、2バイトタイマ領域(例えば特図ゲーム処理タイマ領域)の2バイトのタイマ値を加算又は減算する。
加算命令又は減算命令は、例えば、「IQNCW」「DQECW」「IQCPW」「DQCPW」である。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような読出命令を含んでよい。加算命令又は減算命令は、汎用レジスタに格納することなく、即ち、汎用レジスタを使用せずに、命令の対象となる値(アドレス先の記憶領域に記憶された値)を直接加算(増加)または減算(減少)する命令である。なお、「IQCP」「DQCP」「IQNC」「DQEC」は、対象となるアドレスに記憶された1バイトの値を汎用レジスタに格納することなく加算又は減算する加算命令又は減算命令であり、「IQNCW」「DQECW」「IQCPW」「DQCPW」と同様の効果を奏する。
「IQCP」「DQCP」「IQNC」「DQEC」「IQNCW」「DQECW」「IQCPW」「DQCPW」等の加算命令又は減算命令のいずれかの命令を乱数値の更新に用いる場合には、乱数カウンタ領域(乱数領域)に記憶された値を汎用ジレスタに取得することなく乱数カウンタを増加または減少させるため、汎用レジスタの不具合によって乱数カウンタの更新が行われずに乱数に偏りが生じて、当否に偏りが発生することを回避することができる。なお、CPUコア102に(命令解釈実行回路1242)に、これらの命令を実行する専用論理回路を設けてよい。また、これら命令によるコードは、アドレスを直値vwで直接指定する場合のコード(例えば「IQCP (vw),n」)だけでなく、アドレスを任意のレジスタqq(=WA,BC,DE,HL,IX,IY)に一旦入れてからアドレスを間接指定する場合のコード(例えば「IQCP (qq),n」)であってもよい。
また、上記加算命令又は減算命令のいずれかをタイマの更新に用いる場合には、レジスタの不具合によってタイマが更新されずにゲームの進行が進まなくなるという事態を回避することができ、カウンタの更新に用いる場合には、入賞の発生が反映されない、所定のスタート回数で時短が終了せずに継続し続けるという事態を回避することができる。
また、これらの加算命令又は減算命令の特徴として、従来は複数のコードを記述する必要があったところ、本実施形態では1つのコードに表すことが可能であり、プログラム容量を削減することができる。例えば、「IQCP」命令なら、1つのコード用に5バイトだけ必要となり、「IQCPW」命令なら1つのコード用に6バイトだけ必要となるが、複数のコードは必要ないため、全体としてプログラムがコンパクトになりプログラム容量が減少する。
また、汎用レジスタを使用せずに命令の対象となる値(アドレス先に記憶された値)を直接加算(増加)または減算(減少)するため、当該1つのコードが表す処理を実行する期間において、割込みの禁止を設定して汎用レジスタの値を保護する必要がなく、その分の(割込み禁止の設定と割込み許可の設定に要するコード量の)プログラム容量を削減することができる。
さらに、汎用レジスタを使用せずに命令の対象となる値を加算または減算するため、当該1つのコードが表す処理を実行する期間において、汎用レジスタの値をスタックへ退避させることやレジスタバンクを切り替えて汎用レジスタの値を保護する必要がなく、その分の(汎用レジスタの値を退避及び復帰させるコード量もしくは、バンク切り替えとバンクを戻すコード量の)プログラム容量を削減することができる。
また、第14実施形態によると、更新情報記憶手段は、所定のアドレスに対応して設けられて、変動表示ゲームの態様を決定するための乱数値を記憶可能な乱数カウンタ領域((例えば変動パターン乱数2、3の乱数領域(乱数生成領域))を備える。演算処理手段は、対象となるアドレスに記憶された値を汎用レジスタに格納することなく所定の判定値と比較し、比較の結果、所定の判定値の方が小さい場合には、対象となるアドレスに記憶された値にインクリメント処理を実行し、比較の結果、所定の判定値の方が小さくない場合には、対象となるアドレスに記憶された値を初期化するインクリメント命令(例えば「IQCP (R_RNDHEN2),240」)を実行可能に構成される。演算処理手段は、インクリメント命令によって、乱数カウンタ領域の値を所定の判定値と比較し、所定の判定値の方が小さい場合には乱数カウンタ領域の値にインクリメント処理を実行し、所定の判定値の方が小さくない場合には乱数カウンタ領域の値を初期化する。
或は、演算処理手段は、対象となるアドレスに記憶された値を汎用レジスタに格納することなくゼロである否かを判定し、判定の結果が肯定である場合には、対象となるアドレスに記憶された値を初期化し、判定の結果が否定である場合には、対象となるアドレスに記憶された値にデクリメント処理を実行するデクリメント命令(例えば「DQCP (R_RNDHEN3),238」)を実行可能に構成される。演算処理手段は、デクリメント命令によって、乱数カウンタ領域の値がゼロである否かを判定し、ゼロである場合には乱数カウンタ領域の値を初期化し、ゼロでない場合には乱数カウンタ領域の値にデクリメント処理を実行する。
このように、第14実施形態において、インクリメント命令やデクリメント命令を用いることで、汎用レジスタへのロード、汎用レジスタでの加算処理や比較処理(判定処理)、乱数カウンタ領域(アドレス先の領域)へのロードという3個のコードの記述が不要となり、従来のプログラムに比べてプログラムがコンパクトになりプログラム容量が減少する。また、インクリメント命令やデクリメント命令によって、乱数カウンタ領域(アドレス先の領域)に記憶された値を直接加算や直接減算することは、汎用レジスタを使用しないため、割込み処理が発生しても問題が生じない利点がある。
また、第14実施形態によると、遊技制御プログラム記憶手段は、一のアドレスによって特定される記憶領域を複数備えるテーブル領域を備える。例えば、テーブル領域とは、データエリア内の特図ゲームシーケンス分岐テーブルを記憶する領域である。テーブル領域は、記憶領域ごとに、遊技の進行に伴って選択されるサブルーチンのアドレスが記憶されている。遊技制御手段は、テーブル領域の先頭のアドレスを格納する第1レジスタと、遊技の進行に応じて取得される値を格納する第2レジスタと、を備える。演算処理手段は、第2レジスタが記憶する値(特図ゲーム処理番号に対応)を第1レジスタが記憶する値(テーブル領域の先頭アドレス値)に加算したアドレス値を導出し、導出されたアドレス値に記憶されるアドレスの処理を呼び出す命令(例えば「CALL (HL+A)」)を実行可能に構成される。演算処理手段は、この命令によって、テーブル領域内の特定の記憶領域に記憶されるアドレスのサブルーチンを呼び出して遊技の進行を制御する。なお、命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような命令を含んでよい。
このように、第14実施形態において、サブルーチンのアドレスを算出するだけの命令を単独で設けることなく、サブルーチンコールが実行できるため、プログラム容量(コード量)を削減することができる。
[第15実施形態]
第15実施形態では、アドレス先に記憶される値を、図121Aのレジスタ(少なくとも汎用レジスタ)に格納することなく、所定の値と比較する命令である「CQPW」と「CQHKW」について説明する。以下で述べる以外の構成は、第1実施形態から第14実施形態までの実施形態と共通の構成でよい。以下、プログラムコード(プログラムリスト)を参照しつつ説明する。
図144は、第15実施形態に係るプログラム構造の一部を説明するプログラムリストである。ここでは、一例として本実施形態特有の命令を使用する特図ゲーム処理の変形例1にあたるプログラムコードを説明するとともに、本実施形態の要旨となる「CQPW」という命令について主に説明する。
第15実施形態における特図ゲーム処理の変形例1のコードは、特に、図21のA2603からA2604に対応する行番号7540から行番号7570が、図142に示す第14実施形態における特図ゲーム処理のコードと相違するため、以下に説明する。
具体的には、行番号7540のコード「CQPW (R_TGAME+1),0」は、「CQPW」という命令によって、アドレス「R_TGAME+1」(ここでは絶対アドレス)に対応する2バイトの特図ゲーム処理タイマ領域に記憶される特図ゲーム処理タイマの値(判定対象となる値)を比較値(ここでは0)と比較する内容(命令)である。
「CQPW」という命令は、オペランドにおけるカンマの前が判定対象となる値(判定対象値)と定義され、カンマの後が比較値(ここでは0)と定義される。そして、判定対象値と比較値とを比較した結果、判定対象値と比較値とが同一であるか、同一ではないかを判定する命令である。
行番号7550のコード「JR Z,TGAMEPRC10」は、判定の結果が同一である場合(特図ゲーム処理タイマがタイムアップである場合)に、ラベルTGAMEPRC10(ラベルTGAMEPRに対応するアドレス)へとジャンプする内容である。
行番号7560のコード「DQECW (R_TGAME+1)」は、上記の判定の結果が同一ではない場合(特図ゲーム処理タイマがタイムアップではない場合)に、2バイト領域に記憶される特図ゲーム処理タイマの値から−1更新(1だけ減算)する処理である。
行番号7570のコード「JR NZ,TGAMEPRC20」は、上記の判定の結果が同一ではない場合に、TGAMEPRC20とラベルされるコードへとジャンプする内容である。
このように、「CQPW」は、定義された判定対象値と所定の比較値とを比較して、同一であるか、同一ではないかの判定結果(比較の結果)を返す命令である。
図145は、第15実施形態に係る特図ゲーム処理の変形例2のプログラムリストである。ここでは、行番号8040にコードされた「CQHKW」命令を説明する。なお、当該特図ゲーム処理の変形例2のコードは、図144に示す特図ゲーム処理の変形例1のコードと、行番号8040のみが相違する。
行番号8040のコード「CQHKW (R_TGAME+1)」は、「CQHKW」という命令によって、2バイト領域に記憶される特図ゲーム処理タイマの値が所定値であるかを(確認して)判定する命令である。所定値(所定の設定値)は、例えば、0が定義される。そのため、当該コードは、特図ゲーム処理タイマの値が0であるかを判定する内容となっている。
そして、CQHKWによる判定の結果として、タイマの値が0と同一であればTGAMEPRC10へジャンプし(行番号8050のコードによる)、同一でなければタイマの値を−1更新し(行番号8060のコードによる)、TGAMEPRC20へジャンプする(行番号8070のコードによる)。
「CQPW」「CQHKW」は、ともに、アドレス先の領域の値をレジスタに取り込むことなく判定処理を実行できる命令となっており、アドレス先の領域の値をレジスタにロードし、判定し、アドレス先の領域へ格納する、というコードが必要ないため、コード量をコンパクトにすることができる。また、当該2つの命令は、ともにレジスタの保護のためのコードが必要なく、あるいはバンクの切り替えも必要ないため、プログラム容量を削減することができる。なお、上記では、「CQPW」命令や「CQHKW」命令として、アドレスを絶対アドレス「R_TGAME+1」で直接指定したコード(機械語命令で6バイトの「CQPW (R_TGAME+1),0」や機械語命令で4バイトの「CQHKW (R_TGAME+1)」)を使用したが、「R_TGAME+1」をオフセットアドレスとした加算アドレスIY+R_TGAME+1を使用して、機械語命令でのバイト数を1バイト減少させることができる(「CQPW (IY+R_TGAME+1),0」「CQHKW (IY+R_TGAME+1)」などを使用)。
[第15実施形態の作用・効果]
第15実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所定の演算処理を行う演算処理手段(例えばCPU111a)と、演算処理手段によって更新される情報が記憶される更新情報記憶手段(例えばRAM111c)と、を備える。更新情報記憶手段は、複数バイトのアドレスが割り当てられ、該アドレスにより該更新情報記憶手段に記憶されている情報が特定される。更新情報記憶手段は、所定のアドレスに対応して設けられて、遊技制御の進行に関して計時するタイマ値を記憶可能なタイマ領域(例えば特図ゲーム処理タイマ領域)を備える。演算処理手段は、対象となるアドレスに記憶された値を汎用レジスタに格納することなく所定の比較値と比較を行う比較命令(例えば「CQPW」命令)を実行可能に構成され、比較命令によって、タイマ領域のタイマ値を所定の比較値と比較する。或は、演算処理手段は、対象となるアドレスに記憶された値を汎用レジスタに格納することなく所定の設定値と同一であるか判定を行う判定命令(例えば「CQHKW」命令)を実行可能に構成され、判定命令によって、タイマ領域のタイマ値を所定の設定値と同一であるか判定する。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような比較命令や判定命令を含んでよい。
このように、第15実施形態において、比較命令(「CQPW」命令)と判定命令(「CQHKW」命令)のいずれかをタイマの更新に用いる場合には、汎用レジスタの不具合によってタイマが更新されずにゲームの進行が進まなくなるという事態を回避することができる。なお、比較命令(「CQPW」命令)と判定命令(「CQHKW」命令)をカウンタ(回転数領域や高確率変動回数領域)の更新に用いる場合には、入賞の発生が反映されない、所定のスタート回数で時短状態や確変状態が終了せずに継続し続けるという事態を回避することができる。なお、CPUコア102に(命令解釈実行回路1242)に、これらの比較命令や判定命令を実行する専用論理回路を設けてよい。
また、汎用レジスタに格納することなく、即ち、汎用レジスタを使用せずに命令の対象となる値(アドレス先の領域に記憶された値)を直接比較もしくは判定するため、当該1つのコードが表す処理を実行する期間において、割込みの禁止を設定して汎用レジスタの値を保護する必要がなく、その分のプログラム容量を削減することができる(遊技制御プログラム全体のコード量が減少する)。
さらに、汎用レジスタを使用しないため、汎用レジスタの値をスタックへ退避させることやレジスタバンクを切り替えて汎用レジスタの値を保護する必要がなく、その分のプログラム容量を削減することができる(遊技制御プログラム全体のコード量が減少する)。
[第16実施形態]
第16実施形態では、遊技機用のZ80系CPUが演算処理を実行可能なデータの圧縮方式として、これまでにない新規な圧縮方式とその読み出し方法について説明する。なお、以下で述べる以外の構成は、第1実施形態から第15実施形態までの実施形態と共通の構成でよい。
図146は、第16実施形態の圧縮方式を説明するにあたり、従来のデータテーブルを説明する図であり、ここでは、一例として、従来の後半変動グループテーブルに対応するアセンブリ言語のコードも示す。
後半変動グループテーブルは、0から65535までの値を循環する変動パターン乱数1を振り分けるためのテーブルであり、乱数値が0から61999をリーチなし変動、62000から64499をノーマルリーチ系、64500から65099をSP1系リーチ、65100から65399をSP2系リーチ、65400から65535をSP3系リーチへと振り分けるために、2バイト振り分け処理によって参照されるテーブルである。
後半変動グループテーブルのうち、特図1はずれ用のテーブル1は、行番号8500に示すように、「D_KOUGRP_T1HZ1」とラベルされ、4バイトで1段となるデータ内容が5段に組まれたテーブル(表形式)である。各行のコードは、左側より、擬似命令(DW)、振分値、テーブル名が記述されており、データテーブルのコメント欄の右側には、アセンブリ言語によるコードと対になる機械語コード(ROM内のデータ)が記載されている。
具体的には、行番号8530のアセンブリ言語によるコード「DW 62000, D_KOU_HZ01」は、乱数値が2バイトであることに対応して振分値も2バイトのデータであることを擬似命令である「DW」がアセンブラに指定している。また、乱数値から減算する数値が62000であり、かつ、当該振り分けに対応するテーブルが「D_KOU_HZ01」というテーブル名であるという内容である。ここでは詳細な説明を省略するが、D_KOU_HZ01を参照してさらに変動内容が決定される。
行番号8530のアセンブリ言語によるコードに対応する機械語コード(機械語データ)は、「5A00 30F2005B」であり、「5A00」は、データを読み出すROM内のアドレスを意味する。ROM内では、1アドレスにつき1バイト(16進数表記では2桁)のデータが格納されており、続く8桁の機械語コード「30F2005Bh」は、実際には、アドレス5A00hからアドレス5A03hに格納される「30h」「F2h」「00h」「5Bh」のデータである。そして、当該8桁の機械語コードは、「30F2h」と「005Bh」とに分けられる。
ここでは、上位と下位が入れ替わっているため、「30F2」は、下位2桁の「F2h」と上位2桁の「30h」を入れ替えて「F230h」として命令解釈実行回路1242は読み込み、「F230h」は振分値の「62000」に対応する。また、「005B」は、上位と下位を入れ替えた「5B00h」がD_KOU_HZ01に対応するアドレスを意味する。
続けて、さらに4段分の機械語コードを説明すると、行番号8540の機械語コードは、D_KOU_HZ02に対応するアドレスが「5B02h」であり、振分値が「09C4h」である。
行番号8550の機械語コードは、D_KOU_HZ03に対応するアドレスが「5B06h」であり、振分値が「0258h」である。行番号8560の機械語コードは、D_KOU_HZ04のアドレスが「5B10h」であり、振分値が「012Ch」である。行番号8570の機械語コードは、D_KOU_HZ05に対応するアドレスが「5B16h」であり、振分値が「0088h」である。
ここで、データテーブルの各アドレスは、テーブルの1段目から(行番号8530から)5段目まで(行番号8570まで)上から順に「5B00h」「5B02h」「5B06h」「5B10h」「5B16h」である。この5つのアドレスのうち1桁目の「5h」が共通することから、「5h」にあたる4ビット分のデータを削除してROMに格納し、読みだす時には「5h」にあたる4ビット分のデータを補充して演算処理を実行しようというのが、本実施形態の圧縮方式である。具体的には、図147から図148を参照して説明する。
図147は、第16実施形態の後半変動グループテーブルであり、対応するアセンブリ言語のコードも示す。ラベル名は図146に示す従来の後半変動グループテーブルと同じ「D_KOUGRP_T1HZ1」であり、特図1はずれ用のテーブル1である。
行番号9030に記載の擬似命令BTA{16,12}は、テーブルの2進数データが16ビット(8ビット×2)のセットと12ビット(12ビットに加えて4ビット分を補って8ビット×2)のセットとしてアセンブラがデータ作成することを表している。
BTA{16,12}の数値部は一例であり、当該擬似命令はBTA{数値1,数値2}の形式で記載し、数値1のビット数と数値2のビット数を順に読み込むことをアセンブラに指定する。このような読み込み形式は行番号9140のコード「ENDBTA」まで継続される。数値1、数値2は1〜16の任意の数である。
次に、テーブル内の1段分のデータ構成を説明する。行番号9040のコード「62000, D_KOU_HZ01−5000H」は、2バイト数値である振分値の62000と参照先のテーブル(後半変動選択テーブル)の相対アドレスであるD_KOU_HZ01−5000Hが記述されており、D_KOU_HZ01−5000Hは、1段目のデータの基準となる。つまり、DPレジスタ(テーブルポインタ)には、データの先頭となるアドレスの5000Hが格納されているため、行番号9040で指定するアドレスは、DPレジスタに格納されるアドレスからの差分でよい。そのため、アセンブリ言語しては便宜的にD_KOU_HZ01−5000Hとして記載した。
このことを機械語コードで確認すると、1段目のアセンブリ言語のコードに対応する機械語コードは、アドレス5A00hから5A02hまでの「30F200h」とアドレス5A03hの「4Bh」である。このうち「30F200h」の上位と下位を入れ替えた「F230h」が振分値の62000であり、「00h」はDPレジスタが指定するアドレス「5000H」との差分「B00h」から「B」を除いた値である。また、アドレス5A03hに格納される「4Bh」は、後述するように1段目のデータと2段目のデータが合わさった数値である。そのため、ここではアドレス5A03hに格納されるデータだけ改行して記載している。
同様に、振分値が2500である2段目のテーブルのアドレスから振分値が136である5段目のテーブルのアドレスまで、全て5000hがマイナスされた相対アドレスで示されている。この相対アドレスは、テーブル内で振分値に対応付けられた値(関連付けられた値)となる。つまり、上述のように、テーブルの上から順に「5B00h」「5B02h」「5B06h」「5B10h」「5B16h」というアドレスのうち1桁目の「5h」が共通することから削除した形である。なお、アドレスの2桁目である「Bh」も共通することから、1桁目と2桁目の「5Bh」を削除することで、1段あたり更に4ビット分のデータを圧縮することも可能である。
これをより分かり易く視覚化したのが次の図148である。図148は、第16実施形態の圧縮方式を説明する図である。図の左側はアセンブラによる擬似命令BTA{16,12}の解釈を図示しており、図の右側はROM内に記憶される圧縮されたデータを図示している。
まず、テーブルの1段目のデータ内容とROMへの格納について説明する。図の左側から右側へと視点を移動させる要領で説明すると、テーブルの1段目のデータ内容は、振分値の「F230h」と対応するテーブルの相対アドレスの「0B00h」である。これを2進数として表記すると、「F230h」は「1111001000110000B」であり、「0B00h」は「0000101100000000B」である。
なお、図146において説明したテーブル1段目の絶対アドレスとしての後半変動選択テーブルの参照先アドレスは「5B00h」であるが、本実施形態ではDPレジスタ(テーブルポインタ)に5000hが格納されている前提であるため、テーブルの各段における相対アドレスは、絶対アドレスから5000hがマイナスされているものである。
次に、ROMに格納される実際のデータについて説明する。「F230h」に対応する「1111001000110000B」は、1バイトごとに分けられて、下位8ビットである「00110000B」がROM内のアドレス5A00hに(図148の矢印1)、上位8ビットである「11110010B」がアドレス5A01hに(図148の矢印2)格納される。ここは、BTA{16,12}のうち、「16」に該当するパートである。
また、アドレス5A00hとアドレス5A01hに格納されるデータを16進数表記したものが、「30h」と「F2h」である。
また、「0B00h」に対応する「0000101100000000B」は、1バイトごとに分けられて、下位8ビットである「00000000B」がアドレス5A02hに格納される。ちょうど、図148において矢印3が該当する。
次に、上位8ビットは、上位の4ビット「0000B」と、それに続く4ビット「1011B」とに分けることができる。そして、上位4ビットの「0000B」は、削除されて(圧縮されて)、上位4ビットの「0000B」に続く4ビット「1011B」がアドレス5A03hの下位4ビットに格納される(矢印4)。
つまり、テーブルの1段目における絶対アドレスである「5B00h」から5000h分がマイナスされた結果の相対アドレスは「0B00h」であるが、この数値「”0”B00h」の上位1桁目の「0」に当該上位4ビットの「0000B」が対応することから、当該上位4ビットの「0000B」は削除されている。ここまでがテーブルの1段目のデータのROMへの格納の説明となる。
次に、テーブルの2段目のデータの格納について説明する。2段目のテーブルデータで振分値2500に対応する「09C4h」の2進数データは「0000100111000100B」である。この2進数データは、上位4ビット、中位8ビット、下位4ビットに分けることができる。そして、下位4ビットは、アドレス5A03hの上位4ビットに格納される。
つまり、アドレス5A03hには、1段目のデータである「1011B」が下位4ビットとして格納され(矢印4)、2段目のデータである「0100B」が上位4ビットとして格納される(矢印5)。そのため、アドレス5A03hには、1段目のテーブルデータの一部と2段目のテーブルデータの一部が合わさって格納されるのである(矢印4及び矢印5)。
続いて、2段目のテーブルデータのうち、中位8ビットの「10011100B」がアドレス5A04hに格納され(矢印6)、上位4ビットの「0000B」は、アドレス5A05hの下位4ビットに格納される。
続いて、2段目のテーブルデータの相対アドレスに対応する「0B02h」の2進数データは「0000101100000010B」である。ここでも当該2進数データを上位4ビット、中位8ビット、下位4ビットに分けることができる。
そして、上位4ビットの「0000B」は、テーブルの2段目における絶対アドレスである「5B02h」から5000h分がマイナスされた結果の数値である相対アドレス「”0”B02h」の上位1桁目の「0」に対応することから、削除されている。
また、下位4ビットの「0010B」は、アドレス5A05hの上位4ビットに格納され(矢印8)、中位8ビット「10110000B」は、アドレス5A06hに格納される(矢印9)。ここまでがテーブルの2段目のデータのROMへの格納の説明となる。
そして、3段目のテーブルデータも1段目及び2段目と同様に、相対アドレスとして他のテーブルデータと共通する部分が削除されてROMに格納され、最終的に、5段分のテーブルデータがROMのアドレス5A00hから5A11hの領域に記憶される。
ここで、不足分のバイナリデータの補充について説明する。
テーブルの最下段にあたる5段目の参照先アドレス(後半変動選択テーブルのアドレス)のデータは、下位8ビットの「00010110B」がアドレス5A10hに格納され(矢印10)、中位4ビットの「1011B」がアドレス5A11hに下位4ビットとして格納され(矢印11)、上位4ビットの「0000」は削除される。
このままでは、アドレス5A11hに格納されるデータは、下位4ビット分のみとなり、ROMにおけるデータの格納状態が不規則な状態に陥るため、アドレス5A11hにおいては、不足する上位4ビット分のバイナリデータが擬似命令の解釈によって自動的に補充される(矢印12)。
なお、本実施形態では、「5B00h」「5B02h」「5B06h」「5B10h」「5B16h」というアドレスのうち1桁目の「5h」が共通することに起因して当該「5h」に対応するデータを圧縮したが、アドレスの2桁目である「Bh」も共通することから、1桁目と2桁目の「5Bh」を圧縮することで、1段あたり更に4ビット分の圧縮も可能である。
[第16実施形態の作用・効果]
このように、テーブルの各参照先アドレス(本実施形態では相対アドレス)として共通する部分が圧縮されてROMに記憶されるため、本来であれば、テーブルデータの1段あたりの容量である4バイトの5段分の容量として20バイトの記憶領域が必要であるところ、5A00hから5A11hの合計18バイトの領域に収まるため、ROM容量を削減することができる。
また、ROMにデータを格納する際には、データの種類毎に一定の法則(例えば、一定のビット数、一定のビット長)に基づいていないと、CPU111aが読み出す際に何ビット分なのかが分からず、読み出せなくなる(解釈できなくなる)。そこで、関連する同種のテーブル全てに共通するビット長の範囲を考慮して、読み出し範囲が定義される。当該定義は、上記のBTA{数値1,数値2}のコードであり、本実施形態では、一例として、後半変動グループテーブル(特図1用のみならず特図2用も含む)の全てのバイナリデータ(2進数データ)を、振分値として16ビット(数値1に対応)、及び、後半変動選択テーブルのアドレスとして12ビット(数値2に対応)、が定義された。
[第17実施形態]
第17実施形態では、圧縮されてROM内に格納されたデータの読み出しについて説明する。圧縮されたデータのCPU111a(CPUコア102)による読み出しとして、本実施形態では、「LQDB」という命令によって、DPレジスタ(テーブルポインタ)が指すアドレスのビット0を起点として、指定したビット位置から任意のビット長のデータを読み出すことができる。なお、以下で述べる以外の構成は、第1実施形態から第16実施形態までの実施形態と共通の構成でよい。
図149は、第17実施形態のデータの読み出し形式を説明する図である。ここでは、アドレス5A00hからアドレス5A10hまでのデータを「LQDB BC,(HL).16」というコードによって読み出し、アドレス5A11hのデータを「LQDB HL,(HL).12」というコードによって読み出す。
LQDB命令は、「LQDB レジスタ名,(レジスタ名).読み出しビット長」の形式で記述され、DPレジスタに格納されるアドレス値に、カンマの後の(レジスタ名)のレジスタペア(ペアレジスタ)に格納された値(ビット数)を加算して算出したアドレス値のビット0を起点として、読み出しビット長のデータを読み出して、カンマの前のレジスタ名のレジスタペアに格納する命令である。レジスタ名のレジスタペアは、異なるレジスタペアでも同一のレジスタペアでもよい。なお、ビット数が小さければ、レジスタ名が示すものは、レジスタペアでなく単一のレジスタでもよい。単一のレジスタでは、読み出しビット長は1〜8の任意のビット長であり、レジスタペアでは読み出しビット長は1〜16の任意のビット長である。なお、CPUコア102に(命令解釈実行回路1242)に、LQDB命令を実行する専用論理回路を設けてよい。
まず、DPレジスタにアドレス値5000hが指定されていること、HLレジスタにはA00hが8倍されてビット数に変換された値が格納されていることを前提に、アドレス5A00hとアドレス5A01hに記憶されるデータの読み出しについて説明する。ここでの読み出し命令は、「LQDB BC,(HL).16」である。
当該命令の実行にあたり、DPレジスタに格納されるアドレス値が5000hであり、HLの値がA00hであるから、5000hにA00hを加算した5A00hから16ビット分のデータを読み込む処理が実行される。矢印13に示す5000hのビット0から数えて(A00h*8)番目のビットが読み出しの基点となる。なお、図149において、A00hをビット換算(ビット変換)するために8倍しているという意味でA00h*8と記載しているが、詳細は図152において後述する。
そして、アドレス5A00hに記憶される1バイトのデータは「00110000B」であり、アドレス5A01hに記憶される1バイトのデータは「11110010B」であるからこれを16ビット長としたものが「1111001000110000B」である(矢印14)。当該データを16進数で表記するとF230hであり、読み出された16ビット分のデータはBCレジスタに格納される。F230hは、振分値の62000に対応する。
次に、振り分けが進み、最終行の後半変動選択テーブルのアドレスを「LQDB HL,(HL).12」というコードによって読み出す場合を説明する。ここでは、DPレジスタに格納されるアドレス値は5000hのままであり、(HLレジスタ)の値は、A10h*8であることを前提とする。
当該命令の実行にあたり、DPレジスタに格納されるアドレス値が5000hであり、HLの値がA10h*8であるから、5000hにA10hを加算した5A10hのビット0から数えて12ビット分を読み込む処理が実行される。ここで読み出されたデータは「101100010110B」(矢印15)であるが、格納先のHLレジスタは2バイト分の領域を持つため、2バイト領域に対して不足する4ビット分に対して「0000B」がLQDB命令の解釈の一環として補充される(矢印16)。
この「0000B」の補充によってアドレス5A10hとアドレス5A11hから読み出したデータ「0000101100010110B」は、16進数で表記すると0B16hであり、HLレジスタに格納される。
続いて、LQBD命令によって圧縮データを読み出すプログラム内容を実際のコードを参照して説明する。
図150は、第17実施形態の変動パターン設定処理のプログラムリストである。ここに記載する変動パターン設定処理のプログラムリストは、次に説明する2バイト振り分け処理の呼出し元のプログラムモジュールとして説明する。
行番号10020のコード「LD HL,(HL)」は、図37のA4302に対応し、後半変動パターングループテーブルのアドレスを取得する内容である。
行番号10030のコード「LD WA,(DE)」は、図37のA4303に対応し、対象の領域から変動パターン乱数をロートする内容である。
行番号10050のコード「CALLR P_SELW」は、図37のA4305に対応し、2バイト振り分け処理をサブルーチンコールする内容である。
図151は、従来の2バイト振り分け処理のプログラムリストである。上記の変動パターン設定処理に呼び出されるモジュールであるが、ROMに記憶されるデータが圧縮されていない方式において実行される処理である。2バイト振り分け処理は「P_SELW」とラベルされる。
行番号10510のコードは、図38のA4401に対応し、呼出し元の変動パターン設定処理においてHLレジスタに取り込んだ後半変動パターンテーブルのアドレスに格納される値が振分なしのコード(C_NOTHING)と同一であるかを比較して判定する内容である。同一である場合には、判定結果としてゼロフラグがセットされる(Z)。
行番号10520のコードは、図38のA4402に対応し、振分なしのコードであればSELW20とラベルするパートへジャンプし、振分なしのコードでなければ次の行のコードを読み込む内容である。
SELW20とラベルされた一区画となる行番号10590と行番号10600のコードは、図38のA4407に対応し、振り分られた結果に対応するデータのアドレス(後半変動選択テーブルの絶対アドレス)に更新する内容である。
SELW10とラベルされた一区画となる行番号10530から行番号10570は、図38におけるループ処理(A4403からA4406)に対応する。行番号10540のコード「SUB WA,(HL)」は、図38のA4403、A4404に対応し、後半変動グループテーブルから取得した振分値を、WAレジスタに格納されている変動パターン乱数1の値から減算する内容である。
行番号10550のコード「JR C,SELW20」は、図38のA4405に対応し、減算の結果が0よりも小さい値となる場合にはSELW20へジャンプし、そうでない場合には次の行のコードを読み込む内容である。
行番号10560のコード「ADD HL,4」は、図38のA4406に対応し、後半変動グループテーブルのアドレス値を4バイト加算して、テーブルの次の段のアドレスに更新する内容である。
行番号10570のコード「JR SELW10」も図38のA4406に対応し、SELW10へジャンプする内容である。
次に、LQDB命令によって圧縮されたデータを読み出す第17実施形態のプログラム内容を説明する。図152は、第17実施形態の2バイト振り分け処理のプログラムリストである。第17実施形態の2バイト振り分け処理も「P_SELW」とラベルされて上記の変動パターン設定処理によって呼び出される。また、ラベルSELW10の部分は、図38のA4403からA4406までのループ処理に対応し、ラベルSELW20の部分は、図38のA4407に対応する。
行番号11010のコード「SQLA HL,3」(換算命令)は、HLレジスタに格納される16ビットのアドレス値を3ビット分左にシフトする内容である。3ビット左シフトによって、実質的に下位13ビット分のバイナリデータが2の3乗(8倍)されることになる。つまり、HLレジスタに格納されるアドレス値を8倍してビット数に変換している(アドレス値をビット換算している)。
行番号11020のコード「LQDB BC,(HL).16」(読込命令)は、本実施形態特有の命令として圧縮してROMに記憶されるデータを読み出す命令であり、上記のとおり、DPレジスタで示されるアドレスのビット0を起点として、指定したビット長である16ビット分のデータをBCレジスタに取り込む内容である。
行番号11030のコード「CQP BC,C_NOTHING」は、BCレジスタに格納される値が振分なしのコード(C_NOTHING)と同一であるかを比較して判定する内容である。同一である場合には、判定結果としてゼロフラグがセットされる(Z)。
行番号11040のコード「JR Z,SELW20」は、振分なしコードである場合にSELW20へジャンプし(行番号11110のコードへとジャンプし)、そうでは場合は次の行を読み込む内容である。
先に、SELW20の部分を説明すると、行番号11120のコード「ADD HL,12」は、HLレジスタに格納されているビット換算された値に12を加算する内容である。
行番号11130のコード「LQDB HL,(HL).12」(読込命令)は、HLレジスタに格納される値のうち、12ビット分のバイナリデータをHLレジスタにロードする内容である。これにより、HLレジスタに、後半変動選択テーブルの相対アドレスが取得される。
行番号11140のコード「ADD HL,5000H」は、HLレジスタのアドレス値にDPレジスタの値5000hを加算して、振り分けられた結果に対応するデータのアドレス(後半変動選択テーブルの絶対アドレス)に更新する内容である。
次に、SELW10の部分へ戻る。行番号11060のコード「LQDB BC,(HL).16」は、次の16ビット分の振分値のデータを読み込む内容である。
行番号11070のコード「SUB WA,BC」は、乱数値から振分値を減算する内容である。
行番号11080のコード「JR C,SELW20」は、減算の結果がマイナスとなる場合はSELW20へジャンプし(行番号11110のコードへとジャンプし)、そうではない場合は次の行を読み込む内容である。
行番号11090のコード「ADD HL,16+12」は、HLレジスタに格納されているビット数を16+12ビット分加算する内容である。この結果、HLレジスタには、次の振分値が格納されるビット換算されたアドレス(振分値のビット0の位置に相当)が格納されている。
行番号11100のコード「JR SELW10」は、ループ処理の先頭に戻る内容である。
[第17実施形態の作用・効果]
第17実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所定の演算処理を行う演算処理手段(例えばCPU111a)と、を備える。遊技制御プログラム記憶手段は、一のアドレスが割り振られる記憶領域ごとにデータを記憶する。演算処理手段は、遊技制御プログラム記憶手段から読み出した記憶領域のアドレス値を所定の数で積算したビット換算値を算出する換算命令(例えば「SQLA HL,3」)と、ビット換算値を起点として所定のビット長を読み込む読込命令(例えば「LQDB BC,(HL).16」)と、を実行可能に構成される。所定のビット長のデータは、変動表示ゲームの態様を振り分けるための振分値及び当該振分値に対応付けられた値である。演算処理手段は、読込命令によって、振分値及び振分値に対応付けられた値を読み込み、振分値に対応付けられた値に基づいて、変動表示ゲームの態様を選択するためのテーブルのアドレスを導出する。なお、命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような換算命令と読込命令を含んでよい。CPUコア102に(命令解釈実行回路1242)に、これら命令を実行する専用論理回路を設けてよい。例えば、振分値に対応付けられた値とは、後半変動選択テーブルのアドレス(図147と図148の相対アドレス)である。
このように、第17実施形態において、この換算命令によって、例えば、レジスタに取り込んだアドレス値を3ビット分左にシフトすることで、つまり、2の3乗である8倍する操作によって、ビット換算によるアドレス値を算出することができる。また、この読込命令によって、特定のビットを読み込みの基点としてデータを読み込むことができる。
また、DPレジスタが格納するアドレス値とビット換算されたアドレス値とを合わせて、DPレジスタが指定するアドレス先の1バイトの領域の中のさらに特定のビットを読み込みの基点とすることができる。
また、元のデータから削除されたビット数がいくつであるかという圧縮形式に合わせて、読み出すビット長を設定することができるため、圧縮されたデータを読み出した上で、2バイト長のデータとして復元することができる。
また、第17実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所定の演算処理を行う演算処理手段(例えばCPU111a)と、を備える。遊技制御プログラム記憶手段は、一のアドレスが割り振られる記憶領域ごとに特定ビット長のバイナリデータを記憶する。演算処理手段は、アドレスが連続する複数の記憶領域から、バイナリデータを特定のビット長よりも小さなビット長に分割して読み込み、分割によって特定のビット長に満たない分については0のバイナリデータを補って、特定のビット長として読み込む読込命令(例えば「LQDB HL,(HL).12」)を実行可能に構成される。特定のビット長のデータは、変動表示ゲームの態様を振り分けるための振分値又は当該振分値に対応付けられた値である。演算処理手段は、読込命令によって、振分値又は当該振分値に対応付けられた値を読み込む。なお、命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような読込命令を含んでよい。CPUコア102に(命令解釈実行回路1242)に、この読込命令を実行する専用論理回路を設けてよい。例えば、振分値に対応付けられた値とは、後半変動選択テーブルのアドレス(図147と図148の相対アドレス)である。
このように、第17実施形態において、圧縮されたデータの読み出しにあたっては、1バイト長(8ビット長(特定ビット長))を基準として、読みだした際のデータの長さが8ビットに満たない場合に、演算処理手段は、不足する分のビット数(桁)の全てに0データを補うことができるため、圧縮分のデータ(圧縮により削除されたデータ)が自動的に復元される。
[第18実施形態]
第18実施形態では、LQDB命令を用いた圧縮データの読み出しとして、8ビットの約数や倍数ではないビット数(ビット長)の圧縮について説明する。本実施形態では、一例として32ビット分のデータのうちの11ビット分を圧縮する実施例を説明する。なお、以下で述べる以外の構成は、第1実施形態から第17実施形態までの実施形態と共通の構成でよい。
図153は、第18実施形態の後半変動グループテーブルであり、対応するアセンブリ言語のコードも示す。ラベル名は図146及び図147に示す後半変動グループテーブルと同じ「D_KOUGRP_T1HZ1」であり、特図1はずれ用のテーブル1である。
第16実施形態の後半変動グループテーブルでは、各段の絶対アドレス(後半変動選択テーブルのアドレス)が「5B00h」「5B02h」「5B06h」「5B10h」「5B16h」であることから、このうち1桁目の「5h」が共通することに起因して当該「5h」に対応するデータを圧縮した。これ対して、第18実施形態では、1段目のテーブルの絶対アドレス値(D_KOU_HZ01)を基準とし、2段目以下のテーブルの相対アドレス値は、1段前の絶対アドレス値を減算した結果の差分アドレス値が記憶される。この差分アドレス値は、テーブル内で振分値に対応付けられた値(関連付けられた値)となる。1段目のテーブルの絶対アドレスは、5B00h(D_KOU_HZ01)であり、5段目のテーブルの絶対アドレスは、5B16h(D_KOU_HZ05)であるから、当該差分である16h(2進数表記では10110B)の5ビット分を残して11ビット分が圧縮される。
また、第18実施形態の後半変動グループテーブルでは、1段目のテーブルデータは圧縮されておらず、2段目から5段目までのテーブルデータが圧縮されている。このため、2段目から5段目のデータのアセンブラでのデータ作成のために、1段目のテーブルがコードされている行番号9530の次の行番号9540に擬似命令「BTA」がコードされている。
行番号9530のアセンブリ言語のコード「DW D_KOU_HZ01−5000H,62000」は、圧縮されていない状態の1段目のテーブル(リーチなし)に相当し、2バイト数値である振分値の62000と参照先テーブル(後半変動選択テーブル)のアドレスであるD_KOU_HZ01−5000Hが記述されている。なお、DPレジスタには、5000hが格納されている。行番号9530のコードによって作成される機械語コード(機械語データ)を確認すると、アドレス5A00hから4バイト分のデータとして「00h」「5Bh」「30h」「F2h」が記憶されている。このうちアドレス5A00hに記憶される「00h」とアドレス5A01hに記憶される「5Bh」、及び、アドレス5A02hに記憶される「30h」とアドレス5A03hに記憶される「F2h」は、それぞれ上位と下位が入れ替わっていることは、上述のとおりである。
行番号9540の擬似命令「BTA{5,16}」は、データの読み出し長として5ビット長と16ビット長であることを指定する内容である。本実施形態の後半変動グループテーブルは、第16実施形態の後半変動グループテーブルと異なり、1段ごとにテーブルの参照先アドレスが先に記載され、次に振分値が記載される。詳細は、次の図154において説明するが、テーブルの参照先アドレスが格納される分として5ビット分であり、振分値として16ビット分を読み出す。
行番号9550のコード「D_KOU_HZ02−D_KOU_HZ01,2500」は、2段目のテーブル(ノーマルリーチ系)であるD_KOU_HZ02のアドレス値から1段目のテーブルのアドレス値を減算した差分と、振分値とが圧縮前の元データとしてコードされている。
同様に、行番号9560のコード「D_KOU_HZ03−D_KOU_HZ02,600」は、3段目のテーブル(SP1系)であるD_KOU_HZ03のアドレス値から2段目のテーブルのアドレス値を減算した差分と、振分値とが圧縮前の元データとしてコードされている。
同様に、行番号9570のコード「D_KOU_HZ04−D_KOU_HZ03,300」は、4段目のテーブル(SP2系)であるD_KOU_HZ04のアドレス値から3段目のテーブルのアドレス値を減算した差分と、振分値とが圧縮前の元データとしてコードされている。
同様に、行番号9580のコード「D_KOU_HZ05−D_KOU_HZ04,136」は、5段目のテーブル(SP3系)であるD_KOU_HZ05のアドレス値から4段目のテーブルのアドレス値を減算した差分と、振分値とが圧縮前の元データとしてコードされている。そして、行番号9590のコード「ENDBTA」によって、アセンブリ言語における圧縮データの読み出し形式の指定範囲が終了している。
次に、図154を参照して、本実施形態のデータの圧縮を説明する。図154は、第18実施形態の圧縮方式を説明する図である。
ここで、「D_KOU_HZ01」のアドレス値を5B00h、「D_KOU_HZ02」のアドレス値を5B02h、「D_KOU_HZ03」のアドレス値を5B06h、「D_KOU_HZ04」のアドレス値を5B10h、「D_KOU_HZ05」のアドレス値を5B16h、とした場合、「D_KOU_HZ02−D_KOU_HZ01」は差分「02h」、「D_KOU_HZ03−D_KOU_HZ02」は差分「04h」、「D_KOU_HZ04−D_KOU_HZ03」は差分「0Ah」、「D_KOU_HZ05−D_KOU_HZ04」は差分「06h」、となる。
そのため、「0Ah」(2進数表記では1010)の4ビット分を残して12ビット分を圧縮することも可能であるが、例示しない他のテーブルにおいて当該4ビット分では差分の表記として不足することから図154においても5ビット分を残して11ビット分を圧縮する。
続いて、擬似命令BTA{5,16}によってアセンブラが読み込むテーブル2段目のデータについて説明する。
テーブル2段目のデータのうち、「D_KOU_HZ02−D_KOU_HZ01」である「02h」は、本来「0002h」であるため、これを2進数で表記すると「0000000000000010B」である。このうち、上位11ビット分が圧縮され、下位5ビットの「00010B」がアドレス5A04hの下位5ビットとして記憶される(図154の矢印17)。
次に、テーブル2段目のデータのうち、振分値の2500を2進数で表記すると、「1001110001000100B」である。先のアドレス5A04hにはまだ上位3ビット分の記憶容量が余っていることから、当該16ビットのデータは、下位3ビットと中位8ビットと上位5ビットに分けられる。そして、下位3ビットの「100B」がアドレス5A04hに上位3ビットとして記憶される(矢印18)。つまり、アドレス5A04hは、差分アドレス値の「00010B」を下位ビットとして、振分値のバイナリデータの一部である「100B」とが合わさって「10000010B」というデータが記憶される。
また、振分値の「1001110001000100B」うち、中位8ビットである「10001000B」がアドレス5A05hに記憶され(矢印19)、上位5ビットである「10011B」がアドレス5A06hの下位5ビットとして記憶される(矢印20)。
次に、ROMのアドレス5A06hには、上位3ビット分の記憶容量が余っているため、テーブル3段目のデータのうち、「D_KOU_HZ03−D_KOU_HZ02」である「04h」のうち下位3ビット分「100B」がアドレス5A06hの上位3ビットとして記憶される(矢印21)。そのため、アドレス5A06hは、2段目のテーブルデータの一部と3段目のテーブルデータの一部とが合わさって記憶される。
続くテーブル3段目のデータ、及び4段目のデータも、差分アドレス値のうち11ビット分は削除されて5ビット長となり、振分値は16ビット長として、1バイトの記憶領域であるROMの各アドレス先へと記憶される。このとき、各アドレス先において8ビット分の全てが埋まるように、5ビット長及び16ビット長のテーブルデータは適宜切り分けられてROMに記憶される。
次に、テーブル5段目のデータのROMでの記憶状態を説明する。テーブル5段目のデータのうち、「D_KOU_HZ05−D_KOU_HZ04」は、「06h」(2進数表記では0110)であり、これの5ビット長は「00110B」であるが、最下位の1ビット分は切り分けられてアドレス5A0Bhに記憶され、上位4ビット「0011B」がアドレス5A0Chに下位4ビットとして記憶される(矢印22)。
続いて、テーブル5段目のデータのうち、振分値136のバイナリデータ「0000000010001000B」は、下位4ビット、中位8ビット、上位4ビットに分けられて、下位4ビットの「1000B」がアドレス5A0Chに上位4ビットとして記憶され(矢印23)、中位8ビットがアドレス5A0Dhに記憶される(矢印24)。
そして、上位4ビットの「0000B」は、アドレス5A0Ehに下位4ビットとして記憶される(矢印25)が、アドレス5A0Ehは、上位4ビット分の容量が空いてしまうので、当該部分には4ビット分の0データ「0000B」が補充される(矢印26)。
図155は、第18実施形態のデータのCPU111aによる読み出し形式を説明する図である。ここでは、アドレス5A00hからアドレス5A0Dhまでのデータを「LQDB BC,(HL+).16」というコードによって読み出し、アドレス5A0Ehのデータを「LQDB C,(HL+).5」というコードによって読み出す。
まず、DPレジスタにアドレス値5000hが指定されていること、HLレジスタにはA02hが8倍されてビット換算された値が格納されていることを前提に、アドレス5A02hとアドレス5A03hに記憶されるデータの読み出しについて説明する。ここでの読み出し命令は、「LQDB BC,(HL+).16」である。当該コードは、図149におけるコードと比較して、(HL+)と”プラス”が追加されているが、これは、BCレジスタに読み出した後に、HLレジスタに読み出した分のビット数を加算する内容である。
当該命令の実行にあたり、DPレジスタに格納されるアドレス値が5000hであり、HLレジスタの値がA02hであるから、5000hにA02hを加算した5A02hから16ビット分を読み込む処理が実行される。矢印27に示す、5000hのビット0から数えて(A02h*8)番目のビットが読み出しの基点となる。A02h*8は、上記のSQLA命令による3ビット分の左シフト演算による。
そして、アドレス5A02hに記憶される1バイトのデータは「00110000B」であり、アドレス5A03hに記憶される1バイトのデータは「11110010B」であるからこれを16ビット長としたものが「1111001000110000B」である(矢印28)。当該データを16進数で表記するとF230hであり、読み出された16ビット分のデータはBCレジスタに格納される。
そして、BCレジスタに「F230h」を読み出したので、HLレジスタは読み出したビット長である16を加算した、5010h+16である「5020h」となる。なお、5010hは、ビット数(A02h*8)である。そして、5020h=A04h*8余り0であるから、次の読み出し位置はアドレス5A04hのビット0からとなる(矢印29)。ここで、5020h(10進数表記で20512)は、A04h(10進数表記で2564)を8倍した値であり、ここでの計算はいずれもビット換算した上での計算が示されている。
次に、振り分けが進み、後半変動選択テーブルのアドレス5A0Bh及びアドレス5A0Chに記憶されるデータを「LQDB C,(HL+).5」というコードによって読み出す場合を説明する。ここでは、DPレジスタに格納されるアドレス値は5000hのままであり、HLレジスタの値は、A0Bh*8+7であることを前提とする。
当該命令の実行にあたり、DPレジスタに格納されるアドレス値が5000hであり、HLの値がA0Bh*8+7であるから、5000hにA08h*8+7である「5A0Bh」のビット7(矢印30)が読み出しの基点となる。そして、当該命令によって「5A0Bh」のビット7から5ビット分を読み込む処理が実行される。アドレス5A0Bhのビット7に記憶されるデータ長は1ビット分のみであるので、さらなる4ビット分は次のアドレスである5A0Chから下位4ビット分が読み込まれる(矢印31)。
ここで読み出されたデータは差分「06h」に相当する「00110B」(矢印30及び矢印31)であるが、格納先のCレジスタは1バイト分の領域を持つため、1バイト領域に対して不足する3ビット分に対して「000B」がLQDB命令の解釈の一環として補充される(矢印32)。
そして、Cレジスタに差分「06h」を読み出したので、HLレジスタは読み出したビット長である5を加算した、505Fh+5である「5064h」となる(矢印33)。そして、5064h=A0Ch*8余り4であるから、次の読み出し位置はアドレス5A0Chのビット4からとなる。なお、「505Fh」は、A0Bh*8+7の値である。
図155では、テーブル1段目の振分値をアセンブラの擬似命令「BTA」を使わずにROM配置にしてあるが、LQDB命令は、そのようなテーブルデータの配置に関係なくデータエリアの任意の位置から任意のビット数(1ビット〜16ビットの任意のビット長で)のデータを読み出すことができる。
図156は、第18実施形態の2バイト振り分け処理のプログラムリストである。本実施形態の2バイト振り分け処理も「P_SELW」とラベルされて変動パターン設定処理(図150)によって呼び出される。また、ラベルSELW10の部分は、図38のA4403からA4406までのループ処理に対応し、ラベルSELW20の部分は、図38のA4407に対応する。
行番号11510のコード「LD DE,(HL+)」は、現在のHLレジスタに格納されているアドレスに対応する領域から基準となる後半変動グループテーブルのアドレスをDEレジスタにロードする内容である。基準となる後半変動グループテーブルのアドレスは、D_KOU_HZ01の参照先アドレス(後半変動選択テーブルのアドレス)であり、絶対アドレスを用いる場合には5B00hであり、相対アドレスを用いる場合には0B00hである。その後、HLレジスタの値を更新する。
行番号11520のコード「CQPW (HL),C_NOTHING」は、更新したアドレス先のデータが振分なしのコード(C_NOTHING)と同一であるかを比較して判定する内容である。
行番号11530のコード「JR Z,SELW20」は、振分なしコードである場合にSELW20の部分へジャンプし、そうではない場合は次の行を読み込む内容である。
行番号11540のコード「SQLA HL,3」は、HLレジスタに格納される16ビットのアドレス値を3ビット分左にシフトする内容である。3ビット左シフトによって、実質的に下位13ビット分のバイナリデータが2の3乗(8倍)されて、アドレス値がビット換算される。
先に、SELW20のパートを説明すると、行番号11620のコード「LD HL,DE」は、DEジスタに格納されるアドレス値をHLレジスタにロードして、振り分けた結果に対応するデータのアドレス値(後半変動選択テーブルのアドレス値)に更新する内容である。
次に、SELW10のパートへ戻る。行番号11560のコード「LQDB C,(HL+).5」(加算読出命令)は、HLレジスタに格納されているビット位置(ROM内の読み出し開始位置をビット数で示したもの)から、次の5ビット分のデータを読み込み、Cレジスタに格納する内容である。Cレジスタには、図155のとおり、差分「02h」「04h」「0Ah」「06h」のいずれかが格納されることになる。その後、HLレジスタに格納されているビット位置は、読み込んだ分のビット数が加算されて更新される。
行番号11570のコード「ADD DE,C」は、Cレジスタに格納されている差分をDEレジスタの値に加算する内容である。このようにして、基準となる後半変動グループテーブルのアドレス5B00h(又は相対アドレス0B00h)に、差分「02h」「04h」「0Ah」「06h」が順に加算されて、DEレジスタの値に加算されていくことになる。
行番号11580のコード「LQDB BC,(HL+).16」(加算読出命令)は、HLレジスタに格納されているビット位置(ROM内の読み出し開始位置をビット数で示したもの)から、次の16ビット分のデータをBCレジスタに読み込む内容である。その後、HLレジスタに格納されているビット位置は、読み込んだ分のビット数が加算されて更新される。BCレジスタには、図155のとおり、振分値が格納されている。
行番号11590のコード「SUB WA,BC」は、乱数値から振分値を減算する内容である。繰り返して行番号11590のコードが実行されることによって、乱数値から振分値62000、2500、600、300、136が順に減算されていく。
行番号11600のコード「JR NC,SELW10」は、減算の結果がマイナスとならない場合はループ処理の頭に戻り、マイナスとなる場合は次の行を読み込む内容である。なお、減算の結果がマイナスとなると、行番号11570でのDEレジスタの値の更新が中止して、振り分けた結果に対応するデータのアドレス値(後半変動選択テーブルのアドレス値)の値が最終的にDEレジスタの値によって得られることになる。
なお、本実施形態は、図157に示すように、各段のテーブルの参照先アドレス値が1段前のテーブルの参照先アドレス値との差分(図153)ではなく、1段目のテーブルの参照先アドレス値との差分である場合にも適用できる。つまり、「D_KOUGRP_T1HZ1」とラベルされる後半変動グループテーブルの2段目には「D_KOU_HZ02−D_KOU_HZ01」がコードされ、3段目には「D_KOU_HZ03−D_KOU_HZ01」がコードされる。また、4段目には「D_KOU_HZ04−D_KOU_HZ01」がコードされ、5段目には「D_KOU_HZ05−D_KOU_HZ01」がコードされるものとして、本実施形態を適用してもよい。
そして、図157の場合には、図154の左のテーブルに記載した差分値「02h」「04h」「0Ah」「06h」を、「02h」「06h」「10h」「16h」に代えてデータを圧縮して、本実施形態を適用する。
[第18実施形態の作用・効果]
このように、第18実施形態によると、遊技機は、所定の始動条件(例えば、始動入賞領域やゲートへの遊技球の入球または通過)の成立により変動表示ゲームを実行し、該変動表示ゲームが特別結果となった場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備える。遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段(例えばROM111b)と、遊技制御プログラムにより所定の演算処理を行う演算処理手段(例えばCPU111a)と、を備える。遊技制御プログラム記憶手段は、一のアドレスが割り振られる記憶領域ごとにデータを記憶する。演算処理手段は、遊技制御プログラム記憶手段から読み出した記憶領域のアドレス値を所定の数で積算したビット換算値を算出する換算命令(例えば「SQLA HL,3」)と、ビット換算値を起点(開始位置)として読み出す所定のビット長を指定し、所定のビット長のデータを読み出す毎に、ビット換算値に所定のビット長に対応する値を加算した値を算出する加算読出命令(例えば「LQDB BC,(HL+).16」)と、を実行可能に構成される。所定のビット長のデータは、変動表示ゲームの態様を振り分けるための振分値又は当該振分値に対応付けられた値である。演算処理手段は、加算読出命令によって、振分値又は当該振分値に対応付けられた値を読み出す。命令解釈実行手段(命令解釈実行回路1242)が解釈実行可能な命令セットは、このような換算命令と加算読出命令を含んでよい。なお、CPUコア102に(命令解釈実行回路1242)に、これらの命令を実行する専用論理回路を設けてよい。例えば、振分値に対応付けられた値とは、後半変動選択テーブルのアドレス(図153と図154の差分アドレス値)である。
このように、第18実施形態において、加算読出命令(LQDB命令)によって、1ビット長から16ビット長のうちの任意のビット長によってデータエリアの任意の位置からデータを読み出すことができる。
そのため、ROMに配置されたデータの状態に合わせて読み出し位置を設定し、また、読み出しビット長を設定することで、圧縮されたデータの読み出しとデータの復元ができるとともに、圧縮する程度(削除するビット長)を任意に決定することができる。また、加算読出命令で振分値又は当該振分値に対応付けられた値を読み出した後、次の読み出し位置は、この実行した加算読出命令によって他の命令を実行することなく設定されており、連続した読み出しが簡便に実行できる。
また、任意のビット長によって連続的に読み出したデータが8ビット又は16ビットに満たないビット長となった場合には、当該不足する桁分(不足するビット数分)については自動的に0データによって埋められるため、ROMに配置されたデータの圧縮状態に依らずに8ビット長又は16ビット長のデータとして読み出すことができる。
[第19実施形態]
図158から図164を参照して、第19実施形態について説明する。なお、以下で述べる以外の構成は、第1実施形態から第18実施形態までの実施形態と共通の構成でよい。
〔ハード乱数取得処理〕
第19実施形態に係るハード乱数取得処理は、第8実施形態に係るハード乱数取得処理(図127)と同一である。
〔特図始動口スイッチ共通処理〕
図158は、第19実施形態に係る特図始動口スイッチ共通処理の手順を示すフローチャートである。特図始動口スイッチ共通処理は、遊技制御装置100によって実行される。なお、第8実施形態に係る特図始動口スイッチ共通処理(図128)と同じ処理には同じステップ番号を付す。
遊技制御装置100は、まず、始動口信号出力回数を所定値(ここでは255)を上限に+1更新(1だけ増加)して(A10801)、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチに対応する更新対象の特図保留数(始動記憶数)が上限値未満か否かを判定する(A2905)。
更新対象の特図保留数が上限値未満でない場合(A2905の結果が「N」)は、特図始動口スイッチ共通処理を終了する。
また、更新対象の特図保留数が上限値未満である場合(A2905の結果が「Y」)は、更新対象の特図保留数(特図1保留数又は特図2保留数)を+1更新して(A2906)、対象の始動口入賞フラグをセーブする(A2907)。
次いで、遊技制御装置100は、監視対象の始動口スイッチ及び特図保留数に対応する乱数格納領域のアドレスを算出して(A2908)、監視対象の始動口スイッチ及び特図保留数に対応する飾り特図保留数コマンドを演出コマンドとして準備し(A2917)、演出コマンド設定処理(A2918)を実行する。
具体的には、例えば、監視対象の始動口スイッチが始動入賞口36(始動口1)であり、特図1保留数が「4」である場合には、監視対象の始動口スイッチ及び特図保留数に対応する乱数格納領域のアドレスとして、RWMの特図1乱数格納領域(図159)における保留数4用領域のアドレス、すなわち特図1の保留(第1始動記憶)に関する乱数格納領域(特図1保留記憶領域)における保留数4用領域のアドレスを算出する。
また、例えば、監視対象の始動口スイッチが普通変動入賞装置37(始動口2)であり、特図2保留数が「4」である場合には、監視対象の始動口スイッチ及び特図保留数に対応する乱数格納領域のアドレスとして、RWMの特図2乱数格納領域(図159)における保留数4用領域のアドレス、すなわち特図2の保留(第2始動記憶)に関する乱数格納領域(特図2保留記憶領域)における保留数4用領域のアドレスを算出する。
次いで、遊技制御装置100は、変動パターン乱数1から3を対応するRWMの変動パターン乱数格納領域にセーブする(A2915)。
具体的には、ステップA2908にてRWMの特図1乱数格納領域における保留数4用領域のアドレスが算出された場合には、例えば図159に示すように、当該保留数4用領域の変動パターン乱数1格納領域に変動パターン乱数1がセーブされ、当該保留数4用領域の変動パターン乱数2格納領域に変動パターン乱数2がセーブされ、当該保留数4用領域の変動パターン乱数3格納領域に変動パターン乱数3がセーブされる。
次いで、遊技制御装置100は、ハード乱数取得処理(図127)で準備したハード乱数ラッチレジスタのアドレス(A10701)の領域から大当り乱数を抽出し、RWMの大当り乱数格納領域にセーブする(A10802)。
具体的には、ステップA2908にてRWMの特図1乱数格納領域における保留数4用領域のアドレスが算出された場合には、例えば図159に示すように、大当り乱数が、ステップA10701にて準備したハード乱数ラッチレジスタのアドレスの領域から抽出されて、当該保留数4用領域の大当り乱数格納領域にセーブされる。
次いで、遊技制御装置100は、乱数領域(乱数生成回路内の所定のレジスタ)から大当り図柄乱数を抽出し、RWMの大当り図柄乱数格納領域にセーブする(A10803)。
具体的には、ステップA2908にてRWMの特図1乱数格納領域における保留数4用領域のアドレスが算出された場合には、例えば図159に示すように、当該保留数4用領域の大当り図柄乱数格納領域に大当り図柄乱数がセーブされる。
次いで、遊技制御装置100は、始動入賞口36(始動口1)への入賞であるか否かを判定する(A2912)。
始動入賞口36への入賞でない場合(A2912の結果が「N」)には、特図保留情報判定処理を実行して(A2916)、特図始動口スイッチ共通処理を終了する。
一方、始動入賞口36への入賞である場合(A2912の結果が「Y」)には、乱数領域(乱数生成回路内の所定のレジスタ)から小当り図柄乱数を抽出し、RWMの小当り図柄乱数格納領域にセーブして(A10804)、特図保留情報判定処理を実行し(A2916)、特図始動口スイッチ共通処理を終了する。
具体的には、ステップA2908にてRWMの特図1乱数格納領域における保留数4用領域のアドレスが算出された場合には、例えば図159に示すように、当該保留数4用領域の小当り図柄乱数格納領域に小当り図柄乱数がセーブされる。
特図1変動表示ゲームの結果には小当りがあるのに対し、特図2変動表示ゲームの結果には小当りがない。したがって、図159に示すように、RWMの乱数格納領域のうちの特図1乱数格納領域における保留数1用領域から保留数4用領域の各領域はそれぞれ8バイト分の領域であるのに対し、RWMの乱数格納領域のうちの特図2乱数格納領域における保留数1用領域から保留数4用領域の各領域はそれぞれ7バイト分の領域である。
図160は、第19実施形態に係る特図始動口スイッチ共通処理(図158)の一部のプログラム構造を示すプログラムリストである。なお、第9実施形態の図134Aと同じ内容のコードには、同じ行番号を付して説明を省略する。
行番号2500から行番号2590と行番号2610から行番号2650は、第9実施形態の図134Aと同様である。すなわち、図160では、第9実施形態の図134Aにおける行番号2600が削除されている。
行番号22010から行番号22030は、第9実施形態の図134Aにおける行番号2810から行番号2830と同様である。
行番号22040から行番号22070は、第9実施形態の図134Aにおける行番号2750から行番号2780と同様であり、特図始動口スイッチ共通処理(図158)のステップA2915に対応する。
すなわち、特図始動口スイッチ共通処理(図158)のステップA2915では、まず、乱数領域(変動パターン乱数1が生成される生成領域)から変動パターン乱数1を抽出して、WAレジスタにロードし(行番号22040)、RWMの変動パターン乱数1格納領域に、WAレジスタの変動パターン乱数1をロードする(行番号22050)。次いで、乱数領域(変動パターン乱数2と変動パターン乱数3が生成される生成領域)から変動パターン乱数2と変動パターン乱数3を抽出して、WAレジスタにロードし(行番号22060)、RWMの変動パターン乱数2格納領域と変動パターン乱数3格納領域に、WAレジスタの変動パターン乱数2と変動パターン乱数3をロードする(行番号22070)。したがって、特図始動口スイッチ共通処理(図158)のステップA2915の終了時点においてWAレジスタにセットされている乱数は、変動パターン乱数2と変動パターン乱数3である。
行番号22080から行番号22100は、特図始動口スイッチ共通処理(図158)のステップA10802に対応する。
行番号22080では、Eレジスタに格納されているアドレス(対象のハード乱数ラッチレジスタのアドレス)から2バイトの領域に記憶されている値(2バイトの大当り乱数)を、WAレジスタに入力する(コード「INW WA,(E)」)。
行番号22090では、現時点でHLレジスタに格納されているアドレスの領域(RAM内)、すなわち今回の入賞により発生した保留の乱数格納領域(保留数に対応する領域)に、WAレジスタの大当り乱数をロード(記憶)する(コード「LQD (HL+),WA」)。その後、HLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。
行番号22100では、DEレジスタに、WAレジスタの大当り乱数をロード(記憶)する(コード「LD DE,WA」)。これにより、大当り乱数が、WAレジスタの他にDEレジスタにも格納される。
すなわち、特図始動口スイッチ共通処理(図158)のステップA10802では、ハード乱数ラッチレジスタから大当り乱数を抽出して、WAレジスタにロードし(行番号22080)、RWMの大当り乱数格納領域に、WAレジスタの大当り乱数をロードして(行番号22090)、DEレジスタに、WAレジスタの大当り乱数をロードする(行番号22100)。したがって、特図始動口スイッチ共通処理(図158)のステップA10802の終了時点においてWAレジスタにセットされている乱数及びDEレジスタにセットされている乱数は両方とも、大当り乱数である。
行番号22110から行番号22120は、第9実施形態の図134Aにおける行番号2680から行番号2690と同様であり、特図始動口スイッチ共通処理(図158)のステップA10803に対応する。
行番号22130から行番号22140は、特図始動口スイッチ共通処理(図158)のステップA2912に対応する。
行番号22130では、加算アドレスIY+R_SIDOFLGの領域(RAM内)に記憶された始動口入賞フラグを、ラベルC_SIDO1に対応する数値(特図1を示す値)と比較して、一致するか(T)、一致しないか(F)を判定する(コード「CPJ (IY+R_SIDOFLG),C_SIDO1」)。一致する場合(T)には、例えば所定のフラグをセットする。
行番号22140では、行番号22130の比較結果が不一致(F)の場合、すなわち対象の始動口が始動口2である場合(始動口入賞フラグが特図2を示す場合)に、ラベルTSIDOSW10に対応するROM内アドレスへジャンプ(条件分岐)して、行番号22180以降の命令を実行する(コード「JRS F,TSIDOSW10」)。特図2変動表示ゲームでは小当りがなく、小当り図柄乱数を取得格納する必要がないためである。
行番号22150から行番号22160は、特図始動口スイッチ共通処理(図158)のステップA10804に対応する。
行番号22150では、乱数生成回路内の所定のレジスタ「C_SRND1_L」の値をWレジスタに入力する(コード「IN W,(C_SRND1_L)」)。
行番号22160では、小当り図柄乱数としてWレジスタの値を、現時点のHLレジスタに格納されているアドレスの領域にロードする(コード「LQD (HL+),W」。その後、現時点のHLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。
すなわち、特図始動口スイッチ共通処理(図158)のステップA10803では、乱数領域(乱数生成回路内の所定のレジスタ)から大当り図柄乱数を抽出して、Aレジスタにロードし(行番号22110)、RWMの大当り図柄乱数格納領域に、Aレジスタの大当り図柄乱数をロードする(行番号22120)。
また、特図始動口スイッチ共通処理(図158)のステップA10804では、乱数領域(乱数生成回路内の所定のレジスタ)から小当り図柄乱数を抽出して、Wレジスタにロードし(行番号22150)、RWMの小当り図柄乱数格納領域に、Wレジスタの小当り図柄乱数をロードする(行番号22160)。
したがって、特図始動口スイッチ共通処理(図158)のステップA10804の終了時点において、DEレジスタにセットされている乱数は大当り乱数であり、Aレジスタにセットされている乱数は大当り図柄乱数であり、Wレジスタにセットされている乱数は小当り図柄乱数である。
行番号22180は、第9実施形態の図134Aにおける行番号2790と同様である。すなわち、行番号22180は、特図始動口スイッチ共通処理(図158)のステップA2916に対応し、特図保留情報判定処理(本実施形態の場合、図25)のサブルーチン(ラベルP_THOINF)を呼び出す(コード「CALLR P_THOINF」)。
行番号22190は、第9実施形態の図134Aにおける行番号2840と同様である。すなわち、行番号22190では、始動口スイッチ監視処理(図22)に復帰する(コード「RET」)。
このように、第19実施形態においては、特図始動口スイッチ共通処理(図158)の特図保留情報判定処理(ステップA2916)の開始時点において、DEレジスタにセットされている乱数は大当り乱数であり、Aレジスタにセットされている乱数は大当り図柄乱数であり、Wレジスタにセットされている乱数は小当り図柄乱数(ただし、対象の始動口が始動口2である場合は除く)である。
〔特図保留情報判定処理〕
第19実施形態に係る特図保留情報判定処理は、第1実施形態に係る特図保留情報判定処理(図25)と同一である。
[第19実施形態の作用・効果]
第8実施形態の場合、図128に示すように、RWMの乱数格納領域には、大当り乱数→図柄乱数(大当り図柄乱数、小当り図柄乱数)→変動パターン乱数(変動パターン乱数1、変動パターン乱数2、変動パターン乱数3)の順で格納される。
そして、第8実施形態の場合、特図保留情報判定処理(図129)では、RWMの乱数格納領域のうちの対象の領域から大当り乱数をロードして(ステップA10901)、当該大当り乱数を大当り判定処理(ステップA3004)に使用し、RWMの乱数格納領域のうちの対象の領域から大当り図柄乱数をロードして(ステップA10902)、当該大当り図柄乱数に対応する停止図柄情報を取得し(ステップA10903)、RWMの乱数格納領域のうちの対象の領域から小当り図柄乱数をロードして(ステップA10904)、当該小当り図柄乱数に対応する停止図柄情報を取得する(ステップA10905)。
また、第8実施形態の場合、特図保留情報判定処理の変動パターン設定処理(図37)では、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数1をロードし、準備して(ステップA4303)、当該変動パターン乱数1を2バイト振り分け処理(ステップA4305)又は振り分け処理(ステップA4306)に使用し、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数2をロードし、準備して(ステップA4308)、当該変動パターン乱数2を振り分け処理(ステップA4309)に使用し、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数3をロードし、準備して(ステップA4314)、当該変動パターン乱数3を振り分け処理(ステップA4315)に使用する。
すなわち、第8実施形態において、事前判定(先読み判定)に用いる大当り乱数値、図柄乱数値及び変動パターン乱数値は、RWMの乱数格納領域から読み出した値である。
これに対し、第19実施形態の場合、図158に示すように、RWMの乱数格納領域には、変動パターン乱数(変動パターン乱数1、変動パターン乱数2、変動パターン乱数3)→大当り乱数→図柄乱数(大当り図柄乱数、小当り図柄乱数)の順で格納される。
そして、第19実施形態の場合、特図保留情報判定処理(図25)では、RWMの乱数格納領域のうちの対象の領域から大当り乱数をロードする処理(ステップA10901)を行わずに、大当り判定処理(ステップA3004)を行う。そして、この大当り判定処理では、DEレジスタの値(大当り乱数値)が使用される。
また、第19実施形態の場合、特図保留情報判定処理(図25)では、RWMの乱数格納領域のうちの対象の領域から大当り図柄乱数をロードする処理(ステップA10902)を行わずに、停止図柄情報を取得する処理(ステップA3007)を行う。そして、この処理では、Aレジスタの値(大当り図柄乱数値)に対応する停止図柄情報が取得される。
また、第19実施形態の場合、特図保留情報判定処理(図25)では、RWMの乱数格納領域のうちの対象の領域から小当り図柄乱数をロードする処理(ステップA10904)を行わずに、停止図柄情報を取得する処理(ステップA3012)を行う。そして、この処理では、Wレジスタの値(小当り図柄乱数値)に対応する停止図柄情報が取得される。
したがって、第19実施形態の場合、先読み対象の大当り乱数の値、先読み対象の大当り図柄乱数の値、及び先読み対象の小当り図柄乱数の値を、RWMの乱数格納領域(図159)から読み出さない。
また、第19実施形態の場合、特図保留情報判定処理の変動パターン設定処理(図37)では、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数1をロードし、準備して(ステップA4303)、当該変動パターン乱数1を2バイト振り分け処理(ステップA4305)又は振り分け処理(ステップA4306)に使用し、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数2をロードし、準備して(ステップA4308)、当該変動パターン乱数2を振り分け処理(ステップA4309)に使用し、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数3をロードし、準備して(ステップA4314)、当該変動パターン乱数3を振り分け処理(ステップA4315)に使用する。
したがって、第19実施形態の場合、第8実施形態等と同様、先読み対象の変動パターン乱数の値を、RWMの乱数格納領域(図159)から読み出す。
すなわち、第19実施形態において、事前判定(先読み判定)に用いる変動パターン乱数値は、RWMの乱数格納領域(図159)から読み出した値であるが、事前判定(先読み判定)に用いる大当り乱数値及び図柄乱数値は、RWMの乱数格納領域(図159)から読み出した値でなく、レジスタの値(本実施形態の場合、DEレジスタの値、Aレジスタの値、Wレジスタの値)である。
RWMの乱数格納領域から所望の乱数を読み出すためには、当該所望の乱数が格納されている領域のアドレスを算出する必要があるが、第19実施形態のように、RWMの乱数格納領域から読み出す乱数の個数を少なくすることで、アドレス算出処理にかかる負担を軽減することができるとともに、アドレス算出処理用のデータ等の記憶容量を削減することができる。
また、図159に示すように、RWMの乱数格納領域から読み出す乱数(本実施形態の場合、変動パターン乱数)を、RWMの乱数格納領域から読み出さない乱数(本実施形態の場合、大当り乱数、図柄乱数)よりも先頭に近い領域に格納することで、アドレス算出が容易になる。
さらに、RWMの乱数格納領域から読み出さない乱数(本実施形態の場合、大当り乱数、図柄乱数)は、RWMの乱数格納領域から読み出す乱数(本実施形態の場合、変動パターン乱数)よりも後にレジスタに記憶される。すなわち、事前判定にてレジスタの値が用いられる乱数が、事前判定を実行する直前に当該レジスタに記憶される。具体的には、本実施形態の場合、事前判定にてレジスタの値が用いられる大当り乱数、図柄乱数が、事前判定(特図保留情報判定処理)を実行する直前に当該レジスタ(DEレジスタ、Aレジスタ、Wレジスタ)に記憶される。よって、乱数(事前判定にてレジスタの値が用いられる乱数)がレジスタにセットされている状態を保護しやすいため、レジスタの使用状況等を考慮してプログラムを組む必要がなく、プログラム等の開発効率が向上する。
以上説明した第19実施形態によれば、始動条件の成立に基づき複数の識別情報を変動表示する変動表示ゲーム(特図変動表示ゲーム)を実行し、当該変動表示ゲームの結果が特別結果となった場合に遊技者に遊技価値を付与する特別遊技状態を発生する遊技機において、始動条件の成立に基づき複数種類の乱数を抽出してレジスタ(本実施形態の場合、変動パターン乱数はWAレジスタ、大当り乱数はWAレジスタ及びDEレジスタ、大当り図柄乱数はAレジスタ、小当り図柄乱数はWレジスタ)に記憶させ、当該レジスタに記憶された乱数を記憶手段(遊技制御装置100)の乱数格納領域に格納する乱数記憶制御手段(遊技制御装置100)と、乱数記憶制御手段によって抽出された乱数を、当該乱数に対応する変動表示ゲームが実行されるよりも前に判定する事前判定処理(本実施形態の場合、特図始動口スイッチ共通処理)を行う事前判定手段(遊技制御装置100)と、を備えている。そして、複数種類の乱数には、第1種類の乱数(本実施形態の場合、大当り乱数、大当り図柄乱数、小当り図柄乱数)と、第2種類の乱数(本実施形態の場合、変動パターン乱数)と、が含まれ、事前判定手段は、第1種類の乱数についてはレジスタから読み出して事前判定処理を行う一方、第2種類の乱数については乱数格納領域から読み出して事前判定処理を行い、第2種類の乱数は、乱数格納領域のうち、第1種類の乱数を格納する領域よりも前の領域に格納されている。
したがって、乱数格納領域から所望の乱数を読み出すためには、当該所望の乱数が格納されている領域のアドレスを算出する必要があるが、本実施形態のように、乱数格納領域から読み出す乱数の個数を少なくすることで、アドレス算出処理にかかる負担を軽減することができるとともに、アドレス算出処理用のデータ等の記憶容量を削減することができる。よって、事前判定処理(特図始動口スイッチ共通処理)の負担を軽減することができる。
さらに、乱数格納領域から読み出す乱数(本実施形態の場合、変動パターン乱数)を、乱数格納領域から読み出さない乱数(本実施形態の場合、大当り乱数、大当り図柄乱数、小当り図柄乱数)よりも先頭に近い領域に格納することで、アドレス算出が容易になる。よって、事前判定処理(特図始動口スイッチ共通処理)の負担を軽減することができる。
また、第19実施形態において、第1種類の乱数には、特別結果を導出するか否かを決定するための大当り乱数が含まれ、第2種類の乱数には、変動表示ゲームの変動パターンを決定するための変動パターン決定用乱数(本実施形態の場合、変動パターン乱数1から3)が含まれるよう構成することが可能である。
このように構成することによって、事前判定処理(特図始動口スイッチ共通処理)の負担を効果的に軽減することができる。
なお、大当り乱数は、第2種類の乱数であってもよい。
また、大当り図柄乱数は、第2種類の乱数であってもよい。
また、小当り図柄乱数は、第2種類の乱数であってもよい。
また、変動パターン乱数は、第1種類の乱数であってもよい。
また、事前判定に用いる変動パターン乱数値は、RWMの乱数格納領域から読み出した値ではなく、対応する乱数領域(変動パターン乱数が生成される生成領域)から再度抽出した値であってもよい。
また、事前判定に用いる図柄乱数値(大当り図柄乱数値、小当り図柄乱数値)は、レジスタの値(本実施形態の場合、Aレジスタの値、Wレジスタの値)ではなく、対応する乱数領域(乱数生成回路内の所定のレジスタ)から再度抽出した値であってもよい。
また、例えば図161に示すように、RWMの乱数格納領域とは別に、RAM111c等に事前判定用作業領域を設けて、特図始動口スイッチ共通処理(図158)のステップA10802にて、ハード乱数取得処理(図127)のステップA10701で準備したハード乱数ラッチレジスタのアドレスの領域から大当り乱数を抽出し、当該大当り乱数をRWMの大当り乱数格納領域にセーブするとともに、当該大当り乱数をRAM111c等の事前判定用作業領域に一時的にセーブするよう構成することも可能である。このように構成した場合、事前判定に用いる大当り乱数値は、レジスタの値(本実施形態の場合、DEレジスタの値)ではなく、RAM111c等の事前判定用作業領域から読み出した値であってもよい。
また、このように構成した場合、事前判定に用いる図柄乱数値(大当り図柄乱数値、小当り図柄乱数値)は、レジスタの値(本実施形態の場合、Aレジスタの値、Wレジスタの値)であってもよいし、RWMの乱数格納領域から読み出した値であってもよいし、対応する乱数領域(乱数生成回路内の所定のレジスタ)から再度抽出した値であってもよい。
また、このように構成した場合、事前判定に用いる変動パターン乱数値は、RWMの乱数格納領域から読み出した値であってもよいし、対応する乱数領域(変動パターン乱数が生成される生成領域)から再度抽出した値であってもよい。ここで、例えば、特図保留情報判定処理中に、特図始動口スイッチ共通処理(図160)の行番号22040(「LQD WA,(IY+R_RNDHEN1)」)及び行番号22060(「LQD WA,(IY+R_RNDHEN2)」)と同じ命令を実行することによって、事前判定に用いる変動パターン乱数値を、対応する乱数領域(変動パターン乱数が生成される生成領域)から再度抽出することができる。
すなわち、以上説明した第19実施形態によれば、始動条件の成立に基づき複数の識別情報を変動表示する変動表示ゲーム(特図変動表示ゲーム)を実行し、当該変動表示ゲームの結果が特別結果となった場合に遊技者に遊技価値を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備えた遊技機において、遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段と、遊技制御プログラムにより所要の演算処理を行う演算処理手段と、演算処理手段によって更新される情報が記憶される更新情報記憶手段と、複数の演算用レジスタからなるレジスタ群と、演算処理手段のアドレス空間における更新情報記憶手段の先頭アドレスを格納する先頭アドレス指定レジスタと、を備え、更新情報記憶手段には複数バイトのアドレスが割り当てられ、当該アドレスにより当該更新情報記憶手段に記憶されている情報が特定され、先頭アドレス指定レジスタに格納された先頭アドレスを基準とするオフセットアドレスによって、更新情報記憶手段のいずれかの記憶領域を指定し、当該記憶領域の値を所定の演算用レジスタに読み出す命令を実行可能に構成され、演算処理手段は、始動条件の成立に基づき複数種類の乱数を抽出して所定の演算用レジスタ(本実施形態の場合、変動パターン乱数はWAレジスタ、大当り乱数はWAレジスタ及びDEレジスタ、大当り図柄乱数はAレジスタ、小当り図柄乱数はWレジスタ)に記憶させ、当該演算用レジスタに記憶された乱数を更新情報記憶手段の乱数格納領域に格納する乱数記憶制御手段と、乱数記憶制御手段によって抽出された乱数を、当該乱数に対応する変動表示ゲームが実行されるよりも前に判定する事前判定処理(本実施形態の場合、特図始動口スイッチ共通処理)を行う事前判定手段と、を備えている。そして、複数種類の乱数には、第1種類の乱数(本実施形態の場合、大当り乱数、大当り図柄乱数、小当り図柄乱数)と、第2種類の乱数(本実施形態の場合、変動パターン乱数)と、が含まれ、事前判定手段は、第1種類の乱数については演算用レジスタから読み出して事前判定処理を行う一方、第2種類の乱数については前記命令により再度抽出して事前判定処理を行うよう構成することが可能である。
このように構成することによっても、乱数格納領域から所望の乱数を読み出すためには、当該所望の乱数が格納されている領域のアドレスを算出する必要があるが、本実施形態のように、乱数格納領域から読み出す乱数の個数を少なくすることで、アドレス算出処理にかかる負担を軽減することができるとともに、アドレス算出処理用のデータ等の記憶容量を削減することができる。よって、事前判定処理(特図始動口スイッチ共通処理)の負担を軽減することができる。
なお、「前記命令により再度抽出して事前判定処理を行う(すなわち、事前判定に用いる変動パターン乱数値を、対応する乱数領域(変動パターン乱数が生成される生成領域)から再度抽出する)」は、特図保留情報判定処理中に、特図始動口スイッチ共通処理(図160)の行番号22040(「LQD WA,(IY+R_RNDHEN1)」)及び行番号22060(「LQD WA,(IY+R_RNDHEN2)」)と同じ命令を実行することに限定されない。例えば、特図保留情報判定処理中に、行番号22040や行番号22060と読み出すレジスタを変えた類似の命令(「LQD A,(IY+R_RNDHEN2)」や「LQD B,(IY+R_RNDHEN3)」など)を実行することによって、前記命令により再度抽出して事前判定処理を行うよう構成することも可能である。
ここで、事前判定時には、変動パターン乱数はRWMの乱数格納領域(図159)から読み出し、大当り乱数や図柄乱数はRWMの乱数格納領域(図159)から読み出さないが、変動開始時には、変動パターン乱数だけでなく、大当り乱数や図柄乱数もRWMの乱数格納領域(図159)から読み出す。すなわち、変動開始時の判定に用いる変動パターン乱数値、大当り乱数値及び図柄乱数値は、RWMの乱数格納領域(図159)から読み出した値である。
具体的には、第19実施形態においては、第8実施形態等と同様、特図1変動開始処理の大当りフラグ1設定処理(図30)や特図2変動開始処理の大当りフラグ2設定処理(図31)では、RWMの乱数格納領域のうちの対象の領域から大当り乱数をロードし、準備(大当り乱数を読み出して所定レジスタにセット)して(ステップA3603,A3702)、当該対象の領域を0クリアして(ステップA3604,A3703)、当該大当り乱数値を大当り判定処理(ステップA3605,A3704)に使用する。
また、特図1変動開始処理の特図1停止図柄設定処理(図34)や特図2変動開始処理の特図2停止図柄設定処理(図35)では、RWMの乱数格納領域のうちの対象の領域から大当り図柄乱数をロード(大当り図柄乱数を読み出して所定レジスタにセット)し(ステップA4002,A4102)、当該大当り図柄乱数に対応する停止図柄番号を取得してセーブし(ステップA4004,A4104)、当該対象の領域を0クリアする(ステップA4022,A4116)。
また、特図1変動開始処理の特図1停止図柄設定処理(図34)では、RWMの乱数格納領域のうちの対象の領域から小当り図柄乱数をロード(小当り図柄乱数を読み出して所定レジスタにセット)し(ステップA4011)、当該小当り図柄乱数に対応する停止図柄番号を取得してセーブし(ステップA4013)、当該対象の領域を0クリアする(ステップA4023)。
また、特図1変動開始処理や特図2変動開始処理の変動パターン設定処理(図37)では、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数1をロードし、準備(変動パターン乱数1を読み出して所定レジスタにセット)して(ステップA4303)、当該変動パターン乱数1を2バイト振り分け処理(ステップA4305)又は振り分け処理(ステップA4306)に使用し、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数2をロードし、準備(変動パターン乱数2を読み出して所定レジスタにセット)して(ステップA4308)、当該変動パターン乱数2を振り分け処理(ステップA4309)に使用し、RWMの乱数格納領域のうちの対象の領域から変動パターン乱数3をロードし、準備(変動パターン乱数3を読み出して所定レジスタにセット)して(ステップA4314)、当該変動パターン乱数3を振り分け処理(ステップA4315)に使用する。そして、特図1変動開始処理や特図2変動開始処理の変動開始情報設定処理(図40)では、これら対象の領域をクリアして(ステップA4601)、乱数格納領域をシフトして(ステップA4613)、シフト後の空き領域をクリアする(ステップA4614)。
このように、変動開始時には、例えば図162に示すように、RWMの乱数格納領域における保留数1用領域から当該保留数1用領域に格納されている乱数(すなわち、変動対象の変動パターン乱数、変動対象の大当り乱数、及び変動対象の図柄乱数)を読み出して、変動開始時の各種判定を行う。
そして、保留数1用領域を0クリアする処理を行った後、RWMの乱数格納領域をシフトする処理を行う。例えば、特図1の変動開始時であって、RWMの特図1乱数格納領域における保留数4用領域が埋まっている場合には、このシフトする処理において、保留数2用領域の各乱数を保留数1用領域にシフトし、保留数3用領域の各乱数を保留数2用領域にシフトし、保留数4用領域の各乱数を保留数3用領域にシフトする。その後、空き領域となった保留数4用領域を0クリアする処理を行う。
なお、例えば図163に示すように、RWMの乱数格納領域のうち保留数1用領域よりも先頭に近い位置に、変動保留用領域を設けるよう構成することも可能である。このように構成することによって、変動対象となる格納領域(すなわち保留数1用領域)の内容を全て変動保留用領域にシフトした後、当該変動保留用領域の乱数を使用して変動開始時の各種判定を行うことが可能となる。
具体的には、例えば図163に示すように、まず、RWMの乱数格納領域をシフトする処理(例えば、特図1の変動開始時であって、RWMの特図1乱数格納領域における保留数4用領域が埋まっている場合には、保留数1用領域の各乱数を変動保留用領域にシフトし、保留数2用領域の各乱数を保留数1用領域にシフトし、保留数3用領域の各乱数を保留数2用領域にシフトし、保留数4用領域の各乱数を保留数3用領域にシフトする処理)を行い、空き領域となった保留数4用領域を0クリアする処理を行う。そして、RWMの乱数格納領域における変動保留用領域から当該変動保留用領域に格納されている乱数(すなわち、変動対象の変動パターン乱数、変動対象の大当り乱数、及び変動対象の図柄乱数)の値を読み出した後、当該読み出した値を用いて変動開始時の各種判定を行うとともに、当該変動保留用領域を0クリアすることが可能となる。
また、例えば図164に示すように、RWMの乱数格納領域とは別に、RAM111c等に変動保留用作業領域を設けるよう構成することも可能である。このように構成することによって、変動対象となる格納領域(すなわち保留数1用領域)の内容を全て変動保留用作業領域にシフトした後、当該変動保留用作業領域の乱数を使用して変動開始時の各種判定を行うことが可能となる。
具体的には、例えば図164に示すように、まず、特図1の変動開始時である場合にはRWMの特図1乱数格納領域における保留数1用領域の各乱数をRAM111c等の変動保留用作業領域にシフトし、特図2の変動開始時である場合にはRWMの特図2乱数格納領域における保留数1用領域の各乱数をRAM111c等の変動保留用作業領域にシフトする。ただし、特図2変動表示ゲームの結果には小当りがないため、特図2の変動開始時である場合には、RAM111c等の変動保留用作業領域のうちの小当り図柄乱数格納領域は使用されない。
その後、RWMの乱数格納領域をシフトする処理(例えば、特図1の変動開始時であって、RWMの特図1乱数格納領域における保留数4用領域が埋まっている場合には、保留数2用領域の各乱数を保留数1用領域にシフトし、保留数3用領域の各乱数を保留数2用領域にシフトし、保留数4用領域の各乱数を保留数3用領域にシフトする処理)を行い、空き領域となった保留数4用領域を0クリアする処理を行う。そして、RAM111c等の変動保留用作業領域から当該変動保留用作業領域に格納されている乱数(すなわち、変動対象の変動パターン乱数、変動対象の大当り乱数、及び変動対象の図柄乱数)の値を読み出した後、当該読み出した値を用いて変動開始時の各種判定を行うとともに、当該変動保留用作業領域を0クリアすることが可能となる。
[第19実施形態の変形例]
図165から図168を参照して、第19実施形態の変形例について説明する。
上記第19実施形態において、大当り乱数や図柄乱数(大当り図柄乱数、小当り図柄乱数)は、乱数生成回路において生成される乱数を使用して生成するように構成されている。
ただし、大当り乱数はCPUの動作クロックと同等以上の速度のクロックを基にして更新される所謂「高速カウンタ」であり、図柄乱数はプログラムの処理単位であるタイマ割込み処理と同周期となるCTC出力(タイマ割込み処理のCTC(CTC0)とは別のCTC(CTC2))を基にして更新される所謂「低速カウンタ」である。また、図柄乱数においては、乱数が一巡するごとに各々の初期値乱数(ソフトウェアで生成)を用いてスタート値を変更する所謂「初期値変更方式」を採用している。
つまり、上記第19実施形態において、大当り乱数はハードウェアのみで更新される乱数であり、図柄乱数(大当り図柄乱数、小当り図柄乱数)はハードウェア及びソフトウェアで更新される乱数である。
本変形例においても、大当り乱数や図柄乱数(大当り図柄乱数、小当り図柄乱数)は、乱数生成回路において生成される乱数を使用して生成するように構成されている。
ただし、図柄乱数は、大当り乱数と同様、CPUの動作クロックと同等以上の速度のクロックを基にして更新される所謂「高速カウンタ」である。なお、前記各乱数は、一巡するまで範囲内のすべての値が重複なくバラバラに出現するランダム式更新であるが、+1あるいは−1によるカウンタ式更新でもよい。
つまり、本変形例において、図柄乱数(大当り図柄乱数、小当り図柄乱数)は、大当り乱数と同様、ハードウェアのみで更新される乱数である。すなわち、本変形例において、大当り乱数及び図柄乱数は、乱数生成回路のハードウェアで生成されるハード乱数(ハードウェア乱数)である。
また、上記第19実施形態においては、遊技球が始動口を通過した際に、自動的に乱数生成回路で生成されるハード乱数(大当り乱数)がハード乱数ラッチレジスタに記憶される。すなわち、上記第19実施形態においては、大当り乱数が始動入賞時に乱数生成回路から抽出されてハード乱数ラッチレジスタに記憶されるので、事前判定時に当該ハード乱数ラッチレジスタから大当り乱数を抽出するために、始動口スイッチ監視処理ではハード乱数取得処理(図127)を実行する。
一方、本変形例においては、遊技球が始動口を通過しても、自動的に乱数カウンタの値(乱数生成回路で生成されるハード乱数、すなわち大当り乱数)がハード乱数ラッチレジスタに記憶されない。すなわち、本変形例においては、大当り乱数が始動入賞時にハード乱数ラッチレジスタに記憶されないので、ハード乱数取得処理を実行しない。なお、本変形例の場合、大当り乱数は、図柄乱数(大当り図柄乱数、小当り図柄乱数)と同様、事前判定時に乱数生成回路(具体的には、乱数生成回路内の所定のレジスタ)から抽出される。
〔始動口スイッチ監視処理〕
図165は、第19実施形態の変形例に係る始動口スイッチ監視処理の手順を示すフローチャートである。始動口スイッチ監視処理は、遊技制御装置100によって実行される。なお、第1実施形態に係る始動口スイッチ監視処理(図22)と同じ処理には同じステップ番号を付して説明を省略する。
図165では、図22のステップA2702,A2710が削除されている。すなわち、前述したように、本変形例では、ハード乱数取得処理を実行しない。
〔特図始動口スイッチ共通処理〕
図166は、第19実施形態の変形例に係る特図始動口スイッチ共通処理の手順を示すフローチャートである。特図始動口スイッチ共通処理は、遊技制御装置100によって実行される。なお、上記第19実施形態に係る特図始動口スイッチ共通処理(図158)と同じ処理には同じステップ番号を付して説明を省略する。
図166では、図158のステップA10802の代わりにステップA10805及びA10806が設けられている。
遊技制御装置100は、ステップA2908の処理を行った後、乱数領域(乱数生成回路内の所定のレジスタ)から大当り乱数を抽出して(ステップA10805)、ステップA2917の処理を行う。
また、遊技制御装置100は、ステップA2915の処理を行った後、ステップA10805で抽出した大当り乱数を、RWMの大当り乱数格納領域にセーブして(A10806)、ステップA10803の処理を行う。
図167は、第19実施形態の変形例に係る始動口スイッチ監視処理(図165)の一部のプログラム構造を示すプログラムリストである。なお、第8実施形態の図132と同じ内容のコードには、同じ行番号を付して説明を省略する。
行番号1500から行番号1510と、行番号1540から行番号1610とは、第8実施形態の図132と同様である。
行番号21010から行番号21030は、始動口スイッチ監視処理(図165)のA2703に対応する。
行番号21010では、現時点でHLレジスタに格納されているアドレスの領域(例えばROMのデータエリア内)に記憶された値をAレジスタにロードした後、HLレジスタ内のアドレスを次のアドレスに更新する(コード「LD A,(HL+)」)。現時点でHLレジスタに格納(記憶)されているアドレスは、行番号1510で設定されている。
行番号21020では、対象のスイッチに関する情報が格納されたスイッチ制御領域のうち立ち上がり情報が格納されるアドレスR_SWCTL+2から立ち上がり情報を取得して、Aレジスタのスイッチビットデータ(判定値)と論理積を取って、当該スイッチがオンしたか否かの判定を行う(コード「AND A,(R_SWCTL+2)」)。
行番号21030では、行番号21020の演算結果(論理積)がゼロになりゼロフラグ(ZF)がセットされている場合、すなわち対象のスイッチがオフである場合に、ラベルSIDOSW20に対応するROM内アドレスへジャンプ(条件分岐)する(コード「JR Z,SIDOSW20」)。
図168は、第19実施形態の変形例に係る特図始動口スイッチ共通処理(図166)の一部のプログラム構造を示すプログラムリストである。なお、上記第19実施形態の図160と同じ内容のコードには、同じ行番号を付して説明を省略する。
行番号2500から行番号2650と、行番号22010から行番号22070と、行番号22130から行番号22140と、行番号22170から行番号22190とは、上記第19実施形態の図160と同様である。
行番号23010から行番号23020は、特図始動口スイッチ共通処理(図166)のステップA10805に対応する。
行番号23010では、乱数生成回路内の所定のレジスタ「C_HRND0」の値をWAレジスタに入力する(コード「INW WA,(C_HRND0)」)。所定のレジスタは、ハード乱数レジスタ0である。
行番号23020では、大当り乱数としてWAレジスタの値を、DEレジスタにロード(記憶)する(コード「LD DE,WA」)。これにより、大当り乱数が、WAレジスタの他にDEレジスタにも格納される。
行番号23030は、特図始動口スイッチ共通処理(図166)のステップA10806に対応する。
行番号23030では、現時点でHLレジスタに格納されているアドレスの領域(RAM内)、すなわち今回の入賞により発生した保留の乱数格納領域(保留数に対応する領域)に、DEレジスタの大当り乱数をロード(記憶)する(コード「LQD (HL+),DE」)。その後、HLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。
行番号23040から行番号23050は、特図始動口スイッチ共通処理(図166)のA10803に対応する。
行番号23040では、乱数生成回路内の所定のレジスタ「C_HRND1」の値をAレジスタに入力する(コード「IN A,(C_HRND1)」)。所定のレジスタは、ハード乱数レジスタ1である。
行番号23050では、大当り図柄乱数としてAレジスタの値を、現時点のHLレジスタに格納されているアドレスの領域にロードする(コード「LQD (HL+),A」)。その後、現時点のHLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。
行番号23060から行番号23070は、特図始動口スイッチ共通処理(図166)のA10804に対応する。
行番号23060では、乱数生成回路内の所定のレジスタ「C_HRND2」の値をWレジスタに入力する(コード「IN W,(C_HRND2)」)。所定のレジスタは、ハード乱数レジスタ2である。
行番号23070では、小当り図柄乱数としてWレジスタの値を、現時点のHLレジスタに格納されているアドレスの領域にロードする(コード「LQD (HL+),W」)。その後、現時点のHLレジスタ内のアドレスを次のアドレスに更新する(「HL+」)。
[第19実施形態の変形例の作用・効果]
上記第19実施形態と同様、本変形例の場合、図166に示すように、RWMの乱数格納領域には、変動パターン乱数(変動パターン乱数1、変動パターン乱数2、変動パターン乱数3)→大当り乱数→図柄乱数(大当り図柄乱数、小当り図柄乱数)の順で格納される。
また、上記第19実施形態と同様、本変形例において、事前判定(先読み判定)に用いる変動パターン乱数値は、RWMの乱数格納領域から読み出した値であるが、事前判定(先読み判定)に用いる大当り乱数値及び図柄乱数値は、RWMの乱数格納領域から読み出した値でなく、レジスタの値(本変形例の場合、DEレジスタの値、Aレジスタの値、Wレジスタの値)である。
したがって、RWMの乱数格納領域から読み出す乱数の個数が少ないため、アドレス算出処理にかかる負担を軽減することができるとともに、アドレス算出処理用のデータ等の記憶容量を削減することができる。
また、RWMの乱数格納領域から読み出す乱数(本変形例の場合、変動パターン乱数)が、RWMの乱数格納領域から読み出さない乱数(本変形例の場合、大当り乱数と図柄乱数)よりも先頭に近い領域に格納されているため、アドレス算出が容易になる。
また、事前判定にてレジスタの値が用いられる乱数(本変形例の場合、大当り乱数、図柄乱数)が、事前判定(特図保留情報判定処理)を実行する直前に当該レジスタ(本変形例の場合、DEレジスタ、Aレジスタ、Wレジスタ)に記憶される。よって、乱数(事前判定にてレジスタの値が用いられる乱数)がレジスタにセットされている状態を保護しやすいため、レジスタの使用状況等を考慮してプログラムを組む必要がなく、プログラム等の開発効率が向上する。
さらに、本変形例においては、事前判定時に、大当り乱数→変動パターン乱数(変動パターン乱数1、変動パターン乱数2、変動パターン乱数3)→図柄乱数(大当り図柄乱数、小当り図柄乱数)の順で抽出される。すなわち、大当り乱数の抽出の後に図柄乱数が抽出され、さらに、大当り乱数の抽出と図柄乱数の抽出との間に条件分岐命令が実行される。
具体的には、図166に示すように、本変形例においては、大当り乱数の抽出(ステップA10805)と、大当り図柄乱数の抽出(ステップA10803)及び小当り図柄乱数の抽出(ステップA10804)との間に、演出コマンド設定処理(ステップA2918)を実行する。演出コマンド設定処理は、図59に示すように、条件分岐命令を含む処理である。
そして、前述したように、本変形例の場合、大当り乱数も図柄乱数も、CPUの動作クロックと同等以上の速度のクロックを基にして更新される所謂「高速カウンタ」であるため、大当り乱数や図柄乱数は、大当り乱数の抽出と図柄乱数の抽出との間も随時更新される。
したがって、大当り乱数の抽出と図柄乱数の抽出との間にステート数が固定とならない命令が挟まれているため、図柄乱数をより更新させることができ、大当り乱数に対応する図柄乱数が固定となることを回避することができる。よって、当りを引いた際の図柄を故意に決定する等の乱数の狙い打ちができないため、不正行為を効果的に防止することができる。
以上説明した第19実施形態の変形例によれば、始動条件の成立に基づき複数の識別情報を変動表示する変動表示ゲーム(特図変動表示ゲーム)を実行し、当該変動表示ゲームの結果が特別結果となった場合に遊技者に遊技価値を付与する特別遊技状態を発生する遊技機において、始動条件の成立に基づき複数種類の乱数を抽出してレジスタ(本変形例の場合、大当り乱数はWAレジスタ及びDEレジスタ、変動パターン乱数はWAレジスタ、大当り図柄乱数はAレジスタ、小当り図柄乱数はWレジスタ)に記憶させ、当該レジスタに記憶された乱数を記憶手段(遊技制御装置100)の乱数格納領域に格納する乱数記憶制御手段(遊技制御装置100)と、乱数記憶制御手段によって抽出された乱数を、当該乱数に対応する変動表示ゲームが実行されるよりも前に判定する事前判定処理(本変形例の場合、特図始動口スイッチ共通処理)を行う事前判定手段(遊技制御装置100)と、を備えている。そして、複数種類の乱数には、特別結果を導出するか否かを決定するための大当り乱数と、特別結果を導出する場合の識別情報の種類を決定するための大当り図柄乱数と、が含まれ、乱数記憶制御手段は、大当り乱数の抽出の後に大当り図柄乱数を抽出し(図166参照)、大当り乱数の抽出と大当り図柄乱数の抽出との間に、条件分岐命令(本変形例の場合、演出コマンド設定処理(図166のステップA2918))が実行される。
具体的には、以上説明した第19実施形態の変形例によれば、遊技機10は、始動条件の成立に基づき複数の識別情報を変動表示する変動表示ゲーム(特図変動表示ゲーム)を実行し、当該変動表示ゲームの結果が特別結果となった場合に遊技者に遊技価値を付与する特別遊技状態を発生させる遊技制御を行う遊技制御手段(遊技制御装置100)を備えている。そして、遊技制御手段は、遊技制御プログラムを記憶する遊技制御プログラム記憶手段と、遊技制御プログラムにより所要の演算処理を行う演算処理手段と、演算処理手段によって更新される情報が記憶される更新情報記憶手段と、複数のレジスタからなるレジスタ群と、を備え、更新情報記憶手段には複数バイトのアドレスが割り当てられ、当該アドレスにより当該更新情報記憶手段に記憶されている情報が特定され、レジスタ群には、2つのレジスタから各々構成される複数のレジスタペアが構成され、演算処理手段は、所定のレジスタペア又は所定のレジスタに記憶された値を、他のレジスタペアに設定されたアドレスに対応して更新情報記憶手段のいずれかの記憶領域に格納した後、当該他のレジスタペアに設定されたアドレスを更新する格納命令を実行可能に構成され、始動条件の成立に基づき複数種類の乱数を抽出して所定のレジスタペア又は所定のレジスタ(本変形例の場合、大当り乱数はWAレジスタ及びDEレジスタ、変動パターン乱数はWAレジスタ、大当り図柄乱数はAレジスタ、小当り図柄乱数はWレジスタ)に記憶させ、当該レジスタペア又はレジスタに記憶された乱数を前記格納命令(図168の行番号22050、行番号22070、行番号23030、行番号23050、行番号23070の命令)によって更新情報記憶手段の乱数格納領域に格納する乱数記憶制御手段と、乱数記憶制御手段によって抽出された乱数を、当該乱数に対応する変動表示ゲームが実行されるよりも前に判定する事前判定処理(本変形例の場合、特図始動口スイッチ共通処理)を行う事前判定手段と、を備えている。そして、複数種類の乱数には、特別結果を導出するか否かを決定するための大当り乱数と、特別結果を導出する場合の識別情報の種類を決定するための大当り図柄乱数と、が含まれ、乱数記憶制御手段は、大当り乱数の抽出の後に大当り図柄乱数を抽出し(図166参照)、大当り乱数の抽出と大当り図柄乱数の抽出との間に、条件分岐命令(本変形例の場合、演出コマンド設定処理(図166のステップA2918))が実行される。
したがって、大当り乱数の抽出と大当り図柄乱数の抽出との間にステート数が固定とならない命令を挟むことで、大当り乱数に対応する大当り図柄乱数が固定となることを回避することができる。よって、乱数の狙い打ちができないため、不正行為を効果的に防止することができる。
また、第19実施形態の変形例において、複数種類の乱数には、さらに変動表示ゲームの変動パターンを決定するための変動パターン決定用乱数(本変形例の場合、変動パターン乱数1から3)が含まれ、乱数記憶制御手段(遊技制御装置100)は、大当り乱数の抽出の後に変動パターン決定用乱数を抽出し、当該変動パターン決定用乱数の抽出の後に大当り図柄乱数を抽出するよう構成することが可能である(図166参照)。
このように構成することによって、大当り図柄乱数をより更新させることができるため、不正行為をより効果的に防止することができる。
また、第19実施形態の変形例において、大当り乱数及び大当り図柄乱数は、乱数生成回路によって生成されるハードウェア乱数であり、事前判定処理(本変形例の場合、特図始動口スイッチ共通処理)において当該乱数生成回路から抽出されるよう構成することが可能である。
このように構成することによって、不正行為をより効果的に防止することができる。
なお、本発明は、以上説明した実施形態に限定されることなく、その技術的思想の範囲内において種々の変形や変更が可能であり、それらも本発明の技術的範囲に含まれることが明白である。例えば、複数の実施形態や変形例を組み合わせることも可能である。
さらに、各実施形態のコードにおけるレジスタは他のレジスタに置き換えることもでき、例えば、加算アドレス「IY+・・・」だけでなく「IX+・・・」や「HL+・・・」も使用できる。そして、各実施形態のコードにおいて複数のレジスタが使用される場合には、複数のレジスタの組み合わせは任意でよいし入れ替えてもよく、例えば、コード「LQD B,(DE+)」(DEレジスタに格納されたアドレス値の領域の値をBレジスタに格納した後にDEレジスタのアドレス値を更新するコード)やコード「AQND C,(WA+)」(WAレジスタに格納されたアドレス値の領域の値とCレジスタの値の論理積を演算した後に、WAレジスタのアドレス値を更新するコード)なども使用可能である。
また、パチンコ機以外のパチスロ機等の遊技機(例えば役物比率や出玉率が定義できるもの)にも本発明を適用可能である。
本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味及び内容の範囲でのすべての変更が含まれることが意図される。