JP2018001033A - 遊技機 - Google Patents
遊技機 Download PDFInfo
- Publication number
- JP2018001033A JP2018001033A JP2017200949A JP2017200949A JP2018001033A JP 2018001033 A JP2018001033 A JP 2018001033A JP 2017200949 A JP2017200949 A JP 2017200949A JP 2017200949 A JP2017200949 A JP 2017200949A JP 2018001033 A JP2018001033 A JP 2018001033A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- data
- scenario
- display
- effect control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Landscapes
- Pinball Game Machines (AREA)
- Display Devices Of Pinball Game Machines (AREA)
Abstract
Description
そこで本発明では、演出制御用のマイクロコンピュータ等の制御処理を効率化し、適正な演出制御が実行されるようにすることを目的とする。
フレーム前端側期間とは、フレーム期間内でフレーム開始時点から所定時間経過するまでの期間である。例えば1フレーム期間を前半と後半に分けた場合の前半期間である。
受信したコマンドについては、解析処理を行って、その解析結果により演出内容が決められることになるが、このコマンドの解析処理は、フレーム前端側期間においてのみ開始し、フレーム開始から所定時間経過後は、解析処理を開始しないようにする。
また上記した遊技機においては、前記制御手段は、前記表示手段で表示される画像のフレーム同期信号に基づいてカウントを行うカウンタにより、フレーム開始タイミング及び前記フレーム前端側期間の終了タイミングを検知することが考えられる。
例えば垂直ブランキング信号等の画像のフレームに同期した信号に基づいてカウントを行うカウンタにより、フレーム開始タイミング及びフレーム前端側期間の終了タイミングを認識する。これにより、タイミング管理を容易化できる。
また遊技機は、演出画像の表示を行う表示手段を含む複数の演出手段と、受信したコマンドに応じて演出手段の動作を制御する制御手段とを備え、前記制御手段は、受信したコマンドの解析処理は、前記表示手段で表示される画像の1フレーム期間内において、フレーム開始タイミングに応じて1回実行する。
これによりフレームの開始タイミング直後にコマンド解析処理が開始される。1回のみ行われるため、コマンド解析処理の開始がフレーム期間の後半になることは、通常発生しない。
<1.パチンコ遊技機の構造>
<2.パチンコ遊技機の制御構成>
<3.演出制御部の構成>
<4.動作の概要>
<5.主制御部の処理>
<6.第1の実施の形態の演出制御部の処理>
<7.第2の実施の形態の演出制御部の処理>
<8.第3の実施の形態の演出制御部の処理>
<9.まとめ及び変形例>
まず図1、図2を参照して、本発明の実施の形態としてのパチンコ遊技機1の構成を概略的に説明する。
図1は実施の形態のパチンコ遊技機1の外観を示す正面側の斜視図であり、図2は遊技盤の正面図である。
図1,図2に示すパチンコ遊技機1は、主に「枠部」と「遊技盤部」から成る。
「枠部」は以下説明する前枠2、外枠4、ガラス扉5、操作パネル7を有して構成される。「遊技盤部」は図2の遊技盤3から成る。以下の説明上で、「枠部」又は「枠側」とは前枠2,外枠4、ガラス扉5、操作パネル7の総称とする。また「盤部」又は「盤側」とは遊技盤3を示す。
なお遊技領域3aの前側には、透明ガラスを支持したガラス扉5が設けられており、遊技領域3aは透明ガラスを介して前面の遊技者側に表出される。
またガラス扉5の前面側には、枠側の発光手段として発光部20wが各所に設けられている。発光部20wは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
操作パネル7には、上受け皿ユニット8、下受け皿ユニット9、発射操作ハンドル10が設けられている。
また上受け皿ユニット8には、上受け皿8aに貯留された遊技球を下受け皿9a側に抜くための球抜きボタン16が設けられている。下受け皿ユニット9には、下受け皿9aに貯留された遊技球を遊技機下方に抜くための球抜きレバー17が設けられている。
また上受け皿ユニット8には、図示しない遊技球貸出装置に対して遊技球の払い出しを要求するための球貸しボタン14と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン15とが設けられている。
さらに上受け皿ユニット8には、演出ボタン11,12、十字キー13が設けられている。演出ボタン11,12は、所定の入力受付期間中に内蔵ランプが点灯されて操作可能となり、その内蔵ランプ点灯時に押下することにより演出に変化をもたらすことができる押しボタンとされる。また十字キー13は遊技者が演出状況に応じた操作や演出設定等のための操作を行う操作子である。
また前枠2の上部の両側と、発射操作ハンドル10の近傍には、演出音を音響出力するスピーカ25が設けられている。
主液晶表示装置32Mでは、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。副液晶表示装置32Sも、同様に各種演出に応じた表示が行われる。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から主液晶表示装置32M及び副液晶表示装置32Sの表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また主液晶表示装置32Mの下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、主液晶表示装置32Mは、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
上始動口41及び下始動口42aの内部には、遊技球の通過を検出する検出センサ(図3に示す上始動口センサ71,下始動口センサ72)が形成されている。
この普通変動入賞装置42の下始動口42aは、図柄表示部33における第2特別図柄の変動表示動作の始動条件に係る入賞口である。そして、この下始動口42aの入賞率は可動翼片42bの作動状態に応じて変動する。即ち可動翼片42bが開いた状態では、入賞が容易となり、可動翼片42bが閉じた状態では、入賞が困難又は不可能となるように構成されている。
また右遊技領域3cの下部側には、遊技球が通過可能なゲート(特定通過領域)からなる普通図柄始動口44が設けられている。この普通図柄始動口44は、図柄表示部33における普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出するセンサ(図3に示すゲートセンサ73)が形成されている。
第1特別変動入賞装置45は、突没式の開放扉45bにより第1大入賞口45aを閉鎖/開放する構造とされている。また、その内部には第1大入賞口45aへの遊技球の通過を検出するセンサ(図3の第1大入賞口センサ75)が形成されている。
第1大入賞口45aの周囲は、右下飾り35Rが遊技盤3の表面から膨出した状態となっており、その膨出部分の上辺及び開放扉45bの上面が右流下経路3cの下流案内部を形成している。従って、開放扉45bが盤内部側に引き込まれることで、下流案内部に達した遊技球は容易に第1大入賞口45aに入る状態となる。
開放扉46bが開かれることで第2大入賞口46aが開放される。この状態では、左遊技領域3b或いは右遊技領域3cを流下してきた遊技球は、高い確率で第2大入賞口50に入ることとなる。
本実施の形態のパチンコ遊技機1においては、これら入賞口のうち、普通図柄始動口44以外の入賞口への入賞があった場合には、各入賞口別に設定された入賞球1個当りの賞球数が遊技球払出装置55(図3参照)から払い出される。
例えば、上始動口41および下始動口42aは3個、第1大入賞口45a、第2大入賞口46aは13個、一般入賞口43は10個などと賞球数が設定されている。
なお、これらの各入賞口に入賞しなかった遊技球は、アウト口48を介して遊技領域3aから排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、ゲートを遊技球が通過したりすることをいう。実際には入賞口ごとに形成されたセンサ(各入賞検出スイッチ)により遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。
発光部20bは演出用の発光動作やエラー告知用の発光動作を行う。
発光部20Z、20H、20Jは、それぞれ各種の状況提示用の発光部である。
発光部20Zは変動図柄識別用の発光動作を行う。発光部20Zは、例えば第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応して3つ設けられており、それぞれ対応する図柄について、例えば図柄変動の停止中、変動中、当たり中を識別する発光動作を行う。
発光部20Hは保留数表示用の発光動作を行う。発光部20Hは、例えば第1特別図柄変動についての保留数を最大4個まで表示し、また第2特別図柄変動についての保留数を最大4個まで表示するものとして、例えば合計8つ設けられており、その発光状態で保留数を表示する。
発光部20Jは遊技状態報知用の発光動作を行う。発光部20Jは、所要数設けられており(この例では3つ)、それぞれの発光状態で、大当たり中、確変中、時短中などを報知する。
なお、この例では発光部20Z、20H、20Jは盤側に設けられているが、発光部20Z、20H、20Jの全部又は一部が枠側に設けられても良い。
また発光部20Zを「変動図柄識別用発光部」、発光部20Hを「保留数表示用発光部」、発光部20Jを「遊技状態報知用発光部」と表記する場合がある。
さらに発光部20Z、20H、20Jを総称して「状況提示用発光部」と表記する場合がある。
次に本実施の形態のパチンコ遊技機1の制御系の構成について説明する。図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施の形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、払出制御基板53、発射制御基板54、電源基板58が設けられている。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力、可動体役物を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
発射制御基板54は、遊技者のパチンコ遊技機1に設けられている発射装置56による遊技球の発射動作の制御を行う。
電源基板58は、外部電源(例えばAC24V)からAC/DC変換、さらにはDC/DC変換を行い、各部に動作電源電圧Vccを供給する。なお電源経路の図示は省略している。
主制御部50は、CPU100(以下「主制御CPU100」と表記)を内蔵したマイクロプロセッサ、ROM101(以下「主制御ROM101」と表記)、RAM102(以下「主制御RAM102」と表記)等を搭載している。
主制御CPU100は制御プログラムに基づいて、遊技の進行に応じた各種演算及び制御処理を実行する。
主制御ROM101は、主制御CPU100による遊技動作の制御プログラムや、遊技動作制御に必要な種々のデータを記憶する。
主制御RAM102は、主制御CPU100が各種演算処理に使用するワークエリアや、各種入出力データや処理データのバッファ領域として用いられる。
なお図示は省略したが、主制御部50は、各部とのインターフェース回路、特別図柄変動表示に係る抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC(Counter Timer Circuit)、主制御CPU100に割込み信号を与える割込コントローラ回路なども備えている。
即ち、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号が主制御部50に供給される。
なお、これらのセンサ(71〜76)は、入球した遊技球を検出する検出スイッチにより構成されるが、具体的にはフォトスイッチや近接スイッチなどの無接点スイッチや、マイクロスイッチなどの有接点スイッチで構成することができる。
さらに、主制御部50には、第1大入賞口45の開放扉45bを開閉駆動する第1大入賞口ソレノイド78と、第2大入賞口46の開放扉46bを開閉駆動する第2大入賞口ソレノイド79が接続されている。主制御部50は、いわゆる大当たり状況に応じて、第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79を駆動制御して、第1大入賞口45又は第2大入賞口46の開放動作を実行させる。
主制御部50は、払出制御基板53に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信する。払出制御基板53は当該制御コマンドに応じて遊技球払出装置55を制御し、遊技球の払い出しを実行させる。
また払出制御基板53は、主制御部50に対して、払い出し動作状態に関する情報(払出状態信号)を送信可能となっている。主制御部50側では、この払出状態信号によって、遊技球払出装置55が正常に機能しているか否かを監視する。具体的には、賞球の払い出し動作の際に、玉詰まりや賞球の払い出し不足といった不具合が発生したか否かを監視している。
演出制御部51は、CPU200(以下「演出制御CPU200」と表記)を内蔵したマイクロプロセッサ、ROM201(以下「演出制御ROM201」と表記)、RAM202(以下「演出制御RAM202」と表記)を搭載し、マイクロコンピュータを構成している。
また演出制御CPU200は各種の状況提示のための制御も行う。具体的には発光部20Z、20H、20Jの発光制御である。
演出制御ROM201は、演出制御CPU200による演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM202(図4のD−RAM202a、内蔵CPU用ワークメモリ202b)は、演出制御CPU200が各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域などとして用いられる。
なお後述のように演算制御部51は、1チップマイクロコンピュータとその周辺回路が搭載されている例を示すが、演出制御部51の構成は各種考えられる。例えばマイクロコンピュータに加えて、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、ウォッチドッグタイマ(WDT)回路、演出制御CPU200に割込み信号を与える割込コントローラ回路、音響演出のための音源ICなどを備える場合もある。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う機能を指している。
画像ROMとは、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されているメモリを指す。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域である。
枠ドライバ部61は、枠側のランプ部63のLEDについて発光駆動を行う。なお、ランプ部63とは、図1に示したように枠側に設けられている発光部20wを総括的に示したものである。
盤ドライバ部62は、盤側のランプ部64のLEDについて発光駆動を行う。なお、ランプ部64とは、図2に示したように盤側に設けられている発光部20b、20Z、20H、20Jを総括的に示したものである。
モータドライバ部70は可動体役物モータ65を駆動して、盤側に設けられている可動体役物の動作を実行させる。
可動体役物モータ65は例えばステッピングモータが用いられる。
各可動体役物モータ65には原点位置が規定されている。原点位置は、例えば役物が図2の盤面に通常は表出しない位置などとされる。
各可動体役物モータ65が原点位置にあるか否かを演出制御部51側で確認できるようにするため、各可動体役物モータ65には原点スイッチ68が設けられている。例えばフォトインターラプタが用いられる。この原点スイッチ68の情報が演出制御CPU200によって検知される構成とされている。
なお、図3では図示の都合上、アンプ部67及びスピーカ25を1系統しか示していないが、実際にはアンプ部67及びスピーカ25としては、例えばLch、Rchに対応した出力チャネルがそれぞれ設けられ、ステレオによる音再生が可能とされる。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
主制御部50からの演出制御コマンドは、演出制御部51において受信バッファに取り込まれる。演出制御CPU200は、所定タイミングで受信バッファを確認し、受信されている演出制御コマンドの解析を行って、実行すべき演出制御を確定させることになる。
演出制御部51の具体的な構成例を図4に示す。
図4の例の演出制御部51は、例えば1チップマイクロコンピュータ250に対して演出制御ROM201、D−RAM202a、CG−ROM206、WDT(ウォッチドッグタイマ)回路210等が外付け接続されて構成されている。
構成各部について説明していく。
演出制御CPU200は、CPUインターフェース203を経由してマイクロコンピュータ250の内部デバイスや外部デバイスを使用する。
即ち演出制御CPU200は、CPUインターフェース203を経由してホストインターフェース204に接続され、ホストインターフェース204を介して、主制御部50からのコマンド受信、演出制御ROM201に対する読出アクセス、WDT回路210との信号送受信、及びバス251を介した内部の各部との通信を行う。
D−RAM202aは、RAMインターフェース208に接続されており、演出制御CPU200は、RAMインターフェース208を介してD−RAM202aに対する書き込みや読み出しを行う。
転送回路212は、マイクロコンピュータ250の内部リソースや外部ペリフェラルを入出力とした転送を行う。
CG−ROM206はマイクロコンピュータ250に設けられたCGバスインターフェース207に接続されている。これによりマイクロコンピュータ250内の所要部位は、CGバスインターフェース207を介してCG−ROM206にアクセスできる。
VRAM209の使用態様は設定により各種可能であるが、本例では表示用のフレームデータの記憶領域として2つのフレームバッファ209A、209Bを設定し、各フレームバッファ209A、209Bを1フレーム毎に交互に用いて描画や表示データ出力を行うようにする。
つまり図示するフレームバッファ209Aは、主液晶表示装置32用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含み、またフレームバッファ209Bは、主液晶表示装置32用のフレームバッファ領域と副液晶表示装置32S用のフレームバッファ領域を含む。
VRAM209のフレームバッファ209A、209Bにはそれぞれ、主液晶表示装置32M、副液晶表示装置32S用の一フレーム分の画像データが各々生成されるが、所定の描画コマンドによって、フレームバッファ209A、209Bの描画位置が特定される。
演出制御CPU200は、演出制御コマンドに応じて主液晶表示装置32Mや副液晶表示装置32Sで表示する画像内容を設定するディスプレイリストを作成する。このディスプレイリストとは、描画コマンドの集まりのことである。
ディスプレイリストは、描画する順番に記載された一群の描画コマンドで構成されている。描画コマンドには、一フレームのどの位置に、どのような画像を描画するかを規定するコマンドも含まれ、描画すべき画像のCG−ROM206などの記憶位置(ソースアドレス)も特定されている。
GDEC223は、描画で使用する圧縮画像データをデコードしVRAM209に展開する。
またこのときプリローダ220は、画像データの参照先を、転送後のアドレスに書換えたディスプレイリストを出力する。書換えられたディスプレイリストは、転送回路212によって描画回路225に送信される。
ここでマイクロコンピュータ250が3つの表示回路221,222,223を備えているのは、1系統のデジタルRGB出力と、2系統のLVDS(Low voltage differential signaling)出力を可能とする3画面出力対応の構成を採っているためである。本例の場合、例えばデジタルRGB出力を主液晶表示装置32Mへの表示データ出力として用い、1つのLVDS出力を副液晶表示装置32Sへの表示データ出力として用いる。
表示回路221,222,223からの表示データは、LCDインターフェース226によって選択されて外部機器、即ち主液晶表示装置32Mと副液晶表示装置32Sに出力される。
図5に表示回路221,222,223及びLCDインターフェース226のブロック図を示している。
なお、各表示回路221,222,223で用いる同期信号同士は同期させることができる。例えば主液晶表示装置32Mなどの外部ディスプレイの垂直同期信号の立ち下がりをトリガにして、表示回路221,222,223を強制的に同期させることができる。
表示回路221,222については、取得したフレームデータについてスケーラ262でのスケーリング処理、カラー補正部263でのカラー補正処理、ディザラー264でのディザリング処理を施すことが可能とされる。そしてディザラー264による処理の後の出力としてデジタルRGB出力とLVDS出力が行われる。表示回路223も同様であるが、この図の例では表示回路223はスケーラ262の機能を搭載していない例を挙げた。
デジタルRGB出力部226aには、表示回路221,222,223からのデジタルRGB出力としての表示データが供給される。デジタルRGB出力部226aは、表示回路221,222,223の1つのデジタルRGB出力を選択して、主液晶表示装置32Mに供給する。
またLVDS出力部226bには、表示回路221,222,223からのLVDS出力としての表示データが供給される。LVDS出力部226bは、表示回路221,222,223のうちで2つのLVDS出力を選択して出力することができる。本実施の形態のパチンコ遊技機1の場合、表示回路221,222,223のうちの1つのLVDS出力を副液晶表示装置32Sに供給する。
もちろんこれは一例であり、1つのLVDS出力を主液晶表示装置32Mに供給することも考えられるし、デジタルRGB出力を副液晶表示装置32Sに供給することも考えられる。
音コントローラ230は、例えば音源制御部と圧縮音声データを記憶する音データ記憶部を有し、演出制御CPU200の制御に基づいて、圧縮音声データをデコードして出力音声信号を生成し、外部のアンプ部67へ出力する。
なお、音コントローラ230の搭載の有無にかかわらず、演出制御CPU200はマイクロコンピュータ250外部の音源ICを制御して、音声信号をアンプ部67へ出力するようにしてもよい。
シリアル出力コントローラ240(ランプコントローラ241及びモータコントローラ242)からの枠ドライバ部61、盤ドライバ部62への発光駆動データの出力系及びモータドライバ部70へのモータ駆動データの出力系を図6に示す。
シリアルデータ出力チャネルch1の信号線としては、クロック信号CLKを供給するクロック線、発光駆動データ(「LED駆動データ」或いは「ランプ駆動データ」ともいう)としてのシリアルデータDATAを供給するデータ線が設けられている。これら各信号線は、それぞれ、枠ドライバ部61を構成するn個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
枠ドライバ部61の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスIDが設定されている。即ち個々のLEDドライバ90の識別子である。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をw1、w2・・・と表記する。
シリアルデータ出力チャネルch2の信号線もチャネルch1と同様、クロック信号CLKを供給するクロック線、発光駆動データとしてのシリアルデータDATAを供給するデータ線が設けられている。これら各信号線は、それぞれ、盤ドライバ部62を構成するm個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
盤ドライバ部62の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のLEDドライバ90の識別子)が設定されている。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をb1、b2・・・と表記する。
枠ドライバ部61におけるLEDドライバ90の数nは、枠側に配置されるLED系列数(発光部20wの系列数)によって決められる。従ってnは1の場合もあるし、2以上の場合もある。枠ドライバ部61は1又は複数のLEDドライバ90を有する。
また盤ドライバ部62におけるLEDドライバ90の数mは、盤側に配置されるLED系列数(発光部20b、20Z、20H、20Jの系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
LEDドライバ90は、シリアルバスインターフェース191、アドレス設定部192、データバッファ/PWMコントローラ193、D/A変換器194、駆動電流源回路195−1〜195−24を備える。
駆動電流源回路195−1〜195−24は、上記の24系列の駆動電流出力を、それぞれ電流端子196−1〜196−24から行う電流源である
なおシリアル出力コントローラ240はスレーブアドレスを指定してLED駆動データを送信してくる。
データバッファ/PWMコントローラ193は、シリアルバスインターフェース191から転送されたパラレルデータについて、スレーブアドレス確認を行う。パラレルデータに含まれるスレーブアドレスが、アドレス設定部192に設定された自己のスレーブアドレス(w1〜w(n)、b1〜b(m)のいずれか)と一致していることを確認した場合に、該パラレルデータに含まれるLED駆動データを有効なデータとして、指定されたレジスタに格納する。
D/A変換器194は、輝度情報に応じた値をアナログ信号に変換し、各電流源回路195−1〜195−24への制御信号とする。
各系列(電流端子196−1〜196−24)では、LED120及び抵抗Rの直列接続に対して電源電圧Vccが印加される。電流源回路195−1〜195−24によって各系列のLED120に電流が流され、発光が行われる。
即ち各電流源回路195−1〜195−24は、D/A変換器194から供給された信号に応じた電流量の駆動電流を、対応する系列のLED120に流すように動作する。
なお、本実施の形態では、PWM駆動方式により、電流値が例えば0mAと5mAとされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
また盤ドライバ部62におけるLEDドライバ90の数mは、盤側に配置されるLED系列数(発光部20b、20Z、20H、20Jの系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
モータドライバ部70は、p個のモータドライバ91が、シリアル出力コントローラ240のシリアルデータ出力チャネルch3に対して並列に接続されている。
シリアルデータ出力チャネルch3の信号線も同様に、クロック信号CLKを供給するクロック線、モータ駆動データとしてのシリアルデータDATAを供給するデータ線が設けられている。これら各信号線は、それぞれ、モータドライバ部70を構成するp個のモータドライバ91に対して各信号を並列に供給するように接続されている。
モータドライバ部70の各モータドライバ91には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のモータドライバ91の識別子)が設定されている。説明上、仮に、図示のように各モータドライバ91のデバイスID(スレーブアドレス)をmt1、mt2・・・と表記する。
モータドライバ部70におけるモータドライバ91の数pは、可動体役物65等に用いるモータ数によって決められる。従ってpは1の場合もあるし、2以上の場合もある。モータドライバ部70は1又は複数のモータドライバ91を有する。
図8に、モータドライバ91の電流端子196−1〜196−24の全部(又は一部)に可動体役物モータ65として例えばステッピングモータ121が接続された例を示している。
ここでは4相のステッピングモータ121に対してそれぞれ、電流端子96−1〜96−4、電流端子96−5〜96−8、・・・電流端子96−21〜96−24により駆動電流を供給する構成例を示している。
図7で上述した構成のドライバは、与えられたコマンド(シリアルデータ)によって指示される電流を電流端子196−1〜196−24から出力する回路であることから、図8のようにステッピングモータやソレノイド等の物理的可動体駆動デバイスに対するモータドライバ91としても使用することができる。
可動体役物の動作は演出シナリオによって細かく設定され、それに応じて演出制御部51は駆動方向や駆動量などを制御するわけであるが、モータドライバ部70におけるモータドライバ91を利用して可動体役物を駆動することで、ランプ部63、64の各発光部(LED20w、20b)とともにシリアルデータによる可動体役物制御が可能となり、制御処理及び構成が効率化できる。
また操作部60からのユーザの操作情報もパラレル/シリアル変換部92に入力される例を示している。ユーザの操作情報とは、演出ボタン11,12、十字キー13等の操作に応じた信号である。
パラレル/シリアル変換部260は、例えば1チップマイクロコンピュータ250とは別体のICとして演出制御部(演出制御基板)51に搭載されるが、1チップマイクロコンピュータ250に内蔵されるものでもよい。
パラレル/シリアル変換部260の動作はモータコントローラ242からの制御信号CNTによって制御される。パラレル/シリアル変換部260はクロック信号CLKを用いてシリアルデータ転送を行う。
この構成により、シリアル出力コントローラ240が、各可動体役物モータ65の原点検出状態と演出スイッチ11,12等の操作部60に対するユーザ操作をまとめて、つまり演出制御に必要な入力をまとめて効率的に検出できる。従って演出制御CPU200は効率よく演出状態を把握できる。
パチンコ遊技機1の動作の概要について説明する。
[図柄変動表示ゲーム]
パチンコ遊技機1では、所定の始動条件、具体的には、遊技球が上始動口41または下始動口42に入賞したことを条件に、主制御部50において乱数抽選による大当り抽選が行なわれる。この抽選結果に基づき、特別図柄(大当り抽選結果を報知するための識別図柄)を第1特別図柄表示部80または第2特別図柄表示部81に変動表示させて特別図柄変動表示ゲームを開始し、一定時間経過後に、その結果を特別図柄表示部(80又は81)に表示する。
なお説明上、第1特別図柄表示部80側の特別図柄変動表示ゲームを「第1特別図柄変動表示ゲーム」、第2特別図柄表示部81側の特別図柄変動表示ゲームを「第2特別図柄変動表示ゲーム」と称する。但し、第1,第2特別図柄を総称して「特別図柄」と表記し、また第1,第2特別図柄変動表示ゲームを「特別図柄変動表示ゲーム」と総称する。
大当り遊技が開始されると、最初に大当りが開始された旨を報知するオープニング演出が行われ、オープニング演出が終了した後、上記ラウンド遊技が規定ラウンド数、行われる。また、ラウンド遊技中は、各ラウンド対応するラウンド演出が行われる。そして、規定ラウンド数終了後には、大当りが終了される旨を報知するエンディング演出が行われ、これにより大当り遊技が終了する。
通常は、この保留球の発生順に、各保留球に対する変動表示ゲームが実行される。本実施の形態では、最大保留記憶個数と同数の4個を上限の所定個数として扱い、第1特別図柄、第2特別図柄に関する保留データをそれぞれ4個まで記憶し、特別図柄または普通図柄の変動確定回数として保留する。
本実施の形態のパチンコ遊技機1では、複数種類の遊技状態を発生可能に構成されている。
まず、本実施形態のパチンコ遊技機1は、主制御部50(CPU100)がその機能部を担う「確率変動(以下、「確変」と称する)機能」を備えている。これには特別図柄に係る確変機能(以下「特別図柄確変機能」と称する)と普通図柄に係る確変機能(以下「普通図柄確変機能」と称する)の2種類がある。
普通図柄確変機能は、補助当り抽選確率が所定確率(通常確率)である低確率(例えば256分の1)から高確率(例えば256分の255)に変動させて、通常遊技状態よりも有利な「補助当り確変状態」を発生させる機能である。この補助当り確変状態下では、補助当り抽選確率が高確率状態となることから補助当りが生起され易くなり、普電開放遊技が頻繁に発生して、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
なお、パチンコ遊技機1では、特別図柄の変動表示時間が保留数の違いにより短縮される場合があるが、この場合は、特別図柄時短状態が発生しているわけではなく、他の制御処理によるものである。
開放延長機能は、可動翼片42bを開動作させる期間およびその開放回数を延長した「開放延長状態」を発生させる機能である。この開放延長状態は、いわゆる「電チューサポート状態」と称される。開放延長状態下では、可動翼片42bの開動作期間(始動口開状態時間)が、例えば0.2秒から1.7秒に延長され、またその開閉回数が、例えば1回から2回に延長され、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
ここで本実施の形態では、普通図柄確変機能、普通図柄時短機能、および開放延長機能の作動開始条件は、特別図柄時短機能の作動開始条件と同じ条件としており、各機能が同じ契機にて動作することになる。
本実施の形態のパチンコ遊技機1では、特別図柄変動表示ゲームにて抽選される当りの種類、つまり大当り抽選対象となる当り種別として、「15R低ベース非確変大当り」、「15R低ベース確変α大当り」、「15R低ベース確変β大当り」、「15R高ベース確変大当り」、「2R低ベース確変大当り」、および「小当り」などの複数種類の当りが設けられている。
以下、本実施の形態の制御処理につき説明する。まずここでは主制御部(主制御基板)50によるメイン処理について述べる。
図9は、主制御部50のメイン処理を示すフローチャートである。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチ(図示せず)が操作されることなく電源がON状態になる場合と、初期化スイッチがON操作されて電源がON状態になる場合とがある。いずれの場合でも、パチンコ遊技機1に電源が投入されると、電源基板58によって各制御基板に電圧が供給される。この場合に主制御部50(主制御CPU100)は図9に示すメイン処理を開始する。
次に主制御CPU100はステップS12で、図示してない入力ポートを介して入力されるRAMクリアスイッチの出力信号であるRAMクリア信号の状態(ON、OFF)を判定する。RAMクリア信号とは、RAMの全領域を初期設定するか否かを決定する信号である。RAMクリア信号としては通常、パチンコ店の店員が操作する初期化スイッチのON/OFF状態に対応した値を有している。
続いてステップS17で主制御CPU100は、RAM領域がゼロクリアされたことを報知するための「RAMクリア表示コマンド」を初期化コマンドとして各制御基板に送信する。そしてステップS18で、RAMクリア報知タイマに、RAMクリアされた旨を報知するための時間として、例えば30秒を格納する。
その後はステップS20、S21、S22の処理として、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、各種乱数更新処理を実行する。このステップS21の各種乱数更新処理では、特別図柄変動表示や普通図柄変動表示に使用される各種乱数の初期値(スタート値)変更のために使用する乱数や、変動パターンの選択に利用される変動パターン用乱数を更新する。
なお、特別図柄変動表示や普通図柄変動表示に使用される各種乱数とは、例えばインクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数)などである。また初期値変更のために使用する乱数とは、特別図柄判定用初期値乱数、補助当り判定用初期値乱数などである。
ステップS21の各種乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどを更新して、上記各種のソフト乱数を生成する。例えば変動パターン用乱数1カウンタとして取り得る数値範囲が0〜238とすると、主制御RAM102の変動パターン用乱数1の値を生成するためのカウント値記憶領域から値を取得し、取得した値に1を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に1を加算した結果が239であれば0を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。主制御CPU100は、間欠的に実行されるタイマ割込処理を行っている間を除いて、各種乱数更新処理を繰り返し実行するようになっている。
したがって、電源投入時や停電状態からの復旧時である場合には、通常では、バックアップフラグがON状態のはずである。ただし、何らかの理由で電源遮断までに所定の処理が完了しなかったような場合には、バックアップフラグはリセット(OFF)状態になる。そこで、バックアップフラグがOFF状態である場合には、主制御CPU100は処理をステップS13からS16に進め、遊技機の動作を初期状態に戻す。
そして、チェックサム値が算出されたら、この演算結果を、主制御RAM102のSUM番地の記憶値と比較をする。このSUM番地には、電源遮断時に、同じチェックサム演算によるチェックサム値が記憶されている。そして、記憶された演算結果は、主制御RAM102の他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップS14の判定によって両者が一致するはずである。
しかし、電源遮断時にチェックサム演算が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算の実行時までの間に、ワーク領域のデータが破損している場合もある。このような場合にはステップS14の判定結果は不一致となる。
判定結果の不一致によりデータ破損が検出された場合には、主制御CPU100はステップS14からS16の処理に進んでRAMクリア処理を実行し、遊技機の動作状態を初期状態に戻す。
そしてステップS15の遊技復旧処理を終えると、ステップS19の処理に進み、CTCを初期設定してCPUを割込み許可状態に設定し、その後は、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、上述した各種乱数更新処理を実行する(ステップS20〜S22)。
このステップS53の処理により、各入賞口において入賞を検出(入賞が発生)したか否かが割込みごとに監視される。また上記「入賞カウンタ」とは、各々の入賞口ごとに対応して設けられ、入賞した遊技球数(入賞球数)を計数するカウンタである。本実施の形態では、主制御RAM102の所定領域に、上始動口41用の上始動口入賞カウンタ、下始動口42a用の下始動口入賞カウンタ、ゲート44用の普通図柄始動口入賞カウンタ、第1大入賞口45a用の第1大入賞口入賞カウンタ、第2大入賞口46a用の第2大入賞口入賞カウンタ、一般入賞口43用の一般入賞口用の入賞カウンタなどが設けられている。
またこの入力管理処理では、入賞検出スイッチからの検出情報が入賞を許容すべき期間中に入賞したか否かに基づいて、不正入賞があったか否かも監視される。たとえば大当り遊技中でないにもかかわらず第1、第2大入賞口センサ75,76が遊技球を検出したような場合は、これを不正入賞とみなして入賞検出情報を無効化し、その無効化した旨を外部に報知するべく後述のステップS55のエラー管理処理において所定のエラー処理が行われるようになっている。
エラー処理としては、例えば所定の遊技動作(例えば遊技球の払い出し動作や遊技球の発射動作など)の進行を停止させたり、エラー報知用コマンドを演出制御部51に送信して、演出手段によりエラーが発生した旨を報知させたりする。
この払出制御コマンドを受信した払出制御基板53は、遊技球払出装置55を制御し、指定された賞球数の払い出し動作を行わせる。これにより、それぞれの入賞口に対応した賞球数が払い出されるようになっている。入賞口に対応した賞球数とは、入賞口別に設定された入賞球1個当りの所定の賞球数×入賞カウンタの値分の賞球数である。
ステップS59では、主制御CPU100は、特別図柄管理処理を行う。この特別図柄管理処理では、主に、特別図柄変動表示における大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、変動開始時の変動パターン)や特別停止図柄などを決定する。
ステップS60では、主制御CPU100は特別電動役物管理処理を行う。この特別電動役物管理処理では、主に、大当り抽選結果が「大当り」または「小当り」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行う。
右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、演出制御コマンドとして、右打ち報知演出の実行指示する「右打ち指示コマンド」が演出制御部51に送信され、このコマンドを受けて、演出制御部51が、画像や音声による右打ち報知の実行制御を行う。
ステップS62では、主制御CPU100は、LED管理処理を行う。このLED管理処理は、図柄表示部33に対して普通図柄表示や第1,第2特別図柄表示のための表示データを出力する処理である。この処理により、普通図柄や特別図柄の変動表示および停止表示が行われる。なお、ステップS57の普通図柄管理処理で作成された普通図柄の表示データや、ステップS59の特別図柄管理処理中の特別図柄表示データ更新処理で作成される特別図柄の表示データは、このLED管理処理で出力される。
ステップS64では、主制御CPU100は、ソレノイド管理処理を行う。このソレノイド管理処理では、ステップS58の普通電動役物管理処理で作成されたソレノイド制御データに基づく普通電動役物ソレノイド77に対する励磁信号の出力処理や、ステップS60の特別電動役物管理処理で作成されたソレノイド制御データに基づく第1,第2大入賞口ソレノイド78,79に対する励磁信号の出力処理を行う。これにより、可動翼片42bや開放扉45b、46bが所定のパターンで動作し、下始動口42aや大入賞口45a、46bが開閉される。
コマンドの例として、特別図柄変動表示ゲームの当落抽選にかかる変動パターンコマンド、入賞時コマンドの一部を図11Aに示し、また図柄指定コマンドの一部を図11Bに示している。
変動パターンコマンド、入賞時コマンドは、上位バイトと下位バイトで変動パターンの種別が規定され、外れ/当たりに応じて上位バイトが異なるように構成されている。
図柄指定コマンドは、上位バイトで第1、第2特別図柄が示され、下位バイトで当たりの種別が指定される構成となっている。
続いて演出制御部51の処理について説明するが、まず演出制御のためのシナリオデータの構造例について述べる。
シナリオ登録情報の構造を図12、図13で説明する。図12Aは、メインシナリオ及びサブシナリオとしてのシナリオ登録情報の構造を示している。このシナリオ登録情報は演出制御RAM202(例えば内蔵CPU用ワークメモリ202b)に設けられたワークエリアを用いて設定される。
本実施の形態ではシナリオ登録情報は、シナリオチャネルsCH0〜sCH63の64個のチャネルを有するものとされる。各シナリオチャネルsCHに登録されたシナリオについては同時に実行可能とされる。
待機時間(delay)は、シナリオチャネルsCHに登録してからそのシナリオが開始されるまでの時間を示す。なおこの待機時間(delay)は所定の処理タイミング(例えば後述の図16のステップS104)で1減算される。待機時間(delay)が0の場合に、登録されたデータに対応した処理が実行されることとなる。
なお、メインシナリオタイマ(msTm)の値はメインシナリオの開始時から、所定の処理タイミング(例えば後述の図16のステップS104)で+1される。
各シナリオ番号のシナリオテーブルは、或る行におけるメインシナリオタイマ(msTm)の時間を経過すると、次の行へ進むことになる。各行の時間データは、その行が終わるタイミングを示している。
例えばシナリオ番号2の場合、タイマ値“1500”の時間としてサブシナリオ番号2の動作が指定され、次のタイマ値“500”の時間としてサブシナリオ番号20の動作が指定され、次のタイマ値“2000”の時間としてサブシナリオ番号21の動作が指定されている。その次の行はシナリオデータ終了コードD_SEENDである。シナリオデータ終了コードD_SEENDの場合、シナリオ登録情報(ワーク)から、このシナリオが削除される。
本実施の形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
上述のメインシナリオタイマ(msTm)と、テーブルの時間データを比較して、一致した場合に、そのラインのランプナンバが、図12Bのランプデータ登録情報に登録される。登録されるランプチャネルdwCHは、当該ラインに示されたチャネルとなる。
例えば、上述の或るシナリオチャネルsCHにおいて、図14に示したシナリオ番号2が登録され、サブシナリオ番号2が参照されるとする。図15Aに示したランプサブシナリオ番号2では、1ライン目に時間データ(time)=0としてランプチャネル5(dwCH5)及びランプナンバ5が記述されている。この場合、メインシナリオタイマ(msTm)=0の時点で、まず当該1ライン目の情報が図12Bのランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=5として登録される。シナリオ登録情報のサブシナリオ実行ラインlmp(lmpIx)の値は、次のラインの値(2ライン目)に更新される。これはランプチャネルdwCH5という比較的低い優先度で、点灯ナンバ5の点灯パターン動作の実行を行うための登録となる。
2ライン目については、メインシナリオタイマ(msTm)が“500”となった時点で同様の処理が行われる。即ちランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=6(つまり点灯ナンバ6の点灯パターンの指示)が登録される。
なお、時間データ(time)が連続する2ラインで同一の値であったら、その各ラインについての処理は同時に開始されることとなる。
後述するランプ駆動データ作成処理では、このように更新されるランプデータ登録情報に基づいて、ランプ駆動データが作成される。
本実施の形態では、モータデータ登録情報は、例えば8個のモータに対応してモータチャネルmCH0〜mCH7の8個のチャネルを有するものとされる。
各モータチャネルmCHに登録できる情報としては、図示のように、実行動作ナンバ(no)、登録動作ナンバ(noNew)、動作カウント(lcnt)、励磁カウンタ(tcnt)、実行ステップ(step)、動作ライン(offset)、親(移行元)/子(移行先)の属性(attribute)、親ナンバ(retNo)、戻りアドレス(retAddr)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、エラーカウンタ(errCnt)、現在の入力情報(currentSw)、ソフト上のスイッチ情報(softSw)、ソフト上のカウント(softCnt)がある。
モータのデータ(モータ0〜3,4〜7)は、モータ1個につき1バイトでモータの動作パターンの番号(後述する図21のモータ動作テーブルの番号)を示すように構成されている。モータ番号に対応するモータチャネルの登録動作ナンバ(noNew)及び実行動作ナンバ(no)に動作パターンの番号がセットされる。
後述する図20のステップS202では、このモータデータ登録情報の更新が行われ、ステップS203では、モータデータ登録情報の更新に基づいて、モータ駆動データが作成される。
本実施の形態では、音データ登録情報は、音チャネルaCH0〜aCH15の16個のチャネルを有するものとされる。
各音チャネルaCHに登録できる情報としては、図示のように、ボリューム遷移量(frzVq)、ボリューム(frzVl)、遷移量変化(rsv2)、ボリューム変化(rsv1)、フレーズ変化(rsv0)、ステレオ(frzSt)、ループ(frzLp)、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)がある。
この音サブシナリオテーブルに関しては、サブシナリオタイマ(scTm)が0になったら(なお最初は0である)、この音サブシナリオテーブルの時間データ(time)の値をサブシナリオタイマ(scTm)にセットする。なお、各ラインの時間データ(time)は、当該ラインが終了するタイミングを示している。サブシナリオタイマ(scTm)には、絶対時間を記述するが、従って、セットする時間データ値は、(当該ラインの時間データ)−(前回ラインの時間データ)の値である。
当該ラインのBGMのデータは、BGMのフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音データ登録情報における音チャネルaCH0(ステレオの場合は加えてaCH1)にセットされる。
当該ラインの予告音のデータは、予告音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH2〜aCH14の空いているところにセットされる。
当該ラインのエラー音のデータは、エラー音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH15にセットされる。
音コントロールのデータは、下位6バイトでチャネル情報、上位2バイトでコントロール情報とされている。
後述する図16のステップS133では、シナリオ更新処理及び更新された音データ登録情報に基づいて、再生出力制御が行われる。
演出制御CPU200は、遊技機本体に対して電源が投入されると図16の処理を開始する。演出制御CPU200は、まずステップS100で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、インターフェース系の初期化、割込設定、外部メモリの初期化、WDT初期化、可動体役物の起点復帰処理及び制御の初期化、音源制御初期化、シリアル出力コントローラ240の初期化、スケジューラ(シナリオスケジューラ、デバイススケジューラ、ランプスケジューラ、サウンドスケジューラ)の初期化、システムタイマの初期化、液晶制御初期化等を行う。
なお各スケジューラは、上述のシナリオ登録情報、モータデータ登録情報、ランプデータ登録情報、音データ登録情報のこと、もしくはこれらに基づいたシナリオ制御の進行を指す。初期化処理としては、これらシナリオ登録情報等を記憶するワーク領域を初期化する。
特に本実施の形態では、演出制御CPU200は、液晶制御も同時に行うために、ステップS101以降の処理を、表示データのフレームタイミングを監視しながら実行する。本例では特に表示制御に用いる同期信号であるVブランク信号に基づく制御を行う。Vブランク信号等の表示データの同期信号は、1チップマイクロコンピュータ250内のVDP機能を実現する部位で生成される。例えば同期信号生成部265で生成される。なお、本実施の形態では、表示画像の1フレーム期間である1/30秒(33.3ms)の間においてVブランク信号が2回発生される。
演出制御CPU200は、Vブランク信号に応じてVブランク割込カウンタをカウントアップするため、Vブランク割込カウンタは1/60秒(16.6ms)毎にカウントアップされることになる。
なお当然、演出制御CPU200の個々の処理はVブランク信号の周波数よりも極めて高い周波数の処理クロックに基づいて行われる。図16の各処理は、Vブランク信号に応じてフレーム開始から終了までの期間を把握しながら行われるもので、フレーム開始時点では、処理はステップS103〜S106が1回行われ、その後はVブランク割込カウンタの値によって1フレーム期間の終了が確認されるまでの期間、ステップS121〜S143がくり返し行われる。1フレーム期間の終了を検知した時点でステップS150〜S151が行われる。
ステップS102で演出制御CPU200は、フレーム更新フラグを確認する。フレーム更新フラグは、スケジューラ更新等をフレーム期間で管理するためのフラグである。
表示データの或るフレームの開始時点ではフレーム更新フラグはオフとされている(フレーム終了時に後述するステップS151でオフとするため)。
従ってフレーム開始タイミングでは、演出制御CPU200はステップS102からS103に進む。
そして演出制御CPU200はステップS105でフレーム更新フラグをONにする。これは、現在のフレームにおいてシナリオのタイマ進行を行ったことを示す情報となる。
また演出制御CPU200はステップS106でスケジューラ更新フラグをオフとする。これは、スケジューラ更新、つまりタイマ進行に伴ったシナリオ内容(シナリオ登録情報、ランプデータ登録情報、音データ登録情報)の更新がまだ行われていないことを示す情報となる。
そしてステップS101に戻る。演出制御CPU200はWDT回路210のクリアを行った後、ステップS102ではフレーム更新フラグはONになっているためステップS120に進むことになる。
Vブランク割込カウンタはステップS150でフレーム終了時にクリアされるとともに、1フレームに2回インクリメントされる。従ってVブランク割込カウンタ=0はフレームの前半期間を、またVブランク割込カウンタ=1はフレームの後半期間を示すことになる。フレーム終了時のVブランク信号でVブランク割込カウンタ=2となる。
演出制御CPU200は、Vブランク割込カウンタが“0”又は“1”であるフレーム期間中は、ステップS121〜S143を可能な回数、繰り返すようにステップS120からS121に進む。
現在、Vブランク割込カウンタ=0、つまりフレーム前半であれば、ステップS122に進んで、主制御部50からの受信コマンドを確認する。つまりコマンド用の受信バッファに1つ以上の受信コマンドが記憶されているか否かを確認する。受信コマンドがなければステップS130に進む。
1又は複数の受信コマンドがあれば演出制御CPU200はステップS123でコマンド解析処理を行う。
そして演出制御CPU200はステップS124でスケジューラ更新フラグをオフにする。なお、このステップS124でスケジューラ更新フラグのオフとすることは、現在のフレーム期間中において、以前に一旦ステップS131でスケジューラ更新フラグをオフにした後であっても、コマンド受信があった場合は再びオフにするという意味を持つ。
上記のように演出制御CPU200は図16のステップS122で、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを確認し、演出制御コマンドが格納されていればそのコマンドを図18の処理で読み出すことになる。
演出制御CPU200は、まず図18のステップS301で、コマンド受信バッファの読み出しアドレスを示すリードポインタと、書き込みアドレスを示すライトポインタの確認を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は図19で後述する。
図19Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず図19AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、ランプ部63,64におけるLEDの消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄指定コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、図柄変動フラグをセットする。図柄変動フラグは、第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応してそれぞれ設けられ、それぞれのフラグで変動状態を表すものとされる。例えば各2ビットの第1特別図柄変動フラグFZ1、第2特別図柄変動フラグFZ2、普通図柄変動フラグFZ3が用意され、それぞれについて変動中、停止中(当たり)、停止中(外れ)が示される。ここでは変動開始に伴い、対応する図柄変動フラグ(FZ1,FZ2,FZ3のいずれか)を、「変動中」を示す値にセットする。
なお図柄変動フラグは、当たりの場合は、図柄変動終了時に所定時間「停止中(当たり)」を示す値にセットされ、その後、図柄変動が開始されるまで「停止中(外れ)」を示す値にセットされる。
ステップS335で演出制御CPU200は、変動開始処理を行う。その後、変動開始に応じてステップS336で変動パターンコマンドの削除を行う。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
以上のコマンド受信に応じた処理としての図16のステップS122〜S124の処理は、Vブランク割込カウンタ=0の期間のみ実行開始される。
そしてステップS131でフレーム更新フラグをオンとする。
スケジューラ更新フラグはフレーム開始直後のステップS106でオフとされるため、現在のフレーム期間で最初にステップS130の処理に進んだときに、ステップS131〜S134の処理を行うことになる。またステップS124でスケジューラ更新フラグがオフとされるため、コマンド受信があった場合もステップS131〜S134の処理を行う。
ステップS133で演出制御CPU200はサウンドスケジューラ実行及び出力の処理を行う。これは、シナリオテーブルで指定される音サブシナリオに応じた音データ登録情報の更新処理、及び音データ登録情報に基づいた音制御信号の出力処理である。演出制御CPU200は音コントローラ230に対して、現在のシナリオ進行に応じた音出力を実行させる。
これはシナリオテーブルで指定されるランプサブシナリオに応じたランプデータ登録情報の更新処理である。
例えば演出制御CPU200はランプチャネルdwCH0〜dwCH15のそれぞれについて次の処理を行う。まずメインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間が、時間データ(time)以上となっていたら、そのラインについての処理を行う。
例えばまず、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを判断する。ランプシナリオデータ終了コードD_LSENDが記述されたラインではなければ、演出制御CPU200は、当該ラインに記述されているランプチャネルdwCH及びランプナンバを取得し、取得したランプチャネルdwCHに点灯パターンナンバの登録を行う。
またそのランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。またサブシナリオ実行ラインlmp(lmpIx)の値を+1する。以上により、ランプデータ登録情報としては、実行すべきランプ演出動作が登録された状態に更新される。
ステップS141では、演出制御CPU200はランプ駆動データの作成を行う。即ちランプデータ登録情報の各ランプチャネルdwCHに登録されている情報に基づいて実際にシリアル出力コントローラ240から枠ドライバ部61及び盤ドライバ部62に出力するランプ駆動データを生成する。
そしてステップS142で、生成したランプ駆動データをシリアル出力コントローラ240に転送し、シリアルデータとして出力させるように制御する。
ステップS143では演出制御CPU200はキーイベント処理を行う。そしてステップS101に戻る。
ステップS141,S142のランプ駆動データの作成及び出力の処理は、Vブランク割込カウンタ=0のときのみに実行が開始される。即ちフレームの前半の期間のみこれらの処理が開始されることになる。
ここでは演出制御CPU200は、描画完了待ちの処理、Vブランク割込カウンタのクリア、表示画面の切替、プリロード完了待ち、描画開始等の処理を行う。
ステップS171で演出制御CPU200は描画の完了を待機する。これは次のフレーム期間に表示する画像の描画完了を待機するものである。
前述のようにVRAM209にはフレームバッファ209A、209Bが用意され、表示回路221等が一方の表示データを読み出して表示させているフレーム期間には、他方のフレームバッファに、次のフレームの表示データの描画が行われる。この描画が完了していることをステップS171で確認する。
そこで、描画完了待機が発生した場合、その待機時間をカウントして、待機時間によっては、1フレーム期間にアクセスされる描画数を減らすなどの変更を行うようにしてもよい。
また、多少(1ms程度)の待機であれば、次のフレームの処理が少し遅れるだけであるため、特に問題はないというようにしてもよい。
なお、いつまで待っても描画が終わらない場合、演出制御CPU200の処理についてWDT回路210によるリセットがかかる。
そしてステップS173で表示画面のスワップを行う。即ちVRAM209にはフレームバッファ209A、209Bについて、表示データを読み出すフレームバッファの切替を行う。
なお、Vブランク割込カウンタ=2となったことで無条件にフレームバッファ切替を行うことも考えられるが、本実施の形態の場合、ステップS171で描画完了確認を行ってからフレームバッファ切替が行われる。このため、表示回路221等に転送される表示データは、正しく描画が完了した表示データとなる。つまり、描画が垂直同期信号の2回目の時点までに終わらなかったら描画中のフレームバッファの表示データを表示させてしまうようなことは生じない。
プリロードは通常は、1フレーム期間内に終了するように設計されているが、このステップS174で確認している。
なお、多少プリロードが遅れたとしても、上記のステップS173で既に次のフレームの表示データの出力は開始されるため、大きな問題とはならない。
その後ステップS175でプリロードされたディスプレイリストを、ステップS173で表示データ読み出し対象に切り替えられたフレームバッファとは逆のフレームバッファに書き込む処理を行う。
演出制御CPU200はステップS200で、WDTパルス生成処理を行う。WDT回路210はこのWDTパルスにより1ms毎のカウントを行う。
ステップS201で演出制御CPU200は、モータ、ソレノイドのセンサ更新処理を行う。これは上述した原点スイッチ68としての各センサ68Sの情報を検知する処理である。
即ち演出制御CPU200は、フレーム期間に比べて約1/30の時間間隔である1ms毎に、モータ動作制御を行っている。
この構造により1つの行(1つの制御項目)が1つの制御処理を規定する情報とされ、原則的には各行の処理が順次行われるという形式で一連の動作パターンが指定される。
動作系オプションの場合、スピード(SPEED)はモータ駆動スピードを示す指示値とされ、またステップ(STEP)はモータ動作範囲(ステッピングモータのステップ数)を示す指示値とされる。
一方、非動作系オプションの場合、スピード(SPEED)は次に移行する行(進行行数)やリンク先、ループ回数など、次の処理を指定する指示値とされる。ステップ(STEP)は通常は使用されない。
このように指示値であるスピード(SPEED)は、動作系オプションと非動作系オプションとで共有されるが、その指示内容の意味は異なるものとなっている。
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・・・逆転動作:ボタン押下時動作、非押下時停止
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・・・チェック終了:原点チェックを行い、原点でなければエラー
例えば図21Aのモータ動作テーブル1では、初期動作処理としての動作パターンが規定されている。この動作パターンは次のようになる。
1行目のsys_ck1(システムチェック1)では、原点内にいるか否かをチェックする。
原点内であれば、スピード(SPEED:この場合、進行行数)で指定される「7」行先のlink(リンク命令)に移行する。
原点外であれば次の行である2行目に移行する。2行目ではccw_on(逆転動作)により原点に向けて移動される。ここではスピード(SPEED)で指定される「6」により、動作カウント(lcnt)(図16C参照)の6カウント間隔で1ステップの駆動が、ステップ(STEP)で示される「8」回行われる。なお動作カウント(lcnt)は1ms毎に更新されるため、この2行目の動作は、ステッピングモータを、6msに1ステップの速さで8ステップ分、原点に向けて戻すように駆動するものとなる。
なお、従って動作系オプションの場合、1行の処理に要する時間は、SPEED×STEP×1msとなる。
原点内であれば、スピード(SPEED:この場合、進行行数)で指定される「2」行先の6行目のccw_all(逆転動作)に移行する。
原点外であれば次の行である5行目のlink(リンク命令)に移行する。この5行目のlink(リンク命令)では、モータ動作テーブル71(図21B)が指定されているため、モータ動作テーブル71のリトライ動作を実行することになる。モータ動作テーブル71のリトライ動作が通常終了(nor_end)したら、この5行目のlink(リンク命令)が終了したことになり、次の6行目に進む。
さらに次の7行目では、同じくccw_all(逆転動作)として、ステッピングモータを、6msに1ステップの速さ(低速)で8ステップ分、原点に向けて戻すように駆動する。
この6行目、7行目は、原点内であることの確認後に、さらに押し込む動作となり、この押し込み動作は高速→低速の2段階で行われる。
モータ動作テーブル72では往復動作としての動作パターンが規定されており、これが通常終了(nor_end)したら、モータ動作テーブル1の8行目のlink(リンク命令)が終了したことになり、次の9行目に進む。9行目はnor_end(通常終了)とされており、ここでモータ動作テーブル1としての初期動作処理が終了される。
説明は省略するが、図21B、図21C、図21Dのモータ動作テーブルや、図示しない他の多数のモータ動作テーブルも、各行で、オプション(OPT)、スピード(SPEED)、ステップ(STEP)に基づいて動作が指定されて、一連の動作パターンが規定される。
図21Bはリトライ動作のためのモータの動作パターン、図21Cは往復動作のためのモータの動作パターン、図21Dは役物を「出現→10回揺動→戻る」という動作をさせるためのモータの動作パターンを、それぞれ示したモータ動作テーブルの例である。
この場合、登録動作ナンバ(noNew)に、モータサブシナリオテーブルに記述されていたモータ動作テーブル番号を書き込む。実行動作ナンバ(no)は、実際に実行される際にモータ動作テーブル番号(動作パターンの番号)に更新されるもので、この時点では「0」をセットする。
これによりモータデータ登録情報(ワーク)の各モータチャネルmCHに、モータサブシナリオテーブルの内容に応じて、モータ動作テーブルの番号が登録されることになる。
例えばモータデータ登録情報のモータチャネルmCH0〜mCH7に対応しているモータMT(n)(n=0〜7)のそれぞれに関して概略、次のような処理が行われる。
なお、以降の説明では、モータ動作テーブルのオプション(OPT)に記述されたデータを「D_OPT」、スピード(SPEED)に記述されたデータを「D_SPEED」、ステップ(STEP)に記述されたデータを「D_STEP」と表記する。
また演出制御CPU200は、当該モータチャネルmCHnの動作カウント(lcnt)、動作ライン(ofset)、実行ステップ(step)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、親ナンバ(retNo)、戻りアドレス(retAddr)、エラーカウンタ(errCnt)をそれぞれ0にセットする。また親(移行元)/子(移行先)の属性(attribute)に、親を示す「5A」の値をセットする。
以上は、登録したモータ動作テーブルに基づく制御が開始されるときの処理となる。
演出制御CPU200は、モータMT(n)、実行動作ナンバ(no)、動作ライン(ofset)に対応するモータ動作テーブルのデータを取得する。
即ち実行動作ナンバ(no)で示されるモータ動作テーブルにおける、動作ライン(ofset)で示される行のデータ「D_OPT」「D_SPEED」「D_STEP」を取得する。最初は動作ライン(ofset)=0とされているため、指定されたモータ動作テーブルの先頭の行のデータ「D_OPT」「D_SPEED」「D_STEP」を取得する。例えば仮に実行動作ナンバ(no)=72とされていたとしたら、図21Cのモータ動作テーブル72の先頭行の「cw_off」「6」「8」を「D_OPT」「D_SPEED」「D_STEP」として取得することになる。
非動作系オプションのデータであったら、その非動作系オプションに応じた処理を行う。例えば上記の「sys_ck1」「roop_s」等で指定される処理を行う。
動作系オプションの場合、「D_SPEED」の値は、ステッピングモータの1ステップ駆動の間隔を示している。仮に「D_SPEED」=6としたら、6回に1回、1ステップ駆動を行う。動作カウント(lcnt)は、最初にステップS1604で「0」とされた後、インクリメントされる値であり、つまり1msタイマ割込処理毎に+1される。
従って、動作カウント(lcnt)=「D_SPEED」−1となったら、励磁出力データの更新タイミングとなる。
励磁出力データの更新タイミングとなっていたら、演出制御CPU200はモータデータ登録情報上で実行ステップ(step)を+1する。実行ステップ(step)は、モータ動作テーブルから取得した「D_STEP」で示されるステップ回数に達したか否かをカウントする変数となる。そして「D_OPT」で示される動作系オプションに応じた処理、例えば「cw_all」「cw_on」・・・として示した動作のための処理を行う。
そして演出制御CPU200は、ステップS203で、各モータチャネルmCHnについて、指定されているモータ動作テーブルの行の内容に応じたモータ駆動データを生成し、シリアル出力コントローラ240から出力されるように制御する。
なお、図4,図8に示したように、センサ68sの検出情報と演出ボタン11,12、十字キー13の操作情報は、シリアル入力データとして検知することができる。そこで、キー入力処理は、ステップS201でセンサ68sの検出情報と同時に確認するようにしてもよい。これにより検出処理を効率化できる。
図22に表示データのフレーム期間毎の各種タイミングを示している。
表示データの各フレームをフレームFR0、FR1、FR2・・・とする。例えば時点T0〜T1にフレームFR0の表示、時点T1〜T2にフレームFR1の表示が行われる。
Vブランク割込カウンタの値は、図16のステップS150(図17のS172)でクリアされるため、図示のようにフレーム開始時点で“0”、フレーム中間の時点(時点T0m、T1m等)で“1”となり、“2”となった直後にクリアされる。
もし、例えば時点T0に開始された描画が時点T1において完了していないとすると、図17のステップS171で完了が待機されることになる。
もし、例えば時点T0に開始されたプリロードが時点T1において完了していないとすると、図17のステップS174で完了が待機されることになる。プリロードが多少遅れると、それによって描画の開始が多少遅れることになる。
ここで矢印SLで示すフレーム期間中は、くり返しステップS121〜S143の処理が行われる。
但し、受信コマンド処理(S122〜S124)は、矢印CAとして示すフレーム前半期間のみ実行される。これらはVブランク割込カウンタ=0のときのみ実行されるためである。
受信コマンドの解析処理は、図18,図19のような処理となるが、これは比較的処理負担の重い処理となるとともに、受信コマンド数によって処理も多くなる。コマンド種類によっては演出のための抽選等も行う必要が生ずる。本実施の形態では、このような処理をフレーム前半期間にのみ行うものとしている。
なお、このためコマンド信号に関しては、例えば時点T0m〜T1mとして破線で示す期間に受信されたコマンド信号については、時点T1〜T1mの期間にコマンド解析が行われることになる。
これにより、ランプ駆動データの作成及び出力によって、フレーム終了タイミングに対してフレーム終了処理(S150)が遅れることを防止している。
なおステップS142のランプ駆動データ出力が、フレーム後半期間で行われないことによっては、シリアル出力コントローラ240からのランプ駆動データの出力が行われないことが想定されるが、その場合、LEDドライバ90は直前のランプ駆動データを維持しているため、直前の発光動作が実行されることになる。
第2の実施の形態の演出制御CPU200の処理を図23に示す。これは図16のステップS142のランプ駆動データ出力制御を、ステップS144として示すタイミングで行うように変更した例である。つまりフレームの前半/後半に関わらず、ランプ駆動データの出力は実行する処理例である。
但しステップS141のランプ駆動データの作成は、フレーム後半期間では行われないので、フレーム後半期間では、直前のフレーム前半期間に作成されたランプ駆動データがくり返し出力されることになる。
なお第2の実施の形態の他の処理は図16〜図20で説明したものと同様である。
第3の実施の形態の演出制御CPU200の処理を図24に示す。
電源投入後、演出制御CPU200はステップS300で各種初期設定を行った後、ステップS301以降の処理をくり返し行う。
ステップS302で演出制御CPU200はコマンド解析処理を行う。例えば具体的には図18、図19で説明した処理である。
ステップS303で演出制御CPU200はシナリオ管理処理を行う。このシナリオ管理処理は、図16のステップS104,S132の処理を指す。
ステップS304で演出制御CPU200は描画更新処理を行う。これは図16のステップS103のディスプレイリスト作成やプリロード実行開始の制御である。
ステップS306で描画完了待ち及びプリロード完了待ちを行う。描画の完了待ちとは、直前のステップS312で開始された、次のフレームの表示データの描画の完了待ちのことである。プリロードの完了待ちとは、直前のステップS304で開始した、2つ先のフレームの描画のためのプリロードの完了待ちのことである。
そして生成したランプ駆動データをシリアル出力コントローラ240に転送し、シリアルデータとして出力させるように制御する。
・コマンド解析処理をフレームの開始直後に1回行う(S302)。
・シナリオ管理後に即座にサウンド管理(S305)を行う。
・シナリオ管理として、図16のスケジューラフレーム更新とシナリオスケジューラ実行処理をまとめて1回行っている。
・描画やプリロードの完了待ちを行ってから(S306)、ランプデータ作成/出力(S309)を行う。
・フレーム期間終了となるまで待機される(S310)ため、ステップS301〜S312が1フレーム期間に1回行われる。従って、音データ出力(S305)やランプデータ作成/出力(S309)は、1フレームに1回行われる。
なお、モータ制御に関しては、図20のように例えば1ms毎の割込処理で行われる。
表示フレーム、Vブランク割込カウンタの値、描画回路の描画、プリローダのプリロード処理のタイミングは図22と同様となる。
これにより、ランプ駆動データの作成及び出力によって、フレーム終了タイミングに対してフレーム終了処理(S311、S312)が遅れることを防止している。
なおステップS309のランプ駆動データ出力が、フレーム後半期間で行われないことによっては、シリアル出力コントローラ240からのランプ駆動データの出力が行われないことが想定されるが、その場合、LEDドライバ90は直前のフレームのランプ駆動データを維持しているため、直前の発光動作が引き続き実行されることになる。
なお、このためコマンド信号に関しては、例えば時点T1〜T2として破線で示す期間に受信されたコマンド信号については、時点T2の直後にコマンド解析が行われることになる。
以上の実施の形態のパチンコ遊技機1によれば演出制御のための処理を効率化でき、適正な演出制御を実現できる。
また演出制御処理負荷を軽減することができる。
フレーム終端側期間は、フレーム期間内でフレーム開始時点から所定時間経過した後、そのフレームが終了するタイミングまでの期間である。例えば1フレーム期間を前半と後半に分けた場合の後半期間である。本実施の形態では、このフレーム終端側期間において発光制御のための処理の全部又は一部をスキップすることとしている。
例えば第1の実施の形態の場合、フレーム終端側期間には図16のステップS141,S142のランプ駆動データ作成とランプ駆動データ出力の処理を開始しない。
第2の実施の形態の場合、フレーム終端側期間には図23のステップS141のランプ駆動データ作成の処理を開始しない。
第3の実施の形態の場合、フレーム終端側期間には図24のステップS309のランプ駆動データ作成とランプ駆動データ出力の処理を開始しない。
これにより、表示手段の画像表示とともに行う各種演出等のための制御が、次のフレームに間に合わなくなるようなことを防止する。従ってフレーム開始タイミングを検知し、フレーム期間に合わせて各種演出制御を行う場合に、演出制御部51(特に1チップマイクロコンピュータ250)の処理負担を増大させない処理手順を提供できる。
そして表示画像のフレームタイミングに合わせた演出制御の遅れを回避し、適切な演出動作を実現できる。
特に実施の形態では制御手段(演出制御部51)が表示手段の制御も行う。この場合、発光演出のための処理を表示制御(つまりフレーム期間)に合わせることで、処理の効率化や、タイミング制御及びそのためのレジスタ構成の簡易化等ができるが、場合によっては、フレーム終了直前などに行われた発光演出等の処理がフレーム期間内に終了しないこともあり、それによって処理が遅れることも想定される。そこでフレーム終端側期間に発光制御を行わないことで、このような事態が生ずることを解消できる。
なお、発光演出の全部一部をフレーム後半期間にスキップさせるのは、LED発光動作が、16.6msの期間において直前の発光動作のままとなっても、大きな影響は生じないことにもよる。この発光演出の制御に対して、音演出や可動役物演出についてはフレーム後半期間であってもスキップさせないということも、適切な演出の実現のうえで意味がある。つまりフレーム後半期間に発光演出の全部一部をスキップし、ステップS133の音演出処理やステップS202,S203のモータ制御(可動体役物演出処理)はスキップさせないことは、演出効果を保ったままフレーム終了タイミングまでの処理の遅れを解消できるという点で有効となる。
発光演出のための制御としては、演出シナリオ管理、演出シナリオに従った演出内容の進行(更新)、実行する演出内容に応じた制御データの取得、その制御のための駆動データの生成、駆動データの出力などがある。このうち少なくとも発光駆動データ(ランプ駆動データ)の生成はフレーム終端側期間に実行しないようにしている。
発光駆動データ作成を行わないことでフレーム後半期間の処理負担を削減し、フレーム切替タイミングに間に合わなくなることを防止する。これによりフレームタイミングでの演出制御に支障が無いようにできる。
なお発光駆動データの出力は行ってもよく、その場合、直前の駆動データによって点灯が行われるが、上述したように、実際の動作上、問題は発生しない。
発光駆動データのシリアル送信出力は比較的時間を要する処理となり、フレーム後半期間に実行すると、フレーム切替タイミングまでに終了しない可能性が高い。そこで、これをフレーム終端側期間において実行しないようにすることで、次のフレームに間に合わなくなるようなことを防止する。
このようにすることで、上述のフレーム後半の処理負担を軽減する効果をより発揮できる。特に実施の形態の場合、ステップS104のシナリオスケジューラフレーム更新として、シナリオのタイマ進行を行っている。つまりシナリオは1フレーム毎に必ず1タイミングずつ進行する。従ってランプ演出のシナリオの進行は確保されており、ステップS134が実行されない場合が生じても、シナリオの進行が遅滞して適切な演出ができなくなるということはない。
またステップS134,S141,S142が行われない期間でも、LEDドライバ90は直前の発光駆動データによりLED120を駆動しているため、遊技者にとって違和感のある発光状態とはならない。
もちろん第1,第2の実施の形態においても、ステップS104でシナリオのタイマ進行を行っているため、シナリオは1フレーム毎に必ず1タイミングずつ進行し、ランプ演出のシナリオの進行は確保される。このためシナリオの進行が遅滞することはない。
フレーム前端側期間とは、フレーム期間内でフレーム開始時点から所定時間経過するまでの期間である。例えば1フレーム期間を前半と後半に分けた場合の前半期間である。
受信したコマンドについては、解析処理を行って、その解析結果により演出内容が決められることになるが、このコマンドの解析処理は、フレーム前端側期間においてのみ開始し、フレーム開始から所定時間経過後は、解析処理を開始しないようにしている。
これにより、表示手段の画像表示とともに行う各種演出等のための制御が、次のフレームに間に合わなくなるようなことを防止する。解析処理は、受信したコマンド内容の把握やコマンドの内容に応じた対応処理を含むなど、比較的負担の大きい処理である。そこで、次のフレーム開始タイミングに間に合うように、フレーム前端側期間であるときのみ、このコマンド解析を開始するようにする。
従ってフレーム開始タイミングを検知し、フレーム同期で各種演出制御を行う場合に、処理負担を増大させない処理手順を提供できる。
特に演出制御部51が表示手段の制御も行う場合、発光演出のための処理を表示制御、即ちフレーム同期することで、処理の効率化や、タイミング制御及びそのためのレジスタ構成の簡易化等ができるが、受信コマンド解析処理がフレーム期間内に終了しないこともあり、それによって処理が遅れることも想定される。そこでコマンド解析処理を開始する期間をフレーム前端側期間に限ることで、処理が遅れるような事態が生ずることを回避する。
これによりフレームの開始タイミング直後にコマンド解析処理が開始される。1回のみ行われるため、コマンド解析処理の開始がフレーム期間の後半になることは、通常発生しない。従って負荷の重いコマンド解析処理によってフレーム終了タイミングに処理が間に合わなくなることが防止される。
これにより、フレーム後端側期間における演出制御部51の処理量をより低減し、表示手段の画像表示とともに行う各種演出等のための制御が次のフレームに間に合わなくなることを防止するという効果をより高めることができる。
演出制御CPU200は、発光手段に関する駆動制御は、表示手段で表示させる表示データのフレームタイミングに応じて行う第1処理の1つとして実行する。フレームタイミングに応じて行う処理とは、例えばフレームタイミングの監視を行って各種の処理タイミングが規定される処理であるなど、フレーム期間に対応した処理の進行を行う処理である。即ち実施の形態における第1処理とはフレームタイミングにより実行タイミングが規定される図16のメイン処理である。
一方、可動体に関するモータの駆動制御は、フレームタイミングに関わらず、フレーム期間より短い所定間隔で実行する第2処理の1つとして実行する。第2処理とは図20のタイマ割込処理である。
これにより、発光演出に関しては表示データのフレームに合わせて実現できる一方、可動体役物のモータ制御は、フレームタイミングに関わらず、より短い時間間隔で制御されることで精細な役物動作が可能となる。
ランプ制御(及び音制御)は、フレームタイミング毎の出力とすることで、処理負担が過大にならない。一方、フレームタイミングより短い周期でモータ処理することで、モータ動作が遅れることを回避できる。
フレーム同期信号に基づいてフレームタイミングを確認することで、タイミング制御が容易となる。
なお上述したが、1チップマイクロコンピュータ250は、ユーザ操作情報の検知と原点センシングを、図8のパラレル/シリアル変換部260からの入力として、一括して検知できる。従ってステップS204の処理とステップS201の処理を同時に行うことで、さらに効率の良い外部情報検知が可能となる。
このように描画完了を確認してVRAM209のフレームバッファ領域の切替を行うことで、表示画像に与える影響を最小限とすることができる。即ち表示回路221等に転送される表示データは、正しく描画が完了した表示データとなり、描画が垂直同期信号の2回目の時点までに終わらなかったら描画中のフレームバッファの表示データを表示させてしまうようなことは生じない。
そして演出画像の表示を行う表示手段を含む複数の演出手段の制御を行うという、比較的処理負荷が高くなる状況においても適切な表示データ出力に基づく画像表示演出を実現できる。
上述したようにディスプレイリストの画像データ(画像素材としてのCGデータ)の参照先は、CG−ROM206ではなく、D−RAM202a又はVRAM209に設定されたプリロード領域となることで、描画回路225による描画の実行中に生じる画像データへのランダムアクセスを迅速化でき、動きの激しい高解像度の動画についても描画処理にも対応できる。つまりプリロード完了を確認してから描画を開始することで、このような優位性をもった描画を確実に実行できる状態が維持できる。従ってプリロードされた画像素材を用いた描画処理が適切に実行される。特に処理負担が高くなる傾向にある1チップマイクロコンピュータ250の処理としてプリロード完了を待って描画を行うことが有効となる。
そして第1,第2の実施の形態では、制御手段(演出制御部51)は、第3演出手段に関する制御(図16,図23のS133)は、表示手段で表示させる表示データのフレーム周期で実行している。つまり基本的には1フレームに1回行う。
一方、第2演出手段の可動体に関する可動体役物モータ65の駆動制御は、フレームタイミングに関わらず、フレーム期間より短い1ms間隔で実行する(図20のS202,S203)。
これにより、第3演出手段の制御に関しては表示データのフレームに合わせて実現できる一方、可動体役物モータに関しては、より精細な動作制御を可能とする。
例えば音制御は、フレームタイミング毎の出力とすることで、処理負担が過大にならない。一方、フレームタイミングより短い周期でモータ処理することで、モータ動作が遅れることを回避できる。従って精細な可動体役物動作が可能となる。
これにより、コマンド取得に応じた演出を迅速に実行できる。
従って、演出制御CPU200の処理において、表示データのフレームのタイミングとの関係で最適タイミングでシナリオ進行管理ができる。
そしてフレーム更新フラグは、フレーム同期信号(Vブランク信号)に基づいてOFF(未更新)とされる。スケジューラ更新フラグは、スケジューラフレーム更新に応じてOFF(未実行)とされた後、フレーム同期信号に応じて、状態が確認され、OFF(未実行)ならシナリオ更新が実行される。
これによりシナリオのタイマ進行と、シナリオ更新が、それぞれ別タイミングで行われるように管理されるとともに、それぞれフレームに1回の実行を、シンプルな処理で管理できる。
しかしコマンド受信があったら、直ぐにOFFにして(S124)、シナリオ更新を実行させるようにしている。
このような処理によっては、演出制御CPU200のメイン処理で、むやみにシナリオ更新させず、適切にフレームに1回、シナリオ更新が行われるようにでき、表示と他の演出の同期性を容易に確保できる。
一方、コマンド解析に応じて、即座にシナリオ更新を実行させることで、表示フレームの進行に関わらずコマンドに迅速に対応できる。
表示データのフレームに同期する信号としてVブランク信号に基づいてタイミングを管理する例を挙げたが、Vブランク信号以外の垂直同期信号を用いたり、或いは水平同期信号のカウントでフレーム期間内のタイミング管理を行っても良い。例えば上述のフレーム前端側期間、フレーム後端側期間としてのタイミング管理を、垂直同期信号や水平同期信号を用いることも考えられる。
またフレーム前端側期間は、必ずしもフレーム前半の16.6msの期間とは限らない。フレーム開始タイミングからフレーム期間途中の或る時点までの期間とされればよい。
同様にフレーム後端側期間は、必ずしもフレーム後半の16.6msの期間とは限らない。フレーム途中の或る時点からフレーム終端までの期間であればよい。
20w,20b 発光部
32M 主液晶表示装置
32S 副液晶表示装置
50 主制御基板(主制御部)
51 演出制御基板(演出制御部)
61 枠ドライバ部
62 盤ドライバ部
63,64 発光部
65 可動体役物モータ
90 LEDドライバ
200 演出制御CPU
201 演出制御ROM
202 演出制御RAM
250 マイクロコンピュータ
Claims (2)
- 演出画像の表示を行う表示手段を含む複数の演出手段と、
受信したコマンドに応じて演出手段の動作を制御する制御手段と、
を備え、
前記制御手段は、受信したコマンドの解析処理は、前記表示手段で表示される画像の1フレーム期間内における、フレーム開始タイミングから所定時間を経過するまでのフレーム前端側期間においてのみ開始する
遊技機。 - 前記制御手段は、前記表示手段で表示される画像のフレーム同期信号に基づいてカウントを行うカウンタにより、フレーム開始タイミング及び前記フレーム前端側期間の終了タイミングを検知する
請求項1に記載の遊技機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017200949A JP2018001033A (ja) | 2017-10-17 | 2017-10-17 | 遊技機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017200949A JP2018001033A (ja) | 2017-10-17 | 2017-10-17 | 遊技機 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016084529A Division JP6230647B2 (ja) | 2016-04-20 | 2016-04-20 | 遊技機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018001033A true JP2018001033A (ja) | 2018-01-11 |
JP2018001033A5 JP2018001033A5 (ja) | 2019-04-11 |
Family
ID=60946931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017200949A Abandoned JP2018001033A (ja) | 2017-10-17 | 2017-10-17 | 遊技機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018001033A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018001032A (ja) * | 2017-10-17 | 2018-01-11 | 株式会社藤商事 | 遊技機 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009273736A (ja) * | 2008-05-16 | 2009-11-26 | Daito Giken:Kk | 遊技台 |
JP2012223514A (ja) * | 2011-04-22 | 2012-11-15 | Kyoraku Sangyo Kk | 遊技機 |
JP6207658B1 (ja) * | 2016-04-20 | 2017-10-04 | 株式会社藤商事 | 遊技機 |
JP2018001032A (ja) * | 2017-10-17 | 2018-01-11 | 株式会社藤商事 | 遊技機 |
-
2017
- 2017-10-17 JP JP2017200949A patent/JP2018001033A/ja not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009273736A (ja) * | 2008-05-16 | 2009-11-26 | Daito Giken:Kk | 遊技台 |
JP2012223514A (ja) * | 2011-04-22 | 2012-11-15 | Kyoraku Sangyo Kk | 遊技機 |
JP6207658B1 (ja) * | 2016-04-20 | 2017-10-04 | 株式会社藤商事 | 遊技機 |
JP2018001032A (ja) * | 2017-10-17 | 2018-01-11 | 株式会社藤商事 | 遊技機 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018001032A (ja) * | 2017-10-17 | 2018-01-11 | 株式会社藤商事 | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6230646B2 (ja) | 遊技機 | |
JP6230647B2 (ja) | 遊技機 | |
JP6207658B1 (ja) | 遊技機 | |
JP6378243B2 (ja) | 遊技機 | |
JP2019188171A (ja) | 遊技機 | |
JP5975584B2 (ja) | 遊技機 | |
JP2018001033A (ja) | 遊技機 | |
JP2018001032A (ja) | 遊技機 | |
JP6691422B2 (ja) | 遊技機 | |
JP6902647B2 (ja) | 遊技機 | |
JP6533179B2 (ja) | 遊技機 | |
JP7096854B2 (ja) | 遊技機 | |
JP6974031B2 (ja) | 遊技機 | |
JP2019171143A (ja) | 遊技機 | |
JP2021023530A (ja) | 遊技機 | |
JP6059744B2 (ja) | 遊技機 | |
JP6489553B2 (ja) | 遊技機 | |
JP6404291B2 (ja) | 遊技機 | |
JP6348543B2 (ja) | 遊技機 | |
JP2016140603A (ja) | 遊技機 | |
JP2016140604A (ja) | 遊技機 | |
JP2016140600A (ja) | 遊技機 | |
JP6059745B2 (ja) | 遊技機 | |
JP2021020007A (ja) | 遊技機 | |
JP2021020006A (ja) | 遊技機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190301 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20200107 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20200228 |