JP5738334B2 - Game machine - Google Patents
Game machine Download PDFInfo
- Publication number
- JP5738334B2 JP5738334B2 JP2013026375A JP2013026375A JP5738334B2 JP 5738334 B2 JP5738334 B2 JP 5738334B2 JP 2013026375 A JP2013026375 A JP 2013026375A JP 2013026375 A JP2013026375 A JP 2013026375A JP 5738334 B2 JP5738334 B2 JP 5738334B2
- Authority
- JP
- Japan
- Prior art keywords
- sound
- scenario
- data
- information
- channel
- 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 520
- 230000008569 process Effects 0.000 claims description 515
- 230000000694 effects Effects 0.000 claims description 397
- 238000004519 manufacturing process Methods 0.000 claims description 62
- 230000004044 response Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 description 274
- 230000005284 excitation Effects 0.000 description 139
- 102100020870 La-related protein 6 Human genes 0.000 description 76
- 108050008265 La-related protein 6 Proteins 0.000 description 76
- 239000004973 liquid crystal related substance Substances 0.000 description 55
- 230000008859 change Effects 0.000 description 44
- 230000007704 transition Effects 0.000 description 39
- 230000002441 reversible effect Effects 0.000 description 26
- 238000001514 detection method Methods 0.000 description 25
- 238000012217 deletion Methods 0.000 description 24
- 230000037430 deletion Effects 0.000 description 24
- 238000006243 chemical reaction Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 12
- 238000005034 decoration Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 239000011521 glass Substances 0.000 description 12
- 230000005856 abnormality Effects 0.000 description 10
- 238000012508 change request Methods 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 8
- 238000009877 rendering Methods 0.000 description 8
- 238000005562 fading Methods 0.000 description 7
- 239000000758 substrate Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000004397 blinking Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 101100364301 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rsv1 gene Proteins 0.000 description 4
- 101100364302 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rsv2 gene Proteins 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 101000739146 Homo sapiens Protein SFI1 homolog Proteins 0.000 description 3
- 102100037271 Protein SFI1 homolog Human genes 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 244000145845 chattering Species 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000010304 firing Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002250 progressing effect Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 102100036464 Activated RNA polymerase II transcriptional coactivator p15 Human genes 0.000 description 2
- 101000713904 Homo sapiens Activated RNA polymerase II transcriptional coactivator p15 Proteins 0.000 description 2
- 229910004444 SUB1 Inorganic materials 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100365603 Phytophthora infestans (strain T30-4) SFI2 gene Proteins 0.000 description 1
- 229910018497 SFO2 Inorganic materials 0.000 description 1
- 101100267932 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) YRB1 gene Proteins 0.000 description 1
- 241000722921 Tulipa gesneriana Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004091 panning Methods 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
- 238000003825 pressing Methods 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Description
本発明はパチンコ遊技機、スロット遊技機などの遊技機に係り、特には遊技機における演出動作の制御処理に関する。 The present invention relates to a gaming machine such as a pachinko gaming machine or a slot gaming machine, and more particularly to a control process of a rendering operation in the gaming machine.
パチンコ遊技機、スロット遊技機等では、LED(Light Emitting Diode)等を用いた発光部による点灯・点滅動作やスピーカによる音出力、遊技盤上に設けた可動体役物の駆動などにより、遊技に付随した演出を行ったり、或いは発光部の点灯・点滅動作やスピーカによる音出力によりエラー告知、案内表示等を行っている。 In pachinko machines, slot machines, etc., it is possible to play games by lighting / flashing operations using light emitting parts using LEDs (Light Emitting Diodes), sound output from speakers, and driving of movable objects on the game board. An accompanying presentation is performed, or error notification, guidance display, etc. are performed by lighting / flashing operation of a light emitting unit or sound output by a speaker.
遊技機では、本来の遊技動作の制御に加えて多様な演出制御、エラー制御等が行われるが、このためにマイクロコンピュータの制御負荷や必要なメモリ容量が増大する傾向にある。そこで本発明では、多彩な演出を実現するうえで効率的な処理を行い、なるべくメモリ容量を削減する手法を提案する。 In the gaming machine, various presentation control and error control are performed in addition to the control of the original game operation. For this reason, the control load of the microcomputer and the necessary memory capacity tend to increase. In view of this, the present invention proposes a technique for performing efficient processing for realizing various effects and reducing the memory capacity as much as possible.
本発明の遊技機は、遊技動作を統括的に制御すると共に、遊技動作に関連する制御コマンドを出力する主制御手段と、遊技動作に関連する演出の実行を制御する演出制御手段と、を備え、前記演出制御手段は、演出デバイスの動作を規定する演出データが実行順に複数記憶されるとともに、最終位置に終了情報が記憶された複数種類の演出シナリオテーブルを有し、制御コマンドに基づいて、前記複数種類の演出シナリオテーブルのうちのいずれかを指定する指定情報を、演出データを記憶できるチャネルが複数用意されているワークエリアの空きチャネルに登録し、前記ワークエリアに登録された前記指定情報に対応する演出シナリオテーブルに記憶されている演出データを順次参照して、処理対象となる演出データに応じた処理を実行するとともに、演出シナリオテーブルに記憶された前記終了情報が処理対象となったことに応じて、該指定情報を前記ワークエリアから削除するように構成されている。
A gaming machine according to the present invention includes a main control unit that controls a game operation in an integrated manner, outputs a control command related to the game operation, and an effect control unit that controls execution of an effect related to the game operation. The production control means has a plurality of production scenario tables in which a plurality of production data defining the operation of the production device are stored in the order of execution and end information is stored at the final position, and based on the control command, The designation information for designating one of the plurality of types of production scenario tables is registered in an empty channel of a work area in which a plurality of channels capable of storing production data are prepared, and the designation information registered in the work area The effect data stored in the effect scenario table corresponding to is sequentially referred to and the process corresponding to the effect data to be processed is executed. Together with the completion information stored in the effect scenario table in response to to be processed, and is configured to delete the specified information from the work area.
このような本発明においては、処理がメインテーブルの終了コードの行に達した際に、即座にワークエリアからのシナリオ削除処理を行うことになり、ワークエリアの有効利用や処理の効率化、処理負担の削減を図ることができる。
また、処理が終了したら即座にそのシナリオチャネルが空きチャネルになることになるため、不要な登録を継続させることもなく、新たなシナリオの登録にもすぐに使用できる。
In the present invention, when the process reaches the end code line of the main table, the scenario deletion process is immediately performed from the work area. The burden can be reduced.
Moreover, since the scenario channel becomes an empty channel as soon as the processing is completed, unnecessary registration is not continued and it can be used immediately for registration of a new scenario.
本発明によれば、遊技機において演出制御処理の効率化と、メモリの必要容量の削減を実現できる。 According to the present invention, it is possible to realize the efficiency of the presentation control process and the reduction of the required memory capacity in the gaming machine.
以下、本発明に係る遊技機の実施の形態としてパチンコ遊技機を例に挙げ、次の順序で説明する。
<1.パチンコ遊技機の構造>
<2.パチンコ遊技機の制御構成及び実施の形態のドライバ構成>
<3.主制御部の処理>
<4.演出制御部の処理>
[4−1:メイン処理]
[4−2:1msタイマ割込処理]
[4−3:コマンド解析処理]
[4−4:シナリオ登録・削除処理]
[4−5:シナリオ更新処理]
[4−6:LED駆動データ更新処理]
[4−7:音の登録処理]
[4−8:音再生処理]
[4−9:モータの登録処理]
[4−10:モータ動作更新処理]
[4−11:モータ出力処理]
[4−12:モータ押し込み動作]
<5.まとめ及び変形例>
Hereinafter, a pachinko gaming machine will be exemplified as an embodiment of a gaming machine according to the present invention, and will be described in the following order.
<1. Pachinko machine structure>
<2. Control configuration of pachinko gaming machine and driver configuration of embodiment>
<3. Processing of main control unit>
<4. Processing of production control unit>
[4-1: Main processing]
[4-2: 1ms timer interrupt processing]
[4-3: Command analysis processing]
[4-4: Scenario registration / deletion processing]
[4-5: Scenario update processing]
[4-6: LED drive data update process]
[4-7: Sound registration processing]
[4-8: Sound reproduction processing]
[4-9: Motor registration process]
[4-10: Motor operation update processing]
[4-11: Motor output processing]
[4-12: Motor push-in operation]
<5. Summary and Modification>
<1.パチンコ遊技機の構造>
まず図1、図2を参照して、本発明の実施の形態としてのパチンコ遊技機1の構成を概略的に説明する。
図1は実施の形態のパチンコ遊技機1の外観を示す正面側の斜視図であり、図2は遊技盤の正面図である。
図1,図2に示すパチンコ遊技機1は、主に「枠部」と「遊技盤部」から成る。
「枠部」は以下説明する前枠2,外枠4、ガラス扉5、操作パネル7を有して構成される。「遊技盤部」は図2の遊技盤3から成る。以下の説明上で、「枠部」「枠側」とは前枠2,外枠4、ガラス扉5、操作パネル7の総称とする。また「盤部」「盤側」とは遊技盤3を示す。
<1. Pachinko machine structure>
First, with reference to FIG. 1 and FIG. 2, the structure of the
FIG. 1 is a front perspective view showing the appearance of a
The
The “frame portion” includes a
図1に示すようにパチンコ遊技機1は、木製の外枠4の前面に額縁状の前枠2が開閉可能に取り付けられている。図示していないが、この前枠2の裏面には遊技盤収納フレームが形成されており、その遊技盤収納フレーム内に図2に示す遊技盤3が装着される。これにより遊技盤3の表面に形成した遊技領域3aが前枠2の開口部2aから図1の遊技機前面側に臨む状態となる。
なお遊技領域3aの前側には、透明ガラスを支持したガラス扉5が設けられており、遊技領域3aは透明ガラスを介して前面の遊技者側に表出される。
As shown in FIG. 1, the
A
ガラス扉5は軸支機構6により前枠2に対して開閉可能に取り付けられている。そしてガラス扉5の所定位置に設けられた図示しない扉ロック解除用キーシリンダを操作することで、前枠2に対するガラス扉5のロック状態を解除し、ガラス扉5を前側に開放できる構造とされている。また扉ロック解除用キーシリンダの操作によっては、外枠4に対する前枠2のロック状態も解除可能な構成とされている。
またガラス扉5の前面側には、枠側の発光手段として装飾ランプ20wが各所に設けられている。装飾ランプ20wは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
The
On the front side of the
ガラス扉5の下側には操作パネル7が設けられている。この操作パネル7も、図示しない軸支機構により、前枠2に対して開閉可能とされている。
操作パネル7には、上受け皿ユニット8、下受け皿ユニット9、発射操作ハンドル10が設けられている。
An
The
上受け皿ユニット8には、弾球に供される遊技球を貯留する上受け皿8aが形成されている。下受け皿ユニット9には、上受け皿8aに貯留しきれない遊技球を貯留する下受け皿9aが形成されている。
また上受け皿ユニット8には、上受け皿8aに貯留された遊技球を下受け皿9a側に抜くための球抜きボタン16が設けられている。下受け皿ユニット9には、下受け皿9aに貯留された遊技球を遊技機下方に抜くための球抜きレバー17が設けられている。
また上受け皿ユニット8には、図示しない遊技球貸出装置に対して遊技球の払い出しを要求するための球貸しボタン14と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン15とが設けられている。
さらに上受け皿ユニット8には、パトライトスイッチ11、演出ボタン12、十字キー13が設けられている。パトライトスイッチ11や演出ボタン12は、所定の入力受付期間中に内蔵ランプが点灯されて操作可能となり、その内蔵ランプ点灯時に押下することにより演出に変化をもたらすことができる押しボタンとされる。また十字キー13は遊技者が演出状況に応じた操作や演出設定等のための操作を行う操作子である。
The
The
Further, the
Further, the
発射操作ハンドル10は操作パネル7の右端部側に設けられ、遊技者が弾球のために図3に示す発射装置32を作動させる操作子である。
また前枠2の上部の両側と、発射操作ハンドル10の近傍には、演出音を音響出力するスピーカ25が設けられている。
The firing operation handle 10 is provided on the right end side of the
In addition,
次に図2を参照して、遊技盤3の構成について説明する。遊技盤3は、略正方形状の木製合板または樹脂板を主体として構成されている。この遊技盤3には、発射された遊技球を案内する球誘導レール31が盤面区画部材として環状に装着されており、この球誘導レール31に取り囲まれた略円形状の領域が遊技領域3aとなっている。
Next, the configuration of the
この遊技領域3aの略中央部には、主液晶表示装置32M(LCD:Liquid Crystal Display)が設けられ、また主液晶表示装置32Mの右側には副液晶表示装置32Sが設けられている。
主液晶表示装置32Mでは、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。副液晶表示装置32Sも、同様に各種演出に応じた表示が行われる。
A main liquid
In the main liquid
また遊技領域3a内には、主液晶表示装置32M及び副液晶表示装置32Sの表示面の周囲を囲むように、センター飾り35Cが設けられている。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から主液晶表示装置32M及び副液晶表示装置32Sの表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
A
The
また左遊技領域3bの下方には、左下飾り35Lが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また主液晶表示装置32Mの下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
In addition, a lower
Similarly, a lower
In the
Further, a
Although not shown in the drawing, the
遊技領域3aの右上縁付近には、複数個のLEDを配置して形成されたドット表示器による図柄表示部33が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、上述した主液晶表示装置32Mは、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
In the vicinity of the upper right edge of the
In the
The main liquid
センター飾り35Cの下方には、上始動口41(第1の特別図柄始動口)を有する入賞装置が設けられ、さらにその下方には下始動口42a(第2の特別図柄始動口)を備える普通変動入賞装置42が設けられている。
上始動口41及び下始動口42aの内部には、遊技球の通過を検出する検出センサ(図3に示す上始動口センサ71,下始動口センサ72)が形成されている。
A winning device having an upper start port 41 (first special symbol start port) is provided below the
Inside the upper start opening 41 and the lower start opening 42a, detection sensors (upper
上始動口41は、図柄表示部33における第1特別図柄の変動表示動作の始動条件に係る入賞口で、始動口開閉手段(始動口を開放または拡大可能にする手段)を有しない入賞率固定型の入賞装置となっている。
The
下始動口42aを有する普通変動入賞装置42は、始動口開閉手段により始動口の遊技球の入賞率を変動可能な入賞率変動型の入賞装置として構成されている。即ち下始動口42aを開放または拡大可能にする左右一対の可動翼片(可動部材)42bを備えた、いわゆる電動チューリップ型の入賞装置である。
この普通変動入賞装置42の下始動口42aは、図柄表示部33における第2特別図柄の変動表示動作の始動条件に係る入賞口である。そして、この下始動口42aの入賞率は可動翼片42bの作動状態に応じて変動する。即ち可動翼片42bが開いた状態では、入賞が容易となり、可動翼片42bが閉じた状態では、入賞が困難又は不可能となるように構成されている。
The normal
The lower start opening 42 a of the normal
また普通変動入賞装置42の左右には、一般入賞口43が複数個設けられている。各一般入賞口42の内部には、遊技球の通過を検出する検出センサ(図3に示す一般入賞口センサ74)が形成されている。
また右遊技領域3cの下部側には、遊技球が通過可能なゲート(特定通過領域)からなる普通図柄始動口44が設けられている。この普通図柄始動口44は、図柄表示部33における普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出するセンサ(図3に示すゲートセンサ73)が形成されている。
In addition, a plurality of general winning
In addition, a normal
右遊技領域3c内の普通図柄始動口44から普通変動入賞装置42へかけての流下経路途中には第1特別変動入賞装置45(特別電動役物)が設けられている。
第1特別変動入賞装置45は、突没式の開放扉45bにより第1大入賞口45aを閉鎖/開放する構造とされている。また、その内部には第1大入賞口45aへの遊技球の通過を検出するセンサ(図3の第1大入賞口センサ75)が形成されている。
第1大入賞口45aの周囲は、右下飾り35Rが遊技盤3の表面から膨出した状態となっており、その膨出部分の上辺及び開放扉45bの上面が右流下経路3cの下流案内部を形成している。従って、開放扉45bが盤内部側に引き込まれることで、下流案内部に達した遊技球は容易に第1大入賞口45に入る状態となる。
A first special variable winning device 45 (special electric accessory) is provided along the flow path from the normal
The first special variable winning
The lower
また普通変動入賞装置42の下方には、第2特別変動入賞装置46(特別電動役物)が設けられている。第2特別変動入賞装置46は、下部が軸支されて開閉可能な開放扉46bにより、その内側の第2大入賞口46aを閉鎖/開放する構造とされている。また、その内部には第2大入賞口46aへの遊技球の通過を検出するセンサ(図3の第2大入賞口センサ76)が形成されている。
開放扉46bが開かれることで第2大入賞口46aが開放される。この状態では、左遊技領域3b或いは右遊技領域3cを流下してきた遊技球は、高い確率で第2大入賞口50に入ることとなる。
A second special variable winning device 46 (special electric accessory) is provided below the normal
The second
以上のように盤面の遊技領域には、入賞口として上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43が形成されている。
本実施の形態のパチンコ遊技機1においては、これら入賞口のうち、普通図柄始動口44以外の入賞口への入賞があった場合には、各入賞口別に設定された入賞球1個当りの賞球数が遊技球払出装置55(図3参照)から払い出される。
例えば、上始動口41および下始動口42aは3個、第1大入賞口45a、第2大入賞口46aは13個、一般入賞口43は10個などと賞球数が設定されている。
なお、これらの各入賞口に入賞しなかった遊技球は、アウト口48を介して遊技領域3aから排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、ゲートを遊技球が通過したりすることをいう。実際には入賞口ごとに形成されたセンサ(各入賞検出スイッチ)により遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。
As described above, the
In the
For example, the upper start opening 41 and the lower start opening 42a are set to three, the first big winning
Note that the game balls that have not won the prize holes are discharged from the
Here, “winning” means that the winning opening takes the game ball inside, or the game ball passes through the gate. Actually, when a game ball is detected by a sensor (each winning detection switch) formed for each winning opening, it is treated that a “winning” has occurred in that winning opening. The game ball related to the winning is also referred to as “winning ball”.
以上のような盤面において、センター飾り35C、左下飾り35L、右下飾り35R、センターステージ35S、第1特別変動入賞装置45、第2特別変動入賞装置46、さらには図示していない可動体役物には、詳細には図示していないが各所に、盤側の発光手段として装飾ランプ20bが設けられている。
装飾ランプ20bは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
On the board as described above, the
The
<2.パチンコ遊技機の制御構成及び実施の形態のドライバ構成>
次に本実施の形態のパチンコ遊技機1の制御系の構成について説明する。図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施の形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、液晶制御基板52、払出制御基板53、発射制御基板54、電源基板58が設けられている。
<2. Control configuration of pachinko gaming machine and driver configuration of embodiment>
Next, the configuration of the control system of the
The
主制御基板50は、マイクロコンピュータ等が搭載され、パチンコ遊技機1の遊技動作全般に係る統括的な制御を行う。なお以下では、主制御基板50に搭載されたマイクロコンピュータ等を含めて主制御基板50の構成体を「主制御部50」と表記する。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
The
The
液晶制御基板52はマイクロコンピュータやビデオプロセッサ等が搭載され、演出制御部51からの表示制御コマンドを受けて、主液晶表示装置32M、副液晶表示装置32Sによる表示動作の制御を行う。
なお主液晶表示装置32M、副液晶表示装置32Sによる表示動作の制御を行う液晶制御基板として、主液晶制御基板、副液晶制御基板を独立して設けてもよい。
払出制御基板53は、パチンコ遊技機1に接続された遊技球払出装置55による賞球の払い出し制御を行う。
発射制御基板54は、遊技者のパチンコ遊技機1に設けられている発射装置56による遊技球の発射動作の制御を行う。
電源基板58は、外部電源(例えばAC24V)からAC/DC変換、さらにはDC/DC変換を行い、各部に動作電源電圧Vccを供給する。なお電源経路の図示は省略している。
The liquid
The main liquid crystal control substrate and the sub liquid crystal control substrate may be provided independently as the liquid crystal control substrate for controlling the display operation by the main liquid
The
The
The
まず主制御部50及びその周辺回路について述べる。
主制御部50は、CPU100(以下「主制御CPU100」と表記)を内蔵したマイクロプロセッサ、ROM101(以下「主制御ROM101」と表記)、RAM102(以下「主制御RAM102」と表記)を搭載し、マイクロコンピュータを構成している。
主制御CPU100は制御プログラムに基づいて、遊技の進行に応じた各種演算及び制御処理を実行する。
主制御ROM101は、主制御CPU100による遊技動作の制御プログラムや、遊技動作制御に必要な種々のデータを記憶する。
主制御RAM102は、主制御CPU100が各種演算処理に使用するワークエリアや、各種入出力データや処理データのバッファ領域として用いられる。
なお図示は省略したが、主制御部50は、各部とのインターフェース回路、特別図柄変動表示に係る抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC(Counter Timer Circuit)、主制御CPU100に割込み信号を与える割込コントローラ回路なども備えている。
First, the
The
The
The
The
Although not shown, the
主制御部50は、上述のように盤面の遊技領域の各入賞手段(上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43)に設けられるセンサの検出信号を受信する構成となっている。
即ち、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号が主制御部50に供給される。
なお、これらのセンサ(71〜76)は、入球した遊技球を検出する検出スイッチにより構成されるが、具体的にはフォトスイッチや近接スイッチなどの無接点スイッチや、マイクロスイッチなどの有接点スイッチで構成することができる。
As described above, the
That is, the detection signals of the upper
These sensors (71 to 76) are configured by detection switches that detect a game ball that has entered, but specifically, contactless switches such as photoswitches and proximity switches, and contact points such as microswitches. It can consist of switches.
主制御部50は、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号の受信に応じて、処理を行う。例えば抽選処理、図柄変動制御、賞球払出制御、演出制御コマンド送信制御、外部データ送信処理などを行う。
The
また主制御部50には、下始動口42の可動翼片42bを開閉駆動する普通電動役物ソレノイド77が接続され、主制御部50は遊技進行状況に応じて制御信号を送信して普通電動役物ソレノイド77の駆動動作を実行させ、可動翼片42bの開閉動作を実行させる。
さらに、主制御部50には、第1大入賞口45の開放扉45bを開閉駆動する第1大入賞口ソレノイド78と、第2大入賞口46の開放扉46bを開閉駆動する第2大入賞口ソレノイド79が接続されている。主制御部50は、いわゆる大当たり状況に応じて、第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79を駆動制御して、第1大入賞口45又は第2大入賞口46の開放動作を実行させる。
The
Further, the
また主制御部50には、図柄表示部33が接続されており、図柄表示部33に制御信号を送信して、各種図柄表示(LEDの消灯/点灯/点滅)を実行させる。これにより図柄表示部33における第1特別図柄表示部80、第2特別図柄表示部81、普通図柄表示部82での表示動作が実行される。
In addition, a
また主制御部50には、枠用外部端子基板57が接続される。主制御部50は、遊技進行に関する情報を、枠用外部端子基板57を介して図示しないホールコンピュータに送信可能となっている。遊技進行に関する情報とは、例えば大当り当選情報、賞球数情報、図柄変動表示実行回数情報などの情報である。ホールコンピュータとは、パチンコホールの遊技機を統括的に管理する管理コンピュータであり、遊技機外部に設置されている。
The
また主制御部50には、払出制御基板53が接続されている。払出制御基板53には、発射装置56を制御する発射制御基板54と、遊技球の払い出しを行う遊技球払出装置55が接続されている。
主制御部50は、払出制御基板53に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信する。払出制御基板53は当該制御コマンドに応じて遊技球払出装置55を制御し、遊技球の払い出しを実行させる。
また払出制御基板53は、主制御部50に対して、払い出し動作状態に関する情報(払出状態信号)を送信可能となっている。主制御部50側では、この払出状態信号によって、遊技球払出装置55が正常に機能しているか否かを監視する。具体的には、賞球の払い出し動作の際に、玉詰まりや賞球の払い出し不足といった不具合が発生したか否かを監視している。
In addition, a
The
The
また主制御部50は、特別図柄変動表示に関する情報を含む演出制御コマンドを、演出制御部51に送信する。なお、主制御部50から演出制御部51への演出制御コマンドの送信は一方向通信により実行されるようにしている。これは、外部からの不正行為による不正な信号が演出制御部51を介して主制御部50に入力されることを防止するためである。
The
続いて演出制御部51及びその周辺回路について説明する。
演出制御部51は、CPU200(以下「演出制御CPU200」と表記)を内蔵したマイクロプロセッサ、ROM201(以下「演出制御ROM201」と表記)、RAM202(以下「演出制御RAM202」と表記)を搭載し、マイクロコンピュータを構成している。
演出制御CPU200は演出制御プログラム及び主制御部50から受信した演出制御コマンドに基づいて、各種演出動作のための演算処理や各演出手段の制御を行う。演出手段とは、本実施の形態のパチンコ遊技機1の場合、主液晶表示装置32M、副液晶表示装置32S、装飾ランプ20w、20b、スピーカ59及び図示を省略した可動体役物となる。
演出制御ROM201は、演出制御CPU200による演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM202は、演出制御CPU200が各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域などとして用いられる。
なお図示は省略したが、演出制御部51は、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、演出制御CPU200に割込み信号を与える割込コントローラ回路なども備えている。
この演出制御部51の主な役割は、主制御部50からの演出制御コマンドの受信、演出制御コマンドに基づく演出の選択決定、主液晶表示装置32M、副液晶表示装置32S側への演出制御コマンドの送信、スピーカ25による出力音制御、装飾ランプ20w,20b(LED)の発光制御、可動体役物の動作制御などとなる。
Next, the
The
The
The
The
Although illustration is omitted, the
The main roles of the
演出制御部51は、主液晶表示装置32M、副液晶表示装置32S側への演出制御コマンドの送信を行うが、その演出制御コマンドは、液晶インターフェース基板66を介して液晶制御基板52に送られる。
The
液晶制御基板52は、主液晶表示装置32M及び副液晶表示装置32Sの表示制御を行う。図示していないが、液晶制御基板52には、VDP(Video Display Processor)、画像ROM、VRAM(Video RAM)、液晶制御CPU、液晶制御ROM、液晶制御RAMを備えている。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う。
画像ROMには、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されている。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域とされる。
液晶制御CPUは、VDPが表示制御を行うために必要な制御データを出力する。
液晶制御ROMには、液晶制御CPUの表示制御動作手順を記述したプログラムやその表示制御に必要な種々のデータが格納される。
液晶制御RAMは、ワークエリアやバッファメモリとして機能する。
The liquid
The VDP performs overall control of video output processing such as image development processing and image drawing.
The image ROM stores image data (effect image data) on which the VDP performs image expansion processing.
The VRAM is an image memory area that temporarily stores image data developed by the VDP.
The liquid crystal control CPU outputs control data necessary for the VDP to perform display control.
The liquid crystal control ROM stores a program describing the display control operation procedure of the liquid crystal control CPU and various data necessary for the display control.
The liquid crystal control RAM functions as a work area and a buffer memory.
液晶制御基板52は、これらの構成により、演出制御基板51からの演出制御コマンドに基づいて各種の画像データを生成し、主液晶表示装置32M及び副液晶表示装置32Sに出力する。これによって主液晶表示装置32M及び副液晶表示装置32Sにおいて各種の演出画像が表示される。
With these configurations, the liquid
また演出制御部51は、光演出や音演出の制御を行う。このため演出制御部51には枠ドライバ部61、盤ドライバ部62及び音源IC(Integrated Circuit)59が接続されている。
枠ドライバ部61は、枠側の装飾ランプ部63のLEDについて発光駆動を行う。なお、装飾ランプ部63とは、図1に示したように枠側に設けられている装飾ランプ20wを総括的に示したものである。
盤ドライバ部62は、盤側の装飾ランプ部64のLEDについて発光駆動を行う。なお、装飾ランプ部64とは、図2に示したように盤側に設けられている装飾ランプ20bを総括的に示したものである。
また可動体役物モータ65は、盤側に形成されている1又は複数の可動体役物を駆動する1又は複数の各モータを総括的に示している。また本実施の形態の場合、盤ドライバ部62は、可動体役物モータ部65のモータの駆動も行う。可動体役物モータ部65のモータには例えばステッピングモータが用いられる。
The
The
The
The movable
本実施の形態の場合、枠ドライバ部61は第1系統の駆動信号出力手段であり、盤ドライバ部62は第2系統の駆動信号出力手段である。詳しくは図4を用いて後述するが、演出制御部51(演出制御CPU200)は、シリアルデータ送信チャネルch1,ch2を用いて、演出駆動データをシリアルデータとして第1系統及び第2系統の駆動信号出力手段(枠ドライバ部61及び盤ドライバ部62)に供給する。
なおこの例では盤ドライバ部62は、盤側に形成されている可動体役物を駆動する可動体役物モータ部65のモータの駆動も行うものとしているが、装飾ランプ部64の各LEDを発光駆動するドライバ部と、可動体役物モータ部65のモータを駆動するドライバ部が別体として設けられても良い。
In the case of the present embodiment, the
In this example, the
可動体役物モータ部65としては、例えば複数の役物に対応して複数のモータ(例えばステッピングモータ)が設けられる。
各モータには原点位置が規定されている。原点位置は、例えば役物が図2の盤面に通常は表出しない位置などとされる。
モータが原点位置にあるか否かを演出制御基板51側で確認できるようにするため、各モータには原点スイッチ68が設けられている。例えばフォトインターラプタが用いられる。この原点スイッチ68の情報が演出制御CPU200によって検知される構成とされている。詳しくは図35、図37で述べる。
As the movable body
Each motor has a specified origin position. The origin position is, for example, a position where an accessory does not normally appear on the board surface of FIG.
Each motor is provided with an
また演出制御部51は、スピーカ25により所望の音を出力させるべく、音源IC59に対する制御を行う。音源IC59には音データROM69が接続されており、音源IC59は音データROM69から必要な音データ(再生するフレーズの音データ)を取得して音声信号出力を行う。
音源IC59は、複数チャネル(後述する音チャネルaCH)のフレーズをミキシングして所定本数(チャネル数)の音声信号を得る。図1に示したように、本例の場合、スピーカ25は複数設けられるため、音源IC59の出力チャネル数は例えばLch,Rchの2チャネルなど(ステレオ出力)が可能となる。上記のミキシングにより、演出制御部51より再生指示された複数チャネルのフレーズを同時再生可能とされる。
また音源IC59は、演出制御部51からの指示に従い、制御対象として指示されたフレーズについての音コントロールを行う。具体的に、演出制御部51は、ボリュームの変化指示やフェードイン再生/フェードアウト再生等の音響効果の付与指示に係る情報を音源IC59に対して与え、音源IC59はそれらの情報に従って制御対象として指定されたフレーズの再生制御を行う。
Further, the
The
The
本実施の形態で用いる音源IC59は、SUBボリュームの設定機能やパン機能(左右方向パン及び上下方向パン)も有するものとされる。
この場合の音源IC59が音出力を行うにあたって指示を要求する情報は、少なくとも「フレーズ番号」「1次ボリューム」「1次ボリューム遷移量」「2次ボリューム」「ループ回数」「SUB0ボリューム」「SUB1ボリューム」「左右パンポット」「左右パンポット遷移量」「上下パンポット」「上下パンポット遷移量」とされる。すなわち、この場合の音源IC59には、これらの項目ごとにその指示値の入力を受け付けるレジスタが音チャネルaCHごとに設けられている。
なお、本実施の形態ではSUBボリュームは使用しないものとしている。従って上記の「SUB0ボリューム」「SUB1ボリューム」のレジスタには「0」をセットする(後述する図32のステップS1202を参照)。
The
In this case, the
In the present embodiment, the SUB volume is not used. Accordingly, “0” is set in the registers of the “SUB0 volume” and “SUB1 volume” (see step S1202 in FIG. 32 described later).
音源IC59による出力音声信号はアンプ部67で増幅された後、スピーカ25に対して与えられる。
なお、図3では図示の都合上、音源IC59の出力チャネル数を1つとしているが、実際にはアンプ部67及びスピーカ25は例えばLch、Rchに対応した出力チャネルがそれぞれ設けられ、ステレオによる音再生が可能とされる。
The output audio signal from the
In FIG. 3, for convenience of illustration, the number of output channels of the
なお、上記では音源IC59を演出制御基板51とは別体に設けるものとしたが、音源IC59は演出制御基板51と同一基板上に一体的に設けることもできる。
In the above description, the
また演出制御部51には、遊技者が操作可能な操作部60が接続され、操作部60からの操作検出信号を受信可能となっている。この操作部60は、図1で説明したパトライトスイッチ11、演出ボタン12、十字キー13と、それらの操作検出機構のことである。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
The
The
演出制御部51は、主制御部50から送られてくる演出制御コマンドに基づき、あらかじめ用意された複数種類の演出パターンの中から抽選によりあるいは一意に演出パターンを決定し、必要なタイミングで各種演出手段を制御する。これにより、演出パターンに対応する主・副液晶表示装置32M、32Sによる演出画像の表示、スピーカ25からの音再生、装飾ランプ部63、64(装飾ランプ20w、20b)におけるLEDの点灯点滅駆動、可動体役物モータ部65のモータによる可動体役物の動作が実現され、時系列的に種々の演出パターンが展開されていく。これにより「演出シナリオ」が実現される。
The
なお演出制御コマンドは、1バイト長のモード(MODE)と、同じく1バイト長のイベント(EVENT)からなる2バイト構成により機能を定義する。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
これらの情報を有効なものとして送信する場合、モード(MODE)およびイベント(EVENT)各々に対応してストローブ信号が出力される。すなわち、主制御CPU100は、送信すべきコマンドがある場合、演出制御部51にコマンドを送信するためのモード(MODE)情報の設定および出力を行い、この設定から所定時間経過後に1回目のストローブ信号の送信を行う。さらに、このストローブ信号の送信から所定時間経過後にイベント(EVENT)情報の設定および出力を行い、この設定から所定時間経過後に2回目のストローブ信号の送信を行う。
ストローブ信号は主制御CPU100により、演出制御CPU200が確実にコマンドを受信することが可能な所定期間アクティブ状態に制御される。
また演出制御部51(演出制御CPU200)は、ストローブ信号の入力に基づいて割込を発生させてコマンド受信割込処理用の制御プログラムを実行し、この割込処理において演出制御コマンドが取得される。
The effect control command defines a function by a 2-byte structure consisting of a 1-byte length mode (MODE) and a 1-byte length event (EVENT).
In order to distinguish between MODE and EVENT,
When these pieces of information are transmitted as valid, a strobe signal is output corresponding to each of the mode (MODE) and the event (EVENT). That is, when there is a command to be transmitted, the
The strobe signal is controlled by the
The effect control unit 51 (effect control CPU 200) generates an interrupt based on the input of the strobe signal and executes a control program for command reception interrupt processing, and the effect control command is acquired in this interrupt processing. .
続いて、上述した第1系統及び第2系統の駆動信号出力手段(枠ドライバ部61及び盤ドライバ部62)の構成を説明する。
図4に、演出制御部51に接続される枠ドライバ部61、盤ドライバ部62を示した。
Then, the structure of the drive signal output means (the
FIG. 4 shows the
第1系統の駆動信号出力手段である枠ドライバ部61は、n個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch1に対して並列に接続されている。
シリアルデータ出力チャネルch1の信号線としては、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、演出駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、枠ドライバ部61を構成するn個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
枠ドライバ部61の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスIDが設定されている。即ち個々のLEDドライバ90の識別子である。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をw1〜w(n)と表記する。
In the
As a signal line of the serial data output channel ch1, a reset signal line for supplying a reset signal RESET, a clock line for supplying a clock signal CLK, a data line for supplying serial data DATA as effect drive data, and an enable signal ENABLE are supplied. An enable signal line is provided. Each of these signal lines is connected so as to supply each signal in parallel to
In each
また第2系統の駆動信号出力手段である盤ドライバ部62は、m個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch2に対して並列に接続されている。
シリアルデータ出力チャネルch2の信号線もチャネルch1と同様、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、演出駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、盤ドライバ部62を構成するm個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
盤ドライバ部62の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のLEDドライバ90の識別子)が設定されている。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をb1〜b(m)と表記する。
In the
Similarly to channel ch1, the signal line of serial data output channel ch2 is a reset signal line for supplying reset signal RESET, a clock line for supplying clock signal CLK, a data line for supplying serial data DATA as effect drive data, and an enable signal ENABLE. An enable signal line for supplying is provided. Each of these signal lines is connected so as to supply each signal in parallel to m
In each
枠ドライバ部61及び盤ドライバ部62における各LEDドライバ90としては、例えば24チャネルLEDドライバである「LV5236V(三洋半導体株式会社製)」を用いることができ、24個の電流出力端子を備える。従って1つのLEDドライバ90によっては、最大24個の系列のLED駆動電流を出力することができる。具体的には例えば8系列のR(赤)LED駆動電流出力、8系列のG(緑)LED駆動電流出力、8系列のB(青)LED駆動電流出力を行い、8個のフルカラーLEDの発光駆動が可能である。なお、ここでは1つの「系列」とは、1つの電流出力端子に対して接続される1つのLED、又は1つの電流出力端子に対して直列又は並列で接続される複数個のLEDの群を指している。
枠ドライバ部61におけるLEDドライバ90の数nは、枠側に配置されるLED系列数(装飾ランプ20wの系列数)によって決められる。従ってnは1の場合もあるし、2以上の場合もある。枠ドライバ部61は1又は複数のLEDドライバ90を有する。
また盤ドライバ部62におけるLEDドライバ90の数mは、盤側に配置されるLED系列数(装飾ランプ20bの系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
As each
The number n of
Further, the number m of
図5AにLEDドライバ90の要部の概略構成例を示す。
LEDドライバ90は、シリアルバスインターフェース91、アドレス設定部92、データバッファ/PWMコントローラ93、D/A変換器94、駆動電流源回路95−1〜95−24を備える。
駆動電流源回路95−1〜95−24は、上記の24系列の駆動電流出力を、それぞれ出力端子96−1〜96−24から行う電流源である
FIG. 5A shows a schematic configuration example of a main part of the
The
The drive current source circuits 95-1 to 95-24 are current sources that perform the 24 series drive current outputs from the output terminals 96-1 to 96-24, respectively.
このLEDドライバ90には、シリアルバスインターフェース91に対し、演出制御CPU200からのイネーブル信号ENABLE、クロック信号CLK、シリアルデータDATAが入力される。シリアルバスインターフェース91は、イネーブル信号ENABLEで規定される期間に、クロック信号CLKのタイミングでシリアルデータDATAを取り込む。シリアルバスインターフェース91は、取り込んだシリアルデータをパラレルデータに変換してデータバッファ/PWMコントローラ93に転送する。
なお演出制御CPU200はスレーブアドレスを指定してLED駆動データを送信してくる。
データバッファ/PWMコントローラ93は、シリアルバスインターフェース91から転送されたパラレルデータについて、スレーブアドレス確認を行う。パラレルデータに含まれるスレーブアドレスが、アドレス設定部92に設定された自己のスレーブアドレス(w1〜w(n)、b1〜b(m)のいずれか)と一致していることを確認した場合に、該パラレルデータに含まれるLED駆動データを有効なデータとして、指定されたレジスタに格納する。
The
The
The data buffer /
データバッファ/PWMコントローラ93は、各系列のLED駆動データを取り込んだら、そのLED駆動データで示された輝度情報(階調値)に応じた値を、24系列の各駆動制御値としてD/A変換器94に出力する。
D/A変換器94は、輝度情報に応じた値をアナログ信号に変換し、各電流源回路95−1〜95−24への制御信号とする。
When the data buffer /
The D /
出力端子96−1〜96−24の全部(又は一部)には24系列のLED120が接続される。なお、図は簡略化して1系列の出力端子96に1つのLED120が接続された状態を示しているが、1系列の出力端子96に、複数のLEDが接続される構成(例えば直列接続)も当然あり得る。
各系列(出力端子96−1〜96−24)では、LED120及び抵抗Rの直列接続に対して電源電圧Vccが印加される。電流源回路95−1〜95−24によって各系列のLED120に電流が流され、発光が行われる。
即ち各電流源回路95−1〜95−24は、D/A変換器94から供給された信号に応じた電流量の駆動電流を、対応する系列のLED120に流すように動作する。
24 series of
In each series (output terminals 96-1 to 96-24), the power supply voltage Vcc is applied to the series connection of the
That is, each of the current source circuits 95-1 to 95-24 operates so that a drive current having a current amount corresponding to the signal supplied from the D /
このようなLED駆動制御を、1つの系列について具体的にいうと、データバッファ/PWMコントローラ93は、当該系列の階調値に応じたパルスデューティに相当するデジタルデータ列をD/A変換器94に出力し、D/A変換器94は、デジタルデータ列をアナログ信号としてのパルス信号に変換して当該系列の電流源回路95に供給する。電流源回路95はパルス信号のH/Lにより出力制御され、例えば0mAと5mAの電流出力を行う。例えばこのような動作で、結果的に階調値に応じた平均電流値となる駆動電流がLED120に流れることとなる。
なお、本実施の形態では、PWM駆動方式により、電流値が例えば0mAと5mAとされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
Specifically, such LED drive control is described for one series. The data buffer /
In this embodiment, the current value is set to, for example, 0 mA and 5 mA by the PWM driving method, and gradation control is performed (integrally) in the time axis direction. Needless to say, the current value may actually be changed according to the gradation. Regardless of duty control or level control, appropriate gradation expression can be realized by setting the average current value per unit time to a level corresponding to the gradation.
なお、本実施の形態の場合、盤ドライバ部62における一部のLEDドライバ90には、可動体役物を駆動する可動体役物モータ部65の各モータが接続される。図5Bに、或るLEDドライバ90の出力端子96−1〜96−24の全部(又は一部)に例えばステッピングモータ121が接続された例を示している。図5Bは出力端子96−1〜96−24の部分のみを示しているが、LEDドライバ90の内部構成は図5Aと同様である。
例えばステッピングモータ121が4相駆動のモータである場合、出力端子96−1〜96−4で1つのステッピングモータ121に対する励磁電流を流すように接続する。同様に、出力端子96−5〜96−8、出力端子96−9〜96−12、出力端子96−13〜96−16、出力端子96−17〜96−20、出力端子96−21〜96−24が、それぞれ1つのステッピングモータ121に励磁電流を流すように接続される。この場合、1つのLEDドライバ90で最大6個のステッピングモータ121を駆動できることとなる。
LEDドライバ90は与えられたコマンド(シリアルデータ)によって指示される電流を出力端子96−1〜96−24から出力する回路であることから、ステッピングモータやソレノイド等の物理的可動体駆動デバイスのドライバとしても使用することができる。そこで、一部のLEDドライバ90を図5Bのようにステッピングモータ121のドライバとして用いる。可動体役物の動作は演出シナリオによって細かく設定され、それに応じて演出制御部51は駆動方向や駆動量などを制御するわけであるが、盤ドライバ部62におけるLEDドライバ90を利用して可動体役物を駆動することで、装飾ランプ部64の各装飾ランプ(LED20b)とともにシリアルデータによる可動体役物制御が可能となり、制御処理及び構成が効率化できる。
なお、1つのLEDドライバ90において、一部の出力端子がLED駆動に用いられ、他の一部の出力端子がステッピングモータやソレノイド等の駆動に用いられるという手法を採っても良い。
In the case of the present embodiment, a part of the
For example, when the stepping
The
In one
以上のように、各LEDドライバ90は、演出制御CPU200から受信したシリアルデータDATAに応じて、指定された輝度で各LED120が発光されるように駆動することとなる。或いはLEDドライバ90の一部は、シリアルデータDATAに応じて、ステッピングモータ121を駆動する。
そして第1系統、第2系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62)には、それぞれが1又は複数の演出手段に駆動信号を出力する複数のLEDドライバ90が含まれ、1つの系統内の各LEDドライバ90には、演出制御部51からのシリアルデータが、並列に送信される構成とされている。そして各LEDドライバ90は、自己のID(スレーブアドレス)が含まれる演出駆動データ(シリアルデータ)を取得する。
As described above, each
Each of the first and second system drive signal output means (
<3.主制御部の処理>
以下、本実施の形態の制御処理につき説明する。まずここでは主制御部(主制御基板)50によるメイン処理について述べる。
図6は、主制御部50のメイン処理を示すフローチャートである。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチ(図示せず)が操作されることなく電源がON状態になる場合と、初期化スイッチがON操作されて電源がON状態になる場合とがある。いずれの場合でも、パチンコ遊技機1に電源が投入されると、電源基板58によって各制御基板に電圧が供給される。この場合に主制御部50(主制御CPU100)は図6に示すメイン処理を開始する。
<3. Processing of main control unit>
Hereinafter, control processing according to the present embodiment will be described. First, main processing by the main control unit (main control board) 50 will be described here.
FIG. 6 is a flowchart showing main processing of the
この主制御側メイン処理において、主制御CPU100はステップS11で、まず遊技動作開始前における必要な初期設定処理を実行する。たとえば、最初に自らを割込み禁止状態に設定すると共に、所定の割込みモード(割込みモード2)に設定し、またマイクロコンピュータの各部を含めてCPU内部のレジスタ値を初期設定する。
次に主制御CPU100はステップS12で、図示してない入力ポートを介して入力されるRAMクリアスイッチの出力信号であるRAMクリア信号の状態(ON、OFF)を判定する。RAMクリア信号とは、RAMの全領域を初期設定するか否かを決定する信号である。RAMクリア信号としては通常、パチンコ店の店員が操作する初期化スイッチのON/OFF状態に対応した値を有している。
In the main control side main process, the
Next, in step S12, the
RAMクリア信号がON状態であった場合、主制御CPU100は処理をステップS12からS16に進め、RAMの全領域のゼロクリアを行う。したがって、電源遮断時にセットされたバックアップフラグの値は、他のチェックサム値などと共にゼロとなる。
続いてステップS17で主制御CPU100は、RAM領域がゼロクリアされたことを報知するための「RAMクリア表示コマンド」を初期化コマンドとして各制御基板に送信する。そしてステップS18で、RAMクリア報知タイマに、RAMクリアされた旨を報知するための時間として、たとえば、30秒を格納する。
When the RAM clear signal is in the ON state, the
Subsequently, in step S17, the
次に主制御CPU100はステップS19で、タイマ割込み動作を起動する割込み信号を出力するCTCを初期設定して、CPUを割込み許可状態に設定する。
その後はステップS20、S21、S22の処理として、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、各種乱数更新処理を実行する。このステップS21の各種乱数更新処理では、特別図柄変動表示や普通図柄変動表示に使用される各種乱数の初期値(スタート値)変更のために使用する乱数や、変動パターンの選択に利用される変動パターン用乱数を更新する。
なお、特別図柄変動表示や普通図柄変動表示に使用される各種乱数とは、例えばインクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数)などである。また初期値変更のために使用する乱数とは、特別図柄判定用初期値乱数、補助当り判定用初期値乱数などである。
Next, in step S19, the
Thereafter, as the processing of steps S20, S21, and S22, the interrupt disabled state and the interrupt enabled state are repeated until an interrupt occurs, and various random number update processes are executed during that time. In the various random number update processing in step S21, random numbers used for changing initial values (start values) of various random numbers used for special symbol fluctuation display and normal symbol fluctuation display, and fluctuations used for selection of fluctuation patterns. Update pattern random numbers.
The various random numbers used for the special symbol variation display and the normal symbol variation display are, for example, random numbers related to jackpot lottery circulating through a predetermined numerical range by increment processing (special symbol determination random numbers used for symbol lottery). Or a random number related to a lottery per assistance (a random number for judging per assistance used in winning lottery per assistance). The random numbers used for changing the initial value include an initial value random number for special symbol determination, an initial value random number for auxiliary hit determination, and the like.
主制御RAM102には大当り抽選に係る図柄抽選、補助当り抽選、または変動パターン抽選などに利用される各種の乱数カウンタとして、特別図柄判定用乱数カウンタ初期値の生成用カウンタ、特別図柄判定用乱数カウンタ、補助当り判定用乱数カウンタ初期値の生成用カウンタ、補助当り判定用乱数カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどが設けられている。これらのカウンタは、ソフトウェア的に乱数を生成する乱数生成手段としての役割を果たす。
ステップS21の各種乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどを更新して、上記各種のソフト乱数を生成する。たとえば、変動パターン用乱数1カウンタとして取り得る数値範囲が0〜238とすると、主制御RAM102の変動パターン用乱数1の値を生成するためのカウント値記憶領域から値を取得し、取得した値に1を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に1を加算した結果が239であれば0を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。CPU201は、間欠的に実行されるタイマ割込処理を行っている間を除いて、各種乱数更新処理を繰り返し実行するようになっている。
The
In the various random number update processing in step S21, two initial value generation counters for generating initial values of the special symbol determination random number counter and the auxiliary hit determination random number counter, a variation pattern
以上はステップS12でRAMクリアスイッチONと判定された場合について述べた。RAMクリアスイッチOFFの場合を続いて説明する。例えば停電状態からの復旧時には、初期化スイッチ(RAMクリア信号)はOFF状態である。このような場合、主制御CPU100はステップS12からS13に処理を進め、バックアップフラグ値を判定する。なお、バックアップフラグは、電源遮断時にON状態に設定され、電源復帰後の最初のタイマ割込み処理でOFF状態にリセットされるよう構成されている。
したがって、電源投入時や停電状態からの復旧時である場合には、通常では、バックアップフラグがON状態のはずである。ただし、何らかの理由で電源遮断までに所定の処理が完了しなかったような場合には、バックアップフラグはリセット(OFF)状態になる。そこで、バックアップフラグがOFF状態である場合には、主制御CPU100は処理をステップS13からS16に進め、遊技機の動作を初期状態に戻す。
The above describes the case where it is determined in step S12 that the RAM clear switch is ON. Next, the case where the RAM clear switch is OFF will be described. For example, at the time of recovery from a power failure state, the initialization switch (RAM clear signal) is in an OFF state. In such a case, the
Therefore, when the power is turned on or when recovering from a power failure, the backup flag should normally be in the ON state. However, the backup flag is reset (OFF) if the predetermined processing is not completed before the power is cut off for some reason. Therefore, when the backup flag is in the OFF state, the
一方、バックアップフラグがON状態であれば、主制御CPU100は処理をステップS13からS14に進め、チェックサム値を算出するためのチェックサム演算を実行する。ここで、チェックサム演算とは、主制御RAM102のワーク領域を対象とする8ビット加算演算である。
そして、チェックサム値が算出されたら、この演算結果を、主制御RAM102のSUM番地の記憶値と比較をする。このSUM番地には、電源遮断時に、同じチェックサム演算によるチェックサム値が記憶されている。そして、記憶された演算結果は、主制御RAM102の他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップS14の判定によって両者が一致するはずである。
しかし、電源遮断時にチェックサム演算が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算の実行時までの間に、ワーク領域のデータが破損している場合もある。このような場合にはステップS14の判定結果は不一致となる。
判定結果の不一致によりデータ破損が検出された場合には、主制御CPU100はステップS14からS16の処理に進んでRAMクリア処理を実行し、遊技機の動作状態を初期状態に戻す。
On the other hand, if the backup flag is in the ON state, the
When the checksum value is calculated, the calculation result is compared with the stored value at the SUM address in the
However, there may be a case where the checksum operation cannot be executed when the power is turned off, or even if it can be executed, the data in the work area is damaged after the checksum operation of the main process is executed. In such a case, the determination result in step S14 is inconsistent.
If data corruption is detected due to the discrepancy of the determination results, the
ステップS14でのチェックサム演算によるチェックサム値と、SUM番地の記憶値とが一致する場合には、主制御CPU100はステップS15に進み、バックアップデータに基づき、電源遮断前におけるスタックポインタを復帰し、電源遮断時の処理状態から遊技を開始するために必要な遊技復旧処理を実行する。
そしてステップS15の遊技復旧処理を終えると、ステップS19の処理に進み、CTCを初期設定してCPUを割込み許可状態に設定し、その後は、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、上述した各種乱数更新処理を実行する(ステップS20〜S22)。
If the checksum value obtained by the checksum calculation in step S14 matches the stored value at the SUM address, the
When the game recovery process at step S15 is completed, the process proceeds to the process at step S19, the CTC is initialized and the CPU is set in the interrupt enabled state, and thereafter, the interrupt disabled state and the interrupt enabled state are generated until an interrupt occurs. In the meantime, various random number update processes described above are executed (steps S20 to S22).
次に主制御CPU100のタイマ割込処理について説明する。図7に主制御CPU100のタイマ割込処理を示している。この主制御タイマ割込処理は、CTCからの一定時間(4ms程度)ごとの割込みで起動され、上述したメイン処理実行中に割り込んで実行される。
Next, timer interrupt processing of the
タイマ割込みが生じると、主制御CPU100はレジスタの内容をスタック領域に退避させた後、まず図7のステップS51として電源基板58からの電源の供給状態を監視する電源異常チェック処理を行う。この電源異常チェック処理では、主に、電源が正常に供給されているかを監視する。ここでは、たとえば、電断が生じるなどの異常が発生した場合、電源復帰時に支障なく遊技を復帰できるように、電断時における所定の遊技情報をRAMに格納するバックアップ処理などが行われる。
When a timer interrupt occurs, the
次にステップS52で、主制御CPU100は遊技動作制御に用いられるタイマを管理するタイマ管理処理を行う。パチンコ遊技機1の遊技動作制御に用いる各種タイマ(たとえば特別図柄役物動作タイマなど)のタイマ値は、この処理で管理(更新)される。
In step S52, the
ステップS53では、主制御CPU100は入力管理処理を行う。この入力管理処理では、パチンコ遊技機1に設けられた各種センサによる検出情報を入賞カウンタに格納する。ここでの各種センサによる検出情報とは、たとえば、上始動口センサ71、下始動口センサ72、ゲートセンサ(普通図柄始動口センサ)73、第1大入賞口センサ75、第2第入賞口センサ76、一般入賞口センサ74などの入賞検出スイッチから出力されるスイッチ信号のON/OFF情報(入賞検出情報)である。
このステップS53の処理により、各入賞口において入賞を検出(入賞が発生)したか否かが割込みごとに監視される。また上記「入賞カウンタ」とは、各々の入賞口ごとに対応して設けられ、入賞した遊技球数(入賞球数)を計数するカウンタである。本実施の形態では、主制御RAM102の所定領域に、上始動口41用の上始動口入賞カウンタ、下始動口42a用の下始動口入賞カウンタ、ゲート44用の普通図柄始動口入賞カウンタ、第1大入賞口45a用の第1大入賞口入賞カウンタ、第2大入賞口46a用の第2大入賞口入賞カウンタ、一般入賞口43用の一般入賞口用の入賞カウンタなどが設けられている。
またこの入力管理処理では、入賞検出スイッチからの検出情報が入賞を許容すべき期間中に入賞したか否かに基づいて、不正入賞があったか否かも監視される。たとえば大当り遊技中でないにもかかわらず第1、第2大入賞口センサ75,76が遊技球を検出したような場合は、これを不正入賞とみなして入賞検出情報を無効化し、その無効化した旨を外部に報知するべく後述のステップS55のエラー管理処理において所定のエラー処理が行われるようになっている。
In step S53, the
Through the processing in step S53, it is monitored for each interrupt whether or not a winning is detected (winning has occurred) at each winning opening. The “winning counter” is a counter provided corresponding to each winning opening and counting the number of game balls (winning balls) won. In the present embodiment, in a predetermined area of the
Further, in this input management process, it is also monitored whether or not there is an illegal prize based on whether or not the detection information from the prize detection switch has won a prize during a period in which the prize should be allowed. For example, when the first and second big
ステップS54では、主制御CPU100は各変動表示に係る乱数を定期的に更新するタイマ割込内乱数管理処理を行う。この定期乱数更新処理では、特別図柄判定用乱数や補助当り判定用乱数の更新(割込み毎に+1加算)と、乱数カウンタが一周するごとに、乱数カウンタのスタート値を変更する処理を行う。たとえば、特別図柄判定用乱数カウンタの値を所定範囲で更新(+1加算)し、特別図柄判定用乱数カウンタが1周するごとに、特別図柄判定用乱数カウンタ初期値の生成用カウンタの値を読み出し、その生成用カウンタの値を特別図柄判定用乱数カウンタに格納する。これにより、特別図柄判定用乱数カウンタのスタート値が上記の生成用カウンタの値に応じて変更されるので、更新周期は一定でありながらも特別図柄判定用乱数カウンタのカウント値はランダムになる。
In step S54, the
ステップS55では、主制御CPU100は、遊技動作状態の異常の有無を監視するエラー管理処理を行う。このエラー管理処理では、遊技動作状態の異常として、たとえば、基板間に断線が生じたか否かの監視や、不正入賞があったか否かの監視などをして、これらの動作異常(エラー)が発生した場合には、そのエラーに対応した所定のエラー処理を行う。
エラー処理としては、たとえば、所定の遊技動作(たとえば、遊技球の払い出し動作や遊技球の発射動作など)の進行を停止させたり、エラー報知用コマンドを演出制御部51に送信して、演出手段によりエラーが発生した旨を報知させたりする。
In step S55, the
As the error processing, for example, the progress of a predetermined game operation (for example, a game ball payout operation or a game ball launch operation) is stopped, or an error notification command is transmitted to the
ステップS56では、主制御CPU100は賞球管理処理を行う。この賞球管理処理では、ステップS53の入力管理処理で格納したデータを把握して、上述の入賞カウンタの確認を行い、入賞があった場合は、賞球数を指定する払出制御コマンドを払出制御基板53に送信する。
この払出制御コマンドを受信した払出制御基板53は、遊技球払出装置55を制御し、指定された賞球数の払い出し動作を行わせる。これにより、それぞれの入賞口に対応した賞球数が払い出されるようになっている。入賞口に対応した賞球数とは、入賞口別に設定された入賞球1個当りの所定の賞球数×入賞カウンタの値分の賞球数である。
In step S56, the
Upon receiving this payout control command, the
ステップS57では主制御CPU100は、普通図柄管理処理を行う。この普通図柄管理処理では、普通図柄変動表示における補助当り抽選を行い、その抽選結果に基づいて、普通図柄の変動パターンや普通図柄の停止表示態様を決定したり、所定時間毎に点滅を繰り返す普通図柄のデータ(普通図柄変動中のLED点滅表示用データ)を作成したり、普通図柄が変動中でなければ、停止表示用のデータ(普通図柄停止表示中のLED点滅表示用データ)を作成したりする。
In step S57, the
ステップS58では、主制御CPU100は、普通電動役物管理処理を行う。この普通電動役物管理処理では、ステップS57の普通図柄管理処理の補助当り抽選の抽選結果に基づき、普通電動役物ソレノイド77に対するソレノイド制御用の励磁信号の生成およびそのデータ(ソレノイド制御データ)の設定を行う。ここで設定されたデータに基づき、後述のステップS64のソレノイド管理処理にて、励磁信号が普通電動役物ソレノイド77に対して出力され、これにより可動翼片42bの動作が制御される。
ステップS59では、主制御CPU100は、特別図柄管理処理を行う。この特別図柄管理処理では、主に、特別図柄変動表示における大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、変動開始時の変動パターン)や特別停止図柄などを決定する。
ステップS60では、主制御CPU100は特別電動役物管理処理を行う。この特別電動役物管理処理では、主に、大当り抽選結果が「大当り」または「小当り」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行う。
In step S <b> 58, the
In step S59, the
In step S60, the
ステップS61では、主制御CPU100は右打ち報知情報管理処理を行う。この右打ち報知情報管理処理では、例えば第1、第2第入賞口45a,46aが開放される機会や可動翼片42bが駆動される電サポ状態など、右打ちが有利な状況において右打ち指示報知を行う「発射位置誘導演出(右打ち報知演出)」を現出させるための処理を行う。右打ち指示とは、具体的には、右遊技領域3cを狙う旨を有技者に指示する演出動作であり、例えば主液晶表示装置32Mに「右打ち」を遊技者に促す画像を表示させたり、スピーカ25から右打ちメッセージ音声を発生させる。
右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、演出制御コマンドとして、右打ち報知演出の実行指示する「右打ち指示コマンド」が演出制御部51に送信され、このコマンドを受けて、演出制御部51が、画像や音声による右打ち報知の実行制御を行う。
ステップS62では、主制御CPU100は、LED管理処理を行う。このLED管理処理は、図柄表示部33に対して普通図柄表示や第1,第2特別図柄表示のための表示データを出力する処理である。この処理により、普通図柄や特別図柄の変動表示および停止表示が行われる。なお、ステップS57の普通図柄管理処理で作成された普通図柄の表示データや、ステップS59の特別図柄管理処理中の特別図柄表示データ更新処理で作成される特別図柄の表示データは、このLED管理処理で出力される。
In step S61, the
When a right-handed notification effect is performed, in this right-handed notification information management process, a “right-handed instruction command” instructing execution of a right-handed notification effect is transmitted to the
In step S62, the
ステップS63では、主制御CPU100は、外部端子管理処理を行う。この外部端子管理処理では、枠用外部端子基板57を通して、パチンコ遊技機1の動作状態情報をホールコンピュータや島ランプなどの外部装置に対して出力する。動作状態情報としては、大当り遊技が発生した旨(条件装置が作動した旨)、小当り遊技が発生した旨、図柄変動表示が実行された旨(特別図柄変動表示ゲームの開始または終了した旨)、入賞情報(始動口や大入賞口に入賞した旨や賞球数情報)などの情報が含まれる。
ステップS64では、主制御CPU100は、ソレノイド管理処理を行う。このソレノイド管理処理では、ステップS58の普通電動役物管理処理で作成されたソレノイド制御データに基づく普通電動役物ソレノイド77に対する励磁信号の出力処理や、ステップS60の特別電動役物管理処理で作成されたソレノイド制御データに基づく第1,第2大入賞口ソレノイド78,79に対する励磁信号の出力処理を行う。これにより、可動翼片42bや開放扉45b、46bが所定のパターンで動作し、下始動口42aや大入賞口45a、46bが開閉される。
In step S63, the
In step S64, the
主制御CPU100は、以上のステップS51〜ステップS64の処理を終えた後、退避していたレジスタの内容を復帰させて、ステップS65で割込み許可状態に設定する。これにより、タイマ割込処理を終了して、割込み前の図6の主制御側メイン処理に戻り、次のタイマ割込みが発生するまで主制御メイン処理を行う。
After completing the above steps S51 to S64, the
<4.演出制御部の処理>
[4−1:メイン処理]
続いて演出制御部51の処理について説明する。演出制御部51の処理としては、主に、メインループ上で16ms毎に行われる処理(以下「16ms処理」ともいう)と、1ms毎に行われる割り込み処理(以下「1msタイマ割込処理」ともいう)がある。
まずここでは16ms処理を含むメイン処理について説明する。
図8は、演出制御部51のメイン処理を示している。演出制御部51(演出制御CPU200)は、遊技機本体に対して電源が投入されると、図8のメイン処理を開始する。
このメイン処理において、演出制御CPU200は、まずステップS101で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、コマンド受信割込み設定、可動体役物の起点復帰処理、CTCの初期設定、タイマ割込みの許可、マイクロコンピュータの各部を含めてCPU内部のレジスタ値の初期設定などを行う。
<4. Processing of production control unit>
[4-1: Main processing]
Then, the process of the production |
First, main processing including 16 ms processing will be described here.
FIG. 8 shows the main process of the
In this main process, the
ステップS101の初期設定処理を終えると、正常動作時の処理としてステップS102〜S117の処理を繰り返し行う。
即ちこの例では、演出制御CPU200はステップS102でのIDチェックとステップS117での乱数更新を毎ループ行うと共に、16ms毎に、ステップS105〜S116の処理(16ms処理)を行う。
ステップS102のIDチェックでは、演出制御CPU200はシステム上で設定されている自己或いは接続各部のIDの確認を行う。もし何らかの原因により、ID異常が検出された場合は、ステップS103としてシステム停止処理を行う。
IDに問題のない通常時は、演出制御CPU200はステップS104以下の処理を行うことになる。即ち演出制御CPU200は、16ms処理の実行判断のための割込みカウンタの値が「15」より大きい値となっているか否かを判断する。この割込みカウンタは、後述する1msタイマ割込処理のステップS207でインクリメントされていくカウンタである。従って割込みカウンタの値が「15」より大きい場合とは、16ms処理のタイミングになっていることを意味する。
When the initial setting process in step S101 is completed, the processes in steps S102 to S117 are repeated as a process during normal operation.
In other words, in this example, the
In the ID check in step S102, the
In normal times when there is no problem with the ID, the
演出制御CPU200は、割込みカウンタの値が「15」以下であるときは、ステップS104からS117に進み、演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行う。
一方、割込みカウンタの値が「16」以上である場合は、演出制御CPU200はステップS105〜S116の処理を実行し、その後、ステップS117で演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行うことになる。
When the value of the interrupt counter is “15” or less, the
On the other hand, if the value of the interrupt counter is equal to or greater than “16”, the
このように割込みカウンタでカウントされる16ms毎に、演出制御CPU200はステップS105からの16ms処理を行う。
その場合、まずステップS105では、割込みカウンタをゼロリセットする。以後、再び次の16ms処理までのカウントを行うためである。
Thus, every 16 ms counted by the interrupt counter, the
In that case, first, in step S105, the interrupt counter is reset to zero. Thereafter, the counting up to the next 16 ms processing is performed again.
次にステップS106で演出制御CPU200は、エラー処理を行う。このエラー処理としては、RAMクリアエラー中、役物エラー中、右打ちエラー中などにおけるエラー処理タイマの処理、各種エラーが発生した際のエラー報知のためのシナリオ登録処理、エラー報知後のエラーシナリオのクリア処理などを行うこととなる。
特に本実施の形態の場合、該ステップS106では、所定のエラー検知に応じたボリュームMAXエラーフラグの設定処理も行う。ボリュームMAXエラーとは、その発生に応じて出力される音(エラー音)のボリュームをMAXにすべきとされたエラーを意味する。ボリュームMAXエラーが検知された場合、すなわちエラー音をMAXで出力すべきとされた場合は、ボリュームMAXエラーフラグとして例えば0x5Aを設定し、ボリュームMAXエラーが検知されない場合はボリュームMAXエラーフラグとして例えば0x00を設定する。
In step S106, the
In particular, in the case of the present embodiment, in step S106, a volume MAX error flag setting process corresponding to a predetermined error detection is also performed. The volume MAX error means an error for which the volume of a sound (error sound) output in response to the occurrence should be set to MAX. When a volume MAX error is detected, that is, when an error sound is to be output by MAX, for example, 0x5A is set as a volume MAX error flag, and when a volume MAX error is not detected, for example, 0x00 is set as a volume MAX error flag. Set.
次にステップS107では、演出制御CPU200はデモ処理を行う。このデモ処理では、再生音の制御、デモムービーの実行、役物原点補正のそれぞれについてのシナリオ登録や、そのコマンドセットなどの処理を行う。客待ち状態などでは、このデモ処理で設定されたシナリオが実行されることでデモムービー表示が実行される。
Next, in step S107, the
ステップS108では、演出制御CPU200はコマンド解析処理を行う。このコマンド解析処理では、演出制御CPU200が、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。そして読み出した演出制御コマンドに対応した演出制御処理を行う。詳しくは図10,図11で後述する。
In step S108, the
ステップS109では、演出制御CPU200は入力検知処理を行う。この入力検知処理では、操作部60の操作子(パトライトスイッチ11、演出ボタン12、十字キー13)の操作による入力の検知を行い、入力を検知した場合、その操作に応じた処理を行う。
In step S109, the
ステップS110では、演出制御CPU200はシナリオ更新処理を行う。この処理ではメインシナリオの更新、サブシナリオの更新が行われる。その際には装飾ランプ部64,65の点灯パターン登録、再生する音の登録、可動体役物の駆動のためのモータ動作の登録なども行われる。詳しくは図14,図15を用いて後述する。
In step S110, effect control CPU200 performs a scenario update process. In this process, the main scenario and subscenario are updated. At that time, lighting pattern registration of the
ステップS111では、演出制御CPU200は音再生処理を行う。演出制御CPU200は、シナリオデータに基づきワークに音チャネルごとに登録されている音データに従って、フレーズ番号やボリューム等のデータを音源IC59に出力する。これによってスピーカ25からの効果音、音楽・音声等の再生出力が行われる。
なお、この音再生処理については図32により後述する。
In step S111, the
This sound reproduction process will be described later with reference to FIG.
ステップS112では、演出制御CPU200は役物エラー処理を行う。ここでは可動体役物の原点復帰がなされていないなどの位置エラー判定などを行う。
In step S112, the
ステップS113では演出制御CPU200は、LED駆動データ更新を行う。ここでは、シナリオデータに基づいてワークにランプチャネルとして登録されているランプデータに基づいて、LED出力データ(駆動データ)を作成する処理が行われる。詳しくは図20を用いて後述する。LED出力データは、1msタイマ割込処理において所定のタイミングで各LEDドライバ90に対して出力される。
In step S113, the
ステップS114では、演出制御CPU200は、演出制御RAM202のワーク領域を対象としてチェックサム算出及びその保存を行い、またステップS115では、バックアップデータの保存を行う。
さらにステップS116ではシナリオ更新カウンタをゼロリセットする。シナリオ更新カウンタは後述の1msタイマ割込処理でインクリメントされるカウンタである。
In step S114, the
In step S116, the scenario update counter is reset to zero. The scenario update counter is a counter that is incremented by a 1 ms timer interrupt process described later.
以上のような16ms処理が、図8のメインループ処理において16ms経過毎に行われる。
The 16 ms processing as described above is performed every 16 ms in the main loop processing of FIG.
[4−2:1msタイマ割込処理]
次に図9により1msタイマ割込処理を説明する。演出制御CPU200は、タイムカウントにより1ms毎に発生する割込要求に応じて、図9の1msタイマ割込処理を実行する。
この1msタイマ割込処理においては、まずステップS201では主制御CPU100からのテストコマンドに応じたチェックサム算出中であるか否かを判断する。チェックサム算出中でなければ、演出制御CPU200はステップS202の入力処理に進む。
[4-2: 1ms timer interrupt processing]
Next, the 1 ms timer interrupt process will be described with reference to FIG. The
In this 1 ms timer interrupt process, first, in step S201, it is determined whether or not a checksum is being calculated according to a test command from the
ステップS202の入力処理とは、上述の図8のステップS109の入力検知処理とともに操作子の操作による入力検知を行うための1ms毎の処理である。例えばこの入力処理では、操作子の操作検出信号について、信号波形にエッジが検出されたら入力カウンタをリセットし、その後、エッジが発生しない期間、入力カウンタをカウントアップしていく処理を行う。1msタイマ割込処理において、入力情報(入力信号波形のHまたはL)が検知され、またエッジ有無により、入力カウンタのリセット又はインクリメントが行われる。そしてメインループ処理(16ms処理)におけるステップS109で、入力カウンタの値が16以上となっており、前回とは入力情報が変化している場合に、入力変化を認識するようにしている。
このような入力処理(S202)及び入力検知処理(S109)により、ノイズ・チャタリングによる入力誤認識の防止がはかられる。また、入力カウンタを用いており、本実施の形態では例えば16ビットカウンタを用いて65535ms(約65秒)までなどをカウントできるようにしているため、いわゆる長押しの検出も可能となる。
The input process in step S202 is a process for every 1 ms for performing input detection by operating the operator together with the input detection process in step S109 of FIG. For example, in this input process, when an edge is detected in the signal waveform of the operation detection signal of the operation element, the input counter is reset, and thereafter, the input counter is counted up during a period in which no edge occurs. In the 1 ms timer interrupt process, input information (H or L of the input signal waveform) is detected, and the input counter is reset or incremented depending on the presence or absence of an edge. In step S109 in the main loop process (16 ms process), when the input counter value is 16 or more and the input information has changed from the previous time, the input change is recognized.
Such input processing (S202) and input detection processing (S109) can prevent erroneous input recognition due to noise chattering. In addition, since an input counter is used and, in this embodiment, for example, a 16-bit counter can be used to count up to 65535 ms (about 65 seconds), so-called long press can be detected.
ステップS203では、演出制御CPU200はモータ動作更新処理を行う。この場合、演出制御CPU200は、シナリオデータに基づいてワーク(図16Cで説明するモータデータ登録情報)にモータチャネルとして登録されているモータデータに基づいて、モータ駆動データを作成する処理を行う。これは可動体役物モータ部65の各モータを駆動制御するために盤ドライバ部62のLEDドライバに出力するモータ駆動データである。なお、本実施の形態では、LED駆動データ更新は上記ステップS113により16ms毎に行われる一方、モータデータ更新は1ms毎に行われることになる。
モータ動作更新処理については図36〜図43で後述する。
ステップS204では、演出制御CPU200は、モータ駆動データを出力する。上述のように盤ドライバ部62の一部のLEDドライバ90には、可動体役物モータ部65のステッピングモータ121等が接続されている。このステップS204では、これらステッピングモータ121に対する駆動データとしてのシリアルデータを、盤ドライバ部62の所定のLEDドライバ90(ステッピングモータ121を駆動するLEDドライバ90)に対して出力することになる。
モータ出力処理については図44で後述する。
In step S203, the
The motor operation update process will be described later with reference to FIGS.
In step S204, the
The motor output process will be described later with reference to FIG.
ステップS205では、演出制御CPU200は、割込みカウンタの値に応じて各処理を実行する。割込みカウンタは上述の16ms処理のステップS105でゼロリセットされ、1msタイマ割込処理のステップS207でインクリメントされる。従って、1msタイマ割込処理でステップS205が実行される際には、割込みカウンタの値は0〜15のいずれかとなっている。
この割込みカウンタの値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個に対して行われる。
In step S205, the
According to the interrupt
The initialization of the
ステップS206では、演出制御CPU200は、液晶制御基板52に対する演出制御コマンドの出力を行う。例えば1回の1msタイマ割込処理において、1コマンド(2バイト)の送信を行う。つまりモード及びイベントとしての2バイトの演出制御コマンドが送信される。
その後、演出制御CPU200はステップS207で割込みカウンタのインクリメントを行い、またステップS208でシナリオ更新カウンタのインクリメントを行う。そしてシナリオ更新カウンタの値が100未満であれば、1msタイマ割込処理を終える。
なお、シナリオ更新カウンタは上述のように16ms処理のステップS116でゼロリセットされるため、通常はシナリオ更新カウンタの値が100以上となることはない。100以上となるのは、演算異常、処理応答異常などにより16ms処理が実行されない場合や、16ms処理内の或る処理の進行が停止しているような場合である。このような場合は、無限ループに入り、WDTによってタイムアップ処理が行われるのを待つことになる。
In step S206, the
Thereafter, the
Since the scenario update counter is reset to zero in step S116 of the 16 ms process as described above, the scenario update counter value does not normally exceed 100. The value of 100 or more is a case where the 16 ms process is not executed due to a calculation abnormality, a process response abnormality or the like, or the progress of a certain process in the 16 ms process is stopped. In such a case, an infinite loop is entered, and the time-up process is performed by WDT.
1msタイマ割込処理に入った際に、ステップS201でチェックサム算出中と判断された場合は、演出制御CPU200は処理をステップS210に進め、WDTをクリアする。そしてステップS211で液晶制御基板52に対する演出制御コマンドの送信出力を行う。そしてステップS212で割込みカウンタをインクリメントして1msタイマ割込処理を終える。
When it is determined that the checksum is being calculated in step S201 when entering the 1 ms timer interrupt process, the
[4−3:コマンド解析処理]
続いて、16ms処理として図8のステップS108で行われるコマンド解析処理について、図10、図11で説明する。演出制御CPU200は、ステップS108のコマンド解析処理として、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。この具体的な処理として、図10のステップS301〜F308の処理を行う。
[4-3: Command analysis processing]
Next, the command analysis processing performed in step S108 of FIG. 8 as 16 ms processing will be described with reference to FIGS. The
演出制御部51には、主制御部50から送信されてきた演出制御コマンドを取り込むコマンド受信バッファが、例えば演出制御RAM202に用意される。演出制御CPU200は、まず図10のステップS301で、コマンド受信バッファの読み出しアドレスを示すリードポインタと、書き込みアドレスを示すライトポインタの確認を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
In the
The light pointer is updated in response to the command reception, and the received effect control command is stored in the address indicated by the light pointer accordingly. The read pointer is updated when reading from the command reception buffer is performed (step S302). Therefore, if the read pointer is not the write pointer, the effect control command that has not been read is stored in the command reception buffer. Therefore, if the read pointer is not the write pointer, the process goes to step S302, and the
上述したように1つの演出制御コマンドは、モードとしての1バイトとイベントとしての1バイトの2バイトで形成されている。演出制御CPU200はステップS303で、ロードした1バイトのコマンドデータが、モードであるかイベントであるかを確認する。この確認は、8ビット(Bit0〜Bit7)のうちのBit7の値により行われる。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
As described above, one presentation control command is formed of two bytes, one byte as a mode and one byte as an event. In step S303, the
If it is the mode, the process proceeds to step S304 as a process for receiving the upper data of the command, and the read command data is saved in the register “command HI byte”. Also, the “command LO byte” register is cleared. Then, the process returns to step S301.
Even if the read pointer is not equal to the write pointer, the effect control command that has not yet been read is stored in the command reception buffer, and thus the process proceeds to step S302, where the
If the read command is an event, the process proceeds from step S303 to S305 as processing for receiving lower-order data of the command, and the read command data is saved in the register “command LO byte”.
モード及びイベントのコマンドデータが、レジスタ「コマンドHIバイト」「コマンドLOバイト」にセーブされることで、演出制御CPU200は1つのコマンドを取り込んだことになる。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は図11で後述する。
The command data of the mode and the event is saved in the registers “command HI byte” and “command LO byte”, so that the
Therefore, the
リードポインタ=ライトポインタとなるのは、演出制御CPU200がまだ取り込んでいない演出制御コマンドがコマンド受信バッファには存在しない場合である。そこで、新たな取り込みは不要であるため、ステップS307に進む。この場合、図柄コマンド待ちの状態で100ms経過したか否かを確認する。そのような事態となっていなければ、図10のコマンド解析処理を終える。一方、図柄コマンド待ちの状態で100ms経過していたのであれば、ステップS308でコマンド欠落における図柄変動の処理を行うこととなる。
The read pointer = write pointer is when the effect control command that has not yet been captured by the
上記のステップS306におけるコマンド対応処理の例を図11で説明する。
図11Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず図11AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、装飾ランプ部63,64におけるLEDの消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
An example of the command response process in step S306 will be described with reference to FIG.
FIG. 11A shows basic processing as command response processing. In response to the reception of the 2-byte effect control command, the
These processes are not performed unless in the test mode.
Then, the
演出制御コマンドとしては、例えば特別図柄変動パターン指定コマンド、特別図柄指定コマンド、保留球減算コマンド、保留球加算コマンド、エラー表示指定コマンド、大当たり開始指定コマンド・・・など多様に設定されている。ステップS330では、演出制御CPU200は、受信したコマンドに対応して、プログラムで規定された処理を行う。ここでは図11B、図11C、図11D、図11Eで、4つの演出制御コマンドを挙げて、具体的処理を例示する。
As the effect control command, for example, a special symbol variation pattern designation command, a special symbol designation command, a holding ball subtraction command, a holding ball addition command, an error display designation command, a jackpot start designation command, etc. are variously set. In step S330, the
図11Bは、ステップS330でのコマンド処理として、変動パターンコマンドを取り込んだ場合の処理S330aを示している。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
図11Cは、ステップS330でのコマンド処理として、図柄コマンドを取り込んだ場合の処理S330bを示している。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、変動開始処理を行う。この変動開始処理では、変動パターンコマンドや図柄コマンドに応じた図柄変動動作のシナリオ設定や、変動表示中に出現させるべき予告演出の実行有無及びその種別を抽選により決定し、決定した予告演出のシナリオ設定を行う。さらに、それらに同期する液晶表示のコマンド送信も行う。
この変動開始処理の実行後、演出制御CPU200は、ステップS335で変動パターンコマンドの削除を行う。
FIG. 11B shows a process S330a when a variation pattern command is fetched as the command process in step S330.
In this case, the
FIG. 11C shows a process S330b when a symbol command is fetched as the command process in step S330.
In this case, the
If a variation pattern command has already been received when the symbol command is received, the process proceeds to step S333, and first, scenario registration for the operation of correcting the accessory origin is performed. In step S334, variation start processing is performed. In this variation start process, the scenario setting of the symbol variation operation according to the variation pattern command and symbol command, the presence / absence of execution of the announcement effect that should appear during the variation display, and its type are determined by lottery. Set up. Furthermore, it also transmits commands for liquid crystal display synchronized with them.
After executing this variation start process, the
図11Dは、ステップS330でのコマンド処理として、電源投入コマンドを取り込んだ場合の処理S330cを示している。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
FIG. 11D shows a process S330c when a power-on command is captured as the command process in step S330.
In this case, the
Then, in step S338, an error release command is transmitted, in step S339 the accessory error information is cleared, in step S340, the accessory operation is stopped, in step S341, a power-on scenario is registered, and in step S342, the power is transmitted to the liquid
図11Eは、ステップS330でのコマンド処理として、RAMクリアコマンドを取り込んだ場合の処理S330dを示している。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
FIG. 11E shows a process S330d when a RAM clear command is fetched as the command process in step S330.
In this case, the
In step S344, an error cancel command is transmitted, and in step S345, a RAM clear error set and an error notification timer are set. In step S346, information related to the lottery process in the
[4−4:シナリオ登録・削除処理]
次にシナリオ登録・削除処理について説明する。シナリオとは演出制御やエラー処理その他、各種の実行すべき動作を規定したデータである。実行すべきシナリオのデータは、シナリオ登録情報として演出制御RAM202のワーク領域に登録される。図16Aに示すシナリオ登録情報の構造については後述するが、シナリオ登録情報としては、0〜63までの64個のシナリオチャネルが用意されている。この64個のシナリオチャネルに登録されたシナリオは同時に実行可能とされる。以下、シナリオチャネルを「sCH」で示す。
シナリオ登録処理とは、シナリオ登録情報における任意のシナリオチャネルsCHに、登録を要求されたシナリオ番号のシナリオを登録する処理である。原則的には、sCH0〜sCH63のシナリオチャネルは、どのチャネルが用いられても良い。
[4-4: Scenario registration / deletion processing]
Next, scenario registration / deletion processing will be described. The scenario is data defining various operations to be executed such as production control and error processing. The scenario data to be executed is registered in the work area of the
The scenario registration process is a process of registering a scenario having a scenario number requested to be registered in an arbitrary scenario channel sCH in the scenario registration information. In principle, any scenario channel of sCH0 to sCH63 may be used.
以下説明するシナリオ登録は、例えばステップS106のエラー処理、ステップS107のデモ処理、ステップS108のコマンド解析処理などの処理過程において、必要時に呼び出され、実行される。例えば先に述べた図11CのステップS333、図11DのステップS341などが、シナリオ登録が実行される場合の一例となる。 Scenario registration to be described below is called and executed when necessary, for example, in the process of error processing in step S106, demo processing in step S107, command analysis processing in step S108, and the like. For example, step S333 in FIG. 11C and step S341 in FIG. 11D described above are an example of the case where scenario registration is executed.
図12の処理として、演出制御CPU200は、コマンド或いはプログラムグラム上で指定されるシナリオに対応したシナリオ番号と待機時間(delay)の値を、ワーク(シナリオ登録情報)に登録する処理を行う。
ステップS401で演出制御CPU200は、まず今回登録すべきシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、何もせずに処理を終える。
As the process of FIG. 12, the
In step S401, the
シナリオ番号が適正であれば、演出制御CPU200はステップS402で変数Bをゼロに設定する。変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、空きチャネルを順次探索するために使用する変数である。さらに変数Bは、まだ探索(空きチャネルであるか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
If the scenario number is appropriate,
演出制御CPU200は、ステップS403で、「追加ポインタ」+Bのシナリオチャネルが空きであるか否かを確認する。追加ポインタとは、シナリオ登録を行った際に、後述のステップS407で設定されるポインタである。図12の処理を開始する時点では、追加ポインタの値は、前回登録したシナリオチャネルの次のシナリオチャネルを示す値となっている。なお、追加ポインタの初期値(初期状態から図12の処理が初めて行われる時の値)は0である。
「追加ポインタ」+Bのシナリオチャネルが空きでなければ、演出制御CPU200はステップS404で変数Bをインクリメントする。
ステップS405でB<64でなければ、この図12の処理を終える。これは全シナリオチャネルについて探索を行ったが、空きチャネルがなくてシナリオ登録が不可能となる場合である。
まだ全シナリオチャネルの探索(空きチャネルであるか否かの確認)を行っていない時点では、ステップS405でB<64である。その場合はステップS406の確認処理を行い、「追加ポインタ」+Bの値がシナリオチャネルsCHの最大値を超えた値「64」以上となっていなければステップS403に戻る。
また「追加ポインタ」+Bの値が「64」以上となっていた場合は、ステップS407で追加ポインタの値の補正処理を行う。具体的には「追加ポインタ」+Bの値が「64」となった場合、追加ポインタの値を「64」減算する処理を行う。そしてステップS403に戻る。
In step S403, the
If the “addition pointer” + B scenario channel is not empty, the
If B <64 is not satisfied in step S405, the processing in FIG. This is a case where all scenario channels have been searched but scenario registration is impossible because there are no free channels.
At a time point when all scenario channels have not been searched (confirmation of whether or not they are free channels), B <64 in step S405. In that case, the confirmation process of step S406 is performed, and if the value of “addition pointer” + B is not equal to or greater than the value “64” exceeding the maximum value of the scenario channel sCH, the process returns to step S403.
If the value of “addition pointer” + B is “64” or more, correction processing for the value of the addition pointer is performed in step S407. Specifically, when the value of “addition pointer” + B becomes “64”, a process of subtracting “64” from the value of the addition pointer is performed. Then, the process returns to step S403.
このステップS403〜S407の処理によれば、前回登録したシナリオチャネルの次のシナリオチャネルから、順次シナリオチャネルが空きか否かが確認されることになる。
つまり、ステップS404での変数Bのインクリメントにより、ステップS403が行われるたびに確認されるシナリオチャネルsCHが、順次1つずつ進行することとなる。
また、変数BはステップS402でゼロリセットされてからステップS404でインクリメントされるものであるため、ステップS405でB<64とはならない場合(つまり変数Bが64に達した場合)は、既にステップS403の処理が64回行われた場合である。これは全シナリオチャネルsCH0〜sCH63を調べたが、空きがなかったと判断された場合である。そのため登録不可能として図12の処理を終えることとなる。
According to the processing in steps S403 to S407, it is sequentially confirmed from the scenario channel next to the previously registered scenario channel whether or not the scenario channel is empty.
That is, the scenario channel sCH that is confirmed every time step S403 is performed sequentially advances one by one due to the increment of the variable B in step S404.
Since variable B is zero-reset in step S402 and incremented in step S404, if B <64 is not satisfied in step S405 (that is, if variable B reaches 64), step S403 has already been performed. This process is performed 64 times. This is a case where all scenario channels sCH0 to sCH63 have been examined, but it is determined that there is no free space. For this reason, the processing of FIG.
また、「追加ポインタ」の値は、前回登録したシナリオチャネルの次のシナリオチャネルを示す値であるため、まだ全シナリオチャネルの空き確認を行っていないB<64の時点でも、「追加ポインタ」+Bの値(つまり次に確認しようとするシナリオチャネルsCHの番号)が「64」以上となることがある。具体的には、直前のステップS403の時点で「追加ポインタ」+Bの値が63であり、シナリオチャネルsCH63について確認した後、ステップS404で変数Bがインクリメントされた場合である。このままでは、次に存在しないシナリオチャネルsCH64を指定することとなる。
そこでステップS406でこの点を確認し、「追加ポインタ」+Bの値が「64」となっていたら、ステップS407では、次に確認するシナリオチャネルを「sCH0」に戻すために、追加ポインタの補正を行う。つまり追加ポインタの値を−64することで、「追加ポインタ」+Bの値が「0」となるようにする。これにより次のステップS403では、シナリオチャネルsCH0が空きであるか否か確認されるようにする。
Further, since the value of the “addition pointer” is a value indicating the next scenario channel of the scenario channel registered last time, the “addition pointer” + B even when B <64 when all the scenario channels are not yet confirmed. (That is, the number of the scenario channel sCH to be checked next) may be “64” or more. Specifically, the value of “addition pointer” + B is 63 at the time of immediately preceding step S403, and after confirming the scenario channel sCH63, the variable B is incremented in step S404. In this state, the scenario channel sCH64 that does not exist next is designated.
Therefore, this point is confirmed in step S406, and if the value of “addition pointer” + B is “64”, in step S407, correction of the addition pointer is performed to return the scenario channel to be confirmed next to “sCH0”. Do. That is, the value of “addition pointer” + B is set to “0” by setting the value of the addition pointer to −64. Thus, in the next step S403, it is confirmed whether or not the scenario channel sCH0 is empty.
ある時点のステップS403の処理で、空きのシナリオチャネルが発見されたら、演出制御CPU200はステップS408に進み、その空きのシナリオチャネルに、シナリオ番号、及び待機時間(delay)をセットする。またその他のシナリオ管理に必要なデータをゼロクリアする。
そしてステップS409で、追加ポインタを、登録を行ったシナリオチャネル+1の値に更新する。つまり今回登録を行ったシナリオチャネルの次のシナリオチャネルの値を、追加ポインタとして記憶しておき、次回の登録処理に使用できるようにする。なお、本実施の形態ではシナリオチャネルはsCH0〜sCH63の64チャネルのため追加ポインタの最大値は63となる。
If an empty scenario channel is found in the process of step S403 at a certain time, the
In step S409, the additional pointer is updated to the value of the registered
この図12の処理によれば、シナリオ登録の際に、前回登録を行ったシナリオチャネルの次のシナリオチャネルから、空きチャネルが探索される。追加ポインタの初期値は「0」であり、その後、登録に応じてステップS407で更新されていくが、この処理によれば、多くの場合、シナリオチャネルsCH0から順に使用されてシナリオ登録が行われる。そして、シナリオ登録の際には、前回の登録チャネルの次のシナリオチャネルから空きの確認が行われる。従って、殆どの場合、素早く空きチャネルが発見でき、シナリオ登録処理を効率的に実行することができる。これにより演出制御CPU200の処理負担は軽減される。
According to the processing of FIG. 12, at the time of scenario registration, an empty channel is searched from the scenario channel next to the scenario channel that was registered last time. The initial value of the additional pointer is “0”, and is subsequently updated in step S407 according to the registration. In many cases, according to this process, scenario registration is performed using the scenario channel sCH0 in order. . When the scenario is registered, the availability is confirmed from the scenario channel next to the previous registered channel. Therefore, in most cases, an empty channel can be found quickly, and the scenario registration process can be executed efficiently. As a result, the processing burden on the
なお、処理の変形例として、ステップS407で更新する追加ポインタの値は、登録を行ったシナリオチャネルの番号としておき、ステップS402では変数Bに1を代入してもよい。但しその場合、ステップS405ではB≦65であるか否かの判断を行うようにする。 As a modification of the process, the value of the additional pointer updated in step S407 may be set as the number of the scenario channel that has been registered, and 1 may be substituted for variable B in step S402. In this case, however, it is determined in step S405 whether B ≦ 65.
次にシナリオ削除処理について説明する。これはワークの或るシナリオチャネルに登録されているシナリオを削除する処理である。
図13Aは、或るシナリオをシナリオ登録情報から削除する場合の演出制御CPU200の処理を示している。
演出制御CPU200は、コマンド或いはプログラムグラム上で指定される、削除するシナリオ番号(後述のメインシナリオ番号(mcNo))の値に基づいて、図13Aの処理を開始する。まずステップS421で演出制御CPU200は、削除要求にかかるシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、削除せずに処理を終える。
Next, scenario deletion processing will be described. This is a process for deleting a scenario registered in a certain scenario channel of the work.
FIG. 13A shows processing of the
The
シナリオ番号が適正であれば、演出制御CPU200はステップS422で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象のシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
If the scenario number is appropriate,
演出制御CPU200は、ステップS423で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号のものであるか否かを確認する。シナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号でなければ、ステップS424で変数Bをインクリメントし、ステップS425でB<64であることを確認して、ステップS423の処理を行う。
このステップS423,F424の処理によれば、シナリオチャネルsCH0からシナリオチャネルsCH63に向かって順に、削除対象のシナリオを探索していくこととなる。
ステップS423でシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号であった場合は、ステップS426に進み、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオを削除する処理を行う。
以上により、要求された或るシナリオ番号のシナリオをワーク(シナリオ登録情報)から削除する処理が行われる。
なお、ステップS425でB<64ではないと判断される場合、つまり変数Bが64に達した場合は、シナリオチャネルsCH0〜sCH63の全てを探索したが、削除対象のシナリオが登録されていなかったということになるため、処理を終える。
In step S423, the
According to the processing of steps S423 and F424, the scenario to be deleted is searched in order from the scenario channel sCH0 to the scenario channel sCH63.
If the scenario registered in the scenario channel sCH (B) is the scenario number to be deleted in step S423, the process proceeds to step S426, and the scenario registered in the B area, that is, the scenario channel sCH (B) is deleted. Perform the process.
As described above, the process of deleting the scenario with the requested scenario number from the work (scenario registration information) is performed.
If it is determined in step S425 that B <64 is not satisfied, that is, if the variable B reaches 64, all the scenario channels sCH0 to sCH63 have been searched, but the scenario to be deleted has not been registered. Therefore, the process is finished.
図13Bは、或る範囲のシナリオを削除する処理を示している。削除シナリオが範囲で指定された場合に、この処理が行われる。
演出制御CPU200は、コマンド或いはプログラム上で、或るシナリオ番号の範囲で削除指定された場合、まずステップS431で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象範囲に該当するシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象範囲に該当するシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
FIG. 13B shows processing for deleting a certain range of scenarios. This process is performed when a deletion scenario is specified by a range.
The
演出制御CPU200は、ステップS432で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号であるか否かを確認する。そしてシナリオチャネルsCH(B)に登録されているシナリオが削除対象の範囲内のシナリオ番号であれば、ステップS433でシナリオチャネルsCH(B)に登録されているシナリオを削除する。そしてステップS434に進む。
シナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号ではなければ、ステップS433を行わずにステップS434に進む。
演出制御CPU200はステップS434では、変数Bをインクリメントし、ステップS435でB<64であることを確認して、ステップS432に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ範囲削除処理を終える。
以上により、シナリオ番号範囲の1又は複数のシナリオについて、ワーク(シナリオ登録情報)からの削除が行われる。
In step S432, the
If the scenario registered in the scenario channel sCH (B) is not a scenario number within the range targeted for deletion, the process proceeds to step S434 without performing step S433.
The
As described above, one or more scenarios in the scenario number range are deleted from the work (scenario registration information).
図13Cは登録されているシナリオを全て削除する処理を示している。例えばシステム上の都合により、やむを得ずシナリオを削除する際に呼び出される処理である。なお、保護対象とされたシナリオは削除しないようにする。
演出制御CPU200は、シナリオ全削除が要求された場合、まずステップS441で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、保護対象のシナリオを登録したシナリオチャネルを確認するために使用する変数となる。さらに変数Bは、まだ確認(保護対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
FIG. 13C shows a process for deleting all registered scenarios. For example, it is a process called when a scenario is unavoidably deleted due to circumstances on the system. Do not delete scenarios that are targeted for protection.
When it is requested to delete all scenarios, the
演出制御CPU200は、ステップS442で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが、保護対象のシナリオであるか否かを確認する。そして保護対象のシナリオであれば、削除せず、一方、保護対象のシナリオでなければ、ステップS443で、そのシナリオチャネルsCH(B)に登録されているシナリオを削除する。
そしてステップS444で変数Bをインクリメントし、ステップS445でB<64であればステップS442に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ全削除処理を終える。
以上により、ワークにシナリオ登録情報として登録されているシナリオについて、保護対象のシナリオを除く全シナリオの削除が行われる。
In step S442, the
In step S444, the variable B is incremented. If B <64 in step S445, the process returns to step S442. If the variable B has reached 64, the processing has been completed for all the scenario channels sCH0 to sCH63, and thus the scenario all deletion processing ends.
As described above, all scenarios other than the scenario to be protected are deleted from the scenario registered as scenario registration information in the work.
[4−5:シナリオ更新処理]
続いてメイン処理の16ms処理のステップS110で行われるシナリオ更新処理について説明する。シナリオ更新処理では図14、図15で説明するようにメインシナリオとサブシナリオの更新が行われる。
[4-5: Scenario update processing]
Next, the scenario update process performed in step S110 of the 16ms process of the main process will be described. In the scenario update process, the main scenario and the sub-scenario are updated as described with reference to FIGS.
まずシナリオ登録情報の構造を図16、図17で説明する。図16Aは、メインシナリオ及びサブシナリオとしてのシナリオ登録情報の構造を示している。このシナリオ登録情報は演出制御RAM202のワークエリアを用いて設定される。
先に述べたように本実施の形態では、シナリオ登録情報は、シナリオチャネルsCH0〜sCH63の64個のチャネルを有するものとされる。各シナリオチャネルsCHに登録されたシナリオについては同時に実行可能とされる。
First, the structure of scenario registration information will be described with reference to FIGS. FIG. 16A shows the structure of scenario registration information as a main scenario and a sub-scenario. This scenario registration information is set using the work area of the
As described above, in the present embodiment, the scenario registration information has 64 channels of scenario channels sCH0 to sCH63. Scenarios registered in each scenario channel sCH can be executed simultaneously.
図示のように各シナリオチャネルsCHに登録できる情報としては、サブシナリオ更新処理で用いるサブシナリオタイマ(scTm)、音/モータサブシナリオテーブルの実行ラインを示すサブシナリオ実行ライン(scIx)、ランプサブシナリオテーブルの実行ラインを示すサブシナリオ実行ラインlmp(lmpIx)、シナリオ更新処理に用いるメインシナリオタイマ(msTm)、メインシナリオテーブルの実行ラインを示すメインシナリオ実行ライン(mcIx)、メインシナリオ番号(mcNo)、メインシナリオに付加可能なオプションデータであるメインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)、チェックサム(checkSum)がある。 As shown in the figure, information that can be registered in each scenario channel sCH includes a sub-scenario timer (scTm) used in the sub-scenario update process, a sub-scenario execution line (scIx) indicating an execution line of the sound / motor sub-scenario table, and a lamp sub-scenario. Sub scenario execution line lmp (lmpIx) indicating the execution line of the table, main scenario timer (msTm) used for scenario update processing, main scenario execution line (mcIx) indicating the execution line of the main scenario table, main scenario number (mcNo), There are main scenario option (mcOpt), user option (userFn), waiting time (delay), and checksum (checkSum), which are optional data that can be added to the main scenario.
スピーカ25による音出力、装飾ランプ部63,64による発光、及び可動体役物モータ部65による可動体役物の駆動による演出を開始するときには、待機時間(delay)とメインシナリオ番号(scNo)をシナリオチャネルsCH0〜sCH63のうちの空いているシナリオチャネルに登録する。
待機時間(delay)は、シナリオチャネルsCHに登録してからそのシナリオが開始されるまでの時間を示す。なおこの待機時間(delay)は16ms処理毎に1減算される。待機時間(delay)が0の場合に、登録されたデータに対応した処理が実行されることとなる。
When the sound output by the
The waiting time (delay) indicates the time from registration to the scenario channel sCH until the scenario is started. The waiting time (delay) is decremented by 1 every 16 ms processing. When the waiting time (delay) is 0, processing corresponding to the registered data is executed.
図18には、メインシナリオテーブルの一部として、シナリオ番号1,2,3の例を示している。各シナリオ番号のシナリオとしては、シナリオの各ライン(行)に時間データとしてメインシナリオタイマ(msTm)の値が記述されるとともに、サブシナリオ番号(scNo)、オプション(OPT)を記述することができる。即ちメインシナリオテーブルでは、メインシナリオタイマ(msTm)による時間として、実行されるべきサブシナリオ(及び場合によってはオプション)が指定される。またシナリオ最終行には、シナリオデータ終了コードD_SEEND、又はシナリオデータループコードD_SELOPが記述される。
なお、メインシナリオタイマ(msTm)の値は、メインシナリオの開始時から、16ms処理で行われるシナリオ更新の処理で+1されるため、「1」とは16msを示すものとなる。各シナリオ番号のシナリオテーブルは、或る行におけるメインシナリオタイマ(msTm)の時間を経過すると、次の行へ進むことになる。各行の時間データは、その行が終わるタイミングを示している。
例えばシナリオ番号2の場合、1500×16msの時間としてサブシナリオ番号2の動作が指定され、次の500×16msの時間としてサブシナリオ番号20の動作が指定され、次の2000×16msの時間としてサブシナリオ番号21の動作が指定されている。その次の行はシナリオデータ終了コードD_SEENDである。シナリオデータ終了コードD_SEENDの場合、シナリオ登録情報(ワーク)から、このシナリオが削除される(後述する図14のステップS617参照)。
FIG. 18 shows an example of
Since the value of the main scenario timer (msTm) is incremented by 1 in the scenario update process performed in the 16 ms process from the start of the main scenario, “1” indicates 16 ms. The scenario table of each scenario number advances to the next line when the time of the main scenario timer (msTm) in a certain line has elapsed. The time data of each line indicates the timing when the line ends.
For example, in the case of
次に図16Bでランプデータ登録情報の構造を説明する。ランプデータ登録情報としては、ランプサブシナリオテーブルから選択されたシナリオ、即ち装飾ランプ部63,64による演出動作(点灯パターン)を示す情報が登録される。このランプデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
Next, the structure of the lamp data registration information will be described with reference to FIG. 16B. As the lamp data registration information, a scenario selected from the lamp sub-scenario table, that is, information indicating a rendering operation (lighting pattern) by the
In the present embodiment, the ramp data registration information has 16 channels of ramp channels dwCH0 to dwCH15. Priorities are set for each of the ramp channels dwCH0 to dwCH15, and the priority increases in order from the ramp channels dwCH0 to dwCH15. Therefore, the scenario (lamp sub-scenario) registered in the ramp channel dwCH15 is executed with the highest priority. For example, if a scenario is registered in the ramp channels dwCH3 and dwCH10, the scenario registered in the ramp channel dwCH10 is preferentially executed.
The ramp channel dwCH0 is mainly used for a lamp effect associated with BGM (Back Ground Music), the lamp channel dwCH15 is used for an error-related lamp effect, and the lamp channels dwCH1 to dwCH14 are used for a normal effect.
各ランプチャネルdwCHに登録できる情報としては、図示のように、登録した点灯パターンの番号を示す登録点灯ナンバ(lmpNew)、実行する点灯パターンの番号を示す実行点灯ナンバ(lmpNo)、ランプサブシナリオの実行ラインを示すオフセット(offset)、実行時間(time)、チェックサム(checkSum)がある。 As shown in the figure, information that can be registered in each lamp channel dwCH includes a registered lighting number (lmpNew) indicating the number of the registered lighting pattern, an execution lighting number (lmpNo) indicating the number of the lighting pattern to be executed, and a lamp sub-scenario. There are an offset indicating an execution line (offset), an execution time (time), and a checksum (checkSum).
図19Aにランプサブシナリオテーブルの一部として、ランプサブシナリオ番号1,2,3の例を示している。各番号のランプサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値が記述されるとともに、ランプチャネルと、各種の点灯パターンを示すランプナンバが記述される。また最終行には、ランプシナリオデータ終了コードD_LSENDが記述される。
FIG. 19A shows an example of lamp
このランプサブシナリオテーブルにおいて、各ラインの時間データ(time)は、そのサブシナリオが開始されてからの、当該ラインが開始される時間を示している。
16ms毎にメインシナリオタイマ(msTm)と、テーブルの時間データを比較して、一致した場合に、そのラインのランプナンバが、図16Bのランプデータ登録情報に登録される。登録されるランプチャネルdwCHは、当該ラインに示されたチャネルとなる。
例えば、上述の或るシナリオチャネルsCHにおいて、図18に示したシナリオ番号2が登録され、サブシナリオ番号2が参照されるとする。図19Aに示したランプサブシナリオ番号2では、1ライン目に時間データ(time)=0としてランプチャネル5(dwCH5)及びランプナンバ5が記述されている。この場合、メインシナリオタイマ(msTm)=0の時点で、まず当該1ライン目の情報が図16Bのランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=5として登録される。シナリオ登録情報(図16A)のサブシナリオ実行ラインlmp(lmpIx)の値は、次のラインの値(2ライン目)に更新される。これはランプチャネルdwCH5という比較的低い優先度で、点灯ナンバ5の点灯パターン動作の実行を行うための登録となる。
2ライン目については、500×16msとなった時点で同様の処理が行われる。即ちランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=6(つまり点灯ナンバ6の点灯パターンの指示)が登録される。
なお、時間データ(time)が連続する2ラインで同一の値であったら、その各ラインについての処理は同時に開始されることとなる。
後述するLED駆動データ更新処理では、このように更新されるランプデータ登録情報に基づいて、LED駆動データが作成される。
In this ramp sub-scenario table, the time data (time) of each line indicates the time at which the line is started after the sub-scenario is started.
When the main scenario timer (msTm) and the time data in the table are compared every 16 ms and they match, the lamp number of that line is registered in the lamp data registration information of FIG. 16B. The registered ramp channel dwCH is the channel indicated in the line.
For example, it is assumed that the
For the second line, the same processing is performed when it becomes 500 × 16 ms. That is, the registered lighting number (lmpNew) = 6 (that is, the
If the time data (time) has the same value for two consecutive lines, the processing for each line is started simultaneously.
In the LED drive data update process to be described later, LED drive data is created based on the lamp data registration information updated in this way.
次に図16Cでモータデータ登録情報の構造を説明する。モータデータ登録情報としては、音/モータサブシナリオテーブル(図19Bで後述)から選択されたシナリオを示す情報が登録される。このモータデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、モータデータ登録情報は、モータチャネルmCH0〜mCH7の8個のチャネルを有するものとされる。
各モータチャネルmCHに登録できる情報としては、図示のように、実行動作ナンバ(no)、登録動作ナンバ(noNew)、動作カウント(lcnt)、励磁カウンタ(tcnt)、実行ステップ(step)、動作ライン(offset)、親(移行元)/子(移行先)の属性(attribute)、親ナンバ(retNo)、戻りアドレス(retAddr)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、エラーカウンタ(errCnt)、現在の入力情報(currentSw)、ソフト上のスイッチ情報(softSw)、ソフト上のカウント(softCnt)がある。
Next, the structure of the motor data registration information will be described with reference to FIG. 16C. As the motor data registration information, information indicating a scenario selected from the sound / motor sub-scenario table (described later in FIG. 19B) is registered. This motor data registration information is also set using the work area of the
In the present embodiment, the motor data registration information is assumed to have eight channels of motor channels mCH0 to mCH7.
Information that can be registered in each motor channel mCH includes execution operation number (no), registration operation number (noNew), operation count (lcnt), excitation counter (tcnt), execution step (step), operation line as shown in the figure. (Offset), parent (migration source) / child (migration destination) attribute (attribute), parent number (retNo), return address (retAddr), loop start point (roopAddr), loop count (roopCnt), error counter (errCnt) ), Current input information (currentSw), software switch information (softSw), and software count (softCnt).
図19Bは、音/モータサブシナリオテーブルの一部として、音/モータサブシナリオ番号1,2の例を示している。
各番号の音/モータサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値(ms)が記述されるとともに、BGM、SE1、SE2、エラー音、音コントロール、モータ、ソレノイド/ユーザオプションの情報が記述可能とされる。また最終行には、シナリオデータ終了コードD_SEENDが記述される。
この音/モータサブシナリオテーブルに関しては、サブシナリオタイマ(scTm)の値が当該音/モータサブシナリオテーブル中の或るラインに記述された時間データ(time)の値になったら(なお最初は0である)、そのラインに記述されたBGM、SE1、SE2、エラー音、音コントロール、モータ、ソレノイド/ユーザオプションに応じた情報を音データ登録情報やモータデータ登録情報に登録することになる。
なお、各ラインの時間データ(time)は、当該ラインを開始するタイミングを示している。
FIG. 19B shows an example of sound /
As the sound / motor sub-scenario of each number, the time data (time) value (ms) is described in each line (row) of the scenario, and BGM, SE1, SE2, error sound, sound control, motor, solenoid / User option information can be described. In the last line, a scenario data end code D_SEEND is described.
With respect to this sound / motor sub-scenario table, if the value of the sub-scenario timer (scTm) becomes the value of time data (time) described in a certain line in the sound / motor sub-scenario table (initially 0) The information corresponding to the BGM, SE1, SE2, error sound, sound control, motor, solenoid / user option described in the line is registered in the sound data registration information and motor data registration information.
The time data (time) of each line indicates the timing at which the line is started.
図19Bの音/モータサブシナリオテーブルにおいて、モータに関するデータは、図に「モータ0〜3」と示す4バイト、及び「モータ4〜7」と示す4バイトの計8バイトとなる。これは最大8個のモータ(可動体役物モータ部65における各モータ121:図3、図5参照)に対応できる情報として、モータ1個につき1バイトのデータでモータの動作パターン番号を示すように構成されている。
モータ番号に対応するモータチャネルに対して、この動作パターン番号がセットされる。
また、音/モータサブシナリオテーブルに記述されるモータの情報をモータデータ登録情報としてワークに登録する具体的な処理については図33により後述する。
In the sound / motor sub-scenario table of FIG. 19B, data relating to the motor is a total of 8 bytes, 4 bytes indicated as “motor 0-3” and 4 bytes indicated as “motor 4-7” in the figure. As information that can correspond to a maximum of 8 motors (each
This operation pattern number is set for the motor channel corresponding to the motor number.
A specific process for registering the motor information described in the sound / motor sub-scenario table in the work as motor data registration information will be described later with reference to FIG.
また図17は、音データ登録情報を示している。音データ登録情報としては、音/モータサブシナリオテーブル(図19Bで後述)から選択されたシナリオを示す情報が登録される。この音データ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、音データ登録情報は、音チャネルaCH0〜aCH15の16個のチャネルを有するものとされる。この音チャネルaCH0〜aCH15のそれぞれは、音源IC59の入力チャネル(同じく16個)のそれぞれに対応するものである。
各音チャネルaCHに登録できる情報としては、図示のように、1次ボリューム遷移量(frzVq)、1次ボリューム(frzVl)、遷移量変化(rsv2)、ボリューム変化(rsv1)、フレーズ変化(rsv0)、ステレオ(frzSt)、ループ(frzLp)、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)、及び2次ボリューム(scdVl)がある。
FIG. 17 shows sound data registration information. As the sound data registration information, information indicating a scenario selected from the sound / motor sub-scenario table (described later in FIG. 19B) is registered. This sound data registration information is also set using the work area of the
In the present embodiment, the sound data registration information has 16 channels of sound channels aCH0 to aCH15. Each of the sound channels aCH0 to aCH15 corresponds to each of the input channels (also 16) of the
Information that can be registered in each sound channel aCH includes primary volume transition amount (frzVq), primary volume (frzVl), transition amount change (rsv2), volume change (rsv1), phrase change (rsv0) as shown in the figure. , Stereo (frzSt), loop (frzLp), phrase number hi (frzHi), phrase number low (frzLo), and secondary volume (scdVl).
ここで、1次ボリュームとは、或るフレーズの再生開始を指示するシナリオデータ(後述するBGM、SE1、SE2、エラー)において、再生すべきフレーズのフレーズ番号の情報と共に記述されるボリューム情報である。
また、2次ボリュームとは、1次ボリュームとの掛け合わせで最終的な再生ボリュームを定めるボリューム情報となる。
1次ボリュームと2次ボリュームとの違いは、以下の通りである。
1次ボリュームは、上記のようにフレーズの再生開始を指示するシナリオデータにも記述されるのに対し、2次ボリュームは後述する音コントロール(音制御情報)のシナリオデータに記述される。
また、本実施の形態の場合、1次ボリュームによっては、1次ボリューム遷移量(frzVq)の情報と組み合わされることで、再生中のフレーズに対するボリューム制御が可能とされ、該1次ボリュームの制御によってフレーズのフェードイン再生/フェードアウト再生が可能とされる。後述もするように、これらフェードイン再生/フェードアウト再生の指示は、音コントロールとしてのシナリオデータに基づき実行される。
2次ボリュームは、通常はパチンコ遊技機1の裏側に設けられたボリュームスイッチの状態に応じた値に設定され、後述するようにエラー時や所望のフレーズを消音させたいとき等にMAX値とは異なる値が設定される。
2次ボリュームの変化指示は、音コントロールとしてのシナリオデータによっても可能とされる(この点についても後述する)。
Here, the primary volume is volume information described together with phrase number information of a phrase to be reproduced in scenario data (BGM, SE1, SE2, error described later) instructing the start of reproduction of a certain phrase. .
The secondary volume is volume information that determines the final reproduction volume by multiplying with the primary volume.
The difference between the primary volume and the secondary volume is as follows.
As described above, the primary volume is also described in the scenario data for instructing the start of phrase reproduction, whereas the secondary volume is described in the scenario data for sound control (sound control information) described later.
Further, in the case of the present embodiment, depending on the primary volume, volume control for the phrase being played back is possible by combining with the information of the primary volume transition amount (frzVq). Phrase fade-in playback / fade-out playback is enabled. As will be described later, these fade-in playback / fade-out playback instructions are executed based on scenario data as sound control.
The secondary volume is usually set to a value according to the state of the volume switch provided on the back side of the
The secondary volume change instruction can also be made by scenario data as sound control (this will also be described later).
1次ボリューム遷移量frzVqは、1次ボリュームを変化させる時間(速さ)を表す情報となる。
遷移量変化rsv2は、1次ボリューム遷移量frzVqを変化させるか否かを表す情報であり、ボリューム変化rsv1は、フレーズ再生時に1次ボリュームを変化させるか否かを表す情報となる。また、フレーズ変化rsv0はフレーズ番号を書き替えるか否かを表す情報であり、ステレオfrzStはステレオ再生/モノラル再生の何れであるか、ループfrzLpは無限ループ再生かループ再生しないかの何れかをそれぞれ表す情報となる。
The primary volume transition amount frzVq is information indicating the time (speed) for changing the primary volume.
The transition amount change rsv2 is information indicating whether or not the primary volume transition amount frzVq is changed, and the volume change rsv1 is information indicating whether or not the primary volume is changed during phrase reproduction. The phrase change rsv0 is information indicating whether or not the phrase number is rewritten. The stereo frzSt is either stereo playback or monaural playback, and the loop frzLp is either infinite loop playback or no loop playback. It becomes information to represent.
図示するように、1次ボリューム遷移量、1次ボリューム、2次ボリュームのデータサイズはそれぞれ1バイト(8ビット)である。また、遷移量変化、ボリューム変化、フレーズ変化、ステレオ、ループの各情報は1ビットされる。さらに、フレーズ番号hiは3ビット、フレーズ番号lowは1バイトとされる。即ち、フレーズ番号の情報は11ビットで構成され、従って最大で2048個のフレーズの指定が可能とされる。 As shown in the figure, the primary volume transition amount, the primary volume, and the data size of the secondary volume are each 1 byte (8 bits). Each information of transition amount change, volume change, phrase change, stereo, and loop is 1 bit. Furthermore, the phrase number hi is 3 bits, and the phrase number low is 1 byte. That is, the phrase number information is composed of 11 bits, so that a maximum of 2048 phrases can be specified.
ここで、本例において、ステレオ再生の場合は、隣接関係にある2つの音チャネルaCHを用いる。具体的には、偶数チャネルである音チャネルaCHnとその次の奇数チャネルである音チャネルaCHn+1とを使用する。
ステレオ再生を指示するシナリオデータには、ステレオ再生すべきフレーズを指定するためのフレーズ番号(指定情報としてはLchとRchとで共通の1つのフレーズ番号が用いられる)の情報と、ステレオ再生を指定するための情報とが記述され、該シナリオデータに基づき、音データ登録情報における偶数の音チャネルaCHnと奇数の音チャネルaCHn+1とにこれらフレーズ番号とステレオ再生の指示情報とが登録される(上述のフレーズ番号hi,lowとステレオfrzSt)。
In this example, in the case of stereo reproduction, two sound channels aCH that are adjacent to each other are used. Specifically, the sound channel aCHn that is an even channel and the sound channel aCHn + 1 that is the next odd channel are used.
In the scenario data instructing stereo playback, information on the phrase number for designating a phrase to be played back in stereo (one phrase number common to Lch and Rch is used as designation information) and stereo playback are designated. Based on the scenario data, the phrase number and stereo playback instruction information are registered in the even sound channel aCHn and the odd sound channel aCHn + 1 in the sound data registration information (described above). Phrase numbers hi, low and stereo frzSt).
図19Bの音/モータサブシナリオテーブルにおいて、音に関するデータはBGM、SE1、SE2、エラー音、音コントロールが記述可能とされる。
音/モータサブシナリオテーブルにおけるSE(SE1及びSE2)とは、BGMとエラー音以外の演出に係る音を意味する。いわゆる予告演出時の音(予告音)は、このSEに分類される。
SE1とSE2の区別は、その音を出力する演出の出現頻度による別としている。例えば予告音であれば、その音を使用する予告演出の出現頻度(信頼度)による区別となる。本例の場合、SE2はSE1よりも出現頻度が低い演出に係る音とされる。
In the sound / motor sub-scenario table of FIG. 19B, BGM, SE1, SE2, error sound, and sound control can be described as data related to sound.
SE (SE1 and SE2) in the sound / motor sub-scenario table means sound related to effects other than BGM and error sound. Sounds for so-called notice effects (notice sounds) are classified into this SE.
The distinction between SE1 and SE2 is made according to the appearance frequency of the effect that outputs the sound. For example, in the case of a notice sound, the distinction is made according to the appearance frequency (reliability) of the notice effect using the sound. In the case of this example, SE2 is a sound related to an effect having a lower appearance frequency than SE1.
音/モータサブシナリオテーブルにおけるBGM、SE1、SE2、エラー音の各情報は、それぞれフレーズ番号と1次ボリュームの情報とを含む。
これら音/モータサブシナリオテーブルに記述されたBGM、SE1、SE2、エラー音の情報は、音データ登録情報における何れかの音チャネルaCHに登録されることになるが、本実施の形態では、これらBGM、SE1、SE2、エラー音の音の種別ごとに、その情報内容を登録する音チャネルaCHを予め定めておくものとしている。
具体的に、音/モータサブシナリオテーブルに記述されたBGMの情報については、音チャネルaCH0(ステレオの場合は加えてaCH1)に登録する。また、SE1の情報については音チャネルaCH2〜aCH9のうちの空きチャネルに登録し、SE2の情報については音チャネルaCH10〜aCH14うちの空きチャネルに登録する。さらに、エラー音の情報については音チャネルaCH15に登録する。
このように本実施の形態では、音の種別と、その音についての音関連の情報を登録する音チャネルaCHとの対応関係が予め定められている。
Each information of BGM, SE1, SE2, and error sound in the sound / motor sub-scenario table includes a phrase number and primary volume information.
The BGM, SE1, SE2, and error sound information described in the sound / motor sub-scenario table are registered in one of the sound channels aCH in the sound data registration information. For each type of BGM, SE1, SE2, and error sound, a sound channel aCH for registering the information content is determined in advance.
Specifically, the BGM information described in the sound / motor sub-scenario table is registered in the sound channel aCH0 (in addition, in the case of stereo, aCH1). Further, information on SE1 is registered in an empty channel among the sound channels aCH2 to aCH9, and information on SE2 is registered in an empty channel among the sound channels aCH10 to aCH14. Further, information on the error sound is registered in the sound channel aCH15.
As described above, in the present embodiment, the correspondence between the type of sound and the sound channel aCH for registering sound-related information about the sound is determined in advance.
また、音/モータサブシナリオテーブルにおける音コントロールの情報は、再生中のフレーズをコントロールするための情報を記述したものである。
本実施の形態の場合、当該音コントロールの情報は4バイトで構成され、下位3バイトがコントロール対象のフレーズを指定するための情報、上位1バイトがコントロール情報(音のコントロール内容を表す情報)とされている。
The sound control information in the sound / motor sub-scenario table describes information for controlling the phrase being reproduced.
In the case of the present embodiment, the sound control information is composed of 4 bytes, the lower 3 bytes are information for designating a phrase to be controlled, and the upper 1 byte is control information (information indicating the control content of the sound) Has been.
ここで、本実施の形態では、音の種別と、その音についての情報を登録する音チャネルaCHとの対応を上述のように定めているが、このことは、BGMとしてのフレーズは音チャネルaCH0(ステレオの場合はaCH0及びaCH1)で再生され、SE1としてのフレーズは音チャネルaCH2〜aCH9の何れかで再生され、SE2としてのフレーズは音チャネルaCH10〜aCH14の何れかで再生され、エラー音としてのフレーズは音チャネルaCH15で再生されるということが一意に定まっていると換言できる。
このため、音コントロールの情報に基づき所定の種別の音(BGM/SE1/SE2/エラー音)をコントロールするとしたときは、音コントロールの情報を、その音に対応する音チャネルaCHに対して登録すればよい。
この点に鑑み本実施の形態の音コントロールの情報では、その下位3バイトの情報、即ちコントロール対象のフレーズを指定するための情報として、音チャネルaCHを指定する情報を記述する。つまり、コントロール対象とする音(フレーズ)が再生される音チャネルaCH(つまりBGM/SE1/SE2/エラー音の別に応じたaCH0(及びaCH1)/aCH2〜aCH9/aCH10〜aCH14/aCH15の別)を指定する情報が記述される。
Here, in the present embodiment, the correspondence between the type of sound and the sound channel aCH for registering information about the sound is determined as described above. This is because the phrase as BGM is the sound channel aCH0. (Stereo is aCH0 and aCH1), the phrase SE1 is reproduced on any of the sound channels aCH2 to aCH9, the phrase SE2 is reproduced on any of the sound channels aCH10 to aCH14, and an error sound In other words, it can be said that the phrase is reproduced on the sound channel aCH15.
Therefore, when a predetermined type of sound (BGM / SE1 / SE2 / error sound) is controlled based on the sound control information, the sound control information is registered for the sound channel aCH corresponding to the sound. That's fine.
In view of this point, in the sound control information of the present embodiment, information specifying the sound channel aCH is described as information of the lower 3 bytes, that is, information for specifying the phrase to be controlled. That is, the sound channel aCH (that is, aCH0 (and aCH1) / aCH2 to aCH9 / aCH10 to aCH14 / aCH15 according to the type of BGM / SE1 / SE2 / error sound) in which the sound (phrase) to be controlled is reproduced. Information to be specified is described.
なお、音/モータサブシナリオテーブルに記述されるBGM、SE1、SE2、エラー音、音コントロールの各情報を音データ登録情報としてワークに登録するための具体的な処理については図24〜図28により後述する。 It should be noted that specific processing for registering each information of BGM, SE1, SE2, error sound, and sound control described in the sound / motor sub-scenario table in the work as sound data registration information is shown in FIGS. It will be described later.
ここで、上記のように本実施の形態では、音の種別と、その音についての情報を登録する音チャネルaCHとの対応関係を予め定めておくようにしたことで、或る種別の音が再生される音チャネルaCHが一意に定まるようにできる。これにより、再生中の或る種別の音を制御するとしたときは、ワークにおけるその種別の音と対応づけられた音チャネルaCHに対して制御情報を登録すれば済み、制御対象とする音を再生中の音チャネルaCHを探索する必要はないものとできる。
従って探索処理が省略される分、演出動作に係る制御負荷を軽減できる。
In this embodiment, as described above, the correspondence between the sound type and the sound channel aCH in which information about the sound is registered is determined in advance, so that a certain type of sound is generated. The reproduced sound channel aCH can be uniquely determined. Thus, when a certain type of sound being played is controlled, it is only necessary to register control information for the sound channel aCH associated with that type of sound in the work, and the sound to be controlled is played back. It may be unnecessary to search for the middle sound channel aCH.
Therefore, the control load related to the rendering operation can be reduced as much as the search process is omitted.
また、上記のように本実施の形態では、再生中の音をコントロールするための音コントロールの情報を、コントロールの内容を表す情報と、制御対象とする音に対応する音チャネルaCHを表す情報とを組み合わせた情報としている。
このように音コントロール情報を、制御内容情報の登録先の音チャネルaCHの指定が可能な情報としたことでも、制御対象の音を再生中の音チャネルaCHを探索せずに済むものとできる。即ち、音コントロール情報をこのような構成とした点も、探索処理の省略、つまりは演出動作に係る制御負荷の軽減に寄与するものである。
Further, as described above, in the present embodiment, the sound control information for controlling the sound being reproduced includes information indicating the content of the control, and information indicating the sound channel aCH corresponding to the sound to be controlled. Information.
As described above, even when the sound control information is information that can designate the sound channel aCH that is the registration destination of the control content information, it is not necessary to search for the sound channel aCH that is reproducing the sound to be controlled. That is, the point that the sound control information has such a configuration also contributes to the omission of the search process, that is, the reduction of the control load related to the rendering operation.
図8のステップS111として説明した音再生処理では、図14,図15のシナリオ更新処理で更新される音データ登録情報に基づいて、再生出力が行われることになる。
また、図9のステップS203のモータ動作更新処理では、図14,図15のシナリオ更新処理で更新されるモータデータ登録情報に基づいて、モータ駆動データが作成される。
In the sound reproduction process described as step S111 in FIG. 8, reproduction output is performed based on the sound data registration information updated in the scenario update process in FIGS.
In the motor operation update process in step S203 of FIG. 9, motor drive data is created based on the motor data registration information updated in the scenario update process of FIGS.
これまでで説明した各情報を用いて実行されるシナリオ更新処理について、図14、図15を参照して説明する。
図8の16ms処理のステップS110として実行される図14のシナリオ更新処理では、演出制御CPU200はループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて、ステップS600〜S616の処理を行う。当該ループ処理の各回の処理対象のシナリオチャネルを「sCHn」として説明する。
Scenario update processing executed using each piece of information described so far will be described with reference to FIGS.
In the scenario update process of FIG. 14 executed as step S110 of the 16 ms process of FIG. 8, the
演出制御CPU200は、ステップS600でシナリオチャネルsCHnのメインシナリオ番号が0であるか否かを確認する。メインシナリオ番号が0である場合、当該シナリオチャネルsCHnは先の図12のシナリオ登録処理でメインシナリオの登録が為されていないチャネルsCHとなるので、該シナリオチャネルsCHnの情報更新は不要である。従ってこの場合は、ステップS615以下の処理を実行して処理を終える。具体的に、ステップS615でシナリオチャネルsCHn関連のデータのチェックサムを算出し、保存した上で、ステップS616でシナリオチャネルsCHn関連のデータをバックアップ保存する。これでシナリオチャネルsCHnについての1回の処理を終える。
The
一方、ステップS600でメインシナリオ番号が0でないとされた場合は、ステップS601に進み、シナリオチャネルsCHnの待機時間(delay)を確認する。待機時間(delay)=0でなければステップS602で待機時間(delay)の値を−1(デクリメント)する。そして、ステップS615及びS616の処理を実行して、シナリオチャネルsCHnについての1回の処理を終える。 On the other hand, if it is determined in step S600 that the main scenario number is not 0, the process proceeds to step S601, and the standby time (delay) of the scenario channel sCHn is confirmed. If the standby time (delay) = 0 is not satisfied, the value of the standby time (delay) is decremented by −1 (decrement) in step S602. And the process of step S615 and S616 is performed and the process of 1 time about scenario channel sCHn is finished.
ステップS601で待機時間(delay)=0であることが確認された場合は、演出制御CPU200はステップS603に進み、シナリオチャネルsCHnに登録されているメインシナリオ番号(mcNo)と、メインシナリオ実行ライン(mcIx)に対応するメインシナリオテーブルのアドレスを特定する。
ステップS604では、当該特定したアドレスで示される、メインシナリオテーブルの或るメインシナリオ番号の実行ラインが、終了コードD_SEEND(図18参照)が記述されている最終ラインであるか否かを確認する。
終了コードが記述された最終ラインで合った場合は、当該シナリオチャネルsCHnに登録されたシナリオで実行すべき処理は終了したことになるため、ステップS617で、そのシナリオチャネルsCHnに登録されているシナリオをシナリオ登録情報(ワーク)から削除する。
なお、この場合のシナリオ登録の削除は、シナリオ終了に応じた通常の削除である。先に図13で説明したシナリオ削除は、この通常削除以外の、例えば未終了のシナリオをシナリオ登録情報(ワーク)から削除する処理であることを付言しておく。
When it is confirmed in step S601 that the standby time (delay) = 0, the
In step S604, it is confirmed whether or not an execution line of a certain main scenario number in the main scenario table indicated by the specified address is a final line in which an end code D_SEEND (see FIG. 18) is described.
If the end code matches the last line in which the end code is described, the processing to be executed in the scenario registered in the scenario channel sCHn has been completed. Therefore, in step S617, the scenario registered in the scenario channel sCHn. Is deleted from the scenario registration information (work).
Note that the scenario registration deletion in this case is a normal deletion corresponding to the end of the scenario. It is added that the scenario deletion described above with reference to FIG. 13 is a process for deleting, for example, an unfinished scenario from the scenario registration information (work) other than the normal deletion.
ステップS617でシナリオ削除を行った後は、ステップS615に進む。 After the scenario is deleted in step S617, the process proceeds to step S615.
ステップS604で、メインシナリオテーブルの当該ラインが終了コードではない場合は、演出制御CPU200はステップS605に進み、まず当該シナリオチャネルsCHnのメインシナリオオプション(mcOpt)に、当該ラインのオプション(OPT)をセットする。次にステップS607で、ユーザオプション(userFn)に0を代入する。
そしてステップS608で当該シナリオチャネルsCHnで指定されるサブシナリオの更新を行う。サブシナリオの更新については図15で後述する。
If it is determined in step S604 that the line in the main scenario table is not an end code, the
In step S608, the sub-scenario specified by the scenario channel sCHn is updated. The sub-scenario update will be described later with reference to FIG.
また、ステップS606でシナリオ番号が0でないとされた場合は、ステップS609に進む。 If it is determined in step S606 that the scenario number is not 0, the process proceeds to step S609.
ステップS609では、演出制御CPU200はメインシナリオタイマ(msTm)を+1(インクリメント)する。そしてステップS610では、メインシナリオタイマ(msTm)の値と、メインシナリオテーブルの該当ラインの時間データ(図18参照:msTmで記述)を比較する。先に述べたように、メインシナリオテーブルの各ラインの時間データは、そのラインの終了タイミングを規定するものであるから、メインシナリオタイマ(msTm)の値がメインシナリオテーブルの当該ラインに記述された時間データ以上であれば、そのラインの処理は終了し、次のラインを対象とする。従って、ステップS610でメインシナリオタイマ(msTm)の値がメインシナリオテーブルの当該ラインに記述された時間データ以上であるとされた場合は、ステップS611に進み、シナリオチャネルsCHnのメインシナリオ実行ライン(mcIx)を+1する。つまり次回は、次のラインが対象となるようにする。
また、ステップS610においてメインシナリオタイマ(msTm)の値がメインシナリオテーブルの当該ラインに記述された時間データ以上ではないとされた場合は、ステップS615に進む。
In step S609, the
If it is determined in step S610 that the value of the main scenario timer (msTm) is not equal to or greater than the time data described in the relevant line of the main scenario table, the process proceeds to step S615.
ステップS611でシナリオチャネルsCHnのメインシナリオ実行ライン(mcIx)を+1した後は、ステップS612で次のラインがループ指定であるか否かを確認する。図18のメインシナリオテーブルにおいてシナリオ番号1では、最終ラインがシナリオデータループコードD_SELOPとされている例を示したが、このようにループ指定されていた場合は、ステップS613で、メインシナリオ実行ライン(mcIx)にループ行をセットする。
またステップS612で次のラインはループ指定ではないとされた場合は、ステップS613を経由せずステップS614に進む。
After the main scenario execution line (mcIx) of the scenario channel sCHn is incremented by 1 in step S611, it is confirmed in step S612 whether or not the next line is designated as a loop. In
If it is determined in step S612 that the next line is not designated as a loop, the process proceeds to step S614 without going through step S613.
演出制御CPU200は、ステップS614では、1つのラインの終了に応じたクリア処理を行う。即ちメインシナリオタイマ(msTm)、サブシナリオタイマ(scTm)、サブシナリオ実行ライン(scIx)、サブシナリオ実行ラインlmp(lmpIx)、メインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)をクリアする。
そしてステップS615のチェックサム処理、ステップS616のバックアップ処理を行ってシナリオチャネルsCHnについての1回の処理を終える。
シナリオ更新処理としては、ループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて以上の処理が実行されることになる。
In step S614, the
Then, the checksum process in step S615 and the backup process in step S616 are performed, and one process for the scenario channel sCHn is completed.
As the scenario update process, the above process is executed for each of the scenario channels sCH0 to sCH63 as the loop process LP1.
ステップS608で行われるサブシナリオ更新処理を図15Aに詳細に示す。
メインシナリオタイマ(msTm)、シナリオチャネルsCHnと、メインシナリオテーブルに記述されたサブシナリオ番号(scNo)に基づいて、図15Aのサブシナリオの更新処理が行われる。
The sub-scenario update process performed in step S608 is shown in detail in FIG. 15A.
Based on the main scenario timer (msTm), the scenario channel sCHn, and the sub-scenario number (scNo) described in the main scenario table, the sub-scenario update process of FIG. 15A is performed.
まずステップS621で演出制御CPU200は、シナリオチャネルsCHnが0〜63のいずれかを示しているか否か、つまり適正値であるか否かを確認する。シナリオチャネルsCHnが64以上であれば、更新処理不能として図15の処理を終える。
シナリオチャネルsCHnが適正値であれば、演出制御CPU200はステップS622で、サブシナリオ番号(scNo)とサブシナリオ実行ラインlmp(lmpIx)に対応するランプサブシナリオテーブル(図19A参照)のアドレスを特定する。
First, in step S621, the
If the scenario channel sCHn is an appropriate value, the
演出制御CPU200はステップS623では、ランプチャネルカウント値を0をセットする。このランプチャンネルカウント値は、ランプデータ登録情報への点灯パターンナンバの登録がランプチャンネルdwCHの数(16)を超えて異常な回数行われてしまうことを防止するために演出制御CPU200が管理する値である。
In step S623, the
そして、演出制御CPU200はステップS624で、メインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間(実際にはmsTm×16msの時間)が、時間データ(time)以上となっていたら、そのラインについての処理を行う。その場合、ステップS625でランプチャネルカウント値が正常(ランプチャンネルdwCHの数である「16」以内)であるか否かを確認する。異常な値であれば処理を終える。正常な値であればステップS626で、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを確認する。
In step S624, the
ランプシナリオデータ終了コードD_LSENDが記述されたラインではなければ、演出制御CPU200はステップS627で、当該ラインに記述されているランプチャネル、ランプナンバを取得する。そしてステップS628で点灯パターンナンバの登録を行う。
点灯パターンナンバの登録処理を図15Bに示している。この場合、まず演出制御CPU200はステップS651で、当該ラインに記述されているランプチャネルdwCHの値が正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
正常値であれば、ステップS652で、当該ラインに記述されているランプナンバが正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
ランプチャネルdwCH及びランプ番号のいずれもが正常値であれば、ステップS653でワークのランプデータ登録情報における、ランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。
以上の図15Bの処理をステップS628で行ったら、演出制御CPU200はステップS629でサブシナリオ実行ラインlmp(lmpIx)の値を+1し、ステップS630でランプチャネルカウント値を+1してステップS624に戻る。
If it is not the line in which the lamp scenario data end code D_LSEND is described, the
The lighting pattern number registration process is shown in FIG. 15B. In this case, first, in step S651, the
If it is a normal value, it is determined in step S652 whether or not the ramp number described in the line is a normal value. If it is not a normal value, the process ends without performing registration.
If both the lamp channel dwCH and the lamp number are normal values, the registered lighting number (lmpNew) and the execution lighting number (lmpNo) are set in the area corresponding to the lamp channel dwCH in the lamp data registration information of the work in step S653. To do. That is, the lamp number acquired from the relevant line in the lamp sub-scenario table is set in the registered lighting number (lmpNew), and “0” is set in the execution lighting number (lmpNo).
15B is performed in step S628, the
ステップS624で、メインシナリオタイマの時間が、サブシナリオ実行ラインlmp(lmpIx)で示されるラインの時間データ(time)に達していない場合、及びステップS626でランプシナリオデータ終了コードD_LSENDが確認された場合は、演出制御CPU200の処理はステップS631へ進む。
When the time of the main scenario timer does not reach the time data (time) of the line indicated by the sub-scenario execution line lmp (lmpIx) in step S624, and the lamp scenario data end code D_LSEND is confirmed in step S626 The process of the
ステップS631では、メインシナリオテーブルに記述されているサブシナリオ番号と、現在処理中のシナリオチャネルsCHnに登録されているサブシナリオ実行ライン(scIx)に対応する音/モータサブシナリオテーブルのアドレスを特定する。
そして、ステップS632で、サブシナリオタイマ(scTm)の値がテーブルの時間データ(time)の値以上であるか否かを確認する。即ち、サブシナリオタイマ(scTm)の値が、現在処理中のシナリオチャネルsCHnに登録されているサブシナリオ実行ライン(sclx)で示されるラインの時間データ(time)の値以上であるか否かを確認する。
In step S631, the sub-scenario number described in the main scenario table and the address of the sound / motor sub-scenario table corresponding to the sub-scenario execution line (scIx) registered in the currently processed scenario channel sCHn are specified. .
In step S632, it is checked whether the value of the sub-scenario timer (scTm) is equal to or greater than the value of the time data (time) in the table. That is, whether or not the value of the sub-scenario timer (scTm) is equal to or greater than the value of the time data (time) of the line indicated by the sub-scenario execution line (sclx) registered in the currently processed scenario channel sCHn. Check.
ステップS632において、サブシナリオタイマ(scTm)の値がテーブルの時間データ(time)の値以上でなければ、そのラインに記述された情報についての登録処理は未だ実行するべきではないので、図のように音及びモータの登録を行わずにステップS640に進み、サブシナリオタイマ(scTm)の値をインクリメント(+1)して、この図15Aの処理を終えることとなる。 In step S632, if the value of the sub-scenario timer (scTm) is not equal to or greater than the value of the time data (time) in the table, the registration process for the information described in the line should not be executed yet, as shown in the figure. Then, the process proceeds to step S640 without registering the sound and the motor, the value of the sub-scenario timer (scTm) is incremented (+1), and the process of FIG. 15A is completed.
一方、ステップS632においてサブシナリオタイマ(scTm)の値がテーブルの時間データ(time)の値以上であれば、演出制御CPU200は処理をステップS633に進め、該当する音/モータサブシナリオ番号のテーブルの、サブシナリオ実行ライン(scIx)で示されるラインが、シナリオデータ終了コードD_SEENDが記述された行であるか否かを確認する。シナリオデータ終了コードD_SEENDが記述された行であれば処理を終了する。
シナリオデータ終了コードD_SEENDが記述された行でなければ、演出制御CPU200はステップS635で音の登録を行い、またステップS636でモータの登録を行う。これらステップS635,S636の登録処理としては、図19Bに例示したような音/モータサブシナリオテーブルの該当サブシナリオ番号の該当ラインの情報を、図17の音データ登録情報の音チャネルaCH、図16Cのモータデータ登録情報のモータチャネルmCHにそれぞれ登録する処理を行う。
なお、ステップS635として実行される音の登録の詳細な処理内容については図24〜図28で後述し、また、ステップS636として実行されるモータの登録の詳細な処理内容については図33で後述する。
On the other hand, if the value of the sub-scenario timer (scTm) is equal to or greater than the value of the time data (time) in the table in step S632, the
If the scenario data end code D_SEEND is not described, the
Detailed processing contents of sound registration executed as step S635 will be described later with reference to FIGS. 24 to 28, and detailed processing details of motor registration executed as step S636 will be described later with reference to FIG. .
続いて、演出制御CPU200はステップS637で、当該ラインに記述されたソレノイド/ユーザオプションの情報を、シナリオ登録情報等に登録する。
そしてステップS638で、サブシナリオ実行ライン(scIx)の値として次のラインの値をセットする。さらにステップS640でサブシナリオタイマ(scTm)をインクリメントして処理を終える。
Subsequently, in step S637, the
In step S638, the value of the next line is set as the value of the sub-scenario execution line (scIx). Further, in step S640, the sub-scenario timer (scTm) is incremented and the process is terminated.
図8のステップS110では、以上の図14,図15の処理が行われることとなる。この処理でワーク上のシナリオ登録情報、ランプデータ登録情報、モータデータ登録情報、音データ登録情報が逐次更新され、これに応じて演出制御が行われることで、シナリオに沿った演出動作が実現される。 In step S110 in FIG. 8, the processes in FIGS. 14 and 15 are performed. Through this process, the scenario registration information, lamp data registration information, motor data registration information, and sound data registration information on the workpiece are sequentially updated, and effect control according to the scenario is realized by performing effect control accordingly. The
特に本実施の形態においては、第1のワークエリア(シナリオチャネルsCH0〜sCH63)には、演出種別を特定する演出データとしてシナリオ登録情報がセットされる。具体的にはメインシナリオ番号(mcNo)がセットされ、メインシナリオテーブル上のサブシナリオが特定される。さらに第1のワークエリアでは、音/モータサブシナリオテーブルの実行ラインを示すサブシナリオ実行ライン(scIx)、ランプサブシナリオテーブルの実行ラインを示すサブシナリオ実行ラインlmp(lmpIx)がセットされる。これらにより演出種別が特定される。
また実行する演出に応じた演出デバイスの動作データは第2のワークエリアにセットされる。第2のワークエリアとしてランプデータ登録情報をセットするランプチャネルdwCH1〜dwCH15、モータデータ登録情報をセットするモータチャネルmCH0〜mCH7、音データ登録情報をセットする音チャネルaCH0〜aCH15が用意されている。
即ち本実施の形態では、各種演出デバイスを用いた全体の演出データが第1のワークエリアにセットされ、その第1のワークエリアの演出データに基づき、第2のワークエリアで動作データがセットされることになる。
この場合、多様な演出設定のためには第1のワークエリアには、登録できる演出データ個数(シナリオ登録情報の個数)を比較的多くすることが好ましい。例えば演出データの登録チャネル数を多くしたい。そこでシナリオチャネルsCH0〜sCH63として64個のチャネルを用意する。
一方で、第2のワークエリアには、演出デバイスの動作を規定する動作データがセットされればよいため、動作データの登録可能数は、比較的少なくてもよい。特に、第2のワークエリアが、ランプ、モータ、音の個々の演出デバイスに対応して設けられているため、個々のデバイスについての登録可能数は、むやみに多くする必要はない。そこで第2のワークエリアとしては、ランプチャネルは16チャネル(dwCH1〜dwCH15)、モータチャネルは8チャネル(mCH0〜mCH7)、音チャネルは16チャネル(aCH0〜aCH15)としている。これらは、それぞれ対応する1つの演出デバイスについての動作データがセットされれば良いため、登録チャネル数は少なくても十分に多彩な演出動作に対応可能である。
このように、第1のワークエリアのチャネル数をN(例えばN=64),第2のワークエリアのチャネル数をM(例えばM=16、又はM=8)とすると、N>Mとなるように記憶領域を割り当てている。
これによって多彩な演出動作を可能としたまま、メモリが闇雲に消費されないようにしている。
Particularly in the present embodiment, scenario registration information is set in the first work area (scenario channels sCH0 to sCH63) as effect data for specifying the effect type. Specifically, the main scenario number (mcNo) is set, and the sub-scenario on the main scenario table is specified. Further, in the first work area, a sub-scenario execution line (scIx) indicating an execution line of the sound / motor sub-scenario table and a sub-scenario execution line lmp (lmpIx) indicating an execution line of the lamp sub-scenario table are set. The production type is specified by these.
Further, the operation data of the effect device corresponding to the effect to be executed is set in the second work area. Lamp channels dwCH1 to dwCH15 for setting lamp data registration information, motor channels mCH0 to mCH7 for setting motor data registration information, and sound channels aCH0 to aCH15 for setting sound data registration information are prepared as second work areas.
In other words, in the present embodiment, overall presentation data using various presentation devices is set in the first work area, and operation data is set in the second work area based on the presentation data of the first work area. Will be.
In this case, in order to set various effects, it is preferable to relatively increase the number of effects data (number of scenario registration information) that can be registered in the first work area. For example, I want to increase the number of registered channels for production data. Therefore, 64 channels are prepared as scenario channels sCH0 to sCH63.
On the other hand, since the operation data that defines the operation of the rendering device need only be set in the second work area, the number of registerable operation data may be relatively small. In particular, since the second work area is provided corresponding to each effect device for lamps, motors, and sounds, it is not necessary to unnecessarily increase the number that can be registered for each device. Therefore, as the second work area, the ramp channel is 16 channels (dwCH1 to dwCH15), the motor channel is 8 channels (mCH0 to mCH7), and the sound channel is 16 channels (aCH0 to aCH15). Since it suffices for the operation data for one corresponding production device to be set for each of them, it is possible to cope with a wide variety of production operations even if the number of registered channels is small.
Thus, if the number of channels in the first work area is N (for example, N = 64) and the number of channels in the second work area is M (for example, M = 16 or M = 8), N> M. The storage area is allocated as follows.
This keeps the memory from being consumed by the dark clouds while still allowing a variety of performance operations.
また本実施の形態では、演出制御CPU200は、主制御CPU100からの演出制御コマンドに基づいて選択される演出データ(メインシナリオテーブルのシナリオ番号)をワークエリアの空きチャネルに登録していく(図11、図12参照)。図18で説明したように、メインシナリオテーブルには、演出デバイスの動作を指定する指定情報(サブシナリオ番号)が1又は複数記憶されて一連の演出動作を規定する。
そして演出制御CPU200は、ワークエリアにシナリオ登録情報として登録された演出データに記憶されている1又は複数の指定情報を処理対象として、その指定情報に応じた処理を順次実行する(図14のステップS603〜S616)。また演出データ上に記憶された終了情報(終了コード(D_SEEND))が処理対象となったことに応じて、該演出データ(シナリオ)をワークエリアのシナリオ登録情報から削除する処理を行う(図14のステップS617)。
このように、処理がメインシナリオテーブルの終了コードの行に達した際に、即座にワークエリアからのシナリオ削除処理を行うことで、ワークエリアの有効利用や処理の効率化、処理負担の削減を図ることができる。
例えば通常、シナリオ登録情報上のシナリオ削除には、終了コードに応じて当該シナリオチャネルsCHにフラグを立て、その後、シナリオ削除処理としてフラグが立てられたシナリオチャネルsCHの内容を削除するような処理を行う。これに対して、本実施の形態では、そのような独立したシナリオ削除処理は、図13で説明したような特殊な場合(例えばコマンド等で特に削除が指定されたような場合)に限り、通常の終了、即ちシナリオに関する処理の終了に応じた終了の際には、自動的にステップS617で削除されるようにしている。従って、ワークからのシナリオ削除処理が効率的に実行される。またワークエリア上の終了シナリオの管理(例えば上記フラグ設定)も必要なくなる。
In the present embodiment, the
Then, the
In this way, when the process reaches the end code line of the main scenario table, the scenario deletion process is immediately performed from the work area, thereby effectively using the work area, improving the efficiency of the process, and reducing the processing load. Can be planned.
For example, normally, in order to delete a scenario on the scenario registration information, a flag is set for the scenario channel sCH in accordance with the end code, and then the process of deleting the contents of the scenario channel sCH flagged as the scenario deletion process is performed. Do. On the other hand, in the present embodiment, such independent scenario deletion processing is usually performed only in a special case as described with reference to FIG. 13 (for example, when deletion is specifically designated by a command or the like). When the process ends, that is, when the process related to the scenario ends, the process is automatically deleted in step S617. Therefore, the scenario deletion process from the workpiece is efficiently executed. Also, management of the end scenario on the work area (for example, the above flag setting) becomes unnecessary.
また、処理が終了したら即座にそのシナリオチャネルsCHが空きチャネルになることになるため、不要な登録を継続させることもなく、新たなシナリオの登録にもすぐに使用できる。特に本例では、演出制御CPU200は、図12で述べたように、演出制御コマンドに基づいて選択される演出データ(シナリオ)をワークエリアの任意の空きチャネルに登録する。従って、なるべく早くシナリオチャネルsCHを空けるということは、シナリオ登録にも好適となる。つまり、多様なシナリオ動作を実行して多彩な演出を行いたい場合に、チャネル数を無闇に増やさなくとも、空きがない状況をなるべく発生させないという点で好適である。
以上のように終了コードに応じたシナリオ削除を行うことによって、処理の効率化とメモリの有効利用が促進される。
Also, since the scenario channel sCH becomes an empty channel as soon as the processing is completed, unnecessary registration is not continued and it can be used immediately for registration of a new scenario. In particular, in this example, the
As described above, scenario deletion according to the end code facilitates efficient processing and efficient use of memory.
また本実施の形態では、演出制御CPU200は、個々の演出デバイスの動作を特定する動作データと実行時間を指定する情報(例えば時間データ(time)に応じた各行の情報)が記憶された複数のサブシナリオテーブルと、サブシナリオテーブルとその実行時間を指定する情報(例えばサブシナリオ番号(scNo)とメインシナリオタイマ(msTm))が記憶された複数のメインシナリオテーブルとを用いる。そして主制御CPU100からの演出制御コマンドに基づいてメインシナリオテーブルを特定し、特定されたメインシナリオテーブルの内容に沿ってサブシナリオテーブルを特定し、特定されたサブシナリオテーブルの内容に従って各演出デバイスを動作させる制御を行う。
つまりメインシナリオテーブルからサブシナリオテーブルが導かれる階層構造が採用されており、実際の個々の演出デバイスとして、発光デバイス(装飾ランプ部63,64)、音デバイス(音源IC59)、モータデバイス(可動体役物モータ部65)の動作はサブシナリオテーブルで規定される。演出制御CPU200は、メインシナリオテーブルを特定するのみで、複数の演出デバイスを統合制御できることになり、複数の演出デバイスを用いた多様な演出動作を簡易に管理及び実行制御できる。これにより演出制御CPU200の処理負担を軽減しつつ多様な演出が実現できる。
また階層構造を持つことで、例えばサブシナリオテーブルの組み合わせを変えたメインシナリオテーブルを多数持つなどして、多様なシナリオを簡易に設定できるとともに、そのためのメモリ容量を削減できる。
In the present embodiment, the
That is, a hierarchical structure in which the sub-scenario table is derived from the main scenario table is employed, and as actual individual production devices, light emitting devices (
Also, by having a hierarchical structure, various scenarios can be easily set, for example, by having a large number of main scenario tables with different combinations of sub-scenario tables, and the memory capacity for that can be reduced.
[4−6:LED駆動データ更新処理]
図8のステップS113のLED駆動データ更新処理を説明する。
この処理は、ランプデータ登録情報に登録されている点灯ナンバ(登録点灯ナンバ(lmpNew)、実行点灯ナンバ(lmpNo))に対応するランプデータテーブルを参照して、LED駆動データを作成する処理である。なお上述のように、ランプデータ登録情報の点灯ナンバには、元々はランプサブシナリオテーブルに記述された、点灯パターンを示すランプナンバがセットされる。ランプナンバは点灯パターンを示すナンバと述べたが、具体的には図23Aで述べるランプデータテーブルのランプデータの番号を示すことになる。
[4-6: LED drive data update process]
The LED drive data update process in step S113 of FIG. 8 will be described.
This process is a process for creating LED drive data with reference to the lamp data table corresponding to the lighting number (registered lighting number (lmpNew), execution lighting number (lmpNo)) registered in the lamp data registration information. . As described above, the lamp number indicating the lighting pattern originally set in the lamp sub-scenario table is set as the lighting number of the lamp data registration information. The lamp number has been described as the number indicating the lighting pattern, but specifically indicates the lamp data number of the lamp data table described in FIG. 23A.
図20はLED駆動データ更新処理を示している。
演出制御CPU200はステップS701でそれまで出力データとしていたLED駆動データをクリアする。
そしてループ処理LP2として、ランプデータ登録情報のランプチャネルdwCH0〜dwCH15のそれぞれについて、ステップS702〜S720の処理が行われる。以下、処理対象のランプチャネルを「dwCHn」と表記して説明する。
FIG. 20 shows LED drive data update processing.
In step S701, the
Then, as loop processing LP2, the processing of steps S702 to S720 is performed for each of the lamp channels dwCH0 to dwCH15 of the lamp data registration information. Hereinafter, the lamp channel to be processed will be described as “dwCHn”.
ステップS702では演出制御CPU200は、対象のランプチャネルdwCHnにおける実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致しているか否かを確認する。先の図15BのステップS653のように点灯パターンナンバの登録が行われるため、実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)は最初は一致しない。一致していなければ点灯開始として、ステップS703で、実行点灯ナンバ(lmpNo)に登録点灯ナンバ(lmpNew)の値を代入する。またステップS704で、実行ライン(ofset)を0にセットし、また実行時間(time)を0にセットする。
なお実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致していれば、既に過去に以上のステップS703,S704の処理が行われたものであるため、これらの処理は不要である。
In step S702, the
If the execution lighting number (lmpNo) matches the registered lighting number (lmpNew), the above steps S703 and S704 have already been performed, and these processes are unnecessary.
或るランプチャネルdwCHに登録された情報については、登録後、このLED駆動データ更新処理の機会毎に、その情報が反映されて各LEDドライバ90に出力するLED駆動データが作成されていく。
図21Aは、図16Bに示したワークのランプデータ登録情報において、ランプチャネルdwCH0、dwCH5、dwCH8に登録が行われている状態を示している。この図の状態は、図21Bの時点t0の状態の一例である。
即ちランプチャネルdwCH0、dwCH5の情報については、時点t0より以前に、LED出力データに反映されている。ランプチャネルdwCH0については、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は3(3ライン目)まで進んでいる。またランプチャネルdwCH5についても、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は2(2ライン目)まで進んでいる。時点t0では、ランプチャネルdwCH8は登録直後であり、まだ実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致されていない。この後、上記ステップS703,S704の処理が行われることになる。
Regarding the information registered in a certain lamp channel dwCH, after the registration, the LED drive data to be output to each
FIG. 21A shows a state where registration is performed on the ramp channels dwCH0, dwCH5, and dwCH8 in the ramp data registration information of the workpiece shown in FIG. 16B. The state in this figure is an example of the state at time t0 in FIG. 21B.
That is, the information on the lamp channels dwCH0 and dwCH5 is reflected in the LED output data before time t0. For the lamp channel dwCH0, the execution lighting number (lmpNo) and the registered lighting number (lmpNew) have already been matched, and the execution line (ofset) has advanced to 3 (third line). Also, for the lamp channel dwCH5, the execution lighting number (lmpNo) and the registered lighting number (lmpNew) have already been matched, and the execution line (ofset) has advanced to 2 (second line). At time t0, the lamp channel dwCH8 is immediately after registration, and the execution lighting number (lmpNo) and the registration lighting number (lmpNew) are not matched. Thereafter, the processes in steps S703 and S704 are performed.
なお前述したように本実施の形態では、ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。図21Aに示すように、優先度の高いランプチャネルdwCH15はエラー報知用に使用される。ランプチャネルdwCH12,dwCH13,dwCH14等、優先度が高いランプチャネルは、連続予告や確定予告等、比較的信頼度の高い演出用などに用いられる。また優先度が中程度のランプチャネルは可動体演出用、優先度が比較的低いランプチャネルは、会話予告やステップアップ予告など比較的信頼度の低い演出用に用いられ、さらに優先度が低いランプチャネルは、通常変動、リーチ等に同期したランプ演出に用いられる。
このような優先度の設定のため、図21Bのように複数のランプチャネルdwCHの動作が重なる場合、優先度の高いランプチャネルの点灯動作が実行される。例えば時点t0からは、ランプチャネルdwCH0、dwCH5に基づく点灯動作が制限され、dwCH8に基づく点灯が行われるようにLED出力データが生成される。優先度の低いランプチャネルの情報を反映させないようにするためには、後述するマスクデータが使用される。
As described above, in the present embodiment, priority is set for the ramp channels dwCH0 to dwCH15, and the priority increases in order from the ramp channels dwCH0 to dwCH15. As shown in FIG. 21A, the lamp channel dwCH15 having a high priority is used for error notification. Lamp channels with high priority, such as the lamp channels dwCH12, dwCH13, dwCH14, etc. are used for relatively highly reliable performances such as continuous notices and final notices. The lamp channel with medium priority is used for moving body effects, and the lamp channel with relatively low priority is used for effects with relatively low reliability, such as conversation notices and step-up notices. Channels are used for ramp effects that are synchronized with normal fluctuations, reach, and the like.
Due to such priority setting, when the operations of a plurality of lamp channels dwCH overlap as shown in FIG. 21B, a lighting operation of a lamp channel with a high priority is executed. For example, from time t0, the lighting operation based on the lamp channels dwCH0 and dwCH5 is limited, and the LED output data is generated so that lighting based on dwCH8 is performed. In order not to reflect the information of the lamp channel having a low priority, mask data described later is used.
続いて図20のステップS705では、演出制御CPU200は実行点灯ナンバ(lmpNo)の値が正常範囲であるか否かを確認する。正常範囲とは、図23Aに示すランプデータテーブルのランプデータとして番号が存在する範囲である。
実行点灯ナンバ(lmpNo)が異常であれば、ステップS719に進む。なおランプチャネルdwCHnが登録されていない空きチャネルの場合、つまり実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が「0」の場合も、ここでは異常としてステップS719に進む。
なお、このステップS705では、登録点灯ナンバ(lmpNew)の値が正常範囲であるか否かを確認するようにしてもよい。
Subsequently, in step S705 of FIG. 20, the
If the execution lighting number (lmpNo) is abnormal, the process proceeds to step S719. If the lamp channel dwCHn is an unregistered empty channel, that is, if the execution lighting number (lmpNo) and the registered lighting number (lmpNew) are “0”, the process proceeds to step S719 as an abnormality here.
In step S705, it may be confirmed whether or not the value of the registered lighting number (lmpNew) is within the normal range.
実行点灯ナンバ(lmpNo)が正常であれば、ステップS706に進む。ステップS706では演出制御CPU200は、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、実行ライン(ofset)に対応する、ランプデータテーブルのアドレスを特定する。
またステップS707では、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、マスクデータテーブルのアドレスを特定する。
アドレスの特定のためには演出制御CPU200は、図22のようなランプデータアドレステーブルを参照する。このランプデータアドレステーブルには、各点灯パターン、例えば全体点滅、右側点滅、左側点滅、役物点灯などを実現するためのランプデータ番号のアドレスが示されている。図22の左端の数字は、図19Aのランプサブシナリオテーブルで示されるランプナンバであり、例えばランプナンバ2のランプデータのアドレスの欄には、全体点滅の点灯パターンを行うためのランプデータ番号が記憶されたアドレスが記述されている。
また、マスクデータのアドレスの欄には、そのランプデータ番号の点灯パターンを実行する際に必要なマスクデータが記憶されたアドレスが記憶されている。例えば点灯ナンバ5の右側点滅の点灯パターンを行う際には、センターケースマスクが必要になるが、そのセンターケースマスクを行うためのマスクデータのアドレスが記述されている。
If the execution lighting number (lmpNo) is normal, the process proceeds to step S706. In step S706, the
In step S707, the execution lighting number (lmpNo) registered in the lamp channel dwCHn and the address of the mask data table are specified.
To specify the address, the
In the address field of mask data, an address where mask data necessary for executing the lighting pattern of the lamp data number is stored is stored. For example, when a lighting pattern of blinking on the right side of the
図23Aにはランプデータテーブルの一部としてランプデータ1,2を示している。
各番号のランプデータにおける各ラインには、タイマ(frame)としての時間データと点灯データが記述されている。タイマ(frame)は各ラインの点灯データによるLED出力データの生成を行う時間を規定する。
点灯データは、各LEDドライバ90に対応して記述されている。先に図4では、枠ドライバ部61にはn個、盤ドライバ部62にはm個のLEDドライバ90が存在するとしたが、以下では一例として、枠ドライバ部61には4個、盤ドライバ部62には5個の、合計9個のLEDドライバ90が存在すると仮定して説明する。
その場合、ランプデータの各ラインには、図23Aに示すように、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)のそれぞれに対して設定されて、かつそれらが各ライン毎に設定されることで、時系列的に変化する所定の発光パターンが示されることになる。(図では点灯データは一部のみに例示した。空欄部分は図示を省略したもので、実際には点灯データが記述される)
FIG. 23A shows
Each line in each number of lamp data describes time data and lighting data as a timer (frame). The timer (frame) defines the time for generating the LED output data based on the lighting data of each line.
The lighting data is described corresponding to each
In that case, lighting data is described in each line of the lamp data corresponding to each of the nine
As the lighting data, 4 bits (0h to Fh) are assigned to one output terminal 96 (one series of LED drive current outputs) of the
In the lamp data, such lighting data is set for each of the LED drivers 90 (w1 to w4, b1 to b5), and is set for each line, so that time series. A predetermined light emission pattern that changes is shown. (In the figure, the lighting data is illustrated only in part. The blank portion is not shown, and the lighting data is actually described.)
図23Bにはマスクデータテーブルの例として、マスクデータ1〜5を示している。各マスクデータは、枠側の装飾ランプ20wの駆動についてのマスクのための、盤側の装飾ランプ20bの駆動についてのマスクのため、全体のマスクのため、センターケースのマスクのため、役物のマスクのためなどとして、必要なマスクパターンが記憶されている。
各マスクデータ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はデータ値の図示を省略している)
FIG. 23B shows
The
For example, in the
図20のステップS706,S707では、このようなランプデータテーブル、マスクデータテーブルにおいて、処理中のランプチャネルdwCHnに対応するアドレスを特定するものである。
続いてステップS708で演出制御CPU200は、ランプデータテーブルの該当ライン(現在対象のランプチャネルdwCHnの実行ライン(offset)で示されるライン)のタイマ(frame)を取得し、これを変数Dtimeに代入する。
In steps S706 and S707 in FIG. 20, an address corresponding to the lamp channel dwCHn being processed is specified in the lamp data table and the mask data table.
Subsequently, in step S708, the
ステップS709で演出制御CPU200は、上記ステップS706,S707で特定した該当の点灯データとマスクデータを展開し、LED駆動データを生成していく。この処理については後述するが、現在処理中のランプチャネルdwCHnについての点灯データとマスクデータを、出力するLED駆動データに反映させる処理となる。
In step S709, the
ステップS710ではランプチャネルdwCHnの情報である実行時間(time)を+1する。
ステップS711では変数Dtimeと実行時間(time)を比較する。変数Dtimeには現在実行中のラインのタイマ(frame)が代入されている。実行時間(time)はLED駆動データ更新処理毎(16ms毎)に上記ステップS710で+1される。従ってDtime≦timeとなれば、現ラインの終了タイミングとなる。Dtime≦timeではなければ、まだ現在のラインの終了に至らないとしてステップS711からS719に進む。Dtime≦timeの場合は、現在のラインの終了としてステップS711からS712に進む。
演出制御CPU200はステップS712で実行時間(time)を0にリセットする。またステップS713で、実行ライン(offset)の値を+1する。つまり次のラインが対象となるようにする。
ステップS714では演出制御CPU200は、実行ライン(offset)に対応するランプデータテーブル該当ラインのアドレスを特定する。そしてステップS715,S717で、そのラインに終了コード(D_DTEND)が記述されているか、ループコード(LMP_LP)が記述されているかを確認する。
終了コード(D_DTEND)が記述されていた場合は、ステップS716で、当該ランプチャネルdwCHnの登録点灯ナンバを0に更新する。つまりワーク上で、当該ランプチャネルdwCHの登録に応じた処理が完了したことを示すようにする。
ループコード(LMP_LP)が記述されていた場合はステップS718で、実行ライン(offset)の値をループ先のアドレスに更新する。
In step S710, the execution time (time), which is information of the ramp channel dwCHn, is incremented by one.
In step S711, the variable Dtime is compared with the execution time (time). The timer (frame) of the currently executing line is assigned to the variable Dtime. The execution time (time) is incremented by 1 in step S710 for each LED drive data update process (every 16 ms). Therefore, if Dtime ≦ time, the current line end timing is reached. If Dtime ≦ time is not satisfied, it is determined that the end of the current line has not yet been reached, and the process proceeds from step S711 to S719. If Dtime ≦ time, the process proceeds from step S711 to S712 as the end of the current line.
The
In step S714, the
If the end code (D_DTEND) is described, the registered lighting number of the lamp channel dwCHn is updated to 0 in step S716. In other words, it indicates that the processing corresponding to the registration of the lamp channel dwCH is completed on the work.
If the loop code (LMP_LP) has been described, the value of the execution line (offset) is updated to the loop destination address in step S718.
ステップS719では演出制御CPU200は、ランプチャネルdwCHnの時点のLED駆動データのチェックサムを算出する。またステップS720でバックアップ用データを保存する。
以上で、1つのランプチャネルdwCHnを対象としたLEDデータ更新を終える。ループ処理LP2として、以上の処理をランプチャネルdwCH0〜dwCH15まで順次行うことになる。
In step S719, the
This completes the LED data update for one lamp channel dwCHn. As the loop processing LP2, the above processing is sequentially performed up to the ramp channels dwCH0 to dwCH15.
各ランプチャネルdwCHnでのLED出力データの更新は、ステップS709で行われるが、これは次のような処理となる。
点灯データとマスクデータを展開してLED駆動データを生成する出力データバッファは、ランプデータテーブル及びマスクデータテーブルと同様に、各LEDドライバ90(w1〜w4、b1〜b5)のそれぞれに対応して用意される。例えば1つのLEDドライバ90に対応する(4×24)ビットの情報の領域が、例えば9個のLEDドライバ90(w1〜w4、b1〜b5)のそれぞれに対して設けられる。この場合、出力データバッファは9×(4×24)ビットのバッファ領域とされる。
The LED output data is updated in each lamp channel dwCHn in step S709, and this is the following process.
The output data buffer that generates the LED drive data by expanding the lighting data and the mask data corresponds to each of the LED drivers 90 (w1 to w4, b1 to b5), similarly to the lamp data table and the mask data table. Prepared. For example, an information area of (4 × 24) bits corresponding to one
このような出力データバッファに対して、ステップS709では、マスクデータをアンド(論理積)で展開し、点灯データをオア(論理和)で展開する処理が行われる。これがループ処理(LP2)により、各ランプチャネルdwCH0〜dwCH15について順次ステップS709で行われる。
例えば図21で示した時点t0の場合、出力データバッファは、ランプデータ2のマスクデータ(図22参照:マスクなし)がアンド展開され、ランプデータ2の3ライン目の点灯データがオア展開された状態の後、ランプデータ5のマスクデータ(図22参照:センターケースマスク)がアンド展開され、ランプデータ5の2ライン目の点灯データがオア展開された状態となっている。
上述の通りマスクデータは0h(=0000)が消灯、Fh(=1111)がマスクなしである。従ってマスクデータをアンドで展開するということは、その時点までの出力データバッファの値について、消灯(マスク)したいビットを「0」とし、マスクしないビットは変更しないということになる。
さらに点灯データをオアで展開するということは、処理中のランプチャネルdwCHの点灯データが、マスク後の出力データバッファに反映させるということになる。
この処理をランプチャネルdwCH0〜dwCH15について順次行うことで、高い番号のランプチャネルほど優先されたLED駆動データが出力データバッファ上に形成されることになる。
For such an output data buffer, in step S709, a process of developing the mask data with AND (logical product) and developing the lighting data with OR (logical sum) is performed. This is sequentially performed in step S709 for each of the lamp channels dwCH0 to dwCH15 by loop processing (LP2).
For example, at the time point t0 shown in FIG. 21, the output data buffer is AND-expanded with the mask data of the lamp data 2 (see FIG. 22: no mask), and the lighting data of the third line of the
As described above, in the mask data, 0h (= 0000) is extinguished and Fh (= 1111) is no mask. Therefore, expanding the mask data with AND means that the bit to be extinguished (masked) is set to “0” in the output data buffer value up to that point, and the bits not masked are not changed.
Further, when the lighting data is expanded OR, the lighting data of the lamp channel dwCH being processed is reflected in the output data buffer after masking.
By sequentially performing this process for the lamp channels dwCH0 to dwCH15, the LED drive data that is prioritized for the higher-numbered lamp channels is formed on the output data buffer.
以上のようなLEDデータ更新処理で生成されたLED駆動データは、先の図9で説明した1msタイマ割込処理のステップS205(但し上述のケース12〜15の場合)で、実際に各LEDドライバ90に出力され、これによってシナリオデータに応じたランプ演出動作が実現される。
The LED drive data generated by the LED data update process as described above is actually sent to each LED driver in step S205 (in the
また本実施の形態では、以上のLEDデータ更新処理において、演出制御CPU200は、ランプデータ登録情報のランプチャネルdwCHにおいて、実行予定の演出動作情報(点灯パターン)の指定値(ランプナンバ)を登録点灯ナンバ(lmpNew)として管理するとともに、実行中の演出動作情報の指定値(ランプナンバ)を実行点灯ナンバ(lmpNo)として管理する。
このようにすることで、ワーク、つまりランプデータ登録情報の各ランプチャネルdwCH上で、実行予定の点灯パターンと、実行中(ステップS706〜S718のLED駆動データ更新処理中)の点灯パターンを容易に管理・区別できる。
In the present embodiment, in the LED data update process described above, the
By doing in this way, the lighting pattern to be executed and the lighting pattern being executed (during the LED drive data update process in steps S706 to S718) on each lamp channel dwCH of the lamp data registration information can be easily performed. Can be managed and distinguished.
また本例の場合、具体的には、制御コマンドに基づいて選択された演出動作情報の指定値(ランプナンバ)を登録点灯ナンバ(lmpNew)として登録する処理を図15BのステップS653で行う。そして登録点灯ナンバ(lmpNew)としてランプデータ登録情報に登録された演出動作情報(点灯パターン)に応じた処理の実行開始に際して、図20のステップS702〜S704の処理で、実行点灯ナンバ(lmpNo)に登録点灯ナンバ(lmpNew)の値を代入することで、実行中の点灯パターンのランプナンバが実行点灯ナンバ(lmpNo)として管理されるようにする。
このような処理により、ワーク上での登録点灯ナンバ(lmpNew)、実行点灯ナンバ(lmpNo)の処理が容易で演出制御CPU200の処理負担も削減でき、その上で、実行予定、実行中の点灯パターンが明確に管理でき、ステップS705では、実行点灯ナンバ(lmpNew)を参照して処理を分岐し、冗長な処理を回避できる。
またステップS702で、登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)が一致していなければ、ステップS703で実行点灯ナンバ(lmpNo)に登録点灯ナンバ(lmpNew)の値を代入するという処理を採用することで、ランプデータ登録情報以外を参照せずに実行点灯ナンバ(lmpNo)を更新でき、これも処理負担削減に有効である。
このように、演出制御CPU200の処理負担の軽減が図られている。
In the case of this example, specifically, a process of registering the designated value (lamp number) of the rendering operation information selected based on the control command as the registered lighting number (lmpNew) is performed in step S653 of FIG. 15B. Then, at the start of execution of the process according to the presentation operation information (lighting pattern) registered in the lamp data registration information as the registered lighting number (lmpNew), the execution lighting number (lmpNo) is set in steps S702 to S704 in FIG. By substituting the value of the registered lighting number (lmpNew), the lamp number of the lighting pattern being executed is managed as the execution lighting number (lmpNo).
By such processing, the registered lighting number (lmpNew) and the execution lighting number (lmpNo) on the workpiece can be easily processed, and the processing load of the
If the registered lighting number (lmpNew) and the execution lighting number (lmpNo) do not match in step S702, a process of substituting the value of the registered lighting number (lmpNew) for the execution lighting number (lmpNo) in step S703 is adopted. By doing so, the execution lighting number (lmpNo) can be updated without referring to information other than the lamp data registration information, which is also effective in reducing the processing burden.
In this way, the processing load of the
[4−7:音の登録処理]
続いて、図15のステップS635として実行する音の登録処理について説明する。
この音の登録処理は、図19Bに例示した音/モータサブシナリオテーブルの記述内容(サブシナリオデータ)に応じた情報を、図17の音データ登録情報の音チャネルaCHに登録する処理となる。
[4-7: Sound registration processing]
Next, the sound registration process executed as step S635 in FIG. 15 will be described.
This sound registration processing is processing for registering information corresponding to the description content (subscenario data) of the sound / motor sub-scenario table illustrated in FIG. 19B in the sound channel aCH of the sound data registration information of FIG.
図24は、音の登録処理を示している。
まず、演出制御CPU200はステップS800で、音/モータサブシナリオテーブルに音データが存在するか否かを判別する。即ち、音/モータサブシナリオテーブルの当該サブシナリオ番号の該当ラインの記述情報として、BGM/SE1/SE2/エラー音/音コントロールの何れかの情報が存在するか否かを判別する。
これらの音データが存在しない場合は処理を終える。
FIG. 24 shows a sound registration process.
First, the
If these sound data do not exist, the process ends.
一方、これら音データの何れかが存在する場合、演出制御CPU200は、ステップS801でBGMか否かを判別する。音データがBGMであった場合、演出制御CPU200はステップS802で音/モータサブシナリオテーブルの音データを音チャネルaCH0にセットする。即ち、音/モータサブシナリオテーブルの当該サブシナリオ番号の該当ラインに記述されたBGMの情報を、音データ登録情報における、当該BGMに対応づけられた音チャネルaCHとしての音チャネルaCH0に登録する。
先に説明したように、音データがBGM、SE1、SE2、エラー音の場合、その記述内容(つまりシナリオデータ)としては少なくとも再生すべきフレーズのフレーズ番号とその1次ボリュームの情報と、ループ再生やステレオ再生の有無に関する情報とが含まれ、従ってこれらの情報が音データ登録情報に登録される。
なお、BGM、SE1、SE2についてはステレオ再生が可能とされ、その場合は音/モータサブシナリオテーブルのBGM、SE1、SE2の情報でその指示が為される。例えばBGMがステレオ再生される場合、音チャネルaCH0のみでなく音チャネルaCH1も使用される。この場合、これら音チャネルaCH0、aCH1のうち、偶数チャネルである音チャネルaCH0に、フレーズ番号(frzHi、frzLo)としてBGMの情報に記述されたフレーズ番号が登録されると共に、ステレオ(frzSt)の情報として「1」が記述される。またループ再生をする場合には、ループ(frzLp)の情報として「1」が記述される。
On the other hand, if any of these sound data exists, the
As described above, when the sound data is BGM, SE1, SE2, and error sound, the description content (that is, scenario data) includes at least the phrase number of the phrase to be reproduced, information on the primary volume, and loop reproduction. And information regarding the presence / absence of stereo playback are included, and thus these pieces of information are registered in the sound data registration information.
Note that BGM, SE1, and SE2 can be played back in stereo, and in that case, the instruction is given by the information of BGM, SE1, and SE2 in the sound / motor sub-scenario table. For example, when BGM is reproduced in stereo, not only the sound channel aCH0 but also the sound channel aCH1 is used. In this case, among the sound channels aCH0 and aCH1, the phrase number described in the BGM information is registered as the phrase number (frzHi, frzLo) in the even channel sound channel aCH0, and stereo (frzSt) information is registered. “1” is described. When loop playback is performed, “1” is described as loop (frzLp) information.
ステップS802でBGMの音データをセットした場合、或いはステップS801で音データがBGMでないとされた場合、演出制御CPU200はステップS803で音データがエラー音か否かを判別し、エラー音であった場合はステップS804で音/モータサブシナリオテーブルの音データを音チャネルaCH15にセットする。即ち、エラー音に対応する音チャネルaCHとしての音チャネルaCH15にサブシナリオデータの記述内容に応じた情報を登録する。
If BGM sound data is set in step S802, or if the sound data is not BGM in step S801, the
ステップS804でエラー音の音データをセットした場合、或いはステップS803で音データがエラー音でないとされた場合、演出制御CPU200はステップS805で音データがSE1か否かを判別し、SE1であった場合はステップS806でSE1の設定処理を行う。
そして、ステップS806でSE1の設定処理を実行した場合、或いはステップS805で音データがSE1でないとされた場合、演出制御CPU200はステップS807で音データがSE2か否かを判別し、SE2であった場合はステップS808でSE2の設定処理を行う。
さらに、ステップS808でSE2の設定処理を実行した場合、或いはステップS807で音データがSE2でないとされた場合、演出制御CPU200はステップS809で音データが音コントロールか否かを判別し、音コントロールであった場合はステップS810で音コントロールの設定処理を行う。
ステップS810で音コントロールの設定処理を実行した場合、或いはステップS805で音データが音コントロールでないとされた場合、演出制御CPU200は図24に示す処理を終える。
When the sound data of the error sound is set in step S804, or when the sound data is not an error sound in step S803, the
If the SE1 setting process is executed in step S806, or if the sound data is not SE1 in step S805, the
Further, when the SE2 setting process is executed in step S808, or when the sound data is not SE2 in step S807, the
When the sound control setting process is executed in step S810, or when the sound data is not sound control in step S805, the
以下、上記のステップS806、S808、S810でそれぞれ実行するSE1の設定処理、SE2の設定処理、音コントロールの設定処理の内容を個別に説明する。 The contents of the SE1 setting process, SE2 setting process, and sound control setting process executed in steps S806, S808, and S810, respectively, will be described individually.
まず図25により、ステップS806、S808でそれぞれ実行するSE1の設定処理、SE2の設定処理の内容について説明する。
なお、これらSE1の設定処理、SE2の設定処理の内容は、音データの登録対象とする音チャネルaCH(対応音チャネルaCH)が異なる以外は共通であるため、当該図25の一図での説明とする。
First, the contents of the SE1 setting process and SE2 setting process executed in steps S806 and S808, respectively, will be described with reference to FIG.
The contents of the SE1 setting process and SE2 setting process are the same except that the sound channel aCH (corresponding sound channel aCH) to be registered for the sound data is different. And
まず演出制御CPU200はステップS901で、対応音チャネルaCHの再生状態を取得する。前述のように本実施の形態では音の種別ごとに登録を行うべき音チャネルaCHの対応が定められており、SE1の場合は音チャネルaCH2〜aCH9が、またSE2の場合は音チャネルaCH10〜aCH14がそれぞれ対応音チャネルaCHとなる。
従って、ステップS901の処理は、SE1の設定処理(S806)として実行される場合は音チャネルaCH2〜aCH9の再生状態を取得する処理となり、SE2の設定処理(S808)として実行される場合は音チャネルaCH10〜aCH14の再生状態を取得する処理となる。
各音チャネルaCHの再生状態の取得、即ちフレーズを再生中であるか否かの情報の取得は、音源IC59に音チャネルaCHごとに設けられた再生状態情報格納レジスタの値を取得することで行う。
First, the
Therefore, the process of step S901 is a process of acquiring the playback state of the sound channels aCH2 to aCH9 when executed as the SE1 setting process (S806), and the sound channel when executed as the SE2 setting process (S808). This is a process of acquiring the playback state of aCH10 to aCH14.
Acquisition of the reproduction state of each sound channel aCH, that is, acquisition of information on whether or not a phrase is being reproduced, is performed by acquiring the value of a reproduction state information storage register provided for each sound channel aCH in the
次に、ステップS902では演出制御CPU200は、設定音チャネルaCHをスタート音チャネルaCHに設定する。ここで、設定音チャネルaCHとは、音データ登録の対象とする音チャネルaCHを意味する。また、スタート音チャネルaCHとは、対応音チャネルaCHのうち最もチャネル番号の小さい音チャネルaCHを意味し、SE1の場合はaCH2、SE2の場合はaCH10が該当する。
以下のステップS903〜S911の処理により、スタート音チャネルaCHから順に空きチャネルを探索してSEの音データの登録を行うべく、ステップS902で設定音チャネルaCHをスタート音チャネルaCHに設定する。
Next, in step S902, the
In step S902, the set sound channel aCH is set as the start sound channel aCH in order to search for an empty channel in order from the start sound channel aCH and register SE sound data by the processing in steps S903 to S911.
ステップS903では演出制御CPU200は、設定音チャネルaCHは再生中であるか否かを判別する。設定音チャネルaCHが再生中であれば、ステップS908で設定音チャネルaCHを+1するとともに、ステップS909で設定音チャネルaCHがエンドチャネルより大であるか否かを判別する。エンドチャネルとは、対応音チャネルaCHのうちチャネル番号が最も大きい音チャネルaCHを意味し、従ってSE1の場合は音チャネルaCH9より大であるか否か、SE2の場合は音チャネルaCH14より大であるか否かをそれぞれ判別することになる。
設定音チャネルaCHがエンドチャネルより大である場合は、対応音チャネルaCHに空きがないことから処理を終了する。
一方、設定音チャネルaCHがエンドチャネルより大でない場合はステップS903に戻る(つまり次の音チャネルaCHについて再生中か否かの判別が行われる)。
In step S903, the
If the set sound channel aCH is larger than the end channel, the corresponding sound channel aCH is empty, and the process ends.
On the other hand, if the set sound channel aCH is not larger than the end channel, the process returns to step S903 (that is, it is determined whether or not the next sound channel aCH is being reproduced).
ステップS903で設定音チャネルaCHは再生中でないとされた場合、演出制御CPU200はステップS904に進み、設定音チャネルaCHのワークに音データがないか否かを判別する。
設定音チャネルaCHに音データがある、つまり設定音チャネルaCHは空きではないとされた場合、演出制御CPU200はステップS908に進む。つまりこれにより、対応音チャネルaCH内における次の空きチャネルを探索するようにされる。
If it is determined in step S903 that the set sound channel aCH is not being reproduced, the
If there is sound data in the set sound channel aCH, that is, if the set sound channel aCH is not empty, the
一方、設定音チャネルaCHに音データがない、つまり設定音チャネルaCHが空きであるとされた場合、演出制御CPU200はステップS905に進み、ステレオ要求があるか否かを判別する。即ち、テーブルのSEの情報中におけるステレオ再生か否かを表す情報を参照して、当該SEの情報が、ステレオ再生の要求を伴うものであるか否かを判別する。なお、前述のようにステレオ再生を要求するシナリオデータには、LchとRchの個別のフレーズ番号は記述されず、共通の1つのフレーズ番号が記述されている。
On the other hand, if there is no sound data in the set sound channel aCH, that is, it is determined that the set sound channel aCH is empty, the
ステレオ要求があった場合、演出制御CPU200はステップS906に進み、設定音チャネルaCHが偶数チャネルであるか否かを判別する。設定音チャネルaCHが偶数チャネルでなければ、演出制御CPU200はステップS908に進み、設定音チャネルaCHを+1する。即ち、次の音チャネルaCH以降で空きチャネルを探索する。
前述のように本例では、ステレオ再生は偶数の音チャネルaCHnとその次の奇数の音チャネルaCHn+1とを使用する。このためステレオ再生を要求するシナリオデータに応じては、連続した偶数・奇数の空きチャネルを探索することを行う。そこでステップS906で設定音チャネルaCHが偶数チャネルでなければ、次の音チャネルaCH以降で空きチャネルを探索するようにしている。
またステップS906で設定音チャネルaCHが偶数チャネルであれば、演出制御CPU200はステップS907に進み、設定音チャネルaCHの次の音チャネルaCHも空きチャネルであるか否か(再生中でないかも含めて空きチャネルであるか否か)を判別する。
設定音チャネルaCHの次の音チャネルaCHが空きチャネルでなければ、ステップS908に進む。つまり、対応音チャネルaCH内での次の空きチャネルを探索する。
設定音チャネルaCHの次の音チャネルaCHが空きチャネルであれば、連続する偶数の音チャネルaCHnとその次の奇数の音チャネルaCHn+1とが使用できることになる。そこでステップS911に進んで、テーブルの音データを設定音チャネルaCHに対応したワークの領域にセットし、処理を終了する。本実施の形態では、連続する偶数、奇数の音チャネル(aCHn、aCHn+1)のうち、偶数の音チャネルaCHnのみに音データをセットする。
If there is a stereo request, the
As described above, in this example, the stereo reproduction uses the even-numbered sound channel aCHn and the next odd-numbered sound
If the set sound channel aCH is an even channel in step S906, the
If the sound channel aCH next to the set sound channel aCH is not an empty channel, the process proceeds to step S908. That is, the next empty channel in the corresponding sound channel aCH is searched.
If the sound channel aCH next to the set sound channel aCH is an empty channel, the continuous even-numbered sound channel aCHn and the next odd-numbered sound channel aCHn + 1 can be used. In step S911, the sound data in the table is set in the work area corresponding to the set sound channel aCH, and the process ends. In the present embodiment, the sound data is set only to the even-numbered sound channel aCHn among the even-numbered and odd-numbered sound channels (aCHn, aCHn + 1).
ステップS905でステレオ要求がないとされた場合、つまりモノラル要求の場合は、演出制御CPU200はステップS910に進み、現在の設定音チャネルaCHが偶数チャネルであるか否かを確認する。偶数チャネルであれば、ステップS911に進んで、テーブルの音データを設定音チャネルaCHに対応したワークの領域にセットして処理を終了する。
ところが奇数チャネルである場合は、上記のようにステレオ使用されている2つの音チャネル(aCHn、aCHn+1)のうちの奇数チャネルである可能性がある。ステレオ使用される奇数チャネルには音データをセットしないため、上記ステップS904で空きチャネルと判断されることから、ステレオ使用にかかる音チャネルの確認が必要となる。
そこでステップS910で偶数チャネルではないと判断された場合、ステップS912に進んで、1つ前の偶数チャネルがモノラル再生中であるか否かを確認する。
もし1つ前の偶数チャネルがステレオ再生中であれば、現在の設定音チャネルaCHは使用できないため、ステップS908に進む。
1つ前の偶数チャネルがモノラル再生中であれば、ステップS911に進み、テーブルの音データを設定音チャネルaCHに対応したワークの領域にセットして処理を終了する。
When it is determined in step S905 that there is no stereo request, that is, in the case of a monaural request, the
However, in the case of an odd channel, there is a possibility that it is an odd channel of the two sound channels (aCHn, aCHn + 1) used in stereo as described above. Since sound data is not set for the odd-numbered channels used in stereo, it is determined in step S904 that the channel is an empty channel, so it is necessary to confirm the sound channel for stereo use.
If it is determined in step S910 that the channel is not an even channel, the process proceeds to step S912 to check whether the previous even channel is being played back in monaural.
If the previous even channel is being reproduced in stereo, the current set sound channel aCH cannot be used, and the process advances to step S908.
If the previous even channel is being played back in monaural, the process advances to step S911 to set the sound data in the table in the work area corresponding to the set sound channel aCH, and the process ends.
以上のSEの設定処理によって、サブシナリオテーブルに記述されたSE1又はSE2の音データが音データ登録情報における対応音チャネルaCHのうちの空きチャネルに登録される。
また、当該SE1又はSE2の情報がフレーズのステレオ再生を要求するものであった場合は、音源IC59がステレオ再生に偶数チャネルとその次の奇数チャネルとを使用することを要求する場合に対応して、対応音チャネルaCH内における偶数チャネルとその次の奇数チャネルを用いるようにし、偶数チャネルに音データを登録できる。つまりこれにより、音源IC59の仕様に応じた適切な情報登録を行うことができる。
Through the above SE setting process, the sound data of SE1 or SE2 described in the sub-scenario table is registered in an empty channel among the corresponding sound channels aCH in the sound data registration information.
Further, when the information of SE1 or SE2 requests stereo playback of a phrase, this corresponds to the case where the
続いて、図24のステップS810として実行する音コントロールの設定処理について図26〜図28を参照して説明する。
図26は、ステップS810の音コントロールの設定処理を示している。
まず、演出制御CPU200はステップS1001で、音コントロールの情報の上位1バイトの値を確認する。
Next, the sound control setting process executed as step S810 of FIG. 24 will be described with reference to FIGS.
FIG. 26 shows the sound control setting process in step S810.
First, the
図27は、音コントロールの情報のデータ構造例を示している。
本実施の形態の場合、音コントロールの情報は4バイトで構成され、その上位1バイトに音のコントロール内容を表すための情報(コントロール種別の情報)が記述され、下位3バイトに音のコントロール対象とする音チャネルaCHを指定するための情報(コントロール対象の情報)が記述される。
この上位1バイトのコントロール種別の情報によっては、フェードイン再生やフェードアウト再生、及び2次ボリュームの変化指示が可能とされる。
FIG. 27 shows an example of the data structure of sound control information.
In the case of the present embodiment, the sound control information is composed of 4 bytes, information (control type information) for describing the sound control content is described in the upper 1 byte, and the sound control target is described in the lower 3 bytes. Information for designating the sound channel aCH (information to be controlled) is described.
Depending on the control type information of the upper 1 byte, fade-in reproduction, fade-out reproduction, and secondary volume change instruction can be made.
図のように上位1バイトで表されるコントロール種別の情報としては、0x20〜0x70までがフェード系の情報とされ、0x80以上が2次ボリュームの変化指示の情報とされる。
具体的に、0x20〜0x70までのフェード系の情報としては、0x25(SFO1M)が「フェードアウトゆっくり 消音」、0x35(SFO2M)が「フェードアウト普通 消音」、0x45(SFO3M)が「フェードアウトはやく 消音」、0x20(SFO1)が「フェードアウトゆっくり 音小」、0x30(SFO2)が「フェードアウト普通 音小」、0x40(SFO3)が「フェードアウトはやく 音小」、0x50(SFI1)が「フェードインゆっくり」、0x60(SFI2)が「フェードイン普通」、0x70(SFI3)が「フェードインはやく」を表す。
ここで、「ゆっくり」「普通」「はやく」は、フェード制御におけるボリュームの遷移速度(speed)を意味する。またフェードアウトについての「消音」と「音小」の違いは、遷移後のボリュームが「0」か否かである。
As shown in the figure, as the control type information represented by the upper 1 byte, 0x20 to 0x70 are fade-type information, and 0x80 or more is secondary volume change instruction information.
Specifically, as for the fade system information from 0x20 to 0x70, 0x25 (SFO1M) is "fade-out slow mute", 0x35 (SFO2M) is "fade-out normal mute", 0x45 (SFO3M) is "fade-out mute", 0x20 (SFO1) is “fading out slowly”, 0x30 (SFO2) is “fading out normal”, 0x40 (SFO3) is “fading out quickly”, 0x50 (SFI1) is “fading in slowly”, 0x60 (SFI2) “Fade in normal” and 0x70 (SFI3) means “Fade in fast”.
Here, “slow”, “normal”, and “fast” mean the volume transition speed (speed) in the fade control. The difference between “mute” and “sound volume” for fade-out is whether or not the volume after transition is “0”.
また、0x80以上の2次ボリュームの変化指示の情報としては、0x80(SVO8)、0x81(SVO0)、0x82(SVO2)、0x83(SVO4)がそれぞれ2次ボリューム=0x80(MAX)、0x00(0)、0x20、0x40を表す。そして、0x90(SVO8E)はエラー以外の全ての音チャネルaCH(aCH0〜aCH14)の2次ボリューム=0x80を表し、0x91(SVO0E)はエラー以外の全ての音チャネルaCHの2次ボリューム=0x00を表す。 As the change instruction information of the secondary volume of 0x80 or higher, 0x80 (SVO8), 0x81 (SVO0), 0x82 (SVO2), and 0x83 (SVO4) are secondary volumes = 0x80 (MAX) and 0x00 (0), respectively. , 0x20, 0x40. Then, 0x90 (SVO8E) represents the secondary volume of all sound channels aCH (aCH0 to aCH14) other than the error = 0x80, and 0x91 (SVO0E) represents the secondary volume of all sound channels aCH other than the error = 0x00. .
また、音コントロールの情報の下位3バイトは、0x110000(BG_T)が音チャネルaCH0(BGM)、0x220000(YK1_T)が音チャネルaCH2〜aCH9(SE1)、0x330000(YK2_T)が音チャネルaCH10〜aCH14(SE2)、0x440000(YKA_T)が音チャネルaCH2〜aCH14(SE1+SE2=全SE)、0x00−−−−(その他)が「−−−−」が示すフレーズを再生している音チャネルaCHを表す。 The lower 3 bytes of the sound control information are 0x110000 (BG_T) for sound channel aCH0 (BGM), 0x220,000 (YK1_T) for sound channels aCH2 to aCH9 (SE1), and 0x330000 (YK2_T) for sound channels aCH10 to aCH14 (SE2). ), 0x440000 (YKA_T) represents the sound channel aCH2 to aCH14 (SE1 + SE2 = all SEs), and 0x00 ---- (other) represents the sound channel aCH reproducing the phrase indicated by “----”.
図26のステップS1001では、演出制御CPU200は、上記のデータ構造とされる音コントロールの情報の上位1バイトの値の確認処理として、上位1バイトの値が80h(0x80)未満、80h以上90h未満、90h以上の何れであるかを確認する。これは、コントロール種別がフェード系、単純な2次ボリューム変化指示、エラー以外の全音チャネルaCHの指定を伴う2次ボリューム変化指示の何れかであるかを確認していることに相当する。
In step S1001 of FIG. 26, the
80h以上90h未満の場合、演出制御CPU200はステップS1002で、音/モータサブシナリオテーブル(音コントロールの情報)の下位3バイトが示す音チャネルaCHの2次ボリュームを上位1バイトが示すボリューム値にセットして処理を終了する。
また、90h以上である場合、演出制御CPU200はステップS1003で音チャネルaCH0〜aCH14の2次ボリュームを上位1バイトが示すボリューム値にセットして処理を終了する。
In the case of 80h or more and less than 90h, the
If it is 90h or more, the
一方、上位1バイトが80h未満であった場合、演出制御CPU200はステップS1004で上位1バイトの値に応じたコントロールデータに変換する処理を行った上で、ステップS1005で音/モータサブシナリオテーブル(音コントロールの情報)の下位3バイトが示す音チャネルaCHに対応するワーク領域に変換後のコントロールデータをセットし、処理を終了する。
On the other hand, if the upper 1 byte is less than 80h, the
ここで、上位1バイトが80h未満のフェード系のコントロール情報は、「フェードアウトゆっくり 消音」や「フェードインはやく」など、そのコントロール種別の違いのみを識別するための情報とされている。そこで、これらの上位1バイトのコントロール種別の情報を上記のステップS1004で音源IC59が対応動作を実行可能な情報に変換する。
Here, the fade-type control information whose upper 1 byte is less than 80h is information for identifying only the difference in the control type such as “fade out slowly mute” or “fade in quickly”. Therefore, the information of the control type of the upper 1 byte is converted into information that allows the
図28Aは、図26のステップS1004の変換処理の内容を示している。
まず、演出制御CPU200はステップS1101で、変換テーブルから上位1バイトの値に対応する2バイトの値を取得する。そして、ステップS1102で、下位3バイトの値に基づき2バイトの値を取得する。
その上で、ステップS1103では、これらステップS1101とS1102とで取得した2バイトの値を連結する。
FIG. 28A shows the contents of the conversion process in step S1004 of FIG.
First, the
In step S1103, the 2-byte values acquired in steps S1101 and S1102 are concatenated.
図28Bは、上記のステップS1101、S1102の取得処理についての説明図である。
まず、ステップS1101の取得処理では、図のようにフェード系の上位2バイトの値(0x25〜0x70)ごとにその対応値(2バイト)を格納した変換テーブルを用いる。演出制御CPU200は該変換テーブルを参照して、上位1バイトの値に対応する2バイトの値を取得する。
そして、ステップS1102の取得処理では、音コントロールの下位3バイトの値に基づいて、コントロール対象がSE1、SE2以外(つまりaCH2〜aCH14以外:予告音以外)の場合と、SE1、SE2の場合とで、それぞれ図のような2バイトの値を取得する。すなわち、SE1、SE2以外の場合は0xD000、SE1、SE2の場合は0xC000である。
なお、後述もするが、このようにコントロール対象がSE1、SE2の何れかとされる場合とそうでない場合とで取得値を異ならせているのは、SE1とSE2のみフェード制御がモノラル指定とされているからである。
このように得られた各2バイトの値をステップS1103で連結して、4バイトのコントロールデータを得る。
FIG. 28B is an explanatory diagram of the acquisition process of steps S1101 and S1102 described above.
First, in the acquisition process of step S1101, a conversion table storing the corresponding value (2 bytes) for each value (0x25 to 0x70) of the upper 2 bytes of the fade system is used as shown in the figure. The
In the acquisition process in step S1102, the control target is other than SE1 and SE2 (that is, other than aCH2 to aCH14: other than the warning sound) and SE1 and SE2 based on the value of the lower 3 bytes of the sound control. , 2 byte values as shown in the figure are acquired. That is, it is 0xD000 in cases other than SE1 and SE2, and 0xC000 in cases of SE1 and SE2.
As will be described later, the acquisition value differs depending on whether the control target is either SE1 or SE2 or not, because the fade control is set to monaural only for SE1 and SE2. Because.
The 2-byte values thus obtained are concatenated in step S1103 to obtain 4-byte control data.
図28Cは、音コントロールのフェード系の情報と、その情報内容(値)に応じて図28Aの変換処理で得られるコントロールデータとの対応関係を例示している。
ここで、本実施の形態では、図28Aの変換処理で得られる計4バイトのコントロールデータを、そのまま音データ登録情報に設定(登録)する。この意味で図中では、図28Aの変換処理で得られるコントロールデータのことを「音データ登録情報に設定するデータ」と示している。
この図28Cによると、フェード系の音コントロールの情報として例えば上位1バイト=SFO1M(フェードアウトゆっくり 消音)、下位3バイト=BG_Tとされた情報については、上記の変換処理によって「0x2000D000」というコントロールデータに変換されることが分かる。また、例えば上位1バイト=SFO3M(フェードアウトはやく 消音)、下位3バイト=YK1_Tとされた音コントロールの情報については、「0xFF00C000」というコントロールデータに変換されている。
FIG. 28C illustrates the correspondence between the sound control fade system information and the control data obtained by the conversion processing of FIG. 28A according to the information content (value).
Here, in this embodiment, the control data of a total of 4 bytes obtained by the conversion process of FIG. 28A is set (registered) as it is in the sound data registration information. In this sense, in the figure, the control data obtained by the conversion process of FIG. 28A is indicated as “data to be set in the sound data registration information”.
According to FIG. 28C, for information about the fade sound control, for example, the upper 1 byte = SFO1M (fading out slowly mute) and the lower 3 bytes = BG_T, the control data of “0x2000D000” is obtained by the above conversion process. It turns out that it is converted. Also, for example, the sound control information in which the upper 1 byte = SFO3M (fading out quickly mute) and the lower 3 bytes = YK1_T is converted into control data “0xFF00C000”.
図17を参照すると、音データ登録情報では、1バイト目が「1次ボリューム遷移量」、2バイト目が「1次ボリューム」、3バイト目が「遷移量変化」「ボリューム変化」「フレーズ変化」「ステレオ」「ループ」(ここまで各1ビット)及び「フレーズ番号hi」(3ビット)、4バイト目が「フレーズ番号low」とされている。
前述のように本実施の形態では変換後のコントロールデータをそのまま音データ登録情報にセットするので、例えば上記のSFO1M+BG_Tの音コントロール情報のコントロールデータ(0x2000D000)によると、音データ登録情報の登録内容は、
「1次ボリューム遷移量」=「0x20」
「1次ボリューム」=「0x00」
「遷移量変化」=「1」
「ボリューム変化」=「1」
「フレーズ変化」=「0」
「ステレオ」=「1」
「ループ」=「0」
「フレーズ番号hi」=「000」
「フレーズ番号low」=「0x00」
となる。
また、例えば上記のSFO3M+YK1_Tの音コントロール情報のコントロールデータ(0xFF00C000)によると、音データ登録情報の登録内容は、
「1次ボリューム遷移量」=「0xFF」
「1次ボリューム」=「0x00」
「遷移量変化」=「1」
「ボリューム変化」=「1」
「フレーズ変化」=「0」
「ステレオ」=「0」
「ループ」=「0」
「フレーズ番号hi」=「000」
「フレーズ番号low」=「0x00」
となる。
Referring to FIG. 17, in the sound data registration information, the first byte is “primary volume transition amount”, the second byte is “primary volume”, the third byte is “transition amount change”, “volume change”, and “phrase change”. “Stereo” “Loop” (1 bit each so far) and “Phrase number hi” (3 bits), and the fourth byte is “Phrase number low”.
As described above, in the present embodiment, the converted control data is set as it is in the sound data registration information, so, for example, according to the control data (0x2000D000) of the sound control information of SFO1M + BG_T described above, the registered content of the sound data registration information is ,
“Primary volume transition amount” = “0x20”
“Primary volume” = “0x00”
“Transition amount change” = “1”
"Volume change" = "1"
“Phrase change” = “0”
"Stereo" = "1"
"Loop" = "0"
“Phrase number hi” = “000”
“Phrase number low” = “0x00”
It becomes.
For example, according to the control data (0xFF00C000) of the sound control information of SFO3M + YK1_T described above, the registration content of the sound data registration information is
“Primary volume transition amount” = “0xFF”
“Primary volume” = “0x00”
“Transition amount change” = “1”
"Volume change" = "1"
“Phrase change” = “0”
"Stereo" = "0"
"Loop" = "0"
“Phrase number hi” = “000”
“Phrase number low” = “0x00”
It becomes.
なお、前者の例のようにコントロール対象がSE1,SE2以外の場合には、「ステレオ」に「1」(ステレオ)がセットされ、後者の例のようにコントロール対象がSE1(SE2も同様)の場合には、「ステレオ」に「0」(モノラル)がセットされることになる。この点からも理解されるように、前述したSEのフェード制御についてのモノラル指定が実現される。 When the control target is other than SE1 or SE2 as in the former example, “1” (stereo) is set to “stereo”, and the control target is SE1 (same for SE2) as in the latter example. In this case, “0” (monaural) is set in “stereo”. As understood from this point, monaural designation for the above-described SE fade control is realized.
上記のように本実施の形態では、フェード系の音コントロールの情報について、そのコントロール種別の情報として単純にフェード制御の違いのみを表す情報を記述しておき、これを上記の変換処理により変換して音データ登録情報に登録可能なデータ(つまりは音源IC59がそのフェード制御の実行に要するデータ)に変換するものとしている。
ここで、「フェードアウトゆっくり 消音」「フェードインはやく」等のフェード制御は、時間経過と共にボリュームを徐々に変化させるようなサブシナリオデータを用意しておくことで実現することも考えられるが、その場合は時間ごとのサブシナリオデータを保持させておくことになり、その分メモリ容量を要することになる。これに対し上記のような変換処理を行う本実施の形態によれば、サブシナリオデータとしては単に「フェードアウトゆっくり 消音」「フェードインはやく」等のフェード制御の違いのみを表す情報を記述すればよく、一種のフェード制御に要するサブシナリオデータの数を1つに削減でき、結果、サブシナリオデータを保持するためのメモリ容量を削減できる。
As described above, in the present embodiment, for fade type sound control information, information indicating only the difference in fade control is described as the control type information, and this is converted by the above conversion processing. Thus, the data is converted into data that can be registered in the sound data registration information (that is, data required for the
Here, fade control such as “slow mute fade out” and “fast fade in” can be realized by preparing sub-scenario data that gradually changes the volume over time. Will hold sub-scenario data for each hour, which requires more memory capacity. On the other hand, according to the present embodiment that performs the conversion processing as described above, the sub-scenario data may simply describe information representing only the difference in fade control such as “fade out slowly mute” and “fade in fast”. The number of sub-scenario data required for a kind of fade control can be reduced to one, and as a result, the memory capacity for holding the sub-scenario data can be reduced.
また、上記のような変換処理を行うものとすれば、仮に音源IC59の仕様が変更されたとしても、図28Bに示した変換テーブルの内容を変更するのみで対応可能であり、サブシナリオデータの書き替えやプログラムの書き換えは行わずに済む。従って、音源IC59の仕様変更に柔軟に対応できると共に、音源IC59の仕様変更に対応するための作業負担も軽減できる。
また、フェードイン/アウトとして具体的なボリューム遷移量などを変更するとしたときにも、図28Bに示した変換テーブルの内容を変更するだけでよく、同様にサブシナリオデータの書き替えやプログラムの書き換えは行わずに済み、変更に係る作業負担を軽減できる。
Further, if the conversion process as described above is performed, even if the specification of the
Also, when a specific volume transition amount or the like is changed as a fade-in / out, it is only necessary to change the contents of the conversion table shown in FIG. 28B. Similarly, the sub-scenario data is rewritten or the program is rewritten. It is possible to reduce the work burden associated with the change.
ここで、図29により、フェード系の音コントロールの情報の使用例について説明しておく。
この図29の例では、音/モータサブシナリオテーブルにおける音/モータサブシナリオ番号001のサブシナリオデータとして、時間(time)=0でBGMを「フェードアウトはやく 音小」(SFO3+BG_T)の態様でフェードさせ、時間=0でSE1のフレーズ0001をボリューム0x80での再生を開始させ、時間=2000でSE1のフレーズ0002をボリューム0x80でのステレオ再生を開始させ、時間=5000でBGMを「フェードインゆっくり」(SFI1+BG_T)の態様でフェードさせる情報が記述された場合を例示している。
なお図中にも記しているが、フレーズの終了タイミングはそのフレーズとしての音データが終了する時点となる。
Here, referring to FIG. 29, an example of use of fade-type sound control information will be described.
In the example of FIG. 29, as sub-scenario data of sound / motor sub-scenario number 001 in the sound / motor sub-scenario table, BGM is faded in the form of “fading out quickly, small sound” (SFO3 + BG_T) at time = 0. , Start playback of SE1 phrase 0001 at volume 0x80 at time = 0, start stereo playback of phrase 0002 at SE1 at volume 0x80 at time = 2000, and “fade in slowly” BGM at time = 5000 ( The case where information to be faded in the form of (SFI1 + BG_T) is described.
As also shown in the figure, the phrase end timing is the time when the sound data as the phrase ends.
図14、図15及び図24〜図28で説明したシナリオ更新処理、サブシナリオ更新処理、音データ登録処理が実行されることで、先ずは時間=0のラインに記述された音コントロールの情報(SFO3+BG_T)に応じたコントロールデータ、及び時間=0のラインに記述されたSE1の情報(0x00806001)が音データ登録情報にセットされる。なお確認のため述べておくと、図14、図15、及び図24に示した処理によれば、これら同じ時間=0のラインに記述されたデータは、音データ登録情報に対して一度にセットされる(図15の「音の登録処理(S635)」で一度にセットされる)。
図8のメイン処理における音再生処理(S111)によって、このように音データ登録情報にセットされた情報が順次音源IC59に出力されて、サブシナリオデータに応じた音出力が実現される。これにより、図中の下段に示すようなBGMのフェードアウトとフレーズ0001の再生が実現される。
The scenario update process, the sub-scenario update process, and the sound data registration process described with reference to FIGS. 14, 15, and 24 to 28 are executed, so that first, the sound control information described in the time = 0 line ( Control data corresponding to SFO3 + BG_T) and SE1 information (0x00806001) described in the time = 0 line are set in the sound data registration information. For confirmation, according to the processing shown in FIGS. 14, 15, and 24, the data described in the same time = 0 line is set at once for the sound data registration information. (It is set at a time in the “sound registration process (S635)” of FIG. 15).
By the sound reproduction process (S111) in the main process of FIG. 8, the information set in the sound data registration information is sequentially output to the
また、時間=2000となることに応じて、音データ登録情報に当該時間=2000のラインに記述されたSE2の情報(0x00807002)が登録され、この登録情報がステップS111の音再生処理で音源IC59に順次出力されることで、図中の下段に示すような時間=2000からのフレーズ0002の再生が開始される。
さらに、時間5000となることに応じて、音データ登録情報に当該時間=5000のラインに記述された音コントロールの情報(SFI1+BG_T)に応じたコントロールデータが登録され、この登録情報がステップS111の音再生処理で音源IC59に順次出力されることで、図中に示すような時間=5000におけるBGMのフェードインが実現される。
In response to time = 2000, SE2 information (0x00807002) described in the line of time = 2000 is registered in the sound data registration information, and this registration information is stored in the
Further, when
ここで、音コントロールの情報によっては、図27を参照して説明したように、指定の音チャネルaCHで再生されるフレーズの2次ボリュームの変化指示も行うことができる。
図30を参照して、2次ボリュームの変化指示によるボリューム制御例を説明する。
図30は、2次ボリュームにより所定種別の音を消音させる制御例についての説明図であり、具体的には、BGMの再生中にSE1のフレーズ0010を再生するシナリオが登録された場合に、2次ボリュームによりBGMを消音させる例を示している。
この例の場合には、サブシナリオテーブルの時間=0のラインが2つ存在しており、一方の時間=0のラインには音コントロールの情報として「SVO0+BG_T」(図27を参照)が記述され、他方の時間=0のラインにはSE1の情報として「0x0080700A」(フレーズ0010を1次ボリューム0x80でステレオ再生)が記述されている。
なお、このように時間(time)を同じとするラインが2つ存在する場合は、先の図14、図15、及び図24に示した処理によりそれらのラインの記述情報が順次音データ登録情報に登録されることになる。これらの登録情報に応じ、時間=0に対応して図のようなBGMの2次ボリュームによる消音と、SE1としてのフレーズ0010の再生とが開始される。
また、この図の例では時間=5000のラインに音コントロールの情報として「SVO8+BG_T」(2次ボリューム=0x80)が記述され、これにより、図のように時間=5000以降はBGMの消音状態が解除される。
Here, depending on the information of the sound control, as described with reference to FIG. 27, it is also possible to give an instruction to change the secondary volume of the phrase reproduced on the designated sound channel aCH.
An example of volume control based on a secondary volume change instruction will be described with reference to FIG.
FIG. 30 is an explanatory diagram of a control example in which a predetermined type of sound is muted by the secondary volume. Specifically, when a scenario for reproducing the phrase 0010 of SE1 is registered during BGM reproduction, An example in which BGM is muted by the next volume is shown.
In this example, there are two lines of time = 0 in the sub-scenario table, and “SVO0 + BG_T” (see FIG. 27) is described as sound control information in one line of time = 0. The other time = 0 line describes “0x0080700A” (stereo reproduction of phrase 0010 with primary volume 0x80) as SE1 information.
When there are two lines having the same time as described above, the description information of these lines is sequentially converted into the sound data registration information by the processing shown in FIGS. 14, 15, and 24. Will be registered. In response to these pieces of registration information, mute by the secondary volume of BGM as shown in the figure and playback of the phrase 0010 as SE1 are started corresponding to time = 0.
In the example of this figure, “SVO8 + BG_T” (secondary volume = 0x80) is described as the sound control information in the line of time = 5000, and as a result, the BGM mute state is canceled after time = 5000 as shown in the figure. Is done.
このように音コントロールの情報で指定音チャネルaCHの2次ボリュームを変化させることを可能とした本実施の形態によれば、或る種別の音を再生中であったときに後からプライオリティの高い別の音を再生すべきとされた場合において、該再生中の音を再生停止させる指示を行うことなく、簡易に高プライオリティの音のみが再生出力される状態を得ることができる。従って、音のプライオリティ制御を簡易に実現できる。 As described above, according to the present embodiment in which the secondary volume of the designated sound channel aCH can be changed by the sound control information, when a certain type of sound is being reproduced, the priority is high later. When another sound is to be reproduced, it is possible to easily reproduce and output a high priority sound without giving an instruction to stop the reproduction of the sound being reproduced. Therefore, sound priority control can be easily realized.
ここで、上記ではBGMと他の音についてのプライオリティ制御について例示したが、本実施の形態では、SEとしての音をSE1とSE2とに分類している、即ち、SE1とSE2とを別々の音の種別として扱うものとしているので、これらSE1とSE2についても、同様に音コントロールの情報による2次ボリュームの制御によって音のプライオリティ制御を実現できる。
前述のように、これらSE1とSE2の分類は、その演出の出現頻度の別としている。従って、出現頻度の高い(つまり信頼度の低い)SE1の音を再生中に、後から出現頻度のより低い(信頼度のより高い)SE2の音を再生すべきとされた場合において、図30の例と同様に音コントロールの情報による2次ボリュームの制御を行うことで、再生中のSE1を消音させて、SE2の方が優先的に出力されるようにすることができる。
Here, the priority control for BGM and other sounds has been exemplified above, but in this embodiment, the sounds as SE are classified into SE1 and SE2, that is, SE1 and SE2 are separated into separate sounds. Therefore, for these SE1 and SE2, sound priority control can be realized by controlling the secondary volume based on sound control information.
As described above, the classification of SE1 and SE2 is classified according to the appearance frequency of the effect. Therefore, in the case where the sound of SE1 having a lower appearance frequency (higher reliability) is to be reproduced later while the sound of SE1 having a higher appearance frequency (that is, low reliability) is being reproduced, FIG. By controlling the secondary volume based on the sound control information as in the example, SE1 being reproduced can be muted, and SE2 can be preferentially output.
また、そもそも1次ボリュームのみでなく2次ボリュームによる音量制御を可能としたことで、図30のような消音制御が適正に実現されるものとなる。
ここで、1次ボリュームのみを用いて、図30のようなBGMの消音制御を実現しようとした場合には、音コントロールの情報により、例えば遷移速度を最速としたフェードアウトを行うことにより、再生中のBGMを消音させることが考えられる。
しかしながら、先に説明した通り、1次ボリュームは、フレーズの再生開始時にフレーズ番号と共に音源IC59にセットされるボリューム値となる。このため、上記のように音コントロールの情報を用いた1次ボリュームによる消音を行ったとしても、仮にその後、図30中の「X」のようなタイミング(BGMを元音量に戻すべき時点よりも前のタイミング)で他のシナリオにより新たにBGMの再生開始が指示された場合には、該「X」の時点でBGMのボリュームは0x00以外の所要の音量とされてしまい、BGMが放音されてしまう。
これに対し、2次ボリュームによる音量制御も可能とした本実施の形態によれば、図30で説明した通り、一度音コントロールの情報によりBGMの2次ボリュームを0x00に制御しておけば、該2次ボリュームを復帰させる音コントロールが行われるまでの間に新たなBGMの再生が開始されて1次ボリュームが0x00以外の音量に設定されても、出力音量としては0x00が維持されるようにできる。これにより、図30に示したような音量制御を適正に実現することができる。
In addition, since the volume control can be performed not only by the primary volume but also by the secondary volume, the mute control as shown in FIG. 30 can be appropriately realized.
Here, when the BGM mute control as shown in FIG. 30 is to be realized using only the primary volume, for example, by performing fade-out with the transition speed as fast as possible based on the sound control information, during playback. It is conceivable to silence the BGM.
However, as described above, the primary volume is a volume value that is set in the
On the other hand, according to the present embodiment in which the volume control by the secondary volume is also possible, as described with reference to FIG. 30, once the secondary volume of the BGM is controlled to 0x00 by the sound control information, Even if a new BGM playback is started before the sound control for returning the secondary volume is performed and the primary volume is set to a volume other than 0x00, the output volume can be maintained at 0x00. . Thereby, the sound volume control as shown in FIG. 30 can be appropriately realized.
[4−8:音再生処理]
続いて、図8のステップS111として実行する音再生処理について説明する。
前述のように音再生処理は、音データ登録情報としてワークにセットされた情報に基づき音源IC59に音出力を実行させる処理となる。
[4-8: Sound reproduction processing]
Next, the sound reproduction process executed as step S111 in FIG. 8 will be described.
As described above, the sound reproduction process is a process for causing the
図31は、音再生処理についての説明図である。
まず、演出制御CPU200は、ループ処理LP3として、音データ登録情報の音チャネルaCH0〜aCH15のそれぞれについてステップS1200〜S1220の処理を行う。以下、処理対象とする音チャネルaCHを「aCHn」と表記して説明する。
FIG. 31 is an explanatory diagram of sound reproduction processing.
First, the
ステップS1200では演出制御CPU200は、ボリュームMAXエラーフラグを確認する。なお、ボリュームMAXエラーフラグは、先のステップS106のエラー処理(図8参照)で設定されるフラグであり、前述のように0x5AがボリュームMAXエラーが発生中である旨を、また0x00が発生中ではない旨をそれぞれ表す。
ボリュームMAXエラーフラグが0x5Aであれば、ステップS1221に進みワークの2次ボリュームについて音チャネルaCH0〜14(エラー音以外)=0x00、音チャネルaCH15(エラー音)=0x80に書き換えを行い、ステップS1201に進む。
一方、ボリュームMAXエラーフラグが0x00であれば、ステップS1221によるワークの2次ボリュームの書き換えは行わずにステップS1201に進む。
In step S1200, the
If the volume MAX error flag is 0x5A, the process proceeds to step S1221, and the secondary volume of the work is rewritten to sound channel aCH0-14 (other than error sound) = 0x00, sound channel aCH15 (error sound) = 0x80, and step S1201 is performed. move on.
On the other hand, if the volume MAX error flag is 0x00, the process proceeds to step S1201 without rewriting the secondary volume of the work in step S1221.
ステップS1201では演出制御CPU200は、対象の音チャネルaCHnに2次ボリュームの値を出力する。即ち、音データ登録情報の音チャネルaCHにセットされている2次ボリュームの値を、音源IC59における音チャネルaCHn用の2次ボリュームレジスタに出力する。
前述のように2次ボリュームの値は、通常はボリュームスイッチの状態に応じた値が音データ登録情報の全音チャネルaCHにセットされる。或いは、シナリオとして、或る音チャネルaCHの2次ボリュームの変化を指示する音コントロールの情報が記述されていた場合には、該音コントロールの情報に記述された2次ボリュームの値が、音データ登録情報における該音コントロールの情報で指示された音チャネルaCHにセットされている。また、ボリュームMAXエラーが発生中であれば、上記のステップS1221の処理によって音チャネルaCH0〜14には「0」が、音チャネルaCH15にはMAX値がセットされている。
In step S1201, the
As described above, the value of the secondary volume is normally set in the all sound channel aCH of the sound data registration information as a value corresponding to the state of the volume switch. Alternatively, as a scenario, when the sound control information for instructing the change of the secondary volume of a certain sound channel aCH is described, the value of the secondary volume described in the sound control information is the sound data. It is set to the sound channel aCH indicated by the sound control information in the registration information. If the volume MAX error is occurring, “0” is set for the sound channel aCH0 to 14 and the MAX value is set for the sound channel aCH15 by the process of step S1221.
次いで、演出制御CPU200はステップS1202では、SUBボリューム0,1に値「0x00」を出力する。即ち、音チャネルaCHnの「SUBボリューム0」「SUBボリューム1」の各レジスタに値「0x00」を出力する。前述のように本実施の形態ではSUBボリュームは使用しないものである。
Next, the
ステップS1203では演出制御CPU200は、ワークの音チャネルaCHnに音データ(2次ボリューム以外の音データ)があるか否かを判別する。音データがなければ当該音チャネルaCHnについての処理は終了となる。
In step S1203, the
一方、音データがあった場合は、ステップS1204に進んで差し替え要求であるか否かを判別する。
ここで、本実施の形態では、図17に示した音データ登録情報の上位2バイト(「1次ボリューム遷移量」「1次ボリューム」)の値を用いて、フレーズの差し替え要求が可能とされている。具体的には、音データ登録情報の上位2バイトが所定値(例えば本例では「0x5A5A」であるとする)であれば、それをフレーズの差し替え要求と解釈するものである。
ステップS1204では、音チャネルaCHnにセットされたデータの上位2バイトが所定値「0x5A5A」であるか否かを判別することで、フレーズの差し替え要求であるか否かを判別する。
On the other hand, if there is sound data, the process proceeds to step S1204 to determine whether or not it is a replacement request.
In this embodiment, a phrase replacement request can be made using the value of the upper 2 bytes (“primary volume transition amount” and “primary volume”) of the sound data registration information shown in FIG. ing. Specifically, if the upper 2 bytes of the sound data registration information is a predetermined value (for example, “0x5A5A” in this example), it is interpreted as a phrase replacement request.
In step S1204, it is determined whether or not it is a phrase replacement request by determining whether or not the upper 2 bytes of the data set in the sound channel aCHn is a predetermined value “0x5A5A”.
差し替え要求である場合、演出制御CPU200はステップS1205でフレーズ番号の書き換えを行い、ステップS1206に進む。ステップS1205におけるフレーズ番号の書き換えは、具体的には、当該音チャネルaCHに対応するワーク上に、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)、1次ボリューム(frzVl)、フレーズ変化(rsv0)、ステレオ(frzSt)等をセットする。
一方、差し替え要求でなければ、ステップS1205を経由せずステップS1206に進む。
If it is a replacement request, the
On the other hand, if it is not a replacement request, the process proceeds to step S1206 without going through step S1205.
ステップS1206では演出制御CPU200は、遷移量変化要求又はボリューム変化要求があるか否かを判別する。即ち、音チャネルaCHnの遷移量変化rsv2又はボリューム変化rsv1の何れかに「1」がセットされているか否かを判別する。
ここで、音データ登録情報における遷移量変化rsv2の値は、フェード系の音コントロールの情報に基づいて音の登録処理(S635)が実行された場合には「1」がセットされ、フェード系以外(つまり2次ボリュームの変化指示)の音コントロールの情報やBGM、SE1、SE2、エラー音の情報に基づいて音の登録処理が実行された場合には「0」がセットされていることになる。
一方、ボリューム変化rsv1(1次ボリュームを変化させるか否か)は、フェード系の音コントロールの情報に基づいて音の登録処理が実行された場合と共に、BGM、SE1、SE2、エラー音の情報やフェード系の音コントロールの情報に基づいて音の登録処理が実行された場合に「1」がセットされる。そして、フェード系以外の音コントロールの情報に基づいて音の登録処理が実行された場合には「0」がセットされる。
これらの点からも理解されるように、フェード系の音コントロールの情報に基づく音データが登録されている場合のみでなく、BGM、SE1、SE2、エラー音の情報に基づく音データが登録されている場合にも、以降のステップS1209又はS1211により1次ボリューム遷移量と1次ボリュームの情報が音源IC59に対して出力されることになる。
In step S1206, the
Here, the value of the transition amount change rsv2 in the sound data registration information is set to “1” when the sound registration process (S635) is executed based on the fade-type sound control information, and other than the fade-type information. In other words, “0” is set when the sound registration process is executed based on the sound control information (ie, secondary volume change instruction), BGM, SE1, SE2, and error sound information. .
On the other hand, the volume change rsv1 (whether or not to change the primary volume) is not limited to the case where the sound registration process is executed based on the fade sound control information, and the BGM, SE1, SE2, error sound information, “1” is set when the sound registration processing is executed based on the information of the fade-type sound control. Then, “0” is set when the sound registration process is executed based on the sound control information other than the fade system.
As understood from these points, not only when sound data based on fade-type sound control information is registered, but also when sound data based on BGM, SE1, SE2, and error sound information is registered. Even in the case where there is, the primary volume transition amount and the information of the primary volume are output to the
遷移量変化要求又はボリューム変化要求がある場合、演出制御CPU200はステップS1207に進み、音チャネルaCHnがステレオ再生であるか否か、つまりはステレオfrzStの値が「1」であるか否かを判別する。
音チャネルaCHnがステレオ再生でなければ、ステップS1209に進んで音源IC59の音チャネルaCHnに1次ボリューム遷移量と1次ボリュームを出力し、さらにステップS1210で音源IC59の音チャネルaCHnにパンポットの出力を行って、ステップS1213に進む。
ここで、パンポットの出力としては、音源IC59における音チャネルaCHn用の「左右パンポット」「左右パンポット遷移量」「上下パンポット」「上下パンポット遷移量」の各レジスタにそれぞれ値を出力する。例えばモノラル再生の場合は、ステップS1210では左右パンポットレジスタに0x40(左右均等の音量)、左右パンポット遷移量レジスタに0x00(未使用)、上下パンポットレジスタに0x40(上下均等の音量)、上下パンポット遷移量レジスタに0x00(未使用)を出力する。
If there is a transition amount change request or a volume change request, the
If the sound channel aCHn is not stereo playback, the process proceeds to step S1209 to output the primary volume transition amount and the primary volume to the sound channel aCHn of the
Here, as the output of the pan pot, the value is output to each register of “left / right pan pot”, “left / right pan pot transition amount”, “up / down pan pot”, and “up / down pan pot transition amount” for the sound channel aCHn in the
一方、音チャネルaCHnがステレオ再生であれば、ステップS1208に進んで音チャネルaCHnが偶数であるか否かを判別する。
音チャネルaCHnが偶数であれば、ステップS1211に進んで音チャネルaCHnと音チャネルaCHn+1とに1次ボリューム遷移量と1次ボリュームを出力し、ステップS1212で音チャネルaCHnと音チャネルaCHn+1とにパンポットの出力を行って、ステップS1213に進む。
On the other hand, if the sound channel aCHn is stereo reproduction, the process proceeds to step S1208 to determine whether or not the sound channel aCHn is an even number.
If the sound channel aCHn is an even number, the process proceeds to step S1211, and the primary volume transition amount and the primary volume are output to the sound channel aCHn and the sound
ここで、本実施の形態の場合、偶数の音チャネルaCHnとその次の奇数の音チャネルaCHn+1の「左右パンポット」のレジスタをステレオ再生指示に用いる。具体的に、この場合の音源IC59は、偶数の音チャネルaCHn(ステレオ再生のLch側に該当)とその次の奇数の音チャネルaCHn+1(ステレオ再生のRch側に該当)の「左右パンポット」のレジスタにそれぞれ所定値がセットされることで、これら音チャネルaCHnと音チャネルaCHn+1とがステレオ再生であることを認識するように構成されている。より具体的に、この場合の音源IC59は、偶数の音チャネルaCHnの「左右パンポット」のレジスタに「0x81」がセットされ、且つその次の奇数の音チャネルaCHn+1の「左右パンポット」のレジスタに「0x82」がセットされることで、これら音チャネルaCHnと音チャネルaCHn+1とがステレオ再生である旨を認識するように構成されている。
このことに応じ、ステップS1212では、音チャネルaCHnと音チャネルaCHn+1とに対するパンポットの出力処理として、音チャネルaCHnの「左右パンポット」のレジスタには「0x81」を、音チャネルaCHn+1の「左右パンポット」のレジスタには「0x82」をそれぞれ出力する。例えばステレオル再生の場合は、音チャネルaCHn、aCHn+1についての各左右パンポットレジスタに0x81,0x82(ステレオ)、各左右パンポット遷移量レジスタに0x00(未使用)、各上下パンポットレジスタに0x40(上下均等の音量)、各上下パンポット遷移量レジスタに0x00(未使用)を出力する。
In this embodiment, the “left and right panpot” registers of the even-numbered sound channel aCHn and the next odd-numbered sound channel aCHn + 1 are used for the stereo reproduction instruction. Specifically, the
In response to this, in step S1212, as a panpot output process for the sound channel aCHn and the sound
また、ステップS1208において、音チャネルaCHnが偶数チャネルでなかった場合は、ステップS1220に進み、ワークの音チャネルaCHnの音データをクリアし、当該音チャネルaCHnについての処理を終了する。
即ち、音チャネルaCHnがステレオ再生で且つ奇数チャネルであった場合には、当該音チャネルaCHnにはフレーズ番号は登録されていないため、当該音チャネルaCHnについてのフレーズ番号の音源IC59への出力は行われず、当該音チャネルaCHnの登録音データがクリアされることとなる。なお、1次ボリューム遷移量及び1次ボリュームについては偶数aCHnについての処理であるS1211で既に出力されている。
この場合の音源IC59は、偶数の音チャネルaCHnについての処理でセットされたフレーズ番号に基づき再生すべきLch・Rchのそれぞれのフレーズデータを特定する。
If the sound channel aCHn is not an even channel in step S1208, the process proceeds to step S1220, the sound data of the work sound channel aCHn is cleared, and the process for the sound channel aCHn is ended.
That is, when the sound channel aCHn is stereo reproduction and is an odd channel, the phrase number is not registered in the sound channel aCHn, so the phrase number for the sound channel aCHn is output to the
The
また、先のステップS1206で、遷移量変化要求又はボリューム変化要求がなければ、演出制御CPU200は、ステップS1207〜S1212の処理は経ず、ステップS1213に進む。
If there is no transition amount change request or volume change request in the previous step S1206, the
ステップS1213では演出制御CPU200は、フレーズ変化要求があるか否か、つまりはフレーズ変化rsv0の値が「1」であるか否かを判別する。
フレーズ変化要求がなければ、ステップS1220で音チャネルaCHnの音データをクリアして当該音チャネルaCHnについての処理を終了する。即ち、フレーズ変化要求がない場合はワークの音チャネルaCHnにセットされたフレーズ番号の音源IC59への出力(S1215)は行われない。
In step S1213, the
If there is no phrase change request, the sound data of the sound channel aCHn is cleared in step S1220, and the process for the sound channel aCHn is ended. That is, when there is no phrase change request, the phrase number set in the work sound channel aCHn is not output to the sound source IC 59 (S1215).
一方、フレーズ変化要求があれば、ステップS1214で音チャネルaCHnがステレオ再生且つ奇数チャネルであるか否かを判別する。音チャネルaCHnがステレオ再生且つ奇数チャネルであれば、ステップS1220で音チャネルaCHnの音データをクリアして当該音チャネルaCHnについての処理を終了する。
即ち、音チャネルaCHnがステレオ再生で且つ奇数チャネルであった場合には、当該音チャネルaCHnにはフレーズ番号は登録されていないため、フレーズ番号の音源IC59への出力は行われない。音源IC59は、偶数の音チャネルaCHnについての処理でセットされたフレーズ番号でフレーズデータを特定するためである。
On the other hand, if there is a phrase change request, it is determined in step S1214 whether or not the sound channel aCHn is a stereo reproduction and an odd channel. If the sound channel aCHn is a stereo reproduction and an odd channel, the sound data of the sound channel aCHn is cleared in step S1220, and the process for the sound channel aCHn is ended.
That is, when the sound channel aCHn is stereo reproduction and is an odd channel, the phrase number is not registered in the sound channel aCHn, and therefore the phrase number is not output to the
ステップS1214で音チャネルaCHnがステレオ再生且つ奇数チャネルでなければ、ステップS1215に進んで音チャネルaCHnにフレーズ番号を出力する。即ち、ワークの音チャネルaCHnに登録されたフレーズ番号hiとフレーズ番号lowとで成るフレーズ番号の情報を、音源IC59の音チャネルaCHn用のブレーズ番号レジスタに出力する。
If it is determined in step S1214 that the sound channel aCHn is not a stereo playback and odd channel, the process proceeds to step S1215 to output a phrase number to the sound channel aCHn. That is, information on the phrase number composed of the phrase number hi and the phrase number low registered in the work sound channel aCHn is output to the blaze number register for the sound channel aCHn of the
次のステップS1216では演出制御CPU200は、ループ要求があるか否か、つまりはループfrzLpの値が「1」であるか否かを判別する。ループ要求があれば、ステップS1217で音源IC59の音チャネルaCHnにループ回数0xFF(無限ループ)を出力してステップS1219に進み、ループ要求がなければステップS1218で音源IC59の音チャネルaCHnにループ回数0x00(ループなし)を出力してステップS1219に進む。
In the next step S1216, the
ステップS1219では演出制御CPU200は、音チャネルaCHnを再生出力指示する。すなわち、音チャネルaCHnにセットしたデータに基づく再生指示を音源IC59に対して行う。
次いで演出制御CPU200は、ステップS1220でワークの音チャネルaCHnの音データをクリアして、当該音チャネルaCHnについての処理を終了する。
In step S1219, the
Next, the
演出制御CPU200は、以上で説明したステップS1201〜S1220の処理を、ループ処理LP3により音チャネルaCH0〜aCH15まで順次行う。これにより、ステップS111の音再生処理は終了となる。
このような音再生処理によって、音データ登録情報に登録された情報に基づく音出力が実行されて、シナリオに応じた音演出が実現される。
The
By such sound reproduction processing, sound output based on information registered in the sound data registration information is executed, and sound production according to the scenario is realized.
ここで、上記のように本実施の形態では、偶数とその次の奇数の音チャネルaCHの「左右パンポット」のレジスタに所定値をセットすることで、音源IC59へのステレオ再生指示を行うものとしているが、このことで、音源IC59にステレオ再生/モノラル再生の指示を行うためのレジスタを設けずとも、ステレオ再生/モノラル再生の指示を適正に行うことができる。即ち、音源IC59のレジスタ数を削減することができる。また同時に、音源IC59に対するステレオ再生/モノラル再生の指示をパンポットの出力処理で実現できるので、ステレオ再生/モノラル再生の指示処理を別途に行う必要がなくなり、その分処理負担の軽減が図られる。
Here, as described above, in the present embodiment, a stereo reproduction instruction is given to the
ところで、図31の音再生処理では、ステップS1200で都度ボリュームMAXエラーフラグを確認し、ボリュームMAXエラーの発生中であればステップS1221でワークの2次ボリュームの書き換えを行うものとしているが、その意義について図32を参照して説明しておく。 By the way, in the sound reproduction process of FIG. 31, the volume MAX error flag is confirmed each time in step S1200, and if the volume MAX error is occurring, the secondary volume of the work is rewritten in step S1221. Will be described with reference to FIG.
図32は、エラー発生に応じたボリューム制御についての説明図である。
図32AはボリュームMAXエラーの発生状態を表し、図のように時点t1〜t2の期間がボリュームMAXエラーの発生期間とされる。
図32B〜図32Eは、それぞれ異なる再生期間でフレーズが再生された場合を表し、図のように図32Bのケースではフレーズ再生期間が時点t0(時点t1よりも前の時点)〜時点tn(時点t1と時点t2の間の時点)、図32Cのケースではフレーズ再生期間が時点tn〜時点t3(時点t2よりも後の時点)、図32Dのケースではフレーズ再生期間が時点t0〜時点t3、図32Eのケースではフレーズ再生期間が時点tn1〜時点tn2(時点tn1、tn2ともに時点t1〜t2の間の時点)とされる。なお、ここで言うフレーズとは、エラー音以外のフレーズを意味するものとする。
また、これら図32B〜図32Eの各ケースでは、シナリオとして、フレーズの2次ボリュームを制御する音コントロールの情報も記述されているとする。図中には、2次ボリュームの状態も併せて示している(図中「2次ボリューム状態」)。なお、「0x**」は、「0x00」よりも大きく「0x80」よりも小さい2次ボリュームの値を意味する。
前述のように、ワークの2次ボリュームの値は、通常はボリュームスイッチの状態に応じた値がセットされることになる。この図の例では、ボリュームスイッチの状態に応じた値が「0x80」であったものとする。
FIG. 32 is an explanatory diagram of volume control according to the occurrence of an error.
FIG. 32A shows the state of occurrence of the volume MAX error, and the period from the time point t1 to t2 is the occurrence period of the volume MAX error as shown in the figure.
32B to 32E show cases in which phrases are played back in different playback periods, and in the case of FIG. 32B as shown in the figure, the phrase playback period is from time point t0 (time point before time point t1) to time point tn (time point). In the case of FIG. 32C, the phrase playback period is from the time point tn to the time point t3 (time point after the time point t2), and in the case of FIG. 32D, the phrase playback period is from the time point t0 to the time point t3. In the case of 32E, the phrase reproduction period is the time point tn1 to the time point tn2 (the time point between the time points t1 and tn2 between the time points t1 and tn2). In addition, the phrase said here shall mean phrases other than an error sound.
32B to 32E, it is assumed that sound control information for controlling the secondary volume of the phrase is also described as a scenario. The figure also shows the state of the secondary volume (“secondary volume state” in the figure). Note that “0x **” means a value of the secondary volume that is larger than “0x00” and smaller than “0x80”.
As described above, the value of the work secondary volume is normally set according to the state of the volume switch. In the example of this figure, it is assumed that the value corresponding to the state of the volume switch is “0x80”.
図32Bのケースでは、時点t0に対応するタイミングで2次ボリュームを「0x**」に制御する音コントロール情報がワークに登録されたことに応じて、フレーズの2次ボリュームが時点t0に応じたタイミングで「0x80」から「0x**」に下げられる。仮に、ボリュームMAXエラーが発生しなければ、時点t0以降ではフレーズの2次ボリュームは「0x**」で維持されることになる。
しかしながら、この場合は時点t1でボリュームMAXエラーが発生したことに応じて、図のように時点t1に応じたタイミングで2次ボリュームが強制的に「0x00」に下げられる。これは、ボリュームMAXエラーの発生に応じて、図31のステップS1221でワークの音チャネルaCH15以外の2次ボリュームの値が「0x00」に書き換えられるためである。
ボリュームMAXエラーが発生中である場合には、ステップS1221の書き換え処理が16msごとに都度行われる。このため、時点t1以降においてもワークの2次ボリューム(エラー音以外の音チャネルaCH)は都度「0x00」がセットされ、これが音源IC59に出力されることで2次ボリュームは「0x00」で維持される。
このとき、フレーズの再生が終了した時点tnでは、演出制御CPU200は、該フレーズに対応する音チャネルaCH(ワーク)の2次ボリュームの値としてボリュームスイッチの状態に応じた値をセットすることになる。従って、時点tnでは当該音チャネルaCHの消音状態が解除されてしまうことが懸念される。しかしながら、この場合としても、図31に示した音再生処理においてステップS1221のボリューム書き換え処理が実行される、すなわち音源IC59に対する2次ボリュームの出力の直前となるタイミングでワークの2次ボリュームの値が書き換えられることで、音源IC59に対しては2次ボリュームとして「0x00」を指示することができる。これにより、ボリュームMAXエラー発生期間中において、2次ボリュームとして「0x00」より大きな値が設定されてフレーズが放音されてしまうことが確実に防止される。
In the case of FIG. 32B, in response to the fact that the sound control information for controlling the secondary volume to “0x **” is registered in the work at the timing corresponding to the time point t0, the secondary volume of the phrase corresponds to the time point t0. The timing is lowered from “0x80” to “0x **”. If the volume MAX error does not occur, the secondary volume of the phrase is maintained at “0x **” after time t0.
However, in this case, in response to the occurrence of the volume MAX error at time t1, the secondary volume is forcibly lowered to “0x00” at the timing corresponding to time t1 as shown in the figure. This is because the value of the secondary volume other than the work sound channel aCH15 is rewritten to “0x00” in step S1221 of FIG. 31 in accordance with the occurrence of the volume MAX error.
If a volume MAX error is occurring, the rewriting process in step S1221 is performed every 16 ms. Therefore, even after time t1, the secondary volume of the work (sound channel aCH other than error sound) is set to “0x00” each time, and this is output to the
At this time, at the time tn when the reproduction of the phrase ends, the
続いて、図32Cのケースでは、エラーが発生する時点t1の後の時点tnにてフレーズの再生が開始される。この場合、時点t1までの期間では、ワークの2次ボリュームの値はボリュームスイッチ状態に応じた「0x80」であったが、時点t1以降の期間ではエラー発生に応じてステップS1221の処理によりワークの2次ボリュームの値が「0x00」に書き換えられる。
ここで、図中では反映されていないが、この場合はシナリオとしてフレーズの2次ボリュームを制御する音コントロール情報が記述されているので、フレーズの再生が開始される時点tnでは、ワークにおける該フレーズに対応する音チャネルaCHの2次ボリュームの値は、該音コントロール情報で指示された値にセットされることになる。しかしながらこの場合も、音再生処理においてステップS1221による書き換え処理が実行されることで、最終的に音源IC59に出力される2次ボリュームの値は「0x00」とすることができ、エラー発生中に2次ボリュームが「0x00」より大きい値に設定されてフレーズが放音されてしまうことが確実に防止される。
なお、この図32Cのケースでは、時点t2以降もフレーズ再生期間となっているが、時点t2では、ワークの2次ボリュームの値はボリュームスイッチの状態に応じた値(この場合は「0x80」)にセットされる。また、時点t2では、ボリュームMAXエラーフラグが「0x00」に変化することに応じて該時点t2以降はステップS1221の書き換え処理は実行されないものとなる。これらの点より、時点t2以降は、音源IC59には「0x80」が出力され、結果、エラー解消後にはフレーズが適正に放音されることになる。
Subsequently, in the case of FIG. 32C, the reproduction of the phrase is started at time tn after time t1 when the error occurs. In this case, the value of the secondary volume of the work is “0x80” corresponding to the volume switch state in the period up to the time t1, but in the period after the time t1, the work is performed by the process in step S1221 according to the occurrence of the error. The value of the secondary volume is rewritten to “0x00”.
Here, although not reflected in the figure, in this case, since the sound control information for controlling the secondary volume of the phrase is described as a scenario, at the time tn when the reproduction of the phrase is started, the phrase in the work The value of the secondary volume of the sound channel aCH corresponding to is set to the value indicated by the sound control information. However, in this case as well, by executing the rewriting process in step S1221 in the sound reproduction process, the value of the secondary volume that is finally output to the
In the case of FIG. 32C, the phrase reproduction period is also after time t2, but at time t2, the value of the secondary volume of the work is a value corresponding to the volume switch state (in this case, “0x80”). Set to At time t2, the rewriting process in step S1221 is not executed after time t2 in response to the volume MAX error flag changing to “0x00”. From these points, after time t2, “0x80” is output to the
また、図32Dのケースでは、時点t0にてフレーズの再生が開始されると共に、音コントロールの情報により該フレーズの2次ボリュームが「0x80」から「0x**」に制御される。
この場合も、エラー発生期間である期間t1〜t2では、ステップS1221の処理によりワークの2次ボリュームの値が都度「0x00」に書き換えられ、従ってエラー発生期間中はフレーズが消音される。
時点t2では、ワークの2次ボリュームの値がボリュームスイッチの状態に応じた値(「0x80」)にセットされ、またボリュームMAXエラーフラグが「0x00」に変化することで該時点t2以降はステップS1221の書き換え処理が実行されないものとなることから、エラーが解消した時点t2以降はフレーズが適正に放音される。
In the case of FIG. 32D, the reproduction of the phrase is started at time t0, and the secondary volume of the phrase is controlled from “0x80” to “0x **” based on the sound control information.
Also in this case, in the period t1 to t2 which is an error occurrence period, the value of the secondary volume of the work is rewritten to “0x00” every time by the process of step S1221, and thus the phrase is muted during the error occurrence period.
At time t2, the value of the secondary volume of the work is set to a value (“0x80”) corresponding to the state of the volume switch, and the volume MAX error flag changes to “0x00”. Thus, the phrase is properly emitted after time t2 when the error is resolved.
また、図32Eのケースでは、時点t1までの期間では、ワークの2次ボリュームの値は「0x80」であったが、エラー発生に応じて時点t1以降の期間ではステップS1221の処理によりワークの2次ボリュームの値が「0x00」となる。
この図32Eのケースでは、時点t1の後の時点tn1でフレーズの再生が開始されるが、当該時点tn1で音コントロールの情報により指示された2次ボリュームの値がワークにセットされたとしても、ステップS1221の処理によりワークの2次ボリュームの値が「0x00」に書き換えられることで、フレーズが放音されることはない。また、時点tn2でフレーズの再生期間が終了するとワークの2次ボリュームの値はボリュームスイッチに応じた値に書き換えられるが、ステップS1221の処理によりエラー発生期間中はワークの2次ボリュームの値が「0x00」に書き換えられるので、時点tn2〜時点t2の期間にフレーズが放音されることはない。
なお、この場合も、時点t2ではワークの2次ボリュームの値がボリュームスイッチの状態に応じた値(「0x80」)となり、またボリュームMAXエラーフラグが「0x00」に変化することで該時点t2以降はステップS1221の書き換え処理が実行されないことから、エラーが解消した時点t2以降では、2次ボリュームが「0x80」に復帰する。
In the case of FIG. 32E, the value of the secondary volume of the work is “0x80” in the period up to the time point t1, but in the period after the time point t1 according to the occurrence of the error, the
In the case of FIG. 32E, the reproduction of the phrase is started at the time tn1 after the time t1, but even if the value of the secondary volume indicated by the sound control information is set to the work at the time tn1, The value of the secondary volume of the work is rewritten to “0x00” by the process of step S1221, so that the phrase is not emitted. When the phrase playback period ends at time tn2, the value of the work secondary volume is rewritten to a value corresponding to the volume switch. However, the value of the work secondary volume is changed to “ Since “0x00” is rewritten, the phrase is not emitted during the period from the time point tn2 to the time point t2.
Also in this case, at time t2, the value of the secondary volume of the work becomes a value (“0x80”) corresponding to the state of the volume switch, and the volume MAX error flag changes to “0x00” and the time t2 and thereafter. Since the rewriting process in step S1221 is not executed, the secondary volume returns to “0x80” after time t2 when the error is resolved.
このようにして、図31の音再生処理において都度ボリュームMAXエラーフラグを確認し(S1200)ボリュームMAXエラーの発生中であればワークの2次ボリュームの書き換えを行う(ステップS1221)ようにしたことで、ボリュームMAXエラーの発生中にエラー音以外の音を確実に消音することができる。
In this way, the volume MAX error flag is confirmed each time in the sound reproduction processing of FIG. 31 (S1200), and if the volume MAX error is occurring, the work secondary volume is rewritten (step S1221). The sound other than the error sound can be reliably silenced during the occurrence of the volume MAX error.
[4−9:モータの登録処理]
続いて、図15のステップS636として実行するモータの登録処理について説明する。
このモータの登録処理は、図19Bに例示した音/モータサブシナリオテーブルの記述内容(サブシナリオデータ)に応じた情報を、図16Bのモータデータ登録情報(ワーク)のモータチャネルmCHに登録する処理となる。
[4-9: Motor registration process]
Next, a motor registration process executed as step S636 in FIG. 15 will be described.
This motor registration process is a process of registering information corresponding to the description contents (subscenario data) of the sound / motor subscenario table illustrated in FIG. 19B in the motor channel mCH of the motor data registration information (work) of FIG. 16B. It becomes.
図33Aは、モータの登録処理を示している。
本例ではモータデータ登録情報としてモータチャネルmCH0〜mCH7の8チャネルを用意しており、最大8個のモータを駆動制御できる。即ち図3に示した可動体役物モータ部65としては、図5Bに示したステッピングモータ121を最大8個使用することができる。
図33AにおけるMT(n)は、最大8個のモータのそれぞれに対応するモータナンバとしている(n=0〜7)。なお、個々のステッピングモータ121に割り当てられたモータナンバMT0〜MT7は、モータチャネルmCH0〜mCH7にも対応することになる。また図19Bの音/モータサブシナリオテーブルにおけるモータに関する内容とした「モータ0〜3」及び「モータ4〜7」の合計8バイトは、各1バイトが、モータナンバMT0〜MT7の各モータの動作パターン番号を示すことになる。なお動作パターン番号としては1から255までの255種類がある。
以下、モータナンバMT(n)のステッピングモータ121を、「モータMT(n)」と表記する。
FIG. 33A shows a motor registration process.
In this example, eight channels of motor channels mCH0 to mCH7 are prepared as motor data registration information, and a maximum of eight motors can be driven and controlled. That is, as the movable body
MT (n) in FIG. 33A is a motor number corresponding to each of up to eight motors (n = 0 to 7). The motor numbers MT0 to MT7 assigned to the
Hereinafter, the stepping
図33Aのモータデータ登録処理では、ループ処理LP4として、モータナンバMT0〜MT7の各モータに対応してステップS1501〜S1502の処理を行うことになる。
演出制御CPU200はステップS1501で、音/モータサブシナリオテーブルにモータMT(n)についてのデータが記述されているか否かを確認する。図15のステップS636の処理は、図14のシナリオ更新処理のステップS608で行われるため、ステップS1501は、現在参照中のシナリオチャネルsCHnで指示されている音/モータサブシナリオテーブルの1バイトの「モータn」の内容を確認する処理となる。
そして「モータn」の内容が「0」、つまり記述がなければ次のモータの処理に進む。
「モータn」の内容が「0」でなく、何らかの情報、つまりモータMT(n)についての動作パターン番号が記述されていれば、ステップS1502でモータ動作パターンの登録処理を行う。
以上の動作をモータMT0〜MT7に対して繰り返す。
In the motor data registration process of FIG. 33A, the processes of steps S1501 to S1502 are performed corresponding to each motor of the motor numbers MT0 to MT7 as the loop process LP4.
In step S1501, the
If the content of “motor n” is “0”, that is, there is no description, the process proceeds to the next motor.
If the content of “motor n” is not “0” and some information, that is, an operation pattern number for motor MT (n) is described, motor operation pattern registration processing is performed in step S1502.
The above operation is repeated for the motors MT0 to MT7.
ステップS1502のモータ動作パターンの登録処理は図33Bに示される。
演出制御CPU200はステップS1510で、現在処理対象のモータナンバMT(n)が正常であるか否かを確認する。何らかの原因で正常でないナンバであったり、或いは不使用のモータナンバであった場合、そのままステップS1502としての処理を終える。例えばステッピングモータ121を6個しか搭載していないパチンコ遊技機でモータナンバMT6,MT7が不使用の場合などは、モータナンバMT6,MT7に対応する処理は行わないこととなる。
The motor operation pattern registration process in step S1502 is shown in FIG. 33B.
In step S1510, the
モータナンバが正常(有効)であったら演出制御CPU200はステップS1511で、音/モータサブシナリオテーブルに記述されていた動作パターン番号が正常であるか否かを確認する。
動作パターン番号とは、モータ動作テーブルとして演出制御ROM201又は演出制御RAM202の不揮発性メモリ領域などに記憶されているテーブルの番号に相当する。図34にモータ動作テーブルの例を示している。各モータ動作テーブルの内容については後述するが、図34Aには初期動作のためのモータの動作パターンを示したモータ動作テーブル1、図34Bにはリトライ動作のためのモータの動作パターンを示したモータ動作テーブル71、図34Cには往復動作のためのモータの動作パターンを示したモータ動作テーブル72、図34Dには役物を「出現→10回揺動→戻る」という動作をさせるためのモータの動作パターンを示したモータ動作テーブルxを例示している。
例えばこのように、モータ動作テーブルとしては、テーブル番号1、2・・・71、72・・x・・が付されたテーブルデータが用意されており、1つのモータ動作テーブルでは、各行で示している複数のエントリ(制御項目)により一連の動作パターンが規定されている。そして音/モータサブシナリオテーブルには、「モータn」としてこのようなモータ動作テーブルが動作パターン番号として示されている。
従ってステップS1511では、指定された動作パターン番号が、モータ動作テーブルとして用意されている番号であるか否かを確認する。
もし用意されていない番号であれば、そのままステップS1502としての処理を終える。動作パターン番号が正常、即ち用意されているモータ動作テーブルの番号に該当すれば、ステップS1512に進む。
If the motor number is normal (valid), the
The operation pattern number corresponds to a table number stored in the non-volatile memory area of the
For example, as described above, table data with
Therefore, in step S1511, it is confirmed whether or not the designated operation pattern number is a number prepared as a motor operation table.
If the number is not prepared, the processing as step S1502 is finished as it is. If the operation pattern number is normal, that is, if it corresponds to the number of the prepared motor operation table, the process proceeds to step S1512.
ステップS1512では演出制御CPU200は、現在登録処理対象のモータMT(n)が何らかのエラー中であるか否かを確認する。エラー中であればそのままステップS1502としての処理を終える。エラー中でなければステップF1513に進む。
In step S1512, the
ステップS1513では、演出制御CPU200は、音/モータサブシナリオテーブルに記述された動作パターン番号(モータ動作テーブルの番号)をモータ登録情報(ワーク)にセットする。即ち図16Cのモータ登録情報において、現在登録処理対象のモータMT(n)に該当するモータチャネルmCHnに、実行動作ナンバ(no)と登録動作ナンバ(noNew)をセットする。
この場合、登録動作ナンバ(noNew)に、音/モータサブシナリオテーブルに記述されていた動作パターン番号(モータ動作テーブルの番号)を書き込むことになる。実行動作ナンバ(no)は、実際に実行される際に動作パターン番号に更新されるもので、この時点では「0」をセットする。
In step S1513, the
In this case, the operation pattern number (the number of the motor operation table) described in the sound / motor sub-scenario table is written in the registered operation number (noNew). The execution operation number (no) is updated to the operation pattern number when it is actually executed. At this time, “0” is set.
以上の図33A、図33Bのように、図15のステップS636のモータの登録処理が行われる。
つまり、モータデータ登録情報(ワーク)の各モータチャネルmCHに、音/モータサブシナリオテーブルの内容に応じて、モータ動作テーブルの番号が登録されることになる。
As shown in FIGS. 33A and 33B, the motor registration process in step S636 in FIG. 15 is performed.
That is, the motor operation table number is registered in each motor channel mCH of the motor data registration information (work) according to the contents of the sound / motor sub-scenario table.
ここでモータ動作テーブルについて説明しておく。
図34A〜図34Dに例示しているように、モータ動作テーブルはオプション(OPT)、スピード(SPEED)、ステップ(STEP)の3つの内容で1つの行(1つの制御項目)が構成されるテーブルとなっている。オプション(OPT)は制御種別、スピード(SPEED)及びステップ(STEP)は制御種別で示される制御内容についての指示値を示している。
この構造により1つの行(1つの制御項目)が1つの制御処理を規定する情報とされ、原則的には各行の処理が順次行われるという形式で一連の動作パターンが指定される。
Here, the motor operation table will be described.
As illustrated in FIGS. 34A to 34D, the motor operation table is a table in which one row (one control item) is composed of three contents of an option (OPT), a speed (SPEED), and a step (STEP). It has become. Option (OPT) indicates a control type, speed (SPEED), and step (STEP) indicates an instruction value for the control content indicated by the control type.
With this structure, one row (one control item) is used as information defining one control process, and a series of operation patterns are designated in principle in such a manner that each row is processed sequentially.
制御種別を示すオプション(OPT)としては、本例ではモータ動作の制御内容を示す動作系オプションと、モータの動作を伴わない制御内容を示す非動作系オプションとしての各種動作種別が規定されている。
動作系オプションの場合、スピード(SPEED)はモータ駆動スピードを示す指示値とされ、またステップ(STEP)はモータ動作範囲(ステッピングモータのステップ数)を示す指示値とされる。
一方、非動作系オプションの場合、スピード(SPEED)は次に移行する行(進行行数)やリンク先、ループ回数など、次の処理を指定する指示値とされる。ステップ(STEP)は通常は使用されない。
このように指示値であるスピード(SPEED)は、動作系オプションと非動作系オプションとで共有されるが、その指示内容の意味は異なるものとなっている。
As an option (OPT) indicating a control type, in this example, various operation types are defined as an operation system option indicating a control content of a motor operation and a non-operation system option indicating a control content not accompanied by a motor operation. .
In the case of the operation system option, the speed (SPEED) is an instruction value indicating the motor driving speed, and the step (STEP) is an instruction value indicating the motor operation range (the number of steps of the stepping motor).
On the other hand, in the case of a non-operating option, the speed (SPEED) is an instruction value that designates the next process, such as the next line to be moved (the number of progressing lines), the link destination, and the number of loops. Step (STEP) is not usually used.
As described above, the speed (SPEED), which is an instruction value, is shared between the operation system option and the non-operation system option, but the meaning of the instruction content is different.
なお注記しておくと、図16Cのモータデータ登録情報の実行ステップ(step)と、上記のモータ動作テーブルのステップ(STEP)は異なる。実行ステップ(step)は後述の図36の処理で更新される変数で、モータ動作テーブルのステップ(STEP)は、モータ動作の駆動ステップ数を指定する情報である。 Note that the motor data registration information execution step (step) in FIG. 16C is different from the step (STEP) in the motor operation table. The execution step (step) is a variable updated in the process of FIG. 36 described later, and the step (STEP) of the motor operation table is information for specifying the number of drive steps of the motor operation.
動作系オプションとしては以下のものがある。なお「原点SW」とは各モータによって動作する可動体役物の位置を検出するための原点スイッチ68のことである。
cw_all・・・正転動作:原点SWオン時/オフ時とも動作
cw_on ・・・正転動作:原点SWオン時停止、原点SWオフ時動作
cw_off・・・正転動作:原点SWオン時動作、原点SWオフ時停止
ccw_all・・・逆転動作:原点SWオン時/オフ時とも動作
ccw_on ・・・逆転動作:原点SWオン時停止、原点SWオフ時動作
ccw_off・・・逆転動作:原点SWオン時動作、原点SWオフ時停止
stop・・・停止動作(励磁なし)
keep・・・停止動作(励磁あり)
cw_on2・・・正転動作:原点SWオン時停止、原点SWオフ時動作
cw_off2・・・正転動作:原点SWオン時動作、原点SWオフ時停止
ccw_on2・・・逆転動作:原点SWオン時停止、原点SWオフ時動作
ccw_off2・・・逆転動作:原点SWオン時動作、原点SWオフ時停止
cw_btn・・・正転動作:ボタン押下時動作、非押下時停止
ccw_btn・・・逆転動作:ボタン押下時動作、非押下時停止
The operating system options are as follows. The “origin SW” is an
cw_all ・ ・ ・ Forward rotation: Operates when origin SW is on / off
cw_on ・ ・ ・ Forward rotation: Stop when origin SW is on, Operation when origin SW is off
cw_off ・ ・ ・ Forward rotation operation: Operation when origin SW is on, stop when origin SW is off
ccw_all ・ ・ ・ Reverse operation: Operates when origin SW is on / off
ccw_on ・ ・ ・ Reverse operation: Stop when origin SW is on, Operation when origin SW is off
ccw_off ・ ・ ・ Reverse operation: Operation when origin SW is on, stop when origin SW is off
stop ・ ・ ・ Stop operation (no excitation)
keep ・ ・ ・ Stop operation (excitation)
cw_on2 ・ ・ ・ Forward rotation: Stop when origin SW is on, Operation when origin SW is off
cw_off2 ・ ・ ・ Forward rotation: Operation when origin SW is on, stop when origin SW is off
ccw_on2 ・ ・ ・ Reverse operation: Stop when origin SW is on, Operation when origin SW is off
ccw_off2 ・ ・ ・ Reverse operation: Operation when origin SW is on, stop when origin SW is off
cw_btn ・ ・ ・ Forward operation: Operation when the button is pressed, Stop when not pressed
ccw_btn ・ ・ ・ Reverse operation: Operation when the button is pressed, Stop when not pressed
非動作系オプションとしては以下のものがある。
sys_ck1・・・原点SWオフ:次行へ移動、原点SWオン:指定行数(SPEED値)移動
sys_ck2・・・原点SWオフ:指定行数(SPEED値)移動、原点SWオン:次行へ移動
sys_ck3・・・原点SWオフ:次行へ移動、原点SWオン:指定行数(SPEED値)移動
sys_ck4・・・原点SWオフ:指定行数(SPEED値)移動、原点SWオン:次行へ移動
roop_s・・・ループ開始ポイント:ループ回数=SPEED値
roop_e・・・ループ終了ポイント
link・・・リンク命令:リンク先はSPEED値に示される番号のモータ動作テーブル
err_cnt・・・エラーカウンタ+1
sys_err・・・エラーコマンドなし
sys_erc・・・エラーコマンドあり
nor_end・・・通常終了:原点チェックなし
chk_end・・・チェック終了:原点チェックを行い、原点でなければエラー
Non-operational options include the following.
sys_ck1 ... Origin SW off: Move to the next line, Origin SW on: Move the specified number of lines (SPEED value)
sys_ck2 ... Origin SW off: Moves the specified number of lines (SPEED value), Origin SW on: Moves to the next line
sys_ck3: Origin SW off: Move to the next line, Origin SW on: Move the specified number of lines (SPEED value)
sys_ck4: Origin SW off: Moves the specified number of lines (SPEED value), Origin SW on: Moves to the next line
roop_s ・ ・ ・ Loop start point: Loop count = SPEED value
roop_e ・ ・ ・ Loop end point
link ... Link command: The link destination is the motor operation table with the number indicated in the SPEED value.
err_cnt: Error counter + 1
sys_err ・ ・ ・ No error command
sys_erc ・ ・ ・ There is an error command
nor_end ・ ・ ・ Normal end: No origin check
chk_end ・ ・ ・ End of check: Origin check is performed.
これらのオプション(OPT)については原点スイッチ68の動作が関連するため、ここで図35により原点スイッチ68の構成を説明しておく。
図35A、図35Bは、1つの可動体に設けられる原点スイッチ68を模式的に示している。本例のパチンコ遊技機1に搭載される各可動体には、それぞれこのような原点スイッチ68が形成されている。
図35Aのようにモータに取り付けられた回転体80の一部には遮蔽板81が形成されている。図35Bのように発光素子D1と受光素子PDが対向配置されたフォトインタラプタ82が用いられ、その発光素子D1と受光素子PDの間隙を遮蔽板81が位置できるように構成される。モータによって駆動される可動体役物が原点位置とされる範囲(原点内)にあるときは、図35Bのように遮蔽板81が発光素子D1と受光素子PDの間隙に位置して発光素子D1からの光を遮蔽するが、回転体80が原点外となる回転位置状態となるときは、遮蔽板81がはずれ、発光素子D1からの光が受光素子PDに受光される状態となる。
Since these options (OPT) are related to the operation of the
35A and 35B schematically show the
As shown in FIG. 35A, a shielding
図35Cに原点スイッチ68の回路構成を示す。抵抗R1を介して電源Vccラインから発光駆動電流が流されることで発光素子D1(例えば発光ダイオード)は発光する。
受光素子PD(例えばフォトトランジスタ)は、受光に応じて導通する。従って受光時には電源Vccラインから抵抗R2を介した電流を流し、コレクタ電圧が低下するが、非受光時には、コレクタ電圧が上昇する。結果としてコレクタ端から取り出される原点スイッチ信号SWgは、図35Dのようにモータが原点内にあるときはHレベル、原点外ではLレベルとなる信号となる。
上記の各オプション(OPT)に基づく処理では、この原点スイッチ信号SWgに基づいてモータが原点内にあるか原点外となっているかを判定して、所定の処理を行う。なお、各オプション(OPT)の処理で用いる原点スイッチオン/オフの判定は、実際の制御動作では、この原点スイッチ信号SWgから生成したスイッチ情報(図37で後述)を用いる。
FIG. 35C shows a circuit configuration of the
The light receiving element PD (for example, a phototransistor) conducts in response to light reception. Therefore, a current through the resistor R2 is supplied from the power supply Vcc line when receiving light, and the collector voltage decreases. However, when light is not received, the collector voltage increases. As a result, the origin switch signal SWg extracted from the collector end is a signal that is at the H level when the motor is within the origin as shown in FIG.
In the processing based on each option (OPT) described above, it is determined whether the motor is within the origin or outside the origin based on the origin switch signal SWg, and predetermined processing is performed. Note that the origin switch ON / OFF determination used in the processing of each option (OPT) uses switch information (described later in FIG. 37) generated from this origin switch signal SWg in the actual control operation.
図34に戻って、モータ動作テーブルによる動作パターンの例を説明する。
図34Aのモータ動作テーブル1では、初期動作処理としての動作パターンが規定されている。この動作パターンは次のようになる。
1行目のsys_ck1(システムチェック1)では、原点内にいるか否かをチェックする。
原点内であれば、スピード(SPEED:この場合、進行行数)で指定される「7」行先のlink(リンク命令)に移行する。
原点外であれば次の行である2行目に移行する。2行目ではccw_on(逆転動作)により原点に向けて移動される。ここではスピード(SPEED)で指定される「6」により、動作カウント(lcnt)(図16C参照)の6カウント間隔で1ステップの駆動が、ステップ(STEP)で示される「8」回行われる。なお動作カウント(lcnt)は1ms毎に更新されるため、この2行目の動作は、ステッピングモータを、6msに1ステップの速さで8ステップ分、原点に向けて戻すように駆動するものとなる。
なお、従って動作系オプションの場合、1行の処理に要する時間は、SPEED×STEP×1msとなる。
Returning to FIG. 34, an example of an operation pattern based on the motor operation table will be described.
In the motor operation table 1 of FIG. 34A, an operation pattern as an initial operation process is defined. This operation pattern is as follows.
In sys_ck1 (system check 1) on the first line, it is checked whether it is within the origin.
If it is within the origin, it shifts to a link (link command) of “7” destination specified by the speed (SPEED: the number of progressing lines in this case).
If it is outside the origin, the process proceeds to the second line, which is the next line. The second line is moved toward the origin by ccw_on (reverse operation). Here, by “6” designated by the speed (SPEED), one-step driving is performed “8” times indicated by the step (STEP) at 6 count intervals of the operation count (lcnt) (see FIG. 16C). Since the operation count (lcnt) is updated every 1 ms, the operation in the second row is that the stepping motor is driven to return to the origin by 8 steps at a speed of 1 step in 6 ms. Become.
Therefore, in the case of the operation system option, the time required for processing one line is SPEED × STEP × 1 ms.
次に3行目で引き続きccw_on(逆転動作)により原点に向けて移動される。この3行目の動作は、ステッピングモータを、3msに1ステップの速さで、総ステップ数の2倍回数ステップだけ駆動することが行われる。つまり2行目より高速で、原点に向けて戻される動作が行われる。なお、ccw_onは原点スイッチがオンとなると停止となるため、原点内となった時点で、3行目の処理は終了する。 Next, it is moved toward the origin by ccw_on (reverse operation) in the third line. In the operation on the third row, the stepping motor is driven at a speed of one step every 3 ms by a number of steps twice the total number of steps. That is, the operation of returning to the origin is performed at a higher speed than the second line. Since ccw_on is stopped when the origin switch is turned on, the process on the third line ends when it is within the origin.
以上の2行目、3行目の処理で原点に戻ったはずであるため、4行目のsys_ck1(システムチェック1)で原点内にいるか否かをチェックする。
原点内であれば、スピード(SPEED:この場合、進行行数)で指定される「2」行先の6行目のccw_all(逆転動作)に移行する。
原点外であれば次の行である5行目のlink(リンク命令)に移行する。この5行目のlink(リンク命令)では、モータ動作テーブル71(図34B)が指定されているため、モータ動作テーブル71のリトライ動作を実行することになる。モータ動作テーブル71のリトライ動作が通常終了(nor_end)したら、この5行目のlink(リンク命令)が終了したことになり、次の6行目に進む。
Since it should have returned to the origin by the above processing of the second line and the third line, it is checked whether or not it is within the origin by sys_ck1 (system check 1) on the fourth line.
If it is within the origin, the process shifts to ccw_all (reverse operation) on the sixth line of the “2” destination specified by the speed (SPEED: the number of progressing lines in this case).
If it is outside the origin, the process proceeds to the link (link command) on the fifth line, which is the next line. In the link (link command) on the fifth line, the motor operation table 71 (FIG. 34B) is designated, so the retry operation of the motor operation table 71 is executed. When the retry operation of the motor operation table 71 is normally completed (nor_end), the link (link command) on the fifth line is completed, and the process proceeds to the next sixth line.
6行目ではccw_all(逆転動作)として、ステッピングモータを、3msに1ステップの速さ(高速)で58ステップ分、原点に向けて戻すように駆動するものとなる。
さらに次の7行目では、同じくccw_all(逆転動作)として、ステッピングモータを、6msに1ステップの速さ(低速)で8ステップ分、原点に向けて戻すように駆動する。
この6行目、7行目は、原点内であることの確認後に、さらに押し込む動作となり、この押し込み動作は高速→低速の2段階で行われる。
In the sixth line, as the ccw_all (reverse operation), the stepping motor is driven to return toward the origin by 58 steps at a speed of 1 step (high speed) every 3 ms.
Further, in the next seventh line, similarly, as ccw_all (reverse operation), the stepping motor is driven to return toward the origin by 8 steps at a speed of 1 step (low speed) in 6 ms.
The sixth and seventh lines are further pushed in after confirming that they are within the origin, and this push-in action is performed in two stages from high speed to low speed.
1行目で原点内が確認された場合や、6行目、7行目の押し込みが行われた後は、8行目のlink(リンク命令)に進み、スピード(SPEED:この場合、リンク先)で指定されるモータ動作テーブル72(図34C)に移行することになる。
モータ動作テーブル72では往復動作としての動作パターンが規定されており、これが通常終了(nor_end)したら、モータ動作テーブル1の8行目のlink(リンク命令)が終了したことになり、次の9行目に進む。9行目はnor_end(通常終了)とされており、ここでモータ動作テーブル1としての初期動作処理が終了される。
When the origin is confirmed in the first line, or after the 6th and 7th lines are pushed in, the process proceeds to the link (link command) on the 8th line, and the speed (SPEED: link destination in this case) ) To move to the motor operation table 72 (FIG. 34C) designated by ().
In the motor operation table 72, an operation pattern as a reciprocal operation is defined. When this is normally completed (nor_end), the link (link command) on the eighth line of the motor operation table 1 is completed, and the next nine lines Go to the eyes. The ninth line is nor_end (normal end), and the initial operation process as the motor operation table 1 is ended here.
ここではモータ動作テーブル1としての初期動作処理を説明したが、各モータ動作テーブルは、この例のように、必要な動作を行毎に指定し、また場合に応じてスキップする行数、リンク先のモータ動作テーブル番号、ループ回数なども指定可能な構造として、動作パターンが規定されている。
説明は省略するが、図34B、図34C、図34Dのモータ動作テーブルや、図示しない他の多数のモータ動作テーブルも、各行で、オプション(OPT)、スピード(SPEED)、ステップ(STEP)に基づいて動作が指定されて、一連の動作パターンが規定される。
Here, the initial operation process as the motor operation table 1 has been described. However, each motor operation table specifies a necessary operation for each row as in this example, and the number of rows to be skipped according to circumstances, the link destination The operation pattern is defined as a structure in which the motor operation table number, the number of loops, etc. can be specified.
Although the description is omitted, the motor operation tables of FIGS. 34B, 34C, and 34D and many other motor operation tables not shown are also based on the option (OPT), speed (SPEED), and step (STEP) in each row. The operation is specified and a series of operation patterns is defined.
[4−10:モータ動作更新処理]
以上のモータ動作テーブルの各行の動作を実行するために、ワークのモータデータ登録情報(図16C)上で、各モータチャネルmCHの内容が随時更新される。具体的には図9の1msタイマ割込処理のステップS203でモータ動作更新処理が行われる。このステップS203のモータ動作更新処理を図36〜図41で説明する。
なお、以降の説明では、モータ動作テーブルのオプション(OPT)に記述されたデータを「D_OPT」、スピード(SPEED)に記述されたデータを「D_SPEED」、ステップ(STEP)に記述されたデータを「D_STEP」と表記する。
[4-10: Motor operation update processing]
In order to execute the operation of each row of the above motor operation table, the contents of each motor channel mCH are updated as needed on the workpiece motor data registration information (FIG. 16C). Specifically, the motor operation update process is performed in step S203 of the 1 ms timer interrupt process in FIG. The motor operation update process in step S203 will be described with reference to FIGS.
In the following explanation, the data described in the option (OPT) of the motor operation table is “D_OPT”, the data described in the speed (SPEED) is “D_SPEED”, and the data described in the step (STEP) is “ D_STEP ”.
図36のモータ動作更新処理としては演出制御CPU200は、ループ処理LP5として、モータMT(n)(n=0〜7)のそれぞれについてステップS1601〜S1623の処理を繰り返し行う。
上述のように、モータMT0〜MT7はモータデータ登録情報のモータチャネルmCH0〜mCH7に対応しているため、ループ処理LP5は、各モータチャネルmCH0〜mCH7についてそれぞれ行われる処理となる。以下では、その時点での処理対象のモータチャネルを「mCHn」と表記して説明する。
As the motor operation update process of FIG. 36, the
As described above, since the motors MT0 to MT7 correspond to the motor channels mCH0 to mCH7 of the motor data registration information, the loop process LP5 is a process performed for each of the motor channels mCH0 to mCH7. Hereinafter, the motor channel to be processed at that time will be described as “mCHn”.
ステップS1601で演出制御CPU200は、対象のモータチャネルmCHnにおける実行動作ナンバ(no)と登録動作ナンバ(noNew)が一致しているか否かを確認する。
モータチャネルmCHnに最初にモータ動作パターンの登録が行われる時点では、図33のステップS1513で説明したように、登録動作ナンバ(noNew)に動作パターン番号が代入されるが、実行動作ナンバ(no)=0とされる。つまり登録後、当該モータチャネルmCHnの処理が開始されるまでは、実行動作ナンバ(no)と登録動作ナンバ(noNew)は一致しない。
一致していなければ動作開始として、ステップS1602で、当該モータチャネルmCHnに対応する励磁出力データをクリアし、ステップS1603で実行動作ナンバ(no)に登録動作ナンバ(noNew)の値を代入する。
また演出制御CPU200はステップS1604で、当該モータチャネルmCHnの動作カウント(lcnt)、動作ライン(ofset)、実行ステップ(step)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、親ナンバ(retNo)、戻りアドレス(retAddr)、エラーカウンタ(errCnt)をそれぞれ0にセットする。また親(移行元)/子(移行先)の属性(attribute)に、親を示す「5A」の値をセットする。
なおステップS1601で実行動作ナンバ(no)と登録動作ナンバ(noNew)が一致していれば、既に過去に以上のステップS1602〜S1603の処理が行われたものであるため、これらの処理は不要である。
In step S1601, the
At the time when the motor operation pattern is first registered in the motor channel mCHn, as described in step S1513 in FIG. 33, the operation pattern number is substituted into the registration operation number (noNew), but the execution operation number (no) = 0. That is, after registration, the execution operation number (no) and the registration operation number (noNew) do not match until processing of the motor channel mCHn is started.
If they do not coincide with each other, the operation is started. In step S1602, the excitation output data corresponding to the motor channel mCHn is cleared, and in step S1603, the value of the registered operation number (noNew) is substituted into the execution operation number (no).
In step S1604, the
If the execution operation number (no) and the registered operation number (noNew) match in step S1601, the processing in steps S1602 to S1603 has already been performed in the past, so these processes are unnecessary. is there.
続いてステップS1605で演出制御CPU200は、現在処理対象のモータMT(n)がエラー状態であるか否かを確認する。エラーであればステップS1606で、モータチャネルmCHnに対応する励磁出力データをクリアする。励磁出力データについては後述の図43、図44で述べるが、ステッピングモータ121が接続されたLEDドライバ90に対して出力するモータ駆動のデータである。
励磁出力データは、各モータチャネルmCH毎に4バイトのデータとして励磁出力データバッファにセットされ、それがシリアルデータ送信でLEDドライバ90に送信される。このステップS1606では、励磁出力データバッファ上の当該モータチャネルmCHnに対応する4バイトのデータをクリアする処理となる。
Subsequently, in step S1605, the
The excitation output data is set in the excitation output data buffer as 4-byte data for each motor channel mCH, and is transmitted to the
ステップS1605でエラー状態ではないと判断された場合は、ステップS1607で演出制御CPU200は、実行動作ナンバ(no)の値が正常範囲であるか否かを確認する。正常範囲とは、モータ動作テーブル番号として有効な(存在する)番号の範囲である。登録動作ナンバ(noNew)及び実行動作ナンバ(no)は、未登録の際は「0」であり、上述のモータ登録では、モータ動作テーブル1〜最終番号のいずれかが代入される。従って、「0」又は、最終番号を越える値の場合、異常となる。これは不明なモータ動作テーブルが指定された状態か、当該モータチャネルmCHnが未登録(空きチャネル)の場合となる。なお、このステップS1607では登録動作ナンバ(noNew)について正常範囲か否かの判断を行っても良い。
If it is determined in step S1605 that the state is not an error state, in step S1607, the
実行動作ナンバ(no)の値が異常であれば、ステップS1620に進む。
演出制御CPU200はステップS1602ではモータチャネルmCHnに対応する励磁出力データをクリアする。またステップS1621で実行動作ナンバ(no)と登録動作ナンバ(noNew)を「0」にセットする。そしてステップS1622で入力更新処理、ステップS1623でスイッチ情報作成処理を行う。入力更新処理、スイッチ情報作成処理については、ステップS1613,S1614の説明(図37)で述べるが、原点スイッチ信号を確認する処理である。
If the value of the execution operation number (no) is abnormal, the process proceeds to step S1620.
In step S1602, the
実行動作ナンバ(no)の値が正常であれば、演出制御CPU200はステップS1608に進み、モータMT(n)、実行動作ナンバ(no)、動作ライン(ofset)に対応するモータ動作テーブルのデータを取得する。
即ち実行動作ナンバ(no)で示されるモータ動作テーブルにおける、動作ライン(ofset)で示される行のデータ「D_OPT」「D_SPEED」「D_STEP」を取得する。最初はステップS1604で動作ライン(ofset)=0とされているため、指定されたモータ動作テーブルの先頭の行のデータ「D_OPT」「D_SPEED」「D_STEP」を取得する。例えば仮に実行動作ナンバ(no)=72とされていたとしたら、図34Cのモータ動作テーブル72の先頭行の「cw_off」「6」「8」を「D_OPT」「D_SPEED」「D_STEP」として取得することになる。
If the value of the execution operation number (no) is normal, the
That is, data “D_OPT”, “D_SPEED”, and “D_STEP” in the row indicated by the operation line (ofset) in the motor operation table indicated by the execution operation number (no) are acquired. First, since the operation line (ofset) is set to 0 in step S1604, data “D_OPT”, “D_SPEED”, and “D_STEP” in the first row of the designated motor operation table are acquired. For example, if the execution operation number (no) is set to 72, “cw_off”, “6”, and “8” in the first row of the motor operation table 72 in FIG. 34C are acquired as “D_OPT”, “D_SPEED”, and “D_STEP”. become.
ステップS1608で演出制御CPU200は、データ「D_OPT」が、動作系オプションのデータであるか、非動作系オプションのデータであるか否かを確認して処理を分岐する。
非動作系オプションのデータであったら、ステップS1619で、その非動作系オプションに応じた処理(後述)を行う。
動作系オプションのデータであったら、ステップS1610〜S1618の処理を行う。
In step S1608, the
If it is non-operating system option data, in step S1619, processing corresponding to the non-operating system option (described later) is performed.
If it is operation system option data, the processing of steps S1610 to S1618 is performed.
動作系オプションのデータであった場合、まずステップS1610で演出制御CPU200は、励磁出力データの更新タイミングであるか否かを確認する。これは、動作カウント(lcnt)の値と「D_SPEED」の値を比較して判断する。
上述のように動作系オプションの場合、「D_SPEED」の値は、ステッピングモータの1ステップ駆動の間隔を示している。仮に「D_SPEED」=6としたら、6回に1回、1ステップ駆動を行う。動作カウント(lcnt)は、最初にステップS1604で「0」とされた後、後述のステップS1616でインクリメントされる値であり、つまり1msタイマ割込処理毎に+1される。
従って、動作カウント(lcnt)=「D_SPEED」−1となったら、励磁出力データの更新タイミングとなる。
If it is the data of the motion system option, first in step S1610, the
As described above, in the case of the operation system option, the value of “D_SPEED” indicates an interval of one-step driving of the stepping motor. If “D_SPEED” = 6, one-step driving is performed once every six times. The operation count (lcnt) is a value that is first set to “0” in step S1604 and then incremented in step S1616, which will be described later, that is, incremented by 1 for each 1 ms timer interrupt process.
Therefore, when the operation count (lcnt) = “D_SPEED” −1, the excitation output data update timing is reached.
励磁出力データの更新タイミングとなっていなければ、ステップS1616に進み、動作カウント(lcnt)をインクリメントとして、現在のモータチャネルmCHnの処理を終え、ループ処理LP5として次のモータチャネルmCHの処理に移る。
励磁出力データの更新タイミングとなっていたら、演出制御CPU200はステップS1611に進み、モータデータ登録情報上で実行ステップ(step)を+1する。実行ステップ(step)は、モータ動作テーブルから取得した「D_STEP」で示されるステップ回数に達したか否かをカウントする変数となる。
次にステップS1612で演出制御CPU200は、「D_OPT」で示される動作系オプションに応じた処理(後述)を行う。
If the excitation output data update timing has not been reached, the process proceeds to step S1616, the operation count (lcnt) is incremented, the processing of the current motor channel mCHn is terminated, and the processing of the next motor channel mCH is started as loop processing LP5.
If it is the update timing of the excitation output data, the
Next, in step S1612, the
続いて演出制御CPU200は、原点スイッチに関する処理として、ステップS1613で入力更新処理、ステップS1614でスイッチ情報作成処理を行う。
これらの処理を図37に示している。
図37Aに入力更新処理を示す。演出制御CPU200はまずステップS1631で入力情報と原点スイッチ信号SWgが一致しているか否かを確認する。
原点スイッチ信号SWgは図35Cで説明したように、原点スイッチ68から得られる信号である。入力情報とは、演出制御CPU200が原点スイッチ信号SWgをスイッチカウント間隔に同期して取り込んだ情報である。
図37Cに信号波形を示す。スイッチカウントとは、間隔Tで更新される変数であり、間隔Tは、モータ動作中は「D_SPEED」×1ms、モータ停止中は1msとなる。
Subsequently, the
These processes are shown in FIG.
FIG. 37A shows the input update process. In step S1631, the
The origin switch signal SWg is a signal obtained from the
FIG. 37C shows a signal waveform. The switch count is a variable that is updated at an interval T. The interval T is “D_SPEED” × 1 ms during motor operation and 1 ms when the motor is stopped.
ステップS1631で入力情報と原点スイッチ信号SWgが一致していないのは、間隔Tとしての期間内に原点スイッチ信号SWgにエッジが生じた場合となる。
エッジが生じた場合、つまり原点スイッチ信号SWgが変化した場合は、演出制御CPU200はステップS1632で、入力情報に原点スイッチ信号SWgの値を代入する。そしてステップS1633でスイッチカウント=0とする。
一方、ステップS1631で入力情報と原点スイッチ信号SWgが一致している場合は、既に直近の原点スイッチ信号SWgの変化を入力情報に反映した後となる。その場合は、ステップS1634でスイッチカウント=FFhでなければ、ステップS1635でスイッチカウントを+1する。スイッチカウント=FFhであれば、スイッチカウントは更新しない。従ってスイッチカウントの値は、00h〜FFhの値をとる。
The reason why the input information does not match the origin switch signal SWg in step S1631 is when an edge occurs in the origin switch signal SWg within the interval T.
When an edge occurs, that is, when the origin switch signal SWg changes, the
On the other hand, when the input information matches the origin switch signal SWg in step S1631, it is after the latest change in the origin switch signal SWg has already been reflected in the input information. In this case, if the switch count is not FFh in step S1634, the switch count is incremented by 1 in step S1635. If switch count = FFh, the switch count is not updated. Therefore, the value of the switch count takes a value from 00h to FFh.
このように図37Aの処理としてステップS1613の入力更新処理を行ったら、演出制御CPU200は続いてステップS1614のスイッチ情報作成処理として図37Bの処理を行う。
まずステップS1641で入力情報とスイッチ情報が一致しているか否かを確認する。スイッチ情報とは、演出制御CPU200が原点スイッチ68の情報として実際に確認する情報となる。
入力情報とスイッチ情報が一致していれば、既に入力情報がスイッチ情報に反映されているとして特に処理は行わない。
入力情報とスイッチ情報が一致していないときは、ステップS1642で、スイッチカウントが更新タイミングを越えているか否かを確認する。そして越えていた場合に、ステップS1643でスイッチ情報を更新する。即ち入力情報の値をスイッチ情報に代入する。
Thus, if the input update process of step S1613 is performed as the process of FIG. 37A, the
First, in step S1641, it is confirmed whether or not the input information matches the switch information. The switch information is information that the
If the input information matches the switch information, the input information is already reflected in the switch information and no particular processing is performed.
If the input information does not match the switch information, it is checked in step S1642 if the switch count exceeds the update timing. If it has exceeded, the switch information is updated in step S1643. That is, the value of input information is substituted into switch information.
ここでいう更新タイミングとは、チャタリング防止のために設定された値であり、図37Cでは更新タイミング=「3」の例としている。このためスイッチカウント=4となった時点で、スイッチ情報が更新される。
つまりこの場合、入力情報が変化してから4回連続してその情報を維持したときに、原点スイッチが変化したとみなすこととなる。このような処理により、原点スイッチ68で発生するチャタリングによって、演出制御CPU200が確認する原点内であるか否かの情報(=スイッチ情報)が不安定になることがないようにし、正確な原点判定を行うことができるようにしている。
図36の上述のステップS1622,S1623の処理も以上と同様となる。
The update timing here is a value set to prevent chattering, and in FIG. 37C, an example of update timing = “3” is used. Therefore, the switch information is updated when the switch count = 4.
In other words, in this case, when the information is maintained four times continuously after the input information changes, it is considered that the origin switch has changed. By such processing, chattering generated by the
The processes in steps S1622 and S1623 in FIG. 36 are the same as above.
図36のステップS1613,S1614で以上の処理を行った後は、演出制御CPU200はステップS1615で、規定回数のモータ駆動を行ったか否かを確認する。即ち「D_STEP」の値と実行ステップ(step)を比較する。
「D_STEP」≦実行ステップ(step)でなければ、まだモータ動作テーブルの現在の行で指定されたモータ駆動動作が完了していないことになるため、ステップS1616に進んで、動作カウント(lcnt)をインクリメントし、現在のモータチャネルmCHnの処理を終え、ループ処理LP5として次のモータチャネルmCHの処理に移る。
「D_STEP」≦実行ステップ(step)であれば、現在の行で指定されたモータ駆動動作が完了したことになるため、ステップS1617に進んで、動作カウント(lcnt)=0、実行ステップ(step)=0とクリアし、ステップS1618で、次回は次の行についての処理を行うようにするため動作ライン(ofset)を+1する。
以上が、各モータチャネルmCHnについて行われる。
After performing the above processing in steps S1613 and S1614 in FIG. 36, the
Unless “D_STEP” ≦ the execution step (step), the motor drive operation specified in the current row of the motor operation table has not yet been completed, so the process proceeds to step S1616 and the operation count (lcnt) is set. Increment, finish processing of the current motor channel mCHn, and proceed to processing of the next motor channel mCH as loop processing LP5.
If “D_STEP” ≦ execution step (step), the motor drive operation specified in the current row is complete, so the process proceeds to step S1617, where operation count (lcnt) = 0, execution step (step). In step S1618, the operation line (ofset) is incremented by 1 to perform processing for the next line.
The above is performed for each motor channel mCHn.
ステップS1612としての動作系オプションに応じた処理として、「D_OPT」に記述される主なものに対応した処理を図38〜図40で説明する。図43を参照しながら説明する。 As processing corresponding to the operation system option in step S1612, processing corresponding to main ones described in “D_OPT” will be described with reference to FIGS. This will be described with reference to FIG.
図38Aは「D_OPT」=cw_all(正転動作)の場合を示している。
演出制御CPU200はステップS1651で励磁カウンタ(tcnt)に対応した励磁出力データをセットする。そしてステップS1652でモータデータ登録情報(図16C)の励磁カウンタ(tcnt)の値を+1する。
このcw_allは原点スイッチのオン/オフに関わらず正転動作を行うオプションデータである。そのため特に原点判断を行わずに励磁出力データを励磁出力データバッファにセットする処理となる。
FIG. 38A shows a case where “D_OPT” = cw_all (forward rotation operation).
The
This cw_all is optional data that performs forward rotation regardless of whether the origin switch is on or off. Therefore, the excitation output data is set in the excitation output data buffer without performing the origin determination.
ここで図43で励磁データテーブルと励磁出力データバッファについて説明しておく。
図43Aに励磁データテーブルの一例を示す。
励磁データテーブルは、4バイトの励磁データを配置したテーブルとされ、当該4バイトはMSB側からの4ビットずつが、モータMT0、MT1・・・MT7に対応される情報となっている。そして各モータについて、励磁カウンタ値0,1,2,3に応じて対応バイトに励磁データが配置されている。
例えばモータMT0についてみてみると、励磁カウンタ値0,1,2,3について「0x60000000」「0x50000000」「0x90000000」「0xA0000000」の各4バイト値が対応されている。
モータMT0については、これらの4バイトのうちのMSB側4ビットが励磁出力データとして機能する。即ち「6h」「5h」「9h」「Ah」である。
「6h」=0110、「5h」=0101、「9h」=1001、「Ah」=1010であり、この0110、0101、1001、1010の値自体が、4相駆動ステッピングモータの励磁駆動信号となる。
即ちモータMT0としてのステッピングモータ121を順方向に回転させる場合、対応するLEDドライバ90に、0110(6h)→0101(5h)→1001(9h)→1010(Ah)→0110(6h)→0101(5h)・・・の順で励磁出力データを送信すればよい。
またステッピングモータ121を逆方向に回転させる場合、LEDドライバ90に、逆の順序で、1010(Ah)→1001(9h)→0101(5h)→0110(6h)→1010(Ah)→1001(9h)・・・の順で励磁出力データを送信すればよい。
Here, the excitation data table and the excitation output data buffer will be described with reference to FIG.
FIG. 43A shows an example of an excitation data table.
The excitation data table is a table in which 4 bytes of excitation data are arranged. In the 4 bytes, 4 bits from the MSB side are information corresponding to the motors MT0, MT1,. For each motor, excitation data is arranged in the corresponding byte according to the
For example, regarding the motor MT0, the
For the motor MT0, 4 bits on the MSB side of these 4 bytes function as excitation output data. That is, “6h”, “5h”, “9h”, and “Ah”.
“6h” = 0110, “5h” = 0101, “9h” = 1001, “Ah” = 1010, and the values of 0110, 0101, 1001, 1010 themselves become excitation drive signals for the four-phase drive stepping motor. .
That is, when the stepping
When the stepping
モータMT1については、MSB側から見て次の4ビットが励磁出力データとして機能し、同様に「6h」「5h」「9h」「Ah」が設定されている。
モータMT2については、さらに次の4ビットが励磁出力データとして機能し、同様に「6h」「5h」「9h」「Ah」が設定されている。
以下、モータMT3、MT4、MT5は、それぞれ順次対応する4ビットに同様に「6h」「5h」「9h」「Ah」が設定されている。
この例では、モータMT6,MT7は不使用としており、モータMT6,MT7に対応する情報は全て「0x00000000」としているが、もし使用する場合は、モータMT6についても、それぞれ対応する4ビットが用いられる。
For the motor MT1, the next 4 bits as viewed from the MSB side function as excitation output data, and “6h”, “5h”, “9h”, and “Ah” are set in the same manner.
For the motor MT2, the next 4 bits function as excitation output data, and “6h”, “5h”, “9h”, and “Ah” are similarly set.
Hereinafter, “6h”, “5h”, “9h”, and “Ah” are similarly set in the corresponding four bits of the motors MT3, MT4, and MT5.
In this example, the motors MT6 and MT7 are not used, and all information corresponding to the motors MT6 and MT7 is “0x00000000”. However, if used, the corresponding 4 bits are also used for the motor MT6. .
このような励磁データテーブルから、励磁カウンタ値に対応する値を取り出して、励磁出力データバッファにセットする。
励磁出力データバッファを図43Bに模式的に示している。
励磁出力データバッファは例えば4バイト(32ビット)の領域として確保され、各モータについて4ビットづつ励磁出力データが格納されるように割り当てられている。
例えばビット0〜3にはモータMT1の励磁出力データdMT1、ビット4〜7にはモータMT0の励磁出力データdMT0、ビット8〜11にはモータMT3の励磁出力データdMT3、ビット12〜15にはモータMT2の励磁出力データdMT2、ビット16〜19にはモータMT5の励磁出力データdMT5、ビット20〜23にはモータMT4の励磁出力データdMT4、ビット24〜27にはモータMT7の励磁出力データdMT7、ビット28〜31にはモータMT6の励磁出力データdMT6が、それぞれ格納される。
A value corresponding to the excitation counter value is extracted from such an excitation data table and set in the excitation output data buffer.
An excitation output data buffer is schematically shown in FIG. 43B.
The excitation output data buffer is secured as an area of 4 bytes (32 bits), for example, and is assigned so that excitation output data is stored in units of 4 bits for each motor.
For example, the excitation output data dMT1 of the motor MT1 is used for
この4バイトの出力データバッファには、実際には、各モータMT0〜MT7のそれぞれについて、励磁データテーブルを参照して取り出された4バイト値について、すべて論理和されたデータがセットされる。
例えば、上述の図38AのステップS1651で、モータMT0(モータチャネルmCH0)について処理され、励磁カウンタ(tcnt)=0であったとして、図43Aの励磁データテーブルから「0x60000000」が取り出されたとする。また、この時点で、モータMT2(モータチャネルmCH2)について、励磁カウンタ(tcnt)=2であったとして、励磁データテーブルから「0x00900000」が取り出されていたとする。他のモータMT1、MT3〜MT7は、全て励磁出力データがクリアされているとする(例えば図36のステップS1602,S1606、或いは後述の図41DのステップS1732でクリアが行われる)。つまりモータMT1、MT3〜MT7の励磁出力データは「0x00000000」である。
これらが論理和されて、各4ビットの励磁出力データdMT0〜dMT7が図43Cのように励磁出力データバッファにセットされる。モータMT0の励磁出力データdMT0は、ビット4〜7に配置されるが、このビット4〜7には、「0x60000000」「0x00000000」「0x00900000」「0x00000000」・・・「0x00000000」の各MSB側の4ビットの論理和がセットされるため、結局「6h」としての「0110」がセットされることになる。またモータMT2の励磁出力データdMT2は、ビット12〜15に配置されるが、このビット4〜7には「9h」としての「1001」がセットされる。他は「0000」となる。
In the 4-byte output data buffer, data obtained by logically summing all 4-byte values extracted with reference to the excitation data table is actually set for each of the motors MT0 to MT7.
For example, in step S1651 of FIG. 38A described above, it is assumed that the motor MT0 (motor channel mCH0) is processed and the excitation counter (tcnt) = 0, and “0x60000000” is extracted from the excitation data table of FIG. 43A. At this time, it is assumed that “0x00900000” is extracted from the excitation data table, assuming that the excitation counter (tcnt) = 2 for the motor MT2 (motor channel mCH2). It is assumed that the excitation output data is cleared for all of the other motors MT1, MT3 to MT7 (for example, clearing is performed in steps S1602 and S1606 in FIG. 36 or in step S1732 in FIG. 41D described later). That is, the excitation output data of the motors MT1, MT3 to MT7 is “0x00000000”.
These are logically summed, and 4-bit excitation output data dMT0 to dMT7 are set in the excitation output data buffer as shown in FIG. 43C. The excitation output data dMT0 of the motor MT0 is arranged in
このような励磁出力データバッファに格納された励磁出力データが、LEDドライバ90に出力される。図5Aで説明したように、1つのLEDドライバ90に6個のステッピングモータ121が接続されるとすると、そのLEDドライバ90(例えばスレーブアドレスb4のLEDドライバ90)に対して、励磁出力データバッファのビット0〜23の励磁出力データdMT0〜dMT5が、LEDドライバ90の出力端子96−1・・・96−24に対応する駆動データとして出力されることとなる。
Excitation output data stored in such an excitation output data buffer is output to the
図38に戻って、動作系オプションに応じた処理についての説明を続ける。
図38Bは「D_OPT」=cw_on(正転動作)の場合を示している。
この場合、演出制御CPU200はステップS1651で原点スイッチを確認する。つまり図37で説明したスイッチ情報の「0」「1」を確認する。
スイッチ情報=0(原点外)であれば、ステップS1656で、励磁カウンタ(tcnt)に対応した励磁出力データをセットする(励磁出力データバッファにセットするデータとする)。そしてステップS1657でモータデータ登録情報(図16C)の励磁カウンタ(tcnt)の値を+1する。
スイッチ情報=1(原点内)であれば、ステップS1658で、動作カウント(lcnt)=0とし、また実行ステップ(step)=0とする。そしてステップS1659で、次の行についての処理を行うようにするため動作ライン(ofset)を+1する。この場合、図中「M」として示すように、図36のステップS1608に戻って、次の行に対する処理を行うことになる。
このcw_onに対応する図38Bの処理により、モータが原点内にあるときは停止状態で、原点外にあるときに正転動作させるという制御が行われる。
Returning to FIG. 38, the description of the processing according to the operation system option will be continued.
FIG. 38B shows a case where “D_OPT” = cw_on (forward rotation operation).
In this case, the
If switch information = 0 (outside the origin), excitation output data corresponding to the excitation counter (tcnt) is set in step S1656 (the data is set in the excitation output data buffer). In step S1657, the value of the excitation counter (tcnt) in the motor data registration information (FIG. 16C) is incremented by one.
If switch information = 1 (within the origin), in step S1658, the operation count (lcnt) = 0 and the execution step (step) = 0. In step S1659, the operation line (ofset) is incremented by 1 to perform processing for the next row. In this case, as indicated by “M” in the figure, the process returns to step S1608 in FIG. 36 to perform processing for the next row.
38B corresponding to this cw_on, control is performed such that when the motor is within the origin, the motor is stopped, and when the motor is outside the origin, the forward rotation is performed.
図38Cは「D_OPT」=cw_off(正転動作)の場合を示している。
この場合、演出制御CPU200はステップS1661で原点スイッチ(スイッチ情報)を確認する。
スイッチ情報=1(原点内)であれば、ステップS1664で、励磁カウンタ(tcnt)に対応した励磁出力データをセットする(励磁出力データバッファにセットするデータとする)。そしてステップS1665で励磁カウンタ(tcnt)の値を+1する。
スイッチ情報=0(原点外)であれば、ステップS1662で、動作カウント(lcnt)=0とし、また実行ステップ(step)=0とする。そしてステップS1663で動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行に対する処理を行う。
このcw_offに対応する図38Cの処理により、モータが原点外にあるときは停止状態で、原点内にあるときに正転動作させるという制御が行われる。
FIG. 38C shows a case where “D_OPT” = cw_off (forward rotation operation).
In this case, the
If switch information = 1 (within the origin), excitation output data corresponding to the excitation counter (tcnt) is set in step S1664 (the data is set in the excitation output data buffer). In step S1665, the value of the excitation counter (tcnt) is incremented by one.
If the switch information = 0 (outside the origin), in step S1662, the operation count (lcnt) = 0 and the execution step (step) = 0. In step S1663, the operation line (ofset) is incremented by 1, and the process returns to step S1608 in FIG. 36 to perform processing for the next row.
38C corresponding to this cw_off, control is performed such that the motor is stopped when the motor is out of the origin, and the forward rotation is performed when the motor is within the origin.
図39Aは「D_OPT」=ccw_all(逆転動作)の場合を示している。
演出制御CPU200はステップS1667で励磁カウンタ(tcnt)の補数に対応した励磁出力データを励磁出力データバッファにセットするデータとする。つまり励磁カウンタ(tcnt)=0の場合は励磁データテーブルの励磁カウンタ=3のデータ、励磁カウンタ(tcnt)=1の場合は励磁データテーブルの励磁カウンタ=2のデータ、励磁カウンタ(tcnt)=2の場合は励磁データテーブルの励磁カウンタ=1のデータ、励磁カウンタ(tcnt)=3の場合は励磁データテーブルの励磁カウンタ=0のデータを取り出す。
そしてステップS1668で励磁カウンタ(tcnt)の値を+1する。
このccw_allは原点スイッチのオン/オフに関わらず逆転動作を行うオプションデータである。そのため特に原点判断を行わずに、励磁カウンタ(tcnt)の補数に対応した励磁出力データを励磁出力データバッファにセットする処理となる。
FIG. 39A shows a case where “D_OPT” = ccw_all (reverse operation).
In step S1667, the
In step S1668, the value of the excitation counter (tcnt) is incremented by one.
This ccw_all is optional data that performs reverse operation regardless of whether the origin switch is on or off. For this reason, the excitation output data corresponding to the complement of the excitation counter (tcnt) is set in the excitation output data buffer without particularly determining the origin.
図39Bは「D_OPT」=ccw_on(逆転動作)の場合を示している。
この場合、演出制御CPU200はステップS1671で原点スイッチ(スイッチ情報)を確認する。
スイッチ情報=0(原点外)であれば、ステップS1672で、励磁カウンタ(tcnt)の補数に対応した励磁出力データバッファにセットするデータとする。そしてステップS1673で励磁カウンタ(tcnt)の値を+1する。
スイッチ情報=1(原点内)であれば、ステップS1674で、動作カウント(lcnt)=0とし、また実行ステップ(step)=0とする。そしてステップS1675で、次の行についての処理を行うようにするため動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行に対する処理を行う。
このccw_onに対応する図39Bの処理により、モータが原点内にあるときは停止状態で、原点外にあるときに逆転動作させるという制御が行われる。
FIG. 39B shows a case where “D_OPT” = ccw_on (reverse operation).
In this case, the
If switch information = 0 (outside the origin), in step S1672, the data is set in the excitation output data buffer corresponding to the complement of the excitation counter (tcnt). In step S1673, the value of the excitation counter (tcnt) is incremented by one.
If the switch information = 1 (within the origin), in step S1674, the operation count (lcnt) = 0 and the execution step (step) = 0. In step S1675, the operation line (ofset) is incremented by 1 to perform processing for the next row, and the processing returns to step S1608 in FIG. 36 to perform processing for the next row.
39B corresponding to ccw_on, control is performed such that when the motor is within the origin, the motor is stopped, and when the motor is outside the origin, the reverse operation is performed.
図39Cは「D_OPT」=ccw_off(逆転動作)の場合を示している。
この場合、演出制御CPU200はステップS1676で原点スイッチ(スイッチ情報)を確認する。
スイッチ情報=1(原点内)であれば、ステップS1679で、励磁カウンタ(tcnt)の補数に対応した励磁出力データを励磁出力データバッファにセットするデータとする。そしてステップS1680で励磁カウンタ(tcnt)の値を+1する。
スイッチ情報=0(原点外)であれば、ステップS1677で、動作カウント(lcnt)=0とし、また実行ステップ(step)=0とする。そしてステップS1678で、動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行に対する処理を行う。
このccw_offに対応する図39Cの処理により、モータが原点外にあるときは停止状態で、原点内にあるときに逆転動作させるという制御が行われる。
FIG. 39C shows a case where “D_OPT” = ccw_off (reverse operation).
In this case, the
If switch information = 1 (within the origin), excitation output data corresponding to the complement of the excitation counter (tcnt) is set as data to be set in the excitation output data buffer in step S1679. In step S1680, the value of the excitation counter (tcnt) is incremented by one.
If the switch information = 0 (outside the origin), the operation count (lcnt) = 0 is set and the execution step (step) = 0 is set in step S1677. In step S1678, the operation line (ofset) is incremented by 1, and the process returns to step S1608 in FIG. 36 to perform processing for the next row.
39C corresponding to this ccw_off, control is performed such that when the motor is outside the origin, the motor is stopped, and when it is within the origin, the reverse operation is performed.
図40Aは「D_OPT」=cw_btn(正転動作)の場合を示している。
この場合、演出制御CPU200はステップS1681で、当該行の規定ステップ動作済みであるか否かを確認する。動作済みであればステップS1682で動作カウント(lcnt)=0とし、また実行ステップ(step)=0とする。そしてステップS1683で動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行に対する処理を行う。
動作済みでなければ、ステップS1684で操作部60のボタン押下中であるか否かを確認し。ボタン押下中であればステップS1685で、励磁カウンタ(tcnt)に対応した励磁出力データを励磁出力データバッファにセットするデータとする。そしてステップS1686で励磁カウンタ(tcnt)の値を+1する。
このcw_btnに対応する図40Aの処理により、ボタン押下時は正転動作、非押下時は停止状態とさせる制御が行われる。
FIG. 40A shows a case where “D_OPT” = cw_btn (forward rotation operation).
In this case, the
If it has not been operated, it is checked in step S1684 whether or not the button of the
40A corresponding to this cw_btn, control is performed such that the forward rotation operation is performed when the button is pressed, and the stop state is performed when the button is not pressed.
図40Bは「D_OPT」=ccw_btn(逆転動作)の場合を示している。
この場合、演出制御CPU200はステップS1691で、当該行の規定ステップ動作済みであるか否かを確認する。動作済みであればステップS1692で動作カウント(lcnt)=0とし、また実行ステップ(step)=0とする。そしてステップS1693で動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行に対する処理を行う。
動作済みでなければ、ステップS1694で操作部60のボタン押下中であるか否かを確認し。ボタン押下中であればステップS1695で、励磁カウンタ(tcnt)の補数に対応した励磁出力データを励磁出力データバッファにセットするデータとする。そしてステップS1696で励磁カウンタ(tcnt)の値を+1する。
このccw_btnに対応する図40Bの処理により、ボタン押下時は逆転動作、非押下時は停止状態とさせる制御が行われる。
FIG. 40B shows a case where “D_OPT” = ccw_btn (reverse operation).
In this case, the
If it has not been operated, it is checked in step S1694 whether or not the button of the
40B corresponding to this ccw_btn, control is performed so that a reverse operation is performed when the button is pressed and a stop state is set when the button is not pressed.
以上のような動作系オプションに応じた処理により、モータの正転、逆転、原点スイッチ状態に応じた正転又は逆転、ボタン操作に応じた正転又は逆転など、モータの多様な動作がモータ動作テーブルによって指定可能となる。 By processing according to the above operating system options, various motor operations such as normal rotation and reverse rotation of the motor, normal rotation or reverse rotation according to the origin switch state, and normal rotation or reverse rotation according to the button operation Can be specified by table.
続いて図36のステップS1619としての非動作系オプションに応じた処理として、「D_OPT」に記述される主なものに対応した処理を図41〜図42で説明する。 Subsequently, processing corresponding to main ones described in “D_OPT” will be described with reference to FIGS. 41 to 42 as processing corresponding to the non-operation option in step S1619 in FIG.
図41Aは「D_OPT」=roop_s(ループ開始ポイント)の場合を示している。
演出制御CPU200はステップS1701で、モータデータ登録情報の属性(attribute)を参照して、現在実行中のモータ動作テーブルが親であるか否かを確認する。
親の場合はステップS1702で、ループ開始ポイントとして、動作ライン(ofset)+1の行を代入する。つまり、この「D_OPT」=roop_sの行の次の行をループ開始ポイントとする。そしてステップS1703で、「D_SPEED」の値をループ回数と設定する。そしてステップS1704で、動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行からの処理を行う。この場合、次の行からループ終了行までがループ回数だけ繰り返されることとなる。
ステップS1701で親ではない場合は、ループ設定を行わずにステップS1704で、動作ライン(ofset)を+1し、図36のステップS1608に戻って、次の行からの処理を通常に行う。
FIG. 41A shows a case where “D_OPT” = roop_s (loop start point).
In step S1701, the
In the case of the parent, in step S1702, the line of the operation line (ofset) +1 is substituted as the loop start point. That is, the line next to the line “D_OPT” = roop_s is set as a loop start point. In step S1703, the value of “D_SPEED” is set as the number of loops. In step S1704, the operation line (ofset) is incremented by 1, and the process returns to step S1608 in FIG. 36 to perform processing from the next line. In this case, the process from the next line to the loop end line is repeated by the number of loops.
If the parent is not the parent in step S1701, the loop is not set, and the operation line (ofset) is incremented by 1 in step S1704, and the process returns to step S1608 in FIG.
図41Bは「D_OPT」=roop_e(ループ終了ポイント)の場合を示している。
演出制御CPU200はステップS1711で、モータデータ登録情報の属性(attribute)を参照して、現在実行中のモータ動作テーブルが親であるか否かを確認する。
親の場合はステップS1712で、ループ回数=0となっているか否かを確認する。ループ回数は上述の図41AのステップS1730で「D_SPEED」の値がセットされ、次のステップS1713で−1されるため、ループ回数=0とは「D_SPEED」で指示されたループ回数が終了したことを意味する。
ループ回数=0でなければ、ステップS1713でループ回数の値を−1し、ステップS1714で再度ループ回数=0であるか否かを確認する。ループ回数=0でなければ、ステップS1716で動作ライン(ofset)にループ開始ポイント(図41AのステップS1702参照)の値を代入する。即ち、引き続きループ処理を行うため、ループ開始行に戻るようにする。そして図36のステップS1608に戻って、ループ開始行からの処理を行う。
ステップS1711で親ではない場合、ステップS1712でループ回数=0の場合、或いはステップS1714でループ回数=0の場合は、ステップS1715で動作ライン(ofset)を+1し、図36のステップS1608に戻る。つまり当該ループ終了ポイントの行の次の行から処理が行われるようにする。
FIG. 41B shows a case where “D_OPT” = roop_e (loop end point).
In step S1711, the
In the case of the parent, in step S1712, it is confirmed whether or not the loop count = 0. Since the value of “D_SPEED” is set in step S1730 of FIG. 41A and is set to −1 in the next step S1713, the number of loops = 0 means that the number of loops indicated by “D_SPEED” has ended. Means.
If the loop count is not 0, the value of the loop count is decremented by -1 in step S1713, and it is confirmed again in step S1714 whether the loop count is 0 or not. If the number of loops is not 0, the value of the loop start point (see step S1702 in FIG. 41A) is substituted into the operation line (ofset) in step S1716. That is, in order to continue the loop process, the process returns to the loop start line. Then, the process returns to step S1608 in FIG. 36 to perform processing from the loop start line.
If it is not the parent in step S1711, if the loop count = 0 in step S1712, or if the loop count = 0 in step S1714, the operation line (ofset) is incremented by 1 in step S1715 and the process returns to step S1608 in FIG. That is, the processing is performed from the line following the loop end point line.
roop_s(ループ開始ポイント)、roop_e(ループ終了ポイント)に応じて以上の図41A、図41Bの処理が行われるようにすることで、モータ動作テーブル内でループ指定が可能となる。言い換えれば、モータ動作テーブル内でループ指定を行い、それに応じた動作制御が実行されることで、無駄に行数を増やさない効率的なモータ動作テーブルを設定でき、メモリ容量の削減にもつながる。 By performing the processes in FIGS. 41A and 41B according to roop_s (loop start point) and roop_e (loop end point), it is possible to specify a loop in the motor operation table. In other words, by designating a loop in the motor operation table and performing operation control in accordance with the loop specification, an efficient motor operation table that does not unnecessarily increase the number of rows can be set, leading to a reduction in memory capacity.
図41Cは「D_OPT」=link(リンク命令)の場合を示している。
演出制御CPU200はステップS1721で、モータデータ登録情報の属性(attribute)を参照して、現在実行中のモータ動作テーブルが親であるか否かを確認する。
親の場合はステップS1722で、モータデータ登録情報の現在対象のモータチャネルmCHnの親ナンバ(retNo)に、実行動作ナンバ(no)の値を書き込む。またステップS1723で、戻りアドレス(retAddr)に、動作ライン(ofset)+1の値を書き込む。
次にステップS1724で実行動作ナンバ(no)及び登録動作ナンバ(noNew)に「D_SPEED」の値を書き込む。link(リンク命令)の場合、「D_SPEED」はリンク先のモータ動作テーブルの番号が示しているためである。
そしてステップS1725で動作ライン(ofset)=0とし、ステップS1726で属性(attribute)を、子(リンク先)であることを示す「0」として図36のステップS1608に戻る。これにより、リンク先のモータ動作テーブルの先頭行からの処理が行われることになる。
なお、ステップS1721で子と判断された場合は、何もせずに図36のステップS1608に戻る。
FIG. 41C shows a case where “D_OPT” = link (link command).
In step S1721, the
In the case of the parent, in step S1722, the value of the execution operation number (no) is written in the parent number (retNo) of the current motor channel mCHn of the motor data registration information. In step S1723, the value of the operation line (ofset) +1 is written to the return address (retAddr).
In step S 1724, the value “D_SPEED” is written in the execution operation number (no) and the registered operation number (noNew). This is because in the case of link (link command), “D_SPEED” indicates the number of the motor operation table at the link destination.
In
If it is determined in step S1721 that the child is a child, the process returns to step S1608 in FIG. 36 without doing anything.
図41Dは「D_OPT」=nor_end(通常終了)の場合を示している。
演出制御CPU200はステップS1731で、モータデータ登録情報の属性(attribute)を参照して、現在実行中のモータ動作テーブルが親であるか否かを確認する。
親の場合はステップS1731で励磁出力データをクリアし、またステップS1733でモータ動作に関するデータ、ここでは具体的には当該モータチャネルmCHnにおいて励磁カウント(tcnt)以外のモータ動作に関するデータをクリアする。なお、モータ動作に関するデータとは、図16Cの実行動作ナンバ(no)からエラーカウンタ(errCnt)までの12種のデータをいう。
一方、子の場合は、親のモータ動作テーブルに戻るための処理を行う。即ち演出制御CPU200はステップS1734で実行動作ナンバ(no)及び登録動作ナンバ(noNew)に親ナンバ(retNo)の値を書き込む。またステップS1735で動作ライン(ofset)に戻りアドレス(retAddr)の値を書き込む。ステップS1736で属性(attribute)を、親であることを示す「5A」とする。そしてステップS1737で親ナンバ(retNo)と戻りアドレス(retAddr)をクリアし、図36のステップS1608に戻る。
これにより、図41Cでリンク元となったモータ動作テーブルの行(ステップS1723で戻りアドレス(retAddr)に書き込まれた、「D_OPT」=linkの行の次の行)から処理が行われる。
FIG. 41D shows a case where “D_OPT” = nor_end (normal end).
In step S1731, the
In the case of the parent, the excitation output data is cleared in step S1731, and the data relating to the motor operation is cleared in step S1733, specifically, the data relating to the motor operation other than the excitation count (tcnt) in the motor channel mCHn. The data relating to the motor operation refers to 12 types of data from the execution operation number (no) to the error counter (errCnt) in FIG. 16C.
On the other hand, in the case of a child, processing for returning to the parent motor operation table is performed. That is, the
Thus, processing is performed from the row of the motor operation table that is the link source in FIG. 41C (the row next to the “D_OPT” = link row written in the return address (retAddr) in step S1723).
以上の図41Dの処理により、nor_end(通常終了)が指定されれば、通常はそれによって現在のモータ動作テーブルの動作パターンの制御が完了する。これに伴ってワークがクリアされ、以降、当該モータチャネルmCHnは新たに登録可能な空きチャネルとなる。
また図41C、図41Dの処理により、親→子へのモータ動作テーブルのリンク設定及び子のモータ動作テーブル終了時の親のモータ動作テーブルへの復帰が可能となる。
図41Cのように親(リンク元)の場合には、まずリンク先からの復帰のために親ナンバ(retNo)と戻りアドレス(retAddr)を当該モータチャネルmCHnにセットした後、リンク先のモータ動作テーブルを実行動作ナンバ(no)及び登録動作ナンバ(noNew)とし、そのリンク先のモータ動作テーブルの各行に応じた処理が実行されるようにしている。リンク先の子のモータ動作テーブルでは、nor_end(通常終了)の行から、ステップS1734〜S1737の処理によりにおいて親のモータ動作テーブルの「D_OPT」=linkの行の次の行に復帰する。
このように複数のモータ動作テーブルをリンク付けすることができ、用意したモータ動作テーブルを効率的に利用できる。換言すれば無駄に行数を増やさない効率的なモータ動作テーブルを設定でき、メモリ容量の削減にもつながる。
If nor_end (normal end) is designated by the processing of FIG. 41D described above, control of the operation pattern of the current motor operation table is normally completed thereby. Along with this, the work is cleared, and thereafter, the motor channel mCHn becomes a newly registerable empty channel.
41C and 41D, it is possible to set the link of the motor operation table from parent to child and return to the parent motor operation table at the end of the child motor operation table.
In the case of the parent (link source) as shown in FIG. 41C, first, the parent number (retNo) and the return address (retAddr) are set in the motor channel mCHn for returning from the link destination, and then the motor operation of the link destination is performed. The table is set as an execution operation number (no) and a registration operation number (noNew), and processing corresponding to each row of the motor operation table at the link destination is executed. In the motor operation table of the child at the link destination, the process returns to the line next to the line “D_OPT” = link of the parent motor operation table from the nor_end (normal end) line by the processing of steps S1734 to S1737.
Thus, a plurality of motor operation tables can be linked, and the prepared motor operation tables can be used efficiently. In other words, an efficient motor operation table that does not unnecessarily increase the number of rows can be set, leading to a reduction in memory capacity.
図42Aは「D_OPT」=chk_end(チェック終了)の場合を示している。
演出制御CPU200はステップS1741で原点スイッチ(スイッチ情報)を確認し、スイッチ情報=0(原点外)であれば、ステップS1742でモータMT(n)のエラーセットを行う。
ステップS1743では当該モータチャネルmCHnについての励磁出力データをクリアし、ステップS1744で当該モータチャネルmCHnにおいて励磁カウント(tcnt)以外のモータ動作に関するデータをクリアする。そして図36の「C」(ループLP5内処理の終了)に進む。
このchk_end(チェック終了)の処理により、原点内であることの確認を伴って動作パターンを終了することが行われる。
FIG. 42A shows a case where “D_OPT” = chk_end (end of check).
The
In step S1743, excitation output data for the motor channel mCHn is cleared, and in step S1744, data related to motor operation other than the excitation count (tcnt) is cleared in the motor channel mCHn. Then, the process proceeds to “C” in FIG. 36 (end of the process in the loop LP5).
By this chk_end (end of check) process, the operation pattern is ended with confirmation of being within the origin.
図42Bは「D_OPT」=err_cnt(エラーカウンタ+1)の場合を示している。
演出制御CPU200はステップS1751でモータMT(n)のエラーカウンタ(errCnt)を+1する。
ステップS1752ではエラーカウンタの値を確認し、2を越えていたらステップS1753でモータMT(n)のエラーセットを行う。
そしてステップS1754で当該モータチャネルmCHnについての励磁出力データをクリアし、ステップS1755で当該モータチャネルmCHnにおいて励磁カウント(tcnt)以外のモータ動作に関するデータをクリアする。そして図36の「C」(ループLP5内処理の終了)に進む。
このerr_cnt(エラーカウンタ+1)の処理により、エラーカウンタの値に応じてモータエラーがセットされる。
FIG. 42B shows a case where “D_OPT” = err_cnt (error counter + 1).
The
In step S1752, the value of the error counter is confirmed. If it exceeds 2, error setting of the motor MT (n) is performed in step S1753.
In step S1754, the excitation output data for the motor channel mCHn is cleared. In step S1755, data related to motor operation other than the excitation count (tcnt) is cleared in the motor channel mCHn. Then, the process proceeds to “C” in FIG. 36 (end of the process in the loop LP5).
By this err_cnt (error counter + 1) process, a motor error is set according to the value of the error counter.
図42Cは「D_OPT」=sys_err(エラーコマンドなし)の場合を示している。
演出制御CPU200はステップS1761でモータMT(n)のエラーセットを行う。
そしてステップS1762で当該モータチャネルmCHnについての励磁出力データをクリアし、ステップS1763で当該モータチャネルmCHnのモータ動作に関するデータ(実行動作ナンバ(no)からエラーカウンタ(errCnt)までの12種のデータ)をクリアする。そして図36の「C」(ループLP5内処理の終了)に進む。
図42Dは「D_OPT」=sys_erc(エラーコマンドあり)の場合を示している。
演出制御CPU200はステップS1771でモータMT(n)のエラーセットを行う。
そしてステップS1772でモータMT(n)のエラーを示すエラーコマンドをセットする。ステップS1773では当該モータチャネルmCHnについての励磁出力データをクリアし、ステップS1774で当該モータチャネルmCHnのモータ動作に関するデータ(実行動作ナンバ(no)からエラーカウンタ(errCnt)までの12種のデータ)をクリアする。そして図36の「C」(ループLP5内処理の終了)に進む。
この図42C、図42Dのsys_err、sys_ercの指定により、エラーコマンドの有無を指定したエラー設定が可能となる。
FIG. 42C shows a case where “D_OPT” = sys_err (no error command).
The
In step S1762, the excitation output data for the motor channel mCHn is cleared. In step S1763, data relating to the motor operation of the motor channel mCHn (12 types of data from the execution operation number (no) to the error counter (errCnt)). clear. Then, the process proceeds to “C” in FIG. 36 (end of the process in the loop LP5).
FIG. 42D shows a case where “D_OPT” = sys_erc (with error command).
The
In step S1772, an error command indicating an error in the motor MT (n) is set. In step S1773, the excitation output data for the motor channel mCHn is cleared, and in step S1774, the motor operation data for the motor channel mCHn (12 types of data from the execution operation number (no) to the error counter (errCnt)) is cleared. To do. Then, the process proceeds to “C” in FIG. 36 (end of the process in the loop LP5).
By specifying sys_err and sys_erc in FIGS. 42C and 42D, an error setting that specifies the presence or absence of an error command becomes possible.
図42Eは「D_OPT」=sys_ck1(原点スイッチに応じた移行)の場合を示している。
演出制御CPU200はステップS1781で、原点スイッチ(スイッチ情報)を確認する。
スイッチ情報=0(原点外)であれば、ステップS1782で動作ライン(ofset)を+1する。
スイッチ情報=1(原点内)であれば、ステップS1783で動作ライン(ofset)に、(ofset+D_SPEED)の値を書き込む。
このsys_ck1の処理により、現在原点外にあるときは処理行を次の行に進め、現在原点内にあるときは処理行を「D_SPEED」で指定された行数だけ進めることになる。これによってモータの原点内外に応じた処理を1つのモータ動作テーブル内で場合分けして規定できる。これも容量の少ない効率的なモータ動作テーブルの実現に寄与している。
FIG. 42E shows a case where “D_OPT” = sys_ck1 (migration according to the origin switch).
The
If the switch information = 0 (outside the origin), the operation line (ofset) is incremented by 1 in step S1782.
If switch information = 1 (within the origin), the value of (ofset + D_SPEED) is written to the operation line (ofset) in step S1783.
This sys_ck1 process advances the processing line to the next line when it is outside the current origin, and advances the processing line by the number of lines specified by “D_SPEED” when it is within the current origin. As a result, processing corresponding to the inside and outside of the origin of the motor can be defined for each motor operation table. This also contributes to the realization of an efficient motor operation table with a small capacity.
図42Fは「D_OPT」=sys_ck2(原点スイッチに応じた移行)の場合を示している。
演出制御CPU200はステップS1791で、原点スイッチ(スイッチ情報)を確認する。
スイッチ情報=1(原点内)であれば、ステップS1793で動作ライン(ofset)を+1する。
スイッチ情報=0(原点外)であれば、ステップS1792で動作ライン(ofset)に、(ofset+D_SPEED)の値を書き込む。
このsys_ck2の処理により、現在原点内にあるときは処理行を次の行に進め、現在原点外にあるときは処理行を「D_SPEED」で指定された行数だけ進めることになる。これによってモータの原点内外に応じた処理を1つのモータ動作テーブル内で場合分けして規定できる。これも容量の少ない効率的なモータ動作テーブルの実現に寄与している。
FIG. 42F shows a case where “D_OPT” = sys_ck2 (transfer according to the origin switch).
The
If switch information = 1 (within the origin), the operation line (ofset) is incremented by 1 in step S1793.
If switch information = 0 (outside the origin), the value of (ofset + D_SPEED) is written to the operation line (ofset) in step S1792.
By this sys_ck2, the processing line is advanced to the next line when it is currently within the origin, and the processing line is advanced by the number of lines designated by “D_SPEED” when it is outside the current origin. As a result, processing corresponding to the inside and outside of the origin of the motor can be defined for each motor operation table. This also contributes to the realization of an efficient motor operation table with a small capacity.
ここまで動作系オプション、非動作系オプションに応じた処理を説明してきたが、本実施の形態のパチンコ遊技機1は、大当たり等の抽選処理に起因して遊技者に有利な特別遊技状態を発生させる遊技機である。そして特別遊技状態へ移行すること又は移行する可能性が高いことを報知する可動体として上述の可能体役物を備え、また可動体役物を可動させるモータ(可動体役物モータ部65の各モータ)を備える。そしてモータを駆動させる制御手段として演出制御部51(演出制御CPU200)を備える。そして演出制御CPU200は図34で説明したモータ動作テーブルに基づいてモータ制御を行う。
即ちモータ動作テーブルは、上述のように、モータ駆動を伴う制御内容を示す動作系処理情報(動作系オプション)の制御項目と、モータ駆動を伴わない制御内容を示す非動作系処理情報(非動作系オプション)の制御項目とを含む複数の制御項目(各行の内容)が実行順に記憶されている。演出制御CPU200は、このように複数の制御項目により一連のモータ動作パターンが示されるモータ動作テーブルを参照し、各制御項目において示されている動作系オプション又は非動作系オプションに従った処理を実行することで、モータ動作制御を行う。
またモータ動作テーブルの制御項目は、動作系オプションと非動作系オプションとの何れであるかを識別する動作種別データ(OPT)と、動作種別に関する具体的な動作内容を特定する動作内容データ(SPEED、STEP)とを含む。
また動作系オプションの制御項目では、モータの回転方向及び回転量が「D-OPT」「STEP」により規定されている。
また非動作系オプションの制御項目では、次に実行すべき処理を指定する情報として、モータ動作テーブルで規定された順番に従わずに次に実行すべき制御項目を指定する情報が含まれている。例えばlink、roop_s、roop_e、sys_ck1〜sys_ck4等である。
また非動作系オプションの制御項目には、例えばsys_ck1〜sys_ck4のように可動体役物の位置検出スイッチ(原点スイッチ68)を判定し、判定結果に応じて、それ以降の動作を変更させる情報が規定されている。
The processing according to the operation system option and the non-operation system option has been described so far, but the
That is, as described above, the motor operation table includes the control items of the operation system processing information (operation system option) indicating the control contents with motor driving and the non-operation system processing information (non-operation) indicating the control contents without motor driving. A plurality of control items (contents of each line) are stored in the order of execution. The
The control items of the motor operation table are operation type data (OPT) for identifying whether the option is an operation system option or a non-operation system option, and operation content data (SPEED) for specifying a specific operation content related to the operation type. , STEP).
In the control items of the operation system option, the rotation direction and rotation amount of the motor are defined by “D-OPT” and “STEP”.
In addition, the non-operating option control items include information specifying the next control item to be executed without following the order specified in the motor operation table as information specifying the next processing to be executed. . For example, link, roop_s, roop_e, sys_ck1 to sys_ck4, and the like.
In addition, in the control items of the non-operation system option, for example, information for determining the position detection switch (origin switch 68) of the movable body accessory such as sys_ck1 to sys_ck4 and changing the subsequent operation according to the determination result. It is prescribed.
モータ動作テーブルにおいて、動作系オプションと非動作系オプションが、一連のモータ動作パターンを構成する制御項目として混在して記述されるようにすることで、演出制御CPU200は、単にモータ動作テーブルを参照して各行で指示される処理を行っていけばよく、動作系・非動作系が混在する処理が簡易となり、処理負担が軽減される。
また動作系オプション、非動作系オプションの混在により、モータ動作テーブルには精密・多様な動作パターンを規定できる。
また、非動作系オプションには、次に実行すべき処理を指定する情報、モータ動作テーブルで規定された順番に従わずに例えばリンク先にジャンプする情報や、行の進行(他の制御項目にジャンプする情報)などが含まれることで、モータ動作テーブルの各行や、他のモータ動作テーブルを有効に利用でき、モータ動作テーブル全体の容量を過大にすることなく、精密・多様な動作パターンを規定できる。
また、非動作系オプションには原点スイッチ68の判定結果でそれ以降の動作を変更させる情報が規定されていることで、モータ(可動体役物)の状況に応じた制御動作を規定でき、適切なモータ動作を実行させることができる。
またモータ動作テーブルには、上述のスピード(SPEED)のように、動作系オプションと非動作系オプションとで共有される指示値が設けられ、演出制御CPU200は、動作系オプションと非動作系オプションの各制御内容により、指示値(D_SPEED)であるの内容を判別して処理を行う。このように指示値を共有することもモータ動作テーブルのデータ量削減に有効である。
つまり本例のモータ動作テーブルを用いたモータ制御方式によれば、演出制御CPU200の処理負担の軽減、メモリ領域の有効利用を実現しつつ、多様なモータ動作演出が可能となる。
なお、このようなモータ動作テーブルを用いたモータ制御方式は、実施の形態のパチンコ遊技機1だけでなく、他の遊技機の可動体制御、例えばスロット遊技機のリール制御などに用いることも好適である。
In the motor operation table, the operation option and the non-operation option are described in a mixed manner as control items constituting a series of motor operation patterns, so that the
Moreover, precise and diverse operation patterns can be defined in the motor operation table by mixing operating and non-operating options.
Non-operating options include information specifying the next process to be executed, information for jumping to the link destination without following the order specified in the motor operation table, and line progress (for other control items). Etc.), each row of the motor operation table and other motor operation tables can be used effectively, and precise and diverse operation patterns can be specified without increasing the capacity of the entire motor operation table. it can.
In addition, the non-operating system option specifies the information to change the subsequent operation based on the judgment result of the
In addition, the motor operation table is provided with an instruction value shared between the operation system option and the non-operation system option, such as the above-described speed (SPEED), and the
That is, according to the motor control method using the motor operation table of this example, various motor operation effects can be achieved while reducing the processing load of the
Note that such a motor control system using the motor operation table is suitable not only for the
また本実施の形態では、図36のモータ動作更新処理において、演出制御CPU200は、モータデータ登録情報のモータチャネルmCHにおいて、実行予定の演出動作情報(モータ動作テーブル)の指定値(動作パターン番号)を登録動作ナンバ(noNew)として管理するとともに、実行中の演出動作情報の指定値(動作パターン番号)を実行動作ナンバ(no)として管理する。
このようにすることで、ワーク、つまりモータデータ登録情報の各モータチャネルmCH上で、実行予定のモータ動作テーブルと、実行中(ステップS1680〜S1618の処理中)のモータ動作テーブルを容易に管理・区別できる。
In the present embodiment, in the motor operation update process of FIG. 36, the
In this way, the motor operation table scheduled to be executed and the motor operation table being executed (during the processing of steps S1680 to S1618) can be easily managed and processed on each motor channel mCH of the motor data registration information. Can be distinguished.
また本例の場合、具体的には、制御コマンドに基づいて選択された演出動作情報の指定値(動作パターン番号)を登録動作ナンバ(noNew)として登録する処理を図33BのステップS1513で行う。そして登録動作ナンバ(noNew)としてモータデータ登録情報に登録された演出動作情報(動作パターン番号)に応じた処理の実行開始に際して、図36のステップS1602〜S1604の処理で、実行動作ナンバ(no)に登録動作ナンバ(noNew)の値を代入することで、実行中のモータ動作テーブルの動作パターン番号が実行動作ナンバ(no)として管理されるようにする。
このような処理により、ワーク上での登録動作ナンバ(noNew)、実行動作ナンバ(no)の処理が容易で演出制御CPU200の処理負担も削減でき、その上で、実行予定、実行中のモータ動作テーブルが明確に管理でき、ステップS1607では、実行動作ナンバ(no)を参照して処理を分岐し、冗長な処理を回避できる。
またステップS1601で、登録動作ナンバ(noNew)と実行動作ナンバ(no)が一致していなければ、ステップS1603で実行動作ナンバ(no)に登録動作ナンバ(noNew)の値を代入するという処理を採用することで、モータデータ登録情報以外を参照せずに実行動作ナンバ(no)を更新でき、これも処理負担削減に有効である。
このように、演出制御CPU200の処理負担の軽減が図られている。
In the case of this example, specifically, a process of registering the designated value (motion pattern number) of the rendering motion information selected based on the control command as the registered motion number (noNew) is performed in step S1513 in FIG. 33B. Then, at the start of the execution of the process according to the presentation operation information (operation pattern number) registered in the motor data registration information as the registered operation number (noNew), the execution operation number (no) is executed in the processing of steps S1602 to S1604 in FIG. By substituting the value of the registered operation number (noNew) into, the operation pattern number of the motor operation table being executed is managed as the execution operation number (no).
By such processing, the registration operation number (noNew) and execution operation number (no) on the workpiece can be easily processed, and the processing load of the
If the registration operation number (noNew) and the execution operation number (no) do not match in step S1601, a process of substituting the value of the registration operation number (noNew) for the execution operation number (no) in step S1603 is adopted. By doing so, the execution operation number (no) can be updated without referring to information other than the motor data registration information, which is also effective in reducing the processing burden.
In this way, the processing load of the
[4−11:モータ出力処理]
続いて図9の1msタイマ割込処理のステップS204で行われるモータ出力処理について図44で説明する。
ここでは、図43に示した例のようにモータMT0〜MT5の6個のステッピングモータ121が搭載されており、モータMT6,MT7は未使用であるとする。そしてモータMT0〜MT5が、図5Bのように或る1つのLEDドライバ90に接続されているとして説明する。
[4-11: Motor output processing]
Next, the motor output process performed in step S204 of the 1 ms timer interrupt process in FIG. 9 will be described with reference to FIG.
Here, as in the example shown in FIG. 43, six stepping
図44のモータ出力処理は、モータMT0〜MT5が接続されたLEDドライバ90に対して励磁出力データdMT0〜dMT5を出力する処理となる。
演出制御CPU200は、ループ処理LP6としてステッピングモータ121が接続されたLEDドライバ90の個数分、ステップS1801〜S1808を行う。上記のように1つのLEDドライバ90が6個のステッピングモータ12の駆動に用いられているとすると、ループ回数は1回となる。
The motor output process of FIG. 44 is a process of outputting excitation output data dMT0 to dMT5 to the
The
ここでLEDドライバ90のレジスタ構造を説明しておく。図5Aのデータバッファ/PWMコントローラ93内に設けられるレジスタである。
レジスタとしては、レジスタアドレスが00h〜2Chとされた各8ビットのレジスタ空間が用意されている。このうちステッピングモータ121の駆動のためにレジスタアドレス00h〜14hが用いられる。
なおレジスタアドレス15h〜2Chは、それぞれ出力端子96−1〜96−24に対応するLED用の点灯データ(階調値)が書き込まれるレジスタとされており、モータ駆動の場合は用いなくてよい。
レジスタアドレス00h〜14hの各レジスタは以下のようにデータが書き込まれる。
Here, the register structure of the
As registers, 8-bit register spaces each having register addresses 00h to 2Ch are prepared. Among these, register addresses 00h to 14h are used for driving the stepping
The register addresses 15h to 2Ch are registers in which LED lighting data (gradation values) corresponding to the output terminals 96-1 to 96-24 are written, respectively, and may not be used in the case of motor driving.
Data is written in the registers at register addresses 00h to 14h as follows.
00h:8ビット中の3ビットでPWMの周期設定データがセットされ、1ビットでマスタ/スレーブ設定データがセットされる。
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: PWM cycle setting data is set in 3 bits out of 8 bits, and master / slave setting data is set in 1 bit.
01h: Setting data of fade-in speed per gradation is set by 3 bits out of 8 bits and fade-out speed is set by 3 bits.
02h: Red LED current value data is set in 5 bits of 8 bits.
03h: Current value data of the green LED is set in 5 bits out of 8 bits.
04h: Current value data of blue LED is set in 5 bits out of 8 bits.
05h: Six bits out of eight bits set ON / OFF setting data of output terminals 96-1 to 96-6.
06h: Six bits out of eight bits set ON / OFF setting data of output terminals 96-7 to 96-12.
07h: Six bits out of eight bits set ON / OFF setting data of output terminals 96-13 to 96-18.
08h: Six bits out of eight bits set ON / OFF setting data of output terminals 96-19 to 96-24. The registers at the register addresses 05h to 08h serve as on / off setting units for the output terminals 96-1 to 96-24.
09h to 0Eh: For each of the four output terminals, any one of “PWM output priority”, “fade output priority”, and “forced on / off output priority” is selected and set for each of the four output terminals. The six registers from 09h to 0Eh correspond to the 24 output terminals 96-1 to 96-24.
0Fh to 11h: Three registers (24 bits in total) are set to enable / disable the fade function of 24 output terminals 96-1 to 96-24.
12h to 14h: Three registers (24 bits in total) are used to forcibly turn on / off the 24 output terminals 96-1 to 96-24.
LEDドライバ90をモータ駆動に使用する場合、ステップS1801〜S1808で以上のレジスタアドレス00h〜14hに、次のようにデータ書き込みを行うこととなる。
When the
図44の処理で或るLEDドライバ90に対してシリアルデータ送信を行う場合は、演出制御CPU200はステップS1801で、そのLEDドライバ90に対応してイネーブル信号(ENABLE)をオンとする。そしてステップS1802で、当該対象のLEDドライバ90のスレーブアドレスを出力する。
さらに演出制御CPU200はステップS1803で、データ設定開始レジスタアドレスを出力する。この場合、レジスタアドレス「00h」〜「14h」への書き込みとなるため、データ設定開始レジスタアドレス=00hとする。
なおLEDドライバ90側では、送信されてくるデータを、データ設定開始レジスタアドレスで示されたレジスタから連続するレジスタアドレスに順次格納していく。
When serial data is transmitted to an
Further, the
On the
そして演出制御CPU200はステップS1804で、順次各レジスタアドレス「00h」〜「14h」に対応するデータ送信を行う。
まずステップS1804では、レジスタアドレス00h〜11hへのデータ転送を行う。
この場合、転送するデータは次のようになる。なおレジスタアドレスの値と、転送するデータ値の区別のため、「0x」と「h」を使い分けている。
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:0xAA・・・強制オン/オフ設定優先
0Ah:0xAA・・・強制オン/オフ設定優先
0Bh:0xAA・・・強制オン/オフ設定優先
0Ch:0xAA・・・強制オン/オフ設定優先
0Dh:0xAA・・・強制オン/オフ設定優先
0Eh:0xAA・・・強制オン/オフ設定優先
0Fh:0x00・・・フェード機能無効
10h:0x00・・・フェード機能無効
11h:0x00・・・フェード機能無効
In step S1804, the
First, in step S1804, data transfer to register addresses 00h to 11h is performed.
In this case, the data to be transferred is as follows. Note that “0x” and “h” are separately used to distinguish between the register address value and the data value to be transferred.
00h: 0x00: Initial setting of PWM cycle 01h: 0x00: No fade-in / fade-out slope 02h: 0x1F: Initial setting of red LED current value 03h: 0x1F: Initial setting of green LED current value 04h: 0x1F ... Initial setting of blue LED current value 05h: 0x77 ... ON setting of output terminals 96-1 to 96-6 06h: 0x77 ... ON setting of output terminals 96-7 to 96-12 07h : 0x77 ... ON setting of output terminals 96-13 to 96-18 08h: 0x77 ... ON setting of output terminals 96-19 to 96-24 09h: 0xAA ... Forced on / off setting priority 0Ah: 0xAA ... priority on / off setting priority 0Bh: 0xAA ... forcible on / off setting priority 0Ch: 0xAA ... forcible on / off setting First 0Dh: 0xAA ... Forced on / off setting priority 0Eh: 0xAA ... Forced on / off setting priority 0Fh: 0x00 ... Fade function disabled 10h: 0x00 ... Fade function disabled 11h: 0x00 ... Fade Disabled
このようなデータ転送は、レジスタアドレス09h〜0Fhへのデータで、LEDドライバ90の出力端子96−1〜96−24について強制オン/オフ設定を優先させるとともに、レジスタアドレス05h〜08hへのデータで出力端子96−1〜96−24をオン設定するものとなる。
このような設定を行った上で、演出制御CPU200は図43Cで説明した励磁出力データdMT0〜dMT5を転送する。
即ちステップS1805で、レジスタアドレス12hへモータMT0、MT1の励磁出力データdMT0、dMT1の8ビットを転送する。
ステップS1806では、レジスタアドレス13hへモータMT2、MT3の励磁出力データdMT2、dMT3の8ビットを転送する。
ステップS1807では、レジスタアドレス14hへモータMT4、MT5の励磁出力データdMT4、dMT5の8ビットを転送する。
Such data transfer is data to register addresses 09h to 0Fh, giving priority to the forced on / off setting for the output terminals 96-1 to 96-24 of the
After making such settings, the
That is, in step S1805, 8 bits of excitation output data dMT0 and dMT1 of the motors MT0 and MT1 are transferred to the register address 12h.
In step S1806, 8 bits of excitation output data dMT2 and dMT3 of the motors MT2 and MT3 are transferred to the register address 13h.
In step S1807, 8 bits of excitation output data dMT4 and dMT5 of the motors MT4 and MT5 are transferred to the register address 14h.
以上が完了したら、ステップS1808でイネーブル信号(ENABLE)をオフとして1つのLEDドライバ90に対するシリアルデータ転送を終える。
このようなモータ出力処理によっては、LEDドライバ90の出力端子96−1〜96−24について強制オン/オフ設定優先とされた上で、強制オン/オフ設定のためのレジスタアドレス12h〜14hに、励磁出力データdMT0〜dMT5がセットされることになる。励磁出力データdMT0〜dMT5は図43で説明したようにそれぞれ4ビットデータとされているが、その4ビットの「0」が強制オフ、「1」が強制オンを指示する情報となり、当該4ビットが、図5Bで説明した4つの出力端子を駆動する信号となる。
When the above is completed, the enable signal (ENABLE) is turned off in step S1808, and the serial data transfer to one
Depending on such motor output processing, the forced on / off setting priority is given to the output terminals 96-1 to 96-24 of the
例えば出力端子96−1〜96−4がモータMT0としてのステッピングモータ121に接続されており、出力端子96−5〜96−8がモータMT1としてのステッピングモータ121に接続されているとする
ある時点で、励磁出力データdMT0=0110(6h)で、励磁出力データdMT1=0000であったとすると、上記ステップS1805で励磁出力データdMT0=0110が転送され、レジスタアドレス12hに「01100000」がセットされる。
この場合、「0110」により出力端子96−2、96−3が強制オンとなり、励磁駆動電流がステッピングモータ121に流される。
For example, it is assumed that the output terminals 96-1 to 96-4 are connected to the stepping
In this case, the output terminals 96-2 and 96-3 are forcibly turned on by “0110”, and the excitation drive current is caused to flow to the stepping
ステッピングモータ121を順方向に回転させる場合、上述のようにLEDドライバ90に、0110(6h)→0101(5h)→1001(9h)→1010(Ah)・・・と励磁出力データが与えられるが、励磁出力データdMT0=0101として転送された時点では出力端子96−2、96−4が強制オンとなり、励磁駆動電流がステッピングモータ121に流される。
つまり、1つのモータにつき4ビットの励磁出力データが、そのまま4相ステッピングモータの駆動制御信号となり、上記の順序で励磁出力データが与えられることでステッピングモータ121に対する4相励磁駆動が実現される。
When the stepping
That is, 4-bit excitation output data for one motor is directly used as a drive control signal for the four-phase stepping motor, and the excitation output data is given in the above order, whereby the four-phase excitation drive for the stepping
以上のように本実施の形態では、LEDドライバ90では、ステッピングモータ121が接続された端子について、強制オン/オフ設定を優先するように設定させ、その上で4ビットの励磁出力データdMT(n)をそのまま4相励磁駆動の制御信号とするように与える。これにより演出制御CPU200は、LEDドライバ90に対する送信データの生成処理負担が少なく、また簡易な制御処理となる。また駆動制御もLEDドライバ90の各レジスタに強制オン/オフ設定をした上で1つのモータにつき4ビットの励磁出力データを送信するのみでよく、送信データ量も少なく、送信処理負担も少ない。必要な送信データバッファ領域も削減できる。
As described above, in the present embodiment, the
また上述してきた本例の演出制御CPU200の処理では、主制御CPU100からの制御コマンドに基づいて実行すべきとされた装飾ランプ部63の発光動作、音源IC59による音出力動作、及び可動体役物モータ部65によるモータ動作についての動作情報を必要に応じて所定のメモリ領域(例えば図16,図17のワーク領域)に登録する登録処理を16ms処理としての第1の期間ごとに実行する(図8のステップS110、図14,図15)。
その一方で、モータ動作についての動作情報の登録に応じた出力データの生成処理及び出力処理を、第1の期間よりも短い、1msタイマ割込処理としての第2の期間ごとに実行する(図9のステップS203,F204,図36、図44)。
モータ動作に関しては、なるべく短い期間で細かく動作制御することで、役物の円滑な動きや精密な動作が可能となり、演出効果を向上させることができる。但し、モータデータ登録情報のモータチャネルmCHへの動作情報の登録も1msタイマ割込処理で行うようにすると処理負担が大きくなる。そこで登録処理については16ms処理で行うことで演出制御CPU200の処理負担を軽減している。また、これによって、音出力動作、発光動作についてのワーク(ランプチャネルdwCH、音チャネルaCH)への動作情報登録と同時的に処理できるようにし、処理効率向上をはかっている。
また、発光動作及び音出力動作についての動作情報の登録に応じた出力データの生成処理は、16ms処理(第1の期間)ごとに実行している(図8のステップS113,F111、図20、図31)。これらについてはモータほどの短インターバルでの処理の必要性はないとして、第1の期間ごととすることで、むやみに処理負担を増大させないようにしている。
なお、図8,図9の説明で述べたが、図8の16ms処理が行われるのは1msタイマ割込処理で割込カウンタが16までカウントされた時点である。つまりここでいう第1の期間の処理は、第2の期間の割込処理が所定回数行われたときに実行される処理である。第1,第2の期間をこのような関係とすることで、各処理期間の管理を個別に実行しなくてよく、これも演出制御CPU200の処理負担軽減に寄与する。
Further, in the processing of the
On the other hand, output data generation processing and output processing corresponding to the registration of the operation information about the motor operation are executed every second period as a 1 ms timer interruption process shorter than the first period (see FIG. 9 steps S203, F204, FIG. 36, FIG. 44).
Regarding the motor operation, by controlling the operation as finely as possible in a short period of time, it is possible to perform a smooth movement and precise operation of the accessory, and to improve the effect. However, if the registration of the operation information of the motor data registration information to the motor channel mCH is also performed by the 1 ms timer interrupt process, the processing load increases. Therefore, the registration process is performed in a 16 ms process, thereby reducing the processing load on the
Further, the output data generation process corresponding to the registration of the operation information regarding the light emission operation and the sound output operation is executed every 16 ms process (first period) (steps S113, F111 in FIG. 8, FIG. 20, FIG. 31). For these, it is assumed that there is no need for processing at such a short interval as the motor, so that the processing load is not increased unnecessarily by setting every first period.
8 and 9, the 16 ms processing of FIG. 8 is performed when the interrupt counter is counted up to 16 in the 1 ms timer interrupt processing. That is, the process in the first period here is a process executed when the interrupt process in the second period is performed a predetermined number of times. By having the first and second periods in such a relationship, management of each processing period does not have to be performed individually, which also contributes to reducing the processing load of the
[4−12:モータ押し込み動作]
ここでモータ押し込み動作の制御について説明する。
図34A、図34C、図34Dに例示した各モータ動作テーブルでは原点内でモータの押し込み動作を行うことが規定されている。
例えば図34Aのモータ動作テーブル1では、6行目のccw_all(逆転動作)として、ステッピングモータを、3msに1ステップの速さ(高速)で58ステップ分、原点に向けて戻すように駆動する。さらに7行目では、同じくccw_all(逆転動作)として、ステッピングモータを、6msに1ステップの速さ(低速)で8ステップ分、原点に向けて戻すように駆動する。この6行目、7行目は、原点内であることの確認後に、さらに原点へ押し込む動作となり、この押し込み動作は高速→低速の2段階で行われる。
図34Cのモータ動作テーブル72の11行目、12行目も同様であり、図34Cのモータ動作テーブルxの11行目、12行目も同様である。
[4-12: Motor push-in operation]
Here, the control of the motor pushing operation will be described.
Each motor operation table illustrated in FIGS. 34A, 34C, and 34D stipulates that the motor is pushed in within the origin.
For example, in the motor operation table 1 of FIG. 34A, the stepping motor is driven to return toward the origin by 58 steps at a speed of 1 step per 3 ms (high speed) as ccw_all (reverse operation) on the 6th row. Further, on the seventh line, similarly as ccw_all (reverse operation), the stepping motor is driven to return toward the origin by 8 steps at a speed of 1 step (low speed) in 6 ms. The sixth and seventh lines are further pushed into the origin after confirming that they are within the origin, and this push-in action is performed in two stages from high speed to low speed.
The same applies to the 11th and 12th lines of the motor operation table 72 of FIG. 34C, and the same applies to the 11th and 12th lines of the motor operation table x of FIG. 34C.
各ステッピングモータ121については、原点範囲内で機構的に役物移動の限界位置としてストッパが設けられているが、上記の押し込み動作は、役物をストッパ位置にまで確実に押し込み、位置(役物姿勢)を確定させる動作となる。
このような押し込み動作を実行させることで、原点内での役物の基準位置を精密に規定し、動作時には設定したモータステップ数で設計上の動作を安定させて実行させることができる。そして特に押し込みを高速→低速の2段階で行うことで、モータの中のギア負担の軽減、跳ね返りを想定したうえでの最終停止位置の安定化等の効果が得られる。
For each stepping
By executing such a push-in operation, the reference position of the accessory within the origin can be precisely defined, and the designed operation can be stably executed with the set number of motor steps during the operation. In particular, the pushing operation is performed in two stages from high speed to low speed, so that effects such as reduction of the gear load in the motor and stabilization of the final stop position on the assumption of rebounding can be obtained.
図34の各モータ動作テーブルは一例であるが、実際に、原点押し込みのための制御としては多様に考えられ、図45に例1〜例4を示す。
図45の各図は横軸を時間とし、役物が原点に戻る場合の動作を示している。各図において時点tonは原点スイッチ信号SWg(演出制御CPU200からみれば実際には図37Cのスイッチ情報)がオンとなるタイミングで、時点tspはストッパ到達タイミングとしている。ストッパ到達タイミングとは、ステッピングモータ121が、時点ton以降にモータステップ数xだけ駆動された時点である。つまり可動体役物は、原点範囲内に達したことの検出時点からxモータステップの駆動でストッパ位置に達する構造とされているとしている。
なお原点スイッチ68は、ストッパ位置を含む原点範囲に可動体である役物が位置していることを検出する原点スイッチ信号SWgを図35で説明した構成で出力する。
Each motor operation table in FIG. 34 is an example, but various controls can be considered for actually pushing the origin, and Examples 1 to 4 are shown in FIG.
Each figure of FIG. 45 shows the operation when the horizontal axis is time and the accessory returns to the origin. In each figure, the time point ton is the timing when the origin switch signal SWg (actually the switch information of FIG. 37C as viewed from the effect control CPU 200) is turned on, and the time point tsp is the stopper arrival timing. The stopper arrival timing is a time point when the stepping
Note that the
例1は、原点に向かってモータを高速で駆動させた後、原点スイッチオン(原点内)になったら、低速でストッパ位置に向かって押し込む例である。例えば原点スイッチオンの位置からストッパ位置までの、ステッピングモータ121の必要モータステップ数xを越えるモータステップ数のモータ回転を低速で実行させる。例えば時点tspでストッパ位置に到達するが、その後もまだ低速駆動されることで、ストッパ到達時の役物の跳ね返りや、設計上のステップ数と機構上の誤差などがあっても、確実に役物をストッパに押しつけた状態とすることができる。またストッパ到達時は低速駆動されていることでモータ機構に与える負担、衝撃を和らげることができる。
Example 1 is an example in which the motor is driven toward the origin at a high speed and then pushed toward the stopper position at a low speed when the origin switch is turned on (within the origin). For example, the motor rotation of the number of motor steps exceeding the required number of motor steps x of the stepping
例2は、原点に向かってモータを高速で駆動させた後、原点スイッチオン(原点内)になったら、原点スイッチオンの位置からストッパ位置までの、ステッピングモータ121の必要モータステップ数xを越えるモータステップ数のモータ回転をそのまま高速で実行させる。そして当該モータステップ数の駆動後、さらに低速で所定モータステップ数の駆動を行う例である。この場合、時点tspでストッパ位置に到達するが、その後もまだ高速駆動と低速駆動が実行されることで、ストッパ到達時の役物の跳ね返りや、設計上のステップ数と機構上の誤差などがあっても、確実に役物をストッパに押しつけた状態とすることができる。最終的には低速でストッパに押しつけることで、最終的な役物位置を安定させやすい。
In example 2, after the motor is driven at high speed toward the origin, when the origin switch is turned on (within the origin), the required motor step number x of the stepping
例3は、原点に向かってモータを高速で駆動させた後、原点スイッチオン(原点内)になったら、原点スイッチオンの位置からストッパ位置までの、ステッピングモータ121の必要モータステップ数xよりも少ないモータステップ数のモータ回転をそのまま高速で実行させる。そして当該モータステップ数の駆動後、低速で、ストッパ到達を越える所定モータステップ数の駆動を行う例である。高速・低速の合計としては必要モータステップ数xを越える。
この場合、時点tspでストッパ位置に到達するが、ストッパ到達時は低速駆動されていることでモータ機構に与える負担、衝撃を和らげることができる。そしてその後もまだ低速駆動が実行されることで、ストッパ到達時の役物の跳ね返りや、設計上の誤差などがあっても、確実に役物をストッパに押しつけた状態とすることができる。特にこの場合、低速でストッパに到達し、また押し込みが行われるため跳ね返りが小さくなり、また押し込みで最終的な役物位置を安定させやすい。
In Example 3, after driving the motor at high speed toward the origin, when the origin switch is turned on (within the origin), the number of required motor steps x of the stepping
In this case, the stopper position is reached at time tsp, but when the stopper is reached, it is driven at a low speed, so that the burden and impact applied to the motor mechanism can be reduced. After that, the low-speed driving is still performed, so that the accessory can be surely pressed against the stopper even if the accessory rebounds when it reaches the stopper or there is a design error. Particularly in this case, the stopper reaches the stopper at a low speed, and the rebound is reduced because the pushing is performed, and the final accessory position is easily stabilized by pushing.
例4は、原点に向かってモータを高速で駆動させた後、原点スイッチオン(原点内)になったら、原点スイッチオンの位置からストッパ位置までの、ステッピングモータ121の必要モータステップ数xのモータ回転をそのまま高速で実行させる。そして当該モータステップ数の駆動後、低速で所定モータステップ数の駆動を行う例である。高速・低速の合計としては必要モータステップ数xを越える。
この場合、時点tspでストッパ位置に到達するが、その後、低速駆動に切り替えられて押し込みが実行されることで、ストッパ到達時の役物の跳ね返りや、設計上の誤差などがあっても、確実に役物をストッパに押しつけた状態とすることができる。また最終的な押し込みは低速であることから最終的な役物位置を安定させやすい。
In Example 4, after driving the motor at high speed toward the origin, when the origin switch is turned on (within the origin), the motor of the required number of motor steps x of the stepping
In this case, the stopper position is reached at the time point tsp, but after that, by switching to low speed driving and executing the pushing, even if there is a bouncing of the accessory when reaching the stopper or a design error, it is ensured. It is possible to make a state in which the accessory is pressed against the stopper. Further, since the final push-in is slow, it is easy to stabilize the final accessory position.
以上のいずれの例の場合も、演出制御CPU200は、可動体役物を機構上のストッパ位置に移動させて停止させる際に、可動体役物を第1速度(高速)でストッパ位置に向かう方向に駆動する第1のモータ駆動制御を行い、さらにその後、可動体役物を第2速度(低速)でストッパ位置に向かう方向に駆動する第2のモータ駆動制御を行う。
これにより可動体役物をスローダウンさせてストッパ位置に停止させることができ、また上述の押し込みによる確実な位置制御が実現される。
また、例2〜例4は、原点スイッチオンタイミング以降に、高速と低速のモータ駆動制御を行っている。さらに図45の例1〜例4はいずれも、第1のモータ駆動制御と第2のモータ駆動制御の合計モータステップ数は、モータが原点範囲に入った状態からストッパ位置に達するまでの駆動量(必要モータステップ数x)を越える駆動量(モータステップ数x+α)のモータ駆動制御を行うようにして押し込みを行っている。
このようにすることで跳ね返り等があっても原点内での役物の停止位置を安定させることができる。特に上下に動く役物で、上部が原点である場合、ストッパ位置に達しても自重による跳ね返りは大きくなるが、以上の例のように最終的には第2の速度で押し込みを行うことで停止位置を安定化できる。
なお、ここではモータ駆動速度を2段階で行う例を示したが、3段階以上にしてもよい。いずれにしても押し込み制御の最終段階では、低速な駆動制御を行うことが好適である。
In any of the above examples, the
Thereby, the movable body accessory can be slowed down and stopped at the stopper position, and reliable position control by the above-described pushing is realized.
In Examples 2 to 4, high-speed and low-speed motor drive control is performed after the origin switch on timing. Further, in all of Examples 1 to 4 in FIG. 45, the total number of motor steps of the first motor driving control and the second motor driving control is the driving amount from the state where the motor enters the origin range until the stopper position is reached. Pushing is performed so as to perform motor drive control with a drive amount (motor step number x + α) exceeding (necessary motor step number x).
By doing so, the stop position of the accessory within the origin can be stabilized even if there is a rebound or the like. In particular, when the upper part is the origin, the rebound due to its own weight will increase even if it reaches the stopper position, but it will eventually stop by pushing at the second speed as in the above example. The position can be stabilized.
In addition, although the example which performs a motor drive speed in two steps was shown here, you may make it into three steps or more. In any case, it is preferable to perform low-speed drive control in the final stage of push-in control.
<5.まとめ及び変形例>
以上で説明した演出制御CPU200の処理により、多様な演出動作を制御負荷の低減を図りつつ効率的に実現できる。また、演出制御に要するメモリ容量も削減することができる。
<5. Summary and Modification>
By the processing of the
なお、本発明は実施の形態で挙げた例に限らず多様な変形例や適用例が考えられる。
例えば、上記による説明では、本発明がパチンコ遊技機1のような弾球遊技機に適用される例を示したが、本発明は回胴式遊技機(いわゆるスロット機)にも好適に適用できるものである。即ち演出制御CPU200による上述の各種演出制御は、スロット機での発光演出、音演出、可動体演出に好適に適用できる。
また、可動体役物モータ部65においては可動体を駆動するモータとしてステッピングモータ121の例を挙げたが、他の駆動機構、例えばソレノイドを用いることもできる。ソレノイドを用いる場合も、上述のモータ制御と同様にソレノイド制御を行うことができる。例えば図15のステップS636のモータの登録に続いてソレノイドの登録を行う。また1msタイマ割込処理のステップS203(図9)で、図36の処理に続いてソレノイド動作更新処理を行い、ソレノイド動作テーブルのデータに基づいて励磁出力データを設定していく処理を行って、ソレノイドのドライバに励磁出力データを送信すればよい。
また、実施の形態では、モータドライバとしてLEDドライバ90を利用する例を述べたが、もちろんこれは一例である。各モータの駆動のために専用のモータドライバを用いてもよいことは言うまでもない。
Note that the present invention is not limited to the examples given in the embodiment, and various modifications and application examples are conceivable.
For example, in the above description, an example in which the present invention is applied to a ball game machine such as the
In the movable body
In the embodiment, the example in which the
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 音源IC
60 操作部
61 枠ドライバ部
62 盤ドライバ部
63,64 装飾ランプ部
65 可動体役物モータ部
67 アンプ部
200 演出制御CPU
201 演出制御ROM
202 演出制御RAM
DESCRIPTION OF
51
52 Liquid
60
201 Production control ROM
202 Production control RAM
Claims (1)
遊技動作に関連する演出の実行を制御する演出制御手段と、を備え、
前記演出制御手段は、
演出デバイスの動作を規定する演出データが実行順に複数記憶されるとともに、最終位置に終了情報が記憶された複数種類の演出シナリオテーブルを有し、
制御コマンドに基づいて、前記複数種類の演出シナリオテーブルのうちのいずれかを指定する指定情報を、演出データを記憶できるチャネルが複数用意されているワークエリアの空きチャネルに登録し、
前記ワークエリアに登録された前記指定情報に対応する演出シナリオテーブルに記憶されている演出データを順次参照して、処理対象となる演出データに応じた処理を実行するとともに、演出シナリオテーブルに記憶された前記終了情報が処理対象となったことに応じて、該指定情報を前記ワークエリアから削除するように構成されている遊技機。 Main control means for overall control of game operations and outputting control commands related to game operations;
Production control means for controlling the execution of the production related to the game operation,
The production control means includes
A plurality of production data that defines the operation of the production device are stored in the order of execution, and there are a plurality of types of production scenario tables in which end information is stored at the final position,
Based on the control command, registering designation information for designating any one of the plurality of types of production scenario tables in an empty channel in a work area where a plurality of channels capable of storing production data are prepared,
The effect data stored in the effect scenario table corresponding to the specified information registered in the work area is sequentially referred to, and the process corresponding to the effect data to be processed is executed and stored in the effect scenario table. wherein the termination information in response to to be processed, a game machine that is configured to delete the specified information from the working area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013026375A JP5738334B2 (en) | 2013-02-14 | 2013-02-14 | Game machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013026375A JP5738334B2 (en) | 2013-02-14 | 2013-02-14 | Game machine |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015086542A Division JP6185003B2 (en) | 2015-04-21 | 2015-04-21 | Game machine |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014151152A JP2014151152A (en) | 2014-08-25 |
JP5738334B2 true JP5738334B2 (en) | 2015-06-24 |
Family
ID=51573600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013026375A Active JP5738334B2 (en) | 2013-02-14 | 2013-02-14 | Game machine |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5738334B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6185003B2 (en) * | 2015-04-21 | 2017-08-23 | 株式会社藤商事 | Game machine |
JP6129250B2 (en) * | 2015-07-27 | 2017-05-17 | 株式会社藤商事 | Game machine |
JP6167418B1 (en) * | 2016-02-25 | 2017-07-26 | 株式会社サンセイアールアンドディ | Game machine |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134888A (en) * | 1991-11-12 | 1993-06-01 | Casio Comput Co Ltd | Information processor |
JP4127476B2 (en) * | 2002-02-07 | 2008-07-30 | アルゼ株式会社 | Game machine |
JP2007011657A (en) * | 2005-06-30 | 2007-01-18 | Foster Electric Co Ltd | Method, system, and program for displaying/distributing work instruction |
JP5509639B2 (en) * | 2008-03-24 | 2014-06-04 | 株式会社三洋物産 | Game machine |
JP2011194867A (en) * | 2010-03-19 | 2011-10-06 | Riso Kagaku Corp | Image forming apparatus and image forming system |
-
2013
- 2013-02-14 JP JP2013026375A patent/JP5738334B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014151152A (en) | 2014-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5799036B2 (en) | Game machine | |
JP6082243B2 (en) | Game machine | |
JP2014151153A (en) | Game machine | |
JP5627044B2 (en) | Game machine | |
JP5535302B1 (en) | Game machine | |
JP6199572B2 (en) | Game machine | |
JP5951706B2 (en) | Game machine | |
JP5738334B2 (en) | Game machine | |
JP5873449B2 (en) | Game machine | |
JP5797675B2 (en) | Game machine | |
JP6283757B2 (en) | Game machine | |
JP6254134B2 (en) | Game machine | |
JP6279214B2 (en) | Game machine | |
JP6110460B2 (en) | Game machine | |
JP6163523B2 (en) | Game machine | |
JP6163521B2 (en) | Game machine | |
JP6185003B2 (en) | Game machine | |
JP5816206B2 (en) | Game machine | |
JP6130683B2 (en) | Game machine | |
JP2015166027A (en) | Game machine | |
JP6209578B2 (en) | Game machine | |
JP6130681B2 (en) | Game machine | |
JP6163132B2 (en) | Game machine | |
JP5970388B2 (en) | Game machine | |
JP6130682B2 (en) | Game machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140819 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141015 |
|
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: 20150407 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150421 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5738334 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 |
|
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 |