以下、本発明をパチンコ機に適用した一実施形態について、各対応図面を参照しながら説明する。
(1.パチンコ機の概要構成例)
図1は、本発明の遊技機の一実施形態であるパチンコ機1の構成例を示す正面図である。このパチンコ機1は、ホール等の遊技場の島設備に複数台が横方向に並べて設置されており、いわゆるCR(Card Reader)機の場合、カードユニット12が設置されている。以下、まずパチンコ機1の概要構成例について説明する。
このパチンコ機1は、基枠が、ヒンジ機構を介して木製の外枠に開閉可能に装着されている。その基枠には、前面枠(ガラス枠5)がヒンジ機構を介して、その基枠に対して開閉可能に装着されている。本実施形態では、これら基枠や前面枠等の枠体を総称して「本体枠17」と呼称する。このうち基枠には、遊技盤2が着脱可能に嵌め込まれている。
またガラス枠5には、多数の枠ランプ(枠装飾ランプ31など)が縦方向に沿って複数配置されるほか、遊技の進行に伴い効果音や音声などの音響出力を行うための上部スピーカ29aや、遊技者が適宜プッシュ操作できる演出ボタン10等が設置されている。またガラス枠5の下部には、遊技球を収容する上皿4が設けられているとともに、基枠の下部には下皿6が設けられている。またその他にも、ガラス枠5の下部に位置する基枠の右下隅には発射ハンドル8が設けられている。この発射ハンドル8は、上皿4に収容された遊技球を順次発射させるために遊技者が操作する操作部である。また上皿4の左側位置の内側には、下部スピーカ29bが配置されている。
遊技盤2は、その前面にほぼ円形の遊技領域が形成されており、その中央部には演出装置14が設けられている。その遊技領域には、多数の誘導釘(図示されていない)が所定のゲージ配列で打設されているほか、図示しない風車や各種入賞口(始動入賞口15b、大入賞口15c、一般入賞口等)、ゲート口13、パネル装飾ランプ(参照符号なし)等が盤面構成要素として配設されている。これらの各種入賞口には、遊技球の入球を検出するための入賞検出器(図1において図示せず)が設けられている。また、ゲート口13には、遊技球の通過を検出するためのゲート通過検出器(図1において図示せず)が設けられている。
また、演出装置14の下縁部には球ステージ14aが形成されており、この球ステージ14a上に遊技球が誘導されると、この遊技球は、一時的に転動しながら動きに変化が与えられる。さらにこの遊技球は、この球ステージ14aに形成された球誘導路14bの入口に落下すると、この球誘導路14bに誘導されてその直下に設けられた始動入賞口15bに入球し、図示しない入賞検出器によって入賞が検出される。
また遊技盤2の右下縁部には、複数の発光ダイオード(LED:Light Emitting Diode)を用いた特別図柄表示装置41が設けられている。この特別図柄表示装置41は、始動入賞があると、その後(例えば始動入賞を契機に)点灯或いは消灯状態を繰り返すとともに、所定時間(後述する「変動時間」に相当)経過後、メイン制御基板において実行した内部的な抽選(大当り抽選及び判定)の結果に応じた点灯状態或いは消灯状態となる。また、この遊技盤2の右下縁部には、発光ダイオードを用いた普通図柄表示装置42が設けられている。この普通図柄表示装置42も、ゲート口13の通過を契機に変動期間にわたり点灯状態を変化させる構成となっている。ここで、この普通図柄表示装置42の点灯状態が所定の点灯状態となると、例えば電動チューリップ型の始動入賞装置(入賞検出手段)を所定時間入賞しやすい開状態にする。さらに、普通図柄表示装置42の近傍には、状態表示ランプ46が設けられている。
また、上記演出装置14内には、装飾図柄表示装置16が配置されている。この装飾図柄表示装置16は、上記大当り抽選及び判定の結果を装飾的に表した装飾図柄を表示する表示装置である。この装飾図柄表示装置16は、始動入賞口15bへの入賞があると、その後に表示内容が変化し、上記特別図柄表示装置41の点灯状態の変化と並行して装飾図柄の変動を表す画像等を表示する。この装飾図柄は、一定時間(変動時間)に渡って変動した後に停止し、上記大当り抽選及び判定の結果当選している場合には、予め定められた停止図柄態様(例えば同種の装飾図柄が3つ揃った表示態様)となり、パチンコ機1において特別な遊技状態(以下「特別遊技状態」と呼称する)に移行する。
この特別遊技状態では、例えばラウンド動作を15ラウンドにわたり繰り返す。各ラウンド動作では、例えば大入賞口ソレノイド18が1回作動することで、大入賞口15cが遊技球を受け入れ可能な状態となる。また装飾図柄表示装置16においては、そのラウンド動作として表示内容が大当り中のラウンド表示に切り替わり、ラウンド演出表示(入賞個数のカウント表示や継続ラウンド回数など)を行う。また、15ラウンドのラウンド動作を実行する特別遊技状態が終了した後に特典遊技(いわゆる「確変」や「時短」など)に移行すると、それぞれ特典遊技中である旨の情報(「確変中」や「時短中」)などが表示される場合もある。
また、遊技盤2における演出装置14の下縁部左右には、特別図柄保留ランプ43が設けられている。この特別図柄保留ランプ43は、始動記憶する条件が揃っていた場合に始動入賞を保留して、その保留状況を表示する構成となっている。具体的には、各特別図柄保留ランプ43には、例えば「1」、「2」、「3」、「4」という数字を模した半透過領域が設けられており、これら半透過領域が各々左から右へ「1」〜「4」を表すとともに順番に配列している。これら4つの半透過領域は、「1」〜「4」の発光(点灯)態様に応じて特別図柄の始動記憶数(1〜4)を表している。
さらに遊技盤2の下縁部には普通図柄保留ランプ44が設けられている。この普通図柄保留ランプ44は、普通図柄表示装置42による点灯状態が変化中にゲート口13の通過を保留して、その保留状況を表示する。この普通図柄保留ランプ44の近傍には、大当り種類表示ランプ45が設けられている。大当り種類表示ランプ45は、大当りとなった場合に少なくとも1つが点灯し、それによって大当りの種類を表示する。また遊技盤2の背面においては、その上部にメイン制御基板及びサブ制御基板などが設けられており、装飾図柄表示装置16の背面には表示制御基板(後述する装飾図柄制御基板)が配置されている。また本体枠17には、図示しない払出制御基板及び発射制御基板が設けられている。
(2.パチンコ機の電気的な構成例)
図2は、パチンコ機1の電気的な構成例を示すブロック図である。
まずメイン制御基板3(遊技制御部)は、サブ制御基板35(演出制御部)及び払出制御基板25などの基板に接続されている。サブ制御基板35は、表示動作を制御する装飾図柄制御基板30に接続されており、払出制御基板25は、発射制御基板47や賞球払出装置21に接続されている。
装飾図柄制御基板30は、上記装飾図柄表示装置16に接続されている。なお本実施形態では、サブ制御基板35(演出制御基板)と装飾図柄制御基板30(表示制御基板)とが別体となっているが、これに限られず、サブ制御基板35と装飾図柄制御基板30とが一体となっており、サブ制御基板35(演出制御部)が装飾図柄制御基板30の機能を備えている形態であっても良い。このような形態を採用した場合においては、サブ制御基板35が直接、装飾図柄表示装置16に接続された構成となっている。
サブ制御基板35は、装飾図柄制御基板30に対して、遊技動作中には遊技の進行に応じた演出表示動作を制御するための演出表示コマンドなどを送信する。装飾図柄制御基板30は、その演出表示コマンドなどを受信し、この演出表示コマンドに基づいて遊技の進行に応じた映像を装飾図柄表示装置16に表示させる。この演出表示コマンドは、サブ制御基板35によって指定された演出表示パターン番号を含んでおり、この演出表示パターン番号は、装飾図柄制御基板30が実行制御すべき演出表示パターンに対応した番号を表している。また、このサブ制御基板35は、ランプ中継基板32及びランプ中継基板34を介して、各々パネル装飾ランプ36及び枠装飾ランプ31を点灯制御する。
メイン制御基板3は、CPU3a(以下「メインCPU」と呼称する)、RAM3b、ROM3c、入出力インタフェース等(全ては図示されていない)の電子部品類を備えている。このメイン制御基板3には、入賞を検出する入賞検出器15a(入賞検出手段)が接続されている。この入賞検出器15aは、遊技領域内にて各種の入賞口(始動入賞口15b、大入賞口15c、一般入賞口等)への入球があったこと(以下、始動入賞口15bへの入球を「始動入賞」と呼称する)を検出し、その検出信号をメイン制御基板3に出力する。ゲート通過検出器(ゲートスイッチ)13aは、ゲート口13を遊技球が通過したことを検出し、その検出信号としてのゲート通過信号をメイン制御基板3に出力する。
メイン制御基板3による遊技動作の制御は、例えばメインCPU3aが制御プログラム(以下「メイン制御プログラム」と呼称する)を実行することで行われる。メイン制御プログラムは、ソフトウェア上の乱数を生成しており、始動入賞を契機として乱数値(大当り判定用乱数値)を取得する(本実施形態では「大当り抽選」と呼称している)。そしてメイン制御プログラムは、後述する大当り判定タイミングにおいて、取得した乱数値が大当り乱数値に一致しているか否かを判断し(本実施形態では「判定」と呼称している)、両乱数値が一致していると判定した場合には「大当り」とする一方、一致していないと判定した場合には「はずれ」とする。ここで、大当り判定タイミングとは、始動入賞後、この始動入賞に基づく特別図柄の変動表示を開始する時をいう。
またメイン制御プログラムは、このように始動入賞があると、その後、特別図柄表示装置41による特別図柄の変動表示を開始し、所定の変動時間が経過すると、上記大当り抽選結果に応じて、特別図柄表示装置41に停止図柄を表示させる。なお、上記「大当り」としては、いわゆる「確変大当り」及びいわゆる「普通大当り」を含んでいる。
メイン制御プログラムは、大当り抽選及び判定の結果が大当りである場合、変動表示を開始させ、この変動表示の停止後に、特別遊技状態へと移行させる。この特別遊技状態では、メイン制御プログラムが、例えば大入賞口ソレノイド18を既定回数にわたり作動させることで(ラウンド動作)、例えば15ラウンドにわたり大入賞口15cが遊技球を受け入れ易い状態となることを繰り返す。このとき遊技者は、大入賞口15cの開放中に遊技球(遊技媒体)を入賞させてより多くの賞球を獲得することができる。上記以外にもメイン制御基板3による遊技動作の制御は各種があるが、いずれも公知であるため、ここでは詳細な説明を省略する。
メイン制御プログラムは、上記大当り抽選及び判定をした後に、サブ制御基板35に対して抽選結果及び演出コマンドを出力する。なお、この演出コマンドは、演出動作を実行すべき時間(前述の「変動時間」に相当)に関する情報を含んでいる。
サブ制御基板35は、メイン制御基板3から受け取った抽選結果及び演出コマンドに応じて演出動作を制御する。このサブ制御基板35は、CPU35a(以下「サブCPU」と呼称する)、RAM35b、ROM35c、入力インタフェース(コマンド受信バッファなど)などの電子部品類を備えている。このサブ制御基板35においては、CPU35aが制御プログラム(以下「サブ制御プログラム」と呼称する)を実行することによって演出動作を制御している。
サブ制御プログラムは、メイン制御基板3からのコマンドなど(抽選結果、演出コマンド、遊技状態コマンドなど)を受け取ると、受け取ったコマンドなどを解析する。
サブ制御プログラムは、コマンドなどの解析結果から得た抽選結果及び変動時間に応じて、いかなる演出パターンで演出動作を制御すべきかに関して抽選(以下「演出抽選」と呼称する)を実行する。具体的には、サブ制御プログラムは演出制御スケジューラを管理しており、この演出制御スケジューラは、この抽選結果ごとに(「大当り」であるか「はずれ」であるかに応じて各々)、実行すべき演出パターンを複数管理している。さらにこの演出制御スケジューラは、同一の抽選結果であっても変動時間の長さが異なる複数の演出パターンを備えている。また、同一の抽選結果であり、かつ変動時間が同じであっても演出内容の異なる複数の演出パターンが存在する。このようにしてサブ制御プログラムは、この演出制御スケジューラを参照しつつ、これら抽選結果及び変動時間に対応した演出パターンを選定すべく演出抽選を実行しているのである。
このような演出抽選を実行した後、サブ制御プログラムは、変動時間にわたり演出パターンに従って、スピーカ29a、29bから音を出力させたり、ランプ中継基板32を介してパネル装飾ランプ36を所定の色で点灯させたり消灯させたり、ランプ中継基板34を介して枠装飾ランプ31を所定の色で点灯させたり消灯させる。
また併せてサブ制御プログラムは、選定した演出パターンに対応して、装飾図柄表示装置16による変動表示に関する演出表示パターンも選定している。この演出表示パターンの選定後、このサブ制御プログラムは、サブ制御基板35から装飾図柄制御基板30に対して、この演出表示パターン及び停止図柄に関する情報を含めた演出表示コマンドを出力するよう制御する。
この装飾図柄制御基板30は、サブ制御基板35が出力した演出表示コマンドを受け取ると、その後、新たな演出表示動作に移行する。具体的には、装飾図柄制御基板30は、まず、サブ制御基板35から受け取った演出表示コマンドを解析し、演出表示パターン及び装飾停止図柄に関する情報を取得する。そして装飾図柄制御基板30は、演出表示パターンに基づく変動時間にわたり装飾図柄表示装置16に装飾図柄を変動表示させた後、その装飾図柄を装飾停止図柄とすべく表示制御する。
払出制御基板25は、CPU25a(以下「払出CPU」と呼称する)、RAM25b、ROM25c、入出力インタフェースなどを有しており、メイン制御基板3との間で双方向通信可能に接続されている。すなわち、メイン制御基板3と払出制御基板25との間はシリアル信号の上下線Su、Sdと、これらに並行して設けられたACK信号の送信線Au、Adとで接続されている。
例えばメイン制御基板3が、賞球の払出を指示する賞球コマンドを下り線Sdを通じてシリアル形式で送信すると、これを受け取った払出制御基板25が送信線Auを通じてメイン制御基板3に対してACK信号を送信する。また払出制御基板25が、払出制御基板25の状態を示す状態コマンド(例えば払出処理中)を上り線Suを通じてメイン制御基板3に対して送信すると、これを受け取ったメイン制御基板3が、送信線Adを通じて払出制御基板25に対してACK信号を送信する。
また賞球払出装置21は、払出制御基板25の制御によって遊技球の払出動作を実行する。すなわち払出制御基板25は、メイン制御基板3から賞球コマンドを受け取ると、賞球払出装置21の払出モータ20を作動させ、この賞球コマンドにより指示された個数分の払出動作を行わせる。払出球検出器22は、実際に払い出された賞球数を1個ずつ検出し、払出制御基板25にフィードバックする。一方、モータ駆動センサ24は、払出モータ20の回転状態(回転角)を検出して同じく払出制御基板25にフィードバックする。
その他、発射制御基板47には、発射モータ49の他に発射ハンドル8からの信号線が接続されている。この発射ハンドル8にはタッチ検出部48が内蔵されており、このタッチ検出部48は、人体(遊技者)の接触を検出して、そのタッチ検出信号を発射制御基板47に出力する。また発射ハンドル8は、図示しない発射スイッチを内蔵しており、発射ハンドル8の操作によりオン信号を発射制御基板47に出力する。この発射制御基板47は、上記台間サンドとしてのカードユニット12によって出力されるカードユニット接続信号が払出制御基板25を介して入力されると、遊技球の発射動作を許可する機能を有している。この発射制御基板47は、これらカードユニット接続信号、タッチ検出信号及びオン信号を受け取った状態ではじめて発射モータ49の駆動を許可し、これにより遊技球の発射動作を行わせることができる。
払出制御基板25の払出CPU25aは、いわゆる球ガミ、球切れ、満タンや、メイン制御基板3と払出制御基板25との接続異常などの障害を検出すると、その障害の種類に応じたエラー情報を払出制御基板25に表示する。具体的には、払出制御基板25には7セグメントLED4aが設けられており、この7セグメントLED4aには、例えばそれら各種の障害の種類ごとにエラー番号が数字で表示されるものとなっている。
また、払出制御基板25にはエラー解除手段としての操作スイッチ4bが設けられており、この操作スイッチ4bは外部から操作可能な位置に配置されている。この操作スイッチ4bは、それら各種の障害が発生したとき、各障害への対処方法を音声ガイダンスする際の契機として用いられるとともに、7セグメントLED4aに表示されるエラー情報(数字表示)をクリアする際に操作される操作手段である。
(3.装飾図柄制御基板30)
次に、装飾図柄制御基板30について図3を参照して説明する。図3は、装飾図柄制御基板30の電気的な構成を簡素化して図示した一例を示すブロック図である。
装飾図柄制御基板30(演出制御部)は、ソースROM(キャラクタROM)340と、グラフィックプロセッサユニット(以下「GPU」という)300を備えている。
装飾図柄制御基板30は、サブ制御基板35からの演出表示コマンドなどに基づいて演出表示動作を制御する機能を有する。また、この装飾図柄制御基板30は前述した装飾図柄表示装置16に接続されており、この演出表示コマンドなどに基づいて表示させるべき映像に対応した映像信号を装飾図柄表示装置16に出力する。
ここで本実施形態では、映像が複数のシーン(ストーリー)の組み合わせによって構成されており、各シーンは多数のフレームの組み合わせによって構成されている。これら各シーンは予め決められた順序で連続的に表示されるものである。各シーンは、多数のフレームが次々と表示されることにより視覚的に構成されるものである。この各シーンは、動画像やスプライト画像の少なくとも一方を含んでおり、例えば動画像として映画のワンシーンを背景とするとともに、背景にスプライト画像として図柄を重ねて表示した映像である。本実施形態では、この映像を1秒間に60枚のフレームによってフレーム割りしたフレームレートで、これらフレーム群の各フレームを次々に連続切り替え表示することで、表示態様が動的に変化する映像を表す。本実施形態では、このフレーム(コマ)を作るときに用いる動画像やスプライト画像を「シーンの素材」と呼称する。なお、本実施形態では、シーンの素材として、特に動画像に関して触れる必要性のある部分以外においては、主としてスプライト画像を例示している。このような複数のシーンにより構成される映像としては、例えば停電状態から復旧中である旨の映像、図柄の変動表示に関する映像、変動している図柄が所定の停止図柄態様(例えば同種の図柄が3つ揃った表示態様)になるかもしれないことを暗示するいわゆるリーチ演出に関する映像を含んでいる。
(3−1.ハードウェアの構成例)
以下、この装飾図柄制御基板30に搭載されている各構成について具体的に説明する。
(3−1−1.ソースROM340)
ソースROM340は、スプライト画像を表示するためのスプライトデータ等の各種素材画像データを不揮発的に記憶する不揮発性映像メモリとして機能しており、バス線によってGPU300に接続されている。ソースROM340のメモリ空間については後述する。
なお、スプライトデータは、予め設定された可逆な圧縮方式によってデータ構造が圧縮された状態で、ソースROM340に格納されている。一方、動画像データは、予め設定された非可逆な圧縮方式によってデータ構造が圧縮された状態で、ソースROM340に格納されている。
(3−1−2.GPU300の構成例)
GPU300は、図3に示されるように、制御ROM301と、SDRAM(Synchronous Dynamic Random Access Memory)302と、コマンドインタフェース(I/F)303と、図柄CPU311と、VDP(Video Display Processor)330とを含んでいる。図柄CPU311、SDRAM302、制御ROM301、VDP330間は、バス307により接続されている。
コマンドインタフェース303は、サブ制御基板35からの演出表示コマンドを受信し、受信した演出表示コマンドを図柄CPU311に転送する。
制御ROM301は、例えばフラッシュROMにより構成され、図柄CPU311の動作を制御するための表示制御プログラムや、表示スケジューラデータ(スケジューラデータ)を格納する。表示スケジューラデータとは、表示すべき映像の構成に関する情報や表示すべき映像を構成する各シーンの描画に必要なスプライトデータ等の素材画像データを特定するための情報を含むデータである。
図柄CPU311は、制御ROM301に格納された表示制御プログラムに基づいて動作を行い、制御ROM301に格納された表示スケジューラデータに基づく映像表示を実現するために、VDP330に対して映像表示処理を指示するための複数のコマンドからなるコマンドリストを生成してVDP330に対してDMA(Direct Memory Access)転送する。
なお、制御ROM301には、様々な映像表示に対応した複数の表示スケジューラデータが格納されている。そのため、図柄CPU311は、コマンドインタフェース303から転送されてきた演出表示コマンドにより、表示すべき映像表示の内容を特定し、特定された映像表示内容に該当する表示スケジューラデータを制御ROM301から読み出し、読み出した表示スケジューラデータに基づく映像表示が実現されるようなコマンドリストを生成する。
SDRAM302は、図柄CPU311により生成されたコマンドリストを一時的に保管する等の用途に使用され、各種データを一時的に保管するための格納領域である。
VDP330は、図柄CPU311から転送されてきたコマンドリストに含まれる複数のコマンドを順次実行することにより、装飾図柄表示装置16に対して映像表示を行うための映像表示プロセッサとして機能する。VDP330は、図柄CPU311から転送されてきたコマンドリストに基づいて、表示すべき映像に応じたスプライトデータ等の素材画像データをソースROM340から読み出して映像を構成する各シーンの描画を行い、生成された描画データを装飾図柄表示装置16に送信することにより各種映像表示を実現する。
(3−1−3.VDP330の構成例)
次に、装飾図柄表示装置16に対する映像表示を行うためのVDP330の構成を図4を参照して説明する。
VDP330は、図4に示されるように、CPU I/F(インタフェース)331、データ転送部332、バス I/F(インタフェース)333、デコーダ334、描画部335、データ格納メモリ336、フレームバッファメモリ337、表示回路338を含んでいる。
CPUインタフェース(I/F)331は、図柄CPU311から転送されてきたコマンドリストを受信する。
データ格納メモリ336は、いわゆるVRAM(Video RAM)であり、スプライトデータ、動画像データ等の描画処理に必要となる各種素材画像データ等を展開しておくための揮発性映像メモリとして機能する。
データ転送部332は、CPUインタフェース331を介して図柄CPU311から送信されたコマンドリストに基づいて、表示すべき映像表示に必要なスプライトデータ、動画像データ等の素材画像データをバスインタフェース333を介してソースROM340から読み出して、データ格納メモリ336に展開する(素材画像データ展開手段)。
なお、スプライトデータは、可逆な圧縮方式によってデータ構造が圧縮された状態でソースROM340に格納されているため、バスインタフェース333を介してソースROM340から読み出されたスプライトデータは、デコーダ334によりデコード処理(伸張処理)された後にデータ格納メモリ336に格納される。
フレームバッファメモリ337は、データ格納メモリ336と同様にVRAMにより実現され、描画部335により描画された映像データを揮発的に記憶可能な構成となっている。なお、フレームバッファメモリ337は、2フレーム分の映像データを描画して格納することが可能となっており、描画部335により1フレーム分の映像データが描画されて格納されている間に、既に描画処理が終了したフレームのデータを表示回路338を介して装飾図柄表示装置16に表示させることができる。
描画部335は、CPUインタフェース331により受信された図柄CPU311からのコマンドリストに基づいて、データ格納メモリ336に格納されている、スプライトデータ、動画像データ等の素材画像データを用いて描画処理を行い、表示すべき映像を構成するフレーム毎に映像データを生成してフレームバッファメモリ337に格納する。
表示回路338は、装飾図柄表示装置16への同期信号(Vブランク信号など)を生成するとともに、この同期信号に同期させつつ、フレームバッファメモリ337のフレームバッファエリアに生成されたイメージデータに基づいた映像信号を装飾図柄表示装置16に出力する。
なお、本実施形態では、ソースROM340から読み出された各種素材画像データを揮発的に格納するためのデータ格納メモリ336がVDP330内に設けられている場合を用いて説明を行なうが、本発明はこのような構成に限定されるものではない。例えば、ソースROM340から読み出された各種素材画像データを揮発的に格納するための揮発性映像メモリがVDP330の外部に設けられているような構成の遊技機に対しても、本発明は同様に適用することが可能である。また、このようにデータ格納メモリ336をVDP330の外部に設けたような構成の場合、データ格納メモリ336とSDRAM302とを同一の揮発性映像メモリにより構成することも可能である。
(3−2.制御ROM301のメモリ空間)
次に、上述した制御ROM301のメモリ空間に関して説明する。
制御ROM301には、図5に示されるように、図柄CPU311の動作を制御するための表示制御プログラム401と、表示スケジューラデータ402が格納されている。表示スケジューラデータ402は、表示すべき映像を構成する各シーンの描画に必要なスプライトデータ等の素材画像データを特定するための情報及び表示すべき映像の構成に関する情報を含んでいる。
(3−2−1.表示スケジューラデータ402の構成例)
そして、表示スケジューラデータ402は、図6に示されるように、フレーム番号501と、キャラクタ番号502と、X座標503と、Y座標504と、基点位置505と、X方向拡大率506と、Y方向拡大率507と、透明度(ブレンド率)508と、回転角509という情報を含んでいる。
フレーム番号501は、この表示スケジューラデータ402が、どのフレームに対する表示内容なのかを示している。キャラクタ番号502は、複数のスプライトデータの中から使用するスプライトデータを特定するための番号を示している。X座標503、Y座標504は、表示画面上におけるスプライト画像を表示する位置を示している。基点位置505は、スプライト画像の表示位置を指定する際の基点の場所を示している。X方向拡大率506、Y方向拡大率507は、それぞれ、スプライト画像をX方向、Y方向にどれだけ拡大(又は縮小)して表示するかを示していて、例えば、0〜511%の範囲で設定することができるようになっている。透明度508は、背景画像上にスプライト画像を重ねて表示する際に、スプライト画像をどれだけ透過させて表示させるかを指定する値であり、例えば、0〜100%の範囲内で指定可能となっている。回転角509はスプライト画像を表示する際の角度を指定するための値である。
ここで、全てのフレームに対して表示スケジューラデータ402が用意されているわけではなく、特定のフレームに対してのみ表示スケジューラデータ402が用意されていて、途中のフレームに対する映像は、用意された表示スケジューラデータ402を参照して補間し描画されるようになっている。
このような表示スケジューラデータ402の具体例を図7に示す。図7では、表示スケジューラデータ402の全ての設定値は示されておらず、フレーム番号501、キャラクタ番号502、X座標503、Y座標504、X方向拡大率506、Y方向拡大率507のみが示されている。
この図7に示した例では、第1、第30、第60フレームに対する表示スケジューラデータ402のみが設定されていて、途中の第2〜第29、第31〜第59フレームの映像表示は、第1、第30、第60フレームに設定された値を参照して算出するようになっている。例えば、第1フレームに設定された値と第30フレームに設定された値とから算出して、第2フレームの値として、X座標6148ピクセル、Y座標4612ピクセル、X方向拡大率102%、Y方向拡大率100%という値を用いる。
ここで、本実施形態では、1秒間の映像表示が60のフレームにより構成されている場合を用いて説明する。この場合には、フレーム周期は約16.7msとなる。
(3−3.ソースROM340のメモリ空間)
次に、上述したソースROM340のメモリ空間に関して説明する。
ソースROM340は、図8に示すように、特定の映像を表示するために予め生成されたスプライト画像を表示するためのスプライトデータ601、色彩に関する指定を行うパレットデータ602、背景画像を表示するための動画データ603等の各種素材画像データを格納している。
(4.遊技機1の動作例)
次に、遊技機1の動作を図面を参照して説明する。
(4−1.遊技制御処理)
ここでメイン制御基板3においては、遊技の進行を制御するメイン制御プログラムが動作しており、このメイン制御プログラムが始動入賞を契機として大当り判定用乱数値を取得している(大当り抽選)。メイン制御プログラムは、始動入賞があると、この始動入賞に基づく大当り判定タイミングにおいて、取得した大当り判定用乱数値と予め定められた当り値とを比較して、大当り判定を実行する。これとともにメイン制御プログラムは、そのような始動入賞があった場合、その後、別途抽選により決定した変動時間にわたり、特別図柄表示装置41による点滅状態(特別図柄の変動表示状態)を継続した後、大当り抽選及び判定の結果に応じて特別図柄表示装置41を点灯状態或いは消灯状態(停止図柄の表示状態)とする。
このような大当り判定を実行すると、メイン制御基板3は、特別図柄表示装置41の制御と並行して、大当り判定の結果と抽選により決定された変動時間に関する情報を含む演出コマンドをサブ制御基板35に対して出力する。この演出コマンドを受け取ったサブ制御基板35においてはさらに演出抽選を実行し、その演出抽選の結果に応じた演出パターンを選定する。この演出パターンは、音や光などを出力するためのパターンである。さらにサブ制御基板35においては、この演出パターンに対応した演出表示パターンを選定する。
この演出表示パターンは、変動時間にわたり、複数用意した演出表示動作のうちどの演出表示動作を実行すべきかに関するパターンを表しており、その演出表示動作として表示する各シーンに対応した情報を含んでいる。
そして、サブ制御基板35は、選定した演出表示パターンに基づいて、装飾図柄表示装置16に対して表示すべき演出表示を示す演出表示コマンドを装飾図柄制御基板30に対して送信する。
(4−2.各制御基板の処理開始タイミング)
次に、メイン制御基板3、サブ制御基板35、装飾図柄制御基板30の処理開始タイミングを図9のタイミングチャートに示す。
図9のタイミングチャートにより示されるように、メイン制御基板3のCPU3a、サブ制御基板35のCPU35aは、リセットが解除されてリセットスタート処理(リセットに基づく初期設定処理)を実行した後、所定の時間だけ待機してから演出コマンドや演出表示コマンド等の送信を行う定常処理を開始する。これは、演出動作に関するコマンドである演出コマンドや演出表示コマンドを受信する下位の基板が、コマンドを送信する上位の基板よりも先にリセットスタート処理が終了している必要があるためである。つまり、装飾図柄制御基板30、サブ制御基板35、メイン制御基板3の順序でリセットスタート処理が終了して、上位の基板からのコマンドを受信可能な状態となる必要がある。そのため、サブ制御基板35では、装飾図柄制御基板30におけるリセットスタート処理時間を考慮した待機時間が設定され、メイン制御基板3では、サブ制御基板35および装飾図柄制御基板30におけるリセットスタート処理時間を考慮した待機時間が設定されている。
このような待機時間が設定されていることにより、図9に示したタイミングチャートでは、時刻T1において装飾図柄制御基板30のリセットスタート処理が完了してサブ制御基板35からの演出表示コマンドを受信することが可能となる。そして、サブ制御基板35、メイン制御基板3では、それぞれ、時刻T2、T3に待機時間が終了して定常処理が開始されると、演出コマンドや演出表示コマンドを下位の基板に対して送信することができるようになる。
(5.装飾図柄表示基板30の動作例)
次に、装飾図柄表示基板30における動作について説明する。
(5−1.リセットスタート処理)
先ず、装飾図柄制御基板30におけるリセットスタート処理(リセットに基づく初期設定処理)について、図10を参照して説明する。このリセットスタート処理は、装飾図柄制御基板30が外部からのリセット信号によりリセットされた或いは新規に電源投入された場合、或いは稼働中に瞬間的な停電状態が生じた場合に、順次実行される処理例を表している。
ここで、リセットには、リセット回路やウオッチドッグタイマ等の外部回路によって発生するハードウェアリセットや、電源立ち上げ時のパワーオンリセットだけでなく、電源断を検出したことによりソフトウェアの内部で実行されるソフトリセットも含まれるものとする。
電源が投入されたり瞬間的な停電状態が生じてリセットが発生した場合、先ずGPU300では、通信ポート等の各種ハードウェアの初期設定処理が実行される(ステップS10)。
(5−1−1.ホット・コールド判定処理)
そして、各種ハードウェアの初期設定処理が実行された後、次のようなホット・コールド判定処理が実行される。このホット・コールド判定処理では、リセット発生時または停電状態から復旧したときに(復電時に)、後述するコールドスタートとするべきであるか、或いは、後述するホットスタートとすべきであるかを判定している。
以下、このホット・コールド判定処理について具体的に説明する。本実施形態では、SDRAM302に格納されているデータのうち、ホット・コールド判定に用いるデータを判定データと呼称している。図柄CPU311は、SDRAM302の判定データに関してサム値を演算し、SDRAM302の他の領域に保持する機能を有する。本実施形態では、このように保持しているサム値を「既定のサム値」と呼称する。
このホット・コールド判定処理では、まずSDRAM302の特定の領域に格納されている判定データに関してサム値を演算し、サム判定を実行する(ステップS20)。ここで本実施形態では、対象とすべき判定データに関してサム値を演算することを「サム判定」と呼称する。次に図柄CPU311は、SDRAM302の特定領域に格納されている判定データから演算したサム値と、既定のサム値とを比較し、両サム値が一致しているか否かを判断して両サム値の整合性を確認する(ステップS30)。このようにサム値の判定を行うことにより、図柄CPU311は、復電時に、SDRAM302の特定領域に格納されている判定データが破壊されておらずに正常であるか否かを判定する(判定手段)。
このサム判定の結果、これら両サム値が一致している場合には、SDRAM302に格納されている判定データ以外のデータについても破壊されていないとみなして、図柄CPU311は、起動モードを「ホットスタート」に設定し(ステップS40)、動作を開始する(本実施形態では「ホットスタート」と呼称している)。一方、そのサム判定の結果、これら両サム値が一致しない場合には、判定データは破壊されているとみなして、図柄CPU311は、SDRAM302の記憶領域のうち、判定データが格納されている領域のみならずその他全ての記憶領域を0クリアして初期化する(ステップS50)。なお「0クリア」とは、対象とする記憶領域に「0」を埋め尽くすことで初期化することをいう。
そして図柄CPU311は、起動モードを「コールドスタート」に設定し(ステップS60)、全てのデータを最初から設定して動作を開始する。本実施形態では、復電時に、図柄CPU311がこのように全て最初からデータを設定して動作を開始することを「コールドスタート」と呼称している。
上記のようなホット・コールド判定処理を実行するのは、復電時に、SDRAM302の判定データが信頼できる状態であった場合には、その判定データが格納されていた領域を含むSDRAM302のメモリ空間全体に記憶されているデータを信頼できる(例えばデータの欠落など不具合がない)ものと推定し、そのメモリ空間のデータを継続的に利用することで、復電後の動作を素早く開始することができるようにするものである。このようにすると、ホットスタートの場合、コールドスタートの場合よりも復電後の映像の表示を早くすることができるからである。
ここで、リセットが発生した場合でも、RAMに記憶されているデータ内容が破壊されない場合があるのは、例えばウオッチドッグタイマが動作してリセットが発生した場合には、RAMの電源が停電したのではないためである。
(5−2.図柄CPU311の動作例)
次に、上述したようなリセットスタート処理後に装飾図柄表示基板30がサブ制御基板35からの演出表示コマンドを受信した場合の動作例について説明する。
サブ制御基板35からの演出表示コマンドは、GPU300のコマンドインタフェース303により受信され、図柄CPU311に転送されて処理される。この図柄CPU311の動作を図11のフローチャートに示す。
図柄CPU311は、サブ制御基板35からの演出表示コマンドを受信すると(ステップS101)、この演出表示コマンドにより特定される演出表示パターンに対応する表示スケジューラデータ402を制御ROM301から読み出す(ステップS102)。
そして、図柄CPU311は、制御ROM301から読み出した表示スケジューラデータ402に基づいて、VDP330に対して送信するためのコマンドリストを生成する(ステップS103)。なお、コマンドリスト生成処理の具体的な動作については後述する。
次に、図柄CPU311は、1つのフレームにおける全てのスプライト画像に対するコマンドリストの生成が終了するまで、各スプライト画像を描画するためのコマンドリストの生成を繰り返し、全てのスプライト画像に対するコマンドリストの生成が終了すると(ステップS104)、生成したコマンドリストをVDP330に送信する(ステップS105)。
そして、図柄CPU311は、表示スケジューラデータ402により設定された全てのフレームに対する処理が終了するまでステップS103〜S105の処理を繰り返す(ステップS106)。
(5−3.コマンドリスト生成処理)
次に、図11のフローチャートのステップS103において示したコマンドリスト生成処理の具体的な動作について説明する。
(5−2−1.使用される主なコマンドの一覧)
先ず、本実施形態のVDP330において使用される主なコマンドの一覧を図12に示す。
この図12に示されるように各コマンドには、コマンド名、コマンドデータ、データサイズ、コマンド内容が設定されている。ここで、コマンドデータとは、コマンドの種類を特定するために各コマンドの先頭に設定される1バイト分の値を示している。
例えば、コマンド内容が描画終了の“EODL”というコマンドは、コマンドデータとして“8F”が設定されており、データサイズが4バイトであるため、“8F○○ ○○○○”というコマンドとなる。
なお、図12に示されたコマンドの一覧は実際に使用されるコマンドのうちの一部を示したものであり、図12に示されていないコマンドも存在する。
(5−3−2.コマンドリストの一例)
次に、図柄CPU311により作成されたコマンドリストの一例を図13に示す。コマンドリストは各フレーム毎に作成されるため、1つのフレームに複数のスプライト画像が含まれる場合には、各スプライト画像に対するコマンドがそれぞれ生成されてコマンドリストに含まれることになる。
図13に示された例では、1番目のスプライト画像に対するコマンドの下に2番目のスプライト画像に対するコマンドが配置されている。このコマンドリストは、1列あたり4バイト毎に区切られており、20バイトのコマンドは5列のデータとして現されている。
図13に示されたコマンドリスト例における1番目のスプライト画像に対するコマンド中には、“44000001 ・・・・・ 00000”というコマンドが含まれている。図12を参照すると、このコマンドの先頭1バイト分の値“44”により、このコマンドのコマンド名は“SETBLNDCNST”でありコマンド内容は、画像間演算における固定値の設定であることがわかる。
(5−3−3.コマンドリスト生成処理の具体な処理の流れ)
次に、本実施形態の遊技機1における図柄CPU311においてコマンドリストが生成される際の具体的な処理について説明する。
本実施形態における図柄CPU311は、VDP330に転送するためのコマンドリストを生成する際に、複数のスプライト画像に共通するコマンドを共通コマンドとしてコマンドリストに設定し、共通コマンド以外のコマンドを各スプライト画像毎に生成してコマンドリストに設定する。
また、図柄CPU311は、あるスプライト画像に対するコマンドを生成しようとする際に、生成しようとするコマンドが既に生成した他のスプライト画像に対するコマンドと同じ内容の場合には、当該コマンドの生成を省略するようにする。ここでは、省略対象のコマンドとして、スプライト画像の透明度の設定を含むコマンドであるコマンドSERFCOLORを用いた場合について説明を行うが、他のコマンドを省略対象のコマンドとした場合でも、本発明は同様に適用可能である。
コマンドリスト生成処理の具体的な処理の流れを図14のフローチャートに示す。
先ず、図柄CPU311があるフレームに対するコマンドリストを生成しようとする場合、複数のスプライト画像に共通するコマンドを共通コマンドとして登録し(ステップS201)、透明度の設定を含むコマンドであるSETFCOLORの初期値を保存する(ステップS202)。
次に、図柄CPU311は、共通コマンド以外のコマンドである、テクスチャロード関連コマンド(TXLOAD2AAC)、テクスチャ属性関連コマンド(SETTXATR等)、描画エフェクト関連コマンド(SETEFFECT)等のコマンドをコマンドリストに登録する(ステップS203)。
そして、図柄CPU311は、透明度の値をコマンドSETFCOLORに合成する(ステップS204)。そして、図柄CPU311は、保存されていた透明度の値とコマンドSETFCOLORに合成した値とが同一か否かを判定する(ステップS205)。ステップS205において、保存されていた透明度の値とコマンドSETFCOLORに合成した値とが同一であると判定された場合、図柄CPU311は、コマンドSETFCOLORのコマンドリストへの登録を行わずに、スプライト描画コマンド(SPRITE)をコマンドリストに登録する(ステップS208)。
ステップS205において、保存されていた透明度の値とコマンドSETFCOLORに合成した値とが同一ではないと判定された場合、図柄CPU311は、コマンドSETFCOLORに合成した透明度の値を保存して(ステップS206)、透明度が合成されたコマンドSETFCOLORをコマンドリストに登録する(ステップS207)。そして、図柄CPU311は、スプライト描画コマンド(SPRITE)をコマンドリストに登録する(ステップS208)。
このようにして1つのスプライト画像におけるコマンドリスト生成が行われると、図柄CPU311は、全てのスプライト画像の処理が終了したか否かを判定して(ステップS209)、全てのスプライト画像に対する処理が終了していればコマンド生成処理を終了する。全てのスプライト画像の処理が終了していない場合には、図柄CPU311は、全てのスプライト画像の処理が終了するまでステップS203からステップS208の処理を繰り返す。
なお、動画は静止画を連続して表示するものであるため、動画データもフレーム単位で見れば静止画である。そのため、背景画像を動画データにより表示する場合でも、スプライト画像等の静止画を装飾図柄表示装置16に表示させる際と同様な処理が行われる。このことにより動画データを描画させるための専用コマンドは存在しない。
このようにして生成されたコマンドリストの一例を図15に示す。図15に示した例では、共通コマンドとして“44000001・・・・00000”というコマンドが設定されている。そのため、1番目のスプライト画像に対するコマンド、2番目のスプライト画像に対するコマンドでは、共通コマンドである“44000001・・・・00000”というコマンドは設定されずに省略されている。そのため、図15に示したように各スプライト画像に対するコマンドのうち共通なコマンドを共通コマンドとして設定した場合、図13に示した共通コマンドを用いずに生成されたコマンドリストと比較して、コマンドリストのデータ量を削減することが可能となる。
また、透明度が同一のコマンドSETFCOLORを省略した場合と省略しなかった場合のコマンドリストの一例を図16に示す。図16(a)は、透明度が同一のコマンドSETFCOLORを省略しなかった場合のコマンドリストの例であり、図16(b)は、透明度が同一のコマンドSETFCOLORを省略した場合のコマンドリストの例である。
図16(b)では、1番目のスプライト画像に対するコマンドにおいて“43000001 0A040216”というコマンドが設定されているため、2番目のスプライト画像に対するコマンドでは、このコマンドが省略されている。そのため、図16(a)、図16(b)を比較すると、同一の透明度のコマンドを2番目以降のスプライト画像に対するコマンドにおいて設定せずに省略することにより、コマンドリストのデータ量が削減されていることがわかる。
(5−3−4.バイリニア補間オン/オフ判定)
次に、バイリニア補間オン/オフ判定処理について説明する。上述したように、図柄CPU311は、図11のフローチャートを参照して説明したようなコマンドリスト生成処理を行うことによりコマンドリストの設定を行っているが、このコマンドリスト作成処理においてバイリニア補間をオンするのかオフするのかを判定するためのバイリニア補間オン/オフ判定を行っている。
本実施形態の遊技機1では、予め用意されたスプライトデータを用いて映像表示を行っているが、予め用意されているスプライトデータとしては基本的なデータしか用意されていない。そのため、多彩な映像を行うために、図柄CPU311は、装飾図柄表示装置16における表示位置、回転角度、拡大率等をコマンドリストを解してVDP330に対して指示することにより各種の多彩な映像表示を実現している。
しかし、予め用意されているスプライト画像を拡大する場合、元のスプライト画像をそのまま拡大したのでは、輪郭部分がギザギザとなる等の弊害が発生して不自然な画像となってしまう場合がある。
このような弊害の発生を防止するために、画像の拡大を行う際に、バイリニア補間等の画像補間処理を用いて画像データを補間することが行われている。ここで、バイリニア補間とは、求めたい座標の画素値を、周りの4点の画素値の重み付けの平均値を求めることにより算出する補間方法である。
しかし、バイリニア補間を行うためには画像を構成する各画素の画素値を求める演算を大量に行う必要があるため、VDP330に対して負荷をかけることとなる。例えば、あるスプライト画像の拡大率を徐々に大きくするような映像を行おうとした場合、フレーム毎にスプライト画像の各画素値をバイリニア補間を用いて算出する必要がある。そのため、1つのフレームに複数のスプライト画像が存在するような場合には、VDP330の処理負担は大きなものとなる。
そこで、本実施形態の遊技機1では、スプライト画像の拡大率が、100%より大きい場合にはバイリニア補間を行うようにするが、拡大率が100%以下でありスプライト画像を原寸または縮小して使用するような場合には、バイリニア補間が行われないようにしてVDP330の処理負担を軽減するようにする。
具体的には、図柄CPU311は、VDP330に対して送信しようとするコマンドリストを生成する際に、表示スケジューラデータ402に示されたスプライト画像の拡大率(図7に示したX方向拡大率506、Y方向拡大率507)が100%よりも大きいか否かを判定する(判定手段)。そして、図柄CPU311は、スプライト画像の拡大率が100%よりも大きい場合には、バイリニア補間をオンするコマンドをコマンドリストに設定し、スプライト画像の拡大率が100%以下の場合には、バイリニア補間をオフするコマンドをコマンドリストに設定するようにする(設定手段)。
そして、図柄CPU311では、図12に示した各種コマンドのうちのSETEFFECTというコマンドのある特定のフラグをオンまたはオフすることにより、バイリニア補間を実行するのか実行しないのかを設定する。そして、VDP330は、図柄CPU311により生成されたコマンドリスト中のSETEFFECTコマンドのフラグを参照することによりバイリニア補間を行って映像表示を実現するのかバイリニア補間を行わずに映像表示を実現するのかを切り替えている。
なお、図柄CPU311は、コマンドリストに設定するコマンドを生成する際に、各種の関数をツールとして使用してコマンドを生成する。例えば、図柄CPU311は、下記に示すようなAttrsetという関数を用いて、スプライト画像を表示する座標位置(X座標503、Y座標504)や拡大率(X方向拡大率506、Y方向拡大率507)を設定するコマンドを自動的に生成している。
Attrset(X座標503、Y座標504、X方向拡大率506、Y方向拡大率507)
そして、このAttrsetという関数に、X方向拡大率506、Y方向拡大率507を設定することにより、Attrsetという関数の中において拡大率の値が判定されて、SETEFFECTというコマンド中のバイリニア補間のオン/オフを指定するパラメータが自動的に設定される。
つまり、図柄CPU311では、Attrsetという関数に、X方向拡大率506、Y方向拡大率507を設定するだけで、自動的にバイリニア補間のオン/オフの設定が行われる。
次に、このバイリニア補間オン/オフ処理の動作を図17のフローチャートを参照して説明する。
図柄CPU311は、あるフレーム中のスプライト画像に対するコマンドリストを生成する際に、表示スケジューラデータ402を参照して、X方向拡大率506、Y方向拡大率507を関数Attrsetに設定する(ステップS251)。
すると、関数Attrsetでは、X方向拡大率506、Y方向拡大率507のいずれかが100%より大きいか否かが判定され(ステップS252)、いずれかの拡大率が100%より大きい場合、コマンドSETEFFECTにはバイリニア補間をオンするフラグが設定され(ステップS253)、いずれの拡大率も100%以下の場合、コマンドSETEFFECTにはバイリニア補間をオフするフラグが設定される(ステップS254)。
なお、本実施形態では、バイリニア補間をオンするかオフするのかを判定するための閾値として100%という値を用いた場合について説明をしているが、本発明はこのような場合に限定されるものではない。その理由としては、拡大率が100%に近く原寸に近い場合、例えば拡大率が101%、102%のような場合には例えバイリニア補間が行われなくても不自然な映像表示とはならない場合もあるからである。このような場合には、100%以外の他の値を閾値とするようにしても良い。例えば、拡大率が120%以下であればバイリニア補間を行わなくても不自然な映像とならないような場合には、拡大率が120%よりも大きい場合にはバイリニア補間が行われるように設定し、拡大率が120%以下の場合にはバイリニア補間が行われないように設定するようにしても良い。
さらに、本実施形態では、スプライト画像の各画素値を補間する画像補間処理としてバイリニア補間を用いた場合について説明しているが、本発明は、バイリニア補間以外の他の画像補間処理を用いた場合でも同様に適用することができるものである。
なお、ソースROM340内に用意するスプライトデータのサイズを、使用するスプライト画像の最大サイズとするようにすれば、常にスプライトデータを縮小して使用することとなる。そのため、このような方法を用いれば、予め用意されているスプライト画像を拡大して使用する場合は発生しないので、バイリニア補間を行わなくても不自然な映像表示となることはない。ただし、使用する最大サイズのスプライト画像を用意しておかなければならないため、画像データ量が大きなものとなってしまい、消費するソースROM340の容量が大きくなる。そのため、スプライト画像の種類が多くなった場合、全てのスプライト画像を最大サイズで用意しようとすると、ソースROM340の容量も大きなものにしなければならなくなり、場合によっては現実的ではなくなってしまう。
(6.表示処理)
次に、VDP330において行われる表示処理について説明する。
(6−1.VDP330の全体動作)
先ず、VDP330の全体動作について図18のフローチャートを参照して説明する。
VDP330では、図柄CPU311からのコマンドリストを受信し、このコマンドリストをデータ格納メモリ336に格納する(ステップS301)。すると、データ転送部332は、受信したコマンドリストに基づいて、映像表示に必要となるスプライトデータ、動画データ等の各種素材画像データをソースROM340から読み出す(ステップS302)。
そして、ソースROM340から転送されてきたスプライトデータ等の素材画像データは、デコーダ334によりデコードされた後にデータ格納メモリ336に格納される(ステップS303)。
描画部335は、図柄CPU311から受信したコマンドリストに含まれる各コマンドに基づいて、データ格納メモリ336に格納されている素材画像データを用いて描画処理を行い、生成された画像データをフレームバッファメモリ337に順次格納していく(ステップS304)。なお、描画部335は、スプライト画像の拡大処理を行う際に、バイリニア補間がオンに設定されている場合には、スプライト画像を拡大する場合にバイリニア補間を行うようにし、バイリニア補間がオフに設定されている場合には、バイリニア補間を行わずにスプライト画像の拡大処理を行う。
最後に、表示回路338は、フレームバッファメモリ337に格納された1フレーム分の画像データを映像信号に変換して、装飾図柄表示装置16に出力する(ステップS305)。
この図18に示されるような表示処理がフレーム毎に行われることにより、VDP330は、図柄CPU311から転送されてきたコマンドリストに基づいて、各シーンの連続表示により構成される映像を装飾図柄表示装置16に対して表示させることができる。
(6−2.動画データのデコード処理)
次に、デコーダ334により動画データがデコード(復号)される際の動作について説明する。
一般的に動画データはそのままではデータ量が大きくなるため、MPEG(Moving Picture Experts Group)等の圧縮方式により符号化されてキャラクタROM内に格納されている。そのため、動画データを用いた描画を行う場合には、VDPは、圧縮された動画データを復号(伸張)してから使用することになる。
MPEG方式により符号化された動画データは、一般的に、Iピクチャ(Intra-coded picture)、Pピクチャ(Predictive-coded picture)、Bピクチャ(Bidirectionally predictive-coded picture)と呼ばれる複数のピクチャにより構成されている。
ここでIピクチャとは、フレーム内での符号化のみが行われたピクチャ(フレーム内符号化ピクチャ)であり、他のフレームに関係なく単独で復号可能なピクチャである。また、Pピクチャとは、表示順序が前のフレームとの間で符号化されたピクチャ(順方向予測符号化ピクチャ)であり、Bピクチャとは、表示順序が前後のフレームとの間で符号化されているピクチャ(双方向予測符号化ピクチャ)である。
つまり、Pピクチャは、単独では復号することができず、Pピクチャを復号するためには表示順序が前のフレームの画像データが存在することが必要となる。また、Bピクチャも単独では復号できず、Bピクチャを復号するためには表示順序が前のフレームの画像データだけでなく表示順序が後ろのフレームの画像データが存在することが必要となる。
圧縮動画データはこのような構成となっているため、圧縮動画データを復号して元の動画データを得るためには複雑な処理が必要となる。しかし、遊技機では、遊技の進行に応じて素早い映像表示が求められるため、Iピクチャ、PピクチャおよびBピクチャから構成されるIPB圧縮動画データではなく、IピクチャとPピクチャとから構成されるIP圧縮動画データが用いられる場合がある。
このようなIP圧縮動画データには、表示順序が後のフレームの画像データを必要とするBピクチャが含まれないため、IP圧縮動画データを構成する各ピクチャを表示順序に基づいて順次復号することによりIP圧縮動画データを伸張して元の動画データとすることが可能となる。
まずは、IP圧縮動画データの構成を図19を参照して説明する。
IP圧縮動画データは、IピクチャおよびPピクチャが表示順序で並べられており、30フレーム間隔でIピクチャが設けられ、各Iピクチャ間にPピクチャが設けられた構成となっている。図19に示した例では、Iピクチャ41とIピクチャ42との間にPピクチャ51〜79が挟まれている様子が示されている。
このようなIP圧縮動画データのデコードを行う場合の処理手順を図20に示す。
このようなIP圧縮動画データのデコードを行う場合、先ずIピクチャのデコードを行い、Iピクチャをデコードすることにより得られたフレーム画像とPピクチャとを用いてデコード処理を行うことにより、後段のフレーム画像を得るようにする。図20に示す例では、先ずIピクチャ41によりN番目のフレーム画像が得られ、N番目のフレーム画像とPピクチャ51とからN+1番目のフレーム画像が得られることが示されている。そして、同様な処理が順次行われることによりN+29番目までのフレーム画像が得られる。そして、Iピクチャ42のみからN+30番目のフレーム画像が得られ、同様にしてN+31番目以降のフレーム画像もデコードされていく。
(6−3.リセットスタート処理からの復帰後における映像表示の再開動作)
次に、本実施形態の遊技機1においてIP圧縮動画データを用いた映像表示の途中に静電ノイズの発生等によるリセットが発生し、映像表示が中断された際に、リセットスタート処理からの復帰後において映像表示が再開される際の動作を図21に示す。
IP圧縮動画データを用いた映像表示の途中に電源瞬断によるリセットが実行され映像表示が中断され、ホットスタートが設定された場合、リセットスタート処理からの復帰後、図柄CPU311には、リセットが発生した際に最後に描画していたフレーム画像の情報が保持されている。
しかし、ホットスタートが設定された場合でも、映像データ等の大量のデータについてはバックアップされていないため、停電状態が発生するまでに保持されていた全ての画像データは破棄されることとなる。このことにより、IピクチャとIピクチャの間の途中のPピクチャに対応するフレーム画像の描画処理を行おうとした場合、先ず表示済みの直近のIピクチャのデコードを行ってフレーム画像を生成し、途中のPピクチャを用いて表示済みのフレーム画像を再度順次生成する必要がある。
また、リセットが発生した際に最後に描画していたフレーム画像の情報が保持されていたとしても、リセットスタート処理を実行するためには所定の処理時間が必要となるため、リセットが発生した際に最後に描画していたフレームの次のフレームから描画を開始したのでは遊技の進行状態と映像表示の内容とに時間的なずれが発生してしまう。
そのため、図柄CPU311は、IP圧縮動画データを使用した映像表示の途中にリセットが発生し、SDRAM302内の特定領域のデータが破壊されていないと判定されホットスタートが設定された場合、リセットスタート処理からの復帰後に、リセットが発生した際に最後に表示されていたフレームと、リセットおよびリセットスタート処理(リセットに基づく初期化処理)に要する推定時間とから表示順序が後のフレームを、表示スケジューラデータに基づいて算出する。そして、図柄CPU311は、算出したフレームよりも表示順序が後のIピクチャのうち最も表示順序が前のIピクチャから描画が再開されるように描画タイミングを調整する(タイミング調整手段)。
なお、装飾図柄制御基板30内にウオッチドッグタイマが設けられていて、このウオッチドッグタイマにより図柄CPU311に対してリセットをかけるような構成となっている場合には、ウオッチドッグタイマが起動するための時間がリセットに要する時間に該当する。
また、本実施形態においては、リセットスタート処理に要する時間分だけ表示順序が後となる算出されたフレームよりも表示順序が後の直近のIピクチャから描画を再開するようにしているが、算出されたフレームの表示順序の前後を問わない直近のIピクチャから描画が再開されるように描画タイミングを調整するようにしてもよい。なぜならば、リセットスタート処理に要する時間は、かならずしも一定ではなく、ウオッチドッグタイマが起動するまでの時間のばらつきや、ホット・コールド判定処理の処理量等のばらつきにより変化するため、予め設定された値をリセットスタート処理に要する時間としても遊技の進行状態と映像表示の内容を完全に同期させることは困難だからである。つまり、遊技の進行状態と映像表示内容のずれを多少許容することができる場合には、表示順序が後のIピクチャではなく直近のIピクチャから描画を再開しても遊技の進行状態と映像表示内容をのずれを許容範囲内に収めることは可能である。ただし、算出されたフレームよりも表示順序が後のIピクチャから描画を再開するよう描画タイミングを調整したほうが、より遊技の進行状態と映像表示内容の同期をとるために有利であることは言うまでもない。
例えば、図21に示すように、IP圧縮動画データを用いた映像表示中にリセットが発生し、リセット発生の際に最後に描画したフレームがPピクチャ81である場合について説明する。この場合、図柄CPU311では、表示スケジューラデータに基づいて、リセットスタート処理に必要な時間だけ表示順序が後のフレームを算出し、このフレームに対応するPピクチャ82を特定する。そして、図柄CPU311は、このPピクチャ82よりも表示順序が後のIピクチャのうち最も表示順序が前のIピクチャ83が描画されるタイミングで映像表示を再開する。
このような処理が行われることにより、装飾図柄表示装置16に対してどのような映像が描画されるかを図22のタイミングチャートに示す。
図22に示す例では、時刻T11において装飾図柄制御基板30においてリセットが発生した場合を示している。
このように、IP圧縮動画データを用いた映像表示中に、時刻T11においてリセットが発生して映像表示が中断した場合、先ず、リセットが発生した時刻T11にリセットスタート処理に必要な時間を加算した時刻T12に対応するフレームが算出される。そして、そのフレームよりも表示順序が後のIピクチャのうち最も表示順序が前のIピクチャ(時刻T13)から映像表示が再開される。なお、リセットが発生して映像表示が中断する時刻T11から映像表示が再開される時刻T13までの間は、装飾図柄表示装置16には、映像表示が一旦オフ状態となった後に復電処理中である旨が表示される。
なお、本実施形態では、動画データが、Iピクチャ、PピクチャのみからなるIP圧縮動画データの場合を用いて説明を行なっているが、本発明は、Iピクチャ、PピクチャおよびBピクチャからなるIPB圧縮動画データの場合にも同様に適用することが可能である。
(7.本実施形態による有用性についての言及)
一般的には、リセットが発生して映像表示が中断し、リセットスタート処理が終了した場合、リセットが発生する以前に表示された最後のフレーム画像の次のフレーム画像の表示から映像処理を再開することが考えられる。例えば、図20に示した例では、N+15番目のフレーム画像の表示後にリセットが発生した場合、N+16番目のフレーム画像の表示から映像処理を再開することが一般的に考えられる。
しかし、MPEG等の圧縮方式により圧縮された動画データでは、N+16番目のフレームが像を得るためには、N〜N+15番目のフレーム画像を順番に再度生成し直す必要があり、処理に時間がかかってしまう。
また、装飾図柄制御基板30においてリセットが発生した場合、図10に示したようなリセットスタート処理が実行されるため、リセット発生から図柄CPU311が動作可能な状態となるためには、一定の時間が必要となる。
しかし、装飾図柄制御基板30のみにおいてリセットが発生し、メイン制御基板3、サブ制御基板35にはリセットが発生しなかった場合、メイン制御基板3では遊技状態を進行させてしまう。そのため、装飾図柄制御基板30よる描画処理が上述したような時間を考慮せずに描画処理を再開してしまうと、装飾図柄表示装置16の映像内容と遊技状態との不一致が発生することとなる。
このような弊害を防止するため、本実施形態の遊技機では、図柄CPU311は、IP圧縮動画データを使用した映像表示の途中にリセットが発生してホットスタートが設定された場合、リセットスタート処理からの復帰後に、リセットが発生した際に最後に表示されていたフレーム画像の次のフレーム画像から描画を再開するのではなく、リセットが発生した際に最後に表示されていたフレームからリセットスタート処理に要する時間分だけ表示順序が後のフレーム画像を算出する。さらに、図柄CPU311は、算出したフレーム画像よりも表示順序が後のIピクチャのうち最も表示順序が前のIピクチャに対応したフレーム画像から描画を再開する。
リセットスタート処理において実行される処理内容は図10に示されるようにおおよそ規定されているため、リセットスタート処理にかかる時間は予め予測することが可能である。そのため、リセットスタート処理からの復帰後にリセットスタート処理にかかる時間分だけ表示順序が後のフレーム画像を特定することが可能となる。
そして、IP圧縮動画データを用いた描画処理が行われている場合、途中のPピクチャから描画処理を開始しようとすると、そのPピクチャよりも表示順序が前のIピクチャまで戻ってデコード処理を行うことが必要となる。そのため、Pピクチャの表示順序によってはデコード処理に要する時間が変化してしまう。これに対して、本実施形態のように、特定されたPピクチャよりも表示順序が後のIピクチャのうち最も表示順序が前のIピクチャから描画処理を開始することにより、描画処理を再開するタイミングを遊技の進行状態と同期させることが容易に実現可能となる。
その結果、本実施形態の遊技機によれば、圧縮動画データを使用した映像表示中にリセットが実行された場合でも、リセットスタート処理からの復帰後に、遊技の進行状態に同期した映像表示を素早く再開することが可能となる。
(8.その他の実施形態についての言及)
上記実施形態では、遊技球の始動入賞口への入賞を契機として実行された内部的な抽選結果に応じて遊技状態が移行するパチンコ機に対して本発明を適用した場合について説明したが、本発明はこのような実施形態に限定されるものでない。本発明は、遊技球の始動口への入賞に伴って開閉動作を行う左右一対の可動片を有するパチンコ機(いわゆる「羽根物」と呼ばれるパチンコ機)等の他のパチンコ機に対しても同様に適用することが可能である。
また、本発明は、演出動作を表示するための表示装置を有する遊技機であれば、遊技媒体としてメダルやコインを用いる回胴式遊技機(スロットマシン)等の遊技機に対しても同様に適用することが可能である。なお、本発明が適用可能な回胴式遊技機の態様としては、遊技媒体は特にメダルやコインに限らず、パチンコ機用の遊技球等を用いる態様であってもよい。
また、上記実施形態では、液晶素子を用いて表示動作を実行する表示手段(装飾図柄表示装置など)を例示しているがこれに限られず、EL(エレクトロルミネッセンス:Electro Luminescence)素子を用いた表示手段或いはプラズマを用いた表示手段に適用しても良い。
なお、上記実施形態においては、装飾図柄制御基板30が表示に係る演出動作を制御しているが、これに限られず、例えばサブ制御基板35が、表示に係る演出動作以外の他の演出動作のみならず、この装飾図柄制御基板30の機能を備えている形態であってもよい。