以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図1〜図21を参照して具体的に説明する。まず、図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が設けられている。
また一方、図1に示すように、前面操作パネル7の右端部側には、発射ユニットを作動させるための発射ハンドル15が設けられ、前面枠3の上部両側面側及び発射操作ハンドル15の上側には、BGM(Background music)あるいは効果音を発するスピーカ16が設けられている。そして、上記前面枠3の周枠3aには、光の装飾による演出(以下、ランプ演出という)効果を現出するLEDランプLA(図5参照)が複数配設されている。なお、本実施形態においては、ランプ演出効果を現出させるものとしてLEDランプを用いているが、LEDでなくとも、光の装飾による演出ができるものであればどのようなものでも良い。
他方、上記遊技盤4の遊技領域40には、図2に示すように、略中央部にLCD(Liquid Crystal Display)等からなる液晶表示装置41が配設されている。この液晶表示装置41は、表示エリアを左、中、右の3つのエリアに分割し、独立して数字やキャラクタあるいは図柄(装飾図柄)の変動表示が可能であるものである。そしてこのような液晶表示装置41の周囲には、装飾用の上飾り42a,左飾り42b,右飾り42cが設けられており、この上飾り42a,左飾り42b,右飾り42cには、光の装飾により演出効果を現出するLEDランプLA(図5参照)が複数配設されている。また、この上飾り42a,左飾り42b,右飾り42cの背面側には、夫々上記液晶表示装置41に表示される表示内容に合せて移動する第1の可動式役物装置43a(図3参照)が配設され、さらに、上飾り42aの左背面側には上記液晶表示装置41に表示される表示内容に合せて移動する第2の可動式役物装置43bが配設されている。そして、この第1及び第2の可動式役物装置43a,43bにもランプ演出効果を現出するLEDランプLA(図5参照)が複数配設されている。
一方、液晶表示装置41の真下には、特別図柄始動口44が配設され、その内部には入賞球を検知する特別図柄始動口センサ44a(図3参照)が設けられている。そして、この特別図柄始動口44の右側には、大入賞口45が配設され、その内部には入賞球を検知する大入賞口センサ45a(図3参照)が設けられている。
また一方、上記右飾り42cの上縁部近傍には、ゲートからなる普通図柄始動口46が配設されており、その内部には、遊技球の通過を検知する普通図柄始動口センサ46a(図3参照)が設けられている。また、上記大入賞口45の右側及び上記特別図柄始動口44の左側には、一般入賞口47が夫々配設され(図示では、右側に1つ、左側に3つ)、その内部には、夫々、遊技球の通過を検知する一般入賞口47aが設けられている。
さらに、上記のように構成される遊技盤4の遊技領域40の下側周縁部(特別図柄始動口44,大入賞口45,一般入賞口47の周囲を覆う部分)には装飾用の下飾り42dが配設されており、その下飾り42dには、ランプ演出効果を現出するLEDランプLA(図5参照)が複数配設されている。また、上記遊技盤4の遊技領域40の右下周縁部には、7セグメントを3桁に並べて構成される特別図柄表示装置48と、2個のLEDからなる普通図柄表示装置49が設けられている。そしてさらに、上記遊技盤4の遊技領域40には、図示はしないが複数の遊技釘が配設され、遊技球の落下方向変換部材としての風車50が配設されている。
次に、上記のような外観構成からなるパチンコ遊技機1内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図3〜図5を用いて説明する。この制御装置は、図3に示すように、遊技動作全般の制御を司る主制御基板60と、主制御基板60から演出制御コマンドを受けて、画像と光と音についての演出制御を行う演出制御基板70と、演出制御基板70からの信号に応じた画像を液晶表示装置41に表示するよう制御する液晶制御基板80とを有している。
上記主制御基板60は、主制御CPU600と、一連の遊技制御手順を記述した制御プログラム等を格納した主制御ROM601と、作業領域やバッファメモリ等として機能する主制御RAM602とで構成された1チップマイクロコンピュータを搭載している。そして、このように構成される主制御基板60には、払出モータM2を制御して遊技球を払出す払出制御基板61と、発射モータM3によって遊技球を発射させる発射制御基板62とが接続されている。そしてさらには、特別図柄始動口44への入賞を検知する特別図柄始動口センサ44aと、普通図柄始動口46の通過を検知する普通図柄始動口センサ46aと、一般入賞口47への入賞を検知する一般入賞口センサ47aと、大入賞口45への入賞を検知する大入賞口センサ45aとが接続され、さらに、特別図柄表示装置48と、普通図柄表示装置49とが接続されている。
このように構成される主制御基板60は、特別図柄始動口センサ44aや普通図柄始動口センサ46aからの信号を受信すると、遊技者に有利な特別遊技状態を発生させるか(いわゆる「当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄表示装置48又は普通図柄表示装置49に送信する。これにより、特別図柄表示装置48又は普通図柄表示装置49に抽選結果が表示されることとなる。そしてさらに、主制御基板60は、その決定した情報を含む演出制御コマンドCMD_DATA(図4参照)を生成し、演出制御基板70に送信する。なお、主制御基板60が、一般入賞口センサ47a、大入賞口センサ45aからの信号を受信した場合は、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を払出制御基板61に送信することで、払出制御基板61が遊技者に遊技球を払出すこととなる。
一方、上記演出制御基板70は、図4に示すように、作業領域やバッファメモリ等として機能する演出制御RAM700aが内蔵されている演出制御CPU700と、演出制御手順を記述した制御プログラム等が格納されている演出制御フラッシュROM701と、所望のBGMや効果音を生成する音LSI702と、BGMや効果音等の音データが格納されている音フラッシュROM703とが搭載されている。
この演出制御CPU700は、演出アドレスバスADR_BUS(図示では24ビット)及び演出データバスDA_BUS(図示では16ビット)を介して演出制御フラッシュROM701と接続され、上記演出アドレスバスADR_BUSの下位2ビット及び上記演出データバスDA_BUSの上位8ビットが音LSI702に接続されている。そして、音LSI702は、音アドレスバスMADR_BUS(図示では26ビット)及び音データバスMDA_BUS(図示では16ビット)を介して音フラッシュROM703と接続されている。
また、演出制御CPU700には、図3及び図4に示すように、当該演出制御CPU700の入力ポートに上述した遊技動作全般の制御を司る主制御基板60から演出制御コマンドCMD_DATA(図示では8ビット)及び演出割込み信号CMD_IRQが送信されるように当該主制御基板60と接続され、さらに、その演出制御CPU700の出力ポートから送信される液晶表示装置41の表示内容に対応した液晶制御コマンドLCD_CMD(図示では16ビット)及び液晶制御割込み信号LCD_IRQが液晶制御基板80で受信されるように接続されている。そしてさらに、演出制御CPU700には、上記詳述した装飾用の上飾り42a等に複数配設されているランプ演出効果を現出するLEDランプLA(図5参照)が搭載されている装飾ランプ基板90と、上記液晶表示装置41に表示される表示内容に合せて移動する第1及び第2の可動式役物装置43a,43bと、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13とが接続されている。なお、本実施形態においては、主制御基板60より演出制御コマンドCMD_DATAが一方向に送信されているが、これは、外部からのゴト行為による不正な信号が演出制御基板70を介して主制御基板60に入力されることを防止するためである。
装飾ランプ基板90は、図5に示すように、主に、バッファ900と、LED駆動ドライバ901a〜cと(図示では3つ)が搭載され、LED駆動ドライバ901a〜cには、夫々、複数のLEDランプLAが接続されている。
上記バッファ900は、演出制御CPU700の出力ポートからシリアル送信されるランプデータLAMP_DATA及びそのランプデータLAMP_DATAを制御するランプデータ制御信号(LAMP_CLK,LAMP_EN,LAMP_LATCH)をパラレルデータに変換し、その変換したデータ(LAMP_DATAa/b/c,LAMP_CLKa/b/c,LAMP_ENa/b/c,LAMP_LATCHa/b/c)を夫々LED駆動ドライバ901a〜cに送信するものである。そして、LED駆動ドライバ901a〜cは、その変換されたデータ(LAMP_DATAa/b/c,LAMP_CLKa/b/c,LAMP_ENa/b/c,LAMP_LATCHa/b/c)に基づいて、複数のLEDランプLAの点灯又は消灯の駆動制御をするものである。さらに、LEDランプLAは、3色LEDを使用しており、様々な色が表現できるようになっている。そしてこのようなLEDランプLAのカソード側が、LED駆動ドライバ901a〜cに接続され、アノード側が抵抗Rを介して12Vの電源に接続されている。なお、本実施形態においては、LEDランプLAとして3色LEDを使用する例を示したが、白色LED等の単色のLEDランプを使用しても良い。
一方、第1の可動式役物装置43aは、図3に示すように、モータM1と、そのモータM1の作動によって駆動する可動体43a1と、そのモータM1の位置を検知するモータセンサS1とで構成されている。第2の可動式役物装置43bは、ソレノイドSOLと、そのソレノイドSOLの作動によって駆動する可動体43b1で構成されている。
上記第1の可動式役物装置43aのモータM1は、演出制御CPU700の出力ポートより送信されるモータデータMOT_DATA(図4参照)に基づいて作動するように演出制御CPU700に接続され、上記第2の可動式役物装置43bのソレノイドSOLは、演出制御CPU700の出力ポートより送信されるソレノイドデータSOL_DATA(図4参照)に基づいて作動するように演出制御CPU700に接続されている。そして、上記モータM1の位置を検知するセンサS1は、その検知したデータMOT_SENが演出制御CPU700の入力ポートに送信されるように接続されている。
また一方、演出ボタン装置13は、図3に示すように、演出ボタン13aと、その演出ボタン13aが遊技者によって押下されたか否かを検知する演出センサS2とで構成され、演出ボタン13aにはランプ(図示せず)が内蔵されている。この演出ボタン13aに内蔵されているランプ(図示せず)は、演出制御CPU700の出力ポートより送信されるボタンランプデータBU_LAMP_DATA(図4参照)に基づいて点灯又は消灯するように演出制御CPU700に接続されている。そして、上記演出センサS2は、その検知したデータBU_SENが演出制御CPU700の入力ポートに送信されるように接続されている。
他方、音LSI702は、図3及び図4に示すように、当該音LSI702の出力ポートより送信されるBGMや効果音の音源データAMOR/Lがスピーカ16に受信されるようにスピーカ16と接続され、さらに、当該音LSI702の出力ポートより送信される音割込み信号M_IRQが演出制御CPU700の入力ポートに送信されるように、演出制御CPU700に接続されている。
ところで、上記説明した各基板への電源供給は、電源基板63(図3参照)より供給されている。この電源基板63は、外部電源(図示せず)に接続され、変圧トランスから供給される交流電圧(AC24V:メイン電源)より所要電源を生成し、その生成した電源を各基板へ供給している。なお、図示では、電源供給ルートは、省略している。
次に、上記詳述した制御装置のうち、本実施形態の最も特徴とするところは、演出制御基板70の処理内容であるため、その処理内容について図6〜図11を参照して具体的に説明する。
パチンコ遊技機1に電源が投入されると、電源基板63(図3参照)から各制御基板に電源が投入された旨の電源投入信号が送られる。そしてその信号を受けて、図4に示す演出制御基板70に搭載されている演出制御CPU700は、演出アドレスバスADR_BUS及び演出データバスDA_BUSを介して演出制御フラッシュROM701内に格納されている演出制御手順を記述した制御プログラムを逐次実行する。図6は、この制御プログラムの処理に関し、最初に実行される演出制御メイン処理を示したものである。
図6に示すように、この演出制御メイン処理は、まず、演出制御CPU700が、演出制御CPU700内に設けられているレジスタ(図示せず)を初期化すると共に、演出制御CPU700内に設けられているI/Oポートの入出力方向を設定する。そしてさらに、出力方向に設定されたI/Oポート(すなわち、出力ポート)から外部に送信されるデータがシリアル転送となるように設定する(ステップS1)。
その設定後、演出制御CPU700は、上記主制御基板60(図3参照)から受信する演出制御コマンドCMD_DATA及び上記液晶制御基板80(図3参照)に送信する液晶制御コマンドLCD_CMDを格納する演出制御RAM700a内のメモリ領域を初期化する(ステップS2)。そして、演出制御CPU700は、上記主制御基板60からの演出制御割込み信号CMD_IRQを受信する入力ポートの割込み許可設定処理を行う(ステップS3)。
次いで、演出制御CPU700は、作業領域、スタック領域として使用する演出制御RAM700a内のメモリ領域を初期化し(ステップS4)、図4に示す演出アドレスバスADR_BUS、演出データバスDA_BUSを介して音LSI702に初期化指令を行う。これにより、音LSIは、その内部に設けられているレジスタ(図示せず)を初期化する(ステップS5)。そしてその後、演出制御CPU700は、図3に示す、演出ボタン装置13からの信号、すなわち、演出ボタン13aが遊技者によって押下されたか否かを検知する演出センサS2からの信号BU_SEN(図4参照)を格納する演出制御RAM700a内の演出ボタンバッファメモリ領域(図示せず)を初期化する(ステップS6)。
次いで、演出制御CPU700は、第1の可動式役物装置43aのモータM1を作動させるモータデータMOT_DATAが格納される演出制御RAM700a内のメモリ領域に、異常データが格納されているか否かを確認する。そして、その確認により異常データが格納されていれば、第1の可動式役物装置43aが初期位置以外の位置に移動している可能性があるため、演出制御CPU700は、第1の可動式役物装置43aのモータM1を原点位置に戻す指令を行う。これにより、第1の可動式役物装置43aは初期位置に戻ることとなる(ステップS7)。
その後、演出制御CPU700は、その内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、演出制御CPU700は、1ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する。そしてさらに、演出制御CPU700は、上記音LSI702からの音割込み信号M_IRQを受信する入力ポートの割込み許可設定処理を行う(ステップS8)。
以上説明したステップS1〜S8により、遊技動作開始前における演出制御CPU700による初期設定処理が行われ、その後、演出制御CPU700は、メインループ更新周期か否かを確認する。具体的には、0〜31までループ状にカウントするメインループカウンタML_CNTを16分周(すなわち、16で除算)した際の余りを確認し、その余りが0であれば(ステップS9:YES)ステップS11に進み、0以外であれば(ステップS9:NO)予告抽選等に用いる乱数値を更新する処理を行う(ステップS10)。なお、メインループカウンタML_CNTのインクリメント(+1)方法については、後述することとする。
次いで、演出制御CPU700は、上記複数のLEDランプLAを夫々点灯又は消灯させるのに必要なランプデータLAMP_DATAを演出制御RAM700a内に設けられているランプデータバッファメモリ領域RA,RB(図10参照)に書込みする処理を行う。そしてさらに、演出制御CPU700は、演出ボタン装置13内に内蔵されているランプ(図示せず)を点灯又は消灯させるボタンランプデータBU_LAMP_DATAもランプデータバッファメモリ領域RA,RB(図10参照)に書込みする処理を行う(ステップS11)。なお、このランプデータバッファメモリ領域RA,RB(図10参照)内への書込み処理についての詳細は後述することとする。
次いで、演出制御CPU700は、上記演出制御RAM700a内のメモリ領域に格納されている上記主制御基板60(図3参照)から受信する演出制御コマンドCMD_DATAを読み出し、その内容に応じた演出パターンを決定する。そして、その決定された演出パターンに対応する液晶制御コマンドLCD_CMDを上記演出制御RAM700a内のメモリ領域に格納する(ステップS12)。
続いて、演出制御CPU700は、上記決定された演出パターンに応じたランプデータLAMP_DATA,音データ及び第1の可動式役物装置43aのモータM1の作動内容,第2の可動式役物装置43bのソレノイドSOLの作動内容を決定する。そして、上記決定された演出パターン内に、演出ボタン装置13の演出ボタン13aを遊技者に押下げさせるような演出があるか否かも決定され、それに応じて演出ボタン装置13に内蔵されているランプ(図示せず)を点灯又は消灯させるボタンランプデータBU_LAMP_DATA(図4参照)が生成されることとなる(ステップS13)。なお、この決定されたランプデータLAMP_DATAが、次回のステップS11の処理の際、演出制御RAM700a内に設けられているランプデータバッファメモリ領域RA,RB(図10参照)に書き込まれる。そしてさらに、演出ボタン装置13に内蔵されているランプ(図示せず)を点灯又は消灯させるボタンランプデータBU_LAMP_DATAも上記ランプデータバッファメモリ領域RA,RB(図10参照)に書き込まれる。
次いで、演出制御CPU700は、上記決定された音データを演出アドレスバスADR_BUS、演出データバスDA_BUSを介して音LSI702に送信する(図4参照)。これにより、音LSI702は、その音データに応じたBGMあるいは効果音を音アドレスバスMADR_BUS、音データバスMDA_BUSを介して音フラッシュROM703から読出し、その読み出したデータを処理し音源データAMOR/Lとしてスピーカ16へ送信する処理を行う(ステップS14)。
演出制御CPU700は、上記音LSI702に上記決定された音データを演出アドレスバスADR_BUS、演出データバスDA_BUSを介して送信した後、ステップS13にて決定されたソレノイドSOLの作動内容に応じたソレノイドデータSOL_DATAを生成し、その生成したソレノイドデータSOL_DATAを演出制御RAM700a内のメモリ領域に格納する(ステップS15)。
次いで、演出制御CPU700は、上記ステップS14での処理に関し、上記音LSI702に演出アドレスバスADR_BUS、演出データバスDA_BUSを介して送信された音データを音LSIがデコード処理する際、ノイズ等により何らかのエラーが発生していないかを演出アドレスバスADR_BUS、演出データバスDA_BUSを介して上記音LSI702にアクセスし確認する(ステップS16)。なお、もしエラーがあった場合は、音LSI702にステップS13の処理にて決定した音データを演出アドレスバスADR_BUS、演出データバスDA_BUSを介して再送信するか、又は、演出制御CPU700内に設けられている図示しないウォッチドッグタイマを用いて、演出制御CPU700を強制的にリセットし、ステップS1より処理をやり直すようにすれば良い。なお、ステップS16の処理としては、本実施形態で示した例に限らず、例えば、演出制御CPU700が、音LSI702の動作状態を音LSI702からの割込み信号を監視することにより判断するようにしても良い。割込み信号の入力条件は、例えば音源データAMOR/Lをスピーカ16へ送信し終えたタイミングで音LSI702から演出制御CPU700に対して割込みをかけるようにしておけば良い。このようにしておけば、演出制御CPU700にて管理されている音源データAMOR/Lをスピーカ16へ送信し終えたタイミングで音LSI702からの割込み信号があれば正常に動作しているものとみなされ次のステップの処理(本実施形態ではステップS9)へ移行することとなる。なお、この判断結果がエラーに対応するものである場合、所定の処理(例えば、割込み信号の監視処理)を繰り返すことでウォッチドックタイマをタイムアップさせ強制的にリセットさせることもできる。また、割込み条件としては、音源データAMOR/Lをスピーカ16へ送信し終えたタイミングに限らず、所定周期で割込みがされるように設定しても良い。さらに、判断結果がエラーに対応するものである場合、所定の処理(例えば、割込み信号の監視処理)を繰り返すことでウォッチドックタイマをタイムアップさせ強制的にリセットさせずとも、音LSI702の異常を報知するだけで、その他の処理は通常通り実行されるようにしても良い。
かくして、演出制御CPU700は、上記ステップS16の処理を終えた後、再度ステップS9の処理に戻り、ステップS9〜S16の処理を繰り返すこととなる。なお、本実施形態においては、ステップS11の処理をステップS9:YESの処理後にしているが、これは、ステップS12〜S16の処理時間が変動する可能性があるためである。
ところで、このような演出制御メイン処理の実行中に、主制御基板60より演出制御コマンドCMD_DATA及び演出割込み信号CMD_IRQが送信されてくると、演出制御CPU700は、図7に示す処理を実行することとなる。
すなわち、図7に示すように、演出制御CPU700は、上記演出割込み信号CMD_IRQを受信した際、各レジスタの内容を演出制御RAM700a内のスタック領域に退避させる退避処理を実行する(ステップS100)。その後、演出制御CPU700は、演出制御コマンドCMD_DATAを受信した入力ポートのレジスタを読み出し(ステップS101)、演出制御RAM700a内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを算出する(ステップS102)。
そしてその後、演出制御CPU700は、再度、演出制御コマンドCMD_DATAを受信した入力ポートのレジスタを読み出し(ステップS103)、ステップS101にて読み出した値とステップS103にて読み出した値が一致しているか否かを確認する。一致していなければ(ステップS104:NO)ステップS107に進み、一致していれば(ステップS104:YES)、上記算出したポインタに対応するアドレス番地に、主制御基板60より受信した演出制御コマンドCMD_DATAを格納する(ステップS105)。なお、この格納された演出制御コマンドCMD_DATAが、図6に示すステップS12の処理の際、演出制御CPU700に読み出されることとなる。
次いで、演出制御CPU700は、演出制御RAM700a内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを更新し(ステップS106)、ステップS100の処理で退避しておいたレジスタを復帰させる(ステップS107)。これにより、図6に示す演出制御メイン処理に戻ることとなる。
一方、演出制御メイン処理のステップS8の処理(図6参照)にて設定した、1ms毎のタイマ割込みが発生すると、演出制御CPU700は、図8に示す処理を実行することとなる。
すなわち、図8に示すように、演出制御CPU700は、1ms毎のタイマ割込みが発生した際、各レジスタの内容を演出制御RAM700a内のスタック領域に退避させる退避処理を実行する(ステップS200)。その後、演出制御CPU700は、演出制御CPU700内に設けられているI/Oポートのレジスタをリフレッシュし(ステップS201)、図6に示すステップS15にて処理した演出制御RAM700a内のメモリ領域に格納されているソレノイドデータSOL_DATAを出力ポートよりシリアル転送で送信させる。これにより、図3に示す第2の可動式役物装置43bのソレノイドSOLが通電されることとなり、可動体43b1はそのソレノイドデータSOL_DATAに基づいた作動をすることとなる。またさらに、演出制御CPU700は、演出制御RAM700a内のメモリ領域に格納されているモータデータMOT_DATAを出力ポートよりシリアル転送で送信させる。これにより、図3に示す第1の可動式役物装置43aのモータM1が回転することとなり、可動体43a1はそのモータデータMOT_DATAに基づいた作動をすることとなる。なお、このモータデータMOT_DATAの生成方法は、後述のステップS206にて詳述することとする。
次いで、演出制御CPU700は、演出ボタン13aが遊技者によって押下されたか否かを検知する演出センサS2からの信号BU_SEN(図4参照)が格納されている演出制御RAM700a内の演出ボタン用バッファメモリ領域を確認し、押下の状態により入力状態の更新を行う(ステップS203)。これにより、演出ボタン13aが遊技者によって押下されていた場合、演出制御CPU700は、図6に示すステップS13の処理を行う際、演出ボタン13aが押下されたことを考慮した演出パターンを決定することとなる。
その後、演出制御CPU700は、図3に示す第1の可動式役物装置43aのモータM1の位置を検知するセンサS1から送信される検知したデータMOT_SENに基づきモータM1の位置を確認する(ステップS204)。
次いで、演出制御CPU700は、図6に示すステップS12の処理にて演出制御RAM700a内のメモリ領域に格納された液晶制御コマンドLCD_CMDと共に、液晶制御割込み信号LCD_IRQを演出制御CPU700の出力ポートより液晶制御基板80(図3参照)に送信する(ステップS205)。これにより、液晶制御基板80は、その液晶制御コマンドLCD_CMDに応じた画像を液晶表示装置41に表示させる処理を行う。
次いで、演出制御CPU700は、上記ステップS204にて確認したモータM1の位置に基づき、図6に示すステップS13にて決定されたモータM1の作動内容に応じたモータデータMOT_DATAを生成した上で、演出制御RAM700a内のメモリ領域に格納する(ステップS206)。なお、この演出制御RAM700a内のメモリ領域に格納されたモータデータMOT_DATAが、次の1msのタイマ割込みの際、ステップS202の処理にて出力ポートよりシリアル転送にて送信されることとなる。
続いて、演出制御CPU700は、演出制御RAM700a内のメモリ領域内にモータデータMOT_DATAを格納した後、図6に示すステップS11の処理にて演出制御RAM700a内に設けられているランプデータバッファメモリ領域RA,RB(図10参照)内に書き込まれたランプデータLAMP_DATAを読み出し、そのランプデータLAMP_DATA共々、そのランプデータLAMP_DATAを制御するランプデータ制御信号(LAMP_CLK,LAMP_EN,LAMP_LATCH)を出力ポートより装飾ランプ基板90(図3参照)に送信する。これにより、図5に示す複数のLEDランプLAが夫々点灯又は消灯することとなり、所望のランプ演出が行われることとなる。なお、ランプデータバッファメモリ領域RA,RB(図10参照)内に書き込まれているボタンランプデータBU_LAMP_DATAは、演出制御CPU700の出力ポートより演出ボタン装置13に送信されることとなる。これにより、演出ボタン装置13に内蔵されているランプ(図示せず)が点灯又は消灯することとなる(ステップS207)。なお、このランプデータバッファメモリ領域RA,RB(図10参照)からの読出し処理についての詳細は後述することとする。
次いで、演出制御CPU700は、図6に示すステップS9の処理にて用いる0〜31までループ状にカウントするメインループカウンタML_CNTをインクリメント(+1)し、そのインクリメントした値を16分周(すなわち、16で除算)する処理を行う(ステップS208)。そしてその後、演出制御CPU700は、ステップS200の処理で退避しておいたレジスタを復帰させる(ステップS209)。これにより、図6に示す演出制御メイン処理に戻ることとなる。
ここで、図10及び図11を用いて、ステップS11(図6参照)及びステップS207(図8参照)の処理にて説明したランプデータLAMP_DATA及びボタンランプデータBU_LAMP_DATAの書込み及び読出し方法についてより詳しく説明する。
図10に示すように、演出制御RAM700a内には、ランプデータLAMP_DATA及びボタンランプデータBU_LAMP_DATAを格納できるランプデータバッファメモリ領域RA及びランプデータバッファメモリ領域RBが存在する。このランプデータバッファメモリ領域RA,ランプデータバッファメモリ領域RBは、図10に示す「読み出し」欄、又は、「書込み」欄を見れば分かるように、一方が書込み用であれば、他方が読み出し用のバッファメモリ領域となるものである。この2つのランプデータバッファメモリ領域RA,RBの一方を書込み用、他方を読み出し用のバッファメモリ領域に決定するにあたっては、メインループカウンタML_CNTのカウント値を16分周した際の商の値を元に決定される。
すなわち、図10に示すように、メインループカウンタML_CNTのカウント値が0〜15の時は、ステップS208にて16分周した際の商は“0”となるため、ランプデータバッファメモリ領域RAが読み出し用のバッファメモリ領域となり、ランプデータバッファメモリ領域RBが書込み用のバッファメモリ領域となる。一方、メインループカウンタML_CNTのカウント値が16〜31の時は、ステップS208にて16分周した際の商は“1”となるため、ランプデータバッファメモリ領域RAが読み出し用のバッファメモリ領域となり、ランプデータバッファメモリ領域RBが書込み用のバッファメモリ領域となる。すなわち、メインループカウンタML_CNTのカウント値を16分周した際の商によって、ランプデータバッファメモリ領域RAは読み出し用から書込み用のバッファメモリ領域に変更され、ランプデータバッファメモリ領域RBは書込み用から読み出し用のバッファメモリ領域に変更されることとなる。
これにより、例えば、ランプデータバッファメモリ領域RAを書込み専用とし、他方のランプデータバッファメモリ領域RBを読み出し専用とした場合、ランプデータバッファメモリ領域RAに書き込んだランプデータLAMP_DATA及びボタンランプデータBU_LAMP_DATAをランプデータバッファメモリ領域RBにコピーする必要があるが、本実施形態のように、ランプデータバッファメモリ領域RAを読み出し用から書込み用のバッファメモリ領域に変更し、ランプデータバッファメモリ領域RBを書込み用から読み出し用のバッファメモリ領域に変更するような構成とすれば、ランプデータLAMP_DATA及びボタンランプデータBU_LAMP_DATAをわざわざコピーする必要がないため、処理速度の向上が図れる。そして、メインループカウンタML_CNTのカウント値を16分周した際の商の値に応じて、読み出し用又は書込み用のバッファメモリ領域を決定しいているため、読み出し用又は書込み用のバッファメモリ領域を簡単容易に決定することができる。さらには、メインループカウンタML_CNTのカウント値を16分周した際の商の値を参照しているため、参照するデータのビット数を減少させることができる。それゆえ、より処理速度の向上が図れる。なお、本実施形態においては、メインループカウンタML_CNTのカウント値を16分周する例を示したが、勿論、これに限らずどのような値でも良い。また、メインループカウンタML_CNTのカウント値を16分周させずとも、そのカウント値に応じて、読み出し用又は書込み用のバッファメモリ領域を決定するようにしても良い。
ここで、上記説明した内容に基づき、再度ステップS11及びステップS207の処理をより詳しく説明する。ステップS11の処理において、演出制御CPU700は、メインループカウンタML_CNTのカウント値を16分周した際の商の値を確認し、商の値が“0”であればランプデータバッファメモリ領域RBに複数のLEDランプLAを夫々点灯又は消灯に必要なランプデータLAMP_DATAを書込みし、商の値が1であればランプデータバッファメモリ領域RAに上記複数のランプデータLAMP_DATAを書込みする処理を行う。また、演出ボタン装置13に内蔵されているランプ(図示しない)を点灯又は消灯させるボタンランプデータBU_LAMP_DATAも、上記LAMP_DATAと共に書き込まれることとなる。
一方、演出制御CPU700は、ステップS207の処理において、メインループカウンタML_CNTのカウント値を16分周した際の商の値を確認し、商の値が“0”であればランプデータバッファメモリ領域RAに書き込まれているランプデータLAMP_DATAを読み出し、商の値が“1”であればランプデータバッファメモリ領域RBに書き込まれているランプデータLAMP_DATAを読み出す処理を行う。そして演出制御CPU700は、その読み出したランプデータLAMP_DATA共々、そのランプデータLAMP_DATAを制御するランプデータ制御信号(LAMP_CLK,LAMP_EN,LAMP_LATCH)を演出制御CPU700の出力ポートより装飾ランプ基板90(図3参照)に送信する処理を行う。また、上記ボタンランプデータBU_LAMP_DATAは、演出ボタン装置13に内蔵されているランプ(図示しない)に送信されることとなる。
さらに、図11を用いて、上述したステップS207におけるランプデータLAMP_DATAの読出し方法についてより詳しく説明する。
図11に示すように、メインループカウンタML_CNTのカウント値を16分周した際の商の値に基づき読出し用のバッファメモリ領域に決定されたランプデータバッファメモリ領域RA又はランプデータバッファメモリ領域RBには、例えば、512バイトのランプデータ(LAMP_DATA[0−511])が格納されている。
そしてこの512バイトのランプデータ(LAMP_DATA[0−511])は、メインループカウンタML_CNTのカウント値を16分周した際の余りの値を元に分割して読み出される。すなわち、図11に示すように、演出制御CPU700は、メインループカウンタML_CNTのカウント値を16分周した際の余りの値を確認し、“0”であればLAMP_DATA[0−127](128バイト)のデータを読み出し、“1”であればLAMP_DATA[128−255](128バイト)のデータを読み出し、“2”であればLAMP_DATA[256−383](128バイト)のデータを読み出し、“3”であればLAMP_DATA[384−511](128バイト)のデータを読み出すという処理を行う。なお、メインループカウンタML_CNTのカウント値を16分周した際の余りの値が0〜3以外の場合は、ステップS207の処理は行わずステップS208の処理に移行することとなる。
しかして、このように読み出すデータを分割して読み出すようにしておけば、本実施形態のようにタイマ割込みの時間が1msと短い周期であっても、タイマ割込み内で処理が終わらず次の割込みの発生を妨害することがない。そのため、1msと短い周期のタイマ割込みであっても正確に呼び出されることとなる。なお、図11では、説明の都合上ランプデータLAMP_DATAのみの記載しかしていないが、ボタンランプデータBU_LAMP_DATAも読出し用のバッファメモリ領域に格納されており、メインループカウンタML_CNTを16分周した際の余りの値に応じて読み出されることとなる。
ところで、本実施形態においては、メインループカウンタML_CNTのカウント値を16分周した際の余りの値に応じて、ランプデータLAMP_DATAを分割して読み出すようにしたが、勿論メインループカウンタML_CNTのカウント値に応じてランプデータLAMP_DATAを分割して読み出すようにしても良い。しかしながら、メインループカウンタML_CNTのカウント値を16分周した際の余りの値を参照した方が、参照するデータのビット数を減少させることができ、より処理速度の向上が図れるため、好ましい。また、ランプデータLAMP_DATAを分割して読み出す方法としては、メインループカウンタML_CNT以外のカウンタを設け、そのカウント値に応じて、ランプデータLAMP_DATAを読み出すようにしても良い。しかしながら、メインループカウンタML_CNTを用いた方が、使用するメモリ領域を減少させることができ、処理速度の向上が図れるため、メインループカウンタML_CNTのカウント値を参照した方が好ましい。さらに、メインループカウンタML_CNTのカウント値を16分周する例を示したが、勿論、これに限らずどのような値でも良い。ただし、読み出し用又は書込み用のバッファメモリ領域を決定する際の分周値と同一にした方が好ましい。使用するメモリ領域を減少させることができ、処理速度の向上が図れるためである。一方、ランプデータLAMP_DATAを分割して読み出す方法としては、メインループカウンタML_CNTを用いずとも、他の方法で分割して読み出すようにしても良い。ただし、メインループカウンタML_CNTのようなカウンタを用いた方が、簡単容易にランプデータLAMP_DATAを分割して読み出すことができるため好ましい。なお、本実施形態においては、ランプデータバッファメモリ領域として2つ設ける例を示したが、2つに限らず、3つ以上設けても良い。
他方、演出制御メイン処理のステップS8の処理(図6参照)にて設定した音LSI702から音割込み信号M_IRQが送信されてきた場合、演出制御CPU700は、図9に示す処理を実行することとなる。
すなわち、図9に示すように、演出制御CPU700は、音LSI702からの音割込み信号M_IRQを受信した際、各レジスタの内容を演出制御RAM700a内のスタック領域に退避させる退避処理を実行する(ステップS300)。そしてその後、演出制御CPU700は、音LSI702の現状を確認するため、演出アドレスバスADR_BUS、演出データバスDA_BUSを介して音LSI702内の各レジスタの状況を確認する。もし、エラーが発生していた場合は、音LSI702に対して初期化指令を行う(ステップS301)。そしてその処理の後、演出制御CPU700は、ステップS300の処理で退避しておいたレジスタを復帰させる(ステップS302)。これにより、図6に示す演出制御メイン処理に戻ることとなる。
次に、上記説明したパチンコ遊技機1のランプ演出の一実施例について、図12〜図16を用いて説明する。
図12は、メインシナリオデータテーブルMSCE_TBLを示した図である。このメインシナリオデータテーブルMSCE_TBLは、図12に示すように、主制御基板60(図3参照)から受信する演出制御コマンドCMD_DATAに対応した複数のメインシナリオ(図示では、メインシナリオA001−01,A001−02,A001−03)が格納されている。そしてこの複数のメインシナリオ毎に、所定の時間(frame)毎に対応付けされている複数のサブシナリオ番号(図示では3つ)が格納されている。
また、図13は、サブシナリオデータテーブルSCE_TBLを示した図である。このサブシナリオデータテーブルSCE_TBLは、図13に示すように、複数のサブシナリオ(図示では、サブシナリオ00,01,02)が格納されている。そしてこの複数のサブシナリオ毎に、所定の時間(frame)毎に対応付けされている第1・第2の可動式役物装置43a,43bの動作指定及び演出ボタン装置13の有効・無効,ランプシナリオ番号,音データが格納されている。なお、ランプシナリオ番号に記載のレイヤー1用、レイヤー2用という項目については、後述することとする。
一方、図14は、ランプシナリオデータテーブルLMP_TBLを示した図である。このランプシナリオデータテーブルLMP_TBLは、図14に示すように、複数のランプシナリオ(図示では、ランプシナリオ00,ランプシナリオ01,ランプシナリオ02,ランプシナリオ03・・・)が格納されている。そしてこの複数のランプシナリオ毎に、所定の時間(frame)毎に対応付けされているランプ出力データが格納されている。なお、本実施形態におけるframeとは、任意の時間でありプログラムにて自由に設定可能なものである。また、メインシナリオデータテーブルMSCE_TBL,サブシナリオデータテーブルSCE_TBL,ランプシナリオテーブルLMP_TBLは、夫々、予め演出制御フラッシュROM701に格納されているものである。
続いて、上記図12〜図14にて説明したメインシナリオデータテーブルMSCE_TBL,サブシナリオデータテーブルSCE_TBL,ランプシナリオテーブルLMP_TBLを用いた具体的実施例を図15及び図16を用いて説明する。図15は、液晶表示装置41に表示される図柄の変動が開始してから停止されるまでのデータの流れを表した図であり、図16は、図15に示すデータがパチンコ遊技機1上でどのように表現されるかを模式的に表した図である。図16に示すL1〜L8は、遊技機1に複数配設されているランプ演出効果を現出するLEDランプLA(図1,図2,図5参照)をパチンコ遊技機1の配置箇所毎にまとめて表現したものであり、以下ではL1〜L8をランプ群L1〜L8ということとする。なお、この具体的実施例についての説明は、サブシナリオデータテーブルSCE_TBLに格納されているランプデータLAMP_DATA及び音データに関する事項を中心的に説明し、第1・第2の可動式役物装置43a,43bの動作指定及び演出ボタン装置13の有効・無効のデータについての説明は省略することとする。
遊技球が、図2に示す特別図柄始動口44に入賞し、その入賞した遊技球が、その特別図柄始動口44の内部に設けられている特別図柄始動口センサ44a(図3参照)にて検知されると、主制御基板60は、遊技者に有利な特別遊技状態を発生させるか否かの抽選を行い、その抽選結果に応じた情報を演出制御コマンドCMD_DATAとして演出制御CPU700(演出制御基板70)に送信する。演出制御CPU700は、図6に示すステップS12の処理にて、上記演出制御コマンドCMD_DATAに応じた演出パターンを決定し、その決定された演出パターンに対応する液晶制御コマンドLCD_CMDを生成する。そして、その生成された液晶制御コマンドLCD_CMDは、図8に示すステップS205の処理にて、液晶制御基板80(図3参照)に送信され、これにより、図16に示すように、液晶制御基板80は、その液晶制御コマンドLCD_CMDに応じた画像を液晶表示装置41に表示させる処理を行う。
一方、演出制御CPU700は、演出制御コマンドCMD_DATAに応じた演出パターンを決定した後、図6に示すステップS13の処理にて、ランプデータLAMP_DATA及び音データを決定する。具体的には、演出制御コマンドCMD_DATAによって、演出制御CPU700が、図12に示すメインシナリオデータテーブルMSCE_TBLよりメインシナリオA001−01を選択すると、それと共に、メインシナリオA001−01に格納されているサブシナリオ00,01,02を選択する際に参照するカウンタであるメインシナリオカウンタMSCE_CNTのカウントアップが開始される。図12及び図15に示すように、このメインシナリオカウンタMSCE_CNTのカウント値が0〜400内であれば、サブシナリオ00が選択され、400〜600内であればサブシナリオ01が選択され、600〜700内であればサブシナリオ02が選択される。なお、メインシナリオカウンタMSCE_CNTは、1frame毎に+1ずつインクリメントされるカウンタであり、選択したメインシナリオ(例えば、メインシナリオA001−01)に格納されている最後のサブシナリオ(例えば、サブシナリオ03)が最終frame、すなわち、700frameまで選択されるとカウント値がクリアされるカウンタである。
また、演出制御CPU700が、図13に示すサブシナリオデータテーブルSCE_TBLよりサブシナリオ00を選択すると、それと共に、ランプシナリオ00〜03を選択する際に参照するカウンタであるサブシナリオカウンタSCE_CNTのカウントアップが開始される。図13及び図15に示すように、このサブシナリオカウンタSCE_CNTのカウント値が0〜300内であれば、ランプシナリオ01/00が選択され、300〜400内であればサブシナリオ01/02が選択される。そして、サブシナリオ00内に格納されているデータが最終frame、すなわち、400frameまで選択されると、一旦カウント値がクリアされ、次に、演出制御CPU700が、図13に示すサブシナリオデータテーブルSCE_TBLよりサブシナリオ01を選択すると、再びサブシナリオカウンタSCE_CNTがカウントアップを開始することとなる。そして、サブシナリオ01内に格納されているデータが最終frame、すなわち、200frame(サブシナリオ00の処理を含めると600frame)まで選択されるとカウント値が一旦クリアされ、次に、演出制御CPU700が、図13に示すサブシナリオデータテーブルSCE_TBLよりサブシナリオ02を選択すると、再びサブシナリオカウンタSCE_CNTがカウントアップを開始するという処理を繰り返す。なお、サブシナリオカウンタSCE_CNTは、1frame毎に+1ずつインクリメントされるカウンタである。
さらに、演出制御CPU700が、図14に示すランプシナリオデータテーブルLMP_TBLよりランプシナリオ00〜03のいずれかが選択されると、ランプシナリオ00〜03毎に設けられているランプシナリオカウンタLMP_CNT00〜03のカウントアップが開始される。すなわち、ランプシナリオ00が選択されると、ランプシナリオ00に格納されているランプ出力データを選択する際に参照するランプシナリオカウンタLMP_CNT00がカウントアップを開始し、ランプシナリオ00に格納されている全てのランプ出力データが選択されると一旦カウント値がクリアされる。そして、再びカウントアップを開始し、ランプシナリオ00に格納されている最初のランプ出力データから順に選択するというようにループ状にカウントすることとなる。そして、ランプシナリオ01が選択された際は、ランプシナリオカウンタLMP_CNT01がカウントアップを開始し、ランプシナリオ00と同様に、ランプシナリオ01に格納されている全てのランプ出力データが選択されると一旦カウント値がクリアされる。そして、再びカウントアップを開始し、ランプシナリオ01に格納されている最初のランプ出力データから順に選択するというようにループ状にカウントすることとなる。また、ランプシナリオ02が選択された際は、ランプシナリオカウンタLMP_CNT02がカウントアップを開始し、ランプシナリオ00と同様に、ランプシナリオ02に格納されている全てのランプ出力データが選択されると一旦カウント値がクリアされる。そして、再びカウントアップを開始し、ランプシナリオ02に格納されている最初のランプ出力データから順に選択するというようにループ状にカウントすることとなる。そして、ランプシナリオ03が選択された際は、ランプシナリオカウンタLMP_CNT03がカウントアップを開始し、ランプシナリオ00と同様に、ランプシナリオ03に格納されている全てのランプ出力データが選択されると一旦カウント値がクリアされる。そして、再びカウントアップを開始し、ランプシナリオ03に格納されている最初のランプ出力データから順に選択するというようにループ状にカウントすることとなる。なお、ランプシナリオカウンタLMP_CNT00〜03は、1frame毎に+1ずつインクリメントされるカウンタである。
一方、図13に示すサブシナリオ00,01,02に格納されているレイヤー1,レイヤー2とは、ランプデータLAMP_DATAを生成するにあたって重合されるデータのことである。具体的には、レイヤー1としてランプシナリオ01が選択され、レイヤー2としてランプシナリオ02が選択されたとすると、図14に示すように、ランプシナリオ01には、25frame毎にランプ出力データが格納されており、ランプシナリオ02には、50frame毎にランプ出力データが格納されている。この格納されたランプ出力データのうち、例えば、上記ランプシナリオカウンタLMP_CNT01のカウント値に基づいてランプシナリオ01に最初に格納されているランプ出力データ「0x00088888」が選択され、さらに、ランプシナリオカウンタLMP_CNT02のカウント値に基づいてランプシナリオ02に最初に格納されているランプ出力データ「0x08000000」が選択されたとすると、その選択されたデータ同士の論理和が取られる。すなわち、ランプ出力データ「0x00088888」とランプ出力データ「0x08000000」同士が加算され、「0x08088888」のランプデータLAMP_DATAが生成されるのである。そしてこの生成されたランプデータLAMP_DATAが、図6に示すステップS11の処理にて、いずれかのランプデータバッファメモリ領域RA,RB(図10参照)に書込みされ、図8に示すステップS207の処理にて、その書込みされたランプデータLAMP_DATAが装飾ランプ基板90に送信されることとなる。これにより、図16に示すように、パチンコ遊技機1のランプ群L1〜L8が点灯又は消灯することとなる。なお、このように、複数のランプシナリオを予め用意し、そのランプシナリオをレイヤーとして重合させるようにしておけば、全てのランプ演出に対応した全てのランプデータを予め格納せずとも、ランプ演出に応じたランプデータを自由自在に生成することができる。そのため、処理速度の向上を図ることができる。
一方、図6に示すステップS13にて決定されたサブシナリオ00,01,02に格納されている音データは、ステップS14の処理にて、音LSI702より音源データAMOR/Lとしてスピーカ16へ送信され、そのスピーカ16(図1参照)より、図16(a)に示すようなBGMが発せられるか、あるいは、図16(c)に示すような効果音が発せられることとなる。なお、本実施形態においては、メインシナリオカウンタMSCE_CNT,サブシナリオカウンタSCE_CNT,ランプシナリオカウンタLMP_CNTを+1ずつインクリメントする例を示したが、所定の設定値を設定した後、1ずつ減算させるカウンタとしても良い。
ここで、上記説明に基づき、図16(a)〜(d)に示すパチンコ遊技機1の状態遷移を、図15を参照しながら説明する。メインシナリオとしてA001−01が選択されると、図16(a)に示すように、左、中、右の3つのエリアに分割している液晶表示装置41に表示されている図柄が変動する。そして、メインシナリオカウンタMSCE_CNTのカウント値を参照し、図15に示すように、0frame〜400frameまではサブシナリオ00が選択される(図12参照)。そしてさらに、サブシナリオカウンタSCE_CNTのカウント値を参照することで、0frame〜400frameのうち、0frame〜300frameまでは、レイヤー1としてランプシナリオ01が選択され、レイヤー2としてランプシナリオ00が選択される(図13参照)。そして、0frame〜300frameのうちレイヤー1として選択されたランプシナリオ01は、図14に示すように25frame毎に4つのランプ出力データが格納されているため、その4つのランプ出力データが夫々3回選択されることとなる(図15参照)。なお、どのランプ出力データを選択するかは、ランプシナリオカウンタLMP_CNT01のカウント値を参照して選択することとなる。
また、レイヤー2として選択されたランプシナリオ00は、図14に示すように1frame毎のランプ出力データしか格納していないため、常にそのランプ出力データが選択されることとなる(図15参照)。なお、このランプ出力データの選択にあたっては、ランプシナリオカウンタLMP_CNT00のカウント値を参照して選択することとなる。そして、このように選択されたレイヤー1のランプ出力データとレイヤー2のランプ出力データ(図15参照)同士の論理和が取られ、ランプデータLAMP_DATAが生成されることとなる。このように生成されたランプデータLAMP_DATAに基づいて、図16(a)に示すように、前面枠3の周枠3aに配設されているランプ群L1が点灯し、ランプ群L6が消灯することとなる。そして、遊技盤4に配設されているランプ群L2〜L5が点灯し、ランプ群L7〜L8が消灯することとなる。
一方、図15に示すように、サブシナリオカウンタSCE_CNTのカウント値を参照することで、0frame〜400frameのうち、0frame〜300frameまでは、「0x80804001」の音データが選択される(図13参照)。これにより、スピーカ16(図1参照)より、図16(a)に示すBGMが発せられることとなる。
一方、時間が経過し、300frameを超えると、図16(b)に示すように、左、中、右の3つのエリアに分割している液晶表示装置41に表示されている図柄のうち、左の図柄、右の図柄が停止する。続いて、サブシナリオカウンタSCE_CNTのカウント値を参照し、300frame〜400frameまでは、レイヤー1としてランプシナリオ01が選択され、レイヤー2としてランプシナリオ02が選択される(図13参照)。そして、300frame〜400frameにおいて、レイヤー1として選択されたランプシナリオ01は、ランプシナリオカウンタLMP_CNT01のカウント値を参照することで、そのランプシナリオ01に格納されているランプ出力データが選択される。
また、レイヤー2として選択されたランプシナリオ02は、図14に示すように50frame毎にランプ出力データ格納されており、そのランプシナリオ02に格納されているランプ出力データがランプシナリオカウンタLMP_CNT02のカウント値に応じて選択される。そして、このように選択されたレイヤー1のランプ出力データとレイヤー2のランプ出力データ(図15参照)同士の論理和が取られ、ランプデータLAMP_DATAが生成されることとなる。このように生成されたランプデータLAMP_DATAに基づいて、図16(b)に示すように、図16(a)に示したランプ群の点灯に加え、さらに、遊技盤4に配設されているランプ群L7〜L8が点灯することとなる。
一方、図15に示すように、サブシナリオカウンタSCE_CNTのカウント値を参照することで、300frame〜400frameにおいては、「0x00000000」の音データが選択される(図13参照)。そのため、その選択された音データによって、スピーカ16(図1参照)より、図16(b)に示すように、何の音も発せられなくなる。
そしてさらに、時間が経過し、400frameを超えると、図16(c)に示すように、左、中、右の3つのエリアに分割している液晶表示装置41に表示されている図柄のうち、左の図柄、右の図柄が停止した状態で中の図柄が低速で変動する。続いて、メインシナリオカウンタMSCE_CNTのカウント値を参照し、図15に示すように、400frame〜600frameまではサブシナリオ01が選択される(図12参照)。そしてさらに、サブシナリオカウンタSCE_CNTのカウント値を参照することで、レイヤー1としてランプシナリオ03が選択され、レイヤー2としてランプシナリオ00が選択される(図13参照)。そして、400frame〜600frameにおいて、レイヤー1として選択されたランプシナリオ03は、図14に示すように50frame毎にランプ出力データ格納されており、そのランプシナリオ03に格納されているランプ出力データが、ランプシナリオカウンタLMP_CNT03のカウント値に応じて選択される。
また、レイヤー2として選択されたランプシナリオ00は、図14に示すように1frame毎のランプ出力データしか格納していないため、常にそのランプ出力データが選択されることとなる(図15参照)。なお、このランプ出力データの選択にあたっては、ランプシナリオカウンタLMP_CNT00のカウント値を参照する。そして、このように選択されたレイヤー1のランプ出力データとレイヤー2のランプ出力データ(図15参照)同士の論理和が取られ、ランプデータLAMP_DATAが生成される。図16(c)に示すように、このように生成されたランプデータLAMP_DATAに基づいて、前面枠3の周枠3aに配設されているランプ群L1,L6が点灯し、遊技盤4に配設されているランプ群L2〜L5及びL7〜L8が消灯することとなる。
一方、図15に示すように、サブシナリオカウンタSCE_CNTのカウント値を参照することで、400frame〜600frameにおいては、「0x80804002」の音データが選択される(図13参照)。そして、その選択された音データによって、スピーカ16(図1参照)より、図16(c)に示す効果音が発せられる。
さらに、時間が経過し、600frameを超えると、図16(d)に示すように、左、中、右の3つのエリアに分割している液晶表示装置41に表示されている図柄、全てが停止することとなる。なお、この表示されている図柄は、いわゆる「ハズレ」状態である。
そして次いで、メインシナリオカウンタMSCE_CNTのカウント値を参照し、図15に示すように、600frame〜700frameまではサブシナリオ02が選択される(図12参照)。そしてさらに、サブシナリオカウンタSCE_CNTのカウント値を参照することで、レイヤー1としてランプシナリオ00が選択され、レイヤー2としてランプシナリオ00が選択される(図13参照)。そして、600frame〜700frameにおいて、レイヤー1及びレイヤー2として選択されたランプシナリオ00は、図14に示すように1frame毎のランプ出力データしか格納されていないため、常にそのランプ出力データが選択されることとなる(図15参照)。なお、このランプ出力データの選択にあたっては、ランプシナリオカウンタLMP_CNT00のカウント値を参照することで選択されることとなる。そして、このように選択されたレイヤー1のランプ出力データとレイヤー2のランプ出力データ(図15参照)同士の論理和が取られ、ランプデータLAMP_DATAが生成されることとなる。図16(d)に示すように、このように生成されたランプデータLAMP_DATAに基づいて、全てのランプ群L1〜L8が消灯することとなる。
一方、図15に示すように、サブシナリオカウンタSCE_CNTのカウント値を参照することで、600frame〜700frameにおいては、「0x00000000」の音データが選択される(図13参照)。そのため、その選択された音データによって、スピーカ16(図1参照)より、図16(d)に示すように、何の音も発せられなくなる。
以上のように、主制御基板60(図3参照)から受信する演出制御コマンドCMD_DATAに基づいてランプ演出が実行されることとなる。
ところで、上記一実施例を説明する際に用いたデータは、理解を容易にするために簡易的に記載したデータであるため、実際のデータを図17〜図21に示すこととする。
図17はメインシナリオデータテーブルMSCE_TBLに格納されているメインシナリオA001−01(図12参照)のデータ内容を示したものである。図17に示すように、「400」(PG1)は、時間(frame)を指定したものであり、「(DWORD)ctSCE0000」(PG2)は、その指定された時間(frame)「400」(PG1)に選択されるサブシナリオ(図示では、サブシナリオ00)を指定したものである。このようにプログラム指定することで、何frame時にどのサブシナリオを選択するのかを指定することができる。そして、「0x00000000,0x00000000」(PG3)は、指定された全てのサブシナリオが選択されたことを示すものであり、このデータが選択されると、メインシナリオカウンタMSCE_CNTのカウント値がクリアされることとなる。
図18は、サブシナリオデータテーブルSCE_TBLに格納されているサブシナリオ00(図13参照)のデータ内容を示したものである。図18に示す「2」(PG10)は、ランプデータLAMP_DATAを生成する際に使用されるレイヤーの総数を指定したものであり、「3」(PG11)は、音データを生成する際に使用されるレイヤーの総数を指定したものであり、「5」(PG12)は固定長である。
また、「0x00000003」(PG13)は、ランプデータLAMP_DATAを生成する際に使用されるレイヤー番号を指定したものである。この例では、レイヤー番号1(すなわち、図13,図15に示すレイヤー1)とレイヤー番号2(すなわち、図13,図15に示すレイヤー2)を指定した例を示している。
そして、「0x0000000D」(PG14)は、音データを生成する際に使用されるレイヤー番号を指定したものである。この例では、レイヤー番号1,レイヤー番号3,レイヤー番号4を指定した例を示している。
さらに、「0x00000000」(PG15)は、上記音データを生成する際に使用されるレイヤー番号をマスクする際に指定されるものである。この例は、どのレイヤーもマスク指定していないが、例えば、レイヤー番号1をマスクする際は、「0x00000001」と指定されることとなる。
一方、「300」(PG16)は、時間(frame)を指定したものであり(図13参照)、「0x00000000」(PG17)及び「0x00000000」(PG18)は、第1の可動式役物装置43aのモータM1の作動内容を指定するものである。また、「0x00000001」(PG19)は、演出ボタン装置13の演出ボタン13aを遊技者に押下げさせるか否かを指定するものである。この例では、「0x00000001」となっているため、演出ボタン装置13の演出ボタン13aを遊技者に押下げさせることとなり、ステップS13(図6参照)の処理にて演出ボタン装置13に内蔵されているランプ(図示せず)を点灯させるボタンランプデータBU_LAMP_DATA(図4参照)が生成されることとなる。
他方、「0x00000000」(PG20)は、第2の可動式役物装置43bのソレノイドSOLの作動内容を指定するものである。
一方、「0x00000001」(PG21)は、レイヤー番号1(すなわち、図13,図15に示すレイヤー1)のランプシナリオを指定するものであり、この例では、ランプシナリオ01が指定されている。また、「0x00000000」(PG22)は、レイヤー番号2(すなわち、図13,図15に示すレイヤー2)のランプシナリオを指定するものであり、この例では、ランプシナリオ00が指定されている。
また一方、「0x80804001」(PG23)は、上記PG14にて指定されたレイヤー番号1の音データ、「0x00000000」(PG24)は、上記PG14にて指定されたレイヤー番号3の音データ、「0x00000000」(PG25)は、上記PG14にて指定されたレイヤー番号4の音データを指定したものである。そしてこの指定された音データは、論理和が取られ、すなわち、加算され、その加算された音データが、図6に示すステップS14の処理にて、音源データAMOR/Lとしてスピーカ16へ送信される。
一方、「0x00000000」(PG26)は、指定された全てのデータが選択されたことを示すものであり、このデータが選択されると、サブシナリオカウンタSCE_CNTのカウント値がクリアされることとなる。
他方、図19〜21は、ランプシナリオデータテーブルLMP_TBLに格納されているランプシナリオ(図14参照)のデータ内容を示したものであり、図19は、ランプシナリオ01のデータ内容の一部を示したものであり、図20は、ランプシナリオ00のデータ内容の一部を示したものである。図14では、理解を容易にするために簡易的なデータを記載しているが、実際のランプ出力データ(図14参照)は、図19及び図20に示すように、多数のデータで構成されている。
図19及び図20に示すデータ内容を、図21を用いて詳しく説明する。図21は、図19に示すデータの一部を拡大表示したものである。
まず、図21に示すPG100のデータ内容は、ランプ群L1〜L8(図16参照)を点灯又は消灯させる際に用いられるランプデータLAMP_DATAの一部であるランプ出力データ(図14,図15参照)をマスクするかしないかを示すものである。より詳しくは、PG100aのデータ内容は、ランプ群L1に対応したランプ出力データをマスクするかしないかを示すものであり、PG100bのデータ内容は、ランプ群L2に対応したランプ出力データをマスクするかしないかを示すものであり、PG100cのデータ内容は、ランプ群L3に対応したランプ出力データをマスクするかしないかを示すものである。そして、PG100dのデータ内容は、ランプ群L4に対応したランプ出力データをマスクするかしないかを示すものであり、PG100eのデータ内容は、ランプ群L5に対応したランプ出力データをマスクするかしないかを示すものであり、PG100fのデータ内容は、ランプ群L6に対応したランプ出力データをマスクするかしないかを示すものである。そしてさらに、PG100gのデータ内容は、ランプ群L7に対応したランプ出力データをマスクするかしないかを示すものであり、PG100hのデータ内容は、ランプ群L8に対応したランプ出力データをマスクするかしないかを示すものである。
一方、「1」(PG101)は、時間(frame)を指定したものであり、図14に示すように、25frameを指定する場合は、「1」(PG101)を「25」に変更することとなる。
また、図21に示すPG102のデータ内容は、ランプ群L1〜L8(図16参照)を点灯又は消灯させる際に用いられるランプデータLAMP_DATAの一部であるランプ出力データ(図14,図15参照)を示すものである。より詳しくは、PG102aのデータ内容は、ランプ群L1に対応したランプ出力データを示すものであり、PG102bのデータ内容は、ランプ群L2に対応したランプ出力データを示すものであり、PG102cのデータ内容は、ランプ群L3に対応したランプ出力データを示すものである。そして、PG102dのデータ内容は、ランプ群L4に対応したランプ出力データを示すものであり、PG102eのデータ内容は、ランプ群L5に対応したランプ出力データを示すものであり、PG102fのデータ内容は、ランプ群L6に対応したランプ出力データを示すものである。そしてさらに、PG102gのデータ内容は、ランプ群L7に対応したランプ出力データを示すものであり、PG102hのデータ内容は、ランプ群L8に対応したランプ出力データを示すものである。
さらに、そのPG102a〜102hに示すデータ内容を具体的に説明するにあたり、PG102aのデータ内容のうち、「1」(PG101)の真横に記載されているデータ「0xF000F000」を用いて説明すると、この「0xF000F000」は、R(赤色),G(緑色),B(青色)の順序毎に記載されている。すなわち、「0xF000F000」の「x」以降のデータは、「F」がR(赤色)、「0」がG(緑色)、「0」がB(青色)、そして、その次の「0」がR(赤色)、「F」がG(緑色)というようになっており、「0xF000F000」をRGB形式で記載すると、「0xRGBRGBRG」というようになっている。そして、このデータの最後がG(緑色)で終わっているため、次の「0xFF000F00」のデータの先頭データである「F」がB(青色)となり、その次がR(赤色)といようになっている。このように、PG102a〜102hに示すデータ内容は、RGBRGB・・・というように、RGBの順に記載されている。なお、RGBを表すデータは色階調を表すデータである。なおまた、本実施形態においては、PG102a〜102hに示すデータ内容として、RGBの色階調を表すデータとして説明したが、勿論、白色LED等の単色のLEDランプを用いる場合は、単色のLEDランプの明度を表すデータとなる。
以上のようにランプシナリオ01(図19参照),ランプシナリオ00(図20参照)は構成されており、この実施例に示すように、ランプシナリオ01がレイヤー1に選択され、ランプシナリオ00がレイヤー2に選択された場合は、そのランプシナリオ01のランプ出力データとランプシナリオ00のランプ出力データ同士の論理和が取られ、ランプデータLAMP_DATAが生成されることとなる。
以上説明した本実施形態によれば、処理速度の向上を図ることができる。また、図19及び図20に示すように多数のランプデータを用いてランプ演出を実行したとしても、所望のランプ演出を確実に実行させることができる。
なお、本実施形態においては、演出制御CPU700と演出制御フラッシュROM701を別々に設けた例を示したが、演出制御CPU700内に演出制御フラッシュROM701を内蔵させても良い。
また、本実施形態においては、演出制御基板70と液晶制御基板80と別々に設ける例を示したが、一体的に設けても良い。