<全体構成>
まず、図1を用いて、本実施例に係るスロットマシン100の全体構成について説明する。なお、同図はスロットマシン100の外観斜視図である。
スロットマシン100は、本体101と、本体101の正面に取付けられ、本体101に対して開閉可能な前面扉102と、を備える。本体101の中央内部には、(図1において図示省略)外周面に複数種類の図柄が配置されたリールが3個(左リール110、中リール111、右リール112)収納され、スロットマシン100の内部で回転できるように構成されている。これらのリール110〜112はステッピングモータ等の駆動手段により回転駆動される。
本実施例において、各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形筒状の枠材に貼り付けられて各リール110〜112が構成されている。リール110〜112上の図柄は、遊技者から見ると、図柄表示窓113から縦方向に概ね3つ表示され、合計9つの図柄が見えるようになっている。そして、各リール110〜112を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。つまり、各リール110〜112は複数種類の図柄の組合せを変動可能に表示する表示手段として機能する。なお、このような表示手段としてはリール以外にも液晶表示装置等の電子画像表示装置も採用できる。また、本実施例では、3個のリールをスロットマシン100の中央内部に備えているが、リールの数やリールの設置位置はこれに限定されるものではない。
各々のリール110〜112の背面には、図柄表示窓113に表示される個々の図柄を照明するためのバックライト(図示省略)が配置されている。バックライトは、各々の図柄ごとに遮蔽されて個々の図柄を均等に照射できるようにすることが望ましい。なお、スロットマシン100内部において各々のリール110〜112の近傍には、投光部と受光部から成る光学式センサ(図示省略)が設けられており、この光学式センサの投光部と受光部の間をリールに設けられた一定の長さの遮光片が通過するように構成されている。このセンサの検出結果に基づいてリール上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン上に表示されるようにリール110〜112を停止させる。
入賞ライン表示ランプ120は、有効となる入賞ラインを示すランプである。有効となる入賞ラインは、遊技媒体としてベットされたメダルの数によって予め定まっている。入賞ラインは5ラインあり、例えば、メダルが1枚ベットされた場合、中段の水平入賞ラインが有効となり、メダルが2枚ベットされた場合、上段水平入賞ラインと下段水平入賞ラインが追加された3本が有効となり、メダルが3枚ベットされた場合、右下り入賞ラインと右上り入賞ラインが追加された5ラインが入賞ラインとして有効になる。なお、入賞ラインの数については5ラインに限定されるものではなく、また、例えば、メダルが1枚ベットされた場合に、中段の水平入賞ライン、上段水平入賞ライン、下段水平入賞ライン、右下り入賞ラインおよび右上り入賞ラインの5ラインを入賞ラインとして有効としてもよい。
告知ランプ123は、例えば、後述する内部抽選において特定の入賞役(具体的には、ボーナス)に内部当選していること、または、ボーナス遊技中であることを遊技者に知らせるランプである。遊技メダル投入可能ランプ124は、遊技者が遊技メダルを投入可能であることを知らせるためのランプである。再遊技ランプ122は、前回の遊技において入賞役の一つである再遊技に入賞した場合に、今回の遊技が再遊技可能であること(メダルの投入が不要であること)を遊技者に知らせるランプである。リールパネルランプ128は演出用のランプである。
メダル投入ボタン130〜132は、スロットマシン100に電子的に貯留されているメダル(クレジットという。)を所定の枚数分投入するためのボタンである。本実施例においては、メダル投入ボタン130が押下される毎に1枚ずつ最大3枚まで投入され、メダル投入ボタン131が押下されると2枚投入され、メダル投入ボタン132が押下されると3枚投入されるようになっている。以下、メダル投入ボタン132はMAXメダル投入ボタンとも言う。なお、遊技メダル投入ランプ129は、投入されたメダル数に応じた数のランプを点灯させ、規定枚数のメダルの投入があった場合、遊技の開始操作が可能な状態であることを知らせる遊技開始ランプ121が点灯する。
メダル投入口141は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、メダル投入ボタン130〜132により電子的に投入することもできるし、メダル投入口141から実際のメダルを投入(投入操作)することもでき、投入とは両者を含む意味である。貯留枚数表示器125は、スロットマシン100に電子的に貯留されているメダルの枚数を表示するための表示器である。遊技情報表示器126は、各種の内部情報(例えば、ボーナス遊技中のメダル払出枚数)を数値で表示するための表示器である。払出枚数表示器127は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。
スタートレバー135は、リール110〜112の回転を開始させるためのレバー型のスイッチである。すなわち、メダル投入口141に所望するメダル枚数を投入するか、メダル投入ボタン130〜132を操作して、スタートレバー135を操作すると、リール110〜112が回転を開始することとなる。スタートレバー135に対する操作を遊技の開始操作と言う。
ストップボタンユニット136には、ストップボタン137〜139が設けられている。ストップボタン137〜139は、スタートレバー135の操作によって回転を開始したリール110〜112を個別に停止させるためのボタン型のスイッチであり、各リール110〜112に対応づけられている。以下、ストップボタン137〜139に対する操作を停止操作と言い、最初の停止操作を第1停止操作、次の停止操作を第2停止操作、最後の停止操作を第3停止操作という。なお、各ストップボタン137〜139の内部に発光体を設けてもよく、ストップボタン137〜139の操作が可能である場合、該発光体を点灯させて遊技者に知らせることもできる。
メダル返却ボタン133は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。精算ボタン134は、スロットマシン100に電子的に貯留されたメダル、ベットされたメダルを精算し、メダル払出口155から排出するためのボタンである。ドアキー孔140は、スロットマシン100の前面扉102のロックを解除するためのキーを挿入する孔である。メダル払出口155は、メダルを払出すための払出口である。
音孔160a〜cはスロットマシン100内部に設けられているスピーカの音を外部に出力するための孔である。全面扉102の下部に設けられたタイトルパネル162は、遊技台を装飾するためのものであり、前面扉102の左右各部に設けられたサイドランプ144は遊技を盛り上げるための装飾用のランプである。前面扉102の上部には演出装置200が配設されている。
この演出装置200は、垂直方向に移動可能な垂直可動部材202と、水平方向に移動自在な水平可動部材204と、これらの可動部材202、204の奥側に配設された液晶表示装置157を備えており、液晶表示装置157が演出表示を行うと共に、垂直可動部材202および水平可動部材204が液晶表示装置157の手前で演出動作を行う構造となっている。
<制御部>
図2は、スロットマシン100の制御部の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
スロットマシン100の制御部は、大別すると、遊技の進行を制御する主制御部300と、主制御部300が送信するコマンド信号(以下、単に「コマンド」と呼ぶ)に応じて、主な演出の制御を行う第1副制御部400と、第1副制御部400より送信されたコマンドに基づいて各種機器を制御する第2副制御部500と、によって構成されている。
<主制御部>
まず、スロットマシン100の主制御部300について説明する。主制御部300は、主制御部300の全体を制御する基本回路302を備えており、この基本回路302には、CPU304と、制御プログラムデータ、入賞役の内部抽選時に用いる抽選データ、リールの停止位置等を記憶するためのROM306と、一時的にデータを記憶するためのRAM308と、各種デバイスの入出力を制御するためのI/O310と、時間や回数等を計測するためのカウンタタイマ312を搭載している。なお、ROM306やRAM308については他の記憶装置を用いてもよく、この点は後述する第1副制御部400についても同様である。この基本回路302のCPU304は、水晶発振器314が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。さらには、CPU304は、電源が投入されるとROM306の所定エリアに記憶された分周用のデータをカウンタタイマ312に送信し、カウンタタイマ312は受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をCPU304に送信する。CPU304は、この割込み要求を契機に各センサ等の監視や駆動パルスの送信を実行する。例えば、水晶発振器314が出力するクロック信号を8MHz、カウンタタイマ312の分周値を1/256、ROM306の分周用のデータを47に設定した場合、割り込みの基準時間は、256×47÷8MHz=1.504msとなる。
基本回路302は、0〜65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用している乱数発生回路316と、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路338を設けており、CPU304は、この起動信号出力回路338から起動信号を入力した場合に、遊技制御を開始する(後述する主制御部メイン処理を開始する)。
また、基本回路302には、センサ回路320を設けており、CPU304は、割り込み時間ごとに各種センサ318(ベットボタン130センサ、ベットボタン131センサ、ベットボタン132センサ、メダル投入口141から投入されたメダルのメダル受付センサ、スタートレバー135センサ、ストップボタン137センサ、ストップボタン138センサ、ストップボタン139センサ、精算ボタン134センサ、メダル払出装置180から払い出されるメダルのメダル払出センサ、リール110のインデックスセンサ、リール111のインデックスセンサ、リール112のインデックスセンサ、等)の状態を監視している。なお、センサ回路320がスタートレバーセンサのハイレベルを検出した場合には、この検出を示す信号を乱数発生回路316に出力する。この信号を受信した乱数発生回路316は、そのタイミングにおける値をラッチし、抽選に使用する乱数値を記憶するレジスタに記憶する。
メダル受付センサは、メダル投入口134の内部通路に2個設置されており、メダルの通過有無を検出する。スタートレバー135センサは、スタートレバー135内部に2個設置されており、遊技者によるスタート操作を検出する。ストップボタン137センサ、ストップボタン138センサ、および、ストップボタン139は、各々のストップボタン137乃至139に設置されており、遊技者によるストップボタンの操作を検出する。
ベットボタン130センサ、ベットボタン131センサ、および、ベットボタン132センサは、メダル投入ボタン130乃至132のそれぞれに設置されており、RAM308に電子的に貯留されているメダルを遊技への投入メダルとして投入する場合の投入操作を検出する。精算ボタン134センサは、精算ボタン134に設けられている。精算ボタン134が一回押されると、電子的に貯留されているメダルを精算する。メダル払出センサは、メダル払出装置180が払い出すメダルを検出するためのセンサである。なお、以上の各センサは、非接触式のセンサであっても接点式のセンサであってもよい。
リール110のインデックスセンサ、リール111のインデックスセンサ、および、リール112のインデックスセンサは、各リール110乃至112の取付台の所定位置に設置されており、リールフレームに設けた遮光片が通過するたびにローレベルになる。CPU304は、この信号を検出すると、リールが1回転したものと判断し、リールの回転位置情報をゼロにリセットする。
主制御部300は、リール装置110乃至112に設けたステッピングモータを駆動する駆動回路322を設けており、投入されたメダルを選別するメダルセレクタ170に設けたソレノイドを駆動する駆動回路324を設けており、メダル払出装置180に設けたモータを駆動する駆動回路326を設けており、各種ランプ338(入賞ライン表示ランプ120、告知ランプ123、遊技メダル投入可能ランプ124、再遊技ランプ122、遊技メダル投入ランプ129は、遊技開始ランプ121、貯留枚数表示器125、遊技情報表示器126、払出枚数表示器127)を駆動する駆動回路328を設けている。
また、基本回路302には、情報出力回路334(外部集中端子板)を接続しており、主制御部300は、この情報出力回路334を介して、外部のホールコンピュータ(図示省略)等が備える情報入力回路652にスロットマシン100の遊技情報(例えば、遊技状態)を出力する。
また、主制御部300は、第1副制御部400にコマンドを送信するための出力インタフェースを備えており、第1副制御部400との通信を可能としている。なお、主制御部300と第1副制御部400との情報通信は一方向の通信であり、主制御部300は第1副制御部400にコマンド等の信号を送信できるように構成しているが、第1副制御部400からは主制御部300にコマンド等の信号を送信できないように構成している。
<副制御部>
次に、スロットマシン100の第1副制御部400について説明する。第1副制御部400は、主制御部300が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第1副制御部400の全体を制御する基本回路402を備えており、この基本回路402は、CPU404と、一時的にデータを記憶するためのRAM408と、各種デバイスの入出力を制御するためのI/O410と、時間や回数等を計測するためのカウンタタイマ412を搭載している。基本回路402のCPU404は、水晶発振器414が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第1副制御部400の全体を制御するための制御プログラム及びデータ、バックライトの点灯パターンや各種表示器を制御するためのデータ等が記憶されたROM406を設けている。
CPU404は、所定のタイミングでデータバスを介してROM406の所定エリアに記憶された分周用のデータをカウンタタイマ412に送信する。カウンタタイマ412は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をCPU404に送信する。CPU404は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
また、第1副制御部400には、音源IC418を設けており、音源IC418に出力インタフェースを介してスピーカ272、277を設けている。音源IC418は、CPU404からの命令に応じてアンプおよびスピーカ272、277から出力する音声の制御を行う。音源IC418には音声データが記憶されたS−ROM(サウンドROM)が接続されており、このROMから取得した音声データをアンプで増幅させてスピーカ272、277から出力する。
また、第1副制御部400には、駆動回路422が設けられ、駆動回路422に入出力インタフェースを介して各種ランプ420(上部ランプ、下部ランプ、サイドランプ144、タイトルパネル162ランプ、等)を設けている。
また、CPU404は、出力インタフェースを介して第2副制御部500へ信号(後述するコマンドなど)の送受信を行う。スロットマシン100の第2副制御部500では、演出画像表示装置157や各種演出用駆動装置160の制御を行う。第2副制御部500は、例えば、液晶表示装置157の制御を行う制御部、各種演出用駆動装置160の制御を行う制御部とするなど、複数の制御部で構成するようにしてもよい。
次に、スロットマシン100の第2副制御部500について説明する。第2副制御部500は、第1副制御部400が送信した制御コマンドを入力インタフェースを介して受信し、この制御コマンドに基づいて第2副制御部500の全体を制御する基本回路502を備えており、この基本回路502は、CPU504と、一時的にデータを記憶するためのRAM508と、各種デバイスの入出力を制御するためのI/O510と、時間や回数等を計測するためのカウンタタイマ512を搭載している。基本回路502のCPU504は、水晶発振器514が出力する所定周期のクロック信号をシステムクロックとして入力して動作し、第2副制御部500の全体を制御するための制御プログラム及びデータ、画像表示用のデータ等が記憶されたROM506が設けている。
CPU504は、所定のタイミングでデータバスを介してROM506の所定エリアに記憶された分周用のデータをカウンタタイマ512に送信する。カウンタタイマ512は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに割り込み要求をCPU404に送信する。CPU504は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
また、第2副制御部500には、演出装置200を駆動する駆動回路(モータドライバ)530を設けている。この駆動回路530は、CPU504からの命令(動作情報)に応じて演出装置200の駆動モータに駆動信号を出力する。
また、第2副制御部500には、センサ回路532を設けており、センサ回路532には入力インタフェースを介して可動部材センサ538を設けている。CPU504は、割り込み時間ごとに可動部材センサ538の状態を監視している。
また、第2副制御部500には、VDP534(ビデオ・ディスプレイ・プロセッサー)を設けており、このVDP534には、バスを介してROM506、VRAM536が接続されている。VDP534は、CPU504からの信号に基づいてROM306に記憶された画像データ等を読み出し、VRAM536のワークエリアを使用して表示画像を生成し、演出画像表示装置157に画像を表示する。
<主制御部メイン処理>
図3を用いて、主制御部300のCPU304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
上述したように、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)338を設けている。この起動信号を入力した基本回路302のCPU304は、リセット割込によりリセットスタートしてROM306に予め記憶している制御プログラムに従って同図に示す主制御部メイン処理を実行する。
電源投入が行われると、まず、ステップS101で各種の初期設定を行う。この初期設定では、CPU304のスタックポインタ(SP)へのスタック初期値の設定、割込禁止の設定、I/O310の初期設定、RAM308に記憶する各種変数の初期設定、WDT313への動作許可及び初期値の設定等を行う。ステップS103ではメダル投入・スタート操作受付処理を実行する。ここではメダルの投入の有無をチェックし、メダルの投入に応じて入賞ライン表示ランプ120を点灯させる。なお、前回の遊技で再遊技に入賞した場合は、前回の遊技で投入されたメダル枚数と同じ数のメダルを投入する処理を行うので、遊技者によるメダルの投入が不要となる。また、スタートレバー135が操作されたか否かのチェックを行い、スタートレバー135の操作があればステップS105へ進む。
ステップS105では投入されたメダル枚数を確定し、有効な入賞ラインを確定する。ステップS107では乱数発生回路316で発生させた乱数を取得する。ステップS109では、現在の遊技状態に応じてROM306に記憶されている入賞役抽選テーブルを読み出し、これとステップS107で取得した乱数値とを用いて内部抽選を行う。内部抽選の結果、いずれかの入賞役(作動役を含む)に内部当選した場合、その入賞役のフラグがONになる。
ステップS111では内部抽選結果に基づき、リール停止データを選択する。ステップS113では、リール回転開始処理によって全リール110乃至112の回転を開始させる。ステップS115では、ストップボタン137乃至139の受け付けが可能になり、いずれかのストップボタンが押されると、押されたストップボタンに対応するリール110乃至112の何れかをステップS111で選択したリール停止制御データに基づいて停止させる。全リール110乃至112が停止するとステップS117へ進む。
ステップS117では、入賞判定を行う。ここでは、有効化された入賞ライン114上に、何らかの入賞役に対応する図柄組合せが表示された場合にその入賞役に入賞したと判定する。例えば、有効化された入賞ライン上に「ベル−ベル−ベル」が揃っていたならばベル入賞と判定する。ステップS119では払い出しのある何らかの入賞役に入賞していれば、その入賞役に対応する枚数のメダルを入賞ライン数に応じて払い出す。ステップS121では遊技状態制御処理を行う。以上により1ゲームが終了する。以降ステップS103へ戻って上述した処理を繰り返すことにより遊技が進行することになる。
<主制御部300タイマ割込処理>
図4を用いて、主制御部300のCPU304が実行する主制御部タイマ割込処理について説明する。なお、同図は主制御部タイマ割込処理の流れを示すフローチャートである。
主制御部300は、所定の周期(本実施形態では約2msに1回)でタイマ割込信号を発生するカウンタタイマ312を備えており、このタイマ割込信号を契機として主制御部タイマ割込処理を所定の周期で開始する。
ステップS301では、タイマ割込開始処理を行う。このタイマ割込開始処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
ステップS303では、WDTのカウント値が初期設定値(本実施形態では32.8ms)を超えてWDT割込が発生しないように(処理の異常を検出しないように)、WDTを定期的に(本実施形態では、主制御部タイマ割込の周期である約2msに1回)リスタートを行う。
ステップS305では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、各種センサ318のセンサ回路320の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ318ごとに区画して設けた信号状態記憶領域に記憶する。
ステップS307では、各種遊技処理を行う。具体的には、割込みステータスを取得し(各種センサ318からの信号に基づいて各種割込みステータスを取得する)、このステータスに従った処理を行う(例えば、取得した各ストップボタン137乃至139の割込みステータスに基づいて、停止ボタン受付処理を行う)。
ステップS309では、タイマ更新処理を行い、各種タイマをそれぞれの時間単位により更新する。ステップS310では、デバイス監視処理を行う。
ステップS311では、コマンド設定送信処理を行い、各種のコマンドが第1副制御部400に送信される。なお、第1副制御部400に送信する出力予定情報は本実施例では16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11〜14はコマンド種別(本実施例では、基本コマンド、スタートレバー受付コマンド、演出抽選処理に伴う演出コマンド、リール110乃至112の回転を開始に伴う回転開始コマンド、ストップボタン137乃至139の操作の受け付けに伴う停止ボタン受付コマンド、リール110乃至112の停止処理に伴う停止位置情報コマンド、メダル払出処理に伴う払出枚数コマンド及び払出終了コマンド等)、ビット0〜10はコマンドデータ(コマンド種別に対応する所定の情報)で構成している。
第1副制御部400では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
ステップS313では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM308に記憶している遊技情報を、情報出力回路334を介してスロットマシン100とは別体の情報入力回路652に出力する。
ステップS317では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS321に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS319に進む。
ステップS319では、タイマ割込終了処理を終了する各種処理を行う。このタイマ割込終了処理では、ステップS301で一時的に退避した各レジスタの値を元の各レジスタに設定する処理などを行う。その後、上記主制御部メイン処理に復帰する。一方、ステップS321では、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてRAM308の所定の領域に退避し、入出力ポートの初期化等の電断処理を行い、その後、上記主制御部メイン処理に復帰する。
<第1副制御部の処理>
図5を用いて、第1副制御部400の処理について説明する。なお、同図(a)は、第1副制御部400のCPU404が実行するメイン処理のフローチャートである。同図(b)は、第1副制御部400のコマンド受信割込処理のフローチャートである。同図(c)は、第1副制御部400のタイマ割込処理のフローチャートである。
まず、同図(a)のステップS501では、各種の初期設定を行う。電源投入が行われると、まずステップS501で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM408内の記憶領域の初期化処理等を行う。
ステップS503では、タイマ変数が10以上か否かを判定し、タイマ変数が10となるまでこの処理を繰り返し、タイマ変数が10以上となったときには、ステップS505の処理に移行する。ステップS505では、タイマ変数に0を代入する。
ステップS507では、コマンド処理を行う。このコマンド処理では、主制御部300から未処理コマンドを受信したか否かを判定し、未処理コマンドがある場合には、その旨の情報を設定する。
ステップS509では、演出更新処理を行う。この演出更新処理では、例えば、ステップS507で新たなコマンドがあった場合には、このコマンドに対応する演出データをROM406から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。
ステップS511では、ステップS509で読み出した演出データの中に音源IC418への命令がある場合には、この命令を音源IC418に出力する。
ステップS513では、ステップS509で読み出した演出データの中に各種ランプ420への命令がある場合には、この命令を駆動回路422に出力する。
ステップS515では、ステップS509で読み出した演出データの中に第2副制御部500に送信する制御コマンドがある場合には、この制御コマンドを出力する設定を行い、ステップS503へ戻る。
次に、同図(b)を用いて、第1副制御部400のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第1副制御部400が、主制御部300または第2副制御部500が出力するストローブ信号を検出した場合に実行する処理である。コマンド受信割込処理のステップS601では、主制御部300または第2副制御部500が出力したコマンドを未処理コマンドとしてRAM408に設けたコマンド記憶領域に記憶する。
次に、同図(c)を用いて、第1副制御部400のCPU404によって実行する第1副制御部タイマ割込処理について説明する。第1副制御部400は、所定の周期(本実施例では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。
第1副制御部400のタイマ割込処理のステップS701では、上述のタイマ変数記憶領域の値に、1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS503において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。
第1副制御部タイマ割込処理のステップS703では、ステップS515で設定された第2副制御部500への制御コマンドの送信や、演出用乱数値の更新処理等を行う。
<第2副制御部500のROM506とVRAM536>
次に、図6および図7を用いて、ROM506とVRAM536の内部構成例について説明する。なお、図6(a)はVRAM536の内部構成例を示した図であり、同図(b)、(c)はROM506が有するデータの一例を示した図である。
図6(a)に示すように、VRAM536は、描画バッファ0、描画バッファ1、展開バッファ0、および展開バッファ1の4つのバッファを有して構成されている。描画バッファ0、1は、演出画像表示装置157に表示させる画像を生成するための画像データ(フレーム)を一時的に記憶するための記憶領域であり、展開バッファ0、1は、ムービーデータの解凍(デコード)に用いる画像データ(フレーム)を一時的に記憶するための記憶領域である。
また、図6(b)に示すように、ROM506には、複数種類のムービーデータ(この例では、IPBムービーデータとIPムービーデータ)の識別情報と、各々のムービーデータを構成する単一または複数のフレームデータが関連付けされて記憶されている。また、同図(c)に示すように、ROM506には、各々のムービーデータの識別情報に関連付けされて、フレーム表示データがさらに記憶されている。
図7はフレーム表示データの一例を示した図である。フレーム表示データには、複数のフレーム番号(この例では、1〜13)が記憶されているとともに、各々のフレーム番号に関連付けされて、予測/複製情報と、予測参照先展開バッファ情報と、複製参照先展開バッファ情報と、展開バッファ内展開の有無情報と、展開バッファ内予測の有無情報と、展開バッファ内予測参照先展開バッファ情報と、展開バッファ内展開先の展開バッファ情報がそれぞれ記憶されている。
予測/複製情報は、該当フレームが他の2つのフレームを参照して解凍(デコード)される双方向予測フレームか否かを示す情報であり、この例では、該当フレームが双方向予測フレームである場合には数値の0(予測)、そうでない場合には数値の1(複製)が記憶されている。例えば、フレーム1は双方向予測フレームではないフレーム(この例では、Iフレーム)であり、フレーム2は双方向予測フレーム(この例では、Bフレーム)であることを示している。
予測参照先展開バッファ情報は、該当フレームが双方向予測フレームである場合(この例では、予測/複製情報が数値の0の場合)に、解凍(デコード)時に参照する過去および未来のフレームが記憶された展開バッファの番号を示す情報であり、この例では、展開バッファ0か展開バッファ1のいずれかの情報が記憶されている。例えば、双方向フレームであるフレーム2は、過去のフレームとして、展開バッファ0に記憶されたフレームを参照するとともに、未来のフレームとして、展開バッファ1に記憶されたフレームを参照することを示している。
複製参照先展開バッファ情報は、該当フレームが双方向予測フレームではない場合(この例では、予測/複製情報が数値の1の場合)に、フレームの複製先となる展開バッファの番号を示す情報であり、この例では、展開バッファ0か展開バッファ1のいずれかの情報が記憶されている。例えば、フレーム1は、複製時に展開バッファ1に複製され、フレーム7は、複製時に展開バッファ0に複製される。
展開バッファ内展開の有無情報は、展開バッファ内でフレームの解凍が行われるか否かを示す情報であり、この例では、展開バッファ内でフレームの解凍が行われる場合には数値の1(有)が記憶され、そうでない場合には数値の0(無)が記憶されている。例えば、フレーム5は、展開バッファ内でフレームの解凍(デコード)が行われること、すなわち、該当フレーム(例えば、P2フレーム)が一方の展開バッファ(例えば、展開バッファ1)に記憶されているフレーム(例えば、P1フレーム)を参照して解凍され、展開後のフレームが他方の展開バッファ(例えば、展開バッファ0)に記憶されることを示している。
展開バッファ内予測の有無情報は、展開バッファ内でフレームの解凍が行われる場合(展開バッファ内展開の有無情報が数値の1(有)の場合)に、展開バッファ内でフレーム予測があるか否かを示す情報であり、この例では、展開バッファ内でフレーム予測が行われる場合には数値の1(有)が記憶され、そうでない場合には数値の0(無)が記憶されている。例えば、フレーム5は、該当フレーム(例えば、P2フレーム)が展開される場合には他のフレーム(例えば、P1フレーム)を用いたフレーム予測が行われることを示している。
展開バッファ内予測参照先展開バッファ情報は、該当フレームが双方向予測フレームである場合(この例では、予測/複製情報が数値の0の場合)に、解凍時に参照するフレームが記憶された展開バッファの番号を示す情報であり、この例では、展開バッファ0か展開バッファ1のいずれかの情報が記憶されている。例えば、双方向フレームであるフレーム5は、展開バッファ1に記憶されたフレームを参照することを示している。
展開バッファ内展開先の展開バッファ情報は、該当フレームが双方向予測フレームである場合(この例では、予測/複製情報が数値の0の場合)に、解凍時に展開される展開バッファの番号を示す情報であり、この例では、展開バッファ0か展開バッファ1のいずれかの情報が記憶されている。例えば、双方向フレームであるフレーム5は、解凍時に展開バッファ0に記憶されることを示している。
<第2副制御部500の処理>
図8を用いて、第2副制御部500の処理について説明する。なお、同図(a)は、第2副制御部500のCPU504が実行するメイン処理のフローチャートである。同図(b)は、第2副制御部500のコマンド受信割込処理のフローチャートである。同図(c)は、第2副制御部500のタイマ割込処理のフローチャートである。同図(d)は、第2副制御部500のVブランクカウント処理のフローチャートであり、同図(e)は、第2副制御部500の画像制御処理のフローチャートである。
まず、同図(a)のステップS1001では、各種の初期設定を行う。電源投入が行われると、まずステップS1001で初期化処理が実行される。この初期化処理では、入出力ポート初期設定や、RAM508内の記憶領域の初期化処理等を行う。
ステップS1003では、RAM508に設けたVブランクカウンタの値が2以上であるか否かを判定し、Vブランクカウンタの値が2以上となるまでこの処理を繰り返し、Vブランクカウンタの値が2以上となった場合に、ステップS1005以降の処理に移行する。
まず、ステップS1005では、Vブランクカウンタの値に0を代入するとともに、演出画像表示装置157に表示させる表示画像を切り替える。ここで、VDP534が所定周期(例えば16.6ms毎)で出力するVブランク信号の立ち上がりエッジを第2副制御部500が2回検出するのに必要な期間を1フレームの期間(ここでは33.3ms。特定の期間の一例)として設定している。具体的には、1フレームの期間に亘って所定の表示画像を表示し、次のフレームでは準備をしていた画像データに対応する画像を表示画像として演出画像表示装置157に表示させるようにしている。
例えば、描画バッファ0に記憶されている画像データに対応する画像を現フレームの表示画像として演出画像表示装置157に表示させている場合、描画バッファ1に記憶されている画像データに対応する画像を次のフレームの表示画像として演出画像表示装置157に表示させるように設定する。ここで所定のフレーム中に表示している表示画像に対応する画像データを所定のフレーム用の画像データとする。この設定により、描画バッファ0は、現フレーム用の画像データを記憶する記憶領域(表示用バッファ)として動作し、次フレームにおいて次々フレーム用の画像データを新たに記憶する記憶領域(描画用バッファ)として動作する。また、描画バッファ1は、現フレームは次フレーム用の画像データを新たに記憶する記憶領域(描画用バッファ)として動作し、次フレームでは次フレーム用の画像データを記憶する記憶領域(表示用バッファ)として動作する。
本実施例では、これらの設定により描画バッファ0に記憶されている画像データに対応する画像および描画バッファ1に記憶されている画像データに対応する画像を1フレームの期間が経過するごとに交互に演出画像表示装置157に表示するようにしている。また、次のフレームで演出画像表示装置157に表示する画像に対応する画像データを記憶させるバッファを描画バッファ1および描画バッファ0のうちの一方から他方に交互に切り替えている。描画バッファ0および描画バッファ1のうち、所定のフレーム中に表示している表示画像に対応する画像データを記憶しているバッファ(表示用バッファ)は所定のフレーム中における表示領域の一例であり、所定のフレーム中に、次のフレーム用の画像データを新たに記憶しているバッファ(描画用バッファ)は所定のフレーム中における描画領域の一例である。
所定のフレームにおいて、描画バッファ0および描画バッファ1のうち一方のバッファを表示用バッファとし、他方のバッファを描画用バッファとする設定、すなわちVRAM536における表示用バッファの位置とVRAM536における描画用バッファの位置は、毎フレームごとの画像制御処理のステップS1013の指令により、VDP534によって設定され、VDP534に設けられているバッファ位置記憶部に記憶される。このバッファ位置記憶部には、表示用バッファの位置を記憶するための表示用バッファ位置記憶領域と描画用バッファの位置を記憶するための描画用バッファ位置記憶領域が設けられている。所定のフレームにおける表示用バッファが描画バッファ0であり、描画用バッファが描画バッファ1とすると、所定のフレームにおけるバッファ位置記憶部の表示用バッファ位置記憶領域として描画バッファ0の先頭アドレスが記憶され、バッファ位置記憶部の描画用バッファ位置記憶領域には描画バッファ1の先頭アドレスが記憶される。所定のフレームの次のフレームでは、表示用バッファ位置記憶領域には描画バッファ1の先頭アドレスが記憶され、描画表示用バッファ位置記憶領域には描画バッファ0の先頭アドレスが記憶されることとなる。
ステップS1007では、コマンド処理を行う。このコマンド処理では、第2副制御部500のCPU504は、第1副制御部400のCPU404からコマンドを受信したか否かを判別する。
ステップS1009では、演出制御処理を行う。この演出制御処理では、例えば、ステップS1007で新たなコマンドがあった場合には、このコマンドに対応する演出データをROM506から読み出す等の処理を行い、演出データの更新が必要な場合には演出データの更新処理を行う。ステップS1011では、ステップS1009で読み出した演出データの中に演出装置制御の命令がある場合には、この命令に対応する演出装置制御を行う。ステップS1013では、ステップS1009で読み出した演出データの中に画像制御の命令がある場合には、この命令に対応する画像制御を行う(詳細は後述する)。
次に、同図(b)を用いて、第2副制御部500のコマンド受信割込処理について説明する。このコマンド受信割込処理は、第2副制御部500が、第1副制御部400が出力するストローブ信号を検出した場合に実行する処理である。このコマンド受信割込処理では、第1副制御部400が出力したコマンドを未処理コマンドとしてRAM508に設けたコマンド記憶領域に記憶する。
次に、同図(c)を用いて、第2副制御部500のCPU504によって実行する第2副制御部タイマ割込処理について説明する。第2副制御部500は、所定の周期(本実施例では2msに1回)でタイマ割込を発生するハードウェアタイマを備えており、このタイマ割込を契機として、タイマ割込処理を所定の周期で実行する。このタイマ割込処理では、各種のタイマの値を更新する。
次に、同図(d)を用いて、第2副制御部500のCPU504によって実行する第2副制御部Vブランクカウント処理について説明する。この第2副制御部Vブランクカウント処理は、VDP534からCPU504に入力するVブランク信号に基づいて起動され、例えば、Vブランク信号の立ち上がりエッジを検出するたびにVブランクカウンタに1を加算する。
次に、同図(e)を用いて、第2副制御部500のメイン処理におけるステップS1013の画像制御処理について説明する。同図は、画像制御処理の流れを示すフローチャートを示した図である。
ステップS1101では、展開および描画情報生成を行う(詳細は後述する)。ステップS1102では、展開および描画指示を行う。この展開および描画指示では、CPU504は、VDP534に画像の展開や描画開始を指示する。VDP534は、CPU504の指示に従ってフレームバッファにおける展開や画像描画を開始する。
ステップS1103では、画像の描画終了に基づくVDP534からの生成終了割込み信号が入力されたか否かを判定し、生成終了割込み信号が入力された場合はステップS1104に進み、そうでない場合は生成終了割込み信号が入力されるのを待つ。ステップS1104では、描画領域情報更新を行う。
この描画領域情報更新では、CPU504は、VRAM536の描画領域0と描画領域1に対する領域指定を切り替える(スワップする)。例えば、現在の領域指定が描画領域0である場合には描画領域1を領域指定し、現在の領域指定が描画領域1である場合には描画領域0を領域指定する。これにより、領域指定された描画領域に記憶されている画像データに対応する画像が、演出画像表示装置157に表示される。
<展開および描画情報生成>
次に、図9を用いて、展開および描画情報生成の処理について説明する。なお、同図は、展開および描画情報生成の流れを示すフローチャートである。
ステップS1201では、IPBムービーの展開の要求があるか無いかを判定し、展開の要求がある場合にはステップS1202に進み、展開の要求が無い場合にはステップS1209に進む。
ステップS1202では、ROM506のムービーデータの種別情報を参照し、種別情報に数値の0が設定されているIPBムービーデータを抽出した後、演出画像表示装置157に表示をさせる動画に対応するIPBムービーデータのフレーム表示データを取得する。また、取得したフレーム表示データのフレーム番号を参照し、第1フレーム展開(最初のフレームの展開)であるか否かを判定し、該当する場合にはステップS1203に進み、該当しない場合はステップS1206に進む。
ステップS1203では、VRAM536の展開バッファ0に、ROM506から抽出した、フレーム表示データのフレーム1に対応するフレームデータ(画像データ)を記憶し、ステップS1204では、VRAM536の展開バッファ1に、ROM506から抽出した、フレーム表示データのフレーム2に対応するフレームデータを記憶する。また、VRAM536の描画バッファ0に、VRAM536の展開バッファ0に記憶したフレームデータと同じフレームデータを記憶する。
ステップS1206では、RAM508に設けたフレーム情報を取得する。ステップS1207では、展開および描画設定処理を行う(詳細は後述する)。
ステップS1208では、フレーム表示データのフレーム番号に基づいて、上述のフレーム情報を更新する。ステップS1209では、スプライト表示の情報を生成した後に処理を終了する。スプライト表示の情報の生成は、例えば現フレームまたは以前のフレームで現フレームの表示に必要な画像情報(例えばビットマップなど)をVRAM536の所定の別領域(例えば描画バッファ0、1、展開バッファ0および1とは別の所定の領域)に記憶しておき、画像制御処理S1013の指令により、その別領域に記憶されている画像情報を描画用バッファに複製回路によって複製することにより実現している。なお、デコーダによって展開された展開バッファ0、1に記憶されている画像情報を、描画用バッファに複製回路によって複製することも含んでもよい。
<展開および描画設定生成>
次に、図10を用いて、展開および描画設定生成の処理について説明する。なお、同図は、展開および描画設定生成の流れを示すフローチャートである。
ステップS1301では、フレーム表示データの予測/複製情報を参照し、該当フレームが双方向予測フレームであるか否かを判定する。そして、該当フレームが双方向予測フレームである場合(予測/複製情報が数値の0の場合。上記図7の例ではフレーム2、3、5、6、8、9、11、12)にはステップS1307に進み、該当フレームが双方向予測フレームでない場合(予測/複製情報が数値の1の場合。上記図7の例ではフレーム1、4、7、10、13)にはステップS1302に進む。
ステップS1302では、フレーム表示データの展開バッファ内展開の有無情報を参照し、展開バッファ内でフレームの解凍が行われるか否かを判定する。そして、展開バッファ内でフレームの解凍が行われない場合(展開バッファ内展開の有無情報が数値の0の場合。上記図7の例ではフレーム1、4、10、13)にはステップS1306に進み、展開バッファ内でフレームの解凍が行われる場合(展開バッファ内展開の有無情報が数値の1の場合。上記図7の例ではフレーム7)にはステップS1303に進む。
ステップS1303では、フレーム表示データの展開バッファ内予測の有無情報を参照し、展開バッファ内でフレーム予測があるか否かを判定する。そして、展開バッファ内でフレーム予測が行われる場合(展開バッファ内予測の有無情報が数値の1の場合。上記図7の例では該当無し)にはステップS1305に進み、展開バッファ内でフレーム予測が行われない場合(展開バッファ内予測の有無情報が数値の0の場合。上記図7の例ではフレーム7)にはステップS1304に進む。
ステップS1304では、フレーム表示データの展開バッファ内展開先の展開バッファ情報を参照し、展開先の展開バッファに画像を展開し、ステップS1305では、フレーム表示データの展開バッファ内予測参照先展開バッファ情報を参照し、予測参照先の展開バッファに展開されていた画像に基づいて展開先の展開バッファに画像を展開する。
ステップS1306では、フレーム表示データの複製参照先展開バッファ情報を参照し、複製元画像が展開されていた展開バッファの画像を今回描画バッファに描画設定する。
ステップS1307では、フレーム表示データの展開バッファ内予測の有無情報を参照し、展開バッファ内でフレーム予測があるか否かを判定する。そして、展開バッファ内でフレーム予測が行われる場合(展開バッファ内予測の有無情報が数値の1の場合。上記図7の例ではフレーム5、11)にはステップS1308に進み、展開バッファ内でフレーム予測が行われない場合(展開バッファ内予測の有無情報が数値の0の場合。上記図7の例ではフレーム2、3、6、8、9、12)にはステップS1309に進む。
ステップS1308では、フレーム表示データの展開バッファ内予測参照先展開バッファ情報を参照し、予測参照先の展開バッファに展開されていた画像に基づいて展開先の展開バッファに画像を展開する。
ステップS1309では、フレーム表示データの予測参照先展開バッファ情報を参照し、予測参照先(過去・未来)の展開バッファに展開された画像データに基づいて画像データが生成され、生成された画像データが描画領域に記憶される。
<展開および描画設定の具体例>
次に、図11および図12を用いて展開および描画設定の具体例について説明する。なお、図11はIPBムービーデータのデコードと再生の順番の一例を示した図であり、図12はIPBムービーデータの展開と描画設定の一例を示した図である。
図11に示すように、この例で用いるIPBムービーデータは、2個のIフレームデータI1、I2と、3個のPフレームデータP1〜P3と、8個のBフレームデータB1〜B8の合計13個のフレームデータによって構成されている。また、このIPBムービーデータのフレームデータの再生順序は同図の下段に示す通りであり、フレームデータのデコードの順序は上段に示す通りである。
主制御部300は、所定の条件が成立した場合に(例えば、予め定めた入賞役に入賞した場合に)、第1副制御部400に対して演出の開始を指示する演出開始コマンドを送信する。この演出開始コマンドを受信した第1副制御部400は、スピーカ272、277や各種ランプ420の制御を行いつつ、演出画像表示装置157による表示や演出装置200の駆動の指示がある場合には、これらを指示するコマンドを第2副制御部500に送信する。
第2副制御部500は、第1副制御部400からIPBムービーデータの再生の指示を受けた場合、上述の展開および描画情報生成の処理によって、例えば、上記図11の上段に示す順番でフレームデータのデコードを行う。
より具体的には、第2副制御部500は、最初にデコードして最初に再生するIフレームデータI1をROM506から展開する場合(上記ステップS1202の判定がYesの場合)、上記ステップS1203において、ROM506から展開バッファ0にIフレームデータI1を展開した後、上記ステップS1204において、展開バッファ0に展開済みのIフレームデータI1と、ROM506から抽出したデコード前のPフレームデータP1に基づいてPフレームデータP1を生成し、デコード後のPフレームデータP1を展開バッファ1に展開する。また、IフレームデータI1に対応する画像(あ)(標準サイズの殿と標準サイズの姫の画像)を演出画像表示装置157に表示させるべく、上記ステップS1205において描画バッファ0にIフレームデータI1を展開(複製)する。また、上記ステップS1208において、フレーム情報を次にデコードするBフレームデータB1のフレーム番号である3に更新する。
続いて、第2副制御部500は、上記ステップ1104の描画領域情報更新において、描画領域0を領域指定することによって、描画領域0に記憶済みのIフレームデータI1に対応する画像(あ)(標準サイズの殿と標準サイズの姫の画像)を、演出画像表示装置157に表示させる。また、第2副制御部500は、3番目にデコードして2番目に再生するBフレームデータB1を展開するため、上述の展開および描画設定処理のステップS1301において、上記図7に示すフレーム表示データの予測/複製情報を参照し、該当フレームが双方向予測フレームであるか否かを判定する。この例では、BフレームデータB1に関連付けされた予測/複製情報は0であるため上記ステップ1307に進み、さらに、フレーム表示データの展開バッファ内予測の有無情報を参照し、展開バッファ内でフレーム予測があるか否かを判定する。この例では、BフレームデータB1に関連付けされた展開バッファ内予測の有無情報はないため、上記ステップS1309に進み、さらに、フレーム表示データの予測参照先展開バッファ情報を参照し、予測参照先の展開バッファに展開された画像に基づいて画像データを生成し、生成した画像データを描画領域に展開する。この例では、BフレームデータB1に関連付けされた予測参照先展開バッファ情報は、展開バッファ0、1であるため、展開バッファ0に展開済みのIフレームデータI1と、展開バッファ1に展開済み(デコード済み)のPフレームデータP1と、ROM506から抽出したデコード前のBフレームデータB1に基づいてBフレームデータB1を生成し、デコード後のBフレームデータB1を描画バッファ1に展開する。また、上記ステップS1208において、フレーム情報を次にデコードするBフレームデータB2のフレーム番号である4に更新する。なお、BフレームデータB1のデコードの際には、BフレームデータB1は展開バッファ0、1のいずれにも展開することなく、描画バッファ1に直接、展開するように構成している。
続いて、第2副制御部500は、上記ステップ1104の描画領域情報更新において、描画領域1を領域指定することによって、描画領域1に記憶済みのBフレームデータB1に対応する画像(い)(標準サイズより1段階小さい殿と標準サイズ姫の画像)を、演出画像表示装置157に表示させる。また、第2副制御部500は、4番目にデコードして3番目に再生するBフレームデータB2を展開するために、上述のBフレームデータB1と同じ手順で、フレーム表示データの予測参照先展開バッファ情報を参照し、予測参照先の展開バッファに展開された画像に基づいて画像データを生成し、生成した画像データを描画領域に展開する。この例では、BフレームデータB2に関連付けされた予測参照先展開バッファ情報は、展開バッファ0、1であるため、展開バッファ0に展開済みのIフレームデータI1と、展開バッファ1に展開済み(デコード済み)のPフレームデータP1と、ROM506から抽出したデコード前のBフレームデータB2に基づいてBフレームデータB2を生成し、デコード後のBフレームデータB2を描画バッファ0に記憶する。また、上記ステップS1208において、フレーム情報を次にデコードするPフレームデータP2のフレーム番号である5に更新する。なお、BフレームデータB2のデコードの際には、BフレームデータB2は展開バッファ0、1のいずれにも展開することなく、描画バッファ0に直接、展開するように構成している。
続いて、第2副制御部500は、上記ステップ1104の描画領域情報更新において、描画領域1を領域指定することによって、描画領域1に記憶済みのBフレームデータB2に対応する画像(う)(標準サイズより2段階小さい殿と標準サイズ姫の画像)を、演出画像表示装置157に表示させる。また、第2副制御部500は、2番目にデコード済みで4番目に再生するPフレームデータP1を展開するために、上述の展開および描画設定処理のステップS1301において、上記図7に示すフレーム表示データの予測/複製情報を参照し、該当フレームが双方向予測フレームであるか否かを判定する。この例では、PフレームデータP1に関連付けされた予測/複製情報は1であるため、上記ステップ1302に進み、さらに、展開バッファ内展開の有無情報を参照し、展開バッファ内でフレームの解凍が行われるか否かを判定する。この例では、PフレームデータP1に関連付けされた展開バッファ内展開の有無情報は0であるため、上記ステップ1306に進み、展開バッファ1に展開済みのPフレームデータP1を、描画バッファ1に展開(複製)する。また、上記ステップS1208において、フレーム情報を次にデコードするPフレームデータP2のフレーム番号である5に更新する。
続いて、第2副制御部500は、上記ステップ1104の描画領域情報更新において、描画領域1を領域指定することによって、描画領域1に記憶済みのPフレームデータP1に対応する画像(え)(標準サイズより3段階小さい殿と標準サイズ姫の画像)を、演出画像表示装置157に表示させる。以降、第2副制御部500は、上述の展開および描画情報生成の処理にしたがって、IPBムービーデータの展開を継続する。これにより、画像(お)→画像(か)→画像(き)に示すように、殿の画像だけが徐々に大きくなる表示が行われた後に、画像(く)→画像(け)→画像(こ)に示すように、姫の画像だけが徐々に小さくなる表示が行われた後に、画像(さ)→画像(し)→画像(す)に示すように、姫の画像だけが徐々に大きくなる表示が行われる。
以上説明したように、本実施例に係るスロットマシン100は、所定の画像(例えば、図11(あ)〜(す))に対応する画像情報を圧縮した圧縮画像情報(例えば、デコード前のフレームデータ)を少なくとも記憶可能な画像情報記憶手段(例えば、ROM506)と、前記画像の描画に必要な描画情報(例えば、デコード後のフレームデータ)を少なくとも記憶可能な描画情報記憶手段(例えば、VRAM536)と、前記描画情報記憶手段の特定の領域(例えば、描画バッファ)に記憶されている描画情報に基づいて、前記画像を画像表示装置(例えば、LCD157)に表示させる画像表示制御手段(例えば、第2副制御部500の展開および描画指示)と、を備え、前記画像情報記憶手段に記憶されている圧縮画像情報を展開(デコード)し、展開して得た画像情報を前記描画情報として前記描画情報記憶手段の前記特定の領域に記憶する圧縮画像展開手段(例えば、第2副制御部500の展開および描画設定処理)を備えたことを特徴とする、遊技台である。
本実施例に係るスロットマシン100によれば、展開したデータを、画像表示装置に表示させるための特定の領域に直接記憶させるので、特定の領域とは別の記憶領域を用意する必要がなく、画像データを記憶するための記憶手段(例えば、RAM、VRAMなど)の記憶領域を有効に使用できる場合がある。特に、記憶手段の容量が限られている遊技台の分野においては効果が高い。また、特定の領域とは別の記憶領域に画像データを展開したり、特定の領域とは別の記憶領域から画像データを取得する必要がないため、画像処理に要する制御負担を軽減することができる場合がある。
また、前記圧縮画像情報は、複数の圧縮画像情報(例えば、I、P、Bフレームデータ)からなる圧縮動画像情報(例えば、IPBムービーデータ)であり、前記圧縮画像展開手段は、特定の期間が経過するたびに(例えば、Vブランクカウンタの値が2以上になるたびに)、前記圧縮動画像情報に含まれる複数の圧縮画像情報のうちの所定の圧縮画像情報を展開して得た描画情報を前記描画情報記憶手段に記憶するとともに、前記画像表示制御手段は、前記特定の期間が経過するたびに、前記特定の領域に記憶されている描画情報に基づいて、前記画像を前記画像表示装置に表示させてもよい。
このような構成とすれば、特定の期間が経過するたびに展開を行い、展開したデータを特定の領域に直接展開する場合があるので、その場合には、展開したデータを特定の領域とは別の記憶領域に一旦記憶させる場合に比べ制御負荷が低減できる場合があるとともに、特定の期間が経過するまでに次の描画情報の準備ができていない、いわゆるフレーム落ちの発生頻度を低減できる場合がある。
また、前記特定の領域は、描画領域(例えば、描画バッファ0、1のうちの描画用バッファ)と表示領域(例えば、描画バッファ0、1のうちの表示用バッファ)を含んで構成され、前記描画情報記憶手段における前記描画領域の位置(例えば、描画用バッファの先頭アドレス)を記憶する描画位置記憶手段(例えば、バッファ位置記憶部、描画用バッファ位置記憶領域)と、前記描画情報記憶手段における前記表示領域の位置(例えば、表示用バッファの先頭アドレス)を記憶する表示位置記憶手段(例えば、バッファ位置記憶部、表示用バッファ位置記憶領域)と、をさらに備え、前記画像表示制御手段は、前記特定の期間が経過した場合に、前記表示位置記憶手段に記憶されている位置により特定される前記表示領域に記憶されている描画情報に基づいて、前記画像を前記画像表示装置に表示させるとともに、前記描画位置記憶手段に記憶されている位置により特定される前記描画領域に、前記所定の圧縮画像情報を展開して得た描画情報を記憶した後、前記特定の期間が再度経過した場合に、前記描画位置記憶手段に記憶されている位置を、前記表示領域の位置として前記表示位置記憶手段に記憶させてもよい。
このような構成とすれば、いわゆる複数バッファ方式により表示装置に表示するための描画情報を生成するので、この複数バッファ方式用に複数の特定の領域が必要だが、複数の特定の領域とは別の記憶領域をさらに用意する必要がないので、画像データを記憶するための記憶手段(例えば、RAM、VRAMなど)の記憶領域を有効に使用できる場合がある。
また、前記圧縮画像展開手段は、所定の圧縮動画像情報に含まれる第1の圧縮画像情報(例えば、Iフレームデータ)および第2の圧縮画像情報(例えば、Bフレームデータ)のそれぞれを、展開して第1の描画情報および第2の描画情報として前記描画情報記憶手段に記憶させることが可能であり、前記第1の描画情報は、前記圧縮画像展開手段が前記圧縮動画像情報に含まれるいずれかの圧縮画像情報を展開する場合に参照される描画情報であり、前記第2の描画情報は、前記圧縮画像展開手段が前記圧縮動画像情報に含まれるいずれの圧縮画像情報を展開する場合にも参照されない描画情報であり、前記圧縮画像展開手段は、前記第1の描画情報を前記特定の領域とは別の所定の領域(例えば、展開バッファ)に記憶させるとともに、前記第2の描画情報を前記特定の領域に記憶させてもよい。
このような構成とすれば、圧縮動画像情報を構成する複数の圧縮画像情報を展開して得られる複数の描画情報のうち、デコーダによる展開処理時に参照されない描画情報を特定の領域に直接記憶させ、デコーダによる展開処理時に参照される描画情報を特定の領域とは別の領域に展開するので、すべての描画情報を特定の領域とは別の記憶領域に一旦記憶させる場合に比べて制御負荷が低減できる場合があるとともに、画像データを記憶するための記憶手段(例えば、RAM、VRAMなど)の記憶領域を有効に使用できる場合がある。
ここで、画像制御処理S1013の指令により動作する圧縮画像情報を展開する回路をデコーダとしている。デコーダはVDP534に内蔵され、画像制御処理S1013からの圧縮画像情報が記憶されている位置(例えば、ROM506における記憶場所)、1または複数の展開先バッファのアドレス(例えば、展開バッファ0、1、描画バッファ0、1)、展開実行指令が指定された場合に、指定されたとおりの展開動作を行うように構成されている。VDP534にはデコーダの他に、所定の場所に記憶されている画像情報(例えば、ROM506やVRAM536やRAM508などの所定の記憶手段の所定の第1の領域に記憶されている画像情報)を他の場所(例えば、VRAM536の所定の第2の領域)に複製する複製回路なども搭載されている。この複製回路には、第1の領域に記憶されている変形前画像情報に対応する画像を、拡大・縮小など変形させた画像に対応する変形後画像情報に加工して第2の領域に複製する機能や、すでに第2の領域に記憶されている画像データに対応する画像と、複製を指令された第1の領域に記憶されている画像情報に対応する画像を透過度、優先順位、透過位置などを加味して重ね合わせた結果の画像に対応する画像情報を第2の領域に記憶させる機能が搭載されている場合がある。
また、前記圧縮画像展開手段が前記第1の描画情報を前記所定の領域に記憶させた場合に、当該所定の領域に記憶されている第1の描画情報を前記特定の領域に複製する描画情報複製手段(例えば、展開および描画情報生成のステップS1205、展開および描画設定処理のステップS1306)をさらに備えてもよい。
このような構成とすれば、デコーダによる展開処理時に参照される描画情報が別の描画情報により上書きされるおそれがなく、画像データを記憶するための記憶手段(例えば、RAM、VRAMなど)の記憶領域を有効に使用できる場合がある。
また、換言すれば、本実施例1に係るスロットマシン100は、圧縮動画データに基づいて表示される動画を構成する各フレーム画像が展開される展開領域(例えば、展開バッファ)と、展開領域に展開された画像に基づいて表示装置に表示される画像が描画される描画領域(例えば、描画バッファ)と、が設定された記憶手段(例えば、VRAM536)と、各フレーム画像に対応させた展開領域および描画領域を使用して動画の生成を行う動画生成手段(例えば、画像制御処理)と、を備えた遊技台であって、記憶手段は、展開領域および描画領域の夫々に複数領域を設定し、動画を構成するフレーム画像は、第1展開領域に展開されている第1フレーム画像(例えば、独立フレームのIフレームデータ)と、第2展開領域に展開されている第2フレーム画像(例えば、前方向予測符号化フレームのPフレームデータ)と、に基づいて生成される特定フレーム画像(例えば、前後方向予測符号化フレームのBフレームデータ)を含み、動画生成手段は、特定フレーム画像を展開する場合、第1フレーム画像である過去に描画領域に描画された過去フレーム画像と、第2フレーム画像である未来に描画領域に描画される未来フレーム画像と、に基づいて、前記特定フレーム画像を、今回使用する描画領域に展開することを特徴とする、遊技台である。
このような遊技台によれば、特定フレーム画像を展開する場合に、第1、第2フレーム画像を展開する第1、第2展開領域の2つの領域があれば足りるため、従来の遊技台に比べ、動画を生成する際に必要な記憶領域を減らすことができる場合がある。
なお、本発明に係る遊技台の構成は、上記実施例1に係るスロットマシン100の構成に限定されるものではなく、例えば、本発明に係る「圧縮画像情報」は、IPBムービーデータに限定されるものではない。
また、本発明に係る「画像情報記憶手段」は、ROMに限定されるものではなく、例えば、RAMなど書き換え可能な記憶手段でもよい。また、本発明に係る「描画情報記憶手段」は、VRAMに限定されるものではない。
また、上記実施例においては、メダル(コイン)を遊技媒体としたスロットマシンの例を示したが、本発明はこれに限定されるものではなく、例えば、遊技球(例えば、パチンコ玉)を遊技媒体としたスロットマシンやパチンコ機などにも適用可能である。また、パチンコ機等の実機の動作を家庭用ゲーム機用として擬似的に実行するようなゲームプログラムにおいても、本発明を適用してゲームを実行することができる。
なお、本発明の実施の形態に記載された作用および効果は、本発明から生じる最も好適な作用および効果を列挙したに過ぎず、本発明による作用および効果は、本発明の実施の形態に記載されたものに限定されるものではない。また、実施例に記載した複数の構成のうち、1つの構成に記載している内容を、他の構成に適用することでより遊技の幅を広げられる場合がある。