以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
本発明の実施形態の理解を容易にするため、まず、遊技機の機械的構成および電気的構成を簡単に説明し、その後、各基板における具体的な処理を説明する。
図1は、本実施形態の遊技機100の斜視図であり、扉が開放された状態を示している。図示のように、遊技機100は、略矩形状に組まれた四辺によって囲繞空間が形成される外枠102と、この外枠102にヒンジ機構によって開閉自在に取り付けられた中枠104と、この中枠104に、ヒンジ機構によって開閉自在に取り付けられた前枠106と、を備えている。
中枠104は、外枠102と同様に、略矩形状に組まれた四辺によって囲繞空間が形成されており、この囲繞空間に遊技盤108が保持されている。また、前枠106には、ガラス製または樹脂製の透過板110が保持されている。そして、これら中枠104および前枠106を外枠102に対して閉じると、遊技盤108と透過板110とが所定の間隔を維持して略平行に対面するとともに、遊技機100の正面側から、透過板110を介して遊技盤108が視認可能となる。
図2は、遊技機100の正面図である。この図に示すように、前枠106の下部には、遊技機100の正面側に突出する操作ハンドル112が設けられている。この操作ハンドル112は、遊技者が回転操作可能に設けられており、遊技者が操作ハンドル112を回転させて発射操作を行うと、当該操作ハンドル112の回転角度に応じた強度で、不図示の発射機構によって遊技球が発射される。このようにして発射された遊技球は、遊技盤108に設けられたレール114a、114b間を上昇して遊技領域116に導かれることとなる。
遊技領域116は、遊技盤108と透過板110との間隔に形成される空間であって、遊技球が流下または転動可能な領域である。遊技盤108には、多数の釘や風車が設けられており、遊技領域116に導かれた遊技球が釘や風車に衝突して、不規則な方向に流下、転動するようにしている。
遊技領域116は、発射機構の発射強度に応じて遊技球の進入度合いを互いに異にする第1遊技領域116aおよび第2遊技領域116bを備えている。第1遊技領域116aは、遊技機100に正対した遊技者から見て遊技領域116の左側に位置し、第2遊技領域116bは、遊技機100に正対した遊技者から見て遊技領域116の右側に位置している。レール114a、114bが遊技領域116の左側にあることから、発射機構によって所定の強度未満の発射強度で発射された遊技球は第1遊技領域116aに進入し、所定の強度以上の発射強度で発射された遊技球は第2遊技領域116bに進入することとなる。
また、遊技領域116には、遊技球が入球可能な一般入賞口118、第1始動口120、第2始動口122が設けられており、これら一般入賞口118、第1始動口120、第2始動口122に遊技球が入球すると、それぞれ所定の賞球が遊技者に払い出される。なお、賞球数は1個以上であれば何個でもよく、また、一般入賞口118、第1始動口120、第2始動口122のそれぞれで払い出す賞球数を異ならせてもよいし、同じ賞球数に設定してもよい。このとき、第1始動口120に遊技球が入球して払い出す賞球数を、第2始動口122に遊技球が入球して払い出す賞球数よりも少なく設定することも可能である。
なお、詳しくは後述するが、第1始動口120内には第1始動領域が設けられ、また、第2始動口122内には第2始動領域が設けられている。そして、第1始動口120または第2始動口122に遊技球が入球して第1始動領域または第2始動領域に遊技球が進入すると、予め設けられた複数の特別図柄の中からいずれか1の特別図柄を決定するための抽選が行われる。各特別図柄には、遊技者にとって有利な大役遊技の実行可否や、以後の遊技状態をどのような遊技状態にするかといった種々の遊技利益が対応付けられている。したがって、遊技者は、第1始動口120または第2始動口122に遊技球が入球すると、所定の賞球を獲得するのと同時に、種々の遊技利益を受ける権利獲得の機会を獲得することとなる。
また、第2始動口122には、可動片122bが開閉可能に設けられており、この可動片122bの状態に応じて、第2始動口122への遊技球の進入容易性が変化するようになっている。具体的には、可動片122bが閉状態にあるときには、第2始動口122への遊技球の入球が不可能となっている。これに対して、遊技領域116に設けられたゲート124内の進入領域を遊技球が通過すると、後述する普通図柄の抽選が行われ、この抽選によって当たりに当選すると、可動片122bが所定時間、開状態に制御される。このように、可動片122bが開状態になると、当該可動片122bが遊技球を第2始動口122に導く受け皿として機能し、第2始動口122への遊技球の入球が容易となる。なお、ここでは、第2始動口122が閉状態にあるときに、当該第2始動口122への遊技球の入球が不可能であることとしたが、第2始動口122が閉状態にある場合にも一定の頻度で遊技球が入球可能となるように構成してもよい。
さらに、遊技領域116には、遊技球が入球可能な大入賞口128が設けられている。この大入賞口128には、開閉扉128bが開閉可能に設けられており、通常、開閉扉128bが大入賞口128を閉鎖して、大入賞口128への遊技球の入球が不可能となっている。これに対して、前述の大役遊技や後述の小当たり遊技が実行されると、開閉扉128bが開放されて、大入賞口128への遊技球の入球が可能となる。そして、大入賞口128に遊技球が入球すると、所定の賞球が遊技者に払い出される。
なお、遊技領域116の最下部には、一般入賞口118、第1始動口120、第2始動口122、大入賞口128のいずれにも入球しなかった遊技球を、遊技領域116から遊技盤108の背面側に排出する排出口130が設けられている。
そして、遊技機100には、遊技の進行中等に演出を行う演出装置として、液晶表示装置からなる演出表示装置200、可動装置からなる演出役物装置202、さまざまな点灯態様や発光色に制御されるランプからなる演出照明装置204、スピーカからなる音声出力装置206、遊技者の操作を受け付ける演出操作装置208が設けられている。
演出表示装置200は、画像を表示する画像表示部からなる演出表示部200aを備えており、この演出表示部200aを、遊技盤108の略中央部分において、遊技機100の正面側から視認可能に配置している。この演出表示部200aには、図示のように演出図柄210a、210b、210cが変動表示され、これら各演出図柄210a、210b、210cの停止表示態様によって大役抽選結果が遊技者に報知される変動演出が実行されることとなる。
演出役物装置202は、演出表示部200aよりも前面に配置され、通常、遊技盤108の背面側に退避しているが、上記の演出図柄210a、210b、210cの変動表示中などに、演出表示部200aの前面まで可動して、遊技者に大当たりの期待感を付与するものである。
演出照明装置204は、演出役物装置202や遊技盤108等に設けられており、演出表示部200aに表示される画像等に合わせて、さまざまに点灯制御される。
音声出力装置206は、前枠106の上部位置や外枠102の最下部位置に設けられ、演出表示部200aに表示される画像等に合わせて、遊技機100の正面側に向けてさまざまな音声を出力する。
演出操作装置208は、遊技者の押下操作を受け付けるボタンで構成され、遊技機100の幅方向略中央位置であって、かつ、透過板110よりも下方位置に設けられている。この演出操作装置208は、演出表示部200aに表示される画像等に合わせて有効化されるものであり、操作有効期間内に遊技者の操作を受け付けると、当該操作に応じて、さまざまな演出が実行される。
なお、図中符号132は、遊技機100から払い出される賞球や、遊技球貸出装置から貸し出される遊技球が導かれる上皿であり、この上皿132が遊技球で一杯になると、遊技球は下皿134に導かれることとなる。また、この下皿134の底面には、当該下皿134から遊技球を排出するための球抜き孔(不図示)が形成されている。この球抜き孔は、通常、開閉板(不図示)によって閉じられているが、球抜きつまみ134aを図中左右方向にスライドさせることにより、当該球抜きつまみ134aと一体となって開閉板がスライドし、球抜き孔から下皿134の下方に遊技球を排出することが可能となっている。
また、遊技盤108には、遊技領域116の外方であって、かつ、遊技者が視認可能な位置に、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が設けられている。これら各表示器160〜172は、遊技に係る種々の状況を表示するための装置であるが、その詳細については後述する。
(制御手段の内部構成)
図3は、遊技の進行を制御する制御手段の内部構成を示すブロック図である。
主制御基板300は遊技の基本動作を制御する。この主制御基板300は、メインCPU300a、メインROM300b、メインRAM300cを備えている。メインCPU300aは、各検出スイッチやタイマからの入力信号に基づいて、メインROM300bに格納されたプログラムを読み出して演算処理を行うとともに、各装置や表示器を直接制御したり、あるいは演算処理の結果に応じて他の基板にコマンドを送信したりする。また、メインCPU300aは、演算処理時において、メインRAM300cやメインCPU300aの内部レジスタ(不図示)をデータのワークエリアとして用いる。
上記主制御基板300には、一般入賞口118に遊技球が入球したことを検出する一般入賞口検出スイッチ118s、第1始動口120に遊技球が入球したことを検出する第1始動口検出スイッチ120s、第2始動口122に遊技球が入球したことを検出する第2始動口検出スイッチ122s、ゲート124を遊技球が通過したことを検出するゲート検出スイッチ124s、大入賞口128に遊技球が入球したことを検出する大入賞口検出スイッチ128sが接続されており、これら各検出スイッチから主制御基板300に検出信号が入力されるようになっている。
また、主制御基板300には、第2始動口122の可動片122bを作動する普通電動役物ソレノイド122cと、大入賞口128を開閉する開閉扉128bを作動する大入賞口ソレノイド128cと、が接続されており、主制御基板300によって、第2始動口122および大入賞口128の開閉制御がなされるようになっている。
さらに、主制御基板300には、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が接続されており、主制御基板300によって、これら各表示器の表示制御がなされるようになっている。
また、遊技機100には、電波を検知する電波検知センサ、磁気を検知する磁気検知センサ、中枠104や前枠106の開放状態を検知する扉開放センサ等、異常または不正の可能性があることを検知する異常検知センサ174が複数設けられており、各異常検知センサ174から主制御基板300に異常検知信号が入力されるように構成されている。
さらに、遊技盤108の背面には、設定変更スイッチ180sが設けられている。設定変更スイッチ180sは、専用の鍵によってアクセスが可能に構成されており、鍵の操作によって、設定値を1〜6の6段階に設定可能に構成されている。詳しくは後述するが、本実施形態の遊技機100は、設定中の設定値に応じて遊技が進行するものであり、設定値ごとに有利度合いが異なっている。
また、本実施形態の遊技機100は、主に第1始動口120または第2始動口122への遊技球の入球によって開始される特別遊技と、ゲート124を遊技球が通過することによって開始される普通遊技とに大別される。そして、主制御基板300のメインROM300bには、特別遊技および普通遊技を進行するための種々のプログラムや、各種の遊技に必要なデータ、テーブルが記憶されている。
また、主制御基板300には、払出制御基板310および副制御基板330が接続されている。
払出制御基板310は、遊技球を発射させるための制御、および、賞球を払い出すための制御を行う。この払出制御基板310も、CPU、ROM、RAMを備えており、主制御基板300に対して双方向に通信可能に接続されている。この払出制御基板310には遊技情報出力端子板312が接続されており、主制御基板300から出力される遊技進行上の種々の情報が、払出制御基板310および遊技情報出力端子板312を介して、遊技店のホールコンピュータ等に出力されることとなる。
また、払出制御基板310には、貯留部に貯留された遊技球を賞球として遊技者に払い出すための払出モータ314が接続されている。払出制御基板310は、主制御基板300から送信された払出個数指定コマンドに基づいて払出モータ314を制御して所定の賞球を遊技者に払い出すように制御する。このとき、払い出された遊技球数が払出球計数スイッチ316sによって検出され、払い出すべき賞球が遊技者に払い出されたかが把握されるようになっている。
また、払出制御基板310には、下皿134の満タン状態を検出する皿満タン検出スイッチ318sが接続されている。この皿満タン検出スイッチ318sは、賞球として払い出される遊技球を下皿134に導く通路に設けられており、遊技球検出信号が払出制御基板310に入力されるようになっている。
そして、下皿134に所定量以上の遊技球が貯留されて満タン状態になると、下皿134に向かう通路内に遊技球が滞留し、皿満タン検出スイッチ318sから払出制御基板310に向けて、遊技球検出信号が連続的に入力される。払出制御基板310は、遊技球検出信号が所定時間連続して入力された場合に、下皿134が満タン状態であると判断し、皿満タンコマンドを主制御基板300に送信する。一方、皿満タンコマンドを送信した後、遊技球検出信号の連続入力が途絶えた場合には、満タン状態が解除されたと判断し、皿満タン解除コマンドを主制御基板300に送信する。
また、払出制御基板310には、遊技球の発射制御を行う発射制御回路320が設けられている。払出制御基板310には、操作ハンドル112に設けられ、当該操作ハンドル112に遊技者が触れたことを検出するタッチセンサ112sと、操作ハンドル112の操作角度を検出する操作ボリューム112aと、が接続されている。そして、タッチセンサ112sおよび操作ボリューム112aから信号が入力されると、発射制御回路320において、遊技球発射装置に設けられた発射用ソレノイド112cを通電して遊技球を発射させる制御がなされる。
副制御基板330は、主に遊技中や待機中等の各演出を制御する。この副制御基板330は、サブCPU330a、サブROM330b、サブRAM330cを備えており、主制御基板300に対して、当該主制御基板300から副制御基板330への一方向に通信可能に接続されている。サブCPU330aは、主制御基板300から送信されたコマンドやタイマからの入力信号等に基づいて、サブROM330bに格納されたプログラムを読み出して演算処理を行うとともに、演出を実行制御する。このとき、サブRAM330cは、サブCPU330aの演算処理時におけるデータのワークエリアとして機能する。
具体的には、副制御基板330は、上記演出表示部200aに画像を表示させる画像表示制御を行う。サブROM330bには、演出表示部200aに表示される図柄や背景等の画像データが多数格納されており、サブCPU330aが、画像データをサブROM330bから不図示のVRAMに読み出して、演出表示部200aの画像表示を制御する。
また、副制御基板330は、音声出力装置206から音声を出力させる音声出力制御や、演出役物装置202を可動したり演出照明装置204を点灯制御したりする。さらには、演出操作装置208が押下操作されたことを検出する演出操作装置検出スイッチ208sから操作検出信号が入力された際に、所定の演出を実行する。
なお、各基板には、不図示の電源基板が接続されており、電源基板を介して商用電源から各基板に電力供給がなされている。また、電源基板にはコンデンサからなるバックアップ電源が設けられている。
次に、本実施形態の遊技機100における遊技について、メインROM300bに記憶されている各種テーブルと併せて説明する。
前述したように、本実施形態の遊技機100は、特別遊技と普通遊技の2種類の遊技が並行して進行するものであり、これら両遊技を進行する際の遊技状態として、低確率遊技状態または高確率遊技状態のいずれかの遊技状態と、非時短遊技状態または時短遊技状態のいずれかの遊技状態と、が組み合わされたいずれかの遊技状態にて遊技が進行する。
各遊技状態の詳細については後述するが、低確率遊技状態というのは、大入賞口128が開放される大役遊技を実行する権利獲得の確率が低く設定された遊技状態であり、高確率遊技状態というのは、大役遊技を実行する権利獲得の確率が高く設定された遊技状態である。
また、非時短遊技状態というのは、可動片122bが開状態になりにくく、第2始動口122に遊技球が入球しにくい遊技状態であり、時短遊技状態というのは、非時短遊技状態よりも可動片122bが開状態になりやすく、第2始動口122に遊技球が入球しやすい遊技状態である。なお、遊技機100の初期状態は、低確率遊技状態および非時短遊技状態に設定され、この遊技状態を本実施形態では通常遊技状態と称する。
遊技者が操作ハンドル112を操作して遊技領域116に遊技球を発射させるとともに、遊技領域116を流下する遊技球が第1始動口120または第2始動口122に入球すると、遊技者に遊技利益を付与するか否かの抽選(以下、「大役抽選」という)が行われる。この大役抽選において、大当たりに当選すると、大入賞口128が開放されるとともに当該大入賞口128への遊技球の入球が可能となる大役遊技が実行され、また、当該大役遊技の終了後の遊技状態が、上記のいずれかの遊技状態に設定される。また、本実施形態では、大役抽選において小当たりに当選した場合、大入賞口128が開放される小当たり遊技が実行されるものの、小当たり遊技の終了後には遊技状態の設定は実行されない。このように、本実施形態による遊技機100における複数の当たり(大当たりおよび小当たり)は、遊技利益が異なるように設定されている。以下では、大役抽選方法について説明する。
なお、詳しくは後述するが、第1始動口120または第2始動口122に遊技球が入球すると、大役抽選に係る種々の乱数値(大当たり決定乱数、当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数)が取得されるとともに、これら各乱数値(保留情報)がメインRAM300cの特図保留記憶領域に記憶される。以下では、第1始動口120に遊技球が入球して特図保留記憶領域に記憶された種々の乱数を総称して特1保留とよび、第2始動口122に遊技球が入球して特図保留記憶領域に記憶された種々の乱数を総称して特2保留とよぶ。
メインRAM300cの特図保留記憶領域は、第1特図保留記憶領域と第2特図保留記憶領域とを備えている。第1特図保留記憶領域および第2特図保留記憶領域は、それぞれ4つの記憶部(第1〜第4記憶部)を有している。そして、第1始動口120に遊技球が入球すると、特1保留を第1特図保留記憶領域の第1記憶部から順に記憶し、第2始動口122に遊技球が入球すると、特2保留を第2特図保留記憶領域の第1記憶部から順に記憶する。
例えば、第1始動口120に遊技球が入球したとき、第1特図保留記憶領域の第1〜第4記憶部のいずれにも保留が記憶されていない場合には、第1記憶部に特1保留を記憶する。また、例えば、第1記憶部〜第3記憶部に特1保留が記憶されている状態で、第1始動口120に遊技球が入球した場合には、特1保留を第4記憶部に記憶する。また、第2始動口122に遊技球が入球した場合にも、上記と同様に、第2特図保留記憶領域の第1記憶部〜第4記憶部の中で、特2保留が記憶されていない、最も番号(序数)の小さい記憶部に特2保留が記憶される。
ただし、第1特図保留記憶領域および第2特図保留記憶領域に記憶可能な特1保留数(X1)および特2保留数(X2)は、それぞれ4つに設定されている。したがって、例えば、第1始動口120に遊技球が入球したときに、第1特図保留記憶領域に既に4つの特1保留が記憶されている場合には、当該第1始動口120への遊技球の入球によって新たに特1保留が記憶されることはない。同様に、第2始動口122に遊技球が入球したときに、第2特図保留記憶領域に既に4つの特2保留が記憶されている場合には、当該第2始動口122への遊技球の入球によって新たに特2保留が記憶されることはない。
次に、遊技機100における大役抽選に用いる大当たり判定テーブルについて図4および図5を用いて説明する。 図4は、低確時大当たり判定テーブルを説明する図であり、図5は高確時大当たり判定テーブルを説明する図である。遊技機100において、第1始動口120または第2始動口122に遊技球が入球すると、0〜65535の比較数値範囲内から1つの大当たり決定乱数が取得される。そして、大役抽選を開始するとき、すなわち、大当たりの判定を行うときの遊技状態、および、設定中の設定値に応じて大当たり判定テーブル(大当たりの判定に用いる比較数値範囲)が選択され、当該選択された大当たり判定テーブルと取得された大当たり決定乱数とによって大役抽選が行われる。
低確率遊技状態において、特1保留および特2保留について大役抽選を開始する場合には、図4(a)から図4(f)に示す低確時大当たり判定テーブルが参照される。ここで、本実施形態では、有利度合いを異にする6段階の設定値が設けられており、低確時大当たり判定テーブルは、設定値ごとに設けられている。遊技中は、設定値が6段階のうちのいずれかに設定されており、現在設定されている設定値に対応する低確時大当たり判定テーブルを参照して大役抽選が行われる。
低確率遊技状態において、設定値=1に設定されている場合には、図4(a)に示す低確時大当たり判定テーブルaを参照して大役抽選が行われる。この低確時大当たり判定テーブルaによれば、大当たり決定乱数が10001〜10218であった場合に大当たりと判定しする。したがって、この場合の大当たり確率は約1/300となる。
設定値=2に設定されている場合には、図4(b)に示す低確時大当たり判定テーブルbを参照して大役抽選が行われる。この低確時大当たり判定テーブルbによれば、大当たり決定乱数が10001〜10243であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/270となる。
設定値=3に設定されている場合には、図4(c)に示す低確時大当たり判定テーブルcを参照して大役抽選が行われる。この低確時大当たり判定テーブルcによれば、大当たり決定乱数が10001〜10273であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/240となる。
設定値=4に設定されている場合には、図4(d)に示す低確時大当たり判定テーブルdを参照して大役抽選が行われる。この低確時大当たり判定テーブルdによれば、大当たり決定乱数が10001〜10312であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/210となる。
設定値=5に設定されている場合には、図4(e)に示す低確時大当たり判定テーブルeを参照して大役抽選が行われる。この低確時大当たり判定テーブルeによれば、大当たり決定乱数が10001〜10364であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/180となる。
設定値=6に設定されている場合には、図4(f)に示す低確時大当たり判定テーブルfを参照して大役抽選が行われる。この低確時大当たり判定テーブルfによれば、大当たり決定乱数が10001〜10437であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/150となる。
また、高確率遊技状態において、特1保留および特2保留について大役抽選を開始する場合には、図5(a)から図5(f)に示す高確時大当たり判定テーブルが参照される。ここで、本実施形態では、低確時大当たり判定テーブルと同様に高確時大当たり判定テーブルが設定値ごとに設けられている。このため、高確率遊技状態において、現在設定されている設定値に対応する高確時大当たり判定テーブル(大当たりの判定に用いる比較数値範囲)を参照して大当たりの判定が行われる。
高確率遊技状態において、設定値=1に設定されている場合には、図5(a)に示す高確時大当たり判定テーブルaを参照して大役抽選が行われる。この高確時大当たり判定テーブルaによれば、大当たり決定乱数が10001〜10655であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/100となる。
設定値=2に設定されている場合には、図5(b)に示す高確時大当たり判定テーブルbを参照して大役抽選が行われる。この高確時大当たり判定テーブルbによれば、大当たり決定乱数が10001〜10728であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/90となる。
設定値=3に設定されている場合には、図5(c)に示す高確時大当たり判定テーブルcを参照して大役抽選が行われる。この高確時大当たり判定テーブルcによれば、大当たり決定乱数が10001〜10819であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/80となる。
設定値=4に設定されている場合には、図5(d)に示す高確時大当たり判定テーブルdを参照して大役抽選が行われる。この高確時大当たり判定テーブルdによれば、大当たり決定乱数が10001〜10936であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/70となる。
設定値=5に設定されている場合には、図5(e)に示す高確時大当たり判定テーブルeを参照して大役抽選が行われる。この高確時大当たり判定テーブルeによれば、大当たり決定乱数が10001〜11092であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/60となる。
設定値=6に設定されている場合には、図5(f)に示す高確時大当たり判定テーブルfを参照して大役抽選が行われる。この高確時大当たり判定テーブルfによれば、大当たり決定乱数が10001〜11310であった場合に大当たりと判定する。したがって、この場合の大当たり確率は約1/50となる。
以上のように、本実施形態による遊技機100は、低確率遊技状態および高確率状態のいずれに設定されている場合にも、設定中の設定値に応じて大役抽選が行われる。このとき、設定値に応じて、大当たりの当選確率が異なっており、設定値が高い場合の方が、低い場合に比べて、大当たりに当選しやすくなっている。また、本実施形態では、大当たり判定テーブルにおける比較数値範囲(大当たり決定乱数と比較する数値範囲)の下限値は同一の値(10001)となっている。これにより遊技機100は、大役抽選時において大当たり判定に係る制御処理手順を効率化することができる。大当たり判定の制御処理手順については後述する。
また、遊技機100において、高確率遊技状態である場合には、低確率遊技状態である場合に比べて、大当たりの当選確率が高くなる。また、ここでは、大当たりの当選確率は、設定値ごとに異なる構成としたが、低確率遊技状態または高確率遊技状態のいずれかにおける大当たりの当選確率を、全設定値で共通としてもよい。
また、図4では設定値ごとに低確時大当たり判定テーブルが設けられている例を示しているが、例えば遊技機100の記憶領域(例えばメインROM300b)において低確時大当たり判定テーブルは、設定ごとに異なる比較数値範囲を規定する一のテーブルとして構成されてもよい。また、高確時大当たり判定テーブルも同様に、設定ごとに異なる比較数値範囲を規定する一のテーブルとして構成されてもよい。
図6は、特1用小当たり判定テーブルを説明する図である。詳しくは後述するが、本実施形態による遊技機100は、大役抽選において大当たり決定乱数が大当たり判定テーブルの比較数値範囲に含まれない場合、すなわち大当たりに当選していないと判定された場合に、当該大当たり決定乱数が小当たりの当選範囲に含まれるか否かの小当たり判定を実行する。小当たり判定時には、第1始動口120に遊技球が入球したか、または、第2始動口122に遊技球が入球したかに応じて、すなわち保留種別に応じて小当たり判定テーブルが選択され、選択された小当たり判定テーブルと大当たり決定乱数とによって小当たり判定が行われる。
第1始動口120に遊技球が入球したことにより取得された大当たり決定乱数(特1保留)を用いて小当たりの判定を行う場合には、図6(a)に示す特1用小当たり判定テーブルが参照される。この特1用小当たり判定テーブルによれば、大当たり決定乱数が12001〜12819の比較数値範囲に含まれる場合に小当たりと判定する。したがって、この場合の小当たり確率は約1/80となる。
第2始動口122に遊技球が入球したことにより取得された大当たり決定乱数(特2保留)を用いて小当たりの判定を行う場合には、図6(b)に示す特2用小当たり判定テーブルが参照される。この特2用小当たり判定テーブルによれば、大当たり決定乱数が12001〜12799の比較数値範囲に含まれる場合に小当たりと判定する。したがって、この場合の小当たり確率は約1/82となる。このように、第2始動口122に遊技球が入球した場合には、第1始動口120に遊技球が入球した場合よりも、小当たりの当選確率が若干低く設定されている。また、大役抽選において大当たりにも小当たりにも当選しなかった場合、すなわち大当たり決定乱数が、大当たり判定テーブル(図4、図5参照)および特1用、特2用小当たり判定テーブルのいずれの比較数値範囲にも含まれない場合に、大役抽選においてハズレと判定される。なお、第2始動口122に遊技球が入球した場合に、第1始動口120に遊技球が入球した場合よりも、小当たりの当選確率が若干高く設定されていてもよい。
図7は、当たり図柄乱数判定テーブルを説明する図である。第1始動口120または第2始動口122に遊技球が入球すると、0〜99の範囲内から1つの当たり図柄乱数が取得される。そして、上記の大役抽選により「大当たり」または「小当たり」の判定結果が導出された場合に、取得している当たり図柄乱数と当たり図柄乱数判定テーブルとによって、特別図柄の種別が決定される。このとき、特1保留によって「大当たり」に当選した場合には、図7(a)に示すように、特1用当たり図柄乱数判定テーブルaが選択され、特1保留によって「小当たり」に当選した場合には、図7(b)に示すように、特1用当たり図柄乱数判定テーブルbが選択される。また、特2保留によって「大当たり」に当選した場合には、図7(b)に示すように、特2用当たり図柄乱数判定テーブルaが選択され、特2保留によって「小当たり」に当選した場合には、図7(d)に示すように、特2用当たり図柄乱数判定テーブルbが選択される。以下では、当たり図柄乱数によって決定される特別図柄のうち大当たりの判定結果が得られた場合に決定される特別図柄を大当たり図柄とよび、小当たりの判定結果が得られた場合に決定される特別図柄を小当たり図柄とよび、ハズレの判定結果が得られた場合に決定される特別図柄をハズレ図柄とよぶ。
図7(a)に示す特1用当たり図柄乱数判定テーブルa、および図7(c)に示す特2用当たり図柄乱数判定テーブルaによれば、取得した当たり図柄乱数の値に応じて、図示のとおり、特別図柄の種別(大当たり図柄)が決定される。また、図7(b)に示す特1用当たり図柄乱数判定テーブルb、および、図7(d)に示す特2用当たり図柄乱数判定テーブルbによれば、取得した当たり図柄乱数の値に応じて、図示のとおり、特別図柄の種別(小当たり図柄)が決定される。一方、大役抽選結果が「ハズレ」であった場合に、当該抽選結果が特1保留によって導出されたときは、抽選を行うことなくハズレ図柄として特別図柄Xが決定され、当該抽選結果が特2保留によって導出されたときは、抽選を行うことなくハズレ図柄として特別図柄Yが決定される。つまり、当たり図柄乱数判定テーブルは、大役抽選結果が「大当たり」または「小当たり」であった場合にのみ参照され、大役抽選結果が「ハズレ」であった場合に参照されることはない。
図8は、リーチグループ決定乱数判定テーブルを説明する図である。このリーチグループ決定乱数判定テーブルは複数設けられており、保留種別や保留数、さらには遊技状態に対応付けて設定される変動状態等に応じて1のテーブルが選択される。第1始動口120または第2始動口122に遊技球が入球すると、0〜10006の範囲内から1つのリーチグループ決定乱数が取得される。上記のように、大役抽選結果が導出されると、当該大役抽選結果を報知する変動演出パターンを決定する処理が行われる。本実施形態では、大役抽選結果が「ハズレ」であった場合に、変動演出パターンを決定するにあたって、まず、リーチグループ決定乱数とリーチグループ決定乱数判定テーブルとによってグループ種別が決定される。
例えば、遊技状態が非時短遊技状態に設定されており、変動状態が通常1変動状態に設定されているときに、特1保留に基づいて「ハズレ」の大役抽選結果が導出された場合において、大役抽選を行うときの特1保留数(以下、単に「保留数」という)が0個であれば、図8(a)に示すように、リーチグループ決定乱数判定テーブル1が選択される。同様に、保留数が1個であれば、図8(b)に示すように、リーチグループ決定乱数判定テーブル2が選択され、保留数が2、3個であれば、図8(c)に示すように、リーチグループ決定乱数判定テーブル3が選択される。なお、図8において、グループ種別の欄に記載しているグループxは、任意のグループ番号を示している。したがって、取得したリーチグループ決定乱数と、参照するリーチグループ決定乱数判定テーブルの種類とに応じて、グループ種別として種々のグループ番号が決定されることとなる。
このように、本実施形態では、変動演出パターンを決定するためのテーブルが、設定されている遊技状態に加えて、変動状態に基づいて決定される。つまり、変動状態とは、いずれのテーブルを参照して変動演出パターンを決定するかが規定されたものであり、遊技状態とは別に設定される概念である。
なお、大役抽選結果が「大当たり」または「小当たり」であった場合には、変動演出パターンを決定するにあたってグループ種別を決定することはない。つまり、リーチグループ決定乱数判定テーブルは、大役抽選結果が「ハズレ」であった場合にのみ参照され、大役抽選結果が「大当たり」であった場合に参照されることはない。
図9は、リーチモード決定乱数判定テーブルを説明する図である。このリーチモード決定乱数判定テーブルは、大役抽選結果が「ハズレ」であった場合に選択されるハズレ時リーチモード決定乱数判定テーブルと、大役抽選結果が「大当たり」であった場合に選択される大当たり時リーチモード決定乱数判定テーブルと、大役抽選結果が「小当たり」であった場合に選択される小当たり時リーチモード決定乱数判定テーブルと、に大別される。なお、ハズレ時リーチモード決定乱数判定テーブルは、上記のように決定されたグループ種別ごとに設けられており、大当たり時リーチモード決定乱数判定テーブルおよび小当たり時リーチモード決定乱数判定テーブルは、遊技状態や図柄種別ごとに設けられている。また、各リーチモード決定乱数判定テーブルは、保留種別ごとに設けてもよい。ここでは、所定の遊技状態および図柄種別において参照されるグループx用ハズレ時リーチモード決定乱数判定テーブルの一例を図9(a)に示し、大当たり時リーチモード決定乱数判定テーブルの一例を図9(b)に示し、特1用小当たり時リーチモード決定乱数判定テーブルの一例を図9(d)に示し、特2用小当たり時リーチモード決定乱数判定テーブルの一例を図9(e)に示す。
第1始動口120または第2始動口122に遊技球が入球すると、0〜250の範囲内から1つのリーチモード決定乱数が取得される。そして、上記の大役抽選の結果が「ハズレ」であった場合には、図9(a)に示すように、上記のグループ種別の抽選により決定されたグループ種別に対応するハズレ時リーチモード決定乱数判定テーブルが選択され、選択されたハズレ時リーチモード決定乱数判定テーブルとリーチモード決定乱数とに基づいて、変動モード番号が決定される。また、上記の大役抽選の結果が「大当たり」であった場合には、図9(b)、図9(c)に示すように、読み出された遊技状態や図柄の種別に対応する大当たり時リーチモード決定乱数判定テーブルが選択され、選択された大当たり時リーチモード決定乱数判定テーブルとリーチモード決定乱数とに基づいて、変動モード番号が決定される。さらに、上記の大役抽選の結果が「小当たり」であった場合には、図9(d)、図9(e)に示すように、読み出された保留種別に対応する小当たり時リーチモード決定乱数判定テーブルが選択され、選択された小当たり時リーチモード決定乱数判定テーブルとリーチモード決定乱数とに基づいて、変動モード番号が決定される。
また、各リーチモード決定乱数判定テーブルにおいては、リーチモード決定乱数に、変動モード番号とともに、後述する変動パターン乱数判定テーブルが対応付けられており、変動モード番号が決定されるのと同時に、変動パターン乱数判定テーブルが決定される。なお、図9において、変動パターン乱数判定テーブルの欄に記載しているテーブルxは、任意のテーブル番号を示している。したがって、取得したリーチモード決定乱数と、参照するリーチモード決定乱数判定テーブルの種類とに応じて、変動モード番号と、変動パターン乱数判定テーブルのテーブル番号とが決定されることとなる。また、本実施形態において、変動モード番号および後述する変動パターン番号は、16進数で設定されている。以下において、16進数を示す場合には「H」を付するが、図9〜図11に○○Hと記載しているのは、16進数で示される任意の値を示すものである。
以上のように、大役抽選結果が「ハズレ」であった場合には、まず、図8に示すリーチグループ決定乱数判定テーブルとリーチグループ決定乱数とによってグループ種別が決定される。そして、決定されたグループ種別と遊技状態に応じ、図9に示すハズレ時リーチモード決定乱数判定テーブルとリーチモード決定乱数とによって、変動モード番号および変動パターン乱数判定テーブルが決定される。
一方、大役抽選結果が「大当たり」または「小当たり」であった場合には、決定された大当たり図柄または小当たり図柄(特別図柄の種別)、大当たり、または、小当たり当選時の遊技状態等に応じ、図9に示す大当たり時リーチモード決定乱数判定テーブルとリーチモード決定乱数とによって、変動モード番号、変動パターン乱数判定テーブルが決定されることとなる。
図10は、変動パターン乱数判定テーブルを説明する図である。ここでは、所定のテーブル番号xの変動パターン乱数判定テーブルxを示すが、変動パターン乱数判定テーブルは、この他にも、テーブル番号ごとに多数設けられている。
第1始動口120または第2始動口122に遊技球が入球すると、0〜238の範囲内から1つの変動パターン乱数が取得される。そして、上記の変動モード番号と同時に決定された変動パターン乱数判定テーブルと、取得した変動パターン乱数とに基づいて、図示のように変動パターン番号が決定される。
このように、大役抽選が行われると、大役抽選結果、決定された図柄種別、遊技状態、保留数、保留種別等に応じて、変動モード番号、変動パターン番号が決定される。これら変動モード番号、変動パターン番号は、変動演出パターンを特定するものであり、そのそれぞれに、変動演出の態様および時間が対応付けられている。なお、以下では、変動モード番号および変動パターン番号を総称して変動情報と呼ぶ場合がある。
図11は、変動時間決定テーブルを説明する図である。上記のように、変動モード番号が決定されると、図11(a)に示す変動時間1決定テーブルにしたがって変動時間1が決定される。この変動時間1決定テーブルによれば、変動モード番号ごとに変動時間1が対応付けられており、決定された変動モード番号に応じて、対応する変動時間1が決定される。
また、上記のように、変動パターン番号が決定されると、図11(b)に示す変動時間2決定テーブルにしたがって変動時間2が決定される。この変動時間2決定テーブルによれば、変動パターン番号ごとに変動時間2が対応付けられており、決定された変動パターン番号に応じて、対応する変動時間2が決定される。このようにして決定された変動時間1、2の合計時間が、大役抽選結果を報知する変動演出の時間、すなわち、変動時間となる。
以上のようにして変動モード番号が決定されると、当該決定された変動モード番号に対応する変動モードコマンドが副制御基板330に送信され、変動パターン番号が決定されると、当該決定された変動パターン番号に対応する変動パターンコマンドが副制御基板330に送信される。副制御基板330においては、受信した変動モードコマンドに基づいて、主に変動演出の前半の態様が決定され、受信した変動パターンコマンドに基づいて、主に変動演出の後半の態様が決定されることとなる。以下では、変動モードコマンドおよび変動パターンコマンドを総称して変動コマンドと呼ぶ場合があるが、その詳細については後述する。
図12は、特別電動役物作動ラムセットテーブルを説明する図である。この特別電動役物作動ラムセットテーブルは、大役遊技または小当たり遊技を制御するための各種データが記憶されたものであり、大役遊技中および小当たり遊技中は、この特別電動役物作動ラムセットテーブルを参照して、大入賞口ソレノイド128cが通電制御される。なお、実際は、特別電動役物作動ラムセットテーブルは、特別図柄(大当たり図柄および小当たり図柄)の種別ごとに複数設けられており、決定された大当たり図柄の種別に応じて、対応するテーブルが大役遊技の開始時にセットされるが、ここでは、説明の都合上、1つのテーブルに全ての大当たり図柄の制御データを示す。
大当たり図柄である特別図柄A、B、C、または、小当たり図柄である特別図柄aが決定されると、図12に示すように、特別電動役物作動ラムセットテーブルを参照して大役遊技または小当たり遊技が実行される。大役遊技は、大入賞口128が所定回数開閉される複数回のラウンド遊技で構成され、小当たり遊技は、大入賞口128が所定回数開閉される1回の遊技で構成されている。この特別電動役物作動ラムセットテーブルによれば、オープニング時間(最初のラウンド遊技が開始されるまでの待機時間)、特別電動役物最大作動回数(1回の大役遊技または小当たり遊技中に実行されるラウンド遊技の回数)、特別電動役物開閉切替回数(1ラウンド中の大入賞口128の開放回数)、ソレノイド通電時間(大入賞口128の開放回数ごとの大入賞口ソレノイド128cの通電時間、すなわち、1回の大入賞口128の開放時間)、規定数(1回のラウンド遊技における大入賞口128への最大入賞可能数)、大入賞口閉鎖有効時間(ラウンド遊技間の大入賞口128の閉鎖時間、すなわち、インターバル時間)、エンディング時間(最後のラウンド遊技が終了してから、通常の特別遊技(後述する特別図柄の変動表示)が再開されるまでの待機時間)が、大役遊技の制御データとして、大当たり図柄の種別ごとに、図示のように予め記憶されている。
なお、大当たり図柄である特別図柄Bが決定された場合には、大入賞口128が0.1秒×1回開放されるラウンド遊技が2回行われる。これに対して、小当たり図柄である特別図柄aが決定された場合には、大入賞口128が0.1秒×2回開放される小当たり遊技が1回行われる。図示は省略しているが、特別図柄aが決定された場合における、大入賞口128の2回の開放間の休止時間(大入賞口128の閉鎖時間)は、特別図柄Bが決定された場合における、ラウンド遊技間の大入賞口閉鎖有効時間と等しい。したがって、特別図柄Bが決定された場合に実行される大役遊技と、特別図柄aが決定された場合に実行される小当たり遊技とでは、制御処理自体が異なるものの、大入賞口128の実際の開閉態様は同一となり、大入賞口128の開閉態様を見ただけでは、大役遊技が実行されているのか小当たり遊技が実行されているのかを遊技者は識別することができなくなっている。これにより、遊技機100は、今後の遊技の展開(例えば遊技状態の変化)を予想しづらくしてゲーム性を向上させることができる。また、本実施形態による遊技機100においては、小当たり遊技中において大入賞口128に遊技球が入球することは困難である。したがって、遊技機100では、小当たりに当選しても賞球の獲得は困難となっている。
図13は、大役遊技の終了後の遊技状態を設定するための遊技状態設定テーブルを説明する図である。図13に示すとおり、特別図柄Aが決定された場合には、大役遊技の終了後に低確率遊技状態に設定され、特別図柄B、Cが決定された場合には、大役遊技の終了後に高確率遊技状態に設定されるとともに、高確率遊技状態の継続回数(以下、「高確回数」という)は10000回に設定される。これは、大役抽選結果が10000回確定するまでの間、高確率遊技状態が継続することを意味している。ただし、上記した高確回数は1の高確率遊技状態における最大継続回数を示すものであり、上記の継続回数に到達するまでの間に大当たりに当選した場合には、再度、遊技状態の設定が行われることとなる。したがって、大役遊技の終了後に高確率遊技状態に設定された場合に、当該高確率遊技状態において大当たりの抽選結果が導出されることなく、ハズレの抽選結果が10000回導出されると、低確率遊技状態に遊技状態が変更されることとなる。
また、特別図柄A、B、Cが決定された場合には、大役遊技の終了後に、次のようにして時短遊技状態または非時短遊技状態に設定される。すなわち、特別図柄Aが決定された場合には、大役遊技の終了後に時短遊技状態に設定されるとともに、このとき、時短遊技状態の継続回数(以下、「時短回数」という)は100回に設定される。これは、大役抽選結果が100回確定するまでの間、時短遊技状態が継続することを意味している。
また、特別図柄Bが決定された場合には、大当たり当選時の遊技状態が時短遊技状態であれば、大役遊技の終了後にも時短遊技状態に設定され、このとき、時短回数は10000回に設定される。一方で、遊技状態が非時短遊技状態であるときに特別図柄Bが決定された場合には、大役遊技の終了後にも非時短遊技状態に設定される。
また、特別図柄Cが決定された場合、大当たり当選時の遊技状態に拘わらず、大役遊技の終了後も時短遊技状態に設定されるとともに、時短回数は10000回に設定される。ただし、上記した時短回数は1の時短遊技状態における最大継続回数を示すものであり、上記の継続回数に到達するまでの間に大当たりに当選した場合には、再度、遊技状態の設定が行われることとなる。
なお、ここでは、大当たり図柄の種別と、大当たり当選時の遊技状態とに応じて大役遊技の終了後の遊技状態および高確回数、時短回数を設定することとしたが本発明はこれに限られない。遊技機100において、大当たり当選時の遊技状態を問わず、大当たり図柄の種別に応じてのみ、遊技状態や高確回数、時短回数を設定してもよい。
図14は、当たり決定乱数判定テーブルを説明する図である。遊技領域116を流下する遊技球がゲート124を通過すると、第2始動口122の可動片122bを通電制御するか否かが対応付けられた普通図柄の判定処理(以下、「普図抽選」という)が行われる。
なお、詳しくは後述するが、遊技球がゲート124を通過すると、0〜99の範囲内から1つの当たり決定乱数が取得されるとともに、この乱数値がメインRAM300cの普図保留記憶領域に4つを上限として記憶される。つまり、普図保留記憶領域は、当たり決定乱数をセーブする4つの記憶部を備えている。したがって、普図保留記憶領域の4つの記憶部全てに当たり決定乱数が記憶された状態で、遊技球がゲート124を通過した場合には、当該遊技球の通過に基づいて当たり決定乱数が記憶されることはない。以下では、ゲート124を遊技球が通過して普図保留記憶領域に記憶された当たり決定乱数を普図保留とよぶ。
非時短遊技状態において普図抽選を開始する場合には、図14(a)に示すように、非時短用当たり判定テーブルが参照される。この非時短用当たり判定テーブルによれば、当たり決定乱数が0であった場合に、普通図柄の種別として当たり図柄が決定され、当たり決定乱数が1〜99であった場合に、普通図柄の種別としてハズレ図柄が決定される。したがって、非時短遊技状態において当たり図柄が決定される確率、すなわち、当選確率は1/100となる。詳しくは後述するが、この普図抽選において当たり図柄が決定されると、第2始動口122の可動片122bが開状態に制御され、ハズレ図柄が決定された場合には、第2始動口122の可動片122bが閉状態に維持される。
また、時短遊技状態において普図抽選を開始する場合には、図14(b)に示すように、時短用当たり判定テーブルが参照される。この時短用当たり判定テーブルによれば、当たり決定乱数が0〜98であった場合に、普通図柄の種別として当たり図柄が決定され、当たり決定乱数が99であった場合に、普通図柄の種別としてハズレ図柄が決定される。したがって、時短遊技状態において当たり図柄が決定される確率、すなわち、当選確率は99/100となる。
図15(a)は、普通図柄変動時間データテーブルを説明する図であり、図15(b)は、開閉制御パターンテーブルを説明する図である。上記のように、普図抽選が行われると、普通図柄の変動時間が決定される。普通図柄変動時間データテーブルは、普図抽選によって当たり図柄もしくはハズレ図柄が決定されたときに、当該普通図柄の変動時間を決定する際に参照されるものである。この普通図柄変動時間データテーブルによれば、遊技状態が非時短遊技状態に設定されている場合には変動時間が10秒に決定され、遊技状態が時短遊技状態に設定されている場合には変動時間が1秒に決定される。このようにして変動時間が決定されると、当該決定された時間にわたって普通図柄表示器168が変動表示(点滅表示)される。そして、当たり図柄が決定された場合には普通図柄表示器168が点灯し、ハズレ図柄が決定された場合には普通図柄表示器168が消灯する。
そして、普図抽選によって当たり図柄が決定されるとともに、普通図柄表示器168が点灯した場合には、第2始動口122の可動片122bが、図15(b)に示すように、開閉制御パターンテーブルを参照して通電制御される。なお、実際は、開閉制御パターンテーブルは、遊技状態ごとに設けられており、普通図柄が決定されたときの遊技状態に応じて、対応するテーブルが普通電動役物ソレノイド122cの通電開始時にセットされるが、ここでは、説明の都合上、1つのテーブルに各遊技状態に対応する制御データを示す。
当たり図柄が決定されると、図15(b)に示すように、開閉制御パターンテーブルを参照して第2始動口122が開閉制御される。この開閉制御パターンテーブルによれば、普電開放前時間(第2始動口122の開放が開始されるまでの待機時間)、普通電動役物最大開閉切替回数(第2始動口122の開放回数)、ソレノイド通電時間(第2始動口122の開放回数ごとの普通電動役物ソレノイド122cの通電時間、すなわち、1回の第2始動口122の開放時間)、規定数(第2始動口122の全開放中における第2始動口122への最大入賞可能数)、普電閉鎖有効時間(第2始動口122の各開放間の閉鎖時間、すなわち、休止時間)、普電有効状態時間(第2始動口122の最後の開放終了からの待機時間)、普電終了ウェイト時間(普電有効状態時間の経過後、後述する普通図柄の変動表示が再開されるまでの待機時間)が、第2始動口122の制御データとして、遊技状態ごとに、図示のように予め記憶されている。
このように、非時短遊技状態および時短遊技状態には、それぞれ、第2始動口122を開閉するための開閉制御条件が、遊技進行条件として対応付けられており、時短遊技状態においては、非時短遊技状態よりも第2始動口122に遊技球が入球しやすくなる。つまり、時短遊技状態においては、ゲート124を遊技球が通過する限りにおいて、次々と普図抽選がなされるとともに、第2始動口122が頻繁に開放状態となるため、遊技者は遊技球の費消を低減しながら、大役抽選を行うことが可能となる。
なお、第2始動口122の開閉条件は、普通図柄の当選確率、普通図柄の変動表示の時間、第2始動口122の開放時間の3つの要素を規定するものである。そして、本実施形態では、この3つの要素のうち2つの要素において、非時短遊技状態よりも時短遊技状態の方を有利に設定することで、時短遊技状態の方が、非時短遊技状態よりも、第2始動口122に遊技球が入球しやすくなるように設定した。しかしながら、上記3つの要素のうち、1つまたは3つの要素について、時短遊技状態の方が、非時短遊技状態よりも有利に設定してもよい。いずれにしても、時短遊技状態の方が非時短遊技状態に比べて、少なくとも1つの要素について有利となることで、総合的に時短遊技状態の方が、非時短遊技状態よりも第2始動口122に遊技球が容易に入球するようにすればよい。つまり、遊技状態が非時短遊技状態に設定されている場合に、第1の条件にしたがって可動片122bが開閉制御され、遊技状態が時短遊技状態に設定されている場合に、第1の条件よりも開状態になりやすい第2の条件にしたがって可動片122bが開閉制御されればよい。
次に、遊技機100における遊技の進行に伴う主制御基板300の主な処理について、フローチャートを用いて説明する。
(主制御基板300のCPU初期化処理)
図16は、主制御基板300におけるCPU初期化処理(S100)を説明するフローチャートである。
電源基板より電源が供給されると、メインCPU300aにシステムリセットが発生し、メインCPU300aは、以下のCPU初期化処理(S100)を行う。
(ステップS100−1)
メインCPU300aは、電源投入に応じて、初期設定処理として、メインROM300bから起動プログラムを読み込むとともに、各種処理を実行するために必要な設定処理を行う。
(ステップS100−3)
メインCPU300aは、タイマカウンタにウェイト処理時間を設定する。
(ステップS100−5)
メインCPU300aは、電源断予告信号を検出しているかを判定する。なお、主制御基板300には、電源断検知回路が設けられており、電源電圧が所定値以下になると、電源検知回路から電源断予告信号が出力される。電源断予告信号を検出している場合には、上記ステップS100−3に処理を移し、電源断予告信号を検出していない場合には、ステップS100−7に処理を移す。
(ステップS100−7)
メインCPU300aは、上記ステップS100−3で設定したウェイト時間が経過したか否かを判定する。その結果、ウェイト時間が経過したと判定した場合にはステップS100−9に処理を移し、ウェイト時間は経過していないと判定した場合には上記ステップS100−5に処理を移す。
(ステップS100−9)
メインCPU300aは、メインRAM300cへのアクセスを許可するために必要な処理を実行する。
(ステップS100−11)
メインCPU300aは、RAMクリアフラグがオンしているか否かを判定する。なお、遊技盤108の背面には不図示のRAMクリアボタンが設けられており、このRAMクリアボタンが押圧操作されると、RAMクリア検出スイッチがRAMクリアボタンの押圧操作を検出して、主制御基板300にRAMクリア信号が出力される。RAMクリアボタンが押圧操作された状態で電源が投入されると、RAMクリア信号が入力され、RAMクリアフラグがオンされる。そして、RAMクリアフラグがオンしていると判定した場合にはステップS100−13に処理を移し、RAMクリアフラグはオンしていないと判定した場合にはステップS100−19に処理を移す。
(ステップS100−13)
メインCPU300aは、メインRAM300cのうち、電源投入時(メインRAM300cをクリアするリセット時)にクリアすべきクリア対象のデータをクリアする初期化処理を行う。また、ここでは、設定変更スイッチ180sから入力されている信号に対応する設定値をメインRAM300cに記憶する。さらにメインCPU300aは、メインRAM300cに記憶した設定値を副制御基板330に伝達するための設定値指定コマンドを送信バッファにセットする。
(ステップS100−15)
メインCPU300aは、メインRAM300cがクリアされたことを副制御基板330に伝達するためのサブコマンド(RAMクリア指定コマンド)の送信処理(コマンドを送信バッファに格納)を行う。
(ステップS100−17)
メインCPU300aは、メインRAM300cがクリアされたことを払出制御基板310に伝達するための払出コマンド(RAMクリア指定コマンド)の送信処理(コマンドを送信バッファに格納)を行う。
(ステップS100−19)
メインCPU300aは、チェックサムを算出するために必要な処理を実行する。
(ステップS100−21)
メインCPU300aは、上記ステップS100−19で算出したチェックサムが、電源断時に保存されたチェックサムと不一致であるかを判定する。その結果、両者が不一致であると判定した場合にはステップS100−13に処理を移し、両者が不一致ではない(一致する)と判定した場合にはステップS100−23に処理を移す。
(ステップS100−23)
メインCPU300aは、メインRAM300cのうち、電源復帰時(メインRAM300cをクリアせずに、電源断前のデータを維持するとき)にクリアすべきクリア対象のデータをクリアする初期化処理を行う。
(ステップS100−25)
メインCPU300aは、電源断から復帰したことを副制御基板330に伝達するためのサブコマンド(電源復帰指定コマンド)の送信処理(コマンドを送信バッファに格納)を行う。
(ステップS100−27)
メインCPU300aは、電源断から復帰したことを払出制御基板310に伝達するための払出コマンド(電源復帰指定コマンド)の送信処理(コマンドを送信バッファに格納)を行う。
(ステップS100−29)
メインCPU300aは、特別図柄の種別を示す電源投入時特図図柄種別指定コマンド、特1保留数(X1)を示す特1保留指定コマンド、特2保留数(X2)を示す特2保留指定コマンド、記憶されている特1保留および特2保留の入賞順序を示す特別図柄入賞順序コマンド等、電源投入時の初期状態の演出に必要なコマンドを副制御基板330に送信するための電源投入時サブコマンドセット処理(コマンドを送信バッファに格納)を実行する。
(ステップS100−31)
メインCPU300aは、タイマ割込みの周期を設定する。
(ステップS100−33)
メインCPU300aは、割込みを禁止するための処理を行う。
(ステップS100−35)
メインCPU300aは、当たり図柄乱数用初期値更新乱数を更新する。なお、当たり図柄乱数用初期値更新乱数は、当たり図柄乱数の初期値および終了値を決定するためのものである。つまり、後述する当たり図柄乱数の更新処理によって当たり図柄乱数が、当たり図柄乱数用初期値更新乱数から、当該当たり図柄乱数用初期値更新乱数−1まで1周すると、当たり図柄乱数は、そのときの当たり図柄乱数用初期値更新乱数に更新されることとなる。
(ステップS100−37)
メインCPU300aは、払出制御基板310から受信した受信データ(主コマンド)を解析し、受信データに応じた種々の処理を実行する。
(ステップS100−39)
メインCPU300aは、送信バッファに格納されているサブコマンドを副制御基板330に送信するための処理を行う。
(ステップS100−41)
メインCPU300aは、割込みを許可するための処理を行う。
(ステップS100−43)
メインCPU300aは、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数を更新し、以後、上記ステップS100−33から処理を繰り返す。なお、以下では、変動演出パターンを決定するためのリーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数を総称して変動演出用乱数と呼ぶ。
次に、主制御基板300における割込み処理について説明する。ここでは、電源断時退避処理(XINT割込み処理)およびタイマ割込み処理について説明する。
(主制御基板300の電源断時退避処理(XINT割込み処理))
図17は、主制御基板300における電源断時退避処理(XINT割込み処理)を説明するフローチャートである。メインCPU300aは、電源断検知回路を監視しており、電源電圧が所定値以下になると、CPU初期化処理の割込み許可期間中(ステップS100−41とステップS100−33の処理の間)に割り込んで電源断時退避処理を実行する。
(ステップS300−1)
電源断予告信号が入力されると、メインCPU300aは、レジスタを退避する。
(ステップS300−3)
メインCPU300aは、電源断予告信号をチェックする。
(ステップS300−5)
メインCPU300aは、電源断予告信号を検出しているかを判定する。その結果、電源断予告信号を検出していると判定した場合にはステップS300−11に処理を移し、電源断予告信号を検出していないと判定した場合にはステップS300−7に処理を移す。
(ステップS300−7)
メインCPU300aは、レジスタを復帰させる。
(ステップS300−9)
メインCPU300aは、割込みを許可するための処理を行い、当該電源断時退避処理を終了する。
(ステップS300−11)
メインCPU300aは、出力ポートの出力を停止する出力ポートクリア処理を実行する。
(ステップS300−13)
メインCPU300aは、チェックサムを算出して保存するチェックサム設定処理を実行する。
(ステップS300−15)
メインCPU300aは、メインRAM300cへのアクセスを禁止するために必要なRAMプロテクト設定処理を実行する。
(ステップS300−17)
メインCPU300aは、電源断発生監視時間を設定すべく、ループカウンタのカウンタ値に所定の電源断検出信号検出回数をセットする。
(ステップS300−19)
メインCPU300aは、電源断予告信号をチェックする。
(ステップS300−21)
メインCPU300aは、電源断予告信号を検出しているかを判定する。その結果、電源断予告信号を検出していると判定した場合にはステップS300−17に処理を移し、電源断予告信号を検出していないと判定した場合にはステップS300−23に処理を移す。
(ステップS300−23)
メインCPU300aは、上記ステップS300−17でセットしたループカウンタの値を1減算する。
(ステップS300−25)
メインCPU300aは、ループカウンタのカウンタ値が0でないかを判定する。その結果、カウンタ値が0ではないと判定した場合にはステップS300−19に処理を移し、カウンタ値が0であると判定した場合には上記したCPU初期化処理(ステップS100)に移行する。
なお、実際に電源断が生じた場合には、ステップS300−17〜ステップS300−25をループしている間に遊技機100の稼働が停止する。
(主制御基板300のタイマ割込み処理)
図18は、主制御基板300におけるタイマ割込み処理を説明するフローチャートである。主制御基板300には、所定の周期(本実施形態では4ミリ秒、以下「4ms」という)毎にクロックパルスを発生させるリセット用クロックパルス発生回路が設けられている。そして、リセット用クロックパルス発生回路によって、クロックパルスが発生すると、CPU初期化処理(ステップS100)に割り込んで、以下のタイマ割込み処理が実行される。
(ステップS400−1)
メインCPU300aは、レジスタを退避する。
(ステップS400−3)
メインCPU300aは、割込みを許可するための処理を行う。
(ステップS400−5)
メインCPU300aは、コモン出力バッファにセットされたコモンデータを出力ポートに出力し、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172を点灯制御するダイナミックポート出力処理を実行する。
(ステップS400−7)
メインCPU300aは、各種の入力ポート情報を読み込み、最新のスイッチ状態を正確に取得するためのポート入力処理を実行する。
(ステップS400−9)
メインCPU300aは、各種タイマカウンタを更新するタイマ更新処理を行う。ここで、各種タイマカウンタは、特に断る場合を除き、当該主制御基板300のタイマ割込み処理の度に減算され、0になると減算を停止する。
(ステップS400−11)
メインCPU300aは、上記ステップS100−35と同様、当たり図柄乱数用初期値更新乱数の更新処理を実行する。
(ステップS400−13)
メインCPU300aは、当たり図柄乱数を更新する処理を行う。具体的には、乱数カウンタを1加算して更新し、加算した結果が乱数範囲の最大値を超えた場合には、乱数カウンタを0に戻し、乱数カウンタが1周した場合には、その時の当たり図柄乱数用初期値更新乱数の値から乱数を更新する。
なお、詳しい説明は省略するが、本実施形態では、大当たり決定乱数および当たり決定乱数は、主制御基板300に内蔵されたハードウェア乱数生成部によって更新されるハードウェア乱数を用いている。ハードウェア乱数生成部は、大当たり決定乱数および当たり決定乱数を、いずれも一定の規則にしたがって更新し、乱数列が一巡するごとに自動的に乱数列を変更するとともに、システムリセット毎にスタート値を変更している。
(ステップS500)
メインCPU300aは、第1始動口検出スイッチ120s、第2始動口検出スイッチ122s、ゲート検出スイッチ124sから信号の入力があったか否か判定するスイッチ管理処理を実行する。なお、このスイッチ管理処理の詳細については後述する。
(ステップS600)
メインCPU300aは、上記の特別遊技を進行制御するための特別遊技管理処理を実行する。なお、この特別遊技管理処理の詳細については後述する。
(ステップS700)
メインCPU300aは、上記の普通遊技を進行制御するための普通遊技管理処理を実行する。なお、この普通遊技管理処理の詳細については後述する。
(ステップS400−15)
メインCPU300aは、各種エラーの判定およびエラー判定結果に応じた設定を行うためのエラー管理処理を実行する。
(ステップS400−17)
メインCPU300aは、一般入賞口検出スイッチ118s、第1始動口検出スイッチ120s、第2始動口検出スイッチ122s、大入賞口検出スイッチ128sのチェックを行い、各入賞口の検出スイッチに該当する賞球制御用のカウンタ等を加算するための入賞口スイッチ処理を実行する。
(ステップS400−19)
メインCPU300aは、上記ステップS400−17でセットされた賞球制御用のカウンタのカウンタ値等に基づく払出コマンドの作成および送信を行うための払出制御管理処理を実行する。
(ステップS400−21)
メインCPU300aは、遊技情報出力端子板312から外部へ出力する外部情報用の出力データをセットするための外部情報管理処理を実行する。
(ステップS400−23)
メインCPU300aは、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172等の各種表示器(LED)を点灯制御するためのコモンデータをコモン出力バッファにセットするLED表示設定処理を実行する。
(ステップS400−25)
メインCPU300aは、普通電動役物ソレノイド122cおよび大入賞口ソレノイド128cのソレノイド出力イメージを合成し、出力ポートバッファに格納するためのソレノイド出力イメージ合成処理を実行する。
(ステップS400−27)
メインCPU300aは、各出力ポートバッファに格納されたコモン出力バッファの値を出力ポートに出力するためのポート出力処理を実行する。
(ステップS400−29)
メインCPU300aは、レジスタを復帰してタイマ割込み処理を終了する。
以下に、上記したタイマ割込み処理のうち、ステップS500のスイッチ管理処理、ステップS600の特別遊技管理処理、ステップS700の普通遊技管理処理について、詳細に説明する。
図19は、主制御基板300におけるスイッチ管理処理(ステップS500)を説明するフローチャートである。
(ステップS500−1)
メインCPU300aは、ゲート検出スイッチオン検出時であるか、すなわち、ゲート124を遊技球が通過してゲート検出スイッチ124sからの検出信号がオンされたかを判定する。その結果、ゲート検出スイッチオン検出時であると判定した場合にはステップS510に処理を移し、ゲート検出スイッチオン検出時ではないと判定した場合にはステップS500−3に処理を移す。
(ステップS510)
メインCPU300aは、ゲート124への遊技球の通過に基づいてゲート通過処理を実行する。なお、このゲート通過処理の詳細については後述する。
(ステップS500−3)
メインCPU300aは、第1始動口検出スイッチオン検出時であるか、すなわち、第1始動口120に遊技球が入球して第1始動口検出スイッチ120sから検出信号が入力されたかを判定する。その結果、第1始動口検出スイッチオン検出時であると判定した場合にはステップS520に処理を移し、第1始動口検出スイッチオン検出時ではないと判定した場合にはステップS500−5に処理を移す。
(ステップS520)
メインCPU300aは、第1始動口120への遊技球の入球に基づいて第1始動口通過処理を実行する。なお、この第1始動口通過処理の詳細については後述する。
(ステップS500−5)
メインCPU300aは、第2始動口検出スイッチオン検出時であるか、すなわち、第2始動口122に遊技球が入球して第2始動口検出スイッチ122sから検出信号が入力されたかを判定する。その結果、第2始動口検出スイッチオン検出時であると判定した場合にはステップS530に処理を移し、第2始動口検出スイッチオン検出時ではないと判定した場合にはステップS500−7に処理を移す。
(ステップS530)
メインCPU300aは、第2始動口122への遊技球の入球に基づいて第2始動口通過処理を実行する。なお、この第2始動口通過処理の詳細については後述する。
(ステップS500−7)
メインCPU300aは、大入賞口検出スイッチオン検出時であるか、すなわち、大入賞口128に遊技球が入球して大入賞口検出スイッチ128sから検出信号が入力されたかを判定する。その結果、大入賞口検出スイッチオン検出時であると判定した場合にはステップS500−9に処理を移し、大入賞口検出スイッチオン検出時ではないと判定した場合には当該スイッチ管理処理を終了する。
(ステップS500−9)
メインCPU300aは、現在、大役遊技または小当たり遊技中であるか否かを判定し、大入賞口128への遊技球の入球が適正になされたものであるかを判定する。ここでは、大役遊技中ではないと判定した場合には、所定の不正検出処理を実行し、大役遊技または小当たり遊技中であり、大入賞口128への遊技球の入球が適正になされたと判定した場合には、大入賞口入賞球数カウンタを1加算して、当該スイッチ管理処理(ステップS500)を終了する。
図20は、主制御基板300におけるゲート通過処理(ステップS510)を説明するフローチャートである。
(ステップS510−1)
メインCPU300aは、ハードウェア乱数生成部によって更新された当たり決定乱数をロードする。
(ステップS510−3)
メインCPU300aは、普通図柄保留球数カウンタのカウンタ値が最大値以上であるか、つまり、普通図柄保留球数カウンタのカウンタ値が4以上であるかを判定する。その結果、普通図柄保留球数カウンタのカウンタ値が最大値以上であると判定した場合には当該ゲート通過処理を終了し、普通図柄保留球数カウンタは最大値以上ではないと判定した場合にはステップS510−5に処理を移す。
(ステップS510−5)
メインCPU300aは、普通図柄保留球数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(ステップS510−7)
メインCPU300aは、普図保留記憶領域の4つの記憶部のうち、取得した当たり決定乱数をセーブする対象となる対象記憶部を算定する。
(ステップS510−9)
メインCPU300aは、上記ステップS510−1で取得した当たり決定乱数を、上記ステップS510−7で算定した対象記憶部にセーブする。
(ステップS510−11)
メインCPU300aは、普図保留記憶領域に記憶されている普図保留数を示す普図保留指定コマンドを送信バッファにセットし、当該ゲート通過処理を終了する。
図21は、主制御基板300における第1始動口通過処理(ステップS520)を説明するフローチャートである。
(ステップS520−1)
メインCPU300aは、特別図柄識別値として「00H」をセットする。なお、特別図柄識別値は、保留種別として特1保留および特2保留のいずれであるかを識別するためのもので、特別図柄識別値(00H)は特1保留を示し、特別図柄識別値(01H)は特2保留を示す。
(ステップS520−3)
メインCPU300aは、特別図柄1保留球数カウンタのアドレスをセットする。
(ステップS535)
メインCPU300aは、特別図柄乱数取得処理を実行して、当該第1始動口通過処理を終了する。なお、この特別図柄乱数取得処理は、第2始動口通過処理(ステップS530)と共通のモジュールを利用して実行される。したがって、特別図柄乱数取得処理の詳細は、第2始動口通過処理の説明後に説明する。
図22は、主制御基板300における第2始動口通過処理(ステップS530)を説明するフローチャートである。
(ステップS530−1)
メインCPU300aは、特別図柄識別値として「01H」をセットする。
(ステップS530−3)
メインCPU300aは、特別図柄2保留球数カウンタのアドレスをセットする。
(ステップS535)
メインCPU300aは、後述する特別図柄乱数取得処理を実行する。
(ステップS530−5)
メインCPU300aは、普通遊技管理フェーズをロードする。なお、詳しくは後述するが、普通遊技管理フェーズは、普通遊技の実行処理の段階、すなわち、普通遊技の進行状況を示すものであり、普通遊技の実行処理の段階に応じて更新される。
(ステップS530−7)
メインCPU300aは、上記ステップS530−5でロードした普通遊技管理フェーズが「04H」ではないかを判定する。なお、普通遊技管理フェーズの「04H」は、普通電動役物入賞口開放制御処理中であることを示すものである。この普通電動役物入賞口開放制御処理においては、普通電動役物ソレノイド122cが通電されて第2始動口122の可動片122bが開状態に制御されることから、ここでは、第2始動口122が適正に開放され得る状態にあるかを判定することとなる。その結果、普通遊技管理フェーズが「04H」ではないと判定した場合には当該第2始動口通過処理を終了し、普通遊技管理フェーズが「04H」であると判定した場合にはステップS530−9に処理を移す。
(ステップS530−9)
メインCPU300aは、普通電動役物入賞球数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新し、当該第2始動口通過処理を終了する。
図23は、主制御基板300における特別図柄乱数取得処理(ステップS535)を説明するフローチャートである。この特別図柄乱数取得処理は、上記した第1始動口通過処理(ステップS520)および第2始動口通過処理(ステップS530)において、共通のモジュールを用いて実行される。
(ステップS535−1)
メインCPU300aは、上記ステップS520−1またはステップS530−1でセットした特別図柄識別値をロードする。
(ステップS535−3)
メインCPU300aは、対象特別図柄保留球数をロードする。ここでは、上記ステップS535−1でロードした特別図柄識別値が「00H」であれば、特別図柄1保留球数カウンタのカウンタ値、すなわち、特1保留数をロードする。また、上記ステップS535−1でロードした特別図柄識別値が「01H」であれば、特別図柄2保留球数カウンタのカウンタ値、すなわち、特2保留数をロードする。
(ステップS535−5)
メインCPU300aは、ハードウェア乱数生成部によって更新された大当たり決定乱数をロードする。
(ステップS535−7)
メインCPU300aは、上記ステップS535−3でロードした対象特別図柄保留球数が上限値以上であるかを判定する。その結果、上限値以上であると判定した場合には、ステップS535−23に処理を移し、上限値以上ではないと判定した場合には、ステップS535−9に処理を移す。
(ステップS535−9)
メインCPU300aは、対象特別図柄保留球数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(ステップS535−11)
メインCPU300aは、特図保留記憶領域の記憶部のうち、取得した大当たり決定乱数をセーブする対象となる対象記憶部を算定する。
(ステップS535−13)
メインCPU300aは、上記ステップS535−5でロードした大当たり決定乱数、上記ステップS400−13で更新された当たり図柄乱数、上記ステップS100−43で更新されたリーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数を取得し、上記ステップS535−11で算定した対象記憶部に格納する。
(ステップS535−15)
メインCPU300aは、特図保留記憶領域に記憶されている特1保留および特2保留の入賞順序を更新して記憶する特別図柄保留球入賞順序設定処理を行う。
(ステップS536)
メインCPU300aは、上記ステップS535−13で対象記憶部に格納した各種の乱数に基づいて、取得時演出判定処理を実行する。この取得時演出判定処理の詳細は後述する。
(ステップS535−17)
メインCPU300aは、特別図柄1保留球数カウンタおよび特別図柄2保留球数カウンタのカウンタ値をロードする。
(ステップS535−19)
メインCPU300aは、上記ステップS535−17でロードしたカウンタ値に基づいて、特図保留指定コマンドを送信バッファにセットする。ここでは、特別図柄1保留球数カウンタのカウンタ値(特1保留数)に基づいて特図1保留指定コマンドをセットし、特別図柄2保留球数カウンタのカウンタ値(特2保留数)に基づいて特図2保留指定コマンドをセットする。これにより、特1保留または特2保留が記憶されるたびに、特1保留数および特2保留数が副制御基板330に伝達されることとなる。
(ステップS535−21)
メインCPU300aは、上記ステップS535−15で記憶した特1保留および特2保留の入賞順序に対応する特別図柄入賞順序コマンドを送信バッファにセットする。
(ステップS535−23)
メインCPU300aは、普通遊技管理フェーズをロードする。
(ステップS535−25)
メインCPU300aは、上記ステップS535−23でロードした普通遊技管理フェーズを確認し、後述する普通電動役物入賞口開放制御状態未満(普通遊技管理フェーズ<
04H)であるかを判定する。その結果、普通電動役物入賞口開放制御状態未満であると判定した場合にはステップS535−27に処理を移し、普通電動役物入賞口開放制御状態未満ではないと判定した場合には当該特別図柄乱数取得処理を終了する。
(ステップS535−27)
メインCPU300aは、各始動口において異常入賞があったか否かを判定するとともに、異常入賞があったと判定した場合には、所定の処理を行う始動口異常入賞エラー処理を実行し、当該特別図柄乱数取得処理(ステップS535)を終了する。
図24は、主制御基板300における取得時演出判定処理(ステップS536)を説明するフローチャートである。
(ステップS536−1)
メインCPU300aは、高確率遊技状態であるか低確率遊技状態であるかを識別する特別図柄確率状態フラグをロードし、ロードした特別図柄確率状態フラグに基づいて、低確率遊技状態であるかを判定する。その結果、低確率遊技状態であると判定した場合にはステップS536−3に処理を移し、低確率遊技状態でないと判定した場合には当該取得時演出判定処理を終了する。
(ステップS536−3)
メインCPU300aは、設定中の設定値および遊技状態(低確率遊技状態または高確率遊技状態)に基づいて、対応する大当たり判定テーブル(図4(a)〜図4(f)、図5(a)〜図5(f)参照)のいずれか、すなわち大当たりの仮判定に用いる比較数値範囲を選択する。そして、メインCPU300aは、選択したテーブル(比較数値範囲)と、上記ステップS535−13で対象記憶部に記憶した大当たり決定乱数とに基づいて、大当たりか否かを仮判定する特別図柄当たり仮判定処理を行う。
(ステップS536−5)
メインCPU300aは、特別図柄を仮決定するための特別図柄図柄仮判定処理を実行する。ここでは、上記ステップS536−3の仮大役抽選の結果(特別図柄当たり仮判定処理によって導出された結果)が大当たりであった場合には、上記ステップS535−13で対象記憶部に記憶した当たり図柄乱数、保留種別をロードし、対応する当たり図柄乱数判定テーブル(図5参照)を選択して特別図柄判定データを抽出し、抽出した特別図柄判定データ(大当たり図柄の種別)をセーブする。また、上記ステップS536−3の仮大役抽選の結果がハズレであった場合には、保留種別に対応するハズレ用の特別図柄判定データ(ハズレ図柄の種別)をセーブする。
(ステップS536−7)
メインCPU300aは、ステップS536−5でセーブした特別図柄判定データに対応する先読み図柄種別指定コマンド(先読み指定コマンド)を送信バッファにセットする。
(ステップS536−9)
メインCPU300aは、詳しくは後述するように、上記ステップS535−13で対象記憶部に記憶した大当たり決定乱数が、複数の乱数識別範囲のうちのいずれの乱数識別範囲に含まれているかを示す乱数識別範囲指定コマンドを決定する。
(ステップS536−11)
メインCPU300aは、上記ステップS536−9で決定した乱数識別範囲指定コマンド(先読み指定コマンド)を送信バッファにセットする。
(ステップS536−13)
メインCPU300aは、上記ステップS536−3の特別図柄当たり仮判定処理によって導出された結果が、大当たりであるかを判定する。その結果、大当たりであると判定した場合にはステップS536−15に処理を移し、大当たりではない(ハズレである)と判定した場合にはステップS536−17に処理を移す。
(ステップS536−15)
メインCPU300aは、大当たり時リーチモード決定乱数判定テーブル(図7(b)参照)をセットし、ステップS536−25に処理を移す。
(ステップS536−17)
メインCPU300aは、上記ステップS535−13で対象記憶部に記憶したリーチグループ決定乱数をロードする。
(ステップS536−19)
メインCPU300aは、上記ステップS536−17でロードしたリーチグループ決定乱数が固定値(8500以上)であるかを判定する。ここで、グループ種別は、リーチグループ決定乱数判定テーブルを参照して決定されるが、このリーチグループ決定乱数判定テーブルは、記憶されている保留数に応じて選択される。このとき、リーチグループ決定乱数は、0〜10006の範囲から取得され、リーチグループ決定乱数の値が8500以上であれば、保留数に拘わらず、同一のリーチグループ決定乱数判定テーブルが選択され、リーチグループ決定乱数の値が8500未満であれば、保留数に応じて異なるリーチグループ決定乱数判定テーブルが選択される。以下では、リーチグループ決定乱数のうち、保留数に応じて異なるリーチグループ決定乱数判定テーブルが選択される0〜8499の範囲の値を不定値とし、保留数に拘わらず同一のリーチグループ決定乱数判定テーブルが選択される8500〜10006の範囲の値を固定値と呼ぶ。上記ステップS536−17でロードしたリーチグループ決定乱数が固定値(8500以上)であると判定した場合にはステップS536−21に処理を移し、上記ステップS536−17でロードしたリーチグループ決定乱数が固定値(8500以上)ではないと判定した場合にはステップS536−33に処理を移す。
(ステップS536−21)
メインCPU300aは、確率状態識別カウンタのカウンタ値および保留種別に基づいて、対応するリーチグループ決定乱数判定テーブル(図6参照)をセットする。なお、リーチグループ決定乱数判定テーブルは、保留数に応じて複数種類設けられているが、ここでは、保留数が0のときに用いられるテーブルが選択される。そして、セットしたリーチグループ決定乱数判定テーブルと、上記ステップS535−13で対象記憶部に記憶したリーチグループ決定乱数とに基づいて、リーチグループ(グループ種別)を仮決定する。
(ステップS536−23)
メインCPU300aは、上記ステップS536−21で仮決定されたグループ種別に対応するハズレ時リーチモード決定乱数判定テーブル(図7(a)参照)をセットし、ステップS536−21に処理を移す。
(ステップS536−25)
メインCPU300aは、上記ステップS536−15または上記ステップS536−23でセットしたリーチモード決定乱数判定テーブルと、上記ステップS535−13で対象記憶部に記憶したリーチモード決定乱数とに基づいて、変動モード番号を仮決定する。また、ここでは、変動モード番号とともに、変動パターン乱数判定テーブルが仮決定される。
(ステップS536−27)
メインCPU300aは、上記ステップS536−25で仮決定した変動モード番号に対応する先読み指定変動モードコマンド(先読み指定コマンド)を送信バッファにセットする。
(ステップS536−29)
メインCPU300aは、上記ステップS536−25で仮決定した変動パターン乱数判定テーブルと、上記ステップS535−13で対象記憶部に記憶した変動パターン乱数とに基づいて、変動パターン番号を仮決定する。
(ステップS536−31)
メインCPU300aは、上記ステップS536−29で仮決定した変動パターン番号に対応する先読み指定変動パターンコマンド(先読み指定コマンド)を送信バッファにセットし、当該取得時演出判定処理を終了する。
(ステップS536−33)
メインCPU300aは、対象記憶部に新たに記憶された保留について、当該保留が読み出されたときの保留数に応じて、グループ種別、すなわち、変動演出パターンが変化することを示す不定値コマンド(先読み指定変動モードコマンドおよび先読み指定変動パターンコマンド=7FH)を送信バッファにセットし、当該取得時演出判定処理を終了する。
以上のように、上記の取得時演出判定処理によれば、記憶された保留が大当たりに当選する保留であった場合、および、記憶された保留がハズレとなる保留であり、かつ、リーチグループ決定乱数が固定値であった場合には、先読み指定コマンドとして、先読み指定変動モードコマンドおよび先読み指定変動パターンコマンドが副制御基板330に送信される。一方、記憶された保留がハズレとなる保留であり、かつ、リーチグループ決定乱数が不定値であった場合には、先読み指定コマンドとして不定値コマンドが副制御基板330に送信されることとなる。
図25は、特別遊技管理フェーズを説明する図である。既に説明したとおり、本実施形態では、第1始動口120または第2始動口122への遊技球の入球を契機とする特別遊技と、ゲート124への遊技球の通過を契機とする普通遊技とが、同時並行して進行する。特別遊技に係る処理は、段階的に、かつ、繰り返し実行されるが、主制御基板300では、こうした特別遊技に係る各処理を特別遊技管理フェーズによって管理している。
図25に示すように、メインROM300bには、特別遊技を実行制御するための複数の特別遊技制御モジュールが格納されており、これら特別遊技制御モジュールごとに、特別遊技管理フェーズが対応付けられている。具体的には、特別遊技管理フェーズが「00H」である場合には、「特別図柄変動待ち処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「01H」である場合には、「特別図柄変動中処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「02H」である場合には、「特別図柄停止図柄表示処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「03H」である場合には、「大入賞口開放前処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「04H」である場合には、「大入賞口開放制御処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「05H」である場合には、「大入賞口閉鎖有効処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「06H」である場合には、「大入賞口終了ウェイト処理」を実行するためのモジュールがコールされる。
図26は、主制御基板300における特別遊技管理処理(ステップS600)を説明するフローチャートである。
(ステップS600−1)
メインCPU300aは、特別遊技管理フェーズをロードする。
(ステップS600−3)
メインCPU300aは、上記ステップS600−1でロードした特別遊技管理フェーズに対応する特別遊技制御モジュールを選択する。
(ステップS600−5)
メインCPU300aは、上記ステップS600−3で選択した特別遊技制御モジュールをコールして処理を開始する。
(ステップS600−7)
メインCPU300aは、特別遊技の制御時間を管理する特別遊技タイマをロードし、当該特別遊技管理処理を終了する。
図27は、主制御基板300における特別図柄変動待ち処理を説明するフローチャートである。この特別図柄変動待ち処理は、特別遊技管理フェーズが「00H」であった場合に実行される。
(ステップS610−1)
メインCPU300aは、特別図柄2保留球数カウンタのカウンタ値、すなわち、特2保留数(X2)が「1」以上であるかを判定する。その結果、特2保留数(X2)が「1」以上であると判定した場合にはステップS610−7に処理を移し、特2保留数(X2)は「1」以上ではないと判定した場合にはステップS610−3に処理を移す。
(ステップS610−3)
メインCPU300aは、特別図柄1保留球数カウンタのカウンタ値、すなわち、特1保留数(X1)が「1」以上であるかを判定する。その結果、特1保留数(X1)が「1」以上であると判定した場合にはステップS610−7に処理を移し、特1保留数(X1)は「1」以上ではないと判定した場合にはステップS610−5に処理を移す。
(ステップS610−5)
メインCPU300aは、客待ちコマンドを送信バッファにセットするとともに、客待ち状態に設定するための客待ち設定処理を実行し、当該特別図柄変動待ち処理を終了する。
(ステップS610−7)
メインCPU300aは、第2特図保留記憶領域の第1記憶部〜第4記憶部に記憶されている特2保留、または、第1特図保留記憶領域の第1記憶部〜第4記憶部に記憶されている特1保留を、1つ序数の小さい記憶部にブロック転送する。具体的には、上記ステップS610−1において、特別図柄2保留球数が「1」以上であると判定した場合には、第2特図保留記憶領域の第2記憶部〜第4記憶部に記憶されている特2保留を、第1記憶部〜第3記憶部に転送する。また、メインRAM300cには、処理対象となる第0記憶部が設けられており、第1記憶部に記憶されている特2保留を、第0記憶部にブロック転送する。また、上記ステップS610−3において、特別図柄1保留球数が「1」以上であると判定した場合には、第1特図保留記憶領域の第2記憶部〜第4記憶部に記憶されている特1保留を、第1記憶部〜第3記憶部に転送するとともに、第1記憶部に記憶されている特1保留を、第0記憶部にブロック転送する。なお、この特別図柄記憶エリアシフト処理においては、第0記憶部に転送された保留種別に対応する対象特別図柄保留球数カウンタのカウンタ値を「1」減算するとともに、特1保留が「1」減算したことを示す特図1保留減指定コマンドまたは特2保留が「1」減算したことを示す特図2保留減指定コマンドを送信バッファにセットする。
(ステップS610−8)
メインCPU300aは、第0記憶部に転送された大当たり決定乱数、保留種別、高確率遊技状態であるか低確率遊技状態であるかを識別する特別図柄確率状態フラグをロードするとともに、遊技状態および設定中の設定値に応じた大当たり判定テーブル(図4および図5参照)を選択して大当たりか否かの判定を行い、その判定結果を記憶する特別図柄大当たり判定処理を実行する。
詳しくは後述するが、本実施形態による遊技機100において、主制御基板300での大当たりの仮判定処理、大役抽選における当たり判定処理(大当たり判定、小当たり判定)および普図抽選における当たり判定処理の制御処理手順は共通化されている。このため、遊技機100は、上述のステップS536−3の特別図柄当たり仮判定処理、本ステップS610−8の特別図柄大当たり判定処理、後述するステップS610−10の特別図柄小当たり判定処理およびステップS710−5の普通図柄当たり判定処理において共通のモジュール(ワードデータ判定処理)を利用する。これにより、遊技機100は、制御プログラムの容量を低減させることができる。ワードデータ判定処理の詳細は後述する。
(ステップS610−9)
メインCPU300aは、特別図柄大当たり判定処理の結果が大当たりか否かを判定する。メインCPU300aは、特別図柄大当たり判定処理の結果が大当たりであると判定するとステップS610−11の処理に移る。一方、メインCPU300aは、特別図柄当たり判定処理の結果が大当たりでないと判定するとステップS610−10の処理に移る。
(ステップS610−10)
メインCPU300aは、第0記憶部に転送された大当たり決定乱数、保留種別、をロードするとともに、保留種別に応じた小当たり判定テーブル(図6参照)を選択して小当たり抽選を行い、その抽選結果を記憶する特別図柄小当たり判定処理を実行する。本実施形態において、ステップS610−8の特別図柄大当たり判定処理および本ステップS610−10の特別図柄小当たり判定処理を総称して大役抽選という。大役抽選により、大当たり、小当たりおよびハズレのいずれかの大役抽選結果が導出される。
本実施形態による遊技機100において、メインCPU300aは、大役抽選における当たり判定処理について、ステップS610−8の大当たり判定(特別図柄大当たり判定処理)の実行後に、ステップS610−10において小当たり判定(特別図柄小当たり判定処理)を実行する。これにより、遊技機100は、大当たり判定結果が当選(大当たり)である場合に、無駄となる小当たり判定を実行しないため、処理負荷を軽減することができる。また、遊技機100は、大当たり判定後に小当たり判定を行う、すなわち大当たりに当選しなかった場合に小当たり判定を行うことで、遊技者が獲得する遊技利益を段階的に決定することができ、変化に富んだゲーム性を提供することができる。
(ステップS610−11)
メインCPU300aは、特別図柄を決定するための特別図柄図柄判定処理を実行する。ここでは、上記ステップS610−9の大役抽選の結果が大当たりまたは小当たりであった場合には、第0記憶部に転送された当たり図柄乱数、保留種別をロードし、対応する当たり図柄乱数判定テーブルを選択して特別図柄判定データを抽出し、抽出した特別図柄判定データ(大当たり図柄、小当たり図柄の種別)をセーブする。また、上記ステップS610−9の大役抽選の結果がハズレであった場合には、保留種別に対応するハズレ用の特別図柄判定データ(ハズレ図柄の種別)をセーブする。このようにして、特別図柄判定データをセーブしたら、当該特別図柄判定データに対応する図柄種別指定コマンドを送信バッファにセットする。
(ステップS610−13)
メインCPU300aは、上記ステップS611で抽出した特別図柄判定データに対応する特別図柄停止図柄番号をセーブする。なお、第1特別図柄表示器160および第2特別図柄表示器162は、それぞれ7セグで構成されており、7セグを構成する各セグメントには番号(カウンタ値)が対応付けられている。ここで決定する特別図柄停止図柄番号は、最終的に点灯するセグメントの番号(カウンタ値)を示すものである。
(ステップS612)
メインCPU300aは、変動モード番号および変動パターン番号を決定する特別図柄変動番号決定処理を実行する。この特別図柄変動番号決定処理の詳細は後述する。
(ステップS610−15)
メインCPU300aは、上記ステップS612で決定された変動モード番号および変動パターン番号をロードするとともに、変動時間決定テーブルを参照して、変動時間1および変動時間2を決定する。そして、決定した変動時間1、2の合計時間を、特別図柄変動タイマにセットする。
(ステップS610−17)
メインCPU300aは、上記ステップS610−9における大役抽選の結果が大当たりであるか否かを判定し、大当たりであった場合には、上記ステップS610−11でセーブした特別図柄判定データをロードして、大当たり図柄の種別を確認する。そして、遊技状態設定テーブルを参照して、大役遊技終了後に設定される遊技状態および高確回数を判定し、その判定結果を特別図柄確率状態予備フラグおよび高確回数切り予備カウンタにセーブする。また、ここでは、大当たり当選時に設定されている遊技状態が記憶される。
(ステップS610−19)
メインCPU300aは、第1特別図柄表示器160または第2特別図柄表示器162において、特別図柄の変動表示を開始するために、特別図柄表示図柄カウンタを設定する処理を実行する。第1特別図柄表示器160および第2特別図柄表示器162を構成する7セグの各セグメントにはカウンタ値が対応付けられており、特別図柄表示図柄カウンタに設定されたカウンタ値に対応するセグメントが点灯制御される。ここでは、特別図柄の変動表示の開始時に点灯させるセグメントに対応するカウンタ値が特別図柄表示図柄カウンタに設定されることとなる。なお、特別図柄表示図柄カウンタは、第1特別図柄表示器160に対応する特別図柄1表示図柄カウンタと、第2特別図柄表示器162に対応する特別図柄2表示図柄カウンタとが別個に設けられており、ここでは、保留種別に対応するカウンタにカウンタ値が設定される。
(ステップS610−21)
メインCPU300aは、特別図柄1保留球数カウンタおよび特別図柄2保留球数カウンタのカウンタ値をロードし、特図保留指定コマンドを送信バッファにセットする。ここでは、特別図柄1保留球数カウンタのカウンタ値(特1保留数)に基づいて特図1保留指定コマンドをセットし、特別図柄2保留球数カウンタのカウンタ値(特2保留数)に基づいて特図2保留指定コマンドをセットする。また、ここでは、上記ステップS610−7で記憶した特1保留および特2保留の入賞順序に対応する特別図柄入賞順序コマンドを送信バッファにセットする。これにより、特1保留または特2保留が消化されるたびに、特1保留数および特2保留数、ならびに、これら各保留の入賞順序が副制御基板330に伝達されることとなる。
(ステップS610−23)
メインCPU300aは、特別遊技管理フェーズを「01H」に更新し、当該特別図柄変動待ち処理を終了する。
図28は、主制御基板300における特別図柄変動番号決定処理を説明するフローチャートである。
(ステップS612−1)
メインCPU300aは、上記ステップS610−9における大役抽選の結果が大当たりであるかを判定する。その結果、大当たりであると判定した場合にはステップS612−3に処理を移し、大当たりではない(ハズレである)と判定した場合にはステップS612−5に処理を移す。
(ステップS612−3)
メインCPU300aは、現在の変動状態、大当たり図柄の種別、保留種別に対応する大当たり時リーチモード決定乱数判定テーブルをセットする。
(ステップS612−5)
メインCPU300aは、読み出した保留の保留種別が特2保留である場合には、特別図柄2保留球数カウンタのカウンタ値を確認し、読み出した保留の保留種別が特1保留である場合には、特別図柄1保留球数カウンタのカウンタ値を確認する。
(ステップS612−7)
メインCPU300aは、現在の変動状態、上記ステップS612−5で確認した保留数、保留種別に基づいて、対応するリーチグループ決定乱数判定テーブルをセットする。そして、セットしたリーチグループ決定乱数判定テーブルと、上記ステップS610−7で第0記憶部に転送したリーチグループ決定乱数とに基づいて、リーチグループ(グループ種別)を決定する。
(ステップS612−9)
メインCPU300aは、上記ステップS612−7で決定されたグループ種別に対応するハズレ時リーチモード決定乱数判定テーブルをセットする。
(ステップS612−11)
メインCPU300aは、上記ステップS612−3または上記ステップS612−9でセットしたリーチモード決定乱数判定テーブルと、上記ステップS610−7で第0記憶部に転送したリーチモード決定乱数とに基づいて、変動モード番号を決定する。また、ここでは、変動モード番号とともに、変動パターン乱数判定テーブルが決定される。
(ステップS612−13)
メインCPU300aは、上記ステップS612−11で決定した変動モード番号に対応する変動モードコマンドを送信バッファにセットする。
(ステップS612−15)
メインCPU300aは、上記ステップS612−11で決定した変動パターン乱数判定テーブルと、上記ステップS610−7で第0記憶部に転送した変動パターン乱数とに基づいて、変動パターン番号を決定する。
(ステップS612−17)
メインCPU300aは、上記ステップS612−15で決定した変動パターン番号に対応する変動パターンコマンドを送信バッファにセットして、当該特別図柄変動番号決定処理を終了する。
図29は、主制御基板300における特別図柄変動中処理を説明するフローチャートである。この特別図柄変動中処理は、特別遊技管理フェーズが「01H」であった場合に実行される。
(ステップS620−1)
メインCPU300aは、特別図柄変動ベースカウンタを更新する処理を実行する。なお、特別図柄変動ベースカウンタは、所定周期(例えば100ms)で1周するようにカウンタ値が設定される。具体的には、特別図柄変動ベースカウンタのカウンタ値が「0」であった場合には、所定のカウンタ値(例えば25)がセットされ、カウンタ値が「1」以上であった場合には、現在のカウンタ値から「1」減算した値にカウンタ値を更新する。
(ステップS620−3)
メインCPU300aは、上記ステップS620−1で更新した特別図柄変動ベースカウンタのカウンタ値が「0」であるかを判定する。その結果、カウンタ値が「0」であった場合にはステップS620−5に処理を移し、カウンタ値が「0」ではなかった場合にはステップS620−9に処理を移す。
(ステップS620−5)
メインCPU300aは、上記ステップS610−15で設定された特別図柄変動タイマのタイマ値を所定値減算する特別図柄変動タイマ更新処理を行う。
(ステップS620−7)
メインCPU300aは、上記ステップS620−5で更新した特別図柄変動タイマのタイマ値が「0」であるかを判定する。その結果、タイマ値が「0」であった場合にはステップS620−15に処理を移し、タイマ値が「0」ではなかった場合にはステップS620−9に処理を移す。
(ステップS620−9)
メインCPU300aは、第1特別図柄表示器160および第2特別図柄表示器162を構成する7セグの各セグメントの点灯時間を計時する特別図柄表示タイマを更新する。具体的には、特別図柄表示タイマのタイマ値が「0」であった場合には、所定のタイマ値がセットされ、タイマ値が「1」以上であった場合には、現在のタイマ値から「1」減算した値にタイマ値を更新する。
(ステップS620−11)
メインCPU300aは、特別図柄表示タイマのタイマ値が「0」であるかを判定する。その結果、特別図柄表示タイマのタイマ値が「0」であると判定した場合にはステップS620−13に処理を移し、特別図柄表示タイマのタイマ値が「0」でないと判定した場合には当該特別図柄変動中処理を終了する。
(ステップS620−13)
メインCPU300aは、更新対象の特別図柄表示図柄カウンタのカウンタ値を更新する。これにより、7セグを構成する各セグメントが、所定時間おきに順次点灯することとなる。
(ステップS620−15)
メインCPU300aは、特別遊技管理フェーズを「02H」に更新する。
(ステップS620−17)
メインCPU300aは、対象の特別図柄表示図柄カウンタに、上記ステップS610−13で決定した特別図柄停止図柄番号(カウンタ値)をセーブする。これにより、第1特別図柄表示器160または第2特別図柄表示器162に、決定された特別図柄が停止表示されることとなる。
(ステップS620−19)
メインCPU300aは、第1特別図柄表示器160または第2特別図柄表示器162に特別図柄が停止表示されたことを示す特図停止指定コマンドを送信バッファにセットする。
(ステップS620−21)
メインCPU300aは、特別図柄を停止表示する時間である特別図柄変動停止時間を特別遊技タイマにセットし、当該特別図柄変動中処理を終了する。
図30は、主制御基板300における特別図柄停止図柄表示処理を説明するフローチャートである。この特別図柄停止図柄表示処理は、特別遊技管理フェーズが「02H」であった場合に実行される。
(ステップS630−1)
メインCPU300aは、上記ステップS620−21でセットした特別遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別遊技タイマのタイマ値が「0」ではないと判定した場合には当該特別図柄停止図柄表示処理を終了し、特別遊技タイマのタイマ値が「0」であると判定した場合にはステップS630−3に処理を移す。
(ステップS630−3)
メインCPU300aは、大役抽選の結果を確認する。
(ステップS630−5)
メインCPU300aは、大役抽選の結果が大当たりであるかを判定する。その結果、大当たりであると判定した場合にはステップS630−17に処理を移し、大当たりではないと判定した場合にはステップS630−7に処理を移す。
(ステップS630−7)
メインCPU300aは、回数切り管理処理を実行する。ここでは、特別図柄確率状態フラグをロードして、現在の遊技状態が低確率遊技状態であるか高確率遊技状態であるかを確認する。そして、遊技状態が高確率遊技状態であった場合には、高確回数切りカウンタのカウンタ値を、現在のカウンタ値から「1」減算した値に更新する。なお、高確回数切りカウンタを更新した結果、カウンタ値が「0」になった場合には、低確率遊技状態に対応する特別図柄確率状態フラグをセットする。これにより、高確率遊技状態において、大当たりに当選することなく、特別図柄が所定回数確定したところで、遊技状態が低確率遊技状態に移行することとなる。
また、ここでは、遊技状態が非時短遊技状態であるか時短遊技状態であるかを識別するための普通図柄時短状態フラグをロードして、現在の遊技状態が非時短遊技状態であるか時短遊技状態であるかを確認する。そして、遊技状態が時短遊技状態であった場合には、時短回数切りカウンタのカウンタ値を、現在のカウンタ値から「1」減算した値に更新する。なお、時短回数切りカウンタを更新した結果、カウンタ値が「0」になった場合には、非時短遊技状態に対応する普通図柄時短状態フラグをセットする。これにより、時短遊技状態において、大当たりに当選することなく、特別図柄が所定回数確定したところで、遊技状態が非時短遊技状態に移行することとなる。
(ステップS630−9)
メインCPU300aは、変動状態を更新する変動状態更新処理を実行する。
(ステップS630−11)
メインCPU300aは、特別図柄が確定したときの遊技状態を示す特図確定時遊技状態確認指定コマンドを送信バッファにセットする。
(ステップS630−13)
メインCPU300aは、上記ステップS630−7で更新した高確回数および時短回数を副制御基板330に伝達するための回数コマンドを送信バッファにセットする。
(ステップS630−15)
メインCPU300aは、特別遊技管理フェーズを「00H」に更新し、当該特別図柄停止図柄表示処理を終了する。これにより、1の保留に基づく特別遊技管理処理が終了し、特1保留または特2保留が記憶されている場合には、次の保留に基づく特別図柄の変動表示を開始するための処理が行われることとなる。
(ステップS630−17)
メインCPU300aは、確定した特別図柄の種別に応じて、特別電動役物作動ラムセットテーブルのデータをセットする。
(ステップS630−19)
メインCPU300aは、特別電動役物最大作動回数設定処理を行う。具体的には、上記ステップS630−17でセットしたデータを参照し、特別電動役物最大作動回数カウンタに、カウンタ値として所定数(特別図柄の種別に対応するカウンタ値=ラウンド数)をセットする。なお、この特別電動役物最大作動回数カウンタは、これから開始する大役遊技において実行可能なラウンド数を示すものである。一方、メインRAM300cには、特別電動役物連続作動回数カウンタが設けられており、各ラウンド遊技の開始時に、特別電動役物連続作動回数カウンタのカウンタ値を「1」加算することで、現在のラウンド遊技数が管理される。ここでは、大役遊技の開始に伴って、この特別電動役物連続作動回数カウンタのカウンタ値をリセット(「0」に更新)する処理が併せて実行される。
(ステップS630−21)
メインCPU300aは、上記ステップS630−17でセットしたデータを参照し、特別遊技タイマに、タイマ値として所定のオープニング時間をセーブする。
(ステップS630−23)
メインCPU300aは、大役遊技の開始を副制御基板330に伝達するためのオープニング指定コマンドを送信バッファにセットする。
(ステップS630−25)
メインCPU300aは、特別遊技管理フェーズを「03H」に更新し、当該特別図柄停止図柄表示処理を終了する。これにより、大役遊技が開始されることとなる。
図31は、主制御基板300における大入賞口開放前処理を説明するフローチャートである。この大入賞口開放前処理は、特別遊技管理フェーズが「03H」であった場合に実行される。
(ステップS640−1)
メインCPU300aは、上記ステップS630−21でセットした特別遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別遊技タイマのタイマ値が「0」ではないと判定した場合には当該大入賞口開放前処理を終了し、特別遊技タイマのタイマ値が「0」であると判定した場合にはステップS640−3に処理を移す。
(ステップS640−3)
メインCPU300aは、特別電動役物連続作動回数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(ステップS640−5)
メインCPU300aは、大入賞口128の開放開始(ラウンド遊技の開始)を副制御基板330に伝達するための大入賞口開放指定コマンドを送信バッファにセットする。
(ステップS641)
メインCPU300aは、大入賞口開閉切替処理を実行する。この大入賞口開閉切替処理については後述する。
(ステップS640−7)
メインCPU300aは、特別遊技管理フェーズを「04H」に更新し、当該大入賞口開放前処理を終了する。
図32は、主制御基板300における大入賞口開閉切替処理を説明するフローチャートである。
(ステップS641−1)
メインCPU300aは、特別電動役物開閉切替回数カウンタのカウンタ値が、特別電動役物開閉切替回数(1回のラウンド遊技中における大入賞口128の開閉回数)の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合には当該大入賞口開閉切替処理を終了し、カウンタ値は上限値ではないと判定した場合にはステップS641−3に処理を移す。
(ステップS641−3)
メインCPU300aは、特別電動役物作動ラムセットテーブルのデータを参照し、特別電動役物開閉切替回数カウンタのカウンタ値に基づいて、大入賞口ソレノイド128cを通電制御するためのソレノイド制御データ、および、大入賞口ソレノイド128cの通電時間もしくは通電停止時間であるタイマデータを抽出する。
(ステップS641−5)
メインCPU300aは、上記ステップS641−3で抽出したソレノイド制御データに基づいて、大入賞口ソレノイド128cの通電を開始するか、もしくは、大入賞口ソレノイド128cの通電を停止するための大入賞口ソレノイド通電制御処理を実行する。この大入賞口ソレノイド通電制御処理の実行により、上記ステップS400−25およびステップS400−27において、大入賞口ソレノイド128cの通電開始もしくは通電停止の制御がなされることとなる。
(ステップS641−7)
メインCPU300aは、上記ステップS641−3で抽出したタイマデータに基づくタイマ値を、特別遊技タイマにセーブする。なお、ここで特別遊技タイマにセーブされるタイマ値は、大入賞口128の1回の最大開放時間となる。
(ステップS641−9)
メインCPU300aは、大入賞口ソレノイド128cの通電開始状態か、すなわち、上記ステップS641−5において、大入賞口ソレノイド128cの通電を開始する制御処理がなされたかを判定する。その結果、通電開始状態であると判定した場合にはステップS641−11に処理を移し、通電開始状態ではないと判定した場合には当該大入賞口開閉切替処理を終了する。
(ステップS641−11)
メインCPU300aは、特別電動役物開閉切替回数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新し、当該大入賞口開閉切替処理を終了する。
図33は、主制御基板300における大入賞口開放制御処理を説明するフローチャートである。この大入賞口開放制御処理は、特別遊技管理フェーズが「04H」であった場合に実行される。
(ステップS650−1)
メインCPU300aは、上記ステップS641−7でセーブした特別遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別遊技タイマのタイマ値が「0」ではないと判定した場合にはステップS650−5に処理を移し、特別遊技タイマのタイマ値が「0」であると判定した場合にはステップS650−3に処理を移す。
(ステップS650−3)
メインCPU300aは、特別電動役物開閉切替回数カウンタのカウンタ値が、特別電動役物開閉切替回数の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合にはステップS650−7に処理を移し、カウンタ値は上限値ではないと判定した場合にはステップS641に処理を移す。
(ステップS641)
上記ステップS650−3において、特別電動役物開閉切替回数カウンタのカウンタ値が、特別電動役物開閉切替回数の上限値ではないと判定した場合には、メインCPU300aは、上記ステップS641の処理を実行する。
(ステップS650−5)
メインCPU300aは、上記ステップS500−9で更新された大入賞口入賞球数カウンタのカウンタ値が規定数に到達していないか、すなわち、大入賞口128に、1ラウンド中の最大入賞可能数と同数の遊技球が入球していないかを判定する。その結果、規定数に到達していないと判定した場合には当該大入賞口開放制御処理を終了し、規定数に到達したと判定した場合にはステップS650−7に処理を移す。
(ステップS650−7)
メインCPU300aは、大入賞口ソレノイド128cの通電を停止して大入賞口128を閉鎖するために必要な大入賞口閉鎖処理を実行する。これにより、大入賞口128が閉鎖状態となる。
(ステップS650−9)
メインCPU300aは、大入賞口閉鎖有効時間(インターバル時間)を特別遊技タイマにセーブする。
(ステップS650−11)
メインCPU300aは、特別遊技管理フェーズを「05H」に更新する。
(ステップS650−13)
メインCPU300aは、大入賞口128が閉鎖されたことを示す大入賞口閉鎖指定コマンドを送信バッファにセットし、当該大入賞口開放制御処理を終了する。
図34は、主制御基板300における大入賞口閉鎖有効処理を説明するフローチャートである。この大入賞口閉鎖有効処理は、特別遊技管理フェーズが「05H」であった場合に実行される。
(ステップS660−1)
メインCPU300aは、上記ステップS650−9でセーブした特別遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別遊技タイマのタイマ値が「0」でないと判定した場合には当該大入賞口閉鎖有効処理を終了し、特別遊技タイマのタイマ値が「0」であると判定した場合にはステップS660−3に処理を移す。
(ステップS660−3)
メインCPU300aは、特別電動役物連続作動回数カウンタのカウンタ値が、特別電動役物最大作動回数カウンタのカウンタ値と一致するか、すなわち、予め設定された回数のラウンド遊技が終了したかを判定する。その結果、特別電動役物連続作動回数カウンタのカウンタ値が、特別電動役物最大作動回数カウンタのカウンタ値と一致すると判定した場合にはステップS660−9に処理を移し、一致しないと判定した場合にはステップS660−5に処理を移す。
(ステップS660−5)
メインCPU300aは、特別遊技管理フェーズを「03H」に更新する。
(ステップS660−7)
メインCPU300aは、所定の大入賞口閉鎖時間を特別遊技タイマにセーブし、当該大入賞口閉鎖有効処理を終了する。これにより、次のラウンド遊技が開始されることとなる。
(ステップS660−9)
メインCPU300aは、エンディング時間を特別遊技タイマにセーブするエンディング時間設定処理を実行する。
(ステップS660−11)
メインCPU300aは、特別遊技管理フェーズを「06H」に更新する。
(ステップS660−13)
メインCPU300aは、エンディング時間の開始を示すエンディング指定コマンドを送信バッファにセットする。
図35は、主制御基板300における大入賞口終了ウェイト処理を説明するフローチャートである。この大入賞口終了ウェイト処理は、特別遊技管理フェーズが「06H」であった場合に実行される。
(ステップS670−1)
メインCPU300aは、上記ステップS660−9でセーブした特別遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別遊技タイマのタイマ値が「0」ではないと判定した場合には当該大入賞口終了ウェイト処理を終了し、特別遊技タイマのタイマ値が「0」であると判定した場合にはステップS670−3に処理を移す。
(ステップS670−3)
メインCPU300aは、大役遊技終了後の遊技状態を設定するための状態設定処理を実行する。ここでは、大役遊技の実行契機となった大当たり図柄に基づいて、大役遊技終了後の遊技状態が設定される。具体的には、大役遊技の実行契機となった大当たり図柄が特別図柄B、Cである場合には、高確率遊技状態および時短遊技状態に設定する(特別図柄確率状態フラグおよび普通図柄時短状態フラグをセット)とともに高確回数および時短回数を10000回に設定する。また、大役遊技の実行契機となった大当たり図柄が特別図柄Aである場合には、低確率遊技状態および時短遊技状態に設定する(特別図柄確率状態フラグおよび普通図柄時短状態フラグをセット)とともに時短回数を100回に設定する。なお、この処理は、大役遊技が実行された場合にのみ行われ、小当たり遊技が実行された場合には、当該処理を行うことはない。
(ステップS670−5)
メインCPU300aは、大役遊技の終了後に設定される遊技状態を伝達するための遊技状態変化指定コマンドを送信バッファにセットする。
(ステップS670−7)
メインCPU300aは、上記ステップS670−3でセーブした高確回数および時短回数に対応する回数コマンドを送信バッファにセットする。
(ステップS670−9)
メインCPU300aは、特別遊技管理フェーズを「00H」に更新し、当該大入賞口終了ウェイト処理を終了する。これにより、特1保留または特2保留が記憶されている場合には、特別図柄の変動表示が再開されることとなる。
図36は、普通遊技管理フェーズを説明する図である。既に説明したとおり、本実施形態では、ゲート124への遊技球の通過を契機とする普通遊技に係る処理が、段階的に、かつ、繰り返し実行されるが、主制御基板300では、こうした普通遊技に係る各処理を普通遊技管理フェーズによって管理している。
図36に示すように、メインROM300bには、普通遊技を実行制御するための複数の普通遊技制御モジュールが格納されており、これら普通遊技制御モジュールごとに、普通遊技管理フェーズが対応付けられている。具体的には、普通遊技管理フェーズが「00H」である場合には、「普通図柄変動待ち処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「01H」である場合には、「普通図柄変動中処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「02H」である場合には、「普通図柄停止図柄表示処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「03H」である場合には、「普通電動役物入賞口開放前処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「04H」である場合には、「普通電動役物入賞口開放制御処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「05H」である場合には、「普通電動役物入賞口閉鎖有効処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「06H」である場合には、「普通電動役物入賞口終了ウェイト処理」を実行するためのモジュールがコールされる。
図37は、主制御基板300における普通遊技管理処理(ステップS700)を説明するフローチャートである。
(ステップS700−1)
メインCPU300aは、普通遊技管理フェーズをロードする。
(ステップS700−3)
メインCPU300aは、上記ステップS700−1でロードした普通遊技管理フェーズに対応する普通遊技制御モジュールを選択する。
(ステップS700−5)
メインCPU300aは、上記ステップS700−3で選択した普通遊技制御モジュールをコールして処理を開始する。
(ステップS700−7)
メインCPU300aは、普通遊技の制御時間を管理する普通遊技タイマをロードする。
図38は、主制御基板300における普通図柄変動待ち処理を説明するフローチャートである。この普通図柄変動待ち処理は、普通遊技管理フェーズが「00H」であった場合に実行される。
(ステップS710−1)
メインCPU300aは、普通図柄保留球数カウンタのカウンタ値をロードし、カウンタ値が「0」であるか、すなわち、普図保留が「0」であるかを判定する。その結果、カウンタ値が「0」であると判定した場合には当該普通図柄変動待ち処理を終了し、カウンタ値は「0」ではないと判定した場合にはステップS710−3に処理を移す。
(ステップS710−3)
メインCPU300aは、普図保留記憶領域の第1記憶部〜第4記憶部に記憶されている普図保留(当たり決定乱数)を、1つ序数の小さい記憶部にブロック転送する。具体的には、第2記憶部〜第4記憶部に記憶されている普図保留を、第1記憶部〜第3記憶部に転送する。また、メインRAM300cには、処理対象となる第0記憶部が設けられており、第1記憶部に記憶されている普図保留を、第0記憶部に転送する。なお、この普通図柄記憶エリアシフト処理においては、普通図柄保留球数カウンタのカウンタ値を「1」減算するとともに、普図保留が「1」減算したことを示す、普図保留減指定コマンドを送信バッファにセットする。
(ステップS710−5)
メインCPU300aは、第0記憶部に転送された当たり決定乱数をロードし、現在の遊技状態に対応する当たり決定乱数判定テーブルを選択して普図抽選を行い、その抽選結果を記憶する普通図柄当たり判定処理を実行する。
(ステップS710−7)
メインCPU300aは、上記ステップS710−5の普図抽選の結果に対応する普通図柄停止図柄番号をセーブする。なお、本実施形態では、普通図柄表示器168は1つのLEDランプで構成されており、当たりの場合には普通図柄表示器168を点灯させ、ハズレの場合には普通図柄表示器168を消灯させる。ここで決定する普通図柄停止図柄番号は、最終的に普通図柄表示器168を点灯するか否かを示すものであり、例えば、当たりに当選した場合には、普通図柄停止図柄番号として「0」が決定され、ハズレの場合には、普通図柄停止図柄番号として「1」が決定される。
(ステップS710−9)
メインCPU300aは、現在の遊技状態を確認し、対応する普通図柄変動時間データテーブルを選択してセットする。
(ステップS710−11)
メインCPU300aは、上記ステップS710−3で第0記憶部に転送した当たり決定乱数と、上記ステップS710−9でセットした普通図柄変動時間データテーブルとに基づいて、普通図柄変動時間を決定する。
(ステップS710−13)
メインCPU300aは、上記ステップS710−11で決定した普通図柄変動時間を普通遊技タイマにセーブする。
(ステップS710−15)
メインCPU300aは、普通図柄表示器168において、普通図柄の変動表示を開始するために、普通図柄表示図柄カウンタを設定する処理を実行する。この普通図柄表示図柄カウンタに、カウンタ値として例えば「0」が設定されている場合には普通図柄表示器168が点灯制御され、カウンタ値として「1」が設定されている場合には普通図柄表示器168が消灯制御される。ここでは、普通図柄の変動表示の開始時に所定のカウンタ値が普通図柄表示図柄カウンタに設定されることとなる。
(ステップS710−17)
メインCPU300aは、普図保留記憶領域に記憶されている普図保留数を示す普図保留指定コマンドを送信バッファにセットする。
(ステップS710−19)
メインCPU300aは、上記ステップS710−7で決定された普通図柄停止図柄番号、すなわち、普通図柄当たり判定処理によって決定された図柄種別(当たり図柄またはハズレ図柄)に基づいて、普通図柄指定コマンドを送信バッファにセットする。
(ステップS710−21)
メインCPU300aは、普通遊技管理フェーズを「01H」に更新し、当該普通図柄変動待ち処理を終了する。
図39は、主制御基板300における普通図柄変動中処理を説明するフローチャートである。この普通図柄変動中処理は、普通遊技管理フェーズが「01H」であった場合に実行される。
(ステップS720−1)
メインCPU300aは、上記ステップS710−13でセーブした普通遊技タイマのタイマ値が「0」であるかを判定する。その結果、タイマ値が「0」であった場合にはステップS720−9に処理を移し、タイマ値が「0」ではなかった場合にはステップS720−3に処理を移す。
(ステップS720−3)
メインCPU300aは、普通図柄表示器168の点灯時間および消灯時間を計時する普通図柄表示タイマを更新する。具体的には、普通図柄表示タイマのタイマ値が「0」であった場合には、所定のタイマ値がセットされ、タイマ値が「1」以上であった場合には、現在のタイマ値から「1」減算した値にタイマ値を更新する。
(ステップS720−5)
メインCPU300aは、普通図柄表示タイマのタイマ値が「0」であるかを判定する。その結果、普通図柄表示タイマのタイマ値が「0」であると判定した場合にはステップS720−7に処理を移し、普通図柄表示タイマのタイマ値が「0」でないと判定した場合には当該普通図柄変動中処理を終了する。
(ステップS720−7)
メインCPU300aは、普通図柄表示図柄カウンタのカウンタ値を更新する。ここでは、普通図柄表示図柄カウンタのカウンタ値が、普通図柄表示器168の消灯を示すカウンタ値であった場合には点灯を示すカウンタ値に更新し、普通図柄表示器168の点灯を示すカウンタ値であった場合には消灯を示すカウンタ値に更新し、当該普通図柄変動中処理を終了する。これにより、普通図柄表示器168は、普通図柄変動時間にわたって、所定時間おきに点灯、消灯を繰り返す(点滅する)こととなる。
(ステップS720−9)
メインCPU300aは、普通図柄表示図柄カウンタに、上記ステップS710−7で決定した普通図柄停止図柄番号(カウンタ値)をセーブする。これにより、普通図柄表示器168が最終的に点灯もしくは消灯制御され、普図抽選の結果が報知されることとなる。
(ステップS720−11)
メインCPU300aは、普通図柄を停止表示する時間である普通図柄変動停止時間を普通遊技タイマにセットする。
(ステップS720−13)
メインCPU300aは、普通図柄の停止表示が開始されたことを示す普図停止指定コマンドを送信バッファにセットする。
(ステップS720−15)
メインCPU300aは、普通遊技管理フェーズを「02H」に更新し、当該普通図柄変動中処理を終了する。
図40は、主制御基板300における普通図柄停止図柄表示処理を説明するフローチャートである。この普通図柄停止図柄表示処理は、普通遊技管理フェーズが「02H」であった場合に実行される。
(ステップS730−1)
メインCPU300aは、上記ステップS720−11でセットした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通図柄停止図柄表示処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS730−3に処理を移す。
(ステップS730−3)
メインCPU300aは、普図抽選の結果を確認する。
(ステップS730−5)
メインCPU300aは、普図抽選の結果が当たりであるかを判定する。その結果、当たりであると判定した場合にはステップS730−9に処理を移し、当たりではない(ハズレである)と判定した場合にはステップS730−7に処理を移す。
(ステップS730−7)
メインCPU300aは、普通遊技管理フェーズを「00H」に更新し、当該普通図柄停止図柄表示処理を終了する。これにより、1の普図保留に基づく普通遊技管理処理が終了し、普図保留が記憶されている場合には、次の保留に基づく普通図柄の変動表示を開始するための処理が行われることとなる。
(ステップS730−9)
メインCPU300aは、開閉制御パターンテーブルのデータを参照し、普通遊技タイマに、タイマ値として普電開放前時間をセーブする。
(ステップS730−11)
メインCPU300aは、普通遊技管理フェーズを「03H」に更新し、当該普通図柄停止図柄表示処理を終了する。これにより、第2始動口122の開閉制御が開始されることとなる。
図41は、主制御基板300における普通電動役物入賞口開放前処理を説明するフローチャートである。この普通電動役物入賞口開放前処理は、普通遊技管理フェーズが「03H」であった場合に実行される。
(ステップS740−1)
メインCPU300aは、上記ステップS730−9でセットした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通電動役物入賞口開放前処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS741に処理を移す。
(ステップS741)
メインCPU300aは、普通電動役物入賞口開閉切替処理を実行する。この普通電動役物入賞口開閉切替処理については後述する。
(ステップS740−3)
メインCPU300aは、普通遊技管理フェーズを「04H」に更新し、当該普通電動役物入賞口開放前処理を終了する。
図42は、主制御基板300における普通電動役物入賞口開閉切替処理を説明するフローチャートである。
(ステップS741−1)
メインCPU300aは、普通電動役物開閉切替回数カウンタのカウンタ値が、普通電動役物開閉切替回数(1回の開閉制御中における第2始動口122の可動片122bの開閉回数)の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合には当該普通電動役物入賞口開閉切替処理を終了し、カウンタ値は上限値ではないと判定した場合にはステップS741−3に処理を移す。
(ステップS741−3)
メインCPU300aは、開閉制御パターンテーブルのデータを参照し、普通電動役物開閉切替回数カウンタのカウンタ値に基づいて、普通電動役物ソレノイド122cを通電制御するためのソレノイド制御データ(通電制御データまたは通電停止制御データ)、および、普通電動役物ソレノイド122cの通電時間(ソレノイド通電時間)もしくは通電停止時間(普電閉鎖有効時間=休止時間)であるタイマデータを抽出する。
(ステップS741−5)
メインCPU300aは、上記ステップS741−3で抽出したソレノイド制御データに基づいて、普通電動役物ソレノイド122cの通電を開始するか、もしくは、普通電動役物ソレノイド122cの通電を停止するための普通電動役物ソレノイド通電制御処理を実行する。この普通電動役物ソレノイド通電制御処理の実行により、上記ステップS400−25およびステップS400−27において、普通電動役物ソレノイド122cの通電開始もしくは通電停止の制御がなされることとなる。
(ステップS741−7)
メインCPU300aは、上記ステップS741−3で抽出したタイマデータに基づくタイマ値を、普通遊技タイマにセーブする。なお、ここで普通遊技タイマにセーブされるタイマ値は、第2始動口122の1回の最大開放時間となる。
(ステップS741−9)
メインCPU300aは、普通電動役物ソレノイド122cの通電開始状態か、すなわち、上記ステップS741−5において、普通電動役物ソレノイド122cの通電を開始する制御処理がなされたかを判定する。その結果、通電開始状態であると判定した場合にはステップS741−11に処理を移し、通電開始状態ではないと判定した場合には当該普通電動役物入賞口開閉切替処理を終了する。
(ステップS741−11)
メインCPU300aは、普通電動役物開閉切替回数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新し、当該普通電動役物入賞口開閉切替処理を終了する。
図43は、主制御基板300における普通電動役物入賞口開放制御処理を説明するフローチャートである。この普通電動役物入賞口開放制御処理は、普通遊技管理フェーズが「04H」であった場合に実行される。
(ステップS750−1)
メインCPU300aは、上記ステップS741−7でセーブした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合にはステップS750−5に処理を移し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS750−3に処理を移す。
(ステップS750−3)
メインCPU300aは、普通電動役物開閉切替回数カウンタのカウンタ値が、普通電動役物開閉切替回数の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合にはステップS750−7に処理を移し、カウンタ値は上限値ではないと判定した場合にはステップS741に処理を移す。
(ステップS741)
上記ステップS750−3において、普通電動役物開閉切替回数カウンタのカウンタ値が、普通電動役物開閉切替回数の上限値ではないと判定した場合には、メインCPU300aは、上記ステップS741の処理を実行する。
(ステップS750−5)
メインCPU300aは、上記ステップS530−9で更新された普通電動役物入賞球数カウンタのカウンタ値が規定数に到達していないか、すなわち、第2始動口122に、1回の開閉制御中の最大入賞可能数と同数の遊技球が入球していないかを判定する。その結果、規定数に到達していないと判定した場合には当該普通電動役物入賞口開放制御処理を終了し、規定数に到達したと判定した場合にはステップS750−7に処理を移す。
(ステップS750−7)
メインCPU300aは、普通電動役物ソレノイド122cの通電を停止して第2始動口122を閉鎖するために必要な普通電動役物閉鎖処理を実行する。これにより、第2始動口122が閉鎖状態となる。
(ステップS750−9)
メインCPU300aは、普電有効状態時間を普通遊技タイマにセーブする。
(ステップS750−11)
メインCPU300aは、普通遊技管理フェーズを「05H」に更新し、当該普通電動役物入賞口開放制御処理を終了する。
図44は、主制御基板300における普通電動役物入賞口閉鎖有効処理を説明するフローチャートである。この普通電動役物入賞口閉鎖有効処理は、普通遊技管理フェーズが「05H」であった場合に実行される。
(ステップS760−1)
メインCPU300aは、上記ステップS750−9でセーブした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通電動役物入賞口閉鎖有効処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS760−3に処理を移す。
(ステップS760−3)
メインCPU300aは、普電終了ウェイト時間を普通遊技タイマにセーブする。
(ステップS760−5)
メインCPU300aは、普通遊技管理フェーズを「06H」に更新し、当該普通電動役物入賞口閉鎖有効処理を終了する。
図45は、主制御基板300における普通電動役物入賞口終了ウェイト処理を説明するフローチャートである。この普通電動役物入賞口終了ウェイト処理は、普通遊技管理フェーズが「06H」であった場合に実行される。
(ステップS770−1)
メインCPU300aは、上記ステップS760−3でセーブした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通電動役物入賞口終了ウェイト処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS770−3に処理を移す。
(ステップS770−3)
メインCPU300aは、普通遊技管理フェーズを「00H」に更新し、当該普通電動役物入賞口終了ウェイト処理を終了する。これにより、普図保留が記憶されている場合には、普通図柄の変動表示が再開されることとなる。
以上のように、主制御基板300において各種の処理が実行されることにより、特別遊技および普通遊技が進行することとなるが、こうした遊技の進行中には、主制御基板300から送信されるコマンドに基づいて、副制御基板330において、さまざまな演出を実行するための制御が行われる。以下では、まず、低確率遊技状態(非時短遊技状態)において実行される演出について詳述し、その後、高確率遊技状態(時短遊技状態)において実行される演出について、低確率遊技状態(非時短遊技状態)における演出との差異点を説明する。
(共通モジュールを用いた当たり判定処理)
次に、種々の当たり判定処理を行うための共通モジュール(ワードデータ判定処理)による当たり判定処理について、図46から図49を用いて説明する。
上述のように、遊技機100には互いに異なる複数段階の比較数値範囲が割り当てられた複数の設定値が設けられている(図4、図5参照)。これにより遊技機100は、大当たりの当選確率が設定値ごとに異なる構成(設定別大当たり判定を行う構成)となっている。一方で、遊技機100における大当たり以外の当たり(小当たりおよび普図抽選の当たり)の当選確率は、設定値別ではなく(図6および図14参照)、全設定値において共通である。しかしながら、設定値別に当選確率の異なる大当たりの判定処理と、全設定値で共通の当選確率である大当たり以外の当たり判定処理とをそれぞれ異なる制御モジュール(プログラム)で実行した場合、制御処理手順が煩雑化し、当たり判定に係る制御プログラム量が増大するおそれがある。この場合、限られたプログラム容量において演出等の制御に利用するための容量が減少してしまうといった問題が生じ得る。
そこで、本実施形態による遊技機100は、大当たり判定の制御処理手順と、大当たり以外の当たり(小当たり、普図抽選の当たり)判定の制御処理手順とを共通化し、種々の当たり判定処理を共通のモジュール(ワードデータ判定処理)を利用して行う構成とした。これにより、遊技機100において、制御処理手順が効率化され、設定値別の大当たり判定処理の実装に伴う制御プログラムの増加量を低減することができる。
本実施形態においてメインCPU300aは、ステップS536−3の特別図柄当たり仮判定処理、ステップS610−8の特別図柄大当たり判定処理、ステップS610−10の特別図柄小当たり判定処理およびステップS710−5の普通図柄当たり判定処理の実行時において共通モジュールであるワードデータ判定処理を呼び出し、種々の当たり判定を行う。また、メインCPU300aは、ワードデータ判定処理の実行にあたり、予め、主制御基板300の内部レジスタ(不図示)に、実行対象の当たり判定処理に用いる当たり判定テーブルのアドレスをセットする処理を行う。以降、低確時大当たり判定テーブル(図4参照)、高確時大当たり判定テーブル(図5参照)、特1用小当たり判定テーブル(図6(a)参照)および特2用小当たり判定テーブル(図6(b)参照)、非時短用当たり判定テーブル(図14(a)参照)、短遊技状態用当たり決定乱数判定テーブル(図14(b)参照)の6つのテーブルを当たり判定テーブルと総称する場合がある。
図46は、本実施形態による遊技機100における各種の当たり判定テーブルの配置例を示す図である。遊技機100の主制御基板300において、6つの当たり判定テーブルを構成するデータのそれぞれは、所定の記憶領域(例えばメインROM300b)に配置されている。
図46は、「テーブル論理名」、「ラベル」、「アドレス」、「データ量(バイト)」、「データ」、「データの内容」の6つの項目に分かれた表形式の図である。「テーブル論理名」は理解を容易にするために各当たり判定テーブルに付けられた便宜上の名称を示しており、図46に示す「テーブル論理名」欄には上述の6つの当たり判定テーブルの論理名を表示している。また、「ラベル」は制御プログラム上において各当たり判定テーブルの識別に用いる名称を示しており、図46の「ラベル」欄には6つの当たり判定テーブルの論理名と対応付けられたラベルを表示している。遊技機100においてメインCPU300aは、ラベルを指定することによりメインROM300bに記憶されている各当たり判定テーブルの先頭データに対応するアドレスを取得する。
また、「アドレス」は、メインROM300bにおいて、各当たり判定テーブルを構成するデータが格納されている領域の物理的位置を示しており、図46に示す「アドレス」欄には、各当たり判定テーブルに割り当てられたメインROM300b上の領域を示すアドレス値を表示している。メインROM300bには1バイトごとの領域にアドレス値が割り振られている。なお、図46に示すアドレス値はあくまで例示である。
また、「データ」は対応する各当たり判定テーブルを構成するデータを示しており、図46に示す「データ」欄には各アドレス値に対応する領域に格納されたデータを表示している。また、「データ量(バイト)」は「データ」欄に示す各データのデータ量(バイト)を示しており、「1」は1バイトを示す「1」、または2バイトを示す「2」が表示されている。データ量が2バイトであるデータは、連続する2つのアドレス値が示す領域に1バイトずつ格納されている。また、「データ内容」は「データ」欄に示す各データの内容説明を示しており、図46に示す「データ内容」欄には、理解を容易にするため各データを説明する情報を表示している。なお、図4から図6および図14に示す各当たり判定テーブルの比較数値範囲との比較を容易にするため、図46においてデータ欄に示す比較数値範囲の下限値および上限値は、10進数で表記している。
図46に示すように、本例において各当たり判定テーブルは、メインROM300bにおけるアドレス「1200H」から「1231H」までの領域において、非時短用当たり判定テーブル、時短用当たり判定テーブル、低確時大当たり判定テーブル、高確時大当たり判定テーブル、特1用小当たり判定テーブル、特2用小当たり判定テーブルの順に配置されているが、この配置順はあくまで一例である。以下、本例における配置順に基づいて各当たり判定テーブルの構成を説明する。
遊技機100において普図抽選に用いる非時短用当たり判定テーブル(図14(a)参照)は、図46に示すようにラベル「D_JDG_FHT_L」で識別され、メインROM300bにおいて1200H〜1204H番地の領域が割り当てられている。メインCPU300aは、ラベル「D_JDG_FHT_L」を指定することで、非時短用当たり判定テーブルの先頭のアドレス値「1200H」を取得できる。非時短用当たり判定テーブルの先頭に該当する1200H番地には、1バイトのデータ「00H」が上限識別値としてが格納され、1201H、1202H番地に該当する2バイト分の領域には、非時短遊技状態に応じた比較数値範囲(普図当たり範囲)の下限値として2バイト分のデータ「0」が格納され、1203H、1204Hに該当する2バイト分の領域には、当該普図当たり範囲の上限値として2バイト分のデータ「0」が格納されている。
本実施形態による遊技機100は、各当たり判定テーブルにおいて当たり判定に用いる比較数値範囲の下限値と上限値とを保持することで、比較数値範囲を規定している。図46に示す非時短用当たり判定テーブルは、普図当たり範囲の下限値として「0」が格納され、普図当たり範囲の上限値として「0」が格納されている。したがって、時短用当たり判定テーブルを用いた普図抽選における普図当たり範囲は「0」に規定される。
ここで、上限識別値について説明する。上述のように、遊技機100において、大当たりの当選確率は設定値ごとに異なり、大当たり以外の当たり(小当たりおよび普図抽選の当たり)の当選確率は全設定値において共通である。すなわち、大当たり判定に用いられる比較数値範囲(大当たり範囲)は設定値別に設けられ、小当たりの判定に用いられる比較数値範囲(小当たり範囲)および普図抽選の当たり判定に用いられる比較数値範囲(普図当たり範囲)は、全設定値で共通である。このため、遊技機100には、当たり判定用の比較数値範囲のデータとして、設定値別のデータと全設定値共通のデータとが混在している。
そこで遊技機100において各当たり判定テーブルは、当該テーブルが規定する比較数値範囲が設定値別のデータか全設定値共通のデータか否かを識別するための、1バイト分のデータ(識別値)を先頭アドレスに格納している。
本例では、大当たり範囲、すなわち設定値別の比較数値範囲について、下限値を全設定値に共通の値(固定値)とし、かつ上限値を設定値ごとに異なる値としている。下限値が固定値であっても、上限値を設定値ごとに異なる値とすることにより、複数の設定値ごとに異なる複数段階の比較数値範囲を規定することができる。なお、下限値は、各当たり判定テーブル内において固定(1つ)であればよく、テーブル間においては下限値が異なっていてもよい。
一方、全設定値共通の比較数値範囲(小当たり範囲、普図当たり範囲)は、下限値および上限値のいずれも全設定値共通の値(固定値)となる。このため、遊技機100において、上限値が設定値別の値であるか否かによって、比較数値範囲が設定値別のデータか全設定値共通のデータかが区別される。このため、図46に示すように、本例において各当たり判定テーブル先頭に保持される識別値を上限識別値と称する。識別値には、比較数値範囲データが全設定値共通データであることを示す「00H」と、比較数値範囲が設定値別データであることを示す「FFH」とがある。
以上より、図46に示す非時短用当たり判定テーブルは、普図当たり範囲として全設定値共通の比較数値範囲「0」が規定されているテーブルである。
また、遊技機100において普図抽選に用いる時短用当たり判定テーブル(図14(b)参照)は、図46に示すように、ラベル「D_JDG_FHT_H」で識別され、メインROM300bにおける1205H〜1209H番地の領域が割り当てられている。時短用当たり判定テーブルの先頭に該当する1205H番地には比較数値範囲が全設定値共通のデータであることを示す上限識別値「00H」が格納され、1206H、1207H番地に該当する2バイト分の領域には、時短遊技状態に応じた普図当たり範囲の下限値のデータ「0」が格納され、1208H、1209Hに該当する2バイト分の領域には、当該普図当たり範囲の上限値のデータ「98」が格納されている。以上より、図46に示す時短用当たり判定テーブルは、全設定値共通の普図当たり範囲として「0〜98」が規定されているテーブルである。
また、遊技機100において大役抽選に用いる低確時大当たり判定テーブル(図4(a)〜(f)参照)は、図46に示すように、ラベル「D_JDG_BHT_L」で識別され、メインROM300bにおける120AH〜1218H番地の領域が割り当てられている。低確時大当たり判定テーブルの先頭に該当する120AH番地には、比較数値範囲が設定値別のデータであることを示す上限識別値「FFH」が格納され、120BH、120CH番地に該当する2バイト分の領域には、低確率遊技状態に応じた大当たり範囲の下限値のデータ「10001」が格納されている。上述用のように、本例では、各当たり判定テーブルにおける比較数値範囲の下限値は、全設定値共通の値(固定値)である。したがって、アドレス120BH、120CH番地に格納された大当たり範囲の下限値(10001)は、設定値1〜6のいずれにも共通の値である。
また、低確時大当たり判定テーブルにおける120DH〜1218H番地には、設定値1〜6のそれぞれに対応する設定値別の上限値が2バイトずつ格納されている。具体的には、アドレス120DH,120EH番地には設定値1に対応する上限値「10218」が格納され、アドレス120FH,1210H番地には設定値2に対応する上限値「10243」が格納され、アドレス1211H,1212H番地には設定値3に対応する上限値「10273」が格納され、アドレス1213H,1214H番地には設定値4に対応する上限値「10312」が格納され、アドレス1215H,1216H番地には設定値5に対応する上限値「10364」が格納され、アドレス1217H,1218H番地には設定値6に対応する上限値「10437」が格納されている。
以上より、図46に示す低確時大当たり判定テーブルは、設定値別の大当たり範囲が規定されているテーブルであって、設定値1に対応する大当たり範囲が「10001〜10218」に規定され、設定値2に対応する大当たり範囲が「10001〜10243」に規定され、設定値3に対応する大当たり範囲が「10001〜10273」に規定され、設定値4に対応する大当たり範囲が「10001〜10312」に規定され、設定値5に対応する大当たり範囲が「10001〜10364」に規定され、設定値6に対応する大当たり範囲が「10001〜10437」に規定されている。
また、遊技機100において大役抽選に用いる高確時大当たり判定テーブル(図5(a)〜(f)参照)は、図46に示すように、ラベル「D_JDG_BHT_H」で識別され、メインROM300bにおける1219H〜1227H番地の領域が割り当てられている。高確時大当たり判定テーブルの先頭に該当する1219H番地には、上限識別値「FFH」が格納され、121AH、121BH番地には、高確率遊技状態に応じた大当たり範囲の下限値のデータ「10001」が格納されている。低確率遊技状態と同様に高確率遊技状態においても、大当たり範囲の下限値は、全設定値(設定値1〜6)に共通の固定値(本例では「10001」)である。
また、高確時大当たり判定テーブルにおける121CH〜1227H番地には、設定値1〜6のそれぞれに対応する設定値別の上限値が2バイトずつ格納されている。具体的には、アドレス121CH,121DH番地には設定値1に対応する上限値「10655」が格納され、アドレス121EH,121FH番地には設定値2に対応する上限値「10728」が格納され、アドレス1220EH,1221H番地には設定値3に対応する上限値「10819」が格納され、アドレス1222H,1223H番地には設定値4に対応する上限値「10936」が格納され、アドレス1224H,1225H番地には設定値5に対応する上限値「11092」が格納され、アドレス1226H,1227H番地には設定値6に対応する上限値「11310」が格納されている。
以上より、図46に示す高確時大当たり判定テーブルは、設定値別の大当たり範囲が規定されているテーブルであって、設定値1に対応する大当たり範囲が「10001〜10655」に規定され、設定値2に対応する大当たり範囲が「10001〜10728」に規定され、設定値3に対応する大当たり範囲が「10001〜10819」に規定され、設定値4に対応する大当たり範囲が「10001〜10936」に規定され、設定値5に対応する大当たり範囲が「10001〜11092」に規定され、設定値6に対応する大当たり範囲が「10001〜11310」に規定されている。
また、遊技機100において大役抽選の小当たり判定に用いる特1用小当たり判定テーブル(図6(a)参照)は、図46に示すように、ラベル「D_JDG_SHT_TZ1」で識別され、メインROM300bにおける1228H〜122CH番地の領域が割り当てられている。特1用小当たり判定テーブルの先頭に該当する1228H番地には比較数値範囲が全設定値共通のデータであることを示す上限識別値「00H」が格納され、1229H、122AH番地に該当する2バイト分の領域には特1保留に応じた小当たり範囲の下限値のデータ「12001」が格納され、122BH、122CHに該当する2バイト分の領域には、当該小当たり範囲の上限値のデータ「12819」が格納されている。以上より、図46に示す特1用小当たり判定テーブルは、全設定値共通の小当たり範囲として「12001〜12819」が規定されているテーブルである。
また、遊技機100において大役抽選の小当たり判定に用いる特2用小当たり判定テーブル(図6(b)参照)は、図46に示すように、ラベル「D_JDG_SHT_TZ2」で識別され、メインROM300bにおける122DH〜1231H番地の領域が割り当てられている。特2用小当たり判定テーブルの先頭に該当する122DH番地には特1用小当たり判定テーブルと同様に上限識別値「00H」が格納され、122EH、122FH番地に該当する2バイト分の領域には特2保留応じた小当たり範囲の下限値のデータ「12001」が格納され、1230H、1231Hに該当する2バイト分の領域には、当該小当たり範囲の上限値のデータ「12799」が格納されている。以上より、図46に示す特2用小当たり判定テーブルは、全設定値共通の小当たり範囲として「12001〜12799」が規定されているテーブルである。
このように、本実施形態による遊技機100において、各当たり判定テーブルはいずれも、当たり判定に用いる乱数と比較する比較数値範囲の種別(設定値別か全設定値共通か)を識別するための上限識別値と、比較数値範囲の下限値および上限値とで構成されている。また、遊技機100における記憶領域(本例では、メインROM300b)には、複数の設定値のそれぞれに対応する複数段階の比較数値範囲(設定値別の比較数値範囲)である大当たり範囲(第一数値範囲の一例)および複数の設定値のいずれにも対応づけられていない数値範囲(全設定値共通の比較数値範囲)である小当たり範囲(第二数値範囲の一例)、普図当たり範囲が記憶されている。比較数値範囲の種別が設定値別である設定値別判定テーブル(上限識別値「FFH」を格納する当たり判定テーブル)には、比較数値範囲を規定するデータとして一の下限値と、設定値に対応する複数の上限値とが格納されている。一方、比較数値範囲の種別が全設定値共通である全設定値共通判定テーブル(上限識別値「00H」を格納する当たり判定テーブル)には、比較数値範囲を規定するデータとして一の下限値と、一の上限値とが格納されている。
当たり判定の処理を行うにあたり、メインCPU300aは、当たり判定に用いる乱数値が比較数値範囲に含まれるか否かを判定するため、比較数値範囲を取得することとなる。具体的には、メインCPU300aは、当たり判定の処理において、比較数値範囲の下限値と上限値とを参照して当たり判定に用いる乱数値との比較処理を行う。本例では、上述のようにいずれの当たり判定テーブルにおいても下限値データの数は1つであって、一の下限値データのアドレスを指定することで下限値を容易に参照することができる。一方で、上限値のデータ数は、各当たり判定テーブルが設定値別判定テーブルか全設定値共通判定テーブルによって異なる。このため、共通モジュールを用いる当たり判定においては、上限値データのアドレス値の導出に工夫が必要となる。
ここで、図46を参照しつつ図47を用いて、本実施形態における比較数値範囲の上限値データのアドレス導出方法を説明する。図47(a)は、下限値データのアドレス値を基準として表される上限値のデータのアドレス値を示す図である。図47(a)の上段は、比較数値範囲の種別が全設定値共通である全設定値共通判定テーブルの上限値アドレス値を示し、図47(a)の下段は、設定値別判定テーブルの複数の上限値アドレス値を示している。
また、図47(b)は、全設定値共通判定テーブルおよび設定値別判定テーブルのそれぞれの上限値データのアドレス値導出に共通で用いられる上限値アドレス導出式(f1)を示す図である。なお、本実施形態の遊技機100において、設定値1〜6は、制御プログラム上において「0」から「5」の数値データとして扱われる。このため、図47(a)、図47(b)では、設定値1〜6に併記して、対応する設定値データ0〜5を表示している。
図46で示したように、遊技機100において、全設定値共通判定テーブル、設定値別判定テーブルのいずれの当たり判定テーブルでも、上限識別値、下限値、上限値の順にデータが格納されている。図46に示す例では、1バイトの上限識別値のデータは先頭アドレス(例えば1200H番地)が示す領域に格納されている。このため、上限識別値の次の領域に格納されている比較数値範囲の下限値のデータのアドレス値は、先頭アドレス値(例えば1200H)に1加算した値(例えば1201H)となる。また、下限値は2バイトのデータであるため、比較数値範囲の上限値のアドレスは下限値の先頭アドレス値(例えば1201H)に2を加算した値のアドレス(例えば1203H)以降に格納されている。
全設定値共通判定テーブル(特1、特2用小当たり判定テーブルおよび非時短用、時短用当たり判定テーブル)では下限値のデータだけでなく上限値のデータも固定値となるため、格納されている上限値のデータ数は1つである。したがって、図47(a)上段に示すように、全設定値共通判定テーブルにおいて、下限値データのアドレス値と上限値データのアドレス値との差分を示す値(オフセット値)は常に同じ値となる。本例では、上限値データが下限値データの次に格納されており、かつ下限値データが2バイトである。このため、全設定値共通判定テーブルの上限値データのアドレス値は、下限値データのアドレス値に常に同一値のオフセット値(2)を加算すること導出することができる。例えば、図46に示す非時短用当たり判定テーブルにおける上限値データのアドレス(1203H)は、下限値データのアドレス(1201H)+オフセット値(2)の演算によって導出可能である。
一方、設定値別判定テーブル(低確時、高確時大当たり判定テーブル)には、設定値の数(本例では1〜6の6つ)に応じた複数の上限値データが格納されている。したがって、設定値別判定テーブルにおいて、上限値データのアドレスを導出するために下限値に加算するオフセット値は、設定値ごとに異なる。本例では、設定値別判定テーブルにおいて、2バイトの上限値データが連続して、設定値1〜6に対応する順に格納されている。このため、図47(a)上段に示すように、設定値1〜6のそれぞれに対応する上限値データのアドレス値を導出するには、下限値データのアドレスに加算するオフセット値を変化させていくことになる。
具体的には、設定値1に応じた上限値データのアドレス値を導出するには下限値データのアドレス値にオフセット値として2を加算し、設定値2に応じた上限値データのアドレス値を導出するには下限値データのアドレス値にオフセット値として4を加算し、設定値3に応じた上限値データのアドレス値を導出するには下限値データのアドレス値にオフセット値として6を加算し、設定値4に応じた上限値データのアドレス値を導出するには下限値データのアドレス値にオフセット値として8を加算し、設定値5に応じた上限値データのアドレス値を導出するには下限値データのアドレス値にオフセット値として10を加算し、設定値6に応じた上限値データのアドレス値を導出するには下限値データのアドレス値にオフセット値として12を加算する。このように、オフセット値を2ずつ増加させることで設定値別判定テーブルにおける上限値データのアドレス値を導出することができる。
しかしながら、図47(a)に示すように全設定値共通判定テーブルと設定値別テーブルとで上限値データのアドレス値の導出方法(演算)を分け、さらに設定値別テーブルにおいて設定値に応じてオフセット値を算出するような制御を行うと、処理が煩雑となり当たり判定に係る制御プログラム量も増加してしまう。
そこで、本実施形態による遊技機100は、図47(b)に示すように、一の導出式(f1)を用いた演算により、全設定値共通判定テーブルおよび設定値別テーブルにおける上限値データのアドレス値を導出可能な構成とした。この導出式(f1)を用いることで、遊技機100は、設定値ごとに異なる上限値データのアドレスおよび全設定値共通の上限値データのアドレスのいずれも導出することができる。導出式(f1)は、3つの要素(1)〜(3)で構成される。要素(1)〜(3)の演算をこの順で実行することにより、下限値データのアドレス値に加算するオフセット値が算出され、算出されたオフセット値を下限値のアドレス値に加算することで上限値データのアドレス値が導出される。
まず、全設定値共通判定テーブルに導出式を適用する例を説明する。
全設定値共通判定テーブルには、上限識別値「00H」が格納されている。16進数「00H」は全桁が0で構成される1バイト(8ビット)の2進数データ「0000 0000」として表される。また、設定値データ「0」(設定値1)も同様に2進数データ「0000 0000」で表され、設定値データ「1」(設定値2)は2進数データ「0000 0001」で表され、設定値データ「2」(設定値3)は2進数データ「0000 0010」で表され、設定値データ「3」(設定値4)は2進数データ「0000 0011」で表され、設定値データ「4」(設定値5)は2進数データ「0000 0100」で表され、設定値データ「5」(設定値6)は2進数データ「0000 0101」で表される。
上述のように、上限識別値「00H」は全桁が0で構成されているデータである。このため、設定値データ0〜5を表す2進数データのそれぞれと上限識別値「00H」の2進数データとの論理積演算(導出式(f1)の要素(1))を行うと結果として各桁が0の2進数データが得られる。すなわち、設定値データと上限識別値「00H」との論理積演算結果は常に「0000 0000」(0)となる。次に、導出式の要素(1)の結果(0)に1を加算すると、要素(2)の演算結果として値「1」が得られる。導出式における要素(1)、要素(2)の演算結果にさらに2を乗算すると、要素(3)の演算結果としてオフセット値「2」が得られる。このようにして、全設定値共通判定テーブルに図47(b)に示す導出式(f1)を適用した場合、論理積演算結果(要素(1)の演算結果)が常に0となることから、オフセット値として常に「2」が導出される。
次に、設定値別判定テーブルに導出式を適用する例を説明する。
設定値別判定テーブルには、上限識別値「FFH」が格納されている。16進数「FFH」は全桁が1で構成される1バイト(8ビット)の2進数データ「1111 1111」として表される。このため、設定値データ0〜5の2進数データと、上限識別値「FFH」の2進数データとの論理積演算(導出式(f1)の要素(1))を行うと、設定値データ0〜5の2進数データにおいて「1」が設定された桁(ビット)のみが1となり、「0」が設定された桁はそのまま0となる。したがって、導出式の要素(1)の結果は、設定値データが0〜5のいずれの場合も設定値データ0〜5のそれぞれと同値となる。例えば、設定値データ「0」の2進数データ「0000 0000」と上限識別値「FFH」の2進数データ「1111 1111」との論理積演算結果は設定値データ「0」と同値「0000 0000」(0)であり、設定値データ「1」の2進数データ「0000 0001」と上限識別値「FFH」の2進数データ「1111 1111」との論理積演算結果は設定値データ「1」と同値「0000 0001」(1)である。
さらに、設定値データ「2」の2進数データ「0000 0010」と上限識別値「FFH」の2進数データとの論理積演算結果は設定値データと同値「0000 0010」(2)であり、設定値データ「3」の2進数データ「0000 0011」と上限識別値「FFH」の2進数データとの論理積演算結果は設定値データと同値「0000 0010」(3)であり、設定値データ「4」の2進数データ「0000 0100」と上限識別値「FFH」の2進数データとの論理積演算結果は設定値データと同値「0000 0100」(4)であり、設定値データ「5」の2進数データ「0000 0101」と上限識別値「FFH」の2進数データとの論理積演算結果は設定値データと同値「0000 0101」(5)である。
次に、導出式(f1)の要素(1)の結果(設定値データと同値)に1を加算すると、要素(2)の演算結果として「設定値データ+1」の値が得られる。すなわち要素(2)の演算により、設定値データの値0〜5は、論理上の設定値1〜6に変換される。さらに、導出式(f1)における要素(1)、要素(2)の演算結果にさらに2を乗算すると、要素(3)の演算結果として設定値1〜6に対応するオフセット値「2」〜「12」が得られる。
このようにして、設定値別判定テーブルに図47(b)に示す導出式を適用した場合、オフセット値として図47(b)下段示す設定値1〜6に応じた値(2〜12)が導出される。
以上説明したように、本実施形態による遊技機100において、種々の当たり判定に用いる当たり判定テーブルは、全設定値共通判定テーブルおよび設定値別判定テーブルにおいてデータの格納順が統一され、さらに比較数値範囲の下限値が固定値となっている。このため、主制御基板300のメインCPU300aは、いずれの当たり判定テーブルにおいても、先頭アドレス値に1加算した値を下限値データのアドレス値とし、一の下限値データのアドレス値を基準として上限値データのアドレス値を導出することができる。
また、遊技機100は、設定値別判定テーブルにおける上限値データのアドレス値の導出を行う場合、導出式(f1)により、全桁が1で構成される上限識別値(FFH)と設定値データとの論理積演算を行う。一方で、遊技機100は、全設定値共通判定テーブルにおける上限値データのアドレス値導出を行う場合、導出式(f1)により、全桁が0で構成される上限識別値(00H)と設定値データとの論理積演算を行う。
これにより、遊技機100において、全設定値共通判定テーブルおよび設定値別判定テーブルでオフセット値の算出を共通化することができ、いずれの当たりテーブルを用いて当たり判定を行う場合も、図47(b)に示す導出式(f1)を用いた同一の演算によりオフセット値を算出可能となる。
また、遊技機100において、設定値別判定テーブルにおける上限識別値が「FFH」であることから、図47(b)に示す導出式(f1)における上限識別値と設定値データとの論理積演算により、設定値データの値0〜5が論理上の設定値1〜6に変換される。このため、遊技機100は、設定中の設定値が設定値1〜6のいずれである場合も、設定中の設定値に割り当てられた比較数値範囲を同一の演算により導出することができる。これにより遊技機100は、当たり判定における制御処理手順を簡略化することができ、当たり判定に係る制御プログラムの増加量を低減することができる。
また本例では、設定値別判定テーブル、すなわち図46に示した低確時大当たり判定テーブルおよび高確時大当たり判定テーブルにおいて、下限値を全設定値共通の固定値とし、上限値を設定値ごとに異なる値とすることで、複数の設定値(本例では設定値1〜6)に割り当てられた互いに異なる比較数値範囲(例えば大当たり範囲)を規定する例を説明した。しかしながら、本実施形態はこれに限られない。例えば、上限値を全設定値共通の固定値とし、下限値を設定値ごとに異なる値とすることで複数の設定値(本例では設定値1〜6)ごとに割り当てられた複数段階の大当たり範囲を規定してもよい。
つまり、互いに異なる複数段階の数値範囲(大当たり範囲)が予め割り当てられた複数の設定値のうちの、設定中の一の設定値に対応する大当たり範囲に大当たり決定乱数(所定の乱数の一例)が含まれるか否かの判定により、大当たりに当選するか否かの抽選を行うメインCPU300aを有する本実施形態による遊技機100において、複数段階の大当たり範囲の下限値および上限値のいずれかが、複数の設定値間(全設定値間)において共通の値であればよい。これにより、遊技機100において、当たり判定に係るデータ量(例えば複数の当たり判定テーブルのデータ格納量)を低減することができる。また、設定値ごとに異なる大当たり範囲が適用される遊技機100において、当たり判定処理に係る制御処理手順を簡略化し、当たり判定に係る制御プログラムの増加量を低減することができる。
(ワードデータ判定処理)
図48は、ワードデータ判定処理の流れの一例を説明するフローチャートである。主制御基板300のメインCPU300aは、上述のステップS536−3の特別図柄当たり仮判定処理、本ステップS610−8の特別図柄大当たり判定処理、後述するステップS610−10の特別図柄小当たり判定処理およびステップS710−5の普通図柄当たり判定処理においてワードデータ判定処理を呼び出し、各種の当たり判定処理を実行する。
ワードデータ判定処理の前処理としてメインCPU300aは、ワードデータ判定処理の呼び出し元の処理において、当たり判定処理の種類(特別図柄当たり仮判定処理、特別図柄大当たり判定処理、特別図柄小当たり判定処理または普通図柄当たり判定処理)に応じて、使用する当たり判定テーブルのラベルを指定する。これにより、ワードデータ判定処理の開始時において、当たり判定テーブルの先頭アドレスが主制御基板300内の規定のレジスタ(HLレジスタ)にセットされる。
(ステップS800−1)
ステップS800−1においてメインCPU300aは、メインRAM300cの所定の記憶領域に記憶されている設定中の設定値(1〜6のいずれか)に対応する設定値データ(0〜5のいずれか)をロードし、ステップS800−3に処理を移す。
(ステップS800−3)
ステップS800−3においてメインCPU300aは、設定中の設定値データの値が0〜5の範囲内か否かを判定する。メインCPU300aは、設定中の設定値データの値が0〜5の範囲内であると判定するとステップS800−5に処理を移す。一方、メインCPU300aは、設定中の設定値データの値が0〜5の範囲内でないと判定するとステップS800−21に処理を移す。
(ステップS800−5)
ステップS800−5においてメインCPU300aは、設定値と上限識別値との論理積演算を実行してステップS800−7に処理を移す。本ステップの処理は、図47(b)に示す導出式(f1)の要素(1)に該当する。具体的には、メインCPU300aは、HLレジスタにセットした当たり判定テーブルの先頭アドレスから上限識別値を取得し、取得した上限識別値とステップS800−1でロードした設定値データとの論理積演算を実行して要素(1)の演算結果を取得する。
(ステップS800−7)
ステップS800−7においてメインCPU300aは、HLレジスタにセットされた上限識別値のアドレスに1加算した値を下限値データのアドレスとしてHLレジスタに格納し、ステップS800−9に処理を移す。
(ステップS800−9)
ステップS800−9においてメインCPU300aは、比較数値範囲の下限値と当たり判定値(各種当たり判定に用いる乱数値)とが等しいか否かを判定する。具体的には、メインCPU300aは、まずHLレジスタに格納された下限値データのアドレスに基づいて、当たり判定テーブルの下限値を取得する。さらに、取得した下限値が、各種当たり判定に用いる乱数値(大当たり判定及び小当たり判定に用いる大当たり決定乱数値、または普図抽選に用いる当たり決定乱数値)と等しいか否かを判定する。本例では、メインCPU300aは、下限値から乱数値を減算したと仮定した場合の結果に基づいて、比較数値範囲の下限値と当たり判定値とが等しいか否かを判定する。メインCPU300aは、下限値から乱数値を減算したと仮定した場合の結果が0であって、比較数値範囲の下限値と当たり判定値とが等しいと判定すると、ステップS800−19に処理を移す。一方、メインCPU300aは、下限値から乱数値を減算したと仮定した場合の結果が0でなく、比較数値範囲の下限値と当たり判定値とが等しくないと判定すると、ステップS800−11に処理を移す。
なお、本例において、メインCPU300aは、当たり判定値が比較数値範囲に含まれるか否かを、比較数値範囲の上限値及び下限値から乱数値を減算したと仮定した場合の結果により判定する。より詳細には、メインCPU300aは、当該減算結果をゼロフラグおよびキャリーフラグの状態に基づいて判定する。ゼロフラグおよびキャリーフラグは、主制御基板300の内部レジスタの一種であるフラグレジスタに格納されている。メインCPU300aは、ゼロフラグがセットされている場合に直前の減算結果が0であると判定し、ゼロフラグがリセットされている場合に減算結果が0でないと判定する。また、メインCPU300aは、例えばキャリーフラグがセットされている場合に、減算結果が負の数であると判定し、キャリーフラグがリセットされている場合に、減算結果が0または正の数であると判定する。
メインCPU300aは、ステップS800−9の処理において、下限値から乱数値を減算したと仮定した場合、減算結果が0であればゼロフラグをセットし、比較数値範囲の下限値と当たり判定値とが等しいことを示す。一方、メインCPU300aは、減算結果が0でない場合に、ゼロフラグをリセットして、比較数値範囲の下限値と当たり判定値とが等しくないことを示す。
(ステップS800−11)
ステップS800−11においてメインCPU300aは、当たり判定値が比較数値範囲の下限値未満であるか否かを判定する。メインCPU300aは、キャリーフラグがリセットされている場合に、下限値から乱数値を減算したと仮定した場合の結果が1以上である、すなわち当たり判定値が比較数値範囲の下限値未満であると判定して、ステップS800−13以降の処理を実行せずに当該ワードデータ判定処理を終了する。一方、メインCPU300aは、キャリーフラグがセットされている場合に、下限値から乱数値を減算したと仮定した場合の結果が0未満である、すなわち当たり判定値が比較数値範囲の下限値を超過していると判定して、ステップS800−13に処理を移す。
(ステップS800−13)
ステップS800−13においてメインCPU300aは、ステップS800−5における論理積演算結果(図47(b)に示す導出式(f1)の要素(1)の演算結果)に1を加算してステップS800−15に処理を移す。本ステップの処理は、導出式(f1)の要素(2)の演算に相当する。
(ステップS800−15)
ステップS800−15においてメインCPU300aは、HLレジスタに上限値データをセットしてステップS800−17に処理を移す。具体的には、メインCPU300aは、まずステップS800−13における導出式(f1)の要素(2)の演算結果に2を乗算して、オフセット値を算出する(導出式(f1)の要素(3)の演算)。さらに、メインCPU300aは、算出したオフセット値をHLレジスタにセットされている下限値データのアドレス値に加算して上限値データのアドレスを導出し、導出した上限値データのアドレスから上限値を取得してHLレジスタにセットする。
なお、制御プログラム上では、本ステップに相当する処理として、導出式(f1)の要素(2)の演算結果(論理積演算結果+1)を下限値データのアドレスに2回加算して上限値データのアドレス値を得る(上限値データのアドレス=下限値データのアドレス+要素(2)の演算結果+要素(2)の演算結果)。これにより、図47(b)に示す導出式(f1)と同様の演算結果(上限値データのアドレス値)が得られる。
(ステップS800−17)
ステップS800−17においてメインCPU300aは、当たり判定値と比較数値範囲の上限値との比較処理を実行してステップS800−19に処理を移す。具体的には、メインCPU300aは、上限値から乱数値を減算したと仮定した場合の結果に基づき、キャリーフラグを設定する。メインCPU300aは、上限値から乱数値を減算したと仮定した場合の結果が0未満である場合、すなわち当たり判定値が上限値を超過している場合にキャリーフラグをセットする。また、メインCPU300aは、上限値から乱数値を減算したと仮定した場合の結果が0以上である場合、すなわち当たり判定値が上限値以下である場合、キャリーフラグをリセットする。
(ステップS800−19)
ステップS800−19においてメインCPU300aは、ステップS800−9における下限値から乱数値を減算したと仮定した場合の結果または、ステップS800−17における上限値から乱数値を減算したと仮定した場合の結果が反映されたキャリーフラグの値を反転して、当該ワードデータ判定処理を終了し、呼び出し元の処理に戻る。本実施形態による遊技機100では、ワードデータ判定処理の呼び出し元の処理においてメインCPU300aは、キャリーフラグがセットされている場合に、当たり判定結果を当たりとして記憶し、キャリーフラグがリセットされている場合に当たり判定結果を当たりでない(ハズレ)として記憶する。一方で、ステップS800−9のYESからの流れで本ステップに到達した場合は、当たり判定値が下限値と等しい場合に限られ、かつキャリーフラグがリセットされている。また、ステップS800−17の処理直後には、当たり判定値が上限値を超過している場合にキャリーフラグがセットされ、当たり判定値が上限値以下である場合にキャリーフラグがリセットされる。つまり、本ステップの到達時には、当たり判定値が比較数値範囲に含まれる場合にキャリーフラグがリセットされている。そこで、メインCPU300aは、ワードデータ判定処理の終了時に、キャリーフラグの反転処理を実行して呼び出し元の処理に戻る。これにより、当たり判定値が比較数値範囲に含まれない場合にキャリーフラグがリセットされ、当たり判定値が比較数値範囲に含まれる場合にキャリーフラグがセットされる。
また、当たり判定値が下限値未満である場合、S800−11においてキャリーフラグがリセットされた状態(当たり判定結果が当たりでないこと(ハズレ)を示す状態)で当該ワードデータ判定処理を終了し、ステップS800−19の処理は実行されない。
(ステップS800−21)
ステップS800−21においてメインCPU300aは、エラー処理を実行してワードデータ判定処理を終了し、呼び出し元の処理に戻る。具体的には、ワードデータ判定処理におけるエラー処理においてメインCPU300aは、まずメインRAM300cの所定の記憶領域に格納されている遊技機状態フラグに設定値異常状態設定値をセットする。次に、副制御基板330に設定値異常エラーが発生したことを伝達するための設定値異常エラー発生指定コマンドを送信バッファにセットする。さらに、メインCPU300aは、キャリーフラグをリセットしてワードデータ判定処理を終了し、呼び出し元の処理に戻る。
(ワードデータ判定処理を用いた大当たり判定処理)
ここで、図46および図48を参照して、本実施形態による遊技機100において、大当たり判定にワードデータ判定処理を利用する例を説明する。本例において、設定中の設定値は「5」であり、遊技状態は低確率遊技状態であると仮定する。メインCPU300aは、特別図柄大当たり判定処理(ステップS610−8)において、例えば特1保留として大当たり決定乱数(例えば、10300)および低確率遊技状態であることを示す特別図柄確率状態フラグが第0記憶部に転送されたことに基づいてワードデータ判定処理を呼び出す。
メインCPU300aは、特別図柄大当たり判定処理(第一抽選の一例)において、ワードデータ判定処理の呼び出し前に、特別図柄確率状態フラグに基づいて遊技状態が低確率遊技状態であると判定すると、図46に示す低確時大当たり判定テーブルのラベル「D_JDG_BHT_L」を指定してHLレジスタに低確時大当たり判定テーブルの先頭アドレス「120AH」をセットする。その後、メインCPU300aは、ワードデータ判定処理を呼び出し、設定値別判定テーブルである低確時大当たり判定テーブルを用いた大当たり判定処理を開始する。
本例においてメインCPU300aは、図48に示すワードデータ判定処理を開始すると、メインRAM300cから設定値5に対応する設定値データ(4)をロードする(ステップS800−1)。さらに、メインCPU300aは、ロードした設定値データが4であって設定値データが0〜5の範囲内であると判定し(ステップS800−3のYES)、ロードした設定値データとHLレジスタにセットしたアドレス「120AH」から取得した上限識別値「FFH」との論理積演算を実行する(ステップS800−5)。設定値データ(4)の2進数データと全ビット1で構成される上限識別値「FFH」の2進数データとの論理積演算結果は「0000 0100」であって、設定値データと同値(4)である。次に、メインCPU300aは、HLレジスタに格納されている上限識別値データのアドレス「120AH」に1加算した値「120BH」を下限値データのアドレスとしてHLレジスタにセットする(ステップS800−7)。
次に、メインCPU300aは、HLレジスタに格納された下限値データのアドレス「120BH」から取得した下限値「10001」と大当たり決定乱数値(本例では10300)とが等しいか否かを判定する(ステップS800−9)。メインCPU300aは、下限値(10001)から大当たり決定乱数値(10300)を減算したと仮定する。本例において、減算結果が「−299(=10001−10300)」であることから、ゼロフラグがリセットされ、かつキャリーフラグがセットされる。このため、メインCPU300aは、ゼロフラグがリセットされていることに基づいて大当たり決定乱数値と下限値とが等しくないと判定する(ステップS800−9のNO)。次に、メインCPU300aは、キャリーフラグがセットされていることに基づいて下限値から大当たり決定乱数値を減算したと仮定した場合の結果(−299)が0未満であって、大当たり決定乱数値が比較数値範囲の下限値を超過していると判定し(ステップS800−11のNO)、ステップS800−5の論理積演算結果(設定値データと同値の(4))に1を加算して論理上の設定値5を得る(ステップS800−13)。
次に、ワードデータ判定処理においてメインCPU300aは、設定中の設定値5に対応する上限値データのアドレス値(1215H)を導出し、上限値「10364」を取得する(ステップS800−15)。上限値データのアドレス値(1215H)は、下限値データのアドレス値(120BH)に図47に示す導出式(f1)によって得られたオフセット値「10(=設定値5(設定値データ+1)×2)」を加算することで得られる。
上限値を取得してHLレジスタにロードすると、メインCPU300aは、大当たり決定乱数値(当たり判定値)と比較数値範囲(本例では低確率遊技状態に応じた大当たり範囲)の上限値との比較処理を実行する(ステップS800−17)。比較処理においてメインCPU300aは、上限値(10364)から大当たり決定乱数値(10300)を減算したと仮定する。本例において、減算結果は0以上の数(64=10364−10300)となるため、比較処理後においてキャリーフラグはリセットされる。さらに、メインCPU300aは、キャリーフラグを反転(リセット→セットに反転)し(ステップS800−19)、ワードデータ判定処理を終了し呼び出し元の処理である特別図柄大当たり判定処理(ステップS610−8)に戻る。本例では、キャリーフラグがセットされているため、特別図柄大当たり判定処理の処理においてメインCPU300aは、大役抽選結果における大当たり判定の結果を大当たりとして記憶する。
なお、例えば大当たり決定乱数値が下限値と同一の値(10001)である場合には、ゼロフラグがセットされ且つキャリーフラグがリセットされる(ステップS800−9のYES)が、ステップS800−19の処理においてキャリーフラグが反転(リセット→セット)されてワードデータ判定処理が終了し、呼び出し元の処理において大当たり判定の結果が大当たりであると判定される。
また、例えば大当たり決定乱数値が下限値未満(例えば990)であるときは、ゼロフラグおよびキャリーフラグがいずれもリセットされた状態でワードデータ判定処理が終了する(ステップS800−11のYES)。このため、ワードデータ判定処理の呼び出し元の処理において大当たり判定の結果が大当たりでないと判定される。
このように、特別図柄大当たり判定処理において呼び出されるワードデータ判定処理において、メインCPU300aは、図47(b)に示す導出式(f1)に相当する演算を実行し(ステップS800−5、ステップS800−13およびステップS800−15)、設定中の設定値に応じた上限値を取得する。これにより、メインCPU300aは、設定値に応じた比較数値範囲と大当たり決定乱数値とを比較して、大当たり判定を行うことができる。
また、ワードデータ判定処理において、当たり判定値(本例では大当たり決定乱数値)が比較数値範囲(本例では設定値5に応じた大当たり範囲)に含まれる場合にキャリーフラグがセットされ、当たり判定値が比較数値範囲に含まれない場合にキャリーフラグがリセットされる。これにより、呼び出し元の処理において適切な当たり判定結果(本例では、大当たり判定結果)を取得することができる。
なお、本例では、遊技状態が低確率遊技状態である場合における大当たり判定の流れを説明したが、遊技状態が高確率遊技状態の場合には、当たり判定テーブルとして高確時大当たり判定テーブルを用いる以外は、低確率遊技状態の場合と同様の流れで大当たり判定が行われる。また、説明は省略するが、ステップS536−3の特別図柄当たり仮判定処理においても、ワードデータ判定処理が呼び出され、大当たり判定と同様の手順で大当たりか否かの仮判定理が実行される。
(ワードデータ判定処理を用いた小当たり判定処理)
次に、図46および図48を参照して、本実施形態による遊技機100において、小当たり判定にワードデータ判定処理を利用する例を説明する。本例において、設定中設定値は「3」であると仮定する。メインCPU300aは、特別図柄小当たり判定処理(ステップS610−10)において、例えば特2保留として大当たり決定乱数(例えば、12301)が第0記憶部に転送されたことに基づいてワードデータ判定処理を呼び出す。
メインCPU300aは、特別図柄小当たり判定処理(第二抽選の一例)において、ワードデータ判定処理の呼び出し前に、保留種別が特2保留であると判定すると、図46に示す特2用小当たり判定テーブルのラベル「D_JDG_SHT_TZ2」を指定してHLレジスタに特2用小当たり判定テーブルの先頭アドレス「122DH」をセットする。これにより、ワードデータ判定処理において、メインROM300bから特2用小当たり判定テーブルが保持する数値範囲(小当たり範囲)を取得することができる。
HLレジスタに特2用小当たり判定テーブルのアドレスをセットすると、メインCPU300aは、ワードデータ判定処理を呼び出し、全設定値共通判定テーブルである特2用小当たり判定テーブルを用いた小当たり判定処理を開始する。
本例においてメインCPU300aは、図48に示すワードデータ判定処理を開始すると、メインRAM300cから設定値3に対応する設定値データ(2)をロードし(ステップS800−1)、ロードした設定値データが2であって設定値データが0〜5の範囲内であると判定する(ステップS800−3のYES)。このように、本実施形態による遊技機100において、メインPCU300aは、全設定値共通の比較数値範囲を用いる当たり判定、すなわち設定中の設定値に影響を受けない当たり判定の実行時においても、設定中の設定値を参照する。これにより、遊技機100は、設定値別の比較数値範囲を用いる当たり判定と、全設定値共通の比較数値範囲を用いる当たり判定とを共通のモジュールによって実行することができる。
次に、メインCPU300aは、ロードした設定値データとHLレジスタにセットしたアドレス「122DH」から取得した上限識別値「00H」との論理積演算を実行する(ステップS800−5)。設定値データ(2)の2進数データ「0000 0010」と全ビット0で構成される上限識別値「FFH」の2進数データ「0000 0000」との論理積演算結果は「0000 0000」であって、上限識別値「00H」と同値(0)である。次に、メインCPU300aは、HLレジスタに格納されている上限識別値データのアドレス「122DH」に1加算した値「122EH」を下限値データのアドレスとしてHLレジスタにセットする(ステップS800−7)。
次に、ワードデータ判定処理においてメインCPU300aは、HLレジスタに格納された下限値データのアドレス「122EH」から取得した下限値「12001」から大当たり決定乱数値(本例では12301)を減算したと仮定した場合の結果が「−300=(12001−12301)」であって、大当たり決定乱数値と下限値とが等しくないと判定する(ステップS800−9のNO)。このとき、減算結果が0未満であるため、ゼロフラグがリセットされ、キャリーフラグがセットされている。次に、メインCPU300aは、キャリーフラグがセットされていることに基づいて下限値から大当たり決定乱数値を減算したと仮定した結果(−300)が0未満であると判定し(ステップS800−11のNO)、ステップS800−5の論理積演算結果(上限識別値「00H」と同値の(0))に1を加算する(ステップS800−13)。
次に、ワードデータ判定処理においてメインCPU300aは、下限値データのアドレス値(122EH)にオフセット値「2(=(上限識別値00H(0)+1)×2)」を加算して上限値データのアドレス値(1230H)を導出し、上限値「12799」を取得する(ステップS800−15)。上限値を取得するとメインCPU300aは、大当たり決定乱数値(当たり判定値)と比較数値範囲(本例では特2保留に応じた小当たり範囲)の上限値との比較処理を実行する(ステップS800−17)。比較処理においてメインCPU300aは、上限値「12799」から大当たり決定乱数値「12301」を減算したと仮定する。本例において、減算結果は正の数(498=12799−12301)となるため、比較処理後においてキャリーフラグはリセットされる。さらに、メインCPU300aは、キャリーフラグを反転(リセット→セットに反転)し、ワードデータ判定処理を終了し呼び出し元の処理である特別図柄小当たり判定処理(ステップS610−10)に戻る。本例では、キャリーフラグがセットされているため、特別図柄小当たり判定処理以降の処理では、大役抽選結果における小当たり判定の結果が当たり(小当たり)であると判定される。
このように、メインCPUは、ワードデータ判定処理において全設定値共通判定テーブルによる当たり判定を行う場合には、導出式(f1)に相当する演算により、設定中の設定値に関わらずメインROM300bから全設定値共通の比較数値範囲を取得する。すなわち、メインCPU300aは、特別図柄小当たり判定処理の実行時において、設定中の設定値に関わらずメインROM300bから小当たり範囲(第二数値範囲の一例)を取得する。このように、遊技機100は、設定値別の比較数値範囲(大当たり範囲)および全設定値共通の比較数値範囲(小当たり範囲、普図当たり範囲)を、いずれも同一の導出式(f1)に相当する演算によって取得することができる。このため、遊技機100は、共通モジュールであるワードデータ判定処理を利用して、大当たり判定結果および小当たり判定結果を導出する大役抽選を実行することができる。これにより、遊技機100は、制御プログラムのコードの増加量を低減することができる。
(ワードデータ判定処理を用いた普図抽選当たり判定処理)
次に、図46および図48を参照して、本実施形態による遊技機100において、普図抽選当たり判定にワードデータ判定処理を利用する例を説明する。本例において、設定中の設定値は「1」であり、遊技状態が時短遊技状態であると仮定する。メインCPU300aは、普通図柄当たり判定処理(ステップS710−5)において、例えば当たり決定乱数(例えば、15)が第0記憶部に転送されたことに基づいてワードデータ判定処理を呼び出す。
メインCPU300aは、普通図柄当たり判定処理において、ワードデータ判定処理の呼び出し前に、普通図柄時短状態フラグに基づいて遊技状態が時短遊技状態であると判定すると、図46に示す時短用当たり判定テーブルのラベル「D_JDG_FHT_H」を指定してHLレジスタに時短用当たり判定テーブルの先頭アドレス「1205H」をセットする。その後、メインCPU300aは、ワードデータ判定処理を呼び出し、全設定値共通判定テーブルである時短用当たり判定テーブルを用いた普図抽選当たりの判定を開始する。
本例においてメインCPU300aは、図48に示すワードデータ判定処理を開始すると、メインRAM300cから設定値1に対応する設定値データ(0)をロードし(ステップS800−1)。ロードした設定値データが0であって設定値データが0〜5の範囲内であると判定し(ステップS800−3のYES)、ロードした設定値データとHLレジスタにセットしたアドレス「1205H」から取得した上限識別値「00H」との論理積演算を実行し、論理積演算結果として上限識別値「00H」と同値(0)を得る(ステップS800−5)。次に、メインCPU300aは、HLレジスタに格納されている上限識別値データのアドレス「1205H」に1加算した値「1206H」を下限値データのアドレスとしてHLレジスタにセットする(ステップS800−7)。
次に、メインCPU300aは、HLレジスタに格納された下限値データのアドレス「1206H」から取得した下限値「0」から当たり決定乱数値(本例では15)を減算したと仮定した場合の結果が「−15(=0−15)」であって、大当たり決定乱数値と下限値とが等しくないと判定する(ステップS800−9のNO)。このとき、減算結果が0未満であるため、ゼロフラグがリセットされ、キャリーフラグがセットされている。次に、メインCPU300aは、キャリーフラグがセットされていることに基づいて下限値から当たり決定乱数値を減算したと仮定した結果(−15)が0未満であると判定し(ステップS800−11のNO)、ステップS800−5の論理積演算結果(上限識別値「00H」と同値の(0))に1を加算する(ステップS800−13)。
次に、メインCPU300aは、下限値データのアドレス値(1206H)に小当たり判定時と同様にオフセット値「2(=(上限識別値「00H」(0)+1)×2)」を加算して上限値データのアドレス値(1208H)を導出し、上限値「98」を取得する(ステップS800−15)。上限値を取得するとメインCPU300aは、当たり決定乱数値と比較数値範囲(本例では時短遊技状態に応じた普図当たり範囲)の上限値との比較処理を実行する(ステップS800−17)。比較処理においてメインCPU300aは、上限値「98」から当たり決定乱数値「15」を減算したと仮定する。本例において、減算結果は正の数(83=98−15)となるため、比較処理後においてキャリーフラグはリセットされる。さらに、メインCPU300aは、キャリーフラグを反転(リセット→セットに反転)し、ワードデータ判定処理を終了し呼び出し元の処理である普通図柄当たり判定処理(ステップS710−5)に戻る。本例では、キャリーフラグがセットされているため、普通図柄当たり判定処理以降の処理では、普図抽選における当たり判定の結果が当たり(普図当たり)として記憶される。
このように、本実施形態による遊技機100では、共通モジュールであるワードデータ判定処理を利用して、大役抽選における当たり判定結果(大当たり判定結果および小当たり判定結果)と普図抽選における当たり判定結果とを導出することができる。また、メインCPU300aは、特別図柄小当たり判定処理の実行時と同様に、普通図柄当たり判定処理においても、設定中の設定値に関わらずメインROM300bから普図当たり範囲(を取得する。これにより、遊技機100は、当たり判定のための制御処理手順をより簡略化し、制御プログラムのコードの増加量をより低減することができる。
次に、図48を参照しつつ図49を用いて、ワードデータ判定処理のプログラムの一例を説明する。
図49に示す命令文(1)は、設定中の設定値(設定値データ)をロードする処理であって図48のステップS800−1の処理に相当し、図49に示す命令文(2)は設定値データ0〜5の範囲外か否かの判定結果による分岐処理であって図48のステップS800−3の分岐処理に相当する。また、図49に示す命令文(3)〜(6)は、図48のステップS800−21のエラー処理に相当し、図49に示す命令文(7)は、設定値データと上限識別値とを論理積する処理であって図48のステップS800−5の処理に相当する。
また、図49に示す命令文(8)は、HLレジスタに比較数値範囲の下限値データのアドレスをセットする処理(図48のステップS800−7の処理)に相当し、図49に示す命令文(9)は、当たり判定値と下限値とが一致している場合にキャリーフラグの反転処理(ステップS800−19)にジャンプする分岐処理(図48に示すステップS800−9の処理)に相当する。また、図49に示す命令文(10)は、当たり判定値が下限値未満であるときに呼び出し元の処理に戻る処理であって図48に示すステップS800−11のYESの処理に相当し、図49に示す命令文(11)は、設定値データと上限識別値との論理積結果(導出式(f1)の要素(1)の演算結果)に1を加算する処理(導出式(f1)の要素(2)に相当する演算)であって図48に示すステップS800−13の処理に相当する。また、図49に示す命令文(12)は、上限値アドレスを取得してHLレジスタに上限値をセットする処理を行うサブモジュールを呼び出す処理であって、ステップS800−15の処理に相当する。本例では、上限値取得の処理をサブモジュールとしている。これにより、HLレジスタにセットされた値にオフセット値を加算して加算後の値に相当するアドレスから値を取得する処理を共通化し、ワードデータ判定処理以外の制御プログラムにおいても利用することができる。
また、図49に示す命令文(13)は、当たり判定値と上限値とを比較する処理であって図48に示すステップS800−17の処理に相当し、図49に示す命令文(14)は、キャリーフラグを反転させる処理であって図48に示すステップS800−19の処理に相当する。
以上説明したように、本実施形態による遊技機100において、メインCPU300aは、遊技の制御に用いられる複数の設定値ごとに比較数値範囲(抽選条件の一例)が異なる特別図柄大当たり判定処理(ステップS610−8)と複数の設定値ごとに比較数値範囲が異ならない特別図柄小当たり判定処理(ステップS610−10)とを実行可能であって、特別図柄大当たり判定処理を実行する場合に設定値別の比較数値範囲(例えば大当たり範囲)を設定し、特別図柄小当たり判定処理を実行する場合に全設定値共通の比較数値範囲(例えば小当たり範囲)を設定する。
具体的には、本実施形態による遊技機100においてメインCPU300aは、特別図柄大当たり判定処理では複数の設定値のうち設定中の一の設定値に基づいて大当たりに当選しているか否かを判定し、特別図柄小当たり判定処理では設定中の設定値に左右されずに小当たりに当選しているか否かを判定する。また、メインCPU300aは、特別図柄大当たり判定処理および特別図柄小当たり判定処理のいずれを実行する場合も、前記設定中の設定値を参照する(ステップS800−1、ステップS8000−3)。また、遊技機100において、メインCPU300aは、特別図柄小当たり判定処理と同様に設定値に左右されずに普図抽選当たりに当選しているか否かを判定するステップS710−5の普通図柄当たり判定処理においても、特別図柄小当たり判定処理と同様に設定中の設定値を参照する。
これにより、遊技機100において、設定値ごとに当選確率が異なる大当たり判定と、全設定値において当選確率が共通である小当たり判定および普図抽選当たり判定とを共通モジュール(ワードデータ判定処理)を用いて実行することができる。したがって、遊技機100は、遊技動作処理手順を簡略し、制御プログラムの増加量の低減を図ることができる。
また、本実施形態による遊技機100においてメインCPU300aは、共通モジュールであるワードデータ判定処理によって、複数の設定値のそれぞれに対応する複数段階の数値範囲である大当たり範囲(第一数値範囲の一例)のうち設定中の設定値に対応する大当たり範囲に大当たり決定乱数値が含まれるか否かを判定する。また、メインCPU300aは、ワードデータ判定処理によって、前記複数の設定値のいずれにも対応づけられていない小当たり範囲(第二数値範囲の一例)に大当たり決定乱数が含まれるか否かを判定する。さらに、メインCPU300aは、ワードデータ判定処理によって、小当たり範囲と同様に設定値のいずれにも対応づけられていない普図当たり範囲に当たり決定乱数が含まれるか否かを判定する。
また、実施形態による遊技機100においてメインROM300bに格納されている設定値別判定テーブル(低確時、高確時大当たり判定テーブル)および全設定値共通判定テーブル(特1、特2用小当たり判定テーブルおよび非時短、時短用当たり判定テーブル)は、いずれもデータの格納順序(例えば、上限識別値、下限値、上限値の順)が統一されている。このため、メインCPU300aは、設定値別判定テーブルを用いた当たり判定(大当たり判定)および全設定値共通判定テーブルを用いた当たり判定(小当たり判定および普図抽選当たり判定)のいずれにおいても、同一の演算(図47(b)に示す導出式(f1)を用いた演算)によって上限値データのアドレスを導出し、比較数値範囲を取得することができる。これにより、遊技機100は、当たり判定のための制御処理手順を簡略化し、制御プログラムのコードの増加量をさらに低減することができる。
(変形例)
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
なお、上記の遊技性、すなわち、遊技の進行条件や各種制御方法は一例にすぎず、例えば、大役遊技の実行可否を決定する大役抽選を開始するための始動条件や、大役遊技の種別、数、内容等、遊技者に付与する遊技利益の内容は、本発明の目的を実現可能な範囲で適宜設計可能である。例えば、上記実施形態において、小当たりにおいて賞球の獲得は困難な構成となっているが、本発明はこれに限られない。遊技機100は、大当たりと小当たりとで遊技利益が異なっていればよく、小当たりにおいて賞球が獲得可能な構成となっていてもよい。
上記実施形態でも説明したように、設定値別判定テーブルにおいて、上限値データを固定値とし、下限値データを設定値ごとに異なる値としてもよい。この場合には、設定値別判定テーブルと全設定値共通判定テーブルとを識別する値として下限識別値が各当たり判定テーブルに格納される。また、この場合、図47(b)に示す導出式を、上限値データのアドレスを基準としてオフセット値を加算して下限値データのアドレス値を導出する式(例えば、下限値データのアドレス値=上限値データのアドレス値+(設定値Λ下限識別値+1)×2)とすればよい。
また、全設定値共通判定テーブルおよび設定値別判定テーブルのデータの格納順は、図46に示した順序に限られない。遊技機100におけるデータの格納順は、全設定値共通判定テーブルおよび設定値別判定テーブルで共通であればよく、例えば、下限値データ、上限値データ、上限識別値のデータの順に格納されていてもよいし、上限識別値のデータ、上限値データ、下限値データの順に格納されていてもよい。ただし、図47(b)に示す導出式(f1)の構成要素は、データの格納順に応じて変更することとなる。
また、上記実施形態において、全設定値共通判定テーブルである小当たり判定テーブルを複数(特1用小当たり判定テーブルと特2用小当たり判定テーブル)設けているが、本発明はこれに限られない。遊技機100は、特1保留に基づく小当たり判定においても特2保留に基づく小当たり判定においても一の(共通の)小当たり判定テーブルを用いるように構成されてもよい。また、同様に、遊技機100は、非時短遊技状態に基づく普図抽選当たり判定および時短遊技状態に基づく普図抽選当たり判定のいずれにおいても一の(共通の)当たり判定テーブルを用いるように構成されてもよい。この場合、当たり判定に係るデータ量をより低減することができる。
また、大当たり判定に用いる低確時大当たり判定テーブルおよび高確時大当たり判定テーブルのいずれかにおいて、大当たり判定を全設定値共通としてもよい。この場合、大当たり範囲が全設定共通である大当たり判定テーブルにおいて、上限識別値(または下限識別値)として「00H」を格納する。これにより、上記実施形態におけるワードデータ判定処理を利用して全設定値共通の大当たり範囲による大当たり判定を実行することができる。すなわち、本発明においては、上限識別値(または下限識別値)の値を「FFH」に設定するか、「00H」に設定するかによって、各種当たり判定テーブルを設定値別判定テーブルまたは全設定値共通判定テーブルに容易に切り替えることができる。
また、上記実施形態において大役抽選における特別図柄大当たり判定処理(大当たり判定)と特別図柄小当たり判定処理(小当たり判定)とに共通のモジュール(ワードデータ選択処理)を用いているが、本発明はこれに限られない。例えば、遊技機100は、大当たり判定と小当たり判定とで別々の当たり判定用モジュール(大当たり判定用のモジュール、小当り判定用のモジュール)を用いるように構成されていてもよい。この場合に、小当り判定用のモジュールでは設定値の参照処理が行われず、大当たり判定用のモジュールでは設定値の参照処理が行われてもよい。
また、大当たり判定と小当たり判定とで別々の当たり判定用モジュールを用いる場合も、遊技機100は、大当たり判定(特別図柄大当たり判定処理)を、小当たり判定(特別図柄小当たり判定処理)よりも先に実行してもよい(ステップS610−8→ステップS610−9のNO→ステップS610−10の流れ)。設定値の参照処理を含め、モジュール全体での処理数が小当たり判定用のモジュールよりも多い大当たり判定用のモジュールを、小当たり判定用のモジュールより先に実行することで、大当たり判定の実行後の処理動作をスムーズにすることができる。
また、遊技機100は、大当たり判定と小当たり判定とで別々の当たり判定用モジュールを用いる場合に、普図抽選における当たり判定処理(普図当たり判定)に用いるモジュールを小当たり判定用のモジュールと共通としてもよいし、別途、普図当たり判定用のモジュールを用いるように構成されてもよい。
なお、上記実施形態において、第1始動口120または第2始動口122に遊技球が入球したことに基づいて大当たり決定乱数を取得する(ステップS535−5)メインCPU300aが乱数取得手段に相当する。大役抽選および普図抽選を実行するメインCPU300aが抽選手段に相当する。