JP6313536B2 - 遊技機 - Google Patents
遊技機 Download PDFInfo
- Publication number
- JP6313536B2 JP6313536B2 JP2012211353A JP2012211353A JP6313536B2 JP 6313536 B2 JP6313536 B2 JP 6313536B2 JP 2012211353 A JP2012211353 A JP 2012211353A JP 2012211353 A JP2012211353 A JP 2012211353A JP 6313536 B2 JP6313536 B2 JP 6313536B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- scenario
- led
- output
- effect control
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 336
- 230000008569 process Effects 0.000 claims description 331
- 230000000694 effects Effects 0.000 claims description 307
- 230000005540 biological transmission Effects 0.000 claims description 228
- 238000012545 processing Methods 0.000 claims description 187
- 238000004519 manufacturing process Methods 0.000 claims description 62
- 230000009471 action Effects 0.000 claims description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 54
- 238000007726 management method Methods 0.000 description 37
- 238000001514 detection method Methods 0.000 description 23
- 238000005034 decoration Methods 0.000 description 18
- 238000012217 deletion Methods 0.000 description 17
- 230000037430 deletion Effects 0.000 description 17
- 239000011521 glass Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000005856 abnormality Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000004397 blinking Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 239000000758 substrate Substances 0.000 description 6
- 230000005284 excitation Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010304 firing Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012546 transfer Methods 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
- 230000008901 benefit Effects 0.000 description 1
- 244000145845 chattering Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement 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
- 230000009467 reduction Effects 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Pinball Game Machines (AREA)
Description
発光部や可動体役物の動作のためには、例えば演出制御部として機能するマイクロコンピュータが、LEDドライバ回路などに対し駆動データを供給する。LEDドライバには例えば多数のLEDが接続され、LEDドライバは、各LEDに対し、駆動データに応じた発光駆動電流を流すことで発光動作を実行させる。
そこで本発明では、演出制御用のマイクロコンピュータ等の制御負荷を軽減することを目的とする。
そして上記演出制御手段は、上記第1系統の駆動信号出力手段に対して、上記演出制御手段の送信データレジスタのビット数である一送信単位の上記シリアルデータを出力し、その出力が完了したことを確認した上で次の一送信単位のシリアルデータを出力する第1シリアル出力処理と、上記第1シリアル出力処理により一送信単位の上記シリアルデータを出力してから、その一送信単位の上記シリアルデータの出力の完了を待機することなく、上記第2系統の駆動信号出力手段に対して一送信単位の上記シリアルデータを出力する第2シリアル出力処理とを行う。上記演出制御手段は、上記第1系統の駆動信号出力手段の1つのドライバ回路と、上記第2系統の駆動信号出力手段の1つのドライバ回路とを特定し、上記第1系統の駆動信号出力手段と、上記第2系統の駆動信号出力手段のそれぞれに対して、演出駆動データを取得する前記特定したドライバ回路を指定するスレーブアドレス、及びスレーブアドレスで指定されるドライバ回路に設定される各演出手段の演出態様を指定する各演出駆動データを、一送信単位づつ出力する動作を行うことで、スレーブアドレスによって指定する各ドライバ回路に演出駆動データが取得されるようにする。
或いは、上記第1系統から第X系統のうちの少なくとも1つの系統の駆動信号出力手段には、それぞれが1又は複数の演出手段に駆動信号を出力する複数のドライバ回路が含まれ、1つの系統内の各ドライバ回路は、演出駆動データの入出力が順次直列接続されており、上記演出制御手段からの上記シリアルデータは、1つの系統内の先頭のドライバ回路から終端のドライバ回路に順次転送され、各ドライバ回路は、演出制御手段からのラッチ信号に基づいて、演出駆動データを取り込む構成とされている。
また、上記演出手段は発光部である。
また、枠部と、該枠部に取り付けられる遊技盤部とを備え、上記第1系統から第X系統の駆動信号出力手段の少なくとも1つの系統は、上記枠部に設けられた演出手段に駆動信号を出力する1又は複数のドライバ回路を有して成り、上記第1系統から第X系統の駆動信号出力手段の少なくとも他の1つの系統は、上記遊技盤部に設けられた演出手段に駆動信号を出力する1又は複数のドライバ回路を有して成る。
このシリアルデータ送信に関し、従来は、1つの送信チャネルから例えば第1系統の駆動信号出力手段に一送信単位のシリアルデータを送信し、当該送信の完了後、次の送信チャネルから第2系統の駆動信号出力手段に一送信単位のシリアルデータを送信していく、というように送信動作を行っていた。しかしそうすると必要な送信の完了までに要する処理時間が長くなり、もって制御負荷が増大する。
そこで本発明では、第1系統から第X系統の駆動信号出力手段のそれぞれに対する各一送信単位のシリアルデータを、第1系統から第X系統の駆動信号出力手段に対し例えば略同時的に出力するようにする。そして該一送信単位の複数系統の送信完了後に、次の一送信単位のシリアルデータを、第1系統から第X系統の駆動信号出力手段に対して出力する。このような第1系統から第X系統の駆動信号出力手段に対する送信により、全体の送信動作に要する時間を短縮する。
<1.パチンコ遊技機の構造>
<2.パチンコ遊技機の制御構成及び第1の実施の形態のドライバ構成>
<3.主制御部の処理>
<4.演出制御部の処理>
[4−1:メイン処理]
[4−2:1msタイマ割込処理]
[4−3:コマンド解析処理]
[4−4:シナリオ登録・削除処理]
[4−5:シナリオ更新処理]
[4−6:LED駆動データ更新処理]
[4−7:第1の実施の形態のLED出力処理]
[4−8:LEDドライバ初期化処理]
<5.第2の実施の形態>
<6.変形例>
まず図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が設けられている。
主液晶表示装置32Mでは、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。副液晶表示装置32Sも、同様に各種演出に応じた表示が行われる。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から主液晶表示装置32M及び副液晶表示装置32Sの表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また主液晶表示装置32Mの下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、上述した主液晶表示装置32Mは、図柄表示部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は、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
次に本実施の形態のパチンコ遊技機1の制御系の構成について説明する。図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施の形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、液晶制御基板52、払出制御基板53、発射制御基板54、電源基板58が設けられている。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
なお主液晶表示装置32M、副液晶表示装置32Sによる表示動作の制御を行う液晶制御基板として、主液晶制御基板、副液晶制御基板を独立して設けてもよい。
払出制御基板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の場合、主液晶表示装置32M、副液晶表示装置32S、装飾ランプ20w、20b、及び図示を省略した可動体役物となる。
演出制御ROM201は、演出制御CPU200による演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM202は、演出制御CPU200が各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域などとして用いられる。
なお図示は省略したが、演出制御部51は、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、演出制御CPU200に割込み信号を与える割込コントローラ回路、音響演出のための音源ICなども備えている。
この演出制御部51の主な役割は、主制御部50からの演出制御コマンドの受信、演出制御コマンドに基づく演出の選択決定、主液晶表示装置32M、副液晶表示装置32S側への演出制御コマンドの送信、スピーカ45の出力音制御、装飾ランプ20w,20b(LED)の発光制御、可動体役物の動作制御などとなる。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う。
画像ROMには、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されている。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域とされる。
液晶制御CPUは、VDPが表示制御を行うために必要な制御データを出力する。
液晶制御ROMには、液晶制御CPUの表示制御動作手順を記述したプログラムやその表示制御に必要な種々のデータが格納される。
液晶制御RAMは、ワークエリアやバッファメモリとして機能する。
枠ドライバ部61は、枠側の装飾ランプ部63のLEDについて発光駆動を行う。なお、装飾ランプ部63とは、図1に示したように枠側に設けられている装飾ランプ20wを総括的に示したものである。
盤ドライバ部62は、盤側の装飾ランプ部64のLEDについて発光駆動を行う。なお、装飾ランプ部64とは、図2に示したように盤側に設けられている装飾ランプ20bを総括的に示したものである。また本実施の形態の場合、盤ドライバ部62は、盤側に形成されている可動体役物を駆動する可動体役物モータ65の駆動も行う。可動体役物モータ65は例えばステッピングモータが用いられる。
なおこの例では盤ドライバ部62は、盤側に形成されている可動体役物を駆動する可動体役物モータ65の駆動も行うものとしているが、装飾ランプ部64の各LEDを発光駆動するドライバ部と、可動体役物モータ65を駆動するドライバ部が別体として設けられても良い。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
これらの情報を有効なものとして送信する場合、モード(MODE)およびイベント(EVENT)各々に対応してストローブ信号が出力される。すなわち、主制御CPU100は、送信すべきコマンドがある場合、演出制御部51にコマンドを送信するためのモード(MODE)情報の設定および出力を行い、この設定から所定時間経過後に1回目のストローブ信号の送信を行う。さらに、このストローブ信号の送信から所定時間経過後にイベント(EVENT)情報の設定および出力を行い、この設定から所定時間経過後に2回目のストローブ信号の送信を行う。
ストローブ信号は主制御CPU100により、演出制御CPU200が確実にコマンドを受信することが可能な所定期間アクティブ状態に制御される。
また演出制御部51(演出制御CPU200)は、ストローブ信号の入力に基づいて割込を発生させてコマンド受信割込処理用の制御プログラムを実行し、この割込処理において演出制御コマンドが取得される。
図4に演出制御部51に接続される枠ドライバ部61、盤ドライバ部62を示した。
シリアルデータ出力チャネルch1の信号線としては、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、演出駆動データとしてのシリアルデータ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)と表記する。
枠ドライバ部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から行う電流源である
なおシリアルデータの形式については図26で後述するが、演出制御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とされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
LEDドライバ90は与えられたコマンド(シリアルデータ)によって指示される電流を出力端子96−1〜96−24から出力する回路であることから、ステッピングモータやソレノイド等の物理的可動体駆動デバイスのドライバとしても使用することができる。そこで、一部のLEDドライバ90を図5Bのようにステッピングモータ121のドライバとして用いる。可動体役物の動作は演出シナリオによって細かく設定され、それに応じて演出制御部51は駆動方向や駆動量などを制御するわけであるが、盤ドライバ部62におけるLEDドライバ90を利用して可動体役物を駆動することで、装飾ランプ部64の各装飾ランプ(LED20b)とともにシリアルデータによる可動体役物制御が可能となり、制御処理及び構成が効率化できる。
なお、1つのLEDドライバ90において、一部の出力端子がLED駆動に用いられ、他の一部の出力端子がステッピングモータやソレノイド等の駆動に用いられるという手法を採っても良い。
そして第1系統、第2系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62)には、それぞれが1又は複数の演出手段に駆動信号を出力する複数のLEDドライバ90が含まれ、1つの系統内の各LEDドライバ90には、演出制御部51からのシリアルデータが、並列に送信される構成とされている。そして各LEDドライバ90は、自己の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が開閉される。
[4−1:メイン処理]
続いて演出制御部51の処理について説明する。演出制御部51の処理としては、主に、メインループ上で16ms毎に行われる処理(以下「16ms処理」ともいう)と、1ms毎に行われる割り込み処理(以下「1msタイマ割込処理」ともいう)がある。
まずここでは16ms処理を含むメイン処理について説明する。
図8は、演出制御部51のメイン処理を示している。演出制御部51(演出制御CPU200)は、遊技機本体に対して電源が投入されると、図8のメイン処理を開始する。
このメイン処理において、演出制御CPU200は、まずステップS101で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、コマンド受信割込み設定、可動体役物の起点復帰処理、CTCの初期設定、タイマ割込みの許可、マイクロコンピュータの各部を含めてCPU内部のレジスタ値の初期設定などを行う。
即ちこの例では、演出制御CPU200はステップS102でのIDチェックとステップS117での乱数更新を毎ループ行うと共に、16ms毎に、ステップS105〜S116の処理(16ms処理)を行う。
ステップS102のIDチェックでは、演出制御CPU200はシステム上で設定されている自己或いは接続各部のIDの確認を行う。もし何らかの原因により、ID異常が検出された場合は、ステップS103としてシステム停止処理を行う。
IDに問題のない通常時は、演出制御CPU200はステップS104以下の処理を行うことになる。即ち演出制御CPU200は、16ms処理の実行判断のための割込みカウンタの値が「15」より大きい値となっているか否かを判断する。この割込みカウンタは、後述する1msタイマ割込処理のステップS207でインクリメントされていくカウンタである。従って割込みカウンタの値が「15」より大きい場合とは、16ms処理のタイミングになっていることを意味する。
一方、割込みカウンタの値が「16」以上である場合は、演出制御CPU200はステップS105〜S116の処理を実行し、その後、ステップS117で演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行うことになる。
その場合、まずステップS105では、割込みカウンタをゼロリセットする。以後、再び次の16ms処理までのカウントを行うためである。
次にステップS106で演出制御CPU200は、エラー処理を行う。このエラー処理としては、RAMクリアエラー中、役物エラー中、右打ちエラー中などにおけるエラー処理タイマの処理、各種エラーが発生した際のエラー報知のためのシナリオ登録処理、エラー報知後のエラーシナリオのクリア処理などを行うこととなる。
次にステップS107では、演出制御CPU200はデモ処理を行う。このデモ処理では、再生音の制御、デモムービー実行や役物原点補正のシナリオ登録や、そのコマンドセットなどの処理を行う。客待ち状態などでは、このデモ処理で設定されたシナリオが実行されることでデモムービー表示が実行される。
ステップS109では、演出制御CPU200は入力検知処理を行う。この入力検知処理では、操作部60の操作子(演出スイッチ11、演出ボタン12、十字キー13)の操作による入力の検知を行い、入力を検知した場合、その操作に応じた処理を行う。
ステップS110では、演出制御CPU200はシナリオ更新処理を行う。この処理ではメインシナリオの更新、サブシナリオの更新が行われる。その際には装飾ランプ部64,65の点灯パターン登録、再生する音の登録、可動体役物の駆動のためのモータ動作の登録なども行われる。詳しくは図14,図15を用いて後述する。
ステップS111では、演出制御CPU200は音再生処理を行う。演出制御CPU200は、シナリオデータに基づいてワークに音チャネルとして登録されている音データに基づいて、フレーズ番号やボリューム等のデータを音源ICに出力する。これによってスピーカ部59からの効果音、音楽・音声等の再生出力が行われる。
ステップS112では、演出制御CPU200は役物エラー処理を行う。ここでは可動体役物の原点復帰がなされていないなどの位置エラー判定などを行う。
ステップS114では、演出制御CPU200は、演出制御RAM202のワーク領域を対象としてチェックサム算出及びその保存を行い、またステップS115では、バックアップデータの保存を行う。
さらにステップS116ではシナリオ更新カウンタをゼロリセットする。シナリオ更新カウンタは後述の1msタイマ割込処理でインクリメントされるカウンタである。
以上のような16ms処理が、図8のメインループ処理において16ms経過毎に行われる。
次に図9により1msタイマ割込処理を説明する。演出制御CPU200は、タイムカウントにより1ms毎に発生する割込要求に応じて、図9の1msタイマ割込処理を実行する。
この1msタイマ割込処理においては、まずステップS201では主制御CPU100からのテストコマンドに応じたチェックサム算出中であるか否かを判断する。チェックサム算出中でなければ、演出制御CPU200はステップS202の入力処理に進む。
このような入力処理(S202)及び入力検知処理(S109)により、ノイズ・チャタリングによる入力誤認識の防止がはかられる。また、入力カウンタを用いており、本実施の形態では例えば16ビットカウンタを用いて65535ms(約65秒)までなどをカウントできるようにしているため、いわゆる長押しの検出も可能となる。
ステップS204では、演出制御CPU200は、モータ駆動データを出力する。上述のように盤ドライバ部62の一部のLEDドライバ90には、可動体役物モータ65のステッピングモータ121等が接続されている。このステップS204では、これらステッピングモータ121に対する駆動データとしてのシリアルデータを、盤ドライバ部62の所定のLEDドライバ90(ステッピングモータ121等の可動体役物モータ65を駆動するLEDドライバ90)に対して出力することになる。
この割込みカウンタの値0〜15に応じて、ケース0〜ケース15としてステップS205の処理が規定される。例えば本実施の形態では、ケース0ではWDT(watchdog timer)クリア信号ON、及びLEDドライバ90の初期化処理を行う。ケース1〜3ではLEDドライバ90の初期化処理を行う。ケース8ではWDTクリア信号OFFを行う。ケース12〜15では、LEDドライバ90に対するLED駆動データの出力を行う。
LEDドライバ90の初期化とは、LEDドライバ90において使用しないレジスタにデフォルト値を出力する処理である。この初期化と、LED駆動データの出力は、1回の1msタイマ割込処理の際に、LEDドライバ90の2,3個に対して行われる。
その後、演出制御CPU200はステップS207で割込みカウンタのインクリメントを行い、またステップS208でシナリオ更新カウンタのインクリメントを行う。そしてシナリオ更新カウンタの値が100未満であれば、1msタイマ割込処理を終える。
なお、シナリオ更新カウンタは上述のように16ms処理のステップS116でゼロリセットされるため、通常はシナリオ更新カウンタの値が100以上となることはない。100以上となるのは、演算異常、処理応答異常などにより16ms処理が実行されない場合や、16ms処理内の或る処理の進行が停止しているような場合である。このような場合は、無限ループに入り、WDTによってタイムアップ処理が行われるのを待つことになる。
続いて、16ms処理として図8のステップS108で行われるコマンド解析処理について、図10、図11で説明する。演出制御CPU200は、ステップS108のコマンド解析処理として、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。この具体的な処理として、図10のステップS301〜F308の処理を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は図11で後述する。
図11Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず図11AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、装飾ランプ部63,64におけるLEDの消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
図11Cは、ステップS330でのコマンド処理として、図柄コマンドを取り込んだ場合の処理S330bを示している。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、変動開始処理を行う。その後、変動開始に応じてステップS335で変動パターンコマンドの削除を行う。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
次にシナリオ登録・削除処理について説明する。シナリオとは演出制御やエラー処理その他、各種の実行すべき動作を規定したデータである。実行すべきシナリオのデータは、シナリオ登録情報として演出制御RAM202のワーク領域に登録される。図16Aに示すシナリオ登録情報の構造については後述するが、シナリオ登録情報としては、0〜63までの64個のシナリオチャネルが用意されている。この64個のシナリオチャネルに登録されたシナリオは同時に実行可能とされる。以下、シナリオチャネルを「sCH」で示す。
シナリオ登録処理とは、シナリオ登録情報における任意のシナリオチャネルに、登録を要求されたシナリオ番号のシナリオを登録する処理である。原則的には、sCH0〜sCH63のシナリオチャネルは、どのチャネルが用いられても良い。
ステップS401で演出制御CPU200は、まず今回登録すべきシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、何もせずに処理を終える。
「追加ポインタ」+Bのシナリオチャネルが空きでなければ、演出制御CPU200はステップS404で変数Bをインクリメントする。
ステップS405でB<64でなければ、この図12の処理を終える。これは全シナリオチャネルについて探索を行ったが、空きチャネルがなくてシナリオ登録が不可能となる場合である。
まだ全シナリオチャネルの探索(空きチャネルであるか否かの確認)を行っていない時点では、ステップ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を調べたが、空きがなかったと判断された場合である。そのため登録不可能として図12の処理を終えることとなる。
そこでステップS406でこの点を確認し、「追加ポインタ」+Bの値が「64」となっていたら、ステップS407では、次に確認するシナリオチャネルを「sCH0」に戻すために、追加ポインタの補正を行う。つまり追加ポインタの値を−64することで、「追加ポインタ」+Bの値が「0」となるようにする。これにより次のステップS403では、シナリオチャネルsCH0が空きであるか否か確認されるようにする。
そしてステップS409で、追加ポインタを、登録を行ったシナリオチャネル+1の値に更新する。つまり今回登録を行ったシナリオチャネルの次のシナリオチャネルの値を、追加ポインタとして記憶しておき、次回の登録処理に使用できるようにする。なお、本実施の形態ではシナリオチャネルはsCH0〜sCH63の64チャネルのため追加ポインタの最大値は63となる。
図13Aは、或るシナリオをシナリオ登録情報から削除する場合の演出制御CPU200の処理を示している。
演出制御CPU200は、コマンド或いはプログラムグラム上で指定される、削除するシナリオ番号(後述のメインシナリオ番号(mcNo))の値に基づいて、図13Aの処理を開始する。まずステップ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で行われるシナリオ更新処理について説明する。シナリオ更新処理では図14、図15で説明するようにメインシナリオとサブシナリオの更新が行われる。
本実施の形態では、先にも述べたようにシナリオ登録情報は、シナリオチャネル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の場合、シナリオ登録情報(ワーク)から、このシナリオが削除される(後述する図14のステップS617参照)。
本実施の形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
16ms毎にメインシナリオタイマ(msTm)と、テーブルの時間データを比較して、一致した場合に、そのラインのランプナンバが、図16Bのランプデータ登録情報に登録される。登録されるランプチャネルdwCHは、当該ラインに示されたチャネルとなる。
例えば、上述の或るシナリオチャネルsCHにおいて、図18に示したシナリオ番号2が登録され、サブシナリオ番号2が参照されるとする。図19Aに示したランプサブシナリオ番号2では、1ライン目に時間データ(time)=0としてランプチャネル5(dwCH5)及びランプナンバ5が記述されている。この場合、メインシナリオタイマ(msTm)=0の時点で、まず当該1ライン目の情報が図16Bのランプデータ登録情報のランプチャネル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バイトでモータの動作パターン番号を示すように構成されている。モータ番号に対応するモータチャネルに動作パターン番号がセットされる。
また図8のステップS111の音再生処理では、図14,図15のシナリオ更新処理で更新される音データ登録情報に基づいて、再生出力が行われる。
図8の16ms処理のステップS110として実行される図14のシナリオ更新処理では、演出制御CPU200はループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて、ステップS601〜S616の処理を行う。当該ループ処理の各回の処理対象のシナリオチャネルを「sCHn」として説明する。
ステップS604では、当該特定したアドレスで示される、メインシナリオテーブルの或るメインシナリオ番号の実行ラインが、終了コードD_SEEND(図18参照)が記述されている最終ラインであるか否かを確認する。
終了コードが記述された最終ラインであった場合は、当該シナリオチャネルsCHnに登録されたシナリオで実行すべき処理は終了したことになるため、ステップS617で、そのシナリオチャネルsCHnに登録されているシナリオをシナリオ登録情報(ワーク)から削除する。
なお、この場合のシナリオ登録の削除は、シナリオ終了に応じた通常の削除である。先に図13で説明したシナリオ削除は、この通常削除以外の、例えば未終了のシナリオをシナリオ登録情報(ワーク)から削除する処理であることを付言しておく。
そしてステップS608で当該シナリオチャネルsCHnで指定されるサブシナリオの更新を行う。サブシナリオの更新については図15で後述する。
またその場合、ステップS612で次のラインがループ指定であるか否かを確認する。図18のメインシナリオテーブルにおいてシナリオ番号1では、最終ラインがシナリオデータループコードD_SELOPとされている例を示したが、このようにループ指定されていた場合は、ステップS613で、メインシナリオ実行ライン(mcIx)にループ行をセットする。
そしてステップS615のチェックサム処理,ステップS616のバックアップ処理を行ってシナリオチャネルsCHnについての1回の処理を終える。
シナリオ更新処理としては、ループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて以上の処理が実行されることになる。
メインシナリオタイマ(msTm)、シナリオチャネルsCHnと、メインシナリオテーブルに記述されたサブシナリオ番号(scNo)に基づいて、図15Aのサブシナリオの更新処理が行われる。
シナリオチャネルsCHnが適正値であれば、演出制御CPU200はステップS622で、サブシナリオ番号(scNo)とサブシナリオ実行ラインlmp(lmpIx)に対応するランプサブシナリオテーブル(図19A参照)のアドレスを特定する。
そしてステップS624で、メインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間(実際にはmsTm×16msの時間)が、時間データ(time)以上となっていたら、そのラインについての処理を行う。その場合、ステップS625でランプチャネルdwCHの値が正常(dwCH0〜dwCH15の範囲内)であるか否かを確認する。異常な値であれば処理を終える。正常な値であればステップS626で、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを確認する。
点灯パターンナンバの登録処理を図15Bに示している。この場合、まず演出制御CPU200はステップS651で、当該ラインに記述されているランプチャネルdwCHの値が正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
正常値であれば、ステップS652で、当該ラインに記述されているランプナンバが正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
ランプチャネルdwCH及びランプ番号のいずれもが正常値であれば、ステップS653でワークのランプデータ登録情報における、ランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。
以上の図15Bの処理をステップS628で行ったら、演出制御CPU200はステップS629でサブシナリオ実行ラインlmp(lmpIx)の値を+1し、ステップS630でランプチャネルdwCHの値を+1してステップS624に戻る。
ステップS631ではサブシナリオタイマ(scTm)が0であるか否かを確認する。0でなければ、音及びモータの登録を行わずにステップS639へ進む。この場合ステップS640でサブシナリオタイマ(scTm)の値をデクリメントして、この図15Aの処理を終えることとなる。
そしてステップS633では演出制御CPU200は、該当する音/モータサブシナリオ番号のテーブルの、サブシナリオ実行ライン(scIx)で示されるラインが、シナリオデータ終了コードD_SEENDが記述された行であるか否かを確認し、シナリオデータ終了コードD_SEENDが記述された行であれば処理を終了する。
シナリオデータ終了コードD_SEENDが記述された行でなければ、演出制御CPU200はステップS634で、サブシナリオタイマ(scTm)に、当該ラインの時間データ(time)から前回時間(scPrevTm)を減算した値を代入する。また前回時間(scPrevTm)には、当該ラインの時間データ(time)を代入する。
そしてステップS638で、サブシナリオ実行ライン(scIx)の値として次のラインの値をセットする。そしてステップS639でサブシナリオタイマ(scTm)が0でなければ、ステップS640でサブシナリオタイマ(scTm)をデクリメントして処理を終える。
図8のステップS113のLED駆動データ更新処理を説明する。
この処理は、ランプデータ登録情報に登録されている点灯ナンバ(登録点灯ナンバ(lmpNew)、実行点灯ナンバ(lmpNo))に対応するランプデータテーブルを参照して、LED駆動データを作成する処理である。なお上述のように、ランプデータ登録情報の点灯ナンバには、元々はランプサブシナリオテーブルに記述された、点灯パターンを示すランプナンバがセットされる。ランプナンバは点灯パターンを示すナンバと述べたが、具体的には図24Aで述べるランプデータテーブルのランプデータの番号を示すことになる。
演出制御CPU200はステップS701でそれまで出力データとしていたLED駆動データをクリアする。
そしてループ処理LP2として、ランプデータ登録情報のランプチャネルdwCH0〜dwCH15のそれぞれについて、ステップS702〜S720の処理が行われる。以下、処理対象のランプチャネルを「dwCHn」と表記して説明する。
なお実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致していれば、既に過去に以上のステップS703,S704の処理が行われたものであるため、これらの処理は不要である。
図22Aは、図16Bに示したワークのランプデータ登録情報において、ランプチャネルdwCH0、dwCH5、dwCH8に登録が行われている状態を示している。この図の状態は、図22Bの時点t0の状態の一例である。
即ちランプチャネルdwCH0、dwCH5の情報については、時点t0より以前に、LED出力データに反映されている。ランプチャネルdwCH0については、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は3(3ライン目)まで進んでいる。またランプチャネルdwCH5についても、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は2(2ライン目)まで進んでいる。時点t0では、ランプチャネルdwCH8は登録直後であり、まだ実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致されていない。この後、上記ステップS703,S704の処理が行われることになる。
このような優先度の設定のため、図22Bのように複数のランプチャネルdwCHの動作が重なる場合、優先度の高いランプチャネルの点灯動作が実行される。例えば時点t0からは、ランプチャネルdwCH0、dwCH5に基づく点灯動作が制限され、dwCH8に基づく点灯が行われるようにLED出力データが生成される。優先度の低いランプチャネルの情報を反映させないようにするためには、後述するマスクデータが使用される。
実行点灯ナンバ(lmpNo)が異常であれば、ステップS719に進む。なおランプチャネルdwCHnが登録されていない空きチャネルの場合も、ここでは異常としてステップS719に進む。
またステップS707では、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、マスクデータテーブルのアドレスを特定する。
アドレスの特定のためには演出制御CPU200は、図23のようなランプデータアドレステーブルを参照する。このランプデータアドレステーブルには、各点灯パターン、例えば全体点滅、右側点滅、左側点滅、役物点灯などを実現するためのランプデータ番号のアドレスが示されている。図23の左端の数字は、図19Aのランプサブシナリオテーブルで示されるランプナンバであり、例えばランプナンバ2のランプデータのアドレスの欄には、全体点滅の点灯パターンを行うためのランプデータ番号が記憶されたアドレスが記述されている。
また、マスクデータのアドレスの欄には、そのランプデータ番号の点灯パターンを実行する際に必要なマスクデータが記憶されたアドレスが記憶されている。例えば点灯ナンバ5の右側点滅の点灯パターンを行う際には、センターケースマスクが必要になるが、そのセンターケースマスクを行うためのマスクデータのアドレスが記述されている。
各番号のランプデータにおける各ラインには、タイマ(frame)としての時間データと点灯データが記述されている。タイマ(frame)は各ラインの点灯データによるLED出力データの生成を行う時間を規定する。
点灯データは、各LEDドライバ90に対応して記述されている。先に図4では、枠ドライバ部61にはn個、盤ドライバ部62にはm個のLEDドライバ90が存在するとしたが、以下では一例として、枠ドライバ部61には4個、盤ドライバ部62には5個の、合計9個のLEDドライバ90が存在すると仮定して説明する。
その場合、ランプデータの各ラインには、図24Aに示すように、9個のLEDドライバ90のそれぞれに対応して点灯データが記述される。なお図では各LEDドライバ90との対応をLEDドライバ90のスレーブアドレスでw1〜w4、b1〜b5で示している。
点灯データとしては、図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〜w4、b1〜b5)のそれぞれに対して設定されて、かつそれらが各ライン毎に設定されることで、時系列的に変化する所定の発光パターンが示されることになる。(図では点灯データは一部のみに例示した。空欄部分は図示を省略したもので、実際には点灯データが記述される)
各マスクデータ1〜5は、それぞれ各LEDドライバ90(w1〜w4、b1〜b5)の各出力端子96−5〜96−24について、消灯を「0h」、マスク無しを「Fh」で示すデータとされている。
例えばマスクデータ1についてみると、枠ドライバ部61におけるLEDドライバ90(w1〜w4)については、「0000・・・・・00(h)」と、各出力端子96−5〜96−24について消灯が設定され、盤ドライバ部62のLEDドライバ90(b1〜b5)については、「FFFF・・・・・FF(h)」と、各出力端子96−5〜96−24についてマスク無しが設定されている。つまり枠側の装飾ランプ20wのみをマスクすることを指定するデータとなる。(なお、マスクデータ4,5はデータ値の図示を省略している)
続いてステップS708で演出制御CPU200は、ランプデータテーブルの該当ライン(現在対象のランプチャネルdwCHnの実行ライン(offset)で示されるライン)のタイマ(frame)を取得し、これを変数Dtimeに代入する。
ステップ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まで順次行うことになる。
図25Aは点灯データとマスクデータを展開してLED駆動データを生成する出力データバッファを模式的に示している。
出力データバッファは、ランプデータテーブル及びマスクデータテーブルと同様に、各LEDドライバ90(w1〜w4、b1〜b5)のそれぞれに対応して用意される。図示する1つのマスは、1つのLEDドライバ90に対応し、(4×24)ビットの情報のバッファとなる。
例えば図22で示した時点t0の場合、出力データバッファは、ランプデータ2のマスクデータ(図23参照:マスクなし)がアンド展開され、ランプデータ2の3ライン目の点灯データがオア展開された状態の後、ランプデータ5のマスクデータ(図23参照:センターケースマスク)がアンド展開され、ランプデータ5の2ライン目の点灯データがオア展開された状態となっている。
上述の通りマスクデータは0h(=0000)が消灯、Fh(=1111)がマスクなしである。従ってマスクデータをアンドで展開するということは、その時点までの出力データバッファの値について、消灯(マスク)したいビットを「0」とし、マスクしないビットは変更しないということになる。
さらに点灯データをオアで展開するということは、処理中のランプチャネルdwCHの点灯データが、マスク後の出力データバッファに反映されるということになる。
この処理をランプチャネルdwCH0〜dwCH15について順次行うことで、高い番号のランプチャネルほど優先されたLED駆動データが出力データバッファ上に形成されることになる。
上述のようにLEDデータ更新処理で生成されたLED駆動データは、図9の1msタイマ割込処理のステップS205(但し上述のケース12〜15の場合)で、実際に各LEDドライバ90に出力される。
本実施の形態では、LED駆動データの出力は、1回の1msタイマ割込処理の際に、LEDドライバ90の2,3個に対して行われる。さらに本実施の形態では、演出制御CPU200は、LED駆動データの一送信単位のシリアルデータを、第1系統、第2系統の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)に対して略同時的に出力する。
例えば図25Bに示すように、1msタイマ割込処理のステップS205のケース12では、枠ドライバ部61のLEDドライバ90(w1,w2,w3)と、盤ドライバ部62のLEDドライバ90(b1,b2,b3)にLED駆動データの送信を行う。LEDドライバ90のw1とb1、w2とb2、w3とb3に対する送信は同時的に行われる。
またケース12では、枠ドライバ部61のLEDドライバ90(w4)と、盤ドライバ部62のLEDドライバ90(b4,b5)にLED駆動データの送信を行う。LEDドライバ90のw4とb4に対する送信は同時的に行われる。
例えば図25Bに示した、各LEDドライバ90(w1〜w4、b1〜b5)のそれぞれに対しては、この図26の構造のシリアルデータでLED駆動データが送信される。なおこの図26は、図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ビットに、点灯データをセットするようにしている。この点については後述する。
また、図9のステップS205ではケース0〜3でLEDドライバ90の初期化を行うと述べたが、これは具体的には、使用しないレジスタアドレス00h〜14hのレジスタにデフォルト値をセットする送信処理となる。この点についても後述する。
演出制御CPU200はステップS801で、スタート値に対応するシリアルデータ出力チャネルch1、ch2のLED駆動データ(図25Aの出力データバッファ)の先頭アドレスを特定する。
スタート値とは、最初に送信するLEDドライバ90の値である。例えば図25Bのケース12の場合、スタート値は「1」で、シリアルデータ出力チャネルch1、ch2からそれぞれ、LEDドライバ90(w1)、LEDドライバ90(b1)に対して最初に送信を行うため、ここでは図25Aの出力データバッファにおいてw1用のLED駆動データが格納された先頭アドレスと、b1用のLED駆動データが格納された先頭アドレスを特定することになる。
またケース13の場合は、スタート値は「4」で、同様の意味で、図25Aの出力データバッファにおいてw4用のLED駆動データが格納された先頭アドレスと、b4用のLED駆動データが格納された先頭アドレスを特定する。
図25Bの例では、ケース12の場合、ドライバナンバ個数は「3」(つまり1つのシリアルデータ出力チャネルにつき3つのLEDドライバ90に送信を行う)であるため3回ループ処理する。ケース13の場合は、ドライバナンバ個数とは「2」となる(シリアルデータ出力チャネルch2は2つのLEDドライバ90に送信を行うため)。
そしてステップS804で演出制御CPU200は、シリアルデータ出力チャネルch1,ch2のシリアルデータDATAの出力として、最初の一送信単位(1バイト)のデータ送信、即ちこの場合は図26のシリアルデータ構造に示した先頭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駆動データ送信→送信完了待機という処理が行われていく。
図27は、以上の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の発光が行われる。
ケース13の場合は、1回目のループ処理として、LEDドライバ90(w4)、LEDドライバ90(b4)について、ステップS803〜S815の処理が行われる。その後2回目のループ処理では、LEDドライバ90(b5)のみについてステップS803〜S815の処理が行われる。その2回のループ処理で図21のLED駆動データ出力が完了する。
以上により図25Bに示したような、9個の各LEDドライバ90へのシリアルデータ出力が実行される。なお、搭載されるLEDドライバ90の数や、1回の1msタイマ割込処理で送信するLEDドライバ90の数などが異なれば、当然ループ回数が異なる場合もある。
また以上の例は2つのシリアルデータ出力チャネルch1,ch2を用いる例で述べているが、3以上のシリアルデータ出力チャネルを利用する場合も、それらが並行して同時的にシリアルデータ送信が行われるようにすれば良い。
これにより全体のシリアルデータ送信動作に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
図28は演出制御CPU200がシリアルデータ送信に使用するクロック信号CLK、送信データ、TDRE(送信データエンプティフラグ)、及び送信データの送信データレジスタへの書込タイミングを示している。
送信データとは、上述のスレーブアドレス、データ設定開始レジスタアドレス、LED駆動データLPDT1,LPDT2・・・LPDT24に相当する。ここでは1送信単位としての8ビットをデータd0〜d7として示している。
ここで、TDREは、送信データレジスタに送信データを書き込むと「0」となり、送信データレジスタに有効なデータが存在していることを示す。そして送信データレジスタのデータが実際に送信出力(送信用シフトレジスタへのロード)されて送信が開始されると「1」になり、送信データレジスタに有効なデータが存在しないことを示す。
従って演出制御CPU200の送信処理としては、TDREが「1」となったことを確認して、8ビットの送信データを送信データレジスタへ書き込み、その次の8ビットの送信データの書き込みは、次にTDREが「1」となるまで待機する。即ち図28に待機時間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の処理についても同様である。
1msタイマ割込処理で行われるLED駆動データ出力処理において、このようにシリアルデータ出力処理が効率化できることで、演出制御CPU200の処理負担は大きく軽減される。
本実施の形態では16階調とする例を述べたが、もちろんより多階調としても良い。
このような構成により、枠ドライバ部61のLEDドライバ90はすべて枠側の装飾ランプ20wに対応し、また盤ドライバ部62のLEDドライバ90はすべて盤側の装飾ランプ20bに対応することとなり、これにより配線の容易化、効率化、演出制御設定の容易性などを実現できる。
このビット変換について図29で説明する。図29Aは1つのLEDドライバ90に送信する4×24ビットの点灯データの例を示している。即ち図25Aの出力データバッファの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ビットに変換して送信する。
図29Bは、点灯データ「Fh」をレジスタアドレス15hに送信する場合の処理を示している。図25Aの出力データバッファから取り出す点灯データは、各4ビットの2つ点灯データである「F8h」=「11111000」となる。このデータに対し、下位4ビットをマスクする。例えばマスクデータ「F0h」=「11110000」を用いてアンドをとる。これにより、図示のように、レジスタアドレス15hに送信するシリアルデータ「11110000」=「F0h」が得られることになる。この場合、出力端子96−1からは最大階調値(F0h)の駆動電流出力が行われることとなる。
一方、図29Cは、点灯データ「8h」をレジスタアドレス16hに送信する場合の処理を示している。上記のとおり図25Aの出力データバッファから取り出した点灯データは「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階調で十分である。
そこで本実施の形態では、点灯データを4ビット構造として、16階調表現を行うようにする。そしてLEDドライバ90への出力時には、4ビットを8ビットに変換して送信する。
また、近年の汎用的なLEDドライバは、256階調などの高性能タイプのものの方が生産量が多く、価格的にも有利であることが多い。そのため、例えば16階調が必要な場合に、16階調の制御能力を持つLEDドライバを採用するよりも、256階調のLEDドライバを採用する方が、コストメリットが得られ、又、安定的入手性もよい。これにより製造上及びコスト的なメリットが得られる。
また上述したように、演出制御CPU200は、4ビットの点灯データを8ビットにおける上位4ビットに配置して、8ビットのLED駆動データ(送信するシリアルデータ)を生成する。
このように上位4ビット配置により、16階調のLED駆動データを生成でき、またその処理は例えば図29B、図29Cの例のように、非常に簡易な処理である。このためビット数変換の処理負担はほとんど問題とならない。
この場合、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ビット数に変換して発光駆動ドライバに送信するという処理は、パラレルデータ出力、或いは無線送信出力などにも応用でき、その場合に送信先の階調能力と、求める階調表現の差がある場合に、送信元のデータ記憶容量の低減効果を得ることができる。
図9のステップS205では割込みカウンタの値が「0」〜「3」であるケース0〜3でLEDドライバ90の初期化を行うと述べたが、これは、使用しないレジスタアドレス00h〜14hのレジスタにデフォルト値をセットする送信処理となる。
ここで、上述のようにLEDドライバ90のレジスタアドレス15h〜2Chは、それぞれ出力端子96−1〜96−24に対応する点灯データ(階調値)が書き込まれるレジスタとされているが、レジスタアドレス00h〜14hの各レジスタは以下のようにデータが書き込まれる。
01h:8ビット中の3つのビットで1階調あたりのフェードインスピード、3つのビットでフェードアウトスピードの各設定データがセットされる。
02h:8ビット中の5ビットで赤LEDの電流値データがセットされる。
03h:8ビット中の5ビットで緑LEDの電流値データがセットされる。
04h:8ビット中の5ビットで青LEDの電流値データがセットされる。
05h:8ビット中の6つのビットで、出力端子96−1〜96−6のオン/オフ設定データがセットされる。
06h:8ビット中の6つのビットで、出力端子96−7〜96−12のオン/オフ設定データがセットされる。
07h:8ビット中の6つのビットで、出力端子96−13〜96−18のオン/オフ設定データがセットされる。
08h:8ビット中の6つのビットで、出力端子96−19〜96−24のオン/オフ設定データがセットされる。以上のレジスタアドレス05h〜08hのレジスタは、出力端子96−1〜96−24のそれぞれについてのオン/オフ設定部となる。
09h〜0Eh:それぞれのレジスタ(8ビット)に、4つの出力端子について、各2ビットで「PWM出力優先」「フェード出力優先」「強制オン/オフ出力優先」のいずれかが選択設定される。09h〜0Ehの6個のレジスタにより24個の出力端子96−1〜96−24に対応する。
0Fh〜11h:3つのレジスタ(合計24ビット)で、24個の出力端子96−1〜96−24のフェード機能の有効/無効を設定する。
12h〜14h:3つのレジスタ(合計24ビット)で、24個の出力端子96−1〜96−24の強制オン/オフ設定をする。
00h:0x00・・・PWM周期の初期設定
01h:0x00・・・フェードイン・フェードアウトのスロープなし
02h:0x1F・・・赤LED電流値の初期設定
03h:0x1F・・・緑LED電流値の初期設定
04h:0x1F・・・青LED電流値の初期設定
05h:0x77・・・出力端子96−1〜96−6のオン設定
06h:0x77・・・出力端子96−7〜96−12のオン設定
07h:0x77・・・出力端子96−13〜96−18のオン設定
08h:0x77・・・出力端子96−19〜96−24のオン設定
09h:0x00・・・PWM出力優先
0Ah:0x00・・・PWM出力優先
0Bh:0x00・・・PWM出力優先
0Ch:0x00・・・PWM出力優先
0Dh:0x00・・・PWM出力優先
0Eh:0x00・・・PWM出力優先
0Fh:0x00・・・フェード機能無効
10h:0x00・・・フェード機能無効
11h:0x00・・・フェード機能無効
12h:0x00・・・強制オン/オフ設定を全てオフ
13h:0x00・・・強制オン/オフ設定を全てオフ
14h:0x00・・・強制オン/オフ設定を全てオフ
図30に、LEDドライバ初期化処理の一例を示している。この処理は、割込みカウンタ=0〜3のときに呼び出される処理となる。
また各LEDドライバ90(w1〜w4、b1〜b5)に対して、数回(例えば4回)に分けて初期化を行う。例えば1回の1msタイマ割込処理のステップS205で、3個又は2個のLEDドライバ90に対して初期化を行うようにされる。
ステップS901で演出制御CPU200は、割込みカウンタの値(ケース0〜15のいずれか)に応じて処理分けを行う。ケース0〜3のいずれかであれば、初期化を行うLEDドライバ90を特定し、そのLEDドライバ90に対してステップS902以下の処理に進むことになる。ケース0〜3以外では、初期化は行わないためステップS902以降の処理は行われない。
さらに演出制御CPU200はステップS904で、データ設定開始レジスタアドレスを出力する。この場合、レジスタアドレス「00h」〜「14h」への書き込みとなるため、データ設定開始レジスタアドレス=00hとする。
そして演出制御CPU200はステップS905で、順次各レジスタアドレス「00h」〜「14h」に対応するデフォルト値のデータ送信を行う。この処理で、対象としているLEDドライバ90の各レジスタアドレス「00h」〜「14h」に上述のデフォルト値が書き込まれる。つまりそのLEDドライバ90は初期設定される。
以上が完了したら、ステップS906でイネーブル信号(ENABLE)をオフとし、ステップS907でスレーブアドレスを+1する。つまり次のLEDドライバ90を指定できる状態とする。そして1つのLEDドライバ90に対する初期化処理を終える。
図30は1つのLEDドライバ90に対する初期化処理として示したが、この図30の処理により、例えば9個の各LEDドライバ90(w1〜w4、b1〜b5)について順次1つずつ初期化を行っても良い。例えば1msタイマ割込処理のケース0のときにLEDドライバ90(w1,w2)、ケース1のときにLEDドライバ90(w3,w4)、ケース2のときにLEDドライバ90(b1,b2)、ケース3のときにLEDドライバ90(b3,b4,b5)として処理を割り当てることも可能である。
なお、例えば図25BのLED駆動データの出力の例のように、初期化する各LEDドライバ90のタイミングを割り当てるとする。
即ち、図25Bのケース12を、例えばケース0と考え、1msタイマ割込処理のステップS205のケース0では、枠ドライバ部61のLEDドライバ90(w1,w2,w3)と、盤ドライバ部62のLEDドライバ90(b1,b2,b3)について初期化データの送信を行う。LEDドライバ90のw1とb1、w2とb2、w3とb3に対する送信は同時的に行われる。
また、図25Bのケース13を、例えばケース1と考え、ケース1では、枠ドライバ部61のLEDドライバ90(w4)と、盤ドライバ部62のLEDドライバ90(b4,b5)に初期化データの送信を行う。LEDドライバ90のw4とb4に対する送信は同時的に行われる。
図25Bと同様とする例の場合、ケース0のときは、ドライバナンバ個数は「3」(つまり1つのシリアルデータ出力チャネルにつき3つのLEDドライバ90に送信を行う)であるため3回ループ処理する。ケース1の場合は、ドライバナンバ個数とは「2」となる(シリアルデータ出力チャネルch2は2つのLEDドライバ90に送信を行うため)。
そしてステップS953で演出制御CPU200は、シリアルデータ出力チャネルch1,ch2のシリアルデータDATAの出力として、最初の一送信単位(1バイト)のデータ送信、即ちこの場合は図26のシリアルデータ構造に示した先頭1バイトのスレーブアドレスを送信出力する。シリアルデータ出力チャネルch1,ch2については並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS954,S955で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
その一送信単位の送信を行ったら、ステップS957,S958で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
まずはレジスタアドレス(00h)への1バイトのデフォルトデータ送信を、シリアルデータ出力チャネルch1,ch2について並行して同時的に行う。そしてステップS960,S961で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
送信完了を確認したら、ステップS962でレジスタアドレス00h〜14hまでのデフォルトデータ送信完了が確認されるまで、1バイトずつ、ステップS959の送信を実行していく。従って、次はレジスタアドレス(01h)への1バイトのデフォルトデータ送信を、シリアルデータ出力チャネルch1,ch2について行う。さらにその送信確認後、レジスタアドレス(02h)へのデフォルトデータ送信が行われる。以降も、送信完了待機→レジスタアドレス(03h)へのデフォルトデータ送信→送信完了待機→レジスタアドレス(04h)へのデフォルトデータ送信→送信完了待機・・・→レジスタアドレス(14h)へのデフォルトデータ送信→送信完了待機という処理が行われていく。
ケース1の場合は、1回目のループ処理として、LEDドライバ90(w4)、LEDドライバ90(b4)について、ステップS952〜S964の処理が行われる。その後2回目のループ処理では、LEDドライバ90(b5)のみについてステップS952〜S964の処理が行われる。その2回のループ処理で図31のLEDドライバ初期化処理が完了する。
以上により図25Bに示したような、9個の各LEDドライバ90へのデフォルトデータの出力による初期化が実行される。なお、搭載されるLEDドライバ90の数や、1回の1msタイマ割込処理で送信するLEDドライバ90の数などが異なれば、当然ループ回数が異なる場合もある。
また以上の例は2つのシリアルデータ出力チャネルch1,ch2を用いる例で述べているが、3以上のシリアルデータ出力チャネルを利用する場合も、それらが並行して同時的にシリアルデータ(デフォルトデータ)送信が行われるようにすれば良い。
つまり出力端子96−1〜96−24についてのオン/オフ設定部であるレジスタアドレス05h〜08hに対して初期化処理により常時、上述のデフォルト値(=オンデータ)がセットされ、出力端子96−1〜96−24は全てオンとされ、さらにレジスタアドレス09h〜14hのデフォルト値設定により、PWM優先とされ、フェード機能、強制オン/オフ機能は無効化される。このため各LEDドライバ90は、階調値設定部であるレジスタアドレス15h〜2Chに書き込まれた階調値(点灯データの値)に基づくPWM制御を行って、出力端子96−1〜96−24からの階調に応じた電流量の発光駆動電流を流す状態となる。
これを演出制御CPU200側から見ると、0h〜Fhの点灯データにより、消灯、点灯、及び点灯時の発光輝度制御の全てが実行できるということである。
これにより演出制御CPU200では、LED発光制御を簡易な点灯データ設定で実現可能であり、処理負担は少なく、また制御のために必要なデータ容量も点灯データのみと少なくでき、演出制御ROM201等の容量消費の低減も実現される。
なお上記例では、実施の形態ではオン/オフ設定部であるレジスタアドレス05h〜08hが常時オン設定とする処理として、16ms毎の初期化処理を行うが、16階調のデータを送信するのみで消灯から階調制御された点灯までを制御するには、あくまでレジスタアドレス05h〜08hが常時オン設定とされていればよい。従って例えば演出制御CPU200は、例えば電源投入時の最初に初期化処理を行ってレジスタアドレス05h〜08hをオン設定とするのみでもよい。これもオン/オフ設定部が常時オン設定となる処理の一例である。
続いて、第2の実施の形態としてのドライバ構成を説明する。なお第1の実施の形態と同様となる構成や処理については省略し、異なる点のみ説明する。
図32には、第1の実施の形態における図4と同様の形式で、演出制御部51(演出制御CPU200)と、LEDドライバ130の接続構成を示した。
なお、この例は、演出制御CPU200は3つのシリアルデータ出力チャネルch1,ch2,ch3を使用する例とした。LEDドライバ130としては、3系統(枠ドライバ部61、盤ドライバ部62A、62B)設けられる。
シリアルデータ出力チャネルch1によって、枠ドライバ部61としての複数のLEDドライバ130に対するシリアルデータ送信が行われる。
シリアルデータ出力チャネルch2によって、盤ドライバ部62Aとしての複数のLEDドライバ130に対するシリアルデータ送信が行われる。
シリアルデータ出力チャネルch3によって、盤ドライバ部62Bとしての複数のLEDドライバ130に対するシリアルデータ送信が行われる。
ラッチ信号LATCH、クロック信号CLK、イネーブル信号ENABLE線は、枠ドライバ部61(或いは盤ドライバ部62A、62B)を構成する複数のLEDドライバ130に対して並列に供給される。一方、シリアルデータDATAは、枠ドライバ部61(或いは盤ドライバ部62A、62B)を構成する複数のLEDドライバ130のうちの先頭のLEDドライバ130に供給され、順次後段のLEDドライバ130に転送していくようにされる。
即ち1つの系統内の各LEDドライバ130は、シリアルデータDATAの入出力が順次直列接続されており、演出制御CPU200からのシリアルデータDATAは、1つの系統内の先頭のLEDドライバ130から終端のLEDドライバ130に順次転送され、各LEDドライバ130は、演出制御CPU200からのラッチ信号に基づいて、シリアルデータDATAを取り込む構成とされている。
従って1つのLEDドライバ130によっては、最大16系列のLED駆動電流を出力することができる。1つの「系列」とは、1つの電流出力端子に対して直列又は並列で接続される1又は複数のLEDの群を指している。
枠ドライバ部61におけるLEDドライバ130の数は、枠側に配置されるLED系列数(装飾ランプ20wの系列数)によって決められる。
また盤ドライバ部62A、62BにおけるLEDドライバ130の数は、盤側に配置されるLED系列数(装飾ランプ20bの系列数)によって決められる。
LEDドライバ130は、16ビットシフトレジスタ131、ラッチ部132、出力ゲート部133及び定電流出力端子139−1〜139−16を備える。
定電流出力端子139−1〜139−16の全部(又は一部)には16系列のLED120が接続される。なお、図は簡略化して1系列の定電流出力端子139に1つのLED120が接続された状態を示しているが、1系列の定電流出力端子139に、複数のLEDが接続される構成(例えば直列接続)も当然あり得る。
なお、各系統の先頭のLEDドライバ130の端子134には、演出制御CPU200からのシリアルデータDATAが供給される。各系統の2つ目以降のLEDドライバ130の端子134は、1つ前のLEDドライバ130の端子136が接続される。
シフトレジスタ131は例えば16段のDフリップフロップ回路から成り、クロック信号CLKのタイミングで、端子134からのシリアルデータDATAを取り込むと共に、各Dフリップフロップ回路に保持していたデータを後段にシフトさせていく。なお、16段目のDフリップフロップ回路の出力は、端子136から、次のLEDドライバ130の端子134から、そのシフトレジスタ131に供給される。
ラッチ部132でラッチされた16ビットのデータは、出力ゲート部133に供給される。
なお、各系統のLEDドライバ130は、シリアルデータDATAが順次転送される構成をとっている。演出制御CPU200は、終端のLEDドライバ130に対するLED駆動データ(16ビット)、その前のLEDドライバ130に対するLED駆動データ(16ビット)・・・先頭のLEDドライバ130に対するLED駆動データ(16ビット)を順次連続して出力する。そして先頭のLEDドライバ130に対する16ビットのLED駆動データを転送したタイミングで、系統内の全LEDドライバ130に対して並列にラッチ信号LATCHを出力することで、各LEDドライバ130は、自己に供給された16ビットのLED駆動データをラッチ部132に取り込むことができる。
このような構成により、各LEDドライバ130は、接続された最大16系統のLED120を駆動する。
この第2の実施の形態としてのLED出力処理を図34で説明する。
第1の実施の形態で述べた場合と同様、LEDデータ更新処理で生成されたLED駆動データが、所定のタイミングで各LEDドライバ130に出力される。
次にステップS852で演出制御CPU200は、全シリアルデータ出力チャネルch1,ch2,ch3のラッチ信号LATCHをオフとする。さらにステップS853で全シリアルデータ出力チャネルch1,ch2,ch3のイネーブル信号ENABLEをオンとする。
説明上、仮に、LEDドライバ130の数が、枠ドライバ部61は5個、盤ドライバ部62Aは3個、盤ドライバ部62Bは6個であるとする。つまりシリアルデータ出力チャネルch1は5個のLEDドライバ130に送信を行い、シリアルデータ出力チャネルch2は3個のLEDドライバに送信を行い、シリアルデータ出力チャネルch3は6個のLEDドライバ130に送信を行うものとする。
なお、送信データレジスタへの書き込みは8ビットずつ行われる一方、1つのLEDドライバ130には16ビットのデータを送信する。従って1つのLEDドライバ130に対して2回の送信が必要となる。従って送信データレジスタへの書込は、シリアルデータ出力チャネルch1では10回、シリアルデータ出力チャネルch2では6回、シリアルデータ出力チャネルch3では12回となる。
そしてループ処理LP4としては、最もLEDドライバ130の数の多い(6個)、シリアルデータ出力チャネルch3の送信回数(=12回)だけ、ループすることとなる。
また略同時に、ステップS855でシリアルデータ出力チャネルch2のシリアルデータDATAの出力(送信データレジスタへの8ビットの書き込み)を行い、さらに略同時にステップS856でシリアルデータ出力チャネルch3のシリアルデータDATAの出力(送信データレジスタへの8ビットの書き込み)を行う。
このように各シリアルデータ出力チャネルch1,ch2,ch3では、それぞれの系統のシリアルデータDATA(16ビット×LEDドライバ数)の送信が、同時に実行される。
そしてステップS857,S858,S859で演出制御CPU200は、各シリアルデータ出力チャネルch1,ch2,ch3におけるシリアルデータDATAの送信完了を待機する。
送信完了となったら、再びステップS854,S855,S856の処理を行う。
従ってこの例では、シリアルデータ出力チャネルch1,ch2については、完了後のループ回数目ではステップS854,S855のシリアルデータ出力は行わない場合が生ずる。
なお、実際のシリアルデータ送信中以外は、シフトレジスタ131でのデータシフトが行われないようにクロック信号CLKの制御(例えばマスク等)を行うことは当然である。
この時点で、イネーブル信号ENABLEはオンである。例えば各LEDドライバ130の出力ゲート部133は、端子138からのイネーブル信号ENABLEがオフの場合に、ラッチ部132にラッチされたLED駆動データにより定電流出力端子139−1〜139−16を駆動するものとされている。そこで演出制御CPU200はステップS862でイネーブル信号ENABLEをオフとする。これによって、各LEDドライバ130は、今回書き込まれたLED駆動データに基づいて、接続されたLED120の発光駆動を行うこととなる。
そして当該送信の完了後、各LEDドライバ130にラッチを実行させる。
これにより全体のシリアルデータ送信動作に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
(ST1)ch1のシリアルデータ送信(送信データレジスタへの書込)
(ST2)ch1送信出力完了待機
・・・以上を所要回数ループ
(STx)ch1ラッチ信号LATCHオン
(STx+1)ch2のシリアルデータ送信(送信データレジスタへの書込)
(STx+2)ch2送信出力完了待機
・・・以上を所要回数ループ
(STy)ch2ラッチ信号LATCHオン
(STy+1)ch3のシリアルデータ送信(送信データレジスタへの書込)
(STx+2)ch3送信出力完了待機
・・・以上を所要回数ループ
(STz)ch3ラッチ信号LATCHオン
というように行っていた。
この場合、シリアルデータ出力チャネルch1,ch2,CH3のそれぞれで待ち時間が発生し、送信処理効率が悪い。
これに対して本実施の形態では、
(S854,S855,S856)ch1、ch2、ch3からシリアルデータ送信開始
(S857,S858,S859)ch1、ch2、ch3の送信出力完了待機
(S860)全チャネルラッチ信号LATCHオン
というように、同時的に両シリアルデータ出力チャネルch1,ch2,ch3での送信処理を行うようにすることで、処理が効率化される。
従って最もLEDドライバ130の数の多い駆動信号出力手段へのシリアルデータ転送完了までが全体の待機時間となる。即ち、上記例では最もLEDドライバ130の数が多いシリアルデータ出力チャネルch3に必要な時間内で、全てのシリアルデータ出力チャネルch1,ch2,ch3へのデータ送信が完了できる。
これにより、個別の駆動信号出力手段への出力及び待機を行うことに比べて、シリアルデータ送信に要する全体の時間は著しく短縮できる。
また図34では、ステップS857〜S859の全シリアルデータ出力チャネルでの送信完了確認後に、ステップS860で全系統のラッチを実行させるものとしたが、実際には、シリアルデータ出力が完了したシリアルデータ出力チャネルからラッチオンとしていっても良い。
このような構成により、枠ドライバ部61のLEDドライバ90はすべて枠側の装飾ランプ20wに対応し、また盤ドライバ部62A、62BのLEDドライバ90はすべて盤側の装飾ランプ20bに対応することとなり、これにより配線の容易化、効率化、演出制御設定の容易性などを実現できる。
以上実施の形態について説明してきたが本発明は実施の形態で挙げた例に限らず多様な変形例や適用例が考えられる。
LED等による装飾ランプ部63,64としては枠側に1系統(1つのシリアルデータ出力チャネル)、盤側に1系統又は2系統の例を挙げたが、もちろんこれに限られない。枠側の装飾ランプ部63について複数系統を設けても良いし、盤側の装飾ランプ部64において3系統以上を設けても良い。
また1つの系統に盤側の装飾ランプ20bと枠側の装飾ランプ20wが混在していてもよい。
また本発明はパチンコ遊技機1のような弾球遊技機に適用する例を示したが、回胴式遊技機(いわゆるスロット機)にも適用できる。
2 前枠
3 遊技盤
3a 遊技領域
4 外枠
5 ガラス扉
6 軸支機構
7 操作パネル
8 上受け皿ユニット
9 下受け皿ユニット
10 発射操作ハンドル
11 演出スイッチ
12 演出ボタン
13 十字キー
14 球貸しボタン
15 カード返却ボタン
20w,20b 装飾ランプ
25 スピーカ
31 球誘導レール
32M 主液晶表示装置
32S 副液晶表示装置
33 図柄表示部
41 上始動口
42 普通変動入賞装置
42a 下始動口
43 一般入賞口
44 ゲート
45 第1特別変動入賞装置
46 第2特別変動入賞装置
50 主制御基板50
51 演出制御基板51
52 液晶制御基板
53 払出制御基板
54 発射制御基板
58 電源基板
59 スピーカ部
60 操作部
61 枠ドライバ部
62 盤ドライバ部
63,64 装飾ランプ部
90,130 LEDドライバ
120 LED
200 演出制御CPU
201 演出制御ROM
202 演出制御RAM
Claims (1)
- 遊技に付随して演出動作を行う複数の演出手段と、
それぞれが、供給された演出駆動データに応じた駆動信号を接続された演出手段に出力して該演出手段の動作を実行させる、第1系統と第2系統の駆動信号出力手段と、
上記演出駆動データを含むシリアルデータを上記第1系統と第2系統の駆動信号出力手段に供給する演出制御手段と、
を有し、
上記演出制御手段は、
上記第1系統の駆動信号出力手段に対して、上記演出制御手段の送信データレジスタのビット数である一送信単位の上記シリアルデータを出力し、その出力が完了したことを確認した上で次の一送信単位のシリアルデータを出力する第1シリアル出力処理と、
上記第1シリアル出力処理により一送信単位の上記シリアルデータを出力してから、その一送信単位の上記シリアルデータの出力の完了を待機することなく、上記第2系統の駆動信号出力手段に対して一送信単位の上記シリアルデータを出力する第2シリアル出力処理とを行い、
上記演出制御手段は、
上記第1系統の駆動信号出力手段の1つのドライバ回路と、上記第2系統の駆動信号出力手段の1つのドライバ回路とを特定し、
上記第1系統の駆動信号出力手段と、上記第2系統の駆動信号出力手段のそれぞれに対して、演出駆動データを取得する前記特定したドライバ回路を指定するスレーブアドレス、及びスレーブアドレスで指定されるドライバ回路に設定される各演出手段の演出態様を指定する各演出駆動データを、一送信単位づつ出力する動作を行うことで、スレーブアドレスによって指定する各ドライバ回路に演出駆動データが取得されるようにした遊技機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012211353A JP6313536B2 (ja) | 2012-09-25 | 2012-09-25 | 遊技機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012211353A JP6313536B2 (ja) | 2012-09-25 | 2012-09-25 | 遊技機 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017027156A Division JP6377194B2 (ja) | 2017-02-16 | 2017-02-16 | 遊技機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014064693A JP2014064693A (ja) | 2014-04-17 |
JP6313536B2 true JP6313536B2 (ja) | 2018-04-18 |
Family
ID=50741704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012211353A Active JP6313536B2 (ja) | 2012-09-25 | 2012-09-25 | 遊技機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6313536B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5953524B2 (ja) * | 2012-10-11 | 2016-07-20 | 株式会社オリンピア | 遊技機 |
JP5938627B2 (ja) * | 2014-05-09 | 2016-06-22 | 株式会社サンセイアールアンドディ | 遊技機 |
JP6383931B2 (ja) * | 2014-10-20 | 2018-09-05 | 株式会社オリンピア | 遊技機 |
JP6198705B2 (ja) * | 2014-10-23 | 2017-09-20 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP6310380B2 (ja) * | 2014-10-23 | 2018-04-11 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP6118302B2 (ja) * | 2014-10-23 | 2017-04-19 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP6200399B2 (ja) * | 2014-10-23 | 2017-09-20 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP2016097214A (ja) * | 2014-11-26 | 2016-05-30 | 京楽産業.株式会社 | 遊技機 |
JP2016097213A (ja) * | 2014-11-26 | 2016-05-30 | 京楽産業.株式会社 | 遊技機 |
JP7166597B2 (ja) | 2018-07-10 | 2022-11-08 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP7166596B2 (ja) | 2018-07-10 | 2022-11-08 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP7166595B2 (ja) | 2018-07-10 | 2022-11-08 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP6713239B2 (ja) * | 2019-01-16 | 2020-06-24 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
JP6671650B2 (ja) * | 2019-04-23 | 2020-03-25 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4777009B2 (ja) * | 2005-08-08 | 2011-09-21 | 株式会社三共 | 遊技機 |
JP4861276B2 (ja) * | 2007-09-19 | 2012-01-25 | 株式会社藤商事 | 遊技機 |
JP2009136598A (ja) * | 2007-12-10 | 2009-06-25 | Daito Giken:Kk | 遊技台 |
JP2011110315A (ja) * | 2009-11-30 | 2011-06-09 | Sansei R&D:Kk | 遊技機 |
-
2012
- 2012-09-25 JP JP2012211353A patent/JP6313536B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014064693A (ja) | 2014-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5748720B2 (ja) | 遊技機 | |
JP5919153B2 (ja) | 遊技機 | |
JP6313536B2 (ja) | 遊技機 | |
JP6147801B2 (ja) | 遊技機 | |
JP5748719B2 (ja) | 遊技機 | |
JP6163226B2 (ja) | 遊技機 | |
JP5975584B2 (ja) | 遊技機 | |
JP6039002B2 (ja) | 遊技機 | |
JP6283713B2 (ja) | 遊技機 | |
JP5748718B2 (ja) | 遊技機 | |
JP6173668B2 (ja) | 遊技機 | |
JP6377194B2 (ja) | 遊技機 | |
JP6328728B2 (ja) | 遊技機 | |
JP6059744B2 (ja) | 遊技機 | |
JP6039001B2 (ja) | 遊技機 | |
JP5963628B2 (ja) | 遊技機 | |
JP6489553B2 (ja) | 遊技機 | |
JP6404291B2 (ja) | 遊技機 | |
JP6560502B2 (ja) | 遊技機 | |
JP2016140600A (ja) | 遊技機 | |
JP2016140604A (ja) | 遊技機 | |
JP2016140603A (ja) | 遊技機 | |
JP6059745B2 (ja) | 遊技機 | |
JP2016193240A (ja) | 遊技機 | |
JP2016140609A (ja) | 遊技機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150617 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160719 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170216 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20170222 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20170331 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180119 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180323 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6313536 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |