以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図1〜図11を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合は、図示正面から見た場合の上下左右をいうものとする。
まず、図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の上部両側面側には、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と、さらに、上・左・右・左上可動役物43a〜43dを、夫々、駆動する2相のステッピングモータ等のモータ(図示せず)とで構成されている。なお、これら上・左・右・左上可動役物43a〜43dには、光の装飾により演出効果を現出する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が配設されている。
次に、上記のような外観構成からなるパチンコ遊技機1内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図3を用いて説明する。この制御装置は、図3に示すように、遊技動作全般の制御を司る主制御基板60と、その主制御基板60からの制御コマンドに基づいて遊技球を払出す払出制御基板70と、画像と光と音についての制御を行うサブ制御基板80とで主に構成されている。
主制御基板60は、主制御CPU600と、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ROM601と、作業領域やバッファメモリ等として機能する主制御RAM602とで構成されたワンチップマイクロコンピュータを搭載している。そして、このように構成される主制御基板60には、払出モータMを制御して遊技球を払い出す払出制御基板70が接続されている。そしてさらには、特別図柄始動口44への入賞を検出する特別図柄始動口スイッチ44aと、普通図柄始動口46の通過を検出する普通図柄始動口スイッチ46aと、一般入賞口47への入賞を検出する一般入賞口スイッチ47aと、大入賞口45への入賞を検出する大入賞口スイッチ45aとが接続されている。また、主制御基板60には、特別図柄表示装置48と、普通図柄表示装置49とが接続されている。
このように構成される主制御基板60は、特別図柄始動口スイッチ44a又は普通図柄始動口スイッチ46aからの信号を主制御CPU600にて受信すると、遊技者に有利な特別遊技状態を発生させるか(いわゆる「大当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄表示装置48又は普通図柄表示装置49に送信する。これにより、特別図柄表示装置48又は普通図柄表示装置49に抽選結果が表示されることとなる。そしてさらに、主制御基板60、すなわち、主制御CPU600は、その決定した情報を含む演出制御コマンドを生成し、サブ制御基板80に送信する。なお、主制御基板60、すなわち、主制御CPU600が、一般入賞口スイッチ47a、大入賞口スイッチ45aからの信号を受信した場合は、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を含む払出制御コマンドを払出制御基板70に送信することで、払出制御基板70が遊技者に遊技球を払い出すこととなる。
一方、払出制御基板70は、上記主制御基板60(主制御CPU600)からの払出制御コマンドを受信し、その受信した払出制御コマンドに基づいて払出モータ信号を生成する。そして、その生成した払出モータ信号にて、払出モータMを制御し、遊技者に遊技球を払い出す。そしてさらに、払出制御基板70は、遊技球の払出動作を示す賞球計数信号や払出動作の異常に係るステイタス信号を送信し、遊技者の操作に応答して遊技球を発射させる発射制御基板71の動作を開始又は停止させる発射制御信号を送信する処理を行う。
サブ制御基板80は、上記主制御基板60(主制御CPU600)からの演出制御コマンドを受けて各種演出を実行制御すると共に、液晶表示装置41に表示される表示画像を制御するサブ制御CPU800aと、演出制御手順を記述した制御プログラムや図5に示す演出シナリオテーブルPR_TBL等が格納されているサブ制御ROM800bと、作業領域やバッファメモリ等として機能するサブ制御RAM800cとで構成されたサブワンチップマイコン800を搭載している。そしてさらに、サブ制御基板80は、所望のBGMや効果音を生成する音LSI801と、BGMや効果音等の音データ等が予め格納されている音ROM802と、サブワンチップマイコン800の指示に基づき液晶表示装置41に表示される画像データを生成するVDP803と、静止画圧縮データと動画圧縮データが格納されているCGROM804と、動画圧縮データを伸張する作業領域と、液晶表示装置41に表示される画像データを一時的に保存するフレームバッファ領域とで構成されるDDR2SDRAM805とが搭載されている。なお、静止画とは、いわゆるスプライト画像であって、文字等のテキストデータや背景画像、あるいは、特別図柄等、単一の画像を示すものである。また、動画とは、連続的に変化する複数枚(複数フレーム分)の静止画の集合を意味し、液晶表示装置41に複数枚の静止画が連続して描画されることで、円滑な動作が再現されるものである。なおまた、静止画圧縮データと、動画圧縮データは、一体的に作成されておらず、別々に作成され、それぞれ、別々にCGROM804内に格納されている。しかして、文字等のテキストデータである静止画圧縮データと、動画圧縮データとが別々に作成され、CGROM804内に別々に格納されることにより、綴り間違い等の不具合が発生しても、その文字等のテキストデータだけを修正すれば良いからデバックの精度を向上させることができ、さらには、作業工数を削減することができる。
このように構成されるサブ制御基板80には、ランプ演出効果を現出するLEDランプ等の装飾ランプが搭載されている装飾ランプ基板90が接続され、さらに、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が接続され、遊技の進行に伴い所定の演出動作を行う可動役物装置43が接続されている。そしてさらに、BGMや効果音等を発するスピーカ16が接続され、さらに、液晶表示装置41が接続されている。
かくして、このように構成されるサブ制御基板80は、主制御基板60(主制御CPU600)より送信される大当たり抽選結果(大当たりかハズレの別)に基づく特別図柄変動パターン、現在の遊技状態、始動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドをサブ制御CPU800aにて受信する。そして、サブ制御CPU800aは、受信した演出制御コマンドに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
サブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、当該制御信号に対応する音データを音ROM802より読み出し、スピーカ16に出力する。これにより、スピーカ16より上記決定された演出パターンに対応したBGMや効果音が発せられることとなる。
またサブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
そしてサブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、画像に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像データを生成し、その生成した画像データを液晶表示装置41に送信することにより、上記決定された演出パターンに対応した画像が液晶表示装置41に表示されることとなる。
さらにサブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、可動役物に関する制御信号を可動役物装置43に送信する。これにより、可動役物装置43は、上記決定された演出パターンに対応した可動をすることとなる。なお、図3に示す符号100は電源基板で、上記説明した各基板への電源を供給しており、図示では、電源供給ルートは、省略している。
ここで、本発明の特徴部分は、従来別々に設けられていた演出制御基板と液晶制御基板を一体化したことにあるため、以下では、その点をより詳しく説明していく。
まず、サブ制御ROM800b内に格納されている演出シナリオテーブルPR_TBLについて、図4を用いて詳しく説明する。図4(a)に示すように、演出シナリオテーブルPR_TBLには、サブ制御CPU800aにて決定された演出パターンに対応した複数の演出シナリオデータPS_DATAが格納されている。この演出シナリオデータPS_DATAには、液晶表示装置41に表示させる画像データを描画する際に使用される1レイヤ毎のデータである1レイヤデータPS_DATA1が複数格納されている。この1レイヤデータPS_DATA1には、図4(b)に示すように、1フレーム〜10フレーム描画する等のフレームデータPS_DATA10と、制御コードデータPS_DATA11と、液晶表示装置41に表示させる際の位置を示す座標データPS_DATA12と、画像の変形,拡大,縮小,透過度等の画素計算データPS_DATA13と、画像の拡大,縮小を示す拡縮データPS_DATA14とが格納されている。そしてさらには、スピーカ16より発せられる音を示す音データPS_DATA15と、可動役物装置43を可動させるための可動役物データPS_DATA16と、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯させるためのランプデータPS_DATA17とが格納されている。
また、制御コードデータPS_DATA11は、図4(c)に示す制御テーブルCH_TBLが格納されているサブ制御ROM800bのアドレス番地が格納されており、そのアドレス番地に示す内容のデータが参照されることとなる。すなわち、制御テーブルCH_TBLは、図4(c)に示すように、複数のキャラ用データCH_DATAが格納されており、このキャラ用データCH_DATAには、静止画か動画かを示すデータPS_DATA110と、CGROM804のアドレス番地を示すアドレスデータPS_DATA111と、画像サイズを示す画像サイズデータPS_DATA112と、演出ボタン装置13の押下演出の有効/無効を示すボタンデータPS_DATA113と、可動役物装置43の可動を開始するタイミングを示す可動役物タイミングデータPS_DATA114と、が格納されている。これにより、制御コードデータPS_DATA11は、図4(c)に示す制御テーブルCH_TBLに格納されている複数のキャラ用データCH_DATAから、一つのキャラ用データCH_DATAを参照することとなる。なお、演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1は、優先順位が低いものから順に格納されており、この優先順位が低い位置に、図4(c)に示す制御テーブルCH_TBLより動画を示すデータPS_DATA110が参照されるような制御コードデータPS_DATA11が格納され、優先順位が高い位置に、図4(c)に示す制御テーブルCH_TBLより静止画を示すデータPS_DATA110が参照されるような制御コードデータPS_DATA11が格納されている。
かくして、このように、演出に係る画像と光と音についてのデータを演出シナリオテーブルPR_TBLとしてサブ制御ROM800b内に格納することにより、サブ制御CPU800aは、例えば、図5に示すタイムチャートのような制御を行うこととなる。
図5(a)に示すタイムチャートは、演出ボタン装置13を遊技者に押下させるような演出が発生した場合のタイムチャートを示すものである。すなわち、図4(c)に示すボタンデータPS_DATA113に演出ボタン装置13の押下演出が有効である旨のデータが格納されていると、VDP803は、CGROM804内に格納されている演出ボタン装置13の押下演出に対応する静止画圧縮データ並びに動画圧縮データを読み出し、その読み出した静止画圧縮データ並びに動画圧縮データをデコードし、そのデコード後の画像データを適宜変換処理した上で、DDR2SDRAM805のフレームバッファ領域に格納し、もって、その格納した画像データを液晶表示装置41に表示させる。これにより、図5(a)に示すように、タイミングT1(たとえば、10フレーム)からタイミングT10(たとえば、119フレーム)にかけて液晶表示装置41に演出ボタン装置13の押下演出が表示されることとなる。
一方、図4(c)に示すボタンデータPS_DATA113内には、ボタン検出有効可能フラグBU_FLGが組み込まれており、ボタン検出有効可能フラグBU_FLGがONであれば、サブ制御CPU800aは、タイミングT2時に、遊技者が演出ボタン装置13を押下したか否かの判定を開始し、ボタン検出有効可能フラグBU_FLGがOFFであれば、タイミングT3時に、その判定を終了する。そして、タイミングT2〜T3時に、遊技者が演出ボタン装置13を押下すると、図5(b)に示す演出ボタン装置13の押下時演出が実行されることとなる。なお、液晶表示装置41に演出ボタン装置13の押下演出を表示させた後、遊技者が演出ボタン装置13を押下したか否かの判定を開始し、さらに、演出ボタン装置13の押下演出の表示を終了させる前に、判定を終了しているのは、サブ制御CPU800aが、演出ボタン装置13が押下されたことを検出して、処理するまでのタイムラグを考慮したものである。
図5(b)に示すタイムチャートは、遊技者が演出ボタン装置13を押下した際に発生する演出ボタン装置13の押下時演出を示すタイムチャートである。すなわち、サブ制御CPU800aは、遊技者が演出ボタン装置13を押下するとそれに対応する演出シナリオデータPS_DATA(図4(a)参照)を演出シナリオテーブルPR_TBLより選択し、その選択した演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1を優先順位が低いものから順に読み出し実行する。そして、それに基づき、VDP803は、CGROM804内に格納されている静止画圧縮データ並びに動画圧縮データを読み出し、その読み出した静止画圧縮データ並びに動画圧縮でデータをデコードし、そのデコード後の画像データを適宜変換処理した上で、DDR2SDRAM805のフレームバッファ領域に格納し、もって、その格納した画像データを液晶表示装置41に表示させる。これにより、図5(b)に示すように、タイミングT20(たとえば、1フレーム)からタイミングT30(たとえば、80フレーム)にかけて液晶表示装置41に演出ボタン装置13押下時の演出が表示されることとなる。なお、液晶表示装置41に演出ボタン装置13押下時の演出が開始される(タイミングT20参照)と、サブ制御CPU800aは、ボタン検出有効可能フラグBU_FLGをOFFに設定し、遊技者が演出ボタン装置13を押下したか否かの判定を終了している(タイミングT20参照)。これは、遊技者が演出ボタン装置13を連打することにより、演出ボタン装置13押下時の演出が繰り返し実行されてしまう事態を防止するためである。
一方、選択された演出シナリオデータPS_DATA(図4(a)参照)内にランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯させるようなランプデータPS_DATA17(図4(b)参照)が格納されていると、サブ制御CPU800aは、その格納されているランプデータに基づく制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、演出ボタン装置13押下時のランプ演出が実行されることとなる(タイミングT21参照)。
また、選択された演出シナリオデータPS_DATA(図4(a)参照)内に可動役物装置43を可動させるための可動役物データPS_DATA16(図4(b)参照)が格納されていると共に、可動役物タイミングデータPS_DATA114(図4(c)参照)内に可動役物装置43の可動を開始するタイミングを示すデータが格納されていると、サブ制御CPU800aは、その格納されている可動役物データに基づく制御信号を可動開始タイミングに合せて可動役物装置43に送信する。これにより、可動役物装置43が上記開始タイミングで可動することとなり、演出ボタン装置13押下時の可動役物演出が実行されることとなる(タイミングT22参照)。
またさらに、選択された演出シナリオデータPS_DATA(図4(a)参照)内にスピーカ16より発せられる音を示す音データPS_DATA15(図4(b)参照)が格納されていると、サブ制御CPU800aは、その格納されている音データに基づく制御信号を音LSI801に送信する。これを受けて音LSI801は、当該制御信号に対応する音データを音ROM802より読み出し、スピーカ16に出力する。これにより、スピーカ16より効果音が発せられ、演出ボタン装置13押下時の効果音演出が実行されることとなる。
かくして、このような演出制御を設計変更しようとした場合、たとえば、図5(a)に示す、液晶表示装置41に表示される演出ボタン装置13の押下演出の表示時間をタイミングT1〜T10の期間よりも短くしようとした場合、制御テーブルCH_TBL(図4(c)参照)内にシナリオデータとボタンデータを共に格納しているから、簡単容易に設計変更することができる。すなわち、従来であれば、このような設計変更をする場合、演出ボタン装置13の押下演出の表示時間をタイミングT1〜T10の期間よりも短くなるように、液晶制御基板上で管理している液晶制御データを設計変更した上で、さらに、演出制御基板上で管理している演出制御データもその変更に合うように設計変更し、液晶制御基板側に送るコマンドを作成しなければならない。それゆえ、液晶制御データと演出制御データを共に変更することは困難であるため、変更作業にかなりの手間と時間を要し、もって、データの変更に対し柔軟に対応することができないという可能性があった。
しかしながら、本実施形態によれば、演出制御基板と液晶制御基板を一体化することで、制御テーブルCH_TBL(図4(c)参照)内にシナリオデータとボタンデータを共に格納することができるから、液晶表示装置41に表示される演出ボタン装置13の押下演出の表示時間をタイミングT1〜T10の期間よりも短くしようと設計変更する際、合せてボタンデータも変更することができるため、データの変更に対し柔軟に対応することができる。
また、図5(b)に示すランプ演出(タイミングT21参照)、可動役物演出(タイミングT22参照)、効果音演出(タイミングT23参照)の順番を設計変更する場合であっても、図4(a)に示す1レイヤデータPS_DATA1の格納順を変更するだけで良いため、このような場合であっても、データの変更に対し柔軟に対応することができる。
しかして、本実施形態のように、演出制御基板と液晶制御基板を一体化することで、演出に係る画像と光と音についてのデータを演出シナリオテーブルPR_TBLとしてサブ制御ROM800b内に格納するようにしておけば、どのようなデータ変更にも、柔軟に対応することが可能となる。
ところで、液晶表示装置41に表示させる画像データを生成するVDP803は、図6に示すように構成されている。
図6に示すように、VDP803は、DDR2SDRAM805用のインターフェース回路(I/F)8030と、CGROM804用のインターフェース回路(I/F)8031と、サブワンチップマイコン800用のインターフェース回路(I/F)8032とが内蔵されている。そしてさらに、VDP803は、サブワンチップマイコン800(サブ制御CPU800a)からインターフェース回路(I/F)8032を介してアクセスされるシステム制御レジスタ8033と、コマンドリストを記憶するコマンドメモリ8034と、コマンドリストを解析するコマンドパーサ8035と、CGROM804内のデータの読出しを制御するCGメモリコントローラ8036と、静止画圧縮データをデコードする静止画デコーダ8037と、動画圧縮データをデコードする動画デコーダ8038と、静止画デコーダ8037及び動画デコーダ8038にてデコード(伸張)された画像について、拡大・縮小・回転・移動などのアフィン変換や投影変換などを実行するジオメトリエンジン8039と、内蔵VRAM8040と、液晶表示装置41に表示される画像データを生成するレンダリングエンジン8041と、DDR2SDRAM805内のデータの読出し、及び、DDR2SDRAM805内へのデータの書き込みを制御するDDR2SDRAMコントローラ8042と、液晶表示装置41へレンダリングエンジン8041にて生成された画像データを表示させるタイミング等の制御を行うディスプレイコントローラ8043と、液晶表示装置41へ画像データを送信するにあたり、LVDS(Low Voltage Differential Signaling)形式で送信するLVDS送信部8044とで構成されている。
システム制御レジスタ8033は、VDP803に対する指示データなどをサブワンチップマイコン800(サブ制御CPU800a)が書き込むレジスタ群と、VDP803の動作状態などを示す情報をサブワンチップマイコン800(サブ制御CPU800a)が読み出すレジスタ群とに大別される。これにより、サブワンチップマイコン800(サブ制御CPU800a)は、所定の入力レジスタに必要な設定値を書き込むことで、VDP803を適宜動作させ、必要な出力レジスタの値を参照することで、VDP803の動作状態を把握することが可能となる。
一方、コマンドメモリ8034は、コマンドリストが記憶されるもので、このコマンドリストは、サブワンチップマイコン800(サブ制御CPU800a)よりインターフェース回路(I/F)8032を介して送信されてくるものである。より具体的に説明すると、サブワンチップマイコン800(サブ制御CPU800a)は、主制御基板60(主制御CPU600)にて受信した演出制御コマンドに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンに基づいて、コマンドリストを作成し、インターフェース回路(I/F)8032を介してコマンドメモリ8034に送信する。これを受けて、コマンドメモリ8034は、そのコマンドリストを記憶するというものである。
他方、コマンドパーサ8035は、上記コマンドメモリ8034に記憶されているコマンドリストを解析し、このコマンドリスト解析によって、毎フレーム描画動作が実行されることとなる。すなわち、静止画デコーダ8037は、コマンドパーサ8035によるコマンドリストの解析結果に基づいて、CGメモリコントローラ8036を用いて、アドレスデータPS_DATA111(図4(c)参照)にて示すCGROM804のアドレス番地より静止画圧縮データを読出し、その読み出した静止画圧縮データをデコード(伸張)する。そして、デコードされた静止画データは、内蔵VRAM8040内に一時保存されることとなる。
一方、動画デコーダ8038は、コマンドパーサ8035によるコマンドリストの解析結果に基づいて、CGメモリコントローラ8036を用いて、アドレスデータPS_DATA111(図4(c)参照)にて示すCGROM804のアドレス番地より動画圧縮データを読出し、その読み出した動画圧縮データをデコード(伸張)する。そして、デコードされた動画データは、DDR2SDRAM805内に一時保存されることとなる。
このようにして、デコード(伸張)された静止画や動画(1フレーム分の動画)は、コマンドパーサ8035によるコマンドリストの解析結果、すなわち、図4(b)に示す各種データ(フレームデータPS_DATA10,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14)に基づいて、ジオメトリエンジン8039が、拡大・縮小・回転・移動などのアフィン変換や、投影変換などの処理を施し、その処理が施された静止画データは、内蔵VRAM8040内に格納され、動画データは、DDR2SDRAM805内に格納されることとなる。
そして、その後、レンダリングエンジン8041が機能して、DDR2SDRAM805内に格納されている動画データが、DDR2SDRAMコントローラ8042によって読み出され、レンダリングエンジン8041によって、動画データが描画される。次いで、内蔵VRAM8040より静止画データが読み出され、静止画データが描画される。これにより、動画データ上に静止画データが上書き描画されることにより、液晶表示装置41に表示される画像データが生成されることとなる。なお、この生成された画像データは、DDR2SDRAMコントローラ8042によって、DDR2SDRAM805内のフレームバッファ領域内に書き込まれることとなる。
かくして、フレームバッファ領域内に書き込まれた画像データは、ディスプレイコントローラ8043によって、DDR2SDRAMコントローラ8042より読み出され、LVDS送信部8044によって液晶表示装置41に送信されることとなる。これにより、液晶表示装置41にレンダリングエンジン8041によって生成された画像データが表示されることとなる。
ところで、液晶表示装置41に表示される画像データは1フレーム毎に更新されるが、この1フレームの表示動作が終わったことをサブワンチップマイコン800(サブ制御CPU800a)が把握できるように、図3,図6に示すVSYNC(垂直同期信号)を割込み信号としてVDP803からサブ制御CPU800aに対して送信するようにしている。これにより、サブ制御CPU800aは、1フレーム分の画像データが液晶表示装置41に表示されたことを把握することができる。なお、このVSYNC割込み信号は、33ms毎に発生する。
<サブ制御基板の処理内容>
次に、図5に示す制御に関するより具体的な処理方法について、図7〜図11に示すサブ制御基板80の処理内容(プログラムの概要)を参照して説明する。
まず、パチンコ遊技機1に電源が投入されると、電源基板100(図3参照)から各制御基板に電源が投入された旨の電源投入信号が送られる。そしてその信号を受けて、サブ制御CPU800aは、図7に示すメイン処理を行う。
<メイン処理>
図7に示すように、まず、サブ制御CPU800aが、内部に設けられているレジスタを初期化すると共に、入出力ポートの入出力方向を設定する。そしてさらに、出力方向に設定された出力ポートから送信されるデータがシリアル転送となるように設定する(ステップS1)。
その設定後、サブ制御CPU800aは、上記主制御基板60(図3参照)から受信する演出制御コマンドを格納するサブ制御RAM800c内のメモリ領域を初期化する(ステップS2)。そして、サブ制御CPU800aは、上記主制御基板60からの割込み信号を受信する入力ポートの割込み許可設定処理を行う(ステップS3)。
次いで、サブ制御CPU800aは、作業領域、スタック領域として使用するサブ制御RAM800c内のメモリ領域を初期化し(ステップS4)、音LSI801(図3参照)に初期化指令を行う。これにより、音LSI801は、その内部に設けられているレジスタを初期化する(ステップS5)。
次いで、サブ制御CPU800aは、上・左・右・左上可動役物43a〜43dを動作させるモータ(図示せず)に異常が発生しているか否か、そのモータ(図示せず)を動作させるモータデータが格納されるサブ制御RAM800c内のメモリ領域を確認する。異常データが格納されている場合は、サブ制御CPU800aは、当該モータを原点位置に戻す指令を行う。これにより、上・左・右・左上可動役物43a〜43dは初期位置に戻ることとなる(ステップS6)。
次いで、サブ制御CPU800aは、その内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、サブ制御CPU800aは、1ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する(ステップS7)。
次いで、サブ制御CPU800aは、サブ制御RAM800cの作業領域を対象とする8ビット加算演算であるチェックサム演算を行い、そのチェックサム演算値と、後述するメモリバックアップ(ステップS14参照)にて算出しサブ制御RAM800c内に格納されているチェックサム演算値とを比較し、一致しているか否かの確認を行う(ステップS8)。一致していなければ(ステップS9:NO)、サブ制御RAM800c内の全領域を全てクリアする処理を行う(ステップS10)。
一方、一致(ステップS9:YES)、あるいは、上記ステップS10の処理を終えた後、サブ制御CPU800aは、図示しないウオッチドックタイマ機能を解除し(ステップS11)、サブ制御CPU800aやVDP803等のハードウェアのリフレッシュを実行する(ステップS12)。
次いで、サブ制御CPU800aは、上記サブ制御RAM800c内のメモリ領域に格納されている上記主制御基板60(図3参照)から受信する演出制御コマンドを読み出し、その内容に応じた演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定する(ステップS13)。なお、この演出制御コマンドの受信方法については、後述することとする。
次いで、サブ制御CPU800aは、後述するタイマ割込み処理にて取得した演出ボタン装置13の入力内容を解析する処理を行う(ステップS14)。具体的には、演出ボタン装置13が、遊技者によって、押圧された瞬間か、放された瞬間か、あるいは、押圧されたままの状態か等の解析を行う。
次いで、サブ制御CPU800aは、上記ステップS13にて抽選により決定した演出パターンに基づいて、上・左・右・左上可動役物43a〜43dの動作制御や、装飾ランプ基板90(図3参照)に搭載されているLEDランプ等の装飾ランプの点灯又は消灯の制御や、スピーカ16の制御や、液晶表示装置41に表示される画像の制御を実行する(ステップS15)。なお、具体的な処理方法については、後述することとする。
次いで、サブ制御CPU800aは、サブ制御RAM800cの作業領域を対象とする8ビット加算演算であるチェックサム演算を行い、そのチェックサム演算値を、サブ制御RAM800c内に格納するメモリバックアップ処理を行う(ステップS16)。
次いで、サブ制御CPU800aは、VDP803からサブ制御CPU800aに対してVSYNC割込み信号が送信されてきたか否かの確認を行う(ステップS17)。VSYNC割込み信号が送信されて来なければ(ステップS17:NO)、サブ制御CPU800aは、VSYNC割込み信号が送信されてくるまで、ステップS17の処理を繰り返し実行し、VSYNC割込み信号が送信されてくると(ステップS17:YES)、再度ステップS8の処理に戻り、ステップS8〜S17の処理を繰り返すこととなる。
<データ解析処理>
続いて、図8を参照して、メイン処理のステップS15のデータ解析処理にて詳述する。まず、サブ制御CPU800aは、ステップS13にて抽選により決定した演出パターンに対応する演出シナリオデータPS_DATA(図4(a)参照)を演出シナリオテーブルPR_TBLより選択し、その選択した演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1に格納されている各種データ(フレームデータPS_DATA10,制御コードデータPS_DATA11,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14)に基づき、VDP803に液晶表示装置41に表示させる画像データを生成するためのコマンドリストを生成する(ステップS50)。なお、遊技者の演出ボタン装置13の操作によっては、演出ボタン装置押下時演出が発生する場合、演出ボタン装置押下時用のコマンドリストと、演出ボタン装置非押下時用のコマンドリストとが生成されることとなる。
次いで、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されているボタンデータPS_DATA113(図4(c)参照)に組み込まれているボタン検出有効可能フラグBU_FLGの内容をサブ制御RAM800c内のメモリ領域に格納する。
そしてさらに、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されているランプデータPS_DATA17(図4(b)参照)のデータ内容に基づき、光に関する制御信号を生成し、サブ制御RAM800c内に格納する処理を行う。なお、遊技者の演出ボタン装置13の操作によっては、演出ボタン装置押下時演出が発生する場合、演出ボタン装置押下時用の制御信号と、演出ボタン装置非押下時用の制御信号とが生成されることとなる。
また、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されている可動役物データPS_DATA16(図4(b)参照)のデータ内容に基づき、上・左・右・左上可動役物43a〜43dの動作内容を決定し、その決定した動作内容に応じた可動役物装置43のモータ(図示せず)のモータデータを生成する。なお、遊技者の演出ボタン装置13の操作によっては、演出ボタン装置押下時演出が発生する場合、演出ボタン装置押下時用のモータデータと、演出ボタン装置非押下時用のモータデータとが生成されることとなる。
またさらに、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されている音データPS_DATA15(図4(b)参照)のデータ内容に基づき、音に関する制御信号を生成する(ステップS51)。なお、遊技者の演出ボタン装置13の操作によっては、演出ボタン装置押下時演出が発生する場合、演出ボタン装置押下時用の制御信号と、演出ボタン装置非押下時用の制御信号とが生成されることとなる。
かくして、サブ制御CPU800aは、図7に示すステップS13にて抽選により決定した演出パターンに基づくデータを全て生成し終えるまで(ステップS52:NO)、上記ステップS50及びステップS51の処理を繰り返し行い、上記データを全て生成し終えると(ステップS52:YES)、ステップS53の処理に進む。
次いで、サブ制御CPU800aは、上記ステップS51にてサブ制御RAM800c内に格納したボタン検出有効可能フラグBU_FLGの内容及び図7に示すステップS14にて処理した演出ボタン装置13の入力内容に基づき、演出ボタン装置有効時処理を行う(ステップS53)。具体的には、ボタン検出有効可能フラグBU_FLGが有効に設定されており、且つ、演出ボタン装置13が遊技者に押下された瞬間であれば、サブ制御CPU800aは、演出ボタン装置押下時演出を実行する。すなわち、サブ制御CPU800aは、ステップS50にて生成した演出ボタン装置押下時用のコマンドリストをVDP803(図3,図6参照)に送信する。これにより、VDP803は、CGROM804内に格納されている静止画圧縮データ並びに動画圧縮データを読み出し、その読み出した静止画圧縮データ並びに動画圧縮データをデコードし、そのデコード後の画像データを適宜変換処理した上で、DDR2SDRAM805のフレームバッファ領域に格納し、もって、その格納した画像データを液晶表示装置41に表示させる。この処理により、液晶表示装置41に、図5(b)に示すような演出ボタン装置13の押下時演出が表示されることとなる。
一方、サブ制御CPU800aは、可動役物タイミングデータPS_DATA114(図4(c)参照)内に可動役物装置43の可動を開始するタイミングを示すデータが格納されていると、そのタイミングに合せてステップS51にて生成した演出ボタン装置押下時用のモータデータを出力ポートよりシリアル転送で送信する。これにより、上・左・右・左上可動役物43a〜43dが、上記可動開始タイミングに応じてそのモータデータに基づいた動作をすることとなる。この処理により、図5(b)に示す可動役物演出(タイミングT22参照)が実行されることとなる。
また、サブ制御CPU800aは、ステップS51にて生成した演出ボタン装置押下時用の音に関する制御信号を音LSI801に送信する。これを受けて、音LSI801は、その制御信号に応じたBGMあるいは効果音を音ROM802から読み出す。これにより、音LSI801は、その読み出した音データに基づく処理を行い、音源データとしてスピーカ16へ出力する処理を行う。この処理により、図5(b)に示す効果音演出(タイミングT23参照)が実行されることとなる。
そして、サブ制御CPU800aは、ステップS51にて生成した演出ボタン装置押下時用の光に関する制御信号を選定し、サブ制御RAM800c内に記憶する処理を行う。この制御信号が、後述するタイマ割込み処理にて、装飾ランプ基板90(図3参照)に送信される。これにより、装飾ランプが点灯又は消灯することとなり、図5(b)に示すランプ演出(タイミングT21参照)が実行されることとなる。
なお、サブ制御CPU800aは、演出ボタン装置押下時演出を実行する際、ボタン検出有効可能フラグBU_FLGを、無効に設定することとなる(図5(b)に示すタイミングT20参照)。
他方、サブ制御CPU800aは、ボタン検出有効可能フラグBU_FLGが有効に設定されていないか、又は、演出ボタン装置13が遊技者に押下された瞬間でなければ、ステップS53の処理にて演出ボタン装置非押下時演出が実行されることとなる。なお、この際、演出ボタン装置押下演出がある場合は、液晶表示装置41に、図5(a)に示すような演出ボタン装置押下演出が表示されることとなる。
<タイマ割込み処理>
続いて、図9を参照して、メイン処理のステップS7(図7参照)の処理にて設定した、1ms毎のタイマ割込みが発生した際の処理について説明する。
図9に示すように、サブ制御CPU800aは、1ms毎のタイマ割込みが発生した際、各レジスタの内容をサブ制御RAM800c内のスタック領域に退避させる退避処理を実行する(ステップS100)。
次いで、サブ制御CPU800aは、演出ボタン装置13のデータや可動役物装置43のモータデータ等を2度取得し(ステップS101)、その2度取得したデータが一致しているか否かを確認する(ステップS102)。データが一致していなければ、サブ制御CPU800aは、データが一致するまで(ステップS102:NO)ステップS101の処理を繰り返し、一致していれば(ステップS102:YES)、一致したデータをサブ制御RAM800c内に格納する(ステップS103)。
次いで、サブ制御CPU800aは、演出ボタン装置13からの信号を受信する(ステップS104)。この受信した信号が、図7に示すステップS14の演出ボタン装置解析処理にて解析されることとなる。
次いで、サブ制御CPU800aは、ステップS53にてサブ制御RAM800c内に記憶した光に関する制御信号を装飾ランプ基板90(図3参照)に送信する(ステップS105)。これにより、装飾ランプが点灯又は消灯することとなり、図5(b)に示すランプ演出(タイミングT21参照)が実行されることとなる。
次いで、サブ制御CPU800aは、ステップS100の処理で退避しておいたレジスタを復帰させる(ステップS106)。これにより、図7に示すメイン処理に戻ることとなる。
<コマンド受信割込み処理>
続いて、図10を参照して、このようなメイン処理の実行中に、主制御基板60より演出制御コマンド及び割込み信号が送信されてきた際の処理について説明する。
図10に示すように、サブ制御CPU800aは、上記割込み信号を受信した際、各レジスタの内容をサブ制御RAM800c内のスタック領域に退避させる退避処理を実行する(ステップS150)。その後、サブ制御CPU800aは、演出制御コマンドを受信した入力ポートのレジスタを読み出し(ステップS151)、サブ制御RAM800c内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを算出する(ステップS152)。
そしてその後、サブ制御CPU800aは、再度、演出制御コマンドを受信した入力ポートのレジスタを読み出し(ステップS153)、ステップS151にて読み出した値とステップS153にて読み出した値が一致しているか否かを確認する。一致していなければ(ステップS154:NO)、ステップS157に進み、一致していれば(ステップS154:YES)、上記算出したポインタに対応するアドレス番地に、主制御基板60より受信した演出制御コマンドを格納する(ステップS155)。なお、この格納された演出制御コマンドが、図7に示すステップS13の処理の際、サブ制御CPU800aに読み出されることとなる。
次いで、サブ制御CPU800aは、サブ制御RAM800c内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを更新し(ステップS156)、ステップS150の処理で退避しておいたレジスタを復帰させる(ステップS157)。これにより、図7に示すメイン処理に戻ることとなる。
<コマンドリスト>
ここで、図8に示すステップS50にて生成したコマンドリストについて、図11を用いて詳しく説明する。
このコマンドリストは、VDP803(コマンドパーサ8035)に対する指令を列記したコマンド列であるが、その記載内容や記載順序が、動画の描画を指示する場合と、静止画の描画を指示する場合とでやや相違する。
動画の描画をVDP803に指示する場合は、図11(a)の初期コマンドリストと、図11(b)の定常コマンドリストの構成となる。
図11(a)に示すように、サブ制御CPU800aは、先ず、フレームバッファ領域が設定されているDDR2SDRAM805のメモリ領域、並びに、DDR2SDRAM805の動画データを格納するメモリ領域の設定を行うコマンドを生成する(ステップS200)。なお、フレームバッファ領域が設定されているDDR2SDRAM805のメモリ領域を設定するにあたっては、図4(c)に示す画像サイズデータPS_DATA112が参照される。すなわち、サイズが例えば640×320であれば、それに応じたメモリ領域が設定されることなる。
次いで、動画のデコードを指示するコマンドを生成する(ステップS201)。具体的には、どの動画圧縮データをデコードするかの指示であり、該当する動画が格納されているCGROM804のアドレス番地やその動画のフレーム数などと共に指示する。なお、該当する動画が格納されているCGROM804のアドレス番地は、図4(c)に示すアドレスデータPS_DATA111が参照され、その動画のフレーム数は、図4(b)に示すフレームデータPS_DATA10が参照される。
次いで、終了処理用コマンドを記入して初期コマンドリストの生成を終える(ステップS202)。
続いて、サブ制御CPU800aは、図11(b)に示す定常コマンドリストを生成する。
この定常コマンドリストは、図11(b)に示すように、動画の描画指示で構成されており、上記初期コマンドリストにおいて、デコードした動画データに関し、どのフレーム番号のデコードデータを、液晶表示装置41のどの座標位置に描画するかのコマンドを生成する(ステップS203)。次いで、終了処理用コマンドを記入して定常コマンドリストの生成を終える(ステップS204)。なお、この描画指示にあたってのコマンド生成は、図4(b)に示すフレームデータPS_DATA10,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14が参照される。
一方、静止画の描画をVDP803に指示する場合、図11(c)に示すとおり、サブ制御CPU800aは、先ず、フレームバッファ領域が設定されているDDR2SDRAM805のメモリ領域、並びに、静止画データを格納する内蔵VRAM8040のメモリ領域の設定を行うコマンドを生成する(ステップS210)。なお、フレームバッファ領域が設定されているDDR2SDRAM805のメモリ領域を設定するにあたっては、図4(c)に示す画像サイズデータPS_DATA112が参照される。すなわち、サイズが例えば640×320であれば、それに応じたメモリ領域が設定されることなる。
次いで、静止画のデコードを指示するコマンドを生成する(ステップS211)。具体的には、どの静止画圧縮データをデコードするかの指示であり、該当する静止画が格納されているCGROM804のアドレス番地やデータサイズなどと共に指示する。なお、該当する静止画が格納されているCGROM804のアドレス番地は、図4(c)に示すアドレスデータPS_DATA111が参照され、データサイズは、図4(c)に示す画像サイズデータPS_DATA112が参照される。
次いで、デコードされた静止画データを、液晶表示装置41のどの座標位置に、どのような態様(回転角度や縮小拡大等)で描画するかのコマンドを生成する(ステップS212)。次いで、終了処理用コマンドを記入して静止画に関するコマンドリストの生成を終える(ステップS213)。なお、この描画指示にあたってのコマンド生成は、図4(b)に示すフレームデータPS_DATA10,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14が参照される。
かくして、このような動画に関するコマンドリスト並びに静止画に関するコマンドリストは、VDP803(図3,図6参照)に送信され、適宜処理された上で、液晶表示装置41に送信される。これにより、液晶表示装置41に所望の画像が表示されることとなる。
ところで、このようなコマンドリストは、動画の描画を指示した後、静止画の描画を指示することとなる。それは、サブ制御CPU800aは、主制御CPU600より送信されてくる演出制御コマンドによって、図4(a)に示す演出シナリオテーブルPR_TBLに格納されている複数の演出シナリオデータPS_DATAのうち、何れかの演出シナリオデータPS_DATAを選択し、その選択した演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1を優先順位の低いものから順に参照し、コマンドリストを生成するためである。すなわち、本実施形態によれば、この優先順位が低い位置に、図4(c)に示す制御テーブルCH_TBLより動画を示すデータPS_DATA110(図4(c)参照)が参照されるような制御コードデータPS_DATA11が格納され、優先順位が高い位置に、図4(c)に示す制御テーブルCH_TBLより静止画を示すデータPS_DATA110(図4(c)参照)が参照されるような制御コードデータPS_DATA11が格納されているため、動画の描画を指示するコマンドリストが先に生成され、その後、静止画の描画を指示するコマンドリストが生成することとなる。これにより、動画データが描画された後、その描画された動画データ上に静止画データが上書き描画されることとなり、もって、液晶表示装置41に表示される画像データが生成されることとなる。
しかして、このように、描画された動画データ上に静止画データが上書き描画されることによって、画像データが生成されることにより、圧縮画像であっても文字を鮮明に表示させることができる。
しかして、以上説明した本実施形態によれば、データの変更に対し柔軟に対応することができる。
なお、本実施形態においては、DDR2SDRAM805内にフレームバッファ領域を設定するようにしたが、それに限らず、内蔵VRAM8040内にフレームバッファ領域を設定するようにしても良い。
また、サブワンチップマイコン800内にサブ制御CPU800aを設ける例を示したが、それに限らず、VDP803内にサブ制御CPU800aを設けるようにしても良い。