JP6348945B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP6348945B2
JP6348945B2 JP2016204455A JP2016204455A JP6348945B2 JP 6348945 B2 JP6348945 B2 JP 6348945B2 JP 2016204455 A JP2016204455 A JP 2016204455A JP 2016204455 A JP2016204455 A JP 2016204455A JP 6348945 B2 JP6348945 B2 JP 6348945B2
Authority
JP
Japan
Prior art keywords
special
game
command
random number
information
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
Application number
JP2016204455A
Other languages
English (en)
Other versions
JP2017012845A (ja
Inventor
康一 山口
康一 山口
健司 平岩
健司 平岩
剛 関野
剛 関野
敬宏 大塚
敬宏 大塚
加都彦 畑
加都彦 畑
Original Assignee
株式会社ソフイア
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソフイア filed Critical 株式会社ソフイア
Priority to JP2016204455A priority Critical patent/JP6348945B2/ja
Publication of JP2017012845A publication Critical patent/JP2017012845A/ja
Application granted granted Critical
Publication of JP6348945B2 publication Critical patent/JP6348945B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Pinball Game Machines (AREA)

Description

本発明は、パチンコ機などの遊技機に関する。
従来、パチンコ機などの遊技機は、必要な制御処理を行うため、遊技制御基板(主基板)よりなる遊技制御装置、及び演出制御基板(サブ基板)よりなる演出制御装置などの各種制御装置を備えている。
これら各種制御装置のうち、遊技者が遊技をする際に注目する演出手段の動作(例えば、表示装置での映像表示、演出用役物の動作)は演出制御装置が制御している。演出制御装置は遊技制御装置からの指令(コマンド)に基づいて、その時の遊技状態に対する演出内容(例えば、表示装置での描画内容、演出用役物の動作パターン)を判断して、演出を行っている(特許文献1及び特許文献2参照)。
特開2008−136576号公報 特開2011−87743号公報
しかしながら、遊技機で行う演出(エラー報知など、通常遊技以外の動作も含む)は多彩で、各種動作を指令するコマンドが遊技制御装置から送信されるが、その種類は非常に多く、機種によっても異なる。このため、このコマンドを演出制御装置において効率良く受信して解析する必要がある。
そこで本発明は、遊技制御装置から演出制御装置に送信されるコマンドの受信及び解析が効率良く実現できる遊技機を提供することを目的とする。
請求項1に記載の発明は、
遊技の進行を制御する遊技制御手段と、この遊技制御手段から送信されるコマンドに基づいて演出手段を制御して演出を行う演出制御手段と、を備えた遊技機において、
前記演出制御手段は、
前記遊技制御手段から受信したコマンドが格納される受信バッファ手段と、
前記受信バッファ手段に格納されているコマンドが複写により格納される解析データ格納手段と、を備え、
前記コマンドが前記遊技制御手段から送信されると、前記コマンドを受信するための受信処理を実行し、この受信処理で受信した当該コマンドの解析処理を、前記受信処理とは別個に前記解析データ格納手段に複写されたコマンドに対して実行する構成であり、
前記受信処理においては、前記受信バッファ手段へ格納される前のコマンドに対して値が所定範囲にあるか否かの正当性判定を行い、
前記解析処理においては、前記受信バッファ手段から前記解析データ格納手段に複写されたコマンドに対して値が所定範囲にあるか否かの正当性判定を行い、
前記正当性判定の基準となる前記所定範囲が、前記解析処理よりも前記受信処理の方が広いことを特徴とする。
ここで、「所定範囲」とは、正常なコマンドがとり得る値の集合であり、必ずしも連続した値に限られないし、必ずしも複数の値に限定されるものでもない。
また、「演出手段」は、例えば表示装置であるが、表示装置に限られない。
本発明によれば、遊技制御装置から演出制御装置に送信されるコマンドの受信及び解析が効率良く実現できる。
パチンコ機の前面側斜視図である。 パチンコ機の遊技盤の前面図である。 パチンコ機の裏面図である。 パチンコ機の制御系を示すブロック図である。 遊技制御装置のブロック図である。 演出制御装置のブロック図である。 演出制御装置におけるVDPのブロック図である。 遊技制御装置のメイン処理を示すフローチャートである。 遊技制御装置のメイン処理を示すフローチャートである。 チェックサム算出処理を示すフローチャートである。 初期値乱数更新処理を示すフローチャートである。 タイマ割込み処理を示すフローチャートである。 入力処理を示すフローチャートである。 スイッチ読み込み処理を示すフローチャートである。 出力処理を示すフローチャートである。 コマンド送信処理を示すフローチャートである。 演出制御コマンド送信処理を示すフローチャートである。 演出制御コマンド出力処理を示すフローチャートである。 コマンドデータ出力処理を示すフローチャートである。 払出コマンド送信処理を示すフローチャートである。 乱数更新処理1を示すフローチャートである。 乱数更新処理2を示すフローチャートである。 入賞口スイッチ/エラー監視処理を示すフローチャートである。 不正&入賞監視処理を示すフローチャートである。 入賞数カウンタ更新処理を示すフローチャートである。 エラーチェック処理を示すフローチャートである。 特図ゲーム処理を示すフローチャートである。 始動口スイッチ監視処理を示すフローチャートである。 特図始動口スイッチ共通処理を示すフローチャートである。 特図保留情報判定処理を示すフローチャートである。 カウントスイッチ監視処理を示すフローチャートである。 特図普段処理を示すフローチャートである。 特図普段処理移行設定処理1を示すフローチャートである。 特図1変動開始処理1を示すフローチャートである。 大当たりフラグ1設定処理を示すフローチャートである。 特図1停止図柄設定処理を示すフローチャートである。 特図2変動図柄開始処理1を示すフローチャートである。 大当たりフラグ2設定処理を示すフローチャートである。 特図2停止図柄設定処理を示すフローチャートである。 大当り判定処理を示すフローチャートである。 停止図柄情報設定処理を示すフローチャートである。 特図情報設定処理を示すフローチャートである。 後半変動パターン設定処理を示すフローチャートである。 変動パターン設定処理を示すフローチャートである。 変動開始情報設定処理を示すフローチャートである。 特図変動中処理移行設定処理(特図1)を示すフローチャートである。 特図変動中処理移行設定処理(特図2)を示すフローチャートである。 特図変動中処理を示すフローチャートである。 特図表示中処理移行設定処理を示すフローチャートである。 特図表示中処理を示すフローチャートである。 特図表示中処理を示すフローチャートである。 特図普段処理移行設定処理2(時短終了時)を示すフローチャートである。 ファンファーレ/インターバル中処理移行設定処理1を示すフローチャートである。 ファンファーレ/インターバル中処理を示すフローチャートである。 大入賞口開放中処理移行設定処理を示すフローチャートである。 大入賞口開放中処理を示すフローチャートである。 大入賞口残存球処理移行設定処理を示すフローチャートである。 大入賞口残存球処理を示すフローチャートである。 ファンファーレ/インターバル中処理移行設定処理2を示すフローチャートである。 大当り終了処理移行設定処理を示すフローチャートである。 大当り終了処理を示すフローチャートである。 大当り終了設定処理1を示すフローチャートである。 大当り終了設定処理2を示すフローチャートである。 特図普段処理移行設定処理3を示すフローチャートである。 普図ゲーム処理を示すフローチャートである。 ゲートスイッチ監視処理を示すフローチャートである。 普電入賞スイッチ監視処理を示すフローチャートである。 普図普段処理を示すフローチャートである。 普図普段処理移行設定処理1を示すフローチャートである。 普図変動中処理移行設定処理を示すフローチャートである。 普図変動中処理を示すフローチャートである。 普図表示中処理移行設定処理を示すフローチャートである。 普図表示中処理を示すフローチャートである。 普図当り中処理移行設定処理を示すフローチャートである。 普図当り中処理を示すフローチャートである。 普電作動移行設定処理を示すフローチャートである。 普電残存球処理を示すフローチャートである。 普図当り終了処理移行設定処理を示すフローチャートである。 普図当り終了処理を示すフローチャートである。 普図普段処理移行設定処理2を示すフローチャートである。 セグメントLED編集処理を示すフローチャートである。 磁石不正監視処理を示すフローチャートである。 外部情報編集処理を示すフローチャートである。 外部情報編集処理を示すフローチャートである。 固有情報信号編集処理を示すフローチャートである。 CPU固有情報取得処理を示すフローチャートである。 始動口信号編集処理を示すフローチャートである。 図柄確定回数信号編集処理を示すフローチャートである。 コマンド設定処理を示すフローチャートである。 図柄変動制御処理を示すフローチャートである。 振り分け処理を示すフローチャートである。 2バイト振り分け処理を示すフローチャートである。 演出制御装置のパワーオンリセット処理を示すフローチャートである。 演出制御装置のメイン処理を示すフローチャートである。 コマンド受信割込み処理を示すフローチャートである。 受信コマンド範囲チェック処理を示すフローチャートである。 受信コマンドチェック処理を示すフローチャートである。 受信コマンド解析処理を示すフローチャートである。 受信コマンド解析処理を示すフローチャートである。 受信コマンド解析処理を示すフローチャートである。 受信コマンド解析処理を示すフローチャートである。 変動パターン対応図柄設定処理を示すフローチャートである。 受信コマンド別初期化処理1を示すフローチャートである。 受信コマンド別初期化処理1を示すフローチャートである。 受信コマンド別初期化処理1を示すフローチャートである。 受信コマンド別初期化処理1を示すフローチャートである。 特図1保留情報設定処理を示すフローチャートである。 受信コマンド別初期化処理2を示すフローチャートである。 受信コマンド別初期化処理2を示すフローチャートである。 停止図柄設定処理を示すフローチャートである。 変動パターン分類処理を示すフローチャートである。 乱数抽選処理Aを示すフローチャートである。 乱数抽選処理Bを示すフローチャートである。 乱数抽選処理Cを示すフローチャートである。 予告演出設定処理1を示すフローチャートである。 予告演出設定処理2を示すフローチャートである。 予告演出設定処理2を示すフローチャートである。 サブ間送信開始処理を示すフローチャートである。 サブ間受信タスク処理を示すフローチャートである。 サブ間送信データ編集処理を示すフローチャートである。 サブ間ack応答タスク処理を示すフローチャートである。 サブ間演出設定処理を示すフローチャートである。 演出表示編集処理を示すフローチャートである。 客待ち表示編集処理を示すフローチャートである。 背景編集処理を示すフローチャートである。 背景情報更新判定処理を示すフローチャートである。 動画インデックス設定処理を示すフローチャートである。 背景動画データ編集処理を示すフローチャートである。 背景静止画データ編集処理を示すフローチャートである。 背景オフデータ編集処理を示すフローチャートである。 背景予告編集処理を示すフローチャートである。 予告情報更新判定処理を示すフローチャートである。 予告情報更新判定処理を示すフローチャートである。 予告表示データ編集処理を示すフローチャートである。 図柄編集処理を示すフローチャートである。 図柄情報展開処理を示すフローチャートである。 現図柄表示編集処理を示すフローチャートである。 次図柄表示編集処理を示すフローチャートである。 予告編集処理1を示すフローチャートである。 保留編集処理を示すフローチャートである。 特図1保留表示編集処理を示すフローチャートである。 保留表示パターン編集処理を示すフローチャートである。 予告編集処理2を示すフローチャートである。 サブ間連動予告編集処理を示すフローチャートである。 縮小図柄編集処理を示すフローチャートである。 第4図柄編集処理を示すフローチャートである。 第4図柄編集処理を示すフローチャートである。 大当りラウンド編集処理を示すフローチャートである。 変動パラメータ更新処理を示すフローチャートである。 変動パラメータ更新処理を示すフローチャートである。 サウンド制御処理を示すフローチャートである。 サウンド出力処理を示すフローチャートである。 サウンドエフェクト出力処理を示すフローチャートである。 サブ間受信割込み処理を示すフローチャートである。 受信パケット解析処理を示すフローチャートである。 受信パケット解析処理を示すフローチャートである。 サブ間送信割込み処理を示すフローチャートである。 モータ用タイマ割込み処理を示すフローチャートである。 VDP割込み処理を示すフローチャートである。 Vブランク開始割込み処理を示すフローチャートである。 サブ間通信のパケット構成例を示す図である。 変動系コマンドの一例を示す図である。 変動系コマンドの一例を示す図である。 コマンドの判定に使用するデータテーブルの一例である。 コマンドの判定に使用するデータテーブルの一例である。 演出制御装置の主な処理の関係を示す図である。
以下、本発明の実施例1として、パチンコ機に適用した場合の形態例を、図面を参照して説明する。
A.パチンコ機の正面構成
最初に、図1によって本例のパチンコ機の全体構成について説明する。図1は本例のパチンコ機1の前面側斜視図である。
パチンコ機1は、当該パチンコ機1が設置される島に対して固定される機枠2と、この機枠2にヒンジ部3において回動可能に軸支されることによって、機枠2に対して開閉自在とされた前面枠4とを備える。この前面枠4には、遊技盤20(図2に示す)が取り付けられている。
また前面枠4には、その前面上側を覆うようにガラス枠5が開閉自在に取付けられている。なお、このガラス枠5により保持されるガラス板(透明のプラスチックボードでもよい、符号は省略)を介して、遊技盤20の後述する遊技領域22が前面から視認可能となっている。またガラス枠5は、ヒンジ部3において前面枠4に開閉可能に軸支されている。
ここで、前面枠4は遊技枠という名称で呼称され、ガラス枠5は前枠という名称で呼称されることもあるが、本実施例では前面枠4、ガラス枠5で説明している。
このガラス枠5の下側には、操作パネル6が設けられている。
なお、通常、パチンコ機1には遊技媒体貸出装置としてのCRユニット(カード式球貸制御ユニット)が併設されることもあるが、ここでは図示を略している。ただし、図4では、CRユニットをカードユニット551として図示しており、このカードユニット551との間で信号などの伝達を中継するカードユニット接続基板54についても図4で示している。
図2に示すように、遊技盤20は、板状の基材(いわゆるベニア)の前面に遊技釘を植設したもので、その前面の略円形領域がガイドレール21で囲まれることにより遊技領域22が形成されたものである。遊技領域22は、打ち込まれた遊技球を上方から落下させつつアウトあるいはセーフの判定(入賞したか否かの判定)を行う領域であり、入賞口に遊技球が入って有効にセーフとなる場合は、所定数の遊技球がガラス枠5の下部に設けられた上皿7に排出される(即ち、賞球として排出される)構成となっている。
また、前面枠4の開閉側(図1において右側)の縁部には、前面枠4及びガラス枠5の施錠装置(図示省略)の鍵挿入部8が形成されている。
また、ガラス枠5の下部に設けられた上皿7は、賞球として又は貸球として排出された発射前の遊技球を一時保持するものである。この上皿7には、遊技者が操作する押ボタン式の演出ボタン9が設けられている。
また、操作パネル6には、上皿7の遊技球を遊技者の操作によって移すことができる下皿10と、遊技球の発射操作を行う発射操作ハンドル11とが設けられている。
また、図1において符号12a、12bで示すものは、効果音等を出力するスピーカである。このうち符号12aは、ガラス枠5の上部左右両側に設けられた上スピーカである。また符号12bは操作パネル6の左端部(下皿10の左側)に設けられた下スピーカである。
また図1において、符号13で示すものは、ガラス枠5の前面に設けられたLED(発光ダイオード)を発光源とする装飾ランプであり、符号14で示すものは、ガラス枠5の上部左右両側前面に設けられたムービングライトである。図示省略しているが、ムービングライト14は、発光源としてLEDを備え、駆動源としてモータを備えている。ここで、装飾ランプ13とムービングライト14は図4に示す装飾LED301を構成する。
また、パチンコ機1の盤と枠という概念で装飾機構を区分するとすれば、装飾ランプ13とムービングライト14は枠側の演出機構に相当し、図6に示す枠装飾装置43を構成し、またムービングライト14は図6に示す枠演出装置45も構成する。
B.遊技盤の前面構成
図2において、符号21は遊技盤20のガイドレールであり、既述したように、遊技盤前面の略円形領域がこのガイドレール21で囲まれることにより遊技領域22が形成されている。
遊技領域22には、図2に示すように、アウト球流入口23、センターケース24、第1始動入賞口25、普通電動役物(普電)としての第2始動入賞口26、変動入賞装置27、一般入賞口28〜31、普図始動ゲート32、多数の遊技釘(図示省略)などが設けられている。また、遊技盤20の遊技領域22外には、一括表示装置35が設けられている。なお遊技釘は、遊技領域22の上部に飛入した遊技球がこれに当たりながら流下するものであり、センターケース等の取付部分を除いた遊技領域内に複数本植設されている。
センターケース24は、遊技盤20の裏側に取り付けられる表示装置41(図4に示す)の表示部41a(図2に示す)の前面周囲を囲む部材である。図示省略しているが、このセンターケース24には、演出又は装飾のためのLEDを発光源とするランプ類や、例えば表示装置41における演出表示と協働して演出効果を高める電動役物(モータやソレノイドなどの駆動源によって作動する可動部を有する役物)が設けられている。
なお、演出又は装飾のためのランプ類は、遊技盤20のセンターケース24以外の部分(遊技領域22外でもよい)にも設けられる。なお、遊技盤20(センターケース24含む)に設けられた演出又は装飾のためのランプ類は、盤側の演出機構に相当し、盤装飾装置42(図6に示す)また、センターケース24に設けられた電動役物は、盤側の演出機構に相当し、盤演出装置44(図6に示す)を構成する。なお、盤演出装置44を構成する電動役物は、遊技盤20のセンターケース24以外の箇所に設けられてもよい。
表示装置41は、例えば液晶表示装置を含んで構成され、通常、変動表示装置と称されるものである。なお、表示装置41の名称としては、同様の機能を持つ部材の呼び名として、例えば特別図柄表示装置、特図表示装置、図柄変動装置、可変図柄表示装置、識別情報変動装置、識別情報変動表示装置など各種あるが、機能が同じものは同一の範疇である。
表示装置41は、数字や文字などの識別情報(特図という)を表示可能な表示部41a(画面)を有し、複数列の特図を表示可能である。例えば、左側と中央と右側に特図を縦3列に表示し、各列において数字や文字等よりなる特図を停止状態で表示(停止表示)したり、あるいは変動状態(例えば、縦方向にスクロールする状態)で表示(即ち、変動表示)したりすることが可能である。
また表示部には、上記特図とは別個に背景画像やキャラクタ画像などの演出用又は情報報知用の画像、或いは、いわゆる普図に相当する画像が表示可能である。なお、特図とは大当りに関連する変動表示ゲームで変動表示される識別情報であり、普図とは普図当り(大当りではない)に関連する変動表示ゲームで変動表示される識別情報である。
また始動入賞口25,26は、後述するように特図の始動入賞口として機能する入賞口であり、本例では図2に示すように上下に並んで配設されている。上側の第1始動入賞口25は常に開口している。下側の第2始動入賞口26は、開閉部材26aを左右両側に有し、これら開閉部材26aが逆ハの字状に開くと入賞可能になり、図2に示すようにこれら開閉部材26aが閉じていると入賞不可能である。これら始動入賞口25,26は、センターケース24の中央部下方に配置されている。
なお、第2始動入賞口26は普通電動役物(普電)ともいい、普通変動入賞装置に相当する。
また変動入賞装置27は、開閉部材27bによって開閉される大入賞口27aを有する装置(いわゆるアタッカー)である。この大入賞口27aは、後述する大当りになったことを条件として開放されて遊技球が入賞可能となる。
前述したように、表示装置41の表示部41a(画面)には、特図とは別に普図の画像も表示しており、普図ゲームについて説明すると、以下の通りである。したがって、表示装置41は普通図柄可変表示装置に相当する。
遊技球が普図始動ゲート32を通過したとき、表示部41a等(表示装置41とは別に独自の普図表示器を配置してもよい)で普図の変動表示による普図の変動表示ゲーム(以下、普図変動表示ゲームという)が行われ、停止した普図が所定の態様(特定表示態様)であれば、普図当りと呼ばれる特典が付与される。
普図当りになると、第2始動入賞口26の一対の開閉部材26aが逆ハの字に開いた開状態に、所定の開放時間だけ一時的に保持される遊技が行われ、遊技球が始動入賞し易くなり、その分、特図の変動表示ゲームの実施回数が増えて大当りになる可能性が増す。
また、上記普図の変動表示ゲーム中に、普図始動ゲート32にさらに遊技球が入賞したときには、後述の一括表示装置35の表示器によって普図始動記憶の保留表示が実行されて、例えば4個まで記憶され、普図の変動表示ゲームの終了後に、その記憶に基づいて上記普図の変動表示ゲームが繰り返される。なお、普図の確率を高確率にすれば、普図当たりしやすくなる。
なお、一括表示装置35の表示器によって表示される普図始動記憶の保留表示は、本普図始動記憶である。一括表示装置35とは別に、飾り普図始動記憶を表示するための独自の普図始動記憶表示器を遊技領域22に配置してもよい
ここで、時短について説明しておくと、以下のようなものである。
時短は「時間短縮」の略で、大当たり終了後、特図や普図の変動時間を通常よりも短縮し、時間効率を高めるとともに、普図当たり確率を高めて普通電動役物(普電)(第2始動入賞口26)の開放(普電の開放時間を通常よりも長くすることも含む)による始動口への入賞のサポートを行うことで、一定の特図の変動表示ゲームの実施回数まで持ち玉(持球数)を減らさずに効率よく特図を変動させる機能である。
次に一括表示装置35は、いわゆる普図の表示や特図の表示、さらには特図や普図の始動記憶の保留表示(場合により、特図保留表示、普図保留表示という)や、遊技状態の表示を行うものであり、例えばLEDを発光源とする複数の表示器(例えば、1個の小さなランプよりなる表示器、或いは本特図としての数字等を表示可能な例えば7セグメントの表示器)によって構成される。なお、始動記憶の保留表示(場合により、単に始動記憶表示という)とは、変動表示ゲームが未実施の状態で保留されている始動記憶の数等を報知するための表示であり、一般的には、始動記憶毎にランプ等の点灯によって表示する。即ち、始動記憶が3個有れば、3個のランプを点灯させたり、3個の図形を表示させたりすることによって行われる。
なお、この一括表示装置35の表示器によって表示されるものが本特図や本普図(正式な特図や普図)であるのに対して、前述の変動表示装置41の表示部等で行われる特図や普図の表示は、遊技者向けの演出用のダミー表示である。このため、遊技者から見て特図や普図といえば、このダミー表示の方を指している。なお以下では、このダミー表示であることを強調する場合に、例えば「飾り特図」と表記する。
このように、この一括表示装置35は、遊技者向けのものではなく、遊技盤20の検査などで使用されるものである。例えば、遊技者向けの特図の始動記憶の表示(特図保留表示)は、例えば変動表示装置41の表示部、或いは遊技盤20に設けた複数のランプ(発光部)によって行われる。
C.パチンコ機裏側の構成
次に図3は、本実施例のパチンコ機1の裏側全体構成を示す図である。
パチンコ機1における裏機構の主要な部品としては、貯留タンク51、誘導路52a、払出ユニット53、カードユニット接続基板54、外部情報端子板55、払出制御装置200、遊技制御装置100、演出制御装置300、及び電源装置500などがある。
貯留タンク51は、払出される前の球を予め貯留しておくもので、この貯留タンク51の球数の不足は補給センサ(図示略)によって検出され、不足のときは島設備のシュートと呼ばれる機器から球が補給される。貯留タンク51内の球は誘導路52aにより誘導され、払出モータ222(図4に示す)を内蔵する払出ユニット(図示略)によって前述の上皿7に排出される。なお払出ユニットは、例えば払出モータ222の回転量に応じた球数の遊技球の排出が可能であり、この払出ユニットによって上皿12に向けて払い出される遊技球は、払出球検出スイッチ215(図4に示す)によって検出される。
外部情報端子板55はパチンコ機1の各種情報(固有IDを含む)をホールの管理装置140に送る場合の中継端子基板(外部端子基板)としての機能を有するものである。
固有IDとは、後述のように、遊技用マイコン101を識別可能な個体識別情報(主基板固有ID)や払出用マイコン201を識別可能な個体識別情報(払出固有ID)を表す概念であり、これらを遊技機の外部に出力するのは、固有IDを外部でチェックして遊技機の正当性を判定するためである。上記の管理装置140は遊技機(パチンコ機1)の外部装置に相当し、固有IDに基づいてパチンコ機1の正当性を外部で判定する機能を有する。
なお、遊技機の正当性を判定する機能を有する外部装置としては、管理装置140に限るものではなく、例えばカードユニット551(図4参照)に遊技機の正当性を判定する機能を持たせてもよい。その場合は、上述の外部情報端子板55からパチンコ機1の固有IDをカードユニット551に送る構成とする。
また、遊技機の正当性の判定は、管理装置140のみで行う形態、管理装置140とカードユニット551の双方で行う形態、あるいはカードユニット551のみで行う形態の何れであってもよい。
ここで、上記の固有IDは遊技制御装置100における演算処理装置(後述の遊技用マイコン101)であることを個別に(ユニークに)識別可能な個体識別情報に相当するが、払出制御装置200における演算処理装置(後述の払出用マイコン201)にも、当該演算処理装置であることを個別に(ユニークに)識別可能な個体識別情報が格納されている。
そこで、本実施例1では必要に応じて遊技用マイコン101を識別可能な個体識別情報を主基板固有ID,払出用マイコン201を識別可能な個体識別情報を払出固有IDと適宜、区別して説明する。
また、遊技用マイコン101を識別可能な個体識別情報に対して、これと区別する概念として、払出用マイコン201を識別可能な個体識別情報を払出個体識別情報という。後述の他の実施例についても同様である。
なお、区別しないで、通常単に固有IDというときは、主基板固有IDを指す。
また、発明概念では、固有IDを「個体識別情報」と称しているが、通常の現場レベルなど一般的な場合は、個体識別情報を固有IDとして称することも多いので、本明細書において、実施例1では、個体識別情報を固有IDとして説明したり、また、明細書及び図面上も固有IDとのバランス上、固有情報あるいは固有識別情報として記述や図示することがある。
払出制御装置200は、遊技球の払出(賞球払出と貸球払出の両方)に必要な制御を行うもので、所定のケース内にこの制御機能を実現する回路基板が収納されて構成されている。この払出制御装置200は、図4に示すように遊技制御装置100から送信される払出制御コマンドに基づき、所定数の遊技球を賞球として上皿7に排出させる賞球払出の制御を行う。また払出制御装置200は、カードユニット551(図4参照)からのBRDY信号やBRQ信号に基づいて、所定数の遊技球を貸球として上皿7に排出させる貸球払出の制御を行う。
遊技制御装置100は、遊技盤20に配設されているソレノイド等を制御するとともに、他の制御装置に制御情報(コマンド)を送って、遊技の進行を統括的に管理制御するものであり(詳細後述する)、これら制御を行うマイコンを含む回路が形成された基板が、所定のケース内に収納された構成となっている。
演出制御装置300は、遊技制御装置100から送信されるコマンドに基づき、前述の変動表示装置や装飾ランプや演出装置やスピーカ12a、12bの制御を行うもので、所定のケース内にこの制御機能を実現する回路基板が収納されて構成されている。
また、カードユニット接続基板54(図3参照、図4にも図示)は、パチンコ機1側と球を貸し出すCRユニット(カードユニット551のこと。以下同様)側との配線接続のための基板である。このカードユニット接続基板54での上記配線接続がされていないと、パチンコ機1では遊技球の発射が不可能となるように制御される。
なお一般に、パチンコ機の機種交換などの場合には、CRユニットを除くパチンコ機全体を交換するか、或いはパチンコ機の枠側(払出制御装置含む)を残して遊技盤側(遊技盤と遊技制御装置などの主要な制御装置含む)だけを交換する場合もある。ただし、貸球4円であれば、何れも4円のものが使用されるが、例えば貸球1円専用台であれば、遊技盤側も枠側も貸球1円専用のものが使用されることを前提としている。
D.制御系の構成
次に、本例のパチンコ機1の制御系について、図4乃至図7を参照して説明する。なお図や以下の説明において、「SW」はスイッチを意味する。また、図面では部材の名称が長い場合に図示がしにくくなるので、適宜、短めにして表記(図示)することがある。
パチンコ機1は、制御系の主な構成要素として、遊技制御装置100、払出制御装置200、演出制御装置300、発射制御装置400及び電源装置500を備えている。
(遊技制御装置関係)
まず、パチンコ機1の遊技制御装置100の構成と、この遊技制御装置100に接続される機器について、図4によって説明する。
なお、図4で矢印に添えて示す信号のうち、「主ID」とは主基板固有ID、「外部情報」とは遊技機状態信号、「賞球信号」とは払出制御装置から賞球として払い出される球数信号、「排出コマンド」とは遊技制御装置からの排出指令コマンド、「各種信号」とは払出制御装置から出される払出異常ステータス信号、シュート球切れスイッチ信号、オーバーフロースイッチ信号、ガラス枠開放スイッチ信号、前面枠開放スイッチ信号などをそれぞれ表す。
また、「外部情報」と「賞球信号」とを合わせて「外部・賞球」とも表す。
遊技制御装置100は、遊技を統括的に制御する主制御装置(主基板)であって、遊技用マイクロコンピュータ(以下、遊技用マイコンと称する)101及び検査装置接続端子102を備えている。遊技用マイコン101の詳細については後述する。
遊技制御装置100は制御装置に相当する。
また、遊技用マイコン101は遊技用演算処理装置(演算処理装置)としての機能を有し、本発明の第1の演算処理装置に相当する。
検査装置接続端子102は、例えばフォトカプラを含んで構成され、遊技用マイコン101から得られる各種の遊技情報を検査装置に伝送するためのケーブルが接続される端子である。
遊技制御装置100には、第1始動口スイッチ120(図4では始動口1SW)、第2始動口スイッチ121(図4では始動口2SW)、ゲートスイッチ122、入賞口スイッチ123、カウントスイッチ124、磁気センサスイッチ125、振動センサスイッチ126、ガラス枠開放検出スイッチ211(ガラス枠開放検出SW)及び前面枠開放検出スイッチ212(前面枠開放検出SW)からの検出信号が入力される。
ここで、第1始動口スイッチ120は前記第1始動入賞口25に入賞した遊技球を1個ずつ検出する入賞球検出用のセンサであり、第2始動口スイッチ121は前記第2始動入賞口26に入賞した遊技球を1個ずつ検出する入賞球検出用のセンサである。
カウントスイッチ124は前記変動入賞装置27の大入賞口に入賞した遊技球を検出する同様のセンサである。また、入賞口スイッチ123は一般入賞口28〜31に対して設けられた同様のセンサであり、一般入賞口がn個あるときには、それぞれに1個ずつ、全体としてn個設けられる。なお、一般入賞口のそれぞれに1個ずつセンサを設けるのではなく、複数の一般入賞口に対して、全体で1個のセンサを設けるようにしてもよい。ゲートスイッチ122は前記普図始動ゲート32を通過する遊技球を1個ずつ検出するセンサである。
これら遊技球を検出する上記各センサ120、121、122、123、124は、本例では近接スイッチであり、ハイレベルが11Vでロウレベルが7Vのような負論理の検出信号を出力するように回路構成されている。
また、磁気センサスイッチ125や振動センサスイッチ126は、遊技盤20の裏面等に設けられ、磁気又は振動によって不正を検出するセンサである。
さらに、ガラス枠開放検出スイッチ211はパチンコ機前面のガラス枠5が開放されていることを検出するセンサである。前面枠開放検出スイッチ212はガラス枠5が取り付けられた前面枠4が開放されていることを検出するセンサである。
なお、遊技制御装置100には、上記各センサ120、121、122、123、124、125,126からの信号を処理する近接I/Fが設けられているが、詳細は図5を用いて後述する。
ここで、遊技制御装置100及び該遊技制御装置100によって駆動される後述のソレノイド132、133などの電子部品には、電源装置500で生成されたDC32V,DC12V,DC5Vなど所定のレベルの直流電圧が供給されて動作可能にされる。
電源装置500は、24Vの交流電源から上記DC32Vの直流電圧を生成するAC−DCコンバータやDC32Vの電圧からDC12V,DC5Vなどのより低いレベルの直流電圧を生成するDC−DCコンバータなどを有する通常電源部501と、遊技用マイコン101の内部のRAMに対して停電時に電源電圧を供給するバックアップ電源部502と、停電監視回路を有し遊技制御装置100に停電の発生、回復を知らせる停電監視信号やリセット信号などの制御信号を生成して出力する制御信号生成部503と、遊技用マイコン101の内部のRAMなどを初期化するRAMクリアスイッチ504などを備える。
この実施例1では、電源装置500は、遊技制御装置100と別個に構成されているが、バックアップ電源部502及び制御信号生成部503は、別個の基板上あるいは遊技制御装置100と一体、即ち、主基板上に設けるように構成してもよい。遊技盤20及び遊技制御装置100は機種変更の際に交換の対象となるので、このように、電源装置500若しくは主基板とは別の基板にバックアップ電源部502及び制御信号生成部503を設けることにより、機種変更の際の交換の対象から外しコストダウンを図ることができる。
上記バックアップ電源部502は、電解コンデンサのような大容量のコンデンサ1つで構成することができる。バックアップ電源は、遊技制御装置100の遊技用マイコン101(特に内蔵RAM)に供給され、停電中あるいは電源遮断後もRAMに記憶されたデータが保持されるようになっている。制御信号生成部503は、例えば通常電源部501で生成された32Vの電圧を監視して、それが例えば17V以下に下がると停電発生を検出して停電監視信号を変化させる(本例ではオンさせる)とともに、所定時間後にリセット信号を出力する。また、電源投入時や停電回復時にもその時点から所定時間経過後にリセット信号を出力する。
RAMクリアスイッチ504からは初期化スイッチ信号が出力されるようになっており、初期化スイッチ信号はRAMクリアスイッチ504がオン状態にされたときに生成される信号で、遊技用マイコン101内のユーザワークRAMなどのRAMエリア及び払出制御装置200内の同様のRAMエリアに記憶されている情報を初期化する。
なお本例の場合、初期化スイッチ信号は電源投入時に読み込まれ、停電監視信号は遊技用マイコン101や払出用マイコン201が実行するメインプログラムのメインループの中で繰り返し読み込まれる。リセット信号は、制御システム全体をリセットさせる。
次に、遊技制御装置100は、払出制御装置200、演出制御装置300、試射試験装置131(試験機関における試験時に接続される)、普電ソレノイド132、大入賞口ソレノイド133及び一括表示装置35と接続されている。
遊技制御装置100からは外部情報端子板55を介して遊技制御装置100の固有ID、詳しくは遊技用マイコン101を識別可能な個体識別情報(主基板固有ID)及び外部情報が外部装置としての管理装置140に出力されるようになっている。
外部情報端子板55は遊技制御装置100とケーブルで接続されており、外部情報、遊技制御装置100の固有ID(主基板固有ID)を外部装置としての管理装置140に伝送する際の中継を行う。
なお、管理装置140は遊技店に設置された多数のパチンコ機からの情報(例えば、外部情報など)を収集して、営業に必要な情報の演算処理や集計表示などの処理を行う。
ここで、外部情報としては、例えば遊技制御装置100に入力された信号を外部へ知らせる信号や、遊技進行の過程で発生する大当りを知らせる大当り信号、図柄を回動させるための条件となる始動口への入賞を知らせる始動口信号、図柄が回動開始、或いは、図柄の回動停止をトリガに図柄回転を知らせる図柄確定回数信号、遊技状態が遊技者に有利な状態であること(いわゆる確変状態、時短状態)を示す特典状態信号、等、外部へ報知する信号であり、これらを総称して遊技機状態信号と称している。
なお、特典状態信号は、大当り状態終了後に発生するため、“大当り状態+遊技者に有利な状態”期間中に出力される信号である。
また、遊技制御装置100からは払出制御装置200に対してパラレル通信でデータ(例えば、払出コマンド)が送信されるようになっている。一方、払出制御装置200から遊技制御装置100に対して、払出異常ステータス信号、シュート球切れスイッチ信号、オーバーフロースイッチ信号が出力される。各信号の内容は後述する。
次に、遊技制御装置100に接続されている試射試験装置131などについて説明する。
試射試験装置131は、認定機関が遊技機の試射試験などを行うものである。普電ソレノイド132は第2始動入賞口26の開閉部材を開閉させるソレノイド、大入賞口ソレノイド133は変動入賞装置27の開閉部材を開閉させるソレノイド、一括表示装置35は前述したように、いわゆる普図の表示や特図の表示、さらには特図や普図の始動記憶の保留表示や遊技状態の表示を行うものである。
また、遊技制御装置100からは演出制御装置300に対して、パラレル通信でデータ(例えば、演出コマンド)が送信されるようになっている。
(演出制御装置関係)
次に、演出制御装置300の構成と、この演出制御装置300に接続される機器について説明する。
演出制御装置300は、主制御用マイコン、該主制御用マイコンの制御下でもっぱら映像制御を行う映像制御用マイコン、表示装置41への映像表示のための画像処理を行うグラフィックプロセッサとしてのVDP、各種のメロディや効果音などの出力を制御する音源LSIなどを有しているが、細かい構成については、図6で後述する。
演出制御装置300は遊技制御装置100の遊技用マイコン101からの制御コマンド(8ビットのデータ信号)を解析し、演出内容を決定して表示装置41の出力映像の内容を制御したり、音源LSIへの再生音の指示をしてスピーカ12a、12bを駆動して効果音等を出したり、前述した装飾LED301の駆動制御などの処理を実行する。また、演出制御装置300は遊技制御装置100からエラー報知の指示を受けると、エラー報知LED302に対して信号を出力してオンさせる。
ここで、遊技制御装置100の遊技用マイコン101から演出制御装置300へ送信されるコマンドには、単独コマンド(例えば、停止コマンド)の他に、単独では演出を開始せず、組で効果を発揮するものがあるが、それは例えば特図変動開始時の「変動パターンコマンド+図柄指定コマンド」などであるが、コマンドの種類の詳細などについては後述する。なお、コマンド通信はパラレル通信方式でもよいし、あるいはシリアル通信方式でもよい。本実施例では、コマンド通信としてパラレル通信方式を採用している。
(払出制御装置関係)
次に、払出制御装置200の構成と、この払出制御装置200に接続される機器について説明する。
払出制御装置200は、遊技球の払出(賞球払出又は貸球払出)を制御する払出用マイクロコンピュータ(以下、払出用マイコンと称する)201、エラーナンバー表示器202、エラー解除スイッチ203、検査装置接続端子204を備えている。払出用マイコン201の詳細については後述する。
なお、払出用マイコン201は払出用演算処理装置(演算処理装置)としての機能を有し、本発明の第2の演算処理装置に相当する。
検査装置接続端子204は、例えばフォトカプラを含んで構成され、払出用マイコン201から得られる払い出しに関連する各種の情報を検査装置に伝送するためのケーブルが接続される端子である。エラーナンバー表示器202は払出制御の処理でエラーがある場合に、エラーの内容に応じて特定のナンバーを点灯させる。エラー解除スイッチ203は払出制御の処理でエラーがあって処理が停止した場合などに、操作されるとエラーを解除する信号を出すものである。
払出制御装置200の入力側に接続される機器としては、オーバーフロースイッチ213、電波検知センサ214、払出球検出スイッチ215及びシュート球切れスイッチ216がある。
オーバーフロースイッチ213は下皿10の遊技球が過剰であることを検出するスイッチ、電波検知センサ214は不正などの異常な電波を検知するセンサ、払出球検出スイッチ215は払出ユニット53(図3)によって上皿7に向けて払い出される遊技球(賞球あるいは貸球)を1個ずつ検出するスイッチ、シュート球切れスイッチ216は貯留タンク51に遊技球を供給するシュートに遊技球が無いことを検出するスイッチである。
また、払出制御装置200の出力側に接続される機器としては、払出モータ222、カードユニット接続基板54、発射制御装置400及び外部情報端子板55がある。
払出制御装置200は、遊技制御装置100からの信号(払出制御コマンド)に従って、払出ユニット53の払出モータ222を駆動させ、賞球を払い出させるための制御を行う。また、払出制御装置200は、カードユニット接続基板54に接続されているカードユニット(CRユニット)551からのBRQ信号(貸出要求信号)等に基づいて払出モータ222を駆動させ、貸球を払い出させるための制御を行う。
また、カードユニット接続基板54には操作パネル基板552が接続されており、操作パネル基板552はパチンコ機1に設けられている球貸可LED、残高表示器、球貸スイッチ、返却スイッチ(何れも図示略)などが接続されている。操作パネル基板552は球貸可LED、残高表示器などの信号をカードユニット(CRユニット)551から受け取るとともに、球貸スイッチ、返却スイッチからの操作信号をカードユニット(CRユニット)551に送り、貸球の払い出しに必要な制御が行われる。
なお図示省略しているが、この払出制御装置200のRAMエリアにも、停電時に電源装置500からバックアップ電源が供給される構成となっている。
払出制御装置200は、遊技制御装置100から受信した払出コマンドに基づいて作成した賞球信号(賞球として払い出した球数情報)を外部情報端子板55を介して外部装置としての管理装置140に出力するとともに、払出制御装置200の固有ID、詳しくは払出用マイコン201を識別可能な個体識別情報(払出固有ID)を外部情報端子板55を介して管理装置140に出力する。
なお、カードユニット551にて払出固有IDの正当性を判定する場合には、外部情報端子板55を介して払出固有IDをカードユニット551に出力する構成とする。
外部情報端子板55は払出制御装置200とケーブルで接続されており、賞球信号、払出制御装置200の固有ID(払出固有ID)を外部装置としての管理装置140に伝送する際の中継を行う。
発射制御装置400は払出制御装置200から必要な電源の供給を受けるとともに、発射許可信号、停電検出信号を受けるようになっている。発射制御装置400は発射操作ハンドル11の操作に従って遊技球を発射する発射モータ401を制御するとともに、発射制御装置400にはタッチスイッチ402や発射停止スイッチ403からの信号が入力されている。タッチスイッチ402は遊技者が発射操作ハンドル11にタッチしているか否かを検出するものであり、発射停止スイッチ403は遊技球の発射を一時的に停止するもので、遊技者によって操作されるものである。
次に、遊技制御装置100の詳細な構成について、図5によって説明する。
遊技制御装置100は、遊技を統括的に制御する主制御装置であって、主基板(つまり主基板に形成された回路)に相当し、具体的には図5に示す回路よりなる。この遊技制御装置100は、図5に示すように、遊技用マイクロコンピュータ(つまり、遊技用マイコン)101を有するCPU部150、入力ポートなどを有する入力部151、出力ポートなどを有する出力部152、CPU部150と入力部151と出力部152との間を接続するデータバス153などからなる。
上記CPU部150は、アミューズメントチップ(IC)と呼ばれる遊技用マイコン101と、後述する近接I/F163からの信号(始動入賞検出信号)を論理反転して遊技用マイコン101に入力させるインバータなどからなる反転回路112と、水晶振動子のような発振子を備え、CPUの動作クロックやタイマ割込み、乱数生成回路の基準となるクロックを生成する発振回路113などを有する。
遊技用マイコン101は、CPU(中央処理ユニット:マイクロプロセッサ)101A、読出し専用のROM(リードオンリメモリ)101B及び随時読出し書込み可能なRAM(ランダムアクセスメモリ)101Cを備える。
ROM101Bは、遊技制御のための不変の情報(プログラム、固定データ、各種乱数の判定値等)を不揮発的に記憶し、RAM101Cは、遊技制御時にCPU101Aの作業領域や各種信号や乱数値の記憶領域として利用される。ROM101B又はRAM101Cとして、EEPROMのような電気的に書換え可能な不揮発性メモリを用いてもよい。
CPU101Aは、ROM101B内の遊技制御用プログラムを実行して、払出制御装置200や演出制御装置300に対する制御信号(コマンド)を生成したり、後述のソレノイド72,73や一括表示装置35の駆動信号を生成したりしてパチンコ機1全体の制御を行う。
また、図示しないが、遊技用マイコン101は、特図変動表示ゲームの大当り判定用乱数や大当りの図柄を決定するための大当り図柄用乱数、普図変動表示ゲームの当り判定用乱数等をハード的に生成するための乱数生成回路と、発振回路113からの発振信号(原クロック信号)に基づいてCPU101Aに対する所定周期(例えば、4ミリ秒)のタイマ割込み信号や乱数生成回路の更新タイミングを与えるクロックを生成するクロックジェネレータと、を備えている。
ここで、遊技制御装置100及び該遊技制御装置100によって駆動される後述のソレノイド72,73などの電子部品には、電源装置500で生成されたDC32V,DC12V,DC5Vなど所定のレベルの直流電圧が供給されて動作可能にされる。
電源装置500は、24Vの交流電源から上記DC32Vの直流電圧を生成するAC−DCコンバータやDC32Vの電圧からDC12V,DC5Vなどのより低いレベルの直流電圧を生成するDC−DCコンバータなどを有する通常電源部501と、遊技用マイコン101の内部のRAMに対して停電時に電源電圧を供給するバックアップ電源部502と、停電監視回路や初期化スイッチを有し遊技制御装置100に停電の発生、回復を知らせる停電監視信号や初期化スイッチ信号、リセット信号などの制御信号を生成して出力する制御信号生成部503などを備える。
この実施形態では、電源装置500は、遊技制御装置100と別個に構成されているが、バックアップ電源部502及び制御信号生成部503は、別個の基板上あるいは遊技制御装置100と一体、即ち、主基板上に設けるように構成してもよい。但し、遊技盤20及び遊技制御装置100は機種変更の際に交換の対象となるので、このように、電源装置500若しくは主基板とは別の基板にバックアップ電源部502及び制御信号生成部503を設けることにより、機種変更の際の交換の対象から外しコストダウンを図ることができる。
上記バックアップ電源部502は、電解コンデンサのような大容量のコンデンサ1つで構成することができる。バックアップ電源は、遊技制御装置100の遊技用マイコン101(特に内蔵RAM101C)に供給され、停電中あるいは電源遮断後もRAMに記憶されたデータが保持されるようになっている。制御信号生成部503は、例えば通常電源部501で生成された32Vの電圧を監視してそれが例えば17V以下に下がると、停電発生を検出したとして停電監視信号を変化させる(例えば、オンさせる)とともに、所定時間後にリセット信号を出力する。また、電源投入時や停電回復時にもその時点から所定時間経過後にリセット信号を出力する。
初期化スイッチ信号は、RAMクリアスイッチ504(初期化スイッチ)がオン状態にされたときに生成される信号で、遊技用マイコン101内のRAM101C及び払出制御装置200内のRAMに記憶されている情報を強制的に初期化する。なお本例の場合、初期化スイッチ信号は電源投入時に読み込まれ、停電監視信号は遊技用マイコン101が実行するメインプログラムのメインループの中で繰り返し読み込まれる。リセット信号は、制御システム全体をリセットさせる。
次に、遊技制御装置100の入力部151には、入力ポートとして、第1入力ポート161と第2入力ポート162が設けられている。この入力部151には、第1始動口スイッチ120、第2始動口スイッチ121、ゲートスイッチ122、入賞口スイッチ123、カウントスイッチ124、磁気センサスイッチ125、振動センサスイッチ126、ガラス枠開放検出スイッチ127及び前面枠開放検出スイッチ128からの検出信号が入力される。
入力部151には、これらの各スイッチ120〜124から入力される検出信号を0V−5Vの正論理の信号に変換するインタフェースチップ(近接I/F)163が設けられている。近接I/F163は、入力の範囲が7V−11Vとされることで、近接スイッチ(上記各スイッチ120〜124)のリード線が不正にショートされたり、スイッチがコネクタから外されたり、リード線が切断されてフローティングになったような異常状態を検出でき、このような異常状態を検出すると異常検知信号を出力する構成とされている。また近接I/F163には、前記のような信号レベル変換機能を可能にするため、電源装置400から通常のICの動作に必要な例えば5Vのような電圧の他に、12Vの電圧が供給されている。
ここで、近接I/F163の出力(異常検知信号除く)はすべて第2入力ポート162へ供給されデータバス153を介して遊技用マイコン101に読み込まれるとともに、主基板としての遊技制御装置100から中継基板170を介して試射試験装置131へ供給されるようになっている。
また、近接I/F163の出力のうち第1始動口スイッチ120と第2始動口スイッチ121の検出信号は、第2入力ポート162の他、反転回路112を介して遊技用マイコン101へ入力されるように構成されている。反転回路112を設けているのは、遊技用マイコン101の信号入力端子が、マイクロスイッチなどからの信号が入力されることを想定し、かつ負論理、即ち、ロウレベル(0V)を有効レベルとして検知するように設計されているためである。
また、第2入力ポート162には、磁気センサスイッチ125、振動センサスイッチ126からの検出信号も入力されている。第2入力ポート162が保持しているデータは、遊技用マイコン101が第2入力ポート162に割り当てられているアドレスをデコードすることによりイネーブル信号CE1をアサート(有効レベルに変化)することよって、読み出すことができる(他のポートも同様)。第1入力ポート161のイネーブル信号はCE2である。
一方、第1入力ポート161には、ガラス枠開放検出スイッチ127や前面枠開放検出スイッチ128からの信号、及び払出制御装置200からの信号が入力されている。そしてこれら信号は、第1入力ポート161からデータバス153を介して遊技用マイコン101に供給されている。払出制御装置200からの信号には、払出異常を示すステータス信号、払出し前の遊技球の不足を示すシュート球切れスイッチ信号、オーバーフローを示すオーバーフロースイッチ信号がある。オーバーフロースイッチ信号は、下皿10に遊技球が所定量以上貯留されていること(満杯になったこと)を検出したときに出力される信号である。
また入力部151には、電源装置500からの停電監視信号や初期化スイッチ信号、リセット信号などの信号を遊技用マイコン101等に入力するためのシュミットトリガ回路164が設けられており、シュミットトリガ回路164はこれらの入力信号からノイズを除去する機能を有する。電源装置500からの信号のうち停電監視信号と初期化スイッチ信号は、一旦第1入力ポート161に入力され、データバス153を介して遊技用マイコン101に取り込まれる。つまり、前述の各種スイッチからの信号と同等の信号として扱われる。遊技用マイコン101に設けられている外部からの信号を受ける端子の数には制約があるためである。
一方、シュミットトリガ回路164によりノイズ除去されたリセット信号RSTは、遊技用マイコン101に設けられているリセット端子に直接入力されるとともに、出力部152の各ポート(後述するポート171,172,175,176,177)に供給される。また、リセット信号RSTは出力部152を介さずに直接中継基板170に出力することで、試射試験装置へ出力するために中継基板170のポート(図示省略)に保持される試射試験信号をオフするように構成されている。
また、リセット信号RSTを中継基板170を介して試射試験装置へ出力可能に構成するようにしてもよい。なお、リセット信号RSTは入力部151の各入力ポート161,162には供給されない。リセット信号RSTが入る直前に遊技用マイコン101によって出力部152の各ポートに設定されたデータはシステムの誤動作を防止するためリセットする必要があるが、リセット信号RSTが入る直前に入力部151の各ポートから遊技用マイコン101が読み込んだデータは、遊技用マイコン101のリセットによって廃棄されるためである。
次に、遊技制御装置100の出力部152は、データバス153に接続された出力ポートとして、第1ポート171、第2ポート172、第3ポート175、第4ポート176、及び第5ポート177を備える。なお、技制御装置100から払出制御装置200及び演出制御装置300へは、上記ポート171,172を介してパラレル通信でデータが送信される。
第1ポート171は、払出制御装置200へ出力する4ビットのデータ信号(例えば、賞球払出しのコマンドやデータ)と、このデータ信号の有効/無効を示す制御信号(データストローブ信号)と、バッファ173を介して演出制御装置300へ出力するデータストローブ信号SSTBとを生成する。
第2ポート172は、演出制御装置300へ出力する8ビットのデータ信号を生成する。
なおバッファ173は、演出制御装置300の側から遊技制御装置100へ信号を入力できないようにするため、即ち、片方向通信を担保するために、第1ポート171からの上記データストローブ信号SSTB及び第2ポート172からの8ビットのデータ信号を出力する単方向のバッファである。なお、第1ポート171から払出制御装置200へ出力する信号に対しても同様のバッファを設けるようにしてもよい。
第3ポート175は、変動入賞装置27の開閉部材27bを開閉させるソレノイド(大入賞口ソレノイド)72や第2始動入賞口26の開閉部材26aを開閉させるソレノイド(普電ソレノイド)73の開閉データと、一括表示装置35のLEDのカソード端子が接続されているデジット線のオン/オフデータを出力するための出力ポートである。
第4ポート176は、一括表示装置35に表示する内容に応じてLEDのアノード端子が接続されているセグメント線のオン/オフデータを出力するための出力ポートである。
また第5ポート177は、大当り情報などパチンコ機1に関する情報を外部情報信号(図4に示す外部情報)として外部情報端子板55へ出力するための出力ポートである。なお、外部情報端子板55から出力された情報は、例えば遊技店に設置された情報収集端末や管理装置140に供給される。また、外部情報端子板55にはフォトリレー55aが内蔵されており、このフォトリレー55aを介して外部情報、遊技制御装置100の固有ID(主基板固有ID)、払出制御装置200の固有ID(払出固有ID)が外部装置としての管理装置140に伝送される。なお、フォトカプラでは極性があるので、接続に注意する必要があるが、上記のようにフォトリレー55aを用いれば極性が不要となり、便利であるという利点がある。
なお、カードユニット551にて払出固有IDの正当性を判定する場合には、外部情報端子板55を介して払出固有IDをカードユニット551に出力する構成とする。
なお出力部152には、データバス153に接続され図示しない認定機関の試射試験装置へ変動表示ゲームの特図図柄情報を知らせるデータや大当りの確率状態を示す信号などを中継基板170を介して出力するバッファ174が実装可能に構成されている。このバッファ174は遊技店に設置される実機(量産販売品)としてのパチンコ機1の遊技制御装置100(主基板)には実装されない部品である。なお、前記近接I/F163から出力される始動口SWなど加工の必要のないスイッチの検出信号は、バッファ174を通さずに中継基板170を介して試射試験装置へ供給される。
一方、磁気センサスイッチ125や振動センサスイッチ126のようにそのままでは試射試験装置へ供給できない検出信号は、一旦遊技用マイコン101に取り込まれて他の信号若しくは情報に加工されて、例えば遊技機が遊技制御できない状態であることを示すエラー信号としてデータバス153からバッファ174、中継基板170を介して試射試験装置へ供給される。なお、中継基板170には、上記バッファ174から出力された信号を取り込んで試射試験装置へ供給するポートや、バッファを介さないスイッチの検出信号の信号線を中継して伝達するコネクタなどが設けられている。中継基板170上のポートには、遊技用マイコン101から出力されるチップイネーブル信号CEも供給され、該信号CEにより選択制御されたポートの信号が試射試験装置へ供給されるようになっている。
また出力部152には、複数の駆動回路(第1ドライバ178a〜第4ドライバ178d)が設けられている。第1ドライバ178aは、第3ポート175から出力される大入賞口ソレノイド72や普電ソレノイド73の開閉データ信号を受けて、それぞれのソレノイド駆動信号を生成し出力する。第2ドライバ178bは、第3ポート175から出力される一括表示装置35の電流引き込み側のデジット線のオン/オフ駆動信号を出力する。第3ドライバ178cは、第4ポート176から出力される一括表示装置35の電流供給側のセグメント線のオン/オフ駆動信号を出力する。また第4ドライバ178dは、第5ポート177から管理装置等の外部装置へ供給する外部情報信号を外部情報端子板55へ出力するものである。
なお、第1ドライバ178aには、32Vで動作する各ソレノイド72,73を駆動できるようにするため、電源電圧としてDC32Vが電源装置500から供給される。また、前記セグメント線を駆動する第3ドライバ178cには、DC12Vが供給される。また前記デジット線を駆動する第2ドライバ178bは、表示データに応じたデジット線を電流で引き抜くためのものであるため、電源電圧は12V又は5Vのいずれであってもよい。なお一括表示装置35は、12Vを出力する第3ドライバ178cにより前記セグメント線を介して所定のLEDのアノード端子に電流が流し込まれ、接地電位を出力する第2ドライバ178bにより所定のLEDのカソード端子からセグメント線を介して電流が引き抜かれることで、ダイナミック駆動方式で順次選択されたLEDに電源電圧が流れて所定のLEDが点灯する。また第4ドライバ178dは、外部情報信号に12Vのレベルを与えるため、DC12Vが供給される。
さらに、出力部152には、外部の検査装置180へ各遊技機の識別コードやプログラムなどの情報を送信するためのフォトカプラ179が設けられている。フォトカプラ179は、遊技用マイコン101が検査装置180との間でシリアル通信によってデータの送受信を行なえるように双方通信可能に構成されている。なお、かかるデータの送受信は、通常の汎用マイクロプロセッサと同様に遊技用マイコン101が有するシリアル通信端子を利用して行なわれるため、入力ポート161,162のようなポートは設けられていない。
次に、演出制御装置300の構成と、この演出制御装置300に接続される機器について、図6によって詳細に説明する。
本実施例では、演出制御装置300はデフォルト値設定手段、演出制御手段、書換手段を構成する。
演出制御装置300は、遊技用マイコン101と同様にアミューズメントチップ(IC)からなる主制御用マイコン(1stCPU)311と、該1stCPU311からのコマンドやデータに従って表示装置41への映像表示のための画像処理を行うグラフィックプロセッサとしてのVDP(Video Display Processor)312と、各種のメロディや効果音などをスピーカ12a,12bから再生させるため音の出力を制御する音源LSI313とを備えている。
ここで、主制御用マイコン(1stCPU)311の他に、該1stCPU311の制御下でもっぱら映像制御を行う映像制御用マイコン(2ndCPU)を配置し、2つのCPUを備え、VDPは該2ndCPU312からのコマンドやデータに従って表示装置41への映像表示のための画像処理を行うという構成も考えられるが、本実施例では、高性能化した1stCPU311のみを備え、配置スペースやコストの点で有利にしている。
なお、主制御用マイコン(1stCPU)と、該1stCPUの制御下でもっぱら映像制御を行う映像制御用マイコン(2ndCPU)の2つを配置する構成を採用してもよい。
上記主制御用マイコン(1stCPU)311には、CPUが実行するプログラムを格納したPROM(プログラマブルリードオンリメモリ)321やRTC(real time clock)325が接続されるとともに、VDP312が接続される。
RTC325は時刻を刻むクロック素子であり、設定により実時刻に合わせることが可能であり、そのクロック信号は主制御用マイコン311に送られる、主制御用マイコン311はRTC325からの信号を用いて、例えば遊技店のイベント告知や特殊演出など時刻に関した演出制御が可能になっている。
一方、VDP312にはキャラクタ画像や映像データが記憶された画像ROM322が接続され、音源LSI313には音声データが記憶された音声ROM323が接続されている。
主制御用マイコン311は、遊技制御装置100の遊技用マイコン101からの制御コマンド(前記第2ポート172から出力される8ビットのデータ信号)を解析し、演出内容を決定して表示装置41の出力映像の内容を指示したり、音源LSI313への再生音の指示、前述した装飾装置42、43や演出装置44、45の駆動制御などの処理を実行する。
例えば、変動表示ゲームを実行する際には、遊技制御装置100から停止図柄の組み合わせ(結果態様)のデータと、リーチ系統(或いは変動時間)のデータとを含むコマンド(例えば後述する変動パターンコマンド)が、演出制御装置300に送信される構成となっており、これを受けた主制御用マイコン311は、この停止態様と変動時間を満足する変動態様を選択して、VDP312を介して表示装置41に所定の特図を変動表示させて最終的に特定の図柄の組み合わせ(結果態様)を導出表示させる特図変動表示ゲームの制御を行う構成となっている。
なお、演出制御装置300の制御で実際に実施される特図の変動表示等の態様は、遊技制御装置100からのコマンドによって一義的に決定されてもよいが、上記コマンドで与えられた条件の範囲で、演出制御装置300の主制御用マイコン311が乱数抽出などによって態様を最終的に選択する構成(演出制御装置300にも態様を選択する、ある程度の裁量が与えられた構成)となっている。
ここで、主制御用マイコン311の作業領域を提供するRAM311aは、チップ内部に設けられている。なお、作業領域を提供するRAM311aはチップ外部に設けるようにしてもよい。
また、特に限定されるわけではないが、主制御用マイコン311と音源LSI313との間は、シリアル方式でデータの送受信が行なわれ、主制御用マイコン311とVDP312との間は、パラレル方式でデータの送受信が行なわれるように構成されている。一般には、パラレル方式でデータを送受信することで、シリアルの場合よりも短時間にコマンドやデータを送信することができる。
VDP312には、画像ROM322から読み出されたキャラクタなどの画像データを展開したり加工したりするのに使用される超高速なVRAM(ビデオRAM)312aや、画像を拡大、縮小処理するためのスケーラ312b、LVDS(小振幅信号伝送)方式で表示装置41へ送信する映像信号を生成する信号変換回路312cなどが設けられている。
VDP312から主制御用マイコン311へは表示装置41の映像とガラス枠5や遊技盤20に設けられているランプ類の点灯を同期させるために垂直同期信号VSYNCが入力される。さらに、VDP312から主制御用マイコン311へは、VRAMへの描画の終了等処理状況を知らせるため割込み信号INT0〜nと、主制御用マイコン311からのコマンドやデータの受信待ちの状態にあることを知らせるためのウェイト信号WAITと、が入力される。また、主制御用マイコン311と音源LSI313との間は、ハンドシェイク方式でコマンドやデータの送受信を行うために、呼び掛け(コール)信号CTSと応答(レスポンス)信号RTSが交換される。
また、演出制御装置300には、遊技制御装置100の遊技用マイコン101から送信されてくるコマンド(前記第2ポート172から出力される8ビットのデータ信号)を受信するインタフェースチップ(コマンドI/F)331が設けられている。このコマンドI/F331を介して、上記遊技用マイコン101からの制御コマンド、例えば飾り特図保留数コマンド、特図種別・図柄情報コマンド、変動パターン乱数コマンド、客待ちデモコマンド、変動パターンコマンド、及びファンファーレコマンド等を、主制御用マイコン311が受信する。
なお、遊技制御装置100の遊技用マイコン101から送信されてくるコマンドは、必要に応じて主制御用マイコン311に内蔵されて作業領域を提供するRAM311aに記憶される。
この場合、上記コマンドはRAM311aのコマンド記憶領域のようなエリアに記憶される。詳しくは、遊技制御装置100から演出制御装置300へ送られるコマンドのうち、例えば組となる変動パターンコマンド及び図柄コマンドが順次送信される場合、これらのコマンドはRAM311aの記憶エリアのうち、コマンド記憶領域に順次記憶保持され、組が成立した時点でコマンド記憶領域から読みだされて主制御用マイコン311が演出処理を実行するようになっている。なお、コマンド記憶領域は、第1コマンド記憶領域及び第2コマンド記憶領域に分けた構成でもよい。
また、先に送られる変動パターンコマンドを受信した時点で、演出制御装置300では主制御用マイコン311のRAM311aの演出に関する記憶領域をデフォルト値(例えば、はずれ図柄での図柄停止状態)に設定する動作が行われるようになっている。
上記の「演出に関する記憶領域」はデフォルト値を設定するエリアであり、コマンド記憶領域とは別になっている。
遊技制御装置100の遊技用マイコン101はDC5Vで動作し、演出制御装置300の主制御用マイコン311はDC3.3Vで動作するため、コマンドI/F331には信号のレベル変換の機能が設けられている。
さらに、演出制御装置300には、前述の盤装飾装置42のLEDを駆動制御する盤装飾LED制御回路332、前述の枠装飾装置43のLEDを駆動制御する枠装飾LED制御回路333、前述の盤演出装置44のモータやソレノイドを駆動制御する盤演出モータ/SOL制御回路334、前述の枠演出装置45のモータ(例えば前記ムービングライト14を動作させるモータ等)を駆動制御する枠演出モータ制御回路335が設けられている。これらの制御回路332〜335は、アドレス/データバス340を介して主制御用マイコン(1stCPU)311と接続されている。なお、盤装飾装置42や枠装飾装置43の発光源として、LED以外の発光源が使用されてもよい。
また、演出制御装置300には、ガラス枠5に設けられた演出ボタン9に内蔵されている演出ボタンSW46や上記盤演出装置44内のモータの初期位置を検出する演出モータSW47のオン/オフ状態を検出して主制御用マイコン(1stCPU)311へ検出信号を入力するSW入力回路336、ガラス枠5に設けられた上スピーカ12aを駆動するオーディオパワーアンプなどからなるアンプ回路337a、操作パネル6に設けられた下スピーカ12bを駆動するアンプ回路337bが設けられている。
電源装置500の通常電源部501は、上記のような構成を有する演出制御装置300やそれによって制御される電子部品に対して所望のレベルの直流電圧を供給するため、モータやソレノイドを駆動するためのDC32V、液晶パネルからなる表示装置41を駆動するためのDC12V、コマンドI/F331の電源電圧となるDC5Vの他に、前述のLEDやスピーカ12a,12bを駆動するためのDC18Vやこれらの直流電圧の基準としたり、電源モニタランプを点灯させるのに使用するNDC24Vの電圧を生成するように構成されている。さらに、主制御用マイコン(1stCPU)311として、3.3Vあるいは1.2Vのような低電圧で動作するLSIを使用する場合には、DC5Vに基づいてDC3.3VやDC1.2Vを生成するためのDC−DCコンバータが演出制御装置300に設けられる。なお、DC−DCコンバータは通常電源部501に設けるようにしてもよい。
電源装置500の制御信号生成部503により生成されたリセット信号RSTは、主制御用マイコン311、VDP312、音源LSI313、前述の制御回路332〜335、アンプ回路337a、337bに供給され、これらをリセット状態にする。また、この実施例においては、主制御用マイコン311の有する汎用のポートを利用して、VDP312に対するリセット信号を生成して供給する機能を有するように構成されている。これにより、主制御用マイコン311とVDP312の動作の連携性を向上させることができる。
また、本実施例では演出制御装置300に無線モジュール360が設けられており、無線モジュール360はCPU360a、ROM360b、RAM360cにより構成される。なお、無線モジュール360には電源装置500から所定の電源が供給される。
無線モジュール360は主制御用マイコン311に接続され、主制御用マイコン311からの指令に従って自身の遊技機(パチンコ機1)と他の遊技機370との間で無線通信(後述のサブ間通信)を行い、その通信によって互いの遊技機の状態を情報交換したり、画像やキャラクタの伝送や交換などの制御を行い、各遊技機の表示装置に相互に関連性のある画像やキャラクタを同調あるいは同期させながら表示させる。CPU360aは無線通信の制御や画像、キャラクタの伝送などの処理を行い、ROM360bはCPU360aの実行するプログラムを格納しており、RAM360cはワークエリアとして用いられる。
設定スイッチ371は、複数の遊技機間でデータをやり取りするにあたって、送信元や送信先の遊技機を特定できるように、遊技機毎に異なる遊技機番号(例えば、1の遊技島に配置されている遊技機が10台あれば、左から順にNo.1〜10(n台であれば、n)とする))を遊技店の係員によって操作可能なものである。例えば、上述のサブ間通信により、島に配置されている全遊技機に同一の画像やキャラクタを表示させたり、相互に関連性のある画像やキャラクタを同調あるいは同期させながら表示させることが設定スイッチ371の操作により可能となる。また、前述した遊技機番号を用いることで、特定の2台の遊技機間だけで前記演出を行うことも可能である。
遊技機番号は、例えば無線モジュールに設定されている固有IDを基に定義するようにしてもよいが、この場合は無線モジュールの固有IDの値がほぼランダムであることから遊技機の並びを特定するのが困難であり、島の左端の遊技機から順に群予告が流れていくといったような演出を行いたい場合は、各遊技機のロケーション情報を管理するためのマスターとなる遊技機や管理装置を設ける必要が出てしまい、手間がかかる。
そこで、本実施例では単純に島の遊技機を順番に特定可能な設定スイッチ371による手動設定によって、演出台を特定して演出を行えるようにしたので、誰でも簡単に操作できる上、前記演出も楽に制御できるようになっている。
また、設定スイッチ371の用途として、ロケーション情報設定用ではなく、無線モジュール360の制御内容を複数段階にモード設定し、遊技店の営業形態等に合わせて切り替えて選択するためのものとしてもよい。
なお本例の場合、上記演出制御装置300を構成する回路基板が、サブ制御基板に相当する。そして、以上説明したように、表示装置41を制御する演出制御装置300(サブ制御基板)がスピーカやランプ類や装飾用の可動部などを制御しており、遊技制御装置100を構成する後述の主基板は、サブ制御基板へ制御コマンドを送ることで前記可動部などを間接的に制御している。このため、主基板の配線パターンなどのハード構成は機種が異なっても基本的に同じであり、遊技機用マイコン101に機種毎の遊技プログラムをインストールすることによって、技術的には主基板を機種やブランドが異なっても共用できる。
次に、VDP(Video Display Processor)312の構成について、図7によって詳細に説明する。
VDP312は、CPUI/F601、データ転送回路602、CGバスI/F603、圧縮データ伸長回路604、描画回路605、第1VRAM606、第2VRAM607及び表示回路608を備えており、データ転送のためにバス609〜611を介して必要な回路同士が接続されている。
VDP312は、CPUI/F601を介して演出制御装置300の主制御用マイコン311に接続されるとともに、CGバスI/F603を介して画像ROM322に接続される。そして、VDP312では、基本的に演出制御装置300の主制御用マイコン311からの指示で、表示装置41に表示する1フレーム毎の画像データを作成し、表示回路608表示装置42に出力する。なお、第1VRAM606は主にフレームバッファ用のRAMとして、具体的には例えばフレームバッファ、Zバッファ用(3次元の場合、Z軸方向の量)のRAMとして用いられる。一方、第2VRAM607は主に素材用のデータを格納する描画素材用のRAMとして用いられる。
画像ROM322のデータは、CGバスI/F603を介して第2VRAM607に格納される。なお、圧縮されているデータは、圧縮データ伸長回路604で伸長されて、第2VRAM607に格納され、また、必要に応じて第1VRAM606にも格納される。
描画回路605は、主に第2VRAM607に格納されている描画用素材を加工して(例えば、各種エフェクト、拡大、縮小などの加工)、また、表示する位置や順序(例えば、画面の奥から手前への表示順序など)を制御し、1フレームの画像データを作成して第1VRAM606に格納する。
表示回路608は、スケーラ608aとLVDSI/F608bを有している。
そして、表示回路608は、第1VRAM606に格納された1フレームの画像データをインターレスモードやノンインターレスモードの設定タイミングで、LVDS仕様の信号レベルにしてRGBデータを表示装置41へ出力する。なお、スケーラ608aにより画像データの表示領域を拡大して(例えばVGA→XGAにして)表示することも可能である。例えば、VGAであれば、画像サイズは640×480となり、XGAであれば画像サイズは1024×768の大きさとなる。
データ転送回路602は、主制御用マイコン311と第1VRAM606との間、主制御用マイコン311から描画回路605への間、CGバスI/F603と第1VRAM606との間等のデータ転送機能を有する。
E.遊技の概要
次に、本例のパチンコ機1で行われる遊技の概要や遊技の流れについて説明する。
まず、遊技開始当初の時点(或いは遊技開始前の時点)では、客待ち状態(デモ中)となっており、客待ち画面の表示を指令するコマンドが遊技制御装置100のバッファ(例えば、同様の機能の図5ではバッファ173に相当)から演出制御装置300に送信され、表示装置の表示部41aには客待ち画面(動画又は静止画)が表示される。
そして、ガイドレール21を介して遊技領域22に打込まれた遊技球が、特図の始動入賞口25又は26に入賞すると(即ち、特図の始動入賞があると)、特図の変動表示を指令するコマンドが遊技制御装置100から演出制御装置300に送信され、表示部41aにおいて特図(数字、文字、記号、模様等よりなるもの)が変動(例えば、スクロール)する表示(いわゆる変動表示)が行われて、特図の変動表示ゲーム(以下、特図変動表示ゲームという)が行われる。
そして、この変動表示ゲームの停止結果態様(変動表示により導出された特図の組合せ)が特別結果態様(例えば、「3、3、3」などのゾロ目)であれば、大当りと呼ばれる特典が遊技者に付与される。なお制御上は、例えば始動入賞があったことを条件として、大当り乱数等の値が抽出記憶されて、この抽出記憶された乱数値と予め設定された判定値とが判定時に比較判定され、この比較判定結果に基づいて、予め大当りとするか否かが決定され、この決定に応じて上記変動表示ゲームが開始される。
また、通常モードにおいて、変動表示ゲームの停止結果態様が特別結果態様のうちの特定の態様(例えば、「7、7、7」のゾロ目)であれば、上記大当りになるとともに、大当り遊技後(後述する特賞期間後)に、ゲーム状態が通常モードから確変モードへ移行する。この確変モードでは、特図が大当りになる確率(以下、特図の大当り確率という)を高める制御が行われる。また場合によっては、いわゆる時短(特図等の変動表示時間を短くして変動表示ゲームの頻度を高め当り易くするもの)も行われる。
上記大当りになって大当り状態に移行すると、ファンファーレ期間(大当りになったことを演出する効果音の出力などが実行される期間)を経て、変動入賞装置27の大入賞口が、規定時間(例えば、30秒)を越えない範囲内において、例えば10個入賞までの期間だけ一時的に開放される開放動作(大当たりラウンド)が行われる。そしてこの開放動作は、規定のラウンド数だけ繰り返し行われる。また、この大当り状態では、大当り状態を演出したり、大当りラウンド数などを遊技者に報知するための大当り画面の表示を指令するコマンドが遊技制御装置100から演出制御装置300に送信され、表示部41aでは、このような大当り中の表示が実行される。
なお、この大当り状態になっている期間(ファンファーレ期間と、大入賞口が開放されている大当りラウンドの期間と、大当りラウンドと次の大当りラウンドの間のインターバル期間と、エンディング期間)が、特賞期間に相当する。
また上記大当りのラウンド数としては、例えば、通常は15ラウンド大当りが主の大当りであるが、プレミアとして16R大当りを発生させる構成でもよいし、その他の構成でもよい。また、いわゆる突確(出玉の少ない大当りを経由して大当り確率が変化する突然確変)として2ラウンド大当り等があってもよい。
また、上記特図の変動表示ゲーム中又は大当り中に、始動入賞口25又は26にさらに遊技球が入賞したときには、表示部41a等で特図の始動記憶の保留表示が行われて例えば4個まで記憶され、変動表示ゲーム又は大当り状態が終了した後に、その始動記憶に基づいて上記特図の変動表示ゲームが繰り返されたり、客待ち状態に戻ったりする。
即ち、変動表示ゲームが大当りで終了すれば大当り状態に移行し、変動表示ゲームがはずれで終了し始動記憶があれば再度変動表示ゲームが実行され、変動表示ゲームがはずれで終了し始動記憶がなければ客待ち状態に戻り、大当りが終了して始動記憶があれば再度変動表示ゲームが実行され、大当りが終了して始動記憶がなければ客待ち状態に戻る流れとなっている。
なお本形態例では、例えば特図の始動記憶(特図始動記憶)の表示を2種類(特図1保留表示と特図2保留表示)行うようにし、特図変動表示ゲームとして、2種類の変動表示ゲーム(第1変動表示ゲームと第2変動表示ゲーム)を実行する。即ち、遊技球が第1始動入賞口25に入ることによる特図始動入賞(第1始動入賞)が発生すると、表示装置41にて特図1の変動表示による第1変動表示ゲームが行われる。そして、何れかの特図変動表示ゲーム中などに遊技球が第1始動入賞口25に入賞すると、第1始動記憶(特図1保留表示に対応する始動記憶)が1個記憶され、これに対して、上記特図変動表示ゲーム終了後などに、表示装置41にて特図1の変動表示による第1変動表示ゲームが行われる。
また、遊技球が第2始動入賞口26に入ることによる特図始動入賞(第2始動入賞)があると、表示装置41にて特図2の変動表示による第2変動表示ゲームが行われる。そして、何れかの特図変動表示ゲーム中などに遊技球が第2始動入賞口26に入賞すると、第2始動記憶(特図2保留表示に対応する始動記憶)が1個記憶され、これに対して、上記特図変動表示ゲーム終了後などに、表示装置41にて特図2の変動表示による第2変動表示ゲームが行われる構成となっている。
なお、第1始動記憶と第2始動記憶の両方があるときには、予め設定されたルールに従って第1変動表示ゲームと第2変動表示ゲームのうちの何れかが先に実行される。例えば、第2始動入賞口26に対応する第2変動表示ゲームが優先的に行われる態様(即ち、第2始動記憶が優先的に消化される態様)、或いは2種類の変動表示ゲームが交互に行われる態様などが有り得る。
一方、遊技中に、遊技球が普図始動ゲート32を通過したときは、表示部41a等で普図の変動表示による普図の変動表示ゲーム(以下、普図変動表示ゲームという)が行われる。そして、この普図変動表示ゲーム結果(停止した普図)が所定の態様(特定表示態様)であれば、普図当りと呼ばれる特典が付与される。
この普図当りになると、第2始動入賞口26の一対の開閉部材26aが逆ハの字に開いた開状態に、所定の開放時間だけ一時的に保持される遊技が行われる。これにより、遊技球が始動入賞し易くなり、その分、特図の変動表示ゲームの実施回数が増えて大当りになる可能性が増す。
また、上記普図の変動表示ゲーム中に、普図始動ゲート32にさらに遊技球が入賞したときには、一括表示装置35によって普図始動記憶の保留表示が実行されて、例えば4個まで記憶され、普図の変動表示ゲームの終了後に、その記憶に基づいて上記普図の変動表示ゲームが繰り返される。
次に、固有IDの外部出力について概略説明すると、パチンコ機1の電源投入時やシステムリセット時には、遊技用マイコン101に格納(例えば、HWパラメータROMに格納)されている固有IDが読み出されて、遊技プログラムの動作によりシリアル通信形式(又はパラレル通信形式でもよい)にされて、外部情報端子板55で中継されて外部の管理装置140(又はカードユニット551を含めてもよい)に伝送される。これにより、遊技用マイコン101に格納されている固有IDを遊技店側に送ることが可能になる。
また、固有IDは外部からの要求に応答して外部(ここでは図4の検査装置接続端子102)へと転送される。そして、例えば検査装置接続端子102に検査装置を接続することにより、遊技用マイコン101に格納されている固有IDが検査機関にて読み出されることになる。
一方、払出制御装置200の払出用マイコン201を識別可能な払出固有ID(払出個体識別情報)は、払出制御装置200にて払出プログラムの動作によりシリアル通信形式(又はパラレル通信形式でもよい)にされて、外部情報端子板55で中継されて外部の管理装置140(又はカードユニット551を含めてもよい)に伝送される。これにより、払出用マイコン201に格納されている払出固有IDを遊技店側に送ることが可能になる。
次に、遊技制御装置100から演出制御装置300へ送信されるコマンドについて概略説明すると、変動表示ゲームを実行する際には、遊技制御装置100から停止図柄の組み合わせ(結果態様)のデータと、リーチ系統(或いは変動時間)のデータとを含むコマンド(例えば後述する変動パターンコマンド)が演出制御装置300に送信され、演出制御装置300では、この停止態様と変動時間を満足する変動態様を選択して、表示装置41に所定の特図を変動表示させて最終的に特定の図柄の組み合わせ(結果態様)を導出表示させる特図変動表示ゲームの制御が行われる。
この場合、遊技制御装置100から演出制御装置300へ送信されるコマンドのうち、単独では演出を開始せず、組で効果を発揮するものがあり、例えば特図変動開始時の「変動パターンコマンド+図柄指定コマンド」がある。
このとき、図柄の変動開始時に組となるコマンドの一部をノイズ等に取りこぼしてしまうと、正規の図柄を表示できないことから、先に受信するコマンドを受信した時点で、演出制御装置300における主制御用マイコン(1stCPU)311のRAM311aの図柄変動に関するメモリ領域(ここでは、演出に関する記憶領域)にデフォルト値を設定する処理が行われる。したがって、コマンドの取りこぼしが発生した場合は、発覚した時点でデフォルト値(例えば、はずれ図柄での図柄停止状態)が採用されて、相応の演出(例えば、はずれ図柄での変動停止)が行われ、少なくとも本来ははずれであるにも関わらず、大当り図柄で停止してしまうなどの思わぬトラブルが防止される。
その後、コマンドの組が正常に演出制御装置300へ送信された(組が成立)時点で、正規の情報に書き換えられ、正しい演出が実行される。
F.制御系の動作
次に、遊技制御装置100の制御内容について図8〜図92により説明する。
最初に、以下のフローチャートの説明に使用する主要な構成の概念を明確にしておくと、下記の通りである。
前述したように、一括表示装置35で本特図や本普図を表示している。以下の制御処理の説明における特図は、この特図(本特図)を意味するので、以上を前提に細かく説明する。なお、遊技制御装置100からのコマンドに基づいて演出制御装置300が制御する特図は表示装置41の方に表示される演出用の特図である。
(イ)特図の表示装置
以下のフローチャートで特図という場合には、一括表示装置35で表示される「本特図」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は「飾り特図」という。
このように特図を表示する装置は一括表示装置35であるが、一括表示装置35における本特図を表示する領域の名称としては、例えば特別図柄表示装置、特図表示装置というものがあり、普図表示装置との区別を図るため、特別図柄表示装置ということがある。
(ロ)普図の表示装置
以下のフローチャートで普図という場合には、一括表示装置35で表示される「本普図」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は、例えば「飾り普図」という。
このように普図を表示する装置は一括表示装置35であるが、一括表示装置35における本普図を表示する領域の名称としては、例えば普通図柄表示装置、普図表示装置というものがあり、特図表示装置との区別を図るため、普通図柄表示装置ということがある。
ただし、本実施例では、このような普図の表示を表示装置41では表示していない構成になっている。なお、普図(ここでは飾り普図)表示を行う表示器を設けてもよい。遊技機の説明をする上で、必要な場合には「飾り普図」を表示する装置を含めて説明することもある。
(ハ)普電
普電に相当する装置は、普通電動役物(普電)としての第2始動入賞口26である。
ただし、普電を普通変動入賞装置ということがあり、例えばフローチャートの説明では、特に普通電動役物(普通変動入賞装置26)ということがある。
また、例えば高確率時や時短時などに、普通電動役物(普電)としての第2始動入賞口26の開閉部材26aが開放する動作によって始動入賞をサポートすることが行われるが、これを単に普電サポートということがある。
(ニ)特図記憶
以下のフローチャートで特図保留(単に「保留」という場合もある)、特図記憶、あるいは特図の始動記憶という場合には、一括表示装置35で表示される「本特図記憶」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は「飾り特図保留」、あるいは「飾り特図記憶」という。
特図の始動入賞口として機能する入賞口は、始動入賞口25,26である。
(ホ)普図記憶
以下のフローチャートで普図保留、普図記憶、あるいは普図の始動記憶という場合には、一括表示装置35で表示される「本普図記憶」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は「飾り普図保留」、あるいは「飾り普図記憶」という。
ただし、本実施例では、このような普図の始動記憶表示を表示装置41では表示していない構成になっている。なお、普図の始動記憶(ここでは飾り普図記憶)表示を行う表示器を設けてもよい。遊技機の説明をする上で、必要な場合には「飾り普図記憶」を表示する装置を含めて説明することもある。
(ヘ)変動入賞装置
変動入賞装置27は、開閉部材27bによって開閉される大入賞口27aを有する装置(いわゆるアタッカー)である。この変動入賞装置27は、普通変動入賞装置と区別するために特別変動入賞装置ということもある。
〔遊技制御装置のメイン処理〕
まず、図8、9により、遊技制御装置100(遊技用マイコン101)のメイン処理を説明する。
このメイン処理は、遊技用マイコン101に強制的にリセットがかけられたことに基づいて開始する。すなわち、電源装置500の図示省略した電源スイッチがオン操作されると、所定のタイミングに(電源投入時の所定のリセット期間に)電源装置500の制御信号生成部503からリセット信号が遊技制御装置100に入力されて遊技用マイコン101のリセット端子がオンし、その後このリセット信号が解除されると、遊技用マイコン101が起動する。なお、停電からの電源復旧時にも、同様にリセット信号がオンした後に解除されて遊技用マイコン101が起動する。また、作業者が遊技制御装置100のユーザワークRAM等の初期化をしようとする場合には、電源装置500のRAMクリアスイッチ504(初期化スイッチ)をオン操作しながら前記電源スイッチをオン操作する必要がある。
そして遊技用マイコン101が起動すると、まず割込みを禁止する処理(ステップS1)を行い、次いで、割込みが発生したときに実行するジャンプ先のベクタアドレスを設定する割込みベクタ設定処理(ステップS2)、割込みが発生したときにレジスタ等の値を退避する領域の先頭アドレスであるスタックポインタを設定するスタックポインタ設定処理(ステップS3)、割込み処理のモードを設定する割込みモード設定処理(ステップS4)を順次行う。
次いで、ステップS5で払出基板(払出制御装置200)のプログラムが正常に起動するのを待つために所定のディレイ時間(例えば4msec)だけ処理の進行を停止する。これにより、電源投入の際に仮に遊技制御装置100が先に立ち上がって払出制御装置200が立ち上がる前にコマンドを払出制御装置200へ送ってしまい、払出制御装置200がコマンドを取りこぼすのを回避することができる。
上記ディレイ時間が経過すると、RWM(リードライトメモリ)のアクセス許可をした後、全出力ポートにオフ信号(2値信号の「0」に相当する信号:つまり出力が無い状態に設定)を出力する(ステップS6、S7)。
ここで、本実施例においてRWMとは、RAM101Cを指すが、RAMに限らず、RWMとして例えばEEPROM等の読出し書込み可能な記憶素子を含めて使用してもよい。
なお、リセット信号によって各出力ポートはオフ設定(リセット)されているので、ソフト的に各出力ポートにオフ信号を出力する必要は必ずしもないが、ここでは念のためにステップS7が設けられている。
続いて、ステップS8ではシリアルポート((遊技用マイコン101に予め搭載されているポート)この実施例では、払出制御装置200や演出制御装置300とパラレル通信を行っているため使用しない))を使用しない状態に設定する処理を行う。
ここで、シリアルポートを使用しない状態に設定するのは、固有IDを外部(例えば、管理装置140)へ出力するときに、このシリアルポートを使用するから、ここでは一旦使用しない状態にしておくものである。なお、払出制御装置200や演出制御装置300との間でシリアル通信を行う必要がある場合もあるので、そのときはステップS8でシリアルポートを使用する状態に設定することになる。
次いで、電源装置500内の初期化スイッチがオンしているか否か判定する(ステップS9)。これは、初期化スイッチ信号の状態によって前記初期化スイッチがオンしているか否か判断するもので、初期化スイッチがオンしていればステップS25に進み、オンしていなければステップS10に進む。
なお、ステップS25に進むのは、前記初期化スイッチがオン操作されて遊技用マイコン101が起動した場合、後述するステップS11、ステップS13のそれぞれでRWMの停電検査領域1、停電検査領域2が全て正常ではないと判定された場合、或いは後述するステップS16でチェックサムが正常でないと判定された場合である。このため、ステップS25に進むと、遊技用マイコン101のRWM内のデータ(アクセス禁止領域を除く)を初期化するなどの処理を行う。
初期化スイッチがオンしていなければ、ステップS10に進んで、RWMの停電検査領域1の値が正常な停電検査領域チェックデータ1であるか否かチェックし、ステップS11でチェック結果が正常でないと判断すると、ステップS25にジャンプする。一方、ステップS11でのチェック結果が正常であれば、続くステップS12でRWMの停電検査領域2の値が正常な停電検査領域チェックデータ2あるか否かチェックする。そして、ステップS13でチェック結果が正常でなければステップS25にジャンプし、チェック結果が正常であれば、ステップS14に進む。
このように、RWMの停電検査領域1、2の値が全て正常であれば、停電復帰時であると判断してステップS14に進むことになる。一方、RWMの停電検査領域1、2の値が異常であれば(正常に記憶されてなければ)通常の電源投入時であるとしてステップS25にジャンプすることになる。
なお、停電検査領域チェックデータ1、2は、後述するステップS25で設定されるものである。これらのステップS10、12では、このように複数のチェックデータ1,2によって停電復帰時であるか否か判定するので、停電復帰時であるか否かの判断が信頼性高く為される。
次にステップS14では、RWMのデータのチェックサムを算出し、ステップS15で電源遮断時のチェックサムと比較し、その値が正常(一致)か否かを判定する(ステップS16)。このチェックサムが正常でない場合(即ちRWMのデータが壊れているとき)には、ステップS25に進み、前記チェックサムが正常である場合にはステップS17に進む。
ステップS17では全ての停電検査領域をクリアし、ステップS18でチェックサム領域をクリアし、更にステップS19でエラー及び不正監視に係る領域をリセットする。このようにして、停電復旧のための処理(初期値設定)を実行する。
次に、RWM内の遊技状態を記憶する領域を調べて遊技状態が高確率状態であるか否かを判定する(ステップS20)。ここで、高確率でないと(ステップS20;NO)と判定した場合は、ステップS21,S22をスキップしてステップS23へ移行する。
また、ステップS20で高確率であると(ステップS20;YES)と判定した場合は、ステップS21で高確率報知フラグ領域にオン情報をセーブし、ステップS22で例えば一括表示装置35に設けられる高確率報知LED(図示略)のオンデータをセグメント領域にセーブする。これにより、今回の高確率状態に対応する処置が行なわれることとなり、例えば一括表示装置35に設けられる高確率報知LEDが点灯して高確率状態を知らせる表示がされる。
次いで、ステップS23で特図ゲーム処理番号に対応する停電復旧時のコマンド(停電復旧コマンド)を送信する。このステップS23を経ると、ステップS24に進む。
一方、ステップS9、S11、S13、S16からステップS25へジャンプした場合には、先ずCPUが使用するRWM内のアクセス禁止領域より前の全作業領域をクリアしてから(ステップS25)、RWM内のアクセス禁止領域より後の全作業領域をクリアし(ステップS26)、初期化すべき領域に電源投入時の初期値をセーブする(ステップS27)。それから、RWMクリアに関する外部情報(セキュリティ信号)の出力タイマ初期値(例えば、256ms)をセキュリティ信号制御タイマ領域にセーブする(ステップS28)。さらに、電源投入時のコマンド(電源投入コマンド)を演出制御装置300に送信する処理を行う(ステップS29)。
電源投入コマンドが送信されると、他の制御装置は、この電源投入コマンドを受けて、例えば演出制御装置300であれば枠演出装置のモータの動作位置を初期位置にするなどの初期化を行い、RWMクリアがなされたことを報知する演出を開始する。ステップS29を経ると、ステップS24に進む。
さて、上述のステップS23あるいはステップS29から、ステップS24に進むと、ステップS24では、遊技用マイコン101(クロックジェネレータ)内のタイマ割込み信号及び乱数更新トリガ信号(CTC)を発生するCTC(Counter/Timer Circuit)回路を起動する処理を行う。
なお、CTC回路は、遊技用マイコン101内のクロックジェネレータに設けられている。クロックジェネレータは、水晶発振器113からの発振信号(原クロック信号)を分周する分周回路と、分周された信号に基づいてCPU101Aに対して所定周期(例えば、4ミリ秒)のタイマ割込み信号及び乱数生成回路へ供給する乱数更新のトリガを与える信号CTCを発生するCTC回路とを備えている。
上記ステップS24のCTC起動処理の後は、乱数生成回路を起動設定する処理を行う(ステップS30)。具体的には、乱数生成回路内の所定のレジスタ(CTC更新許可レジスタ)へ乱数生成回路を起動させるためのコード(指定値)の設定などがCPU101Aによって行われる。それから、電源投入時の乱数生成回路内の所定のレジスタ(ソフト乱数レジスタ1〜n)の値を抽出し、対応する各種初期値乱数(大当り図柄を決定する乱数(大当り図柄乱数1、大当り図柄乱数2)、普図の当たりを決定する乱数(当り乱数))の初期値(スタート値)としてRWMの所定領域にセーブする(ステップS31)。
この乱数生成回路によってハード的に特図や普図の各乱数のうちの一部が生成される。但し、これら乱数の初期値は、後述するステップS33の処理によってソフト的に設定される。そして、本実施例で使用するCPU101A内の乱数生成回路においては、電源投入毎にソフト乱数レジスタの初期値が変わるように構成されているため、この値を各種初期値乱数の初期値(スタート値)とすることで、ソフトウェアで生成される乱数の規則性を崩すことができ、遊技者による不正な乱数の取得を困難にすることができる。
なお、特図に関連する乱数としては、大当り乱数(大当りとするか否かを決定するための乱数)、大当り図柄乱数1,2(大当り停止図柄決定用の乱数)、変動パターン乱数(リーの有無等を含む変動パターンを決定する乱数)、停止図柄乱数(外れの停止図柄決定用の乱数)などがある。また、普図に関連する乱数としては、例えば、普図当り乱数(普図当りとするか否かを決定するための乱数)などがある。このうちステップS30,33で対象とする乱数(ハード乱数)は、例えば、大当り乱数、普図当り乱数、大当り図柄乱数1,2である。なお、上記特図に関する乱数は、特図が2種類ある場合、特図1と特図2で共通でもよいし、別個に設けられていてもよい。
次いで、ステップS32で割込みを許可し、次のステップS33では、初期値乱数更新処理を行う。初期値乱数更新処理は、遊技球を発射するタイミングを計って故意に大当り等をねらうことが困難になるように、ハード乱数の初期値を更新する処理である。これは、各種初期値乱数の値を更新して乱数の規則性を崩すためのものである。
なお、上記ステップS33での初期値乱数更新処理は、メイン処理のほか、タイマ割込み処理の中においても初期値乱数更新処理を行う方法もあり、そのような方法を採用した場合には両方で初期値乱数更新処理が実行されるのを回避するため、メイン処理で初期値乱数更新処理を行う場合には割込みを禁止してから更新して割込みを解除する必要があるが、本実施例のようにタイマ割込み処理の中での初期値乱数更新処理はせず、メイン処理内のみした場合には初期値乱数更新処理の前に割込みを解除しても何ら問題はなく、それによってメイン処理が簡素化されるという利点がある。
次いでステップS34に進み、停電監視信号のチェック回数(例えば2回)を設定し、次のステップS35で停電監視信号がオンしているか否か判定し、オンしていれば停電の最終判断のためのステップS36に進み、オンしていなければステップS33に戻る。通常運転中は、ステップS33〜S35を繰り返す。
そして、ステップS36に進むと、前記チェック回数分だけ停電監視信号のオン状態が継続しているか否か判定し、この判定結果が肯定的であると停電発生と最終判断してステップS37に進み、否定的であれば停電発生と判断できないとしてステップS35に戻る。
なお停電監視信号がオンになると、この停電監視信号をNMI割込信号として、実行中の処理を中断してステップS37以降の停電処理を強制的に実行する態様でもよい。但し本例の構成であると、停電監視信号のオン状態をステップS36で複数回チェックするので、実際には停電が発生していないのにノイズ等によって停電監視信号が一時的かつ瞬間的にオンした場合に停電発生と誤判断してしまうことがないという利点がある。
そしてステップS37に進むと、割込を禁止した後、次のステップS38で全ての出力をオフし(全ての出力ポートにオフデータを出力し)、次いでステップS39、S40で停電情報設定処理を実行する。停電情報設定処理では、ステップS39で前述の停電検査領域チェックデータ1を停電検査領域1にセーブし、ステップS40で停電検査領域チェックデータ2を停電検査領域2にセーブする。
ステップS40を経ると、次のステップS41でRWMの電源遮断時のチェックサムを算出する処理を行なった後、ステップS42で算出したチェックサムを所定のチェックサム領域にセーブする。
次いでステップS43でRWMへのアクセスを禁止した後、待機する(前述した制御信号生成部503からのリセット信号を待つリセット待ち状態となる)。
このように、停電復旧検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
なお、以上のステップS37〜S43の停電処理は、停電によって電源電圧が遊技用マイコン101の動作電圧未満に低下する前に行われる。
〔チェックサム算出処理〕
次に、前記メイン処理におけるチェックサム算出処理(ステップS41)を図10により説明する。
このルーチンが開始されると、まずステップS51で算出アドレスの開始値としてRWMの先頭アドレスを設定し、ステップS52で繰り返し数を設定する。繰り返し数は、使用しているRWMのバイト数に対応して設定される。次いで、ステップS53で算出値として「0」を設定した後、ステップS54で算出値+算出アドレスの内容を新たな算出値として演算する。このようにして、各アドレスの毎の内容を算出値として加算していく。次いで、ステップS55で算出アドレスを「+1」だけ更新し、ステップS56で繰り返し数を「−1」だけ更新して算出終了かをチェックし、ステップS57で算出終了か否かを判定しする。ステップS57の判定結果がNOであれば、ステップS54に戻ってルーチンを繰り返す。そして、繰り返し数=RWMのバイト数になると、算出終了と判断してステップS57からYESに抜けて、ルーチンを終了する。
このようにして、RWMの電源遮断時におけるチェックサムの算出が行われる。
〔初期値乱数更新処理〕
次に、前記メイン処理における初期値乱数更新処理(ステップS33)を図11により説明する。
このルーチンが開始されると、当り初期値乱数をインクリメント(更新(+1))する処理(ステップS61)、大当り図柄初期値乱数1をインクリメント(更新(+1))する処理(ステップS62)、大当り図柄初期値乱数2をインクリメント(更新(+1))する処理(ステップS63)を順次行う。
ここで、「大当り図柄初期値乱数1」は、特図1の大当り停止図柄を決定する乱数の初期値となる乱数で、0〜200の範囲で更新していく。「大当り図柄初期値乱数2」は、特図2の大当り停止図柄を決定する乱数の初期値乱数のことで、0〜200の範囲で更新していく。ある。また、「当り初期値乱数」は普図変動ゲームの当りを決定する乱数の初期値となる乱数のことで、0〜250の範囲で更新していく。ある。このように、メイン処理の中で時間が許す限り乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにしている。
〔タイマ割込処理〕
次に、遊技制御装置100(遊技用マイコン101)のタイマ割込処理を図12により説明する。
このタイマ割込処理は、前述したメイン処理におけるステップS24,S32の処理によって開始され、所定のタイマ割込周期で繰り返し実行される。
このタイマ割込処理では、まずステップS71で、必要に応じてレジスタの退避や割込みの禁止を実行する。レジスタの退避では、例えば所定のレジスタに保持されている値をRWMに移すレジスタ退避の処理を行う。なお、本実施例において遊技用マイコンとして使用しているZ80系のマイコンでは、当該処理を表レジスタに保持されている値を裏レジスタに退避することで置き換えることができる。
次いで、ステップS72で入力処理を実行する。この入力処理では、前述の各センサ類(始動口スイッチ120、121、ゲートスイッチ122、入賞口スイッチ123、カウントスイッチ124など)の検出信号の読み取りを実行する。具体的には、各センサの出力値をタイマ割込周期毎に判定し、同じレベルの出力値が規程回数(例えば、2回)以上継続した場合に、この出力値のレベルを各センサの検出信号の確定的な値として読み取る。なお、何れかのセンサがオンしていることが読み取られると、それを示すフラグ(入力フラグ)がたてられる。
次に、ステップS73で、後述する各ステップで設定された出力データを対応する出力ポートに設定し出力する出力処理を実行し、次いでステップS74で、設定された各制御装置(演出制御装置300、払出制御装置200)への信号(コマンド)を送信する処理(コマンド送信処理)を実行する。
その後、ステップS75,S76で、乱数更新処理1,2をそれぞれ実行する。ここでは、特図に関連するソフト乱数及び普図に関連するソフト乱数の更新が行われる。特図に関連するソフト乱数としては、例えば、大当り図柄乱数1,2(大当り停止図柄決定用の乱数)、変動パターン乱数(リーチアクションの有無等を含む変動パターンを決定する乱数)、停止図柄乱数(外れの停止図柄決定用の乱数)などがある。ここでの、乱数の更新は、乱数を例えば「1」ずつ増やすことにより実行される。したがって、このタイマ割込み処理のルーチンが繰り返される毎に、乱数が変り、このソフト乱数の抽出値がアトランダム性を保つようになる。
なお、上記変動パターン乱数は、本例では変動パターン乱数1〜3の3種類有る。このうち、変動パターン乱数1は後半変動(リーチ開始後の変動)のリーチ系統を選択するための乱数であり、変動パターン乱数2はリーチ系統の中から詳細な演出の振分(例えばプラス1コマで特図が停止するかマイナス1コマで特図が停止するか)を行うための乱数であり、変動パターン乱数3は前半変動(リーチ開始前までの変動)の態様を選択するための乱数である。また、上記変動パターン乱数は変動態様の全てを直接決定するものでもよいが、本例では、具体的な態様は演出制御装置300が決定する。例えば、変動時間とリーチ系統(リーチの大まかな種別)のみを変動パターン乱数1により決定し、決定した変動時間とリーチ系統に基づいて演出制御装置300が具体的な変動態様を決定する。
次いで、ステップS77では、入賞口スイッチ監視処理とエラー監視処理を実行する。入賞口スイッチ監視処理は、前述したように設定される入力フラグ(特図の始動口スイッチ120、121、入賞口スイッチ123、及びカウントスイッチ124)を監視し、例えばカウントスイッチ124の入力フラグが設定されていると、15個の賞球払い出しを払出制御装置200に要求する前準備などの処理を実行するものである。またエラー監視処理は、前述の各センサ類の未検出エラーや、賞球排出の過剰エラーや、ガラス枠5の開放状態、及び大入賞口27a、普電26の開放中以外での不正入賞などを監視するための処理である。
次に、ステップS78では、特図ゲーム処理を行う。この特図ゲーム処理では、特図の変動表示ゲーム全体の統括的制御が行われる。即ち、変動開始条件(変動表示ゲームの開始条件)の成立時において、大当り乱数の判定や、特図の停止図柄の組み合わせ(結果態様)を設定する処理や、特図の変動態様を設定する処理が行われる(詳細後述する)。
ここで、変動開始条件の成立時とは、客待ち状態で始動口入賞があって変動表示ゲームが開始される時、変動表示ゲームがはずれで終了し始動記憶があって再度変動表示ゲームが実行される時、大当たりが終了して始動記憶があって再度変動表示ゲームが実行される時の3種類がある。
また、この特図ゲーム処理では、特図の変動表示ゲームに関する各種出力データを設定する処理も行われる。即ち、特図の変動表示ゲームの遊技状態に合わせて、例えば、演出制御装置300などへ送信するコマンドの内容(コマンドデータ)を設定する。
次いで、ステップS79では、普図の変動表示ゲームのための処理を行う。即ち、普図の変動表示遊技の状態に合わせて演出制御装置300などへ送信するコマンドの内容を設定する処理などを行う。
次に、ステップS80では、セグメントLED編集処理を実行する。これは、ステップS78の特図ゲーム処理において決定された特図の図柄やステップS79の普図ゲーム処理において決定された普図の図柄、その他の情報を、一括表示装置35の本特図の表示器(LED、7セグメントの表示器)において表示するための処理である。
次に、ステップS81では、磁石不正監視処理を実行する。これは、磁気センサスイッチ125や振動センサスイッチ126からの検出信号をチェックして異常がないか判定する
ものである、例えば、磁気センサスイッチ125の入力フラグが設定されていると、磁気エラーが発生したとして、所定の処理(エラー報知コマンドの送信等)を実行する。
次に、ステップS82では、外部情報編集処理を実行する。これは、遊技制御装置100から外部へ出力しようとするデータの編集を行うものである。このデータは、払出制御装置200や外部情報端子板55への出力データ(大当たり信号、賞球信号等の他、固有IDも含む)となる。
その後、メインルーチンを再開すべく、ステップS83でタイマ割込み要求をクリアし、ステップS84で退避させたレジスタを復帰させ、ステップS85で割込を許可し、そして割込時に中断した処理に復帰(リターン)する。
〔入力処理〕
次に、前記タイマ割込み処理における入力処理(ステップS72)を図13により説明する。
入力処理においては、まず入力ポート1、即ち、第1入力ポート161に取り込まれたスイッチの検出信号の状態を読み込む(ステップS91)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(ステップS92)。
続いて、読み込まれた入力ポート1の状態をRWM内のスイッチ制御領域1にセーブ(格納)する(ステップS93)。その後、ステップS94で入力ポート2、即ち、第2入力ポート162に取り込まれた信号の状態を読み込むためのパラメータの準備を行なってから、スイッチ読込み処理(ステップS95)へ移行する。ここで、本実施形態において「準備」とは、レジスタに値をセットすることを意味するが、これに限らず、RWM、その他のメモリに値をセットするようにしてもよい。
〔スイッチ読込み処理〕
次に、上述の入力処理におけるスイッチ読込み処理(ステップS95)を図14により説明する。
スイッチ読込み処理においては、先のステップS94にて準備されたパラメータで指定された入力ポート、即ち、第2入力ポート162に取り込まれた信号の状態を読み込む(ステップS101)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(ステップS102)。続いて、読み込まれた入力ポート2の状態をRWM内のスイッチ制御領域2にセーブ(格納)する(ステップS103)。それから、2回目の読込みまでのディレイ時間(例えば、0.1ms)が経過するのを待つ(ステップS104)。
ディレイ時間(0.1ms)が経過すると、第2入力ポート162に取り込まれた信号の状態の2回目の読込みを行う(ステップS105)。そして、8ビットのポートのうち未使用ビットがあれば、そのビットの状態をクリアする(ステップS106)。続いて、読み込まれた入力ポート2の状態をスイッチ制御領域2にセーブ(格納)する(ステップS107)。それから、1回目と2回目の読込みで変化したビット、即ち、信号を検出し、確定ビットパターンを作成する(ステップS108)。具体的には、読み込まれた入力ポート2の状態のうち、1回目と2回目で状態が同じビットを「1」、違うビットを「0」とした確定ビットパターンを作成する。
次いで、確定ビットパターンとポート入力状態2(入力ポート2の状態)との論理積をとり、今回の確定ビットとする(ステップS109)。次いで、読み込まれた入力ポート2の状態のうち、1回目と2回目で状態が同じビットを「0」、違うビットを「1」とした未確定ビットパターンを作成する(ステップS110)。次いで、未確定ビットパターンと前回割込み時の確定状態との論理積をとり、前回保持ビットとする(ステップS111)。その後、今回確定ビットと前回保持ビットを合成し、今回の確定状態としてRWMにセーブする(ステップS112)。また、今回と前回の確定状態との排他的論理和をとり、立上りエッジとしてRWMにセーブして、スイッチ読込み処理を終了する(ステップS113)。
なお、スイッチの読込みは、タイマ割込みの周期が短い場合(例えば2ms)には、各割込みの処理ごとにそれぞれ1回ずつスイッチの読込みを行なって前回の読込みの結果と比較することで信号が変化したか否か判定する方法があるが、そのようにすると次の割込み処理までに前回の割込みで読み込んだスイッチの状態が失われた場合、正しい判定が行なえないおそれがある。また、単純計算でタイマ割込み周期の2倍以上の時間分、スイッチの入力パルスが保持されなくてはならないので、パルスを延長する電気回路の設計やスイッチを通過する遊技球の速度を遅くするための球流路の構造設計などが必要になる。
これに対し、本実施例のように、所定の時間差をおいて1回の割込み処理の中で2回のスイッチ読込み処理を行うことで、タイマ割込みの周期を延ばすことによる割込み内の処理可能量増加と、構造設計等の容易さを両立させ、上記のような不具合を回避することが可能となる。
〔出力処理〕
次に、上述のタイマ割込み処理における出力処理(ステップS73)を図15により説明する。
出力処理では、まず一括表示装置(LED)35のセグメントのデータを出力するポート176(図5参照)の出力データを全てオフにする(ステップS121)。続いて、一括表示装置(LED)35のデジット線を順次スキャンするためのデジットカウンタの値を更新(0〜3の範囲で(+1)更新)(ステップS122)し、デジットカウンタの値に対応するLEDのデジット線の出力データをロードする(ステップS123)。次いで、ソレノイド・試験端子・デジットのデータ出力用のポート175(図5参照)へ出力するデータを合成し、合成したデータをソレノイド・試験端子・デジットのデータ出力用のポート175へ出力する(ステップS124)。
その後、デジットカウンタの値に対応するRWM内のセグメントデータ領域からセグメント線の出力データを取得し(ステップS125)、取得したセグメント出力データをセグメント出力用のポート176に出力する(ステップS126)。
続いて、外部情報端子基板55へ出力するデータをロードして合成し、外部情報出力用のポート177へ出力する(ステップS127)。次いで、試射試験装置へ出力する試験信号の出力データ1〜3をロードして合成し、中継基板170上に設けられている試験端子出力ポート1へ合成したデータを出力する(ステップS128)。さらにその後、試射試験装置へ出力する試験信号の出力データ4〜6をロードして合成し、中継基板170上に設けられている試験端子出力ポート2へ合成したデータを出力する(ステップS129)。
次いで、試射試験装置へ出力する試験信号の出力データ7〜8をロードして合成し、中継基板170上に設けられている試験端子出力ポート3へ合成したデータを出力する(ステップS130)。また、試射試験装置へ出力する試験信号の出力データ9〜10をロードして合成し、中継基板170上に設けられている試験端子出力ポート4へ合成したデータを出力する(ステップS131)。さらに、試射試験装置へ出力する試験信号の出力データ11をロードして合成し、中継基板170上に設けられている試験端子出力ポート5へ合成したデータを出力(ステップS132)して、図15の出力処理を終了する。
〔コマンド送信処理〕
次に、上述のタイマ割込み処理におけるコマンド送信処理(ステップS74)を図16により説明する。
コマンド送信処理は、演出制御装置300に対する演出制御コマンド送信処理(ステップS141)と、払出制御装置200に対する払出コマンド送信処理(ステップS142)とからなる。これらの詳細は、後述する。
〔演出制御コマンド送信処理〕
まず、上述のコマンド送信処理における演出制御コマンド送信処理(ステップS141)を図17により説明する。
演出制御コマンド送信処理においては、先ず、送信コマンドをRWMに設定するときに「+1」されるライトカウンタの値と、RWMから送信コマンドを読み出すときに「+1」されるリードカウンタの値とを比較して、コマンドが設定されているかチェックする(ステップS151)。具体的には、ライトカウンタの値とリードカウンタの値とが同一であれば設定コマンドなしと判定し、ライトカウンタの値とリードカウンタの値とが一致していない場合には、未送信のコマンドが設定されていると判定する(ステップS152)。
このステップS152の判定で、設定コマンドなし(ステップS152;NO)と判定した場合には当該演出制御コマンド送信処理から抜け、ステップS152の判定で、コマンドが設定されている(ステップS152;YES)と判定した場合には次のステップS153でリードカウンタを更新(+1)する。そして、リードカウンタの値に対応するコマンド送信領域(MODE(上位バイト))からコマンドをロードする(ステップS154)。それから、取得したコマンドが入っていた領域をリセットする(ステップS155)。さらに、リードカウンタの値に対応するコマンド送信領域(ACTION(下位バイト))からコマンドをロードする(ステップS156)。それから、取得したコマンドが入っていた領域をリセットする(ステップS157)。しかる後、演出制御コマンド出力処理(ステップS158)へ移行する。
〔演出制御コマンド出力処理〕
次に、上述の演出制御コマンド送信処理における演出制御コマンド出力処理(ステップS158)を図18により説明する。
演出制御コマンド出力処理においては、まず、演出制御コマンド(MODE)出力中を示すストローブ信号のオフ時間を準備して(ステップS161)、コマンドデータ出力処理(ステップS162)を実行する。その後、演出制御コマンド(ACTION)を出力し(ステップS163)、演出制御コマンド(ACTION)出力中を示すストローブ信号のオフ時間を準備(ステップS164)してから、コマンドデータ出力処理(ステップS165)を実行する。
〔コマンドデータ出力処理〕
次に、上述の演出制御コマンド出力処理におけるコマンドデータ出力処理(ステップS162、S165)を図19により説明する。
コマンドデータ出力処理においては、まず、ポートの直前の状態が失われないようにするため、演出制御コマンド出力のストローブ信号を含む出力ポート171のポート状態保持データをロードする(ステップS171)。それから、演出制御コマンドを出力ポート172へ出力(ステップS172)し、出力ポート171へはストローブ信号を除く信号を直前の状態に保持してオフ状態(データの読取り無効を示す例えばロウレベル)のストローブ信号を付加して出力(つまり、OFF状態のストローブを出力)する(ステップS173)。そして、次のステップS174で、ストローブ信号をオフ状態にすべき時間(オフ時間:ストローブOFF期間)が終了したか否か判定する。ここで、オフ時間が終了していない(ステップS174;NO)と判定するとステップS172へ戻って上記処理を繰り返す。
一方、ステップS174で、オフ時間が終了した(ステップS174;YES)と判定するとステップS175へ移行して、ストローブ信号のオン状態(データの読取り有効を示す例えばハイレベル)の時間を設定(つまりストローブON時間を設定)する。続いて、演出制御コマンドを出力(ステップS176)し、ロードしたデータを保持するレジスタ上で、出力ポート171のストローブ信号を除く信号を直前の状態に保持したまま、オン状態(ハイレベル)のストローブ信号を出力(つまり、ON状態のストローブを出力)する(ステップS177)。
そして、次のステップS178で、ストローブ信号をオン状態にすべき時間(オン時間:つまりストローブON期間))が終了したか否か判定する。ここで、オン時間が終了していない(ステップS178;NO)と判定するとステップS176へ戻って上記処理を繰り返す。また、ステップS178で、オン時間が終了した(ステップS178;YES)と判定するとステップS179へ移行して、ロードしたデータを保持するレジスタ上で、出力ポート171のストローブ信号を除く信号を直前の状態に保持したまま、オフ状態のストローブ信号を設定してから、オフ状態のストローブ信号を出力(OFF状態のストローブ出力)(ステップS179)して、当該コマンドデータ出力処理を終了する。
なお、ステップS176で演出制御コマンドを再度出力しているのは、ステップS176〜S178のループ処理中に停電が発生した場合に、出力中の演出制御コマンドが停電復帰後に出力されなくなるのを回避するためである。また、ノイズによって、コマンドコードが変わってしまうのを回避することもできる。なお、このステップS174及びステップS178は、各々の処理のみをループさせることも可能である。
〔払出コマンド送信処理〕
次に、上述のコマンド送信処理における払出コマンド送信処理(ステップS142)を図20により説明する。
払出コマンド送信処理においては、まず入賞口別に設けられている入賞数カウンタ領域に「0」でないカウント数があるかチェックする(ステップS181)。ここで、カウント数がない(ステップS182;NO)と判定した場合には、ステップS183へ進んでチェック対象となる入賞数カウンタ領域のアドレスを更新し、すべての入賞数カウンタ領域のカウント数のチェックが終了したか判定する(ステップS184)。この判定で、すべてのチェックが終了した(ステップS184;YES)と判定すると、当該コマンド送信処理を終了する。一方、ステップS184ですべてのチェックが終了していない(ステップS184;NO)と判定すると、ステップS181へ戻って上記処理を繰り返す。
また、上記ステップS182で、カウント数がある(ステップS182;YES)と判定した場合には、ステップS185へ移行して、対象の入賞数カウンタ領域のカウント数を減算(−1)する。その後、入賞数カウンタ領域、即ち、入賞口に対応した払出コマンド(負論理のデータ)を取得する(ステップS186)。それから、データの読込みが有効か無効かを示すストローブ信号のオフ時間(ストローブOFF時間)(例えばロウレベルに維持する時間)を設定する(ステップS187)。そして、次のステップS188で、上記ステップS186で取得した払出コマンド(負論理のデータ)とオフ状態(ロウレベル)のストローブ信号をポート171(図5参照)へ出力する。
しかる後、ステップS187で設定したオフ時間が経過したか否か判定し(ステップS189)、経過していない場合(ステップS189;NO)にはステップS188へ戻り、経過した場合(ステップS189;YES)にはステップS190へ進む。ステップS190では、ストローブ信号をオン状態(ハイレベル)に設定するとともに負論理データの残り出力時間を設定する。
そして、次のステップS191で、引き続き払出コマンド(負論理のデータ)を出力するとともにオン状態(ハイレベル)のストローブ信号をポート171へ出力する。その後、ステップS190で設定した負論理データの残り出力時間が経過したか否か判定し(ステップS192)、経過していない場合(ステップS192;NO)にはステップS191へ戻り、経過した場合(ステップS192;YES)にはステップS193へ進む。
ステップS193では、上記負論理の払出コマンドデータを反転して正論理の払出コマンドデータを生成する。それから、ストローブ信号のオン残り時間(ハイレベルの時間)を設定する(ステップS194)。そして、次のステップS195で、上記ステップS193で生成した払出コマンド(正論理のデータ)とオン状態(ハイレベル)のストローブ信号をポート171へ出力する。しかる後、ステップS194で設定したオン時間が経過したか否か判定し(ステップS196)、経過していない場合(ステップS196;NO)にはステップS195へ戻り、経過した場合(ステップS196;YES)にはステップS197へ進む。
ステップS197では、ストローブ信号をオフ状態(ロウレベル)に設定するとともに正論理データの残り出力時間を設定する。そして、次のステップS198で、引き続き払出コマンド(正論理のデータ)を出力するとともにオフ状態(ロウレベル)のストローブ信号をポート131へ出力する。その後、ステップS197で設定した正論理データの残り出力時間が経過したか否か判定し(ステップS199)、経過していない場合(ステップS199;NO)にはステップS198へ戻り、経過した場合(ステップS199;YES)にはステップS200へ進む。ステップS200では、正論理の払出コマンドデータをポート状態保持データとしてRWMのポート状態保持データ領域にセーブし、当該コマンド送信処理を終了する。
上記のように、負論理の払出コマンドデータを出力した後に正論理の払出コマンドデータを出力することによって、コマンド受信側では、負論理の払出コマンドデータと正論理の払出コマンドデータを読み込んで比較することによって、正しいコマンドを受信することができたか否かを判定することができる。例えば、先に受信した負論理の払出コマンドデータを論理反転して、それと後で受信した正論理の払出コマンドデータとを比較して、同一でない場合にはコマンド受信エラーと判断し、コマンドの再送を遊技制御装置100へ要求することで正確なコマンドを受信することが可能となる。
〔乱数更新処理1〕
次に、上述のタイマ割込み処理における乱数更新処理1(ステップS75)を図21により説明する。
乱数更新処理1は、図11の初期値乱数更新処理の対象となっている大当り図柄乱数1、当り乱数、大当り図柄乱数2の初期値(スタート値)を更新するための処理である。
乱数更新処理1においては、まず乱数の更新状態を示すソフト乱数ステータスレジスタの値を読み込み、乱数が1周して次回の初期値(スタート値)設定待ちの乱数があるかチェックする(ステップS211)。ここで、初期値設定待ちの乱数がなければ、当該乱数更新処理1を終了する(ステップS212;NO)。一方、初期値設定待ちの乱数があるときはステップS213へ進む(ステップS212;YES)。
ステップS213では、普図の当り乱数が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS217へジャンプする(ステップS214;NO)。一方、普図の当り乱数が初期値設定待ちであるときはステップS215へ進む(ステップS214;YES)。ステップS215では、普図の当り乱数の次回の初期値として当り初期値乱数をロードし、続くステップS216で次回初期値に対応するスタート値設定レジスタに、ロードした当り初期値乱数を設定する。すなわち、普図の当り乱数の次回の初期値(当り初期値乱数)を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタに設定する。その後、ステップS217へ進む。
ステップS217では、大当り図柄乱数1が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS221へジャンプする(ステップS218;NO)。一方、大当り図柄乱数1が初期値設定待ちであるときはステップS219へ進む(ステップS218;YES)。ステップS219では、大当り図柄乱数1の次回の初期値として大当り図柄初期値乱数1をロードし、続くステップS220で次回初期値に対応するスタート値設定レジスタに、ロードした大当り図柄初期値乱数1を設定する。すなわち、大当り図柄乱数1の次回の初期値(大当り図柄初期値乱数1)を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタに設定する。その後、ステップS221へ進む。
ステップS221では、大当り図柄乱数2が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければ当該乱数更新処理1を終了する(ステップS222;NO)。
一方、大当り図柄乱数2が初期値設定待ちであるときはステップS223へ進む(ステップS222;YES)。ステップS223では、大当り図柄乱数2の次回の初期値として大当り図柄初期値乱数2をロードし、続くステップS224で次回初期値に対応するスタート値設定レジスタに、ロードした大当り図柄初期値乱数2を設定する。すなわち、大当り図柄乱数2の次回の初期値(大当り図柄初期値乱数2)を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタに設定する。ステップS224を経ると、当該乱数更新処理1を終了する。
〔乱数更新処理2〕
次に、上述のタイマ割込み処理における乱数更新処理2(ステップS76)を図22により説明する。
乱数更新処理2は、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する処理である。
なお、本実施例においては、変動パターン乱数として1バイトの乱数(変動パターン乱数2、3)と、2バイトの乱数(変動パターン乱数1)があり、図21の乱数更新処理2は両方を更新対象とし、割込みが発生するごとに更新対象を切り替えて処理する。しかも、更新対象の乱数が2バイトの場合には、上位のバイトと下位のバイトに対して異なる割込み時に更新処理を行うようになっている。即ち、メイン処理に対する一の割り込み処理において実行される乱数更新処理2による2バイトの変動パターン乱数1(リーチ変動態様決定用乱数)の更新は、上位1バイト若しくは下位1バイトの何れかについて実行されるように構成されている。
乱数更新処理2においては、まず更新すべき複数の乱数のうちいずれの乱数を今回の更新処理の対象とするかを順番に指定するための乱数更新スキャンカウンタを更新する(ステップS231)。次に、乱数更新スキャンカウンタの値に対応する演出乱数更新テーブルのアドレスを算出する(ステップS232)。そして、算出されたアドレスに基づいて参照したテーブルから乱数の上限判定値を取得する(ステップS233)。このとき参照するテーブルには、乱数の種類ごとに上限値、即ち、乱数が一巡したか否かを判定するための値が格納されている。
続いて、例えば本実施例において遊技用マイコンとして使用しているZ80系のマイコンに設けられているDRAMのリフレッシュ等のため使用されるリフレッシュレジスタ(以下、Rレジスタと称する)のようなランダムな値が設定されるレジスタの値を読み込む(ステップS234)。Rレジスタの値を使用することで、乱数にランダム性を付与することができる。ステップS234の次は、Rレジスタの値をマスクするためのマスク値を取得して、Rレジスタの値をマスクする(ステップS235)。なお、マスク値は、更新対象の乱数によって異なるビット数、例えば、変動パターン乱数1の下位1バイトを更新する場合には、Rレジスタの下位3ビットに、また、変動パターン乱数1の上位1バイトを更新する場合には、Rレジスタの下位4ビットに設定されている。乱数の種類によって上限値が異なるためである。
なお、マスク値として、変動パターン乱数1の下位1バイトを更新する場合には、Rレジスタの下位3ビットを、また、変動パターン乱数1の上位1バイトを更新する場合には、Rレジスタの下位4ビットを例示したが、数値は一例であってこれに限られるものではない。
次に、更新する乱数領域が2バイト乱数の上位かどうかをチェックする(ステップS236)。2バイト乱数の上位であれば(ステップS237;YES)、ステップS238に進み、マスク値によってRレジスタの値をマスクすることによって残った値(以下、これをマスクした値と称する)に「1」を加算したものを加算値(上位)とし、また、「0」を加算値(下位)としてステップS240に進む。
マスクした値に「1」を加算するのは、マスクした値が「0」になる場合があり、「0」を後に加算すると加算する前の値から変化しないので、それを避けるためである。
一方、更新する乱数領域が2バイト乱数の下位又は1バイト乱数であれば(ステップS237;NO)、ステップS239に分岐して「0」を加算値(上位)とし、マスク値に「1」を加算したものを加算値(下位)としてステップS240に進む。
次のステップS240では、更新する乱数領域(乱数カウンタ)が2バイト乱数かどうかをチェックする。ここで、2バイト乱数でなければステップS242へジャンプする(ステップS241;NO)。一方、乱数領域が2バイト乱数であるときはステップS243へ進む(ステップS241;YES)。ステップS242では、「0」を乱数値(上位)とし、マスク値に「1」を加算したものを更新する乱数領域の値(下位)としてステップS244に進む。
乱数領域が2バイト乱数であるときは、ステップS243で更新する乱数領域の値(2バイト)を乱数値としてステップS244に進む。
次いで、ステップS244では乱数値にステップS238、S239で決定した加算値を加算した値を算出して新たな乱数値を求め、この乱数値がステップS233で取得した上限判定値を超えているかどうかを判定する(ステップS245)。
新たに算出した乱数値が上限判定値を超えていれば、算出した乱数値から上限判定値を差し引いて今回の乱数値とし(ステップS246)、その後、ステップS247に進む。一方、新たに算出した乱数値が上限判定値を超えていなければ、算出した乱数値を今回の乱数値とし、ステップS246をジャンプしてステップS247に進む。
ステップS247では、乱数値の下位を対応する乱数領域にセーブする。ここでは、1バイト乱数領域又は2バイト乱数の下位領域のいずれかの領域にセーブする。続いて、更新した乱数が2バイト乱数かをチェックし(ステップS248)、2バイト乱数であれば(ステップS249;YES)、乱数値の上位を乱数領域の上位(2バイト乱数(上位))側にセーブする(ステップS250)。ここでは、2バイト乱数の上位の領域にセーブする。ステップS250を経ると、当該乱数更新処理2を終了する。
一方、更新した乱数が2バイト乱数でなければ(ステップS249;NO)、ステップS250をジャンプし、その処理は行わず、当該乱数更新処理2を終了する。
このように、CPU101Aは、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する。また、変動パターンとしては、後述するように、「リーチなし」の変動パターンや、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)3−Aリーチ」、「スペシャル(SP)3−Bリーチ」等の各種リーチ状態における変動パターン(リーチ変動態様)が規定されている。
従って、CPU101Aは、始動入賞口25や普通変動入賞装置26の始動領域への遊技球の流入に基づいて抽出された各種乱数のうち、リーチ状態におけるリーチ変動態様を決定するためのリーチ変動態様決定用乱数(変動パターン乱数)を更新する乱数更新手段をなす。
〔入賞口スイッチ/エラー監視処理〕
次に、上述のタイマ割込み処理における入賞口スイッチ/エラー監視処理(ステップS77)を図23により説明する。
入賞口スイッチ/エラー監視処理は、各種入賞口に設けられたスイッチから信号の入力(信号の変化)があるか否かの監視や、エラーの監視を行う処理である。
入賞口スイッチ/エラー監視処理においては、まず大入賞口内の入賞口スイッチの不正監視テーブルを準備する(ステップS261)。大入賞口内の入賞口スイッチとしては、カウントスイッチ124がある。次いで、不正&入賞監視処理を行う(ステップS262)。これは、大入賞口27aへの正規(大当り時など)の遊技球の入賞を監視するとともに、大当り以外の不正な大入賞口27aへの入賞を監視するものである。
次いで、普電内の入賞口スイッチの不正監視テーブルを準備する(ステップS263)。普電内の入賞口スイッチとしては、普通電動役物(普電)としての第2始動入賞口26への入賞を検出する第2始動口スイッチ121がある。
次いで、不正&入賞監視処理を行う(ステップS264)。これは、普通電動役物(普電)としての第2始動入賞口26への正規の遊技球の入賞を監視するとともに、不正な第2始動入賞口26への入賞を監視するものである。次いで、不正監視が不要な入賞口スイッチの入賞監視テーブル(例えば、不正監視不要なスイッチを示すリスト)を準備する(ステップS265)。不正監視が不要な入賞口スイッチとしては、例えば第1始動口スイッチ120、一般入賞口28〜31に対して設けられた入賞口スイッチ123がある。
不正監視が不要な入賞口スイッチについては、不正監視はしないが入賞検出処理は行うので、ステップS265でその処理のために入賞監視テーブルを用意し、次のステップで、入賞数を更新する入賞数カウンタ更新処理(ステップS266)を実行する。この入賞数カウンタ更新処理の詳細な手順については、後述する。
入賞数カウンタ更新処理(ステップS266)の後は、エラーを監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するためのエラースキャンカウンタを更新(0乃至3の範囲で「+1」更新)し、準備する(ステップS267)。続いて、遊技機エラー監視テーブル1を準備する(ステップS268)。
遊技機を監視するエラーの種類としては、以下のものがあり、これらは払出制御装置200からのシュート球切れスイッチ、オーバーフロースイッチ、払出制御装置の異常監視用のエラーなどに対応する。
(イ)0のとき:スイッチ異常エラー(コネクタ抜け、スイッチ故障など)
(ロ)1のとき:シュート球切れエラー
(ハ)2のとき:オーバフローエラー
(ニ)3のとき:払い出し異常エラー
次いで、遊技機エラー監視テーブル1で定義した種類のエラーチェックを行い(ステップS269)、その後、遊技機エラー監視テーブル2を準備する(ステップS270)。
遊技機エラー監視テーブル2で定義するエラー監視の種類は、下記の通りである。
(ホ)0,2のとき:ガラス枠開放(前枠開放)
(ヘ)1,3のとき:前面枠開放(遊技枠開放)
次いで、前枠及び遊技枠の開放監視用エラースキャンカウンタをロードし、遊技機エラー監視テーブル2用に変換し、準備する(ステップS271)。次いで、遊技機エラー監視テーブル2で定義した種類のエラーチェックを行い(ステップS272)、タイマ割込処理にリターンする。
〔不正&入賞監視処理〕
次に、上述の入賞口スイッチ/エラー監視処理における不正&入賞監視処理(ステップS262、ステップS264)を図24により説明する。
入賞監視処理は、大入賞口のカウントスイッチ124又は普電内の第2始動口スイッチ121に対して行なわれる処理であり、ここでは入賞の検出の他に不正の監視をする。大入賞口(特別変動入賞装置27)や普電(普通変動入賞装置26)は、無理やり開閉部材を開いて遊技球を入れて賞球を払い出させる不正が行なわれ易いためである。
不正&入賞監視処理においては、まず対象の不正監視期間フラグをチェックし(ステップS281)、不正監視期間中かどうかを判定する(ステップS282)。不正監視期間中でなければ、ステップS296にジャンプして、ステップS296以降の処理を行う。
一方、不正監視期間中であれば、エラー監視対象の入賞口スイッチ(大入賞口のカウントスイッチ124又は普電内の第2始動口スイッチ121)に入力があるかチェックする(ステップS283)。ここで、入力なし(ステップS284;NO)と判定すると、ステップS298へジャンプし、入力がある(ステップS284;YES)と判定すると、ステップS285へ進んで対象の不正入賞数を更新(+1)(加算)してステップS286へ進む。
ステップS286では、加算後の不正入賞数が監視対象の不正発生判定個数(例えば5個)を超えたかチェックする。判定個数を5個としているのは、例えば、開状態にある大入賞口が閉状態に変換した際に遊技球が大入賞口の扉部材に挟まり、その遊技球がカウントスイッチの有効期間を過ぎて入賞した場合や信号にノイズがのった場合にそれを不正と判断しないため、つまり、不正でないのに簡単にエラーと判定しないためである。ここで、判定個数を超えていない(ステップS287;NO)と判定するとステップS296へジャンプし、判定個数を超えた(ステップS287;YES)と判定すると、ステップS288へ進む。
ステップS288では、不正入賞数を不正発生判定個数に留め、次のステップS289で対象の不正入賞報知タイマ領域に初期値(例えば、60000ms)をセーブしてから、対象の不正入賞発生コマンドを準備し(ステップS290)、さらに不正フラグとして不正入賞発生フラグを設定する(ステップS291)。
次いで、設定した不正フラグを対象の不正フラグ領域の値と比較し(ステップS292)、一致していなければ(ステップS293;NO),ステップS294に進み、設定した不正フラグを対象の不正フラグ領域にセーブ(ステップS294)した後、ステップS295でコマンド設定処理を行い、当該不正&入賞監視処理を終了する。
したがって、上記のように不正が発生していると、不正報知コマンドが演出制御装置300へ送信され、不正報知がなされることになる。
一方、ステップS293でYESのとき、すなわち、設定した不正フラグが対象の不正フラグ領域の値と一致していれば、既に演出制御装置300に教えてある状態と同じと判断できるので、ステップS294、ステップS295の処理を行わずに、当該不正&入賞監視処理を終了する。これは、フラグが変化したその時だけコマンドを送信するからである。
一方、ステップS282で不正監視中でないと判定してステップS296に分岐した場合やステップS287で判定個数を超えていない(ステップS287;NO)と判定してステップS296に分岐した場合には、ステップS296で不正監視対象の入賞口スイッチ(大入賞口のカウントスイッチ124又は普電内の第2始動口スイッチ121)の入賞監視テーブルを準備する。その後、入賞数カウンタを更新する処理、つまり賞球排出の対象として入賞数を計数する処理S297を実行してから、対象の不正入賞報知タイマが既にタイムアップ又は(−1)更新後にタイムアップしたかをチェックし(ステップS298)、チェック結果をステップS299で判定する。
対象の不正入賞報知タイマが既にタイムアップ又は(−1)更新後にタイムアップしていなければ、ステップS299の判定がNOとなり、リターンしてルーチンが繰り返される。
対象の不正入賞報知タイマが既にタイムアップ又は(−1)更新後にタイムアップしていれば、ステップS300に進んで、報知終了タイミング(報知終了の瞬間)であるかを判定する。報知終了タイミングでない(ステップS300;NO)と判定すると、ステップS302へジャンプし、報知終了タイミングである(ステップS300;YES)と判定すると、ステップS301へ進んで対象の不正入賞数をリセットし、ステップS302へ進む。ステップS302では、対象の不正入賞解除コマンドを準備し、続くステップS303で不正フラグとして不正入賞解除フラグを設定し、その後、ステップS292に進み、以後はステップS292以降の処理を実行する。したがって、このときは不正入賞解除コマンドが演出制御装置300へ送信され、不正報知の解除がなされることになる。
〔入賞数カウンタ更新処理〕
次に、上述の入賞口スイッチ/エラー監視処理における入賞数カウンタ更新処理(ステップS266)及び不正&入賞監視処理における入賞数カウンタ更新処理(ステップS297)を図25により説明する。
入力数カウンタ更新処理においては、まず、上述の入賞口スイッチ/エラー監視処理にて取得した入賞監視テーブルから監視する入賞口スイッチの個数を取得する(ステップS311)。次いで、監視対象の入賞口スイッチから検出信号の入力(正確には入力の変化)があるかチェックする(ステップS312)。ここで、入力がない(S313;NO)と判定するとステップS318へジャンプし、入力がある(S313;YES)と判定すると、次のステップS314で、対象の入賞数カウンタ領域の値をロードする。
それから、ステップS315で対象の入賞数カウンタを更新(+1)してオーバーフローするかチェックする。そして、カウンタオーバーフローが発生していない(ステップS316;NO)と判定すると、ステップS317へ進んで更新後の値を入賞数カウンタ領域にセーブしてからステップS318へ進む。
一方、ステップS316でカウンタオーバーフローが発生している(S316;YES)と判定すると、ステップS317をスキップしてステップS318へジャンプする。設けられた入賞数カウンタ領域のサイズによって、最大記憶数(例えば、1バイトサイズなら255個、2バイトサイズなら65535個)が決まるので、それを超えると値が「0」に戻ってしまい、支払うべき大量の賞球数の情報を失ってしまうことになる。それを回避するためにステップS315では、いきなり領域の内容を更新せず、領域の外で(+1)して「0」になってしまわないかを確認した上で更新を行うようにしている。
ステップS318では、全部のスイッチの監視処理が終了したか判定して、終了している場合(ステップS318;YES)には当該入力数カウンタ更新処理を終了し、終了していない場合(ステップS318;NO)には、ステップS312へ戻り上記処理を繰り返す。
〔エラーチェック処理〕
次に、上述の入賞口スイッチ/エラー監視処理におけるエラーチェック処理(ステップS269、ステップS272)を図26により説明する。
エラーチェック処理においては、まず、エラーを監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するためのエラースキャンカウンタに対応するエラー監視テーブルを取得する(ステップS321)。
準備された遊技機エラー監視テーブル上に定義されている情報としては、以下のものがある。
(イ)エラー監視テーブルのアドレス(監視するエラーの数分だけある)
(ロ)スイッチの状態を判定するデータ
(ハ)エラー報知コマンド
(ニ)エラー報知終了コマンド
(ホ)エラー発生監視タイマ比較値
(ヘ)エラー解除監視タイマ比較値
(ト)スイッチ状態領域のアドレス
(チ)エラー監視タイマ領域のアドレス
(リ)エラーフラグ領域のアドレス
次いで、今回取得した対象のスイッチの状態をチェックし(ステップS322)、スイッチがオンしているかを判定する(ステップS323)。スイッチがオンであれば(ステップS323;YES)、エラー発生となる状態である可能性があるので、ステップS324に進んで、エラーフラグとしてエラー発生フラグを設定する。
例えば、遊技機エラー監視テーブルで定義するエラーの1つとして、シュート球切れの場合であれば、貯留タンク51に遊技球を供給するシュートに遊技球が無いことがシュート球切れスイッチ216で検出されてオンになると、ステップS323がYESとなる。YESであればステップS324で、エラー発生フラグを設定することになる。
次いで、対象のエラー報知コマンドを準備し(ステップS325)、続いて対象のエラー発生監視タイマ比較値を設定する(ステップS326)。次いで、対象のスイッチ状態領域の値と今回のスイッチ状態を比較し(ステップS327)、両者が一致しているかを判定する(ステップS328)。
ステップS328の結果がNO(不一致)であれば、まだエラーの処置まで必要ないと判断してステップS329でスイッチ状態領域に今回のスイッチ状態をセーブし、続いて
対象のエラー監視タイマをクリアする(ステップS330)。
一方、ステップS328の判別結果がYES(一致)であれば、エラーの処置が必要かどうかのタイマを判断するためにステップS334で対象のエラー監視タイマを「1」だけ更新(インクリメント)し、監視タイマ比較値(エラーへの処置が必要と判断する基準値)に達したかどうかをチェックする。監視タイマ比較値に達していれば、ステップS336でエラー監視タイマを「−1」だけ更新(デクリメント)し、ステップS337に進み、設定したエラーフラグを対象のエラーフラグ領域の値と比較する。
ここで、ステップS335で対象のエラー監視タイマが監視タイマ比較値に達したと判定したときは、エラー発生または解除の状態が確定したと見なされることになる。しかし、既にエラーが発生している状態のときにエラー発生が確定するか、またはエラー発生中でない状態のときにエラー解除が確定するという状況もあり得るので、ステップS336の処理を経て、ステップS337では、設定したエラーフラグを対象のエラーフラグ領域の値と比較することにより、今回確定したエラー状態は現エラーフラグの状態と同じかどうかをチェックするようにする。
そして、ステップS338の判定結果でYES(エラーフラグが同じ)であれば、エラーの状況が変化していないことになるので、処置の必要はないと判断し、リターンする。一方、ステップS338の判定結果がNOであれば(エラーフラグが同じでなければ)、新たなエラー状態に変化したことになるので、ステップS339に進み、設定したエラーフラグを対象のエラーフラグ領域にセーブしてステップS340に進む。すなわち、対象のエラーフラグ領域の値を今回確定したエラー状態のものに変更して、ステップS340に進む。ステップS340では、コマンド設定処理を行い、今回確定したエラー状態に対応するコマンドを設定する。これにより、今回のエラー状態に対応する処置が行なわれることとなり、例えばシュート球切れであれば、それを知らせるエラー表示が報知されたり、報知解除されたりする。
一方、上記ステップS323で今回取得した対象のスイッチのがオンしていなければ、エラー発生となる状態である可能性はなく、上記とは逆にエラー解除となる状態である可能性があるので、ステップS331に分岐してエラーフラグとしてエラー解除フラグを設定する。次いで、対象のエラー報知終了コマンドを準備し(ステップS332)、続いて対象のエラー解除監視タイマ比較値を設定して(ステップS333)、ステップS327に進み、ステップS327以降の処理を行う。したがって、このときはエラー解除に対応する処理が行われる。
このようにして、エラーが発生すれば、該当するエラーフラグを立てて処置のコマンドを設定し、エラーが解消すれば該当するエラーフラグを消して解消のコマンドの設定が行なわれる。特に、このエラーチェック処理では、エラーの発生だけを監視しているものではなく、解除も合わせて監視するようにして、処理を共通にしている。
なお、このようなエラーチェック処理は、例えばガラス枠開放、前面枠開放などのエラーについても同様である。
〔特図ゲーム処理〕
次に、前記タイマ割込処理における特図ゲーム処理(ステップS78)を図27により説明する。
特図ゲーム処理では、第1始動口スイッチ120及び第2始動口スイッチ121の入力の監視と、特図変動表示ゲームに関する処理全体の制御、特図の表示の設定を行う。
特図ゲーム処理では、まず、ステップS351で第1始動口スイッチ120及び第2始動口スイッチ121の入賞を監視する始動口スイッチ監視処理を行う。
始動口スイッチ監視処理では、始動入賞口25、第2始動入賞口をなす普通変動入賞装置26に遊技球の入賞があると、各種乱数(大当り乱数など)の抽出を行い、当該入賞に基づく特図変動表示ゲームの開始前の段階で入賞に基づく遊技結果を事前に判定する遊技結果事前判定を行う。
次いでステップS352でカウントスイッチ監視処理を行う。これは、特別変動入賞装置27内に設けられたカウントスイッチ124のカウント数を監視する処理を行うものである。
次いで、ステップS353では、特図ゲーム処理タイマが既にタイムアップしたか、又は当該タイマの−1更新後にタイムアップしたかをチェックし、タイムアップしていれば次のステップS354の判定がYESとなって、ステップS355に進み、タイムアップしていなければステップS354の判定がNOとなって、ステップS366にジャンプする。
特図ゲーム処理タイマは、後述する処理番号による分岐後の各処理(ステップS359〜S365:処理番号=0乃至処理番号=6に相当)において、それぞれ所定の値にタイマ値が設定されるものであり、この特図ゲーム処理タイマがタイムアップしたときにステップS359以降を実行すべきタイミングになるように設定される。これにより、ステップS353を実行した時点で、ステップS355以降を実行すべきタイミングになっていると、ステップS354の判定結果が肯定的になり、ステップS355以降(ステップS366〜S369含む)が実行される。そして、ステップS353を実行した時点で、ステップS355〜S365を実行すべきタイミングでない場合には、ステップS354の判定結果が否定的になり、ステップS366〜S369のみが実行される構成となっている。
そしてステップS355〜S357では、後述する処理番号による分岐のために、特図ゲームシーケンス分岐テーブルを設定し、特図ゲーム処理番号に対応する処理の分岐先アドレスを取得し、分岐処理終了後のリターンアドレスをスタック領域に退避させる。
次いでステップS358では、処理番号により分岐する。即ち、処理番号0でステップS359(特図普段処理)へ、処理番号1でステップS360(特図変動中処理)へ、処理番号2でステップS361(特図表示中処理)へ、処理番号3でステップS362(ファンファーレ/インターバル中処理)へ、処理番号4でステップS363(大入賞口開放中処理)へ、処理番号5でステップS364(大入賞口残存球処理)へ、処理番号6でステップS365(大当り終了処理)へ進む。なお、客待ち状態(デモ中)は、処理番号0である。
そして、ステップS359(特図普段処理)では、特図保留数(特図変動表示ゲーム未実施で保留になっている特図始動記憶の数)がゼロで特図変動表示ゲームを実行中でないときには、客待ち状態の表示を表示装置41で行うための処理を行う。また、この特図普段処理では、次の特図変動表示ゲームを開始するための処理(特図変動開始処理)を行う。この特図変動開始処理では、特図1及び特図2の始動記憶を監視し、何れかの特図始動記憶があれば、対応する変動表示(第1又は第2変動表示)を開始するための設定(演出制御装置300に送信する変動パターンコマンドの設定など)を実行し、処理番号を1とした後にリターンする。特図保留数がゼロで次の特図変動表示ゲームを実行しない場合には、そのまま(処理番号は0のまま)リターンする。
また、ステップS360(特図変動中処理)では、特図変動開始処理で設定された変動時間が経過するまで、特図を変動表示させるための処理が行われる。そして、前記変動時間が経過すると、特図の図柄を停止させるコマンド(図柄停止コマンド)を演出制御装置300に送信する処理を実行した後、処理番号を2としてリターンする。設定された変動時間が未経過のときは、そのままリターンする(処理番号は1のままとする)。
また、ステップS361(特図表示中処理)では、特図の変動表示結果を一定時間(1秒〜2秒)表示するための処理を行う。前記一定時間の表示が終了すると、大当りなら処理番号を3とし、はずれなら処理番号を0としてリターンする。前記一定時間が未経過のときは、そのままリターンする(処理番号は2のままとする)。
また、ステップS362(ファンファーレ/インターバル中処理)では、大当り直後にはファンファーレ音等をスピーカ12a等から出力するファンファーレ処理を実行し、大当りのインターバル期間にはインターバル期間の表示等を実現するためのインターバル処理を実行し、変動入賞装置27の大入賞口開放を開始するタイミングで処理番号を4にする。
また、ステップS363(大入賞口開放中処理)は、変動入賞装置27の大入賞口27aを開放している間の処理である。大入賞口開放が終了すると、処理番号を5にする。
また、ステップS364(大入賞口残存球処理)では、大入賞口開放終了の間際に大入賞口27aに入った遊技球を確実にカウントするために一定時間待機する処理を行い、この一定時間が経過した後に、大当りのラウンドが残っているときには処理番号を3にし、大当りのラウンドが残っていないときには処理番号を6としてリターンする。
またステップS365(大当り終了処理)では、大当たり終了後に特図普段処理S359を実行するための処理を行い、処理番号を0に戻してリターンする。
次に、処理番号に応じた上記何れかの処理が終了すると、ステップS366に進み、特図1の一括表示装置35での表示(本特図1の表示)を制御するためのテーブルを準備し、次のステップS367では、この本特図1の変動表示のための制御処理(図柄変動制御処理)を行う。
次いでステップS368に進み、特図2の一括表示装置35での表示(本特図2の表示)を制御するためのテーブルを準備し、次のステップS369では、この本特図2の変動表示のための制御処理(図柄変動制御処理)を行い、その後リターンする。
〔始動口スイッチ監視処理〕
次に、上述の特図ゲーム処理における始動口スイッチ監視処理(ステップS351)を図28により説明する。
始動口スイッチ監視処理では、先ず、始動入賞口25(第1始動口)による保留の情報を設定するテーブルを準備した後(ステップS371)、特図始動口スイッチ共通処理(ステップS372)を行う。なお、ステップS372における特図始動口スイッチ共通処理の詳細については、ステップS377における特図始動口スイッチ共通処理とともに後述する。
次に、普通電動役物(普通変動入賞装置26)が作動中である、即ち、普通変動入賞装置26が作動して遊技球の入賞が可能な開状態となっているか否かをチェックして(ステップS373)、普通電動役物が作動中である(ステップS373;YES)と判定すると、処理をステップS376に移行して、それ以降の処理を行う。一方、ステップS373にて、普通電動役物が作動中でない(ステップS373;NO)と判定すると、普通変動入賞装置26への不正入賞数が不正発生判定個数(例えば、5個)以上であるかをチェックして(ステップS374)、不正入賞数が不正発生判定個数以上であるか否かを判定する処理(ステップS375)を行う。
普通変動入賞装置26は、閉状態では遊技球が入賞不可能であり、開状態でのみ遊技球が入賞可能である。よって、閉状態で遊技球が入賞した場合は何らかの異常や不正が発生した場合であり、このような閉状態で入賞した遊技球があった場合はその数を不正入賞数として計数する。そして、このように計数された不正入賞数が所定の不正発生判定個数(上限値)以上であるかが判定される。
ステップS375にて、不正入賞数が不正判定個数以上でない(ステップS375;NO)と判定すると、普通変動入賞装置26(始動口2)による保留の情報を設定するテーブルを準備した後(ステップS376)、特図始動口スイッチ共通処理(ステップS377)を行って、始動口スイッチ監視処理を終了する。
また、ステップS375にて、不正入賞数が不正判定個数以上であると判定された場合も(ステップS375;YES)、始動口スイッチ監視処理を終了する。即ち、第2始動記憶をそれ以上発生させないようにする。
〔特図始動口スイッチ共通処理〕
次に、上述の始動口スイッチ監視処理における特図始動口スイッチ共通処理(ステップS372、S377)を図29により説明する。
特図始動口スイッチ共通処理は、第1始動口スイッチ120や第2始動口スイッチ121の入力があった場合に、各々の入力について共通して行われる処理である。
特図始動口スイッチ共通処理では、まず、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチ(例えば、第1始動口スイッチ120等)に入力があるか否かをチェックして(ステップS381)、監視対象の始動口スイッチに入力がない(ステップS382;NO)と判定すると、特図始動口スイッチ共通処理を終了する。一方、ステップS382にて、監視対象の始動口スイッチに入力がある(ステップS383;YES)と判定すると、当該監視対象の始動口スイッチの始動口入賞フラグをセーブした後(ステップS383)、対象のハード乱数ラッチレジスタに抽出された大当り乱数をロード(大当り乱数を抽出)する(ステップS384)。
続けて、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチ(例えば、第1始動口スイッチ120等)への入賞の回数に関する情報がパチンコ機1の外部の管理装置140に対して出力する回数(始動口信号出力回数)(あと何回出力しなければならないという回数)をロードする(ステップS385)。そして、ロードした始動口信号出力回数を更新(+1)し、出力回数がオーバーフローするか否かをチェックして(ステップS386)、出力回数がオーバーフローしない(ステップS387;NO)と判定すると、更新後の値をRWMの始動口信号出力回数領域にセーブして(ステップS388)、処理をステップS389に移行する。一方、ステップS387にて、出力回数がオーバーフローすると判定された場合は(ステップS387;YES)、処理をステップS389に移行する。
そして、ステップS389にて、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチ(例えば、第1始動口スイッチ120等)に対応する更新対象の特図保留(始動記憶)数が上限値未満か否かをチェックして(ステップS389)、特図保留数が上限値未満か否かを判定する処理(ステップS390)を行う。
ステップS390にて、特図保留数が上限値未満である(ステップS390;YES)と判定すると、更新対象の特図保留数(例えば、特図1保留数等)を更新(+1)する処理(ステップS391)を行った後、対象の始動口スイッチの飾り特図保留数コマンド(MODE)を準備し(ステップS392)、さらに、特図保留数に対応する飾り特図保留数コマンド(ACTION)を準備して(ステップS393)、コマンド設定処理(ステップS394)を行う。
次いで、特図保留数に対応する乱数セーブ領域のアドレスを算出する処理(ステップS395)を行う。続けて、大当り乱数をRWMの乱数セーブ領域にセーブし(ステップS396)、次に当該監視対象の始動口スイッチの大当り図柄乱数をロード(大当り図柄乱数を抽出)して準備し(ステップS397)、対応する大当り図柄乱数をRWMの大当り図柄乱数セーブ領域にセーブするとともに、その大当り図柄乱数をレジスタに退避する((ステップS398)。
次いで、対応する変動パターン乱数1をロード(変動パターン乱数1を抽出)し、ロードした値をRWMの変動パターン乱数1セーブ領域にセーブし(ステップS399)、次に、対応する変動パターン乱数2をロード(変動パターン乱数2を抽出)し、ロードした値をRWMの変動パターン乱数2セーブ領域にセーブし(ステップS400)、次に、対応する変動パターン乱数3をロード(変動パターン乱数3を抽出)し、ロードした値をRWMの変動パターン乱数3セーブ領域にセーブする(ステップS401)。
ここで、RWMは、始動入賞口25や普通変動入賞装置26の始動領域への遊技球の流入に基づいて各種乱数を抽出し、該抽出された各種乱数を始動記憶として記憶可能な始動記憶手段をなす。
次いで、特図保留情報判定処理(ステップS402)を行って、特図始動口スイッチ共通処理を終了する。
一方、ステップS390にて、特図保留数が上限値未満でない(ステップS390;NO)と判定した場合には、ステップS382に係る始動口スイッチの入力が第1始動口スイッチ120の入力であるか否かをチェックして(ステップS403)、第1始動口スイッチ120の入力である(ステップS404;YES)と判定すると、飾り特図保留数コマンド(保留オーバーフローコマンド)を準備し(ステップS405)、コマンド設定処理(ステップS406)を行って、特図始動口スイッチ共通処理を終了する。
一方、ステップS404にて、第1始動口スイッチ120の入力でないと判定された場合にも(ステップS404;NO)、特図始動口スイッチ共通処理を終了する。
〔特図保留情報判定処理〕
次に、上述の始動口スイッチ共通処理における特図保留情報判定処理(ステップS402)を図30により説明する。
特図保留情報判定処理は、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に当該始動記憶に対応した結果関連情報の判定を行う先読み処理である。
特図保留情報判定処理では、まず、ステップS411で先読み演出を実行してよい条件を満たしているかをチェックする。先読み演出を実行してよい条件としては、以下の通りである。
・特図1:普通変動入賞装置26がサポート中(普電サポート中)、かつ大当り中以外
・特図2:条件なし
このような条件を満たすときは、当該始動記憶に対応した結果関連情報の判定を行う先読み処理を行うことになる。
ステップS411のチェック結果はステップS412で判定し、先読み演出を実行してよい条件を満たしていなければ、ルーチンを終了してリターンする。一方、先読み演出を実行してよい条件を満たしていれば、ステップS413に進んで、大当り判定処理を行う。大当り判定処理は、始動入賞のタイミングで抽出した乱数が大当りの範囲内にあるかどうかで大当りと判定するもので、大当り判定のときは大当りフラグ領域に大当り情報がセーブされることになる。
次いで、ステップS414では、大当り判定結果は大当りか否かを判断し、大当りであれば、ステップS415に進んで、対象の始動口スイッチに対応する大当り図柄乱数チェックテーブルを設定し、続くステップS416で大当り図柄乱数をチェックし、対応する大当り情報テーブルを取得し、設定する。その後、ステップS418に進む。
ここで、大当り図柄乱数チェックテーブル上に定義されている情報には、以下のものがある。
・乱数の判定値(振り分け率を表す)
・判定値に対応する大当り情報テーブルのアドレス
また、大当り情報テーブル上に定義されている情報には、以下のものがある。
・図柄情報
・始動口入賞演出図柄コマンド
一方、ステップS414の判定結果がNO(大当りではない)であれば、ステップS417に分岐してはずれ情報テーブルを設定し、その後、ステップS418に進む。はずれ情報テーブルには、例えば始動口入賞演出図柄コマンドが定義されている。
ステップS416又はステップS417からステップS418に進むと、ステップS418では、設定した情報テーブルから図柄情報を取得し、図柄情報(作業用)領域にセーブする。次いで、ステップS419に進み、設定した情報テーブルから始動口入賞演出図柄コマンドを取得し、入賞演出図柄コマンド領域にセーブする。
次に、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチの始動口入賞フラグを準備した後(ステップS420)、対象の始動口入賞演出コマンド設定テーブルを準備し(ステップS421)、当該監視対象の始動口に関して設定された特図情報を設定する特図情報設定処理(ステップS422)を行う。
続けて、特図変動表示ゲームにおける変動態様のうち、後半変動パターンを設定する後半変動パターン設定処理(ステップS423)を行った後、特図変動表示ゲームの変動態様を設定する変動パターン設定処理(ステップS424)を行う。
なお、ステップS422における特図情報設定処理、ステップS423における後半変動パターン設定処理、ステップS424における変動パターン設定処理の各々は、特図1変動開始処理1等における特図情報設定処理(図42参照)、後半変動パターン設定処理(図43参照)、変動パターン設定処理(図44参照)と同様であり、その詳細については後述する。
そして、前半変動番号に対応する始動口入賞演出コマンド(MODE)を算出して準備するとともに(ステップS425)、後半変動番号の値を始動口入賞演出コマンド(ACTION)として準備し(ステップS426)、コマンド設定処理(ステップS427)を行う。続けて、入賞演出図柄コマンド領域から始動口入賞演出図柄コマンドをロードして準備し(ステップS428)、コマンド設定処理(ステップS429)を行って、特図保留情報判定処理を終了する。
すなわち、ステップS425、S426にて始動口入賞演出コマンドが準備され、ステップS428にて始動口入賞演出図柄コマンドが準備されることで、始動記憶に対応した結果関連情報の判定結果(先読み結果)を、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に演出制御装置300に対して知らせることができ、特に表示装置41に表示される特図保留の表示態様を変化させるなどして、その特図変動表示ゲームの開始タイミングより前に遊技者に結果関連情報を報知することが可能となる。
〔カウントスイッチ監視処理〕
次に、上述の特図ゲーム処理におけるカウントスイッチ監視処理(ステップS352)を図31により説明する。
カウントスイッチ監視処理では、まず、特別変動入賞装置27の大入賞口が開放中であるか否かをチェックして(ステップS451)、大入賞口が開放中である(ステップS452;YES)と判定すると、カウントスイッチ124の入力があるか否かをチェックして(ステップS453)、カウントスイッチ124の入力がある(ステップS454;YES)と判定すると、大入賞口カウンタの数値を更新(+1)する処理(ステップS455)を行う。
続けて、大入賞口カウンタのカウント数が上限値に達したか否かをチェックして(ステップS456)、大入賞口カウント数が上限値に達した(ステップS457;YES)と判定すると、特図ゲーム処理タイマを0クリアする処理(ステップS458)を行って、カウントスイッチ監視処理を終了する。
また、ステップS452にて、大入賞口が開放中でないと判定されるか(ステップS452;NO)、或いは、ステップS454にて、カウントスイッチ124の入力がないと判定されるか(ステップS454;NO)、或いは、ステップS457にて、大入賞口カウント数が上限値に達していないと判定された場合には(ステップS457;NO)、カウントスイッチ監視処理を終了する。
〔特図普段処理〕
次に、上述の特図ゲーム処理における特図普段処理(ステップS359)の詳細について図32により説明する。
特図普段処理では、まず、第2特図保留数(第2始動記憶数)が0であるか否かをチェックする(ステップS461)。
そして、第2特図保留数が0である(ステップS462;YES)と判定すると、第1始動記憶数(第1特図保留数)が0であるか否かをチェックする(ステップS463)。
そして、第1特図保留数が0である(ステップS464;YES)と判定すると、既に客待ちデモが開始されているか否かをチェックして(ステップS465)、客待ちデモを開始していない、即ち、開始済みでない(ステップS466;NO)と判定すると、客待ちデモフラグ領域に客待ちデモ中フラグをセーブする処理(ステップS467)を行う。
続けて、客待ちデモコマンドを準備して(ステップS468)、コマンド設定処理(ステップS469)を行う。
一方、ステップS465にて、既に客待ちデモが開始されている(ステップS466;YES)と判定すると、既に客待ちデモフラグ領域に客待ちデモ中フラグがセーブ(ステップS467)され、客待ちデモコマンドも準備(ステップS468)され、コマンド設定処理(ステップS469)も実行されているため、これらの処理を行わずにステップS470に移行する。
次に、特図普段処理移行設定処理1を行う(ステップS470)。これは、特図普段処理に移行するための各種データ、例えば特図普段処理に係る処理番号「0」、大入賞口不正監視期間を規定するフラグ(大入賞口不正監視情報)等を設定する処理を行うもので、その後、特図普段処理を終了する。
一方、ステップS462にて、第2特図保留数が0でない(ステップS463;NO)と判定すると、特図2変動開始処理1(ステップS471)を行う。なお、ステップS471における特図2変動開始処理の詳細については後述する。
そして、特図変動中処理移行設定処理(特図2)を行う(ステップS470)。これは、特図変動中処理に移行するためのテーブル(第2特図用)を準備したり、当該テーブルに特図変動中処理に係る処理番号「1」、客待ちデモの終了に係る情報、第2特図の変動中に係る試験信号、一括表示装置35の中のLEDセグメントである特図2表示器における第2特図変動表示ゲームの制御用の情報(例えば、特図2表示器の変動中に係るフラグ、特図2表示器の点滅の周期のタイマの初期値など)等を設定する処理を行うもので、その後、特図普段処理を終了する。
また、ステップS464にて、第1特図保留数が0でない(ステップS464;NO)と判定すると、特図1変動開始処理(ステップS473)を行う。なお、ステップS473における特図1変動開始処理1の詳細については後述する。
そして、特図変動中処理移行設定処理(特図1)を行う(ステップS474)。これは
、特図変動中処理に移行するためのテーブル(第1特図用)を準備したり、当該テーブルに特図変動中処理に係る処理番号「1」、客待ちデモの終了に係る情報、第1特図の変動中に係る試験信号、一括表示装置35の中のLEDセグメントである特図1表示器における第1特図変動表示ゲームの制御用の情報(例えば、特図1表示器の変動中に係るフラグ、特図1表示器の点滅の周期のタイマの初期値など)等を設定する処理を行うもので、その後、特図普段処理を終了する。
このように、ステップS461とステップS462における第2特図保留数のチェックを、ステップS463とステップS464における第1特図保留数のチェックよりも先に行うことで、第2特図保留数が0でない場合には、特図2変動開始処理1(ステップS471)が実行されることとなる。
すなわち、第2特図変動表示ゲームが第1特図変動表示ゲームに優先して実行されることとなる。
〔特図普段処理移行設定処理1〕
次に、上述の特図普段処理における特図普段処理移行設定処理1(ステップS470)の詳細について図33により説明する。
このルーチンが開始されると、まずステップS481で処理番号として「0」を設定(例えば、特図普段処理に移行するためのテーブルを準備して当該テーブルに特図普段処理に係る処理番号「0」を設定)し、ステップS482で特図ゲーム処理番号領域に処理番号をセーブする。
次いで、ステップS483で変動図柄判別フラグ領域をリセットし、ステップS484で大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブしてルーチンを終了する。これにより、特図普段処理に移行するための各種データ、例えば特図普段処理に係る処理番号「0」を設定し、大入賞口不正監視期間を規定するフラグ(大入賞口不正監視情報)を設定する処理が行われる。
〔特図1変動開始処理1〕
次に、上述の特図普段処理における特図1変動開始処理1(ステップS473)の詳細について図34により説明する。
特図1変動開始処理は、第1特図変動表示ゲームの開始時に行う処理であり、具体的には、図34に示すように、まず、第1特図変動表示ゲームが大当りであるか否かを判定するための大当りフラグ1にはずれ情報や大当り情報を設定する大当りフラグ1設定処理(ステップS491)を行う。なお、ステップS491における大当りフラグ1設定処理の詳細については後述する。
次に、第1特図停止図柄(特図1停止図柄)の設定に係る特図1停止図柄設定処理(ステップS492)を行った後、第1特図停止図柄番号(特図1停止図柄番号)に対応する信号を試験信号出力データ領域にセーブする(ステップS493)。第1特図停止図柄番号(特図1停止図柄番号)に対応する試験信号には図柄2データ信号があり、この信号はデータの値が変化するまで出力され続ける。なお、ステップS492における特図1停止図柄設定処理の詳細については後述する。
続けて、特図1停止図柄設定処理にて設定された図柄情報を図柄情報(作業用)領域にセーブする(ステップS494)。
次に、特図1変動フラグを設定して準備し(ステップS495)、特図1変動フラグをRWMの変動図柄判別フラグ領域にセーブする(ステップS496)。
続けて、変動パターンに関する情報を設定するテーブル(特図1用)を準備し(ステップS497)、特図情報を設定する特図情報設定処理(ステップS498)を行う。続けて、第1特図変動表示ゲームにおける変動態様のうち、後半変動パターンを設定する後半変動パターン設定処理(ステップS499)を行った後、第1特図変動表示ゲームの変動態様を設定する変動パターン設定処理(ステップS500)を行う。その後、第1特図の変動開始の情報を設定する変動開始情報設定処理(ステップS501)を行って、特図1変動開始処理を終了する。
なお、ステップS498における特図情報設定処理、ステップS499における後半変動パターン設定処理、ステップS500における変動パターン設定処理、ステップS501における特図1変動開始処理の詳細については後述する。
〔大当りフラグ1設定処理〕
次に、上述の特図1変動開始処理1における大当りフラグ1設定処理(ステップS491)の詳細について図35により説明する。
ルーチンが開始すると、ステップS511で大当りフラグ1領域にはずれ情報をセーブする。大当り判定前には、予めはずれの情報をセットしておくためである。次いで、ステップS512で大当り乱数セーブ領域(特図1用)から大当り乱数をロードして準備し、ステップS513で大当り判定処理を行う。これは、今回、抽出した特図1に対応する大当り乱数が大当りの範囲(大当り下限判定値と上限判定値の間にある値:大当り判定値と一致)にあるかどうかをチェックするもので、大当りの範囲内にあれば、大当りと判断できる(詳細ルーチンは後述)。
ステップS513のチェック結果はステップS514で判定し、判定結果が大当り(YES)であれば、ステップS515に進んで大当りフラグ1領域に大当り情報を上書きしてセーブし、続くステップS516で大当り乱数セーブ領域(特図1用)を「0」クリアしてリターンし、次回の判定に備える。
一方、ステップS514でNOのとき(はずれのとき)には、ステップS515をジャンプしてステップS516に進む。したがって、このときは、大当りフラグ1にはずれ情報がセーブされた状態で処理を終わり、大当りフラグ1は設定されない。
〔特図1停止図柄設定処理〕
次に、上述の特図1変動開始処理1における特図1停止図柄設定処理(ステップS492)の詳細について図36により説明する。
ルーチンが開始すると、ステップS521で大当りフラグ1が大当りか(大当り情報がセーブされているか)どうかをチェックし、ステップS522で大当りと判定すると、ステップS523に進んで特図1の大当り図柄テーブルを設定する。
ここで、特図1の大当り図柄テーブル上に定義されている情報としては、以下のものがある。
・乱数の判定値(振り分け率を示す)
・判定値に対応する停止図柄番号
続けて、ステップS524で大当り図柄乱数セーブ領域から(特図1用)から大当り図柄乱数をロードし、ステップS525で大当り図柄乱数に対応する停止図柄番号を取得して準備し、ステップS526では取得した停止図柄番号を特図1停止図柄領域にセーブする。
次いで、ステップS527で普電サポート中であるか否かを判定する。普電サポートとは、普通電動役物(普電)としての第2始動入賞口26の開閉部材26aが開放する動作によって始動入賞をサポートするもので、例えば高確率時や時短時などに、そのようなサポートが行われる。
普電サポート中であれば、ステップS528に進んで、高確率時、時短時の特図1大当り停止図柄情報テーブルを準備した後、ステップS529に進む。一方、普電サポート中でなければ、ステップS530に分岐して低確率時の特図1大当り停止図柄情報テーブルを準備して、ステップS529に進む。
ステップS529では、特図1停止図柄(大当り図柄)に対応する停止図柄情報を設定する停止図柄情報設定処理を行う。なお、ステップS529における停止図柄情報設定処理の詳細については後述する。
次に、ステップS531で飾り特図コマンドテーブル(このテーブルには、飾り特図1コマンド(ACTION)が定義されている)を設定する処理を行い、ステップS532で図柄情報に対応する飾り特図1コマンド(ACTION)を取得する処理を行った後、ステップS533で飾り特図1コマンド(MODE)を取得する処理を行って、これらのコマンドをRWMの飾り特図コマンド領域にセーブする(ステップS534)。
そして、ステップS535にてRWMの大当り図柄乱数セーブ領域(特図1用)を0クリアして、特図1停止図柄設定処理を終了する。
一方、上記ステップS522で大当りフラグ1が大当りでないと判定された場合(NO)には、ステップS523乃至ステップS529の処理は行わず、ステップS536に分岐する。そして、ステップS536では、はずれ時の停止図柄番号を特図1停止図柄領域にセーブし、続くステップS537に進んで、はずれ時の図柄情報を図柄情報領域にセーブした後、ステップS531に進み、以降の処理を行う。
〔特図2変動開始処理1〕
次に、上述の特図普段処理における特図2変動開始処理1(ステップS471)の詳細について図37により説明する。
特図2変動開始処理は、第2特図変動表示ゲームの開始時に行う処理であり、具体的には、図37に示すように、まず、第2特図変動表示ゲームが大当りであるか否かを判定するための大当りフラグ2にはずれ情報や大当り情報を設定する大当りフラグ2設定処理(ステップS541)を行う。なお、ステップS541における大当りフラグ2設定処理の詳細については後述する。
次に、第2特図停止図柄(特図2停止図柄)の設定に係る特図2停止図柄設定処理(ステップS542)を行った後、第2特図停止図柄番号(特図2停止図柄番号)に対応する信号を試験信号出力データ領域にセーブする(ステップS543)。第2特図停止図柄番号(特図2停止図柄番号)に対応する試験信号には図柄3データ信号があり、この信号はデータの値が変化するまで出力され続ける。なお、ステップS542における特図2停止図柄設定処理の詳細については後述する。
続けて、特図2停止図柄設定処理にて設定された図柄情報を図柄情報(作業用)領域にセーブする(ステップS544)。
次に、特図2変動フラグを設定して準備し(ステップS545)、特図2変動フラグをRWMの変動図柄判別フラグ領域にセーブする(ステップS546)。
続けて、変動パターンに関する情報を設定するテーブル(特図2用)を準備し(ステップS547)、特図情報を設定する特図情報設定処理(ステップS548)を行う。続けて、第2特図変動表示ゲームにおける変動態様のうち、後半変動パターンを設定する後半変動パターン設定処理(ステップS549)を行った後、第2特図変動表示ゲームの変動態様を設定する変動パターン設定処理(ステップS550)を行う。その後、第2特図の変動開始の情報を設定する変動開始情報設定処理(ステップS551)を行って、特図2変動開始処理を終了する。
なお、ステップS548における特図情報設定処理、ステップS549における後半変動パターン設定処理、ステップS550における変動パターン設定処理、ステップS551における特図2変動開始処理の詳細については後述する。
〔大当りフラグ2設定処理〕
次に、上述の特図2変動開始処理1における大当りフラグ2設定処理(ステップS541)の詳細について図38により説明する。
ルーチンが開始すると、ステップS561で大当りフラグ2領域にはずれ情報をセーブする。大当り判定前には、予めはずれの情報をセットしておくためである。次いで、ステップS562で大当り乱数セーブ領域(特図2用)から大当り乱数をロードして準備し、ステップS563で大当り判定処理を行う。これは、今回、抽出した特図2に対応する大当り乱数が大当りの範囲(大当り下限判定値と上限判定値の間にある値:大当り判定値と一致)にあるかどうかをチェックするもので、大当りの範囲内にあれば、大当りと判断できる(詳細ルーチンは後述)。
ステップS563のチェック結果はステップS564で判定し、判定結果が大当り(YES)であれば、ステップS565に進んで大当りフラグ2領域に大当り情報を上書きしてセーブし、続くステップS566で大当り乱数セーブ領域(特図2用)を「0」クリアしてリターンし、次回の判定に備える。
一方、ステップS564でNOのとき(はずれのとき)には、ステップS565をジャンプしてステップS566に進む。したがって、このときは、大当りフラグ2にはずれ情報がセーブされた状態で処理を終わり、大当りフラグ2は設定されない。
〔特図2停止図柄設定処理〕
次に、上述の特図2変動開始処理1における特図2停止図柄設定処理(ステップS542)の詳細について図39により説明する。
ルーチンが開始すると、ステップS571で大当りフラグ2が大当りか(大当り情報がセーブされているか)どうかをチェックし、ステップS572で大当りと判定すると、ステップS573に進んで特図2の大当り図柄テーブルを設定する。
ここで、特図2の大当り図柄テーブル上に定義されている情報としては、以下のものがある。
・乱数の判定値(振り分け率を示す)
・判定値に対応する停止図柄番号
続けて、ステップS574で大当り図柄乱数セーブ領域から(特図2用)から大当り図柄乱数をロードし、ステップS575で大当り図柄乱数に対応する停止図柄番号を取得して準備し、ステップS576では取得した停止図柄番号を特図2停止図柄領域にセーブする。
次いで、ステップS577で普電サポート中であるか否かを判定する。普電サポート中であれば、ステップS578に進んで、高確率時、時短時の特図2大当り停止図柄情報テーブルを準備した後、ステップS579に進む。一方、普電サポート中でなければ、ステップS580に分岐して低確率時の特図2大当り停止図柄情報テーブルを準備して、ステップS579に進む。
ステップS579では、特図2停止図柄(大当り図柄)に対応する停止図柄情報を設定する停止図柄情報設定処理を行う。なお、ステップS579における停止図柄情報設定処理の詳細については後述する。
次に、ステップS581で飾り特図コマンドテーブル(このテーブルには、飾り特図2コマンド(ACTION)が定義されている)を設定する処理を行い、ステップS582で図柄情報に対応する飾り特図2コマンド(ACTION)を取得する処理を行った後、ステップS583で飾り特図2コマンド(MODE)を取得する処理を行って、これらのコマンドをRWMの飾り特図コマンド領域にセーブする(ステップS584)。
そして、ステップS585にてRWMの大当り図柄乱数セーブ領域(特図2用)を0クリアして、特図2停止図柄設定処理を終了する。
一方、上記ステップS572で大当りフラグ2が大当りでないと判定された場合(NO)には、ステップS573乃至ステップS579の処理は行わず、ステップS586に分岐する。そして、ステップS586では、はずれ時の停止図柄番号を特図2停止図柄領域にセーブし、続くステップS587に進んで、はずれ時の図柄情報を図柄情報領域にセーブした後、ステップS581に進み、以降の処理を行う。
〔大当り判定処理〕
次に、上述の大当りフラグ1設定処理及び大当りフラグ2設定処理におけるそれぞれの大当り判定処理(ステップS513、ステップS563)の詳細について図40により説明する。
ルーチンが開始すると、ステップS591で大当り判定用の下限判定値を設定する処理を行う。その後、ステップS592で対象の大当り乱数の値が下限判定値未満であるか否かをチェック、つまり、図35のステップS512で読み込んだ大当り乱数の値が、当該大当り乱数の当り判定値の下限値未満であるかをチェックし、ステップS593で大当り乱数の値が下限判定値未満であると判定すると、ステップS594に分岐し、判定結果としてはずれを設定し、リターンする。
一方、ステップS593で大当り乱数の値が下限判定値未満でなければ、ステップS595に進んで、高確率時か否かを判定する。これは、確率変動により大当り確率が高い状態にあるかどうかを判定するもの、すなわち、特図変動表示ゲームにて当り結果となる確率が高確率状態(確率変動状態)となっているか否かを判定するものである。高確率時であれば、ステップS596で高確率時における大当り判定用の上限判定値を設定する処理を行い、その後、ステップS597に進む。
また、ステップS595で高確率時でないと判定すると、ステップS598に分岐し、低確率時における大当り判定用の上限判定値を設定する処理を行い、その後、ステップS597に進む。
このようにして、高確率時と低確率時の上限判定値が設定された場合、対象の大当り乱数の値が下限判定値と上限判定値で挟まれた間(ゾーン)にあれば、大当りと判断できることになる。
そのため、ステップS597では対象の大当り乱数の値が上限判定値より大きいか(上限判定値を超えたか)否かをチェックし、ステップS598で大当り乱数の値が上限判定値より大きいと判定(ステップS598;YES)すると、大当りではないと判断できるので、ステップS594に進んで判定結果としてはずれを設定し、リターンする。
一方、ステップS598で対象の大当り乱数の値が上限判定値以下である(上限判定値を超えていない)と判定(ステップS598;NO)すると、対象の大当り乱数の値が下限判定値と上限判定値で挟まれた間(ゾーン)にあらから、大当りと判断して、ステップS600で判定結果として大当りを設定してリターンする。
〔停止図柄情報設定処理〕
次に、上述の特図1停止図柄設定処理における停止図柄情報設定処理(ステップS529)及び特図2停止図柄設定処理における停止図柄情報設定処理(ステップS579)の詳細について図41により説明する。
停止図柄情報設定処理では、まず、ステップS611で対象の停止図柄番号に対応する図柄情報を取得し、図柄情報領域にセーブする。
ここで、図柄情報を取得する場合、準備された停止図柄情報テーブル上に定義されている情報から所得するが、その内容は以下の通りである(後述の各情報も同様)。
・図柄情報
・確率変動判定フラグ
・ラウンド数上限値情報
・大入賞口開放情報
・特殊演出情報(例えば、
・特殊演出情報(例えば、大当り終了後に行われる昇格演出実行期間の有無等)
ここで、昇格演出とは、以下の概念である。
本実施例の場合、通常図柄で当たった時、大当り終了後の時短期間内に特定の回転数(例えば、20、50、100回転目)になると、通常の大当り確率(通常モード)から高確率モードに昇格するかどうかの昇格演出を行うようになっている。この昇格演出は、遊技者に対して確変(確率変動によって高確率モードになること)になるかもしれないと大きな期待感を持たせるもので、ハラハラドキドキ感のある演出である。
ただし、パチンコ機1内部では、確変かどうかは事前に決まっているものであるが、外部の遊技者に演出を伝える表示装置41の画面上はあいまいな報知しかしないので、遊技者は確信が持てない状態である。そこで、昇格演出を行うことによって、確変確定か否かを遊技者に報知してあげるようになっている。
また、何回目の昇格演出で確変昇格するかも事前に決まっており(この情報も特殊演出情報に含まる)、確変当りでない場合は上記3回とも昇格するかどうかの演出は行うが、全て失敗に終わるような演出になる。
次いで、ステップS612で停止図柄番号に対応する確率変動判定フラグを取得し、当該確率変動判定フラグをRWMの確率変動判定フラグ領域にセーブする。
次に、ステップS613で停止図柄番号に対応するラウンド数上限値情報を取得し、当該ラウンド数上限値情報をRWMのラウンド数上限値情報領域にセーブする。続けて、ステップS614で停止図柄番号に対応する大入賞口開放情報を取得し、当該大入賞口開放情報をRWMの大入賞口開放情報領域にセーブする。次いで、ステップS615で停止図柄番号に対応する特殊演出情報(設定用)を取得し、当該特殊演出情報(設定用)をRWMの特殊演出情報(設定用)領域にセーブして、停止図柄情報設定処理を終了する。
〔特図情報設定処理〕
次に、上述の特図1変動開始処理、特図2変動開始処理における特図情報設定処理(ステップS498、ステップS548)の詳細について図42により説明する。
特図情報設定処理では、まず、準備したフラグを対象の特図を示すフラグとして図柄判別フラグ(作業用)領域にセーブする(ステップS621)。
ここで、特図情報のために準備されているテーブル上に定義されている情報として、以下のものがある。
・特図保留数領域のアドレス
・前半変動情報1領域のアドレス
・前半変動情報2領域のアドレス
・前半変動グループ情報領域のアドレス
・後半変動グループ情報領域のアドレス
・乱数セーブ領域のアドレス(変動パターン乱数1)
・乱数セーブ領域のアドレス(変動パターン乱数2)
・後半変動番号領域のアドレス
・乱数セーブ領域のアドレス(変動パターン乱数3)
次いで、ステップS622で情報生成パラメータ1として対象の特図保留数をロードし、ステップS623で情報生成パラメータ2として特殊演出情報(振分用)をロードする。次いで、ステップS624で普電サポート中であるか否かを判定する(普電サポートの概念は前述した通り)。普電サポート中でなければ、ステップS624でNOに分岐してステップS625に進み、情報生成パラメータ3として普電サポートなしの値を設定する。次いで、ステップS626で情報生成パラメータ1、3を元に前半変動情報1を生成し、前半変動情報1領域にセーブする。続いて、ステップS627で情報生成パラメータ2を元に前半変動情報2を生成し、前半変動情報2領域にセーブし、ステップS628で情報生成パラメータ4として図柄情報(作業用)をロードし、さらにステップS629で情報生成パラメータ5として図柄判別フラグ(作業用)をロードする。
次いで、ステップS630で情報生成パラメータ4、6を元に前半変動グループ情報を生成し、前半変動グループ情報領域にセーブする。続いて、ステップS631で情報生成パラメータ1を元に後半変動グループ情報を生成し、対象の後半変動グループ情報領域にセーブし、ステップS632で情報生成パラメータ2、4、5元に変動グループ選択テーブルポイントを生成し、準備してリターンする。したがって、このときは普電サポートなしの特図情報が設定されることになる。
一方、ステップS624で普電サポート中であれば、ステップS633に分岐して高確率時かどうかを判定し、NOのとき(低確率時)にはステップS634に進み、情報生成パラメータ3として低確率及び普電サポート中の値を設定した後、ステップS626に抜け、以後は、ステップS626乃至ステップS632を実行してリターンする。
したがって、このときは低確率及び普電サポート中の特図情報が設定されることになる。
また、ステップS633で高確率時と判定(YES)したときは、ステップS635に分岐して、前半情報生成パラメータ2が特殊演出実行中かをチェックし、チェック結果をステップS636で判定し、判定結果がNO(特殊演出実行中でない)のときはステップS637に進んで、情報生成パラメータ3として高確率及び普電サポート中の値を設定した後、ステップS626に抜け、以後は、ステップS626乃至ステップS632を実行してリターンする。
したがって、このときは高確率及び普電サポート中の特図情報が設定されることになる。
さらに、ステップS636で前半情報生成パラメータ2が特殊演出実行中である(YES)と判定したときは、ステップS638に分岐して、情報生成パラメータ3として特殊演出実行時の値を設定した後、ステップS626に抜け、以後は、ステップS626乃至ステップS632を実行してリターンする。
したがって、このときは特殊演出実行時の特図情報が設定されることになる。
〔後半変動パターン設定処理〕
次に、上述の特図1変動開始処理、特図2変動開始処理における後半変動パターン設定処理(ステップS499、ステップS549)の詳細について図43により説明する。
後半変動パターン設定処理では、まず、第1特図及び第2特図のうち、特図情報設定処理にて設定された特図情報(例えば、第1特図等)に対応する変動グループ選択テーブルポインタに対応する変動グループ選択テーブルのアドレスを算出し、準備する処理(ステップS641)を行う。
なお、算出前の変動グループ選択アドレステーブルに定義される情報としては、変動グループ選択テーブルのアドレスがあるが、これは変動グループ選択テーブルポインタの数分だけある。
次に、特図1停止図柄設定処理にて設定された図柄情報(作業用)がはずれ図柄情報であるか否かをチェックし(ステップS642)、ステップS634で図柄情報(作業用)がはずれ図柄情報であると判定(YES)すると、ステップS644に進んで、対象の後半変動グループ情報領域から後半変動グループ情報をロードし、続いてステップS645で後半変動グループ情報に対応するアドレスを追加算出し、変動グループ選択テーブルとして準備してステップS646に進む。
なお、はずれの変動グループ選択テーブル上に定義されている情報としては、変動グループ選択テーブルのアドレスがあるが、これは、保留数毎でテーブルを変えるために追加算出が行われるものであるが、大当り時は保留数に影響しない。
一方、ステップS634で図柄情報(作業用)がはずれ図柄情報ではないと判定(NO)すると、ステップS644、ステップS645をジャンプしてステップS646に進む。
したがって、図柄情報(作業用)がはずれ図柄情報のときは、はずれに対応した情報が準備される。
ステップS646では、特図変動表示ゲームの後半変動パターングループを選択するための判定用乱数として、2バイト(複数バイト)で構成された変動パターン乱数1を対象の領域からロードして準備し、その後、ステップS647にて後半変動選択テーブルの特定に係る2バイト振り分け処理を行う。
次いで、2バイト振り分け処理を行うことにより得られた後半変動選択テーブルのアドレスを取得して準備した後(ステップS648)、特図変動表示ゲームの後半変動パターンを選択するための判定用乱数として、変動パターン乱数2を対象の領域からロードして準備し(ステップS649)、後半変動番号の特定に係る振り分け処理(ステップS650)を行う。
次に、振り分け処理を行うことにより得られた後半変動番号を取得する処理(ステップS651)を行って、当該後半変動番号をRWMの対象となる後半変動番号領域にセーブして(ステップS652)、後半変動パターン設定処理を終了する。
〔変動パターン設定処理〕
次に、上述の特図1変動開始処理、特図2変動開始処理における変動パターン設定処理(ステップS500、ステップS550)の詳細について図44により説明する。
変動パターン設定処理では、まず、第1特図及び第2特図のうち、特図情報設定処理にて設定された特図情報(例えば、第1特図等)に対応する、つまり対象の前半変動グループ情報領域から前半変動グループ情報をロードする処理(ステップS661)を行う。
次に、前半変動グループ情報に対応する前半変動グループテーブルのアドレスを算出し(ステップS662)、続いて対象の領域から後半変動番号をロードして(ステップS663)、算出後のテーブルを用い、後半変動番号に対応するアドレスを算出する(ステップS664)。
次いで、後半変動番号がリーチなし変動の番号であるか否かをチェックして(ステップS665)、後半変動番号がリーチなし変動の番号である(ステップS666;YES)と判定すると、対象の前半変動情報1領域から前半変動情報1をロードする(ステップS667)。
また、ステップS666にて、後半変動番号がリーチなし変動の番号でない(ステップS666;NO)と判定すると、ステップS669に分岐して対象の前半変動情報2領域から前半変動情報2をロードした後、ステップS668に進む。
次いで、ステップS668では、算出後のテーブルを用い、前半変動情報に対応するアドレスを算出する処理を行い、ステップS670で算出後のアドレスから前半変動選択テーブルのアドレスを取得し、準備する処理を行う。
続いて、ステップS671で対象の領域から変動パターン乱数3をロードして準備し、ステップS672で前半変動番号を特定する振り分け処理を行う。次に、ステップS673で振り分け処理の結果得られた前半変動番号を取得して準備する処理を行って、変動パターン設定処理を終了する。
〔変動開始情報設定処理〕
次に、上述の特図1変動開始処理、特図2変動開始処理における変動パターン設定処理(ステップS500、ステップS550)の詳細について図45により説明する。
変動開始情報設定処理では、まず、対象となる変動パターン乱数1〜3のRWMのセーブ領域をクリアした後(ステップS681)、変動パターン設定処理にて取得された前半変動番号に対応する前半変動時間値テーブルの値を取得する処理(ステップS682)を行い、続けて、前半変動番号に対応する前半変動時間値を取得する処理(ステップS683)を行い、さらに、後半変動パターン設定処理にて取得された後半変動番号に対応する後半変動時間値テーブルを設定する処理(ステップS684)を行う。
次に、後半変動番号に対応する後半変動時間値を取得する処理(ステップS685)を行い、続けて、取得された前半変動時間値と後半変動時間値とを加算する処理(ステップS686)を行った後、加算値を特図ゲーム処理タイマ領域にセーブする(ステップS687)。
続けて、前半変動番号に対応する変動コマンド(MODE)を算出して準備した後(ステップS688)、後半変動番号の値を変動コマンド(ACTION)として準備して(ステップS689)、コマンド設定処理(ステップS690)を行う。
次に、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップS691)、コマンド設定処理(ステップS692)を行う。
続けて、変動図柄判別フラグに対応する(すなわち、表示装置41に表示される特図保留数に係る)飾り特図1保留数コマンド(MODE)を準備して(ステップS693)、変動図柄判別フラグに対応するRWMの第1特図の乱数セーブ領域のアドレスを設定する(ステップS694)。
次に、変動図柄判別フラグに対応する特図保留数を更新(−1)し(ステップS695)、特図保留数に対応する飾り特図保留数コマンド(ACTION)を準備して(ステップS696)、コマンド設定処理(ステップS697)を行う。
そして、第1特図及び第2特図のうち、変動図柄判別フラグに対応する変動対象の特図の乱数セーブ領域をシフトし(ステップS698)、シフト後の空き領域をクリアする処理(ステップS699)を行って、変動開始情報設定処理を終了する。
〔特図変動中処理移行設定処理(特図1)〕
次に、上述の特図普段処理における特図変動中処理移行設定処理(特図1)(ステップS474)の詳細について図46により説明する。
ルーチンが開始すると、ステップS711で処理番号として「1」(特図変動中処理に係る処理番号に相当)を設定し、ステップS712で特図ゲーム処理番号領域に処理番号(ここでは「1」)をセーブする。次いで、ステップS713で客待ちデモフラグ領域に客待ちデモ中以外フラグをセーブし、ステップS714で特図1変動開始に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS715で特図1変動制御フラグ領域に変動中フラグをセーブし、ステップS716で特図1変動制御タイマ領域に図柄変動制御タイマ初期値(例えば、200ms)をセーブしてルーチンを終了する。
このようにして、特図1に関して特図変動中処理に移行するための処理が行われる。
〔特図変動中処理移行設定処理(特図2)〕
次に、上述の特図普段処理における特図変動中処理移行設定処理(特図2)(ステップS472)の詳細について図47により説明する。
ルーチンが開始すると、ステップS721で処理番号として「1」(特図変動中処理に係る処理番号に相当)を設定し、ステップS722で特図ゲーム処理番号領域に処理番号(ここでは「1」)をセーブする。次いで、ステップS723で客待ちデモフラグ領域に客待ちデモ中以外フラグをセーブし、ステップS724で特図2変動開始に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS725で特図2変動制御フラグ領域に変動中フラグをセーブし、ステップS726で特図2変動制御タイマ領域に図柄変動制御タイマ初期値(例えば、200ms)をセーブしてルーチンを終了する。
このようにして、特図2に関して特図変動中処理に移行するための処理が行われる。
〔特図変動中処理〕
次に、上述の特図ゲーム処理における特図変動中処理(ステップS360)の詳細について図48により説明する。
特図変動中処理では、まず、ステップS729で図柄停止コマンドを準備し、次いでステップS730で図柄停止コマンド(ステップS729で準備したもの)についてコマンド設定処理(後述する)を実行する。図柄停止コマンドは、演出制御装置300に対して、特図(飾り図柄)の変動表示の停止を指令するものである。なお本例は、このように主基板(遊技制御装置100)からサブ基板(演出制御装置300)に図柄停止コマンドを送信する構成であるが、この態様に限定されない。例えば、サブ基板側で計時して自動的に(即ち、主基板からのコマンドによらずに)図柄停止(特図の飾り図柄の変動表示の停止)を行う構成としてもよく、この場合には、主基板から図柄停止コマンドを送信する必要は必ずしもない。但しこの場合も、検査時等に使えるように、サブ基板側の処理として図柄停止コマンドを受信する処理を残してもよい。
次に、ステップS731で図柄情報がはずれ図柄情報であるかをチェックし、ステップS732でYES(図柄情報がはずれ図柄情報である)と判定すると、ステップS733に進んで、後半変動番号がリーチなし変動の番号かをチェックする。チェック結果をステップS734で判定し、YES(リーチなし変動)であれば、ステップS735ではずれ時の特図表示時間ポインタを設定する。次いで、ステップS736で特図表示時間テーブルを設定し、ステップS737で特図表示時間ポインタに対応する特図表示時間を取得し、さらにステップS738で特図表示時間を特図ゲーム処理タイマ領域にセーブする。その後、ステップS739で特図表示中移行設定処理を行い、リターンする。
一方、ステップS734で後半変動番号がリーチなし変動の番号でなければ、NO(リーチあり変動)と判定し、ステップS740に分岐してはずれリーチ時の特図表示時間ポインタを設定した後、ステップS736に進み、以降の処理を行う。
また、ステップS732で図柄情報がはずれ図柄情報でない(NO)と判定すると、ステップS741に分岐して大当り時の特図表示時間ポインタを設定した後、ステップS736に進み、以降の処理を行う。
〔特図表示中処理移行設定処理〕
次に、上述の特図変動中処理における特図表示中処理移行設定処理(ステップS739)の詳細について図49により説明する。
ルーチンが開始すると、ステップS751で処理番号として「2」(特図表示中処理に係る処理番号に相当)を設定し、ステップS752で特図ゲーム処理番号領域に処理番号(ここでは「2」)をセーブする。次いで、ステップS753で特図1変動終了処理に関する信号を試験信号出力データ領域にセーブし、ステップS754で特図2変動終了処理に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS755で図柄確定回数信号制御タイマ領域に制御タイマ初期値(例えば、256ms)をセーブし、ステップS756で特図1変動制御フラグ領域に停止フラグをセーブし、ステップS757で特図2変動制御フラグ領域に停止フラグをセーブしてルーチンを終了する。
このようにして、特図表示中処理に移行するための処理が行われる。
〔特図表示中処理〕
次に、上述の特図ゲーム処理における特図表示中処理(ステップS361)の詳細について図50、図51により説明する。
特図表示中処理では、まず、特図2変動開始処理1における大当りフラグ2設定処理にて設定された大当りフラグ2をロードして(ステップS761)、RWMの大当りフラグ2領域をクリアする処理(ステップS762)を行う。
次に、ロードされた大当りフラグ2が大当りかをチェックして(ステップS763)、大当りである(ステップS764;YES)と判定すると、ステップS770にジャンプしてRWMの大当りフラグ1領域をクリアする処理を行い、次いで、ステップS771で特図2大当りの開始に関する信号を試験信号出力データ領域にセーブし、ステップS772に処理を移行する。
一方、ステップS764にて、大当りフラグ2のチェックの結果、大当りでない(ステップS764;NO)と判定すると、特図1変動開始処理における大当りフラグ1設定処理にて設定された大当りフラグ1をロードして(ステップS765)、RWMの大当りフラグ1領域をクリアする処理(ステップS766)を行う。
続けて、ロードされた大当りフラグ1が大当りかをチェックして(ステップS767)、大当りである(ステップS768;YES)と判定すると、特図1大当りの開始に関する信号を試験信号出力データ領域にセーブし(ステップS769)、ステップS772に処理を移行する。
また、ステップS768で大当りでない(NO)と判定すると、図51のステップS787に処理を移行する。このときは、以後に時短の有無を判断して処理を進めることになる。
さて、上述したステップS769における特図1大当りに関する試験信号のセーブ、或いは、ステップS771における特図2大当りに関する試験信号のセーブの後、ラウンド数上限値テーブルを設定する処理(ステップS772)を行う。
次いで、ラウンド数上限値情報に対応するラウンド数上限値を取得し、ラウンド数上限値をラウンド数上限値領域にセーブする(ステップS773)。続けて、ラウンド数上限値情報に対応するラウンドLEDポインタを取得し、当該ラウンドLEDポインタをラウンドLEDポインタ領域にセーブする(ステップS774)。
次に、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報に係る低確率時の確率情報コマンドを準備して(ステップS775)、コマンド設定処理(ステップS776)を行う。
続けて、図柄情報に対応するファンファーレコマンドを準備し(ステップS777)、コマンド設定処理(ステップS778)を行う。
その後、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドを飾り特図コマンド領域からロードして準備し(ステップS779)、コマンド設定処理(ステップS780)を行う。
次に、大入賞口開放情報と確率の状態に対応する信号を外部情報出力データ領域にセーブし(ステップS781)、大入賞口開放情報に対応する大当りファンファーレ時間を設定して(ステップS782)、当該大当りファンファーレ時間を特図ゲーム処理タイマ領域にセーブする(ステップS783)。
その後、大入賞口への不正入賞数領域をリセットした後(ステップS784)、大入賞口不正監視期間フラグ領域に不正監視期間外フラグをセーブする(ステップS785)。
そして、ファンファーレ/インターバル中処理に移行するための各種データを設定する移行設定処理1(ステップS786)、具体的には、ファンファーレ/インターバル中処理に係る処理番号「3」、各種状態の切り替えに係る情報を設定する処理等を行って、特図変動中処理を終了する。
ここで、各種状態が切り替わるための情報としては、例えば、外部情報端子板55に出力用の遊技状態が特別遊技状態(大当り状態)であることを示す信号、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率が通常確率状態(低確率状態)であることを示す試験信号、大入賞口不正監視期間における大入賞口への入賞数のクリアに係る情報、特別遊技状態のラウンド数のクリアに係る情報、高確率状態の表示に係る遊技状態表示LEDを消灯させる情報、普図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報、停電復旧時に点灯した高確率状態の表示に係る遊技状態表示LED(高確率報知LED)を消灯させる情報、特図変動表示ゲームの制御用の情報(例えば、特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報や、停電復旧時に演出制御装置300に出力される、普図変動表示ゲームや特図変動表示ゲームにて当り結果となる確率が通常確率状態(低確率状態)であることを示す情報や、大当り後の残り時間短縮変動回数のクリアに係る情報など)等が挙げられる。
一方、ステップS768にて、大当りフラグ1のチェックの結果、大当りでない(ステップS768;NO)と判定すると、図51に示すように、遊技状態が、特図変動表示ゲームと普図変動表示ゲームを時短動作状態とし、普通変動入賞装置26の開放時間を延長する時短状態であるか否かを判定する処理(ステップS787)を行う。
ここで、遊技状態が時短状態でない(ステップS787;NO)と判定すると、特図普段処理に移行するための各種データを設定する特図普段処理移行設定処理1(ステップS788)、具体的には、当該テーブルに、特図普段処理に係る処理番号「0」等を設定する処理を行って、特図表示中処理を終了する。
一方、ステップS787にて、遊技状態が時短状態である(ステップS787;YES)と判定すると、特図変動表示ゲームが時短動作状態で行われる回数(例えば、100回)に係る時短変動回数(時間短縮変動回数)を更新(−1)した後(ステップS789)、当該更新後の時短変動回数が「0」であるか否かを判定する処理(ステップS790)を行う。
ここで、時短変動回数が「0」でない(ステップS790;NO)と判定すると、処理をステップS788に移行して、それ以降の処理を行う。
一方、ステップS790にて、時短変動回数が「0」である(ステップS790;YES)と判定すると、即ち、時短状態にて特図変動表示ゲームが時短動作状態での所定回数(例えば、100回)の実行が完了した場合には、特図変動表示ゲームと普図変動表示ゲームの時短動作状態と普通変動入賞装置26の開放時間を延長する状態(時短状態)を終了する場合の確率情報コマンドを準備して(ステップS791)、コマンド設定処理(ステップS792)を行う。
次に、時短が終了した時における特図普段処理に移行するための各種データを設定する特図普段処理移行設定処理2(時短終了時)(ステップS793)、具体的には、当該テーブルに、特図普段処理に係る処理番号「0」、特図変動表示ゲームと普図変動表示ゲームの時短動作状態と普通変動入賞装置26の開放時間を延長する状態(時短状態)の終了に係る情報等を設定する処理を行って、特図表示中処理を終了する。
〔特図普段処理移行設定処理2(時短終了時)〕
次に、上述の特図表示中処理における特図普段処理移行設定処理2(時短終了時)(ステップS793)の詳細について図52により説明する。
ルーチンが開始すると、ステップS801で処理番号として「0」(特図普段処理に係る処理番号に相当)を設定し、ステップS802で特図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップS803で時短の終了に関する信号を外部情報出力データ領域にセーブし、ステップS804で時短の終了に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS805で遊技状態表示番号領域に低確率時の番号をセーブし、ステップS806で普図ゲームモードフラグ領域に普図低確率&普電サポートなしフラグをセーブする。次いで、ステップS807で特図ゲームモードフラグ領域に特図低確率フラグをセーブし、ステップS808で停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブする。次いで、ステップS809で変動図柄判別フラグ領域をリセットし、ステップS810で特殊演出情報(振分用)領域をリセットしてリターンする。
〔ファンファーレ/インターバル中処理移行設定処理1〕
次に、上述の特図表示中処理におけるファンファーレ/インターバル中処理移行設定処理1(ステップS786)の詳細について図53により説明する。
ルーチンが開始すると、ステップS821で処理番号として「3」(ファンファーレ/インターバル中処理に係る処理番号に相当)を設定し、ステップS822で特図ゲーム処理番号領域に処理番号(ここでは「3」)をセーブする。次いで、ステップS823で大当りの開始に関する信号を外部情報出力データ領域にセーブし、ステップS824で高確率&時短の終了に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS825で大入賞口不正入賞数領域をリセットし、ステップS826でラウンド数領域をリセットする。次いで、ステップS827で遊技状態表示番号領域に低確率時の番号をセーブし、ステップS828で普図ゲームモードフラグ領域に普図低確率&普電サポートなしフラグをセーブする。次いで、ステップS829で変動図柄判別フラグ領域をリセットし、ステップS830で高確率報知フラグ領域をリセットし、ステップS831で特図ゲームモードフラグ領域に特図低確率フラグをセーブし、ステップS832で停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブする。次いで、ステップS833で時短変動回数領域をリセットし、ステップS834で特殊演出情報(振分用)領域をリセットしてリターンする。
〔ファンファーレ/インターバル中処理〕
次に、上述の特図ゲーム処理におけるファンファーレ/インターバル中処理(ステップS362)の詳細について図54により説明する。
ファンファーレ/インターバル中処理では、まず、特別遊技状態のラウンド数を更新(+1)する処理(ステップS841)を行った後、特別遊技状態の各ラウンドにおける大入賞口の開放時間(変動入賞装置27の開閉部材27bの開放時間。以下、適宜同様)を判断するために、大入賞口開放情報が長開放か否かをチェックする。
なお、特別遊技状態の各ラウンドにおける大入賞口の開放時間(変動入賞装置27の開閉部材27bの開放時間)としては、開放時間の短い短開放(例えば、0.8秒等)と、開放時間の長い長開放(例えば、25秒等)とがある。この判定は、例えば大入賞口開放情報判定フラグを設定し、当該大入賞口開放情報判定フラグが大入賞口の開放時間の長い長開放(例えば、25秒等)であるか否かをチェックして行うようにすればよい。
ステップS842のチェック結果はステップS843で判定し、YES(開放時間の長い長開放)であれば、特別遊技状態のラウンド数に対応するラウンドコマンドを準備して(ステップS844)、コマンド設定処理(ステップS845)を行う。
次に、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップS846)、コマンド設定処理(ステップS847)を行う。
そして、特別遊技状態の各ラウンドにおける変動入賞装置27の開閉部材27bの開放時間(大入賞口の開放時間)として開放時間の長い長開放(例えば、25000ms=25秒)を設定する処理(ステップS848)を行った後、当該開放時間(長開放に係る開放時間)を特図ゲーム処理タイマにセーブする(ステップS849)。
次に、大入賞口開放中処理に移行するための各種データを設定する大入賞口開放中処理移行設定処理(ステップS850)、具体的には、大入賞口開放中処理に係る処理番号「4」、大入賞口の開放に係る試験信号、大入賞口を開放するための大入賞口ソレノイド133の駆動に係る制御信号(オン信号)、大入賞口への入賞数のクリアに係る情報等を設定する処理を行って、ファンファーレ/インターバル中処理を終了する。
一方、ステップS843にて大入賞口の開放時間が長開放でないと判定(NO)された場合、即ち、大入賞口の開放時間が短開放である場合には、処理をステップS851に移行して、当該開放時間として短開放(例えば、800ms=0.8秒)に設定し、ステップS849に進む。
したがって、大当りのラウンド数が15ラウンドである場合は、大入賞口の開放時間として長開放に係る開放時間が特図ゲーム処理タイマにセーブされ、大当りのラウンド数が2ラウンドである場合は、大入賞口の開放時間として短開放に係る開放時間が特図ゲーム処理タイマにセーブされることとなる。
〔大入賞口開放中処理移行設定処理〕
次に、上述のファンファーレ/インターバル中処理における大入賞口開放中処理移行設定処理(ステップS850)の詳細について図55により説明する。
ルーチンが開始すると、ステップS861で処理番号として「4」(大入賞口開放中処理に係る処理番号に相当)を設定し、ステップS862で特図ゲーム処理番号領域に処理番号(ここでは「4」)をセーブする。次いで、ステップS863で大入賞口開放開始に関する信号を試験信号出力データ領域にセーブする。大入賞口開放開始に関する信号としては、例えば特別電動役物1作動中信号をONしたものがある。
次いで、ステップS864で大入賞口ソレノイド出力データ領域にONデータをセーブし、ステップS865で大入賞口カウント数をリセットしてリターンする。
〔大入賞口開放中処理〕
次に、上述の特図ゲーム処理における大入賞口開放中処理(ステップS363)の詳細について図56により説明する。
大入賞口開放中処理では、まず、大入賞口開放情報が開放時間の長い長開放(例えば、25秒等)であるか否かをチェックする(ステップS871)。これは、例えば大入賞口開放情報判定フラグを用いて判断する。
そして、大入賞口の開放時間が長開放である(ステップS872;YES)と判定すると、実行中の特別遊技状態における今回のラウンド数をRWMのラウンド数上限値領域のラウンド数上限値と比較して、今回のラウンドが上限値(つまり最終ラウンド)に達したか否かをチェックする処理(ステップS873)を行う。
ステップS873におけるチェックの結果はステップS874で判定し、判定の結果、特別遊技状態における今回のラウンドが最終ラウンドでない(ステップS874;NO)であれば、ラウンド間のインターバルに係るインターバルコマンドを準備して(ステップS875)、コマンド設定処理(ステップS876)を行う。
続けて、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップS877)、コマンド設定処理(ステップS878)を行う。
次に、大入賞口残存球処理に移行するための各種データを設定する大入賞口残存球処理移行設定処理(ステップS879)、具体的には、大入賞口残存球処理に係る処理番号「5」、特図ゲーム処理タイマにセーブする大入賞口残存球処理に係る処理時間、大入賞口を閉塞するための大入賞口ソレノイド133の駆動に係る制御信号(オフ信号)等を設定する処理を行って、大入賞口開放中処理を終了する。
一方、ステップS874にて、特別遊技状態における今回のラウンドが最終ラウンドである(ステップS874;YES)と判定すると、特別遊技状態の終了の際にエンディング表示画面の表示制御等に係るエンディングコマンドを準備して(ステップS880)、コマンド設定処理(ステップS876)を行った後、処理をステップS877に移行して、それ以降の処理を行う。
即ち、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップS877)、コマンド設定処理(ステップS878)を行った後、大入賞口残存球処理に移行するための各種データを設定する大入賞口残存球処理移行設定処理(ステップS879)を行う。具体的には、大入賞口残存球処理に係る処理番号「5」、特図ゲーム処理タイマにセーブする大入賞口残存球処理に係る処理時間、大入賞口を閉塞するための大入賞口ソレノイド133の駆動に係る制御信号(オフ信号)等を設定する処理を行って、大入賞口開放中処理を終了する。
また、ステップS872にて、大入賞口の開放時間が長開放でない(ステップS872;NO)と判定すると、即ち、大入賞口の開放時間が短開放(例えば、0.8秒)である場合、インターバルコマンドの設定(ステップS876)、飾り特図コマンドの設定(ステップS878)、エンディングコマンドの設定(ステップS874)を行うことなく、処理をステップS879に移行して、大入賞口残存球処理に移行するための各種データを設定する大入賞口残存球処理移行設定処理(ステップS879)を行う。具体的には、大入賞口残存球処理に係る処理番号「5」、特図ゲーム処理タイマにセーブする大入賞口残存球処理に係る処理時間、大入賞口を閉塞するための大入賞口ソレノイド133の駆動に係る制御信号(オフ信号)等を設定する処理を行って、大入賞口開放中処理を終了する。
〔大入賞口残存球処理移行設定処理〕
次に、上述の大入賞口開放中処理における大入賞口残存球処理移行設定処理(ステップS879)の詳細について図57により説明する。
ルーチンが開始すると、ステップS881で処理番号として「5」(大入賞口残存球処理に係る処理番号に相当)を設定し、ステップS882で特図ゲーム処理番号領域に処理番号(ここでは「5」)をセーブする。次いで、ステップS883で残存球処理時間(例えば、1900ms)を設定し、ステップS884で特図ゲーム処理タイマ領域に残存球処理時間をセーブする、次いで、ステップS885で大入賞口ソレノイド出力データ領域にOFFデータをセーブしてリターンする。
〔大入賞口残存球処理〕
次に、上述の特図ゲーム処理における大入賞口残存球処理(ステップS364)の詳細について図58により説明する。
大入賞口残存球処理では、まず、実行中の特別遊技状態における今回のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して今回のラウンドが上限値に達した(最終ラウンド)か否かをチェックする(ステップS891)。
そして、ステップS891におけるチェックの結果、特別遊技状態における今回のラウンドが最終ラウンドでない(ステップS892;NO)と判定すると、インターバル時間テーブルを設定し(ステップS893)、大入賞口開放情報と今回のラウンド数に対応するインターバル時間を取得し(ステップS894)、さらにインターバル時間を特図ゲーム処理タイマ領域にセーブする(ステップS895)。その後、ファンファーレ/インターバル中処理に移行するための各種データを設定するファンファーレ/インターバル中処理移行設定処理2(ステップS896)、具体的には、ファンファーレ/インターバル中処理に係る処理番号「3」、特図ゲーム処理タイマにセーブするファンファーレ/インターバル中処理に係る処理時間、変動入賞装置27の作動終了を示す試験信号等を設定する処理を行って、大入賞口残存球処理を終了する。
一方、ステップS891におけるチェックの結果、特別遊技状態における今回のラウンドが最終ラウンドである(ステップS892;YES)と判定すると、エンディング時間テーブルを設定する処理(ステップS897)を行い、図柄情報に対応するエンディング時間を取得(ステップS898)した後、当該エンディング時間を特図ゲーム処理タイマ領域にセーブする(ステップS899)。
次に、大当り終了処理に移行するための各種データを設定する大当り終了処理移行設定処理(ステップS900)、具体的には、大当り終了処理に係る処理番号「6」、大入賞口の閉塞に係る試験信号、特別遊技状態における各パラメータのクリアに係る情報(例えば、大入賞口への入賞数のクリアに係る情報、特別遊技状態のラウンド数のクリアに係る情報、特別遊技状態のラウンド数の上限値のクリアに係る情報、ラウンド数の上限値判定用のフラグのクリアに係る情報、大入賞口の開放時間が長開放か短開放かの開放情報判定用のフラグのクリアに係る情報)等を設定する処理を行って、大入賞口残存球処理を終了する。
〔ファンファーレ/インターバル中処理移行設定処理2〕
次に、上述の大入賞口残存球処理におけるファンファーレ/インターバル中処理移行設定処理2(ステップS896)の詳細について図59により説明する。
ルーチンが開始すると、ステップS911で処理番号として「3」(ファンファーレ/インターバル中処理に係る処理番号に相当)を設定し、ステップS912で特図ゲーム処理番号領域に処理番号(ここでは「3」)をセーブする。次いで、ステップS913で大入賞口開放終了に関する信号を試験信号出力データ領域にセーブしてリターンする。大入賞口開放終了に関する信号としては、例えば特別電動役物1作動中信号をOFFしたものがある。
〔大当り終了処理移行設定処理〕
次に、上述の大入賞口残存球処理における大当り終了処理移行設定処理(ステップS900)の詳細について図60により説明する。
ルーチンが開始すると、ステップS921で処理番号として「6」(大当り終了処理に係る処理番号に相当)を設定し、ステップS922で特図ゲーム処理番号領域に処理番号(ここでは「6」)をセーブする。次いで、ステップS923で大入賞口開放終了に関する信号(例えば、特別電動役物1作動中信号OFF)を試験信号出力データ領域にセーブする。
次いで、ステップS924で大入賞口カウント数をリセットし、ステップS925でラウンド数をリセットし、ステップS926でラウンド数上限値領域をリセットする。続いて、ステップS927でラウンド数上限値情報領域をリセットし、ステップS928で大入賞口開放情報領域をリセットしてリターンする。
〔大当り終了処理〕
次に、上述の特図ゲーム処理における大当り終了処理(ステップS365)の詳細について図61により説明する。
大当り終了処理では、まず、停止図柄情報設定処理にて設定された確率変動判定フラグが高確率突入フラグかをチェックし(ステップS931)、チェック結果をステップS932で判定し、NOであれば高確率突入でないと判断してステップS933に進む。
ステップS933では大当り終了設定処理1を行う。これは、高確率突入でない状態であるから、大当り終了後に時短となるモードに移行する処理を設定するものである。次いで、ステップS934で確率変動判定フラグに対応する確率情報コマンドを準備し、ステップS935でコマンド処理を行う。
次いで、ステップS936で特殊演出情報(設定用)をロードし、特殊演出情報(振分用)領域にセーブする。その後、特図普段処理に移行するための各種データを設定する特図普段処理移行設定処理3(ステップS937)、具体的には、特図普段処理に係る処理番号「0」、大入賞口不正監視期間を規定するフラグ(大入賞口不正監視情報)等を設定する処理を行って、大当り終了処理を終了する。
一方、上記ステップS932でYES(高確率突入)のときは、ステップS938に分岐して大当り終了設定処理2を行う。これは、高確率突入の状態であるから、大当り終了後に確率変動(高確率開始)となるモードに移行する処理を設定するものである。次いで、ステップS934以降の処理を実行する。
〔大当り終了設定処理1〕
次に、上述の大当り終了処理における大当り終了設定処理1(ステップS933)の詳細について図62により説明する。
ルーチンが開始すると、ステップS941で時短の開始に関する信号を外部情報出力データ領域にセーブする。この領域での時短の開始に関する信号は、例えば大当り2信号ONである。次いで、ステップS942で時短の開始に関する信号を試験信号出力データ領域にセーブする。この領域での時短の開始に関する信号は、以下のものがある。
・特別図柄1変動時間短縮状態信号をON
・特別図柄2変動時間短縮状態信号をON
・普通図柄1高確率状態信号をON
・普通図柄1変動時間短縮状態信号をON
・普通電動役物1開放延長状態信号をON
次いで、ステップS943で遊技状態表示番号領域に時短時の番号をセーブし、ステップS945で特図ゲームモードフラグ領域に低確率&時短フラグをセーブする。次いで、ステップS946で停電復旧時送信コマンド領域に確率情報コマンド(時短)をセーブし、ステップS947で時短変動回数領域に時短変動回数初期値(例えば、100)をセーブしてリターンする。
このようにして、大当り終了後に時短となるモードに移行する処理が行われる。
〔大当り終了設定処理2〕
次に、上述の大当り終了処理における大当り終了設定処理2(ステップS938)の詳細について図63により説明する。
ルーチンが開始すると、ステップS951で高確率の開始に関する信号を外部情報出力データ領域にセーブする。この領域での高確率の開始に関する信号は、例えば大当り2信号ONである。次いで、ステップS952で高確率の開始に関する信号を試験信号出力データ領域にセーブする。この領域での時短の開始に関する信号は、以下のものがある。
・特別図柄1高確率状態信号をON
・特別図柄2高確率状態信号をON
・特別図柄1変動時間短縮状態信号をON
・特別図柄2変動時間短縮状態信号をON
・普通図柄1高確率状態信号をON
・普通図柄1変動時間短縮状態信号をON
・普通電動役物1開放延長状態信号をON
次いで、ステップS953で遊技状態表示番号領域に高確率時の番号をセーブし、ステップS954で普図ゲームモードフラグ領域に普図高確率&普電サポートフラグをセーブする。次いで、ステップS955で特図ゲームモードフラグ領域に高確率&時短フラグをセーブする。次いで、ステップS956で停電復旧時送信コマンド領域に確率情報コマンド(高確率)をセーブし、ステップS957で時短変動回数領域をリセットしてリターンする。
このようにして、大当り終了後に高確率となるモードに移行する処理が行われる。
〔特図普段処理移行設定処理3〕
次に、上述の大当り終了処理における特図普段処理移行設定処理3(ステップS937)の詳細について図64により説明する。
ルーチンが開始すると、ステップS961で処理番号として「0」(特図普段処理に係る処理番号に相当)を設定し、ステップS962で特図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップS963で大当りの終了に関する信号を外部情報出力データ領域にセーブする。
ここでの大当りの終了に関する信号としては、大当り1信号をOFF、大当り3信号をOFFがある。
次いで、ステップS964で大当りの終了に関する信号を試験信号出力データ領域にセーブする。ここでの大当りの終了に関する信号としては、以下のものがある。
・条件装置作動中信号をOFF
・役物連続作動装置作動中信号をOFF
・特別図柄1当り信号又は特別図柄2当り信号をOFF
次いで、ステップS965で確率変動判定フラグ領域をリセットし、ステップS966でラウンドLEDポインタ領域をリセットし、ステップS967で大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブし、さらにステップS968で特殊演出情報(設定用)領域をリセットしてリターンする。
次に、普図ゲーム処理に関するフローチャートの説明に移るが、ここでは、ステップ番号として「ステップB」を用いて説明する。
〔普図ゲーム処理〕
まず、上述のタイマ割込み処理における普図ゲーム処理(ステップS79)の詳細について図65により説明する。
普図ゲーム処理では、ゲートスイッチ122の入力の監視と、普図変動表示ゲームに関する処理全体の制御、普図の表示の設定等を行う。
まず、ゲートスイッチ122からの入力を監視するゲートスイッチ監視処理(ステップB1)を行う。なお、ゲートスイッチ監視処理(ステップB1)の詳細については後述する。
次に、第2始動口スイッチ121からの入力を監視する普電入賞スイッチ監視処理(ステップB2)を行う。なお、普電入賞スイッチ監視処理(ステップB2)の詳細については後述する。
次に、普図ゲーム処理タイマが既にタイムアップしたか、又は普図ゲーム処理タイマを更新(−1)して、当該ゲーム処理タイマがタイムアップしたか否かをチェックして(ステップB3)、普図ゲーム処理タイマがタイムアップした(ステップB4;YES)と判定すると、普図ゲーム処理番号に対応する処理に分岐させるために参照する普図ゲームシーケンス分岐テーブルをレジスタに設定する処理(ステップB5)を行って、当該テーブルを用いて普図ゲーム処理番号に対応する処理の分岐先アドレスを取得する処理(ステップB6)を行う。
そして、分岐処理終了後のリターンアドレスをスタック領域に退避させる処理(ステップB7)を行った後、ゲーム処理番号に応じてゲーム分岐処理(ステップB8)を行う。
ステップB8にて、ゲーム処理番号が「0」の場合は、普図変動表示ゲームの変動開始を監視し、普図変動表示ゲームの変動開始の設定や演出の設定や、普図変動中処理を行うために必要な情報の設定等を行う普図普段処理(ステップB9)を行う。
なお、普図普段処理(ステップB9)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「1」の場合は、普図表示中処理を行うために必要な情報の設定等を行う普図変動中処理(ステップB10)を行う。
なお、普図変動中処理(ステップB10)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「2」の場合は、普図変動表示ゲームの結果が当りであれば、普通変動入賞装置37がサポート中であるか否かに応じた普電開放時間の設定や、普図当り中処理を行うために必要な情報の設定等を行う普図表示中処理(ステップB11)を行う。
なお、普図表示中処理(ステップB11)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「3」の場合は、普図当り中処理の継続、或いは普電残存球処理を行うために必要な情報の設定等を行う普図当り中処理(ステップB12)を行う。
なお、普図当り中処理(ステップB12)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「4」の場合は、普図当り終了処理を行うために必要な情報の設定等を行う普電残存球処理(ステップB13)を行う。
なお、普電残存球処理(ステップB13)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「5」の場合は、普図普段処理(ステップB9)を行うために必要な情報の設定等を行う普図当り終了処理(ステップB14)を行う。
なお、普図当り終了処理(ステップB14)の詳細については後述する。
その後、普図表示器(一括表示装置35)による普通図柄の変動を制御するための各種テーブルを準備した後(ステップB15)、普図表示器(一括表示装置35)による普通図柄の変動の制御に係る図柄変動制御処理(ステップB16)を行って、普図ゲーム処理を終了する。
一方、ステップB4にて、普図ゲーム処理タイマがタイムアップしていない(ステップB4;NO)と判定すると、処理をステップB15に移行して、それ以降の処理を行う。
〔ゲートスイッチ監視処理〕
次に、上述の普図ゲーム処理におけるゲートスイッチ監視処理(ステップB1)の詳細について図66により説明する。
ゲートスイッチ監視処理では、まず、ゲートスイッチ122に入力があるか否かをチェックする(ステップB21)。そして、ゲートスイッチ122に入力があると(ステップB22;YES)判定すると、普図保留数を取得して当該普図保留数が上限値(例えば、4)未満か否かをチェックして(ステップB23)、普図保留数が上限値未満である(ステップB24;YES)と判定すると、普図保留数を更新(+1)する処理(ステップB25)を行う。
その後、更新後の普図保留数に対応する乱数セーブ領域のアドレスを算出する処理(ステップB26)を行った後、取得した当り乱数をRWMの乱数セーブ領域にセーブする処理(ステップB27)を行って、ゲートスイッチ監視処理を終了する。
また、ステップB22にて、ゲートスイッチ122に入力がないと判定されるか(ステップB22;NO)、或いは、ステップB24にて、普図保留数が上限値未満でないと判定された場合にも(ステップB24;NO)ゲートスイッチ監視処理を終了する。
〔普電入賞スイッチ監視処理〕
次に、上述の普図ゲーム処理における普電入賞スイッチ監視処理(ステップB2)の詳細について図67により説明する。
普電入賞スイッチ監視処理では、まず、普図変動表示ゲームが当り状態となって普通変動入賞装置26が所定回数(例えば、3回)の開放動作を実行中であるか(普図当り中か)否かをチェックする(ステップB31)。そして、普図当り中である(ステップB32;YES)と判定すると、第2始動口スイッチ121に入力があるか否かをチェックして(ステップB33)、第2始動口スイッチ121に入力がある(ステップB34;YES)と判定すると、普電カウンタのカウント数を更新(+1)する処理(ステップB35)を行う。
次に、更新後の普電カウンタのカウント数が上限値(例えば、9)に達したか否かをチェックして(ステップB36)、カウント数が上限値に達した(ステップB37;YES)と判定すると、普図当り中処理制御ポインタ領域に当り終了の値「4」をセーブする(ステップB38)。その後、普図ゲーム処理タイマを「0」クリアして(ステップB39)、普電入賞スイッチ監視処理を終了する。
即ち、普図の当り状態中に上限値以上の普電入賞があった場合は、その時点で普図当り中処理制御ポインタに当り終了を設定し、以下に説明する普図当り中処理で普図の当り状態が途中で終了するようにする。
また、ステップB32にて、普図当り中でないと判定されるか(ステップB32;NO)、或いは、ステップB34にて、第2始動口スイッチ121に入力がないと判定されるか(ステップB34;No)、或いは、ステップB37にて、カウント数が上限値に達していないと判定された場合にも(ステップB37;NO)、普電入賞スイッチ監視処理を終了する。
〔普図普段処理〕
次に、上述の普図ゲーム処理における普図普段処理(ステップB9)の詳細について図68により説明する。
普図普段処理では、まず、普図保留数が「0」であるか否かをチェックして(ステップB41)、普図保留数が「0」である(ステップB42;YES)と判定すると、ステップB70に移行して、普図普段処理移行設定処理1を行った後、普図普段処理を終了する。普図普段処理移行設定処理1は、次回に普図普段処理を繰り返すための処理を行うもので、詳細は後述する。
一方、ステップB42にて、普図保留数が0でない(ステップB42;NO)と判定すると、ステップB43に進んで、普図変動表示ゲームにて当り結果となる確率が通常よりも高くされた高確率状態となっている(つまり、普図高確率時)か否かを判定する。
ここで、普図高確率時(普通変動入賞装置26がサポート中)でない(ステップB43;NO)と判定すると、普図変動表示ゲームにて当り結果となる確率が高確率状態となっていないことから、乱数セーブ領域から当り乱数をロードして準備し(ステップB44)、普図低確率時の判定値を設定する(ステップB45)を行う。
その後、当り乱数の値が判定値と一致しているか否かをチェックして(ステップB46)、当り乱数の値が判定値と一致していない(ステップB47;NO)と判定すると、当りフラグ領域にはずれ情報をセーブした後(ステップB48)、普図停止図柄にはずれ時の停止図柄番号を設定する処理(ステップB49)を行う。その後、処理をステップB50に移行して、乱数セーブ領域を「0」クリアする処理(ステップB50)を行う。
一方、ステップB47にて、当り乱数の値が判定値と一致している(ステップB47;YES)と判定すると、当りフラグ領域に当り情報をセーブした後(ステップB51)、普図停止図柄に当り時の停止図柄番号を設定する処理(ステップB52)を行う。その後、処理をステップB50に移行して、乱数セーブ領域を「0」クリアする処理(ステップB50)を行う。
また、ステップB43にて普図高確率時である(ステップB43;YES)と判定すると、普図変動表示ゲームにて当り結果となる確率が高確率状態となっていることから、乱数セーブ領域から当り乱数をロードして準備し(ステップB53)、普図高確率時の下限判定値を設定する処理(ステップB54)を行う。
その後、当り乱数の値が下限判定値未満であるか否かをチェックして(ステップB55)、当り乱数の値が下限判定値未満でない(ステップB56;NO)と判定すると、普図高確率時の上限判定値を設定する処理(ステップB57)を行う。
そして、当り乱数の値が上限判定値より大きいか否かをチェックして(ステップB58)、当り乱数の値が上限判定値より大きくない(ステップB59;NO)と判定すると、処理をステップB51に移行して、当りフラグに当り情報をセーブした後(ステップB51)、普図停止図柄に当り時の停止図柄番号を設定する処理(ステップB52)を行い、その後、処理をステップB50に移行して、乱数セーブ領域を「0」クリアする処理(ステップB50)を行う。
また、ステップB56にて、当り乱数の値が下限判定値未満であると判定されるか(ステップB56;YES)、或いは、ステップB59にて、当り乱数の値が上限判定値より大きいと判定された場合にも(ステップB59;YES)、処理をステップB48に移行して、当りフラグ領域にはずれ情報をセーブした後(ステップB48)、普図停止図柄にはずれ時の停止図柄番号を設定する処理(ステップB49)を行い、その後、処理をステップB50に移行する。
さて、上記ステップB49やステップB52を介して処理をステップB50に進めた場合には、乱数セーブ領域を0クリアする処理(ステップB50)を行った後、次いで、普図停止図柄領域に停止図柄番号をセーブし(ステップB60)、普図停止図柄番号に対応する信号を試験信号出力データ領域にセーブする(ステップB61)。
続けて、当り乱数セーブ領域をシフトする処理(ステップB62)を行って、シフト後の空き領域を「0」クリアする処理(ステップB63)を行った後、普図保留数を更新(−1)する処理(ステップB64)を行う。
すなわち、最も古い普図保留1に関する普図変動表示ゲームが実行されることに伴い、普図保留1以降に保留となっている普図保留2〜4の順位を1つずつ繰り上げる処理を行うことになる。この処理により、当り乱数セーブ領域の普図保留2用から普図保留4用の値(例えば、当り乱数)が、当り乱数セーブ領域の普図保留1用から普図保留3用に移動することとなる。そして、当り乱数セーブ領域の普図保留4用の値がクリアされて、普図保留数が1デクリメントされる。
次いで、普通変動入賞装置26がサポート中(普電サポート中)であるか否かを判定する処理(ステップB65)を行い、普電サポート中である(ステップB65;YES)と判定すると、普電サポート時の普図の変動時間(例えば、1秒)を設定する処理(ステップB66)を行う。次いで、ステップB67に進み、ステップB66にて設定された普電サポートがある場合の普図の変動時間を普図ゲーム処理タイマにセーブして(ステップB67)、ステップS68に進む。
一方、ステップB65にて、普通サポート中でない(ステップB65;NO)と判定した場合には、ステップB69に分岐して普電サポートなし時の普図の変動時間(例えば、10秒)を設定する処理(ステップB69)を行い、その後、ステップB67に進んで、ステップB69にて設定された普電サポートなしの場合の普図の変動時間を普図ゲーム処理タイマにセーブする。
そして、ステップB67の処理を経た後は、普図変動中処理に移行するための普図変動中処理移行設定処理(ステップB68)を行って当該普図普段処理を終了する。
〔普図普段処理移行設定処理1〕
次に、上述の普図普段処理における普図普段処理移行設定処理1(ステップB70)の詳細について図69により説明する。
ルーチンが開始すると、ステップB81で処理番号として「0」(普図普段処理に係る処理番号に相当)を設定し、ステップB82で普図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップB83で普電不正監視期間フラグ領域に不正監視期間中フラグをセーブしてリターンする。これにより、次回に普図普段処理に移行する。
〔普図変動中処理移行設定処理〕
次に、上述の普図普段処理における普図変動中処理移行設定処理(ステップB68)の詳細について図70により説明する。
ルーチンが開始すると、ステップB91で処理番号として「1」(普図変動中処理に係る処理番号に相当)を設定し、ステップB92で普図ゲーム処理番号領域に処理番号(ここでは「1」)をセーブする。次いで、ステップB93で普図変動開始に関する信号(えば、普通図柄1変動中信号をON)を試験信号出力データ領域にセーブし、ステップB94で普図変動制御フラグ領域に変動中フラグをセーブする。次いで、ステップB95で普図変動制御タイマ領域に変動タイマ初期値(例えば、200ms)をセーブしてリターンする。これにより、次回に普図変動中処理に移行する。
〔普図変動中処理〕
次に、上述の普図ゲーム処理における普図変動中処理(ステップB10)の詳細について図71により説明する。
ルーチンが開始すると、ステップB101で普図表示中処理移行設定処理を行う。これは、普図表示中処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
〔普図表示中処理移行設定処理〕
次に、上述の普図変動中処理における普図表示中処理移行設定処理(ステップB101)の詳細について図72により説明する。
ルーチンが開始すると、ステップB111で処理番号として「2」(普図表示中処理に係る処理番号に相当)を設定し、ステップB112で普図ゲーム処理番号領域に処理番号(ここでは「2」)をセーブする。次いで、ステップB113で普図表示時間を設定(例えば、600ms)する。次いで、ステップB114で普図ゲーム処理タイマ領域に普図表示時間をセーブし、ステップB115で普図変動終了に関する信号(例えば、普通図柄1変動中信号をOFF)を試験信号出力データ領域にセーブする。次いで、ステップB116で普図変動制御タイマ領域に停止フラグをセーブしてリターンする。これにより、次回に普図表示中処理に移行する。
〔普図表示中処理〕
次に、上述の普図ゲーム処理における普図表示中処理(ステップB11)の詳細について図73により説明する。
普図表示中処理では、まず、普図普段処理にて設定された当りフラグをロードして(ステップB121)、当りフラグ領域をクリアする処理(ステップB122)を行う。
次に、ロードされた当りフラグが当りか否かをチェックして(ステップB123)、当りフラグが当りでない(ステップB124;NO)と判定すると、ステップB125に分岐して普図普段処理移行設定処理1(図69で説明)を行い、普図表示中処理を終了する。
一方、ステップB124にて、当りフラグが当りである(ステップB124;YES)と判定すると、普電サポート中かを判定する処理(ステップB126)を行う。
普電サポート中である(ステップB126;YES)と判定すると、普通変動入賞装置26がサポート中である場合の普電開放時間(例えば、1.7秒)を設定する処理(ステップB127)を行った後、普通変動入賞装置26がサポート中である場合の当り開始ポインタを設定する処理(ステップB128)を行う。すなわち、普通変動入賞装置26がサポート中である場合には、普通変動入賞装置26の開放回数が2回以上の複数回となるように当り開始ポインタ(例えば、当り開始ポインタ「0」〜「4」等があるが、ここでは「0」とする)を設定する。続けて、普図当り中処理制御ポインタ領域に当り開始ポインタをセーブする(ステップB129)。
次いで、ステップB127にて設定された普電開放時間(例えば、1.7秒)を普図ゲーム処理タイマ領域にセーブした後(ステップB130)、普図当り中処理移行設定処理(ステップB131)を行う。これは、普図当り中処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
一方、ステップB126で普電サポート中でない(NO)と判定すると、ステップB132に分岐して、普通変動入賞装置26がサポートなし時の普電開放時間(例えば、0.3秒)を設定する処理を行った後、普通変動入賞装置26がサポートなし時の当り開始ポインタとして「4」を設定する処理(ステップB133)を行う。当り開始ポインタ=「4」に設定されると、普通変動入賞装置26の開放回数が1回となる。その後、ステップB129に移行する。
このルートでステップB129に移行した場合、普図当り中処理制御ポインタ領域に当り開始ポインタ(この場合は「4」となる)をセーブした後、ステップB130ではステップB132にて設定された普電開放時間(例えば、0.3秒)を普図ゲーム処理タイマ領域にセーブし、ステップB131で普図当り中処理移行設定処理を行ってリターンする。
〔普図当り中処理移行設定処理〕
次に、上述の普図表示中処理における普図当り中処理移行設定処理(ステップB131)の詳細について図74により説明する。
ルーチンが開始すると、ステップB141で処理番号として「3」(普図当り中処理に係る処理番号に相当)を設定し、ステップB142で普図ゲーム処理番号領域に処理番号(ここでは「3」)をセーブする。次いで、ステップB143で普図当りの開始に関する信号(例えば、普通図柄1当り信号をON)と普電作動開始に関する信号(例えば、普通電動役物1作動中信号をON)を試験信号出力データ領域にセーブする。次いで、ステップB144で普電ソレノイド出力データ領域にONデータをセーブし、ステップB145で普電カウント数をリセットする、次いで、ステップB146で普電不正入賞数をリセットし、ステップB147で普電不正監視期間フラグ領域に不正監視期間外フラグをセーブしてリターンする。これにより、次回は普図当り中処理に移行する。
〔普図当り中処理〕
次に、上述の普図ゲーム処理における普図当り中処理(ステップB12)の詳細について図75により説明する。
普図当り中処理では、まず、普図当り中処理制御ポインタをロードして準備した後(ステップB151)、ロードされた普図当り中処理制御ポインタが当り終了の値(例えば、「4」等)であるか否かをチェックして(ステップB152)、当り終了の値でない(ステップB153;NO)と判定すると、普図当り中処理制御ポインタ領域を更新(+1)する処理(ステップB154)を行う。
次に、普電作動移行設定処理(ステップB155)を行う。ここでは、普電の作動を制御することが行われる。その後、リターンする。
また、ステップB153にて、当り終了の値であると判定された場合には(ステップB153;YES)、ステップB154における普図当り中処理制御ポインタを更新(+1)する処理を行わずに、処理をステップB155に移行して、それ以降の処理を行う。
〔普電作動移行設定処理〕
次に、上述の普図当り中処理における普電作動移行設定処理(ステップB155)の詳細について図76により説明する。
ルーチンが開始すると、ステップB161で制御ポインタによる分岐を行う。ここでは、ステップB151でロードして準備された制御ポインタの値に応じて分岐する。具体的には、ステップB161で制御ポインタが「0」若しくは「2」の場合には、ステップB162に分岐してウエイト時間(例えば、800ms)を設定し、ステップB163で普図ゲーム処理タイマ領域にウエイト時間をセーブし、続くステップB164で普電ソレノイド出力データ領域にOFFでデータをセーブした後、リターンする。これにより、普通変動入賞装置26の開放後の閉塞時間が上記ウエイト時間となり、その期間は普通変動入賞装置26が閉塞することになる。
一方、ステップB161で制御ポインタが「1」若しくは「3」の場合には、ステップB165に分岐して普電サポート時の普電開放時間(例えば、1700ms)を設定し、ステップB166で普図ゲーム処理タイマ領域に普電開放時間をセーブし、続くステップB167で普電ソレノイド出力データ領域にONでデータをセーブした後、リターンする。これにより、普通変動入賞装置26の開放時間が上記普電開放時間となり、その期間は普通変動入賞装置26が開放することになる。
また、ステップB161で制御ポインタが「4」の場合には、ステップB168に分岐して処理番号として「4」を設定し、ステップB169で普図ゲーム処理番号領域に処理番号(ここでは「4」)をセーブする。次いで、ステップB170で普電残存球処理時間(例えば、600ms)を設定し、ステップS171で普図ゲーム処理タイマ領域に普電残存球処理時間をセーブし、続いてステップB172で普電ソレノイド出力データ領域にOFFデータをセーブしてリターンする。したがって、制御ポインタが「4」のときは、普電開放制御を終了して、次の普電残存球処理を行うために必要な情報が設定されることになる。
〔普電残存球処理〕
次に、上述の普図ゲーム処理における普電残存球処理(ステップB13)の詳細について図77により説明する。
ルーチンが開始すると、ステップB181で普図当り終了処理移行設定処理を行う。これは、普図当り終了処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
〔普図当り終了処理移行設定処理〕
次に、上述の普電残存球処理における普図当り終了処理移行設定処理(ステップB181)の詳細について図78により説明する。
ルーチンが開始すると、ステップB191で処理番号として「5」(普図当り終了処理に係る処理番号に相当)を設定し、ステップB192で普図ゲーム処理番号領域に処理番号(ここでは「5」)をセーブする。次いで、ステップB193で普図エンディング時間を設定(例えば、100ms)し、ステップB194で普図ゲーム処理タイマ領域にエンディング時間をセーブし、ステップB195で普電作動終了に関する信号(例えば、普通電動役物1作動中信号をOFF)を試験信号出力データ領域にセーブする。次いで、ステップB196で普電カウント数をリセットし、ステップB197で普図当り中処理制御ポインタ領域をリセットしてリターンする。これにより、次回は普図当り終了処理に移行する。
〔普図当り終了処理〕
次に、上述の普図ゲーム処理における普図当り終了処理(ステップB14)の詳細について図79により説明する。
ルーチンが開始すると、ステップB201で普図普段処理移行設定処理2を行う。これは、普図普段処理移行設定処理2に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
〔普図普段処理移行設定処理2〕
次に、上述の普図当り終了処理における普図普段処理移行設定処理2(ステップB201)の詳細について図80により説明する。
ルーチンが開始すると、ステップB211で処理番号として「0」(普図普段処理に係る処理番号に相当)を設定し、ステップB212で普図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップB213で普図当りの終了に関する信号(例えば、普通図柄1当り信号をOFF)を試験信号出力データ領域にセーブする。次いで、ステップB214で普電不正監視期間フラグ領域に不正監視期間外フラグをセーブしてリターンする。これにより、次回は普図普段処理に移行する。
以上で、普図ゲーム処理に関するフローチャートを説明したので、次に、上述のタイマ割込み処理におけるステップS80以降のサブルーチンの説明に移る。
ここでは、ステップ番号として「ステップC」を用いて説明する。
〔セグメントLED編集処理〕
まず、上述のタイマ割込み処理におけるセグメントLED編集処理(ステップS80)の詳細について図81により説明する。
セグメントLED編集処理は一括表示装置35(図2、4、5)に設けられたセグメントLEDに関する処理を行うものであり、一括表示装置35は前述したように、普図の表示や特図の表示、さらには特図や普図の始動記憶の保留表示(特図保留表示、普図保留表示)や、遊技状態の表示を行うようになっている。
これらの表示は、例えばLEDを発光源とする複数の表示器(例えば、1個のランプや7セグメント表示器)によって行われる構成である。より具体的には、例えば特図1保留表示器、特図2保留表示器、普図保留表示器、第1遊技状態表示部、第2遊技状態表示部、エラー表示部、ラウンド表示部などの機能を有するセグメントLEDで構成され、それらの駆動に関する設定等を行うのがセグメントLED編集処理である。
セグメントLED編集処理では、まず、表示制御タイマを更新(+1)する処理(ステップC1)を行う。
その後、表示制御タイマが出力ONタイミングであるか否かをチェックして(ステップC2)、出力ONタイミングである(ステップC3;YES)と判定すると、点滅制御ポインタとして点灯ポインタを設定する処理(ステップC4)を行った後、処理をステップC5に移行する。
一方、ステップC3にて出力ONタイミングでない(ステップC3;NO)と判定すると、ステップC6に分岐して点滅制御ポインタとして消灯ポインタを設定する処理(ステップC6)を行った後、処理をステップC5に移行する。
ここで、出力ONタイミングであるか否かの判定とは、特定のビットの状態を監視し、この監視するビットが「1」であれば出力ONタイミングであると判定する一方、監視するビットが「0」であれば出力ONタイミングでないと判定するものである。
特に、本実施例では表示制御タイマのビット5が「1」のとき、出力ONタイミングであると判定する。このとき、例えば128msの点滅になるように設定される。
上記ステップC4あるいはステップC6からステップC5に移行すると、ステップC5では、普図保留数と、ステップC4若しくはステップC6にて設定された点滅制御ポインタに対応する表示データを取得した後、取得した表示データをセグメント領域(例えば普図保留表示器のセグメント領域)にセーブする。その後、特図1保留数に対応する表示データを取得した後、取得した表示データをセグメント領域(例えば、特図1保留表示器のセグメント領域)にセーブする(ステップC7)。
続けて、特図2保留数に対応する表示データを取得した後、取得した表示データをセグメント領域(例えば、特図2保留表示器のセグメント領域)にセーブする(ステップC8)。
次に、ラウンドLEDポインタに対応する表示データを取得した後、取得した表示データをセグメント領域(例えば、ラウンド表示部のセグメント領域)にセーブする(ステップC9)。
続けて、遊技状態表示番号に対応する表示データを取得した後、取得した表示データをセグメント領域(例えば、第1遊技状態表示部若しくは第2遊技状態表示部のセグメント領域)にセーブする(ステップC10)。
次に、停電復旧時に大当りの確率状態が高確率状態となっていることの報知に係る高確率報知フラグをチェックして(ステップC11)、高確率を報知するタイミングでない(ステップC12;NO)と判定すると、高確率報知LEDのOFFデータをセグメント領域(例えば、エラー表示部のセグメント領域)にセーブして(ステップC13)、セグメントLED編集処理を終了する。
一方、ステップC12にて、高確率を報知するタイミングである(ステップC12;YES)と判定すると、ステップC13をスキップして、セグメントLED編集処理を終了する。
〔磁石不正監視処理〕
次に、上述のタイマ割込み処理における磁石不正監視処理(ステップS81)の詳細について図82により説明する。
磁石不正監視処理は、磁気センサスイッチ125からの検出信号をチェックして異常がないか判定して不正報知の開始や終了の設定等を行うものである。
磁石不正監視処理では、まず、磁気センサスイッチ125から出力されて第2入力ポート162(入力ポート2)に取り込まれる磁気センサ検出信号ビットをチェックして(ステップC21)、磁気センサ検出信号の入力がない(ステップC22;NO)と判定すると、磁石不正監視タイマをクリアする(ステップC23)。
その後、磁石不正の報知時間を規定する磁石不正報知タイマが既にタイムアップしたか、又は磁石不正報知タイマを更新(−1)した後、当該タイマがタイムアップしたか否かをチェックする(ステップC24)。磁石不正報知タイマがタイムアップしたか否かの判定結果において、タイムアップしていない(ステップC25;NO)と判定された場合には、リターンしてルーチンを繰り返す。
ルーチンの繰り返しにより、磁石不正報知タイマがタイムアップしたか否かの判定結果において、タイムアップした(ステップC25;YES)と判定された場合には、磁石不正報知終了コマンド(ACTION)を準備し(ステップC26)、磁石不正フラグとして磁石不正解除フラグを設定する処理(ステップC27)を行った後、処理をステップC34に移行して、以降の処理を行う。この場合、ルーチンを繰り返しても、不正が発生していない正常な状態であるため、不正の報知は行われていない。すなわち、磁石不正報知タイマが常にタイムアップした状態である。
一方、磁石を用いた不正が行われ、ステップC22にて、磁気センサ検出信号の入力がある(ステップC22;YES)と判定すると、磁石不正監視タイマを更新(+1)した後、当該タイマがタイムアップしたか否かをチェックして(ステップC28)、タイムアップしていない(ステップC29;NO)と判定すると、処理をステップC24に分岐して、それ以降の処理を行う。なお、上記磁石不正監視タイマがタイムアップしたか否かの判定では、監視タイマ=8でタイムアップと判断する。すなわち、磁気センサ検出信号の入力が8回割込みして連続で行われることで、タイムアップと判断される。これは、磁気センサスイッチ125のセンシングが4msであり、32msで不正発生と判断するため、8回割込みして磁気センサ検出信号のON入力があれば、不正と判定できるからである。
そのため、磁気センサ検出信号の入力が一定期間、即ち、所定回数(例えば、8割込み)連続して行われることで、ステップC29にて、磁石不正監視タイマがタイムアップした(ステップC29;YES)と判定すると、磁石不正監視タイマをクリアし(ステップC30)、続いて、磁石不正報知タイマ初期値(例えば、60000ms)を磁石不正報知タイマ領域にセーブする(ステップC31)。
次いで、磁石不正報知コマンド(ACTION)を準備し(ステップC32)、磁石不正フラグとして磁石不正発生フラグを設定した後(ステップC33)、設定した磁石不正フラグを磁石不正フラグ領域の値と比較する(ステップC34)。設定した磁石不正フラグが磁石不正フラグ領域の値と一致していなければ(ステップC35;NO)、新たに磁石不正が発生したと判断してステップC36に進み、設定した磁石不正フラグを磁石不正フラグ領域にセーブする。その後、コマンド設定処理を行い(ステップC37)、リターンする。
したがって、このときは磁気センサスイッチ125からの検出信号の連続したON入力により、不正報知が行われることになる。すなわち、不正報知の開始が行われる。不正開始の報知は、前述したように、磁気センサ検出信号のON入力が32ms継続したときに開始(つまり、不正報知コマンドが発生)する。
一方、設定した磁石不正フラグが磁石不正フラグ領域の値と一致していると(ステップC35;YES)、磁気センサスイッチ125からの検出信号に変化が生じないため、一旦設定されたコマンドの更新は行わずにリターンする。このときは、同じ磁石不正が継続している場合である。
なお、その後、不正が無くなると、ステップC22で磁気センサスイッチ125からの検出信号のON入力がなく、ステップC22でNOに分岐してステップC23以降の処理に進むことになる。このとき、ステップC37で不正報知終了コマンドの設定が行われる。
また、磁気センサ検出信号の入力が一定期間、即ち、所定回数(例えば、8割込み)連続して行われなかった場合には、磁石不正の発生がまだ確定していないことになり(不正報知中の再発生を含む)、ステップC29にて、磁石不正監視タイマがタイムアップしていない(ステップC29;NO)と判定された後、処理をステップC24に移行して、それ以降の処理が行われる。
したがって、不正報知終了コマンドについては、不正報知コマンドの開始から磁石不正報知タイマ初期値(60000ms)から、更に60000msが経過した時点で、不正報知終了コマンドが設定されることになる。すなわち、磁気センサスイッチ125からの検出信号のON中と、同信号がOFFしてからの約60000ms(60秒間)は不正の報知が行われ、同信号がONしている限り、不正報知を続けることになる。
まとめると、磁気センサスイッチ125からの検出信号がONになると、その32ms後に、不正発生状態と判断して不正報知コマンドが設定され、磁気センサスイッチ125からの検出信号ON中は32ms毎に磁石不正監視タイマがタイムアップして初期値に戻り、磁気センサスイッチ125からの検出信号がOFFすると、その時点から約60000ms(60秒間)は不正報知が継続し、60000ms後に不正発生状態が解除されて、不正報知終了コマンドが設定される。
〔外部情報編集処理〕
次に、上述のタイマ割込み処理における外部情報編集処理(ステップS82)の詳細について図83、図84により説明する。
このルーチンが開始されると、まずステップC41固有情報信号編集処理を行う。これは、主基板の固有情報(固有ID)を取得するものであり、詳細は後述する。
次いで、ステップC42でセキュリティ信号制御タイマが既にタイムアップ又は「−1」更新後にタイムアップしたかどうかをチェックする。セキュリティ信号制御タイマは、不正や遊技機エラー状態を一定時間毎にチェックしているものである。チェック結果はステップC43で判別し、NOであればステップC44に進んで固有情報出力要求済みか否かを判定する。ここでの固有情報とは、主基板の固有情報、つまり固有IDのことである。
ステップC44で固有情報出力要求済みでなければ、ステップC45に進んで電源投入での固有情報信号の出力要求フラグをセットし、ステップC46で電源投入での固有情報信号の出力要求済みフラグをセットする。これにより、パチンコ機1の電源投入時(例えば、開店時)において固有ID(主基板の固有情報)が外部に出力されることになる。ステップC46を経ると、ステップC47でセキュリティ信号ONの出力データを設定した後、ステップC48に進む。
また、ステップC44で既に固有情報出力要求済みであれば、ステップC45、46をジャンプしてステップC47に進む。
一方、ステップC43でセキュリティ信号制御タイマが既にタイムアップ又は「−1」更新後にタイムアップしていれば、ステップC49に分岐して電源投入での固有情報信号の出力要求済みフラグをクリアし、ステップC50でセキュリティ信号OFFの出力データを設定した後、ステップC48に移行する。すなわち、セキュリティ信号制御タイマが既にタイムアップしていれば、セキュリティに関連する情報の外部出力の設定は行なわれない。
次いで、ステップC48、51、52で、磁石不正発生中か、大入賞口不正発生中か、普電不正発生中かをそれぞれ判別する。何れか1つ以上の不正が発生していれば、ステップC53に進んでセキュリティ信号ONの出力データを設定し、さらにステップC54で遊技機エラー状態信号ONの出力データを設定する。
これにより、不正や遊技機エラー状態が外部に出力されることになる。一方、ステップC48でNO、ステップC51でNO、ステップC52でNOのとき、すなわち、ステップC48、51、52で全てNOのときは、ステップC52からステップC55に分岐して遊技機エラー状態信号OFFの出力データを設定する。
ステップC54あるいはステップC55を経ると、次いで、ステップC56に進み、扉又は枠の開放中か否かを判別する。ここで、扉とはガラス枠5のことで、扉の開放はガラス枠開放検出スイッチ211によって検出される。また、枠とは前面枠4のことで、枠の開放は前面枠開放検出スイッチ212によって検出される。
扉又は枠の開放中であれば、ステップC57に進んで固有情報出力要求済みか否かを判定し、NO(要求済みでない)であれば、ステップC58で扉・枠開放での固有情報信号の出力要求フラグをセットし、ステップC59で扉・枠開放での固有情報信号の出力要求済みフラグをセットした後、ステップC60に進む。したがって、このときはパチンコ機1のガラス枠5又は前面枠4が開放されたとき(例えば、不正な開放も含む)に、固有ID(主基板の固有情報)が外部に出力されることになる。
ステップC59又はステップC57からステップC60に進むと、ステップC60で扉・枠開放信号ONの出力データを設定し、ステップC61で遊技機エラー状態信号ONの出力データを設定してステップC62に進む。これは、扉又は枠の開放というイベントが発生したときに、エラー信号を外部に出力するためである。
一方、ステップC56でNOのとき、つまり扉又は枠の開放中でなければ、扉又は枠の開放というイベントが発生しないので、そのような出力データの設定は行う必要がないので、ステップC63に分岐して扉・枠開放での固有情報信号の出力要求済みフラグをクリアし、ステップC64で扉・枠開放信号OFFの出力データを設定してステップC62に進む。
ステップC62では、大当り動作中か否かを判定し、大当り動作中であれば、ステップC65で固有情報出力要求済みか否かを判定し、NO(要求済みでない)であれば、ステップC66で大当りでの固有情報信号の出力要求フラグをセットし、ステップC67で大当りでの固有情報信号の出力要求済みフラグをセットした後、ステップC68に進む。したがって、このときはパチンコ機1の大当りが発生したときに、固有ID(主基板の固有情報)が外部に出力されることになる。
一方、ステップC65で大当り時に固有情報出力要求済みであれば、ステップC66、67をジャンプしてステップC68に進む。
ステップC68では、大当り1信号ONの出力データを設定し、その後、ステップC69に進んで始動口信号編集処理を行い、続くステップC70で図柄確定回数信号編集処理を行なってリターンする。これは、始動入賞があった場合に外部に出力する信号の編集や特図の図柄確定などにつき外部に出力する信号の編集を行うものである。
一方、ステップC62で大当り動作中でないとき(NO)には、ステップC71に分岐して大当りでの固有情報信号の出力要求フラグをクリアし、ステップC72で大当り1信号OFFの出力データを設定した後、ステップC69に進む。したがって、大当りが発生しないときは、固有ID(主基板の固有情報)の外部への出力はない。
〔固有情報信号編集処理〕
次に、上述の外部情報編集処理における固有情報信号編集処理(ステップC41)の詳細について図85により説明する。
このルーチンが開始されると、まずステップC81でシリアル通信中かどうかを判別する。これは、遊技制御装置100が管理装置140(又はカードユニット551を含めてもよい)とシリアル通信が実行中かどうかを判断するもので、シリアル通信中であれば、今回はリターンする。シリアル通信中でなければ、ステップC82以降の処理を実行する。なお、遊技制御装置100と管理装置140との間は単一方向通信であり、遊技制御装置100から管理装置140への信号伝送のみ許容されている。したがって、シリアル通信中か否かの判定は、遊技制御装置100内のシリアル送信バッファが通信中であるかをチェックして行う。
シリアル通信中でない場合、ステップC82で固有情報信号の出力要求フラグがセットされているかをチェックし、ステップC83でNO(出力要求フラグがセットなし)であれば、ルーチンを終了してリターンする。一方、ステップC83でYES(出力要求フラグがセットあり)であれば、ステップC84に進んで、固有情報信号の出力要求フラグをクリアする。
ここで、固有情報信号の出力要求フラグは「電源投入時のセキュリティ信号」、「扉・枠開放信号」、「大当り1信号」に対応して独立にセットされる。複数同時に成立している場合には、優先順位を設けて1つずつ対応して処理する。したがって、一度に全部の出力要求フラグをクリアするのではない。
次いで、ステップC85でCPU固有情報取得処理を行う。これは、固有情報を取得する処理で、詳細は後述する。ステップC85を経ると、リターンする。
〔CPU固有情報取得処理〕
次に、上述の固有情報信号編集処理におけるCPU固有情報取得処理(ステップC85)の詳細について図86により説明する。
このルーチンが開始されると、まずステップC91でスタートコードを遊技制御装置100内のシリアル送信バッファに書き込む。シリアル通信の開始であることを受け側である管理装置140に特定させるためのコードである。次いで、ステップC92で取得はチップコード(主基板固有ID)のみかどうかを判別し、取得がチップコードのみであればステップC97にジャンプして、チップコード識別コードをシリアル送信バッファに書き込み、ステップC98で個体識別情報(固有ID)としてのチップコードを読み出し、シリアル送信バッファに書き込み、リターンする。これにより、固有IDが取得されて管理装置140に出力されることになる。
一方、ステップC92で取得がチップコードのみでなければ、ステップC93に進んでメーカコード識別コードをシリアル送信バッファに書き込むとともに、ステップC94でメーカコードを読み出してシリアル送信バッファに書き込む。次いで、ステップC95で製品コード識別コードをシリアル送信バッファに書き込むとともに、ステップC96で製品コードを読み出してシリアル送信バッファに書き込み、その後、ステップC97に進む。これにより、メーカコード及び製品コードが取得されて管理装置140に出力されることになる。したがって、ステップC92で取得がチップコードのみでない場合には、メーカコード、製品コード、チップコードが順次取得されて、管理装置140に出力されることになる。
このように、遊技制御装置100に予め備わっているシリアル転送(送信)機能を利用することで、改めて転送(送信)処理をプログラム(例えば、遊技プログラム)で用意する必要が無くなるので、プログラム構成が効率化される。
また、パラレル転送(送信)に比べて、配線の本数が少なくなるのでコスト減になる。
なお、上記のようにシリアル通信で遊技制御装置100から管理装置140へ固有IDなどを送信する例に限らず、例えばパラレル通信で送信するようにしてもよい。
〔始動口信号編集処理〕
次に、上述の外部情報編集処理における始動口信号編集処理(ステップC69)の詳細について図87により説明する。
始動口信号編集処理は、第1始動口スイッチ120や第2始動口スイッチ121の入力があった場合に、各々の入力について共通して行われる処理である。
ルーチンが開始すると、まず、始動口信号出力制御タイマが「0」でなければ、更新(−1)する処理(ステップC101)を行う。なお、始動口信号出力制御タイマの最小値は、0に設定されている。
次いで、タイマ割込みが行われる毎に所定時間(例えば、4ms)ずつ減算されていく始動口信号出力制御タイマがタイムアップか否かをチェックする(ステップC102)。始動口信号出力制御タイマがタイムアップである(ステップC103;YES)と判定すると、始動口信号出力回数が0であるか否かをチェックする(ステップC104)。
ここで、始動口信号出力回数が0でない(ステップC105;NO)と判定すると、始動口信号出力回数を更新(−1)した後(ステップC106)、始動口信号出力制御タイマ領域に始動口信号出力制御タイマ初期値(例えば、192ms)をセーブする(ステップC107)。
ここで、始動口信号出力制御タイマ初期値としては、始動口信号のオン状態(例えば、ハイレベル)の時間(例えば、128ms)とオフ状態(例えば、ロウレベル)の時間(例えば、64ms)を加算した時間(例えば、192ms)をセーブする。
これは、始動口信号がオン状態(ハイレベル)になると同時に、初期値例えば、128ms)に設定された始動口信号出力制御タイマがデクリメント(更新(−1))を開始し、始動口信号のオン状態の時間(128ms)を過ぎて始動口信号がオフ状態(ロウレベル)になっても、その後も始動口信号出力制御タイマはデクリメントしていき、始動口信号のオフ状態になった後の経過時間(64ms)が経過した時点で、始動口信号出力制御タイマがタイムアップ(「0」)になるというタイミング構成になっているからである。
次いで、始動口信号のONデータを設定する処理(ステップC108)を行う。その後、ステップC108にてONに設定された始動口信号を外部情報出力データ領域にセーブする処理(ステップC109)を行って、始動口信号編集処理を終了する。
また、ステップC105にて、始動口信号出力回数が0である(ステップC105;YES)と判定すると、ステップC110に分岐して始動口信号のOFFデータを設定する処理を行い、その後、ステップC109に進み、OFFに設定された始動口信号を外部情報出力データ領域にセーブする処理を行って、始動口信号編集処理を終了する。
一方、ステップC103で始動口信号出力制御タイマがタイムアップでない(ステップC103;NO)と判定すると、ステップC111に分岐して始動口信号出力制御タイマの値が所定時間(例えば、64ms)以上であるか否かに応じて始動口信号出力制御タイマが出力ON区間中であるか否かをチェックする。
そして、始動口信号出力制御タイマが出力ON区間中である(ステップC112;YES)と判定すると、ステップC108に進んで、始動口信号のONデータを設定する処理(ステップC108)を行い、その後、ONに設定された始動口信号を外部情報出力データ領域にセーブする処理(ステップC109)を行って、始動口信号編集処理を終了する。
また、始動口信号出力制御タイマが出力ON区間中でない(ステップC112;NO)と判定すると、ステップC110に進んで、始動口信号のOFFデータを設定する処理を行い、その後、ステップC109に進み、OFFに設定された始動口信号を外部情報出力データ領域にセーブする処理を行って、始動口信号編集処理を終了する。
〔図柄確定回数信号編集処理〕
次に、上述の外部情報編集処理における図柄確定回数信号編集処理(ステップC90)の詳細について図88により説明する。
このルーチンが開始されると、まずステップC121で図柄確定回数信号のOFFデータを設定し、ステップC122で図柄確定回数信号制御タイマが既にタイムアップ又は(−1)更新後にタイムアップしたか否かをチェックする。これは、特図の図柄確定につき、一定時間が経過後に図柄を確定させて、外部に信号を出力することから、その時間経過を上記タイマでカウントしているものである。
ステップC122の判定結果はステップC123で判定し、図柄確定回数信号制御タイマがタイマアップしていなければ(NO)、ステップC124に進んで、図柄確定回数信号のONデータを設定し、ステップC125に進む。ステップC125では、先のステップC124で設定した図柄確定回数信号(この場合はONデータ)を外部情報出力データ領域にセーブしてリターンする。
そして、ルーチンを繰り返し、ステップC123で図柄確定回数信号制御タイマがタイムアップした(YES)と判定すると、ステップC125にジャンプし、先のステップC121で設定した図柄確定回数信号(この場合はOFFデータ)を外部情報出力データ領域にセーブしてリターンする。
このようにして、特図の図柄が一定時間後に確定して、それが外部情報として出力されることになる。
〔コマンド設定処理〕
次に、上述のタイマ割込み処理中に実行される各コマンド設定処理の詳細について図89により説明する。
コマンド設定処理では、まず、バッファの書き込む場所を規定するライトカウンタを更新する処理(ステップC131)を行う。ライトカウンタは「0」から「31」の範囲で(+1)更新される。
続けて、ライトカウンタに対応するコマンド送信領域(MODE)に、コマンドをセーブする(ステップC132)。これは、2バイトのコマンドのうちの上位1バイトのコマンドが(MODE)に対応するので、それをセーブするものである。
その後、ライトカウンタに対応するコマンド送信領域(ACTION)に、コマンドをセーブする(ステップC133)。これは、2バイトのコマンドのうちの下位1バイトのコマンドが(ACTION)に対応するので、それをセーブするものである。ステップC133を経ると、リターンする。
このようにして、ライトカウンタに対応するコマンド送信領域(MODE)に2バイトのコマンドのうちの上位1バイトのコマンドがセーブされ、コマンド送信領域(ACTION)に下位1バイトのコマンドがセーブされる。
〔図柄変動制御処理〕
次に、上述の特図ゲーム処理のステップS367、S369や普図ゲーム処理のステップB16における図柄変動制御処理の詳細について図90により説明する。
このルーチンが開始されると、まずステップC141で対象の図柄の変動制御フラグ(下記の(イ)から読みだす)が変動中か否かをチェックする。
ここで、予め準備されている変動制御テーブル上に定義されている情報は、以下の通りである。
(イ)変動制御フラグ゛領域のアドレス
(ロ)図柄表示テーブル(変動用)のアドレス
(ハ)図柄表示テーブル(停止用)のアドレス
また、図柄表示テーブル(変動用)上に定義されている情報は、以下の通りである。
(ニ)変動図柄番号領域のアドレス
(ホ)表示データ(変動図柄番号の数分ある)
(ヘ)セグメント領域のアドレス
さらに、図柄表示テーブル(停止用)上に定義されている情報は、以下の通りである。
(ト)停止図柄番号領域のアドレス
(チ)表示データ(停止図柄番号の数分ある)
(リ)セグメント領域のアドレス
ステップC141のチェック結果はステップC142で判定し、変動中であれば(YES)、ステップC143に進んで、対象の図柄に対応する図柄表示テーブル(変動用)(上記の(ロ))を取得する。次いで、ステップC144で対象の変動タイマを(−1)更新し、タイムアップしたか否かをチェックする。ステップC144のチェック結果はステップC145で判定し、タイムアップしていなければ(NO)、ステップC148にジャンプして、表示図柄ポインタとして対象の変動図柄番号領域の値をロードする。次いで、ステップC151で表示図柄ポインタに対応する表示データ(上記の(ホ)、(チ))を取得し、続くステップC152に進み、取得した表示データを対象のセグメント領域(上記の(ヘ)、(リ))にセーブして、ルーチンを終了する。
したがって、このときは対象の図柄の変動タイマがタイムアップしないので、変動用の図柄番号に対応する図柄の表示データが対象のセグメント領域にセーブされて、ルーチンが繰り返されることになる。
一方、上記ステップC145で対象の変動タイマがタイムアップしたと判定(YES)すると、ステップC146に進んで、図柄変動制御タイマ初期値(例えば、200ms)を対象の変動タイマ領域にセーブする。次いで、ステップC147で対象の変動図柄番号(上記の(ニ))を更新した後、ステップC148に進み、表示図柄ポインタとして対象の変動図柄番号領域の値をロードし、ステップC151で表示図柄ポインタに対応する表示データを取得し、取得した表示データを対象のセグメント領域にセーブ(ステップC152)してルーチンを終了する。
したがって、このときは対象の図柄の変動タイマがタイムアップしたことにより、タイマ初期値がセーブされて、変動図柄番号が更新され、図柄の表示データが対象のセグメント領域にセーブされることになる。
一方、上記ステップC142で対象の図柄の変動制御フラグが変動中でなく停止中であれば(NO)、ステップC149に分岐して、対象の図柄に対応する図柄表示テーブル(停止用)(上記の(ハ))を取得し、次いで、ステップC150で表示図柄ポインタとして対象の停止図柄番号領域の値をロードした後、ステップC151に進んで、表示図柄ポインタに対応する表示データを取得し、取得した表示データを対象のセグメント領域にセーブ(ステップC152)してルーチンを終了する。
したがって、このときは対象の図柄の変動制御フラグが変動中から停止したことにより、停止用の図柄表示データが対象のセグメント領域にセーブされることになる。
〔振り分け処理〕
次に、上述の後半変動パターン設定処理における振り分け処理(ステップS650)や変動パターン設定処理における振り分け処理(ステップS672)の詳細について図91により説明する。
このルーチンが開始されると、まずステップC161で対象の選択テーブル(変動グループ選択テーブル)の先頭のデータが振り分けなしコードか否かをチェックする。
ここで、選択テーブルは少なくとも一の変動パターングループと対応付けて所定の振り分け値を記憶しており、例えば振り分けの必要がなければ、振り分けなしのコードが先頭に規定されている。
選択テーブルの先頭のデータが振り分けなしのコードである(ステップC162;YES)と判定すると、振り分けた結果に対応するデータのアドレスに更新して(ステップC168)、振り分け処理を終了する。
一方、ステップC162にて、選択テーブルの先頭のデータが振り分けなしのコードではない(ステップC162;NO)と判定すると、対象の変動パターン乱数(例えば、変動パターン乱数2)を選択値としてロードした後(ステップC163)、選択テーブルに最初に規定されている一の振り分け値を取得する(ステップC164)。
続けて、ステップC163にてロードされた選択値(例えば、変動パターン乱数2の値)からステップC164にて取得された振り分け値を減算して新たな選択値を算出した後(ステップC165)、当該算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップC166)。
ここで、新たな選択値が「0」よりも小さくない(ステップC166;NO)と判定すると、次の振り分け値のアドレスに更新した後(ステップC167)、処理をステップC164に戻ってループを繰り返す。
すなわち、ステップC164にて、選択テーブルに次に規定されている振り分け値を取得した後、ステップC166において判定済みの新たな選択値を選択値として振り分け値を減算することで、新たな選択値を算出する(ステップC165)。そして、算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップC166)。
上記の処理をステップC166にて、新たな選択値が「0」よりも小さい(ステップC166;YES)と判定するまでループを繰り返して実行する。これにより、選択テーブルに規定されている少なくとも一の後半変動パターングループの中から何れか一の後半変動パターングループを選択する。
そして、ステップC166にて、新たな選択値が「0」よりも小さい(ステップC166;YES)と判定すると、処理をステップC168に移行して、振り分けた結果に対応するデータのアドレスに更新して(ステップC168)、振り分け処理を終了する。
このように、例えば変動パターン乱数2(リーチ変動詳細態様決定用乱数)変動パターン1で振り分けられた後半変動パターングループの中から更に詳細な1つを選ぶために使われる。例えば、ノーマルリーチ系のグループの中から、当り図柄から−1コマずれた図柄で、はずれ停止するノーマルリーチパターンや、−2コマずれ、+1コマずれ、・・・等の具体的な演出パターンを選びだす。これは、特図を送るコマ数で変動時間が変わってくるからである。また他には、例えばSP1−A(スペシャル1−A)リーチ系で当たる場合に、普通に図柄が揃うパターンや、一旦はずれたと見せかけて再変動して揃うパターン(いわゆる救済演出と称する)(当然、再変動する方が変動時間が長くなる)等、いろいろな態様がある。
したがって、この振り分け処理を実行することにより、選択テーブルの先頭のデータが振り分けなしのコードではない場合には、選択テーブルに記憶されている振り分け値及び当該判定に係る選択値に基づいて、新たな選択値を算出し、新たな選択値が所定値「0」未満であるか否かを判定する処理を繰り返すことで、複数の変動パターングループのうち、何れか一の変動パターングループを速やかに設定することができるようにしている。
〔2バイト振り分け処理〕
次に、上述の後半変動パターン設定処理における2バイト振り分け処理(ステップS647)の詳細について図92により説明する。
2バイト振り分け処理は、変動パターン乱数1に基づいて、はずれ変動パターン選択テーブルや大当り変動パターン選択テーブル等の変動グループ選択テーブルから特図変動表示ゲームの後半変動パターングループを選択するための処理である。
特に、乱数の大きさが2バイトであるときの処理であり、2バイトのデータとしては、例えば「0」から「49999」まである。
このルーチンが開始されると、まずステップC171で対象の選択テーブルの先頭のデータが振り分けなしコードか否かをチェックする。
ここで、選択テーブルは少なくとも一の変動パターングループと対応付けて所定の振り分け値を記憶しており、例えば振り分けの必要がなければ、振り分けなしのコードが先頭に規定されている。
選択テーブルの先頭のデータが振り分けなしのコードである(ステップC172;YES)と判定すると、振り分けた結果に対応するデータのアドレスに更新して(ステップC178)、2バイト振り分け処理を終了する。
一方、ステップC172にて、選択テーブルの先頭のデータが振り分けなしのコードではない(ステップC172;NO)と判定すると、対象の変動パターン乱数(例えば、変動パターン乱数1)を選択値としてロードした後(ステップC173)、選択テーブルに最初に規定されている一の振り分け値を取得する(ステップC174)。
続けて、ステップC173にてロードされた選択値(例えば、変動パターン乱数1の値)からステップC174にて取得された振り分け値を減算して新たな選択値を算出した後(ステップC175)、当該算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップC176)。
ここで、新たな選択値が「0」よりも小さくない(ステップC176;NO)と判定すると、次の振り分け値のアドレスに更新した後(ステップC177)、処理をステップC174に戻ってループを繰り返す。
すなわち、ステップC174にて、選択テーブルに次に規定されている振り分け値を取得した後、ステップC176において判定済みの新たな選択値を選択値として振り分け値を減算することで、新たな選択値を算出する(ステップC175)。そして、算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップC176)。
上記の処理をステップC176にて、新たな選択値が「0」よりも小さい(ステップC176;YES)と判定するまでループを繰り返して実行する。これにより、選択テーブルに規定されている少なくとも一の後半変動パターングループの中から何れか一の後半変動パターングループを選択する。
そして、ステップC176にて、新たな選択値が「0」よりも小さい(ステップC176;YES)と判定すると、処理をステップC178に移行して、振り分けた結果に対応するデータのアドレスに更新して(ステップC178)、2バイト振り分け処理を終了する。
このように、例えば変動パターン乱数1(リーチ変動態様決定用乱数)は、特図変動表示ゲームにてリーチ状態を発生させるか否かの決定、及び、当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチ変動態様の決定に係るものであり、上記の選択テーブルは、はずれ変動パターン選択テーブルや大当り変動パターン選択テーブル等の変動グループ選択テーブルに相当するものである。
そして、はずれ変動パターン選択テーブルや大当り変動パターン選択テーブル等の変動グループ選択テーブルは、特図変動表示ゲームにおけるリーチ状態の発生の有無や当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチの種類(リーチ変動態様)に応じて、複数種類の後半変動パターングループが規定されており、当該変動グループ選択テーブルを記憶するROM101Bは、特図変動表示ゲームにおける第1特図、第2特図(識別情報)の変動態様として、リーチ状態の発生しないリーチなし変動態様並びに複数種類のリーチ変動態様の各々の設定に係る複数の変動振り分け情報(後半変動パターングループ)とそれぞれの振り分け値とを所定の順序で対応付けて記憶している。
したがって、この2バイト振り分け処理を実行することにより、選択テーブルの先頭のデータが振り分けなしのコードではない場合には、選択テーブルに記憶されている振り分け値及び当該判定に係る選択値に基づいて、新たな選択値を算出し、新たな選択値が所定値「0」未満であるか否かを判定する処理を繰り返すことで、複数の変動パターングループのうち、何れか一の変動パターングループを速やかに設定することができるようにしている。
次に、演出制御装置300の制御について、図93乃至図160により説明する。
ここでは、ステップ番号として「ステップD」及び「ステップE」を用いて説明する(「ステップE」は図158以降)。なお、演出制御装置300が制御する特図は表示装置41に表示される演出用の特図であり、以下の演出制御装置300の制御処理の説明における特図は、この演出用の特図(本特図ではない飾り図柄)を意味する。
〔パワーオンリセット処理〕
まず、図93により、演出制御装置300のパワーオンリセット処理を説明する。
このパワーオンリセット処理は、パチンコ機1の電源供給が開始された時点で開始する。
パチンコ機1の電源供給が開始すると、まずステップD1で割込みを禁止し、次にステップD2でCPU311の初期設定を行い、次にステップD3でVDP312の初期設定を行い、次にステップD4で割込みを許可し、次いでステップD5のメイン処理を開始する。メイン処理を開始すると、電源遮断(停電含む)までこのメイン処理を実行する。
〔メイン処理〕
次に、上述のパワーオンリセット処理におけるメイン処理(ステップD5)を図94により説明する。
メイン処理を開始すると、まずステップD11で無線モジュール360を初期化する無線モジュール初期化処理を実行し、ステップD12乃至D16を順次実行した後、ステップD17に進む。なお、本例は異なるパチンコ機におけるサブ基板間(この場合、演出制御装置間、以下場合により、単にサブ間という。)の通信を無線通信で行う例としているが、無線通信に限定されるものではなく、有線通信でもよい。
ステップD12では、VDP312のレジスタのベースアドレスを設定する。これは、CPU311の種類やその設定によりアドレス空間が異なるので、ベースとなるアドレスを設定し、そこからの差分を基に各種指定を行うためである。
ステップD13では、表示用データ生成を許可する。これは、表示回路608がVRAM606,607へアクセスを行い、表示データを生成するのを許可する処理である。
ステップD14では、乱数シードを設定する。これは、例えばsrand関数を用いて擬似乱数の発生系列を設定する処理である。ここで、srand関数に与える引数としては、0(ゼロ)などの固定値を使用してもよいし、遊技機毎に異なるようにCPU等のID値などを基に作成した値を使用してもよい。
ステップD15では、端末IDを設定する。これは、例えば設定SW371の設定に基づいて台毎(即ち遊技機毎)のIDを設定する処理である。設定する端末IDとしては、無線モジュール360の個別ID等を使用してもよいが、設定SW等により手動で設定を行った方が島内における遊技機の位置情報を特定し易く、遊技場ホール内の台番号に割り振るのも容易である。即ち、無線モジュールのIDでは、遊技機の設置時に小さい順に並べる等しなければ、その数値の大小から位置情報を特定することが困難であるが、設定SW等により手動で設定を行う構成であれば、例えば設置されている位置の順にこの端末IDの値を設定すれば、この端末IDの値から設置された位置情報を特定することが容易である。ただし、無線モジュールのID等から端末IDを設定する方法は、人の手を煩わせず自動で設定できるという利点がある。一方、設定SWによる端末IDの設定は、人の操作により台毎に異なる番号を設定する必要があるため、遊技機導入時など忙しい時には不可能になる虞がある。また、通信モジュールのIDを使用する場合は設定SWが不要なためコストアップにもならない利点がある。このように有利不利があるため、結局はサブ基板間通信で行いたい演出によってこの端末IDの設定方法を選ぶ必要がある。本例では、島内の左端の遊技機から順次予告キャラクタを各遊技機の表示装置41に登場させるといった演出(即ち、島内における遊技機の並び(左からID1、ID2、ID3、…ID10というように)を特定する必要のある演出)を実現できるようにするため、台の位置情報を特定し易い、設定SWによる設定方法を例として挙げている。なお、この端末IDは、サブ基板間通信において、送信先や送信元を識別するなどのために設けられる。
ステップD16では、演出用フラグ領域(後述する各種のフラグとして使う記憶領域)の初期設定を行う。
次にステップD17に進むと、ステップD17乃至D24を実行し、ステップD25に進む。
ステップD17では、乱数更新処理を実行する。これは、例えばrand関数を用いてメイン処理の制御周期毎に最低1回は擬似乱数の更新を行う処理である。rand関数は再計算が行われる度に指定の発生系列に基づいて乱数を発生するので、関数を実行するだけでよい。なお、主基板(遊技制御装置100)のように+1ずつ更新する乱数を使ってもよい。
ステップD18では、受信コマンドチェック処理(後述する)を実行する。
ステップD20では、サブ間送信開始処理を実行する。これは、サブ間コマンド送信の要求があった場合にサブ間送信割込みを許可したりする処理である。なお、演出によっては直ぐにコマンドを送りたくない場合もあるので時間調整も行う(詳細後述する)。
ステップD21では、サブ間受信タスク処理を実行する。これは、受信したサブ間コマンドの解析を主に行う処理である(詳細後述する)。
ステップD22では、サブ間ack応答タスク処理を実行する。これは、他台にack(返信)を要求した場合の監視を行う処理である(詳細後述する)。
ステップD23では、サブ間演出設定処理を実行する。これは、受信したサブ間コマンドに対応する演出の制御を行う処理である(詳細後述する)。
ステップD24では、演出表示編集処理を実行する。これは、VDP312に表示装置41での描画内容を指示するための各種コマンドとそのパラメータの設定を行う処理である(詳細後述する)。なお、この演出表示編集処理ではコマンドがテーブル状に設定され、こうして設定されたコマンドは後述するステップD28(画面描画を指示)でVDP312に順次送信される。
ステップD25に進むと、フレーム切替タイミングであるか判定し、フレーム切替タイミングであればステップD26乃至D32を順次実行し、フレーム切替タイミングでなければ、このステップD25を繰り返す。ここで、フレーム切替タイミングは、Vブランク割込み(Vシンク割込みともいう)の周期(例えば1/60秒)を基に作成された処理周期(例えば1/30秒≒33.333ms)に相当する時間的間隔で到来するタイミングである。このステップD25の処理によって、これより後の処理(ステップD26乃至D32、及びその後のステップD17乃至D24)は、このフレーム切替タイミングで上記処理周期毎に実行される。なお、演出内容と同期する必要のある時間管理は、このフレーム単位(即ち、上記処理周期単位)で行われる。上記処理周期が、1/30秒の場合、例えば3フレームでは100msになる。このことは、主基板(遊技制御装置)がタイマ割込み周期の4ms単位で時間値管理しているのと同様である。
ステップD26では、ウオッチドッグタイマをクリアする。
ステップD27では、圧縮展開要求があるなら展開実行を指示する。これは、動画は圧縮されてキャラROM(画像ROM322)に格納されているので、動画を再生する場合に、展開しつつ再生することをVDP312に指示する処理である。(詳細後述する)。
ステップD28では、VDP312に画面描画を指示する。
ステップD29では、演出ボタン入力処理を実行する。これは、演出ボタン9が有効時に押された場合の編集を行う処理である。なお、演出ボタンは高速でオンオフしないので、ボタンの入力を感知する処理はこの処理内で行ってもよいし、図示していない短周期のタイマ割込み内で行ってもよい。
ステップD30では、サウンド制御処理を実行する(詳細後述する)。
ステップD31では、各種LED等を制御するための装飾制御処理を実行する。
ステップD32では、各種モータやSOL(ソレノイド)を制御するためのモータ/SOL制御処理を実行する。
なお、ステップD30乃至D32の制御処理は、画面の演出に合わせるため、動作の切り替えが処理周期単位で実行されるこれらのステップ内で行っているが、これら制御処理で生成又は設定された信号やデータ(特に各種LEDやモータを駆動制御する信号等)を実際にポートに出力する処理は、図示していない短周期のタイマ割込み内で行われる。ただし、各種デバイスの制御に特化したICを使用している場合は、シリアル通信等で指示するだけで、タイマ割込みで信号等の出力を行わない場合もある。
〔コマンド受信割込み処理〕
次に、コマンド受信割込み処理について図95により説明する。このコマンド受信割込み処理は、遊技制御装置100(主基板)から送信されるコマンドを演出制御装置(サブ基板)で受信するための処理であり、当該コマンドを構成するデータが正常な範囲に入っているかをチェックする内容も含まれている。
なお本例の場合、この主基板とサブ基板の通信が、ストローブ信号(以下、場合によりSTB信号と表記する)を用いたパラレル通信によって行われる場合を例に挙げて説明する。
このコマンド受信割込み処理は、遊技制御装置100(主基板)の制御処理で説明したストローブ信号がオンして演出制御装置300(サブ基板)においてコマンド受信割込みが発生することによって開始される。即ち、主基板から出力される前記ストローブ信号は、サブ基板のCPU311の割込み端子(図示省略)にも入力されており、この割込み端子に入力されている前記ストローブ信号がオンすることによってこのコマンド受信割込みが発生する。ここで、このコマンド受信割込みは、前述したVブランク割込みよりも、割込みの優先順位が高い。また、上記コマンド受信割込みは上述したように不定期に発生するが、主基板がコマンドを連続で送信する時には、その送信間隔(例えば4msec)に対応してサブ基板での上記コマンド受信割込みの発生間隔も同じ間隔(例えば4msec)になる。
また、主基板からのコマンドは、MODEのデータ(1バイト)とACTIONのデータ(1バイト)とを含む構成となっており、これらが順次送信される。以下では、コマンドを構成するこのようなデータを、コマンドのデータ或いはコマンドデータという。
このルーチンが開始されると、まずステップD41で受信監視タイマを停止し、次にステップD42でポート入力のSTB信号はオフか否か判定し、オフならばステップD59でMODE受信フラグに「NG」をセットした後にリターン(このルーチン終了)し、オフでないならば(即ちオンならば)ステップD43でこの時点で入力されている主基板からのコマンドを入力する(読み込む)。なお、8ビットのパラレル通信であるため、ステップD43では、一度に1バイト(8ビット)のデータが入力される。
ここで、ステップD42の判定結果は通常はNOになってステップD43に進む。本ルーチンは前述したようにSTB信号がオンすることによって開始されるからである。但し、ノイズ等によってコマンド受信割込みが異常に発生した場合には、ポート入力のSTB信号がオフしていればステップD42の判定結果はYESになってステップD59に進み、ノイズ等によって誤ってコマンド受信の処理(ステップD43乃至D58)が実行されることが回避される。
ステップD43を経ると、ステップD44において、ステップD43で入力したコマンドデータがMODE範囲のものか否か、当該データの値に基づいて判定し、MODE範囲のものならステップD45に進み、MODE範囲のものでなければACTION範囲であるとしてステップD48に進む。なお、MODE範囲とはMODEのデータとして設定し得る1バイト内の値の範囲であり、またACTION範囲とはACTIONのデータとして設定し得る1バイト内の値の範囲であり、予め決められている。
ステップD45に進むと、ステップD43で入力したコマンドデータを受信MODEとして格納し、次にステップD46でMODE受信フラグに「OK」をセットし、次にステップD47で受信監視タイマの値をゼロにリセットして当該受信開始タイマの計時動作をスタートし、その後リターンする。なお、上記ステップD45で使用しているように、単に格納するというときは、後の制御処理に使用するために所定の記憶領域に読出し可能に記憶保存することを意味する(以下同様)。
ステップD48に進むと、MODE受信フラグの値が「OK」であるか判定し、「OK」であればステップD49でさらに受信監視タイマがタイムアウトしたか判定し、タイムアウトしていない場合にはステップD50に進む。そして、ステップD48でMODE受信フラグの値が「OK」でない場合と、ステップD49でタイムアウトしている場合には、正常にコマンドを受信できなかったのでステップD59でMODE受信フラグに「NG」をセットした後にリターンする。ステップD48でMODE受信フラグの値が「OK」でない場合は、例えばACTION範囲のコマンドデータが受信されたのに、それに先だってMODE範囲のコマンドデータが受信されていないので異常である。また、ステップD49でタイムアウトしている場合は、MODE範囲のコマンドデータが受信された時点から受信監視タイマで計時される規定の受信監視時間内に、ACTION範囲のコマンドデータが受信されないので異常である。
ステップD50に進むと、ステップD43で入力したコマンドデータを受信ACTIONとして格納し、次にステップD51でMODE受信フラグの値を「NG」にセットし、ステップD52に進む。
ステップD52では、コマンド受信カウンタの値が31より大きいか判定し、大きい場合には後述するコマンドバッファの容量を超えるのでリターンし、大きくない場合(コマンド受信カウンタ≦31の場合)にはステップD53に進む。なお、コマンド受信カウンタの値が0乃至31でステップD53に進む構成としているが、0乃至31という値は後述するコマンドバッファの容量に対応する値であり、システム制御周期(前述の処理周期;例えば1/30秒)で主基板から送信される可能性のあるコマンド数以上になっていればよい。
ステップD53に進むと、受信MODE、受信ACTIONに対応する演出動作を準備し、次いでステップD54で受信コマンド範囲チェック処理(後述する)を実行し、その後ステップD55に進む。
ステップD55では、範囲チェックOKか否か判定し、OKでなければコマンド(受信MODE及び受信ACTION)を廃棄すべくリターンし、OKならばステップD56乃至D58を順次実行した後にリターンする。ここで、ステップD55での範囲チェックの判定結果は、後述する受信コマンド範囲チェック処理においてコマンド範囲正常フラグがセットされていれば範囲チェックOK(ステップD55がYes)となり、後述する受信コマンド範囲チェック処理においてコマンド範囲異常フラグがセットされていれば範囲チェックOKでない(ステップD55がNo)となる。
ステップD56では、受信MODEと受信ACTIONをコマンドバッファに格納する。コマンドバッファは、本例ではいわゆるリングバッファであり、規定の容量(記憶保持できるコマンド数)を有する。このコマンドバッファは、例えばCPU311のRAM内の記憶領域によって構成される。
ステップD57では、コマンド受信カウンタの値を1だけ増やす更新を行う。
ステップD58では、コマンドバッファにデータを格納した(即ち、書き込んだ)ので、コマンド書込インデックスの値を0乃至31の範囲で1だけ増やす更新を行う。なお、コマンド書込インデックスはコマンドバッファの書込用ポインタであり、このコマンド書込インデックスの値を本例では0乃至31の範囲としているが、この範囲はコマンドバッファの容量(この場合、32)に対応しており、既述したように、システム制御周期(前述の処理周期;例えば1/30秒)の1周期の間に主基板から送信される可能性のあるコマンド数以上になっていればよい。
〔受信コマンド範囲チェック処理〕
次に、上述のコマンド受信割込み処理における受信コマンド範囲チェック処理(ステップD54)の詳細について図96により説明する。
このルーチンが開始されると、まずステップD61で、ステップD45で格納された受信MODEの値が正常範囲か判定し、正常範囲でなければステップD67でコマンド範囲異常フラグをセットしてリターンし、正常範囲であればステップD62、D63を順次実行した後にステップD64に進む。MODEの値は、MODE範囲の値の全てが指令内容を定義されているわけではなく、定義されずに使用されていない値もあり、このような使用されていない値である場合には、ステップD61の判定で正常範囲でないと判定される。
ステップD62では、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最小値(ACTION_min)を取得する。なお本願では、このように制御処理においてデータを「取得する」とは、ROM(本例の演出制御装置300ではPROM321)からデータを取り出すことを意味する。
ステップD63では、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最大値(ACTION_max)を取得する。
ステップD64に進むと、ステップD50で格納された受信ACTIONの値が、ステップD62で取得された最小値よりも小さいか判定し、小さい場合は異常であるのでステップD67に進み、小さくない場合にはステップD65に進む。
ステップD65に進むと、ステップD50で格納された受信ACTIONの値が、ステップD63で取得された最大値よりも大きいか判定し、大きい場合は異常であるのでステップD67に進み、大きくない場合にはステップD66に進む。
ステップD66に進む場合には、正常であるので、コマンド範囲正常フラグをセットしてリターンする。ステップD67に進む場合は、異常であるので、コマンド範囲異常フラグをセットしてリターンする。
〔受信コマンドチェック処理〕
次に、上述のメイン処理における受信コマンドチェック処理(ステップD18)の詳細について図97により説明する。
このルーチンが開始されると、まずステップD71でコマンド受信カウンタの値をコマンド受信数としてロードし、次にステップD72でコマンド受信数がゼロでないか判定し、ゼロでないならばステップD73乃至D75を順次実行した後にステップD76に進み、ゼロならばリターンする。なお本願では、上記ステップD71のように、制御処理においてデータを「ロードする」とは、RAM(本例の演出制御装置300ではCPU311内のRAM)からデータを取り出すことを意味する。
ステップD73では、コマンド受信カウンタ領域の内容(即ち、コマンド受信カウンタの値)をコマンド受信数分だけ減算する。
なお、A:コマンド受信カウンタの値、B:コマンド受信数とすると、ステップD71の実行直後では「A=B」である。そして、ステップD73の実行直後では「A=A−B=0」となるのが通常の動きだが、本例の態様(主基板からのコマンドがストローブ信号を用いたパラレル通信の場合)では、演出制御装置は遊技制御装置(主基板)からのコマンド受信割込みを割込み禁止にせず最優先にしているので、ステップD71の処理からステップD73の処理の間にAの値が増えている可能性がある。よって、ステップD73の処理を「A←0」(即ち、コマンド受信カウンタの値をゼロとする処理)としてしまうとコマンドのカウントがずれてしまうので、ステップD73では「A−B」という減算処理を行っている。だたし、主基板からのコマンドの送受信にシリアル通信を使用した場合は、割込み禁止にしてステップD71の処理からステップD73の処理の間にAの値が増えることがないようにすることによって、ステップD73の処理内容を「A←0」としてもよい。
ステップD74では、受信コマンドバッファ(ステップD56のコマンドバッファに相当、以下単にコマンドバッファという)の内容(即ち、読出用ポインタに対応するアドレスに記憶されているコマンドデータ)をコマンド領域(場合により、コマンド格納領域という)にコピーする。コマンド領域は、いわゆるFIFO形式(先入れ先出し形式)のバッファを構成する例えばCPU311のRAM内の記憶領域である。
ステップD75では、コマンドバッファのデータを読み出したので、コマンドバッファの読出用ポインタであるコマンド読出インデックスの値を0乃至31の範囲で1だけ増やす更新を行う。なお、ここでの0乃至31の範囲は、ステップD58で更新されるコマンド書込インデックスと同範囲になっていればよい。
ステップD76に進むと、コマンド受信数分のコマンドをコピー完了したか否か(即ち、コマンド受信数分だけステップD74及びD75を繰り返し実行したか否か)を判定し、完了していなければステップD74に戻ってステップD74から処理を繰り返し、完了していればステップD77に進む。
ステップD77に進むと、コマンド領域の内容(コマンド領域の未だ読み出されていないデータのうちで一番先に格納されたデータ、即ち、次に読み出すべきデータ)をロードし(即ち、読み出し)、このロードしたコマンド(以下、今回のコマンドという)のデータについて、次のステップD78で受信コマンド解析処理(後述する)を実行し、その後ステップD79に進む。
ステップD79に進むと、コマンド領域のアドレス(次に読み出すべきデータのアドレス)を更新し、ステップD80に進む。
ステップD80では、コマンド受信数分のコマンドを解析完了したか否か(即ち、コマンド受信数分だけステップD77乃至D79を繰り返し実行したか否か)を判定し、完了していなければステップD77に戻ってステップD77から処理を繰り返し、完了していればリターンする。
〔受信コマンド解析処理〕
次に、上述の受信コマンドチェック処理における受信コマンド解析処理(ステップD78)の詳細について図98乃至図101により説明する。
このルーチンが開始されると、まずステップD91で、ExModeとExActの値をクリアする。ExModeとExActは、後述するステップD125,D127,D158で、コマンドのデータが上位バイトと下位バイトに分離されてそれぞれ記録される記憶領域である。
ステップD91を経るとステップD92で、ステップD77でロードした今回のコマンドのデータのうちの上位バイトをMODEに、下位バイトをACTにそれぞれ分離して記憶し、その後ステップD93に進む。なお、特図の変動パターンを指令する変動系のコマンドの場合、MODEとして記憶される上位バイトのデータは前半変動パターンを指令し、ACTとして記憶される下位バイトのデータは後半変動パターンを指令するものである。
ステップD93では、MODEのデータが変動系コマンド範囲1内にあるか判定し、この範囲内ならばステップD94、D95を順次実行してステップD96に進み、この範囲外ならばステップD99に進む。ここで、MODEのデータとは、ステップD92で分離されて記憶されたMODEのデータである(後述のステップD99,D111,D112,D113,D114,D131,D132,D145,D146でも同様)。また、特図の変動パターンを指令する変動系のコマンドは、同種のものがグループ分けされており、このうちの第1グループ(通常変動系)に属するコマンドデータがとり得る値の範囲が変動系コマンド範囲1である。同様に、第2グループ(リーチ変動系)に属するコマンドデータがとり得る値の範囲が変動系コマンド範囲2であり、第3グループ(突発変動系)に属するコマンドデータがとり得る値の範囲が変動系コマンド範囲3である。
ステップD94では、通常変動系の図柄種別情報テーブルを準備する。図柄種別情報テーブルとは、コマンドデータに対応する特図の図柄の種別を設定するためのテーブルである。なお、この図柄種別情報テーブルのデータなど、即ち、演出制御装置300の制御処理で使用する各種情報(例えば、各種テーブルのデータ)は、PROM321に動作プログラムとともに予め記憶されている。
ステップD95では、今回のコマンドに対応する図柄種別情報を設定する変動パターン対応図柄設定処理(詳細後述する)を実行する。
ステップD96に進むと、ステップD95の変動パターン対応図柄設定処理において無効コマンド情報が返されたか判定し、無効コマンド情報が返された場合には今回のコマンドが無効なコマンドであるとしてリターンし、無効コマンド情報が返されなかった場合には有効なコマンドであるとしてステップD97に進む。
ステップD97に進むと、今回のコマンドのデータをcmd1st(組を成す第1コマンドと第2コマンドのうちの第1コマンド)として記憶し、次にステップD98で今回のコマンドが指令する変動パターンに対応する特図の図柄種別情報(ステップD95の変動パターン対応図柄設定処理で設定されたもの)を待受け図柄情報として格納し、その後ステップD162に進む。待受け図柄情報とは、後述する図柄コマンド(第2コマンド)に先だって送信された第1コマンド(変動系コマンドなど)から設定すべき特図の図柄の種別が判定できる場合に、対応する図柄コマンドを受信する前に記憶保存される当該特図の種別情報(即ち、図柄情報)である。
ステップD99に進むと、MODEのデータが変動系コマンド範囲2内にあるか判定し、この範囲内ならばステップD100、D101を順次実行してステップD102に進み、この範囲外ならばステップD111に進む。
ステップD100では、リーチ変動系の図柄種別情報テーブルを準備する。
ステップD101では、今回のコマンドについて変動パターン対応図柄設定処理(後述する)を実行する。
ステップD102に進むと、ステップD101の変動パターン対応図柄設定処理において無効コマンド情報が返されたか判定し、無効コマンド情報が返された場合には今回のコマンドが無効なコマンドであるとしてリターンし、無効コマンド情報が返されなかった場合には有効なコマンドであるとしてステップD103に進む。
ステップD103に進むと、今回のコマンドのデータをcmd1stとして記憶し、次にステップD104で今回のコマンドが指令する変動パターンに対応する特図の図柄情報(ステップD101の変動パターン対応図柄設定処理で設定されたもの)を待受け図柄情報として格納し、その後ステップD162に進む。
ステップD111に進むと、MODEのデータが変動系コマンド範囲3内にあるか判定し、この範囲内ならばステップD115、D116を順次実行してステップD117に進み、この範囲外ならばステップD112に進む。
ステップD115では、突発変動系の図柄種別情報テーブルを準備する。
ステップD116では、今回のコマンドについて変動パターン対応図柄設定処理(後述する)を実行する。
ステップD117に進むと、ステップD116の変動パターン対応図柄設定処理において無効コマンド情報が返されたか判定し、無効コマンド情報が返された場合には今回のコマンドが無効なコマンドであるとしてリターンし、無効コマンド情報が返されなかった場合には有効なコマンドであるとしてステップD118に進む。
ステップD118に進むと、今回のコマンドのデータをcmd1stとして記憶し、次にステップD119で今回のコマンドが指令する変動パターンに対応する特図の図柄情報(ステップD116の変動パターン対応図柄設定処理で設定されたもの)を待受け図柄情報として格納し、その後ステップD162に進む。
ステップD112に進むと、MODEのデータが大当り系コマンド範囲内にあるか判定し、この範囲内ならばステップD120、D121を順次実行してステップD162に進み、この範囲外ならばステップD113に進む。大当り系コマンドは、大当り中演出に関する動作(ファンファーレ画面やラウンド画面の表示など)を指令するコマンドであり、この大当り系コマンドのデータがとり得る範囲が大当り系コマンド範囲である。
ステップD120に進むと、今回のコマンドのデータをcmd1stとして記憶し、次にステップD121で今回のコマンドのACTのデータに対応する特図の図柄情報(15R大当り図柄、2R大当り図柄などの情報)を待受け図柄情報として格納し、その後ステップD162に進む。
ここで、ステップD120、D121では、無条件でMODEやACTのデータを採用しているわけではない。図示省略しているが、例えばMODEのデータの歯抜けチェックを行い、さらに、そのMODEに対応する正常なACTの値であるかをチェックした上で採用しており、これらチェックの何れかで無効なコマンドと判定されればMODE及びACTのデータを破棄してリターンする構成となっている。
なお、MODEのデータの歯抜けチェックとは、チェック対象のMODEのデータが、MODEがとり得る値が連続していない部分における無効な値に相当していないか否か判定することを意味する。このMODEのデータの歯抜けチェックは、ステップD112等の判定がMODEのデータがとり得る最小値以上で最大値以下であるかというだけの判定(不連続な部分をチェックしていない判定)であった場合に、必要に応じて例えば上記ステップD120の直前において実行される。MODEの値に不連続な部分が無い場合には、この歯抜けチェックは不要である。また、ステップD93、D99、D111、D112、及び後述するステップD113、D114、D131、D132、D145、D146、D172では、このようなMODEのデータの歯抜けチェックも必要に応じて判定内容に含む構成としてもよく、この構成の場合には、上記MODEのデータの歯抜けチェックを別途実行する必要はない。また、ACTの正常値にも歯抜け(不連続部分)がある場合があり、この場合には例えば、MODEに対応する正常なACTの値であるかをチェックする際に、このACTのデータの範囲チェックに加えて歯抜けチェックも行う構成となっている。
ステップD113に進むと、MODEのデータが図柄コマンド範囲内にあるか判定し、この範囲内ならばステップD122を実行してステップD123に進み、この範囲外ならばステップD114に進む。図柄コマンドは、特図の図柄に関する情報(例えば、特図の停止図柄を何にするかなど)を指令するコマンドであり、この図柄コマンドのデータがとり得る範囲が図柄コマンド範囲である。
ステップD122では、今回のコマンド(図柄コマンド)のACTのデータに対応する特図の図柄情報を取得する。
ステップD123に進むと、ステップD122で取得した図柄情報と、その時点の待受け図柄情報(前述のステップD98、D104,D119,D121の何れかで設定された図柄情報)とを比較し、両者が一致すればステップD124に進み、両者が一致しなければステップD126に進む。なお、このステップD123の判定結果は通常は肯定的(両者が一致)になるが、コマンド値異常(ノイズ等によってコマンドの値が異常値に変化してしまうこと)などの異常が発生した場合、否定的(両者が不一致)になる。
ステップD124に進むと、ステップD122で取得した図柄情報に対応する生成すべき停止図柄情報を設定し、ステップD125に進む。
ステップD125に進むと、cmd1stとして記憶されているコマンドデータの上位バイトをExMode(確定したMODEのデータ)とし、下位バイトをExAct(確定したACTのデータ)として分離して記憶し、その後ステップD126に進む。
なお、このステップD125では、上記ExMode及びExActとしてのコマンドデータの記憶を実行した後、cmd1stとして記憶されているコマンドデータを消去する処理も実行する。この消去により、後述するステップD162の判定結果はNOになる。
ステップD126に進むと、待受け図柄情報をクリアし、ステップD162に進む。
ステップD114に進むと、MODEのデータが単発コマンドであるか判定し、単発コマンドならばステップD127、D128を順次実行してステップD162に進み、単発コマンドでなければステップD131に進む。なお、変動系コマンドと図柄コマンドのように組合せで意味をなすコマンド(即ち、第1コマンド及び第2コマンド)と違い、単独で成立するコマンドを単発コマンドという。単発コマンドには、客待ちデモコマンド、保留数コマンド、図柄停止コマンド、確率情報系コマンド、エラー/不正系コマンド、機種指定コマンドなどがある。
ステップD127では、今回のコマンドのMODEのデータをExModeとして記憶し、今回のコマンドのACTのデータをExActとして記憶する。
ステップD128では、待受け図柄情報をクリアし、ステップD162に進む。
ここで、ステップD127、D128では、前述のステップD120、D121と同様に、無条件でMODEやACTのデータを採用しているわけではない。図示省略しているが、例えばMODEのデータの歯抜けチェックを行い、さらに、そのMODEに対応する正常なACTの値であるかをチェックした上で採用しており、これらチェックの何れかで無効なコマンドと判定されればMODE及びACTのデータを破棄してリターンする構成となっている。
ステップD131に進むと、MODEのデータが先読み変動系コマンド範囲1内にあるか判定し、この範囲内ならばステップD133、D134を順次実行してステップD135に進み、この範囲外ならばステップD132に進む。ここで、先読み変動系コマンドとは、先読み(例えば、特図の大当り予告)を行う特図の変動パターンを指令するコマンドでり、この先読み変動系のコマンドは、同種のものがグループ分けされており、このうちの第1グループ(先読み用通常変動系)に属するコマンドデータがとり得る値の範囲が先読み変動系コマンド範囲1である。同様に、第2グループ(先読み用リーチ変動系)に属するコマンドデータがとり得る値の範囲が先読み変動系コマンド範囲2であり、第3グループ(先読み用突発変動系)に属するコマンドデータがとり得る値の範囲が先読み変動系コマンド範囲3である。
ステップD133では、先読み用通常変動系の図柄種別情報テーブルを準備する。
ステップD134では、今回のコマンドについて変動パターン対応図柄設定処理(後述する)を実行する。
ステップD135に進むと、ステップD134の変動パターン対応図柄設定処理において無効コマンド情報が返されたか判定し、無効コマンド情報が返された場合には今回のコマンドが無効なコマンドであるとしてリターンし、無効コマンド情報が返されなかった場合には有効なコマンドであるとしてステップD136に進む。
ステップD136に進むと、今回のコマンドのデータをcmd1stとして記憶し、次にステップD137で今回のコマンドが指令する変動パターンに対応する特図の図柄種別情報(ステップD134の変動パターン対応図柄設定処理で設定されたもの)を待受け図柄情報として格納し、次にステップD138で先読み情報設定処理1を実行し、その後ステップD162に進む。なお、先読み情報設定処理1及び後述する先読み情報設定処理2は、先読みが行われる場合の特図の変動パターン(或いは始動記憶の保留表示)を実行するための設定を行う処理である。
ステップD132に進むと、MODEのデータが先読み変動系コマンド範囲2内にあるか判定し、この範囲内ならばステップD139、D140を順次実行してステップD141に進み、この範囲外ならばステップD145に進む。
ステップD139では、先読み用リーチ変動系の図柄種別情報テーブルを準備する。
ステップD140では、今回のコマンドについて変動パターン対応図柄設定処理(後述する)を実行する。
ステップD141に進むと、ステップD140の変動パターン対応図柄設定処理において無効コマンド情報が返されたか判定し、無効コマンド情報が返された場合には今回のコマンドが無効なコマンドであるとしてリターンし、無効コマンド情報が返されなかった場合には有効なコマンドであるとしてステップD142に進む。
ステップD142に進むと、今回のコマンドのデータをcmd1stとして記憶し、次にステップD143で今回のコマンドが指令する変動パターンに対応する特図の図柄種別情報(ステップD140の変動パターン対応図柄設定処理で設定されたもの)を待受け図柄情報として格納し、次にステップD144で先読み情報設定処理1を実行し、その後ステップD162に進む。
ステップD145に進むと、MODEのデータが先読み変動系コマンド範囲3内にあるか判定し、この範囲内ならばステップD150、D151を順次実行してステップD152に進み、この範囲外ならばステップD146に進む。
ステップD150では、先読み用突発変動系の図柄種別情報テーブルを準備する。
ステップD151では、今回のコマンドについて変動パターン対応図柄設定処理(後述する)を実行する。
ステップD152に進むと、ステップD151の変動パターン対応図柄設定処理において無効コマンド情報が返されたか判定し、無効コマンド情報が返された場合には今回のコマンドが無効なコマンドであるとしてリターンし、無効コマンド情報が返されなかった場合には有効なコマンドであるとしてステップD153に進む。
ステップD153に進むと、今回のコマンドのデータをcmd1stとして記憶し、次にステップD154で今回のコマンドが指令する変動パターンに対応する特図の図柄種別情報(ステップD151の変動パターン対応図柄設定処理で設定されたもの)を待受け図柄情報として格納し、次にステップD155で先読み情報設定処理1を実行し、その後ステップD162に進む。
ステップD146に進むと、MODEのデータが先読み図柄コマンド範囲内にあるか判定し、この範囲内ならばステップD156を実行してステップD157に進み、この範囲外ならばステップD162に進む。先読み図柄コマンドは、先読みが行われる場合の特図の図柄に関する情報(例えば、特図の停止図柄を何にするかなど)を指令するコマンドであり、この先読み図柄コマンドのデータがとり得る範囲が先読み図柄コマンド範囲である。
ステップD156では、今回のコマンドのACTのデータに対応する特図の図柄情報を取得する。
ステップD157に進むと、ステップD156で取得した図柄情報と、その時点の待受け図柄情報(前述のステップD137,D143,D154などの何れかで設定された図柄情報)とを比較し、両者が一致すればステップD158に進み、両者が一致しなければステップD159に進む。なお、このステップD157の判定結果は通常は肯定的(両者が一致)になるが、コマンド値異常(ノイズ等によってコマンドの値が異常値に変化してしまうこと)などの異常が発生した場合、否定的(両者が不一致)になる。
ステップD158に進むと、cmd1stとして記憶されているコマンドデータの上位バイトをExModeとし、下位バイトをExActとして分離して記憶し、その後ステップD159に進む。
なお、このステップD158では、上記ExMode及びExActとしてのコマンドデータの記憶を実行した後、cmd1stとして記憶されているコマンドデータを消去する処理も実行する。この消去により、後述するステップD162の判定結果はNOになる。
ステップD159に進むと、待受け図柄情報をクリアし、次のステップD160で先読み情報設定処理2を実行し、その後ステップD162に進む。
ステップD162に進むと、cmd1stとしてのコマンドデータの設定が有るか判定し、cmd1stの設定が有ればステップD163を実行した後にステップD147に進み、cmd1stの設定が無ければステップD163を実行しないでステップD147に進む。
ここで、前述のステップD97、D103、D118、D120、D136、D142、及びD153のうちの何れかが実行された状態であれば、このcmd1stの設定は有りとなる(即ち、ステップD162の判定結果はYESとなる)。また、前述のステップD125及びD158のうちの何れかが実行されてcmd1stの設定が消去されたままの状態であれば、このcmd1stの設定は無しとなる(即ち、ステップD162の判定結果はNOとなる)。このため、ステップD163が実行されるのは、cmd1st(第1コマンド)の受信時となる。
ステップD163では、CPU311のRAMの記憶領域のうち、初期化の必要な領域を対応するデフォルト値で初期化する。
なお、ステップD163で初期化する初期化の必要な領域には、組で効果を発揮する第1コマンドと第2コマンド(例えば、ファンファーレコマンドなどの演出画面コマンドと組を成す大当り図柄コマンド)によって内容が確定する情報を記憶する領域が含まれる。例えば、特図の変動に関する情報(停止図柄情報など)を記憶する領域と、大当り画面に関する情報(大当り図柄の情報、ラウンド数、カウント数など)を記憶する領域とが含まれる。なお、ステップD163によれば、組で効果を発揮する第1コマンドと第2コマンドのうちの第1コマンドを受信した時点で、第1コマンドと第2コマンドによって内容が確定する演出に関する情報を記憶する領域を一旦初期化することになる。ここでは、受信した第1コマンドと異なる種別又は系統の第2コマンドによって内容が確定する情報を記憶する領域についても初期化する(例えば、ファンファーレコマンドなどの大当り系の演出画面コマンドを受信した場合に、この演出画面コマンドと組を成す大当り図柄コマンドで確定する情報の記憶領域のみならず、例えば変動系の変動パターンコマンドと停止図柄コマンドで確定する情報を記憶する領域も初期化する)。
ステップD147に進むと、ExModeの設定がなしか否か判定し、なしの場合にはリターンし、ありの場合にはステップD148に進む。ここで、ExModeの設定がありとは、ExModeとしてデータが記憶されている状態である。またExModeの設定がなしとは、ExModeのデータがクリアされたままの状態である。なお、ExModeは前記ステップD91でクリアされる。
ステップD148に進むと、ExModeのデータが変動系コマンド(先読み変動系コマンド含む)以外であるか判定され、変動系コマンド(先読み変動系コマンド含む)以外である場合にはステップD149に進み、変動系コマンド(先読み変動系コマンド含む)である場合にはステップD161に進む。
ステップD149では、受信コマンド別初期化処理1(後述する)を実行し、その後リターンする。
ステップD161では、受信コマンド別初期化処理2(後述する)を実行し、その後リターンする。
〔変動パターン対応図柄設定処理〕
次に、上述の受信コマンド解析処理(親モジュール)におけるステップD95、D101、D116、D134、D140、D151でそれぞれ実行される変動パターン対応図柄設定処理(子モジュール)の詳細について図102により説明する。
このルーチンが開始されると、まずステップD171で、前述のステップD92で記憶されたACTのデータに対応する有効な図柄種別情報を取得し、ステップD172に進む。この図柄種別情報の取得は、直前のステップ(例えばステップD95であれば、その前のステップD94)で設定された図柄種別情報テーブルに基づいて行われる。
また本例の場合には、図柄種別情報としては、「はずれ図柄」、「2R大当り図柄」、及び「15R大当り図柄」の3パターンがある。但し、この態様に限定されず、例えば2R又は15R以外のラウンド数の大当り図柄や、小当たり図柄などの種別が設定されていてもよく、この図柄種別の設定は機種の仕様によって変化する。
ステップD172に進むと、MODEのデータ(前述のステップD92で記憶された上位バイトのデータ、以下ステップD178、D179、D180でも同様)が変動系コマンド範囲内(ステップD134、D140、D151の何れかで本ルーチンが実行されている場合には、先読み変動系コマンド範囲内)にあるか判定し、この範囲内ならばステップD173に進み、この範囲外ならば異常であるとしてリターンする。ここで、「変動系コマンド範囲」とは、前述の変動系コマンド範囲1、変動系コマンド範囲2、及び変動系コマンド範囲3を全て含む範囲である。また、「先読み変動系コマンド範囲」とは、前述の先読み変動系コマンド範囲1、先読み変動系コマンド範囲2、及び先読み変動系コマンド範囲3を全て含む範囲である。即ち、このステップD172では、前述のステップD93、D99等に比較して範囲の広いコマンド正常性のチェックを行う。
ステップD173に進むと、ステップD171で取得した図柄種別情報がはずれ図柄か判定し、はずれ図柄ならばステップD178でMODEのデータに対応するはずれ時ACT整合チェックテーブルを取得してステップD181に進み、はずれ図柄でないならばステップD174に進む。ここで、はずれ時ACT整合チェックテーブルは、はずれ図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD174に進むと、ステップD171で取得した図柄種別情報が2R大当り図柄か判定し、2R大当り図柄ならばステップD179でMODEのデータに対応する2R大当り時ACT整合チェックテーブルを取得してステップD181に進み、2R大当り図柄でないならばステップD175に進む。ここで、2R大当り時ACT整合チェックテーブルは、2R大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD175に進むと、ステップD171で取得した図柄種別情報が15R大当り図柄か判定し、15R大当り図柄ならばステップD180でMODEのデータに対応する15R大当り時ACT整合チェックテーブルを取得してステップD181に進み、15R大当り図柄でないならばステップD176で無効コマンド情報を返してリターンする。ここで、15R大当り時ACT整合チェックテーブルは、15R大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD181に進むと、ステップD184で分岐することによって、ステップD182とステップD183を順次実行する動作を当該チェックテーブル(直前のステップD178、D179、D181の何れかで取得されたもの)の最後まで繰り返す。
ここで、ステップD182では、テーブルの内容(即ち、直前のステップで取得されたチェックテーブルにおいて、その時点でのポインタに対応するデータ)が、前述のステップD92で記憶されたACTのデータと一致するか判定し、一致すればこの繰り返しループを抜けてステップD177に進み、一致しなければステップD183に進む。
ステップD183に進むと、当該チェックテーブルのポインタの値を更新し、ステップD184に進む。
ステップD184に進むと、当該チェックテーブルの最後のデータまでステップD182が繰り返し実行されたか判定し、最後のデータまでステップD182が繰り返された場合にはステップD185に進み、そうでない場合にはステップD182に戻って処理を繰り返す。
このステップD181乃至D184の繰り返しループの処理によって、当該チェックテーブルの何れかのデータと、前述のステップD92で記憶されたACTのデータとが一致すれば、ステップD177に進み、そうでない場合(一致するデータが当該チェックテーブルに一つもない場合)には、ステップD185に進む。
そしてステップD185では、異常であるとして無効コマンド情報を返し、リターンする。またステップD177では、ステップD171で取得した図柄種別情報の値を返す。
なお、前述のステップD98等では、このステップD177で返された図柄種別情報が待受け図柄情報として格納される。
〔受信コマンド別初期化処理1〕
次に、上述の受信コマンド解析処理におけるステップD149で実行される受信コマンド別初期化処理1の詳細について図103乃至図106により説明する。
このルーチンが開始されると、まずステップD191で、初期化の必要な領域を対応するデフォルト値で初期化し、次のステップD192で全面フェード情報としてNULL(情報が無いことを示すデータ)を設定し、ステップD193に進む。なお、ステップD191で初期化する初期化の必要な領域は、CPU311のRAMの記憶領域のうち、コマンド確定時に初期化すべき共通領域(例えば、予告情報領域の全域)である。
ステップD193に進むと、ExModeのデータが客待ちデモを指令するものであるか判定し、客待ちデモを指令するものであるならばステップD195でラウンド表示情報をNULLに設定してステップD196に進み、客待ちデモを指令するものでない場合にはステップD194に進む。なお、客待ちデモとは、客待ちデモ演出(又は客待ち演出ともいう)のことであり、表示装置41で行われる客待ちデモ表示を含む演出である。客待ちデモ演出では、表示装置41での表示に限られず、他の表示装置での表示やランプ類の点灯(点滅含む)、或いは音声の出力による演出が行われてもよい。
ステップD196に進むと、P機状態(パチンコ機の状態)が客待ちデモ中か判定し、客待ちデモ中ならばステップD199に進み、客待ちデモ中でなければステップD197に進む。
ステップD197に進むと、表示制御フラグ領域に客待ちA表示開始の情報を設定し、次のステップD198で背景情報に客待ち表示データ(客待ちデモ用制御テーブルの情報)を設定し、ステップD199に進む。
ステップD199に進むと、変動終了時背景情報に変動終了表示データを設定し、次のステップD200でP機状態として客待ちAを設定し、次のステップD201で特図表示図柄番号として特図停止図柄領域の値を設定し、次のステップD203で保留表示移動制御なしを設定し、その後ステップD203aに進む。保留表示移動制御とは、特図を表示する表示装置41の画面で始動記憶の保留表示も行っている場合に、リーチアクションなどの表示と重ならないように、この保留表示の表示位置を適宜移動させる制御である。
なお、上記ステップD195乃至D203は、客待ちデモ表示を表示装置41で実行するための処理である。客待ちデモ表示は、図柄表示を行う「客待ちA」とムービー表示を行う「客待ちB」とに区分けされており、上記ステップD195乃至D203によって「客待ちA」が開始され、これに続いて「客待ちB」の客待ちデモ表示が行われる構成となっている(後述する客待ち表示編集処理参照)。
また、ステップD201における特図停止図柄領域の値とは、後述するステップD341で設定されるデータであり、また特図表示図柄番号は、例えば特図変動中に客待ちデモコマンドが送信された場合に、その時点の特図停止図柄領域の値を保存しておく記憶領域である。なお、こうして保存された特図表示図柄番号の値は、客待ち中の図柄表示に利用される。
ステップD203aに進むと、サブ間データ送信中であるか判定し(即ち、異なるパチンコ機の演出制御装置に対してデータ送信中であるか判定し)、送信中であればリターンし、送信中でなければステップD203b乃至D203fを実行した後にリターンする。
ステップD203bでは、客待ちデモ同期(客待ちデモ表示におけるサブ間同期)のサブ間コマンド(ブロードキャスト送信設定)を準備し、この準備したサブ間コマンドを編集すべく次のステップD203cでサブ間送信データ編集処理(図120で後述する)を実行する。
ステップD203dでは、ack待ちタイマ(後述するステップD521で使用されるタイマ)に初期値を設定する。なお、サブ間コマンドを受信したパチンコ機のサブ基板(演出制御装置)が、サブ間コマンドを送信したパチンコ機のサブ基板に対してackを返すか否かはコマンドの種類で変わる(後述するステップD480a参照)。本例では、客待ちデモ同期のサブ間コマンドには、ackの返信を要求する内容が入っている。即ち本例では、客待ちデモ同期のサブ間コマンドは、ack返答が必要なコマンドである。
ステップD203eでは、サブ間演出開始待ちタイマ(後述するステップD532で使用されるタイマ)を設定する。
ステップD203fでは、サブ間送信要求フラグをセットする。サブ間送信要求フラグは、後述するステップD461の判定に使用される。
ステップD194に進むと、ExModeのデータがファンファーレ演出(大当りになった時の演出)を指令するものであるか判定し、ファンファーレ演出を指令するものであるならばステップD204乃至D210を順次実行した後にリターンし、ファンファーレ演出を指令するものでない場合にはステップD221に進む。
ステップD204では、P機状態として大当り中を設定する。
ステップD205では、ラウンド表示情報をNULLに設定する。
ステップD206では、背景情報に大当りファンファーレ表示データ(大当りファンファーレ用の背景制御テーブルの情報)を設定する。
ステップD207では、全面フェード情報として黒フェード表示を設定する。
ステップD208では、特図表示図柄番号として特図停止図柄領域の値を設定する。
ステップD210では、保留表示移動制御なしを設定する。
これらステップD204乃至D210は、ファンファーレ演出(表示装置41でのファンファーレ表示含む)を実行するための処理である。
ステップD221に進むと、ExModeのデータがラウンド演出(大当りのラウンド中の演出)を指令するものであるか判定し、ラウンド演出を指令するものであるならばステップD223乃至D229を順次実行した後にリターンし、ラウンド演出を指令するものでない場合にはステップD222に進む。
ステップD223では、P機状態として大当り中を設定する。
ステップD224では、ラウンド表示情報としてラウンド数に対応するシーン切り替えテーブルを設定する。
ステップD225では、背景情報にExActのデータに対応する大当りラウンド背景表示データ(大当りラウンド用の背景制御テーブルの情報)を設定する。
ステップD226では、ExActのデータに対応するラウンド数表示データを設定する。
ステップD227では、特図表示図柄番号として特図停止図柄領域の値を設定する。
ステップD228では、ラウンド中の図柄動作テーブル(ラウンド中用の図柄変動テーブルの情報)を図柄変動テーブル領域にセットする。
ステップD229では、保留表示移動制御なしを設定する。
これらステップD223乃至D229は、ラウンド演出(表示装置41でのラウンド表示含む)を実行するための処理である。
ステップD222に進むと、ExModeのデータがインターバル演出(大当り中のラウンドとラウンドの間の演出)を指令するものであるか判定し、インターバル演出を指令するものであるならばステップD230乃至D235を順次実行した後にリターンし、インターバル演出を指令するものでない場合にはステップD241に進む。
ステップD230では、P機状態として大当り中を設定する。
ステップD231では、ラウンド表示情報をNULLに設定する。
ステップD232では、背景情報に大当りインターバル背景表示データ(インターバル用の背景制御テーブルの情報)を設定する。
ステップD233では、特図表示図柄番号として特図停止図柄領域の値を設定する。
ステップD234では、ラウンド中の図柄動作テーブルをセットする。
ステップD235では、保留表示移動制御なしを設定する。
これらステップD230乃至D235は、インターバル演出(表示装置41でのインターバル表示含む)を実行するための処理である。
ステップD241に進むと、ExModeのデータがエンディング演出(大当り終了時の演出)を指令するものであるか判定し、エンディング演出を指令するものであるならばステップD244乃至D250を順次実行した後にリターンし、エンディング演出を指令するものでない場合にはステップD242に進む。
ステップD244では、P機状態として大当り中を設定する。
ステップD245では、ラウンド表示情報にシーン切替時間テーブルを設定する。
ステップD246では、背景情報にエンディング背景表示データ(エンディング用の背景制御テーブルの情報)を設定する。
ステップD247では、全面フェード情報として黒フェード表示を設定する。
ステップD248では、特図表示図柄番号として特図停止図柄領域の値を設定する。
ステップD250では、保留表示移動制御なしを設定する。
これらステップD244乃至D250は、エンディング演出(表示装置41でのエンディング表示含む)を実行するための処理である。
ステップD242に進むと、ExModeのデータが特図1保留数の値を指令するものであるか判定し、特図1保留数の値を指令するものであるならばステップD251で特図1保留情報設定処理(後述する)を実行した後にリターンし、特図1保留数の値を指令するものでない場合にはステップD243に進む。
なお、特図2についても、上記ステップD242及びD251と同様のステップが設けられるが、図示及び説明を省略する。
ステップD243に進むと、ExModeのデータが特図の図柄停止を指令するものであるか判定し、特図の図柄停止を指令するものであるならばステップD252乃至D259を順次実行した後にリターンし、特図の図柄停止を指令するものでない場合にはリターンする。
ステップD252では、現在のBGMが基本BGMでないならサウンド停止要求をセットする。
ステップD253では、変動終了時背景情報がNULLでなければ背景情報で上書きする。
ステップD254では、P機状態として変動中を設定する。
ステップD255では、背景情報に通常背景表示データ(通常用の背景制御テーブルの情報)を設定する。
ステップD256では、変動終了時背景情報にNULLを設定する。
ステップD257では、特図表示図柄番号として特図停止図柄領域の値を設定する。
ステップD259では、保留表示移動制御なしを設定する。
これらステップD252乃至D259は、特図の図柄停止の演出(表示装置41での特図の停止表示含む)を実行するための処理である。
なお、この受信コマンド別初期化処理1については、特図2保留数のコマンドに対する処理以外の他の処理についても、図示及び説明を省略している。例えば、非変動系の他のコマンド(エラー系、確率状態系等のコマンドなど)を受信した場合の対応処理も省略している。
〔特図1保留情報設定処理〕
次に、上述の受信コマンド別初期化処理1におけるステップD251で実行される特図1保留情報設定処理の詳細について図107により説明する。
このルーチンが開始されると、まずステップD261で、その時点の特図1保留数のデータをロードして、このロードしたデータを前保留数として記憶し、次にステップD262で、コマンド(ExMode及びExActのデータ)で指令された保留数の値を特図1保留数として記憶し、その後ステップD263に進む。
ステップD263では、新保留数(ステップD262で記憶された特図1保留数)と前保留数(ステップD261で記憶された値)とが一致するか判定し、一致する場合にはリターンし、一致しない場合にはステップD264に進む。
ステップD264では、保留数が増加したか(即ち、新保留数>前保留数であるか)判定し、増加したならばステップD265に進み、増加していないならばステップD267に進む。
ステップD265に進むと、新保留数に対応する色情報領域に保留通常点灯の表示パターンを設定し、次のステップD266で始動口入賞音を出力要求し、その後リターンする。
ステップD267に進むと、特図1先読み情報領域をシフトし、次のステップD268で色情報領域をシフトする。
なお、ステップD265に進むのは、特図1の始動入賞があった場合であるので、この始動入賞による保留表示(保留されている始動記憶の表示)や演出用の入賞音出力を行うためにステップD265及びD266が実行される。また、ステップD267に進むのは、特図1の始動記憶の保留数が減少した場合であるため、先読み表示(例えば大当り予告や変動パターン予告)を行っている保留数の表示をずらして表示したり、先読み情報(先読みした変動パターンや停止図柄の情報及び先読み演出有無等の各種情報(フラグ等))を保留数に対応する領域にずらすために、ステップD267、D268が実行される。なお、演出制御装置300では、前述のステップD138、D144、D155、D160、及びステップD161(受信コマンド別初期化処理2)において、各保留毎に、先読みコマンド(先読み変動系コマンド及び先読み図柄コマンド)の解析結果として上記先読み情報を設定している。そして、この先読み情報の格納領域は、主基板で変動開始時に乱数格納領域をシフトするのと同様に、前記保留数の減少に対応させてシフトさせる必要があり、この格納領域のシフトを行っているのが、上記ステップD267である。またステップD268は、先読み情報に応じた保留表示色(即ち、先読み演出のために先読み演出の有無や内容によって異ならせている保留表示の色)の情報の格納領域を同様にシフトさせるための処理である。
〔受信コマンド別初期化処理2〕
次に、前述の受信コマンド解析処理におけるステップD161で実行される受信コマンド別初期化処理2の詳細について図108、図109により説明する。
このルーチンが開始されると、まずステップD271乃至D281を実行し、ステップD282に進む。
ステップD271では、初期化の必要な領域を対応するデフォルト値で初期化する。
なお、上記ステップD271では、CPU311のRAMの記憶領域のうち、コマンド確定時に初期化すべき共通領域(例えば、予告情報領域の全域)を対応するデフォルト値で初期化する。
ステップD272では、全面フェード情報としてNULLを設定する。
ステップD273では、表示制御フラグ領域に通常変動表示の情報を設定する。
ステップD274では、変動する特図の第4図柄の変動初期化フラグを設定する。
ステップD275では、変動する特図の第4図柄ステータスを変動中として設定する。
これらステップD274及びD275の処理によって、特図1又は特図2のうちの変動中のものに対応する第4図柄が変動する(後述する第4図柄編集処理を参照)
ステップD276では、保留表示移動制御なしに設定する。
ステップD277では、変動パターン分類処理(後述する)を実行する。
ステップD278では、上記ステップD277の変動パターン分類処理で返された大別パターンに対応する予告振分テーブルを準備する。
ステップD279では、乱数抽選処理A(後述する)を実行する。
ステップD280では、上記ステップD277で返された大別パターンに対応するステップUP予告振分テーブルを準備する。
ステップD281では、乱数抽選処理B(後述する)を実行する。
ステップD282に進むと、上記ステップD277で返された大別パターンが「通常はずれ」か判定し、「通常はずれ」であればステップD285に進み、「通常はずれ」でなければステップD283及びD284を順次実行した後にステップD285に進む。
ステップD283では、上記ステップD277で返された大別パターンに対応するリーチ中予告振分テーブルを準備する。
ステップD284では、乱数抽選処理C(後述する)を実行する。
ステップD285に進むと、予告演出設定処理1(後述する)を実行し、次にステップD286で予告演出設定処理2(後述する)を実行し、次にステップD287で基本BGMの曲番号をセットし、その後ステップD288に進む。
ステップD288に進むと、ExModeのデータ(前半変動パターン)が12秒前半通常変動を指令するものか否か判定し、12秒変動を指令するものであればステップD289乃至D295を順次実行した後にリターンし、12秒前半通常変動を指令するものでなければステップD301に進む。ここで、「12秒前半通常変動」における「通常」とは、短縮変動等の特殊な変動ではないという意味である。
なお本例では、12秒前半通常変動の場合には、リーチアクション無しの変動パターンしかあり得ない。この場合、リーチアクションを行わないので後半変動の時間値は0として設定し、合計で12秒となる変動パターン(即ち、12秒通常変動;ここでの「通常」はリーチではない変動という意味である)として定義している。つまり、ExActのデータ(後半変動パターン)が示す後半変動時間値は0秒変動ということになる。
ステップD289では、背景情報を通常変動背景(通常変動用の背景制御テーブルの情報)に設定する。
ステップD290では、変動終了時背景情報にNULLを設定する。
ステップD291では、後述する図柄変動テーブルとして、12秒前半通常変動時の序盤変動テーブルを設定する。具体的には、この序盤変動テーブルのアドレスの情報を図柄変動テーブル領域に格納する(以下同様)。
ステップD292では、図柄変動テーブルとして、12秒前半通常変動時の前半変動テーブルを設定する。
ステップD293では、図柄変動テーブルとして、ExActに対応する後半変動テーブルを設定する。
ステップD294では、バラケ目図柄生成のフラグをセットする。バラケ目図柄とは、特図を構成する複数の図柄がリーチや大当りとなる図柄でない状態(リーチ形の組み合わせでなければ「776」のような組み合わせも含む)を意味する。
ステップD295では、停止図柄設定処理(後述する)を実行する。
これらステップD289乃至D295は、リーチアクションなしの特図(特図1又は特図2)の表示装置41での変動表示を実行するための処理である。ここで、ステップD291乃至D293では、1変動の時間を3つの区間に分けて制御を行っている。同じ変動コマンドでも予告等の種類によって図柄自体も変わったりしてもよく、これらステップD291乃至D293の各テーブルの内部にも複数の動きが登録されている。
なお、これらステップD289乃至D295は、リーチアクションなしの場合の一例であり、実際にはリーチアクションなしでも沢山のモードがあるが、そのための制御処理については図示及び説明を省略する。
ステップD301に進むと、ExModeのデータ(前半変動パターン)が10.4秒前半通常変動(ここでの「通常」は短縮変動等ではないという意味)を指令するものか否か判定し、10.4秒前半通常変動を指令するものであればステップD302乃至D303を順次実行した後にステップD304に進み、10.4秒前半通常変動を指令するものでなければステップD318に進む。なお本例では、10.4秒前半通常変動の場合には、リーチアクション有りの変動パターンしかあり得ない。この場合、リーチアクションの演出内容に伴って後半変動の時間値は変化するので、合計で(10.4+α)秒となる変動パターンとして定義される。同一のExModeに対してExActのデータ(後半変動パターン)は複数の種類があり、この数は遊技機毎の仕様により異なる。
ステップD302では、10.4秒前半通常変動時の序盤変動テーブルを設定する。
ステップD303では、10.4秒前半通常変動時の前半変動テーブルを設定する。
これらステップD302乃至D303は、10.4秒前半通常変動における序盤及び前半の特図(特図1又は特図2)の表示装置41での変動表示を実行するための処理である。なお本願では、前半変動時間の内の図柄の動きだしの期間を「序盤」、前半変動時間の内の残りの期間を「前半」としている。同一の前半変動時間でも図柄の動きだしが、そのまま下にスクロールする場合や一旦上にホッピングしたりする場合(予告の一種)もあるので、動きが一通りにならないよう「序盤+前半=前半変動」という構成になっている。また本実施例は、このように、特図変動時の演出を時間的に複数に分割した各期間について演出内容をそれぞれ設定し、各期間の演出内容の組合せとして特図変動時の演出全体を構成する組合せ式となっている。これにより、制御データ記憶用の不揮発性メモリ(本例ではPROM321)に格納しなければならない総データ量が減るというメリットがある。即ち、例えば、少しでも動きが違う演出内容毎に前半変動のテーブルを全て用意するとデータ量が膨大になってしまうが、この組合せ式であればそのような問題が改善される。
ステップD304に進むと、ExActのデータ(後半変動パターン)がノーマル−1はずれの変動を指令するものか否か判定し、ノーマル−1はずれを指令するものであればステップD307乃至D311を順次実行した後にリターンし、ノーマル−1はずれの変動を指令するものでなければステップD305に進む。なお、ノーマル−1はずれは、ノーマルリーチアクション有りで外れる変動パターンである。
ステップD307では、背景情報としてノーマルリーチアクションの背景(ノーマルリーチアクション用の背景制御テーブルの情報)を設定する。
ステップD308では、変動終了時背景情報にNULLを設定する。
ステップD309では、後述する図柄変動テーブルとして、ExActに対応する後半変動テーブルを設定する。
ステップD310では、−1はずれ図柄生成のフラグをセットする。
ステップD311では、停止図柄設定処理(後述する)を実行する。
これらステップD307乃至D311は、10.4秒前半通常変動の後半変動であってノーマル−1外れの場合の特図(特図1又は特図2)の表示装置41での変動表示を実行するための処理である。
ステップD305に進むと、ExActのデータが武将リーチ−1はずれの変動を指令するものか否か判定し、武将リーチ−1はずれを指令するものであればステップD312乃至D317を順次実行した後にリターンし、武将リーチ−1はずれの変動を指令するものでなければステップD306に進む。なお、武将リーチ−1はずれは、武将のキャラクタが登場する武将リーチアクション有りで外れる変動パターンである。
ステップD312では、背景情報として武将リーチアクションの背景(武将リーチアクション用の背景制御テーブルの情報)を設定する。
ステップD313では、変動終了時背景情報に武将リーチ終了時の背景を設定する。
ステップD314では、後述する図柄変動テーブルとして、ExActに対応する後半変動テーブルを設定する。ここでは、武将リーチ中の予告(大当り予告)の種類に応じてテーブルを選択する。
ステップD315では、−1はずれ図柄生成のフラグをセットする。
ステップD316では、停止図柄設定処理(後述する)を実行する。
ステップD317では、全面フェード情報に白フェード表示の情報を設定する。
これらステップD312乃至D317は、10.4秒前半通常変動の後半変動であって武将リーチ−1はずれの場合の特図(特図1又は特図2)の表示装置41での変動表示を実行するための処理である。
ステップD306に進むと、10.4秒前半通常変動の後半変動について、その他の各種リーチ種類(大当りとなるもの含む)に対応する設定処理を行い、その後リターンする。
ステップD318に進むと、その他のExMode及びExActにおける各種リーチ種類(大当りとなるもの含む)に対応する設定処理を行う。
なお、上記ステップD301乃至D305及びステップD307乃至D317は、リーチアクション有りの場合の一部の例の処理である。実際にはリーチアクションには、他にも沢山の種類があるが、ここでは煩雑を避けるために、それら他の種類の処理についてはステップD306及びステップD318でまとめて図示しており、その詳細については図示及び説明を省略する。
〔停止図柄設定処理〕
次に、前述の受信コマンド別初期化処理2におけるステップD295、D311、D316で実行される停止図柄設定処理の詳細について図110により説明する。なお本例では、演出用の特図が左右並んで配置される3個の図柄(左図柄、中図柄、右図柄)からなり、各図柄として9種類の図柄(図柄番号0乃至8)がある場合を例示する。
このルーチンが開始すると、まずステップD321で、図柄生成フラグとしてはずれバラケ目が設定されているか判定し、設定されていればステップD322乃至D323を実行した後にステップD324に進み、設定されていなければステップD331に進む。なお、はずれバラケ目の図柄生成フラグは前述のステップD294でセットされる(即ち、設定される)。
ステップD322は、9種類の図柄番号0乃至8からランダムに一つ選択した図柄番号を左図柄lxとして設定する処理である。
ステップD323は、8種類の図柄番号0乃至7からランダムに一つ選択した図柄番号を右図柄rxとして設定する処理である。
ステップD324に進むと、ステップD323で設定した右図柄rxがステップD322で設定した左図柄lx以上の値であるか判定し、右図柄rx≧左図柄lxであればステップS325で右図柄rxの図柄番号を1つ増やしてステップD326に進み、右図柄rx≧左図柄lxでなければ(即ち、右図柄rx<左図柄lxであれば)ステップD325を実行しないでステップD326に進む。
これらステップD322乃至D325の処理により、左図柄lxと右図柄rxがランダムに設定されるとともに、左図柄lxと右図柄rxは必ず異なる図柄番号に設定される。ステップD323で図柄番号7以下の範囲から選択するのは、ステップD325で必ず一つ増やすことができるようにするためである。
ステップD326に進むと、左図柄lxと右図柄rxとが出現禁止図柄となり得る組合せか判定し、出現禁止図柄となり得る組合せならばステップD327に進み、出現禁止図柄となり得る組合せでなければステップD338に進む。出現禁止図柄とは、ここでは、はずれバラケ目として出現が禁止される図柄である。例えば「357」「375」「537」・・・のように3,5,7の組合せの図柄をチャンス目とした仕様の場合に、このチャンス目がはずれ変動時に出現しないように禁則制御を行う必要があるときには、このチャンス目が出現禁止図柄である。ステップD326乃至D330は、この禁則制御のための処理である。単にバラケ目でよい機種なら、この禁則制御は不要であり、右列の処理(ステップD338)だけで足りる。
具体的に説明すると、例えば3,5,7の組合せの図柄が出現禁止図柄であるとすると、ステップD326では、左図柄lxと右図柄rxの図柄番号が3,5,7のうちの異なる何れか二つである場合には、出現禁止図柄となり得るとしてステップD327に進む。
ステップD327に進むと、「左図柄lx,中図柄cx,右図柄rx」の組合せが出現禁止図柄となるcx値をnocxという記憶領域に格納する。例えば、左図柄lxが3で、右図柄rxが5の場合、あとは中図柄cxが仮に7であれば、特図の図柄の組み合わせは「3,7,5」となって出現禁止図柄になるので、その中図柄cxの値である7をnocxにセットする。
ステップD327を経るとステップD328で、8種類の図柄番号0乃至7からランダムに一つ選択した図柄番号を中図柄cxとして設定する処理を実行し、その後ステップD329に進む。
ステップD329に進むと、中図柄cx≧nocxであるか判定し、中図柄cx≧nocxであればステップS330で中図柄cxの値を1つ増やしてステップD341に進み、中図柄cx≧nocxでなければステップD330を実行しないでステップD341に進む。
これらステップD328乃至D330の処理によれば、中図柄cxの値は必ずnocxと異なる値になり、結局、「左図柄lx,中図柄cx,右図柄rx」の組合せは、必ず出現禁止図柄でないものとなる。
ステップD338に進むと、8種類の図柄番号0乃至7からランダムに一つ選択した図柄番号を中図柄cxとして設定する処理を実行し、その後ステップD341に進む。
ステップD331に進むと、図柄生成フラグとしてリーチ−1はずれ目が設定されているか判定し、設定されていればステップD332を実行した後にステップD333に進み、設定されていなければステップD337に進む。なお、リーチ−1はずれ目の図柄生成フラグは前述のステップD310やD315でセットされる。
ステップD332では、10種類の値0乃至9からランダムに一つ選択した値をtmprndとして格納する処理を実行する。
ステップD333に進むと、tmprndの値が0か判定し、0ならばステップD334とD335を順次実行した後にステップD336に進み、0でないならばステップD339とD340を順次実行した後にステップD336に進む。
ステップD334では、奇数である4種類の値1,3,5,7からランダムに一つ選択した値を左図柄lxの番号として格納する処理を実行する。なお、ステップD334の図中の記載は、プログラム言語を用いて記載しており、「rand」は乱数を発生させる関数を示し、「mod」は割算の余りを求める演算を示しており、「rand()mod4」は0,1,2,3のうちからランダムに一つ選択された値となる。ステップD334では、この「rand()mod4」の値を2倍して1加算しているため、結局、1,3,5,7のうちからランダムに一つ選択された値となる。
ステップD339では、偶数である5種類の値0,2,4,6,8からランダムに一つ選択した値を左図柄lxの番号として格納する処理を実行する。
ステップD335又はステップD340では、リーチの図柄とするために、右図柄rxの値を左図柄lxの値と同じにする(即ち、右図柄を左図柄と同じ図柄とする)。
ここで、ステップD332乃至D334、及びステップD339の処理によれば、リーチ図柄の奇数、偶数の出現割合を変化させることができる。この場合、ステップD333からステップD334に進むのはtmprnd=0の場合だけであるため、奇数図柄の出現割合は1/10となり、これに対してステップD333からステップD339に進む割合(即ち、偶数図柄の出現割合)は9/10となる。このようにするのは、次の理由による。即ち、再抽選演出があるため、どうしても大当りする時のリーチ図柄が偶数になりやすい。そこで、奇数リーチの大当り信頼度を低下させないために、奇数リーチの出現率を低くしているのである。なお、奇数、偶数の出現率の割合は、もちろん1:9の割合でなくともよい。また本例では、ステップD334やD339のように計算で図柄を求める態様を例示したが、乱数とデータテーブルで図柄を選出してもよい。
ステップD336に進むと、−1はずれとなるように、左図柄lxの値から1を減算した結果を中図柄cxの値として設定し、その後ステップD341へ進む。
ステップD337に進むと、その他の図柄生成フラグに対応する組合せの図柄(大当り図柄含む)を生成する処理を実行した後、ステップD341に進む。
ステップD341では、ここまでのステップで設定された左図柄lx、中図柄cx、右図柄rxの値を、停止図柄領域の左図柄・中図柄・右図柄にそれぞれ格納し、その後リターンする。
なお、上記ステップD321乃至D336及びステップD338乃至D340は、以上説明したように、はずれバラケ目の場合と、リーチ−1はずれ目の場合の処理である。実際には停止図柄の種類には、他にも沢山の種類があるが、ここでは煩雑を避けるために、それら他の種類の処理についてはステップD337でまとめて図示しており、その詳細については図示及び説明を省略する。
〔変動パターン分類処理〕
次に、前述の受信コマンド別初期化処理2におけるステップD277で実行される変動パターン分類処理の詳細について図111により説明する。
このルーチンが開始されると、まずステップD351でExModeのデータが変動系コマンドであるか判定し、変動系コマンドであればステップD352に進み、変動系コマンドでなければステップD358に進む。
ステップD352に進むと、ExActのデータは有効範囲か判定し、有効範囲であればステップD353を実行してステップD354に進み、有効範囲でなければステップD358に進む。
ステップD353では、ExModeのデータに対応する変動パターンチェックデータを取得する。変動パターンチェックデータは、変動系コマンドのMODEのデータ毎に設定され、機種内で使用されていないMODEのデータに対しては変動パターンチェックデータとして0が設定されているものである。
ステップD354に進むと、ステップD353で取得した変動パターンチェックデータが0か判定し、0ならばステップD358に進み、0でなければステップD355乃至D357を順次実行した後にリターンする。
ステップD355では、ExModeのデータに対応する大別パターンテーブルを設定する。
ステップD356では、ステップD355で設定された大別パターンテーブルに基づいてExActのデータに対応する大別パターンデータを取得する。
ステップD357では、ステップD356で取得した大別パターンデータを返してリターンする。
ステップD358に進むと、0を返してリターンする。
なお、大別パターンデータは、ExMode及びExActのデータに対応した予告振分テーブル等を前述したステップD278等で準備するために、ExMode及びExActのデータが指令する変動パターンがどの分類に属するのかを示すデータである。また、大別パターンテーブルは、この大別パターンデータを決定するためのテーブルである。そして、この大別パターンテーブルにおいて、ExMode及びExActのデータの組み合わせが存在しない所は大別パターンデータが0となっている。このため、ExMode及びExActのデータの組み合わせが存在しない場合、ステップD357では、ステップD358と同様に0を返すことになる。また、こうして0が返された場合、例えば通常外れと同様の扱いとする。通常外れと同様の扱いにすれば、確定したコマンドに万が一異常があっても、特図を一応変動させることができ、遊技者に不安を抱かせないようにすることができるなどの利点がある。但し、0が返された場合、通常外れとしないで、例えば図108のステップD277を実行した後に、ステップD278以降を実行しないでリターンする構成として、変動開始設定を行わない態様も有り得る。このようにすると、コマンド異常の場合には特図を変動させないようにすることができる。
〔乱数抽選処理A〕
次に、前述の受信コマンド別初期化処理2におけるステップD279で実行される乱数抽選処理Aの詳細について図112により説明する。このルーチンは、前述のステップD278で振分けのグループA用として準備された予告振分テーブルにおける振分け結果を種別毎に乱数により選択する処理である。
このルーチンが開始されると、予告種別番号Aを初期値1から増分1だけ増加させつつ終値na(例えば、na=9)になるまで、ステップD361乃至ステップD368を繰り返し実行し、その後リターンする。即ち、ステップD361ではルーチン開始直後は予告種別番号Aを1としてステップD362に進む。ステップD368では、予告種別番号Aがna未満である場合にはステップD361に戻り、予告種別番号Aがnaである場合にはリターンする。そしてステップD361に戻ると、予告種別番号Aの値を1だけ増加させてステップD362に進む。なお、終値naの値は機種毎に異なる。
また、ステップD278で準備された予告振分テーブルをマトリックス状のデータテーブル(行列)とし、例えば予告の種別毎に同じ行(段)に各種振分け結果の振分値が横並びに配置されているとすると、予告種別番号Aの値は、このテーブルにおいて複数ある行のうちの一つの行に対応するもので、例えばA=1は上から1番目の行、A=2は上から2番目の行、…といったように対応している。即ち、予告種別番号は、予告振分テーブルにおける特定の振分値の縦方向の配置位置(何行目か)を示すパラメータである。また、予告振分テーブルの1つの行における特定の振分値の横方向の配置位置(何列目か)を示すパラメータとして振分けテーブルポインタが設けられている。また振分値は、本例では乱数値が0乃至999の1000種類あるので、同じ行にある振分値を全て加算すると1000になるように設定されている0乃至999の範囲内の数である。以上のことは、他の振分テーブルや、他の予告種別番号B、Cについても同様である。
ステップD362に進むと、0乃至999からランダムに一つ選択した値をrdmとして格納する処理を実行し、次にステップD363で予告種別番号Aに対応する振分テーブルポインタの値(予告種別番号Aの値に対応する行の先頭の列を示す値)を設定した後、ステップD364に進む。ここで、ステップD363で設定される振分テーブルポインタは、既述したように、前述のステップD278で準備された予告振分テーブル内の同一行における横方向位置(以下、ポインタ位置という)を指定するポインタである。
ステップD364に進むと、その時点での前記ポインタ位置の振分値とrdmの値とを比較し、前記rdmの値が前記振分値以上である場合にはステップD365に進み、前記rdmの値が前記振分値未満である場合にはステップD367に進む。
ステップD365に進むと、前記rdmの値から前記振分値を減算した値を新たなrdmの値として設定し、次にステップD366で振分テーブルポインタを1だけ増加させる更新(振分テーブルの同一行において1列分だけポインタ位置を先頭から離れる方向にずらす更新)を実行した後に、ステップD364に戻って処理を繰り返す。
これらステップD364乃至D366の処理によれば、rdmの値が前記振分値未満になるまで、rdmの値から前記振分値を減算して振分テーブルポインタを更新する処理が繰り返されることになる。そして、rdmの値が前記振分値未満になったとき(即ち、ステップD364の判定結果がNOになったとき)の振分テーブルポインタの更新回数(或いはポインタ位置の値)とその際の予告種別番号Aの値は、予告振分テーブルにおける特定の1つの位置(即ち、1つの振分け結果)を示すものとなり、これにより振分け結果が乱数に基づいて選択されることになる。
ステップD367に進むと、振分テーブルポインタの更新回数(即ち、前記ステップD365、D366を繰り返し実行した回数)を基に予告データ値を設定し、この予告データ値を対応する予告種別領域に格納し、その後ステップD368に進む。
ステップD368に進むと、前述したように、予告種別番号Aがna未満である場合にはステップD361に戻り、予告種別番号Aがnaである場合にはリターンする。
〔乱数抽選処理B〕
次に、前述の受信コマンド別初期化処理2におけるステップD281で実行される乱数抽選処理Bの詳細について図113により説明する。このルーチンは、前述のステップD280で振分けのグループB用として準備されたステップアップ予告振分テーブルにおける振分け結果を種別毎に乱数により選択する処理である。
このルーチンでは、前述の乱数抽選処理Aと同様に、予告種別番号Bを初期値1から増分1だけ増加させつつ終値nb(例えば、nb=7)になるまで、ステップD371乃至ステップD378を繰り返し実行し、その後リターンする。終値nbの値は機種毎に異なる。
なお、ステップアップ予告とは、予告内容や予告の信頼度を変化させつつ大当り予告を段階的に行うものである。本願の図面及び明細書において、「SU」とは、このステップアップ予告のステップアップを意味する。
〔乱数抽選処理C〕
次に、前述の受信コマンド別初期化処理2におけるステップD284で実行される乱数抽選処理Cの詳細について図114により説明する。このルーチンは、前述のステップD283で振分けのグループC用として準備されたリーチ中予告振分テーブルにおける振分け結果を種別毎に乱数により選択する処理である。
このルーチンでは、前述の乱数抽選処理A又はBと同様に、予告種別番号Cを初期値1から増分1だけ増加させつつ終値nc(例えば、nc=6)になるまで、ステップD381乃至ステップD388を繰り返し実行し、その後リターンする。終値ncの値は機種毎に異なる。
なお、上述の乱数抽選処理A,B,CにおけるステップD367、D377、D387では、予告データ値(振分テーブルポインタの更新回数から決まる値)によって特定される演出内容(SU予告を実行するか否かも含めた演出パターン)に対応する各種情報(SU予告回数、SU進行パターン、各種の予告種別など)を予告種別領域内の所定の記憶領域(例えば、後述するSU予告回数領域、SU進行パターン領域、予告種別C4領域、予告種別C5領域など)にそれぞれ格納する。
これにより、上述の乱数抽選処理A,B,Cによれば、全てのグループA,B,Cのそれぞれで全ての予告種別番号の値に対して振分け結果が予め選択され、この振分け結果に応じた演出内容を指定する各種情報が予め所定の記憶領域にそれぞれ格納されることになる。
〔予告演出設定処理1〕
次に、前述の受信コマンド別初期化処理2におけるステップD285で実行される予告演出設定処理1の詳細について図115により説明する。この予告演出設定処理1としては、乱数抽選結果(前述した乱数抽選処理A、B、Cの結果)に応じてSU予告の設定を行う場合を例示しているが、当然機種毎に予告演出の内容は異なる。
このルーチンが開始されると、まずステップD391で予告種別領域のSU予告回数領域から振分け結果をロードし、ステップD392に進む。
ステップD392に進むと、ステップD391でロードしたSU予告回数が1か判定し、1でない場合にはステップD393に進み、1である場合にはステップD404に進む。
ステップD393に進むと、ステップD391でロードしたSU予告回数が2か判定し、2でない場合にはステップD403に進み、2である場合にはステップD394に進む。
ステップD404に進むと、予告種別領域のSU進行パターン領域から振分け結果をロードし、ステップD405に進む。
ステップD405に進むと、ステップD404でロードしたSU進行パターンが0又は2か判定し、0又は2でない場合にはステップD406に進み、0又は2である場合にはステップD407に進む。
ステップD406に進むと、SU1予告情報領域に男性武将1_1情報を設定し、リターンする。ステップD407に進むと、SU1予告情報領域に女性武将1_1情報を設定し、リターンする。SU1予告情報領域は、ステップアップ予告の1回目の情報を記憶する領域であり、この領域に設定された情報に基づいてステップアップ予告の1回目が実行される。なお、上記ステップD406、D407で設定される情報は、SU1予告用の予告データ(SU1予告用の制御テーブル内の例えば特定の行を指定するアドレス情報)である。
ステップD394に進むと、予告種別領域のSU2種別領域から振分け結果をロードし、ステップD395に進む。
ステップD395に進むと、ステップD394でロードしたSU2種別が1か判定し、1でない場合にはステップD396に進み、1である場合にはステップD408に進む。
ステップD396に進むと、SU1予告情報領域に男性武将1_2情報(SU1予告用の予告データ)を設定し、次にステップD397でSU2予告情報領域に男性武将2_1情報(SU2予告用の予告データ)を設定し、ステップD398に進む。
ステップD408に進むと、SU1予告情報領域に女性武将1_2情報(SU1予告用の予告データ)を設定し、次にステップD409でSU2予告情報領域に女性武将2_2情報(SU2予告用の予告データ)を設定し、ステップD398に進む。SU2予告情報領域は、ステップアップ予告の2回目の情報を記憶する領域であり、この領域に設定された情報に基づいてステップアップ予告の2回目が実行される。
ステップD398に進むと、予告種別領域のSU進行パターン領域から振分け結果をロードし、ステップD399に進む。
ステップD399に進むと、ステップD398でロードしたSU進行パターンが0か判定し、0でない場合にはステップD411に進み、0である場合にはステップD400に進む。
ステップD400に進むと、予告種別領域のSU2女性出現パターン領域から振分け結果をロードし、ステップD401に進む。
ステップD401に進むと、ステップD400でロードしたSU2女性出現パターン(図では、パターンを「P」と表記)が0か判定し、0でない場合にはステップD410に進み、0である場合にはステップD402に進む。
ステップD402に進むと、SU1予告情報領域に女性武将1_2情報(SU1予告用の予告データ)を設定し、ステップD411に進む。
ステップD410に進むと、SU2予告情報領域に女性武将2_2情報(SU2予告用の予告データ)を設定し、ステップD411に進む。
ステップD411に進むと、ステップD398でロードしたSU進行パターンが2か判定し、2でない場合にはリターンし、2である場合にはステップD412に進む。
ステップD412に進むと、SU1予告情報領域に女性武将1_2情報(SU1予告用の予告データ)を設定し、次のステップD413でSU2予告情報領域に女性武将2_2情報(SU2予告用の予告データ)を設定し、リターンする。
ステップD403に進むと、以下同様に、SU予告回数振分け結果に応じてSU予告情報領域の設定を行い、その後リターンする。
なお、SU予告の設定はSU予告回数が3回以上の場合もあるが、ここでは煩雑を避けるために、それら他のSU予告の設定処理についてはステップD403でまとめて図示しており、その詳細については図示及び説明を省略する。
〔予告演出設定処理2〕
次に、前述の受信コマンド別初期化処理2におけるステップD286で実行される予告演出設定処理2の詳細について図116、図117により説明する。この予告演出設定処理2としては、乱数抽選結果(前述した乱数抽選処理A、B、Cの結果)に応じて巻物、PB、武将予告の設定を行う場合を例示しているが、当然機種毎に予告演出の内容は異なる。PBとはプッシュボタンを意味し、例えば本例の演出ボタン9に相当する。
このルーチンが開始されると、まずステップD421で予告種別領域の予告種別C4領域から振分け結果をロードし、ステップD422に進む。
なお、C4等の名前はスペック上の名称であり、演出の各ルートにおける予告の種別番号を表す。例えば、「ルートCにおける予告種別4」ということを表す。
ステップD422に進むと、ステップD421でロードした予告種別C4の振分け結果のデータが巻物予告を指定するものであるか判定し、巻物予告でない場合にはステップD423に進み、巻物予告である場合にはステップD425に進む。
ステップD425に進むと、前面予告情報4領域に巻物予告0情報(前面予告4用の予告データ)を設定し、リターンする。前面予告情報4領域に巻物予告0情報が設定されると、巻物予告が実行される。
ステップD423に進むと、ステップD421でロードした予告種別C4の振分け結果のデータが文字予告を指定するものであるか判定し、文字予告でない場合にはステップD424に進み、文字予告である場合にはステップD426乃至D429を順次実行した後にリターンする。
ステップD426では、予告種別領域の予告種別C5領域から振分け結果をロードする。
ステップD427では、前面予告情報4領域に予告種別C5の振分け結果に対応する巻物色情報(前面予告4用の予告データ)を設定する。
ステップD428では、予告種別領域の予告種別C6領域から振分け結果をロードする。
ステップD429では、前面予告情報5領域に予告種別C6の振分け結果に対応する巻物文字情報(前面予告5用の予告データ)を設定する。
これらステップD427、D429の設定に基づいて、文字予告が実行される。
ステップD424に進むと、ステップD421でロードした予告種別C4の振分け結果のデータがPB予告を指定するものであるか判定し、PB予告でない場合にはリターンし、PB予告である場合にはステップD430、D431、D441を順次実行した後にステップD442に進む。PB予告とは、例えば、表示装置41の画面にPBを押すことを示唆するような動画を表示して、遊技者にPBを押すことを促し、これにより大当りの期待感を持たせる予告演出である。
ステップD430では、予告種別領域の予告種別P1領域から振分け結果をロードする。
ステップD431では、前面予告情報4領域に予告種別P1の振分け結果に対応するPB色情報(前面予告4用の予告データ)を設定する。このPB色情報の設定によりPB予告におけるPBの画像の表示色が設定される。
ステップD441では、予告種別領域の予告種別C8領域から振分け結果(武将人数を決めるデータ)をロードする。
ステップD442に進むと、ステップD441でロードした振分け結果が武将人数1人を指定するものであるか判定し、武将人数1人でない場合にはステップD443に進み、武将人数1人である場合にはステップD445乃至D448を順次実行した後にステップD444に進む。
ステップD445では、予告種別領域の予告種別N1領域から振分け結果をロードする。
ステップD446では、前面予告情報5領域に左セリフ枠情報(前面予告5用の予告データ)を設定する。
ステップD447では、前面予告情報6領域にステップD445でロードした予告種別N1の振分け結果に対応する武将セリフ枠情報(前面予告6用の予告データ)を設定する。
ステップD448では、前面予告情報7領域にステップD445でロードした予告種別N1の振分け結果に対応する左武将キャラクタ情報(前面予告7用の予告データ)を設定する。
これらステップD446乃至D448の設定に基づいて、武将人数1人の予告演出の表示等が実行される。
ステップD443に進むと、ステップD441でロードした振分け結果が武将人数2人を指定するものであるか判定し、武将人数2人でない場合にはステップD444に進み、武将人数2人である場合にはステップD449乃至D455を順次実行した後にステップD444に進む。
ステップD449では、予告種別領域の予告種別N2領域から振分け結果をロードする。
ステップD450では、前面予告情報5領域に左セリフ枠情報(前面予告5用の予告データ)を設定する。
ステップD451では、前面予告情報6領域にステップD449でロードした予告種別N2の振分け結果に対応する武将セリフ枠情報(前面予告6用の予告データ)を設定する。
ステップD452では、前面予告情報7領域にステップD449でロードした予告種別N2の振分け結果に対応する左武将キャラクタ情報(前面予告7用の予告データ)を設定する。
ステップD453では、前面予告情報8領域に右セリフ枠情報(前面予告8用の予告データ)を設定する。
ステップD454では、前面予告情報9領域にステップD449でロードした予告種別N2の振分け結果に対応する武将セリフ情報(前面予告9用の予告データ)を設定する。
ステップD455では、前面予告情報10領域にステップD449でロードした予告種別N2の振分け結果に対応する右武将キャラクタ情報(前面予告10用の予告データ)を設定する。
これらステップD450乃至D455の設定に基づいて、武将人数2人の予告が実行される。
ステップD444に進むと、以下同様に、予告種別領域の振分け結果を用いて、各種予告情報の設定を行い、その後リターンする。
なお、予告設定には他にも沢山種類があるが、ここでは煩雑を避けるために、それら他の予告種類の設定処理についてはステップD444でまとめて図示しており、その詳細については図示及び説明を省略する。
また本例では、上記のようにプログラムで予告種別の設定を行っている例を挙げたが、データテーブルを用いて汎用的に設定する処理とする態様でもよい。
〔サブ間送信開始処理〕
次に、前述のメイン処理におけるステップD20で実行されるサブ間送信開始処理の詳細について図118により説明する。なお、サブ間送信とは、サブ間通信における送信のことである。サブ間通信とは、遊技場の異なるパチンコ機のサブ基板(本例では、演出制御装置)の間で行われる通信(本例では、無線通信)である。
このルーチンが開始されると、まずステップD461でサブ間送信要求があるか(即ち、前述したステップD203f、或いは後述するステップD480等でセットされるサブ間送信要求フラグがセットされているか)判定し、サブ間送信要求があれば(サブ間送信要求フラグがセットされていれば)ステップD462に進み、サブ間送信要求がなければ(サブ間送信要求フラグがセットされていない場合には)リターンする。
ステップD462に進むと、サブ間送信開始待ちタイマの値が0より大きいか判定し、0より大きい場合にはステップD466に進み、0以下の場合にはステップD463乃至D465を順次実行した後にリターンする。
ステップD463では、サブ間送信要求フラグをクリアする(セットされていない状態とする)。
ステップD464では、サブ間送信許可フラグをセットする。
ステップD465では、サブ間送信割込みを許可する。なお、サブ間送信割込みは、サブ間通信で送信するデータが発生すればこのステップD465で許可され、送信するデータが無くなれば禁止される(後述するステップD1196参照)。
ステップD466に進むと、サブ間送信開始待ちタイマを更新する(即ち、タイマの値を一定値減らす)。サブ間送信開始待ちタイマは、後述するステップD479で初期値を設定され、後述するステップD491でクリアされる(値が0とされる)タイマである。
〔サブ間受信タスク処理〕
次に、前述のメイン処理におけるステップD21で実行されるサブ間受信タスク処理の詳細について図119により説明する。
このルーチンが開始されると、まずステップD471で、サブ間受信タスク要求があるか(即ち、後述するステップD1179でセットされるサブ間受信タスク要求フラグがセットされているか)判定し、サブ間受信タスク要求があれば(サブ間受信タスク要求フラグがセットされていれば)ステップD472に進み、サブ間受信タスク要求がなければ(サブ間受信タスク要求フラグがセットされていない場合には)リターンする。
ステップD472に進むと、受信したサブ間コマンドのSB_MODEのデータ(後述するステップD1176でコピーされた値)をSB_MODE領域からロードし、ステップD473に進む。
ステップD473に進むと、ステップD472でロードしたSB_MODEのデータが端末ID報知を示すものか判定し、端末ID報知を示すものでない場合にはステップD474に進み、端末ID報知を示すものである場合にはステップD482乃至D485を順次実行した後にステップD481に進む。
ステップD482では、受信した端末ID(後述するステップD1175でコピーされた値)をサブ間コマンド送信元ID領域からロードする。
ステップD483では、ステップD482でロードした端末IDに対応する端末情報領域の端末有無情報を「あり」に設定する。
ステップD484では、ステップD482でロードした端末IDに対応する端末情報領域の端末有効期間タイマに、初期値を設定する。なお、端末有効期間タイマを設けることで、受信した端末IDの遊技機が「ある」と認識することに制限時間を設けている。つまり、サブ間通信を行う遊技機間で定期的に互いの存在を確認する必要があり、この端末有効期間タイマに基づく図示省略した処理(例えば、端末有効期間タイマがタイムアップするまでの間に同じ端末ID報知がまた受信されなければ、当該端末IDに対応する端末有無情報を「なし」に更新する処理)によって、この確認を定期的に行っている。こうしておくことで、次のような利点がある。即ち、ある遊技機が電源を落としたり、無線モジュールが突然故障したりした場合など、何らかの理由により一度は互いに通信を確立した遊技機間の通信が成立しなくなった場合、その相手が存在している前提で通信をし続けることは無駄であるし、それによりサブ間演出の効果が低下してしまう虞もある。例えば、サブ間演出として、島内の左端の遊技機から順次隣の遊技機にサブ間通信で指令を送り、島内の左端の遊技機から順次特定の登場人物等(キャラクタ)の画像を各遊技機の表示装置41に右方に流れるように表示させるといった連続演出を行う場合、その通信が成立しなくなった遊技機のところで、この連続演出が途切れて中断してしまう虞がある。しかし、上記確認を定期的に行って端末有無情報を更新している構成であれば、途中で存在が「なし」となった遊技機にはサブ間演出の要求をしないようにできるので、例えば電源を落としてしまった台を飛ばして上記連動演出を行うなど、効率良いサブ間演出を確実に行えるようになる。
但し、サブ間演出は遊技の結果に影響を与えないものなので、上述したような弊害(例えば、存在のなくなった相手に演出要求をした結果演出が行われなくなってしまう弊害)があっても問題ないとする思想も成立する。そのような思想に従った仕様の場合には前記端末有効期間タイマは不要である。
ステップD485では、ステップD482でロードした端末IDに対応する端末情報領域のゲーム状態に、受信したゲーム状態のデータ(後述するステップD1178でサブ間コマンドゲーム状態領域にコピーされた値)を格納する。
ステップD474に進むと、ステップD472でロードしたSB_MODEのデータがack応答を示すものか判定し、ack応答を示すものでない場合にはステップD476に進み、ack応答を示すものである場合にはステップD486でack受信フラグをセットした後にステップD481に進む。
ステップD476に進むと、ステップD472でロードしたSB_MODEのデータが演出系コマンドか判定し、演出系コマンドでない場合にはステップD481に進み、演出系コマンドである場合にはステップD477に進む。
ステップD477に進むと、サブ間データ送信中か判定し、サブ間データ送信中ならばステップD481に進み、サブ間データ送信中でなければステップD478乃至D480を順次実行した後にステップD480aに進む。なお、サブ間データ送信とは、サブ間通信におけるデータ送信(例えば、コマンドの送信)である。また本願では、サブ間通信で送受信されるコマンドをサブ間コマンドと称している。
また、ステップD478乃至D480の処理は、受信したサブ間コマンド(特に演出系コマンド)に応じた演出を行うための処理である。
ステップD478では、受信したサブ間コマンドの内容に対応する各種演出のサブ間コマンド、或いはパラメータ等を設定する。
ステップD479では、ステップD478で設定したサブ間コマンドを他の遊技機のサブ基板に送信すべく、サブ間送信開始待ちタイマを設定する。また同様に、ステップD480ではサブ間送信要求フラグをセットする。
なお、演出の内容によっては、サブ間コマンドが発生しない場合もあり得る。このような場合、ステップD478では、サブ間コマンドの設定は行われず、このサブ間コマンドを送信するためのステップD479及びD480の処理も実行されずにステップD480aに進む。
ステップD480aに進むと、ステップD472でロードしたSB_MODEのデータはack応答が必要なコマンドか判定し、ack応答が必要なコマンドでない場合にはステップD481に進み、ack応答が必要なコマンドである場合にはステップD488乃至D491を順次実行した後にステップD481に進む。
ステップD488乃至D491は、ack要求に答えてack応答を返すための処理である。
ステップD488では、受信した送信元IDを送信先IDコマンドとして準備する。
ステップD489では、ack応答のSB_MODE及びSB_ACTのデータを準備する。なお、SB_MODEとSB_ACTは、サブ間コマンドを構成するデータであり、図161に示すパケット構成例(後述する)における8バイト目と9バイト目のデータである。
ステップD490では、サブ間送信データ編集処理(後述する)を実行する。
ステップD491では、サブ間送信開始待ちタイマをクリアする(タイマの値を0にする)。
そしてステップD481に進むと、サブ間受信タスク要求フラグをクリアし、その後リターンする。
なお、ステップD477及びD487が設けられていることにより、サブ間データの送信中である場合には、サブ間コマンド(演出系コマンド)により要求された動作を行わない構成となっている。これは、サブ間コマンドは主基板からのコマンドと違って必ず対応する必要はないし、送信中ということは、他台に要求をしているか、ackを返している最中ということなので、更に他の台からの要求に応える必要はないという思想からである。また、全ての要求に応えていたら演出に矛盾が出たりする可能性も考えられるが、この構成とすれば、このような矛盾が生じる可能性が無くなるという利点があるからである。但し、この思想は基本的な考え方であり、どんな状態でも行いたい演出があった場合には、送信中でも要求された動作を行う態様も有り得る。
〔サブ間送信データ編集処理〕
次に、上述のサブ間受信タスク処理におけるステップD490(或いは前述の受信コマンド別初期化処理1のステップD203c)で実行されるサブ間送信データ編集処理の詳細について図120により説明する。なお、サブ間で送受信されるパケットの構成は後述する図161に示す構成になっているものとする。
このルーチンが開始されると、ステップD501乃至D514を順次実行し、その後リターンする。
ステップD501では、パケット開始コード(STX)のデータ(例えば02H)を、サブ間送信バッファ0に設定する。ここで、サブ間送信バッファ0は、サブ間通信のための送信バッファ領域(サブ間送信バッファ領域)の一部であり、このサブ間送信バッファ領域のアドレス0の位置の記憶領域がサブ間送信バッファ0である(以下、他のアドレス1,2,3,…11についても同様)。
ステップD502では、サブ間送信データ数(SIZE)のデータ(例えば12バイトを示すデータ)を、サブ間送信バッファ1に設定する。
ステップD503では、送信元ID(SID)のデータとして自分の端末ID(当該演出制御装置300或いは当該演出制御装置300の無線モジュール360に付与された端末ID)やグループID(当該パチンコ機が所属するパチンコ機のグループを特定するID)を、サブ間送信バッファ2に設定する。
ステップD504では、送信先ID(DID)のデータ(端末ID及びグループID)を、サブ間送信バッファ3に設定する。なお、送信元ID(SID)と送信先ID(DID)のデータは、それぞれ、1バイトのうちの上位ビットがグループID、下位ビットが端末IDとなっている。
ステップD505では、サブ間メーカコード(MAKER)のデータを、サブ間送信バッファ4に設定する。
ステップD506では、西暦コード(YEAR)のデータを、サブ間送信バッファ5に設定する。
ステップD507では、サブ間機種コード(TYPE)のデータを、サブ間送信バッファ6に設定する。
ステップD508では、サブ間コマンドMODE(SB_MODE)のデータ(例えば、前述のステップD489等で準備されたもの)を、サブ間送信バッファ7に設定する。
ステップD509では、サブ間コマンドACT(SB_ACT)のデータ(例えば、前述のステップD489等で準備されたもの)を、サブ間送信バッファ8に設定する。
ステップD510では、自分のゲーム状態STS(即ち、当該パチンコ機のゲーム状態)のデータ(例えば、今大当りの5ラウンド目である、などを示すデータ)を、サブ間送信バッファ9に設定する。
ステップD511では、サブ間送信バッファ0からサブ間送信バッファ9までの設定データ(即ち、STXからSTSまでのデータ)のチェックサムを算出する。チェックサムの算出方法は特に限定されないが、例えば、1バイトサイズで単なる加算を行ってもよい。
ステップD512では、ステップD511で算出したチェックサムの演算結果(SUM)のデータを、サブ間送信バッファ10に設定する。
ステップD513では、パケット終了コード(ETX)のデータ(例えば03H)を、サブ間送信バッファ11に設定する。
ステップD514では、サブ間送信ポインタ(サブ間送信バッファ領域のアドレスを指定するパラメータ)のデータとしてサブ間送信バッファ0のアドレスを設定する。このサブ間送信ポインタは後述するステップD1192で使用される。
〔サブ間ack応答タスク処理〕
次に、前述のメイン処理におけるステップD22で実行されるサブ間ack応答タスク処理の詳細について図121により説明する。
このルーチンが開始されると、まずステップD521でack待ちタイマの値が0か判定し、0ならばリターンし、0でない場合にはステップD522でack待ちタイマを更新(値を規定値だけ減らす)した後にステップD523に進む。なお、ack待ちタイマは、前述したステップD203dで初期値をセットされる。
ステップD523に進むと、ack応答が受信されたか否か(即ち、ack受信フラグがセットされているか否か)を判定し、受信されたならばステップD524乃至D526を順次実行した後にリターンし、受信されていない場合(ack受信フラグがセットされていない場合)にはステップD524乃至D526を実行しないでリターンする。なお、ack受信フラグは、前述のステップD486でセットされる。
ステップD524では、ack受信フラグをクリアする。
ステップD525では、ack待ちタイマをクリアする。
ステップD526では、ack応答を受信したので、このack応答を待っていた演出に対応するための各種パラメータ設定を実行する。
〔サブ間演出設定処理〕
次に、前述のメイン処理におけるステップD23で実行されるサブ間演出設定処理の詳細について図122により説明する。
このルーチンが開始されると、まずステップD531で、サブ間演出要求ありか否か(即ち、サブ間演出要求フラグがセットされているか否か)を判定し、サブ間演出要求ありならばステップD532に進み、サブ間演出要求なし(サブ間演出要求フラグがクリアされた状態)の場合にはリターンする。サブ間演出要求フラグは、前述のステップD478でセットされる。
ステップD532に進むと、サブ間演出開始待ちタイマの値が0か判定し、0ならばステップD533に進み、0でない場合にはステップD538でサブ間演出開始待ちタイマを更新(値を規定値だけ減らす)した後にリターンする。サブ間演出開始待ちタイマは、前述のステップD203eでセットされるタイマである。
ステップD533に進むと、受信したサブ間コマンドのSB_MODEのデータをロードし、次のステップD534でこのロードしたデータがサブ間連動予告系コマンドであるか判定し、サブ間連動予告系コマンドであればステップD539に進み、サブ間連動予告系コマンドでなければステップD535に進む。なお、サブ間連動予告系コマンドは、サブ間通信を行っている複数のパチンコ機で予告演出を連動させるためのコマンドである。
ステップD539に進むと、ステップD533でロードしたSB_MODEのデータが指定する演出に対応する演出動作テーブルを設定し、その後ステップD537に進む。なお、このステップD539で設定された演出動作テーブルは後述のサブ間連動予告編集処理のステップD924等で使用される。
ステップD535に進むと、ステップD533でロードしたデータが客待ちタイミング調整コマンドであるか判定し、客待ちタイミング調整コマンドであればステップD540に進み、客待ちタイミング調整コマンドでなければステップD536に進む。なお、客待ちタイミング調整コマンドは、サブ間通信を行っている複数のパチンコ機で客待ちデモ表示のタイミングを合わせる演出を行わせるためのコマンドであり、この場合、客待ちAを同期して実行させるコマンドである。
ステップD536に進むと、ステップD533でロードしたデータが正常値なら、このデータに対応する各種演出のパラメータを設定し、その後ステップD537に進む。
ステップD540に進むと、客待ちデモ演出中か否か(即ち、客待ちデモ演出を行っている最中か否か)を判定し、客待ちデモ演出中でなければ客待ちタイミング調整を行うべきでないのでステップD537に進み、客待ちデモ演出中であれば客待ちタイミング調整を行うべくステップD541に進む。
ステップD541では、サブ間コマンドを受信した当該パチンコ機(即ち、自機)のデモステータス(実行している客待ちデモ演出の種類等を示す情報)が図柄表示(前述した客待ちA)であるか判定し、図柄表示(客待ちA)であればステップD543に進み、図柄表示(客待ちA)でなければ(即ち、ムービー表示(客待ちB)実行中であれば)ステップD542に進む。
ステップD542に進むと、デモ制御タイマをムービー即時終了の値に設定し、その後ステップD537に進む。デモ制御タイマをムービー即時終了の値に設定すると、客待ちデモ表示としてのムービー表示(客待ちB)が即時終了し、図柄表示(客待ちA)の客待ちデモ演出が開始される。
ステップD543に進むと、デモ制御タイマを図柄表示開始の値に初期化し、その後ステップD537に進む。デモ制御タイマを図柄表示開始の値に初期化すると、実行中の図柄表示(客待ちA)の客待ちデモ演出が途中で終了され、図柄表示(客待ちA)の客待ちデモ演出が最初から開始される。
上記ステップD542、D543によれば、いずれにせよ、客待ちデモ演出が図柄表示(客待ちA)の最初から開始されることになる。これにより、ステップD535で判定された客待ちタイミング調整コマンドを送信した送信元のパチンコ機と、この客待ちタイミング調整コマンドを受信した自機及び他のパチンコ機とで、客待ちデモ演出が図柄表示(客待ちA)の最初から同期して開始される。なお、こうして開始された客待ちデモ演出は、後述する客待ち表示編集処理によって制御され、規定時間が経過すると図柄表示(客待ちA)からムービー表示(客待ちB)に切り替わり、さらに規定時間が経過するとムービー表示(客待ちB)から図柄表示(客待ちA)に切り替わり、というように、客待ちデモ演出が続行されている限り、2種類の客待ちデモ演出が交互に実行される。
そしてステップD537では、サブ間演出要求フラグをクリアし、その後リターンする。
なお本例では、このように、予告演出を連動させるものと、客待ちデモ演出のタイミングを合わせる演出の処理を、サブ間演出のための処理の具体例として挙げた。しかし、サブ間演出の内容は、このような態様に限定されず、本例の態様に代えて、或いは本例の態様に加えて、他の内容のサブ間演出を行う構成としてもよい。
本例では、煩雑を避けるために、それら他の種類のサブ間演出の設定処理についてはステップD536でまとめて図示しており、その詳細については図示及び説明を省略する。
〔演出表示編集処理〕
次に、前述のメイン処理におけるステップD24で実行される演出表示編集処理の詳細について図123により説明する。この演出表示編集処理は、メイン処理で説明したように、VDP312に表示装置41での描画内容を指示するための各種コマンドとそのパラメータの設定を行う処理である。この演出表示編集処理ではコマンドがテーブル状に設定され、こうして設定されたコマンドはメイン処理のステップD28(画面描画を指示)でVDP312に順次送信される。
このルーチンが開始されると、ステップD551乃至D569を順次実行し、その後リターンする。
ステップD551では、客待ち表示編集処理(後述する)を実行する。
ステップD552では、描画領域の初期設定を実行する。
ステップD553では、背景編集処理(後述する)を実行する。
ステップD554では、背景予告編集処理(後述する)を実行する。
ステップD555では、図柄編集処理(後述する)を実行する。
ステップD556では、予告編集処理1(後述する)を実行する。
ステップD557では、保留編集処理(後述する)を実行する。
ステップD558では、予告編集処理2(後述する)を実行する。
ステップD559では、サブ間連動予告編集処理(後述する)を実行する。
ステップD560では、縮小図柄編集処理(後述する)を実行する。
ステップD561では、第4図柄編集処理(後述する)を実行する。
ステップD562では、大当りラウンド編集処理(後述する)を実行する。
ステップD563では、描画終了宣言を実行する。描画終了宣言は、1フレーム分の各種編集処理が終了したことを示す情報をVDP312に対して出力する処理である。これにより、1フレーム分の各種編集処理が終了したことがVDP312に報告される。
ステップD564では、後述するステップD767と同様に、左図柄制御領域の先頭アドレスをセットする。
ステップD565では、ステップD564でセットされた先頭アドレスに基づいて変動パラメータ更新処理(後述する)を実行する。
ステップD566では、後述するステップD764と同様に、中図柄制御領域の先頭アドレスをセットする。
ステップD567では、ステップD566でセットされた先頭アドレスに基づいて変動パラメータ更新処理(後述する)を実行する。
ステップD568では、後述するステップD770と同様に、右図柄制御領域の先頭アドレスをセットする。
ステップD569では、ステップD568でセットされた先頭アドレスに基づいて変動パラメータ更新処理(後述する)を実行する。
ここで、ステップD553乃至D561の背景編集処理から第4図柄編集処理までの編集処理が、表示装置41の画面上に表示するキャラクタ等をVDP312に指示するためのコマンド群を設定する処理となる。そして、画面上の奥に表示されるもの程、先に処理を行う。設定したコマンドの順にVDP312に送信され、描画制御が行われるためである。例えば、第4図柄などは変動中は消えてはいけないので最前面に表示させるため、最後に処理が行われる。予告演出にしても、図柄の前で行われるものと、後ろで行われるもの等があるので、数カ所に予告編集処理がある。
なお、このようなフローチャートにした場合、理論上の全レイヤ分、上記編集処理を設けておく必要があるため、機種によって上記編集処理の数も変わることになる。但し、このような構成(処理順によって描画優先順位が決まる構成)に限られるものではなく、例えば、その時の演出に合わせて、処理順を変更するように制御する方法もある。その他、キャラクタ毎に描画優先順位を設定する機能を使用する場合には処理順は関係なくなる。
今回のサブ間予告の例では、演出が目立つように描画優先順位を高くして処理を行った(即ち、サブ間連動予告編集処理は比較的後方のステップD559で実行するようにした)。また、サブ間連動予告の表示によって第4図柄や縮小図柄を隠さないように第4図柄等の編集処理(ステップD560、D561)よりはサブ間連動予告編集処理の優先順位を低くした。但し、このような態様に限定されるものではなく、例えば、サブ間予告として画面奥に影絵のように演出を行ったりする場合も考えられるので、行いたい演出内容に合わせて処理順を変えてもよい。他の表示についても、同様に処理順を変えてもよい。
〔客待ち表示編集処理〕
次に、前述の演出表示編集処理におけるステップD551で実行される客待ち表示編集処理の詳細について図124により説明する。
このルーチンが開始されると、まずステップD571で客待ち表示制御中(即ち、客待ちデモ演出の実行中)であるか判定し、制御中ならばステップD572に進み、制御中でなければリターンする。なお、前述のExModeのデータが客待ちデモを指令するものであるとき、客待ちデモ演出が行われる。
ステップD572に進むと、客待ち演出を初期化すべき状態であるか判定し、客待ち演出を初期化すべき状態であればステップD573乃至D575を順次実行した後にステップD576に進み、客待ち演出を初期化すべき状態でない場合にはステップD573乃至D575を実行しないでステップD576に進む。
客待ち演出を初期化すべき状態とは、客待ちデモ演出以外の他の演出を行っていて客待ちAに切り替えるべき状態であり、具体的には、前述した受信コマンド別初期化処理1のステップD197で設定される客待ちA表示開始の情報が表示制御フラグ領域に設定されていれば、この客待ち演出を初期化すべき状態と判定される。
ステップD573では、客待ち制御ポインタを1だけ増加させる更新を実行する。客待ち制御ポインタは、客待ちデモ用制御テーブルにおける位置を指定するポインタである。この客待ち制御ポインタの初期値は、例えば、前述した受信コマンド別初期化処理1のステップD197又はD198で設定される。
ステップD574では、客待ち制御ポインタに対応するデモ制御タイマを設定する。即ち、その時点の客待ち制御ポインタの値によって指定される客待ちデモ用制御テーブルにおける特定位置に登録されている客待ちデモの情報から、客待ちデモ実行時間の値を読出し、この客待ちデモ実行時間の値をデモ制御タイマの値として設定する。ここでは、具体的には、客待ちAを実行する時間(例えば、30秒)が設定される。デモ制御タイマは、客待ちデモ演出を実行する時間(即ち、客待ちデモ実行時間)をカウントするためのタイマである。
なお、本例の客待ち演出(即ち、客待ちデモ演出)は「停止図柄表示状態」(客待ちA)と「ムービー再生によるデモ表示状態」(客待ちB)を交互に行うのが基本動作である。それぞれの客待ちデモ実行時間は機種により異なり、例えば「停止図柄表示」(客待ちA)を120秒、「ムービー表示」(客待ちB)を30秒といったように設定される。
ステップD575では、客待ちAを開始するので、デモステータス(客待ちデモ演出の種類や状態等を示す情報)として図柄表示(客待ちA)を示すデータを設定する。
ステップD576に進むと、デモステータスのデータが図柄表示か判定し、図柄表示ならば図柄表示を実行すべくステップD577、D578を順次実行した後にステップD579に進み、図柄表示でない場合には図柄表示を停止すべくステップD586、D587を順次実行した後にステップD579に進む。
ステップD577では、飾り図柄表示フラグをセットする。
ステップD578では、保留表示フラグをセットする。
ステップD586では、飾り図柄表示フラグをクリアする。
ステップD587では、保留表示フラグをクリアする。
ステップD579に進むと、客待ちデモ実行時間を計時するためにデモ制御タイマの値を1だけ減らす更新を実行し、その後ステップD580に進む。
ステップD580に進むと、デモ制御タイマの値が0になったか(即ち、設定された客待ちデモ実行時間が経過したか)判定し、デモ制御タイマの値が0になっている場合にはステップD581乃至D582を順次実行した後にステップD583に進み、デモ制御タイマの値が0でない場合にはリターンする。
ステップD581では、客待ちAから客待ちBに、或いは客待ちBから客待ちAに切り替えるため、デモステータスの値を現在と異なる客待ちデモ演出の種類を示すデータに切替える。
ステップD582では、客待ちデモ演出を進行させるため、客待ち制御ポインタを1だけ増やす更新を実行する。
ステップD583に進むと、客待ち制御ポインタの値が客待ちデモ用制御テーブルにおける最後のデータを示すものか判定し、最後ならば客待ちデモ用制御テーブルの繰り返し位置から客待ちデモ演出を繰り返し実行すべくステップD584で客待ち制御ポインタのデータとして繰り返し位置のポインタ値を設定した後にステップD585に進み、最後でなければステップD584を実行しないでステップD585に進む。
ステップD585に進むと、その時点の客待ち制御ポインタの値に対応するデモ制御タイマを設定し、その後リターンする。
以上の客待ち表示編集処理によれば、客待ち表示制御中(即ち、客待ちデモ演出中)である限り、「停止図柄表示状態」(客待ちA)と「ムービー再生によるデモ表示状態」(客待ちB)とが、それぞれ所定の客待ちデモ実行時間だけ交互に実行される。
なお、図示していないが、客待ちデモ表示における1ループ目のムービー表示中だけBGMを流す(毎回だとうるさいため)ようにしてもよいし、演出ボタン9を押すことで、今の表示をスキップして次の区間に移行できる機能を設けて、客待ちBの表示を見たい時や煩わしい時などに利用できるようにしてもよい。なおこの場合、画面が切り替わり過ぎないように演出ボタン9を一定時間無効にしたり、ダブルクリックのように複数回押しで切り替える構成としてもよい。また、節電のため、一定時間以上客待ち演出が続くと、客待ちデモ演出中の装飾ランプ類の点灯や音の出力をオフにしたり、映像を静止画表示にしたりして電力の消費を押さえる構成としてもよい。その際、液晶パネルの駆動特性に合わせて画像の色を設定すると効果が大きくなる。
〔背景編集処理〕
次に、前述の演出表示編集処理におけるステップD553で実行される背景編集処理の詳細について図125により説明する。
このルーチンが開始されると、まずステップD591で背景表示制御中(即ち、背景表示実行中)か判定し、背景表示制御中でなければリターンし、背景表示制御中ならばステップD592に進む。なお、上記ステップD591の判定は、例えば背景制御ポインタの値としてNULL(設定無し)が設定されているか否かに基づいて行うことができる。例えば背景制御ポインタの値としてNULLが設定されていれば、背景表示制御中でないと判定できる。背景制御ポインタは、後述する背景制御テーブル内のデータを指定するポインタである。
ステップD592に進むと、前述の受信コマンド別初期化処理1又は受信コマンド別初期化処理2で設定された背景情報がNULL(設定無し)でないか判定し、NULLでなければ(即ち、データが設定されていれば)ステップD593乃至D597を順次実行した後にステップD598に進み、NULLであるとステップD593乃至D597を実行しないでステップD598に進む。
なお、「背景情報」には、背景の変更の指示がある場合に新たな演出の背景制御テーブルの例えば先頭アドレスのデータが入っている。例えば、特図の変動表示が行われる場合には、前述のステップD289やD307等でそのための背景情報のデータ(特定の背景制御テーブルを指定する例えば先頭アドレスのデータ)が背景情報として設定される。よってこの群の処理(ステップD593乃至D597)は、新規背景演出を行う場合の初期設定の為の処理となっている。
ステップD593では、背景情報のデータを背景制御ポインタの初期値として設定する。
ステップD594では、背景情報のデータを背景制御ポインタ戻り値として設定する。
ステップD595では、背景情報をNULL(設定無し)とする。
ステップD596では、背景制御ポインタに対応する背景制御タイマを設定する。
ステップD597では、背景切替えありフラグをセットする。
ステップD598に進むと、背景制御データの切替え初期設定(即ち、上記ステップD593乃至D597の処理)を直前に行ったか判定し、行っていればステップD599乃至D602を順次実行した後にステップD603に進み、行っていなければステップD606を実行した後にステップD603に進む。
ステップD606では、背景情報更新判定処理(後述する)を実行する。
ステップD599では、背景番号として、背景制御ポインタに対応する背景CG番号を設定する。ここで、「背景制御ポインタに対応する」とは、「背景制御ポインタによって指定された背景制御テーブル内のデータに対応する」という意味である(以下同様)。また、背景CG番号は、画像ROM322に保存されている画像データ(キャラクタデータ)のうちの背景用の画像データの番号である。
ステップD600では、背景インデックスとして、背景制御ポインタに対応する背景インデックス番号(本例では、背景は原則的に一番奥の0番)を設定する。
ステップD601では、背景制御ポインタに対応する音声出力要求をセットする。
ステップD602では、動画インデックス設定処理(後述する)を実行する。
ステップD603に進むと、背景制御ポインタに基づいて背景の画像タイプが動画か判定し、動画であればステップD607に進み、動画でければステップD604に進む。
ステップD604に進むと、同様に背景の画像タイプが静止画か判定し、静止画であればステップD608に進み、静止画でければステップD605に進む。
ステップD605に進むと、同様に背景の画像タイプが表示オフ(表示無し)か判定し、表示オフであればステップD609に進み、表示オフでければリターンする。
ステップD607では、背景動画データ編集処理(後述する)を実行する。
ステップD608では、背景静止画データ編集処理(後述する)を実行する。
ステップD609では、背景オフデータ編集処理(後述する)を実行する。
〔背景情報更新判定処理〕
次に、前述の背景編集処理におけるステップD606で実行される背景情報更新判定処理の詳細について図126により説明する。
このルーチンが開始されると、まずステップD611で背景制御領域のアドレスをセットしてステップD612に進む。背景制御領域は、背景表示を制御するための背景演出制御データを格納する領域である。
ステップD612に進むと、背景表示制御中(背景表示実行中)か判定し、背景表示制御中でなければリターンし、背景表示制御中ならばステップD613に進む。
ステップD613に進むと、時間制御ありの表示か判定し、時間制御ありの表示であればステップD615に進み、時間制御ありの表示でなければリターンする。時間制御ありの表示とは、主基板からのコマンドに基づく変更の指示がなくても、時間の経過により変更する表示である。
ステップD615に進むと、前回の背景変更からの時間を計時する表示タイマの値を1だけ減らす更新を行い、ステップD616に進む。
ステップD616に進むと、表示タイマがタイムアップしたか判定し、タイムアップしたならばステップD617で背景制御ポインタの値を1だけ増加させる更新を実行した後にステップD618に進み、タイムアップしていない場合にはリターンする。
ステップD618に進むと、背景制御ポインタによって指定されている背景制御テーブル内のデータにおいて、背景表示の状態を表す表示ステータスコードが客待ち中の図柄表示系コードであるか判定し、客待ち中の図柄表示系コードであるとステップD619に進み、客待ち中の図柄表示系コードでなければステップD631に進む。
ステップD619に進むと、前記表示ステータスコードが客待ち図柄表示(前述の客待ちAの表示)であるか判定し、客待ち図柄表示であるとステップD620に進み、客待ち図柄表示でなければステップD628に進む。
ステップD620に進むと、図柄表示フラグ及び保留表示フラグをセットし、次にステップD621で背景制御ポインタを1だけ増加させる更新を実行し、その後ステップD631に進む。
ステップD628に進むと、図柄表示フラグ及び保留表示フラグをクリアし、次にステップD629で背景制御ポインタを1だけ増加させる更新を実行し、その後ステップD631に進む。。
ステップD631に進むと、前記表示ステータスコードが通常更新であるか判定し、通常更新であるとステップD634を実行した後にリターンし、通常更新でなければステップD632に進む。
ステップD634では、背景制御ポインタのポインタ位置の背景演出制御データを背景制御領域に格納し、その後リターンする。
ステップD632に進むと、前記表示ステータスコードが戻り位置に戻るであるか判定し、戻り位置に戻るであるとステップD635、D636を順次実行した後にリターンし、戻り位置に戻るでなければステップD633に進む。
ステップD635では、背景制御ポインタの値(ポインタ値)として背景制御ポインタ戻り値を設定する。ステップD636では、背景制御ポインタのポインタ位置の背景演出制御データ(即ち、戻り値に対応する制御データ)を背景制御領域に格納し、その後リターンする。
ステップD633に進むと、前記表示ステータスコードが背景演出終了であるか判定し、背景演出終了であるとステップD637で背景制御ポインタの値としてNULL(設定無し)を設定した後にリターンし、背景演出終了でなければリターンする。
以上説明したルーチンによれば、時間制御ありの場合の背景表示の更新が実現される。
〔動画インデックス設定処理〕
次に、前述の背景編集処理におけるステップD602で実行される動画インデックス設定処理の詳細について図127により説明する。
このルーチンが開始されると、まずステップD641で背景制御ポインタに基づいて背景の画像タイプが動画か判定し、動画であればステップD642に進み、動画でなければ本ルーチンの処理は不要であるためリターンする。
ステップD642に進むと、圧縮展開停止中(圧縮された動画データを展開する動作を停止中)か否か判定し、圧縮展開停止中でなければこのステップD642を繰り返し実行し、圧縮展開停止中であればステップD643乃至D650を順次実行してリターンする。即ち、ステップD643乃至D650の処理は、圧縮展開停止中に実行する。
ステップD643では、背景CG番号(前述のステップD599で設定された背景番号)に対応する幅、高さデータをセットする。
ステップD644では、前記ステップD600で設定された背景インデックス番号をロードする。VDP312により1画面上に配置できるのは例えば128個のキャラクタ(ムービー、背景画像、図柄等含む)であり、これら128個のキャラクタに通し番号(インデックス又はインデックス番号という)が付与される。背景画像の場合のインデックス番号(即ち、背景インデックス番号)には、一番目(一番奥)のインデックスとして基本的に0がセットされる。但し、この時点では描画されないので対象の背景データは無効状態フラグがセットされる。
なお、一般に「キャラクタ」とは、性質や性格、或いは性質や性格を有する登場人物や動物等を意味し、コンピュータ用語としては文字を意味する場合もある。しかし本願では、特にVDPを使った画像表示制御の説明においては、一連のムービー、背景画像、図柄の画像、登場人物の画像等のまとまりのある静止画又は動画をキャラクタと称し、またそのような画像データ(静止画又は動画のデータ)をキャラクタデータと称する場合がある。
ステップD645では、VRAMインデックステーブル設定処理(説明省略)を実行する。
ステップD646では、デコード回路(圧縮データ伸長回路604)の初期化を指示する。
ステップD647では、背景動画表示のためのストリームデータの開始アドレスを設定する。
ステップD648では、画像展開領域(圧縮されたキャラクタのデータを展開するための領域)のインデックスを設定する。なお、展開領域は例えば0〜2の3領域あり、そのうちのいくつの領域を使用するのかを、このステップD648の処理で指定する。ムービーの場合、ムービーの構成の仕方で何領域を使用するかが変わるが、Iフレームのみなら1領域、I,Pフレームなら2領域、I,P,Bフレームの構成なら3領域を使用する。設定するインデックスは前記のインデックス番号0〜2の値となる。I,P,Bフレームは、フレーム間予測による動画圧縮技術における用語である。
ステップD649では、実行オプションを設定する。実行オプションは、動画再生に関するVDP内部の各種設定を指示するものである。
ステップD650では、画像展開サブ領域の開始アドレスを設定する。画像展開サブ領域は、画像の展開に補助的に使われるメモリ領域である。
〔背景動画データ編集処理〕
次に、前述の背景編集処理におけるステップD607で実行される背景動画データ編集処理の詳細について図128により説明する。
このルーチンが開始されると、ステップD661乃至D665を順次実行した後にリターンする。
ステップD661では、VDP312に描画を指示しようとしている画像データ(キャラクタデータ)の前述のインデックスを設定する。
ステップD662では、上記画像データの属性を設定する。ここでは、画像データの基本情報(色数、カラーパレット、座標、その他)を設定する。
ステップD663では、上記画像データの表示に使用する描画エフェクト(透明度の設定、奥行き情報、その他)を設定する。
ステップD664では、スプライトを仮想描画空間に貼り付ける。これは、上記画像をいわゆるスプライト描画により表示するための処理である。
ステップD665では、圧縮展開要求フラグをセットする。これは、動画が圧縮されているので、VDP312に展開を要求するための処理である。
〔背景静止画データ編集処理〕
次に、前述の背景編集処理におけるステップD608で実行される背景静止画データ編集処理の詳細について図129により説明する。
このルーチンが開始されると、ステップD671乃至D674を順次実行した後にリターンする。
ステップD671では、描画しようとしている画像データ(静止画)のVRAMへのロードをVDP312に指示する。なお、キャラクタデータ(いわゆるキャラデータ)は圧縮されているので、VRAMに展開してから作業を行う。画像データを指定すればVDP312が自動的にVRAMに展開する。
ステップD672では、上記画像データの属性を設定する。ここでは、画像の基本情報(色数、カラーパレット、座標、その他)を設定する。
ステップD673では、上記画像の表示に使用する描画エフェクト(透明度の設定、奥行き情報、その他)を設定する。
ステップD674では、スプライトを仮想描画空間に貼り付ける。即ち、VRAM上に展開されたキャラデータをVDP312のフレームバッファに貼り付ける。これは、上記画像をいわゆるスプライト描画により表示するための処理である。
〔背景オフデータ編集処理〕
次に、前述の背景編集処理におけるステップD609で実行される背景オフデータ編集処理の詳細について図130により説明する。
このルーチンが開始されると、ステップD681乃至D683を順次実行した後にリターンする。
ステップD681では、画面の塗りつぶし色を設定する。
ステップD682では、描画エフェクトを設定する。
ステップD683では、画面を塗りつぶすためのスプライトを仮想描画空間に貼り付ける。
以上のステップD681乃至D683の処理は、キャラクタROM(画像ROM322)内のデータ(即ち、キャラクタデータ)を使用せず、VDP312の機能(四角形描画等)を使用して描画を行う処理である。この機能は、白や黒で画面全体がフェードイン、フェードアウトする時などに有効である。
〔背景予告編集処理〕
次に、前述の演出表示編集処理におけるステップD554で実行される背景予告編集処理の詳細について図131により説明する。このルーチンでは、背景の前面であり、特図の後面である位置に表示される予告キャラクタの表示設定を行う。つまり、背景内において行われる予告の編集を行う。
このルーチンが開始されると、まずステップD691で背景予告表示制御中か判定し、背景予告表示制御中でなければ(即ち、背景予告演出を実行中でなければ)リターンし、背景予告表示制御中ならば(即ち、背景予告演出を実行中であれば)ステップD692で背景予告情報領域のアドレスをセットしてステップD693に進む。
ここで、背景予告情報領域は、前述の受信コマンド別初期化処理2(特に、乱数抽選処理A、B、C、予告演出設定処理1、2)によって背景予告表示に使用する背景予告データ(後述する予告制御テーブル内の例えば行を指定するアドレス情報)が設定される領域である。ここで、背景予告データは、原則的に、主基板からのコマンドに対応した変動パターンのシナリオテーブルや、左・中・右図柄の詳細な変動テーブル内に定義され、特図の動きとリンクしたタイミングで背景予告情報領域に書き込まれる構成となっている。あるタイミングで行われる予告演出にも複数種類あるが、前述の乱数抽選処理(乱数抽選処理A,B,C等)で決定された予告データ値を使用し、事前に選出してある演出を行えるようしている。
ステップD693に進むと、背景予告情報領域に上記背景予告データの設定があるか判定し、背景予告データの設定があれば当該背景予告データに基づいてステップD694、D695を順次実行した後にリターンし、背景予告データの設定がなければステップD694、D695を実行しないでリターンする。
ステップD694では、予告情報更新判定処理(後述する)を実行する。ステップD695では、予告表示データ編集処理(後述する)を実行する。
〔予告情報更新判定処理〕
次に、前述の背景予告編集処理におけるステップD694(或いは、後述する予告編集処理1,2のステップD864、D914等)で実行される予告情報更新判定処理の詳細について図132、図133により説明する。
このルーチンが開始されると、まずステップD701で予告制御領域(ステップD692の背景予告情報領域に相当)に入力されている背景予告データが示す予告制御テーブルポインタのデータをロードしてステップD702に進む。
ここで、予告制御テーブルポインタのデータとは、予告演出を制御するためのテーブル状の制御データ(以下、予告制御テーブルという)が格納されているアドレス(例えば先頭アドレス)である。つまり、予告制御テーブルポインタのデータが決まると、このデータに対応して、複数ある予告制御テーブルのうちの一つが決まり(選択され)、さらに当該予告制御テーブル内の特定の位置(行)が指定されることになる。また、ポインタとは、テーブルアドレスなどのアドレスのデータが格納されるRAM(本例ではRAM311a)の記憶領域を意味する。また、予告制御テーブルなどの制御データはROM(本例ではPROM321)に記憶されている。上記予告制御テーブルポインタには、予告制御テーブルのデータが記憶されたROMの記憶領域のアドレスが格納される。
そして、上記予告制御テーブルには、各種のデータ種別(例えば、キャラクタの種類等を指定するための画像パターンテーブルアドレス、キャラクタの表示位置を指定するための座標テーブルアドレス、キャラクタの透過性を指定するための透過テーブルアドレスなど)があり、これらデータ種別毎に進行順にデータ(パラメータやテーブルアドレス等のデータ)が複数設定されており、これらデータを進行順に適宜参照して演出が行われる。そして、この予告制御テーブルに設定されているデータがテーブルアドレス(テーブルのデータが記憶された記憶領域を示す情報)である場合には、さらにこのテーブルアドレスのデータ(即ちアドレス)が示す領域に該当種別の制御データテーブル(例えば、座標テーブル、画像パターンテーブル、透過テーブル)があり、この制御データテーブルを参照して演出が行われる。また、この予告制御テーブルは、予め異なるものが複数登録されており、演出の種類や、演出中の各区間(シナリオ)に対して、何れかの予告制御テーブルが適宜選択されて使用される。その際、どの予告制御テーブルを使用するのかを指定するのが予告制御テーブルポインタのデータ(即ち、予告制御テーブルポインタという記憶領域に格納されているデータ)である。以下、例えば「予告制御テーブルポインタが指定する」といった記載は、詳細には、予告制御テーブルポインタのデータが指定するという意味である。
なお、予告制御テーブルを指定するポインタとして予告制御テーブルポインタがあるのと同様に、画像パターンテーブルを指定するポインタとして画像パターン制御ポインタがあり、座標テーブルを指定するポインタとして座標制御ポインタがあり、透過テーブルを指定するポインタとして透過制御ポインタがある。
ステップD702に進むと、ステップD701でロードした予告制御テーブルポインタが指定する予告制御テーブルでは、予告ステータスが予告制御継続となっているか判定し、予告制御継続でなければステップD721に進み、予告制御継続ならばステップD703に進む。
ステップD703に進むと、予告表示開始ディレイタイマの値が0より大きいか判定し、0より大きい場合にはステップD704で予告表示開始ディレイタイマの値を1だけ減らす更新を実行した後にステップD705に進み、0より大きくない場合(0以下の場合)にはステップD706に進む。
ステップD705では、予告表示開始ディレイタイマがタイムアップしたか(値が0になったか)判定し、タイムアップした場合にはステップD715で予告用サウンド領域に演出に対応する音声番号を設定した後にリターンし、タイムアップしていない場合にはステップD706に進む。
なお、予告演出の反映を基準時間から送らせたい場合に、予告表示開始ディレイタイマがセットされる(本例では、後述するステップD725で設定される)。このディレイタイマがセットされていない時(0の時)は、基準時間通りに演出が行われる。例えば、ステップアップ予告1段階目等、演出が行われるタイミングは基本的に機種毎にほぼ決まっている。これは、毎回バラバラのタイミングでは、予測ができないので反って興趣が低下してしまうのを防止するためである。但し、同じSU1演出でも、振り分けによって出現するキャラクタの種類等を変えて、信頼度を変化させたりして遊技の興趣を高めており、基本同一タイミングの演出でも演出内容によって演出時間を異ならせたい場合が多々あると考えられ、このような場合に、上記予告表示開始ディレイタイマによれば、演出の開始時間を微妙に調整できるし、演出終了のタイミングなどを合わせることもできる。
また、ステップD715は、予告開始タイミングで音を鳴らし始めるための処理である。ステップD715に進む場合は、予告表示開始ディレイタイマがタイムアップしたので、予告演出が開始されるが、その開始タイミングで音を鳴らしはじめるための処理である。但し、予告の種類によっては、音の出力を要求しない場合もあり、その場合にはこのステップD715の処理はスキップされる。
ステップD706では、表示フレームカウンタの値が0以上か判定し、0以上ならばステップD707、D708を順次実行してステップD709に進み、0以上でなければリターンする。
ここで、表示フレームカウンタについて説明する。1つの予告演出中においてもシナリオがあり、その予告演出の各区間毎に時間値を設定する必要がある。表示フレームカウンタはその各区間の時間値の残時間をカウントするカウンタである。この表示フレームカウンタの値が0以上である間(即ち、前記残時間がある間)は、キャラクタの種類や表示座標等を毎フレーム更新してゆく必要があり、そのための処理がステップD707以降の処理である。
ステップD707では、現在実行している予告演出が最終データに達していないなら画像パターン制御ポインタを1だけ増やす更新(即ち、前述した予告制御テーブルにおいて進行順に並んだ次のデータへの切り替え、以下他の制御ポインタについて同様)を実行する。
ステップD708では、現在実行している予告演出が最終データに達していないなら座標制御ポインタを1だけ増やす更新を実行する。
ステップD709に進むと、現在実行している予告演出に透過テーブル(テーブル状の透過データ)の設定があるか判定し、透過テーブルの設定があればステップD710に進み、透過テーブルの設定がなければステップD711に進む。
ステップD710に進むと、現在実行している予告演出が最終データに達していないなら透過制御ポインタを1だけ増やす更新を実行し、その後ステップD711に進む。
ステップD711では、表示フレームカウンタの値が0より大きいか判定し、0より大きいとステップD712で表示フレームカウンタの値を1だけ減らす更新を実行した後にステップD713に進み、0より大きくない場合にはステップD712を実行しないでステップD713に進む。
ステップD713に進むと、表示フレームカウンタの値が0か判定し、0ならばステップD714で予告制御テーブルポインタの値を1だけ増やす更新を実行した後にステップD721に進み、0でない場合にはリターンする。ここでは、表示フレームカウンタ=0の時に、次のシナリオに移行するために予告制御テーブルポインタを更新している。予告制御テーブルにはシナリオの流れが定義されており、予告制御テーブルポインタの値を1増やす更新により、予告制御テーブルポインタが指定する予告制御テーブル内の位置(行)が次のものに切り替る。
ステップD721に進むと、前記予告ステータスは初期化となっているか判定し、初期化でなければステップD722に進み、初期化ならばステップD732、D733を順次実行した後にステップD725に進む。
ステップD732では、予告制御テーブルポインタを1だけ増やす更新を実行する。
ステップD733では、その時点での予告制御テーブルポインタの値を、テーブルポインタ戻り値として設定する。
ステップD722に進むと、前記予告ステータスは通常更新となっているか判定し、通常更新でなければステップD723に進み、通常更新ならばステップD725に進む。
ステップD723に進むと、前記予告ステータスは戻り位置に戻るとなっているか判定し、戻り位置に戻るでなければステップD724に進み、戻り位置に戻るならばステップD734を実行した後にステップD725に進む。
ステップD734では、制御テーブルポインタ戻り値(ステップD733で設定したテーブルポインタ戻り値)を、予告制御テーブルポインタの値として設定する。
ステップD724に進むと、前記予告ステータスは予告演出終了となっているか判定し、予告演出終了でなければステップD725に進み、予告演出終了ならばステップD735で予告制御テーブルポインタにNULLを設定した後にステップD725に進む。予告制御テーブルポインタにNULLが設定されると、予告演出の実行は終了する。
ステップD725に進むと、予告表示開始ディレイタイマを設定し、次にステップD726で予告表示フレームカウンタ(前述の表示フレームカウンタ)を設定した後にステップD727に進む。
ステップD727に進むと、予告表示開始ディレイタイマの値が0か判定し、0でない場合にはステップD729に進み、0ならばステップD728で対応する音声の出力要求をセットしてステップD729に進む。これは、ディレイタイマ=0の場合、予告演出が直ちに開始されるため、すぐに音を鳴らしはじめるための処理である。予告の種類によっては、音の出力を要求しない構成としてもよい。
ステップD729に進むと、画像パターン制御ポインタを設定し、次にステップD730で座標制御ポインタを設定し、次にステップD731で透過制御ポインタを設定し、その後リターンする。ここでは、新たな演出(シナリオ継続を含む)を行うことになるので、その演出に対応した新たな制御データテーブルを指定する必要がある。これらステップD729乃至D731は、その新たな制御データテーブルの先頭アドレスを設定する処理である。
〔予告表示データ編集処理〕
次に、前述の背景予告編集処理におけるステップD695(或いは、後述する予告編集処理1,2のステップD865、D915等)で実行される予告表示データ編集処理の詳細について図134により説明する。本ルーチンは、予告演出のキャラクタ(ムービー等も含む。キャラROM(画像ROM322)内に保存された画像を指す)の描画指示コマンド(VDP312に対するコマンド)を作る処理である。次図以降(図135乃至図147)の処理も同様である。
このルーチンが開始されると、まずステップD741で、予告表示開始ディレイタイマの値が0より大きいか判定し、0より大きい場合にはリターンし、0より大きくない場合(0以下の場合)にはステップD742に進む。
ステップD742では、画像パターン制御ポインタが指定する画像パターンテーブルのデータがNULL(設定無し)か判定し、NULLである場合にはリターンし、NULLでない場合にはステップD743乃至ステップD745を順次実行した後にステップD746に進む。
ステップD743では、画像データ(即ち、キャラクタデータ)の各種パラメータ(画像データのID、幅、高さなど)を前記画像パターンテーブルから取得する。
ステップD744では、画像データの座標データを、座標制御ポインタが指定する座標テーブルから取得する。
ステップD745では、透過なしの透過データをセットする。透過データは、必要に応じ後述するステップD747で設定されるが、ここでは透過データのデフォルト値として、透過なしを設定する。
ステップD746では、透過制御ポインタが指定する透過テーブルのデータがNULL(設定無し)か判定し、NULLである場合にはステップD748に進み、NULLでない場合にはステップD747を実行した後にステップD748に進む。
ステップD747では、透過データ(ステップD745でいったん透過なしに設定されているもの)を前記透過テーブルに対応したデータ(透過なしも有り得る)に差替える。
ステップD748に進むと、ステップD748乃至D752を順次実行した後にリターンする。
ステップD748では、ステップD743で取得したパラメータに対応する画像データ(キャラクタデータ)のVRAMへのロードを指示する。
ステップD749では、ステップD743で取得したパラメータやステップD744で取得した座標データに従って前記画像データの属性(色数、カラーパレット、座標等)を設定する。
ステップD750では、前記透過データに従って前記画像データの透過パラメータ(透過性のある画像にする透過制御を行うか否かや、透過性の程度など)を設定する。
ステップD751では、前記画像データの描画エフェクト(透明度の設定、奥行き情報他)を設定する。
ステップD752では、スプライトを仮想描画空間に貼り付ける。これは、上記画像(キャラクタ)をいわゆるスプライト描画により表示するための処理である。
〔図柄編集処理〕
次に、前述の演出表示編集処理におけるステップD555で実行される図柄編集処理の詳細について図135により説明する。
このルーチンが開始されると、まずステップD761で、図柄変動テーブル領域のデータ(図柄変動テーブルの例えば先頭アドレスの情報)がNULL(設定無し)か判定し、NULLである場合にはリターンし、NULLでない場合にはステップD762を実行した後にステップD763に進む。ここで、ステップD761では、後述するステップD781の「左図柄変動テーブル領域」、ステップD782の「左図柄制御領域内の変動テーブル領域」、ステップD785の「中図柄変動テーブル領域」、ステップD786の「中図柄制御領域内の変動テーブル領域」、ステップD789の「右図柄変動テーブル領域」、ステップD790の「右図柄制御領域内の変動テーブル領域」の全6領域が全てNULLかをチェックしている。
ステップD762では、上記図柄変動テーブル領域のデータによって指定される図柄変動テーブルのデータに基づいて図柄情報展開処理(後述する)を実行する。
なお、図柄変動テーブルは、後述する図柄制御テーブルを指定するためのアドレスのデータがテーブル状に複数設定されてなるものである。前述の受信コマンド別初期化処理1や受信コマンド別初期化処理2では、複数ある図柄変動テーブルの中から主基板からのコマンドに対応したテーブルを選択し、このテーブル上のどの行(レコード)を使用するかは、乱数抽選処理(前述した乱数抽選処理A,B,C)で決定している。そして、このように決定された図柄変動テーブルとその行(レコード)を示す情報が、上記図柄変動テーブル領域のデータとして書き込まれる構成となっている。この図柄変動テーブルには、序盤変動テーブル、前半変動テーブル、後半変動テーブルなどの種類がある。また、この図柄変動テーブルには、左図柄変動テーブル、中図柄変動テーブル、及び右図柄変動テーブルが含まれる。
また、図柄変動テーブルのデータが格納されるポインタ(即ち、図柄制御テーブルを指定するポインタ)として、図柄変動テーブルポインタがある。ここで、図柄変動テーブルのデータとは、図柄変動(表示装置41における特図(飾り図柄)の変動表示)を制御するための例えばテーブル状の制御データ(以下、図柄制御テーブルという)が格納されているアドレス(例えば先頭アドレス)である。つまり、図柄変動テーブルポインタのデータが決まると、このデータに対して、複数ある図柄制御テーブルのうちの一つが決まり(選択され)、さらに当該図柄制御テーブル内の特定の位置(行)が指定されることになる。この図柄制御テーブルには、各種のデータ種別(例えば、図柄の動作パターン、図柄更新情報、制御フレーム数、制御リピート数、図柄の表示位置を指定するための座標テーブルアドレス(X座標テーブルアドレスとY座標テーブルアドレス)、図柄の透過性を指定するための透過テーブルアドレスなど)があり、これらデータ種別毎に進行順にデータ(パラメータやテーブルアドレスやパターンのデータ)が複数設定されており、これらデータを進行順に適宜参照して図柄変動が行われる。そして、この図柄制御テーブルに設定されているデータがテーブルアドレスである場合には、さらにこのテーブルアドレスのデータ(即ちアドレス)が示す領域に該当種別の制御データテーブル(例えば、X座標テーブル、Y座標テーブル、透過テーブル)があり、この制御データテーブルを参照して図柄変動が行われる。
なお、上記座標テーブル(X座標テーブル、Y座標テーブル)を指定するポインタとして座標制御ポインタ(X座標テーブルポインタとY座標テーブルポインタ)があり、上記透過テーブルを指定するポインタとして透過テーブルポインタがある。
ステップD763に進むと、ステップD762の処理結果に基づいて飾り図柄表示(いわゆる特図の演出用の表示)の実行があるか判定し、無ければリターンし、あればステップD764乃至D772を順次実行した後にリターンする。このステップD763では、例えば各図柄変動テーブルのデータが全てNULL(後述するステップD781、D785、D789の判定結果が全てYES)の場合には、飾り図柄表示の実行は無いという判定結果になってリターンすることになる。
ステップD764では、中図柄制御領域の先頭アドレスを設定する。中図柄制御領域は、中図柄用に指定された図柄制御テーブルのアドレスが、前記図柄情報展開処理(後述するステップD786)で格納される領域である。つまりこのステップD764では、中図柄の表示のために、中図柄用に指定された図柄制御テーブルの先頭アドレスが設定される。なお、中図柄の図柄制御テーブルは、前述した図柄変動テーブルポインタのデータ(詳しくは、中図柄変動テーブルのデータ)によって指定(選択)される。
また、図柄制御領域(中図柄制御領域、左図柄制御領域、及び右図柄制御領域)は、テーブルアドレス(図柄変動テーブルポインタのデータ)だけではなく、表示図柄番号、停止図柄番号、現在のフレームカウンタ、座標テーブルのテーブルポインタ等のデータが格納されるRAM(本例ではCPU311内のRAM)内の記憶エリアのグループ(構造体)であり、複数バイトで構成されている。このため、各図柄制御領域内は、複数の領域に分けれらるが、このうち、テーブルアドレス(図柄変動テーブルポインタのデータ)を記憶する領域を「変動テーブル領域」という。この「変動テーブル領域」としては、序盤変動テーブル用、前半変動テーブル用、後半変動テーブル用がそれぞれ設けられており、合計3領域ある。また、各図柄制御領域内において、座標テーブルのテーブルポインタ(X座標テーブルポインタ、Y座標テーブルポインタ)のデータ、或いは、透過テーブルのテーブルポインタ(透過テーブルポインタ)のデータを記憶する領域を、それぞれ、「X座標テーブル領域」、「Y座標テーブル領域」、「透過テーブル領域」という。
ステップD765では、上記ステップD764の設定に基づいて中図柄について現図柄表示編集処理(後述する)を実行し、ステップD766では、同様に中図柄について次図柄表示編集処理(後述する)を実行する。
ステップD767では、左図柄制御領域の先頭アドレスを設定する。左図柄制御領域は、左図柄用に指定された図柄制御テーブルのアドレスが、前記図柄情報展開処理(後述するステップD782)で格納される領域である。つまりこのステップD767では、左図柄の表示のために、左図柄用に指定された図柄制御テーブルの先頭アドレスが設定される。なお、左図柄の図柄制御テーブルは、前述した図柄変動テーブルポインタのデータ(詳しくは、左図柄変動テーブルのデータ)によって指定(選択)される。
ステップD768では、上記ステップD767の設定に基づいて左図柄について現図柄表示編集処理(後述する)を実行し、ステップD769では、同様に左図柄について次図柄表示編集処理(後述する)を実行する。
ステップD770では、右図柄制御領域の先頭アドレスを設定する。右図柄制御領域は、右図柄用に指定された図柄制御テーブルのアドレスが、前記図柄情報展開処理(後述するステップD790)で格納される領域である。つまりこのステップD770では、右図柄の表示のために、右図柄用に指定された図柄制御テーブルの先頭アドレスが設定される。なお、右図柄の図柄制御テーブルは、前述した図柄変動テーブルポインタのデータ(詳しくは、右図柄変動テーブルのデータ)によって指定(選択)される。
ステップD771では、上記ステップD770の設定に基づいて右図柄について現図柄表示編集処理(後述する)を実行し、ステップD772では、同様に右図柄について次図柄表示編集処理(後述する)を実行する。
なお、「現図柄」とは、スクロール方向の所定位置(例えば中央)に表示されている特図の図柄であり、「次図柄」とは、現図柄の次に前記所定位置に表示される特図の図柄であり、また「前図柄」は、現図柄の前に前記所定位置に表示されていた特図の図柄である。本ルーチン(及び関連する他のルーチン)では、説明を簡単にするために「現図柄」と「次図柄」の処理だけを図示して説明しているが、同一列の図柄が画面上に3図柄分見える機種である場合には、「前図柄」の表示編集処理も同様に実行する必要がある。この点は、機種仕様によって臨機応変に対応する必要があり、各種態様があり得る。例えば、4図柄以上見えることがある機種であれば、更に表示編集処理を増やすことになる。
〔図柄情報展開処理〕
次に、前述の図柄編集処理におけるステップD762で実行される図柄情報展開処理の詳細について図136により説明する。
このルーチンが開始されると、まずステップD781で、左図柄変動テーブル領域のデータ(即ち、左図柄用の図柄制御テーブルを指定するアドレス情報)がNULL(設定無し)か判定し、NULLである場合にはステップD785に進み、NULLでない場合にはステップD782乃至D784を順次実行した後にステップD785に進む。
ステップD782では、左図柄変動テーブル領域のデータが示すテーブルアドレスを左図柄制御領域に設定する。詳しくは、左図柄制御領域内の各変動テーブル領域(序盤変動テーブル用、前半変動テーブル用、後半変動テーブル用)に、図柄変動テーブル領域のデータが示すテーブルアドレス(序盤変動テーブルにおける左図柄変動テーブルのアドレス、前半変動テーブルにおける左図柄変動テーブルのアドレス、後半変動テーブルにおける左図柄変動テーブルのアドレス)をそれぞれ設定する。
ステップD783では、左図柄変動テーブル領域にNULLを設定する。
ステップD784では、ステップD782で左図柄制御領域に設定されたテーブルアドレスによって指定された左図柄用の図柄制御テーブルから、左図柄の各種制御パラメータを取得して格納する。
ここで、図柄の各種制御パラメータには、図柄制御テーブルの説明で既述したように、動作パターン、図柄更新情報、制御フレーム数、制御リピート数、X座標テーブルポインタ、Y座標テーブルポインタ、透過テーブルポインタなどがある。ここで、図柄更新情報は図柄を更新するか否かを制御する情報であり、制御フレーム数及び制御リピート数は後述する変動パラメータ更新処理で使用するパラメータである。
ステップD785に進むと、中図柄変動テーブル領域のデータ(即ち、中図柄用の図柄制御テーブルを指定するアドレス情報)がNULL(設定無し)か判定し、NULLである場合にはステップD789に進み、NULLでない場合にはステップD786乃至D788を順次実行した後にステップD789に進む。
ステップD786では、中図柄変動テーブル領域のデータが示すテーブルアドレスを中図柄制御領域に設定する。詳しくは、中図柄制御領域内の各変動テーブル領域(序盤変動テーブル用、前半変動テーブル用、後半変動テーブル用)に、図柄変動テーブル領域のデータが示すテーブルアドレス(序盤変動テーブルにおける中図柄変動テーブルのアドレス、前半変動テーブルにおける中図柄変動テーブルのアドレス、後半変動テーブルにおける中図柄変動テーブルのアドレス)をそれぞれ設定する。
ステップD787では、中図柄変動テーブル領域にNULLを設定する。
ステップD788では、ステップD786で中図柄制御領域に設定されたテーブルアドレスによって指定された中図柄用の図柄制御テーブルから、中図柄の各種制御パラメータを取得して格納する。
ステップD789に進むと、右図柄変動テーブル領域のデータ(即ち、右図柄用の図柄制御テーブルを指定するアドレス情報)がNULL(設定無し)か判定し、NULLである場合にはリターンし、NULLでない場合にはステップD790乃至D792を順次実行した後にリターンする。
ステップD790では、右図柄変動テーブル領域のデータが示すテーブルアドレスを右図柄制御領域に設定する。詳しくは、右図柄制御領域内の各変動テーブル領域(序盤変動テーブル用、前半変動テーブル用、後半変動テーブル用)に、図柄変動テーブル領域のデータが示すテーブルアドレス(序盤変動テーブルにおける右図柄変動テーブルのアドレス、前半変動テーブルにおける右図柄変動テーブルのアドレス、後半変動テーブルにおける右図柄変動テーブルのアドレス)をそれぞれ設定する。
ステップD791では、右図柄変動テーブル領域にNULLを設定する。
ステップD792では、ステップD790で右図柄制御領域に設定されたテーブルアドレスによって指定された右図柄用の図柄制御テーブルから、右図柄の各種制御パラメータを取得して格納する。
〔現図柄表示編集処理〕
次に、前述の図柄編集処理におけるステップD765、D768、D771で実行される現図柄表示編集処理の詳細について図137により説明する。
このルーチンが開始されると、ステップD801乃至803を順次実行した後にステップD804に進む。
ステップD801では、図柄番号(現図柄として表示装置41に表示されるべき図柄番号)に対応するCG番号(画像データのID)を現図柄のCG番号として設定する。なお、数字のみ図柄の場合には、この設定は後述するステップD821で変更される。
ステップD802では、現図柄について、通常サイズでの幅、高さのデータと、透過なしのデータを設定する。なお、ここでの設定は、デフォルト値としての設定であり、後述するステップD816等が実行されると変更される。
ステップD803では、制御テーブルポインタに対応する図柄制御テーブルにおけるX座標、Y座標のデータ(前述のステップD784等で取得されたX座標テーブルポインタ及びY座標テーブルポインタに対応するデータ)を取得して設定する。なお、ここでの設定は、デフォルト値としての設定であり、後述するステップD817等が実行されると変更される。また、X座標、Y座標のデータとは、表示装置41の画面上における表示位置を決めるデータである。
なお、前記座標データ(X座標、Y座標のデータ)としては、原則的に、1フレーム単位毎の図柄の表示位置のデータ(絶対座標データ)が、座標テーブル(X座標テーブル、Y座標テーブル)上に必要なフレーム数分だけそろって並べられている。ここで、演出時間全体のフレーム数分の座標データを全て羅列した形で定義すれば、そのデータを順次使用するだけで済むので、座標の制御が非常に楽に行える(例えば、制御処理が簡素になる)。しかしこの場合、座標テーブルのデータ量が膨大になってしまうというデメリットがあるので、本実施例では、動きが周期的に繰り返されるような箇所毎にテーブルを分けて定義し、動作に該当するテーブルを適宜選択して使用する構成としている。この構成なら、状況に応じたテーブルを設定する処理や同一の動作を繰り返す制御を行わなくてはならないが、座標データ量を非常に少なくでき、高価なメモリ(ROM)の容量を格段に低減して原価低減に大きく貢献できる等のメリットがある。例えば、図柄が高速に下方向にスクロールを行う期間においてはしばらく同様の動きを繰り返すので、上から下へ移動する際のフレーム数分の座標データを1セット定義した座標テーブルを設けておいて、高速スクロール期間はその座標テーブルを繰り返し使用すれば事足りるのでデータ量が非常に少なくできる。どちらの構成でも図柄の座標制御が可能であるが、既述したように本実施例では後者の構成で制御を行っている。また本実施例では、X座標とY座標のテーブルを分けて定義し、必要に応じたそれぞれのテーブルを選択するようにしている(例えば、左図柄、中図柄、右図柄が揃ってが高速に下方向にスクロールを行う場合、各図柄のX座標は異なるがY座標は同じとなるので、X座標テーブルは図柄毎に異なるテーブルを使用し、Y座標テーブルは同一のテーブルを使用できるので、更なるデータ量の低減が見込める。)が、X座標とY座標、その他表示に関するパラメータを同一テーブルに定義するようにしても構わない。また、絶対座標で制御する例を提示したが、相対座標データ(前回位置からの移動量データ、或いは基準対象物からの距離データ等)で制御する構成としてもよい。以上説明した座標制御の構成(座標テーブルの構成等)については、図柄だけに限定されず、画面上に表示する全てのオブジェクト(キャラクタ)の座標制御についても同様である。
ステップD804では、前述のステップD784等で取得された動作パターンのデータが非表示を示すものか判定し、非表示であれば図柄を表示しないのでリターンし、非表示でなければステップD805に進む。
ステップD805に進むと、前記動作パターンのデータが縮小画面隅表示を示すものか判定し、縮小画面隅表示であればこれ以上の設定は不要であるのでリターンし、縮小画面隅表示でなければステップD806に進む。
ステップD806に進むと、前記動作パターンのデータが拡大表示を示すものか判定し、拡大表示であればステップD816、D817を順次実行した後にステップD809に進み、拡大表示でなければステップD807に進む。
ステップD816では、現図柄について、拡大サイズでの幅、高さデータをセットする。
ステップD817では、現図柄について、拡大時のY座標データを算出して設定する。
ステップD807に進むと、前記動作パターンのデータが通常サイズへの復帰動作を示すものか判定し、通常サイズへの復帰動作であればステップD818、D819を順次実行した後にステップD809に進み、通常サイズへの復帰動作でなければステップD808に進む。
ステップD818では、現図柄について、現サイズに対応する幅、高さデータを算出して設定する。
ステップD819では、現サイズに対応するY座標データを算出して設定する。
ステップD808に進むと、前記動作パターンのデータが数字のみ図柄を示すものか判定し、数字のみ図柄であればステップD820、D821を順次実行した後にステップD809に進み、数字のみ図柄でなければステップD809に進む。
ステップD820では、数字のみ図柄での幅、高さデータをセットする。
ステップD821では、図柄番号に対応する数字のみ図柄のCG番号に変更する。
ステップD809に進むと、現図柄の透過データがNULLでないか判定し、NULLであればステップD811に進み、NULLでなければステップD810で透過データ(前記ステップD784等で設定されたもの)を取得した後にステップD811に進む。ステップD811に進むと、ステップD811乃至D815を順次実行した後にリターンする。
ステップD811では、VRAMへの現図柄の画像データ(ステップD801又はD821で設定されたCG番号に対応するもの)のロードを指示する。
ステップD812では、上記画像データの属性(色数、カラーパレット、座標等)を、ここまでの処理結果に基づいて設定する。
ステップD813では、上記画像データの透過パラメータを透過データに基づいて設定する。
ステップD814では、上記画像データの描画エフェクトを設定する。
ステップD815では、上記画像のスプライトを仮想描画空間に貼り付ける。
以上の処理により、前述のステップD784、D788、D792で格納された各種制御パラメータのデータに対応した「現図柄」(左図柄、中図柄、或いは右図柄)を描画(表示)させるためのVDP312への指令が編集される。
〔次図柄表示編集処理〕
次に、前述の図柄編集処理におけるステップD766、D769、D772で実行される次図柄表示編集処理の詳細について図138により説明する。
このルーチンが開始されると、まずステップD831で、図柄番号(例えばステップD801の現図柄の図柄番号の次の番号)を次図柄の番号としてロードし、その後ステップD832に進む。
ステップD832に進むと、ステップD831でロードした図柄番号に1を加算した番号が図柄番号上限値より大きいか判定し、大きくない場合にはステップD834に進み、大きい場合にはステップD833でロード値(ステップD831でロードした図柄番号)を0に変更した後にステップD834に進む。
ステップD834に進むと、ステップD834乃至D836を順次実行した後にステップD837に進む。
ステップD834では、前記ロード値に対応するCG番号(画像データのID)を次図柄のCG番号として設定する。
ステップD835では、次図柄について、通常サイズでの幅、高さのデータと、透過なしのデータを設定する。なお、ここでの設定は、デフォルト値としての設定であり、後述するステップD849等が実行されると変更される。
ステップD836では、前述の現図柄表示編集処理で設定された現図柄の座標データを基に、次図柄のX座標、Y座標のデータを相対的に算出して設定する。なお、ここでの設定は、デフォルト値としての設定であり、後述するステップD850等が実行されると変更される。
ステップD837では、前述のステップD784等で取得された動作パターンのデータが非表示を示すものか判定し、非表示であれば図柄を表示しないのでリターンし、非表示でなければステップD838に進む。
ステップD838に進むと、前記動作パターンのデータが縮小画面隅表示を示すものか判定し、縮小画面隅表示であればこれ以上の設定は不要であるのでリターンし、縮小画面隅表示でなければステップD839に進む。
ステップD838に進むと、前記動作パターンのデータが数字のみ図柄を示すものか判定し、数字のみ図柄であればこれ以上の設定は不要であるのでリターンし、数字のみ図柄でなければステップD840に進む。
ステップD840に進むと、前記動作パターンのデータが拡大表示を示すものか判定し、拡大表示であればステップD849、D850を順次実行した後にステップD842に進み、拡大表示でなければステップD841に進む。
ステップD849では、次図柄について、拡大サイズでの幅、高さデータをセットする。
ステップD850では、次図柄について、拡大時のY座標データを算出して設定する。
ステップD841に進むと、前記動作パターンのデータが通常サイズへの復帰動作を示すものか判定し、通常サイズへの復帰動作であればステップD851、D852を順次実行した後にステップD842に進み、通常サイズへの復帰動作でなければステップD851、D852を実行しないでステップD842に進む。
ステップD851では、次図柄について、現サイズに対応する幅、高さデータを算出して設定する。
ステップD852では、次図柄について、現サイズに対応するY座標データを算出して設定する。
ステップD842に進むと、次図柄の透過データがNULLでないか判定し、NULLであればステップD844に進み、NULLでなければステップD843で透過データを取得した後にステップD844に進む。ステップD844に進むと、ステップD844乃至D848を順次実行した後にリターンする。
ステップD844では、VRAMへの次図柄の画像データ(ステップD834で設定されたCG番号に対応するもの)のロードを指示する。
ステップD845では、上記画像データの属性(色数、カラーパレット、座標等)を、ここまでの処理結果に基づいて設定する。
ステップD846では、上記画像データの透過パラメータを透過データに基づいて設定する。
ステップD847では、上記画像データの描画エフェクトを設定する。
ステップD848では、上記画像のスプライトを仮想描画空間に貼り付ける。
以上の処理により、前述のステップD784、D788、D792で格納された各種制御パラメータのデータに対応した「現図柄」に対する「次図柄」(左図柄、中図柄、或いは右図柄)を描画(表示)させるためのVDP312への指令が編集される。
〔予告編集処理1〕
次に、前述の演出表示編集処理におけるステップD556で実行される予告編集処理1の詳細について図139により説明する。このルーチンでは、特図の前面であり、保留表示の後面である位置に表示される予告キャラクタの表示設定を行う。
このルーチンが開始されると、まずステップD861で予告表示制御中か判定し、予告表示制御中でなければ(即ち、予告演出を実行中でなければ)リターンし、予告表示制御中ならば(即ち、予告演出を実行中であれば)ステップD862で予告情報領域のアドレスをセットしてステップD863に進む。
ここで、予告情報領域は、例えば前述の受信コマンド別初期化処理2で予告表示に使用する予告データ(予告用の制御テーブルの例えば先頭アドレスの情報)が設定される領域である。
ステップD863に進むと、予告情報領域に上記予告データの設定があるか判定し、予告データの設定があれば当該予告データに基づいてステップD864、D865を順次実行した後にステップD866に進み、予告データの設定がなければ(NULLであれば)ステップD864、D865を実行しないでステップD866に進む。
ステップD864では、前述した予告情報更新判定処理を実行する。ステップD865では、前述した予告表示データ編集処理を実行する。
ステップD866に進むと、次の予告情報領域のアドレスに更新し、次にステップD867で全予告情報領域に対して編集が完了したか判定し、完了したならばリターンし、完了していなければステップD863に戻って処理を繰り返す。
〔保留編集処理〕
次に、前述の演出表示編集処理におけるステップD557で実行される保留編集処理の詳細について図140により説明する。
このルーチンが開始されると、まずステップD871で、特図1の始動記憶の保留表示を実行するための特図1保留表示編集処理(後述する)を実行し、次にステップD872で、特図2の始動記憶の保留表示を実行するための特図2保留表示編集処理を実行し、その後リターンする。なお、特図1保留表示編集処理と特図2保留表示編集処理の違いは、飾り特図の種類の違い(特図1か特図2か)であるので、特図2保留表示編集処理についての説明は省略する。
〔特図1保留表示編集処理〕
次に、前述の保留編集処理におけるステップD871で実行される特図1保留表示編集処理の詳細について図141により説明する。
このルーチンが開始されると、まずステップD881で、保留表示制御中(即ち保留表示実行中)か否か判定し、保留表示制御中であればステップD882を実行した後にステップD883に進み、保留表示制御中でなければリターンする。
ステップD882では、保留画像データの幅、高さデータをセットする。
ステップD883に進むと、numの値を初期値−1から増分1だけ増加させつつ終値4になるまで、ステップD883乃至D895を繰り返し実行し、その後リターンする。即ち、ステップD883ではルーチン開始直後はnumの値を1としてステップD3884に進む。ステップD895では、numの値が4未満である場合にはステップD883に戻り、numの値が4である場合にはリターンする。そしてステップD883に戻ると、numの値を1だけ増加させてステップD884に進む。
なおこの例では、4個の保留表示(実保留)の両側に同型の飾り表示を行うため、ステップD883乃至D895の処理を合計6回繰り返す構成となっている。
以下、ステップD884乃至D894の各処理を説明する。
ステップD884では、保留表示パターン編集処理(後述する)を実行する。
ステップD885では、numの値に対応して、保留表示或いは前記飾り表示のための表示パターンに対応するCG番号を設定する。
ステップD886では、VRAMへの画像データ(上記CG番号のキャラクタデータ)のロードを指示する。
ステップD887では、上記画像データの属性を設定する。
ステップD889では、上記画像データの描画エフェクトを設定する。
ステップD890では、numの値に対応して、上記画像データのX座標、Y座標、幅、高さデータを算出する。
ステップD891では、保留座標の移動(前述した保留表示移動制御)があるか判定し、移動があればステップD892、D893を順次実行した後にステップD894に進み、移動がなければステップD892、D893を実行しないでステップD894に進む。なお、保留表示移動制御は、前述したステップD203、D210、D235、D259、D276等でなしに設定される。
ステップD892では、保留移動テーブルポインタに対応させて上記画像データの座標を変更する。保留移動テーブルポインタは、前述の図柄変動テーブルポインタ等と同様に、保留表示を制御するためのポインタである。
ステップD893では、保留移動テーブルポインタのデータがテーブルの最後でなければ、保留移動テーブルポインタを更新する。
ステップD894では、上記画像データのスプライトを仮想描画空間に貼り付ける。
ステップD895では、前述したように、numの値が4未満である場合にはステップD883に戻り、numの値が4である場合にはリターンする。
〔保留表示パターン編集処理〕
次に、前述の特図1保留表示編集処理におけるステップD884で実行される保留表示パターン編集処理の詳細について図142により説明する。なおこのルーチンは、前述のnumの値に対応する保留表示(或いは飾り表示)1個分について実行される。
このルーチンが開始されると、まずステップD901で、numの値に対応する保留表示(或いは飾り表示)について、保留消灯の表示パターンを設定する。なお、このルーチンで保留消灯の表示パターン(保留がない状態を示すキャラクタ情報)が設定されると保留がない状態を示すキャラクタが表示され、このルーチンの後述するステップD906が実行されると、保留点灯の表示パターン(保留がある状態を示すキャラクタ情報)が設定され、保留がある状態を示すキャラクタが表示される。なお、遊技機の仕様によっては、制御対象となる保留がある場合にのみ保留キャラクタを表示し、制御対象となる保留がない場合には保留キャラクタは非表示とする態様もある。このような態様の場合、保留消灯の表示パターンが設定された時には、このルーチンを抜けた後、対象となる保留数のキャラクタ表示に関する制御を実行しない態様もあり得る。
ステップD901を経るとステップD902に進み、入力パラメータ(numの値)が実保留の範囲か判定する。前述したように実保留は両側を除いた4個であるため、0以上3未満であれば実保留の範囲となる。そして、実保留の範囲でなければ常に消灯でよいのでリターンし、実保留の範囲であればステップD903に進む。
ステップD903に進むと、現在の保留数(主基板からのコマンドにより指令されている始動記憶の保留数の最新値)が、入力パラメータ(numの値)よりも大きいか判定する。numの値よりも大きい場合には、ステップD904に進む。一方、現在の保留数がnumの値以下である場合には、numの値に対応する実保留を点灯させるべきでないのでリターンする。
ステップD904では、入力パラメータ(numの値)に対応する保留情報領域(前述のステップD265の色情報領域に相当)から表示パターンをロードし、次のステップD905の判定でロードした表示パターンが保留消灯ならばリターンし、ロードした表示パターンが保留消灯でなければステップD906に進む。
そしてステップD906に進むと、numの値に対応する保留表示(或いは飾り表示)について、保留通常点灯の表示パターンを設定し、その後リターンする。
ここで、上記保留情報領域には、前述のステップD265の処理によって、主基板からのコマンドにより指令されている始動記憶の保留数の最新値に基づいて、表示パターンのデータ(保留消灯か保留点灯かの情報を含む)が適宜更新して登録されている。
なお、上記ステップD906では、前述のステップD268による設定を用いて、保留表示の点灯色を設定したり、他にも保留表示を通常とは異なるキャラクタ形状に変更するなどして、このような保留表示の違いによる先読み演出(大当り等を予告する演出)を行ってもよい。
〔予告編集処理2〕
次に、前述の演出表示編集処理におけるステップD558で実行される予告編集処理2の詳細について図143により説明する。このルーチンでは、保留表示の前面であり、縮小図柄や第4図柄の後面である位置に表示される予告キャラクタの表示設定を行う。予告として目立たせるためにかなり前面に押し出した演出表示となっているが、縮小図柄や第4図柄よりも後面としているので、この演出を行っている間も遊技者が図柄を視認できるように配慮されている。
このルーチンが開始されると、まずステップD911で前面予告表示制御中(即ち、前面予告演出実行中)か判定し、前面予告表示制御中でなければリターンし、前面予告表示制御中ならばステップD912で前面予告情報領域のアドレスをセットしてステップD913に進む。
ここで、前面予告情報領域は、例えば前述の受信コマンド別初期化処理2で前面予告表示に使用する前面予告データ(前面予告用の制御テーブルの例えば先頭アドレスの情報)が設定される領域である。
ステップD913に進むと、前面予告情報領域に上記前面予告データの設定(例えば、前述のステップD425による設定)があるか判定し、前面予告データの設定があれば当該前面予告データに基づいてステップD914、D915を順次実行した後にリターンし、前面予告データの設定がなければ(即ち、NULLであれば)ステップD914、D915を実行しないでリターンする。
ステップD914では、前述した予告情報更新判定処理を実行する。ステップD915では、前述した予告表示データ編集処理を実行する。
〔サブ間連動予告編集処理〕
次に、前述の演出表示編集処理におけるステップD559で実行されるサブ間連動予告編集処理の詳細について図144により説明する。なお、本実施例ではサブ間連動予告を前面予告(前記予告編集処理2によるもの)より目立たせる意図を持って前面予告の前に表示されるようにこのルーチンを配置しているが、サブ間連動予告のキャラクタ表示はこの位置に限定されない。サブ間連動予告は、例えば背景内にキャラクタが出現するような演出形態でもよいし、特図と絡めた演出形態としてもよい。尚、サブ間連動予告として遊技者に対するメッセージ表示のような演出を行う場合は、本実施例のような表示位置としておくとメッセージが図柄等で隠れないという利点がある。
このルーチンが開始されると、まずステップD921でサブ間連動予告表示制御中(即ち、サブ間連動予告演出実行中)か判定し、サブ間連動予告表示制御中でなければリターンし、サブ間連動予告表示制御中ならばステップD922でサブ間連動予告情報領域のアドレスをセットしてステップD923に進む。
ここで、サブ間連動予告情報領域は、例えば前述の受信コマンド別初期化処理2でサブ間連動予告表示に使用するサブ間連動予告データ(サブ間連動予告用の制御テーブルの例えば先頭アドレスの情報)が設定される領域である。
ステップD923に進むと、サブ間連動予告情報領域に上記サブ間連動予告データの設定があるか判定し、サブ間連動予告データの設定があれば当該サブ間連動予告データに基づいてステップD924、D925を順次実行した後にリターンし、サブ間連動予告データの設定がなければ(即ち、NULLであれば)ステップD924、D925を実行しないでリターンする。
ステップD924では、前述した予告情報更新判定処理を実行する。ステップD925では、前述した予告表示データ編集処理を実行する。
〔縮小図柄編集処理〕
次に、前述の演出表示編集処理におけるステップD560で実行される縮小図柄編集処理の詳細について図145により説明する。なお、縮小図柄とは、リーチ中のムービー演出の時などに、表示装置41の画面隅に変動中を明示するために小さく表示して変動させる飾り図柄(例えば通常の図柄を縮小した形態のもので、左、中、右の図柄がある)である。本ルーチンは、この縮小図柄を変動表示するための処理である。
このルーチンが開始されると、まずステップD931で縮小図柄表示制御中(即ち、縮小図柄表示実行中)か判定し、縮小図柄表示制御中でなければリターンし、縮小図柄表示制御中ならばステップD932乃至D937を順次実行した後にリターンする。
ステップD932では、前述の左図柄制御領域の先頭アドレスを設定する。
ステップD933では、上記ステップD932の設定に基づいて中図柄について縮小図柄表示編集処理(説明省略する)を実行する。
ステップD934では、前述の中図柄制御領域の先頭アドレスを設定する。
ステップD935では、上記ステップD934の設定に基づいて中図柄について縮小図柄表示編集処理(説明省略する)を実行する。
ステップD936では、前述の右図柄制御領域の先頭アドレスを設定する。
ステップD937では、上記ステップD936の設定に基づいて右図柄について縮小図柄表示編集処理(説明省略する)を実行する。
〔第4図柄編集処理〕
次に、前述の演出表示編集処理におけるステップD561で実行される第4図柄編集処理の詳細について図146、図147により説明する。第4図柄とは、やはりムービー演出の時などに、表示装置41の画面端に変動中を明示するために小さく表示して変動させる飾り図柄(通常の図柄とは異なる形態のもの)である。本例では、特図1と特図2について上下一対の図柄がある(即ち、特図1第4図柄上、特図1第4図柄下、特図2第4図柄上、特図2第4図柄下がある)。
このルーチンが開始されると、まずステップD941で第4図柄表示制御中(即ち、第4図柄表示実行中)か判定し、第4図柄表示制御中でなければリターンし、第4図柄表示制御中ならばステップD942に進む。なお、前述のステップD275によって第4図柄ステータスが変動中に設定されていると、上記ステップD941では、第4図柄表示制御中と判定される。
ステップD942に進むと、変動初期化フラグ(前述の受信コマンド別初期化処理2のステップD274でセットされるフラグ)がセットされているか判定し、セットされていないとステップD945に進み、セットされていればステップD943、D944を順次実行した後にステップD945に進む。
ステップD943では、変動初期化フラグをクリアする。
ステップD944では、第4図柄変動パラメータ(第4図柄変動タイマ、変動用図柄番号)を初期化する。
ステップD945に進むと、特図1第4図柄(特図1第4図柄上及び特図1第4図柄下)は変動中か判定し、変動中ならばステップD954で特図1の変動用図柄番号に対応するCG番号をセットした後にステップD947に進み、変動中でなければステップD946で特図1停止図柄番号に対応するCG番号をセットした後にステップD947に進む。
ステップD947に進むと、特図2第4図柄(特図2第4図柄上及び特図2第4図柄下)は変動中か判定し、変動中ならばステップD955で特図2の変動用図柄番号に対応するCG番号をセットした後にステップD949に進み、変動中でなければステップD948で特図2停止図柄番号に対応するCG番号をセットした後にステップD949に進む。
ステップD949に進むと、第4図柄変動タイマを1だけ増やす更新を行い、ステップD950に進む。
ステップD950では、第4図柄変動タイマの値が切替判定値より大きいか判定し、大きい場合にはステップD951を実行した後にステップD952に進み、大きくない場合にはステップD961に進む。
ステップD951では、変動用図柄番号を1だけ増やす更新を行う。
ステップD952に進むと、変動用図柄番号が上限値より大きいか判定し、大きい場合にはステップD953で変動用図柄番号を0に設定した後にステップD961に進み、大きくない場合にはステップD953を実行しないでステップD961に進む。
ステップD961に進むと、ステップD961乃至D980を順次実行した後にリターンする。
ステップD961では、特図1第4図柄上の座標(X座標とY座標のデータ)をセットする。
ステップD962では、特図1第4図柄上の画像データ(前記ステップD946又はD954で設定されたCG番号の画像データ)のVRAMへのロードをVDP312に指示する。
ステップD963では、上記画像データの属性を設定する。
ステップD964では、上記画像データの表示に使用する描画エフェクトを設定する。
ステップD965では、上記画像データのスプライトを仮想描画空間に貼り付ける。
なお、上記ステップD961、D963、D964で設定するデータは、例えば、規定値として予め設定されたデータが使用される(以下、他の第4図柄について同様)。
ステップD966では、特図1第4図柄下の座標をセットする。
ステップD967では、特図1第4図柄下の画像データ(前記ステップD946又はD954で設定されたCG番号の画像データ)のVRAMへのロードをVDP312に指示する。
ステップD968では、上記画像データの属性を設定する。
ステップD969では、上記画像データの表示に使用する描画エフェクトを設定する。
ステップD970では、上記画像データのスプライトを仮想描画空間に貼り付ける。
ステップD971では、特図2第4図柄上の座標をセットする。
ステップD972では、特図2第4図柄上の画像データ(前記ステップD948又はD955で設定されたCG番号の画像データ)のVRAMへのロードをVDP312に指示する。
ステップD973では、上記画像データの属性を設定する。
ステップD974では、上記画像データの表示に使用する描画エフェクトを設定する。
ステップD975では、上記画像データのスプライトを仮想描画空間に貼り付ける。
ステップD976では、特図2第4図柄下の座標をセットする。
ステップD977では、特図2第4図柄下の画像データ(前記ステップD948又はD955で設定されたCG番号の画像データ)のVRAMへのロードをVDP312に指示する。
ステップD978では、上記画像データの属性を設定する。
ステップD979では、上記画像データの表示に使用する描画エフェクトを設定する。
ステップD980では、上記画像データのスプライトを仮想描画空間に貼り付ける。
〔大当りラウンド編集処理〕
次に、前述の演出表示編集処理におけるステップD562で実行される大当りラウンド編集処理の詳細について図148により説明する。このルーチンは、大当りのラウンド中に加え、大当りのファンファーレ、インターバル、エンディングでの演出も含めた大当り時の演出についての処理である。また、このルーチンの処理は、描画するものを編集するのではなく、各シーンの時間値等を制御するための処理である。同一ラウンド中でも、メッセージを表示したり、アニメーションを再生したりといった演出の流れがあり、この流れを制御する処理である。なお、演出内容によって、設定する必要のあるデータは変化する。大当り中の演出なら、動画の変更指示や、音声変更指示などがあり、その流れを制御しているのが本ルーチンである。
このルーチンが開始されると、まずステップD991でラウンド表示制御中であるか(即ち、ファンファーレ、インターバル、エンディングも含めた大当りの演出実行中であるか)を判定し、制御中でなければリターンし、制御中ならばステップD992に進む。
ステップD992では、ラウンド制御ポインタ(例えば、前述の受信コマンド別初期化処理2で設定される大当り用の制御テーブル内の制御データの位置を示すポインタ)に対応する演出内容(即ち、ラウンド制御ポインタによって指定される上記制御データによって決まる演出内容)が大当りの演出開始であるか判定し、演出開始でなければステップD996に進み、演出開始であればステップD993乃至D995を実行した後にステップD996に進む。
ステップD993では、ラウンド制御ポインタの値を1だけ増やす更新を行う。
ステップD994では、ラウンド制御ポインタに対応するデモ制御タイマの値を設定する。
ステップD995では、ラウンド制御ポインタに対応するその他の各種データを設定する。
ステップD996に進むと、デモ制御タイマの値を1だけ減らす更新を行い、次のステップD997でデモ制御タイマの値を判定し、0でなければリターンし、0ならばステップD998に進む。
ステップD998に進むと、ラウンド制御ポインタの値が、前記大当り用の制御テーブルの最後のデータを指定するものか判定し、最後のデータであればステップD1000でラウンド制御ポインタを演出戻り位置の値に設定した後にステップD1001に進み、最後のデータでなければステップD1000を実行しないでステップD1001に進む。
ステップD1001に進むと、ラウンド制御ポインタに対応するデモ制御タイマの値を設定し、次にステップD1002でラウンド制御ポインタに対応するその他の各種設定を行う。
〔変動パラメータ更新処理〕
次に、前述の演出表示編集処理におけるステップD565、D567、D569で実行される変動パラメータ更新処理の詳細について図149、図150により説明する。本ルーチンは、図柄変動においてのパラメータを更新する為の処理である。
このルーチンが開始されると、まずステップD1011で、図柄変動テーブル領域のデータ(図柄変動テーブルの例えば先頭アドレスの情報)がNULL(設定無し)か判定し、NULLである場合にはリターンし、NULLでない場合にはステップD1012乃至D1015を順次実行した後にステップD1016に進む。
ステップD1012では、前述の演出表示編集処理における直前のステップ(ステップD564、D566、D568のうちの何れか)でセットされた図柄制御領域の動作パターン領域から、動作パターンのデータをロードする。
ステップD1013乃至D1015では、前記図柄制御領域の該当領域から、図柄更新情報、制御フレーム数、制御リピート数のデータをそれぞれロードする。
ステップD1016に進むと、前記図柄制御領域のX座標テーブル領域からX座標テーブルポインタのデータを読み取り、このデータがNULLである場合にはステップD1018に進み、NULLでない場合にはステップD1017に進む。
ステップD1017に進むと、その時点のX座標テーブルポインタの値によって指定されるX座標テーブル内の制御データがX座標テーブル内の最後のデータでなければ、X座標テーブルポインタの値を1だけ増やす更新を行い、その後ステップD1018に進む。この更新により、X座標テーブル内の指定位置が次の位置になり、X座標テーブル内の次の位置の制御データが指定されることになる。
ステップD1018に進むと、前記図柄制御領域のY座標テーブル領域からY座標テーブルポインタのデータを読み取り、このデータがNULLである場合にはステップD1020に進み、NULLでない場合にはステップD1019に進む。
ステップD1019に進むと、その時点のY座標テーブルポインタの値によって指定されるY座標テーブル内の制御データがY座標テーブル内の最後のデータでなければ、Y座標テーブルポインタの値を1だけ増やす更新を行い、その後ステップD1020に進む。この更新により、Y座標テーブル内の指定位置が次の位置になり、Y座標テーブル内の次の位置の制御データが指定されることになる。
ステップD1020に進むと、前記図柄制御領域の透過テーブル領域から透過テーブルポインタのデータを読み取り、このデータがNULLである場合にはステップD1022に進み、NULLでない場合にはステップD1021に進む。
ステップD1021に進むと、その時点の透過テーブルポインタの値によって指定される透過テーブル内の制御データが透過テーブル内の最後のデータでなければ、透過テーブルポインタの値を1だけ増やす更新を行い、その後ステップD1022に進む。この更新により、透過テーブル内の指定位置が次の位置になり、透過テーブル内の次の位置の制御データが指定されることになる。
ステップD1022に進むと、制御フレーム数を1だけ減らす更新を行い、その後ステップD1023に進む。なお、制御フレーム数は、ステップD1014でロードされた値である。
ステップD1023に進むと、制御フレーム数が0か判定し、0である場合にはステップD1024に進み、0でない場合にはステップD1031に進む。
ステップD1024に進むと、制御リピート数を1だけ減らす更新を行い、次にステップD1025でX座標テーブルポインタ、Y座標テーブルポインタ、及び透過テーブルポインタを初期化する(即ち、各テーブルの例えば先頭位置を指定する初期値に再設定する)処理を実行した後にステップD1026に進む。なお、制御リピート数は、ステップD1015でロードされた値である。
ステップD1026に進むと、ステップD1013でロードした図柄更新情報のデータを読み取り、この図柄更新情報のデータが1であればステップD1027に進み、1でない場合(即ち、本例では0の場合)にはステップD1030に進む。ここで、図柄更新情報のデータは、変動する(例えば上下にスクロールする)図柄を次の図柄に切り替えるための表示図柄番号の加算値を示しており、本例では1か0の何れかの値である。例えば、スクロール進行中は、次図柄が表示される図柄のメインとなる図柄の切り替え動作が繰り返されるが、その際に加算すべき値を本例では1としている。これにより、各図柄が順次メインになるように切り替わる。そして、図柄を切り替えるタイミングでない場合や、同じ図柄をスクロールさせる場合や、同じ図柄を揺れるように変動させる揺れ変動中の場合などには、上記図柄更新情報を0として、図柄の切り替えを行わない構成となっている。なお、この図柄更新情報として2以上の値があり得る態様としてもよい。例えば、図柄更新情報の値が2になると、図柄が1つ飛ばしで切り替わる構成としてもよい。
ステップD1027に進むと、表示する図柄の図柄番号を1だけ増やす更新を行い、次にステップD1028で前記図柄番号が図柄上限値を超えたか判定し、超えた場合にはステップD1029で前記図柄番号を0に設定した後にステップD1030に進み、超えていない場合にはステップD1029を実行しないでステップD1030に進む。なお、このステップD1027の更新(図柄の切替)や前記ステップD1017やD1019の更新(図柄位置の移動)によって、図柄が例えば上下にスクロールしつつ切り替る図柄変動の表示が実現されることになる。またステップD1028、D1029は、図柄の変動が一巡したら最初の図柄に戻すための処理である。
ステップD1030に進むと、前記図柄制御テーブルの該当位置から制御フレーム数のデータを取得して格納し、次にステップD1031で制御リピート数が0か判定し、0ならばステップD1041に進み、0でなければリターンする。
ステップD1041に進むと、図柄変動テーブルポインタを更新し、その後ステップD1042に進む。図柄変動テーブルポインタを更新すると、各パラメータ(動作パターン、図柄更新情報、…など)が、前記図柄制御テーブルの次の位置(次の行)へと切り替わる。なお本例では、以上の説明から分かるように、制御フレーム数が0になる度にステップD1024で制御リピート数が減少し、この結果制御リピート数が0になったときにステップD1041以降に進む。したがって、ステップD1041に進むことによる図柄変動テーブルポインタの更新は、制御フレーム数も制御リピート数も0になったときに実行される。
ステップD1042に進むと、動作パターンがテーブル差し替えコード(前半)であるか判定し、テーブル差し替えコード(前半)であればステップD1043に進み、それ以外の場合にはステップD1044に進む。なお、ここでの動作パターンは、ステップD1012でロードされた値である。
ステップD1043に進むと、前記動作パターンのデータに対応する前半変動テーブルに図柄変動テーブルを切り替えて、この前半変動テーブルの先頭アドレスのデータを図柄変動テーブルポインタの値として設定し、その後ステップD1044に進む。
ステップD1044に進むと、動作パターンがテーブル差し替えコード(後半)であるか判定し、テーブル差し替えコード(後半)であればステップD1045に進み、それ以外の場合にはステップD1046に進む。
ステップD1045に進むと、前記動作パターンのデータに対応する後半変動テーブルに図柄変動テーブルを切り替えて、この後半変動テーブルの先頭アドレスのデータを図柄変動テーブルポインタの値として設定し、その後ステップD1046に進む。
ステップD1046に進むと、動作パターンが図柄差し替えコードであるか判定し、図柄差し替えコードであれば、ステップD1047に進み、それ以外の場合にはステップD1050に進む。
ステップD1047に進むと、ステップD1047乃至D1049を順次実行した後にステップD1050に進む。
ステップD1047では、差し替える図柄番号を図柄送り数を基に停止図柄から逆算する。
ステップD1048では、ステップD1047で算出した図柄番号を表示図柄領域に格納する。
ステップD1049では、図柄変動テーブルポインタを更新する。
ステップD1050に進むと、動作パターンがリーチライン表示コードであるか判定し、リーチライン表示コードであればステップD1051に進み、それ以外の場合にはステップD1053に進む。
ステップD1051に進むと、ステップD1051乃至D1052を順次実行した後にステップD1053に進む。
ステップD1051では、図柄変動テーブルポインタを更新する。
ステップD1052では、リーチラインを表示するための飾り図柄予告編集処理(詳細説明省略)を実行する。
ステップD1053に進むと、動作パターンが保留表示移動コードであるか判定し、保留表示移動コードであればステップD1054に進み、それ以外の場合にはステップD1056に進む。
ステップD1054に進むと、ステップD1054乃至D1055を順次実行した後にステップD1056に進む。
ステップD1054では、保留表示移動制御を行うための保留表示移動テーブル(前述した保留移動テーブルに相当)を設定する。これにより、例えば前述したステップD891の判定で保留座標移動ありと判定され、保留座標の移動(即ち、保留表示移動制御)が実行される。
ステップD1055では、図柄変動テーブルポインタを更新する。
ステップD1056に進むと、動作パターンが保留表示オフコードであるか判定し、保留表示オフコードであればステップD1057に進み、それ以外の場合にはステップD1059に進む。
ステップD1057に進むと、ステップD1057乃至D1058を順次実行した後にステップD1059に進む。
ステップD1057では、保留表示テーブルのデータをNULLに設定する。これにより、例えば前記ステップD881で保留表示制御中でないと判定されて保留表示がされなくなる。
ステップD1058では、図柄変動テーブルポインタを更新する。
ステップD1059に進むと、動作パターンがリーチ名表示コードであるか判定し、リーチ名表示コードであればステップD1060に進み、それ以外の場合にはステップD1062に進む。
ステップD1060に進むと、ステップD1060乃至D1061を順次実行した後にステップD1062に進む。
ステップD1060では、リーチ種別番号に対応するリーチ名表示テーブルを前面予告情報領域に設定する。これにより予告編集処理2によってリーチ名表示が実行される。
ステップD1061では、図柄変動テーブルポインタを更新する。
ステップD1062に進むと、ステップD1041、D1049、D1051、D1055、D1058、D1061によって更新された図柄変動テーブルポインタが示す図柄変動テーブルのデータがNULL(設定無し)か判定し、NULLである場合にはリターンし、NULLでない場合にはステップD1063に進む。
ステップD1063に進むと、動作パターンポインタがテーブル最終データか否か(即ち、図柄制御テーブルの動作パターンの項目において、現在指定されている動作パターンのデータ位置が最後か否か)判定し、最終データであればステップD1064で図柄変動テーブルポインタの値を1だけ減らす更新をした後にステップD1065に進み、最終データでなければステップD1064を実行しないでステップD1065に進む。ここで、ステップD1063、D1064によれば、最終データまで進むと最終行から2行目の位置に戻ってその2行目の動作を繰り返し行うように制御される。但し、このような構成に限らず、例えば、戻り位置は動作毎に異なるように設定する態様でもよい。この態様の場合、ステップD1064では、例えば「図柄変動テーブルポインタを戻り位置の値に設定する」という処理を実行することになる。
ステップD1065に進むと、図柄制御テーブル内の該当位置(即ち、図柄変動テーブルポインタで指定されている位置)から、各種制御パラメータ(動作パターン、図柄更新情報、…など)のデータを取得して格納し、次にステップD1066でサウンド要求ありか判定する。ステップD1066で、サウンド要求ありと判定した場合はステップD1067を実行した後にステップD1068に進み、サウンド要求なしと判定した場合はステップD1067を実行しないでステップD1068に進む。
ステップD1067では、対応する図柄音の出力要求をセットする。
ステップD1068に進むと、ステップD1065で格納されたデータに基づいて、モータ要求ありか判定する。このステップD1068で、モータ要求ありと判定した場合はステップD1069を実行した後にリターンし、モータ要求なしと判定した場合はステップD1069を実行しないでリターンする。
ステップD1069では、前記モータ要求のデータに対応するモータ制御テーブルの先頭アドレスのデータをモータ制御テーブルポインタの値として設定する。ここで、このステップD1069で先頭アドレスが設定されるモータ制御テーブルは、演出用役物を駆動するモータ(後述するモータ用タイマ割込み処理で制御されるモータ)を制御するための制御テーブルである。このモータは、メイン処理のステップD32で制御されるモータとは異なる。このモータは、例えば、枠演出装置45を構成するムービングライト14(演出用役物)を駆動するパルスモータである。
なお、ステップD1065によれば、図柄制御テーブルの行が変わる度に(即ち、図柄変動テーブルポインタが更新される度に)、この図柄制御テーブルの行のデータがROM(本例の場合、PROM321)からRAM(本例の場合、CPU311内のRAM)の図柄制御領域にそれぞれコピーされる。その後は図柄制御テーブルの次の行に移るまで、RAMの図柄制御領域から必要なデータ(ポインタのデータ含む)を取り出して(ロードして)それを基に図柄表示の制御処理が行われる。これは、RAMの中でないと現在処理しているテーブルアドレスの値やタイマ値等の更新ができないためである。
以上説明した本ルーチンは、図柄変動中における図柄の動きとリンクさせた各種エフェクトや役物による演出の設定例を挙げている。例えば、高速変動が終わり図柄がスローになる瞬間に図柄を差し替える(スローダウンした後3図柄送る仕様なら、停止図柄の3つ前の図柄番号に差し替える)動作が、前記ステップD1046乃至D1048等によって実現される。また、ステップD1066、D1067等により、停止時に停止音を鳴らすことができる。また、ステップD1068、D1069により、例えば図柄の動きとリンクさせて演出用役物(例えば、ムービングライト14)の可動部を作動させることができる。本例以外にも、人物などのキャラクタを出現させる態様があり得る。なお、演出用役物(例えば、ムービングライト14)を駆動するモータの制御は、後述するモータ用タイマ割込み処理で行われる。
〔サウンド制御処理〕
次に、前述のメイン処理におけるステップD30で実行されるサウンド制御処理の詳細について図151により説明する。なお本例は、0〜3までの4チャンネルを使用し、各チャンネルに2トラック使用してステレオになっている例である。
このルーチンが開始されると、チャンネル番号を初期値1から増分1だけ増加させつつ終値3になるまで、ステップD1071乃至ステップD1080を繰り返し実行し、その後リターンする。即ち、ステップD1071ではルーチン開始直後はチャンネル番号を1としてステップD1072に進む。ステップD1080では、チャンネル番号が3未満である場合にはステップD1072に戻り、チャンネル番号が3である場合にはリターンする。そしてステップD1071に戻ると、チャンネル番号の値を1だけ増加させてステップD1072に進む。
ステップD1072に進むと、チャンネル番号に対応する曲情報領域から曲番号をロードし、次にステップD1073でロードした曲番号が0でないか判定し、0ならばステップD1076に進み、0でないならばステップD1074乃至D1075を順次実行した後にステップD1076に進む。
ステップD1074では、曲情報領域を0クリアする。
ステップD1075では、ステップD1072でロードした曲番号に基づいて、音源LSI313に対してサウンド出力の設定を行うサウンド出力処理(詳細後述する)を実行する。
ステップD1076に進むと、チャンネル番号に対応するエフェクト情報領域から効果音番号(即ち、エフェクト番号)をロードし、次にステップD1077でロードしたエフェクト番号が0でないか判定し、0ならばステップD1080に進み、0でないならばステップD1078乃至D1079を順次実行した後にステップD1080に進む。
ステップD1078では、エフェクト情報領域を0クリアする。
ステップD1079では、ステップD1076でロードしたエフェクト番号に基づいて、音源LSI313に対してサウンドエフェクト出力の設定を行うサウンドエフェクト出力処理(詳細後述する)を実行する。
ステップD1080に進むと、前述したように、チャンネル番号が3未満である場合にはステップD1071に戻り、チャンネル番号が3である場合にはリターンする。
〔サウンド出力処理〕
次に、前述のサウンド制御処理におけるステップD1075で実行されるサウンド出力処理の詳細について図152により説明する。
このルーチンが開始されると、まずステップD1091乃至D1095を順次実行した後にステップD1096に進む。
ステップD1091では、チャンネル番号を2倍してトラック番号を算出する。なお、ステレオで2トラック使用しているため、ステレオの場合、奇数トラックが左チャンネル、偶数トラックが右チャンネルとなっている。
ステップD1092では、音番号(前述のステップD1072でロードされた曲番号に相当)に対応するフレーズ番号を取得する。
ステップD1093では、前記音番号に対応するモノラル/ステレオ情報を取得する。
ステップD1094では、前記音番号に対応するループ情報を取得する。
ステップD1095では、前記音番号に対応する音声フェード情報を取得する。
ステップD1096に進むと、チャンネル番号が0か判定し、0でない場合にはステップD1099に進み、0ならばD1097乃至D1098を順次実行した後にステップD1099に進む。
ステップD1097では、ステップD1092で取得されたフレーズ番号に対応するフレーズは、現在出力しているものと同じか判定し、同じであれば設定不要であるのでリターンし、同じでなければステップD1098で前記フレーズ番号を現在出力フレーズとして格納した後にステップD1099に進む。なお、このステップD1098と後述するステップD1107が実行されると、前記フレーズ番号に対応するフレーズに出力が切り替わることになる。
ステップD1099に進むと、ステップD1099乃至D1108を順次実行した後にリターンする。
ステップD1099では、ステップD1091で算出したトラック番号とステップD1094で取得したループ情報に対応するループデータ(音声を繰り返すループ再生のためのデータ)を設定する。
ステップD1100では、前記トラック番号とステップD1093で取得したモノラル/ステレオ情報に対応するM/Sデータ(モノラルとするかステレオとするかを制御するデータ)を設定する。
ステップD1101では、前記トラック番号に対応する左チャンネルボリュームを設定する。
ステップD1102では、前記トラック番号に対応する右チャンネルボリュームを設定する。
ステップD1103では、該当トラックの再生を停止する。なおここでの停止は、古い音声の終了を意味する。後述するステップD1107では、新しい音声が設定され、次のステップD1108で新しい音声の再生が開始される。
ステップD1104乃至D1107では、前記ループデータ、前記M/Sデータ、前記音声フェード情報、及び前記フレーズ番号を、それぞれ音源LSI313のレジスタに設定する。
そしてステップD1108では、該当トラックの再生を開始する。
〔サウンドエフェクト出力処理〕
次に、前述のサウンド制御処理におけるステップD1079で実行されサウンドエフェクト出力処理の詳細について図153により説明する。
このルーチンが開始されると、まずステップD1111でチャンネル番号を2倍してトラック番号を算出し、その後ステップD1112に進む。
ステップD1112に進むと、エフェクト番号が1(再生停止)か判定し、1ならばステップD1115で該当トラックの再生を停止した後にステップD1116に進み、1でない場合にはステップD1113に進む。
ステップD1116に進むと、チャンネル番号が0か判定し、0でなければリターンし、0ならばステップD1117で効果音番号(即ち、エフェクト番号=1)を現在出力フレーズの効果音番号として格納した後にリターンする。
ステップD1113に進むと、エフェクト番号が2(フェードイン)か判定し、2ならばステップD1118に進み、2でなければステップD1114に進む。
ステップD1118に進むと、フェード間隔データを前記レジスタに設定し、次にステップD1119で該当トラックのフェードイン実行を音源LSI313に指示した後にリターンする。
ステップD1114に進むと、エフェクト番号が3(フェードアウト)か判定し、3ならばステップD1120に進み、3でなければリターンする。
ステップD1120に進むと、フェード間隔データを前記レジスタに設定し、次にステップD1121で該当トラックのフェードアウト実行を音源LSI313に指示した後にリターンする。
〔サブ間受信割込み処理〕
次に、サブ間受信割込み処理について図154により説明する。
このルーチンは、例えば、演出制御装置300のCPU311のシリアル受信バッファ(図示省略)に無線モジュール360から1個の受信データ(本例では、1バイト分のデータ)が格納されて受信フラグがセットされることによって割込みが発生して開始される。なお、受信フラグはCPU311内部のレジスタであり、前記シリアル受信バッファに受信データが格納されると、セットされる(即ち、前記レジスタにフラグがセットされたことを示すデータが設定される)。
このルーチンが開始されると、まずステップD1131で、1個の受信データを前記シリアル受信バッファから読み込み、ステップD1132に進む。
ステップD1132に進むと、ステップD1131で読み込んだ受信データを受け入れることによって受信数オーバーになるか判定し、受信数オーバーになる場合にはステップD1135に進み、受信数オーバーにならない場合にはステップD1133に進む。受信数オーバーになるのは、サブ間通信による受信データを書き込むサブ間通信データバッファ領域の容量を全受信データ(後述する受信カウンタの値に対応する数の受信データ)のデータ容量が超える場合である。サブ間通信データバッファ領域の容量は、サブ間通信で送受信されるデータ(即ち、サブ間通信データ)のパケットサイズ(本例では12バイト)以上あればよい。本例の場合、このサブ間通信データバッファ領域の容量は、12バイト以上あればよく、例えば12×NバイトとしてN個のサブ間通信データを同時に記憶保持できる構成としてもよい。
ステップD1133に進むと、受信カウンタに対応するサブ間通信データバッファ領域のアドレスにステップD1131で読み込んだデータを格納し、次にステップD1134で受信カウンタの値を1だけ増やす更新を行い、その後ステップD1135に進む。なお、受信カウンタは、サブ間通信の有効な受信データの数を計数するカウンタであり、演出制御装置300の起動直後には0に初期設定されている。受信カウンタに対応するサブ間通信データバッファ領域のアドレスとは、例えば受信カウンタの値が0の場合(有効な受信データ数が0の場合)にはサブ間通信データバッファ領域における1番目の1バイト分の領域のアドレスであり、受信カウンタの値が1の場合(有効な受信データ数が1の場合)にはサブ間通信データバッファ領域における2番目の1バイト分の領域のアドレスであり、受信カウンタの値がMの場合(有効な受信データ数がMの場合)にはサブ間通信データバッファ領域におけるM+1番目の1バイト分の領域のアドレスである。
ステップD1135に進むと、受信パケットインデックスに初期値を設定し、ステップD1136に進む。受信パケットインデックスは、サブ間通信データの先頭データ(STX)がサブ間通信データバッファ領域のどのアドレスにあるかを指定するためのポインタである。言い換えると、この受信パケットインデックスで指定されるアドレスにサブ間通信データの先頭データ(STX)があるものと仮定して後述する受信パケット解析処理が実行される構成となっている。そのため、このステップD1135では、例えばサブ間通信データバッファ領域における1番目の1バイト分のアドレス(即ち、先頭アドレス)を、この受信パケットインデックスの初期値として設定する。
ステップD1136に進むと、受信パケットインデックスで指定される受信データについて受信パケット解析処理を実行し、ステップD1137に進む。
受信パケット解析処理では、受信したデータがサブ間通信データとして正常なものか及び正常であるが1パケット分(この場合12バイト分)のデータが受信されていないか解析する。そして、正常でなければ少なくとも今回ステップD1151で受信したデータを廃棄すべく受信カウンタ減算値を返し、正常であるが1パケット分のデータが未だ受信されていない場合には、受信継続すべきとして受信継続コードを返す。また、正常であり、かつ1パケット分のデータが受信されている場合には受信データの登録(所定領域へのコピー)を実行し受信カウンタ減算値として0を返す(詳細後述する)。
ステップD1137に進むと、ステップD1136の受信パケット解析処理による解析結果は受信継続か(即ち、受信継続コードが返されたか)判定し、受信継続であればステップD1141に進み、受信継続でなければステップD1138に進む。
ステップD1138では、ステップD1136の受信パケット解析処理から返された受信カウンタ減算値を現在の受信カウンタの値から減算する演算を行い、この演算結果を新たな受信カウンタの値として設定し、その後ステップD1139に進む。
ステップD1139に進むと、受信カウンタの値が0になったか判定し、0ならば有効な受信データ無いのでステップD1141に進み、0でない場合にはステップD1140で受信パケットインデックスの値を次の解析位置(1パケット分だけ先頭から離れる方向にずれた位置)まで更新した後にステップD1136に戻って処理を繰り返す。
ステップD1141に進むと、ステップD1136での解析の結果として受信パケットインデックスがステップD1140で更新されたか判定し、更新された場合にはステップD1142及びD1143を実行した後にリターンし、更新されていない場合にはステップD1142及びD1143を実行しないでリターンする。
ステップD1142では、サブ間通信データバッファ領域内の有効データを前に詰める。即ち、ステップD1142に進んだ場合、サブ間通信データバッファ領域において、ステップD1140で更新された受信パケットインデックスの値が示すアドレスよりも先頭側にある受信データは、解析済みかつ必要に応じて登録済みであってもう不要であるので、この不要な受信データに上書きするかたちで、当該アドレス以降にある全データを不要なデータ分だけ先頭側にずらして再格納する。
ステップD1143では、前述の受信フラグをクリアする(即ち、前記レジスタにフラグがクリアされたことを示すデータを設定する)。
〔受信パケット解析処理〕
次に、上述のサブ間受信割込み処理におけるステップD1136で実行される受信パケット解析処理の詳細について図155、図156により説明する。
このルーチンが開始されると、まずステップD1151で、受信パケットインデックスの値に対応するサブ間通信データバッファ領域の受信データ(本例では、1バイト分のデータ)の値をロードし、ステップD1152に進む。
ステップD1152に進むと、ステップD1151でロードした受信データの値が、パケット開始コード(STX)の規定値(例えば02H)であるか判定し、規定値であればステップD1153に進み、規定値でなければ受信データを1個廃棄するためにステップD1162で受信カウンタ減算値として1を返した後にリターンする。
ステップD1153に進むと、受信カウンタの値が2より小さいか(即ち、1以下か)判定し、2より小さい場合には有効な受信データが1個しかない(パケット開始コード(STX)のデータしかない)ためステップD1163で受信継続コードを返した後にリターンし、2より小さくない場合(即ち、2以上の場合)にはステップD1154に進む。
なお、ステップD1162で返された受信カウンタ減算値は、前述のステップD1138で使用され、その分だけ受信カウンタの値が減り、この受信カウンタ減算値の分だけ前述のステップD1133で新たな受信データを格納する位置が先頭側にずれるため、実質的にその値の分だけ受信データが新たな受信データで上書きされて廃棄されることになる。但し、ステップD1152の判定結果がYESである場合には、ステップD1162による受信データの廃棄は行われない。
例えば、受信データがサブ間通信データバッファ領域において先頭の1個だけの場合(受信カウンタの値は1)、この値がパケット開始コード(STX)の規定値(例えば02H)でなければ、受信カウンタの値は1減算されて0になり、次にステップD1131で読み込まれた受信データはステップD1133でまた先頭に上書きされることになり、先頭にあったデータ(パケット開始コード(STX)でないデータ)は廃棄される。但しこの場合、ステップD1152の判定結果がYESであると、ステップD1153を経てステップD1163が実行されて受信が継続され、次にステップD1131で読み込まれた受信データはステップD1133で先頭の次に格納されることになり、先頭のデータ(パケット開始コード(STX)であるデータ)は廃棄されない。なお、このように受信カウンタの減算によって、受信データが破棄される作用は、後述するステップD1164、D1166、D1167、D1180、D1182でも同様である。
ステップD1154に進むと、サブ間通信データバッファ領域におけるデータ長領域からデータ長の値(即ち、サブ間送信データ数(SIZE)の値)をロードし、その後ステップD1155に進む。なお、サブ間通信データバッファ領域におけるデータ長領域のアドレスは、受信パケットインデックスで示されるアドレス(パケット開始コード(STX)の格納位置)に対する相対的位置として求められる。即ち、サブ間通信データの1パケットにおいて、各データの相対的位置関係(送信される順番)は後述する図161のように一定であるため、この相対的位置関係からサブ間送信データ数(SIZE)が格納されているはずのデータ長領域のアドレスが当然分かる(他のデータの領域についても同様である)。この場合、データ長領域は、受信パケットインデックスで示されるアドレス(パケット開始コード(STX)の格納位置)に対して1バイト分だけ後方(先頭から離れる方向)である。
ステップD1155に進むと、ステップD1154でロードした値が規定値(本例の場合、12バイト)であるか判定し、規定値であればステップD1156に進み、規定値でなければステップD1164で受信カウンタ減算値として1を返した後にリターンする。
ステップD1156に進むと、受信カウンタの値から求められる全受信データの容量がサブ間送信データの1パケット分のデータ長の規定値(本例の場合、12バイト)よりも小さいか判定し、小さい場合には受信データが不足である(未だ12バイト分の受信データが格納されていない)のでステップD1165で受信継続コードを返した後にリターンし、小さくない場合には1パケット分以上の受信データがあるのでステップD1157に進む。
ステップD1157に進むと、サブ間通信データバッファ領域におけるETX領域からパケット終了コード(ETX)の値をロードし、その後ステップD1158に進む。
ステップD1158に進むと、ステップD1157でロードした値が規定値(例えば03H)であるか判定し、規定値であればステップD1159に進み、規定値でなければステップD1164で受信カウンタ減算値として1を返した後にリターンする。
ステップD1159に進むと、受信データのパケット先頭からデータ長−2までのチェックサム(即ち、STXからSTSまでのデータのチェックサム)を算出し、次にステップD1160でサブ間通信データバッファ領域におけるsum領域からチェックサム(SUM)のデータをロードし、その後ステップD1161に進む。
ステップD1161では、チェックサムのチェックを行うべく、ステップD1160でロードしたデータとステップD1159で算出したデータを比較して、これらが一致するか判定し、一致すれば受信データが正常であるとしてステップD1171に進み、一致しなければ受信データの規定のデータ長分のパケット全体が異常であるのでステップD1167で受信カウンタ減算値としてデータ長規定値(本例の場合、12)を返した後にリターンする。ステップD1167により、1パケット分の受信データ全てが破棄される。
ステップD1171に進むと、サブ間通信データバッファ領域の送信先ID領域から送信先ID(DID)のデータをロードし、さらに、このロードしたデータの上位ビットをグループIDとして抽出し、下位ビットを端末IDとして抽出し、その後ステップD1172に進む。
ステップD1172に進むと、ステップD1171で抽出したグループIDの値が、グループIDの規定値であるか判定し、規定値であればステップD1173に進み、規定値でなければステップD1182に進む。ここで、ステップD1172では、自分と同じグループにいる遊技機からの受信データであるかをチェックしている。そして、自分と同じグループでない遊技機(例えば、他メーカの機械や同一メーカの機種違いなど)からの受信データの場合、本実施例では、ステップD1182に進んで受信データを全て破棄している。但し、このような構成に限られず、例えば自社の古い遊技機(或いは種類の異なる遊技機)が設置されている場合、このような遊技機をメーカコードや機種コード等で判断し、このような遊技機からの受信データの場合には破棄しないで当該受信データに対応して追加演出(サブ間連動演出でもよいし、例えばサブ基板による振り分けにおいてリーチ種類が増える演出などの通常演出に影響を与えるものでもよい)を行うようにしてもよい。このようにすると、自社の遊技機を複数種類購入して遊技場に設置するメリット(或いは、モデルチェンジした自社の遊技機と、モデルチェンジする前の古い自社の遊技機とを購入して併設するメリット)を生み出すことができる。
ステップD1173に進むと、ステップD1171で抽出した端末IDの値が自分の端末IDと一致しているか判定し、一致していれば正常であるので受信データに対応した演出を行うべくステップD1175乃至D1181を実行した後にリターンし、不一致であればステップD1174に進む。
ステップD1174に進むと、ステップD1171で抽出した端末IDの値がブロードキャストコード(同一グループの全端末(即ち、全パチンコ機)が送信対象となるデータ)であるか判定し、ブロードキャストコードであれば正常であるので受信データに対応した演出を行うべくステップD1175乃至D1181を実行した後にリターンし、ブロードキャストコードでなければステップD1182に進む。
ステップD1175では、サブ間通信データバッファ領域の送信元ID領域から送信元ID(SID)のデータをサブ間コマンド送信元ID領域にコピーする。
ステップD1176では、サブ間通信データバッファ領域のsb_mode領域からサブ間コマンドMODE(SB_MODE)のデータをSB_MODE領域にコピーする。
ステップD1177では、サブ間通信データバッファ領域のsb_act領域からサブ間コマンドACT(SB_ACT)のデータをSB_ACT領域にコピーする。
ステップD1178では、サブ間通信データバッファ領域のゲーム状態領域からゲーム状態STSのデータをサブ間コマンドゲーム状態領域にコピーする。
ステップD1179では、サブ間受信要求フラグ(前述のステップD471で使用されるフラグ)をセットする。
ステップD1180では、データ長の規定値(本例の場合、12)を現在の受信カウンタの値から減算する演算を行い、この演算結果を新たな受信カウンタの値として設定する。これにより、ステップD1179までの処理で処理済みの受信データ(正常なデータ)が1パケット分破棄される。
ステップD1181では、受信カウンタ減算値として0を返す。
ステップD1182に進むと、受信カウンタ減算値としてデータ長規定値(本例の場合、12)を返した後にリターンする。なお、ステップD1182に進むのは、受信データが異常な無効データの場合であるので、この受信データ(1パケット、12バイト分)を全て破棄させるため、データ長規定値を受信カウンタ減算値として返している。
〔サブ間送信割込み処理〕
次に、サブ間送信割込み処理について図157により説明する。
このルーチンは、例えば、演出制御装置300のCPU311のシリアル送信バッファ(図示省略)が空になり(即ち、CPU311のシリアル通信機能によりシリアル送信バッファの送信データが全て送信されて消去され)、送信フラグがセットされると割込みが発生して開始される。なお、送信フラグはCPU311内部のレジスタであり、前記シリアル送信バッファが空になると、セットされる(即ち、前記レジスタにフラグがセットされたことを示すデータが設定される)。
このルーチンが開始されると、まずステップD1191で送信すべきデータ送信数(1バイト単位の送信データの数)が0か判定し、0ならばステップD1196でサブ間送信割込みを禁止した後にリターンし、0でない場合にはステップD1192乃至D1195を順次実行した後にリターンする。なお、本ルーチンを開始させるサブ間送信割込みは、サブ間送信の必要が生じると、前述のステップD465で許可される。
ステップD1192では、サブ間送信ポインタに対応するサブ間送信バッファ領域のデータを前記シリアル送信バッファに書き込む。ここで、前記シリアル送信バッファに書き込まれたデータは、CPU311のシリアル通信機能により無線モジュール360を介して他のパチンコ機の演出制御装置に送信される。また、サブ間送信ポインタは、前述のステップD514においてサブ間送信バッファ0のアドレスが初期値として設定されるポインタである。また、サブ間送信バッファ領域とは、前述のステップD501乃至D510等で説明したサブ間送信バッファ0乃至11を含むバッファ領域である。
ステップD1193では、サブ間送信バッファ領域の次のアドレスのデータを送信するために、サブ間送信ポインタの値を1だけ増やす更新を行う。
ステップD1194では、1バイトのデータが1つ送信されたので、ステップD1191で判定されるデータ送信数を1だけ減らす更新を行う。
ステップD1195では、前述の送信フラグをクリアする。
〔モータ用タイマ割込み処理〕
次に、演出用役物(例えば、ムービングライト14)を駆動するモータ(本実施例では、パルスモータ)を制御するためのモータ用タイマ割込み処理を、図158により説明する。なお本例では、前記パルスモータを制御するために演出制御装置300から前記パルスモータに向けて出力するパルス信号の形式がパラレル(例えばパルスモータが4相タイプであれば、パルス信号の信号線が4本あって、各相毎に異なる信号線によってパルス信号が出力される形式)である場合を例示している。また、前述のステップD1069でアドレスが設定されたモータ制御テーブルは、必要に応じて本ルーチン(モータ用タイマ割込み処理)で使用される。
本例の演出制御装置300では、所定のモータ用タイマ割込み周期でモータ用タイマ割込みが発生する構成であり、このモータ用タイマ割込みが発生すると本ルーチン(モータ用タイマ割込み処理)が開始される。なお、このモータ用タイマ割込み周期は、受信コマンド解析処理(図98)の周期(例えば33.33ms)よりも短い間隔(例えば1ms)に設定される。そして、割込み優先順位は、このモータ用タイマ割込みよりもコマンド受信割込み処理(図95)の方が高く設定される。
本ルーチンが開始されると、ステップE1乃至E5を順次実行した後にリターンする。
ステップE1では、前記演出用役物の動作時間を制御するモータ制御タイマを更新するモータ制御タイマ更新処理を実行する。
ステップE2では、前記演出用役物の可動部(或いは前記パルスモータの出力軸、又ははこの出力軸に連動する部材)が所定位置(例えば、原点位置)にあることを検出するセンサの出力を監視するモータセンサ監視処理を実行する。
ステップE3では、モータ制御パラメータ(モータの目標回転速度、回転方向等)を更新するモータ制御パラメータ更新処理を実行する。
ステップE4では、前記パルスモータを制御するために前記パルスモータに出力するパルス信号のパルス幅を調整するパルス出力タイマを更新する処理(パルス出力タイマ更新処理)を実行する。
ステップE5では、出力するパルス信号のデータを更新するパルス出力データ更新処理を実行する。
〔VDP割込み処理〕
次に、VDP割込み処理を、図159により説明する。図6に示したように、演出制御装置300において、CPU311には割り込み要因であるVDP312から割込み信号INT0〜nが入力されており、割込み要因が発生した割込み信号INT0〜nによってCPU311では複数(最大2のn乗個)の割込み(以下、「VDP割込み」という)が受け付け可能である。本例の場合、このVDP割込みには、Vブランク開始割込み、描画コマンドINT割込み、描画エラー割込み、描画終了割込み、データ転送1完了割込み、データ転送2完了割込み、データ転送3完了割込み、チェックサム終了割込み、圧縮展開イベント割込み、がある。
本ルーチン(VDP割込み処理)は、この複数のVDP割込みのうちの少なくとも何れか1つが発生すると開始される。なお、この複数のVDP割込みのうちの少なくとも何れか1つが発生すると、この割込み発生を示す割込みフラグのオンデータがCPU311のレジスタに設定される。
本ルーチンが開始されると、ステップE11乃至E22を順次実行した後にリターンする。
ステップE11では、前記割込み信号INT0〜nを読み取ることにより、各割込み要因のステータス(前記複数のVDP割込みの発生の有無の情報)を取得する。なお、このステータスの情報はVDP312の割込み用のレジスタに設定されている。
ステップE12では、ステップE11で上記ステータスを読み取ったため、各割込み要因をクリアする。即ち、上述した各割込み要因のステータスのデータ(VDP312の割込み用のレジスタのデータ)を全て割込み無しの値に戻す設定を実行する。なお図6に示したように、CPU311とVDP312は双方向通信が可能となっており、このステップE12の設定はこの通信によって行う。
ステップE13乃至E21では、ステップE11で取得したステータスに基づいて、それぞれ、各割込みについての処理(割込みの有無を判定してフラグを設定する等の処理)を実行する。
ステップE22では、前記割込みフラグをクリアする。即ち、前記割込みフラグのオフデータをCPU311のレジスタに設定する。
〔Vブランク開始割込み処理〕
次に、前記VDP割込み処理におけるステップE13で実行されるVブランク開始割込み処理を、図160により説明する。なお、Vブランク開始割込み(Vブランク割込み、或いはVシンク割込みともいう)は、VDP312によって描画のための画面全体の1回の走査が終了する度に発生する。このVブランク開始割込みの発生周期は、前述したように、例えば1/60秒である。
本ルーチンが開始されると、まずステップE31で、前述のステップE11で取得したステータスに基づいてVブランク開始割込みが発生しているか否か判定し、発生していればステップE32に進み、発生していなければステップE32以降を実行しないでリターンする。
ステップE32に進むと、Vブランクカウントの値を1だけ増やす更新を実行し、その後ステップE33に進む。Vブランクカウントは、同じ描画を所定回数(本実施例では2回)実行するためのカウンタである。前述のメイン処理におけるステップD25で説明したフレーム切替タイミングは、原則的に、このVブランクカウントが所定値(本実施例では2)に到達した時点である。
ステップE33に進むと、圧縮展開の実行結果はエラーか否か判定し、エラーならばステップE34以降の処理を実行しないでリターンし、エラーでなければステップE34に進む。ここで、圧縮展開の実行結果とは、圧縮されたムービーのデータを展開する処理が成功したか否かの結果を意味する。この圧縮展開の実行結果を示す判定値が、ステップE21の圧縮展開イベント割込み処理で設定される構成となっており、このステップE33の判定は、この判定値に基づいて実行される。なお、このステップE33があることにより、ムービーの展開に失敗すると、Vブランクカウントが所定値に到達していてもフレーム切替は実行されず、同じ描画が繰り返されることになる。
ステップE34に進むと、Vブランクカウントの値が所定値以上か否か(本例では1より大きい値か否か)判定し、所定値以上ならば(1より大きい場合には)ステップE35乃至E38を順次実行した後にリターンし、所定値以上でなければ(1より大きくない場合には)ステップE35以降を実行しないでリターンする。このステップE34は、フレーム切替タイミングになったか否かを実質的に判定している。なお本例では、既述したように同じ描画を2回実行すると、原則的に(即ち、圧縮展開の実行結果がエラーでなければ)、このフレーム切替タイミングになる。但し、2回に限定されず、3回以上であってもよい。
ステップE35乃至E38は、描画内容を切り替えるフレーム切替のための処理である。ステップE35では前述のVブランクカウントを0クリアし、ステップE36ではフレーム切替フラグのオンデータをセットし、ステップE37ではフレームバッファを切り替え、ステップE38では対応するフレームバッファの表示用データ生成を許可する。
ここで、ステップE36で設定されるフレーム切替フラグは、前述したメイン処理におけるステップD25で使用される。即ち、前述のステップD25では、このフレーム切替フラグのオンデータがセットされていると、フレーム切替タイミングであると判定する構成となっている。
また、フレームバッファは、ステップD674で説明した仮想描画空間に相当し、VDP312内のバッファである。このフレームバッファとしては、本実施例の場合、フレームバッファ番号が0番のものと、フレームバッファ番号が1番のものとがある。そして本実施例では、例えば表示用のフレームバッファが0番ならば、1番のフレームバッファは描画作業用となり、交互に表示用として使用される。上記ステップE37では、表示用のフレームバッファを次のものに切り替える処理(本例では、0番から1番へ、或いは1番から0番へ切り替える処理)を実行する。またステップE38では、ステップE37で切り替えた表示用のフレームバッファの表示用データ生成を許可する。
以上説明したVブランク開始割込み処理によれば、圧縮展開のエラーが発生しない限り、同じ描画が所定回数繰り返されてVブランク開始割込みが所定回数発生するとフレーム切替が行われる。本実施例の場合、同じ描画が2回繰り返されてVブランク開始割込みが2回発生するとフレーム切替が行われ、フレーム切替タイミングの周期は、Vブランク開始割込みの周期(例えば1/60秒)の2倍(例えば1/30秒≒33.33ms)になる。
〔サブ間通信のパケット構成例〕
次に、サブ間通信のパケット構成例を図161により説明する。
本例のサブ間通信のパケット構成は、図の上側の表に示すようなデータ構成となっている。各データの説明が図の下側に記載してある。即ち、1バイトのデータがNo.1からNo.12まで合計12個あり、全体の容量(1パケットの容量)は12バイトである。
No.1は、パケット先頭を表すパケット開始コード(STX)のデータ(例えば02H)である。
No.2は、パケットサイズ、即ちサブ間送信データ数(SIZE)のデータ(この場合、12バイトを示すデータ)である。
No.3は、送信元ID(SID)のデータ(端末ID及びグループID)である。
No.4は、送信先ID(DID)のデータ(端末ID及びグループID)である。なお、送信元ID(SID)と送信先ID(DID)のデータは、それぞれ、1バイトのうちの上位ビットがグループID、下位ビットが端末ID(及びブロードキャスト)となっている。ここで、端末IDの範囲は16進数で例えば00乃至0Eの範囲となっており、上記下位ビットのデータが0Fのときには前述のブロードキャストコードのデータとして取り扱われる構成となっている。
No.5は、サブ間メーカコード(MAKER)のデータである。
No.6は、西暦コード(YEAR)のデータ(例えば西暦下2桁)である。
No.7は、サブ間機種コード(TYPE)のデータである。
No.8は、サブ間コマンドMODE(SB_MODE)のデータである。
No.9は、サブ間コマンドACT(SB_ACT)のデータである。
No.10は、自機のゲーム状態を表すSTSのデータである。
No.11は、STXからSTSまでのデータのチェックサムある。
No.12は、パケット終端を表すパケット終了コード(ETX)のデータ(例えば03H)である。
なお、以上説明したサブ間通信のパケット構成例は、あくまで一例であり、各種の態様があり得る。例えば、データは各々1バイト構成でなくてもよいし(例えば、機種コードを複数バイトにするなど)、送る順番も上記構成例の態様に限られない。また、他の意味を持つデータがあってもよいし、逆にデータ数が上記構成例よりも少なくてもよい。また、送信順において、例えば「メーカコード」を2番目に持ってくる態様としてもよい。この態様であると、他メーカの遊技機からのコマンドを効率良く破棄したり、逆に他メーカとのコラボするために対応する受信処理(他メーカコマンド受信処理)に分岐させて効率良く処理したりすることができる。ここで、他メーカコマンド受信処理とは、メーカ毎でコマンド形態が違う場合に、他メーカのコマンド形態に対応したコマンド受信をするための処理である。
〔コマンドの受信処理及び解析処理等の詳細及び作用効果〕
前述したような各プログラムにより、遊技制御装置100からコマンドが演出制御装置300に送信され、このコマンドに基づく演出制御装置300の制御によって各演出手段(表示装置41、盤装飾装置42、枠装飾装置43、盤演出装置44、枠演出装置45、スピーカ12a,12b等)による各種演出が実行される。
以下では、そのうちの本発明の特徴部分である演出制御装置300におけるコマンドの受信処理、解析処理、及びモータ(演出用役物を駆動するモータ)の制御処理の詳細及び作用効果について説明する。
本実施例において本発明の受信処理に相当するのは、図95に示すコマンド受信割込み処理である。また、このコマンド受信割込み処理におけるステップD54で行われる受信コマンド範囲チェック処理(図96に示す)において、本発明の正常性判定(受信処理におけるコマンドの正常性判定)が主に実行されている。そこでまず、このコマンド受信割込み処理について説明する。
なお、コマンドの正常性判定は、コマンドの値が所定範囲にあるか否かの判定である。また、この受信処理におけるコマンドの正常性判定での「所定範囲」とは、コマンドがとり得る値の集合であり、必ずしも連続した値に限られないし、必ずしも複数の値に限定されるものでもない。また、「所定範囲にある」或いは「所定範囲内」とは、「所定範囲」に属するコマンドの値(データ)の何れかに、判定対象のコマンドの値(データ)が一致することを意味する。
コマンド受信割込み処理は、既述したように、遊技制御装置100からコマンドが送信されることにより発生するコマンド受信割込みがあるとステップD41から実行され、正常にSTB信号が入力されていれば、ステップD43において、送信されたコマンドデータ(1バイト)の入力(読み込み)が実行される。次いでステップD44では、入力されたコマンドデータがMODEの範囲か(例えば、80H以上か)判定され、MODEの範囲であればステップD45で当該コマンドデータが受信MODEとして格納される。即ち、正常なコマンドの場合、前述したようにMODE、ACTIONのコマンドデータが順に送られてくるので、ステップD44乃至D47では、まず先に送られるMODEのコマンドデータかどうかを判定して、MODEのコマンドデータであれば当該コマンドデータを受信MODEとして記憶し(ステップD44、D45)、MODEを受信したことを示すMODE受信フラグをOKにセットし(ステップD46)、ACTIONを受信するまでの時間を監視する受信監視タイマをセットし(ステップD47)、リターンする。ここで、リターンするということは、このコマンド受信割込み処理というルーチンの1シーケンスの実行が終了することを意味するのはいうまでもない(以下同様)。
その後、ACTIONのコマンドデータが送られてくると、またコマンド受信割込みが発生して、コマンド受信割込み処理がステップD41から再び開始され、正常にSTB信号が入力されていれば、ステップD43において、送信されたコマンドデータ(1バイト)の入力(読み込み)が実行される。次いでステップD44では、ACTIONのコマンドデータであるので、判定結果がNOになってステップD48に進み、ステップD48では前記MODE受信フラグの判定が実行され、次のステップD49では前記受信監視タイマの判定が実行される。これら判定では、仮に、今回入力されたコマンドデータに先だって、MODEのコマンドデータが入力されていない場合には、ステップD48の判定結果がNOになり、ステップD59(MODE受信フラグをNGにセット)が実行された後に、リターンする。また、MODEのコマンドデータが入力された時点からの時間が規定時間を超えている場合には、ステップD49の判定結果がYESになり、やはり、ステップD59が実行された後に、リターンする。
そして、MODEのコマンドデータに続いて、それと組となるACTIONのコマンドデータが規定時間内に入力された場合(即ち、正常なコマンドが正常に送信された場合)には、ACTIONのコマンドデータによるコマンド受信割込み発生の際に、ステップD48、D49の判定結果がそれぞれYESとNOになって、ステップD50以降に進む。こうしてステップD50以降に進むと、まずステップD50において、今回入力されたACTIONのコマンドデータが受信ACTIONとして格納される。
したがって、このコマンド受信割込み処理(特にステップD41乃至D49)によれば、規定のMODE範囲内にあるMODEのコマンドデータに続いて、規定のMODE範囲内でないコマンドデータ(即ち、当該MODEのコマンドデータと組となるACTIONのコマンドデータと推定されるデータ)が規定時間内に入力されないと、ステップD50以降に進むことはなく、入力されたコマンドデータ(MODEとACTIONのコマンドデータ)をコマンドバッファに格納するというコマンド受信を確定させる処理(ステップD56)は実行されない。そして、ステップD56の処理によってコマンドバッファに格納されなければ、ステップD43で入力されたコマンドは、例えば受信MODEとしてステップD45で一旦記憶されたとしても演出の制御には使用されない(即ち、無効となる)し、その後に新たなコマンドがステップD43で入力された場合に、例えば上書きされて消去される(即ち、破棄される)。
以上説明したコマンド受信割込み処理の前半部分(ステップD41乃至D51、及びステップD59)は、ステップD44においてコマンドの値の範囲判定(一種の正常性判定)を行ってはいるが、上述したように本例では、MODEのコマンドデータとACTIONのコマンドデータが順に規定時間内に入力されたか否かを確認しつつ、受信したコマンドデータを受信MODE又は受信ACTIONとして格納することが主目的の処理であり、ACTIONのコマンドデータが適正なACTION範囲のデータか否かの判定は行っていない。そのため、コマンド受信割込み処理の後半部分(ステップD52以降)では、ステップD54の受信コマンド範囲チェック処理において、コマンドの値が所定範囲にあるか否かの正常性判定(この場合、MODE範囲の判定とACTION範囲の判定の両方)を行っている。
即ち、ステップD50に進んで、今回入力されたACTIONのコマンドデータが受信ACTIONとして格納されると、コマンドバッファが満杯でなければステップD52の判定結果がNOとなってステップD53を経てステップD54に進み、このステップD54では、受信コマンド範囲チェック処理を実行する。
この受信コマンド範囲チェック処理では、図96で説明したように、まずステップD61において、ステップD45で格納された受信MODEの値が所定範囲(正常なMODE範囲)にあるか否かの判定を行う。
ここで、このステップD61の判定の基準となる所定範囲とは、正常なMODEのコマンドデータがとり得る値の集合であり、いわゆる歯抜けチェックも行うものであることが望ましい。例えば、MODEのコマンドデータの最小値が80Hで最大値がFFHと決まっている場合、上記受信MODEの値がこの80H〜FFHの範囲内にあるか否かだけを判定する態様(不連続な部分の歯抜けチェックを行わない態様)でもよいが、この判定に加えて、上記受信MODEの値が80H〜FFH内の未定義の値(即ち、使用されていない値)に一致していないか否かも判定し、未定義の値に一致している場合(例えば、受信MODEの値が後述する図162のCEHである場合)には所定範囲でないとしてステップD61の判定結果がNOとなる態様(不連続な部分の歯抜けチェックを行う態様)としてもよい。
また本例の場合、前述のステップD44では、このステップD61と同様の判定をしていて、このステップD61は受信処理におけるMODEのコマンドデータの2度目の正常性判定(2重チェック)の意味合いを持つと考えることもできるが、これらステップD44とステップD61の判定の基準となる所定範囲は同じでもよいが、違ってもよい。例えば、前述のステップD44では、上記歯抜けチェックを行わない態様とし、ステップD61では上記歯抜けチェックも行う態様としてもよい。ステップD44は、前述したように、MODEのコマンドデータとACTIONのコマンドデータが順に規定時間内に入力されたか否かを確認することが主目的の前半部分の処理であり、歯抜けチェックを行う必要性は低く、歯抜けチェックを行わない態様であればその分より高速に処理を終了できるからである。また、ステップD44での判定は、例えばMODEの値としての最低値(例えば、80H)よりも大きいことだけを判定する態様(即ち、ACTIONのデータと区別するだけの判定を行う態様)でもよい。
なお、ステップD44で上記ステップD61と同じ正常性判定を行う構成とし、MODEのコマンドデータの正常性判定としてはステップD44のみを行い、ステップD61を削除した態様もあり得る。その場合には、ステップD44で上記歯抜けチェックも行う態様が望ましい。
また、受信コマンド範囲チェック処理では、図96で説明したように、受信MODEのデータが所定範囲内にあってステップD61の判定結果がYESになると、次にステップD62乃至D65において、ステップD50で格納された受信ACTIONの値が所定範囲(正常なACTION範囲)にあるか否かの判定を行う。
即ち、ステップD62では、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最小値(ACTION_min)を取得し、次のステップD63では、前記受信MODEの値に対応するACTIONの値としてあり得る値のうちの最大値(ACTION_max)を取得する。そして、ステップD64では、ステップD50で格納された受信ACTIONの値がステップD62で取得された最小値よりも小さいか判定し、ステップD65では、前記受信ACTIONの値がステップD63で取得された最大値よりも大きいか判定する。
例えば、PROM321には、図165に例示するようなデータテーブル(有効Mode,Act判定テーブル)が記憶されていて、このデータテーブルから上記最小値(ACTION_min)や最大値(ACTION_max)が取得される。図165では、「ac下限」と書かれた列に上記最小値(ACTION_min)のデータが書かれており、「ac上限」と書かれた列に上記最大値(ACTION_max)のデータが書かれていて、同じ行の右端にかかれているデータが対応するMODEの値を示している。なお、図165において、「0x」や「h」は、本明細書で使用している「H」と同様に、16進数であることを示している。また、図165の内容は、後述する図162(コマンド範囲の表)の内容と対応している。
さて、この図165の具体例の場合であれば、仮に受信MODEの値がCBH(図165では上から12行目の「CBh;16秒特殊リーチ」)であると、最小値(ACTION_min)としては同じ12行目の0AH(「0x0A」)が取得され、最大値(ACTION_max)としてはやはり12行目の0EH(「0x0E」)が取得される。そして、ステップD64、D65では、受信ACTIONのコマンドデータが、この所定範囲(0AH〜0EH)を外れていないか否かが判定される。
そして、前述のステップD61で受信MODEのデータが所定範囲である(例えば80H〜FFHの範囲である)と判定され、かつ、上記ステップD64、D65の判定で受信ACTIONのコマンドデータが所定範囲である(例えば受信MODEの値がCBHの場合には0AH〜0EHの範囲である)と判定されると、ステップD66に進んでコマンド範囲正常フラグがセットされてリターンするため、図95のステップD55の判定結果がYESとなり、ステップD56が実行される。しかし、コマンドデータが不正常であり、前述のステップD61で受信MODEのデータが所定範囲でない(例えば80H〜FFHの範囲でない)と判定されるか、上記ステップD64、D65の判定で受信ACTIONのコマンドデータが所定範囲でない(例えば受信MODEの値がCBHの場合には0AH〜0EHの範囲でない)と判定されると、ステップD67に進んでコマンド範囲異常フラグがセットされてリターンするため、図95のステップD55の判定結果がNOとなり、ステップD56は実行されない。なお、ステップD56が実行されなければ、前述したように、ステップD43で入力されステップD45やD50で格納されたMODEやACTIONのコマンドデータは、無効となり破棄される。
したがって、以上説明したコマンド受信割込み処理及び受信コマンド範囲チェック処理によれば、コマンドが遊技制御装置100から送信されることにより発生するコマンド受信割込み時にコマンドを受信する受信処理が実現され、この受信処理では、受信した当該コマンドの値が所定範囲にあるか否かの正常性判定も実行される。そして、この受信処理での前記正常性判定結果が前記所定範囲内となることが、当該コマンドに応じた演出手段の制御のための処理を実行する必要条件となっている。何故なら、前述のステップD56が実行されなければ、当該コマンドはコマンドバッファに格納されずに、無効とされ破棄されるため、当該コマンドに対応した演出制御が実行されないからである。さらにいえば、図97のステップD78の受信コマンド解析処理(コマンドを解析して実行するための処理)は、コマンドバッファに格納されたコマンドデータに対してのみ実行されるから(ステップD74参照)、コマンドバッファに格納されないコマンドデータに対しては受信コマンド解析処理が実行されないからである。
次に、本実施例において本発明の解析処理を実行しているのは、図97に示す受信コマンドチェック処理の中のステップD78の受信コマンド解析処理(図98乃至101)である。なお、図97の受信コマンドチェック処理自体(ステップD71乃至D77、D79、D80)は、既述したフローチャートの説明から明らかなように、受信したコマンドデータ(即ち、コマンドバッファのデータ)をRAM(本例では、CPU311内のRAM311a)内の所定の記憶領域(コマンド領域)にコピーしたり、このコマンド領域のデータを解析のために逐次ロードしたりする処理であり、言わば解析処理のための準備処理であって、解析処理の本体は前記受信コマンド解析処理である。
なお図166は、演出制御装置300の主なルーチンの関係を示す図である。この図166にも示すように、本発明の解析処理を実行している受信コマンド解析処理は、メイン処理において実行される受信コマンドチェック処理のサブルーチンであるため、メイン処理におけるステップD25で説明したフレーム切替タイミングで所定の処理周期(例えば1/30秒)毎に実行される。これに対して、本発明の受信処理を実行しているコマンド受信割込み処理は、前述したコマンド受信割込みによって不定期に開始され、上記受信コマンド解析処理とは別個に実行される処理である。また、演出用役物(例えば、ムービングライト14)を駆動するモータ(パルスモータ)の制御処理(モータ用タイマ割込み処理)は、上記受信コマンド解析処理やコマンド受信割込み処理とは独立した別個のルーチンにおいて、専用の割込み周期で実行される。
受信コマンド解析処理(図98乃至101)は、解析処理を統括するルーチンである親モジュールに相当し、この受信コマンド解析処理におけるステップD95、D101、D116、D134、D140、D151でそれぞれ呼び出されて実行される変動パターン対応図柄設定処理が子モジュールに相当する。
これら親モジュールと子モジュールでは、前記コマンドの値が前記コマンドの種別毎の所定範囲にあるか否かの種別判定(本発明の解析処理におけるコマンドの正常性判定に相当)をそれぞれ実行し、各モジュールでの種別判定結果が前記所定範囲内となることを、当該コマンドに応じた前記演出手段の制御のための処理(ステップD149又はD161;受信コマンド別初期化処理1又は2)を実行する必要条件としている。即ち本実施例は、本発明の解析処理におけるコマンドの正常性判定が、上記親モジュールと子モジュールとで実行される態様となっている。
ここで、この解析処理におけるコマンドの正常性判定での「所定範囲」とは、該当する種別の正常なコマンドがとり得る値の集合であり、必ずしも連続した値に限られないし、必ずしも複数の値に限定されるものでもない。また、「所定範囲にある」或いは「所定範囲内」とは、「所定範囲」に属するコマンドの値(データ)の何れかに、判定対象のコマンドの値(データ)が一致することを意味する。
以下、具体例を挙げて各モジュールの上記種別判定等について説明する。
まず、親モジュールである受信コマンド解析処理では、フローチャートの説明で既述したように、ステップD93、D99、D111、D112、D113、D114、D131、D132、D145、D146において受信したコマンドデータのうちの上位バイト(MODE)の値がコマンド種別毎の所定範囲にあるか判定しており、これらステップの処理が親モジュールでの種別判定(正常性判定)の処理を構成している。
例えば図162及び図163は、変動系コマンドの一例を示す図である。この表は、変動系コマンドの上位バイト(MODE)と下位バイト(ACT)のデータと、各データに対応する変動パターンの種類と、各データの組合せの有無の一例を表している。この場合、MODEのデータ(前半変動パターンを示すデータ)は、C0H(Hは16進数を表す)が超短縮変動、C1Hが短縮変動、C2Hが通常変動、C3Hが特定変動、C4Hが特殊変動、C5Hが疑似連1変動、C6Hが疑似連2変動、C7Hが通常リーチ、C8Hが疑似連1リーチ、…(以下省略)といったように予め定められている。また、ACTのデータ(後半変動パターンを示すACTIONのデータ)は、01Hがリーチなし、02HがはずれNリーチ1(Nはノーマル)、03HがはずれNリーチ2、04HがはずれSP1リーチA(SPはスペシャル)、…(以下省略)といったように予め定められている。そして、表中の白丸印「○」は該当のデータの組合せよりなるコマンドが存在することを示しており、表中のバツ印「×」は該当のデータの組合せよりなるコマンドが存在しないことを示しており、この設定は機種によって異なる。
図162及び図163に示す機種の場合、MODEがC0HからC6Hまでの範囲では、ACTは01H(リーチなし)しかあり得ない。このため、このMODEがC0HからC6Hまでの範囲(リーチなしという点で共通するMODEのデータの範囲)を1つの種別範囲ととらえることができ、これを変動系コマンド範囲1としている。また、MODEがC7HからCEHまでの範囲は、リーチ有りの種別範囲ととらえることができ、これを変動系コマンド範囲2としている。また、MODEがCFHから所定値(図示省略)までの範囲は、突発専用の種別範囲であり、変動系コマンド範囲3としている。以下省略するが、このようにMODEの値は、多数の比較的狭い種別範囲としてグループ分けすることができ、前述したステップD93、D99等では、それぞれ、MODEの値がこのような範囲内にあるか否かを少なくとも判定している。そして、この範囲内にあることを、当該コマンドに応じた前記演出手段の制御のための処理(ステップD149又はD161)を実行する必要条件としている。
例えば、前記ステップD93では、MODEの値が図162に示す(a)変動系コマンド範囲1の範囲内にあるか否かを判定し、範囲内にあればステップD94に進んで、その後のステップD95、D96(即ち、子モジュールでのチェック)で無効とされない限りステップD97、D98を実行している。ここで、ステップD97、D98が実行されることは、今回受信した変動系コマンドと組を成す図柄コマンドをその後に受信したときに、ステップD113を経てステップD125(コマンドを確定させる処理)が実行されることの必要条件となっている。また、ステップD125が実行されなければ、ステップD147の判定がいYESとなってステップD149又はD161は実行されない。したがって、ステップD93の種別判定結果が所定範囲内となることが、ステップD149又はD161がその後に実行されるための必要条件となっている。
また、前記ステップD99では、MODEの値が図162に示す(b)変動系コマンド範囲2の範囲内にあるか否かを判定し、範囲内にあればステップD100に進んで、その後のステップD101、D102(即ち、子モジュールでのチェック)で無効とされない限りステップD103、D104を実行している。ここで、ステップD103、D104が実行されることは、前述のステップD97、D98と同様に、今回受信した変動系コマンドと組を成す図柄コマンドをその後に受信したときに、ステップD113を経てステップD125(コマンドを確定させる処理)が実行されることの必要条件となっている。したがって、ステップD99の種別判定結果が所定範囲内となることが、ステップD149又はD161がその後に実行されるための必要条件となっている。
以上のことは、他の種別判定のステップD111、D112、D113、D114、D131、D132、D145、D146でも同様である。即ち、各種別判定の結果が所定範囲内となることが、ステップD149又はD161がその後に実行されるための必要条件となっている。
そして、これら種別判定のステップD93、D99等でMODEが所定範囲内にないと判定されて判定結果が全てNOになる場合には、ExModeは設定されずステップD147を経てリターンするため、当該コマンドは採用されずに無効となり、結果的に当該コマンドは破棄されることになる。なお、「破棄される」とは、当該コマンドのデータが採用されないまま、例えば次のコマンドのデータで上書きされることによって消去されることを意味する。
なお、既述したように、前記ステップD93、D99等では、MODEのデータの歯抜けチェックも行うようにしてもよい。これは、機種によっては種別範囲内の全てのデータが使用されるわけではなく、使用されない部分(不連続な部分)が有り得るため、特定の種別範囲に属するが使用されないデータは採用しないためである。例えば、図162の場合、MODEのデータのCEHは、変動系コマンド範囲2の種別範囲内(最小値と最大値の間という意味で範囲内)であるが、ACTのデータ全てに対して「×」であり存在しないはずであるので、MODEのデータがCEHである場合には、ステップD99の判定結果がNOとなる態様(即ち、ステップD99の判定で基準となる所定範囲には、不連続な部分の無効なデータを含まない構成)としてもよい。この態様の場合、種別範囲(変動系コマンド範囲2)と、ステップD99の種別判定の基準となる所定範囲とは、厳密には異なるものとなる(即ち、上記CEHのような歯抜けの値を範囲内に含むか含まないかの違いで異なるものになる)。
また、本例の親モジュールである受信コマンド解析処理は、一例であることはいうまでもなく、例えば種別判定の範囲をさらに細分化してもよい。例えば、ステップD114で判定している単発コマンドの範囲をさらに細分化してもよい。例えば、単発コマンドの範囲を、客待ちデモコマンド、保留数コマンド、エラー系コマンドなどの範囲に分けて判定するようにしてもよい。また、さらにエラー系のコマンドにも「前枠開放エラー」「オーバーフローエラー」等、複数のものがあり、これらコマンドの値は基本的に連番になるように構成しているので、このようなグループ分けで、さらに細分化してもよい。
次に、子モジュールである変動パターン対応図柄設定処理(図102)では、前述したステップD172においてMODEの値がコマンド種別毎の所定範囲にあるか判定しており、このステップD172の処理が子モジュールでの種別判定(正常性判定)の処理を構成している。
ここで、この子モジュールでの種別判定は、親モジュールよりも広い範囲を基準として行われる。本例の場合、ステップD172での判定は、変動系コマンド範囲全体が基準となる。即ち、図163に示すように、変動系コマンド範囲1、変動系コマンド範囲2、及び変動系コマンド範囲3を全て含む変動系のMODEの値がとり得る全範囲((c)変動系コマンド範囲)を基準として行われる。但し、ステップD134、D140、D151の何れかで本ルーチンが実行されている場合には、先読み変動系コマンド範囲(図示していないが、先読み変動系コマンド範囲1、先読み変動系コマンド範囲2、及び先読み変動系コマンド範囲3を含む)を基準として行われる。なお、この子モジュールの種別判定においても、MODEのデータの歯抜けチェックも行うようにしてもよい。
そして、この子モジュールでは、上記種別判定の結果、所定範囲内となった場合にはステップD173以降に進み、所定範囲外となった場合にはステップD172でNOとなってリターンする。そして、ステップD172を経てリターンすると、ステップD177(待受け図柄情報となる図柄種別情報を返す処理)が実行されないため、親モジュールのステップD98、D104等で待受け図柄情報が格納されず、今回受信した変動系コマンドと組を成す図柄コマンドをその後に受信したときに、ステップD123の判定結果がNOとなって、ステップD125が実行されず、その結果、ステップD149又はD161も実行されない。このため、子モジュールでの種別判定結果が所定範囲内となることも、やはり、当該コマンドに応じた前記演出手段の制御のための処理(ステップD149又はD161)を実行する必要条件となっている。
なお、本例の子モジュールである変動パターン対応図柄設定処理(図102)では、フローチャートで説明したように、ステップD181乃至D184等において、ACTのデータのチェック(歯抜けチェックを含んでもよい)を行っており、異常なデータ(無効なデータ含む)である場合には、ステップD185或いはステップD176が実行されて無効コマンド情報が返される。この無効コマンド情報が返されると、前述したようにステップD96、D102等を経てリターンし、その結果、当該コマンドは破棄される。
次に本実施例では、前述した図158に示すモータ用タイマ割込み処理において、演出手段としての演出用役物(例えば、ムービングライト14)を駆動するモータ(パルスモータ)の制御処理を実行し、このモータ用タイマ割込み周期が前記受信コマンド解析処理(図98)の周期(例えば33.33ms)よりも短い間隔(例えば1ms)に設定されている。そして、割込み優先順位は、このモータ用タイマ割込みよりもコマンド受信割込み処理(図95)の方が高く設定されている。
このように本実施例の遊技機の演出制御装置300は、コマンドが遊技制御装置100から送信されることにより発生するコマンド受信割込みがあると、前記コマンドを受信するための受信処理(コマンド受信割込み処理)を実行し、この受信処理で受信した当該コマンドの解析処理(受信コマンド解析処理)を、前記受信処理とは別個に所定周期で実行する構成であり、当該コマンドの値が所定範囲にあるか否かの正常性判定を、前記受信処理と前記解析処理とで、それぞれ実行し、各処理での前記正常性判定結果が前記所定範囲内となることを、当該コマンドに応じた前記演出手段の制御のための処理を実行する条件としている。また、演出手段としての演出用役物を駆動するモータの制御処理を、前記解析処理を実行する所定周期と異なる専用のモータ用タイマ割込み周期で実行する。
このため、コマンドの取りこぼしを防止しつつ、また異常なコマンドによる誤動作や無駄な制御処理動作等を回避しつつ、制御処理全体の高速化が実現できるとともに、前記モータの制御処理を前記コマンドの受信処理や解析処理の影響を受けることなく最適な周期で実行できる。したがって、遊技制御装置100から演出制御装置300に送信されるコマンドの受信及び解析が効率良く実現でき、CPU311の負荷軽減も実現できるとともに、演出用役物を駆動するモータも効率良く制御できる。
というのは、例えばコマンドの受信処理においてのみコマンドの正常性判定を行う構成であると、異常なコマンドによる誤動作等を防止するには、この受信処理で詳細な正常性判定を全て行う必要があり、そうなるとコマンドの取りこぼしの可能性が高まり、また前記モータの制御に悪影響がある虞がある。何故なら、コマンドは場合によっては主基板から非常に短い間隔(例えば、前述した4msecの間隔)で連続して送信され、初めに送信されてくるコマンドの受信処理(詳細な正常性判定含む)に時間をかけていると、次のコマンドが送信されてくるタイミングに間に合わなくなるからである。また、コマンドの受信処理に時間がかかり、このコマンド受信割込み処理を早く抜けられないと、モータの制御処理が十分短い周期で実行できず、例えばモータ(パルスモータ)のパルス幅等に悪影響を与えてしまい、モータを目標の速度で作動させることができないなどの不具合が生じる虞があるからである。
一方、コマンドの解析処理においてのみコマンドの正常性判定を行う構成(即ち、コマンドの受信処理ではコマンドの正常性判定を行わない態様)であると、コマンドの解析処理に非常に時間がかかるようになり、コマンド関連の処理全体(即ち、コマンドの受信処理と解析処理の全体)にかかる時間が増大し、他の処理(演出表示の制御処理など)に時間をかけられなくなってしまうなどの弊害が生じる。また、コマンドを記憶保存するコマンドバッファの容量も増大し、高価なRAMの容量増によるコスト増を招くという弊害も生じる。何故なら、コマンドの受信処理でコマンドの正常性判定を行っておらず、ノイズ等もコマンドとして受信してしまうので、異常なコマンドを含む多数のコマンドの全てについてコマンドバッファへの記憶と解析処理(詳細な正常性判定含む)を実行しなければならなくなるからである。なお、コマンドの解析処理は一定の周期で行うようになっているので、その周期より早い周期でコマンドを受信するとコマンドが溜まっていく。そして、溜まったコマンドは1周期内で処理(チェック、解析、実行)する必要がある(コマンドの送信間隔に余裕はないと考えた方が安全な設計になるため)。このため、全ての異常なコマンドまで解析処理するようになると、1周期の解析処理に多大な時間を要する場合が生じて、他の処理にかける時間をその分だけ毎回減らさなければならなくなり、前記モータの制御にやはり悪影響が生じる虞もある。
しかし、本実施例のようにコマンドの正常性判定をコマンドの受信処理と解析処理とでそれぞれ実行する構成であれば、コマンドの正常性判定の負担を適度に分担することができ、コマンドの受信処理ではコマンドの取りこぼしを回避し、かつ、受信処理において異常なコマンドをある程度排除することで、解析処理にかかる時間を格段に低減することができ、全体として処理の高速化を図ることができ、これにより前記モータの制御への悪影響の虞も無くなる。そして解析処理にかかる時間が減った分だけ、例えば他の演出のための処理に時間をかけることができるようになり、演出量の増加が実現できる。また、受信処理において異常なコマンドをある程度排除することで、コマンドバッファの容量が低減でき、コスト低減に貢献することもできる。
特に本実施例の場合には、正常性判定の基準となる所定範囲が、解析処理よりも受信処理の方が広い。即ち、コマンドの正常性チェックとして、受信処理(割込み処理)では大まかな範囲チェックを行い、解析処理では詳細なチェックを行っている。具体的には、コマンドの正常性判定の基準となる所定範囲が、受信処理ではコマンドがとり得る値の集合全体であり、解析処理では受信した当該コマンドが該当する種別の正常なコマンドがとり得る値の集合である。このため、受信処理における正常性判定は特に短時間で済むもの(例えば、前述したように最小値及び最大値と比較するだけのもの)となり、割込み時の負荷が軽減され、受信処理は早々に終了することができ、次のコマンドが確実に受け付けられるようになって、コマンドの取りこぼしを防止できる信頼性や、前記モータの制御上の不具合を防止できる信頼性も特に高まる。また、受信処理で異常なコマンドがある程度排除されて解析処理の負担が軽減されるとともに、解析処理では詳細な正常性判定が行われて異常なコマンドによる誤動作等が確実に防止される。
また本実施例では、各処理における正常性判定結果が所定範囲外となった場合には、いずれの処理においても(即ち、受信処理の場合でも、解析処理の場合でも)、当該コマンドを破棄するか又は無効とする。このため、異常なコマンドによる誤動作防止や上述した解析処理の負担軽減の効果が確実に実現される。
以上説明した受信処理と解析処理による正常性判定の分担の効果を、まとめて列挙すると次のようになる。即ち、処理を全体的に高速化することができる、前記モータの制御への悪影響の虞が無くなる、CPUの負荷軽減になる、演出量の増加に繋がる、割込み時の負荷も小さい、コマンド受信割込み処理(受信処理)が高速化する、コマンドの取りこぼしがなくなる、受信バッファを効率良く解放できる、解析処理への負荷が減る、といった各種効果がある。
次に、演出用役物を駆動する前記モータの制御処理についての効果をさらに説明する。仮に、前記モータの制御処理を例えばコマンドの解析処理と同じ周期(本例ではフレーム切替の周期)で行うと、前記モータの制御処理を最適な周期で行うことができず、効率的かつ的確に前記モータを制御することができない虞がある。特に前記モータがパルスモータ(ステッピングモータ)の場合、当該パルスモータを制御するパルス信号のパルス幅等を的確に設定して目標速度(特に高速)で確実に作動させるためには、当該パルスモータの制御処理の実行周期を専用の周期とし、かつなるべく短い周期とすることが望ましく、少なくとも本例のようなフレーム切替の周期(例えば33.33ms)では前記パルス幅等を最適に設定する処理が複雑になるか困難になる。また、前述したコマンド受信割込み処理などの他の処理に時間がかかることによる影響でこのモータの制御が困難になる問題もあり、さらに一方では、遊技制御装置100からコマンドが連続して送信されてきた場合に前述のコマンドの受信処理や解析処理を高速で処理する必要があるという課題があった。
これに対して、本実施例の構成であれば、前述したようにコマンド受信割込み処理などの高速化を実現して上記課題を解決しつつそれによる前記モータ制御への悪影響を排除し、さらに前記モータの制御処理が専用のタイマ割込み(モータ用タイマ割込み)によって専用の周期(例えば1ms)で実行されるため、前記モータの制御処理を良好にかつ効率良く実現できる。特に本例の場合、前記モータがパルスモータであるため、これを制御するパルス信号のパルス幅等に悪影響を与えないようにすることができ、このパルスモータの制御が容易かつ的確に実現できる。
また本例では、前記モータ用タイマ割込み周期が、前記解析処理を実行する所定周期(例えば33.33ms)よりも格段に短い周期(例えば1ms)であるため、モータを高速で作動させることも簡素な制御処理で効率的かつ的確に実現できる。特にパルスモータ(ステッピングモータ)を高速で回転させるためには、そのパルス制御(前述した図158のステップE4、E5などの制御処理)を十分に短い周期で頻繁に行う必要があり、本例では、そのような短い周期となっている。
また本例では、割込みの優先順位が、前記モータ用タイマ割込みよりも前記コマンド受信割込みの方が高いため、前記モータ制御の実行周期を最適としつつ、前記コマンド受信の信頼性を十分に高く保持することができる。というのは、前記モータ制御の効率性や的確性を高めることができたとしても、それにより前記コマンド受信の信頼性が低下したのでは実用上問題がある。仮に、割込みの優先順位が、前記モータ用タイマ割込みよりも前記コマンド受信割込みの方が低いと、モータ用タイマ割込みによりコマンド受信割込みの実行が阻害されて前記コマンドを取りこぼすなどの障害が生じる虞があり、その場合前記モータ制御の不具合(即ち、演出用役物の動作の不具合)よりも重大な不具合(例えば、大当り時の変動表示が実行されないなどの不具合)が発生する恐れがある。しかし本例では、割込みの優先順位が、前記モータ用タイマ割込みよりも前記コマンド受信割込みの方が高いため、両方の割込みが同時期に重複して発生した場合には、前記コマンド受信割込みが優先して実行され、場合によっては前記モータの制御を犠牲にしてでも確実にコマンドの受信が遂行されて、前記コマンドの取りこぼし等による重大な不具合を信頼性高く防止できる効果がある。
また、本実施例の遊技機では、遊技制御装置から送信されるコマンドの値がコマンドの種別毎の所定範囲にあるか否かの種別判定(正常性判定)を、解析処理における親モジュールと子モジュールとで、それぞれ実行し、各モジュールでの種別判定結果が所定範囲内となることが、当該コマンドに応じた前記演出手段の制御のための処理を実行する必要条件となっている。
このため、コマンドを先ず上記種別判定(範囲チェック)により限定して無駄なデータやプログラムを少なくすることができるから、コマンドの解析処理のプログラム(処理に必要な各種データ含む)が効率良く作成できるという効果もある。
というのは、全てのコマンドの値に応じたマトリクス形状のチェック用データテーブルを設けて解析するという構成も原理的には有り得るが、例えば本例のようにMODE(1バイト)+ACTION(1バイト)のようなデータ構成でコマンドが形成されている場合、256通り×256通り=65536通りの膨大なデータ量が必要になる。そして、コマンドの値は異機種間で完全には一致していないので、この大きさのデータを機種開発毎に確認・修正することになり、この構成は現実的ではない。そこで、本実施例のように、先ずコマンドを範囲チェックにより限定すれば、無駄なデータやプログラムを少なくすることができ、機種開発毎に行うデータやプログラムの確認・修正作業が格段に楽になり、またROMの容量も少なくて済む。遊技機のコマンドには、必ずグループが存在するので、このような範囲チェックは有効である。
また本実施例では、子モジュールでも種別判定のチェックを行うことで多重チェックとなるので、静電気ノイズの多い環境で使用されることの多い遊技機における誤動作の防止に繋がるし、プログラミングの観点から見てもモジュール間の結合度が弱くなるので開発効率の向上にも繋がる。
しかも本実施例では、親モジュールの方がチェックする範囲が狭い構成であり、分岐する前に狭い範囲まで限定するので、対応する処理を細分化しやすいという利点がある。また、親モジュールの方がチェックする範囲が狭いということは、逆に子モジュールでは親モジュールよりも広い範囲でチェックすることになるから、子モジュールでのチェックは予備のようなもの(親よりも緩い条件でコマンドの正常性を再チェックするもの)となり、例えば、変動パターン範囲のMODEであるか否か(前述の具体例でいうと、MODEのデータが例えばC0H〜DFHの範囲内のデータであるか否か)をチェックすれば、十分効果があり、基本仕様の値を使用しておけば、異機種間でも共通に使えるので、開発効率が上がる。
さらに言えば、実施例に基づく方法により、親モジュールでの範囲チェックが同系列の中でも近い意味のコマンド群となるように範囲を狭めているので、対応する処理を効率良く選択できる。近時の遊技機ではコマンドを新規受信した時の処理量が増加する傾向があるので、コマンド別の対応処理を効率良く選択することはCPUの負荷軽減になり、軽減した分に更なる処理を割り当てることができ、ひいては演出量の増加に繋がる。
また、子モジュールの方が親モジュールよりもチェック範囲を広くしておくことで、本実施例のように、親モジュールでの範囲チェックで分かれた分岐先において共通の子モジュールを使用することが可能となる。範囲の設定次第では、異機種間でも子モジュールを共通に使用できるので、異機種間でのプログラムデータ変更量を少なくでき、機種開発を効率良く行うことができるようになるという利点もある。
次に、本発明の適用範囲について説明する。
(1)遊技機は、遊技制御装置と演出制御装置を備えて遊技を行うものであれば、実施例のような例に限らず、例えば封入球式遊技機、スロットマシン等にも適用できる。
(2)また、演出制御装置が制御する演出手段(演出用役物含む)は、表示装置、表示装置以外の役物(動作する人形など)、スピーカなどの音声出力機器、LED等の光による装飾機器などのうち、何れか1つ以上であればよい。本発明は、遊技制御装置から演出制御装置に送信されるコマンドのチェック処理及び演出用役物のモータ制御に特徴を有するものであるため、極端な例を挙げると、表示装置の無い遊技機(表示装置以外の演出手段を有する遊技機)でもよい。また、本発明のモータで駆動される演出用役物は、ムービングライトに限られず、例えば上述した動作する人形などでもよく、モータで駆動されるものであればいかなるものでもよい。また、この演出用役物は、遊技機の枠側に設けられるものでもよいし、盤側(センターケース内、或いはセンターケース外)に設けられるものでもよいし、配置位置も限定されない。
(3)演出手段として表示装置を有する場合、その表示装置は、液晶を用いた表示装置に限らず、例えば有機EL、ブラウン管、ドットLED、7セグメントLED、電子ペーパのように曲がる素材を用いた装置など、表示内容を変化させて演出できる機器であれば何でもよい。
次に、本発明の変形例について説明する。
本発明は、以下のような変形例であってもよい。
(1)前述の実施例は、受信処理におけるACTIONのコマンドデータの正常性判定(図96)において、最小値と最大値に対するチェックのみを行って歯抜けチェックを行っていないが、この受信処理におけるACTIONのコマンドデータの正常性判定においても、前述した歯抜けチェックを行う構成としてもよい。
(2)前述の実施例では、親モジュールも子モジュールもプログラムロジック的に範囲チェックを行うが、この態様に限定されない。例えば、親モジュールはプログラムロジック的に範囲チェックを行うが、子モジュールではマトリクス状のデータテーブルを用いてチェックするようにしてもよい。その際、子モジュール用のデータテーブル上で定義されるコマンドの範囲は親モジュールよりも広くして共通性を高めるようにすることが望ましい。例えば、前述の実施例のステップD172において、図164に示すマトリクス状のデータテーブルを用いてMODEのデータの範囲チェック(歯抜けチェックを含んでもよい)を行ってもよい。ここで、図164に示すデータテーブルにおける「0」が、図163の「×」に相当する。
なお、このように子モジュール用のデータテーブルを設けても、親モジュールによって範囲が限定されているため、そのデータテーブルのデータ数は例えば32×32程度であり、全てのコマンドに対するデータテーブル(256×256)を設ける場合に比べれば、データ数は格段に少なくて済む。
(3)前述の実施例は、映像、音声、装飾、役物の動作を1枚の演出制御基板で制御する例であるが、これに限らず、例えば複数の演出制御基板で制御する構成にしてもよいし、あるいは同一基板上に複数のCPUを実装して分担制御する構成にしてもよい。
次に、前記実施例及び変形例等から抽出される他の発明概念について説明する。
「発明概念A1」
実施例1では、遊技制御装置100から演出制御装置300へ組となる変動パターンコマンド及び図柄コマンドを送信した場合、先に送られる変動パターンコマンドを演出制御装置300が受信した時点で、演出に関する記憶領域がデフォルト値に設定され、後で送られる図柄コマンドを取りこぼしすと、組となるコマンドが成立しないので、演出制御装置300では演出に関する記憶領域のデフォルト値を使用して特図(飾り特図)の演出が行われる。
したがって、後で送られてくる図柄コマンドを取りこぼした場合でも、デフォルト値に基づいて特図変動を行うことにより、いつもの遊技ゲームと変わらないタイミングで特図変動の演出が行われ、よって、遊技者に不信感を与えることがない。
上記構成の発明概念は、下記のように表される。
遊技の進行を制御する遊技制御装置と、
前記遊技制御装置から送信されるコマンドに基づき、表示装置に複数の図柄を変動表示させて停止させる変動表示ゲームの演出を行う演出制御装置と、
を備え、
前記遊技制御装置は、始動入賞口への遊技球の入賞に基づきコマンドを前記演出制御装置に送信して変動表示ゲームを実行させ、前記変動表示ゲームの停止態様が特定表示態様となったときに特典を付与するようにした遊技機において、
前記演出制御装置は、
複数で組となるコマンドのうち、先に送られるコマンドの受信に基づき、演出に関する記憶領域をデフォルト値に設定するデフォルト値設定手段と、
複数で組となるコマンドのうち、後で送られるコマンドを受信すると、組となる複数のコマンドに基づいて演出を行う一方、
後で送られるコマンドの受信を取りこぼすと、前記デフォルト値設定手段によって設定されたデフォルト値に基づいて演出を行う演出制御手段と、
を備えたことを特徴とする遊技機。
「発明概念A2」
実施例1では、後で送られる図柄指定コマンドを受信した時点で、組となるコマンドが成立したと判断して、演出に関する記憶領域に格納されているデフォルト値(はずれ図柄での図柄停止状態)を正規のコマンド(図柄指定コマンド)に対応する情報に書き換える処理が行われる。
そして、演出制御装置300では、組となる複数のコマンド(先に送られる変動パターンコマンド及び後で送られる図柄指定コマンド)の成立に基づいて図柄の変動表示制御の演出を行う。この場合、後で送られる図柄指定コマンドは、デフォルト値から書き換えられ正規のコマンド(図柄指定コマンド)となり、これらの組となる各コマンドに基づいて図柄演出が実行されることになる。
したがって、正規のコマンドに基づく演出が行われ、遊技が正常に進行する。
上記構成の発明概念は、下記のように表される。
演出制御装置は、
遊技制御装置から送られる組となるコマンドの受信に基づき、演出に関する記憶領域に記憶されているデフォルト値を正規のコマンドに対応する情報に書き換える書換手段を備え、
前記演出制御手段は、先に送られるコマンド及び前記書換手段によって書き換えられた情報に基づいて図柄の変動表示の演出を行うことを特徴とする遊技機。
「発明概念A3」
実施例1では、後で送られる図柄コマンドを取りこぼした場合であっても、先に受信するコマンドを受信した時点で演出に関する記憶領域にデフォルト値として、はずれ図柄での図柄停止状態が設定されており、このデフォルト値に基づいて特図変動を行う。
したがって、デフォルト値がはずれ図柄での図柄停止状態というような値に設定されるので、図柄コマンドを取りこぼしたでも、遊技結果に矛盾することなく、特図演出を行える。
上記構成の発明概念は、下記のように表される。
デフォルト値設定手段は、
前記デフォルト値として、はずれ図柄での図柄停止状態となるような情報に設定することを特徴とする遊技機。
「発明概念A4」
実施例1では、遊技制御装置100から演出制御装置300へ変動パターンコマンド及び図柄コマンドを送信した場合、まず、先に送られる変動パターンコマンドを演出制御装置300が受信した時点で、演出に関する記憶領域がデフォルト値としてはずれ図柄での図柄停止状態に設定され、次いで、後で送られる図柄指定コマンドを取りこぼしすと、デフォルト値(はずれ図柄での図柄停止状態)に基づいて特図変動を行う。
したがって、図柄コマンドを取りこぼしても、デフォルト値に基づいて特図変動を行うので、遊技結果に矛盾することなく、はずれ図柄で停止させることができる。
上記構成の発明概念は、下記のように表される。
遊技制御装置から送信される前記コマンドは、組で効果を発揮する第1コマンドと第2コマンドとからなり、
前記第1コマンドは先に送られ、前記第2コマンドは後で送られる構成であり、
これらの各コマンドは、画面変化コマンドと、結果態様コマンドであり、
前記デフォルト値設定手段は
前記第1コマンドの受信に基づき、演出に関する記憶領域にデフォルト値としてはずれ図柄にて演出を行う情報を設定することを特徴とする遊技機。
「発明概念A5」
実施例1では、後で送られる図柄指定コマンドを受信した時点で、組となるコマンドが成立したと判断して、演出に関する記憶領域に格納されているデフォルト値(はずれ図柄での図柄停止状態)を正規のコマンド(図柄指定コマンド)に対応する情報に書き換える処理が行われる。
上記構成の発明概念は、下記のように表される。
書換手段は、
後で送られるコマンドを受信した時点で、組となるコマンドが成立したと判断して、前記デフォルト値を正規のコマンドに対応する情報に書き換えることを特徴とする遊技機。
「発明概念A6」
実施例1では、はずれ図柄変動(はずれ停止)又は大当り図柄変動(大当りで停止)の何れの場合であっても、複数で組となるコマンドのうち、先に送られるコマンド(第1コマンド)を受信した時点で、演出に関する記憶領域にデフォルト値を設定する構成である。
したがって、はずれなのに大当り図柄が表示されるなどのトラブルを回避できる。
上記構成の発明概念は、下記のように表される。
デフォルト値設定手段は、
図柄変動あるいは前記特定表示態様の演出を行うときに対応するコマンドの何れの種類であっても、前記第1コマンドの受信に基づき、演出に関する記憶領域にデフォルト値を設定することを特徴とする遊技機。
「発明概念A7」
実施例1では、遊技制御装置100から演出制御装置300へ変動パターンコマンド及び図柄コマンドを順次送信した場合、まず、先に送られる変動パターンコマンドを演出制御装置300が受信した時点で、演出に関する記憶領域がデフォルト値(例えば、はずれ図柄での図柄停止状態)に設定され、次いで、後で送られる図柄指定コマンドを受信した時点で、組となるコマンドが成立したと判断して、演出に関する記憶領域のデフォルト値が正規のコマンド(図柄指定コマンド)に対応する情報に書き換えられる。
上記構成の発明概念は、下記のように表される。
デフォルト値設定手段は、
組で効果を発揮する第1コマンドと第2コマンドのうちの第1コマンドの受信に基づき、第1コマンドと第2コマンドによって内容が確定する演出のための情報を記憶する演出に関する記憶領域にデフォルト値を設定することを特徴とする遊技機。
「発明概念A8」
実施例1では、技制御装置100から演出制御装置300へ変動パターンコマンド及び図柄コマンドが順次送信されてきた場合、演出制御装置300では、送信されてきた組となる複数のコマンドに基づいて特図の演出制御を行う。この場合、後で送られる図柄コマンドは、デフォルト値から書き換えられ正規のコマンド(図柄指定コマンド)となり、これらの組となる各コマンドに基づいて図柄演出が実行される。
しかし、後で送られる図柄コマンドを取りこぼすと、デフォルト値を使用(採用)して特図の演出を行う。
上記構成の発明概念は、下記のように表される。
演出制御装置の演出制御手段は、
複数で組となるコマンドのうち、後で送られるコマンドの受信に基づき、組となる複数のコマンドに基づいて図柄の変動表示の演出を行う一方、
後で送られるコマンドの受信を取りこぼすと、前記デフォルト値設定手段によって設定されたデフォルト値に基づいて図柄の変動表示の演出を行うことを特徴とする遊技機。
「発明概念A9」
実施例1の変形例として、先に送られるコマンドを受信した時点で、演出制御装置300では主制御用マイコン311のRAM311aのコマンド記憶領域にデフォルト値としてデフォルトコマンドを設定しておき、その後、後に続く正規コマンドが来たら(受信したら)、そのコマンド(受信したコマンド)で前記デフォルト値を上書きして書き換え、先に送られるコマンド及び書き換えられたコマンドに基づいて演出を行う構成にしてもよい。
この発明概念は、以下のように表される。
演出制御装置のデフォルト値設定手段は、
複数で組となるコマンドのうち、先に送られるコマンドの受信に基づき、コマンド記憶領域をデフォルト値に設定し、
書換手段は、後で送られるコマンドの受信に基づき、コマンド記憶領域に記憶されているデフォルト値を正規のコマンドに書き換え、
演出制御手段は、先に送られるコマンド及び前記書換手段によって書き換えられたコマンドに基づいて演出を行うことを特徴とする遊技機。
「発明概念B1」
実施例1では、遊技制御装置100から演出制御装置300へ組となる変動パターンコマンド及び図柄コマンドが順次送信され、それに基づいて演出制御が行われるが、それに限らず、例えば後の図柄コマンドを取りこぼした場合に、以下のような制御を行うような変形例を実施したとすると、発明概念B1が導かれる。
すなわち、先に送られる変動パターンコマンドを演出制御装置300が受信した時点で、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間(例えば、1秒)以内か否かを判定し、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間以内と判定されると、後で送られる図柄コマンドの受信を取りこぼしても、図柄の変動を開始する処理を行い、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間を超えていると判定すると、図柄の変動を開始しない処理を行う構成とするようにしてもよい。
この発明概念によれば、遊技者に極力ストレスを与えない特図演出を行うことができる。
上記構成の発明概念は、下記のように表される。
遊技の進行を制御する遊技制御装置と、
前記遊技制御装置から送信されるコマンドに基づき、表示装置に複数の図柄を変動表示させて停止させる変動表示ゲームの演出を行う演出制御装置と、
を備え、
前記遊技制御装置は、始動入賞口への遊技球の入賞に基づきコマンドを前記演出制御装置に送信して変動表示ゲームを実行させ、前記変動表示ゲームの停止態様が特定表示態様となったときに特典を付与するようにした遊技機において、
前記演出制御装置は、
複数で組となるコマンドのうち、先に送られるコマンドの受信に基づき、前回の図柄変動終了から今回のコマンド受信までの時間が規定時間以内か否かを判定する判定手段と、
前記判定手段により前回の図柄変動終了から今回のコマンド受信までの時間が規定時間以内と判定されると、後で送られるコマンドの受信を取りこぼしても、図柄の変動を開始する処理を行い、
前回の図柄変動終了から今回のコマンド受信までの時間が規定時間を超えていると判定されると、図柄の変動を開始しない処理を行うように制御する演出制御手段と、
を備えたことを特徴とする遊技機。
「発明概念B2」
発明概念B1において、変動パターンコマンドから図柄停止結果態様(はずれ又は大当り)を判断し、基本的にはずれの停止図柄コマンドは1種類であるので、図柄コマンドを取りこぼしても、変動パターンコマンドさえ受信できていれば図柄変動を開始できる構成とする。
上記構成の発明概念は、下記のように表される。
遊技制御装置から送信されるコマンドは、組で効果を発揮する第1コマンドと第2コマンドとからなり、
前記第1コマンドは先に送られ、前記第2コマンドは後で送られる構成であり、
これらの各コマンドは、画面変化コマンドと、結果態様コマンドであり、
演出制御手段は
前記第1コマンドの受信に基づき、第1コマンドに基づいて変動表示ゲームの停止態様を判断し、判断した停止態様となるように前記変動の図柄を決定することを特徴とする遊技機。
「発明概念B3」
発明概念B1において、変動パターンコマンドから図柄停止結果態様(はずれ又は大当り)を判断し、図柄停止結果態様からはずれと判断した場合、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間以内と判定されると、後で送られる図柄コマンドの受信を取りこぼしても、連続変動として図柄変動を開始させる一方、図柄停止結果態様から大当りと判断した場合、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間以内と判定されると、後で送られる図柄コマンドの受信を取りこぼしても、変動を開始した後に強制的に非確変図柄(通常図柄)となる停止態様にて図柄を確定させる構成とする。
この構成であると、はずれ又は大当りの何れの場合であっても、遊技の違和感をなくして、遊技者に極力ストレスを与えないようにできる。
上記構成の発明概念は、下記のように表される。
演出制御手段は
前記先のコマンドの受信に基づき、変動表示ゲームの停止態様を判断し、はずれ表示態様になる場合には、前記変動を開始させ、
特定表示態様としての当り表示態様になる場合には、前記変動を開始し、停止態様が通常の当り図柄となる制御を行うことを特徴とする遊技機。
「発明概念B4」
発明概念B1において、変動パターンコマンドから図柄停止結果態様として大当りと判断したとき、強制的に非確変図柄(例えば、「444」)で停止する構成とする。
この構成であると、大当りの開始演出で確変図柄が停止したのに確変にならない、というようなトラブルは回避することができる。
その後、次の演出に係るコマンドとして、演出制御装置300にてファンファーレコマンド及び図柄コマンドを受信したとき、この図柄コマンドを受信したことに基づき、この図柄コマンドで指定される実際の大当り図柄を表示して、大当り演出を行う構成とする。
この構成であると、大当りが発生するとき、通常図柄又は確変図柄の何れの場合であっても、遊技の違和感なく、大当りの演出を行うことができる。
上記構成の発明概念は、下記のように表される。
演出制御手段は
前記先のコマンドの受信に基づき、変動表示ゲームの停止態様を判断し、特定表示態様としての当り表示態様になる場合には、前記変動を開始させ、
図柄変動の開始後、その後に受信したコマンドで指定される実際の当り図柄で図柄変動を停止させて表示する制御を行うことを特徴とする遊技機。
「発明概念B5」
発明概念B1において、変動パターンコマンドから図柄停止結果態様(はずれ又は大当り)を判断したとき、確変図柄専用の変動パターンであると判断した場合には、強制的に非確変図柄で停止する演出を経由せずに、図柄の連続変動を開始し、確変図柄となる停止態様にて図柄を確定させる構成とする。
この構成であると、分かりやすく、違和感のない遊技進行にすることができる。
上記構成の発明概念は、下記のように表される。
演出制御手段は
前記先のコマンドの受信に基づき、変動表示ゲームの停止態様を判断し、特定表示態様としての確率変動を伴う当り表示態様になる場合には、前記変動を開始し、停止態様が確率変動を伴う当り図柄となる制御を行うことを特徴とする遊技機
「発明概念B6」
発明概念B1において、連続変動判定に保留数チェックを追加した構成とする。
すなわち、変動パターンコマンドの受信時点で、保留数チェックを行い、特図保留数が「0」であるときは、今回の変動パターンコマンドは不正なコマンドと判定(不正判定)し、前回の停止コマンドを受信する以前に始動入賞に伴う特図保留数が「1」であれば、今回の変動パターンコマンドの受信は正当と判定するという制御を行う構成とする。
この構成であると、変動パターンコマンド受信時に保留数チェックを行うことで、不正な変動パターンコマンドに基づく図柄変動の開始を防ぐことができる。
上記構成の発明概念は、下記のように表される。
遊技制御装置は、
始動入賞口への遊技球の入賞に基づく始動入賞数を所定範囲で記憶する始動入賞記憶手段を備え、
演出制御装置は、
前記遊技制御装置から送られる始動入賞記憶に関する情報を受信した場合には、先に送られるコマンドの受信に基づき、始動入賞記憶が存在するか否かを判定する始動入賞記憶判定手段を備え、
前記演出制御手段は、
前記始動入賞記憶判定手段の判定結果を加えて、前記図柄の変動を開始するか否かを判断することを特徴とする遊技機。
「発明概念B7」
発明概念B1において、連続変動の条件を満たし、かつ、今回の変動がはずれ変動であった場合に、変動パターンコマンド受信と同時に、次の図柄コマンド゛受信(4ms後)を待たずに、変動開始の各種設定を開始する構成とする。
この構成であると、はずれ図柄変動時のコマンドの整合性チェックの処理等を省略することができる。よって、演出データの設定に時間を割け、演出制御装置300のCPU311の処理時間に余裕を持たせることができるという利点がある。
上記構成の発明概念は、下記のように表される。
演出制御装置の演出制御手段は、
前記判定手段により前回の図柄変動終了から今回のコマンド受信までの時間が規定時間以内と判定されると、後で送られるコマンドの受信を待たずに、直ちに図柄の変動の開始のための設定を開始する処理を行うことを特徴とする遊技機。
「発明概念C1」
実施例1では、遊技の進行を制御する遊技制御装置100と、この遊技制御装置100から送信されるコマンドに基づいて演出手段を制御して演出を行う演出制御装置300と、を備えた遊技機(パチンコ機1)において、遊技制御装置100から送信されるコマンドの値がコマンドの種別毎の所定範囲にあるか否かの種別判定を、親モジュールと子モジュールとで、それぞれ実行し、各モジュールでの種別判定結果が所定範囲内となることが、当該コマンドに応じた演出手段の制御のための処理を実行する必要条件となっている。
このため、コマンドを先ず上記種別判定(範囲チェック)により限定して無駄なデータやプログラムを少なくすることができるから、コマンドの解析処理のプログラム(処理に必要な各種データ含む)が効率良く作成できる。
上記構成の発明概念は、下記のように表される。
遊技の進行を制御する遊技制御装置と、この遊技制御装置から送信されるコマンドに基づいて演出手段を制御して演出を行う演出制御装置と、を備えた遊技機において、
前記コマンドを受信した前記演出制御装置が実行する前記コマンドの解析処理を、当該解析処理を統括するルーチンである親モジュールと、この親モジュールから呼び出されて実行されるルーチンである子モジュールと、より構成し、
前記コマンドの値が前記コマンドの種別毎の所定範囲にあるか否かの種別判定を、前記親モジュールと前記子モジュールとで、それぞれ実行し、
各モジュールでの前記種別判定結果が前記所定範囲内となることを、当該コマンドに応じた前記演出手段の制御のための処理を実行する条件としたことを特徴とする遊技機。
「発明概念C2」
実施例1では、親モジュールの方がチェックする範囲が狭い構成であり、分岐する前に狭い範囲まで限定するので、対応する処理を細分化しやすいという利点がある。
上記構成の発明概念は、下記のように表される。
前記種別判定の基準となる前記所定範囲が、前記子モジュールよりも前記親モジュールの方が狭いことを特徴とする遊技機。
「発明概念C3」
実施例1では、種別判定のステップD93、D99等でMODEが所定範囲内にないと判定されて判定結果が全てNOになる場合には、ExModeは設定されずステップD147を経てリターンするため、当該コマンドは採用されず(即ち、無効とされ)、結果的に当該コマンドは破棄されることになる。
上記構成の発明概念は、下記のように表される。
前記種別判定結果が前記所定範囲外となった場合には、当該コマンドを破棄するか又は無効とすることを特徴とする遊技機。
「発明概念I1」
実施例1では、演出制御装置300が、コマンドが遊技制御装置100から送信されることにより発生するコマンド受信割込みがあると、前記コマンドを受信するための受信処理(コマンド受信割込み処理)を実行し、この受信処理で受信したコマンドの解析処理(受信コマンド解析処理)を、前記受信処理とは別個に所定周期で実行する構成であり、受信したコマンドの値が所定範囲にあるか否かの正常性判定を、少なくとも前記受信処理で実行する(ステップD54等)。このため、前記解析処理の負担を減らし、コマンドの受信及び解析が効率良く実現できる。
上記構成の発明概念は、下記のように表される。
遊技の進行を制御する遊技制御装置と、この遊技制御装置から送信されるコマンドに基づいて演出手段を制御して演出を行う演出制御装置と、を備えた遊技機において、
前記演出制御装置は、
前記コマンドが前記遊技制御装置から送信されることにより発生するコマンド受信割込みがあると、前記コマンドを受信するための受信処理を実行し、この受信処理で受信した当該コマンドの解析処理を、前記受信処理とは別個に所定周期で実行する構成であり、
当該コマンドの値が所定範囲にあるか否かの正常性判定を、前記受信処理で実行することを特徴とする遊技機。
「発明概念I2」
実施例1では、前記正常性判定結果が前記所定範囲内とならなければ、当該コマンドに応じた演出手段の制御のための処理を実行しない構成であり、これにより誤動作を防止している。
上記構成の発明概念は、下記のように表される。
前記正常性判定結果が前記所定範囲内となることを、当該コマンドに応じた前記演出手段の制御のための処理を実行する条件としたことを特徴とする遊技機。
「発明概念I3」
実施例1では、演出制御装置300において、遊技制御装置100から送信されるコマンドの受信処理(コマンド受信割込み処理)と、前記コマンドの解析処理(受信コマンド解析処理)とで、前記コマンドの値が所定範囲にあるか否かの正常性判定を、それぞれ実行している。
このため、コマンドの正常性判定の負担を受信処理と解析処理とで適度に分担して、コマンドのとりこぼしを回避しつつ処理全体の高速化が図れるなどの効果が実現できる。
上記構成の発明概念は、下記のように表される。
前記正常性判定を、前記受信処理と前記解析処理においてそれぞれ実行することを特徴とする遊技機。
「発明概念I4」
実施例1では、前記正常性判定の基準となる所定範囲が、前記解析処理よりも前記受信処理の方が広い構成として、1回の前記受信処理をより早めに終了させて、コマンドのとりこぼしを確実に回避するなどの効果を実現している。
上記構成の発明概念は、下記のように表される。
前記正常性判定の基準となる前記所定範囲が、前記解析処理よりも前記受信処理の方が広いことを特徴とする遊技機。
「発明概念I5」
実施例1では、前記正常性判定の基準となる所定範囲が、前記受信処理では、前記コマンドがとり得る値の集合全体であり、前記解析処理では、受信した当該コマンドが該当する種別の正常な前記コマンドがとり得る値の集合である構成として、1回の前記受信処理をより早めに終了させて、コマンドのとりこぼしを確実に回避するなどの効果を実現している。
上記構成の発明概念は、下記のように表される。
前記正常性判定の基準となる前記所定範囲が、前記受信処理では、前記コマンドがとり得る値の集合全体であり、前記解析処理では、受信した当該コマンドが該当する種別の正常な前記コマンドがとり得る値の集合であることを特徴とする遊技機。
「発明概念I6」
実施例1では、演出制御装置300におけるコマンド受信割込み処理において、ステップD54(ステップD61)で受信MODEが所定範囲内にないと判定されて判定結果がNOになる場合には、受信したコマンドをコマンドバッファに格納するステップD56の処理は実行されずステップD55を経てリターンするため、当該コマンドは採用されず(即ち、無効とされ)、結果的に当該コマンドは破棄されることになる。また受信コマンド解析処理におけるステップD93、D99等でMODEが所定範囲内にないと判定されて判定結果が全てNOになる場合には、ExModeは設定されずステップD147を経てリターンするため、当該コマンドは採用されず(即ち、無効とされ)、結果的に当該コマンドは破棄されることになる。
上記構成の発明概念は、下記のように表される。
前記正常性判定結果が前記所定範囲外となった場合には、当該コマンドを破棄するか又は無効とすることを特徴とする遊技機。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 パチンコ機(遊技機)
4 前面枠
5 ガラス枠
12a、12b スピーカ(演出手段)
14 ムービングライト(演出手段、演出用役物)
20 遊技盤
25 第1始動入賞口
26 第2始動入賞口2(普通電動役物:普電)
27 変動入賞装置(特別変動入賞装置)
32 普図始動ゲート
35 一括表示装置
41 表示装置(特図表示装置)(演出手段)
42 盤装飾装置(演出手段)
43 枠装飾装置(演出手段)
44 盤演出装置(演出手段)
45 枠演出装置(演出手段)
54 カードユニット接続基板
55 外部情報端子板
100 遊技制御装置(主基板)
101 遊技用マイコン
101A CPU
101B ROM
101C RAM
120 第1始動口スイッチ
121 第2始動口スイッチ
122 ゲートスイッチ
123 入賞口スイッチ
124 カウントスイッチ
125 磁気センサスイッチ
126 振動センサスイッチ
140 管理装置
200 払出制御装置
201 払出用マイコン
211 ガラス枠開放検出スイッチ
212 前面枠開放検出スイッチ
213 オーバーフロースイッチ
214 電波検知センサ
215 払出球検出スイッチ
216 シュート球切れスイッチ
300 演出制御装置(サブ基板)
311 主制御用マイコン(1stCPU)
311a RAM
360 無線モジュール
371 設定スイッチ
500 電源装置
551 カードユニット

Claims (1)

  1. 遊技の進行を制御する遊技制御手段と、この遊技制御手段から送信されるコマンドに基づいて演出手段を制御して演出を行う演出制御手段と、を備えた遊技機において、
    前記演出制御手段は、
    前記遊技制御手段から受信したコマンドが格納される受信バッファ手段と、
    前記受信バッファ手段に格納されているコマンドが複写により格納される解析データ格納手段と、を備え、
    前記コマンドが前記遊技制御手段から送信されると、前記コマンドを受信するための受信処理を実行し、この受信処理で受信した当該コマンドの解析処理を、前記受信処理とは別個に前記解析データ格納手段に複写されたコマンドに対して実行する構成であり、
    前記受信処理においては、前記受信バッファ手段へ格納される前のコマンドに対して値が所定範囲にあるか否かの正当性判定を行い、
    前記解析処理においては、前記受信バッファ手段から前記解析データ格納手段に複写されたコマンドに対して値が所定範囲にあるか否かの正当性判定を行い、
    前記正当性判定の基準となる前記所定範囲が、前記解析処理よりも前記受信処理の方が広いことを特徴とする遊技機。
JP2016204455A 2016-10-18 2016-10-18 遊技機 Active JP6348945B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016204455A JP6348945B2 (ja) 2016-10-18 2016-10-18 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016204455A JP6348945B2 (ja) 2016-10-18 2016-10-18 遊技機

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012111342A Division JP6040480B2 (ja) 2012-05-15 2012-05-15 遊技機

Publications (2)

Publication Number Publication Date
JP2017012845A JP2017012845A (ja) 2017-01-19
JP6348945B2 true JP6348945B2 (ja) 2018-06-27

Family

ID=57829454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016204455A Active JP6348945B2 (ja) 2016-10-18 2016-10-18 遊技機

Country Status (1)

Country Link
JP (1) JP6348945B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002018044A (ja) * 2000-07-06 2002-01-22 Sanyo Product Co Ltd 遊技機
JP2002292052A (ja) * 2001-03-29 2002-10-08 Sophia Co Ltd 遊技機
JP4300558B2 (ja) * 2005-04-13 2009-07-22 株式会社大一商会 遊技機
JP5196740B2 (ja) * 2006-06-13 2013-05-15 株式会社大一商会 パチンコ機
JP4529147B2 (ja) * 2007-01-31 2010-08-25 株式会社三洋物産 遊技機
JP4498383B2 (ja) * 2007-05-11 2010-07-07 株式会社藤商事 遊技機
JP5969809B2 (ja) * 2012-05-02 2016-08-17 株式会社ソフイア 遊技機

Also Published As

Publication number Publication date
JP2017012845A (ja) 2017-01-19

Similar Documents

Publication Publication Date Title
JP6005373B2 (ja) 遊技機
JP5959228B2 (ja) 遊技機
JP5952589B2 (ja) 遊技機
JP5799391B2 (ja) 遊技機
JP6152581B2 (ja) 遊技機
JP5969809B2 (ja) 遊技機
JP6167275B2 (ja) 遊技機
JP5989383B2 (ja) 遊技機
JP6166513B2 (ja) 遊技機
JP6186052B2 (ja) 遊技機
JP5878080B2 (ja) 遊技機
JP5947619B2 (ja) 遊技機
JP6303181B2 (ja) 遊技機
JP6340510B2 (ja) 遊技機
JP6040480B2 (ja) 遊技機
JP5973230B2 (ja) 遊技機
JP6348945B2 (ja) 遊技機
JP6346634B2 (ja) 遊技機
JP6346635B2 (ja) 遊技機
JP6277370B2 (ja) 遊技機
JP6207038B2 (ja) 遊技機
JP6182199B2 (ja) 遊技機
JP6102043B2 (ja) 遊技機
JP6318401B2 (ja) 遊技機
JP6439159B2 (ja) 遊技機

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20171113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171222

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: 20180529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180601

R150 Certificate of patent or registration of utility model

Ref document number: 6348945

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