<第1実施形態>
以下、本発明の好適な実施の形態を図面に基づいて説明する。図1は、本発明の一実施形態の遊技機の説明図である。
本実施形態の遊技機10は前面枠12を備え、該前面枠12は外枠(支持枠)11にヒンジ13を介して開閉回動可能に組み付けられている。遊技盤30(図2参照)は前面枠12の表側に形成された収納部(図示省略)に収納されている。また、前面枠(本体枠)12には、遊技盤30の前面を覆うカバーガラス(透明部材)14を備えたガラス枠15(透明板保持枠)が取り付けられている。
また、ガラス枠15の上部には、内部にランプ及びモータを内蔵した照明装置(ムービングライト)16や払出異常報知用のランプ(LED)17が設けられている。また、ガラス枠15の左右には内部にランプ等を内蔵し装飾や演出のための発光をする枠装飾装置18や、音響(例えば、効果音)を発するスピーカ(上スピーカ)19aが設けられている。さらに、前面枠12の下部にもスピーカ(下スピーカ)19bが設けられている。
また、前面枠12の下部には、図示しない打球発射装置に遊技球を供給する上皿21(貯留皿)、遊技機10の裏面側に設けられている払出ユニットから払い出された遊技球が流出する上皿球出口22、上皿21が一杯になった状態で払い出された遊技球を貯留する下皿(受皿)23及び打球発射装置の操作部24等が設けられている。さらに、上皿21の上縁部には、遊技者からの操作入力を受け付ける演出操作部550が設けられている。この演出操作部550は、遊技者からの押圧操作入力を受け付けるための演出ボタンスイッチ25aを内蔵した演出ボタン25であり、さらに、演出ボタン25の上面(押圧面)には、遊技者からの接触操作入力を受け付けるためのタッチパネル29が設けられている。また、前面枠12下部右側には、前面枠12やガラス枠15を開放したり施錠したりするための鍵26が設けられている。
なお、本実施形態ではタッチパネル29を演出ボタン25と一体的に設けたが、タッチパネル29は、演出ボタン25と別体であってもよく、例えば、演出ボタン25の近傍にサブ表示装置を設け、そのサブ表示装置の表示面にタッチパネル29を設けてもよい。
また、上皿21上方のガラス枠15の前面には、遊技者が隣接する球貸機から球貸しを受ける場合に操作する球貸ボタン27、球貸機のカードユニットからプリペイドカードを排出させるために操作する排出ボタン28、プリペイドカードの残高を表示する残高表示部(図示省略)等が設けられている。この実施形態の遊技機10においては、遊技者が上記操作部24を回動操作することによって、打球発射装置が上皿21から供給される遊技球を遊技盤30前面の遊技領域32に向かって発射する。また、遊技者が演出操作部550を操作することによって、表示装置41(図2参照)における変動表示ゲーム(飾り特図変動表示ゲーム)において、遊技者の操作を介入させた演出等を行うことができる。
次に、図2を用いて遊技盤30の一例について説明する。図2は、本実施形態の遊技盤30の正面図である。
遊技盤30の表面には、ガイドレール31で囲われた略円形状の遊技領域32が形成されている。遊技領域32は、遊技盤30の四隅に各々設けられた樹脂製のサイドケース33及びガイドレール31に囲繞されて構成される。遊技領域32には、ほぼ中央に表示装置41を備えたセンターケース(遊技演出構成体)40が配置されている。表示装置41は、センターケース40に設けられた凹部に、センターケース40の前面より奥まった位置に取り付けられている。すなわち、センターケース40は表示装置41の表示領域の周囲を囲い、表示装置41の表示面よりも前方へ突出し周囲の遊技領域32から遊技球が飛び込みにくくするように形成されている。
表示装置41(変動表示装置)は、例えば、LCD(液晶表示器)、CRT(ブラウン管)等の表示画面を有する装置で構成されている。表示画面の画像を表示可能な領域(表示領域)には、複数の識別情報(特別図柄)や特図変動表示ゲームを演出するキャラクタや演出効果を高める背景画像等の遊技に関する情報が表示される。表示装置41の表示画面においては、識別情報として割り当てられた複数の特別図柄が変動表示(可変表示)されて、特図変動表示ゲームに対応した飾り特図変動表示ゲームが行われる。また、表示画面には遊技の進行に基づく演出のための画像(例えば、大当り表示画像、ファンファーレ表示画像、エンディング表示画像等)が表示される。
また、センターケース40の右上部には、動作することによって遊技の演出を行う盤演出装置44が備えられている。盤演出装置44は、先端部にサブ表示装置42が取り付けられたアームを2本備えており、アームが基端部を中心に回動することによって、サブ表示装置42を、表示装置41に対して前後方向に重なる状態と重ならない状態とに変換させることが可能となっている。
遊技領域32におけるセンターケース40の下方右側には、普図変動表示ゲームの開始条件を与える普通図柄始動ゲート(普図始動ゲート)34が設けられている。普図始動ゲート34に入賞した遊技球は、ゲートスイッチ34a(図6参照)により検出される。
また、遊技領域32におけるセンターケース40の下方左側には、三つの一般入賞口35が配置され、センターケース40の下方右側であって普図始動ゲート34よりも下側には、一つの一般入賞口35が配置されている。これら一般入賞口35に入賞した遊技球は、入賞口スイッチ35a(図6参照)により検出される。
また、普図始動ゲート34の左方には、第2特図変動表示ゲーム(特図2変動表示ゲーム)の開始条件を与える普通変動入賞装置37(始動入賞口、始動入賞領域)が設けられている。
普通変動入賞装置37は、上端側が右側に倒れる方向に回動することで開放して遊技球が流入し易い状態に変換可能な可動部材37bと、遊技球の流入を規制する隔壁37dとを備えている。可動部材37bは、常時は起立することで隔壁37dとの間隔を遊技球の直径以下にした状態、すなわち遊技球が流入できない閉じた閉状態(遊技者にとって不利な状態)を保持している。そして、普図変動表示ゲームの結果が所定の停止表示態様となった場合には、駆動装置としての普電ソレノイド37c(図6参照)によって、普通変動入賞装置37に遊技球が流入し易い開状態(遊技者にとって有利な状態)に変化させられるようになっている。普通変動入賞装置37に入賞した遊技球は、始動口2スイッチ37a(図6参照)により検出される。
さらに、普通変動入賞装置37の下方には、特図変動表示ゲームの結果によって遊技球を受け入れない状態と受け入れ易い状態とに変換可能な特別変動入賞装置(大入賞口)38が配設されている。
特別変動入賞装置38は、上端側が手前側に倒れる方向に回動して開放可能になっているアタッカ形式の開閉扉38cを有しており、補助遊技としての特図変動表示ゲームの結果如何によって大入賞口を閉じた状態(遊技者にとって不利な閉塞状態)から開放状態(遊技者にとって有利な状態)に変換する。すなわち、特別変動入賞装置38は、例えば、駆動装置としての大入賞口ソレノイド38b(図6参照)により駆動される開閉扉38cによって開閉される大入賞口を備え、特別遊技状態中は、大入賞口を閉じた状態から開いた状態に変換することにより大入賞口内への遊技球の流入を容易にさせ、遊技者に所定の遊技価値(賞球)を付与するようになっている。なお、大入賞口の内部(入賞領域)には、当該大入賞口に入った遊技球を検出する検出手段としての大入賞口スイッチ(カウントスイッチ)38a(図6参照)が配設されている。本実施形態の遊技機では、大入賞口スイッチ38aが2つ設けられ、大入賞口内に流入した遊技球は何れかの大入賞口スイッチ38aに検出されるようになっている。このように大入賞口スイッチ38aを複数設けることで、大入賞口内に流入した遊技球を迅速に検出できる。
また、センターケース40の下方には、第1特図変動表示ゲーム(特図1変動表示ゲーム)の開始条件を与える第1始動入賞口36(始動入賞口、始動入賞領域)および第2特図変動表示ゲーム(特図2変動表示ゲーム)の開始条件を与える第2始動入賞口97(始動入賞口、始動入賞領域)を備える入賞装置90が設けられている。
入賞装置90は、上部の流入口90aに流入した遊技球を内部で第1始動入賞口36と第2始動入賞口97とに交互に振り分ける振分部材92を備えている(図3参照)。第1始動入賞口36に入賞した遊技球は、始動口1スイッチ36a(図6参照)によって検出され、第2始動入賞口97に入賞した遊技球は、始動口3スイッチ97a(図6参照)によって検出される。
また、入賞装置90の下方には、入賞口などに入賞しなかった遊技球を回収するアウト口30aが設けられている。
図3(a)〜(c)は、本実施形態の入賞装置90の正面図であって、前カバー部材を取り外した状態を示す図である。
図3(a)に示すように、入賞装置90は、その内部のうち、流入口90aの直下となる位置に振分部材92を備えている。また、振分部材92の左下方には第1始動入賞口36が配され、振分部材92の右下方には第2始動入賞口97が配されている。
さらに、振分部材92や第1始動入賞口36、第2始動入賞口97の前方を覆うように前カバー部材が設けられている。この前カバー部材は、入賞装置90内の遊技球の挙動を視認可能なように透明又は半透明となっている。
振分部材92は、前後方向に沿った軸ピン92aを中心として回動可能であり、軸ピン92aが配される位置から上方へ延出する上腕部92bと左方へ延出する左腕部92cと右方へ延出する右腕部92dとを有している。3つの腕部のうちの上腕部92bの左方には、当該上腕部92bと左腕部92cとによって遊技球を一時的に保持する左保持部92eが形成され、上腕部92bの右方には、当該上腕部92bと右腕部92dとによって遊技球を一時的に保持する右保持部92fが形成されている。
振分部材92は、上腕部92bが常に上を向いた状態で、図3(b)に示すように左保持部92eが流入口90aに流入した遊技球を受け入れ可能な位置と、図3(c)に示すように右保持部92fが流入口90aに流入した遊技球を受け入れ可能な位置との間で回動可能となっている。
図3(b)に示すように、左保持部92eが流入口90aに流入した遊技球を受け入れ可能な位置にある場合は、右保持部92fが第2始動入賞口97へ向けて遊技球を流下させた状態となる。
また、図3(c)に示すように、右保持部92fが流入口90aに流入した遊技球を受け入れ可能な位置にある場合は、左保持部92eが第1始動入賞口36へ向けて遊技球を流下させた状態となる。
また、図3(a)に示すように、振分部材92のうち、上腕部92bの後方には、振分部材側磁石96aが取り付けられている。また、振分部材92が前方から装着されるベース部材93のうち、上腕部92bが垂直になった際に振分部材側磁石96aと対向する位置には、ベース部材側磁石96bが取り付けられている。振分部材側磁石96aとベース部材側磁石96bとは対向する側の極が同じ極となるように取り付けられており、磁石96a,96bの反発力によって、振分部材92は上腕部92bが垂直になった状態で留まらずに左右の何れかへ回動するように付勢されている。これにより、振分部材92の回動が停止した状態では、左保持部92eと右保持部92fの何れかが必ず流入口90aに流入した遊技球を受け入れ可能な状態となる。
図3(b),(c)に示すように、流入口90aに流入した遊技球は、左保持部92eと右保持部92fのうちの流入口90aに向いて受け入れ可能な状態となっている一方の保持部で保持される。一方の保持部で遊技球が保持されると、遊技球の重さによって振分部材92は当該一方の保持部の方向へ回動し、保持された遊技球は振分部材92が回動した方向にある第1始動入賞口36または第2始動入賞口97へ向けて流下する。
すなわち、図3(b)に示すように左保持部92eで流入した遊技球を受けると振分部材92が遊技球の重さによって左に回動して第1始動入賞口36へ遊技球を案内した後、図3(c)に示すように右保持部92fが次の遊技球を受入可能な状態で停止する。そして、図3(c)に示すように右保持部92fで流入した遊技球を受けると振分部材92が遊技球の重さによって右に回動して第2始動入賞口97へ遊技球を案内した後、図3(b)に示すように左保持部92eが次の遊技球を受入可能な状態で停止する。
保持部92e,92fから流下した遊技球は第1始動入賞口36または第2始動入賞口97へ流入する可能性が高いが流入しないこともあり、流入しなかった場合は入賞装置90の外へ流出する。特に、保持部92e,92fへ流入する際の勢いが強いと第1始動入賞口36または第2始動入賞口97へ流入しない可能性が高い。なお、必ず何れかの始動入賞口に入賞するように構成しても良い。
また、振分部材92が回動することによって、遊技球を保持していた保持部ではない他方の保持部が流入口90aに向いて受け入れ可能な状態となる。そして、次回受け入れられた遊技球は当該他方の保持部側にある入賞口へ誘導される。これにより、順次流入口90aへ流入する遊技球は第1始動入賞口36と第2始動入賞口97とに交互に振り分けられることとなる。
本実施形態の遊技機10においては、遊技球が流下する遊技領域32のうち、センターケース40の左方の領域が左側遊技領域とされ、センターケース40の右方の領域が右側遊技領域とされている。そして、遊技者が発射勢を調節して左側遊技領域へ遊技球を発射(いわゆる左打ち)することで入賞装置90への入賞を狙うことができ、右側遊技領域へ遊技球を発射(いわゆる右打ち)することで普図始動ゲート34や普通変動入賞装置37や特別変動入賞装置38への入賞を狙うことができるようになっている。
また、遊技領域32の外側(ここでは遊技盤30の右下部)には、特図変動表示ゲームをなす第1特図変動表示ゲームや第2特図変動表示ゲーム及び普図始動ゲート34への入賞をトリガとする普図変動表示ゲームの表示や、各種情報を表示する一括表示装置50が設けられている。
一括表示装置50は、図4(a)に示すように、7セグメント型の表示器(LEDランプ)等で構成された第1特図変動表示ゲーム用の特図1表示器(第1特図変動表示部)51a(D1)及び第2特図変動表示ゲーム用の特図2表示器(第2特図変動表示部)51b(D2)と、LEDランプで構成された普図変動表示ゲーム用の変動表示部(普図表示器)52(D10,D18)と、同じくLEDランプで構成された各変動表示ゲームの始動記憶数報知用の記憶表示部53,54,55(D11〜D16)とを備える。
また、一括表示装置50には、左打ちよりも右打ちの方が有利な遊技状態であることを報知する第1遊技状態表示部(第1遊技状態表示器、右打ち報知部)56(D8)、時短状態が発生すると点灯して時短状態発生を報知する第2遊技状態表示部(第2遊技状態表示器、時短状態報知部)57(D9)、遊技機10の電源投入時に大当りの確率状態が高確率状態となっていることを表示する第3遊技状態表示部(第3遊技状態表示器、確率状態表示部)58(D17)、大当り時のラウンド数(特別変動入賞装置38の開閉回数)を表示するラウンド表示部59(D3〜D7)が設けられている。なお、一括表示装置50には、更に、大当りが発生すると点灯して大当り発生を報知する表示部(表示器)等が設けられていてもよい。
特図1表示器51aと特図2表示器51bにおける特図変動表示ゲームは、例えば変動表示ゲームの実行中、すなわち、表示装置41において飾り特図変動表示ゲームを行っている間は、中央のセグメントを点滅駆動させて変動中であることを表示する。なお、本実施形態の場合、特図1表示器51aにおける特図変動表示ゲームにおいては、中央のセグメントに加えて7セグの右方下側に設けられた8番目のセグメントも点滅駆動させて変動中であることを表示するようにし、特図1と特図2との区別が可能なように構成されている。そして、ゲームの結果が「はずれ」のときは、はずれの結果態様として例えば中央のセグメント(特図1であれば加えて右方下側の8番目のセグメント)を点灯状態にし、ゲームの結果が「当り」のときは、当りの結果態様(特別結果態様)としてはずれの結果態様以外の結果態様(例えば、数字や記号)を点灯状態にしてゲーム結果を表示する。
普図表示器52は、変動中はランプを点滅させて変動中であることを表示し、所定時間後にゲームの結果に応じた点灯態様や点灯色としてゲーム結果を表示する。本実施形態の場合、図4(d)に示すように、普図表示器52を構成するランプD10とランプD18のうち、変動用図柄番号が「0」のとき(すなわち、ゲームの結果がはずれのとき)はランプD10のみを点灯状態にし、変動用図柄番号が「1」のとき(すなわち、ゲームの結果が当りで当り停止図柄番号が「1」のとき)はランプD18のみを点灯状態にし、変動用図柄番号が「2」のとき(すなわち、ゲームの結果が当りで当り停止図柄番号が「2」のとき)はランプD10及びランプD18の双方を点灯状態にするよう構成されている。
また、普図保留表示器55は、普図表示器52の変動開始条件となる普図始動ゲート34の始動記憶数(=保留数)を複数のLEDの消灯、点滅、点灯により表示する。本実施形態の場合、図4(c)に示すように、普図保留表示器55を構成するランプD15とランプD16のうち、保留数が「0」のときはランプD15及びランプD16の双方を消灯状態にし、保留数が「1」のときはランプD15のみを点灯状態にし、保留数が「2」のときはランプD15及びランプD16の双方を点灯状態にし、保留数が「3」のときはランプD15を点滅状態にしてランプD16を点灯状態にし、保留数が「4」のときはランプD15及びランプD16の双方を点滅状態にするよう構成されている。
特図1保留表示器53は、特図1表示器51aにおいて表示される第1特図変動表示ゲームの実行権利である第1始動記憶(特図1保留)の数を複数のLEDの消灯、点滅、点灯により表示する。本実施形態の場合、図4(b)に示すように、特図1保留表示器53を構成するランプD11とランプD12のうち、特図1始動記憶数が「0」のときはランプD11及びランプD12の双方を消灯状態にし、特図1始動記憶数が「1」のときはランプD11のみを点灯状態にし、特図1始動記憶数が「2」のときはランプD11及びランプD12の双方を点灯状態にし、特図1始動記憶数が「3」のときはランプD11を点滅状態にしてランプD12を点灯状態にし、特図1始動記憶数が「4」のときはランプD11及びランプD12の双方を点滅状態にするよう構成されている。
特図2保留表示器54は、特図2表示器51bにおいて表示される第2特図変動表示ゲームの実行権利である第2始動記憶(特図2保留)の数を、複数のLEDの消灯、点滅、点灯により表示する。本実施形態の場合、図4(b)に示すように、特図2保留表示器54を構成するランプD13とランプD14のうち、特図2始動記憶数が「0」のときはランプD13及びランプD14の双方を消灯状態にし、特図2始動記憶数が「1」のときはランプD13のみを点灯状態にし、特図2始動記憶数が「2」のときはランプD13及びランプD14の双方を点灯状態にし、特図2始動記憶数が「3」のときはランプD13を点滅状態にしてランプD14を点灯状態にし、特図2始動記憶数が「4」のときはランプD13及びランプD14の双方を点滅状態にするよう構成されている。
第1遊技状態表示部(右打ち報知部)56は、LEDランプ等で構成され、例えば図4(f)に示すように、右打ちよりも左打ちの方が有利な遊技状態(通常打ち状態)の場合にはランプを消灯状態にし、左打ちよりも右打ちの方が有利な遊技状態(右打ち状態)の場合にはランプを点灯状態にする。
第2遊技状態表示部(時短状態報知部)57は、LEDランプ等で構成され、例えば図4(f)に示すように、時短状態が発生していない通常の遊技状態の場合(時短未作動時)にはランプを消灯状態にし、時短状態が発生している場合(時短作動時)にはランプを点灯状態にする。
第3遊技状態表示部(確率状態表示部)58は、LEDランプ等で構成され、例えば図4(f)に示すように、遊技機10の電源投入時に大当りの確率状態が低確率状態(通常確率状態)の場合にはランプを消灯状態にし、遊技機10の電源投入時に大当りの確率状態が高確率状態(確変状態)の場合にはランプを点灯状態にする。
ラウンド表示部59は、LEDランプ等で構成され、例えば、大当りに基づく特別遊技状態中でない場合にはランプを消灯状態にし、特別遊技状態中には特別結果に応じて選択されたラウンド数に対応するランプを点灯状態にする。本実施形態の場合、図4(e)に示すように、ラウンド表示部59を構成するランプD3〜D7のうち、選択されたラウンド数が「16」のときはランプD3,D5,D7を点灯状態にし、選択されたラウンド数が「2」のときはランプD4,D6を点灯状態にするよう構成されている。なお、ラウンド表示部は7セグメント型の表示器で構成してもよい。
図5には、演出操作部550の詳細を示した。
図5(a)は、演出操作部550の平面図である。本実施形態の演出操作部550は、図5(a)に示すように、演出ボタン(プッシュボタン)25と、演出ボタン(プッシュボタン)25の上面に設けられたタッチパネル29と、を備えて構成されている。すなわち、演出操作部550は、物理的なプッシュボタン機能に加えて、タッチセンサ機能(タッチパネル機能)を有している。
そして、演出制御基板(演出制御装置)300から演出操作部550へは、感度設定データやLED輝度データなどが送信され、演出操作部550から演出制御基板(演出制御装置)300へは、演出ボタン(プッシュボタン)25が備える演出ボタンスイッチ(プッシュセンサ)25aからのプッシュボタン信号(押圧検出信号)やタッチパネル29が備えるタッチセンサ29aからのタッチON/OFF信号(接触/非接触検出信号)が出力されるよう構成されている。
本実施形態の場合、演出ボタン(プッシュボタン)25が備える演出ボタンスイッチ(プッシュセンサ)25aで、演出操作部550の上面に対する押圧操作(演出操作部550の上面を押して演出操作部550を押し下げる操作)を検出する。また、演出操作部550の上面には複数のポイントが設けられており、タッチパネル29が備えるタッチセンサで、演出操作部550の上面に設けられたポイントに対する接触操作を検出する。
具体的には、図5(b)に示すように、複数のポイントとして、「TSW1」〜「TSW8」ポイントと、「Pa」ポイントと、の9つのポイントが設けられている。より具体的には、演出操作部550上面の中央部に設けられた「TSW4」ポイントと、「TSW4」ポイントの左側に設けられた「TSW1」ポイントと、「TSW4」ポイントよりも奥側(遊技盤30側)に設けられた「TSW3」ポイントと、「TSW4」ポイントの右側に設けられた「TSW6」ポイントと、「TSW4」ポイントよりも手前側(遊技者側)に設けられた「TSW8」ポイントと、「TSW1」ポイントと「TSW3」ポイントとの間に設けられた「TSW2」ポイントと、「TSW3」ポイントと「TSW6」ポイントとの間に設けられた「TSW5」ポイントと、「TSW6」ポイントと「TSW8」ポイントとの間に設けられた「TSW7」ポイントと、「TSW8」ポイントと「TSW1」ポイントとの間に設けられた「Pa」ポイントと、が設けられている。なお、ポイントの数は、9つに限定されるものではなく、適宜任意に変更可能である。また、図5(b)では、便宜上、「TSW1」〜「TSW8」の各ポイントにそれぞれ「TSW1」〜「TSW8」と表記しているが、本実施形態の演出操作部550には、図5(a)に示すように、このような表記はない。
タッチパネル29のタッチセンサによって接触操作が検出可能なポイントは、「TSW1」〜「TSW8」ポイントの8つのポイントであり、「Pa」ポイントでは接触操作を検出しない。もちろん「Pa」ポイントでも接触操作を検出するようにしても良い。また、「TSW1」〜「TSW8」ポイントと「Pa」ポイントとの9つのポイント各々には、それぞれが独立した系統のLED(本実施形態の場合、フルカラーLED)が配置されている。
「Pa」ポイントは、例えば、「Pa」ポイントのLEDを一発告知用の告知ランプとして使用することや、演出操作部550上面の各ポイントのLEDをルーレットのように順次点灯させ「Pa」ポイントのLEDを“当確(または確変確定)”ポイントに使用すること、「Pa」ポイントのLEDを先読みの当確演出に使用すること等、確定系の演出に用いることができる。
ここで、演出操作部550の上面を光らせるためのLED(具体的には、「TSW1」〜「TSW8」ポイントや「Pa」ポイントなどに配置されたLED)の点灯輝度は、輝度調整(ホール設定、遊技者調整とも)の対象からは除外されている。すなわち、当該LEDの点灯輝度は、輝度調整の影響を受けず、一定となっている。また、タッチセンサは、タッチON状態(接触状態)が所定時間(例えば、約35秒間(基本設定))継続すると、強制的にタッチOFFする機能(タッチON信号の出力を停止して、タッチOFF信号を出力する機能)を有している。すなわち、タッチセンサ(タッチ検知IC)は、所定時間以上の連続した接触操作を検出できないよう構成されている。
このような演出操作部550で検出する遊技者の操作としては、例えば図5(c)に示す操作が挙げられる。「単打」は、演出操作部550の押下を1回行う操作であり、「連打」は演出操作部550の押下を所定時間以内の間隔で複数回行う操作である。「長押し」は演出操作部550を所定時間以上押下したままとする操作であり、「タッチ」はタッチパネル29に触れる操作である。「「Pa」操作(TSW1or8)+長押し」は、「Pa」ポイント又はこれに隣接する「TSW1」ポイントと「TSW8」ポイントとの2つのポイントの一方(或いは、両方)に接触した状態で長押しする操作であり、「フリック」はタッチパネル29に触れた状態のまま弾くようにスライドさせる操作である。もちろん検出する操作はこれらの操作に限られるものではない。
本実施形態の遊技機10では、図示しない発射装置から遊技領域32に向けて遊技球(パチンコ球)が打ち出されることによって遊技が行われる。打ち出された遊技球は、遊技領域32内の各所に配置された障害釘や風車等の方向転換部材によって転動方向を変えながら遊技領域32を流下し、普図始動ゲート34、一般入賞口35、第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37又は特別変動入賞装置38に入賞するか、遊技領域32の最下部に設けられたアウト口30aへ流入し遊技領域32から排出される。そして、一般入賞口35、第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37又は特別変動入賞装置38に遊技球が入賞すると、入賞した入賞口の種類に応じた数の賞球が、払出制御装置200(図6参照)によって制御される払出ユニットから、ガラス枠15の上皿21又は下皿23に排出される。
一方、普図始動ゲート34内には、該普図始動ゲート34を通過した遊技球を検出するための非接触型のスイッチなどからなるゲートスイッチ34a(図6参照)が設けられており、遊技領域32内に打ち込まれた遊技球が普図始動ゲート34内を通過すると、ゲートスイッチ34aにより検出されて普図変動表示ゲームが行われる。また、普図変動表示ゲームを開始できない状態、例えば、既に普図変動表示ゲームが行われ、その普図変動表示ゲームが終了していない状態や、普図変動表示ゲームが当って普通変動入賞装置37が開状態に変換されている場合に、普図始動ゲート34を遊技球が通過すると、普図始動記憶数の上限数(例えば、4個)未満ならば、普図始動記憶数が加算(+1)されて普図始動記憶が1つ記憶されることとなる。この普図始動入賞の記憶数は、一括表示装置50の普図保留表示器55に表示される。また、普図始動記憶には、普図変動表示ゲームの結果を決定するための当り判定用乱数値(当り乱数値)が記憶されるようになっていて、この当り判定用乱数値を判定値に参照して当該普図変動表示ゲームの結果を決定する。この当り判定用乱数値が判定値と一致した場合に、当該普図変動表示ゲームが当りとなって特定の結果態様(普図特定結果)が導出されることとなる。
普図変動表示ゲームは、一括表示装置50に設けられ、LEDにより構成された変動表示部(普図表示器)52で表示されるようになっており、このLEDの点灯態様や点灯色が普通識別情報(普図、普通図柄)をなす。なお、普図表示器52を表示装置で構成し、普通識別情報として例えば数字、記号、キャラクタ図柄などを用い、これを所定時間変動表示させた後、停止表示させて結果を表示するように構成しても良い。この普図変動表示ゲームの停止表示が普図特定結果となれば、普図の当りとなって、普通変動入賞装置37の可動部材37bが所定時間開放される開状態となる。これにより、普通変動入賞装置37の内部の第2始動入賞口へ遊技球が入賞し易くなり、第2特図変動表示ゲームが実行される回数が多くなる。
第1始動入賞口36への入賞球、第2始動入賞口97への入賞球、及び普通変動入賞装置37への入賞球は、それぞれは内部に設けられた始動口1スイッチ36a、始動口3スイッチ97a、及び始動口2スイッチ37aによって検出される。第1始動入賞口36へ入賞した遊技球は第1特図変動表示ゲームの始動入賞球として検出され、第1始動記憶として所定の上限数(例えば、4個)を限度に記憶されるとともに、第2始動入賞口97や普通変動入賞装置37へ入賞した遊技球は第2特図変動表示ゲームの始動入賞球として検出され、第2始動記憶として所定の上限数(例えば、4個)を限度に記憶される。また、この始動入賞球の検出時にそれぞれ始動記憶情報として大当り乱数値や大当り図柄乱数値、並びに各変動パターン乱数値が抽出され、抽出された乱数値は、遊技制御装置100(図6参照)内の特図記憶領域(RAMの一部)に特図始動記憶として各々所定回数(例えば、最大で4回分)を限度に記憶される。そして、この特図始動記憶の記憶数は、一括表示装置50の始動入賞数報知用の記憶表示部(特図1保留表示器53、特図2保留表示器54)に表示されるとともに、センターケース40の表示装置41においても飾り特図始動記憶表示として表示される。
遊技制御装置100は、第1始動入賞口36、第2始動入賞口97、若しくは普通変動入賞装置37への入賞、又はそれらの始動記憶に基づいて、特図1表示器51a(変動表示装置)又は特図2表示器51b(変動表示装置)で第1又は第2特図変動表示ゲームを行う。第1特図変動表示ゲーム及び第2特図変動表示ゲームは、複数の特別図柄(特図、識別情報)を変動表示したのち、所定の結果態様を停止表示することで行われる。また、表示装置(画像表示装置)41にて複数種類の識別情報(例えば、数字、記号、キャラクタ図柄等)を変動表示させる飾り特図変動表示ゲームが実行されるようになっている。そして、特図変動表示ゲームの結果として、特図1表示器51a若しくは特図2表示器51bの表示態様が特別結果態様(特別結果)となった場合には、大当りとなって特別遊技状態(いわゆる、大当り状態)となる。また、これに対応して表示装置41に表示される飾り特図変動表示ゲームの結果態様も特別結果態様となる。
表示装置41における飾り特図変動表示ゲームは、例えば、表示装置41において前述した数字等で構成される飾り特別図柄(識別情報)を左変動表示領域(第1特別図柄)、右変動表示領域(第2特別図柄)、中変動表示領域(第3特別図柄)のそれぞれにおいて各図柄を識別困難な速さで変動表示(高速変動)する。そして、所定時間後に変動している図柄を左変動表示領域、右変動表示領域、中変動表示領域の順に順次停止させて、左変動表示領域、右変動表示領域、中変動表示領域の各々で停止表示された識別情報により構成される結果態様により特図変動表示ゲームの結果を表示することで行われる。また、表示装置41では、特図始動記憶数に対応する飾り特別図柄による変動表示ゲームを行うとともに、興趣向上のためにキャラクタの出現など多様な演出表示が行われる。
なお、特図1表示器51a、特図2表示器51bは、別々の表示器でも良いし同一の表示器でも良いが、各々独立して、また、同時には実行しないように各特図変動表示ゲームが表示される。また、表示装置41も、第1特図変動表示ゲームと第2特図変動表示ゲームで別々の表示装置や別々の表示領域を使用するとしても良いし、同一の表示装置や表示領域を使用するとしても良いが、各々独立して、また、同時には実行しないように飾り特図変動表示ゲームが表示される。また、遊技機10に特図1表示器51a、特図2表示器51bを備えずに、表示装置41のみで特図変動表示ゲームを実行するようにしても良い。
また、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始可能な状態で、且つ、始動記憶数が0の状態で、第1始動入賞口36(若しくは、第2始動入賞口97や普通変動入賞装置37)に遊技球が入賞すると、始動権利の発生に伴って始動記憶が記憶されて、始動記憶数が1加算されるととともに、直ちに始動記憶に基づいて、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始され、この際に始動記憶数が1減算される。一方、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が直ちに開始できない状態、例えば、既に第1若しくは第2特図変動表示ゲームが行われ、その特図変動表示ゲームが終了していない状態や、特別遊技状態となっている場合に、第1始動入賞口36(若しくは、第2始動入賞口97や普通変動入賞装置37)に遊技球が入賞すると、始動記憶数が上限数未満ならば、始動記憶数が1加算されて始動記憶が1つ記憶されることになる。そして、始動記憶数が1以上となった状態で、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始可能な状態(前回の特図変動表示ゲームの終了若しくは特別遊技状態の終了)となると、始動記憶数が1減算されるとともに、記憶された始動記憶に基づいて第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始される。以下の説明において、第1特図変動表示ゲームと第2特図変動表示ゲームを区別しない場合は、単に特図変動表示ゲームと称する。
なお、特に限定されるわけではないが、第1始動入賞口36内の始動口1スイッチ36a、第2始動入賞口97内の始動口3スイッチ97a、普通変動入賞装置37内の始動口2スイッチ37a、ゲートスイッチ34a、入賞口スイッチ35a、大入賞口スイッチ38aには、磁気検出用のコイルを備え該コイルに金属が近接すると磁界が変化する現象を利用して遊技球を検出する非接触型の磁気近接センサ(以下、近接スイッチと称する)が使用されている。また、遊技機10のガラス枠15等に設けられたガラス枠開放検出スイッチ63や前面枠(本体枠)12等に設けられた本体枠開放検出スイッチ64には、機械的な接点を有するマイクロスイッチを用いることができる。
図6は、本実施形態のパチンコ遊技機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の直流電圧を生成するAC−DCコンバータや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にはRAM初期化スイッチ112が設けられている。このRAM初期化スイッチ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に対する所定周期(例えば、4ミリ秒)のタイマ割込み信号や乱数生成回路の更新タイミングを与えるクロックを生成するクロックジェネレータを備えている。
また、CPU111Aは、特図変動表示ゲームに関する処理において、ROM111Bに記憶されている複数の変動パターンテーブルの中から、何れか一の変動パターンテーブルを取得する。具体的には、CPU111Aは、特図変動表示ゲームの遊技結果(大当り或いははずれ)や、現在の遊技状態としての特図変動表示ゲームの確率状態(通常確率状態或いは高確率状態)、現在の遊技状態としての普通変動入賞装置37の動作状態(時短動作状態(普電サポート状態))、始動記憶数などに基づいて、複数の変動パターンテーブルの中から、何れか一の変動パターンテーブルを選択して取得する。ここで、CPU111Aは、特図変動表示ゲームを実行する場合に、ROM111Bに記憶された複数の変動パターンテーブルのうち、何れか一の変動パターンテーブルを取得する変動振り分け情報取得手段をなす。
払出制御装置200は、CPU、ROM、RAM、入力インタフェース、出力インタフェース等を備え、遊技制御装置100からの賞球払出し指令(コマンドやデータ)に従って、払出ユニットの払出モータを駆動させ、賞球を払い出させるための制御を行う。また、払出制御装置200は、カードユニットからの貸球要求信号に基づいて払出ユニットの払出モータを駆動させ、貸球を払い出させるための制御を行う。
遊技用マイコン111の入力部120には、遊技機に対する電波の発射を検出する盤電波センサ62、第1始動入賞口36内の始動口1スイッチ36a、普通変動入賞装置37内の始動口2スイッチ37a、第2始動入賞口97内の始動口3スイッチ97a、普図始動ゲート34内のゲートスイッチ34a、入賞口スイッチ35a、特別変動入賞装置38の大入賞口スイッチ38aに接続され、これらのスイッチから供給されるハイレベルが11Vでロウレベルが7Vのような負論理の信号が入力され、0V−5Vの正論理の信号に変換するインタフェースチップ(近接I/F)121が設けられている。近接I/F121は、入力の範囲が7V−11Vとされることで、センサや近接スイッチのリード線が不正にショートされたり、センサやスイッチがコネクタから外されたり、リード線が切断されてフローティングになったような異常な状態を検出することができ、異常検知信号を出力するように構成されている。
近接I/F121の出力は、第2入力ポート123又は第3入力ポート124へ供給されデータバス140を介して遊技用マイコン111に読み込まれる。なお、近接I/F121の出力のうち、始動口1スイッチ36a、始動口2スイッチ37a、始動口3スイッチ97a、ゲートスイッチ34a、入賞口スイッチ35a及び大入賞口スイッチ38aの検出信号は第2入力ポート123へ入力される。また、近接I/F121の出力のうち、盤電波センサ62の検出信号及びセンサやスイッチの異常を検出した際に出力される異常検知信号は第3入力ポート124に入力される。また、第3入力ポート124には、遊技機10の前面枠12等に設けられた不正検出用の磁気センサ61の検出信号や、遊技機10のガラス枠15等に設けられたガラス枠開放検出スイッチ63の検出信号、遊技機10の前面枠(本体枠)12等に設けられた本体枠開放検出スイッチ64の検出信号も入力されるようになっている。なお、振動を検出する振動センサスイッチを遊技機に設け、検出信号が第3入力ポート124に入力されるようにしても良い。
また、近接I/F121の出力のうち、第2入力ポート123への出力は、主基板100から中継基板70を介して図示しない試射試験装置へも供給されるようになっている。さらに、近接I/F121の出力のうち始動口1スイッチ36aと始動口2スイッチ37aと始動口3スイッチ97aの検出信号は、第2入力ポート123の他、遊技用マイコン111へ入力されるように構成されている。
上記のように近接I/F121は、信号のレベル変換機能を有する。このようなレベル変換機能を可能にするため、近接I/F121には、電源装置400から通常のICの動作に必要な例えば5Vのような電圧の他に、12Vの電圧が供給されるようになっている。
第2入力ポート123が保持しているデータは、遊技用マイコン111が第2入力ポート123に割り当てられているアドレスをデコードすることによってイネーブル信号CE2をアサート(有効レベルに変化)することよって、読み出すことができる。第3入力ポート124や後述の第1入力ポート122も同様である。
また、入力部120には、払出制御装置200からの枠電波不正信号(前面枠12に設けられた枠電波センサが電波を検出することに基づき出力される信号)、払出ビジー信号(払出制御装置200がコマンドを受付可能な状態か否かを示す信号)、払出異常ステータス信号(払出異常を示すステータス信号)、シュート球切れスイッチ信号(払出し前の遊技球の不足を示す信号)、オーバーフロースイッチ信号(下皿23に遊技球が所定量以上貯留されていること(満杯になったこと)を検出したときに出力される信号)、タッチスイッチ信号(操作部24に設けられたタッチスイッチの入力に基づく信号)を取り込んでデータバス140を介して遊技用マイコン111に供給する第1入力ポート122が設けられている。
また、入力部120には、電源装置400からの停電監視信号やリセット信号などの信号を遊技用マイコン111等に入力するためのシュミットバッファ125が設けられており、シュミットバッファ125はこれらの入力信号からノイズを除去する機能を有する。電源装置400からの停電監視信号や、RAM初期化スイッチ112からの初期化スイッチ信号は、一旦第1入力ポート122に入力され、データバス140を介して遊技用マイコン111に取り込まれる。つまり、前述の各種スイッチからの信号と同等の信号として扱われる。遊技用マイコン111に設けられている外部からの信号を受ける端子の数には制約があるためである。
一方、シュミットバッファ125によりノイズ除去されたリセット信号RESETは、遊技用マイコン111に設けられているリセット端子に直接入力されるとともに、出力部130の各ポートに供給される。また、リセット信号RESETは出力部130を介さずに直接中継基板70に出力することで、試射試験装置へ出力するために中継基板70のポート(図示省略)に保持される試射試験信号をオフするように構成されている。また、リセット信号RESETを中継基板70を介して試射試験装置へ出力可能に構成するようにしてもよい。なお、リセット信号RESETは入力部120の各ポート122,123,124には供給されない。リセット信号RESETが入る直前に遊技用マイコン111によって出力部130の各ポートに設定されたデータはシステムの誤動作を防止するためリセットする必要があるが、リセット信号RESETが入る直前に入力部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に接続され特別変動入賞装置38を開成させるソレノイド(大入賞口ソレノイド)38b及び普通変動入賞装置37の可動部材37bを開成させるソレノイド(普電ソレノイド)37cの開閉データを出力するための第2出力ポート134が設けられている。また、出力部130には、一括表示装置50に表示する内容に応じてLEDのアノード端子が接続されているセグメント線のオン/オフデータを出力するための第3出力ポート135、一括表示装置50のLEDのカソード端子が接続されているデジット線のオン/オフデータを出力するための第4出力ポート136が設けられている。
また、出力部130には、大当り情報など遊技機10に関する情報を外部情報端子板71へ出力するための第5出力ポート137が設けられている。外部情報端子板71にはフォトリレーが備えられ、例えば遊技店に設置された外部装置(情報収集端末や遊技場内部管理装置(ホールコンピュータ)など)に接続可能であり、遊技機10に関する情報を外部装置に供給することができるようになっている。また、第5出力ポート137からはシュミットバッファ132を介して払出制御装置200に発射許可信号も出力される。
さらに、出力部130には、第2出力ポート134から出力される大入賞口ソレノイド38bや普電ソレノイド37cの開閉データ信号を受けてソレノイド駆動信号を生成し出力する第1ドライバ(駆動回路)138a、第3出力ポート135から出力される一括表示装置50の電流供給側のセグメント線のオン/オフ駆動信号を出力する第2ドライバ138b、第4出力ポート136から出力される一括表示装置50の電流引き込み側のデジット線のオン/オフ駆動信号を出力する第3ドライバ138c、第5出力ポート137から管理装置等の外部装置へ供給する外部情報信号を外部情報端子板71へ出力する第4ドライバ138dが設けられている。
上記第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には、外部の検査装置500へ各遊技機の識別コードやプログラムなどの情報を送信するためのフォトカプラ139が設けられている。フォトカプラ139は、遊技用マイコン111が検査装置500との間でシリアル通信によってデータの送受信を行えるように双方通信可能に構成されている。なお、かかるデータの送受信は、通常の汎用マイクロプロセッサと同様に遊技用マイコン111が有するシリアル通信端子を利用して行われるため、入力ポート122,123,124のようなポートは設けられていない。
次に、図7を用いて、演出制御装置300の構成について説明する。
演出制御装置300は、遊技用マイコン111と同様にアミューズメントチップ(IC)からなる主制御用マイコン(CPU)311と、主制御用マイコン311からのコマンドやデータに従って表示装置41への映像表示のための画像処理を行うグラフィックプロセッサとしてのVDP(Video Display Processor)312と、各種のメロディや効果音などをスピーカ19a,19bから再生させるため音の出力を制御する音源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、ガラス枠15に設けられたタッチパネル29、盤演出装置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に記憶されている判定値と比較し、普図変動表示ゲームの当りはずれを判定する処理を行う。そして、普図表示器52に、識別図柄(識別情報)を所定時間変動表示した後、停止表示する普図変動表示ゲームを表示する処理を行う。この普図変動表示ゲームの結果が当りの場合は、普図表示器52に第1当り停止図柄〜第3当り停止図柄の各々に対応した特別の結果態様を表示するとともに、普電ソレノイド37cを動作させ、普通変動入賞装置37の可動部材37bを所定時間(例えば、0.5秒間又は1.7秒間)上述のように開放する制御を行う。すなわち、遊技制御装置100が、変換部材(可動部材37b)の変換制御を行う変換制御実行手段をなす。なお、普図変動表示ゲームの結果がはずれの場合は、普図表示器52にはずれの結果態様を表示する制御を行う。
また、第1始動入賞口36に備えられた始動口1スイッチ36aからの遊技球の検出信号の入力に基づき始動入賞(始動記憶)を記憶し、この始動記憶に基づき、第1特図変動表示ゲームの大当り判定用乱数値を抽出してROM111Bに記憶されている判定値と比較し、第1特図変動表示ゲームの当りはずれを判定する処理を行う。また、普通変動入賞装置37に備えられた始動口2スイッチ37aや第2始動入賞口97に備えられた始動口3スイッチ97aからの遊技球の検出信号の入力に基づき始動記憶を記憶し、この始動記憶に基づき、第2特図変動表示ゲームの大当り判定用乱数値を抽出してROM111Bに記憶されている判定値と比較し、第2特図変動表示ゲームの当りはずれを判定する処理を行う。
そして、遊技制御装置100のCPU111Aは、上記の第1特図変動表示ゲームや第2特図変動表示ゲームの判定結果を含む制御信号(演出制御コマンド)を、演出制御装置300に出力する。そして、特図1表示器51aや特図2表示器51bに、識別図柄(識別情報)を所定時間変動表示した後、停止表示する特図変動表示ゲームを表示する処理を行う。すなわち、遊技制御装置100が、遊技領域32を流下する遊技球の始動入賞領域(第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37)への入賞に基づき変動表示ゲームの進行制御を行う遊技制御手段をなす。
また、演出制御装置300では、遊技制御装置100からの制御信号に基づき、表示装置41で特図変動表示ゲームに対応した飾り特図変動表示ゲームを表示する処理を行う。さらに、演出制御装置300では、遊技制御装置100からの制御信号に基づき、演出状態の設定や、スピーカ19a,19bからの音の出力、各種LEDの発光を制御する処理等を行う。すなわち、演出制御装置300が、遊技(変動表示ゲーム等)に関する演出を制御する演出制御手段をなす。
そして、遊技制御装置100のCPU111Aは、特図変動表示ゲームの結果が大当りの場合は、特図1表示器51aや特図2表示器51bに特別結果態様を表示するとともに、特別遊技状態を発生させる処理を行う。特別遊技状態を発生させる処理においては、CPU111Aは、例えば、大入賞口ソレノイド38bにより特別変動入賞装置38の開閉扉38cを開放させ、大入賞口内への遊技球の流入を可能とする制御を行う。そして、大入賞口に所定個数(例えば、10個)の遊技球が入賞するか、大入賞口の開放から所定の開放可能時間が経過するかの何れかの条件が達成されるまで大入賞口を開放することを1ラウンドとし、これを所定ラウンド回数継続する(繰り返す)制御(サイクル遊技)を行う。すなわち、遊技制御装置100が、停止結果態様が特別結果態様となった場合に、大入賞口を開閉する制御を行う大入賞口開閉制御手段をなす。また、特図変動表示ゲームの結果がはずれの場合は、特図1表示器51aや特図2表示器51bにはずれの結果態様を表示する制御を行う。
また、遊技制御装置100は、特図変動表示ゲームの結果態様に基づき、特別遊技状態の終了後に、遊技状態として高確率状態を発生可能となっている。この高確率状態は、特図変動表示ゲームにて当り結果となる確率が、通常確率状態(低確率状態)に比べて高い状態である。また、第1特図変動表示ゲーム及び第2特図変動表示ゲームのどちらの特図変動表示ゲームの結果態様に基づき高確率状態となっても、第1特図変動表示ゲーム及び第2特図変動表示ゲームの両方が高確率状態となる。
また、遊技制御装置100は、特図変動表示ゲームの結果態様に基づき、特別遊技状態の終了後に、遊技状態として時短状態(特定遊技状態、普図高確率状態、普電サポート状態ともいう)を発生可能となっている。この時短状態においては、普図変動表示ゲームの当り結果となる確率(普図当り確率)を通常確率(普図低確率状態)である0よりも高い高確率(普図高確率状態)とすることが可能である。これにより、普通変動入賞装置37が普図低確率状態である場合よりも、単位時間あたりの普通変動入賞装置37の開放時間が多くなるように制御するようになっている。
なお、普図変動表示ゲーム及び普通変動入賞装置37を時短動作状態とする制御を行うよう適宜普図変動表示ゲームの実行時間、普図停止時間、普電開放回数、普電開放時間を設定しても良く、例えば、時短状態においては、上述の普図変動表示ゲームの実行時間(普図変動時間)を第1変動表示時間よりも短い第2変動表示時間となるように制御することが可能である(例えば、10000m秒が1000m秒)。また、時短状態においては、普図変動表示ゲームの結果を表示する普図停止時間を第1停止時間よりも短い第2停止時間となるように制御することが可能である(例えば、1604m秒が704m秒)。また、時短状態においては、普図変動表示ゲームが当り結果となって普通変動入賞装置37が開放される場合に、開放時間(普電開放時間)を通常状態(普図低確率状態)の第1開放時間よりも長い第2開放時間となるように制御することが可能である(例えば、100m秒が1352m秒)。また、時短状態においては、普図変動表示ゲームの1回の当り結果に対して、普通変動入賞装置37の開放回数(普電開放回数)を第1開放回数(例えば、2回)よりも多い回数(例えば、4回)の第2開放回数に設定することが可能である。また、時短状態においては、普図変動表示ゲームの当り結果となる確率(普図当り確率)を通常動作状態である場合の通常確率(普図低確率状態、例えば、0/251)よりも高い高確率(普図高確率状態、例えば、250/251)とすることが可能である。
時短状態においては、普図変動時間、普図停止時間、普電開放回数、普電開放時間、普図当り確率の何れか一つ又は複数を変化させることで普通変動入賞装置37を開状態に状態変換する時間を通常よりも延長するようにする。また、変化させるものが異なる複数種類の時短状態を設定することも可能である。また、当りとなった場合に第1開放態様と第2開放態様の何れかを選択するようにしても良い。この場合、第1開放態様と第2開放態様の選択確率を異ならせても良い。また、高確率状態と時短状態は、それぞれ独立して発生可能であり、両方を同時に発生することも可能であるし一方のみを発生させることも可能である。
以下、このような遊技を行う遊技機の制御について説明する。まず、上記遊技制御装置100の遊技用マイクロコンピュータ(遊技用マイコン)111によって実行される制御について説明する。遊技用マイコン111による制御処理は、主に図8及び図9に示すメイン処理と、所定時間周期(例えば、4m秒)で行われる図12に示すタイマ割込み処理とからなる。
〔メイン処理〕
先ず、メイン処理について説明する。メイン処理は、電源が投入されることで開始される。このメイン処理においては、図8及び図9に示すように、まず、割込みを禁止する処理(ステップS1)を行ってから、割込みが発生したときにレジスタ等の値を退避する領域の先頭アドレスであるスタックポインタを設定するスタックポインタ設定処理(ステップS2)を行う。次に、レジスタバンク0を指定し(ステップS3)、所定のレジスタ(例えば、Dレジスタ)にRAM先頭アドレスの上位アドレスをセットする(ステップS4)。本実施形態の場合、RAMのアドレスの範囲は0000h〜01FFhで、上位としては00hか01hをとり、ステップS4では先頭の00hをセットする。次に、発射停止の信号を出力して発射許可信号を禁止状態に設定する(ステップS5)。発射許可信号は遊技制御装置100と払出制御装置200の少なくとも一方が発射停止の信号を出力している場合に禁止状態に設定され、遊技球の発射が禁止されるようになっている。
その後、入力ポート1(第1入力ポート122)の状態を読み込み(ステップS6)、電源投入ディレイタイマを設定する処理を行う(ステップS7)。この処理では所定の初期値を設定することにより、主制御手段をなす遊技制御装置100からの指示に従い種々の制御を行う従制御手段(例えば、払出制御装置200や演出制御装置300)のプログラムが正常に起動するのを待つための待機時間(例えば、3秒)が設定される。これにより、電源投入の際に仮に遊技制御装置100が先に立ち上がって従制御装置(例えば、払出制御装置200や演出制御装置300)が立ち上がる前にコマンドを従制御装置へ送ってしまい、従制御装置がコマンドを取りこぼすのを回避することができる。すなわち、遊技制御装置100が、電源投入時において、主制御手段(遊技制御装置100)の起動を遅らせて従制御装置(払出制御装置200、演出制御装置300等)の起動を待つための所定の待機時間を設定する待機手段をなす。
また、電源投入ディレイタイマの計時は、RAMの正当性判定(チェックサム算出)の対象とならない記憶領域(正当性判定対象外のRAM領域又はレジスタ等)を用いて行われる。これにより、RAM領域のチェックサム等のチェックデータを算出する際に、一部のRAM領域を除外して算出する必要がないため電源投入時の制御が複雑になることを防止することができる。
なお、第1入力ポート122には初期化スイッチ信号が入力されるようになっており、待機時間の開始前に第1入力ポート122の状態を読み込むことで、初期化スイッチ112の操作を確実に検出できる。すなわち、待機時間の経過後に初期化スイッチ112の状態を読み込むようにすると、待機時間の経過を待ってから初期化スイッチ112を操作したり、電源投入から待機時間の経過まで初期化スイッチ112を操作し続けたりする必要がある。しかし、待機時間の開始前に状態を読み込むことで、このような煩わしい操作を行わなくても電源投入後すぐに操作を行うことで検出されるようになり、電源投入時に行った初期化の操作が受け付けられないような事態を防止できる。
電源投入ディレイタイマを設定する処理(ステップS7)を行った後、待機時間の計時と、待機時間中における停電の発生を監視する処理(ステップS8からS12)を行う。まず、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックする回数(例えば、2回)を設定し(ステップS8)、停電監視信号がオンであるかの判定を行う(ステップS9)。
停電監視信号がオンである場合(ステップS9;Y)は、ステップS8で設定したチェック回数分停電監視信号のオン状態が継続しているかを判定する(ステップS10)。そして、チェック回数分停電監視信号のオン状態が継続していない場合(ステップS10;N)は、停電監視信号がオンであるかの判定(ステップS9)に戻る。また、チェック回数分停電監視信号のオン状態が継続している場合(ステップS10;Y)、すなわち、停電が発生していると判定した場合は、遊技機の電源が遮断されるのを待つ。このように、所定期間に亘り停電監視信号を受信し続けた場合に停電が発生したと判定することで、ノイズなどにより停電を誤検知することを防止でき、電源投入時における不具合に適切に対処することができる。
すなわち、遊技制御装置100が、所定の待機時間において停電の発生を監視する停電監視手段をなす。これにより、主制御手段をなす遊技制御装置100の起動を遅らせている期間において発生した停電に対応することが可能となり、電源投入時における不具合に適切に対処することができる。なお、待機時間の終了まではRAMへのアクセスが許可されておらず、前回の電源遮断時の記憶内容が保持されたままとなっているため、ここでの停電発生時にはバックアップの処理等は行う必要がない。このため、待機時間中に停電が発生してもRAMのバックアップを取る必要がなく、制御の負担を軽減することができる。
一方、停電監視信号がオンでない場合(ステップS9;N)、すなわち、停電が発生していない場合には、電源投入ディレイタイマを−1更新し(ステップS11)、タイマの値が0であるかを判定する(ステップS12)。タイマの値が0でない場合(ステップS12;N)、すなわち、待機時間が終了していない場合は、停電監視信号のチェック回数を設定する処理(ステップS8)に戻る。また、タイマの値が0である場合(ステップS12;Y)、すなわち、待機時間が終了した場合は、RAMやEEPROM等の読出し書込み可能なRWM(リードライトメモリ)のアクセス許可をし(ステップS13)、全出力ポートにオフデータを出力(出力が無い状態に設定)する(ステップS14)。
次に、シリアルポート(遊技用マイコン111に予め搭載されているポートで、この実施形態では、演出制御装置300や払出制御装置200との通信に使用)を設定し(ステップS15)、先に読み込んだ入力ポート1(第1入力ポート122)の状態から初期化スイッチがオンにされたかを判定する(ステップS16)。
初期化スイッチがオフである場合(ステップS16;N)は、RWM内の停電検査領域1の値が正常な停電検査領域チェックデータ1(例えば、5Ah)であるかを判定し(ステップS17)、正常であれば(ステップS17;Y)、RWM内の停電検査領域2の値が正常な停電検査領域チェックデータ2(例えば、A5h)であるかを判定する(ステップS18)。そして、停電検査領域2の値が正常であれば(ステップS18;Y)、RWM内の所定領域のチェックサムを算出するチェックサム算出処理を行い(ステップS19)、算出したチェックサムと電源断時のチェックサムが一致するかを判定する(ステップS20)。チェックサムが一致する場合(ステップS20;Y)は、図9のステップS21へ移行し、停電から正常に復旧した場合の処理を行う。
また、初期化スイッチがオンである場合(ステップS16;Y)と判定された場合や、停電検査領域の値が正常な停電検査領域チェックデータでないと判定された場合(ステップS17;NもしくはステップS18;N)、チェックサムが一致しないと判定された場合(ステップS20;N)は、図9のステップS26へ移行して初期化の処理を行う。すなわち、初期化スイッチが外部からの操作が可能な初期化操作部をなし、遊技制御装置100が、初期化操作部が操作されたことに基づきRAMに記憶されたデータを初期化する初期化手段をなす。
図9のステップS21では、初期化すべき領域に停電復旧時の初期値をセーブする(ステップS21)。ここでの初期化すべき領域とは、停電検査領域、チェックサム領域及びエラー不正監視に係る領域である。なお、払出制御装置200がコマンドを受付可能な状態か否かを示す信号である払出ビジー信号の状態を記憶するビジー信号ステータス領域もクリアされ、払出ビジー信号の状態を確定していないことを示す不定状態とされる。同様にタッチスイッチ信号の状態を記憶するタッチスイッチ信号状態監視領域もクリアされ、タッチスイッチ信号の状態を確定していないことを示す不定状態とされる。その後、RWM内の遊技状態を記憶する領域を調べて特図変動表示ゲームの確率状態が高確率状態であるか否かを判定する(ステップS22)。ここで、特図の高確率中でない場合(ステップS22;N)は、ステップS23,S24をスキップしてステップS25へ移行する。また、特図の高確率中である場合(ステップS22;Y)は、高確率報知フラグ領域にオン情報をセーブし(ステップS23)、遊技盤30に設けられる高確率報知LED(エラー表示器)のオン(点灯)データをセグメント領域にセーブする(ステップS24)。そして、後述の特図ゲーム処理を合理的に実行するために用意されている処理番号に対応する停電復旧時のコマンドを演出制御基板(演出制御装置300)へ送信し(ステップS25)、ステップS31へ進む。本実施形態の場合、ステップS25では、機種指定コマンド、特図1保留数コマンド、特図2保留数コマンド、確率情報コマンド、画面指定のコマンド(客待ち中なら客待ちデモ画面のコマンド、それ以外なら復旧画面のコマンド)等の複数のコマンドを送信する。
一方、ステップS16、S17、S18、S20からステップS26へジャンプした場合には、RAMアクセス禁止領域をアクセス許可に設定し(ステップS26)、ビジー信号ステータス領域やタッチスイッチ信号状態監視領域を含む全てのRAM領域を0クリアして(ステップS27)、RAMアクセス禁止領域をアクセス禁止に設定する(ステップS28)。そして、初期化すべき領域にRAM初期化時の初期値をセーブする(ステップS29)。ここでの初期化すべき領域とは、客待ちデモ領域及び演出モードの設定に係る領域である。そして、RAM初期化時のコマンドを演出制御基板(演出制御装置300)へ送信して(ステップS30)、ステップS31へ進む。本実施形態の場合、ステップS30では、機種指定コマンド、特図1保留数コマンド、特図2保留数コマンド、確率情報コマンド、RAM初期化のコマンド(客待ちデモ画面を表示させるとともに、所定時間(例えば、30秒間)光と音でRAM初期化の報知を行わせるためのコマンド)等の複数のコマンドを送信する。
ステップS31では、遊技用マイコン111(クロックジェネレータ)内のタイマ割込み信号及び乱数更新トリガ信号(CTC)を発生するCTC(Counter/Timer Circuit)回路を起動する処理を行う。なお、CTC回路は、遊技用マイコン111内のクロックジェネレータに設けられている。クロックジェネレータは、発振回路113からの発振信号(原クロック信号)を分周する分周回路と、分周された信号に基づいてCPU111Aに対して所定周期(例えば、4ミリ秒)のタイマ割込み信号及び乱数生成回路へ供給する乱数更新のトリガを与える信号CTCを発生するCTC回路とを備えている。
上記ステップS31のCTC起動処理の後は、乱数生成回路を起動設定する処理を行う(ステップS32)。具体的には、乱数生成回路内の所定のレジスタ(CTC更新許可レジスタ)へ乱数生成回路を起動させるためのコード(指定値)の設定などがCPU111Aによって行われる。また、乱数生成回路のハードウェアで生成されるハード乱数(ここでは大当り乱数)のビット転置パターンの設定も行われる。ビット転置パターンとは、抽出した乱数のビット配置(上段のビット転置前の配置)を、予め定められた順で入れ替えて異なるビット配置(下段のビット転置後の配置)として格納する際の入れ替え方を定めるパターンである。このビット転置パターンに従い乱数のビットを入れ替えることで、乱数の規則性を崩すことができるとともに、乱数の秘匿性を高めることができる。なお、ビット転置パターンは、固定された単一のパターンであっても良いし、予め用意された複数のパターンから選択するようにしても良い。また、ユーザーが任意に設定できるようにしても良い。
その後、電源投入時の乱数生成回路内の所定のレジスタ(ソフト乱数レジスタ1〜n)の値を抽出し、対応する各種初期値乱数(本実施形態の場合、特図の当り図柄を決定する乱数(大当り図柄乱数)、普図の当りを決定する乱数(当り乱数)、普図の当り図柄を決定する乱数(当り図柄乱数))の初期値(スタート値)としてRWMの所定領域にセーブしてから(ステップS33)、割込みを許可する(ステップS34)。本実施形態で使用するCPU111A内の乱数生成回路においては、電源投入毎にソフト乱数レジスタの初期値が変わるように構成されているため、この値を各種初期値乱数の初期値(スタート値)とすることで、ソフトウェアで生成される乱数の規則性を崩すことができ、遊技者による不正な乱数の取得を困難にすることができる。
続いて、各種初期値乱数の値を更新して乱数の規則性を崩すための初期値乱数更新処理(ステップS35)を行う。なお、特に限定されるわけではないが、本実施形態においては、大当り乱数、大当り図柄乱数、当り乱数、当り図柄乱数は乱数生成回路において生成される乱数を使用して生成するように構成されている。ただし、大当り乱数はCPUの動作クロックと同等以上の速度のクロックを基にして更新される所謂「高速カウンタ」であり、大当り図柄乱数、当り乱数、当り図柄乱数はプログラムの処理単位であるタイマ割込み処理と同周期となるCTC出力(タイマ割込み処理のCTC(CTC0)とは別のCTC(CTC2))を基にして更新される「低速カウンタ」である。また、大当り図柄乱数、当り乱数、当り図柄乱数においては、乱数が一巡する毎に各々の初期値乱数(ソフトウェアで生成)を用いてスタート値を変更する所謂「初期値変更方式」を採用している。なお、前記各乱数は、+1或いは−1によるカウンタ式更新でもよいし、一巡するまで範囲内の全ての値が重複なくバラバラに出現するランダム式更新でもよい。つまり、大当り乱数はハードウェアのみで更新される乱数であり、大当り図柄乱数、当り乱数、当り図柄乱数はハードウェア及びソフトウェアで更新される乱数である。
上記ステップS35の初期値乱数更新処理の後、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックする回数(例えば、2回)を設定し(ステップS36)、停電監視信号がオンであるかの判定を行う(ステップS37)。停電監視信号がオンでない場合(ステップS37;N)は、初期値乱数更新処理(ステップS35)に戻る。すなわち、停電が発生していない場合には、初期値乱数更新処理と停電監視信号のチェック(ループ処理)を繰り返し行う。初期値乱数更新処理(ステップS35)の前に割り込みを許可する(ステップS34)ことによって、初期値乱数更新処理中にタイマ割込みが発生すると割込み処理が優先して実行されるようになり、タイマ割込みが初期値乱数更新処理によって待たされることで割込み処理が圧迫されるのを回避することができる。
なお、上記ステップS35での初期値乱数更新処理は、メイン処理のほか、タイマ割込み処理の中においても初期値乱数更新処理を行う方法もあり、そのような方法を採用した場合には両方で初期値乱数更新処理が実行されるのを回避するため、メイン処理で初期値乱数更新処理を行う場合には割込みを禁止してから更新して割込みを解除する必要があるが、本実施形態のようにタイマ割込み処理の中での初期値乱数更新処理はせず、メイン処理内のみにした場合には初期値乱数更新処理の前に割込みを解除しても何ら問題はなく、それによってメイン処理が簡素化されるという利点がある。
停電監視信号がオンである場合(ステップS37;Y)は、ステップS36で設定したチェック回数分停電監視信号のオン状態が継続しているかを判定する(ステップS38)。そして、チェック回数分停電監視信号のオン状態が継続していない場合(ステップS38;N)は、停電監視信号がオンであるかの判定(ステップS37)に戻る。また、チェック回数分停電監視信号のオン状態が継続している場合(ステップS38;Y)、すなわち、停電が発生していると判定した場合は、一旦割込みを禁止する処理(ステップS39)、全出力ポートにオフデータを出力する処理(ステップS40)を行う。
その後、停電検査領域1に停電検査領域チェックデータ1をセーブし(ステップS41)、停電検査領域2に停電検査領域チェックデータ2をセーブする(ステップS42)。さらに、RWMの電源遮断時のチェックサムを算出するチェックサム算出処理(ステップS43)、算出したチェックサムをセーブする処理(ステップS44)を行った後、RWMへのアクセスを禁止する処理(ステップS45)を行ってから、遊技機の電源が遮断されるのを待つ。このように、停電検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
以上のことから、遊技を統括的に制御する主制御手段(遊技制御装置100)と、該主制御手段からの指示に従い種々の制御を行う従制御手段(払出制御装置200、演出制御装置300等)と、を備える遊技機において、主制御手段は、電源投入時において、当該主制御手段の起動を遅らせて従制御装置の起動を待つための所定の待機時間を設定する待機手段(遊技制御装置100)と、当該所定の待機時間において停電の発生を監視する停電監視手段(遊技制御装置100)と、を備えていることとなる。
また、各種装置に電力を供給する電源装置400を備え、当該電源装置400は、停電の発生を検出した際に停電監視信号を出力するように構成され、停電監視手段(遊技制御装置100)は、所定期間に亘り停電監視信号を受信し続けた場合に停電が発生したと判定するようにしていることとなる。
また、主制御手段(遊技制御装置100)は、データを記憶可能なRAM111Cと、外部からの操作が可能な初期化操作部(初期化スイッチ)と、初期化操作部が操作されたことに基づきRAM111Cに記憶されたデータを初期化する初期化手段(遊技制御装置100)と、を備え、当該初期化手段の操作状態を待機時間の開始前に読み込むようにしていることとなる。
また、主制御手段(遊技制御装置100)は、待機時間の経過後にRAM111Cへのアクセスを許可するようにしていることとなる。
〔チェックサム算出処理〕
図10には、上述のメイン処理におけるチェックサム算出処理(ステップS19,S43)を示した。このチェックサム算出処理では、まず、算出アドレスの開始値としてRWMの先頭アドレスを設定し(ステップS51)、繰り返し数を設定し(ステップS52)、算出値として「0」を設定する(ステップS53)。繰り返し数には使用しているRAMのバイト数が設定される。
その後、算出アドレスの内容に算出値を加算した値を新たな算出値とし(ステップS54)、算出アドレスを+1更新して(ステップS55)、繰り返し数を−1更新し(ステップS56)、チェックサムの算出が終了したかを判定する(ステップS57)。算出が終了していない場合(ステップS57;N)は、ステップS54へ戻って上記処理を繰り返す。また、算出が終了した場合(ステップS57;Y)は、チェックサム算出処理を終了する。
〔初期値乱数更新処理〕
図11には、上述のメイン処理における初期値乱数更新処理(ステップS35)を示した。この初期値乱数更新処理では、まず、大当り図柄初期値乱数を+1更新する(ステップS61)。そして、当り初期値乱数を+1更新し(ステップS62)、当り図柄初期値乱数を+1更新して(ステップS63)、初期値乱数更新処理を終了する。
ここで、「大当り図柄初期値乱数」は、特図変動表示ゲームの大当り停止図柄を決定する乱数の初期値となる乱数のことである。また、「当り初期値乱数」は、普図変動表示ゲームの当りを決定する乱数の初期値となる乱数、「当り図柄初期値乱数」は、普図変動表示ゲームの当り停止図柄を決定する乱数の初期値となる乱数のことである。このように、メイン処理の中で時間が許す限り初期値乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにしている。
〔タイマ割込み処理〕
次に、タイマ割込み処理について説明する。図12に示すように、タイマ割込み処理は、クロックジェネレータ内のCTC回路で生成される周期的なタイマ割込み信号がCPU111Aに入力されることで開始される。遊技用マイコン111においてタイマ割込みが発生すると、自動的に割込み禁止状態になって、図12のタイマ割込み処理が開始される。
タイマ割込み処理が開始されると、まず、レジスタバンク1を指定する(ステップS101)。レジスタバンク1に切り替えたことで、所定のレジスタ(例えば、メイン処理で使っているレジスタ)に保持されている値をRWMに移すレジスタ退避の処理を行ったのと同等になる。次に、所定のレジスタ(例えば、Dレジスタ)にRAM先頭アドレスの上位アドレスをセットする(ステップS102)。ステップS102では、メイン処理におけるステップS4と同じ処理を行っているが、レジスタバンクが異なる。次に、各種センサやスイッチからの入力や、信号の取込み、すなわち、各入力ポートの状態を読み込む入力処理(ステップS103)を行う。それから、各種処理でセットされた出力データに基づき、ソレノイド(大入賞口ソレノイド38b、普電ソレノイド37c)等のアクチュエータの駆動制御などを行うための出力処理(ステップS104)を行う。
なお、メイン処理におけるステップS5で発射停止の信号を出力すると、この出力処理が行われることで発射許可の信号が出力され、発射許可信号を許可状態に設定可能な状態とされる。この発射許可信号は払出制御装置を経由して発射制御装置に出力される。その際、信号の加工等は行われない。また、当該発射許可信号は遊技制御装置から見た発射許可の状態を示す第1の信号であり、払出制御装置から見た発射許可の状態を示す第2の信号(発射許可信号)も払出制御装置内で生成され、発射制御装置に出力される。つまり、2つの発射許可信号が発射制御装置に出力されており、両者が共に発射許可となっている場合に、遊技球が発射可能な状態となるよう構成されている。
次に、各種処理で送信バッファにセットされたコマンドを払出制御装置200に出力する払出コマンド送信処理(ステップS105)、乱数更新処理1(ステップS106)、乱数更新処理2(ステップS107)を行う。その後、始動口1スイッチ36a、始動口2スイッチ37a、始動口3スイッチ97a、普図のゲートスイッチ34a、入賞口スイッチ35a、大入賞口スイッチ38aから正常な信号の入力があるか否かの監視や、エラーの監視(前面枠やガラス枠が開放されていないかなど)を行う入賞口スイッチ/状態監視処理(ステップS108)を行う。また、特図変動表示ゲームに関する処理を行う特図ゲーム処理(ステップS109)、普図変動表示ゲームに関する処理を行う普図ゲーム処理(ステップS110)を行う。
次に、遊技機10に設けられ、特図変動表示ゲームの表示や遊技に関する各種情報を表示するセグメントLEDを所望の内容を表示するように駆動するセグメントLED編集処理(ステップS111)、磁気センサ61からの検出信号をチェックして異常がないか判定する処理を行う磁石不正監視処理(ステップS112)、盤電波センサ62からの検出信号をチェックして異常がないか判定する処理を行う盤電波不正監視処理(ステップS113)を行う。それから、外部の各種装置に出力する信号を出力バッファにセットする外部情報編集処理(ステップS114)を行って、タイマ割込み処理を終了する。
ここで、本実施形態では、割込み禁止状態を復元する処理(すなわち、割込みを許可する処理)や、レジスタバンクの指定を復元する処理(すなわち、レジスタバンク0を指定する処理)は、割込みリターンの際(タイマ割込み処理の終了時)に自動的に行う。なお、使用するCPUによっては、割込み禁止状態を復元する処理やレジスタバンクの指定を復元する処理の実行を命令する必要がある遊技機もある。
〔入力処理〕
次に、上述のタイマ割込み処理における入力処理(ステップS103)の詳細について説明する。図13に示すように、入力処理においては、まず入力ポート1、すなわち、第1入力ポート122に取り込まれたスイッチの検出信号の状態を読み込む(ステップS121)。そして、8ビットのポート(入力ポート1)のうち未使用ビットがあればそのビットの状態をクリアし(ステップS122)、読み込まれた入力ポート1の状態をRWM内のスイッチ制御領域1にセーブ(格納)する(ステップS123)。
ここで、入力ポート1(第1入力ポート122)で監視するスイッチは、以下の通りである。
<1>ガラス枠開放検出スイッチ63(ビット0)
<2>本体枠開放検出スイッチ64(ビット1)
<3>RAM初期化スイッチ112(ビット2)(この処理では未使用扱い)
<4>停電監視信号(ビット3)(この処理では未使用扱い)
<5>払出異常ステータス信号(ビット4)
<6>シュート球切れスイッチ信号(ビット5)
<7>オーバーフロースイッチ信号(ビット6)
<8>タッチスイッチ信号(ビット7)
次に、入力ポート2、すなわち、第2入力ポート123のアドレスを準備して(ステップS124)、RWM内のスイッチ制御領域2のアドレスを準備する(ステップS125)。その後、8ビットのポート(入力ポート2)のうち未使用ビットがあればそのビットデータを準備し(ステップS126)、8ビットのポート(入力ポート2)のうち反転するビットがあればそのビットデータを準備して(ステップS127)、スイッチ読み込み処理(ステップS128)を行う。ここで、本実施形態において「準備」とは、レジスタに値をセットすることを意味するが、これに限らず、RWM、その他のメモリに値をセットするようにしてもよい。
ここで、入力ポート2(第2入力ポート123)で監視するスイッチは、以下の通りである。なお、入力ポート2で監視するスイッチには反転するビットは無い。
<1>始動口2スイッチ37a(ビット0)(パターン分岐により、「始動口2入賞信号」、「普通電動役物1入賞信号1」としても出力される。)
<2>始動口1スイッチ36a(ビット1)(「始動口1入賞信号」)
<3>左入賞口スイッチ(ビット2)(「普通入賞口1入賞信号」)
<4>右入賞口スイッチ(ビット3)(「普通入賞口2入賞信号」)
「左入賞口スイッチ」は、入賞装置90の左方に設けられた入賞口スイッチ35aであり、「右入賞口スイッチ」は、入賞装置90の右方に設けられた入賞口スイッチ35aである。
<5>ゲートスイッチ34a(ビット4)(「普通図柄1に係るゲート通過信号1」)
<6>大入賞口スイッチ38a(ビット5)(「特別電動役物1入賞信号1」)
<7>始動口3スイッチ97a(ビット6)(「始動口3入賞信号」)
<8>未使用(ビット7)(ゲートスイッチ予備として図示しない中継基板に回路接続され、常時オフ状態となるように中継基板上でGND接続(Low:0)固定されている。)
次に、入力ポート3、すなわち、第3入力ポート124のアドレスを準備して(ステップS129)、RWM内のスイッチ制御領域3のアドレスを準備する(ステップS130)。その後、8ビットのポート(入力ポート3)のうち未使用ビットがあればそのビットデータを準備し(ステップS131)、8ビットのポート(入力ポート3)のうち反転するビットがあればそのビットデータを準備して(ステップS132)、スイッチ読み込み処理(ステップS133)を行い、入力処理を終了する。
ここで、入力ポート3(第3入力ポート124)で監視するスイッチは、以下の通りである。
<1>盤電波センサ62(ビット0)(反転ビット)
<2>スイッチ異常検知信号(ビット1)
<3>磁気センサ61(ビット2)
<4>枠電波エラー信号(ビット3)
<5>払出ビジー信号(ビット4)
<6>未使用(ビット5〜7)
なお、未使用のビットデータや反転するビットデータは、入力ポート毎に準備されている。
したがって、ステップS126で準備する入力ポート2の未使用ビットデータと、ステップS131で準備する入力ポート3の未使用ビットデータとは、異なるデータであるが、結果として同じ値のデータである可能性もある。
また、ステップS127で準備する入力ポート2の反転するビットデータと、ステップS132で準備する入力ポート3の反転するビットデータとは、異なるデータであるが、結果として同じ値のデータである可能性もある。
〔スイッチ読み込み処理〕
次に、上述の入力処理におけるスイッチ読み込み処理(ステップS128,S133)の詳細について説明する。図14に示すように、スイッチ読み込み処理においては、まず、対象の入力ポートに取り込まれた信号の状態を読み込む(ステップS141)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアし(ステップS142)、反転の必要なビットを反転(ステップS143)した後、対象のスイッチ制御領域のポート入力状態にセーブ(格納)する(ステップS144)。その後、2回目の読み込みまでのディレイ時間(例えば、約100μ秒)が経過するのを待つ(ステップS145)。
ディレイ時間が経過すると、対象の入力ポートに取り込まれた信号の状態の2回目の読み込みを行う(ステップS146)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアし(ステップS147)、反転の必要なビットを反転(ステップS148)した後、対象のスイッチ制御領域のポート入力状態(1回目のデータ)をロードし、反転後データ(2回目のデータ)をセーブ(格納)する(ステップS149)。その後、1回目と2回目の読み込みで状態が同じビットを1、違うビットを0とした確定ビットパターンを作成し(ステップS150)、確定ビットパターンとポート入力状態(2回目のデータ)との論理積をとり、今回確定ビットとする(ステップS151)。
次に、1回目と2回目の読み込みで状態が同じビットを0、違うビットを1とした未確定ビットパターンを作成し(ステップS152)、未確定ビットパターンと前回割込み時の確定状態との論理積をとり、前回保持ビットとする(ステップS153)。これにより、スイッチのチャタリング等によるノイズを除去した信号の状態を得ることができる。そして、今回確定ビットと前回保持ビットを合成し、今回の確定状態としてセーブして(ステップS154)、前回と今回の確定状態との排他的論理和をとり、立上りエッジとしてセーブし(ステップS155)、スイッチ読み込み処理を終了する。
なお、スイッチの読み込みは、タイマ割込みの周期が短い場合(例えば、2m秒)には、各割込みの処理ごとにそれぞれ1回ずつスイッチの読み込みを行って前回の読み込みの結果と比較することで信号が変化したか否か判定する方法があるが、そのようにすると次の割込み処理までに前回の割込みで読み込んだスイッチの状態が失われた場合、正しい判定が行えないおそれがある。これに対し、本実施形態のように、所定の時間差をおいて1回の割込み処理の中で2回のスイッチ読み込み処理を行うことで、上記のような不具合を回避することが可能となる。
〔出力処理〕
次に、前述のタイマ割込み処理における出力処理(ステップS104)の詳細について説明する。図15に示すように、出力処理では、まず、一括表示装置(LED)50のセグメントのデータを出力する出力ポート135にオフデータを出力(リセット)する(ステップS161)。次に、普電ソレノイド37cや大入賞口ソレノイド38bのデータを出力する出力ポート134に出力するデータを合成し、出力する(ステップS162)。
そして、一括表示装置(LED)50のデジット線を順次スキャンするためのデジットカウンタの値を更新して(ステップS163)、デジットカウンタの値に対応するLEDのデジット線の出力データを取得する(ステップS164)。本実施形態の場合、デジットカウンタの値は0から3の範囲で+1更新される。次いで、取得したデータと外部情報データを合成して(ステップS165)、合成したデータ(例えば、「扉・枠開放」のデータ、「セキュリティ信号」のデータ)をデジット・外部情報出力用の出力ポート136に出力する(ステップS166)。
その後、デジットカウンタの値に対応するRWM内のセグメント領域からセグメント線の出力データをロードし(ステップS167)、ロードしたデータをセグメント出力用の出力ポート135に出力する(ステップS168)。本実施形態では、デジットカウンタの値が0の場合に、特図1表示器51aのデジット線及びセグメント線が選択され、デジットカウンタの値が1の場合に、特図2表示器51bのデジット線及びセグメント線が選択される。また、デジットカウンタの値が2の場合に、普図表示器52のデジット線及びセグメント線が選択され、デジットカウンタの値が3の場合に、特図1保留表示器53、特図2保留表示器54、普図保留表示器55、右打ち報知部56、時短状態報知部57、確率状態表示部58、及びラウンド表示部59のデジット線及びセグメント線が選択される。これにより、一括表示装置50に設けられた複数の発光表示部がダイナミック制御によって制御されることとなる。
続いて、外部情報の各種出力データを合成し(ステップS169)、合成したデータ(例えば、「大当り信号1」のデータ、「大当り信号2」のデータ、「大当り信号3」のデータ、「大当り信号4」のデータ、「図柄確定回数信号」のデータ、「始動口信号」のデータ、「メイン賞球信号」のデータ)と発射許可の出力データを合成して(ステップS170)、合成したデータを外部情報・発射許可信号出力用の出力ポート137へ出力する(ステップS171)。次に、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート1に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート1へ合成したデータを出力する(ステップS172)。その後、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート2に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート2へ合成したデータを出力する(ステップS173)。
次に、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート3に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート3へ合成したデータを出力する(ステップS174)。さらに、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート4に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート4へ合成したデータを出力する(ステップS175)。そして、試射試験装置への試験信号を出力する中継基板70上の試験端子出力ポート5に出力するデータをロードして合成し、中継基板70上の試験端子出力ポート5へ合成したデータを出力して(ステップS176)、出力処理を終了する。
なお、各デジット線に対応するセグメント線の出力データは、後述する処理においてRAM111C(RWM)内に設けられた各表示器用のセグメント領域に設定されるようになっている。具体的には、図25に示す特図ゲーム処理や図53に示す普図ゲーム処理における図柄変動制御処理(図51参照)や、図64に示すセグメントLED編集処理において設定される。
一回のタイマ割込み処理においてはこれらの処理の全てが行われるため、RAM111Cにはデジットカウンタの値にかかわらず全てセグメント線に対応する出力データがセグメント領域に設定される。そして、このように設定されたセグメント線の出力データのうち、今回のデジットカウンタの値に応じたセグメント線の出力データが選択されて使用されるようになっている。
また、上述したようにRAM111Cは遊技機への電力の供給が停止されても記憶されたデータを保持することができるようにされている。そして、RAM111Cにおいてセグメント線の出力データを記憶するセグメント領域やデジットカウンタの値を記憶する領域は、遊技機への電力の供給が停止した際に実行されるチェックサム算出処理においてチェックサムの算出対象となる領域に含まれている。よって、遊技機への電力の供給が再開された際に行われる正当性の判定の対象とされる。これにより、停電から正常に遊技機が復旧した場合には停電発生時の状態から一括表示装置50の表示を再開可能となる。
以上のことから、始動条件の成立に基づき、変動表示ゲームを実行する遊技機において、遊技を統括的に制御する遊技制御手段(遊技制御装置100)と、遊技制御手段に制御されて遊技に関する表示を行う表示装置(一括表示装置50)と、を備え、表示装置は、複数の発光表示部(特図1表示器51a、特図2表示器51b、普図表示器52、特図1保留表示器53、特図2保留表示器54、普図保留表示器55、右打ち報知部56、時短状態報知部57、確率状態表示部58、及びラウンド表示部59)を備え、遊技制御手段は、遊技機への電力の供給が停止された状態でもデータを保持可能な記憶手段(RAM111C)と、遊技機への電力の供給が開始された際に記憶手段に記憶されている所定のデータの正当性を判定する正当性判定手段(遊技制御装置100)と、を備え、正当性判定手段により正当性が確認された場合には記憶手段に記憶されていたデータに基づき遊技を再開するように構成され、所定間隔で実行されるタイマ割込みにおいて、複数の発光表示部のコモン線(デジット線)を選択するための情報であるデジットカウンタを更新し、デジットカウンタの値に応じたセグメントデータを表示装置に出力するダイナミック制御により複数の発光表示部の表示制御を行い、タイマ割込み処理では、デジットカウンタの値にかかわらず各コモン線に対応するセグメントデータの全てを生成して記憶手段に記憶し、当該記憶されたセグメントデータのうちからデジットカウンタの値に応じたセグメントデータのみを使用するように構成され、正当性判定手段が正当性の判定対象とする所定のデータには、少なくとも記憶手段に記憶された各コモン線に対応するセグメントデータの全てが含まれていることとなる。
したがって、正当性判定手段が正当性の判定対象とする所定のデータには、少なくとも記憶手段に記憶された各コモン線に対応するセグメントデータの全てが含まれるので、遊技機への電力の供給が開始された際に遊技機への電力の供給が停止された状態から遊技を開始でき、違和感のない変動表示ゲームの表示が可能となる。
また、遊技制御手段は、各々始動条件が異なる複数種類の変動表示ゲーム(第1特図変動表示ゲーム、第2特図変動表示ゲーム、普図変動表示ゲーム)を実行可能であり、表示装置は、複数種類の変動表示ゲームの各々に対応して、複数の発光部により構成される発光表示部を複数備え、当該複数の発光表示部はそれぞれ異なるコモン線に対応するものであることとなる。
したがって、複数種類の変動表示ゲームの何れであっても遊技機への電力の供給が開始された際に遊技機への電力の供給が停止された状態から遊技を開始でき、違和感のない変動表示ゲームの表示が可能となる。
〔払出コマンド送信処理〕
次に、前述のタイマ割込み処理における払出コマンド送信処理(ステップS105)の詳細について説明する。図16に示すように払出コマンド送信処理では、まず、入賞数カウンタ領域2にカウントがあるかをチェックする(ステップS181)。
入賞数カウンタ領域は遊技制御装置100のRAM111Cに設けられ、入賞数カウンタ領域1と入賞数カウンタ領域2が設けられている。入賞数カウンタ領域1は、払出制御装置200に対して賞球の払い出しを指示するための払出コマンド(賞球指令)を送信するために用いる領域であって、払出コマンドを未だ送信していない賞球に対応する入賞のデータが記憶される。すなわち、入賞数カウンタ領域1が、賞球指令に関する情報を記憶可能な賞球指令カウンタをなす。
入賞数カウンタ領域2は、入賞口への入賞により発生した賞球数(払出予定数)が所定数(ここでは10個)になる毎に外部装置へ出力するメイン賞球信号を送信するために用いる領域であって、メイン賞球信号の生成処理を行っていない賞球に対応する入賞のデータが記憶される。すなわち、入賞数カウンタ領域2が、メイン賞球信号に関する情報を記憶可能なメイン賞球信号カウンタをなす。なお、外部装置には、このメイン賞球信号の他に、払出制御装置200からも実際に払い出した賞球数が所定数(ここでは10個)になる毎に払出賞球信号が出力されるようになっており、この二つの信号を照合することで、不正な払い出しを監視することが可能となっている。
これらの入賞数カウンタ領域にはそれぞれ、各入賞口に対して設定された賞球数別(本実施形態の場合、3個賞球、10個賞球、14個賞球)に入賞数カウンタ領域が設けられており、入賞口への入賞に基づき対応する入賞数カウンタ領域のカウント数が1加算されるようになっている。つまり、入賞領域への一の入賞を単位として当該入賞の情報を記憶可能とされている。なお、入賞数カウンタ領域1は入賞数カウンタ領域2よりも広い領域が割り当てられ、より多くの入賞のデータを記憶できるようにされている。これは、メイン賞球信号が送信先の状態に関係なく送信可能であるのに対し、払出コマンドが送信先である払出制御装置200の状態により送信を保留する場合もあり、より多くの未送信データが蓄積される可能性があるためである。
具体的には、本実施形態の場合、入賞数カウンタ領域1の3個賞球カウンタ領域、10個賞球カウンタ領域、及び14個賞球カウンタ領域には、それぞれ65535入賞まで記憶することができ、入賞数カウンタ領域2の3個賞球カウンタ領域、10個賞球カウンタ領域、及び14個賞球カウンタ領域には、それぞれ255入賞まで記憶することができるよう構成されている。
入賞数カウンタ領域2にカウントがあるかをチェックする処理(ステップS181)においては、賞球数別に設けられた複数の入賞数カウンタ領域のうち、チェック対象とされた入賞数カウンタ領域に「0」でないカウント数があるかを判定する。そして、カウント数がない場合(ステップS181;N)は、チェック対象となる入賞数カウンタ領域2のアドレスを更新し(ステップS182)、すべての入賞数カウンタ領域のカウント数のチェックが終了したかを判定する(ステップS183)。この判定で、すべてのチェックが終了した(ステップS183;Y)と判定すると、ステップS192に移行する。一方、すべてのチェックが終了していない(ステップS183;N)と判定すると、ステップS181へ戻って上記処理を繰り返す。本実施形態の場合、3個賞球カウンタ領域→10個賞球カウンタ領域→14個賞球カウンタ領域の順にチェック対象となる入賞数カウンタ領域2のアドレスを更新する。
また、上記ステップS181で、カウント数がある(ステップS181;Y)と判定した場合には、対象の入賞数カウンタ領域のカウント数を−1更新し(ステップS184)、対象の入賞数カウンタ領域2のアドレスに対応する払出数を取得する(ステップS185)。そして、賞球残数領域の値と取得した払出数を加算し(ステップS186)、加算結果を賞球残数領域にセーブする(ステップS187)。なお、この処理の前における賞球残数領域の値としては、メイン賞球信号の出力の基準となる所定数に満たなかった端数が記憶されている。
その後、加算結果から10を減算して(ステップS188)、減算結果が0以上かを判定し(ステップS189)、0以上でない場合(ステップS189;N)は、ステップS192の処理に移行する。また、0以上である場合(ステップS189;Y)は、メイン賞球信号出力回数領域の値を+1更新する(ステップS190)。すなわち、賞球残数が10個になる度に、メイン賞球信号の出力回数を+1更新する。
そして、減算結果を賞球残数領域にセーブして(ステップS191)、ステップS188の処理に戻る。これにより、ホールコンピュータなどの外部の装置にメイン賞球信号が出力されるようになる。すなわち、遊技制御装置100が、所定の入賞領域への遊技球の入賞に伴い払い出しが決定された賞球数に関する情報を含むメイン賞球信号を遊技機の外部に出力する外部情報出力手段をなす。なお、メイン賞球信号を出力するようにすることで、大当り中などの遊技球の払い出しが集中する場合に、遊技球の払い出しとともに賞球信号の出力が遅延して、大当り中に発生した正確な賞球数が計数することができないといった不具合を防止することができる。
ここで、ステップS181〜S191の処理は、メイン賞球信号の出力回数を更新する(増やす)処理であり、ステップS192〜S201の処理は、払出コマンドを送信する処理である。
ステップS192では、払出コマンド送信タイマが「0」でなければ−1更新し(ステップS192)、払出コマンド送信タイマが「0」になったかを判定する(ステップS193)。払出コマンド送信タイマが「0」でない場合(ステップS193;N)は、払出コマンド送信処理を終了する。また、払出コマンド送信タイマが「0」である場合(ステップS193;Y)は、払出ビジー信号フラグをチェックして、払出ビジー信号がビジー状態であるかを判定する(ステップS194)。
払出ビジー信号は払出制御装置200が払出制御を即座に開始可能な状態か否かを示す信号であって、払出制御を即座に開始可能でない場合には払出ビジー信号がオン状態(ビジー状態)とされる。つまり、払出ビジー信号は、払出コマンド(賞球指令)を受付可能な状態であるか否かを示す信号とも言える。すなわち、払出ビジー信号が、払出制御手段(払出制御装置200)が払出制御を開始可能であるか否を示す状態信号をなす。
この払出ビジー信号がビジー状態である場合(ステップS194;Y)は、払出コマンド送信処理を終了する。すなわち、本実施形態では、タイマ割込み毎に払出コマンドを送信するのではなく、所定時間が経過し(払出コマンド送信タイマの値が0になり)、且つ、払出制御装置200側が賞球を払い出せる状態である場合に、払出コマンドを送信するよう構成されている。このように払出制御装置200が払出制御を即座に開始可能でなく、払出コマンドを送信しない場合は、払出コマンドの送信に関する以降の処理を行わないようにすることで、無駄な処理を行うことを防止し制御の負担を軽減するようにしている。
払出ビジー信号がオン状態(ビジー状態)になる条件は、例えば、払出動作中、球貸し動作中、シュート球切れエラー中、オーバーフローエラー中、枠電波不正発生中、払出球検出スイッチ(払い出された球を監視するスイッチ)の異常中、払出不足エラー中、払出過剰エラー中、払出制御装置200のメモリ内に払い出すべき賞球数のカウント(未払い出しの賞球数=獲得遊技球数残)があるとき(=0でないとき)等である。
払出ビジー信号がビジー状態でない場合(ステップS194;N)は、入賞数カウンタ領域1にカウントがあるかをチェックする(ステップS195)。入賞数カウンタ領域1にカウントがあるかをチェックする処理(ステップS195)においては、賞球数別に設けられた複数の入賞数カウンタ領域のうち、チェック対象とされた入賞数カウンタ領域に「0」でないカウント数があるかを判定する。
そして、カウント数がない場合(ステップS195;N)は、チェック対象となる入賞数カウンタ領域1のアドレスを更新し(ステップS196)、すべての入賞数カウンタ領域のカウント数のチェックが終了したかを判定する(ステップS197)。この判定で、すべてのチェックが終了した(ステップS197;Y)と判定すると、払出コマンド送信処理を終了する。一方、すべてのチェックが終了していない(ステップS197;N)と判定すると、ステップS195へ戻って上記処理を繰り返す。本実施形態の場合、3個賞球カウンタ領域→10個賞球カウンタ領域→14個賞球カウンタ領域の順にチェック対象となる入賞数カウンタ領域1のアドレスを更新する。
また、上記ステップS195で、カウント数がある(ステップS195;Y)と判定した場合には、対象の入賞数カウンタ領域のカウント数を−1更新し(ステップS198)、対象の入賞数カウンタ領域1のアドレスに対応する払出数コマンドを取得する(ステップS199)。そして、取得した払出数コマンドを払出用シリアル送信バッファに書き込み(ステップS200)、払出コマンド送信タイマ領域に初期値をセーブして(ステップS201)、払出コマンド送信処理を終了する。払出コマンド送信タイマは送信間隔を管理するためのもので、初期値として、例えば200m秒が設定される。
これにより、入賞領域への一の入賞を単位とした払出コマンド(賞球指令)が生成され、払出制御装置200に送信されるようになる。払出制御装置200はこの払出コマンドに基づき所定数の賞球を払い出す制御を行う。すなわち、遊技制御装置100が、払出制御手段(払出制御装置200)から出力される当該払出制御手段が払出制御を開始可能であるか否を示す状態信号が払出制御を開始可能であることを示している場合に賞球指令を払出制御手段に送信する賞球指令送信手段をなす。
このように遊技制御装置100が、払出制御装置200から出力される状態信号に基づいて賞球指令を送信する制御を行うので、払出制御装置200が即座に払出制御を実行可能な場合にのみ賞球指令が送信されることとなる。これにより、未だ払い出しが行われていない入賞に対応するデータは遊技制御装置100側で保持されるようになるので停電発生時には遊技制御装置100でバックアップされるようになり、払出制御装置200にバックアップするための機能を備えなくとも正確な払出制御を実現できる。
従来の遊技機(例えば、特開2000−312759号公報の遊技機)では、何らかの原因により電源の遮断状態が発生した場合、払出制御装置200は自身の記憶手段にデータをバックアップし、電源遮断直前のデータによる払出制御状態を維持するようにしている。しかしながら、従来の遊技機では、バックアップするための機能が必要となるため、コストアップにつながるという問題があった。本発明によれば、払出制御装置200にバックアップするための機能を備えなくとも正確な払出制御を実現できるようにすることができる。
また、外部の装置に送信されるメイン賞球信号は払出ビジー信号の状態に関係なく出力されるので、遅滞なくメイン賞球信号を出力でき、ホールコンピュータなどの外部の装置では賞球の払い出しの時期を正確に把握でき、例えばベース値を正確に把握できるようになる。また、賞球指令に関する情報を記憶可能な賞球指令カウンタと、メイン賞球信号に関する情報を記憶可能なメイン賞球信号カウンタとを別々に備えるので、送信タイミングが異なる賞球指令とメイン賞球信号の情報を別々に管理でき、情報を確実に管理することができる。
以上のことから、統括的に遊技制御を行うとともに、遊技領域32に設けられた入賞領域(第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37、一般入賞口35、特別変動入賞装置38)への遊技球の入賞に基づいて賞球指令を送信する遊技制御手段(遊技制御装置100)と、遊技制御手段から送信される賞球指令に基づいて、遊技球の払出制御を行う払出制御手段(払出制御装置200)と、を備え、遊技制御手段は、払出制御手段から出力される当該払出制御手段が払出制御を開始可能であるか否を示す状態信号(ビジー信号)に基づいて賞球指令を払出制御手段に送信する制御を行い、停電が発生し該停電から復帰した場合には、払出制御手段から払出制御を開始可能であることを示す状態信号が出力されていたとしても、直ちに賞球指令を払出制御手段に送信せず、払出制御手段から払出制御を開始可能であることを示す状態信号が所定期間に亘って継続して出力されたことに対応して賞球指令を払出制御手段に送信するようにしていることとなる。
また、遊技領域32に賞球数の異なる入賞領域(第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37、一般入賞口35、特別変動入賞装置38)を複数設け、遊技制御手段(遊技制御装置100)は、賞球数毎に、遊技球の払出制御を指示する賞球指令の未送信の有無を特定可能な賞球指令カウンタ(遊技制御装置100)を備え、状態信号が払出制御を開始可能であることを示し、かつ、各賞球指令カウンタに未送信の賞球指令がある場合に、賞球指令を払出制御手段(払出制御装置200)に送信するようにし、状態信号が当該払出制御手段が払出制御を開始可能であるか否かの特定を、各賞球指令カウンタに未送信の賞球指令があるか否かの特定よりも先に行うようにしていることとなる。
また、統括的に遊技制御を行うとともに、所定の入賞領域(第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37、一般入賞口35、特別変動入賞装置38)への遊技球の入賞に基づいて賞球指令を送信する遊技制御手段(遊技制御装置100)と、遊技制御手段から送信される賞球指令に基づいて、遊技球の払出制御を行う払出制御手段(払出制御装置200)と、を備え、遊技制御手段は、払出制御手段から出力される当該払出制御手段が払出制御を開始可能であるか否を示す状態信号が払出制御を開始可能であることを示している場合に賞球指令を払出制御手段に送信する賞球指令送信手段(遊技制御装置100)と、所定の入賞領域への遊技球の入賞に伴い払い出しが決定された賞球数に関する情報を含む賞球信号(メイン賞球信号)を遊技機の外部に出力する外部情報出力手段(遊技制御装置100)と、を備え、外部情報出力手段は、払出制御手段から出力される状態信号が、払出制御手段が払出制御を開始可能であるか否かに関係なく賞球信号の出力を行うようにしたこととなる。
また、賞球指令送信手段(遊技制御装置100)は、停電が発生し該停電から復帰した場合には、状態信号が払出制御を開始可能であることを示していたとしても、直ちに賞球指令を払出制御手段(払出制御装置200)に送信せず、状態信号が払出制御を開始可能であることを示している状態が所定期間に亘って継続していることに対応して賞球指令を払出制御手段に送信するようにしたこととなる。
また、遊技制御手段(遊技制御装置100)は、賞球指令に関する情報を記憶可能な賞球指令カウンタ(遊技制御装置100)と、賞球信号(メイン賞球信号)に関する情報を記憶可能な賞球信号カウンタ(遊技制御装置100)と、を備え、賞球指令送信手段(遊技制御装置100)は、所定の入賞領域(第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37、一般入賞口35、特別変動入賞装置38)への一の入賞を単位として賞球指令を生成し、状態信号が払出制御を開始可能であることを示している場合に一の賞球指令を払出制御手段(払出制御装置200)に送信するように構成され、賞球指令カウンタ(遊技制御装置100)は、所定の入賞領域への一の入賞を単位として当該入賞の情報を記憶可能であり、所定の入賞領域への遊技球の入賞時に更新を行うとともに、払出制御手段への賞球指令への送信に対応させて更新を行うことで、送信していない賞球指令の数を記憶可能とし、外部情報出力手段は、所定の入賞領域への遊技球の入賞に伴い払い出しが決定された賞球数を累積し、累積値が所定数に達する毎に賞球信号を遊技機の外部に出力するように構成され、賞球信号カウンタは、所定の入賞領域への一の入賞を単位として当該入賞の情報を記憶可能であり、所定の入賞領域への遊技球の入賞時に更新を行うとともに、外部情報出力手段による賞球数の累積処理に対応させて更新を行うことで、未だ累積処理を行っていない賞球数を記憶可能であることとなる。
〔乱数更新処理1〕
図17には、タイマ割込み処理における乱数更新処理1(ステップS106)を示した。乱数更新処理1は、初期値乱数更新処理の対象となっている大当り図柄乱数、当り乱数、当り図柄乱数の初期値(スタート値)を更新するための処理である。この乱数更新処理1では、まず、大当り図柄乱数が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS211)。
大当り図柄乱数が初期値設定待ちでない場合(ステップS211;N)は、普図の当り乱数が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS214)。また、大当り図柄乱数が初期値設定待ちである場合(ステップS211;Y)は、次回初期値として大当り図柄初期値乱数をロードし(ステップS212)、ロードした大当り図柄乱数の次回の初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定して(ステップS213)、普図の当り乱数が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS214)。
普図の当り乱数が初期値設定待ちでない場合(ステップS214;N)は、普図の当り図柄乱数が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS217)。また、普図の当り乱数が初期値設定待ちである場合(ステップS214;Y)は、次回初期値として当り初期値乱数をロードし(ステップS215)、ロードした普図の当り乱数の次回の初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定して(ステップS216)、普図の当り図柄乱数が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS217)。
普図の当り図柄乱数が初期値設定待ちでない場合(ステップS217;N)は、乱数更新処理1を終了する。また、普図の当り図柄乱数が初期値設定待ちである場合(ステップS217;Y)は、次回初期値として当り図柄初期値乱数をロードし(ステップS218)、ロードした普図の当り図柄乱数の次回の初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定して(ステップS219)、乱数更新処理1を終了する。
〔乱数更新処理2〕
図18には、タイマ割込み処理における乱数更新処理2(ステップS107)を示した。乱数更新処理2は、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する処理である。なお、本実施形態の遊技機では、変動パターン乱数として1バイトの乱数(変動パターン乱数2、3)と、2バイトの乱数(変動パターン乱数1)があり、乱数更新処理2は両方を更新対象とし、割込みが発生するごとに更新対象を切り替えて処理する。しかも、更新対象の乱数が2バイトの場合には、上位のバイトと下位のバイトに対して異なる割込み時に更新処理を行うようになっている。すなわち、メイン処理に対する一の割込み処理において実行される乱数更新処理2による2バイトの変動パターン乱数1(リーチ変動態様決定用乱数)の更新は、上位1バイト若しくは下位1バイトの何れかについて実行されるように構成されている。
この乱数更新処理2では、まず、更新すべき複数の乱数のうちいずれの乱数を今回の更新処理の対象とするかを順番に指定するための乱数更新スキャンカウンタを更新する(ステップS231)。本実施形態の場合、乱数更新スキャンカウンタの値は0から3の範囲で更新される。そして、乱数更新スキャンカウンタの値が「0」のときは変動パターン乱数1(上位)が更新され、「1」のときは変動パターン乱数1(下位)が更新され、「2」のときは変動パターン乱数2が更新され、「3」のときは変動パターン乱数3が更新される。次に、乱数更新スキャンカウンタの値に対応する演出乱数更新テーブルのアドレスを算出する(ステップS232)。
次いで、算出されたアドレスに基づいて参照したテーブルから乱数の上限判定値を取得する(ステップS234)。このとき参照するテーブルには、乱数の種類ごとに上限判定値、すなわち、乱数が一巡したか否かを判定するための値が格納されている。
続いて、例えば本実施形態において遊技用マイコンとして使用しているCPUには、DRAMのリフレッシュ等のため使用されるリフレッシュレジスタ(以下、「Rレジスタ」と称する)が設けられておらず、その代わりに、Rレジスタと同等の動作をする「M1カウンタ」というカウンタを内蔵しているが、そのM1カウンタの値をロードする(ステップS234)。M1カウンタの値を使用することで、乱数にランダム性を付与することができる。次に、M1カウンタの値をマスクするためのマスク値を取得し、M1カウンタの値をマスクする(ステップS235)。なお、マスク値は、更新対象の乱数によって異なるビット数、例えば、変動パターン乱数1の下位1バイトを更新する場合には、M1カウンタの下位3ビットに、また、変動パターン乱数1の上位1バイトを更新する場合には、M1カウンタの下位4ビットに設定されている。乱数の種類によって上限値が異なるためである。なお、マスク値として、変動パターン乱数1の下位1バイトを更新する場合には、M1カウンタの下位3ビットを、また、変動パターン乱数1の上位1バイトを更新する場合には、M1カウンタの下位4ビットを例示したが、数値は一例であってこれに限られるものではない。
次に、更新する乱数領域(乱数カウンタ)が2バイト乱数の上位1バイトであるかを判定する(ステップS236)。そして、乱数領域が2バイト乱数の上位1バイトである場合(ステップS236;Y)は、加算値として、上位1バイトをマスク値によってM1カウンタの値をマスクすることによって残った値(以下、これを「マスクした値」と称する)に「1」を加算したマスク更新値に設定し、下位1バイトを「0」に設定して(ステップS237)、ステップS239に進む。また、乱数領域が2バイト乱数の上位1バイトでない場合(ステップS236;N)は、加算値として、上位1バイトを「0」に設定し、下位1バイトを上記マスク更新値に設定して(ステップS238)、ステップS239に進む。なお、マスクした値に「1」を加算するのは、マスクした値が「0」になる場合があり、「0」を後に加算すると加算する前の値から変化しないので、それを避けるためである。
そして、更新する乱数領域が2バイト乱数かを判定し(ステップS239)、2バイト乱数である場合(ステップS239;Y)は、更新する乱数領域の値(2バイト)を設定して(ステップS240)、ステップS242に進む。また、更新する乱数領域が2バイト乱数でない場合(ステップS239;N)は、乱数値の上位1バイトとして「0」を設定し、乱数値の下位1バイトとして、更新する乱数領域の値(1バイト)を設定し(ステップS241)、ステップS242へ進む。
ステップS242では、乱数値にステップS237又はS238で決定した加算値を加算した値を新たな乱数値とし、この新たな乱数値がステップS233で取得した上限判定値よりも大きいかを判定する(ステップS243)。そして、新たな乱数値が上限判定値より大きくない場合(ステップS243;N)は、新たな乱数値を1バイト乱数又は2バイト乱数の下位の乱数領域にセーブする(ステップS245)。また、新たな乱数値が上限判定値より大きい場合(ステップS243;Y)は、新たな乱数値から上限判定値を減算した値を再度の新たな乱数値とし(ステップS244)、この値を1バイト乱数又は2バイト乱数の下位の乱数領域にセーブする(ステップS245)。
次に、更新した乱数領域が2バイト乱数であるかを判定し(ステップS246)、2バイト乱数でない場合(ステップS246;N)は、乱数更新処理2を終了する。また、2バイト乱数である場合(ステップS246;Y)は、新たな乱数値(再度の新たな乱数値を算出した場合はその値)を2バイト乱数の上位の乱数領域にセーブし(ステップS247)、乱数更新処理2を終了する。
本実施形態の場合、演出乱数更新テーブル上に、上限判定値や、M1カウンタのマスク値、更新する乱数領域の種別情報(1バイト乱数、2バイト乱数(上位)、2バイト乱数(下位))、更新領域のアドレスなどが、更新する乱数の種類分(4ブロック)定義されている。
このように、CPU111Aは、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する。従って、CPU111Aは、第1始動入賞口36や第2始動入賞口97や普通変動入賞装置37の始動領域への遊技球の流入に基づいて抽出される各種乱数のうち、特図変動表示ゲームの変動態様(変動パターン)を決定するための変動パターン乱数を更新する乱数更新手段をなす。
〔入賞口スイッチ/状態監視処理〕
図19には、タイマ割込み処理における入賞口スイッチ/状態監視処理(ステップS108)を示した。この入賞口スイッチ/状態監視処理では、まず、大入賞口(特別変動入賞装置38)内の一方の大入賞口スイッチ38aに対応する入賞口監視テーブル1を準備し(ステップS301)、大入賞口が開いていないにもかかわらず大入賞口に不正な入賞がないか監視するとともに正常な入賞を検出する不正&入賞監視処理(ステップS302)を実行する。
その後、大入賞口(特別変動入賞装置38)内の他方の大入賞口スイッチ38aに対応する入賞口監視テーブル2を準備し(ステップS303)、不正な入賞がないか監視するとともに正常な入賞を検出する不正&入賞監視処理(ステップS304)を実行する。
入賞口監視テーブルには、対象のスイッチに入力があるかを判定するデータの位置を示す監視スイッチビット、不正監視情報の下位アドレス、不正入賞数領域の下位アドレス、不正入賞エラー報知コマンド、不正入賞数上限値(不正発生判定個数)、入賞口スイッチテーブルのアドレス、報知タイマ更新情報(許可/更新)の情報が定義されている。また、入賞口監視テーブルのうちの入賞テーブルには、監視の繰り返し回数(スイッチの数)に加えて、各スイッチ毎に、監視スイッチビット、入賞数カウンタ領域1の下位アドレス、入賞数カウンタ領域2の下位アドレスの情報が定義されている。入賞口監視テーブルは、監視対象のスイッチのそれぞれに応じたものが用意されている。
次に、普電内の入賞口スイッチ(始動口2スイッチ37a)の入賞口監視テーブルを準備し(ステップS305)、不正な入賞がないか監視するとともに正常な入賞を検出する不正&入賞監視処理(ステップS306)を実行する。そして、常時入賞可能(不正監視処理が不要)な入賞口スイッチ(例えば、始動口1スイッチ36a、始動口3スイッチ97a、一般入賞口35の入賞口スイッチ35a(左入賞口スイッチ、右入賞口スイッチ))の入賞口監視テーブルを準備し(ステップS307)、入賞数を更新する入賞数カウンタ更新処理(ステップS308)を行って、始動口エラー監視処理(ステップS309)を行う。
次に、状態を監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するための状態スキャンカウンタを更新する(ステップS310)。本実施形態の場合、状態スキャンカウンタは0から3の範囲で更新される。その後、状態スキャンカウンタの値に応じて、監視する状態を設定するための遊技機状態監視テーブル1を準備する(ステップS311)。そして、エラーが発生しているかなどの状態を判定する遊技機状態チェック処理(ステップS312)を行う。
本実施形態の場合、状態スキャンカウンタの値を遊技機状態監視テーブル1に参照することで、状態スキャンカウンタの値が「0」である場合はスイッチのコネクタ抜けなどの発生により出力されるスイッチ異常1信号に基づく状態の監視が設定され、状態スキャンカウンタの値が「1」である場合は払出制御装置200からのシュート球切れスイッチ信号に基づく状態の監視が設定される。状態スキャンカウンタの値が「2」である場合はオーバーフロースイッチ信号に基づく状態の監視が設定され、状態スキャンカウンタの値が「3」である場合は払出異常ステータス信号に基づく状態の監視が設定される。
次に、状態スキャンカウンタの値に応じて、監視する状態を設定するための遊技機状態監視テーブル2を準備する(ステップS313)。そして、エラーが発生しているかなどの状態を判定する遊技機状態チェック処理(ステップS314)を行う。
本実施形態の場合、状態スキャンカウンタの値を遊技機状態監視テーブル2に参照することで、状態スキャンカウンタの値が「0」である場合はガラス枠開放検出スイッチ63から出力される信号に基づく状態の監視が設定され、状態スキャンカウンタの値が「1」である場合は本体枠開放検出スイッチ64から出力される信号に基づく状態の監視が設定される。また、状態スキャンカウンタの値が「2」である場合は枠電波不正信号に基づく状態の監視が設定され、状態スキャンカウンタの値が「3」である場合はタッチスイッチ信号に基づく状態の監視が設定される。
次に、状態スキャンカウンタの値が「0」であるかを判定し(ステップS315)、エラースキャンカウンタの値が「0」でない場合(ステップS315;N)は、入賞口スイッチ/状態監視処理を終了する。この場合は、次に参照する遊技機状態監視テーブル3に状態の監視対象がない場合である。また、エラースキャンカウンタの値が「0」である場合(ステップS315;Y)は、遊技機状態監視テーブル3を準備し(ステップS316)、エラーが発生しているかなどの状態を判定する遊技機状態チェック処理(ステップS317)を行う。
本実施形態の場合、状態スキャンカウンタの値を遊技機状態監視テーブル3に参照することで、状態スキャンカウンタの値が「0」である場合はスイッチのコネクタ抜けなどの発生により出力されるスイッチ異常2信号に基づく状態の監視が設定される。なお、遊技機状態監視テーブル3には状態スキャンカウンタが「1」から「3」の場合は定義されていない。
その後、払出制御装置200が払出制御を開始可能であるかを示す払出ビジー信号をチェックする払出ビジー信号チェック処理(ステップS318)を行って、入賞口スイッチ/状態監視処理を終了する。なお、ステップS316からS318の処理は、タイマ割込み毎に更新される状態スキャンカウンタの値が「0」の場合のみ実行されるため、4回のタイマ割込みに1回の割合で実行されることとなる。すなわち、タイマ割込みが4m秒毎に行われる場合は、16m秒毎にステップS316からS318の処理が行われることとなる。
〔不正&入賞監視処理〕
図20には、上述の入賞口スイッチ/状態監視処理における不正&入賞監視処理(ステップS302,S304,S306)を示した。この不正&入賞監視処理は、特別変動入賞装置38の二つの大入賞口スイッチ38aの各々及び普通変動入賞装置37の始動口2スイッチ37aに対して行われる処理である。大入賞口(特別変動入賞装置38)や普電(普通変動入賞装置37)については、無理やり開閉部材を開いて遊技球を入れて賞球を払い出させる不正が行われ易いため、入賞の検出の他に不正の監視をする。
この不正&入賞監視処理においては、まず、エラー監視対象の入賞口スイッチの不正監視期間フラグをチェックし(ステップS321)、不正監視期間中であるかを判定する(ステップS322)。不正監視期間とは、エラー監視対象の入賞口スイッチが大入賞口スイッチ38aである場合は特別変動入賞装置38を開放する特別遊技状態中以外の期間であり、エラー監視対象の入賞口スイッチが始動口2スイッチ37aである場合は普図の当りに基づき普通変動入賞装置37の開放制御を実行している状態以外の期間である。
そして、不正監視期間である場合(ステップS322;Y)は、対象の入賞口スイッチに入力があるかを判定する(ステップS323)。対象の入賞口スイッチに入力がない場合(ステップS323;N)は、対象の報知タイマ更新情報をロードする(ステップS332)。また、対象の入賞口スイッチに入力がある場合(ステップS323;Y)は、対象の不正入賞数を+1更新し(ステップS324)、更新後の不正入賞数が監視対象の不正発生判定個数以上であるかを判定する(ステップS325)。
本実施形態の場合、エラー監視対象の入賞口スイッチの種類にかかわらず、不正発生判定個数を5個に設定しているが、不正発生個数は、入賞口スイッチの種類毎に異なる個数を定義することもできる。
判定個数を5個としているのは、例えば、開状態にある大入賞口が閉状態に変換した際に遊技球が大入賞口の扉部材に挟まり、その遊技球が大入賞口スイッチの有効期間を過ぎて入賞した場合や信号にノイズがのった場合にそれを不正と判断しないようにするためであり、不正でないのに簡単にエラーと判定しないためである。
そして、不正入賞数が監視対象の不正発生判定個数以上でない場合(ステップS325;N)は、対象の入賞口スイッチの入賞口監視テーブルを準備する(ステップS330)。入賞口スイッチ/状態監視処理にて準備された入賞口監視テーブル(不正監視テーブル)には、対象のスイッチに入力があるかを判定するデータの位置を示す監視スイッチビット、不正監視情報の下位アドレス、不正入賞数領域の下位アドレス、不正入賞エラー報知コマンド、不正入賞数上限値(不正発生判定個数)、入賞口スイッチテーブルのアドレス、報知タイマ更新情報(許可/更新)の情報が定義されている。
また、不正入賞数が監視対象の不正発生判定個数以上である場合(ステップS325;Y)は、不正入賞数を不正発生判定個数に留め(ステップS326)、対象の不正入賞報知タイマ領域に初期値(例えば、60000m秒)をセーブする(ステップS327)。次に、対象の不正発生コマンドを準備し(ステップS328)、不正フラグとして不正入賞発生フラグを準備して(ステップS329)、準備した不正フラグを対象の不正フラグ領域の値と比較する(ステップS340)。
一方、不正監視期間中でない場合(ステップS322;N)は、対象の入賞口スイッチの入賞口監視テーブルを準備し(ステップS330)、賞球の設定を行う入賞数カウンタ更新処理(ステップS331)を行う。そして、対象の報知タイマ更新情報をロードし(ステップS332)、報知タイマの更新許可の有無を判定する(ステップS333)。そして、報知タイマの更新が許可されない場合(ステップS333;N)は、不正&入賞監視処理を終了する。また、報知タイマの更新が許可される場合(ステップS333;Y)は、対象の報知タイマが0でなければ−1更新する(ステップS334)。なお、報知タイマの最小値は0に設定されている。
報知タイマの更新は、エラー監視対象の入賞口スイッチが一方の大入賞口スイッチ38aである場合は許可され、エラー監視対象の入賞口スイッチが他方の大入賞口スイッチ38aである場合は許可されない。これにより、特別変動入賞装置38についての不正報知について、報知タイマの更新が倍の頻度で行われてしまい、規定時間(例えば、60000m秒)の半分でタイムアップしてしまうことを防止している。なお、エラー監視対象の入賞口スイッチが始動口2スイッチ37aである場合は報知タイマの更新は常に許可される。
その後、報知タイマの値が0であるかを判定し(ステップS335)、値が0でない場合(ステップS335;N)、すなわちタイムアップしていない場合は、不正&入賞監視処理を終了する。また、値が0である場合(ステップS335;Y)、すなわちタイムアップした又はすでにタイムアップしていた場合は、対象の不正解除コマンドを準備し(ステップS336)、不正フラグとして不正入賞解除フラグを準備する(ステップS337)。そして、報知タイマの値が0になった瞬間であるかを判定する(ステップS338)。
報知タイマの値が0になった瞬間である場合(ステップS338;Y)、すなわち今回の不正&入賞監視処理で報知タイマの値が0になった場合は、対象の不正入賞数をクリアし(ステップS339)、準備した不正フラグを対象の不正フラグ領域の値と比較する(ステップS340)。また、報知タイマの値が0になった瞬間でない場合(ステップS338;N)、すなわち前回以前の不正&入賞監視処理で報知タイマの値が0になった場合は、準備した不正フラグを対象の不正フラグ領域の値と比較する(ステップS340)。
そして、準備した不正フラグと対象の不正フラグ領域の値が一致した場合(ステップS340;Y)は、不正&入賞監視処理を終了する。また、準備した不正フラグと対象の不正フラグ領域の値が一致しない場合(ステップS340;N)は、準備した不正フラグを対象の不正フラグ領域にセーブし(ステップS341)、演出コマンド設定処理を行い(ステップS342)、不正&入賞監視処理を終了する。以上の処理により、エラーの発生に伴いエラー報知コマンドが演出制御装置300に送信され、エラーの解除に伴い不正入賞エラー解除コマンドが演出制御装置300に送信されて、エラー報知の開始、終了が設定されることとなる。
〔入賞数カウンタ更新処理〕
図21には、上述の入賞口スイッチ/状態監視処理及び不正&入賞監視処理における入賞数カウンタ更新処理(ステップS308,S331)を示した。この入賞数カウンタ更新処理においては、まず、入賞口監視テーブルから監視する入賞口スイッチの個数を取得し(ステップS351)、対象の入賞口スイッチに入力(正確には入力の変化)があるかを判定する(ステップS352)。入賞口スイッチ/状態監視処理にて準備された入賞口監視テーブル(不正監視テーブル)のうちの入賞テーブルには、監視の繰り返し回数(スイッチの数)に加えて、スイッチ毎に、監視スイッチビット、入賞数カウンタ領域1の下位アドレス、入賞数カウンタ領域2の下位アドレスの情報が定義されている。
対象の入賞口スイッチに入力がない場合(ステップS352;N)は、テーブルアドレスを次レコードのアドレスに更新して(ステップS361)、全スイッチの監視が終了したかを判定する(ステップS362)。また、対象の入賞口スイッチに入力がある場合(ステップS352;Y)は、対象の入賞数カウンタ領域1の値をロードし(ステップS353)、ロードした値を+1更新して(ステップS354)、オーバーフローするか判定する(ステップS355)。そして、オーバーフローが発生していない場合(ステップS355;N)は、更新後の値を入賞数カウンタ領域1にセーブし(ステップS356)、対象の入賞数カウンタ領域2の値をロードする(ステップS357)。また、オーバーフローが発生した場合(ステップS355;Y)は、対象の入賞数カウンタ領域2の値をロードする(ステップS357)。本実施形態の場合、ステップS354では、賞球(払出コマンド送信)のためのカウンタを更新している。カウンタサイズは2バイト(0〜65535の範囲)である。
対象の入賞数カウンタ領域2の値をロード(ステップS357)した後、ロードした値を+1更新して(ステップS358)、オーバーフローするか判定する(ステップS359)。そして、オーバーフローが発生していない場合(ステップS359;N)は、更新後の値を入賞数カウンタ領域2にセーブし(ステップS360)、テーブルアドレスを次レコードのアドレスに更新して(ステップS361)、全スイッチの監視が終了したかを判定する(ステップS362)。また、オーバーフローが発生した場合(ステップS359;Y)は、テーブルアドレスを次レコードのアドレスに更新して(ステップS361)、全スイッチの監視が終了したかを判定する(ステップS362)。本実施形態の場合、ステップS358では、メイン賞球信号のためのカウンタを更新している。カウンタサイズは1バイト(0〜255の範囲)である。
全スイッチの監視が終了していない場合(ステップS362;N)は、対象の入賞口スイッチに入力があるかを判定する処理(ステップS352)に戻る。また、全スイッチの監視が終了した場合(ステップS362;Y)は、入賞数カウンタ更新処理を終了する。以上の処理により、入賞領域への入賞に基づき入賞数カウンタ領域1及び2が更新されて入賞の情報が記憶されることとなる。
〔始動口エラー監視処理〕
図22には、上述の入賞口スイッチ/状態監視処理における始動口エラー監視処理(ステップS309)を示した。この始動口エラー監視処理においては、まず、始動口1スイッチ36aに入力があるか判定する(ステップS371)。そして、始動口1スイッチ36aに入力がないと判定した場合(ステップS371;N)には、始動口3スイッチ97aに入力があるか判定し(ステップS375)、始動口1スイッチ36aに入力があると判定した場合(ステップS371;Y)には、前回の入賞も第1始動口(第1始動入賞口36)への入賞であったか判定する(ステップS372)。
ステップS372で、前回の入賞も第1始動口(第1始動入賞口36)への入賞であったと判定した場合(ステップS372;Y)、すなわち入賞装置90の内部で遊技球が第1始動入賞口36と第2始動入賞口97とに交互に振り分けられていない場合には、連続入賞数領域の値を+1更新して(ステップS373)、連続入賞数領域の値が上限値(本実施形態の場合、4個)以上であるか判定する(ステップS374)。そして、連続入賞数領域の値が上限値以上であると判定した場合(ステップS374;Y)には、ステップS379の処理に移行し、連続入賞数領域の値が上限値以上でないと判定した場合(ステップS374;N)には、始動口3スイッチ97aに入力があるか判定する(ステップS375)。
一方、ステップS372で、前回の入賞は第1始動口(第1始動入賞口36)への入賞でなかったと判定した場合(ステップS372;N)には、連続入賞数領域に1をセーブし(ステップS384)、始動口判定データ領域に始動口1入賞情報をセーブして(ステップS385)、始動口3スイッチ97aに入力があるか判定する(ステップS375)。
ステップS375で、始動口3スイッチ97aに入力がないと判定した場合(ステップS375;N)には、始動口エラー報知タイマが0であるか判定する(ステップS388)。
一方、ステップS375で、始動口3スイッチ97aに入力があると判定した場合(ステップS375;Y)には、前回の入賞も第3始動口(第2始動入賞口97)への入賞であったか判定する(ステップS376)。
ステップS376で、前回の入賞も第3始動口(第2始動入賞口97)への入賞であったと判定した場合(ステップS376;Y)、すなわち入賞装置90の内部で遊技球が第1始動入賞口36と第2始動入賞口97とに交互に振り分けられていない場合には、連続入賞数領域の値を+1更新して(ステップS377)、連続入賞数領域の値が上限値(本実施形態の場合、4個)以上であるか判定する(ステップS378)。そして、連続入賞数領域の値が上限値以上でないと判定した場合(ステップS378;N)には、始動口エラー報知タイマが0であるか判定し(ステップS388)、連続入賞数領域の値が上限値以上であると判定した場合(ステップS378;Y)には、ステップS379の処理に移行する。
ステップS379では、連続入賞数領域の値を上限値に留める(ステップ379)。
次いで、始動口エラー報知タイマ領域に初期値(例えば、60秒)をセーブし(ステップS380)、始動口エラーフラグ領域にエラー発生中フラグをセーブし(ステップS381)、始動口エラー発生コマンドを準備し(ステップS382)、演出コマンド設定処理(ステップS383)を行って、始動口エラー監視処理を終了する。
また、ステップS376で、前回の入賞は第3始動口(第2始動入賞口97)への入賞でなかったと判定した場合(ステップS376;N)には、連続入賞数領域に1をセーブし(ステップS386)、始動口判定データ領域に始動口3入賞情報をセーブして(ステップS387)、始動口エラー報知タイマが0であるか判定する(ステップS388)。
ステップS388で、始動口エラー報知タイマが0であると判定した場合(ステップS388;Y)には、始動口エラー監視処理を終了する。
一方、ステップS388で、始動口エラー報知タイマが0でないと判定した場合(ステップS388;N)には、始動口エラー報知タイマを−1更新して(ステップS389)、始動口エラー報知タイマが0であるか判定する(ステップS390)。
ステップS390で、始動口エラー報知タイマが0でないと判定した場合(ステップS390;N)には、始動口エラー監視処理を終了する。
一方、ステップS390で、始動口エラー報知タイマが0であると判定した場合(ステップS390;Y)には、始動口エラーフラグ領域に正常中フラグをセーブし(ステップS391)、始動口エラー解除コマンドを準備し(ステップS392)、演出コマンド設定処理(ステップS393)を行って、始動口エラー監視処理を終了する。
入賞装置90においては、遊技球が第1始動口(第1始動入賞口36)と第3始動口(第2始動入賞口97)とに交互に振り分けられるように構成されているが、同一の始動口に連続して入賞している場合には、入賞装置90の故障や、糸釣り球等による不正入賞の可能性が考えられるので、始動口エラー監視処理では、それをチェックしている。本実施形態では、4回連続して同じ始動口に入賞した場合にエラー扱いとするようになっている。
〔遊技機状態チェック処理〕
図23には、上述の入賞口スイッチ/状態監視処理における遊技機状態チェック処理(ステップS312,S314,S317)を示した。この遊技機状態チェック処理では、まず、状態スキャンカウンタに対応する状態監視テーブルを取得し(ステップS401)、監視対象である信号がオンであるかを判定する(ステップS402)。
状態監視テーブル(入賞口スイッチ/状態監視処理にて準備した遊技機状態監視テーブル)には、状態スキャンカウンタに対応した情報が定義されている。この情報としては、例えば、状態監視領域の先頭アドレスの下位アドレス、対象の信号情報が保存されているスイッチ制御領域のポート入力状態領域の下位アドレス、対象の信号のビットだけを取り出すマスクデータ、信号オンの判定データ、状態オフコマンド(エラー系の場合はエラー報知終了コマンドをなす)、状態オンコマンド(エラー系の場合はエラー報知開始コマンドをなす)、状態オフ監視タイマ比較値、状態オン監視タイマ比較値が含まれる。
対象の信号がオンでない場合(ステップS402;N)は、状態フラグとして状態オフフラグを準備して(ステップS403)、対象の状態オフコマンドを取得し、準備する(ステップS404)。その後、対象の状態オフ監視タイマ比較値を取得して(ステップS405)、対象の信号制御領域の値と今回の信号の状態を比較する(ステップS409)。対象の信号がオンでない場合(ステップS402;N)とは、エラー系の信号ではエラーでない(正常である)ことを示す状態であり、タッチスイッチからの信号ではタッチされていないことを示す状態である。
一方、対象の信号がオンである場合(ステップS402;Y)は、状態フラグとして状態オンフラグを準備して(ステップS406)、対象の状態オンコマンドを取得し、準備する(ステップS407)。その後、対象の状態オン監視タイマ比較値を取得して(ステップS408)、対象の信号制御領域の値と今回の信号の状態を比較する(ステップS409)。対象の信号がオンである場合(ステップS402;Y)とは、エラー系の信号ではエラーである(異常や不正である)ことを示す状態であり、タッチスイッチからの信号ではタッチされていることを示す状態である。
対象の信号制御領域の値と今回の信号の状態が一致した場合(ステップS409;Y)、すなわち信号の状態が変化していない場合は、対象の状態監視タイマを+1更新して(ステップS412)、対象の状態監視タイマの値が監視タイマ比較値以上となったかを判定する(ステップS413)。また、対象の信号制御領域の値と今回の信号の状態が一致しない場合(ステップS409;N)、すなわち信号の状態が変化した場合は、対象の信号制御領域に今回の信号状態をセーブする(ステップS410)。そして、対象の状態監視タイマをクリアし(ステップS411)、対象の状態監視タイマを+1更新して(ステップS412)、対象の状態監視タイマの値が監視タイマ比較値以上となったかを判定する(ステップS413)。
対象の状態監視タイマの値が監視タイマ比較値以上でない場合(ステップS413;N)は、遊技機状態チェック処理を終了する。また、対象の状態監視タイマの値が監視タイマ比較値以上である場合(ステップS413;Y)は、状態監視タイマを−1更新し、比較値−1の値に留めて(ステップS414)、準備した状態フラグを対象の状態フラグ領域の値と比較する(ステップS415)。
そして、準備した状態フラグと対象の状態フラグ領域の値とが一致する場合(ステップS415;Y)は、遊技機状態チェック処理を終了する。また、準備した状態フラグと対象の状態フラグ領域の値とが一致しない場合(ステップS415;N)は、準備した状態フラグを対象の状態フラグ領域にセーブし(ステップS416)、演出コマンド設定処理を行って(ステップS417)、遊技機状態チェック処理を終了する。これにより、ステップS404で準備した状態オフコマンド又はS407で準備した状態オンコマンドが演出制御装置300に送信されることとなる。
〔払出ビジー信号チェック処理〕
図24には、上述の入賞口スイッチ/状態監視処理における払出ビジー信号チェック処理(ステップS318)を示した。この払出ビジー信号チェック処理においては、まず、払出制御装置200から入力される払出ビジー信号がオンであるかを判定する(ステップS421)。なお、払出ビジー信号は、払出制御装置200が払出制御を開始できない場合にオン状態とされるようになっている。
払出ビジー信号がオンである場合(ステップS421;Y)は、状態フラグとしてビジー状態フラグを準備して(ステップS422)、オン確定監視タイマ比較値(例えば、32m秒)を設定し(ステップS423)、ビジー信号状態領域の値が今回の信号の状態と一致するかを判定する(ステップS426)。また、払出ビジー信号がオンでない場合(ステップS421;N)は、状態フラグとしてアイドル状態フラグを準備して(ステップS424)、オフ確定監視タイマ比較値(例えば、32m秒)を設定し(ステップS425)、ビジー信号状態領域の値が今回の信号の状態と一致するかを判定する(ステップS426)。これにより、同じ状態が、複数回のタイマ割込み分継続しているかチェックすることができる。
ビジー信号状態領域の値が今回の信号の状態と一致しない場合(ステップS426;N)には、ビジー信号状態領域に今回の信号の状態をセーブし(ステップS427)、ビジー信号監視タイマを0クリアして(ステップS428)、ビジー信号監視タイマを+1更新する(ステップS429)。また、ビジー信号状態領域の値が今回の信号の状態と一致する場合(ステップS426;Y)には、ビジー信号監視タイマを+1更新する(ステップS429)。
次に、ビジー信号監視タイマの値が、ステップS423又はステップS425で設定した監視タイマ比較値以上であるかを判定し(ステップS430)、監視タイマ比較値以上でない場合(ステップS430;N)は、払出ビジー信号チェック処理を終了する。また、監視タイマ比較値以上である場合(ステップS430;Y)は、ビジー信号監視タイマを−1更新し、比較値−1の値に留めて(ステップS431)、ステップS422又はステップS424で準備した状態フラグを払出ビジー信号フラグ領域にセーブし(ステップS432)、払出ビジー信号チェック処理を終了する。
この処理により、払出ビジー信号に基づきビジー信号ステータスが設定される。この際に、払出ビジー信号の状態が変化してもすぐにはビジー信号ステータスを変更せず、信号確定時間に亘り変化した状態が継続した場合にビジー信号ステータスを変更するようにしており、ノイズ等の影響を受け難くしている。
また、電源投入時にビジー信号ステータスがクリアされるので、何れかの信号状態が信号確定時間に亘り継続するまではビジー信号ステータスは設定されず不定状態となる。これにより、停電が発生し該停電から復帰した場合には、払出制御装置200から払出制御を開始可能であることを示す状態信号が出力されていたとしても、直ちに賞球指令が払出制御装置200に送信されないようになり、払出制御装置200から払出制御を開始可能であることを示す状態信号が所定期間に亘って継続して出力されたことに対応して賞球指令が払出制御装置200に送信されるようになる。これにより、払出制御装置200が賞球指令を受信して即座に払出処理が可能なことを確実に把握してから賞球指令を送信するようになり、賞球指令に対応する払出制御が行われないことを防止できる。
〔特図ゲーム処理〕
次に、上述のタイマ割込み処理における特図ゲーム処理(ステップS109)の詳細について説明する。特図ゲーム処理では、始動口1スイッチ36a、始動口2スイッチ37a、及び始動口3スイッチ97aの入力の監視と、特図変動表示ゲームに関する処理全体の制御、特図の表示の設定を行う。
図25に示すように、特図ゲーム処理では、先ず、始動口1スイッチ36a、始動口2スイッチ37a、及び始動口3スイッチ97aの入賞を監視する始動口スイッチ監視処理(ステップA1)を行う。始動口スイッチ監視処理では、第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37に遊技球の入賞があると、各種乱数(大当り乱数など)の抽出を行い、当該入賞に基づく特図変動表示ゲームの開始前の段階で入賞に基づく遊技結果を事前に判定する遊技結果事前判定を行う。
次に、大入賞口スイッチ監視処理(ステップA2)を行う。この大入賞口スイッチ監視処理では、特別変動入賞装置38内に設けられた大入賞口スイッチ38aでの遊技球の検出を監視する処理を行う。
次に、特図ゲーム処理タイマが「0」でなければ−1更新する(ステップA3)。なお、特図ゲーム処理タイマの最小値は「0」に設定されている。そして、特図ゲーム処理タイマの値が「0」であるかを判定する(ステップA4)。特図ゲーム処理タイマの値が「0」である場合(ステップA4;Y)、すなわちタイムアップした又はすでにタイムアップしていた場合は、特図ゲーム処理番号に対応する処理に分岐させるために参照する特図ゲームシーケンス分岐テーブルをレジスタに設定し(ステップA5)、当該テーブルを用いて特図ゲーム処理番号に対応する処理の分岐先アドレスを取得する(ステップA6)。そして、特図ゲーム処理番号に応じてサブルーチンコールを行う(ステップA7)。
ステップA7にて、特図ゲーム処理番号が「0」の場合は、特図変動表示ゲームの変動開始を監視し、特図変動表示ゲームの変動開始の設定や演出の設定や、特図変動中処理を行うために必要な情報の設定等を行う特図普段処理(ステップA8)を行う。
ステップA7にて、特図ゲーム処理番号が「1」の場合は、特図の停止表示時間の設定や、特図表示中処理を行うために必要な情報の設定等を行う特図変動中処理(ステップA9)を行う。
ステップA7にて、特図ゲーム処理番号が「2」の場合は、特図変動表示ゲームの遊技結果が大当りであれば、大当りの種類に応じたファンファーレコマンドの設定や、各大当りの大入賞口開放パターンに応じたファンファーレ時間の設定や、ファンファーレ/インターバル中処理を行うために必要な情報の設定等を行う特図表示中処理(ステップA10)を行う。
ステップA7にて、特図ゲーム処理番号が「3」の場合は、大入賞口の開放時間の設定や開放回数の更新、大入賞口開放中処理を行うために必要な情報の設定等を行うファンファーレ/インターバル中処理(ステップA11)を行う。
ステップA7にて、特図ゲーム処理番号が「4」の場合は、大当りラウンドが最終ラウンドでなければインターバルコマンドを設定する一方で最終ラウンドであればエンディングコマンドを設定する処理や、大入賞口残存球処理を行うために必要な情報の設定等を行う大入賞口開放中処理(ステップA12)を行う。
ステップA7にて、特図ゲーム処理番号が「5」の場合は、大当りラウンドが最終ラウンドであれば大入賞口内にある残存球が排出されるための時間を設定する処理や、大当り終了処理を行うために必要な情報の設定等を行う大入賞口残存球処理(ステップA13)を行う。
ステップA7にて、特図ゲーム処理番号が「6」の場合は、特図普段処理を行うために必要な情報の設定等を行う大当り終了処理(ステップA14)を行う。
その後、特図1表示器51aの変動を制御するためのテーブルを準備した後(ステップA15)、特図1表示器51aに係る図柄変動制御処理(ステップA16)を行う。そして、特図2表示器51bの変動を制御するためのテーブルを準備した後(ステップA17)、特図2表示器51bに係る図柄変動制御処理(ステップA18)を行い、特図ゲーム処理を終了する。一方、ステップA4にて、特図ゲーム処理タイマの値が「0」でない場合(ステップA4;N)、すなわちタイムアップしていない場合は、ステップA15の処理に移行して、それ以降の処理を行う。
なお、大当りとは条件装置の作動を伴う特別結果である。条件装置とは、特図変動表示ゲームで大当りが発生(大当り図柄の停止表示)した場合に作動するもので、条件装置が作動するとは、例えば大当り状態が発生して特別電動役物としての特別変動入賞装置38を連続して作動させるための特定のフラグがセットされる(役物連続作動装置が作動される)ことを意味する。なお、「条件装置」は上記のようなソフトウェア的にオンオフされるフラグのようなソフトウェア手段であっても良いし、電気的にオンオフされるスイッチのようなハードウェア手段であっても良い。また、「条件装置」は、その作動が電動役物の連続作動に必要条件とされる装置として、パチンコ遊技機の分野においては一般的に使用されている用語であり、本明細書においても同様な意味を有する用語として使用している。
〔始動口スイッチ監視処理〕
次に、上述の特図ゲーム処理における始動口スイッチ監視処理(ステップA1)の詳細について説明する。図26に示すように、始動口スイッチ監視処理では、先ず、第1始動口(第1始動入賞口36)入賞監視テーブルを準備し(ステップA101)、ハード乱数取得処理(ステップA102)を行う。このハード乱数取得処理では、対象となる始動口スイッチ(ここでは始動口1スイッチ36a)に入力があった場合にラッチレジスタに抽出された大当り乱数をロードして準備し、対象となる始動口への入賞があったことを示す情報の設定を行う。その後、特図1の始動口である第1始動口への入賞があるか否かを判定する(ステップA103)。
ステップA103にて、第1始動口への入賞がないと判定した場合(ステップA103;N)には、ステップA109の処理に移行して、それ以降の処理を行う。
一方、ステップA103にて、第1始動口への入賞があると判定した場合(ステップA103;Y)には、特図時短中(普電サポート中)であるか否かを判定する(ステップA104)。
ステップA104にて、特図時短中でないと判定した場合(ステップA104;N)には、ステップA107の処理に移行して、それ以降の処理を行う。
一方、ステップA104にて、特図時短中であると判定した場合(ステップA104;Y)には、右打ち指示報知コマンドを準備して(ステップA105)、演出コマンド設定処理(ステップA106)を行う。すなわち、時短状態であれば、特図変動表示ゲームの確率状態にかかわらず、右打ち指示報知コマンドを準備して(ステップA105)、演出コマンド設定処理(ステップA106)を行う。本実施形態の遊技機10の場合、第1始動口(第1始動入賞口36)へは左打ちでないと入賞せず、普通変動入賞装置37へは右打ちでないと入賞しない。したがって、時短状態は、左打ちよりも右打ちの方が有利な遊技状態となるが、時短状態中に第1始動口に入賞があった場合(すなわち、時短状態中に左打ちされた場合)には、右打ち指示報知コマンドを演出制御装置300に送信して、右打ちするよう指示する報知(警告)を演出制御装置300によって行うよう構成されている。
次いで、第1始動口(第1始動入賞口36)による保留の情報を設定するテーブルを準備した後(ステップA107)、特図始動口スイッチ共通処理(ステップA108)を行う。
次に、第2始動口(普通変動入賞装置37)入賞監視テーブルを準備し(ステップA109)、ハード乱数取得処理(ステップA110)を行う。このハード乱数取得処理では、対象となる始動口スイッチ(ここでは始動口2スイッチ37a)に入力があった場合にラッチレジスタに抽出された大当り乱数をロードして準備し、対象となる始動口への入賞があったことを示す情報の設定を行う。その後、特図2の始動口である第2始動口への入賞があるか否かを判定する(ステップA111)。
ステップA111にて、第2始動口への入賞がないと判定した場合(ステップA111;N)には、ステップA116の処理に移行して、それ以降の処理を行う。
一方、ステップA111にて、第2始動口への入賞があると判定した場合(ステップA111;Y)には、普通電動役物(普通変動入賞装置37)が作動中である、すなわち、普通変動入賞装置37が作動して遊技球の入賞が可能な開状態となっているか否かを判定し(ステップA112)、普通電動役物が作動中である(ステップA112;Y)と判定すると、ステップA114の処理に移行して、それ以降の処理を行う。一方、ステップA112にて、普通電動役物が作動中でない(ステップA112;N)と判定すると、普電不正発生中であるかを判定する(ステップA113)。
ステップA113では、普通変動入賞装置37への不正入賞数が不正発生判定個数(例えば、5個)以上である場合に不正発生中であると判定する。普通変動入賞装置37は、閉状態では遊技球が入賞不可能であり、開状態でのみ遊技球が入賞可能である。よって、閉状態で遊技球が入賞した場合は何らかの異常や不正が発生した場合であり、このような閉状態で入賞した遊技球があった場合はその数を不正入賞数として計数する。そして、このように計数された不正入賞数が所定の不正発生判定個数(上限値)以上である場合に不正発生中と判定する。
ステップA113にて、普電不正発生中でないと判定した場合(ステップA113;N)は、第2始動口(普通変動入賞装置37)による保留の情報を設定するテーブルを準備し(ステップA114)、特図始動口スイッチ共通処理(ステップA115)を行った後、ステップA116の処理に移行して、それ以降の処理を行う。また、ステップA113にて、普電不正発生中であると判定した場合(ステップA113;Y)は、ステップA116の処理に移行して、それ以降の処理を行う。
次に、第3始動口(第2始動入賞口97)入賞監視テーブルを準備し(ステップA116)、ハード乱数取得処理(ステップA117)を行う。このハード乱数取得処理では、対象となる始動口スイッチ(ここでは始動口3スイッチ97a)に入力があった場合にラッチレジスタに抽出された大当り乱数をロードして準備し、対象となる始動口への入賞があったことを示す情報の設定を行う。その後、特図2の始動口である第3始動口への入賞があるか否かを判定する(ステップA118)。
ステップA118にて、第3始動口への入賞がないと判定した場合(ステップA118;N)は、始動口スイッチ監視処理を終了する。
一方、ステップA118にて、第3始動口への入賞があると判定した場合(ステップA118;Y)には、特図時短中(普電サポート中)であるか否かを判定する(ステップA119)。
ステップA119にて、特図時短中でないと判定した場合(ステップA119;N)には、ステップA122の処理に移行して、それ以降の処理を行う。
一方、ステップA119にて、特図時短中であると判定した場合(ステップA119;Y)には、右打ち指示報知コマンドを準備して(ステップA120)、演出コマンド設定処理(ステップA121)を行う。すなわち、時短状態であれば、特図変動表示ゲームの確率状態にかかわらず、右打ち指示報知コマンドを準備して(ステップA120)、演出コマンド設定処理(ステップA121)を行う。本実施形態の遊技機10の場合、第3始動口(第2始動入賞口97)へは左打ちでないと入賞せず、普通変動入賞装置37へは右打ちでないと入賞しない。したがって、時短状態は、左打ちよりも右打ちの方が有利な遊技状態となるが、時短状態中に第3始動口に入賞があった場合(すなわち、時短状態中に左打ちされた場合)には、右打ち指示報知コマンドを演出制御装置300に送信して、右打ちするよう指示する報知(警告)を演出制御装置300によって行うよう構成されている。
次いで、第3始動口(第2始動入賞口97)による保留の情報を設定するテーブルを準備した後(ステップA122)、特図始動口スイッチ共通処理(ステップA123)を行って、始動口スイッチ監視処理を終了する。
〔ハード乱数取得処理〕
次に、上述の始動口スイッチ監視処理におけるハード乱数取得処理(ステップA102,A110,A117)の詳細について説明する。図27に示すように、ハード乱数取得処理では、まず、第1始動口(第1始動入賞口36)、第2始動口(普通変動入賞装置37)、及び第3始動口(第2始動入賞口97)のうち、監視対象の始動口の入賞なし情報を設定して(ステップA131)、始動口1スイッチ36a、始動口2スイッチ37a、及び始動口3スイッチ97aのうち、監視対象の始動口スイッチに入力があるか否かを判定する(ステップA132)。
そして、監視対象の始動口スイッチに入力がない場合(ステップA132;N)は、ハード乱数取得処理を終了する。
一方、監視対象の始動口スイッチに入力がある場合(ステップA132;Y)は、乱数ラッチレジスタステータスを読み込み(ステップA133)、対象の乱数ラッチレジスタにラッチデータがあるかを判定する(ステップA134)。
対象の乱数ラッチレジスタにラッチデータがない場合(ステップA134;N)、すなわち乱数が抽出されていない場合は、ハード乱数取得処理を終了する。
また、対象の乱数ラッチレジスタにラッチデータがある場合(ステップA134;Y)は、監視対象のハード乱数ラッチレジスタに抽出された大当り乱数をロードし、準備する(ステップA135)。そして、第1始動口(第1始動入賞口36)、第2始動口(普通変動入賞装置37)、及び第3始動口(第2始動入賞口97)のうち、監視対象の始動口の入賞あり情報を設定して(ステップA136)、ハード乱数取得処理を終了する。
〔特図始動口スイッチ共通処理〕
次に、上述の始動口スイッチ監視処理における特図始動口スイッチ共通処理(ステップA108,A115,A123)の詳細について説明する。特図始動口スイッチ共通処理は、始動口1スイッチ36aや始動口2スイッチ37aや始動口3スイッチ97aの入力があった場合に、各々の入力について共通して行われる処理である。
図28に示すように、特図始動口スイッチ共通処理では、先ず、始動口1スイッチ36a、始動口2スイッチ37a、及び始動口3スイッチ97aのうち、監視対象の始動口スイッチへの入賞の回数に関する情報を遊技機10の外部の管理装置に対して出力する回数である始動口信号出力回数をロードし(ステップA141)、ロードした値を+1更新して(ステップA142)、出力回数がオーバーフローするかを判定する(ステップA143)。
出力回数がオーバーフローしない場合(ステップA143;N)は、更新後の値をRWMの始動口信号出力回数領域にセーブして(ステップA144)、ステップA145の処理に移行する。
一方、出力回数がオーバーフローする場合(ステップA143;Y)は、ステップA145の処理に移行する。本実施形態では、始動口信号出力回数領域に「0」から「255」までの値を記憶することができる。そして、ロードした値が「255」である場合には+1更新によって更新後の値は「0」になり、出力回数がオーバーフローすると判定して、セーブしないよう構成されている。
次に、始動口1スイッチ36a、始動口2スイッチ37a、及び始動口3スイッチ97aのうち、監視対象の始動口スイッチに対応する更新対象の特図保留(始動記憶)数が上限値未満かを判定する(ステップA145)。
更新対象の特図保留数が上限値未満でない場合(ステップA145;N)は、特図始動口スイッチ共通処理を終了する。
また、更新対象の特図保留数が上限値未満である場合(ステップA145;Y)は、更新対象の特図保留数(特図1保留数又は特図2保留数)を+1更新して(ステップA146)、監視対象の始動口スイッチ及び特図保留数に対応する飾り特図保留数コマンドを準備し(ステップA147)、演出コマンド設定処理(ステップA148)を行って、対象の始動口入賞フラグをセーブする(ステップA149)。続けて、監視対象の始動口スイッチ及び特図保留数に対応する乱数格納領域のアドレスを算出して(ステップA150)、ステップA102,A110,A117のハード乱数取得処理にて準備した大当り乱数をRWMの大当り乱数格納領域にセーブする(ステップA151)。次に、監視対象の始動口スイッチの大当り図柄乱数を抽出し、準備して(ステップA152)、RWMの大当り図柄乱数格納領域にセーブする(ステップA153)。この大当り図柄乱数は、特図保留情報判定処理(ステップA157)で使用する。
次いで、変動パターン乱数(本実施形態の場合、変動パターン乱数1から2)を対応するRWMの変動パターン乱数格納領域にセーブする(ステップA154)。
次いで、特図1保留数と特図2保留数の合計に対応する変動順序フラグ格納領域のアドレス(保留1から8までの何れかの場所)を算出し(ステップA155)、算出した領域に対象(特図1または特図2)の変動順序フラグをセーブし(ステップA156)、特図保留情報判定処理(ステップA157)を行って、特図始動口スイッチ共通処理を終了する。
ここで、遊技制御装置100(RAM111C)は、第1始動入賞口36、第2始動入賞口97、普通変動入賞装置37の始動入賞領域への遊技球の流入に基づき、所定の乱数を抽出し変動表示ゲームの実行権利となる始動記憶として所定数を上限に記憶する始動記憶手段をなす。また、始動記憶手段(遊技制御装置100)は、特図1の始動口である第1始動入賞口36への遊技球の入賞に基づき抽出した各種の乱数値を、所定数を上限に第1始動記憶として記憶し、特図2の始動口である第2始動入賞口97や普通変動入賞装置37への遊技球の入賞に基づき抽出した各種の乱数値を、所定数を上限に第2始動記憶として記憶する。
〔特図保留情報判定処理〕
次に、上述の特図始動口スイッチ共通処理における特図保留情報判定処理(ステップA157)の詳細について説明する。特図保留情報判定処理は、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に当該始動記憶に対応した結果関連情報の判定を行う先読み処理である。
図29に示すように、まず、低確率判定フラグを準備して(ステップA161)、大当り乱数値が大当り判定値(大当り低確率判定値)と一致するか否かにより大当りであるか判定する先読み大当り判定処理(ステップA162)を行い、判定結果として大当りが設定されたか判定する(ステップA163)。
ステップA163で、判定結果として大当りが設定されたと判定した場合(ステップA163;Y)は、対象の始動口スイッチに対応する大当り図柄乱数チェックテーブルを設定し(ステップA164)、ステップA152にて準備した大当り図柄乱数に対応する停止図柄情報を取得して(ステップA165)、ステップA167の処理に移行する。
一方、ステップA163で、判定結果として大当りが設定されていないと判定した場合(ステップA163;N)、すなわち判定結果としてはずれが設定された場合は、はずれの停止図柄情報を設定して(ステップA166)、ステップA167の処理に移行する。
ステップA167では、ステップA165にて取得した停止図柄情報またはステップA166にて設定した停止図柄情報を図柄情報領域にセーブする(ステップA167)。
次いで、対象の始動口スイッチ及び停止図柄情報に対応する先読み停止図柄コマンド(低確率)を準備し(ステップA168)、演出コマンド設定処理(ステップA169)を行う。
次いで、高確率判定フラグを準備して(ステップA170)、大当り乱数値が大当り判定値(大当り高確率判定値)と一致するか否かにより大当りであるか判定する先読み大当り判定処理(ステップA171)を行い、判定結果として大当りが設定されたか判定する(ステップA172)。
ステップA172で、判定結果として大当りが設定されたと判定した場合(ステップA172;Y)には、対象の始動口スイッチに対応する大当り図柄乱数チェックテーブルを設定し(ステップA173)、ステップA152にて準備した大当り図柄乱数に対応する停止図柄情報を取得して(ステップA174)、ステップA176の処理に移行する。
一方、ステップA172で、判定結果として大当りが設定されていないと判定した場合(ステップA172;N)、すなわち判定結果としてはずれが設定された場合には、はずれの停止図柄情報を設定して(ステップA175)、ステップA176の処理に移行する。
ステップA176では、特図の高確率中であるか判定する(ステップA176)。
ステップA176で、特図の高確率中でないと判定した場合(ステップA176;N)には、ステップA178の処理に移行する。
一方、ステップA176で、特図の高確率中であると判定した場合(ステップA176;Y)には、ステップA167にて停止図柄情報をセーブした図柄情報領域に、ステップA174にて取得した停止図柄情報またはステップA175にて設定した停止図柄情報を上書きしてセーブし(ステップA177)、ステップA178の処理に移行する。なお、図柄情報領域にセーブされる停止図柄情報は、変動パターンの先読み等で使用される。
ステップA178では、対象の始動口スイッチ及び停止図柄情報に対応する先読み停止図柄コマンド(高確率)を準備して(ステップA178)、演出コマンド設定処理(ステップA179)を行う。このように、本実施形態では、特図保留情報判定処理を実行する度に、大当り低確率判定値で判定した結果と、大当り高確率判定値で判定した結果とが、演出制御装置300が送信される。
次に、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理(ステップA180)を行い、特図変動表示ゲームの変動態様を設定する変動パターン設定処理を行う(ステップA181)。
その後、特図変動表示ゲームの変動態様における変動パターンを示す変動パターン番号に対応する先読み変動パターンコマンドを準備して(ステップA182)、演出コマンド設定処理を行い(ステップA183)、特図保留情報判定処理を終了する。なお、ステップA180における特図情報設定処理、ステップA181における変動パターン設定処理は、特図普段処理で特図変動表示ゲームの開始時に実行される処理と同様である。
以上の処理により、先読み対象の始動記憶に基づく特図変動表示ゲームの結果を含む先読み停止図柄コマンドと、当該始動記憶に基づく特図変動表示ゲームでの変動パターンの情報を含む先読み変動パターンコマンドが準備され、演出制御装置300に送信される。これにより、始動記憶に対応した結果関連情報(大当りか否かや変動パターンの種類)の判定結果(先読み結果)を、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に演出制御装置300に対して知らせることができ、特に表示装置41に表示される飾り特図始動記憶表示を変化させるなどして、その特図変動表示ゲームの開始タイミングより前に遊技者に結果関連情報を報知することが可能となる。
すなわち、遊技制御装置100が、始動入賞記憶手段(遊技制御装置100)に始動記憶として記憶される乱数を、当該始動記憶に基づく変動表示ゲームの実行前に判定する(例えば、特別結果となるか否か等を判定)事前判定手段をなす。なお、始動記憶に対応して記憶された乱数値を事前に判定する時期は、当該始動記憶が発生した始動入賞時だけではなく、当該始動記憶に基づく変動表示ゲームが行われる前であればいつでもよい。
〔先読み大当り判定処理〕
次に、上述の特図保留情報判定処理における先読み大当り判定処理(ステップA162,A171)の詳細について説明する。
図30に示すように、先読み大当り判定処理では、まず、大当り判定値の下限判定値を設定し(ステップA191)、対象の大当り乱数の値が下限判定値未満か判定する(ステップA192)。
ステップA192で、大当り乱数の値が下限判定値未満であると判定した場合(ステップA192;Y)には、判定結果としてはずれを設定して(ステップA197)、先読み大当り判定処理を終了する。
一方、ステップA192で、大当り乱数の値が下限判定値未満でないと判定した場合(ステップA192;N)には、当該先読み大当り判定処理の直前に準備した判定フラグは高確率判定フラグであるか判定する(ステップA193)。
ステップA193で、高確率判定フラグであると判定した場合(ステップA193;Y)、すなわち当該先読み大当り判定処理がステップA171の処理である場合には、高確率中の上限判定値を設定して(ステップA194)、対象の大当り乱数の値が上限判定値より大きいか判定する(ステップA196)。
一方、ステップA193で、高確率判定フラグでないと判定した場合(ステップA193;N)、すなわち当該先読み大当り判定処理がステップA162の処理である場合には、低確率中の上限判定値を設定して(ステップA195)、対象の大当り乱数の値が上限判定値より大きいか判定する(ステップA196)。
ステップA196で、対象の大当り乱数の値が上限判定値より大きいと判定した場合(ステップA196;Y)は、判定結果としてはずれを設定して(ステップA197)、先読み大当り判定処理を終了する。
一方、ステップA196で、対象の大当り乱数の値が上限判定値より大きくないと判定した場合(ステップA196;N)、すなわち大当りである場合には、判定結果として大当りを設定して(ステップA198)、先読み大当り判定処理を終了する。
〔大入賞口スイッチ監視処理〕
次に、上述の特図ゲーム処理における大入賞口スイッチ監視処理(ステップA2)の詳細について説明する。図31に示すように、大入賞口スイッチ監視処理では、まず、特図ゲーム処理番号の値が「4」であるか、すなわち大入賞口開放中処理中であるかを判定する(ステップA201)。大入賞口開放中処理中である場合(ステップA201;Y)は、大入賞口スイッチ38aに入力があるか判定する(ステップA203)。また、大入賞口開放中処理中でない場合(ステップA201;N)は、特図ゲーム処理番号の値が「5」であるか、すなわち大入賞口残存球処理中であるかを判定する(ステップA202)。
大入賞口残存球処理中である場合は(ステップA202;Y)は、大入賞口スイッチ38aに入力があるか判定する(ステップA203)。また、大入賞口残存球処理中でない場合は(ステップA202;N)は、大入賞口スイッチ監視処理を終了する。
特図ゲーム処理タイマが「0」になるまで特図ゲーム処理番号は次に移行しないため、このように特図ゲーム処理番号によって遊技の進行状態をチェックすることができる。
ステップA203で、大入賞口スイッチ38aに入力がないと判定した場合(ステップA203;N)には、大入賞口スイッチ監視処理を終了する。
一方、ステップA203で、大入賞口スイッチ38aに入力があると判定した場合(ステップA203;Y)には、大入賞口カウントコマンドを準備して(ステップA204)、演出コマンド設定処理(ステップA205)を行う。
次いで、特図ゲーム処理番号の値が「4」であるか、すなわち大入賞口開放中処理中であるか判定する(ステップA206)。
ステップA206で、大入賞口開放中処理中でないと判定した場合(ステップA206;N)には、大入賞口スイッチ監視処理を終了する。
一方、ステップA206で、大入賞口開放中処理中であると判定した場合(ステップA206;Y)には、大入賞口カウント数を+1更新して(ステップA207)、大入賞口カウント数が上限値(一のラウンドで入賞可能な遊技球数。例えば、9個)以上となったかを判定する(ステップA208)。
大入賞口カウント数が上限値以上となっていない場合(ステップA208;N)は、大入賞口スイッチ監視処理を終了する。
一方、大入賞口カウント数が上限値以上となった場合(ステップA208;Y)は、特図ゲーム処理タイマ領域を0クリアして(ステップA209)、大入賞口スイッチ監視処理を終了する。これにより大入賞口が閉鎖されて一のラウンドが終了することとなる。
〔特図普段処理〕
次に、上述の特図ゲーム処理における特図普段処理(ステップA8)の詳細について説明する。図32に示すように、特図普段処理では、先ず、特図1保留数及び特図2保留数は共に「0」であるか判定する(ステップA301)。
ステップA301で、特図1保留数及び特図2保留数は共に「0」でないと判定した場合(ステップA301;N)には、変動順序フラグ格納領域(保留数合計1用)からフラグをロードして(ステップA302)、今回の変動が特図1の変動であるか判定する(ステップA303)。
ステップA303で、今回の変動が特図1の変動であると判定した場合(ステップA303;Y)には、特図1保留数に対応する飾り特図保留数コマンドを準備し(ステップA304)、演出コマンド設定処理(ステップA305)を行い、特図1変動開始処理(ステップA306)を行って、特図普段処理を終了する。なお、この時点では、特図1保留数は−1更新されていないが、ステップA304では、−1更新された値に対応するコマンド(飾り特図保留数コマンド)を準備する。
一方、ステップA303で、今回の変動が特図1の変動でないと判定した場合(ステップA303;N)、すなわち今回の変動が特図2の変動である場合には、特図2保留数に対応する飾り特図保留数コマンドを準備し(ステップA307)、演出コマンド設定処理(ステップA308)を行い、特図2変動開始処理(ステップA309)を行って、特図普段処理を終了する。なお、この時点では、特図2保留数は−1更新されていないが、ステップA307では、−1更新された値に対応するコマンド(飾り特図保留数コマンド)を準備する。
また、ステップA301で、特図1保留数及び特図2保留数は共に「0」であると判定した場合(ステップA301;Y)には、客待ちデモが開始済みであるかを判定し(ステップA310)、客待ちデモが開始済みでない場合(ステップA310;N)は、客待ちデモフラグ領域に客待ちデモ中フラグをセットする(ステップA311)。
続けて、客待ちデモコマンドを準備して(ステップA312)、演出コマンド設定処理(ステップA313)を行う。
次いで、処理番号として特図普段処理にかかる「0」を設定し(ステップA314)、その処理番号を特図ゲーム処理番号領域にセーブして(ステップA315)、変動図柄判別フラグ領域をクリアする(ステップA316)。そして、大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブして(ステップA317)、特図普段処理を終了する。
〔特図1変動開始処理〕
次に、上述の特図普段処理における特図1変動開始処理(ステップA306)の詳細について説明する。特図1変動開始処理は、第1特図変動表示ゲームの開始時に行う処理である。図33(a)に示すように、まず、実行する特図変動表示ゲームの種別(ここでは特図1)を示す特図1変動フラグを変動図柄判別フラグ領域にセーブし(ステップA321)、第1特図変動表示ゲームが大当りであるか否かを判別するための大当りフラグ1にはずれ情報や大当り情報を設定する大当りフラグ1設定処理(ステップA322)を行う。
次に、特図1停止図柄(図柄情報)の設定に係る特図1停止図柄設定処理(ステップA323)を行った後、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理(ステップA324)を行い、第1特図変動表示ゲームの変動パターンの設定に関する種々の情報を参照するための情報が設定されたテーブルである特図1変動パターン設定情報テーブルを準備する(ステップA325)。その後、第1特図変動表示ゲームにおける変動態様である変動パターンを設定する変動パターン設定処理(ステップA326)を行い、第1特図変動表示ゲームの変動開始の情報を設定する変動開始情報設定処理(ステップA327)を行う。
次いで、処理番号として特図変動中処理にかかる「1」を設定し(ステップA328)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA329)。
次いで、客待ちデモフラグ領域をクリアし(ステップA330)、特図1の変動開始に関する信号(例えば、特別図柄1変動中信号をON)を試験信号出力データ領域にセーブする(ステップA331)。その後、特図1変動制御フラグ領域に変動中フラグをセーブし(ステップA332)、特図1点滅制御タイマ領域に点滅制御タイマ(特図1表示器51aの点滅の周期のタイマ)の初期値(例えば、100m秒)をセーブし(ステップA333)、特図1変動図柄番号領域に初期値(例えば、0)をセーブして(ステップA334)、特図1変動開始処理を終了する。
〔特図2変動開始処理〕
次に、上述の特図普段処理における特図2変動開始処理(ステップA309)の詳細について説明する。特図2変動開始処理は、第2特図変動表示ゲームの開始時に行う処理であって、図33(a)に示した特図1変動開始処理での処理と同様の処理を、第2始動記憶を対象として行うものである。
図33(b)に示すように、まず、実行する特図変動表示ゲームの種別(ここでは特図2)を示す特図2変動フラグを変動図柄判別フラグ領域にセーブし(ステップA341)、第2特図変動表示ゲームが大当りであるか否かを判別するための大当りフラグ2にはずれ情報や大当り情報を設定する大当りフラグ2設定処理(ステップA342)を行う。
次に、特図2停止図柄(図柄情報)の設定に係る特図2停止図柄設定処理(ステップA343)を行った後、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理(ステップA344)を行い、第2特図変動表示ゲームの変動パターンの設定に関する種々の情報を参照するための情報が設定されたテーブルである特図2変動パターン設定情報テーブルを準備する(ステップA345)。その後、第2特図変動表示ゲームにおける変動態様である変動パターンを設定する変動パターン設定処理(ステップA346)を行い、第2特図変動表示ゲームの変動開始の情報を設定する変動開始情報設定処理(ステップA347)を行う。
次いで、処理番号として特図変動中処理にかかる「1」を設定し(ステップA348)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA349)。
次いで、客待ちデモフラグ領域をクリアし(ステップA350)、特図2の変動開始に関する信号(例えば、特別図柄2変動中信号をON)を試験信号出力データ領域にセーブする(ステップA351)。その後、特図2変動制御フラグ領域に変動中フラグをセーブし(ステップA352)、特図2点滅制御タイマ領域に点滅制御タイマ(特図2表示器51bの点滅の周期のタイマ)の初期値(例えば、100m秒)をセーブし(ステップA353)、特図2変動図柄番号領域に初期値(例えば、0)をセーブして(ステップA354)、特図2変動開始処理を終了する。
〔大当りフラグ1設定処理〕
図34(a)には、上述の特図1変動開始処理における大当りフラグ1設定処理(ステップA322)を示した。この大当りフラグ1設定処理では、まず、大当りフラグ1領域にはずれ情報をセーブする(ステップA361)。次に、RWMの特図1大当り乱数格納領域(保留数1用)から大当り乱数をロードし、準備して(ステップA362)、当該特図1大当り乱数格納領域(保留数1用)を0クリアする(ステップA363)。なお、保留数1用とは、消化順序が最先(ここでは特図1のうちで最先)の特図始動記憶についての情報(乱数等)を格納する領域である。その後、準備した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか判定する大当り判定処理(ステップA364)を行う。
そして、大当り判定処理(ステップA364)の判定結果が大当りである場合(ステップA365;Y)は、ステップA361にてはずれ情報をセーブした大当りフラグ1領域に大当り情報を上書きしてセーブし(ステップA366)、大当りフラグ1設定処理を終了する。一方、大当り判定処理(ステップA364)の判定結果が大当りでない場合(ステップA365;N)は、大当りフラグ1領域にはずれ情報をセーブしたまま大当りフラグ1設定処理を終了する。
〔大当りフラグ2設定処理〕
図34(b)には、上述の特図2変動開始処理における大当りフラグ2設定処理(ステップA342)を示した。この大当りフラグ2設定処理では、まず、大当りフラグ2領域にはずれ情報をセーブする(ステップA371)。次に、RWMの特図2大当り乱数格納領域(保留数1用)から大当り乱数をロードし、準備して(ステップA372)、当該特図2大当り乱数格納領域(保留数1用)を0クリアする(ステップA372)。なお、保留数1用とは、消化順序が最先(ここでは特図2のうちで最先)の特図始動記憶についての情報(乱数等)を格納する領域である。その後、準備した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか判定する大当り判定処理(ステップA374)を行う。
そして、大当り判定処理(ステップA374)の判定結果が大当りである場合(ステップA375;Y)は、ステップA371にてはずれ情報をセーブした大当りフラグ2領域に大当り情報を上書きしてセーブし(ステップA376)、大当りフラグ2設定処理を終了する。一方、大当り判定処理(ステップA374)の判定結果が大当りでない場合(ステップA375;N)は、大当りフラグ2領域にはずれ情報をセーブしたまま大当りフラグ2設定処理を終了する。
〔大当り判定処理〕
図35には、上述の大当りフラグ1設定処理及び大当りフラグ2設定処理における大当り判定処理(ステップA364,A374)を示した。この大当り判定処理では、まず、大当り判定値の下限判定値を設定し(ステップA381)、対象の大当り乱数の値が下限判定値未満かを判定する(ステップA382)。なお、大当りであるとは大当り乱数が大当り判定値と一致することである。大当り判定値は連続する複数の値であり、大当り乱数が、大当り判定値の下限の値である下限判定値以上で、かつ、大当り判定値の上限の値である上限判定値以下である場合に、大当りであると判定される。
大当り乱数の値が下限判定値未満である場合(ステップA382;Y)は、判定結果としてはずれを設定し(ステップA387)、大当り判定処理を終了する。
また、大当り乱数の値が下限判定値未満でない場合(ステップA382;N)は、高確率状態であるかを判定する(ステップA383)。
そして、高確率状態である場合(ステップA383;Y)は、高確率中の上限判定値を設定し(ステップA384)、対象の大当り乱数の値が上限判定値より大きいかを判定する(ステップA386)。また、高確率状態でない場合(ステップA383;N)は、低確率中の上限判定値を設定し(ステップA385)、対象の大当り乱数の値が上限判定値より大きいかを判定する(ステップA386)。
大当り乱数の値が上限判定値より大きい場合(ステップA386;Y)は、判定結果としてはずれを設定し(ステップA387)、大当り判定処理を終了する。
また、大当り乱数の値が上限判定値より大きくない場合(ステップA386;N)、すなわち大当りである場合は、判定結果として大当りを設定し(ステップA388)、大当り判定処理を終了する。
〔特図1停止図柄設定処理〕
図36には、上述の特図1変動開始処理における特図1停止図柄設定処理(ステップA323)を示した。この特図1停止図柄設定処理では、まず、大当りフラグ1が大当りかを判定し(ステップA391)、大当りである場合(ステップA391;Y)は、特図1大当り図柄乱数格納領域(保留数1用)から大当り図柄乱数をロードする(ステップA392)。次に、特図1大当り図柄テーブルを設定して(ステップA393)、ロードした大当り図柄乱数に対応する停止図柄番号を取得し、特図1停止図柄番号領域にセーブする(ステップA394)。この処理により特別結果の種類が選択される。
その後、特図1大当り停止図柄情報テーブルを設定して(ステップA395)、停止図柄番号に対応する停止図柄パターンを取得し、停止図柄パターン領域にセーブする(ステップA396)。停止図柄パターンとは、特図表示器(ここでは特図1表示器51a)での停止図柄や表示装置41での停止図柄を設定するためのものである。次に、停止図柄番号に対応するラウンド数上限値情報(本実施形態の場合、16Rまたは6Rを示す情報)を取得し、ラウンド数上限値情報領域にセーブして(ステップA397)、停止図柄番号に対応する確率変動判定データを取得し、確率変動判定データ領域にセーブして(ステップA398)、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップA401)。ここで、確率変動判定データは、大当り後にどのモードに移行するかを示す情報であり、本実施形態では、ステップA398において、「低確率データ(通常(普電サポートなし))」、「高確率データ1(確変(普電サポートあり))」、または「高確率データ2(潜伏確変(普電サポートなし))」が取得されて確率変動判定データ領域にセーブされる。
一方、大当りフラグ1が大当りでない場合(ステップA391;N)は、はずれ時の停止図柄番号を特図1停止図柄番号領域にセーブし(ステップA399)、はずれ停止図柄パターンを停止図柄パターン領域にセーブして(ステップA400)、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップA401)。以上の処理により、特図変動表示ゲームの結果に対応した停止図柄が設定される。
その後、飾り特図コマンドを飾り特図コマンド領域にセーブし(ステップA402)、演出コマンド設定処理(ステップA403)を行う。この飾り特図コマンドは、後に演出制御装置300に送信される。そして、停止図柄番号に対応する図柄データを試験信号出力データ領域にセーブし(ステップA404)、特図1大当り図柄乱数格納領域(保留数1用)を0クリアして(ステップA405)、特図1停止図柄設定処理を終了する。
〔特図2停止図柄設定処理〕
図37には、上述の特図2変動開始処理における特図2停止図柄設定処理(ステップA343)を示した。この特図2停止図柄設定処理では、まず、大当りフラグ2が大当りかを判定し(ステップA411)、大当りである場合(ステップA411;Y)は、特図2大当り図柄乱数格納領域(保留数1用)から大当り図柄乱数をロードする(ステップA412)。次に、特図2大当り図柄テーブルを設定して(ステップA413)、ロードした大当り図柄乱数に対応する停止図柄番号を取得し、特図2停止図柄番号領域にセーブする(ステップA414)。この処理により特別結果の種類が選択される。
その後、特図2大当り停止図柄情報テーブルを設定して(ステップA415)、停止図柄番号に対応する停止図柄パターンを取得し、停止図柄パターン領域にセーブする(ステップA416)。停止図柄パターンとは、特図表示器(ここでは特図2表示器51b)での停止図柄や表示装置41での停止図柄を設定するためのものである。次に、停止図柄番号に対応するラウンド数上限値情報(本実施形態の場合、16Rまたは6Rを示す情報)を取得し、ラウンド数上限値情報領域にセーブして(ステップA417)、停止図柄番号に対応する確率変動判定データを取得し、確率変動判定データ領域にセーブして(ステップA418)、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップA421)。
一方、大当りフラグ2が大当りでない場合(ステップA411;N)は、はずれ時の停止図柄番号を特図2停止図柄番号領域にセーブし(ステップA419)、はずれ停止図柄パターンを停止図柄パターン領域にセーブして(ステップA420)、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップA421)。以上の処理により、特図変動表示ゲームの結果に対応した停止図柄が設定される。
その後、飾り特図コマンドを飾り特図コマンド領域にセーブし(ステップA422)、演出コマンド設定処理(ステップA423)を行う。この飾り特図コマンドは、後に演出制御装置300に送信される。そして、停止図柄番号に対応する図柄データを試験信号出力データ領域にセーブし(ステップA424)、特図2大当り図柄乱数格納領域(保留数1用)を0クリアして(ステップA425)、特図2停止図柄設定処理を終了する。
すなわち、遊技制御装置100が、第1始動入賞口36での遊技球の検出に基づいて変動表示ゲームとして第1変動表示ゲームを実行し、第2始動入賞口97や普通変動入賞装置37での遊技球の検出に基づいて変動表示ゲームとして第2変動表示ゲームを実行する変動表示ゲーム実行手段をなす。また、遊技制御装置100が、判定手段(遊技制御装置100)による判定結果に基づき変動表示ゲームの実行を制御する変動表示ゲーム実行制御手段をなす。
〔特図情報設定処理〕
次に、上述の特図保留情報判定処理、特図1変動開始処理、及び特図2変動開始処理における特図情報設定処理(ステップA180,A324,A344)の詳細について説明する。
図38に示すように特図情報設定処理では、まず、変動グループ選択ポインタテーブルを設定して(ステップA431)、現在の確率状態及び停止図柄バターン番号に対応する変動グループ選択ポインタを取得する(ステップA432)。ここで、本実施形態では、停止図柄パターン番号として、「0:はずれ図柄」、「1:16R確変図柄」、「2:6R確変図柄A」、「3:6R確変図柄B」、「4:6R確変図柄C」、または「5:6R通常図柄」が設定されている。また、現在の確率状態として、「1:通常(普電サポートなし)」、「2:確変(普電サポートあり)」、または「3:潜伏確変(普電サポートなし)」が設定されている。
次いで、停止図柄パターン番号が「0」であるか、すなわち停止図柄パターンがはずれ図柄パターンであるか判定する(ステップA433)。
ステップA433で、停止図柄パターンがはずれ図柄パターンでないと判定した場合(ステップA433;N)には、ステップA432で取得した変動グループ選択ポインタを、変動グループ選択ポインタ領域にセーブして(ステップA435)、特図情報設定処理を終了する。
一方、ステップA433で、停止図柄パターンがはずれ図柄パターンであると判定した場合(ステップA433;Y)には、特図1保留数と特図2保留数の合計値に対応する値に変動グループ選択ポインタを更新し(ステップA434)、当該更新した変動グループ選択ポインタを、変動グループ選択ポインタ領域にセーブして(ステップA435)、特図情報設定処理を終了する。
このように、本実施形態では、停止図柄パターンが大当り図柄パターンである場合には、変動パターンの振り分けは保留数に影響しないが、停止図柄パターンがはずれ図柄パターンである場合には、変動パターンの振り分けは保留数に影響する。
具体的には、例えば、停止図柄パターンがはずれ図柄パターンであって、現在の遊技状態が通常(普電サポートなし)または潜伏確変(普電サポートなし)の場合には、特図1保留数と特図2保留数の合計値が「1」である際と、「2」,「3」である際と、「4」,「5」である際と、「6」,「7」,「8」である際で変動パターンの振り分けが異なる。
また、停止図柄パターンがはずれ図柄パターンであって、現在の遊技状態が確変(普電サポートあり)の場合には、特図1保留数と特図2保留数の合計値が「1」である際と、「2」である際と、「3」である際と、「4」,「5」,「6」,「7」,「8」である際で変動パターンの振り分けが異なる。
〔変動パターン設定処理〕
次に、上述の特図保留情報判定処理、特図1変動開始処理、及び特図2変動開始における変動パターン設定処理(ステップA181,A326,A346)の詳細について説明する。
図39に示すように変動パターン設定処理では、まず、変動グループアドレステーブルを設定し(ステップA441)、変動グループ選択ポインタに対応する変動グループテーブルのアドレスを取得し、準備して(ステップA442)、対象(特図1または特図2)の変動パターン乱数1格納領域(保留数1用)から変動パターン乱数1をロードし、準備する(ステップA443)。
次いで、2バイト振り分け処理(ステップA444)を行って、振り分けられた結果得られた変動パターン選択テーブルのアドレスを取得し、準備して(ステップA445)、対象(特図1または特図2)の変動パターン乱数2格納領域(保留数1用)から変動パターン乱数2をロードし、準備する(ステップA446)。
次いで、振り分け処理(ステップA447)を行い、振り分けられた結果得られた変動パターン番号を取得し、変動パターン番号領域にセーブして(ステップA448)、変動パターン設定処理を終了する。すなわち、遊技制御装置100が、ゲームの実行態様である変動パターンを複数のうちから設定する変動パターン設定手段をなす。
〔変動開始情報設定処理〕
次に、上述の特図1変動開始処理及び特図2変動開始処理における変動開始情報設定処理(ステップA327,A347)の詳細について説明する。図40に示すように変動開始情報設定処理では、まず、対象の変動パターン乱数1〜2の乱数格納領域をクリアする(ステップA451)。次に、変動時間値テーブルを設定し(ステップA452)、変動パターン番号に対応する変動時間値を取得し、特図ゲーム処理タイマ領域にセーブする(ステップA453)。
そして、変動パターン番号に対応する変動コマンド(MODE,ACTION)を準備して(ステップA454)、演出コマンド設定処理を行う(ステップA455)。次に、変動図柄判別フラグに対応する特図保留数を−1更新して(ステップA456)、変動図柄判別フラグに対応する乱数格納領域のアドレスを設定する(ステップA457)。次いで、乱数格納領域をシフトし(ステップA458)、シフト後の空き領域をクリアする(ステップA459)。次いで、変動順序フラグ格納領域をシフトし(ステップA460)、シフト後の空き領域をクリアして(ステップA461)、変動開始情報設定処理を終了する。
以上の処理により、特図変動表示ゲームの開始に関する情報が設定される。すなわち、遊技制御装置100が、始動記憶手段(遊技制御装置100)に記憶された各種の乱数値の判定を行う判定手段をなす。また、遊技制御装置100が、始動記憶の判定情報に基づいて、変動表示ゲームで実行する識別情報の変動パターンを決定することが可能な変動パターン決定手段をなす。
そして、これらの特図変動表示ゲームの開始に関する情報は後に演出制御装置300に送信され、演出制御装置300では、特図変動表示ゲームの開始に関する情報の受信に基づき、決定された変動パターンに応じて飾り特図変動表示ゲームでの詳細な演出内容を設定する。これらの特図変動表示ゲームの開始に関する情報としては、始動記憶数(保留数)に関する情報を含む飾り特図保留数コマンド、停止図柄に関する情報を含む飾り特図コマンド、特図変動表示ゲームの変動パターンに関する情報を含む変動コマンド、停止時間の延長に関する情報を含む停止情報コマンドが挙げられ、この順でコマンドが演出制御装置300に送信される。特に、飾り特図コマンドを変動コマンドよりも先に送信することで、演出制御装置300での処理を効率よく進めることができる。
〔特図変動中処理〕
次に、上述の特図ゲーム処理における特図変動中処理(ステップA9)の詳細について説明する。
図41に示すように、特図変動中処理では、まず、変動図柄判別フラグに対応する図柄停止コマンドを準備して(ステップA501)、演出コマンド設定処理(ステップA502)を行う。
次いで、停止図柄パターン番号に対応する表示時間を設定して(ステップA503)、設定した表示時間を特図ゲーム処理タイマ領域にセーブする(ステップA504)。本実施形態の場合、停止図柄パターンがはずれ図柄パターンである場合には表示時間として800m秒を設定し、停止図柄パターンが大当り図柄パターンである場合には表示時間として2000m秒を設定する。
次いで、処理番号として特図表示中処理にかかる「2」を設定し(ステップA505)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA506)。
次いで、特図1の変動終了に関する信号(例えば、特別図柄1変動中信号をOFF)を試験信号出力データ領域にセーブし(ステップA507)、特図2の変動終了に関する信号(例えば、特別図柄2変動中信号をOFF)を試験信号出力データ領域にセーブして(ステップA508)、外部情報端子に出力用の特図変動表示ゲームの実行回数に係る図柄確定回数信号制御タイマ領域に制御タイマ初期値(例えば、256m秒)をセーブする(ステップA509)。その後、特図1表示器51aにおける特図1変動表示ゲームの制御用の情報として、特図1表示器51aでの変動停止に係る停止フラグを特図1変動制御フラグ領域にセーブし(ステップA510)、特図2表示器51bにおける特図2変動表示ゲームの制御用の情報として、特図2表示器51bでの変動停止に係る停止フラグを特図2変動制御フラグ領域にセーブして(ステップA511)、特図変動中処理を終了する。
〔特図表示中処理〕
次に、上述の特図ゲーム処理における特図表示中処理(ステップA10)の詳細について説明する。図42に示すように、特図表示中処理では、まず、特図1変動開始処理における大当りフラグ1設定処理にて設定された大当りフラグ1と、特図2変動開始処理における大当りフラグ2設定処理にて設定された大当りフラグ2と、をロードして(ステップA601)、RWMの大当りフラグ1領域及び大当りフラグ2領域をクリアする処理(ステップA602)を行う。そして、ロードされた大当りフラグ2が大当りかを判定して(ステップA603)、大当りである(ステップA603;Y)と判定すると、第2特図変動表示ゲームの大当り(特図2大当り)の開始に関する試験信号(例えば、条件装置作動中信号をON、役物連続作動装置作動中信号をON、特別図柄2当り信号をON)をRWMの試験信号出力データ領域にセーブして(ステップA606)、ラウンド数上限値テーブルを設定する(ステップA607)。
一方、ステップA603にて、大当りフラグ2のチェックの結果、大当りでない(ステップA603;N)と判定すると、ロードされた大当りフラグ1が大当りかを判定して(ステップA604)、大当りである(ステップA604;Y)と判定すると、第1特図変動表示ゲームの大当り(特図1大当り)の開始に関する試験信号(例えば、条件装置作動中信号をON、役物連続作動装置作動中信号をON、特別図柄1当り信号をON)をRWMの試験信号出力データ領域にセーブして(ステップA605)、ラウンド数上限値テーブルを設定する(ステップA607)。
ラウンド数上限値テーブルを設定する処理(ステップA607)を行った後、ラウンド数上限値情報に対応するラウンド数上限値(本実施形態の場合、16Rまたは6R)を取得し、RWMのラウンド数上限値領域にセーブする(ステップA608)。続けて、ラウンド数上限値情報に対応するラウンドLEDポインタを取得し、RWMのラウンドLEDポインタ領域にセーブする(ステップA609)。
次に、停止図柄パターンに対応した飾り特図コマンドをRWMの飾り特図コマンド領域からロードし、準備して(ステップA610)、演出コマンド設定処理(ステップA613)を行う。その後、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報に係る確率情報コマンドを準備して(ステップA612)、演出コマンド設定処理(ステップA613)を行う。続けて、特図1又は特図2停止図柄設定処理にて設定された図柄情報(停止図柄番号又は停止図柄パターン)に対応するファンファーレコマンドを準備して(ステップA614)、演出コマンド設定処理(ステップA615)を行う。
その後、大当りファンファーレ時間(例えば、10000m秒)を特図ゲーム処理タイマ領域にセーブし(ステップA616)、大入賞口開放情報に対応する大入賞口(特別変動入賞装置38)の大入賞口不正入賞数領域をクリアして(ステップA617)、大入賞口開放情報に対応する大入賞口の大入賞口不正監視期間フラグ領域に不正監視期間外フラグをセーブする(ステップA618)。その後、ファンファーレ/インターバル中処理移行設定処理1(ステップA619)を行い、特図表示中処理を終了する。
一方、ステップA604にて、大当りフラグ1が大当りでない場合(ステップA604;N)は、処理番号として特図普段処理にかかる「0」を設定して(ステップA620)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA621)。
次いで、変動図柄判別フラグ領域をクリアし(ステップA622)、大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブして(ステップA623)、特図表示中処理を終了する。
〔ファンファーレ/インターバル中処理移行設定処理1〕
次に、上述の特図表示中処理におけるファンファーレ/インターバル中処理移行設定処理1(ステップA619)の詳細について説明する。図43に示すように、ファンファーレ/インターバル中処理移行設定処理1では、まず、処理番号としてファンファーレ/インターバル中処理にかかる「3」を設定し(ステップA631)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA632)。
次に、大当り(特別遊技状態)の開始に関する信号(例えば、大当り1信号をON、大当り2信号をON、大当り3信号をON、大当り4信号をON)を外部情報出力データ領域にセーブし(ステップA633)、高確率状態と時短状態の終了に関する信号(例えば、特別図柄1高確率状態信号をOFF、特別図柄2高確率状態信号をOFF、特別図柄1変動時間短縮状態信号をOFF、特別図柄2変動時間短縮状態信号をOFF、普通図柄1高確率状態信号をOFF)を試験信号出力データ領域にセーブする(ステップA634)。なお、特図高確率中でも、普図は確率状態しか変化しないので、普通図柄1変動時間短縮状態信号及び普通電動役物1開放延長状態信号は常時OFFされている。その後、特別遊技状態で実行したラウンド数を管理するためのラウンド数領域をクリアし(ステップA635)、遊技状態表示番号領域に時短なしの番号をセーブして(ステップA636)、普図ゲームモードフラグ領域に普図低確率フラグをセーブする(ステップA637)。
そして、変動図柄判別フラグ領域をクリアし(ステップA638)、高確率状態の表示に係る遊技盤30に設けた遊技状態表示LED(第3遊技状態表示部58)を消灯させるために高確率報知フラグ領域をクリアして(ステップA639)、特図ゲームモードフラグ領域に特図低確率&時短なしフラグをセーブする(ステップA640)。次に、停電復旧時に演出制御装置300に出力されるコマンドをセーブする停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブし(ステップA641)、右打ち指示に関する信号(例えば、発射位置指定信号1をON)を試験信号出力データ領域にセーブし(ステップA642)、右打ち中の表示LED(例えば、第1遊技状態表示部56)を点灯させるため、遊技状態表示番号2領域に右打ち状態中の番号をセーブして(ステップA643)、ファンファーレ/インターバル中処理移行設定処理1を終了する。これにより、特別遊技状態の発生に伴い演出モードの情報が一旦クリアされることとなる。
〔ファンファーレ/インターバル中処理〕
次に、上述の特図ゲーム処理におけるファンファーレ/インターバル中処理(ステップA11)の詳細について説明する。図44に示すように、ファンファーレ/インターバル中処理では、まず、特別遊技状態のラウンド数を+1更新し(ステップA701)、特別遊技状態のラウンド数に対応するラウンドコマンドを準備して(ステップA702)、演出コマンド設定処理(ステップA703)を行う。
次いで、大入賞口開放時間(例えば、29秒)を特図ゲーム処理タイマ領域にセーブし(ステップA704)、処理番号として大入賞口開放中処理にかかる「4」に設定して(ステップA705)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA706)。
次いで、大入賞口の開放開始に関する信号(例えば、特別電動役物1作動中信号をON)を試験信号出力データ領域にセーブして(ステップA707)、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアする(ステップA708)。そして、特別変動入賞装置38の開閉扉38cを開放するために、大入賞口ソレノイド出力データ領域にオンデータをセーブして(ステップA709)、ファンファーレ/インターバル中処理を終了する。
〔大入賞口開放中処理〕
次に、上述の特図ゲーム処理における大入賞口開放中処理(ステップA12)の詳細について説明する。図45に示すように、大入賞口開放中処理では、まず、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるかを判定する(ステップA801)。
そして、最終ラウンドでない場合(ステップA801;N)は、ラウンド間のインターバルに係るインターバルコマンドを準備して(ステップA802)、演出コマンド設定処理(ステップA804)を行い、ステップA805の処理に移行する。
一方、最終ラウンドである場合(ステップA801;Y)は、特別遊技状態の終了の際におけるエンディング表示画面の表示制御等に係るエンディングコマンドを準備して(ステップA803)、演出コマンド設定処理(ステップA804)を行い、ステップA805の処理に移行する。
ステップA805では、処理番号として大入賞口残存球処理にかかる「5」に設定する(ステップA805)。そして、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA806)。
次いで、残存球処理時間(例えば、1.9秒)を特図ゲーム処理タイマ領域にセーブし(ステップA807)、特別変動入賞装置38の開閉扉38cを閉鎖するために、大入賞口ソレノイド38bをオフさせるためのオフデータを大入賞口ソレノイド出力データ領域にセーブして(ステップA808)、大入賞口開放中処理を終了する。
〔大入賞口残存球処理〕
次に、上述の特図ゲーム処理における大入賞口残存球処理(ステップA13)の詳細について説明する。図46に示すように、大入賞口残存球処理では、まず、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるかを判定する(ステップA901)。
そして、特別遊技状態における現在のラウンドが最終ラウンドでない場合(ステップA901;N)は、処理番号としてファンファーレ/インターバル中処理にかかる「3」を設定し(ステップA902)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA903)。
次いで、インターバル時間(例えば、0.1秒)を特図ゲーム処理タイマ領域にセーブし(ステップA904)、大入賞口(特別変動入賞装置38)の開放終了に関する信号(例えば、特別電動役物1作動中信号をOFF)を試験信号出力データ領域にセーブして(ステップA905)、大入賞口残存球処理を終了する。
一方、特別遊技状態における現在のラウンドが最終ラウンドである場合(ステップA901;Y)は、処理番号として大当り終了処理にかかる「6」を設定し(ステップA906)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA907)。
次いで、エンディング時間(例えば、5.1秒)を特図ゲーム処理タイマ領域にセーブして(ステップA908)、大入賞口(特別変動入賞装置38)の開放終了に関する信号(例えば、特別電動役物1作動中信号をOFF)を試験信号出力データ領域にセーブする(ステップA909)。
次いで、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアし(ステップA910)、特別遊技状態のラウンド数を記憶するラウンド数領域の情報をクリアし(ステップA911)、特別遊技状態のラウンド数の上限値を記憶するラウンド数上限値領域の情報をクリアして(ステップA912)、大入賞口残存球処理を終了する。
〔大当り終了処理〕
次に、上述の特図ゲーム処理における大当り終了処理(ステップA14)の詳細について説明する。図47に示すように、この大当り終了処理では、まず、確率変動判定データによるサブルーチンコールを行う(ステップA1001)。
ステップA1001で、確率変動判定データが「低確率データ(通常(普電サポートなし))」の場合には、大当り終了設定処理1(ステップA1002)を行って、ステップA1005の処理に移行する。
また、ステップA1001で、確率変動判定データが「高確率データ1(確変(普電サポートあり))」の場合には、大当り終了設定処理2(ステップA1003)を行って、ステップA1005の処理に移行する。
また、ステップA1001で、確率変動判定データが「高確率データ2(潜伏確変(普電サポートなし))」の場合には、大当り終了設定処理3(ステップA1004)を行って、ステップA1005の処理に移行する。
ステップA1005では、停電復旧時送信コマンド領域から確率情報コマンドをロードし、準備する(ステップA1005)。そして、演出コマンド設定処理(ステップA1006)を行う。
次いで、処理番号として特図普段処理にかかる「0」を設定して(ステップA1007)、その処理番号を特図ゲーム処理番号領域にセーブする(ステップA1008)。
次いで、大当りの終了に関する信号(例えば、大当り1信号をOFF、大当り3信号をOFF、大当り4信号をOFF)を外部情報出力データ領域にセーブして(ステップA1009)、大当りの終了に関する信号(例えば、条件装置作動中信号をOFF、役物連続作動装置作動中信号をOFF、特別図柄1当り信号をOFF、特別図柄2当り信号をOFF)を試験信号出力データ領域にセーブする(ステップA1010)。
次いで、確率判定フラグ領域の情報をクリアし(ステップA1011)、大当りのラウンド回数を示すラウンドLEDのポインタ領域の情報をクリアし(ステップA1012)、大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブして(ステップA1013)、大当り終了処理を終了する。
〔大当り終了設定処理1〕
図48(a)には、上述の大当り終了処理における大当り終了設定処理1(ステップA1002)を示した。この大当り終了設定処理1では、まず、時短状態なしに関する信号(例えば、大当り2信号をOFF)を外部情報出力データ領域にセーブして(ステップA1021)、低確率状態と時短状態なしの開始に関する信号(例えば、特別図柄1高確率状態信号をOFF、特別図柄2高確率状態信号をOFF、特別図柄1変動時間短縮状態信号をOFF、特別図柄2変動時間短縮状態信号をOFF、普通図柄1高確率状態信号をOFF)を試験信号出力データ領域にセーブする(ステップA1022)。
次いで、遊技状態表示番号領域に時短状態なしの番号をセーブし(ステップA1023)、普図ゲームモードフラグ領域に普図低確率フラグをセーブして(ステップA1024)、特図ゲームモードフラグ領域に特図低確率&時短なしフラグをセーブする(ステップA1025)。
次いで、左打ち指示に関する信号(例えば、発射位置指定信号1をOFF)を試験信号出力データ領域にセーブして(ステップA1026)、右打ち中の表示LED(第1遊技状態表示部56)を消灯させるため、遊技状態表示番号2領域に左打ち状態中の番号をセーブする(ステップA1027)。
次いで、停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブして(ステップA1028)、大当り終了設定処理1を終了する。
〔大当り終了設定処理2〕
図48(b)には、上述の大当り終了処理における大当り終了設定処理2(ステップA1003)を示した。この大当り終了設定処理2では、まず、時短状態の開始に関する信号(例えば、大当り2信号をON)を外部情報出力データ領域にセーブする(ステップA1031)。時短状態の開始に関する信号は、大当り中から出力されているので継続する形で、外部情報出力データ領域にセーブされる。
次いで、高確率状態と時短状態ありの開始に関する信号(例えば、特別図柄1高確率状態信号をON、特別図柄2高確率状態信号をON、特別図柄1変動時間短縮状態信号をON、特別図柄2変動時間短縮状態信号をON、普通図柄1高確率状態信号をON)を試験信号出力データ領域にセーブする(ステップA1032)。
次に、遊技状態表示番号領域に時短状態ありの番号をセーブし(ステップA1033)、普図ゲームモードフラグ領域に普図高確率フラグをセーブして(ステップA1034)、特図ゲームモードフラグ領域に特図高確率&時短ありフラグをセーブする(ステップA1035)。
次いで、停電復旧時送信コマンド領域に確率情報コマンド(高確率)をセーブして(ステップA1036)、大当り終了設定処理2を終了する。なお、本実施形態の場合、時短状態中は右打ちモードであるが、大当り中から右打ちモードが設定されているので、大当り終了設定処理2では右打ちに関する設定を行わない。
〔大当り終了設定処理3〕
図49には、上述の大当り終了処理における大当り終了設定処理3(ステップA1004)を示した。この大当り終了設定処理3では、まず、時短状態なしに関する信号(例えば、大当り2信号をOFF)を外部情報出力データ領域にセーブして(ステップA1041)、高確率状態と時短状態なしの開始に関する信号(例えば、特別図柄1高確率状態信号をON、特別図柄2高確率状態信号をON、特別図柄1変動時間短縮状態信号をOFF、特別図柄2変動時間短縮状態信号をOFF、普通図柄1高確率状態信号をOFF)を試験信号出力データ領域にセーブする(ステップA1042)。
次いで、遊技状態表示番号領域に時短状態なしの番号をセーブし(ステップA1043)、普図ゲームモードフラグ領域に普図低確率フラグをセーブして(ステップA1044)、特図ゲームモードフラグ領域に特図高確率&時短なしフラグをセーブする(ステップA1045)。
次いで、左打ち指示に関する信号(例えば、発射位置指定信号1をOFF)を試験信号出力データ領域にセーブして(ステップA1046)、右打ち中の表示LED(第1遊技状態表示部56)を消灯させるため、遊技状態表示番号2領域に左打ち状態中の番号をセーブする(ステップA1047)。
次いで、停電復旧時送信コマンド領域に確率情報コマンド(潜伏)をセーブして(ステップA1048)、大当り終了設定処理3を終了する。
〔演出コマンド設定処理〕
次に、タイマ割込み処理中に実行される各処理における演出コマンド設定処理の詳細について説明する。図50に示すように、演出コマンド設定処理では、まず、演出用シリアル送信バッファのステータスを読み込み(ステップA2001)、演出用シリアル送信バッファは満杯であるかを判定する(ステップA2002)。
演出用シリアル送信バッファが満杯である場合(ステップA2002;Y)は、演出用シリアル送信バッファのステータスを読み込む処理(ステップA2001)に戻る。
また、演出用シリアル送信バッファが満杯でない場合(ステップA2002;N)は、コマンドデータ(MODE)を演出用シリアル送信バッファに書き込む(ステップA2003)。
次いで、演出用シリアル送信バッファのステータスを読み込み(ステップA2004)、演出用シリアル送信バッファは満杯であるかを判定する(ステップA2005)。
演出用シリアル送信バッファが満杯である場合(ステップA2005;Y)は、演出用シリアル送信バッファのステータスを読み込む処理(ステップA2004)に戻る。
また、演出用シリアル送信バッファが満杯でない場合(ステップA2005;N)は、コマンドデータ(ACTION)を演出用シリアル送信バッファに書き込んで(ステップA2006)、演出コマンド設定処理を終了する。
〔図柄変動制御処理〕
図51に、前述の特図ゲーム処理における図柄変動制御処理(ステップA16,A18)、後述の普図ゲーム処理における図柄変動制御処理(ステップB15)を示した。図柄変動制御処理は、特別図柄(第1特図、第2特図等)や普通図柄(普図)の変動の制御と特別図柄や普通図柄の表示データの設定を行う処理である。
この図柄変動制御処理では、まず、制御対象の図柄(例えば、第1特図、第2特図、及び普図の何れか)にかかる変動制御フラグが変動中であるかチェックする(ステップA2101)。本実施形態の場合、ステップA15、ステップA17、ステップB14にて準備した変動制御テーブル上に、変動制御フラグ領域の下位アドレス、表示テーブル2(停止用)のアドレス、表示テーブル1(変動用)のアドレスが定義されている。
制御対象の図柄にかかる変動制御フラグが変動中である場合(ステップA2102;Y)は、制御対象の図柄に対応する図柄表示テーブル(変動用)を取得する(ステップA2103)。本実施形態の場合、ステップA15、ステップA17、ステップB14にて準備した変動制御テーブル上に、図柄表示テーブル(変動用)のアドレスが定義されている。
次いで、制御対象の点滅制御タイマを−1更新して(ステップA2104)、更新後の点滅制御タイマが「0」であるかを判定する(ステップA2105)。
更新後の点滅制御タイマが「0」でない場合(ステップA2105;N)は、制御対象の変動図柄番号領域の値に対応する表示データを取得する(ステップA2108)。そして、取得した表示データをRAM111C内に設けられた対象のセグメント領域にセーブして(ステップA2111)、図柄変動制御処理を終了する。
また、更新後の点滅制御タイマが「0」である場合(ステップA2105;Y)は、点滅制御タイマ初期値(例えば、100m秒)を対象の点滅タイマ領域にセーブし(ステップA2106)、制御対象の変動図柄番号を+1更新して(ステップA2107)、制御対象の変動図柄番号領域の値に対応する表示データを取得する(ステップA2108)。そして、取得した表示データをRAM111C内に設けられた対象のセグメント領域にセーブして(ステップA2111)、図柄変動制御処理を終了する。
一方、制御対象の図柄にかかる変動制御フラグが変動中でない場合(ステップA2102;N)は、制御対象の図柄に対応する図柄表示テーブル(停止用)を取得する(ステップA2109)。本実施形態の場合、ステップA15、ステップA17、ステップB14にて準備した変動制御テーブル上に、図柄表示テーブル(停止用)のアドレスが定義されている。
次いで、制御対象の停止図柄番号領域の値に対応する表示データを取得し(ステップA2110)、取得した表示データを対象のセグメント領域にセーブして(ステップA2111)、図柄変動制御処理を終了する。
〔振り分け処理〕
図52(a)には、上述の変動パターン設定処理における振り分け処理(ステップA447)を示した。
この振り分け処理では、まず、選択テーブル(ステップA445にて準備した変動パターン選択テーブル)の先頭のデータが振り分けなしのコード(すなわち「0」)であるかをチェックする(ステップA2201)。
そして、選択テーブル(変動パターン選択テーブル)の先頭のデータが振り分けなしのコードである場合(ステップA2202;Y)は、振り分けた結果に対応するデータのアドレスに更新して(ステップA2207)、振り分け処理を終了する。
一方、選択テーブル(変動パターン選択テーブル)の先頭のデータが振り分けなしのコードでない場合(ステップA2202;N)は、選択テーブル(変動パターン選択テーブル)に最初に規定されている一の振り分け値を取得する(ステップA2203)。
続けて、ステップA446にて準備した乱数値(変動パターン乱数2の値)からステップA2203にて取得した振り分け値を減算して新たな乱数値を算出し(ステップA2204)、当該算出した新たな乱数値が「0」よりも小さいかを判定する(ステップA2205)。そして、新たな乱数値が「0」よりも小さくない場合(ステップA2205;N)は、次の振り分け値のアドレスに更新した後(ステップA2206)、ステップA2203の処理に移行して、それ以降の処理を行う。
すなわち、選択テーブル(変動パターン選択テーブル)に次に規定されている振り分け値を取得し(ステップA2203)、その後、前回のステップA2205にて判定済みの乱数値から振り分け値を減算することで新たな乱数値を算出して(ステップA2204)、算出した新たな乱数値が「0」よりも小さいか否かを判定する(ステップA2205)。
上記の処理をステップA2205にて新たな乱数値が「0」よりも小さいと判定(ステップA2205;Y)するまで実行する。これにより、選択テーブル(変動パターン選択テーブル)に規定されている少なくとも一の変動パターン番号の中から何れか一の変動パターン番号が選択される。
そして、ステップA2205にて、新たな乱数値が「0」よりも小さいと判定すると(ステップA2205;Y)、振り分けた結果に対応するデータのアドレスに更新して(ステップA2207)、振り分け処理を終了する。
〔2バイト振り分け処理〕
図52(b)には、上述の変動パターン設定処理における2バイト振り分け処理(ステップA444)を示した。2バイト振り分け処理は、変動パターン乱数1に基づいて変動グループテーブルから特図変動表示ゲームの変動パターン選択テーブルを選択するための処理である。
この2バイト振り分け処理では、まず、選択テーブル(ステップA442にて準備した変動グループテーブル)の先頭のデータが振り分けなしのコード(すなわち「0」)であるかをチェックする(ステップA2301)。
そして、選択テーブル(変動グループテーブル)の先頭のデータが振り分けなしのコードである場合(ステップA2302;Y)は、振り分けた結果に対応するデータのアドレスに更新して(ステップA2307)、2バイト振り分け処理を終了する。
一方、選択テーブル(変動グループテーブル)の先頭のデータが振り分けなしのコードでない場合(ステップA2302;N)は、選択テーブル(変動グループテーブル)に最初に規定されている一の振り分け値を取得する(ステップA2303)。
続けて、ステップA443にて準備した乱数値(変動パターン乱数1の値)からステップA2303にて取得した振り分け値を減算して新たな乱数値を算出し(ステップA2304)、当該算出した新たな乱数値が「0」よりも小さいかを判定する(ステップA2305)。そして、新たな乱数値が「0」よりも小さくない場合(ステップA2305;N)は、次の振り分け値のアドレスに更新した後(ステップA2306)、ステップA2303の処理に移行して、それ以降の処理を行う。
すなわち、選択テーブル(変動グループテーブル)に次に規定されている振り分け値を取得し(ステップA2303)、その後、前回のステップA2305にて判定済みの乱数値から振り分け値を減算することで新たな乱数値を算出して(ステップA2304)、算出した新たな乱数値が「0」よりも小さいか否かを判定する(ステップA2305)。
上記の処理をステップA2305にて新たな乱数値が「0」よりも小さいと判定(ステップA2305;Y)するまで実行する。これにより、選択テーブル(変動グループテーブル)に規定されている少なくとも一の変動パターン選択テーブルの中から何れか一の変動パターン選択テーブルが選択される。
そして、ステップA2305にて、新たな乱数値が「0」よりも小さいと判定すると(ステップA2305;Y)、振り分けた結果に対応するデータのアドレスに更新して(ステップA2307)、2バイト振り分け処理を終了する。
図52(a)に示す振り分け処理の構成と、図52(b)に示す2バイト振り分け処理の構成とは、基本的に同じであるが、振り分けに使用する乱数のサイズが1バイトであるか、2バイトであるかという点で異なるため、計算するためのプログラム命令が異なっている。
〔普図ゲーム処理〕
次に、上述のタイマ割込み処理における普図ゲーム処理(ステップS110)の詳細について説明する。普図ゲーム処理では、ゲートスイッチ34aの入力の監視と、普図変動表示ゲームに関する処理全体の制御、普図の表示の設定等を行う。
図53に示すように、普図ゲーム処理では、まず、ゲートスイッチ34aからの入力を監視するゲートスイッチ監視処理(ステップB1)を行い、始動口2スイッチ37aからの入力を監視する普電入賞スイッチ監視処理(ステップB2)を行う。次に、普図ゲーム処理タイマが「0」でなければ−1更新する(ステップB3)。なお、普図ゲーム処理タイマの最小値は「0」に設定されている。そして、普図ゲーム処理タイマの値が「0」であるかを判定する(ステップB4)。
普図ゲーム処理タイマの値が「0」である(ステップB4;Y)、すなわちタイムアップした又はすでにタイムアップしていたと判定すると、普図ゲーム処理番号に対応する処理に分岐させるために参照する普図ゲームシーケンス分岐テーブルをレジスタに設定する処理(ステップB5)を行って、当該テーブルを用いて普図ゲーム処理番号に対応する処理の分岐先アドレスを取得する処理(ステップB6)を行う。そして、普図ゲーム処理番号に応じてサブルーチンコールを行う(ステップB7)。
ステップB7にて、普図ゲーム処理番号が「0」の場合は、普図変動表示ゲームの変動開始を監視し、普図変動表示ゲームの変動開始の設定や演出の設定や、普図変動中処理を行うために必要な情報の設定等を行う普図普段処理(ステップB8)を行う。
また、ステップB7にて、普図ゲーム処理番号が「1」の場合は、普図表示中処理を行うために必要な情報の設定等を行う普図変動中処理(ステップB9)を行う。
また、ステップB7にて、普図ゲーム処理番号が「2」の場合は、普図変動表示ゲームの結果が当りであれば、時短状態中であるか否かに応じた普電開放時間の設定や、普図当り中処理を行うために必要な情報の設定等を行う普図表示中処理(ステップB10)を行う。
また、ステップB7にて、普図ゲーム処理番号が「3」の場合は、普図当り中処理の継続、或いは普電残存球処理を行うために必要な情報の設定等を行う普図当り中処理(ステップB11)を行う。
また、ステップB7にて、普図ゲーム処理番号が「4」の場合は、普図当り終了処理を行うために必要な情報の設定等を行う普電残存球処理(ステップB12)を行う。
また、ステップB7にて、普図ゲーム処理番号が「5」の場合は、普図普段処理を行うために必要な情報の設定等を行う普図当り終了処理(ステップB13)を行う。
その後、普図表示器52による普通図柄の変動を制御するための普図変動制御テーブルを準備した後(ステップB14)、普図表示器52による普通図柄の変動の制御に係る図柄変動制御処理(ステップB15)を行って、普図ゲーム処理を終了する。
一方、ステップB4にて、普図ゲーム処理タイマの値が「0」でない(ステップB4;N)、すなわちタイムアップしていないと判定すると、ステップB14の処理に移行して、それ以降の処理を行う。
〔ゲートスイッチ監視処理〕
次に、上述の普図ゲーム処理におけるゲートスイッチ監視処理(ステップB1)の詳細について説明する。図54に示すように、ゲートスイッチ監視処理では、まず、ゲートスイッチ34aに入力があるかを判定する(ステップB101)。そして、ゲートスイッチ34aに入力がある場合(ステップB101;Y)は、右打ちする遊技状態(例えば、大当り中、特図時短中(普電サポート中))であるかを判定する(ステップB102)。
右打ちする遊技状態である場合(ステップB102;Y)は、普図保留数を取得して当該普図保留数が上限値(例えば、4)未満であるかを判定する(ステップB105)。
また、右打ちする遊技状態でない場合(ステップB102;N)は、左打ち指示コマンドを準備し(ステップB103)、演出コマンド設定処理(ステップB104)を行った後に、普図保留数を取得して当該普図保留数が上限値(例えば、4)未満であるかを判定する(ステップB105)。
普図保留数が上限値未満である場合(ステップB105;Y)は、普図保留数を+1更新し(ステップB106)、更新後の普図保留数に対応する当り乱数格納領域のアドレスを算出する(ステップB107)。そして、当り乱数を抽出し、RWMの当り乱数格納領域にセーブして(ステップB108)、当り図柄乱数を抽出し、RWMの当り図柄乱数格納領域にセーブして(ステップB109)、ゲートスイッチ監視処理を終了する。
また、ステップB101にてゲートスイッチ34aに入力がないと判定した場合(ステップB101;N)や、ステップB105にて普図保留数が上限値未満でないと判定した場合(ステップB105;N)は、ゲートスイッチ監視処理を終了する。
〔普電入賞スイッチ監視処理〕
次に、上述の普図ゲーム処理における普電入賞スイッチ監視処理(ステップB2)の詳細について説明する。図55に示すように、普電入賞スイッチ監視処理では、まず、普図当り中か、すなわち普図変動表示ゲームが当り状態となって普通変動入賞装置37が所定回数の開放動作を実行中であるかを判定する(ステップB201)。そして、普図当り中である場合(ステップB201;Y)は、始動口2スイッチ37aに入力があるかを判定し(ステップB202)、始動口2スイッチ37aに入力があると判定した場合(ステップB202;Y)は、普電カウンタのカウント数を+1更新する(ステップB203)。
次に、更新後の普電カウンタのカウント数が上限値(例えば、6)以上であるかを判定して(ステップB204)、カウント数が上限値以上であると判定した場合(ステップB204;Y)は、普図当り終了ポインタ領域から当り終了ポインタ値(本実施形態の場合、「4」または「7」)をロードし、普図当り中制御ポインタ領域にセーブする(ステップB205)。このステップB205の処理は、普図の当り状態中に上限値以上の普電入賞があったことに基づいて、普通変動入賞装置37を閉じるための処理である。
次いで、普図ゲーム処理タイマ領域を0クリアして(ステップB206)、普電入賞スイッチ監視処理を終了する。すなわち、普図の当り状態中に上限値以上の普電入賞があった場合は、その時点で普図の当り状態が途中で終了するようにする。
また、ステップB201にて普図当り中でないと判定した場合(ステップB201;N)、ステップB202にて始動口2スイッチ37aに入力がないと判定した場合(ステップB202;N)、又はステップB204にて普電カウント数が上限値以上でないと判定した場合(ステップB204;N)は、普電入賞スイッチ監視処理を終了する。
〔普図普段処理〕
次に、上述の普図ゲーム処理における普図普段処理(ステップB8)の詳細について説明する。図56に示すように、普図普段処理では、まず、普図保留数が「0」であるかを判定し(ステップB301)、普図保留数が「0」である場合(ステップB301;Y)は、処理番号として普図普段処理にかかる「0」を設定し(ステップB322)、その処理番号を普図ゲーム処理番号領域にセーブし(ステップB323)、普電不正監視期間フラグ領域に不正監視期間中フラグをセーブして(ステップB324)、普図普段処理を終了する。
一方、普図保留数が「0」でない場合(ステップB301;N)は、RWMの当り乱数格納領域(保留数1用)、当り図柄乱数格納領域(保留数1用)から乱数をロードし、ロードした領域(すなわち、当り乱数格納領域(保留数1用)、当り図柄乱数格納領域(保留数1用))を0クリアして(ステップB302)、普図変動表示ゲームにて当り結果となる確率が通常確率(すなわち、普図低確率)よりも高くされた普図高確率中であるか、すなわち時短状態中であるかを判定する(ステップB303)。
普図高確率中でない場合(ステップB303;N)は、普図低確率時の下限判定値(低確率下限判定値)を設定し(ステップB304)、普図高確率中である場合(ステップB303;Y)は、普図高確率時の下限判定値(高確率下限判定値)を設定する(ステップB305)。
その後、当り乱数の値が上限判定値以上であるかを判定し(ステップB306)、当り乱数の値が上限判定値以上でない場合(ステップB306;N)、当り乱数の値がステップB304又はB305にて設定した下限判定値未満であるかを判定する(ステップB307)。
当り乱数の値が上限判定値以上である場合(ステップB306;Y)や、当り乱数の値がステップB304又はB305にて設定した下限判定値未満である場合(ステップB307;Y)は、当りフラグ領域にはずれ情報をセーブし(ステップB308)、はずれ停止図柄番号を設定し(ステップB309)、はずれ図柄情報を普図停止図柄情報領域にセーブして(ステップB310)、停止図柄番号を普図停止図柄領域にセーブする(ステップB314)。
一方、当り乱数の値がステップB304又はB305にて設定した下限判定値未満でない場合(ステップB307;N)は、当りフラグ領域に当り情報をセーブし(ステップB311)、ステップB302にてロードした当り図柄乱数に対応する当り停止図柄番号を設定し(ステップB312)、停止図柄番号に対応する停止図柄情報を普図停止図柄情報領域にセーブして(ステップB313)、停止図柄番号を普図停止図柄領域にセーブする(ステップB314)。本実施形態では、普図の当り図柄として2種類の図柄(「当り図柄1」及び「当り図柄2」)が用意されている。
本実施形態の場合、普図低確率時における当りの確率は0/251、普図高確率時における当りの確率は250/251であり、上限判定値は「251」、低確率下限判定値は「251」、高確率下限判定値は「1」である。
したがって、普図低確率時は、当り乱数の値が「0」〜「250」全ての場合ではずれとなる。
また、普図高確率時は、当り乱数の値が「1」〜「250」の何れかである場合が当り、当り乱数の値が「0」である場合がはずれとなる。
停止図柄番号を普図停止図柄領域にセーブ(ステップB314)した後、停止図柄番号を試験信号出力データ領域にセーブする(ステップB315)。
その後、当り乱数格納領域をシフトし(ステップB316)、シフト後の空き領域を0クリアして(ステップB317)、普図保留数を−1更新する(ステップB318)。すなわち、最も古い普図保留数1に関する普図変動表示ゲームが実行されることに伴い、普図保留数1以降に保留となっている普図保留数2〜4の順位を1つずつ繰り上げる処理を行う。この処理により、普図当り乱数格納領域の普図保留数2用から普図保留数4用の値が、普図当り乱数格納領域の普図保留数1用から普図保留数3用に移動することとなる。そして、普図当り乱数格納領域の普図保留数4用の値がクリアされて、普図保留数が1デクリメントされる。
次いで、変動パターン乱数3を抽出して(ステップB319)、変動パターン乱数3に対応する変動時間を設定し、普図ゲーム処理タイマ領域にセーブする(ステップB320)。本実施形態の場合、変動パターン乱数3に対応する変動時間として、200/256の確率で「500m秒」が設定され、40/256の確率で「1500m秒」が設定され、16/256の確率で「3000m秒」が設定される。
そして、普図変動中処理移行設定処理(ステップB321)を行って、普図普段処理を終了する。
〔普図変動中処理移行設定処理〕
図57には、上述の普図普段処理での普図変動中処理移行設定処理(ステップB321)を示した。この普図変動中処理移行設定処理では、まず、処理番号として普図変動中処理にかかる「1」を設定し(ステップB331)、その処理番号を普図ゲーム処理番号領域にセーブする(ステップB332)。
その後、普図変動表示ゲームの開始に関する信号(例えば、普通図柄1変動中信号をON)を試験信号出力データ領域にセーブして(ステップB333)、普図変動表示ゲームが変動中であることを示す変動中フラグを普図変動制御フラグ領域にセーブする(ステップB334)。
そして、普図表示器52の点滅周期のタイマの初期値である点滅制御タイマ初期値(例えば、100m秒)を普図点滅制御タイマ領域にセーブし(ステップB335)、普図変動図柄番号領域に初期値(例えば、0)をセーブして(ステップB336)、普図変動中処理移行設定処理を終了する。
〔普図変動中処理〕
次に、上述の普図ゲーム処理における普図変動中処理(ステップB9)の詳細について説明する。図58に示すように、普図変動中処理では、まず、処理番号として普図表示中処理にかかる「2」に設定し(ステップB401)、その処理番号を普図ゲーム処理番号領域にセーブする(ステップB402)。その後、普図表示器52における普図変動表示ゲームの結果の表示時間である普図表示時間(例えば、600m秒)を普図ゲーム処理タイマ領域にセーブし(ステップB403)、普図の変動終了に関する信号(例えば、普通図柄1変動中信号をOFF)を試験信号出力データ領域にセーブし(ステップB404)、普図変動表示ゲームが停止中であることを示す停止フラグを普図変動制御フラグ領域にセーブして(ステップB405)、普図変動中処理を終了する。
〔普図表示中処理〕
次に、上述の普図ゲーム処理における普図表示中処理(ステップB10)の詳細について説明する。図59に示すように、普図表示中処理では、まず、普図普段処理にて設定された当りフラグ(当り情報又ははずれ情報)をロードし(ステップB501)、RWMの当りフラグ領域をクリアして(ステップB502)、ロードされた当りフラグが当り情報かを判定する(ステップB503)
当りフラグが当り情報でない場合(ステップB503;N)は、処理番号として普図普段処理にかかる「0」を設定し(ステップB515)、その処理番号を普図ゲーム処理番号領域にセーブし(ステップB516)、普電不正監視期間フラグ領域に不正監視期間中フラグをセーブして(ステップB517)、普図表示中処理を終了する。
一方、当りフラグが当り情報である場合(ステップB503;Y)は、当り中処理設定テーブルを設定して(ステップB504)、普図停止図柄情報に対応する当り開始ポインタの値(例えば、「0」,「5」の何れか)を取得し、普図当り中制御ポインタ領域にセーブして(ステップB505)、普図停止図柄情報に対応する当り終了ポインタの値(例えば、「4」,「7」の何れか)を取得し、普図当り終了ポインタ領域にセーブする(ステップB506)。次いで、普図停止図柄情報に対応する普電開放時間(例えば、1700m秒または2600m秒)を取得し、普図ゲーム処理タイマ領域にセーブする(ステップB507)。
次いで、処理番号として普図当り中処理にかかる「3」を設定し(ステップB508)、その処理番号を普図ゲーム処理番号領域にセーブする(ステップB509)。
次いで、普図変動表示ゲームの当り開始に関する信号(例えば、普通図柄1当り中信号をON)と、普電作動開始に関する信号(例えば、普通電動役物1作動中信号をON)を試験信号出力データ領域にセーブして(ステップB510)、普電ソレノイドを駆動(オン)する信号を出力するため、普電ソレノイド出力データ領域にオンデータをセーブする(ステップB511)。
次いで、普通変動入賞装置37への入賞数を記憶する普電カウント数領域の情報をクリアして(ステップB512)、普電不正監視期間における普通変動入賞装置37への入賞数を記憶する普電不正入賞数領域の情報をクリアする(ステップB513)。
次いで、普通変動入賞装置37の不正監視期間外を規定するフラグ(不正監視期間外フラグ)を普電不正監視期間フラグ領域にセーブして(ステップB514)、普図表示中処理を終了する。
〔普図当り中処理〕
次に、上述の普図ゲーム処理における普図当り中処理(ステップB11)の詳細について説明する。図60に示すように、普図当り中処理では、まず、普図当り中制御ポインタをロードし、準備して(ステップB601)、ロードした普図当り中制御ポインタの値が上限値以上であるかを判定する(ステップB602)。
そして、普図当り中制御ポインタの値が上限値以上でない場合(ステップB602;N)は、普図当り中制御ポインタを+1更新し(ステップB603)、普電作動移行設定処理(ステップB604)を行って、普図当り中処理を終了する。
また、普図当り中制御ポインタの値が上限値以上である場合(ステップB602;Y)は、ステップB603における普図当り中制御ポインタを+1更新する処理を行わずに、普電作動移行設定処理(ステップB604)を行って、普図当り中処理を終了する。
〔普電作動移行設定処理〕
図61には、上述の普図当り中処理における普電作動移行設定処理(ステップB604)を示した。普電作動移行設定処理は、普通変動入賞装置37を開閉するための普電ソレノイド37cの駆動制御を行う処理であり、制御ポインタ(普図当り中制御ポインタ)の値に応じて処理を分岐するようにしている。この普電作動移行設定処理では、まず、制御ポインタの値に応じた分岐処理を行う(ステップB611)。なお、ステップB603の処理(普図当り中制御ポインタを+1更新する処理)を行った場合には、+1更新する前の値に応じた分岐処理を行う。
制御ポインタの値が「0」、「2」、又は「5」であった場合は、ステップB612へ移行して、普通変動入賞装置37の閉塞を制御するため、制御ポインタに対応する普通変動入賞装置37の閉塞後のウェイト時間(例えば、300m秒)を普図ゲーム処理タイマ領域にセーブし(ステップB612)、普電ソレノイド37cをオフさせるため、普電ソレノイド出力データ領域にオフデータをセーブして(ステップB613)、普電作動移行設定処理を終了する。
また、制御ポインタの値が「1」又は「3」であった場合は、ステップB614へ移行して、普通変動入賞装置37の開放を制御するため、制御ポインタに対応する普通変動入賞装置37の開放時間である普電開放時間(例えば、1700m秒)を普図ゲーム処理タイマ領域にセーブし(ステップB614)、普電ソレノイド37cをオンさせるため、普電ソレノイド出力データ領域にオンデータをセーブして(ステップB615)、普電作動移行設定処理を終了する。
また、制御ポインタの値が「6」であった場合は、ステップB616へ移行して、普通変動入賞装置37の開放を制御するため、制御ポインタに対応する普通変動入賞装置37の開放時間である普電開放時間(例えば、2600m秒)を普図ゲーム処理タイマ領域にセーブし(ステップB616)、普電ソレノイド37cをオンさせるため、普電ソレノイド出力データ領域にオンデータをセーブして(ステップB617)、普電作動移行設定処理を終了する。
また、制御ポインタの値が「4」又は「7」であった場合は、ステップB618へ移行して、普通変動入賞装置37の開放制御を終了して普電残存球処理を行うため、処理番号として「4」を設定する(ステップB618)。そして、その処理番号を普図ゲーム処理番号領域にセーブし(ステップB619)、普電残存球処理時間(例えば、600m秒)を普図ゲーム処理タイマ領域にセーブする(ステップB620)。その後、普電ソレノイド37cをオフさせるため、普電ソレノイド出力データ領域にオフデータをセーブして(ステップB621)、普電作動移行設定処理を終了する。
ここで、本実施形態では、普図高確率中において普図停止図柄が「当り図柄1」である場合は、普図表示中処理のステップB505において、当り開始ポインタの値として「0」が取得され、普図表示中処理のステップB506において、当り終了ポインタの値として「4」が取得され、普図表示中処理のステップB507において、普電開放時間として「1700m秒」が取得される。したがって、600m秒の普図表示時間の経過後、普電開放時間が「1700m秒」であるため普電(普通変動入賞装置37)が1700m秒間開放し、その後、普図当り中制御ポインタが「0」であるため300m秒のウェイト時間が設定され、次いで、普図当り中制御ポインタが「1」に更新されるため普電が1700m秒間開放し、次いで、普図当り中制御ポインタが「2」に更新されるため300m秒のウェイト時間が設定され、次いで、普図当り中制御ポインタが「3」に更新されるため普電が1700m秒間開放し、次いで、普図当り中制御ポインタが「4」に更新されるため600m秒の普電残存球処理時間が設定される。
また、普図高確率中において普図停止図柄が「当り図柄2」である場合は、普図表示中処理のステップB505において、当り開始ポインタの値として「5」が取得され、普図表示中処理のステップB506において、当り終了ポインタの値として「7」が取得され、普図表示中処理のステップB507において、普電開放時間として「2600m秒」が取得される。したがって、600m秒の普図表示時間の経過後、普電開放時間が「2600m秒」であるため普電が2600m秒間開放し、その後、普図当り中制御ポインタが「5」であるため300m秒のウェイト時間が設定され、次いで、普図当り中制御ポインタが「6」に更新されるため普電が2600m秒間開放し、次いで、普図当り中制御ポインタが「7」に更新されるため600m秒の普電残存球処理時間が設定される。
〔普電残存球処理〕
次に、上述の普図ゲーム処理における普電残存球処理(ステップB12)の詳細について説明する。図62に示すように、普電残存球処理では、まず、処理番号として普図当り終了処理にかかる「5」を設定して(ステップB701)、その処理番号を普図ゲーム処理番号領域にセーブする(ステップB702)。
その後、普図エンディング時間(例えば、100m秒)を普図ゲーム処理タイマ領域にセーブし(ステップB703)、普通変動入賞装置37の作動終了に関する信号(例えば、普通電動役物1作動中信号をOFF)を試験信号出力データ領域にセーブして(ステップB704)、普通変動入賞装置37への入賞数を計数する普電カウント数領域をクリアする(ステップB705)。そして、普図当り中制御ポインタ領域をクリアし(ステップB706)、普図当り終了ポインタ領域をクリアして(ステップB707)、普電残存球処理を終了する。
〔普図当り終了処理〕
次に、上述の普図ゲーム処理における普図当り終了処理(ステップB13)の詳細について説明する。図63に示すように、普図当り終了処理では、まず、処理番号として普図普段処理にかかる「0」を設定して(ステップB801)、その処理番号を普図ゲーム処理番号領域にセーブする(ステップB802)。
その後、普図変動表示ゲームの当り終了に関する信号(例えば、普通図柄1当り中信号をOFF)を試験信号出力データ領域にセーブし(ステップB803)、普通変動入賞装置37の不正監視期間を規定するフラグ(不正監視期間中フラグ)を普電不正監視期間フラグ領域にセーブして(ステップB804)、普図当り終了処理を終了する。
〔セグメントLED編集処理〕
次に、上述のタイマ割込み処理におけるセグメントLED編集処理(ステップS111)の詳細について説明する。セグメントLED編集処理では、一括表示装置50に設けられた特図1保留表示器53、特図2保留表示器54、普図保留表示器55、第1遊技状態表示部56、第2遊技状態表示部57、第3遊技状態表示部58、ラウンド表示部59を構成するセグメントLEDの駆動に関する設定等を行う。
図64に示すように、セグメントLED編集処理では、まず、点滅制御タイマを+1更新して(ステップS501)、点滅制御タイマの特定ビットが1か否かによって、出力オンタイミングであるかを判定する(ステップS502)。本実施形態では、点滅制御タイマのビット5が1である場合に出力オンタイミングであると判定することで、128m秒の点滅周期を作っている。
出力オンタイミングである場合(ステップS502;Y)は、普図保留表示器55での表示態様が規定された普図保留数表示テーブル1,2のうちの、普図保留数表示テーブル1を設定し(ステップS503)、出力オンタイミングでない場合(ステップS502;N)は、普図保留数表示テーブル2を設定する(ステップS504)。
そして、設定した普図保留数表示テーブルから普図保留数に対応する表示データを取得し、RAM111C内に設けられた普図保留表示器55用のセグメント領域にセーブする(ステップS505)。本実施形態では、普図保留数が「0」〜「2」の何れかであれば、どちらの普図保留数表示テーブルが設定された場合であっても、表示データは同じになる。
次に、出力オンタイミングであるかを判定し(ステップS506)、出力オンタイミングである場合(ステップS506;Y)は、特図1保留表示器53での表示態様が規定された特図1保留数表示テーブル1,2のうちの、特図1保留数表示テーブル1を設定し(ステップS507)、出力オンタイミングでない場合(ステップS506;N)は、特図1保留数表示テーブル2を設定する(ステップS508)。
そして、設定した特図1保留数表示テーブルから特図1保留数に対応する表示データを取得し、RAM111C内に設けられた特図1保留表示器53用のセグメント領域にセーブする(ステップS509)。
その後、出力オンタイミングであるかを判定し(ステップS510)、出力オンタイミングである場合(ステップS510;Y)は、特図2保留表示器54での表示態様が規定された特図2保留数表示テーブル1,2のうちの、特図2保留数表示テーブル1を設定し(ステップS511)、出力オンタイミングでない場合(ステップS510;N)は、特図2保留数表示テーブル2を設定する(ステップS512)。
そして、設定した特図2保留数表示テーブルから特図2保留数に対応する表示データを取得し、RAM111C内に設けられた特図2保留表示器54用のセグメント領域にセーブする(ステップS513)。
さらに、ラウンド表示部59での表示態様が規定されたラウンド表示テーブルを設定して(ステップS514)、設定したラウンド表示テーブルからラウンド表示LEDポインタに対応する表示データを取得し、RAM111C内に設けられたラウンド表示部59用のセグメント領域にセーブする(ステップS515)。
次に、時短状態が発生すると点灯して時短状態発生を報知する第2遊技状態表示部57での表示態様が規定された遊技状態表示テーブル1を設定して(ステップS516)、設定した遊技状態表示テーブル1から遊技状態表示番号に対応する表示データを取得し、RAM111C内に設けられた第2遊技状態表示部57用のセグメント領域にセーブする(ステップS517)。本実施形態では、1個のLEDからなる第2遊技状態表示部57を、通常中には消灯させ、特図時短中(普電サポート中)には点灯させるよう構成されている。
その後、左打ちよりも右打ちの方が有利な遊技状態であることを報知する第1遊技状態表示部56での表示態様が規定された遊技状態表示テーブル2を設定して(ステップS518)、設定した遊技状態表示テーブル2から遊技状態表示番号2に対応する表示データを取得し、RAM111C内に設けられた第1遊技状態表示部56用のセグメント領域にセーブする(ステップS519)。本実施形態では、1個のLEDからなる第1遊技状態表示部57を、通常打ち(左打ち)時には消灯させ、右打ち時(本実施形態の場合、大当り中、普電サポート中)には点灯させるよう構成されている。
次いで、高確率報知フラグ領域にオン情報がセーブされているかを判定する(ステップS520)。
ステップS520で、高確率報知フラグ領域にオン情報がセーブされていると判定した場合(ステップS520;Y)には、セグメントLED編集処理を終了する。
一方、ステップS520で、高確率報知フラグ領域にオン情報がセーブされていないと判定した場合(ステップS520;N)には、高確率報知LED(第3遊技状態表示部58)をオフさせるため、高確率報知LEDのオフデータを第3遊技状態表示部58用のセグメント領域にセーブして(ステップS521)、セグメントLED編集処理を終了する。
〔磁石不正監視処理〕
次に、上述のタイマ割込み処理における磁石不正監視処理(ステップS112)の詳細について説明する。磁石不正監視処理では、磁気センサ61からの検出信号に基づき異常の有無を判定し不正報知の開始や終了の設定等を行う。
図65に示すように、磁石不正監視処理では、まず、磁気センサ61から出力されて第3入力ポート124(入力ポート3)に取り込まれる検出信号の状態から、磁気センサ61がオン、すなわち異常な磁気を検出した状態であるかを判定する(ステップS601)。磁気センサ61がオンである場合(ステップS601;Y)、すなわち異常な磁気を検出した場合は、異常な磁気の検出期間を計時する磁石不正監視タイマを+1更新して(ステップS602)、当該タイマがタイムアップしたかを判定する(ステップS603)。本実施形態の場合、磁石不正監視タイマが32m秒以上である場合にタイムアップしたと判定する。
磁石不正監視タイマがタイムアップした場合(ステップS603;Y)、すなわち異常な磁気を一定期間継続して検出した場合は、磁石不正監視タイマをクリアし(ステップS604)、磁石不正報知タイマ初期値(例えば、60秒)を磁石不正報知タイマ領域にセーブする(ステップS605)。そして、磁石不正報知のコマンドを準備し(ステップS606)、磁石不正フラグとして磁石不正発生フラグを準備して(ステップS607)、準備した磁石不正フラグが磁石不正フラグ領域の値と一致するかを判定する(ステップS613)。すなわち、磁気センサ61が一定期間(例えば、8回の割込み)連続してオンであった場合に異常が発生していると判定するようにしている。
一方、磁気センサ61がオンでない場合(ステップS601;N)、すなわち異常な磁気を検出していない場合は、磁石不正監視タイマをクリアし(ステップS608)、磁石不正の報知時間を規定する磁石不正報知タイマが「0」でなければ−1更新する(ステップS609)。なお、磁石不正報知タイマの最小値は「0」に設定されている。そして、磁石不正報知タイマの値が「0」であるかを判定する(ステップS610)。なお、磁石不正監視タイマがタイムアップしていない場合(ステップS603;N)も、ステップS609の処理に移行する。
そして、磁石不正報知タイマの値が「0」でない場合(ステップS610;N)、すなわちタイムアップしていない場合は、磁石不正監視処理を終了する。また、磁石不正報知タイマの値が「0」である場合(ステップS610;Y)、すなわちタイムアップした又はすでにタイムアップしていた場合であって、不正報知の期間が終了した場合又は当初から不正報知が行われていない場合は、磁石不正報知終了のコマンドを準備する(ステップS611)。さらに、磁石不正フラグとして磁石不正解除フラグを準備して(ステップS612)、準備した磁石不正フラグが磁石不正フラグ領域の値と一致するかを判定する(ステップS613)。
そして、準備した磁石不正フラグが磁石不正フラグ領域の値と一致する場合(ステップS613;Y)は、磁石不正監視処理を終了する。また、準備した磁石不正フラグが磁石不正フラグ領域の値と一致しない場合(ステップS613;N)は、準備した磁石不正フラグを磁石不正フラグ領域にセーブし(ステップS614)、演出コマンド設定処理を行って(ステップS615)、磁石不正監視処理を終了する。
ここで、「ステップS601;N」→「ステップS608」→「ステップS609」→「ステップS610;Y」→「ステップS611」→「ステップS612」→「ステップS613;Y」が正常ルートである。
〔盤電波不正監視処理〕
次に、上述のタイマ割込み処理における盤電波不正監視処理(ステップS113)の詳細について説明する。盤電波不正監視処理では、盤電波センサ62からの検出信号に基づき異常の有無を判定し不正報知の開始や終了の設定等を行う。
図66に示すように、盤電波不正監視処理では、まず、盤電波センサ62から出力されて近接I/F121を経由して第3入力ポート124(入力ポート3)に取り込まれる検出信号の状態から、盤電波センサ62がオン、すなわち異常な電波を検出した状態であるかを判定する(ステップS701)。電波センサがオンである場合(ステップS701;Y)、すなわち異常な電波を検出した場合は、電波不正報知タイマ初期値(例えば、60秒)を電波不正報知タイマ領域にセーブする(ステップS702)。
そして、盤電波不正報知のコマンドを準備し(ステップS703)、盤電波不正フラグとして盤電波不正発生フラグを準備して(ステップS704)、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致するかを判定する(ステップS709)。すなわち、本実施形態では、磁気不正の場合は、磁気センサ61のオンが所定回数検出された時点で異常が発生していると判定する一方、盤電波不正の場合は、盤電波センサ62のオンが1回検出された時点で異常が発生していると判定するようにしている。
一方、盤電波センサ62がオンでない場合(ステップS701;N)、すなわち異常な電波を検出していない場合は、電波不正の報知時間を規定する電波不正報知タイマが「0」でなければ−1更新する(ステップS705)。なお、電波不正報知タイマの最小値は「0」に設定されている。そして、電波不正報知タイマの値が「0」であるかを判定する(ステップS706)。
電波不正報知タイマの値が「0」でない場合(ステップS706;N)、すなわちタイムアップしていない場合は、盤電波不正監視処理を終了する。また、電波不正報知タイマの値が「0」である場合(ステップS706;Y)、すなわちタイムアップした又はすでにタイムアップしていた場合であって、不正報知の期間が終了した場合又は当初から不正報知が行われていない場合は、盤電波不正報知終了のコマンドを準備し(ステップS707)、盤電波不正フラグとして盤電波不正解除フラグを準備して(ステップS708)、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致するかを判定する(ステップS709)。
そして、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致する場合(ステップS709;Y)は、盤電波不正監視処理を終了する。また、準備した盤電波不正フラグが盤電波不正フラグ領域の値と一致しない場合(ステップS709;N)は、準備した盤電波不正フラグを盤電波不正フラグ領域にセーブし(ステップS710)、演出コマンド設定処理を行って(ステップS711)、盤電波不正監視処理を終了する。
ここで、「ステップS701;N」→「ステップS705」→「ステップS706;Y」→「ステップS707」→「ステップS708」→「ステップS709;Y」が正常ルートである。
〔外部情報編集処理〕
次に、上述のタイマ割込み処理における外部情報編集処理(ステップS114)の詳細について説明する。外部情報編集処理では、払出コマンド送信処理(ステップS105)、入賞口スイッチ/状態監視処理(ステップS108)、磁石不正監視処理(ステップS112)、盤電波不正監視処理(ステップS113)での監視結果に基づいて、情報収集端末や遊技場内部管理装置等の外部装置や試射試験装置に出力する情報を作成して出力バッファにセットする処理等を行う。
図67及び図68に示すように、外部情報編集処理では、まず、スイッチ異常の発生中であるかを判定する(ステップS801)。
ステップS801で、スイッチ異常の発生中でないと判定した場合(ステップS801;N)には、遊技機エラー状態信号のオフデータを試験信号出力データ領域にセーブして(ステップS802)、ステップS804の処理に移行する。
一方、ステップS801で、スイッチ異常の発生中であると判定した場合(ステップS801;Y)には、遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブして(ステップS803)、ステップS804の処理に移行する。
次いで、ガラス枠開放エラーの発生中でもなく(ステップS804;N)、本体枠開放エラーの発生中でもない場合(ステップS805;N)には、扉・枠開放信号のオフデータを外部情報出力データ領域にセーブし(ステップS806)、セキュリティ信号のオフデータを外部情報出力データ領域にセーブして(ステップS807)、ステップS810の処理に移行する。
一方、ガラス枠開放エラーの発生中である場合(ステップS804;Y)、あるいは、本体枠開放エラーの発生中である場合(ステップS805;Y)には、扉・枠開放信号のオンデータを外部情報出力データ領域にセーブし(ステップS808)、遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブして(ステップS809)、ステップS810の処理に移行する。
そして、初期化スイッチの操作等によりRAMに記憶されたデータの初期化が行われた時から所定時間(例えば、256m秒)を計時するセキュリティ信号制御タイマが「0」でなければ−1更新する(ステップS810)。なお、セキュリティ信号制御タイマの初期値は、メイン処理においてRAMクリアで起動したときのRAM初期値設定時に設定され、セキュリティ信号制御タイマの最小値は「0」に設定されている。そして、セキュリティ信号制御タイマの値が「0」であるかを判定する(ステップS811)。
セキュリティ信号制御タイマの値が「0」でない場合(ステップS811;N)、すなわちタイムアップしていない場合は、セキュリティ信号のオンデータを外部情報出力データ領域にセーブして(ステップS812)、ステップS813の処理に移行する。また、セキュリティ信号制御タイマの値が「0」である場合(ステップS811;Y)、すなわちタイムアップした又はすでにタイムアップしていた場合は、ステップS812の処理を行わずに、ステップS813の処理に移行する。
そして、磁石不正の発生中である場合(ステップS813;Y)、盤電波不正の発生中である場合(ステップS814;Y)、大入賞口不正の発生中である場合(ステップS815;Y)、普電不正の発生中である場合(ステップS816;Y)、あるいは、始動口エラーの発生中である場合(ステップS817;Y)は、遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブし(ステップS819)、セキュリティ信号のオンデータを外部情報出力データ領域にセーブして(ステップS820)、ステップS821の処理に移行する。また、枠電波不正の発生中である場合(ステップS818;Y)は、ステップS819の処理を行わずに、セキュリティ信号のオンデータを外部情報出力データ領域にセーブして(ステップS820)、ステップS821の処理に移行する。
一方、磁石不正の発生中でもなく(ステップS813;N)、盤電波不正の発生中でもなく(ステップS814;N)、大入賞口不正の発生中でもなく(ステップS815;N)、普電不正の発生中でもなく(ステップS816;N)、始動口エラーの発生中でもなく(ステップS817;N)、枠電波不正の発生中でもない場合(ステップS818;N)は、ステップS819及びステップS820の処理を行わずに、ステップS821の処理に移行する。
そして、払出予定の賞球数に関する情報を設定するメイン賞球信号編集処理(ステップS821)を行い、始動口の入賞信号を編集する始動口信号編集処理(ステップS822)を行う。
次に、特図変動表示ゲームの実行回数に係る情報の出力時間を制御するための図柄確定回数制御タイマが「0」でなければ−1更新する(ステップS823)。なお、図柄確定回数制御タイマの最小値は「0」に設定されている。そして、図柄確定回数制御タイマの値が「0」であるかを判定する(ステップS824)。
図柄確定回数制御タイマの値が「0」である場合(ステップS824;Y)、すなわちタイムアップした又はすでにタイムアップしていた場合は、図柄確定回数信号のオフデータを外部情報出力データ領域にセーブして(ステップS825)、外部情報編集処理を終了する。
また、図柄確定回数制御タイマの値が「0」でない場合(ステップS824;N)、すなわちタイムアップしていない場合は、図柄確定回数信号のオンデータを外部情報出力データ領域にセーブして(ステップS826)、外部情報編集処理を終了する。
〔メイン賞球信号編集処理〕
次に、上述の外部情報編集処理におけるメイン賞球信号編集処理(ステップS821)の詳細について説明する。メイン賞球信号編集処理は、入賞口への入賞により発生した賞球数(払出予定数)が所定数(本実施形態の場合、10個)になる毎に生成されるメイン賞球信号を外部装置へ出力する処理である。
図69に示すように、メイン賞球信号編集処理では、まず、メイン賞球信号出力制御タイマが「0」でなければ−1更新する(ステップS831)。なお、メイン賞球信号出力制御タイマの最小値は「0」に設定されている。そして、メイン賞球信号出力制御タイマの値が「0」であるかを判定する(ステップS832)。メイン賞球信号出力制御タイマの値が「0」である場合(ステップS832;Y)は、メイン賞球信号出力回数が「0」であるかを判定する(ステップS833)。
そして、メイン賞球信号出力回数が「0」でない場合(ステップS833;N)は、メイン賞球信号出力回数を−1更新し(ステップS834)、メイン賞球信号出力制御タイマ領域にメイン賞球信号出力制御タイマ初期値をセーブする(ステップS835)。このメイン賞球信号出力制御タイマ初期値は、メイン賞球信号のオン状態(例えば、ハイレベル)の時間(例えば、128m秒)とオフ状態(例えば、ロウレベル)の時間(例えば、64m秒)とのうちの、オン状態の時間(例えば、128m秒)となっている。その後、外部装置用のメイン賞球信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブして(ステップS837)、メイン賞球信号編集処理を終了する。
また、メイン賞球信号出力回数が「0」である場合(ステップS833;Y)は、外部装置用のメイン賞球信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップS838)、メイン賞球信号編集処理を終了する。
一方、メイン賞球信号出力制御タイマの値が「0」でない場合(ステップS832;N)は、メイン賞球信号出力制御タイマが出力オン区間中であるかを判定する(ステップS836)。なお、メイン賞球信号出力制御タイマが出力オン区間中であるとは、メイン賞球信号出力制御タイマの値が「0」でないことである。メイン賞球信号出力制御タイマが出力オン区間中である場合(ステップS836;Y)は、外部装置用のメイン賞球信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブして(ステップS837)、メイン賞球信号編集処理を終了する。また、メイン賞球信号出力制御タイマが出力オン区間中でない場合(ステップS836;N)は、外部装置用のメイン賞球信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップS838)、メイン賞球信号編集処理を終了する。
本実施形態では、遊技制御装置100からは、遊技球の払出予定個数が10個になる毎にメイン賞球信号が出力され、払出制御装置200からは、遊技球の払出個数が10個になる毎にメイン賞球信号が出力されるよう構成されている。
具体的には、遊技制御装置100は、10個の払出予定毎(払出コマンドを送信する毎)に、メイン賞球信号出力回数を+1更新(払出コマンド送信処理内のサブルーチン)し、更新(設定)されている出力回数分、メイン賞球信号を出力する。
予定毎に出力されるメイン賞球信号に対し、払出制御装置200からは実際に10個の払出が行われる毎に賞球信号が送信されるので、予定と結果の整合をとることができ、不正な払出に対応することができる。また、大当り期間中に入賞しても、球切れ等で払出が遅れ、大当り終了後に払い出された場合にも、入賞時に出力されるメイン賞球信号によって、ホールコン(ホールコンピュータ)が正確な情報を収集(判断)することができる。
〔始動口信号編集処理〕
次に、上述の外部情報編集処理における始動口信号編集処理(ステップS822)の詳細について説明する。始動口信号編集処理は、始動口1スイッチ36aや始動口2スイッチ37aや始動口3スイッチ97aの入力があった場合に、各々の入力について共通して行われる処理である。
図70に示すように、始動口信号編集処理では、まず、始動口信号出力制御タイマが「0」でなければ−1更新する(ステップS841)。なお、始動口信号出力制御タイマの最小値は「0」に設定されている。そして、始動口信号出力制御タイマの値が「0」であるかを判定する(ステップS842)。始動口信号出力制御タイマの値が「0」である場合(ステップS842;Y)は、始動口信号出力回数が「0」であるかを判定する(ステップS843)。
そして、始動口信号出力回数が「0」でない場合(ステップS843;N)は、始動口信号出力回数を−1更新し(ステップS844)、始動口信号出力制御タイマ領域に始動口信号出力制御タイマ初期値をセーブする(ステップS845)。この始動口信号出力制御タイマ初期値は、始動口信号のオン状態(例えば、ハイレベル)の時間(例えば、128m秒)とオフ状態(例えば、ロウレベル)の時間(例えば、64m秒)とのうちの、オン状態の時間(例えば、128m秒)となっている。その後、外部装置用の始動口信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブして(ステップS847)、始動口信号編集処理を終了する。
また、始動口信号出力回数が「0」である場合(ステップS843;Y)は、外部装置用の始動口信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップS848)、始動口信号編集処理を終了する。
一方、始動口信号出力制御タイマの値が「0」でない場合(ステップS842;N)は、始動口信号出力制御タイマが出力オン区間中であるかを判定する(ステップS846)。なお、始動口信号出力制御タイマが出力オン区間中であるとは、始動口信号出力制御タイマの値が「0」でないことである。始動口信号出力制御タイマが出力オン区間中である場合(ステップS846;Y)は、外部装置用の始動口信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブして(ステップS847)、始動口信号編集処理を終了する。また、始動口信号出力制御タイマが出力オン区間中でない場合(ステップS846;N)は、外部装置用の始動口信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップS848)、始動口信号編集処理を終了する。
次に、演出制御装置300の制御について説明する。
なお、演出制御装置300が制御する特図は、表示装置41に表示される演出用の特図であり、以下の演出制御装置300の制御処理の説明における特図は、この演出用の特図(本特図ではない飾り図柄)を意味する。
また、一般に「キャラクタ」とは、性質や性格、或いは性質や性格を有する登場人物や動物等を意味し、コンピュータ用語としては文字を意味する場合もある。しかし、以下の演出制御装置300の説明では、特にVDP312を使った画像表示制御の説明においては、一連のムービー、背景画像、図柄(特図の飾り図柄や第4図柄)の画像、登場人物の画像等のまとまりのある静止画又は動画をキャラクタと称し、またそのような画像データ(静止画又は動画のデータ)をキャラクタのデータ(或いはキャラクタデータ)と称する場合がある。
また、以下の演出制御装置300の説明において、オブジェクトとは、表示制御の場合、まとまりのある表示制御の対象を意味し、表示要素(背景画像、特図の飾り図柄の画像、予告キャラクタの画像、保留表示の画像など、まとまりのある画像)に相当する。例えば本例の場合、特図の飾り図柄には、左図柄、右図柄、中図柄という変動表示領域(リール)の違いでの区別があり、さらにこれら区別のそれぞれに、現図柄、次図柄、前図柄というスクロール方向の表示位置が異なる区別がある。すなわち、例えば左図柄については、左図柄の現図柄、左図柄の次図柄、左図柄の前図柄があり、細かく見れば、これらそれぞれが一つのオブジェクトである。但し、制御処理上においては、例えば現図柄、次図柄、前図柄を含む左図柄全体を一つの表示要素として分類する場合もある。
〔パワーオンリセット処理〕
まず、図71により、演出制御装置300のパワーオンリセット処理を説明する。このパワーオンリセット処理は、パチンコ遊技機10の電源供給が開始された時点で開始する。
パチンコ遊技機10の電源供給が開始すると、まず、割込みを禁止して(ステップD1)、CPU311の初期設定を行って(ステップD2)、VDP312の初期設定を行って(ステップD3)、割込みを許可して(ステップD4)、メイン処理(ステップD5)を開始する。メイン処理を開始すると、電源遮断(停電含む)までこのメイン処理を実行する。
〔メイン処理〕
次に、上述のパワーオンリセット処理におけるメイン処理(ステップD5)を図72により説明する。
メイン処理を開始すると、まず、演出制御装置300に設けられた無線モジュール(図示省略)を初期化する無線モジュール初期化処理(ステップD11)を実行する。なお、本例は、異なるパチンコ遊技機におけるサブ基板間(すなわち演出制御装置間、以下、場合により、単に「サブ間」という。)の通信を無線通信で行う例としているが、無線通信に限定されるものではなく、有線通信でもよい。
次いで、VDP312のレジスタのベースアドレスを設定する(ステップD12)。これは、CPU311の種類やその設定によりアドレス空間が異なるので、ベースとなるアドレスを設定し、そこからの差分を基に各種指定を行うためである。
次いで、表示用データ生成を許可する(ステップD13)。これは、VDP312の表示回路がVRAM326へアクセスを行い、表示データを生成するのを許可する処理である。
次いで、VDP312の画像展開領域のサイズを設定する(ステップD14)。
次いで、乱数シードを設定する(ステップD15)。これは、例えばsrand関数を用いて擬似乱数の発生系列を設定する処理である。ここで、srand関数に与える引数としては、0(ゼロ)などの固定値を使用してもよいし、遊技機毎に異なるようにCPU等のID値などを基に作成した値を使用してもよい。
次いで、CPU311内のRAMにおけるモーション管理用の記憶領域(モーション管理領域及びモーション管理領域のアドレス領域を含む)を初期化して(ステップD16)、CPU311内のRAMにおけるシナリオ管理用の記憶領域(シナリオ管理領域及びシナリオ管理領域のアドレス領域を含む)を初期化する(ステップD17)。
ここで、「モーション」は、ブロック化(パーツ化)された演出動作(本例の場合、具体的には、表示装置41での表示演出をブロック化したもの)を意味し、「シナリオ」は、演出の流れ(どのモーションをいつ実行するか等を決めるもの)を意味する。また、「モーション管理領域のアドレス領域」とは、モーション管理領域の先頭アドレスを格納するための記憶領域を意味し、「シナリオ管理領域のアドレス領域」とは、シナリオ管理領域の先頭アドレスを格納するための記憶領域を意味する。
次いで、端末IDを設定する(ステップD18)。これは、例えば、演出制御装置300に設けられた設定スイッチ(図示省略)の設定に基づいて台毎(すなわち遊技機毎)のIDを設定する処理である。設定する端末IDとしては、無線モジュールの個別ID等を使用してもよいが、設定スイッチ等により手動で設定を行った方が島内における遊技機の位置情報を特定し易く、遊技場ホール内の台番号に割り振るのも容易である。すなわち、無線モジュールのIDでは、遊技機の設置時に小さい順に並べる等しなければ、その数値の大小から位置情報を特定することが困難であるが、設定スイッチ等により手動で設定を行う構成であれば、例えば設置されている位置の順にこの端末IDの値を設定すれば、この端末IDの値から設置された位置情報を特定することが容易である。ただし、無線モジュールのID等から端末IDを設定する方法は、人の手を煩わせず自動で設定できるという利点がある。一方、設定スイッチによる端末IDの設定は、人の操作により台毎に異なる番号を設定する必要があるため、遊技機導入時など忙しい時には不可能になる虞がある。また、無線モジュールのIDを使用する場合は設定スイッチが不要なためコストアップにもならない利点がある。このように有利不利があるため、結局はサブ基板間通信で行いたい演出によってこの端末IDの設定方法を選ぶ必要がある。本例では、島内の左端の遊技機から順次予告キャラクタを各遊技機の表示装置41に登場させるといった演出(すなわち、島内における遊技機の並び(左からID1、ID2、ID3、・・・ID10というように)を特定する必要のある演出)を実現できるようにするため、台の位置情報を特定し易い、設定スイッチによる設定方法を例として挙げている。なお、この端末IDは、サブ基板間通信において、送信先や送信元を識別するなどのために設けられる。
次いで、初期化すべき領域(例えば、演出用フラグ領域(後述する各種のフラグとして使う記憶領域))に電源投入時の初期値をセーブして(ステップD19)、WDT(ウォッチドッグ・タイマ)をクリアする(ステップD20)。
次いで、演出ボタン入力処理(ステップD21)を実行する。これは、演出操作部550(プッシュボタン(演出ボタン25)やセレクトボタン(タッチパネル29))が有効時に操作された場合の編集を行う処理である。なお、演出操作部550は高速でオンオフしないので、演出操作部550の入力を感知する処理はこの処理内で行ってもよいし、図示していない短周期のタイマ割込み内で行ってもよい。
次いで、乱数更新処理(ステップD22)を実行する。これは、例えばrand関数を用いてメイン処理の制御周期毎に最低1回は擬似乱数の更新を行う処理である。rand関数は再計算が行われる度に指定の発生系列に基づいて乱数を発生するので、関数を実行するだけでよい。なお、主基板(遊技制御装置100)のように+1ずつ更新する乱数を使ってもよい。
次いで、受信コマンドチェック処理(ステップD23)を実行する。
次いで、サブ間送信開始処理(ステップD24)を実行する。これは、サブ間コマンド送信の要求があった場合にサブ間送信割込みを許可したりする処理である。なお、演出によっては直ぐにコマンドを送りたくない場合もあるので時間調整も行う。
次いで、サブ間受信タスク処理(ステップD25)を実行する。これは、受信したサブ間コマンドの解析を主に行う処理である。
次いで、サブ間ack応答タスク処理(ステップD26)を実行する。これは、他台にack(返信)を要求した場合の監視を行う処理である。
次いで、サブ間演出設定処理(ステップD27)を実行する。これは、受信したサブ間コマンドに対応する演出の制御を行う処理である。
次いで、シナリオ設定処理(ステップD28)を実行する。これは、受信した遊技制御装置100からのコマンドに基づくシナリオの解析などを行う処理である。
次いで、描画領域を黒で塗り潰す(ステップD29)。これは、フレームバッファの過去の表示を完全に消すための処理であり、例えば全体が黒い四角形の画像をフレームバッファに配置し、ゴミなどが表示されないようにする処理である。
次いで、モーション制御処理(ステップD30)を実行する。これは、ステップD28で解析等されたシナリオを実行するための処理である。
ここで、キャラクタデータは画像ROM325に格納されているが、キャラクタの動きの情報を表すモーションデータやモーションデータの繋がりを定義しているシナリオデータはPROM321に格納されている。
また、本例では、表示装置41に表示する表示画面41aの描画制御において、シナリオデータ(シナリオレイヤ−)という概念が使用される。シナリオとは、例えば背景用シナリオ、左図柄用シナリオ、右図柄用シナリオ、・・・等のように、図柄の変動演出を複数のシナリオレイヤーに分けてテーブルとして予め設定し、それらを個別にシナリオとして制御し、全てのシナリオを合成することで、1画面の絵を生成する手法である。
具体的には、表示装置41における図柄の変動演出では、例えば、変動出だしの動き、スローダウンして仮停止するまでの動き(送りコマ数やスベリなど)、予告演出の種類など、変動毎に行われる演出振り分けによって多様な組合せとなるため、全ての組合せに対して1つ1つの画面毎にシナリオデータを作成すると膨大なデータ量となってしまう。
そこで本例では、演出制御装置300において変動演出等の表示演出における描画制御では、背景、左図柄、右図柄、・・・と個別に各表示要素毎にカテゴリ分けを行い、各々を独立して複数のモーション情報を同時にあるいは連続的に切り替えて演出表示させるための動作シナリオのテーブルとして設定して、例えばPROM(制御ROM)321に予め格納しておく。次いで、遊技制御装置100からの演出コマンドに応じて演出制御装置300ではシナリオテーブルを選択し、組み合わせて合成することで、1画面の描画内容(1フレーム毎)を作り出すことが行われる。そうすることで、最小限の動作パターンを定義する(動作のパーツ化)だけで済み、データ容量の節約と開発の効率化ができる。
次いで、演出表示編集処理(ステップD31)を実行する。これは、VDP312に表示装置41での描画内容(ステップD28〜D30で設定されたもの)を指示するための各種コマンドとそのパラメータの設定を行う処理である。なお、この演出表示編集処理ではコマンドがテーブル状に設定され、こうして設定されたコマンドは後述するステップD34(画面描画を指示)でVDP312に順次送信される。
次いで、描画コマンド準備終了を設定して(ステップD32)、ステップD33に進む。これは、ステップD31で設定されるVDP312への全てのコマンドの準備が終了したことを設定する処理である。
ステップD33に進むと、フレーム切替タイミングであるか判定し、フレーム切替タイミングであれば(ステップD33;Y)、ステップD34に進み、フレーム切替タイミングでなければ(ステップD33;N)、このステップD33を繰り返す。ここで、フレーム切替タイミングは、Vブランク割込み(Vシンク割込みともいう)の周期(例えば1/60秒)を基に作成された処理周期(例えば1/30秒≒33.333ms)に相当する時間的間隔で到来するタイミングである。このステップD33の処理によって、これより後の処理(ステップD34〜D37、及びその後のステップD20〜D32)は、このフレーム切替タイミングで上記処理周期毎に実行される。なお、演出内容と同期する必要のある時間管理は、このフレーム単位(すなわち、上記処理周期単位)で行われる。上記処理周期が、1/30秒の場合、例えば3フレームでは100msになる。このことは、主基板(遊技制御装置)がタイマ割込み周期の4ms単位で時間値管理しているのと同様である。
ステップD34に進むと、VDP312に画面描画を指示して(ステップD34)、サウンド制御処理(ステップD35)、各種LED等を制御するための装飾制御処理(ステップD36)、各種モータやSOL(ソレノイド)を制御するためのモータ/SOL制御処理(ステップD37)を実行する。このステップD37を実行した後は、ステップD20に戻り、ステップD20に進んだ場合と同じ処理を繰り返す。
なお、ステップD35〜D37の制御処理は、画面の演出に合わせるため、動作の切り替えが処理周期単位で実行されるこれらのステップ内で行っているが、これら制御処理で生成又は設定された信号やデータ(特に各種LEDやモータを駆動制御する信号等)を実際にポートに出力する処理は、図示していない短周期のタイマ割込み内で行われる。ただし、各種デバイスの制御に特化したICを使用している場合は、シリアル通信等で指示するだけで、タイマ割込みで信号等の出力を行わない場合もある。
〔コマンド受信割込み処理〕
次に、コマンド受信割込み処理について図73により説明する。このコマンド受信割込み処理は、遊技制御装置100(主基板)から送信されるコマンドを演出制御装置300(サブ基板)で受信するための処理であり、当該コマンドを構成するデータが正常な範囲に入っているかをチェックする内容も含まれている。
この主基板とサブ基板の通信は、ストローブ信号(STB信号)を用いたパラレル通信によって行われる態様でもよいが、本例の場合、シリアル通信によって行われる。すなわち、両基板とも、例えばCPU111A,311に搭載されているシリアル通信回路の機能を使用し、通信を行う。
この場合のシリアル通信では、ハード的に自動で送受信が行われるので、パラレル通信時とは異なり、両基板において通信のために処理時間を専有してしまうことがない利点がある。パラレル通信の場合、遊技制御装置が送信してくるタイミングに合わせ演出制御装置は最優先で受信処理を行わなくてはならず、プログラム作成を困難にしていた。さらに、通信中は両基板とも通信処理を実行している必要がある。ところがシリアル通信では、コマンドを受信完了すると割込み(コマンド受信割込み)が発生して知らせてくれるので、あとはシリアル受信バッファから取り出すだけでよい。また、シリアル通信では、最優先で割込み処理を行う必要がなく、割り込まれると困る場合には割込みを禁止することが可能である。また、シリアル通信では、送信側の処理もシリアル送信バッファにコマンドを入れておくだけでよいという簡単なものとなる。また、シリアル通信では、両基板とも、ハードが送受信をしてくれている間、他の処理を実行できるので効率がよい。また、物理的にもパラレル通信の場合は8本以上の配線が必要だったが、シリアル通信では最低1本でも実現できる。なお、シリアル通信を使用した場合でも、遊技制御装置100(主基板)と演出制御装置300(サブ基板)との間の通信は、双方向通信ではなく、単方向通信のみ(主基板→サブ基板の方向のみ)が可能な構成となっている。これにより、サブ基板から主基板への通信を利用した不正が防止される。
このコマンド受信割込み処理は、演出制御装置300(サブ基板)において前述のコマンド受信割込みが発生することによって開始される。すなわち、主基板のCPU111Aによりシリアル通信で送信されたコマンドを、サブ基板のCPU311が受信完了するとコマンド受信割込みが発生し、このコマンド受信割込み処理が開始される。ここで、このコマンド受信割込みは、前述したVブランク割込みよりも、割込みの優先順位が高い。また、上記コマンド受信割込みは上述したように不定期に発生するが、主基板がコマンドを連続で送信する時には、その送信間隔(例えば4m秒)に対応してサブ基板での上記コマンド受信割込みの発生間隔も同じ間隔(例えば4m秒)になる。
また、主基板からのコマンドは、MODEのデータ(1バイト)とACTIONのデータ(1バイト)とを含む構成となっており、これらが順次送信される。以下では、コマンドを構成するこのようなデータを、コマンドのデータ或いはコマンドデータという。
コマンド受信割込み処理が開始されると、まず、受信監視タイマを停止して(ステップD41)、シリアル受信バッファからコマンドをロードして(ステップD42)、ステップD44に進む。
ステップD44に進むと、ステップD42でロードしたコマンドデータがMODE範囲のものか否か、当該データの値に基づいて判定し、MODE範囲のものならば(ステップD44;Y)、ステップD45に進み、MODE範囲のものでなければ(ステップD44;N)、ACTION範囲であるとしてステップD48に進む。なお、MODE範囲とは、MODEのデータとして設定し得る1バイト内の値の範囲であり、ACTION範囲とは、ACTIONのデータとして設定し得る1バイト内の値の範囲であり、予め決められている。
ステップD45に進むと、ステップD42でロードしたコマンドデータを受信MODEとして格納して(ステップD45)、MODE受信フラグに「OK」をセットする(ステップD46)。
次いで、受信監視タイマの値を0(ゼロ)にリセットし、当該受信監視タイマの計時動作をスタートして(ステップD47)、その後コマンド受信割込み処理を終了する。なお、上記ステップD45で使用しているように、単に「格納する」というときは、後の制御処理に使用するために所定の記憶領域に読出し可能に記憶保存することを意味する(以下同様)。
ステップD48に進むと、MODE受信フラグの値が「OK」であるか判定し、「OK」であれば(ステップD48;Y)、ステップD49に進んで受信監視タイマがタイムアウトしたか判定し、タイムアウトしていない場合(ステップD49;N)には、ステップD50に進む。一方、MODE受信フラグの値が「OK」でない場合(ステップD48;N)や、受信監視タイマがタイムアウトしている場合(ステップD49;Y)には、正常にコマンドを受信できなかったので、MODE受信フラグに「NG」をセットして(ステップD59)、コマンド受信割込み処理を終了する。
MODE受信フラグの値が「OK」でない場合(ステップD48;N)は、例えばACTION範囲のコマンドデータが受信されたのに、それに先だってMODE範囲のコマンドデータが受信されていないので異常である。また、受信監視タイマがタイムアウトしている場合(ステップD49;Y)は、MODE範囲のコマンドデータが受信された時点から受信監視タイマで計時される規定の受信監視時間内に、ACTION範囲のコマンドデータが受信されないので異常である。
ステップD50に進むと、ステップD42でロードしたコマンドデータを受信ACTIONとして格納して(ステップD50)、MODE受信フラグの値を「NG」にセットして(ステップD51)、ステップD52に進む。
ステップD52に進むと、コマンド受信カウンタの値が31より大きいか判定し、大きい場合(ステップD52;Y)には、後述するコマンドバッファの容量を超えるのでコマンド受信割込み処理を終了し、大きくない場合(ステップD52;N)、すなわちコマンド受信カウンタ≦31の場合には、ステップD53に進む。なお、コマンド受信カウンタの値が0〜31でステップD53に進む構成としているが、0〜31という値は後述するコマンドバッファの容量に対応する値であり、システム制御周期(前述の処理周期;例えば1/30秒)で主基板から送信される可能性のあるコマンド数以上になっていればよい。
ステップD53に進むと、受信MODE、受信ACTIONに対応する演出動作を準備して(ステップD53)、受信コマンド範囲チェック処理(ステップD54)を実行して、その後ステップD55に進む。
ステップD55に進むと、範囲チェックOKか否か判定し、OKでなければ(ステップD55;N)、コマンド(受信MODE及び受信ACTION)を廃棄すべくコマンド受信割込み処理を終了し、OKならば(ステップD55;Y)、ステップD56に進む。ここで、ステップD55での範囲チェックの判定結果は、受信コマンド範囲チェック処理(ステップD54)においてコマンド範囲正常フラグがセットされていれば範囲チェックOKである(ステップD55がYes)となり、受信コマンド範囲チェック処理(ステップD54)においてコマンド範囲異常フラグがセットされていれば範囲チェックOKでない(ステップD55がNo)となる。
ステップD56に進むと、受信MODEと受信ACTIONをコマンドバッファに格納する(ステップD56)。コマンドバッファは、本例では、いわゆるリングバッファであり、規定の容量(記憶保持できるコマンド数)を有する。このコマンドバッファは、例えばCPU311のRAM内の記憶領域によって構成される。
次いで、コマンド受信カウンタの値を+1更新して(ステップD57)、コマンドバッファにデータを格納した(すなわち、書き込んだ)ので、コマンド書込インデックスの値を0〜31の範囲で+1更新して(ステップD58)、コマンド受信割込み処理を終了する。なお、コマンド書込インデックスは、コマンドバッファの書込用ポインタであり、このコマンド書込インデックスの値を、本例では0〜31の範囲としているが、この範囲はコマンドバッファの容量(この場合、32)に対応しており、既述したように、システム制御周期(前述の処理周期;例えば1/30秒)の1周期の間に主基板から送信される可能性のあるコマンド数以上になっていればよい。
〔受信コマンド範囲チェック処理〕
次に、上述のコマンド受信割込み処理における受信コマンド範囲チェック処理(ステップD54)の詳細について図74により説明する。
受信コマンド範囲チェック処理が開始されると、まずステップD61で、ステップD45で格納された受信MODEの値が正常範囲か判定し、正常範囲でなければ(ステップD61;N)、コマンド範囲異常フラグをセットして(ステップD67)、受信コマンド範囲チェック処理を終了し、正常範囲であれば(ステップD61;Y)、ステップD62に進む。MODEの値は、MODE範囲の値の全てが指令内容を定義されているわけではなく、定義されずに使用されていない値もあり、このような使用されていない値である場合には、ステップD61の判定で正常範囲でないと判定される。
なお、このステップD61又は後述するステップD92(或いはステップD61とD92の両方)では、MODEのデータの歯抜けチェックも行い、このチェックで無効なコマンドであれば正常範囲でないとする構成であってもよい。MODEのデータの歯抜けチェックとは、チェック対象のMODEのデータが、MODEがとり得る値が連続していない部分における無効な値に相当していないか否か判定することを意味する。MODEの値に不連続な部分が無い場合には、この歯抜けチェックは不要である。
ステップD62に進むと、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最小値(ACTION_min)を取得する(ステップD62)。なお、本願では、このように制御処理においてデータを「取得する」とは、ROM(本例の演出制御装置300ではPROM321)からデータを取り出すことを意味する。
次いで、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最大値(ACTION_max)を取得して(ステップD63)、ステップD64に進む。
なお、PROM321には、ACTIONチェックテーブルが登録されており、上記ステップD62及びD63では、このACTIONチェックテーブルから対応する値を取得する。ACTIONチェックテーブルは、各MODEの値に対応して、上記最小値(ACTION_min)に相当するACTION下限のデータと、上記最大値(ACTION_max)に相当するACTION上限のデータと、一致チェックテーブル(後述する)を特定するデータ(例えば、一致チェックテーブルの先頭アドレス)とが、それぞれ定義されたものである。なお、上記ACTIONチェックテーブルのデータなど、すなわち、演出制御装置300の制御処理で使用する各種情報(例えば、各種テーブルのデータ)は、PROM321に動作プログラムとともに予め記憶されている。
ステップD64に進むと、ステップD50で格納された受信ACTIONの値が、ステップD62で取得された最小値よりも小さいか判定し、小さい場合(ステップD64;Y)には、異常であるのでステップD67に進み、小さくない場合(ステップD64;N)には、ステップD65に進む。
ステップD65に進むと、ステップD50で格納された受信ACTIONの値が、ステップD63で取得された最大値よりも大きいか判定し、大きい場合(ステップD65;Y)には、異常であるのでステップD67に進み、大きくない場合(ステップD65;N)には、ステップD66に進む。
ステップD66に進む場合には、正常であるので、コマンド範囲正常フラグをセットして(ステップD66)、受信コマンド範囲チェック処理を終了する。ステップD67に進む場合は、異常であるので、コマンド範囲異常フラグをセットして(ステップD67)、受信コマンド範囲チェック処理を終了する。
〔受信コマンドチェック処理〕
次に、上述のメイン処理における受信コマンドチェック処理(ステップD23)の詳細について図75により説明する。
受信コマンドチェック処理が開始されると、まず、コマンド受信カウンタの値をコマンド受信数としてロードして(ステップD71)、ステップD72に進む。
ステップD72に進むと、コマンド受信数が0(ゼロ)でないか判定し、ゼロでないならば(ステップD72;Y)、ステップD73に進み、ゼロならば(ステップD72;N)、受信コマンドチェック処理を終了する。なお、本願では、上記ステップD71のように、制御処理においてデータを「ロードする」とは、RAM(本例の演出制御装置300ではCPU311内のRAM)からデータを取り出すことを意味する。
ステップD73に進むと、コマンド受信カウンタ領域の内容(すなわち、コマンド受信カウンタの値)をコマンド受信数分だけ減算する(ステップD73)。なお、A:コマンド受信カウンタの値、B:コマンド受信数とすると、ステップD71の実行直後では「A=B」である。そして、ステップD73の実行直後では「A=A−B=0」となるのが通常の動きだが、本例の態様では、演出制御装置は遊技制御装置(主基板)からのコマンド受信割込みを割込み禁止にせず最優先にしているので、ステップD71の処理からステップD73の処理の間にAの値が増えている可能性がある。よって、ステップD73の処理を「A←0」(すなわち、コマンド受信カウンタの値をゼロとする処理)としてしまうとコマンドのカウントがずれてしまうので、ステップD73では「A−B」という減算処理を行っている。但し、本例のように主基板からのコマンドの送受信にシリアル通信を使用した場合は、割込み禁止にしてステップD71の処理からステップD73の処理の間にAの値が増えることがないようにすることによって、ステップD73の処理内容を「A←0」としてもよい。
次いで、受信コマンドバッファ(ステップD56のコマンドバッファに相当、以下、単に「コマンドバッファ」という)の内容(すなわち、読出用ポインタに対応するアドレスに記憶されているコマンドデータ)をコマンド領域(場合により「コマンド格納領域」という)にコピーする(ステップD74)。コマンド領域は、いわゆるFIFO形式(先入れ先出し形式)のバッファを構成する例えばCPU311のRAM内の記憶領域である。
次いで、コマンドバッファのデータを読み出したので、コマンドバッファの読出用ポインタであるコマンド読出インデックスの値を0〜31の範囲で+1更新して(ステップD75)、ステップD76に進む。なお、ここでの0〜31の範囲は、ステップD58で更新されるコマンド書込インデックスと同範囲になっていればよい。
ステップD76に進むと、コマンド受信数分のコマンドをコピー完了したか否か(すなわち、コマンド受信数分だけステップD74及びD75を繰り返し実行したか否か)を判定し、完了していなければ(ステップD76;N)、ステップD74に戻ってステップD74から処理を繰り返し、完了していれば(ステップD76;Y)、ステップD77に進む。
ステップD77に進むと、コマンド領域の内容(コマンド領域の未だ読み出されていないデータのうちで一番先に格納されたデータ、すなわち、次に読み出すべきデータ)をロードして(ステップD77)、このロードしたコマンド(以下「今回のコマンド」という)のデータについて、受信コマンド解析処理(ステップD78)を実行する。
次いで、コマンド領域のアドレス(次に読み出すべきデータのアドレス)を更新して(ステップD79)、ステップD80に進む。
ステップD80に進むと、コマンド受信数分のコマンドを解析完了したか否か(すなわち、コマンド受信数分だけステップD77〜D79を繰り返し実行したか否か)を判定し、完了していなければ(ステップD80;N)、ステップD77に戻ってステップD77から処理を繰り返し、完了していれば(ステップD80;Y)、受信コマンドチェック処理を終了する。
〔受信コマンド解析処理〕
次に、上述の受信コマンドチェック処理における受信コマンド解析処理(ステップD78)の詳細について図76により説明する。
受信コマンド解析処理が開始されると、まず、ステップD77においてロードした今回のコマンドのデータのうちの上位バイトをMODEに、下位バイトをACTにそれぞれ分離して記憶して(ステップD91)、その後ステップD92に進む。なお、特図の変動パターンを指令する変動系のコマンドの場合、MODEとして記憶される上位バイトのデータは前半変動パターンを指令し、ACTとして記憶される下位バイトのデータは後半変動パターンを指令するものである。
なお、本願において、「前半変動」とは、リーチ前変動、すなわち、リーチ状態となる前に実行される特図変動表示ゲーム(リーチアクション開始前までの変動表示)を意味する。
また、「後半変動」とは、リーチ中変動、すなわち、リーチ状態となった後(リーチ状態となっている最中)に実行される特図変動表示ゲーム(いわゆるリーチアクション(例えば、特図の複数列の表示領域のうち特定領域を除く表示領域が大当りとなる特別結果態様(特別な図柄の組合せ)で変動表示が停止していて、特定領域のみで変動表示している状態)の変動表示)を意味する。
ステップD92に進むと、ステップD91で分離されたMODEの値が正常範囲か判定し、正常範囲でなければ(ステップD92;N)、受信コマンド解析処理を終了し、正常範囲であれば(ステップD92;Y)、ステップD93に進む。前述したように、MODEの値は定義されずに使用されていない値もあり、このような使用されていない値である場合には、ステップD92の判定で正常範囲でないと判定される(前述のステップD61と同様)。
ステップD93に進むと、ステップD91で分離されたACTの値が正常範囲か判定し、正常範囲でなければ(ステップD93;N)、受信コマンド解析処理を終了し、正常範囲であれば(ステップD93;Y)、ステップD94に進む。このステップD93の判定は、前述したステップD62〜D65と同様に行う。すなわち、MODE毎に有効なACTの値は異なり、このACTの有効値の上限〜下限は前述したACTIONチェックテーブルに定義されており、ステップD93ではこの上限〜下限の範囲内に分離されたACTの値が収まっているかをチェックし、収まっていれば正常範囲と判定する(この時点では歯抜けチェックは出来ていない)。
ステップD94に進むと、前述したACTIONチェックテーブルから、分離されたMODEの値に対応する一致チェックテーブルの先頭アドレスを取得して(ステップD94)、その後ステップD95に進む。
ここで、一致チェックテーブルとは、対応するMODEの値に対して有効な全てのACTの値(ACTIONの値)が先頭アドレスから順に登録されたものであり、MODEの値毎に設けられている。
なお、有効なACTIONの値が連続した範囲で固まっているMODEの場合には、一致チェックテーブルは不要であるため、ACTIONチェックテーブルにおける一致チェックテーブルの先頭アドレスのデータはNULLになっている。また、一致チェックテーブルが定義されているMODEの行に対しては、有効ACTIONが歯抜けになっているので、上限/下限をチェックした後、対応する一致チェックテーブルを使って更なる比較判定が行われる(後述するステップD96〜D99)。
ステップD95に進むと、ステップD94で取得した一致チェックテーブルの先頭アドレスがNULLか判定し、NULLであるならば(ステップD95;Y)、ステップD100に進み、NULLでなければ(ステップD95;N)、ステップD96に進む。なお、一致チェックテーブルの先頭アドレスがNULLであるということは、MODEに対する有効なACTの値が連続しているということであり、ステップD93の範囲チェックだけでOKであるため、後述するステップD96〜D99を実行しないでステップD100にジャンプする。
ステップD96に進むと、ステップD96、D99をループ端とするループ処理(繰り返し処理)を実行する。つまり、ステップD96に進むと、ステップD99で分岐することによって、後述するステップD97とステップD98を順次実行する動作を後述の終了条件が成立するまで繰り返す。当該ループ処理は、ステップD94で取得され後述のステップD98で更新される一致チェックテーブルのアドレス(以下「一致チェックテーブルアドレス」という)に対応するデータ(一致チェックテーブル内の対応する行のデータ)がステップD91で分離されたACTの値に一致することを終了条件としており、この終了条件が成立するまで繰り返し実行される。但し、後述するステップD97の判定結果がYesになると、当該ループ処理を抜ける(前記終了条件が成立していなくても当該ループ処理は終了となる)。
すなわち、ステップD96に進むと、まずステップD97で、一致チェックテーブルアドレスに対応するデータがチェック終了コードであるか判定し、チェック終了コードであれば(ステップD97;Y)、当該ループ処理を抜けて受信コマンド解析処理を終了し、チェック終了コードでなければ(ステップD97;N)、一致チェックテーブルアドレスを次レコードに更新して(ステップD98)、ステップD99に進む。一致チェックテーブルアドレスが次レコードに更新されると、当該一致チェックテーブルアドレスに対応する一致チェックテーブル内の行が次の行に切り替わる。
ステップD99に進むと、更新された一致チェックテーブルアドレスに対応するデータがステップD91で分離されたACTの値に一致するか判定し、一致すれば前記終了条件が成立したので当該ループ処理を終了してステップD100に進み、不一致であるならばステップD96に戻って当該ループ処理を繰り返す。
以上説明したステップD96〜D99のループ処理では、MODEに対して正常なACTの組合せになっているか否かのチェック(歯抜けチェックも含む)を実行している。1つのMODEに対し、有効なACTは複数あるがそれらの値が連続しているとは限らないので、コマンドが有効値であるかを比較確認している。そして、一致チェックテーブル中には有効値のみ定義されているので、それらの何れかと一致するかを1つ1つ比較確認している。例えば、ステップD91で分離されたMODEの値が89hであるとともにACTの値が31hであり、一致チェックテーブルの5行目のデータが31hである場合には、上記ループ処理が4回繰り返されたときに上記終了条件が成立してステップD99からステップD100に進むことになる。また、ステップD91で分離されたMODEの値が89hであるとともにACTの値が13h等であり、一致チェックテーブルには13h等が存在しない(13h等は一致チェックテーブルにおいて不連続な部分の存在しないデータである歯抜けデータとなっている)場合には、上記ループ処理が最終行まで繰り返されても上記終了条件は成立せず、最終行に至った時点でデータがチェック終了コードになるためにステップD97の判定結果がYesになって上記ループ処理を抜けてリターンすることになる。なお、このようにステップD97の判定結果がYesになる場合はACTの値が異常であるため、前述のステップD92、D93の判定結果がNoになった場合と同様に、コマンド異常であるとしてステップD100以降を実行しないで受信コマンド解析処理が終了してしまう。
前述したように、ステップD99までの処理においてコマンドの値(ステップD91で分離されたMODE及びACTのデータ)が異常であると判定されない場合には、ステップD95又はD99を経てステップD100が実行される。
ステップD100では、MODEのデータが変動系コマンド範囲内にあるか判定し、この範囲内ならば(ステップD100;Y)、変動系コマンド処理(ステップD101)を実行して受信コマンド解析処理を終了し、この範囲外ならば(ステップD100;N)、ステップD102に進む。ここで、MODEのデータとは、ステップD91で分離されて記憶されたMODEのデータである(後述のステップD102等でも同様)。変動系コマンド(「変動コマンド」或いは「変動パターンコマンド」という場合もある)は、特図の変動パターンを指令するコマンドであり、この変動コマンドのデータがとり得る範囲が変動系コマンド範囲である。なお、このステップD100ではMODEの歯抜けチェックは行わない構成でもよいし、行ってもよい。
ステップD102に進むと、MODEのデータが大当り系コマンド範囲内にあるか判定し、この範囲内ならば(ステップD102;Y)、大当り系コマンド処理(ステップD103)を実行して受信コマンド解析処理を終了し、この範囲外ならば(ステップD102;N)、ステップD104に進む。大当り系コマンドは、大当り中演出に関する動作(ファンファーレ画面やラウンド画面の表示など)を指令するコマンドであり、この大当り系コマンドのデータがとり得る範囲が大当り系コマンド範囲である。
ステップD104に進むと、MODEのデータが図柄系コマンド範囲内にあるか判定し、この範囲内ならば(ステップD104;Y)、図柄系コマンド処理(ステップD105)を実行して受信コマンド解析処理を終了し、この範囲外ならば(ステップD104;N)、ステップD106に進む。図柄系コマンド(「図柄コマンド」或いは「飾り特図コマンド」という場合もある)は、特図の図柄に関する情報(例えば、特図の停止図柄を何にするかなど)を指令するコマンドであり、この図柄コマンドのデータがとり得る範囲が図柄系コマンド範囲である。
ステップD106に進むと、MODEのデータが単発系コマンド範囲内にあるか判定し、この範囲内ならば(ステップD106;Y)、単発系コマンド処理(ステップD107)を実行して受信コマンド解析処理を終了し、この範囲外ならば(ステップD106;N)、ステップD108に進む。なお、図柄コマンドと変動系コマンドのように組合せで意味をなすコマンドと違い、単独で成立するコマンドを単発系コマンドという。単発系コマンド(「単発コマンド」という場合もある)には、客待ちデモコマンド、保留数コマンド、図柄停止コマンド、確率情報系コマンド、エラー/不正系コマンド、機種指定コマンドなどがある。この単発系コマンドのデータがとり得る範囲が単発系コマンド範囲である。
ステップD108に進むと、MODEのデータが先読み系コマンドであるか判定し、先読み系コマンドである場合(ステップD108;Y)には、先読み系コマンド処理(ステップD109)を実行して受信コマンド解析処理を終了し、先読み系コマンドでない場合(ステップD108;N)には、ステップD109を実行しないで受信コマンド解析処理を終了する。ここで、先読み系コマンドとは、先読み演出(例えば、特図の大当り予告)の発生の有無、発生時の演出内容の決定を指令するコマンドである。
なお、本例では、変動開始時のコマンド受信順が従来構成と異なっている。従来は、変動パターンコマンド→停止図柄コマンド→保留数コマンドという順番だったが、本例では、保留数コマンド→停止図柄コマンド→変動パターンコマンドという順番としている。ここで、保留数コマンドは変動演出とは直接関係なく独立した内容なので送信順の変更はそれ程重要ではないが、図柄コマンド(停止図柄コマンド)と変動コマンド(変動パターンコマンド)の順を入れ替えたことについては、次のような背景及び効果がある。
すなわち、変動演出の内容を決めるのは変動パターンコマンドで、停止図柄は演出内容における1つのパラメータでしかないと言うことができ、図柄コマンドを受信しただけでは何も行えない。以前から、変動パターンコマンドを「画面表示変化系のコマンド」、図柄コマンドを「内部パラメータ変更系のコマンド」として扱っているが、従来の構成では、画面表示変化系のコマンドを受信しても、図柄パラメータを受信していない段階のため、直ちに演出準備を行うことができなかった。更に、図柄コマンドが規定時間内に送られてくるかも監視しなければならず、演出制御装置の負担を増加させていた。
しかし、本例では、その順番を逆にしたので、変動パターンコマンドを受信した時点で、受信済みの図柄情報が合致していれば直ちに演出準備を行うことが可能になったという効果が得られる。なお、図柄コマンドを先に受信しても、画面表示を変更するコマンドではないので先に図柄だけ変わってしまうことはない。RAMに図柄情報を保存するだけだからである。また、図柄コマンドを取りこぼしてしまったとしても前回RAMに保存されている図柄情報が合致するものであれば変動が可能であるという利点もある。これに対して、従来の構成では、取りこぼしてしまうと図柄情報欠損となり、変動を行うことができなかった。つまり、本例の場合、コマンド取りこぼしを遊技者に悟られてしまう可能性が限りなく低くなった(従来よりも格段に低くなった)と言える。また、図柄コマンドと変動コマンドは、ペアとなるコマンドであるが、その関係を薄くし独立したコマンドとして扱えるようになったのでプログラムの開発効率が向上したという効果もある。
〔変動系コマンド処理〕
次に、上述の受信コマンド解析処理における変動系コマンド処理(ステップD101)の詳細について図77により説明する。
変動系コマンド処理が開始されると、まずステップD111で、特図種別が未確定か判定し、未確定である場合(ステップD111;Y)には、変動系コマンド処理を終了し、未確定でない場合(ステップD111;N)、すなわち、特図種別が設定されている場合には、変動パターン対応図柄判定処理(ステップD112)を実行してステップD113に進む。特図種別とは、特図の種別が特図1か特図2かを示す情報であり、図柄系コマンド処理の後述するステップD171で設定される情報である。
ステップD113に進むと、変動パターン対応図柄判定処理(ステップD112)で返される情報(有効コマンド情報又は無効コマンド情報)に基づいて、変動コマンドと図柄種別が不整合であるか否か判定し、不整合である場合(ステップD113;Y)、すなわち無効コマンド情報が返された場合には、変動系コマンド処理を終了し、不整合でない場合(ステップD113;N)、すなわち有効コマンド情報が返された場合には、ステップD114に進む。
なお、図柄種別とは図柄のカテゴリを意味し、図柄種別には、例えば、はずれ図柄、16R確変大当り図柄などがある。また、上記ステップD113における不整合とは、はずれの変動コマンド(変動パターンコマンド)を受信したのに、16R確変大当り図柄の図柄コマンドを受信していた時など、演出を行う上で矛盾してしまう組み合わせ(変動コマンドと図柄種別の組み合わせ)であることを意味する。
ステップD114に進むと、変動コマンドに応じた演出を行うために、変動演出設定処理(ステップD114)を実行して、P機状態(パチンコ遊技機の状態)として変動中を設定して(ステップD115)、変動系コマンド処理を終了する。ここで、変動中とは、特図の変動中(客待ちデモ中や大当り中、或いはファンファーレ中等でないこと)を表している。
〔変動パターン対応図柄判定処理〕
次に、上述の変動系コマンド処理の変動パターン対応図柄判定処理(ステップD112)の詳細について図78により説明する。
変動パターン対応図柄判定処理が開始されると、まず、図柄系コマンド処理の後述するステップD173でセーブされた図柄種別情報をロードして(ステップD121)、ステップD122に進む。
なお、ここでの図柄種別情報は、特図(飾り図柄)の変動表示ゲームの停止図柄の図柄種別を示す情報である。本例の場合、図柄種別は、「はずれ図柄」、「2R確変大当り図柄」、「16R確変大当り図柄」、「11R確変大当り図柄」、及び「11R通常大当り図柄」の5種類に分類することができ、詳細には例えば「16R確変大当り図柄」はさらにA〜Eの5種類に分かれており、また「11R確変大当り図柄」はさらにA〜Cの3種類に分かれているために全部で11種類の停止図柄パターンがある。但し、この態様に限定されず、例えば他のラウンド数の大当り図柄や、小当り図柄などの種別が設定されていてもよく、この図柄種別の設定は機種の仕様によって変化する。ここで、2Rや16Rというのは大当りのラウンド数を示し、確変大当り図柄は大当り後に確変状態(大当りとなる確率が通常状態よりも高められた状態)となる大当り図柄であり、通常大当り図柄は大当り後に通常状態(確変状態でない状態)となる大当り図柄である。また、はずれ図柄は変動表示ゲームの結果がはずれとなる図柄(大当りにならない図柄)である。
ステップD122に進むと、MODEのデータ(前述のステップD91で分離された上位バイトのデータ)が変動系コマンド範囲内にあるか判定し、この範囲内ならば(ステップD122;Y)、ステップD123に進み、この範囲外ならば(ステップD122;N)、コマンド異常であるとしてステップD133に進む。このステップD122では、前述したステップD100と例えば同じ判定を再度実行している。なお、このステップD122ではMODEの歯抜けチェックは行わない構成でもよいし、行ってもよい。また、このステップD122と前述したステップD100の判定内容を異ならせてもよい。例えば、前述したステップD100とこのステップD122のうちの何れか一方のみでMODEの歯抜けチェックを行う態様としてもよい。
ステップD123に進むと、ステップD121でロードした図柄種別情報がはずれ図柄か判定し、はずれ図柄ならば(ステップD123;Y)、MODEのデータに対応するはずれ時ACT整合チェックテーブルを設定して(ステップD124)、ステップD141に進み、はずれ図柄でないならば(ステップD123;N)、ステップD125に進む。ここで、はずれ時ACT整合チェックテーブルは、はずれ図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
なお、PROM321には、はずれ時ACT整合チェックアドレステーブルが登録されており、上記ステップD124では、このはずれ時ACT整合チェックアドレステーブルから対応するはずれ時ACT整合チェックテーブルのアドレスを取得して設定する。はずれ時ACT整合チェックアドレステーブルは、変動系コマンド範囲の各MODEの値に対応して、はずれ時ACT整合チェックテーブルを特定するアドレス(この場合、はずれ時ACT整合チェックテーブルの先頭アドレス)が定義されたものである。そして、はずれ時ACT整合チェックテーブルとは、はずれ図柄の場合に、対応するMODEの値に対して有効な全てのACTの値(ACTIONの値)が先頭アドレスから順に登録されたものであり、MODEの値毎に設けられている。
また、このようなACT整合チェックアドレステーブルとACT整合チェックテーブルは、はずれ図柄以外の図柄種別(「2R確変大当り図柄」、「16R確変大当り図柄」、「11R確変大当り図柄」、及び「11R通常大当り図柄」)についても同様に設けられており、後述のステップD126,D128,D130,D132においてステップD124と同様に使用される。
ステップD125に進むと、ステップD121でロードした図柄種別情報が2R確変大当り図柄か判定し、2R確変大当り図柄ならば(ステップD125;Y)、MODEのデータに対応する2R確変大当り時ACT整合チェックテーブルを設定して(ステップD126)、ステップD141に進み、2R確変大当り図柄でないならば(ステップD125;N)、ステップD127に進む。ここで、2R確変大当り時ACT整合チェックテーブルは、2R確変大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD127に進むと、ステップD121でロードした図柄種別情報が16R確変大当り図柄か判定し、16R確変大当り図柄ならば(ステップD127;Y)、MODEのデータに対応する16R確変大当り時ACT整合チェックテーブルを設定して(ステップD128)、ステップD141に進み、16R確変大当り図柄でないならば(ステップD127;N)、ステップD129に進む。ここで、16R確変大当り時ACT整合チェックテーブルは、16R確変大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD129に進むと、ステップD121でロードした図柄種別情報が11R確変大当り図柄か判定し、11R確変大当り図柄ならば(ステップD129;Y)、MODEのデータに対応する11R確変大当り時ACT整合チェックテーブルを設定して(ステップD130)、ステップD141に進み、11R確変大当り図柄でないならば(ステップD129;N)、ステップD131に進む。ここで、11R確変大当り時ACT整合チェックテーブルは、11R確変大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD131に進むと、ステップD121でロードした図柄種別情報が11R通常大当り図柄か判定し、11R通常大当り図柄ならば(ステップD131;Y)、MODEのデータに対応する11R通常大当り時ACT整合チェックテーブルを設定して(ステップD132)、ステップD141に進み、11R通常大当り図柄でないならば(ステップD131;N)、コマンド異常であるとしてステップD133に進む。ここで、11R通常大当り時ACT整合チェックテーブルは、11R通常大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD133に進むと、無効コマンド情報を返して(ステップD133)、変動パターン対応図柄判定処理を終了する。
ステップD141に進むと、ステップD141、D144をループ端とするループ処理(繰り返し処理)を実行する。つまり、ステップD141に進むと、ステップD144で分岐することによって、ステップD142とステップD143を順次実行する動作を当該ACT整合チェックテーブル(直前のステップD124,D126,D128,D130,D132のうちの何れかで設定されたもの)の最後まで繰り返す。
すなわち、ステップD141に進むと、まずステップD142で、ステップD124,D126,D128,D130,D132の何れかで取得され後述のステップD143で更新されるACT整合チェックテーブルのアドレス(以下「ACT整合チェックテーブルアドレス」という)に対応するデータ(ACT整合チェックテーブル内の対応する行のデータ)がステップD91で分離されたACTの値に一致するか判定し、一致すれば(ステップD142;Y)、当該ループ処理を抜けてステップD146に進み、一致しなければ(ステップD142;N)、ACT整合チェックテーブルアドレスを次レコードに更新して(ステップD143)、ステップD144に進む。
ステップD144に進むと、当該ACT整合チェックテーブルの最後のデータまでステップD142が繰り返し実行されたか判定し、最後のデータまでステップD142が繰り返された場合にはステップD145に進み、そうでない場合にはステップD141に戻って処理を繰り返す。具体的には、ステップD144では、ステップD143で更新されたACT整合チェックテーブルアドレスに対応するデータがチェック終了コード(−1)であるか判定し、チェック終了コードであれば最後まで繰り返されたとしてステップD145に進み、チェック終了コードでなければステップD141に戻って処理を繰り返す。
このステップD141〜D144の繰り返しループの処理によって、当該ACT整合チェックテーブル内の何れかのデータと、前述のステップD91で分離されたACTのデータとが一致すれば、ステップD146に進み、そうでない場合(一致するデータが当該ACT整合チェックテーブルに一つもない場合)には、ステップD145に進む。
そして、ステップD145に進むと、異常であるとして無効コマンド情報を返して(ステップD145)、変動パターン対応図柄判定処理を終了する。また、ステップD146に進むと、正常であるとして有効コマンド情報の値を返して(ステップD146)、変動パターン対応図柄判定処理を終了する。
なお、前述のステップD113では、上記ステップD133、D145、D146の何れかで返された情報によって、変動コマンドと図柄種別の整合性が判定される。
例えば、事前にはずれ図柄の図柄コマンドを受信していてステップD121でロードされる図柄種別情報がはずれ図柄であり、ステップD91で分離された変動コマンドのMODEの値がCBhであるとともにACTの値が06hであり、ACT整合チェックテーブルの5行目のデータが06hである場合には、上記ステップD142が5回繰り返されたときに上記ステップD142の判定結果がYesになってステップD146に進み、有効コマンド情報が返されてステップD113の判定結果はNo(整合)となる。また、同様の場合に、ステップD91で分離されたMODEの値がCBhであるとともにACTの値が例えば01hであり、ACT整合チェックテーブルには01hが存在しない場合には、上記ループ処理が何度繰り返されても上記ステップD142の判定結果はNoであり、最終行に至った時点でデータがチェック終了コードになるために上記ループ処理を終了してステップD145に進み、無効コマンド情報が返されてステップD113の判定結果はYes(不整合)となる。また、ステップD91で分離されたMODEの値が変動系コマンド範囲でない場合(ステップD122がNoの場合)や、ステップD91で分離されたMODEの値が変動系コマンド範囲である(ステップD122がYes)にもかかわらずステップD121でロードされた図柄種別情報が何れの図柄種別でもない場合(ステップD123,D125,D127,D129,D131が全てNoの場合)には、ステップD133で無効コマンド情報が返されてステップD113の判定結果はYes(不整合)となる。
このように、上記変動パターン対応図柄判定処理によれば、停止図柄に合った変動パターンコマンドになっているかという整合性のチェックが行われる。停止図柄の種類(前述したはずれ図柄、16R確変大当り図柄などの図柄種別)によって行われる変動が異なるので、図柄に合った変動パターンコマンドとなっているかを事前にチェックし、整合性がとれていなければ前述したステップD114、D115を実行しないで異常な変動表示演出を行わないようにするためである。なお、変動パターンは、必ずしも完全に図柄毎できれいに分かれているわけではなく、例えば16R確変大当り図柄と2R確変大当り図柄で共用される変動パターンなどもある。
〔大当り系コマンド処理〕
次に、上述の受信コマンド解析処理における大当り系コマンド処理(ステップD103)の詳細について図79により説明する。
大当り系コマンド処理が開始されると、まずステップD151で、MODEのデータ(前述のステップD91で分離された上位バイトのデータ、後述のステップD154、D157、D160でも同じ)がファンファーレ演出(大当りになった時の演出)を指令するものであるか判定し、ファンファーレ演出を指令するものである場合(ステップD151;Y)には、ステップD152に進み、ファンファーレ演出を指令するものでない場合(ステップD151;N)には、ステップD154に進む。
ステップD152に進むと、コマンドに応じたファンファーレ演出を行うためのファンファーレ演出設定処理(ステップD152)を実行して、P機状態としてファンファーレ中を設定して(ステップD153)、大当り系コマンド処理を終了する。
ステップD154に進むと、MODEのデータがラウンド演出(大当りのラウンド中の演出)を指令するものであるか判定し、ラウンド演出を指令するものである場合(ステップD154;Y)には、ステップD155に進み、ラウンド演出を指令するものでない場合(ステップD154;N)には、ステップD157に進む。
ステップD155に進むと、コマンドに応じたラウンド演出を行うためのラウンド演出設定処理(ステップD155)を実行して、P機状態としてラウンド中を設定して(ステップD156)、大当り系コマンド処理を終了する。
ステップD157に進むと、MODEのデータがインターバル演出(大当り中のラウンドとラウンドの間の演出)を指令するものであるか判定し、インターバル演出を指令するものである場合(ステップD157;Y)には、ステップD158に進み、インターバル演出を指令するものでない場合(ステップD157;N)には、ステップD160に進む。
ステップD158に進むと、コマンドに応じたインターバル演出を行うためのインターバル演出設定処理(ステップD158)を実行して、P機状態としてインターバル中を設定して(ステップD159)、大当り系コマンド処理を終了する。
ステップD160に進むと、MODEのデータがエンディング演出(大当り終了時の演出)を指令するものであるか判定し、エンディング演出を指令するものである場合(ステップD160;Y)には、ステップD161に進み、エンディング演出を指令するものでない場合(ステップD160;N)には、大当り系コマンド処理を終了する。
ステップD161に進むと、コマンドに応じたエンディング演出を行うためのエンディング演出設定処理(ステップD161)を実行して、P機状態としてエンディング中を設定して(ステップD162)、大当り系コマンドを終了する。
なお、以上は大当り系コマンド処理の一例であり、上記以外の処理(例えば、ファンファーレ、ラウンド、インターバル、及びエンディング以外の演出のための処理)もあり得る。
〔図柄系コマンド処理〕
次に、上述の受信コマンド解析処理における図柄系コマンド処理(ステップD105)の詳細について図80により説明する。
図柄系コマンド処理が開始されると、まず、MODEのデータ(前述のステップD91で分離された上位バイトのデータ、後述のステップD172でも同じ)に対応する特図種別(特図1か特図2かの情報)を設定する(ステップD171)。例えば、MODEのデータが85hならば特図1を特図種別として設定し、MODEのデータが86hならば特図2を特図種別として設定する。このように特図1か特図2かはMODEのデータから判定できるので、このステップD171では、MODEのデータから特図種別を判定して設定する。
次いで、MODEのデータに対応する図柄種別設定テーブルを設定する(ステップD172)。図柄種別設定テーブルは、図柄コマンドに対応した図柄種別(前述したはずれ図柄、16R確変大当り図柄等の図柄のカテゴリ)を判定するためのテーブルであり、図柄コマンドのACTIONのデータ(例えば、11h〜1Bhの11種類ある)と図柄種別との対応関係が定義されたテーブルである。特図1と特図2で図柄の割合が変わるので(確変割合は同じ)、MODE毎にこの図柄種別設定テーブルを分けて設けており、ステップD172では、複数ある図柄種別設定テーブルからMODEのデータに対応するものを選択して設定する。
次いで、ステップD172で設定された図柄種別設定テーブルに基づいて、ACTのデータ(前述のステップD91で分離された下位バイトのデータ)に対応する図柄種別を取得し、図柄種別情報としてセーブして(ステップD173)、図柄系コマンド処理を終了する。
なお、こうして図柄コマンドを受けてステップD171やD173で設定された特図種別や図柄種別の情報が、図柄コマンドに続いて受信された変動コマンドに対する前述のステップD111、D112の処理で使用される。そして、特図種別の情報は、ステップD111の判定に使用されても、ステップD171が新たに実行されるまで以前にステップD171で設定されたデータが記憶保持される構成となっている。また、図柄種別の情報は、ステップD112で使用された後も、ステップD173が新たに実行されるまで、以前にステップD173で設定されたデータが記憶保持される構成となっている。
〔単発系コマンド処理〕
次に、上述の受信コマンド解析処理における単発系コマンド処理(ステップD107)の詳細について図81及び図82により説明する。
単発系コマンド処理が開始されると、まずステップD181で、MODEのデータ(前述のステップD91で分離された上位バイトのデータ、後述のステップD191、D193、D195、D197、D199、D204、D207でも同じ)が客待ちデモを指令するものであるか判定し、客待ちデモを指令するものである場合(ステップD181;Y)には、ステップD182に進み、客待ちデモを指令するものでない場合(ステップD181;N)には、ステップD191に進む。なお、客待ちデモとは、客待ちデモ演出(又は「客待ち演出」ともいう)のことであり、表示装置41で行われる客待ちデモ表示を含む演出である。客待ちデモ演出では、表示装置41での表示に限られず、他の表示装置での表示やランプ類の点灯(点滅含む)、或いは音声の出力による演出が行われてもよい。
ステップD182に進むと、P機状態(パチンコ遊技機の状態)が客待ちデモ中か判定し、客待ちデモ中ならば(ステップD182;Y)、単発系コマンド処理を終了し、客待ちデモ中でなければ(ステップD182;N)、客待ち演出を行うために客待ち用シナリオデータ設定処理(ステップD183)を実行する。なお、演出制御装置300の制御処理の説明においてシナリオ制御データとは、特定の演出の流れを制御するために、後述するシナリオ管理領域或いはシナリオ管理領域のアドレス領域に設定されるデータを意味する。このステップD183では、客待ち演出を行うためのシナリオ制御データの設定が行われる。
次いで、P機状態として客待ちA(客待ち状態A)を設定して(ステップD184)、ステップD185に進む。なお、本例の場合、客待ち演出には、客待ち状態A、客待ち状態B、客待ちムービー(音無し)、及び客待ちムービー(音有り)がある。
ステップD185に進むと、サブ間データ送信中であるか判定し(すなわち、異なるパチンコ遊技機の演出制御装置に対してデータ送信中であるか判定し)、送信中であれば(ステップD185;Y)、単発系コマンド処理を終了し、送信中でなければ(ステップD185;N)、ステップD186に進む。
ステップD186に進むと、客待ちデモ同期(客待ちデモ表示におけるサブ間同期)のサブ間コマンド(ブロードキャスト送信設定)を準備して(ステップD186)、この準備したサブ間コマンドを編集すべくサブ間送信データ編集処理(ステップD187)を実行する。
次いで、ack待ちタイマ(後述するステップD521で使用されるタイマ)に初期値をセットする(ステップD188)。なお、サブ間コマンドを受信したパチンコ遊技機のサブ基板(演出制御装置)が、サブ間コマンドを送信したパチンコ遊技機のサブ基板に対してackを返すか否かはコマンドの種類で変わる(後述するステップD480a参照)。本例では、客待ちデモ同期のサブ間コマンドには、ackの返信を要求する内容が入っている。すなわち、本例では、客待ちデモ同期のサブ間コマンドは、ack返答が必要なコマンドである。
次いで、サブ間演出開始待ちタイマ(後述するステップD532で使用されるタイマ)を設定して(ステップD189)、サブ間送信要求フラグをセットして(ステップD190)、単発系コマンド処理を終了する。サブ間送信要求フラグは、後述するステップD461の判定に使用される。
ステップD191に進むと、MODEのデータが特図1保留数の値を指令するものであるか判定し、特図1保留数の値を指令するものである場合(ステップD191;Y)には、特図1保留情報設定処理(ステップD192)を実行した後に単発系コマンド処理を終了し、特図1保留数の値を指令するものでない場合(ステップD191;N)には、ステップD193に進む。
ステップD193に進むと、MODEのデータが特図2保留数の値を指令するものであるか判定し、特図2保留数の値を指令するものである場合(ステップD193;Y)には、特図2保留情報設定処理(ステップD194)を実行した後に単発系コマンド処理を終了し、特図2保留数の値を指令するものでない場合(ステップD193;N)には、ステップD195に進む。なお、特図1保留情報設定処理(ステップD192)は詳細を後述するが、特図2保留情報設定処理(ステップD194)については、特図1保留情報設定処理と同様の処理(特図1か特図2かの違いのみ)であるため説明を省略する。
ステップD195に進むと、MODEのデータが演出モード切替準備を指令するもの(演出モード切替準備コマンドのデータ)であるか判定し、演出モード切替準備を指令するものである場合(ステップD195;Y)には、演出モード切替設定処理(ステップD196)を実行した後に単発系コマンド処理を終了し、演出モード切替準備を指令するものでない場合(ステップD195;N)には、ステップD197に進む。演出モード切替設定処理(ステップD196)は、演出モード切替準備コマンドに応じた動作を行うための制御処理であり、そのためのシナリオデータ設定処理を含む。
ステップD197に進むと、MODEのデータが停電復旧を知らせるもの(停電復旧時のコマンドのデータ)であるか判定し、停電復旧を知らせるものである場合(ステップD197;Y)には、停電復旧設定処理(ステップD198)を実行した後に単発系コマンド処理を終了し、停電復旧を知らせるものでない場合(ステップD197;N)には、ステップD199に進む。停電復旧設定処理(ステップD198)は、例えば「遊技再開しました」といったメッセージを表示装置41に表示したり、ランプ類を所定態様で点滅させたりして遊技者へ停電復旧を報知する等のための処理であり、そのためのシナリオデータ設定処理を含む。
ステップD199に進むと、MODEのデータが電源投入(初期化スイッチ(RAMクリアスイッチ)をオンした状態での電源投入)を知らせるもの(電源投入時のコマンドのデータ)であるか判定し、当該電源投入を知らせるものである場合(ステップD199;Y)には、ステップD200に進み、当該電源投入を知らせるものでない場合(ステップD199;N)には、ステップD204に進む。なお、電源投入時のコマンドは、遊技制御装置100がRWMクリアしたことを演出制御装置300に知らせる電源投入コマンドのことである。この電源投入コマンドは、演出制御装置300に演出状態をクリアさせるのと、RWMクリア報知(RWMクリアされたことを、例えば表示装置41に表示する動作)を行わせるために送られる。
ステップD200に進むと、各種初期画面情報を設定する(ステップD200)。各種初期画面情報の設定内容は、特図種別・図柄種別をクリアする、特図1保留数及び特図2保留数に0を設定する、現図柄及び停止図柄に例えば左=7、中=5、右=3のはずれ図柄を設定するというものである。
次いで、この時点での保留数(=0)に対応する保留用モーション制御テーブルのインデックスを算出し、セーブする(ステップD201)。ここで、保留用モーション制御テーブルのインデックスとは、保留用モーション制御テーブルの行(レコード)を指定するインデックスである。また、保留用モーション制御テーブルとは、特図の始動記憶の保留表示を行うためのモーション制御テーブルである。また、このステップD201の処理は、特図1保留数と特図2保留数についてそれぞれ実行する。
ここで、モーション制御テーブルとは、ブロック化された各演出(主に演出表示)を実行するための制御テーブルであり、単にモーションテーブルともいう。このモーションテーブルのデータは、PC(パーソナルコンピュータ)で実行できる市販のアプリケーションソフトによってマウス等を使用したグラフィカルな入力操作によって容易に制作できるものであり、ブロック化された演出毎に演出制御装置300のPROM321に予め記憶されている。
次いで、電源投入用シナリオデータ設定処理(ステップD202)を実行する。この電源投入用シナリオデータ設定処理には、演出装置のモータの動作位置を初期位置にするなどのための初期化処理、さらには前記RWMクリア報知を実行するための制御処理が含まれてもよい。
次いで、P機状態として客待ちA(客待ち状態A)を設定して(ステップD203)、単発系コマンド処理を終了する。
ステップD204に進むと、MODEのデータが特図の図柄停止を指令するものであるか判定し、特図の図柄停止を指令するものである場合(ステップD204;Y)には、ステップD205に進み、特図の図柄停止を指令するものでない場合(ステップD204;N)には、ステップD207に進む。
ステップD205に進むと、図柄停止用シナリオデータ設定処理(ステップD205)を実行して、P機状態として通常を設定して(ステップD206)、単発系コマンドを終了する。ここで、通常とは、特図の大当り中、特図の変動中、客待ち中(客待ち状態)の何れでもないことを示す。また、ここで通常と設定された後は、主基板からの次のコマンドに応じて、例えば特図の変動中になったり、客待ち中になったりする。
ステップD207に進むと、MODEのデータが確率情報を知らせるもの(確変情報コマンドのデータ)であるか判定し、確率情報を知らせるものである場合(ステップD207;Y)には、確率情報設定処理(ステップD208)を実行した後に単発系コマンド処理を終了し、確率情報を知らせるものでない場合(ステップD207;N)には、図示省略された他の処理のステップ(例えば、MODEのデータを判定する他のステップ)に進む。
ここで、確率情報設定処理(ステップD208)は、大当り後に確変になった場合の確変終了時(高確率状態から低確率である通常状態への移行時)の画面切替のための設定処理であり、そのためのシナリオデータ設定処理を含む場合もある。
なお、この単発系コマンド処理については、図示及び説明を省略しているステップがある。例えば、非変動系の他のコマンド(エラー系等のコマンドなど)を受信した場合の対応処理等を省略している。また、全てのコマンドに対してシナリオ制御データを設定しているわけではない。例えば、枠開放を示すエラー系コマンドを受信した場合、表示装置41の画面は変化させないためシナリオ制御データの設定は行わない。
〔客待ち用シナリオデータ設定処理〕
次に、上述の単発系コマンド処理における客待ち用シナリオデータ設定処理(ステップD183)の詳細について図83により説明する。
客待ち用シナリオデータ設定処理が開始されると、まず、シナリオレイヤー番号0を準備する(ステップD211)。ここで、「準備する」とは、後の処理のためにデータを所定の記憶領域に一次記憶して保持しておくことを意味する(後述する他のステップでも同様)。また、シナリオレイヤーは、演出の流れを階層的に制御するための概念的なシナリオの層(レイヤー)である。また、シナリオレイヤー番号は各シナリオレイヤーに付けた番号であり、本例の場合、0から7まである。また、本例では、シナリオレイヤー番号0のシナリオレイヤー(以下「シナリオレイヤー0」という)は主に背景画像の表示制御に使い、シナリオレイヤー1は左図柄の表示制御に使い、シナリオレイヤー2は右図柄の表示制御に使い、シナリオレイヤー3は中図柄の表示制御に使い、シナリオレイヤー4は予告1キャラクタの表示制御に使い、シナリオレイヤー5は予告2キャラクタの表示制御に使い、シナリオレイヤー6は保留表示(すなわち飾り特図始動記憶表示)の表示制御に使い、シナリオレイヤー7は第4図柄の表示制御に使うといったように、シナリオレイヤー毎に制御対象が基本的に割り当てられている。但し、客待ち演出はシナリオレイヤー0のみを使用し、シナリオレイヤー0の中で客待ち演出用の図柄等のモーション情報も管理するようにしている。
次いで、客待ちシナリオ用データテーブルのアドレスを準備する(ステップD212)。シナリオ用データテーブル(単に「シナリオテーブル」ともいう)とは、特定の演出の流れを制御するためのデータ(どのモーションテーブルをどんなタイミングで実行するかなどを指定するデータ)が設定されたテーブルであり、演出制御装置300のPROM321に演出毎に予め記憶されている。客待ちシナリオ用データテーブルは、客待ち演出のための背景シナリオテーブルであり、例えば図135に示す構成となっている。また、本例のシナリオテーブルは、図135に示すように、オペコードとオペランドのデータ(シナリオデータ)が各行(各レコード)に設定されてなるものである。
次いで、直前のステップD211、D212で準備されたデータ(アドレスやシナリオレイヤー番号のデータ)に基づきシナリオデータ設定処理(ステップD213)を実行する。
次いで、シナリオレイヤー番号1を準備して(ステップD214)、左図柄シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD215)、直前のステップD214、D215で準備されたデータに基づきシナリオデータ設定処理(ステップD216)を実行する。
次いで、シナリオレイヤー番号2を準備して(ステップD217)、右図柄シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD218)、直前のステップD217、D218で準備されたデータに基づきシナリオデータ設定処理(ステップD219)を実行する。
次いで、シナリオレイヤー番号3を準備して(ステップD220)、中図柄シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD221)、直前のステップD220、D221で準備されたデータに基づきシナリオデータ設定処理(ステップD222)を実行する。
次いで、シナリオレイヤー番号4を準備して(ステップD223)、予告1シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD224)、直前のステップD223、D224で準備されたデータに基づきシナリオデータ設定処理(ステップD225)を実行する。
次いで、シナリオレイヤー番号5を準備して(ステップD226)、予告2シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD227)、直前のステップD226、D227で準備されたデータに基づきシナリオデータ設定処理(ステップD228)を実行する。
次いで、シナリオレイヤー番号6を準備して(ステップD229)、保留シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD230)、直前のステップD229、D230で準備されたデータに基づきシナリオデータ設定処理(ステップD231)を実行する。
次いで、シナリオレイヤー番号7を準備して(ステップD232)、第4図柄シナリオ用データテーブルのアドレス(NULL)を準備して(ステップD233)、直前のステップD232、D233で準備されたデータに基づきシナリオデータ設定処理(ステップD234)を実行して、客待ち用シナリオデータ設定処理を終了する。
なお、ステップD215、D218、D221、D224、D227、D230、D233でアドレス(NULL)を準備するシナリオレイヤー1〜7は、シナリオ用データテーブルが設定されないシナリオレイヤー、すなわち制御されないシナリオレイヤーである。
〔シナリオデータ設定処理〕
次に、上述の客待ち用シナリオデータ設定処理におけるシナリオデータ設定処理(ステップD213、D216、D219、D222、D225、D228、D231、D234)の詳細について図84により説明する。なお、このシナリオデータ設定処理は各種の演出に対して共通化されており、このシナリオデータ設定処理が実行されるステップは、他の処理(例えば、後述するリーチなし変動設定処理のステップD318等)にも多数存在する。「シナリオデータ設定処理」と記載されているステップは、全てこの図84に示すものである。
シナリオデータ設定処理が開始されると、まずステップD241で、準備されたシナリオ用データテーブルのアドレス(例えばステップD212、D215等で準備されたもの)がNULLか判定し、NULLならば(ステップD241;Y)、ステップD247に進み、NULLでなければ(ステップD241;N)、ステップD242に進む。
なお、前述の客待ち用シナリオデータ設定処理においては、ステップD213で本処理が実行された場合には直前のステップD212でNULLでない客待ちシナリオ用データテーブルのアドレスが準備されているので、ステップD241の判定結果はNoになってステップD242に進むことになり、それ以外のステップD216等で本処理が実行された場合には直前のステップD215等でNULLが準備されているので、ステップD241の判定結果はYesになってステップD247に進むことになる。
ステップD242に進むと、準備されたシナリオレイヤー番号(例えばステップD211で準備されたもの、以下同様)に対応するシナリオ管理領域の先頭アドレスを設定する(ステップD242)。本例の場合、演出制御装置300のCPU311内のRAMには、「シナリオ管理領域のアドレス領域」と「シナリオ管理領域」というシナリオ管理用の記憶領域が設けられる構成となっている。
このうち、シナリオ管理領域は、図133の右側に示すように、シナリオ用タイマの値を記憶する領域(シナリオ用タイマ領域)と、PB用タイマ(プッシュボタン用タイマ)の値を記憶する領域(PB用タイマ領域)と、PB検知フラグ(プッシュボタン検知フラグ)の値を記憶する領域(PB検知フラグ領域)と、シナリオ用データテーブルのアドレスを記憶する領域(シナリオ用データテーブル領域)とを含む構造である。
また、同一構造のシナリオ管理領域が各シナリオレイヤーに対応してシナリオレイヤー分存在し、本例ではシナリオレイヤーが8個あるので、このシナリオ管理領域も8個(シナリオ管理領域0〜7)存在する。上記ステップD242では、このように複数あるシナリオ管理領域のうちの一つを特定するために、準備されたシナリオレイヤー番号に対応するシナリオ管理領域(以下「対応シナリオ管理領域」という)の先頭アドレスを設定している。
ここで、本願において、「PB(プッシュボタン)」とは、プッシュボタン(演出ボタン25)だけを意味するのではなく、演出操作部550全体(すなわち、プッシュボタン(演出ボタン25)とセレクトボタン(タッチパネル29))を意味する。よって、例えば「PB検知」とは、“演出ボタン25操作の検知及び/又はタッチパネル29操作の検知”を意味する。
なお、シナリオ管理領域のアドレス領域とは、シナリオレイヤー毎にシナリオ管理領域の先頭アドレスを格納する領域であり、本例ではシナリオレイヤーが8個あるので、図133の左側に示すように、これに対応した8個の先頭アドレス(シナリオレイヤー0用アドレス〜シナリオレイヤー7用アドレス)をそれぞれ格納する8個の領域からなる。
次いで、準備されたシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域に、直前のステップD242で設定されたシナリオ管理領域の先頭アドレスを格納する(すなわち、書き込む)(ステップD243)。
次いで、対応シナリオ管理領域のシナリオ用タイマの値として0を書き込む(すなわち、値をクリアする)処理を行い(ステップD244)、対応シナリオ管理領域のPB用タイマの値として0を書き込む(すなわち、値をクリアする)処理を行う(ステップD245)。なお、対応シナリオ管理領域のPB検知フラグについても値をクリアしてもよいが、必要なとき(PB検知を開始するとき)にクリアすればよいので、ここではPB検知フラグの値の設定は行わない。
次いで、対応シナリオ管理領域のシナリオ用データテーブル領域に、準備されたシナリオ用データテーブルのアドレス(例えばステップD212で準備されたもの)を書き込んで(ステップD246)、シナリオデータ設定処理を終了する。
一方、ステップD247に進むと、準備されたシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域にNULLを書き込んで(ステップD247)、シナリオデータ設定処理を終了する。
以上のシナリオデータ設定処理によれば、準備されたシナリオレイヤー番号に対応するシナリオ管理用の記憶領域(「シナリオ管理領域のアドレス領域」及び「シナリオ管理領域」)に、これから実行しようとする演出用のシナリオ制御データが設定される。
例えば、前述した客待ち用シナリオデータ設定処理では、ステップD213、D216、D219、D222、D225、D228、D231、D234で上記シナリオデータ設定処理が実行されることによって、シナリオ管理領域のアドレス領域におけるシナリオレイヤー0用アドレスとしてシナリオ管理領域0の先頭アドレスが設定され、残りのシナリオレイヤー1用アドレスからシナリオレイヤー7用アドレスまでにはNULLが設定される。また、シナリオ管理領域0のシナリオ用データテーブル領域にはステップD212で準備された客待ちシナリオ用データテーブルのアドレスが設定される。これにより、シナリオレイヤー0のみで客待ち演出の制御が実行される。
〔特図1保留情報設定処理〕
次に、前述の単発系コマンド処理における特図1保留情報設定処理(ステップD192)の詳細について図85により説明する。
特図1保留情報設定処理が開始されると、まず、その時点の特図1保留数のデータをロードし、このロードしたデータを前保留数として記憶する(ステップD251)。
次いで、コマンド(ステップD91で分離されたMODE及びACTのデータ)で指令された保留数の値を特図1保留数として記憶して(ステップD252)、その後ステップD253に進む。
ステップD253に進むと、新保留数(ステップD252で記憶された特図1保留数)と前保留数(ステップD251で記憶された値)とが一致するか判定し、一致する場合(ステップD253;Y)には、特図1保留情報設定処理を終了し、一致しない場合(ステップD253;N)には、ステップD254に進む。
ステップD254に進むと、新保留数に対応する保留用モーション制御テーブルのインデックスを算出し、セーブする(ステップD254)。なお、インデックスとは、グループを成す複数の記憶領域のうちの何番目かを特定するデータであり、特にモーションテーブルを特定するインデックスをモーションインデックスという。このステップD254では、新保留数に対応する保留用モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(保留用インデックス領域)にセーブする。
次いで、シナリオレイヤー番号6を準備して(ステップD255)、特図1保留シナリオ用データテーブル(保留X個)のアドレスを準備する(ステップD256)。ここで、特図1保留シナリオ用データテーブル(保留X個)とは、新保留数に対応する演出を行うための保留数毎に異なるシナリオテーブルを意味し、新保留数が例えば1個であれば特図1保留シナリオ用データテーブル(保留1個)であり、新保留数が例えば2個であれば特図1保留シナリオ用データテーブル(保留2個)である。
次いで、直前のステップD255、D256で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD257)を実行して、ステップD258に進む。
ステップD258に進むと、保留数が増加したか(すなわち、新保留数>前保留数であるか)判定し、増加したならば(ステップD258;Y)、ステップD259に進み、増加していないならば(ステップD258;N)、ステップD262に進む。
ステップD259に進むと、新保留数に対応する色情報領域に保留通常点灯の表示パターンを設定して(ステップD259)、ステップD260に進む。
ステップD260に進むと、P機状態が大当り中か判定し、大当り中であれば(ステップD260;Y)、特図1保留情報設定処理を終了し、大当り中でなければ(ステップD260;N)、始動口入賞音を出力要求して(ステップD261)、特図1保留情報設定処理を終了する。なお、大当り中には、前述したファンファーレ中、ラウンド中、インターバル中、及びエンディング中が含まれる。
ステップD262に進むと、特図1先読み情報領域をシフトして(ステップD262)、色情報領域をシフトして(ステップD263)、特図1保留情報設定処理を終了する。
なお、ステップD259に進むのは、特図1の始動入賞があった場合であるので、この始動入賞による保留表示(保留されている始動記憶の表示)や演出用の入賞音出力を行うためにステップD259及びD261が実行される。但し、大当り中には、ステップD260で分岐して入賞音出力を行わない。また、ステップD262に進むのは、特図1の始動記憶の保留数が減少した場合であるため、先読み表示(例えば大当り予告や変動パターン予告)を行っている保留数の表示をずらして表示したり、先読み情報(先読みした変動パターンや停止図柄の情報及び先読み演出有無等の各種情報(フラグ等))を保留数に対応する領域にずらすために、ステップD262、D263が実行される。
演出制御装置300では、前述のステップD109(先読み系コマンド処理)において、各保留毎に、先読み系コマンドの解析結果として上記先読み情報を設定している。そして、この先読み情報の格納領域は、主基板で変動開始時に乱数格納領域をシフトするのと同様に、前記保留数の減少に対応させてシフトさせる必要があり、この格納領域のシフトを行っているのが、上記ステップD262である。また、ステップD263は、先読み情報に応じた保留表示色(すなわち、先読み演出のために先読み演出の有無や内容によって異ならせている保留表示の色)の情報の格納領域を同様にシフトさせるための処理である。
〔変動演出設定処理〕
次に、前述の変動系コマンド処理における変動演出設定処理(ステップD114)の詳細について図86及び図87により説明する。
変動演出設定処理が開始されると、まず、受信したコマンドに応じた大別パターン(特図の変動表示演出の大まかな分類であり、後述する大別パターンデータによって決まる)を選択する変動パターン分類処理(ステップD271)を実行して、上記ステップD271の変動パターン分類処理で返された大別パターン及び各種演出情報に対応する予告振分テーブル1を準備する(ステップD272)。ここでの演出情報とは、停止図柄の情報(特に大当り図柄の詳細、はずれは大別パターンで分かるため)、高確率/時短状態といった確率状態の情報、保留数の数、及び演出制御装置300が管理する遊技モード(本例では遊技制御装置からも遊技モードのコマンドが送られてくる)などが有り得る。このステップD272(或いは後述のステップD274、D277)で各種演出情報を考慮して予告振分テーブルを設定しているので、例えば同一の変動パターンコマンドでも、そのときの状態で、予告の振り分け率(発生率)を変化させられるようになる。
次いで、乱数抽選処理A(ステップD273)を実行する。
次いで、上記ステップD271で返された大別パターン及び各種演出情報に対応する予告振分テーブル2を準備して(ステップD274)、乱数抽選処理B(ステップD275)を実行して、ステップD276に進む。
ステップD276に進むと、上記ステップD271で返された大別パターンが「通常はずれ」か判定し、「通常はずれ」であれば(ステップD276;Y)、ステップD279に進み、「通常はずれ」でなければ(ステップD276;N)、ステップD277に進む。
ステップD277に進むと、上記ステップD271で返された大別パターン及び各種演出情報に対応する予告振分テーブル3を準備して(ステップD277)、乱数抽選処理C(ステップD278)を実行して、ステップD279に進む。
ステップD279に進むと、基本BGM番号(基本BGMの曲番号)を設定して(ステップD279)、予告演出設定処理1(ステップD280)を実行して、その後ステップD281に進む。
ステップD281に進むと、ここまでの処理で決定された前半変動種別が通常変動か否か判定し、通常変動であれば(ステップD281;Y)、ステップD282に進み、通常変動でなければ(ステップD281;N)、図86において波線で図示省略した他の処理のステップ(前半変動種別が通常変動でない場合の各種変動の処理)に進む。
なお、前半変動種別とは、同一のMODE(例えば12秒前半通常変動)の中で、演出制御装置側で振り分けている変動予告種類のことである。また、「通常変動」における「通常」とは、いわゆるすべりや短縮変動等の特殊な変動ではないという意味である。また煩雑を避けるため、ここでは、前半変動種別が通常(すべりや短縮でない)の場合の予告振り分けの様子のみをフローチャート(図86)に記載している。そして、前半変動種別が通常変動でない場合の各種変動の処理は、ステップD281の判定結果がNoになった流れ以降のステップ(図86において波線で省略している)で実行されるが、この流れ以降の処理を実行した後には、次の図87のステップD290に進む構成となっている。また、大当り、はずれのいずれの場合でも、前半変動が通常になり得るので、各予告用シナリオデータ設定処理(後述するステップD286〜D289)は大当りとはずれの何れの場合でも実行される可能性がある。但し、大当り専用の前半変動なども考えられるので、常に両用の設定処理ばかりとは限らない。
ステップD282に進むと、ここまでの処理(ステップD273等)で決定された予告種別(後述する演出振分け結果領域のデータ)が巻物予告を指定するものであるか判定し、巻物予告でない場合(ステップD282;N)には、ステップD283に進み、巻物予告である場合(ステップD282;Y)には、巻物予告用シナリオデータ設定処理(ステップD286)を実行した後にステップD290に進む。
ステップD283に進むと、ここまでの処理で決定された予告種別が巻物文字予告を指定するものであるか判定し、巻物文字予告でない場合(ステップD283;N)には、ステップD284に進み、巻物文字予告である場合(ステップD283;Y)には、巻物文字予告用シナリオデータ設定処理(ステップD287)を実行した後にステップD290に進む。
ステップD284に進むと、ここまでの処理で決定された予告種別がPB予告を指定するものであるか判定し、PB予告でない場合(ステップD284;N)には、ステップD285に進み、PB予告である場合(ステップD284;Y)には、PB予告用シナリオデータ設定処理(ステップD288)を実行した後にステップD290に進む。
ステップD285に進むと、ここまでの処理で決定された予告種別がフラッシュバック予告を指定するものであるか判定し、フラッシュバック予告でない場合(ステップD285;N)には、ステップD290に進み、フラッシュバック予告である場合(ステップD285;Y)には、フラッシュバック予告用シナリオデータ設定処理(ステップD289)を実行した後にステップD290に進む。
ステップD290に進むと、特図種別が特図2か否かを判定し、特図2である場合(ステップD290;Y)には、ステップD291に進み、特図2でない場合(ステップD290;N)、すなわち、特図1の場合には、ステップD293に進む。
ステップD291に進むと、特図2に対応する保留用モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(保留用インデックス領域)にセーブして(ステップD291)、第4図柄用(特図2変動)モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(第4図柄インデックス領域)にセーブして(ステップD292)、ステップD295に進む。
ステップD293に進むと、特図1に対応する保留用モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(保留用インデックス領域)にセーブして(ステップD293)、第4図柄用(特図1変動)モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(第4図柄インデックス領域)にセーブして(ステップD294)、ステップD295に進む。
モーション用リストテーブルは、多数あるモーションテーブルに関するデータを各行(各レコード)に配置したモーションテーブルのデータリストである。このモーション用リストテーブルの各行のデータがそれぞれ一つのモーションテーブルに関するデータである。このモーション用リストテーブルの各行には、データ項目(データのカテゴリ)として、フレーム数、モーションコマンド数、モーションテーブル名、ビヘイビア数、及びビヘイビアテーブル名がある。但し、このカテゴリ設定は一例であり、これ以外のパラメータを設定してもよい。各データ項目の内容は以下のとおりである。
・フレーム数(表示フレーム数)は、当該モーションテーブルは何フレーム分のモーションデータ(モーションテーブルを構成するデータ)が定義されているかを示す。
・モーションコマンド数は、当該モーションテーブル内に定義されているコマンド数を示す。
・モーションテーブル名は、当該モーションテーブルの名称(=アドレス)を示す。
・ビヘイビア数は、当該モーションテーブル内で使用するビヘイビアの数(種類)を示す。
・ビヘイビアテーブル名は、当該モーション制御時のビヘイビア(処理のアドレス)を定義してあるビヘイビアテーブルの名称(=アドレス)を示す。
なお、ビヘイビア数が0なら、当然ビヘイビアテーブルは不要である。
ここで、ビヘイビアとは、オブジェクト(表示要素)の動作を設定する機能である。本例では、主にモーションテーブル上に定義されている画像データ(キャラクタデータ)を状況に応じて変更するために使用している。
ステップD295に進むと、特図停止図柄領域の値を現図柄領域にセーブして(ステップD295)、ステップD296に進む。ここで、特図停止図柄領域の値とは、後述するステップD354で設定されるデータである。また、現図柄領域は、表示する現図柄の図柄番号を記憶する記憶領域(その時点で表示画面41a上に表示する現図柄の図柄番号が入っている記憶領域)であり、この記憶領域の値(現図柄の図柄番号)は変動表示中に変動に伴って次々と更新される。なお、特図の変動表示は、前回の変動表示の停止図柄から次回の変動表示(客待ち中の図柄表示も含む)を開始するが、この動作を確実に行うため、このステップD295で前回の変動表示の停止図柄をセーブして次回の変動表示に利用する構成となっている。これは、特に変動表示中に新たな変動コマンドを受信した場合に意味がある。すなわち、変動表示中に新たな変動コマンドを受信した場合、このステップD295の処理があるため、受信時に表示されていた図柄から次の変動を開始するのではなく、前回変動で停止するはずだった図柄に差し替えられて変動を開始する。この場合、仮にステップD295が無ければ、その時点(変動コマンド受信時点)で表示されていた図柄から始まり、どの図柄が停止するはずだったのか遊技者に分からないという問題が生じる。しかし、本例であれば、ステップD295があることによって、前回変動で停止するはずだった図柄に差し替えられて変動を開始することになり、遊技者は前回の停止図柄が分かるため、このような問題が解消される。
ステップD296に進むと、ステップD91で分離されたMODEのデータ(前半変動パターンのデータ)が12秒前半通常変動を指令するものか否か判定し、12秒前半通常変動を指令するものであれば(ステップD296;Y)、ステップD297に進み、12秒前半通常変動を指令するものでなければ(ステップD296;N)、ステップD299に進む。ここで、「12秒前半通常変動」における「通常」とは、短縮変動等の特殊な変動ではないという意味である。
なお、本例では、12秒前半通常変動の場合には、リーチアクション無しの変動パターンしかあり得ない。この場合、リーチアクションを行わないので後半変動の時間値は0として設定し、合計で12秒となる変動パターン(すなわち、12秒通常変動;ここでの「通常」はリーチではない変動という意味である)として定義している。つまり、ステップD91で分離されたACTのデータ(後半変動パターン)が示す後半変動時間値は0秒変動ということになる。
ステップD297に進むと、前記ACTのデータがリーチアクション無し(0秒変動)を指令するものか判定し、リーチアクション無しである場合(ステップD297;Y)には、リーチなし変動設定処理(ステップD298)を実行した後に変動演出設定処理を終了し、リーチアクション無しでない場合(ステップD297;N)には、異常であるのでステップD298を実行しないで変動演出設定処理を終了する。
ステップD299に進むと、前記MODEのデータが(前半変動パターン)が10.4秒前半通常変動(ここでの「通常」は短縮変動等ではないという意味)を指令するものか否か判定し、10.4秒前半通常変動を指令するものであれば(ステップD299;Y)、ステップD300に進み、10.4秒前半通常変動を指令するものでなければ(ステップD299;N)、ステップD308に進む。なお、本例では、10.4秒前半通常変動の場合には、リーチアクション有りの変動パターンしかあり得ない。この場合、リーチアクションの演出内容に伴って後半変動の時間値は変化するので、合計で「10.4+α」秒となる変動パターンとして定義される。同一のMODEに対してACTのデータ(後半変動パターン)は複数の種類があり、この数は遊技機毎の仕様により異なる。
ステップD300に進むと、前記ACTのデータ(後半変動パターン)がノーマル−1はずれの変動を指令するものか否か判定し、ノーマル−1はずれを指令するものであれば(ステップD300;Y)、ノーマル−1はずれ設定処理(ステップD304)を実行した後に変動演出設定処理を終了し、ノーマル−1はずれを指令するものでなければ(ステップD300;N)、ステップD301に進む。なお、ノーマル−1はずれは、ノーマルリーチアクション有りで外れる変動パターンである。
ステップD301に進むと、前記ACTのデータ(後半変動パターン)がノーマル+1はずれの変動を指令するものか否か判定し、ノーマル+1はずれを指令するものであれば(ステップD301;Y)、ノーマル+1はずれ設定処理(ステップD305)を実行した後に変動演出設定処理を終了し、ノーマル+1はずれを指令するものでなければ(ステップD301;N)、ステップD302に進む。なお、ノーマル+1はずれも、ノーマルリーチアクション有りで外れる変動パターンである。
ステップD302に進むと、前記ACTのデータ(後半変動パターン)が武将−1はずれの変動を指令するものか否か判定し、武将−1はずれを指令するものであれば(ステップD302;Y)、武将−1はずれ設定処理(ステップD306)を実行した後に変動演出設定処理を終了し、武将−1はずれを指令するものでなければ(ステップD302;N)、ステップD303に進む。なお、武将−1はずれは、武将リーチアクション有りで外れる変動パターンである。
ステップD303に進むと、前記ACTのデータ(後半変動パターン)が武将発展−1はずれの変動を指令するものか否か判定し、武将発展−1はずれを指令するものであれば(ステップD303;Y)、武将発展−1はずれ設定処理(ステップD307)を実行した後に変動演出設定処理を終了し、武将発展−1はずれを指令するものでなければ(ステップD303;N)、図87において波線で省略された他のステップに進む。なお、武将発展−1はずれは、武将発展リーチアクション有りで外れる変動パターンである。また、ステップD303の判定結果がNoになった流れ以降(波線で図示省略した箇所)では、10.4秒前半通常変動の場合の他のリーチ演出(例えば大当りになる場合の変動表示演出も含む)についてステップD303、D307等と同様の処理が実行され、前記ACTのデータが何れにも該当しない場合には異常であるので変動演出設定処理を終了する。
ステップD308に進むと、前記MODEのデータが(前半変動パターン)が12.8秒擬似連1変動を指令するものか否か判定し、12.8秒擬似連1変動を指令するものであれば(ステップD308;Y)、ステップD309に進み、12.8秒擬似連1変動を指令するものでなければ(ステップD308;N)、図87において波線で省略された他のステップに進む。なお、ステップD308の判定結果がNoになった流れ以降(波線で図示省略した箇所)では、前記MODEのデータが上記以外である場合の変動表示演出についてステップD303、D307等と同様の処理が実行され、前記MODEのデータが何れにも該当しない場合には異常であるので変動演出設定処理を終了する。
ステップD309に進むと、前記ACTのデータ(後半変動パターン)が武将−1はずれの変動を指令するものか否か判定し、武将−1はずれを指令するものであれば(ステップD309;Y)、ノーマル−1はずれ設定処理(ステップD310)を実行した後に変動演出設定処理を終了し、武将−1はずれを指令するものでなければ(ステップD309;N)、図87において波線で省略された他のステップに進む。なお、ステップD309の判定結果がNoになった流れ以降(波線で図示省略した箇所)では、12.8秒擬似連1変動の場合の他のリーチ演出(例えば大当りになる場合の変動表示演出も含む)についてステップD309、D310等と同様の処理が実行され、前記ACTのデータが何れにも該当しない場合には異常であるので変動演出設定処理を終了する。
〔リーチなし変動設定処理〕
次に、上述の変動演出設定処理におけるリーチなし変動設定処理(ステップD298)の詳細について図88により説明する。なお、本例では、MODE=12秒前半通常変動は、はずれの場合しかない。このため、このリーチなし変動設定処理で設定される後述の図柄生成フラグは、はずれ図柄の指示しかない。
リーチなし変動設定処理が開始されると、まずステップD311で、以前の処理(ステップD271〜D278)で設定された前半変動種別が超短縮変動であるか判定し、超短縮変動であれば(ステップD311;Y)、リーチ+1はずれの図柄生成フラグを準備して(ステップD312)、ステップD314に進み、超短縮変動でなければ(ステップD311;N)、はずれバラケ目の図柄生成フラグを準備して(ステップD313)、ステップD314に進む。
なお、超短縮変動とは、主基板からの指令は12秒前半通常変動でも、その中でリーチの動きを行うことをサブ基板で選択する場合があり、そのような場合の変動の例である。
また、バラケ目とは、特図を構成する複数の図柄がリーチや大当りとなる図柄でない状態(リーチ形の組み合わせでなければ「776」のような組み合わせも含む)を意味する。
ステップD314に進むと、ステップD312又はD313で準備された図柄生成フラグに基づいて停止図柄設定処理(ステップD314)を実行して、前記ACT及び前記前半変動種別に対応するシナリオテーブルのアドレス(シナリオテーブルの名称)を図柄変動シナリオテーブル領域にセーブする(ステップD315)。図柄変動シナリオテーブル領域とは、これから使用する図柄変動のシナリオテーブルのアドレスを一時的に格納しておく演出制御装置300のCPU311内のRAMの記憶領域であり、左図柄用領域、右図柄用領域、中図柄用領域に分かれ、さらに各図柄用領域は1st(序盤)用、2nd(前半)用、3rd(後半)用に分かれていて、一つのシナリオテーブルのアドレスを格納する領域が合計9個(=3×3個)ある。一方、演出制御装置300のPROM321には、遊技制御装置から受信したコマンドと前記前半変動種別に応じて図柄変動用のシナリオテーブルを選択するためのテーブル(以下「図柄変動リストテーブル」という)がコマンド毎(ACTのデータ毎)に登録されている。ステップD315では、まず前記ACTに対応する図柄変動リストテーブルを選択し、次に選択した図柄変動リストテーブルにある複数の設定パターンの中から前記前半変動種別に対応する設定パターンを選択し、選択した設定パターンのシナリオテーブルのアドレスを図柄変動シナリオテーブル領域にセーブする。
なお、本願では、前半変動時間内の図柄の動きだしの期間を「序盤」(1st)、前半変動時間内の残りの期間を「前半」(2nd)としている。同一の前半変動時間でも図柄の動きだしが、そのまま下にスクロールする場合や一旦上にホッピングしたりする場合(予告の一種)もあるので、動きが一通りにならないよう「序盤+前半=前半変動」という構成になっている。そして、後半変動時間を「後半」(3rd)としている。また、本例は、このように、特図変動時の演出を時間的に複数に分割した各期間について演出内容をそれぞれ設定し、各期間の演出内容の組合せとして特図変動時の演出全体を構成する組合せ式となっている。これにより、制御データ記憶用の不揮発性メモリ(本例ではPROM321)に格納しなければならない総データ量が減るというメリットがある。すなわち、例えば、少しでも動きが違う演出内容毎にテーブルを全て用意するとデータ量が膨大になってしまうが、この組合せ式であればそのような問題が改善される。
次いで、シナリオレイヤー番号0を準備して(ステップD316)、現在の遊技モード等に対応する背景シナリオテーブルのアドレスを準備して(ステップD317)、直前のステップD316、D317で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD318)を実行する。
次いで、シナリオレイヤー番号1を準備して(ステップD319)、前述した図柄変動シナリオテーブル領域から、左図柄シナリオ1stテーブルアドレス(前述した左図柄用領域における1st(序盤)用領域に格納されたシナリオテーブルのアドレス)をロードし、準備して(ステップD320)、直前のステップD319、D320で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD321)を実行する。
次いで、シナリオレイヤー番号2を準備して(ステップD322)、前述した図柄変動シナリオテーブル領域から、右図柄シナリオ1stテーブルアドレス(前述した右図柄用領域における1st(序盤)用領域に格納されたシナリオテーブルのアドレス)をロードし、準備して(ステップD323)、直前のステップD322、D323で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD324)を実行する。
次いで、シナリオレイヤー番号3を準備して(ステップD325)、前述した図柄変動シナリオテーブル領域から、中図柄シナリオ1stテーブルアドレス(前述した中図柄用領域における1st(序盤)用領域に格納されたシナリオテーブルのアドレス)をロードし、準備して(ステップD326)、直前のステップD325、D326で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD327)を実行する。
次いで、シナリオレイヤー番号7を準備して(ステップD328)、第4図柄シナリオテーブル(第4図柄用のシナリオテーブル)のアドレスを準備して(ステップD329)、直前のステップD328、D329で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD330)を実行して、リーチなし変動設定処理を終了する。
以上説明したリーチなし変動設定処理によれば、リーチなし変動の場合のシナリオ制御データの設定が必要なシナリオレイヤー(この場合、シナリオレイヤー0,1,2,3,7)について行われたことになる。
〔停止図柄設定処理〕
次に、上述のリーチなし変動設定処理における停止図柄設定処理(ステップD314)の詳細について図89により説明する。なお、本例では、演出用の特図が左右並んで配置される3カ所の図柄(左図柄、中図柄、右図柄)からなるが、これら図柄としてそれぞれ9種類の図柄(図柄番号0〜8)がある場合を例示する。
停止図柄設定処理が開始されると、まずステップD331で、前述した特図種別が特図2変動か判定し、特図2である場合(ステップD331;Y)には、ステップD332に進み、特図2でない場合(ステップD331;N)、すなわち、特図1の場合には、ステップD333に進む。
ステップD332に進むと、特図停止図柄領域の特図2第4図柄にはずれ図柄番号をセーブして(ステップD332)、ステップD334に進む。
ステップD333に進むと、特図停止図柄領域の特図1第4図柄にはずれ図柄番号をセーブして(ステップD333)、ステップD334に進む。
ステップD334に進むと、図柄生成フラグとしてはずれバラケ目が設定されているか判定し、設定されていれば(ステップD334;Y)、ステップD335に進み、設定されていなければ(ステップD334;N)、ステップD345に進む。なお、はずれバラケ目の図柄生成フラグは前述のステップD313で設定(準備)される。
ステップD335に進むと、9種類の図柄番号0〜8からランダムに一つ選択した図柄番号を左図柄lxとして設定して(ステップD335)、8種類の図柄番号0〜7からランダムに一つ選択した図柄番号を右図柄rxとして設定して(ステップD336)、ステップD337に進む。
ステップD337に進むと、ステップD336で設定した右図柄rxがステップD335で設定した左図柄lx以上の値であるか判定し、右図柄rx≧左図柄lxであれば(ステップD337;Y)、右図柄rxの図柄番号を1つ増やして(ステップD338)、ステップD339に進み、右図柄rx≧左図柄lxでなければ(ステップD337;N)、すなわち、右図柄rx<左図柄lxであれば、ステップD338を実行しないでステップD339に進む。
これらステップD335〜D338の処理により、左図柄lxと右図柄rxがランダムに設定されるとともに、左図柄lxと右図柄rxは必ず異なる図柄番号に設定される。ステップD336で図柄番号7以下の範囲から選択するのは、ステップD338で必ず一つ増やすことができるようにするためである。
ステップD339に進むと、左図柄lxと右図柄rxとが出現禁止図柄となり得る組合せか判定し、出現禁止図柄となり得る組合せならば(ステップD339;Y)、ステップD340に進み、出現禁止図柄となり得る組合せでなければ(ステップD339;N)、ステップD344に進む。出現禁止図柄とは、ここでは、はずれバラケ目として出現が禁止される図柄である。例えば「357」、「375」、「537」、・・・のように3,5,7の組合せの図柄をチャンス目とした仕様の場合に、このチャンス目がはずれ変動時に出現しないように禁則制御を行う必要があるときには、このチャンス目が出現禁止図柄である。ステップD339〜D343は、この禁則制御のための処理である。単にバラケ目でよい機種なら、この禁則制御は不要であり、右列の処理(ステップD344)だけで足りる。
具体的に説明すると、例えば3,5,7の組合せの図柄が出現禁止図柄であるとすると、ステップD339では、左図柄lxと右図柄rxの図柄番号が3,5,7のうちの異なる何れか二つである場合には、出現禁止図柄となり得るとしてステップD340に進む。
ステップD340に進むと、「左図柄lx,中図柄cx,右図柄rx」の組合せが出現禁止図柄となるcx値をnocxという記憶領域にセット(格納)する(ステップD340)。例えば、左図柄lxが3で、右図柄rxが5の場合、あとは中図柄cxが仮に7であれば、特図の図柄の組み合わせは「3,7,5」となって出現禁止図柄になるので、その中図柄cxの値である7をnocxにセットする。
次いで、8種類の図柄番号0〜7からランダムに一つ選択した図柄番号を中図柄cxとして設定して(ステップD341)、その後ステップD342に進む。
ステップD342に進むと、中図柄cx≧nocxであるか判定し、中図柄cx≧nocxであれば(ステップD342;Y)、中図柄cxの値を1つ増やして(ステップD343)、ステップD354に進み、中図柄cx≧nocxでなければ(ステップD342;N)、ステップD343を実行しないでステップD354に進む。
これらステップD341〜D343の処理によれば、中図柄cxの値は必ずnocxと異なる値になり、結局、「左図柄lx,中図柄cx,右図柄rx」の組合せは、必ず出現禁止図柄でないものとなる。
ステップD344に進むと、8種類の図柄番号0〜7からランダムに一つ選択した図柄番号を中図柄cxとして設定して(ステップD344)、その後ステップD354に進む。
ステップD345に進むと、図柄生成フラグとしてリーチ−1はずれ目が設定されているか判定し、設定されていれば(ステップD345;Y)、ステップD346に進み、設定されていなければ(ステップD345;N)、ステップD353に進む。なお、リーチ−1はずれ目の図柄生成フラグは前述のステップD304やD306でセットされる。
ステップD346に進むと、10種類の値0〜9からランダムに一つ選択した値をtmprndとして格納して(ステップD346)、ステップD347に進む。
ステップD347に進むと、tmprndの値が0か判定し、0ならば(ステップD347;Y)、ステップD348に進み、0でないならば(ステップD347;N)、ステップD350に進む。
ステップD348に進むと、奇数である4種類の値1,3,5,7からランダムに一つ選択した値を左図柄lxの番号として格納して(ステップD348)、ステップD349に進む。なお、ステップD348の図中の記載は、プログラム言語を用いて記載しており、「rand」は乱数を発生させる関数を示し、「mod」は割算の余りを求める演算を示しており、「rand()mod4」は0,1,2,3のうちからランダムに一つ選択された値となる。ステップD348では、この「rand()mod4」の値を2倍して1加算しているため、結局、1,3,5,7のうちからランダムに一つ選択された値となる。
ステップD350に進むと、偶数である5種類の値0,2,4,6,8からランダムに一つ選択した値を左図柄lxの番号として格納して(ステップD350)、ステップD351に進む。
ステップD349又はステップD351に進むと、リーチの図柄とするために、右図柄rxの値を左図柄lxの値と同じにする(すなわち、右図柄を左図柄と同じ図柄とする)処理を行って(ステップD349又はステップD351)、ステップD352に進む。
ここで、ステップD346〜D348、及びステップD350の処理によれば、リーチ図柄の奇数、偶数の出現割合を変化させることができる。この場合、ステップD347からステップD348に進むのはtmprnd=0の場合だけであるため、奇数図柄の出現割合は1/10となり、これに対してステップD347からステップD350に進む割合(すなわち、偶数図柄の出現割合)は9/10となる。このようにするのは、次の理由による。すなわち、再抽選演出があるため、どうしても大当りする時のリーチ図柄が偶数になりやすい。そこで、奇数リーチの大当り信頼度を低下させないために、奇数リーチの出現率を低くしているのである。なお、奇数、偶数の出現率の割合は、もちろん1:9の割合でなくともよい。また、本例では、ステップD348やD350のように計算で図柄を求める態様を例示したが、乱数とデータテーブルで図柄を選出してもよい。
ステップD352に進むと、−1はずれとなるように、左図柄lxの値から1を減算した結果を中図柄cxの値として設定して(ステップD352)、その後ステップD354へ進む。
ステップD353に進むと、その他の図柄生成フラグに対応する組合せの図柄(大当り図柄も含む)を生成して(ステップD353)、ステップD354に進む。
ステップD354に進むと、ここまでのステップで設定された左図柄lx、中図柄cx、右図柄rxの値を、停止図柄領域の左図柄・中図柄・右図柄にそれぞれ格納して(ステップD354)、停止図柄設定処理を終了する。
なお、上記ステップD334〜D352は、以上説明したように、はずれバラケ目の場合と、リーチ−1はずれ目の場合の処理である。実際には停止図柄の種類には、他にも沢山の種類があるが、ここでは煩雑を避けるために、それら他の種類の処理についてはステップD353でまとめて図示しており、その詳細については図示及び説明を省略する。
また、大当り図柄生成の場合は、例えば左図柄だけを決定し、中・右図柄にコピーするやり方などが考えられる。その他、「777」と限定される場合や、計算によらず停止図柄の組合せを複数テーブル上に定義し、乱数で何れかを選択する、というやり方も考えられる。
また、前述のステップD332,D333では第4図柄のはずれ図柄しか設定していないが、当りの場合には、ステップD353で図柄生成フラグに対応する第4図柄の当り図柄を設定する内容となっている。また、図柄生成フラグにも「2R確変大当り図柄目」、「16R確変大当り図柄目」、・・・といったような各種の設定内容があり、例えば「2R確変大当り図柄目」のフラグの場合、左中右図柄(飾り図柄としての左図柄、中図柄、及び右図柄)が「357」、「573」、・・・と複数のパターンが作られるように、第4図柄にも組み合わせが複数あり、どの組み合わせを出現させるかは乱数によって決定される。第4図柄の色の組み合わせは、当りの区分と1対1に対応しており、たとえば「上青、下青」の組み合わせは確変でない大当り、「上青、下黄」は確変大当りといったように対応している。機種毎に異なるが、事前に遊技機の仕様において、第4図柄の色の組み合わせには意味が定義されている。本例は、はずれでは「上白、下白」の1パターンしかあり得ない構成であり、白という色自身が外れ時にしか使われない。図89のステップD332,D333等では図柄番号を設定しているだけであるため、例えば外れでは特図1、2ともに図柄番号=0を設定し、図柄番号=0は特図1、2ともに「上白、下白」の組み合わせと定義されている。当り図柄では例えば第4図柄番号は1から36(例えば、確変当り時は1〜18から抽選、非確変当り時は19〜36から抽選する)までそれぞれあり、同一の番号でも色の組み合わせは特図1と2で異なることもあり得る。例えば、特図1での「上青、下青」は確変ではなくても、特図2では確変の組み合わせになるといったこともあり得る。そのため、図柄番号と色組み合わせのテーブルは特図1と2で別々となっている。このように、第4図柄の色組み合わせがたくさんあるのと、第4図柄の特図1・2で色組み合わせの意味(定義)を変えているのは、左中右図柄の形態で確変か否かが分からなくしているのと同様に、第4図柄の色の組み合わせでも判別を困難とするためである。
〔変動パターン分類処理〕
次に、前述の変動演出設定処理における変動パターン分類処理(ステップD271)の詳細について図90により説明する。
変動パターン分類処理が開始されると、まずステップD361で、MODEのデータが変動系コマンドであるか判定し、変動系コマンドであれば(ステップD361;Y)、ステップD362に進み、変動系コマンドでなければ(ステップD361;N)、ステップD368に進む。
ステップD362に進むと、ACTのデータは有効範囲か判定し、有効範囲であれば(ステップD362;Y)、ステップD363に進み、有効範囲でなければ(ステップD362;N)、ステップD368に進む。
ステップD363に進むと、MODEのデータに対応する変動パターンチェックデータを取得して(ステップD363)、ステップD364に進む。変動パターンチェックデータは、変動系コマンドのMODEのデータ毎に設定され、機種内で使用されていないMODEのデータに対しては変動パターンチェックデータとして0が設定されているものである。
ステップD364に進むと、ステップD363で取得した変動パターンチェックデータが0か判定し、0ならば(ステップD364;Y)、ステップD368に進み、0でなければ(ステップD364;N)、ステップD365に進む。
ステップD365に進むと、MODEのデータに対応する大別パターンテーブルをセット(設定)して(ステップD365)、ステップD365でセットされた大別パターンテーブルに基づいてACTのデータに対応する大別パターンデータを取得する(ステップD366)。
次いで、ステップD366で取得した大別パターンデータを返して(ステップD367)、変動パターン分類処理を終了する。
ステップD368に進むと、0を返して(ステップD368)、変動パターン分類処理を終了する。
ここで、大別パターンテーブルは、MODEのデータ毎に設けられている。大別パターンテーブルは、大別パターンデータがACTの上位データと下位データに対応してマトリクス(行列)状に配置されたもので、ACTの上位データ0〜4に対応して行が決まり、ACTの下位データ0〜Fに対応して列が決まることで、大別パターンデータが決まる構成となっており、テーブルの大きさは5行×16列となっている。大別パターンデータの内訳例は次のとおりである。すなわち、0:無効データ、1:リーチなし変動はずれ、2:ノーマルリーチはずれ、3:女性系リーチはずれ、4:武将系リーチはずれ、5:面完成武将発展系リーチはずれ、6:群雄系リーチはずれ、7:チャンス目系リーチ大当り(2R確変)、8:ノーマルリーチ大当り(2R確変)、・・・16:ノーマルリーチ大当り(16R確変、11R確変、11R通常)、17:女性系リーチ大当り(16R確変、11R確変、11R通常)、18:武将系リーチ大当り(16R確変、11R確変、11R通常)、19:面完成武将系リーチ大当り(16R確変、11R確変、11R通常)、20:群雄系リーチ大当り(16R確変、11R確変、11R通常)、・・・といったように設定されている。
なお、本例では後半変動パターン(ACTのデータ)の数が01h〜4Bhの範囲となっているので上記のサイズ(5行×16列)のテーブルとなっているが、これは一例であり、もっと細かく分けた構成でもよいし、或いは逆に例えば大別パターンデータが同じ値になる部分をまとめて大まかに分けた構成としてもよい。
また、大別パターンデータは、MODE及びACTのデータに対応した予告振分テーブル等を前述したステップD272等で準備するために、MODE及びACTのデータが指令する変動パターンがどの分類に属するのかを示すデータである。すなわち、コマンドの値から変動パターンの系統をチェックし、対応する予告振り分けのテーブル等を設定できるようにするために、この大別パターンデータがある。これは、リーチの種類等で予告の発生率が変化するためである。
また、大別パターンテーブルは、前述したように大別パターンデータを決定するためのテーブルである。そして、この大別パターンテーブルにおいて、MODE及びACTのデータの組み合わせが存在しない所は大別パターンデータが0となっている。このため、MODE及びACTのデータの組み合わせが存在しない場合、ステップD367では、ステップD368と同様に0を返すことになる。また、こうして0が返された場合、例えば通常外れと同様の扱いとする。通常外れと同様の扱いにすれば、確定したコマンドに万が一異常があっても、特図を一応変動させることができ、遊技者に不安を抱かせないようにすることができるなどの利点がある。但し、0が返された場合、通常外れとしないで、例えば変動演出設定処理においてステップD271を実行した後に、ステップD272以降を実行しないで当該変動演出設定処理を終了する構成として、変動開始設定を行わない態様も有り得る。このようにすると、コマンド異常の場合には特図を変動させないようにすることができる。
〔乱数抽選処理A〕
次に、前述の変動演出設定処理における乱数抽選処理A(ステップD273)の詳細について図91により説明する。この乱数抽選処理Aは、前述のステップD272で振分けのグループA用として準備された予告振分テーブル1における振分け結果を種別毎に乱数により選択する処理である。
乱数抽選処理Aが開始されると、予告種別番号Aを初期値1から増分1だけ増加させつつ終値na(例えば、na=9)になるまで、ステップD371〜ステップD380を繰り返し実行し、その後乱数抽選処理Aを終了する。すなわち、ステップD371では、乱数抽選処理A開始直後は予告種別番号Aを1としてステップD372に進む。ステップD380では、予告種別番号Aがna未満である場合にはステップD371に戻り、予告種別番号Aがnaである場合には乱数抽選処理Aを終了する。そしてステップD371に戻ると、予告種別番号Aの値を1だけ増加させてステップD372に進む。なお、終値naの値は機種毎に異なる。
なお、ステップD272、D274、D277で準備される予告振分テーブルは、例えばマトリックス状のデータテーブル(行列)であり、振分けの種別毎に同じ行(段)に各種振分け結果の振分け値が横並びに配置されている。予告種別番号Aの値は、このテーブルにおいて複数ある行のうちの一つの行に対応するもので、例えばA=1は上から1番目の行、A=2は上から2番目の行、・・・といったように対応している。すなわち、予告種別番号は、予告振分テーブルにおける特定の振分け値の縦方向の配置位置(何行目か)を示すパラメータである。また、予告振分テーブルの1つの行における特定の振分け値の横方向の配置位置(何列目か)を示すパラメータとして振分けテーブルアドレスが設けられている。また、振分け値は、本例では乱数値が0〜999の1000種類あるので、同じ行にある振分け値を全て加算すると1000になるように設定されている0〜999の範囲内の数である。以上のことは、他の振分テーブルや、他の予告種別番号B、Cについても同様である。
ステップD372に進むと、0〜999からランダムに一つ選択した値をrdmとして格納して(ステップD372)、振分番号を0(初期値)に設定する(ステップD373)。
次いで、予告種別番号Aに対応する振分テーブルアドレスの値(予告種別番号Aの値に対応する行の先頭の列を示す値)を設定して(ステップD374)、ステップD375に進む。ここで、振分テーブルアドレスは、既述したように、前述のステップD272で準備された予告振分テーブル内の同一行における横方向位置(以下「現アドレス」という)を指定する。
ステップD375に進むと、その時点での現アドレスの振分け値とrdmの値とを比較し、前記rdmの値が前記振分け値以上である場合(ステップD375;Y)には、ステップD376に進み、前記rdmの値が前記振分け値未満である場合(ステップD375;N)には、ステップD379に進む。
ステップD376に進むと、前記rdmの値から前記振分け値を減算した値を新たなrdmの値として設定して(ステップD376)、振分テーブルの現アドレスを次振分け値のアドレスに更新(振分テーブルの同一行において1列分だけ現アドレスを先頭から離れる方向にずらす更新)を実行する(ステップD377)。
次いで、振分番号を+1更新して(ステップD378)、ステップD375に戻って処理を繰り返す。
これらステップD375〜D378の処理によれば、rdmの値が現アドレスの振分け値未満になるまで、rdmの値から現アドレスの振分け値を減算して現アドレスを更新する処理が繰り返されることになる。そして、rdmの値が現アドレスの振分け値未満になったとき(すなわち、ステップD375の判定結果がNoになったとき)の現アドレスの更新回数(すなわち、振分番号の値)とその際の予告種別番号Aの値は、予告振分テーブルにおける特定の1つの位置(すなわち、1つの振分け結果)を示すものとなり、これにより振分け結果が乱数に基づいて選択されることになる。
ステップD379に進むと、現アドレスの更新回数(すなわち、前記ステップD376、D377等を繰り返し実行した回数)に相当する振分番号を予告データ値とし、この予告データ値を演出振分け結果領域の対応する領域にセーブして(ステップD379)、その後ステップD380に進む。
ステップD380に進むと、前述したように、予告種別番号Aがna未満である場合にはステップD371に戻り、予告種別番号Aがnaである場合には乱数抽選処理Aを終了する。
なお、演出振分け結果領域は、上記予告データ値のような演出振分け結果をセーブするCPU311内のRAM内の領域である。
〔乱数抽選処理B〕
次に、前述の変動演出設定処理における乱数抽選処理B(ステップD275)について説明する。この乱数抽選処理Bは、前述のステップD274で振分けのグループB用として準備された予告振分テーブル2における振分け結果を種別毎に乱数により選択する処理である。
乱数抽選処理Bの詳細は、前述の乱数抽選処理Aと同様であるため、図示及び詳細説明を省略する。
〔乱数抽選処理C〕
次に、前述の変動演出設定処理における乱数抽選処理C(ステップD278)について説明する。この乱数抽選処理Cは、前述のステップD277で振分けのグループC用として準備された予告振分テーブル3における振分け結果を種別毎に乱数により選択する処理である。
乱数抽選処理Cの詳細は、前述の乱数抽選処理Aと同様であるため、図示及び詳細説明を省略する。
なお、上述の乱数抽選処理AにおけるステップD379及び乱数抽選処理B,Cにおける同じ処理内容のステップでは、予告データ値(現アドレスの更新回数から決まる振分番号の値)によって特定される演出内容(演出パターン)に対応する各種情報(SU予告回数など)を演出振分け結果領域内の所定の記憶領域(例えば、後述するSU予告回数領域、SU1カットイン領域、SU2カットイン領域、SU3カットイン領域、差替え判定領域、差替え対象SU判定領域、セリフSU領域、セリフSU2パターン領域、セリフSU3パターン領域、リーチ文字領域)にそれぞれ格納する。
上述の乱数抽選処理A,B,Cによれば、全てのグループA,B,Cのそれぞれで全ての予告種別番号の値に対して振分け結果が予め選択され、この振分け結果に応じた演出内容を指定する各種情報が予め所定の記憶領域にそれぞれ格納されることになる。
また、三つの乱数抽選処理のうち、乱数抽選処理A(予告振り分けテーブル1)は、主に変動序盤における予告(変動開始直後に出現する予告や、変動開始時の図柄の動きだしのパターンなど)の振り分けを行うものである。また、乱数抽選処理B(予告振り分けテーブル2)は、主にリーチ開始までに行われる予告や、図柄のスローダウン〜仮停止(スベリや図柄送り数)までの動作パターンなどの振り分けを行うものである。また、乱数抽選処理C(予告振り分けテーブル3)は、主にリーチ中に出現する予告を選択するものである。
〔予告演出設定処理1〕
次に、前述の変動演出設定処理における予告演出設定処理1(ステップD280)の詳細について図92により説明する。この予告演出設定処理1としては、乱数抽選結果(前述した乱数抽選処理A、B、Cの結果)に応じてステップアップ予告の設定を行う場合を例示しているが、当然機種毎に予告演出の内容は異なる。なお、ステップアップ予告とは、予告内容や予告の信頼度を変化させつつ大当り予告を段階的に行うものである。本願の図面及び明細書において、「SU」とは、このステップアップ予告のステップアップを意味する。
予告演出設定処理1が開始されると、まず、演出振分け結果領域のSU予告回数領域から振分け結果をロードする(ステップD381)。
次いで、シナリオレイヤー番号4を準備して(ステップD382)、ステップD381でロードしたSU予告回数に対応するSU予告シナリオテーブルのアドレスを準備して(ステップD383)、直前のステップD382、D383で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD384)を実行する。
次いで、演出振分け結果領域のSU1カットイン領域から振分け結果をロードして(ステップD385)、ステップD385でロードしたSU1カットイン番号に対応する武将データを取得し、モーションインデックス領域(モーションインデックスを保存する記憶領域)のSU1カットイン領域にセーブする(ステップD386)。
次いで、演出振分け結果領域のSU2カットイン領域から振分け結果をロードして(ステップD387)、ステップD387でロードしたSU2カットイン番号に対応する武将データを取得し、モーションインデックス領域のSU2カットイン領域にセーブする(ステップD388)。
次いで、演出振分け結果領域のSU3カットイン領域から振分け結果をロードして(ステップD389)、ステップD389でロードしたSU3カットイン番号に対応する武将データを取得し、モーションインデックス領域のSU3カットイン領域にセーブして(ステップD390)、ステップD391に進む。
上記ステップD385〜D390では、振り分けられた武将キャラ出現を行うためのモーションテーブルのデータを、一旦保存している。なお、ここで保存されたデータが使用されるとは限らず、その後、後述のカットインキャラ差替え判定処理1〜3(ステップD395〜D397)における判定の結果によっては、例えば女性キャラのデータに差し替えが行われる。また、ここでは、SU数が満たない結果(例えばSU1が選ばれた)の場合、上位SU領域には一番信頼度の低いキャラクタのデータをセーブしておくことになるが、結果としては使われない制御となっている。
ステップD391に進むと、ステップD381でロードしたSU予告回数が0か判定し、0でない場合(ステップD391;N)には、ステップD392に進み、0である場合(ステップD391;Y)には、予告演出設定処理1を終了する。
ステップD392に進むと、ステップD381でロードしたSU予告回数が1か判定し、1でない場合(ステップD392;N)には、ステップD393に進み、1である場合(ステップD392;Y)には、ステップD395に進む。
ステップD393に進むと、ステップD381でロードしたSU予告回数が2か判定し、2でない場合(ステップD393;N)には、ステップD394に進み、2である場合(ステップD393;Y)には、ステップD396に進む。
ステップD394に進むと、ステップD381でロードしたSU予告回数が3か判定し、3でない場合(ステップD394;N)には、予告演出設定処理1を終了し、3である場合(ステップD394;Y)には、ステップD397に進む。
ステップD395に進むと、カットインキャラ差替え判定処理1(ステップD395)を実行して、その後予告演出設定処理1を終了する。
ステップD396に進むと、カットインキャラ差替え判定処理2(ステップD396)を実行して、その後予告演出設定処理1を終了する。
ステップD397に進むと、カットインキャラ差替え判定処理3(ステップD397)を実行して、その後予告演出設定処理1を終了する。
〔カットインキャラ差替え判定処理1〕
次に、上述の予告演出設定処理1におけるカットインキャラ差替え判定処理1(ステップD395)の詳細について図93により説明する。なお、SU予告回数が1の場合に本処理が実行されるが、SU予告回数が1の場合にはステップアップ予告で登場するキャラが一人目だけであるため、本処理では差替えが全部差替えしかない。
カットインキャラ差替え判定処理1が開始されると、まず、演出振分け結果領域の差替え判定領域から振分け結果をロードして(ステップD401)、ステップD402に進む。
ステップD402に進むと、ステップD401でロードした振分け結果に基づいて差替えが全部差替えであるか判定し、全部差替えならば(ステップD402;Y)、ステップD403に進み、全部差替えでなければ(ステップD402;N)、カットインキャラ差替え判定処理1を終了する。
ステップD403に進むと、カットインSU1用モーション制御テーブルのインデックスをステップD401でロードした振分け結果に基づいて差し替えて(ステップD403)、カットインキャラ差替え判定処理1を終了する。
〔カットインキャラ差替え判定処理2〕
次に、上述の予告演出設定処理1におけるカットインキャラ差替え判定処理2(ステップD396)の詳細について図94により説明する。なお、SU予告回数が2の場合に本処理が実行されるが、SU予告回数が2の場合にはステップアップ予告で登場するキャラが二人目までであるため、本処理では差替えが、一部差替え(一人目だけ差替え)、一部差替え(二人目だけ差替え)、及び全部差替え(一人目と二人目の両方差替え)の3パターンのみである。
カットインキャラ差替え判定処理2が開始されると、まず、演出振分け結果領域の差替え判定領域から振分け結果をロードして(ステップD405)、ステップD406に進む。
ステップD406に進むと、ステップD405でロードした振分け結果に基づいて差替えが差替え無しであるか判定し、差替え無しならば(ステップD406;Y)、カットインキャラ差替え判定処理2を終了し、差替え無しでなければ(ステップD406;N)、ステップD407に進む。
ステップD407に進むと、ステップD405でロードした振分け結果に基づいて差替えが一部差替えであるか判定し、一部差替えならば(ステップD407;Y)、演出振分け結果領域の差替え対象SU判定領域から振分け結果をロードして(ステップD408)、ステップD409に進み、一部差替えでなければ(ステップD407;N)、ステップD413に進む。
ステップD409に進むと、ステップD408でロードした振分け結果に基づいて差替え対象がSU1(一人目のキャラ)か判定し、SU1ならば(ステップD409;Y)、カットインSU1用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD411)、カットインキャラ差替え判定処理2を終了し、SU1でなければ(ステップD409;N)、ステップD410に進む。
ステップD410に進むと、ステップD408でロードした振分け結果に基づいて差替え対象がSU2(二人目のキャラ)か判定し、SU2ならば(ステップD410;Y)、カットインSU2用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD412)、カットインキャラ差替え判定処理2を終了し、SU2でなければ(ステップD410;N)、ステップD412を実行しないでカットインキャラ差替え判定処理2を終了する。
ステップD413に進むと、ステップD405でロードした振分け結果に基づいて差替えが全部差替えであるか判定し、全部差替えならば(ステップD413;Y)、ステップD414に進み、全部差替えでなければ(ステップD413;N)、カットインキャラ差替え判定処理2を終了する。
ステップD414に進むと、カットインSU1用モーション制御テーブルのインデックスをステップD405でロードした振分け結果に基づいて差し替え(ステップD414)、カットインSU2用モーション制御テーブルのインデックスを同様に差し替えて(ステップD415)、カットインキャラ差替え判定処理2を終了する。
〔カットインキャラ差替え判定処理3〕
次に、上述の予告演出設定処理1におけるカットインキャラ差替え判定処理3(ステップD397)の詳細について図95及び図96により説明する。なお、SU予告回数が3の場合に本処理が実行されるが、SU予告回数が3の場合にはステップアップ予告で登場するキャラが三人目まであるため、後述する処理内容に示すような多様な差替えパターンがあり、本例では、全部差替えについても通常の全部差替えと特殊な全部差替え(後述するストーリー用、及びプレミアム用)とがある。
カットインキャラ差替え判定処理3が開始されると、まず、演出振分け結果領域の差替え判定領域から振分け結果をロードして(ステップD421)、ステップD422に進む。
ステップD422に進むと、ステップD421でロードした振分け結果に基づいて差替えが差替え無しであるか判定し、差替え無しならば(ステップD422;Y)、カットインキャラ差替え判定処理3を終了し、差替え無しでなければ(ステップD422;N)、ステップD423に進む。
ステップD423に進むと、ステップD421でロードした振分け結果に基づいて差替えが一部差替えであるか判定し、一部差替えならば(ステップD423;Y)、演出振分け結果領域の差替え対象SU判定領域から振分け結果をロードして(ステップD424)、ステップD425に進み、一部差替えでなければ(ステップD423;N)、ステップD430に進む。
ステップD425に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU1(一人目のキャラ)か判定し、SU1ならば(ステップD425;Y)、カットインSU1用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD433)、カットインキャラ差替え判定処理3を終了し、SU1でなければ(ステップD425;N)、ステップD426に進む。
ステップD426に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU2(二人目のキャラ)か判定し、SU2ならば(ステップD426;Y)、カットインSU2用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD434)、カットインキャラ差替え判定処理3を終了し、SU2でなければ(ステップD426;N)、ステップD427に進む。
ステップD427に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU3(三人目のキャラ)か判定し、SU3ならば(ステップD427;Y)、カットインSU3用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD435)、カットインキャラ差替え判定処理3を終了し、SU3でなければ(ステップD427;N)、ステップD428に進む。
ステップD428に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU1とSU2(一人目と二人目のキャラ)か判定し、SU1とSU2ならば(ステップD428;Y)、カットインSU1用とカットインSU2用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD436,D437)、カットインキャラ差替え判定処理3を終了し、SU1とSU2でなければ(ステップD428;N)、ステップD429に進む。
ステップD429に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU2とSU3(二人目と三人目のキャラ)か判定し、SU2とSU3ならば(ステップD429;Y)、カットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD438,D439)、カットインキャラ差替え判定処理3を終了し、SU2とSU3でなければ(ステップD429;N)、カットインキャラ差替え判定処理3を終了する。
ステップD430に進むと、ステップD421でロードした振分け結果に基づいて差替え対象が通常の全部差替えか判定し、通常の全部差替えならば(ステップD430;Y)、カットインSU1用とカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD440〜D442)、カットインキャラ差替え判定処理3を終了し、通常の全部差替えでなければ(ステップD430;N)、ステップD431に進む。
ステップD431に進むと、ステップD421でロードした振分け結果に基づいて差替え対象がストーリー用か判定し、ストーリー用ならば(ステップD431;Y)、カットインSU1用とカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD443〜D445)、カットインキャラ差替え判定処理3を終了し、ストーリー用でなければ(ステップD431;N)、ステップD432に進む。
ステップD432に進むと、ステップD421でロードした振分け結果に基づいて差替え対象がプレミアム用か判定し、プレミアム用ならば(ステップD432;Y)、カットインSU1用とカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えて(ステップD446〜D448)、カットインキャラ差替え判定処理3を終了し、プレミアム用でなければ(ステップD432;N)、カットインキャラ差替え判定処理3を終了する。
〔PB予告用シナリオデータ設定処理〕
次に、上述の変動演出設定処理におけるPB予告用シナリオデータ設定処理(ステップD288)の詳細について図97により説明する。
PB予告用シナリオデータ設定処理が開始されると、まず、演出振分け結果領域のセリフSU領域から振分け結果をロードして(ステップD451)、ステップD452に進む。
ステップD452に進むと、ステップD451でロードした振分け結果に基づいてセリフSUがSU2系(SU2系は出現キャラが一人)であるか判定し、SU2系ならば(ステップD452;Y)、ステップD453に進み、SU2系でなければ(ステップD452;N)、すなわち、出現キャラが二人のSU3系であるならば、ステップD456に進む。
ステップD453に進むと、演出振分け結果領域のセリフSU2パターン領域から振分け結果をロードして(ステップD453)、セリフSU2シナリオアドレステーブル(セリフSU2シナリオテーブルのリストテーブル)を設定する(ステップD454)。
次いで、ステップD453でロードした振分け結果に基づいて、ステップD454で設定したテーブルから、振分け結果のセリフSU2パターンに対応するシナリオテーブルのアドレスを取得し、準備して(ステップD455)、ステップD459に進む。
ステップD456に進むと、演出振分け結果領域のセリフSU3パターン領域から振分け結果をロードして(ステップD456)、セリフSU3シナリオアドレステーブル(セリフSU3シナリオテーブルのリストテーブル)を設定する(ステップD457)。
次いで、ステップD456でロードした振分け結果に基づいて、ステップD457で設定したテーブルから、振分け結果のセリフSU3パターンに対応するシナリオテーブルのアドレスを取得し、準備して(ステップD458)、ステップD459に進む。
ステップD459に進むと、シナリオレイヤー番号5を準備して(ステップD459)、直前のステップD459と、直前のステップD455又はD458で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD460)を実行して、その後PB予告用シナリオデータ設定処理を終了する。
以上説明したPB予告用シナリオデータ設定処理によれば、PB(プッシュボタン)の操作によって特別なキャラクタが登場したり、PBを操作した後のキャラクタやキャラクタのセリフが変化したりするといったPB予告演出が可能となる。
〔サブ間送信開始処理〕
次に、前述のメイン処理におけるサブ間送信開始処理(ステップD24)の詳細について図98により説明する。なお、サブ間送信とは、サブ間通信における送信のことである。サブ間通信とは、遊技場の異なるパチンコ遊技機のサブ基板(本例では、演出制御装置)の間で行われる通信(本例では、無線通信)である。
サブ間送信開始処理が開始されると、まずステップD461で、サブ間送信要求があるか(すなわち、前述したステップD190、或いは後述するステップD480等でセットされるサブ間送信要求フラグがセットされているか)判定し、サブ間送信要求があれば(ステップD461;Y)、すなわちサブ間送信要求フラグがセットされていれば、ステップD462に進み、サブ間送信要求がなければ(ステップD461;N)、すなわちサブ間送信要求フラグがセットされていなければ、サブ間送信開始処理を終了する。
ステップD462に進むと、サブ間送信開始待ちタイマの値が0より大きいか判定し、0より大きい場合(ステップD462;Y)には、ステップD466に進み、0以下の場合(ステップD462;N)には、ステップD463に進む。
ステップD463に進むと、サブ間送信要求フラグをクリアする(セットされていない状態とする)処理を行い(ステップD463)、サブ間送信許可フラグをセットして(ステップD464)、サブ間送信割込みを許可して(ステップD465)、サブ間送信開始処理を終了する。なお、サブ間送信割込みは、サブ間通信で送信するデータが発生すればこのステップD465で許可され、送信するデータが無くなれば図示省略したルーチン(サブ間送信割込み処理)で禁止される。
ステップD466に進むと、サブ間送信開始待ちタイマを更新する(すなわち、タイマの値を一定値減らす)処理を行って(ステップD466)、サブ間送信開始処理を終了する。サブ間送信開始待ちタイマは、後述するステップD479で初期値を設定され、後述するステップD491でクリアされる(値が0とされる)タイマである。
〔サブ間受信タスク処理〕
次に、前述のメイン処理におけるサブ間受信タスク処理(ステップD25)の詳細について図99により説明する。
サブ間受信タスク処理が開始されると、まずステップD471で、サブ間受信タスク要求があるか(すなわち、サブ間通信の受信データ(サブ間コマンドの受信データ)があって、図示省略したサブ間受信割込み処理でセットされるサブ間受信タスク要求フラグがセットされているか)判定し、サブ間受信タスク要求があれば(ステップD471;Y)、すなわちサブ間受信タスク要求フラグがセットされている場合には、ステップD472に進み、サブ間受信タスク要求がなければ(ステップD471;N)、すなわちサブ間受信タスク要求フラグがセットされていない場合には、サブ間受信タスク処理を終了する。
ステップD472に進むと、受信したサブ間コマンドのSB_MODEのデータ(図示省略したサブ間受信割込み処理でサブ間通信データバッファのsb_mode領域からSB_MODE領域にコピーした値)をSB_MODE領域からロードして(ステップD472)、ステップD473に進む。
ステップD473に進むと、ステップD472でロードしたSB_MODEのデータが端末ID報知を示すものか判定し、端末ID報知を示すものでない場合(ステップD473;N)には、ステップD474に進み、端末ID報知を示すものである場合(ステップD473;Y)には、ステップD482に進む。
ステップD482に進むと、受信した端末ID(図示省略したサブ間受信割込み処理でサブ間通信データバッファの送信元ID領域からサブ間コマンド送信元ID領域にコピーした値)をサブ間コマンド送信元ID領域からロードして(ステップD482)、ステップD482でロードした端末IDに対応する端末情報領域の端末有無情報を「あり」に設定して(ステップD483)、ステップD482でロードした端末IDに対応する端末情報領域の端末有効期間タイマに、初期値を設定する(ステップD484)。なお、端末有効期間タイマを設けることで、受信した端末IDの遊技機が「ある」と認識することに制限時間を設けている。つまり、サブ間通信を行う遊技機間で定期的に互いの存在を確認する必要があり、この端末有効期間タイマに基づく図示省略した処理(例えば、端末有効期間タイマがタイムアップするまでの間に同じ端末ID報知がまた受信されなければ、当該端末IDに対応する端末有無情報を「なし」に更新する処理)によって、この確認を定期的に行っている。こうしておくことで、次のような利点がある。すなわち、ある遊技機が電源を落としたり、無線モジュールが突然故障したりした場合など、何らかの理由により一度は互いに通信を確立した遊技機間の通信が成立しなくなった場合、その相手が存在している前提で通信をし続けることは無駄であるし、それによりサブ間演出の効果が低下してしまう虞もある。例えば、サブ間演出として、島内の左端の遊技機から順次隣の遊技機にサブ間通信で指令を送り、島内の左端の遊技機から順次特定の登場人物等(キャラクタ)の画像を各遊技機の表示装置41に右方に流れるように表示させるといった連続演出(連携演出の一種)を行う場合、その通信が成立しなくなった遊技機のところで、この連続演出が途切れて中断してしまう虞がある。しかし、上記確認を定期的に行って端末有無情報を更新している構成であれば、途中で存在が「なし」となった遊技機にはサブ間演出の要求をしないようにできるので、例えば電源を落としてしまった台を飛ばして上記連動演出を行うなど、効率良いサブ間演出を確実に行えるようになる。
但し、サブ間演出は遊技の結果に影響を与えないものなので、上述したような弊害(例えば、存在のなくなった相手に演出要求をした結果、演出が行われなくなってしまう弊害)があっても問題ないとする思想も成立する。そのような思想に従った仕様の場合には前記端末有効期間タイマは不要である。
次いで、ステップD482でロードした端末IDに対応する端末情報領域のゲーム状態に、受信したゲーム状態のデータ(図示省略したサブ間受信割込み処理でサブ間通信データバッファのゲーム状態領域からサブ間コマンドゲーム状態領域にコピーした値)を格納して(ステップD485)、ステップD481に進む。
ステップD474に進むと、ステップD472でロードしたSB_MODEのデータがack応答を示すものか判定し、ack応答を示すものでない場合(ステップD474;N)には、ステップD476に進み、ack応答を示すものである場合(ステップD474;Y)には、ack受信フラグをセットして(ステップD486)、ステップD481に進む。
ステップD476に進むと、ステップD472でロードしたSB_MODEのデータが演出系コマンドか判定し、演出系コマンドでない場合(ステップD476;N)には、ステップD481に進み、演出系コマンドである場合(ステップD476;Y)には、ステップD477に進む。
ステップD477に進むと、サブ間データ送信中か判定し、サブ間データ送信中ならば(ステップD477;Y)、ステップD481に進み、サブ間データ送信中でなければ(ステップD477;N)、ステップD478に進む。なお、サブ間データ送信とは、サブ間通信におけるデータ送信(例えば、コマンドの送信)である。また、本願では、サブ間通信で送受信されるコマンドをサブ間コマンドと称している。
ステップD478〜D480の処理は、受信したサブ間コマンド(特に演出系コマンド)に応じた演出を行うための処理である。
ステップD478に進むと、受信したサブ間コマンドの内容に対応する各種演出のサブ間コマンド、或いはパラメータ等を設定して(ステップD478)、ステップD478で設定したサブ間コマンドを他の遊技機のサブ基板に送信すべく、サブ間送信開始待ちタイマを設定して(ステップD479)、サブ間送信要求フラグをセットして(ステップD480)、ステップD480aに進む。
なお、演出の内容によっては、サブ間コマンドが発生しない場合もあり得る。このような場合、ステップD478では、サブ間コマンドの設定は行われず、このサブ間コマンドを送信するためのステップD479及びD480の処理も実行されずにステップD480aに進む。
ステップD480aに進むと、ステップD472でロードしたSB_MODEのデータはack返答が必要なコマンドか判定し、ack返答が必要なコマンドでない場合(ステップD480a;N)には、ステップD481に進み、ack返答が必要なコマンドである場合(ステップD480a;Y)には、ステップD488に進む。
ステップD488〜D491は、ack要求に答えてack応答を返すための処理である。
ステップD488に進むと、受信した送信元IDを送信先IDコマンドとして準備して(ステップD488)、ack応答のSB_MODE及びSB_ACTのデータを準備する(ステップD489)。なお、SB_MODEとSB_ACTは、サブ間コマンドを構成するデータである。
次いで、サブ間送信データ編集処理(ステップD490)を実行して、サブ間送信開始待ちタイマをクリアする(タイマの値を0にする)処理を行って(ステップD491)、ステップD481に進む。
ステップD481に進むと、サブ間受信タスク要求フラグをクリアして(ステップD481)、その後サブ間受信タスク処理を終了する。
なお、ステップD477が設けられていることにより、サブ間データの送信中である場合には、サブ間コマンド(演出系コマンド)により要求された動作を行わない構成となっている。これは、サブ間コマンドは主基板からのコマンドと違って必ず対応する必要はないし、送信中ということは、他台に要求をしているか、ackを返している最中ということなので、更に他の台からの要求に応える必要はないという思想からである。また、全ての要求に応えていたら演出に矛盾が出たりする可能性も考えられるが、この構成とすれば、このような矛盾が生じる可能性が無くなるという利点があるからである。但し、この思想は基本的な考え方であり、どんな状態でも行いたい演出があった場合には、送信中でも要求された動作を行う態様も有り得る。
〔サブ間送信データ編集処理〕
次に、前述のサブ間受信タスク処理におけるサブ間送信データ編集処理(ステップD490)、前述の単発系コマンド処理のサブ間送信データ編集処理(ステップD187)の詳細について図100により説明する。
サブ間送信データ編集処理が開始されると、まず、パケット開始コード(STX)のデータ(例えば02H)を、サブ間送信バッファ0に設定する(ステップD501)。ここで、サブ間送信バッファ0は、サブ間通信のための送信バッファ領域(サブ間送信バッファ領域)の一部であり、このサブ間送信バッファ領域のアドレス0の位置の記憶領域がサブ間送信バッファ0である(以下、他のアドレス1,2,3,・・・11についても同様)。
次いで、サブ間データ送信数(SIZE)のデータ(例えば12バイトを示すデータ)を、サブ間送信バッファ1に設定して(ステップD502)、送信元ID(SID)のデータとして自分の端末ID(当該演出制御装置300或いは当該演出制御装置300の無線モジュールに付与された端末ID)やグループID(当該パチンコ遊技機が所属するパチンコ機のグループを特定するID)を、サブ間送信バッファ2に設定して(ステップD503)、送信先ID(DID)のデータ(端末ID及びグループID)を、サブ間送信バッファ3に設定する(ステップD504)。なお、送信元ID(SID)と送信先ID(DID)のデータは、それぞれ、1バイトのうちの上位ビットがグループID、下位ビットが端末IDとなっている。
次いで、サブ間メーカコード(MAKER)のデータを、サブ間送信バッファ4に設定して(ステップD505)、西暦コード(YEAR)のデータを、サブ間送信バッファ5に設定する(ステップD506)。
次いで、サブ間機種コード(TYPE)のデータを、サブ間送信バッファ6に設定して(ステップD507)、サブ間コマンドMODE(SB_MODE)のデータ(例えば、前述のステップD489等で準備されたもの)を、サブ間送信バッファ7に設定する(ステップD508)。
次いで、サブ間コマンドACT(SB_ACT)のデータ(例えば、前述のステップD489等で準備されたもの)を、サブ間送信バッファ8に設定して(ステップD509)、自分のゲーム状態(STS)、すなわち、当該パチンコ遊技機のゲーム状態のデータ(例えば、今大当りの5ラウンド目である、などを示すデータ)を、サブ間送信バッファ9に設定する(ステップD510)。
次いで、サブ間送信バッファ0からサブ間送信バッファ9までの設定データ(すなわち、STXからSTSまでのデータ)のチェックサムを算出する(ステップD511)。チェックサムの算出方法は特に限定されないが、例えば、1バイトサイズで単なる加算を行ってもよい。
次いで、ステップD511で算出したチェックサムの演算結果(SUM)のデータを、サブ間送信バッファ10に設定して(ステップD512)、パケット終了コード(ETX)のデータ(例えば03H)を、サブ間送信バッファ11に設定する(ステップD513)。
次いで、サブ間送信ポインタ(サブ間送信バッファ領域のアドレスを指定するパラメータ)のデータとしてサブ間送信バッファ0のアドレスを設定して(ステップD514)、サブ間送信データ編集処理を終了する。このサブ間送信ポインタは、図示省略したサブ間送信割込み処理(サブ間送信のために、サブ間送信バッファ領域のデータを順次CPUのシリアル送信バッファに書き込むなどの処理を行うルーチン)で使用される。
〔サブ間ack応答タスク処理〕
次に、前述のメイン処理におけるサブ間ack応答タスク処理(ステップD26)の詳細について図101により説明する。
サブ間ack応答タスク処理が開始されると、まずステップD521で、ack待ちタイマの値が0か判定し、0である場合(ステップD521;Y)には、サブ間ack応答タスク処理を終了し、0でない場合(ステップD521;N)には、ack待ちタイマを更新(値を規定値だけ減らす)して(ステップD522)、ステップD523に進む。なお、ack待ちタイマは、前述したステップD188で初期値がセットされる。
ステップD523に進むと、ack応答が受信されたか否か(すなわち、ack受信フラグがセットされているか否か)を判定し、受信された場合(ステップD523;Y)には、ステップD524に進み、受信されていない場合(ステップD523;N)、すなわちack受信フラグがセットされていない場合には、サブ間ack応答タスク処理を終了する。なお、ack受信フラグは、前述のステップD486でセットされる。
ステップD524に進むと、ack受信フラグをクリアして(ステップD524)、ack待ちタイマをクリアする(ステップD525)。
次いで、ack応答を受信したので、このack応答を待っていた演出に対応するための各種パラメータを設定して(ステップD526)、サブ間ack応答タスク処理を終了する。
〔サブ間演出設定処理〕
次に、前述のメイン処理におけるサブ間演出設定処理(ステップD27)の詳細について図102により説明する。
サブ間演出設定処理が開始されると、まずステップD531で、サブ間演出要求ありか否か(すなわち、サブ間演出要求フラグがセットされているか否か)を判定し、サブ間演出要求ありの場合(ステップD531;Y)には、ステップD532に進み、サブ間演出要求なし(サブ間演出要求フラグがクリアされた状態)の場合(ステップD531;N)には、サブ間演出設定処理を終了する。サブ間演出要求フラグは、前述のステップD478でセットされる。
ステップD532に進むと、サブ間演出開始待ちタイマの値が0か判定し、0である場合(ステップD532;Y)には、ステップD533に進み、0でない場合(ステップD532;N)には、サブ間演出開始待ちタイマを更新する(値を規定値だけ減らす)処理を行って(ステップD538)、サブ間演出設定処理を終了する。サブ間演出開始待ちタイマは、前述のステップD189でセットされるタイマである。
ステップD533に進むと、受信したサブ間コマンドのSB_MODE及びSB_ACT(以下、サブ間コマンドとはSB_MODE及びSB_ACTを含むものである)のデータをロードして(ステップD533)、ステップD534に進む。
ステップD534に進むと、このロードしたデータがサブ間連動予告系コマンドであるか判定し、サブ間連動予告系コマンドであれば(ステップD534;Y)、ステップD539に進み、サブ間連動予告系コマンドでなければ(ステップD534;N)、ステップD535に進む。なお、サブ間連動予告系コマンドは、サブ間通信を行っている複数のパチンコ遊技機で予告演出を連動させる連携演出のためのコマンドである。連携演出には、例えば同じキャラクタの画像が島内を横方向に移動するように各遊技機で順次表示されるような演出もあれば、同じ演出を同期して一斉に行う同期演出もある。
ステップD539に進むと、ステップD533でロードしたサブ間コマンドのSB_MODE及びSB_ACTのデータが指定する演出に対応する演出動作テーブルを設定して(ステップD539)、その後ステップD537に進む。なお、このステップD539で演出動作テーブルを設定するとは、サブ間コマンドの上記データが指定する演出を実行するためのシナリオデータを設定することを意味する。
ステップD535に進むと、ステップD533でロードしたサブ間コマンドのデータが客待ちタイミング調整コマンドであるか判定し、客待ちタイミング調整コマンドであれば(ステップD535;Y)、ステップD540に進み、客待ちタイミング調整コマンドでなければ(ステップD535;N)、ステップD536に進む。なお、客待ちタイミング調整コマンドは、サブ間通信を行っている複数のパチンコ遊技機で客待ちデモ表示のタイミングを合わせる演出を行わせるためのコマンドであり、この場合、客待ちデモを最初から同期して実行させるコマンドである。
ステップD536に進むと、ステップD533でロードしたサブ間コマンドのデータが正常値なら、このデータに対応する各種演出のパラメータを設定して(ステップD536)、その後ステップD537に進む。
ステップD540に進むと、客待ちデモ演出中か否か(すなわち、客待ちデモ演出を行っている最中か否か)を判定し、客待ちデモ演出中でなければ(ステップD540;N)、客待ちタイミング調整を行うべきでないのでステップD537に進み、客待ちデモ演出中であれば(ステップD540;Y)、客待ちタイミング調整を行うべくステップD541に進む。
ステップD541に進むと、サブ間コマンドを受信した当該パチンコ遊技機(すなわち、自機)の客待ちデモ用のシナリオテーブルを再設定するようにして、客待ちデモ演出を最初から行うように設定して(ステップD541)、P機状態を客待ちAとして(ステップD542)、ステップD537に進む。
上記ステップD541によれば、客待ちデモ演出が図柄表示(客待ちA)の最初から開始されることになる。これにより、ステップD535で判定された客待ちタイミング調整コマンドを送信した送信元のパチンコ遊技機と、この客待ちタイミング調整コマンドを受信した自機及び他のパチンコ遊技機とで、客待ちデモ演出が図柄表示(客待ちA)の最初から同期して開始される。なお、こうして開始された客待ちデモ演出は、再設定された客待ちデモ用のシナリオテーブルによって制御される。
ステップD537に進むと、サブ間演出要求フラグをクリアして(ステップD537)、その後サブ間演出設定処理を終了する。
なお、本例では、このように、予告演出を連動させるものと、客待ちデモ演出のタイミングを合わせる演出の処理を、サブ間演出のための処理の具体例として挙げた。しかし、サブ間演出の内容は、このような態様に限定されず、本例の態様に代えて、或いは本例の態様に加えて、他の内容のサブ間演出を行う構成としてもよい。
また、本例では、煩雑を避けるために、それら他の種類のサブ間演出の設定処理についてはステップD536でまとめて図示しており、その詳細については図示及び説明を省略する。
〔シナリオ設定処理〕
次に、前述のメイン処理におけるシナリオ設定処理(ステップD28)の詳細について図103により説明する。
シナリオ設定処理が開始されると、まず、シナリオ管理領域0(シナリオレイヤー番号0)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD551)、ステップD551の準備に基づいてシナリオ解析処理(ステップD552)を実行する。ここで、「アドレス領域を準備し」とは、後の処理で当該アドレス領域に設定されているデータを読み取るために、当該アドレス領域自体のアドレスを準備することを意味する。
次いで、シナリオ管理領域1(シナリオレイヤー番号1)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD553)、この準備に基づいてシナリオ解析処理(ステップD554)を実行する。
次いで、シナリオ管理領域2(シナリオレイヤー番号2)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD555)、この準備に基づいてシナリオ解析処理(ステップD556)を実行する。
次いで、シナリオ管理領域3(シナリオレイヤー番号3)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD557)、この準備に基づいてシナリオ解析処理(ステップD558)を実行する。
次いで、シナリオ管理領域4(シナリオレイヤー番号4)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD559)、この準備に基づいてシナリオ解析処理(ステップD560)を実行する。
次いで、シナリオ管理領域5(シナリオレイヤー番号5)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD561)、この準備に基づいてシナリオ解析処理(ステップD562)を実行する。
次いで、シナリオ管理領域6(シナリオレイヤー番号6)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD563)、この準備に基づいてシナリオ解析処理(ステップD564)を実行する。
次いで、シナリオ管理領域7(シナリオレイヤー番号7)に対応するシナリオ管理領域のアドレス領域を準備して(ステップD565)、この準備に基づいてシナリオ解析処理(ステップD566)を実行して、シナリオ設定処理を終了する。
なお、本例の場合、シナリオレイヤーは前述したように8個あり、シナリオレイヤー番号は0から7まである。そして、これら8個のシナリオレイヤーのうち、シナリオレイヤー0は基本的に背景用であり、シナリオレイヤー1は左図柄用であり、シナリオレイヤー2は右図柄用であり、シナリオレイヤー3は中図柄用であり、シナリオレイヤー4は予告1用であり、シナリオレイヤー5は予告2用であり、シナリオレイヤー6は保留用であり、シナリオレイヤー7は第4図柄用である。
但し、この態様に限られない。例えば、本例はシナリオレイヤーが8個のフローチャートにしているが、このシナリオレイヤーの数はこれに限られない。特に背景や予告に使用するシナリオレイヤーは機種仕様により増減し、本例はなるべく少数に限定して説明している。また、各シナリオレイヤーの制御対象も本例の態様に限られず、各種割り振りが有り得る。例えば、シナリオレイヤー0は背景用であり、シナリオレイヤー1はカットイン予告用であり、シナリオレイヤー2は左図柄用であり、シナリオレイヤー3は右図柄用であり、シナリオレイヤー4は中図柄用であり、シナリオレイヤー5は保留用であり、シナリオレイヤー6は他の予告用であり、シナリオレイヤー7は第4図柄用であるという態様でもよい。
また、シナリオ管理領域のアドレス領域は、既述したようにシナリオレイヤー毎に設けられており、制御するものがある場合には、対応するシナリオ管理領域X(X=0〜7の何れか)のアドレス領域にシナリオ管理領域のアドレスが保存されており、制御するものがない場合には、対応するシナリオ管理領域Xのアドレス領域の中はNULLに設定されている(前述したステップD243、D247参照)。例えば、客待ちのムービー中には保留の表示を行わないので、背景の領域(シナリオ管理領域0のアドレス領域)にはアドレス(シナリオ管理領域0のアドレス)が設定されているが、保留の領域(シナリオ管理領域6のアドレス領域)にはNULLが設定されている。
〔シナリオ解析処理〕
次に、上述のシナリオ設定処理におけるシナリオ解析処理(ステップD552等)の詳細について図104及び図105により説明する。
シナリオ解析処理が開始されると、まず、brkの値(後述する処理の繰り返しに利用されるデータ)を0に設定して(ステップD571)、準備されているシナリオ管理領域Xのアドレス領域に設定されているデータ(シナリオ管理領域Xのアドレス、或いはNULL)をロードして(ステップD572)、ステップD573に進む。ここで、「準備されているシナリオ管理領域Xのアドレス領域」とは、例えば、本処理が前述のステップD552で実行されている場合には、その直前のステップD551で準備されたアドレス領域(シナリオ管理領域0のアドレス領域)であり、本処理が前述のステップD554で実行されている場合には、その直前のステップD553で準備されたアドレス領域(シナリオ管理領域1のアドレス領域)であり、他のケースも同様に直前のステップで準備されたものである。
ステップD573に進むと、ステップD572でロードしたアドレスのデータがNULLか判定し、NULLならば(ステップD573;Y)、制御不要なのでシナリオ解析処理を終了し、NULLでなければ(ステップD573;N)、ステップD574に進む。
ステップD574に進むと、ステップD572でロードしたアドレスのシナリオ管理領域におけるシナリオ用タイマの値を読み取り、このシナリオ用タイマの値が0より小さいか判定し、0より小さい場合(ステップD574;Y)には、異常なのでシナリオ解析処理を終了し、0以上である場合(ステップD574;N)には、ステップD575に進む。なお、前記シナリオ用タイマの値は、シナリオ制御データが設定される度に前述のステップD244でまず0に設定されるが、0が下限であるので、0より小さい場合は異常と判定する。
ステップD575に進むと、前記シナリオ用タイマの値が0でなければ、このシナリオ用タイマの値を−1更新して(ステップD575)、ステップD576に進む。
ステップD576に進むと、前記シナリオ用タイマの値が0より大きいか判定し、0より大きい場合(ステップD576;Y)には、未だタイムアップしていないのでシナリオ解析処理を終了し、0以下である場合(ステップD576;N)には、ステップD577に進む。
これらステップD574〜D576によれば、ウェイト用のタイマ管理が行われる。すなわち、対象のシナリオ管理領域(ステップD572でロードしたアドレスのシナリオ管理領域)におけるシナリオ用タイマ領域に設定されたシナリオ用タイマの値に対応する時間だけ、対象のシナリオテーブル(対象のシナリオ管理領域におけるシナリオ用データテーブル領域に設定されたアドレスのシナリオテーブル)の制御進行を遅らせる動作が実現される。ここで、「シナリオテーブルの制御進行を遅らせる動作」とは、シナリオテーブルの進行にウェイトを掛ける(シナリオテーブルの次の行に進まずにそこで待つ。その時の演出をし続ける。)ことを意味する。例えば、図135において、18行目(//wait)では、定数ウェイトコードが設定されてウェイト時間値が「3600」であるため、3600フレームに相当する時間(3600×(1/30秒)=120秒)この行にとどまり、当該時間経過後に次の行に進行し、24行目(//wait)では、定数ウェイトコードが設定されてウェイト時間値が「900」であるため、900フレームに相当する時間(900×(1/30秒)=30秒)この行にとどまり、当該時間経過後に次の行に進行するが、これらの動作が「シナリオテーブルの制御進行を遅らせる動作」に相当する。なお、シナリオテーブルにおいて、ウェイト時間値とウェイト時間値の間にあるコード(定数ウェイトコード等(PB待ちコード含む)が設定された行と、次に定数ウェイトコード等が設定された行との間にある行のオペコード)は全て同時期に実行される。そして、ステップD575の更新により前記シナリオ用タイマの値が0以下になると、シナリオ用タイマがタイムアップしたと判断されるため、対象のシナリオテーブルの制御処理を進行させるべく、ステップD576を経てステップD577に進む構成となっている。但し、対象のシナリオテーブルの制御処理(ステップD584以降)は、後述するPB有効時間のためのタイマ管理の処理の後に実行される。
すなわち、ステップD577に進むと、対象のPB用タイマの値(ステップD572でロードしたアドレスのシナリオ管理領域におけるPB用タイマ領域の値)を読み取り、このPB用タイマの値が0より大きいか判定し、0より大きい場合(ステップD577;Y)には、タイムアップしていないのでステップD578に進み、0以下である場合(ステップD577;N)には、タイムアップしているのでステップD583に進む。
ステップD578に進むと、PB操作フラグがセットされているか判定し、PB操作フラグがセットされている場合(ステップD578;Y)には、ステップD579に進み、PB操作フラグがセットされていない場合(ステップD578;N)には、対象のPB用タイマの値を−1更新して(ステップD582)、ステップD583に進む。ここで、PB操作フラグは、前述のメイン処理におけるステップD21で実行される演出ボタン入力処理において、PB(プッシュボタン)の操作が検出されるとセットされるフラグである。
ステップD579に進むと、対象のPB用タイマのこの時点での値(すなわち、PBが操作された時点におけるPB有効時間の残り時間)をPB演出加算時間として保存して(ステップD579)、対象のPB用タイマの値を0に設定する(ステップD580)。
次いで、対象のシナリオ管理領域のPB検知フラグ領域にフラグをセットする(すなわち、PB検知フラグが立てられていることを示すデータを設定する)処理を行って(ステップD581)、ステップD583に進む。これらステップD579〜D581では、PBが操作されたので、PB用タイマの残り時間をPB演出加算時間として記憶し(後述するステップD696のため)、PB用タイマを0にリセットし、PBが操作されたことを示すPB検知フラグをシナリオ制御のためにシナリオ管理領域にセットしている。
ステップD583に進むと、対象のPB用タイマの値が0より大きいか判定し、0より大きい場合(ステップD583;Y)には、PB操作が検出されずタイムアップもしていないのでシナリオ解析処理を終了し、0以下である場合(ステップD573;N)には、PB操作がされたかタイムアップしたのでステップD584に進む。
上記ステップD577〜D583によれば、PB有効時間のためのタイマ管理が行われる。すなわち、対象のシナリオ管理領域(ステップD572でロードしたアドレスのシナリオ管理領域)におけるPB用タイマ領域に0より大きなPB用タイマの値が設定されている場合には、このPB用タイマの値に対応する時間だけ、対象のシナリオテーブル(対象のシナリオ管理領域におけるシナリオ用データテーブル領域に設定されたアドレスのシナリオテーブル)の制御進行を遅らせてPB有効時間を設ける動作が実現される。ここで、「シナリオテーブルの制御進行を遅らせてPB有効時間を設ける動作」とは、対象のPB用タイマの値が0になる(すなわちPB用タイマがタイムアップする)か、或いはPBが操作されるまで、シナリオテーブルの進行にウェイトを掛ける(シナリオテーブルの次の行に進まずにそこで待つ。その時の演出をし続ける。)ことを意味する。例えば、シナリオテーブルのm行目に、定数ウェイトコードが設定されてウェイト時間値が「30」である場合には、30フレームに相当する時間この行にとどまり、この時間経過後に次のm+1行目に進行するが、このm行目による動作は前述したシナリオ用タイマによる「シナリオテーブルの制御進行を遅らせる動作」である。一方、シナリオテーブルのn行目に、PB待ちコードが設定されて有効時間値が「2970」である場合には、後述するステップD702でこの有効時間値「2970」がPB用タイマに設定され、PB押下操作が無ければ最大2970フレームに相当する有効時間この行にとどまり、この有効時間内にPB押下操作があれば即座に次のn+1行目に進行するが、このようにPB用タイマに設定される有効時間(PB有効時間)だけPBの操作を待つ動作が「シナリオテーブルの制御進行を遅らせてPB有効時間を設ける動作」に相当する。そして、PBの操作がないままにステップD582の更新により前記PB用タイマの値が0以下になって前記PB用タイマがタイムアップするか、前記PB用タイマがタイムアップするまでのPB有効時間の間にPBが操作されると、ステップD582又はステップD579〜D581を経てステップD583に進み、この場合はステップD583の判定結果がNo(PB用タイマは0)になってステップD584に進む。
但し、前記PB用タイマ領域に設定されたPB用タイマの値が当初から0の場合には、ステップD577からステップD583に進み、さらにステップD583からステップD584に進んで即座に制御が進行する(この場合のPB有効時間は0(無し)となる)。なお、PB有効時間は予告演出等の場合において設けられるため、それ以外の場合にはPB用タイマ領域の値は0に設定されていてPB有効時間は設けられない。
次にステップD584以降では、対象のシナリオテーブルの制御処理が実行される。以下、これを説明する。
ステップD584に進むと、brkの値として0でない値が設定されるまで、ループ端である当該ステップD584からステップD623までの間の処理を繰り返し実行する。つまり、後方のループ端であるステップD623では、その時点のbrkの値を読み取って、brkの値が0であればステップD584に戻って次のステップD585から処理を繰り返す。
すなわち、ステップD584に進むと、まず、対象のシナリオ管理領域におけるシナリオ用データテーブル領域からシナリオテーブルのアドレスをロードする(ステップD585)。例えば、客待ちデモ時のシナリオレイヤー番号0の場合には、図135に示すシナリオテーブルのアドレスが、このステップD585でロードされる。
次いで、ステップD585でロードしたアドレスによって指定されるシナリオテーブルの特定の行(指定行)のオペコードを取得する(ステップD586)。なお、既述したように、シナリオテーブルは、例えば図135に示すように、オペコードとオペランドのデータ(シナリオデータ)が各行に設定されたものである。例えば図135の場合、例えば指定行が1行目であると、この1行目のオペコードのデータである「モーション1削除コード(M1DEL)」(具体的データとしては、例えば「51h」)がステップD586で取得される。或いは、図135の場合、例えば指定行が11行目であると、11行目のオペコードのデータである「モーション10登録コード(M10SET)」(具体的データとしては、例えば「4Ah」)がステップD586で取得される。
次いで、直前のステップD586で取得したオペコードを上位ビットと下位ビットに分離し、準備する(ステップD587)。例えば、オペコードのデータが前述した「51h」である場合、上位ビットである「5」と下位ビットである「1」とを分離してそれぞれ準備する。なお、オペコードの上位ビットと下位ビットには、それぞれ意味が持たせてある(但し、下位ビットには意味が無い場合がある)。例えば、「モーション1削除コード」である「51h」のうち、上位ビットである「5」はモーション削除を意味し、下位ビットである「1」は対象(この場合、モーション削除の対象)のモーションのレイヤーがモーション1であることを意味している。
次いで、ステップD585でロードしたアドレスによって指定されるシナリオテーブルの特定の行(指定行)のオペランドを取得し、準備して(ステップD588)、ステップD589に進む。例えば図135の場合、指定行が11行目(オペコードは「モーション10登録コード」)であると、この11行目のオペランドのデータである「−1」をステップD588で取得して準備する。
ステップD589に進むと、準備したオペコード上位データ(ステップD587で分離して準備したデータ、以下同様)を判定し、モーション登録を指令するデータ(モーション登録コード)である場合(ステップD589;Y)には、モーション登録処理(ステップD601)を実行した後にステップD621に進み、モーション登録を指令するデータでない場合(ステップD589;N)には、ステップD590に進む。
ステップD590に進むと、準備したオペコード上位データを判定し、モーション削除を指令するデータ(モーション削除コード)である場合(ステップD590;Y)には、モーション削除処理(ステップD602)を実行した後にステップD621に進み、モーション削除を指令するデータでない場合(ステップD590;N)には、ステップD591に進む。
ステップD591に進むと、準備したオペコード上位データを判定し、モーション継続を指令するデータ(モーション継続コード)である場合(ステップD591;Y)には、モーション継続処理(ステップD603)を実行した後にステップD621に進み、モーション継続を指令するデータでない場合(ステップD591;N)には、ステップD592に進む。
ステップD592に進むと、準備したオペコード上位データを判定し、定数ウェイトを指令するデータ(定数ウェイトコード)である場合(ステップD592;Y)には、定数ウェイト処理(ステップD604)を実行した後にステップD621に進み、定数ウェイトを指令するデータでない場合(ステップD592;N)には、ステップD593に進む。
ステップD593に進むと、準備したオペコード上位データを判定し、可変ウェイトを指令するデータ(可変ウェイトコード)である場合(ステップD593;Y)には、可変ウェイト処理(ステップD605)を実行した後にステップD621に進み、可変ウェイトを指令するデータでない場合(ステップD593;N)には、ステップD594に進む。
ステップD594に進むと、準備したオペコード上位データを判定し、PB待ちを指令するデータ(PB待ちコード)である場合(ステップD594;Y)には、PB待ち処理(ステップD606)を実行した後にステップD621に進み、PB待ちを指令するデータでない場合(ステップD594;N)には、ステップD595に進む。
ステップD595に進むと、準備したオペコード上位データを判定し、PB判定分岐を指令するデータ(PB判定分岐コード)である場合(ステップD595;Y)には、PB判定分岐処理(ステップD607)を実行した後にステップD621に進み、PB判定分岐を指令するデータでない場合(ステップD595;N)には、ステップD596に進む。
ステップD596に進むと、準備したオペコード上位データを判定し、図柄停止を指令するデータ(停止図柄setコード)である場合(ステップD596;Y)には、図柄停止処理(ステップD608)を実行した後にステップD621に進み、図柄停止を指令するデータでない場合(ステップD596;N)には、ステップD597に進む。
ステップD597に進むと、準備したオペコード上位データを判定し、図柄逆算差替を指令するデータ(図柄逆算差替コード)である場合(ステップD597;Y)には、図柄逆算差替処理(ステップD609)を実行した後にステップD621に進み、図柄逆算差替を指令するデータでない場合(ステップD597;N)には、ステップD598に進む。
ステップD598に進むと、準備したオペコード上位データを判定し、変動シナリオ切替を指令するデータ(変動シナリオ切替コード)である場合(ステップD598;Y)には、変動シナリオ切替処理(ステップD610)を実行した後にステップD621に進み、変動シナリオ切替を指令するデータでない場合(ステップD598;N)には、ステップD599に進む。
ステップD599に進むと、準備したオペコード上位データを判定し、繰り返しを指令するデータ(繰返しコード)である場合(ステップD599;Y)には、繰り返し処理(ステップD611)を実行した後にステップD621に進み、繰り返しを指令するデータでない場合(ステップD599;N)には、ステップD600に進む。
ステップD600に進むと、準備したオペコード上位データを判定し、終了を指令するデータ(終了コード)である場合(ステップD600;Y)には、終了処理(ステップD612)を実行した後にステップD621に進み、終了を指令するデータでない場合(ステップD600;N)には、図示省略した他のステップに進む。なお、図示省略した他のステップ(図105において波線で示した箇所にあるステップ)は、上述したステップD589〜D612と同様に、準備したオペコード上位データの内容を判定し、その判定結果が他の種類のデータ(コード)である場合に対応する処理を実行してステップD621に進むというもので、準備したオペコード上位データが何れの種類のデータ(コード)にも該当しない場合にはシナリオ解析処理を終了する構成となっている。
ステップD621に進むと、対象のシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域に、この時点で設定されているデータを読み取り、このデータがNULLか判定し、NULLならば(ステップD621;Y)、brkの値を1に設定して(ステップD622)、ステップD623に進み、NULLでなければ(ステップD621;N)、ステップD622を実行しないでステップD623に進む。
ステップD623に進むと、前述したようにその時点のbrkの値を読み取って、brkの値が0であればステップD584に戻って次のステップD585から処理を繰り返し、brkの値が0でない場合にはシナリオ解析処理を終了してリターンする。
このため、上記ステップD601〜D612等の何れかの処理において、brkの値が0でない値に設定されるか、或いは、対象のシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域にNULLが設定されると、ステップD584とD623をループ端とするループ処理を終了してリターンすることになる。そして、このようにして当該ループ処理を終了するまでは、シナリオ管理領域におけるシナリオ用データテーブル領域のアドレス(シナリオテーブルとその行を指定するアドレス)が適宜変更されて上記ループ処理が繰り返されて一連の演出の制御が実行される。
なお、上記のサブルーチン群(ステップD601〜D612)は一例であり、機種の仕様次第で変わる。
〔モーション登録処理〕
次に、上述のシナリオ解析処理におけるモーション登録処理(ステップD601)の詳細について図106(a)により説明する。
モーション登録処理が開始されると、まず、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを次レコード(テーブルの次の行を指定するアドレス)に更新する(ステップD631)。これは、前述のステップD585が次回実行されるときの指定行を次の行に進めておくための更新処理であり、この更新処理が行われることによって対象のシナリオテーブルの指定行が次の行に切り替えられて前述のループ処理(ステップD584〜D623)が繰り返されることになる。
次いで、ステップD587で分離されたオペコードの下位ビットのデータに対応するモーション管理領域のアドレス領域からモーション管理領域のアドレスをロードし、準備して(ステップD632)、ステップD633に進む。本例の場合、演出制御装置300のCPU311内のRAMには、「モーション管理領域のアドレス領域」と「モーション管理領域」というモーション管理用の記憶領域が設けられる構成となっている。
このうち、モーション管理領域は、図106(b)に示すように、表示制御する(表示画面41a上に表示しているとは限らない)オブジェクトの数(最大数)である表示数(例えば左図柄の場合、次図柄、現図柄、前図柄の3個)を記憶する領域(表示数の領域)と、何フレームまで処理が進んだかを示すフレーム番号を記憶する領域(フレーム番号の領域)と、モーションテーブルの何行目まで処理が進んだかを示すコマンド位置を記憶する領域(コマンド位置の領域)と、複数あるモーション用リストテーブルの中でどのテーブルを使用するかを示すアドレスのデータ(モーションインデックスに対応)を記憶する領域(モーション用リストテーブル領域)と、表示数分の表示情報領域とを含む構造である。
また、同一構造のモーション管理領域がモーションのレイヤー(本例では、モーション0から13まである)に対応してこのモーションのレイヤー分存在し、本例ではモーションのレイヤーが14個あるので、このモーション管理領域も14個(モーション管理領域0〜13)存在する。さらに、このモーション管理領域に対応して、モーション管理領域のアドレス領域も本例では、図134の左側に示すように、14個(モーション0用アドレス〜モーション13用アドレス)ある。そして、上記ステップD632では、このように複数あるモーション管理領域のうちの一つを特定するために、オペコード下位ビットのデータが指定するモーションのレイヤー番号に対応するモーション管理領域(以下「対応モーション管理領域」という)の先頭アドレスを、対応するモーション管理領域のアドレス領域から読み出して準備する。なお、本願では、モーションのレイヤー番号(本例では、0〜13)を、モーション番号と簡略化して表記したり、モーション管理領域X(Xはモーション番号に対応する番号)というように使用したりする場合がある。
なお、モーション管理領域内の表示情報領域は、表示数(オブジェクトの数)分だけ複数あり、図106(c)に示すように、各表示情報領域がそれぞれ、表示種別、エフェクトタイプ、エフェクトパラメータ、表示左上点のX座標、表示左上点のY座標、表示右上点のX座標、表示右上点のY座標、表示左下点のX座標、表示左下点のY座標、画像インデックス、バックグラウンドカラー、フォアグラウンドカラー、IPicture(Iピクチャ)のみの動画時のフレームカウント、及びビヘイビアインデックスの各データを記憶する領域を含んでいる。
ここで、表示種別は、当該オブジェクトの種別(静止画か動画(ムービー)かを示す情報の他、ムービーの種類(Iピクチャか否かなど)を示す情報を含む)である。
エフェクトタイプは、画像に加えるエフェクト(透過性を持たせるなどの加工処理)の種類を示す情報である。
エフェクトパラメータは、前記エフェクトのパラメータ(透過性を持たせる場合の透過度など)である。
X座標及びY座標は、画像の表示位置を特定するデータであり、本例ではポリゴン表示機能(立体を多面体として表示する機能)のために、表示左上点、表示右上点、表示左下点の3点の座標がある。
画像インデックスは、静止画又はムービーを特定する番号である。
IPictureのみの動画時のフレームカウントとは、何フレーム目のデータがIPicture(すなわちIフレーム)かを示すデータである。
ビヘイビアインデックスは、ビヘイビア(図柄差替え)のためのインデックスである。なお、ビヘイビア(図柄差替え)とは、同じ大きさ同じ表示位置でキャラクタ(静止画或いは動画)のみを差し替えるもので、前述のステップD385〜D390で説明したカットインキャラ差替えなどとは異なる。前述のカットインキャラ差替えは、キャラクタを表示する大きさや表示位置も差替えにより変化し得る。
ステップD633に進むと、ステップD632でロードしたモーション管理領域のアドレスがNULLか判定し、NULLならば(ステップD633;Y)、ステップD635に進み、NULLでなければ(ステップD633;N)、モーションデータ初期化処理1(ステップD634)を実行した後にステップD635に進む。
ステップD635に進むと、ステップD587で分離されたオペコードの下位ビットのデータに対応するモーション管理領域の先頭アドレスを設定し、準備して(ステップD635)、前記オペコードの下位ビットのデータに対応するモーション管理領域のアドレス領域にステップD635で準備した先頭アドレスを設定して(ステップD636)、ステップD637に進む。
これらステップD632〜D636では、何れにせよ最終的には、ステップD636において、ステップD587で分離されたオペコードの下位ビットに対応するモーション管理領域の先頭アドレスを対応するモーション管理領域のアドレス領域に設定するのであるが、対応するモーション管理領域のアドレス領域にNULL以外のアドレスのデータが既に設定されていた場合には、動画展開に使っていた展開領域の開放設定等を行うモーションデータ初期化処理1(後述する)が必要になるので、これをステップD634で実行している。
ステップD637に進むと、ステップD588で準備したオペランドのデータが0以上か判定し、0以上ならば(ステップD637;Y)には、ステップD638に進み、0未満(すなわち、マイナスの値)ならば(ステップD637;N)、ステップD641に進む。
ステップD638に進むと、前記オペランドのデータ(ステップD588で準備したオペランドのデータ、以下同様)を、モーションインデックスとして準備して(ステップD638)、オペコード下位に対応する使用中モーションインデックスを記憶する領域(以下「使用中モーションインデックス領域」という)に、ステップD638で準備したデータを設定する(ステップD639)。なお、使用中モーションインデックス領域は、モーション用リストテーブルにおける制御対象の行を指定するモーションインデックス(使用中モーションインデックス)のデータを、モーション番号毎に記憶する領域であり、モーション番号毎に設けられている。このステップD639では、ステップD587で分離されたオペコードの下位ビットで特定されるモーション番号に対応する使用中モーションインデックス領域に、ステップD638で準備したデータを設定する(すなわち保存する)。
次いで、表示数等のデータを初期化するモーションデータ初期化処理2(ステップD640)を実行して、モーション登録処理を終了する。
ステップD641に進むと、オペコード下位に対応するモーションインデックスのデータを、対応するモーションインデックス領域からロードし、準備する(ステップD641)。なお、モーションインデックス領域には、前述のステップD291〜D294で説明した記憶領域(保留用インデックス領域、第4図柄インデックス領域)や、前述のステップD386、D388、D390で説明した記憶領域(SU1カットイン領域、SU2カットイン領域、SU3カットイン領域)がある。このステップD641では、このように複数あるRAM内のモーションインデックス領域のうち、ステップD587で分離されたオペコードの下位ビットと現時点の遊技機の状態(確変中か否かなど)で特定されるモーションインデックス領域からモーションインデックスのデータを取り出して準備する。
次いで、オペコード下位に対応する使用中モーションインデックス領域に、ステップD641で準備したデータを設定して(ステップD642)、表示数等のデータを初期化するモーションデータ初期化処理2(ステップD643)を実行して、モーション登録処理を終了する。
以上説明したステップD637〜D643のうち、ステップD637の判定結果がYes(オペランドが0以上)となってステップD638〜D640を実行するルートと、ステップD637の判定結果がNo(オペランドが0未満)となってステップD641〜D643を実行するルートとは、以下のように異なる。すなわち、前者のルートは、ROMに保存されたシナリオテーブルに設定されたモーションインデックスの値(固定値)を制御に使用するルートであり、後者のルートは、RAM内のモーションインデックス領域に保存されたモーションインデックスの値(固定値でない)を制御に使用するルートである。遊技機の状態(確変中か否かなど)に応じて使用するモーションインデックスを変えたい場合に、前記オペランドの値としてマイナスの値(例えば「−1」)が設定されていて後者のルートが実行される構成となっている。例えば、保留表示(飾り特図始動記憶表示)は現在の特図保留数(特図始動記憶数)に応じた態様で表示されるため、図135のシナリオテーブルの11行目(//表示(保留))では、オペランドの値がマイナスの値となっている。
〔モーションデータ初期化処理1〕
次に、前述のモーション登録処理におけるモーションデータ初期化処理1(ステップD634)、後述するモーション削除処理やモーション継続処理におけるモーションデータ初期化処理1(ステップD674やステップD686)の詳細について図107(a)により説明する。なお、演出制御装置300の制御処理の説明においてモーション制御データとは、モーション管理領域に保存される表示数、フレーム番号等のデータである。
モーションデータ初期化処理1が開始されると、まず、変数iを初期値0から増分1だけ増加させつつ終値(終値=表示数−1)になるまで、ステップD651〜ステップD655を繰り返し実行し、その後ステップD656に進む。すなわち、ステップD651ではモーションデータ初期化処理1開始直後は変数iを0としてステップD652に進む。ステップD655では、変数iが終値未満である場合にはステップD651に戻り、変数iが終値である場合にはステップD656に進む。そしてステップD651に戻ると、変数iの値を1だけ増加させてステップD652に進む。なお、終値の値は、ステップD587で分離されたオペコードの下位ビットに対応するモーション管理領域(以下「対象のモーション管理領域」という)に設定されている表示数のデータから1を減算した値である。すなわち、このモーションデータ初期化処理1では、この表示数分だけステップD651〜D655のループ処理を繰り返し実行し、その後ステップD656に進む。
ステップD652に進むと、対象のモーション管理領域における変数iに対応する表示情報領域のアドレスを設定して(ステップD652)、その後ステップD653に進む。このステップD652では、例えば変数i=0ならば、対象のモーション管理領域において、表示数分だけ複数存在する表示情報領域のうちの最初の表示情報領域のアドレスを設定する。
ステップD653に進むと、直前のステップD652でアドレスが設定された表示情報領域における表示種別のデータを読み取り、この表示種別が動画か否か判定し、表示種別が動画であれば(ステップD653;Y)、その展開領域(圧縮された動画データの展開に使用していた領域)の解放設定を行って(ステップD654)、ステップD655に進み、動画でなければ(ステップD653;N)、ステップD654を実行しないでステップD655に進む。ステップD655に進むと、前述したように、変数iが終値未満である場合にはステップD651に戻り、変数iが終値である場合にはステップD656に進む。
ステップD656に進むと、ステップD656〜D658で対象のモーション管理領域のパラメータを初期化する処理を行い、その後モーションデータ初期化処理1を終了する。すなわち、ステップD656では表示数を0に設定し、ステップD657ではフレーム番号を−1に設定し、ステップD658ではコマンド位置を0に設定する。
〔モーションデータ初期化処理2〕
次に、前述のモーション登録処理におけるモーションデータ初期化処理2(ステップD640、D643)、後述するモーション継続処理におけるモーション初期化処理(モーションデータ初期化処理2(ステップD689))の詳細について図107(b)により説明する。
モーションデータ初期化処理2が開始されると、まず、ステップD661〜D663で対象のモーション管理領域のパラメータを初期化する処理を行い、その後ステップD664に進む。すなわち、ステップD661では表示数を0に設定し、ステップD662ではフレーム番号を−1に設定し、ステップD663ではコマンド位置を0に設定する。
ステップD664に進むと、対象のモーション管理領域におけるモーション用リストテーブル領域に、使用中モーションインデックス(前記ステップD642で設定したデータ)に対応するアドレス(モーション用リストテーブルとその行を指定するアドレス)を設定して(ステップD664)、その後モーションデータ初期化処理2を終了する。
〔モーション削除処理〕
次に、前述のシナリオ解析処理におけるモーション削除処理(ステップD602)の詳細について図108(a)により説明する。
モーション削除処理が開始されると、まず、前記ステップD631と同様に、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを次レコード(テーブルの次の行を指定するアドレス)に更新して(ステップD671)、前記ステップD632と同様に、対象のモーション管理領域のアドレス領域からモーション管理領域のアドレスをロードし、準備して(ステップD672)、ステップD673に進む。
ステップD673に進むと、ステップD672でロードしたモーション管理領域のアドレスがNULLか判定し、NULLならば(ステップD673;Y)、ステップD675に進み、NULLでなければ(ステップD673;N)、前記モーションデータ初期化処理1(ステップD674)を実行した後にステップD675に進む。
ステップD675に進むと、対象のモーション管理領域のアドレス領域にNULLを設定して(ステップD675)、前記オペコード(ステップD587で分離されたオペコード、以下同様)の下位ビットのデータに対応する使用中モーションインデックスのデータをクリアして(ステップD676)、その後モーション削除処理を終了する。
以上説明したモーション削除処理は、キャラクタ等の制御を終了する時に実行されて、これにより、モーション情報(モーション管理領域のアドレス領域のデータや、使用中モーションインデックス領域のデータ)が削除される。
〔モーション継続処理〕
次に、前述のシナリオ解析処理におけるモーション継続処理(ステップD603)の詳細について図108(b)により説明する。
モーション継続処理が開始されると、まず、前記ステップD631と同様に、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを次レコード(テーブルの次の行を指定するアドレス)に更新して(ステップD681)、前記オペコードの下位ビットに対応する使用中モーションインデックスのデータをロードして(ステップD682)、ステップD683に進む。
ステップD683に進むと、ステップD682でロードした使用中モーションインデックスのデータが、ステップD588で取得したオペランドと一致するか判定し、一致する場合(ステップD683;Y)には、モーション継続処理を終了し、一致しない場合(ステップD683;N)には、ステップD684に進む。ここでは、現在制御中のモーションと、シナリオテーブルで指定されたモーションとが同一か判定し、同一であれば現在制御中のモーションをそのまま継続すべきであるので何も処理することなくモーション継続処理を終了し、同一でなければ新たなモーション登録を行うべくステップD684以降を実行する構成となっている。
そして、ステップD684以降では、前述したモーション登録処理(シナリオテーブルの値を使用するルート)と同様の処理を行っている。
すなわち、ステップD684に進むと、前記ステップD632と同様に、対象のモーション管理領域のアドレス領域からモーション管理領域のアドレスをロードし、準備して(ステップD684)、ステップD685に進む。
ステップD685に進むと、ステップD684でロードしたモーション管理領域のアドレスがNULLか判定し、NULLならば(ステップD685;Y)、ステップD687に進み、NULLでなければ(ステップD685;N)、前記モーションデータ初期化処理1(ステップD686)を実行した後にステップD687に進む。
ステップD687に進むと、対象のモーション管理領域の先頭アドレスを設定し、準備して(ステップD687)、対象のモーション管理領域のアドレス領域にステップD687で準備した先頭アドレスを設定する(ステップD688)。
次いで、モーション初期化処理、すなわち前述のモーションデータ初期化処理2(ステップD689)を実行して、前記オペコードの下位ビットに対応する使用中モーションインデックス領域に、前記オペランドのデータを設定して(ステップD690)、その後モーション継続処理を終了する。
以上説明したモーション継続処理では、シナリオテーブルで指定されたモーション情報が現在制御している内容と同じならそのまま継続、違うなら新たに登録する処理が実行される。これにより、例えば、通常変動中の背景はリーチ等で背景変化しなければ複数の変動にまたがってムービーが継続されるが、リーチが発生したりすると頭からの新規再生となる。
〔定数ウェイト処理〕
次に、前述のシナリオ解析処理における定数ウェイト処理(ステップD604)の詳細について図109(a)により説明する。
定数ウェイト処理が開始されると、まず、前記ステップD631と同様の更新処理を実行して(ステップD691)、対象のシナリオ管理領域のシナリオ用タイマ領域に、前記オペランドのデータを設定する(ステップD692)。
次いで、brkの値を1に設定して(ステップD693)、定数ウェイト処理を終了する。
定数ウェイト処理によれば、指定された固定時間だけ待つ場合の時間値等が設定される。例えば、図135に示すシナリオテーブルおける18行目(//wait)の場合、オペコードが定数ウェイトコードであるため本処理が実行され、オペランドのウェイト時間が「3600」であるため、上記ステップD692でシナリオ用タイマ領域の値として3600(120秒=3600×1/30秒)が設定される。そして、上記ステップD693でbrkの値が1になるので、前述したシナリオ解析処理におけるループ処理(ステップD584〜D623)の繰り返しが終了する。
〔可変ウェイト処理〕
次に、前述のシナリオ解析処理における可変ウェイト処理(ステップD605)の詳細について図109(b)により説明する。
可変ウェイト処理が開始されると、まず、前記ステップD631と同様の更新処理を実行して(ステップD695)、前記オペランドのデータにPB演出加算時間(ステップD579で設定された値)を加えた値を、対象のシナリオ管理領域のシナリオ用タイマ領域に設定する(ステップD696)。
次いで、brkの値を1に設定して(ステップD697)、可変ウェイト処理を終了する。
可変ウェイト処理では、遊技者のPB操作により演出時間が変化する場合に可変時間ウェイトするための時間値等を設定する。これにより、PB操作の指示があってから早く操作する程その後行われる演出が長くなり、有効時間ギリギリで操作すると短時間しか演出が行われないという動作が実現される。ここで、PB演出加算時間は、PB操作を遊技者に促す演出が行われてから遊技者が早くPB操作すればする程、大きな値となる(前記ステップD579参照)。そのため、遊技者が早くPB操作すればする程、その後行われる演出が長くなる。
〔PB待ち処理〕
次に、前述のシナリオ解析処理におけるPB待ち処理(ステップD606)の詳細について図110(a)により説明する。
PB待ち処理が開始されると、まず、前記ステップD631と同様の更新処理を実行して(ステップD701)、前記オペランドのデータを、対象のシナリオ管理領域のPB用タイマ領域に設定する(ステップD702)。
次いで、対象のシナリオ管理領域におけるPB検知フラグ領域のフラグをクリアして(ステップD703)、brkの値を1に設定して(ステップD704)、PB待ち処理を終了する。
PB待ち処理では、PB演出(プッシュボタン演出)を開始する時の設定が行われる。なお、上記ステップD703では、PB演出(プッシュボタン演出)を開始するため、PB(プッシュボタン)が操作されたことを示すPB検知フラグの値をオフ(フラグが立っていない状態)に初期設定している。
〔PB判定分岐処理〕
次に、前述のシナリオ解析処理におけるPB判定分岐処理(ステップD607)の詳細について図110(b)により説明する。
PB判定分岐処理が開始されると、まずステップD711で、対象のシナリオ管理領域におけるPB検知フラグ領域のフラグがセットされているか(すなわち、PB検知フラグが立てられているか)判定し、セットされている場合(ステップD711;Y)には、ステップD713に進み、セットされていない場合(ステップD711;N)、すなわちPB検知フラグがオフの場合には、ステップD712に進む。
ステップD712に進むと、前記ステップD631と同様の更新処理を実行して(ステップD712)、PB判定分岐処理を終了する。
ステップD713に進むと、前記ステップD631と同様の更新処理を実行して(ステップD713)、ステップD714に進む。
ステップD714に進むと、ステップD588で準備したオペランドのデータ分だけステップD713のアドレス更新処理を実行完了したか判定し、完了していれば(ステップD714;Y)、PB判定分岐処理を終了し、完了していなければ(ステップD714;N)、ステップD713に戻って処理を繰り返す。
PB判定分岐処理は、前述のPB演出(プッシュボタン演出)においてPBが操作されないまま有効時間を計時するPB用タイマがタイムアップしたか、有効時間内にPBが操作されてタイマが強制的に0になった時に実行される処理である。そして、PBが操作されないままタイムアップした場合には、ステップD711を経てステップD712に進み、シナリオテーブルの指定行が1行分だけ次に進んでリターンする。また、有効時間内にPBが操作された場合には、ステップD711を経てステップD713に進み、オペランドで指定された分だけシナリオテーブルの指定行がジャンプする。
例えば、シナリオテーブルのm行目のオペコードがPB判定分岐コードである場合に、本処理が実行される。当該m行目のオペランド(すなわちテーブル飛び数)が「3」である場合、PBが有効時間内に操作されていてステップD713に進めば、ステップD713が3回実行されるまでステップD714の判定結果はNoとなり、この結果、当該シナリオテーブルにおいて次の指定行はm+3行目に飛ぶことになる。一方、上述したように本処理が実行された場合でも、PBが有効時間内に押されていなければ、ステップD712が1回実行されるだけでリターンする(本処理が終了する)ので、当該シナリオテーブルにおける指定行は次のm+1行目になる。
〔図柄停止処理〕
次に、前述のシナリオ解析処理における図柄停止処理(ステップD608)の詳細について図111により説明する。
図柄停止処理が開始されると、まず、前記ステップD631と同様の更新処理を実行して(ステップD721)、ステップD722に進む。
ステップD722に進むと、前記オペコードの下位ビットのデータが左図柄を指定するものか判定し、左図柄であれば(ステップD722;Y)、ステップD727に進み、左図柄でなければ(ステップD722;N)、ステップD723に進む。
ステップD727に進むと、特図停止図柄領域(左)の値(前述のステップD354で設定された値)を現図柄(左)として設定して(ステップD727)、図柄停止処理を終了する。
ステップD723に進むと、前記オペコードの下位ビットのデータが右図柄を指定するものか判定し、右図柄であれば(ステップD723;Y)、ステップD728に進み、右図柄でなければ(ステップD723;N)、ステップD724に進む。
ステップD728に進むと、特図停止図柄領域(右)の値(前述のステップD354で設定された値)を現図柄(右)として設定して(ステップD728)、図柄停止処理を終了する。
ステップD724に進むと、前記オペコードの下位ビットのデータが中図柄を指定するものか判定し、中図柄であれば(ステップD724;Y)、ステップD729に進み、中図柄でなければ(ステップD724;N)、ステップD725に進む。
ステップD729に進むと、特図停止図柄領域(中)の値(前述のステップD354で設定された値)を現図柄(中)として設定して(ステップD729)、図柄停止処理を終了する。
ステップD725に進むと、前記オペコードの下位ビットのデータが特図1第4図柄(特図1の第4図柄)を指定するものか判定し、特図1第4図柄であれば(ステップD725;Y)、ステップD730に進み、特図1第4図柄でなければ(ステップD725;N)、ステップD726に進む。
ステップD730に進むと、特図停止図柄領域(特図1第4図柄)の値を現図柄(特図1第4図柄)として設定して(ステップD730)、図柄停止処理を終了する。
ステップD726に進むと、前記オペコードの下位ビットのデータが特図2第4図柄(特図2の第4図柄)を指定するものか判定し、特図2第4図柄図柄であれば(ステップD726;Y)、ステップD731に進み、特図2第4図柄図柄でなければ(ステップD726;N)、図柄停止処理を終了する。
ステップD731に進むと、特図停止図柄領域(特図2第4図柄)の値を現図柄(特図2第4図柄)として設定して(ステップD731)、図柄停止処理を終了する。
図柄停止処理は、飾り特図等の図柄の変動表示を停止する時に、その停止図柄を設定する処理である。例えば、図135に示すシナリオテーブルにおける12行目(//停止図柄set)が指定行である場合、オペコードが停止図柄setコード(左図柄)であるため、本処理が実行されて上記ステップD722の判定結果がYesとなり、上記ステップD727が実行されて特図の左図柄の停止図柄が設定される。
〔図柄逆算差替処理〕
次に、前述のシナリオ解析処理における図柄逆算差替処理(ステップD609)の詳細について図112により説明する。
図柄逆算差替処理が開始されると、まず、前記ステップD631と同様の更新処理を実行して(ステップD741)、ステップD742に進む。
ステップD742に進むと、前記オペコードの下位ビットのデータが左図柄を指定するものか判定し、左図柄であれば(ステップD742;Y)、ステップD743に進み、左図柄でなければ(ステップD742;N)、ステップD748に進む。
ステップD743に進むと、前記オペランドのデータを9で割った余り(オペランドmod9)をコマ差異として設定して(ステップD743)、特図停止図柄領域(左)の値からコマ差異(ステップD743で設定した値)を減算した結果を図柄番号として設定して(ステップD744)、ステップD745に進む。
ステップD745に進むと、ステップD744で設定した図柄番号が0未満(マイナスの値)か判定し、0未満である場合(ステップD745;Y)には、ステップD746に進み、0未満でない場合(ステップD745;N)には、ステップD747に進む。
ステップD746に進むと、図柄番号に9を加算した値を新たな図柄番号として設定して(ステップD746)、ステップD747に進む。
ステップD747に進むと、図柄番号の値(ステップD744で設定され、マイナスの場合にはステップD746で調整された値)を現図柄(左)として設定して(ステップD747)、図柄逆算差替処理を終了する。
ステップD748に進むと、前記オペコードの下位ビットのデータが右図柄を指定するものか判定し、右図柄であれば(ステップD748;Y)、ステップD749に進み、右図柄でなければ(ステップD748;N)、ステップD754に進む。
ステップD749に進むと、前記オペランドのデータを9で割った余り(オペランドmod9)をコマ差異として設定して(ステップD749)、特図停止図柄領域(右)の値からコマ差異(ステップD749で設定した値)を減算した結果を図柄番号として設定して(ステップD750)、ステップD751に進む。
ステップD751に進むと、ステップD750で設定した図柄番号が0未満か判定し、0未満である場合(ステップD751;Y)には、ステップD752に進み、0未満でない場合(ステップD751;N)には、ステップD753に進む。
ステップD752に進むと、図柄番号に9を加算した値を新たな図柄番号として設定して(ステップD752)、ステップD753に進む。
ステップD753に進むと、図柄番号の値(ステップD750で設定され、マイナスの場合にはステップD752で調整された値)を現図柄(右)として設定して(ステップD753)、図柄逆算差替処理を終了する。
ステップD754に進むと、前記オペコードの下位ビットのデータが中図柄を指定するものか判定し、中図柄であれば(ステップD754;Y)、ステップD755に進み、中図柄でなければ(ステップD754;N)、図柄逆算差替処理を終了する。
ステップD755に進むと、前記オペランドのデータを9で割った余り(オペランドmod9)をコマ差異として設定して(ステップD755)、特図停止図柄領域(中)の値からコマ差異(ステップD755で設定した値)を減算した結果を図柄番号として設定して(ステップD756)、ステップD757に進む。
ステップD757に進むと、ステップD756で設定した図柄番号が0未満か判定し、0未満である場合(ステップD757;Y)には、ステップD758に進み、0未満でない場合(ステップD757;N)には、ステップD759に進む。
ステップD758に進むと、図柄番号に9を加算した値を新たな図柄番号として設定して(ステップD758)、ステップD759に進む。
ステップD759に進むと、図柄番号の値(ステップD756で設定され、マイナスの場合にはステップD758で修正された値)を現図柄(中)として設定して(ステップD759)、図柄逆算差替処理を終了する。
以上説明した図柄逆算差替処理は、高速変動終了後のスローダウンになる瞬間など、図柄を停止予定の数コマ前の図柄(図柄送り数分だけ前の図柄)に差し替える処理である。
例えば、シナリオテーブルのm行目のオペコードが左図柄逆算差替コードである場合に、本処理が実行されて上記ステップD742の判定結果がYesとなり、上記ステップD743〜D747が実行されて現図柄(左)が設定される。この場合、オペランドは図柄送り数を意味するデータであり、当該m行目のオペランド(すなわち送りコマ数)が「2」である場合で、上記ステップD743では、2÷9という割算の余りである2がコマ差異として設定され、このコマ差異の値を使用して上記ステップD744で図柄番号が設定される。例えば、特図停止図柄領域(左)の値が1ならば、−1(=1−2)が図柄番号として設定され、特図停止図柄領域(左)の値が7ならば、5(=7−2)が図柄番号として設定される。そして、このステップD744で設定された図柄番号がマイナスの値(例えば−1)であると、ステップD746が実行されて図柄番号が一巡した値に変更され(例えば、−1ならば8=−1+9に変更され)、その後ステップD747で図柄番号が現図柄(左)として登録される。
なお、以上の動作は、右図柄の場合(ステップD748〜D753)や中図柄の場合(ステップD754〜D759)も同様である。また、ステップD743等における「9」は各リール(左図柄、中図柄、右図柄)における図柄数を表す。これは、機種によって9ではない場合もあるし、更にリール毎に違う値の場合もある。前述した停止図柄設定処理のステップD335等にある「9」も同様に図柄数を表す。
〔変動シナリオ切替処理〕
次に、前述のシナリオ解析処理における変動シナリオ切替処理(ステップ610)の詳細について図113により説明する。
変動シナリオ切替処理が開始されると、まずステップD761で、前記オペランドのデータが左図柄シナリオ2nd(左図柄の変動表示の2nd(前半)への切替を指令するもの)であるか判定し、左図柄シナリオ2ndである場合(ステップD761;Y)には、ステップD762に進み、左図柄シナリオ2ndでない場合(ステップD761;N)には、ステップD767に進む。
ステップD762に進むと、左図柄なのでシナリオレイヤー番号1を準備して(ステップD762)、図柄変動シナリオテーブル領域から左図柄シナリオ2ndテーブル(左図柄用で2nd(前半)用のシナリオテーブル)のアドレスをロードし、準備する(ステップD763)。なお、図柄変動シナリオテーブル領域には、前述のステップD315で説明したように、各種の図柄変動のシナリオテーブル(1st(序盤)用、2nd(前半)用、3rd(後半)用のシナリオテーブルが、左図柄と右図柄と中図柄についてそれぞれ存在する)のアドレスが保存されており、このステップD763では左図柄用で2nd(前半)用のシナリオテーブルのアドレスが準備される。
次いで、直前のステップD762、D763で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD764)を実行して、準備したシナリオ管理領域のアドレス領域(例えば前記ステップD553等で準備されたシナリオ管理領域のアドレス領域)にシナリオ管理領域1のアドレスを設定して(ステップD765)、変動シナリオ切替処理を終了する。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域1が設定されることになる。
ステップD767に進むと、前記オペランドのデータが右図柄シナリオ2nd(右図柄の変動表示の2ndへの切替を指令するもの)であるか判定し、右図柄シナリオ2ndである場合(ステップD767;Y)には、ステップD768に進み、右図柄シナリオ2ndでない場合(ステップD767;N)には、ステップD772に進む。
ステップD768に進むと、右図柄なのでシナリオレイヤー番号2を準備して(ステップD767)、図柄変動シナリオテーブル領域から右図柄シナリオ2ndテーブル(右図柄用で2nd用のシナリオテーブル)のアドレスをロードし、準備する(ステップD769)。
次いで、直前のステップD768、D769で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD770)を実行して、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域2のアドレスを設定して(ステップD771)、変動シナリオ切替処理を終了する。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域2が設定されることになる。
ステップD772に進むと、前記オペランドのデータが中図柄シナリオ2nd(中図柄の変動表示の2ndへの切替を指令するもの)であるか判定し、中図柄シナリオ2ndである場合(ステップD772;Y)には、ステップD773に進み、中図柄シナリオ2ndでない場合(ステップD772;N)には、ステップD777に進む。
ステップD773に進むと、中図柄なのでシナリオレイヤー番号3を準備して(ステップD773)、図柄変動シナリオテーブル領域から中図柄シナリオ2ndテーブル(中図柄用で2nd用のシナリオテーブル)のアドレスをロードし、準備する(ステップD774)。
次いで、直前のステップD773、D774で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD775)を実行して、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域3のアドレスを設定して(ステップD776)、変動シナリオ切替処理を終了する。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域3が設定されることになる。
ステップD777に進むと、前記オペランドのデータが左図柄シナリオ3rd(左図柄の変動表示の3rd(後半)への切替を指令するもの)であるか判定し、左図柄シナリオ3rdである場合(ステップD777;Y)には、ステップD778に進み、左図柄シナリオ3rdでない場合(ステップD777;N)には、ステップD782に進む。
ステップD778に進むと、左図柄なのでシナリオレイヤー番号1を準備して(ステップD778)、図柄変動シナリオテーブル領域から左図柄シナリオ3rdテーブル(左図柄用で3rd(後半)用のシナリオテーブル)のアドレスをロードし、準備する(ステップD779)。
次いで、直前のステップD778、D779で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD780)を実行して、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域1のアドレスを設定して(ステップD781)、変動シナリオ切替処理を終了する。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域1が設定されることになる。
ステップD782に進むと、前記オペランドのデータが右図柄シナリオ3rd(右図柄の変動表示の3rdへの切替を指令するもの)であるか判定し、右図柄シナリオ3rdである場合(ステップD782;Y)には、ステップD783に進み、右図柄シナリオ3rdでない場合(ステップD782;N)には、ステップD787に進む。
ステップD783に進むと、右図柄なのでシナリオレイヤー番号2を準備して(ステップD783)、図柄変動シナリオテーブル領域から右図柄シナリオ3rdテーブル(右図柄用で3rd用のシナリオテーブル)のアドレスをロードし、準備する(ステップD784)。
次いで、直前のステップD783、D784で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD785)を実行して、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域2のアドレスを設定して(ステップD786)、変動シナリオ切替処理を終了する。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域2が設定されることになる。
ステップD787に進むと、前記オペランドのデータが中図柄シナリオ3rd(中図柄の変動表示の3rdへの切替を指令するもの)であるか判定し、中図柄シナリオ3rdである場合(ステップD787;Y)には、ステップD788に進み、中図柄シナリオ3rdでない場合(ステップD787;N)には、変動シナリオ切替処理を終了する。
ステップD788に進むと、中図柄なのでシナリオレイヤー番号3を準備して(ステップD788)、図柄変動シナリオテーブル領域から中図柄シナリオ3rdテーブル(中図柄用で3rd用のシナリオテーブル)のアドレスをロードし、準備する(ステップD789)。
次いで、直前のステップD788、D789で準備されたデータに基づいて、前述したシナリオデータ設定処理(ステップD790)を実行して、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域3のアドレスを設定して(ステップD791)、変動シナリオ切替処理を終了する。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域3が設定されることになる。
以上説明した変動シナリオ切替処理によれば、前述した図柄変動の区間のシナリオの切り替え、すなわち、1st(序盤)から2nd(前半)へ、或いは2nd(前半)から3rd(後半)へのシナリオの切り替えが行われる。つまり、飾り特図の変動表示演出は、一つの変動が通常「序盤、前半、後半」と3区間に分けられており、本処理によって各区間のシナリオが切り替えられて繋がれてゆく。例えば、シナリオテーブルのm行目のオペコードが変動シナリオ切替コードであり、オペランドが左図柄シナリオ2ndである場合に、本処理が実行されて上記ステップD761の判定結果がYesとなり、上記ステップD762〜D765が実行されて、左図柄用で2nd(前半)用の新たなシナリオテーブルが制御対象のシナリオテーブルとして設定され、このシナリオテーブルを実行する設定が行われることになる。
なお、変動の種類によっては、「序盤、前半、後半」の区切りの時間値は異なる。また、3rd(後半)のない変動もある(リーチなし変動など)。
〔繰り返し処理〕
次に、前述のシナリオ解析処理における繰り返し処理(ステップD611)の詳細について図114(a)により説明する。
繰り返し処理が開始されると、まず、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを前レコード(シナリオテーブルの一つ前の行を指定するアドレス)に戻して(ステップD795)、ステップD796に進む。
ステップD796に進むと、ステップD588で取得されたオペランド分だけステップD795を実行して前記テーブルアドレスを前レコードに戻したか判定し、前記オペランド分戻している場合(ステップD796;Y)には、繰り返し処理を終了し、前記オペランド分戻していない場合(ステップD796;N)には、ステップD795に戻って処理を繰り返す。
以上説明した繰り返し処理は、シナリオテーブルの所定の段に戻って同一シナリオ内の動作を繰り返す場合に使われる。例えば、図135に示すシナリオテーブルにおける最終行の25行目(//繰返し)が指定行である場合、オペコードが繰返しコードであり、オペランド(すなわち、戻り数)が「15」であるため、本処理が実行されて上記ステップD795が15回実行されると上記ステップD796の判定結果がYesとなって本処理が終了し、これにより上記シナリオテーブルの指定行は15行分前の10行目(//BG継続)に戻る。図135に示すシナリオテーブルの10行目は、客待ちデモ演出の図柄表示(客待ちA)を開始する行であり、この客待ちデモ演出の図柄表示(客待ちA)に続いて客待ちデモ演出のムービー表示(客待ちB)が行われるテーブル構成となっている。このため、その後は、客待ちデモ演出としての図柄表示とムービー表示が繰り返されることになり、1ループ分のデータ(図135に示すシナリオテーブルの10行目から最終行までのデータ)を用意すれば済むことになる。
〔終了処理〕
次に、前述のシナリオ解析処理における終了処理(ステップD612)の詳細について図114(b)により説明する。
終了処理が開始されると、準備したシナリオ管理領域のアドレス領域にNULLを設定して(ステップD798)、終了処理を終了する。これにより、対象のシナリオ管理領域の設定が無くなり、シナリオ終了となる。
例えば、シナリオテーブルのm行目のオペコードが終了コードである場合に、本処理が実行されて上記ステップD798で対象のシナリオ管理領域のアドレス領域がNULLとされて、シナリオ終了となる。本処理は、一連のシナリオが全て完了したときに実行される。すなわち、シナリオを全て完了したので、シナリオ管理領域内のアドレスを消して終了とする。
〔モーション制御処理〕
次に、前述のメイン処理におけるモーション制御処理(ステップD30)の詳細について図115により説明する。
モーション制御処理が開始されると、対象のモーション管理領域の番号Xを0から増やしつつステップD801〜D818のループ処理を繰り返し実行し、このループ処理の終了条件(本例ではモーション管理領域が14個あるので、全てのモーション管理領域0〜13に対する制御が終了したという条件)が成立するとモーション制御処理を終了する。すなわち、モーション制御処理の開始時点では、まずステップD801で対象のモーション管理領域の番号を0(X=0)としてステップD802に進んでステップD802以降の処理を実行するが、ステップD817に進むと対象のモーション管理領域の番号を1だけ増やして(すなわち、X=X+1として)ステップD818で上記終了条件(X=14)が成立したか判定し、成立していればモーション制御処理を終了し、成立していなければステップD801に戻ってステップD802に進む構成となっている。
以下、ステップD802以降を、対象のモーション管理領域の番号がX(実際には本例の場合、0〜13のうちの何れか)であるとして説明する。
ステップD802に進むと、本処理で使用する初期化フラグをクリアして(ステップD802)、モーション管理領域Xのアドレス領域からモーション管理領域Xのアドレスをロードして(ステップD803)、その後ステップD804に進む。すなわち、1回に1領域をロードする。
ステップD804に進むと、ステップD803でロードしたアドレスのデータがNULLか判定し、NULLである場合(ステップD804;Y)には、当該モーションX(当該モーション管理領域Xに対応するモーションのレイヤー)については制御不要なのでステップD817に進み、NULLでない場合(ステップD804;N)には、ステップD805に進む。
ステップD805に進むと、ステップD803でロードしたアドレスに基づいてモーション管理領域Xにおけるモーション用リストテーブル領域のデータ(すなわち、今回制御するモーション用リストテーブルとその行を指定するデータ)をロードし、準備して(ステップD805)、ステップD806に進む。
ステップD806に進むと、ステップD805でロードしたデータにより指定されるモーション用リストテーブルの行(以下「指定行」という)における表示フレーム数のデータを読み取り、この表示フレーム数(あるモーションを実行するフレーム数のこと)が0以下である場合(ステップD806;Y)には、異常であるのステップD817に進み、0以下でない場合(ステップD806;N)には、正常であるとしてステップD807に進む。モーション毎に実行する期間は異なるので、モーション用リストテーブル上に各々対応する表示フレーム数が定義されていて、最低1フレームは表示フレーム数が定義されているはずであり、この表示フレーム数のモーション用リストテーブル上の定義値が0以下になっているようなら異常である。
ステップD807に進むと、モーション管理領域Xにおけるフレーム番号の値を読み取り、このフレーム番号の値が0未満か判定し、0未満である場合(ステップD807;Y)には、モーションが新たに登録されたとき(モーション登録時)であるとして初期化フラグをセットして(ステップD808)、ステップD809に進み、0未満でない場合(ステップD807;N)には、モーション登録時でないとしてステップD808を実行しないでステップD809に進む。なお、フレーム番号は、モーション登録時に、前述したモーションデータ初期化処理1,2におけるステップD657、D662で「−1」に設定されているため、モーション登録時ならばステップD808で初期化フラグがセットされる。なお、この初期化フラグは、前述のステップD802でクリアされ、後述のステップD812で判定されるフラグである。
ステップD809に進むと、モーション管理領域Xにおけるフレーム番号の値が最終フレーム数(すなわち、前述の表示フレーム数から1を減算した値)以上に到達したか判定し、最終フレーム数未満ならば(ステップD809;N)、ステップD812に進み、最終フレーム数以上であれば(ステップD809;Y)、ステップD810に進む。
ステップD810に進むと、前述したモーションデータ初期化処理1(ステップD810)を実行して、ステップD808と同様に初期化フラグをセットして(ステップD811)、ステップD812に進む。
ここで、フレーム番号(0から始まる)が最終フレーム数に到達したということは、対象のモーションテーブルの制御が最終フレームまで終了したことになる。そこで、ステップD809の判定結果がYes(フレーム番号が最終フレーム数に到達した)の場合には、モーション登録時と同様にモーションデータ初期化処理1と初期化フラグのセットを実行して、同一のモーションテーブルをまた最初から実行する構成となっている。
ステップD812に進むと、前記初期化フラグがセットされているか判定し、前記初期化フラグがセットされていれば(ステップD812;Y)、対象のモーションテーブルを最初から実行するためにステップD813に進み、前記初期化フラグがセットされていなければ(ステップD812;N)、すなわち、クリアされていれば、ステップD819に進む。
ステップD813に進むと、モーション管理領域Xにおけるフレーム番号、表示数、コマンド位置の値をそれぞれ0に設定して(ステップD813〜D815)、ステップD816に進む。
ステップD819に進むと、モーション管理領域Xにおけるフレーム番号の値を+1更新して(ステップD819)、ステップD816に進む。このステップD819に進むのは、前記初期化フラグがセットされていない場合(すなわち、対象のモーションテーブルを実行途中である場合)であるので、フレーム番号を順次増加させる必要があるためである。
なお、ステップD814で0に設定される表示数の値(制御中のオブジェクトの数を示す値)は、後述するモーションコマンド実行処理の中で(例えば後述するステップD881で)、オブジェクトが追加又は削除される場合に更新(+1又は−1)される。また、ステップD815で0に設定されるコマンド位置の値(モーションテーブルの何行目かを指す値)も、後述するモーションコマンド実行処理の中で(例えば後述するステップD880で)更新される。なお、コマンド位置の値が0であることは、モーションテーブルにおける指定行が1行目であることを示す。また、表示数の値は、制御中のオブジェクトの数であり、表示画面41a上に実際に同時に表示されているオブジェクト(図柄や予告用キャラクタなど)の数ではない。
ステップD816に進むと、対象のモーションテーブルの制御を実行するためのモーションコマンド実行処理(ステップD816)を実行して、モーション管理領域のアドレス領域自体のアドレスを更新して(ステップD817)、ステップD818に進む。すなわち、ステップD817ではモーション管理領域の番号Xの値を1だけ増やす更新を実行する。これにより、対象のモーション管理領域や対象のモーションのレイヤーが次に切り替わる。例えば、このステップD817の実行前にモーション管理領域1(モーションのレイヤーはモーション1)が制御対象であったならば、実行後にはモーション管理領域2(モーションのレイヤーはモーション2)が制御対象となる。
ステップD818に進むと、前述の終了条件(本例の場合、番号X=14になったこと)が成立していればリターンし、成立していなければステップD801に戻ってステップD802から処理を繰り返す。
〔モーションコマンド実行処理〕
次に、前述のモーション制御処理におけるモーションコマンド実行処理(ステップD816)の詳細について図116及び図117により説明する。
モーションコマンド実行処理が開始されると、まず、モーション管理領域X(対象のモーション管理領域)におけるモーション用リストテーブル領域から、モーション用リストテーブル(「モーションリストテーブル」ともいう)のアドレスのデータ(すなわち、今回制御するモーション用リストテーブルとその行を指定するデータ)をロードして(ステップD821)、ステップD822に進む。
ステップD822に進むと、モーション管理領域Xにおけるコマンド位置の値を読み取り、このコマンド位置の値がモーションコマンド数(ステップD821でロードされたアドレスで指定されるモーション用リストテーブルの指定行におけるモーションコマンド数の値)以上であるか判定し、モーションコマンド数以上である場合(ステップD822;Y)には、全てのコマンド(対象のモーションテーブルの全ての行)を実行済みであるのでモーションコマンド実行処理を終了し、モーションコマンド数以上でない場合(ステップD822;N)には、対象のモーションテーブルを次の1フレーム分実行すべくステップD823に進む。例えば、モーション用リストテーブルにおけるm行目が指定行であり、当該m行目のモーションコマンド数が「1830」である場合、ステップD822では、モーション管理領域Xにおけるコマンド位置の値がこの「1830」以上か判定し、「1830」以上でなければステップD823に進むことになる。また、モーション管理領域Xにおけるコマンド位置の値は、当初は前述のモーションデータ初期化処理1,2におけるステップD658、D663等で0に初期化され、後述するステップD843でモーションテーブルの各行(コマンド)が実行される毎に+1更新されるので、この値が上記「1830」以上になっていれば対象のモーションテーブルの全ての行が実行済みであるため、モーションコマンド実行処理を終了する構成となっている。
ステップD823に進むと、対象のモーション用リストテーブルの指定行(ステップD821でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレス(モーションテーブル名)を取得して(ステップD823)、ステップD824に進む。例えば、モーション用リストテーブルにおけるm行目が指定行であり、当該m行目のモーションテーブル名が「Mdat003」である場合、この「Mdat003」をモーションテーブルのアドレスとして取得する(ROM(PROM321)から取り出す)。なお、RAM(CPU311内のRAM)のモーション用リストテーブル領域には、モーション用リストテーブルの一番左列(フレーム数の位置)のアドレス(ROM内のテーブルのアドレスを指す)が格納されており、前述のステップD821では、このアドレスをRAMのモーション用リストテーブル領域からロードしている。そして、ステップD823では、ステップD821でロードした上記アドレスの2レコード先のアドレスが示す「モーションテーブル名(アドレス)」の値をROM(本例ではPROM312)から読み出している。
なお、本例では、モーションテーブルのアドレスとモーションテーブル名が対応しているため、モーションテーブル名を取得すればモーションテーブルのアドレスを取得したことになる。
また、モーションテーブルとは、ブロック化された各表示演出を実行するための制御テーブルであることは既述したとおりであるが、ここで詳細を説明する。本願では、図136に左図柄通常変動開始時のモーションテーブルの一例を示しているが、このようなモーションテーブルがROM(本例ではPROM321)に多数登録されている。図136に示すように、モーションテーブルの各行には、先頭にコマンドのコードが設定され、それに続いてコマンドに対応するパラメータが設定されている。但し、パラメータは無い場合もある。
例えば、図136の1行目には、「追加1コード」というコマンドと「キャラクタNo.(No.2:次図柄)」というパラメータが設定され、同2行目には、「ビヘイビアコード」というコマンドと「表示情報領域No.(No.0)」、「ビヘイビアNo.(No.0)」というパラメータが設定され、同7行目には、「移動1コード」というコマンドと「表示情報領域No.(No.0)」、「X座標(0)」、「Y座標(−493)」、「画像データ幅(296)」、「画像データ高さ(518)」というパラメータが設定され、同10行目には、「終了コード」というコマンドのみが設定されている。ここで、オブジェクトインデックス(表示情報領域No.)は、各オブジェクトを区別するためにオブジェクトに付けられる番号であり、追加コードで登録される順番に自動的に設定される。例えば図136の1行目で追加登録されたキャラクタNo.2のキャラクタ(図柄「2」)はオブジェクトインデックス(表示情報領域No.)が「0」になり、3行目で追加登録されたキャラクタNo.1のキャラクタ(図柄「1」)はオブジェクトインデックス(表示情報領域No.)が「1」になり、5行目で追加登録されたキャラクタNo.9のキャラクタ(図柄「9」)はオブジェクトインデックス(表示情報領域No.)が「2」になり、というように表示するキャラクタ数(オブジェクト数)に基づいてオブジェクトインデックス(表示情報領域No.)の値が増えてゆく。図136におけるオブジェクトインデックス(表示情報領域No.)0〜2はそれぞれ、左図柄用モーション管理領域(図134の右側の最上段参照)の左図柄表示情報領域0(次図柄)、左図柄表示情報領域1(現図柄)、および左図柄表示情報領域2(前図柄)を指している。
そして、このオブジェクトインデックス(表示情報領域No.)の値が小さい程、画面奥に表示されることになる。つまり、表示位置が重なった場合、オブジェクトインデックス(表示情報領域No.)の値が大きいオブジェクトが優先的に画面に表示されることになる。
また、図136の例では3つのキャラクタを登場させているが、同時に使用する他カテゴリ(予告とか)の全てのキャラクタ数合計が128個となるように管理する。つまり、本例のVDP312では同時に128個のキャラクタを表示制御できる。なお、表示画面41a外にもキャラクタを配置できるので表示画面41a内に128個とは限らない。
また、図136の例は、左図柄の通常変動(前半)のモーションテーブルの最初の4フレーム分のデータである。終了コードまでの区切りが1フレーム分のデータとなっており、例えば1行目から10行目までの(a)が最初の1フレーム分のデータである。また、座標データやサイズデータ等の数値は、本例の意味となる値を記載しているだけで、小数点以下の情報を含んだデータでもよい。実際は、16bit符号付固定小数(符号ビット、整数部13ビット、小数部2ビットの2の補数)のデータとなっている。
また、前フレームと同じ状態を継続する場合は、終了コードだけを定義すればよい。
また、本例におけるモーションテーブルのコマンドの種類と意味は、下記のとおりである。
・「追加コード」;オブジェクトを追加するコマンド。追加するオブジェクトの種類(ビットマップ、動画、単色矩形)に応じて、それぞれ追加1コード、追加2コード、追加3コードがある。
・「挿入コード」;オブジェクトを特定のオブジェクトインデックス(表示情報領域No.)として挿入するコマンド。挿入するオブジェクトの種類(同上)によって、挿入1コード、挿入2コード、挿入3コードがある。この挿入コードの実行により、既に登録されているオブジェクトのオブジェクトインデックス(表示情報領域No.)の値はずれる。・「移動コード」;オブジェクトの表示位置及び表示の大きさを指定するコマンド。指定方式(1点指定、3点指定)により、移動1コード、移動2コードがある。
・「エフェクトコード」;画像に透過性等の加工を施すエフェクトを指令するコマンド。エフェクトタイプを指定するエフェクト1コード、エフェクトパラメータ(例えば、透過度の値(%))を指定するエフェクト2コード、エフェクト色を指定するエフェクト3コードがある。
・「削除コード」;オブジェクトの削除を指令するコマンド。
・「変更コード」;オブジェクトのキャラクタ(図柄や登場人物など)を動きの途中で動きを継続しまたまま差し替える変更を指令するコマンド。
・「デコードコード」;動画データのデコード(復号化)を指令するコマンド。
・「入替コード」;オブジェクトの入替(例えば、オブジェクトインデックス(表示情報領域No.)0のキャラクタとオブジェクトインデックス(表示情報領域No.)1のキャラクタを入れ替える制御)を指令するコマンド。
・「ビヘイビアコード」;オブジェクトのキャラクタの差替えを指令するコマンド。
・「終了コード」;1フレーム分のデータの終了を示すコマンド。
なお、モーションテーブルのコマンドは、以上説明したものに限定されず、上記以外のコマンドがさらに含まれた態様でもよいし、上記のコマンドのうちの何れかが削除された態様もあり得る。
ステップD824に進むと、ステップD824とステップD844をループ端とするループ処理を終了条件(コマンド=終了)が成立するまで、繰り返し実行する。すなわち、モーション登録直後等においては、前述したステップD658,D663,D815によって対象のモーション管理領域Xのコマンド位置kは0(モーションテーブルの1行目を指定する値)に設定されているが(k=0)、ステップD824〜D844のループ処理を繰り返す度に、後述するステップD843、D880等でモーション管理領域Xのコマンド位置kの値を1だけ増やし(k=k+1)、ステップD842で上記終了条件(コマンド位置kのコマンドが終了コマンドである)が成立したか判定し、成立していればステップD844を経てモーションコマンド実行処理を終了し、成立していなければステップD844を経てステップD824に戻ってステップD825に進む構成となっている。
以下、ステップD825以降を、対象のモーション管理領域Xのコマンド位置の値がkであるとして説明する。
ステップD825に進むと、対象のモーションテーブル(ステップD823で取得したアドレスのモーションテーブル)におけるコマンド位置kに対応する行(例えば、k=0ならば1行目、k=1ならば2行目、・・・k=NならばN+1行目)のコマンドを取得して(ステップD825)、このコマンドについて順次各コードに該当するか否かのコマンド判定を実行して(ステップD826〜D841)、何れかのコマンド判定結果がYesになると対応する処理(ステップD851〜D866の何れか)を実行して、ステップD844に進む。
具体的には、ステップD826に進むと、追加1コードか判定し、追加1コードであれば(ステップD826;Y)、静止画をオブジェクトとして追加するビットマップ追加処理(ステップD851)を行った後にステップD844に進み、追加1コードでなければ(ステップD826;N)、ステップD827に進む。
ステップD827に進むと、追加2コードか判定し、追加2コードであれば(ステップD827;Y)、動画をオブジェクトとして追加する動画追加処理(ステップD852)を行った後にステップD844に進み、追加2コードでなければ(ステップD827;N)、ステップD828に進む。
ステップD828に進むと、追加3コードか判定し、追加コード3であれば(ステップD828;Y)、キャラROM(画像ROM325)のデータを使用しない単色矩形画像をオブジェクトとして追加する単色矩形追加処理(ステップD853)を行った後にステップD844に進み、追加コード3でなければ(ステップD828;N)、ステップD829に進む。
ステップD829に進むと、挿入1コードか判定し、挿入1コードであれば(ステップD829;Y)、静止画をオブジェクトとして挿入するビットマップ挿入処理(ステップD854)を行った後にステップD844に進み、挿入1コードでなければ(ステップD829;N)、ステップD830に進む。
ステップD830に進むと、挿入2コードか判定し、挿入2コードであれば(ステップD830;Y)、動画をオブジェクトとして挿入する動画挿入処理(ステップD855)を行った後にステップD844に進み、挿入2コードでなければ(ステップD830;N)、ステップD831に進む。
ステップD831に進むと、挿入3コードか判定し、挿入3コードであれば(ステップD831;Y)、前記単色矩形画像をオブジェクトとして挿入する単色矩形挿入処理(ステップD856)を行った後にステップD844に進み、挿入3コードでなければ(ステップD831;N)、ステップD832に進む。
ステップD832に進むと、移動1コードか判定し、移動1コードであれば(ステップD832;Y)、1点指定方式でオブジェクトの表示位置や表示の大きさを設定する1点指定オブジェクト移動処理(ステップD857)を行った後にステップD844に進み、移動1コードでなければ(ステップD832;N)、ステップD833に進む。
ステップD833に進むと、移動2コードか判定し、移動2コードであれば(ステップD833;Y)、3点指定方式でオブジェクトの表示位置や表示の大きさを設定する3点指定オブジェクト移動処理(ステップD858)を行った後にステップD844に進み、移動2コードでなければ(ステップD833;N)、ステップD834に進む。
ステップD834に進むと、エフェクト1コードか判定し、エフェクト1コードであれば(ステップD834;Y)、エフェクトタイプ指定処理(ステップ859)を行った後にステップD844に進み、エフェクト1コードでなければ(ステップD834;N)、ステップD835に進む。
ステップD835に進むと、エフェクト2コードか判定し、エフェクト2コードであれば(ステップD835;Y)、エフェクトパラメータ指定処理(ステップD860)を行った後にステップD844に進み、エフェクト2コードでなければ(ステップD835;N)、ステップD836に進む。
ステップD836に進むと、エフェクト3コードか判定し、エフェクト3コードであれば(ステップD836;Y)、エフェクト色を設定するエフェクト色指定処理(ステップD861)を行った後にステップD844に進み、エフェクト3コードでなければ(ステップD836;N)、ステップD837に進む。
ステップD837に進むと、削除コードか判定し、削除コードであれば(ステップD837;Y)、オブジェクトを削除するオブジェクト削除処理(ステップD862)を行った後にステップD844に進み、削除コードでなければ(ステップD837;N)、ステップD838に進む。
ステップD838に進むと、変更コードか判定し、変更コードであれば(ステップD838;Y)、オブジェクトを変更するオブジェクト変更処理(ステップD863)を行った後にステップD844に進み、変更コードでなければ(ステップD838;N)、ステップD839に進む。
ステップD839に進むと、デコードコードか判定し、デコードコードであれば(ステップD839;Y)、オブジェクト動画デコード処理(ステップD864)を行った後にステップD844に進み、デコードコードでなければ(ステップD839;N)、ステップD840に進む。
ステップD840に進むと、入替コードか判定し、入替コードであれば(ステップD840;Y)、オブジェクトを入れ替えるオブジェクト入替処理(ステップD865)を行った後にステップD844に進み、入替コードでなければ(ステップD840;N)、ステップD841に進む。
ステップD841に進むと、ビヘイビアコードか判定し、ビヘイビアコードであれば(ステップD841;Y)、ビヘイビアインデックス設定処理(ステップD866)を行った後にステップD844に進み、ビヘイビアコードでなければ(ステップD841;N)、ステップD842に進む。
ステップD842に進むと、終了コードか判定し、終了コードである場合(ステップD842;Y)には、ステップD843に進み、終了コードでない場合(ステップD842;N)にも、ステップD843に進む。
ステップD843に進むと、コマンド位置kの値を+1更新して(ステップD843)、ステップD844に進む。
ステップD844に進むと、ステップD842の判定結果がYesならばモーションコマンド実行処理を終了し、NoならばステップD824に戻って更新後のコマンド位置kについてステップD826以降を実行する。
なお、上記ステップD824〜D844のループ処理による1フレーム分の動作の具体例を図136の場合で説明すると次のようになる。
すなわち、まず最初はコマンド位置k=0であり、追加1コードが設定された1行目が指定行であるので、ステップD826でYesになりステップD851のビットマップ追加処理が実行されて、この1行目にあるキャラクタNo.2のキャラクタ(図柄「2」)がオブジェクトインデックス(表示情報領域No.)0として登録される。ここでは、通常変動開始を始めるところなので、まずは、上段の次図柄として基準図柄である図柄「2」の画像データを登録する。最初の追加登録は、前に詰められ、当該画像データは、自動的に表示情報領域0の画像インデックス領域に登録される。
次はk=1になって、ビヘイビアコードが設定された2行目が指定行であり、パラメータとしてオブジェクトインデックス(表示情報領域No.)0、ビヘイビアインデックス(ビヘイビアNo.)0が設定されているので、ステップD841でYesになりステップD866のビヘイビアインデックス設定処理が実行されて、オブジェクトインデックス(表示情報領域No.)0に該当するキャラクタ(すなわち、図柄「2」)に対してビヘイビアインデックス(ビヘイビアNo.)0の設定が行われる。毎回、基準図柄である図柄「2」では意味がないので、図柄データを差し替える必要がある。よって、ここでは、ビヘイビアインデックス(ビヘイビアNo.)で指定されるサブルーチンを実行し、表示図柄領域(現図柄領域)の値に対応する図柄番号のデータを使用するように差し替える。
次はk=2になって、追加1コードが設定された3行目が指定行であるので、ステップD826でYesになりステップD851のビットマップ追加処理が実行されて、この3行目にあるキャラクタNo.1のキャラクタ(図柄「1」)がオブジェクトインデックス(表示情報領域No.)1として登録される。ここでは、中段の現図柄として基準図柄である図柄「1」の画像データを登録する。当該画像データは、自動的に表示情報領域1の画像インデックス領域に登録される。
次はk=3になって、ビヘイビアコードが設定された4行目が指定行であり、パラメータとしてオブジェクトインデックス(表示情報領域No.)1、ビヘイビアインデックス(ビヘイビアNo.)0が設定されているので、ステップD841でYesになりステップD866のビヘイビアインデックス設定処理が実行されて、オブジェクトインデックス(表示情報領域No.)1に該当するキャラクタ(すなわち、図柄「1」)に対してビヘイビアインデックス(ビヘイビアNo.)0の設定が行われる。
次はk=4になって、追加1コードが設定された5行目が指定行であるので、ステップD826でYesになりステップD851のビットマップ追加処理が実行されて、この5行目にあるキャラクタNo.9のキャラクタ(図柄「9」)がオブジェクトインデックス(表示情報領域No.)2として登録される。ここでは、下段の前図柄として基準図柄である図柄「9」の画像データを登録する。当該画像データは、自動的に表示情報領域2の画像インデックス領域に登録される。
次はk=5になって、ビヘイビアコードが設定された6行目が指定行であり、パラメータとしてオブジェクトインデックス(表示情報領域No.)2、ビヘイビアインデックス(ビヘイビアNo.)0が設定されているので、ステップD841でYesになりステップD866のビヘイビアインデックス設定処理が実行されて、オブジェクトインデックス(表示情報領域No.)2に該当するキャラクタ(すなわち、図柄「9」)に対してビヘイビアインデックス(ビヘイビアNo.)0の設定が行われる。
次はk=6になって、移動1コードが設定された7行目が指定行であり、パラメータとしてオブジェクトインデックス(表示情報領域No.)0等が設定されているので、ステップD832でYesになりステップD857の1点指定オブジェクト移動処理が実行されて、この7行目にある座標データや表示の大きさのデータに従ったオブジェクトインデックス(表示情報領域No.)0の画像(すなわち、図柄「2」)の表示設定が行われる。ここでは、移動1コードによって、指定キャラクタ(すなわち、表示情報領域0に該当するキャラクタ)の領域に指定座標、指定サイズデータを書き込む。
次はk=7になって、移動1コードが設定された8行目が指定行であり、パラメータとしてオブジェクトインデックス(表示情報領域No.)1等が設定されているので、ステップD832でYesになりステップD857の1点指定オブジェクト移動処理が実行されて、この8行目にある座標データや表示の大きさのデータに従ったオブジェクトインデックス(表示情報領域No.)1の画像(すなわち、図柄「1」)の表示設定が行われる。
次はk=8になって、移動1コードが設定された9行目が指定行であり、パラメータとしてオブジェクトインデックス(表示情報領域No.)2等が設定されているので、ステップD832でYesになりステップD857の1点指定オブジェクト移動処理が実行されて、この9行目にある座標データや表示の大きさのデータに従ったオブジェクトインデックス(表示情報領域No.)2の画像(すなわち、図柄「9」)の表示設定が行われる。
次はk=9になって、終了コードが設定された10行目が指定行であるので、ステップD842でYesになりステップD844ではループ処理を終了してリターンする。
こうして、図136において(a)で示す最初の1フレーム分が終了する。なお、終了コードまでのデータが、1フレームに描画されるデータの固まりであるため、図136に(b),(c),(d)で示す2フレーム以降も、各フレーム周期(前述の処理周期;例えば1/30秒)毎に同様に実行される。追加コードや削除コードがない限り、前フレームのキャラクタ情報を引き継ぐので、2フレーム以降では、座標、サイズデータのみを指定する。
〔ビットマップ追加処理〕
次に、前述のモーションコマンド実行処理におけるビットマップ追加処理(ステップD851)の詳細について図118により説明する。ビットマップ追加処理は、既述したように、静止画キャラクタを表示オブジェクトとして追加する処理である。
ビットマップ追加処理が開始されると、まず、モーション管理領域Xにおけるモーション用リストテーブル領域から、モーションリストテーブルのアドレス(すなわち、今回制御するモーション用リストテーブルとその行を指定するデータ)をロードして(ステップD871)、ステップD872に進む。
ステップD872に進むと、モーション管理領域Xにおける表示数の値が最大表示要素数以上になっているか判定し、最大表示要素数以上ならば(ステップD872;Y)、オブジェクトの追加ができないのでビットマップ追加処理を終了し、最大表示要素数未満であるならば(ステップD872;N)、ステップD873に進む。ここで、最大表示要素数は、VDP312のハード的限界やVRAM326の容量(動画を展開する領域等)などを考慮し、一つのモーションで扱える表示数(制御するオブジェクトの数)の限界値であり、本例では、18(静止画16+動画2)に設定されている。但し、18は一例にすぎず、これに限定されない。
ステップD873に進むと、表示数に対応する表示情報領域のアドレスを設定する(ステップD873)。例えば、オブジェクトの追加が初めて行われる場合には、表示数は1であるため、モーション管理領域Xにおける表示数1に対応する表示情報領域のアドレスを設定する。具体例を挙げると、例えばモーション管理領域5(左図柄用のモーション管理領域)の表示情報領域は、1番目の次図柄用と、2番目の現図柄用と、3番目の前図柄用の3個ある。そして今、例えばモーション管理領域X=5(左図柄)であり、対象のモーションテーブルが図136に示すものであり、コマンド位置k=0であるとすると、指定行である1行目のコマンドが追加1コードであるため本処理が実行されるが、この場合、モーション管理領域5の3個の表示情報領域のうちで、表示数1に対応する1番目の次図柄用の表示情報領域(表示情報領域0)に前記1行目のパラメータで指定されるオブジェクト(キャラクタNo.2(図柄「2」))のデータを設定することになるため、上記ステップD873では、この1番目の次図柄用の表示情報領域のアドレスが設定される。同様に、k=2(指定行は3行目)であると表示数2に対応する2番目の現図柄用の表示情報領域(表示情報領域1)に3行目のパラメータで指定されるオブジェクト(キャラクタNo.1(図柄「1」))のデータを設定することになるため、上記ステップD873では、この2番目の現図柄用の表示情報領域のアドレスが設定され、k=4(指定行は5行目)であると表示数3に対応する3番目の前図柄用の表示情報領域(表示情報領域2)に5行目のパラメータで指定されるオブジェクト(キャラクタNo.9(図柄「9」))のデータを設定することになるため、上記ステップD873では、この3番目の前図柄用の表示情報領域のアドレスが設定される。
なお、モーション管理領域に設定(保存)される「表示数」は基本的に表示されるオブジェクトのMAX数(すなわち、制御対象として設定されている全オブジェクトの数)を表すが、本処理のような追加処理においてはオブジェクトが増えることになるので「表示数」は+1ずつ変動していく(例えば、後述のステップD881で更新される)が、このような追加処理が行われなくなった時点での表示数が、表示されるオブジェクトのMAX数を示すことになる。
次いで、ステップD873で設定したアドレスで特定される一つの表示情報領域(以下「対象の表示情報領域」という)の各データを0クリアする(ステップD874)。一旦、対象の表示情報領域の値を全て0にした後、必要な領域に初期値を設定するためである。なお、ここで0クリアするのは、表示数に対応する1つの表示情報領域のみである。
次いで、対象の表示情報領域におけるビヘイビアインデックス(ビヘイビアNo.)の値として未定義値(例えば「−1」)をセーブする(ステップD875)。初期値としてビヘイビア無しの状態に設定するためである。なお、本例では、ビヘイビアインデックス(ビヘイビアNo.)の値が0の場合(図136における2,4,6行目のパラメータのようにビヘイビアインデックス(ビヘイビアNo.)0が指定された場合)でも、ビヘイビア(図柄等の差替え)は有りである。
次いで、対象の表示情報領域における表示種別のデータとして静止画情報をセーブする(ステップD876)。すなわち、ここでは、追加する当該オブジェクトが静止画であることを示す情報を設定している。
次いで、対象のモーション用リストテーブルの指定行(ステップD871でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレス(モーションテーブル名)を取得する(ステップD877)。これは、前述のステップD823と同様の処理である。
次いで、コマンド位置kに対応する静止画インデックスを取得する(ステップD878)。ここで、静止画インデックスとは、キャラROM(画像ROM325)に登録されている静止画キャラクタの登録番号であり、静止画ROMメンバリストテーブルの行を指定するパラメータである。そして今、例えばモーション管理領域X=5(左図柄)であり、対象のモーションテーブルが図136に示すものであり、コマンド位置k=0であるとすると、指定行である1行目で指定されるオブジェクトはキャラクタNo.2(図柄「2」)であるため、上記ステップD878では、図柄「2」に対応する行を指定する静止画インデックスの値を取得する。
次いで、ステップD878で取得した静止画インデックスの値を画像インデックスとしてセーブする(ステップD879)。画像インデックスは、表示する対象としての特定のキャラクタ(静止画、動画などの画像)を示す情報であって、後述する演出表示編集処理におけるステップE51等で使用される情報である。
次いで、コマンド位置を次レコードに更新する(ステップD880)。すなわち、コマンド位置の値kを1だけ増加させる更新を行う。次の周期で、モーションコマンド実行処理を実行したときに、モーションテーブルの次の行を指定行として制御を行うためである。
次いで、本処理によりオブジェクトが追加されたため、モーション管理領域Xにおける表示数の値を+1更新して(ステップD881)、その後ビットマップ追加処理を終了する。
なお、静止画ROMメンバリストテーブルの各パラメータの内容は、以下のとおりである。
・画像アドレスオフセット;キャラROM内に当該キャラクタが格納されているアドレスへのオフセット値を示す。
・パレットアドレスオフセット;キャラROM内に当該キャラクタが使用するパレットデータが格納されているアドレスへのオフセット値を示す。違うパレットを使用している箇所は異なるオフセット値となる。
・画像の幅、高さ;当該キャラクタの元画像のサイズを表す。例えば単位はピクセル。キャラクタ毎に様々な値となる。また、通常図柄の中においても例えば図柄に描かれている人物の大きさが多少違ったりして見た目のサイズが異なる可能性があるが、内部制御で扱いやすくするために透明部分でキャラクタの大きさを調整し、同一カテゴリのキャラであれば同一サイズとなるように設定する。
・VRAM上の幅;当該キャラクタをVRAMに展開した際の幅を指す。非可逆圧縮にしたり、カラーパレットのbit数を落としたりするとサイズが小さくなる。
・画像の圧縮タイプ;キャラROMへ格納している各キャラクタの圧縮タイプを示す。この圧縮タイプとしては、例えば以下のタイプ0〜6がある。これら以外のタイプがあってもよい。
0:32bitフルカラー画像圧縮なし
1:8bitフルカラー画像圧縮なし
2:4bitフルカラー画像圧縮なし
3:可逆圧縮32bitフルカラー画像
4:可逆圧縮8bitフルカラー画像
5:可逆圧縮4bitフルカラー画像
6:非可逆圧縮画像
・画像の圧縮後のサイズ;画像データ(キャラクタのデータ)の圧縮後の容量を示す。キャラROM(画像ROM325)からVRAM326へデータ転送する際のパラメータ等として使用される。
なお、以上説明した静止画ROMメンバリストテーブルのカテゴリ設定は一例であり、これ以外のパラメータを設定してもよい。
〔動画追加処理〕
次に、前述のモーションコマンド実行処理における動画追加処理(ステップD852)の詳細について図119により説明する。動画追加処理は、既述したように、動画キャラクタを表示オブジェクトとして追加する処理である。
動画追加処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD891)、ステップD892に進む。
ステップD892に進むと、前記ステップD872と同様に、モーション管理領域Xにおける表示数の値が最大表示要素数以上になっているか判定し、最大表示要素数以上ならば(ステップD892;Y)、動画追加処理を終了し、最大表示要素数未満であるならば(ステップD892;N)、ステップD893に進む。
ステップD893に進むと、前記ステップD873と同様に、表示数に対応する表示情報領域のアドレスを設定して(ステップD893)、前記ステップD874と同様に、ステップD893で設定したアドレスで特定される一つの表示情報領域(対象の表示情報領域)の各データを0クリアする(ステップD894)。
次いで、前記ステップD875と同様に、対象の表示情報領域におけるビヘイビアインデックス(ビヘイビアNo.)の値として未定義値(例えば「−1」)をセーブして(ステップD895)、前記ステップD877と同様に、対象のモーション用リストテーブルの指定行(ステップD891でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する(ステップD896)。
次いで、コマンド位置kに対応する動画インデックスを取得し、準備して(ステップD897)、ステップD898に進む。ここで、動画インデックスとは、キャラROM(画像ROM325)に登録されている動画キャラクタの登録番号であり、動画ROMメンバリストテーブルの行を指定するパラメータである。
ステップD898に進むと、ステップD897で取得した動画インデックスの値に対応する動画ROMメンバリストテーブルの指定行におけるエンコードタイプ(後述する)のデータを読み取り、このデータに基づいて追加しようとする動画のエンコードタイプがIピクチャ動画か判定し、Iピクチャ動画ならば(ステップD898;Y)、ステップD899に進み、Iピクチャ動画でなければ(ステップD898;N)、ステップD904に進む。なお、Iピクチャとは、フレーム間予測を行わないで単独でデコードできる画像のフレームデータを意味し、Iピクチャ動画とはIピクチャのみで構成された動画を意味する。
ステップD899に進むと、対象の表示情報領域におけるIピクチャ用フレームカウント数(Iピクチャのみの動画時のフレームカウント)のデータとして、初期値である「−1」を設定する(ステップD899)。なお、初期値として「−1」を設定すれば、Iピクチャ用フレームカウント数は「0」からスタートすることになる。
次いで、対象の表示情報領域における表示種別のデータとしてIピクチャ動画情報をセーブする(ステップD900)。すなわち、ここでは、追加する当該オブジェクトがIピクチャ動画であることを示す情報を設定している。
次いで、ステップD897で取得した動画インデックスの値を画像インデックスとしてセーブして(ステップD901)、ステップD902に進む。
ステップD904に進むと、VDP312に対して動画をループする指示を出すために、ループ再生フラグをセットする(ステップD904)。なお、ループしない設定も可能である。
次いで、動画データをデコードするRAM(CPU311内のRAM)の記憶領域を確保する動画デコード領域確保処理(ステップD905)を実行して、ステップD906に進む。
ステップD906に進むと、上記動画デコード領域確保処理の結果、領域が正しく割り当てられたか判定し、正しく割り当てられた場合(ステップD906;Y)には、ステップD907に進み、正しく割り当てられなかった場合(ステップD906;N)には、動画追加処理を終了する。なお、容量オーバー等により領域が正しく確保できないときNoとなる。
ステップD907に進むと、対象の表示情報領域における表示種別のデータとして通常動画情報をセーブする(ステップD907)。すなわち、ここでは、追加する当該オブジェクトが通常動画である(すなわち、Iピクチャ動画でない)ことを示す情報を設定している。
次いで、上記動画デコード領域確保処理により割り当てられた領域のインデックスの値を画像インデックスとしてセーブして(ステップD908)、ステップD902に進む。
ステップD902に進むと、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD902)、前記ステップD881と同様に、モーション管理領域Xにおける表示数の値を+1更新して(ステップD903)、動画追加処理を終了する。
なお、動画ROMメンバリストテーブルの各パラメータの内容は、以下のとおりである。
・動画アドレスオフセット;キャラROM内に当該ムービーが格納されているアドレスへのオフセット値を示す。
・動画の幅、高さ;当該ムービーの元画像のサイズを表す。例えば単位はピクセル。静止画の時と同様に、同一カテゴリのムービーのサイズは同じになるように透明部分で調整する。
・動画のフレーム数;何枚の連続絵で構成されたムービーであるかを示す。本例では1秒=30フレームの制御なので、それを意識したムービー作成を行う。制御を1秒60フレームとなるように実行したら、倍速再生されることになる。逆も同様である。
・α値設定;アルファチャンネル情報を含んだムービーか否かを示す情報。0=アルファなし、1=アルファあり、である。アルファありの場合、当該ムービーの透明度を変更できる。ない場合は不透明のみとなる。
・エンコードタイプ;ムービーがどのように構成されているのかを示す。以下のタイプ0〜2がある。
0=Iピクチャのみで構成
1=Iピクチャと1枚参照のPピクチャを含んだ構成(1つ過去のIピクチャ又はPピクチャを参照して、当該Pピクチャを作る)
2=上記1に加え2枚参照のPピクチャを含んだ構成(1つ過去のIまたはPと、2つ過去のI又はPの2枚を参照して、当該Pピクチャを作る)
但し、以上のエンコードタイプに限定されず、例えばBピクチャを含んだ構成でもよい。
なお、以上説明した動画ROMメンバリストテーブルのカテゴリ設定は一例であり、
これ以外のパラメータを設定してもよい。
〔1点指定オブジェクト移動処理〕
次に、前述のモーションコマンド実行処理における1点指定オブジェクト移動処理(ステップD857)の詳細について図120により説明する。
1点指定オブジェクト移動処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD911)、対象のモーション用リストテーブルの指定行(ステップD911でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する(ステップD912)。
次いで、ステップD912で取得されたアドレスで特定される対象のモーションテーブルから、コマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得する(ステップD913)。例えば、図136が対象のモーションテーブルであり、k=6(指定行は7行目)であると、コマンドが移動1コードであるため本処理が実行されるが、この場合、7行目のオブジェクトインデックス(表示情報領域No.)は0であるため、上記ステップD913では、オブジェクトインデックス(表示情報領域No.)として0が取得されることになる。
次いで、ステップD913で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定する(ステップD914)。例えば、図136でk=6(指定行は7行目)の場合、オブジェクトインデックス(表示情報領域No.)0は1行目で追加された図柄「2」(次図柄)であるため、次図柄に対応する1番目の表示情報領域(表示情報領域0)のアドレスが設定される。
次いで、コマンド位置kに対応するX座標データを取得して(ステップD915)、対象の表示情報領域(ステップD914でアドレスが設定された表示情報領域、以下、本処理において同様)における表示左上点のX座標と表示左下点のX座標として、ステップD915で取得したX座標データをセーブする(ステップD916)。
次いで、コマンド位置kに対応するY座標データを取得して(ステップD917)、対象の表示情報領域における表示左上点のY座標と表示右上点のY座標として、ステップD917で取得したY座標データをセーブする(ステップD918)。
次いで、コマンド位置kに対応する幅データと高さデータとを取得して(ステップD919)、ステップD915で取得したX座標データにステップD919で取得した幅データを加算して(ステップD920)、この加算結果を対象の表示情報領域における表示右上点のX座標としてセーブする(ステップD921)。
次いで、ステップD917で取得したY座標データにステップD919で取得した高さデータを加算して(ステップD922)、この加算結果を対象の表示情報領域における表示左下点のY座標としてセーブする(ステップD923)。
次いで、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD924)、1点指定オブジェクト移動処理を終了する。
上記ステップD915〜D923によれば、次のような動作が実現される。例えば、図136でk=6(指定行は7行目)の場合、X座標データは「0」、Y座標データは「−493」(マイナスは表示画面41a上側の表示画面41a外の位置を示す)、画像データ幅は「296」、画像データ高さは「518」である。このため、上記ステップD915では「0」が取得され、上記ステップD917では「−493」が取得され、上記ステップD919では「296」、「518」が取得される。そして、上記ステップD920の加算結果は「296」(=0+296)となり、上記ステップD922の加算結果は「25」(=−493+518)となる。したがって、上記ステップD916では表示左上点と表示左下点のX座標として「0」がセーブされ、上記ステップD918では表示左上点と表示右上点のY座標として「−493」がセーブされ、上記ステップD921では表示右上点のX座標として「296」がセーブされ、上記ステップD923では表示左下点のY座標として「25」がセーブされる。これにより、対象のオブジェクト(この場合、次図柄「2」)の表示位置が、3点の座標(表示左上点、表示左下点、表示右上点)として設定される(図137(a)参照)。なお、本実施形態の場合、表示画面41a上の左上隅の位置が原点(X座標=0、Y座標=0)であるため、対象のオブジェクトに対して設定されるY座標が全てマイナス値である場合には、この対象のオブジェクトは、表示画面41a上側の表示画面41a外に表示位置が設定され、この対象のオブジェクトの画像は表示画面41a上にはまだ見えない。
以上説明したように、1点指定オブジェクト移動処理によれば、1点指定という方式ではあるが、結果として3点を指定している。というのは、オブジェクト(キャラクタ)は4角形の形をしているので、左上の基準点座標とオブジェクトの高さデータおよび幅データとがあれば、上記ステップD920、D922のように右上点、左下点の座標が求められるからである。既述したように、モーション管理領域における表示情報領域には、こうして定まる3点の各座標値を入れる領域があり(図106(c)参照)、上記ステップD916、D918、D921、D923では、各領域への登録を行っている。
なお、前述のモーションコマンド実行処理における3点指定オブジェクト移動処理(ステップD858)については、フローチャートを示しての詳細説明は省略するが、この処理も上述した1点指定オブジェクト移動処理と略同様に行われる。但し、3点指定の場合はモーションテーブル上にそれぞれの座標データがある構造になるため、上述したステップD920、D922のような加算処理は不要であり、モーションテーブルから取得した各座標データを全てそのまま表示情報領域の各領域にセーブするだけの処理内容になる。
〔エフェクトタイプ指定処理〕
次に、前述のモーションコマンド実行処理におけるエフェクトタイプ指定処理(ステップD859)の詳細について図121(a)により説明する。
エフェクトタイプ指定処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD931)、対象のモーション用リストテーブルの指定行(ステップD931でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する(ステップD932)。
次いで、ステップD932で取得されたアドレスで特定される対象のモーションテーブルから、コマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得して(ステップD933)、ステップD933で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定する(ステップD934)。
次いで、コマンド位置kに対応するエフェクトタイプのデータを取得して(ステップD935)、対象の表示情報領域(ステップD934でアドレスが設定された表示情報領域、以下、本処理において同様)におけるエフェクトタイプとして、ステップD935で取得したデータをセーブする(ステップD936)。
次いで、対象の表示情報領域におけるエフェクトパラメータ、フォアグランドカラー、バックグランドカラーのデータをそれぞれクリアして(ステップD937〜D939)、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD940)、エフェクトタイプ指定処理を終了する。
以上説明したエフェクトタイプ指定処理では、例えば複数のオブジェクトを重ね合わせて表示する際のブレンド手法のタイプを設定している。すなわち、例えばエフェクトタイプ(1)は透過性(透明度)を持たせるエフェクトの一種であり、透過性を持たせるエフェクトは、表示位置が同じで重なり合った後方(奥側)の表示レイヤの画像と前方の表示レイヤの画像とを混ぜ合わせる(ブレンドする)加工ということができ、本処理では当該ブレンドのタイプを設定している。
〔エフェクトパラメータ指定処理〕
次に、前述のモーションコマンド実行処理におけるエフェクトパラメータ指定処理(ステップD860)の詳細について図121(b)により説明する。
エフェクトパラメータ指定処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD941)、対象のモーション用リストテーブルの指定行(ステップD941でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する(ステップD942)。
次いで、ステップD942で取得されたアドレスで特定される対象のモーションテーブルから、コマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得して(ステップD943)、ステップD943で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定する(ステップD944)。
次いで、コマンド位置kに対応するエフェクトパラメータのデータを取得して(ステップD945)、対象の表示情報領域(ステップD944でアドレスが設定された表示情報領域、以下、本処理において同様)におけるエフェクトパラメータとして、ステップD945で取得したデータをセーブする(ステップD946)。
ここで、エフェクトパラメータは、ブレンドする際の当該オブジェクトの透明度(濃さ)の割合を示す。エフェクトパラメータの値をPとすると、本例の場合には、透明度のパーセントを「P/255」の分子に変換したデータがテーブル上に定義されている。具体的には、例えば100%が通常表示(透過性無し)の場合、約10%の濃さで表示する場合のパラメータPは25(≒255×10/100)となる。例えばパラメータPの値が7である場合の透明度は、約2.7%(=100×7/255)となり、かなり薄いということになる。ただし、100%表示を行う場合は、エフェクトタイプ指定処理とエフェクトパラメータ指定処理は実行されない。
次いで、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD947)、エフェクトパラメータ指定処理を終了する。
〔オブジェクト削除処理〕
次に、前述のモーションコマンド実行処理におけるオブジェクト削除処理(ステップD862)の詳細について図122(a)により説明する。オブジェクト削除処理は、登場しなくなるオブジェクトを削除する処理である。
オブジェクト削除処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD951)、ステップD952に進む。
ステップD952に進むと、モーション管理領域Xにおける表示数の値が0以下であるか判定し、0以下である場合(ステップD952;Y)には、表示数が1個も無い(すなわち、削除するオブジェクトが無い)のでオブジェクト削除処理を終了し、0以下でない場合(ステップD952;N)には、ステップD953に進む。
ステップD953に進むと、対象のモーション用リストテーブルの指定行(ステップD951でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得して(ステップD953)、ステップD953で取得されたアドレスで特定される対象のモーションテーブルから、コマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得する(ステップD954)。
次いで、ステップD954で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定して(ステップD955)、ステップD956に進む。
ステップD956に進むと、モーション管理領域Xにおける表示種別のデータが通常動画情報であるか判定し、通常動画情報である場合(ステップD956;Y)には、動画デコード領域解放処理(ステップD957)を実行した後にステップD958に進み、通常動画情報でない場合(ステップD956;N)、すなわち、Iピクチャ動画である場合には、ステップD957を実行しないでステップD958に進む。
ステップD958に進むと、取得したオブジェクトインデックス(表示情報領域No.)以降の表示情報領域の情報を前にシフト(移動)する(ステップD958)。すなわち、モーション管理領域Xにおいて、ステップD955で設定されたアドレス以降の表示情報領域のデータを一つ分だけ前の表示情報領域にそれぞれシフトさせる。これにより、ステップD955で設定されたアドレスの表示情報領域のデータは削除され、この削除されたデータに対応するオブジェクトが削除されたことになる。
次いで、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD959)、本処理によりオブジェクトが削除されたため、モーション管理領域Xにおける表示数の値を−1更新して(ステップD960)、オブジェクト削除処理を終了する。
〔オブジェクト変更処理〕
次に、前述のモーションコマンド実行処理におけるオブジェクト変更処理(ステップD863)の詳細について図122(b)により説明する。オブジェクト変更処理は、表示しているキャラクタを差し替える処理である。
オブジェクト変更処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD961)、対象のモーション用リストテーブルの指定行(ステップD961でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得して(ステップD962)、ステップD962で取得されたアドレスで特定される対象のモーションテーブルからコマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得する(ステップD963)。
次いで、ステップD963で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定して(ステップD964)、前記対象のモーションテーブルにおけるコマンド位置kに対応する変更キャラ(変更後のキャラクタ)のインデックス(前述した静止画インデックス又は動画インデックス)を取得して(ステップD965)、ステップD965で取得したインデックスの値を画像インデックスとしてセーブする(ステップD966)。これにより、画像(図柄や登場人物などのキャラクタ)だけが変わるオブジェクト変更が実現される。
次いで、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD967)、オブジェクト変更処理を終了する。
〔オブジェクト動画デコード処理〕
次に、前述のモーションコマンド実行処理におけるオブジェクト動画デコード処理(ステップD864)の詳細について図123により説明する。
オブジェクト動画デコード処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD971)、対象のモーション用リストテーブルの指定行(ステップD971でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する(ステップD972)。
次いで、ステップD972で取得されたアドレスで特定される対象のモーションテーブルから、コマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得して(ステップD973)、ステップD973で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定して(ステップD974)、ステップD975に進む。
ステップD975に進むと、モーション管理領域Xにおける表示種別のデータがIピクチャ動画情報であるか判定し、Iピクチャ動画情報である場合(ステップD975;Y)には、ステップD977に進み、Iピクチャ動画情報でない場合(ステップD975;N)には、ステップD976に進む。
ステップD977に進むと、対象の表示情報領域(ステップD974でアドレスが設定された表示情報領域、以下、本処理において同様)におけるIピクチャ用フレームカウント数(Iピクチャのみの動画時のフレームカウント)の領域のアドレスを設定して(ステップD977)、ステップD977で設定したアドレスに基づいて、対象の表示情報領域におけるIピクチャ用フレームカウント数のデータを+1更新して(ステップD978)、ステップD979に進む。
ステップD979に進むと、ステップD978で更新したIピクチャ用フレームカウント数が、動画フレーム数(この時点の画像インデックスのデータに対応する動画のフレーム数)以上になっているか判定し、動画フレーム数以上である場合(ステップD979;Y)には、ステップD980に進み、動画フレーム数以上でない場合(ステップD979;N)には、ステップD983に進む。
ステップD980に進むと、画像インデックス(この場合、動画インデックス)で指定される動画が最終フレームまで表示されたので、当該動画を最初から再度開始するために対象の表示情報領域におけるIピクチャ用フレームカウント数のデータを0(スタート値)に設定して(ステップD980)、ステップD983に進む。
ステップD976に進むと、モーション管理領域Xにおける表示種別のデータが通常動画情報であるか判定し、通常動画情報である場合(ステップD976;Y)には、ステップD981に進み、通常動画情報でない場合(ステップD976;N)には、異常であるとしてオブジェクト動画デコード処理を終了する。
ステップD981に進むと、この時点で画像インデックスとして登録されているデータ(この場合は動画インデックスのデータ)をロードし、準備して(ステップD981)、ステップD981でロードしたインデックスに対応する動画の1フレーム分をデコード(復号化)する動画デコード処理(ステップD982)を実行して、ステップD983に進む。
ステップD983に進むと、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD983)、オブジェクト動画デコード処理を終了する。
なお、Iピクチャ動画の場合は、各フレームの絵が独立して存在しているので、フレーム数を管理しておけばよい。後でVDP312の内部レジスタに指示をする際にそのカウント(Iピクチャ用フレームカウント数)が重要になる。
〔ビヘイビアインデックス設定処理〕
次に、前述のモーションコマンド実行処理におけるビヘイビアインデックス設定処理(ステップD866)の詳細について図124により説明する。
ビヘイビアインデックス設定処理が開始されると、まず、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードして(ステップD991)、対象のモーション用リストテーブルの指定行(ステップD991でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する(ステップD992)。なお、モーション用リストテーブルの指定行には、ビヘイビアテーブルのアドレスに対応するビヘイビアテーブル名も設定されている(但し、NULLの場合もある)。
次いで、ステップD992で取得されたアドレスで特定される対象のモーションテーブルから、コマンド位置kに対応するオブジェクトインデックス(表示情報領域No.)を取得する(ステップD993)。例えば、図136が対象のモーションテーブルであり、k=1(指定行は2行目)であると、コマンドがビヘイビアコードであるため本処理が実行されるが、この場合、k=1のオブジェクトインデックス(表示情報領域No.)は「0」であるため、上記ステップD993では、オブジェクトインデックス(表示情報領域No.)として0が取得されることになる。
次いで、ステップD993で取得したオブジェクトインデックス(表示情報領域No.)に対応する表示情報領域(モーション管理領域X内の表示情報領域)のアドレスを設定する(ステップD994)。例えば、図136でk=1の場合、オブジェクトインデックス(表示情報領域No.)0はk=0(1行目)で追加された「次図柄」であるため、この「次図柄」に対応する表示情報領域のアドレスが設定される。
次いで、コマンド位置kに対応するビヘイビアインデックス(ビヘイビアNo.)のデータを取得して(ステップD995)、対象の表示情報領域(ステップD994でアドレスが設定された表示情報領域、以下、本処理において同様)におけるビヘイビアインデックス(ビヘイビアNo.)として、ステップD995で取得したデータをセーブする(ステップD996)。例えば、図136でk=1の場合、ビヘイビアインデックス(ビヘイビアNo.)は「0」であるため、これが上記ステップD995で取得されて、上記ステップD996で対象の表示情報領域に設定される。
次いで、前記ステップD880と同様に、コマンド位置を次レコードに更新して(ステップD997)、ビヘイビアインデックス設定処理を終了する。
なお、ビヘイビアテーブルは、ビヘイビア(キャラクタの差替え)の処理アドレスが設定された行からなるテーブル(PROM321に登録されたデータテーブル)であり、この行のうちの特定の行(指定行)を指定するのがビヘイビアインデックス(ビヘイビアNo.)である。したがって、ビヘイビアテーブルとビヘイビアインデックス(ビヘイビアNo.)の値が決まると、ビヘイビアの処理アドレスが決まり、ビヘイビアの内容が特定されることになる。本処理は、そのようなビヘイビアの内容を指定するための制御処理を行っている。例えば、図136においてk=1の2行目は、オブジェクトインデックス(表示情報領域No.)0のオブジェクト(次図柄)に対して、ビヘイビアインデックス(ビヘイビアNo.)0で指定されるビヘイビア(キャラクタの差替え)の実行を指令しているので、これに応じて対象の情報表示領域の設定を行っている。ビヘイビアインデックス(ビヘイビアNo.)0で指定されるビヘイビアとは、例えば、特図の飾り図柄を基本の図柄(基準図柄)から表示すべき所定の図柄に差替えるといった制御である。
〔演出表示編集処理〕
次に、前述のメイン処理における演出表示編集処理(ステップD31)の詳細について図125〜図127により説明する。この演出表示編集処理は、メイン処理で説明したように、VDP312に表示装置41での描画内容を指示するための各種コマンドとそのパラメータの設定を行う処理である。この演出表示編集処理ではコマンドがテーブル状に設定され、こうして設定されたコマンドはメイン処理のステップD34(画面描画を指示)でVDP312に順次送信される。
演出表示編集処理が開始されると、モーション管理領域の数だけステップE1〜E50のループ処理Aを繰り返し実行し、その後演出表示編集処理を終了する。なお、ループ処理A内にはステップE6〜E48のループ処理Bが含まれており、さらにループ処理B内にはステップE39〜E43のループ処理Cが含まれている。
ループ処理Aでは、最初はX=0としてモーション管理領域X(すなわち、最初はモーション管理領域0)についてステップE2から処理を実行し、ステップE49に進むとモーション管理領域のアドレス領域を更新し(すなわち、X=X+1とし)、次のステップE50で全てのモーション管理領域について当該ループ処理Aが終了したか(本例では、X=14になっているか)判定し、ステップE50の判定結果がYesとなった場合(すなわち、ループ処理Aの終了条件が成立した場合)には演出表示編集処理を終了し、NoならばステップE2からループ処理Aを繰り返す。
以下、ステップE2以降の処理を説明する。
ステップE2に進むと、モーション管理領域Xのアドレス領域のデータがNULLか判定し、NULLである場合(ステップE2;Y)には、当該モーション管理領域Xについては制御不要であるためステップE49に進み、NULLでない場合(ステップE2;N)には、ステップE3に進む。なお、このステップE2でNULL(Yes)と判定されてステップE49に進む場合、ループ処理Bとループ処理Cを含む以下の処理は、当該モーション管理領域Xについては当然実行されない。
ステップE3に進むと、今回制御するモーション用リストテーブルをロードし、準備して(ステップE3)、全てのブレンド情報領域をクリアする(ステップE4)。ブレンド情報領域とは、VDP312の内部レジスタのパラメータの情報を新旧比較用に記憶するRAM(CPU311内のRAM)内の領域である。すなわち、VDP312には、エフェクトのためのブレンド時の画素間演算固定値を指示する内部レジスタのパラメータが4種類ある。そして、この4種類のパラメータ毎に今回の設定情報と前回の設定情報を記憶する領域がCPU311内のRAMに設けられており、これがブレンド情報領域である。
次いで、画素間演算用パラメータ(すなわち、VDP312の内部レジスタに設定する4種類のパラメータ)を設定して(ステップE5)、ステップE6に進む。
ステップE6に進むと、ループ処理Bを開始する。ループ処理Bでは、変数iを初期値0から増分1だけ増加させつつ終値(終値=表示数−1)になるまで、ステップE6〜E48を繰り返し実行し、その後ステップE49に進む。すなわち、ステップE6ではループ開始直後は変数iを0としてステップE7に進む。ステップE48では、変数iが終値未満である場合にはステップE6に戻り、変数iが終値以上である場合にはステップE49に進む。そしてステップE6に戻ると、変数iの値を1だけ増加させてステップE7に進む。なお、終値の値は、モーション管理領域Xに設定されている表示数のデータから1を減算した値である。すなわち、このループ処理Bでは、この表示数分だけステップE6〜E48を繰り返し実行し、その後ステップE49に進む。
以下、ステップE7以降の処理を説明する。
ステップE7に進むと、VDP312の内部レジスタのカラーパラメータをα値対応に設定して(ステップE7)、後述する処理に使用するαフラグをαありに設定して(ステップE8)、モーション管理領域Xにおける変数iに対応する表示情報領域(以下「対象の表示情報領域」という)のアドレスをロードして(ステップE9)、ステップE10に進む。
ステップE10に進むと、ステップE9でロードしたアドレスの表示情報領域におけるビヘイビアインデックス(ビヘイビアNo.)の値を読み取り、NULLではないなんらかのビヘイビアインデックス(ビヘイビアNo.)のデータが設定されているか判定し、設定されている場合(ステップE10;Y)には、当該ビヘイビアインデックスに対応する処理(ステップE11)を実行した後にステップE12に進み、設定されていない場合(ステップE10;N)には、ステップE11を実行しないでステップE12に進む。
なお、ステップE11で実行されるビヘイビアインデックス(ビヘイビアNo.)に対応する処理とは、対象の表示情報領域に対応するオブジェクト(対象のオブジェクト)について、ビヘイビアインデックス(ビヘイビアNo.)で指定されるビヘイビア(画像データの差替え)を実行するための処理であり、前述したビヘイビアテーブルにおいてビヘイビアインデックスで指定される行に設定された処理アドレスによって特定される処理である。
例えば、対象のオブジェクトが左図柄の現図柄である場合には、後述する図129(a)に示すフローチャートの処理(表示左図柄変換処理)が上記ステップE11で実行される。本願では、上記ステップE11で実行される処理の具体例を、他にも図129(b)、(c)や図130にも示しているが、これらの詳細は後述する。
なお、ステップE11が実行されると、画像インデックスのデータが表示直前に変更され、例えば基本の図柄が表示すべき所定の図柄に差し替えられたり、PB(プッシュボタン)の画像の色が基本色から遊技状態に応じた所定の色(例えば、大当り信頼度を表す特定の色)に差し替えられたりする。モーションテーブル上に定義されているキャラクタの表示パターンは固定になってしまっているため、基本的にはモーションテーブルを変えない限り、変動毎に異なる停止図柄や振り分けにより異なる予告キャラクタなどに対応出来ない。そこで、本例では、ビヘイビアを必要箇所に埋め込んでキャラクタを差し替える処理を行うようにして柔軟な対応を行えるようにしている。
ステップE12に進むと、対象の表示情報領域に設定されているエフェクトタイプのデータを読み取り、これが基本ブレンドか、加算ブレンドか、減算ブレンドかをそれぞれ判定して(ステップE12〜E14)、何れかのブレンドタイプに該当すればステップE15に進み、何れのブレンドタイプにも該当しなければステップE21に進む。
ステップE15に進むと、対象の表示情報領域に設定されているエフェクトパラメータの値をロードし、カラーパラメータに適用して(ステップE15)、その後ステップE16に進む。
ステップE16に進むと、対象の表示情報領域に設定されている表示種別などのデータから、描画指定は通常動画の透過なし再生か判定し、通常動画の透過なし再生である場合(ステップE16;Y)には、ステップE17に進み、通常動画の透過なし再生でない場合(ステップE16;N)には、ステップE21に進む。
ステップE17に進むと、対象の動画(ステップE16で通常動画の透過なし再生と判定されたもの)は、αなしで登録されているか判定し、αなしで登録されている場合(ステップE17;Y)には、αフラグをαなしに設定して(ステップE18)、ステップE21に進み、αなしで登録されていない場合(ステップE17;N)には、ステップE18を実行しないでステップE21に進む。
ステップE21に進むと、対象の表示情報領域に設定されているエフェクトタイプのデータを読み取り、これが加算ブレンドか、減算ブレンドか、乗算ブレンドか、スクリーンブレンドか、差分ブレンドか、比較(暗)ブレンドか、反転ブレンドかをそれぞれ判定して(ステップE21〜E27)、何れかのブレンドタイプに該当すれば対応の処理(ステップE31〜E37のうちの対応する処理)を実行後にステップE39に進み、何れのブレンドタイプにも該当しなければステップE28に進む。
ここで、ステップE31は加算ブレンドの場合に実行される処理(加算タイプの描画エフェクトを設定する処理)であり、ステップE32は減算ブレンドの場合に実行される処理(減算タイプの描画エフェクトを設定する処理)であり、ステップE33は乗算ブレンドの場合に実行される処理(乗算タイプの描画エフェクトを設定する処理)であり、ステップE34はスクリーンブレンドの場合に実行される処理(スクリーンタイプの描画エフェクトを設定する処理)であり、ステップE35は差分ブレンドの場合に実行される処理(差分タイプの描画エフェクトを設定する処理)であり、ステップE36は比較(暗)ブレンドの場合に実行される処理(暗タイプの描画エフェクトを設定する処理)であり、ステップE37は反転ブレンドの場合に実行される処理(反転タイプの描画エフェクトを設定する処理)である。
ステップE28に進むと、αフラグの設定がαなしか判定し、αなしである場合(ステップE23;Y)には、αなしの描画エフェクトを設定して(ステップE29)、ステップE39に進み、αなしでない場合(ステップE23;N)、すなわち、αありの場合には、αありタイプの描画エフェクトを設定して(ステップE38)、ステップE39に進む。
なお、上記ステップE29及びステップE31〜E38では、対象の表示情報領域のエフェクトタイプ等の設定に応じて、ブレンドするための各種パラメータ(本例では4種類)を該当のブレンド情報領域に設定している。
ステップE39に進むと、ループ処理Cを開始する。ループ処理Cでは、前述した4種のブレンド情報領域に対応する変数jを初期値0から増分1だけ増加させつつ終値(終値=3)になるまで、ステップE39〜E43を繰り返し実行し、その後ステップE44に進む。
すなわち、ステップE39ではループ開始直後は変数jを0としてステップE40に進む。
ステップE40に進むと、変数jに対応するブレンド情報領域が変更されたか判定し、変更された場合(ステップE40;Y)には、ステップE41に進み、変更されていない場合(ステップE40;N)には、ステップE43に進む。ここで、ステップE40の判定は、該当のブレンド情報領域の前回のデータと今回のデータが不一致であれば変更されたと判定し、一致であれば変更されていないと判定することにより行う。
ステップE41に進むと、変数jに対応するレジストパラメータの画素間演算固定値をVDP312の内部レジスタに設定して(ステップE41)、今回のブレンド情報を前回のブレンド情報として設定して(ステップE42)、ステップE43に進む。
ステップE43に進むと、変数jが終値未満である場合にはステップE39に戻り、変数jが終値である場合にはループ処理Cを抜けてステップE44に進む。そしてステップE39に戻ると、変数jの値を1だけ増加させてステップE40に進む。
なお、変数jの範囲が4つ分あるのは、前述したように、VDP312にブレンド時の画素間演算固定値を指示する内部レジスタのパラメータが4種類あるからである。また、各レジスタに対応する領域(ブレンド情報領域)を前回用と今回用と設け、このブレンド情報領域の新旧のデータを比較して一致しないときだけ、ステップE41の設定処理を行うのは、指定する値が変化する時だけVDP312のレジスタに設定するため(VDPへの設定処理の効率化のため)である。
ステップE44に進むと、対象の表示情報領域に設定されている表示種別(表示タイプ)のデータを読み取り、これが静止画か、通常動画か、Iピクチャ動画か、単色四角形かをそれぞれ判定して(ステップE44〜E47)、単色四角形を除く何れかの表示タイプに該当すれば対応の処理(ステップE51及びE52、ステップE53及びE54、或いはステップE55〜E57、のうちの対応する処理)を実行後にステップE58に進み、単色四角形ならばステップE59に進み、何れの表示タイプにも該当しなければステップE48に進む。
ここで、ステップE51及びE52は、静止画の場合に実行され、ステップE51では画像インデックスのデータをロードし、ステップE52ではロードした画像インデックスのデータに基づいて静止画像データの属性を設定するなどの処理を実行する。ステップE52を経ると、ステップE51でロードしたデータとステップE52の設定に基づいてキャラクタ描画処理(ステップE58)を実行する。
また、ステップE53及びE54は、通常動画の場合に実行され、ステップE53では画像インデックスのデータをロードし、ステップE54ではロードした画像インデックスのデータに基づいて通常動画像データの属性を設定するなどの処理を実行する。ステップE54を経ると、ステップE53でロードしたデータとステップE54の設定に基づいてキャラクタ描画処理(ステップE58)を実行する。
また、ステップE55〜E57は、Iピクチャ動画の場合に実行され、ステップE55では画像インデックスのデータをロードし、ステップE56では対象の表示情報領域からIピクチャ用フレームカウント(Iピクチャのみの動画時のフレームカウント)のデータをロードし、ステップE57ではロードした前記データに基づいてIピクチャ動画像データの属性を設定するなどの処理を実行する。ステップE57を経ると、ステップE55、E56でロードしたデータとステップE57の設定に基づいてキャラクタ描画処理(ステップE58)を実行する。
また、ステップE59は、単色四角形の場合に実行され、矩形画像(単色四角形の画像)をVRAM326の仮想描画空間(フレームバッファ)326aに描画する処理(すなわち、矩形画像のスプライトを仮想描画空間326aに貼り付ける処理)である。
なお、ステップE58又はステップE59を経ると、ステップE48に進む。
ステップE48に進むと、ループ処理Bの変数iが終値(表示数−1)に到達しているか判定し、到達していればループ処理Bを抜けてステップE49に進み、到達していなければステップE6に戻ってループ処理Bを繰り返す。
ステップE49に進むと、対象のモーション管理領域の番号Xを+1更新して(ステップE49)、ステップE50に進む。
ステップE50に進むと、Xがループ処理Aの終値(本例では14)に到達したか判定し、到達していればループ処理Aを抜けて演出表示編集処理を終了し、到達していなければステップE1に戻ってステップE2からループ処理Aを繰り返す。
なお、ステップE52、E54、E57の属性を設定するステップでは、当該キャラクタデータ(静止画データ又は動画データ)をキャラROM(画像ROM325)からVRAM326へデータ転送する処理も同時に行われる。ただし、既にVRAM326に同じものが存在する場合はこのデータ転送は行わない。また、単色四角形の場合には、キャラROMのデータを使用しないので、このデータ転送は必要ない。ここで、属性とは、キャラクタの基本情報のことであり、例えばαモード、カラーモード(何色表示かなど)、キャラクタサイズ、カラーパレット指定、他がある。
〔キャラクタ描画処理〕
次に、前述の演出表示編集処理におけるキャラクタ描画処理(ステップE58)の詳細について図128により説明する。
キャラクタ描画処理が開始されると、まずステップE61で、モーション管理領域Xにおける対象の表示情報領域(変数iに対応する表示情報領域)から表示左上点のX座標と表示左下点のX座標のデータを読み出して、これらが一致するか判定し、一致ならば(ステップE61;Y)、ステップE62に進み、不一致ならば(ステップE61;N)、ステップE77に進む。
ステップE62に進むと、モーション管理領域Xにおける対象の表示情報領域から表示左上点のY座標と表示右上点のY座標のデータを読み出して、これらが一致するか判定し、一致ならば(ステップE62;Y)、ステップE63に進み、不一致ならば(ステップE62;N)、ステップE77に進む。
なお、四角形(矩形)の画像であれば、ステップE61及びE62の判定結果はYesになってステップE63に進むが、三角形キャラクタ(三角形の画像)である場合には何れかの判定がNoになってステップE77に進む。
ステップE77に進むと、三角形キャラクタ描画処理(ステップE77)を実行して、キャラクタ描画処理を終了する。
ステップE63に進むと、モーション管理領域Xにおける対象の表示情報領域から表示左上点のX座標のデータを読み出し、これをキャラクタの左上基点X座標として設定して(ステップE63)、モーション管理領域Xにおける対象の表示情報領域から表示左上点のY座標のデータを読み出し、これをキャラクタの左上基点Y座標として設定する(ステップE64)。
次いで、モーション管理領域Xにおける対象の表示情報領域から表示右上点のX座標と表示左上点のX座標のデータを読み出し、これらの差(=表示右上点のX座標−表示左上点のX座標)をキャラクタの幅データとして設定して(ステップE65)、モーション管理領域Xにおける対象の表示情報領域から表示左下点のY座標と表示左上点のY座標のデータを読み出し、これらの差(=表示左下点のY座標−表示左上点のY座標)をキャラクタの高さデータとして設定する(ステップE66)。
次いで、水平フリップなしと、垂直フリップなしとを設定して(ステップE67)、ステップE68に進む。ここで、水平フリップは水平方向(X座標方向)の画像反転を意味し、垂直フリップは垂直方向(Y座標方向)の画像反転を意味する。
ステップE68に進むと、ステップE65で設定された幅データが0未満(すなわち、マイナスの値)か判定し、0未満である場合(ステップE68;Y)には、水平フリップありなのでステップE69に進み、0未満でない場合(ステップE68;N)には、水平フリップなしなのでステップE72に進む。
ステップE69に進むと、モーション管理領域Xにおける対象の表示情報領域から表示左上点のX座標のデータを読み出し、これにステップE65で設定した幅データ(マイナス値)を加算した加算結果をキャラクタの左上基点X座標として更新設定して(ステップE69)、ステップE65で設定した幅データ(マイナス値)を正数に変換し、これを新たな幅データとして更新設定する(ステップE70)。
次いで、水平フリップありを設定する(ステップE67の設定を変更する)処理を行って(ステップE71)、ステップE72に進む。
ステップE72に進むと、ステップE66で設定された高さデータが0未満(すなわち、マイナスの値)か判定し、0未満である場合(ステップE72;Y)には、垂直フリップありなのでステップE73に進み、0未満でない場合(ステップE72;N)には、垂直フリップなしなのでステップE76に進む。
ステップE73に進むと、モーション管理領域Xにおける対象の表示情報領域から表示左上点のY座標のデータを読み出し、これにステップE66で設定した高さデータ(マイナス値)を加算した加算結果をキャラクタの左上基点Y座標として更新設定して(ステップE73)、ステップE66で設定した高さデータ(マイナス値)を正数に変換し、これを新たな高さデータとして更新設定する(ステップE74)。
次いで、垂直フリップありを設定する(ステップE67の設定を変更する)処理を行って(ステップE75)、ステップE76に進む。
ステップE76に進むと、ここまでの処理(ステップE63〜E75)による設定に基づいて、前記ステップE51、E53、E55の何れかでロードされた画像インデックスのデータに対応する所定のキャラクタの画像(指定画像)をVRAM326の仮想描画空間(フレームバッファ)326aに描画する処理(すなわち、所定のキャラクタの画像(指定画像)のスプライトを仮想描画空間326aに貼り付ける処理)を実行して(ステップE76)、キャラクタ描画処理を終了する。
〔表示左図柄変換処理〕
次に、前述の演出表示編集処理におけるステップE11で実行される表示左図柄変換処理の詳細について図129(a)により説明する。
表示左図柄変換処理が開始されると、まず、画像インデックスのデータ(ビヘイビアによる差替え前のデータ)をロードして(ステップE81)、表示すべき現図柄(左)のインデックス(図柄番号)のデータ(例えば、前述のステップD727又はD747で設定されたデータ)をロードする(ステップE82)。なお、本例の場合、図柄の種類が9種類であるため、図柄(特図の飾り図柄)のインデックス(図柄番号)のデータは0から8までの何れかの数値である。
次いで、ステップE81でロードした画像インデックスに設定されていた現図柄(左)のインデックスのデータに、ステップE82でロードした現図柄(左)のインデックスのデータを加算し、この加算結果を更新インデックスとして設定して(ステップE83)、ステップE84に進む。例えば、ステップE81でロードした差替え(変換)前の画像インデックスの値が0であり、ステップE82でロードした差替えようとする現図柄(左)のインデックスのデータが6であった場合には、上記ステップE83では6(=0+6)を更新インデックスの値として設定する。
ステップE84に進むと、ステップE83で設定した更新インデックスのデータが図柄上限(本例では、8)を超えているか判定し、超えている場合(ステップE84;Y)には、ステップE85に進み、超えていない場合(ステップE84;N)には、ステップE86に進む。
ステップE85に進むと、図柄上限に1を加算した値(本例では、9)を、更新インデックスの値から減算し、この減算結果を新たな更新インデックスの値として設定して(ステップE85)、ステップE86に進む。これらステップE84、E85によれば、更新インデックスの値が図柄上限を超えると、更新インデックスの値が一巡した値に更新される。
ステップE86に進むと、左図柄インデックス変換テーブルを設定して(ステップE86)、ステップE87に進む。左図柄インデックス変換テーブルは、更新インデックスにより行が指定され、指定された行に表示すべき左図柄の画像インデックスの値が設定されているテーブルである。
ステップE87に進むと、ステップE86で設定された左図柄インデックス変換テーブルにおける更新インデックスで指定される行から新たな画像インデックスの値を取得して(ステップE87)、ステップE87で取得した値を、新たな画像インデックスの値として画像インデックス領域(画像インデックスをセーブする領域)にセーブして(ステップE88)、その後表示左図柄変換処理を終了する。
なお、表示左図柄変換処理について以上説明したが、右図柄、中図柄についても同様の処理がある(詳細は省略)。
〔PB色変換処理〕
次に、前述の演出表示編集処理におけるステップE11で実行されるPB色変換処理の詳細について図129(b)により説明する。
PB色変換処理が開始されると、まず、演出振分け結果領域のPB色領域から振分け結果をロードして(ステップE91)、PBインデックス変換テーブルを設定する(ステップE92)。PBインデックス変換テーブルは、上記PB色領域にセーブされる振分け結果により行が指定され、指定された行に表示すべきPB(プッシュボタン)の画像の画像インデックスの値が設定されているテーブルである。
次いで、ステップE92で設定されたPBインデックス変換テーブルにおける上記振分け結果で指定される行から新たな画像インデックスの値(PBインデックスの値)を取得して(ステップE93)、ステップE93で取得した値を、新たな画像インデックスの値として画像インデックス領域にセーブして(ステップE94)、PB色変換処理を終了する。
なお、PB予告(プッシュボタン予告)のモーション制御データ(特に画像インデックスのデータ)としては、デフォルト色となるボタンキャラクタしか登録していないので、大当り信頼度の報知等のために色をデフォルト色から変える場合に、本処理(PB色変換処理)が実行される。この予告に限らず、登場する武将のキャラクタをビヘイビアにより変換(差替え)したりする処理も存在する。
〔リーチ文字変換処理〕
次に、前述の演出表示編集処理におけるステップE11で実行されるリーチ文字変換処理の詳細について図129(c)により説明する。
リーチ文字変換処理が開始されると、まず、演出振分け結果領域のリーチ文字領域から振分け結果をロードして(ステップE101)、リーチ文字インデックス変換テーブルを設定する(ステップE102)。リーチ文字インデックス変換テーブルは、上記リーチ文字領域にセーブされる振分け結果により行が指定され、指定された行に表示すべきリーチ文字の画像の画像インデックスの値が設定されているテーブルである。
次いで、ステップE102で設定されたリーチ文字インデックス変換テーブルにおける上記振分け結果で指定される行から新たな画像インデックスの値(リーチ文字インデックスの値)を取得して(ステップE103)、ステップE104に進む。
ステップE104に進むと、ステップE103で取得したリーチ文字インデックスが「文字なし」を示す値か判定し、「文字なし」を示す値である場合(ステップE104;Y)には、当該リーチ文字のキャラクタ(画像)の大きさを0に設定して(ステップE105)、リーチ文字変換処理を終了し、「文字なし」を示す値でない場合(ステップE104;N)には、ステップE105を実行しないでリーチ文字変換処理を終了する。
なお、本例では、リーチが発生した瞬間に表示される「リーチ!」や「戦機」、「勝利」などのリーチ文字についても、モーション制御データ(特に画像インデックスのデータ)ではデフォルト文字を表示する構成となっており、必要に応じてビヘイビアによって表示直前に文字変更や各文字の色違いなどの差し替えを行う。
以上説明したリーチ文字変換処理では、例えば大当り予告の信頼度が低信頼度での変動の場合にステップE105でその文字サイズを0にすることで、制御上リーチ文字が存在するが実際には見えないという制御を行っている。但し、表示しない手法を、この構成に限られない、例えばリーチ文字表示を行わない構成とすることもあり得る。
〔武将1セリフ変換処理〕
次に、前述の演出表示編集処理におけるステップE11で実行される武将1セリフ変換処理の詳細について図130により説明する。
武将1セリフ変換処理が開始されると、まず、演出振分け結果領域のセリフSU領域からセリフSU振分け結果をロードして(ステップE111)、ステップE112に進む。
ステップE112に進むと、ステップE111でロードしたセリフSU振分け結果に基づいてセリフSUがSU1系(SU2系やSU3系でないもの)か判定し、SU1系である場合(ステップE112;Y)には、ステップE117に進み、SU1系でない場合(ステップE112;N)には、ステップE113に進む。
ステップE117に進むと、演出振分け結果領域のセリフ1領域から振分け結果をロードして(ステップE117)、武将1SU1セリフインデックス変換テーブルを設定して(ステップE118)、ステップE115に進む。武将1SU1セリフインデックス変換テーブルは、上記セリフ1領域にセーブされる振分け結果により行が指定され、指定された行に表示すべきセリフの画像の画像インデックスの値が設定されているテーブルである。
ステップE113に進むと、ステップE111でロードしたセリフSU振分け結果に基づいてセリフSUがSU2系(SU2系は出現キャラが一人)か判定し、SU2系である場合(ステップE113;Y)には、ステップE119に進み、SU2系でない場合(ステップE113;N)には、ステップE114に進む。
ステップE119に進むと、演出振分け結果領域のセリフ2領域から振分け結果をロードして(ステップE119)、武将1SU2セリフインデックス変換テーブルを設定して(ステップE120)、ステップE115に進む。武将1SU2セリフインデックス変換テーブルは、上記セリフ2領域にセーブされる振分け結果により行が指定され、指定された行に表示すべきセリフの画像の画像インデックスの値が設定されているテーブルである。
ステップE114に進むと、ステップE111でロードしたセリフSU振分け結果に基づいてセリフSUがSU3系(SU3系は出現キャラが二人)か判定し、SU3系である場合(ステップE114;Y)には、ステップE121に進み、SU3系でない場合(ステップE114;N)には、ステップE115に進む。
ステップE121に進むと、演出振分け結果領域のセリフ3領域から振分け結果をロードして(ステップE121)、武将1SU3セリフインデックス変換テーブルを設定して(ステップE122)、ステップE115に進む。武将1SU3セリフインデックス変換テーブルは、上記セリフ3領域にセーブされる振分け結果により行が指定され、指定された行に表示すべきセリフの画像の画像インデックスの値が設定されているテーブルである。
ステップE115に進むと、直前のステップ(ステップE118、ステップE120、ステップE122等のうちの何れか)で設定されたセリフインデックス変換テーブルにおけるロードされた振分け結果で指定される行から新たな画像インデックスの値(セリフインデックスの値)を取得して(ステップE115)、ステップE115で取得した値を、新たな画像インデックスの値として画像インデックス領域(ビットマップインデックス領域)にセーブして(ステップE116)、武将1セリフ変換処理を終了する。
なお、セリフSUの種別としてSU1系、SU2系、SU3系以外の種別があってもよく、その場合、図130の波線で省略した箇所に対応する処理ステップが設けられる。
〔VDP割込み処理〕
次に、VDP割込み処理を、図131により説明する。既述したように、演出制御装置300において、CPU311には割り込み要因であるVDP312から割込み信号INT0〜nが入力されており、割込み要因が発生した割込み信号INT0〜nによってCPU311では複数(最大2のn乗個)の割込み(以下「VDP割込み」という)が受け付け可能である。本例の場合、このVDP割込みには、Vブランク開始割込み、Vライン開始割込み、描画コマンドINT割込み、描画エラー割込み、描画終了割込み、データ転送1完了割込み、データ転送2完了割込み、データ転送3完了割込み、チェックサム終了割込み、圧縮展開イベント割込み、シリアルコマンド割込み、がある。
本処理(VDP割込み処理)は、この複数のVDP割込みのうちの少なくとも何れか1つが発生すると開始される。なお、この複数のVDP割込みのうちの少なくとも何れか1つが発生すると、この割込み発生を示す割込みフラグのオンデータがCPU311のレジスタに設定される。
VDP割込み処理が開始されると、まず、前記割込み信号INT0〜nを読み取ることにより、各割込み要因のステータス(前記複数のVDP割込みの発生の有無の情報)を取得する(ステップE131)。なお、このステータスの情報はVDP312の割込み用のレジスタに設定されている。
次いで、ステップE131で上記ステータスを読み取ったため、各割込み要因をクリアする(ステップE132)。すなわち、上述した各割込み要因のステータスのデータ(VDP312の割込み用のレジスタのデータ)を全て割込み無しの値に戻す設定を実行する。なお、CPU311とVDP312は双方向通信が可能となっており、このステップE132の設定はこの通信によって行う。
次いで、ステップE131で取得したステータスに基づいて、それぞれ、各割込みについての処理(割込みの有無を判定してフラグを設定する等の処理)を実行して(ステップE133〜E143)、前記割込みフラグをクリアして(ステップE144)、VDP割込み処理を終了する。すなわち、前記割込みフラグのオフデータをCPU311のレジスタに設定する。
なお、このように演出制御装置300にはVDP312の各種割込みを監視する機能があるが、全てを使うとは限らない。
また、各割込みの発生条件等は以下のとおりである。
・Vブランク開始割込み;Vブランク期間の開始時に割込みが発生する。
・Vライン開始割込み;(ユーザが)指定した表示ラインの開始時に割込みが発生する。・描画コマンドINT割込み;描画コマンドの解析を中断する場合に発生する。
・描画エラー割込み;描画回路が異常状態になった時に発生する。
・描画終了割込み;描画が終了した時に発生する。
・データ転送1〜3完了割込み;各メモリ間でのデータ転送が完了した時に発生する。
なお、データ転送は、画像ROM325、CPU311(CPU311内のRAM内のデータ又は制御ROM321内のデータ)、VRAM326等の間で転送できる。データ転送1〜3の3組がそれぞれ独立しているので同時に転送が可能だが、1>2>3の順で優先順位が設けられており、転送先が同一の場合などには待ちが発生する。
・チェックサム終了割込み;画像ROM325のチェックサムを自動で計算する機能があり(CPU311からの指示で)、計算終了時に発生する。
なお、チェックサムの計算について、計算を開始するアドレス、終了するアドレス、計算する単位(例えば32ビット単位/64ビット単位)等のパラメータを指定することが可能である。
・圧縮展開イベント割込み;動画の1フレームのデコードが完了した時、又はデコードエラーが発生した時に発生する。
・シリアルコマンド割込み;例えばシリアルインターフェースに接続した音源LSI314にシリアルコマンドで指示を出し、その実行が終了した時に発生する。
〔Vブランク開始割込み処理〕
次に、前記VDP割込み処理におけるVブランク開始割込み処理(ステップE133)を、図132により説明する。なお、Vブランク開始割込み(「Vブランク割込み」或いは「Vシンク割込み」ともいう)は、VDP312によって描画のための画面全体の1回の走査が終了する度に発生する。このVブランク開始割込みの発生周期は、前述したように、例えば1/60秒である。
Vブランク開始割込み処理が開始されると、まずステップE151で、前述のステップE131で取得したステータスに基づいてVブランク開始割込みが発生しているか否か判定し、発生していれば(ステップE151;Y)、ステップE152に進み、発生していなければ(ステップE151;N)、Vブランク開始割込み処理を終了する。
ステップE152に進むと、Vブランクカウントの値を+1更新して(ステップE152)、その後ステップE153に進む。Vブランクカウントは、同じ描画を所定回数(本例では2回)実行するためのカウンタである。前述のメイン処理におけるステップD33で説明したフレーム切替タイミングは、原則的に、このVブランクカウントが所定値(本例では2)に到達した時点である。つまり、本例では、Vブランクカウントが瞬間的に2になる時(ステップE152の更新後に2になってステップE155で0クリアされるまでの瞬間)を除けば、Vブランクカウントの値は正常であれば0⇔1を交互に繰り返し、結果としてVブランク割込み2回毎にフレームを切り替える。Vブランク割込みは1/60秒毎に発生するので、1/30秒毎(33.333ms)にフレーム切り替えを行うことになる。
ステップE153に進むと、圧縮展開の実行結果はエラーか否か判定し、エラーならば(ステップE153;Y)、Vブランク開始割込み処理を終了し、エラーでなければ(ステップE153;N)、ステップE154に進む。ここで、圧縮展開の実行結果とは、圧縮されたムービーのデータを展開する処理が成功したか否かの結果を意味する。この圧縮展開の実行結果を示す判定値が、ステップE142の圧縮展開イベント割込み処理で設定される構成となっており、このステップE153の判定は、この判定値に基づいて実行される。なお、このステップE153があることにより、処理時間オーバーなどによりムービーの展開に失敗すると、Vブランクカウントが所定値に到達していてもフレーム切替は実行されず、同じ描画が繰り返されることになる。
ステップE154に進むと、Vブランクカウントの値が所定値以上か否か(本例では1より大きい値か否か)判定し、所定値以上ならば(ステップE154;Y)、すなわち1より大きい場合には、ステップE155に進み、所定値以上でなければ(ステップE154;N)、すなわち1より大きくない場合には、Vブランク開始割込み処理を終了する。このステップE154は、フレーム切替タイミングになったか否かを実質的に判定している。なお、本例では、既述したように同じ描画を2回実行すると、原則的に(すなわち、圧縮展開の実行結果がエラーでなければ)、このフレーム切替タイミングになる。但し、2回に限定されず、3回以上であってもよい。
ステップE155〜E158は、描画内容を切り替えるフレーム切替のための処理である。ステップE155に進むと、前述のVブランクカウントを0クリアして(ステップE155)、フレーム切替フラグのオンデータをセットして(ステップE156)、フレームバッファを切り替え(ステップE157)、対応するフレームバッファ(切り替え後のフレームバッファ)の画面表示(表示用データ生成)を許可して(ステップE158)、Vブランク開始割込み処理を終了する。
ここで、ステップE156で設定されるフレーム切替フラグは、前述したメイン処理におけるステップD33で使用される。すなわち、前述のステップD33では、このフレーム切替フラグのオンデータがセットされていると、フレーム切替タイミングであると判定する構成となっている。また、ステップE158では、VDP312の表示回路がVRAM326へのアクセスを行い、表示用データを生成するのを許可している。
また、フレームバッファは、ステップE59、E76で記述した仮想描画空間326aに相当し、VRAM326により構成されるバッファである。このフレームバッファとしては、本例の場合、フレームバッファ番号が0番のものと、フレームバッファ番号が1番のものとがある。そして、本例では、例えば表示用のフレームバッファが0番ならば、1番のフレームバッファは描画作業用となり、交互に表示用として使用される。上記ステップE157では、表示用のフレームバッファを次のものに切り替える処理(本例では、0番から1番へ、或いは1番から0番へ切り替える処理)を実行する。また、ステップE158では、ステップE157で切り替えた表示用のフレームバッファの表示用データ生成を許可する。
以上説明したVブランク開始割込み処理によれば、圧縮展開のエラーが発生しない限り、同じ描画が所定回数繰り返されてVブランク開始割込みが所定回数発生するとフレーム切替が行われる。本例の場合、同じ描画が2回繰り返されてVブランク開始割込みが2回発生するとフレーム切替が行われ、フレーム切替タイミングの周期は、Vブランク開始割込みの周期(例えば1/60秒)の2倍(例えば1/30秒≒33.33ms)になる。
〔演出制御用データテーブルと演出表示の具体例〕
次に、以上説明した演出制御装置300の制御で使用するデータテーブルの具体例と、同制御により表示装置41の表示画面41aで行われる演出表示の具体例とを、図133〜図138により説明する。
ここで、本実施形態において、「シナリオ」は、演出の流れ(どのモーションをいつ実行するか等を決めるもの)を意味する。すなわち、パチンコ遊技機としての全ての演出を通して、表示画面41aを構成することとなる表示要素(背景、左図柄、・・・)をピックアップし、場面場面で行うべき演出の内容を管理するものである。なお、シナリオとしては、本実施形態において例示したもの(背景用シナリオ、左図柄用シナリオ、右図柄用シナリオ、中図柄用シナリオ、予告1用シナリオ、予告2用シナリオ、保留用シナリオ、および第4図柄用シナリオ)の他に、エラーメッセージ用シナリオ(エラーメッセージは、ゲーム演出とは無関係に表示されるため)や、ホール・遊技者設定画面用シナリオなども考えられる。
また、「モーション」は、ブロック化(パーツ化)された演出動作(本実施形態の場合、具体的には、表示装置41での表示演出をブロック化したもの)を意味する。すなわち、表示画面41a上に描画するために、キャラクタ画像、キャラクタ数、座標、大きさ、透明度、・・・などの詳細な制御を行うものである。基準となるデータ(基準データ)が定義されていれば、ビヘイビア処理によって基準データに対する調整を行うこと(同一軌跡をたどる演出においてキャラクタ画像を差し替える、キャラクタ画像に応じてサイズを調整する、透明度を調整する、・・・など)は可能である。少しでも違う全ての演出において、キャラクタ画像や座標データなどを全部定義していたら、データ量が膨大になってしまうが、ビヘイビア処理によって基準データに対する調整を行うことで、最小限の動作パターンを定義する(動作のパーツ化)だけで済み、データ容量の節約と開発の効率化が可能となる。
また、「ビヘイビア」は、プログラミングなどの分野で、特定の要素がある条件下でどのように動作するかを定義したものをいうことがあるが、表示画面41a上にある表示要素に対して利用者が特定の操作をすると、対応するプログラムが実行される等の処理を記述するために利用される。
図133は、シナリオ管理領域のアドレス領域とシナリオ管理領域の一例を示す図である。
本実施形態において、シナリオ管理領域のアドレス領域は、図133の左側に示すように、シナリオレイヤー0用アドレス〜シナリオレイヤー7用アドレスをそれぞれ格納する8個の領域からなる。演出制御装置300は、毎処理時、シナリオ設定処理(図103参照)を実行して全アドレス領域を上から順にチェックし、対応するアドレス領域に制御するRAMのアドレス(本実施形態の場合、シナリオ管理領域の先頭アドレス)が格納されているシナリオレイヤーに対して処理を行う。描画されないシナリオレイヤーに対応するアドレス領域にはRAMのアドレスではなくNULLが格納されている。
また、各シナリオ管理領域は、図133の右側に示すように、シナリオ用タイマの値、PB用タイマの値、PB検知フラグの値、およびシナリオ用データテーブルのアドレスをそれぞれ格納する4個の領域を含む構造である。例えばシナリオ管理領域0(図133の右側の最上段参照)では、背景として、どのモーションテーブルを使用した描画を行うのかを管理している。シナリオ用タイマがタイムアップするまでの間、指定のモーションに基づいた描画を行い、タイムアップしたら次のシナリオで示されるモーションを実行するといった処理を繰り返すことになる。
指定されたアドレスに各シナリオ設定のためのシナリオ管理領域が設けられ、シナリオ管理領域の各領域のうちのシナリオ設定に不要な領域には特に設定を行わず、「シナリオ用データテーブル領域」には現在制御されているデータテーブル(シナリオテーブル)のアドレスが格納される。
なお、PB(プッシュボタン)を使用するのは基本的に予告用シナリオの時だけであるため、シナリオ管理領域の各領域のうちの「PB用タイマ領域」や「PB検知フラグ領域」は予告用シナリオ以外のシナリオ設定に不要な領域であるが、シナリオ管理領域の構成を共通化して処理を共通化するために、予告用シナリオ管理領域(本実施形態の場合、シナリオ管理領域4およびシナリオ管理領域5)以外のシナリオ管理領域にも、「PB用タイマ領域」や「PB検知フラグ領域」が設けられている。
また、本実施形態では、予告用シナリオレイヤーとして、予告1用シナリオレイヤー(シナリオレイヤー4)と予告2用シナリオレイヤー(シナリオレイヤー5)の2つを確保しているため、1画面中に2種類の独立した予告演出を出現可能となっている。
図134は、モーション管理領域のアドレス領域の一例を示す図である。
本実施形態において、モーション管理領域のアドレス領域は、図134の左側に示すように、モーション0用アドレス〜モーション13用アドレスをそれぞれ格納する14個の領域からなる。
ここで、モーション1(予告A)用アドレス〜モーション4(予告D)用アドレスを格納するアドレス領域、すなわちモーション管理領域1〜モーション管理領域4のアドレス領域は、飾り図柄(左図柄、右図柄、および中図柄)よりも奥側に予告キャラクタを出現させたい時に、予告1用シナリオまたは予告2用シナリオによって使用される。本実施形態の場合、モーション管理領域1〜モーション管理領域4の4つの領域を確保しているため、飾り図柄よりも奥側において同時に4つまでモーションを実行可能、すなわち同時に4つまで互いに異なる動きをする予告キャラクタを出現させることが可能である。これにより、複数の予告キャラクタがそれぞれ抽選によって独立した動きをするような予告を構成すること(具体的には、例えば、複数の予告キャラクタの掛け合い等によって1つの予告を構成するようなこと)ができる。なお、最初から最後まで決まった動きしかしない場合には、複数の予告キャラクタが登場しても1モーション(すなわち、1つのモーション管理領域)で制御できる。
また、モーション8(予告E)用アドレスおよびモーション9(予告F)用アドレスを格納するアドレス領域、すなわちモーション管理領域8およびモーション管理領域9のアドレス領域も、予告1用シナリオまたは予告2用シナリオによって使用される。
また、モーション11(予告G)用アドレスおよびモーション12(予告H)用アドレスを格納するアドレス領域、すなわちモーション管理領域11およびモーション管理領域12のアドレス領域も、予告1用シナリオまたは予告2用シナリオによって使用される。
また、各モーション管理領域は、図106(b)に示すように、表示数、フレーム番号、コマンド位置、およびモーション用リストテーブルのアドレスをそれぞれ格納する4個の領域と、表示数分の表示情報領域とを含む構造である。
また、各表示情報領域は、図106(c)に示すように、表示種別、エフェクトタイプ、エフェクトパラメータ、表示左上点のX座標、表示左上点のY座標、表示右上点のX座標、表示右上点のY座標、表示左下点のX座標、表示左下点のY座標、画像インデックス、バックグラウンドカラー、フォアグラウンドカラー、IPictureのみの動画時のフレームカウント、およびビヘイビアインデックスの各データを記憶する領域を含んでいる。
本実施形態においては、左図柄としての3図柄(次図柄、現図柄、および前図柄)のスクロールの仕方は決まった法則に従っているため、左図柄用モーション管理領域(本実施形態の場合、モーション管理領域5)には、図134の右側の最上段に示すように、左図柄表示情報領域0(次図柄)と左図柄表示情報領域1(現図柄)と左図柄表示情報領域2(前図柄)の3つの表示情報領域が設けられており、次図柄と現図柄と前図柄の3キャラクタが1モーションで制御される。次図柄、現図柄、および前図柄それぞれの図柄変更についてはビヘイビアで行う。右図柄および中図柄においても同様である。
また、第4図柄用モーション管理領域(本実施形態の場合、モーション管理領域13)には、図134の右側の最下段に示すように、第4図柄表示情報領域0〜第4図柄表示情報領域3の4個の表示情報領域が設けられている。
また、背景用モーション管理領域(本実施形態の場合、モーション管理領域0)や予告用モーション管理領域(本実施形態の場合、モーション管理領域1、モーション管理領域2、モーション管理領域3、モーション管理領域4、モーション管理領域8、モーション管理領域9、モーション管理領域11、およびモーション管理領域12)についても同様に、表示数分の表示情報領域があり、その中からモーションテーブルで指定されている表示情報領域が選択される。
図135は、客待ち演出開始時に使用するシナリオテーブルの一例である。客待ち演出開始時に使用するシナリオテーブルは、客待ち演出としての演出の流れを規定する。本実施形態の場合、客待ち演出(客待ちデモ演出)では決まった流れで表示を行うだけであるため、既述したように、客待ち演出はシナリオレイヤー0(主に背景画像の表示制御に使うシナリオレイヤー)のみを使用し、シナリオレイヤー0の中で図柄等に関するモーション設定も行っている。したがって、客待ち演出開始時に使用するシナリオテーブルは、背景シナリオテーブルだけで構成される。
図135に示すシナリオテーブルにおいては、1行目(//削除(城門))〜8行目(//削除(リーチ文字))に、オペコードとしてモーション削除コード(M1DEL、M2DEL、M3DEL、M4DEL、M8DEL、M9DEL、M11DEL、M12DEL)が設定され、オペランドとして0が設定されている。これにより、客待ち演出を実行する際に消す必要のあるモーションをまとめて削除する、具体的にはモーション1(予告A)、モーション2(予告B)、モーション3(予告C)、モーション4(予告D)、モーション8(予告E)、モーション9(予告F)、モーション11(予告G)、およびモーション12(予告H)の描画を停止するために、モーション管理領域1、2、3、4、8、9、11、12の制御データを削除(初期化)する。右列のオペランドの0は使用しないデータである。
また、9行目(//第4図柄)に、オペコードとしてモーション登録コード(M13SET)が設定され、オペランドとして21が設定されている。これにより、モーション13(第4図柄)を所定の位置に停止表示するために、モーション管理領域13に第4図柄停止表示のモーションテーブル番号21を登録する。
図135に示すシナリオテーブルにおいて、次の10行目(//BG継続)は、客待ち演出の図柄表示(客待ちA)を開始する行である。
具体的には、10行目(//BG継続)に、オペコードとしてモーション継続コード(M0KPX)が設定され、オペランドとして12が設定されている。これにより、モーション0(背景)をモーションテーブル番号12に基づき表示するために、モーション管理領域0に背景表示のモーションテーブル番号12が登録されている場合には、その状態を継続し、登録されていない場合には、モーション管理領域0に背景表示のモーションテーブル番号12を登録する。
また、11行目(//表示(保留))に、オペコードとしてモーション登録コード(M10SET)が設定され、オペランドとして−1が設定されている。これにより、モーション10(保留)を、保留数の入っているRAM領域に基づいた態様で表示する。保留数が0である場合には、保留表示枠だけを表示する。
また、12行目(//停止図柄set)に、オペコードとして停止図柄setコード(LZSTOP)が設定され、オペランドとして0が設定されている。これにより、左図柄の現図柄を左図柄の停止図柄に書き換えるために、特図停止図柄領域(左)の値を表示図柄領域(現図柄領域(左))に書き込む。
また、13行目(//客待ち左図柄)に、オペコードとしてモーション登録コード(M5SET)が設定され、オペランドとして76が設定されている。これにより、モーション5(左図柄)として客待ち中用の左図柄を表示する。客待ち中は変動中と異なり、中段の図柄(現図柄)のみを表示する。
右図柄および中図柄においても同様である(14行目〜17行目参照)。
また、18行目(//wait)に、オペコードとして定数ウェイトコード(CWAIT)が設定され、オペランドとして3600が設定されている。これにより、3600フレームの間(すなわち、120秒=3600×(1/30秒)の間)、この行で待機する。
図135に示すシナリオテーブルにおいて、次の19行目(//削除)は、客待ち演出のムービー表示(客待ちB)を開始する行である。
具体的には、19行目(//削除)〜22行目(//削除(保留))に、オペコードとしてモーション削除コード(M5DEL、M6DEL、M7DEL、M10DEL)が設定され、オペランドとして0が設定されている。これにより、モーション5(左図柄)、モーション6(右図柄)、モーション7(中図柄)、およびモーション10(保留)の描画を停止するために、モーション管理領域5、6、7、10の制御データを削除(初期化)する。
また、23行目(//BG)に、オペコードとしてモーション登録コード(M0SET)が設定され、オペランドとして13が設定されている。これにより、モーション0(背景)をモーションテーブル番号13に基づき表示する(具体的には、客待ちムービーを表示する)ために、モーション管理領域0に背景表示のモーションテーブル番号13を登録する。
また、24行目(//wait)に、オペコードとして定数ウェイトコード(CWAIT)が設定され、オペランドとして900が設定されている。これにより、900フレームの間(すなわち、30秒=900×(1/30秒)の間)、この行で待機する。
また、25行目(//繰返し)に、オペコードとして繰返しコード(SQRTN)が設定され、オペランドとして15が設定されている。これにより、客待ち演出の図柄表示(客待ちA)を再び開始するために、15行上のデータ(すなわち、10行目(//BG継続))に戻る。
なお、図135に示すシナリオテーブルにおいて四角で囲まれた範囲のデータが、1フレーム内で処理される。
図136は、左図柄通常変動開始時のモーションテーブルの一例であり、図137は、図136に示したモーションテーブルによる表示結果の一例である。
図137に示すように、表示画面41aの左上隅が原点(X座標=0、Y座標=0)となっており、上下方向がY軸方向であるため、表示画面41aの左下隅はX座標=0でY座標=767となっている。また、表示画面41aにおいて左右方向がX軸方向であるため、表示画面41aの右上隅はX座標=1023でY座標=0となっており、表示画面41aの右下隅はX座標=1023でY座標=767となっている。なお、このような座標の具体的数値は一例にすぎない。
図137(a)は、図136に示したモーションテーブルの(a)、すなわち最初の1フレーム(1/30秒間)に対応している。図柄「2」が次図柄(オブジェクトインデックス(表示情報領域No.)0)であり、図柄「1」が現図柄(オブジェクトインデックス(表示情報領域No.)1)であり、図柄「9」が前図柄(オブジェクトインデックス(表示情報領域No.)2)であり、これらオブジェクトは、図136に示したモーションテーブルの1行目〜6行目によって追加登録されてビヘイビアが設定される。また、図136に示したモーションテーブルの7行目〜9行目で、これらオブジェクトの表示位置や大きさがそれぞれ設定され、これにより図137(a)に示す表示が行われる。但し、実際には、次図柄の一部および前図柄の一部は表示画面41aの外の位置にあるため、次図柄も前図柄も全体は見えない。
また、図137(b)は、図136に示したモーションテーブルの(b)、すなわち2番目の1フレーム(1/30秒間)に対応している。各オブジェクトの図柄やビヘイビアの設定は最初の1フレーム(a)のままであり、図136に示したモーションテーブルの11行目〜13行目で、これらオブジェクトの表示位置や大きさが設定され、これにより図137(b)に示す表示が行われる。この場合、Y座標の値が最初の1フレーム(a)よりも全て−8だけ変更され(例えば、オブジェクトインデックス(表示情報領域No.)1の現図柄は、Y座標の値が7から−1に変更され)、これにより各図柄が表示画面41aにおいて上に若干移動している。これは、各図柄が変動開始時に一旦ホップ(若干上昇)した後に下方向にスクロール(変動)する動作における、一旦ホップする動きの一部である。2番目の1フレーム(b)において、次図柄は、全体が表示画面41aの外に位置するが、このように表示画面41a外となるキャラクタ情報もVRAM326に配置する。
また、図137(c)は、図136に示したモーションテーブルの(c)、すなわち3番目の1フレーム(1/30秒間)に対応し、図137(d)は、図136に示したモーションテーブルの(d)、すなわち4番目の1フレーム(1/30秒間)に対応している。これら3番目、4番目のフレーム(c)、(d)も一旦ホップする動きの一部であるため、Y座標が順次−8だけ変更されている。
本実施形態では、表示装置41に表示する表示画面41aの描画制御において、シナリオデータ(シナリオレイヤ−)という概念が使用される。シナリオとは、例えば背景用シナリオ、左図柄用シナリオ、右図柄用シナリオ、・・・等のように、図柄の変動演出等の表示演出を複数の表示レイヤ(シナリオレイヤー)に分けてテーブルとして予め設定し、それらを個別にシナリオとして制御し、全てのシナリオを合成することで、1画面の絵を生成する手法である。
複数の表示レイヤ(シナリオレイヤー)は、例えば背景、左図柄、右図柄、・・・と個別に各表示要素毎にカテゴリ分けが行われ、各々を独立して複数のモーション情報を同時にあるいは連続的に切り替えて演出表示させるための動作シナリオのテーブルとして設定される。
本実施形態において、表示装置41の演出で使用される表示要素(表示構成要素)は、「背景」、「左図柄」、「右図柄」、「中図柄」、「予告1キャラクタ」、「予告2キャラクタ」、「保留表示(飾り特図始動記憶表示)」、および「第4図柄」の8つの要素に分けられている。
そして、複数の表示要素毎に分けられて変動演出等の表示演出におけるシナリオテーブルが作成される。本実施形態において、シナリオテーブルは、「背景制御のシナリオテーブル(背景シナリオテーブル)」、「左図柄制御のシナリオテーブル」、「右図柄制御のシナリオテーブル」、「中図柄制御のシナリオテーブル」、「予告1キャラクタ制御のシナリオテーブル」、「予告2キャラクタ制御のシナリオテーブル」、「保留表示制御のシナリオテーブル」、および「第4図柄制御のシナリオテーブル(第4図柄シナリオテーブル)」の8つの要素に分けられて作成されている。
また、各表示要素はそれぞれが表示レイヤによって構成されて、これら複数の表示レイヤが画面奥側から画面手前側に向かって順次重ねられて1つの表示画面41aが作成される。本実施形態の場合、表示レイヤには、「背景レイヤ」、「左図柄レイヤ」、「右図柄レイヤ」、「中図柄レイヤ」、「予告Aレイヤ」〜「予告Hレイヤ」、「保留レイヤ」、および「第4図柄レイヤ」の14種類がある。
演出制御装置300は、演出表示編集処理(図125〜図127参照)において、モーション管理領域の数だけ、モーション管理領域の番号順に、ステップE1〜E50のループ処理Aを繰り返し実行する。そして、当該ループ処理Aにおいて、モーション管理領域Xのアドレス領域のデータがNULLでない場合に、ステップE59を実行して、矩形画像をVRAM326の仮想描画空間326aに描画する処理(すなわち、矩形画像のスプライトを仮想描画空間326aに貼り付ける処理)、あるいは、キャラクタ描画処理(ステップE58)におけるステップE76またはキャラクタ描画処理(ステップE58)の三角形キャラクタ描画処理(ステップE77)における所定のステップ(ステップE76に相当するステップ)を実行して、指定画像をVRAM326の仮想描画空間326aに描画する処理(すなわち、指定画像のスプライトを仮想描画空間326aに貼り付ける処理)を行うよう構成されている。
仮想描画空間326aは、図138に示すように、モーション管理領域0用描画領域〜モーション管理領域13用描画領域の14個の描画領域に分かれている。各描画領域は、対応するモーション管理領域の番号順に並んでおり、各描画領域に、矩形画像または指定画像が描画された表示レイヤが記憶される。
具体的には、演出制御装置300は、演出表示編集処理において、まず、モーション管理領域0についてのステップE1〜E50のループ処理Aを実行し、モーション管理領域0のアドレス領域のデータがNULLでない場合に、矩形画像または指定画像が描画された「背景レイヤ」を、仮想描画空間326aのモーション管理領域0用描画領域に記憶する。
次いで、モーション管理領域1についてのステップE1〜E50のループ処理Aを実行し、モーション管理領域1のアドレス領域のデータがNULLでない場合に、矩形画像または指定画像が描画された「予告Aレイヤ」を、仮想描画空間326aのモーション管理領域1用描画領域に記憶する。
次いで、モーション管理領域2についてのステップE1〜E50のループ処理Aを実行し、モーション管理領域2のアドレス領域のデータがNULLでない場合に、矩形画像または指定画像が描画された「予告Bレイヤ」を、仮想描画空間326aのモーション管理領域2用描画領域に記憶する。
以下、同様に、モーション管理領域3についてのループ処理Aを実行して「予告Cレイヤ」を仮想描画空間326aのモーション管理領域3用描画領域に記憶し、次いで、モーション管理領域4についてのループ処理Aを実行して「予告Dレイヤ」を仮想描画空間326aのモーション管理領域4用描画領域に記憶し、次いで、モーション管理領域5についてのループ処理Aを実行して「左図柄レイヤ」を仮想描画空間326aのモーション管理領域5用描画領域に記憶し、次いで、モーション管理領域6についてのループ処理Aを実行して「右図柄レイヤ」を仮想描画空間326aのモーション管理領域6用描画領域に記憶し、次いで、モーション管理領域7についてのループ処理Aを実行して「中図柄レイヤ」を仮想描画空間326aのモーション管理領域7用描画領域に記憶し、次いで、モーション管理領域8についてのループ処理Aを実行して「予告Eレイヤ」を仮想描画空間326aのモーション管理領域8用描画領域に記憶し、次いで、モーション管理領域9についてのループ処理Aを実行して「予告Fレイヤ」を仮想描画空間326aのモーション管理領域9用描画領域に記憶し、次いで、モーション管理領域10についてのループ処理Aを実行して「保留レイヤ」を仮想描画空間326aのモーション管理領域10用描画領域に記憶し、次いで、モーション管理領域11についてのループ処理Aを実行して「予告Gレイヤ」を仮想描画空間326aのモーション管理領域11用描画領域に記憶し、次いで、モーション管理領域12についてのループ処理Aを実行して「予告Hレイヤ」を仮想描画空間326aのモーション管理領域12用描画領域に記憶し、次いで、モーション管理領域13についてのループ処理Aを実行して「第4図柄レイヤ」を仮想描画空間326aのモーション管理領域13用描画領域に記憶して、演出表示編集処理を終了する。
ここで、モーション管理領域Xのアドレス領域のデータがNULLである場合には、対応する描画領域に表示レイヤが記憶されないため、当該描画領域は空白のままとなる。具体的には、例えば、モーション管理領域11のアドレス領域のデータがNULLである場合には、VRAM326の仮想描画空間326aのモーション管理領域11用描画領域に表示レイヤ(本実施形態の場合、「予告Gレイヤ」)が記憶されないため、モーション管理領域11用描画領域は空白のままとなる。なお、空白でない描画領域が連続するように表示レイヤを順次記憶していく(すなわち、表示レイヤを前に詰めながら記憶していく)ことも可能であるが、その場合、1つの表示画面41aを構成する表示レイヤの数に応じて背景レイヤ以外の表示レイヤを記憶する描画領域が変わるため、これらの表示レイヤを仮想描画空間326aに記憶する度に、当該表示レイヤを記憶する描画領域(すなわち、空白の描画領域のうちで最も前(先頭)側にある描画領域)を探索する必要があり、その分処理が煩雑になる。その一方で、本実施形態のように、演出内容(すなわち、1つの表示画面41aを構成する表示レイヤの数)にかかわらず各表示レイヤを予め定められた描画領域に記憶するよう構成することで、表示レイヤを仮想描画空間326aに記憶する度に当該表示レイヤを記憶する描画領域をいちいち探索する必要がなくなるため、処理負担を軽減することができる。
各描画領域に記憶された表示レイヤは、図138に示すように、描画領域の並び順に、画面奥側(下層側)から画面手前側(上層側)に向かって順次重ねられて1つの表示画面41aが作成される。具体的には、例えば14個の描画領域の全てが埋まっている場合、本実施形態においては、14個の描画領域のうちの先頭に位置するモーション管理領域1用描画領域に記憶されている「背景レイヤ」が最も画面奥側(最下層)に配置され、14個の描画領域のうちの最後尾に位置するモーション管理領域13用描画領域に記憶されている「第4図柄レイヤ」が最も画面手前側(最上層)に配置される。
このような演出制御では、演出画面(表示画面41a)を生成するに際して、演出画面の表示要素に対応する複数の表示レイヤ(シナリオレイヤー)に分けてテーブルとして予め設定しておき、次いで、それらを個別にシナリオとして制御し、全てのシナリオを表示レイヤの形式で合成することで、1画面の絵が生成され、表示装置41の演出画面として表示されて図柄(特図)の変動演出等の表示演出が行われる。
このように、本実施形態では演出制御装置300が制御する表示装置41の描画制御において、背景、左図柄、右図柄、・・・と個別に各表示要素毎にカテゴリ分けを行い、各々を独立して複数のモーション情報を同時にあるいは連続的に切り替えて演出表示させるための動作シナリオのテーブルを各表示要素毎に設定し、遊技制御装置100からの演出コマンドに応じてシナリオテーブルを選択し、組み合わせて合成することで、1画面の描画内容(1フレーム毎)を作り出すことが行われる。
したがって、上記構成によれば、最小限の動作パターンを定義する(動作のパーツ化)だけで済み、データ容量の節約と開発の効率化ができるという効果が得られる。
上記構成の発明概念は、下記のように表される。
遊技の進行を制御する遊技制御装置と、
前記遊技制御装置からのコマンドに基づいて表示手段を含む演出手段を制御して演出を行うことが可能な演出制御装置を備えた遊技機において、
前記演出制御装置は、
表示手段に表示する画面の描画制御における表示要素毎にシナリオデータを設定するシナリオデータ設定手段と、
遊技制御装置からのコマンドに応じて、予め設定されたシナリオデータを表示要素毎に選択して合成し、1画面の描画内容を作成する画面作成手段と、
を備えていることを特徴とする遊技機。
ここで、PROM(制御ROM)321はシナリオデータ設定手段を構成し、VDP312は画面作成手段を構成する。
<第2実施形態>
次に、第2実施形態の遊技機10について説明する。
なお、第2実施形態の遊技機10は、飾り図柄を数字部とキャラクタ部とに分けて、異なる表示レイヤに描画する点が、第1実施形態の遊技機10と異なる。したがって、以下、第1実施形態と同様の構成を有する部分については同じ符号を付して説明を省略し、主に異なる部分について説明する。
飾り図柄Zは、数字部Z1のみで構成されるか、あるいは、例えば図139(a)に示すように、数字部Z1とキャラクタ部Z2とで構成される。
第1実施形態の場合、例えば図139(b)に示すように、飾り図柄Zは、数字部Z1およびキャラクタ部Z2が同一の表示レイヤ(飾り図柄レイヤ)に描画されていたが、本実施形態では、例えば図139(c)に示すように、飾り図柄Zを数字部Z1とキャラクタ部Z2とに分けて、数字部Z1を数字部レイヤに描画するとともに、キャラクタ部Z2をキャラクタ部レイヤに描画する。複数の表示レイヤを順次重ねて1つの表示画面41aを作成する際、キャラクタ部レイヤは、数字部レイヤよりも画面奥側に配置される。
本願では、左図柄レイヤと、右図柄レイヤと、中図柄レイヤとを区別しない場合、単に飾り図柄レイヤと称する。
また、左図柄の数字部Z1が描画される左図柄数字部レイヤと、右図柄の数字部Z1が描画される右図柄数字部レイヤと、中図柄の数字部Z1が描画される中図柄数字部レイヤとを区別しない場合、単に数字部レイヤと称する。
また、左図柄のキャラクタ部Z2が描画される左図柄キャラクタ部レイヤと、右図柄のキャラクタ部Z2が描画される右図柄キャラクタ部レイヤと、中図柄のキャラクタ部Z2が描画される中図柄キャラクタ部レイヤとを区別しない場合、単にキャラクタ部レイヤと称する。
第1実施形態において、予告キャラクタYを出現させる場合、当該予告キャラクタYは、例えば図140(a)に示すように、飾り図柄レイヤよりも画面手前側に配置される予告レイヤ(第1実施形態の場合、予告Eレイヤ〜予告Hレイヤのうちの何れか)に描画されるか、あるいは、例えば図140(c)に示すように、飾り図柄レイヤよりも画面奥側に配置される予告レイヤ(第1実施形態の場合、予告Aレイヤ〜予告Dレイヤのうちの何れか)に描画される。予告キャラクタYを飾り図柄レイヤよりも画面手前側に配置される予告レイヤに描画すると、例えば図140(b)に示すように、飾り図柄Zが予告キャラクタYで隠れてしまう。また、予告キャラクタYを飾り図柄レイヤよりも画面奥側に配置される予告レイヤに描画すると、例えば図140(d)に示すように、飾り図柄Zで予告キャラクタYが隠れてしまう。
飾り図柄Z、特に数字部Z1が予告キャラクタYで隠れてしまうと、飾り特図変動表示ゲームの状態(変動中であるか否か、リーチ発生中であるか否か等)や、停止結果態様(停止図柄が何であるか(ここでの「停止」には「仮停止」も含むとする)等)などの把握が困難になってしまう。
また、飾り図柄Zで予告キャラクタYが隠れてしまうと、予告キャラクタYによる演出効果が低下してしまう。
これに対し、本実施形態の場合、飾り図柄Zは数字部Z1とキャラクタ部Z2とに分かれており、数字部Z1は数字部レイヤに描画されるとともに、キャラクタ部Z2は数字部レイヤよりも画面奥側に配置されるキャラクタ部レイヤに描画されるため、例えば図141(a)に示すように、数字部レイヤとキャラクタ部レイヤとの間に予告レイヤを配置することが可能となる。そして、予告キャラクタYを出現させる場合、当該予告キャラクタYを数字部レイヤとキャラクタ部レイヤとの間に配置される予告レイヤに描画することで、例えば図141(b)に示すように、数字部Z1が予告キャラクタYで隠れてしまうことがなく、かつ、予告キャラクタYの隠れる部分(非表示状態となる部分)を必要最小限に抑えることができる。したがって、数字部Z1が予告キャラクタYで隠れてしまうことがないため、予告キャラクタYが出現しても、飾り特図変動表示ゲームの状態や停止結果態様などの把握が困難にならない。加えて、飾り図柄Zのうち、予告キャラクタYを隠すのは数字部Z1だけであり、キャラクタ部Z2は予告キャラクタYを隠さないため、予告キャラクタYの隠れる部分を必要最小限に抑えることができ、予告キャラクタYによる演出効果の低下を抑制できる。
図142は、第2実施形態におけるモーション管理領域のアドレス領域の一例を示す図である。
第1実施形態では、下記の14つのモーションが実行可能であった(図134参照)。・モーション0=背景モーション
・モーション1=予告Aモーション
・モーション2=予告Bモーション
・モーション3=予告Cモーション
・モーション4=予告Dモーション
・モーション5=左図柄モーション
・モーション6=右図柄モーション
・モーション7=中図柄モーション
・モーション8=予告Eモーション
・モーション9=予告Fモーション
・モーション10=保留表示モーション
・モーション11=予告Gモーション
・モーション12=予告Hモーション
・モーション13=第4図柄モーション
一方、本実施形態では、下記の14つのモーションを実行可能である(図142参照)。
・モーション0=背景モーション
・モーション1=背景予告モーション
・モーション2=中図柄キャラクタ部モーション
・モーション3=左図柄キャラクタ部モーション
・モーション4=右図柄キャラクタ部モーション
・モーション5=図柄間予告モーション
・モーション6=中図柄数字部モーション
・モーション7=左図柄数字部モーション
・モーション8=右図柄数字部モーション
・モーション9=前面予告1モーション
・モーション10=前面予告2モーション
・モーション11=保留表示モーション
・モーション12=最前面予告モーション
・モーション13=第4図柄モーション
本実施形態では、第1実施形態と同様、シナリオレイヤーは8個あり、シナリオレイヤー番号は0から7まである。そして、これら8個のシナリオレイヤーのうち、シナリオレイヤー0は基本的に背景用であり、シナリオレイヤー1は左図柄用であり、シナリオレイヤー2は右図柄用であり、シナリオレイヤー3は中図柄用であり、シナリオレイヤー4は予告1用であり、シナリオレイヤー5は予告2用であり、シナリオレイヤー6は保留用であり、シナリオレイヤー7は第4図柄用である。
なお、第1実施形態および第2実施形態において、シナリオの数は8つに限られない。シナリオの数は機種仕様により増減し、第1実施形態および第2実施形態では、なるべく少数に限定して説明している。
また、第1実施形態および第2実施形態において、モーションの数は14つに限られない。モーションの数は機種仕様により増減し、第1実施形態および第2実施形態では、なるべく少数に限定して説明している。
また、第1実施形態においては、シナリオとモーションの順番を同じにしたが、第2実施形態のように順番を異ならせても良い。すなわち、第1実施形態では、シナリオもモーションも「左図柄」→「右図柄」→「中図柄」の順としたが、例えば、シナリオを「左図柄」→「右図柄」→「中図柄」の順として、モーションを「中図柄」→「左図柄」→「右図柄」の順や「右図柄」→「中図柄」→「左図柄」の順などとしても良い。
また、第2実施形態においては、シナリオとモーションの順番を異ならせたが、第1実施形態のように順番を同じにしても良い。すなわち、第2実施形態では、シナリオを「左図柄」→「右図柄」→「中図柄」の順として、モーションを「中図柄」→「左図柄」→「右図柄」の順としたが、例えば、シナリオもモーションも「左図柄」→「右図柄」→「中図柄」の順としても良い。
そして、本実施形態において、モーション2(中図柄キャラクタ部)用アドレスおよびモーション6(中図柄数字部)用アドレスを格納するアドレス領域、すなわちモーション管理領域2およびモーション管理領域6のアドレス領域は、同一のシナリオ(中図柄用シナリオ)によって同時に使用される。ただし、中図柄が数字部Z1のみで構成される場合には、モーション管理領域6のみが使用される。
また、モーション3(左図柄キャラクタ部)用アドレスおよびモーション7(左図柄数字部)用アドレスを格納するアドレス領域、すなわちモーション管理領域3およびモーション管理領域7のアドレス領域は、同一のシナリオ(左図柄用シナリオ)によって同時に使用される。ただし、左図柄が数字部Z1のみで構成される場合には、モーション管理領域7のみが使用される。
また、モーション4(右図柄キャラクタ部)用アドレスおよびモーション8(右図柄数字部)用アドレスを格納するアドレス領域、すなわちモーション管理領域4およびモーション管理領域8のアドレス領域は、同一のシナリオ(右図柄用シナリオ)によって同時に使用される。ただし、右図柄が数字部Z1のみで構成される場合には、モーション管理領域8のみが使用される。
また、モーション1(背景予告)用アドレス、モーション5(図柄間予告)用アドレス、モーション9(前面予告1)用アドレス、モーション10(前面予告2)用アドレス、およびモーション12(最前面予告)用アドレスを格納するアドレス領域、すなわちモーション管理領域1、モーション管理領域5、モーション管理領域9、モーション管理領域10、およびモーション管理領域12のアドレス領域は、予告1用シナリオまたは予告2用シナリオによって使用される。モーション管理領域1,5,9,10,12の全部が使用される場合もあるし、一部のみが使用される場合もあり、予告1用シナリオおよび予告2用シナリオは、予告演出の内容に応じて使用するモーション管理領域を使い分けるようになっている。また、本実施形態では、第1実施形態と同様、予告1用シナリオと予告2用シナリオとで、同時に同一のモーション管理領域は使用しないようになっている。
また、本実施形態の場合、表示レイヤには、「背景レイヤ」、「背景予告レイヤ」、「中図柄キャラクタ部レイヤ」、「左図柄キャラクタ部レイヤ」、「右図柄キャラクタ部レイヤ」、「図柄間予告レイヤ」、「中図柄数字部レイヤ」、「左図柄数字部レイヤ」、「右図柄数字部レイヤ」、「前面予告1レイヤ」、「前面予告2レイヤ」、「保留レイヤ」、「最前面予告レイヤ」、および「第4図柄レイヤ」の14種類がある。
また、本実施形態では、第1実施形態と同様、仮想描画空間326aは、図143に示すように、モーション管理領域0用描画領域〜モーション管理領域13用描画領域の14個の描画領域に分かれている。各描画領域は、対応するモーション管理領域の番号順に並んでおり、各描画領域に、矩形画像または指定画像が描画された表示レイヤが記憶される。
そして、演出制御装置300は、演出表示編集処理において、まず、モーション管理領域0についてのステップE1〜E50のループ処理Aを実行し、モーション管理領域0のアドレス領域のデータがNULLでない場合に、矩形画像または指定画像が描画された「背景レイヤ」を、VRAM326の仮想描画空間326aのモーション管理領域0用描画領域に記憶する。
次いで、モーション管理領域1についてのステップE1〜E50のループ処理Aを実行し、モーション管理領域1のアドレス領域のデータがNULLでない場合に、矩形画像または指定画像が描画された「背景予告レイヤ」を、仮想描画空間326aのモーション管理領域1用描画領域に記憶する。
次いで、モーション管理領域2についてのステップE1〜E50のループ処理Aを実行し、モーション管理領域2のアドレス領域のデータがNULLでない場合に、矩形画像または指定画像が描画された「中図柄キャラクタ部レイヤ」を、仮想描画空間326aのモーション管理領域2用描画領域に記憶する。
以下、同様に、モーション管理領域3についてのループ処理Aを実行して「左図柄キャラクタ部レイヤ」を仮想描画空間326aのモーション管理領域3用描画領域に記憶し、次いで、モーション管理領域4についてのループ処理Aを実行して「右図柄キャラクタ部レイヤ」を仮想描画空間326aのモーション管理領域4用描画領域に記憶し、次いで、モーション管理領域5についてのループ処理Aを実行して「図柄間予告レイヤ」を仮想描画空間326aのモーション管理領域5用描画領域に記憶し、次いで、モーション管理領域6についてのループ処理Aを実行して「中図柄数字部レイヤ」を仮想描画空間326aのモーション管理領域6用描画領域に記憶し、次いで、モーション管理領域7についてのループ処理Aを実行して「左図柄数字部レイヤ」を仮想描画空間326aのモーション管理領域7用描画領域に記憶し、次いで、モーション管理領域8についてのループ処理Aを実行して「右図柄数字部レイヤ」を仮想描画空間326aのモーション管理領域8用描画領域に記憶し、次いで、モーション管理領域9についてのループ処理Aを実行して「前面予告1レイヤ」を仮想描画空間326aのモーション管理領域9用描画領域に記憶し、次いで、モーション管理領域10についてのループ処理Aを実行して「前面予告2レイヤ」を仮想描画空間326aのモーション管理領域10用描画領域に記憶し、次いで、モーション管理領域11についてのループ処理Aを実行して「保留レイヤ」を仮想描画空間326aのモーション管理領域11用描画領域に記憶し、次いで、モーション管理領域12についてのループ処理Aを実行して「最前面予告レイヤ」を仮想描画空間326aのモーション管理領域12用描画領域に記憶し、次いで、モーション管理領域13についてのループ処理Aを実行して「第4図柄レイヤ」を仮想描画空間326aのモーション管理領域13用描画領域に記憶して、演出表示編集処理を終了する。
そして、本実施形態では、第1実施形態と同様、モーション管理領域Xのアドレス領域のデータがNULLである場合には、対応する描画領域に表示レイヤが記憶されないため、当該描画領域は空白のままとなる。具体的には、例えば、モーション管理領域11のアドレス領域のデータがNULLである場合には、VRAM326の仮想描画空間326aのモーション管理領域11用描画領域に表示レイヤ(本実施形態の場合、「保留レイヤ」)が記憶されないため、モーション管理領域11用描画領域は空白のままとなる。なお、空白でない描画領域が連続するように表示レイヤを順次記憶していく(すなわち、表示レイヤを前に詰めながら記憶していく)ことも可能であるが、その場合、1つの表示画面41aを構成する表示レイヤの数に応じて背景レイヤ以外の表示レイヤを記憶する描画領域が変わるため、これらの表示レイヤを仮想描画空間326aに記憶する度に、当該表示レイヤを記憶する描画領域(すなわち、空白の描画領域のうちで最も前(先頭)側にある描画領域)を探索する必要があり、その分処理が煩雑になる。その一方で、本実施形態のように、演出内容(すなわち、1つの表示画面41aを構成する表示レイヤの数)にかかわらず各表示レイヤを予め定められた描画領域に記憶するよう構成することで、表示レイヤを仮想描画空間326aに記憶する度に当該表示レイヤを記憶する描画領域をいちいち探索する必要がなくなるため、処理負担を軽減することができる。
各描画領域に記憶された表示レイヤは、例えば図144(b)に示すように、描画領域の並び順に、画面奥側(下層側)から画面手前側(上層側)に向かって順次重ねられて、例えば図144(a)に示すように、1つの表示画面41aが作成される。具体的には、例えば14個の描画領域の全てが埋まっている場合、本実施形態においては、14個の描画領域のうちの先頭に位置するモーション管理領域1用描画領域に記憶されている「背景レイヤ」が最も画面奥側(最下層)に配置され、14個の描画領域のうちの最後尾に位置するモーション管理領域13用描画領域に記憶されている「第4図柄レイヤ」が最も画面手前側(最上層)に配置される。
具体的には、図144(a)に示す表示画面41aは、図144(b)に示すように、「背景レイヤ」と「キャラクタ部レイヤ」と「数字部レイヤ」と「前面予告1レイヤ」と「保留レイヤ」と「第4図柄レイヤ」が順次重ねられて作成された1つの表示画面である。すなわち、VRAM326の仮想描画空間326aに「背景レイヤ」と「キャラクタ部レイヤ」と「数字部レイヤ」と「前面予告1レイヤ」と「保留レイヤ」と「第4図柄レイヤ」が記憶されて、「背景予告レイヤ」と「図柄間予告レイヤ」と「前面予告2レイヤ」と「最前面予告レイヤ」が記憶されずに作成された1つの表示画面である。
数字部レイヤとキャラクタ部レイヤとの間に配置される図柄間予告レイヤに描画する予告キャラクタYは、図141(b)に示すような文字画像に限られず、適宜変更可能であり、例えば、図145(b)に示すようなエフェクト画像であっても良いし、図146(a)〜(c)や図147(a),(b)や図148(b)に示すようなキャラクタ画像であっても良い。
図145は、数字部レイヤおよび図柄間予告レイヤを含む複数の表示レイヤを積層することによって作成された表示画面41aの一例を示す図であって、予告キャラクタYが瞬間的に出現する演出の際に表示される表示画面を示す図である。図145に示す例において、予告キャラクタYは、稲妻を模したエフェクト画像である。
また、図146は、数字部レイヤおよび図柄間予告レイヤを含む複数の表示レイヤを積層することによって作成された表示画面41aの一例を示す図であって、予告キャラクタYが飾り図柄Zとともにスクロールする演出の際に表示される表示画面を示す図である。図146に示す例において、予告キャラクタYは、剣を模したキャラクタ画像である。図146に示す例によれば、例えば、飾り図柄Zとともにスクロールする武器(予告キャラクタY)の種類によって、期待度を示唆することができる。
また、図147は、数字部レイヤおよび図柄間予告レイヤを含む複数の表示レイヤを積層することによって作成された表示画面41aの一例を示す図であって、予告キャラクタYが見え隠れする演出の際に表示される表示画面を示す図である。図147に示す例において、予告キャラクタYは、太陽を模したキャラクタ画像である。図147に示す例では、予告キャラクタYの位置(数字部Z1に対する相対的な位置)を変化させることによって、具体的には、図柄間予告レイヤ上で予告キャラクタYを、全部が左図柄の数字部Z1と前後に重なる位置と、少なくとも一部が左図柄の数字部Z1と前後に重ならない位置と、の間で移動させることによって、予告キャラクタYが見え隠れする演出を実現している。なお、図147(a)において、予告キャラクタYは、全部が左図柄の数字部Z1と前後に重なる位置にあり、全部が当該数字部Z1で隠れて見えない(すなわち、全部が当該数字部Z1によって非表示状態とされている)ため、破線で示してある。
また、図148も、数字部レイヤおよび図柄間予告レイヤを含む複数の表示レイヤを積層することによって作成された表示画面41aの一例を示す図であって、予告キャラクタYが見え隠れする演出の際に表示される表示画面を示す図である。図148に示す例において、予告キャラクタYは、笑顔を模したキャラクタ画像である。図148に示す例では、数字部Z1の大きさを変化させることによって、予告キャラクタYが見え隠れする演出を実現している。図148に示す例によれば、例えば、予告キャラクタYの表情によって、期待度を示唆することができる。
具体的には、図148に示す例では、図示省略するが、表示画面41aの中央部において、背景予告レイヤ上に描画された画像(動画像)によるムービー演出が実行されている。また、飾り図柄Zは、数字部Z1のみで構成されており、円板が径方向に沿った軸を中心に軸回転するような変動表示態様で変動表示されている。そのため、円板の表面(数字が記載された面)だけでなく裏面も視認可能となっている。また、図柄間予告レイヤには、予告キャラクタYとして、全部が左図柄の数字部Z1と前後に重なる左キャラクタと、全部が中図柄の数字部Z1と前後に重なる中キャラクタと、全部が右図柄の数字部Z1と前後に重なる右キャラクタとが描画されている。
例えば、図148(a)に示すように、リーチが発生すると、リーチ形成図柄(この例では左図柄と右図柄)は、軸回転して当該図柄の裏面が視認可能となる期間、大きさが通常サイズから0に変更されて、見かけ上、消えるようになっている。そのため、図148(b)に示すように、リーチ形成図柄の裏面が視認可能となる期間では、リーチ形成図柄に対応する予告キャラクタY(この例では左キャラクタと右キャラクタ)の全部が視認できるようになり、図148(a),(c)に示すように、リーチ形成図柄の裏面が視認不可能となる期間では、リーチ形成図柄に対応する予告キャラクタYが視認できないようになる。
ここで、本実施形態においては、所定条件が成立する場合に、図柄間予告レイヤを使用することによって、数字部Z1を予告キャラクタYよりも優先して表示することが可能である。すなわち、所定条件が成立する場合に、図柄間予告レイヤを使用することによって、数字部Z1よりも表示の優先順位が低く、キャラクタ部Z2よりも表示の優先順位が高い予告キャラクタYを出現させることが可能である。
具体的には、本実施形態では、リーチ演出中、昇格演出等のPB演出中、仮停止表示演出中、および時短(普電サポート)演出中のうちの何れかである場合を、所定条件が成立する場合とする。
すなわち、本実施形態において、モーション5(図柄間予告)用アドレスを格納するアドレス領域、すなわちモーション管理領域5のアドレス領域は、“リーチ演出時”の予告1用シナリオまたは予告2用シナリオによって使用される。このように構成することによって、リーチ発生中やSPリーチ発展時などには、数字部Z1が予告キャラクタYよりも優先して表示されるため、予告キャラクタYの出現によってリーチ演出による演出効果が低下してしまうことを防止することができる。
また、モーション管理領域5のアドレス領域は、“PB演出時”の予告1用シナリオまたは予告2用シナリオによって使用される。このように構成することによって、昇格演出等のPB演出において出現するPB(プッシュボタン)を模したキャラクタ画像を予告キャラクタYとした場合は、数字部Z1がPBを模したキャラクタ画像よりも優先して表示されるため、PB演出によって図柄の変動演出による演出効果が低下してしまうことを防止することができる。
また、モーション管理領域5のアドレス領域は、“仮停止表示演出時”の予告1用シナリオまたは予告2用シナリオによって使用される。このように構成することによって、飾り図柄Zが仮停止表示(例えば、定位置で揺動表示(図147参照))されているときには、数字部Z1が予告キャラクタYよりも優先して表示されるため、予告キャラクタYの出現によって、仮停止表示演出の演出効果が低下してしまうことを防止することができる。
また、モーション管理領域5のアドレス領域は、“時短演出時”の予告1用シナリオまたは予告2用シナリオによって使用される。時短中は変動時間が短く、予告キャラクタYの出現中に遊技結果が表示される可能性が高くなるが、このように構成することによって、時短中には、数字部Z1が予告キャラクタYよりも優先して表示されるため、予告キャラクタYによって遊技結果(停止結果態様)が隠れてしまうことを防止することができる。
なお、本実施形態では、リーチ演出中、昇格演出等のPB演出中、仮停止表示演出中、および時短演出中のうちの何れかである場合を、所定条件が成立する場合として、その場合に図柄間予告レイヤを使用するよう構成したが、所定条件が成立する場合は、これらに限定されるものではなく、適宜変更可能である。所定条件が成立する場合は、例えば、ステージチェンジ演出中である場合、背景チェンジ演出中である場合、飾り図柄Zが数字部Z1のみで構成される場合などであっても良い。
飾り図柄Zが数字部Z1とキャラクタ部Z2とで構成されている場合であって、数字部Z1の種類とキャラクタ部Z2の種類とが対応付けられている場合には、当該機種に慣れている遊技者であれば、キャラクタ部Z2によって数字部Z1(数字部Z1に示された数字)を推定することができるため、予告キャラクタYで数字部Z1が隠れてもキャラクタ部Z2の一部(すなわち、その種類を特定できる部分)が少なくとも隠れていなければ、飾り特図変動表示ゲームの状態や停止結果態様などの把握は可能である。しかし、SPリーチ発展時や時短中などには、飾り図柄Zが表示画面41aの隅に表示されることがあり、その際、飾り図柄Zは、表示画面41aの中央部に表示されているとき(図145〜図148参照)よりも縮小して表示されるので、数字部Z1の視認性を確保するために、飾り図柄Zを数字部Z1のみで構成する場合が多い。このような場合、すなわち飾り図柄Zが数字部Z1のみで構成される場合には、当該機種に慣れている遊技者であっても、キャラクタ部Z2によって数字部Z1を推定することができないため、図柄間予告レイヤの使用が効果的となる。
その観点から言えば、例えば、数字部Z1の種類とキャラクタ部Z2の種類とが対応付けられている場合であっても、当該数字部Z1と当該キャラクタ部Z2とが離間して表示されている場合には、キャラクタ部Z2によって数字部Z1を推定することができない。したがって、飾り図柄Zを構成する数字部Z1とキャラクタ部Z2とを離間して表示する演出中である場合を、所定条件が成立する場合として、その場合に図柄間予告レイヤを使用するよう構成しても良い。
また、本実施形態においては、数字部Z1よりも表示の優先順位が低い予告キャラクタYが出現した際に、飾り図柄Zの変動表示態様を変化させる演出を行うことが可能である。
具体的には、例えば図149(a)に示すように、飾り図柄Zを横スクロールさせる変動表示態様で変動表示している最中に、予告キャラクタYが出現し、当該予告キャラクタYよりも数字部Z1が優先して表示される際には、飾り図柄Zを、例えば図149(b)や図149(c)に示すように、当該予告キャラクタYが出現する前の変動表示態様(常態の変動表示態様)と異なる変動表示態様で変動表示させる演出を行うことが可能である。このように構成することによって、予告キャラクタYが出現するだけでなく、飾り図柄Zの変動表示態様が変化するため、興趣を高めることができる。
なお、常態の変動表示態様と異なる変動表示態様として、図149(b)には飾り図柄Zを縦スクロールさせる変動表示態様を例示し、図149(c)には飾り図柄Zを軸回転させる変動表示態様を例示したが、常態の変動表示態様と異なる変動表示態様は、これらに限定されるものではなく、適宜変更可能であり、例えば、飾り図柄Zを斜めスクロールさせる変動表示態様であっても良い。
また、常態の変動表示態様は、飾り図柄Zを横スクロールさせる変動表示態様に限定されるものではなく、適宜変更可能であり、例えば、飾り図柄Zを縦スクロールさせる変動表示態様であっても良いし、飾り図柄Zを斜めスクロール(右上から左下へと移動、あるいは、左上から右下へと移動)させる変動表示態様であっても良いし、飾り図柄Zを軸回転させる変動表示態様であっても良い。また、常態の変動表示態様と異なる変動変動表示態様は、常態の変動表示態様が横スクロール以外であれば、横スクロールであっても良い。
以上説明した第2実施形態の遊技機10によれば、複数の識別情報を変動表示する変動表示ゲームの結果が所定結果となった場合に、遊技者に有利な特別遊技を実行可能な遊技機において、変動表示ゲーム(飾り特図変動表示ゲーム)を演出表示装置(表示装置41)に表示する演出制御手段(演出制御装置300)を備え、演出制御手段は、所定のタイミングで所定の演出画像(本実施形態の場合、予告キャラクタY)を演出表示装置に表示可能であり、所定の演出画像は、識別情報(本実施形態の場合、数字部Z1)よりも表示の優先順位が低く、当該識別情報と表示位置が一致する一致部分が当該識別情報によって隠される。
したがって、識別情報(数字部Z1)が、所定の演出画像(予告キャラクタY)よりも優先して表示されるため、所定の演出画像が出現しても、識別情報の視認が可能となり、変動表示ゲーム(飾り特図変動表示ゲーム)の状態や停止結果態様などの把握が困難にならない。
ここで、所定の演出画像は、予告キャラクタY等の所定のタイミングで表示される画像であり、所定の演出画像には、背景画像等の常時表示されている画像は含まれない。
また、所定の演出画像のうちの識別情報と表示位置が一致する一致部分は、当該所定の演出画像の一部であっても良いし全部であっても良い。
また、以上説明した第2実施形態の遊技機10によれば、演出制御手段(演出制御装置300)は、所定の演出画像(本実施形態の場合、予告キャラクタY)の表示に対応して識別情報(本実施形態の場合、少なくとも数字部Z1)の変動表示態様を変更可能であるよう構成することが可能である(図149参照)。
このように構成することによって、所定の演出画像(予告キャラクタY)が出現するだけでなく、識別情報(数字部Z1(飾り図柄Z))の変動表示態様が変化するため、興趣を高めることができる。
また、以上説明した第2実施形態の遊技機10によれば、所定の演出画像(本実施形態の場合、予告キャラクタY)には、識別情報(本実施形態の場合、数字部Z1)よりも表示の優先順位が低く、当該識別情報と表示位置が一致する一致部分が当該識別情報によって隠される第1演出画像(図柄間予告レイヤに描画された予告キャラクタY)と、識別情報よりも表示の優先順位が高く、当該識別情報と表示位置が一致する一致部分によって当該識別情報のうちの当該一致部分に対応する部分を隠す第2演出画像(前面予告1レイヤ、前面予告2レイヤ、または最前面予告レイヤに描画された予告キャラクタY)と、が含まれるよう構成することが可能である。
このように構成することによって、識別情報(数字部Z1)よりも優先して表示されない所定の演出画像と、識別情報よりも優先して表示される所定の演出画像と、の一方が出現する演出も両方が出現する演出も実行可能となるため、所定の演出画像(予告キャラクタY)による演出効果を高めることができる。
また、以上説明した第2実施形態の遊技機10によれば、所定の演出画像(本実施形態の場合、予告キャラクタY)は、動画像であるよう構成することが可能である(図146や図147参照)。
このように構成することによって、所定の演出画像(予告キャラクタY)が、識別情報(数字部Z1)とともに変動したり、識別情報(数字部Z1)によって見え隠れしたりするため、興趣を高めることができる。
一方、所定の演出画像が静止画像であっても、識別情報がスクロール表示や軸回転表示などの変動表示態様で変動表示されている場合にも、所定の演出画像(予告キャラクタY)が、識別情報(数字部Z1)によって見え隠れするため、興趣を高めることができる。
また、以上説明した第2実施形態の遊技機10によれば、演出制御手段(演出制御装置300)は、識別情報(本実施形態の場合、数字部Z1)とともに付加情報(本実施形態の場合、キャラクタ部Z2)を演出表示装置(表示装置41)に表示可能であり、付加情報は、識別情報および所定の演出画像(本実施形態の場合、予告キャラクタY)よりも表示の優先順位が低いよう構成することが可能である。すなわち、付加情報は、識別情報や所定の演出画像よりも表示の優先順位が低く、識別情報や所定の演出画像と表示位置が一致する部分が当該識別情報や当該所定の演出画像によって隠されるよう構成することが可能である。
このように構成することによって、識別情報(数字部Z1)および付加情報(キャラクタ部Z2)のうち、所定の演出画像(予告キャラクタY)を隠すのは識別情報だけであり、付加情報は所定の演出画像を隠さないため、所定の演出画像の隠れる部分を必要最小限に抑えることができ、所定の演出画像による演出効果の低下を抑制できる。
以上説明した第2実施形態の遊技機10によれば、複数の識別情報を変動表示する変動表示ゲームの結果が所定結果となった場合に、遊技者に有利な特別遊技を実行可能な遊技機において、変動表示ゲーム(飾り特図変動表示ゲーム)を演出表示装置(表示装置41)に表示する演出制御手段(演出制御装置300)を備え、演出制御手段は、所定のタイミングで所定の演出画像(本実施形態の場合、予告キャラクタY)を演出表示装置に表示可能であり、一の表示レイヤによって、あるいは、積層された複数の表示レイヤによって、演出表示装置に表示する表示画面41aを作成する作成手段(VDP312等)と、作成手段によって作成された表示画面41aを演出表示装置に表示する表示制御手段(信号変換回路313等)と、を備え、作成手段は、識別情報(本実施形態の場合、数字部Z1)を表示するための表示レイヤ(左図柄数字部レイヤ、右図柄数字部レイヤ、中図柄数字部レイヤ)と、所定の演出画像を表示するための表示レイヤ(図柄間予告レイヤ)と、を含む複数の表示レイヤによって所定の表示画面41aを作成可能であり、前記所定の表示画面41aにおいては、所定の演出画像を表示するための表示レイヤが、識別情報を表示するための表示レイヤよりも下層側に位置し、当該所定の演出画像のうちの当該識別情報と表示位置が一致する一致部分が当該識別情報によって隠されている。
したがって、識別情報(数字部Z1)が、所定の演出画像(予告キャラクタY)よりも優先して表示されるため、所定の演出画像が出現しても、識別情報の視認が可能となり、変動表示ゲーム(飾り特図変動表示ゲーム)の状態や停止結果態様などの把握が困難にならない。
また、以上説明した第2実施形態の遊技機10によれば、前記所定の表示画面41aにおいては、識別情報(本実施形態の場合、少なくとも数字部Z1)の変動表示態様が、当該所定の表示画面41a以外の表示画面41a(例えば、図柄間予告レイヤを含まない複数の表示レイヤを積層することによって作成された表示画面)における変動表示態様と異なるよう構成することが可能である。
このように構成することによって、所定の演出画像(予告キャラクタY)が出現するだけでなく、識別情報(数字部Z1(飾り図柄Z))の変動表示態様が変化するため、興趣を高めることができる。
また、以上説明した第2実施形態の遊技機10によれば、所定の演出画像(本実施形態の場合、予告キャラクタY)には、第1演出画像と第2演出画像とが含まれ、作成手段(VDP312等)は、識別情報(本実施形態の場合、数字部Z1)を表示するための表示レイヤ(左図柄数字部レイヤ、右図柄数字部レイヤ、中図柄数字部レイヤ)と、第1演出画像を表示するための表示レイヤ(図柄間予告レイヤ)および第2演出画像を表示するための表示レイヤ(本実施形態の場合、前面予告1レイヤ、前面予告2レイヤ、または最前面予告レイヤ)の少なくとも一方と、を含む複数の表示レイヤによって所定の表示画面41aを作成可能であり、前記所定の表示画面41aにおいては、第1演出画像を表示するための表示レイヤが、識別情報を表示するための表示レイヤよりも下層側(画面奥側)に位置し、当該第1演出画像のうちの当該識別情報と表示位置が一致する一致部分が当該識別情報によって隠されており、第2演出画像を表示するための表示レイヤが、識別情報を表示するための表示レイヤよりも上層側(画面手前側)に位置し、当該第2演出画像のうちの当該識別情報と表示位置が一致する一致部分によって当該識別情報のうちの当該一致部分に対応する部分を隠しているよう構成することが可能である。
このように構成することによって、識別情報(数字部Z1)よりも優先して表示されない所定の演出画像と、識別情報よりも優先して表示される所定の演出画像と、の一方が出現する演出も両方が出現する演出も実行可能となるため、所定の演出画像(予告キャラクタY)による演出効果を高めることができる。
また、以上説明した第2実施形態の遊技機10によれば、演出制御手段(演出制御装置300)は、識別情報(本実施形態の場合、数字部Z1)とともに付加情報(本実施形態の場合、キャラクタ部Z2)を演出表示装置(表示装置41)に表示可能であり、前記所定の表示画面41aにおいては、付加情報を表示するための表示レイヤ(左図柄キャラクタ部レイヤ、右図柄キャラクタ部レイヤ、中図柄キャラクタ部レイヤ)が、識別情報を表示するための表示レイヤ(左図柄数字部レイヤ、右図柄数字部レイヤ、中図柄数字部レイヤ)および所定の演出画像を表示するための表示レイヤ(図柄間予告レイヤ)よりも下層側(画面奥側)に位置するよう構成することが可能である。
このように構成することによって、識別情報(数字部Z1)および付加情報(キャラクタ部Z2)のうち、所定の演出画像(予告キャラクタY)を隠すのは識別情報だけであり、付加情報は所定の演出画像を隠さないため、所定の演出画像の隠れる部分を必要最小限に抑えることができ、所定の演出画像による演出効果の低下を抑制できる。
以上説明した第2実施形態の遊技機10によれば、複数の識別情報を変動表示する変動表示ゲームの結果が所定結果となった場合に、遊技者に有利な特別遊技を実行可能な遊技機において、変動表示ゲーム(飾り特図変動表示ゲーム)を演出表示装置(表示装置41)に表示する演出制御手段(演出制御装置300)を備え、演出制御手段は、所定のタイミングで所定の演出画像(本実施形態の場合、予告キャラクタY)を演出表示装置に表示可能であり、一の表示レイヤによって、あるいは、積層された複数の表示レイヤによって、演出表示装置に表示する表示画面41aを作成する作成手段(VDP312等)と、作成手段によって作成された表示画面41aを演出表示装置に表示する表示制御手段(信号変換回路313等)と、表示画面41aの作成に用いる表示レイヤの情報を記憶する記憶手段(VRAM326の仮想描画空間326a)と、を備え、記憶手段には、識別情報(本実施形態の場合、数字部Z1)を表示するための表示レイヤの情報を記憶する識別情報レイヤ記憶領域と、所定の演出画像を表示するための表示レイヤの情報を記憶する第1演出画像レイヤ記憶領域および第2演出画像レイヤ記憶領域と、を少なくとも含む複数のレイヤ記憶領域が、当該記憶手段の先頭側から順に並んで設けられ、レイヤ記憶領域に記憶される表示レイヤの情報は、当該レイヤ記憶領域の位置が記憶手段の先頭に近いほど、複数の表示レイヤの積層時に下層側(画面奥側)に配置され、識別情報レイヤ記憶領域は、第1演出画像レイヤ記憶領域よりも記憶手段の後尾側に位置するとともに、第2演出画像レイヤ記憶領域よりも記憶手段の先頭側に位置するため、所定の演出画像を表示するための表示レイヤの情報が第1演出画像レイヤ記憶領域に記憶された場合には、当該所定の演出画像のうちの識別情報と表示位置が一致する一致部分が当該識別情報によって隠され、所定の演出画像を表示するための表示レイヤの情報が第2演出画像レイヤ記憶領域に記憶された場合には、当該所定の演出画像のうちの識別情報と表示位置が一致する一致部分によって当該識別情報のうちの当該一致部分に対応する部分を隠すように表示され、所定の演出画像を表示するための表示レイヤの情報は、所定条件が成立する場合(例えば、リーチ演出中、昇格演出等のPB演出中、仮停止表示演出中、および時短演出中のうちの何れかである場合)には第1演出画像レイヤ記憶領域に記憶され、所定条件が成立しない場合には第2演出画像レイヤ記憶領域に記憶される。
本実施形態の場合、識別情報レイヤ記憶領域は、中図柄数字部レイヤが記憶されるモーション管理領域6用描画領域、左図柄数字部レイヤが記憶されるモーション管理領域7用描画領域、および右図柄数字部レイヤが記憶されるモーション管理領域8用描画領域である。
また、第1演出画像レイヤ記憶領域は、図柄間予告レイヤが記憶されるモーション管理領域5用描画領域である。
また、第2演出画像レイア記憶領域は、前面予告1レイヤが記憶されるモーション管理領域9用描画領域、前面予告2レイヤが記憶されるモーション管理領域10用描画領域、最前面予告レイヤが記憶されるモーション管理領域12用描画領域である。
したがって、識別情報(数字部Z1)が、所定の演出画像(予告キャラクタY)よりも優先して表示されるため、所定の演出画像が出現しても、識別情報の視認が可能となり、変動表示ゲーム(飾り特図変動表示ゲーム)の状態や停止結果態様などの把握が困難にならない。
また、演出内容(すなわち、1つの表示画面41aを構成する表示レイヤの数)にかかわらず、各表示レイヤの情報が予め定められたレイヤ記憶領域(描画領域)に記憶されるため、表示レイヤの情報を記憶手段(VRAM326の仮想描画空間326a)に記憶する度に当該表示レイヤの情報を記憶するレイヤ記憶領域をいちいち探索する必要がなくなり、処理負担を軽減することができる。
また、以上説明した第2実施形態の遊技機10によれば、演出制御手段(演出制御装置300)は、識別情報(本実施形態の場合、数字部Z1)とともに付加情報(本実施形態の場合、キャラクタ部Z2)を演出表示装置(表示装置41)に表示可能であり、複数のレイヤ記憶領域には、付加情報を表示するための表示レイヤの情報を記憶する付加情報レイヤ記憶領域が含まれ、付加情報レイヤ記憶領域は、識別情報レイヤ記憶領域、第1演出画像レイヤ記憶領域、および第2演出画像レイヤ記憶領域よりも記憶手段(VRAM326の仮想描画空間326a)の先頭側に位置するよう構成することが可能である。
本実施形態の場合、付加情報レイヤ記憶領域は、中図柄キャラクタ部レイヤが記憶されるモーション管理領域2用描画領域、左図柄キャラクタ部レイヤが記憶されるモーション管理領域3用描画領域、および右図柄キャラクタ部レイヤが記憶されるモーション管理領域4用描画領域である。
このように構成することによって、識別情報(数字部Z1)および付加情報(キャラクタ部Z2)のうち、所定の演出画像(予告キャラクタY)を隠すのは識別情報だけであり、付加情報は所定の演出画像を隠さないため、所定の演出画像の隠れる部分を必要最小限に抑えることができ、所定の演出画像による演出効果の低下を抑制できる。
なお、本実施形態では、飾り図柄Zのうち、数字部Z1を識別情報としてキャラクタ部Z2を付加情報としたが、これに限ることはなく、例えば、キャラクタ部Z2を第1キャラクタ部と第2キャラクタ部とに分けて、数字部Z1および第1キャラクタ部を識別情報とするとともに、第2キャラクタ部を付加情報として、数字部Z1および第1キャラクタ部の表示の優先順位を、所定の演出画像(予告キャラクタY)よりも高くし、第2キャラクタ部の表示の優先順位を、所定の演出画像(予告キャラクタY)よりも低くしても良い。
また、識別情報は、表示画面41aの隅に小さく(表示画面41aの中央部に表示されているときよりも小さく)表示することも可能である。
また、本実施形態では、左図柄、中図柄、および右図柄の数字部レイヤと、左図柄、中図柄、および右図柄のキャラクタ部レイヤと、の間に図柄間予告レイヤを配置するよう構成したが、これに限ることはなく、例えば、図柄間予告レイヤとして、左図柄の数字部レイヤとキャラクタ部レイヤとの間に配置される左図柄間予告レイヤと、中図柄の数字部レイヤとキャラクタ部レイヤとの間に配置される中図柄間予告レイヤと、右図柄の数字部レイヤとキャラクタ部レイヤとの間に配置される右図柄間予告レイヤとを設けても良い。
すなわち、本実施形態では、複数の表示レイヤの積層時に、キャラクタ部レイヤ(中図柄キャラクタ部レイヤ→左図柄数字部レイヤ→右図柄数字部レイヤ)→図柄間予告レイヤ→数字部レイヤ(中図柄数字部レイヤ→左図柄数字部レイヤ→右図柄数字部レイヤ)の順で配置したが、これに限ることはなく、例えば、中図柄キャラクタ部レイヤ→中図柄間予告レイヤ→中図柄数字部レイヤ→左図柄キャラクタ部レイヤ→左図柄間予告レイヤ→左図柄数字部レイヤ→右図柄キャラクタ部レイヤ→右図柄間予告レイヤ→右図柄数字部レイヤの順で配置するようにしても良い。
また、本発明の遊技機は、遊技機として、前記実施の形態に示されるようなパチンコ遊技機に限られるものではなく、例えば、その他のパチンコ遊技機、アレンジボール遊技機、雀球遊技機などの遊技球を使用する全ての遊技機に適用可能である。また、本発明をスロットマシンに適用することも可能である。特にスクリーンショット機能や客待ちデモ演出の設定機能を適用可能である。このスロットマシンとしてはメダルを使用するスロットマシンに限られるものではなく、例えば、遊技球を使用するスロットマシンなどの全てのスロットマシンが含まれる。また、上述の各変形例の構成は適宜組み合わせて適用することが可能である。
また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。