発明の実施の形態1.
図1は前扉を閉めた状態を示すスロットマシンの正面図、図2は前扉を180度開いた状態を示すスロットマシンの正面図を示す。
図1及び図2中、100はスロットマシンを示すもので、このスロットマシン100は、図1に示すように、スロットマシン本体120と、このスロットマシン本体120の前面片側にヒンジ等により開閉可能に取り付けられた前扉130とを備えている。前記前扉130の前面には、図1に示すように、ほぼ中央にゲーム表示部131を設け、ゲーム表示部131の右下に、遊技者がメダルを投入するためのメダル投入口132を設け、メダル投入口132の下側には、メダル投入口132から投入され、詰まってしまったメダルをスロットマシン100外に強制的に排出するためのリジェクトボタン133が設けられている。
また、前記ゲーム表示部131の左下方には、ゲームを開始するためのスタートスイッチ134を設けてあり、3つの回胴のそれぞれに対応して3つのストップスイッチ140を設けてある。前扉の下端部中央には、メダルの払出し口135を設けてある。前記ゲーム表示部131の上側には、液晶表示装置LCDが設けてある。
スロットマシン本体120の内部には、図2に示すように、その内底面に固定され、内部に複数のメダルを貯留して、貯留したメダルを前扉130の前面に設けた払出し口135に1枚ずつ払い出すためのホッパ装置121が設置されている。このホッパ装置121の上部には、上方に向けて開口し、内部に複数のメダルを貯留するホッパタンク122を備えている。スロットマシン本体120の内部には、前扉130を閉めたときにゲーム表示部131が来る位置に三個の回胴からなるリール(回胴)ユニット203が設置されている。リールユニット203は、外周面に複数種類の図柄が配列されている3つの回胴(第1回胴〜第3回胴)を備えている。ゲーム表示部131には開口部が設けられていて、それを通して遊技者が前記リールユニット203の各回転回胴の図柄を見ることができるようになっている。ホッパ装置121の左側には電源部205が設けられている。
前記前扉130の裏面には、図2に示すように、メダル(コイン)セレクタ1が、前扉130の前面に設けられたメダル投入口132の裏側に取り付けられている。このメダルセレクタ1は、メダル投入口132から投入されたメダルの通過を検出しながら、当該メダルをホッパ装置121に向かって転動させ、外径が所定寸法と違う異径メダルや、鉄又は鉄合金で作製された不正メダルを選別して排除するとともに、1ゲームあたりに投入可能な所定枚数以上のメダルを選別して排除するための装置である。
また、メダルセレクタ1の下側には、図2に示すように、その下部側を覆って前扉130の払出し口135に連通する導出路136が設けられている。メダルセレクタ1により振り分けられたメダルは、この導出路136を介して払出し口135から遊技者に返却される。
図3は発明の実施の形態に係るスロットマシン100の機能ブロック図を示す。
この図において電源系統についての表示は省略されている。図示しないが、スロットマシンは商用電源(AC100V)から直流電源(+5Vなど)を発生するための電源部を備える。
スロットマシン100は、その主要な処理装置としてメイン基板(処理部)10とこれからコマンドを受けて動作するサブ基板20とを備える。なお、少なくともメイン基板10は、外部から接触不能となるようにケース内部に収容され、これら基板を取り外す際に痕跡が残るように封印処理が施されている。
メイン基板10は、遊技者の操作を受けて内部抽選を行ったり、リールの回転・停止やメダルの払い出しなどの処理(遊技処理)を行うためのものである。メイン基板10は、予め設定されたプログラムに従って制御動作を行うCPUと、前記プログラムを記憶する記憶手段であるROMおよび処理結果などを一時的に記憶するRAMを含む。
サブ基板20は、メイン基板10からコマンド信号を受けて内部抽選の結果を報知したり各種演出を行うためのものである。サブ基板20は、前記コマンド信号に応じた予め設定されたプログラムに従って制御動作を行うCPUと、前記プログラムを記憶する記憶手段であるROMおよび処理結果などを一時的に記憶するRAMを含む。コマンドの流れはメイン基板10からサブ基板20への一方のみであり、逆にサブ基板20からメイン基板10へコマンド等が出されることはない。
メイン基板10には、ベットスイッチBET、スタートスイッチ134,ストップボタン140,リールユニット(リール駆動装置を含む)203,リール位置検出回路71、ホッパ駆動部80、ホッパ81及びホッパ81から払い出されたメダルの枚数を数えるためのメダル検出部82(これらは前述のホッパ装置121を構成する)が接続されている。サブ基板20にはスピーカ基板201、LED基板202などの周辺基板(デバイス制御基板)が接続されている。周辺基板とは、サブ基板20により制御されるものであり、主に映像、光、音響により演出を行うものである。また、サブ基板20には液晶表示装置LCDが接続されている。サブ基板20は、液晶表示装置LCDの制御装置であるVDP(グラフィックディスプレイプロセッサ、表示装置制御部)を内蔵している。
メイン基板10には、さらに、メダルセレクタ1のメダルセンサS1及びS2が接続されている。
メダルセレクタ1には、メダルを計数するためのメダルセンサS1及びS2が設けられている。メダルセンサS1及びS2は、メダルセレクタ1に設けられた図示しないメダル通路の下流側(出口近傍)に設けられている(メダル通路の上流側はメダル投入口132に連通している)。2つのメダルセンサS1とS2は、メダルの進行方向に沿って所定間隔を空けて並べて設けられている。メダルセンサS1、S2は、例えば、互いに対向した発光部と受光部とを有して断面コ字状に形成され、その検出光軸をメダル通路内に上方から臨ませて位置するフォトインタラプタである。各フォトインタラプタにより、途中で阻止されずに送られてきたメダルの通過が検出される。なお、フォトインタラプタを2つ隣接させたのは、メダル枚数を検出するだけでなく、メダルの通過が正常か否かを監視するためである。すなわち、フォトインタラプタを2つ隣接させて設けることにより、メダルの通過速度や通過方向を検出することができ、これによりメダル枚数だけでなく、逆方向に移動する不正行為を感知することができる。
ホッパ駆動部80は、ホッパ81を回転駆動して、メイン基板10によって指示された払出数のメダルを払い出す動作を行う。遊技機は、メダルを1枚払い出す毎に作動するメダル検出部82を備えており、メイン基板10は、メダル検出部82からの入力信号に基づいてホッパ81から実際に払い出されたメダルの数を管理することができる。
投入受付部1050は、メダルセレクタ1のメダルセンサS1とS2の出力を受け、遊技毎にメダルの投入を受け付けて、規定投入数に相当するメダルが投入されたことに基づいて、スタートスイッチ134に対する第1リール〜第3リールの回転開始操作を許可する処理を行う。なお、スタートスイッチ134の押下操作が、第1リール〜第3リールの回転を開始させる契機となっているとともに、内部抽選を実行する契機となっている。また、遊技状態に応じて規定投入数を設定し、通常状態およびボーナス成立状態では規定投入数を3枚に設定し、ボーナス状態では規定投入数を1枚に設定する。
メダルが投入されると、遊技状態に応じた規定投入数を限度として、投入されたメダルを投入状態に設定する。あるいは、遊技機にメダルがクレジットされた状態で、ベットスイッチBETが押下されると、遊技状態に応じた規定投入数を限度して、クレジットされたメダルを投入状態に設定する。メダルの投入を受け付けるかどうかは、メイン基板10が制御する。メダルの投入を受け付ける状態になっていないときは(許可されていないときは)、メダルを投入してもメダルセンサS1、S2でカウントされず、そのまま返却される。同様に、メイン基板10はベットスイッチBETの有効/無効を制御する。ベットスイッチBETが有効になっていないときは(許可されていないときは)、ベットスイッチBETを押下しても、それは無視される。
メイン基板10は、乱数発生手段1100を内蔵する。乱数発生手段1100は、抽選用の乱数値を発生させる手段である。乱数値は、例えば、インクリメントカウンタ(所定のカウント範囲を循環するように数値をカウントするカウンタ)のカウント値に基づいて発生させることができる。なお本実施形態において「乱数値」には、数学的な意味でランダムに発生する値のみならず、その発生自体は規則的であっても、その取得タイミング等が不規則であるために実質的に乱数として機能しうる値も含まれる。
内部抽選手段1200は、遊技者がスタートスイッチ134からのスタート信号に基づいて、役の当否を決定する内部抽選を行う。すなわち、メイン基板10のメモリ(図示せず)に記憶されている抽選テーブル(図示せず)を選択する抽選テーブル選択処理、乱数発生手段1050から得た乱数の当選を判定する乱数判定処理、当選の判定結果で大当たりなどに当選したときにその旨のフラグを設定する抽選フラグ設定処理などを行う。
抽選テーブル選択処理では、図示しない記憶手段(ROM)に格納されている複数の抽選テーブル(図示せず)のうち、いずれの抽選テーブルを用いて内部抽選を行うかを決定する。抽選テーブルでは、複数の乱数値(例えば、0〜65535の65536個の乱数値)のそれぞれに対して、リプレイ、小役(ベル、チェリー)、レギュラーボーナス(RB:ボーナス)、およびビッグボーナス(BB:ボーナス)などの各種の役が対応づけられている。また、遊技状態として、通常状態、ボーナス成立状態、およびボーナス状態が設定可能とされ、さらにリプレイの抽選状態として、リプレイ無抽選状態、リプレイ低確率状態、リプレイ高確率状態が設定可能とされる。
乱数判定処理では、スタートスイッチ134からのスタート信号に基づいて、遊技毎に前記乱数発生手段(図示せず)から乱数値(抽選用乱数)を取得し、取得した乱数値について前記抽選テーブルを参照して役に当選したか否かを判定する。
抽選フラグ設定処理では、乱数判定処理の結果に基づいて、当選したと判定された役の抽選フラグを非当選状態(第1のフラグ状態、オフ状態)から当選状態(第2のフラグ状態、オン状態)に設定する。2種類以上の役が重複して当選した場合には、重複して当選した2種類以上の役のそれぞれに対応する抽選フラグが当選状態に設定される。抽選フラグの設定情報は、記憶手段(RAM)に格納される。
入賞するまで次回以降の遊技に当選状態を持ち越し可能な抽選フラグ(持越可能フラグ)と、入賞の如何に関わらず次回以降の遊技に当選状態を持ち越さずに非当選状態にリセットされる抽選フラグ(持越不可フラグ)とが用意されていることがある。この場合、前者の持越可能フラグが対応づけられる役としては、レギュラーボーナス(RB)およびビッグボーナス(BB)があり、それ以外の役(例えば、小役、リプレイ)は後者の持越不可フラグに対応づけられている。すなわち抽選フラグ設定処理では、内部抽選でレギュラーボーナスに当選すると、レギュラーボーナスの抽選フラグの当選状態を、レギュラーボーナスが入賞するまで持ち越す処理を行い、内部抽選でビッグボーナスに当選すると、ビッグボーナスの抽選フラグの当選状態を、ビッグボーナスが入賞するまで持ち越す処理を行う。このときメイン基板10は、内部抽選機能により、レギュラーボーナスやビッグボーナスの抽選フラグの当選状態が持ち越されている遊技でも、レギュラーボーナスおよびビッグボーナス以外の役(小役およびリプレイ)についての当否を決定する内部抽選を行っている。すなわち抽選フラグ設定処理では、レギュラーボーナスの抽選フラグの当選状態が持ち越されている遊技において、内部抽選で小役あるいはリプレイが当選した場合には、既に当選しているレギュラーボーナスの抽選フラグと内部抽選で当選した小役あるいはリプレイの抽選フラグとからなる2種類以上の役に対応する抽選フラグを当選状態に設定し、ビッグボーナスの抽選フラグの当選状態が持ち越されている遊技において、内部抽選で小役あるいはリプレイが当選した場合には、既に当選しているビッグボーナスの抽選フラグと内部抽選で当選した小役あるいはリプレイの抽選フラグとからなる2種類以上の役に対応する抽選フラグを当選状態に設定する。
リプレイ処理手段1600は、所定条件下で内部抽選におけるリプレイの当選確率を変動させる制御を行うことがある。リプレイ処理手段1600については、後に再度説明を加える。リプレイの抽選状態として、リプレイが内部抽選の対象から除外されるリプレイ無抽選状態、リプレイの当選確率が約1/7.3に設定されるリプレイ低確率状態、およびリプレイの当選確率が約1/6に設定されるリプレイ高確率状態という複数種類の抽選状態を設定可能とされている。リプレイの抽選状態を変化させることにより、内部抽選におけるリプレイの当選確率を変動させる。
リール制御手段1300は、遊技者がスタートスイッチ134の押下操作(回転開始操作)によるスタート信号に基づいて、第1リール〜第3リールをステッピングモータにより回転駆動して、第1リール〜第3リールの回転速度が所定速度(約80rpm:1分間あたり約80回転となる回転速度)に達した状態において回転中のリールにそれぞれ対応する3つのストップボタン140の押下操作(停止操作)を許可する制御を行うとともに、ステッピングモータにより回転駆動されている第1リール〜第3リールを抽選フラグの設定状態(内部抽選の結果)に応じて停止させる制御を行う。
また、リール制御手段1300は、3つのストップボタン140に対する押下操作(停止操作)が許可(有効化)された状態において、遊技者が3つのストップボタン140を押下することにより、そのリール停止信号に基づいて、リールユニット203のステッピングモータへの駆動パルス(モータ駆動信号)の供給を停止することにより、第1リール〜第3リールの各リールを停止させる制御を行う。
すなわち、リール制御手段1300は、3つのストップボタン140の各ボタンが押下される毎に、第1リール〜第3リールのうち押下されたボタンに対応するリールの停止位置を決定して、決定された停止位置でリールを停止させる制御を行っている。具体的には、記憶手段(ROM)に記憶されている停止制御テーブル(図示せず)を参照して3つのストップボタンの押下タイミングや押下順序等(停止操作の態様)に応じた第1リール〜第3リールの停止位置を決定し、決定された停止位置で第1リール〜第3リールを停止させる制御を行う。
ここで停止制御テーブルでは、ストップボタン140の作動時点における第1リール〜第3リールの位置(押下検出位置)と、第1リール〜第3リールの実際の停止位置(または押下検出位置からの滑りコマ数)との対応関係が設定されている。抽選フラグの設定状態に応じて、第1リール〜第3リールの停止位置を定めるための停止制御テーブルが用意されることもある。
遊技機では、リールユニット203がフォトセンサからなるリールインデックス(図示せず)を備えており、リール制御手段1300は、リールが1回転する毎にリールインデックスで検出される基準位置信号に基づいて、リールの基準位置(リールインデックスによって検出されるコマ)からの回転角度(ステップモータの回転軸の回転ステップ数)を求めることによって、現在のリールの回転状態を監視することができるようになっている。すなわち、メイン基板10は、ストップスイッチ140の作動時におけるリールの位置を、リールの基準位置からの回転角度を求めることにより得ることができる。
リール制御手段1300は、いわゆる引き込み処理と蹴飛ばし処理とをリールを停止させる制御として行っている。引き込み処理とは、抽選フラグが当選状態に設定された役に対応する図柄が有効な入賞判定ライン上に停止するように(当選した役を入賞させることができるように)リールを停止させる制御処理である。一方蹴飛ばし処理とは、抽選フラグが非当選状態に設定された役に対応する図柄が有効な入賞判定ライン上に停止しないように(当選していない役を入賞させることができないように)リールを停止させる制御処理である。すなわち本実施形態の遊技機では、上記引き込み処理及び蹴飛ばし処理を実現させるべく、抽選フラグの設定状態、ストップボタン140の押下タイミング、押下順序、既に停止しているリールの停止位置(表示図柄の種類)などに応じて各リールの停止位置が変化するように停止制御テーブルが設定されている。このように、メイン基板10は、抽選フラグが当選状態に設定された役の図柄を入賞の形態で停止可能にし、一方で抽選フラグが非当選状態に設定された役の図柄が入賞の形態で停止しないように第1リール〜第3リールを停止させる制御を行っている。
本実施形態の遊技機では、第1リール〜第3リールが、ストップボタン140が押下された時点から190ms以内に、押下されたストップボタンに対応する回転中のリールを停止させる制御状態に設定されている。すなわち回転している各リールの停止位置を決めるための停止制御テーブルでは、ストップボタン140の押下時点から各リールが停止するまでに要するコマ数が0コマ〜4コマの範囲(所定の引き込み範囲)で設定されている。
入賞判定手段1400は、第1リール〜第3リールの停止態様に基づいて、役が入賞したか否かを判定する処理を行う。具体的には、記憶手段(ROM)に記憶されている入賞判定テーブルを参照しながら、第1リール〜第3リールの全てが停止した時点で入賞判定ライン上に表示されている図柄組合せが、予め定められた役の入賞の形態であるか否かを判定する。
入賞判定手段1400は、その判定結果に基づいて、入賞時処理を実行する。入賞時処理としては、例えば、小役が入賞した場合にはホッパ81を駆動してメダルの払出制御処理が行われるか、あるいはクレジットの増加され(規定の最大枚数例えば50枚まで増加され、それを超えた分だけ実際にメダル払い出される)、リプレイが入賞した場合にはリプレイ処理が行われ、ビッグボーナスやレギュラーボーナスが入賞した場合には遊技状態を移行させる遊技状態移行制御処理が行われる。
払出制御手段1500は、遊技結果に応じたメダルの払い出しに関する払出制御処理を行う。具体的には、小役が入賞した場合に、役毎に予め定められている配当に基づいて遊技におけるメダルの払出数を決定し、決定された払出数に相当するメダルを、ホッパ駆動部80でホッパ81を駆動して払い出させる。この際に、ホッパ81に内蔵される図示しないモータに電流が流れることになる。
メダルのクレジット(内部貯留)が許可されている場合には、ホッパ81によって実際にメダルの払い出しを行う代わりに、記憶手段(RAM)のクレジット記憶領域(図示省略)に記憶されているクレジット数(クレジットされたメダルの数)に対して払出数を加算するクレジット加算処理を行って仮想的にメダルを払い出す処理を行う。
リプレイ処理手段1600は、リプレイが入賞した場合に、次回の遊技に関して遊技者の所有するメダルの投入を要さずに前回の遊技と同じ準備状態に設定するリプレイ処理(再遊技処理)を行う。リプレイが入賞した場合には、遊技者の手持ちのメダル(クレジットメダルを含む)を使わずに前回の遊技と同じ規定投入数のメダルが自動的に投入状態に設定される自動投入処理が行われ、遊技機が前回の遊技と同じ入賞判定ラインを有効化した状態で次回の遊技における回転開始操作(遊技者によるスタートスイッチ134の押下操作)を待機する状態に設定される。
また、メイン基板10は、通常状態、ボーナス成立状態、およびボーナス状態の間で遊技状態を移行させる制御を行うことがある(遊技状態移行制御機能)。遊技状態の移行条件は、1の条件が定められていてもよいし、複数の条件が定められていてもよい。複数の条件が定められている場合には、複数の条件のうち1の条件が成立したこと、あるいは複数の条件の全てが成立したことに基づいて、遊技状態を他の遊技状態へ移行させることができる。
通常状態は、複数種類の遊技状態の中で初期状態に相当する遊技状態で、通常状態からはボーナス成立状態への移行が可能となっている。ボーナス成立状態は、内部抽選でビッグボーナスあるいはレギュラーボーナスに当選したことを契機として移行する遊技状態である。ボーナス成立状態では、通常状態における内部抽選でビッグボーナスが当選した場合、ビッグボーナスが入賞するまでビッグボーナスに対応する抽選フラグが当選状態に維持され、通常状態における内部抽選でレギュラーボーナスが当選した場合、レギュラーボーナスが入賞するまでレギュラーボーナスに対応する抽選フラグが当選状態に維持される。ボーナス状態では、ボーナス遊技によって払い出されたメダルの合計数により終了条件が成立したか否かを判断し、入賞したボーナスの種類に応じて予め定められた払出上限数を超えるメダルが払い出されると、ボーナス状態を終了させて、遊技状態を通常状態へ復帰させる。
リールユニット203は、図示しない3つのリールを備えるが、3つのリールそれぞれにひとつづつステッピングモータが取り付けられている。ステッピングモータは、回転子(ロータ)として歯車状の鉄心あるいは永久磁石を備え、固定子(ステータ)として複数の巻線(コイル)を備え、電流を流す巻線を切り替えることによって回転動作させるものである。すなわち、固定子の巻線に電流を流して磁力を発生させ、回転子を引きつけることで回転するものである。回転軸を指定された角度で停止させることが可能なことから、スロットマシンのリールの回転駆動に使用されている。複数の巻線がひとつの相を構成する。相の数として、例えば、2つ(二相)、4つ(4相)、5つ(5相)のものもある。
次に、遊技機における遊技処理について図4を参照して説明を加える。
一般的に、遊技機において、メダルの投入(クレジットの投入)に始まり、払い出しが終了するまで(又はクレジット数の増加が終了するまで)が一遊技である。一遊技が終了するまでは次回の遊技に進めないという決まりがある。
先ず、規定枚数のメダルが投入されることでスタートスイッチ134が有効になり、図4の処理が開始される。
ステップS1において、スタートスイッチ134が操作されることにより、スタートスイッチ134がONとなる。そして、次のステップS2に進む。
ステップS2において、メイン基板10により抽選処理が行われる。そして、次のステップS3に進む。
ステップS3において、第1リール〜第3リールの回転が開始する。そして、次のステップS4に進む。
ステップS4において、ストップボタン140が操作されることにより、ストップボタン140がONとなる。そして、次のステップS5に進む。
ステップS5において、第1リール〜第3リールのうち押下されたストップボタン140に対応するリールについて回転停止処理が行われる。そして、次のステップS6に進む。
ステップS6において、三個のリールに対応するストップボタン140の操作が行われたか否かが判定される。そして、三個のリールに対応する3つのストップボタン140すべての操作が行われたと判定された場合、次のステップS7に進む。
ステップS7において、抽選フラグ成立中に当該抽選フラグに対応する入賞図柄が有効入賞ライン上に揃ったか否か、すなわち、入賞が確定したか否かが判定される。そして、入賞が確定したと判定された場合、次のステップS8に進む。なお、入賞が確定しなかったときは、抽選フラグが成立していてもメダルの払い出しは行われない。
ステップS8において、入賞図柄に相当するメダルが払い出される。
メダルの投入からステップS8の実行完了までが、一遊技である。ステップS8の待機処理が終了すると、処理はフローチャートの最初に戻る。言い換えれば、次の遊技が可能な状態になる(次遊技へ移行する)。
図5は、サブ基板20のブロック図を示す。同図は、サブ基板20において、コマンドを生成し、生成したコマンドをコマンドバッファに登録し、バッファ内のコマンドを解釈・実行する、という機能についてのブロック図である。他の機能についての図示は省略している。
20aは、液晶表示装置LCDの画像を生成するための予め定められたコマンドを生成するコマンド生成部である。当該コマンド自体は公知であるので説明は省略する。また、コマンド生成部20aはコマンドごとに予め定められた上書きフラグを生成する。上書きフラグは、コマンドについて上書き可能かどうかを示すものである。以下、上書き可能であることを上書きフラグが「オン」であるとし、上書きが不能である(許可されていない)ことを上書きフラグが「オフ」であるとする。上書きの意味については後述する。
コマンド生成部20aは、生成したコマンドが画像の全体を更新するものであるとき、上書きフラグをオンとして、生成したコマンドとともに上書きフラグをコマンドバッファ20bに書き込む。
コマンド生成部20aが生成する画像関係のコマンドにはさまざま種類のものがある。例えば、キャラクタの画像を変更するなど既に生成・表示されている画面の一部を変更するコマンドA、全く別の画面に変更するために画面全体を新たに生成するコマンドBなどがある。コマンドBのように画面全体を更新するものについて、原則として、上書きフラグを「オン」とする。これに対し、コマンドAのように画面の一部を変更するものについて、上書きフラグを「オフ」とする。コマンド生成部20aが生成するコマンド体系は予め定められており、コマンドA、Bどちらに属するかは各コマンドについて予め定めておくことができる。そこで、本発明の実施の形態1では、予め定めておいた規則に従い、コマンド生成部20aで生成したコマンドに対して上書きフラグのオンとオフを自動的に割り当てるようにするものとする。
上記例において、コマンドBの上書きフラグをオフとするようにすることもできる。このようにすることでコマンドBの先に格納されたコマンドAが解釈・実行されるようになる。コマンドAがなるべく実行されるようにするときは、コマンドBの上書きフラグをオフにするとよい。なお、全てのコマンドについて上書きフラグをオフにすれば、以下に説明するスキップ処理は実行されず、従来と同じように全てのコマンドが順番に解釈・実行される。
上記のように画面の一部を変更するコマンドAのみならず画面全体を新たに生成するコマンドBについて上書きフラグをオフとすることは、あり得ることである。これに対し、コマンドAについて上書きフラグをオンとすることは推奨されない。コマンドAは画面全体を更新するものではないので、当該コマンドAよりも前に存在するコマンドをスキップしてしまうと画面の整合性がとれなくなるおそれがある。
20bは、コマンド生成部20aにより生成されたコマンド及び上書きフラグを順番に格納するコマンドバッファである。コマンドバッファ20bは、例えばFIFOのような先入れ先出しのメモリである。コマンドバッファ20bは、演出において画像を生成する順番に対応してコマンド及び上書きフラグを順番に格納している。
20cは、コマンドバッファ20bからコマンドを読み出して実行し、液晶表示装置LCDを制御するVDP(表示装置制御部)20cである。VDP20cは任意のコマンドバッファ20bの内容(少なくとも格納されている任意のコマンドの上書きフラグの内容)を読み出すことができるものとする。
図6は、VDPの構造の概略図である。VDPは、インタフェースI/F、読み込んだコマンドに従い画像を描画する描画エンジンE1、描画した画像を記憶するビデオメモリVRAM、及び、ビデオメモリVRAMに記憶された画像を読み出して液晶表示装置LCDへ送る表示エンジンE2を備える。これらの各要素は、内部のバスBUSに接続され、相互にデータを読み書きできるようになっている。インタフェースI/Fは、CPUからコマンドなどのデータを受けるとともに、表示エンジンE2などからの割り込み信号をCPUへ出力することもできる。このVDPは、例えば、XGAサイズの解像度(1024×768ピクセルの解像度)で毎秒60フレームの描画及び表示が可能である。
毎秒60フレーム(=60fps)で描画及び表示する場合、1フレームの時間は16.67msである。これをフレーム時間と呼ぶ。
液晶表示装置LCDの制御は、描画データ(液晶表示装置に対するコマンド、動画デコード情報などを含む)の保存、描画データに基づく描画実行、描画された画像の表示実行の3段階で行われる。すなわち、VDPへコマンド(描画データ)を送り、VDPの描画エンジンE1が描画を実行し、表示エンジンE2が液晶表示装置LDCでの画像表示を行う。この3段階の処理はそれぞれ並列(独立)に実行される。
次に、図7乃至図9を参照して発明の実施の形態1に係る遊技機の動作について説明を加える。
まず、図7を参照して従来の遊技機(上書きフラグを備えない)におけるコマンドの実行順序について説明する。同図において1,2,3はコマンドの実行順序を示す。つまり、CMD1、CMD2、CMD3の順番でコマンドが読み出され、解釈・実行される(図8及び図9も同様)。
CMD1は、予め定められたデフォルト画面を表示するコマンドである。CMD2は、現に表示されている画面の背景を変化させるコマンドである。CMD3は、画面を別のものに切り替えて演出を行うコマンドである。上記例でいうと、CMD1はコマンドB、CMD2はコマンドA、CMD3はコマンドBに相当する。
図7のような順番でコマンドバッファ20bにコマンドがスタックされていた場合、CMD3は全画面を切り替えるコマンドBであるから、CMD1及びCMD2は、CMD3により生成される画面に対して影響を及ぼさない(CMD1及びCMD2による描画の有無は遊技者に影響を与えない)。従って、図7の場合は、CMD1及びCMD2を解析、描画することは無意味である。
そこで、図8に示すように、各コマンドに上書きフラグを用意しておく。上書きフラグは、上述のようにオン又はオフのいずれかにセットされている。そして、VDP20cは、コマンドバッファ20bからコマンドを読み出す前に、コマンドバッファ20bのコマンドの上書きフラグを読み出し、これらを判定することにより無意味になるコマンドの解析をスキップすることが可能となる(この処理の詳細は後述する)。
図8の例では、CMD1とCMD2の上書きフラグはいずれもオフであり、CMD3の上書きフラグはオンであるので、CMD3よりも前の順番のコマンドであるCMD1とCMD2の両方がスキップされる。
図9は、コマンドバッファ20bのコマンドの全ての上書きフラグがオンである例を示す。この場合においてもCMD1及びCMD2による描画の有無は遊技者に影響を与えないから、CMD3よりも前の順番のコマンドであるCMD1とCMD2の両方がスキップされる。
図8及び図9の処理について補足する。
もし、上述のコマンドB(画面の一部を変更するコマンド)、コマンドA(画面全体を新たに生成するコマンド)の順番で実行されるのであれば、コマンドAによる画面の一部の変更はそのまま残り、遊技者はコマンドAによる画面変更を認識することができる。言い換えれば、この実行順序においてコマンドAは有効である。図7乃至図9において、仮にCMD3が無いとすれば、CMD1とCMD2はいずれも有効である。
これに対し、コマンドA、コマンドBの順番で実行されるのであれば、コマンドAによる画面の一部の変更はコマンドBによる新たな画面で上書きされて消滅する。したがって、遊技者はコマンドAによる画面変更を認識することができず、この実行順序においてコマンドAは無効である。図7乃至図9の例が該当する。
なお、コマンドAが無効となるのは、上記の実行順であり、かつ、コマンドAとコマンドBの実行間隔(つまり、これらによる画面の表示間隔)が、ある程度短いときである。これらの実行間隔が長ければコマンドAによる画面の一部の変更は一定時間表示され、その後コマンドBによる新たな画面で上書きされて消滅する。この場合、遊技者はコマンドAによる画面の一部の変更を認識することができる。コマンドAは有効であると言える。
これに対し、実行間隔が短いと(例えば画面の表示単位であるフレームの表示時間よりも短いと)コマンドAによる画面の一部の変更は、これが表示される前にコマンドBによる新たな画面で上書きされて消滅する。したがって、遊技者はコマンドAによる画面変更を認識することができない。コマンドAは無効である。
コマンドAが有効か、それとも無効かということは上記のように描画結果が実質的に表示される(遊技者に視認され得る)かどうかという意味であり、本発明の実施の形態1は、無効なコマンドの処理をスキップすることにより、VDP20cの負荷を軽減し、処理落ちを防ぐことを目的としている。
なお、図8及び図9の処理の主体には、コマンド生成部20aとVDP20cのいずれもなり得る。コマンドを生成してコマンドバッファ20bにコマンドを格納した後に、例えばタイマー割り込みに基づきコマンド生成部20aが図8及び図9の処理を実行する。あるいは、コマンドバッファ20bからコマンドを読み出す際に、VDP20cが図8及び図9の処理を実行する。
このようにコマンド生成部20aとVDP20cのいずれも発明の実施の形態1に係る処理を実行できるが、以下の説明ではVDP20cが処理を行う場合を例にとる。
図10は、発明の実施の形態1に係る遊技機のVDP20cの処理フローチャートである。同図はコマンドのスキップ処理に関してのみ表示するものであり、コマンドに基づく画面生成処理などについて省略している。
図10の処理は、VDP20cがコマンドを読み出そうとするとき、あるいは定期的(例えばフレーム周期に従って)に行われる。フレーム周期ごと(フレーム周期を単位として)に図10の処理を行うようにすれば、上述のコマンドAとコマンドBの実行間隔がある程度短いこと、という条件を常に満たすことができる。画像の表示時間が2フレーム程度であれば遊技者はそれを認識できないから、例えば2フレーム周期ごとに図10の処理を行うようにしてもよい。フレーム周期を単位として図10の処理間隔を定めることで処理が容易になる。
なお、図10の処理をコマンド生成部20aで行うときは、例えばタイマー割り込みによって図10の処理を開始するようにする。
処理タイミングについては、発明の実施の形態2及び3においても同様である。
S10:VDP20cが、コマンドバッファ20bを調べる。
VDP20cは、少なくとも未実行のコマンドがあるかどうか、存在するコマンドの数、上書きフラグの状態について調べる。
S11:コマンドバッファ20bに未実行のコマンドが存在しないとき、又は、ただひとつの未実行のコマンドのみが存在するときは(S11でNO)、VDP20cは図10の処理を終了する。
コマンドバッファ20bに未実行のコマンドが存在しなければ、VDP20cはコマンドを処理する必要がない。未実行のコマンドが一つであれば、当該コマンドを読み出して解釈・実行するだけであり、S12以降のスキップ処理を実行する必要はない。
コマンドバッファ20bに未実行のコマンドが複数格納されているときは(S11でYES)、S12以降の処理を実行する。
S12:VDP20cが、コマンドバッファ20bのコマンドの上書きフラグを確認する。
S13:上書きフラグがオンであるものがあるとき(S13でYES)、VDP20cはS14及びS15の処理を実行する。上書きフラグがオンであるものがないとき(S13でNO)、図10の処理を終了する。上書きフラグがオンであるコマンドが存在しないときは、コマンドバッファ20bから複数のコマンドを順番に読み出して実行する。
S14:VDP20cは、上書きフラグがオンであるコマンドのうちで順番が最後であるものを特定する。
図8及び図9の例では、いずれもCMD3が該当する。
S15:VDP20cは、当該最後の上書きフラグがオンのコマンドよりも前のコマンドをスキップする。
この処理において、当該最後のコマンドよりも順番が前のコマンドの上書きフラグの状態は問わない。図8のように順番=1、2のコマンドCMD1、CMD2の上書きフラグがオフであっても、図9のように順番=1、2のコマンドCMD1、CMD2の上書きフラグがオンであっても、これら2つのコマンドがスキップされることは変わらない。
スキップとは、該当するコマンドの読み込み、解釈・実行を行わないということを意味する。具体的には、順番が最後であると特定された当該コマンド(有効コマンド)よりも前のコマンドを破棄(削除)するか又は実行しないように設定する。実行しないとは、例えば、処理済みであると設定して当該コマンドを読み込まないようにすることである。コマンドバッファ20bのどのコマンドを処理しようとしているのかを示すために公知のポインタが用いられるが、当該ポインタを進めることでコマンドを実行しないようにできる。図8及び図9の例では、図10の処理を開始する前はポインタ=1であったとして、同処理を終了した時点でポインタ=3とすることでCMD1及びCMD2をスキップすることができる。なお、コマンドバッファ20bの記憶領域はそれほど多くなく、スキップされたコマンドはいずれ上書きされるので、コマンドの破棄自体を明示的に行う必要は必ずしもない。
そして、VDP20cは、S14で順番が最後であると特定されたコマンド(有効コマンド、図8及び図9の例ではCMD3)及びこれ以降のコマンド(図8及び図9では存在しない)を順番に読み出して解釈・実行する。
図11は、図10によるスキップ処理の具体例を示す。
図11(a)は、最後のコマンドCMD5の上書きフラグがオフであるが、その前のコマンドCMD4の上書きフラグがオンであるとき、図10の処理によりCMD4より前のCMD1乃至CMD3がスキップされることを示す。○は当該コマンドが読み出されること、×は読み出されないことを意味する。このように、上書きフラグがオフであってもコマンドが残ることがある。
図11(b)は、最後のコマンドCMD6の上書きフラグがオンであるとき、図10の処理によりCMD6より前のCMD1乃至CMD5がスキップされることを示す。このように、最後のコマンドの上書きフラグがオンであれば、他のコマンドは全てスキップされる。
発明の実施の形態1によれば、コマンドバッファに格納する全コマンドに上書きのオンオフを示すフラグを設け、上書きオンフラグを発見したらそれよりも前のコマンドの解析(あるいは描画)をスキップするようにしたので、結果的に意味を持たないコマンドの解釈・実行をスキップすることができ、VDPに余計な負荷を掛けずに済み、処理落ちを防ぐことができる。
なお、前述したようにコマンド生成部20aとVDP20cのいずれも発明の実施の形態1に係る処理を実行できるから、コマンド生成部20aが図10の処理を行うようにもでき、このような構成も発明の実施の形態1に含まれ、VDPの負荷をさらに軽減することができる。この場合、図10の各ステップの動作主体をコマンド生成部20aに読み替えられたい。
発明の実施の形態2.
発明の実施の形態1では上書きフラグがコマンドとともにコマンドバッファ20bに格納されていたが、発明の実施の形態2では上書きフラグは予め用意されていない。コマンドバッファ20bのコマンドを調べ、それを解釈することによりコマンドごとに全画面描画、非全画面描画(差し込み処理)のいずれであるかを判別し、この判別結果に基づきコマンドのスキップを行う。発明の実施の形態2の上記判別結果が、発明の実施の形態1の上書きフラグに相当する。
発明の実施の形態2に係る処理について、図12を参照して説明を加える。
図12(a)では、コマンドバッファ20bに3つのコマンドCMD1乃至CMD3が格納されている。CMD1、CMD2、CMD3の順番でコマンドが解析(解釈)され、上記判定が行われる。
画面の全体(全画面)について処理(上書き)を行う場合には、その画面全体が切り替えられるので直前のコマンドによる描画は遊技者に対して提示されることがなく、意味が無い。画面の全体を描画するもの(以下、画面の全体を描画するコマンドを「全画面描画コマンド」とし、全画面描画コマンド以外のコマンドを「非全画面描画コマンド」と表記することがある)であるかどうか判定し、全画面描画コマンドよりも前のコマンドをスキップすることでVDPの負荷を軽減することができる。
図12(b)は判定結果を示す。CMD1はデフォルト画面を表示するコマンドであるから全画面描画コマンドである。CMD2は差し込みコマンド(部分的に画像を追加するコマンド)であるから非全画面描画コマンドである。CMD3は画面切り替え演出コマンドであるから全画面描画コマンドである。最後のコマンドCMD3が全画面描画コマンドであるので、これよりも前のCMD1とCMD2はスキップされる。
全画面描画コマンドかどうかの判断は、そのコマンドで描画するための素材の縦横サイズ及びその素材が描画される画面上の位置(中心座標)、透明度(アルファタイプ)に基づき行われる。その例を列挙する。なお、描画処理、素材の具体的な内容、画面座標系、透明度は、いずれも公知技術であるので説明は省略する。
・画面全体を書き換えるコマンドは、全画面描画コマンドである(図13(a))。
・描画する素材の縦横サイズが表示画面よりも小さいときは、そのコマンドは非全画面描画コマンドである(図13(c))。
・描画する素材の縦横サイズが表示画面よりも大きく、かつ、その素材が描画される画面上の位置と画面の中心との距離Δが、画面の大きさと素材の大きさの差γよりも小さいときは、全画面描画コマンドである(図13(b))。距離Δが差γよりも大きいときは、当該素材で既に描画された画面の全部を覆うことができないから、そのコマンドは非全画面描画コマンドである。
・描画する素材の透明度が、既に描画された画面を視認できるように設定されているとき(いわゆる透明であるとき)、そのコマンドは非全画面描画コマンドである。
図14は、発明の実施の形態2に係る遊技機のVDP20cの処理フローチャートである。同図はコマンドのスキップ処理に関してのみ表示するものであり、コマンドに基づく画面生成処理などについて省略している。
発明の実施の形態2においても、コマンド生成部20aとVDP20cのいずれも発明の実施の形態2に係る処理を実行できるから、以下の説明ではそのように明示することにする。
S10:コマンド生成部20a又はVDP20cが、コマンドバッファ20bを調べる。
VDP20cは、少なくとも未実行のコマンドがあるか、存在するコマンドの数、上書きフラグの状態について調べる。
S11:コマンドバッファ20bに未実行のコマンドが存在しないとき、又は、ただひとつの未実行のコマンドのみが存在するときは(S11でNO)、コマンド生成部20a又はVDP20cは図14の処理を終了する。
コマンドバッファ20bに未実行のコマンドが存在しなければ、コマンド生成部20a又はVDP20cはコマンドを処理する必要がない。未実行のコマンドが一つであれば、当該コマンドを読み出して解釈・実行するだけであり、S12b以降のスキップ処理を実行する必要はない。
コマンドバッファ20bに未実行のコマンドが複数格納されているときは(S11でYES)、S12b以降の処理を実行する。
S12b:コマンド生成部20a又はVDP20cが、コマンドバッファ20bのコマンドの判定を行う。すなわち、各コマンドが全画面描画コマンド、非全画面描画コマンドのいずれであるかを判別する。
上述のように、コマンドにより描画する際に用いられる素材のサイズ、当該素材の貼り付けられる画面上の位置の情報に基づいて全画面描画コマンドであるかどうか判定する。また、当該コマンドにより描画する際に用いられる素材の透明度に基づいて全画面描画コマンドであるかどうか判定する。
S13b:全画面描画コマンドが存在するとき(S13bでYES)、コマンド生成部20a又はVDP20cはS14b及びS15bの処理を実行する。全画面描画コマンドが存在しないとき(S13bでNO)、図14の処理を終了する。画面描画コマンドが存在しないときは、コマンドバッファ20bから複数のコマンドを順番に読み出して実行する。
S14b:コマンド生成部20a又はVDP20cは、全画面描画コマンドのうちで順番が最後であるものを特定する。
図12の例ではCMD3が該当する。
S15b:コマンド生成部20a又はVDP20cは、当該全画面描画コマンドよりも前のコマンドをスキップする。
この処理において、当該全画面描画コマンドよりも前のコマンドが全画面描画コマンドであるか非全画面描画コマンドであるかは問わない。したがって、図12(b)の太線で示したCMD1、CMD2はいずれもスキップされる。
スキップの意味については前述した。
そして、VDP20cは、順番が最後であると特定されたコマンド(有効コマンド)及びこれ以降のコマンドを順番に読み出して解釈・実行する。
発明の実施の形態2によれば、発明の実施の形態1と同様に結果的に意味を持たないコマンドの解釈・実行をスキップすることができ、VDPに余計な負荷を掛けずに済み、処理落ちを防ぐことができる。
発明の実施の形態2によれば、コマンドバッファに蓄積されてからコマンドの判別を行なっているので、発明の実施の形態1に比べて柔軟な処理が可能である。例えば、ある演出においては透明度がゼロで背景が全く見えない場合には全画面描画コマンドとするが、若干透明で背景がわずかでも透けて見えるようなときには非全画面描画コマンドとし、他の演出では透明度がゼロから50%程度までは全画面描画コマンドとし、透明度がそれ以上のときには非全画面描画コマンドとする、といった処理が可能である。演出の品質を上げるためには前者のように判定し、VDPの負荷軽減を優先するときには後者のように判定するというように、柔軟に処理できる。
発明の実施の形態3.
画面生成処理において複数のレイヤを設け、それぞれに独立に画像を描画し、複数のレイヤによる画面を合成して(重ねて)表示するということが行われている。複数のレイヤを用いることにより背景、キャラクタなどの描画を独立に行うことができて便利なので、遊技機においても用いられることがある。発明の実施の形態3は複数のレイヤを用いる遊技機に対して適用できるものである。なお、レイヤ及びこれを用いて行う処理は公知であるので、その説明は省略する。
図15は、複数のレイヤを備える場合のコマンドの例を示す。同図では3つのレイヤ(3層)のレイヤL(低層)、レイヤM(中間層)、レイヤU(上層)それぞれについて独立したコマンドが設定されている。図15のCMD1乃至CMD3をコマンド、それぞれのコマンドに含まれる各層ごとのコマンドをサブコマンドと呼ぶことにする。
図15のCMD1は、レイヤLに対してデフォルトの画像を描画するサブコマンド(P_DEF_1)、レイヤMに対して描画されていたメインキャラクタを消去するサブコマンド(MC_CLEAR)、レイヤUに対して枠を描画するサブコマンド(P_WAKU)を含んでいる。
同じくCMD2は、レイヤMに対してカットイン画像を描画するサブコマンド(P_CUTIN)を含む。レイヤLとUのサブコマンドはNULLであるから、これらのレイヤに対しては何の処理も行わない。
同じくCMD3は、レイヤLに対して戦闘の背景を描画するサブコマンド(P_BATTLE)、レイヤMに対して描画されていたメインキャラクタを消去するサブコマンド(MC_CLEAR)、レイヤUに対して描画されていた枠を消去するサブコマンド(MC_CLEAR)を含んでいる。
図15の3つのコマンドについても、発明の実施の形態2と同様に一部のコマンドをスキップすることができる。
あるレイヤについて処理を行う場合には、その画面全体が切り替えられる(消去あるいは上書きされる)ので直前のコマンドによる描画は遊技者に対して提示されることがなく、意味が無い。これに対し、処理を行わないとき(NULLサブコマンドであるとき)、直前のコマンドで描画されていないと遊技者に画像が提示されないことになる。そこで、発明の実施の形態3では、サブコマンドをNULLとそれ以外(非NULL)の2つに区別し、これらの判別をレイヤごとに行うことによりコマンドをスキップするかどうか判断する。
この処理のために、コマンドバッファ20bに実行フラグを設けることにする。実行フラグはコマンドごとに設けられ、それがセットされているときは対応するコマンドを実行し、セットされていなければ当該コマンドをスキップすることにする。
図16は、発明の実施の形態3に係る遊技機の処理フローチャートである。同図はコマンドのスキップ処理に関してのみ表示するものであり、コマンドに基づく画面生成処理などについて省略している。
S10:コマンド生成部20a又はVDP20cが、コマンドバッファ20bを調べる。
VDP20cは、少なくとも未実行のコマンドがあるか、存在するコマンドの数、上書きフラグの状態について調べる。
S11:コマンドバッファ20bに未実行のコマンドが存在しないとき、又は、ただひとつの未実行のコマンドのみが存在するときは(S11でNO)、コマンド生成部20a又はVDP20cは図16の処理を終了する。
コマンドバッファ20bに未実行のコマンドが存在しなければ、コマンド生成部20a又はVDP20cはコマンドを処理する必要がない。未実行のコマンドが一つであれば、当該コマンドを読み出して解釈・実行するだけであり、スキップ処理を実行する必要はない。
コマンドバッファ20bに未実行のコマンドが複数格納されているときは(S11でYES)、S20以降の処理を実行する。
S20:コマンド生成部20a又はVDP20cが、コマンドバッファ20bの実行フラグを全てリセットする。これは実行フラグの初期設定である。
実行フラグは、少なくともコマンドの数だけ用意され、各コマンドを読み出して実行するか(例えば実行フラグ=1のとき)、スキップするか(例えば実行フラグ=0のとき)を判別するためのものである。実行フラグに基づき実行するかどうかの判断は、VDP20cが行う。
S21:コマンド生成部20a又はVDP20cが、ひとつのレイヤを指定する。
ひとつのレイヤであればよく、どのレイヤを指定するかは任意である。例えば、図15のレイヤLを指定する。以下、指定されたレイヤについて処理を行う。
S22:コマンド生成部20a又はVDP20cが、最後のコマンドから、指定されたレイヤのサブコマンドを読み出す。
最後のコマンドとは、コマンドバッファ20bの最後に格納されたものであり、VDP20cによる読み出しの順番が最後であるものである。図15の例では、CMD3が該当する。レイヤLが指定されているときは、サブコマンドP_BATTLEが読み出される。
S23:コマンド生成部20a又はVDP20cが、読み出したサブコマンドがNULL(何もしない)であるかどうか判定する。NULLであれば(YES)、S24に進み、NULLでなければ(NO)、S26に進む。
上記例では、サブコマンドP_BATTLEはNULLではないからS26に処理が移る。
S24:コマンド生成部20a又はVDP20cが、現在処理しているコマンドが先頭のコマンドかどうか判定する。先頭のコマンドであれば(YES)、S27に進み、先頭のコマンドでなければ(NO)、S25に進む。
先頭のコマンドとは、コマンドバッファ20bの最初に格納されたものであり、VDP20cによる読み出しの順番が最初であるものである。図15の例では、CMD1が該当する。
上記例では、先頭のコマンドではないからS25の処理を行う。
S25:コマンド生成部20a又はVDP20cが、ひとつ前のコマンドに移動し、指定されているレイヤのサブコマンドを読み出す。
S26:コマンド生成部20a又はVDP20cが、処理の対象としているコマンドの実行フラグをセットする。コマンドがNULLでなければそのコマンドの当該レイヤのサブコマンドを実行する必要があるので、実行フラグをセットする。
上記例では、CMD3の実行フラグをセットする。
S27:コマンド生成部20a又はVDP20cが、全てのレイヤを処理したかどうか判定する。全てのレイヤを処理したのであれば(YES)、S29の処理を行い、そうでなければ(NO)、S28に進み、他のレイヤを指定する。
上記例では、レイヤLから他のレイヤM又はUのいずれかを指定する(S28)。
S29:コマンド生成部20a又はVDP20cは、実行フラグがリセットされているもの(=セットされていないもの)のコマンドをスキップする。
スキップの意味については前述した。
そして、VDP20cは、スキップされなかったコマンドをコマンドを順番に読み出して解釈・実行する。
図16の処理について、具体例を挙げて説明する。
図17(a)において、レイヤLに関して、最後のコマンドCMD3のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされ(S26)、CMD2とCMD1について処理することなく(S25が実行されない)、次のレイヤに処理が移る(S27でNO)。レイヤM及びUについても同様である。図17(a)の例ではどのレイヤでもS23でYESとなることがなく、他のコマンドCMD1とCMD2の実行フラグはリセットのままである。したがって、CMD1とCMD2はスキップされ、CMD3のみが実行される。
図17(b)において、レイヤLに関して、最後のコマンドCMD3のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされ(S26)、CMD2とCMD1について処理することなく(S25が実行されない)、次のレイヤに処理が移る(S27でNO、S28)。
レイヤMに関して、最後のコマンドCMD3のサブコマンドはNULL(N)であり(S23でYES)、CMD3は先頭のコマンドでないので(S24でNO)、ひとつ前のCMD2のレイヤMのサブコマンドが読み出される(S25)。実行フラグはセットされないが、上述のようにレイヤLに関する処理で実行フラグがセットされているので、CMD3はスキップされない。CMD2のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされ(S26)、CMD1について処理することなく(S25が実行されない)、次のレイヤに処理が移る(S27でNO、S28)。
レイヤUに関して、最後のコマンドCMD3のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされ(S26)、CMD2とCMD1について処理がなされない(S25が実行されない)。レイヤUが最後のレイヤであるので(S27でYES)、S29の処理が行われて終了する。
図17(b)では、CMD1はスキップされ、CMD2とCMD3が実行される。
図17(c)において、レイヤLに関して、最後のコマンドCMD3のサブコマンドはNULL(N)であり(S23でYES)、CMD3は先頭のコマンドでないので(S24でNO)、ひとつ前のCMD2のレイヤMのサブコマンドが読み出される(S25)。コマンドCMD2のサブコマンドはNULL(N)であり(S23でYES)、CMD2は先頭のコマンドでないので(S24でNO)、ひとつ前のCMD1のレイヤMのサブコマンドが読み出される(S25)。CMD1のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされる(S26)。そして、次のレイヤに処理が移る(S27でNO、S28)。
レイヤMに関して、最後のコマンドCMD3のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされ(S26)、CMD2とCMD1について処理することなく(S25が実行されない)、次のレイヤに処理が移る(S27でNO、S28)。
レイヤUは、レイヤLと同様である。
図17(c)では、CMD2はスキップされ、CMD1とCMD3が実行される。
図17(d)において、レイヤLに関して、最後のコマンドCMD3のサブコマンドはNULL(N)であり(S23でYES)、CMD3は先頭のコマンドでないので(S24でNO)、ひとつ前のCMD2のレイヤMのサブコマンドが読み出される(S25)。CMD2のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされる(S26)。そして、次のレイヤに処理が移る(S27でNO、S28)。
レイヤMに関して、最後のコマンドCMD3のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされ(S26)、CMD2とCMD1について処理することなく(S25が実行されない)、次のレイヤに処理が移る(S27でNO、S28)。
レイヤUに関して、最後のコマンドCMD3のサブコマンドはNULL(N)であり(S23でYES)、CMD3は先頭のコマンドでないので(S24でNO)、ひとつ前のCMD2のレイヤMのサブコマンドが読み出される(S25)。コマンドCMD2のサブコマンドはNULL(N)であり(S23でYES)、CMD2は先頭のコマンドでないので(S24でNO)、ひとつ前のCMD1のレイヤMのサブコマンドが読み出される(S25)。CMD1のサブコマンドはNULL以外のコマンド(非N)であるので(S23でNO)、その実行フラグがセットされる(S26)。そして、次のレイヤに処理が移る(S27でNO、S28)。
図17(c)では、CMD1乃至CMD3のいずれもスキップされることなく、実行される。
発明の実施の形態3によれば、発明の実施の形態1及び2と同様に結果的に意味を持たないコマンドの解釈・実行をスキップすることができ、VDPに余計な負荷を掛けずに済み、処理落ちを防ぐことができる。
発明の実施の形態3によれば、複数のレイヤを備える画像処理装置について、意味を持たないコマンドの解釈・実行をスキップすることができる。
以上の説明において、遊技機としてもっぱらスロットマシンを例にとったが、本発明の実施の形態はこれに限定されず、パチンコ機などの他の遊技機にも適用することができる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。