JP2018191795A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2018191795A
JP2018191795A JP2017096738A JP2017096738A JP2018191795A JP 2018191795 A JP2018191795 A JP 2018191795A JP 2017096738 A JP2017096738 A JP 2017096738A JP 2017096738 A JP2017096738 A JP 2017096738A JP 2018191795 A JP2018191795 A JP 2018191795A
Authority
JP
Japan
Prior art keywords
data
scenario
light emission
effect control
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017096738A
Other languages
English (en)
Other versions
JP6546957B2 (ja
Inventor
純一 神崎
Junichi Kanzaki
純一 神崎
伸美 柴田
Nobuyoshi Shibata
伸美 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Shoji Co Ltd
Original Assignee
Fuji Shoji Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Shoji Co Ltd filed Critical Fuji Shoji Co Ltd
Priority to JP2017096738A priority Critical patent/JP6546957B2/ja
Publication of JP2018191795A publication Critical patent/JP2018191795A/ja
Application granted granted Critical
Publication of JP6546957B2 publication Critical patent/JP6546957B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Pinball Game Machines (AREA)

Abstract

【課題】遊技機における発光制御に要するメモリ消費量の削減を図る。【解決手段】第一発光素子群、第二発光素子群を駆動する第一、第二発光駆動手段と、第一、第二発光駆動手段を制御する演出制御手段と、を備え、演出制御手段は、第一発光素子群の第一発光パターン情報と、第二発光素子群の第二発光パターン情報とが格納された発光パターンテーブルと、複数の点灯データが格納された点灯データテーブルと、を有し、第一、第二発光パターン情報に基づいて、点灯データテーブルに格納された複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより第一、第二発光素子群を発光可能であり、発光パターンテーブルにおいて、第一発光パターン情報と、第二発光パターン情報とで、共通の発光パターン情報である特定発光パターン情報を記憶し、特定発光パターン情報に基づいて点灯データテーブルに格納された特定の点灯データを選択可能としている。【選択図】図36

Description

本発明は弾球遊技機、回胴遊技機などの遊技機に係り、特には遊技機における演出等のための発光制御に関する。
特許第4613191号公報
弾球遊技機(いわゆるパチンコ遊技機)や回胴遊技機(いわゆるスロット遊技機)等では、LED(Light Emitting Diode)等を用いた発光部による点灯・点滅動作により、遊技に付随した演出を行ったり、各種の状況提示、エラー告知、案内表示等を行うものがある。
発光部の動作のためには、例えば演出制御部として機能するマイクロコンピュータが、LEDドライバ回路などに対し駆動データを供給する。LEDドライバには例えば多数のLEDが接続され、LEDドライバは、各LEDに対し、駆動データに応じた発光駆動電流を流すことで発光動作を実行させる。
なお上記特許文献1には、演出制御部がLEDドライバに対し、複数のLEDの発光駆動のための駆動データをシリアルデータとして出力し、LEDドライバがシリアルデータをパラレルデータに変換して、接続された各LEDへ電流供給を行う技術が開示されている。
発光部を用いた演出動作を行う遊技機では、本来の遊技動作の制御に加えて、種々の発光演出動作を実現するための制御も行われる。近年、発光部を用いた発光演出動作は多様化しており、必要な制御データを記憶するためのメモリ消費量が増大する傾向にある。
そこで本発明では、遊技機における発光制御に要するメモリ消費量の削減を図ることを目的とする。
本発明に係る遊技機は、少なくとも第一発光素子群を駆動する第一発光駆動手段と、少なくとも第二発光素子群を駆動する第二発光駆動手段と、前記第一発光駆動手段と前記第二発光駆動手段とを制御する演出制御手段と、を備え、前記演出制御手段は、前記第一発光素子群の発光パターン情報である第一発光パターン情報と、前記第二発光素子群の発光パターン情報である第二発光パターン情報とが少なくとも格納された発光パターンテーブルと、複数の点灯データが格納された点灯データテーブルと、を有し、前記第一発光パターン情報に基づいて、前記点灯データテーブルに格納された前記複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより前記第一発光素子群を発光可能であり、前記第二発光パターン情報に基づいて、前記点灯データテーブルに格納された前記複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより前記第二発光素子群を発光可能であり、前記発光パターンテーブルにおいて、少なくとも前記第一発光パターン情報と、前記第二発光パターン情報とで、共通の前記発光パターン情報である特定発光パターン情報を記憶し、前記特定発光パターン情報に基づいて、前記点灯データテーブルに格納された特定の前記点灯データを選択可能としたものである。
これにより、点灯データの重複格納量を抑制することが可能とされる。
上記した本発明に係る遊技機においては、前記発光パターンテーブルは、所定単位の時間情報に対して、少なくとも前記第一発光パターン情報及び/又は前記第二発光パターン情報が格納されている構成とすることが可能とされる。
これにより、発光パターンテーブルにおける同一の発光パターン情報の重複格納量が抑制される。
本発明によれば、遊技機における発光制御に要するメモリ消費量の削減を図ることができる。
本発明に係る実施形態のパチンコ遊技機の斜視図である。 実施形態のパチンコ遊技機の盤面の正面図である。 第一実施形態のパチンコ遊技機の制御構成のブロック図である。 実施形態のドライバ部の接続構成のブロック図である。 実施形態のドライバ部の内部構成例のブロック図である。 実施形態の主制御メイン処理のフローチャートである。 実施形態の主制御タイマ割込処理のフローチャートである。 実施形態の特別図柄管理処理のフローチャートである。 実施形態の第1特図始動口チェック処理のフローチャートである。 実施形態のコマンドの説明図である。 第一実施形態の演出制御メイン処理のフローチャートである。 第一実施形態の演出制御の1msタイマ割込処理のフローチャートである。 実施形態の演出制御におけるコマンド解析処理のフローチャートである。 実施形態の演出制御におけるコマンド対応処理のフローチャートである。 実施形態の演出制御におけるコマンド対応処理のフローチャートである。 実施形態の演出制御におけるシナリオ登録処理のフローチャートである。 実施形態の演出制御におけるシナリオ削除処理のフローチャートである。 第一実施形態の演出制御におけるシナリオ更新処理のフローチャートである。 第一実施形態のサブシナリオ更新処理のフローチャートである。 実施形態のシナリオ登録情報、ランプデータ登録情報、モータデータ登録情報の説明図である。 実施形態の音データ登録情報の説明図である。 実施形態のメインシナリオテーブルの説明図である。 実施形態のサブシナリオテーブルの説明図である。 LED駆動データ更新処理のフローチャートである。 LED出力処理のフローチャートである。 実施形態のランプデータの登録情報の説明図である。 実施形態のランプデータ及びマスクデータのアドレステーブルの説明図である。 先行例のランプデータテーブル及びマスクデータテーブルの説明図である。 実施形態のランプデータの更新及び出力の説明図である。 実施形態のドライバへ送信するシリアルデータの説明図である。 実施形態の各チャネルへのシリアルデータ送信の説明図である。 実施形態の演出制御部のシリアルデータ送信動作の説明図である。 実施形態の4ビット点灯データの8ビット変換の説明図である。 実施形態のランプデータテーブルの説明図である。 実施形態の変換テーブルの説明図である。 実施形態のLED駆動データ更新処理のフローチャートである。 変形例のランプデータテーブルの説明図である 第二実施形態のパチンコ遊技機の制御構成のブロック図である。 第二実施形態の演出制御手段のブロック図である。 第二実施形態の演出制御手段の表示制御系のブロック図である。 2CPU構成とした場合における演出制御部、液晶制御基板の各機能構成を模式的に表した機能ブロック図である。 1CPU構成とした第二実施形態の演出制御部の機能構成を模式的に表した機能ブロック図である。 第二実施形態の演出制御メイン処理のフローチャートである。 第二実施形態のフレーム終了時処理のフローチャートである。 第二実施形態の演出制御タイマ割込処理のフローチャートである。 表示データのフレーム期間内における各種タイミングを示した図である。 演出制御コマンドと液晶制御コマンドとの対応関係を例示した図である。 演出制御コマンドに対応して定められた各演出要素についてのシナリオデータの例を模式的に表した図である。 演出制御コマンドの受信に応じて第二実施形態の演出制御部が実行する処理の流れを説明するための図である。
以下、本発明に係る遊技機の実施形態としてパチンコ遊技機を例に挙げ、次の順序で説明する。
<1.第一実施形態>
[1-1.パチンコ遊技機の構造]
[1-2.第一実施形態のパチンコ遊技機の制御構成]
[1-3.動作の概要]
−図柄変動表示ゲーム−
−遊技状態−
−当りについて−
[1-4.ドライバ構成及び提示用LED]
[1-5.主制御部の処理]
[1-6.演出制御部の処理]
(1-6-1:メイン処理)
(1-6-2:1msタイマ割込処理)
(1-6-3:コマンド解析処理)
(1-6-4:シナリオ登録・削除処理)
(1-6-5:シナリオ更新処理)
(1-6-6:LED駆動データ更新処理)
−先行例におけるランプデータテーブルの構造−
−LED駆動データ更新処理の続き−
(1-6-7:LED出力処理)
−点灯データのビット変換について−
[1-7.実施形態の発光駆動手法]
(1-7-1.実施形態の発光駆動情報格納手法)
(1-7-2.実施形態のLED駆動データ更新処理)
(1-7-3.発光駆動情報格納手法の変形例)
[1-8.第一実施形態のまとめ及び変形例]
<2.第二実施形態>
[2-1.第二実施形態のパチンコ遊技機の制御構成]
[2-2.演出制御部の構成]
[2-3.演出制御部の機能対比]
[2-4.第二実施形態の演出制御部の処理]
[2-5.演出制御の動作例]
[2-6.第二実施形態のまとめ及び変形例]
<1.第一実施形態>
[1-1.パチンコ遊技機の構造]

まず図1、図2を参照して、本発明の実施形態としてのパチンコ遊技機1の構成を概略的に説明する。
図1は実施形態のパチンコ遊技機1の外観を示す正面側の斜視図であり、図2は遊技盤の正面図である。
図1,図2に示すパチンコ遊技機1は、主に「枠部」と「遊技盤部」から成る。
「枠部」は以下説明する前枠2、外枠4、ガラス扉5、操作パネル7を有して構成される。「遊技盤部」は図2の遊技盤3から成る。以下の説明上で、「枠部」又は「枠側」とは前枠2,外枠4、ガラス扉5、操作パネル7の総称とする。また「盤部」又は「盤側」とは遊技盤3を示す。
図1に示すようにパチンコ遊技機1は、木製の外枠4の前面に額縁状の前枠2が開閉可能に取り付けられている。図示していないが、この前枠2の裏面には遊技盤収納フレームが形成されており、その遊技盤収納フレーム内に図2に示す遊技盤3が装着される。これにより遊技盤3の表面に形成した遊技領域3aが前枠2の開口部2aから図1の遊技機前面側に臨む状態となる。
なお遊技領域3aの前側には、透明ガラスを支持したガラス扉5が設けられており、遊技領域3aは透明ガラスを介して前面の遊技者側に表出される。
ガラス扉5は軸支機構6により前枠2に対して開閉可能に取り付けられている。そしてガラス扉5の所定位置に設けられた図示しない扉ロック解除用キーシリンダを操作することで、前枠2に対するガラス扉5のロック状態を解除し、ガラス扉5を前側に開放できる構造とされている。また扉ロック解除用キーシリンダの操作によっては、外枠4に対する前枠2のロック状態も解除可能な構成とされている。
またガラス扉5の前面側には、枠側の発光手段として発光部20wが各所に設けられている。発光部20wは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
ガラス扉5の下側には操作パネル7が設けられている。この操作パネル7も、図示しない軸支機構により、前枠2に対して開閉可能とされている。
操作パネル7には、上受け皿ユニット8、下受け皿ユニット9、発射操作ハンドル10が設けられている。
上受け皿ユニット8には、弾球に供される遊技球を貯留する上受け皿8aが形成されている。下受け皿ユニット9には、上受け皿8aに貯留しきれない遊技球を貯留する下受け皿9aが形成されている。
また上受け皿ユニット8には、上受け皿8aに貯留された遊技球を下受け皿9a側に抜くための球抜きボタン16が設けられている。下受け皿ユニット9には、下受け皿9aに貯留された遊技球を遊技機下方に抜くための球抜きレバー17が設けられている。
また上受け皿ユニット8には、図示しない遊技球貸出装置に対して遊技球の払い出しを要求するための球貸しボタン14と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン15とが設けられている。
さらに上受け皿ユニット8には、演出ボタン11,12、十字キー13が設けられている。演出ボタン11,12は、所定の入力受付期間中に内蔵ランプが点灯されて操作可能となり、その内蔵ランプ点灯時に押下することにより演出に変化をもたらすことができる押しボタンとされる。また十字キー13は遊技者が演出状況に応じた操作や演出設定等のための操作を行う操作子である。
発射操作ハンドル10は操作パネル7の右端部側に設けられ、遊技者が弾球のために図3に示す発射装置56を作動させる操作子である。
また前枠2の上部の両側と、発射操作ハンドル10の近傍には、演出音を音響出力するスピーカ25が設けられている。
次に図2を参照して、遊技盤3の構成について説明する。遊技盤3は、略正方形状の木製合板または樹脂板を主体として構成されている。この遊技盤3には、発射された遊技球を案内する球誘導レール31が盤面区画部材として環状に装着されており、この球誘導レール31に取り囲まれた略円形状の領域が遊技領域3aとなっている。
この遊技領域3aの略中央部には、液晶表示装置(LCD:Liquid Crystal Display)32が設けられている。
液晶表示装置32では、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。
また遊技領域3a内には、液晶表示装置32の表示面の周囲を囲むように、センター飾り35Cが設けられている。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から液晶表示装置32の表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
また左遊技領域3bの下方には、左下飾り35Lが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また液晶表示装置32の下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
遊技領域3aの右上縁付近には、複数個のLEDを配置して形成されたドット表示器による図柄表示部33が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、液晶表示装置32は、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
センター飾り35Cの下方には、上始動口41(第1の特別図柄始動口)を有する入賞装置が設けられ、さらにその下方には下始動口42a(第2の特別図柄始動口)を備える普通変動入賞装置42が設けられている。
上始動口41及び下始動口42aの内部には、遊技球の通過を検出する検出センサ(図3に示す上始動口センサ71,下始動口センサ72)が形成されている。
上始動口41は、図柄表示部33における第1特別図柄の変動表示動作の始動条件に係る入賞口で、始動口開閉手段(始動口を開放または拡大可能にする手段)を有しない入賞率固定型の入賞装置となっている。
下始動口42aを有する普通変動入賞装置42は、始動口開閉手段により始動口の遊技球の入賞率を変動可能な入賞率変動型の入賞装置として構成されている。即ち下始動口42aを開放または拡大可能にする左右一対の可動翼片(可動部材)42bを備えた、いわゆる電動チューリップ型の入賞装置である。
この普通変動入賞装置42の下始動口42aは、図柄表示部33における第2特別図柄の変動表示動作の始動条件に係る入賞口である。そして、この下始動口42aの入賞率は可動翼片42bの作動状態に応じて変動する。即ち可動翼片42bが開いた状態では、入賞が容易となり、可動翼片42bが閉じた状態では、入賞が困難又は不可能となるように構成されている。
また普通変動入賞装置42の左右には、一般入賞口43が複数個設けられている。各一般入賞口42の内部には、遊技球の通過を検出する検出センサ(図3に示す一般入賞口センサ74)が形成されている。
また右遊技領域3cの下部側には、遊技球が通過可能なゲート(特定通過領域)からなる普通図柄始動口44が設けられている。この普通図柄始動口44は、図柄表示部33における普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出するセンサ(図3に示すゲートセンサ73)が形成されている。
右遊技領域3c内の普通図柄始動口44から普通変動入賞装置42へかけての流下経路途中には第1特別変動入賞装置45(特別電動役物)が設けられている。
第1特別変動入賞装置45は、突没式の開放扉45bにより第1大入賞口45aを閉鎖/開放する構造とされている。また、その内部には第1大入賞口45aへの遊技球の通過を検出するセンサ(図3の第1大入賞口センサ75)が形成されている。
第1大入賞口45aの周囲は、右下飾り35Rが遊技盤3の表面から膨出した状態となっており、その膨出部分の上辺及び開放扉45bの上面が右流下経路3cの下流案内部を形成している。従って、開放扉45bが盤内部側に引き込まれることで、下流案内部に達した遊技球は容易に第1大入賞口45aに入る状態となる。
また普通変動入賞装置42の下方には、第2特別変動入賞装置46(特別電動役物)が設けられている。第2特別変動入賞装置46は、下部が軸支されて開閉可能な開放扉46bにより、その内側の第2大入賞口46aを閉鎖/開放する構造とされている。また、その内部には第2大入賞口46aへの遊技球の通過を検出するセンサ(図3の第2大入賞口センサ76)が形成されている。
開放扉46bが開かれることで第2大入賞口46aが開放される。この状態では、左遊技領域3b或いは右遊技領域3cを流下してきた遊技球は、高い確率で第2大入賞口50に入ることとなる。
以上のように盤面の遊技領域には、入賞口として上始動口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から排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、ゲートを遊技球が通過したりすることをいう。実際には入賞口ごとに形成されたセンサ(各入賞検出スイッチ)により遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。
以上のような盤面において、センター飾り35C、左下飾り35L、右下飾り35R、センターステージ35S、第1特別変動入賞装置45、第2特別変動入賞装置46、さらには図示していない可動体役物には、詳細には図示していないが各所に、盤側の発光手段として例えばLEDによる発光部20bが設けられている。
発光部20bは演出用の発光動作やエラー告知用の発光動作、動作状態に応じた発光動作などを行う。
以下では説明上、盤側の発光部20w、枠側の発光部20bを「演出用発光部」と表記する場合がある。
[1-2.第一実施形態のパチンコ遊技機の制御構成]

次に本実施形態のパチンコ遊技機1の制御系の構成について説明する。図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、液晶制御基板52、払出制御基板53、発射制御基板54、電源基板58が設けられている。
主制御基板50は、マイクロコンピュータ等が搭載され、パチンコ遊技機1の遊技動作全般に係る統括的な制御を行う。なお以下では、主制御基板50に搭載されたマイクロコンピュータ等を含めて主制御基板50の構成体を「主制御部50」と表記する。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力、可動体役物を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
液晶制御基板52はマイクロコンピュータやビデオプロセッサ等が搭載され、演出制御部51からの表示制御コマンドを受けて、液晶表示装置32による表示動作の制御を行う。
払出制御基板53は、パチンコ遊技機1に接続された遊技球払出装置55による賞球の払い出し制御を行う。
発射制御基板54は、遊技者のパチンコ遊技機1に設けられている発射装置56による遊技球の発射動作の制御を行う。
電源基板58は、外部電源(例えばAC24V)からAC/DC変換、さらにはDC/DC変換を行い、各部に動作電源電圧Vccを供給する。なお電源経路の図示は省略している。
まず主制御部50及びその周辺回路について述べる。
主制御部50は、CPU100(以下「主制御CPU100」と表記)を内蔵したマイクロプロセッサ、ROM101(以下「主制御ROM101」と表記)、RAM102(以下「主制御RAM102」と表記)を搭載し、マイクロコンピュータを構成している。
主制御CPU100は制御プログラムに基づいて、遊技の進行に応じた各種演算及び制御処理を実行する。
主制御ROM101は、主制御CPU100による遊技動作の制御プログラムや、遊技動作制御に必要な種々のデータを記憶する。
主制御RAM102は、主制御CPU100が各種演算処理に使用するワークエリアや、各種入出力データや処理データのバッファ領域として用いられる。
なお図示は省略したが、主制御部50は、各部とのインターフェース回路、特別図柄変動表示に係る抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC(Counter Timer Circuit)、主制御CPU100に割込み信号を与える割込コントローラ回路なども備えている。
主制御部50は、上述のように盤面の遊技領域の各入賞手段(上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43)に設けられるセンサの検出信号を受信する構成となっている。
即ち、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号が主制御部50に供給される。
なお、これらのセンサ(71〜76)は、入球した遊技球を検出する検出スイッチにより構成されるが、具体的にはフォトスイッチや近接スイッチなどの無接点スイッチや、マイクロスイッチなどの有接点スイッチで構成することができる。
主制御部50は、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号の受信に応じて、処理を行う。例えば抽選処理、図柄変動制御、賞球払出制御、演出制御コマンド送信制御、外部データ送信処理などを行う。
また主制御部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の開放動作を実行させる。
また主制御部50には、図柄表示部33が接続されており、図柄表示部33に制御信号を送信して、各種図柄表示(LEDの消灯/点灯/点滅)を実行させる。これにより図柄表示部33における第1特別図柄表示部80、第2特別図柄表示部81、普通図柄表示部82での表示動作が実行される。
また主制御部50には、枠用外部端子基板57が接続される。主制御部50は、遊技進行に関する情報を、枠用外部端子基板57を介して図示しないホールコンピュータに送信可能となっている。遊技進行に関する情報とは、例えば大当り当選情報、賞球数情報、図柄変動表示実行回数情報などの情報である。ホールコンピュータとは、パチンコホールの遊技機を統括的に管理する管理コンピュータであり、遊技機外部に設置されている。
また主制御部50には、払出制御基板53が接続されている。払出制御基板53には、発射装置56を制御する発射制御基板54と、遊技球の払い出しを行う遊技球払出装置55が接続されている。
主制御部50は、払出制御基板53に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信する。払出制御基板53は当該制御コマンドに応じて遊技球払出装置55を制御し、遊技球の払い出しを実行させる。
また払出制御基板53は、主制御部50に対して、払い出し動作状態に関する情報(払出状態信号)を送信可能となっている。主制御部50側では、この払出状態信号によって、遊技球払出装置55が正常に機能しているか否かを監視する。具体的には、賞球の払い出し動作の際に、玉詰まりや賞球の払い出し不足といった不具合が発生したか否かを監視している。
また主制御部50は、特別図柄変動表示に関する情報を含む演出制御コマンドを、演出制御部51に送信する。なお、主制御部50から演出制御部51への演出制御コマンドの送信は一方向通信により実行されるようにしている。これは、外部からの不正行為による不正な信号が演出制御部51を介して主制御部50に入力されることを防止するためである。
続いて演出制御部51及びその周辺回路について説明する。
演出制御部51は、CPU200(以下「演出制御CPU200」と表記)を内蔵したマイクロプロセッサ、ROM201(以下「演出制御ROM201」と表記)、RAM202(以下「演出制御RAM202」と表記)を搭載し、マイクロコンピュータを構成している。
演出制御CPU200は演出制御プログラム及び主制御部50から受信した演出制御コマンドに基づいて、各種演出動作のための演算処理や各演出手段の制御を行う。演出手段とは、本実施形態のパチンコ遊技機1の場合、液晶表示装置32、発光部20w、20b、スピーカ25、及び図示を省略した可動体役物となる。
また演出制御CPU200は各種の状況提示のための制御も行う。
演出制御ROM201は、演出制御CPU200による演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM202は、演出制御CPU200が各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域などとして用いられる。
なお図示は省略したが、演出制御部51は、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、演出制御CPU200に割込み信号を与える割込コントローラ回路、音響演出のための音源ICなども備えている。
この演出制御部51の主な役割は、主制御部50からの演出制御コマンドの受信、演出制御コマンドに基づく演出の選択決定、液晶制御基板52側への液晶制御コマンドの送信、スピーカ45の音声出力制御、発光部20w、20b(LED)の発光制御、可動体役物の動作制御などとなる。
演出制御部51は、液晶制御基板52側への液晶制御コマンドの送信を行うが、その液晶制御コマンドは、液晶インターフェース基板66を介して液晶制御基板52に送られる。
液晶制御基板52は、液晶表示装置32の表示制御を行う。図示していないが、液晶制御基板52には、VDP(Video Display Processor)、画像ROM、VRAM(Video RAM)、液晶制御CPU、液晶制御ROM、液晶制御RAMを備えている。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う。
画像ROMには、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されている。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域とされる。
液晶制御CPUは、VDPが表示制御を行うために必要な制御データを出力する。
液晶制御ROMには、液晶制御CPUの表示制御動作手順を記述したプログラムやその表示制御に必要な種々のデータが格納される。
液晶制御RAMは、ワークエリアやバッファメモリとして機能する。
液晶制御基板52は、これらの構成により、演出制御基板51からの液晶制御コマンドに基づいて各種の画像データを生成し、液晶表示装置32に出力する。これによって液晶表示装置32において各種の演出画像が表示される。
具体的に、液晶制御基板52の液晶制御CPUは、演出制御部51が主制御部50からの受信コマンドを解析して得た液晶制御コマンドを取得し、該液晶制御コマンドについての解析を行い、解析結果に基づき液晶制御用のシナリオデータ(演出進行データ)の作成、及び該シナリオデータに基づく画像データの生成を行い、液晶表示装置32に出力する。
また演出制御部51には枠ドライバ部61、盤ドライバ部62が接続されている。
枠ドライバ部61は、枠側のランプ部63のLEDについて発光駆動を行う。なお、ランプ部63とは、図1に示したように枠側に設けられている発光部20wを総括的に示したものである。
盤ドライバ部62は、盤側のランプ部64のLEDについて発光駆動を行う。なお、ランプ部64とは、図2に示したように盤側に設けられている発光部20bを総括的に示したものである。
また演出制御部51にはモータドライバ部70が接続されている。
モータドライバ部70は可動体役物モータ65を駆動して、盤側に設けられている可動体役物の動作を実行させる。
可動体役物モータ65は例えばステッピングモータが用いられる。
本実施形態の場合、枠ドライバ部61は第1系統の駆動信号出力手段、盤ドライバ部62は第2系統の駆動信号出力手段、モータドライバ部70は第3系統の駆動信号出力手段である。
詳しくは図4を用いて後述するが、本実施形態の場合、演出制御部51(演出制御CPU200)は、シリアルデータ送信チャネルch1,ch2,ch3を用いて、発光駆動データやモータ駆動データをシリアルデータとして、枠ドライバ部61、盤ドライバ部62、モータドライバ部70に出力する。
なお例えば盤ドライバ部62の一部が、モータドライバ部70としての動作を行うことで、ランプ部64の各LEDと可動体役物モータ65の駆動を行うようにしてもよい。
また演出制御部51は、スピーカ25により所望の音を出力させるべく、音源IC59に対する制御を行う。音源IC59には音データROM69が接続されており、音源IC59は音データROM69から必要な音データ(再生するフレーズの音データ)を取得して音声信号出力を行う。
音源IC59は、複数チャネルのフレーズをミキシングして所定本数(チャネル数)の音声信号を得る。図1に示したように、本例の場合、スピーカ25は複数設けられるため、音源IC59の出力チャネル数は例えばLch,Rchの2チャネルなど(ステレオ出力)が可能となる。上記のミキシングにより、演出制御部51より再生指示された複数チャネルのフレーズを同時再生可能とされる。
音源IC59による出力音声信号はアンプ部67で増幅された後、スピーカ25に対して与えられる。
なお、図3では図示の都合上、音源IC59の出力チャネル数を1つとしているが、実際にはアンプ部67及びスピーカ25としては、例えばLch、Rchに対応した出力チャネルがそれぞれ設けられ、ステレオによる音再生が可能とされる。
また、この例では音源IC59を演出制御部51とは別体に設けるものとしたが、音源IC59は演出制御部51内に設けることもできる。
また演出制御部51には、遊技者が操作可能な操作部60が接続され、操作部60からの操作検出信号を受信可能となっている。この操作部60は、図1で説明した演出ボタン11,12、十字キー13と、それらの操作検出機構のことである。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
演出制御部51は、主制御部50から送られてくる演出制御コマンドに基づき、あらかじめ用意された複数種類の演出パターンの中から抽選によりあるいは一意に演出パターンを決定し、必要なタイミングで各種演出手段を制御する。これにより、演出パターンに対応する液晶表示装置32による演出画像の表示、スピーカ25からの音の再生、ランプ部63、64(発光部20w、20b)におけるLEDの点灯点滅駆動、可動体役物モータ65による可動体役物の動作が実現され、時系列的に種々の演出パターンが展開されていく。これにより「演出シナリオ」が実現される。
なお演出制御コマンドは、1バイト長のモード(MODE)と、同じく1バイト長のイベント(EVENT)からなる2バイト構成により機能を定義する。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
これらの情報を有効なものとして送信する場合、モード(MODE)およびイベント(EVENT)各々に対応してストローブ信号が出力される。すなわち、主制御CPU100は、送信すべきコマンドがある場合、演出制御部51にコマンドを送信するためのモード(MODE)情報の設定および出力を行い、この設定から所定時間経過後に1回目のストローブ信号の送信を行う。さらに、このストローブ信号の送信から所定時間経過後にイベント(EVENT)情報の設定および出力を行い、この設定から所定時間経過後に2回目のストローブ信号の送信を行う。
ストローブ信号は主制御CPU100により、演出制御CPU200が確実にコマンドを受信することが可能な所定期間アクティブ状態に制御される。
また演出制御部51(演出制御CPU200)は、ストローブ信号の入力に基づいて割込を発生させてコマンド受信割込処理用の制御プログラムを実行し、この割込処理において演出制御コマンドが取得される。
[1-3.動作の概要]

パチンコ遊技機1の動作の概説について説明する。

−図柄変動表示ゲーム−

パチンコ遊技機1では、所定の始動条件、具体的には、遊技球が上始動口41または下始動口42に入賞したことを条件に、主制御部50において乱数抽選による大当り抽選が行なわれる。この抽選結果に基づき、特別図柄(大当り抽選結果を報知するための識別図柄)を第1特別図柄表示部80または第2特別図柄表示部81に変動表示させて特別図柄変動表示ゲームを開始し、一定時間経過後に、その結果を特別図柄表示部(80又は81)に表示する。
本実施形態では、上始動口41への入賞に基づく大当り抽選と下始動口42への入賞に基づく大当り抽選とは、独立して行われる。このため、上始動口41に関する大当り抽選結果は第1特別図柄表示部80側、下始動口42に関する大当り抽選結果は第2特別図柄表示部81側で導出表示されるようになっている。
なお説明上、第1特別図柄表示部80側の特別図柄変動表示ゲームを「第1特別図柄変動表示ゲーム」、第2特別図柄表示部81側の特別図柄変動表示ゲームを「第2特別図柄変動表示ゲーム」と称する。但し、第1,第2特別図柄を総称して「特別図柄」と表記し、また第1,第2特別図柄変動表示ゲームを「特別図柄変動表示ゲーム」と総称する。
特別図柄変動表示ゲームが開始されると、これに伴い、装飾図柄(遊技図柄)を液晶表示装置32に変動表示させる装飾図柄変動表示ゲームが開始され、これに付随して種々の演出が現出される。そして、第1,第2特別図柄表示部(80、81)に抽選結果が表示されると、液晶表示装置32にも装飾図柄によりその結果が表示される。すなわち、この装飾図柄変動表示ゲームでは、特別図柄変動表示ゲームでの抽選結果を反映させた演出表示、つまり大当り抽選結果を反映させた演出が現出される。
例えば特別図柄変動表示ゲームの結果が「大当り」である場合、装飾図柄変動表示ゲームの結果も「大当り」を反映させた演出となる。また、特別図柄表示部(80、81)には、大当りを示す特別図柄が所定の表示態様で停止表示され、液晶表示装置32には、「左」「中」「右」の各表示エリアにおいて、当り有効ライン上で装飾図柄が大当り抽選結果を反映させた所定の表示態様(例えば「左」「中」「右」の各表示エリアにおいて、3個の装飾図柄が「7」「7」「7」の表示状態)で停止表示される。
この「大当り」となった場合、例えば第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79が駆動され、第1大入賞口45又は第2大入賞口46の所定パターンでの開放動作が実行され、通常遊技状態よりも遊技者に有利な特別遊技状態(大当り遊技)が発生する。この大当り遊技では、大入賞口の開放時間が所定時間経過するまでか、または大入賞口に所定個数の遊技球が入賞するまで開放され、いずれかを満たしたことを条件に大入賞口が所定時間閉鎖される、といったラウンド遊技があらかじめ定められた規定回数、繰り返される。
大当り遊技が開始されると、最初に大当りが開始された旨を報知するオープニング演出が行われ、オープニング演出が終了した後、上記ラウンド遊技が規定ラウンド数、行われる。また、ラウンド遊技中は、各ラウンド対応するラウンド演出が行われる。そして、規定ラウンド数終了後には、大当りが終了される旨を報知するエンディング演出が行われ、これにより大当り遊技が終了する。
このように、特別図柄変動表示ゲームと装飾図柄変動表示ゲームとは、その図柄遊技時間(変動表示の開始タイミングから停止表示のタイミング)とがほぼ同じとなり、特別図柄変動表示ゲームの結果を反映したものが装飾図柄変動表示ゲームにおいて表現されることとしているので、この2つの図柄変動表示ゲームを等価的な図柄遊技と捉えることもできる。説明上、上記2つの図柄変動表示ゲームを単に「図柄変動表示ゲーム」と称する場合がある。
また、遊技球がゲート44(普通図柄始動口)を通過したことに基づき、主制御部50において乱数抽選による補助当り抽選が行なわれる。この抽選結果に応じて普通図柄表示部82のLEDにより表現される普通図柄を変動表示させて普通図柄変動表示ゲームを開始し、所定時間経過後に、その結果をLEDの点灯と非点灯の特定の組合せにて停止表示する。
そして「補助当り」となった場合には、普通電動役物ソレノイド77が作動し、可動翼片42bが開いて下始動口42が開放または拡大されて遊技球が流入し易い状態(始動口開状態)となり、通常遊技状態よりも遊技者に有利な補助遊技状態(以下、「普電開放遊技」と称する)が発生する。この普電開放遊技では、可動翼片42bが所定時間(例えば0.2秒)開放されるか、または所定個数(例えば4個)の遊技球が入賞するまで開放され、その後、所定時間(例えば0.5秒)可動翼片42bが閉まる、といった動作が所定回数繰り返される。なお、普電開放遊技中に遊技球が下始動口42に入賞した場合にも、同様に上記特別図柄変動表示ゲームが行なわれ、これに伴い装飾図柄変動表示ゲームが行なわれる。
ここで、特別図柄変動表示ゲーム中、普通図柄変動表示ゲーム中、大当り遊技中、または普電開放遊技などの最中に、さらに上始動口センサ71または下始動口センサ72もしくはゲートセンサ73からの検出信号の入力があり、始動条件が成立した場合には、この検出信号に基づいて当り抽選に利用する遊技情報を取得し、これを、各変動表示ゲームを行わせるための始動権利に係るデータ(保留データ)として、変動表示中にかかわるものを除き、所定の上限値である最大保留記憶数(例えば最大4個)まで保留記憶可能となっている。この保留数を遊技者に明らかにするため、保留数表示部20Hや液晶表示装置32による画面中にアイコン画像として設けた保留表示器を点灯表示させる。
通常は、この保留球の発生順に、各保留球に対する変動表示ゲームが実行される。本実施形態では、最大保留記憶個数と同数の4個を上限の所定個数として扱い、第1特別図柄、第2特別図柄に関する保留データをそれぞれ4個まで記憶し、特別図柄または普通図柄の変動確定回数として保留する。
−遊技状態−

本実施形態のパチンコ遊技機1では、複数種類の遊技状態を発生可能に構成されている。
まず、本実施形態のパチンコ遊技機1は、主制御部50(CPU100)がその機能部を担う「確率変動(以下、「確変」と称する)機能」を備えている。これには特別図柄に係る確変機能(以下「特別図柄確変機能」と称する)と普通図柄に係る確変機能(以下「普通図柄確変機能」と称する)の2種類がある。
特別図柄確変機能は、大当りの抽選確率を所定確率(通常確率)の低確率(例えば399分の1)から高確率(例えば39.9分の1)に変動させて、通常遊技状態よりも有利な「高確率状態」を発生させる機能である。この高確率状態下では、大当り抽選確率が高確率となることから、大当りが生起され易くなる。
普通図柄確変機能は、補助当り抽選確率が所定確率(通常確率)である低確率(例えば256分の1)から高確率(例えば256分の255)に変動させて、通常遊技状態よりも有利な「補助当り確変状態」を発生させる機能である。この補助当り確変状態下では、補助当り抽選確率が高確率状態となることから補助当りが生起され易くなり、普電開放遊技が頻繁に発生して、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
また、本実施形態のパチンコ遊技機1は、主制御部50がその機能部を担う「変動時間短縮(以下「時短」と称する)機能」を備えている。これには特別図柄に係る時短機能(以下、「特別図柄時短機能」と称する)と普通図柄に係る時短機能(以下、「普通図柄時短機能」と称する)の二種類がある。
特別図柄時短機能は、1回の特別図柄変動表示ゲームに要する平均時間(特別図柄が変動を開始してから確定表示される迄の時間。つまり、特別図柄の変動時間)を短縮した「特別図柄時短状態」を発生させる機能である。特別図柄時短状態下では、1回の特別図柄変動表示ゲームにおける特別図柄の平均的な変動時間が短縮され、通常遊技状態よりも単位時間当りの大当り抽選回数が向上する抽選回数向上状態となる。
なお、パチンコ遊技機1では、特別図柄の変動表示時間が保留数の違いにより短縮される場合があるが、この場合は、特別図柄時短状態が発生しているわけではなく、他の制御処理によるものである。
普通図柄時短機能は、1回の普通図柄変動表示ゲームに要する平均時間(普通図柄が変動を開始してから確定表示されるまでの時間。つまり、普通図柄の変動時間)を短縮した「普通図柄時短状態」を発生させる機能である。普通図柄時短状態下では、1回の普通図柄変動表示ゲームにおける普通図柄の平均的な変動時間が短縮され、通常遊技状態よりも単位時間当りの補助当り抽選回数が向上する抽選回数向上状態となる。
また本実施形態のパチンコ遊技機1は、主制御部50がその機能部を担う「開放延長機能」を備えている。
開放延長機能は、可動翼片42bを開動作させる期間およびその開放回数を延長した「開放延長状態」を発生させる機能である。この開放延長状態は、いわゆる「電チューサポート状態」と称される。開放延長状態下では、可動翼片42bの開動作期間(始動口開状態時間)が、例えば0.2秒から1.7秒に延長され、またその開閉回数が、例えば1回から2回に延長され、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
以上のような各機能を1または複数種類作動させることにより、遊技機の内部的な遊技状態に変化をもたらすことができる。
ここで本実施形態では、普通図柄確変機能、普通図柄時短機能、および開放延長機能の作動開始条件は、特別図柄時短機能の作動開始条件と同じ条件としており、各機能が同じ契機にて動作することになる。
−当りについて−

本実施形態のパチンコ遊技機1では、特別図柄変動表示ゲームにて抽選される当りの種類、つまり大当り抽選対象となる当り種別として、「15R低ベース非確変大当り」、「15R低ベース確変α大当り」、「15R低ベース確変β大当り」、「15R高ベース確変大当り」、「2R低ベース確変大当り」、および「小当り」などの複数種類の当りが設けられている。
[1-4.ドライバ構成及び提示用LED]

続いて、第1の実施形態としてのドライバ構成を説明する。上述した演出制御部51のシリアルデータ送信チャネルch1,ch2,ch3により発光駆動データやモータ駆動データがシリアルデータとして供給される枠ドライバ部61(第1系統)、盤ドライバ部62(第2系統)、モータドライバ部70(第3系統)の構成である。
図4に演出制御部51に接続される枠ドライバ部61、盤ドライバ部62、モータドライバ部70を示した。
第1系統の駆動信号出力手段である枠ドライバ部61は、n個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch1に対して並列に接続されている。
シリアルデータ出力チャネルch1の信号線としては、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、発光駆動データ(「LED駆動データ」ともいう)としてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、枠ドライバ部61を構成するn個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
枠ドライバ部61の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスIDが設定されている。即ち個々のLEDドライバ90の識別子である。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をw1〜w(n)と表記する。
また第2系統の駆動信号出力手段である盤ドライバ部62は、m個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch2に対して並列に接続されている。
シリアルデータ出力チャネルch2の信号線もチャネルch1と同様、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、発光駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、盤ドライバ部62を構成するm個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
盤ドライバ部62の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のLEDドライバ90の識別子)が設定されている。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をb1〜b(m)と表記する。
また第3系統の駆動信号出力手段であるモータドライバ部70は、p個のモータドライバ90Mが、演出制御CPU200のシリアルデータ出力チャネルch3に対して並列に接続されている。
シリアルデータ出力チャネルch3の信号線も同様に、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、モータ駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、モータドライバ部70を構成するp個のモータドライバ90Mに対して各信号を並列に供給するように接続されている。
モータドライバ部70の各モータドライバ90Mには、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のモータドライバ90Mの識別子)が設定されている。説明上、仮に、図示のように各モータドライバ90MのデバイスID(スレーブアドレス)をmt1〜mt(p)と表記する。
枠ドライバ部61及び盤ドライバ部62における各LEDドライバ90としては、例えば24チャネルLEDドライバである「LV5236V(三洋半導体株式会社製)」を用いることができ、24個の電流端子を備える。従って1つのLEDドライバ90によっては、最大24個の系列に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の系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
図5AにLEDドライバ90の要部の概略構成例を示す。
LEDドライバ90は、シリアルバスインターフェース91、アドレス設定部92、データバッファ/PWMコントローラ93、D/A変換器94、駆動電流源回路95−1〜95−24を備える。
駆動電流源回路95−1〜95−24は、上記の24系列の駆動電流出力を、それぞれ電流端子96−1〜96−24から行う電流源である
このLEDドライバ90には、シリアルバスインターフェース91に対し、演出制御CPU200からのイネーブル信号ENABLE、クロック信号CLK、シリアルデータDATAが入力される。シリアルバスインターフェース91は、イネーブル信号ENABLEで規定される期間に、クロック信号CLKのタイミングでシリアルデータDATAを取り込む。シリアルバスインターフェース91は、取り込んだシリアルデータをパラレルデータに変換してデータバッファ/PWMコントローラ93に転送する。
なおシリアルデータの形式については図30で後述するが、演出制御CPU200はスレーブアドレスを指定してLED駆動データを送信してくる。
データバッファ/PWMコントローラ93は、シリアルバスインターフェース91から転送されたパラレルデータについて、スレーブアドレス確認を行う。パラレルデータに含まれるスレーブアドレスが、アドレス設定部92に設定された自己のスレーブアドレス(w1〜w(n)、b1〜b(m)のいずれか)と一致していることを確認した場合に、該パラレルデータに含まれるLED駆動データを有効なデータとして、指定されたレジスタに格納する。
データバッファ/PWMコントローラ93は、各系列のLED駆動データを取り込んだら、そのLED駆動データで示された輝度情報(階調値)に応じた値を、24系列の各駆動制御値としてD/A変換器94に出力する。
D/A変換器94は、輝度情報に応じた値をアナログ信号に変換し、各電流源回路95−1〜95−24への制御信号とする。
電流端子96−1〜96−24の全部(又は一部)には24系列のLED120が接続される。
各系列(電流端子96−1〜96−24)では、LED120及び抵抗Rの直列接続に対して電源電圧Vccが印加される。電流源回路95−1〜95−24によって各系列のLED120に電流が流され、発光が行われる。
即ち各電流源回路95−1〜95−24は、D/A変換器94から供給された信号に応じた電流量の駆動電流を、対応する系列のLED120に流すように動作する。
このようなLED駆動制御を、1つの系列について具体的にいうと、データバッファ/PWMコントローラ93は、当該系列の階調値に応じたパルスデューティに相当するデジタルデータ列をD/A変換器94に出力し、D/A変換器94は、デジタルデータ列をアナログ信号としてのパルス信号に変換して当該系列の電流源回路95に供給する。電流源回路95はパルス信号のH/Lにより出力制御され、例えば0mAと5mAの電流出力を行う。例えばこのような動作で、結果的に階調値に応じた平均電流値となる駆動電流がLED120に流れることとなる。
なお、本実施形態では、PWM駆動方式により、電流値が例えば0mAと5mAとされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
モータドライバ部70における各モータドライバ90Mについても、LEDドライバ90と同様の構成でよい。例えば同じく「LV5236V(三洋半導体株式会社製)」を用いることができる。
モータドライバ部70におけるモータドライバ90Mの数pは、可動体役物のモータ数によって決められる。従ってpは1の場合もあるし、2以上の場合もある。モータドライバ部70は1又は複数のモータドライバ90Mを有する。
モータドライバ90Mには、可動体役物を駆動する可動体役物モータ65が接続される。
図5Bに、或るモータドライバ90Mの電流端子96−1〜96−24の全部(又は一部)に可動体役物モータ65としての例えばステッピングモータ121が接続された例を示している。図5Bは電流端子96−1〜96−24の部分のみを示しているが、モータドライバ90Mの内部構成は図5Aと同様である。
ここでは4相のステッピングモータ121に対してそれぞれ、電流端子96−1〜96−4、電流端子96−5〜96−8、・・・電流端子96−21〜96−24により駆動電流を供給する構成例を示している。
図5Aに示した構成のドライバは、与えられたコマンド(シリアルデータ)によって指示される電流を電流端子96−1〜96−24から出力する回路であることから、図5Bのようにステッピングモータやソレノイド等の物理的可動体駆動デバイスに対するモータドライバ90Mとしても使用することができる。
可動体役物の動作は演出シナリオによって細かく設定され、それに応じて演出制御部51は駆動方向や駆動量などを制御するわけであるが、モータドライバ部70におけるモータドライバ90Mを利用して可動体役物を駆動することで、ランプ部64の各発光部(LED20b)とともにシリアルデータによる可動体役物制御が可能となり、制御処理及び構成が効率化できる。
なお、1つのLEDドライバ90において、一部の電流端子がLED駆動に用いられ、他の一部の電流端子がステッピングモータやソレノイド等の駆動に用いられるという手法を採っても良い。
以上のように、LEDドライバ90は、演出制御CPU200から受信したシリアルデータDATAに応じて、指定された輝度で各LED120が発光されるように駆動することとなる。またモータドライバ90Mは、シリアルデータDATAに応じて、ステッピングモータ121を駆動する。
そして第1系統、第2系統、第3系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62、モータドライバ部70)には、それぞれが1又は複数の演出手段に駆動信号を出力する複数のLEDドライバ90又はモータドライバ90Mが含まれ、1つの系統内の各LEDドライバ90やモータドライバ90Mには、演出制御部51からのシリアルデータが、並列に送信される構成とされている。そして各LEDドライバ90やモータドライバ90Mは、自己のID(スレーブアドレス)が含まれる駆動データ(シリアルデータ)を取得する。
後述するが本実施形態では、演出制御部51(演出制御CPU200)は、発光制御に関しては、一送信単位のシリアルデータを、第1系統、第2系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62)に対して略同時的に出力し、該送信単位のシリアルデータについての、枠ドライバ部61、盤ドライバ部62に対する送信完了後に、次の一送信単位のシリアルデータを、枠ドライバ部61、盤ドライバ部62に対して略同時的に出力する送信処理を行うようにしている。
[1-5.主制御部の処理]

以下、本実施形態の制御処理につき説明する。まずここでは主制御部(主制御基板)50によるメイン処理について述べる。
図6は、主制御部50のメイン処理を示すフローチャートである。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチ(図示せず)が操作されることなく電源がON状態になる場合と、初期化スイッチがON操作されて電源がON状態になる場合とがある。いずれの場合でも、パチンコ遊技機1に電源が投入されると、電源基板58によって各制御基板に電圧が供給される。この場合に主制御部50(主制御CPU100)は図6に示すメイン処理を開始する。
この主制御側メイン処理において、主制御CPU100はステップS11で、まず遊技動作開始前における必要な初期設定処理を実行する。例えば最初に自らを割込み禁止状態に設定すると共に、所定の割込みモード(割込みモード2)に設定し、またマイクロコンピュータの各部を含めてCPU内部のレジスタ値を初期設定する。
次に主制御CPU100はステップS12で、図示してない入力ポートを介して入力されるRAMクリアスイッチの出力信号であるRAMクリア信号の状態(ON、OFF)を判定する。RAMクリア信号とは、RAMの全領域を初期設定するか否かを決定する信号である。RAMクリア信号としては通常、パチンコ店の店員が操作する初期化スイッチのON/OFF状態に対応した値を有している。
RAMクリア信号がON状態であった場合、主制御CPU100は処理をステップS12からS16に進め、RAMの全領域のゼロクリアを行う。したがって、電源遮断時にセットされたバックアップフラグの値は、他のチェックサム値などと共にゼロとなる。
続いてステップS17で主制御CPU100は、RAM領域がゼロクリアされたことを報知するための「RAMクリア表示コマンド」を初期化コマンドとして各制御基板に送信する。そしてステップS18で、RAMクリア報知タイマに、RAMクリアされた旨を報知するための時間として、例えば30秒を格納する。
次に主制御CPU100はステップS19で、タイマ割込み動作を起動する割込み信号を出力するCTCを初期設定して、CPUを割込み許可状態に設定する。
その後はステップS20、S21、S22の処理として、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、各種乱数更新処理を実行する。このステップS21の各種乱数更新処理では、特別図柄変動表示や普通図柄変動表示に使用される各種乱数の初期値(スタート値)変更のために使用する乱数や、変動パターンの選択に利用される変動パターン用乱数を更新する。
なお、特別図柄変動表示や普通図柄変動表示に使用される各種乱数とは、例えばインクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数)などである。また初期値変更のために使用する乱数とは、特別図柄判定用初期値乱数、補助当り判定用初期値乱数などである。
主制御RAM102には大当り抽選に係る図柄抽選、補助当り抽選、または変動パターン抽選などに利用される各種の乱数カウンタとして、特別図柄判定用乱数カウンタ初期値の生成用カウンタ、特別図柄判定用乱数カウンタ、補助当り判定用乱数カウンタ初期値の生成用カウンタ、補助当り判定用乱数カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどが設けられている。これらのカウンタは、ソフトウェア的に乱数を生成する乱数生成手段としての役割を果たす。
ステップS21の各種乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどを更新して、上記各種のソフト乱数を生成する。例えば変動パターン用乱数1カウンタとして取り得る数値範囲が0〜238とすると、主制御RAM102の変動パターン用乱数1の値を生成するためのカウント値記憶領域から値を取得し、取得した値に1を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に1を加算した結果が239であれば0を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。主制御CPU100は、間欠的に実行されるタイマ割込処理を行っている間を除いて、各種乱数更新処理を繰り返し実行するようになっている。
以上はステップS12でRAMクリアスイッチONと判定された場合について述べた。RAMクリアスイッチOFFの場合を続いて説明する。例えば停電状態からの復旧時には、初期化スイッチ(RAMクリア信号)はOFF状態である。このような場合、主制御CPU100はステップS12からS13に処理を進め、バックアップフラグ値を判定する。なお、バックアップフラグは、電源遮断時にON状態に設定され、電源復帰後の最初のタイマ割込み処理でOFF状態にリセットされるよう構成されている。
したがって、電源投入時や停電状態からの復旧時である場合には、通常では、バックアップフラグがON状態のはずである。ただし、何らかの理由で電源遮断までに所定の処理が完了しなかったような場合には、バックアップフラグはリセット(OFF)状態になる。そこで、バックアップフラグがOFF状態である場合には、主制御CPU100は処理をステップS13からS16に進め、遊技機の動作を初期状態に戻す。
一方、バックアップフラグがON状態であれば、主制御CPU100は処理をステップS13からS14に進め、チェックサム値を算出するためのチェックサム演算を実行する。ここで、チェックサム演算とは、主制御RAM102のワーク領域を対象とする8ビット加算演算である。
そして、チェックサム値が算出されたら、この演算結果を、主制御RAM102のSUM番地の記憶値と比較をする。このSUM番地には、電源遮断時に、同じチェックサム演算によるチェックサム値が記憶されている。そして、記憶された演算結果は、主制御RAM102の他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップS14の判定によって両者が一致するはずである。
しかし、電源遮断時にチェックサム演算が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算の実行時までの間に、ワーク領域のデータが破損している場合もある。このような場合にはステップS14の判定結果は不一致となる。
判定結果の不一致によりデータ破損が検出された場合には、主制御CPU100はステップS14からS16の処理に進んでRAMクリア処理を実行し、遊技機の動作状態を初期状態に戻す。
ステップS14でのチェックサム演算によるチェックサム値と、SUM番地の記憶値とが一致する場合には、主制御CPU100はステップS15に進み、バックアップデータに基づき、電源遮断前におけるスタックポインタを復帰し、電源遮断時の処理状態から遊技を開始するために必要な遊技復旧処理を実行する。
そしてステップS15の遊技復旧処理を終えると、ステップS19の処理に進み、CTCを初期設定してCPUを割込み許可状態に設定し、その後は、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、上述した各種乱数更新処理を実行する(ステップS20〜S22)。
次に主制御CPU100のタイマ割込処理について説明する。図7に主制御CPU100のタイマ割込処理を示している。この主制御タイマ割込処理は、CTCからの一定時間(4ms程度)ごとの割込みで起動され、上述したメイン処理実行中に割り込んで実行される。
タイマ割込みが生じると、主制御CPU100はレジスタの内容をスタック領域に退避させた後、まず図7のステップS51として電源基板58からの電源の供給状態を監視する電源異常チェック処理を行う。この電源異常チェック処理では、主に、電源が正常に供給されているかを監視する。ここでは、例えば電断が生じるなどの異常が発生した場合、電源復帰時に支障なく遊技を復帰できるように、電断時における所定の遊技情報をRAMに格納するバックアップ処理などが行われる。
次にステップS52で、主制御CPU100は遊技動作制御に用いられるタイマを管理するタイマ管理処理を行う。パチンコ遊技機1の遊技動作制御に用いる各種タイマ(たとえば特別図柄役物動作タイマなど)のタイマ値は、この処理で管理(更新)される。
ステップ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のエラー管理処理において所定のエラー処理が行われるようになっている。
ステップS54では、主制御CPU100は各変動表示に係る乱数を定期的に更新するタイマ割込内乱数管理処理を行う。この定期乱数更新処理では、特別図柄判定用乱数や補助当り判定用乱数の更新(割込み毎に+1加算)と、乱数カウンタが一周するごとに、乱数カウンタのスタート値を変更する処理を行う。例えば特別図柄判定用乱数カウンタの値を所定範囲で更新(+1加算)し、特別図柄判定用乱数カウンタが1周するごとに、特別図柄判定用乱数カウンタ初期値の生成用カウンタの値を読み出し、その生成用カウンタの値を特別図柄判定用乱数カウンタに格納する。これにより、特別図柄判定用乱数カウンタのスタート値が上記の生成用カウンタの値に応じて変更されるので、更新周期は一定でありながらも特別図柄判定用乱数カウンタのカウント値はランダムになる。
ステップS55では、主制御CPU100は、遊技動作状態の異常の有無を監視するエラー管理処理を行う。このエラー管理処理では、遊技動作状態の異常として、例えば基板間に断線が生じたか否かの監視や、不正入賞があったか否かの監視などをして、これらの動作異常(エラー)が発生した場合には、そのエラーに対応した所定のエラー処理を行う。
エラー処理としては、例えば所定の遊技動作(例えば遊技球の払い出し動作や遊技球の発射動作など)の進行を停止させたり、エラー報知用コマンドを演出制御部51に送信して、演出手段によりエラーが発生した旨を報知させたりする。
ステップS56では、主制御CPU100は賞球管理処理を行う。この賞球管理処理では、ステップS53の入力管理処理で格納したデータを把握して、上述の入賞カウンタの確認を行い、入賞があった場合は、賞球数を指定する払出制御コマンドを払出制御基板53に送信する。
この払出制御コマンドを受信した払出制御基板53は、遊技球払出装置55を制御し、指定された賞球数の払い出し動作を行わせる。これにより、それぞれの入賞口に対応した賞球数が払い出されるようになっている。入賞口に対応した賞球数とは、入賞口別に設定された入賞球1個当りの所定の賞球数×入賞カウンタの値分の賞球数である。
ステップS57では主制御CPU100は、普通図柄管理処理を行う。この普通図柄管理処理では、普通図柄変動表示における補助当り抽選を行い、その抽選結果に基づいて、普通図柄の変動パターンや普通図柄の停止表示態様を決定したり、所定時間毎に点滅を繰り返す普通図柄のデータ(普通図柄変動中のLED点滅表示用データ)を作成したり、普通図柄が変動中でなければ、停止表示用のデータ(普通図柄停止表示中のLED点滅表示用データ)を作成したりする。
ステップS58では、主制御CPU100は、普通電動役物管理処理を行う。この普通電動役物管理処理では、ステップS57の普通図柄管理処理の補助当り抽選の抽選結果に基づき、普通電動役物ソレノイド77に対するソレノイド制御用の励磁信号の生成およびそのデータ(ソレノイド制御データ)の設定を行う。ここで設定されたデータに基づき、後述のステップS64のソレノイド管理処理にて、励磁信号が普通電動役物ソレノイド77に対して出力され、これにより可動翼片42bの動作が制御される。
ステップS59では、主制御CPU100は、特別図柄管理処理を行う。この特別図柄管理処理では、主に、特別図柄変動表示における大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、変動開始時の変動パターン)や特別停止図柄などを決定する。
ステップS60では、主制御CPU100は特別電動役物管理処理を行う。この特別電動役物管理処理では、主に、大当り抽選結果が「大当り」または「小当り」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行う。
ステップS61では、主制御CPU100は右打ち報知情報管理処理を行う。この右打ち報知情報管理処理では、例えば第1、第2大入賞口45a,46aが開放される機会や可動翼片42bが駆動される電サポ状態など、右打ちが有利な状況において右打ち指示報知を行う「発射位置誘導演出(右打ち報知演出)」を現出させるための処理を行う。右打ち指示とは、具体的には、右遊技領域3cを狙う旨を有技者に指示する演出動作であり、例えば液晶表示装置32に「右打ち」を遊技者に促す画像を表示させたり、スピーカ25から右打ちメッセージ音声を発生させる。
右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、演出制御コマンドとして、右打ち報知演出の実行指示する「右打ち指示コマンド」が演出制御部51に送信され、このコマンドを受けて、演出制御部51が、画像や音声による右打ち報知の実行制御を行う。
ステップS62では、主制御CPU100は、LED管理処理を行う。このLED管理処理は、図柄表示部33に対して普通図柄表示や第1,第2特別図柄表示のための表示データを出力する処理である。この処理により、普通図柄や特別図柄の変動表示および停止表示が行われる。なお、ステップS57の普通図柄管理処理で作成された普通図柄の表示データや、ステップS59の特別図柄管理処理中の特別図柄表示データ更新処理で作成される特別図柄の表示データは、このLED管理処理で出力される。
ステップS63では、主制御CPU100は、外部端子管理処理を行う。この外部端子管理処理では、枠用外部端子基板57を通して、パチンコ遊技機1の動作状態情報をホールコンピュータや島ランプなどの外部装置に対して出力する。動作状態情報としては、大当り遊技が発生した旨(条件装置が作動した旨)、小当り遊技が発生した旨、図柄変動表示が実行された旨(特別図柄変動表示ゲームの開始または終了した旨)、入賞情報(始動口や大入賞口に入賞した旨や賞球数情報)などの情報が含まれる。
ステップS64では、主制御CPU100は、ソレノイド管理処理を行う。このソレノイド管理処理では、ステップS58の普通電動役物管理処理で作成されたソレノイド制御データに基づく普通電動役物ソレノイド77に対する励磁信号の出力処理や、ステップS60の特別電動役物管理処理で作成されたソレノイド制御データに基づく第1,第2大入賞口ソレノイド78,79に対する励磁信号の出力処理を行う。これにより、可動翼片42bや開放扉45b、46bが所定のパターンで動作し、下始動口42aや大入賞口45a、46bが開閉される。
主制御CPU100は、以上のステップS51〜ステップS64の処理を終えた後、退避していたレジスタの内容を復帰させて、ステップS65で割込み許可状態に設定する。これにより、タイマ割込処理を終了して、割込み前の図6の主制御側メイン処理に戻り、次のタイマ割込みが発生するまで主制御メイン処理を行う。
次に、図7のステップS59の特別図柄管理処理について説明する。図8は、ステップS59の特別図柄管理処理の詳細を示すフローチャートである。
図8において、主制御CPU100はステップS71で、まず第1特別図柄側(上始動口41側)に関する第1特図始動口チェック処理を行い、次いでステップS72で第2特別図柄側(下始動口42a側)に関する第2特図始動口チェック処理を行う。
次に主制御CPU100はステップS73で、小当り中フラグの状態を判定する。この小当り中フラグとは、小当り遊技中であるか否かを指定するためのフラグで、当該フラグがON状態である場合には小当り遊技中である旨を示し、当該フラグがOFF状態である場合には小当り遊技中ではない旨を示す。
小当り中フラグがOFF状態の場合、主制御CPU100はステップS74で、条件装置作動フラグの状態を判定する。この条件装置作動フラグとは、大当り遊技中であるか否かを指定するフラグで、当該フラグがON状態である場合には大当り遊技中である旨を示し、当該フラグがOFF状態である場合には大当り遊技中ではない旨を示す。
条件装置作動フラグがOFF状態の場合、主制御CPU100はステップS75で、特別図柄の挙動を示す処理状態に応じた処理を行うために処理を分岐する。
すなわち、小当り遊技中でもなく大当り遊技中でもないとしてステップS75に進んだ場合、特別図柄が変動可能状態下に置かれ、これにより、特別図柄動作ステータスが「待機中」「変動中」「確認中」のいずれの状態であるかに応じて、それぞれに対応する特別図柄の変動表示動作に関する処理が行われる。
一方、小当り遊技中、または大当り遊技中である場合には、特別図柄が変動可能状態下には置かれないため、特別図柄の変動表示動作に関する処理を行わずにステップS79に進む。
ここで、上述の「待機中」とは、特別図柄の挙動が次回変動のための待機状態である旨を示し、「変動中」とは特別図柄の挙動が変動(変動表示)中である旨を示し、「確認中」とは特別図柄の変動が終了して停止(確定)表示中(特別図柄確認時間中)である旨を示す。
具体的には、特別図柄動作ステータスが「待機中」である場合には、ステップS75からS76に進み、特別図柄変動開始処理を、「変動中」である場合には、ステップS75からS77に進み特別図柄変動中処理を、「確認中」である場合には、ステップS75からS78に進み特別図柄確認時間中処理を行う。これらの処理により、特別図柄変動表示ゲームとして、特別図柄の変動開始および変動停止を一セットする変動表示動作が実現される。
主制御CPU100はステップS79では、特別図柄表示データ更新処理を行う。この特別図柄表示データ更新処理では、特別図柄が変動中であるか否かを判定し、変動中であれば、所定時間(たとえば0.5秒)毎に点滅を繰り返す特別図柄のデータを作成し、特別図柄が変動中でなければ、停止表示用のデータを作成する。ここで作成した特別図柄の表示データは、図7のLED管理処理(ステップS62)で出力される。
続いて、上記したステップS71の第1特図始動口チェック処理について説明する。
図9は、ステップS71の第1特図始動口チェック処理の詳細を示すフローチャートである。第1特図始動口チェック処理は、所定の始動条件の成立に基づいて実行される入賞時処理としての役割を果たし、第1特別図柄変動表示ゲームに係る上始動口41についての入賞チェック処理が行われる。
主制御CPU100は、まずステップS71で上始動口41において入賞(入賞球)を検出したか否かを判定する。上始動口41の入賞を検出した場合、ステップS82で第1特別図柄の保留球数が4以上となる場合であるか否か判定する。すなわち、第1特別図柄の保留球数(以下「第1特図保留球」と称する)が最大保留記憶数(ここでは上限4個)未満であるか否かを判定する。
なお、ステップS81で上始動口41の入賞を検出しなかった場合、何もしないでこの第1特図始動口チェック処理を抜ける。
第1特図保留球数が4以上である場合には、ステップS95に進む。一方、保留球数が4未満の場合はステップS83で保留球数を1加算(+1)する。
次にステップS84で、第1特図保留球に基づく、第1特別図柄変動表示ゲームに利用される各種乱数(大当り判定用乱数、特別図柄判定用乱数、変動パターン用乱数1、および変動パターン用乱数2)の乱数カウンタの現在値を取得して、それぞれ主制御RAM102の保留記憶エリアに格納する。この保留記憶エリアには、取得された上述の各種乱数値(図柄遊技に係る所定の遊技情報)が保留データとして、第1特別図柄の変動表示動作に供されるまで所定の記憶数を上限として始動条件の成立順(入賞順。ただし、本実施形態では、最大保留記憶数である第1特図保留球数が4未満の場合)に保留記憶される。
なお主制御RAM102の保留記憶エリアには、第1特別図柄と第2特別図柄とに対応した保留記憶エリアが設けられており、それぞれ保留球数分の保留データを格納可能となっている。
特別図柄判定用乱数、変動パターン用乱数1、および変動パターン用乱数2は、それぞれに対応した乱数カウンタから抽出される。これら乱数値は、主制御RAM102に設けられた各々に対応したカウント値記憶領域において、間欠的に生じる割込み処理と割込み処理の間に実行されるメイン処理において乱数的に更新されているので、その値がそのまま取得される。他方、大当り判定用乱数値は、ハードウェア的に乱数を生成する乱数生成回路(大当り判定用乱数カウンタ:図示せず)から抽出される。この乱数生成回路は、大当り判定用乱数値をカウントしているカウンタである。乱数生成回路は、上始動口センサ71または下始動口センサ72から遊技球の検出信号が入力されると、このタイミングにおけるカウント値をラッチし、ラッチした値を乱数生成回路に内蔵されたレジスタに記憶し、当該カウント値がマイクロコンピュータに入力されるようになっている。主制御CPU100は、このカウント値を大当り判定用乱数値として、主制御RAM102の保留記憶エリアと別個に設けられた所定の記憶領域(特別電動役物作動判定用乱数ラッチバッファ)に格納し、必要なタイミングで特別電動役物作動判定用乱数ラッチバッファから格納された大当り判定用乱数値を読み出し利用する。
本実施形態では、入賞時における大当り判定用乱数値を特別電動役物作動判定用乱数ラッチバッファと該当する保留記憶エリアとに格納するようになっているが、特別電動役物作動判定用乱数ラッチバッファを設けない場合は、保留記憶エリアにそのまま格納し、必要なタイミングで、該当保留記憶エリアの大当り判定用乱数値を読み出すように構成しても良い。
次いでステップS86で、保留加算コマンドを作成するための入賞コマンドデータとして、先読み判定を禁止する先読み禁止データを取得し、第1特別図柄側の先読み判定を禁止する「第1特図先読み禁止条件」が成立しているか否かを判定する。なお、第1特図先読み禁止条件とは、第1特別図柄に関する先読み予告、つまり第1特図保留球を対象とした先読み予告を禁止する条件である。本実施形態では、遊技状態が時短状態か、または確変状態A〜Cのいずれかであることを禁止条件とし、これらいずれかの遊技状態である場合、第1特別図柄に関する先読み予告を禁止(先読み予告抽選自体を禁止)する。
第1特図先読み禁止条件が成立している場合にはステップS95に進む。
第1特図先読み禁止条件が成立していない場合にはステップS87に進み、第1特図用当り乱数判定テーブルを取得し、ステップS88で主制御RAM102(特別電動役物作動判定用乱数ラッチバッファ)に格納された大当り判定用乱数値を取得して、ステップS89の乱数判定処理を行う。
乱数判定処理では、大当り判定用乱数値を利用し、特別図柄変動表示ゲーム(ここでは、第1特別図柄変動表示ゲーム)に係る「当落抽選」を行う。
次にステップS90で主制御CPU100は、第1特図用図柄テーブル選択テーブルを取得し、ステップS91で主制御RAM102に格納された特別図柄判定用乱数値を取得して、ステップS92で特別停止図柄データ作成処理を行う。
特別停止図柄データ作成処理では、乱数判定処理の当落抽選結果と特別図柄判定用乱数値を利用し、特別図柄変動表示ゲーム(ここでは、第1特別図柄変動表示ゲーム)に係る「図柄抽選」を行う。
ステップS93では主制御CPU100は始動口入賞時乱数判定処理を行う。この始動口入賞時乱数判定処理では、ステップS92の停止図柄データ作成処理で得られたデータ(特別図柄判定データと変動パターン選択用オフセット)に基づき、保留加算コマンドの作成に利用される入賞コマンドデータ(2バイト目(EVENT):下位バイト)を取得
そしてステップS94で入賞コマンドデータ(下位バイト(EVENT))を作成し、またステップS95で保留球数(上位バイト(MODE))に基づく保留加算コマンドを作成し、ステップS96で演出制御部51に送信する。
これにより、第1特図始動口チェック処理を抜けて、図8のステップS72の第2特別図柄始動口チェック処理を行う。第2特別図柄始動口チェック処理は、第2特別図柄に関して、図9と概略同様の処理を行うものであるため詳細な説明は省略する。
ここまで主制御部50(主制御CPU100)のメイン処理、タイマ割込処理、及び特別図柄管理処理について説明したが、主制御部50は逐次必要なコマンドを演出制御部51に対して送信する。
コマンドの例として、特別図柄変動表示ゲームの当落抽選にかかる変動パターンコマンド、入賞時コマンドの一部を図10Aに示し、また図柄指定コマンドの一部を図10Bに示している。
変動パターンコマンド、入賞時コマンドは、上位バイトと下位バイトで変動パターンの種別が規定され、外れ/当たりに応じて上位バイトが異なるように構成されている。
図柄指定コマンドは、上位バイトで第1、第2特別図柄が示され、下位バイトで当たりの種別が指定される構成となっている。
[1-6.演出制御部の処理]
(1-6-1:メイン処理)

続いて演出制御部51の処理について説明する。演出制御部51の処理としては、主に、メインループ上で16ms毎に行われる処理(以下「16ms処理」ともいう)と、1ms毎に行われる割り込み処理(以下「1msタイマ割込処理」ともいう)がある。
まずここでは16ms処理を含むメイン処理について説明する。
図11は、演出制御部51のメイン処理を示している。演出制御部51(演出制御CPU200)は、遊技機本体に対して電源が投入されると、図11のメイン処理を開始する。
このメイン処理において、演出制御CPU200は、まずステップS101で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、コマンド受信割込み設定、可動体役物の起点復帰処理、CTCの初期設定、タイマ割込みの許可、マイクロコンピュータの各部を含めてCPU内部のレジスタ値の初期設定などを行う。
ステップS101の初期設定処理を終えると、正常動作時の処理としてステップS102〜S119の処理を繰り返し行う。
即ちこの例では、演出制御CPU200はステップS102でのIDチェックとステップS119での乱数更新を毎ループ行うと共に、16ms毎に、ステップS105〜S118の処理(16ms処理)を行う。
ステップS102のIDチェックでは、演出制御CPU200はシステム上で設定されている自己或いは接続各部のIDの確認を行う。もし何らかの原因により、ID異常が検出された場合は、ステップS103としてシステム停止処理を行う。
IDに問題のない通常時は、演出制御CPU200はステップS104以下の処理を行うことになる。即ち演出制御CPU200は、16ms処理の実行判断のための割込みカウンタの値が「15」より大きい値となっているか否かを判断する。この割込みカウンタは、後述する図12の1msタイマ割込処理のステップS207でインクリメントされていくカウンタである。従って割込みカウンタの値が「15」より大きい場合とは、16ms処理のタイミングになっていることを意味する。
演出制御CPU200は、割込みカウンタの値が「15」以下であるときは、ステップS104からS119に進み、演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行う。
一方、割込みカウンタの値が「16」以上である場合は、演出制御CPU200はステップS105〜S118の処理を実行し、その後、ステップS119で演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行うことになる。
このように割込みカウンタでカウントされる16ms毎に、演出制御CPU200はステップS105からの16ms処理を行う。
その場合、まずステップS105では、割込みカウンタをゼロリセットする。以後、再び次の16ms処理までのカウントを行うためである。
次にステップS106で演出制御CPU200は、エラー処理を行う。このエラー処理としては、RAMクリアエラー中、役物エラー中、右打ちエラー中などにおけるエラー処理タイマの処理、各種エラーが発生した際のエラー報知のためのシナリオ登録処理、エラー報知後のエラーシナリオのクリア処理などを行うこととなる。
次にステップS107では、演出制御CPU200はデモ処理を行う。このデモ処理では、再生音の制御、デモムービー実行や役物原点補正のシナリオ登録や、そのコマンドセットなどの処理を行う。客待ち状態などでは、このデモ処理で設定されたシナリオが実行されることでデモムービー表示が実行される。
ステップS108では、演出制御CPU200はコマンド解析処理を行う。このコマンド解析処理では、演出制御CPU200が、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。そして読み出した演出制御コマンドに対応した演出制御処理を行う。詳しくは図13〜図15で後述する。
ステップS109では、演出制御CPU200は入力検知処理を行う。この入力検知処理では、操作部60の操作子(演出ボタン11、12、十字キー13)の操作による入力の検知を行い、入力を検知した場合、その操作に応じた処理を行う。
ステップS110では、演出制御CPU200はシナリオ更新処理を行う。この処理ではメインシナリオの更新、サブシナリオの更新が行われる。その際にはランプ部64,65の点灯パターン登録、再生する音の登録、可動体役物の駆動のためのモータ動作の登録なども行われる。詳しくは図18,図19を用いて後述する。
ステップS111では、演出制御CPU200は音再生処理を行う。演出制御CPU200は、シナリオデータに基づいてワークに音チャネルとして登録されている音データに基づいて、フレーズ番号やボリューム等のデータを音源ICに出力する。これによってスピーカ25からの効果音、音楽・音声等の再生出力が行われる。
ステップS112では、演出制御CPU200は役物エラー処理を行う。ここでは可動体役物の原点復帰がなされていないなどの位置エラー判定などを行う。
ステップS113では演出制御CPU200は、LEDドライバ90の初期化を行う。
LEDドライバ90の初期化とは、LEDドライバ90において使用しないレジスタにデフォルト値を出力する処理である。例えば枠ドライバ部61の各LEDドライバ90と、盤ドライバ部62の各LEDドライバ90に対して初期化を行う。
ステップS113では演出制御CPU200は、LED駆動データ更新を行う。ここでは、シナリオデータに基づいてワークにランプチャネルとして登録されているランプデータに基づいて、LED駆動データを作成する処理が行われる。詳しくは図24を用いて後述する。
ステップS114では演出制御CPU200は、LED出力処理を行う。即ち演出制御CPU200は、枠ドライバ部61の各LEDドライバ90と、盤ドライバ部62の各LEDドライバ90に対して、シリアルデータ出力チャネルch1、ch2から、LEDドライバ90に対する発光駆動データ(LED駆動データ)の出力を行う。詳しくは図25を用いて後述する。
ステップS116では、演出制御CPU200は、演出制御RAM202のワーク領域を対象としてチェックサム算出及びその保存を行い、またステップS117では、バックアップデータの保存を行う。
さらにステップS118ではシナリオ更新カウンタをゼロリセットする。シナリオ更新カウンタは後述の1msタイマ割込処理でインクリメントされるカウンタである。
以上のような16ms処理が、図11のメインループ処理において16ms経過毎に行われる。
(1-6-2:1msタイマ割込処理)

次に図12により1msタイマ割込処理を説明する。演出制御CPU200は、タイムカウントにより1ms毎に発生する割込要求に応じて、図12の1msタイマ割込処理を実行する。
この1msタイマ割込処理においては、まずステップS201では主制御CPU100からのテストコマンドに応じたチェックサム算出中であるか否かを判断する。チェックサム算出中でなければ、演出制御CPU200はステップS202の入力処理に進む。
ステップS202の入力処理とは、上述の図11のステップS109の入力検知処理とともに操作子の操作による入力検知を行うための1ms毎の処理である。例えばこの入力処理では、操作子の操作検出信号について、信号波形にエッジが検出されたら入力カウンタをリセットし、その後、エッジが発生しない期間、入力カウンタをカウントアップしていく処理を行う。1msタイマ割込処理において、入力情報(入力信号波形のHまたはL)が検知され、またエッジ有無により、入力カウンタのリセット又はインクリメントが行われる。そしてメインループ処理(16ms処理)におけるステップS109で、入力カウンタの値が16以上となっており、前回とは入力情報が変化している場合に、入力変化を認識するようにしている。
このような入力処理(S202)及び入力検知処理(S109)により、ノイズ・チャタリングによる入力誤認識の防止がはかられる。また、入力カウンタを用いており、本実施形態では例えば16ビットカウンタを用いて65535ms(約65秒)までなどをカウントできるようにしているため、いわゆる長押しの検出も可能となる。
ステップS203では、演出制御CPU200はモータ動作更新処理を行う。この場合、演出制御CPU200は、シナリオデータに基づいてワーク(図20Cで説明するモータデータ登録情報)にモータチャネルとして登録されているモータデータに基づいて、モータ駆動データを作成する処理を行う。これは可動体役物モータ65を駆動制御するためにモータドライバ部70のモータドライバ90Mに出力するモータ駆動データである。なお、本実施形態では、LED駆動データ更新は上記ステップS114により16ms毎に行われる一方、モータ駆動データ更新は1ms毎に行われることになる。
ステップS204では、演出制御CPU200は、モータ駆動データを出力する。このステップS204では、可動体役物モータ65としてのステッピングモータ121に対する駆動データとしてのシリアルデータを、モータドライバ部70のモータドライバ90Mに対して出力することになる。
ステップS205では、演出制御CPU200は、割込みカウンタの値に応じて各処理を実行する。割込みカウンタは上述の16ms処理のステップS105でゼロリセットされ、1msタイマ割込処理のステップS207でインクリメントされる。従って、1msタイマ割込処理でステップS205が実行される際には、割込みカウンタの値は0〜15のいずれかとなっている。
この割込みカウンタの値0〜15に応じて、ケース0〜ケース15としてステップS205の処理が規定される。例えば本実施形態では、ケース0ではWDT(watchdog timer)クリア信号ONを行う。ケース1〜3ではモータドライバ90Mの初期化処理を行う。ケース8ではWDTクリア信号OFFを行う。
ステップS206では、演出制御CPU200は、液晶制御基板52に対するコマンド(液晶制御コマンド)の出力を行う。例えば1回の1msタイマ割込処理において、1コマンド(2バイト)の送信を行う。つまりモード及びイベントとしての2バイトの演出制御コマンドが送信される。
その後、演出制御CPU200はステップS207で割込みカウンタのインクリメントを行い、またステップS208でシナリオ更新カウンタのインクリメントを行う。そしてシナリオ更新カウンタの値が100未満であれば、1msタイマ割込処理を終える。
なお、シナリオ更新カウンタは上述のように16ms処理のステップS118でゼロリセットされるため、通常はシナリオ更新カウンタの値が100以上となることはない。100以上となるのは、演算異常、処理応答異常などにより16ms処理が実行されない場合や、16ms処理内の或る処理の進行が停止しているような場合である。このような場合は、無限ループに入り、WDTによってタイムアップ処理が行われるのを待つことになる。
1msタイマ割込処理に入った際に、ステップS201でチェックサム算出中と判断された場合は、演出制御CPU200は処理をステップS210に進め、WDTをクリアする。そしてステップS211で液晶制御基板52に対する演出制御コマンドの送信出力を行う。そしてステップS212で割込みカウンタをインクリメントして1msタイマ割込処理を終える。
(1-6-3:コマンド解析処理)

続いて、16ms処理として図6のステップS108で行われるコマンド解析処理について、図13〜図15で説明する。演出制御CPU200は、ステップS108のコマンド解析処理として、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。この具体的な処理として、図13のステップS301〜F308の処理を行う。
演出制御部51には、主制御部50から送信されてきた演出制御コマンドを取り込むコマンド受信バッファが、例えば演出制御RAM202に用意される。演出制御CPU200は、まず図13のステップS301で、コマンド受信バッファの読み出しアドレスを示すリードポインタと、書き込みアドレスを示すライトポインタの確認を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
上述したように1つの演出制御コマンドは、モードとしての1バイトとイベントとしての1バイトの2バイトで形成されている。演出制御CPU200はステップS303で、ロードした1バイトのコマンドデータが、モードであるかイベントであるかを確認する。この確認は、8ビット(Bit0〜Bit7)のうちのBit7の値により行われる。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
モード及びイベントのコマンドデータが、レジスタ「コマンドHIバイト」「コマンドLOバイト」にセーブされることで、演出制御CPU200は1つのコマンドを取り込んだことになる。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は図14,図15で後述する。
リードポインタ=ライトポインタとなるのは、演出制御CPU200がまだ取り込んでいない演出制御コマンドがコマンド受信バッファには存在しない場合である。そこで、新たな取り込みは不要であるため、ステップS307に進む。この場合、図柄コマンド待ちの状態で100ms経過したか否かを確認する。そのような事態となっていなければ、図13のコマンド解析処理を終える。一方、図柄コマンド待ちの状態で100ms経過していたのであれば、ステップS308でコマンド欠落における図柄変動の処理を行うこととなる。
上記のステップS306におけるコマンド対応処理の例を図14,図15で説明する。
図14Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず図14AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、ランプ部63,64におけるLED120の消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
演出制御コマンドとしては、例えば特別図柄変動パターン指定コマンド、特別図柄指定コマンド、保留球減算コマンド、保留球加算コマンド、エラー表示指定コマンド、大当たり開始指定コマンド・・・など多様に設定されている。ステップS330では、演出制御CPU200は、受信したコマンドに対応して、プログラムで規定された処理を行う。ここでは図14B〜図14E、図15A〜図15Cに7つの演出制御コマンドを挙げて、具体的処理を例示する。
図14Bは、ステップS330でのコマンド処理として、変動パターンコマンドを取り込んだ場合の処理S330aを示している。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
図14Cは、ステップS330でのコマンド処理として、図柄指定コマンドを取り込んだ場合の処理S330bを示している。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄指定コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、図柄変動フラグをセットする。図柄変動フラグは、第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応してそれぞれ設けられ、それぞれのフラグで変動状態を表すものとされる。例えば各2ビットの第1特別図柄変動フラグFZ1、第2特別図柄変動フラグFZ2、普通図柄変動フラグFZ3が用意され、それぞれについて変動中、停止中(当たり)、停止中(外れ)が示される。ここでは変動開始に伴い、対応する図柄変動フラグ(FZ1,FZ2,FZ3のいずれか)を、「変動中」を示す値にセットする。
なお図柄変動フラグは、当たりの場合は、図柄変動終了時に所定時間「停止中(当たり)」を示す値にセットされ、その後、図柄変動が開始されるまで「停止中(外れ)」を示す値にセットされる。
ステップS335で演出制御CPU200は、変動開始処理を行う。その後、変動開始に応じてステップS336で変動パターンコマンドの削除を行う。
図14Dは、ステップS330でのコマンド処理として、電源投入コマンドを取り込んだ場合の処理S330cを示している。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
図14Eは、ステップS330でのコマンド処理として、RAMクリアコマンドを取り込んだ場合の処理S330dを示している。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
図15Aは、ステップS330でのコマンド処理として、保留加算コマンドを取り込んだ場合の処理S330eを示している。
この場合、演出制御CPU200は、ステップS350で第1特別図柄変動表示ゲーム又は第2特別図柄変動表示ゲームのいずれか対応する方の保留数レジスタ(演出制御RAM202内で設定された第1保留数又は第2保留数としてのレジスタ領域)における保留数の値を読み出して、加算する処理を行う。そしてステップS351で液晶制御基板52に対して保留数表示のためのコマンドをセットし、ステップS352で第1保留数又は第2保留数として更新した値をセットする。
図15Bは、ステップS330でのコマンド処理として、保留加算コマンドを取り込んだ場合の処理S330fを示している。
この場合、演出制御CPU200は、ステップS360で第1特別図柄変動表示ゲーム又は第2特別図柄変動表示ゲームのいずれか対応する方の保留数レジスタ(演出制御RAM202内で設定された第1保留数又は第2保留数としてのレジスタ領域)における保留数の値を読み出して、減算する処理を行う。そしてステップS361で液晶制御基板52に対して保留数表示のためのコマンドをセットし、ステップS362で第1保留数又は第2保留数として更新した値をセットする。
図15Cは、ステップS330でのコマンド処理として、状態報知コマンドを取り込んだ場合の処理S330gを示している。
この場合、演出制御CPU200は、ステップS371で遊技状態報知フラグをセットする。遊技状態報知フラグとしては、例えば「大当たり中」「確変中」「時短中」を示すフラグFJ1,FJ2,FJ3が用意される。演出制御CPU200はステップS371では状態報知コマンドで指示される遊技状態に応じて、いずれかの対応する遊技状態報知フラグをセットすることになる。
(1-6-4:シナリオ登録・削除処理)

次にシナリオ登録・削除処理について説明する。シナリオとは演出制御やエラー処理その他、各種の実行すべき動作を規定したデータである。実行すべきシナリオのデータは、シナリオ登録情報として演出制御RAM202のワーク領域に登録される。図20Aに示すシナリオ登録情報の構造については後述するが、シナリオ登録情報としては、0〜63までの64個のシナリオチャネルが用意されている。この64個のシナリオチャネルに登録されたシナリオは同時に実行可能とされる。以下、シナリオチャネルを「sCH」で示す。
シナリオ登録処理とは、シナリオ登録情報における任意のシナリオチャネルに、登録を要求されたシナリオ番号のシナリオを登録する処理である。原則的には、sCH0〜sCH63のシナリオチャネルは、どのチャネルが用いられても良い。
以下説明するシナリオ登録は、例えば図11のステップS106のエラー処理、ステップS107のデモ処理、ステップS108のコマンド解析処理などの処理過程において、必要時に呼び出され、実行される。例えば先に述べた図14CのステップS333、図14DのステップS341などが、シナリオ登録が実行される場合の一例となる。
図16の処理として、演出制御CPU200は、コマンド或いはプログラム上で指定されるシナリオに対応したシナリオ番号と待機時間(delay)の値を、ワーク(シナリオ登録情報)に登録する処理を行う。
ステップS401で演出制御CPU200は、まず今回登録すべきシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、何もせずに処理を終える。
シナリオ番号が適正であれば、演出制御CPU200はステップS402で変数Bをゼロに設定する。変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、空きチャネルを順次探索するために使用する変数である。さらに変数Bは、まだ探索(空きチャネルであるか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
演出制御CPU200は、ステップS403で、「追加ポインタ」+Bのシナリオチャネルが空きであるか否かを確認する。追加ポインタとは、シナリオ登録を行った際に、後述のステップS407で設定されるポインタである。図16の処理を開始する時点では、追加ポインタの値は、前回登録したシナリオチャネルの次のシナリオチャネルを示す値となっている。なお、追加ポインタの初期値(初期状態から図16の処理が初めて行われる時の値)は0である。
「追加ポインタ」+Bのシナリオチャネルが空きでなければ、演出制御CPU200はステップS404で変数Bをインクリメントする。
ステップS405でB<64でなければ、この図16の処理を終える。これは全シナリオチャネルについて探索を行ったが、空きチャネルがなくてシナリオ登録が不可能となる場合である。
まだ全シナリオチャネルの探索(空きチャネルであるか否かの確認)を行っていない時点では、ステップS405でB<64である。その場合はステップS406の確認処理を行い、「追加ポインタ」+Bの値がシナリオチャネルsCHの最大値を超えた値「64」以上となっていなければステップS403に戻る。
また「追加ポインタ」+Bの値が「64」以上となっていた場合は、ステップS407で追加ポインタの値の補正処理を行う。具体的には「追加ポインタ」+Bの値が「64」となった場合、追加ポインタの値を「64」減算する処理を行う。そしてステップS403に戻る。
このステップS403〜S407の処理によれば、前回登録したシナリオチャネルの次のシナリオチャネルから、順次シナリオチャネルが空きか否かが確認されることになる。
つまり、ステップS404での変数Bのインクリメントにより、ステップS403が行われるたびに確認されるシナリオチャネルsCHが、順次1つずつ進行することとなる。
また、変数BはステップS402でゼロリセットされてからステップS404でインクリメントされるものであるため、ステップS405でB<64とはならない場合(つまり変数Bが64に達した場合)は、既にステップS403の処理が64回行われた場合である。これは全シナリオチャネルsCH0〜sCH63を調べたが、空きがなかったと判断された場合である。そのため登録不可能として図16の処理を終えることとなる。
また、「追加ポインタ」の値は、前回登録したシナリオチャネルの次のシナリオチャネルを示す値であるため、まだ全シナリオチャネルの空き確認を行っていないB<64の時点でも、「追加ポインタ」+Bの値(つまり次に確認しようとするシナリオチャネルsCHの番号)が「64」以上となることがある。具体的には、直前のステップS403の時点で「追加ポインタ」+Bの値が63であり、シナリオチャネルsCH63について確認した後、ステップS404で変数Bがインクリメントされた場合である。このままでは、次に存在しないシナリオチャネルsCH64を指定することとなる。
そこでステップS406でこの点を確認し、「追加ポインタ」+Bの値が「64」となっていたら、ステップS407では、次に確認するシナリオチャネルを「sCH0」に戻すために、追加ポインタの補正を行う。つまり追加ポインタの値を−64することで、「追加ポインタ」+Bの値が「0」となるようにする。これにより次のステップS403では、シナリオチャネルsCH0が空きであるか否か確認されるようにする。
ある時点のステップS403の処理で、空きのシナリオチャネルが発見されたら、演出制御CPU200はステップS408に進み、その空きのシナリオチャネルに、シナリオ番号、及び待機時間(delay)をセットする。またその他のシナリオ管理に必要なデータをゼロクリアする。
そしてステップS409で、追加ポインタを、登録を行ったシナリオチャネル+1の値に更新する。つまり今回登録を行ったシナリオチャネルの次のシナリオチャネルの値を、追加ポインタとして記憶しておき、次回の登録処理に使用できるようにする。なお、本実施形態ではシナリオチャネルはsCH0〜sCH63の64チャネルのため追加ポインタの最大値は63となる。
この図16の処理によれば、シナリオ登録の際に、前回登録を行ったシナリオチャネルの次のシナリオチャネルから、空きチャネルが探索される。追加ポインタの初期値は「0」であり、その後、登録に応じてステップS407で更新されていくが、この処理によれば、多くの場合、シナリオチャネルsCH0から順に使用されてシナリオ登録が行われる。そして、シナリオ登録の際には、前回の登録チャネルの次のシナリオチャネルから空きの確認が行われる。従って、殆どの場合、素早く空きチャネルが発見でき、シナリオ登録処理を効率的に実行することができる。これにより演出制御CPU200の処理負担は軽減される。
なお、処理の変形例として、ステップS407で更新する追加ポインタの値は、登録を行ったシナリオチャネルの番号としておき、ステップS402では変数Bに1を代入してもよい。但しその場合、ステップS405ではB≦65であるか否かの判断を行うようにする。
次にシナリオ削除処理について説明する。これはワークの或るシナリオチャネルに登録されているシナリオを削除する処理である。
図17Aは、或るシナリオをシナリオ登録情報から削除する場合の演出制御CPU200の処理を示している。
演出制御CPU200は、コマンド或いはプログラムグラム上で指定される、削除するシナリオ番号(後述のメインシナリオ番号(mcNo))の値に基づいて、図17Aの処理を開始する。まずステップS421で演出制御CPU200は、削除要求にかかるシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、削除せずに処理を終える。
シナリオ番号が適正であれば、演出制御CPU200はステップS422で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象のシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
演出制御CPU200は、ステップS423で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号のものであるか否かを確認する。シナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号でなければ、ステップS424で変数Bをインクリメントし、ステップS425でB<64であることを確認して、ステップS423の処理を行う。
このステップS423,F424の処理によれば、シナリオチャネルsCH0からシナリオチャネルsCH63に向かって順に、削除対象のシナリオを探索していくこととなる。
ステップS423でシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号であった場合は、ステップS426に進み、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオを削除する処理を行う。
以上により、要求された或るシナリオ番号のシナリオをワーク(シナリオ登録情報)から削除する処理が行われる。
なお、ステップS425でB<64ではないと判断される場合、つまり変数Bが64に達した場合は、シナリオチャネルsCH0〜sCH63の全てを探索したが、削除対象のシナリオが登録されていなかったということになるため、処理を終える。
図17Bは、或る範囲のシナリオを削除する処理を示している。削除シナリオが範囲で指定された場合に、この処理が行われる。
演出制御CPU200は、コマンド或いはプログラム上で、或るシナリオ番号の範囲で削除指定された場合、まずステップS431で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象範囲に該当するシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象範囲に該当するシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
演出制御CPU200は、ステップS432で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号であるか否かを確認する。そしてシナリオチャネルsCH(B)に登録されているシナリオが削除対象の範囲内のシナリオ番号であれば、ステップS433でシナリオチャネルsCH(B)に登録されているシナリオを削除する。そしてステップS434に進む。
シナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号ではなければ、ステップS433を行わずにステップS434に進む。
演出制御CPU200はステップS434では、変数Bをインクリメントし、ステップS435でB<64であることを確認して、ステップS432に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ範囲削除処理を終える。
以上により、シナリオ番号範囲の1又は複数のシナリオについて、ワーク(シナリオ登録情報)からの削除が行われる。
図17Cは登録されているシナリオを全て削除する処理を示している。例えばシステム上の都合により、やむを得ずシナリオを削除する際に呼び出される処理である。なお、保護対象とされたシナリオは削除しないようにする。
演出制御CPU200は、シナリオ全削除が要求された場合、まずステップS441で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、保護対象のシナリオを登録したシナリオチャネルを確認するために使用する変数となる。さらに変数Bは、まだ確認(保護対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
演出制御CPU200は、ステップS442で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが、保護対象のシナリオであるか否かを確認する。そして保護対象のシナリオであれば、削除せず、一方、保護対象のシナリオでなければ、ステップS443で、そのシナリオチャネルsCH(B)に登録されているシナリオを削除する。
そしてステップS444で変数Bをインクリメントし、ステップS445でB<64であればステップS442に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ全削除処理を終える。
以上により、ワークにシナリオ登録情報として登録されているシナリオについて、保護対象のシナリオを除く全シナリオの削除が行われる。
(1-6-5:シナリオ更新処理)

続いてメイン処理の16ms処理のステップS110で行われるシナリオ更新処理について説明する。シナリオ更新処理では図18、図19で説明するようにメインシナリオとサブシナリオの更新が行われる。
まずシナリオ登録情報の構造を図20、図21で説明する。図20Aは、メインシナリオ及びサブシナリオとしてのシナリオ登録情報の構造を示している。このシナリオ登録情報は演出制御RAM202のワークエリアを用いて設定される。
本実施形態では、先にも述べたようにシナリオ登録情報は、シナリオチャネルsCH0〜sCH63の64個のチャネルを有するものとされる。各シナリオチャネルsCHに登録されたシナリオについては同時に実行可能とされる。
図示のように各シナリオチャネルsCHに登録できる情報としては、サブシナリオ更新処理で用いるサブシナリオタイマ(scTm)と前回時間(scPrevTm)、音/モータサブシナリオテーブルの実行ラインを示すサブシナリオ実行ライン(scIx)、ランプサブシナリオテーブルの実行ラインを示すサブシナリオ実行ラインlmp(lmpIx)、シナリオ更新処理に用いるメインシナリオタイマ(msTm)、メインシナリオテーブルの実行ラインを示すメインシナリオ実行ライン(mcIx)、メインシナリオ番号(mcNo)、メインシナリオに付加可能なオプションデータであるメインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)、チェックサム(checkSum)がある。
スピーカ部59による音出力、ランプ部63,64による発光、及び可動体役物モータ65による可動体役物の駆動による演出を開始するときには、待機時間(delay)とメインシナリオ番号(mcNo)をシナリオチャネルsCH0〜sCH63のうちの空いているシナリオチャネルに登録する。
待機時間(delay)は、シナリオチャネルsCHに登録してからそのシナリオが開始されるまでの時間を示す。なおこの待機時間(delay)は、第一実施形態では16ms処理毎に1減算される。待機時間(delay)が0の場合に、登録されたデータに対応した処理が実行されることとなる。
図22には、メインシナリオテーブルの一部として、シナリオ番号1,2,3の例を示している。各シナリオ番号のシナリオとしては、シナリオの各ライン(行)に時間データとしてメインシナリオタイマ(msTm)の値が記述されるとともに、サブシナリオ番号(scNo)、オプション(OPT)を記述することができる。即ちメインシナリオテーブルでは、メインシナリオタイマ(msTm)による時間として、実行されるべきサブシナリオ(及び場合によってはオプション)が指定される。またシナリオ最終行には、シナリオデータ終了コードD_SEEND、又はシナリオデータループコードD_SELOPが記述される。
なお、第一実施形態では、メインシナリオタイマ(msTm)の値は、メインシナリオの開始時から16ms処理で行われるシナリオ更新の処理で+1されるため、「1」とは16msを示すものとなる。各シナリオ番号のシナリオテーブルは、或る行におけるメインシナリオタイマ(msTm)の時間を経過すると、次の行へ進むことになる。各行の時間データは、その行が終わるタイミングを示している。
例えばシナリオ番号2の場合、1500×16msの時間としてサブシナリオ番号2の動作が指定され、次の500×16msの時間としてサブシナリオ番号20の動作が指定され、次の2000×16msの時間としてサブシナリオ番号21の動作が指定されている。その次の行はシナリオデータ終了コードD_SEENDである。シナリオデータ終了コードD_SEENDの場合、シナリオ登録情報(ワーク)から、このシナリオが削除される(後述する図18のステップS617参照)。
次に図20Bでランプデータ登録情報の構造を説明する。ランプデータ登録情報としては、ランプサブシナリオテーブルから選択されたシナリオ、即ちランプ部63,64による演出動作(点灯パターン)を示す情報が登録される。このランプデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
各ランプチャネルdwCHに登録できる情報としては、図示のように、登録した点灯パターンの番号を示す登録点灯ナンバ(lmpNew)、実行する点灯パターンの番号を示す実行点灯ナンバ(lmpNo)、ランプサブシナリオの実行ラインを示すオフセット(offset)、実行時間(time)、チェックサム(checkSum)がある。
図23Aにランプサブシナリオテーブルの一部として、ランプサブシナリオ番号1,2,3の例を示している。各番号のランプサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値が記述されるとともに、ランプチャネルと、各種の点灯パターンを示すランプナンバが記述される。また最終行には、ランプシナリオデータ終了コードD_LSENDが記述される。
このランプサブシナリオテーブルにおいて、各ラインの時間データ(time)は、そのサブシナリオが開始されてからの、当該ラインが開始される時間を示している。
16ms毎にメインシナリオタイマ(msTm)と、テーブルの時間データを比較して、一致した場合に、そのラインのランプナンバが、図20Bのランプデータ登録情報に登録される。登録されるランプチャネルdwCHは、当該ラインに示されたチャネルとなる。
例えば、上述の或るシナリオチャネルsCHにおいて、図22に示したシナリオ番号2が登録され、サブシナリオ番号2が参照されるとする。図23Aに示したランプサブシナリオ番号2では、1ライン目に時間データ(time)=0としてランプチャネル5(dwCH5)及びランプナンバ5が記述されている。この場合、メインシナリオタイマ(msTm)=0の時点で、まず当該1ライン目の情報が図20Bのランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=5として登録される。シナリオ登録情報のサブシナリオ実行ラインlmp(lmpIx)の値は、次のラインの値(2ライン目)に更新される。これはランプチャネルdwCH5という比較的低い優先度で、点灯ナンバ5の点灯パターン動作の実行を行うための登録となる。
2ライン目については、500×16msとなった時点で同様の処理が行われる。即ちランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=6(つまり点灯ナンバ6の点灯パターンの指示)が登録される。
なお、時間データ(time)が連続する2ラインで同一の値であったら、その各ラインについての処理は同時に開始されることとなる。
後述するLED駆動データ更新処理では、このように更新されるランプデータ登録情報に基づいて、LED駆動データが作成される。
次に図20Cでモータデータ登録情報の構造を説明する。モータデータ登録情報としては、音/モータサブシナリオテーブルから選択されたシナリオを示す情報が登録される。このモータデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施形態では、モータデータ登録情報は、モータチャネルmCH0〜mCH7の8個のチャネルを有するものとされる。
各モータチャネルmCHに登録できる情報としては、図示のように、実行動作ナンバ(no)、登録動作ナンバ(noNew)、動作カウント(lcnt)、励磁カウンタ(tcnt)、実行ステップ(step)、動作ライン(offset)、親(移行元)/子(移行先)の属性(attribute)、親ナンバ(retNo)、戻りアドレス(retAddr)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、エラーカウンタ(errCnt)、現在の入力情報(currentSw)、ソフト上のスイッチ情報(softSw)、ソフト上のカウント(softCnt)がある。
また図21は、音データ登録情報を示している。音データ登録情報としては、音/モータサブシナリオテーブルから選択されたシナリオを示す情報が登録される。この音データ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施形態では、音データ登録情報は、音チャネルaCH0〜aCH15の16個のチャネルを有するものとされる。
各音チャネルaCHに登録できる情報としては、図示のように、ボリューム遷移量(frzVq)、ボリューム(frzVl)、遷移量変化(rsv2)、ボリューム変化(rsv1)、フレーズ変化(rsv0)、ステレオ(frzSt)、ループ(frzLp)、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)がある。
図23Bに音/モータサブシナリオテーブルの一部として、音/モータサブシナリオ番号1,2の例を示している。各番号の音/モータサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値(ms)が記述されるとともに、BGM、予告音、エラー音、音コントロール、モータ、ソレノイド/ユーザオプションの情報が記述される。また最終行には、シナリオデータ終了コードD_SEENDが記述される。
この音/モータサブシナリオテーブルに関しては、サブシナリオタイマ(scTm)が0になったら(なお最初は0である)、この音/モータサブシナリオテーブルの時間データ(time)の値をサブシナリオタイマ(scTm)にセットする。なお、各ラインの時間データ(time)は、当該ラインが終了するタイミングを示している。サブシナリオタイマ(scTm)には、絶対時間を記述するが、従って、セットする時間データ値は、(当該ラインの時間データ)−(前回ラインの時間データ)の値である。
当該ラインのBGMのデータは、BGMのフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音データ登録情報における音チャネルaCH0(ステレオの場合は加えてaCH1)にセットされる。
当該ラインの予告音のデータは、予告音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH2〜aCH14の空いているところにセットされる。
当該ラインのエラー音のデータは、エラー音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH15にセットされる。
音コントロールのデータは、下位6バイトでチャネル情報、上位2バイトでコントロール情報とされている。
モータのデータは、モータ1個につき1バイトでモータの動作パターン番号を示すように構成されている。モータ番号に対応するモータチャネルに動作パターン番号がセットされる。
図12のステップS203として説明したモータ動作更新処理では、図18,図19のシナリオ更新処理で更新されるモータデータ登録情報に基づいて、モータ駆動データが作成される。
また図11のステップS111の音再生処理では、図18,図19のシナリオ更新処理で更新される音データ登録情報に基づいて、再生出力が行われる。
以上の各情報を用いたシナリオ更新処理について、図18,図19で説明する。
図11の16ms処理のステップS110として実行される図18のシナリオ更新処理では、演出制御CPU200はループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて、ステップS601〜S616の処理を行う。当該ループ処理の各回の処理対象のシナリオチャネルを「sCHn」として説明する。
演出制御CPU200は、ステップS601でシナリオチャネルsCHnの待機時間(delay)を確認する。待機時間(delay)=0でなければステップS602で待機時間(delay)の値を−1(デクリメント)する。そしてステップS615でシナリオチャネルsCHn関連のデータのチェックサムを算出し、保存する。またステップS616でシナリオチャネルsCHn関連のデータをバックアップ保存する。これでシナリオチャネルsCHnについての1回の処理を終える。
一方、ステップS601で待機時間(delay)=0であることが確認された場合は、演出制御CPU200はステップS603に進み、シナリオチャネルsCHnに登録されているメインシナリオ番号(mcNo)と、メインシナリオ実行ライン(mcIx)に対応するメインシナリオテーブルのアドレスを特定する。
ステップS604では、当該特定したアドレスで示される、メインシナリオテーブルの或るメインシナリオ番号の実行ラインが、終了コードD_SEEND(図22参照)が記述されている最終ラインであるか否かを確認する。
終了コードが記述された最終ラインであった場合は、当該シナリオチャネルsCHnに登録されたシナリオで実行すべき処理は終了したことになるため、ステップS617で、そのシナリオチャネルsCHnに登録されているシナリオをシナリオ登録情報(ワーク)から削除する。
なお、この場合のシナリオ登録の削除は、シナリオ終了に応じた通常の削除である。先に図17で説明したシナリオ削除は、この通常削除以外の、例えば未終了のシナリオをシナリオ登録情報(ワーク)から削除する処理であることを付言しておく。
ステップS604で、メインシナリオテーブルの当該ラインが終了コードではない場合は、演出制御CPU200はステップS605に進み、まず当該シナリオチャネルsCHnのメインシナリオオプション(mcOpt)に、当該ラインのオプション(OPT)をセットする。次にステップS606で、シナリオ番号が0であるか否かを確認し、0でなければステップS607で、ユーザオプション(userFn)に0を代入する。
そしてステップS608で、当該シナリオチャネルsCHnで指定されるサブシナリオの更新を行う。サブシナリオの更新については図19で後述する。
ステップS609では、演出制御CPU200はメインシナリオタイマ(msTm)を+1(インクリメント)する。そしてステップS610では、メインシナリオタイマ(msTm)の値と、メインシナリオテーブルの該当ラインの時間データ(図22参照:msTmで記述)を比較する。先に述べたように、メインシナリオテーブルの各ラインの時間データは、そのラインの終了タイミングを規定する。従ってメインシナリオタイマ(msTm)の値がメインシナリオテーブルの当該ラインに記述された時間データ以上であれば、そのラインの処理は終了し、次のラインを対象とする。その場合ステップS610からS611に進み、シナリオチャネルsCHnのメインシナリオ実行ライン(mcIx)を+1する。つまり次回は、次のラインが対象となるようにする。
またその場合、ステップS612で次のラインがループ指定であるか否かを確認する。図22のメインシナリオテーブルにおいてシナリオ番号1では、最終ラインがシナリオデータループコードD_SELOPとされている例を示したが、このようにループ指定されていた場合は、ステップS613で、メインシナリオ実行ライン(mcIx)にループ行をセットする。
演出制御CPU200は、ステップS614では、1つのラインの終了に応じたクリア処理を行う。即ちメインシナリオタイマ(msTm)、サブシナリオタイマ(scTm)、前回時間(scPrevTm)、サブシナリオ実行ライン(scIx)、サブシナリオ実行ラインlmp(lmpIx)、メインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)をクリアする。
そしてステップS615のチェックサム処理,ステップS616のバックアップ処理を行ってシナリオチャネルsCHnについての1回の処理を終える。
シナリオ更新処理としては、ループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて以上の処理が実行されることになる。
ステップS608で行われるサブシナリオ更新処理を図19Aに詳細に示す。
メインシナリオタイマ(msTm)、シナリオチャネルsCHnと、メインシナリオテーブルに記述されたサブシナリオ番号(scNo)に基づいて、図19Aのサブシナリオの更新処理が行われる。
まずステップS621で演出制御CPU200は、シナリオチャネルsCHnが0〜63のいずれかを示しているか否か、つまり適正値であるか否かを確認する。シナリオチャネルsCHnが64以上であれば、更新処理不能として図19Aの処理を終える。
シナリオチャネルsCHnが適正値であれば、演出制御CPU200はステップS622で、サブシナリオ番号(scNo)とサブシナリオ実行ラインlmp(lmpIx)に対応するランプサブシナリオテーブル(図23A参照)のアドレスを特定する。
演出制御CPU200はステップS623では、ランプデータ登録情報の更新のため、まずランプチャネルdwCHに0をセットする。つまりまずランプチャネルdwCH0を指定した状態とする。
そしてステップS624で、メインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間(実際にはmsTm×16msの時間)が、時間データ(time)以上となっていたら、そのラインについての処理を行う。その場合、ステップS625でランプチャネルdwCHの値が正常(dwCH0〜dwCH15の範囲内)であるか否かを確認する。異常な値であれば処理を終える。正常な値であればステップS626で、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを確認する。
ランプシナリオデータ終了コードD_LSENDが記述されたラインではなければ、演出制御CPU200はステップS627で、当該ラインに記述されているランプチャネルdwCH及びランプナンバを取得し、ステップS628で、取得したランプチャネルdwCHに点灯パターンナンバの登録を行う。
点灯パターンナンバの登録処理を図19Bに示している。この場合、まず演出制御CPU200はステップS651で、当該ラインに記述されているランプチャネルdwCHの値が正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
正常値であれば、ステップS652で、当該ラインに記述されているランプナンバが正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
ランプチャネルdwCH及びランプ番号のいずれもが正常値であれば、ステップS653でワークのランプデータ登録情報における、ランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。
以上の図19Bの処理をステップS628で行ったら、演出制御CPU200はステップS629でサブシナリオ実行ラインlmp(lmpIx)の値を+1し、ステップS630でランプチャネルdwCHの値を+1してステップS624に戻る。
ステップS624で、メインシナリオタイマの時間が、サブシナリオ実行ラインlmp(lmpIx)で示されるラインの時間データ(time)に達していない場合、及びステップS626でランプシナリオデータ終了コードD_LSENDが確認された場合は、演出制御CPU200の処理はステップS631へ進む。
ステップS631ではサブシナリオタイマ(scTm)が0であるか否かを確認する。0でなければ、音及びモータの登録を行わずにステップS639へ進む。この場合ステップS640でサブシナリオタイマ(scTm)の値をデクリメントして、この図19Aの処理を終えることとなる。
ステップS631の時点でサブシナリオタイマ(scTm)=0であれば、演出制御CPU200は処理をステップS632に進め、メインシナリオテーブルに記述されているサブシナリオ番号と、現在処理中のシナリオチャネルsCHnに登録されているサブシナリオ実行ライン(scIx)に対応する音/モータサブシナリオテーブルのアドレスを特定する。
そしてステップS633では演出制御CPU200は、該当する音/モータサブシナリオ番号のテーブルの、サブシナリオ実行ライン(scIx)で示されるラインが、シナリオデータ終了コードD_SEENDが記述された行であるか否かを確認し、シナリオデータ終了コードD_SEENDが記述された行であれば処理を終了する。
シナリオデータ終了コードD_SEENDが記述された行でなければ、演出制御CPU200はステップS634で、サブシナリオタイマ(scTm)に、当該ラインの時間データ(time)から前回時間(scPrevTm)を減算した値を代入する。また前回時間(scPrevTm)には、当該ラインの時間データ(time)を代入する。
そして演出制御CPU200はステップS635で音の登録を行い、またステップS636でモータの登録を行う。詳述は避けるが、図23Bに例示した音/モータサブシナリオテーブルの該当サブシナリオ番号の該当ラインの情報を、図20Cのモータデータ登録情報の任意のモータチャネル、及び図21の音データ登録情報の任意の音チャネルに登録する処理を行う。またステップS637でそのラインに記述されたソレノイド/ユーザオプションの情報も、シナリオ登録情報等に登録する。
そしてステップS638で、サブシナリオ実行ライン(scIx)の値として次のラインの値をセットする。そしてステップS639でサブシナリオタイマ(scTm)が0でなければ、ステップS640でサブシナリオタイマ(scTm)をデクリメントして処理を終える。
図11のステップS110では、以上のように図18,図19の処理が行われ、ワーク上のシナリオ登録情報、ランプデータ登録情報、モータデータ登録情報、音データ登録情報が逐次更新される。これに応じて演出制御が行われることで、シナリオに沿った演出動作が実行される。
(1-6-6:LED駆動データ更新処理)

図11のステップS114のLED駆動データ更新処理を説明する。
この処理は、ランプデータ登録情報に登録されている点灯ナンバ(登録点灯ナンバ(lmpNew)、実行点灯ナンバ(lmpNo))に対応するランプデータテーブルを参照して、LED駆動データを作成する処理である。なお上述のように、ランプデータ登録情報の点灯ナンバには、元々はランプサブシナリオテーブルに記述された、点灯パターンを示すランプナンバがセットされる。ランプナンバは点灯パターンを示すナンバと述べたが、具体的には図28Aで述べるランプデータテーブルのランプデータの番号を示すことになる。
図24はLED駆動データ更新処理を示している。
演出制御CPU200はステップS701でそれまで出力データとしていたLED駆動データをクリアする。
そしてループ処理LP2として、ランプデータ登録情報のランプチャネルdwCH0〜dwCH15のそれぞれについて、ステップS702〜S720の処理が行われる。以下、処理対象のランプチャネルを「dwCHn」と表記して説明する。
ステップS702では演出制御CPU200は対象のランプチャネルdwCHnにおける実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致しているか否かを確認する。先の図19BのステップS653のように点灯パターンナンバの登録が行われるため、最初は一致していない。一致していなければ点灯開始として、ステップS703で、実行点灯ナンバ(lmpNo)に登録点灯ナンバ(lmpNew)の値を代入する。またステップS704で、実行ライン(ofset)を0にセットし、また実行時間(time)を0にセットする。
なお実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致していれば、既に過去に以上のステップS703,S704の処理が行われたものであるため、これらの処理は不要である。
或るランプチャネルdwCHに登録された情報については、登録後、このLED駆動データ更新処理の機会毎に、その情報が反映されて各LEDドライバ90に出力するLED駆動データが作成されていく。
図26Aは、図20Bに示したワークのランプデータ登録情報において、ランプチャネルdwCH0、dwCH5、dwCH8に登録が行われている状態を示している。この図の状態は、図26Bの時点t0の状態の一例である。
即ちランプチャネルdwCH0、dwCH5の情報については、時点t0より以前に、LED駆動データに反映されている。ランプチャネルdwCH0については、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は3(3ライン目)まで進んでいる。またランプチャネルdwCH5についても、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は2(2ライン目)まで進んでいる。時点t0では、ランプチャネルdwCH8は登録直後であり、まだ実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致されていない。この後、上記ステップS703,S704の処理が行われることになる。
なお前述したように本実施形態では、ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。図26Aに示すように、優先度の高いランプチャネルdwCH15はエラー報知用に使用される。ランプチャネルdwCH12,dwCH13,dwCH14等、優先度が高いランプチャネルは、連続予告や確定予告等、比較的信頼度の高い演出用などに用いられる。また優先度が中程度のランプチャネルは可動体演出用、優先度が比較的低いランプチャネルは、会話予告やステップアップ予告など比較的信頼度の低い演出用に用いられ、さらに優先度が低いランプチャネルは、通常変動、リーチ等に同期したランプ演出に用いられる。
このような優先度の設定のため、図26Bのように複数のランプチャネルdwCHの動作が重なる場合、優先度の高いランプチャネルの点灯動作が実行される。例えば時点t0からは、ランプチャネルdwCH0、dwCH5に基づく点灯動作が制限され、dwCH8に基づく点灯が行われるようにLED駆動データが生成される。優先度の低いランプチャネルの情報を反映させないようにするためには、後述するマスクデータが使用される。
続いて図24のステップS705では、演出制御CPU200は実行点灯ナンバ(lmpNo)の値が正常範囲であるか否かを確認する。正常範囲とは、図28Aに示すランプデータテーブルのランプデータとして番号が存在する範囲である。
実行点灯ナンバ(lmpNo)が異常であれば、ステップS719に進む。なおランプチャネルdwCHnが登録されていない空きチャネルの場合も、ここでは異常としてステップS719に進む。
実行点灯ナンバ(lmpNo)が正常であれば、ステップS706に進む。ステップS706では演出制御CPU200は、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、実行ライン(ofset)に対応する、ランプデータテーブルのアドレスを特定する。
またステップS707では、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、マスクデータテーブルのアドレスを特定する。
アドレスの特定のためには演出制御CPU200は、図27のようなランプデータアドレステーブルを参照する。このランプデータアドレステーブルには、各点灯パターン、例えば全体点滅、右側点滅、左側点滅、役物点灯などを実現するためのランプデータ番号のアドレスが示されている。図27の左端の数字は、図23Aのランプサブシナリオテーブルで示されるランプナンバであり、例えばランプナンバ2のランプデータのアドレスの欄には、全体点滅の点灯パターンを行うためのランプデータ番号が記憶されたアドレスが記述されている。
また、マスクデータのアドレスの欄には、そのランプデータ番号の点灯パターンを実行する際に必要なマスクデータが記憶されたアドレスが記憶されている。例えば点灯ナンバ5の右側点滅の点灯パターンを行う際には、センターケースマスクが必要になるが、そのセンターケースマスクを行うためのマスクデータのアドレスが記述されている。
−先行例におけるランプデータテーブルの構造−

図28Aにはランプデータテーブルの一部としてランプデータ1,2を示している。
各番号のランプデータにおける各ラインには、タイマ(frame)としての時間データと点灯データが記述されている。タイマ(frame)は各ラインの点灯データによるLED駆動データの生成を行う時間を規定する。
タイマ(frame)の数値は、1割込処理分の時間(16ms)を単位とした数値である。つまり、図の例において、タイマ(frame)=「4」のラインは、16ms×4=64msに相当する時間を表すものである。
以下、ランプデータテーブルにおいて、各番号のランプデータが書き込まれた各ラインのことを「ラインL」と表記する。
点灯データは、各LEDドライバ90に対応して記述されている。先に図4では、枠ドライバ部61にはn個、盤ドライバ部62にはm個のLEDドライバ90が存在するとしたが、その場合、ランプデータの各ラインLには、図28Aに示すように、(n+m)個のLEDドライバ90のそれぞれに対応して点灯データが記述される。なお図では各LEDドライバ90との対応をLEDドライバ90のスレーブアドレスでw1〜w(n)、b1〜b(m)により示している。
点灯データとしては、図4,図5で説明した、LEDドライバ90の1つの電流端子96(1系列のLED駆動電流生成)に対して4ビット(0h〜Fh)が割り当てられ(「h」は16進表記を示す)、16階調の輝度を指定するようにされている。図5で述べたように、LEDドライバ90には24個の電流端子96−1〜96−24がある。このため、1つの点灯データは、「FFFF000055550000AAAAAAAA(h)」のように、(4×24)ビットの情報となる。仮に図示のランプデータ1の1ライン目のように、LEDドライバ90(w1)についての点灯データが、「FFFF00000000000055550000(h)」であれば、LEDドライバ90(w1)の電流端子96−1〜96−4からは最大輝度「F」を発光させるための駆動電流を出力し、電流端子96−5〜96−16及び96−21〜96−24は非発光(最低輝度)、電流端子96−17〜96−20は輝度「5」としての駆動電流を出力することを指定する情報となる。
ランプデータにはこのような点灯データが、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対して設定されて、かつそれらがラインL毎に設定されることで、時系列的に変化する所定の発光パターンが示されることになる。(図では点灯データは一部のみに例示した。空欄部分は図示を省略したもので、実際には点灯データが記述される)
図28Bにはマスクデータテーブルの例として、マスクデータ1〜5を示している。各マスクデータは、枠側の発光部20wの駆動についてのマスクのため、盤側の発光部20bの駆動についてのマスクのため、全体のマスクのため、センターケースのマスクのため、役物のマスクのためなどとして、必要なマスクパターンが記憶されている。
各マスクデータ1〜5は、それぞれ各LEDドライバ90(w1〜w(n)、b1〜b(m))の各電流端子96−1〜96−24について、消灯を「0h」、マスク無しを「Fh」で示すデータとされている。
例えばマスクデータ1についてみると、枠ドライバ部61におけるLEDドライバ90(w1〜w(n))については、「0000・・・・・00(h)」と、各電流端子96−1〜96−24について消灯が設定され、盤ドライバ部62のLEDドライバ90(b1〜b(m))については、「FFFF・・・・・FF(h)」と、各電流端子96−1〜96−24についてマスク無しが設定されている。つまり枠側の発光部20wのみをマスクすることを指定するデータとなる。(なお、マスクデータ4,5はデータ値の図示を省略している)
−LED駆動データ更新処理の続き−

図24のステップS706,S707では、このようなランプデータテーブル、マスクデータテーブルにおいて、処理中のランプチャネルdwCHnに対応するアドレスを特定するものである。
続いてステップS708で演出制御CPU200は、ランプデータテーブルの該当ライン(現在対象のランプチャネルdwCHnの実行ライン(offset)で示されるラインL)のタイマ(frame)を取得し、これを変数Dtimeに代入する。
ステップS709で演出制御CPU200は、上記ステップS706,S707で特定した該当の点灯データとマスクデータを展開し、LED駆動データを生成していく。この処理については後述するが、現在処理中のランプチャネルdwCHnについての点灯データとマスクデータを、出力するLED駆動データに反映させる処理となる。
ステップS710ではランプチャネルdwCHnの情報である実行時間(time)を+1する。
ステップS711では変数Dtimeと実行時間(time)を比較する。変数Dtimeには現在実行中のラインのタイマ(frame)が代入されている。実行時間(time)はLED駆動データ更新処理毎(16ms毎)に上記ステップS710で+1される。従ってDtime≦timeとなれば、現ラインの終了タイミングとなる。Dtime≦timeではなければ、まだ現在のラインの終了に至らないとしてステップS711からS719に進む。Dtime≦timeの場合は、現在のラインの終了としてステップS711からS712に進む。
演出制御CPU200はステップS712で実行時間(time)を0にリセットする。またステップS713で、実行ライン(offset)の値を+1する。つまり次のラインが対象となるようにする。
ステップS714では演出制御CPU200は、実行ライン(offset)に対応するランプデータテーブルの該当ラインのアドレスを特定する。そしてステップS715,S717で、そのラインに終了コード(D_DTEND)が記述されているか、ループコード(LMP_LP)が記述されているかを確認する。
終了コード(D_DTEND)が記述されていた場合は、ステップS716で、当該ランプチャネルdwCHnの登録点灯ナンバを0に更新する。つまりワーク上で、当該ランプチャネルdwCHの登録に応じた処理が完了したことを示すようにする。
ループコード(LMP_LP)が記述されていた場合はステップS718で、実行ライン(offset)の値をループ先のアドレスに更新する。
ステップS719で演出制御CPU200は、ランプチャネルdwCHnのLED駆動データのチェックサムを算出する。またステップS720でバックアップ用データを保存する。
以上で、1つのランプチャネルdwCHnを対象としたLEDデータ更新を終える。ループ処理LP2として、以上の処理をランプチャネルdwCH0〜dwCH15まで順次行うことになる。
各ランプチャネルdwCHnでのLED駆動データの更新は、ステップS709で行われるが、これは次のような処理となる。
図29Aは点灯データとマスクデータを展開して生成したLED駆動データを記憶する出力データバッファ(発光駆動データ記憶部)を模式的に示している。
出力データバッファは、ランプデータテーブル及びマスクデータテーブルと同様に、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対応して用意される。図示する1つのマスは、1つのLEDドライバ90に対応する(4×24)ビットの情報のバッファ領域を示している。
このような出力データバッファに対して、ステップS709では、マスクデータをアンド(論理積)で展開し、点灯データをオア(論理和)で展開する処理が行われる。これがループ処理(LP2)により、各ランプチャネルdwCH0〜dwCH15について順次ステップS709で行われる。
例えば図26で示した時点t0の場合、出力データバッファは、ランプデータ2のマスクデータ(図27参照:マスクなし)がアンド展開され、ランプデータ2の3ライン目の点灯データがオア展開された状態の後、ランプデータ5のマスクデータ(図27参照:センターケースマスク)がアンド展開され、ランプデータ5の2ライン目の点灯データがオア展開された状態となっている。
上述の通りマスクデータは0h(=0000)が消灯、Fh(=1111)がマスクなしである。従ってマスクデータをアンドで展開するということは、その時点までの出力データバッファの値について、消灯(マスク)したいビットを「0」とし、マスクしないビットは変更しないということになる。
さらに点灯データをオアで展開するということは、処理中のランプチャネルdwCHの点灯データが、マスク後の出力データバッファに反映されるということになる。
この処理をランプチャネルdwCH0〜dwCH15について順次行うことで、高い番号のランプチャネルほど優先されたLED駆動データが出力データバッファ上に形成されることになる。
このようにランプデータ登録情報(図20B参照)には、複数の発光演出に対応する複数種類のランプデータが、優先順位が設定された複数の階層にセットされる場合に、優先順位が低い順にランプデータを反映させていって、発光演出用のLED駆動データを作成することで、簡易な処理で優先順位を反映した発光演出用のLED駆動データ生成が可能となる。
(1-6-7:LED出力処理)

上述のようにLEDデータ更新処理で生成されたLED駆動データは、図11のステップS115で、実際に各LEDドライバ90に出力される。
この場合の演出制御CPU200は、LED駆動データの一送信単位のシリアルデータを、第1系統、第2系統の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)に対して略同時的に出力する。
例えば図29Bに示すように、シリアルデータ送信チャネルch1により枠ドライバ部61のLEDドライバ90(w1〜w(n))にLED駆動データの送信を行い、シリアルデータ送信チャネルch2により盤ドライバ部62のLEDドライバ90(b1〜b(m))にLED駆動データの送信を行う。
なお、シリアルデータ送信チャネルch1、ch2によるLED駆動データの送信を並行して同時的に行うのはあくまで一例であり、必ずしも同時的でなくても良い。
図30は、1つのLEDドライバ90に送信するLED駆動データのシリアルデータ構造を示している。
例えば図29Bに示した、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対しては、この図30の構造のシリアルデータでLED駆動データが送信される。なおこの図30は、図4、図5で説明したシリアルデータDATA及びイネーブル信号ENABLEを示している。
このシリアルデータは、イネーブル信号ENABLEがONとされた期間に、1バイト毎順次送信が行われる。つまり当該構造のシリアルデータは、各1バイトが一送信単位となる。
当該シリアルデータDATAは、1バイトのスレーブアドレス、1バイトのデータ設定開始レジスタアドレス(SX)、各1バイトの、アドレス(SX)への書込データ、アドレス(SX+1)への書き込みデータ、・・・アドレス(SX+23)への書き込みデータの合計26バイトで構成される。
このようなシリアルデータDATAは、イネーブル信号ENABLEで規定される期間に、LEDドライバ90に取り込まれる。
「スレーブアドレス」は各LEDドライバ90のデバイスIDであり、w1〜w(n)、又はb1〜b(m)の別を識別する1バイトコードである。
「データ設定開始レジスタアドレス(SX)」は、LEDドライバ90内のデータ取り込みのためのレジスタの先頭を指定する情報である。例えば図5のデータバッファ/PWMコントローラ93の内部レジスタの指定情報である。本実施形態で採用するLEDドライバ90は、シリアルデータ取り込みのために例えばレジスタアドレス00h〜2Chのレジスタ(各8ビット)が用意される。そのうちのレジスタアドレス15h〜2Chの24個のレジスタ(各8ビット)は、24個の電流端子96−1〜96−24に対応した点灯データ(PWM階調指示データ)を入力するレジスタ(階調値設定部)とされている。そのため「データ設定開始レジスタアドレス(SX)」としてはレジスタアドレス15hを指定する。
「アドレス(SX)への書込データ」としては、「データ設定開始レジスタアドレス(SX)」で指定されたレジスタアドレス(本実施形態では「15h」)のレジスタへの書き込みデータ、即ち電流端子96−1に対応するLED駆動データがセットされる。
「アドレス(SX+1)への書込データ」としては、「データ設定開始レジスタアドレス(SX)」で指定されたレジスタアドレス+1(本実施形態では「16h」)のレジスタへの書き込みデータ、即ち電流端子96−2に対応するLED駆動データがセットされる。
以下同様であり、「アドレス(SX+23)への書込データ」としては、「データ設定開始レジスタアドレス(SX)」で指定されたレジスタアドレス+23(本実施形態では「2Ch」)のレジスタへの書き込みデータ、即ち電流端子96−24に対応するLED駆動データがセットされる。
なお、これら書き込みデータは8ビット構造であるが、上述のように1つの点灯データは「0h(=0000)」〜「Fh(=1111)」の4ビット構造である。4ビットで16階調の輝度を表す。一方、PWM階調指示データを入力するレジスタアドレス15h〜2Chの各レジスタ(各8ビット)は、8ビットで256階調に対応可能である。
本実施形態の場合、点灯データは16階調のデータとするため、レジスタアドレス15h〜2Chの各レジスタへの8ビットの書き込みデータとしては、上位4ビットに、点灯データをセットするようにしている。この点については後述する。
また、図11のステップS113ではLEDドライバ90の初期化を行うと述べたが、これは具体的には、使用しないレジスタアドレス00h〜14hのレジスタにデフォルト値をセットする送信処理となる。この点についても後述する。
図25で、16ms処理のステップS115で行われるLED駆動データ出力処理を説明する。
演出制御CPU200は図25のステップS801で、スタート値に対応するシリアルデータ出力チャネルch1、ch2のLED駆動データ(図29Aの出力データバッファ)の先頭アドレスを特定する。
スタート値とは、最初に送信するLEDドライバ90の値である。本実施形態ではシリアルデータ出力チャネルch1、ch2からそれぞれ、LEDドライバ90(w1)、LEDドライバ90(b1)に対して最初に送信を行うため、ここでは図29Aの出力データバッファにおいてw1用のLED駆動データが格納された先頭アドレスと、b1用のLED駆動データが格納された先頭アドレスを特定することになる。
次にステップS802で演出制御CPU200は、スタート値に対応する、シリアルデータ出力チャネルch1、ch2のスレーブアドレスを特定する。即ち「w1」「b1」を示すアドレスコードである。
そしてループ処理LP3として、ドライバナンバ個数分、ステップS803〜S815の処理をループして実行する。
シリアルデータ出力チャネルch1からは枠ドライバ部61のn個のLEDドライバ90に送信を行い、シリアルデータ出力チャネルch2からは盤ドライバ部62のm個のLEDドライバ90に送信を行うものであるため、ループ処理の回数はn回又はm回(n、mの多い方の値)となる。仮にn<mとすると、m回となる。
ステップS803では、演出制御CPU200はシリアルデータ出力チャネルch1,ch2におけるイネーブル信号ENABLEをONとする。
そしてステップS804で演出制御CPU200は、シリアルデータ出力チャネルch1,ch2のシリアルデータDATAの出力として、最初の一送信単位(1バイト)のデータ送信、即ちこの場合は図30のシリアルデータ構造に示した先頭1バイトのスレーブアドレスを送信出力する。シリアルデータ出力チャネルch1,ch2については並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS805,S806で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
シリアルデータ出力チャネルch1,ch2についての送信出力完了が確認されたら、演出制御CPU200はステップS807で、次の一送信単位(1バイト)のデータ送信として、データ設定開始レジスタアドレス(SX)(本例の場合15h)を送信出力する。この場合も、シリアルデータ出力チャネルch1,ch2について並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS808,S809で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
ステップS808,S809でシリアルデータ出力チャネルch1,ch2についての送信出力完了が確認されたら、演出制御CPU200はステップS810で、一送信単位(1バイト)のデータ送信として、レジスタアドレス(SX=15h)〜(SX+23=2Ch)への書込データ(=LED駆動データ)を送信出力する。
まずはレジスタアドレス(15h)への1バイトのLED駆動データ送信を、シリアルデータ出力チャネルch1,ch2について並行して同時的に行う。そしてステップS811,S812で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
送信完了を確認したら、ステップS813で、合計24バイト、つまりレジスタアドレス15h〜2ChまでのLED駆動データ送信完了が確認されるまで、1バイトずつ、ステップS810の送信を実行していく。従って、次はレジスタアドレス(16h)への1バイトのLED駆動データ送信を、シリアルデータ出力チャネルch1,ch2について行う。さらにその送信確認後、レジスタアドレス(17h)へのLED駆動データ送信が行われる。以降も、送信完了待機→レジスタアドレス(18h)へのLED駆動データ送信→送信完了待機→レジスタアドレス(19h)へのLED駆動データ送信→送信完了待機・・・→レジスタアドレス(2Ch)へのLED駆動データ送信→送信完了待機という処理が行われていく。
LED駆動データについて24バイトの送信出力が完了したら、図30の構造の1つのLEDドライバ90に対するシリアルデータ出力が完了したことになる。そこでステップS814でイネーブル信号ENABLEをオフとし、次に対象とするスレーブアドレスを+1する。そしてループ処理の1回を終える。
図31は、以上の1回のループ処理で送信されるデータを示している。シリアルデータ出力チャネルch1,ch2において図示のように並列的にスレーブアドレス、データ設定開始レジスタアドレス、LED駆動データLPDT1,LPDT2・・・LPDT24が順次送信される。
このような送信が行われ、LEDドライバ90にLED駆動データがセットされる。LEDドライバ90側では、各レジスタ(15h〜2Ch)に書き込まれたLED駆動データLPDT1,LPDT2・・・LPDT24に示される発光輝度(0h〜Fhの16階調)に基づいて、各電流端子96−1〜96−24の電流量が制御され、各電流端子96−1〜96−24に接続された各系列のLED120の発光が行われる。
続いて2回目のループ処理として、LEDドライバ90(w2)、LEDドライバ90(b2)について、同様にステップS803〜S815の処理が行われる。さらにその後、3回目のループ処理として、LEDドライバ90(w3)、LEDドライバ90(b3)について、同様にステップS803〜S815の処理が行われる。
以降、LEDドライバ90(w(n))、LEDドライバ90(b(m))の全てに送信するまで、ループ処理LP3が繰り返される。なお、n<mの場合、枠ドライバ部61のn個のLEDドライバ90の全てにシリアルデータ送信を完了した後は、盤ドライバ部62の残りのLEDドライバ90に対してのみステップS803〜S815の処理が行われることになる。
m回のループ処理LP3で図29Bに示したような、(n+m)個の各LEDドライバ90へのシリアルデータ出力が実行され、LED駆動データ出力(図11のステップS115の処理)が完了する。なお、搭載されるLEDドライバ90の数が異なれば、当然ループ回数も変化する。
また以上の例は2つのシリアルデータ出力チャネルch1,ch2を用いる例で述べているが、3以上のシリアルデータ出力チャネルを利用する場合も、それらが並行して同時的にシリアルデータ送信が行われるようにすれば良い。
以上の図25の処理のように、演出制御CPU200は、第1系統(シリアルデータ出力チャネルch1)と第2系統(シリアルデータ出力チャネルch2)の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)には、一送信単位のシリアルデータを同時的に送信する。そして当該送信の完了後、次の一送信単位のシリアルデータを、第1系統と第2系統の駆動信号出力手段に対して略同時的に送信する。このような処理で、LED駆動データを各LEDドライバ90へ送信していく。
これにより全体のシリアルデータ送信動作に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
この理由を説明する。
図32は演出制御CPU200がシリアルデータ送信に使用するクロック信号CLK、送信データ、TDRE(送信データエンプティフラグ)、及び送信データの送信データレジスタへの書込タイミングを示している。
送信データとは、上述のスレーブアドレス、データ設定開始レジスタアドレス、LED駆動データLPDT1,LPDT2・・・LPDT24に相当する。ここでは1送信単位としての8ビットをデータd0〜d7として示している。
演出制御CPU200は、図25のステップS804,S807,S810のそれぞれで一送信単位の8ビットデータを送信する場合、各シリアルデータ出力チャネルch1,ch2における送信データレジスタに8ビットの送信データを書き込む。送信データレジスタへ書き込まれた送信データは、クロック信号CLKのタイミング毎に1ビットずつ送信出力される。
ここで、TDREは、送信データレジスタに送信データを書き込むと「0」となり、送信データレジスタに有効なデータが存在していることを示す。そして送信データレジスタのデータが実際に送信出力(送信用シフトレジスタへのロード)されて送信が開始されると「1」になり、送信データレジスタに有効なデータが存在しないことを示す。
従って演出制御CPU200の送信処理としては、TDREが「1」となったことを確認して、8ビットの送信データを送信データレジスタへ書き込み、その次の8ビットの送信データの書き込みは、次にTDREが「1」となるまで待機する。即ち図32に待機時間TWとして示す期間は、次の送信データの処理ができないことになる。
シリアルデータ送信に関し、従来は、1つのシリアルデータ出力チャネルから例えば第1系統の駆動信号出力手段に一送信単位(8ビット)のシリアルデータを送信し、当該送信の完了後、次の送信チャネルから第2系統の駆動信号出力手段に一送信単位(8ビット)のシリアルデータを送信していく、というように送信動作を行っていた。例えば図25のステップS804〜S806に相当する処理は、従来通常は、
(ST1)ch1からスレーブアドレス出力(送信データレジスタへの書込)
(ST2)送信出力完了待機
(ST3)ch1からデータ設定開始レジスタアドレス出力(送信データレジスタへの書込)
(ST4)送信出力完了待機
(ST5)ch1からLED駆動データLPDT1出力(送信データレジスタへの書込)
(ST6)送信出力完了待機
(ST7)ch1からLED駆動データLPDT2出力
(ST8)送信出力完了待機
・・・中略・・・
(ST51)ch1からLED駆動データLPDT24出力
(ST52)送信出力完了待機
(ST53)ch2からスレーブアドレス出力
(ST54)ch2送信出力完了待機
(ST55)ch2からデータ設定開始レジスタアドレス出力
(ST56)送信出力完了待機
(ST57)ch2からLED駆動データLPDT1出力
(ST58)送信出力完了待機
(ST59)ch2からLED駆動データLPDT2出力
(ST60)送信出力完了待機
・・・中略・・・
(ST103)ch2からLED駆動データLPDT24出力
(ST104)送信出力完了待機
というように行っていた。
この場合、シリアルデータ出力チャネルch1,ch2のそれぞれで一送信単位の送信毎に待ち時間が発生し、送信処理効率が悪い。
これに対して本構成では、
(S804)ch1、ch2からスレーブアドレス出力(送信データレジスタへの書込)
(S805,S806)ch1、ch2送信出力完了待機
というように、同時的に両シリアルデータ出力チャネルch1,ch2での送信処理を行うようにすることで、処理が効率化される。
ステップS807〜S809の処理、及びステップS810〜S812の処理についても同様である。
そして、1つのLEDドライバ90に対する送信は1ループ処理において1つの送信チャネル毎に26バイト分(26回の送信データレジスタへの書込)となる。各シリアルデータ出力チャネルch1,ch2について、同時的な処理を実行しなければ、総待機時間は、1回のループ処理期間でほぼ(52×TW)となる。これが本実施形態の場合、1回のループ処理期間でのほぼ(26×TW)と、著しく短縮できる。
図11のステップS115のLED駆動データ出力処理において、このようにシリアルデータ出力処理が効率化できることで、演出制御CPU200の処理負担は大きく軽減される。
また本構成では、シリアルデータ送信されるLED駆動データは、発光輝度(階調)を示すデータとされ、上記のように例えば4ビットで16階調の発光駆動を実現する。このような階調制御を可能とすることで、より多様な演出効果を実現することができる。
なお、発光輝度を16階調とする例を述べたが、もちろんより多階調としても良い。
また、パチンコ遊技機1は、枠部(前枠2、外枠4及びガラス扉5)と、この枠部に取り付けられる遊技盤部(遊技盤3)とを備えている。そして第1系統の駆動信号出力手段(枠ドライバ部61)は、前枠2に設けられた演出手段であるランプ部63(発光部20w)にLED駆動信号を出力する複数のドライバ回路(LEDドライバ90)で構成され、第2系統の駆動信号出力手段(盤ドライバ部62)は、遊技盤3に設けられた演出手段であるランプ部64(発光部20b)にLED駆動信号を出力する複数のドライバ回路(LEDドライバ90)で構成されている。
このような構成により、枠ドライバ部61のLEDドライバ90はすべて枠側の発光部20wに対応し、また盤ドライバ部62のLEDドライバ90はすべて盤側の発光部20bに対応することとなり、これにより配線の容易化、効率化、演出制御設定の容易性などを実現できる。
−点灯データのビット変換について−

ところで、パチンコ遊技機1においては、ステップS810で、上述のように4ビット構造とされている点灯データを8ビットに変換したものを一送信単位のシリアルデータとしてLEDドライバ90に出力している。
このビット変換について図33で説明する。図33Aは1つのLEDドライバ90に送信する4×24ビットの点灯データの例を示している。即ち図29Aの出力データバッファの1マス分に相当するデータの例である。先頭の「F8h」(図では「h」を省略)は、LEDドライバ90のレジスタアドレス15h、16hに送信すべき点灯データである、つまり「Fh」はLEDドライバ90のレジスタアドレス15hに書き込む、電流端子96−1についての階調値としての点灯データであり、「8h」は、レジスタアドレス16hに書き込む、電流端子96−2についての階調値としての点灯データである。次の「0Fh」は、同様にレジスタアドレス17h、18hに対応する。以下同様で、最後の「00h」は、レジスタアドレス2Bh、2Chに対応する。
ここで図33Aの「F8h」「0Fh」・・・「00h」のように、演出制御CPU200の内部処理単位としての8ビット単位で区切って考えた場合に、上位4ビット(例えば「F8h」のうちの「Fh」)は、奇数レジスタアドレス(例えばレジスタアドレス15h)に対する点灯データで、下位4ビット(例えば「F8h」のうちの「8h」)は偶数レジスタアドレス(例えばレジスタアドレス16h)に対する点灯データとなる。
なお、ここでの「奇数レジスタアドレス」「偶数レジスタアドレス」というのはLEDドライバ90のレジスタ設計に応じた一例である。あくまで送信先を、レジスタアドレス15h〜2Chとした場合として便宜的に述べているにすぎない。
この場合に、奇数レジスタアドレス(15h、17h・・・2Bh)への点灯データについては、演出制御CPU200は、8ビットデータの下位4ビットをマスクして、それをLEDドライバ90に送信する。一方、偶数レジスタアドレス(16h、18h・・・2Ch)への点灯データについては、演出制御CPU200は、8ビットデータの上位4ビットをマスクして、それを4ビットシフトしたものをLEDドライバ90に送信する。
つまり結果的に4ビットの点灯データを8ビットに変換して送信する。
このビット変換として、「F8h」の場合を図33B、図33Cに示した。
図33Bは、点灯データ「Fh」をレジスタアドレス15hに送信する場合の処理を示している。図29Aの出力データバッファから取り出す点灯データは、各4ビットの2つの点灯データである「F8h」=「11111000」となる。このデータに対し、下位4ビットをマスクする。例えばマスクデータ「F0h」=「11110000」を用いてアンドをとる。これにより、図示のように、レジスタアドレス15hに送信するシリアルデータ「11110000」=「F0h」が得られることになる。この場合、電流端子96−1からは最大階調値(F0h)の駆動電流出力が行われることとなる。
一方、図33Cは、点灯データ「8h」をレジスタアドレス16hに送信する場合の処理を示している。上記のとおり図29Aの出力データバッファから取り出した点灯データは「F8h」=「11111000」である。このデータに対し、上位4ビットをマスクする。例えばマスクデータ「0Fh」=「00001111」を用いてアンドをとる。これにより、図示のように「00001000」というデータが得られる。さらにこの場合、当該データを4ビットシフトすることで、レジスタアドレス16hに送信するシリアルデータ「10000000」=「80h」が得られることになる。この場合、電流端子96−1からは中間的な階調値(80h)の駆動電流出力が行われることとなる。
以上のように、パチンコ遊技機1では、演出制御部51は、例えば演出制御ROM201に第1ビット数(例えば8ビット)より少ないビット数である第2ビット数(例えば4ビット)の発光輝度情報(点灯データ)をランプデータテーブルなどの形式で記憶する。そして演出制御CPU200は、第2ビット数の発光輝度情報を、第1ビット数に変換してLED駆動データを生成し、そのLED駆動データを発光駆動信号出力手段であるLEDドライバ90にシリアルデータとして送信する。
LEDドライバ90のレジスタアドレス15h〜2Chが、8ビットのPWMデータを入力可能とされていることは、8ビットの点灯データとすれば256階調のLED発光制御が可能である。しかしながら、一般に遊技機の発光演出に用いる発光部20w、20bに対する制御としては、256階調は必要ではない。具体的には「00h」「10h」「20h」・・・「F0h」の16階調で十分である。
そこでパチンコ遊技機1では、点灯データを4ビット構造として、16階調表現を行うようにする。そしてLEDドライバ90への出力時には、4ビットを8ビットに変換して送信する。
このようにすることで、演出制御部51は内部ROM(演出制御ROM201)に記憶する点灯データのデータ容量を大幅に削減でき、メモリ容量消費を抑制できることになる。
また、近年の汎用的なLEDドライバは、256階調などの高性能タイプのものの方が生産量が多く、価格的にも有利であることが多い。そのため、例えば16階調が必要な場合に、16階調の制御能力を持つLEDドライバを採用するよりも、256階調のLEDドライバを採用する方が、コストメリットが得られ、又、安定的入手性もよい。これにより製造上及びコスト的なメリットが得られる。
また上述したように、演出制御CPU200は、4ビットの点灯データを8ビットにおける上位4ビットに配置して、8ビットのLED駆動データ(送信するシリアルデータ)を生成する。
このように上位4ビット配置により、16階調のLED駆動データを生成でき、またその処理は例えば図33B、図33Cの例のように、非常に簡易な処理である。このためビット数変換の処理負担はほとんど問題とならない。
なお上記例では、8ビットに変換した点灯データを「00h」「10h」「20h」・・・「F0h」とするとしたが、次のような例も考えられる。
この場合、4ビットの点灯データが「Fh」のときの、8ビットのシリアルデータ「F0h」が制御上の最大輝度となるが、LEDドライバ90は「FFh」まで対応できる。そこで、8ビットのシリアルデータの「F0h」の下位4ビットを「1111」に変換して「FFh」(=11111111)を送信するようにしてもよい。つまり送信するシリアルデータは「00h」「10h」「20h」・・・「E0h」「FFh」とする。このようにすると、LEDドライバ90の発光駆動能力上での最大輝度の発光を実行させることが可能となる。
また、「00h」以外の「10h」「20h」・・・「F0h」について、下位4ビットを「1111」に変換し、「1Fh」「2Fh」・・・「FFh」として送信してもよい。これにより、各階調での発光輝度を上げ、演出効果を向上させることができる。
また、ここまでは4ビットの点灯データを8ビットとする例で述べたが、これは一例である。第1ビット数(例えば8ビット)はLEDドライバ側の設計に応じて決められる。また第2ビット数(例えば4ビット)は、表現したい階調に応じて設定すればよい。例えば2階調なら1ビット、4階調なら2ビット、8階調なら3ビット・・・とすれば良い。
また本実施形態では、シリアルデータ出力としてLED駆動データ送信を行うものであるが、この第2ビット数の点灯データを第1ビット数に変換して発光駆動ドライバに送信するという処理は、パラレルデータ出力、或いは無線送信出力などにも応用でき、その場合に送信先の階調能力と、求める階調表現の差がある場合に、送信元のデータ記憶容量の低減効果を得ることができる。
[1-7.実施形態の発光駆動手法]
(1-7-1.実施形態の発光駆動情報格納手法)

先行例としてのパチンコ遊技機1においては、シナリオデータ(演出進行データ)に従った発光部20b、20wの発光動作を実現するために、先の図28Aに示したランプデータテーブルのように、LED120の点灯データを格納したテーブルを演出制御ROM201に記憶させている。
上述のように、シナリオデータ(ランプサブシナリオテーブル:図23A参照)には、ランプデータテーブルにおけるランプデータ番号(ランプナンバ)の情報が含まれ、該ランプデータ番号と実行中のライン(ラインL)の情報とに基づき、ランプデータテーブルから各LED120の点灯データが読み出されて、それぞれ対応するLEDドライバ90に出力される。
ここで、図28Aに示したように、先行例におけるランプデータテーブルでは、各ランプデータにおけるラインLごとに、LED120一つ一つの点灯データを格納している。
前述のように、ランプデータテーブルに格納されるLED120一つあたりの点灯データのデータ容量は4ビットである。また、LEDドライバ90一つあたりのLED数は24、LEDドライバ90の総数は32である。
よって、先行例において、ランプデータテーブルにおける一つのラインLに対しては、
4ビット×24×32=3072ビット
のデータが格納される。
さらに、ランプデータテーブルにおけるラインLの総数をLnとすると、ランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)は、
3072Lnビット
と表すことができる。
先行例におけるランプデータテーブルでは、各LED120の点灯データに対して、該点灯データによる発光状態(或いは非発光状態)を継続する時間長の情報、具体的にはタイマ(frame)の情報を対応づけ、これら点灯データとタイマとを対応づけた情報を各ラインLに格納している。
パチンコ遊技機1において、演出発光動作における発光時間の最小単位は、1割込み処理分の時間(本例では16ms)とされている。このため、ランプデータテーブルにおいては、タイマの情報を格納せず、各ラインLが1割込み処理分の時間を表すものとして扱うことが考えられる。
しかしながら、このように1ラインL=1割込み処理分の時間として各LED120の点灯データを格納した場合には、テーブルに格納される点灯データの重複格納量が増大し、データ容量の増加を招く。例えば、ランプナンバで特定された発光パターンが所定のLED120のみを「64ms点灯」→「64ms消灯」→「64ms点灯」させて点滅させるというパターンであったとする。この場合、「64ms点灯」、「64ms消灯」、「64ms点灯」の各々では、各LED120の点灯データは共通となる。具体的に、ラインL=1割込み処理分の時間とした場合、「64ms点灯」に対応した四つのラインLに対してそれぞれ同一の点灯データを格納することになる。同様に「64ms消灯」、さらにそれに続く「64ms点灯」それぞれについても、対応した四つのラインLに対してそれぞれ同一の点灯データを格納することになり、テーブルに格納される点灯データの重複格納量が増大してしまう。
そこで、先行例においては、各ラインLの点灯データに対してタイマ(frame)の情報、すなわち動作の継続時間長を表す情報を対応づけて格納するようにし、いわば、点灯データを時間方向に圧縮している。これにより、テーブルにおける点灯データの重複格納量の低減が図られ、発光制御に係るメモリ消費量の削減が図られている。
しかしながら、遊技機においてメモリ(演出制御ROM201)の記憶容量は有限であり、可能な限り消費量は削減されるべきである。
本実施形態では、発光制御に係るデータ記憶容量の削減を図ることで、遊技機におけるメモリ消費量の削減を図る。
図34は、実施形態におけるランプデータテーブルのデータ構造を模式的に表している。
先ず、実施形態のランプデータテーブルにおいても、先行例と同様、各ラインLにはタイマ(frame)の情報を格納するものとし、時間方向での格納データ圧縮を図っている。
そして、実施形態のランプデータテーブルでは、各ラインLに点灯データではなく発光パターン識別子を格納するものとしている(図中「パターン1」「パターン2」等)。
発光パターン識別子は、複数個の発光素子による発光パターンを一意に識別するための識別子である。具体的に、本例では、所定複数個の発光素子の群を一つの単位発光素子群としたときに、該単位発光素子群の発光パターンを一意に識別するための識別子とされている。本例における単位発光素子群は、一つのLEDドライバ90により発光駆動されるLED群(本例では24個)として定められている。
図34に示すように、本例のランプデータテーブルでは、各ランプナンバのランプデータにおける各ラインLにおいて、w1〜w(n)及びb1〜b(m)の各LEDドライバ90ごとの発光パターン識別子が格納されている。
ここで、単位発光素子群がとり得る発光パターンは、パチンコ遊技機1で実行され得る発光動作の種類が有限であることから、有限である。発光パターン識別子としては、パチンコ遊技機1で実行される得る発光動作に応じて各単位発光素子群がとり得る発光パターンごとに定義しておく。
以下、このように定義される発光パターン識別子の総数を「X」と表記する。
発光演出動作に伴う単位発光素子群ごとの発光パターンは、同一のラインL、或いは異なるラインL間において重複し得るものである。
例えば、或るランプナンバ(ランプナンバyとする)に対応する発光パターンが、上記で例示したものと同様、所定のLED120のみを「64ms点灯」「64ms消灯」「64ms点灯」させるというパターンであったとする。この場合、該ランプナンバyのランプデータにおいては、1番目のラインLには所定のLED120を「64ms点灯」させそれ以外のLED120を消灯させるための単位発光素子群ごとの発光パターン識別子が格納される。2番目のラインLには、所定のLED120を「64ms消灯」させそれ以外のLED120を消灯させるための単位発光素子群ごとの発光パターン識別子が格納され、さらに、3番目のラインLには所定のLED120を「64ms点灯」させそれ以外のLED120を消灯させるための単位発光素子群ごとの発光パターン識別子が格納される。
このようなケースにおいて、各ラインLでは、点滅対象のLED120以外のLED120については発光パターンが同一とされるため、異なる単位発光素子群の間で発光パターン識別子が重複し得る。また、各ラインLの間で見ても、点滅対象のLED120以外のLED120については発光パターンが同一に維持されるため、該当する単位発光素子群については、ラインL間で発光パターン識別子が重複し得る。さらに、1番目と3番目のラインL間においては、点滅対象のLED120の発光パターンは同一であるため、該当する単位発光素子群についてはラインL間で発光パターン識別子が重複する。
このような点からランプデータテーブルにおいては、図34に例示するように、格納される発光パターン識別子に重複が生じるものである。例えば図中、ランプデータ1(ランプナンバ1に対応したランプデータ)における1番目のラインLでの「パターン1」の重複や、ランプデータ2における1番目のラインLと3番目のラインLの間での「パターン120」の重複等である。
なお、発光パターン識別子の重複は、同一ランプナンバのランプデータ中に限らず、異なるランプナンバのランプデータ間においても生じ得るものである(図中「パターンX」等を参照)。
なお、図34においても、先の図28Aと同様にランプデータテーブルに格納される一部のランプナンバに対応したランプデータのみを示したが、ランプデータテーブルにはシナリオデータにより指示され得る全てのランプナンバに対応するランプデータが格納されるものである。
上記のように実施形態のパチンコ遊技機1では、ランプデータテーブルにおいて、異なる発光素子群について共通の発光パターン識別子(発光パターン情報)が記憶される。
実施形態のパチンコ遊技機1では、ランプデータテーブルには点灯データそのものではなく発光パターンの種別を識別するための発光パターン情報が格納されているため、該発光パターン情報を点灯データに変換するための変換テーブル(点灯データテーブル)が演出制御ROM201に格納されている。
図35は、変換テーブルのデータ構造を模式的に示している。
変換テーブルにおいては、合計X個となる発光パターン識別子ごとに、単位発光素子群を構成するLED120ごとの点灯データが格納されている。
本例においても、先行例と同様、LED120一つあたりの点灯データは4ビットデータとされている(つまり先行例と同様に4ビット→8ビット変換を行うことを前提としている)。本例では、単位発光素子群を構成するLED数は「24」であることから、一つの発光パターン識別子に対して格納される点灯データのビット数は「96」である。
このような変換テーブルにより、シナリオデータに基づきランプデータテーブルから特定される単位発光素子群ごとの発光パターン識別子を、LED120ごとの点灯データに変換することができる。
このようにLED120ごとの点灯データが得られた以降の処理については先行例の場合と同様である。この点の詳細については後に改めて説明する。
ここで、仮に、パチンコ遊技機1において単位発光素子群がとり得る発光パターンの種類の数「X」が「1000」であるとする。
この場合、発光パターン識別子のビット数としては、10ビット(1024通りの表現が可能)あればよい。
前述のように、ランプデータテーブルにおけるラインLの総数をLnとおくと、この場合におけるランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)としては、
10ビット×32(ドライバ数)×Ln=320Lnビット
と表すことができる。
一方、変換テーブルは、発光パターン識別子(ここでは1000個)ごとに、単位発光素子群分の点灯データ(データ容量=96ビット:4×24)を格納しておけばよい。従って、変換テーブルの総データ容量は、
96ビット×1000=96000ビット
と表すことができる。
例えば、ランプデータテーブルにおける総ライン数Ln=1000とすると、先行例におけるランプデータテーブルの総データ容量は、
3072ビット×1000=3072000ビット
であり、実施形態におけるランプデータテーブル+変換テーブルの総データ容量は、
320ビット×1000=320000ビット+96000ビット=416000ビット
である。
このようにX=1000、Ln=1000の例においては、先行例に対しメモリ消費量を約13%に抑えることができる。
実施形態において、このようにメモリ消費量が削減されるのは、先行例においては前述したランプデータテーブルにおける発光パターンの重複部分にそれぞれ点灯データを格納していたのに対し(つまり点灯データの重複格納が生じていたのに対し)、実施形態では、該重複部分の点灯データは、該重複部分に格納された発光パターン識別子と対応づけられて変換テーブルにおける1箇所にのみ格納されるためである。
この点から理解されるように、実施形態の発光駆動情報格納手法によれば、点灯データ(発光輝度情報)の重複格納量の抑制が図られるものである。
(1-7-2.実施形態のLED駆動データ更新処理)

上記により説明した実施形態としてのランプデータテーブル及び変換テーブルに対応して、この場合の演出制御CPU200は、先の図24に示したLED駆動データ更新処理に代えて、図36に示すLED駆動データ更新処理を実行する。実施形態において、演出制御CPU200が行うLED駆動データ更新処理以外の各処理については先の図11〜図23及び図25〜図33で説明したものと同様となることから重複説明は避ける。
なお、図36において、既に説明済みとなった部分と同様となる部分については同一のステップ番号を付して説明を省略する。
図36に示すように、この場合のLED駆動データ更新処理においても、図24の場合と同様にステップS701〜S708までの処理が行われる。但しこの場合、ランプデータテーブルは図34で例示したデータ構造とされるため、ステップS706の特定処理では、特定したアドレスにより、ランプデータテーブルにおける特定のラインLに格納された単位発光素子群ごとの発光パターン識別子が特定される。
この場合の演出制御CPU200は、ステップS708に続くステップS901において、発光パターン識別子を点灯データに変換する処理を行う。すなわち、ステップS706の処理によりアドレスが特定されたラインLに格納されている単位発光素子群ごとの発光パターン識別子を、図35に示した変換テーブルに基づきLED120ごとの点灯データに変換する。
この場合の演出制御CPU200は、ステップS901の変換処理を行ったことに応じてステップS709に処理を進める。ステップS709以降の処理については既に説明したものと同様となるため重複説明は避ける。
このようにランプデータテーブルにおける一つのラインL分の点灯データが得られた以降の処理については、先行例の場合と同様となる。
実施形態においても、各LED120の点灯データは4ビットデータとされるため、演出制御CPU200は、先行例の場合と同様に4ビットの点灯データを8ビットに変換する処理を行う(図33を参照)。
このようなビット変換により、各LEDドライバ90の各レジスタアドレスに送信すべき8ビットのシリアルデータが得られ、これらシリアルデータがステップS810の処理(図25)により対応するレジスタアドレスに出力される。
これにより、各LED120が点灯データに応じた輝度により発光され、或いは非発光とされて、シナリオデータに基づく発光動作が実現される。
(1-7-3.発光駆動情報格納手法の変形例)

なお、上記では単位発光素子群が一つのLEDドライバ90により発光駆動されるLED群とされた例を挙げたが、単位発光素子群の区分はこれに限定されず、多様に考えられる。例えば、単位発光素子群は、所定複数のLEDドライバ90により発光駆動されるLED群として定めることもできる。このとき、メモリ消費量削減を図る上では、単位発光素子群を構成するLED120の数は、発光部20b及び20wにおけるLED120の総数よりも少なくすることが望ましい。
或いは、発光部20b、20wそれぞれが、発光色の異なる複数のLED120で成る発光ユニットを複数有した構成とされた場合には、単位発光素子群は、一つの発光ユニットを構成するLED群として区分してもよい。
一例として、発光ユニットとしては、それぞれ発光色がR(赤)、G(緑)、B(青)とされた三つのLED120で成るものとし、各LEDドライバ90は、24個の発光ユニットを発光駆動可能に構成されている場合を挙げることができる。
この場合、LEDドライバ90の総数が「32」であれば、発光ユニットの総数は32×24より「768」であり、LED120の総数はその3倍の「2304」である。
図37は、このような構成を前提とした際に、1発光ユニットを構成するLED群を単位発光素子群とした場合のランプデータテーブルのデータ構造を模式的に示している。
なお、先の図34と同様に、図37においてもランプデータ1、2に対応した部分のみを例示している。また、図37では、ランプデータテーブルに格納される発光パターン識別子は一部のみを例示しており、空欄部分は図示を省略したもので、実際には発光パターン識別子が格納されている。
ここで、上記のように発光部20bと発光部20wとを合わせたLED120の総数が「2304」個とされる場合において、先行例のようにランプデータテーブルにLED120ごとの点灯データを格納した場合、ランプデータテーブルにおける一つのラインLに対しては、
4ビット×3×24×32=9216ビット
のデータが格納される。
この場合もランプデータテーブルにおけるラインLの総数をLnとすると、ランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)は、
9216Lnビット
と表される。
一方、図37に示した格納手法を採った場合、ランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)は、単位発光素子群がとり得る発光パターンの種類の数「X」が例えば「1000」であり、これに対応した発光パターン識別子のビット数が10ビットであるとすると、
10ビット×24(1ドライバの発光ユニット数)×32(ドライバ数)×Ln=7680Lnビット
と表される。
また、この場合も変換テーブルは、発光パターン識別子(ここでは1000個)ごとに、単位発光素子群分の点灯データ(データ容量=12ビット:4×3)を格納しておけばよく、総データ容量は、
12ビット×1000=12000ビット
と表される。
この場合も、ランプデータテーブルにおける総ライン数Lnが例えば「1000」であるとすると、先行例の格納手法によるランプデータテーブルの総データ容量は、
9216ビット×1000=9216000ビット
であり、図37に示した格納手法によるランプデータテーブル+変換テーブルの総データ容量は、
7680ビット×1000=7680000ビット+12000ビット=7692000ビット
である。
このようにX=1000、Ln=1000の例においては、先行例の格納手法に対しメモリ消費量を約83%に抑えることができる。
なお、先の図34に示したデータ格納手法も含め、「X」の数値はあくまで説明上の例を示したものに過ぎない。「X」の数値は、パチンコ遊技機1が行い得る発光動作の種類や、異種の発光動作間における部分的な発光パターンの一致数等に応じて上下するものである。具体的には、上記発光動作の種類の数が少ないほど「X」の数値が減少する傾向となる。また、上記異種の発光動作間における部分的な発光パターンの一致数が多いほど「X」の数値が減少する傾向となる。「X」の数値が少なくなるほど、メモリ消費量の削減効果は増大する。
[1-8.第一実施形態のまとめ及び変形例]

以上で説明した実施形態の遊技機(パチンコ遊技機1)によれば、発光制御のための処理を効率化でき、発光制御処理負荷を軽減することができる。
また、実施形態の遊技機は、少なくとも第一発光素子群を駆動する第一発光駆動手段(例えば、一つのLEDドライバ90)と、少なくとも第二発光素子群を駆動する第二発光駆動手段(例えば、上記一つのLEDドライバ90とは別のLEDドライバ90)と、第一発光駆動手段と第二発光駆動手段とを制御する演出制御手段(演出制御CPU200)と、を備えている。
そして、演出制御手段は、第一発光素子群の発光パターン情報(発光パターン識別子)である第一発光パターン情報と、前記第二発光素子群の発光パターン情報である第二発光パターン情報とが少なくとも格納された発光パターンテーブル(ランプデータテーブル:図34参照)と、複数の点灯データが格納された点灯データテーブル(変換テーブル:図35参照)と、を有し、第一発光パターン情報に基づいて、点灯データテーブルに格納された複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより第一発光素子群を発光可能であり、第二発光パターン情報に基づいて、点灯データテーブルに格納された複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより第二発光素子群を発光可能であり、発光パターンテーブルにおいて、少なくとも第一発光パターン情報と、第二発光パターン情報とで、共通の発光パターン情報である特定発光パターン情報を記憶し、特定発光パターン情報に基づいて、点灯データテーブルに格納された特定の点灯データを選択可能としたものである。
これにより、点灯データの重複格納量を抑制することが可能とされる。
従って、発光制御に要するメモリ消費量の削減を図ることができる。
さらに、実施形態の遊技機においては、発光パターンテーブルは、所定単位の時間情報(タイマ(frame))に対して、少なくとも第一発光パターン情報及び/又は第二発光パターン情報が格納されている。
これにより、発光パターンテーブルにおける同一の発光パターン情報の重複格納量が抑制される。
従って、メモリ消費量のさらなる削減を図ることができる。
さらにまた、実施形態の遊技機においては、点灯データテーブルには、点灯データとして、第1ビット数(例えば8ビット)より少ないビット数である第2ビット数(例えば4ビット)による情報が格納され、演出制御手段は、点灯データテーブルから選択した第2ビット数による点灯データを第1ビット数に変換して各発光素子の駆動データを生成し、該駆動データを少なくとも第一、第二発光駆動手段に出力している(ステップS810)。
これにより、点灯データのデータ容量圧縮が図られる。
従って、メモリ消費量のさらなる削減を図ることができる。
また、実施形態の遊技機においては、発光素子群を区分する単位がドライバ(LEDドライバ90)単位とされている。
発光素子群を区分する単位がドライバ単位とされることで、発光パターンテーブルの総データ容量の圧縮効果が高まり、メモリ消費量の削減を図ることができる。
また、実施形態の遊技機においては、発光色が異なる複数の発光素子で成る発光ユニットを複数有し、発光素子群を区分する単位が発光ユニット単位とされている。
発光素子群を区分する単位が発光ユニット単位とされることで、変換テーブルの総データ容量の圧縮効果が高まり、メモリ消費量の削減を図ることができる。
また、実施形態の遊技機は、次のような構成であると換言することもできる。
すなわち、複数の発光素子(LED120)を有する発光手段(発光部20b、20w)と、発光素子を発光駆動する発光駆動手段(LEDドライバ90)と、実行すべき演出動作の進行内容を表す演出進行データに基づき発光駆動手段を制御する演出制御手段(演出制御CPU200)と、を備えている。
そして、演出進行データに基づき特定され得る発光動作の種類ごとに、発光手段における発光素子群ごとの発光パターン情報が格納された発光パターンテーブル(ランプデータテーブル)と、発光パターン情報ごとに、発光素子群における各発光素子の発光輝度情報(点灯データ)が格納された点灯データテーブル(変換テーブル)と、が記憶されている。
その上で、演出制御手段は、演出進行データに基づき実行すべき発光動作が特定された場合に、発光パターンテーブルにおける該特定された発光動作に対応する発光素子群ごとの発光パターン情報を点灯データテーブルに基づいて点灯データに変換する変換手段(ステップS901)と、変換手段により得られた点灯データに基づいて発光駆動手段により発光素子を発光させる発光制御手段(ステップS810)と、を有している。
これにより、点灯データの重複格納量を抑制することが可能とされ、発光制御に要するメモリ消費量の削減を図ることができる。
なお、第一実施形態については、上記で挙げた例に限らず多様な変形例や適用例が考えられる。
例えば上記では、それぞれの発光素子群における発光素子数を同一とする例を挙げたが、発光素子群間で発光素子数を一致させることは必須ではない。発光素子群間で発光素子数を異ならせた場合、発光素子数の異なる発光素子群ごとに、対応する変換テーブルを設ける。例えば、発光素子数が「10」である第一種の発光素子群、発光素子数が「30」である第二種の発光素子群、発光素子数が「50」の第三種の発光素子群が存在する場合、変換テーブルは、これら第一〜第三種の発光素子群ごとに設ける。
また上記では、LEDによるランプ部63,64としては枠側に1系統(1つのシリアルデータ出力チャネル)、盤側に1系統の例を挙げたが、もちろんこれに限られない。枠側のランプ部63について複数系統を設けても良いし、盤側のランプ部64において複数系統を設けても良い。
また1つの系統に盤側の発光部20bと枠側の発光部20wが混在していてもよい。
また、第一実施形態に係る技術については、弾球遊技機に限らず回胴式遊技機(いわゆるスロット機)にも適用できる。
例えばLED駆動データのシリアルデータ送信は、スロット機の筐体前側の装飾LEDとリールのバックライトLEDのそれぞれを第1系統、第2系統として行うことが考えられる。或いは、筐体前側の上部と下部をそれぞれシリアルデータ送信の系統に分けても良い。
また、発光駆動の対象とする発光素子としてはLEDに限定されず、例えば白熱電球等の他の発光素子とすることもできる。
<2.第二実施形態>
[2-1.第二実施形態のパチンコ遊技機の制御構成]

続いて、第二実施形態としてのパチンコ遊技機1Aについて説明する。
第二実施形態のパチンコ遊技機1Aは、演出制御用のコンピュータ装置を1CPU化したものである。
なお、パチンコ遊技機1Aの外観については図1、2で説明したものと略同様となることから説明は省略する。以下の説明において、既に説明済みとなった部分と同様となる部分については同一符号を付して説明を省略する。
図38は、パチンコ遊技機1Aの内部構成の概略的なブロック図である。
先の図3と対比して分かるように、パチンコ遊技機1Aは、パチンコ遊技機1と比較して、液晶制御基板52と液晶インターフェース基板66が設けられていない点が異なる。
また、本例では、音源IC59も省略された構成とされている。
パチンコ遊技機1Aにおいては、演出制御部51に代えて演出制御部51Aが設けられている。演出制御部51Aは、いわゆる1CPUとして、第一実施形態の演出制御部51が担っていた機能と共に、液晶制御基板52(前述した液晶制御CPU)が担っていた機能を実現するように構成されている。
また本例における演出制御部51Aは、液晶制御CPUの機能と共に、音源IC59に相当する機能も実現するように構成されている(後述する音コントローラ230)。
なお、本例では、液晶表示装置32として、主液晶表示装置32Mと副液晶表示装置32Sとが設けられた構成とされているが、第一実施形態と同様に単一の液晶表示装置32のみを備えた構成とすることもできる。
主液晶表示装置32Mでは、後述する演出制御部51の制御の下、背景画像上で例えば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。副液晶表示装置32Sも、同様に各種演出に応じた表示が行われる。
なお、主液晶表示装置32Mは、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
演出制御部51Aは、主液晶表示装置32M、副液晶表示装置32Sに対する制御装置としての機能も備えているため、いわゆるVDP(Video Display Processor)、画像ROM、VRAM(Video RAM)としての機能も備えられている。また、この場合の演出制御CPU200は、液晶制御部としても機能する。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う機能を指している。
画像ROMとは、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されているメモリを指す。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域である。
演出制御部51Aは、これらの構成により、主制御部50からのコマンド(演出制御コマンド)に基づいて各種の画像データを生成し、主液晶表示装置32Mや副液晶表示装置32Sに出力する。これによって主液晶表示装置32Mや副液晶表示装置32Sにおいて各種の演出画像が表示される。
[2-2.演出制御部の構成]

演出制御部51Aの具体的な構成例を図39に示す。
図39の例の演出制御部51Aは、例えば1チップマイクロコンピュータ250に対して演出制御ROM201、D−RAM202a、CG−ROM206、WDT(ウォッチドッグタイマ)回路210等が外付け接続されて構成されている。
1チップマイクロコンピュータ250は、演出制御CPU200を含むとともに、図示する各部によって、上述したVDP、VRAM等の機能や、さらには発光制御、モータ制御、音制御を行う機能を有する。
構成各部について説明していく。
1チップマイクロコンピュータ250は演出制御CPU200を搭載している。演出制御CPU200は上述したように各種の制御処理を行う。
演出制御CPU200は、CPUインターフェース203を経由してマイクロコンピュータ250の内部デバイスや外部デバイスを使用する。
即ち演出制御CPU200は、CPUインターフェース203を経由してホストインターフェース204に接続され、ホストインターフェース204を介して、主制御部50からのコマンド受信、演出制御ROM201に対する読出アクセス、WDT回路210との信号送受信、及びバス251を介した内部の各部との通信を行う。
演出制御CPU200は、上述した演出制御RAM202として、D−RAM202a及び内蔵CPU用ワークメモリ202bを用いる。
D−RAM202aは、RAMインターフェース208に接続されており、演出制御CPU200は、RAMインターフェース208を介してD−RAM202aに対する書き込みや読み出しを行う。
システム制御レジスタ205はシステムの初期設定をするためのレジスタである。
転送回路212は、マイクロコンピュータ250の内部リソースや外部ペリフェラルを入出力とした転送を行う。
CG−ROM206は画像ROMであり、表示するキャラクタ画像データを格納する。
CG−ROM206はマイクロコンピュータ250に設けられたCGバスインターフェース207に接続されている。これによりマイクロコンピュータ250内の所要部位は、CGバスインターフェース207を介してCG−ROM206にアクセスできる。
マイクロコンピュータ250は例えば容量が48MバイトのVRAM209を内蔵している。VRAM209は描画素材やフレームデータを格納する。
VRAM209の使用態様は設定により各種可能であるが、本例では表示用のフレームデータの記憶領域として2つのフレームバッファ209A、209Bを設定し、各フレームバッファ209A、209Bを1フレーム毎に交互に用いて描画や表示データ出力を行うようにする。
なお、本例では、2つの表示装置(主液晶表示装置32M、副液晶表示装置32S)を使用するので、フレームバッファ209A、209Bとしては主液晶表示装置32M、副液晶表示装置32Sのそれぞれに対応して用意される。
つまり図示するフレームバッファ209Aは、主液晶表示装置32M用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含み、またフレームバッファ209Bは、主液晶表示装置32M用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含む。
VRAM209のフレームバッファ209A、209Bにはそれぞれ、主液晶表示装置32M、副液晶表示装置32S用の1フレーム分の画像データが各々生成されるが、所定の描画コマンドによって、フレームバッファ209A、209Bの描画位置が特定される。
インデックステーブル211は、VRAM209の記憶領域を設定するなどVRAM209の管理を行う。
プリローダ220、表示回路221,222,223、GDEC(グラフィックデコーダ)223、描画回路225は、ビデオプロセッサ(VDP)としての各種処理を行う。
演出制御CPU200は、演出制御コマンドに応じて主液晶表示装置32Mや副液晶表示装置32Sで表示する画像内容を設定するディスプレイリストを作成する。このディスプレイリストとは、描画コマンドの集まりのことである。
ディスプレイリストは、描画する順番に記載された一群の描画コマンドで構成されている。描画コマンドには、1フレームのどの位置に、どのような画像を描画するかを規定するコマンドも含まれ、描画すべき画像のCG−ROM206などの記憶位置(ソースアドレス)も特定されている。
描画回路225は、VRAM209上のフレームバッファ(209A又は209B)に図形を描画する。
GDEC223は、描画で使用する圧縮画像データをデコードしVRAM209に展開する。
プリローダ220は転送回路212によって送信されたディスプレイリストを解析し、その中で参照している画像素材、即ちCG−ROM206上の画像データをDRAM202aまたはVRAM209のいずれかの指定されている領域に転送する。
またこのときプリローダ220は、画像データの参照先を、転送後のアドレスに書換えたディスプレイリストを出力する。書換えられたディスプレイリストは、転送回路212によって描画回路225に送信される。
描画回路225による描画の実行中は、画像データへのランダムアクセスが発生するため、例えばNANDフラッシュメモリのようなランダムアクセスに弱いCG−ROM206から画像データを直接参照すると描画性能が大きく低下する。そこでプリローダ220を使って、あらかじめ画像データやディスプレイリストをD−RAM202a、または内蔵のVRAM209に転送しておくことで、高速に動画デコード、および描画を実行することができるようにしている。
上記の通り本実施形態では、プリローダ220を機能させているので、ディスプレイリストの画像データ(画像素材としてのCGデータ)の参照先は、CG−ROM206ではなく、D−RAM202a又はVRAM209に設定されたプリロード領域である。そのため、描画回路225による描画の実行中に生じる画像データへのランダムアクセスを迅速に実行することができ、動きの激しい高解像度の動画についても描画処理に有利である。
表示回路221,222,223は、VRAM209のフレームバッファ(209A又は209B)の表示データを外部に表示出力する。
ここでマイクロコンピュータ250が3つの表示回路221,222,223を備えているのは、1系統のデジタルRGB出力と、2系統のLVDS(Low voltage differential signaling)出力を可能とする3画面出力対応の構成を採っているためである。本例の場合、例えばデジタルRGB出力を主液晶表示装置32Mへの表示データ出力として用い、一つのLVDS出力を副液晶表示装置32Sへの表示データ出力として用いる。
表示回路221,222,223からの表示データは、LCDインターフェース226によって選択されて外部機器、即ち主液晶表示装置32Mと副液晶表示装置32Sに出力される。
表示回路221,222,223は、ノンインタレース出力としての表示データ出力を行う。また表示データについて、例えば2倍から1/2倍までの拡大・縮小を行うスケーリング処理機能や、ディザリング機能、カラー補正機能を備えている。
図40は、表示回路221,222,223及びLCDインターフェース226のブロック図を示している。
各表示回路221,222,223は同期信号生成部265を有し、それぞれ画像のフレームに同期して処理を行う。同期信号生成部265は、同期信号として、例えば垂直ブランク期間(非有効ライン走査期間)を示すVブランク信号、水平同期信号、垂直同期信号を生成する。これらの同期信号は、マイクロコンピュータ250の内部での制御処理に用いることができるほか、主液晶表示装置32M、副液晶表示装置32Sへの表示データ転送や表示制御動作にも用いられる。
なお、各表示回路221,222,223で用いる同期信号同士は同期させることができる。例えば主液晶表示装置32Mなどの外部ディスプレイの垂直同期信号の立ち下がりをトリガにして、表示回路221,222,223を強制的に同期させることができる。
各表示回路221,222,223は、VRAM読出部261により、VRAM210のフレームバッファ209A又は209Bから読み出したフレームデータを取得する。
表示回路221,222については、取得したフレームデータについてスケーラ262でのスケーリング処理、カラー補正部263でのカラー補正処理、ディザラー264でのディザリング処理を施すことが可能とされる。そしてディザラー264による処理の後の出力としてデジタルRGB出力とLVDS出力が行われる。表示回路223も同様であるが、この図の例では表示回路223はスケーラ262の機能を搭載していない例を挙げた。
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に供給することも考えられる。
図39のマイクロコンピュータ250は音コントローラ230を有する。
音コントローラ230は、例えば音源制御部と圧縮音声データを記憶する音データ記憶部を有し、演出制御CPU200の制御に基づいて、圧縮音声データをデコードして出力音声信号を生成し、外部のアンプ部67へ出力する。
なお、音コントローラ230の搭載の有無にかかわらず、演出制御CPU200はマイクロコンピュータ250外部の音源ICを制御して、音声信号をアンプ部67へ出力するようにしてもよい。
マイクロコンピュータ250は汎用ポート231を有している。例えば8ビットの入出力ポートとされる。汎用ポート231により各種の外部デバイスとの入出力が可能となる。
シリアル出力コントローラ240は、制御信号をシリアルデータとして外部に出力する。本実施形態の場合、シリアル出力コントローラ240にはランプコントローラ241とモータコントローラ242が設けられ、ランプ部63,64の発光駆動データの出力や可動体役物モータ65のモータ駆動データの出力が行われる。
なお、枠ドライバ部61、盤ドライバ部62、モータドライバ部70の構成については先の図4や図5で説明したものと同様となることから重複説明は避ける。
演出制御部51Aは、パラレル/シリアル変換部260を有している。各可動体役物モータ65(ステッピングモータ121)のそれぞれに対しては、図3で説明した原点スイッチ68が対応して配置されており、原点スイッチ68からの信号はパラレル/シリアル変換部260に入力される。
また図39では、操作部60からのユーザの操作情報もパラレル/シリアル変換部260に入力される例を示している。ユーザの操作情報とは、演出ボタン11,12、十字キー13等の操作に応じた信号である。
パラレル/シリアル変換部260は、例えば1チップマイクロコンピュータ250とは別体のICとして演出制御部(演出制御基板)51Aに搭載されるが、1チップマイクロコンピュータ250に内蔵されてもよい。
パラレル/シリアル変換部260は、例えば32系統の信号を入力し、入力したデータをシリアルデータIsに変換してモータコントローラ242に供給する。
パラレル/シリアル変換部260の動作はモータコントローラ242からの制御信号CNTによって制御される。パラレル/シリアル変換部260はクロック信号CLKを用いてシリアルデータ転送を行う。
この構成により、シリアル出力コントローラ240が、各可動体役物モータ65の原点検出状態と演出スイッチ11,12等の操作部60に対するユーザ操作をまとめて、つまり演出制御に必要な入力をまとめて効率的に検出できる。従って演出制御CPU200は効率よく演出状態を把握できる。
[2-3.演出制御部の機能対比]

図41は、第一実施形態のように演出制御部51としてのコンピュータ装置とは別途に液晶制御のためのコンピュータ装置(液晶制御基板52)を設けた構成(以下「2CPU構成」とも表記する)とした場合における演出制御部51、液晶制御基板52の各機能構成を模式的に表した機能ブロック図である。
先の第一実施形態の説明から理解されるように、演出制御部51は、主制御部50からの演出制御コマンドを受信・解析し、解析結果に基づいてランプ、音、モータとしての画像演出以外の演出についてシナリオデータ(演出進行データ:具体的には図20や図21に示したような各種の登録情報)を生成し、該シナリオデータに基づきランプ、音、モータについての駆動データを生成・出力して所望の演出動作を実現している。
また、液晶に関しては、演出制御コマンドの解析結果に基づき得られる液晶制御コマンドを液晶制御基板52側に送信する。
演出制御部51は、主制御部50が送信した演出制御コマンドを保持するためのバッファ領域(記憶領域)である演出制御コマンドバッファF11(前述した「コマンド受信バッファ」)を有すると共に、演出制御コマンドバッファF11に保持された演出制御コマンドについての解析を行う演出制御コマンド解析処理部F12と、演出制御コマンド解析処理部F12によるコマンド解析結果に基づきランプ、音、モータについてのシナリオデータを生成し、生成したシナリオデータに基づく処理を実行する演出制御シナリオ実行処理部F13と、液晶制御コマンドの出力バッファであるコマンド出力バッファF14とを有している。
演出制御コマンド解析処理部F12では、演出制御コマンドの解析処理として、先の図13に示した処理を行い、コマンドの種類を特定する。演出制御コマンドは、その種類ごとに実行すべき処理が予め定められている。演出制御コマンドの種類によっては、液晶制御基板52に対する所定の液晶制御コマンドの送信処理を行うことが定められたものある。例えば、図15Aや図15Bで例示した「コマンドセット」の処理等である。この場合、演出制御コマンド解析処理部F12の解析処理の結果として、所定の液晶制御コマンドがコマンド出力バッファF14にセットされる。
また、演出制御コマンドとしては、液晶制御基板F12に対して当該演出制御コマンドと同一のコマンドを送信する(つまりスルー送信する)処理を行うべきことが定められたものもある。この場合も、演出制御コマンド解析処理部F12の解析処理の結果として、液晶制御コマンド(データとしては受信した演出制御コマンドと同一)がコマンド出力バッファF14にセットされる。
なお、コマンドのスルー送信については後の図47〜図49においても説明する。
演出制御シナリオ実行処理部F13において、コマンド解析結果に基づくシナリオデータの生成は、例えば図14DのステップS341のようにコマンド対応処理(S306)の一部として設けられたシナリオ登録の処理によって実現される。
また、演出制御シナリオ実行処理部F13が実行するシナリオデータに基づく具体的な処理としては、図18、図19に示したシナリオ更新処理、サブシナリオの更新処理や、図36、図25に示したLED駆動データ更新処理、LED駆動データ出力処理等を挙げることができる。
ここで、演出制御コマンドとしては、当該演出制御コマンドの受信から所定時間の経過後に液晶制御基板52に対する所定の液晶制御コマンドの送信を行うべきことが定められたものもある(以下、液晶制御コマンドの「時間差送信」とも表記する)。
第一実施形態では説明を省略したが、本例では、このような時間差送信を行う場合には、液晶制御コマンドについて送信対象のコマンドと送信タイミングとを管理するためのシナリオデータ(以下「コマンド送信シナリオデータ」とも表記する)が用いられる。
演出制御コマンド解析処理部F12によるコマンド解析の結果、このようなコマンド送信シナリオデータが生成された場合には、演出制御シナリオ実行処理部F13が該コマンド送信シナリオデータに従った処理を実行することで、液晶制御基板52への液晶制御コマンドの送信が行われる。つまりこの場合は、演出制御シナリオ実行処理部F13によるシナリオ実行に伴い所定の液晶制御コマンドがコマンド出力バッファF14にセットされる。
液晶制御コマンドの時間差送信については後の図47〜図49においても説明する。
なお、コマンド出力バッファF14にセットされた液晶制御コマンドはコマンド出力処理(図12のステップS206)によって液晶制御基板52に送信される。
液晶制御基板52は、演出制御部51が送信した液晶制御コマンドを保持するためのバッファ領域である液晶制御コマンドバッファF21と、液晶制御コマンドバッファF11に保持された液晶制御コマンドについての解析を行う液晶制御コマンド解析処理部F22と、液晶制御コマンド解析処理部F22によるコマンド解析結果に基づき液晶演出についてのシナリオデータ(以下「液晶シナリオデータ」とも表記する)を生成し、生成したシナリオデータに基づく処理を実行する液晶制御シナリオ実行処理部F23とを有している。
液晶制御シナリオ実行処理部F23が液晶シナリオデータに基づく処理を行うことで、前述したディスプレイリストの作成や描画が行われて画像演出を実現する上で必要な画像データが適宜生成され、該画像データが液晶表示装置32に出力される。これにより、液晶表示装置32に各種の演出画像が表示される。
ここで、上記のような液晶制御基板52が有する画像演出についての制御機能を演出制御部51に実装させて1CPU化を図るとした場合には、画像演出以外の演出制御用のプログラム(主制御部50から送信される演出制御コマンドの解析やランプ、音、モータについてのシナリオデータの生成など)と、画像演出制御用のプログラムとを統合した新たなプログラムを作成し、該プログラムを1CPUとしてのコンピュータ装置(第二実施形態における演出制御部51A)に実行させることが考えられる。
この際、1CPUとした場合には液晶制御基板52に液晶制御コマンドを送信する必要はなくなるため、液晶シナリオデータの生成を、主制御部50からのコマンドとは別途のコマンドを介在させずに行うようなプログラムを構成することが考えられる。
しかしながら、これによると、1CPUに実行させる画像演出制御用のプログラムは、液晶制御基板52(液晶制御CPU)に実行させていたプログラムから比較的大きく変更することを要し、プログラム作成の作業負担が増大する虞がある。
特に、演出制御部51のプログラムと液晶制御基板52のプログラムとを別業者に作成させていた等の事情の下では、1CPUに実行させるべきプログラムの作成作業負担がより大きくなる。
そこで第二実施形態では、1CPUとしての演出制御部51Aについて、図42に示すような制御構成を採る。
図示のように演出制御部51Aは、演出制御部51と同様に演出制御コマンドバッファF11、演出制御コマンド解析処理部F12、演出制御シナリオ実行処理部F13を有している。この場合、コマンド出力バッファF14は省略され、液晶制御コマンドバッファF15が設けられる。さらに、演出制御部51Aは、液晶制御コマンド解析処理部F16と液晶制御シナリオ実行処理部F17とを有している。
液晶制御コマンド解析処理部F16、液晶制御シナリオ実行処理部F17の処理内容は、液晶制御基板52における液晶制御コマンド解析処理部F22、液晶制御シナリオ実行処理部F23とそれぞれ同様である。すなわち、液晶制御コマンド解析処理部F16は、液晶制御コマンドバッファF15に保持された液晶制御コマンドについての解析を行い、液晶制御シナリオ実行処理部F17は、液晶制御コマンド解析処理部F16によるコマンド解析結果に基づき液晶シナリオデータを生成し、生成した液晶シナリオデータに基づく処理を実行することで液晶演出を実現する上で必要な画像データを生成し、液晶表示装置32に表示させる。
演出制御部51Aにおいて、演出制御コマンドバッファF11は、演出制御RAM202(例えばD−RAM202a:図39参照)の一部の記憶領域として設定されている。また、液晶制御コマンドバッファF15としても、演出制御RAM202の一部の記憶領域として設定されている。
演出制御部51Aの演出制御CPU200は、演出制御コマンド解析処理部F12や演出制御シナリオ実行処理部F13の処理に伴い液晶制御コマンドを送信すべきとされた場合には、対象の液晶制御コマンドを液晶制御コマンドバッファF15にセットする。
上記構成のように、演出制御部51Aは、主制御部50により送信された演出制御コマンドを保持する演出制御コマンドバッファF11と、演出制御コマンドを解析して得られる液晶制御コマンドを保持する液晶制御コマンドバッファF15とを有している。
これにより、演出制御部51Aは、演出制御コマンドを解析し、解析により得た液晶制御コマンドを所定記憶領域にセットするという処理については、演出制御部51の処理(コマンド出力バッファF14に液晶制御コマンドをセットする処理)を踏襲することが可能とされる。
また、画像演出の制御処理についても、液晶制御コマンドバッファF15にセットされた液晶制御コマンドを取得し、液晶制御コマンドに基づいた液晶シナリオデータの生成、及び液晶シナリオデータに基づいた液晶表示装置32の制御(第二実施形態では主液晶表示装置32Mと副液晶表示装置32Sの制御)という、液晶制御基板52と同様の処理を踏襲することが可能とされる。
これにより、1CPUとしての演出制御部51Aが実行すべきプログラムとしては、2CPU時の演出制御部51が実行していたプログラムと液晶制御基板52(液晶制御CPU)が実行していたプログラムをほぼそのまま踏襲することが可能とされる。具体的な変更点としては、主には液晶制御コマンドをコマンド出力バッファF14ではなく液晶制御コマンドバッファF15にセットする点である。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、プログラム作成に係る作業負担軽減を図ることができる。
また、演出制御部51Aは、主制御部50より送信された演出制御コマンドの解析結果に基づいて、画像表示以外の演出の進行を管理する第一演出進行管理手段(演出制御シナリオ実行処理部F13)と、第一演出進行管理手段による演出の進行に応じて、画像表示に関する画像表示指示情報(液晶制御コマンド)を生成する画像表示指示情報生成手段(演出制御シナリオ実行処理部F13)と、を有すると共に、画像表示指示情報生成手段により生成された画像表示指示情報に基づいて、画像表示に関する演出の進行を管理する第二演出進行管理手段(液晶制御コマンド解析処理部F16及び液晶制御シナリオ実行処理部F17)を有している。
第一演出進行管理手段、及び画像表示指示情報生成手段による処理は、演出制御部51が有する演出制御シナリオ実行処理部F13の処理と同様である。そして、第二演出進行管理手段による処理は、液晶制御基板52が有する液晶制御コマンド解析処理部F22及び液晶制御シナリオ実行処理部F23の処理と同様である。
これにより、1CPUとしての演出制御部51Aが実行すべきプログラムとしては、2CPU時の演出制御部51が実行していたプログラムと液晶制御基板52(液晶制御CPU)が実行していたプログラムをほぼそのまま踏襲することが可能とされる。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、プログラム作成に係る作業負担軽減を図ることができる。
ここで、上記の第一演出進行管理手段及び画像表示指示情報生成手段の処理を実現するためのプログラムと、第二演出進行管理手段の処理を実現するためのプログラムは、それぞれ独立したプログラムモジュールとして構成することができる。
[2-4.第二実施形態の演出制御部の処理]

続いて、演出制御部51Aの処理について説明する。
演出制御部51Aの演出制御CPU200は、図11、図12に示した演出制御メイン処理、1msタイマ割込み処理を除く処理(図13〜図19、図25、及び図36)については、第一実施形態の演出制御CPU200と同様の処理を行う。以下では、主に演出制御部51の演出制御CPU200が実行する処理と異なる部分について説明する。
演出制御部51Aの演出制御CPU200は、図11に示した演出制御メイン処理に代えて、図43に示す演出制御メイン処理を実行する。
図11に示したメイン処理との大きな相違点は、この場合の演出制御CPU200が1CPUとして液晶制御も行う関係から、表示データのフレームタイミングに基づいて処理を進行するという点である。
図43において、演出制御CPU200は、遊技機本体に対して電源が投入されると演出制御メイン処理を開始する。
演出制御メイン処理において、演出制御CPU200は、まずステップS1000で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、インターフェース系の初期化、割込設定、外部メモリの初期化、WDT初期化、可動体役物の起点復帰処理及び制御の初期化、音源制御初期化、シリアル出力コントローラ240の初期化、スケジューラ(シナリオスケジューラ、デバイススケジューラ、ランプスケジューラ、サウンドスケジューラ等)の初期化、システムタイマの初期化、液晶制御初期化等を行う。
なお各スケジューラは、上述のシナリオ登録情報、モータデータ登録情報、ランプデータ登録情報、音データ登録情報、及びコマンド送信シナリオデータのこと、もしくはこれらに基づいたシナリオ制御の進行を指す。初期化処理としては、これらシナリオ登録情報等を記憶するワーク領域を初期化する。
続くステップS1001で演出制御CPU200は、処理時間の計測開始処理を行う。この処理時間は、表示画像の各フレーム期間内において、フレーム開始から終了時点までの経過時間を把握するために計測されるものである。処理時間は、前述したVブランク信号に基づき0リセットされる。具体的に本例では、Vブランク信号は1フレーム期間につき2回発生され(フレーム期間の前半終了時、後半終了時にそれぞれ1回発生され)、処理時間は2回目のVブランク信号の発生に応じて0リセットされる。
ステップS1001で処理時間の計測を開始すると、演出制御CPU200はステップS1002以降の処理を繰り返し行う。
処理の概要を説明すると、先ずは、フレーム期間の開始タイミングでステップS1002〜S1010の処理が1回行われた上で、ステップS1021〜S1024による演出制御コマンドの解析に係る処理、ステップS1025〜S1028による液晶制御コマンドの解析に係る処理、ステップS1030〜S1034による各種スケジューラの実行に係る処理、及びステップS1040〜S1043によるランプ駆動データの作成・出力やキーイベントに係る処理が行われる。さらに、フレーム期間の終了時には、ステップS1050〜S1051による処理が実行される。
本例では、フレーム期間の終了タイミング判定(S1050)には、表示制御に用いる同期信号であるVブランク信号が用いられる。Vブランク信号等の表示データの同期信号は、1チップマイクロコンピュータ250内のVDP機能を実現する部位で生成される。例えば同期信号生成部265で生成される。本実施形態では1フレーム期間である1/30秒(33.3ms)の間において、Vブランク信号は2回発生される。すなわち、Vブランク信号の周期は1/60秒(16.6ms)である。
本例では、ステップS1021〜S1024による演出制御コマンドの解析に係る処理、及びステップS1025〜S1028による液晶制御コマンドの解析に係る処理は、フレーム期間開始時からの経過時間が16ms以内である場合に実行するようにされている。また、ステップS1040〜S1043によるランプ駆動データの作成・出力やキーイベントに係る処理は、フレーム期間開始からの経過時間が20ms以内である場合に実行するようにされている。
上述した処理時間(S1001)は、これらの時間管理を行うために計測されるものである。
ステップS1002で演出制御CPU200は、WDT回路210に対するクリア制御を行う。従ってWDT回路210は演出制御CPU200が正常な処理状態であれば1フレーム毎にリセットされる。
ステップS1003で演出制御CPU200は、フレーム更新フラグを確認する。フレーム更新フラグは、スケジューラ更新等をフレーム期間で管理するためのフラグである。表示データの或るフレームの開始時点ではフレーム更新フラグはオフとされている(フレーム終了時に後述するステップS1052でオフとするため)。
従ってフレーム開始タイミングでは、演出制御CPU200はステップS1003からS1004に進む。
ステップS1004で演出制御CPU200は、液晶制御フレーム更新処理を実行する。これは、前述した液晶シナリオデータによって進行管理が行われている画像演出についてのシナリオを、1フレーム分進める処理に相当する。
液晶シナリオデータには、図20Aに示したシナリオ登録情報の「待機時間(delay)」や「サブシナリオタイマ(scTm)」のように、シナリオの進行タイミングを管理する例えばタイマ値等による値が登録情報の一つに含まれている。従って、ステップS1004の液晶制御フレーム更新処理では、該値を更新することで画像演出のシナリオを1フレーム分進める。
ステップS1004に続くステップS1005で演出制御CPU200は、描画更新処理を行う。すなわち、液晶シナリオデータに基づき、例えば前述のように描画する順番に記載された一群の描画コマンドであるディスプレイリストの作成や、プリロードの実行開始制御を行う。
ステップS1005の描画更新処理を実行したことに応じ、演出制御CPU200はステップS1006〜S1008の処理によりシナリオ、ランプ、サウンド(音)の各スケジューラのフレーム更新を行う。
具体的に、ステップS1006のシナリオスケジューラ更新処理では、図20Aに示したシナリオ登録情報における待機時間(delay)、及びメインシナリオタイマ(msTm)の値を更新する。
また、ステップS1007のランプスケジューラフレーム更新処理では、図20Bに示したランプデータ登録情報における実行時間(time)の値を更新する。
さらに、ステップS1008のサウンドスケジューラフレーム更新処理では、図20Aに示したシナリオ登録情報におけるサブシナリオタイマ(scTm)の値を更新する。なお、図19Aで説明したサブシナリオの更新処理を参照して分かるように、サブシナリオタイマ(scTm)の値は、音(及びモータ)の演出シナリオについての進行タイミングを管理するタイマ値として機能するものである。
上記ステップS1006〜S1008の各フレーム更新処理により、フレームの開始時点において、メインシナリオの進行、ランプ演出のシナリオの進行、音演出のシナリオの進行がそれぞれ1タイミング進められることになる。
演出制御CPU200は、ステップS1006〜S1008の更新処理を実行したことに応じ、ステップS1009でフレーム更新フラグをONにする。これは、現在のフレームにおいてシナリオのタイマ進行を行ったことを示す情報となる。
また、演出制御CPU200は続くステップS1010で、スケジューラ更新フラグをOFFとする。これは、スケジューラ更新、つまりタイマ進行に伴ったシナリオ内容(シナリオ登録情報、ランプデータ登録情報、音データ登録情報等)の更新がまだ行われていないことを示す情報となる。
ステップS1010でスケジューラ更新フラグをOFFとしたことに応じ、演出制御CPU200はステップS1002に戻る。演出制御CPU200はWDT回路210のクリアを行った後、ステップS1003ではフレーム更新フラグはONになっているためステップS1020に進むことになる。
なお、上記のようにフレーム開始タイミング後の最初の1回だけ、ステップS1004〜S1010の処理が行われ、そのうちのステップS1006〜S1008では、画像演出以外の演出シナリオについてのタイマ更新が行われる。以降説明するように画像演出以外の演出についてはステップS1031〜S1034等の処理によりシナリオの内容更新や制御が実行されるが、上記のようなタイマ更新により、この場合における演出のためのシナリオは、1フレーム期間である33.3ms毎に進行することになる。例えばメインシナリオタイマ(msTm)は33.3ms毎に進行する。このため、図22のメインシナリオテーブルにおける1行のメインシナリオタイマ(msTm)の時間は、表記する値×33.3msの時間に相当する。また図23のサブシナリオテーブルの時間(time)で示す1行の時間も、表記する値×33.3msの時間に相当する。
この場合の演出制御メイン処理では、ステップS1020において、処理時間の値に応じて処理が分岐する。
演出制御CPU200は、ステップS1020において処理時間が31msに達している、つまりフレーム期間の略終端に達しているか否かを判定し、31msに達していればステップS1021に処理を進める。
演出制御CPU200は、処理時間が31msに達しない限り、ステップS1021〜S1043を可能な回数、繰り返すようにステップS1020からS1021に進む。
なお、31msはあくまで一例でありこれに限定されるものではない。
ステップS1021で演出制御CPU200は、処理時間が16ms未満か否かで処理を分岐する。つまり現在が或るフレーム期間の前半に該当するか後半に該当するかである。なお、16msはあくまで一例であり、これに限定されない。例えば、より正確に16.6msとしてもよい。
現在、処理時間が16ms未満である、つまりフレーム前半期間であれば、演出制御CPU200はステップS1022に進んで、演出制御コマンドの受信を確認する。すなわち、主制御部50からの受信コマンドを確認する。具体的には、先に説明した演出制御コマンドバッファF11(本例ではD−RAM202aの所定領域)に1以上の受信コマンドが記憶されているか否かを確認する。受信コマンドがなければ、演出制御CPU200はステップS1025に進む。
一方、1又は複数の受信コマンドがあれば、演出制御CPU200はステップS1023の液晶制御コマンド解析処理として、受信コマンドについての解析処理を行う。この解析処理としては、図13で説明したものと同様の処理を行い、従ってこの場合も図14〜図15で一部を例示したような各種受信コマンドに応じた処理が行われる。
なお、図示は省略するが、主制御部50が送信する演出制御コマンドについての受信処理は、演出制御部51A(演出制御CPU200)による外部割込み処理において実行される。
ステップS1023に続くステップS1024で演出制御CPU200は、スケジューラ更新フラグをOFFにする。このステップS1024でスケジューラ更新フラグをOFFとすることは、現在のフレーム期間中において、以前に一旦ステップS1031でスケジューラ更新フラグをONにした後であっても、コマンド受信があった場合は再びOFFにするという意味を持つ。
ステップS1025で演出制御CPU200は、先のステップS1021と同様に処理時間が16ms未満であるか否かを判別し、16ms未満であればステップS1026に進んで液晶制御コマンドの受信を確認する。具体的には、先に説明した液晶制御コマンドバッファF15(本例ではD−RAM202aの所定領域)に1以上の液晶制御コマンドが記憶されているか否かを確認する。液晶制御コマンドがなければ、演出制御CPU200はステップS1030に進む。
液晶制御コマンドバッファF15に1又は複数の液晶制御コマンドが記憶されていれば、演出制御CPU200はステップS1027の液晶制御コマンド解析処理として、液晶制御コマンドバッファF15に記憶されているコマンドについての解析処理を行う。液晶制御コマンド解析処理においては、先の演出制御コマンド解析処理の場合と同様に、受信コマンドに応じて予め定められた処理を実行する。液晶制御コマンドのうちには、対応する処理として、液晶シナリオデータにシナリオ登録を行う処理が定められたものもあり、その場合には液晶シナリオデータに新たなシナリオが追加される。
例えばこのようにして、液晶制御コマンドの解析結果に基づいた液晶シナリオデータの生成が行われる。
上述したステップS1005の描画更新処理では、上記のように液晶制御コマンドの解析結果に基づいて生成された液晶シナリオデータに基づいてディスプレイリストの作成や、プリロードの実行開始制御が行われて、演出に必要な画像データが得られる。
なお、本例では、液晶表示装置32としては主液晶表示装置32Mと副液晶表示装置32Sとが設けられているため、描画更新処理ではこれらの液晶表示装置に表示されるべき画像データについてのディスプレイリスト作成やプリロードがそれぞれ行われる。このように主液晶表示装置32M、副液晶表示装置32Sそれぞれについての処理を行う点は、ステップS1051のフレーム終了時処理における各処理(描画完了待ち、表示画面の切替え、プリロード完了待ち、描画開始)についても同様である。
ステップS1027に続くステップS1028で演出制御CPU200は、先のステップS1024と同様にスケジューラ更新フラグをOFFとし、ステップS1030に処理を進める。
ここで、演出制御CPU200は、先のステップS1021、ステップS1025で処理時間が16ms以下であった場合にはステップS1030に処理を進める。すなわち、演出制御コマンド、液晶制御コマンドの解析に係る処理は実行されない。
この場合の演出制御メイン処理では、フレーム期間の前半であれば、演出制御コマンド、液晶制御コマンドそれぞれの解析処理を必要なだけ何度でも行うことが許容されている。これにより、例えばフレーム期間の前半においてコマンドが連発した場合に、それらのコマンドを解析し、解析結果に応じたシナリオの更新(追加)を行うことが可能とされる。
ステップS1030で演出制御CPU200は、スケジューラ更新フラグを確認して処理を分岐する。ここではスケジューラ更新フラグがOFFの場合のみ、ステップS1031〜S1034の処理を行うようにする。
スケジューラ更新フラグはフレーム開始直後のステップS1009でOFFとされるため、現在のフレーム期間で最初にステップS1030の処理に進んだときに、ステップS131〜S134の処理を行うことになる。またステップS1024やS1028でスケジューラ更新フラグがOFFとされるため、演出制御コマンドや液晶制御コマンドの受信があった場合もステップS1031〜S1034の処理を行う。
ステップS1031で演出制御CPU200は、スケジューラ更新フラグをONとする。すなわち、以下のステップS1032〜S1034の処理により各種スケジューラが更新されることに対応して予めスケジューラ更新フラグをONとしておく。なお、各種スケジューラ更新が終了(本例ではS1034が終了)してからスケジューラ更新フラグをONとしてもよい。
ステップS1032で演出制御CPU200は、シナリオスケジューラ実行としての処理を行う。これはシナリオ登録情報(図20A参照)の更新処理であり、具体的には、図18に示したシナリオ更新処理と同様の処理を行う。例えば、シナリオチャネルsCHに登録された情報のうち待機時間(delay)が0のものについて、登録されたデータに対応した処理を実行する。即ちメインシナリオテーブルのうちで指定されたシナリオ番号に応じた処理を行う。
ここで、前述のように第二実施形態では、シナリオ登録情報における待機時間(delay)、メインシナリオタイマ(mcTm)の更新はステップS1005のシナリオスケジューラフレーム更新処理にて1フレームごとに行われる。すなわち、この場合に実行する図18のシナリオ更新処理においては、ステップS602の待機時間更新処理、及びステップS609のタイマ更新処理は省略される。
ステップS1033で演出制御CPU200は、サウンドスケジューラ実行及び出力の処理を行う。これは、シナリオテーブルで指定される音サブシナリオに応じた音データ登録情報(図21参照)の更新処理、及び音データ登録情報に基づいた音制御信号の出力処理である。演出制御CPU200は、音コントローラ230に対して、現在のシナリオ進行に応じた音出力を実行させる。
また、ステップS1034で演出制御CPU200は、ランプスケジューラ実行処理を行う。これはシナリオテーブルで指定されるランプサブシナリオに応じたランプデータ登録情報(図20B参照)の更新処理である。
ステップS1033、S1034の処理としては、図19に示したサブシナリオの更新処理と同様の処理を行う。即ち、ステップS1033におけるサウンドスケジューラ実行に係る処理としては、図19におけるステップS621の処理とステップS631以降の処理と同様の処理を実行する。但し、第二実施形態では、先のステップS1008のサウンドスケジューラフレーム更新処理によってサブシナリオタイマ(scTm)の値の更新が行われるため、この場合に実行するステップS621及びS631以降の処理においては、ステップS640のタイマ更新処理、及び該タイマ更新処理を実行するか否かの条件判定を行うステップS639の判別処理は省略される。
ステップS1034のランプスケジューラ実行処理としては、図19のステップS621〜S630と同様の処理を実行する。この処理により、ランプデータ登録情報は、実行すべきランプ演出動作が登録された状態に更新される。
なお、このように更新されるランプデータ登録情報に基づくランプ駆動データ(前述した「LED駆動データ」と同義)の作成及びランプ駆動データ出力は、後のステップS1041、S1402で行われる。
ここで、先の図41の説明時に言及したが、本例では、演出進行を管理するためのシナリオデータとしては、ランプ、音、モータ以外にも液晶制御コマンドの送信管理を行うためのコマンド送信シナリオデータも存在する。
図43での図示は省略したが、該コマンド送信シナリオデータについてのスケジューラ実行処理(登録されたメインシナリオ番号に応じたコマンド送信シナリオデータに対するデータ登録、及び登録データが表す液晶制御コマンドの液晶制御コマンドバッファF15へのセット処理)は、例えば、ステップS1032のシナリオスケジューラ実行処理の一部として実行することが考えられる。或いは、例えばステップS1034のランプスケジューラ実行処理のように、シナリオスケジューラ実行処理とは別処理として実行することもできる。
上記ステップS1032〜S1034による各種スケジューラに係る処理を実行したことに応じ、演出制御CPU200はステップS1040で、処理時間が20ms未満であるか否かにより処理を分岐する。処理時間が20ms未満であればステップS1041〜S1043の処理を実行し、20ms未満でなければこれらの処理を実行しない。
ここで、20msの意図は、フレームの前半期間を多少経過しても、以下のステップS1041、S1042によるランプ駆動データの更新や出力の処理を実行可能とすることにある。つまり20msはあくまで一例であり、該意図に沿った範囲内であれば値の変更が可能である。
ステップS1041で演出制御CPU200は、ランプ駆動データ更新処理を行う。即ち、ランプデータ登録情報の各ランプチャネルdwCHに登録されている情報に基づいて、実際にシリアル出力コントローラ240から枠ドライバ部61及び盤ドライバ部62に出力すべきランプ駆動データ(LED駆動データ)を生成する処理である。このステップS1041の処理としては、図36に示したLED駆動データ更新処理と同様の処理を行う。但し、第二実施形態では、先のステップS1007のランプスケジューラフレーム更新処理によりランプデータ登録情報(図20B)における実行時間(time)の値が更新されるため、この場合において実行する図36の処理では、ステップS710の更新処理は省略される。
そしてステップS1042で演出制御CPU200は、ランプ駆動データ出力処理として、生成したランプ駆動データをシリアル出力コントローラ240に転送し、シリアルデータとして出力させるように制御する。ステップS1042の出力処理としては、例えば、図25に示したLED駆動データ出力処理と同様の処理を行う。
さらに、続くステップS1043で演出制御CPU200は、キーイベント処理を行い、ステップS1002に戻る。
現在のフレーム期間において、処理時間が31ms以上となった場合、演出制御CPU200はステップS1020からS1050に処理を進めて、Vブランク信号が発生するまで待機する。なお、ここでのVブランク信号は、フレーム期間開始から31ms経過後のVブランク信号(2回目のVブランク信号)であるので、ステップS1050の処理はフレーム期間の終了を待機する処理と換言できる。
ステップS1050でVブランク信号が検知されると、演出制御CPU200はS1051のフレーム終了時処理を行う。該終了時処理では、描画完了待ちの処理、表示画面の切替え、プリロード完了待ち、描画開始等の処理が行われる。
フレーム終了時処理の具体例を図44に示す。
先ず、ステップS1071で演出制御CPU200は描画の完了を待機する。これは次のフレーム期間に表示する画像の描画完了を待機するものである。
前述のようにVRAM209にはフレームバッファ209A、209Bが用意され、表示回路221等が一方の表示データを読み出して表示させているフレーム期間には、他方のフレームバッファに、次のフレームの表示データの描画が行われる。この描画が完了していることをステップS1071で確認する。
なお通常は、このフレーム期間の終了時点では、次のフレームの表示データの描画は完了しているように設計されている。この時点で描画が完了していないことは、描画処理に何らかの不具合がある場合と想定される。
そこで、描画完了待機が発生した場合、その待機時間をカウントして、待機時間によっては、1フレーム期間にアクセスされる描画数を減らすなどの変更を行うようにしてもよい。
また、多少(1ms程度)の待機であれば、次のフレームの処理が少し遅れるだけであるため、特に問題はないというようにしてもよい。
なお、いつまでも描画が終わらない場合、演出制御CPU200の処理についてWDT回路210によるリセットがかかる。
描画完了を確認したら演出制御CPU200はステップS1072で、表示画面のスワップを行う。即ちVRAM209のフレームバッファ209A、209Bについて、表示データを読み出すフレームバッファの切替を行う。
なお、ステップS1050でフレーム期間終了が検知されたことで無条件にフレームバッファ切替を行うことも考えられるが、本実施形態の場合、ステップS1071で描画完了確認を行ってからフレームバッファ切替が行われる。このため、表示回路221等に転送される表示データは、正しく描画が完了した表示データとなる。つまり、描画が垂直同期信号の2回目の時点までに終わらなかったにも拘わらず描画中のフレームバッファの表示データが表示されてしまうといったことは生じない。
ステップS1073では演出制御CPU200は、プリロードの完了を確認する。
通常は、プリロードは1フレーム期間内に終了するように設計されているが、このステップS1073で確認している。
なお、多少プリロードが遅れたとしても、上記のステップS1072で既に次のフレームの表示データの出力は開始されるため、大きな問題とはならない。
その後ステップS1074で、プリロードされたディスプレイリストを先のステップS1072で表示データ読み出し対象に切り替えられたフレームバッファとは逆のフレームバッファに書き込む処理を行う。
以上のフレーム終了時処理を行ったら、図43のステップS1052においてフレーム更新フラグをOFFとし、ステップS1002に戻る。そして説明してきたように、新たなフレーム期間についての処理を行う。
以上の図43の処理とともに、演出制御CPU200では例えば1ms毎の割込み処理として、図45の処理が実行される。即ち図45の処理は、表示データのフレームタイミングに関わらず1ms毎に実行される処理である。
演出制御CPU200はステップS1100で、WDTパルス生成処理を行う。WDT回路210はこのWDTパルスにより1ms毎のカウントを行う。
ステップS1101で演出制御CPU200は、モータ、ソレノイドのセンサ更新処理を行う。これは上述した原点スイッチ68の情報を検知する処理である。
ステップS1102で演出制御CPU200はデバイススケジューラ実行処理を行う。具体的にはモータデータ登録情報(図20C参照)の更新を行う。またステップS1103でデバイススケジューラ出力処理として、モータドライバ70へのモータ駆動データの出力処理を行う。
即ち演出制御CPU200は、フレーム期間に比べて約1/30の時間間隔である1ms毎に、モータ動作制御を行っている。
ここで、ステップS1102のデバイススケジューラ実行処理、ステップS1103のデバイスススケジューラ出力処理は、先の図12に示したステップS203のモータ動作更新処理、ステップS204のモータ出力処理と同様となるため重複説明は避ける。
続くステップS1104で演出制御CPU200は、キー入力処理を行う。即ち、操作部60における各種操作子(演出ボタン11,12、十字キー13等)の操作に応じた信号を確認する。
なお、図39に示したように、原点スイッチ68の検出情報と操作部60の操作情報は、シリアル入力データとして検知することができる。そこで、キー入力処理は、ステップS1101で原点スイッチ68の検出情報と同時に確認するようにしてもよい。これにより検出処理を効率化できる。
ここまで、演出制御部51Aにおける演出制御CPU200の処理例を説明してきたが、以上の処理例では、演出制御CPU200は表示データのフレーム周期に合わせて各種処理を行っている。
図46は、表示データのフレーム期間内における各種タイミングを示している。
描画回路225による描画処理は、フレーム期間内に、次のフレームの表示データについて実行される。例えばフレームFR1の表示データの描画は、フレームFR0の表示期間に実行される。具体的にはステップS1051で描画が開始されるため、フレーム先頭時点で、次のフレームのための描画が開始される。この描画は、通常はフレーム期間内に完了する。
もし、フレーム期間内に描画が完了していないとすると、図44のステップS1071で完了が待機されることになる。
プリローダ220によるプリロードは、描画のための準備として、さらに1フレーム前の期間に実行される。例えばフレームFR2の表示データの描画のためのプリロードは、フレームFR0のフレーム期間内に実行される。具体的にはステップS1005で開始されるため、フレーム先頭時点で、2つ後のフレームのためのプリロードが開始される。プリロードとしても、通常はフレーム期間内に完了する。
もし、プリロードがフレーム期間内に完了していないとすると、図44のステップS1073で完了が待機されることになる。プリロードが多少遅れると、それによって描画の開始が多少遅れることになる。
演出制御CPU200の処理としては、各フレームの開始タイミングにおいて、ステップS1051の処理が行われることになる。主な処理としては、図中に示すように、フレームバッファ209A、209Bの切替(FBa<=>FBb)、及び描画開始が先ずは行われる。
次いで、ステップS1004の液晶制御フレーム更新(液晶シナリオの更新)、ステップS1005によるディスプレイリスト作成とプリロード実行開始、及びステップS1006〜S1008による各種スケジューラフレーム更新(シナリオ、ランプ、サウンド)が行われる。
そして、これらステップS1004〜S1008の処理が1度行われた後は、必要に応じてステップS1023の演出制御コマンド解析処理、ステップS1026の液晶制御コマンド解析処理、及びステップS1032〜S1034の各種スケジューラ実行処理(シナリオ、サウンド、ランプ、及び本例ではコマンド送信シナリオのスケジューラ更新を含む)が行われる。
さらに、ステップS1041、S1042によるランプ駆動データの更新、出力の各処理と、ステップS1043のキーイベント処理が実行される。
そして、以上までの処理がフレーム期間の開始時から16ms以内に完了していれば、再度、演出制御コマンドや液晶制御コマンドについての解析処理を行うことが可能とされ、解析処理が行われればさらに各種スケジューラ実行処理、及びランプ駆動データ更新・出力処理、及びキーイベント処理が行われる。
このとき、ランプ駆動データ更新・出力処理及びキーイベント処理については、フレーム期間の開始時から20ms以内であれば実行可能とされている(S1040参照)。すなわち、直前の各種スケジューラ実行処理の完了タイミングがフレーム期間の後半に多少及んだとしても、これらの処理を実行することができる。
ランプ駆動データ更新・出力処理について、フレーム期間開始時からの経過時間に応じて処理の実行を不許可とすることで、これらランプ駆動データの更新や出力の処理によってフレーム終了タイミングに対してフレーム終了処理(S1051)が遅れることを防止している。
なお、仮にランプ駆動データ更新・出力処理が不許可とされた場合には、シリアル出力コントローラ240からのランプ駆動データの出力が行われないことが想定されるが、その場合、LEDドライバ90は直前のランプ駆動データを維持しているため、直前の発光動作が実行されることになる。
[2-5.演出制御の動作例]

図47〜図49を参照し、上記した演出制御部51A(演出制御CPU200)の処理により実現される演出制御の動作例を説明する。
以下の動作例では、大当たりの終了時に対応して行われる演出制御の動作例を説明する。
図47Aは、主制御部50が送信する演出制御コマンドの種類の例を示している。
演出制御コマンドとしては、上位1バイトの値によって図のように種々のコマンドが定義されている。そして、各コマンドには、対応して実行すべき処理(対応処理)が予め定められている(本例では「関数」として定められている)。
本例で着目するのは、大当たり終了指定コマンドとしての演出制御コマンド(「0xF3」)である。
図47Bは、大当たり終了指定コマンドの対応処理において送信が定められた液晶制御コマンドの一覧を例示している。
大当たり終了指定コマンドに対しては、当該大当たり終了指定コマンド(F301H)のスルー送信が定められていると共に、選択キャラコマンド(02xxH)、連荘数コマンド(03xxH)、攻略フラグコマンド(05xxH)、大当たり図柄コマンド(0AxxH)、大当たり根幹コマンド(88xxH)、決定時のキャラコマンド(9FxxH)、及び背景指定コマンド(01xxH)の送信が定められている。
選択キャラコマンドは、遊技者が選択したキャラクタ(例えば好みのキャラクタ)の別を表すコマンドであり、連荘数コマンドは大当たりの連続回数を表すコマンドである。攻略フラグコマンドは、選択したキャラクタを遊技者が攻略できたか否かを表すコマンド、大当たり図柄コマンドは今回の当たり目としての図柄を表すコマンド、大当たり根幹コマンドは今回の大当たりの種類、例えばビッグやスモールの大当たりや何ラウンドの大当たりか等を表すコマンドである。
決定時のキャラコマンド、及び背景指定コマンドは、大当たり終了指定コマンドの受信時から所定時間後の送信(つまり前述した時間差送信)が指定されたコマンドである。本例のパチンコ遊技機1Aでは、大当たり終了に応じて遊技者にキャラクタを選択させる。例えば、主液晶表示装置32M等に表示したキャラクタのうちから特定のキャラクタを選択させるものであり、演出制御51Aは、演出ボタン12等の所定操作子に対する操作を遊技者によるキャラクタ選択についての決定操作として受け付ける。
決定時のキャラコマンドは、このような遊技者の操作により決定されたキャラクタの種別を表すコマンドとされる。
背景指定コマンドは、例えば主液晶表示装置32Mの表示画像における背景画像の種別を指定するコマンドとされる(例えば、決定されたキャラクタに応じた背景画像が指定される)。
本例では、決定時のキャラコマンド及び背景指定コマンドは、大当たり終了指定コマンドの受信から略9s(270フレーム)の時間差を以て送信すべきコマンドとして定められている。換言すれば、この場合における大当たり終了時の演出では、大当たり終了から9sまでの間に遊技者によるキャラクタの選択(決定)操作が受け付けられ、その後、決定されたキャラクタに応じた決定時のキャラコマンド及び背景指定コマンドの送信(液晶制御コマンドバッファF15へのセット)が行われる。
本例では、時間差送信が定められた決定時のキャラコマンド、及び背景指定コマンドについては、その送信管理のために前述したコマンド送信シナリオデータが用いられる。
具体的に、本例の演出制御部51Aは、受信した演出制御コマンドが大当たり終了指定コマンドであった場合のコマンド解析処理(ステップS1023)において、時間差送信の対象外である大当たり終了指定コマンド(スルー送信)、選択キャラコマンド、連荘数コマンド、攻略フラグコマンド、大当たり図柄コマンド、及び大当たり根幹コマンドについては、液晶制御コマンドバッファF15にセットする処理が行われる。
そして、この場合のコマンド解析処理(S1023)では、受信した大当たり終了指定コマンドに対応して定められたメインシナリオ番号(mcNo)をシナリオ登録情報に登録する処理が行われるが、このように登録されるメインシナリオにおいて、大当たり終了時に対応したランプや音、モータのシナリオが定められていると共に、9s後に決定時のキャラコマンド及び背景指定コマンドを送信するシナリオが定められている。つまり、上記のように大当たり終了指定コマンドに対応したメインシナリオ番号(mcNo)の登録が行われることで、その後の各種スケジューラ実行処理(S1032〜S1034)により大当たり終了時に対応したランプ、音、モータの各演出についてのシナリオ(サブシナリオ)の登録、及びコマンド送信シナリオの登録が行われる。なお、前述のように、コマンド送信シナリオデータについてのスケジューラ実行処理は、例えば、ステップS1032のシナリオスケジューラ実行処理の一部として実行することができる。
図48は、大当たり終了指定コマンドに対応して定められた音、ランプ、モータ、ボタン、コマンド送信についての各シナリオデータを模式的に表している。
なお、図中の時間(f)は演出の進行時間を表すもので、単位は「フレーム」(表示データのフレーム)である。この場合の大当たり終了時の演出シナリオは、300フレーム分の時間長に及ぶものとされている。時間(f)について、括弧内の数値は対応するラインのシナリオ実行時間を表している。これは、前述したランプや音/モータについての実行時間(time)に相当する(図23A、図23B参照)。
図示するようにこの場合のシナリオデータにおいては、時間=0のラインにおいて音、ランプ、モータについてのサブシナリオデータをそれぞれセットし、さらに時間=120のラインにおいて、ランプのサブシナリオデータとしてボタンランプの点灯を表すデータをセットすることが定められている。ここでのボタンは、前述したキャラクタの決定操作に用いられる操作子を意味するものであり、ボタンランプとは該操作子を発光させるためのランプを意味する。ここでのボタンは、本例では演出ボタン12であるとする。
また、時間=123のライン、時間=144のラインにおいて、ボタンの有効開始、有効終了を表す情報をセットすることが定められている。ここでの有効/無効は、操作受け付けの有効/無効を意味する。
さらに、時間=270のラインでは、ランプのサブシナリオデータとしてボタンランプの消灯を表すデータをセットし、またコマンド送信シナリオデータとして決定時のキャラコマンド、及び背景指定コマンドの送信を表すデータをセットすることが定められている。
時間=300のラインには、シナリオ終了を表すコードが記述される(前述した終了コードD_LSENDやD_SEENDを参照)。
なお、ここでは、ボタンの有効/無効の管理をシナリオデータに基づき行う例を示したが、ボタンの有効/無効を管理する手法としては必ずしもシナリオデータを用いた手法に限定されない。
図49は、大当たり終了指定コマンドの受信に応じて演出制御部51Aが実行する処理の流れを説明するための図である。
図49において、横軸は1フレーム期間内での経過時間を表し、縦軸はフレーム単位での経過時間を表している。参考として、最上段には、1フレーム期間内における図43の各処理の流れを図46と同様に示している。
とあるnフレーム目において、主制御部50からの大当たり終了指定コマンドが受信されたとする。コマンドの受信タイミングは、図のように各種スケジューラフレーム更新処理(S1006〜S1008)を実行中のタイミングであったとする。なお、コマンドの受信処理は、前述のように外部割込み処理において実行される。
この場合、当該nフレーム目の最初の演出制御コマンド解析処理(S1023)において、受信した大当たり終了指定コマンドに対応した処理が実行される。すなわち、上述した大当たり終了指定コマンド(スルー送信)、選択キャラコマンド、連荘数コマンド、攻略フラグコマンド、大当たり図柄コマンド、及び大当たり根幹コマンドを液晶制御コマンドバッファF15にセットする処理(液晶制御へのコマンド送信処理)と、大当たり終了指定コマンドに対応して定められたメインシナリオ番号(mcNo)のシナリオ登録情報への登録が行われる。
そして、続く液晶制御コマンド解析処理(S1027)において、液晶制御コマンドバッファF15にセットされた大当たり終了指定コマンド、選択キャラコマンド、連荘数コマンド、攻略フラグコマンド、大当たり図柄コマンド、及び大当たり根幹コマンドについての解析処理が行われる。
先に説明したように、液晶制御コマンド解析処理によっては、液晶シナリオデータにシナリオ登録が行われる。そして、ステップS1005の描画更新処理において、液晶シナリオデータに基づいたディスプレイリストの作成や、プリロードの実行開始制御が行われて、演出に必要な画像データが得られる。
nフレーム目で更新された液晶シナリオデータに基づく液晶シナリオは、n+1フレーム目の液晶制御フレーム更新処理(S1004)によってシナリオ進行タイミングを管理する値の更新が行われることで開始され、その直後の描画更新処理(S1005)によって該開始されたシナリオに応じた描画更新のための処理が行われる。
nフレーム目において、上記した液晶制御コマンド解析処理の直後に実行される各種スケジューラ実行処理(S1032〜S1034)によっては、登録されたメインシナリオ番号に対応したランプ、音についてのサブシナリオが登録され開始される。さらに、直後のランプ駆動データ更新・出力処理(S1041、S1042)により、登録されたランプサブシナリオに応じたランプ制御を行うための駆動データ(LED駆動データ)の更新・出力が開始される。すなわち、対応するランプ演出が開始される。
また、受信した演出制御コマンドが大当たり終了指定コマンドであった場合には、コマンド送信シナリオとして決定時のキャラコマンド及び背景指定コマンドの時間差送信(270フレーム後)に係るシナリオが登録される。
このため、n+270フレーム目における各種スケジューラ実行処理によっては、コマンド送信シナリオデータに従って、これら決定時のキャラコマンド及び背景指定コマンドとしての液晶制御コマンドの送信が行われる。また、時間=270のラインには、ボタンランプの消灯に係るサブシナリオが登録されており、この場合の各種スケジューラ実行処理によっては当該消灯に係るサブシナリオが開始され、その直後に行われるランプ駆動データ更新・出力によって対応するランプ駆動データの出力が開始される。
n+270フレーム目において、上記の各種スケジューラ実行処理によって送信された決定時のキャラコマンド及び背景指定コマンドについては、当該n+270フレーム目に実行される液晶制御コマンド解析処理において解析が行われ得る。図49の例では、ランプ駆動データ出力処理がフレーム期間開始時から16msよりも十分に早いタイミングで完了したことにより、n+270フレーム目における液晶制御コマンド解析処理によってこれらコマンドの解析が行われた例を示している。前述のように、液晶制御コマンド解析処理は、フレーム期間開始時から16ms以内であれば実行され得るものである。
図示は省略したが、決定時のキャラコマンド及び背景指定コマンドについても、上記した時間差送信の対象外の各種コマンド(選択キャラコマンド等)と同様にコマンド解析結果に基づく液晶シナリオデータへの新たなシナリオの登録が行われ、該新たなシナリオは、次フレームにおける液晶制御フレーム更新処理によって開始され、その直後の描画更新処理によって該開始されたシナリオに応じた描画更新のための処理が行われる。
ここで、演出制御コマンド、液晶制御コマンドの解析処理は、比較的処理負担の重い処理となる共に、受信コマンド数によって処理も多くなる。コマンド種類によっては演出のための抽選等も行う必要が生ずる。
本実施形態では、このような処理をフレーム前半期間にのみ行うものとしている。
これにより、以降に続く各種スケジューラ実行処理やランプ駆動データ更新・出力処理がフレーム期間内に終了しなくなる事態の発生防止を図っている。
また、一方で本実施形態では、フレーム前半期間であれば演出制御コマンド、液晶制御コマンドの解析処理を複数回行うことを許容している。これにより、限られた処理期間において効率的に受信コマンドの解析を行うことができる。
また、本実施形態では、ランプ駆動データの更新・出力処理についてはフレーム前半期間を多少過ぎても実行を許可するものとしている。これにより、ランプ駆動データの更新・出力処理が実行されないことに伴いランプ駆動データとして直前フレームのデータ(つまり未更新のままのデータ)が維持されてしまう事態の発生回数を低減でき、ランプ演出の正確性向上を図ることができる。
[2-6.第二実施形態のまとめ及び変形例]

以上の第二実施形態のパチンコ遊技機1Aによれば、演出制御のための処理を効率化でき、適正な演出制御を実現できる。
また演出制御処理負荷を軽減することができる。
また、第二実施形態の遊技機(パチンコ遊技機1A)は、第一の構成として、遊技動作の進行制御を行う主制御手段(主制御部50)と、主制御手段からの指示情報(演出制御コマンド)に基づき演出制御を行う演出制御手段(演出制御部51A)と、を備え、演出制御手段は、画像表示以外の演出の実行を管理する第一手段(演出制御シナリオ実行処理部F13)と、画像表示に関する演出の実行を管理する第二手段(液晶制御コマンド解析処理部F16及び液晶制御シナリオ実行処理部F17)と、を有し、主制御手段からの指示情報を記憶する指示情報記憶手段(演出制御コマンドバッファF11)と、指示情報記憶手段に記憶された指示情報を解析する解析手段(演出制御コマンド解析処理部F12)と、解析手段の解析結果によって得られた第二手段についての指示情報である第二指示情報(液晶制御コマンド)を記憶する第二指示情報記憶手段(液晶制御コマンドバッファF15)と、をさらに有している。
上記のように演出制御手段が第二指示情報記憶手段を有していることで、当該演出制御手段をいわゆる1CPUとして構成する場合には、主制御手段からの指示情報を解析し、解析により得た第二指示情報を所定記憶領域にセットするという処理については、2CPUの場合における演出制御手段(演出制御部51)の処理を踏襲することが可能とされる。
また、画像演出の制御処理についても、第二指示情報記憶手段にセットされた第二指示情報を取得し、該第二指示情報に基づいて画像表示装置を制御するという、2CPUの場合における画像演出制御手段(液晶制御基板52の液晶制御CPU)と同様の処理を踏襲することが可能とされる。
このように、第二指示情報記憶手段を有していることで、1CPUとしての演出制御手段が実行すべきプログラムとしては、2CPU時の演出制御手段が実行していたプログラムと画像演出制御手段が実行していたプログラムをほぼそのまま踏襲することが可能とされる。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、プログラム作成の作業負担軽減が図られ、コスト削減を図ることができる。
また、画像演出制御についてのプログラムは、1CPUの場合と2CPUの場合とでほぼ共通なものとすることができ、従ってプログラムの汎用性を高めることができる。同様に、画像演出制御以外の制御についてのプログラムとしても、1CPUの場合と2CPUの場合とでほぼ共通なものとすることができ、汎用性を高めることができる。
さらに、上記した第一の構成としての遊技機においては、第二指示情報がコマンド情報とされている。
これにより、既存の2CPU構成における第二指示情報がコマンド情報とされている場合に対応して、既存プログラムからの変更点をさらに少なくすることが可能とされる。
従って、1CPU化を実現するにあたってのプログラム作成の作業負担をさらに軽減でき、さらなるコスト削減を図ることができる。また、プログラムの汎用性をさらに高めることができる。
また、第二実施形態の遊技機は、第二の構成として、遊技動作の進行制御を行う主制御手段(主制御部50)と、主制御手段からの指示情報(演出制御コマンド)に基づき演出制御を行う演出制御手段(演出制御部51A)と、を備え、演出制御手段は、画像表示以外の演出の実行を管理する第一手段(演出制御シナリオ実行処理部F13)と、画像表示に関する演出の実行を管理する第二手段(液晶制御コマンド解析処理部F16及び液晶制御シナリオ実行処理部F17)と、主制御手段からの指示情報を解析する解析手段(演出制御コマンド解析処理部F12)と、を有し、第一手段は、解析手段による解析結果に基づいて、画像表示以外の演出の進行を管理する第一演出進行管理手段(演出制御シナリオ実行処理部F13)と、第一演出進行管理手段による演出の進行に応じて、画像表示に関する画像表示指示情報(液晶制御コマンド)を生成する画像表示指示情報生成手段(演出制御シナリオ実行処理部F13)と、を有し、第二手段は、画像表示指示情報生成手段により生成された画像表示指示情報に基づいて、画像表示に関する演出の進行を管理する第二演出進行管理手段(液晶制御コマンド解析処理部F16及び液晶制御シナリオ実行処理部F17)と、を有している。
2CPU構成の場合、画像演出制御手段(液晶制御基板52の液晶制御CPU)は、演出制御手段(演出制御部51)が主制御手段からの指示情報を解析して得た画像表示指示情報を取得し、該画像表示指示情報に基づいて画像表示装置の制御を行って所要の画像演出動作を実現させている。
このため、上記のような第二手段(第二演出進行管理手段)を有していることで、画像演出に係る制御については、画像演出制御手段のプログラムをほぼそのまま踏襲することが可能とされる。
また、第一手段による処理は、2CPU構成における演出制御手段が実行していた処理とほぼ同様であるため、該処理についても2CPU時に用いていたプログラムをほぼそのまま踏襲することが可能とされる。
このように1CPUとしての演出制御手段が実行すべきプログラムとしては、2CPU時の演出制御手段が実行していたプログラムと画像演出制御手段が実行していたプログラムをほぼそのまま踏襲することが可能とされる。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、コスト削減を図ることができる。
また、第一手段、第二手段をそれぞれ実現するためのプログラムは2CPUの場合とほぼ共通なものとすることができ、従ってプログラムの汎用性を高めることができる。
また、上記した第二の構成としての遊技機においては、画像表示指示情報がコマンド情報とされている。
これにより、既存の2CPU構成における画像表示指示情報がコマンド情報とされている場合に対応して、既存プログラムからの変更点をさらに少なくすることが可能とされる。
従って、1CPU化を実現するにあたってのプログラム作成の作業負担をさらに軽減でき、さらなるコスト削減を図ることができる。また、プログラムの汎用性をさらに高めることができる。
なお、本発明は実施形態で挙げた例に限らず多様な変形例や適用例が考えられる。
上記では、表示データのフレームに同期する信号としてVブランク信号に基づいてタイミングを管理する例を挙げたが、Vブランク信号以外の垂直同期信号を用いたり、或いは水平同期信号のカウントでフレーム期間内のタイミング管理を行っても良い。
また、上記では、画像表示手段として液晶表示装置を用いる例を挙げたが、例えば有機EL(Electro Luminescence)表示装置等の他の画像表示手段を用いることもできる。
また、上記では、第二実施形態のような1CPUの構成において、第一実施形態で説明したランプの発光駆動情報格納手法を適用する例を挙げたが、第二実施形態において、発光駆動情報格納手法は例えば先行例の場合と同様とする等、第一実施形態の手法に限定されない。
また、上記では、本発明をパチンコ遊技機1又は1Aのような弾球遊技機に適用する例を示したが、回胴式遊技機(いわゆるスロット機)にも適用することができる。
1 パチンコ遊技機
20w,20b 発光部
32 液晶表示装置
33 図柄表示部
41 上始動口
42 普通変動入賞装置
42a 下始動口
43 一般入賞口
44 ゲート
45 第1特別変動入賞装置
46 第2特別変動入賞装置
50 主制御基板
51 演出制御基板
52 液晶制御基板
61 枠ドライバ部
62 盤ドライバ部
63,64 ランプ部
90 LEDドライバ
120 LED
200 演出制御CPU
201 演出制御ROM
202 演出制御RAM

Claims (2)

  1. 少なくとも第一発光素子群を駆動する第一発光駆動手段と、
    少なくとも第二発光素子群を駆動する第二発光駆動手段と、
    前記第一発光駆動手段と前記第二発光駆動手段とを制御する演出制御手段と、を備え、
    前記演出制御手段は、
    前記第一発光素子群の発光パターン情報である第一発光パターン情報と、前記第二発光素子群の発光パターン情報である第二発光パターン情報とが少なくとも格納された発光パターンテーブルと、
    複数の点灯データが格納された点灯データテーブルと、を有し、
    前記第一発光パターン情報に基づいて、前記点灯データテーブルに格納された前記複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより前記第一発光素子群を発光可能であり、
    前記第二発光パターン情報に基づいて、前記点灯データテーブルに格納された前記複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより前記第二発光素子群を発光可能であり、
    前記発光パターンテーブルにおいて、少なくとも前記第一発光パターン情報と、前記第二発光パターン情報とで、共通の前記発光パターン情報である特定発光パターン情報を記憶し、
    前記特定発光パターン情報に基づいて、前記点灯データテーブルに格納された特定の前記点灯データを選択可能とした
    遊技機。
  2. 前記発光パターンテーブルは、
    所定単位の時間情報に対して、少なくとも前記第一発光パターン情報及び/又は前記第二発光パターン情報が格納されている
    請求項1に記載の遊技機。
JP2017096738A 2017-05-15 2017-05-15 遊技機 Active JP6546957B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017096738A JP6546957B2 (ja) 2017-05-15 2017-05-15 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017096738A JP6546957B2 (ja) 2017-05-15 2017-05-15 遊技機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019114436A Division JP6883613B2 (ja) 2019-06-20 2019-06-20 遊技機

Publications (2)

Publication Number Publication Date
JP2018191795A true JP2018191795A (ja) 2018-12-06
JP6546957B2 JP6546957B2 (ja) 2019-07-17

Family

ID=64568893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017096738A Active JP6546957B2 (ja) 2017-05-15 2017-05-15 遊技機

Country Status (1)

Country Link
JP (1) JP6546957B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001112936A (ja) * 1999-10-19 2001-04-24 Sankyo Kk 遊技機

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001112936A (ja) * 1999-10-19 2001-04-24 Sankyo Kk 遊技機

Also Published As

Publication number Publication date
JP6546957B2 (ja) 2019-07-17

Similar Documents

Publication Publication Date Title
JP5748720B2 (ja) 遊技機
JP5919153B2 (ja) 遊技機
JP6313536B2 (ja) 遊技機
JP6720390B2 (ja) 遊技機
JP2015163247A (ja) 遊技機
JP5975584B2 (ja) 遊技機
JP5748719B2 (ja) 遊技機
JP2016128067A (ja) 遊技機
JP6883613B2 (ja) 遊技機
JP6639439B2 (ja) 遊技機
JP2015163248A (ja) 遊技機
JP6059744B2 (ja) 遊技機
JP2018191795A (ja) 遊技機
JP5748718B2 (ja) 遊技機
JP6173668B2 (ja) 遊技機
JP6404291B2 (ja) 遊技機
JP6348543B2 (ja) 遊技機
JP6377194B2 (ja) 遊技機
JP2016165643A (ja) 遊技機
JP6560502B2 (ja) 遊技機
JP6059745B2 (ja) 遊技機
JP2016140600A (ja) 遊技機
JP2016140604A (ja) 遊技機
JP2016140603A (ja) 遊技機
JP6039001B2 (ja) 遊技機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190624

R150 Certificate of patent or registration of utility model

Ref document number: 6546957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250