(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、本発明に係る遊技機の実施の形態としてパチンコ遊技機を例に挙げ、次の順序で説明する。
<1.パチンコ遊技機の構造>
<2.パチンコ遊技機の制御構成>
<3.演出制御部の構成>
<4.動作の概要>
<5.主制御部の処理>
<6.第1の実施の形態の演出制御部の処理>
<7.第2の実施の形態の演出制御部の処理>
<8.第3の実施の形態の演出制御部の処理>
<9.まとめ及び変形例>
【0010】
<1.パチンコ遊技機の構造>
まず
図1、
図2を参照して、本発明の実施の形態としてのパチンコ遊技機1の構成を概略的に説明する。
図1は実施の形態のパチンコ遊技機1の外観を示す正面側の斜視図であり、
図2は遊技盤の正面図である。
図1,
図2に示すパチンコ遊技機1は、主に「枠部」と「遊技盤部」から成る。
「枠部」は以下説明する前枠2、外枠4、ガラス扉5、操作パネル7を有して構成される。「遊技盤部」は
図2の遊技盤3から成る。以下の説明上で、「枠部」又は「枠側」とは前枠2,外枠4、ガラス扉5、操作パネル7の総称とする。また「盤部」又は「盤側」とは遊技盤3を示す。
【0011】
図1に示すようにパチンコ遊技機1は、木製の外枠4の前面に額縁状の前枠2が開閉可能に取り付けられている。図示していないが、この前枠2の裏面には遊技盤収納フレームが形成されており、その遊技盤収納フレーム内に
図2に示す遊技盤3が装着される。これにより遊技盤3の表面に形成した遊技領域3aが前枠2の開口部2aから
図1の遊技機前面側に臨む状態となる。
なお遊技領域3aの前側には、透明ガラスを支持したガラス扉5が設けられており、遊技領域3aは透明ガラスを介して前面の遊技者側に表出される。
【0012】
ガラス扉5は軸支機構6により前枠2に対して開閉可能に取り付けられている。そしてガラス扉5の所定位置に設けられた図示しない扉ロック解除用キーシリンダを操作することで、前枠2に対するガラス扉5のロック状態を解除し、ガラス扉5を前側に開放できる構造とされている。また扉ロック解除用キーシリンダの操作によっては、外枠4に対する前枠2のロック状態も解除可能な構成とされている。
またガラス扉5の前面側には、枠側の発光手段として発光部20wが各所に設けられている。発光部20wは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
【0013】
ガラス扉5の下側には操作パネル7が設けられている。この操作パネル7も、図示しない軸支機構により、前枠2に対して開閉可能とされている。
操作パネル7には、上受け皿ユニット8、下受け皿ユニット9、発射操作ハンドル10が設けられている。
【0014】
上受け皿ユニット8には、弾球に供される遊技球を貯留する上受け皿8aが形成されている。下受け皿ユニット9には、上受け皿8aに貯留しきれない遊技球を貯留する下受け皿9aが形成されている。
また上受け皿ユニット8には、上受け皿8aに貯留された遊技球を下受け皿9a側に抜くための球抜きボタン16が設けられている。下受け皿ユニット9には、下受け皿9aに貯留された遊技球を遊技機下方に抜くための球抜きレバー17が設けられている。
また上受け皿ユニット8には、図示しない遊技球貸出装置に対して遊技球の払い出しを要求するための球貸しボタン14と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン15とが設けられている。
さらに上受け皿ユニット8には、演出ボタン11,12、十字キー13が設けられている。演出ボタン11,12は、所定の入力受付期間中に内蔵ランプが点灯されて操作可能となり、その内蔵ランプ点灯時に押下することにより演出に変化をもたらすことができる押しボタンとされる。また十字キー13は遊技者が演出状況に応じた操作や演出設定等のための操作を行う操作子である。
【0015】
発射操作ハンドル10は操作パネル7の右端部側に設けられ、遊技者が弾球のために
図3に示す発射装置32を作動させる操作子である。
また前枠2の上部の両側と、発射操作ハンドル10の近傍には、演出音を音響出力するスピーカ25が設けられている。
【0016】
次に
図2を参照して、遊技盤3の構成について説明する。遊技盤3は、略正方形状の木製合板または樹脂板を主体として構成されている。この遊技盤3には、発射された遊技球を案内する球誘導レール31が盤面区画部材として環状に装着されており、この球誘導レール31に取り囲まれた略円形状の領域が遊技領域3aとなっている。
【0017】
この遊技領域3aの略中央部には、主液晶表示装置32M(LCD:Liquid Crystal Display)が設けられ、また主液晶表示装置32Mの右側には副液晶表示装置32Sが設けられている。
主液晶表示装置32Mでは、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。副液晶表示装置32Sも、同様に各種演出に応じた表示が行われる。
【0018】
また遊技領域3a内には、主液晶表示装置32M及び副液晶表示装置32Sの表示面の周囲を囲むように、センター飾り35Cが設けられている。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から主液晶表示装置32M及び副液晶表示装置32Sの表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
【0019】
また左遊技領域3bの下方には、左下飾り35Lが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また主液晶表示装置32Mの下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
【0020】
遊技領域3aの右上縁付近には、複数個のLEDを配置して形成されたドット表示器による図柄表示部33が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、主液晶表示装置32Mは、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
【0021】
センター飾り35Cの下方には、上始動口41(第1の特別図柄始動口)を有する入賞装置が設けられ、さらにその下方には下始動口42a(第2の特別図柄始動口)を備える普通変動入賞装置42が設けられている。
上始動口41及び下始動口42aの内部には、遊技球の通過を検出する検出センサ(
図3に示す上始動口センサ71,下始動口センサ72)が形成されている。
【0022】
上始動口41は、図柄表示部33における第1特別図柄の変動表示動作の始動条件に係る入賞口で、始動口開閉手段(始動口を開放または拡大可能にする手段)を有しない入賞率固定型の入賞装置となっている。
【0023】
下始動口42aを有する普通変動入賞装置42は、始動口開閉手段により始動口の遊技球の入賞率を変動可能な入賞率変動型の入賞装置として構成されている。即ち下始動口42aを開放または拡大可能にする左右一対の可動翼片(可動部材)42bを備えた、いわゆる電動チューリップ型の入賞装置である。
この普通変動入賞装置42の下始動口42aは、図柄表示部33における第2特別図柄の変動表示動作の始動条件に係る入賞口である。そして、この下始動口42aの入賞率は可動翼片42bの作動状態に応じて変動する。即ち可動翼片42bが開いた状態では、入賞が容易となり、可動翼片42bが閉じた状態では、入賞が困難又は不可能となるように構成されている。
【0024】
また普通変動入賞装置42の左右には、一般入賞口43が複数個設けられている。各一般入賞口42の内部には、遊技球の通過を検出する検出センサ(
図3に示す一般入賞口センサ74)が形成されている。
また右遊技領域3cの下部側には、遊技球が通過可能なゲート(特定通過領域)からなる普通図柄始動口44が設けられている。この普通図柄始動口44は、図柄表示部33における普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出するセンサ(
図3に示すゲートセンサ73)が形成されている。
【0025】
右遊技領域3c内の普通図柄始動口44から普通変動入賞装置42へかけての流下経路途中には第1特別変動入賞装置45(特別電動役物)が設けられている。
第1特別変動入賞装置45は、突没式の開放扉45bにより第1大入賞口45aを閉鎖/開放する構造とされている。また、その内部には第1大入賞口45aへの遊技球の通過を検出するセンサ(
図3の第1大入賞口センサ75)が形成されている。
第1大入賞口45aの周囲は、右下飾り35Rが遊技盤3の表面から膨出した状態となっており、その膨出部分の上辺及び開放扉45bの上面が右流下経路3cの下流案内部を形成している。従って、開放扉45bが盤内部側に引き込まれることで、下流案内部に達した遊技球は容易に第1大入賞口45aに入る状態となる。
【0026】
また普通変動入賞装置42の下方には、第2特別変動入賞装置46(特別電動役物)が設けられている。第2特別変動入賞装置46は、下部が軸支されて開閉可能な開放扉46bにより、その内側の第2大入賞口46aを閉鎖/開放する構造とされている。また、その内部には第2大入賞口46aへの遊技球の通過を検出するセンサ(
図3の第2大入賞口センサ76)が形成されている。
開放扉46bが開かれることで第2大入賞口46aが開放される。この状態では、左遊技領域3b或いは右遊技領域3cを流下してきた遊技球は、高い確率で第2大入賞口50に入ることとなる。
【0027】
以上のように盤面の遊技領域には、入賞口として上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43が形成されている。
本実施の形態のパチンコ遊技機1においては、これら入賞口のうち、普通図柄始動口44以外の入賞口への入賞があった場合には、各入賞口別に設定された入賞球1個当りの賞球数が遊技球払出装置55(
図3参照)から払い出される。
例えば、上始動口41および下始動口42aは3個、第1大入賞口45a、第2大入賞口46aは13個、一般入賞口43は10個などと賞球数が設定されている。
なお、これらの各入賞口に入賞しなかった遊技球は、アウト口48を介して遊技領域3aから排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、ゲートを遊技球が通過したりすることをいう。実際には入賞口ごとに形成されたセンサ(各入賞検出スイッチ)により遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。
【0028】
以上のような盤面において、センター飾り35C、左下飾り35L、右下飾り35R、センターステージ35S、第1特別変動入賞装置45、第2特別変動入賞装置46、さらには図示していない可動体役物には、詳細には図示していないが各所に、盤側の発光手段として例えばLEDによる発光部20b、20Z、20H、20Jが設けられている。
発光部20bは演出用の発光動作やエラー告知用の発光動作を行う。
発光部20Z、20H、20Jは、それぞれ各種の状況提示用の発光部である。
発光部20Zは変動図柄識別用の発光動作を行う。発光部20Zは、例えば第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応して3つ設けられており、それぞれ対応する図柄について、例えば図柄変動の停止中、変動中、当たり中を識別する発光動作を行う。
発光部20Hは保留数表示用の発光動作を行う。発光部20Hは、例えば第1特別図柄変動についての保留数を最大4個まで表示し、また第2特別図柄変動についての保留数を最大4個まで表示するものとして、例えば合計8つ設けられており、その発光状態で保留数を表示する。
発光部20Jは遊技状態報知用の発光動作を行う。発光部20Jは、所要数設けられており(この例では3つ)、それぞれの発光状態で、大当たり中、確変中、時短中などを報知する。
なお、この例では発光部20Z、20H、20Jは盤側に設けられているが、発光部20Z、20H、20Jの全部又は一部が枠側に設けられても良い。
【0029】
以下では説明上、盤側の発光部20w、枠側の発光部20bを「演出用発光部」と表記する場合がある。
また発光部20Zを「変動図柄識別用発光部」、発光部20Hを「保留数表示用発光部」、発光部20Jを「遊技状態報知用発光部」と表記する場合がある。
さらに発光部20Z、20H、20Jを総称して「状況提示用発光部」と表記する場合がある。
【0030】
<2.パチンコ遊技機の制御構成>
次に本実施の形態のパチンコ遊技機1の制御系の構成について説明する。
図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施の形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、払出制御基板53、発射制御基板54、電源基板58が設けられている。
【0031】
主制御基板50は、マイクロコンピュータ等が搭載され、パチンコ遊技機1の遊技動作全般に係る統括的な制御を行う。なお以下では、主制御基板50に搭載されたマイクロコンピュータ等を含めて主制御基板50の構成体を「主制御部50」と表記する。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力、可動体役物を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
【0032】
払出制御基板53は、パチンコ遊技機1に接続された遊技球払出装置55による賞球の払い出し制御を行う。
発射制御基板54は、遊技者のパチンコ遊技機1に設けられている発射装置56による遊技球の発射動作の制御を行う。
電源基板58は、外部電源(例えばAC24V)からAC/DC変換、さらにはDC/DC変換を行い、各部に動作電源電圧Vccを供給する。なお電源経路の図示は省略している。
【0033】
まず主制御部50及びその周辺回路について述べる。
主制御部50は、CPU100(以下「主制御CPU100」と表記)を内蔵したマイクロプロセッサ、ROM101(以下「主制御ROM101」と表記)、RAM102(以下「主制御RAM102」と表記)等を搭載している。
主制御CPU100は制御プログラムに基づいて、遊技の進行に応じた各種演算及び制御処理を実行する。
主制御ROM101は、主制御CPU100による遊技動作の制御プログラムや、遊技動作制御に必要な種々のデータを記憶する。
主制御RAM102は、主制御CPU100が各種演算処理に使用するワークエリアや、各種入出力データや処理データのバッファ領域として用いられる。
なお図示は省略したが、主制御部50は、各部とのインターフェース回路、特別図柄変動表示に係る抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC(Counter Timer Circuit)、主制御CPU100に割込み信号を与える割込コントローラ回路なども備えている。
【0034】
主制御部50は、上述のように盤面の遊技領域の各入賞手段(上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43)に設けられるセンサの検出信号を受信する構成となっている。
即ち、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号が主制御部50に供給される。
なお、これらのセンサ(71〜76)は、入球した遊技球を検出する検出スイッチにより構成されるが、具体的にはフォトスイッチや近接スイッチなどの無接点スイッチや、マイクロスイッチなどの有接点スイッチで構成することができる。
【0035】
主制御部50は、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号の受信に応じて、処理を行う。例えば抽選処理、図柄変動制御、賞球払出制御、演出制御コマンド送信制御、外部データ送信処理などを行う。
【0036】
また主制御部50には、下始動口42の可動翼片42bを開閉駆動する普通電動役物ソレノイド77が接続され、主制御部50は遊技進行状況に応じて制御信号を送信して普通電動役物ソレノイド77の駆動動作を実行させ、可動翼片42bの開閉動作を実行させる。
さらに、主制御部50には、第1大入賞口45の開放扉45bを開閉駆動する第1大入賞口ソレノイド78と、第2大入賞口46の開放扉46bを開閉駆動する第2大入賞口ソレノイド79が接続されている。主制御部50は、いわゆる大当たり状況に応じて、第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79を駆動制御して、第1大入賞口45又は第2大入賞口46の開放動作を実行させる。
【0037】
また主制御部50には、図柄表示部33が接続されており、図柄表示部33に制御信号を送信して、各種図柄表示(LEDの消灯/点灯/点滅)を実行させる。これにより図柄表示部33における第1特別図柄表示部80、第2特別図柄表示部81、普通図柄表示部82での表示動作が実行される。
【0038】
また主制御部50には、枠用外部端子基板57が接続される。主制御部50は、遊技進行に関する情報を、枠用外部端子基板57を介して図示しないホールコンピュータに送信可能となっている。遊技進行に関する情報とは、例えば大当り当選情報、賞球数情報、図柄変動表示実行回数情報などの情報である。ホールコンピュータとは、パチンコホールの遊技機を統括的に管理する管理コンピュータであり、遊技機外部に設置されている。
【0039】
また主制御部50には、払出制御基板53が接続されている。払出制御基板53には、発射装置56を制御する発射制御基板54と、遊技球の払い出しを行う遊技球払出装置55が接続されている。
主制御部50は、払出制御基板53に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信する。払出制御基板53は当該制御コマンドに応じて遊技球払出装置55を制御し、遊技球の払い出しを実行させる。
また払出制御基板53は、主制御部50に対して、払い出し動作状態に関する情報(払出状態信号)を送信可能となっている。主制御部50側では、この払出状態信号によって、遊技球払出装置55が正常に機能しているか否かを監視する。具体的には、賞球の払い出し動作の際に、玉詰まりや賞球の払い出し不足といった不具合が発生したか否かを監視している。
【0040】
また主制御部50は、特別図柄変動表示に関する情報を含む演出制御コマンドを、演出制御部51に送信する。なお、主制御部50から演出制御部51への演出制御コマンドの送信は一方向通信により実行されるようにしている。これは、外部からの不正行為による不正な信号が演出制御部51を介して主制御部50に入力されることを防止するためである。
【0041】
続いて演出制御部51及びその周辺回路について説明する。
演出制御部51は、CPU200(以下「演出制御CPU200」と表記)を内蔵したマイクロプロセッサ、ROM201(以下「演出制御ROM201」と表記)、RAM202(以下「演出制御RAM202」と表記)を搭載し、マイクロコンピュータを構成している。
【0042】
演出制御CPU200は演出制御プログラム及び主制御部50から受信した演出制御コマンドに基づいて、各種演出動作のための演算処理や各演出手段の制御を行う。演出手段とは、本実施の形態のパチンコ遊技機1の場合、主液晶表示装置32M、副液晶表示装置32S、発光部20w、20b、スピーカ25、及び図示を省略した可動体役物となる。
また演出制御CPU200は各種の状況提示のための制御も行う。具体的には発光部20Z、20H、20Jの発光制御である。
演出制御ROM201は、演出制御CPU200による演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM202(
図4のD−RAM202a、内蔵CPU用ワークメモリ202b)は、演出制御CPU200が各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域などとして用いられる。
なお後述のように演算制御部51は、1チップマイクロコンピュータとその周辺回路が搭載されている例を示すが、演出制御部51の構成は各種考えられる。例えばマイクロコンピュータに加えて、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、ウォッチドッグタイマ(WDT)回路、演出制御CPU200に割込み信号を与える割込コントローラ回路、音響演出のための音源ICなどを備える場合もある。
【0043】
この演出制御部51の主な役割は、主制御部50からの演出制御コマンドの受信、演出制御コマンドに基づく演出の選択決定、主液晶表示装置32M、副液晶表示装置32Sの表示制御(表示データ供給)、スピーカ45の音声出力制御、発光部20w、20b、20Z、20H、20J(LED)の発光制御、可動体役物の動作制御(可動体役物モータ65の駆動制御)などとなる。
【0044】
この演出制御部51は、主液晶表示装置32M、副液晶表示装置32Sに対する制御装置としての機能も備えているため、演出制御部51には、いわゆるVDP(Video Display Processor)、画像ROM、VRAM(Video RAM)としての機能も備えられ、また演出制御CPU200は、液晶制御部としても機能する。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う機能を指している。
画像ROMとは、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されているメモリを指す。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域である。
【0045】
演出制御部51は、これらの構成により、主制御部50からのコマンドに基づいて各種の画像データを生成し、主液晶表示装置32Mや副液晶表示装置32Sに出力する。これによって主液晶表示装置32Mや副液晶表示装置32Sにおいて各種の演出画像が表示される。
【0046】
また演出制御部51には枠ドライバ部61、盤ドライバ部62が接続されている。
枠ドライバ部61は、枠側のランプ部63のLEDについて発光駆動を行う。なお、ランプ部63とは、
図1に示したように枠側に設けられている発光部20wを総括的に示したものである。
盤ドライバ部62は、盤側のランプ部64のLEDについて発光駆動を行う。なお、ランプ部64とは、
図2に示したように盤側に設けられている発光部20b、20Z、20H、20Jを総括的に示したものである。
【0047】
また演出制御部51にはモータドライバ部70が接続されている。
モータドライバ部70は可動体役物モータ65を駆動して、盤側に設けられている可動体役物の動作を実行させる。
可動体役物モータ65は例えばステッピングモータが用いられる。
各可動体役物モータ65には原点位置が規定されている。原点位置は、例えば役物が
図2の盤面に通常は表出しない位置などとされる。
各可動体役物モータ65が原点位置にあるか否かを演出制御部51側で確認できるようにするため、各可動体役物モータ65には原点スイッチ68が設けられている。例えばフォトインターラプタが用いられる。この原点スイッチ68の情報が演出制御CPU200によって検知される構成とされている。
【0048】
また詳しくは
図6、
図7、
図8を用いて後述するが、本実施の形態の場合、演出制御部51は、発光駆動データやモータ駆動データをシリアルデータとして、枠ドライバ部61、盤ドライバ部62、モータドライバ部70に出力する。
【0049】
また演出制御部51は、スピーカ25からの音声出力制御を実行させる。演出制御部51は演出用の音楽、音声としての音声信号を例えばLch,Rchの2チャネルのステレオ出力信号としてアンプ部67に出力する。この音声信号はアンプ部67で増幅された後、スピーカ25に対して与えられる。
なお、
図3では図示の都合上、アンプ部67及びスピーカ25を1系統しか示していないが、実際にはアンプ部67及びスピーカ25としては、例えばLch、Rchに対応した出力チャネルがそれぞれ設けられ、ステレオによる音再生が可能とされる。
【0050】
また演出制御部51には、遊技者が操作可能な操作部60が接続され、操作部60からの操作検出信号を受信可能となっている。この操作部60は、
図1で説明した演出ボタン11,12、十字キー13と、それらの操作検出機構のことである。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
【0051】
演出制御部51は、主制御部50から送られてくる演出制御コマンドに基づき、あらかじめ用意された複数種類の演出パターンの中から抽選によりあるいは一意に演出パターンを決定し、必要なタイミングで各種演出手段を制御する。これにより、演出パターンに対応する主液晶表示装置32Mや副液晶表示装置32Sによる演出画像の表示、スピーカ25からの音の再生、ランプ部63、64(発光部20w、20b、20Z、20H、20J)におけるLEDの点灯点滅駆動、可動体役物モータ65による可動体役物の動作が実現され、時系列的に種々の演出パターンが展開されていく。これにより「演出シナリオ」に沿った演出が実現される。
【0052】
なお演出制御コマンドは、1バイト長のモード(MODE)と、同じく1バイト長のイベント(EVENT)からなる2バイト構成により機能を定義する。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
主制御部50からの演出制御コマンドは、演出制御部51において受信バッファに取り込まれる。演出制御CPU200は、所定タイミングで受信バッファを確認し、受信されている演出制御コマンドの解析を行って、実行すべき演出制御を確定させることになる。
【0053】
<3.演出制御部の構成>
演出制御部51の具体的な構成例を
図4に示す。
図4の例の演出制御部51は、例えば1チップマイクロコンピュータ250に対して演出制御ROM201、D−RAM202a、CG−ROM206、WDT(ウォッチドッグタイマ)回路210等が外付け接続されて構成されている。
【0054】
1チップマイクロコンピュータ250は、演出制御CPU200を含むとともに、図示する各部によって、上述したVDP、VRAM等の機能や、さらには発光制御、モータ制御、音制御を行う機能を有する。
構成各部について説明していく。
【0055】
1チップマイクロコンピュータ250は演出制御CPU200を搭載している。演出制御CPU200は上述したように各種の制御処理を行う。
演出制御CPU200は、CPUインターフェース203を経由してマイクロコンピュータ250の内部デバイスや外部デバイスを使用する。
即ち演出制御CPU200は、CPUインターフェース203を経由してホストインターフェース204に接続され、ホストインターフェース204を介して、主制御部50からのコマンド受信、演出制御ROM201に対する読出アクセス、WDT回路210との信号送受信、及びバス251を介した内部の各部との通信を行う。
【0056】
演出制御CPU200は、上述した演出制御RAM202として、D−RAM202a及び内蔵CPU用ワークメモリ202bを用いる。
D−RAM202aは、RAMインターフェース208に接続されており、演出制御CPU200は、RAMインターフェース208を介してD−RAM202aに対する書き込みや読み出しを行う。
【0057】
システム制御レジスタ205はシステムの初期設定をするためのレジスタである。
転送回路212は、マイクロコンピュータ250の内部リソースや外部ペリフェラルを入出力とした転送を行う。
【0058】
CG−ROM206は画像ROMであり、表示するキャラクタ画像データを格納する。
CG−ROM206はマイクロコンピュータ250に設けられたCGバスインターフェース207に接続されている。これによりマイクロコンピュータ250内の所要部位は、CGバスインターフェース207を介してCG−ROM206にアクセスできる。
【0059】
マイクロコンピュータ250は例えば容量が48MバイトのVRAM209を内蔵している。VRAM209は描画素材やフレームデータを格納する。
VRAM209の使用態様は設定により各種可能であるが、本例では表示用のフレームデータの記憶領域として2つのフレームバッファ209A、209Bを設定し、各フレームバッファ209A、209Bを1フレーム毎に交互に用いて描画や表示データ出力を行うようにする。
【0060】
なお、本実施の形態では、2つの表示装置(主液晶表示装置32M、副液晶表示装置32S)を使用するので、フレームバッファ209A、209Bとしては主液晶表示装置32M、副液晶表示装置32Sのそれぞれに対応して用意される。
つまり図示するフレームバッファ209Aは、主液晶表示装置32用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含み、またフレームバッファ209Bは、主液晶表示装置32用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含む。
VRAM209のフレームバッファ209A、209Bにはそれぞれ、主液晶表示装置32M、副液晶表示装置32S用の一フレーム分の画像データが各々生成されるが、所定の描画コマンドによって、フレームバッファ209A、209Bの描画位置が特定される。
【0061】
インデックステーブル211は、VRAM209の記憶領域を設定するなどVRAM209の管理を行う。
【0062】
プリローダ220、表示回路221,222,223、GDEC(グラフィックデコーダ)223、描画回路225は、ビデオプロセッサ(VDP)としての各種処理を行う。
演出制御CPU200は、演出制御コマンドに応じて主液晶表示装置32Mや副液晶表示装置32Sで表示する画像内容を設定するディスプレイリストを作成する。このディスプレイリストとは、描画コマンドの集まりのことである。
ディスプレイリストは、描画する順番に記載された一群の描画コマンドで構成されている。描画コマンドには、一フレームのどの位置に、どのような画像を描画するかを規定するコマンドも含まれ、描画すべき画像のCG−ROM206などの記憶位置(ソースアドレス)も特定されている。
【0063】
描画回路225は、VRAM209上のフレームバッファ(209A又は209B)に図形を描画する。
GDEC223は、描画で使用する圧縮画像データをデコードしVRAM209に展開する。
【0064】
プリローダ220はデータ転送回路72によって送信されたディスプレイリストを解析し、その中で参照している画像素材、即ちCG−ROM206上の画像データをDRAM202aまたはVRAM209のいずれかの指定されている領域に転送する。
またこのときプリローダ220は、画像データの参照先を、転送後のアドレスに書換えたディスプレイリストを出力する。書換えられたディスプレイリストは、データ転送回路212によって描画回路225に送信される。
【0065】
描画回路225による描画の実行中は、画像データへのランダムアクセスが発生するため、例えばNANDフラッシュメモリのようなランダムアクセスに弱いCG−ROM206から画像データを直接参照すると描画性能が大きく低下する。そこでプリローダ220を使って、あらかじめ画像データやディスプレイリストをD−RAM202a、または内蔵のVRAM209に転送しておくことで、高速に動画デコード、および描画を実行することができるようにしている。
【0066】
上記の通り本実施の形態では、プリローダ220を機能させているので、ディスプレイリストの画像データ(画像素材としてのCGデータ)の参照先は、CG−ROM206ではなく、D−RAM202a又はVRAM209に設定されたプリロード領域である。そのため、描画回路225による描画の実行中に生じる画像データへのランダムアクセスを迅速に実行することができ、動きの激しい高解像度の動画についても描画処理に有利である。
【0067】
表示回路221,222,223は、VRAM209のフレームバッファ(209A又は209B)の表示データを外部に表示出力する。
ここでマイクロコンピュータ250が3つの表示回路221,222,223を備えているのは、1系統のデジタルRGB出力と、2系統のLVDS(Low voltage differential signaling)出力を可能とする3画面出力対応の構成を採っているためである。本例の場合、例えばデジタルRGB出力を主液晶表示装置32Mへの表示データ出力として用い、1つのLVDS出力を副液晶表示装置32Sへの表示データ出力として用いる。
表示回路221,222,223からの表示データは、LCDインターフェース226によって選択されて外部機器、即ち主液晶表示装置32Mと副液晶表示装置32Sに出力される。
【0068】
表示回路221,222,223は、ノンインタレース出力としての表示データ出力を行う。また表示データについて、例えば2倍から1/2倍までの拡大・縮小を行うスケーリング処理機能や、ディザリング機能、カラー補正機能を備えている。
図5に表示回路221,222,223及びLCDインターフェース226のブロック図を示している。
【0069】
各表示回路221,222,223は同期信号生成部265を有し、それぞれ画像のフレームに同期して処理を行う。同期信号生成部265は、同期信号として、例えば垂直ブランク期間(非有効ライン走査期間)を示すVブランク信号、水平同期信号、垂直同期信号を生成する。これらの同期信号は、マイクロコンピュータ250の内部での制御処理に用いることができるほか、主液晶表示装置32M、副液晶表示装置32Sへの表示データ転送や表示制御動作にも用いられる。
なお、各表示回路221,222,223で用いる同期信号同士は同期させることができる。例えば主液晶表示装置32Mなどの外部ディスプレイの垂直同期信号の立ち下がりをトリガにして、表示回路221,222,223を強制的に同期させることができる。
【0070】
各表示回路221,222,223は、VRAM読出部261により、VRAM210のフレームバッファ209A又は209Bから読み出したフレームデータを取得する。
表示回路221,222については、取得したフレームデータについてスケーラ262でのスケーリング処理、カラー補正部263でのカラー補正処理、ディザラー264でのディザリング処理を施すことが可能とされる。そしてディザラー264による処理の後の出力としてデジタルRGB出力とLVDS出力が行われる。表示回路223も同様であるが、この図の例では表示回路223はスケーラ262の機能を搭載していない例を挙げた。
【0071】
LCDインターフェース226は、デジタルRGB出力部226aとLVDS出力部226bを有する。
デジタルRGB出力部226aには、表示回路221,222,223からのデジタルRGB出力としての表示データが供給される。デジタルRGB出力部226aは、表示回路221,222,223の1つのデジタルRGB出力を選択して、主液晶表示装置32Mに供給する。
またLVDS出力部226bには、表示回路221,222,223からのLVDS出力としての表示データが供給される。LVDS出力部226bは、表示回路221,222,223のうちで2つのLVDS出力を選択して出力することができる。本実施の形態のパチンコ遊技機1の場合、表示回路221,222,223のうちの1つのLVDS出力を副液晶表示装置32Sに供給する。
もちろんこれは一例であり、1つのLVDS出力を主液晶表示装置32Mに供給することも考えられるし、デジタルRGB出力を副液晶表示装置32Sに供給することも考えられる。
【0072】
図4のマイクロコンピュータ250は音コントローラ230を有する。
音コントローラ230は、例えば音源制御部と圧縮音声データを記憶する音データ記憶部を有し、演出制御CPU200の制御に基づいて、圧縮音声データをデコードして出力音声信号を生成し、外部のアンプ部67へ出力する。
なお、音コントローラ230の搭載の有無にかかわらず、演出制御CPU200はマイクロコンピュータ250外部の音源ICを制御して、音声信号をアンプ部67へ出力するようにしてもよい。
【0073】
マイクロコンピュータ250は汎用ポート231を有している。例えば8ビットの入出力ポートとされる。汎用ポート231により各種の外部デバイスとの入出力が可能となる。
【0074】
シリアル出力コントローラ240は、制御信号をシリアルデータとして外部に出力する。本実施の形態の場合、シリアル出力コントローラ240にはランプコントローラ241とモータコントローラ242が設けられ、ランプ部63,64の発光駆動データの出力や可動体役物モータ65のモータ駆動データの出力が行われる。
シリアル出力コントローラ240(ランプコントローラ241及びモータコントローラ242)からの枠ドライバ部61、盤ドライバ部62への発光駆動データの出力系及びモータドライバ部70へのモータ駆動データの出力系を
図6に示す。
【0075】
枠ドライバ部61は、n個のLEDドライバ90が、シリアル出力コントローラ240のシリアルデータ出力チャネルch1に対して並列に接続されている。
シリアルデータ出力チャネルch1の信号線としては、クロック信号CLKを供給するクロック線、発光駆動データ(「LED駆動データ」或いは「ランプ駆動データ」ともいう)としてのシリアルデータDATAを供給するデータ線が設けられている。これら各信号線は、それぞれ、枠ドライバ部61を構成するn個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
枠ドライバ部61の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスIDが設定されている。即ち個々のLEDドライバ90の識別子である。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をw1、w2・・・と表記する。
【0076】
また盤ドライバ部62は、m個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch2に対して並列に接続されている。
シリアルデータ出力チャネルch2の信号線もチャネルch1と同様、クロック信号CLKを供給するクロック線、発光駆動データとしてのシリアルデータDATAを供給するデータ線が設けられている。これら各信号線は、それぞれ、盤ドライバ部62を構成するm個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
盤ドライバ部62の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のLEDドライバ90の識別子)が設定されている。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をb1、b2・・・と表記する。
【0077】
枠ドライバ部61及び盤ドライバ部62における各LEDドライバ90としては、例えば24チャネルLEDドライバであり24個の電流端子を備える。従って1つのLEDドライバ90によっては、最大24個の系列にLED駆動電流を供給することができる。具体的には例えば8系列のR(赤)LED駆動電流供給、8系列のG(緑)LED駆動電流供給、8系列のB(青)LED駆動電流供給を行い、8個のフルカラーLEDの発光駆動が可能である。なお、ここでは1つの「系列」とは、1つの電流端子に対して接続される1つのLED、又は1つの電流端子に対して直列又は並列で接続される複数個のLEDの群を指している。
枠ドライバ部61におけるLEDドライバ90の数nは、枠側に配置されるLED系列数(発光部20wの系列数)によって決められる。従ってnは1の場合もあるし、2以上の場合もある。枠ドライバ部61は1又は複数のLEDドライバ90を有する。
また盤ドライバ部62におけるLEDドライバ90の数mは、盤側に配置されるLED系列数(発光部20b、20Z、20H、20Jの系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
【0078】
図7にLEDドライバ90の要部の概略構成例を示す。
LEDドライバ90は、シリアルバスインターフェース191、アドレス設定部192、データバッファ/PWMコントローラ193、D/A変換器194、駆動電流源回路195−1〜195−24を備える。
駆動電流源回路195−1〜195−24は、上記の24系列の駆動電流出力を、それぞれ電流端子196−1〜196−24から行う電流源である
【0079】
このLEDドライバ90には、シリアルバスインターフェース191に対し、シリアル出力コントローラ240からのクロック信号CLK、シリアルデータDATAが入力される。シリアルバスインターフェース191はクロック信号CLKのタイミングでシリアルデータDATAを取り込む。シリアルバスインターフェース191は、取り込んだシリアルデータをパラレルデータに変換してデータバッファ/PWMコントローラ193に転送する。
なおシリアル出力コントローラ240はスレーブアドレスを指定してLED駆動データを送信してくる。
データバッファ/PWMコントローラ193は、シリアルバスインターフェース191から転送されたパラレルデータについて、スレーブアドレス確認を行う。パラレルデータに含まれるスレーブアドレスが、アドレス設定部192に設定された自己のスレーブアドレス(w1〜w(n)、b1〜b(m)のいずれか)と一致していることを確認した場合に、該パラレルデータに含まれるLED駆動データを有効なデータとして、指定されたレジスタに格納する。
【0080】
データバッファ/PWMコントローラ193は、各系列のLED駆動データを取り込んだら、そのLED駆動データで示された輝度情報(階調値)に応じた値を、24系列の各駆動制御値としてD/A変換器194に出力する。
D/A変換器194は、輝度情報に応じた値をアナログ信号に変換し、各電流源回路195−1〜195−24への制御信号とする。
【0081】
電流端子196(196−1〜196−24)の全部(又は一部)には24系列のLED120が接続される。なお、図は簡略化して1系列の電流端子196に1つのLED120が接続された状態を示しているが、1系列の電流端子196に、複数のLEDが接続される構成(例えば直列接続)も当然あり得る。
各系列(電流端子196−1〜196−24)では、LED120及び抵抗Rの直列接続に対して電源電圧Vccが印加される。電流源回路195−1〜195−24によって各系列のLED120に電流が流され、発光が行われる。
即ち各電流源回路195−1〜195−24は、D/A変換器194から供給された信号に応じた電流量の駆動電流を、対応する系列のLED120に流すように動作する。
【0082】
このようなLED駆動制御を、1つの系列について具体的にいうと、データバッファ/PWMコントローラ193は、当該系列の階調値に応じたパルスデューティに相当するデジタルデータ列をD/A変換器194に出力し、D/A変換器194は、デジタルデータ列をアナログ信号としてのパルス信号に変換して当該系列の電流源回路195に供給する。電流源回路195はパルス信号のH/Lにより出力制御され、例えば0mAと5mAの電流出力を行う。例えばこのような動作で、結果的に階調値に応じた平均電流値となる駆動電流がLED120に流れることとなる。
なお、本実施の形態では、PWM駆動方式により、電流値が例えば0mAと5mAとされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
【0083】
枠ドライバ部61におけるLEDドライバ90の数nは、枠側に配置されるLED系列数(発光部20wの系列数)によって決められる。従ってnは1の場合もあるし、2以上の場合もある。枠ドライバ部61は1又は複数のLEDドライバ90を有する。
また盤ドライバ部62におけるLEDドライバ90の数mは、盤側に配置されるLED系列数(発光部20b、20Z、20H、20Jの系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
【0084】
なおLED等によるランプ部63,64としては枠側に1系統(1つのシリアルデータ出力チャネル)、盤側に1系統の例を挙げたが、もちろんこれに限られない。枠側のランプ部63について複数系統を設けても良いし、盤側のランプ部64において複数系統を設けても良い。
【0085】
続いてモータ駆動データの出力について説明する。
図5に示したように、シリアル出力コントローラ240からモータドライバ部70へモータ駆動データとしてのシリアルデータDATAが出力される。
モータドライバ部70は、p個のモータドライバ91が、シリアル出力コントローラ240のシリアルデータ出力チャネルch3に対して並列に接続されている。
シリアルデータ出力チャネルch3の信号線も同様に、クロック信号CLKを供給するクロック線、モータ駆動データとしてのシリアルデータDATAを供給するデータ線が設けられている。これら各信号線は、それぞれ、モータドライバ部70を構成するp個のモータドライバ91に対して各信号を並列に供給するように接続されている。
モータドライバ部70の各モータドライバ91には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のモータドライバ91の識別子)が設定されている。説明上、仮に、図示のように各モータドライバ91のデバイスID(スレーブアドレス)をmt1、mt2・・・と表記する。
【0086】
モータドライバ部70における各モータドライバ91は、LEDドライバ90と同様に
図7の構成でよい。つまり同じドライバを用いることができる。
モータドライバ部70におけるモータドライバ91の数pは、可動体役物65等に用いるモータ数によって決められる。従ってpは1の場合もあるし、2以上の場合もある。モータドライバ部70は1又は複数のモータドライバ91を有する。
【0087】
モータドライバ91には、可動体役物を駆動する可動体役物モータ65が接続される。
図8に、モータドライバ91の電流端子196−1〜196−24の全部(又は一部)に可動体役物モータ65として例えばステッピングモータ121が接続された例を示している。
ここでは4相のステッピングモータ121に対してそれぞれ、電流端子96−1〜96−4、電流端子96−5〜96−8、・・・電流端子96−21〜96−24により駆動電流を供給する構成例を示している。
図7で上述した構成のドライバは、与えられたコマンド(シリアルデータ)によって指示される電流を電流端子196−1〜196−24から出力する回路であることから、
図8のようにステッピングモータやソレノイド等の物理的可動体駆動デバイスに対するモータドライバ91としても使用することができる。
可動体役物の動作は演出シナリオによって細かく設定され、それに応じて演出制御部51は駆動方向や駆動量などを制御するわけであるが、モータドライバ部70におけるモータドライバ91を利用して可動体役物を駆動することで、ランプ部63、64の各発光部(LED20w、20b)とともにシリアルデータによる可動体役物制御が可能となり、制御処理及び構成が効率化できる。
【0088】
なお、1つのLEDドライバ90において、一部の電流端子がLED駆動に用いられ、他の一部の電流端子がステッピングモータやソレノイド等の駆動に用いられるという手法を採っても良い。
【0089】
また各可動体役物モータ65(ステッピングモータ121)のそれぞれに対しては、
図3で原点スイッチ68として述べたセンサ68sが対応して配置されている。各センサ68sからの信号は、パラレル/シリアル変換部260に入力される。
また操作部60からのユーザの操作情報もパラレル/シリアル変換部92に入力される例を示している。ユーザの操作情報とは、演出ボタン11,12、十字キー13等の操作に応じた信号である。
パラレル/シリアル変換部260は、例えば1チップマイクロコンピュータ250とは別体のICとして演出制御部(演出制御基板)51に搭載されるが、1チップマイクロコンピュータ250に内蔵されるものでもよい。
【0090】
パラレル/シリアル変換部260は、例えば32系統の信号を入力し、入力したデータをシリアルデータIsに変換してモータコントローラ242に供給する。
パラレル/シリアル変換部260の動作はモータコントローラ242からの制御信号CNTによって制御される。パラレル/シリアル変換部260はクロック信号CLKを用いてシリアルデータ転送を行う。
この構成により、シリアル出力コントローラ240が、各可動体役物モータ65の原点検出状態と演出スイッチ11,12等の操作部60に対するユーザ操作をまとめて、つまり演出制御に必要な入力をまとめて効率的に検出できる。従って演出制御CPU200は効率よく演出状態を把握できる。
【0091】
<4.動作の概要>
パチンコ遊技機1の動作の概要について説明する。
[図柄変動表示ゲーム]
パチンコ遊技機1では、所定の始動条件、具体的には、遊技球が上始動口41または下始動口42に入賞したことを条件に、主制御部50において乱数抽選による大当り抽選が行なわれる。この抽選結果に基づき、特別図柄(大当り抽選結果を報知するための識別図柄)を第1特別図柄表示部80または第2特別図柄表示部81に変動表示させて特別図柄変動表示ゲームを開始し、一定時間経過後に、その結果を特別図柄表示部(80又は81)に表示する。
【0092】
本実施の形態では、上始動口41への入賞に基づく大当り抽選と下始動口42への入賞に基づく大当り抽選とは、独立して行われる。このため、上始動口41に関する大当り抽選結果は第1特別図柄表示部80側、下始動口42に関する大当り抽選結果は第2特別図柄表示部81側で導出表示されるようになっている。
なお説明上、第1特別図柄表示部80側の特別図柄変動表示ゲームを「第1特別図柄変動表示ゲーム」、第2特別図柄表示部81側の特別図柄変動表示ゲームを「第2特別図柄変動表示ゲーム」と称する。但し、第1,第2特別図柄を総称して「特別図柄」と表記し、また第1,第2特別図柄変動表示ゲームを「特別図柄変動表示ゲーム」と総称する。
【0093】
特別図柄変動表示ゲームが開始されると、これに伴い、装飾図柄(遊技図柄)を主液晶表示装置32Mに変動表示させる装飾図柄変動表示ゲームが開始され、これに付随して種々の演出が現出される。そして、第1,第2特別図柄表示部(80、81)に抽選結果が表示されると、主液晶表示装置32Mにも装飾図柄によりその結果が表示される。すなわち、この装飾図柄変動表示ゲームでは、特別図柄変動表示ゲームでの抽選結果を反映させた演出表示、つまり大当り抽選結果を反映させた演出が現出される。
【0094】
例えば特別図柄変動表示ゲームの結果が「大当り」である場合、装飾図柄変動表示ゲームの結果も「大当り」を反映させた演出となる。また、特別図柄表示部(80、81)には、大当りを示す特別図柄が所定の表示態様で停止表示され、主液晶表示装置32Mには、「左」「中」「右」の各表示エリアにおいて、当り有効ライン上で装飾図柄が大当り抽選結果を反映させた所定の表示態様(例えば「左」「中」「右」の各表示エリアにおいて、3個の装飾図柄が「7」「7」「7」の表示状態)で停止表示される。
【0095】
この「大当り」となった場合、例えば第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79が駆動され、第1大入賞口45又は第2大入賞口46の所定パターンでの開放動作が実行され、通常遊技状態よりも遊技者に有利な特別遊技状態(大当り遊技)が発生する。この大当り遊技では、大入賞口の開放時間が所定時間経過するまでか、または大入賞口に所定個数の遊技球が入賞するまで開放され、いずれかを満たしたことを条件に大入賞口が所定時間閉鎖される、といったラウンド遊技があらかじめ定められた規定回数、繰り返される。
大当り遊技が開始されると、最初に大当りが開始された旨を報知するオープニング演出が行われ、オープニング演出が終了した後、上記ラウンド遊技が規定ラウンド数、行われる。また、ラウンド遊技中は、各ラウンド対応するラウンド演出が行われる。そして、規定ラウンド数終了後には、大当りが終了される旨を報知するエンディング演出が行われ、これにより大当り遊技が終了する。
【0096】
このように、特別図柄変動表示ゲームと装飾図柄変動表示ゲームとは、その図柄遊技時間(変動表示の開始タイミングから停止表示のタイミング)とがほぼ同じとなり、特別図柄変動表示ゲームの結果を反映したものが装飾図柄変動表示ゲームにおいて表現されることとしているので、この2つの図柄変動表示ゲームを等価的な図柄遊技と捉えることもできる。説明上、上記2つの図柄変動表示ゲームを単に「図柄変動表示ゲーム」と称する場合がある。
【0097】
また、遊技球がゲート44(普通図柄始動口)を通過したことに基づき、主制御部50において乱数抽選による補助当り抽選が行なわれる。この抽選結果に応じて普通図柄表示部82のLEDにより表現される普通図柄を変動表示させて普通図柄変動表示ゲームを開始し、所定時間経過後に、その結果をLEDの点灯と非点灯の特定の組合せにて停止表示する。
【0098】
そして「補助当り」となった場合には、普通電動役物ソレノイド77が作動し、可動翼片42bが開いて下始動口42が開放または拡大されて遊技球が流入し易い状態(始動口開状態)となり、通常遊技状態よりも遊技者に有利な補助遊技状態(以下、「普電開放遊技」と称する)が発生する。この普電開放遊技では、可動翼片42bが所定時間(例えば0.2秒)開放されるか、または所定個数(例えば4個)の遊技球が入賞するまで開放され、その後、所定時間(例えば0.5秒)可動翼片42bが閉まる、といった動作が所定回数繰り返される。なお、普電開放遊技中に遊技球が下始動口42に入賞した場合にも、同様に上記特別図柄変動表示ゲームが行なわれ、これに伴い装飾図柄変動表示ゲームが行なわれる。
【0099】
ここで、特別図柄変動表示ゲーム中、普通図柄変動表示ゲーム中、大当り遊技中、または普電開放遊技などの最中に、さらに上始動口センサ71または下始動口センサ72もしくはゲートセンサ73からの検出信号の入力があり、始動条件が成立した場合には、この検出信号に基づいて当り抽選に利用する遊技情報を取得し、これを、各変動表示ゲームを行わせるための始動権利に係るデータ(保留データ)として、変動表示中にかかわるものを除き、所定の上限値である最大保留記憶数(例えば最大4個)まで保留記憶可能となっている。この保留数を遊技者に明らかにするため、保留数表示部20Hや主液晶表示装置32Mによる画面中にアイコン画像として設けた保留表示器を点灯表示させる。
通常は、この保留球の発生順に、各保留球に対する変動表示ゲームが実行される。本実施の形態では、最大保留記憶個数と同数の4個を上限の所定個数として扱い、第1特別図柄、第2特別図柄に関する保留データをそれぞれ4個まで記憶し、特別図柄または普通図柄の変動確定回数として保留する。
【0100】
[遊技状態]
本実施の形態のパチンコ遊技機1では、複数種類の遊技状態を発生可能に構成されている。
まず、本実施形態のパチンコ遊技機1は、主制御部50(CPU100)がその機能部を担う「確率変動(以下、「確変」と称する)機能」を備えている。これには特別図柄に係る確変機能(以下「特別図柄確変機能」と称する)と普通図柄に係る確変機能(以下「普通図柄確変機能」と称する)の2種類がある。
【0101】
特別図柄確変機能は、大当りの抽選確率を所定確率(通常確率)の低確率(例えば399分の1)から高確率(例えば39.9分の1)に変動させて、通常遊技状態よりも有利な「高確率状態」を発生させる機能である。この高確率状態下では、大当り抽選確率が高確率となることから、大当りが生起され易くなる。
普通図柄確変機能は、補助当り抽選確率が所定確率(通常確率)である低確率(例えば256分の1)から高確率(例えば256分の255)に変動させて、通常遊技状態よりも有利な「補助当り確変状態」を発生させる機能である。この補助当り確変状態下では、補助当り抽選確率が高確率状態となることから補助当りが生起され易くなり、普電開放遊技が頻繁に発生して、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
【0102】
また、本実施形態のパチンコ遊技機1は、主制御部50がその機能部を担う「変動時間短縮(以下「時短」と称する)機能」を備えている。これには特別図柄に係る時短機能(以下、「特別図柄時短機能」と称する)と普通図柄に係る時短機能(以下、「普通図柄時短機能」と称する)の二種類がある。
【0103】
特別図柄時短機能は、1回の特別図柄変動表示ゲームに要する平均時間(特別図柄が変動を開始してから確定表示される迄の時間。つまり、特別図柄の変動時間)を短縮した「特別図柄時短状態」を発生させる機能である。特別図柄時短状態下では、1回の特別図柄変動表示ゲームにおける特別図柄の平均的な変動時間が短縮され、通常遊技状態よりも単位時間当りの大当り抽選回数が向上する抽選回数向上状態となる。
なお、パチンコ遊技機1では、特別図柄の変動表示時間が保留数の違いにより短縮される場合があるが、この場合は、特別図柄時短状態が発生しているわけではなく、他の制御処理によるものである。
【0104】
普通図柄時短機能は、1回の普通図柄変動表示ゲームに要する平均時間(普通図柄が変動を開始してから確定表示されるまでの時間。つまり、普通図柄の変動時間)を短縮した「普通図柄時短状態」を発生させる機能である。普通図柄時短状態下では、1回の普通図柄変動表示ゲームにおける普通図柄の平均的な変動時間が短縮され、通常遊技状態よりも単位時間当りの補助当り抽選回数が向上する抽選回数向上状態となる。
【0105】
また本実施形態のパチンコ遊技機1は、主制御部50がその機能部を担う「開放延長機能」を備えている。
開放延長機能は、可動翼片42bを開動作させる期間およびその開放回数を延長した「開放延長状態」を発生させる機能である。この開放延長状態は、いわゆる「電チューサポート状態」と称される。開放延長状態下では、可動翼片42bの開動作期間(始動口開状態時間)が、例えば0.2秒から1.7秒に延長され、またその開閉回数が、例えば1回から2回に延長され、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
【0106】
以上のような各機能を1または複数種類作動させることにより、遊技機の内部的な遊技状態に変化をもたらすことができる。
ここで本実施の形態では、普通図柄確変機能、普通図柄時短機能、および開放延長機能の作動開始条件は、特別図柄時短機能の作動開始条件と同じ条件としており、各機能が同じ契機にて動作することになる。
【0107】
[当りについて]
本実施の形態のパチンコ遊技機1では、特別図柄変動表示ゲームにて抽選される当りの種類、つまり大当り抽選対象となる当り種別として、「15R低ベース非確変大当り」、「15R低ベース確変α大当り」、「15R低ベース確変β大当り」、「15R高ベース確変大当り」、「2R低ベース確変大当り」、および「小当り」などの複数種類の当りが設けられている。
【0108】
<5.主制御部の処理>
以下、本実施の形態の制御処理につき説明する。まずここでは主制御部(主制御基板)50によるメイン処理について述べる。
図9は、主制御部50のメイン処理を示すフローチャートである。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチ(図示せず)が操作されることなく電源がON状態になる場合と、初期化スイッチがON操作されて電源がON状態になる場合とがある。いずれの場合でも、パチンコ遊技機1に電源が投入されると、電源基板58によって各制御基板に電圧が供給される。この場合に主制御部50(主制御CPU100)は
図9に示すメイン処理を開始する。
【0109】
この主制御側メイン処理において、主制御CPU100はステップS11で、まず遊技動作開始前における必要な初期設定処理を実行する。例えば最初に自らを割込み禁止状態に設定すると共に、所定の割込みモード(割込みモード2)に設定し、またマイクロコンピュータの各部を含めてCPU内部のレジスタ値を初期設定する。
次に主制御CPU100はステップS12で、図示してない入力ポートを介して入力されるRAMクリアスイッチの出力信号であるRAMクリア信号の状態(ON、OFF)を判定する。RAMクリア信号とは、RAMの全領域を初期設定するか否かを決定する信号である。RAMクリア信号としては通常、パチンコ店の店員が操作する初期化スイッチのON/OFF状態に対応した値を有している。
【0110】
RAMクリア信号がON状態であった場合、主制御CPU100は処理をステップS12からS16に進め、RAMの全領域のゼロクリアを行う。したがって、電源遮断時にセットされたバックアップフラグの値は、他のチェックサム値などと共にゼロとなる。
続いてステップS17で主制御CPU100は、RAM領域がゼロクリアされたことを報知するための「RAMクリア表示コマンド」を初期化コマンドとして各制御基板に送信する。そしてステップS18で、RAMクリア報知タイマに、RAMクリアされた旨を報知するための時間として、例えば30秒を格納する。
【0111】
次に主制御CPU100はステップS19で、タイマ割込み動作を起動する割込み信号を出力するCTCを初期設定して、CPUを割込み許可状態に設定する。
その後はステップS20、S21、S22の処理として、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、各種乱数更新処理を実行する。このステップS21の各種乱数更新処理では、特別図柄変動表示や普通図柄変動表示に使用される各種乱数の初期値(スタート値)変更のために使用する乱数や、変動パターンの選択に利用される変動パターン用乱数を更新する。
なお、特別図柄変動表示や普通図柄変動表示に使用される各種乱数とは、例えばインクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数)などである。また初期値変更のために使用する乱数とは、特別図柄判定用初期値乱数、補助当り判定用初期値乱数などである。
【0112】
主制御RAM102には大当り抽選に係る図柄抽選、補助当り抽選、または変動パターン抽選などに利用される各種の乱数カウンタとして、特別図柄判定用乱数カウンタ初期値の生成用カウンタ、特別図柄判定用乱数カウンタ、補助当り判定用乱数カウンタ初期値の生成用カウンタ、補助当り判定用乱数カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどが設けられている。これらのカウンタは、ソフトウェア的に乱数を生成する乱数生成手段としての役割を果たす。
ステップS21の各種乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどを更新して、上記各種のソフト乱数を生成する。例えば変動パターン用乱数1カウンタとして取り得る数値範囲が0〜238とすると、主制御RAM102の変動パターン用乱数1の値を生成するためのカウント値記憶領域から値を取得し、取得した値に1を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に1を加算した結果が239であれば0を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。主制御CPU100は、間欠的に実行されるタイマ割込処理を行っている間を除いて、各種乱数更新処理を繰り返し実行するようになっている。
【0113】
以上はステップS12でRAMクリアスイッチONと判定された場合について述べた。RAMクリアスイッチOFFの場合を続いて説明する。例えば停電状態からの復旧時には、初期化スイッチ(RAMクリア信号)はOFF状態である。このような場合、主制御CPU100はステップS12からS13に処理を進め、バックアップフラグ値を判定する。なお、バックアップフラグは、電源遮断時にON状態に設定され、電源復帰後の最初のタイマ割込み処理でOFF状態にリセットされるよう構成されている。
したがって、電源投入時や停電状態からの復旧時である場合には、通常では、バックアップフラグがON状態のはずである。ただし、何らかの理由で電源遮断までに所定の処理が完了しなかったような場合には、バックアップフラグはリセット(OFF)状態になる。そこで、バックアップフラグがOFF状態である場合には、主制御CPU100は処理をステップS13からS16に進め、遊技機の動作を初期状態に戻す。
【0114】
一方、バックアップフラグがON状態であれば、主制御CPU100は処理をステップS13からS14に進め、チェックサム値を算出するためのチェックサム演算を実行する。ここで、チェックサム演算とは、主制御RAM102のワーク領域を対象とする8ビット加算演算である。
そして、チェックサム値が算出されたら、この演算結果を、主制御RAM102のSUM番地の記憶値と比較をする。このSUM番地には、電源遮断時に、同じチェックサム演算によるチェックサム値が記憶されている。そして、記憶された演算結果は、主制御RAM102の他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップS14の判定によって両者が一致するはずである。
しかし、電源遮断時にチェックサム演算が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算の実行時までの間に、ワーク領域のデータが破損している場合もある。このような場合にはステップS14の判定結果は不一致となる。
判定結果の不一致によりデータ破損が検出された場合には、主制御CPU100はステップS14からS16の処理に進んでRAMクリア処理を実行し、遊技機の動作状態を初期状態に戻す。
【0115】
ステップS14でのチェックサム演算によるチェックサム値と、SUM番地の記憶値とが一致する場合には、主制御CPU100はステップS15に進み、バックアップデータに基づき、電源遮断前におけるスタックポインタを復帰し、電源遮断時の処理状態から遊技を開始するために必要な遊技復旧処理を実行する。
そしてステップS15の遊技復旧処理を終えると、ステップS19の処理に進み、CTCを初期設定してCPUを割込み許可状態に設定し、その後は、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、上述した各種乱数更新処理を実行する(ステップS20〜S22)。
【0116】
次に主制御CPU100のタイマ割込処理について説明する。
図10に主制御CPU100のタイマ割込処理を示している。この主制御タイマ割込処理は、CTCからの一定時間(4ms程度)ごとの割込みで起動され、上述したメイン処理実行中に割り込んで実行される。
【0117】
タイマ割込みが生じると、主制御CPU100はレジスタの内容をスタック領域に退避させた後、まず
図10のステップS51として電源基板58からの電源の供給状態を監視する電源異常チェック処理を行う。この電源異常チェック処理では、主に、電源が正常に供給されているかを監視する。ここでは、例えば電断が生じるなどの異常が発生した場合、電源復帰時に支障なく遊技を復帰できるように、電断時における所定の遊技情報をRAMに格納するバックアップ処理などが行われる。
【0118】
次にステップS52で、主制御CPU100は遊技動作制御に用いられるタイマを管理するタイマ管理処理を行う。パチンコ遊技機1の遊技動作制御に用いる各種タイマ(たとえば特別図柄役物動作タイマなど)のタイマ値は、この処理で管理(更新)される。
【0119】
ステップS53では、主制御CPU100は入力管理処理を行う。この入力管理処理では、パチンコ遊技機1に設けられた各種センサによる検出情報を入賞カウンタに格納する。ここでの各種センサによる検出情報とは、例えば上始動口センサ71、下始動口センサ72、ゲートセンサ(普通図柄始動口センサ)73、第1大入賞口センサ75、第2大入賞口センサ76、一般入賞口センサ74などの入賞検出スイッチから出力されるスイッチ信号のON/OFF情報(入賞検出情報)である。
このステップS53の処理により、各入賞口において入賞を検出(入賞が発生)したか否かが割込みごとに監視される。また上記「入賞カウンタ」とは、各々の入賞口ごとに対応して設けられ、入賞した遊技球数(入賞球数)を計数するカウンタである。本実施の形態では、主制御RAM102の所定領域に、上始動口41用の上始動口入賞カウンタ、下始動口42a用の下始動口入賞カウンタ、ゲート44用の普通図柄始動口入賞カウンタ、第1大入賞口45a用の第1大入賞口入賞カウンタ、第2大入賞口46a用の第2大入賞口入賞カウンタ、一般入賞口43用の一般入賞口用の入賞カウンタなどが設けられている。
またこの入力管理処理では、入賞検出スイッチからの検出情報が入賞を許容すべき期間中に入賞したか否かに基づいて、不正入賞があったか否かも監視される。たとえば大当り遊技中でないにもかかわらず第1、第2大入賞口センサ75,76が遊技球を検出したような場合は、これを不正入賞とみなして入賞検出情報を無効化し、その無効化した旨を外部に報知するべく後述のステップS55のエラー管理処理において所定のエラー処理が行われるようになっている。
【0120】
ステップS54では、主制御CPU100は各変動表示に係る乱数を定期的に更新するタイマ割込内乱数管理処理を行う。この定期乱数更新処理では、特別図柄判定用乱数や補助当り判定用乱数の更新(割込み毎に+1加算)と、乱数カウンタが一周するごとに、乱数カウンタのスタート値を変更する処理を行う。例えば特別図柄判定用乱数カウンタの値を所定範囲で更新(+1加算)し、特別図柄判定用乱数カウンタが1周するごとに、特別図柄判定用乱数カウンタ初期値の生成用カウンタの値を読み出し、その生成用カウンタの値を特別図柄判定用乱数カウンタに格納する。これにより、特別図柄判定用乱数カウンタのスタート値が上記の生成用カウンタの値に応じて変更されるので、更新周期は一定でありながらも特別図柄判定用乱数カウンタのカウント値はランダムになる。
【0121】
ステップS55では、主制御CPU100は、遊技動作状態の異常の有無を監視するエラー管理処理を行う。このエラー管理処理では、遊技動作状態の異常として、例えば基板間に断線が生じたか否かの監視や、不正入賞があったか否かの監視などをして、これらの動作異常(エラー)が発生した場合には、そのエラーに対応した所定のエラー処理を行う。
エラー処理としては、例えば所定の遊技動作(例えば遊技球の払い出し動作や遊技球の発射動作など)の進行を停止させたり、エラー報知用コマンドを演出制御部51に送信して、演出手段によりエラーが発生した旨を報知させたりする。
【0122】
ステップS56では、主制御CPU100は賞球管理処理を行う。この賞球管理処理では、ステップS53の入力管理処理で格納したデータを把握して、上述の入賞カウンタの確認を行い、入賞があった場合は、賞球数を指定する払出制御コマンドを払出制御基板53に送信する。
この払出制御コマンドを受信した払出制御基板53は、遊技球払出装置55を制御し、指定された賞球数の払い出し動作を行わせる。これにより、それぞれの入賞口に対応した賞球数が払い出されるようになっている。入賞口に対応した賞球数とは、入賞口別に設定された入賞球1個当りの所定の賞球数×入賞カウンタの値分の賞球数である。
【0123】
ステップS57では主制御CPU100は、普通図柄管理処理を行う。この普通図柄管理処理では、普通図柄変動表示における補助当り抽選を行い、その抽選結果に基づいて、普通図柄の変動パターンや普通図柄の停止表示態様を決定したり、所定時間毎に点滅を繰り返す普通図柄のデータ(普通図柄変動中のLED点滅表示用データ)を作成したり、普通図柄が変動中でなければ、停止表示用のデータ(普通図柄停止表示中のLED点滅表示用データ)を作成したりする。
【0124】
ステップS58では、主制御CPU100は、普通電動役物管理処理を行う。この普通電動役物管理処理では、ステップS57の普通図柄管理処理の補助当り抽選の抽選結果に基づき、普通電動役物ソレノイド77に対するソレノイド制御用の励磁信号の生成およびそのデータ(ソレノイド制御データ)の設定を行う。ここで設定されたデータに基づき、後述のステップS64のソレノイド管理処理にて、励磁信号が普通電動役物ソレノイド77に対して出力され、これにより可動翼片42bの動作が制御される。
ステップS59では、主制御CPU100は、特別図柄管理処理を行う。この特別図柄管理処理では、主に、特別図柄変動表示における大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、変動開始時の変動パターン)や特別停止図柄などを決定する。
ステップS60では、主制御CPU100は特別電動役物管理処理を行う。この特別電動役物管理処理では、主に、大当り抽選結果が「大当り」または「小当り」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行う。
【0125】
ステップS61では、主制御CPU100は右打ち報知情報管理処理を行う。この右打ち報知情報管理処理では、例えば第1、第2大入賞口45a,46aが開放される機会や可動翼片42bが駆動される電サポ状態など、右打ちが有利な状況において右打ち指示報知を行う「発射位置誘導演出(右打ち報知演出)」を現出させるための処理を行う。右打ち指示とは、具体的には、右遊技領域3cを狙う旨を有技者に指示する演出動作であり、例えば主液晶表示装置32Mに「右打ち」を遊技者に促す画像を表示させたり、スピーカ25から右打ちメッセージ音声を発生させる。
右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、演出制御コマンドとして、右打ち報知演出の実行指示する「右打ち指示コマンド」が演出制御部51に送信され、このコマンドを受けて、演出制御部51が、画像や音声による右打ち報知の実行制御を行う。
ステップS62では、主制御CPU100は、LED管理処理を行う。このLED管理処理は、図柄表示部33に対して普通図柄表示や第1,第2特別図柄表示のための表示データを出力する処理である。この処理により、普通図柄や特別図柄の変動表示および停止表示が行われる。なお、ステップS57の普通図柄管理処理で作成された普通図柄の表示データや、ステップS59の特別図柄管理処理中の特別図柄表示データ更新処理で作成される特別図柄の表示データは、このLED管理処理で出力される。
【0126】
ステップS63では、主制御CPU100は、外部端子管理処理を行う。この外部端子管理処理では、枠用外部端子基板57を通して、パチンコ遊技機1の動作状態情報をホールコンピュータや島ランプなどの外部装置に対して出力する。動作状態情報としては、大当り遊技が発生した旨(条件装置が作動した旨)、小当り遊技が発生した旨、図柄変動表示が実行された旨(特別図柄変動表示ゲームの開始または終了した旨)、入賞情報(始動口や大入賞口に入賞した旨や賞球数情報)などの情報が含まれる。
ステップS64では、主制御CPU100は、ソレノイド管理処理を行う。このソレノイド管理処理では、ステップS58の普通電動役物管理処理で作成されたソレノイド制御データに基づく普通電動役物ソレノイド77に対する励磁信号の出力処理や、ステップS60の特別電動役物管理処理で作成されたソレノイド制御データに基づく第1,第2大入賞口ソレノイド78,79に対する励磁信号の出力処理を行う。これにより、可動翼片42bや開放扉45b、46bが所定のパターンで動作し、下始動口42aや大入賞口45a、46bが開閉される。
【0127】
主制御CPU100は、以上のステップS51〜ステップS64の処理を終えた後、退避していたレジスタの内容を復帰させて、ステップS65で割込み許可状態に設定する。これにより、タイマ割込処理を終了して、割込み前の
図9の主制御側メイン処理に戻り、次のタイマ割込みが発生するまで主制御メイン処理を行う。
【0128】
以上の処理内において、主制御部50(主制御CPU100)は逐次必要なコマンドを演出制御部51に対して送信する。
コマンドの例として、特別図柄変動表示ゲームの当落抽選にかかる変動パターンコマンド、入賞時コマンドの一部を
図11Aに示し、また図柄指定コマンドの一部を
図11Bに示している。
変動パターンコマンド、入賞時コマンドは、上位バイトと下位バイトで変動パターンの種別が規定され、外れ/当たりに応じて上位バイトが異なるように構成されている。
図柄指定コマンドは、上位バイトで第1、第2特別図柄が示され、下位バイトで当たりの種別が指定される構成となっている。
【0129】
<6.第1の実施の形態の演出制御部の処理>
続いて演出制御部51の処理について説明するが、まず演出制御のためのシナリオデータの構造例について述べる。
シナリオ登録情報の構造を
図12、
図13で説明する。
図12Aは、メインシナリオ及びサブシナリオとしてのシナリオ登録情報の構造を示している。このシナリオ登録情報は演出制御RAM202(例えば内蔵CPU用ワークメモリ202b)に設けられたワークエリアを用いて設定される。
本実施の形態ではシナリオ登録情報は、シナリオチャネルsCH0〜sCH63の64個のチャネルを有するものとされる。各シナリオチャネルsCHに登録されたシナリオについては同時に実行可能とされる。
【0130】
図示のように各シナリオチャネルsCHに登録できる情報としては、サブシナリオ更新処理で用いるサブシナリオタイマ(scTm)、前回時間(scPrevTm)、音/モータのサブシナリオテーブルの実行ラインを示すサブシナリオ実行ライン(scIx)、ランプサブシナリオテーブルの実行ラインを示すサブシナリオ実行ラインlmp(lmpIx)、シナリオ更新処理に用いるメインシナリオタイマ(msTm)、メインシナリオテーブルの実行ラインを示すメインシナリオ実行ライン(mcIx)、メインシナリオ番号(mcNo)、メインシナリオに付加可能なオプションデータであるメインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)、チェックサム(checkSum)がある。
【0131】
スピーカ部59による音出力、ランプ部63,64による発光、及び可動体役物モータ65による可動体役物の駆動による演出を開始するときには、待機時間(delay)とメインシナリオ番号(mcNo)をシナリオチャネルsCH0〜sCH63のうちの空いているシナリオチャネルに登録する。
待機時間(delay)は、シナリオチャネルsCHに登録してからそのシナリオが開始されるまでの時間を示す。なおこの待機時間(delay)は所定の処理タイミング(例えば後述の
図16のステップS104)で1減算される。待機時間(delay)が0の場合に、登録されたデータに対応した処理が実行されることとなる。
【0132】
図14には、メインシナリオテーブルの一部として、シナリオ番号1,2,3の例を示している。各シナリオ番号のシナリオとしては、シナリオの各ライン(行)に時間データとしてメインシナリオタイマ(msTm)の値が記述されるとともに、サブシナリオ番号(scNo)、オプション(OPT)を記述することができる。即ちメインシナリオテーブルでは、メインシナリオタイマ(msTm)による時間として、実行されるべきサブシナリオ(及び場合によってはオプション)が指定される。またシナリオ最終行には、シナリオデータ終了コードD_SEEND、又はシナリオデータループコードD_SELOPが記述される。
なお、メインシナリオタイマ(msTm)の値はメインシナリオの開始時から、所定の処理タイミング(例えば後述の
図16のステップS104)で+1される。
各シナリオ番号のシナリオテーブルは、或る行におけるメインシナリオタイマ(msTm)の時間を経過すると、次の行へ進むことになる。各行の時間データは、その行が終わるタイミングを示している。
例えばシナリオ番号2の場合、タイマ値“1500”の時間としてサブシナリオ番号2の動作が指定され、次のタイマ値“500”の時間としてサブシナリオ番号20の動作が指定され、次のタイマ値“2000”の時間としてサブシナリオ番号21の動作が指定されている。その次の行はシナリオデータ終了コードD_SEENDである。シナリオデータ終了コードD_SEENDの場合、シナリオ登録情報(ワーク)から、このシナリオが削除される。
【0133】
次に
図12Bでランプデータ登録情報の構造を説明する。ランプデータ登録情報としては、ランプサブシナリオテーブルから選択されたシナリオ、即ちランプ部63,64による演出動作(点灯パターン)を示す情報が登録される。このランプデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
【0134】
各ランプチャネルdwCHに登録できる情報としては、図示のように、登録した点灯パターンの番号を示す登録点灯ナンバ(lmpNew)、実行する点灯パターンの番号を示す実行点灯ナンバ(lmpNo)、ランプサブシナリオの実行ラインを示すオフセット(offset)、実行時間(time)、チェックサム(checkSum)がある。
【0135】
図15Aにランプサブシナリオテーブルの一部として、ランプサブシナリオ番号1,2,3の例を示している。各番号のランプサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値が記述されるとともに、ランプチャネルと、各種の点灯パターンを示すランプナンバが記述される。また最終行には、ランプシナリオデータ終了コードD_LSENDが記述される。
【0136】
このランプサブシナリオテーブルにおいて、各ラインの時間データ(time)は、そのサブシナリオが開始されてからの、当該ラインが開始される時間を示している。
上述のメインシナリオタイマ(msTm)と、テーブルの時間データを比較して、一致した場合に、そのラインのランプナンバが、
図12Bのランプデータ登録情報に登録される。登録されるランプチャネルdwCHは、当該ラインに示されたチャネルとなる。
例えば、上述の或るシナリオチャネルsCHにおいて、
図14に示したシナリオ番号2が登録され、サブシナリオ番号2が参照されるとする。
図15Aに示したランプサブシナリオ番号2では、1ライン目に時間データ(time)=0としてランプチャネル5(dwCH5)及びランプナンバ5が記述されている。この場合、メインシナリオタイマ(msTm)=0の時点で、まず当該1ライン目の情報が
図12Bのランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=5として登録される。シナリオ登録情報のサブシナリオ実行ラインlmp(lmpIx)の値は、次のラインの値(2ライン目)に更新される。これはランプチャネルdwCH5という比較的低い優先度で、点灯ナンバ5の点灯パターン動作の実行を行うための登録となる。
2ライン目については、メインシナリオタイマ(msTm)が“500”となった時点で同様の処理が行われる。即ちランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=6(つまり点灯ナンバ6の点灯パターンの指示)が登録される。
なお、時間データ(time)が連続する2ラインで同一の値であったら、その各ラインについての処理は同時に開始されることとなる。
後述するランプ駆動データ作成処理では、このように更新されるランプデータ登録情報に基づいて、ランプ駆動データが作成される。
【0137】
次に
図12Cでモータデータ登録情報の構造を説明する。モータデータ登録情報としては、モータサブシナリオテーブルから選択されたシナリオを示す情報が登録される。このモータデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、モータデータ登録情報は、例えば8個のモータに対応してモータチャネルmCH0〜mCH7の8個のチャネルを有するものとされる。
各モータチャネルmCHに登録できる情報としては、図示のように、実行動作ナンバ(no)、登録動作ナンバ(noNew)、動作カウント(lcnt)、励磁カウンタ(tcnt)、実行ステップ(step)、動作ライン(offset)、親(移行元)/子(移行先)の属性(attribute)、親ナンバ(retNo)、戻りアドレス(retAddr)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、エラーカウンタ(errCnt)、現在の入力情報(currentSw)、ソフト上のスイッチ情報(softSw)、ソフト上のカウント(softCnt)がある。
【0138】
図15Cにモータサブシナリオテーブルの一部として、モータサブシナリオ番号1の例を示している。各番号のモータサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値(ms)が記述されるとともに、モータ、ソレノイド/ユーザオプションの情報が記述される。また最終行には、シナリオデータ終了コードD_MSENDが記述される。
【0139】
このモータサブシナリオテーブルに関しては、サブシナリオタイマ(scTm)が0になったら(なお最初は0である)、このモータサブシナリオテーブルの時間データ(time)の値をサブシナリオタイマ(scTm)にセットする。なお、各ラインの時間データ(time)は、当該ラインが終了するタイミングを示している。サブシナリオタイマ(scTm)には、絶対時間を記述するが、従って、セットする時間データ値は、(当該ラインの時間データ)−(前回ラインの時間データ)の値である。
モータのデータ(モータ0〜3,4〜7)は、モータ1個につき1バイトでモータの動作パターンの番号(後述する
図21のモータ動作テーブルの番号)を示すように構成されている。モータ番号に対応するモータチャネルの登録動作ナンバ(noNew)及び実行動作ナンバ(no)に動作パターンの番号がセットされる。
後述する
図20のステップS202では、このモータデータ登録情報の更新が行われ、ステップS203では、モータデータ登録情報の更新に基づいて、モータ駆動データが作成される。
【0140】
図13は音データ登録情報を示している。音データ登録情報としては、音サブシナリオテーブルから選択されたシナリオを示す情報が登録される。この音データ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、音データ登録情報は、音チャネルaCH0〜aCH15の16個のチャネルを有するものとされる。
各音チャネルaCHに登録できる情報としては、図示のように、ボリューム遷移量(frzVq)、ボリューム(frzVl)、遷移量変化(rsv2)、ボリューム変化(rsv1)、フレーズ変化(rsv0)、ステレオ(frzSt)、ループ(frzLp)、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)がある。
【0141】
図15Bに音サブシナリオテーブルの一部として、音サブシナリオ番号1,2の例を示している。各番号の音/モータサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値(ms)が記述されるとともに、BGM、予告音、エラー音、音コントロールの情報が記述される。また最終行には、シナリオデータ終了コードD_SEENDが記述される。
この音サブシナリオテーブルに関しては、サブシナリオタイマ(scTm)が0になったら(なお最初は0である)、この音サブシナリオテーブルの時間データ(time)の値をサブシナリオタイマ(scTm)にセットする。なお、各ラインの時間データ(time)は、当該ラインが終了するタイミングを示している。サブシナリオタイマ(scTm)には、絶対時間を記述するが、従って、セットする時間データ値は、(当該ラインの時間データ)−(前回ラインの時間データ)の値である。
当該ラインのBGMのデータは、BGMのフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音データ登録情報における音チャネルaCH0(ステレオの場合は加えてaCH1)にセットされる。
当該ラインの予告音のデータは、予告音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH2〜aCH14の空いているところにセットされる。
当該ラインのエラー音のデータは、エラー音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH15にセットされる。
音コントロールのデータは、下位6バイトでチャネル情報、上位2バイトでコントロール情報とされている。
後述する
図16のステップS133では、シナリオ更新処理及び更新された音データ登録情報に基づいて、再生出力制御が行われる。
【0142】
なお、音サブシナリオテーブルとモータサブシナリオテーブルは時間(time)の各ラインに対して一体化されたテーブル構造とされてもよい。
【0143】
以上のようなシナリオデータ構造を用いた演出制御を行う演出制御部51の処理、特には演出制御CPU200の処理の例を
図16で説明する。
演出制御CPU200は、遊技機本体に対して電源が投入されると
図16の処理を開始する。演出制御CPU200は、まずステップS100で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、インターフェース系の初期化、割込設定、外部メモリの初期化、WDT初期化、可動体役物の起点復帰処理及び制御の初期化、音源制御初期化、シリアル出力コントローラ240の初期化、スケジューラ(シナリオスケジューラ、デバイススケジューラ、ランプスケジューラ、サウンドスケジューラ)の初期化、システムタイマの初期化、液晶制御初期化等を行う。
なお各スケジューラは、上述のシナリオ登録情報、モータデータ登録情報、ランプデータ登録情報、音データ登録情報のこと、もしくはこれらに基づいたシナリオ制御の進行を指す。初期化処理としては、これらシナリオ登録情報等を記憶するワーク領域を初期化する。
【0144】
ステップS100の初期設定処理を終えると、演出制御CPU200はステップS101以降の処理を繰り返し行う。
特に本実施の形態では、演出制御CPU200は、液晶制御も同時に行うために、ステップS101以降の処理を、表示データのフレームタイミングを監視しながら実行する。本例では特に表示制御に用いる同期信号であるVブランク信号に基づく制御を行う。Vブランク信号等の表示データの同期信号は、1チップマイクロコンピュータ250内のVDP機能を実現する部位で生成される。例えば同期信号生成部265で生成される。なお、本実施の形態では、表示画像の1フレーム期間である1/30秒(33.3ms)の間においてVブランク信号が2回発生される。
演出制御CPU200は、Vブランク信号に応じてVブランク割込カウンタをカウントアップするため、Vブランク割込カウンタは1/60秒(16.6ms)毎にカウントアップされることになる。
なお当然、演出制御CPU200の個々の処理はVブランク信号の周波数よりも極めて高い周波数の処理クロックに基づいて行われる。
図16の各処理は、Vブランク信号に応じてフレーム開始から終了までの期間を把握しながら行われるもので、フレーム開始時点では、処理はステップS103〜S106が1回行われ、その後はVブランク割込カウンタの値によって1フレーム期間の終了が確認されるまでの期間、ステップS121〜S143がくり返し行われる。1フレーム期間の終了を検知した時点でステップS150〜S151が行われる。
【0145】
ステップS101で演出制御CPU200は、WDT回路210に対するクリア制御を行う。従ってWDT回路210は演出制御CPU200が正常な処理状態であれば1フレーム毎にリセットされる。
ステップS102で演出制御CPU200は、フレーム更新フラグを確認する。フレーム更新フラグは、スケジューラ更新等をフレーム期間で管理するためのフラグである。
表示データの或るフレームの開始時点ではフレーム更新フラグはオフとされている(フレーム終了時に後述するステップS151でオフとするため)。
従ってフレーム開始タイミングでは、演出制御CPU200はステップS102からS103に進む。
【0146】
ステップS103で演出制御CPU200は、描画更新を行う。例えば上述のように描画する順番に記載された一群の描画コマンドであるディスプレイリストの作成や、プリロードの実行開始制御を行う。
【0147】
ステップS104で演出制御CPU200はシナリオスケジューラのフレーム更新を行う。これは具体的には、
図12Aのシナリオ登録情報の待機時間(delay)、サブシナリオタイマ(scTm)の更新を行う処理となる。つまりフレーム開始時点で演出シナリオのタイマを1タイミング進める処理ということができる。
そして演出制御CPU200はステップS105でフレーム更新フラグをONにする。これは、現在のフレームにおいてシナリオのタイマ進行を行ったことを示す情報となる。
また演出制御CPU200はステップS106でスケジューラ更新フラグをオフとする。これは、スケジューラ更新、つまりタイマ進行に伴ったシナリオ内容(シナリオ登録情報、ランプデータ登録情報、音データ登録情報)の更新がまだ行われていないことを示す情報となる。
そしてステップS101に戻る。演出制御CPU200はWDT回路210のクリアを行った後、ステップS102ではフレーム更新フラグはONになっているためステップS120に進むことになる。
【0148】
なお、以上のようにフレーム開始タイミング後の最初の1回だけ、ステップS103からS106が行われ、ステップS104ではシナリオ登録情報のタイマ更新が行われる。以降説明するようにシナリオのタイマ進行に応じた内容更新や制御が実行されるが、このため演出のためのシナリオは、1フレーム期間である33.3ms毎に進行することになる。例えばメインシナリオタイマ(msTm)は33.3ms毎に進行する。
図14のメインシナリオテーブルにおける1行のメインシナリオタイマ(msTm)の時間は、表記する値×33.3msの時間に相当する。また
図15のサブシナリオテーブルの時間(time)で示す1行の時間も、表記する値×33.3msの時間に相当する。
【0149】
演出制御CPU200はステップS120ではVブランク割込カウンタの値により処理を分岐する。Vブランク割込カウンタが“2”に達していなければ(つまり“0”又は“1”であれば)、ステップS121に進む。
Vブランク割込カウンタはステップS150でフレーム終了時にクリアされるとともに、1フレームに2回インクリメントされる。従ってVブランク割込カウンタ=0はフレームの前半期間を、またVブランク割込カウンタ=1はフレームの後半期間を示すことになる。フレーム終了時のVブランク信号でVブランク割込カウンタ=2となる。
演出制御CPU200は、Vブランク割込カウンタが“0”又は“1”であるフレーム期間中は、ステップS121〜S143を可能な回数、繰り返すようにステップS120からS121に進む。
【0150】
ステップS121で演出制御CPU200は、Vブランク割込カウンタが“0”であるか“1”であるかで処理を分岐する。つまり現在が或るフレーム期間の前半であるか後半であるかである。
現在、Vブランク割込カウンタ=0、つまりフレーム前半であれば、ステップS122に進んで、主制御部50からの受信コマンドを確認する。つまりコマンド用の受信バッファに1つ以上の受信コマンドが記憶されているか否かを確認する。受信コマンドがなければステップS130に進む。
1又は複数の受信コマンドがあれば演出制御CPU200はステップS123でコマンド解析処理を行う。
そして演出制御CPU200はステップS124でスケジューラ更新フラグをオフにする。なお、このステップS124でスケジューラ更新フラグのオフとすることは、現在のフレーム期間中において、以前に一旦ステップS131でスケジューラ更新フラグをオフにした後であっても、コマンド受信があった場合は再びオフにするという意味を持つ。
【0151】
ステップS123のコマンド解析処理の例を
図18,
図19で説明する。
上記のように演出制御CPU200は
図16のステップS122で、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを確認し、演出制御コマンドが格納されていればそのコマンドを
図18の処理で読み出すことになる。
【0152】
演出制御部51には、主制御部50から送信されてきた演出制御コマンドを取り込むコマンド受信バッファが、演出制御RAM202(例えばD−RAM202a)に用意される。
演出制御CPU200は、まず
図18のステップS301で、コマンド受信バッファの読み出しアドレスを示すリードポインタと、書き込みアドレスを示すライトポインタの確認を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
【0153】
なお、実際には
図16のステップS122の受信コマンドの有無の判断もリードポインタ=ライトポインタであるか否かで行うことができる。実際のプログラムとしては、コマンドチェックの処理に最初に進んだ時点でリードポインタ=ライトポインタであれば、
図16のステップS122で受信コマンド無しと判断されるものとすればよい。
【0154】
上述したように1つの演出制御コマンドは、モードとしての1バイトとイベントとしての1バイトの2バイトで形成されている。演出制御CPU200は
図18のステップS303で、ロードした1バイトのコマンドデータが、モードであるかイベントであるかを確認する。この確認は、8ビット(Bit0〜Bit7)のうちのBit7の値により行われる。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
【0155】
モード及びイベントのコマンドデータが、レジスタ「コマンドHIバイト」「コマンドLOバイト」にセーブされることで、演出制御CPU200は1つのコマンドを取り込んだことになる。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は
図19で後述する。
【0156】
リードポインタ=ライトポインタとなるのは、演出制御CPU200がまだ取り込んでいない演出制御コマンドがコマンド受信バッファには存在しない場合である。ステップS301でリードポインタ=ライトポインタを確認したことで
図16のステップS123としてのコマンド解析処理を終了する。
【0157】
上記のステップS306におけるコマンド対応処理の例を
図19で説明する。
図19Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず
図19AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、ランプ部63,64におけるLEDの消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
【0158】
演出制御コマンドとしては、例えば特別図柄変動パターン指定コマンド、特別図柄指定コマンド、保留球減算コマンド、保留球加算コマンド、エラー表示指定コマンド、大当たり開始指定コマンド・・・など多様に設定されている。ステップS330では、演出制御CPU200は、受信したコマンドに対応して、プログラムで規定された処理を行う。ここでは
図19B〜
図19Eに4つの演出制御コマンドを挙げて、具体的処理を例示する。
【0159】
図19Bは、ステップS330でのコマンド処理として、変動パターンコマンドを取り込んだ場合の処理S330aを示している。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
【0160】
図19Cは、ステップS330でのコマンド処理として、図柄指定コマンドを取り込んだ場合の処理S330bを示している。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄指定コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、図柄変動フラグをセットする。図柄変動フラグは、第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応してそれぞれ設けられ、それぞれのフラグで変動状態を表すものとされる。例えば各2ビットの第1特別図柄変動フラグFZ1、第2特別図柄変動フラグFZ2、普通図柄変動フラグFZ3が用意され、それぞれについて変動中、停止中(当たり)、停止中(外れ)が示される。ここでは変動開始に伴い、対応する図柄変動フラグ(FZ1,FZ2,FZ3のいずれか)を、「変動中」を示す値にセットする。
なお図柄変動フラグは、当たりの場合は、図柄変動終了時に所定時間「停止中(当たり)」を示す値にセットされ、その後、図柄変動が開始されるまで「停止中(外れ)」を示す値にセットされる。
ステップS335で演出制御CPU200は、変動開始処理を行う。その後、変動開始に応じてステップS336で変動パターンコマンドの削除を行う。
【0161】
図19Dは、ステップS330でのコマンド処理として、電源投入コマンドを取り込んだ場合の処理S330cを示している。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
【0162】
図19Eは、ステップS330でのコマンド処理として、RAMクリアコマンドを取り込んだ場合の処理S330dを示している。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
【0163】
以上、コマンド受信に応じた処理を説明した。
以上のコマンド受信に応じた処理としての
図16のステップS122〜S124の処理は、Vブランク割込カウンタ=0の期間のみ実行開始される。
【0164】
続いて演出制御CPU200は
図16のステップS130でスケジューラ更新フラグを確認して処理を分岐する。ここではスケジューラ更新フラグがオフの場合のみ、ステップS131〜S134の処理を行うようにする。
そしてステップS131でフレーム更新フラグをオンとする。
スケジューラ更新フラグはフレーム開始直後のステップS106でオフとされるため、現在のフレーム期間で最初にステップS130の処理に進んだときに、ステップS131〜S134の処理を行うことになる。またステップS124でスケジューラ更新フラグがオフとされるため、コマンド受信があった場合もステップS131〜S134の処理を行う。
【0165】
演出制御CPU200はステップS132でシナリオスケジューラ実行としての処理を行う。これはシナリオ登録情報の更新処理である。例えばシナリオチャネルsCHに登録された情報のうち待機時間(delay)が0のものについて、登録されたデータに対応した処理を実行する。即ちメインシナリオテーブルのうちで指定されたシナリオ番号に応じた処理を行う。メインシナリオ実行ライン(mcIx)、サブシナリオ実行ライン(scIx)、サブシナリオ実行ラインlmp(lmpIx)等の更新も行われる。
ステップS133で演出制御CPU200はサウンドスケジューラ実行及び出力の処理を行う。これは、シナリオテーブルで指定される音サブシナリオに応じた音データ登録情報の更新処理、及び音データ登録情報に基づいた音制御信号の出力処理である。演出制御CPU200は音コントローラ230に対して、現在のシナリオ進行に応じた音出力を実行させる。
【0166】
ステップS134で演出制御CPU200はランプスケジューラ実行処理を行う。
これはシナリオテーブルで指定されるランプサブシナリオに応じたランプデータ登録情報の更新処理である。
例えば演出制御CPU200はランプチャネルdwCH0〜dwCH15のそれぞれについて次の処理を行う。まずメインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間が、時間データ(time)以上となっていたら、そのラインについての処理を行う。
例えばまず、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを判断する。ランプシナリオデータ終了コードD_LSENDが記述されたラインではなければ、演出制御CPU200は、当該ラインに記述されているランプチャネルdwCH及びランプナンバを取得し、取得したランプチャネルdwCHに点灯パターンナンバの登録を行う。
またそのランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。またサブシナリオ実行ラインlmp(lmpIx)の値を+1する。以上により、ランプデータ登録情報としては、実行すべきランプ演出動作が登録された状態に更新される。
【0167】
なおステップS134では、以上のようなランプデータ登録情報の更新を行うが、その更新したランプデータ登録情報に基づくランプ駆動データ作成及びランプ駆動データ出力は、後のステップS141,S142で行う。
【0168】
演出制御CPU200はステップS140では、Vブランク割込カウンタの値により処理を分岐する。Vブランク割込カウンタが“0”であればステップS141〜S143の処理を実行し、“1”であればこれらの処理を実行しない。
ステップS141では、演出制御CPU200はランプ駆動データの作成を行う。即ちランプデータ登録情報の各ランプチャネルdwCHに登録されている情報に基づいて実際にシリアル出力コントローラ240から枠ドライバ部61及び盤ドライバ部62に出力するランプ駆動データを生成する。
そしてステップS142で、生成したランプ駆動データをシリアル出力コントローラ240に転送し、シリアルデータとして出力させるように制御する。
ステップS143では演出制御CPU200はキーイベント処理を行う。そしてステップS101に戻る。
ステップS141,S142のランプ駆動データの作成及び出力の処理は、Vブランク割込カウンタ=0のときのみに実行が開始される。即ちフレームの前半の期間のみこれらの処理が開始されることになる。
【0169】
Vブランク割込カウンタ=2となった後、つまりフレーム期間の終了が検知された場合は、演出制御CPU200はステップS120からS150のフレーム終了時処理を行う。
ここでは演出制御CPU200は、描画完了待ちの処理、Vブランク割込カウンタのクリア、表示画面の切替、プリロード完了待ち、描画開始等の処理を行う。
【0170】
フレーム終了時処理の具体例を
図17に示す。
ステップS171で演出制御CPU200は描画の完了を待機する。これは次のフレーム期間に表示する画像の描画完了を待機するものである。
前述のようにVRAM209にはフレームバッファ209A、209Bが用意され、表示回路221等が一方の表示データを読み出して表示させているフレーム期間には、他方のフレームバッファに、次のフレームの表示データの描画が行われる。この描画が完了していることをステップS171で確認する。
【0171】
なお通常は、このフレーム期間の終了時点では、次のフレームの表示データの描画は完了しているように設計されている。この時点で描画が完了していないことは、描画処理に何らかの不具合がある場合と想定される。
そこで、描画完了待機が発生した場合、その待機時間をカウントして、待機時間によっては、1フレーム期間にアクセスされる描画数を減らすなどの変更を行うようにしてもよい。
また、多少(1ms程度)の待機であれば、次のフレームの処理が少し遅れるだけであるため、特に問題はないというようにしてもよい。
なお、いつまで待っても描画が終わらない場合、演出制御CPU200の処理についてWDT回路210によるリセットがかかる。
【0172】
描画完了を確認したら演出制御CPU200はステップS172でVブランク割込カウンタをクリアする。
そしてステップS173で表示画面のスワップを行う。即ちVRAM209にはフレームバッファ209A、209Bについて、表示データを読み出すフレームバッファの切替を行う。
なお、Vブランク割込カウンタ=2となったことで無条件にフレームバッファ切替を行うことも考えられるが、本実施の形態の場合、ステップS171で描画完了確認を行ってからフレームバッファ切替が行われる。このため、表示回路221等に転送される表示データは、正しく描画が完了した表示データとなる。つまり、描画が垂直同期信号の2回目の時点までに終わらなかったら描画中のフレームバッファの表示データを表示させてしまうようなことは生じない。
【0173】
ステップS174では演出制御CPU200は、プリロードの完了を確認する。
プリロードは通常は、1フレーム期間内に終了するように設計されているが、このステップS174で確認している。
なお、多少プリロードが遅れたとしても、上記のステップS173で既に次のフレームの表示データの出力は開始されるため、大きな問題とはならない。
その後ステップS175でプリロードされたディスプレイリストを、ステップS173で表示データ読み出し対象に切り替えられたフレームバッファとは逆のフレームバッファに書き込む処理を行う。
【0174】
以上のフレーム終了時処理を行ったら、
図16のステップS151においてフレーム更新フラグをオフとし、ステップS101に戻る。そして説明してきたように、新たなフレーム期間についての処理を行う。
【0175】
以上の
図16の処理とともに、演出制御CPU200では例えば1ms毎の割込処理として
図20の処理が実行される。即ち
図20の処理は、表示データのフレームタイミングに関わらず1ms毎に実行される処理である。
演出制御CPU200はステップS200で、WDTパルス生成処理を行う。WDT回路210はこのWDTパルスにより1ms毎のカウントを行う。
ステップS201で演出制御CPU200は、モータ、ソレノイドのセンサ更新処理を行う。これは上述した原点スイッチ68としての各センサ68Sの情報を検知する処理である。
【0176】
ステップS202で演出制御CPU200はデバイススケジューラ実行処理を行う。具体的にはモータデータ登録情報の更新を行う。またステップS203でデバイススケジューラ出力処理として、モータドライバ70へのモータ駆動データの出力処理を行う。
即ち演出制御CPU200は、フレーム期間に比べて約1/30の時間間隔である1ms毎に、モータ動作制御を行っている。
【0177】
ここでモータデータ登録情報に応じたモータ動作制御に用いるモータ動作テーブルについて説明しておく。
図21A〜
図21Dには、4つのモータ動作テーブルを例示している。モータ動作テーブルはそれぞれに番号が付されており、例えばこれらはモータ動作テーブル1,71,72,xとしている。
【0178】
モータ動作テーブルはオプション(OPT)、スピード(SPEED)、ステップ(STEP)の3つの内容で1つの行(1つの制御項目)が構成されるテーブルとなっている。オプション(OPT)は制御種別、スピード(SPEED)及びステップ(STEP)は制御種別で示される制御内容についての指示値を示している。
この構造により1つの行(1つの制御項目)が1つの制御処理を規定する情報とされ、原則的には各行の処理が順次行われるという形式で一連の動作パターンが指定される。
【0179】
制御種別を示すオプション(OPT)としては、本例ではモータ動作の制御内容を示す動作系オプションと、モータの動作を伴わない制御内容を示す非動作系オプションとしての各種動作種別が規定されている。
動作系オプションの場合、スピード(SPEED)はモータ駆動スピードを示す指示値とされ、またステップ(STEP)はモータ動作範囲(ステッピングモータのステップ数)を示す指示値とされる。
一方、非動作系オプションの場合、スピード(SPEED)は次に移行する行(進行行数)やリンク先、ループ回数など、次の処理を指定する指示値とされる。ステップ(STEP)は通常は使用されない。
このように指示値であるスピード(SPEED)は、動作系オプションと非動作系オプションとで共有されるが、その指示内容の意味は異なるものとなっている。
【0180】
なお注記しておくと、
図12Cのモータデータ登録情報の実行ステップ(step)と、上記のモータ動作テーブルのステップ(STEP)は異なる。実行ステップ(step)はステップS202でのモータ動作更新処理で更新される変数で、モータ動作テーブルのステップ(STEP)は、モータ動作の駆動ステップ数を指定する情報である。
【0181】
動作系オプションとしては以下のものがある。なお「原点SW」とは各モータによって動作する可動体役物の位置を検出するための原点スイッチ68のことである。
cw_all・・・正転動作:原点SWオン時/オフ時とも動作
cw_on ・・・正転動作:原点SWオン時停止、原点SWオフ時動作
cw_off・・・正転動作:原点SWオン時動作、原点SWオフ時停止
ccw_all・・・逆転動作:原点SWオン時/オフ時とも動作
ccw_on ・・・逆転動作:原点SWオン時停止、原点SWオフ時動作
ccw_off・・・逆転動作:原点SWオン時動作、原点SWオフ時停止
stop・・・停止動作(励磁なし)
keep・・・停止動作(励磁あり)
cw_on2・・・正転動作:原点SWオン時停止、原点SWオフ時動作
cw_off2・・・正転動作:原点SWオン時動作、原点SWオフ時停止
ccw_on2・・・逆転動作:原点SWオン時停止、原点SWオフ時動作
ccw_off2・・・逆転動作:原点SWオン時動作、原点SWオフ時停止
cw_btn・・・正転動作:ボタン押下時動作、非押下時停止
ccw_btn・・・逆転動作:ボタン押下時動作、非押下時停止
【0182】
非動作系オプションとしては以下のものがある。
sys_ck1・・・原点SWオフ:次行へ移動、原点SWオン:指定行数(SPEED値)移動
sys_ck2・・・原点SWオフ:指定行数(SPEED値)移動、原点SWオン:次行へ移動
sys_ck3・・・原点SWオフ:次行へ移動、原点SWオン:指定行数(SPEED値)移動
sys_ck4・・・原点SWオフ:指定行数(SPEED値)移動、原点SWオン:次行へ移動
roop_s・・・ループ開始ポイント:ループ回数=SPEED値
roop_e・・・ループ終了ポイント
link・・・リンク命令:リンク先はSPEED値に示される番号のモータ動作テーブル
err_cnt・・・エラーカウンタ+1
sys_err・・・エラーコマンドなし
sys_erc・・・エラーコマンドあり
nor_end・・・通常終了:原点チェックなし
chk_end・・・チェック終了:原点チェックを行い、原点でなければエラー
【0183】
図21のようなモータ動作テーブルは、それぞれ動作パターンを規定している。
例えば
図21Aのモータ動作テーブル1では、初期動作処理としての動作パターンが規定されている。この動作パターンは次のようになる。
1行目のsys_ck1(システムチェック1)では、原点内にいるか否かをチェックする。
原点内であれば、スピード(SPEED:この場合、進行行数)で指定される「7」行先のlink(リンク命令)に移行する。
原点外であれば次の行である2行目に移行する。2行目ではccw_on(逆転動作)により原点に向けて移動される。ここではスピード(SPEED)で指定される「6」により、動作カウント(lcnt)(
図16C参照)の6カウント間隔で1ステップの駆動が、ステップ(STEP)で示される「8」回行われる。なお動作カウント(lcnt)は1ms毎に更新されるため、この2行目の動作は、ステッピングモータを、6msに1ステップの速さで8ステップ分、原点に向けて戻すように駆動するものとなる。
なお、従って動作系オプションの場合、1行の処理に要する時間は、SPEED×STEP×1msとなる。
【0184】
次に3行目で引き続きccw_on(逆転動作)により原点に向けて移動される。この3行目の動作は、ステッピングモータを、3msに1ステップの速さで、総ステップ数の2倍回数ステップだけ駆動することが行われる。つまり2行目より高速で、原点に向けて戻される動作が行われる。なお、ccw_onは原点スイッチがオンとなると停止となるため、原点内となった時点で、3行目の処理は終了する。
【0185】
以上の2行目、3行目の処理で原点に戻ったはずであるため、4行目のsys_ck1(システムチェック1)で原点内にいるか否かをチェックする。
原点内であれば、スピード(SPEED:この場合、進行行数)で指定される「2」行先の6行目のccw_all(逆転動作)に移行する。
原点外であれば次の行である5行目のlink(リンク命令)に移行する。この5行目のlink(リンク命令)では、モータ動作テーブル71(
図21B)が指定されているため、モータ動作テーブル71のリトライ動作を実行することになる。モータ動作テーブル71のリトライ動作が通常終了(nor_end)したら、この5行目のlink(リンク命令)が終了したことになり、次の6行目に進む。
【0186】
6行目ではccw_all(逆転動作)として、ステッピングモータを、3msに1ステップの速さ(高速)で58ステップ分、原点に向けて戻すように駆動するものとなる。
さらに次の7行目では、同じくccw_all(逆転動作)として、ステッピングモータを、6msに1ステップの速さ(低速)で8ステップ分、原点に向けて戻すように駆動する。
この6行目、7行目は、原点内であることの確認後に、さらに押し込む動作となり、この押し込み動作は高速→低速の2段階で行われる。
【0187】
1行目で原点内が確認された場合や、6行目、7行目の押し込みが行われた後は、8行目のlink(リンク命令)に進み、スピード(SPEED:この場合、リンク先)で指定されるモータ動作テーブル72(
図21C)に移行することになる。
モータ動作テーブル72では往復動作としての動作パターンが規定されており、これが通常終了(nor_end)したら、モータ動作テーブル1の8行目のlink(リンク命令)が終了したことになり、次の9行目に進む。9行目はnor_end(通常終了)とされており、ここでモータ動作テーブル1としての初期動作処理が終了される。
【0188】
ここではモータ動作テーブル1としての初期動作処理を説明したが、各モータ動作テーブルは、この例のように、必要な動作を行毎に指定し、また場合に応じてスキップする行数、リンク先のモータ動作テーブル番号、ループ回数なども指定可能な構造として、動作パターンが規定されている。
説明は省略するが、
図21B、
図21C、
図21Dのモータ動作テーブルや、図示しない他の多数のモータ動作テーブルも、各行で、オプション(OPT)、スピード(SPEED)、ステップ(STEP)に基づいて動作が指定されて、一連の動作パターンが規定される。
図21Bはリトライ動作のためのモータの動作パターン、
図21Cは往復動作のためのモータの動作パターン、
図21Dは役物を「出現→10回揺動→戻る」という動作をさせるためのモータの動作パターンを、それぞれ示したモータ動作テーブルの例である。
【0189】
モータ制御に関しては、このようなモータ動作テーブルで細かいモータ動作が規定される。
図20のステップS202,S203では、
図12Cのモータデータ登録情報へのサブシナリオの登録や、このサブシナリオで指定されたモータ動作テーブルに応じた制御が実行されることになる。
【0190】
演出制御CPU200は、例えば
図12Cに示したモータデータ登録情報に対して、モータサブシナリオテーブルに記述されたモータ動作テーブルの番号をモータ登録情報(ワーク)にセットする。即ちモータデータ登録情報において、現在登録処理対象のモータMT(n)に該当するモータチャネルmCHnに、実行動作ナンバ(no)と登録動作ナンバ(noNew)をセットする。
この場合、登録動作ナンバ(noNew)に、モータサブシナリオテーブルに記述されていたモータ動作テーブル番号を書き込む。実行動作ナンバ(no)は、実際に実行される際にモータ動作テーブル番号(動作パターンの番号)に更新されるもので、この時点では「0」をセットする。
これによりモータデータ登録情報(ワーク)の各モータチャネルmCHに、モータサブシナリオテーブルの内容に応じて、モータ動作テーブルの番号が登録されることになる。
【0191】
モータ動作テーブル番号が登録された後は、逐次、その番号のモータ動作テーブルの各行に示される動作が制御すべき動作として指定される。
例えばモータデータ登録情報のモータチャネルmCH0〜mCH7に対応しているモータMT(n)(n=0〜7)のそれぞれに関して概略、次のような処理が行われる。
なお、以降の説明では、モータ動作テーブルのオプション(OPT)に記述されたデータを「D_OPT」、スピード(SPEED)に記述されたデータを「D_SPEED」、ステップ(STEP)に記述されたデータを「D_STEP」と表記する。
【0192】
演出制御CPU200はまず、対象のモータチャネルmCHnにおける実行動作ナンバ(no)と登録動作ナンバ(noNew)が一致しているか否かを確認し、一致していなければ動作開始として、当該モータチャネルmCHnに対応する励磁出力データをクリアし、実行動作ナンバ(no)に登録動作ナンバ(noNew)の値を代入する。
また演出制御CPU200は、当該モータチャネルmCHnの動作カウント(lcnt)、動作ライン(ofset)、実行ステップ(step)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、親ナンバ(retNo)、戻りアドレス(retAddr)、エラーカウンタ(errCnt)をそれぞれ0にセットする。また親(移行元)/子(移行先)の属性(attribute)に、親を示す「5A」の値をセットする。
以上は、登録したモータ動作テーブルに基づく制御が開始されるときの処理となる。
【0193】
以降、次のような処理が行われていく。
演出制御CPU200は、モータMT(n)、実行動作ナンバ(no)、動作ライン(ofset)に対応するモータ動作テーブルのデータを取得する。
即ち実行動作ナンバ(no)で示されるモータ動作テーブルにおける、動作ライン(ofset)で示される行のデータ「D_OPT」「D_SPEED」「D_STEP」を取得する。最初は動作ライン(ofset)=0とされているため、指定されたモータ動作テーブルの先頭の行のデータ「D_OPT」「D_SPEED」「D_STEP」を取得する。例えば仮に実行動作ナンバ(no)=72とされていたとしたら、
図21Cのモータ動作テーブル72の先頭行の「cw_off」「6」「8」を「D_OPT」「D_SPEED」「D_STEP」として取得することになる。
【0194】
そして演出制御CPU200は、データ「D_OPT」が、動作系オプションのデータであるか、非動作系オプションのデータであるかを確認する。
非動作系オプションのデータであったら、その非動作系オプションに応じた処理を行う。例えば上記の「sys_ck1」「roop_s」等で指定される処理を行う。
【0195】
動作系オプションのデータであったら、駆動制御を伴う処理を行う。例えば動作カウント(lcnt)の値と「D_SPEED」の値を比較して励磁出力データの更新タイミングであるか否かを判断する。
動作系オプションの場合、「D_SPEED」の値は、ステッピングモータの1ステップ駆動の間隔を示している。仮に「D_SPEED」=6としたら、6回に1回、1ステップ駆動を行う。動作カウント(lcnt)は、最初にステップS1604で「0」とされた後、インクリメントされる値であり、つまり1msタイマ割込処理毎に+1される。
従って、動作カウント(lcnt)=「D_SPEED」−1となったら、励磁出力データの更新タイミングとなる。
【0196】
励磁出力データの更新タイミングとなっていなければ、動作カウント(lcnt)をインクリメントとして、現在のモータチャネルmCHnの処理を終え、次のモータチャネルmCHの処理に移る。
励磁出力データの更新タイミングとなっていたら、演出制御CPU200はモータデータ登録情報上で実行ステップ(step)を+1する。実行ステップ(step)は、モータ動作テーブルから取得した「D_STEP」で示されるステップ回数に達したか否かをカウントする変数となる。そして「D_OPT」で示される動作系オプションに応じた処理、例えば「cw_all」「cw_on」・・・として示した動作のための処理を行う。
【0197】
以上は処理の概要であるが、
図20のステップS202のデバイススケジューラ実行処理として、以上のように逐次実行すべき内容が示されるようにモータデータ登録情報が更新されていく。即ち、モータデータ登録情報に登録されたモータ動作テーブルについて1ms毎に実行すべき行(動作ライン)の内容が指定される。
そして演出制御CPU200は、ステップS203で、各モータチャネルmCHnについて、指定されているモータ動作テーブルの行の内容に応じたモータ駆動データを生成し、シリアル出力コントローラ240から出力されるように制御する。
【0198】
図20のステップS204では、演出制御CPU200はキー入力処理を行う。即ち演出ボタン11,12、十字キー13等の操作に応じた信号を確認する。
なお、
図4,
図8に示したように、センサ68sの検出情報と演出ボタン11,12、十字キー13の操作情報は、シリアル入力データとして検知することができる。そこで、キー入力処理は、ステップS201でセンサ68sの検出情報と同時に確認するようにしてもよい。これにより検出処理を効率化できる。
【0199】
ここまで演出制御CPU200の処理例を説明してきたが、以上の処理例では、演出制御CPU200は表示データのフレームに合わせて各種処理を行っている。
図22に表示データのフレーム期間毎の各種タイミングを示している。
表示データの各フレームをフレームFR0、FR1、FR2・・・とする。例えば時点T0〜T1にフレームFR0の表示、時点T1〜T2にフレームFR1の表示が行われる。
Vブランク割込カウンタの値は、
図16のステップS150(
図17のS172)でクリアされるため、図示のようにフレーム開始時点で“0”、フレーム中間の時点(時点T0m、T1m等)で“1”となり、“2”となった直後にクリアされる。
【0200】
描画回路225による描画処理は、フレーム期間内に、次のフレームの表示データについて実行される。例えばフレームFR1の表示データの描画は、フレームFR0の表示期間である時点T0〜T1内に実行される。具体的にはステップS150で描画が開始されるため、フレーム先頭時点で、次のフレームのための描画が開始される。この描画は、通常はフレーム期間内に完了する。
もし、例えば時点T0に開始された描画が時点T1において完了していないとすると、
図17のステップS171で完了が待機されることになる。
【0201】
プリローダ220によるプリロードは、描画のための準備として、さらに1フレーム前の期間に実行される。例えばフレームFR2の表示データの描画のためのプリロードは、フレームFR0の表示期間である時点T0〜T1内に実行される。具体的にはステップS103で開始されるため、フレーム先頭時点で、2つ先のフレームのためのプリロードが開始される。プリロードは、通常はフレーム期間内に完了する。
もし、例えば時点T0に開始されたプリロードが時点T1において完了していないとすると、
図17のステップS174で完了が待機されることになる。プリロードが多少遅れると、それによって描画の開始が多少遅れることになる。
【0202】
演出制御CPU200の処理としては、各フレーム開始タイミングSLsにおいて、ステップS150,S151,S101,S103が行われることになる。主な処理としては
図22に示すように、フレームバッファ209A、209Bの切替、描画開始、ディスプレイリスト作成、プリロード開始の制御となる。
ここで矢印SLで示すフレーム期間中は、くり返しステップS121〜S143の処理が行われる。
但し、受信コマンド処理(S122〜S124)は、矢印CAとして示すフレーム前半期間のみ実行される。これらはVブランク割込カウンタ=0のときのみ実行されるためである。
受信コマンドの解析処理は、
図18,
図19のような処理となるが、これは比較的処理負担の重い処理となるとともに、受信コマンド数によって処理も多くなる。コマンド種類によっては演出のための抽選等も行う必要が生ずる。本実施の形態では、このような処理をフレーム前半期間にのみ行うものとしている。
なお、このためコマンド信号に関しては、例えば時点T0m〜T1mとして破線で示す期間に受信されたコマンド信号については、時点T1〜T1mの期間にコマンド解析が行われることになる。
【0203】
またランプデータ作成/出力処理(S141〜S143)も、矢印CAとして示す、フレーム前半期間のみ実行される。これらもVブランク割込カウンタ=0のときのみ実行されるようにしているためである。
これにより、ランプ駆動データの作成及び出力によって、フレーム終了タイミングに対してフレーム終了処理(S150)が遅れることを防止している。
なおステップS142のランプ駆動データ出力が、フレーム後半期間で行われないことによっては、シリアル出力コントローラ240からのランプ駆動データの出力が行われないことが想定されるが、その場合、LEDドライバ90は直前のランプ駆動データを維持しているため、直前の発光動作が実行されることになる。
【0204】
<7.第2の実施の形態の演出制御部の処理>
第2の実施の形態の演出制御CPU200の処理を
図23に示す。これは
図16のステップS142のランプ駆動データ出力制御を、ステップS144として示すタイミングで行うように変更した例である。つまりフレームの前半/後半に関わらず、ランプ駆動データの出力は実行する処理例である。
但しステップS141のランプ駆動データの作成は、フレーム後半期間では行われないので、フレーム後半期間では、直前のフレーム前半期間に作成されたランプ駆動データがくり返し出力されることになる。
なお第2の実施の形態の他の処理は
図16〜
図20で説明したものと同様である。
【0205】
<8.第3の実施の形態の演出制御部の処理>
第3の実施の形態の演出制御CPU200の処理を
図24に示す。
電源投入後、演出制御CPU200はステップS300で各種初期設定を行った後、ステップS301以降の処理をくり返し行う。
【0206】
ステップS302で演出制御CPU200は画像処理関係の初期化を行う。この初期化はフレーム開始タイミングの各種変数の初期化処理のことを指す。
ステップS302で演出制御CPU200はコマンド解析処理を行う。例えば具体的には
図18、
図19で説明した処理である。
ステップS303で演出制御CPU200はシナリオ管理処理を行う。このシナリオ管理処理は、
図16のステップS104,S132の処理を指す。
ステップS304で演出制御CPU200は描画更新処理を行う。これは
図16のステップS103のディスプレイリスト作成やプリロード実行開始の制御である。
【0207】
ステップS305で演出制御CPU200はサウンド管理処理を行う。このサウンド管理処理は、
図16のステップS133の処理と同様である。
ステップS306で描画完了待ち及びプリロード完了待ちを行う。描画の完了待ちとは、直前のステップS312で開始された、次のフレームの表示データの描画の完了待ちのことである。プリロードの完了待ちとは、直前のステップS304で開始した、2つ先のフレームの描画のためのプリロードの完了待ちのことである。
【0208】
演出制御CPU200は、電源投入1回目のみ、ステップS307からステップS312に進み、最初のフレームの描画を開始させる。以降はステップS307からS308に進む。
【0209】
演出制御CPU200はステップS308では、Vブランク割込カウンタの値により処理を分岐する。Vブランク割込カウンタが“0”であればステップ
S309で、ランプ駆動データの作成及び出力制御を行う。即ちランプデータ登録情報の各ランプチャネルdwCHに登録されている情報に基づいて実際にシリアル出力コントローラ240から枠ドライバ部61及び盤ドライバ部62に出力するランプ駆動データを生成する。
そして生成したランプ駆動データをシリアル出力コントローラ240に転送し、シリアルデータとして出力させるように制御する。
【0210】
Vブランク割込カウンタ=1のときは、ステップS309は行われない。つまりステップS309のランプ駆動データの作成及び出力の処理は、Vブランク割込カウンタ=0であるフレームの前半の期間のみ、行われることになる。
【0211】
ステップS310ではVブランク割込カウンタ=2となることを待機する。そしてVブランク割込カウンタ=2となったら、ステップS311でフレームバッファの切替や、Vブランク割込カウンタのクリアを行い、さらにステップS312で描画開始制御を行う。そしてステップS301に戻る。
【0212】
以上の
図24の処理は、次の点で
図16の処理と異なっている。
・コマンド解析処理をフレームの開始直後に1回行う(S302)。
・シナリオ管理後に即座にサウンド管理(S305)を行う。
・シナリオ管理として、
図16のスケジューラフレーム更新とシナリオスケジューラ実行処理をまとめて1回行っている。
・描画やプリロードの完了待ちを行ってから(S306)、ランプデータ作成/出力(S309)を行う。
・フレーム期間終了となるまで待機される(S310)ため、ステップS301〜S312が1フレーム期間に1回行われる。従って、音データ出力(S305)やランプデータ作成/出力(S309)は、1フレームに1回行われる。
【0213】
以上により、第1,第2の実施の形態よりもシンプルな処理となり、演出制御CPU200の処理負担は軽減されるものとなる。
なお、モータ制御に関しては、
図20のように例えば1ms毎の割込処理で行われる。
【0214】
この第3の実施の形態のフレーム期間毎の各種タイミングを
図25に示す。なお表記の形式は
図22と同様としている。
表示フレーム、Vブランク割込カウンタの値、描画回路の描画、プリローダのプリロード処理のタイミングは
図22と同様となる。
【0215】
演出制御CPU200の処理としては、各フレーム開始タイミングSLs直後から矢印SLで示すフレーム期間中に、ステップS311,S312,S301〜S310が順次行われる。主な処理としては
図22に示すように、フレームバッファ209A、209Bの切替、描画開始、コマンド解析処理、シナリオ管理、ディスプレイリスト作成、プリロード開始、サウンド管理、ランプデータ作成/出力の制御が順次、フレーム期間内に1回行われる。
【0216】
但し、ランプデータ作成/出力は、矢印CAで示すフレーム前半期間内に開始されなければ実行されない。
これにより、ランプ駆動データの作成及び出力によって、フレーム終了タイミングに対してフレーム終了処理(S311、S312)が遅れることを防止している。
なおステップS309のランプ駆動データ出力が、フレーム後半期間で行われないことによっては、シリアル出力コントローラ240からのランプ駆動データの出力が行われないことが想定されるが、その場合、LEDドライバ90は直前のフレームのランプ駆動データを維持しているため、直前の発光動作が引き続き実行されることになる。
【0217】
この場合、コマンド解析処理(S302)は、フレーム開始直後に1回のみ実行される。受信コマンドの解析処理は、上述のように比較的処理負担の重い処理である。本実施の形態では、この処理をフレーム開始直後に1回行うものとしていることで、特別な異常が生じない限り、フレーム期間の終了までに、
図24の一連の処理が完了できるようにしている。
なお、このためコマンド信号に関しては、例えば時点T1〜T2として破線で示す期間に受信されたコマンド信号については、時点T2の直後にコマンド解析が行われることになる。
【0218】
<9.まとめ及び変形例>
以上の実施の形態のパチンコ遊技機1によれば演出制御のための処理を効率化でき、適正な演出制御を実現できる。
また演出制御処理負荷を軽減することができる。
【0219】
また実施の形態のパチンコ遊技機1は、演出画像の表示を行う表示手段(例えば主液晶表示装置32Mや副液晶表示装置32S)と、発光動作を行う発光手段(例えばランプ部63,64)と、少なくとも発光手段の発光を制御する制御手段(例えば演出制御部51)を備える。そして制御手段は、発光手段の発光制御のための処理の全部又は一部を、表示手段で表示される画像の1フレーム期間内における、フレーム開始タイミングから所定時間経過を検知するまでのフレーム前端側期間であれば開始し、所定時間経過を検知した後の期間であるフレーム終端側期間には開始しない。
フレーム終端側期間は、フレーム期間内でフレーム開始時点から所定時間経過した後、そのフレームが終了するタイミングまでの期間である。例えば1フレーム期間を前半と後半に分けた場合の後半期間である。本実施の形態では、このフレーム終端側期間において発光制御のための処理の全部又は一部をスキップすることとしている。
例えば第1の実施の形態の場合、フレーム終端側期間には
図16のステップS141,S142のランプ駆動データ作成とランプ駆動データ出力の処理を開始しない。
第2の実施の形態の場合、フレーム終端側期間には
図23のステップS141のランプ駆動データ作成の処理を開始しない。
第3の実施の形態の場合、フレーム終端側期間には
図24のステップS309のランプ駆動データ作成とランプ駆動データ出力の処理を開始しない。
これにより、表示手段の画像表示とともに行う各種演出等のための制御が、次のフレームに間に合わなくなるようなことを防止する。従ってフレーム開始タイミングを検知し、フレーム期間に合わせて各種演出制御を行う場合に、演出制御部51(特に1チップマイクロコンピュータ250)の処理負担を増大させない処理手順を提供できる。
そして表示画像のフレームタイミングに合わせた演出制御の遅れを回避し、適切な演出動作を実現できる。
特に実施の形態では制御手段(演出制御部51)が表示手段の制御も行う。この場合、発光演出のための処理を表示制御(つまりフレーム期間)に合わせることで、処理の効率化や、タイミング制御及びそのためのレジスタ構成の簡易化等ができるが、場合によっては、フレーム終了直前などに行われた発光演出等の処理がフレーム期間内に終了しないこともあり、それによって処理が遅れることも想定される。そこでフレーム終端側期間に発光制御を行わないことで、このような事態が生ずることを解消できる。
なお、発光演出の全部一部をフレーム後半期間にスキップさせるのは、LED発光動作が、16.6msの期間において直前の発光動作のままとなっても、大きな影響は生じないことにもよる。この発光演出の制御に対して、音演出や可動役物演出についてはフレーム後半期間であってもスキップさせないということも、適切な演出の実現のうえで意味がある。つまりフレーム後半期間に発光演出の全部一部をスキップし、ステップS133の音演出処理やステップS202,S203のモータ制御(可動体役物演出処理)はスキップさせないことは、演出効果を保ったままフレーム終了タイミングまでの処理の遅れを解消できるという点で有効となる。
【0220】
また第1、第2、第3の実施の形態では、演出制御部51がフレーム終端側期間に開始しない発光制御のための処理の一部として、発光駆動データの作成処理(S141、S309)を含む。
発光演出のための制御としては、演出シナリオ管理、演出シナリオに従った演出内容の進行(更新)、実行する演出内容に応じた制御データの取得、その制御のための駆動データの生成、駆動データの出力などがある。このうち少なくとも発光駆動データ(ランプ駆動データ)の生成はフレーム終端側期間に実行しないようにしている。
発光駆動データ作成を行わないことでフレーム後半期間の処理負担を削減し、フレーム切替タイミングに間に合わなくなることを防止する。これによりフレームタイミングでの演出制御に支障が無いようにできる。
なお発光駆動データの出力は行ってもよく、その場合、直前の駆動データによって点灯が行われるが、上述したように、実際の動作上、問題は発生しない。
【0221】
また第1,第3の実施の形態では、演出制御部51がフレーム終端側期間に開始しない発光制御のための処理の一部として、発光駆動データのシリアル送信処理(S142,S309)を含む。即ち発光演出のための制御のうちで、少なくとも発光駆動データの出力、特にシリアル出力はフレーム終端側期間に実行しないようにする。
発光駆動データのシリアル送信出力は比較的時間を要する処理となり、フレーム後半期間に実行すると、フレーム切替タイミングまでに終了しない可能性が高い。そこで、これをフレーム終端側期間において実行しないようにすることで、次のフレームに間に合わなくなるようなことを防止する。
【0222】
また第1,第2,第3の実施の形態において演出制御部51は、表示される画像のフレーム同期信号であるVブランク信号に基づいてカウントを行うVブランク割込カウンタにより、フレーム開始(終了)タイミング及びフレーム終端側期間の開始タイミングを検知している(S120、S140)。これにより、タイミング管理を容易化できる。
【0223】
ところで第1、第2の実施の形態の変形例として、ステップS134も、ステップS140でVブランク割込カウンタ=0のときのみ行うようにしてもよい。つまりシナリオ更新(ランプデータ登録情報の更新)もフレーム後半期間は行わないようにする。つまり発光制御のための処理の全部(S134,S141,S142)をフレーム後半期間には行わないようにする。なお「全部」とは、ランプ制御のみに関連する処理の全部という意味である。
このようにすることで、上述のフレーム後半の処理負担を軽減する効果をより発揮できる。特に実施の形態の場合、ステップS104のシナリオスケジューラフレーム更新として、シナリオのタイマ進行を行っている。つまりシナリオは1フレーム毎に必ず1タイミングずつ進行する。従ってランプ演出のシナリオの進行は確保されており、ステップS134が実行されない場合が生じても、シナリオの進行が遅滞して適切な演出ができなくなるということはない。
またステップS134,S141,S142が行われない期間でも、LEDドライバ90は直前の発光駆動データによりLED120を駆動しているため、遊技者にとって違和感のある発光状態とはならない。
もちろん第1,第2の実施の形態においても、ステップS104でシナリオのタイマ進行を行っているため、シナリオは1フレーム毎に必ず1タイミングずつ進行し、ランプ演出のシナリオの進行は確保される。このためシナリオの進行が遅滞することはない。
【0224】
実施の形態のパチンコ遊技機1は、演出画像の表示を行う表示手段(主液晶表示装置32Mや副液晶表示装置32S)を含む複数の演出手段を備えている。即ちランプ部63,64、可動体役物、音出力系等の演出手段もある。制御手段(演出制御部51)は、表示手段で表示される画像のフレーム開始タイミングを検知するとともに、受信したコマンドの解析処理(S123)は、1フレーム期間内における、フレーム開始タイミングから所定時間を経過するまでのフレーム前端側期間においてのみ開始するようにしている。
フレーム前端側期間とは、フレーム期間内でフレーム開始時点から所定時間経過するまでの期間である。例えば1フレーム期間を前半と後半に分けた場合の前半期間である。
受信したコマンドについては、解析処理を行って、その解析結果により演出内容が決められることになるが、このコマンドの解析処理は、フレーム前端側期間においてのみ開始し、フレーム開始から所定時間経過後は、解析処理を開始しないようにしている。
これにより、表示手段の画像表示とともに行う各種演出等のための制御が、次のフレームに間に合わなくなるようなことを防止する。解析処理は、受信したコマンド内容の把握やコマンドの内容に応じた対応処理を含むなど、比較的負担の大きい処理である。そこで、次のフレーム開始タイミングに間に合うように、フレーム前端側期間であるときのみ、このコマンド解析を開始するようにする。
従ってフレーム開始タイミングを検知し、フレーム同期で各種演出制御を行う場合に、処理負担を増大させない処理手順を提供できる。
特に演出制御部51が表示手段の制御も行う場合、発光演出のための処理を表示制御、即ちフレーム同期することで、処理の効率化や、タイミング制御及びそのためのレジスタ構成の簡易化等ができるが、受信コマンド解析処理がフレーム期間内に終了しないこともあり、それによって処理が遅れることも想定される。そこでコマンド解析処理を開始する期間をフレーム前端側期間に限ることで、処理が遅れるような事態が生ずることを回避する。
【0225】
また第1,第2の実施の形態では、演出制御部51は、表示手段で表示される画像のフレーム同期信号であるVブランク信号に基づいてカウントを行うVブランク割込カウンタにより、フレーム開始タイミング及びフレーム前端側期間の終了タイミングを検知する(S121)。これにより、タイミング管理を容易化できる。
【0226】
また第3の実施の形態では、制御手段(演出制御部51)は、表示手段で表示される画像のフレーム開始タイミングを検知するとともに、受信したコマンドの解析処理は、1フレーム期間内において、フレーム開始タイミングの検知に応じて1回実行する(S302)。
これによりフレームの開始タイミング直後にコマンド解析処理が開始される。1回のみ行われるため、コマンド解析処理の開始がフレーム期間の後半になることは、通常発生しない。従って負荷の重いコマンド解析処理によってフレーム終了タイミングに処理が間に合わなくなることが防止される。
【0227】
また以上のことからも理解されるように第1,第2の実施の形態の
図16,
図23の処理や変形例では、フレーム終端側期間においては、受信コマンドの解析処理(S123)を開始せず、さらに発光制御のための処理の全部又は一部も開始しないことになる。
これにより、フレーム後端側期間における演出制御部51の処理量をより低減し、表示手段の画像表示とともに行う各種演出等のための制御が次のフレームに間に合わなくなることを防止するという効果をより高めることができる。
【0228】
また実施の形態のパチンコ遊技機1は、演出画像の表示を行う表示手段と、モータにより駆動される可動体と、発光手段とを含む複数の演出手段を備える。また受信したコマンドに応じて演出手段の動作を制御する制御手段(演出制御部51又は演出制御CPU200)を備える。
演出制御CPU200は、発光手段に関する駆動制御は、表示手段で表示させる表示データのフレームタイミングに応じて行う第1処理の1つとして実行する。フレームタイミングに応じて行う処理とは、例えばフレームタイミングの監視を行って各種の処理タイミングが規定される処理であるなど、フレーム期間に対応した処理の進行を行う処理である。即ち実施の形態における第1処理とはフレームタイミングにより実行タイミングが規定される
図16のメイン処理である。
一方、可動体に関するモータの駆動制御は、フレームタイミングに関わらず、フレーム期間より短い所定間隔で実行する第2処理の1つとして実行する。第2処理とは
図20のタイマ割込処理である。
これにより、発光演出に関しては表示データのフレームに合わせて実現できる一方、可動体役物のモータ制御は、フレームタイミングに関わらず、より短い時間間隔で制御されることで精細な役物動作が可能となる。
ランプ制御(及び音制御)は、フレームタイミング毎の出力とすることで、処理負担が過大にならない。一方、フレームタイミングより短い周期でモータ処理することで、モータ動作が遅れることを回避できる。
【0229】
また実施の形態では制御手段(演出制御CPU200)からの描画指示に基づいて表示手段を制御する表示制御手段(VDPとしての機能部位)を備える。そしてフレームタイミングは、表示制御手段から出力されるフレーム同期信号に基づくタイミングである。
フレーム同期信号に基づいてフレームタイミングを確認することで、タイミング制御が容易となる。
【0230】
また演出制御部51は、モータの原点スイッチの情報の検知も第2処理の1つとして
図20のステップS201で実行する。つまり原点スイッチ情報の検知もモータ駆動制御と合わせること、可動体役物のモータ制御を適切に実行できるようにする。この場合、ステップS202のデバイススケジューラ実行処理と同じ1ms周期で原点センシングも行うことで可動体役物動作の制御(シナリオの進行等)を円滑化できる。
【0231】
また演出制御部51は、演出のためのユーザ操作手段の操作情報の検知も第2処理の1つとして
図20のステップS204で実行する。これにより操作情報の検出動作も精細に行うことができる。
なお上述したが、1チップマイクロコンピュータ250は、ユーザ操作情報の検知と原点センシングを、
図8のパラレル/シリアル変換部260からの入力として、一括して検知できる。従ってステップS204の処理とステップS201の処理を同時に行うことで、さらに効率の良い外部情報検知が可能となる。
【0232】
また第1,第2の実施の形態では、制御手段(演出制御部51)は、複数のフレームバッファ209A、209Bについて、表示手段で表示される画像の表示データの読み出し行う第1領域と、次のフレームの表示データの描画を行う第2領域としての割り当てを順次切り替える。このとき実施の形態では、表示手段で表示される画像の1フレーム期間の終了の際(S150)に、第2領域とされているフレームバッファ領域での次のフレームの画像の表示データの描画完了を確認し(
図17のステップS171)、描画完了確認後に、第1領域と第2領域の切替を行い(S173)、第2領域に切り替えられたフレームバッファ領域を用いた描画を開始する(S175)。
このように描画完了を確認してVRAM209のフレームバッファ領域の切替を行うことで、表示画像に与える影響を最小限とすることができる。即ち表示回路221等に転送される表示データは、正しく描画が完了した表示データとなり、描画が垂直同期信号の2回目の時点までに終わらなかったら描画中のフレームバッファの表示データを表示させてしまうようなことは生じない。
そして演出画像の表示を行う表示手段を含む複数の演出手段の制御を行うという、比較的処理負荷が高くなる状況においても適切な表示データ出力に基づく画像表示演出を実現できる。
【0233】
また第1,第2の実施の形態では、制御手段(演出制御部51)は、複数のフレームバッファ209A、209Bの第1領域と第2領域としての割り当てを、1フレーム期間の終了に応じて切り替えるとともに(S173)、CG−ROM206に記憶された描画のための画像データ素材についての所定の記憶領域(D−RAM202a又はVRAM209)
へのプリロードが完了しているか否かを確認し(S174)、プリロードの完了が確認されてから、切り替えによって第2領域とされたフレームバッファ領域を用いた描画を開始する(S175)。
上述したようにディスプレイリストの画像データ(画像素材としてのCGデータ)の参照先は、CG−ROM206ではなく、D−RAM202a又はVRAM209に設定されたプリロード領域となることで、描画回路225による描画の実行中に生じる画像データへのランダムアクセスを迅速化でき、動きの激しい高解像度の動画についても描画処理にも対応できる。つまりプリロード完了を確認してから描画を開始することで、このような優位性をもった描画を確実に実行できる状態が維持できる。従ってプリロードされた画像素材を用いた描画処理が適切に実行される。特に処理負担が高くなる傾向にある1チップマイクロコンピュータ250の処理としてプリロード完了を待って描画を行うことが有効となる。
【0234】
実施の形態の遊技機は、演出画像の表示を行う表示手段(主液晶表示装置32Mや副液晶表示装置32S)である第1演出手段と、可動体役物モータ65により駆動される可動体役物である第2演出手段と、第3演出手段を備えている。第3演出手段は音出力系(アンプ部67,スピーカ25)や、ランプ部63,64である。
そして第1,第2の実施の形態では、制御手段(演出制御部51)は、第3演出手段に関する制御(
図16,
図23のS133)は、表示手段で表示させる表示データのフレーム周期で実行している。つまり基本的には1フレームに1回行う。
一方、第2演出手段の可動体に関する可動体役物モータ65の駆動制御は、フレームタイミングに関わらず、フレーム期間より短い1ms間隔で実行する(
図20のS202,S203)。
これにより、第3演出手段の制御に関しては表示データのフレームに合わせて実現できる一方、可動体役物モータに関しては、より精細な動作制御を可能とする。
例えば音制御は、フレームタイミング毎の出力とすることで、処理負担が過大にならない。一方、フレームタイミングより短い周期でモータ処理することで、モータ動作が遅れることを回避できる。従って精細な可動体役物動作が可能となる。
【0235】
また演出制御部51は、受信コマンドが取得された場合には、第3演出手段に関する制御を、フレーム周期に関わらず、さらに実行する。即ち
図16,
図23では受信コマンドがあった場合、ステップS124でスケジューラ更新フラグをオフとすることで、ステップS132,S133,S134が行われる。
これにより、コマンド取得に応じた演出を迅速に実行できる。
【0236】
第1,第2の実施の形態では、表示用の同期信号(Vブランク信号等)で検知される、画像の表示フレームが遷移するタイミングでシナリオ未更新状態(フレーム更新フラグOFF)とし(S151)、この未更新状態となることに応じて、シナリオの少なくともタイマ更新を行うようにしている(S102→S103→S104)。
従って、演出制御CPU200の処理において、表示データのフレームのタイミングとの関係で最適タイミングでシナリオ進行管理ができる。
【0237】
また第1,第2の実施の形態では、シナリオスケジューラフレーム更新/未更新を第1情報(フレーム更新フラグ)で管理し、シナリオの更新(スケジューラ実行)の実行/未実行を第2情報(スケジューラ更新フラグ)で管理している(S105,S106,S130,S151)。
そしてフレーム更新フラグは、フレーム同期信号(Vブランク信号)に基づいてOFF(未更新)とされる。スケジューラ更新フラグは、スケジューラフレーム更新に応じてOFF(未実行)とされた後、フレーム同期信号に応じて、状態が確認され、OFF(未実行)ならシナリオ更新が実行される。
これによりシナリオのタイマ進行と、シナリオ更新が、それぞれ別タイミングで行われるように管理されるとともに、それぞれフレームに1回の実行を、シンプルな処理で管理できる。
【0238】
また第1,第2の実施の形態では、シナリオ更新の情報(スケジューラ更新フラグ)は、シナリオ更新実行(S132)とともにONにする(S131)。ONにした後は、フレーム期間中(Vブランク割込カウンタの値に関わらず)でも、シナリオ更新(S131〜S134)は行わない。スケジューラ更新フラグをOFFに戻すのは次のフレームの期間のはじめのタイミングである(S106)
しかしコマンド受信があったら、直ぐにOFFにして(S124)、シナリオ更新を実行させるようにしている。
このような処理によっては、演出制御CPU200のメイン処理で、むやみにシナリオ更新させず、適切にフレームに1回、シナリオ更新が行われるようにでき、表示と他の演出の同期性を容易に確保できる。
一方、コマンド解析に応じて、即座にシナリオ更新を実行させることで、表示フレームの進行に関わらずコマンドに迅速に対応できる。
【0239】
以上実施の形態について説明してきたが本発明は実施の形態で挙げた例に限らず多様な変形例や適用例が考えられる。
表示データのフレームに同期する信号としてVブランク信号に基づいてタイミングを管理する例を挙げたが、Vブランク信号以外の垂直同期信号を用いたり、或いは水平同期信号のカウントでフレーム期間内のタイミング管理を行っても良い。例えば上述のフレーム前端側期間、フレーム後端側期間としてのタイミング管理を、垂直同期信号や水平同期信号を用いることも考えられる。
またフレーム前端側期間は、必ずしもフレーム前半の16.6msの期間とは限らない。フレーム開始タイミングからフレーム期間途中の或る時点までの期間とされればよい。
同様にフレーム後端側期間は、必ずしもフレーム後半の16.6msの期間とは限らない。フレーム途中の或る時点からフレーム終端までの期間であればよい。
【0240】
また本発明はパチンコ遊技機1のような弾球遊技機に適用する例を示したが、回胴式遊技機(いわゆるスロット機)にも適用できる。