JP2019171143A - 遊技機 - Google Patents
遊技機 Download PDFInfo
- Publication number
- JP2019171143A JP2019171143A JP2019114436A JP2019114436A JP2019171143A JP 2019171143 A JP2019171143 A JP 2019171143A JP 2019114436 A JP2019114436 A JP 2019114436A JP 2019114436 A JP2019114436 A JP 2019114436A JP 2019171143 A JP2019171143 A JP 2019171143A
- Authority
- JP
- Japan
- Prior art keywords
- data
- scenario
- effect control
- light emission
- 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
Links
- 238000004519 manufacturing process Methods 0.000 claims description 93
- 230000015654 memory Effects 0.000 abstract description 29
- 230000000694 effects Effects 0.000 description 556
- 238000000034 method Methods 0.000 description 535
- 230000008569 process Effects 0.000 description 514
- 238000012545 processing Methods 0.000 description 357
- 239000004973 liquid crystal related substance Substances 0.000 description 266
- 230000005540 biological transmission Effects 0.000 description 155
- 239000000872 buffer Substances 0.000 description 101
- 238000004458 analytical method Methods 0.000 description 86
- 238000007726 management method Methods 0.000 description 56
- 230000006870 function Effects 0.000 description 54
- 238000003860 storage Methods 0.000 description 49
- 238000006243 chemical reaction Methods 0.000 description 33
- 238000001514 detection method Methods 0.000 description 29
- 238000012217 deletion Methods 0.000 description 18
- 230000037430 deletion Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 239000011521 glass Substances 0.000 description 12
- 230000004397 blinking Effects 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 230000036316 preload Effects 0.000 description 10
- 230000005856 abnormality Effects 0.000 description 9
- 238000005034 decoration Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000005284 excitation Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000004904 shortening Methods 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010304 firing Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100364301 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rsv1 gene Proteins 0.000 description 1
- 101100364302 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rsv2 gene Proteins 0.000 description 1
- 241000722921 Tulipa gesneriana Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 244000145845 chattering Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000011120 plywood Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Pinball Game Machines (AREA)
Abstract
Description
発光部の動作のためには、例えば演出制御部として機能するマイクロコンピュータが、LEDドライバ回路などに対し駆動データを供給する。LEDドライバには例えば多数のLEDが接続され、LEDドライバは、各LEDに対し、駆動データに応じた発光駆動電流を流すことで発光動作を実行させる。
<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、図2を参照して、本発明の実施形態としてのパチンコ遊技機1の構成を概略的に説明する。
図1は実施形態のパチンコ遊技機1の外観を示す正面側の斜視図であり、図2は遊技盤の正面図である。
図1,図2に示すパチンコ遊技機1は、主に「枠部」と「遊技盤部」から成る。
「枠部」は以下説明する前枠2、外枠4、ガラス扉5、操作パネル7を有して構成される。「遊技盤部」は図2の遊技盤3から成る。以下の説明上で、「枠部」又は「枠側」とは前枠2,外枠4、ガラス扉5、操作パネル7の総称とする。また「盤部」又は「盤側」とは遊技盤3を示す。
なお遊技領域3aの前側には、透明ガラスを支持したガラス扉5が設けられており、遊技領域3aは透明ガラスを介して前面の遊技者側に表出される。
またガラス扉5の前面側には、枠側の発光手段として発光部20wが各所に設けられている。発光部20wは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
操作パネル7には、上受け皿ユニット8、下受け皿ユニット9、発射操作ハンドル10が設けられている。
また上受け皿ユニット8には、上受け皿8aに貯留された遊技球を下受け皿9a側に抜くための球抜きボタン16が設けられている。下受け皿ユニット9には、下受け皿9aに貯留された遊技球を遊技機下方に抜くための球抜きレバー17が設けられている。
また上受け皿ユニット8には、図示しない遊技球貸出装置に対して遊技球の払い出しを要求するための球貸しボタン14と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン15とが設けられている。
さらに上受け皿ユニット8には、演出ボタン11,12、十字キー13が設けられている。演出ボタン11,12は、所定の入力受付期間中に内蔵ランプが点灯されて操作可能となり、その内蔵ランプ点灯時に押下することにより演出に変化をもたらすことができる押しボタンとされる。また十字キー13は遊技者が演出状況に応じた操作や演出設定等のための操作を行う操作子である。
また前枠2の上部の両側と、発射操作ハンドル10の近傍には、演出音を音響出力するスピーカ25が設けられている。
液晶表示装置32では、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から液晶表示装置32の表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また液晶表示装置32の下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、液晶表示装置32は、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
上始動口41及び下始動口42aの内部には、遊技球の通過を検出する検出センサ(図3に示す上始動口センサ71,下始動口センサ72)が形成されている。
この普通変動入賞装置42の下始動口42aは、図柄表示部33における第2特別図柄の変動表示動作の始動条件に係る入賞口である。そして、この下始動口42aの入賞率は可動翼片42bの作動状態に応じて変動する。即ち可動翼片42bが開いた状態では、入賞が容易となり、可動翼片42bが閉じた状態では、入賞が困難又は不可能となるように構成されている。
また右遊技領域3cの下部側には、遊技球が通過可能なゲート(特定通過領域)からなる普通図柄始動口44が設けられている。この普通図柄始動口44は、図柄表示部33における普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出するセンサ(図3に示すゲートセンサ73)が形成されている。
第1特別変動入賞装置45は、突没式の開放扉45bにより第1大入賞口45aを閉鎖/開放する構造とされている。また、その内部には第1大入賞口45aへの遊技球の通過を検出するセンサ(図3の第1大入賞口センサ75)が形成されている。
第1大入賞口45aの周囲は、右下飾り35Rが遊技盤3の表面から膨出した状態となっており、その膨出部分の上辺及び開放扉45bの上面が右流下経路3cの下流案内部を形成している。従って、開放扉45bが盤内部側に引き込まれることで、下流案内部に達した遊技球は容易に第1大入賞口45aに入る状態となる。
開放扉46bが開かれることで第2大入賞口46aが開放される。この状態では、左遊技領域3b或いは右遊技領域3cを流下してきた遊技球は、高い確率で第2大入賞口50に入ることとなる。
本実施形態のパチンコ遊技機1においては、これら入賞口のうち、普通図柄始動口44以外の入賞口への入賞があった場合には、各入賞口別に設定された入賞球1個当りの賞球数が遊技球払出装置55(図3参照)から払い出される。
例えば、上始動口41および下始動口42aは3個、第1大入賞口45a、第2大入賞口46aは13個、一般入賞口43は10個などと賞球数が設定されている。
なお、これらの各入賞口に入賞しなかった遊技球は、アウト口48を介して遊技領域3aから排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、ゲートを遊技球が通過したりすることをいう。実際には入賞口ごとに形成されたセンサ(各入賞検出スイッチ)により遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。
発光部20bは演出用の発光動作やエラー告知用の発光動作、動作状態に応じた発光動作などを行う。
次に本実施形態のパチンコ遊技機1の制御系の構成について説明する。図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、液晶制御基板52、払出制御基板53、発射制御基板54、電源基板58が設けられている。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力、可動体役物を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
払出制御基板53は、パチンコ遊技機1に接続された遊技球払出装置55による賞球の払い出し制御を行う。
発射制御基板54は、遊技者のパチンコ遊技機1に設けられている発射装置56による遊技球の発射動作の制御を行う。
電源基板58は、外部電源(例えばAC24V)からAC/DC変換、さらにはDC/DC変換を行い、各部に動作電源電圧Vccを供給する。なお電源経路の図示は省略している。
主制御部50は、CPU100(以下「主制御CPU100」と表記)を内蔵したマイクロプロセッサ、ROM101(以下「主制御ROM101」と表記)、RAM102(以下「主制御RAM102」と表記)を搭載し、マイクロコンピュータを構成している。
主制御CPU100は制御プログラムに基づいて、遊技の進行に応じた各種演算及び制御処理を実行する。
主制御ROM101は、主制御CPU100による遊技動作の制御プログラムや、遊技動作制御に必要な種々のデータを記憶する。
主制御RAM102は、主制御CPU100が各種演算処理に使用するワークエリアや、各種入出力データや処理データのバッファ領域として用いられる。
なお図示は省略したが、主制御部50は、各部とのインターフェース回路、特別図柄変動表示に係る抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC(Counter Timer Circuit)、主制御CPU100に割込み信号を与える割込コントローラ回路なども備えている。
即ち、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号が主制御部50に供給される。
なお、これらのセンサ(71〜76)は、入球した遊技球を検出する検出スイッチにより構成されるが、具体的にはフォトスイッチや近接スイッチなどの無接点スイッチや、マイクロスイッチなどの有接点スイッチで構成することができる。
さらに、主制御部50には、第1大入賞口45の開放扉45bを開閉駆動する第1大入賞口ソレノイド78と、第2大入賞口46の開放扉46bを開閉駆動する第2大入賞口ソレノイド79が接続されている。主制御部50は、いわゆる大当たり状況に応じて、第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79を駆動制御して、第1大入賞口45又は第2大入賞口46の開放動作を実行させる。
主制御部50は、払出制御基板53に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信する。払出制御基板53は当該制御コマンドに応じて遊技球払出装置55を制御し、遊技球の払い出しを実行させる。
また払出制御基板53は、主制御部50に対して、払い出し動作状態に関する情報(払出状態信号)を送信可能となっている。主制御部50側では、この払出状態信号によって、遊技球払出装置55が正常に機能しているか否かを監視する。具体的には、賞球の払い出し動作の際に、玉詰まりや賞球の払い出し不足といった不具合が発生したか否かを監視している。
演出制御部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)の発光制御、可動体役物の動作制御などとなる。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う。
画像ROMには、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されている。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域とされる。
液晶制御CPUは、VDPが表示制御を行うために必要な制御データを出力する。
液晶制御ROMには、液晶制御CPUの表示制御動作手順を記述したプログラムやその表示制御に必要な種々のデータが格納される。
液晶制御RAMは、ワークエリアやバッファメモリとして機能する。
具体的に、液晶制御基板52の液晶制御CPUは、演出制御部51が主制御部50からの受信コマンドを解析して得た液晶制御コマンドを取得し、該液晶制御コマンドについての解析を行い、解析結果に基づき液晶制御用のシナリオデータ(演出進行データ)の作成、及び該シナリオデータに基づく画像データの生成を行い、液晶表示装置32に出力する。
枠ドライバ部61は、枠側のランプ部63のLEDについて発光駆動を行う。なお、ランプ部63とは、図1に示したように枠側に設けられている発光部20wを総括的に示したものである。
盤ドライバ部62は、盤側のランプ部64のLEDについて発光駆動を行う。なお、ランプ部64とは、図2に示したように盤側に設けられている発光部20bを総括的に示したものである。
モータドライバ部70は可動体役物モータ65を駆動して、盤側に設けられている可動体役物の動作を実行させる。
可動体役物モータ65は例えばステッピングモータが用いられる。
詳しくは図4を用いて後述するが、本実施形態の場合、演出制御部51(演出制御CPU200)は、シリアルデータ送信チャネルch1,ch2,ch3を用いて、発光駆動データやモータ駆動データをシリアルデータとして、枠ドライバ部61、盤ドライバ部62、モータドライバ部70に出力する。
なお例えば盤ドライバ部62の一部が、モータドライバ部70としての動作を行うことで、ランプ部64の各LEDと可動体役物モータ65の駆動を行うようにしてもよい。
音源IC59は、複数チャネルのフレーズをミキシングして所定本数(チャネル数)の音声信号を得る。図1に示したように、本例の場合、スピーカ25は複数設けられるため、音源IC59の出力チャネル数は例えばLch,Rchの2チャネルなど(ステレオ出力)が可能となる。上記のミキシングにより、演出制御部51より再生指示された複数チャネルのフレーズを同時再生可能とされる。
なお、図3では図示の都合上、音源IC59の出力チャネル数を1つとしているが、実際にはアンプ部67及びスピーカ25としては、例えばLch、Rchに対応した出力チャネルがそれぞれ設けられ、ステレオによる音再生が可能とされる。
また、この例では音源IC59を演出制御部51とは別体に設けるものとしたが、音源IC59は演出制御部51内に設けることもできる。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
これらの情報を有効なものとして送信する場合、モード(MODE)およびイベント(EVENT)各々に対応してストローブ信号が出力される。すなわち、主制御CPU100は、送信すべきコマンドがある場合、演出制御部51にコマンドを送信するためのモード(MODE)情報の設定および出力を行い、この設定から所定時間経過後に1回目のストローブ信号の送信を行う。さらに、このストローブ信号の送信から所定時間経過後にイベント(EVENT)情報の設定および出力を行い、この設定から所定時間経過後に2回目のストローブ信号の送信を行う。
ストローブ信号は主制御CPU100により、演出制御CPU200が確実にコマンドを受信することが可能な所定期間アクティブ状態に制御される。
また演出制御部51(演出制御CPU200)は、ストローブ信号の入力に基づいて割込を発生させてコマンド受信割込処理用の制御プログラムを実行し、この割込処理において演出制御コマンドが取得される。
パチンコ遊技機1の動作の概説について説明する。
−図柄変動表示ゲーム−
パチンコ遊技機1では、所定の始動条件、具体的には、遊技球が上始動口41または下始動口42に入賞したことを条件に、主制御部50において乱数抽選による大当り抽選が行なわれる。この抽選結果に基づき、特別図柄(大当り抽選結果を報知するための識別図柄)を第1特別図柄表示部80または第2特別図柄表示部81に変動表示させて特別図柄変動表示ゲームを開始し、一定時間経過後に、その結果を特別図柄表示部(80又は81)に表示する。
なお説明上、第1特別図柄表示部80側の特別図柄変動表示ゲームを「第1特別図柄変動表示ゲーム」、第2特別図柄表示部81側の特別図柄変動表示ゲームを「第2特別図柄変動表示ゲーム」と称する。但し、第1,第2特別図柄を総称して「特別図柄」と表記し、また第1,第2特別図柄変動表示ゲームを「特別図柄変動表示ゲーム」と総称する。
大当り遊技が開始されると、最初に大当りが開始された旨を報知するオープニング演出が行われ、オープニング演出が終了した後、上記ラウンド遊技が規定ラウンド数、行われる。また、ラウンド遊技中は、各ラウンド対応するラウンド演出が行われる。そして、規定ラウンド数終了後には、大当りが終了される旨を報知するエンディング演出が行われ、これにより大当り遊技が終了する。
通常は、この保留球の発生順に、各保留球に対する変動表示ゲームが実行される。本実施形態では、最大保留記憶個数と同数の4個を上限の所定個数として扱い、第1特別図柄、第2特別図柄に関する保留データをそれぞれ4個まで記憶し、特別図柄または普通図柄の変動確定回数として保留する。
本実施形態のパチンコ遊技機1では、複数種類の遊技状態を発生可能に構成されている。
まず、本実施形態のパチンコ遊技機1は、主制御部50(CPU100)がその機能部を担う「確率変動(以下、「確変」と称する)機能」を備えている。これには特別図柄に係る確変機能(以下「特別図柄確変機能」と称する)と普通図柄に係る確変機能(以下「普通図柄確変機能」と称する)の2種類がある。
普通図柄確変機能は、補助当り抽選確率が所定確率(通常確率)である低確率(例えば256分の1)から高確率(例えば256分の255)に変動させて、通常遊技状態よりも有利な「補助当り確変状態」を発生させる機能である。この補助当り確変状態下では、補助当り抽選確率が高確率状態となることから補助当りが生起され易くなり、普電開放遊技が頻繁に発生して、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
なお、パチンコ遊技機1では、特別図柄の変動表示時間が保留数の違いにより短縮される場合があるが、この場合は、特別図柄時短状態が発生しているわけではなく、他の制御処理によるものである。
開放延長機能は、可動翼片42bを開動作させる期間およびその開放回数を延長した「開放延長状態」を発生させる機能である。この開放延長状態は、いわゆる「電チューサポート状態」と称される。開放延長状態下では、可動翼片42bの開動作期間(始動口開状態時間)が、例えば0.2秒から1.7秒に延長され、またその開閉回数が、例えば1回から2回に延長され、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
ここで本実施形態では、普通図柄確変機能、普通図柄時短機能、および開放延長機能の作動開始条件は、特別図柄時短機能の作動開始条件と同じ条件としており、各機能が同じ契機にて動作することになる。
本実施形態のパチンコ遊技機1では、特別図柄変動表示ゲームにて抽選される当りの種類、つまり大当り抽選対象となる当り種別として、「15R低ベース非確変大当り」、「15R低ベース確変α大当り」、「15R低ベース確変β大当り」、「15R高ベース確変大当り」、「2R低ベース確変大当り」、および「小当り」などの複数種類の当りが設けられている。
続いて、第1の実施形態としてのドライバ構成を説明する。上述した演出制御部51のシリアルデータ送信チャネルch1,ch2,ch3により発光駆動データやモータ駆動データがシリアルデータとして供給される枠ドライバ部61(第1系統)、盤ドライバ部62(第2系統)、モータドライバ部70(第3系統)の構成である。
第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)と表記する。
シリアルデータ出力チャネルch2の信号線もチャネルch1と同様、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、発光駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、盤ドライバ部62を構成するm個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
盤ドライバ部62の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のLEDドライバ90の識別子)が設定されている。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をb1〜b(m)と表記する。
シリアルデータ出力チャネルch3の信号線も同様に、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、モータ駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、モータドライバ部70を構成するp個のモータドライバ90Mに対して各信号を並列に供給するように接続されている。
モータドライバ部70の各モータドライバ90Mには、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のモータドライバ90Mの識別子)が設定されている。説明上、仮に、図示のように各モータドライバ90MのデバイスID(スレーブアドレス)をmt1〜mt(p)と表記する。
なお、ここでは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を有する。
LEDドライバ90は、シリアルバスインターフェース91、アドレス設定部92、データバッファ/PWMコントローラ93、D/A変換器94、駆動電流源回路95−1〜95−24を備える。
駆動電流源回路95−1〜95−24は、上記の24系列の駆動電流出力を、それぞれ電流端子96−1〜96−24から行う電流源である
なおシリアルデータの形式については図30で後述するが、演出制御CPU200はスレーブアドレスを指定してLED駆動データを送信してくる。
データバッファ/PWMコントローラ93は、シリアルバスインターフェース91から転送されたパラレルデータについて、スレーブアドレス確認を行う。パラレルデータに含まれるスレーブアドレスが、アドレス設定部92に設定された自己のスレーブアドレス(w1〜w(n)、b1〜b(m)のいずれか)と一致していることを確認した場合に、該パラレルデータに含まれるLED駆動データを有効なデータとして、指定されたレジスタに格納する。
D/A変換器94は、輝度情報に応じた値をアナログ信号に変換し、各電流源回路95−1〜95−24への制御信号とする。
各系列(電流端子96−1〜96−24)では、LED120及び抵抗Rの直列接続に対して電源電圧Vccが印加される。電流源回路95−1〜95−24によって各系列のLED120に電流が流され、発光が行われる。
即ち各電流源回路95−1〜95−24は、D/A変換器94から供給された信号に応じた電流量の駆動電流を、対応する系列のLED120に流すように動作する。
なお、本実施形態では、PWM駆動方式により、電流値が例えば0mAと5mAとされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
モータドライバ部70におけるモータドライバ90Mの数pは、可動体役物のモータ数によって決められる。従ってpは1の場合もあるし、2以上の場合もある。モータドライバ部70は1又は複数のモータドライバ90Mを有する。
図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系統、第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に対して略同時的に出力する送信処理を行うようにしている。
以下、本実施形態の制御処理につき説明する。まずここでは主制御部(主制御基板)50によるメイン処理について述べる。
図6は、主制御部50のメイン処理を示すフローチャートである。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチ(図示せず)が操作されることなく電源がON状態になる場合と、初期化スイッチがON操作されて電源がON状態になる場合とがある。いずれの場合でも、パチンコ遊技機1に電源が投入されると、電源基板58によって各制御基板に電圧が供給される。この場合に主制御部50(主制御CPU100)は図6に示すメイン処理を開始する。
次に主制御CPU100はステップS12で、図示してない入力ポートを介して入力されるRAMクリアスイッチの出力信号であるRAMクリア信号の状態(ON、OFF)を判定する。RAMクリア信号とは、RAMの全領域を初期設定するか否かを決定する信号である。RAMクリア信号としては通常、パチンコ店の店員が操作する初期化スイッチのON/OFF状態に対応した値を有している。
続いてステップS17で主制御CPU100は、RAM領域がゼロクリアされたことを報知するための「RAMクリア表示コマンド」を初期化コマンドとして各制御基板に送信する。そしてステップS18で、RAMクリア報知タイマに、RAMクリアされた旨を報知するための時間として、例えば30秒を格納する。
その後はステップS20、S21、S22の処理として、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、各種乱数更新処理を実行する。このステップS21の各種乱数更新処理では、特別図柄変動表示や普通図柄変動表示に使用される各種乱数の初期値(スタート値)変更のために使用する乱数や、変動パターンの選択に利用される変動パターン用乱数を更新する。
なお、特別図柄変動表示や普通図柄変動表示に使用される各種乱数とは、例えばインクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数)などである。また初期値変更のために使用する乱数とは、特別図柄判定用初期値乱数、補助当り判定用初期値乱数などである。
ステップS21の各種乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどを更新して、上記各種のソフト乱数を生成する。例えば変動パターン用乱数1カウンタとして取り得る数値範囲が0〜238とすると、主制御RAM102の変動パターン用乱数1の値を生成するためのカウント値記憶領域から値を取得し、取得した値に1を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に1を加算した結果が239であれば0を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。主制御CPU100は、間欠的に実行されるタイマ割込処理を行っている間を除いて、各種乱数更新処理を繰り返し実行するようになっている。
したがって、電源投入時や停電状態からの復旧時である場合には、通常では、バックアップフラグがON状態のはずである。ただし、何らかの理由で電源遮断までに所定の処理が完了しなかったような場合には、バックアップフラグはリセット(OFF)状態になる。そこで、バックアップフラグがOFF状態である場合には、主制御CPU100は処理をステップS13からS16に進め、遊技機の動作を初期状態に戻す。
そして、チェックサム値が算出されたら、この演算結果を、主制御RAM102のSUM番地の記憶値と比較をする。このSUM番地には、電源遮断時に、同じチェックサム演算によるチェックサム値が記憶されている。そして、記憶された演算結果は、主制御RAM102の他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップS14の判定によって両者が一致するはずである。
しかし、電源遮断時にチェックサム演算が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算の実行時までの間に、ワーク領域のデータが破損している場合もある。このような場合にはステップS14の判定結果は不一致となる。
判定結果の不一致によりデータ破損が検出された場合には、主制御CPU100はステップS14からS16の処理に進んでRAMクリア処理を実行し、遊技機の動作状態を初期状態に戻す。
そしてステップS15の遊技復旧処理を終えると、ステップS19の処理に進み、CTCを初期設定してCPUを割込み許可状態に設定し、その後は、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、上述した各種乱数更新処理を実行する(ステップS20〜S22)。
このステップS53の処理により、各入賞口において入賞を検出(入賞が発生)したか否かが割込みごとに監視される。また上記「入賞カウンタ」とは、各々の入賞口ごとに対応して設けられ、入賞した遊技球数(入賞球数)を計数するカウンタである。本実施形態では、主制御RAM102の所定領域に、上始動口41用の上始動口入賞カウンタ、下始動口42a用の下始動口入賞カウンタ、ゲート44用の普通図柄始動口入賞カウンタ、第1大入賞口45a用の第1大入賞口入賞カウンタ、第2大入賞口46a用の第2大入賞口入賞カウンタ、一般入賞口43用の一般入賞口用の入賞カウンタなどが設けられている。
またこの入力管理処理では、入賞検出スイッチからの検出情報が入賞を許容すべき期間中に入賞したか否かに基づいて、不正入賞があったか否かも監視される。たとえば大当り遊技中でないにもかかわらず第1、第2大入賞口センサ75,76が遊技球を検出したような場合は、これを不正入賞とみなして入賞検出情報を無効化し、その無効化した旨を外部に報知するべく後述のステップS55のエラー管理処理において所定のエラー処理が行われるようになっている。
エラー処理としては、例えば所定の遊技動作(例えば遊技球の払い出し動作や遊技球の発射動作など)の進行を停止させたり、エラー報知用コマンドを演出制御部51に送信して、演出手段によりエラーが発生した旨を報知させたりする。
この払出制御コマンドを受信した払出制御基板53は、遊技球払出装置55を制御し、指定された賞球数の払い出し動作を行わせる。これにより、それぞれの入賞口に対応した賞球数が払い出されるようになっている。入賞口に対応した賞球数とは、入賞口別に設定された入賞球1個当りの所定の賞球数×入賞カウンタの値分の賞球数である。
ステップS59では、主制御CPU100は、特別図柄管理処理を行う。この特別図柄管理処理では、主に、特別図柄変動表示における大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、変動開始時の変動パターン)や特別停止図柄などを決定する。
ステップS60では、主制御CPU100は特別電動役物管理処理を行う。この特別電動役物管理処理では、主に、大当り抽選結果が「大当り」または「小当り」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行う。
右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、演出制御コマンドとして、右打ち報知演出の実行指示する「右打ち指示コマンド」が演出制御部51に送信され、このコマンドを受けて、演出制御部51が、画像や音声による右打ち報知の実行制御を行う。
ステップS62では、主制御CPU100は、LED管理処理を行う。このLED管理処理は、図柄表示部33に対して普通図柄表示や第1,第2特別図柄表示のための表示データを出力する処理である。この処理により、普通図柄や特別図柄の変動表示および停止表示が行われる。なお、ステップS57の普通図柄管理処理で作成された普通図柄の表示データや、ステップS59の特別図柄管理処理中の特別図柄表示データ更新処理で作成される特別図柄の表示データは、このLED管理処理で出力される。
ステップS64では、主制御CPU100は、ソレノイド管理処理を行う。このソレノイド管理処理では、ステップS58の普通電動役物管理処理で作成されたソレノイド制御データに基づく普通電動役物ソレノイド77に対する励磁信号の出力処理や、ステップS60の特別電動役物管理処理で作成されたソレノイド制御データに基づく第1,第2大入賞口ソレノイド78,79に対する励磁信号の出力処理を行う。これにより、可動翼片42bや開放扉45b、46bが所定のパターンで動作し、下始動口42aや大入賞口45a、46bが開閉される。
図8において、主制御CPU100はステップS71で、まず第1特別図柄側(上始動口41側)に関する第1特図始動口チェック処理を行い、次いでステップS72で第2特別図柄側(下始動口42a側)に関する第2特図始動口チェック処理を行う。
すなわち、小当り遊技中でもなく大当り遊技中でもないとしてステップS75に進んだ場合、特別図柄が変動可能状態下に置かれ、これにより、特別図柄動作ステータスが「待機中」「変動中」「確認中」のいずれの状態であるかに応じて、それぞれに対応する特別図柄の変動表示動作に関する処理が行われる。
一方、小当り遊技中、または大当り遊技中である場合には、特別図柄が変動可能状態下には置かれないため、特別図柄の変動表示動作に関する処理を行わずにステップS79に進む。
ここで、上述の「待機中」とは、特別図柄の挙動が次回変動のための待機状態である旨を示し、「変動中」とは特別図柄の挙動が変動(変動表示)中である旨を示し、「確認中」とは特別図柄の変動が終了して停止(確定)表示中(特別図柄確認時間中)である旨を示す。
図9は、ステップS71の第1特図始動口チェック処理の詳細を示すフローチャートである。第1特図始動口チェック処理は、所定の始動条件の成立に基づいて実行される入賞時処理としての役割を果たし、第1特別図柄変動表示ゲームに係る上始動口41についての入賞チェック処理が行われる。
なお、ステップS81で上始動口41の入賞を検出しなかった場合、何もしないでこの第1特図始動口チェック処理を抜ける。
次にステップS84で、第1特図保留球に基づく、第1特別図柄変動表示ゲームに利用される各種乱数(大当り判定用乱数、特別図柄判定用乱数、変動パターン用乱数1、および変動パターン用乱数2)の乱数カウンタの現在値を取得して、それぞれ主制御RAM102の保留記憶エリアに格納する。この保留記憶エリアには、取得された上述の各種乱数値(図柄遊技に係る所定の遊技情報)が保留データとして、第1特別図柄の変動表示動作に供されるまで所定の記憶数を上限として始動条件の成立順(入賞順。ただし、本実施形態では、最大保留記憶数である第1特図保留球数が4未満の場合)に保留記憶される。
なお主制御RAM102の保留記憶エリアには、第1特別図柄と第2特別図柄とに対応した保留記憶エリアが設けられており、それぞれ保留球数分の保留データを格納可能となっている。
本実施形態では、入賞時における大当り判定用乱数値を特別電動役物作動判定用乱数ラッチバッファと該当する保留記憶エリアとに格納するようになっているが、特別電動役物作動判定用乱数ラッチバッファを設けない場合は、保留記憶エリアにそのまま格納し、必要なタイミングで、該当保留記憶エリアの大当り判定用乱数値を読み出すように構成しても良い。
第1特図先読み禁止条件が成立していない場合にはステップS87に進み、第1特図用当り乱数判定テーブルを取得し、ステップS88で主制御RAM102(特別電動役物作動判定用乱数ラッチバッファ)に格納された大当り判定用乱数値を取得して、ステップS89の乱数判定処理を行う。
乱数判定処理では、大当り判定用乱数値を利用し、特別図柄変動表示ゲーム(ここでは、第1特別図柄変動表示ゲーム)に係る「当落抽選」を行う。
特別停止図柄データ作成処理では、乱数判定処理の当落抽選結果と特別図柄判定用乱数値を利用し、特別図柄変動表示ゲーム(ここでは、第1特別図柄変動表示ゲーム)に係る「図柄抽選」を行う。
そしてステップS94で入賞コマンドデータ(下位バイト(EVENT))を作成し、またステップS95で保留球数(上位バイト(MODE))に基づく保留加算コマンドを作成し、ステップS96で演出制御部51に送信する。
これにより、第1特図始動口チェック処理を抜けて、図8のステップS72の第2特別図柄始動口チェック処理を行う。第2特別図柄始動口チェック処理は、第2特別図柄に関して、図9と概略同様の処理を行うものであるため詳細な説明は省略する。
コマンドの例として、特別図柄変動表示ゲームの当落抽選にかかる変動パターンコマンド、入賞時コマンドの一部を図10Aに示し、また図柄指定コマンドの一部を図10Bに示している。
変動パターンコマンド、入賞時コマンドは、上位バイトと下位バイトで変動パターンの種別が規定され、外れ/当たりに応じて上位バイトが異なるように構成されている。
図柄指定コマンドは、上位バイトで第1、第2特別図柄が示され、下位バイトで当たりの種別が指定される構成となっている。
(1-6-1:メイン処理)
続いて演出制御部51の処理について説明する。演出制御部51の処理としては、主に、メインループ上で16ms毎に行われる処理(以下「16ms処理」ともいう)と、1ms毎に行われる割り込み処理(以下「1msタイマ割込処理」ともいう)がある。
まずここでは16ms処理を含むメイン処理について説明する。
図11は、演出制御部51のメイン処理を示している。演出制御部51(演出制御CPU200)は、遊技機本体に対して電源が投入されると、図11のメイン処理を開始する。
このメイン処理において、演出制御CPU200は、まずステップS101で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、コマンド受信割込み設定、可動体役物の起点復帰処理、CTCの初期設定、タイマ割込みの許可、マイクロコンピュータの各部を含めてCPU内部のレジスタ値の初期設定などを行う。
即ちこの例では、演出制御CPU200はステップS102でのIDチェックとステップS119での乱数更新を毎ループ行うと共に、16ms毎に、ステップS105〜S118の処理(16ms処理)を行う。
IDに問題のない通常時は、演出制御CPU200はステップS104以下の処理を行うことになる。即ち演出制御CPU200は、16ms処理の実行判断のための割込みカウンタの値が「15」より大きい値となっているか否かを判断する。この割込みカウンタは、後述する図12の1msタイマ割込処理のステップS207でインクリメントされていくカウンタである。従って割込みカウンタの値が「15」より大きい場合とは、16ms処理のタイミングになっていることを意味する。
一方、割込みカウンタの値が「16」以上である場合は、演出制御CPU200はステップS105〜S118の処理を実行し、その後、ステップS119で演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行うことになる。
その場合、まずステップS105では、割込みカウンタをゼロリセットする。以後、再び次の16ms処理までのカウントを行うためである。
次にステップS106で演出制御CPU200は、エラー処理を行う。このエラー処理としては、RAMクリアエラー中、役物エラー中、右打ちエラー中などにおけるエラー処理タイマの処理、各種エラーが発生した際のエラー報知のためのシナリオ登録処理、エラー報知後のエラーシナリオのクリア処理などを行うこととなる。
次にステップS107では、演出制御CPU200はデモ処理を行う。このデモ処理では、再生音の制御、デモムービー実行や役物原点補正のシナリオ登録や、そのコマンドセットなどの処理を行う。客待ち状態などでは、このデモ処理で設定されたシナリオが実行されることでデモムービー表示が実行される。
ステップS109では、演出制御CPU200は入力検知処理を行う。この入力検知処理では、操作部60の操作子(演出ボタン11、12、十字キー13)の操作による入力の検知を行い、入力を検知した場合、その操作に応じた処理を行う。
ステップS110では、演出制御CPU200はシナリオ更新処理を行う。この処理ではメインシナリオの更新、サブシナリオの更新が行われる。その際にはランプ部64,65の点灯パターン登録、再生する音の登録、可動体役物の駆動のためのモータ動作の登録なども行われる。詳しくは図18,図19を用いて後述する。
ステップS111では、演出制御CPU200は音再生処理を行う。演出制御CPU200は、シナリオデータに基づいてワークに音チャネルとして登録されている音データに基づいて、フレーズ番号やボリューム等のデータを音源ICに出力する。これによってスピーカ25からの効果音、音楽・音声等の再生出力が行われる。
ステップS112では、演出制御CPU200は役物エラー処理を行う。ここでは可動体役物の原点復帰がなされていないなどの位置エラー判定などを行う。
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を用いて後述する。
さらにステップS118ではシナリオ更新カウンタをゼロリセットする。シナリオ更新カウンタは後述の1msタイマ割込処理でインクリメントされるカウンタである。
以上のような16ms処理が、図11のメインループ処理において16ms経過毎に行われる。
次に図12により1msタイマ割込処理を説明する。演出制御CPU200は、タイムカウントにより1ms毎に発生する割込要求に応じて、図12の1msタイマ割込処理を実行する。
この1msタイマ割込処理においては、まずステップS201では主制御CPU100からのテストコマンドに応じたチェックサム算出中であるか否かを判断する。チェックサム算出中でなければ、演出制御CPU200はステップS202の入力処理に進む。
このような入力処理(S202)及び入力検知処理(S109)により、ノイズ・チャタリングによる入力誤認識の防止がはかられる。また、入力カウンタを用いており、本実施形態では例えば16ビットカウンタを用いて65535ms(約65秒)までなどをカウントできるようにしているため、いわゆる長押しの検出も可能となる。
ステップS204では、演出制御CPU200は、モータ駆動データを出力する。このステップS204では、可動体役物モータ65としてのステッピングモータ121に対する駆動データとしてのシリアルデータを、モータドライバ部70のモータドライバ90Mに対して出力することになる。
この割込みカウンタの値0〜15に応じて、ケース0〜ケース15としてステップS205の処理が規定される。例えば本実施形態では、ケース0ではWDT(watchdog timer)クリア信号ONを行う。ケース1〜3ではモータドライバ90Mの初期化処理を行う。ケース8ではWDTクリア信号OFFを行う。
その後、演出制御CPU200はステップS207で割込みカウンタのインクリメントを行い、またステップS208でシナリオ更新カウンタのインクリメントを行う。そしてシナリオ更新カウンタの値が100未満であれば、1msタイマ割込処理を終える。
なお、シナリオ更新カウンタは上述のように16ms処理のステップS118でゼロリセットされるため、通常はシナリオ更新カウンタの値が100以上となることはない。100以上となるのは、演算異常、処理応答異常などにより16ms処理が実行されない場合や、16ms処理内の或る処理の進行が停止しているような場合である。このような場合は、無限ループに入り、WDTによってタイムアップ処理が行われるのを待つことになる。
続いて、16ms処理として図6のステップS108で行われるコマンド解析処理について、図13〜図15で説明する。演出制御CPU200は、ステップS108のコマンド解析処理として、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。この具体的な処理として、図13のステップS301〜F308の処理を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は図14,図15で後述する。
図14Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず図14AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、ランプ部63,64におけるLED120の消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄指定コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、図柄変動フラグをセットする。図柄変動フラグは、第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応してそれぞれ設けられ、それぞれのフラグで変動状態を表すものとされる。例えば各2ビットの第1特別図柄変動フラグFZ1、第2特別図柄変動フラグFZ2、普通図柄変動フラグFZ3が用意され、それぞれについて変動中、停止中(当たり)、停止中(外れ)が示される。ここでは変動開始に伴い、対応する図柄変動フラグ(FZ1,FZ2,FZ3のいずれか)を、「変動中」を示す値にセットする。
なお図柄変動フラグは、当たりの場合は、図柄変動終了時に所定時間「停止中(当たり)」を示す値にセットされ、その後、図柄変動が開始されるまで「停止中(外れ)」を示す値にセットされる。
ステップS335で演出制御CPU200は、変動開始処理を行う。その後、変動開始に応じてステップS336で変動パターンコマンドの削除を行う。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
この場合、演出制御CPU200は、ステップS350で第1特別図柄変動表示ゲーム又は第2特別図柄変動表示ゲームのいずれか対応する方の保留数レジスタ(演出制御RAM202内で設定された第1保留数又は第2保留数としてのレジスタ領域)における保留数の値を読み出して、加算する処理を行う。そしてステップS351で液晶制御基板52に対して保留数表示のためのコマンドをセットし、ステップS352で第1保留数又は第2保留数として更新した値をセットする。
この場合、演出制御CPU200は、ステップS360で第1特別図柄変動表示ゲーム又は第2特別図柄変動表示ゲームのいずれか対応する方の保留数レジスタ(演出制御RAM202内で設定された第1保留数又は第2保留数としてのレジスタ領域)における保留数の値を読み出して、減算する処理を行う。そしてステップS361で液晶制御基板52に対して保留数表示のためのコマンドをセットし、ステップS362で第1保留数又は第2保留数として更新した値をセットする。
この場合、演出制御CPU200は、ステップS371で遊技状態報知フラグをセットする。遊技状態報知フラグとしては、例えば「大当たり中」「確変中」「時短中」を示すフラグFJ1,FJ2,FJ3が用意される。演出制御CPU200はステップS371では状態報知コマンドで指示される遊技状態に応じて、いずれかの対応する遊技状態報知フラグをセットすることになる。
次にシナリオ登録・削除処理について説明する。シナリオとは演出制御やエラー処理その他、各種の実行すべき動作を規定したデータである。実行すべきシナリオのデータは、シナリオ登録情報として演出制御RAM202のワーク領域に登録される。図20Aに示すシナリオ登録情報の構造については後述するが、シナリオ登録情報としては、0〜63までの64個のシナリオチャネルが用意されている。この64個のシナリオチャネルに登録されたシナリオは同時に実行可能とされる。以下、シナリオチャネルを「sCH」で示す。
シナリオ登録処理とは、シナリオ登録情報における任意のシナリオチャネルに、登録を要求されたシナリオ番号のシナリオを登録する処理である。原則的には、sCH0〜sCH63のシナリオチャネルは、どのチャネルが用いられても良い。
ステップS401で演出制御CPU200は、まず今回登録すべきシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、何もせずに処理を終える。
「追加ポインタ」+Bのシナリオチャネルが空きでなければ、演出制御CPU200はステップS404で変数Bをインクリメントする。
ステップS405でB<64でなければ、この図16の処理を終える。これは全シナリオチャネルについて探索を行ったが、空きチャネルがなくてシナリオ登録が不可能となる場合である。
まだ全シナリオチャネルの探索(空きチャネルであるか否かの確認)を行っていない時点では、ステップS405でB<64である。その場合はステップS406の確認処理を行い、「追加ポインタ」+Bの値がシナリオチャネルsCHの最大値を超えた値「64」以上となっていなければステップS403に戻る。
また「追加ポインタ」+Bの値が「64」以上となっていた場合は、ステップS407で追加ポインタの値の補正処理を行う。具体的には「追加ポインタ」+Bの値が「64」となった場合、追加ポインタの値を「64」減算する処理を行う。そしてステップS403に戻る。
つまり、ステップS404での変数Bのインクリメントにより、ステップS403が行われるたびに確認されるシナリオチャネルsCHが、順次1つずつ進行することとなる。
また、変数BはステップS402でゼロリセットされてからステップS404でインクリメントされるものであるため、ステップS405でB<64とはならない場合(つまり変数Bが64に達した場合)は、既にステップS403の処理が64回行われた場合である。これは全シナリオチャネルsCH0〜sCH63を調べたが、空きがなかったと判断された場合である。そのため登録不可能として図16の処理を終えることとなる。
そこでステップS406でこの点を確認し、「追加ポインタ」+Bの値が「64」となっていたら、ステップS407では、次に確認するシナリオチャネルを「sCH0」に戻すために、追加ポインタの補正を行う。つまり追加ポインタの値を−64することで、「追加ポインタ」+Bの値が「0」となるようにする。これにより次のステップS403では、シナリオチャネルsCH0が空きであるか否か確認されるようにする。
そしてステップS409で、追加ポインタを、登録を行ったシナリオチャネル+1の値に更新する。つまり今回登録を行ったシナリオチャネルの次のシナリオチャネルの値を、追加ポインタとして記憶しておき、次回の登録処理に使用できるようにする。なお、本実施形態ではシナリオチャネルはsCH0〜sCH63の64チャネルのため追加ポインタの最大値は63となる。
図17Aは、或るシナリオをシナリオ登録情報から削除する場合の演出制御CPU200の処理を示している。
演出制御CPU200は、コマンド或いはプログラムグラム上で指定される、削除するシナリオ番号(後述のメインシナリオ番号(mcNo))の値に基づいて、図17Aの処理を開始する。まずステップS421で演出制御CPU200は、削除要求にかかるシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、削除せずに処理を終える。
このステップS423,F424の処理によれば、シナリオチャネルsCH0からシナリオチャネルsCH63に向かって順に、削除対象のシナリオを探索していくこととなる。
ステップS423でシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号であった場合は、ステップS426に進み、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオを削除する処理を行う。
以上により、要求された或るシナリオ番号のシナリオをワーク(シナリオ登録情報)から削除する処理が行われる。
なお、ステップS425でB<64ではないと判断される場合、つまり変数Bが64に達した場合は、シナリオチャネルsCH0〜sCH63の全てを探索したが、削除対象のシナリオが登録されていなかったということになるため、処理を終える。
演出制御CPU200は、コマンド或いはプログラム上で、或るシナリオ番号の範囲で削除指定された場合、まずステップS431で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象範囲に該当するシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象範囲に該当するシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
シナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号ではなければ、ステップS433を行わずにステップS434に進む。
演出制御CPU200はステップS434では、変数Bをインクリメントし、ステップS435でB<64であることを確認して、ステップS432に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ範囲削除処理を終える。
以上により、シナリオ番号範囲の1又は複数のシナリオについて、ワーク(シナリオ登録情報)からの削除が行われる。
演出制御CPU200は、シナリオ全削除が要求された場合、まずステップS441で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、保護対象のシナリオを登録したシナリオチャネルを確認するために使用する変数となる。さらに変数Bは、まだ確認(保護対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
そしてステップS444で変数Bをインクリメントし、ステップS445でB<64であればステップS442に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ全削除処理を終える。
以上により、ワークにシナリオ登録情報として登録されているシナリオについて、保護対象のシナリオを除く全シナリオの削除が行われる。
続いてメイン処理の16ms処理のステップS110で行われるシナリオ更新処理について説明する。シナリオ更新処理では図18、図19で説明するようにメインシナリオとサブシナリオの更新が行われる。
本実施形態では、先にも述べたようにシナリオ登録情報は、シナリオチャネルsCH0〜sCH63の64個のチャネルを有するものとされる。各シナリオチャネルsCHに登録されたシナリオについては同時に実行可能とされる。
待機時間(delay)は、シナリオチャネルsCHに登録してからそのシナリオが開始されるまでの時間を示す。なおこの待機時間(delay)は、第一実施形態では16ms処理毎に1減算される。待機時間(delay)が0の場合に、登録されたデータに対応した処理が実行されることとなる。
なお、第一実施形態では、メインシナリオタイマ(msTm)の値は、メインシナリオの開始時から16ms処理で行われるシナリオ更新の処理で+1されるため、「1」とは16msを示すものとなる。各シナリオ番号のシナリオテーブルは、或る行におけるメインシナリオタイマ(msTm)の時間を経過すると、次の行へ進むことになる。各行の時間データは、その行が終わるタイミングを示している。
例えばシナリオ番号2の場合、1500×16msの時間としてサブシナリオ番号2の動作が指定され、次の500×16msの時間としてサブシナリオ番号20の動作が指定され、次の2000×16msの時間としてサブシナリオ番号21の動作が指定されている。その次の行はシナリオデータ終了コードD_SEENDである。シナリオデータ終了コードD_SEENDの場合、シナリオ登録情報(ワーク)から、このシナリオが削除される(後述する図18のステップS617参照)。
本実施形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
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駆動データが作成される。
本実施形態では、モータデータ登録情報は、モータチャネルmCH0〜mCH7の8個のチャネルを有するものとされる。
各モータチャネルmCHに登録できる情報としては、図示のように、実行動作ナンバ(no)、登録動作ナンバ(noNew)、動作カウント(lcnt)、励磁カウンタ(tcnt)、実行ステップ(step)、動作ライン(offset)、親(移行元)/子(移行先)の属性(attribute)、親ナンバ(retNo)、戻りアドレス(retAddr)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、エラーカウンタ(errCnt)、現在の入力情報(currentSw)、ソフト上のスイッチ情報(softSw)、ソフト上のカウント(softCnt)がある。
本実施形態では、音データ登録情報は、音チャネルaCH0〜aCH15の16個のチャネルを有するものとされる。
各音チャネルaCHに登録できる情報としては、図示のように、ボリューム遷移量(frzVq)、ボリューム(frzVl)、遷移量変化(rsv2)、ボリューム変化(rsv1)、フレーズ変化(rsv0)、ステレオ(frzSt)、ループ(frzLp)、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)がある。
この音/モータサブシナリオテーブルに関しては、サブシナリオタイマ(scTm)が0になったら(なお最初は0である)、この音/モータサブシナリオテーブルの時間データ(time)の値をサブシナリオタイマ(scTm)にセットする。なお、各ラインの時間データ(time)は、当該ラインが終了するタイミングを示している。サブシナリオタイマ(scTm)には、絶対時間を記述するが、従って、セットする時間データ値は、(当該ラインの時間データ)−(前回ラインの時間データ)の値である。
当該ラインのBGMのデータは、BGMのフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音データ登録情報における音チャネルaCH0(ステレオの場合は加えてaCH1)にセットされる。
当該ラインの予告音のデータは、予告音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH2〜aCH14の空いているところにセットされる。
当該ラインのエラー音のデータは、エラー音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH15にセットされる。
音コントロールのデータは、下位6バイトでチャネル情報、上位2バイトでコントロール情報とされている。
モータのデータは、モータ1個につき1バイトでモータの動作パターン番号を示すように構成されている。モータ番号に対応するモータチャネルに動作パターン番号がセットされる。
また図11のステップS111の音再生処理では、図18,図19のシナリオ更新処理で更新される音データ登録情報に基づいて、再生出力が行われる。
図11の16ms処理のステップS110として実行される図18のシナリオ更新処理では、演出制御CPU200はループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて、ステップS601〜S616の処理を行う。当該ループ処理の各回の処理対象のシナリオチャネルを「sCHn」として説明する。
ステップS604では、当該特定したアドレスで示される、メインシナリオテーブルの或るメインシナリオ番号の実行ラインが、終了コードD_SEEND(図22参照)が記述されている最終ラインであるか否かを確認する。
終了コードが記述された最終ラインであった場合は、当該シナリオチャネルsCHnに登録されたシナリオで実行すべき処理は終了したことになるため、ステップS617で、そのシナリオチャネルsCHnに登録されているシナリオをシナリオ登録情報(ワーク)から削除する。
なお、この場合のシナリオ登録の削除は、シナリオ終了に応じた通常の削除である。先に図17で説明したシナリオ削除は、この通常削除以外の、例えば未終了のシナリオをシナリオ登録情報(ワーク)から削除する処理であることを付言しておく。
そしてステップS608で、当該シナリオチャネルsCHnで指定されるサブシナリオの更新を行う。サブシナリオの更新については図19で後述する。
またその場合、ステップS612で次のラインがループ指定であるか否かを確認する。図22のメインシナリオテーブルにおいてシナリオ番号1では、最終ラインがシナリオデータループコードD_SELOPとされている例を示したが、このようにループ指定されていた場合は、ステップS613で、メインシナリオ実行ライン(mcIx)にループ行をセットする。
そしてステップS615のチェックサム処理,ステップS616のバックアップ処理を行ってシナリオチャネルsCHnについての1回の処理を終える。
シナリオ更新処理としては、ループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて以上の処理が実行されることになる。
メインシナリオタイマ(msTm)、シナリオチャネルsCHnと、メインシナリオテーブルに記述されたサブシナリオ番号(scNo)に基づいて、図19Aのサブシナリオの更新処理が行われる。
シナリオチャネルsCHnが適正値であれば、演出制御CPU200はステップS622で、サブシナリオ番号(scNo)とサブシナリオ実行ラインlmp(lmpIx)に対応するランプサブシナリオテーブル(図23A参照)のアドレスを特定する。
そしてステップS624で、メインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間(実際にはmsTm×16msの時間)が、時間データ(time)以上となっていたら、そのラインについての処理を行う。その場合、ステップS625でランプチャネルdwCHの値が正常(dwCH0〜dwCH15の範囲内)であるか否かを確認する。異常な値であれば処理を終える。正常な値であればステップS626で、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを確認する。
点灯パターンナンバの登録処理を図19Bに示している。この場合、まず演出制御CPU200はステップS651で、当該ラインに記述されているランプチャネルdwCHの値が正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
正常値であれば、ステップS652で、当該ラインに記述されているランプナンバが正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
ランプチャネルdwCH及びランプ番号のいずれもが正常値であれば、ステップS653でワークのランプデータ登録情報における、ランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。
以上の図19Bの処理をステップS628で行ったら、演出制御CPU200はステップS629でサブシナリオ実行ラインlmp(lmpIx)の値を+1し、ステップS630でランプチャネルdwCHの値を+1してステップS624に戻る。
そしてステップS633では演出制御CPU200は、該当する音/モータサブシナリオ番号のテーブルの、サブシナリオ実行ライン(scIx)で示されるラインが、シナリオデータ終了コードD_SEENDが記述された行であるか否かを確認し、シナリオデータ終了コードD_SEENDが記述された行であれば処理を終了する。
シナリオデータ終了コードD_SEENDが記述された行でなければ、演出制御CPU200はステップS634で、サブシナリオタイマ(scTm)に、当該ラインの時間データ(time)から前回時間(scPrevTm)を減算した値を代入する。また前回時間(scPrevTm)には、当該ラインの時間データ(time)を代入する。
そしてステップS638で、サブシナリオ実行ライン(scIx)の値として次のラインの値をセットする。そしてステップS639でサブシナリオタイマ(scTm)が0でなければ、ステップS640でサブシナリオタイマ(scTm)をデクリメントして処理を終える。
図11のステップS114のLED駆動データ更新処理を説明する。
この処理は、ランプデータ登録情報に登録されている点灯ナンバ(登録点灯ナンバ(lmpNew)、実行点灯ナンバ(lmpNo))に対応するランプデータテーブルを参照して、LED駆動データを作成する処理である。なお上述のように、ランプデータ登録情報の点灯ナンバには、元々はランプサブシナリオテーブルに記述された、点灯パターンを示すランプナンバがセットされる。ランプナンバは点灯パターンを示すナンバと述べたが、具体的には図28Aで述べるランプデータテーブルのランプデータの番号を示すことになる。
演出制御CPU200はステップS701でそれまで出力データとしていたLED駆動データをクリアする。
そしてループ処理LP2として、ランプデータ登録情報のランプチャネルdwCH0〜dwCH15のそれぞれについて、ステップS702〜S720の処理が行われる。以下、処理対象のランプチャネルを「dwCHn」と表記して説明する。
なお実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致していれば、既に過去に以上のステップS703,S704の処理が行われたものであるため、これらの処理は不要である。
図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の処理が行われることになる。
このような優先度の設定のため、図26Bのように複数のランプチャネルdwCHの動作が重なる場合、優先度の高いランプチャネルの点灯動作が実行される。例えば時点t0からは、ランプチャネルdwCH0、dwCH5に基づく点灯動作が制限され、dwCH8に基づく点灯が行われるようにLED駆動データが生成される。優先度の低いランプチャネルの情報を反映させないようにするためには、後述するマスクデータが使用される。
実行点灯ナンバ(lmpNo)が異常であれば、ステップS719に進む。なおランプチャネルdwCHnが登録されていない空きチャネルの場合も、ここでは異常としてステップS719に進む。
またステップS707では、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、マスクデータテーブルのアドレスを特定する。
アドレスの特定のためには演出制御CPU200は、図27のようなランプデータアドレステーブルを参照する。このランプデータアドレステーブルには、各点灯パターン、例えば全体点滅、右側点滅、左側点滅、役物点灯などを実現するためのランプデータ番号のアドレスが示されている。図27の左端の数字は、図23Aのランプサブシナリオテーブルで示されるランプナンバであり、例えばランプナンバ2のランプデータのアドレスの欄には、全体点滅の点灯パターンを行うためのランプデータ番号が記憶されたアドレスが記述されている。
また、マスクデータのアドレスの欄には、そのランプデータ番号の点灯パターンを実行する際に必要なマスクデータが記憶されたアドレスが記憶されている。例えば点灯ナンバ5の右側点滅の点灯パターンを行う際には、センターケースマスクが必要になるが、そのセンターケースマスクを行うためのマスクデータのアドレスが記述されている。
図28Aにはランプデータテーブルの一部としてランプデータ1,2を示している。
各番号のランプデータにおける各ラインには、タイマ(frame)としての時間データと点灯データが記述されている。タイマ(frame)は各ラインの点灯データによるLED駆動データの生成を行う時間を規定する。
タイマ(frame)の数値は、1割込処理分の時間(16ms)を単位とした数値である。つまり、図の例において、タイマ(frame)=「4」のラインは、16ms×4=64msに相当する時間を表すものである。
以下、ランプデータテーブルにおいて、各番号のランプデータが書き込まれた各ラインのことを「ラインL」と表記する。
点灯データとしては、図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毎に設定されることで、時系列的に変化する所定の発光パターンが示されることになる。(図では点灯データは一部のみに例示した。空欄部分は図示を省略したもので、実際には点灯データが記述される)
各マスクデータ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はデータ値の図示を省略している)
図24のステップS706,S707では、このようなランプデータテーブル、マスクデータテーブルにおいて、処理中のランプチャネルdwCHnに対応するアドレスを特定するものである。
ステップ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)の値をループ先のアドレスに更新する。
以上で、1つのランプチャネルdwCHnを対象としたLEDデータ更新を終える。ループ処理LP2として、以上の処理をランプチャネルdwCH0〜dwCH15まで順次行うことになる。
図29Aは点灯データとマスクデータを展開して生成したLED駆動データを記憶する出力データバッファ(発光駆動データ記憶部)を模式的に示している。
出力データバッファは、ランプデータテーブル及びマスクデータテーブルと同様に、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対応して用意される。図示する1つのマスは、1つのLEDドライバ90に対応する(4×24)ビットの情報のバッファ領域を示している。
例えば図26で示した時点t0の場合、出力データバッファは、ランプデータ2のマスクデータ(図27参照:マスクなし)がアンド展開され、ランプデータ2の3ライン目の点灯データがオア展開された状態の後、ランプデータ5のマスクデータ(図27参照:センターケースマスク)がアンド展開され、ランプデータ5の2ライン目の点灯データがオア展開された状態となっている。
上述の通りマスクデータは0h(=0000)が消灯、Fh(=1111)がマスクなしである。従ってマスクデータをアンドで展開するということは、その時点までの出力データバッファの値について、消灯(マスク)したいビットを「0」とし、マスクしないビットは変更しないということになる。
さらに点灯データをオアで展開するということは、処理中のランプチャネルdwCHの点灯データが、マスク後の出力データバッファに反映されるということになる。
この処理をランプチャネルdwCH0〜dwCH15について順次行うことで、高い番号のランプチャネルほど優先された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駆動データの送信を並行して同時的に行うのはあくまで一例であり、必ずしも同時的でなくても良い。
例えば図29Bに示した、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対しては、この図30の構造のシリアルデータでLED駆動データが送信される。なおこの図30は、図4、図5で説明したシリアルデータDATA及びイネーブル信号ENABLEを示している。
このシリアルデータは、イネーブル信号ENABLEがONとされた期間に、1バイト毎順次送信が行われる。つまり当該構造のシリアルデータは、各1バイトが一送信単位となる。
このようなシリアルデータDATAは、イネーブル信号ENABLEで規定される期間に、LEDドライバ90に取り込まれる。
「データ設定開始レジスタアドレス(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駆動データがセットされる。
本実施形態の場合、点灯データは16階調のデータとするため、レジスタアドレス15h〜2Chの各レジスタへの8ビットの書き込みデータとしては、上位4ビットに、点灯データをセットするようにしている。この点については後述する。
また、図11のステップS113ではLEDドライバ90の初期化を行うと述べたが、これは具体的には、使用しないレジスタアドレス00h〜14hのレジスタにデフォルト値をセットする送信処理となる。この点についても後述する。
演出制御CPU200は図25のステップS801で、スタート値に対応するシリアルデータ出力チャネルch1、ch2のLED駆動データ(図29Aの出力データバッファ)の先頭アドレスを特定する。
スタート値とは、最初に送信するLEDドライバ90の値である。本実施形態ではシリアルデータ出力チャネルch1、ch2からそれぞれ、LEDドライバ90(w1)、LEDドライバ90(b1)に対して最初に送信を行うため、ここでは図29Aの出力データバッファにおいてw1用のLED駆動データが格納された先頭アドレスと、b1用のLED駆動データが格納された先頭アドレスを特定することになる。
シリアルデータ出力チャネルch1からは枠ドライバ部61のn個のLEDドライバ90に送信を行い、シリアルデータ出力チャネルch2からは盤ドライバ部62のm個のLEDドライバ90に送信を行うものであるため、ループ処理の回数はn回又はm回(n、mの多い方の値)となる。仮にn<mとすると、m回となる。
そしてステップS804で演出制御CPU200は、シリアルデータ出力チャネルch1,ch2のシリアルデータDATAの出力として、最初の一送信単位(1バイト)のデータ送信、即ちこの場合は図30のシリアルデータ構造に示した先頭1バイトのスレーブアドレスを送信出力する。シリアルデータ出力チャネルch1,ch2については並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS805,S806で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
その一送信単位の送信を行ったら、ステップS808,S809で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
まずはレジスタアドレス(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駆動データ送信→送信完了待機という処理が行われていく。
図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の発光が行われる。
以降、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以上のシリアルデータ出力チャネルを利用する場合も、それらが並行して同時的にシリアルデータ送信が行われるようにすれば良い。
これにより全体のシリアルデータ送信動作に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
図32は演出制御CPU200がシリアルデータ送信に使用するクロック信号CLK、送信データ、TDRE(送信データエンプティフラグ)、及び送信データの送信データレジスタへの書込タイミングを示している。
送信データとは、上述のスレーブアドレス、データ設定開始レジスタアドレス、LED駆動データLPDT1,LPDT2・・・LPDT24に相当する。ここでは1送信単位としての8ビットをデータd0〜d7として示している。
ここで、TDREは、送信データレジスタに送信データを書き込むと「0」となり、送信データレジスタに有効なデータが存在していることを示す。そして送信データレジスタのデータが実際に送信出力(送信用シフトレジスタへのロード)されて送信が開始されると「1」になり、送信データレジスタに有効なデータが存在しないことを示す。
従って演出制御CPU200の送信処理としては、TDREが「1」となったことを確認して、8ビットの送信データを送信データレジスタへ書き込み、その次の8ビットの送信データの書き込みは、次にTDREが「1」となるまで待機する。即ち図32に待機時間TWとして示す期間は、次の送信データの処理ができないことになる。
(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の処理についても同様である。
図11のステップS115のLED駆動データ出力処理において、このようにシリアルデータ出力処理が効率化できることで、演出制御CPU200の処理負担は大きく軽減される。
なお、発光輝度を16階調とする例を述べたが、もちろんより多階調としても良い。
このような構成により、枠ドライバ部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に対応する。
なお、ここでの「奇数レジスタアドレス」「偶数レジスタアドレス」というのはLEDドライバ90のレジスタ設計に応じた一例である。あくまで送信先を、レジスタアドレス15h〜2Chとした場合として便宜的に述べているにすぎない。
この場合に、奇数レジスタアドレス(15h、17h・・・2Bh)への点灯データについては、演出制御CPU200は、8ビットデータの下位4ビットをマスクして、それをLEDドライバ90に送信する。一方、偶数レジスタアドレス(16h、18h・・・2Ch)への点灯データについては、演出制御CPU200は、8ビットデータの上位4ビットをマスクして、それを4ビットシフトしたものをLEDドライバ90に送信する。
つまり結果的に4ビットの点灯データを8ビットに変換して送信する。
図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)の駆動電流出力が行われることとなる。
LEDドライバ90のレジスタアドレス15h〜2Chが、8ビットのPWMデータを入力可能とされていることは、8ビットの点灯データとすれば256階調のLED発光制御が可能である。しかしながら、一般に遊技機の発光演出に用いる発光部20w、20bに対する制御としては、256階調は必要ではない。具体的には「00h」「10h」「20h」・・・「F0h」の16階調で十分である。
そこでパチンコ遊技機1では、点灯データを4ビット構造として、16階調表現を行うようにする。そしてLEDドライバ90への出力時には、4ビットを8ビットに変換して送信する。
また、近年の汎用的なLEDドライバは、256階調などの高性能タイプのものの方が生産量が多く、価格的にも有利であることが多い。そのため、例えば16階調が必要な場合に、16階調の制御能力を持つLEDドライバを採用するよりも、256階調のLEDドライバを採用する方が、コストメリットが得られ、又、安定的入手性もよい。これにより製造上及びコスト的なメリットが得られる。
また上述したように、演出制御CPU200は、4ビットの点灯データを8ビットにおける上位4ビットに配置して、8ビットのLED駆動データ(送信するシリアルデータ)を生成する。
このように上位4ビット配置により、16階調のLED駆動データを生成でき、またその処理は例えば図33B、図33Cの例のように、非常に簡易な処理である。このためビット数変換の処理負担はほとんど問題とならない。
この場合、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.実施形態の発光駆動情報格納手法)
先行例としてのパチンコ遊技機1においては、シナリオデータ(演出進行データ)に従った発光部20b、20wの発光動作を実現するために、先の図28Aに示したランプデータテーブルのように、LED120の点灯データを格納したテーブルを演出制御ROM201に記憶させている。
上述のように、シナリオデータ(ランプサブシナリオテーブル:図23A参照)には、ランプデータテーブルにおけるランプデータ番号(ランプナンバ)の情報が含まれ、該ランプデータ番号と実行中のライン(ラインL)の情報とに基づき、ランプデータテーブルから各LED120の点灯データが読み出されて、それぞれ対応するLEDドライバ90に出力される。
前述のように、ランプデータテーブルに格納されるLED120一つあたりの点灯データのデータ容量は4ビットである。また、LEDドライバ90一つあたりのLED数は24、LEDドライバ90の総数は32である。
よって、先行例において、ランプデータテーブルにおける一つのラインLに対しては、
4ビット×24×32=3072ビット
のデータが格納される。
さらに、ランプデータテーブルにおけるラインLの総数をLnとすると、ランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)は、
3072Lnビット
と表すことができる。
パチンコ遊技機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)の情報を格納するものとし、時間方向での格納データ圧縮を図っている。
発光パターン識別子は、複数個の発光素子による発光パターンを一意に識別するための識別子である。具体的に、本例では、所定複数個の発光素子の群を一つの単位発光素子群としたときに、該単位発光素子群の発光パターンを一意に識別するための識別子とされている。本例における単位発光素子群は、一つのLEDドライバ90により発光駆動されるLED群(本例では24個)として定められている。
以下、このように定義される発光パターン識別子の総数を「X」と表記する。
例えば、或るランプナンバ(ランプナンバ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間で発光パターン識別子が重複する。
なお、発光パターン識別子の重複は、同一ランプナンバのランプデータ中に限らず、異なるランプナンバのランプデータ間においても生じ得るものである(図中「パターンX」等を参照)。
変換テーブルにおいては、合計X個となる発光パターン識別子ごとに、単位発光素子群を構成するLED120ごとの点灯データが格納されている。
本例においても、先行例と同様、LED120一つあたりの点灯データは4ビットデータとされている(つまり先行例と同様に4ビット→8ビット変換を行うことを前提としている)。本例では、単位発光素子群を構成するLED数は「24」であることから、一つの発光パターン識別子に対して格納される点灯データのビット数は「96」である。
このようにLED120ごとの点灯データが得られた以降の処理については先行例の場合と同様である。この点の詳細については後に改めて説明する。
この場合、発光パターン識別子のビット数としては、10ビット(1024通りの表現が可能)あればよい。
前述のように、ランプデータテーブルにおけるラインLの総数をLnとおくと、この場合におけるランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)としては、
10ビット×32(ドライバ数)×Ln=320Lnビット
と表すことができる。
96ビット×1000=96000ビット
と表すことができる。
3072ビット×1000=3072000ビット
であり、実施形態におけるランプデータテーブル+変換テーブルの総データ容量は、
320ビット×1000=320000ビット+96000ビット=416000ビット
である。
実施形態において、このようにメモリ消費量が削減されるのは、先行例においては前述したランプデータテーブルにおける発光パターンの重複部分にそれぞれ点灯データを格納していたのに対し(つまり点灯データの重複格納が生じていたのに対し)、実施形態では、該重複部分の点灯データは、該重複部分に格納された発光パターン識別子と対応づけられて変換テーブルにおける1箇所にのみ格納されるためである。
この点から理解されるように、実施形態の発光駆動情報格納手法によれば、点灯データ(発光輝度情報)の重複格納量の抑制が図られるものである。
上記により説明した実施形態としてのランプデータテーブル及び変換テーブルに対応して、この場合の演出制御CPU200は、先の図24に示したLED駆動データ更新処理に代えて、図36に示すLED駆動データ更新処理を実行する。実施形態において、演出制御CPU200が行うLED駆動データ更新処理以外の各処理については先の図11〜図23及び図25〜図33で説明したものと同様となることから重複説明は避ける。
なお、図36において、既に説明済みとなった部分と同様となる部分については同一のステップ番号を付して説明を省略する。
このようにランプデータテーブルにおける一つのラインL分の点灯データが得られた以降の処理については、先行例の場合と同様となる。
このようなビット変換により、各LEDドライバ90の各レジスタアドレスに送信すべき8ビットのシリアルデータが得られ、これらシリアルデータがステップS810の処理(図25)により対応するレジスタアドレスに出力される。
これにより、各LED120が点灯データに応じた輝度により発光され、或いは非発光とされて、シナリオデータに基づく発光動作が実現される。
なお、上記では単位発光素子群が一つのLEDドライバ90により発光駆動されるLED群とされた例を挙げたが、単位発光素子群の区分はこれに限定されず、多様に考えられる。例えば、単位発光素子群は、所定複数のLEDドライバ90により発光駆動されるLED群として定めることもできる。このとき、メモリ消費量削減を図る上では、単位発光素子群を構成するLED120の数は、発光部20b及び20wにおけるLED120の総数よりも少なくすることが望ましい。
一例として、発光ユニットとしては、それぞれ発光色がR(赤)、G(緑)、B(青)とされた三つのLED120で成るものとし、各LEDドライバ90は、24個の発光ユニットを発光駆動可能に構成されている場合を挙げることができる。
この場合、LEDドライバ90の総数が「32」であれば、発光ユニットの総数は32×24より「768」であり、LED120の総数はその3倍の「2304」である。
なお、先の図34と同様に、図37においてもランプデータ1、2に対応した部分のみを例示している。また、図37では、ランプデータテーブルに格納される発光パターン識別子は一部のみを例示しており、空欄部分は図示を省略したもので、実際には発光パターン識別子が格納されている。
4ビット×3×24×32=9216ビット
のデータが格納される。
この場合もランプデータテーブルにおけるラインLの総数をLnとすると、ランプデータテーブルの総データ容量(タイマ(frame)のビット数は除く)は、
9216Lnビット
と表される。
10ビット×24(1ドライバの発光ユニット数)×32(ドライバ数)×Ln=7680Lnビット
と表される。
12ビット×1000=12000ビット
と表される。
9216ビット×1000=9216000ビット
であり、図37に示した格納手法によるランプデータテーブル+変換テーブルの総データ容量は、
7680ビット×1000=7680000ビット+12000ビット=7692000ビット
である。
以上で説明した実施形態の遊技機(パチンコ遊技機1)によれば、発光制御のための処理を効率化でき、発光制御処理負荷を軽減することができる。
そして、演出制御手段は、第一発光素子群の発光パターン情報(発光パターン識別子)である第一発光パターン情報と、前記第二発光素子群の発光パターン情報である第二発光パターン情報とが少なくとも格納された発光パターンテーブル(ランプデータテーブル:図34参照)と、複数の点灯データが格納された点灯データテーブル(変換テーブル:図35参照)と、を有し、第一発光パターン情報に基づいて、点灯データテーブルに格納された複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより第一発光素子群を発光可能であり、第二発光パターン情報に基づいて、点灯データテーブルに格納された複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより第二発光素子群を発光可能であり、発光パターンテーブルにおいて、少なくとも第一発光パターン情報と、第二発光パターン情報とで、共通の発光パターン情報である特定発光パターン情報を記憶し、特定発光パターン情報に基づいて、点灯データテーブルに格納された特定の点灯データを選択可能としたものである。
従って、発光制御に要するメモリ消費量の削減を図ることができる。
従って、メモリ消費量のさらなる削減を図ることができる。
従って、メモリ消費量のさらなる削減を図ることができる。
すなわち、複数の発光素子(LED120)を有する発光手段(発光部20b、20w)と、発光素子を発光駆動する発光駆動手段(LEDドライバ90)と、実行すべき演出動作の進行内容を表す演出進行データに基づき発光駆動手段を制御する演出制御手段(演出制御CPU200)と、を備えている。
そして、演出進行データに基づき特定され得る発光動作の種類ごとに、発光手段における発光素子群ごとの発光パターン情報が格納された発光パターンテーブル(ランプデータテーブル)と、発光パターン情報ごとに、発光素子群における各発光素子の発光輝度情報(点灯データ)が格納された点灯データテーブル(変換テーブル)と、が記憶されている。
その上で、演出制御手段は、演出進行データに基づき実行すべき発光動作が特定された場合に、発光パターンテーブルにおける該特定された発光動作に対応する発光素子群ごとの発光パターン情報を点灯データテーブルに基づいて点灯データに変換する変換手段(ステップS901)と、変換手段により得られた点灯データに基づいて発光駆動手段により発光素子を発光させる発光制御手段(ステップS810)と、を有している。
これにより、点灯データの重複格納量を抑制することが可能とされ、発光制御に要するメモリ消費量の削減を図ることができる。
例えば上記では、それぞれの発光素子群における発光素子数を同一とする例を挙げたが、発光素子群間で発光素子数を一致させることは必須ではない。発光素子群間で発光素子数を異ならせた場合、発光素子数の異なる発光素子群ごとに、対応する変換テーブルを設ける。例えば、発光素子数が「10」である第一種の発光素子群、発光素子数が「30」である第二種の発光素子群、発光素子数が「50」の第三種の発光素子群が存在する場合、変換テーブルは、これら第一〜第三種の発光素子群ごとに設ける。
また1つの系統に盤側の発光部20bと枠側の発光部20wが混在していてもよい。
例えばLED駆動データのシリアルデータ送信は、スロット機の筐体前側の装飾LEDとリールのバックライトLEDのそれぞれを第1系統、第2系統として行うことが考えられる。或いは、筐体前側の上部と下部をそれぞれシリアルデータ送信の系統に分けても良い。
[2-1.第二実施形態のパチンコ遊技機の制御構成]
続いて、第二実施形態としてのパチンコ遊技機1Aについて説明する。
第二実施形態のパチンコ遊技機1Aは、演出制御用のコンピュータ装置を1CPU化したものである。
なお、パチンコ遊技機1Aの外観については図1、2で説明したものと略同様となることから説明は省略する。以下の説明において、既に説明済みとなった部分と同様となる部分については同一符号を付して説明を省略する。
先の図3と対比して分かるように、パチンコ遊技機1Aは、パチンコ遊技機1と比較して、液晶制御基板52と液晶インターフェース基板66が設けられていない点が異なる。
また、本例では、音源IC59も省略された構成とされている。
また本例における演出制御部51Aは、液晶制御CPUの機能と共に、音源IC59に相当する機能も実現するように構成されている(後述する音コントローラ230)。
主液晶表示装置32Mでは、後述する演出制御部51の制御の下、背景画像上で例えば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。副液晶表示装置32Sも、同様に各種演出に応じた表示が行われる。
なお、主液晶表示装置32Mは、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う機能を指している。
画像ROMとは、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されているメモリを指す。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域である。
演出制御部51Aの具体的な構成例を図39に示す。
図39の例の演出制御部51Aは、例えば1チップマイクロコンピュータ250に対して演出制御ROM201、D−RAM202a、CG−ROM206、WDT(ウォッチドッグタイマ)回路210等が外付け接続されて構成されている。
構成各部について説明していく。
演出制御CPU200は、CPUインターフェース203を経由してマイクロコンピュータ250の内部デバイスや外部デバイスを使用する。
即ち演出制御CPU200は、CPUインターフェース203を経由してホストインターフェース204に接続され、ホストインターフェース204を介して、主制御部50からのコマンド受信、演出制御ROM201に対する読出アクセス、WDT回路210との信号送受信、及びバス251を介した内部の各部との通信を行う。
D−RAM202aは、RAMインターフェース208に接続されており、演出制御CPU200は、RAMインターフェース208を介してD−RAM202aに対する書き込みや読み出しを行う。
転送回路212は、マイクロコンピュータ250の内部リソースや外部ペリフェラルを入出力とした転送を行う。
CG−ROM206はマイクロコンピュータ250に設けられたCGバスインターフェース207に接続されている。これによりマイクロコンピュータ250内の所要部位は、CGバスインターフェース207を介してCG−ROM206にアクセスできる。
VRAM209の使用態様は設定により各種可能であるが、本例では表示用のフレームデータの記憶領域として2つのフレームバッファ209A、209Bを設定し、各フレームバッファ209A、209Bを1フレーム毎に交互に用いて描画や表示データ出力を行うようにする。
つまり図示するフレームバッファ209Aは、主液晶表示装置32M用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含み、またフレームバッファ209Bは、主液晶表示装置32M用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含む。
VRAM209のフレームバッファ209A、209Bにはそれぞれ、主液晶表示装置32M、副液晶表示装置32S用の1フレーム分の画像データが各々生成されるが、所定の描画コマンドによって、フレームバッファ209A、209Bの描画位置が特定される。
演出制御CPU200は、演出制御コマンドに応じて主液晶表示装置32Mや副液晶表示装置32Sで表示する画像内容を設定するディスプレイリストを作成する。このディスプレイリストとは、描画コマンドの集まりのことである。
ディスプレイリストは、描画する順番に記載された一群の描画コマンドで構成されている。描画コマンドには、1フレームのどの位置に、どのような画像を描画するかを規定するコマンドも含まれ、描画すべき画像のCG−ROM206などの記憶位置(ソースアドレス)も特定されている。
GDEC223は、描画で使用する圧縮画像データをデコードしVRAM209に展開する。
またこのときプリローダ220は、画像データの参照先を、転送後のアドレスに書換えたディスプレイリストを出力する。書換えられたディスプレイリストは、転送回路212によって描画回路225に送信される。
ここでマイクロコンピュータ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は同期信号生成部265を有し、それぞれ画像のフレームに同期して処理を行う。同期信号生成部265は、同期信号として、例えば垂直ブランク期間(非有効ライン走査期間)を示すVブランク信号、水平同期信号、垂直同期信号を生成する。これらの同期信号は、マイクロコンピュータ250の内部での制御処理に用いることができるほか、主液晶表示装置32M、副液晶表示装置32Sへの表示データ転送や表示制御動作にも用いられる。
なお、各表示回路221,222,223で用いる同期信号同士は同期させることができる。例えば主液晶表示装置32Mなどの外部ディスプレイの垂直同期信号の立ち下がりをトリガにして、表示回路221,222,223を強制的に同期させることができる。
表示回路221,222については、取得したフレームデータについてスケーラ262でのスケーリング処理、カラー補正部263でのカラー補正処理、ディザラー264でのディザリング処理を施すことが可能とされる。そしてディザラー264による処理の後の出力としてデジタルRGB出力とLVDS出力が行われる。表示回路223も同様であるが、この図の例では表示回路223はスケーラ262の機能を搭載していない例を挙げた。
デジタル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に供給することも考えられる。
音コントローラ230は、例えば音源制御部と圧縮音声データを記憶する音データ記憶部を有し、演出制御CPU200の制御に基づいて、圧縮音声データをデコードして出力音声信号を生成し、外部のアンプ部67へ出力する。
なお、音コントローラ230の搭載の有無にかかわらず、演出制御CPU200はマイクロコンピュータ250外部の音源ICを制御して、音声信号をアンプ部67へ出力するようにしてもよい。
また図39では、操作部60からのユーザの操作情報もパラレル/シリアル変換部260に入力される例を示している。ユーザの操作情報とは、演出ボタン11,12、十字キー13等の操作に応じた信号である。
パラレル/シリアル変換部260は、例えば1チップマイクロコンピュータ250とは別体のICとして演出制御部(演出制御基板)51Aに搭載されるが、1チップマイクロコンピュータ250に内蔵されてもよい。
パラレル/シリアル変換部260の動作はモータコントローラ242からの制御信号CNTによって制御される。パラレル/シリアル変換部260はクロック信号CLKを用いてシリアルデータ転送を行う。
この構成により、シリアル出力コントローラ240が、各可動体役物モータ65の原点検出状態と演出スイッチ11,12等の操作部60に対するユーザ操作をまとめて、つまり演出制御に必要な入力をまとめて効率的に検出できる。従って演出制御CPU200は効率よく演出状態を把握できる。
図41は、第一実施形態のように演出制御部51としてのコンピュータ装置とは別途に液晶制御のためのコンピュータ装置(液晶制御基板52)を設けた構成(以下「2CPU構成」とも表記する)とした場合における演出制御部51、液晶制御基板52の各機能構成を模式的に表した機能ブロック図である。
先の第一実施形態の説明から理解されるように、演出制御部51は、主制御部50からの演出制御コマンドを受信・解析し、解析結果に基づいてランプ、音、モータとしての画像演出以外の演出についてシナリオデータ(演出進行データ:具体的には図20や図21に示したような各種の登録情報)を生成し、該シナリオデータに基づきランプ、音、モータについての駆動データを生成・出力して所望の演出動作を実現している。
また、液晶に関しては、演出制御コマンドの解析結果に基づき得られる液晶制御コマンドを液晶制御基板52側に送信する。
また、演出制御コマンドとしては、液晶制御基板F12に対して当該演出制御コマンドと同一のコマンドを送信する(つまりスルー送信する)処理を行うべきことが定められたものもある。この場合も、演出制御コマンド解析処理部F12の解析処理の結果として、液晶制御コマンド(データとしては受信した演出制御コマンドと同一)がコマンド出力バッファF14にセットされる。
なお、コマンドのスルー送信については後の図47〜図49においても説明する。
また、演出制御シナリオ実行処理部F13が実行するシナリオデータに基づく具体的な処理としては、図18、図19に示したシナリオ更新処理、サブシナリオの更新処理や、図36、図25に示したLED駆動データ更新処理、LED駆動データ出力処理等を挙げることができる。
第一実施形態では説明を省略したが、本例では、このような時間差送信を行う場合には、液晶制御コマンドについて送信対象のコマンドと送信タイミングとを管理するためのシナリオデータ(以下「コマンド送信シナリオデータ」とも表記する)が用いられる。
演出制御コマンド解析処理部F12によるコマンド解析の結果、このようなコマンド送信シナリオデータが生成された場合には、演出制御シナリオ実行処理部F13が該コマンド送信シナリオデータに従った処理を実行することで、液晶制御基板52への液晶制御コマンドの送信が行われる。つまりこの場合は、演出制御シナリオ実行処理部F13によるシナリオ実行に伴い所定の液晶制御コマンドがコマンド出力バッファF14にセットされる。
液晶制御コマンドの時間差送信については後の図47〜図49においても説明する。
液晶制御シナリオ実行処理部F23が液晶シナリオデータに基づく処理を行うことで、前述したディスプレイリストの作成や描画が行われて画像演出を実現する上で必要な画像データが適宜生成され、該画像データが液晶表示装置32に出力される。これにより、液晶表示装置32に各種の演出画像が表示される。
この際、1CPUとした場合には液晶制御基板52に液晶制御コマンドを送信する必要はなくなるため、液晶シナリオデータの生成を、主制御部50からのコマンドとは別途のコマンドを介在させずに行うようなプログラムを構成することが考えられる。
特に、演出制御部51のプログラムと液晶制御基板52のプログラムとを別業者に作成させていた等の事情の下では、1CPUに実行させるべきプログラムの作成作業負担がより大きくなる。
図示のように演出制御部51Aは、演出制御部51と同様に演出制御コマンドバッファF11、演出制御コマンド解析処理部F12、演出制御シナリオ実行処理部F13を有している。この場合、コマンド出力バッファF14は省略され、液晶制御コマンドバッファF15が設けられる。さらに、演出制御部51Aは、液晶制御コマンド解析処理部F16と液晶制御シナリオ実行処理部F17とを有している。
液晶制御コマンド解析処理部F16、液晶制御シナリオ実行処理部F17の処理内容は、液晶制御基板52における液晶制御コマンド解析処理部F22、液晶制御シナリオ実行処理部F23とそれぞれ同様である。すなわち、液晶制御コマンド解析処理部F16は、液晶制御コマンドバッファF15に保持された液晶制御コマンドについての解析を行い、液晶制御シナリオ実行処理部F17は、液晶制御コマンド解析処理部F16によるコマンド解析結果に基づき液晶シナリオデータを生成し、生成した液晶シナリオデータに基づく処理を実行することで液晶演出を実現する上で必要な画像データを生成し、液晶表示装置32に表示させる。
演出制御部51Aの演出制御CPU200は、演出制御コマンド解析処理部F12や演出制御シナリオ実行処理部F13の処理に伴い液晶制御コマンドを送信すべきとされた場合には、対象の液晶制御コマンドを液晶制御コマンドバッファF15にセットする。
これにより、演出制御部51Aは、演出制御コマンドを解析し、解析により得た液晶制御コマンドを所定記憶領域にセットするという処理については、演出制御部51の処理(コマンド出力バッファF14に液晶制御コマンドをセットする処理)を踏襲することが可能とされる。
また、画像演出の制御処理についても、液晶制御コマンドバッファF15にセットされた液晶制御コマンドを取得し、液晶制御コマンドに基づいた液晶シナリオデータの生成、及び液晶シナリオデータに基づいた液晶表示装置32の制御(第二実施形態では主液晶表示装置32Mと副液晶表示装置32Sの制御)という、液晶制御基板52と同様の処理を踏襲することが可能とされる。
これにより、1CPUとしての演出制御部51Aが実行すべきプログラムとしては、2CPU時の演出制御部51が実行していたプログラムと液晶制御基板52(液晶制御CPU)が実行していたプログラムをほぼそのまま踏襲することが可能とされる。具体的な変更点としては、主には液晶制御コマンドをコマンド出力バッファF14ではなく液晶制御コマンドバッファF15にセットする点である。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、プログラム作成に係る作業負担軽減を図ることができる。
第一演出進行管理手段、及び画像表示指示情報生成手段による処理は、演出制御部51が有する演出制御シナリオ実行処理部F13の処理と同様である。そして、第二演出進行管理手段による処理は、液晶制御基板52が有する液晶制御コマンド解析処理部F22及び液晶制御シナリオ実行処理部F23の処理と同様である。
これにより、1CPUとしての演出制御部51Aが実行すべきプログラムとしては、2CPU時の演出制御部51が実行していたプログラムと液晶制御基板52(液晶制御CPU)が実行していたプログラムをほぼそのまま踏襲することが可能とされる。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、プログラム作成に係る作業負担軽減を図ることができる。
続いて、演出制御部51Aの処理について説明する。
演出制御部51Aの演出制御CPU200は、図11、図12に示した演出制御メイン処理、1msタイマ割込み処理を除く処理(図13〜図19、図25、及び図36)については、第一実施形態の演出制御CPU200と同様の処理を行う。以下では、主に演出制御部51の演出制御CPU200が実行する処理と異なる部分について説明する。
図11に示したメイン処理との大きな相違点は、この場合の演出制御CPU200が1CPUとして液晶制御も行う関係から、表示データのフレームタイミングに基づいて処理を進行するという点である。
演出制御メイン処理において、演出制御CPU200は、まずステップS1000で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、インターフェース系の初期化、割込設定、外部メモリの初期化、WDT初期化、可動体役物の起点復帰処理及び制御の初期化、音源制御初期化、シリアル出力コントローラ240の初期化、スケジューラ(シナリオスケジューラ、デバイススケジューラ、ランプスケジューラ、サウンドスケジューラ等)の初期化、システムタイマの初期化、液晶制御初期化等を行う。
なお各スケジューラは、上述のシナリオ登録情報、モータデータ登録情報、ランプデータ登録情報、音データ登録情報、及びコマンド送信シナリオデータのこと、もしくはこれらに基づいたシナリオ制御の進行を指す。初期化処理としては、これらシナリオ登録情報等を記憶するワーク領域を初期化する。
処理の概要を説明すると、先ずは、フレーム期間の開始タイミングでステップS1002〜S1010の処理が1回行われた上で、ステップS1021〜S1024による演出制御コマンドの解析に係る処理、ステップS1025〜S1028による液晶制御コマンドの解析に係る処理、ステップS1030〜S1034による各種スケジューラの実行に係る処理、及びステップS1040〜S1043によるランプ駆動データの作成・出力やキーイベントに係る処理が行われる。さらに、フレーム期間の終了時には、ステップS1050〜S1051による処理が実行される。
上述した処理時間(S1001)は、これらの時間管理を行うために計測されるものである。
ステップS1003で演出制御CPU200は、フレーム更新フラグを確認する。フレーム更新フラグは、スケジューラ更新等をフレーム期間で管理するためのフラグである。表示データの或るフレームの開始時点ではフレーム更新フラグはオフとされている(フレーム終了時に後述するステップS1052でオフとするため)。
従ってフレーム開始タイミングでは、演出制御CPU200はステップS1003からS1004に進む。
液晶シナリオデータには、図20Aに示したシナリオ登録情報の「待機時間(delay)」や「サブシナリオタイマ(scTm)」のように、シナリオの進行タイミングを管理する例えばタイマ値等による値が登録情報の一つに含まれている。従って、ステップS1004の液晶制御フレーム更新処理では、該値を更新することで画像演出のシナリオを1フレーム分進める。
具体的に、ステップS1006のシナリオスケジューラ更新処理では、図20Aに示したシナリオ登録情報における待機時間(delay)、及びメインシナリオタイマ(msTm)の値を更新する。
また、ステップS1007のランプスケジューラフレーム更新処理では、図20Bに示したランプデータ登録情報における実行時間(time)の値を更新する。
さらに、ステップS1008のサウンドスケジューラフレーム更新処理では、図20Aに示したシナリオ登録情報におけるサブシナリオタイマ(scTm)の値を更新する。なお、図19Aで説明したサブシナリオの更新処理を参照して分かるように、サブシナリオタイマ(scTm)の値は、音(及びモータ)の演出シナリオについての進行タイミングを管理するタイマ値として機能するものである。
また、演出制御CPU200は続くステップS1010で、スケジューラ更新フラグをOFFとする。これは、スケジューラ更新、つまりタイマ進行に伴ったシナリオ内容(シナリオ登録情報、ランプデータ登録情報、音データ登録情報等)の更新がまだ行われていないことを示す情報となる。
演出制御CPU200は、ステップS1020において処理時間が31msに達している、つまりフレーム期間の略終端に達しているか否かを判定し、31msに達していればステップS1021に処理を進める。
演出制御CPU200は、処理時間が31msに達しない限り、ステップS1021〜S1043を可能な回数、繰り返すようにステップS1020からS1021に進む。
なお、31msはあくまで一例でありこれに限定されるものではない。
現在、処理時間が16ms未満である、つまりフレーム前半期間であれば、演出制御CPU200はステップS1022に進んで、演出制御コマンドの受信を確認する。すなわち、主制御部50からの受信コマンドを確認する。具体的には、先に説明した演出制御コマンドバッファF11(本例ではD−RAM202aの所定領域)に1以上の受信コマンドが記憶されているか否かを確認する。受信コマンドがなければ、演出制御CPU200はステップS1025に進む。
液晶制御コマンドバッファF15に1又は複数の液晶制御コマンドが記憶されていれば、演出制御CPU200はステップS1027の液晶制御コマンド解析処理として、液晶制御コマンドバッファF15に記憶されているコマンドについての解析処理を行う。液晶制御コマンド解析処理においては、先の演出制御コマンド解析処理の場合と同様に、受信コマンドに応じて予め定められた処理を実行する。液晶制御コマンドのうちには、対応する処理として、液晶シナリオデータにシナリオ登録を行う処理が定められたものもあり、その場合には液晶シナリオデータに新たなシナリオが追加される。
例えばこのようにして、液晶制御コマンドの解析結果に基づいた液晶シナリオデータの生成が行われる。
なお、本例では、液晶表示装置32としては主液晶表示装置32Mと副液晶表示装置32Sとが設けられているため、描画更新処理ではこれらの液晶表示装置に表示されるべき画像データについてのディスプレイリスト作成やプリロードがそれぞれ行われる。このように主液晶表示装置32M、副液晶表示装置32Sそれぞれについての処理を行う点は、ステップS1051のフレーム終了時処理における各処理(描画完了待ち、表示画面の切替え、プリロード完了待ち、描画開始)についても同様である。
この場合の演出制御メイン処理では、フレーム期間の前半であれば、演出制御コマンド、液晶制御コマンドそれぞれの解析処理を必要なだけ何度でも行うことが許容されている。これにより、例えばフレーム期間の前半においてコマンドが連発した場合に、それらのコマンドを解析し、解析結果に応じたシナリオの更新(追加)を行うことが可能とされる。
スケジューラ更新フラグはフレーム開始直後のステップS1009でOFFとされるため、現在のフレーム期間で最初にステップS1030の処理に進んだときに、ステップS131〜S134の処理を行うことになる。またステップS1024やS1028でスケジューラ更新フラグがOFFとされるため、演出制御コマンドや液晶制御コマンドの受信があった場合もステップS1031〜S1034の処理を行う。
ここで、前述のように第二実施形態では、シナリオ登録情報における待機時間(delay)、メインシナリオタイマ(mcTm)の更新はステップS1005のシナリオスケジューラフレーム更新処理にて1フレームごとに行われる。すなわち、この場合に実行する図18のシナリオ更新処理においては、ステップS602の待機時間更新処理、及びステップS609のタイマ更新処理は省略される。
また、ステップS1034で演出制御CPU200は、ランプスケジューラ実行処理を行う。これはシナリオテーブルで指定されるランプサブシナリオに応じたランプデータ登録情報(図20B参照)の更新処理である。
ステップS1034のランプスケジューラ実行処理としては、図19のステップS621〜S630と同様の処理を実行する。この処理により、ランプデータ登録情報は、実行すべきランプ演出動作が登録された状態に更新される。
なお、このように更新されるランプデータ登録情報に基づくランプ駆動データ(前述した「LED駆動データ」と同義)の作成及びランプ駆動データ出力は、後のステップS1041、S1402で行われる。
図43での図示は省略したが、該コマンド送信シナリオデータについてのスケジューラ実行処理(登録されたメインシナリオ番号に応じたコマンド送信シナリオデータに対するデータ登録、及び登録データが表す液晶制御コマンドの液晶制御コマンドバッファF15へのセット処理)は、例えば、ステップS1032のシナリオスケジューラ実行処理の一部として実行することが考えられる。或いは、例えばステップS1034のランプスケジューラ実行処理のように、シナリオスケジューラ実行処理とは別処理として実行することもできる。
ここで、20msの意図は、フレームの前半期間を多少経過しても、以下のステップS1041、S1042によるランプ駆動データの更新や出力の処理を実行可能とすることにある。つまり20msはあくまで一例であり、該意図に沿った範囲内であれば値の変更が可能である。
先ず、ステップS1071で演出制御CPU200は描画の完了を待機する。これは次のフレーム期間に表示する画像の描画完了を待機するものである。
前述のようにVRAM209にはフレームバッファ209A、209Bが用意され、表示回路221等が一方の表示データを読み出して表示させているフレーム期間には、他方のフレームバッファに、次のフレームの表示データの描画が行われる。この描画が完了していることをステップS1071で確認する。
そこで、描画完了待機が発生した場合、その待機時間をカウントして、待機時間によっては、1フレーム期間にアクセスされる描画数を減らすなどの変更を行うようにしてもよい。
また、多少(1ms程度)の待機であれば、次のフレームの処理が少し遅れるだけであるため、特に問題はないというようにしてもよい。
なお、いつまでも描画が終わらない場合、演出制御CPU200の処理についてWDT回路210によるリセットがかかる。
なお、ステップS1050でフレーム期間終了が検知されたことで無条件にフレームバッファ切替を行うことも考えられるが、本実施形態の場合、ステップS1071で描画完了確認を行ってからフレームバッファ切替が行われる。このため、表示回路221等に転送される表示データは、正しく描画が完了した表示データとなる。つまり、描画が垂直同期信号の2回目の時点までに終わらなかったにも拘わらず描画中のフレームバッファの表示データが表示されてしまうといったことは生じない。
通常は、プリロードは1フレーム期間内に終了するように設計されているが、このステップS1073で確認している。
なお、多少プリロードが遅れたとしても、上記のステップS1072で既に次のフレームの表示データの出力は開始されるため、大きな問題とはならない。
その後ステップS1074で、プリロードされたディスプレイリストを先のステップS1072で表示データ読み出し対象に切り替えられたフレームバッファとは逆のフレームバッファに書き込む処理を行う。
演出制御CPU200はステップS1100で、WDTパルス生成処理を行う。WDT回路210はこのWDTパルスにより1ms毎のカウントを行う。
ステップS1101で演出制御CPU200は、モータ、ソレノイドのセンサ更新処理を行う。これは上述した原点スイッチ68の情報を検知する処理である。
即ち演出制御CPU200は、フレーム期間に比べて約1/30の時間間隔である1ms毎に、モータ動作制御を行っている。
ここで、ステップS1102のデバイススケジューラ実行処理、ステップS1103のデバイスススケジューラ出力処理は、先の図12に示したステップS203のモータ動作更新処理、ステップS204のモータ出力処理と同様となるため重複説明は避ける。
なお、図39に示したように、原点スイッチ68の検出情報と操作部60の操作情報は、シリアル入力データとして検知することができる。そこで、キー入力処理は、ステップS1101で原点スイッチ68の検出情報と同時に確認するようにしてもよい。これにより検出処理を効率化できる。
図46は、表示データのフレーム期間内における各種タイミングを示している。
描画回路225による描画処理は、フレーム期間内に、次のフレームの表示データについて実行される。例えばフレームFR1の表示データの描画は、フレームFR0の表示期間に実行される。具体的にはステップS1051で描画が開始されるため、フレーム先頭時点で、次のフレームのための描画が開始される。この描画は、通常はフレーム期間内に完了する。
もし、フレーム期間内に描画が完了していないとすると、図44のステップS1071で完了が待機されることになる。
もし、プリロードがフレーム期間内に完了していないとすると、図44のステップS1073で完了が待機されることになる。プリロードが多少遅れると、それによって描画の開始が多少遅れることになる。
次いで、ステップS1004の液晶制御フレーム更新(液晶シナリオの更新)、ステップS1005によるディスプレイリスト作成とプリロード実行開始、及びステップS1006〜S1008による各種スケジューラフレーム更新(シナリオ、ランプ、サウンド)が行われる。
そして、これらステップS1004〜S1008の処理が1度行われた後は、必要に応じてステップS1023の演出制御コマンド解析処理、ステップS1026の液晶制御コマンド解析処理、及びステップS1032〜S1034の各種スケジューラ実行処理(シナリオ、サウンド、ランプ、及び本例ではコマンド送信シナリオのスケジューラ更新を含む)が行われる。
さらに、ステップS1041、S1042によるランプ駆動データの更新、出力の各処理と、ステップS1043のキーイベント処理が実行される。
このとき、ランプ駆動データ更新・出力処理及びキーイベント処理については、フレーム期間の開始時から20ms以内であれば実行可能とされている(S1040参照)。すなわち、直前の各種スケジューラ実行処理の完了タイミングがフレーム期間の後半に多少及んだとしても、これらの処理を実行することができる。
ランプ駆動データ更新・出力処理について、フレーム期間開始時からの経過時間に応じて処理の実行を不許可とすることで、これらランプ駆動データの更新や出力の処理によってフレーム終了タイミングに対してフレーム終了処理(S1051)が遅れることを防止している。
なお、仮にランプ駆動データ更新・出力処理が不許可とされた場合には、シリアル出力コントローラ240からのランプ駆動データの出力が行われないことが想定されるが、その場合、LEDドライバ90は直前のランプ駆動データを維持しているため、直前の発光動作が実行されることになる。
図47〜図49を参照し、上記した演出制御部51A(演出制御CPU200)の処理により実現される演出制御の動作例を説明する。
以下の動作例では、大当たりの終了時に対応して行われる演出制御の動作例を説明する。
演出制御コマンドとしては、上位1バイトの値によって図のように種々のコマンドが定義されている。そして、各コマンドには、対応して実行すべき処理(対応処理)が予め定められている(本例では「関数」として定められている)。
本例で着目するのは、大当たり終了指定コマンドとしての演出制御コマンド(「0xF3」)である。
大当たり終了指定コマンドに対しては、当該大当たり終了指定コマンド(F301H)のスルー送信が定められていると共に、選択キャラコマンド(02xxH)、連荘数コマンド(03xxH)、攻略フラグコマンド(05xxH)、大当たり図柄コマンド(0AxxH)、大当たり根幹コマンド(88xxH)、決定時のキャラコマンド(9FxxH)、及び背景指定コマンド(01xxH)の送信が定められている。
決定時のキャラコマンドは、このような遊技者の操作により決定されたキャラクタの種別を表すコマンドとされる。
背景指定コマンドは、例えば主液晶表示装置32Mの表示画像における背景画像の種別を指定するコマンドとされる(例えば、決定されたキャラクタに応じた背景画像が指定される)。
本例では、決定時のキャラコマンド及び背景指定コマンドは、大当たり終了指定コマンドの受信から略9s(270フレーム)の時間差を以て送信すべきコマンドとして定められている。換言すれば、この場合における大当たり終了時の演出では、大当たり終了から9sまでの間に遊技者によるキャラクタの選択(決定)操作が受け付けられ、その後、決定されたキャラクタに応じた決定時のキャラコマンド及び背景指定コマンドの送信(液晶制御コマンドバッファF15へのセット)が行われる。
具体的に、本例の演出制御部51Aは、受信した演出制御コマンドが大当たり終了指定コマンドであった場合のコマンド解析処理(ステップS1023)において、時間差送信の対象外である大当たり終了指定コマンド(スルー送信)、選択キャラコマンド、連荘数コマンド、攻略フラグコマンド、大当たり図柄コマンド、及び大当たり根幹コマンドについては、液晶制御コマンドバッファF15にセットする処理が行われる。
そして、この場合のコマンド解析処理(S1023)では、受信した大当たり終了指定コマンドに対応して定められたメインシナリオ番号(mcNo)をシナリオ登録情報に登録する処理が行われるが、このように登録されるメインシナリオにおいて、大当たり終了時に対応したランプや音、モータのシナリオが定められていると共に、9s後に決定時のキャラコマンド及び背景指定コマンドを送信するシナリオが定められている。つまり、上記のように大当たり終了指定コマンドに対応したメインシナリオ番号(mcNo)の登録が行われることで、その後の各種スケジューラ実行処理(S1032〜S1034)により大当たり終了時に対応したランプ、音、モータの各演出についてのシナリオ(サブシナリオ)の登録、及びコマンド送信シナリオの登録が行われる。なお、前述のように、コマンド送信シナリオデータについてのスケジューラ実行処理は、例えば、ステップS1032のシナリオスケジューラ実行処理の一部として実行することができる。
なお、図中の時間(f)は演出の進行時間を表すもので、単位は「フレーム」(表示データのフレーム)である。この場合の大当たり終了時の演出シナリオは、300フレーム分の時間長に及ぶものとされている。時間(f)について、括弧内の数値は対応するラインのシナリオ実行時間を表している。これは、前述したランプや音/モータについての実行時間(time)に相当する(図23A、図23B参照)。
また、時間=123のライン、時間=144のラインにおいて、ボタンの有効開始、有効終了を表す情報をセットすることが定められている。ここでの有効/無効は、操作受け付けの有効/無効を意味する。
さらに、時間=270のラインでは、ランプのサブシナリオデータとしてボタンランプの消灯を表すデータをセットし、またコマンド送信シナリオデータとして決定時のキャラコマンド、及び背景指定コマンドの送信を表すデータをセットすることが定められている。
時間=300のラインには、シナリオ終了を表すコードが記述される(前述した終了コードD_LSENDやD_SEENDを参照)。
図49において、横軸は1フレーム期間内での経過時間を表し、縦軸はフレーム単位での経過時間を表している。参考として、最上段には、1フレーム期間内における図43の各処理の流れを図46と同様に示している。
nフレーム目で更新された液晶シナリオデータに基づく液晶シナリオは、n+1フレーム目の液晶制御フレーム更新処理(S1004)によってシナリオ進行タイミングを管理する値の更新が行われることで開始され、その直後の描画更新処理(S1005)によって該開始されたシナリオに応じた描画更新のための処理が行われる。
このため、n+270フレーム目における各種スケジューラ実行処理によっては、コマンド送信シナリオデータに従って、これら決定時のキャラコマンド及び背景指定コマンドとしての液晶制御コマンドの送信が行われる。また、時間=270のラインには、ボタンランプの消灯に係るサブシナリオが登録されており、この場合の各種スケジューラ実行処理によっては当該消灯に係るサブシナリオが開始され、その直後に行われるランプ駆動データ更新・出力によって対応するランプ駆動データの出力が開始される。
n+270フレーム目において、上記の各種スケジューラ実行処理によって送信された決定時のキャラコマンド及び背景指定コマンドについては、当該n+270フレーム目に実行される液晶制御コマンド解析処理において解析が行われ得る。図49の例では、ランプ駆動データ出力処理がフレーム期間開始時から16msよりも十分に早いタイミングで完了したことにより、n+270フレーム目における液晶制御コマンド解析処理によってこれらコマンドの解析が行われた例を示している。前述のように、液晶制御コマンド解析処理は、フレーム期間開始時から16ms以内であれば実行され得るものである。
本実施形態では、このような処理をフレーム前半期間にのみ行うものとしている。
これにより、以降に続く各種スケジューラ実行処理やランプ駆動データ更新・出力処理がフレーム期間内に終了しなくなる事態の発生防止を図っている。
以上の第二実施形態のパチンコ遊技機1Aによれば、演出制御のための処理を効率化でき、適正な演出制御を実現できる。
また演出制御処理負荷を軽減することができる。
また、画像演出の制御処理についても、第二指示情報記憶手段にセットされた第二指示情報を取得し、該第二指示情報に基づいて画像表示装置を制御するという、2CPUの場合における画像演出制御手段(液晶制御基板52の液晶制御CPU)と同様の処理を踏襲することが可能とされる。
このように、第二指示情報記憶手段を有していることで、1CPUとしての演出制御手段が実行すべきプログラムとしては、2CPU時の演出制御手段が実行していたプログラムと画像演出制御手段が実行していたプログラムをほぼそのまま踏襲することが可能とされる。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、プログラム作成の作業負担軽減が図られ、コスト削減を図ることができる。
また、画像演出制御についてのプログラムは、1CPUの場合と2CPUの場合とでほぼ共通なものとすることができ、従ってプログラムの汎用性を高めることができる。同様に、画像演出制御以外の制御についてのプログラムとしても、1CPUの場合と2CPUの場合とでほぼ共通なものとすることができ、汎用性を高めることができる。
これにより、既存の2CPU構成における第二指示情報がコマンド情報とされている場合に対応して、既存プログラムからの変更点をさらに少なくすることが可能とされる。
従って、1CPU化を実現するにあたってのプログラム作成の作業負担をさらに軽減でき、さらなるコスト削減を図ることができる。また、プログラムの汎用性をさらに高めることができる。
このため、上記のような第二手段(第二演出進行管理手段)を有していることで、画像演出に係る制御については、画像演出制御手段のプログラムをほぼそのまま踏襲することが可能とされる。
また、第一手段による処理は、2CPU構成における演出制御手段が実行していた処理とほぼ同様であるため、該処理についても2CPU時に用いていたプログラムをほぼそのまま踏襲することが可能とされる。
このように1CPUとしての演出制御手段が実行すべきプログラムとしては、2CPU時の演出制御手段が実行していたプログラムと画像演出制御手段が実行していたプログラムをほぼそのまま踏襲することが可能とされる。
従って、1CPUを実現するにあたって既存プログラムの書き替えをほぼ不要とすることができ、コスト削減を図ることができる。
また、第一手段、第二手段をそれぞれ実現するためのプログラムは2CPUの場合とほぼ共通なものとすることができ、従ってプログラムの汎用性を高めることができる。
従って、1CPU化を実現するにあたってのプログラム作成の作業負担をさらに軽減でき、さらなるコスト削減を図ることができる。また、プログラムの汎用性をさらに高めることができる。
上記では、表示データのフレームに同期する信号としてVブランク信号に基づいてタイミングを管理する例を挙げたが、Vブランク信号以外の垂直同期信号を用いたり、或いは水平同期信号のカウントでフレーム期間内のタイミング管理を行っても良い。
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 (1)
- 少なくとも第一発光素子群を駆動する第一発光駆動手段と、
少なくとも第二発光素子群を駆動する第二発光駆動手段と、
前記第一発光駆動手段と前記第二発光駆動手段とを制御する演出制御手段と、を備え、
前記演出制御手段は、
前記第一発光素子群の発光パターン情報である第一発光パターン情報と、前記第二発光素子群の発光パターン情報である第二発光パターン情報とが少なくとも格納された発光パターンテーブルと、
複数の点灯データが格納された点灯データテーブルと、を有し、
前記第一発光パターン情報に基づいて、前記点灯データテーブルに格納された前記複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより前記第一発光素子群を発光可能であり、
前記第二発光パターン情報に基づいて、前記点灯データテーブルに格納された前記複数の点灯データから何れかの点灯データを選択し、選択した点灯データにより前記第二発光素子群を発光可能であり、
前記発光パターンテーブルにおいて、少なくとも前記第一発光パターン情報と、前記第二発光パターン情報とで、共通の前記発光パターン情報である特定発光パターン情報を記憶し、
前記特定発光パターン情報に基づいて、前記点灯データテーブルに格納された特定の前記点灯データを選択可能とし、
前記点灯データは、前記第一、第二発光素子群を構成する発光素子ごとの個別データとされた
遊技機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019114436A JP6883613B2 (ja) | 2019-06-20 | 2019-06-20 | 遊技機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019114436A JP6883613B2 (ja) | 2019-06-20 | 2019-06-20 | 遊技機 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017096738A Division JP6546957B2 (ja) | 2017-05-15 | 2017-05-15 | 遊技機 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019171143A true JP2019171143A (ja) | 2019-10-10 |
JP2019171143A5 JP2019171143A5 (ja) | 2020-04-30 |
JP6883613B2 JP6883613B2 (ja) | 2021-06-09 |
Family
ID=68169156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019114436A Active JP6883613B2 (ja) | 2019-06-20 | 2019-06-20 | 遊技機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6883613B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014027A (zh) * | 2019-12-18 | 2021-06-22 | 本田技研工业株式会社 | 旋转电机单元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007105325A (ja) * | 2005-10-14 | 2007-04-26 | Samii Kk | 遊技機 |
JP2009061147A (ja) * | 2007-09-07 | 2009-03-26 | Daiman:Kk | 遊技機 |
JP2014068903A (ja) * | 2012-09-28 | 2014-04-21 | Sanyo Product Co Ltd | 遊技機 |
JP2014231002A (ja) * | 2014-08-22 | 2014-12-11 | 株式会社三共 | 遊技機 |
JP2017012225A (ja) * | 2015-06-26 | 2017-01-19 | 株式会社藤商事 | 遊技機 |
-
2019
- 2019-06-20 JP JP2019114436A patent/JP6883613B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007105325A (ja) * | 2005-10-14 | 2007-04-26 | Samii Kk | 遊技機 |
JP2009061147A (ja) * | 2007-09-07 | 2009-03-26 | Daiman:Kk | 遊技機 |
JP2014068903A (ja) * | 2012-09-28 | 2014-04-21 | Sanyo Product Co Ltd | 遊技機 |
JP2014231002A (ja) * | 2014-08-22 | 2014-12-11 | 株式会社三共 | 遊技機 |
JP2017012225A (ja) * | 2015-06-26 | 2017-01-19 | 株式会社藤商事 | 遊技機 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014027A (zh) * | 2019-12-18 | 2021-06-22 | 本田技研工业株式会社 | 旋转电机单元 |
Also Published As
Publication number | Publication date |
---|---|
JP6883613B2 (ja) | 2021-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5748720B2 (ja) | 遊技機 | |
JP5919153B2 (ja) | 遊技機 | |
JP6313536B2 (ja) | 遊技機 | |
JP6720390B2 (ja) | 遊技機 | |
JP5975584B2 (ja) | 遊技機 | |
JP5748719B2 (ja) | 遊技機 | |
JP6883613B2 (ja) | 遊技機 | |
JP6639439B2 (ja) | 遊技機 | |
JP6546957B2 (ja) | 遊技機 | |
JP6059744B2 (ja) | 遊技機 | |
JP6532689B2 (ja) | 遊技機 | |
JP6532685B2 (ja) | 遊技機 | |
JP6532688B2 (ja) | 遊技機 | |
JP5748718B2 (ja) | 遊技機 | |
JP6173668B2 (ja) | 遊技機 | |
JP6404291B2 (ja) | 遊技機 | |
JP6348543B2 (ja) | 遊技機 | |
JP6560502B2 (ja) | 遊技機 | |
JP6059745B2 (ja) | 遊技機 | |
JP6532691B2 (ja) | 遊技機 | |
JP6532690B2 (ja) | 遊技機 | |
JP6532686B2 (ja) | 遊技機 | |
JP6532687B2 (ja) | 遊技機 | |
JP6532692B2 (ja) | 遊技機 | |
JP6542536B2 (ja) | 遊技機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200317 |
|
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: 20210420 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210510 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6883613 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |