<第1実施形態>
以下、本発明に係る遊技機の第1実施形態を、パチンコ遊技機を例にして、図1〜図8を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合は、図示正面から見た場合の上下左右をいうものとする。
<外観構成の説明>
まず、図1及び図2を参照して、本実施形態に係るパチンコ遊技機の外観構成を説明する。
図1に示すように、パチンコ遊技機1は、木製の外枠2の前面に矩形状の前面枠3を開閉可能に取り付け、その前面枠3の裏面に取り付けられている遊技盤収納フレーム(図示せず)内に遊技盤4が装着された構成からなる。遊技盤4は、図2に示す遊技領域40を前面に臨ませた状態で装着され、図1に示すようにこの遊技領域40の前側に透明ガラスを支持したガラス扉枠5が設けられている。なお、上記遊技領域40は、遊技盤4の面上に配設された球誘導レール6(図2参照)で囲まれた領域からなるものである。
また、パチンコ遊技機1は、図1に示すように、ガラス扉枠5の下側に前面操作パネル7が配設され、その前面操作パネル7には上受け皿ユニット8が設けられている。そして、この上受け皿ユニット8には、排出された遊技球を貯留する上受け皿9が一体形成されている。また、この前面操作パネル7には、球貸しボタン11及びプリペイドカード排出ボタン12(カード返却ボタン12)が設けられ、上受け皿9の上皿表面部分には、内蔵ランプ(図示せず)点灯時に押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が設けられている。そして、この上受け皿9には、当該上受け皿9に貯留された遊技球を下方に抜くための球抜きボタン14が設けられている。
一方、前面操作パネル7の右端部側には、発射ユニット(図示せず)を動作させるための発射ハンドル15が設けられ、前面枠3の上部両側面側並びに発射ハンドル15の左隣接位置には、BGM(Background music)あるいは効果音を発するスピーカ16が設けられている。そして、上記前面枠3の周枠には、光の装飾により演出効果を現出するLEDランプ等の装飾ランプが配設されている。
他方、上記遊技盤4の遊技領域40には、図2に示すように、略中央部にLCD(Liquid Crystal Display)等からなる液晶表示装置41が配設されている。この液晶表示装置41は、表示エリアを左、中、右の3つのエリアに分割し、独立して数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示等が可能なものである。そしてこのような液晶表示装置41の周囲には、装飾用の上飾り42a、左飾り42b、右飾り42cが設けられており、この上飾り42a、左飾り42b、右飾り42cの背面側には可動役物装置43が配設されている。
この可動役物装置43は、図2に示すように、遊技の進行に伴い所定の演出動作を行う左上可動役物43aと、左下可動役物43bと、右下可動役物43cと、上可動役物43dと、右可動役物43eと、さらに、左上・左下・右下・上・右可動役物43a〜43eを、夫々、駆動する2相のステッピングモータ等のモータ(図示せず)とで構成されている。この左上可動役物43aは、図2に示すように、略T字形に形成されており、常時は上飾り42aの背面側に配設されている。そして、遊技の進行に伴い所定の演出動作を行う際、上飾り42aの背面側から、図2に示すように右下方向に向って飛び出し、破線位置まで動作することとなる。また、左下可動役物43bは、図2に示すように、略扇形に形成されており、常時は、左飾り42bの背面側に配設されている。そして、遊技の進行に伴い所定の演出動作を行う際、左飾り42bの背面側から、図2に示すように右上方向に向って飛び出し、破線位置まで動作することとなる。また、右下可動役物43cは、図2に示すように、略扇形に形成されており、常時は、右飾り42cの背面側に配設されている。そして、遊技の進行に伴い所定の演出動作を行う際、右飾り42cの背面側から、図2に示すように左上方向に向って飛び出し、破線位置まで動作することとなる。また、上可動役物43dは、図2に示すように、略扇形に形成されており、常時は、上飾り42aの背面側に配設されている。そして、遊技の進行に伴い所定の演出動作を行う際、上飾り42aの背面側から、図2に示すように下方向に向って飛び出し、破線位置まで動作することとなる。また、右可動役物43eは、図2に示すように、略矩形状に形成されており、常時は、実線位置に示すように、右飾り42cの手前側に配設されている。そして、遊技の進行に伴い所定の演出動作を行う際、左下方向に向って傾くように動作し、破線位置まで動作することとなる。なお、左上・左下・右下・上・右可動役物43a〜43eが同時に動作したとしても、各可動役物が接触しないように、左上可動役物43aは、上可動役物43dよりも手前側に配設され、右可動役物43eは、右下可動役物43c・上可動役物43dよりも手前側に配設されている。また、これら左上・左下・右下・上・右可動役物43a〜43eには、光の装飾により演出効果を現出するLEDランプ等の装飾ランプが配設されている。
一方、液晶表示装置41の真下には、特別図柄始動口44が配設され、その内部には入賞球を検出する特別図柄始動口スイッチ44a(図3参照)が設けられている。そして、この特別図柄始動口44の右側には、大入賞口45が配設され、その内部には入賞球を検出する大入賞口スイッチ45a(図3参照)が設けられている。
さらに、上記液晶表示装置41の右上部(右飾り42c近傍)にはゲートからなる普通図柄始動口46が配設され、その内部には、遊技球の通過を検出する普通図柄始動口スイッチ46a(図3参照)が設けられている。また、上記大入賞口45の右側及び上記特別図柄始動口44の左側には、一般入賞口47が夫々配設され(図示では、右側に1つ、左側に3つ)、その内部には、夫々、遊技球の通過を検出する一般入賞口スイッチ47a(図3参照)が設けられている。
そして、上記遊技盤4の遊技領域40の右下周縁部には、7セグメントが3個並べて構成されており、そのうち2個の7セグメントが特別図柄表示装置48であり、他の7セグメントは保留球数等を表示するものである。この特別図柄表示装置48の左側には、2個のLEDからなる普通図柄表示装置49が設けられている。なお、上記遊技盤4の遊技領域40には、複数の遊技釘(図示せず)が配設され、遊技球の落下方向変換部材としての風車50が配設されている。
<制御装置の説明>
次に、上記のような外観構成からなるパチンコ遊技機内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図3を用いて説明する。この制御装置は、図3に示すように、遊技動作全般の制御を司る主制御基板60と、その主制御基板60からの制御コマンドに基づいて遊技球を払出す払出制御基板70と、画像と光と音についての制御を行うサブ制御基板80とで主に構成されている。なお、サブ制御基板80は、図3に示すように、演出制御基板90と、装飾ランプ基板100と、液晶制御基板120とで構成されている。
主制御基板60は、主制御CPU600と、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ROM601と、作業領域やバッファメモリ等として機能する主制御RAM602とで構成されたワンチップマイコンを搭載している。そして、このように構成される主制御基板60には、払出モータMを制御して遊技球を払出す払出制御基板70が接続されている。そしてさらには、特別図柄始動口44への入賞を検出する特別図柄始動口スイッチ44aと、普通図柄始動口46の通過を検出する普通図柄始動口スイッチ46aと、一般入賞口47への入賞を検出する一般入賞口スイッチ47aと、大入賞口45への入賞を検出する大入賞口スイッチ45aとが接続されている。また、主制御基板60には、特別図柄表示装置48と、普通図柄表示装置49とが接続されている。
このように構成される主制御基板60は、特別図柄始動口スイッチ44a又は普通図柄始動口スイッチ46aからの信号を受信すると、遊技者に有利な特別遊技状態を発生させるか(いわゆる「大当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄表示装置48又は普通図柄表示装置49に送信する。これにより、特別図柄表示装置48又は普通図柄表示装置49に抽選結果が表示されることとなる。そしてさらに、主制御基板60は、その決定した情報を含む演出制御コマンドDI_CMDを生成し、演出制御基板90に送信する。なお、主制御基板60が、一般入賞口スイッチ47a、大入賞口スイッチ45aからの信号を受信した場合は、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を含む払出制御コマンドPAY_CMDを払出制御基板70に送信することで、払出制御基板70が遊技者に遊技球を払出すこととなる。
具体的に説明すると、上記払出制御基板70は、上記主制御基板60からの払出制御コマンドPAY_CMDを受信し、その受信した払出制御コマンドPAY_CMDに基づいて払出モータ信号を生成する。そして、その生成した払出モータ信号にて、払出モータMを制御し、遊技者に遊技球を払出す。そしてさらに、払出制御基板70は、遊技球の払出動作を示す賞球計数信号や払出動作の異常に係るステイタス信号を送信し、遊技者の操作に応答して遊技球を発射させる発射制御基板71の動作を開始又は停止させる発射制御信号を送信する処理を行う。
演出制御基板90は、上記主制御基板60からの演出制御コマンドDI_CMDを受けて各種演出を実行制御する演出制御CPU900と、演出制御手順を記述した制御プログラム等が格納されているフラッシュメモリからなる演出制御ROM901と、作業領域やバッファメモリ等として機能する演出制御RAM902とで構成されている。そしてさらに、演出制御基板90は、所望のBGMや効果音を生成する音LSI903と、BGMや効果音等の音データ等が予め格納されている音ROM904とが搭載されている。
一方、このように構成される演出制御基板90には、ランプ演出効果を現出するLEDランプ等の装飾ランプが搭載されている装飾ランプ基板100が接続され、さらに、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が接続され、BGMや効果音等を発するスピーカ16が接続されている。またさらに、演出制御基板90には、遊技の進行に伴い所定の演出動作を行う可動役物装置43が接続されている。そしてさらに、演出制御基板90には、液晶表示装置41を制御する液晶制御基板120が接続されている。なお、言うまでもないが、この装飾ランプ基板100には、左上・左下・右下・上・右可動役物43a〜43eに配設されている装飾ランプも搭載されている。
かくして、このように構成される演出制御基板90は、主制御基板60より送信される大当たり抽選結果(大当たりかハズレの別)に基づく特別図柄変動パターン、現在の遊技状態、作動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドDI_CMDを演出制御CPU900にて受信する。そして、演出制御CPU900は、受信した演出制御コマンドDI_CMDに対応した演出パターンを、演出制御ROM901内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号を演出制御RAM902内に一時的に格納する。
演出制御CPU900は、演出制御RAM902に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI903に送信する。これを受けて音LSI903は、当該制御信号に対応する音データを音ROM904より読み出し、スピーカ16に出力する。これにより、スピーカ16より上記決定された演出パターンに対応したBGMや効果音が発せられることとなる。
また、演出制御CPU900は、演出制御RAM902内に格納しておいた演出パターンを実行指示する制御信号のうち、左上・左下・右下・上・右可動役物43a〜43eに関する制御信号に基づき可動役物装置43のモータ(図示せず)を駆動する。これにより、左上・左下・右下・上・右可動役物43a〜43eは、上記決定された演出パターンに応じた動作をすることとなる。
さらに、演出制御CPU900は、演出制御RAM902に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板100に送信する。これにより、装飾ランプ基板100が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
そして、演出制御CPU900は、演出制御RAM902に格納しておいた演出パターンを実行指示する制御信号のうち、画像に関する液晶制御コマンドLCD_CMDを液晶制御基板120に送信する。これにより、液晶制御基板120が、当該液晶制御コマンドLCD_CMDに基づく画像を表示させるように液晶表示装置41を制御することにより、上記決定された演出パターンに対応した画像が液晶表示装置41に表示されることとなる。なお、液晶制御基板120には演出内容に沿った画像を表示するための種々の画像データが記憶されており、さらに、演出出力全般の制御を担うVDP(Video Display Processor)が搭載されている。
ところで、上記説明した各基板への電源供給は、図3に示す電源基板130より供給されている。なお、図示では、電源供給ルートは、省略している。
<可動役物装置の制御に関する説明>
ここで、本発明の特徴部分に係る可動役物装置43の制御方法について、図4を参照して説明する。
演出制御ROM901内には、図4に示すように、パターン照合テーブルPAM_TBLが格納されている。このパターン照合テーブルPAM_TBLには、左上可動役物43aの動作を開始させるか否かを示す左上可動役物動作フラグUL_FLGの内容が記憶されている(TB1参照)。この左上可動役物動作フラグUL_FLGは、値が1であれば、左上可動役物43aの動作を開始させることを示し、0であれば、左上可動役物43aの動作を開始させないことを示すものである。
また、パターン照合テーブルPAM_TBLには、左下可動役物43bの動作を開始させるか否かを示す左下可動役物動作フラグLL_FLGの内容が記憶されている(TB2参照)。この左下可動役物動作フラグLL_FLGは、値が1であれば、左下可動役物43bの動作を開始させることを示し、0であれば、左下可動役物43bの動作を開始させないことを示すものである。
さらに、パターン照合テーブルPAM_TBLには、右下可動役物43cの動作を開始させるか否かを示す右下可動役物動作フラグLR_FLGの内容が記憶されている(TB3参照)。この右下可動役物動作フラグLR_FLGは、値が1であれば、右下可動役物43cの動作を開始させることを示し、0であれば、右下可動役物43cの動作を開始させないことを示すものである。
またさらに、パターン照合テーブルPAM_TBLには、上可動役物43dの動作を開始させるか否かを示す上可動役物動作フラグU_FLGの内容が記憶されている(TB4参照)。この上可動役物動作フラグU_FLGは、値が1であれば、上可動役物43dの動作を開始させることを示し、0であれば、上可動役物43dの動作を開始させないことを示すものである。
そしてさらに、パターン照合テーブルPAM_TBLには、右可動役物43eの動作を開始させるか否かを示す右可動役物動作フラグR_FLGの内容が記憶されている(TB5参照)。この右可動役物動作フラグR_FLGは、値が1であれば、右可動役物43eの動作を開始させることを示し、0であれば、右可動役物43eの動作を開始させないことを示すものである。
かくして、このような可動役物動作フラグ(左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLG)の内容が記憶されているパターン照合テーブルPAM_TBLは、このような可動役物動作フラグ(左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLG)の内容に基づき、その通り、左上・左下・右下・上・右可動役物43a〜43eを動作させても良いか否かの判定内容が記憶されている(TB6参照)。「OK」がその通り動作させても良く、「NG」がその通り動作させてはいけない内容になっている。
より詳しく説明すると、このパターン照合テーブルPAM_TBLは、可動役物動作フラグ(左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLG)の内容を組み合わせることにより数値に見立て、最上段から最下段に向って(矢印P1参照)「01H」ずつ数値が増加するようにしている。すなわち、最上段では、数値の「H00」に見立て、左上可動役物動作フラグUL_FLGの値を0、左下可動役物動作フラグLL_FLGの値を0、右下可動役物動作フラグLR_FLGの値を0、上可動役物動作フラグU_FLGの値を0、右可動役物動作フラグR_FLGの値を0とし、その際の動作判定は「OK」としている。そして、次の段では、数値の「H01」に見立て、左上可動役物動作フラグUL_FLGの値を0、左下可動役物動作フラグLL_FLGの値を0、右下可動役物動作フラグLR_FLGの値を0、上可動役物動作フラグU_FLGの値を0、右可動役物動作フラグR_FLGの値を1とし、その際の動作判定は「OK」としている。そして、次の段では、数値の「H02」に見立て、左上可動役物動作フラグUL_FLGの値を0、左下可動役物動作フラグLL_FLGの値を0、右下可動役物動作フラグLR_FLGの値を0、上可動役物動作フラグU_FLGの値を1、右可動役物動作フラグR_FLGの値を0とし、その際の動作判定は「OK」としている。そして、次の段では、数値の「H03」に見立て、左上可動役物動作フラグUL_FLGの値を0、左下可動役物動作フラグLL_FLGの値を0、右下可動役物動作フラグLR_FLGの値を0、上可動役物動作フラグU_FLGの値を1、右可動役物動作フラグR_FLGの値を1とし、その際の動作判定は「OK」としている。そして、次の段では、数値の「H04」に見立て、左上可動役物動作フラグUL_FLGの値を0、左下可動役物動作フラグLL_FLGの値を0、右下可動役物動作フラグLR_FLGの値を1、上可動役物動作フラグU_FLGの値を0、右可動役物動作フラグR_FLGの値を0とし、その際の動作判定は「OK」としている。というように、下の段に行くにつれて数値を「H01」ずつ増加させていくように、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値を変化させている。そして、最上段から最下段に向って、それぞれの段に記憶されている行方向の左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値に基づき動作を開始させても良いか否かの動作判定の内容が記憶されている(TB6参照)。なお、この「OK」か「NG」かの判断基準は、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容に基づき左上・左下・右下・上・右可動役物43a〜43eの動作を開始させても電流限界値を超えない場合に、「OK」と判定するようにしており、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容に基づき左上・左下・右下・上・右可動役物43a〜43eの動作を開始させると電流限界値を超える場合に、「NG」と判定し、予めその判定内容を記憶させている。
しかして、上記説明したように、パターン照合テーブルPAM_TBLには、左上可動役物43aの動作を開始させるか否かを示す左上可動役物動作フラグUL_FLGの内容が記憶され(TB1参照)、左下可動役物43bの動作を開始させるか否かを示す左下可動役物動作フラグLL_FLGの内容が記憶され(TB2参照)、右下可動役物43cの動作を開始させるか否かを示す右下可動役物動作フラグLR_FLGの内容が記憶され(TB3参照)、上可動役物43dの動作を開始させるか否かを示す上可動役物動作フラグU_FLGの内容が記憶され(TB4参照)、右可動役物43eの動作を開始させるか否かを示す右可動役物動作フラグR_FLGの内容が記憶され(TB5参照)ている。そして、最上段から最下段に向って、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値を組み合わせることにより数値に見立て、最上段から最下段に向って(矢印P1参照)「01H」ずつ数値を増加させるように左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値を変化させている。そして、最上段から最下段に向って、それぞれの段に記憶されている行方向の左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値に基づき動作を開始させて良いか否かの動作判定の内容が記憶されている(TB6参照)。
かくして、演出制御CPU900は、演出制御ROM901内に予め格納しておいた多数の演出パターンの中から抽選により決定した演出パターンにて、左上・左下・右下・上・右可動役物43a〜43eに関する動作内容が決定された際、その動作内容にて、左上・左下・右下・上・右可動役物43a〜43eの動作を開始させるべきか否かを、パターン照合テーブルPAM_TBLの内容と照合して判定する。そして、照合の結果、動作させても問題なければ、演出制御ROM901内に予め格納しておいた多数の演出パターンの中から抽選により決定した演出パターンにて、左上・左下・右下・上・右可動役物43a〜43eに関する動作を開始させ、動作に問題があれば、左上・左下・右下・上・右可動役物43a〜43eの動作を全て停止させるようにする。このようにすれば、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
すなわち、電流限界値を超えてしまうと、電源基板130のヒューズ等が破損し、もって、不具合の原因となる可能性があるという問題がある。それゆえ、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させる必要がある。そこで、基本的には、電流限界値を超えないようプログラムされているが、ノイズやプログラムのバグ等の不具合により、電流限界値を超えてしまうような左上・左下・右下・上・右可動役物43a〜43eの動作をさせてしまう可能性がある。そこで、本実施形態のように、左上・左下・右下・上・右可動役物43a〜43eを動作させる前に、パターン照合テーブルPAM_TBLの内容と照合して動作判定するようにしておけば、ノイズやプログラムのバグ等の不具合が発生したとしても、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
また、このパターン照合テーブルPAM_TBLは、可動役物動作フラグ(左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLG)の値を組み合わせることにより数値に見立て、その数値に対応する可動役物動作フラグ(左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLG)に基づき左上・左下・右下・上・右可動役物43a〜43eの動作を開始させるか否かの判定内容を記憶している。それゆえ、その記憶されている内容と実際の内容とを照合させるだけであるから、プログラムの判断処理を迅速に行うことができ、もって、プログラムの判断処理を大幅に削減することができる。
<プログラムの説明>
ここで、上記特徴部分に係る演出制御基板90の処理内容(プログラムの概要)について、図5〜図8も参照して具体的に説明する。
まず、パチンコ遊技機1に電源が投入されると、電源基板130(図3参照)から各制御基板に電源が投入された旨の電源投入信号が送られる。そしてその信号を受けて、演出制御CPU900は、図5に示す演出制御メイン処理を行う。
<メイン処理の説明>
図5に示すように、この演出制御メイン処理は、まず、演出制御CPU900が、内部に設けられているレジスタを初期化すると共に、入出力ポートの入出力方向を設定する。そしてさらに、出力方向に設定された出力ポートから送信されるデータがシリアル転送となるように設定する(ステップS1)。
その設定後、演出制御CPU900は、上記主制御基板60(図3参照)から受信する演出制御コマンドDI_CMDを格納する演出制御RAM902内のメモリ領域を初期化する(ステップS2)。そして、演出制御CPU900は、上記主制御基板60からの割込み信号を受信する入力ポートの割込み許可設定処理を行う(ステップS3)。
次いで、演出制御CPU900は、作業領域、スタック領域として使用する演出制御RAM902内のメモリ領域を初期化し(ステップS4)、音LSI903(図3参照)に初期化指令を行う。これにより、音LSI903は、その内部に設けられているレジスタを初期化する(ステップS5)。
次いで、演出制御CPU900は、左上・左下・右下・上・右可動役物43a〜43eを動作させるモータ(図示せず)に異常が発生しているか否か、そのモータ(図示せず)を動作させるモータデータが格納される演出制御RAM902内のメモリ領域を確認する。異常データが格納されている場合、演出制御CPU900は、当該モータを原点位置に戻す指令を行う。これにより、左上・左下・右下・上・右可動役物43a〜43eは初期位置、すなわち、左上可動役物43aは、上飾り42aの背面側に配設され、左下可動役物43bは、左飾り42bの背面側に配設され、右下可動役物43cは、右飾り42cの背面側に配設され、上可動役物43dは、上飾り42aの背面側に配設され、右可動役物43eは、図2に示す実線位置に示すように、右飾り42cの手前側に配設されることとなる(ステップS6)。
次いで、演出制御CPU900は、その内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、演出制御CPU900は、1ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する(ステップS7)。
上記処理を終えた後、演出制御CPU900は、メインループ更新周期か否かを確認する。具体的には、0〜31までループ状にカウントするメインループカウンタML_CNTを16分周(すなわち、16で除算)した際の余りを確認し、その余りが0であれば(ステップS8:YES)、ステップS10に進み、0以外であれば(ステップS8:NO)、予告抽選等に用いる乱数値を更新する処理を行う(ステップS9)。なお、メインループカウンタML_CNTのインクリメント(+1)方法については、後述することとする。
次いで、演出制御CPU900は、後述するステップS12にて生成された装飾ランプ基板100に搭載されているLEDランプ等の装飾ランプをそれぞれ点灯又は消灯させるのに必要な制御信号を演出制御RAM902内のメモリ領域に書込みする処理を行う(ステップS10)。
続いて、演出制御CPU900は、上記演出制御RAM902内のメモリ領域に格納されている上記主制御基板60(図3参照)から受信する演出制御コマンドDI_CMDを読み出し、その内容に応じた演出パターンを、演出制御ROM901内に予め格納しておいた多数の演出パターンの中から抽選により決定する。そして、その決定された演出パターンに対応する液晶制御コマンドLCD_CMDを上記演出制御RAM902内のメモリ領域に格納する(ステップS11)。
次いで、演出制御CPU900は、上記決定された演出パターンに応じた光に関する制御信号、音に関する制御信号を生成する。そして、上記決定された演出パターン内に、演出ボタン装置13を遊技者に押下させるような演出があるか否かも決定される。さらには、左上・左下・右下・上・右可動役物43a〜43eの動作内容を決定する。そして、その決定した動作内容に応じた可動役物装置43のモータ(図示せず)の動作内容を決定する(ステップS12)。なお、この決定された光に関する制御信号が、次回のステップS10の処理の際、演出制御RAM902内のメモリ領域に書き込まれることとなる。
次いで、演出制御CPU900は、上記決定された音に関する制御信号を音LSI903に送信する。そして、音LSI903は、その制御信号に応じたBGMあるいは効果音を音ROM904から読み出す。これにより、音LSI903は、その読み出した音データに基づく処理を行い、音源データとしてスピーカ16へ出力する処理を行う(ステップS13)。
次いで、演出制御CPU900は、上記ステップS13の処理に関し、音LSI903が音データ等をデコード処理する際、ノイズ等により何らかのエラーが発生していないかを、当該音LSI903にアクセスし確認する(ステップS14)。
かくして、演出制御CPU900は、上記ステップS14の処理を終えた後、再度ステップS8の処理に戻り、ステップS8〜S14の処理を繰り返すこととなる。
<コマンド受信割込み処理の説明>
続いて、図6を参照して、このような演出制御メイン処理の実行中に、主制御基板60より演出制御コマンド及び割込み信号が送信されてきた際の処理について説明する。
図6に示すように、演出制御CPU900は、上記割込み信号を受信した際、各レジスタの内容を演出制御RAM902内のスタック領域に退避させる退避処理を実行する(ステップS100)。その後、演出制御CPU900は、演出制御コマンドDI_CMDを受信した入力ポートのレジスタを読み出し(ステップS101)、演出制御RAM902内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを算出する(ステップS102)。
そしてその後、演出制御CPU900は、再度、演出制御コマンドDI_CMDを受信した入力ポートのレジスタを読み出し(ステップS103)、ステップS101にて読み出した値とステップS103にて読み出した値が一致しているか否かを確認する。一致していなければ(ステップS104:NO)、ステップS107に進み、一致していれば(ステップS104:YES)、上記算出したポインタに対応するアドレス番地に、主制御基板60より受信した演出制御コマンドDI_CMDを格納する(ステップS105)。なお、この格納された演出制御コマンドDI_CMDが、図5に示すステップS11の処理の際、演出制御CPU900に読み出されることとなる。
次いで、演出制御CPU900は、演出制御RAM902内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを更新し(ステップS106)、ステップS100の処理で退避しておいたレジスタを復帰させる(ステップS107)。これにより、図5に示す演出制御メイン処理に戻ることとなる。
<タイマ割込み処理の説明>
続いて、図7を参照して、演出制御メイン処理のステップS7(図5参照)の処理にて設定した、1ms毎のタイマ割込みが発生した際の処理について説明する。
図7に示すように、演出制御CPU900は、1ms毎のタイマ割込みが発生した際、各レジスタの内容を演出制御RAM902内のスタック領域に退避させる退避処理を実行する(ステップS200)。その後、演出制御CPU900は、当該演出制御CPU900内に設けられている入出力ポートのレジスタをリフレッシュする(ステップS201)。
続いて、演出制御CPU900は、演出制御RAM902内のメモリ領域に格納されているモータデータを出力ポートよりシリアル転送で送信する。これにより、左上・左下・右下・上・右可動役物43a〜43eが、そのモータデータに基づいた動作をすることとなる(ステップS202)。
次いで、演出制御CPU900は、演出ボタン装置13からの信号を受信する(ステップS203)。なお、演出ボタン装置13が遊技者によって押下されていた場合、演出制御CPU900は、図5に示すステップS11の処理を行う際、演出ボタン装置13が押下されたことを考慮した演出パターンを決定することとなる。
次いで、演出制御CPU900は、可動役物装置43のモータ(図示せず)の位置を検出するモータセンサから送信される検出データに基づきモータの位置を確認する(ステップS204)。
次いで、演出制御CPU900は、図5に示すステップS11の処理にて演出制御RAM902内のメモリ領域に格納された液晶制御コマンドLCD_CMDを液晶制御基板120(図3参照)に送信する(ステップS205)。
次いで、演出制御CPU900は、可動役物処理を行う(ステップS206)。この可動役物処理について、図8を参照して詳しく説明する。
<可動役物処理の説明>
まず、演出制御CPU900は、図8に示すように、仮エラーフラグKE_FLGの内容を確認する(ステップS300)。仮エラーフラグKE_FLGがONに設定されていれば(ステップS300:ON)、可動役物処理を終え、OFFに設定されていれば(ステップS300:OFF)、ステップS301の処理に進む。なお、この仮エラーフラグは。図4に示すパターン照合テーブルPAM_TBLを用いて照合した際、「NG」と判定されたか否かを示すフラグである。
次いで、演出制御CPU900は、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに左上可動役物43aを動作させると決定されたか否かを確認する(ステップS301)。新たに動作させると決定されていた場合には(ステップS301:YES)、左上可動役物動作フラグUL_FLGに1をセットする(ステップS302)。
一方、新たに動作させると決定されていない場合には(ステップS301:NO)、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに左下可動役物43bを動作させると決定されたか否かを確認する(ステップS303)。新たに動作させると決定されていた場合には(ステップS303:YES)、左下可動役物動作フラグLL_FLGに1をセットする(ステップS304)。
一方、新たに動作させると決定されていない場合には(ステップS303:NO)、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに右下可動役物43cを動作させると決定されたか否かを確認する(ステップS305)。新たに動作させると決定されていた場合には(ステップS305:YES)、右下可動役物動作フラグLR_FLGに1をセットする(ステップS306)。
一方、新たに動作させると決定されていない場合には(ステップS305:NO)、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに上可動役物43dを動作させると決定されたか否かを確認する(ステップS307)。新たに動作させると決定されていた場合には(ステップS307:YES)、上可動役物動作フラグU_FLGに1をセットする(ステップS308)。
一方、新たに動作させると決定されていない場合には(ステップS307:NO)、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに右可動役物43eを動作させると決定されたか否かを確認する(ステップS309)。新たに動作させると決定されていた場合には(ステップS309:YES)、右可動役物動作フラグR_FLGに1をセットする(ステップS310)。
次いで、演出制御CPU900は、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容、並びに、上記ステップS204にて確認したモータの位置に基づき、左上・左下・右下・上・右可動役物43a〜43eの動作させるモータの動作内容に応じたモータデータを生成した上で、演出制御RAM902内のメモリ領域に格納する(ステップS311)。
次いで、演出制御CPU900は、演出制御ROM901内に格納されている図4に示すパターン照合テーブルPAM_TBLを読み出し、そのパターン照合テーブルPAM_TBLに記憶されている左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値と、実際の値とを比較(照合)する(ステップS312)。これにより、動作判定が「OK」(図4に示すTB6参照)となっていれば(ステップS313:NO)、可動役物処理を終える。なお、動作判定が「OK」(図4に示すTB6参照)となっていた際、ステップS311にて演出制御RAM902内のメモリ領域に格納されたモータデータが、次の1msのタイマ割込みの際、図7に示すステップS202の処理にて出力ポートよりシリアル転送にて送信されることとなる。これにより、左上・左下・右下・上・右可動役物43a〜43eが図2に示すような動作をすることとなる。
一方、動作判定が「NG」(図4に示すTB6参照)となっていれば(ステップS313:YES)、ステップS311にて演出制御RAM902内のメモリ領域に格納されたモータデータを全てクリアし、演出制御RAM902内のメモリ領域に格納する。これにより、そのクリアされたモータデータが、次の1msのタイマ割込みの際、図7に示すステップS202の処理にて出力ポートよりシリアル転送にて送信されることとなり、もって、左上・左下・右下・上・右可動役物43a〜43eの動作が全て停止することとなる。なお、この際、仮エラーフラグKE_FLGの値がONに設定される(ステップS314)。
ところで、この仮エラーフラグKE_FLGの値がONからOFFに設定されるのは、新たに特別図柄の変動が開始された際、あるいは、遊技者に有利な特別遊技状態を発生させる、いわゆる「大当たり」が開始された際、OFFに設定される。すなわち、演出制御CPU900は、上記主制御基板60(図3参照)から受信する演出制御コマンドDI_CMDが特別図柄の変動を開始させるものであった場合、図5に示すステップS12にて、仮エラーフラグKE_FLGの値をONからOFFに設定する。そしてさらに、演出制御CPU900は、上記主制御基板60(図3参照)から受信する演出制御コマンドDI_CMDが遊技者に有利な特別遊技状態を発生させる、いわゆる「大当たり」であった場合、図5に示すステップS12にて、仮エラーフラグKE_FLGの値をONからOFFに設定する。これにより、左上・左下・右下・上・右可動役物43a〜43eの動作が全て停止するのは、新たに特別図柄の変動が開始されるまで、あるいは、遊技者に有利な特別遊技状態を発生させる、いわゆる「大当たり」が開始されまでとなるから、左上・左下・右下・上・右可動役物43a〜43eの動作を早期に復帰させることができる。なお、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値は、図5に示すステップS12にて左上・左下・右下・上・右可動役物43a〜43eの動作内容が決定された際、クリアされることとなる。
一方、演出制御CPU900は、仮エラーフラグKE_FLGの値がONからOFFに設定された際、モータ確認フラグMK_FLGをONに設定する。そして、演出制御CPU900は、ステップS311にて、上記ステップS204にて確認したモータの位置が原点位置以外で、モータ確認フラグMK_FLGがONに設定されていた場合、モータの位置を原点位置に戻す制御信号を演出制御RAM902内のメモリ領域に格納する。そしてその後、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容をクリアすると共に、モータ確認フラグMK_FLGをONからOFFに設定する(ステップS311)。これにより、左上・左下・右下・上・右可動役物43a〜43eは初期位置、すなわち、左上可動役物43aは、上飾り42aの背面側に配設され、左下可動役物43bは、左飾り42bの背面側に配設され、右下可動役物43cは、右飾り42cの背面側に配設され、上可動役物43dは、上飾り42aの背面側に配設され、右可動役物43eは、図2に示す実線位置に示すように、右飾り42cの手前側に配設されることとなる。なお、この際、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容をクリアしているため、現在の特別図柄の変動中、又は、現在の遊技者に有利な特別遊技状態を発生させる、いわゆる「大当たり」中、左上・左下・右下・上・右可動役物43a〜43eの動作はされないこととなる。
しかして、このようにすれば、左上・左下・右下・上・右可動役物43a〜43eが意図しない動作をする事態を低減させることができる。
<タイマ割込み処理の説明>
かくして、演出制御CPU900は、図7に示すステップS206の可動役物処理を終えた後。図5に示すステップS8の処理にて用いる0〜31までループ状にカウントするメインループカウンタML_CNTをインクリメント(+1)し、そのインクリメントした値を16分周(すなわち、16で除算)する処理を行う(ステップS207)。そしてその後、演出制御CPU900は、ステップS200の処理で退避しておいたレジスタを復帰させる(ステップS208)。これにより、図5に示す演出制御メイン処理に戻ることとなる。
しかして、以上説明した本実施形態によれば、可動役物を効率的に動作させることができる。
<第2実施形態>
次に、第2実施形態を図9〜図11を参照して説明する。なお、第1実施形態と同一構成については、同一の符号を付し、説明は省略する。
第1実施形態においては、演出制御ROM901内に格納されている図4に示すパターン照合テーブルPAM_TBLの内容と比較(照合)した際、左上・左下・右下・上・右可動役物43a〜43eの動作を全て停止する例を説明したが、それに限らず、第2実施形態に示すように、左上・左下・右下・上・右可動役物43a〜43eのうち一部の動作を停止するようにしても良い。
すなわち、図9に示すように、演出制御CPU900は、演出制御ROM901内に格納されている図4に示すパターン照合テーブルPAM_TBLを読み出し、そのパターン照合テーブルPAM_TBLに記憶されている左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値と、実際の値とを比較(照合)(ステップS312)し、動作判定が「NG」(図4に示すTB6参照)となっていれば(ステップS313:YES)、左上・左下・右下・上・右可動役物43a〜43eのうち、優先的に動作させるものだけ動作させ、それ以外のものの動作は停止させるようにする(ステップS400)。より具体的に説明すれば、演出制御CPU900は、演出制御ROM901内に格納されている図10に示す可動役物優先動作テーブルMOP_TBLを用いることにより、左上・左下・右下・上・右可動役物43a〜43eのうち、優先的に動作させる可動役物だけ動作させ、それ以外のものの動作は停止させるようにする。
可動役物優先動作テーブルMOP_TBLは、図10に示すように、図4に示すパターン照合テーブルPAM_TBLに記憶されている判定内容のうち「NG」とされている左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容が記憶されており(TB10参照)、その「NG」と判定されたもののうち、動作を開始させても良い左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容が記憶されている(TB11参照)。具体的に説明すれば、最上段では、左上可動役物動作フラグUL_FLGの値が1,左下可動役物動作フラグLL_FLGの値が1,右下可動役物動作フラグLR_FLGの値が0,上可動役物動作フラグU_FLGの値が0,右可動役物動作フラグR_FLGの値が1で「NG」であった際、そのうち、左上可動役物動作フラグUL_FLGの値を1,左下可動役物動作フラグLL_FLGの値を1,右下可動役物動作フラグLR_FLGの値を0,上可動役物動作フラグU_FLGの値を0,右可動役物動作フラグR_FLGの値を0とし、左上可動役物43a,左下可動役物43bを優先的に動作させ、右可動役物43eを停止させるようにしている。そして次の段では、左上可動役物動作フラグUL_FLGの値が1,左下可動役物動作フラグLL_FLGの値が1,右下可動役物動作フラグLR_FLGの値が0,上可動役物動作フラグU_FLGの値が1,右可動役物動作フラグR_FLGの値が1で「NG」であった際、そのうち、左上可動役物動作フラグUL_FLGの値を1,左下可動役物動作フラグLL_FLGの値を1,右下可動役物動作フラグLR_FLGの値を0,上可動役物動作フラグU_FLGの値を1,右可動役物動作フラグR_FLGの値を0とし、左上可動役物43a,左下可動役物43b,上可動役物43dを優先的に動作させ、右可動役物43eを停止させるようにしている。さらに次の段では、左上可動役物動作フラグUL_FLGの値が1,左下可動役物動作フラグLL_FLGの値が1,右下可動役物動作フラグLR_FLGの値が1,上可動役物動作フラグU_FLGの値が0,右可動役物動作フラグR_FLGの値が1で「NG」であった際、そのうち、左上可動役物動作フラグUL_FLGの値を0,左下可動役物動作フラグLL_FLGの値を1,右下可動役物動作フラグLR_FLGの値を0,上可動役物動作フラグU_FLGの値を0,右可動役物動作フラグR_FLGの値を1とし、左下可動役物43b,右可動役物43eを優先的に動作させ、左上可動役物43a,右下可動役物43cを停止させるようにしている。さらに次の段では、左上可動役物動作フラグUL_FLGの値が1,左下可動役物動作フラグLL_FLGの値が1,右下可動役物動作フラグLR_FLGの値が1,上可動役物動作フラグU_FLGの値が1,右可動役物動作フラグR_FLGの値が0で「NG」であった際、そのうち、左上可動役物動作フラグUL_FLGの値を1,左下可動役物動作フラグLL_FLGの値を0,右下可動役物動作フラグLR_FLGの値を0,上可動役物動作フラグU_FLGの値を1,右可動役物動作フラグR_FLGの値を0とし、左上可動役物43a,上可動役物43dを優先的に動作させ、左下可動役物43b,右下可動役物43cを停止させるようにしている。最終段では、左上可動役物動作フラグUL_FLGの値が1,左下可動役物動作フラグLL_FLGの値が1,右下可動役物動作フラグLR_FLGの値が1,上可動役物動作フラグU_FLGの値が1,右可動役物動作フラグR_FLGの値が1で「NG」であった際、そのうち、左上可動役物動作フラグUL_FLGの値を1,左下可動役物動作フラグLL_FLGの値を0,右下可動役物動作フラグLR_FLGの値を1,上可動役物動作フラグU_FLGの値を0,右可動役物動作フラグR_FLGの値を0とし、左上可動役物43a,右下可動役物43cを優先的に動作させ、左下可動役物43b,上可動役物43d,右可動役物43eを停止させるようにしている。
かくして、演出制御CPU900は、動作判定が「NG」(図4に示すTB6参照)となっていれば(ステップS313:YES)、演出制御ROM901内に格納されている上記可動役物優先動作テーブルMOP_TBLを読み出し、その動作判定で「NG」となった左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容(TB10参照)に対応する左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値(TB11参照)を読み出す。そして、演出制御CPU900は、その読み出した左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容、並びに、上記ステップS204にて確認したモータの位置に基づき、左上・左下・右下・上・右可動役物43a〜43eの動作させるモータの動作内容に応じたモータデータを生成した上で、再度、演出制御RAM902内のメモリ領域に格納し、可動役物処理を終える(ステップS400)。これにより、次の1msのタイマ割込みの際、図7に示すステップS202の処理にて出力ポートよりシリアル転送にて送信されることとなり、もって、左上・左下・右下・上・右可動役物43a〜43eのうち、何れかの可動役物を優先的に動作させることができる。
しかして、本実施形態においても、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
なお、仮エラーフラグKE_FLGの値は、ステップS400にてONに設定され、ONからOFFへの設定は、第1実施形態と同一である。また、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値のクリアの仕方も、第1実施形態と同一である。
ところで、図10に示すような可動役物優先動作テーブルMOP_TBLを用いずとも、図11に示すような方法で、左上・左下・右下・上・右可動役物43a〜43eのうち、優先的に動作させるものだけ動作させ、それ以外のものの動作は停止させるようにすることもできる。
すなわち、図11に示すように、演出制御CPU900は、まず、仮エラーフラグKE_FLGの内容を確認する(ステップS500)。そして、仮エラーフラグKE_FLGがONに設定されていれば(ステップS500:ON)、ステップS303の処理に移行し、OFFに設定されていれば(ステップS500:OFF)、ステップS301の処理に進む。
そして、演出制御CPU900は、ステップS303又はステップS304の処理を終えた後、仮エラーフラグKE_FLGの内容を確認する(ステップS501)。仮エラーフラグKE_FLGがONに設定されていれば(ステップS501:ON)、ステップS309の処理に移行し、OFFに設定されていれば(ステップS500:OFF)、ステップS305の処理に進む。
そしてさらに、演出制御CPU900は、ステップS311の処理を終えた後、仮エラーフラグKE_FLGの内容を確認する(ステップS502)。仮エラーフラグKE_FLGがONに設定されていれば(ステップS502:ON)、可動役物処理を終え、OFFに設定されていれば、ステップS312の処理に進む。
またさらに、演出制御CPU900は、ステップS313の処理にて、動作判定が「NG」(図4に示すTB6参照)となっていれば(ステップS313:YES)、仮エラーフラグKE_FLGをONに設定すると共に、ステップS311にて演出制御RAM902内のメモリ領域に格納されたモータデータを全てクリアし、さらに、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値を全てクリアし、可動役物処理を終える(ステップS503)。
しかして、このようにすれば、仮エラーフラグKE_FLGがONの時は、ステップS303にて、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに左下可動役物43bを動作させると決定されたか否かを確認し、新たに動作させると決定されていた場合には(ステップS303:YES)、左下可動役物動作フラグLL_FLGに1をセットする(ステップS304)。そして、ステップS309にて、図5に示すステップS12にて決定された左上・左下・右下・上・右可動役物43a〜43eの動作内容に関し、新たに右可動役物43eを動作させると決定されたか否かを確認し、新たに動作させると決定されていた場合には(ステップS309:YES)、右可動役物動作フラグR_FLGに1をセットする(ステップS310)。そしてさらに、ステップS311にて、演出制御CPU900は、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容、並びに、上記ステップS204にて確認したモータの位置に基づき、左上・左下・右下・上・右可動役物43a〜43eの動作させるモータの動作内容に応じたモータデータを生成した上で、演出制御RAM902内のメモリ領域に格納する。このステップS311にて演出制御RAM902内のメモリ領域に格納されたモータデータが、次の1msのタイマ割込みの際、図7に示すステップS202の処理にて出力ポートよりシリアル転送にて送信されることとなる。これにより、左下可動役物43b、右可動役物43eが優先的に動作することとなり、その他の可動役物は、ステップS503にて、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値を全てクリアしているため、動作しないこととなる。
しかして、このようにしても、左上・左下・右下・上・右可動役物43a〜43eのうち、優先的に動作させるものだけ動作させ、それ以外のものの動作は停止させるようにすることができる。
なお、仮エラーフラグKE_FLGの値のONからOFFへの設定は、第1実施形態と同一である。
<第3実施形態>
次に、第3実施形態を、図12及び図13を参照して説明する。なお、第1,2実施形態と同一構成については、同一の符号を付し、説明は省略する。
第1実施形態及び第2実施形態においては、図4に示すパターン照合テーブルPAM_TBLを用いて、そのパターン照合テーブルPAM_TBLに記憶されている左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値と、実際の値とを比較(照合)することによって、左上・左下・右下・上・右可動役物43a〜43eの動作をさせる否かを決定していたが、それに限らず、第3実施形態で示すように、消費されると想定される電流値を加算し、その加算した電流値が所定の値を超えるか否かによって、左上・左下・右下・上・右可動役物43a〜43eの動作をさせる否かを決定するようにしても良い。
すなわち、図12に示すように、演出制御CPU900は、ステップS311の処理を終えた後、ステップS600にて、演出制御ROM901内に格納されている図13に示す可動役物電流値テーブルMOI_TBLを読み出す。
可動役物電流値テーブルMOI_TBLは、図13に示すように、各可動役物(TB20参照)に対する電流値(TB21参照)が記憶されている。すなわち、左上可動役物43a(TB20参照)を動作させた場合、0.2mAの電流値(TB21参照)が消費され、左下可動役物43b(TB20参照)を動作させた場合、0.8mAの電流値(TB21参照)が消費され、右下可動役物43c(TB20参照)を動作させた場合、0.6mAの電流値(TB21参照)が消費され、上可動役物43d(TB20参照)を動作させた場合、0.4mAの電流値(TB21参照)が消費され、右可動役物43e(TB20参照)を動作させた場合、0.5mAの電流値(TB21参照)が消費されると想定された電流値が記憶されている。
かくして、演出制御CPU900は、図12に示すステップS600にて、上記可動役物電流値テーブルMOI_TBLを演出制御ROM901内より読み出し、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容に基づき、可動役物電流値テーブルMOI_TBLに記憶されている電流値を加算する。すなわち、左上可動役物動作フラグUL_FLGが1にセットされ、左下可動役物動作フラグLL_FLGが1にセットされていれば、0.2mAと0.8mAを加算し、右下可動役物動作フラグLR_FLGが1にセットされ,上可動役物動作フラグU_FLGが1にセットされていれば、0.6mAと0.4mAを加算するというように、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGのうち、1がセットされている可動役物動作フラグに対応する電流値を加算するというものである。
次いで、演出制御CPU900は、上記可動役物電流値テーブルMOI_TBLを用いて電流値を加算した後、その加算した電流値が所定値(例えば、1.8mA)を超えているか否かを判定する(ステップS601)。所定値(例えば、1.8mA)を超えていなければ(ステップS601:NO)、可動役物処理を終える。
一方、所定値(例えば、1.8mA)を超えていれば(ステップS601:YES)、第1実施形態において示したステップS314と同一の処理を行う。
しかして、このようにしても、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
なお、本実施形態においては、左上・左下・右下・上・右可動役物43a〜43eを全て停止させる例で説明したが、勿論、左上・左下・右下・上・右可動役物43a〜43eのうち、何れかの可動役物を優先的に動作させる際にも適用可能である。すなわち、図9,図11に示すステップS312の処理を、図12に示すステップS600の処理に変更し、ステップS313の処理を、図12に示すステップS601の処理に変更すれば良い。このようにすれば、左上・左下・右下・上・右可動役物43a〜43eのうち、何れかの可動役物を優先的に動作させる際にも適用することができる。
一方、図14に示すように、左上・左下・右下・上・右可動役物43a〜43eのうち、優先順位の低いものから順に動作を停止させるようにすることもできる。すなわち、演出制御CPU900は、ステップS601にて、所定値(例えば、1.8mA)を超えていれば(ステップS601:YES)、左上・左下・右下・上・右可動役物43a〜43eのうち、何れかの可動役物を停止させる(ステップS700)。具体的に説明すると、演出制御CPU900は、左上・左下・右下・上・右可動役物43a〜43eのうち、最高電流の可動役物の動作を順に停止させる。すなわち、演出制御CPU900は、上記可動役物電流値テーブルMOI_TBLを演出制御ROM901内より読み出し、最高電流の可動役物、すなわち、左下可動役物43bの動作を停止させる。具体的には、左下可動役物動作フラグLL_FLGを0にセットする。
次いで、演出制御CPU900は、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容に基づき、可動役物電流値テーブルMOI_TBLに記憶されている電流値を加算する(ステップS701)。
次いで、演出制御CPU900は、その加算した電流値が所定値(例えば、1.8mA)を超えているか否かを判定する(ステップS702)。所定値(例えば、1.8mA)を超えていなければ(ステップS702:NO)、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの内容、並びに、上記ステップS204にて確認したモータの位置に基づき、左上・左下・右下・上・右可動役物43a〜43eを動作させるモータの動作内容に応じたモータデータを生成した上で、再度、演出制御RAM902内のメモリ領域に格納し、可動役物処理を終える(ステップS703)。これにより、次の1msのタイマ割込みの際、図7に示すステップS202の処理にて出力ポートよりシリアル転送にて送信されることとなり、もって、左下可動役物43bの可動が停止され、左上・右下・上・右可動役物43a,43c〜43eのうち、何れかの可動役物が動作することとなる。なお、仮エラーフラグKE_FLGの値は、ステップS703にてONに設定され、ONからOFFへの設定は、第1実施形態と同一である。また、左上可動役物動作フラグUL_FLG,左下可動役物動作フラグLL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGの値のクリアの仕方も、第1実施形態と同一である。
一方、演出制御CPU900は、所定値(例えば、1.8mA)を超えていれば(ステップS702:YES)、ステップS700の処理に戻り、次に、最高電流の可動役物である右下可動役物43cの動作を停止させる。具体的には、右下可動役物動作フラグLR_FLGを0にセットする。そして、その後、演出制御CPU900は、同様に、ステップS701〜ステップS702の処理を行い、所定値(例えば、1.8mA)を超えなくなるまで同様の処理を繰り返す。
しかして、このようにしても、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
また、最高電流の可動役物の動作を順に停止させる方法に限らず、左上・左下・右下・上・右可動役物43a〜43eのうち、最高電流の可動役物のみ動作させるようにしても良い。すなわち、演出制御CPU900は、上記可動役物電流値テーブルMOI_TBLを演出制御ROM901内より読み出し、最高電流の可動役物、すなわち、左下可動役物43bの動作を可動させ、それ以外は停止させる。具体的には、左下可動役物動作フラグLL_FLGを1にセットし、左上可動役物動作フラグUL_FLG,右下可動役物動作フラグLR_FLG,上可動役物動作フラグU_FLG,右可動役物動作フラグR_FLGを0にセットする。そして、その後、演出制御CPU900は、ステップS701〜ステップS702の処理を行う。なお、最高電流の可動役物のみ動作させれば、所定値(例えば、1.8mA)を超えることは無くなる。
しかして、このようにしても、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
また、最高電流の可動役物のみを動作させる方法に限らず、最低電流の可動役物から順に動作を停止させるようにしても良い。すなわち、演出制御CPU900は、上記可動役物電流値テーブルMOI_TBLを演出制御ROM901内より読み出し、最低電流の可動役物、すなわち、左上可動役物43aの動作を停止させる。具体的には、左上可動役物動作フラグUL_FLGを0にセットする。そして、その後、演出制御CPU900は、ステップS701〜ステップS702の処理を行い、所定値(例えば、1.8mA)を超えていれば(ステップS702:YES)、ステップS700の処理に戻り、次に、最低電流の可動役物である上可動役物43dの動作を停止させる。具体的には、上可動役物動作フラグU_FLGを0にセットする。そして、その後、演出制御CPU900は、同様に、ステップS701〜ステップS702の処理を行い、所定値(例えば、1.8mA)を超えなくなるまで同様の処理を繰り返す。
しかして、このようにしても、電流限界値を超えないように、左上・左下・右下・上・右可動役物43a〜43eを動作させることができ、もって、可動役物を効率的に動作させることができる。
ところで、第1実施形態〜第3実施形態において、可動役物処理をタイマ割込みの処理内に設ける例を示したが、それに限らず、図5に示す演出制御メイン処理に設けても良い。ただし、演出制御メイン処理に設けた際、モータの動作が比較的ゆっくり動作するものでないと処理が追いつかない可能性があるため、様々なモータの動作に対応させるのであれば、タイマ割込み処理内に可動役物処理を設けた方が好ましい。
また、第1実施形態〜第3実施形態においては、演出制御基板90と液晶制御基板120を別々に設ける例を示したが、一体的に設けても良い。
またさらに、第1実施形態〜第3実施形態の構成を適宜選択して、又は、適宜組み合わせて実施することも可能である。
一方、第1実施形態〜第2実施形態では、パターン照合テーブルPAM_TBLの配列方法として、1ずつ数値を増加させる配列方法を説明したが、それに限らず、1ずつ数値を減少させるように配列しても良い。